Ci8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgIENvcHlyaWdodCAoYykgMjAwMiwgSW5maW5lb24gVGVjaG5vbG9naWVzLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KCgkJCSAgICAgICBObyBXYXJyYW50eQogICBCZWNhdXNlIHRoZSBwcm9ncmFtIGlzIGxpY2Vuc2VkIGZyZWUgb2YgY2hhcmdlLCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IKICAgdGhlIHByb2dyYW0sIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGFwcGxpY2FibGUgbGF3LiAgRXhjZXB0IHdoZW4KICAgb3RoZXJ3aXNlIHN0YXRlZCBpbiB3cml0aW5nIHRoZSBjb3B5cmlnaHQgaG9sZGVycyBhbmQvb3Igb3RoZXIgcGFydGllcwogICBwcm92aWRlIHRoZSBwcm9ncmFtICJhcyBpcyIgd2l0aG91dCB3YXJyYW50eSBvZiBhbnkga2luZCwgZWl0aGVyCiAgIGV4cHJlc3NlZCBvciBpbXBsaWVkLCBpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bywgdGhlIGltcGxpZWQKICAgd2FycmFudGllcyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLiBUaGUKICAgZW50aXJlIHJpc2sgYXMgdG8gdGhlIHF1YWxpdHkgYW5kIHBlcmZvcm1hbmNlIG9mIHRoZSBwcm9ncmFtIGlzIHdpdGgKICAgeW91LiAgc2hvdWxkIHRoZSBwcm9ncmFtIHByb3ZlIGRlZmVjdGl2ZSwgeW91IGFzc3VtZSB0aGUgY29zdCBvZiBhbGwKICAgbmVjZXNzYXJ5IHNlcnZpY2luZywgcmVwYWlyIG9yIGNvcnJlY3Rpb24uCgogICBJbiBubyBldmVudCB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcKICAgd2lsbCBhbnkgY29weXJpZ2h0IGhvbGRlciwgb3IgYW55IG90aGVyIHBhcnR5IHdobyBtYXkgbW9kaWZ5IGFuZC9vcgogICByZWRpc3RyaWJ1dGUgdGhlIHByb2dyYW0gYXMgcGVybWl0dGVkIGFib3ZlLCBiZSBsaWFibGUgdG8geW91IGZvcgogICBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGdlbmVyYWwsIHNwZWNpYWwsIGluY2lkZW50YWwgb3IgY29uc2VxdWVudGlhbAogICBkYW1hZ2VzIGFyaXNpbmcgb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUgcHJvZ3JhbQogICAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBsb3NzIG9mIGRhdGEgb3IgZGF0YSBiZWluZyByZW5kZXJlZAogICBpbmFjY3VyYXRlIG9yIGxvc3NlcyBzdXN0YWluZWQgYnkgeW91IG9yIHRoaXJkIHBhcnRpZXMgb3IgYSBmYWlsdXJlIG9mCiAgIHRoZSBwcm9ncmFtIHRvIG9wZXJhdGUgd2l0aCBhbnkgb3RoZXIgcHJvZ3JhbXMpLCBldmVuIGlmIHN1Y2ggaG9sZGVyIG9yCiAgIG90aGVyIHBhcnR5IGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4KKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogIE1vZHVsZSAgICAgIDogIFdEVCByZWdpc3RlciBhZGRyZXNzIGFuZCBiaXRzICAgICAgICAgICAgICAgICAgICAgICAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgojZGVmaW5lIElOQ0FfSVBfV0RUICAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCODAwMDAwMCkKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCi8qKipSZXNldCBTdGF0dXMgUmVnaXN0ZXIgUG93ZXIgT24qKiovCiNkZWZpbmUgSU5DQV9JUF9XRFRfUlNUX1NSICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfV0RUKyAweDAwMTQpKQoKLyoqKlJlc2V0IFJlcXVlc3QgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9XRFRfUlNUX1JFUSAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfV0RUKyAweDAwMTApKQojZGVmaW5lIElOQ0FfSVBfV0RUX1JTVF9SRVFfU1dCT09UICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjQpCiNkZWZpbmUgSU5DQV9JUF9XRFRfUlNUX1JFUV9TV0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTYpCiNkZWZpbmUgSU5DQV9JUF9XRFRfUlNUX1JFUV9SUlBIWSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKI2RlZmluZSBJTkNBX0lQX1dEVF9SU1RfUkVRX1JSSFNQICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfV0RUX1JTVF9SRVFfUlJGUEkgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiNkZWZpbmUgSU5DQV9JUF9XRFRfUlNUX1JFUV9SUkVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKI2RlZmluZSBJTkNBX0lQX1dEVF9SU1RfUkVRX1JSRFNQICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfV0RUX1JTVF9SRVFfUlJDUFUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqTk1JIFN0YXR1cyBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1dEVF9OTUlTUiAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9XRFQrIDB4MDAyQykpCiNkZWZpbmUgSU5DQV9JUF9XRFRfTk1JU1JfTk1JV0RUICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKI2RlZmluZSBJTkNBX0lQX1dEVF9OTUlTUl9OTUlQTEwgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfV0RUX05NSVNSX05NSUVYVCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqTWFudWZhY3R1cmVyIElkZW50aWZpY2F0aW9uIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfV0RUX01BTklEICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1dEVCsgMHgwMDcwKSkKI2RlZmluZSBJTkNBX0lQX1dEVF9NQU5JRF9NQU5VRiAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgMTEpIC0gMSkgJiAodmFsdWUpKSA8PCA1KQoKLyoqKkNoaXAgSWRlbnRpZmljYXRpb24gUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9XRFRfQ0hJUElEICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfV0RUKyAweDAwNzQpKQojZGVmaW5lIElOQ0FfSVBfV0RUX0NISVBJRF9WRVJTSU9OICh2YWx1ZSkgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDI4KQojZGVmaW5lIElOQ0FfSVBfV0RUX0NISVBJRF9QQVJUX05VTUJFUiAodmFsdWUpICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAxMikKI2RlZmluZSBJTkNBX0lQX1dEVF9DSElQSURfTUFOSUQgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDExKSAtIDEpICYgKHZhbHVlKSkgPDwgMSkKCi8qKipSZWRlc2lnbiBUcmFjaW5nIElkZW50aWZpY2F0aW9uIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfV0RUX1JUSUQgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1dEVCsgMHgwMDc4KSkKI2RlZmluZSBJTkNBX0lQX1dEVF9SVElEX0xDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCiNkZWZpbmUgSU5DQV9JUF9XRFRfUlRJRF9SSVggKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqV2F0Y2hkb2cgVGltZXIgQ29udHJvbCBSZWdpc3RlciAwKioqLwojZGVmaW5lIElOQ0FfSVBfV0RUX1dEVF9DT04wICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfV0RUKyAweDAwMjApKQoKLyoqKldhdGNoZG9nIFRpbWVyIENvbnRyb2wgUmVnaXN0ZXIgMSoqKi8KI2RlZmluZSBJTkNBX0lQX1dEVF9XRFRfQ09OMSAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1dEVCsgMHgwMDI0KSkKI2RlZmluZSBJTkNBX0lQX1dEVF9XRFRfQ09OMV9XRFREUiAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKI2RlZmluZSBJTkNBX0lQX1dEVF9XRFRfQ09OMV9XRFRJUiAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKCi8qKipXYXRjaGRvZyBUaW1lciBTdGF0dXMgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9XRFRfV0RUX1NSICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfV0RUKyAweDAwMjgpKQojZGVmaW5lIElOQ0FfSVBfV0RUX1dEVF9TUl9XRFRUSU0gKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAxNikKI2RlZmluZSBJTkNBX0lQX1dEVF9XRFRfU1JfV0RUUFIgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCiNkZWZpbmUgSU5DQV9JUF9XRFRfV0RUX1NSX1dEVFRPICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfV0RUX1dEVF9TUl9XRFREUyAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKI2RlZmluZSBJTkNBX0lQX1dEVF9XRFRfU1JfV0RUSVMgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9XRFRfV0RUX1NSX1dEVE9FICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfV0RUX1dEVF9TUl9XRFRBRSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogIE1vZHVsZSAgICAgIDogIENHVSByZWdpc3RlciBhZGRyZXNzIGFuZCBiaXRzICAgICAgICAgICAgICAgICAgICAgICAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgojZGVmaW5lIElOQ0FfSVBfQ0dVICAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCRjEwNzAwMCkKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCi8qKipDR1UgUExMMSBDb250cm9sIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9QTEwxQ1IgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0NHVSsgMHgwMDA4KSkKI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfUExMMUNSX1NXUlNUICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkKI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfUExMMUNSX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzApCiNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX1BMTDFDUl9ORElWICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNikgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQojZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9QTEwxQ1JfTURJViAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkNHVSBQTEwwIENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX1BMTDBDUiAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQ0dVKyAweDAwMDApKQojZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9QTEwwQ1JfU1dSU1QgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQojZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9QTEwwQ1JfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMCkKI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfUExMMENSX05ESVYgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCA2KSAtIDEpICYgKHZhbHVlKSkgPDwgMTYpCiNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX1BMTDBDUl9NRElWICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqQ0dVIFBMTDAgU3RhdHVzIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9QTEwwU1IgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0NHVSsgMHgwMDA0KSkKI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfUExMMFNSX0xPQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX1BMTDBTUl9SQ0YgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyOSkKI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfUExMMFNSX1BMTEJZUCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE1KQoKLyoqKkNHVSBQTEwxIFN0YXR1cyBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfUExMMVNSICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9DR1UrIDB4MDAwQykpCiNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX1BMTDFTUl9MT0NLICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQojZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9QTEwxU1JfUkNGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjkpCiNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX1BMTDFTUl9QTExCWVAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNSkKCi8qKipDR1UgRGl2aWRlciBDb250cm9sIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9ESVZDUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0NHVSsgMHgwMDEwKSkKCi8qKipDR1UgTXVsdGlwbGV4ZXIgQ29udHJvbCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfTVVYQ1IgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9DR1UrIDB4MDAxNCkpCiNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX01VWENSX1NXUlNUICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkKI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfTVVYQ1JfTVVYSUkgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX01VWENSX01VWEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipDR1UgRnJhY3Rpb25hbCBEaXZpZGVyIENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX0ZEQ1IgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9DR1UrIDB4MDAxOCkpCiNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX0ZEQ1JfRkRFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkKI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfRkRDUl9JTlRFR0VSICh2YWx1ZSkgICAgICAgICAgICAoKCgoIDEgPDwgMTIpIC0gMSkgJiAodmFsdWUpKSA8PCAxNikKI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfRkRDUl9GUkFDVElPTiAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qICBNb2R1bGUgICAgICA6ICBQTVUgcmVnaXN0ZXIgYWRkcmVzcyBhbmQgYml0cyAgICAgICAgICAgICAgICAgICAgICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2RlZmluZSBJTkNBX0lQX1BNVSAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4QkYxMDIwMDApCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgovKioqUE0gR2xvYmFsIEVuYWJsZSBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9HRU4gICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9QTVUrIDB4MDAwMCkpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fR0VOX0VOMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTYpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fR0VOX0VOMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fR0VOX0VOMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTQpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fR0VOX0VOMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTMpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fR0VOX0VOMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fR0VOX0VOMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTEpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fR0VOX0VOMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTApCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fR0VOX0VOOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDkpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fR0VOX0VOOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fR0VOX0VONyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fR0VOX0VONiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fR0VOX0VONSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fR0VOX0VONCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fR0VOX0VOMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fR0VOX0VOMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fR0VOX0VOMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqUE0gUG93ZXIgRG93biBFbmFibGUgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fUERFTiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfUE1VKyAweDAwMDgpKQojZGVmaW5lIElOQ0FfSVBfUE1VX1BNX1BERU5fRU4xNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNikKI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9QREVOX0VOMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fUERFTl9FTjE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE0KQojZGVmaW5lIElOQ0FfSVBfUE1VX1BNX1BERU5fRU4xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMykKI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9QREVOX0VOMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fUERFTl9FTjExICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDExKQojZGVmaW5lIElOQ0FfSVBfUE1VX1BNX1BERU5fRU4xMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMCkKI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9QREVOX0VOOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDkpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fUERFTl9FTjggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA4KQojZGVmaW5lIElOQ0FfSVBfUE1VX1BNX1BERU5fRU43ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9QREVOX0VONSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fUERFTl9FTjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfUE1VX1BNX1BERU5fRU4zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9QREVOX0VOMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fUERFTl9FTjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKlBNIFdha2UtVXAgZnJvbSBQb3dlciBEb3duIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfUE1VX1BNX1dVUCAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1BNVSsgMHgwMDEwKSkKI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9XVVBfV1VQMTYgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE2KQojZGVmaW5lIElOQ0FfSVBfUE1VX1BNX1dVUF9XVVAxNSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fV1VQX1dVUDE0ICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNCkKI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9XVVBfV1VQMTMgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEzKQojZGVmaW5lIElOQ0FfSVBfUE1VX1BNX1dVUF9XVVAxMiAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fV1VQX1dVUDExICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMSkKI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9XVVBfV1VQMTAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEwKQojZGVmaW5lIElOQ0FfSVBfUE1VX1BNX1dVUF9XVVA5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDkpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fV1VQX1dVUDggICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9XVVBfV1VQNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQojZGVmaW5lIElOQ0FfSVBfUE1VX1BNX1dVUF9XVVA1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fV1VQX1dVUDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9XVVBfV1VQMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQojZGVmaW5lIElOQ0FfSVBfUE1VX1BNX1dVUF9XVVAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fV1VQX1dVUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipQTSBDb250cm9sIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfUE1VX1BNX0NSICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1BNVSsgMHgwMDE0KSkKI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9DUl9BV0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQojZGVmaW5lIElOQ0FfSVBfUE1VX1BNX0NSX1NXUlNUICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMCkKI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9DUl9TV0NSICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fQ1JfQ1JEICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiAgTW9kdWxlICAgICAgOiAgQkNVIHJlZ2lzdGVyIGFkZHJlc3MgYW5kIGJpdHMgICAgICAgICAgICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNkZWZpbmUgSU5DQV9JUF9CQ1UgICAgICAgICAgICAgICAgICAgICAgICAgICgweEI4MDAwMTAwKQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoKLyoqKkJDVSBDb250cm9sIFJlZ2lzdGVyICgwMDEwSCkqKiovCiNkZWZpbmUgSU5DQV9JUF9CQ1VfQkNVX0NPTiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQkNVKyAweDAwMTApKQojZGVmaW5lIElOQ0FfSVBfQkNVX0JDVV9DT05fU1BDICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAyNCkKI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfQ09OX1NQRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE5KQojZGVmaW5lIElOQ0FfSVBfQkNVX0JDVV9DT05fUFNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTgpCiNkZWZpbmUgSU5DQV9JUF9CQ1VfQkNVX0NPTl9EQkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNikKI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfQ09OX1RPVVQgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqQkNVIEVycm9yIENvbnRyb2wgQ2FwdHVyZSBSZWdpc3RlciAoMDAyMEgpKioqLwojZGVmaW5lIElOQ0FfSVBfQkNVX0JDVV9FQ09OICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQkNVKyAweDAwMjApKQojZGVmaW5lIElOQ0FfSVBfQkNVX0JDVV9FQ09OX1RBRyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMjQpCiNkZWZpbmUgSU5DQV9JUF9CQ1VfQkNVX0VDT05fUkROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjMpCiNkZWZpbmUgSU5DQV9JUF9CQ1VfQkNVX0VDT05fV1JOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjIpCiNkZWZpbmUgSU5DQV9JUF9CQ1VfQkNVX0VDT05fU1ZNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjEpCiNkZWZpbmUgSU5DQV9JUF9CQ1VfQkNVX0VDT05fQUNLICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAxOSkKI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfRUNPTl9BQlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxOCkKI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfRUNPTl9SRFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNykKI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfRUNPTl9UT1VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE2KQojZGVmaW5lIElOQ0FfSVBfQkNVX0JDVV9FQ09OX0VSUkNOVCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCiNkZWZpbmUgSU5DQV9JUF9CQ1VfQkNVX0VDT05fT1BDICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAyOCkKCi8qKipCQ1UgRXJyb3IgQWRkcmVzcyBDYXB0dXJlIFJlZ2lzdGVyICgwMDI0IEgpKioqLwojZGVmaW5lIElOQ0FfSVBfQkNVX0JDVV9FQUREICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQkNVKyAweDAwMjQpKQojZGVmaW5lIElOQ0FfSVBfQkNVX0JDVV9FQUREX0ZQSUFEUgoKLyoqKkJDVSBFcnJvciBEYXRhIENhcHR1cmUgUmVnaXN0ZXIgKDAwMjhIKSoqKi8KI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfRURBVCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0JDVSsgMHgwMDI4KSkKI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfRURBVF9GUElEQVQKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogIE1vZHVsZSAgICAgIDogIE1CQyByZWdpc3RlciBhZGRyZXNzIGFuZCBiaXRzICAgICAgICAgICAgICAgICAgICAgICAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgojZGVmaW5lIElOQ0FfSVBfTUJDICAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCRjEwMzAwMCkKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCi8qKipNYWlsYm94IENQVSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19DRkcgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDgwKSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfQ0ZHX1NXQVAgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgNikKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfQ0ZHX1JFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0NGR19GV0lEICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0NGR19TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqTWFpbGJveCBDUFUgSW50ZXJydXB0IFN0YXR1cyBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSVNSICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9NQkMrIDB4MDA4NCkpCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0lTUl9CM0RBICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JU1JfQjJEQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMCkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSVNSX0IxRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI5KQojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JU1JfQjBFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjgpCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0lTUl9XRFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyNykKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSVNSX0RTMjYwICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDI3KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipNYWlsYm94IENQVSBNYXNrIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19NU0sgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDg4KSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfTVNLX0IzREEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX01TS19CMkRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMwKQojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19NU0tfQjFFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjkpCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX01TS19CMEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyOCkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfTVNLX1dEVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI3KQojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19NU0tfRFMyNjAgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMjcpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKk1haWxib3ggQ1BVIE1hc2sgMDEgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX01TSzAxICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwOEMpKQojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19NU0swMV9CM0RBICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19NU0swMV9CMkRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMwKQojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19NU0swMV9CMUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyOSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfTVNLMDFfQjBFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjgpCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX01TSzAxX1dEVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI3KQojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19NU0swMV9EUzI2MCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyNykgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqTWFpbGJveCBDUFUgTWFzayAxMCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfTVNLMTAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9NQkMrIDB4MDA5MCkpCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX01TSzEwX0IzREEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX01TSzEwX0IyREEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzApCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX01TSzEwX0IxRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI5KQojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19NU0sxMF9CMEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyOCkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfTVNLMTBfV0RUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjcpCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX01TSzEwX0RTMjYwICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDI3KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipNYWlsYm94IENQVSBTaG9ydCBDb21tYW5kIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19DTUQgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDk0KSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfQ01EX0NTMjcwICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDI4KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipNYWlsYm94IENQVSBJbnB1dCBEYXRhIG9mIEJ1ZmZlciAwKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JRDAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDAwKSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSUQwX0lOREFUQQoKLyoqKk1haWxib3ggQ1BVIElucHV0IERhdGEgb2YgQnVmZmVyIDEqKiovCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0lEMSAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwMjApKQojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JRDFfSU5EQVRBCgovKioqTWFpbGJveCBDUFUgT3V0cHV0IERhdGEgb2YgQnVmZmVyIDIqKiovCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX09EMiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwNDApKQojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19PRDJfT1VUREFUQQoKLyoqKk1haWxib3ggQ1BVIE91dHB1dCBEYXRhIG9mIEJ1ZmZlciAzKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19PRDMgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDYwKSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfT0QzX09VVERBVEEKCi8qKipNYWlsYm94IENQVSBDb250cm9sIFJlZ2lzdGVyIG9mIEJ1ZmZlciAwKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19DUjAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDA0KSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfQ1IwX1JEWUFCVEZMUyAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipNYWlsYm94IENQVSBDb250cm9sIFJlZ2lzdGVyIG9mIEJ1ZmZlciAxKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19DUjEgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDI0KSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfQ1IxX1JEWUFCVEZMUyAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipNYWlsYm94IENQVSBDb250cm9sIFJlZ2lzdGVyIG9mIEJ1ZmZlciAyKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19DUjIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDQ0KSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfQ1IyX1JEWUFCVEZMUyAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipNYWlsYm94IENQVSBDb250cm9sIFJlZ2lzdGVyIG9mIEJ1ZmZlciAzKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19DUjMgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDY0KSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfQ1IzX1JEWUFCVEZMUyAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipNYWlsYm94IENQVSBGcmVlIFNwYWNlIG9mIEJ1ZmZlciAwKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19GUzAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDA4KSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfRlMwX0ZTCgovKioqTWFpbGJveCBDUFUgRnJlZSBTcGFjZSBvZiBCdWZmZXIgMSoqKi8KI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfRlMxICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9NQkMrIDB4MDAyOCkpCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0ZTMV9GUwoKLyoqKk1haWxib3ggQ1BVIEZyZWUgU3BhY2Ugb2YgQnVmZmVyIDIqKiovCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0ZTMiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwNDgpKQojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19GUzJfRlMKCi8qKipNYWlsYm94IENQVSBGcmVlIFNwYWNlIG9mIEJ1ZmZlciAzKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19GUzMgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDY4KSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfRlMzX0ZTCgovKioqTWFpbGJveCBDUFUgRGF0YSBBdmFpbGFibGUgaW4gQnVmZmVyIDAqKiovCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0RBMCAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwMEMpKQojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19EQTBfREEKCi8qKipNYWlsYm94IENQVSBEYXRhIEF2YWlsYWJsZSBpbiBCdWZmZXIgMSoqKi8KI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfREExICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9NQkMrIDB4MDAyQykpCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0RBMV9EQQoKLyoqKk1haWxib3ggQ1BVIERhdGEgQXZhaWxhYmxlIGluIEJ1ZmZlciAyKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19EQTIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDRDKSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfREEyX0RBCgovKioqTWFpbGJveCBDUFUgRGF0YSBBdmFpbGFibGUgaW4gQnVmZmVyIDMqKiovCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0RBMyAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwNkMpKQojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19EQTNfREEKCi8qKipNYWlsYm94IENQVSBJbnB1dCBBYnNvbHV0ZSBQb2ludGVyIG9mIEJ1ZmZlciAwKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JQUJTMCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDEwKSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSUFCUzBfSUFCUwoKLyoqKk1haWxib3ggQ1BVIElucHV0IEFic29sdXRlIFBvaW50ZXIgb2YgQnVmZmVyIDEqKiovCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0lBQlMxICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwMzApKQojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JQUJTMV9JQUJTCgovKioqTWFpbGJveCBDUFUgSW5wdXQgQWJzb2x1dGUgUG9pbnRlciBvZiBCdWZmZXIgMioqKi8KI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSUFCUzIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9NQkMrIDB4MDA1MCkpCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0lBQlMyX0lBQlMKCi8qKipNYWlsYm94IENQVSBJbnB1dCBBYnNvbHV0ZSBQb2ludGVyIG9mIEJ1ZmZlciAzKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JQUJTMyAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDcwKSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSUFCUzNfSUFCUwoKLyoqKk1haWxib3ggQ1BVIElucHV0IFRlbXBvcmFyeSBQb2ludGVyIG9mIEJ1ZmZlciAwKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JVE1QMCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDE0KSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSVRNUDBfSVRNUAoKLyoqKk1haWxib3ggQ1BVIElucHV0IFRlbXBvcmFyeSBQb2ludGVyIG9mIEJ1ZmZlciAxKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JVE1QMSAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDM0KSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSVRNUDFfSVRNUAoKLyoqKk1haWxib3ggQ1BVIElucHV0IFRlbXBvcmFyeSBQb2ludGVyIG9mIEJ1ZmZlciAyKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JVE1QMiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDU0KSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSVRNUDJfSVRNUAoKLyoqKk1haWxib3ggQ1BVIElucHV0IFRlbXBvcmFyeSBQb2ludGVyIG9mIEJ1ZmZlciAzKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JVE1QMyAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDc0KSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSVRNUDNfSVRNUAoKLyoqKk1haWxib3ggQ1BVIE91dHB1dCBBYnNvbHV0ZSBQb2ludGVyIG9mIEJ1ZmZlciAwKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19PQUJTMCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDE4KSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfT0FCUzBfT0FCUwoKLyoqKk1haWxib3ggQ1BVIE91dHB1dCBBYnNvbHV0ZSBQb2ludGVyIG9mIEJ1ZmZlciAxKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19PQUJTMSAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDM4KSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfT0FCUzFfT0FCUwoKLyoqKk1haWxib3ggQ1BVIE91dHB1dCBBYnNvbHV0ZSBQb2ludGVyIG9mIEJ1ZmZlciAyKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19PQUJTMiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDU4KSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfT0FCUzJfT0FCUwoKLyoqKk1haWxib3ggQ1BVIE91dHB1dCBBYnNvbHV0ZSBQb2ludGVyIG9mIEJ1ZmZlciAzKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19PQUJTMyAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDc4KSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfT0FCUzNfT0FCUwoKLyoqKk1haWxib3ggQ1BVIE91dHB1dCBUZW1wb3JhcnkgUG9pbnRlciBvZiBCdWZmZXIgMCoqKi8KI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfT1RNUDAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9NQkMrIDB4MDAxQykpCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX09UTVAwX09UTVAKCi8qKipNYWlsYm94IENQVSBPdXRwdXQgVGVtcG9yYXJ5IFBvaW50ZXIgb2YgQnVmZmVyIDEqKiovCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX09UTVAxICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwM0MpKQojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19PVE1QMV9PVE1QCgovKioqTWFpbGJveCBDUFUgT3V0cHV0IFRlbXBvcmFyeSBQb2ludGVyIG9mIEJ1ZmZlciAyKioqLwojZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19PVE1QMiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDVDKSkKI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfT1RNUDJfT1RNUAoKLyoqKk1haWxib3ggQ1BVIE91dHB1dCBUZW1wb3JhcnkgUG9pbnRlciBvZiBCdWZmZXIgMyoqKi8KI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfT1RNUDMgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9NQkMrIDB4MDA3QykpCiNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX09UTVAzX09UTVAKCi8qKipEU1AgQ29udHJvbCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX01CQ19EQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9NQkMrIDB4MDBBMCkpCiNkZWZpbmUgSU5DQV9JUF9NQkNfRENUUkxfQkEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQojZGVmaW5lIElOQ0FfSVBfTUJDX0RDVFJMX0JNT0QgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMSkKI2RlZmluZSBJTkNBX0lQX01CQ19EQ1RSTF9JREwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfTUJDX0RDVFJMX1JFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE1KQoKLyoqKkRTUCBTdGF0dXMgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9NQkNfRFNUQSAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwQTQpKQojZGVmaW5lIElOQ0FfSVBfTUJDX0RTVEFfSURMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQojZGVmaW5lIElOQ0FfSVBfTUJDX0RTVEFfUEQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQoKLyoqKkRTUCBUZXN0IDEgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9NQkNfRFRTVDEgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwQTgpKQojZGVmaW5lIElOQ0FfSVBfTUJDX0RUU1QxX0FCT1JUICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQojZGVmaW5lIElOQ0FfSVBfTUJDX0RUU1QxX0hXRjMyICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfTUJDX0RUU1QxX0hXRjRNICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfTUJDX0RUU1QxX0hXRk9QICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiAgTW9kdWxlICAgICAgOiAgU3dpdGNoIHJlZ2lzdGVyIGFkZHJlc3MgYW5kIGJpdHMgICAgICAgICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2ggICAgICAgICAgICAgICAgICAgICAgICgweEJGMTA0MDAwKQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoKLyoqKlVua25vd24gRGVzdGluYXRpb24gUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfVU5fREVTVCAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAwMDApKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1VOX0RFU1RfQ0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA4KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1VOX0RFU1RfTEIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1VOX0RFU1RfUEIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1VOX0RFU1RfQ00gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1VOX0RFU1RfTE0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1VOX0RFU1RfUE0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1VOX0RFU1RfQ1UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1VOX0RFU1RfTFUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1VOX0RFU1RfUFUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKlZMQU4gQ29udHJvbCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9WTEFOX0NUUkwgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDAwNCkpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfVkxBTl9DVFJMX1NDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9WTEFOX0NUUkxfU0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1ZMQU5fQ1RSTF9TUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfVkxBTl9DVFJMX1RDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9WTEFOX0NUUkxfVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1ZMQU5fQ1RSTF9UUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfVkxBTl9DVFJMX1ZBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipQQyBWTEFOIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUENfVkxBTiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAwMDgpKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BDX1ZMQU5fUFJJICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAxMikKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19WTEFOX1ZMQU5fSUQgKHZhbHVlKSAgICAgICAgICAgICgoKCggMSA8PCAxMikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqTEFOIFZMQU4gQ29uZmlndXJhdGlvbiBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9MQU5fVkxBTiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMDBDKSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9MQU5fVkxBTl9QUkkgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDEyKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0xBTl9WTEFOX1ZMQU5fSUQgKHZhbHVlKSAgICAgICAgICAgICgoKCggMSA8PCAxMikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqQ1BVIFZMQU4gQ29uZmlndXJhdGlvbiBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfVkxBTiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMDEwKSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfVkxBTl9QUkkgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDEyKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NQVV9WTEFOX1ZMQU5fSUQgKHZhbHVlKSAgICAgICAgICAgICgoKCggMSA8PCAxMikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqUHJpb3JpdHkgQ29TIE1hcHBpbmcgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUFJJX0NvUyAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAwMTQpKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BSSV9Db1NfUDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BSSV9Db1NfUDYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BSSV9Db1NfUDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BSSV9Db1NfUDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BSSV9Db1NfUDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BSSV9Db1NfUDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BSSV9Db1NfUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BSSV9Db1NfUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKlNwYW5uaW5nIFRyZWUgUG9ydCBTdGF0dXMgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfU1RfUFQgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAwMTgpKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1NUX1BUX0NQUyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgNCkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9TVF9QVF9MUFMgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfU1RfUFRfUFBTICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkFSTCBDb250cm9sIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0FSTF9DVEwgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMDFDKSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9BUkxfQ1RMX0NIQ0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQVJMX0NUTF9DSENMICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE0KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0FSTF9DVExfQ0hDUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMykKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9BUkxfQ1RMX0NDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQVJMX0NUTF9DTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDExKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0FSTF9DVExfQ1AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMCkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9BUkxfQ1RMX0NHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9BUkxfQ1RMX1BTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9BUkxfQ1RMX01STyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQVJMX0NUTF9TUkMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0FSTF9DVExfQVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9BUkxfQ1RMX0FHRV9USUNLX1NFTCAodmFsdWUpICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMikKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9BUkxfQ1RMX01BRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQVJMX0NUTF9FTkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0FSTF9DVExfUmVzICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDE5KSAtIDEpICYgKHZhbHVlKSkgPDwgMTMpCgovKioqQ1BVIEFjY2VzcyBDb250cm9sIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NQVV9BQ1RMICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAwMjApKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NQVV9BQ1RMX1JBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX0FDVExfUlcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMCkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfQUNUTF9SZXMgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMjEpIC0gMSkgJiAodmFsdWUpKSA8PCA5KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NQVV9BQ1RMX0FWQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX0FDVExfSURYICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkNQVSBBY2Nlc3MgRGF0YSBSZWdpc3RlciAxKioqLwojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMDI0KSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9EQVRBMV9EYXRhICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMjQpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkNQVSBBY2Nlc3MgRGF0YSBSZWdpc3RlciAyKioqLwojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0RBVEEyICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMDI4KSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9EQVRBMl9EYXRhCgovKioqQ1BVIFBvcnQgQ29udHJvbCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfUENUTCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMDJDKSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfUENUTF9EQV9QT1JUUyAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMTEpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX1BDVExfREFDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTApCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX1BDVExfTUFfU1RBVEUgKHZhbHVlKSAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX1BDVExfTUFNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfUENUTF9NQV9Qb3J0cyAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMykKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfUENUTF9NQUMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NQVV9QQ1RMX0VNTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX1BDVExfRURMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfUENUTF9SZXMgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMTgpIC0gMSkgJiAodmFsdWUpKSA8PCAxNCkKCi8qKipEU0NQIENvUyBNYXBwaW5nIFJlZ2lzdGVyIDEqKiovCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfRFNDUF9DT1MxICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAwMzApKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0RTQ1BfQ09TMV9EU0NQCgovKioqRFNDUCBDb1MgTWFwcGluZyBSZWdpc3RlciAxKioqLwojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0RTQ1BfQ09TMiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMDM0KSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9EU0NQX0NPUzJfRFNDUAoKLyoqKlBDIFdGUSBDb250cm9sIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BDX1dGUV9DVEwgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMDgwKSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19XRlFfQ1RMX1AxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19XRlFfQ1RMX1AwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19XRlFfQ1RMX1dUMSAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgNSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19XRlFfQ1RMX1dUMCAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMikKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19XRlFfQ1RMX1NDSF9TRUwgKHZhbHVlKSAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipQQyBUWCBDb250cm9sIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BDX1RYX0NUTCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMDg0KSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19UWF9DVExfRUxSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19UWF9DVExfRUVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipMQU4gV0ZRIENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTEFOX1dGUV9DVEwgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAxMDApKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0xBTl9XRlFfQ1RMX1AxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9MQU5fV0ZRX0NUTF9QMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTEFOX1dGUV9DVExfV1QxICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCA1KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0xBTl9XRlFfQ1RMX1dUMCAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMikKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9MQU5fV0ZRX0NUTF9TQ0hfU0VMICh2YWx1ZSkgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqTEFOIFRYIENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTEFOX1RYX0NUTCAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAxMDQpKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0xBTl9UWF9DVExfRUxSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9MQU5fVFhfQ1RMX0VFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqQ1BVIFdGUSBDb250cm9sIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NQVV9XRlFfQ1RMICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMTgwKSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfV0ZRX0NUTF9QMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDkpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX1dGUV9DVExfUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA4KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NQVV9XRlFfQ1RMX1dUMSAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgNSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfV0ZRX0NUTF9XVDAgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX1dGUV9DVExfU0NIX1NFTCAodmFsdWUpICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKlBNIFBDIFJYIFdhdGVybWFyayBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19XTSAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDIwMCkpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUENfV01fUlhfV00xICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAyNCkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19XTV9SWF9XTTIgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BDX1dNX1JYX1dNMyAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19XTV9SWF9XTTQgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqUE0gTEFOIFJYIFdhdGVybWFyayBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9MQU5fV00gICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDIwNCkpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTEFOX1dNX1JYX1dNMSAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMjQpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTEFOX1dNX1JYX1dNMiAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMTYpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTEFOX1dNX1JYX1dNMyAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9MQU5fV01fUlhfV000ICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKlBNIENQVSBSWCBXYXRlcm1hcmsgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX1dNICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAyMDgpKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NQVV9XTV9SWF9XTTEgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDI0KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NQVV9XTV9SWF9XTTIgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NQVV9XTV9SWF9XTTMgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX1dNX1JYX1dNNCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipQTSBDUFUgUlggV2F0ZXJtYXJrIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0dCTF9XTSAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMjBDKSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9HQkxfV01fR0JMX1JYX1dNMSAodmFsdWUpICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAyNCkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9HQkxfV01fR0JMX1JYX1dNMiAodmFsdWUpICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAxNikKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9HQkxfV01fR0JMX1JYX1dNMyAodmFsdWUpICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCA4KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0dCTF9XTV9HQkxfUlhfV000ICh2YWx1ZSkgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqUE0gQ29udHJvbCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTV9DVEwgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDIxMCkpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1fQ1RMX0dETiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1fQ1RMX0NETiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1fQ1RMX0xETiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1fQ1RMX1BETiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqUE0gSGVhZGVyIENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1BQ19IRF9DVEwgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAyODApKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BNQUNfSERfQ1RMX1JMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIxKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BNQUNfSERfQ1RMX1JDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjApCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1BQ19IRF9DVExfQ00gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxOSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX0hEX0NUTF9DViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE4KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BNQUNfSERfQ1RMX1RZUEVfTEVOICh2YWx1ZSkgICAgICAgICAgKCgoKCAxIDw8IDE2KSAtIDEpICYgKHZhbHVlKSkgPDwgMikKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX0hEX0NUTF9UQUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BNQUNfSERfQ1RMX0FERCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqUE0gU291cmNlIEFkZHJlc3MgUmVnaXN0ZXIgMSoqKi8KI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX1NBMSAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMjg0KSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX1NBMV9TQV80N18zMiAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqUE0gU291cmNlIEFkZHJlc3MgUmVnaXN0ZXIgMioqKi8KI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX1NBMiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMjg4KSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX1NBMl9TQV8zMV8wCgovKioqUE0gRGVzdCBBZGRyZXNzIFJlZ2lzdGVyIDEqKiovCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1BQ19EQTEgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDI4QykpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1BQ19EQTFfREFfNDdfMzIgKHZhbHVlKSAgICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKlBNIERlc3QgQWRkcmVzcyBSZWdpc3RlciAyKioqLwojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BNQUNfREEyICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAyOTApKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BNQUNfREEyX0RBXzMxXzAKCi8qKipQTSBWTEFOIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BNQUNfVkxBTiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMjk0KSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX1ZMQU5fUFJJICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAxMykKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX1ZMQU5fQ0ZJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1BQ19WTEFOX1ZMQU5JRCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAxMikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqUE0gVFggSVBHIENvdW50ZXIgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1BQ19UWF9JUEcgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAyOTgpKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BNQUNfVFhfSVBHX0lQR0NOVCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipQTSBSWCBJUEcgQ291bnRlciBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX1JYX0lQRyAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDI5QykpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1BQ19SWF9JUEdfSVBHQ05UICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKk1pcnJvciBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9NUlIgICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDMwMCkpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTVJSX01SUiAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgNikKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9NUlJfRUMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX01SUl9FTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTVJSX0VQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9NUlJfSUMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX01SUl9JTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTVJSX0lQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipQYWNrZXQgTGVuZ3RoIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BLVF9MRU4gICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMzA0KSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QS1RfTEVOX0FERCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDExKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BLVF9MRU5fTUFYX1BLVF9MRU4gKHZhbHVlKSAgICAgICAgKCgoKCAxIDw8IDExKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipNRElPIEFjY2VzcyBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9NRElPX0FDQyAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwNDgwKSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9NRElPX0FDQ19SQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX01ESU9fQUNDX1JXICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzApCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTURJT19BQ0NfUEhZX0FERFIgKHZhbHVlKSAgICAgICAgICAoKCgoIDEgPDwgNSkgLSAxKSAmICh2YWx1ZSkpIDw8IDIxKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX01ESU9fQUNDX1JFR19BRERSICh2YWx1ZSkgICAgICAgICAgKCgoKCAxIDw8IDUpIC0gMSkgJiAodmFsdWUpKSA8PCAxNikKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9NRElPX0FDQ19QSFlfREFUQSAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqRXRoZXJuZXQgUEhZIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0VQSFkgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwNDg0KSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9FUEhZX1NMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9FUEhZX1NQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9FUEhZX0xMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9FUEhZX0xQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9FUEhZX0RMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9FUEhZX0RQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9FUEhZX1BMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9FUEhZX1BQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipQYXVzZSBXcml0ZSBFbmFibGUgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUFdSX0VOICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDA0ODgpKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BXUl9FTl9QTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUFdSX0VOX1BQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipNRElPIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTURJT19DRkcgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDQ4QykpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTURJT19DRkdfTURTICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAxNCkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9NRElPX0NGR19QSFlfTEFOX0FERFIgKHZhbHVlKSAgICAgICAoKCgoIDEgPDwgNSkgLSAxKSAmICh2YWx1ZSkpIDw8IDkpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTURJT19DRkdfUEhZX1BDX0FERFIgKHZhbHVlKSAgICAgICAgKCgoKCAxIDw8IDUpIC0gMSkgJiAodmFsdWUpKSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX01ESU9fQ0ZHX1VFUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTURJT19DRkdfUFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX01ESU9fQ0ZHX1BUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9NRElPX0NGR19VTU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKkNsb2NrIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ0xLX0NGRyAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDA1MDApKQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NMS19DRkdfQVJMX0lEICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOSkKI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DTEtfQ0ZHX0NQVV9JRCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ0xLX0NGR19MQU5fSUQgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQojZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NMS19DRkdfUENfSUQgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCiNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ0xLX0NGR19TRV9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogIE1vZHVsZSAgICAgIDogIFNTQzEgcmVnaXN0ZXIgYWRkcmVzcyBhbmQgYml0cyAgICAgICAgICAgICAgICAgICAgICAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgojZGVmaW5lIElOQ0FfSVBfU1NDMSAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCODAwMDUwMCkKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCi8qKipDb250cm9sIFJlZ2lzdGVyIChQcm9ncmFtbWluZyBNb2RlKSoqKi8KI2RlZmluZSBJTkNBX0lQX1NTQzFfU0NDX0NPTl9QUkcgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU1NDMSsgMHgwMDEwKSkKI2RlZmluZSBJTkNBX0lQX1NTQzFfU0NDX0NPTl9QUkdfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNSkKI2RlZmluZSBJTkNBX0lQX1NTQzFfU0NDX0NPTl9QUkdfTVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNCkKI2RlZmluZSBJTkNBX0lQX1NTQzFfU0NDX0NPTl9QUkdfQVJFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMikKI2RlZmluZSBJTkNBX0lQX1NTQzFfU0NDX0NPTl9QUkdfQkVOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTEpCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NDQ19DT05fUFJHX1BFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEwKQojZGVmaW5lIElOQ0FfSVBfU1NDMV9TQ0NfQ09OX1BSR19SRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA5KQojZGVmaW5lIElOQ0FfSVBfU1NDMV9TQ0NfQ09OX1BSR19URU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA4KQojZGVmaW5lIElOQ0FfSVBfU1NDMV9TQ0NfQ09OX1BSR19MQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NDQ19DT05fUFJHX1BPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKI2RlZmluZSBJTkNBX0lQX1NTQzFfU0NDX0NPTl9QUkdfUEggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQojZGVmaW5lIElOQ0FfSVBfU1NDMV9TQ0NfQ09OX1BSR19IQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NDQ19DT05fUFJHX0JNICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKlNDQyBDb250cm9sIFJlZ2lzdGVyIChPcGVyYXRpbmcgTW9kZSkqKiovCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NDQ19DT05fT1BSICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NTQzErIDB4MDAxMCkpCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NDQ19DT05fT1BSX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NDQ19DT05fT1BSX01TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTQpCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NDQ19DT05fT1BSX0JTWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEyKQojZGVmaW5lIElOQ0FfSVBfU1NDMV9TQ0NfQ09OX09QUl9CRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDExKQojZGVmaW5lIElOQ0FfSVBfU1NDMV9TQ0NfQ09OX09QUl9QRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEwKQojZGVmaW5lIElOQ0FfSVBfU1NDMV9TQ0NfQ09OX09QUl9SRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDkpCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NDQ19DT05fT1BSX1RFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKI2RlZmluZSBJTkNBX0lQX1NTQzFfU0NDX0NPTl9PUFJfQkMgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqU1NDIFdyaXRlIEhhcmR3YXJlIE1vZGlmaWVkIENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19XSEJDT04gICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NTQzErIDB4MDA0MCkpCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19XSEJDT05fU0VUQkUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE1KQojZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfV0hCQ09OX1NFVFBFICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNCkKI2RlZmluZSBJTkNBX0lQX1NTQzFfU1NDX1dIQkNPTl9TRVRSRSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTMpCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19XSEJDT05fU0VUVEUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEyKQojZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfV0hCQ09OX0NMUkJFICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMSkKI2RlZmluZSBJTkNBX0lQX1NTQzFfU1NDX1dIQkNPTl9DTFJQRSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTApCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19XSEJDT05fQ0xSUkUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDkpCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19XSEJDT05fQ0xSVEUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDgpCgovKioqU1NDIEJhdWRyYXRlIFRpbWVyIFJlbG9hZCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1NTQzFfU1NDX0JSICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU1NDMSsgMHgwMDE0KSkKI2RlZmluZSBJTkNBX0lQX1NTQzFfU1NDX0JSX0JSX1ZBTFVFICh2YWx1ZSkgICAgICAgICAgKCgoKCAxIDw8IDE2KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipTU0MgVHJhbnNtaXR0ZXIgQnVmZmVyIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfVEIgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9TU0MxKyAweDAwMjApKQojZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfVEJfVEJfVkFMVUUgKHZhbHVlKSAgICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKlNTQyBSZWNlaXZlciBCdWZmZXIgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19SQiAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NTQzErIDB4MDAyNCkpCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19SQl9SQl9WQUxVRSAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqU1NDIFJlY2VpdmUgRklGTyBDb250cm9sIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfUlhGQ09OICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9TU0MxKyAweDAwMzApKQojZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfUlhGQ09OX1JYRklUTCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA2KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKI2RlZmluZSBJTkNBX0lQX1NTQzFfU1NDX1JYRkNPTl9SWFRNRU4gICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfUlhGQ09OX1JYRkxVICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfUlhGQ09OX1JYRkVOICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKlNTQyBUcmFuc21pdCBGSUZPIENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19UWEZDT04gICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NTQzErIDB4MDAzNCkpCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19UWEZDT05fUlhGSVRMICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDYpIC0gMSkgJiAodmFsdWUpKSA8PCA4KQojZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfVFhGQ09OX1RYVE1FTiAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19UWEZDT05fVFhGTFUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19UWEZDT05fVFhGRU4gICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqU1NDIEZJRk8gU3RhdHVzIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfRlNUQVQgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9TU0MxKyAweDAwMzgpKQojZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfRlNUQVRfVFhGRkwgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDYpIC0gMSkgJiAodmFsdWUpKSA8PCA4KQojZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfRlNUQVRfUlhGRkwgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKlNTQyBDbG9jayBDb250cm9sIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfQ0xDICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9TU0MxKyAweDAwMDApKQojZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfQ0xDX1JNQyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKI2RlZmluZSBJTkNBX0lQX1NTQzFfU1NDX0NMQ19ESVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19DTENfRElTUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiAgTW9kdWxlICAgICAgOiAgU1NDMiByZWdpc3RlciBhZGRyZXNzIGFuZCBiaXRzICAgICAgICAgICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNkZWZpbmUgSU5DQV9JUF9TU0MyICAgICAgICAgICAgICAgICAgICAgICAgICgweEI4MDAwNjAwKQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoKLyoqKkNvbnRyb2wgUmVnaXN0ZXIgKFByb2dyYW1taW5nIE1vZGUpKioqLwojZGVmaW5lIElOQ0FfSVBfU1NDMl9TQ0NfQ09OX1BSRyAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9TU0MyKyAweDAwMTApKQojZGVmaW5lIElOQ0FfSVBfU1NDMl9TQ0NfQ09OX1BSR19FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE1KQojZGVmaW5lIElOQ0FfSVBfU1NDMl9TQ0NfQ09OX1BSR19NUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE0KQojZGVmaW5lIElOQ0FfSVBfU1NDMl9TQ0NfQ09OX1BSR19BUkVOICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEyKQojZGVmaW5lIElOQ0FfSVBfU1NDMl9TQ0NfQ09OX1BSR19CRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMSkKI2RlZmluZSBJTkNBX0lQX1NTQzJfU0NDX0NPTl9QUkdfUEVOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTApCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NDQ19DT05fUFJHX1JFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDkpCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NDQ19DT05fUFJHX1RFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NDQ19DT05fUFJHX0xCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKI2RlZmluZSBJTkNBX0lQX1NTQzJfU0NDX0NPTl9QUkdfUE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfU1NDMl9TQ0NfQ09OX1BSR19QSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NDQ19DT05fUFJHX0hCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKI2RlZmluZSBJTkNBX0lQX1NTQzJfU0NDX0NPTl9QUkdfQk0gKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqU0NDIENvbnRyb2wgUmVnaXN0ZXIgKE9wZXJhdGluZyBNb2RlKSoqKi8KI2RlZmluZSBJTkNBX0lQX1NTQzJfU0NDX0NPTl9PUFIgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU1NDMisgMHgwMDEwKSkKI2RlZmluZSBJTkNBX0lQX1NTQzJfU0NDX0NPTl9PUFJfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNSkKI2RlZmluZSBJTkNBX0lQX1NTQzJfU0NDX0NPTl9PUFJfTVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNCkKI2RlZmluZSBJTkNBX0lQX1NTQzJfU0NDX0NPTl9PUFJfQlNZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NDQ19DT05fT1BSX0JFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTEpCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NDQ19DT05fT1BSX1BFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTApCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NDQ19DT05fT1BSX1JFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOSkKI2RlZmluZSBJTkNBX0lQX1NTQzJfU0NDX0NPTl9PUFJfVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA4KQojZGVmaW5lIElOQ0FfSVBfU1NDMl9TQ0NfQ09OX09QUl9CQyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipTU0MgV3JpdGUgSGFyZHdhcmUgTW9kaWZpZWQgQ29udHJvbCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1dIQkNPTiAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU1NDMisgMHgwMDQwKSkKI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1dIQkNPTl9TRVRCRSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19XSEJDT05fU0VUUEUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE0KQojZGVmaW5lIElOQ0FfSVBfU1NDMl9TU0NfV0hCQ09OX1NFVFJFICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMykKI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1dIQkNPTl9TRVRURSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19XSEJDT05fQ0xSQkUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDExKQojZGVmaW5lIElOQ0FfSVBfU1NDMl9TU0NfV0hCQ09OX0NMUlBFICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMCkKI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1dIQkNPTl9DTFJSRSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOSkKI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1dIQkNPTl9DTFJURSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKCi8qKipTU0MgQmF1ZHJhdGUgVGltZXIgUmVsb2FkIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfU1NDMl9TU0NfQlIgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9TU0MyKyAweDAwMTQpKQojZGVmaW5lIElOQ0FfSVBfU1NDMl9TU0NfQlJfQlJfVkFMVUUgKHZhbHVlKSAgICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKlNTQyBUcmFuc21pdHRlciBCdWZmZXIgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19UQiAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NTQzIrIDB4MDAyMCkpCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19UQl9UQl9WQUxVRSAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqU1NDIFJlY2VpdmVyIEJ1ZmZlciBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1JCICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU1NDMisgMHgwMDI0KSkKI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1JCX1JCX1ZBTFVFICh2YWx1ZSkgICAgICAgICAgKCgoKCAxIDw8IDE2KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipTU0MgUmVjZWl2ZSBGSUZPIENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19SWEZDT04gICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NTQzIrIDB4MDAzMCkpCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19SWEZDT05fUlhGSVRMICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDYpIC0gMSkgJiAodmFsdWUpKSA8PCA4KQojZGVmaW5lIElOQ0FfSVBfU1NDMl9TU0NfUlhGQ09OX1JYVE1FTiAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19SWEZDT05fUlhGTFUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19SWEZDT05fUlhGRU4gICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqU1NDIFRyYW5zbWl0IEZJRk8gQ29udHJvbCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1RYRkNPTiAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU1NDMisgMHgwMDM0KSkKI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1RYRkNPTl9SWEZJVEwgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgNikgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19UWEZDT05fVFhUTUVOICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1RYRkNPTl9UWEZMVSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1RYRkNPTl9UWEZFTiAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipTU0MgRklGTyBTdGF0dXMgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19GU1RBVCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NTQzIrIDB4MDAzOCkpCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19GU1RBVF9UWEZGTCAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgNikgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19GU1RBVF9SWEZGTCAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqU1NDIENsb2NrIENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19DTEMgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NTQzIrIDB4MDAwMCkpCiNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19DTENfUk1DICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCA4KQojZGVmaW5lIElOQ0FfSVBfU1NDMl9TU0NfQ0xDX0RJU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX0NMQ19ESVNSICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qICBNb2R1bGUgICAgICA6ICBFQlUgcmVnaXN0ZXIgYWRkcmVzcyBhbmQgYml0cyAgICAgICAgICAgICAgICAgICAgICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2lmIGRlZmluZWQoQ09ORklHX0lOQ0FfSVApCiNkZWZpbmUgSU5DQV9JUF9FQlUgICAgICAgICAgICAgICAgICAgICAgICAgICgweEI4MDAwMjAwKQojZWxpZiBkZWZpbmVkKENPTkZJR19QVVJQTEUpCiNkZWZpbmUgSU5DQV9JUF9FQlUgICAgICAgICAgICAgICAgICAgICAgICAgICgweEI4MDBEODAwKQojZW5kaWYKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgovKioqRUJVIENsb2NrIENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0NMQyAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRUJVKyAweDAwMDApKQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9DTENfRElTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9DTENfRElTUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKkVCVSBHbG9iYWwgQ29udHJvbCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQ09OICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9FQlUrIDB4MDAxMCkpCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0NPTl9EVEFDUyAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDIwKQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9DT05fRFRBUlcgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAxNikKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQ09OX1RPVVRDICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQ09OX0FSQk1PREUgKHZhbHVlKSAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgNikKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQ09OX0FSQlNZTkMgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQ09OXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQoKLyoqKkVCVSBBZGRyZXNzIFNlbGVjdCBSZWdpc3RlciAwKioqLwojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9BRERTRUwwICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0VCVSsgMHgwMDIwKSkKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQUREU0VMMF9CQVNFICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMjApIC0gMSkgJiAodmFsdWUpKSA8PCAxMikKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQUREU0VMMF9NQVNLICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0FERFNFTDBfTUlSUk9SRSAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9BRERTRUwwX1JFR0VOICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKkVCVSBBZGRyZXNzIFNlbGVjdCBSZWdpc3RlciAxKioqLwojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9BRERTRUwxICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0VCVSsgMHgwMDI0KSkKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQUREU0VMMV9CQVNFICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMjApIC0gMSkgJiAodmFsdWUpKSA8PCAxMikKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQUREU0VMMV9NQVNLICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0FERFNFTDFfTUlSUk9SRSAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9BRERTRUwxX1JFR0VOICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKkVCVSBBZGRyZXNzIFNlbGVjdCBSZWdpc3RlciAyKioqLwojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9BRERTRUwyICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0VCVSsgMHgwMDI4KSkKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQUREU0VMMl9CQVNFICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMjApIC0gMSkgJiAodmFsdWUpKSA8PCAxMikKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQUREU0VMMl9NQVNLICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0FERFNFTDJfTUlSUk9SRSAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9BRERTRUwyX1JFR0VOICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKkVCVSBCdXMgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAwKioqLwojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04wICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0VCVSsgMHgwMDYwKSkKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMF9XUkRJUyAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjBfQUxFQyAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAyOSkKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMF9CQ0dFTiAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDI3KQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04wX0FHRU4gKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMjQpCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjBfQ01VTFRSICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAyMikKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMF9XQUlUICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDIwKQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04wX1dBSVRJTlYgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTkpCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjBfU0VUVVAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE4KQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04wX1BPUlRXICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMTYpCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjBfV0FJVFJEQyAodmFsdWUpICAgICAgICAgICAgKCgoKCAxIDw8IDcpIC0gMSkgJiAodmFsdWUpKSA8PCA5KQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04wX1dBSVRXUkMgKHZhbHVlKSAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgNikKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMF9IT0xEQyAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjBfUkVDT1ZDICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04wX0NNVUxUICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipFQlUgQnVzIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMSoqKi8KI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMSAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9FQlUrIDB4MDA2NCkpCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjFfV1JESVMgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04xX0FMRUMgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMjkpCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjFfQkNHRU4gKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAyNykKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMV9BR0VOICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDI0KQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04xX0NNVUxUUiAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMjIpCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjFfV0FJVCAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAyMCkKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMV9XQUlUSU5WICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE5KQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04xX1NFVFVQICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxOCkKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMV9QT1JUVyAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04xX1dBSVRSREMgKHZhbHVlKSAgICAgICAgICAgICgoKCggMSA8PCA3KSAtIDEpICYgKHZhbHVlKSkgPDwgOSkKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMV9XQUlUV1JDICh2YWx1ZSkgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDYpCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjFfSE9MREMgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04xX1JFQ09WQyAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMikKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMV9DTVVMVCAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqRUJVIEJ1cyBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIDIqKiovCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjIgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRUJVKyAweDAwNjgpKQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04yX1dSRElTICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMl9BTEVDICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDI5KQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04yX0JDR0VOICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMjcpCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjJfQUdFTiAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAyNCkKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMl9DTVVMVFIgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDIyKQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04yX1dBSVQgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMjApCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjJfV0FJVElOViAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxOSkKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMl9TRVRVUCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTgpCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjJfUE9SVFcgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAxNikKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMl9XQUlUUkRDICh2YWx1ZSkgICAgICAgICAgICAoKCgoIDEgPDwgNykgLSAxKSAmICh2YWx1ZSkpIDw8IDkpCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjJfV0FJVFdSQyAodmFsdWUpICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04yX0hPTERDICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgNCkKI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMl9SRUNPVkMgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjJfQ01VTFQgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiAgTW9kdWxlICAgICAgOiAgU0RSQU0gcmVnaXN0ZXIgYWRkcmVzcyBhbmQgYml0cyAgICAgICAgICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNkZWZpbmUgSU5DQV9JUF9TRFJBTSAgICAgICAgICAgICAgICAgICAgICAgICgweEJGODAwMDAwKQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoKLyoqKk1DIEFjY2VzcyBFcnJvciBDYXVzZSBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX0VSUkNBVVNFICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NEUkFNKyAweDAxMDApKQojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfRVJSQ0FVU0VfRVJSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19FUlJDQVVTRV9QT1JUICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfRVJSQ0FVU0VfQ0FVU0UgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfRVJSQ0FVU0VfUmVzICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IE5hTikgLSAxKSAmICh2YWx1ZSkpIDw8IE5hTikKCi8qKipNQyBBY2Nlc3MgRXJyb3IgQWRkcmVzcyBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX0VSUkFERFIgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NEUkFNKyAweDAxMDgpKQojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfRVJSQUREUl9BRERSCgovKioqTUMgSS9PIEdlbmVyYWwgUHVycG9zZSBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX0lPR1AgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NEUkFNKyAweDA4MDApKQojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfSU9HUF9HUFI2ICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDI4KQojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfSU9HUF9HUFI1ICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDI0KQojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfSU9HUF9HUFI0ICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDIwKQojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfSU9HUF9HUFIzICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfSU9HUF9HUFIyICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDEyKQojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfSU9HUF9DUFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMSkKI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX0lPR1BfQ0xLREVMQVkgKHZhbHVlKSAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19JT0dQX0NMS1JBVCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgNCkKI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX0lPR1BfUkRERUwgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKk1DIFNlbGYgUmVmcmVzaCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX1NFTEZSRlNIICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NEUkFNKyAweDBBMDApKQojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfU0VMRlJGU0hfUFdEUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfU0VMRlJGU0hfUFdEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX1NFTEZSRlNIX1JlcyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzMCkgLSAxKSAmICh2YWx1ZSkpIDw8IDIpCgovKioqTUMgRW5hYmxlIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfQ1RSTEVOQSAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU0RSQU0rIDB4MTAwMCkpCiNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19DVFJMRU5BX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCiNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19DVFJMRU5BX1JlcyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzMSkgLSAxKSAmICh2YWx1ZSkpIDw8IDEpCgovKioqTUMgTW9kZSBSZWdpc3RlciBTZXR1cCBDb2RlKioqLwojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfTVJTQ09ERSAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU0RSQU0rIDB4MTAwOCkpCiNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19NUlNDT0RFX1VNQyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA1KSAtIDEpICYgKHZhbHVlKSkgPDwgNykKI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX01SU0NPREVfQ0wgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19NUlNDT0RFX1dUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX01SU0NPREVfQkwgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqTUMgQ29uZmlndXJhdGlvbiBEYXRhLXdvcmQgV2lkdGggUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19DRkdEVyAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NEUkFNKyAweDEwMTApKQojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfQ0ZHRFdfRFcgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCiNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19DRkdEV19SZXMgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMjgpIC0gMSkgJiAodmFsdWUpKSA8PCA0KQoKLyoqKk1DIENvbmZpZ3VyYXRpb24gUGh5c2ljYWwgQmFuayAwIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfQ0ZHUEIwICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU0RSQU0rIDB4MTAxOCkpCiNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19DRkdQQjBfTUNTRU4wICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAxMikKI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX0NGR1BCMF9CQU5LTjAgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19DRkdQQjBfUk9XVzAgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfQ0ZHUEIwX0NPTFcwICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX0NGR1BCMF9SZXMgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAxNikKCi8qKipNQyBMYXRlbmN5IFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfTEFURU5DWSAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU0RSQU0rIDB4MTAzOCkpCiNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19MQVRFTkNZX1RSUCAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMTYpCiNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19MQVRFTkNZX1RSQVMgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMTIpCiNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19MQVRFTkNZX1RSQ0QgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX0xBVEVOQ1lfVERQTCAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfTEFURU5DWV9UREFMICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCiNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19MQVRFTkNZX1JlcyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAxMikgLSAxKSAmICh2YWx1ZSkpIDw8IDIwKQoKLyoqKk1DIFJlZnJlc2ggQ3ljbGUgVGltZSBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX1RSRUZSRVNIICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NEUkFNKyAweDEwNDApKQojZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfVFJFRlJFU0hfVFJFRiAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDEzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX1RSRUZSRVNIX1JlcyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAxOSkgLSAxKSAmICh2YWx1ZSkpIDw8IDEzKQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiAgTW9kdWxlICAgICAgOiAgR1BUVSByZWdpc3RlciBhZGRyZXNzIGFuZCBiaXRzICAgICAgICAgICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNkZWZpbmUgSU5DQV9JUF9HUFRVICAgICAgICAgICAgICAgICAgICAgICAgICgweEI4MDAwMzAwKQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoKLyoqKkdQVCBDbG9jayBDb250cm9sIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfQ0xDICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9HUFRVKyAweDAwMDApKQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfQ0xDX1JNQyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX0NMQ19ESVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9DTENfRElTUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKkdQVCBUaW1lciAzIENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UM0NPTiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0dQVFUrIDB4MDAxNCkpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UM0NPTl9UM1JESVIgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNSkKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1QzQ09OX1QzQ0hESVIgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTQpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UM0NPTl9UM0VER0UgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMykKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1QzQ09OX0JQUzEgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMTEpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UM0NPTl9UM09UTCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTApCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UM0NPTl9UM1VEICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UM0NPTl9UM1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDNDT05fVDNNICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAzKQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDNDT05fVDNJICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkdQVCBXcml0ZSBIYXJkd2FyZSBNb2RpZmllZCBUaW1lciAzIENvbnRyb2wgUmVnaXN0ZXIKSWYgc2V0IGFuZCBjbGVhciBiaXQgYXJlIHdyaXR0ZW4gY29uY3VycmVudGx5IHdpdGggMSwgdGhlIGFzc29jaWF0ZWQgYml0IGlzIG5vdCBjaGFuZ2VkLioqKi8KI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1dIQlQzQ09OICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfR1BUVSsgMHgwMDRDKSkKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1dIQlQzQ09OX1NFVFQzQ0hESVIgICAgICAgICAgICAgICAgKDEgPDwgMTUpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9XSEJUM0NPTl9DTFJUM0NIRElSICAgICAgICAgICAgICAgICgxIDw8IDE0KQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfV0hCVDNDT05fU0VUVDNFREdFICAgICAgICAgICAgICAgICAgKDEgPDwgMTMpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9XSEJUM0NPTl9DTFJUM0VER0UgICAgICAgICAgICAgICAgICAoMSA8PCAxMikKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1dIQlQzQ09OX1NFVFQzT1RMICAgICAgICAgICAgICAgICAgKDEgPDwgMTEpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9XSEJUM0NPTl9DTFJUM09UTCAgICAgICAgICAgICAgICAgICgxIDw8IDEwKQoKLyoqKkdQVCBUaW1lciAyIENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UMkNPTiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0dQVFUrIDB4MDAxMCkpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UMkNPTl9UeFJESVIgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNSkKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1QyQ09OX1R4Q0hESVIgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTQpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UMkNPTl9UeEVER0UgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMykKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1QyQ09OX1R4SVJESVMgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UMkNPTl9UeFJDICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDkpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UMkNPTl9UeFVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UMkNPTl9UeFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDJDT05fVHhNICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAzKQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDJDT05fVHhJICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkdQVCBUaW1lciA0IENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNENPTiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0dQVFUrIDB4MDAxOCkpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNENPTl9UeFJESVIgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNSkKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1Q0Q09OX1R4Q0hESVIgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTQpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNENPTl9UeEVER0UgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMykKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1Q0Q09OX1R4SVJESVMgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNENPTl9UeFJDICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDkpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNENPTl9UeFVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNENPTl9UeFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDRDT05fVHhNICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAzKQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDRDT05fVHhJICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkdQVCBXcml0ZSBIVyBNb2RpZmllZCBUaW1lciAyIENvbnRyb2wgUmVnaXN0ZXIgSWYgc2V0CiBhbmQgY2xlYXIgYml0IGFyZSB3cml0dGVuIGNvbmN1cnJlbnRseSB3aXRoIDEsIHRoZSBhc3NvY2lhdGVkIGJpdCBpcyBub3QgY2hhbmdlZC4qKiovCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9XSEJUMkNPTiAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0dQVFUrIDB4MDA0OCkpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9XSEJUMkNPTl9TRVRUeENIRElSICAgICAgICAgICAgICAgICgxIDw8IDE1KQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfV0hCVDJDT05fQ0xSVHhDSERJUiAgICAgICAgICAgICAgICAoMSA8PCAxNCkKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1dIQlQyQ09OX1NFVFR4RURHRSAgICAgICAgICAgICAgICAgICgxIDw8IDEzKQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfV0hCVDJDT05fQ0xSVHhFREdFICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCgovKioqR1BUIFdyaXRlIEhXIE1vZGlmaWVkIFRpbWVyIDQgQ29udHJvbCBSZWdpc3RlciBJZiBzZXQKIGFuZCBjbGVhciBiaXQgYXJlIHdyaXR0ZW4gY29uY3VycmVudGx5IHdpdGggMSwgdGhlIGFzc29jaWF0ZWQgYml0IGlzIG5vdCBjaGFuZ2VkLioqKi8KI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1dIQlQ0Q09OICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfR1BUVSsgMHgwMDUwKSkKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1dIQlQ0Q09OX1NFVFR4Q0hESVIgICAgICAgICAgICAgICAgKDEgPDwgMTUpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9XSEJUNENPTl9DTFJUeENIRElSICAgICAgICAgICAgICAgICgxIDw8IDE0KQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfV0hCVDRDT05fU0VUVHhFREdFICAgICAgICAgICAgICAgICAgKDEgPDwgMTMpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9XSEJUNENPTl9DTFJUeEVER0UgICAgICAgICAgICAgICAgICAoMSA8PCAxMikKCi8qKipHUFQgQ2FwdHVyZSBSZWxvYWQgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9DQVBSRUwgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0dQVFUrIDB4MDAzMCkpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9DQVBSRUxfQ0FQUkVMICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDE2KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipHUFQgVGltZXIgMiBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1QyICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfR1BUVSsgMHgwMDM0KSkKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1QyX1RWQUwgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqR1BUIFRpbWVyIDMgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UMyAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0dQVFUrIDB4MDAzOCkpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UM19UVkFMICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkdQVCBUaW1lciA0IFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDQgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9HUFRVKyAweDAwM0MpKQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDRfVFZBTCAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDE2KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipHUFQgVGltZXIgNSBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1Q1ICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfR1BUVSsgMHgwMDQwKSkKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1Q1X1RWQUwgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqR1BUIFRpbWVyIDYgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNiAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0dQVFUrIDB4MDA0NCkpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNl9UVkFMICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkdQVCBUaW1lciA2IENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNkNPTiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0dQVFUrIDB4MDAyMCkpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNkNPTl9UNlNSICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE1KQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDZDT05fVDZDTFIgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE0KQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDZDT05fQlBTMiAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAxMSkKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1Q2Q09OX1Q2T1RMICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMCkKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1Q2Q09OX1Q2VUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1Q2Q09OX1Q2UiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNkNPTl9UNk0gKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDMpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNkNPTl9UNkkgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqR1BUIFdyaXRlIEhXIE1vZGlmaWVkIFRpbWVyIDYgQ29udHJvbCBSZWdpc3RlciBJZiBzZXQKIGFuZCBjbGVhciBiaXQgYXJlIHdyaXR0ZW4gY29uY3VycmVudGx5IHdpdGggMSwgdGhlIGFzc29jaWF0ZWQgYml0IGlzIG5vdCBjaGFuZ2VkLioqKi8KI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1dIQlQ2Q09OICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfR1BUVSsgMHgwMDU0KSkKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1dIQlQ2Q09OX1NFVFQ2T1RMICAgICAgICAgICAgICAgICAgKDEgPDwgMTEpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9XSEJUNkNPTl9DTFJUNk9UTCAgICAgICAgICAgICAgICAgICgxIDw8IDEwKQoKLyoqKkdQVCBUaW1lciA1IENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNUNPTiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0dQVFUrIDB4MDAxQykpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNUNPTl9UNVNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE1KQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDVDT05fVDVDTFIgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE0KQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDVDT05fQ0kgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDEyKQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDVDT05fVDVDQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMSkKI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1Q1Q09OX0NUMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEwKQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDVDT05fVDVSQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA5KQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDVDT05fVDVVREUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNUNPTl9UNVVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNUNPTl9UNVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDVDT05fVDVNICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAzKQojZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDVDT05fVDVJICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiAgTW9kdWxlICAgICAgOiAgSU9NIHJlZ2lzdGVyIGFkZHJlc3MgYW5kIGJpdHMgICAgICAgICAgICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNkZWZpbmUgSU5DQV9JUF9JT00gICAgICAgICAgICAgICAgICAgICAgICAgICgweEJGMTA1MDAwKQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoKLyoqKlJlY2VpdmUgRklGTyoqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9SRklGTyAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDAwMCkpCiNkZWZpbmUgSU5DQV9JUF9JT01fUkZJRk9fUlhEICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKlRyYW5zbWl0IEZJRk8qKiovCiNkZWZpbmUgSU5DQV9JUF9JT01fWEZJRk8gICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAwMDApKQojZGVmaW5lIElOQ0FfSVBfSU9NX1hGSUZPX1RYRCAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVyIEhETEMqKiovCiNkZWZpbmUgSU5DQV9JUF9JT01fSVNUQUggICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAwODApKQojZGVmaW5lIElOQ0FfSVBfSU9NX0lTVEFIX1JNRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9JT01fSVNUQUhfUlBGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKI2RlZmluZSBJTkNBX0lQX0lPTV9JU1RBSF9SRk8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQojZGVmaW5lIElOQ0FfSVBfSU9NX0lTVEFIX1hQUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9JT01fSVNUQUhfWE1SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKI2RlZmluZSBJTkNBX0lQX0lPTV9JU1RBSF9YRFUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQoKLyoqKkludGVycnVwdCBNYXNrIFJlZ2lzdGVyIEhETEMqKiovCiNkZWZpbmUgSU5DQV9JUF9JT01fTUFTS0ggICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAwODApKQojZGVmaW5lIElOQ0FfSVBfSU9NX01BU0tIX1JNRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9JT01fTUFTS0hfUlBGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKI2RlZmluZSBJTkNBX0lQX0lPTV9NQVNLSF9SRk8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQojZGVmaW5lIElOQ0FfSVBfSU9NX01BU0tIX1hQUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9JT01fTUFTS0hfWE1SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKI2RlZmluZSBJTkNBX0lQX0lPTV9NQVNLSF9YRFUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQoKLyoqKlN0YXR1cyBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9TVEFSICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDA4NCkpCiNkZWZpbmUgSU5DQV9JUF9JT01fU1RBUl9YRE9WICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9JT01fU1RBUl9YRlcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfSU9NX1NUQVJfUkFDSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQojZGVmaW5lIElOQ0FfSVBfSU9NX1NUQVJfWEFDSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQoKLyoqKkNvbW1hbmQgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9JT01fQ01EUiAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAwODQpKQojZGVmaW5lIElOQ0FfSVBfSU9NX0NNRFJfUk1DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKI2RlZmluZSBJTkNBX0lQX0lPTV9DTURSX1JSRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKI2RlZmluZSBJTkNBX0lQX0lPTV9DTURSX1hURiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiNkZWZpbmUgSU5DQV9JUF9JT01fQ01EUl9YTUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfSU9NX0NNRFJfWFJFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKk1vZGUgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9JT01fTU9ERUggICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAwODgpKQojZGVmaW5lIElOQ0FfSVBfSU9NX01PREVIX01EUzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKI2RlZmluZSBJTkNBX0lQX0lPTV9NT0RFSF9NRFMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCiNkZWZpbmUgSU5DQV9JUF9JT01fTU9ERUhfTURTMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQojZGVmaW5lIElOQ0FfSVBfSU9NX01PREVIX1JBQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiNkZWZpbmUgSU5DQV9JUF9JT01fTU9ERUhfRElNMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfSU9NX01PREVIX0RJTTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKI2RlZmluZSBJTkNBX0lQX0lPTV9NT0RFSF9ESU0wICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqRXh0ZW5kZWQgTW9kZSBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9FWE1SICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDA4QykpCiNkZWZpbmUgSU5DQV9JUF9JT01fRVhNUl9YRkJTICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9JT01fRVhNUl9SRkJTICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDUpCiNkZWZpbmUgSU5DQV9JUF9JT01fRVhNUl9TUkEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfSU9NX0VYTVJfWENSQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQojZGVmaW5lIElOQ0FfSVBfSU9NX0VYTVJfUkNSQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfSU9NX0VYTVJfSVRGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipTQVBJMSBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9TQVAxICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDA5NCkpCiNkZWZpbmUgSU5DQV9JUF9JT01fU0FQMV9TQVBJMSAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgNikgLSAxKSAmICh2YWx1ZSkpIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9JT01fU0FQMV9NSEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKlJlY2VpdmUgRnJhbWUgQnl0ZSBDb3VudCBMb3cqKiovCiNkZWZpbmUgSU5DQV9JUF9JT01fUkJDTCAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAwOTgpKQojZGVmaW5lIElOQ0FfSVBfSU9NX1JCQ0xfUkJDKHZhbHVlKSAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKlNBUEkyIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfSU9NX1NBUDIgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMDk4KSkKI2RlZmluZSBJTkNBX0lQX0lPTV9TQVAyX1NBUEkyICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCA2KSAtIDEpICYgKHZhbHVlKSkgPDwgMikKI2RlZmluZSBJTkNBX0lQX0lPTV9TQVAyX01MQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqUmVjZWl2ZSBGcmFtZSBCeXRlIENvdW50IEhpZ2gqKiovCiNkZWZpbmUgSU5DQV9JUF9JT01fUkJDSCAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAwOUMpKQojZGVmaW5lIElOQ0FfSVBfSU9NX1JCQ0hfT1YgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfSU9NX1JCQ0hfUkJDMTEgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiNkZWZpbmUgSU5DQV9JUF9JT01fUkJDSF9SQkMxMCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKI2RlZmluZSBJTkNBX0lQX0lPTV9SQkNIX1JCQzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKI2RlZmluZSBJTkNBX0lQX0lPTV9SQkNIX1JCQzggICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipURUkxIFJlZ2lzdGVyIDEqKiovCiNkZWZpbmUgSU5DQV9JUF9JT01fVEVJMSAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAwOUMpKQojZGVmaW5lIElOQ0FfSVBfSU9NX1RFSTFfVEVJMSAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDcpIC0gMSkgJiAodmFsdWUpKSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfSU9NX1RFSTFfRUEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKlJlY2VpdmUgU3RhdHVzIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfSU9NX1JTVEEgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMEEwKSkKI2RlZmluZSBJTkNBX0lQX0lPTV9SU1RBX1ZGUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9JT01fUlNUQV9SRE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfSU9NX1JTVEFfQ1JDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKI2RlZmluZSBJTkNBX0lQX0lPTV9SU1RBX1JBQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9JT01fUlNUQV9TQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQojZGVmaW5lIElOQ0FfSVBfSU9NX1JTVEFfU0EwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKI2RlZmluZSBJTkNBX0lQX0lPTV9SU1RBX1RBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKI2RlZmluZSBJTkNBX0lQX0lPTV9SU1RBX0NSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKCi8qKipURUkyIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfSU9NX1RFSTIgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMEEwKSkKI2RlZmluZSBJTkNBX0lQX0lPTV9URUkyX1RFSTIgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCA3KSAtIDEpICYgKHZhbHVlKSkgPDwgMSkKI2RlZmluZSBJTkNBX0lQX0lPTV9URUkyX0VBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipUZXN0IE1vZGUgUmVnaXN0ZXIgSERMQyoqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9UTUggICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDBBNCkpCiNkZWZpbmUgSU5DQV9JUF9JT01fVE1IX1RMUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqQ29tbWFuZC9JbmRpY2F0aW9uIFJlY2VpdmUgMCoqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9DSVIwICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDBCOCkpCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0lSMF9DT0RSMCAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0lSMF9DSUMwICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0lSMF9DSUMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0lSMF9TRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0lSMF9CQVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKkNvbW1hbmQvSW5kaWNhdGlvbiBUcmFuc21pdCAwKioqLwojZGVmaW5lIElOQ0FfSVBfSU9NX0NJWDAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMEI4KSkKI2RlZmluZSBJTkNBX0lQX0lPTV9DSVgwX0NPRFgwICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgNCkKI2RlZmluZSBJTkNBX0lQX0lPTV9DSVgwX1RCQTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKI2RlZmluZSBJTkNBX0lQX0lPTV9DSVgwX1RCQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKI2RlZmluZSBJTkNBX0lQX0lPTV9DSVgwX1RCQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKI2RlZmluZSBJTkNBX0lQX0lPTV9DSVgwX0JBQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqQ29tbWFuZC9JbmRpY2F0aW9uIFJlY2VpdmUgMSoqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9DSVIxICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDBCQykpCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0lSMV9DT0RSMSAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgNikgLSAxKSAmICh2YWx1ZSkpIDw8IDIpCgovKioqQ29tbWFuZC9JbmRpY2F0aW9uIFRyYW5zbWl0IDEqKiovCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0lYMSAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAwQkMpKQojZGVmaW5lIElOQ0FfSVBfSU9NX0NJWDFfQ09EWDEgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDYpIC0gMSkgJiAodmFsdWUpKSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfSU9NX0NJWDFfQ0lDVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfSU9NX0NJWDFfQ0kxRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKkNvbnRyb2xsZXIgRGF0YSBBY2Nlc3MgUmVnLiAoQ0gxMCkqKiovCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBMTAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAxMDApKQojZGVmaW5lIElOQ0FfSVBfSU9NX0NEQTEwX0NEQSAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipDb250cm9sbGVyIERhdGEgQWNjZXNzIFJlZy4gKENIMTEpKioqLwojZGVmaW5lIElOQ0FfSVBfSU9NX0NEQTExICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTA0KSkKI2RlZmluZSBJTkNBX0lQX0lPTV9DREExMV9DREEgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqQ29udHJvbGxlciBEYXRhIEFjY2VzcyBSZWcuIChDSDIwKSoqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9DREEyMCAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDEwOCkpCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBMjBfQ0RBICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkNvbnRyb2xsZXIgRGF0YSBBY2Nlc3MgUmVnLiAoQ0gyMSkqKiovCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBMjEgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAxMEMpKQojZGVmaW5lIElOQ0FfSVBfSU9NX0NEQTIxX0NEQSAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipUaW1lIFNsb3QgYW5kIERhdGEgUG9ydCBTZWwuIChDSDEwKSoqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9DREFfVFNEUDEwICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDExMCkpCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBX1RTRFAxMF9EUFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQojZGVmaW5lIElOQ0FfSVBfSU9NX0NEQV9UU0RQMTBfVFNTICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKlRpbWUgU2xvdCBhbmQgRGF0YSBQb3J0IFNlbC4gKENIMTEpKioqLwojZGVmaW5lIElOQ0FfSVBfSU9NX0NEQV9UU0RQMTEgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTE0KSkKI2RlZmluZSBJTkNBX0lQX0lPTV9DREFfVFNEUDExX0RQUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBX1RTRFAxMV9UU1MgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqVGltZSBTbG90IGFuZCBEYXRhIFBvcnQgU2VsLiAoQ0gyMCkqKiovCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBX1RTRFAyMCAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAxMTgpKQojZGVmaW5lIElOQ0FfSVBfSU9NX0NEQV9UU0RQMjBfRFBTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKI2RlZmluZSBJTkNBX0lQX0lPTV9DREFfVFNEUDIwX1RTUyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipUaW1lIFNsb3QgYW5kIERhdGEgUG9ydCBTZWwuIChDSDIxKSoqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9DREFfVFNEUDIxICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDExQykpCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBX1RTRFAyMV9EUFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQojZGVmaW5lIElOQ0FfSVBfSU9NX0NEQV9UU0RQMjFfVFNTICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKlRpbWUgU2xvdCBhbmQgRGF0YSBQb3J0IFNlbC4gKENIMTApKioqLwojZGVmaW5lIElOQ0FfSVBfSU9NX0NPX1RTRFAxMCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTIwKSkKI2RlZmluZSBJTkNBX0lQX0lPTV9DT19UU0RQMTBfRFBTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKI2RlZmluZSBJTkNBX0lQX0lPTV9DT19UU0RQMTBfVFNTICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKlRpbWUgU2xvdCBhbmQgRGF0YSBQb3J0IFNlbC4gKENIMTEpKioqLwojZGVmaW5lIElOQ0FfSVBfSU9NX0NPX1RTRFAxMSAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTI0KSkKI2RlZmluZSBJTkNBX0lQX0lPTV9DT19UU0RQMTFfRFBTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKI2RlZmluZSBJTkNBX0lQX0lPTV9DT19UU0RQMTFfVFNTICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKlRpbWUgU2xvdCBhbmQgRGF0YSBQb3J0IFNlbC4gKENIMjApKioqLwojZGVmaW5lIElOQ0FfSVBfSU9NX0NPX1RTRFAyMCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTI4KSkKI2RlZmluZSBJTkNBX0lQX0lPTV9DT19UU0RQMjBfRFBTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKI2RlZmluZSBJTkNBX0lQX0lPTV9DT19UU0RQMjBfVFNTICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKlRpbWUgU2xvdCBhbmQgRGF0YSBQb3J0IFNlbC4gKENIMjEpKioqLwojZGVmaW5lIElOQ0FfSVBfSU9NX0NPX1RTRFAyMSAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTJDKSkKI2RlZmluZSBJTkNBX0lQX0lPTV9DT19UU0RQMjFfRFBTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKI2RlZmluZSBJTkNBX0lQX0lPTV9DT19UU0RQMjFfVFNTICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkN0cmwuIFJlZy4gQ29udHIuIERhdGEgQWNjZXNzIENIMXgqKiovCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBMV9DUiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAxMzgpKQojZGVmaW5lIElOQ0FfSVBfSU9NX0NEQTFfQ1JfRU5fVEJNICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKI2RlZmluZSBJTkNBX0lQX0lPTV9DREExX0NSX0VOX0kxICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfSU9NX0NEQTFfQ1JfRU5fSTAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBMV9DUl9FTl9PMSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKI2RlZmluZSBJTkNBX0lQX0lPTV9DREExX0NSX0VOX08wICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfSU9NX0NEQTFfQ1JfU1dBUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKkN0cmwuIFJlZy4gQ29udHIuIERhdGEgQWNjZXNzIENIMXgqKiovCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBMl9DUiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAxM0MpKQojZGVmaW5lIElOQ0FfSVBfSU9NX0NEQTJfQ1JfRU5fVEJNICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKI2RlZmluZSBJTkNBX0lQX0lPTV9DREEyX0NSX0VOX0kxICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfSU9NX0NEQTJfQ1JfRU5fSTAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBMl9DUl9FTl9PMSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKI2RlZmluZSBJTkNBX0lQX0lPTV9DREEyX0NSX0VOX08wICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfSU9NX0NEQTJfQ1JfU1dBUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKkNvbnRyb2wgUmVnaXN0ZXIgQi1DaGFubmVsIERhdGEqKiovCiNkZWZpbmUgSU5DQV9JUF9JT01fQkNIQV9DUiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAxNDQpKQojZGVmaW5lIElOQ0FfSVBfSU9NX0JDSEFfQ1JfRU5fQkMyICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKI2RlZmluZSBJTkNBX0lQX0lPTV9CQ0hBX0NSX0VOX0JDMSAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCgovKioqQ29udHJvbCBSZWdpc3RlciBCLUNoYW5uZWwgRGF0YSoqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9CQ0hCX0NSICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDE0OCkpCiNkZWZpbmUgSU5DQV9JUF9JT01fQkNIQl9DUl9FTl9CQzIgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfSU9NX0JDSEJfQ1JfRU5fQkMxICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKCi8qKipDb250cm9sIFJlZy4gZm9yIEhETEMgYW5kIENJMSBEYXRhKioqLwojZGVmaW5lIElOQ0FfSVBfSU9NX0RDSV9DUiAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTRDKSkKI2RlZmluZSBJTkNBX0lQX0lPTV9EQ0lfQ1JfRFBTX0NJMSAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQojZGVmaW5lIElOQ0FfSVBfSU9NX0RDSV9DUl9FTl9DSTEgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfSU9NX0RDSV9DUl9FTl9EICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCgovKioqQ29udHJvbCBSZWcuIGZvciBIRExDIGFuZCBDSTEgRGF0YSoqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9EQ0lDX0NSICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDE0QykpCiNkZWZpbmUgSU5DQV9JUF9JT01fRENJQ19DUl9EUFNfQ0kwICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9JT01fRENJQ19DUl9FTl9DSTAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfSU9NX0RDSUNfQ1JfRFBTX0QgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCgovKioqQ29udHJvbCBSZWcuIFNlcmlhbCBEYXRhIFN0cm9iZSB4KioqLwojZGVmaW5lIElOQ0FfSVBfSU9NX1NEU19DUiAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTU0KSkKI2RlZmluZSBJTkNBX0lQX0lPTV9TRFNfQ1JfRU5TX1RTUyAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQojZGVmaW5lIElOQ0FfSVBfSU9NX1NEU19DUl9FTlNfVFNTXzEgICAgICAgICAgICAgICAgICAoMSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfSU9NX1NEU19DUl9FTlNfVFNTXzMgICAgICAgICAgICAgICAgICAoMSA8PCA1KQojZGVmaW5lIElOQ0FfSVBfSU9NX1NEU19DUl9UU1MgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqQ29udHJvbCBSZWdpc3RlciBJT00gRGF0YSoqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9JT01fQ1IgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDE1QykpCiNkZWZpbmUgSU5DQV9JUF9JT01fSU9NX0NSX1NQVSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9JT01fSU9NX0NSX0NJX0NTICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQojZGVmaW5lIElOQ0FfSVBfSU9NX0lPTV9DUl9USUNfRElTICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9JT01fSU9NX0NSX0VOX0JDTCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiNkZWZpbmUgSU5DQV9JUF9JT01fSU9NX0NSX0NMS00gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKI2RlZmluZSBJTkNBX0lQX0lPTV9JT01fQ1JfUmVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKI2RlZmluZSBJTkNBX0lQX0lPTV9JT01fQ1JfRElTX0lPTSAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKlN5bmNocm9ub3VzIFRyYW5zZmVyIEludGVycnVwdCoqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9TVEkgICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDE2MCkpCiNkZWZpbmUgSU5DQV9JUF9JT01fU1RJX1NUT1YyMSAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9JT01fU1RJX1NUT1YyMCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCiNkZWZpbmUgSU5DQV9JUF9JT01fU1RJX1NUT1YxMSAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCiNkZWZpbmUgSU5DQV9JUF9JT01fU1RJX1NUT1YxMCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9JT01fU1RJX1NUSTIxICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQojZGVmaW5lIElOQ0FfSVBfSU9NX1NUSV9TVEkyMCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKI2RlZmluZSBJTkNBX0lQX0lPTV9TVElfU1RJMTEgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9JT01fU1RJX1NUSTEwICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKkFja25vd2xlZGdlIFN5bmNocm9ub3VzIFRyYW5zZmVyIEludGVycnVwdCoqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9BU1RJICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDE2MCkpCiNkZWZpbmUgSU5DQV9JUF9JT01fQVNUSV9BQ0syMSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKI2RlZmluZSBJTkNBX0lQX0lPTV9BU1RJX0FDSzIwICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfSU9NX0FTVElfQUNLMTEgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9JT01fQVNUSV9BQ0sxMCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipNYXNrIFN5bmNocm9ub3VzIFRyYW5zZmVyIEludGVycnVwdCoqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9NU1RJICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDE2NCkpCiNkZWZpbmUgSU5DQV9JUF9JT01fTVNUSV9TVE9WMjEgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQojZGVmaW5lIElOQ0FfSVBfSU9NX01TVElfU1RPVjIwICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKI2RlZmluZSBJTkNBX0lQX0lPTV9NU1RJX1NUT1YxMSAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCiNkZWZpbmUgSU5DQV9JUF9JT01fTVNUSV9TVE9WMTAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfSU9NX01TVElfU1RJMjEgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiNkZWZpbmUgSU5DQV9JUF9JT01fTVNUSV9TVEkyMCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKI2RlZmluZSBJTkNBX0lQX0lPTV9NU1RJX1NUSTExICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfSU9NX01TVElfU1RJMTAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqQ29uZmlndXJhdGlvbiBSZWdpc3RlciBmb3IgU2VyaWFsIERhdGEgU3Ryb2JlcyoqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9TRFNfQ09ORiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTY4KSkKI2RlZmluZSBJTkNBX0lQX0lPTV9TRFNfQ09ORl9TRFNfQkNMICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqTW9uaXRvcmluZyBDREEgQml0cyoqKi8KI2RlZmluZSBJTkNBX0lQX0lPTV9NQ0RBICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDE2QykpCiNkZWZpbmUgSU5DQV9JUF9JT01fTUNEQV9NQ0RBMjEgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDYpCiNkZWZpbmUgSU5DQV9JUF9JT01fTUNEQV9NQ0RBMjAgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9JT01fTUNEQV9NQ0RBMTEgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9JT01fTUNEQV9NQ0RBMTAgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qICBNb2R1bGUgICAgICA6ICBBU0MgcmVnaXN0ZXIgYWRkcmVzcyBhbmQgYml0cyAgICAgICAgICAgICAgICAgICAgICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2lmIGRlZmluZWQoQ09ORklHX0lOQ0FfSVApCiNkZWZpbmUgSU5DQV9JUF9BU0MgICAgICAgICAgICAgICAgICAgICAgICAgICgweEI4MDAwNDAwKQojZWxpZiBkZWZpbmVkKENPTkZJR19QVVJQTEUpCiNkZWZpbmUgSU5DQV9JUF9BU0MgICAgICAgICAgICAgICAgICAgICAgICAgICgweEJFNTAwMDAwKQojZW5kaWYKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgovKioqQVNDIFBvcnQgSW5wdXQgU2VsZWN0IFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19QSVNFTCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FTQysgMHgwMDA0KSkKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfUElTRUxfUklTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipBU0MgQ29udHJvbCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQ09OICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BU0MrIDB4MDAxMCkpCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0NPTl9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0NPTl9MQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE0KQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19DT05fQlJTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTMpCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0NPTl9PREQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMikKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQ09OX0ZERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDExKQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19DT05fT0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMCkKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQ09OX0ZFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOSkKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQ09OX1BFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQ09OX09FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0NPTl9GRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19DT05fUEVOUlhESSAgICAgICAgICAgICAgICAgICgxIDw8IDUpCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0NPTl9SRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19DT05fU1RQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQ09OX00gKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqQVNDIFdyaXRlIEhhcmR3YXJlIE1vZGlmaWVkIENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1dIQkNPTiAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQVNDKyAweDAwNTApKQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19XSEJDT05fU0VUT0UgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEzKQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19XSEJDT05fU0VURkUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEyKQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19XSEJDT05fU0VUUEUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDExKQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19XSEJDT05fQ0xST0UgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEwKQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19XSEJDT05fQ0xSRkUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDkpCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1dIQkNPTl9DTFJQRSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfV0hCQ09OX1NFVFJFTiAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1dIQkNPTl9DTFJSRU4gICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQoKLyoqKkFTQyBCYXVkcmF0ZSBUaW1lci9SZWxvYWQgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0JUUiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQVNDKyAweDAwMTQpKQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19CVFJfQlJfVkFMVUUgKHZhbHVlKSAgICAgICAgICAoKCgoIDEgPDwgMTMpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkFTQyBGcmFjdGlvbmFsIERpdmlkZXIgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0ZEViAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQVNDKyAweDAwMTgpKQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19GRFZfRkRfVkFMVUUgKHZhbHVlKSAgICAgICAgICAoKCgoIDEgPDwgOSkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqQVNDIElyREEgUHVsc2UgTW9kZS9XaWR0aCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfUE1XICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BU0MrIDB4MDAxQykpCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1BNV19JUlBXICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1BNV19QV19WQUxVRSAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipBU0MgVHJhbnNtaXQgQnVmZmVyIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19UQlVGICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQVNDKyAweDAwMjApKQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19UQlVGX1REX1ZBTFVFICh2YWx1ZSkgICAgICAgICAgKCgoKCAxIDw8IDkpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkFTQyBSZWNlaXZlIEJ1ZmZlciBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfUkJVRiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FTQysgMHgwMDI0KSkKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfUkJVRl9SRF9WQUxVRSAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCA5KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipBU0MgQXV0b2JhdWQgQ29udHJvbCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQUJDT04gICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BU0MrIDB4MDAzMCkpCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0FCQ09OX1JYSU5WICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMSkKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQUJDT05fVFhJTlYgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEwKQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19BQkNPTl9BQkVNICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0FCQ09OX0ZDREVURU4gICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQUJDT05fQUJERVRFTiAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19BQkNPTl9BQlNURU4gICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19BQkNPTl9BVVJFTiAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQUJDT05fQUJFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKlJlY2VpdmUgRklGTyBDb250cm9sIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfQVNDX1JYRkNPTiAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FTQysgMHgwMDQwKSkKI2RlZmluZSBJTkNBX0lQX0FTQ19SWEZDT05fUlhGSVRMICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDYpIC0gMSkgJiAodmFsdWUpKSA8PCA4KQojZGVmaW5lIElOQ0FfSVBfQVNDX1JYRkNPTl9SWFRNRU4gICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfQVNDX1JYRkNPTl9SWEZGTFUgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfQVNDX1JYRkNPTl9SWEZFTiAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipUcmFuc21pdCBGSUZPIENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9BU0NfVFhGQ09OICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQVNDKyAweDAwNDQpKQojZGVmaW5lIElOQ0FfSVBfQVNDX1RYRkNPTl9UWEZJVEwgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgNikgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9BU0NfVFhGQ09OX1RYVE1FTiAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9BU0NfVFhGQ09OX1RYRkZMVSAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9BU0NfVFhGQ09OX1RYRkVOICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKkZJRk8gU3RhdHVzIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfQVNDX0ZTVEFUICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FTQysgMHgwMDQ4KSkKI2RlZmluZSBJTkNBX0lQX0FTQ19GU1RBVF9UWEZGTCAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgNikgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9BU0NfRlNUQVRfUlhGRkwgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkFTQyBXcml0ZSBIVyBNb2RpZmllZCBBdXRvYmF1ZCBDb250cm9sIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19XSEJBQkNPTiAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FTQysgMHgwMDU0KSkKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfV0hCQUJDT05fU0VUQUJFTiAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19XSEJBQkNPTl9DTFJBQkVOICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqQVNDIEF1dG9iYXVkIFN0YXR1cyBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQUJTVEFUICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BU0MrIDB4MDAzNCkpCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0FCU1RBVF9ERVRXQUlUICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0FCU1RBVF9TQ0NERVQgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19BQlNUQVRfU0NTREVUICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQUJTVEFUX0ZDQ0RFVCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0FCU1RBVF9GQ1NERVQgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKkFTQyBXcml0ZSBIVyBNb2RpZmllZCBBdXRvYmF1ZCBTdGF0dXMgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1dIQkFCU1RBVCAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FTQysgMHgwMDU4KSkKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfV0hCQUJTVEFUX1NFVERFVFdBSVQgICAgICAgICAgICAgICAgKDEgPDwgOSkKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfV0hCQUJTVEFUX0NMUkRFVFdBSVQgICAgICAgICAgICAgICAgKDEgPDwgOCkKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfV0hCQUJTVEFUX1NFVFNDQ0RFVCAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1dIQkFCU1RBVF9DTFJTQ0NERVQgICAgICAgICAgICAgICAgICAoMSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19XSEJBQlNUQVRfU0VUU0NTREVUICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfV0hCQUJTVEFUX0NMUlNDU0RFVCAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1dIQkFCU1RBVF9TRVRGQ0NERVQgICAgICAgICAgICAgICAgICAoMSA8PCAzKQojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19XSEJBQlNUQVRfQ0xSRkNDREVUICAgICAgICAgICAgICAgICAgKDEgPDwgMikKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfV0hCQUJTVEFUX1NFVEZDU0RFVCAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1dIQkFCU1RBVF9DTFJGQ1NERVQgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKkFTQyBDbG9jayBDb250cm9sIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19DTEMgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FTQysgMHgwMDAwKSkKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQ0xDX1JNQyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQ0xDX0RJU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQ0xDX0RJU1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogIE1vZHVsZSAgICAgIDogIERNQSByZWdpc3RlciBhZGRyZXNzIGFuZCBiaXRzICAgICAgICAgICAgICAgICAgICAgICAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgojZGVmaW5lIElOQ0FfSVBfRE1BICAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCRjEwODAwMCkKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCi8qKipETUEgUlggQ2hhbm5lbCAwIENvbW1hbmQgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYQ0NSMCAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRE1BKyAweDA4MDApKQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWENDUjBfTEJFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYQ0NSMF9IUEVOICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMwKQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWENDUjBfSU5JVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWENDUjBfT0ZGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfUlhDQ1IwX0hSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipETUEgUlggQ2hhbm5lbCAxIENvbW1hbmQgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYQ0NSMSAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRE1BKyAweDA4MDQpKQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWENDUjFfTEJFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYQ0NSMV9IUEVOICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMwKQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWENDUjFfSU5JVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWENDUjFfT0ZGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfUlhDQ1IxX0hSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipETUEgUmVjZWl2ZSBJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWElTUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RNQSsgMHgwODA4KSkKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfUlhJU1JfUkRFUlJ4ICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCA4KQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWElTUl9DTURDUFR4ICh2YWx1ZSkgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDYpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYSVNSX0VPUHggKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgNCkKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfUlhJU1JfQ1BUeCAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWElTUl9ITER4ICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqRE1BIFJlY2VpdmUgSW50ZXJydXB0IE1hc2sgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYSU1SICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRE1BKyAweDA4MEMpKQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWElNUl9SREVSUnggKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYSU1SX0NNRENQVHggKHZhbHVlKSAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgNikKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfUlhJTVJfRU9QeCAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWElNUl9DUFR4ICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYSU1SX0hMRHggKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipETUEgRmlyc3QgUmVjZWl2ZSBEZXNjcmlwdG9yIEFkZHIuIGZvciBSeCBDaGFubmVsIDAKKioqLwojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWEZSREEwICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RNQSsgMHgwODEwKSkKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfUlhGUkRBMF9SWEZSREEgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMjgpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkRNQSBGaXJzdCBSZWNlaXZlIERlc2NyaXB0b3IgQWRkci4gZm9yIFJ4IENoYW5uZWwgMQoqKiovCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYRlJEQTEgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRE1BKyAweDA4MTQpKQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWEZSREExX1JYRlJEQSAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqRE1BIFJlY2VpdmUgQ2hhbm5lbCBQb2xsaW5nIFRpbWUqKiovCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYUE9MTCAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRE1BKyAweDA4MTgpKQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWFBPTExfQlNaMSAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAzMCkKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfUlhQT0xMX0JTWjAgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMjgpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYUE9MTF9SWFBPTExUSU1FICh2YWx1ZSkgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqRE1BIFRYIENoYW5uZWwgMCBDb21tYW5kIFJlZ2lzdGVyIChWb2ljZSBQb3J0KSoqKi8KI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhDQ1IwICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ETUErIDB4MDg4MCkpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYQ0NSMF9MQkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhDQ1IwX0hQRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzApCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYQ0NSMF9IUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYQ0NSMF9PRkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWENDUjBfSU5JVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKkRNQSBUWCBDaGFubmVsIDEgQ29tbWFuZCBSZWdpc3RlciAoTWFuZ210IFBvcnQpKioqLwojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWENDUjEgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RNQSsgMHgwODg0KSkKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhDQ1IxX0xCRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWENDUjFfSFBFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMCkKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhDQ1IxX0hSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhDQ1IxX09GRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYQ0NSMV9JTklUICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqRE1BIFRYIENoYW5uZWwgMiBDb21tYW5kIFJlZ2lzdGVyIChTU0MgUG9ydCkqKiovCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYQ0NSMiAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRE1BKyAweDA4ODgpKQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWENDUjJfTEJFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYQ0NSMl9IUEVOICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMwKQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWENDUjJfSEJGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjkpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYQ0NSMl9IUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYQ0NSMl9PRkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWENDUjJfSU5JVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKkRNQSBGaXJzdCBSZWNlaXZlIERlc2NyaXB0b3IgQWRkci4gZm9yIFR4IENoYW5uZWwgMAoqKiovCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYRlJEQTAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRE1BKyAweDA4QTApKQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWEZSREEwX1RYRlJEQSAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqRE1BIEZpcnN0IFJlY2VpdmUgRGVzY3JpcHRvciBBZGRyLiBmb3IgVHggQ2hhbm5lbCAxCioqKi8KI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhGUkRBMSAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ETUErIDB4MDhBNCkpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYRlJEQTFfVFhGUkRBICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDI4KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipETUEgRmlyc3QgUmVjZWl2ZSBEZXNjcmlwdG9yIEFkZHIuIGZvciBUeCBDaGFubmVsIDIKKioqLwojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWEZSREEyICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RNQSsgMHgwOEE4KSkKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhGUkRBMl9UWEZSREEgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMjgpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkRNQSBUcmFuc21pdCBDaGFubmVsIEFyYml0cmF0aW9uIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWFdHVCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RNQSsgMHgwOEMwKSkKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhXR1RfVFgyUFIgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWFdHVF9UWDFQUkkgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYV0dUX1RYMFBSSSAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipETUEgVHJhbnNtaXQgQ2hhbm5lbCBQb2xsaW5nIFRpbWUqKiovCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYUE9MTCAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRE1BKyAweDA4QzQpKQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWFBPTExfQlNaMiAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAzMCkKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhQT0xMX0JTWjEgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMjgpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYUE9MTF9CU1owICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDI2KQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWFBPTExfVFhQT0xMVElNRSAodmFsdWUpICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkRNQSBUcmFuc21pdCBJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWElTUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RNQSsgMHgwOEM4KSkKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhJU1JfUkRFUlJ4ICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAxMikKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhJU1JfSExEeCAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCA5KQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWElTUl9DUFR4ICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDYpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYSVNSX0VPUHggKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMykKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhJU1JfQ01EQ1BUeCAodmFsdWUpICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKkRNQSBUcmFuc21pdCBJbnRlcnJ1cHQgTWFzayBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhJTVIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ETUErIDB4MDhDQykpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYSU1SX1JERVJSeCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMTIpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYSU1SX0hMRHggKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgOSkKI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhJTVJfQ1BUeCAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWElNUl9FT1B4ICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDMpCiNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYSU1SX0NNRENQVHggKHZhbHVlKSAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogIE1vZHVsZSAgICAgIDogIERlYnVnIHJlZ2lzdGVyIGFkZHJlc3MgYW5kIGJpdHMgICAgICAgICAgICAgICAgICAgICAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgojZGVmaW5lIElOQ0FfSVBfRGVidWcgICAgICAgICAgICAgICAgICAgICAgICAoMHhCRjEwNjAwMCkKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCi8qKipNQ0QgQnJlYWsgQnVzIFN3aXRjaCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0RlYnVnX01DRF9CQlMgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RlYnVnKyAweDAwMDApKQojZGVmaW5lIElOQ0FfSVBfRGVidWdfTUNEX0JCU19CVFAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE5KQojZGVmaW5lIElOQ0FfSVBfRGVidWdfTUNEX0JCU19CVFAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE4KQojZGVmaW5lIElOQ0FfSVBfRGVidWdfTUNEX0JCU19CU1AxICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE3KQojZGVmaW5lIElOQ0FfSVBfRGVidWdfTUNEX0JCU19CU1AwICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE2KQojZGVmaW5lIElOQ0FfSVBfRGVidWdfTUNEX0JCU19CVDVFTiAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCiNkZWZpbmUgSU5DQV9JUF9EZWJ1Z19NQ0RfQkJTX0JUNEVOICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNCkKI2RlZmluZSBJTkNBX0lQX0RlYnVnX01DRF9CQlNfQlQ1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTMpCiNkZWZpbmUgSU5DQV9JUF9EZWJ1Z19NQ0RfQkJTX0JUNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEyKQojZGVmaW5lIElOQ0FfSVBfRGVidWdfTUNEX0JCU19CUzVFTiAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKI2RlZmluZSBJTkNBX0lQX0RlYnVnX01DRF9CQlNfQlM0RU4gICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCiNkZWZpbmUgSU5DQV9JUF9EZWJ1Z19NQ0RfQkJTX0JTNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCiNkZWZpbmUgSU5DQV9JUF9EZWJ1Z19NQ0RfQkJTX0JTNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCgovKioqTUNEIE11bHRpcGxleGVyIENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9EZWJ1Z19NQ0RfTUNSICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9EZWJ1ZysgMHgwMDA4KSkKI2RlZmluZSBJTkNBX0lQX0RlYnVnX01DRF9NQ1JfTVVYNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfRGVidWdfTUNEX01DUl9NVVg0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiNkZWZpbmUgSU5DQV9JUF9EZWJ1Z19NQ0RfTUNSX01VWDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogIE1vZHVsZSAgICAgIDogIFRTRiByZWdpc3RlciBhZGRyZXNzIGFuZCBiaXRzICAgICAgICAgICAgICAgICAgICAgICAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgojZGVmaW5lIElOQ0FfSVBfVFNGICAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCODAwMDkwMCkKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCi8qKipUU0YgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAoMDAwMEgpKioqLwojZGVmaW5lIElOQ0FfSVBfVFNGX1RTRl9DT05GICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfVFNGKyAweDAwMDApKQojZGVmaW5lIElOQ0FfSVBfVFNGX1RTRl9DT05GX1BXTUVOICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfVFNGX1RTRl9DT05GX0xFREVOICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfVFNGX1RTRl9DT05GX0tFWUVOICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKktleSBzY2FuIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKDAwMDRIKSoqKi8KI2RlZmluZSBJTkNBX0lQX1RTRl9LRVlfQ09ORiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1RTRisgMHgwMDA0KSkKI2RlZmluZSBJTkNBX0lQX1RTRl9LRVlfQ09ORl9TTCAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipTY2FuIFJlZ2lzdGVyIExpbmUgMCBhbmQgMSAoMDAwOEgpKioqLwojZGVmaW5lIElOQ0FfSVBfVFNGX1NSRUcwMSAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1RTRisgMHgwMDA4KSkKI2RlZmluZSBJTkNBX0lQX1RTRl9TUkVHMDFfUkVTMXggKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDEyKSAtIDEpICYgKHZhbHVlKSkgPDwgMTYpCiNkZWZpbmUgSU5DQV9JUF9UU0ZfU1JFRzAxX1JFUzB4ICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAxMykgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqU2NhbiBSZWdpc3RlciBMaW5lIDIgYW5kIDMgKDAwMENIKSoqKi8KI2RlZmluZSBJTkNBX0lQX1RTRl9TUkVHMjMgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9UU0YrIDB4MDAwQykpCiNkZWZpbmUgSU5DQV9JUF9UU0ZfU1JFRzIzX1JFUzN4ICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAxMCkgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQojZGVmaW5lIElOQ0FfSVBfVFNGX1NSRUcyM19SRVMyeCAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgMTEpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKlNjYW4gUmVnaXN0ZXIgTGluZSA0LCA1IGFuZCA2ICgwMDEwSCkqKiovCiNkZWZpbmUgSU5DQV9JUF9UU0ZfU1JFRzQ1NiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfVFNGKyAweDAwMTApKQojZGVmaW5lIElOQ0FfSVBfVFNGX1NSRUc0NTZfUkVTNnggKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDcpIC0gMSkgJiAodmFsdWUpKSA8PCAyNCkKI2RlZmluZSBJTkNBX0lQX1RTRl9TUkVHNDU2X1JFUzV4ICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMTYpCiNkZWZpbmUgSU5DQV9JUF9UU0ZfU1JFRzQ1Nl9SRVM0eCAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgOSkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqU2NhbiBSZWdpc3RlciBMaW5lIDcgdG8gMTIgKDAwMTRIKSoqKi8KI2RlZmluZSBJTkNBX0lQX1RTRl9TUkVHN3RvMTIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9UU0YrIDB4MDAxNCkpCiNkZWZpbmUgSU5DQV9JUF9UU0ZfU1JFRzd0bzEyX1JFUzEyeCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI4KQojZGVmaW5lIElOQ0FfSVBfVFNGX1NSRUc3dG8xMl9SRVMxMXggKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDI0KQojZGVmaW5lIElOQ0FfSVBfVFNGX1NSRUc3dG8xMl9SRVMxMHggKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDIwKQojZGVmaW5lIElOQ0FfSVBfVFNGX1NSRUc3dG8xMl9SRVM5eCAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQojZGVmaW5lIElOQ0FfSVBfVFNGX1NSRUc3dG8xMl9SRVM4eCAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgNSkgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9UU0ZfU1JFRzd0bzEyX1JFUzd4ICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCA2KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipMRURNVVggQ29uZmlndXJhdGlvbiBSZWdpc3RlciAoMDAxOEgpKioqLwojZGVmaW5lIElOQ0FfSVBfVFNGX0xFRE1VWF9DT05GICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1RTRisgMHgwMDE4KSkKI2RlZmluZSBJTkNBX0lQX1RTRl9MRURNVVhfQ09ORl9FVEwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI1KQojZGVmaW5lIElOQ0FfSVBfVFNGX0xFRE1VWF9DT05GX0VTVEExICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyNCkKI2RlZmluZSBJTkNBX0lQX1RTRl9MRURNVVhfQ09ORl9FRFBYMSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjMpCiNkZWZpbmUgSU5DQV9JUF9UU0ZfTEVETVVYX0NPTkZfRUFDVDEgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIyKQojZGVmaW5lIElOQ0FfSVBfVFNGX0xFRE1VWF9DT05GX0VTUEQxICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyMSkKI2RlZmluZSBJTkNBX0lQX1RTRl9MRURNVVhfQ09ORl9FVEwwICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIwKQojZGVmaW5lIElOQ0FfSVBfVFNGX0xFRE1VWF9DT05GX0VTVEEwICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxOSkKI2RlZmluZSBJTkNBX0lQX1RTRl9MRURNVVhfQ09ORl9FRFBYMCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTgpCiNkZWZpbmUgSU5DQV9JUF9UU0ZfTEVETVVYX0NPTkZfRUFDVDAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE3KQojZGVmaW5lIElOQ0FfSVBfVFNGX0xFRE1VWF9DT05GX0VTUEQwICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNikKI2RlZmluZSBJTkNBX0lQX1RTRl9MRURNVVhfQ09ORl9JTlYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfVFNGX0xFRE1VWF9DT05GX05DT0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipMRUQgUmVnaXN0ZXIgKDAwMUNIKSoqKi8KI2RlZmluZSBJTkNBX0lQX1RTRl9MRURfUkVHICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9UU0YrIDB4MDAxQykpCiNkZWZpbmUgSU5DQV9JUF9UU0ZfTEVEX1JFR19MeHkgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMjQpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQoKLyoqKlB1bHNlIFdpZHRoIE1vZHVsYXRvciAxIGFuZCAyIFJlZ2lzdGVyICgwMDIwSCkqKiovCiNkZWZpbmUgSU5DQV9JUF9UU0ZfUFdNMTIgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfVFNGKyAweDAwMjApKQojZGVmaW5lIElOQ0FfSVBfVFNGX1BXTTEyX1BXMlBXMSAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCBOYU4pIC0gMSkgJiAodmFsdWUpKSA8PCBOYU4pCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qICBNb2R1bGUgICAgICA6ICBQb3J0cyByZWdpc3RlciBhZGRyZXNzIGFuZCBiaXRzICAgICAgICAgICAgICAgICAgICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2RlZmluZSBJTkNBX0lQX1BvcnRzICAgICAgICAgICAgICAgICAgICAgICAgKDB4QjgwMDBBMDApCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgovKioqUG9ydCAxIERhdGEgT3V0cHV0IFJlZ2lzdGVyICgwMDIwSCkqKiovCiNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMV9PVVQgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Qb3J0cysgMHgwMDIwKSkKI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AxX09VVF9QKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipQb3J0IDIgRGF0YSBPdXRwdXQgUmVnaXN0ZXIgKDAwNDBIKSoqKi8KI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AyX09VVCAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1BvcnRzKyAweDAwNDApKQojZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDJfT1VUX1AodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKlBvcnQgMSBEYXRhIElucHV0IFJlZ2lzdGVyICgwMDI0SCkqKiovCiNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMV9JTiAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Qb3J0cysgMHgwMDI0KSkKI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AxX0lOX1AodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKlBvcnQgMiBEYXRhIElucHV0IFJlZ2lzdGVyICgwMDQ0SCkqKiovCiNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMl9JTiAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Qb3J0cysgMHgwMDQ0KSkKI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AyX0lOX1AodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKlBvcnQgMSBEaXJlY3Rpb24gUmVnaXN0ZXIgKDAwMjhIKSoqKi8KI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AxX0RJUiAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1BvcnRzKyAweDAwMjgpKQojZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDFfRElSX1BvcnQxUCh2YWx1ZSkgICAgICAgICAoMSA8PCB2YWx1ZSkKCiNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMV9ESVJfUG9ydDJQbiAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqUG9ydCAyIERpcmVjdGlvbiBSZWdpc3RlciAoMDA0OEgpKioqLwojZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDJfRElSICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfUG9ydHMrIDB4MDA0OCkpCiNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMl9ESVJfUG9ydDFQKHZhbHVlKSAgICAgICAgICgxIDw8IHZhbHVlKQoKI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AyX0RJUl9Qb3J0MlBuICh2YWx1ZSkgICAgICAgICAgKCgoKCAxIDw8IDE2KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipQb3J0IDAgQWx0ZXJuYXRlIEZ1bmN0aW9uIFNlbGVjdCBSZWdpc3RlciAwICgwMDBDIEgpCioqKi8KI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AwX0FMVFNFTCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1BvcnRzKyAweDAwMEMpKQojZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDBfQUxUU0VMX1BvcnQwUCh2YWx1ZSkgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqUG9ydCAxIEFsdGVybmF0ZSBGdW5jdGlvbiBTZWxlY3QgUmVnaXN0ZXIgMCAoMDAyQyBIKQoqKiovCiNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMV9BTFRTRUwgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Qb3J0cysgMHgwMDJDKSkKI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AxX0FMVFNFTF9Qb3J0MVAodmFsdWUpICAgICAgICAgKDEgPDwgdmFsdWUpCgojZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDFfQUxUU0VMX1BvcnQyUCh2YWx1ZSkgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqUG9ydCAyIEFsdGVybmF0ZSBGdW5jdGlvbiBTZWxlY3QgUmVnaXN0ZXIgMCAoMDA0QyBIKQoqKiovCiNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMl9BTFRTRUwgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Qb3J0cysgMHgwMDRDKSkKI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AyX0FMVFNFTF9Qb3J0MVAodmFsdWUpICAgICAgICAgKDEgPDwgdmFsdWUpCgojZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDJfQUxUU0VMX1BvcnQyUCh2YWx1ZSkgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqUG9ydCAwIElucHV0IFNjaG1pdHQtVHJpZ2dlciBPZmYgUmVnaXN0ZXIgKDAwMTAgSCkKKioqLwojZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDBfU1RPRkYgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Qb3J0cysgMHgwMDEwKSkKI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AwX1NUT0ZGX1BvcnQwUCh2YWx1ZSkgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqUG9ydCAxIElucHV0IFNjaG1pdHQtVHJpZ2dlciBPZmYgUmVnaXN0ZXIgKDAwMzAgSCkKKioqLwojZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDFfU1RPRkYgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Qb3J0cysgMHgwMDMwKSkKI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AxX1NUT0ZGX1BvcnQxUCh2YWx1ZSkgICAgICAgICAoMSA8PCB2YWx1ZSkKCiNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMV9TVE9GRl9Qb3J0MlAodmFsdWUpICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKlBvcnQgMiBJbnB1dCBTY2htaXR0LVRyaWdnZXIgT2ZmIFJlZ2lzdGVyICgwMDUwIEgpCioqKi8KI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AyX1NUT0ZGICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfUG9ydHMrIDB4MDA1MCkpCiNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMl9TVE9GRl9Qb3J0MVAodmFsdWUpICAgICAgICAgKDEgPDwgdmFsdWUpCgojZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDJfU1RPRkZfUG9ydDJQKHZhbHVlKSAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipQb3J0IDIgT3BlbiBEcmFpbiBDb250cm9sIFJlZ2lzdGVyICgwMDU0SCkqKiovCiNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMl9PRCAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Qb3J0cysgMHgwMDU0KSkKI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AyX09EX1BvcnQyUCh2YWx1ZSkgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqUG9ydCAwIFB1bGwgVXAgRGV2aWNlIEVuYWJsZSBSZWdpc3RlciAoMDAxOCBIKSoqKi8KI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AwX1BVREVOICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfUG9ydHMrIDB4MDAxOCkpCiNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMF9QVURFTl9Qb3J0MFAodmFsdWUpICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKlBvcnQgMiBQdWxsIFVwIERldmljZSBFbmFibGUgUmVnaXN0ZXIgKDAwNTggSCkqKiovCiNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMl9QVURFTiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1BvcnRzKyAweDAwNTgpKQojZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDJfUFVERU5fUG9ydDJQKHZhbHVlKSAgICAgICAgICgxIDw8IHZhbHVlKQoKI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AyX1BVREVOX1BvcnQyUCh2YWx1ZSkgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqUG9ydCAwIFB1bGwgVXAvUHVsbCBEb3duIFNlbGVjdCBSZWdpc3RlciAoMDAxQyBIKSoqKi8KI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AwX1BVRFNFTCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1BvcnRzKyAweDAwMUMpKQojZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDBfUFVEU0VMX1BvcnQwUCh2YWx1ZSkgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqUG9ydCAyIFB1bGwgVXAvUHVsbCBEb3duIFNlbGVjdCBSZWdpc3RlciAoMDA1QyBIKSoqKi8KI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AyX1BVRFNFTCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1BvcnRzKyAweDAwNUMpKQojZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDJfUFVEU0VMX1BvcnQyUCh2YWx1ZSkgICAgICAgICAoMSA8PCB2YWx1ZSkKCiNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMl9QVURTRUxfUG9ydDJQKHZhbHVlKSAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogIE1vZHVsZSAgICAgIDogIERFUy8zREVTIHJlZ2lzdGVyIGFkZHJlc3MgYW5kIGJpdHMgICAgICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFUyAgICAgICAgICAgICAgICAgICAgKDB4QjgwMDA4MDApCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgovKioqREVTIElucHV0IERhdGEgSGlnaCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19JSFIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RFU18zREVTKyAweDAwMDApKQojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0lIUl9JSCh2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqREVTIElucHV0IERhdGEgTG93IFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0lMUiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfREVTXzNERVMrIDB4MDAwNCkpCiNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfSUxSX0lMKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipERVMgS2V5ICMxIEhpZ2ggUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfSzFIUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RFU18zREVTKyAweDAwMDgpKQojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0sxSFJfSzFIKHZhbHVlKSAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKkRFUyBLZXkgIzEgTG93IFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0sxTFIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ERVNfM0RFUysgMHgwMDBDKSkKI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19LMUxSX0sxTCh2YWx1ZSkgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipERVMgS2V5ICMyIEhpZ2ggUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfSzJIUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RFU18zREVTKyAweDAwMTApKQojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0sySFJfSzJIKHZhbHVlKSAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKkRFUyBLZXkgIzIgTG93IFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0syTFIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ERVNfM0RFUysgMHgwMDE0KSkKI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19LMkxSX0syTCh2YWx1ZSkgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipERVMgS2V5ICMzIEhpZ2ggUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfSzNIUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RFU18zREVTKyAweDAwMTgpKQojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0szSFJfSzNIKHZhbHVlKSAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKkRFUyBLZXkgIzMgTG93IFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0szTFIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ERVNfM0RFUysgMHgwMDFDKSkKI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19LM0xSX0szTCh2YWx1ZSkgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipERVMgSW5pdGlhbGl6YXRpb24gVmVjdG9yIEhpZ2ggUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfSVZIUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RFU18zREVTKyAweDAwMjApKQojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0lWSFJfSVZIKHZhbHVlKSAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKkRFUyBJbml0aWFsaXphdGlvbiBWZWN0b3IgTG93IFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0lWTFIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ERVNfM0RFUysgMHgwMDI0KSkKI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19JVkxSX0lWTCh2YWx1ZSkgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipERVMgQ29udHJvbCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19DT05UUk9MUiAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RFU18zREVTKyAweDAwMjgpKQojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0NPTlRST0xSX0tSRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0NPTlRST0xSX0RBVSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE2KQojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0NPTlRST0xSX0YodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0NPTlRST0xSX08odmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0NPTlRST0xSX0dPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19DT05UUk9MUl9TVFAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0NPTlRST0xSX0lFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCiNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfQ09OVFJPTFJfQlVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19DT05UUk9MUl9TTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfQ09OVFJPTFJfRV9EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19DT05UUk9MUl9NKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipERVMgT3V0cHV0IERhdGEgSGlnaCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19PSFIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RFU18zREVTKyAweDAwMkMpKQojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX09IUl9PSCh2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqREVTIE91dHB1dCBEYXRhIExvdyBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19PTFIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RFU18zREVTKyAweDAwMzApKQojZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX09MUl9PTCh2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qICBNb2R1bGUgICAgICA6ICBBRVMgcmVnaXN0ZXIgYWRkcmVzcyBhbmQgYml0cyAgICAgICAgICAgICAgICAgICAgICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2RlZmluZSBJTkNBX0lQX0FFUyAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4QjgwMDA4ODApCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgovKioqQUVTIElucHV0IERhdGEgMyBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSUQzUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSUQzUl9JKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipBRVMgSW5wdXQgRGF0YSAyIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19JRDJSICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQUVTKyAweDAwMDApKQojZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19JRDJSX0kodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKkFFUyBJbnB1dCBEYXRhIDEgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0lEMVIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BRVMrIDB4MDAwMCkpCiNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0lEMVJfSSh2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqQUVTIElucHV0IERhdGEgMCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSUQwUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSUQwUl9JKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipBRVMgT3V0cHV0IERhdGEgMyBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfT0QzUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfT0QzUl9PKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipBRVMgT3V0cHV0IERhdGEgMiBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfT0QyUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfT0QyUl9PKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipBRVMgT3V0cHV0IERhdGEgMSBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfT0QxUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfT0QxUl9PKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipBRVMgT3V0cHV0IERhdGEgMCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfT0QwUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfT0QwUl9PKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipBRVMgS2V5IDcgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0s3UiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQUVTKyAweDAwMDApKQojZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19LN1JfSyh2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqQUVTIEtleSA2IFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19LNlIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSzZSX0sodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKkFFUyBLZXkgNSBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSzVSICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BRVMrIDB4MDAwMCkpCiNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0s1Ul9LKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipBRVMgS2V5IDQgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0s0UiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQUVTKyAweDAwMDApKQojZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19LNFJfSyh2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqQUVTIEtleSAzIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19LM1IgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSzNSX0sodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKkFFUyBLZXkgMiBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSzJSICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BRVMrIDB4MDAwMCkpCiNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0syUl9LKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipBRVMgS2V5IDEgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0sxUiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQUVTKyAweDAwMDApKQojZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19LMVJfSyh2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqQUVTIEtleSAwIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19LMFIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSzBSX0sodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKkFFUyBJbml0aWFsaXphdGlvbiBWZWN0b3IgMyBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSVYzUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSVYzUl9JVih2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqQUVTIEluaXRpYWxpemF0aW9uIFZlY3RvciAyIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19JVjJSICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQUVTKyAweDAwMDApKQojZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19JVjJSX0lWKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipBRVMgSW5pdGlhbGl6YXRpb24gVmVjdG9yIDEgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0lWMVIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BRVMrIDB4MDAwMCkpCiNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0lWMVJfSVYodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKkFFUyBJbml0aWFsaXphdGlvbiBWZWN0b3IgMCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSVYwUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSVYwUl9JViAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzMikgLSAxKSAmKHZhbHVlKSkgPDwgMCkKCi8qKipBRVMgQ29udHJvbCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfQ09OVFJPTFIgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BRVMrIDB4MDAwMCkpCiNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0NPTlRST0xSX0tSRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQojZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19DT05UUk9MUl9EQVUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNikKI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfQ09OVFJPTFJfUE5LICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCiNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0NPTlRST0xSX0YodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgojZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19DT05UUk9MUl9PKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfQ09OVFJPTFJfR08gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA4KQojZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19DT05UUk9MUl9TVFAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQojZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19DT05UUk9MUl9JRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19DT05UUk9MUl9CVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQojZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19DT05UUk9MUl9TTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0NPTlRST0xSX0VfRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0NPTlRST0xSX0tWICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfQ09OVFJPTFJfSyh2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qICBNb2R1bGUgICAgICA6ICBJskMgcmVnaXN0ZXIgYWRkcmVzcyBhbmQgYml0cyAgICAgICAgICAgICAgICAgICAgICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2RlZmluZSBJTkNBX0lQX0lJQyAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4QjgwMDA3MDApCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgovKioqSbJDIFBvcnQgSW5wdXQgU2VsZWN0IFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19QSVNFTCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lJQysgMHgwMDA0KSkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfUElTRUxfU0RBSVModmFsdWUpICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19QSVNFTF9TQ0xJUyh2YWx1ZSkgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqSbJDIENsb2NrIENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX0NMQyAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSUlDKyAweDAwMDApKQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19DTENfUk1DICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCA4KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19DTENfRElTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19DTENfRElTUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKkmyQyBTeXN0ZW0gQ29udHJvbCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JSUMrIDB4MDAxMCkpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8wX1dNRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8wX0NJICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAyNikKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzBfU1RQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjUpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8wX0lHRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI0KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMF9UUlggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyMykKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzBfSU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjIpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8wX0FDS0RJUyAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIxKQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMF9CVU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyMCkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzBfTU9EICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAxOCkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzBfUlNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTcpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8wX00xMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE2KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMF9STUVOICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE1KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMF9DTyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzBfSVJRRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMF9JUlFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8wX0lSUUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzBfQkIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMF9MUkIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMF9TTEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMF9BTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8wX0FEUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqSbJDIFN5c3RlbSBDb250cm9sIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMSAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lJQysgMHgwMDEwKSkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzFfUk0gKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDI0KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMV9UUlggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyMykKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzFfSU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjIpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8xX0FDS0RJUyAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIxKQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMV9CVU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyMCkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzFfTU9EICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAxOCkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzFfUlNDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTcpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8xX00xMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE2KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMV9STUVOICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE1KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMV9DTyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzFfSVJRRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMV9JUlFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8xX0lSUUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzFfQkIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMV9MUkIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMV9TTEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMV9BTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8xX0FEUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCgovKioqSbJDIFN5c3RlbSBDb250cm9sIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMiAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lJQysgMHgwMDEwKSkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzJfV01FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzJfQ0kgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDI2KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMl9TVFAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyNSkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzJfSUdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjQpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8yX1RSWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIzKQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMl9JTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyMikKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzJfQUNLRElTICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjEpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8yX0JVTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIwKQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMl9NT0QgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDE4KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMl9SU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNykKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzJfTTEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTYpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8yX1dNICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCA4KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMl9JUlFFICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8yX0lSUVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzJfSVJRRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMl9CQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8yX0xSQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8yX1NMQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8yX0FMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzJfQURSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKCi8qKipJskMgV3JpdGUgSGFyZHdhcmUgTW9kaWZpZWQgU3lzdGVtIENvbnRyb2wgUmVnaXN0ZXIKKioqLwojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19XSEJTWVNDT04gICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JSUMrIDB4MDAyMCkpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1dIQlNZU0NPTl9DTFJXTUVOICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19XSEJTWVNDT05fU0VUV01FTiAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMCkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfV0hCU1lTQ09OX1NFVFNUUCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI2KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19XSEJTWVNDT05fQ0xSU1RQICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjUpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1dIQlNZU0NPTl9TRVRUUlggICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyNCkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfV0hCU1lTQ09OX0NMUlRSWCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIzKQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19XSEJTWVNDT05fU0VUQUNLRElTICAgICAgICAgICAgICAgICAgKDEgPDwgMjIpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1dIQlNZU0NPTl9DTFJBQ0tESVMgICAgICAgICAgICAgICAgICAoMSA8PCAyMSkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfV0hCU1lTQ09OX1NFVEJVTSAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIwKQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19XSEJTWVNDT05fQ0xSQlVNICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTkpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1dIQlNZU0NPTl9TRVRSU0MgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNykKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfV0hCU1lTQ09OX0NMUlJTQyAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE2KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19XSEJTWVNDT05fU0VUUk1FTiAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNSkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfV0hCU1lTQ09OX0NMUlJNRU4gICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTQpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1dIQlNZU0NPTl9TRVRJUlFFICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEwKQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19XSEJTWVNDT05fU0VUSVJRUCAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA5KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19XSEJTWVNDT05fU0VUSVJRRCAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA4KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19XSEJTWVNDT05fQ0xSSVJRRSAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19XSEJTWVNDT05fQ0xSSVJRUCAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19XSEJTWVNDT05fQ0xSSVJRRCAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19XSEJTWVNDT05fU0VUQUwgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1dIQlNZU0NPTl9DTFJBTCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKCi8qKipJskMgQnVzIENvbnRyb2wgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX0JVU0NPTl8wICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSUlDKyAweDAwMTQpKQojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19CVVNDT05fMF9CUlBNT0QgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfQlVTQ09OXzBfUFJFRElWICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAyOSkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfQlVTQ09OXzBfSUNBOV8wICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDEwKSAtIDEpICYgKHZhbHVlKSkgPDwgMTYpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX0JVU0NPTl8wX0JSUCAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfQlVTQ09OXzBfU0NMRU4odmFsdWUpICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19CVVNDT05fMF9TREFFTih2YWx1ZSkgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqSbJDIEJ1cyBDb250cm9sIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19CVVNDT05fMSAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lJQysgMHgwMDE0KSkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfQlVTQ09OXzFfQlJQTU9EICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX0JVU0NPTl8xX1BSRURJViAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMjkpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX0JVU0NPTl8xX0lDQTdfMSAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA3KSAtIDEpICYgKHZhbHVlKSkgPDwgMTcpCiNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX0JVU0NPTl8xX0JSUCAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfQlVTQ09OXzFfU0NMRU4odmFsdWUpICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19CVVNDT05fMV9TREFFTih2YWx1ZSkgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqSbJDIFJlY2VpdmUgVHJhbnNtaXQgQnVmZmVyKioqLwojZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19SVEIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lJQysgMHgwMDE4KSkKI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfUlRCX1JUQih2YWx1ZSkgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogIE1vZHVsZSAgICAgIDogIEZCIHJlZ2lzdGVyIGFkZHJlc3MgYW5kIGJpdHMgICAgICAgICAgICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNkZWZpbmUgSU5DQV9JUF9GQiAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4QkY4ODAwMDApCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgovKioqRkIgQWNjZXNzIEVycm9yIENhdXNlIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfRkJfRkJfRVJSQ0FVU0UgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRkIrIDB4MDEwMCkpCiNkZWZpbmUgSU5DQV9JUF9GQl9GQl9FUlJDQVVTRV9FUlIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkKI2RlZmluZSBJTkNBX0lQX0ZCX0ZCX0VSUkNBVVNFX1BPUlQgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMTYpCiNkZWZpbmUgSU5DQV9JUF9GQl9GQl9FUlJDQVVTRV9DQVVTRSAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqRkIgQWNjZXNzIEVycm9yIEFkZHJlc3MgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9GQl9GQl9FUlJBRERSICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9GQisgMHgwMTA4KSkKI2RlZmluZSBJTkNBX0lQX0ZCX0ZCX0VSUkFERFJfQUREUgoKLyoqKkZCIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9GQl9GQl9DRkcgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9GQisgMHgwODAwKSkKI2RlZmluZSBJTkNBX0lQX0ZCX0ZCX0NGR19TVk0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiAgTW9kdWxlICAgICAgOiAgU1JBTSByZWdpc3RlciBhZGRyZXNzIGFuZCBiaXRzICAgICAgICAgICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNkZWZpbmUgSU5DQV9JUF9TUkFNICAgICAgICAgICAgICAgICAgICAgICAgICgweEJGOTgwMDAwKQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoKLyoqKlNSQU0gU2l6ZSBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX1NSQU1fU1JBTV9TSVpFICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU1JBTSsgMHgwODAwKSkKI2RlZmluZSBJTkNBX0lQX1NSQU1fU1JBTV9TSVpFX1NJWkUgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyMykgLSAxKSAmICh2YWx1ZSkpIDw8IDApCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qICBNb2R1bGUgICAgICA6ICBCSVUgcmVnaXN0ZXIgYWRkcmVzcyBhbmQgYml0cyAgICAgICAgICAgICAgICAgICAgICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2RlZmluZSBJTkNBX0lQX0JJVSAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4QkZBODAwMDApCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgovKioqQklVIElkZW50aWZpY2F0aW9uIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfQklVX0JJVV9JRCAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0JJVSsgMHgwMDAwKSkKI2RlZmluZSBJTkNBX0lQX0JJVV9CSVVfSURfQVJDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNikKI2RlZmluZSBJTkNBX0lQX0JJVV9CSVVfSURfSUQgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9CSVVfQklVX0lEX1JFViAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipCSVUgQWNjZXNzIEVycm9yIENhdXNlIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfQklVX0JJVV9FUlJDQVVTRSAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0JJVSsgMHgwMTAwKSkKI2RlZmluZSBJTkNBX0lQX0JJVV9CSVVfRVJSQ0FVU0VfRVJSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiNkZWZpbmUgSU5DQV9JUF9CSVVfQklVX0VSUkNBVVNFX1BPUlQgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMTYpCiNkZWZpbmUgSU5DQV9JUF9CSVVfQklVX0VSUkNBVVNFX0NBVVNFICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKCi8qKipCSVUgQWNjZXNzIEVycm9yIEFkZHJlc3MgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9CSVVfQklVX0VSUkFERFIgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQklVKyAweDAxMDgpKQojZGVmaW5lIElOQ0FfSVBfQklVX0JJVV9FUlJBRERSX0FERFIKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogIE1vZHVsZSAgICAgIDogIElDVSByZWdpc3RlciBhZGRyZXNzIGFuZCBiaXRzICAgICAgICAgICAgICAgICAgICAgICAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgojZGVmaW5lIElOQ0FfSVBfSUNVICAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCRjEwMTAwMCkKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCi8qKipJTTAgSW50ZXJydXB0IFN0YXR1cyBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0lDVV9JTTBfSVNSICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JQ1UrIDB4MDAwMCkpCiNkZWZpbmUgSU5DQV9JUF9JQ1VfSU0wX0lTUl9JUih2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqSU0xIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9JQ1VfSU0xX0lTUiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSUNVKyAweDAyMDApKQojZGVmaW5lIElOQ0FfSVBfSUNVX0lNMV9JU1JfSVIodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKklNMiBJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfSUNVX0lNMl9JU1IgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lDVSsgMHgwNDAwKSkKI2RlZmluZSBJTkNBX0lQX0lDVV9JTTJfSVNSX0lSKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipJTTAgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0lDVV9JTTBfSUVSICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JQ1UrIDB4MDAwOCkpCiNkZWZpbmUgSU5DQV9JUF9JQ1VfSU0wX0lFUl9JUih2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqSU0xIEludGVycnVwdCBFbmFibGUgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9JQ1VfSU0xX0lFUiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSUNVKyAweDAyMDgpKQojZGVmaW5lIElOQ0FfSVBfSUNVX0lNMV9JRVJfSVIodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKklNMiBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfSUNVX0lNMl9JRVIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lDVSsgMHgwNDA4KSkKI2RlZmluZSBJTkNBX0lQX0lDVV9JTTJfSUVSX0lSKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipJTTAgSW50ZXJydXB0IE91dHB1dCBTdGF0dXMgUmVnaXN0ZXIqKiovCiNkZWZpbmUgSU5DQV9JUF9JQ1VfSU0wX0lPU1IgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JQ1UrIDB4MDAxMCkpCiNkZWZpbmUgSU5DQV9JUF9JQ1VfSU0wX0lPU1JfSVIodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCgoKLyoqKklNMSBJbnRlcnJ1cHQgT3V0cHV0IFN0YXR1cyBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0lDVV9JTTFfSU9TUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lDVSsgMHgwMjEwKSkKI2RlZmluZSBJTkNBX0lQX0lDVV9JTTFfSU9TUl9JUih2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKCgovKioqSU0yIEludGVycnVwdCBPdXRwdXQgU3RhdHVzIFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfSUNVX0lNMl9JT1NSICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSUNVKyAweDA0MTApKQojZGVmaW5lIElOQ0FfSVBfSUNVX0lNMl9JT1NSX0lSKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipJTTAgSW50ZXJydXB0IFJlcXVlc3QgU2V0IFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfSUNVX0lNMF9JUlNSICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSUNVKyAweDAwMTgpKQojZGVmaW5lIElOQ0FfSVBfSUNVX0lNMF9JUlNSX0lSKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipJTTEgSW50ZXJydXB0IFJlcXVlc3QgU2V0IFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfSUNVX0lNMV9JUlNSICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSUNVKyAweDAyMTgpKQojZGVmaW5lIElOQ0FfSVBfSUNVX0lNMV9JUlNSX0lSKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipJTTIgSW50ZXJydXB0IFJlcXVlc3QgU2V0IFJlZ2lzdGVyKioqLwojZGVmaW5lIElOQ0FfSVBfSUNVX0lNMl9JUlNSICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSUNVKyAweDA0MTgpKQojZGVmaW5lIElOQ0FfSVBfSUNVX0lNMl9JUlNSX0lSKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQoKCi8qKipFeHRlcm5hbCBJbnRlcnJ1cHQgQ29udHJvbCBSZWdpc3RlcioqKi8KI2RlZmluZSBJTkNBX0lQX0lDVV9JQ1VfRUlDUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lDVSsgMHgwQjAwKSkKI2RlZmluZSBJTkNBX0lQX0lDVV9JQ1VfRUlDUl9FSUk1ICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDIwKQojZGVmaW5lIElOQ0FfSVBfSUNVX0lDVV9FSUNSX0VJSTQgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMTYpCiNkZWZpbmUgSU5DQV9JUF9JQ1VfSUNVX0VJQ1JfRUlJMyAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAxMikKI2RlZmluZSBJTkNBX0lQX0lDVV9JQ1VfRUlDUl9FSUkyICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiNkZWZpbmUgSU5DQV9JUF9JQ1VfSUNVX0VJQ1JfRUlJMSAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCA0KQojZGVmaW5lIElOQ0FfSVBfSUNVX0lDVV9FSUNSX0VJSTAgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkK