I2lmbmRlZiBfRFJJVkVSX1FEX0NBTExTX0hfXwojZGVmaW5lIF9EUklWRVJfUURfQ0FMTFNfSF9fCgovLyAjIyPKQ09OVFJPTCBST1VUSU5FUyAjIyMKCk9TU3RhdHVzCUdyYXBoaWNzQ29yZVNldE1vZGUoVkRQYWdlSW5mbyAqcGFnZUluZm8pOwpPU1N0YXR1cwlHcmFwaGljc0NvcmVTZXRFbnRyaWVzKFZEU2V0RW50cnlSZWNvcmQgKmVudHJ5UmVjb3JkKTsKT1NTdGF0dXMJR3JhcGhpY3NDb3JlU2V0R2FtbWEoVkRHYW1tYVJlY29yZCAqZ2FtbWFSZWMpOwpPU1N0YXR1cwlHcmFwaGljc0NvcmVHcmF5UGFnZShWRFBhZ2VJbmZvICpwYWdlSW5mbyk7Ck9TU3RhdHVzCUdyYXBoaWNzQ29yZVNldEdyYXkoVkRHcmF5UmVjb3JkICpncmF5UmVjb3JkKTsKT1NTdGF0dXMJR3JhcGhpY3NDb3JlU2V0SW50ZXJydXB0KFZERmxhZ1JlY29yZCAqZmxhZ1JlY29yZCk7Ck9TU3RhdHVzCUdyYXBoaWNzQ29yZURpcmVjdFNldEVudHJpZXMoVkRTZXRFbnRyeVJlY29yZCAqZW50cnlSZWNvcmQpOwpPU1N0YXR1cwlHcmFwaGljc0NvcmVTd2l0Y2hNb2RlKFZEU3dpdGNoSW5mb1JlYyAqc3dpdGNoSW5mbyk7Ck9TU3RhdHVzCUdyYXBoaWNzQ29yZVNldFN5bmMoVkRTeW5jSW5mb1JlYyAqc3luY0luZm8pOwpPU1N0YXR1cwlHcmFwaGljc0NvcmVTZXRQcmVmZXJyZWRDb25maWd1cmF0aW9uKFZEU3dpdGNoSW5mb1JlYyAqc3dpdGNoSW5mbyk7Ck9TU3RhdHVzCUdyYXBoaWNzQ29yZVNldEhhcmR3YXJlQ3Vyc29yKFZEU2V0SGFyZHdhcmVDdXJzb3JSZWMgKnNldEh3Q3Vyc1JlYyk7Ck9TU3RhdHVzCUdyYXBoaWNzQ29yZURyYXdIYXJkd2FyZUN1cnNvcihWRERyYXdIYXJkd2FyZUN1cnNvclJlYyAqZHJhd0h3Q3Vyc1JlYyk7Ck9TU3RhdHVzCUdyYXBoaWNzQ29yZVNldFBvd2VyU3RhdGUoVkRQb3dlclN0YXRlUmVjICogcG93ZXJTdGF0ZVJlYyk7CgovLyAjIyMgU1RBVFVTIFJPVVRJTkVTICMjIwoKT1NTdGF0dXMJR3JhcGhpY3NDb3JlR2V0TW9kZShWRFBhZ2VJbmZvICpwYWdlSW5mbyk7Ck9TU3RhdHVzCUdyYXBoaWNzQ29yZUdldEVudHJpZXMoVkRTZXRFbnRyeVJlY29yZCAqZW50cnlSZWNvcmQpOwpPU1N0YXR1cwlHcmFwaGljc0NvcmVHZXRQYWdlcyhWRFBhZ2VJbmZvICpwYWdlSW5mbyk7Ck9TU3RhdHVzCUdyYXBoaWNzQ29yZUdldEJhc2VBZGRyZXNzKFZEUGFnZUluZm8gKnBhZ2VJbmZvKTsKT1NTdGF0dXMJR3JhcGhpY3NDb3JlR2V0R3JheShWREdyYXlSZWNvcmQgKmdyYXlSZWNvcmQpOwpPU1N0YXR1cwlHcmFwaGljc0NvcmVHZXRJbnRlcnJ1cHQoVkRGbGFnUmVjb3JkICpmbGFnUmVjb3JkKTsKT1NTdGF0dXMJR3JhcGhpY3NDb3JlR2V0R2FtbWEoVkRHYW1tYVJlY29yZCAqZ2FtbWFSZWNvcmQpOwpPU1N0YXR1cwlHcmFwaGljc0NvcmVHZXRDdXJyZW50TW9kZShWRFN3aXRjaEluZm9SZWMgKnN3aXRjaEluZm8pOwpPU1N0YXR1cwlHcmFwaGljc0NvcmVHZXRTeW5jKFZEU3luY0luZm9SZWMgKnN5bmNJbmZvKTsKT1NTdGF0dXMJR3JhcGhpY3NDb3JlR2V0Q29ubmVjdGlvbihWRERpc3BsYXlDb25uZWN0SW5mb1JlYyAqY29ubmVjdEluZm8pOwpPU1N0YXR1cwlHcmFwaGljc0NvcmVHZXRNb2RlVGltaW5nKFZEVGltaW5nSW5mb1JlYyAqdGltaW5nSW5mbyk7Ck9TU3RhdHVzCUdyYXBoaWNzQ29yZUdldFByZWZlcnJlZENvbmZpZ3VyYXRpb24oVkRTd2l0Y2hJbmZvUmVjICpzd2l0Y2hJbmZvKTsKT1NTdGF0dXMJR3JhcGhpY3NDb3JlR2V0TmV4dFJlc29sdXRpb24oVkRSZXNvbHV0aW9uSW5mb1JlYyAqcmVzSW5mbyk7Ck9TU3RhdHVzCUdyYXBoaWNzQ29yZUdldFZpZGVvUGFyYW1zKFZEVmlkZW9QYXJhbWV0ZXJzSW5mb1JlYyAqdmlkZW9QYXJhbXMpOwpPU1N0YXR1cwlHcmFwaGljc0NvcmVHZXRHYW1tYUluZm9MaXN0KFZER2V0R2FtbWFMaXN0UmVjICpnYW1tYUxpc3QpOwpPU1N0YXR1cwlHcmFwaGljc0NvcmVSZXRyaWV2ZUdhbW1hVGFibGUoVkRSZXRyaWV2ZUdhbW1hUmVjICpnYW1tYVJlYyk7Ck9TU3RhdHVzCUdyYXBoaWNzQ29yZVN1cHBvcnRzSGFyZHdhcmVDdXJzb3IoVkRTdXBwb3J0c0hhcmR3YXJlQ3Vyc29yUmVjICpod0N1cnNSZWMpOwpPU1N0YXR1cwlHcmFwaGljc0NvcmVHZXRIYXJkd2FyZUN1cnNvckRyYXdTdGF0ZShWREhhcmR3YXJlQ3Vyc29yRHJhd1N0YXRlUmVjICpod0N1cnNEU3RhdGVSZWMpOwpPU1N0YXR1cwlHcmFwaGljc0NvcmVHZXRQb3dlclN0YXRlKFZEUG93ZXJTdGF0ZVJlYyAqIHBvd2VyU3RhdGVSZWMpOwoKI2VuZGlmIC8qIERSSVZFUl9RRF9DQUxMUyAqLwo=