LyoKICogTW90aWYgV2luZG93IE1hbmFnZXIgZGVmaW5pdGlvbnMKICoKICogQ29weXJpZ2h0IDIwMDEgT3ZlIEvldmVuLCBUcmFuc0dhbWluZyBUZWNobm9sb2dpZXMgSW5jLgogKiAodGhlc2UgZGVmaW5pdGlvbnMgd2VyZSBmb3VuZCBpbiBHVEsrIDEuMiwgZ2RrL013bVV0aWwuaCkKICovCiNpZm5kZWYgX19XSU5FX01XTV9ICiNkZWZpbmUgX19XSU5FX01XTV9ICgp0eXBlZGVmIHN0cnVjdCB7CiAgdW5zaWduZWQgbG9uZyBmbGFnczsKICB1bnNpZ25lZCBsb25nIGZ1bmN0aW9uczsKICB1bnNpZ25lZCBsb25nIGRlY29yYXRpb25zOwogIGxvbmcgaW5wdXRfbW9kZTsKICB1bnNpZ25lZCBsb25nIHN0YXR1czsKfSBNb3RpZldtSGludHMsIE13bUhpbnRzOwoKI2RlZmluZSBNV01fSElOVFNfRlVOQ1RJT05TICAgMQojZGVmaW5lIE1XTV9ISU5UU19ERUNPUkFUSU9OUyAyCiNkZWZpbmUgTVdNX0hJTlRTX0lOUFVUX01PREUgIDQKI2RlZmluZSBNV01fSElOVFNfU1RBVFVTICAgICAgOAoKI2RlZmluZSBNV01fRlVOQ19BTEwgICAgICAgICAgMHgwMQojZGVmaW5lIE1XTV9GVU5DX1JFU0laRSAgICAgICAweDAyCiNkZWZpbmUgTVdNX0ZVTkNfTU9WRSAgICAgICAgIDB4MDQKI2RlZmluZSBNV01fRlVOQ19NSU5JTUlaRSAgICAgMHgwOAojZGVmaW5lIE1XTV9GVU5DX01BWElNSVpFICAgICAweDEwCiNkZWZpbmUgTVdNX0ZVTkNfQ0xPU0UgICAgICAgIDB4MjAKCiNkZWZpbmUgTVdNX0RFQ09SX0FMTCAgICAgICAgIDB4MDEKI2RlZmluZSBNV01fREVDT1JfQk9SREVSICAgICAgMHgwMgojZGVmaW5lIE1XTV9ERUNPUl9SRVNJWkVIICAgICAweDA0CiNkZWZpbmUgTVdNX0RFQ09SX1RJVExFICAgICAgIDB4MDgKI2RlZmluZSBNV01fREVDT1JfTUVOVSAgICAgICAgMHgxMAojZGVmaW5lIE1XTV9ERUNPUl9NSU5JTUlaRSAgICAweDIwCiNkZWZpbmUgTVdNX0RFQ09SX01BWElNSVpFICAgIDB4NDAKCiNkZWZpbmUgTVdNX0lOUFVUX01PREVMRVNTICAgICAgICAgICAgICAgICAgMAojZGVmaW5lIE1XTV9JTlBVVF9QUklNQVJZX0FQUExJQ0FUSU9OX01PREFMIDEKI2RlZmluZSBNV01fSU5QVVRfU1lTVEVNX01PREFMICAgICAgICAgICAgICAyCiNkZWZpbmUgTVdNX0lOUFVUX0ZVTExfQVBQTElDQVRJT05fTU9EQUwgICAgMwojZGVmaW5lIE1XTV9JTlBVVF9BUFBMSUNBVElPTl9NT0RBTCAgICAgICAgIDEKCiNkZWZpbmUgTVdNX1RFQVJPRkZfV0lORE9XIDEKCnR5cGVkZWYgc3RydWN0IHsKICBsb25nIGZsYWdzOwogIFdpbmRvdyB3bV93aW5kb3c7Cn0gTW90aWZXbUluZm8sIE13bUluZm87CgojZGVmaW5lIE1XTV9JTkZPX1NUQVJUVVBfU1RBTkRBUkQgMQojZGVmaW5lIE1XTV9JTkZPX1NUQVJUVVBfQ1VTVE9NICAgMgoKI2RlZmluZSBfWEFfTU9USUZfV01fSElOVFMgICAgIl9NT1RJRl9XTV9ISU5UUyIKI2RlZmluZSBfWEFfTU9USUZfV01fTUVTU0FHRVMgIl9NT1RJRl9XTV9NRVNTQUdFUyIKI2RlZmluZSBfWEFfTU9USUZfV01fT0ZGU0VUICAgIl9NT1RJRl9XTV9PRkZTRVQiCiNkZWZpbmUgX1hBX01PVElGX1dNX01FTlUgICAgICJfTU9USUZfV01fTUVOVSIKI2RlZmluZSBfWEFfTU9USUZfV01fSU5GTyAgICAgIl9NT1RJRl9XTV9JTkZPIgoKI2RlZmluZSBfWEFfTVdNX0hJTlRTICAgIF9YQV9NT1RJRl9XTV9ISU5UUwojZGVmaW5lIF9YQV9NV01fTUVTU0FHRVMgX1hBX01PVElGX1dNX01FU1NBR0VTCiNkZWZpbmUgX1hBX01XTV9NRU5VICAgICBfWEFfTU9USUZfV01fTUVOVQojZGVmaW5lIF9YQV9NV01fSU5GTyAgICAgX1hBX01PVElGX1dNX0lORk8KCiNlbmRpZiAvKiBfX1dJTkVfTVdNX0ggKi8K