LyoKICogIENvcHlyaWdodCAoQykgMjAxNiBUZXhhcyBJbnN0cnVtZW50cyBJbmNvcnBvcmF0ZWQgLSBodHRwOi8vd3d3LnRpLmNvbS8KICoKICogIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogKiAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCiAqICBhcmUgbWV0OgogKgogKiAgICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqCiAqICAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiAqICAgIGRpc3RyaWJ1dGlvbi4KICoKICogICAgTmVpdGhlciB0aGUgbmFtZSBvZiBUZXhhcyBJbnN0cnVtZW50cyBJbmNvcnBvcmF0ZWQgbm9yIHRoZSBuYW1lcyBvZgogKiAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCiAqICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICoKICogIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICogICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiAqICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKICogIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiAqICBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKICogIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKICogIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogKiAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiAqICBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAqICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICogIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAqCiAqLwoKI2lmbmRlZiBfX0hXX0hJQjNQM19IX18KI2RlZmluZSBfX0hXX0hJQjNQM19IX18KCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIEhJQjNQMyByZWdpc3RlciBvZmZzZXRzLgovLwovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiNkZWZpbmUgSElCM1AzX09fTUVNX0hJQl9SRVEgICAgMHgwMDAwMDAwMAojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfUlRDX1RJTUVSX0VOQUJMRSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNAoKI2RlZmluZSBISUIzUDNfT19NRU1fSElCX1JUQ19USU1FUl9SRVNFVCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAoKI2RlZmluZSBISUIzUDNfT19NRU1fSElCX1JUQ19USU1FUl9SRUFEIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDCgojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfUlRDX1RJTUVSX0xTVyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMAoKI2RlZmluZSBISUIzUDNfT19NRU1fSElCX1JUQ19USU1FUl9NU1cgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTQKCiNkZWZpbmUgSElCM1AzX09fTUVNX0hJQl9SVENfV0FLRV9FTiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxOAoKI2RlZmluZSBISUIzUDNfT19NRU1fSElCX1JUQ19XQUtFX0xTV19DT05GIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFDCgojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfUlRDX1dBS0VfTVNXX0NPTkYgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjAKCiNkZWZpbmUgSElCM1AzX09fTUVNX0lOVF9PU0NfQ09ORiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyQwoKI2RlZmluZSBISUIzUDNfT19NRU1fWFRBTF9PU0NfQ09ORiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzNAoKI2RlZmluZSBISUIzUDNfT19NRU1fQkdBUF9QQVJBTUVURVJTMCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOAoKI2RlZmluZSBISUIzUDNfT19NRU1fQkdBUF9QQVJBTUVURVJTMSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQwoKI2RlZmluZSBISUIzUDNfT19NRU1fSElCX0RFVEVDVElPTl9TVEFUVVMgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDAKCiNkZWZpbmUgSElCM1AzX09fTUVNX0hJQl9NSVNDX0NPTlRST0xTIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQ0CgojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfQ09ORklHIDB4MDAwMDAwNTAKI2RlZmluZSBISUIzUDNfT19NRU1fSElCX1JUQ19JUlFfRU5BQkxFIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDU0CgojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfUlRDX0lSUV9MU1dfQ09ORiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA1OAoKI2RlZmluZSBISUIzUDNfT19NRU1fSElCX1JUQ19JUlFfTVNXX0NPTkYgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNUMKCiNkZWZpbmUgSElCM1AzX09fTUVNX0hJQl9VQVJUX0NPTkYgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDAKCiNkZWZpbmUgSElCM1AzX09fTUVNX0dQSU9fV0FLRV9FTiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwNAoKI2RlZmluZSBISUIzUDNfT19NRU1fR1BJT19XQUtFX0NPTkYgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDgKCiNkZWZpbmUgSElCM1AzX09fTUVNX1BBRF9PRU5fUkVUMzNfQ09ORiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwQwoKI2RlZmluZSBISUIzUDNfT19NRU1fVUFSVF9SVFNfT0VOX1JFVDMzX0NPTkYgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MTAKCiNkZWZpbmUgSElCM1AzX09fTUVNX0pUQUdfQ09ORiAgMHgwMDAwMDQxNAojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfUkVHMCAgIDB4MDAwMDA0MTgKI2RlZmluZSBISUIzUDNfT19NRU1fSElCX1JFRzEgICAweDAwMDAwNDFDCiNkZWZpbmUgSElCM1AzX09fTUVNX0hJQl9SRUcyICAgMHgwMDAwMDQyMAojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfUkVHMyAgIDB4MDAwMDA0MjQKI2RlZmluZSBISUIzUDNfT19NRU1fSElCX1NFUVVFTkNFUl9DRkcwIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDVDCgojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzEgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0NjAKCiNkZWZpbmUgSElCM1AzX09fTUVNX0hJQl9NSVNDX0NPTkZJRyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQ2NAoKI2RlZmluZSBISUIzUDNfT19NRU1fSElCX1dBS0VfU1RBVFVTIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDY4CgojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfTFBEU19HUElPX1NFTCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQ2QwoKI2RlZmluZSBISUIzUDNfT19NRU1fSElCX1NFUVVFTkNFUl9DRkcyIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDcwCgojZGVmaW5lIEhJQjNQM19PX0hJQkFOQV9TUEFSRV9MT1dWIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDc0CgojZGVmaW5lIEhJQjNQM19PX0hJQl9UTVVYX0NUUkwgIDB4MDAwMDA0NzgKI2RlZmluZSBISUIzUDNfT19ISUJfMVAyXzFQOF9MRE9fVFJJTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQ3QwoKI2RlZmluZSBISUIzUDNfT19ISUJfQ09NUF9UUklNICAweDAwMDAwNDgwCiNkZWZpbmUgSElCM1AzX09fSElCX0VOX1RTICAgICAgMHgwMDAwMDQ4NAojZGVmaW5lIEhJQjNQM19PX0hJQl8xUDhWX0RFVF9FTiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQ4OAoKI2RlZmluZSBISUIzUDNfT19ISUJfVkJBVF9NT05fRU4gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0OEMKCiNkZWZpbmUgSElCM1AzX09fSElCX05ISUJfRU5BQkxFIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDkwCgojZGVmaW5lIEhJQjNQM19PX0hJQl9VQVJUX1JUU19TV19FTkFCTEUgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0OTQKCgoKCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQovLyBISUIzUDNfT19NRU1fSElCX1JFUSByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SRVFfcmVzZXJ2ZWRfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkUwMAoKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SRVFfcmVzZXJ2ZWRfUyA5CiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUkVRX05VMV9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMUZDCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JFUV9OVTFfUyAyCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUkVRX21lbV9oaWJfY2xrX2Rpc2FibGUgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIgIC8vIDEgLSBTcGVjaWZpZXMgdGhhdCB0aGUgSGliZXJhbnRlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW9kZSBpcyB3aXRob3V0IGNsb2NrcyA7IDAgLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNwZWNpZmllZCB0aGF0IHRoZSBIaWJlcm5hdGUgbW9kZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlzIHdpdGggY2xvY2tzIFRoaXMgcmVnaXN0ZXIgd2lsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlIHJlc2V0IGR1cmluZyBIaWJlcm5hdGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtV08tQ2xrcyBtb2RlIChidXQgbm90IGR1cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhpYmVybmF0ZS1XLUNsa3MgbW9kZSkuCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JFUV9tZW1faGliX3JlcSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMSAgLy8gMSAtIFJlcXVlc3QgZm9yIGhpYmVybmF0ZSBtb2RlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKFRoaXMgaXMgYW4gYXV0by1jbGVhciBiaXQpIDsgMCAtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG9ub3QgcmVxdWVzdCBmb3IgaGliZXJuYXRlIG1vZGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHJlZ2lzdGVyIHdpbGwgYmUgcmVzZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkdXJpbmcgSGliZXJuYXRlIC1XTy1DbGtzIG1vZGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAoYnV0IG5vdCBkdXJpbmcgSGliZXJuYXRlLVctQ2xrcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vZGUpLgoKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX01FTV9ISUJfUlRDX1RJTUVSX0VOQUJMRSByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfVElNRVJfRU5BQkxFX3Jlc2VydmVkX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkUKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX1RJTUVSX0VOQUJMRV9yZXNlcnZlZF9TIDEKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfVElNRVJfRU5BQkxFX21lbV9oaWJfcnRjX3RpbWVyX2VuYWJsZSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMSAgLy8gMSAtIEVuYWJsZSB0aGUgUlRDIHRpbWVyIHRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RhcnQgcnVubmluZyA7IDAgLSBLZWVwIHRoZSBSVEMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aW1lciBkaXNhYmxlZCBUaGlzIHJlZ2lzdGVyIHdpbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiZSByZXNldCBkdXJpbmcgSGliZXJuYXRlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLVdPLUNsa3MgbW9kZSAoYnV0IG5vdCBkdXJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBIaWJlcm5hdGUtVy1DbGtzIG1vZGUpLgoKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX01FTV9ISUJfUlRDX1RJTUVSX1JFU0VUIHJlZ2lzdGVyLgovLwovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19USU1FUl9SRVNFVF9yZXNlcnZlZF9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19USU1FUl9SRVNFVF9yZXNlcnZlZF9TIDEKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfVElNRVJfUkVTRVRfbWVtX2hpYl9ydGNfdGltZXJfcmVzZXQgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEgIC8vIDEgLSBSZXNldCB0aGUgUlRDIHRpbWVyIDsgMCAtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG9ub3QgcmVzZXQgdGhlIFJUQyB0aW1lci4gVGhpcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlzIGFuIGF1dG8tY2xlYXIgYml0LiBUaGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVnaXN0ZXIgd2lsbCBiZSByZXNldCBkdXJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBIaWJlcm5hdGUgLVdPLUNsa3MgbW9kZSAoYnV0IG5vdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGR1cmluZyBIaWJlcm5hdGUtVy1DbGtzIG1vZGUpLgoKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX01FTV9ISUJfUlRDX1RJTUVSX1JFQUQgcmVnaXN0ZXIuCi8vCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX1RJTUVSX1JFQURfcmVzZXJ2ZWRfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRQoKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfVElNRVJfUkVBRF9yZXNlcnZlZF9TIDEKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfVElNRVJfUkVBRF9tZW1faGliX3J0Y190aW1lcl9yZWFkIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxICAvLyAxIC0gTGF0Y2ggdGhlIHJ1bm5pbmcgUlRDIHRpbWVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW50byBsb2NhbCByZWdpc3RlcnMuIEFmdGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJvZ3JhbW1pbmcgdGhpcyBiaXQgdG8gMSwgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRi93IGNhbiByZWFkIHRoZSBsYXRjaGVkIFJUQwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRpbWVyIHZhbHVlcyBmcm9tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTUVNX0hJQl9SVENfVElNRVJfTFNXIGFuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1FTV9ISUJfUlRDX1RJTUVSX01TVy4gQmVmb3JlIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEYvdyAoQVBQUyBvciBOV1ApIHdhbnRzIHRvIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgUlRDLVRpbWVyLCBpdCBoYXMgdG8gcHJvZ3JhbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgYml0IHRvIDEsIHRoZW4gb25seSByZWFkIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1TVyBhbmQgTFNXIHZhbHVlcy4gVGhpcyBpcyBhbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGF1dG8tY2xlYXIgYml0LiBUaGlzIHJlZ2lzdGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCBiZSByZXNldCBkdXJpbmcgSGliZXJuYXRlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLVdPLUNsa3MgbW9kZSAoYnV0IG5vdCBkdXJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBIaWJlcm5hdGUtVy1DbGtzIG1vZGUpLgoKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX01FTV9ISUJfUlRDX1RJTUVSX0xTVyByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfVElNRVJfTFNXX2hpYl9ydGNfdGltZXJfbHN3X00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYgIC8vIExvd2VyIDMyYiB2YWx1ZSBvZiB0aGUgbGF0Y2hlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJUQy1UaW1lci4KCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX1RJTUVSX0xTV19oaWJfcnRjX3RpbWVyX2xzd19TIDAKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX01FTV9ISUJfUlRDX1RJTUVSX01TVyByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfVElNRVJfTVNXX3Jlc2VydmVkX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDAKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX1RJTUVSX01TV19yZXNlcnZlZF9TIDE2CiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX1RJTUVSX01TV19oaWJfcnRjX3RpbWVyX21zd19NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGICAvLyBVcHBlciAzMmIgdmFsdWUgb2YgdGhlIGxhdGNoZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSVEMtVGltZXIuCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19USU1FUl9NU1dfaGliX3J0Y190aW1lcl9tc3dfUyAwCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQovLyBISUIzUDNfT19NRU1fSElCX1JUQ19XQUtFX0VOIHJlZ2lzdGVyLgovLwovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19XQUtFX0VOX3Jlc2VydmVkX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkUKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX1dBS0VfRU5fcmVzZXJ2ZWRfUyAxCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX1dBS0VfRU5fbWVtX2hpYl9ydGNfd2FrZV9lbiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMSAgLy8gMSAtIEVuYWJsZSB0aGUgUlRDIHRpbWVyIGJhc2VkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2FrZXVwIGR1cmluZyBIaWJlcm5hdGUgbW9kZSA7IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtIERpc2FibGUgdGhlIFJUQyB0aW1lciBiYXNlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdha2V1cCBkdXJpbmcgSGliZXJuYXRlIG1vZGUgVGhpcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZ2lzdGVyIHdpbGwgYmUgcmVzZXQgZHVyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGliZXJuYXRlLVdPLUNsa3MgbW9kZSAoYnV0IG5vdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGR1cmluZyBIaWJlcm5hdGUtVy1DbGtzIG1vZGUpLgoKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX01FTV9ISUJfUlRDX1dBS0VfTFNXX0NPTkYgcmVnaXN0ZXIuCi8vCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX1dBS0VfTFNXX0NPTkZfbWVtX2hpYl9ydGNfd2FrZV9sc3dfY29uZl9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGICAvLyBDb25maWd1cmF0aW9uIGZvciBSVEMtVGltZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXYWtldXAgKExvd2VyIDMyYiB3b3JkKQoKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfV0FLRV9MU1dfQ09ORl9tZW1faGliX3J0Y193YWtlX2xzd19jb25mX1MgMAovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLwovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUKLy8gSElCM1AzX09fTUVNX0hJQl9SVENfV0FLRV9NU1dfQ09ORiByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfV0FLRV9NU1dfQ09ORl9yZXNlcnZlZF9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19XQUtFX01TV19DT05GX3Jlc2VydmVkX1MgMTYKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfV0FLRV9NU1dfQ09ORl9tZW1faGliX3J0Y193YWtlX21zd19jb25mX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkYgIC8vIENvbmZpZ3VyYXRpb24gZm9yIFJUQy1UaW1lcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdha2V1cCAoVXBwZXIgMTZiIHdvcmQpCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19XQUtFX01TV19DT05GX21lbV9oaWJfcnRjX3dha2VfbXN3X2NvbmZfUyAwCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQovLyBISUIzUDNfT19NRU1fSU5UX09TQ19DT05GIHJlZ2lzdGVyLgovLwovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgojZGVmaW5lIEhJQjNQM19NRU1fSU5UX09TQ19DT05GX3Jlc2VydmVkX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDAKCiNkZWZpbmUgSElCM1AzX01FTV9JTlRfT1NDX0NPTkZfcmVzZXJ2ZWRfUyAxNgojZGVmaW5lIEhJQjNQM19NRU1fSU5UX09TQ19DT05GX2NtX2Nsa19nb29kXzMya19pbnQgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDAgIC8vIDEgLSBJbnRlcm5hbCAzMmtIeiBPc2NpbGxhdG9yIGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFsaWQgOyAwIC0gSW50ZXJuYWwgMzJrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3NjaWxsYXRvciBjbGsgaXMgbm90IHZhbGlkCgojZGVmaW5lIEhJQjNQM19NRU1fSU5UX09TQ19DT05GX21lbV9jbV9pbnRvc2NfMzJrX3NwYXJlX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDdFMDAKCiNkZWZpbmUgSElCM1AzX01FTV9JTlRfT1NDX0NPTkZfbWVtX2NtX2ludG9zY18zMmtfc3BhcmVfUyA5CiNkZWZpbmUgSElCM1AzX01FTV9JTlRfT1NDX0NPTkZfbWVtX2NtX2VuX2ludG9zY18zMmtfb3ZlcnJpZGVfY3RybCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMCAgLy8gV2hlbiAxLCB0aGUgSU5UXzMyS19PU0NfRU4gY29tZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmcm9tIGJpdCBbMF0gb2YgdGhpcyByZWdpc3RlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbHNlIGNvbWVzIGZyb20gdGhlIEZTTS4gVGhpcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZ2lzdGVyIHdpbGwgYmUgcmVzZXQgZHVyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGliZXJuYXRlLVdPLUNsa3MgbW9kZSAoYnV0IG5vdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGR1cmluZyBIaWJlcm5hdGUtVy1DbGtzIG1vZGUpCgojZGVmaW5lIEhJQjNQM19NRU1fSU5UX09TQ19DT05GX05VMSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MAoKI2RlZmluZSBISUIzUDNfTUVNX0lOVF9PU0NfQ09ORl9tZW1fY21faW50b3NjXzMya190cmltX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwN0UKCiNkZWZpbmUgSElCM1AzX01FTV9JTlRfT1NDX0NPTkZfbWVtX2NtX2ludG9zY18zMmtfdHJpbV9TIDEKI2RlZmluZSBISUIzUDNfTUVNX0lOVF9PU0NfQ09ORl9tZW1fY21fZW5faW50b3NjXzMyayBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMSAgLy8gT3ZlcnJpZGUgdmFsdWUgZm9yIElOVF9PU0NfRU4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwbGljYWJsZSBvbmx5IHdoZW4gYml0IFszXSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgcmVnaXN0ZXIgaXMgc2V0IHRvIDEuCgovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLwovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUKLy8gSElCM1AzX09fTUVNX1hUQUxfT1NDX0NPTkYgcmVnaXN0ZXIuCi8vCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiNkZWZpbmUgSElCM1AzX01FTV9YVEFMX09TQ19DT05GX3Jlc2VydmVkX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGMDAwMDAKCiNkZWZpbmUgSElCM1AzX01FTV9YVEFMX09TQ19DT05GX3Jlc2VydmVkX1MgMjAKI2RlZmluZSBISUIzUDNfTUVNX1hUQUxfT1NDX0NPTkZfbWVtX2NtX2VuX3NsaV8zMmtfb3ZlcnJpZGVfY3RybCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMCAgLy8gV2hlbiAxLCB0aGUgU0xJQ0VSX0VOIGNvbWVzIGZyb20KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiaXQgWzEwXSBvZiB0aGlzIHJlZ2lzdGVyLCBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29tZXMgZnJvbSB0aGUgRlNNLgoKI2RlZmluZSBISUIzUDNfTUVNX1hUQUxfT1NDX0NPTkZfbWVtX2NtX2VuX3h0YWxfMzJrX292ZXJyaWRlX2N0cmwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDAgIC8vIFdoZW4gMSwgdGhlIFhUQUxfRU4gY29tZXMgZnJvbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJpdCBbMF0gb2YgdGhpcyByZWdpc3RlciwgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbWVzIGZyb20gdGhlIEZTTS4KCiNkZWZpbmUgSElCM1AzX01FTV9YVEFMX09TQ19DT05GX2NtX2Nsa19nb29kX3h0YWwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDAgIC8vIDEgLSBYVEFMIENsayBpcyBnb29kIDsgMCAtIFhUQUwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDbGsgaXMgeWV0IHRvIGJlIHZhbGlkLgoKI2RlZmluZSBISUIzUDNfTUVNX1hUQUxfT1NDX0NPTkZfbWVtX2NtX3h0YWxfdHJpbV9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGODAwCgojZGVmaW5lIEhJQjNQM19NRU1fWFRBTF9PU0NfQ09ORl9tZW1fY21feHRhbF90cmltX1MgMTEKI2RlZmluZSBISUIzUDNfTUVNX1hUQUxfT1NDX0NPTkZfbWVtX2NtX2VuX3NsaV8zMmsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDAgIC8vIFNMSUNFUl9FTiBPdmVycmlkZSB2YWx1ZSA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwbGljYWJsZSBvbmx5IHdoZW4gYml0IFsxOV0gb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHJlZ2lzdGVyIGlzIHNldCB0byAxLgoKI2RlZmluZSBISUIzUDNfTUVNX1hUQUxfT1NDX0NPTkZfbWVtX2NtX3NsaV8zMmtfdHJpbV9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzgwCgojZGVmaW5lIEhJQjNQM19NRU1fWFRBTF9PU0NfQ09ORl9tZW1fY21fc2xpXzMya190cmltX1MgNwojZGVmaW5lIEhJQjNQM19NRU1fWFRBTF9PU0NfQ09ORl9tZW1fY21fZnJlZl8zMmtfc2xpY2VyX2l0cmltX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNzAKCiNkZWZpbmUgSElCM1AzX01FTV9YVEFMX09TQ19DT05GX21lbV9jbV9mcmVmXzMya19zbGljZXJfaXRyaW1fUyA0CiNkZWZpbmUgSElCM1AzX01FTV9YVEFMX09TQ19DT05GX21lbV9jbV9lbl9mcmVmXzMya19zbGljZXIgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKCiNkZWZpbmUgSElCM1AzX01FTV9YVEFMX09TQ19DT05GX21lbV9jbV9lbl9pbnB1dF9zZW5zZV9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2CgojZGVmaW5lIEhJQjNQM19NRU1fWFRBTF9PU0NfQ09ORl9tZW1fY21fZW5faW5wdXRfc2Vuc2VfUyAxCiNkZWZpbmUgSElCM1AzX01FTV9YVEFMX09TQ19DT05GX21lbV9jbV9lbl94dGFsXzMyayBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMSAgLy8gWFRBTF9FTiBPdmVycmlkZSB2YWx1ZSA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwbGljYWJsZSBvbmx5IHdoZW4gYml0IFsxOF0gb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHJlZ2lzdGVyIGlzIHNldCB0byAxLgoKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX01FTV9CR0FQX1BBUkFNRVRFUlMwIHJlZ2lzdGVyLgovLwovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgojZGVmaW5lIEhJQjNQM19NRU1fQkdBUF9QQVJBTUVURVJTMF9yZXNlcnZlZF9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRjgwMDAwCgojZGVmaW5lIEhJQjNQM19NRU1fQkdBUF9QQVJBTUVURVJTMF9yZXNlcnZlZF9TIDE5CiNkZWZpbmUgSElCM1AzX01FTV9CR0FQX1BBUkFNRVRFUlMwX21lbV9lbl9zZXEgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDAKCiNkZWZpbmUgSElCM1AzX01FTV9CR0FQX1BBUkFNRVRFUlMwX21lbV92Ym9rNGJnX2NvbXBfdHJpbV9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFDMDAwCgojZGVmaW5lIEhJQjNQM19NRU1fQkdBUF9QQVJBTUVURVJTMF9tZW1fdmJvazRiZ19jb21wX3RyaW1fUyAxNAojZGVmaW5lIEhJQjNQM19NRU1fQkdBUF9QQVJBTUVURVJTMF9tZW1fYmdhcF9lbl92YmF0X29rXzRiZyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMAoKI2RlZmluZSBISUIzUDNfTUVNX0JHQVBfUEFSQU1FVEVSUzBfbWVtX2JnYXBfZW5fdmJvazRiZ19jb21wIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwCgojZGVmaW5lIEhJQjNQM19NRU1fQkdBUF9QQVJBTUVURVJTMF9tZW1fYmdhcF9lbl92Ym9rNGJnX2NvbXBfcmVmIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwCgojZGVmaW5lIEhJQjNQM19NRU1fQkdBUF9QQVJBTUVURVJTMF9tZW1fYmdhcF9zcGFyZV9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwM0ZGCgojZGVmaW5lIEhJQjNQM19NRU1fQkdBUF9QQVJBTUVURVJTMF9tZW1fYmdhcF9zcGFyZV9TIDAKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX01FTV9CR0FQX1BBUkFNRVRFUlMxIHJlZ2lzdGVyLgovLwovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgojZGVmaW5lIEhJQjNQM19NRU1fQkdBUF9QQVJBTUVURVJTMV9yZXNlcnZlZF9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwCgojZGVmaW5lIEhJQjNQM19NRU1fQkdBUF9QQVJBTUVURVJTMV9yZXNlcnZlZF9TIDI5CiNkZWZpbmUgSElCM1AzX01FTV9CR0FQX1BBUkFNRVRFUlMxX21lbV9iZ2FwX2FjdF9pcmVmX2l0cmltX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYwMDAwMDAKCiNkZWZpbmUgSElCM1AzX01FTV9CR0FQX1BBUkFNRVRFUlMxX21lbV9iZ2FwX2FjdF9pcmVmX2l0cmltX1MgMjQKI2RlZmluZSBISUIzUDNfTUVNX0JHQVBfUEFSQU1FVEVSUzFfbWVtX2JnYXBfZW5fYWN0X2lyZWYgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKCiNkZWZpbmUgSElCM1AzX01FTV9CR0FQX1BBUkFNRVRFUlMxX21lbV9iZ2FwX2VuX3YyaSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNAoKI2RlZmluZSBISUIzUDNfTUVNX0JHQVBfUEFSQU1FVEVSUzFfbWVtX2JnYXBfZW5fY2FwX3N3IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyCgojZGVmaW5lIEhJQjNQM19NRU1fQkdBUF9QQVJBTUVURVJTMV9tZW1fYmdhcF9lbiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQoKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX01FTV9ISUJfREVURUNUSU9OX1NUQVRVUyByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9ERVRFQ1RJT05fU1RBVFVTX3Jlc2VydmVkX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGODAKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfREVURUNUSU9OX1NUQVRVU19yZXNlcnZlZF9TIDcKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9ERVRFQ1RJT05fU1RBVFVTX2hpYl9mb3JjZWRfYW5hX3N0YXR1cyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MCAgLy8gMSAtIDEuOCBWIHN1cHBseSBmb3JjZWQgbW9kZS4KCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfREVURUNUSU9OX1NUQVRVU19oaWJfZm9yY2VkX2ZsYXNoX3N0YXR1cyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNCAgLy8gMSAtIDMuMyBWIHN1cHBseSBmb3JjZWQgbW9kZSBmb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGbGFzaCBzdXBwbHkKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfREVURUNUSU9OX1NUQVRVU19oaWJfZXh0X2Nsa19kZXRfb3V0X3N0YXR1cyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMiAgLy8gMSAtIEZvcmNlZCBjbG9jayBtb2RlCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX0RFVEVDVElPTl9TVEFUVVNfaGliX3h0YWxfZGV0X291dF9zdGF0dXMgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEgIC8vIDEgLSBYVEFMIGNsb2NrIG1vZGUKCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQovLyBISUIzUDNfT19NRU1fSElCX01JU0NfQ09OVFJPTFMgcmVnaXN0ZXIuCi8vCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfTUlTQ19DT05UUk9MU19yZXNlcnZlZF9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGODAwCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX01JU0NfQ09OVFJPTFNfcmVzZXJ2ZWRfUyAxMQojZGVmaW5lIEhJQjNQM19NRU1fSElCX01JU0NfQ09OVFJPTFNfbWVtX2hpYl9lbl9wb2tfcG9yX2NvbXAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDAKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfTUlTQ19DT05UUk9MU19tZW1faGliX2VuX3Bva19wb3JfY29tcF9yZWYgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDAKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfTUlTQ19DT05UUk9MU19tZW1faGliX3Bva19wb3JfY29tcF90cmltX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzAKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfTUlTQ19DT05UUk9MU19tZW1faGliX3Bva19wb3JfY29tcF90cmltX1MgNgojZGVmaW5lIEhJQjNQM19NRU1fSElCX01JU0NfQ09OVFJPTFNfTlUxIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX01JU0NfQ09OVFJPTFNfbWVtX2hpYl9mbGFzaF9kZXRfZW4gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTAKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfTUlTQ19DT05UUk9MU19tZW1faGliX2VuX3RtdXggXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQovLyBISUIzUDNfT19NRU1fSElCX0NPTkZJRyByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9DT05GSUdfVE9QX01VWF9DVFJMX1NPUF9TUElPX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDAKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfQ09ORklHX1RPUF9NVVhfQ1RSTF9TT1BfU1BJT19TIDI0CiNkZWZpbmUgSElCM1AzX01FTV9ISUJfQ09ORklHX0VOX0FOQV9ESUdfU0hBUkVEMyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMCAgLy8gMSAtIEVuYWJsZSBWRERfRkxBU0hfSU5EUF9QQUQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgZGlnaXRhbCBwYXRoIChTSEFSRUQ0KSA7IDAgLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERpc2FibGUgVkREX0ZMQVNIX0lORFBfUEFEIGZvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpZ2l0YWwgcGF0aCAoU0hBUkVENCkgOyBCZWZvcmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcm9ncmFtbWluZyB0aGlzIGJpdCB0byAxLCBlbnN1cmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IHRoZSBkZXZpY2UgaXMgaW4gRk9SQ0VEIDMuMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN1cHBseSBNb2RlLCB3aGljaCBjYW4gYmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbmZlcnJlZCBmcm9tIHRoZSByZWdpc3RlciA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTUVNX0hJQl9ERVRFQ1RJT05fU1RBVFVTIDogMHgwMDQwCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX0NPTkZJR19FTl9BTkFfRElHX1NIQVJFRDIgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDAgIC8vIDEgLSBFbmFibGUgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVkREX0ZCX0dQSU9fTVVYX1BBRCBmb3IgZGlnaXRhbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBhdGggKFNIQVJFRDMpIDsgMCAtIERpc2FibGUgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVkREX0ZCX0dQSU9fTVVYX1BBRCBmb3IgZGlnaXRhbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBhdGggKFNIQVJFRDMpIDsgVGhpcyBwaW4gY2FuIGJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXNlZCBvbmx5IGluIG1vZGVzIG90aGVyIHRoYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTT1AoIjExMSIpCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX0NPTkZJR19FTl9BTkFfRElHX1NIQVJFRDEgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDAgIC8vIDEgLSBFbmFibGUgdGhlIFBNX1RFU1RfUEFEIGZvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpZ2l0YWwgR1BJTyBwYXRoIChTSEFSRUQyKSA7IDAgLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERpc2FibGUgdGhlIFBNX1RFU1RfUEFEIGZvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpZ2l0YWwgR1BJTyBwYXRoIChTSEFSRUQyKSBUaGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGluIGNhbiBiZSB1c2VkIGZvciBkaWdpdGFsIG9ubHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiBtb2RlcyBvdGhlciB0aGVuIFNPUC0xMTEKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfQ09ORklHX0VOX0FOQV9ESUdfU0hBUkVEMCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMCAgLy8gMSAtIEVuYWJsZSB0aGUgWFRBTF9OIHBpbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpZ2l0YWwgR1BJTyBwYXRoIChTSEFSRUQxKTsgMCAtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGlzYWJsZSB0aGUgWFRBTF9OIHBpbiBkaWdpdGFsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR1BJTyBwYXRoIChTSEFSRUQxKS4gQmVmb3JlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJvZ3JhbW1pbmcgdGhpcyBiaXQgdG8gMSwgZW5zdXJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCB0aGUgZGV2aWNlIGlzIGluIEZPUkNFRCBDTEsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBNb2RlLCB3aGljaCBjYW4gaW5mZXJyZWQgZnJvbSB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWdpc3RlciA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTUVNX0hJQl9ERVRFQ1RJT05fU1RBVFVTIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAweDAwNDAuCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX0NPTkZJR19tZW1faGliX3h0YWxfZW5hYmxlIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwICAvLyAxIC0gRW5hYmxlIHRoZSBYVEFMIENsb2NrIDsgMCAtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG9ub3QgZW5hYmxlIHRoZSBYVEFMIENsb2NrLiBUaGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYml0IGhhcyB0byBiZSBwcm9ncmFtbWVkIHRvIDEgKGJ5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQVBQUyBEZXZpbml0IEYvdyksIGR1cmluZyBleGl0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnJvbSBPRkYgb3IgSGliX3dvX2Nsa3MgbW9kZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWZ0ZXIgY2hlY2tpbmcgaWYgdGhlIHNsb3dfY2xrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW9kZSBpcyBYVEFMX0NMSyBtb2RlLiBPbmNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZW5hYmxlZCB0aGUgWFRBTCB3aWxsIGJlIGRpc2FibGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25seSBhZnRlciBlbnRlcmluZyBISUJfV09fQ0xLUwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vZGUuIFRoaXMgcmVnaXN0ZXIgd2lsbCBiZSByZXNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGR1cmluZyBIaWJlcm5hdGUgLVdPLUNsa3MgbW9kZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIChidXQgbm90IGR1cmluZyBIaWJlcm5hdGUtVy1DbGtzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW9kZSkuCgovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLwovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUKLy8gSElCM1AzX09fTUVNX0hJQl9SVENfSVJRX0VOQUJMRSByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfSVJRX0VOQUJMRV9ISUJfUlRDX0lSUV9FTkFCTEUgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEgIC8vIDEgLSBFbmFibGUgdGhlIEhJQiBSVEMgLSBJUlEgOyAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLSBEaXNhYmxlIHRoZSBISUIgUlRDIC0gSVJRCgovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLwovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUKLy8gSElCM1AzX09fTUVNX0hJQl9SVENfSVJRX0xTV19DT05GIHJlZ2lzdGVyLgovLwovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19JUlFfTFNXX0NPTkZfSElCX1JUQ19JUlFfTFNXX0NPTkZfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiAgLy8gQ29uZmlndXJhdGlvbiBmb3IgTFNXIG9mIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJUQy1UaW1lc3RhbXAgYXQgd2hpY2ggaW50ZXJydXB0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmVlZCB0byBiZSBnZW5lcmF0ZWQKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX0lSUV9MU1dfQ09ORl9ISUJfUlRDX0lSUV9MU1dfQ09ORl9TIDAKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX01FTV9ISUJfUlRDX0lSUV9NU1dfQ09ORiByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfSVJRX01TV19DT05GX0hJQl9SVENfSVJRX01TV19DT05GX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkYgIC8vIENvbmZpZ3VyYXRpb24gZm9yIE1TVyBvZiB0aHIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSVEMtVGltZXN0YW1wIGF0IHdoaWNoIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGludGVycnVwdCBuZWVkIHRvIGJlIGdlbmVyYXRlZAoKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfSVJRX01TV19DT05GX0hJQl9SVENfSVJRX01TV19DT05GX1MgMAovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLwovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUKLy8gSElCM1AzX09fTUVNX0hJQl9VQVJUX0NPTkYgcmVnaXN0ZXIuCi8vCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfVUFSVF9DT05GX3Jlc2VydmVkX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkUKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfVUFSVF9DT05GX3Jlc2VydmVkX1MgMQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1VBUlRfQ09ORl9tZW1faGliX3VhcnRfd2FrZV9lbiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMSAgLy8gMSAtIEVuYWJsZSB0aGUgVUFSVC1BdXRvbm9tb3VzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW9kZSB3YWtldXAgZHVyaW5nIEhpYmVybmF0ZSBtb2RlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gOyBUaGlzIGlzIGFuIGF1dG8tY2xlYXIgYml0LCBvbmNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJvZ3JhbW1lZCB0byAxLCBpdCB3aWxsIGxhdGNoZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnRvIGFuIGludGVybmFsIHJlZ2lzdGVyIHdoaWNoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVtYWluIGFzc2VydGVkIHVudGlsIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhpYi13YWtldXAgaXMgaW5pdGlhdGVkLgoKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX01FTV9HUElPX1dBS0VfRU4gcmVnaXN0ZXIuCi8vCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiNkZWZpbmUgSElCM1AzX01FTV9HUElPX1dBS0VfRU5fcmVzZXJ2ZWRfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkYwMAoKI2RlZmluZSBISUIzUDNfTUVNX0dQSU9fV0FLRV9FTl9yZXNlcnZlZF9TIDgKI2RlZmluZSBISUIzUDNfTUVNX0dQSU9fV0FLRV9FTl9tZW1fZ3Bpb193YWtlX2VuX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwRkYgIC8vIDEgLSBFbmFibGUgdGhlIEdQSU8tQXV0b25vbW91cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vZGUgd2FrZXVwIGR1cmluZyBIaWJlcm5hdGUgbW9kZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDsgVGhpcyBpcyBhbiBhdXRvLWNsZWFyIGJpdCwgb25jZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByb2dyYW1tZWQgdG8gMSwgaXQgd2lsbCBsYXRjaGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW50byBhbiBpbnRlcm5hbCByZWdpc3RlciB3aGljaAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbWFpbiBhc3NlcnRlZCB1bnRpbCB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBIaWItd2FrZXVwIGlzIGluaXRpYXRlZC4KCiNkZWZpbmUgSElCM1AzX01FTV9HUElPX1dBS0VfRU5fbWVtX2dwaW9fd2FrZV9lbl9TIDAKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX01FTV9HUElPX1dBS0VfQ09ORiByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfTUVNX0dQSU9fV0FLRV9DT05GX3Jlc2VydmVkX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDAKCiNkZWZpbmUgSElCM1AzX01FTV9HUElPX1dBS0VfQ09ORl9yZXNlcnZlZF9TIDE2CiNkZWZpbmUgSElCM1AzX01FTV9HUElPX1dBS0VfQ09ORl9tZW1fZ3Bpb193YWtlX2NvbmZfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRiAgLy8gQ29uZmlndXJhdGlvbiB0byBzYXkgd2hldGhlciB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBHUElPIHdha2V1cCBoYXMgdG8gaGFwcGVuIG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTGV2ZWwwIG9yIGZhbGxpbmctZWRnZSBmb3IgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ2l2ZW4gZ3JvdXAuIOKAnDAw4oA/IOKAkyBMZXZlbDAg4oCcMDHigD8g4oCTCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTGV2ZWwxIOKAnDEw4oA/LSBGYWxsLWVkZ2Ug4oCcMTHigD8tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmlzZS1lZGdlIFsxOjBdIOKAkyBDb25mIGZvciBHUElPMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFszOjJdIOKAkyBDb25mIGZvciBHUElPMSBbNTo0XSDigJMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDb25mIGZvciBHUElPMiBbNzo2XSDigJMgQ29uZiBmb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBHUElPMyBbOTo4XSDigJMgQ29uZiBmb3IgR1BJTzQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBbMTE6MTBdIOKAkyBDb25mIGZvciBHUElPNSBbMTM6MTJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g4oCTIENvbmYgZm9yIEdQSU82CgojZGVmaW5lIEhJQjNQM19NRU1fR1BJT19XQUtFX0NPTkZfbWVtX2dwaW9fd2FrZV9jb25mX1MgMAovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLwovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUKLy8gSElCM1AzX09fTUVNX1BBRF9PRU5fUkVUMzNfQ09ORiByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfTUVNX1BBRF9PRU5fUkVUMzNfQ09ORl9tZW1fcGFkX29lbl9yZXQzM19vdmVycmlkZV9jdHJsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0ICAvLyAxIC0gT3ZlcnJpZGUgdGhlIE9FTjMzIGFuZCBSRVQzMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRyb2xzIG9mIEdQSU9zIGR1cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNPUC1Cb290ZGVidWcgbW9kZSA7IDAgLSBEb25vdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG92ZXJyaWRlIHRoZSBPRU4zMyBhbmQgUkVUMzMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb250cm9scyBvZiBHUElPcyBkdXJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTT1AtQm9vdGRlYnVnIG1vZGUKCiNkZWZpbmUgSElCM1AzX01FTV9QQURfT0VOX1JFVDMzX0NPTkZfUEFEX09FTjMzX0NPTkYgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKCiNkZWZpbmUgSElCM1AzX01FTV9QQURfT0VOX1JFVDMzX0NPTkZfUEFEX1JFVDMzX0NPTkYgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQovLyBISUIzUDNfT19NRU1fVUFSVF9SVFNfT0VOX1JFVDMzX0NPTkYgcmVnaXN0ZXIuCi8vCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiNkZWZpbmUgSElCM1AzX01FTV9VQVJUX1JUU19PRU5fUkVUMzNfQ09ORl9tZW1fdWFydF9ucnRzX29lbl9yZXQzM19vdmVycmlkZV9jdHJsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0ICAvLyAxIC0gT3ZlcnJpZGUgdGhlIE9FTjMzIGFuZCBSRVQzMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRyb2xzIG9mIFVBUlQgTlJUUyBHUElPIGR1cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNPUC1Cb290ZGVidWcgbW9kZSA7IDAgLSBEb25vdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG92ZXJyaWRlIHRoZSBPRU4zMyBhbmQgUkVUMzMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb250cm9scyBvZiBVQVJUIE5SVFMgR1BJTyBkdXJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTT1AtQm9vdGRlYnVnIG1vZGUKCiNkZWZpbmUgSElCM1AzX01FTV9VQVJUX1JUU19PRU5fUkVUMzNfQ09ORl9QQURfVUFSVF9SVFNfT0VOMzNfQ09ORiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMgoKI2RlZmluZSBISUIzUDNfTUVNX1VBUlRfUlRTX09FTl9SRVQzM19DT05GX1BBRF9VQVJUX1JUU19SRVQzM19DT05GIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCgovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLwovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUKLy8gSElCM1AzX09fTUVNX0pUQUdfQ09ORiByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfTUVNX0pUQUdfQ09ORl9tZW1fanRhZzFfb2VuX3JldDMzX292ZXJyaWRlX2N0cmwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDAKCiNkZWZpbmUgSElCM1AzX01FTV9KVEFHX0NPTkZfbWVtX2p0YWcwX29lbl9yZXQzM19vdmVycmlkZV9jdHJsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwCgojZGVmaW5lIEhJQjNQM19NRU1fSlRBR19DT05GX1BBRF9KVEFHMV9SVFNfT0VOMzNfQ09ORiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAoKI2RlZmluZSBISUIzUDNfTUVNX0pUQUdfQ09ORl9QQURfSlRBRzFfUlRTX1JFVDMzX0NPTkYgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDQKCiNkZWZpbmUgSElCM1AzX01FTV9KVEFHX0NPTkZfUEFEX0pUQUcwX1JUU19PRU4zM19DT05GIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyCgojZGVmaW5lIEhJQjNQM19NRU1fSlRBR19DT05GX1BBRF9KVEFHMF9SVFNfUkVUMzNfQ09ORiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQoKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX01FTV9ISUJfUkVHMCByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SRUcwX21lbV9oaWJfcmVnMF9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JFRzBfbWVtX2hpYl9yZWcwX1MgMAovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLwovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUKLy8gSElCM1AzX09fTUVNX0hJQl9SRUcxIHJlZ2lzdGVyLgovLwovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JFRzFfbWVtX2hpYl9yZWcxX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUkVHMV9tZW1faGliX3JlZzFfUyAwCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQovLyBISUIzUDNfT19NRU1fSElCX1JFRzIgcmVnaXN0ZXIuCi8vCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUkVHMl9tZW1faGliX3JlZzJfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRgoKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SRUcyX21lbV9oaWJfcmVnMl9TIDAKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX01FTV9ISUJfUkVHMyByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SRUczX21lbV9oaWJfcmVnM19NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JFRzNfbWVtX2hpYl9yZWczX1MgMAovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLwovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUKLy8gSElCM1AzX09fTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMCByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMF9tZW1fYmRjX2V2MF90b19ldjFfdGltZV9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwICAvLyBDb25maWd1cmF0aW9uIGZvciB0aGUgbnVtYmVyIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2xvdy1jbGtzIGJldHdlZW4gZGUtYXNzZXJ0aW9uIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRU5fQkdfM1AzViB0byBhc3NlcnRpb24gb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFTl9CR18zUDNWCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcwX21lbV9iZGNfZXYwX3RvX2V2MV90aW1lX1MgMTYKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMF9OVTEgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDAKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzBfbWVtX2JkY19ldjNfdG9fZXY0X3RpbWVfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNjAwMCAgLy8gQ29uZmlndXJhdGlvbiBmb3IgdGhlIG51bWJlciBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNsb3ctY2xrcyBiZXR3ZWVuIGFzc2VydGlvbiBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVOX0NPTVBfM1AzViBhbmQgYXNzZXJ0aW9uIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRU5fQ09NUF9MQVRDSF8zUDNWCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcwX21lbV9iZGNfZXYzX3RvX2V2NF90aW1lX1MgMTMKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMF9tZW1fYmRjX2V2Ml90b19ldjNfdGltZV9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxODAwICAvLyBDb25maWd1cmF0aW9uIGZvciB0aGUgbnVtYmVyIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2xvdy1jbGtzIGJldHdlZW4gYXNzZXJ0aW9uIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKEVOX0NBUF9TV18zUDNWLEVOX0NPTVBfUkVGKSBhbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhc3NlcnRpb24gb2YgKEVOX0NPTVBfM1AzVikKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzBfbWVtX2JkY19ldjJfdG9fZXYzX3RpbWVfUyAxMQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcwX21lbV9iZGNfZXYxX3RvX2V2Ml90aW1lX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDAgIC8vIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBudW1iZXIgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzbG93LWNsa3MgYmV0d2VlbiBhc3NlcnRpb24gb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAoRU5fQkdfM1AzVikgYW5kIGFzc2VydGlvbiBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIChFTl9DQVBfU1dfM1AzViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFTl9DT01QX1JFRl8zUDNWKQoKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMF9tZW1fYmRjX2V2MV90b19ldjJfdGltZV9TIDkKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMF9tZW1fZW5fY3J1ZGVfcmVmX2NvbXAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzBfbWVtX2VuX3Zib2s0YmdfcmVmX292ZXJyaWRlX2N0cmwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODAgIC8vIDEgLSBFTl9WQk9LNEJHX1JFRiBjb21lcyBmcm9tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYml0WzEwXSBvZiB0aGUgcmVnaXN0ZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBNRU1fQkdBUF9QQVJBTUVURVJTMCBbMHgwMDM4XS4gMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0gRU5fVkJPSzRCR19SRUYgY29tZXMgZGlyZWN0bHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmcm9tIHRoZSBIaWItU2VxdWVuY2VyLgoKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMF9tZW1fZW5fdmJvazRiZ19jb21wX292ZXJyaWRlX2N0cmwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDAgIC8vIDEgLSBFTl9WQk9LNEJHIGNvbWVzIGZyb20KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiaXRbMTFdIG9mIHRoZSByZWdpc3RlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1FTV9CR0FQX1BBUkFNRVRFUlMwIFsweDAwMzhdLiAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLSBFTl9WQk9LNEJHIGNvbWVzIGRpcmVjdGx5IGZyb20KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgSGliLVNlcXVlbmNlci4KCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzBfbWVtX2VuX3YyaV9vdmVycmlkZV9jdHJsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwICAvLyAxIC0gRU5fVjJJIGNvbWVzIGZyb20gYml0WzJdIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJlZ2lzdGVyIE1FTV9CR0FQX1BBUkFNRVRFUlMxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gWzB4MDAzQ10uIDAgLSBFTl9WMkkgY29tZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkaXJlY3RseSBmcm9tIHRoZSBIaWItU2VxdWVuY2VyLgoKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMF9tZW1fcG9yX2NvbXBfcmVmX292ZXJyaWRlX2N0cmwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTAgIC8vIDEgLSBFTl9QT1JfQ09NUF9SRUYgY29tZXMgZnJvbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJpdFs5XSBvZiB0aGUgcmVnaXN0ZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBNRU1fSElCX01JU0NfQ09OVFJPTFMgWzB4MDA0NF0uIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtIEVOX1BPUl9DT01QX1JFRiBjb21lcyBkaXJlY3RseQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZyb20gdGhlIEhpYi1TZXF1ZW5jZXIuCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcwX21lbV9lbl9wb3JfY29tcF9vdmVycmlkZV9jdHJsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4ICAvLyAxIC0gRU5fUE9SX0NPTVAgY29tZXMgZnJvbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJpdFsxMF0gb2YgdGhlIHJlZ2lzdGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTUVNX0hJQl9NSVNDX0NPTlRST0xTIFsweDA0NF0uIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtIEVOX1BPUl9DT01QIGNvbWVzIGRpcmVjdGx5IGZyb20KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgSGliLVNlcXVlbmNlci4KCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzBfbWVtX2NhcF9zd19vdmVycmlkZV9jdHJsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0ICAvLyAxIC0gRU5fQ0FQX1NXIGNvbWVzIGZyb20gYml0WzFdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHJlZ2lzdGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTUVNX0JHQVBfUEFSQU1FVEVSUzEgWzB4MDAzQ10uIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtIEVOX0NBUF9TVyBjb21lcyBkaXJlY3RseSBmcm9tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGliLVNlcXVlbmNlci4KCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzBfbWVtX2JnX292ZXJyaWRlX2N0cmwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIgIC8vIDEgLSBFTl9CR0FQIGNvbWVzIGZyb20gYml0WzBdIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJlZ2lzdGVyIE1FTV9CR0FQX1BBUkFNRVRFUlMxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gWzB4MDAzQ10uIDAgLSBFTl9CR0FQIGNvbWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGlyZWN0bHkgZnJvbSBIaWItU2VxdWVuY2VyLgoKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMF9tZW1fYWN0X2lyZWZfb3ZlcnJpZGVfY3RybCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQoKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzEgcmVnaXN0ZXIuCi8vCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzFfcmVzZXJ2ZWRfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMAoKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMV9yZXNlcnZlZF9TIDE2CiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzFfbWVtX2JkY19ldjVfdG9fZXY2X3RpbWVfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwQzAwMCAgLy8gQ29uZmlndXJhdGlvbiBmb3IgbnVtYmVyIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2xvdy1jbGtzIGJldHdlZW4gZGUtYXNzZXJ0aW9uIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRU5fQ09NUF9MQVRDSCBhbmQgYXNzZXJ0aW9uIG9mCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcxX21lbV9iZGNfZXY1X3RvX2V2Nl90aW1lX1MgMTQKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMV9tZW1fYmRjX3RvX2FjdGl2ZV9ldjFfdG9fZXYyX3RpbWVfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMCAgLy8gQ29uZmlndXJhdGlvbiBmb3IgbnVtYmVyIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2xvdy1jbGtzIGJldHdlZW4gYXNzZXJ0aW9uIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRU5fQ09NUF9SRUYgdG8gYXNzZXJ0aW9uIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRU5fQ09NUCBkdXJpbmcgSElCLUV4aXQKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzFfbWVtX2JkY190b19hY3RpdmVfZXYxX3RvX2V2Ml90aW1lX1MgMTIKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMV9tZW1fYmRjX3RvX2FjdGl2ZV9ldjBfdG9fZXYxX3RpbWVfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMEMwMCAgLy8gVEJECgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcxX21lbV9iZGNfdG9fYWN0aXZlX2V2MF90b19ldjFfdGltZV9TIDEwCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzFfbWVtX2JkY190b19hY3RpdmVfZXYwX3RvX2FjdGl2ZV9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwICAvLyBDb25maWd1cmF0aW9uIGluIG51bWJlciBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNsb3ctY2xrcyBiZXR3ZWVuIGFzc2VydGlvbiBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIChFTl9CR0FQXzNQM1YsIEVOX0NBUF9TV18zUDNWLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVOX0FDVF9JUkVGXzNQM1YsIEVOX0NPTVBfUkVGKSB0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFzc2VydGlvbiBvZiBFTl9DT01QXzNQM1YKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzFfbWVtX2JkY190b19hY3RpdmVfZXYwX3RvX2FjdGl2ZV9TIDgKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMV9tZW1fYWN0aXZlX3RvX2JkY19ldjFfdG9fYmRjX2V2MF90aW1lX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwQzAgIC8vIENvbmZpZ3VyYXRpb24gaW4gbnVtYmVyIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2xvdy1jbGtzIGJldHdlZW4gZGUtYXNzZXJ0aW9uIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKEVOX0NPTVBfM1AzViwgRU5fQ09NUF9SRUZfM1AzViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFTl9BQ1RfSVJFRl8zUDNWLCBFTl9DQVBfU1dfM1AzVikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBkZWFzc2VydGlvbiBvZiBFTl9CR0FQXzNQM1YuCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcxX21lbV9hY3RpdmVfdG9fYmRjX2V2MV90b19iZGNfZXYwX3RpbWVfUyA2CiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzFfTlUxX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwM0YKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzFfTlUxX1MgMAovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLwovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUKLy8gSElCM1AzX09fTUVNX0hJQl9NSVNDX0NPTkZJRyByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9NSVNDX0NPTkZJR19tZW1fZW5fcGxsX3VudHJpbV9jdXJyZW50IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCgovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLwovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUKLy8gSElCM1AzX09fTUVNX0hJQl9XQUtFX1NUQVRVUyByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9XQUtFX1NUQVRVU19oaWJfd2FrZV9zcmNfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxRSAgLy8gIjAxMDAiIC0gR1BJTyA7ICIwMDEwIiAtIFJUQyA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIjAwMDEiIC0gVUFSVCBPdGhlcnMgLSBSZXNlcnZlZAoKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9XQUtFX1NUQVRVU19oaWJfd2FrZV9zcmNfUyAxCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfV0FLRV9TVEFUVVNfaGliX3dha2Vfc3RhdHVzIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxICAvLyAxIC0gV2FrZSBmcm9tIEhpYmVybmF0ZSA7IDAgLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdha2UgZnJvbSBPRkYKCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQovLyBISUIzUDNfT19NRU1fSElCX0xQRFNfR1BJT19TRUwgcmVnaXN0ZXIuCi8vCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfTFBEU19HUElPX1NFTF9ISUJfTFBEU19HUElPX1NFTF9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3CgojZGVmaW5lIEhJQjNQM19NRU1fSElCX0xQRFNfR1BJT19TRUxfSElCX0xQRFNfR1BJT19TRUxfUyAwCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQovLyBISUIzUDNfT19NRU1fSElCX1NFUVVFTkNFUl9DRkcyIHJlZ2lzdGVyLgovLwovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcyX3Jlc2VydmVkX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkY4MDAKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzJfcmVzZXJ2ZWRfUyAxMQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcyX21lbV9hY3RpdmVfdG9fYmRjX2V2MF90b19hY3RpdmVfdG9fYmRjX2V2MV90aW1lX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDAgIC8vIERlYXNzZXJ0aW9uIG9mIEVOX0NPTVBfTEFUQ0hfM1AzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gZGVhc3NlcnRpb24gb2YgKEVOX0NPTVBfM1AzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVOX0NPTVBfUkVGXzNQMywgRU5fQUNUX0lSRUZfM1AzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVOX0NBUF9TV18zUDMpCgojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcyX21lbV9hY3RpdmVfdG9fYmRjX2V2MF90b19hY3RpdmVfdG9fYmRjX2V2MV90aW1lX1MgOQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcyX21lbV9iZGNfZXY0X3RvX2V2NV90aW1lX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxQzAgIC8vIEFzc2VydGlvbiBvZiBFTl9DT01QX0xBVENIXzNQMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGRlYXNzZXJ0aW9uIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRU5fQ09NUF9MQVRDSF8zUDMKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzJfbWVtX2JkY19ldjRfdG9fZXY1X3RpbWVfUyA2CiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzJfbWVtX2JkY19ldjZfdG9fZXY3X3RpbWVfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzMCAgLy8gRGVhc3NlcnRpb24gb2YgKEVOX0NBUF9TV18zUDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRU5fQ09NUF9SRUZfM1AzLCBFTl9DT01QXzNQMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFTl9DT01QX09VVF9MQVRDSF8zUDMpIHRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVhc3NlcnRpb24gb2YgRU5fQkdBUF8zUDMKCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzJfbWVtX2JkY19ldjZfdG9fZXY3X3RpbWVfUyA0CiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzJfbWVtX2JkY190b19hY3RpdmVfZXYxX3RvX2V2Ml90aW1lX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEMgIC8vIEFzc2VydGlvbiBvZiBFTl9DT01QXzNQMyB0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFzc2VydGlvbiBvZiBFTl9DT01QT1VUX0xBVENIXzNQMwoKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMl9tZW1fYmRjX3RvX2FjdGl2ZV9ldjFfdG9fZXYyX3RpbWVfUyAyCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzJfbWVtX2hpYl90b19hY3RpdmVfZXYyX3RvX2V2M190aW1lX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDMgIC8vIEFzc2VydGlvbiBvZiBFTl9DT01QXzNQMyB0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFzc2VydGlvbiBvZiBFTl9DT01QT1VUX0xBVENIXzNQMwoKI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMl9tZW1faGliX3RvX2FjdGl2ZV9ldjJfdG9fZXYzX3RpbWVfUyAwCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQovLyBISUIzUDNfT19ISUJBTkFfU1BBUkVfTE9XViByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfSElCQU5BX1NQQVJFX0xPV1ZfbWVtX2hpYmFuYV9zcGFyZTFfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkMwMDAwMAoKI2RlZmluZSBISUIzUDNfSElCQU5BX1NQQVJFX0xPV1ZfbWVtX2hpYmFuYV9zcGFyZTFfUyAyMgojZGVmaW5lIEhJQjNQM19ISUJBTkFfU1BBUkVfTE9XVl9tZW1faGliYW5hX3NwYXJlMF9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGRkZGCgojZGVmaW5lIEhJQjNQM19ISUJBTkFfU1BBUkVfTE9XVl9tZW1faGliYW5hX3NwYXJlMF9TIDAKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX0hJQl9UTVVYX0NUUkwgcmVnaXN0ZXIuCi8vCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiNkZWZpbmUgSElCM1AzX0hJQl9UTVVYX0NUUkxfcmVzZXJ2ZWRfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkMwMAoKI2RlZmluZSBISUIzUDNfSElCX1RNVVhfQ1RSTF9yZXNlcnZlZF9TIDEwCiNkZWZpbmUgSElCM1AzX0hJQl9UTVVYX0NUUkxfbWVtX2hkX3RtdXhfY250cmxfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDNGRgoKI2RlZmluZSBISUIzUDNfSElCX1RNVVhfQ1RSTF9tZW1faGRfdG11eF9jbnRybF9TIDAKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX0hJQl8xUDJfMVA4X0xET19UUklNIHJlZ2lzdGVyLgovLwovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgojZGVmaW5lIEhJQjNQM19ISUJfMVAyXzFQOF9MRE9fVFJJTV9yZXNlcnZlZF9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGMDAwCgojZGVmaW5lIEhJQjNQM19ISUJfMVAyXzFQOF9MRE9fVFJJTV9yZXNlcnZlZF9TIDEyCiNkZWZpbmUgSElCM1AzX0hJQl8xUDJfMVA4X0xET19UUklNX21lbV9oZF8xcDJfbGRvX2VuX292ZXJyaWRlX2N0cmwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDAKCiNkZWZpbmUgSElCM1AzX0hJQl8xUDJfMVA4X0xET19UUklNX21lbV9oZF8xcDhfbGRvX2VuX292ZXJyaWRlX2N0cmwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDAKCiNkZWZpbmUgSElCM1AzX0hJQl8xUDJfMVA4X0xET19UUklNX21lbV9oZF8xcDJfbGRvX2VuX292ZXJyaWRlIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwCgojZGVmaW5lIEhJQjNQM19ISUJfMVAyXzFQOF9MRE9fVFJJTV9tZW1faGRfMXA4X2xkb19lbl9vdmVycmlkZSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMAoKI2RlZmluZSBISUIzUDNfSElCXzFQMl8xUDhfTERPX1RSSU1fbWVtX2hkXzFwMl9sZG9fdnRyaW1fTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMAoKI2RlZmluZSBISUIzUDNfSElCXzFQMl8xUDhfTERPX1RSSU1fbWVtX2hkXzFwMl9sZG9fdnRyaW1fUyA0CiNkZWZpbmUgSElCM1AzX0hJQl8xUDJfMVA4X0xET19UUklNX21lbV9oZF8xcDhfbGRvX3Z0cmltX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEYKCiNkZWZpbmUgSElCM1AzX0hJQl8xUDJfMVA4X0xET19UUklNX21lbV9oZF8xcDhfbGRvX3Z0cmltX1MgMAovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLwovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUKLy8gSElCM1AzX09fSElCX0NPTVBfVFJJTSByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfSElCX0NPTVBfVFJJTV9yZXNlcnZlZF9NIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkY4CgojZGVmaW5lIEhJQjNQM19ISUJfQ09NUF9UUklNX3Jlc2VydmVkX1MgMwojZGVmaW5lIEhJQjNQM19ISUJfQ09NUF9UUklNX21lbV9oZF9jb21wX3RyaW1fTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNwoKI2RlZmluZSBISUIzUDNfSElCX0NPTVBfVFJJTV9tZW1faGRfY29tcF90cmltX1MgMAovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLwovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUKLy8gSElCM1AzX09fSElCX0VOX1RTIHJlZ2lzdGVyLgovLwovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgojZGVmaW5lIEhJQjNQM19ISUJfRU5fVFNfcmVzZXJ2ZWRfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRQoKI2RlZmluZSBISUIzUDNfSElCX0VOX1RTX3Jlc2VydmVkX1MgMQojZGVmaW5lIEhJQjNQM19ISUJfRU5fVFNfbWVtX2hkX2VuX3RzIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCgovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLwovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUKLy8gSElCM1AzX09fSElCXzFQOFZfREVUX0VOIHJlZ2lzdGVyLgovLwovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgojZGVmaW5lIEhJQjNQM19ISUJfMVA4Vl9ERVRfRU5fcmVzZXJ2ZWRfTSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRQoKI2RlZmluZSBISUIzUDNfSElCXzFQOFZfREVUX0VOX3Jlc2VydmVkX1MgMQojZGVmaW5lIEhJQjNQM19ISUJfMVA4Vl9ERVRfRU5fbWVtX2hpYl8xcDh2X2RldF9lbiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQoKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX0hJQl9WQkFUX01PTl9FTiByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfSElCX1ZCQVRfTU9OX0VOX3Jlc2VydmVkX00gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkMKCiNkZWZpbmUgSElCM1AzX0hJQl9WQkFUX01PTl9FTl9yZXNlcnZlZF9TIDIKI2RlZmluZSBISUIzUDNfSElCX1ZCQVRfTU9OX0VOX21lbV9oaWJfdmJhdF9tb25fZGVsX2VuIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyCgojZGVmaW5lIEhJQjNQM19ISUJfVkJBVF9NT05fRU5fbWVtX2hpYl92YmF0X21vbl9lbiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQoKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlCi8vIEhJQjNQM19PX0hJQl9OSElCX0VOQUJMRSByZWdpc3Rlci4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKI2RlZmluZSBISUIzUDNfSElCX05ISUJfRU5BQkxFX21lbV9oaWJfbmhpYl9lbmFibGUgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQovLyBISUIzUDNfT19ISUJfVUFSVF9SVFNfU1dfRU5BQkxFIHJlZ2lzdGVyLgovLwovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgojZGVmaW5lIEhJQjNQM19ISUJfVUFSVF9SVFNfU1dfRU5BQkxFX21lbV9oaWJfdWFydF9ydHNfc3dfZW5hYmxlIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCgoKCgojZW5kaWYgLy8gX19IV19ISUIzUDNfSF9fCg==