ZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vYXJjaC1tMC9jcHUuaCBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vYXJjaC1tMC9jcHUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMWJjNzY1Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS9hcmNoLW0wL2NwdS5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYsIFpYSUMgQ29ycG9yYXRpb24uCisgKgorICogRmlsZSBOYW1lOiAgICAKKyAqIEZpbGUgTWFyazogICAgCisgKiBEZXNjcmlwdGlvbjogIAorICogT3RoZXJzOiAgICAgICAgCisgKiBWZXJzaW9uOiAgICAgICB2MS4wCisgKiBBdXRob3I6ICAgICAgICB6aG91cWkKKyAqIERhdGU6ICAgICAgICAgIDIwMTMtNC0yCisgKiBIaXN0b3J5IDE6ICAgICAgCisgKiAgICAgRGF0ZTogCisgKiAgICAgVmVyc2lvbjoKKyAqICAgICBBdXRob3I6IAorICogICAgIE1vZGlmaWNhdGlvbjogIAorICogSGlzdG9yeSAyOiAKKyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZuZGVmIF9fQ1BVX0hfXworI2RlZmluZSBfX0NQVV9IX18KKyNpbmNsdWRlIDxjb25maWcuaD4KKworCisjZGVmaW5lIFNZU19CT09UU0VMX0JBU0UgICAgMHgwMDEzYjAwNAkJCisKKyNkZWZpbmUgU1lTX0lSQU0wX0JBU0UgICAgICAweDgyMDAwMDAwICAgICAgICAgIC8qIDEyMGsgKi8KKyNkZWZpbmUgU1lTX0lSQU0xX0JBU0UgICAgICAweDEwMDAwMCAgICAgICAgICAgIC8qIDY0ayAqLy8qIGZvciBBOSBzdGFydCAqLworI2RlZmluZSBTWVNfSVJBTTJfQkFTRSAgICAgIDB4ODAwMDAgICAgICAgICAgICAgLyogNjRrICovCisKKyNkZWZpbmUgQ1BVX0E5X1NVQlNZU19DRkcgICAgICAweDAxM0IxMzggICAgICAgIC8qIGZvciBBOSByZXNldCAqLworI2RlZmluZSAgICAgQ1BVX1VGSV9TV19SU1RFTiAgICAgIDB4ZiAgIAorCisjZGVmaW5lIENPUkVfT1VUUFVUX1NXSVRDSF9DT05GSUdfUkVHICgweDAwMTNhMDAwICsgMHgwQUMpCisjZGVmaW5lIENPUkVfT1VUUFVUX1NXX0NPTkZJR19SRUcxICAoMHgwMDEzYTAwMCArIDB4MEI4KQorI2RlZmluZSBDT1JFX09VVFBVVF9TV19DT05GSUdfUkVHMiAgKDB4MDAxM2EwMDAgKyAweDBCQykKKworI2RlZmluZSBVU0JfUkVTRVQJKDB4MDAxM0IwODApCisKK2V4dGVybiB2b2lkIHRpbWVyX2luaXQodm9pZCk7CisKKworI2VuZGlmIC8qX19DUFVfSF9fKi8KZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vYXJjaC1tMC9kZW5hbGkuaCBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vYXJjaC1tMC9kZW5hbGkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNWRiZWM4Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS9hcmNoLW0wL2RlbmFsaS5oCkBAIC0wLDAgKzEsNDg0IEBACisvKgorICogTkFORCBGbGFzaCBDb250cm9sbGVyIERldmljZSBEcml2ZXIKKyAqIENvcHlyaWdodCAoYykgMjAwOSAtIDIwMTAsIEludGVsIENvcnBvcmF0aW9uIGFuZCBpdHMgc3VwcGxpZXJzLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorICogdmVyc2lvbiAyLCBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCisgKiBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IKKyAqIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZyB3aXRoCisgKiB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKKyAqIDUxIEZyYW5rbGluIFN0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EuCisgKgorICovCisjaWZuZGVmIF9ERU5BTElfSF8KKyNkZWZpbmUgX0RFTkFMSV9IXworCisKKyNkZWZpbmUgTkFORF9CQVNFICAgICAgICAgICAgICAgICAgIAkgCTB4MTIxNDAwMAkJLy8gvMS05sb3u/m12Na3CisjZGVmaW5lIE5BTkRfREFUQSAgICAgICAgICAgICAgICAgICAgCQkweDEyMTUwMDAJCS8vIMr9vt27+bXY1rcKKyNkZWZpbmUgTkFORF9EQVRBXzEwICAgICAgICAgICAgICAgICAgICAgICAgKE5BTkRfREFUQSArIDB4MTApCisKKyNkZWZpbmUgREVWSUNFX1JFU0VUCQkJCShOQU5EX0JBU0UgKyAweDApCisjZGVmaW5lICAgICBERVZJQ0VfUkVTRVRfX0JBTkswCQkJCTB4MDAwMQorI2RlZmluZSAgICAgREVWSUNFX1JFU0VUX19CQU5LMQkJCQkweDAwMDIKKyNkZWZpbmUgICAgIERFVklDRV9SRVNFVF9fQkFOSzIJCQkJMHgwMDA0CisjZGVmaW5lICAgICBERVZJQ0VfUkVTRVRfX0JBTkszCQkJCTB4MDAwOAorCisjZGVmaW5lIFRSQU5TRkVSX1NQQVJFX1JFRwkJCShOQU5EX0JBU0UgKyAweDEwKQorI2RlZmluZSAgICAgVFJBTlNGRVJfU1BBUkVfUkVHX19GTEFHCQkJMHgwMDAxCisjZGVmaW5lICAgICBUUkFOU0ZFUl9NQUlOX1JFR19fRkxBRwkJCSAgICAweDAwMDAKKworI2RlZmluZSBMT0FEX1dBSVRfQ05UCQkJCShOQU5EX0JBU0UgKyAweDIwKQorI2RlZmluZSAgICAgTE9BRF9XQUlUX0NOVF9fVkFMVUUJCQkweGZmZmYKKworI2RlZmluZSBQUk9HUkFNX1dBSVRfQ05UCQkJKE5BTkRfQkFTRSArIDB4MzApCisjZGVmaW5lICAgICBQUk9HUkFNX1dBSVRfQ05UX19WQUxVRQkJCTB4ZmZmZgorCisjZGVmaW5lIEVSQVNFX1dBSVRfQ05UCQkJCShOQU5EX0JBU0UgKyAweDQwKQorI2RlZmluZSAgICAgRVJBU0VfV0FJVF9DTlRfX1ZBTFVFCQkJMHhmZmZmCisKKyNkZWZpbmUgSU5UX01PTl9DWUNDTlQJCQkJKE5BTkRfQkFTRSArIDB4NTApCisjZGVmaW5lICAgICBJTlRfTU9OX0NZQ0NOVF9fVkFMVUUJCQkweGZmZmYKKworI2RlZmluZSBSQl9QSU5fRU5BQkxFRAkJCQkoTkFORF9CQVNFICsgMHg2MCkKKyNkZWZpbmUgICAgIFJCX1BJTl9FTkFCTEVEX19CQU5LMAkJCTB4MDAwMQorI2RlZmluZSAgICAgUkJfUElOX0VOQUJMRURfX0JBTksxCQkJMHgwMDAyCisjZGVmaW5lICAgICBSQl9QSU5fRU5BQkxFRF9fQkFOSzIJCQkweDAwMDQKKyNkZWZpbmUgICAgIFJCX1BJTl9FTkFCTEVEX19CQU5LMwkJCTB4MDAwOAorCisjZGVmaW5lIE1VTFRJUExBTkVfT1BFUkFUSU9OCQkJKE5BTkRfQkFTRSArIDB4NzApCisjZGVmaW5lICAgICBNVUxUSVBMQU5FX09QRVJBVElPTl9fRkxBRwkJCTB4MDAwMQorCisjZGVmaW5lIE1VTFRJUExBTkVfUkVBRF9FTkFCTEUJCQkoTkFORF9CQVNFICsgMHg4MCkKKyNkZWZpbmUgICAgIE1VTFRJUExBTkVfUkVBRF9FTkFCTEVfX0ZMQUcJCTB4MDAwMQorCisjZGVmaW5lIENPUFlCQUNLX0RJU0FCTEUJCQkoTkFORF9CQVNFICsgMHg5MCkKKyNkZWZpbmUgICAgIENPUFlCQUNLX0RJU0FCTEVfX0ZMQUcJCQkweDAwMDEKKworI2RlZmluZSBDQUNIRV9XUklURV9FTkFCTEUJCQkoTkFORF9CQVNFICsgMHhhMCkKKyNkZWZpbmUgICAgIENBQ0hFX1dSSVRFX0VOQUJMRV9fRkxBRwkJCTB4MDAwMQorCisjZGVmaW5lIENBQ0hFX1JFQURfRU5BQkxFCQkJKE5BTkRfQkFTRSArIDB4YjApCisjZGVmaW5lICAgICBDQUNIRV9SRUFEX0VOQUJMRV9fRkxBRwkJCTB4MDAwMQorCisjZGVmaW5lIFBSRUZFVENIX01PREUJCQkJKE5BTkRfQkFTRSArIDB4YzApCisjZGVmaW5lICAgICBQUkVGRVRDSF9NT0RFX19QUkVGRVRDSF9FTgkJCTB4MDAwMQorI2RlZmluZSAgICAgUFJFRkVUQ0hfTU9ERV9fUFJFRkVUQ0hfQlVSU1RfTEVOR1RICTB4ZmZmMAorCisjZGVmaW5lIENISVBfRU5BQkxFX0RPTlRfQ0FSRQkJCShOQU5EX0JBU0UgKyAweGQwKQorI2RlZmluZSAgICAgQ0hJUF9FTl9ET05UX0NBUkVfX0ZMQUcJCQkweDAxCisKKyNkZWZpbmUgRUNDX0VOQUJMRQkJCQkoTkFORF9CQVNFICsgMHhlMCkKKyNkZWZpbmUgICAgIEVDQ19FTkFCTEVfX0ZMQUcJCQkJMHgwMDAxCisjZGVmaW5lICAgICBFQ0NfRElTQUJMRV9fRkxBRwkJCQkweDAwMDAKKworI2RlZmluZSBHTE9CQUxfSU5UX0VOQUJMRQkJCShOQU5EX0JBU0UgKyAweGYwKQorI2RlZmluZSAgICAgR0xPQkFMX0lOVF9FTl9GTEFHCQkJCTB4MDEKKworI2RlZmluZSBXRV8yX1JFCQkJCQkoTkFORF9CQVNFICsgMHgxMDApCisjZGVmaW5lICAgICBXRV8yX1JFX19WQUxVRQkJCQkweDAwM2YKKworI2RlZmluZSBBRERSXzJfREFUQQkJCQkoTkFORF9CQVNFICsgMHgxMTApCisjZGVmaW5lICAgICBBRERSXzJfREFUQV9fVkFMVUUJCQkJMHgwMDNmCisKKyNkZWZpbmUgUkVfMl9XRQkJCQkJKE5BTkRfQkFTRSArIDB4MTIwKQorI2RlZmluZSAgICAgUkVfMl9XRV9fVkFMVUUJCQkJMHgwMDNmCisKKyNkZWZpbmUgQUNDX0NMS1MJCQkJKE5BTkRfQkFTRSArIDB4MTMwKQorI2RlZmluZSAgICAgQUNDX0NMS1NfX1ZBTFVFCQkJCTB4MDAwZgorCisjZGVmaW5lIE5VTUJFUl9PRl9QTEFORVMJCQkoTkFORF9CQVNFICsgMHgxNDApCisjZGVmaW5lICAgICBOVU1CRVJfT0ZfUExBTkVTX19WQUxVRQkJCTB4MDAwNworCisjZGVmaW5lIFBBR0VTX1BFUl9CTE9DSwkJCQkoTkFORF9CQVNFICsgMHgxNTApCisjZGVmaW5lICAgICBQQUdFU19QRVJfQkxPQ0tfX1ZBTFVFCQkJMHhmZmZmCisKKyNkZWZpbmUgREVWSUNFX1dJRFRICQkJCShOQU5EX0JBU0UgKyAweDE2MCkKKyNkZWZpbmUgICAgIERFVklDRV9XSURUSF9fVkFMVUUJCQkJMHgwMDAzCisKKyNkZWZpbmUgREVWSUNFX01BSU5fQVJFQV9TSVpFCQkJKE5BTkRfQkFTRSArIDB4MTcwKQorI2RlZmluZSAgICAgREVWSUNFX01BSU5fQVJFQV9TSVpFX19WQUxVRQkJMHhmZmZmCisKKyNkZWZpbmUgREVWSUNFX1NQQVJFX0FSRUFfU0laRQkJCShOQU5EX0JBU0UgKyAweDE4MCkKKyNkZWZpbmUgICAgIERFVklDRV9TUEFSRV9BUkVBX1NJWkVfX1ZBTFVFCQkweGZmZmYKKworI2RlZmluZSBUV09fUk9XX0FERFJfQ1lDTEVTCQkJKE5BTkRfQkFTRSArIDB4MTkwKQorI2RlZmluZSAgICAgVFdPX1JPV19BRERSX0NZQ0xFU19fRkxBRwkJCTB4MDAwMQorCisjZGVmaW5lIE1VTFRJUExBTkVfQUREUl9SRVNUUklDVAkJKE5BTkRfQkFTRSArIDB4MWEwKQorI2RlZmluZSAgICAgTVVMVElQTEFORV9BRERSX1JFU1RSSUNUX19GTEFHCQkweDAwMDEKKworI2RlZmluZSBFQ0NfQ09SUkVDVElPTgkJCQkoTkFORF9CQVNFICsgMHgxYjApCisjZGVmaW5lICAgICBFQ0NfQ09SUkVDVElPTl9fVkFMVUUJCQkweDAwMWYKKworI2RlZmluZSBSRUFEX01PREUJCQkJKE5BTkRfQkFTRSArIDB4MWMwKQorI2RlZmluZSAgICAgUkVBRF9NT0RFX19WQUxVRQkJCQkweDAwMGYKKworI2RlZmluZSBXUklURV9NT0RFCQkJCShOQU5EX0JBU0UgKyAweDFkMCkKKyNkZWZpbmUgICAgIFdSSVRFX01PREVfX1ZBTFVFCQkJCTB4MDAwZgorCisjZGVmaW5lIENPUFlCQUNLX01PREUJCQkJKE5BTkRfQkFTRSArIDB4MWUwKQorI2RlZmluZSAgICAgQ09QWUJBQ0tfTU9ERV9fVkFMVUUJCQkweDAwMGYKKworI2RlZmluZSBSRFdSX0VOX0xPX0NOVAkJCQkoTkFORF9CQVNFICsgMHgxZjApCisjZGVmaW5lICAgICBSRFdSX0VOX0xPX0NOVF9fVkFMVUUJCQkweDAwMWYKKworI2RlZmluZSBSRFdSX0VOX0hJX0NOVAkJCQkoTkFORF9CQVNFICsgMHgyMDApCisjZGVmaW5lICAgICBSRFdSX0VOX0hJX0NOVF9fVkFMVUUJCQkweDAwMWYKKworI2RlZmluZSBNQVhfUkRfREVMQVkJCQkJKE5BTkRfQkFTRSArIDB4MjEwKQorI2RlZmluZSAgICAgTUFYX1JEX0RFTEFZX19WQUxVRQkJCQkweDAwMGYKKworI2RlZmluZSBDU19TRVRVUF9DTlQJCQkJKE5BTkRfQkFTRSArIDB4MjIwKQorI2RlZmluZSAgICAgQ1NfU0VUVVBfQ05UX19WQUxVRQkJCQkweDAwMWYKKworI2RlZmluZSBTUEFSRV9BUkVBX1NLSVBfQllURVMJCQkoTkFORF9CQVNFICsgMHgyMzApCisjZGVmaW5lICAgICBTUEFSRV9BUkVBX1NLSVBfQllURVNfX1ZBTFVFCQkweDAwM2YKKworI2RlZmluZSBTUEFSRV9BUkVBX01BUktFUgkJCShOQU5EX0JBU0UgKyAweDI0MCkKKyNkZWZpbmUgICAgIFNQQVJFX0FSRUFfTUFSS0VSX19WQUxVRQkJCTB4ZmZmZgorCisjZGVmaW5lIERFVklDRVNfQ09OTkVDVEVECQkJKE5BTkRfQkFTRSArIDB4MjUwKQorI2RlZmluZSAgICAgREVWSUNFU19DT05ORUNURURfX1ZBTFVFCQkJMHgwMDA3CisKKyNkZWZpbmUgRElFX01BU0sJCQkJKE5BTkRfQkFTRSArIDB4MjYwKQorI2RlZmluZSAgICAgRElFX01BU0tfX1ZBTFVFCQkJCTB4MDBmZgorCisjZGVmaW5lIEZJUlNUX0JMT0NLX09GX05FWFRfUExBTkUJCShOQU5EX0JBU0UgKyAweDI3MCkKKyNkZWZpbmUgICAgIEZJUlNUX0JMT0NLX09GX05FWFRfUExBTkVfX1ZBTFVFCQkweGZmZmYKKworI2RlZmluZSBXUklURV9QUk9URUNUCQkJCShOQU5EX0JBU0UgKyAweDI4MCkKKyNkZWZpbmUgICAgIFdSSVRFX1BST1RFQ1RfX0ZMQUcJCQkJMHgwMDAxCisKKyNkZWZpbmUgUkVfMl9SRQkJCQkJKE5BTkRfQkFTRSArIDB4MjkwKQorI2RlZmluZSAgICAgUkVfMl9SRV9fVkFMVUUJCQkJMHgwMDNmCisKKyNkZWZpbmUgTUFOVUZBQ1RVUkVSX0lECQkJCShOQU5EX0JBU0UgKyAweDMwMCkKKyNkZWZpbmUgICAgIE1BTlVGQUNUVVJFUl9JRF9fVkFMVUUJCQkweDAwZmYKKworI2RlZmluZSBERVZJQ0VfSUQJCQkJKE5BTkRfQkFTRSArIDB4MzEwKQorI2RlZmluZSAgICAgREVWSUNFX0lEX19WQUxVRQkJCQkweDAwZmYKKworI2RlZmluZSBERVZJQ0VfUEFSQU1fMAkJCQkoTkFORF9CQVNFICsgMHgzMjApCisjZGVmaW5lICAgICBERVZJQ0VfUEFSQU1fMF9fVkFMVUUJCQkweDAwZmYKKworI2RlZmluZSBERVZJQ0VfUEFSQU1fMQkJCQkoTkFORF9CQVNFICsgMHgzMzApCisjZGVmaW5lICAgICBERVZJQ0VfUEFSQU1fMV9fVkFMVUUJCQkweDAwZmYKKworI2RlZmluZSBERVZJQ0VfUEFSQU1fMgkJCQkoTkFORF9CQVNFICsgMHgzNDApCisjZGVmaW5lICAgICBERVZJQ0VfUEFSQU1fMl9fVkFMVUUJCQkweDAwZmYKKworI2RlZmluZSBMT0dJQ0FMX1BBR0VfREFUQV9TSVpFCQkJKE5BTkRfQkFTRSArIDB4MzUwKQorI2RlZmluZSAgICAgTE9HSUNBTF9QQUdFX0RBVEFfU0laRV9fVkFMVUUJCTB4ZmZmZgorCisjZGVmaW5lIExPR0lDQUxfUEFHRV9TUEFSRV9TSVpFCQkJKE5BTkRfQkFTRSArIDB4MzYwKQorI2RlZmluZSAgICAgTE9HSUNBTF9QQUdFX1NQQVJFX1NJWkVfX1ZBTFVFCQkweGZmZmYKKworI2RlZmluZSBSRVZJU0lPTgkJCQkoTkFORF9CQVNFICsgMHgzNzApCisjZGVmaW5lICAgICBSRVZJU0lPTl9fVkFMVUUJCQkJMHhmZmZmCisKKyNkZWZpbmUgT05GSV9ERVZJQ0VfRkVBVFVSRVMJCQkoTkFORF9CQVNFICsgMHgzODApCisjZGVmaW5lICAgICBPTkZJX0RFVklDRV9GRUFUVVJFU19fVkFMVUUJCQkweDAwM2YKKworI2RlZmluZSBPTkZJX09QVElPTkFMX0NPTU1BTkRTCQkJKE5BTkRfQkFTRSArIDB4MzkwKQorI2RlZmluZSAgICAgT05GSV9PUFRJT05BTF9DT01NQU5EU19fVkFMVUUJCTB4MDAzZgorCisjZGVmaW5lIE9ORklfVElNSU5HX01PREUJCQkoTkFORF9CQVNFICsgMHgzYTApCisjZGVmaW5lICAgICBPTkZJX1RJTUlOR19NT0RFX19WQUxVRQkJCTB4MDAzZgorCisjZGVmaW5lIE9ORklfUEdNX0NBQ0hFX1RJTUlOR19NT0RFCQkoTkFORF9CQVNFICsgMHgzYjApCisjZGVmaW5lICAgICBPTkZJX1BHTV9DQUNIRV9USU1JTkdfTU9ERV9fVkFMVUUJCTB4MDAzZgorCisjZGVmaW5lIE9ORklfREVWSUNFX05PX09GX0xVTlMJCQkoTkFORF9CQVNFICsgMHgzYzApCisjZGVmaW5lICAgICBPTkZJX0RFVklDRV9OT19PRl9MVU5TX19OT19PRl9MVU5TCQkweDAwZmYKKyNkZWZpbmUgICAgIE9ORklfREVWSUNFX05PX09GX0xVTlNfX09ORklfREVWSUNFCQkweDAxMDAKKworI2RlZmluZSBPTkZJX0RFVklDRV9OT19PRl9CTE9DS1NfUEVSX0xVTl9MCShOQU5EX0JBU0UgKyAweDNkMCkKKyNkZWZpbmUgICAgIE9ORklfREVWSUNFX05PX09GX0JMT0NLU19QRVJfTFVOX0xfX1ZBTFVFCTB4ZmZmZgorCisjZGVmaW5lIE9ORklfREVWSUNFX05PX09GX0JMT0NLU19QRVJfTFVOX1UJKE5BTkRfQkFTRSArIDB4M2UwKQorI2RlZmluZSAgICAgT05GSV9ERVZJQ0VfTk9fT0ZfQkxPQ0tTX1BFUl9MVU5fVV9fVkFMVUUJMHhmZmZmCisKKyNkZWZpbmUgRkVBVFVSRVMJCQkJCShOQU5EX0JBU0UgKyAweDNmMCkKKyNkZWZpbmUgICAgIEZFQVRVUkVTX19OX0JBTktTCQkJCTB4MDAwMworI2RlZmluZSAgICAgRkVBVFVSRVNfX0VDQ19NQVhfRVJSCQkJMHgwMDNjCisjZGVmaW5lICAgICBGRUFUVVJFU19fRE1BCQkJCTB4MDA0MAorI2RlZmluZSAgICAgRkVBVFVSRVNfX0NNRF9ETUEJCQkJMHgwMDgwCisjZGVmaW5lICAgICBGRUFUVVJFU19fUEFSVElUSU9OCQkJCTB4MDEwMAorI2RlZmluZSAgICAgRkVBVFVSRVNfX1hETUFfU0lERUJBTkQJCQkweDAyMDAKKyNkZWZpbmUgICAgIEZFQVRVUkVTX19HUFJFRwkJCQkweDA0MDAKKyNkZWZpbmUgICAgIEZFQVRVUkVTX19JTkRFWF9BRERSCQkJMHgwODAwCisKKyNkZWZpbmUgVFJBTlNGRVJfTU9ERQkJCQkoTkFORF9CQVNFICsgMHg0MDApCisjZGVmaW5lICAgICBUUkFOU0ZFUl9NT0RFX19WQUxVRQkJCTB4MDAwMworCisjZGVmaW5lIElOVFJfU1RBVFVTKF9fYmFuaykJKE5BTkRfQkFTRSArIDB4NDEwICsgKChfX2JhbmspICogMHg1MCkpCisjZGVmaW5lIElOVFJfRU4oX19iYW5rKQkJKE5BTkRfQkFTRSArIDB4NDIwICsgKChfX2JhbmspICogMHg1MCkpCisKKworI2RlZmluZSAgICAgSU5UUl9TVEFUVVNfX0VDQ19FUlIJCQkweDAwMDEKKyNkZWZpbmUgICAgIElOVFJfU1RBVFVTX19FQ0NfVFJBTlNBQ1RJT05fRE9ORQkJMHgwMDAyCisjZGVmaW5lICAgICBJTlRSX1NUQVRVU19fRE1BX0NNRF9DT01QCQkJMHgwMDA0CisjZGVmaW5lICAgICBJTlRSX1NUQVRVU19fVElNRV9PVVQJCQkweDAwMDgKKyNkZWZpbmUgICAgIElOVFJfU1RBVFVTX19QUk9HUkFNX0ZBSUwJCQkweDAwMTAKKyNkZWZpbmUgICAgIElOVFJfU1RBVFVTX19FUkFTRV9GQUlMCQkJMHgwMDIwCisjZGVmaW5lICAgICBJTlRSX1NUQVRVU19fTE9BRF9DT01QCQkJMHgwMDQwCisjZGVmaW5lICAgICBJTlRSX1NUQVRVU19fUFJPR1JBTV9DT01QCQkJMHgwMDgwCisjZGVmaW5lICAgICBJTlRSX1NUQVRVU19fRVJBU0VfQ09NUAkJCTB4MDEwMAorI2RlZmluZSAgICAgSU5UUl9TVEFUVVNfX1BJUEVfQ1BZQkNLX0NNRF9DT01QCQkweDAyMDAKKyNkZWZpbmUgICAgIElOVFJfU1RBVFVTX19MT0NLRURfQkxLCQkJMHgwNDAwCisjZGVmaW5lICAgICBJTlRSX1NUQVRVU19fVU5TVVBfQ01ECQkJMHgwODAwCisjZGVmaW5lICAgICBJTlRSX1NUQVRVU19fSU5UX0FDVAkJCTB4MTAwMAorI2RlZmluZSAgICAgSU5UUl9TVEFUVVNfX1JTVF9DT01QCQkJMHgyMDAwCisjZGVmaW5lICAgICBJTlRSX1NUQVRVU19fUElQRV9DTURfRVJSCQkJMHg0MDAwCisjZGVmaW5lICAgICBJTlRSX1NUQVRVU19fUEFHRV9YRkVSX0lOQwkJCTB4ODAwMAorCisjZGVmaW5lICAgICBJTlRSX0VOX19FQ0NfVFJBTlNBQ1RJT05fRE9ORQkJMHgwMDAxCisjZGVmaW5lICAgICBJTlRSX0VOX19FQ0NfRVJSCQkJCTB4MDAwMgorI2RlZmluZSAgICAgSU5UUl9FTl9fRE1BX0NNRF9DT01QCQkJMHgwMDA0CisjZGVmaW5lICAgICBJTlRSX0VOX19USU1FX09VVAkJCQkweDAwMDgKKyNkZWZpbmUgICAgIElOVFJfRU5fX1BST0dSQU1fRkFJTAkJCTB4MDAxMAorI2RlZmluZSAgICAgSU5UUl9FTl9fRVJBU0VfRkFJTAkJCQkweDAwMjAKKyNkZWZpbmUgICAgIElOVFJfRU5fX0xPQURfQ09NUAkJCQkweDAwNDAKKyNkZWZpbmUgICAgIElOVFJfRU5fX1BST0dSQU1fQ09NUAkJCTB4MDA4MAorI2RlZmluZSAgICAgSU5UUl9FTl9fRVJBU0VfQ09NUAkJCQkweDAxMDAKKyNkZWZpbmUgICAgIElOVFJfRU5fX1BJUEVfQ1BZQkNLX0NNRF9DT01QCQkweDAyMDAKKyNkZWZpbmUgICAgIElOVFJfRU5fX0xPQ0tFRF9CTEsJCQkJMHgwNDAwCisjZGVmaW5lICAgICBJTlRSX0VOX19VTlNVUF9DTUQJCQkJMHgwODAwCisjZGVmaW5lICAgICBJTlRSX0VOX19JTlRfQUNUCQkJCTB4MTAwMAorI2RlZmluZSAgICAgSU5UUl9FTl9fUlNUX0NPTVAJCQkJMHgyMDAwCisjZGVmaW5lICAgICBJTlRSX0VOX19QSVBFX0NNRF9FUlIJCQkweDQwMDAKKyNkZWZpbmUgICAgIElOVFJfRU5fX1BBR0VfWEZFUl9JTkMJCQkweDgwMDAKKworI2RlZmluZSBQQUdFX0NOVChfX2JhbmspCShOQU5EX0JBU0UgKyAweDQzMCArICgoX19iYW5rKSAqIDB4NTApKQorI2RlZmluZSBFUlJfUEFHRV9BRERSKF9fYmFuaykJKE5BTkRfQkFTRSArIDB4NDQwICsgKChfX2JhbmspICogMHg1MCkpCisjZGVmaW5lIEVSUl9CTE9DS19BRERSKF9fYmFuaykJKE5BTkRfQkFTRSArIDB4NDUwICsgKChfX2JhbmspICogMHg1MCkpCisKKyNkZWZpbmUgREFUQV9JTlRSCQkJCShOQU5EX0JBU0UgKyAweDU1MCkKKyNkZWZpbmUgICAgIERBVEFfSU5UUl9fV1JJVEVfU1BBQ0VfQVYJCQkweDAwMDEKKyNkZWZpbmUgICAgIERBVEFfSU5UUl9fUkVBRF9EQVRBX0FWCQkJMHgwMDAyCisKKyNkZWZpbmUgREFUQV9JTlRSX0VOCQkJCShOQU5EX0JBU0UgKyAweDU2MCkKKyNkZWZpbmUgICAgIERBVEFfSU5UUl9FTl9fV1JJVEVfU1BBQ0VfQVYJCTB4MDAwMQorI2RlZmluZSAgICAgREFUQV9JTlRSX0VOX19SRUFEX0RBVEFfQVYJCQkweDAwMDIKKworI2RlZmluZSBHUFJFR18wCQkJCQkoTkFORF9CQVNFICsgMHg1NzApCisjZGVmaW5lICAgICBHUFJFR18wX19WQUxVRQkJCQkweGZmZmYKKworI2RlZmluZSBHUFJFR18xCQkJCQkoTkFORF9CQVNFICsgMHg1ODApCisjZGVmaW5lICAgICBHUFJFR18xX19WQUxVRQkJCQkweGZmZmYKKworI2RlZmluZSBHUFJFR18yCQkJCQkoTkFORF9CQVNFICsgMHg1OTApCisjZGVmaW5lICAgICBHUFJFR18yX19WQUxVRQkJCQkweGZmZmYKKworI2RlZmluZSBHUFJFR18zCQkJCQkoTkFORF9CQVNFICsgMHg1YTApCisjZGVmaW5lICAgICBHUFJFR18zX19WQUxVRQkJCQkweGZmZmYKKworI2RlZmluZSBFQ0NfVEhSRVNIT0xECQkJCShOQU5EX0JBU0UgKyAweDYwMCkKKyNkZWZpbmUgICAgIEVDQ19USFJFU0hPTERfX1ZBTFVFCQkJMHgwM2ZmCisKKyNkZWZpbmUgRUNDX0VSUk9SX0JMT0NLX0FERFJFU1MJCQkoTkFORF9CQVNFICsgMHg2MTApCisjZGVmaW5lICAgICBFQ0NfRVJST1JfQkxPQ0tfQUREUkVTU19fVkFMVUUJCTB4ZmZmZgorCisjZGVmaW5lIEVDQ19FUlJPUl9QQUdFX0FERFJFU1MJCQkoTkFORF9CQVNFICsgMHg2MjApCisjZGVmaW5lICAgICBFQ0NfRVJST1JfUEFHRV9BRERSRVNTX19WQUxVRQkJMHgwZmZmCisjZGVmaW5lICAgICBFQ0NfRVJST1JfUEFHRV9BRERSRVNTX19CQU5LCQkweGYwMDAKKworI2RlZmluZSBFQ0NfRVJST1JfQUREUkVTUwkJCShOQU5EX0JBU0UgKyAweDYzMCkKKyNkZWZpbmUgICAgIEVDQ19FUlJPUl9BRERSRVNTX19PRkZTRVQJCQkweDBmZmYKKyNkZWZpbmUgICAgIEVDQ19FUlJPUl9BRERSRVNTX19TRUNUT1JfTlIJCTB4ZjAwMAorCisjZGVmaW5lIEVSUl9DT1JSRUNUSU9OX0lORk8JCQkoTkFORF9CQVNFICsgMHg2NDApCisjZGVmaW5lICAgICBFUlJfQ09SUkVDVElPTl9JTkZPX19CWVRFTUFTSwkJMHgwMGZmCisjZGVmaW5lICAgICBFUlJfQ09SUkVDVElPTl9JTkZPX19ERVZJQ0VfTlIJCTB4MGYwMAorI2RlZmluZSAgICAgRVJSX0NPUlJFQ1RJT05fSU5GT19fRVJST1JfVFlQRQkJMHg0MDAwCisjZGVmaW5lICAgICBFUlJfQ09SUkVDVElPTl9JTkZPX19MQVNUX0VSUl9JTkZPCQkweDgwMDAKKworI2RlZmluZSBETUFfRU5BQkxFCQkJCShOQU5EX0JBU0UgKyAweDcwMCkKKyNkZWZpbmUgICAgIERNQV9FTkFCTEVfX0ZMQUcJCQkJMHgwMDAxCisjZGVmaW5lICAgICBETUFfRElTQUJMRV9fRkxBRwkJCQkweDAwMDAKKworI2RlZmluZSBJR05PUkVfRUNDX0RPTkUJCQkJKE5BTkRfQkFTRSArIDB4NzEwKQorI2RlZmluZSAgICAgSUdOT1JFX0VDQ19ET05FX19GTEFHCQkJMHgwMDAxCisKKyNkZWZpbmUgRE1BX0lOVFIJCQkJKE5BTkRfQkFTRSArIDB4NzIwKQorI2RlZmluZSAgICAgRE1BX0lOVFJfX1RBUkdFVF9FUlJPUgkJCTB4MDAwMQorI2RlZmluZSAgICAgRE1BX0lOVFJfX0RFU0NfQ09NUF9DSEFOTkVMMAkJMHgwMDAyCisjZGVmaW5lICAgICBETUFfSU5UUl9fREVTQ19DT01QX0NIQU5ORUwxCQkweDAwMDQKKyNkZWZpbmUgICAgIERNQV9JTlRSX19ERVNDX0NPTVBfQ0hBTk5FTDIJCTB4MDAwOAorI2RlZmluZSAgICAgRE1BX0lOVFJfX0RFU0NfQ09NUF9DSEFOTkVMMwkJMHgwMDEwCisjZGVmaW5lICAgICBETUFfSU5UUl9fTUVNQ09QWV9ERVNDX0NPTVAJCTB4MDAyMAorCisjZGVmaW5lIERNQV9JTlRSX0VOCQkJCShOQU5EX0JBU0UgKyAweDczMCkKKyNkZWZpbmUgICAgIERNQV9JTlRSX0VOX19UQVJHRVRfRVJST1IJCQkweDAwMDEKKyNkZWZpbmUgICAgIERNQV9JTlRSX0VOX19ERVNDX0NPTVBfQ0hBTk5FTDAJCTB4MDAwMgorI2RlZmluZSAgICAgRE1BX0lOVFJfRU5fX0RFU0NfQ09NUF9DSEFOTkVMMQkJMHgwMDA0CisjZGVmaW5lICAgICBETUFfSU5UUl9FTl9fREVTQ19DT01QX0NIQU5ORUwyCQkweDAwMDgKKyNkZWZpbmUgICAgIERNQV9JTlRSX0VOX19ERVNDX0NPTVBfQ0hBTk5FTDMJCTB4MDAxMAorI2RlZmluZSAgICAgRE1BX0lOVFJfRU5fX01FTUNPUFlfREVTQ19DT01QCQkweDAwMjAKKworI2RlZmluZSBUQVJHRVRfRVJSX0FERFJfTE8JCQkoTkFORF9CQVNFICsgMHg3NDApCisjZGVmaW5lICAgICBUQVJHRVRfRVJSX0FERFJfTE9fX1ZBTFVFCQkJMHhmZmZmCisKKyNkZWZpbmUgVEFSR0VUX0VSUl9BRERSX0hJCQkJKE5BTkRfQkFTRSArIDB4NzUwKQorI2RlZmluZSAgICAgVEFSR0VUX0VSUl9BRERSX0hJX19WQUxVRQkJCTB4ZmZmZgorCisjZGVmaW5lIENITkxfQUNUSVZFCQkJCShOQU5EX0JBU0UgKyAweDc2MCkKKyNkZWZpbmUgICAgIENITkxfQUNUSVZFX19DSEFOTkVMMAkJCTB4MDAwMQorI2RlZmluZSAgICAgQ0hOTF9BQ1RJVkVfX0NIQU5ORUwxCQkJMHgwMDAyCisjZGVmaW5lICAgICBDSE5MX0FDVElWRV9fQ0hBTk5FTDIJCQkweDAwMDQKKyNkZWZpbmUgICAgIENITkxfQUNUSVZFX19DSEFOTkVMMwkJCTB4MDAwOAorCisjZGVmaW5lIEFDVElWRV9TUkNfSUQJCQkJKE5BTkRfQkFTRSArIDB4ODAwKQorI2RlZmluZSAgICAgQUNUSVZFX1NSQ19JRF9fVkFMVUUJCQkweDAwZmYKKworI2RlZmluZSBQVE5fSU5UUgkJCQkJKE5BTkRfQkFTRSArIDB4ODEwKQorI2RlZmluZSAgICAgUFROX0lOVFJfX0NPTkZJR19FUlJPUgkJCTB4MDAwMQorI2RlZmluZSAgICAgUFROX0lOVFJfX0FDQ0VTU19FUlJPUl9CQU5LMAkJMHgwMDAyCisjZGVmaW5lICAgICBQVE5fSU5UUl9fQUNDRVNTX0VSUk9SX0JBTksxCQkweDAwMDQKKyNkZWZpbmUgICAgIFBUTl9JTlRSX19BQ0NFU1NfRVJST1JfQkFOSzIJCTB4MDAwOAorI2RlZmluZSAgICAgUFROX0lOVFJfX0FDQ0VTU19FUlJPUl9CQU5LMwkJMHgwMDEwCisjZGVmaW5lICAgICBQVE5fSU5UUl9fUkVHX0FDQ0VTU19FUlJPUgkJCTB4MDAyMAorCisjZGVmaW5lIFBUTl9JTlRSX0VOCQkJCShOQU5EX0JBU0UgKyAweDgyMCkKKyNkZWZpbmUgICAgIFBUTl9JTlRSX0VOX19DT05GSUdfRVJST1IJCQkweDAwMDEKKyNkZWZpbmUgICAgIFBUTl9JTlRSX0VOX19BQ0NFU1NfRVJST1JfQkFOSzAJCTB4MDAwMgorI2RlZmluZSAgICAgUFROX0lOVFJfRU5fX0FDQ0VTU19FUlJPUl9CQU5LMQkJMHgwMDA0CisjZGVmaW5lICAgICBQVE5fSU5UUl9FTl9fQUNDRVNTX0VSUk9SX0JBTksyCQkweDAwMDgKKyNkZWZpbmUgICAgIFBUTl9JTlRSX0VOX19BQ0NFU1NfRVJST1JfQkFOSzMJCTB4MDAxMAorI2RlZmluZSAgICAgUFROX0lOVFJfRU5fX1JFR19BQ0NFU1NfRVJST1IJCTB4MDAyMAorCisjZGVmaW5lIFBFUk1fU1JDX0lEKF9fYmFuaykJKE5BTkRfQkFTRSArIDB4ODMwICsgKChfX2JhbmspICogMHg0MCkpCisjZGVmaW5lICAgICBQRVJNX1NSQ19JRF9fU1JDSUQJCQkJMHgwMGZmCisjZGVmaW5lICAgICBQRVJNX1NSQ19JRF9fRElSRUNUX0FDQ0VTU19BQ1RJVkUJCTB4MDgwMAorI2RlZmluZSAgICAgUEVSTV9TUkNfSURfX1dSSVRFX0FDVElWRQkJCTB4MjAwMAorI2RlZmluZSAgICAgUEVSTV9TUkNfSURfX1JFQURfQUNUSVZFCQkJMHg0MDAwCisjZGVmaW5lICAgICBQRVJNX1NSQ19JRF9fUEFSVElUSU9OX1ZBTElECQkweDgwMDAKKworI2RlZmluZSBNSU5fQkxLX0FERFIoX19iYW5rKQkoTkFORF9CQVNFICsgMHg4NDAgKyAoKF9fYmFuaykgKiAweDQwKSkKKyNkZWZpbmUgICAgIE1JTl9CTEtfQUREUl9fVkFMVUUJCQkJMHhmZmZmCisKKyNkZWZpbmUgTUFYX0JMS19BRERSKF9fYmFuaykJKE5BTkRfQkFTRSArIDB4ODUwICsgKChfX2JhbmspICogMHg0MCkpCisjZGVmaW5lICAgICBNQVhfQkxLX0FERFJfX1ZBTFVFCQkJCTB4ZmZmZgorCisjZGVmaW5lIE1JTl9NQVhfQkFOSyhfX2JhbmspCShOQU5EX0JBU0UgKyAweDg2MCArICgoX19iYW5rKSAqIDB4NDApKQorI2RlZmluZSAgICAgTUlOX01BWF9CQU5LX19NSU5fVkFMVUUJCQkweDAwMDMKKyNkZWZpbmUgICAgIE1JTl9NQVhfQkFOS19fTUFYX1ZBTFVFCQkJMHgwMDBjCisKKworLyogZmZzZGVmcy5oICovCisjZGVmaW5lIENMRUFSIDAgICAgICAgICAgICAgICAgIC8qdXNlIHRoaXMgdG8gY2xlYXIgYSBmaWVsZCBpbnN0ZWFkIG9mICJmYWlsIiovCisjZGVmaW5lIFNFVCAgIDEgICAgICAgICAgICAgICAgIC8qdXNlIHRoaXMgdG8gc2V0IGEgZmllbGQgaW5zdGVhZCBvZiAicGFzcyIqLworI2RlZmluZSBGQUlMIDEgICAgICAgICAgICAgICAgICAvKmZhaWxlZCBmbGFnKi8KKyNkZWZpbmUgUEFTUyAwICAgICAgICAgICAgICAgICAgLypzdWNjZXNzIGZsYWcqLworI2RlZmluZSBFUlIgLTEgICAgICAgICAgICAgICAgICAvKmVycm9yIGZsYWcqLworCisvKiBsbGQuaCAqLworI2RlZmluZSBHT09EX0JMT0NLIDAKKyNkZWZpbmUgREVGRUNUSVZFX0JMT0NLIDEKKyNkZWZpbmUgUkVBRF9FUlJPUiAyCisKKyNkZWZpbmUgQ0xLX1ggIDUKKyNkZWZpbmUgQ0xLX01VTFRJIDQKKworLyogc3BlY3RyYXN3Y29uZmlnLmggKi8KKyNkZWZpbmUgQ01EX0RNQSAwCisKKyNkZWZpbmUgU1BFQ1RSQV9QQVJUSVRJT05fSUQgICAgMAorLyoqKiogQmxvY2sgVGFibGUgYW5kIFJlc2VydmVkIEJsb2NrIFBhcmFtZXRlcnMgKioqKiovCisjZGVmaW5lIFNQRUNUUkFfU1RBUlRfQkxPQ0sgICAgIDMKKyNkZWZpbmUgTlVNX0ZSRUVfQkxPQ0tTX0dBVEUgICAgMzAKKworLyogS0JWIC0gVXBkYXRlZCB0byBMTlcgc2NyYXRjaCByZWdpc3RlciBhZGRyZXNzICovCisjZGVmaW5lIFNDUkFUQ0hfUkVHX0FERFIgICAgQ09ORklHX01URF9OQU5EX0RFTkFMSV9TQ1JBVENIX1JFR19BRERSCisjZGVmaW5lIFNDUkFUQ0hfUkVHX1NJWkUgICAgNjQKKworI2RlZmluZSBHTE9CX0hXQ1RMX0RFRkFVTFRfQkxLUyAgICAyMDQ4CisKKyNkZWZpbmUgU1VQUE9SVF8xNUJJVEVDQyAgICAgICAgMQorI2RlZmluZSBTVVBQT1JUXzhCSVRFQ0MgICAgICAgICAxCisKKyNkZWZpbmUgQ1VTVE9NX0NPTkZfUEFSQU1TICAgICAgMAorCisjZGVmaW5lIE9ORklfQkxPT01fVElNRSAgICAgICAgIDEKKyNkZWZpbmUgTU9ERTVfV09SS0FST1VORCAgICAgICAgMAorCisvKiBsbGRfbmFuZC5oICovCisvKgorICogTkFORCBGbGFzaCBDb250cm9sbGVyIERldmljZSBEcml2ZXIKKyAqIENvcHlyaWdodCAoYykgMjAwOSwgSW50ZWwgQ29ycG9yYXRpb24gYW5kIGl0cyBzdXBwbGllcnMuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCisgKiB2ZXJzaW9uIDIsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKKyAqIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvcgorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvcgorICogbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nIHdpdGgKKyAqIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAorICogNTEgRnJhbmtsaW4gU3QgLSBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQS4KKyAqCisgKi8KKworI2RlZmluZSBNT0RFXzAwICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgTU9ERV8wMSAgICAweDA0MDAwMDAwCisjZGVmaW5lIE1PREVfMTAgICAgMHgwODAwMDAwMAorI2RlZmluZSBNT0RFXzExICAgIDB4MEMwMDAwMDAKKworLyogVGhlc2UgY29uc3RhbnRzIGFyZSBkZWZpbmVkIGJ5IHRoZSBkcml2ZXIgdG8gZW5hYmxlIGNvbW1vbiBkcml2ZXIKKyAqIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gKi8KKyNkZWZpbmUgU1BBUkVfQUNDRVNTCQkweDQxCisjZGVmaW5lIE1BSU5fQUNDRVNTCQkweDQyCisjZGVmaW5lIE1BSU5fU1BBUkVfQUNDRVNTCTB4NDMKKworI2RlZmluZSBEQVRBX1RSQU5TRkVSX01PREUgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUFJPVEVDVElPTl9QRVJfQkxPQ0sgICAgICAgICAgICAxCisjZGVmaW5lIExPQURfV0FJVF9DT1VOVCAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBQUk9HUkFNX1dBSVRfQ09VTlQgICAgICAgICAgICAgIDMKKyNkZWZpbmUgRVJBU0VfV0FJVF9DT1VOVCAgICAgICAgICAgICAgICA0CisjZGVmaW5lIElOVF9NT05JVE9SX0NZQ0xFX0NPVU5UICAgICAgICAgNQorI2RlZmluZSBSRUFEX0JVU1lfUElOX0VOQUJMRUQgICAgICAgICAgIDYKKyNkZWZpbmUgTVVMVElQTEFORV9PUEVSQVRJT05fU1VQUE9SVCAgICA3CisjZGVmaW5lIFBSRV9GRVRDSF9NT0RFICAgICAgICAgICAgICAgICAgOAorI2RlZmluZSBDRV9ET05UX0NBUkVfU1VQUE9SVCAgICAgICAgICAgIDkKKyNkZWZpbmUgQ09QWUJBQ0tfU1VQUE9SVCAgICAgICAgICAgICAgICAxMAorI2RlZmluZSBDQUNIRV9XUklURV9TVVBQT1JUICAgICAgICAgICAgIDExCisjZGVmaW5lIENBQ0hFX1JFQURfU1VQUE9SVCAgICAgICAgICAgICAgMTIKKyNkZWZpbmUgTlVNX1BBR0VTX0lOX0JMT0NLICAgICAgICAgICAgICAxMworI2RlZmluZSBFQ0NfRU5BQkxFX1NFTEVDVCAgICAgICAgICAgICAgIDE0CisjZGVmaW5lIFdSSVRFX0VOQUJMRV8yX1JFQURfRU5BQkxFICAgICAgMTUKKyNkZWZpbmUgQUREUkVTU18yX0RBVEEgICAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBSRUFEX0VOQUJMRV8yX1dSSVRFX0VOQUJMRSAgICAgIDE3CisjZGVmaW5lIFRXT19ST1dfQUREUkVTU19DWUNMRVMgICAgICAgICAgMTgKKyNkZWZpbmUgTVVMVElQTEFORV9BRERSRVNTX1JFU1RSSUNUICAgICAxOQorI2RlZmluZSBBQ0NfQ0xPQ0tTICAgICAgICAgICAgICAgICAgICAgIDIwCisjZGVmaW5lIFJFQURfV1JJVEVfRU5BQkxFX0xPV19DT1VOVCAgICAgMjEKKyNkZWZpbmUgUkVBRF9XUklURV9FTkFCTEVfSElHSF9DT1VOVCAgICAyMgorCisvKm5hbmQgyeixuMPoyva94bm5zOUqLworc3RydWN0IG5hbmRfZmxhc2hfZGV2aWNlX3BhcmEKK3sKKwl1aW50OF90IG1hbnVmX2lkOyAgICAgICAgICAgICAvKiCzp7zSSUQgKi8KKwl1aW50OF90IGRldmljZV9pZDsgICAgICAgICAgICAvKiDJ6LG4SUQgKi8KKwl1aW50OF90IHJlc19pZDsgICAgICAgICAgICAgICAvKiDG97z+SUQgKi8KKwl1aW50OF90IGJ1c19udW07ICAgICAgICAgICAgICAvKiAwOjjOuyAgMToxNs67ICovCisJdWludDE2X3QgIGVjY19zdHJlbmd0aDsgICAgICAgICAvKkVDQyC+wLTtxNzBpiovCisJdWludDE2X3QgIHBhZ2Vfc2l6ZTsgICAgICAgICAgICAvKiDDv9KzbWFpbsf40/K089ChICovCisJdWludDE2X3QgIHBhZ2Vfc2l6ZV9zaGlmdDsgICAgICAKKwl1aW50MTZfdCAgb29iX3NpemU7ICAgICAgICAgICAgIC8qIMO/0rNzcGFyZcf40/K089ChICovCisJdWludDE2X3QgIGJsb2NrX3NpemVfc2hpZnQ7CisJdWludDE2X3QgIGJsb2NrX251bTsgICAgICAgICAgICAvKiC/6cr9ICovCisJdWludDMyX3QgIGJsb2NrX3NpemU7ICAgICAgICAgICAvKiDDv7/ptcS089ChICovCit9OworCisjZW5kaWYgLyogX0RFTkFMSV9IXyovCisKZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vYXJjaC1tMC9ncGlvLmggYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvYXNtL2FyY2gtbTAvZ3Bpby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyZGI5MGYKLS0tIC9kZXYvbnVsbAorKysgYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvYXNtL2FyY2gtbTAvZ3Bpby5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYsIFpYSUMgQ29ycG9yYXRpb24uCisgKgorICogRmlsZSBOYW1lOiAgICAKKyAqIEZpbGUgTWFyazogICAgCisgKiBEZXNjcmlwdGlvbjogIAorICogT3RoZXJzOiAgICAgICAgCisgKiBWZXJzaW9uOiAgICAgICB2MS4wCisgKiBBdXRob3I6ICAgICAgICB6aG91cWkKKyAqIERhdGU6ICAgICAgICAgIDIwMTMtNC0yCisgKiBIaXN0b3J5IDE6ICAgICAgCisgKiAgICAgRGF0ZTogCisgKiAgICAgVmVyc2lvbjoKKyAqICAgICBBdXRob3I6IAorICogICAgIE1vZGlmaWNhdGlvbjogIAorICogSGlzdG9yeSAyOiAKKyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZuZGVmIF9fR1BJT183NTIwX0hfXworI2RlZmluZSBfX0dQSU9fNzUyMF9IX18KKworCisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR1BJTyBNVVggVUFSVDEKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworI2lmIDAKKyNkZWZpbmUgU1RBTkRCWV9QQUQgICAgICAgICAgICAgICAgICAweDAwMTBFMDAwCisjZGVmaW5lIFNUQU5EQllfUEFEX1VBUlQxX1JYRAkJKFNUQU5EQllfUEFEICsgMHg1QykKKyNkZWZpbmUgICAgIFVBUlQxX1JYRCAgICAgICAgICAgICAgICgweDEgPDwgMjQpCisjZGVmaW5lIFNUQU5EQllfUEFEX1VBUlQxX1RYRAkJKFNUQU5EQllfUEFEICsgMHg2MCkKKyNkZWZpbmUgICAgIFVBUlQxX1RYRCAgICAgICAgICAgICAgICgweDEgPDwgMjQpCisKKyNkZWZpbmUgU1RBTkRCWV9QQURfVUFSVF9NQVNLICAgICAgICgweDcgPDwgMjQpCisjZW5kaWYKKworLypQSU4gTVVYKi8KKyNkZWZpbmUgWlgyOV9QSU5fTVVYICAgICAgICAweDAxMzAzMDAwCisjZGVmaW5lIEdQSU9fUElOTVVYX1JFR19CQVNFIFpYMjlfUElOX01VWAorCisvKlBBRCovCisjZGVmaW5lIFpYMjlfQTFfUEFEX0NUUkwwICAgMHgwMDEzQzAwMAorI2RlZmluZSBQQURfQ1RSTF9SRUdfQkFTRSAgIFpYMjlfQTFfUEFEX0NUUkwwCisKKworI2RlZmluZSBQRF9GVU5DX1NFTF9CQVNFICAgICAgICAoR1BJT19QSU5NVVhfUkVHX0JBU0UpCisjZGVmaW5lIEFPTl9GVU5DX1NFTF9CQVNFCQkoUEFEX0NUUkxfUkVHX0JBU0UpCisjZGVmaW5lIFRPUF9GVU5DX1NFTF9CQVNFCQkoUEFEX0NUUkxfUkVHX0JBU0UpCisjZGVmaW5lIElPX0NGR19CQVNFCQkJCShQQURfQ1RSTF9SRUdfQkFTRSsweDgwMCkKKworCisjZW5kaWYgLypfX0dQSU9fNzUyMF9IX18qLworCmRpZmYgLS1naXQgYS9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvYXNtL2FyY2gtbTAvc3BpZmMuaCBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vYXJjaC1tMC9zcGlmYy5oCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY1MDdkYmMKLS0tIC9kZXYvbnVsbAorKysgYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvYXNtL2FyY2gtbTAvc3BpZmMuaApAQCAtMCwwICsxLDI1MSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIENvcHlyaWdodCAyMDE2IGJ5ICBaWElDIENvcnBvcmF0aW9uLgorKgorKiBGaWxlTmFtZTo6ICAgIHNwaV9mYy5oCisqIEZpbGUgTWFyazoKKyogRGVzY3JpcHRpb246ICAKKyogT3RoZXJzOgorKiBWZXJzaW9uOiAgCisqIEF1dGhvcjogIAorKiBEYXRlOiAgIAorCisqIEhpc3RvcnkgMToKKyogICAgIERhdGU6IDIwMTQuMS4xNQorKiAgICAgVmVyc2lvbjoKKyogICAgIEF1dGhvcjogemhvdXFpCisqICAgICBNb2RpZmljYXRpb246CisqIEhpc3RvcnkgMjoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19TUElfRkNfSF9fCisjZGVmaW5lIF9fU1BJX0ZDX0hfXworCisKKyNkZWZpbmUgU1lTX1NQSV9OQU5EX0JBU0UgICAgICAgICAgIDB4MDE0MDcwMDAKKworICAgIAorc3RydWN0IHNwaV90Cit7CisgICAgdWludDMyX3QgICAgIFZFUl9SRUc7ICAgICAgICAgICAgICAgICAgICAgICAgLy8weDAwCisgICAgdWludDMyX3QgICAgIFNGQ19TVEFSVDsgICAgICAgICAgICAgICAgICAgICAgLy8weDA0CisgICAgdWludDMyX3QgICAgIFNGQ19FTjsgICAgICAgICAgICAgICAgICAgICAgICAgLy8weDA4CisJdWludDMyX3QJIFNGQ19DVFJMMDsJCQkJCQkvLzB4MGMgCisJdWludDMyX3QJIFNGQ19DVFJMMTsJCQkJCQkvLzB4MTAKKwl1aW50MzJfdAkgU0ZDX0NUUkwyOwkJCQkJCS8vMHgxNCAKKwl1aW50MzJfdAkgU0ZDX0JZVEVfTlVNOwkJCQkJLy8weDE4CisJdWludDMyX3QJIFNGQ19BRERSOwkJCQkJCS8vMHgxYworCXVpbnQzMl90CSBTRkNfSU5TOwkJCQkJCS8vMHgyMAorCXVpbnQzMl90CSBTRkNfVElNSU5HOwkJCQkJLy8weDI0CisJdWludDMyX3QJIFNGQ19JTlRfRU47CQkJCQkvLzB4MjgKKyAgICB1aW50MzJfdCAgICAgU0ZDX0lOVF9SQVc7ICAgICAgICAgICAgICAgICAgICAvLzB4MmMKKyAgICB1aW50MzJfdCAgICAgU0ZDX0lOVF9TV19DTFI7ICAgICAgICAgICAgICAgICAvLzB4MzAKKyAgICB1aW50MzJfdCAgICAgU0ZDX1NXOyAgICAgICAgICAgICAgICAgICAgICAgICAvLzB4MzQKKyAgICB1aW50MzJfdCAgICAgU0ZDX0RBVEE7ICAgICAgICAgICAgICAgICAgICAgICAvLzB4MzgKK307CisKKy8qc3BpZmMgc3RhcnQgMHg0Ki8KKyNkZWZpbmUgICAgIEZDX1NUQVJUICAgICAgKDE8PDApCisjZGVmaW5lICAgICBGQ19CVVNZICAgICAgICgxPDwwKQorCisvKnNwaWZjIGVuYWJsZSAweDgqLworI2RlZmluZSAgICAgRkNfRU5fQkFDSyAgICAgICAgICAoMTw8MSkKKyNkZWZpbmUgICAgIEZDX0VOICAgICAgICAgICAgICAgKDE8PDApCisKKy8qc3BpZmMgbWFpbiBjdHIwIDB4YyovCisjZGVmaW5lICAgICBGQ19TQ0xLX1BBVVNFX0NMUl9BTExPVyAgICAgKDE8PDE3KQorI2RlZmluZSAgICAgRkNfU0NMS19QQVVTRV9FTiAgICAgICAgICAgICgxPDwxNikKKyNkZWZpbmUgICAgIEZDX1RYRklGT19DTFIgICAgICAgICAgICAgICAoMTw8MTUpCisjZGVmaW5lICAgICBGQ19SWEZJRk9fQ0xSICAgICAgICAgICAgICAgKDE8PDE0KQorI2RlZmluZSAgICAgRkNfVFhGSUZPX1RIUkVTICAgICAgICAgICAgICgxPDwxMCkKKyNkZWZpbmUgICAgIEZDX1JYRklGT19USFJFUyAgICAgICAgICAgICAoMTw8NikKKyNkZWZpbmUgICAgIEZDX1RYX0RNQV9FTiAgICAgICAgICAgICAgICAoMTw8NSkKKyNkZWZpbmUgICAgIEZDX1JYX0RNQV9FTiAgICAgICAgICAgICAgICAoMTw8NCkKKyNkZWZpbmUgICAgIEZDX1dET0dfRU4gICAgICAgICAgICAgICAgICAoMTw8MykKKyNkZWZpbmUgICAgIEZDX1NQSV9NT0RFICAgICAgICAgICAgICAgICAoMTw8MSkKKyNkZWZpbmUgICAgIEZDX1dSX1BST1RFQ1QgICAgICAgICAgICAgICAoMTw8MCkKKworLypzcGlmYyBjdHJsMSAweDEwICBpbiB0aGUgY29uZGl0aW9uIDogU0ZDX0VOID0gMSBTRkNfQlVTWSA9IDAqLworI2RlZmluZSAgICAgRkNfQUREUl9UWF9FTiAgICAgICAgICAgKDQpCisjZGVmaW5lICAgICBGQ19EVU1NWV9UWF9FTiAgICAgICAgICAoMikKKyNkZWZpbmUgICAgIEZDX1JFQURfREFUX0VOICAgICAgICAgICgxKQorI2RlZmluZSAgICAgRkNfV1JJVEVfREFUX0VOICAgICAgICAgKDApCisKKy8qc3BpZmMgY3RybDIgMHgxNCovCisjZGVmaW5lICAgICBGQ19EVU1NWV9CWVRFX05VTSAgICAgICAgICAgKDEyKSAgLyogWzEyOjE1fSAqLworI2RlZmluZSAgICAgRkNfRFVNTVlfQklUX05VTSAgICAgICAgICAgICg4KSAgIC8qIFs4OjEwXSAqLworI2RlZmluZSAgICAgRkNfQUREUl9CWVRFX05VTSAgICAgICAgICAgICg1KSAgIC8qIFs1OjZdICovCisjZGVmaW5lICAgICAgICAgRkNfQUREUl9CWVRFX05VTV84ICAgICAgICAgICAgICgwKSAKKyNkZWZpbmUgICAgICAgICBGQ19BRERSX0JZVEVfTlVNXzE2ICAgICAgICAgICAgKDEpIAorI2RlZmluZSAgICAgICAgIEZDX0FERFJfQllURV9OVU1fMjQgICAgICAgICAgICAoMikgIAorI2RlZmluZSAgICAgICAgIEZDX0FERFJfQllURV9OVU1fMzIgICAgICAgICAgICAoMykgICAKKyNkZWZpbmUgICAgIEZDX0FERFJfTVVMVElfTElORV9FTiAgICAgICAoMTw8NCkKKyNkZWZpbmUgICAgIEZDX0RBVF9NVUxUSV9MSU5FX0VOICAgICAgICAoMTw8MikKKyNkZWZpbmUgICAgIEZDX1RSQU5TX01PRCAgICAgICAgICAgICAgICAoMTw8MCkKKworLypzcGlmYyB0aW1pbmcgMHgyNCovCisjZGVmaW5lICAgICBGQ19SRUFEX0RFTEFZICAgICAgICAgICAoMTw8MTYpICAgLyogWzE3OjE2fSAqLworI2RlZmluZSAgICAgRkNfVF9DU19TRVRVUCAgICAgICAgICAgKDE8PDExKSAgIC8qIFsxMToxM30gKi8KKyNkZWZpbmUgICAgIEZDX1RfQ1NfSE9MRCAgICAgICAgICAgICgxPDw2KSAgICAvKiBbODo2fSAqLworI2RlZmluZSAgICAgRkNfVF9DU19ERVNFTCAgICAgICAgICAgKDE8PDApICAgIC8qIFswOjN9ICovCisKKworLypzcGlmYyBpbnQgZW5hYmxlIDB4MjgqLworI2RlZmluZSAgICAgRkNfSU5UX0VOX1RYX0JZRF9USEVTICAgICAgICAgICAoMTw8NykKKyNkZWZpbmUgICAgIEZDX0lOVF9FTl9SWF9CWURfVEhFUyAgICAgICAgICAgKDE8PDYpCisjZGVmaW5lICAgICBGQ19JTlRfRU5fVFhfVU5ERVJSVU4gICAgICAgICAgICgxPDw1KQorI2RlZmluZSAgICAgRkNfSU5UX0VOX1JYX09WRVJSVU4gICAgICAgICAgICAoMTw8NCkKKyNkZWZpbmUgICAgIEZDX0lOVF9FTl9XRE9HX09WRVJSVU4gICAgICAgICAgKDE8PDIpCisjZGVmaW5lICAgICBGQ19JTlRfRU5fRk1UX0VSUiAgICAgICAgICAgICAgICgxPDwxKQorI2RlZmluZSAgICAgRkNfSU5UX0VOX0NNRF9FTkQgICAgICAgICAgICAgICAoMTw8MCkKKworLypzcGlmYyByYXcgaW50ZXJydXB0IDB4MmMqLworI2RlZmluZSAgICAgRkNfSU5UX1JBV19UWF9CWURfVEhFUyAgICAgICAgICAgKDE8PDcpCisjZGVmaW5lICAgICBGQ19JTlRfUkFXX1JYX0JZRF9USEVTICAgICAgICAgICAoMTw8NikKKyNkZWZpbmUgICAgIEZDX0lOVF9SQVdfVFhfVU5ERVJSVU4gICAgICAgICAgICgxPDw1KQorI2RlZmluZSAgICAgRkNfSU5UX1JBV19SWF9PVkVSUlVOICAgICAgICAgICAgKDE8PDQpCisjZGVmaW5lICAgICBGQ19JTlRfUkFXX1dET0dfT1ZFUlJVTiAgICAgICAgICAoMTw8MikKKyNkZWZpbmUgICAgIEZDX0lOVF9SQVdfRk1UX0VSUiAgICAgICAgICAgICAgICgxPDwxKQorI2RlZmluZSAgICAgRkNfSU5UX1JBV19DTURfRU5EICAgICAgICAgICAgICAgKDE8PDApCisjZGVmaW5lICAgICBGQ19JTlRfUkFXX01BU0sgICAgICAgICAgICAgIAkgKEZDX0lOVF9SQVdfVFhfVU5ERVJSVU58CVwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQ19JTlRfUkFXX1JYX09WRVJSVU58CVwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQ19JTlRfUkFXX1dET0dfT1ZFUlJVTnwJXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZDX0lOVF9SQVdfRk1UX0VSUnwJCVwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQ19JTlRfUkFXX0NNRF9FTkQpCisKKy8qc3BpZmMgaW50IHN0YXJ0dXMgYW5kIGNsciAweDMwKi8KKyNkZWZpbmUgICAgIEZDX0lOVF9DTFJfVFhfQllEX1RIRVMgICAgICAgICAgICgxPDw3KQorI2RlZmluZSAgICAgRkNfSU5UX0NMUl9SWF9CWURfVEhFUyAgICAgICAgICAgKDE8PDYpCisjZGVmaW5lICAgICBGQ19JTlRfQ0xSX1RYX1VOREVSUlVOICAgICAgICAgICAoMTw8NSkKKyNkZWZpbmUgICAgIEZDX0lOVF9DTFJfUlhfT1ZFUlJVTiAgICAgICAgICAgICgxPDw0KQorI2RlZmluZSAgICAgRkNfSU5UX0NMUl9XRE9HX09WRVJSVU4gICAgICAgICAgKDE8PDIpCisjZGVmaW5lICAgICBGQ19JTlRfQ0xSX0ZNVF9FUlIgICAgICAgICAgICAgICAoMTw8MSkKKyNkZWZpbmUgICAgIEZDX0lOVF9DTFJfQ01EX0VORCAgICAgICAgICAgICAgICgxPDwwKQorCisvKnNwaWZjIHN3IDB4MzQqLworI2RlZmluZSAgICAgRkNfVFhfRklGT19DTlQgICAgICAgICAgICAgICgxNikgICAgICAgICAvKiBbMTY6MjB9ICovCisjZGVmaW5lICAgICAgICAgRkNfVFhfRklGT19DTlRfTUFTSyAgICAgICAgICgweDFGKSAgICAgIC8qIFs4OjEyfSAqLworI2RlZmluZSAgICAgRkNfUlhfRklGT19DTlQgICAgICAgICAgICAgICg4KSAgICAgICAgICAgICAvKiBbODoxMn0gKi8KKyNkZWZpbmUgICAgICAgICBGQ19SWF9GSUZPX0NOVF9NQVNLICAgICAgICAgKDB4MUYpICAgICAgLyogWzg6MTJ9ICovCisjZGVmaW5lICAgICBGQ19UWF9CWURfVEhSRVMgICAgICAgICAgICAgKDE8PDUpICAKKyNkZWZpbmUgICAgIEZDX1JYX0JZRF9USFJFUyAgICAgICAgICAgICAoMTw8NCkgIAorI2RlZmluZSAgICAgRkNfU0NMS19QQVVTRV9GTEFHICAgICAgICAgICgxPDwzKSAgCisjZGVmaW5lICAgICBGQ19XQUlUX0ZMQUcgICAgICAgICAgICAgICAgKDE8PDIpIAorI2RlZmluZSAgICAgRkNfRk9STUFUX0VSUiAgICAgICAgICAgICAgICgxPDwxKSAgCisKKworI2RlZmluZSAgICAgICAgIEZDX0RNQV9OT05FICAgICAgICAgICAwCisjZGVmaW5lICAgICAgICAgRkNfRE1BX1RYICAgICAgICAgICAgIDEKKyNkZWZpbmUgICAgICAgICBGQ19ETUFfUlggICAgICAgICAgICAgMgorCisKKyNkZWZpbmUgQUREUl9UWF9FTiAgICAgIDEgICAvKiC12Na3wuu3osvNyrnE3CAqLworI2RlZmluZSBBRERSX1RYX0RJUyAgICAgMAorI2RlZmluZSBEQVRBX1RYX0VOICAgICAgMQorI2RlZmluZSBEQVRBX1RYX0RJUyAgICAgMAorI2RlZmluZSBEQVRBX1JYX0VOICAgICAgMQorI2RlZmluZSBEQVRBX1JYX0RJUyAgICAgMAorI2RlZmluZSBEVU1ZX1RYX0VOICAgICAgMQorI2RlZmluZSBEVU1ZX1RYX0RJUyAgICAgMAorCisjZGVmaW5lIEFERFJfV0lEVEhfOCAgICAwCisjZGVmaW5lIEFERFJfV0lEVEhfMTYgICAxCisjZGVmaW5lIEFERFJfV0lEVEhfMjQgICAyCisjZGVmaW5lIEFERFJfV0lEVEhfMzIgICAzCisKK3N0cnVjdCBzcGlmbGFzaF9jbWRfdAoreworICAgIHVpbnQ4X3QgY21kOwkJCS8qINa4we7C6yAqLworICAgIHVpbnQ4X3QgYWRkcl90eF9lbjsgICAgIC8qILXY1rfC67eiy83KucTcICovCisgICAgdWludDhfdCBhZGRyX3dpZHRoOyAgICAgLyogtdjWt8Lrv+22yCAqLworICAgIHVpbnQ4X3QgZGF0YV90eF9lbjsgICAgIC8qILeiy83K/b7dyrnE3C0tLdC0ICovCisgICAgdWludDhfdCBkYXRhX3J4X2VuOyAgICAgLyogvdPK1cr9vt3KucTcLS0ttsEgKi8KKyAgICB1aW50OF90IGR1bXlfdHhfZW47ICAgICAvKiC/1c/Qtci0/dbcxtrKucTcICovCisgICAgdWludDhfdCBkdW15X2J5dGVzOyAgICAgLyogv9XP0LXItP3W3MbaIHg4ICovCisgICAgdWludDhfdCBkdW15X2JpdHM7ICAgICAgLyogv9XP0LXItP3W3MbaIHgxICovCit9OworCisKKy8qIFNQSSBOQU5EIENNRCAqLworI2RlZmluZSBDTURfV1JJVEVfRU5BQkxFICAgICAgICAgICAgMHgwNgorI2RlZmluZSBDTURfV1JJVEVfRElTQUJMRSAgICAgICAgICAgMHgwNAorI2RlZmluZSBDTURfR0VUX0ZFQVRVUkUJCSAgICAgICAgMHgwRgorI2RlZmluZSBDTURfU0VUX0ZFQVRVUkUJCSAgICAgICAgMHgxRgorCisjZGVmaW5lIENNRF9SRUFEX1BBR0VfVE9fQ0FDSEUJICAgICAweDEzCisjZGVmaW5lIENNRF9SRUFEX0ZST01fQ0FDSEUgICAgICAgICAgMHgwMworLy8jZGVmaW5lIENNRF9SRUFEX0ZST01fQ0FDSEVfWDIgICAgICAgMHgzQgorI2RlZmluZSBDTURfUkVBRF9GUk9NX0NBQ0hFX1g0ICAgICAgIDB4NkIKKyNkZWZpbmUgQ01EX1JFQURfRlJPTV9DQUNIRV9RSU8gICAgICAweEVCCisKKyNkZWZpbmUgQ01EX1JFQURfSUQJCSAgICAgICAgICAgIDB4OUYKKyNkZWZpbmUgICAgIElEX0FERFIwCQkgICAgICAgICAgICAweDAwCisjZGVmaW5lICAgICBJRF9BRERSMQkJICAgICAgICAgICAgMHgwMQorCisjZGVmaW5lIENNRF9QUk9HUkFNX0xPQUQJCSAgICAweDAyCisjZGVmaW5lIENNRF9QUk9HUkFNX0xPQURfWDQJCSAgICAweDMyCisKKyNkZWZpbmUgQ01EX1BST0dSQU1fRVhFQ1VURQkJICAgIDB4MTAKKy8vI2RlZmluZSBDTURfUFJPR1JBTV9MT0FEX1JBTkRPTSAgICAgIDB4ODQKKy8vI2RlZmluZSBDTURfUFJPR1JBTV9MT0FEX1JBTkRPTV9YNCAgIDB4QzQKKy8vI2RlZmluZSBDTURfUFJPR1JBTV9MT0FEX1JBTkRPTV9RSU8gIDB4NzIKKworI2RlZmluZSBDTURfQkxPQ0tfRVJBU0UgICAgICAgICAgICAgMHhEOAorCisjZGVmaW5lIENNRF9SRVNFVCAgICAgICAgICAgICAgICAgICAweEZGCisKKy8vZnBnYQorI2RlZmluZSBDTURfUkVBRF9CWVRFCQkJCQkweDAzCisjZGVmaW5lIENNRF9SRUFEX1RPX0NBQ0hFCQkJCTB4MTMKKyNkZWZpbmUgQ01EX0dFVF9GRUFUVVJFCQkJCTB4MEYKKyNkZWZpbmUgQ01EX0VORAkJCQkJCQkweDAwLy91bnVzZWQgY21kCisjZGVmaW5lIE9JUF9CSVQJCSgxPDwwKQorCisKKyNkZWZpbmUgU0lOR0xFX01PREUgMAorLy8jZGVmaW5lIERVQUxfTU9ERSAgIDEKKyNkZWZpbmUgUkRYNF9NT0RFICAgIDIKKyNkZWZpbmUgUkRRSU9fTU9ERSAgIDMKKyNkZWZpbmUgUExYNF9NT0RFICAgIDQKKworLypyZWFkIGFuZCB3cml0ZSBtb2RlIGNvbmZpZ3VyYXRpb24qLworLy8jZGVmaW5lIFJEX01PREUgIFJEWDRfTU9ERQorI2RlZmluZSBSRF9NT0RFICBSRFFJT19NT0RFCisvLyNkZWZpbmUgUkRfTU9ERSAgU0lOR0xFX01PREUKKyNkZWZpbmUgV1JfTU9ERSAgUExYNF9NT0RFCisKKy8qIFNQSSBOQU5EIFJFR0lTVEVSICovCisjZGVmaW5lIFJFR19QUk9URUNUSU9OICAgICAgICAgICAgICAweEEwCisjZGVmaW5lIFJFR19GRUFUVVJFICAgICAgICAgICAgICAgICAweEIwCisjZGVmaW5lIEVDQ19FTiAgICAgICAgICAgICAgICAgICAgICAoMHgxPDw0KQorI2RlZmluZSBRRSAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFJFR19TVEFUVVMgICAgICAgICAgICAgICAgICAweEMwCisjZGVmaW5lIEVDQ19FUlJfQklUICAgICAgICAgICAgICAgICAoMHg0KSAgICAgICAgLyogRUNDIEVSUiAqLworI2RlZmluZSBFQ0NfRVJSX01BU0sgICAgICAgICAgICAgICAgKDB4Mzw8NCkgICAgIC8qIEVDQyBFUlIgKi8KKyNkZWZpbmUgUF9GQUlMICAgICAgICAgICAgICAgICAgICAgICgweDE8PDMpICAgICAvKiBwcm9ncmFtIGZhaWwqLworI2RlZmluZSBFX0ZBSUwgICAgICAgICAgICAgICAgICAgICAgKDB4MTw8MikgICAgIC8qIGVyYXNlIGZhaWwgKi8KKyNkZWZpbmUgV0VMICAgICAgICAgICAgICAgICAgICAgICAgICgweDE8PDEpICAgICAvKiBXcml0ZSBFbmFibGUgTGF0Y2ggKi8KKyNkZWZpbmUgT0lQICAgICAgICAgICAgICAgICAgICAgICAgICgweDE8PDApICAgICAvKiBPcGVyYXRpb24gSW4gUHJvZ3Jlc3MgKi8KKworI2RlZmluZSBXUkFQX1NJWkVfTUFJTl9PT0IgICAgICAgICAoMHgwPDwxMikgICAgICAvKiAyMDQ4ICs2NCA9IDIxMTIgKi8KKyNkZWZpbmUgV1JBUF9TSVpFX01BSU4gICAgICAgICAgICAgKDB4NDw8MTIpICAgICAgLyogMjA0OCAqLworI2RlZmluZSBXUkFQX1NJWkVfT09CCQkJICAgKDB4ODw8MTIpICAgICAgLyogNjQgKi8KKyNkZWZpbmUgV1JBUF9TSVpFX01JTkkJCQkgICAoMHhDPDwxMikgICAgICAvKiAxNiAqLworCisKKy8qc3BpIGZsYXNoIMnosbjD6Mr2veG5uczlKi8KK3N0cnVjdCBzcGlfZmxhc2hfZGV2aWNlX3BhcmEKK3sKKwl1aW50OF90CQltYW51Zl9pZDsgICAgICAgICAgICAgLyogs6e80klEICovCisJdWludDhfdCAJCWRldmljZV9pZDsgICAgICAgICAgICAvKiDJ6LG4SUQgKi8KKwl1aW50OF90IAkJcmVzX2lkOyAgICAgICAgICAgICAgIC8qIMb3vP5JRCAqLworCXVpbnQxNl90ICAJcGFnZV9zaXplOyAgICAgICAgICAgIC8qIMO/0rNtYWlux/jT8rTz0KEgKi8KKwl1aW50MTZfdCAgCXBhZ2Vfc2l6ZV9zaGlmdDsgICAgICAKKwl1aW50MTZfdCAgCW9vYl9zaXplOyAgICAgICAgICAgICAvKiDDv9Kzc3BhcmXH+NPytPPQoSAqLworCXVpbnQxNl90ICAJYmxvY2tfc2l6ZV9zaGlmdDsKKwl1aW50MTZfdCAgCWJsb2NrX251bTsgICAgICAgICAgICAvKiC/6cr9ICovCisJdWludDMyX3QgIAlibG9ja19zaXplOyAgICAgICAgICAgLyogw7+/6bXEtPPQoSAqLworCXVpbnQzMl90CQlwbGFuZXM7Cit9OworCisjZW5kaWYJLyogX19TUElfRkNfSF9fICovCisKZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vYXJjaC1tMC90b3BfY2xvY2suaCBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vYXJjaC1tMC90b3BfY2xvY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzI1ZTMxCi0tLSAvZGV2L251bGwKKysrIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS9hcmNoLW0wL3RvcF9jbG9jay5oCkBAIC0wLDAgKzEsODggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYsIFpYSUMgQ29ycG9yYXRpb24uCisgKgorICogRmlsZSBOYW1lOiAgICAKKyAqIEZpbGUgTWFyazogICAgCisgKiBEZXNjcmlwdGlvbjogIAorICogT3RoZXJzOiAgICAgICAgCisgKiBWZXJzaW9uOiAgICAgICB2MS4wCisgKiBBdXRob3I6ICAgICAgICB6aG91cWkKKyAqIERhdGU6ICAgICAgICAgIDIwMTMtNC0yCisgKiBIaXN0b3J5IDE6ICAgICAgCisgKiAgICAgRGF0ZTogMjAxMy02LTI1CisgKiAgICAgVmVyc2lvbjp2MS4xCisgKiAgICAgQXV0aG9yOiBjamcKKyAqICAgICBNb2RpZmljYXRpb246ICAKKyAqIEhpc3RvcnkgMjogCisgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmbmRlZiBfX1RPUF9DTE9DS19IX18KKyNkZWZpbmUgX19UT1BfQ0xPQ0tfSF9fCisKKy8vLS0tLS0tLS0tLS0gVE9QX0NSTSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNkZWZpbmUgVE9QX0NSTV9CQVNFICAgICAgIDB4MDEzQjAwMAorCisjZGVmaW5lIFdJRklfU1NCVUZGRVIgICAgICAgICAgICAgICAoVE9QX0NSTV9CQVNFKzB4MDA4KQorI2RlZmluZSBXSUZJX1NTQlVGRkVSX0VOICAgICAgICAgICAgICgweDEgPDwgMCkgICAgIC8qIERlZjogMCAqLworCisjZGVmaW5lIFdJRklfU1NCVUZGRVIgICAgICAgICAgICAgICAoVE9QX0NSTV9CQVNFKzB4MDA4KQorI2RlZmluZSBXSUZJX1NTQlVGRkVSX0VOICAgICAgICAgICAgICgweDEgPDwgMCkgICAgIC8qIERlZjogMCAqLworCisjZGVmaW5lIEJPT1RTRUxfSU5GTwkJKFRPUF9DUk1fQkFTRSsweDQpCisKKworLy8tLS0tLS0tLS0tLSBMU1BfQ1JQTSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNkZWZpbmUgTFNQX0NSUE1fQkFTRSAgICAgICAweDAxNDAwMDAwCisKKyNkZWZpbmUgQ1JQTV9DTEtTRVQgICAgICAgICAgICAgKExTUF9DUlBNX0JBU0UgKyAweDApCisjZGVmaW5lICAgICBDT01fQ0xLX1NFTCAgICAgICAgICAgICAoMHgxIDw8IDApCisKKyNkZWZpbmUgQ1JQTV9DTEtESVYxICAgICAgICAgICAgKExTUF9DUlBNX0JBU0UgKyAweDI0KQorI2RlZmluZSAgICAgQ1JQTV9DTEtESVYxX01BU0sgICAgICAgKDB4RiA8PCAxNikKKyNkZWZpbmUgICAgIFRJTUVSMF9ESVZfMTIgICAgICAgICAgICgweEIgPDwgMTYpCisKKy8vLS0tLS0tLS0tLS0gU09DQ1JNIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI2RlZmluZSBTVEFOREJZX0NSTV9CQVNFICAgICAgICAgMHgwMTMwNjAwMAorCisjZGVmaW5lIE1BVFJJWF9BWElfU0VMICAgKFNUQU5EQllfQ1JNX0JBU0UgKyAweDAwKQorI2RlZmluZSBQU19DT1JFX1NFTCAgICAgIChTVEFOREJZX0NSTV9CQVNFICsgMHgyMCkKKyNkZWZpbmUgUEhZX0NPUkVfU0VMICAgICAoU1RBTkRCWV9DUk1fQkFTRSArIDB4MzApCisjZGVmaW5lIEFQX0NPUkVfU0VMICAgICAoU1RBTkRCWV9DUk1fQkFTRSArIDB4NDApCisKKy8vI2RlZmluZSBOQU5EX0NMS0RJViAgICAgIChTVEFOREJZX0NSTV9CQVNFICsgMHg0MCkKKyNkZWZpbmUgTUFUUklYX01PREVNX1JFU0VUICAgICAgKFNUQU5EQllfQ1JNX0JBU0UgKyAweDUwKQorCisjZGVmaW5lICAgICBOQU5EX1dDTEtfU0VMICAgICAgICAgICAoMHgxKS8vMjZNCisKKworLy8tLS0tLS0tLS0tLSBQQ1UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI2RlZmluZSBTWVNURU1fQ09ORklHX1JFRyAgICAweDAwMTBkNjAwCisjZGVmaW5lICAgICBQVUxMX09VVFBVVF9TRUwgICAgICAgICAgKDB4MSA8PCAzMCkKKworLy8tLS0tLS0tLS0tLSBUT1BfU1lTQ0xLIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNkZWZpbmUgVE9QX1NZU0NMS19CQVNFICAgICAgMHgwMDEzYjAwMAorCisjZGVmaW5lIE1QTExfQ0ZHMF9SRUcJKCBUT1BfU1lTQ0xLX0JBU0UgKyAweDAwOCApCisjZGVmaW5lIFVQTExfQ0ZHMF9SRUcJKCBUT1BfU1lTQ0xLX0JBU0UgKyAweDAxMCApCisjZGVmaW5lIEdQTExfQ0ZHMF9SRUcJKCBUT1BfU1lTQ0xLX0JBU0UgKyAweDExMCApCisvLyNkZWZpbmUgQVBMTF9DRkcwX1JFRwkoIFRPUF9TWVNDTEtfQkFTRSArIDB4MDE4ICkKKy8vI2RlZmluZSBEUExMX0NGRzBfUkVHCSggVE9QX1NZU0NMS19CQVNFICsgMHgwMjggKQorLy8jZGVmaW5lIERQTExfQ0ZHMV9SRUcJKCBUT1BfU1lTQ0xLX0JBU0UgKyAweDAyYyApCisKKyNkZWZpbmUgTTBfQ09SRV9TRUwgICAgICAoVE9QX1NZU0NMS19CQVNFICsgMHgwMzgpCisjZGVmaW5lIEhTX0FIQl9DTEsJICAgICAgKFRPUF9TWVNDTEtfQkFTRSArIDB4MDNjKQorCisjZGVmaW5lIFBMTF9MT0NLX0NOVDAJKCBUT1BfU1lTQ0xLX0JBU0UgKyAweDAzMCApCisjZGVmaW5lIFBMTF9MT0NLX0NOVDEJKCBUT1BfU1lTQ0xLX0JBU0UgKyAweDAzNCApCisjZGVmaW5lIFJNQ09SRV9DTEtfQ0ZHX1JFRwkoIFRPUF9TWVNDTEtfQkFTRSArIDB4MDUwICkKKyNkZWZpbmUgUk1fTU9EX0NMS1NFTAkoIFRPUF9TWVNDTEtfQkFTRSArIDB4MDU0ICkKKworLypwbGwgY2ZnMCByZWcgbWFwKi8KKworLypwbGwgY2ZnMSByZWcgbWFwKi8KKyNkZWZpbmUgICAgIFBMTF9DRkcxX0RBQ0FQCQkJCSgweDEgPDwgMjcpCisjZGVmaW5lICAgICBQTExfQ0ZHMV9GT1VUNFBIQVNFUEQJCSgweDEgPDwgMjYpCisjZGVmaW5lICAgICBQTExfQ0ZHMV9GT1VUUE9TVERJVlBECQkoMHgxIDw8IDI1KQorI2RlZmluZSAgICAgUExMX0NGRzFfRk9VVFZDT1BECQkJKDB4MSA8PCAyNCkKKyNkZWZpbmUgICAgIFBMTF9DRkcxX0ZSQUMJCQkJKDB4MSA8PCAwKQorCisjZW5kaWYgLypfX1RPUF9DTE9DS19IX18qLwpkaWZmIC0tZ2l0IGEvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS9hcmNoLW0wL3VhcnQuaCBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vYXJjaC1tMC91YXJ0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA4NGZlZAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vYXJjaC1tMC91YXJ0LmgKQEAgLTAsMCArMSw4NCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAxNiwgWlhJQyBDb3Jwb3JhdGlvbi4KKyAqCisgKiBGaWxlIE5hbWU6ICAgIAorICogRmlsZSBNYXJrOiAgICAKKyAqIERlc2NyaXB0aW9uOiAgCisgKiBPdGhlcnM6ICAgICAgICAKKyAqIFZlcnNpb246ICAgICAgIHYxLjAKKyAqIEF1dGhvcjogICAgICAgIHpob3VxaQorICogRGF0ZTogICAgICAgICAgMjAxMy00LTIKKyAqIEhpc3RvcnkgMTogICAgICAKKyAqICAgICBEYXRlOiAKKyAqICAgICBWZXJzaW9uOgorICogICAgIEF1dGhvcjogCisgKiAgICAgTW9kaWZpY2F0aW9uOiAgCisgKiBIaXN0b3J5IDI6IAorICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZm5kZWYgX19VQVJUXzc1MjBfSF9fCisjZGVmaW5lIF9fVUFSVF83NTIwX0hfXworI2luY2x1ZGUgImNvbW1vbi5oIgorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVUFSVAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIFVBUlQwX0JBU0UJCTBYMTMxMDAwCisjZGVmaW5lIFVBUlQxX0JBU0UJCTB4MTQwODAwMAorI2RlZmluZSBVQVJUMl9CQVNFICAgICAgMHgxNDBkMDAwCisjZGVmaW5lIFBBRF9UT1BfRlVOQ19CQVNFICAgMHgxM2MwMDAKKyNkZWZpbmUgUEFEX1BEX0ZVTkNfQkFTRSAgICAweDEzMDMwMDAKKworI2RlZmluZSBVQVJUX0JBU0UJCVVBUlQxX0JBU0UgICAKKworI2RlZmluZSBVQVJUX1ZTICAgICAgICAgICAgIChVQVJUX0JBU0UgKyAweDAwKQorI2RlZmluZSBVQVJUX0RSICAgICAgICAgICAgIChVQVJUX0JBU0UgKyAweDA0KQorI2RlZmluZSBVQVJUX1RTQyAgICAgICAgICAgIChVQVJUX0JBU0UgKyAweDA4KQorI2RlZmluZSBVQVJUX1JTUiAgICAgICAgICAgIChVQVJUX0JBU0UgKyAweDEwKQorI2RlZmluZSBVQVJUX0ZSICAgICAgICAgICAgIChVQVJUX0JBU0UgKyAweDE0KQorI2RlZmluZSAgICAgVUFSVF9UWEZGICAgICAgICAgICAoMHgxIDw8IDUpCisjZGVmaW5lICAgICBVQVJUX1JYRkUgICAgICAgICAgICgweDEgPDwgNCkKKyNkZWZpbmUgVUFSVF9GUl9UWEJVU1kJCQkoMTw8OCkKKworI2RlZmluZSBVQVJUX0lMUFIgICAgICAgICAgIChVQVJUX0JBU0UgKyAweDIwKQorI2RlZmluZSBVQVJUX0lCUkQgICAgICAgICAgIChVQVJUX0JBU0UgKyAweDI0KQorI2RlZmluZSBVQVJUX0ZCUkQgICAgICAgICAgIChVQVJUX0JBU0UgKyAweDI4KQorI2RlZmluZSBVQVJUX0xDUl9IICAgICAgICAgIChVQVJUX0JBU0UgKyAweDMwKQorI2RlZmluZSAgICAgVUFSVF9TUFMJCQkoMHgxIDw8IDcpCQkvLyBTdGljayBQYXJpdHkgc2VsZWN0CisjZGVmaW5lICAgICBVQVJUX1dMRU5fOCAgCQkoMHgzIDw8IDUpCQkvLyBXb3JkIGxlbmd0aDogOCBiaXRzICAgICAKKyNkZWZpbmUgICAgIFVBUlRfRkVOCQkJKDB4MSA8PCA0KQkJLy8gRW5hYmxlIEZJRk9zICAgICAKKyNkZWZpbmUgICAgIFVBUlRfU1RQMiAJCSAgICAoMHgxIDw8IDMpCQkvLyBOdW1iZXIgb2Ygc3RvcCBiaXRzLCIxIjogMnN0b3AgYml0cyB0cmFuc21pdHRlZCAgICAKKyNkZWZpbmUgICAgIFVBUlRfRVBTICAgCQkJKDB4MSA8PCAyKQkJLy8gRXZlbiBwYXJpdHkgc2VsZWN0CisjZGVmaW5lICAgICBVQVJUX1BFTgkgICAgICAgICgweDEgPDwgMSkJCS8vIFBhcml0eSBlbmFibGUKKyNkZWZpbmUgICAgIFVBUlRfQlJFQUsgCQkJKDB4MSA8PCAwKQkJLy8gU2VuZCBicmVhaworI2RlZmluZSBVQVJUX0NSICAgICAgICAgICAgIChVQVJUX0JBU0UgKyAweDM0KQorI2RlZmluZSAgICAgVUFSVF9DVFNFCQkJKDB4MSA8PCAxNSkJCS8vIENUUyBoYXJkd2FyZSBmbG93IGNvbnRyb2wgZW5hYmxlIAorI2RlZmluZSAgICAgVUFSVF9SVFNFCQkJKDB4MSA8PCAxNCkJCS8vIFJUUyBoYXJkd2FyZSBmbG93IGNvbnRyb2wgZW5hYmxlCisjZGVmaW5lICAgICBVQVJUX09VVDIJCQkoMHgxIDw8IDEzKQkJLy8gb3V0MiAgICAgICAgICAgICAgICAgICAgICAgCisjZGVmaW5lICAgICBVQVJUX09VVDEgIAkgCSAgICAoMHgxIDw8IDEyKSAJLy8gb3V0MSAKKyNkZWZpbmUgICAgIFVBUlRfUlRTICAgIAkJKDB4MSA8PCAxMSkgCS8vIHJlcXVlc3QgdG8gc2VuZAorI2RlZmluZSAgICAgVUFSVF9EVFIgICAgCQkoMHgxIDw8IDEwKSAJLy8gZGF0YSB0cmFuc21pdCByZWFkeSAKKyNkZWZpbmUgICAgIFVBUlRfUlhFCQkJKDB4MSA8PCA5KQkJLy8gUmVjZWl2ZSBFbmFibGUgKFJYRSkiMSIKKyNkZWZpbmUgICAgIFVBUlRfVFhFCQkJKDB4MSA8PCA4KQkJLy8gIjEiOiBUcmFuc21pdCBFbmFibGUgKFRYRSkgCisjZGVmaW5lICAgICBVQVJUX0xCRSAgICAJCSgweDEgPDwgNykJCS8vICIxIjogTG9vcCBCYWNrIEVuYWJsZSAKKyNkZWZpbmUgICAgIFVBUlRfU0lSTFAJCQkoMHgxIDw8IDIpCQkvLyAiMSI6IElyREEgU0lSIExvdyBQb3dlciBNb2RlIAorI2RlZmluZSAgICAgVUFSVF9TSVJfRU4JCSAgICAoMHgxIDw8IDEpCQkvLyAiMCI6IFNJUiBkaXNhYmxlOyAiMSI6IFNJUiBlbmFibGUgCisjZGVmaW5lICAgICBVQVJUX0VOCQkJCSgweDEgPDwgMCkJCS8vICIwIjogdWFydCBkaXNhYmxlOyAiMSI6IHVhcnQgZW5hYmxlIAorI2RlZmluZSBVQVJUX0lGTFMgICAgICAgICAgIChVQVJUX0JBU0UgKyAweDM4KQorI2RlZmluZSBVQVJUX0lNU0MgICAgICAgICAgIChVQVJUX0JBU0UgKyAweDQwKQorI2RlZmluZSBVQVJUX1JJUyAgICAgICAgICAgIChVQVJUX0JBU0UgKyAweDQ0KQorI2RlZmluZSBVQVJUX01JUyAgICAgICAgICAgIChVQVJUX0JBU0UgKyAweDQ4KQorI2RlZmluZSBVQVJUX0lDUiAgICAgICAgICAgIChVQVJUX0JBU0UgKyAweDRDKQorI2RlZmluZSBVQVJUX0RNQUNSICAgICAgICAgIChVQVJUX0JBU0UgKyAweDUwKQorCisjZGVmaW5lIFVBUlRfSU5UX01BU0sgICAgICAgKDB4RkZGRkZGRkYpCisKKworZXh0ZXJuIHZvaWQgdWFydF9pbml0KHZvaWQpOworZXh0ZXJuIGNoYXIgdWFydF9nZXRjKHZvaWQpOworZXh0ZXJuIHZvaWQgdWFydF9wdXRjKGNvbnN0IGNoYXIgYyk7CitleHRlcm4gdm9pZCB1YXJ0X3B1dHMoY29uc3QgY2hhciAqcyk7CisKKworI2VuZGlmIC8qX19VQVJUXzc1MjBfSF9fKi8KKwpkaWZmIC0tZ2l0IGEvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS9hdG9taWMuaCBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vYXRvbWljLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE5ZTRiNwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vYXRvbWljLmgKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiAgbGludXgvaW5jbHVkZS9hc20tYXJtL2F0b21pYy5oCisgKgorICogIENvcHlyaWdodCAoYykgMTk5NiBSdXNzZWxsIEtpbmcuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiAgQ2hhbmdlbG9nOgorICogICAyNy0wNi0xOTk2CVJNSwlDcmVhdGVkCisgKiAgIDEzLTA0LTE5OTcJUk1LCU1hZGUgZnVuY3Rpb25zIGF0b21pYyEKKyAqICAgMDctMTItMTk5NwlSTUsJVXBncmFkZWQgZm9yIHYyLjEuCisgKiAgIDI2LTA4LTE5OTgJUEpCCUFkZGVkICNpZmRlZiBfX0tFUk5FTF9fCisgKi8KKyNpZm5kZWYgX19BU01fQVJNX0FUT01JQ19ICisjZGVmaW5lIF9fQVNNX0FSTV9BVE9NSUNfSAorCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CisKKyNpZmRlZiBDT05GSUdfU01QCisjZXJyb3IgU01QIG5vdCBzdXBwb3J0ZWQKKyNlbmRpZgorCit0eXBlZGVmIHN0cnVjdCB7IHZvbGF0aWxlIGludCBjb3VudGVyOyB9IGF0b21pY190OworCisjZGVmaW5lIEFUT01JQ19JTklUKGkpCXsgKGkpIH0KKworI2lmZGVmIF9fS0VSTkVMX18KKyNpbmNsdWRlIDxhc20vcHJvYy9zeXN0ZW0uaD4KKworI2RlZmluZSBhdG9taWNfcmVhZCh2KQkoKHYpLT5jb3VudGVyKQorI2RlZmluZSBhdG9taWNfc2V0KHYsaSkJKCgodiktPmNvdW50ZXIpID0gKGkpKQorCitzdGF0aWMgaW5saW5lIHZvaWQgYXRvbWljX2FkZChpbnQgaSwgdm9sYXRpbGUgYXRvbWljX3QgKnYpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwl2LT5jb3VudGVyICs9IGk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYXRvbWljX3N1YihpbnQgaSwgdm9sYXRpbGUgYXRvbWljX3QgKnYpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwl2LT5jb3VudGVyIC09IGk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYXRvbWljX2luYyh2b2xhdGlsZSBhdG9taWNfdCAqdikKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCXYtPmNvdW50ZXIgKz0gMTsKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhdG9taWNfZGVjKHZvbGF0aWxlIGF0b21pY190ICp2KQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJdi0+Y291bnRlciAtPSAxOworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKK30KKworc3RhdGljIGlubGluZSBpbnQgYXRvbWljX2RlY19hbmRfdGVzdCh2b2xhdGlsZSBhdG9taWNfdCAqdikKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCB2YWw7CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJdmFsID0gdi0+Y291bnRlcjsKKwl2LT5jb3VudGVyID0gdmFsIC09IDE7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCisJcmV0dXJuIHZhbCA9PSAwOworfQorCitzdGF0aWMgaW5saW5lIGludCBhdG9taWNfYWRkX25lZ2F0aXZlKGludCBpLCB2b2xhdGlsZSBhdG9taWNfdCAqdikKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCB2YWw7CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJdmFsID0gdi0+Y291bnRlcjsKKwl2LT5jb3VudGVyID0gdmFsICs9IGk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCisJcmV0dXJuIHZhbCA8IDA7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhdG9taWNfY2xlYXJfbWFzayh1bnNpZ25lZCBsb25nIG1hc2ssIHVuc2lnbmVkIGxvbmcgKmFkZHIpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwkqYWRkciAmPSB+bWFzazsKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Cit9CisKKy8qIEF0b21pYyBvcGVyYXRpb25zIGFyZSBhbHJlYWR5IHNlcmlhbGl6aW5nIG9uIEFSTSAqLworI2RlZmluZSBzbXBfbWJfX2JlZm9yZV9hdG9taWNfZGVjKCkJYmFycmllcigpCisjZGVmaW5lIHNtcF9tYl9fYWZ0ZXJfYXRvbWljX2RlYygpCWJhcnJpZXIoKQorI2RlZmluZSBzbXBfbWJfX2JlZm9yZV9hdG9taWNfaW5jKCkJYmFycmllcigpCisjZGVmaW5lIHNtcF9tYl9fYWZ0ZXJfYXRvbWljX2luYygpCWJhcnJpZXIoKQorCisjZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS9ieXRlb3JkZXIuaCBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vYnl0ZW9yZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzM0ODlmMQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vYnl0ZW9yZGVyLmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqICBsaW51eC9pbmNsdWRlL2FzbS1hcm0vYnl0ZW9yZGVyLmgKKyAqCisgKiBBUk0gRW5kaWFuLW5lc3MuICBJbiBsaXR0bGUgZW5kaWFuIG1vZGUsIHRoZSBkYXRhIGJ1cyBpcyBjb25uZWN0ZWQgc3VjaAorICogdGhhdCBieXRlIGFjY2Vzc2VzIGFwcGVhciBhczoKKyAqICAwID0gZDAuLi5kNywgMSA9IGQ4Li4uZDE1LCAyID0gZDE2Li4uZDIzLCAzID0gZDI0Li4uZDMxCisgKiBhbmQgd29yZCBhY2Nlc3NlcyAoZGF0YSBvciBpbnN0cnVjdGlvbikgYXBwZWFyIGFzOgorICogIGQwLi4uZDMxCisgKgorICogV2hlbiBpbiBiaWcgZW5kaWFuIG1vZGUsIGJ5dGUgYWNjZXNzZXMgYXBwZWFyIGFzOgorICogIDAgPSBkMjQuLi5kMzEsIDEgPSBkMTYuLi5kMjMsIDIgPSBkOC4uLmQxNSwgMyA9IGQwLi4uZDcKKyAqIGFuZCB3b3JkIGFjY2Vzc2VzIChkYXRhIG9yIGluc3RydWN0aW9uKSBhcHBlYXIgYXM6CisgKiAgZDAuLi5kMzEKKyAqLworI2lmbmRlZiBfX0FTTV9BUk1fQllURU9SREVSX0gKKyNkZWZpbmUgX19BU01fQVJNX0JZVEVPUkRFUl9ICisKKworI2luY2x1ZGUgPGFzbS90eXBlcy5oPgorCisjaWYgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKSB8fCBkZWZpbmVkKF9fS0VSTkVMX18pCisjICBkZWZpbmUgX19CWVRFT1JERVJfSEFTX1U2NF9fCisjICBkZWZpbmUgX19TV0FCXzY0X1RIUlVfMzJfXworI2VuZGlmCisKKyNpZmRlZiBfX0FSTUVCX18KKyNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIvYmlnX2VuZGlhbi5oPgorI2Vsc2UKKyNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIvbGl0dGxlX2VuZGlhbi5oPgorI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS9pby5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS9pby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzMGY1ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvYXNtL2lvLmgKQEAgLTAsMCArMSwzMDkgQEAKKy8qCisgKiAgbGludXgvaW5jbHVkZS9hc20tYXJtL2lvLmgKKyAqCisgKiAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAgUnVzc2VsbCBLaW5nCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBNb2RpZmljYXRpb25zOgorICogIDE2LVNlcC0xOTk2CVJNSwlJbmxpbmVkIHRoZSBpbngvb3V0eCBmdW5jdGlvbnMgJiBvcHRpbWlzZWQgZm9yIGJvdGgKKyAqCQkJY29uc3RhbnQgYWRkcmVzc2VzIGFuZCB2YXJpYWJsZSBhZGRyZXNzZXMuCisgKiAgMDQtRGVjLTE5OTcJUk1LCU1vdmVkIGEgbG90IG9mIHRoaXMgc3R1ZmYgdG8gdGhlIG5ldyBhcmNoaXRlY3R1cmUKKyAqCQkJc3BlY2lmaWMgSU8gaGVhZGVyIGZpbGVzLgorICogIDI3LU1hci0xOTk5CVBKQglTZWNvbmQgcGFyYW1ldGVyIG9mIG1lbWNweV90b2lvIGlzIGNvbnN0Li4KKyAqICAwNC1BcHItMTk5OQlQSkIJQWRkZWQgY2hlY2tfc2lnbmF0dXJlLgorICogIDEyLURlYy0xOTk5CVJNSwlNb3JlIGNsZWFudXBzCisgKiAgMTgtSnVuLTIwMDAgUk1LCVJlbW92ZWQgdmlydF90b18qIGFuZCBmcmllbmRzIGRlZmluaXRpb25zCisgKi8KKyNpZm5kZWYgX19BU01fQVJNX0lPX0gKKyNkZWZpbmUgX19BU01fQVJNX0lPX0gKKworI2RlZmluZSBfX1JFRyh4KQkoKih2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopKHgpKSAvL2FkZCBieSB6aG91cWkKKworI2lmZGVmIF9fS0VSTkVMX18KKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPgorI2luY2x1ZGUgPGFzbS9tZW1vcnkuaD4KKyNpZiAwCS8qIFhYWCMjI1hYWCAqLworI2luY2x1ZGUgPGFzbS9hcmNoL2hhcmR3YXJlLmg+CisjZW5kaWYJLyogWFhYIyMjWFhYICovCisKKy8qCisgKiBHZW5lcmljIHZpcnR1YWwgcmVhZC93cml0ZS4gIE5vdGUgdGhhdCB3ZSBkb24ndCBzdXBwb3J0IGhhbGYtd29yZAorICogcmVhZC93cml0ZXMuICBXZSBkZWZpbmUgX19hcmNoXypbYmxdIGhlcmUsIGFuZCBsZWF2ZSBfX2FyY2hfKncKKyAqIHRvIHRoZSBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgY29kZS4KKyAqLworI2RlZmluZSBfX2FyY2hfZ2V0YihhKQkJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikoYSkpCisjZGVmaW5lIF9fYXJjaF9nZXR3KGEpCQkJKCoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikoYSkpCisjZGVmaW5lIF9fYXJjaF9nZXRsKGEpCQkJKCoodm9sYXRpbGUgdW5zaWduZWQgaW50ICopKGEpKQorCisjZGVmaW5lIF9fYXJjaF9wdXRiKHYsYSkJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikoYSkgPSAodikpCisjZGVmaW5lIF9fYXJjaF9wdXR3KHYsYSkJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopKGEpID0gKHYpKQorI2RlZmluZSBfX2FyY2hfcHV0bCh2LGEpCQkoKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikoYSkgPSAodikpCisKK2V4dGVybiB2b2lkIF9fcmF3X3dyaXRlc2IodW5zaWduZWQgaW50IGFkZHIsIGNvbnN0IHZvaWQgKmRhdGEsIGludCBieXRlbGVuKTsKK2V4dGVybiB2b2lkIF9fcmF3X3dyaXRlc3codW5zaWduZWQgaW50IGFkZHIsIGNvbnN0IHZvaWQgKmRhdGEsIGludCB3b3JkbGVuKTsKK2V4dGVybiB2b2lkIF9fcmF3X3dyaXRlc2wodW5zaWduZWQgaW50IGFkZHIsIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsb25nbGVuKTsKKworZXh0ZXJuIHZvaWQgX19yYXdfcmVhZHNiKHVuc2lnbmVkIGludCBhZGRyLCB2b2lkICpkYXRhLCBpbnQgYnl0ZWxlbik7CitleHRlcm4gdm9pZCBfX3Jhd19yZWFkc3codW5zaWduZWQgaW50IGFkZHIsIHZvaWQgKmRhdGEsIGludCB3b3JkbGVuKTsKK2V4dGVybiB2b2lkIF9fcmF3X3JlYWRzbCh1bnNpZ25lZCBpbnQgYWRkciwgdm9pZCAqZGF0YSwgaW50IGxvbmdsZW4pOworCisjZGVmaW5lIF9fcmF3X3dyaXRlYih2LGEpCQlfX2FyY2hfcHV0Yih2LGEpCisjZGVmaW5lIF9fcmF3X3dyaXRldyh2LGEpCQlfX2FyY2hfcHV0dyh2LGEpCisjZGVmaW5lIF9fcmF3X3dyaXRlbCh2LGEpCQlfX2FyY2hfcHV0bCh2LGEpCisKKyNkZWZpbmUgX19yYXdfcmVhZGIoYSkJCQlfX2FyY2hfZ2V0YihhKQorI2RlZmluZSBfX3Jhd19yZWFkdyhhKQkJCV9fYXJjaF9nZXR3KGEpCisjZGVmaW5lIF9fcmF3X3JlYWRsKGEpCQkJX19hcmNoX2dldGwoYSkKKworI2RlZmluZSB3cml0ZWIodixhKQkJCV9fYXJjaF9wdXRiKHYsYSkKKyNkZWZpbmUgd3JpdGV3KHYsYSkJCQlfX2FyY2hfcHV0dyh2LGEpCisjZGVmaW5lIHdyaXRlbCh2LGEpCQkJX19hcmNoX3B1dGwodixhKQorCisjZGVmaW5lIHJlYWRiKGEpCQkJX19hcmNoX2dldGIoYSkKKyNkZWZpbmUgcmVhZHcoYSkJCQlfX2FyY2hfZ2V0dyhhKQorI2RlZmluZSByZWFkbChhKQkJCV9fYXJjaF9nZXRsKGEpCisKKy8qCisgKiBUaGUgY29tcGlsZXIgc2VlbXMgdG8gYmUgaW5jYXBhYmxlIG9mIG9wdGltaXNpbmcgY29uc3RhbnRzCisgKiBwcm9wZXJseS4gIFNwZWxsIGl0IG91dCB0byB0aGUgY29tcGlsZXIgaW4gc29tZSBjYXNlcy4KKyAqIFRoZXNlIGFyZSBvbmx5IHZhbGlkIGZvciBzbWFsbCB2YWx1ZXMgb2YgIm9mZiIgKDwgMTw8MTIpCisgKi8KKyNkZWZpbmUgX19yYXdfYmFzZV93cml0ZWIodmFsLGJhc2Usb2ZmKQlfX2FyY2hfYmFzZV9wdXRiKHZhbCxiYXNlLG9mZikKKyNkZWZpbmUgX19yYXdfYmFzZV93cml0ZXcodmFsLGJhc2Usb2ZmKQlfX2FyY2hfYmFzZV9wdXR3KHZhbCxiYXNlLG9mZikKKyNkZWZpbmUgX19yYXdfYmFzZV93cml0ZWwodmFsLGJhc2Usb2ZmKQlfX2FyY2hfYmFzZV9wdXRsKHZhbCxiYXNlLG9mZikKKworI2RlZmluZSBfX3Jhd19iYXNlX3JlYWRiKGJhc2Usb2ZmKQlfX2FyY2hfYmFzZV9nZXRiKGJhc2Usb2ZmKQorI2RlZmluZSBfX3Jhd19iYXNlX3JlYWR3KGJhc2Usb2ZmKQlfX2FyY2hfYmFzZV9nZXR3KGJhc2Usb2ZmKQorI2RlZmluZSBfX3Jhd19iYXNlX3JlYWRsKGJhc2Usb2ZmKQlfX2FyY2hfYmFzZV9nZXRsKGJhc2Usb2ZmKQorCisvKgorICogTm93LCBwaWNrIHVwIHRoZSBtYWNoaW5lLWRlZmluZWQgSU8gZGVmaW5pdGlvbnMKKyAqLworI2lmIDAJLyogWFhYIyMjWFhYICovCisjaW5jbHVkZSA8YXNtL2FyY2gvaW8uaD4KKyNlbmRpZgkvKiBYWFgjIyNYWFggKi8KKworLyoKKyAqICBJTyBwb3J0IGFjY2VzcyBwcmltaXRpdmVzCisgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIFRoZSBBUk0gZG9lc24ndCBoYXZlIHNwZWNpYWwgSU8gYWNjZXNzIGluc3RydWN0aW9uczsgYWxsIElPIGlzIG1lbW9yeQorICogbWFwcGVkLiAgTm90ZSB0aGF0IHRoZXNlIGFyZSBkZWZpbmVkIHRvIHBlcmZvcm0gbGl0dGxlIGVuZGlhbiBhY2Nlc3NlcworICogb25seS4gIFRoZWlyIHByaW1hcnkgcHVycG9zZSBpcyB0byBhY2Nlc3MgUENJIGFuZCBJU0EgcGVyaXBoZXJhbHMuCisgKgorICogTm90ZSB0aGF0IGZvciBhIGJpZyBlbmRpYW4gbWFjaGluZSwgdGhpcyBpbXBsaWVzIHRoYXQgdGhlIGZvbGxvd2luZworICogYmlnIGVuZGlhbiBtb2RlIGNvbm5lY3Rpdml0eSBpcyBpbiBwbGFjZSwgYXMgZGVzY3JpYmVkIGJ5IG51bWVyaW91cworICogQVJNIGRvY3VtZW50czoKKyAqCisgKiAgICBQQ0k6ICBEMC1ENyAgIEQ4LUQxNSBEMTYtRDIzIEQyNC1EMzEKKyAqICAgIEFSTTogRDI0LUQzMSBEMTYtRDIzICBEOC1EMTUgIEQwLUQ3CisgKgorICogVGhlIG1hY2hpbmUgc3BlY2lmaWMgaW8uaCBpbmNsdWRlIGRlZmluZXMgX19pbyB0byB0cmFuc2xhdGUgYW4gIklPIgorICogYWRkcmVzcyB0byBhIG1lbW9yeSBhZGRyZXNzLgorICoKKyAqIE5vdGUgdGhhdCB3ZSBwcmV2ZW50IEdDQyByZS1vcmRlcmluZyBvciBjYWNoaW5nIHZhbHVlcyBpbiBleHByZXNzaW9ucworICogYnkgaW50cm9kdWNpbmcgc2VxdWVuY2UgcG9pbnRzIGludG8gdGhlIGluKigpIGRlZmluaXRpb25zLiAgTm90ZSB0aGF0CisgKiBfX3Jhd18qIGRvIG5vdCBndWFyYW50ZWUgdGhpcyBiZWhhdmlvdXIuCisgKgorICogVGhlIHtpbixvdXR9W2J3bF0gbWFjcm9zIGFyZSBmb3IgZW11bGF0aW5nIHg4Ni1zdHlsZSBQQ0kvSVNBIElPIHNwYWNlLgorICovCisjaWZkZWYgX19pbworI2RlZmluZSBvdXRiKHYscCkJCQlfX3Jhd193cml0ZWIodixfX2lvKHApKQorI2RlZmluZSBvdXR3KHYscCkJCQlfX3Jhd193cml0ZXcoY3B1X3RvX2xlMTYodiksX19pbyhwKSkKKyNkZWZpbmUgb3V0bCh2LHApCQkJX19yYXdfd3JpdGVsKGNwdV90b19sZTMyKHYpLF9faW8ocCkpCisKKyNkZWZpbmUgaW5iKHApCSh7IHVuc2lnbmVkIGludCBfX3YgPSBfX3Jhd19yZWFkYihfX2lvKHApKTsgX192OyB9KQorI2RlZmluZSBpbncocCkJKHsgdW5zaWduZWQgaW50IF9fdiA9IGxlMTZfdG9fY3B1KF9fcmF3X3JlYWR3KF9faW8ocCkpKTsgX192OyB9KQorI2RlZmluZSBpbmwocCkJKHsgdW5zaWduZWQgaW50IF9fdiA9IGxlMzJfdG9fY3B1KF9fcmF3X3JlYWRsKF9faW8ocCkpKTsgX192OyB9KQorCisjZGVmaW5lIG91dHNiKHAsZCxsKQkJCV9fcmF3X3dyaXRlc2IoX19pbyhwKSxkLGwpCisjZGVmaW5lIG91dHN3KHAsZCxsKQkJCV9fcmF3X3dyaXRlc3coX19pbyhwKSxkLGwpCisjZGVmaW5lIG91dHNsKHAsZCxsKQkJCV9fcmF3X3dyaXRlc2woX19pbyhwKSxkLGwpCisKKyNkZWZpbmUgaW5zYihwLGQsbCkJCQlfX3Jhd19yZWFkc2IoX19pbyhwKSxkLGwpCisjZGVmaW5lIGluc3cocCxkLGwpCQkJX19yYXdfcmVhZHN3KF9faW8ocCksZCxsKQorI2RlZmluZSBpbnNsKHAsZCxsKQkJCV9fcmF3X3JlYWRzbChfX2lvKHApLGQsbCkKKyNlbmRpZgorCisjZGVmaW5lIG91dGJfcCh2YWwscG9ydCkJCW91dGIoKHZhbCksKHBvcnQpKQorI2RlZmluZSBvdXR3X3AodmFsLHBvcnQpCQlvdXR3KCh2YWwpLChwb3J0KSkKKyNkZWZpbmUgb3V0bF9wKHZhbCxwb3J0KQkJb3V0bCgodmFsKSwocG9ydCkpCisjZGVmaW5lIGluYl9wKHBvcnQpCQkJaW5iKChwb3J0KSkKKyNkZWZpbmUgaW53X3AocG9ydCkJCQlpbncoKHBvcnQpKQorI2RlZmluZSBpbmxfcChwb3J0KQkJCWlubCgocG9ydCkpCisKKyNkZWZpbmUgb3V0c2JfcChwb3J0LGZyb20sbGVuKQkJb3V0c2IocG9ydCxmcm9tLGxlbikKKyNkZWZpbmUgb3V0c3dfcChwb3J0LGZyb20sbGVuKQkJb3V0c3cocG9ydCxmcm9tLGxlbikKKyNkZWZpbmUgb3V0c2xfcChwb3J0LGZyb20sbGVuKQkJb3V0c2wocG9ydCxmcm9tLGxlbikKKyNkZWZpbmUgaW5zYl9wKHBvcnQsdG8sbGVuKQkJaW5zYihwb3J0LHRvLGxlbikKKyNkZWZpbmUgaW5zd19wKHBvcnQsdG8sbGVuKQkJaW5zdyhwb3J0LHRvLGxlbikKKyNkZWZpbmUgaW5zbF9wKHBvcnQsdG8sbGVuKQkJaW5zbChwb3J0LHRvLGxlbikKKworLyoKKyAqIGlvcmVtYXAgYW5kIGZyaWVuZHMuCisgKgorICogaW9yZW1hcCB0YWtlcyBhIFBDSSBtZW1vcnkgYWRkcmVzcywgYXMgc3BlY2lmaWVkIGluCisgKiBsaW51eC9Eb2N1bWVudGF0aW9uL0lPLW1hcHBpbmcudHh0LiAgSWYgeW91IHdhbnQgYQorICogcGh5c2ljYWwgYWRkcmVzcywgdXNlIF9faW9yZW1hcCBpbnN0ZWFkLgorICovCitleHRlcm4gdm9pZCAqIF9faW9yZW1hcCh1bnNpZ25lZCBsb25nIG9mZnNldCwgc2l6ZV90IHNpemUsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpOworZXh0ZXJuIHZvaWQgX19pb3VubWFwKHZvaWQgKmFkZHIpOworCisvKgorICogR2VuZXJpYyBpb3JlbWFwIHN1cHBvcnQuCisgKgorICogRGVmaW5lOgorICogIGlvbWVtX3ZhbGlkX2FkZHIob2ZmLHNpemUpCisgKiAgaW9tZW1fdG9fcGh5cyhvZmYpCisgKi8KKyNpZmRlZiBpb21lbV92YWxpZF9hZGRyCisjZGVmaW5lIF9fYXJjaF9pb3JlbWFwKG9mZixzeixub2NhY2hlKQkJCQlcCisgKHsJCQkJCQkJCVwKKwl1bnNpZ25lZCBsb25nIF9vZmYgPSAob2ZmKSwgX3NpemUgPSAoc3opOwkJXAorCXZvaWQgKl9yZXQgPSAodm9pZCAqKTA7CQkJCQlcCisJaWYgKGlvbWVtX3ZhbGlkX2FkZHIoX29mZiwgX3NpemUpKQkJCVwKKwkJX3JldCA9IF9faW9yZW1hcChpb21lbV90b19waHlzKF9vZmYpLF9zaXplLDApOwlcCisJX3JldDsJCQkJCQkJXAorIH0pCisKKyNkZWZpbmUgX19hcmNoX2lvdW5tYXAgX19pb3VubWFwCisjZW5kaWYKKworI2RlZmluZSBpb3JlbWFwKG9mZixzeikJCQlfX2FyY2hfaW9yZW1hcCgob2ZmKSwoc3opLDApCisjZGVmaW5lIGlvcmVtYXBfbm9jYWNoZShvZmYsc3opCQlfX2FyY2hfaW9yZW1hcCgob2ZmKSwoc3opLDEpCisjZGVmaW5lIGlvdW5tYXAoX2FkZHIpCQkJX19hcmNoX2lvdW5tYXAoX2FkZHIpCisKKy8qCisgKiBETUEtY29uc2lzdGVudCBtYXBwaW5nIGZ1bmN0aW9ucy4gIFRoZXNlIGFsbG9jYXRlL2ZyZWUgYSByZWdpb24gb2YKKyAqIHVuY2FjaGVkLCB1bndyaXRlLWJ1ZmZlcmVkIG1hcHBlZCBtZW1vcnkgc3BhY2UgZm9yIHVzZSB3aXRoIERNQQorICogZGV2aWNlcy4gIFRoaXMgaXMgdGhlICJnZW5lcmljIiB2ZXJzaW9uLiAgVGhlIFBDSSBzcGVjaWZpYyB2ZXJzaW9uCisgKiBpcyBpbiBwY2kuaAorICovCitleHRlcm4gdm9pZCAqY29uc2lzdGVudF9hbGxvYyhpbnQgZ2ZwLCBzaXplX3Qgc2l6ZSwgZG1hX2FkZHJfdCAqaGFuZGxlKTsKK2V4dGVybiB2b2lkIGNvbnNpc3RlbnRfZnJlZSh2b2lkICp2YWRkciwgc2l6ZV90IHNpemUsIGRtYV9hZGRyX3QgaGFuZGxlKTsKK2V4dGVybiB2b2lkIGNvbnNpc3RlbnRfc3luYyh2b2lkICp2YWRkciwgc2l6ZV90IHNpemUsIGludCBydyk7CisKKy8qCisgKiBTdHJpbmcgdmVyc2lvbiBvZiBJTyBtZW1vcnkgYWNjZXNzIG9wczoKKyAqLworZXh0ZXJuIHZvaWQgX21lbWNweV9mcm9taW8odm9pZCAqLCB1bnNpZ25lZCBsb25nLCBzaXplX3QpOworZXh0ZXJuIHZvaWQgX21lbWNweV90b2lvKHVuc2lnbmVkIGxvbmcsIGNvbnN0IHZvaWQgKiwgc2l6ZV90KTsKK2V4dGVybiB2b2lkIF9tZW1zZXRfaW8odW5zaWduZWQgbG9uZywgaW50LCBzaXplX3QpOworCitleHRlcm4gdm9pZCBfX3JlYWR3cml0ZV9idWcoY29uc3QgY2hhciAqZm4pOworCisvKgorICogSWYgdGhpcyBhcmNoaXRlY3R1cmUgaGFzIFBDSSBtZW1vcnkgSU8sIHRoZW4gZGVmaW5lIHRoZSByZWFkL3dyaXRlCisgKiBtYWNyb3MuICBUaGVzZSBzaG91bGQgb25seSBiZSB1c2VkIHdpdGggdGhlIGNvb2tpZSBwYXNzZWQgZnJvbQorICogaW9yZW1hcC4KKyAqLworI2lmZGVmIF9fbWVtX3BjaQorCisjZGVmaW5lIHJlYWRiKGMpICh7IHVuc2lnbmVkIGludCBfX3YgPSBfX3Jhd19yZWFkYihfX21lbV9wY2koYykpOyBfX3Y7IH0pCisjZGVmaW5lIHJlYWR3KGMpICh7IHVuc2lnbmVkIGludCBfX3YgPSBsZTE2X3RvX2NwdShfX3Jhd19yZWFkdyhfX21lbV9wY2koYykpKTsgX192OyB9KQorI2RlZmluZSByZWFkbChjKSAoeyB1bnNpZ25lZCBpbnQgX192ID0gbGUzMl90b19jcHUoX19yYXdfcmVhZGwoX19tZW1fcGNpKGMpKSk7IF9fdjsgfSkKKworI2RlZmluZSB3cml0ZWIodixjKQkJX19yYXdfd3JpdGViKHYsX19tZW1fcGNpKGMpKQorI2RlZmluZSB3cml0ZXcodixjKQkJX19yYXdfd3JpdGV3KGNwdV90b19sZTE2KHYpLF9fbWVtX3BjaShjKSkKKyNkZWZpbmUgd3JpdGVsKHYsYykJCV9fcmF3X3dyaXRlbChjcHVfdG9fbGUzMih2KSxfX21lbV9wY2koYykpCisKKyNkZWZpbmUgbWVtc2V0X2lvKGMsdixsKQkJX21lbXNldF9pbyhfX21lbV9wY2koYyksKHYpLChsKSkKKyNkZWZpbmUgbWVtY3B5X2Zyb21pbyhhLGMsbCkJCV9tZW1jcHlfZnJvbWlvKChhKSxfX21lbV9wY2koYyksKGwpKQorI2RlZmluZSBtZW1jcHlfdG9pbyhjLGEsbCkJCV9tZW1jcHlfdG9pbyhfX21lbV9wY2koYyksKGEpLChsKSkKKworI2RlZmluZSBldGhfaW9fY29weV9hbmRfc3VtKHMsYyxsLGIpIFwKKwkJCQlldGhfY29weV9hbmRfc3VtKChzKSxfX21lbV9wY2koYyksKGwpLChiKSkKKworc3RhdGljIGlubGluZSBpbnQKK2NoZWNrX3NpZ25hdHVyZSh1bnNpZ25lZCBsb25nIGlvX2FkZHIsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNpZ25hdHVyZSwKKwkJaW50IGxlbmd0aCkKK3sKKwlpbnQgcmV0dmFsID0gMDsKKwlkbyB7CisJCWlmIChyZWFkYihpb19hZGRyKSAhPSAqc2lnbmF0dXJlKQorCQkJZ290byBvdXQ7CisJCWlvX2FkZHIrKzsKKwkJc2lnbmF0dXJlKys7CisJCWxlbmd0aC0tOworCX0gd2hpbGUgKGxlbmd0aCk7CisJcmV0dmFsID0gMTsKK291dDoKKwlyZXR1cm4gcmV0dmFsOworfQorCisjZWxpZiAhZGVmaW5lZChyZWFkYikKKworI2RlZmluZSByZWFkYihhZGRyKQkJCShfX3JlYWR3cml0ZV9idWcoInJlYWRiIiksMCkKKyNkZWZpbmUgcmVhZHcoYWRkcikJCQkoX19yZWFkd3JpdGVfYnVnKCJyZWFkdyIpLDApCisjZGVmaW5lIHJlYWRsKGFkZHIpCQkJKF9fcmVhZHdyaXRlX2J1ZygicmVhZGwiKSwwKQorI2RlZmluZSB3cml0ZWIodixhZGRyKQkJCV9fcmVhZHdyaXRlX2J1Zygid3JpdGViIikKKyNkZWZpbmUgd3JpdGV3KHYsYWRkcikJCQlfX3JlYWR3cml0ZV9idWcoIndyaXRldyIpCisjZGVmaW5lIHdyaXRlbCh2LGFkZHIpCQkJX19yZWFkd3JpdGVfYnVnKCJ3cml0ZWwiKQorCisjZGVmaW5lIGV0aF9pb19jb3B5X2FuZF9zdW0oYSxiLGMsZCkJX19yZWFkd3JpdGVfYnVnKCJldGhfaW9fY29weV9hbmRfc3VtIikKKworI2RlZmluZSBjaGVja19zaWduYXR1cmUoaW8sc2lnLGxlbikJKDApCisKKyNlbmRpZgkvKiBfX21lbV9wY2kgKi8KKworLyoKKyAqIElmIHRoaXMgYXJjaGl0ZWN0dXJlIGhhcyBJU0EgSU8sIHRoZW4gZGVmaW5lIHRoZSBpc2FfcmVhZC9pc2Ffd3JpdGUKKyAqIG1hY3Jvcy4KKyAqLworI2lmZGVmIF9fbWVtX2lzYQorCisjZGVmaW5lIGlzYV9yZWFkYihhZGRyKQkJCV9fcmF3X3JlYWRiKF9fbWVtX2lzYShhZGRyKSkKKyNkZWZpbmUgaXNhX3JlYWR3KGFkZHIpCQkJX19yYXdfcmVhZHcoX19tZW1faXNhKGFkZHIpKQorI2RlZmluZSBpc2FfcmVhZGwoYWRkcikJCQlfX3Jhd19yZWFkbChfX21lbV9pc2EoYWRkcikpCisjZGVmaW5lIGlzYV93cml0ZWIodmFsLGFkZHIpCQlfX3Jhd193cml0ZWIodmFsLF9fbWVtX2lzYShhZGRyKSkKKyNkZWZpbmUgaXNhX3dyaXRldyh2YWwsYWRkcikJCV9fcmF3X3dyaXRldyh2YWwsX19tZW1faXNhKGFkZHIpKQorI2RlZmluZSBpc2Ffd3JpdGVsKHZhbCxhZGRyKQkJX19yYXdfd3JpdGVsKHZhbCxfX21lbV9pc2EoYWRkcikpCisjZGVmaW5lIGlzYV9tZW1zZXRfaW8oYSxiLGMpCQlfbWVtc2V0X2lvKF9fbWVtX2lzYShhKSwoYiksKGMpKQorI2RlZmluZSBpc2FfbWVtY3B5X2Zyb21pbyhhLGIsYykJX21lbWNweV9mcm9taW8oKGEpLF9fbWVtX2lzYShiKSwoYykpCisjZGVmaW5lIGlzYV9tZW1jcHlfdG9pbyhhLGIsYykJCV9tZW1jcHlfdG9pbyhfX21lbV9pc2EoKGEpKSwoYiksKGMpKQorCisjZGVmaW5lIGlzYV9ldGhfaW9fY29weV9hbmRfc3VtKGEsYixjLGQpIFwKKwkJCQlldGhfY29weV9hbmRfc3VtKChhKSxfX21lbV9pc2EoYiksKGMpLChkKSkKKworc3RhdGljIGlubGluZSBpbnQKK2lzYV9jaGVja19zaWduYXR1cmUodW5zaWduZWQgbG9uZyBpb19hZGRyLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWduYXR1cmUsCisJCSAgICBpbnQgbGVuZ3RoKQoreworCWludCByZXR2YWwgPSAwOworCWRvIHsKKwkJaWYgKGlzYV9yZWFkYihpb19hZGRyKSAhPSAqc2lnbmF0dXJlKQorCQkJZ290byBvdXQ7CisJCWlvX2FkZHIrKzsKKwkJc2lnbmF0dXJlKys7CisJCWxlbmd0aC0tOworCX0gd2hpbGUgKGxlbmd0aCk7CisJcmV0dmFsID0gMTsKK291dDoKKwlyZXR1cm4gcmV0dmFsOworfQorCisjZWxzZQkvKiBfX21lbV9pc2EgKi8KKworI2RlZmluZSBpc2FfcmVhZGIoYWRkcikJCQkoX19yZWFkd3JpdGVfYnVnKCJpc2FfcmVhZGIiKSwwKQorI2RlZmluZSBpc2FfcmVhZHcoYWRkcikJCQkoX19yZWFkd3JpdGVfYnVnKCJpc2FfcmVhZHciKSwwKQorI2RlZmluZSBpc2FfcmVhZGwoYWRkcikJCQkoX19yZWFkd3JpdGVfYnVnKCJpc2FfcmVhZGwiKSwwKQorI2RlZmluZSBpc2Ffd3JpdGViKHZhbCxhZGRyKQkJX19yZWFkd3JpdGVfYnVnKCJpc2Ffd3JpdGViIikKKyNkZWZpbmUgaXNhX3dyaXRldyh2YWwsYWRkcikJCV9fcmVhZHdyaXRlX2J1ZygiaXNhX3dyaXRldyIpCisjZGVmaW5lIGlzYV93cml0ZWwodmFsLGFkZHIpCQlfX3JlYWR3cml0ZV9idWcoImlzYV93cml0ZWwiKQorI2RlZmluZSBpc2FfbWVtc2V0X2lvKGEsYixjKQkJX19yZWFkd3JpdGVfYnVnKCJpc2FfbWVtc2V0X2lvIikKKyNkZWZpbmUgaXNhX21lbWNweV9mcm9taW8oYSxiLGMpCV9fcmVhZHdyaXRlX2J1ZygiaXNhX21lbWNweV9mcm9taW8iKQorI2RlZmluZSBpc2FfbWVtY3B5X3RvaW8oYSxiLGMpCQlfX3JlYWR3cml0ZV9idWcoImlzYV9tZW1jcHlfdG9pbyIpCisKKyNkZWZpbmUgaXNhX2V0aF9pb19jb3B5X2FuZF9zdW0oYSxiLGMsZCkgXAorCQkJCV9fcmVhZHdyaXRlX2J1ZygiaXNhX2V0aF9pb19jb3B5X2FuZF9zdW0iKQorCisjZGVmaW5lIGlzYV9jaGVja19zaWduYXR1cmUoaW8sc2lnLGxlbikJKDApCisKKyNlbmRpZgkvKiBfX21lbV9pc2EgKi8KKyNlbmRpZgkvKiBfX0tFUk5FTF9fICovCisjZW5kaWYJLyogX19BU01fQVJNX0lPX0ggKi8KZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vbWFjaC10eXBlcy5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS9tYWNoLXR5cGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQxMWEzNwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vbWFjaC10eXBlcy5oCkBAIC0wLDAgKzEsOTQ0NCBAQAorLyoKKyAqIFRoaXMgd2FzIGF1dG9tYWdpY2FsbHkgZ2VuZXJhdGVkIGZyb20gYXJjaC9hcm0vdG9vbHMvbWFjaC10eXBlcyEKKyAqIERvIE5PVCBlZGl0CisgKi8KKworI2lmbmRlZiBfX0FTTV9BUk1fTUFDSF9UWVBFX0gKKyNkZWZpbmUgX19BU01fQVJNX01BQ0hfVFlQRV9ICisKKyNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4KKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKy8qIFRoZSB0eXBlIG9mIG1hY2hpbmUgd2UncmUgcnVubmluZyBvbiAqLworZXh0ZXJuIHVuc2lnbmVkIGludCBfX21hY2hpbmVfYXJjaF90eXBlOworI2VuZGlmCisKKy8qIHNlZSBhcmNoL2FybS9rZXJuZWwvYXJjaC5jIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoZXNlICovCisjZGVmaW5lIE1BQ0hfVFlQRV9FQlNBMTEwICAgICAgICAgICAgICAwCisjZGVmaW5lIE1BQ0hfVFlQRV9SSVNDUEMgICAgICAgICAgICAgICAxCisjZGVmaW5lIE1BQ0hfVFlQRV9ORVhVU1BDSSAgICAgICAgICAgICAzCisjZGVmaW5lIE1BQ0hfVFlQRV9FQlNBMjg1ICAgICAgICAgICAgICA0CisjZGVmaW5lIE1BQ0hfVFlQRV9ORVRXSU5ERVIgICAgICAgICAgICA1CisjZGVmaW5lIE1BQ0hfVFlQRV9DQVRTICAgICAgICAgICAgICAgICA2CisjZGVmaW5lIE1BQ0hfVFlQRV9UQk9YICAgICAgICAgICAgICAgICA3CisjZGVmaW5lIE1BQ0hfVFlQRV9DTzI4NSAgICAgICAgICAgICAgICA4CisjZGVmaW5lIE1BQ0hfVFlQRV9DTFBTNzExMCAgICAgICAgICAgICA5CisjZGVmaW5lIE1BQ0hfVFlQRV9BUkNISU1FREVTICAgICAgICAgICAxMAorI2RlZmluZSBNQUNIX1RZUEVfQTVLICAgICAgICAgICAgICAgICAgMTEKKyNkZWZpbmUgTUFDSF9UWVBFX0VUT0lMRSAgICAgICAgICAgICAgIDEyCisjZGVmaW5lIE1BQ0hfVFlQRV9MQUNJRV9OQVMgICAgICAgICAgICAxMworI2RlZmluZSBNQUNIX1RZUEVfQ0xQUzc1MDAgICAgICAgICAgICAgMTQKKyNkZWZpbmUgTUFDSF9UWVBFX1NIQVJLICAgICAgICAgICAgICAgIDE1CisjZGVmaW5lIE1BQ0hfVFlQRV9CUlVUVVMgICAgICAgICAgICAgICAxNgorI2RlZmluZSBNQUNIX1RZUEVfUEVSU09OQUxfU0VSVkVSICAgICAgMTcKKyNkZWZpbmUgTUFDSF9UWVBFX0lUU1kgICAgICAgICAgICAgICAgIDE4CisjZGVmaW5lIE1BQ0hfVFlQRV9MNzIwMCAgICAgICAgICAgICAgICAxOQorI2RlZmluZSBNQUNIX1RZUEVfUExFQiAgICAgICAgICAgICAgICAgMjAKKyNkZWZpbmUgTUFDSF9UWVBFX0lOVEVHUkFUT1IgICAgICAgICAgIDIxCisjZGVmaW5lIE1BQ0hfVFlQRV9IMzYwMCAgICAgICAgICAgICAgICAyMgorI2RlZmluZSBNQUNIX1RZUEVfSVhQMTIwMCAgICAgICAgICAgICAgMjMKKyNkZWZpbmUgTUFDSF9UWVBFX1A3MjBUICAgICAgICAgICAgICAgIDI0CisjZGVmaW5lIE1BQ0hfVFlQRV9BU1NBQkVUICAgICAgICAgICAgICAyNQorI2RlZmluZSBNQUNIX1RZUEVfVklDVE9SICAgICAgICAgICAgICAgMjYKKyNkZWZpbmUgTUFDSF9UWVBFX0xBUlQgICAgICAgICAgICAgICAgIDI3CisjZGVmaW5lIE1BQ0hfVFlQRV9SQU5HRVIgICAgICAgICAgICAgICAyOAorI2RlZmluZSBNQUNIX1RZUEVfR1JBUEhJQ1NDTElFTlQgICAgICAgMjkKKyNkZWZpbmUgTUFDSF9UWVBFX1hQODYwICAgICAgICAgICAgICAgIDMwCisjZGVmaW5lIE1BQ0hfVFlQRV9DRVJGICAgICAgICAgICAgICAgICAzMQorI2RlZmluZSBNQUNIX1RZUEVfTkFOT0VOR0lORSAgICAgICAgICAgMzIKKyNkZWZpbmUgTUFDSF9UWVBFX0ZQSUMgICAgICAgICAgICAgICAgIDMzCisjZGVmaW5lIE1BQ0hfVFlQRV9FWFRFTkVYMSAgICAgICAgICAgICAzNAorI2RlZmluZSBNQUNIX1RZUEVfU0hFUk1BTiAgICAgICAgICAgICAgMzUKKyNkZWZpbmUgTUFDSF9UWVBFX0FDQ0VMRU5UX1NBICAgICAgICAgIDM2CisjZGVmaW5lIE1BQ0hfVFlQRV9BQ0NFTEVOVF9MNzIwMCAgICAgICAzNworI2RlZmluZSBNQUNIX1RZUEVfTkVUUE9SVCAgICAgICAgICAgICAgMzgKKyNkZWZpbmUgTUFDSF9UWVBFX1BBTkdPTElOICAgICAgICAgICAgIDM5CisjZGVmaW5lIE1BQ0hfVFlQRV9ZT1BZICAgICAgICAgICAgICAgICA0MAorI2RlZmluZSBNQUNIX1RZUEVfQ09PTElER0UgICAgICAgICAgICAgNDEKKyNkZWZpbmUgTUFDSF9UWVBFX0hVV19XRUJQQU5FTCAgICAgICAgIDQyCisjZGVmaW5lIE1BQ0hfVFlQRV9TUE9UTUUgICAgICAgICAgICAgICA0MworI2RlZmluZSBNQUNIX1RZUEVfRlJFRUJJUkQgICAgICAgICAgICAgNDQKKyNkZWZpbmUgTUFDSF9UWVBFX1RJOTI1ICAgICAgICAgICAgICAgIDQ1CisjZGVmaW5lIE1BQ0hfVFlQRV9SSVNDU1RBVElPTiAgICAgICAgICA0NgorI2RlZmluZSBNQUNIX1RZUEVfQ0FWWSAgICAgICAgICAgICAgICAgNDcKKyNkZWZpbmUgTUFDSF9UWVBFX0pPUk5BREE3MjAgICAgICAgICAgIDQ4CisjZGVmaW5lIE1BQ0hfVFlQRV9PTU5JTUVURVIgICAgICAgICAgICA0OQorI2RlZmluZSBNQUNIX1RZUEVfRURCNzIxMSAgICAgICAgICAgICAgNTAKKyNkZWZpbmUgTUFDSF9UWVBFX0NJVFlHTyAgICAgICAgICAgICAgIDUxCisjZGVmaW5lIE1BQ0hfVFlQRV9QRlMxNjggICAgICAgICAgICAgICA1MgorI2RlZmluZSBNQUNIX1RZUEVfU1BPVCAgICAgICAgICAgICAgICAgNTMKKyNkZWZpbmUgTUFDSF9UWVBFX0ZMRVhBTkVUICAgICAgICAgICAgIDU0CisjZGVmaW5lIE1BQ0hfVFlQRV9XRUJQQUwgICAgICAgICAgICAgICA1NQorI2RlZmluZSBNQUNIX1RZUEVfTElOUERBICAgICAgICAgICAgICAgNTYKKyNkZWZpbmUgTUFDSF9UWVBFX0FOQUtJTiAgICAgICAgICAgICAgIDU3CisjZGVmaW5lIE1BQ0hfVFlQRV9NVkkgICAgICAgICAgICAgICAgICA1OAorI2RlZmluZSBNQUNIX1RZUEVfSlVQSVRFUiAgICAgICAgICAgICAgNTkKKyNkZWZpbmUgTUFDSF9UWVBFX1BTSU9OVyAgICAgICAgICAgICAgIDYwCisjZGVmaW5lIE1BQ0hfVFlQRV9BTE4gICAgICAgICAgICAgICAgICA2MQorI2RlZmluZSBNQUNIX1RZUEVfQ0FNRUxPVCAgICAgICAgICAgICAgNjIKKyNkZWZpbmUgTUFDSF9UWVBFX0dEUzIyMDAgICAgICAgICAgICAgIDYzCisjZGVmaW5lIE1BQ0hfVFlQRV9QU0lPTl9TRVJJRVM3ICAgICAgICA2NAorI2RlZmluZSBNQUNIX1RZUEVfWEZJTEUgICAgICAgICAgICAgICAgNjUKKyNkZWZpbmUgTUFDSF9UWVBFX0FDQ0VMRU5UX0VQOTMxMiAgICAgIDY2CisjZGVmaW5lIE1BQ0hfVFlQRV9JQzIwMCAgICAgICAgICAgICAgICA2NworI2RlZmluZSBNQUNIX1RZUEVfQ1JFRElUTEFSVCAgICAgICAgICAgNjgKKyNkZWZpbmUgTUFDSF9UWVBFX0hUTSAgICAgICAgICAgICAgICAgIDY5CisjZGVmaW5lIE1BQ0hfVFlQRV9JUTgwMzEwICAgICAgICAgICAgICA3MAorI2RlZmluZSBNQUNIX1RZUEVfRlJFRUJPVCAgICAgICAgICAgICAgNzEKKyNkZWZpbmUgTUFDSF9UWVBFX0VOVEVMICAgICAgICAgICAgICAgIDcyCisjZGVmaW5lIE1BQ0hfVFlQRV9FTlAzNTEwICAgICAgICAgICAgICA3MworI2RlZmluZSBNQUNIX1RZUEVfVFJJWkVQUyAgICAgICAgICAgICAgNzQKKyNkZWZpbmUgTUFDSF9UWVBFX05FU0EgICAgICAgICAgICAgICAgIDc1CisjZGVmaW5lIE1BQ0hfVFlQRV9WRU5VUyAgICAgICAgICAgICAgICA3NgorI2RlZmluZSBNQUNIX1RZUEVfVEFSRElTICAgICAgICAgICAgICAgNzcKKyNkZWZpbmUgTUFDSF9UWVBFX01FUkNVUlkgICAgICAgICAgICAgIDc4CisjZGVmaW5lIE1BQ0hfVFlQRV9FTVBFRyAgICAgICAgICAgICAgICA3OQorI2RlZmluZSBNQUNIX1RZUEVfSTgwMjAwRkNDICAgICAgICAgICAgODAKKyNkZWZpbmUgTUFDSF9UWVBFX0lUVF9DUEIgICAgICAgICAgICAgIDgxCisjZGVmaW5lIE1BQ0hfVFlQRV9TVkMgICAgICAgICAgICAgICAgICA4MgorI2RlZmluZSBNQUNIX1RZUEVfQUxQSEEyICAgICAgICAgICAgICAgODQKKyNkZWZpbmUgTUFDSF9UWVBFX0FMUEhBMSAgICAgICAgICAgICAgIDg1CisjZGVmaW5lIE1BQ0hfVFlQRV9ORVRBUk0gICAgICAgICAgICAgICA4NgorI2RlZmluZSBNQUNIX1RZUEVfU0lNUEFEICAgICAgICAgICAgICAgODcKKyNkZWZpbmUgTUFDSF9UWVBFX1BEQTEgICAgICAgICAgICAgICAgIDg4CisjZGVmaW5lIE1BQ0hfVFlQRV9MVUJCT0NLICAgICAgICAgICAgICA4OQorI2RlZmluZSBNQUNIX1RZUEVfQU5JS08gICAgICAgICAgICAgICAgOTAKKyNkZWZpbmUgTUFDSF9UWVBFX0NMRVA3MjEyICAgICAgICAgICAgIDkxCisjZGVmaW5lIE1BQ0hfVFlQRV9DUzg5NzEyICAgICAgICAgICAgICA5MgorI2RlZmluZSBNQUNIX1RZUEVfV0VBUkFSTSAgICAgICAgICAgICAgOTMKKyNkZWZpbmUgTUFDSF9UWVBFX1BPU1NJT19QWCAgICAgICAgICAgIDk0CisjZGVmaW5lIE1BQ0hfVFlQRV9TSURFQVJNICAgICAgICAgICAgICA5NQorI2RlZmluZSBNQUNIX1RZUEVfU1RPUksgICAgICAgICAgICAgICAgOTYKKyNkZWZpbmUgTUFDSF9UWVBFX1NIQU5OT04gICAgICAgICAgICAgIDk3CisjZGVmaW5lIE1BQ0hfVFlQRV9BQ0UgICAgICAgICAgICAgICAgICA5OAorI2RlZmluZSBNQUNIX1RZUEVfQkFMTFlBUk0gICAgICAgICAgICAgOTkKKyNkZWZpbmUgTUFDSF9UWVBFX1NJTVBVVEVSICAgICAgICAgICAgIDEwMAorI2RlZmluZSBNQUNIX1RZUEVfTkVYVEVSTSAgICAgICAgICAgICAgMTAxCisjZGVmaW5lIE1BQ0hfVFlQRV9TQTExMDBfRUxGICAgICAgICAgICAxMDIKKyNkZWZpbmUgTUFDSF9UWVBFX0dBVE9SICAgICAgICAgICAgICAgIDEwMworI2RlZmluZSBNQUNIX1RZUEVfR1JBTklURSAgICAgICAgICAgICAgMTA0CisjZGVmaW5lIE1BQ0hfVFlQRV9DT05TVVMgICAgICAgICAgICAgICAxMDUKKyNkZWZpbmUgTUFDSF9UWVBFX0FBRUQyMDAwICAgICAgICAgICAgIDEwNgorI2RlZmluZSBNQUNIX1RZUEVfQ0RCODk3MTIgICAgICAgICAgICAgMTA3CisjZGVmaW5lIE1BQ0hfVFlQRV9HUkFQSElDU01BU1RFUiAgICAgICAxMDgKKyNkZWZpbmUgTUFDSF9UWVBFX0FEU0JJVFNZICAgICAgICAgICAgIDEwOQorI2RlZmluZSBNQUNIX1RZUEVfUFhBX0lEUCAgICAgICAgICAgICAgMTEwCisjZGVmaW5lIE1BQ0hfVFlQRV9QTENFICAgICAgICAgICAgICAgICAxMTEKKyNkZWZpbmUgTUFDSF9UWVBFX1BUX1NZU1RFTTMgICAgICAgICAgIDExMgorI2RlZmluZSBNQUNIX1RZUEVfTUVEQUxCICAgICAgICAgICAgICAgMTEzCisjZGVmaW5lIE1BQ0hfVFlQRV9FQUdMRSAgICAgICAgICAgICAgICAxMTQKKyNkZWZpbmUgTUFDSF9UWVBFX0RTQzIxICAgICAgICAgICAgICAgIDExNQorI2RlZmluZSBNQUNIX1RZUEVfRFNDMjQgICAgICAgICAgICAgICAgMTE2CisjZGVmaW5lIE1BQ0hfVFlQRV9USTU0NzIgICAgICAgICAgICAgICAxMTcKKyNkZWZpbmUgTUFDSF9UWVBFX0FVVENQVTEyICAgICAgICAgICAgIDExOAorI2RlZmluZSBNQUNIX1RZUEVfVUVOR0lORSAgICAgICAgICAgICAgMTE5CisjZGVmaW5lIE1BQ0hfVFlQRV9CTFVFU1RFTSAgICAgICAgICAgICAxMjAKKyNkZWZpbmUgTUFDSF9UWVBFX1hJTkdVOCAgICAgICAgICAgICAgIDEyMQorI2RlZmluZSBNQUNIX1RZUEVfQlVTSFNUQiAgICAgICAgICAgICAgMTIyCisjZGVmaW5lIE1BQ0hfVFlQRV9FUFNJTE9OMSAgICAgICAgICAgICAxMjMKKyNkZWZpbmUgTUFDSF9UWVBFX0JBTExPT04gICAgICAgICAgICAgIDEyNAorI2RlZmluZSBNQUNIX1RZUEVfUFVQUFkgICAgICAgICAgICAgICAgMTI1CisjZGVmaW5lIE1BQ0hfVFlQRV9FTFJPWSAgICAgICAgICAgICAgICAxMjYKKyNkZWZpbmUgTUFDSF9UWVBFX0dNUzcyMCAgICAgICAgICAgICAgIDEyNworI2RlZmluZSBNQUNIX1RZUEVfUzI0WCAgICAgICAgICAgICAgICAgMTI4CisjZGVmaW5lIE1BQ0hfVFlQRV9KVEVMX0NMRVA3MzEyICAgICAgICAxMjkKKyNkZWZpbmUgTUFDSF9UWVBFX0NYODIxWFggICAgICAgICAgICAgIDEzMAorI2RlZmluZSBNQUNIX1RZUEVfRURCNzMxMiAgICAgICAgICAgICAgMTMxCisjZGVmaW5lIE1BQ0hfVFlQRV9CU0ExMTEwICAgICAgICAgICAgICAxMzIKKyNkZWZpbmUgTUFDSF9UWVBFX1BPV0VSUElOICAgICAgICAgICAgIDEzMworI2RlZmluZSBNQUNIX1RZUEVfT1BFTkFSTSAgICAgICAgICAgICAgMTM0CisjZGVmaW5lIE1BQ0hfVFlQRV9XSElURUNIQVBFTCAgICAgICAgICAxMzUKKyNkZWZpbmUgTUFDSF9UWVBFX0gzMTAwICAgICAgICAgICAgICAgIDEzNgorI2RlZmluZSBNQUNIX1RZUEVfSDM4MDAgICAgICAgICAgICAgICAgMTM3CisjZGVmaW5lIE1BQ0hfVFlQRV9CTFVFX1YxICAgICAgICAgICAgICAxMzgKKyNkZWZpbmUgTUFDSF9UWVBFX1BYQV9DRVJGICAgICAgICAgICAgIDEzOQorI2RlZmluZSBNQUNIX1RZUEVfQVJNN1RFVkIgICAgICAgICAgICAgMTQwCisjZGVmaW5lIE1BQ0hfVFlQRV9ENzQwMCAgICAgICAgICAgICAgICAxNDEKKyNkZWZpbmUgTUFDSF9UWVBFX1BJUkFOSEEgICAgICAgICAgICAgIDE0MgorI2RlZmluZSBNQUNIX1RZUEVfU0JDQU1FTE9UICAgICAgICAgICAgMTQzCisjZGVmaW5lIE1BQ0hfVFlQRV9LSU5HUyAgICAgICAgICAgICAgICAxNDQKKyNkZWZpbmUgTUFDSF9UWVBFX1NNREsyNDAwICAgICAgICAgICAgIDE0NQorI2RlZmluZSBNQUNIX1RZUEVfQ09MTElFICAgICAgICAgICAgICAgMTQ2CisjZGVmaW5lIE1BQ0hfVFlQRV9JRFIgICAgICAgICAgICAgICAgICAxNDcKKyNkZWZpbmUgTUFDSF9UWVBFX0JBREdFNCAgICAgICAgICAgICAgIDE0OAorI2RlZmluZSBNQUNIX1RZUEVfV0VCTkVUICAgICAgICAgICAgICAgMTQ5CisjZGVmaW5lIE1BQ0hfVFlQRV9ENzMwMCAgICAgICAgICAgICAgICAxNTAKKyNkZWZpbmUgTUFDSF9UWVBFX0NFUCAgICAgICAgICAgICAgICAgIDE1MQorI2RlZmluZSBNQUNIX1RZUEVfRk9SVFVORVQgICAgICAgICAgICAgMTUyCisjZGVmaW5lIE1BQ0hfVFlQRV9WQzU0N1ggICAgICAgICAgICAgICAxNTMKKyNkZWZpbmUgTUFDSF9UWVBFX0ZJTEVXQUxLRVIgICAgICAgICAgIDE1NAorI2RlZmluZSBNQUNIX1RZUEVfTkVUR0FURVdBWSAgICAgICAgICAgMTU1CisjZGVmaW5lIE1BQ0hfVFlQRV9TWU1CT0wyODAwICAgICAgICAgICAxNTYKKyNkZWZpbmUgTUFDSF9UWVBFX1NVTlMgICAgICAgICAgICAgICAgIDE1NworI2RlZmluZSBNQUNIX1RZUEVfRlJPRE8gICAgICAgICAgICAgICAgMTU4CisjZGVmaW5lIE1BQ0hfVFlQRV9NQUNIX1RZVEVfTVMzMDEgICAgICAxNTkKKyNkZWZpbmUgTUFDSF9UWVBFX01YMUFEUyAgICAgICAgICAgICAgIDE2MAorI2RlZmluZSBNQUNIX1RZUEVfSDcyMDEgICAgICAgICAgICAgICAgMTYxCisjZGVmaW5lIE1BQ0hfVFlQRV9INzIwMiAgICAgICAgICAgICAgICAxNjIKKyNkZWZpbmUgTUFDSF9UWVBFX0FNSUNPICAgICAgICAgICAgICAgIDE2MworI2RlZmluZSBNQUNIX1RZUEVfSUFNICAgICAgICAgICAgICAgICAgMTY0CisjZGVmaW5lIE1BQ0hfVFlQRV9UVDUzMCAgICAgICAgICAgICAgICAxNjUKKyNkZWZpbmUgTUFDSF9UWVBFX1NBTTI0MDAgICAgICAgICAgICAgIDE2NgorI2RlZmluZSBNQUNIX1RZUEVfSk9STkFEQTU2WCAgICAgICAgICAgMTY3CisjZGVmaW5lIE1BQ0hfVFlQRV9BQ1RJVkUgICAgICAgICAgICAgICAxNjgKKyNkZWZpbmUgTUFDSF9UWVBFX0lRODAzMjEgICAgICAgICAgICAgIDE2OQorI2RlZmluZSBNQUNIX1RZUEVfV0lEICAgICAgICAgICAgICAgICAgMTcwCisjZGVmaW5lIE1BQ0hfVFlQRV9TQUJJTkFMICAgICAgICAgICAgICAxNzEKKyNkZWZpbmUgTUFDSF9UWVBFX0lYUDQyNV9NQVRBQ1VNQkUgICAgIDE3MgorI2RlZmluZSBNQUNIX1RZUEVfTUlOSVBSSU5UICAgICAgICAgICAgMTczCisjZGVmaW5lIE1BQ0hfVFlQRV9BRE01MTBYICAgICAgICAgICAgICAxNzQKKyNkZWZpbmUgTUFDSF9UWVBFX1NWUzIwMCAgICAgICAgICAgICAgIDE3NQorI2RlZmluZSBNQUNIX1RZUEVfQVRHX1RDVSAgICAgICAgICAgICAgMTc2CisjZGVmaW5lIE1BQ0hfVFlQRV9KT1JOQURBODIwICAgICAgICAgICAxNzcKKyNkZWZpbmUgTUFDSF9UWVBFX1MzQzQ0QjAgICAgICAgICAgICAgIDE3OAorI2RlZmluZSBNQUNIX1RZUEVfTUFSR0lTMiAgICAgICAgICAgICAgMTc5CisjZGVmaW5lIE1BQ0hfVFlQRV9LUzg2OTUgICAgICAgICAgICAgICAxODAKKyNkZWZpbmUgTUFDSF9UWVBFX0JSSCAgICAgICAgICAgICAgICAgIDE4MQorI2RlZmluZSBNQUNIX1RZUEVfUzNDMjQxMCAgICAgICAgICAgICAgMTgyCisjZGVmaW5lIE1BQ0hfVFlQRV9QT1NTSU9fUFgzMCAgICAgICAgICAxODMKKyNkZWZpbmUgTUFDSF9UWVBFX1MzQzI4MDAgICAgICAgICAgICAgIDE4NAorI2RlZmluZSBNQUNIX1RZUEVfRkxFRVRXT09EICAgICAgICAgICAgMTg1CisjZGVmaW5lIE1BQ0hfVFlQRV9PTUFIQSAgICAgICAgICAgICAgICAxODYKKyNkZWZpbmUgTUFDSF9UWVBFX1RBNyAgICAgICAgICAgICAgICAgIDE4NworI2RlZmluZSBNQUNIX1RZUEVfTk9WQSAgICAgICAgICAgICAgICAgMTg4CisjZGVmaW5lIE1BQ0hfVFlQRV9ITUsgICAgICAgICAgICAgICAgICAxODkKKyNkZWZpbmUgTUFDSF9UWVBFX0tBUk8gICAgICAgICAgICAgICAgIDE5MAorI2RlZmluZSBNQUNIX1RZUEVfRkVTVEVSICAgICAgICAgICAgICAgMTkxCisjZGVmaW5lIE1BQ0hfVFlQRV9HUEkgICAgICAgICAgICAgICAgICAxOTIKKyNkZWZpbmUgTUFDSF9UWVBFX1NNREsyNDEwICAgICAgICAgICAgIDE5MworI2RlZmluZSBNQUNIX1RZUEVfSTUxOSAgICAgICAgICAgICAgICAgMTk0CisjZGVmaW5lIE1BQ0hfVFlQRV9ORVhJTyAgICAgICAgICAgICAgICAxOTUKKyNkZWZpbmUgTUFDSF9UWVBFX0JJVEJPWCAgICAgICAgICAgICAgIDE5NgorI2RlZmluZSBNQUNIX1RZUEVfRzIwMCAgICAgICAgICAgICAgICAgMTk3CisjZGVmaW5lIE1BQ0hfVFlQRV9HSUxMICAgICAgICAgICAgICAgICAxOTgKKyNkZWZpbmUgTUFDSF9UWVBFX1BYQV9NRVJDVVJZICAgICAgICAgIDE5OQorI2RlZmluZSBNQUNIX1RZUEVfQ0VJVkEgICAgICAgICAgICAgICAgMjAwCisjZGVmaW5lIE1BQ0hfVFlQRV9GUkVUICAgICAgICAgICAgICAgICAyMDEKKyNkZWZpbmUgTUFDSF9UWVBFX0VNQUlMUEhPTkUgICAgICAgICAgIDIwMgorI2RlZmluZSBNQUNIX1RZUEVfSDM5MDAgICAgICAgICAgICAgICAgMjAzCisjZGVmaW5lIE1BQ0hfVFlQRV9QWEExICAgICAgICAgICAgICAgICAyMDQKKyNkZWZpbmUgTUFDSF9UWVBFX0tPQU4zNjkgICAgICAgICAgICAgIDIwNQorI2RlZmluZSBNQUNIX1RZUEVfQ09HRU5UICAgICAgICAgICAgICAgMjA2CisjZGVmaW5lIE1BQ0hfVFlQRV9FU0xfU0lNUFVURVIgICAgICAgICAyMDcKKyNkZWZpbmUgTUFDSF9UWVBFX0VTTF9TSU1QVVRFUl9DTFIgICAgIDIwOAorI2RlZmluZSBNQUNIX1RZUEVfRVNMX1NJTVBVVEVSX0JXICAgICAgMjA5CisjZGVmaW5lIE1BQ0hfVFlQRV9ISFBfQ1JBRExFICAgICAgICAgICAyMTAKKyNkZWZpbmUgTUFDSF9UWVBFX0hFNTAwICAgICAgICAgICAgICAgIDIxMQorI2RlZmluZSBNQUNIX1RZUEVfSU5IQU5ERUxGMiAgICAgICAgICAgMjEyCisjZGVmaW5lIE1BQ0hfVFlQRV9JTkhBTkRGVElQICAgICAgICAgICAyMTMKKyNkZWZpbmUgTUFDSF9UWVBFX0ROUDExMTAgICAgICAgICAgICAgIDIxNAorI2RlZmluZSBNQUNIX1RZUEVfUE5QMTExMCAgICAgICAgICAgICAgMjE1CisjZGVmaW5lIE1BQ0hfVFlQRV9DU0IyMjYgICAgICAgICAgICAgICAyMTYKKyNkZWZpbmUgTUFDSF9UWVBFX0FSTk9MRCAgICAgICAgICAgICAgIDIxNworI2RlZmluZSBNQUNIX1RZUEVfVk9JQ0VCTFVFICAgICAgICAgICAgMjE4CisjZGVmaW5lIE1BQ0hfVFlQRV9KWjgwMjggICAgICAgICAgICAgICAyMTkKKyNkZWZpbmUgTUFDSF9UWVBFX0g1NDAwICAgICAgICAgICAgICAgIDIyMAorI2RlZmluZSBNQUNIX1RZUEVfRk9SVEUgICAgICAgICAgICAgICAgMjIxCisjZGVmaW5lIE1BQ0hfVFlQRV9BQ0FNICAgICAgICAgICAgICAgICAyMjIKKyNkZWZpbmUgTUFDSF9UWVBFX0FCT1ggICAgICAgICAgICAgICAgIDIyMworI2RlZmluZSBNQUNIX1RZUEVfQVRNRUwgICAgICAgICAgICAgICAgMjI0CisjZGVmaW5lIE1BQ0hfVFlQRV9TSVRTQU5HICAgICAgICAgICAgICAyMjUKKyNkZWZpbmUgTUFDSF9UWVBFX0NQVTExMTBMQ0RORVQgICAgICAgIDIyNgorI2RlZmluZSBNQUNIX1RZUEVfTVBMX1ZDTUE5ICAgICAgICAgICAgMjI3CisjZGVmaW5lIE1BQ0hfVFlQRV9PUFVTX0ExICAgICAgICAgICAgICAyMjgKKyNkZWZpbmUgTUFDSF9UWVBFX0RBWVRPTkEgICAgICAgICAgICAgIDIyOQorI2RlZmluZSBNQUNIX1RZUEVfS0lMTEJFQVIgICAgICAgICAgICAgMjMwCisjZGVmaW5lIE1BQ0hfVFlQRV9ZT0hPICAgICAgICAgICAgICAgICAyMzEKKyNkZWZpbmUgTUFDSF9UWVBFX0pBU1BFUiAgICAgICAgICAgICAgIDIzMgorI2RlZmluZSBNQUNIX1RZUEVfRFNDMjUgICAgICAgICAgICAgICAgMjMzCisjZGVmaW5lIE1BQ0hfVFlQRV9PTUFQX0lOTk9WQVRPUiAgICAgICAyMzQKKyNkZWZpbmUgTUFDSF9UWVBFX1JBTVNFUyAgICAgICAgICAgICAgIDIzNQorI2RlZmluZSBNQUNIX1RZUEVfUzI4WCAgICAgICAgICAgICAgICAgMjM2CisjZGVmaW5lIE1BQ0hfVFlQRV9NUE9SVDMgICAgICAgICAgICAgICAyMzcKKyNkZWZpbmUgTUFDSF9UWVBFX1BYQV9FQUdMRTI1MCAgICAgICAgIDIzOAorI2RlZmluZSBNQUNIX1RZUEVfUERCICAgICAgICAgICAgICAgICAgMjM5CisjZGVmaW5lIE1BQ0hfVFlQRV9CTFVFXzJHICAgICAgICAgICAgICAyNDAKKyNkZWZpbmUgTUFDSF9UWVBFX0JMVUVBUkNIICAgICAgICAgICAgIDI0MQorI2RlZmluZSBNQUNIX1RZUEVfSVhEUDI0MDAgICAgICAgICAgICAgMjQyCisjZGVmaW5lIE1BQ0hfVFlQRV9JWERQMjgwMCAgICAgICAgICAgICAyNDMKKyNkZWZpbmUgTUFDSF9UWVBFX0VYUExPUkVSICAgICAgICAgICAgIDI0NAorI2RlZmluZSBNQUNIX1RZUEVfSVhEUDQyNSAgICAgICAgICAgICAgMjQ1CisjZGVmaW5lIE1BQ0hfVFlQRV9DSElNUCAgICAgICAgICAgICAgICAyNDYKKyNkZWZpbmUgTUFDSF9UWVBFX1NUT1JLX05FU1QgICAgICAgICAgIDI0NworI2RlZmluZSBNQUNIX1RZUEVfU1RPUktfRUdHICAgICAgICAgICAgMjQ4CisjZGVmaW5lIE1BQ0hfVFlQRV9XSVNNTyAgICAgICAgICAgICAgICAyNDkKKyNkZWZpbmUgTUFDSF9UWVBFX0VaTElOWCAgICAgICAgICAgICAgIDI1MAorI2RlZmluZSBNQUNIX1RZUEVfQVQ5MVJNOTIwMCAgICAgICAgICAgMjUxCisjZGVmaW5lIE1BQ0hfVFlQRV9PUklPTiAgICAgICAgICAgICAgICAyNTIKKyNkZWZpbmUgTUFDSF9UWVBFX05FUFRVTkUgICAgICAgICAgICAgIDI1MworI2RlZmluZSBNQUNIX1RZUEVfSEFDS0tJVCAgICAgICAgICAgICAgMjU0CisjZGVmaW5lIE1BQ0hfVFlQRV9QWEFfV0lOUzMwICAgICAgICAgICAyNTUKKyNkZWZpbmUgTUFDSF9UWVBFX0xBVklOTkEgICAgICAgICAgICAgIDI1NgorI2RlZmluZSBNQUNIX1RZUEVfUFhBX1VFTkdJTkUgICAgICAgICAgMjU3CisjZGVmaW5lIE1BQ0hfVFlQRV9JTk5PS09NICAgICAgICAgICAgICAyNTgKKyNkZWZpbmUgTUFDSF9UWVBFX0JNUyAgICAgICAgICAgICAgICAgIDI1OQorI2RlZmluZSBNQUNIX1RZUEVfSVhDRFAxMTAwICAgICAgICAgICAgMjYwCisjZGVmaW5lIE1BQ0hfVFlQRV9QUlBNQzExMDAgICAgICAgICAgICAyNjEKKyNkZWZpbmUgTUFDSF9UWVBFX0FUOTFSTTkyMDBESyAgICAgICAgIDI2MgorI2RlZmluZSBNQUNIX1RZUEVfQVJNU1RJQ0sgICAgICAgICAgICAgMjYzCisjZGVmaW5lIE1BQ0hfVFlQRV9BUk1PTklFICAgICAgICAgICAgICAyNjQKKyNkZWZpbmUgTUFDSF9UWVBFX01QT1JUMSAgICAgICAgICAgICAgIDI2NQorI2RlZmluZSBNQUNIX1RZUEVfUzNDNTQxMCAgICAgICAgICAgICAgMjY2CisjZGVmaW5lIE1BQ0hfVFlQRV9aQ1AzMjBBICAgICAgICAgICAgICAyNjcKKyNkZWZpbmUgTUFDSF9UWVBFX0lfQk9YICAgICAgICAgICAgICAgIDI2OAorI2RlZmluZSBNQUNIX1RZUEVfU1RMQzE1MDIgICAgICAgICAgICAgMjY5CisjZGVmaW5lIE1BQ0hfVFlQRV9TSVJFTiAgICAgICAgICAgICAgICAyNzAKKyNkZWZpbmUgTUFDSF9UWVBFX0dSRUVOTEFLRSAgICAgICAgICAgIDI3MQorI2RlZmluZSBNQUNIX1RZUEVfQVJHVVMgICAgICAgICAgICAgICAgMjcyCisjZGVmaW5lIE1BQ0hfVFlQRV9DT01CQURHRSAgICAgICAgICAgICAyNzMKKyNkZWZpbmUgTUFDSF9UWVBFX1JPS0VQWEEgICAgICAgICAgICAgIDI3NAorI2RlZmluZSBNQUNIX1RZUEVfQ0lOVEVHUkFUT1IgICAgICAgICAgMjc1CisjZGVmaW5lIE1BQ0hfVFlQRV9HVUlERUEwNyAgICAgICAgICAgICAyNzYKKyNkZWZpbmUgTUFDSF9UWVBFX1RBVDI1NyAgICAgICAgICAgICAgIDI3NworI2RlZmluZSBNQUNIX1RZUEVfSUdQMjQyNSAgICAgICAgICAgICAgMjc4CisjZGVmaW5lIE1BQ0hfVFlQRV9CTFVFR1JBTU1BICAgICAgICAgICAyNzkKKyNkZWZpbmUgTUFDSF9UWVBFX0lQT0QgICAgICAgICAgICAgICAgIDI4MAorI2RlZmluZSBNQUNIX1RZUEVfQURTQklUU1lYICAgICAgICAgICAgMjgxCisjZGVmaW5lIE1BQ0hfVFlQRV9UUklaRVBTMiAgICAgICAgICAgICAyODIKKyNkZWZpbmUgTUFDSF9UWVBFX1ZJUEVSICAgICAgICAgICAgICAgIDI4MworI2RlZmluZSBNQUNIX1RZUEVfQURTQklUU1lQTFVTICAgICAgICAgMjg0CisjZGVmaW5lIE1BQ0hfVFlQRV9BRFNBR0MgICAgICAgICAgICAgICAyODUKKyNkZWZpbmUgTUFDSF9UWVBFX1NUUDczMTIgICAgICAgICAgICAgIDI4NgorI2RlZmluZSBNQUNIX1RZUEVfTlhfUEhOWCAgICAgICAgICAgICAgMjg3CisjZGVmaW5lIE1BQ0hfVFlQRV9XRVBfRVAyNTAgICAgICAgICAgICAyODgKKyNkZWZpbmUgTUFDSF9UWVBFX0lOSEFOREVMRjMgICAgICAgICAgIDI4OQorI2RlZmluZSBNQUNIX1RZUEVfQURJX0NPWU9URSAgICAgICAgICAgMjkwCisjZGVmaW5lIE1BQ0hfVFlQRV9JWU9OSVggICAgICAgICAgICAgICAyOTEKKyNkZWZpbmUgTUFDSF9UWVBFX0RBTUlDQU1fU0ExMTEwICAgICAgIDI5MgorI2RlZmluZSBNQUNIX1RZUEVfTUVHMDMgICAgICAgICAgICAgICAgMjkzCisjZGVmaW5lIE1BQ0hfVFlQRV9QWEFfV0hJVEVDSEFQRUwgICAgICAyOTQKKyNkZWZpbmUgTUFDSF9UWVBFX05XU0MgICAgICAgICAgICAgICAgIDI5NQorI2RlZmluZSBNQUNIX1RZUEVfTldMQVJNICAgICAgICAgICAgICAgMjk2CisjZGVmaW5lIE1BQ0hfVFlQRV9JWFA0MjVfTUdVQVJEICAgICAgICAyOTcKKyNkZWZpbmUgTUFDSF9UWVBFX1BYQV9ORVREQ1U0ICAgICAgICAgIDI5OAorI2RlZmluZSBNQUNIX1RZUEVfSVhEUDI0MDEgICAgICAgICAgICAgMjk5CisjZGVmaW5lIE1BQ0hfVFlQRV9JWERQMjgwMSAgICAgICAgICAgICAzMDAKKyNkZWZpbmUgTUFDSF9UWVBFX1pPRElBQyAgICAgICAgICAgICAgIDMwMQorI2RlZmluZSBNQUNIX1RZUEVfQVJNTU9EVUwgICAgICAgICAgICAgMzAyCisjZGVmaW5lIE1BQ0hfVFlQRV9LRVRPUCAgICAgICAgICAgICAgICAzMDMKKyNkZWZpbmUgTUFDSF9UWVBFX0FWNzIwMCAgICAgICAgICAgICAgIDMwNAorI2RlZmluZSBNQUNIX1RZUEVfQVJDSF9USTkyNSAgICAgICAgICAgMzA1CisjZGVmaW5lIE1BQ0hfVFlQRV9BQ1EyMDAgICAgICAgICAgICAgICAzMDYKKyNkZWZpbmUgTUFDSF9UWVBFX1BUX0RBRklUICAgICAgICAgICAgIDMwNworI2RlZmluZSBNQUNIX1RZUEVfSUhCQSAgICAgICAgICAgICAgICAgMzA4CisjZGVmaW5lIE1BQ0hfVFlQRV9RVUlOUVVFICAgICAgICAgICAgICAzMDkKKyNkZWZpbmUgTUFDSF9UWVBFX05JTUJSQU9ORSAgICAgICAgICAgIDMxMAorI2RlZmluZSBNQUNIX1RZUEVfTklNQlJBMjlYICAgICAgICAgICAgMzExCisjZGVmaW5lIE1BQ0hfVFlQRV9OSU1CUkEyMTAgICAgICAgICAgICAzMTIKKyNkZWZpbmUgTUFDSF9UWVBFX0hIUF9EOTVYWCAgICAgICAgICAgIDMxMworI2RlZmluZSBNQUNIX1RZUEVfTEFCQVJNICAgICAgICAgICAgICAgMzE0CisjZGVmaW5lIE1BQ0hfVFlQRV9NODI1WFggICAgICAgICAgICAgICAzMTUKKyNkZWZpbmUgTUFDSF9UWVBFX003MTAwICAgICAgICAgICAgICAgIDMxNgorI2RlZmluZSBNQUNIX1RZUEVfTklQQzIgICAgICAgICAgICAgICAgMzE3CisjZGVmaW5lIE1BQ0hfVFlQRV9GVTcyMDIgICAgICAgICAgICAgICAzMTgKKyNkZWZpbmUgTUFDSF9UWVBFX0FEU0FHWCAgICAgICAgICAgICAgIDMxOQorI2RlZmluZSBNQUNIX1RZUEVfUFhBX1BPT0ggICAgICAgICAgICAgMzIwCisjZGVmaW5lIE1BQ0hfVFlQRV9CQU5ET04gICAgICAgICAgICAgICAzMjEKKyNkZWZpbmUgTUFDSF9UWVBFX1BDTTcyMTAgICAgICAgICAgICAgIDMyMgorI2RlZmluZSBNQUNIX1RZUEVfTk1TOTIwMCAgICAgICAgICAgICAgMzIzCisjZGVmaW5lIE1BQ0hfVFlQRV9MT0dPREwgICAgICAgICAgICAgICAzMjQKKyNkZWZpbmUgTUFDSF9UWVBFX003MTQwICAgICAgICAgICAgICAgIDMyNQorI2RlZmluZSBNQUNIX1RZUEVfS09SRUJPVCAgICAgICAgICAgICAgMzI2CisjZGVmaW5lIE1BQ0hfVFlQRV9JUTMxMjQ0ICAgICAgICAgICAgICAzMjcKKyNkZWZpbmUgTUFDSF9UWVBFX0tPQU4zOTMgICAgICAgICAgICAgIDMyOAorI2RlZmluZSBNQUNIX1RZUEVfSU5IQU5ERlRJUDMgICAgICAgICAgMzI5CisjZGVmaW5lIE1BQ0hfVFlQRV9HT05aTyAgICAgICAgICAgICAgICAzMzAKKyNkZWZpbmUgTUFDSF9UWVBFX0JBU1QgICAgICAgICAgICAgICAgIDMzMQorI2RlZmluZSBNQUNIX1RZUEVfU0NBTlBBU1MgICAgICAgICAgICAgMzMyCisjZGVmaW5lIE1BQ0hfVFlQRV9FUDczMTJfUE9PSCAgICAgICAgICAzMzMKKyNkZWZpbmUgTUFDSF9UWVBFX1RBN1MgICAgICAgICAgICAgICAgIDMzNAorI2RlZmluZSBNQUNIX1RZUEVfVEE3ViAgICAgICAgICAgICAgICAgMzM1CisjZGVmaW5lIE1BQ0hfVFlQRV9JQ0FSVVMgICAgICAgICAgICAgICAzMzYKKyNkZWZpbmUgTUFDSF9UWVBFX0gxOTAwICAgICAgICAgICAgICAgIDMzNworI2RlZmluZSBNQUNIX1RZUEVfR0VNSU5JICAgICAgICAgICAgICAgMzM4CisjZGVmaW5lIE1BQ0hfVFlQRV9BWElNICAgICAgICAgICAgICAgICAzMzkKKyNkZWZpbmUgTUFDSF9UWVBFX0FVRElPVFJPTiAgICAgICAgICAgIDM0MAorI2RlZmluZSBNQUNIX1RZUEVfSDIyMDAgICAgICAgICAgICAgICAgMzQxCisjZGVmaW5lIE1BQ0hfVFlQRV9MT09YNjAwICAgICAgICAgICAgICAzNDIKKyNkZWZpbmUgTUFDSF9UWVBFX05JT1AgICAgICAgICAgICAgICAgIDM0MworI2RlZmluZSBNQUNIX1RZUEVfRE0zMTAgICAgICAgICAgICAgICAgMzQ0CisjZGVmaW5lIE1BQ0hfVFlQRV9TRUVEUFhBX0MyICAgICAgICAgICAzNDUKKyNkZWZpbmUgTUFDSF9UWVBFX0lYUDRYWF9NR1VBUkRfUENJICAgIDM0NgorI2RlZmluZSBNQUNIX1RZUEVfSDE5NDAgICAgICAgICAgICAgICAgMzQ3CisjZGVmaW5lIE1BQ0hfVFlQRV9TQ09SUElPICAgICAgICAgICAgICAzNDgKKyNkZWZpbmUgTUFDSF9UWVBFX1ZJVkEgICAgICAgICAgICAgICAgIDM0OQorI2RlZmluZSBNQUNIX1RZUEVfUFhBX1hDQVJEICAgICAgICAgICAgMzUwCisjZGVmaW5lIE1BQ0hfVFlQRV9DU0IzMzUgICAgICAgICAgICAgICAzNTEKKyNkZWZpbmUgTUFDSF9UWVBFX0lYUkQ0MjUgICAgICAgICAgICAgIDM1MgorI2RlZmluZSBNQUNIX1RZUEVfSVE4MDMxNSAgICAgICAgICAgICAgMzUzCisjZGVmaW5lIE1BQ0hfVFlQRV9OTVA3MzEyICAgICAgICAgICAgICAzNTQKKyNkZWZpbmUgTUFDSF9UWVBFX0NYODYxWFggICAgICAgICAgICAgIDM1NQorI2RlZmluZSBNQUNIX1RZUEVfRU5QMjYxMSAgICAgICAgICAgICAgMzU2CisjZGVmaW5lIE1BQ0hfVFlQRV9YREEgICAgICAgICAgICAgICAgICAzNTcKKyNkZWZpbmUgTUFDSF9UWVBFX0NTSVJfSU1TICAgICAgICAgICAgIDM1OAorI2RlZmluZSBNQUNIX1RZUEVfSVhQNDIxX0ROQUVFVEggICAgICAgMzU5CisjZGVmaW5lIE1BQ0hfVFlQRV9QT0NLRVRTRVJWOTIwMCAgICAgICAzNjAKKyNkZWZpbmUgTUFDSF9UWVBFX1RPVE8gICAgICAgICAgICAgICAgIDM2MQorI2RlZmluZSBNQUNIX1RZUEVfUzNDMjQ0MCAgICAgICAgICAgICAgMzYyCisjZGVmaW5lIE1BQ0hfVFlQRV9LUzg2OTVQICAgICAgICAgICAgICAzNjMKKyNkZWZpbmUgTUFDSF9UWVBFX1NFNDAwMCAgICAgICAgICAgICAgIDM2NAorI2RlZmluZSBNQUNIX1RZUEVfUVVBRFJJQ0VQUyAgICAgICAgICAgMzY1CisjZGVmaW5lIE1BQ0hfVFlQRV9CUk9OQ08gICAgICAgICAgICAgICAzNjYKKyNkZWZpbmUgTUFDSF9UWVBFX0VTTF9TT0ZDT01QICAgICAgICAgIDM2OAorI2RlZmluZSBNQUNIX1RZUEVfUzVDNzM3NSAgICAgICAgICAgICAgMzY5CisjZGVmaW5lIE1BQ0hfVFlQRV9TUEVBUkhFQUQgICAgICAgICAgICAzNzAKKyNkZWZpbmUgTUFDSF9UWVBFX1BBTlRFUkEgICAgICAgICAgICAgIDM3MQorI2RlZmluZSBNQUNIX1RZUEVfUFJBWU9HTElURSAgICAgICAgICAgMzcyCisjZGVmaW5lIE1BQ0hfVFlQRV9HVU1TVElLICAgICAgICAgICAgICAzNzMKKyNkZWZpbmUgTUFDSF9UWVBFX1JDVUJFICAgICAgICAgICAgICAgIDM3NAorI2RlZmluZSBNQUNIX1RZUEVfUkVBX09MViAgICAgICAgICAgICAgMzc1CisjZGVmaW5lIE1BQ0hfVFlQRV9QWEFfSVBIT05FICAgICAgICAgICAzNzYKKyNkZWZpbmUgTUFDSF9UWVBFX1MzQzM0MTAgICAgICAgICAgICAgIDM3NworI2RlZmluZSBNQUNIX1RZUEVfRVNQRF80NTEwQiAgICAgICAgICAgMzc4CisjZGVmaW5lIE1BQ0hfVFlQRV9NUDFYICAgICAgICAgICAgICAgICAzNzkKKyNkZWZpbmUgTUFDSF9UWVBFX0FUOTFSTTkyMDBUQiAgICAgICAgIDM4MAorI2RlZmluZSBNQUNIX1RZUEVfQURTVkdYICAgICAgICAgICAgICAgMzgxCisjZGVmaW5lIE1BQ0hfVFlQRV9PTUFQX0gyICAgICAgICAgICAgICAzODIKKyNkZWZpbmUgTUFDSF9UWVBFX1BFTEVFICAgICAgICAgICAgICAgIDM4MworI2RlZmluZSBNQUNIX1RZUEVfRTc0MCAgICAgICAgICAgICAgICAgMzg0CisjZGVmaW5lIE1BQ0hfVFlQRV9JUTgwMzMxICAgICAgICAgICAgICAzODUKKyNkZWZpbmUgTUFDSF9UWVBFX1ZFUlNBVElMRV9QQiAgICAgICAgIDM4NworI2RlZmluZSBNQUNIX1RZUEVfS0VWN0E0MDAgICAgICAgICAgICAgMzg4CisjZGVmaW5lIE1BQ0hfVFlQRV9MUEQ3QTQwMCAgICAgICAgICAgICAzODkKKyNkZWZpbmUgTUFDSF9UWVBFX0xQRDdBNDA0ICAgICAgICAgICAgIDM5MAorI2RlZmluZSBNQUNIX1RZUEVfRlVKSVRTVV9DQU1FTE9UICAgICAgMzkxCisjZGVmaW5lIE1BQ0hfVFlQRV9KQU5VUzJNICAgICAgICAgICAgICAzOTIKKyNkZWZpbmUgTUFDSF9UWVBFX0VNQlRGICAgICAgICAgICAgICAgIDM5MworI2RlZmluZSBNQUNIX1RZUEVfSFBNICAgICAgICAgICAgICAgICAgMzk0CisjZGVmaW5lIE1BQ0hfVFlQRV9TTURLMjQxMFRLICAgICAgICAgICAzOTUKKyNkZWZpbmUgTUFDSF9UWVBFX1NNREsyNDEwQUogICAgICAgICAgIDM5NgorI2RlZmluZSBNQUNIX1RZUEVfU1RSRUVUUkFDRVIgICAgICAgICAgMzk3CisjZGVmaW5lIE1BQ0hfVFlQRV9FRlJBTUUgICAgICAgICAgICAgICAzOTgKKyNkZWZpbmUgTUFDSF9UWVBFX0NTQjMzNyAgICAgICAgICAgICAgIDM5OQorI2RlZmluZSBNQUNIX1RZUEVfUFhBX0xBUksgICAgICAgICAgICAgNDAwCisjZGVmaW5lIE1BQ0hfVFlQRV9QTlAyMTEwICAgICAgICAgICAgICA0MDEKKyNkZWZpbmUgTUFDSF9UWVBFX1RDQzcyWCAgICAgICAgICAgICAgIDQwMgorI2RlZmluZSBNQUNIX1RZUEVfQUxUQUlSICAgICAgICAgICAgICAgNDAzCisjZGVmaW5lIE1BQ0hfVFlQRV9LQzMgICAgICAgICAgICAgICAgICA0MDQKKyNkZWZpbmUgTUFDSF9UWVBFX1NJTlRFRlREICAgICAgICAgICAgIDQwNQorI2RlZmluZSBNQUNIX1RZUEVfTUFJTlNUT05FICAgICAgICAgICAgNDA2CisjZGVmaW5lIE1BQ0hfVFlQRV9BREFZNFggICAgICAgICAgICAgICA0MDcKKyNkZWZpbmUgTUFDSF9UWVBFX0xJVEUzMDAgICAgICAgICAgICAgIDQwOAorI2RlZmluZSBNQUNIX1RZUEVfUzVDNzM3NiAgICAgICAgICAgICAgNDA5CisjZGVmaW5lIE1BQ0hfVFlQRV9NVDAyICAgICAgICAgICAgICAgICA0MTAKKyNkZWZpbmUgTUFDSF9UWVBFX01QT1JUM1MgICAgICAgICAgICAgIDQxMQorI2RlZmluZSBNQUNIX1RZUEVfUkFfQUxQSEEgICAgICAgICAgICAgNDEyCisjZGVmaW5lIE1BQ0hfVFlQRV9YQ0VQICAgICAgICAgICAgICAgICA0MTMKKyNkZWZpbmUgTUFDSF9UWVBFX0FSQ09NX01FUkNVUlkgICAgICAgIDQxNAorI2RlZmluZSBNQUNIX1RZUEVfU1RBUkdBVEUgICAgICAgICAgICAgNDE1CisjZGVmaW5lIE1BQ0hfVFlQRV9BUk1BRElMTE9KICAgICAgICAgICA0MTYKKyNkZWZpbmUgTUFDSF9UWVBFX0VMUk9ZX0pBQ0sgICAgICAgICAgIDQxNworI2RlZmluZSBNQUNIX1RZUEVfQkFDS0VORCAgICAgICAgICAgICAgNDE4CisjZGVmaW5lIE1BQ0hfVFlQRV9TNUxJTkJPWCAgICAgICAgICAgICA0MTkKKyNkZWZpbmUgTUFDSF9UWVBFX05PTUFESUsgICAgICAgICAgICAgIDQyMAorI2RlZmluZSBNQUNIX1RZUEVfSUFfQ1BVXzkyMDAgICAgICAgICAgNDIxCisjZGVmaW5lIE1BQ0hfVFlQRV9BVDkxX0JKQTEgICAgICAgICAgICA0MjIKKyNkZWZpbmUgTUFDSF9UWVBFX0NPUkdJICAgICAgICAgICAgICAgIDQyMworI2RlZmluZSBNQUNIX1RZUEVfUE9PRExFICAgICAgICAgICAgICAgNDI0CisjZGVmaW5lIE1BQ0hfVFlQRV9URU4gICAgICAgICAgICAgICAgICA0MjUKKyNkZWZpbmUgTUFDSF9UWVBFX1JPVkVSUDVQICAgICAgICAgICAgIDQyNgorI2RlZmluZSBNQUNIX1RZUEVfU0MyNzAwICAgICAgICAgICAgICAgNDI3CisjZGVmaW5lIE1BQ0hfVFlQRV9FWF9FQUdMRSAgICAgICAgICAgICA0MjgKKyNkZWZpbmUgTUFDSF9UWVBFX05YX1BYQTEyICAgICAgICAgICAgIDQyOQorI2RlZmluZSBNQUNIX1RZUEVfTlhfUFhBNSAgICAgICAgICAgICAgNDMwCisjZGVmaW5lIE1BQ0hfVFlQRV9CTEFDS0JPQVJEMiAgICAgICAgICA0MzEKKyNkZWZpbmUgTUFDSF9UWVBFX0k4MTkgICAgICAgICAgICAgICAgIDQzMgorI2RlZmluZSBNQUNIX1RZUEVfSVhNQjk5NUUgICAgICAgICAgICAgNDMzCisjZGVmaW5lIE1BQ0hfVFlQRV9TS1lSSURFUiAgICAgICAgICAgICA0MzQKKyNkZWZpbmUgTUFDSF9UWVBFX1NLWUhBV0sgICAgICAgICAgICAgIDQzNQorI2RlZmluZSBNQUNIX1RZUEVfRU5URVJQUklTRSAgICAgICAgICAgNDM2CisjZGVmaW5lIE1BQ0hfVFlQRV9ERVAyNDEwICAgICAgICAgICAgICA0MzcKKyNkZWZpbmUgTUFDSF9UWVBFX0FSTUNPUkUgICAgICAgICAgICAgIDQzOAorI2RlZmluZSBNQUNIX1RZUEVfSE9CQklUICAgICAgICAgICAgICAgNDM5CisjZGVmaW5lIE1BQ0hfVFlQRV9INzIxMCAgICAgICAgICAgICAgICA0NDAKKyNkZWZpbmUgTUFDSF9UWVBFX1BYQV9ORVREQ1U1ICAgICAgICAgIDQ0MQorI2RlZmluZSBNQUNIX1RZUEVfQUNDICAgICAgICAgICAgICAgICAgNDQyCisjZGVmaW5lIE1BQ0hfVFlQRV9FU0xfU0FSVkEgICAgICAgICAgICA0NDMKKyNkZWZpbmUgTUFDSF9UWVBFX1hNMjUwICAgICAgICAgICAgICAgIDQ0NAorI2RlZmluZSBNQUNIX1RZUEVfVDZUQzFYQiAgICAgICAgICAgICAgNDQ1CisjZGVmaW5lIE1BQ0hfVFlQRV9FU1M3MTAgICAgICAgICAgICAgICA0NDYKKyNkZWZpbmUgTUFDSF9UWVBFX01YM0FEUyAgICAgICAgICAgICAgIDQ0NworI2RlZmluZSBNQUNIX1RZUEVfSElNQUxBWUEgICAgICAgICAgICAgNDQ4CisjZGVmaW5lIE1BQ0hfVFlQRV9CT0xGRU5LICAgICAgICAgICAgICA0NDkKKyNkZWZpbmUgTUFDSF9UWVBFX0FUOTFSTTkyMDBLUiAgICAgICAgIDQ1MAorI2RlZmluZSBNQUNIX1RZUEVfRURCOTMxMiAgICAgICAgICAgICAgNDUxCisjZGVmaW5lIE1BQ0hfVFlQRV9PTUFQX0dFTkVSSUMgICAgICAgICA0NTIKKyNkZWZpbmUgTUFDSF9UWVBFX0FYSU1YMyAgICAgICAgICAgICAgIDQ1MworI2RlZmluZSBNQUNIX1RZUEVfRUI2N1hESVAgICAgICAgICAgICAgNDU0CisjZGVmaW5lIE1BQ0hfVFlQRV9XRUJUWFMgICAgICAgICAgICAgICA0NTUKKyNkZWZpbmUgTUFDSF9UWVBFX0hBV0sgICAgICAgICAgICAgICAgIDQ1NgorI2RlZmluZSBNQUNIX1RZUEVfQ0NBVDkxU0JDMDAxICAgICAgICAgNDU3CisjZGVmaW5lIE1BQ0hfVFlQRV9FWFBSRVNTTyAgICAgICAgICAgICA0NTgKKyNkZWZpbmUgTUFDSF9UWVBFX0g0MDAwICAgICAgICAgICAgICAgIDQ1OQorI2RlZmluZSBNQUNIX1RZUEVfRElOTyAgICAgICAgICAgICAgICAgNDYwCisjZGVmaW5lIE1BQ0hfVFlQRV9NTDY3NUsgICAgICAgICAgICAgICA0NjEKKyNkZWZpbmUgTUFDSF9UWVBFX0VEQjkzMDEgICAgICAgICAgICAgIDQ2MgorI2RlZmluZSBNQUNIX1RZUEVfRURCOTMxNSAgICAgICAgICAgICAgNDYzCisjZGVmaW5lIE1BQ0hfVFlQRV9SRUNJVkFfVFQgICAgICAgICAgICA0NjQKKyNkZWZpbmUgTUFDSF9UWVBFX0NTVENCMDEgICAgICAgICAgICAgIDQ2NQorI2RlZmluZSBNQUNIX1RZUEVfQ1NUQ0IxICAgICAgICAgICAgICAgNDY2CisjZGVmaW5lIE1BQ0hfVFlQRV9TSEFEV0VMTCAgICAgICAgICAgICA0NjcKKyNkZWZpbmUgTUFDSF9UWVBFX0dPRVBFTDI2MyAgICAgICAgICAgIDQ2OAorI2RlZmluZSBNQUNIX1RZUEVfQUNRMTAwICAgICAgICAgICAgICAgNDY5CisjZGVmaW5lIE1BQ0hfVFlQRV9NWDFGUzIgICAgICAgICAgICAgICA0NzAKKyNkZWZpbmUgTUFDSF9UWVBFX0hJUFRPUF9HMSAgICAgICAgICAgIDQ3MQorI2RlZmluZSBNQUNIX1RZUEVfU1BBUktZICAgICAgICAgICAgICAgNDcyCisjZGVmaW5lIE1BQ0hfVFlQRV9OUzk3NTAgICAgICAgICAgICAgICA0NzMKKyNkZWZpbmUgTUFDSF9UWVBFX1BIT0VOSVggICAgICAgICAgICAgIDQ3NAorI2RlZmluZSBNQUNIX1RZUEVfVlIxMDAwICAgICAgICAgICAgICAgNDc1CisjZGVmaW5lIE1BQ0hfVFlQRV9ERUlTVEVSUFhBICAgICAgICAgICA0NzYKKyNkZWZpbmUgTUFDSF9UWVBFX0JDTTExNjAgICAgICAgICAgICAgIDQ3NworI2RlZmluZSBNQUNIX1RZUEVfUENNMDIyICAgICAgICAgICAgICAgNDc4CisjZGVmaW5lIE1BQ0hfVFlQRV9BRFNHQ1ggICAgICAgICAgICAgICA0NzkKKyNkZWZpbmUgTUFDSF9UWVBFX0RSRUFETkFVR0hUICAgICAgICAgIDQ4MAorI2RlZmluZSBNQUNIX1RZUEVfRE0zMjAgICAgICAgICAgICAgICAgNDgxCisjZGVmaW5lIE1BQ0hfVFlQRV9NQVJLT1YgICAgICAgICAgICAgICA0ODIKKyNkZWZpbmUgTUFDSF9UWVBFX0NPUzdBNDAwICAgICAgICAgICAgIDQ4MworI2RlZmluZSBNQUNIX1RZUEVfTUlMQU5PICAgICAgICAgICAgICAgNDg0CisjZGVmaW5lIE1BQ0hfVFlQRV9VRTkzMjggICAgICAgICAgICAgICA0ODUKKyNkZWZpbmUgTUFDSF9UWVBFX1VFWDI1NSAgICAgICAgICAgICAgIDQ4NgorI2RlZmluZSBNQUNIX1RZUEVfVUUyNDEwICAgICAgICAgICAgICAgNDg3CisjZGVmaW5lIE1BQ0hfVFlQRV9BNjIwICAgICAgICAgICAgICAgICA0ODgKKyNkZWZpbmUgTUFDSF9UWVBFX09DRUxPVCAgICAgICAgICAgICAgIDQ4OQorI2RlZmluZSBNQUNIX1RZUEVfQ0hFRVRBSCAgICAgICAgICAgICAgNDkwCisjZGVmaW5lIE1BQ0hfVFlQRV9PTUFQX1BFUlNFVVMyICAgICAgICA0OTEKKyNkZWZpbmUgTUFDSF9UWVBFX1pWVUUgICAgICAgICAgICAgICAgIDQ5MgorI2RlZmluZSBNQUNIX1RZUEVfUk9WRVJQMSAgICAgICAgICAgICAgNDkzCisjZGVmaW5lIE1BQ0hfVFlQRV9BU0lESUFMMiAgICAgICAgICAgICA0OTQKKyNkZWZpbmUgTUFDSF9UWVBFX1MzQzI0QTAgICAgICAgICAgICAgIDQ5NQorI2RlZmluZSBNQUNIX1RZUEVfRTgwMCAgICAgICAgICAgICAgICAgNDk2CisjZGVmaW5lIE1BQ0hfVFlQRV9FNzUwICAgICAgICAgICAgICAgICA0OTcKKyNkZWZpbmUgTUFDSF9UWVBFX1MzQzU1MDAgICAgICAgICAgICAgIDQ5OAorI2RlZmluZSBNQUNIX1RZUEVfU01ESzU1MDAgICAgICAgICAgICAgNDk5CisjZGVmaW5lIE1BQ0hfVFlQRV9TSUdOQUxTWU5DICAgICAgICAgICA1MDAKKyNkZWZpbmUgTUFDSF9UWVBFX05CQyAgICAgICAgICAgICAgICAgIDUwMQorI2RlZmluZSBNQUNIX1RZUEVfS09ESUFLICAgICAgICAgICAgICAgNTAyCisjZGVmaW5lIE1BQ0hfVFlQRV9ORVRCT09LUFJPICAgICAgICAgICA1MDMKKyNkZWZpbmUgTUFDSF9UWVBFX0hXOTAyMDAgICAgICAgICAgICAgIDUwNAorI2RlZmluZSBNQUNIX1RZUEVfQ09ORE9SICAgICAgICAgICAgICAgNTA1CisjZGVmaW5lIE1BQ0hfVFlQRV9DVVAgICAgICAgICAgICAgICAgICA1MDYKKyNkZWZpbmUgTUFDSF9UWVBFX0tJVEUgICAgICAgICAgICAgICAgIDUwNworI2RlZmluZSBNQUNIX1RZUEVfU0NCOTMyOCAgICAgICAgICAgICAgNTA4CisjZGVmaW5lIE1BQ0hfVFlQRV9PTUFQX0gzICAgICAgICAgICAgICA1MDkKKyNkZWZpbmUgTUFDSF9UWVBFX09NQVBfSDQgICAgICAgICAgICAgIDUxMAorI2RlZmluZSBNQUNIX1RZUEVfTjEwICAgICAgICAgICAgICAgICAgNTExCisjZGVmaW5lIE1BQ0hfVFlQRV9NT05UQUpBREUgICAgICAgICAgICA1MTIKKyNkZWZpbmUgTUFDSF9UWVBFX1NHNTYwICAgICAgICAgICAgICAgIDUxMworI2RlZmluZSBNQUNIX1RZUEVfRFAxMDAwICAgICAgICAgICAgICAgNTE0CisjZGVmaW5lIE1BQ0hfVFlQRV9PTUFQX09TSyAgICAgICAgICAgICA1MTUKKyNkZWZpbmUgTUFDSF9UWVBFX1JHMTAwVjMgICAgICAgICAgICAgIDUxNgorI2RlZmluZSBNQUNIX1RZUEVfTVgyQURTICAgICAgICAgICAgICAgNTE3CisjZGVmaW5lIE1BQ0hfVFlQRV9QWEFfS0lMTyAgICAgICAgICAgICA1MTgKKyNkZWZpbmUgTUFDSF9UWVBFX0lYUDRYWF9FQUdMRSAgICAgICAgIDUxOQorI2RlZmluZSBNQUNIX1RZUEVfVE9TQSAgICAgICAgICAgICAgICAgNTIwCisjZGVmaW5lIE1BQ0hfVFlQRV9NQjI1MjBGICAgICAgICAgICAgICA1MjEKKyNkZWZpbmUgTUFDSF9UWVBFX0VNQzEwMDAgICAgICAgICAgICAgIDUyMgorI2RlZmluZSBNQUNIX1RZUEVfVElEU0MyNSAgICAgICAgICAgICAgNTIzCisjZGVmaW5lIE1BQ0hfVFlQRV9BS0NQTVhMICAgICAgICAgICAgICA1MjQKKyNkZWZpbmUgTUFDSF9UWVBFX0FWM1hYICAgICAgICAgICAgICAgIDUyNQorI2RlZmluZSBNQUNIX1RZUEVfQVZJTEEgICAgICAgICAgICAgICAgNTI2CisjZGVmaW5lIE1BQ0hfVFlQRV9QWEFfTVBNMTAgICAgICAgICAgICA1MjcKKyNkZWZpbmUgTUFDSF9UWVBFX1BYQV9LWUFOSVRFICAgICAgICAgIDUyOAorI2RlZmluZSBNQUNIX1RZUEVfU0dPTEQgICAgICAgICAgICAgICAgNTI5CisjZGVmaW5lIE1BQ0hfVFlQRV9PU0NBUiAgICAgICAgICAgICAgICA1MzAKKyNkZWZpbmUgTUFDSF9UWVBFX0VQWEE0VVNCMiAgICAgICAgICAgIDUzMQorI2RlZmluZSBNQUNIX1RZUEVfWFNFTkdJTkUgICAgICAgICAgICAgNTMyCisjZGVmaW5lIE1BQ0hfVFlQRV9JUDYwMCAgICAgICAgICAgICAgICA1MzMKKyNkZWZpbmUgTUFDSF9UWVBFX01DQU4yICAgICAgICAgICAgICAgIDUzNAorI2RlZmluZSBNQUNIX1RZUEVfRERJX0JMVUVSSURHRSAgICAgICAgNTM1CisjZGVmaW5lIE1BQ0hfVFlQRV9TS1lNSU5ERVIgICAgICAgICAgICA1MzYKKyNkZWZpbmUgTUFDSF9UWVBFX0xQRDc5NTIwICAgICAgICAgICAgIDUzNworI2RlZmluZSBNQUNIX1RZUEVfRURCOTMwMiAgICAgICAgICAgICAgNTM4CisjZGVmaW5lIE1BQ0hfVFlQRV9IVzkwMzQwICAgICAgICAgICAgICA1MzkKKyNkZWZpbmUgTUFDSF9UWVBFX0NJUF9CT1ggICAgICAgICAgICAgIDU0MAorI2RlZmluZSBNQUNIX1RZUEVfSVZQTiAgICAgICAgICAgICAgICAgNTQxCisjZGVmaW5lIE1BQ0hfVFlQRV9SU09DMiAgICAgICAgICAgICAgICA1NDIKKyNkZWZpbmUgTUFDSF9UWVBFX0hVU0tZICAgICAgICAgICAgICAgIDU0MworI2RlZmluZSBNQUNIX1RZUEVfQk9YRVIgICAgICAgICAgICAgICAgNTQ0CisjZGVmaW5lIE1BQ0hfVFlQRV9TSEVQSEVSRCAgICAgICAgICAgICA1NDUKKyNkZWZpbmUgTUFDSF9UWVBFX0FNTDQyODAwQUEgICAgICAgICAgIDU0NgorI2RlZmluZSBNQUNIX1RZUEVfTUFDSF9UWVBFX01MNjc0MDAxICAgNTQ3CisjZGVmaW5lIE1BQ0hfVFlQRV9MUEMyMjk0ICAgICAgICAgICAgICA1NDgKKyNkZWZpbmUgTUFDSF9UWVBFX1NXSVRDSEdSQVNTICAgICAgICAgIDU0OQorI2RlZmluZSBNQUNIX1RZUEVfRU5TX0NNVSAgICAgICAgICAgICAgNTUwCisjZGVmaW5lIE1BQ0hfVFlQRV9NTTZfU0RCICAgICAgICAgICAgICA1NTEKKyNkZWZpbmUgTUFDSF9UWVBFX1NBVFVSTiAgICAgICAgICAgICAgIDU1MgorI2RlZmluZSBNQUNIX1RZUEVfQVJHT05QTFVTRVZCICAgICAgICAgNTUzCisjZGVmaW5lIE1BQ0hfVFlQRV9TQ01BMTFFVkIgICAgICAgICAgICA1NTQKKyNkZWZpbmUgTUFDSF9UWVBFX1NNREsyODAwICAgICAgICAgICAgIDU1NQorI2RlZmluZSBNQUNIX1RZUEVfTVRXSUxTT04gICAgICAgICAgICAgNTU2CisjZGVmaW5lIE1BQ0hfVFlQRV9aSVRJICAgICAgICAgICAgICAgICA1NTcKKyNkZWZpbmUgTUFDSF9UWVBFX0dSQU5ERkFUSEVSICAgICAgICAgIDU1OAorI2RlZmluZSBNQUNIX1RZUEVfVEVOR0lORSAgICAgICAgICAgICAgNTU5CisjZGVmaW5lIE1BQ0hfVFlQRV9TM0MyNDYwICAgICAgICAgICAgICA1NjAKKyNkZWZpbmUgTUFDSF9UWVBFX1BETSAgICAgICAgICAgICAgICAgIDU2MQorI2RlZmluZSBNQUNIX1RZUEVfSDQ3MDAgICAgICAgICAgICAgICAgNTYyCisjZGVmaW5lIE1BQ0hfVFlQRV9INjMwMCAgICAgICAgICAgICAgICA1NjMKKyNkZWZpbmUgTUFDSF9UWVBFX1JaMTcwMCAgICAgICAgICAgICAgIDU2NAorI2RlZmluZSBNQUNIX1RZUEVfQTcxNiAgICAgICAgICAgICAgICAgNTY1CisjZGVmaW5lIE1BQ0hfVFlQRV9FU1RLMjQ0MEEgICAgICAgICAgICA1NjYKKyNkZWZpbmUgTUFDSF9UWVBFX0FUV0lYUDQyNSAgICAgICAgICAgIDU2NworI2RlZmluZSBNQUNIX1RZUEVfQ1NCMzM2ICAgICAgICAgICAgICAgNTY4CisjZGVmaW5lIE1BQ0hfVFlQRV9SSVJNMiAgICAgICAgICAgICAgICA1NjkKKyNkZWZpbmUgTUFDSF9UWVBFX0NYMjM1MTggICAgICAgICAgICAgIDU3MAorI2RlZmluZSBNQUNIX1RZUEVfQ1gyMzUxWCAgICAgICAgICAgICAgNTcxCisjZGVmaW5lIE1BQ0hfVFlQRV9DT01QVVRJTUUgICAgICAgICAgICA1NzIKKyNkZWZpbmUgTUFDSF9UWVBFX0laQVJVUyAgICAgICAgICAgICAgIDU3MworI2RlZmluZSBNQUNIX1RZUEVfUlRTICAgICAgICAgICAgICAgICAgNTc0CisjZGVmaW5lIE1BQ0hfVFlQRV9TRTUxMDAgICAgICAgICAgICAgICA1NzUKKyNkZWZpbmUgTUFDSF9UWVBFX1MzQzI1MTAgICAgICAgICAgICAgIDU3NgorI2RlZmluZSBNQUNIX1RZUEVfQ1NCNDM3VEwgICAgICAgICAgICAgNTc3CisjZGVmaW5lIE1BQ0hfVFlQRV9TTEFVU09OICAgICAgICAgICAgICA1NzgKKyNkZWZpbmUgTUFDSF9UWVBFX1BFQVJMUklWRVIgICAgICAgICAgIDU3OQorI2RlZmluZSBNQUNIX1RZUEVfVERDX1AyMTAgICAgICAgICAgICAgNTgwCisjZGVmaW5lIE1BQ0hfVFlQRV9TRzU4MCAgICAgICAgICAgICAgICA1ODEKKyNkZWZpbmUgTUFDSF9UWVBFX1dSU0JDQVJNNyAgICAgICAgICAgIDU4MgorI2RlZmluZSBNQUNIX1RZUEVfSVBEICAgICAgICAgICAgICAgICAgNTgzCisjZGVmaW5lIE1BQ0hfVFlQRV9QWEFfRE5QMjExMCAgICAgICAgICA1ODQKKyNkZWZpbmUgTUFDSF9UWVBFX1hBRU5JQVggICAgICAgICAgICAgIDU4NQorI2RlZmluZSBNQUNIX1RZUEVfU09NTjQyNTAgICAgICAgICAgICAgNTg2CisjZGVmaW5lIE1BQ0hfVFlQRV9QTEVCMiAgICAgICAgICAgICAgICA1ODcKKyNkZWZpbmUgTUFDSF9UWVBFX0NPUk5XQUxMSVMgICAgICAgICAgIDU4OAorI2RlZmluZSBNQUNIX1RZUEVfR1VSTkVZX0RSViAgICAgICAgICAgNTg5CisjZGVmaW5lIE1BQ0hfVFlQRV9DSEFGRkVFICAgICAgICAgICAgICA1OTAKKyNkZWZpbmUgTUFDSF9UWVBFX1JNUzEwMSAgICAgICAgICAgICAgIDU5MQorI2RlZmluZSBNQUNIX1RZUEVfUlgzNzE1ICAgICAgICAgICAgICAgNTkyCisjZGVmaW5lIE1BQ0hfVFlQRV9TV0lGVCAgICAgICAgICAgICAgICA1OTMKKyNkZWZpbmUgTUFDSF9UWVBFX1JPVkVSUDcgICAgICAgICAgICAgIDU5NAorI2RlZmluZSBNQUNIX1RZUEVfUFI4MThTICAgICAgICAgICAgICAgNTk1CisjZGVmaW5lIE1BQ0hfVFlQRV9UUlhQUk8gICAgICAgICAgICAgICA1OTYKKyNkZWZpbmUgTUFDSF9UWVBFX05TTFUyICAgICAgICAgICAgICAgIDU5NworI2RlZmluZSBNQUNIX1RZUEVfRTQwMCAgICAgICAgICAgICAgICAgNTk4CisjZGVmaW5lIE1BQ0hfVFlQRV9UUkFCICAgICAgICAgICAgICAgICA1OTkKKyNkZWZpbmUgTUFDSF9UWVBFX0NNQ19QVTIgICAgICAgICAgICAgIDYwMAorI2RlZmluZSBNQUNIX1RZUEVfRlVMQ1JVTSAgICAgICAgICAgICAgNjAxCisjZGVmaW5lIE1BQ0hfVFlQRV9ORVRHQVRFNDJYICAgICAgICAgICA2MDIKKyNkZWZpbmUgTUFDSF9UWVBFX1NUUjcxMCAgICAgICAgICAgICAgIDYwMworI2RlZmluZSBNQUNIX1RZUEVfSVhEUEc0MjUgICAgICAgICAgICAgNjA0CisjZGVmaW5lIE1BQ0hfVFlQRV9UT01UT01HTyAgICAgICAgICAgICA2MDUKKyNkZWZpbmUgTUFDSF9UWVBFX1ZFUlNBVElMRV9BQiAgICAgICAgIDYwNgorI2RlZmluZSBNQUNIX1RZUEVfRURCOTMwNyAgICAgICAgICAgICAgNjA3CisjZGVmaW5lIE1BQ0hfVFlQRV9TRzU2NSAgICAgICAgICAgICAgICA2MDgKKyNkZWZpbmUgTUFDSF9UWVBFX0xQRDc5NTI0ICAgICAgICAgICAgIDYwOQorI2RlZmluZSBNQUNIX1RZUEVfTFBENzk1MjUgICAgICAgICAgICAgNjEwCisjZGVmaW5lIE1BQ0hfVFlQRV9STVMxMDAgICAgICAgICAgICAgICA2MTEKKyNkZWZpbmUgTUFDSF9UWVBFX0tCOTIwMCAgICAgICAgICAgICAgIDYxMgorI2RlZmluZSBNQUNIX1RZUEVfU1gxICAgICAgICAgICAgICAgICAgNjEzCisjZGVmaW5lIE1BQ0hfVFlQRV9ITVMzOUM3MDkyICAgICAgICAgICA2MTQKKyNkZWZpbmUgTUFDSF9UWVBFX0FSTUFESUxMTyAgICAgICAgICAgIDYxNQorI2RlZmluZSBNQUNIX1RZUEVfSVBDVSAgICAgICAgICAgICAgICAgNjE2CisjZGVmaW5lIE1BQ0hfVFlQRV9MT09YNzIwICAgICAgICAgICAgICA2MTcKKyNkZWZpbmUgTUFDSF9UWVBFX0lYRFA0NjUgICAgICAgICAgICAgIDYxOAorI2RlZmluZSBNQUNIX1RZUEVfSVhEUDIzNTEgICAgICAgICAgICAgNjE5CisjZGVmaW5lIE1BQ0hfVFlQRV9BRFNWSVggICAgICAgICAgICAgICA2MjAKKyNkZWZpbmUgTUFDSF9UWVBFX0RNMjcwICAgICAgICAgICAgICAgIDYyMQorI2RlZmluZSBNQUNIX1RZUEVfU09DTFRQTFVTICAgICAgICAgICAgNjIyCisjZGVmaW5lIE1BQ0hfVFlQRV9FQ0lBICAgICAgICAgICAgICAgICA2MjMKKyNkZWZpbmUgTUFDSF9UWVBFX0NNNDAwOCAgICAgICAgICAgICAgIDYyNAorI2RlZmluZSBNQUNIX1RZUEVfUDIwMDEgICAgICAgICAgICAgICAgNjI1CisjZGVmaW5lIE1BQ0hfVFlQRV9UV0lTVEVSICAgICAgICAgICAgICA2MjYKKyNkZWZpbmUgTUFDSF9UWVBFX01VRFNIQVJLICAgICAgICAgICAgIDYyNworI2RlZmluZSBNQUNIX1RZUEVfSEIyICAgICAgICAgICAgICAgICAgNjI4CisjZGVmaW5lIE1BQ0hfVFlQRV9JUTgwMzMyICAgICAgICAgICAgICA2MjkKKyNkZWZpbmUgTUFDSF9UWVBFX1NFTkRUICAgICAgICAgICAgICAgIDYzMAorI2RlZmluZSBNQUNIX1RZUEVfTVgySkFaWiAgICAgICAgICAgICAgNjMxCisjZGVmaW5lIE1BQ0hfVFlQRV9NVUxUSUlPICAgICAgICAgICAgICA2MzIKKyNkZWZpbmUgTUFDSF9UWVBFX0hSRElTUExBWSAgICAgICAgICAgIDYzMworI2RlZmluZSBNQUNIX1RZUEVfU0NNQTExQkIgICAgICAgICAgICAgNjM0CisjZGVmaW5lIE1BQ0hfVFlQRV9UUklaRVBTMyAgICAgICAgICAgICA2MzUKKyNkZWZpbmUgTUFDSF9UWVBFX1pFRkVFUkRaQSAgICAgICAgICAgIDYzNgorI2RlZmluZSBNQUNIX1RZUEVfWkVGRUVSRFpCICAgICAgICAgICAgNjM3CisjZGVmaW5lIE1BQ0hfVFlQRV9aRUZFRVJEWkcgICAgICAgICAgICA2MzgKKyNkZWZpbmUgTUFDSF9UWVBFX1pFRkVFUkRaTiAgICAgICAgICAgIDYzOQorI2RlZmluZSBNQUNIX1RZUEVfWkVGRUVSRFpRICAgICAgICAgICAgNjQwCisjZGVmaW5lIE1BQ0hfVFlQRV9HVFdYNTcxNSAgICAgICAgICAgICA2NDEKKyNkZWZpbmUgTUFDSF9UWVBFX0FTVFJPX0pBQ0sgICAgICAgICAgIDY0MworI2RlZmluZSBNQUNIX1RZUEVfVElQMDMgICAgICAgICAgICAgICAgNjQ0CisjZGVmaW5lIE1BQ0hfVFlQRV9BOTIwMEVDICAgICAgICAgICAgICA2NDUKKyNkZWZpbmUgTUFDSF9UWVBFX1BOWDAxMDUgICAgICAgICAgICAgIDY0NgorI2RlZmluZSBNQUNIX1RZUEVfQURDUE9FQ1BVICAgICAgICAgICAgNjQ3CisjZGVmaW5lIE1BQ0hfVFlQRV9DU0I2MzcgICAgICAgICAgICAgICA2NDgKKyNkZWZpbmUgTUFDSF9UWVBFX01MNjlRNjIwMyAgICAgICAgICAgIDY0OQorI2RlZmluZSBNQUNIX1RZUEVfTUI5MjAwICAgICAgICAgICAgICAgNjUwCisjZGVmaW5lIE1BQ0hfVFlQRV9LVUxVTiAgICAgICAgICAgICAgICA2NTEKKyNkZWZpbmUgTUFDSF9UWVBFX1NOQVBQRVIgICAgICAgICAgICAgIDY1MgorI2RlZmluZSBNQUNIX1RZUEVfT1BUSU1BICAgICAgICAgICAgICAgNjUzCisjZGVmaW5lIE1BQ0hfVFlQRV9ETEhTQkMgICAgICAgICAgICAgICA2NTQKKyNkZWZpbmUgTUFDSF9UWVBFX1gzMCAgICAgICAgICAgICAgICAgIDY1NQorI2RlZmluZSBNQUNIX1RZUEVfTjMwICAgICAgICAgICAgICAgICAgNjU2CisjZGVmaW5lIE1BQ0hfVFlQRV9NQU5HQV9LUzg2OTUgICAgICAgICA2NTcKKyNkZWZpbmUgTUFDSF9UWVBFX0FKQVggICAgICAgICAgICAgICAgIDY1OAorI2RlZmluZSBNQUNIX1RZUEVfTkVDX01QOTAwICAgICAgICAgICAgNjU5CisjZGVmaW5lIE1BQ0hfVFlQRV9WVlRLMTAwMCAgICAgICAgICAgICA2NjEKKyNkZWZpbmUgTUFDSF9UWVBFX0tBRkEgICAgICAgICAgICAgICAgIDY2MgorI2RlZmluZSBNQUNIX1RZUEVfVlZUSzMwMDAgICAgICAgICAgICAgNjYzCisjZGVmaW5lIE1BQ0hfVFlQRV9QSU1YMSAgICAgICAgICAgICAgICA2NjQKKyNkZWZpbmUgTUFDSF9UWVBFX09MTElFICAgICAgICAgICAgICAgIDY2NQorI2RlZmluZSBNQUNIX1RZUEVfU0tZTUFYICAgICAgICAgICAgICAgNjY2CisjZGVmaW5lIE1BQ0hfVFlQRV9KQVpaICAgICAgICAgICAgICAgICA2NjcKKyNkZWZpbmUgTUFDSF9UWVBFX1RFTF9UMyAgICAgICAgICAgICAgIDY2OAorI2RlZmluZSBNQUNIX1RZUEVfQUlTSU5PX0ZDUjI1NSAgICAgICAgNjY5CisjZGVmaW5lIE1BQ0hfVFlQRV9CVFdFQiAgICAgICAgICAgICAgICA2NzAKKyNkZWZpbmUgTUFDSF9UWVBFX0RCR19MSDc5NTIwICAgICAgICAgIDY3MQorI2RlZmluZSBNQUNIX1RZUEVfQ000MVhYICAgICAgICAgICAgICAgNjcyCisjZGVmaW5lIE1BQ0hfVFlQRV9UUzcyWFggICAgICAgICAgICAgICA2NzMKKyNkZWZpbmUgTUFDSF9UWVBFX05HR1BYQSAgICAgICAgICAgICAgIDY3NAorI2RlZmluZSBNQUNIX1RZUEVfQ1NCNTM1ICAgICAgICAgICAgICAgNjc1CisjZGVmaW5lIE1BQ0hfVFlQRV9DU0I1MzYgICAgICAgICAgICAgICA2NzYKKyNkZWZpbmUgTUFDSF9UWVBFX1BYQV9UUkFLUE9EICAgICAgICAgIDY3NworI2RlZmluZSBNQUNIX1RZUEVfUFJBWElTICAgICAgICAgICAgICAgNjc4CisjZGVmaW5lIE1BQ0hfVFlQRV9MSDc1NDExICAgICAgICAgICAgICA2NzkKKyNkZWZpbmUgTUFDSF9UWVBFX09UT00gICAgICAgICAgICAgICAgIDY4MAorI2RlZmluZSBNQUNIX1RZUEVfTkVYQ09ERVJfMjQ0MCAgICAgICAgNjgxCisjZGVmaW5lIE1BQ0hfVFlQRV9MT09YNDEwICAgICAgICAgICAgICA2ODIKKyNkZWZpbmUgTUFDSF9UWVBFX1dFU1RMQUtFICAgICAgICAgICAgIDY4MworI2RlZmluZSBNQUNIX1RZUEVfTlNCICAgICAgICAgICAgICAgICAgNjg0CisjZGVmaW5lIE1BQ0hfVFlQRV9FU0xfU0FSVkFfU1ROICAgICAgICA2ODUKKyNkZWZpbmUgTUFDSF9UWVBFX0VTTF9TQVJWQV9URlQgICAgICAgIDY4NgorI2RlZmluZSBNQUNIX1RZUEVfRVNMX1NBUlZBX0lBRCAgICAgICAgNjg3CisjZGVmaW5lIE1BQ0hfVFlQRV9FU0xfU0FSVkFfQUNDICAgICAgICA2ODgKKyNkZWZpbmUgTUFDSF9UWVBFX1RZUEhPT04gICAgICAgICAgICAgIDY4OQorI2RlZmluZSBNQUNIX1RZUEVfQ05BViAgICAgICAgICAgICAgICAgNjkwCisjZGVmaW5lIE1BQ0hfVFlQRV9BNzMwICAgICAgICAgICAgICAgICA2OTEKKyNkZWZpbmUgTUFDSF9UWVBFX05FVFNUQVIgICAgICAgICAgICAgIDY5MgorI2RlZmluZSBNQUNIX1RZUEVfUEhBU0VGQUxFX1NVUEVSQ09OICAgNjkzCisjZGVmaW5lIE1BQ0hfVFlQRV9TSElWQTExMDAgICAgICAgICAgICA2OTQKKyNkZWZpbmUgTUFDSF9UWVBFX0VURVhTQyAgICAgICAgICAgICAgIDY5NQorI2RlZmluZSBNQUNIX1RZUEVfSVhEUEc0NjUgICAgICAgICAgICAgNjk2CisjZGVmaW5lIE1BQ0hfVFlQRV9BOU0yNDEwICAgICAgICAgICAgICA2OTcKKyNkZWZpbmUgTUFDSF9UWVBFX0E5TTI0NDAgICAgICAgICAgICAgIDY5OAorI2RlZmluZSBNQUNIX1RZUEVfQTlNOTc1MCAgICAgICAgICAgICAgNjk5CisjZGVmaW5lIE1BQ0hfVFlQRV9BOU05MzYwICAgICAgICAgICAgICA3MDAKKyNkZWZpbmUgTUFDSF9UWVBFX1VOQzkwICAgICAgICAgICAgICAgIDcwMQorI2RlZmluZSBNQUNIX1RZUEVfRUNPOTIwICAgICAgICAgICAgICAgNzAyCisjZGVmaW5lIE1BQ0hfVFlQRV9TQVRWSUVXICAgICAgICAgICAgICA3MDMKKyNkZWZpbmUgTUFDSF9UWVBFX1JPQURSVU5ORVIgICAgICAgICAgIDcwNAorI2RlZmluZSBNQUNIX1RZUEVfQVQ5MVJNOTIwMEVLICAgICAgICAgNzA1CisjZGVmaW5lIE1BQ0hfVFlQRV9HUDMyICAgICAgICAgICAgICAgICA3MDYKKyNkZWZpbmUgTUFDSF9UWVBFX0dFTSAgICAgICAgICAgICAgICAgIDcwNworI2RlZmluZSBNQUNIX1RZUEVfSTg1OCAgICAgICAgICAgICAgICAgNzA4CisjZGVmaW5lIE1BQ0hfVFlQRV9IWDI3NTAgICAgICAgICAgICAgICA3MDkKKyNkZWZpbmUgTUFDSF9UWVBFX1pFVVNFVkIgICAgICAgICAgICAgIDcxMAorI2RlZmluZSBNQUNIX1RZUEVfUDcwMCAgICAgICAgICAgICAgICAgNzExCisjZGVmaW5lIE1BQ0hfVFlQRV9DUEUgICAgICAgICAgICAgICAgICA3MTIKKyNkZWZpbmUgTUFDSF9UWVBFX1NQSVRaICAgICAgICAgICAgICAgIDcxMworI2RlZmluZSBNQUNIX1RZUEVfTklNQlJBMzQwICAgICAgICAgICAgNzE0CisjZGVmaW5lIE1BQ0hfVFlQRV9MUEMyMlhYICAgICAgICAgICAgICA3MTUKKyNkZWZpbmUgTUFDSF9UWVBFX0NPTUVUMyAgICAgICAgICAgICAgIDcxNgorI2RlZmluZSBNQUNIX1RZUEVfQ09NRVQ0ICAgICAgICAgICAgICAgNzE3CisjZGVmaW5lIE1BQ0hfVFlQRV9DU0I2MjUgICAgICAgICAgICAgICA3MTgKKyNkZWZpbmUgTUFDSF9UWVBFX0ZPUlRVTkVUMiAgICAgICAgICAgIDcxOQorI2RlZmluZSBNQUNIX1RZUEVfUzVIMjIwMCAgICAgICAgICAgICAgNzIwCisjZGVmaW5lIE1BQ0hfVFlQRV9PUFRPUk05MjAgICAgICAgICAgICA3MjEKKyNkZWZpbmUgTUFDSF9UWVBFX0FEU0JJVFNZWEIgICAgICAgICAgIDcyMgorI2RlZmluZSBNQUNIX1RZUEVfQURTU1BIRVJFICAgICAgICAgICAgNzIzCisjZGVmaW5lIE1BQ0hfVFlQRV9BRFNQT1JUQUwgICAgICAgICAgICA3MjQKKyNkZWZpbmUgTUFDSF9UWVBFX0xOMjQxMFNCQyAgICAgICAgICAgIDcyNQorI2RlZmluZSBNQUNIX1RZUEVfQ0IzUlVGQyAgICAgICAgICAgICAgNzI2CisjZGVmaW5lIE1BQ0hfVFlQRV9NUDJVU0IgICAgICAgICAgICAgICA3MjcKKyNkZWZpbmUgTUFDSF9UWVBFX09NQVBfMjQzMFNEUCAgICAgICAgIDkwMAorI2RlZmluZSBNQUNIX1RZUEVfUEROQjMgICAgICAgICAgICAgICAxMDAyCisjZGVmaW5lIE1BQ0hfVFlQRV9PTUFQXzM0MzBTRFAgICAgICAgIDExMzgKKyNkZWZpbmUgTUFDSF9UWVBFX09NQVBfMzQzMExBQlJBRE9SICAgMTYzOQorI2RlZmluZSBNQUNIX1RZUEVfT01BUF9aT09NMiAgICAgICAgICAxOTY3CisjZGVmaW5lIE1BQ0hfVFlQRV9PTUFQXzQ0MzBTRFAgICAgICAgIDIxNjAKKworI2lmZGVmIENPTkZJR19BUkNIX0VCU0ExMTAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VCU0ExMTAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZWJzYTExMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRUJTQTExMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2Vic2ExMTAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfUlBDCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9SSVNDUEMKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcmlzY3BjKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9SSVNDUEMpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19yaXNjcGMoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTkVYVVNQQ0kKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX05FWFVTUENJCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX25leHVzcGNpKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9ORVhVU1BDSSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX25leHVzcGNpKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0VCU0EyODUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VCU0EyODUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZWJzYTI4NSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRUJTQTI4NSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2Vic2EyODUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTkVUV0lOREVSCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9ORVRXSU5ERVIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbmV0d2luZGVyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9ORVRXSU5ERVIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19uZXR3aW5kZXIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfQ0FUUworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ0FUUworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jYXRzKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9DQVRTKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY2F0cygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9UQk9YCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9UQk9YCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3Rib3goKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1RCT1gpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc190Ym94KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0NPMjg1CisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9DTzI4NQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jbzI4NSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ08yODUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19jbzI4NSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9DTFBTNzExMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ0xQUzcxMTAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY2xwczcxMTAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NMUFM3MTEwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY2xwczcxMTAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfQVJDCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BUkNISU1FREVTCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2FyY2hpbWVkZXMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FSQ0hJTUVERVMpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hcmNoaW1lZGVzKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0E1SworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQTVLCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2E1aygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQTVLKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYTVrKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0VUT0lMRQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRVRPSUxFCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2V0b2lsZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRVRPSUxFKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZXRvaWxlKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0xBQ0lFX05BUworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTEFDSUVfTkFTCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2xhY2llX25hcygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTEFDSUVfTkFTKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbGFjaWVfbmFzKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0NMUFM3NTAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9DTFBTNzUwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jbHBzNzUwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ0xQUzc1MDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19jbHBzNzUwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9TSEFSSworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0hBUksKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2hhcmsoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NIQVJLKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2hhcmsoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9CUlVUVVMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0JSVVRVUworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19icnV0dXMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0JSVVRVUykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2JydXR1cygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9QRVJTT05BTF9TRVJWRVIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1BFUlNPTkFMX1NFUlZFUgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19wZXJzb25hbF9zZXJ2ZXIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BFUlNPTkFMX1NFUlZFUikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3BlcnNvbmFsX3NlcnZlcigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0lUU1kKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0lUU1kKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXRzeSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSVRTWSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2l0c3koKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTDcyMDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0w3MjAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2w3MjAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9MNzIwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2w3MjAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfUExFQgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUExFQgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19wbGViKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QTEVCKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcGxlYigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9JTlRFR1JBVE9SCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9JTlRFR1JBVE9SCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2ludGVncmF0b3IoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0lOVEVHUkFUT1IpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19pbnRlZ3JhdG9yKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfSDM2MDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0gzNjAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2gzNjAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9IMzYwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2gzNjAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0lYUDEyMDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0lYUDEyMDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXhwMTIwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSVhQMTIwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2l4cDEyMDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfUDcyMFQKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1A3MjBUCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3A3MjB0KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QNzIwVCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3A3MjB0KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfQVNTQUJFVAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQVNTQUJFVAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hc3NhYmV0KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BU1NBQkVUKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXNzYWJldCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX1ZJQ1RPUgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfVklDVE9SCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3ZpY3RvcigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfVklDVE9SKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdmljdG9yKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfTEFSVAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTEFSVAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19sYXJ0KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9MQVJUKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbGFydCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX1JBTkdFUgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUkFOR0VSCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3JhbmdlcigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUkFOR0VSKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcmFuZ2VyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfR1JBUEhJQ1NDTElFTlQKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0dSQVBISUNTQ0xJRU5UCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2dyYXBoaWNzY2xpZW50KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9HUkFQSElDU0NMSUVOVCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2dyYXBoaWNzY2xpZW50KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfWFA4NjAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1hQODYwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3hwODYwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9YUDg2MCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3hwODYwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfQ0VSRgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ0VSRgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jZXJmKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9DRVJGKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY2VyZigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX05BTk9FTkdJTkUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX05BTk9FTkdJTkUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbmFub2VuZ2luZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTkFOT0VOR0lORSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX25hbm9lbmdpbmUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9GUElDCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9GUElDCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2ZwaWMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0ZQSUMpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19mcGljKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfRVhURU5FWDEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VYVEVORVgxCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2V4dGVuZXgxKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9FWFRFTkVYMSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2V4dGVuZXgxKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfU0hFUk1BTgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0hFUk1BTgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zaGVybWFuKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TSEVSTUFOKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2hlcm1hbigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0FDQ0VMRU5UCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BQ0NFTEVOVF9TQQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hY2NlbGVudF9zYSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQUNDRUxFTlRfU0EpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hY2NlbGVudF9zYSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9MNzIwMF9BQ0NFTEVOVAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQUNDRUxFTlRfTDcyMDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWNjZWxlbnRfbDcyMDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FDQ0VMRU5UX0w3MjAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWNjZWxlbnRfbDcyMDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9ORVRQT1JUCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9ORVRQT1JUCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX25ldHBvcnQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX05FVFBPUlQpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19uZXRwb3J0KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfUEFOR09MSU4KKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1BBTkdPTElOCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3BhbmdvbGluKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QQU5HT0xJTikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3BhbmdvbGluKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfWU9QWQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfWU9QWQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc195b3B5KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9ZT1BZKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfeW9weSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0NPT0xJREdFCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9DT09MSURHRQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jb29saWRnZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ09PTElER0UpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19jb29saWRnZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0hVV19XRUJQQU5FTAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSFVXX1dFQlBBTkVMCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2h1d193ZWJwYW5lbCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSFVXX1dFQlBBTkVMKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaHV3X3dlYnBhbmVsKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1NQT1RNRQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU1BPVE1FCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3Nwb3RtZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU1BPVE1FKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3BvdG1lKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0ZSRUVCSVJECisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9GUkVFQklSRAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19mcmVlYmlyZCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRlJFRUJJUkQpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19mcmVlYmlyZCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9USTkyNQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfVEk5MjUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdGk5MjUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1RJOTI1KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdGk5MjUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfUklTQ1NUQVRJT04KKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1JJU0NTVEFUSU9OCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3Jpc2NzdGF0aW9uKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9SSVNDU1RBVElPTikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3Jpc2NzdGF0aW9uKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfQ0FWWQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ0FWWQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jYXZ5KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9DQVZZKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY2F2eSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0pPUk5BREE3MjAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0pPUk5BREE3MjAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfam9ybmFkYTcyMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSk9STkFEQTcyMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2pvcm5hZGE3MjAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9PTU5JTUVURVIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX09NTklNRVRFUgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19vbW5pbWV0ZXIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX09NTklNRVRFUikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX29tbmltZXRlcigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9FREI3MjExCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9FREI3MjExCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2VkYjcyMTEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0VEQjcyMTEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19lZGI3MjExKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfQ0lUWUdPCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9DSVRZR08KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY2l0eWdvKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9DSVRZR08pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19jaXR5Z28oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9QRlMxNjgKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1BGUzE2OAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19wZnMxNjgoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BGUzE2OCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3BmczE2OCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX1NQT1QKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1NQT1QKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3BvdCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU1BPVCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3Nwb3QoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9GTEVYQU5FVAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRkxFWEFORVQKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZmxleGFuZXQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0ZMRVhBTkVUKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZmxleGFuZXQoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfV0VCUEFMCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9XRUJQQUwKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfd2VicGFsKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9XRUJQQUwpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc193ZWJwYWwoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9MSU5QREEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0xJTlBEQQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19saW5wZGEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0xJTlBEQSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2xpbnBkYSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9BTkFLSU4KKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FOQUtJTgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hbmFraW4oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FOQUtJTikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2FuYWtpbigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX01WSQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTVZJCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX212aSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTVZJKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbXZpKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfSlVQSVRFUgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSlVQSVRFUgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19qdXBpdGVyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9KVVBJVEVSKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfanVwaXRlcigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9QU0lPTlcKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1BTSU9OVworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19wc2lvbncoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BTSU9OVykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3BzaW9udygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0FMTgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQUxOCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2FsbigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQUxOKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWxuKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0NBTUVMT1QKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NBTUVMT1QKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZXB4YSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ0FNRUxPVCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2VweGEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9HRFMyMjAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9HRFMyMjAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2dkczIyMDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0dEUzIyMDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19nZHMyMjAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfUFNJT05fU0VSSUVTNworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUFNJT05fU0VSSUVTNworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19wc2lvbl9zZXJpZXM3KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QU0lPTl9TRVJJRVM3KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcHNpb25fc2VyaWVzNygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX1hGSUxFCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9YRklMRQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc194ZmlsZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfWEZJTEUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc194ZmlsZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9BQ0NFTEVOVF9FUDkzMTIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FDQ0VMRU5UX0VQOTMxMgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hY2NlbGVudF9lcDkzMTIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FDQ0VMRU5UX0VQOTMxMikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2FjY2VsZW50X2VwOTMxMigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9JQzIwMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSUMyMDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaWMyMDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0lDMjAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaWMyMDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9DUkVESVRMQVJUCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9DUkVESVRMQVJUCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2NyZWRpdGxhcnQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NSRURJVExBUlQpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19jcmVkaXRsYXJ0KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfSFRNCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9IVE0KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaHRtKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9IVE0pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19odG0oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfSVE4MDMxMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSVE4MDMxMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19pcTgwMzEwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9JUTgwMzEwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXE4MDMxMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0ZSRUVCT1QKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0ZSRUVCT1QKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZnJlZWJvdCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRlJFRUJPVCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2ZyZWVib3QoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfRU5URUwKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VOVEVMCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2VudGVsKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9FTlRFTCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2VudGVsKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0VOUDM1MTAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VOUDM1MTAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZW5wMzUxMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRU5QMzUxMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2VucDM1MTAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9UUklaRVBTCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9UUklaRVBTCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3RyaXplcHMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1RSSVpFUFMpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc190cml6ZXBzKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfTkVTQQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTkVTQQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19uZXNhKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9ORVNBKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbmVzYSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9WRU5VUworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfVkVOVVMKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdmVudXMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1ZFTlVTKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdmVudXMoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfVEFSRElTCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9UQVJESVMKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdGFyZGlzKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9UQVJESVMpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc190YXJkaXMoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTUVSQ1VSWQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTUVSQ1VSWQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19tZXJjdXJ5KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9NRVJDVVJZKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbWVyY3VyeSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0VNUEVHCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9FTVBFRworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lbXBlZygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRU1QRUcpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19lbXBlZygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9JODAyMDBGQ0MKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0k4MDIwMEZDQworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hZGlfZXZiKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9JODAyMDBGQ0MpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hZGlfZXZiKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfSVRUX0NQQgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSVRUX0NQQgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19pdHRfY3BiKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9JVFRfQ1BCKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXR0X2NwYigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX1NWQworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU1ZDCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3N2YygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU1ZDKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3ZjKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfQUxQSEEyCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BTFBIQTIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWxwaGEyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BTFBIQTIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hbHBoYTIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9BTFBIQTEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FMUEhBMQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hbHBoYTEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FMUEhBMSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2FscGhhMSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9ORVRBUk0KKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX05FVEFSTQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19uZXRhcm0oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX05FVEFSTSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX25ldGFybSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX1NJTVBBRAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0lNUEFECisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NpbXBhZCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU0lNUEFEKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2ltcGFkKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1BEQTEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1BEQTEKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcGRhMSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUERBMSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3BkYTEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTFVCQk9DSworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTFVCQk9DSworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19sdWJib2NrKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9MVUJCT0NLKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbHViYm9jaygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9BTklLTworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQU5JS08KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYW5pa28oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FOSUtPKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYW5pa28oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfQ0xFUDcyMTIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NMRVA3MjEyCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2NsZXA3MjEyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9DTEVQNzIxMikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2NsZXA3MjEyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0NTODk3MTIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NTODk3MTIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY3M4OTcxMigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ1M4OTcxMikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2NzODk3MTIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9XRUFSQVJNCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9XRUFSQVJNCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3dlYXJhcm0oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1dFQVJBUk0pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc193ZWFyYXJtKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfUE9TU0lPX1BYCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QT1NTSU9fUFgKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcG9zc2lvX3B4KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QT1NTSU9fUFgpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19wb3NzaW9fcHgoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9TSURFQVJNCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TSURFQVJNCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NpZGVhcm0oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NJREVBUk0pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zaWRlYXJtKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfU1RPUksKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1NUT1JLCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3N0b3JrKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TVE9SSykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3N0b3JrKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfU0hBTk5PTgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0hBTk5PTgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zaGFubm9uKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TSEFOTk9OKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2hhbm5vbigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9BQ0UKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FDRQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hY2UoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FDRSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2FjZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0JBTExZQVJNCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9CQUxMWUFSTQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19iYWxseWFybSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQkFMTFlBUk0pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19iYWxseWFybSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX1NJTVBVVEVSCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TSU1QVVRFUgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zaW1wdXRlcigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU0lNUFVURVIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zaW1wdXRlcigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX05FWFRFUk0KKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX05FWFRFUk0KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbmV4dGVybSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTkVYVEVSTSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX25leHRlcm0oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9TQTExMDBfRUxGCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TQTExMDBfRUxGCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NhMTEwMF9lbGYoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NBMTEwMF9FTEYpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zYTExMDBfZWxmKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfR0FUT1IKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0dBVE9SCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2dhdG9yKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9HQVRPUikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2dhdG9yKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0dSQU5JVEUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0dSQU5JVEUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZ3Jhbml0ZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfR1JBTklURSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2dyYW5pdGUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9DT05TVVMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NPTlNVUworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jb25zdXMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NPTlNVUykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2NvbnN1cygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9BQUVEMjAwMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQUFFRDIwMDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWFlZDIwMDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FBRUQyMDAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWFlZDIwMDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfQ0RCODk3MTIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NEQjg5NzEyCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2NkYjg5NzEyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9DREI4OTcxMikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2NkYjg5NzEyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfR1JBUEhJQ1NNQVNURVIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0dSQVBISUNTTUFTVEVSCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2dyYXBoaWNzbWFzdGVyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9HUkFQSElDU01BU1RFUikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2dyYXBoaWNzbWFzdGVyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfQURTQklUU1kKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FEU0JJVFNZCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2Fkc2JpdHN5KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BRFNCSVRTWSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2Fkc2JpdHN5KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1BYQV9JRFAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1BYQV9JRFAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcHhhX2lkcCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUFhBX0lEUCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3B4YV9pZHAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfUExDRQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUExDRQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19wbGNlKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QTENFKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcGxjZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX1BUX1NZU1RFTTMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1BUX1NZU1RFTTMKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcHRfc3lzdGVtMygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUFRfU1lTVEVNMykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3B0X3N5c3RlbTMoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTUVEQUxCCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9NRURBTEIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbXVycGh5KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9NRURBTEIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19tdXJwaHkoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfRUFHTEUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VBR0xFCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2VhZ2xlKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9FQUdMRSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2VhZ2xlKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0RTQzIxCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9EU0MyMQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19kc2MyMSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRFNDMjEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19kc2MyMSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9EU0MyNAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRFNDMjQKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZHNjMjQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0RTQzI0KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZHNjMjQoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfVEk1NDcyCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9USTU0NzIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdGk1NDcyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9USTU0NzIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc190aTU0NzIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfQVVUQ1BVMTIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FVVENQVTEyCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2F1dGNwdTEyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BVVRDUFUxMikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2F1dGNwdTEyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1VFTkdJTkUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1VFTkdJTkUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdWVuZ2luZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfVUVOR0lORSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3VlbmdpbmUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9CTFVFU1RFTQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQkxVRVNURU0KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYmx1ZXN0ZW0oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0JMVUVTVEVNKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYmx1ZXN0ZW0oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfWElOR1U4CisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9YSU5HVTgKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfeGluZ3U4KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9YSU5HVTgpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc194aW5ndTgoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfQlVTSFNUQgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQlVTSFNUQgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19idXNoc3RiKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9CVVNIU1RCKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYnVzaHN0YigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0VQU0lMT04xCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9FUFNJTE9OMQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lcHNpbG9uMSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRVBTSUxPTjEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19lcHNpbG9uMSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0JBTExPT04KKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0JBTExPT04KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYmFsbG9vbigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQkFMTE9PTikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2JhbGxvb24oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfUFVQUFkKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1BVUFBZCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3B1cHB5KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QVVBQWSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3B1cHB5KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfRUxST1kKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VMUk9ZCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2Vscm95KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9FTFJPWSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2Vscm95KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0dNUzcyMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfR01TNzIwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2dtczcyMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfR01TNzIwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZ21zNzIwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1MyNFgKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1MyNFgKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfczI0eCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUzI0WCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3MyNHgoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfSlRFTF9DTEVQNzMxMgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSlRFTF9DTEVQNzMxMgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19qdGVsX2NsZXA3MzEyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9KVEVMX0NMRVA3MzEyKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfanRlbF9jbGVwNzMxMigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9DWDgyMVhYCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9DWDgyMVhYCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2N4ODIxeHgoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NYODIxWFgpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19jeDgyMXh4KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0VEQjczMTIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VEQjczMTIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZWRiNzMxMigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRURCNzMxMikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2VkYjczMTIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9CU0ExMTEwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9CU0ExMTEwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2JzYTExMTAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0JTQTExMTApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19ic2ExMTEwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1BPV0VSUElOCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QT1dFUlBJTgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19wb3dlcnBpbigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUE9XRVJQSU4pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19wb3dlcnBpbigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9PUEVOQVJNCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9PUEVOQVJNCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX29wZW5hcm0oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX09QRU5BUk0pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19vcGVuYXJtKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfV0hJVEVDSEFQRUwKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1dISVRFQ0hBUEVMCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3doaXRlY2hhcGVsKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9XSElURUNIQVBFTCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3doaXRlY2hhcGVsKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfSDMxMDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0gzMTAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2gzMTAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9IMzEwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2gzMTAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfSDM4MDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0gzODAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2gzODAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9IMzgwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2gzODAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0JMVUVfVjEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0JMVUVfVjEKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYmx1ZV92MSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQkxVRV9WMSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2JsdWVfdjEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfUFhBX0NFUkYKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1BYQV9DRVJGCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3B4YV9jZXJmKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QWEFfQ0VSRikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3B4YV9jZXJmKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0FSTTdURVZCCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BUk03VEVWQgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hcm03dGV2YigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQVJNN1RFVkIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hcm03dGV2YigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0Q3NDAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9ENzQwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19kNzQwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRDc0MDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19kNzQwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9QSVJBTkhBCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QSVJBTkhBCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3BpcmFuaGEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BJUkFOSEEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19waXJhbmhhKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfU0JDQU1FTE9UCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TQkNBTUVMT1QKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2JjYW1lbG90KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TQkNBTUVMT1QpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zYmNhbWVsb3QoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9LSU5HUworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfS0lOR1MKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfa2luZ3MoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0tJTkdTKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfa2luZ3MoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfU01ESzI0MDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1NNREsyNDAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NtZGsyNDAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TTURLMjQwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3NtZGsyNDAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfQ09MTElFCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9DT0xMSUUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY29sbGllKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9DT0xMSUUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19jb2xsaWUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfSURSCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9JRFIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaWRyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9JRFIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19pZHIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9CQURHRTQKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0JBREdFNAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19iYWRnZTQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0JBREdFNCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2JhZGdlNCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9XRUJORVQKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1dFQk5FVAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc193ZWJuZXQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1dFQk5FVCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3dlYm5ldCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0Q3MzAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9ENzMwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19kNzMwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRDczMDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19kNzMwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0NFUAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ0VQCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2NlcCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ0VQKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY2VwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0ZPUlRVTkVUCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9GT1JUVU5FVAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19mb3J0dW5ldCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRk9SVFVORVQpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19mb3J0dW5ldCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9WQzU0N1gKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1ZDNTQ3WAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc192YzU0N3goKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1ZDNTQ3WCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3ZjNTQ3eCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0ZJTEVXQUxLRVIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0ZJTEVXQUxLRVIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZmlsZXdhbGtlcigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRklMRVdBTEtFUikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2ZpbGV3YWxrZXIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9ORVRHQVRFV0FZCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9ORVRHQVRFV0FZCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX25ldGdhdGV3YXkoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX05FVEdBVEVXQVkpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19uZXRnYXRld2F5KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfU1lNQk9MMjgwMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU1lNQk9MMjgwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zeW1ib2wyODAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TWU1CT0wyODAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3ltYm9sMjgwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX1NVTlMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1NVTlMKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3VucygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU1VOUykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3N1bnMoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9GUk9ETworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRlJPRE8KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZnJvZG8oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0ZST0RPKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZnJvZG8oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9NQUNIX1RZVEVfTVMzMDEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX01BQ0hfVFlURV9NUzMwMQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19tczMwMSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTUFDSF9UWVRFX01TMzAxKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbXMzMDEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTVgxQURTCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9NWDFBRFMKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbXgxYWRzKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9NWDFBRFMpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19teDFhZHMoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfSDcyMDEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0g3MjAxCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2g3MjAxKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9INzIwMSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2g3MjAxKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0g3MjAyCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9INzIwMgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19oNzIwMigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSDcyMDIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19oNzIwMigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9BTUlDTworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQU1JQ08KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYW1pY28oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FNSUNPKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYW1pY28oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9JQU0KKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0lBTQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19pYW0oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0lBTSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2lhbSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX1RUNTMwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9UVDUzMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc190dDUzMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfVFQ1MzApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc190dDUzMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9TQU0yNDAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TQU0yNDAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NhbTI0MDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NBTTI0MDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zYW0yNDAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfSk9STkFEQTU2WAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSk9STkFEQTU2WAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19qb3JuYWRhNTZ4KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9KT1JOQURBNTZYKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfam9ybmFkYTU2eCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0FDVElWRQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQUNUSVZFCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2FjdGl2ZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQUNUSVZFKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWN0aXZlKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0lRODAzMjEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0lRODAzMjEKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXE4MDMyMSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSVE4MDMyMSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2lxODAzMjEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9XSUQKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1dJRAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc193aWQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1dJRCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3dpZCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9TQUJJTkFMCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TQUJJTkFMCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NhYmluYWwoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NBQklOQUwpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zYWJpbmFsKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0lYUDQyNV9NQVRBQ1VNQkUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0lYUDQyNV9NQVRBQ1VNQkUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXhwNDI1X21hdGFjdW1iZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSVhQNDI1X01BVEFDVU1CRSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2l4cDQyNV9tYXRhY3VtYmUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9NSU5JUFJJTlQKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX01JTklQUklOVAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19taW5pcHJpbnQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01JTklQUklOVCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX21pbmlwcmludCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9BRE01MTBYCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BRE01MTBYCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2FkbTUxMHgoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FETTUxMFgpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hZG01MTB4KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfU1ZTMjAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TVlMyMDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3ZzMjAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TVlMyMDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zdnMyMDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfQVRHX1RDVQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQVRHX1RDVQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hdGdfdGN1KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BVEdfVENVKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXRnX3RjdSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0pPUk5BREE4MjAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0pPUk5BREE4MjAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfam9ybmFkYTgyMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSk9STkFEQTgyMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2pvcm5hZGE4MjAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfUzNDNDRCMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUzNDNDRCMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zM2M0NGIwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TM0M0NEIwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfczNjNDRiMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9NQVJHSVMyCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9NQVJHSVMyCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX21hcmdpczIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01BUkdJUzIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19tYXJnaXMyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0tTODY5NQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfS1M4Njk1CisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2tzODY5NSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfS1M4Njk1KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfa3M4Njk1KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0JSSAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQlJICisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2JyaCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQlJIKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYnJoKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1MzQzI0MTAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1MzQzI0MTAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfczNjMjQxMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUzNDMjQxMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3MzYzI0MTAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfUE9TU0lPX1BYMzAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1BPU1NJT19QWDMwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3Bvc3Npb19weDMwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QT1NTSU9fUFgzMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3Bvc3Npb19weDMwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1MzQzI4MDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1MzQzI4MDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfczNjMjgwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUzNDMjgwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3MzYzI4MDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9GTEVFVFdPT0QKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0ZMRUVUV09PRAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19mbGVldHdvb2QoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0ZMRUVUV09PRCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2ZsZWV0d29vZCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9PTUFIQQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfT01BSEEKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfb21haGEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX09NQUhBKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfb21haGEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfVEE3CisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9UQTcKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdGE3KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9UQTcpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc190YTcoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9OT1ZBCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9OT1ZBCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX25vdmEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX05PVkEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19ub3ZhKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0hNSworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSE1LCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2htaygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSE1LKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaG1rKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0tBUk8KKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0tBUk8KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfa2FybygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfS0FSTykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2thcm8oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9GRVNURVIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0ZFU1RFUgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19mZXN0ZXIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0ZFU1RFUikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2Zlc3RlcigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9HUEkKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0dQSQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19ncGkoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0dQSSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2dwaSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9TTURLMjQxMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU01ESzI0MTAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc21kazI0MTAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NNREsyNDEwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc21kazI0MTAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfSTUxOQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSTUxOQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19pNTE5KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9JNTE5KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaTUxOSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX05FWElPCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9ORVhJTworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19uZXhpbygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTkVYSU8pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19uZXhpbygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0JJVEJPWAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQklUQk9YCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2JpdGJveCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQklUQk9YKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYml0Ym94KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfRzIwMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRzIwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19nMjAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9HMjAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZzIwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0dJTEwKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0dJTEwKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZ2lsbCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfR0lMTCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2dpbGwoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfUFhBX01FUkNVUlkKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1BYQV9NRVJDVVJZCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3B4YV9tZXJjdXJ5KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QWEFfTUVSQ1VSWSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3B4YV9tZXJjdXJ5KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0NFSVZBCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9DRUlWQQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jZWl2YSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ0VJVkEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19jZWl2YSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0ZSRVQKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0ZSRVQKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZnJldCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRlJFVCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2ZyZXQoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9FTUFJTFBIT05FCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9FTUFJTFBIT05FCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2VtYWlscGhvbmUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0VNQUlMUEhPTkUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19lbWFpbHBob25lKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0gzOTAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9IMzkwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19oMzkwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSDM5MDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19oMzkwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9QWEExCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QWEExCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3B4YTEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BYQTEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19weGExKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfS09BTjM2OQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfS09BTjM2OQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19rb2FuMzY5KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9LT0FOMzY5KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfa29hbjM2OSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9DT0dFTlQKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NPR0VOVAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jb2dlbnQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NPR0VOVCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2NvZ2VudCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9FU0xfU0lNUFVURVIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VTTF9TSU1QVVRFUgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lc2xfc2ltcHV0ZXIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0VTTF9TSU1QVVRFUikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2VzbF9zaW1wdXRlcigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9FU0xfU0lNUFVURVJfQ0xSCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9FU0xfU0lNUFVURVJfQ0xSCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2VzbF9zaW1wdXRlcl9jbHIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0VTTF9TSU1QVVRFUl9DTFIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19lc2xfc2ltcHV0ZXJfY2xyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0VTTF9TSU1QVVRFUl9CVworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRVNMX1NJTVBVVEVSX0JXCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2VzbF9zaW1wdXRlcl9idygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRVNMX1NJTVBVVEVSX0JXKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZXNsX3NpbXB1dGVyX2J3KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0hIUF9DUkFETEUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0hIUF9DUkFETEUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaGhwX2NyYWRsZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSEhQX0NSQURMRSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2hocF9jcmFkbGUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfSEU1MDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0hFNTAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2hlNTAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9IRTUwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2hlNTAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfSU5IQU5ERUxGMgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSU5IQU5ERUxGMgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19pbmhhbmRlbGYyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9JTkhBTkRFTEYyKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaW5oYW5kZWxmMigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0lOSEFOREZUSVAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0lOSEFOREZUSVAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaW5oYW5kZnRpcCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSU5IQU5ERlRJUCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2luaGFuZGZ0aXAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9ETlAxMTEwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9ETlAxMTEwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2RucDExMTAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0ROUDExMTApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19kbnAxMTEwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfUE5QMTExMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUE5QMTExMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19wbnAxMTEwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QTlAxMTEwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcG5wMTExMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9DU0IyMjYKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NTQjIyNgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jc2IyMjYoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NTQjIyNikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2NzYjIyNigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0FSTk9MRAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQVJOT0xECisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2Fybm9sZCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQVJOT0xEKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXJub2xkKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1ZPSUNFQkxVRQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfVk9JQ0VCTFVFCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3ZvaWNlYmx1ZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfVk9JQ0VCTFVFKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdm9pY2VibHVlKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0paODAyOAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSlo4MDI4CisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2p6ODAyOCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSlo4MDI4KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfano4MDI4KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0g1NDAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9INTQwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19oNTQwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSDU0MDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19oNTQwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0ZPUlRFCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9GT1JURQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19mb3J0ZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRk9SVEUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19mb3J0ZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0FDQU0KKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FDQU0KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWNhbSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQUNBTSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2FjYW0oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9BQk9YCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BQk9YCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2Fib3goKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FCT1gpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hYm94KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0FUTUVMCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BVE1FTAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hdG1lbCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQVRNRUwpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hdG1lbCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9TSVRTQU5HCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TSVRTQU5HCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NpdHNhbmcoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NJVFNBTkcpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zaXRzYW5nKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfQ1BVMTExMExDRE5FVAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ1BVMTExMExDRE5FVAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jcHUxMTEwbGNkbmV0KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9DUFUxMTEwTENETkVUKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY3B1MTExMGxjZG5ldCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9NUExfVkNNQTkKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX01QTF9WQ01BOQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19tcGxfdmNtYTkoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01QTF9WQ01BOSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX21wbF92Y21hOSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9PUFVTX0ExCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9PUFVTX0ExCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX29wdXNfYTEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX09QVVNfQTEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19vcHVzX2ExKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0RBWVRPTkEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0RBWVRPTkEKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZGF5dG9uYSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfREFZVE9OQSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2RheXRvbmEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9LSUxMQkVBUgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfS0lMTEJFQVIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfa2lsbGJlYXIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0tJTExCRUFSKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfa2lsbGJlYXIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfWU9ITworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfWU9ITworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc195b2hvKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9ZT0hPKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfeW9obygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9KQVNQRVIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0pBU1BFUgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19qYXNwZXIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0pBU1BFUikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2phc3BlcigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9EU0MyNQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRFNDMjUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZHNjMjUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0RTQzI1KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZHNjMjUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfT01BUF9JTk5PVkFUT1IKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX09NQVBfSU5OT1ZBVE9SCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX29tYXBfaW5ub3ZhdG9yKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9PTUFQX0lOTk9WQVRPUikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX29tYXBfaW5ub3ZhdG9yKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1JBTVNFUworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUkFNU0VTCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3JhbXNlcygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUkFNU0VTKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcmFtc2VzKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1MyOFgKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1MyOFgKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfczI4eCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUzI4WCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3MyOHgoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTVBPUlQzCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9NUE9SVDMKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbXBvcnQzKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9NUE9SVDMpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19tcG9ydDMoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfUFhBX0VBR0xFMjUwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QWEFfRUFHTEUyNTAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcHhhX2VhZ2xlMjUwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QWEFfRUFHTEUyNTApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19weGFfZWFnbGUyNTAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfUERCCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QREIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcGRiKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QREIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19wZGIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9CTFVFXzJHCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9CTFVFXzJHCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2JsdWVfMmcoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0JMVUVfMkcpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19ibHVlXzJnKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfQkxVRUFSQ0gKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0JMVUVBUkNICisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2JsdWVhcmNoKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9CTFVFQVJDSCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2JsdWVhcmNoKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0lYRFAyNDAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9JWERQMjQwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19peGRwMjQwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSVhEUDI0MDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19peGRwMjQwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9JWERQMjgwMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSVhEUDI4MDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXhkcDI4MDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0lYRFAyODAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXhkcDI4MDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9FWFBMT1JFUgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRVhQTE9SRVIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZXhwbG9yZXIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0VYUExPUkVSKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZXhwbG9yZXIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfSVhEUDQyNQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSVhEUDQyNQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19peGRwNDI1KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9JWERQNDI1KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXhkcDQyNSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9DSElNUAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ0hJTVAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY2hpbXAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NISU1QKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY2hpbXAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfU1RPUktfTkVTVAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU1RPUktfTkVTVAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zdG9ya19uZXN0KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TVE9SS19ORVNUKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3RvcmtfbmVzdCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9TVE9SS19FR0cKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1NUT1JLX0VHRworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zdG9ya19lZ2coKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NUT1JLX0VHRykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3N0b3JrX2VnZygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX1dJU01PCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9XSVNNTworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc193aXNtbygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfV0lTTU8pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc193aXNtbygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9FWkxJTlgKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VaTElOWAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lemxpbngoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0VaTElOWCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2V6bGlueCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9BVDkxUk05MjAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BVDkxUk05MjAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2F0OTFybTkyMDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FUOTFSTTkyMDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hdDkxcm05MjAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX09SSU9OCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9PUklPTgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19vcmlvbigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfT1JJT04pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19vcmlvbigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9ORVBUVU5FCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9ORVBUVU5FCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX25lcHR1bmUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX05FUFRVTkUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19uZXB0dW5lKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfSEFDS0tJVAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSEFDS0tJVAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19oYWNra2l0KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9IQUNLS0lUKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaGFja2tpdCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9QWEFfV0lOUzMwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QWEFfV0lOUzMwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3B4YV93aW5zMzAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BYQV9XSU5TMzApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19weGFfd2luczMwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfTEFWSU5OQQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTEFWSU5OQQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19sYXZpbm5hKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9MQVZJTk5BKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbGF2aW5uYSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9QWEFfVUVOR0lORQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUFhBX1VFTkdJTkUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcHhhX3VlbmdpbmUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BYQV9VRU5HSU5FKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcHhhX3VlbmdpbmUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfSU5OT0tPTQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSU5OT0tPTQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19pbm5va29tKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9JTk5PS09NKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaW5ub2tvbSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9CTVMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0JNUworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19ibXMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0JNUykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2JtcygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9JWENEUDExMDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0lYQ0RQMTEwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19peGNkcDExMDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0lYQ0RQMTEwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2l4Y2RwMTEwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9QUlBNQzExMDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1BSUE1DMTEwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19wcnBtYzExMDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BSUE1DMTEwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3BycG1jMTEwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9BVDkxUk05MjAwREsKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FUOTFSTTkyMDBESworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hdDkxcm05MjAwZGsoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FUOTFSTTkyMDBESykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2F0OTFybTkyMDBkaygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9BUk1TVElDSworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQVJNU1RJQ0sKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXJtc3RpY2soKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FSTVNUSUNLKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXJtc3RpY2soKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfQVJNT05JRQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQVJNT05JRQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hcm1vbmllKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BUk1PTklFKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXJtb25pZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9NUE9SVDEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX01QT1JUMQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19tcG9ydDEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01QT1JUMSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX21wb3J0MSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9TM0M1NDEwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TM0M1NDEwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3MzYzU0MTAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1MzQzU0MTApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zM2M1NDEwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1pDUDMyMEEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1pDUDMyMEEKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfemNwMzIwYSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfWkNQMzIwQSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3pjcDMyMGEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfSV9CT1gKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0lfQk9YCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2lfYm94KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9JX0JPWCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2lfYm94KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1NUTEMxNTAyCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TVExDMTUwMgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zdGxjMTUwMigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU1RMQzE1MDIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zdGxjMTUwMigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9TSVJFTgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0lSRU4KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2lyZW4oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NJUkVOKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2lyZW4oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfR1JFRU5MQUtFCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9HUkVFTkxBS0UKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZ3JlZW5sYWtlKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9HUkVFTkxBS0UpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19ncmVlbmxha2UoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfQVJHVVMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FSR1VTCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2FyZ3VzKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BUkdVUykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2FyZ3VzKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfQ09NQkFER0UKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NPTUJBREdFCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2NvbWJhZGdlKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9DT01CQURHRSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2NvbWJhZGdlKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1JPS0VQWEEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1JPS0VQWEEKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcm9rZXB4YSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUk9LRVBYQSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3Jva2VweGEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfQ0lOVEVHUkFUT1IKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NJTlRFR1JBVE9SCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2NpbnRlZ3JhdG9yKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9DSU5URUdSQVRPUikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2NpbnRlZ3JhdG9yKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0dVSURFQTA3CisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9HVUlERUEwNworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19ndWlkZWEwNygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfR1VJREVBMDcpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19ndWlkZWEwNygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9UQVQyNTcKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1RBVDI1NworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc190YXQyNTcoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1RBVDI1NykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3RhdDI1NygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9JR1AyNDI1CisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9JR1AyNDI1CisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2lncDI0MjUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0lHUDI0MjUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19pZ3AyNDI1KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0JMVUVHUkFNTUEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0JMVUVHUkFNTUEKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYmx1ZWdyYW1hKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9CTFVFR1JBTU1BKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYmx1ZWdyYW1hKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0lQT0QKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0lQT0QKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXBvZCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSVBPRCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2lwb2QoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfQURTQklUU1lYCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BRFNCSVRTWVgKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWRzYml0c3l4KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BRFNCSVRTWVgpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hZHNiaXRzeXgoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfVFJJWkVQUzIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1RSSVpFUFMyCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3RyaXplcHMyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9UUklaRVBTMikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3RyaXplcHMyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1ZJUEVSCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9WSVBFUgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc192aXBlcigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfVklQRVIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc192aXBlcigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX0FEU0JJVFNZUExVUworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQURTQklUU1lQTFVTCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2Fkc2JpdHN5cGx1cygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQURTQklUU1lQTFVTKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWRzYml0c3lwbHVzKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfQURTQUdDCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BRFNBR0MKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWRzYWdjKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BRFNBR0MpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hZHNhZ2MoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfU1RQNzMxMgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU1RQNzMxMgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zdHA3MzEyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TVFA3MzEyKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3RwNzMxMigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9OWF9QSE5YCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9OWF9QSE5YCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX254X3BobngoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX05YX1BITlgpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19ueF9waG54KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1dFUF9FUDI1MAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfV0VQX0VQMjUwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3dlcF9lcDI1MCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfV0VQX0VQMjUwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfd2VwX2VwMjUwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0lOSEFOREVMRjMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0lOSEFOREVMRjMKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaW5oYW5kZWxmMygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSU5IQU5ERUxGMykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2luaGFuZGVsZjMoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfQURJX0NPWU9URQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQURJX0NPWU9URQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hZGlfY295b3RlKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BRElfQ09ZT1RFKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWRpX2NveW90ZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9JWU9OSVgKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0lZT05JWAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19peW9uaXgoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0lZT05JWCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2l5b25peCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9EQU1JQ0FNX1NBMTExMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfREFNSUNBTV9TQTExMTAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZGFtaWNhbTEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0RBTUlDQU1fU0ExMTEwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZGFtaWNhbTEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTUVHMDMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX01FRzAzCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX21lZzAzKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9NRUcwMykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX21lZzAzKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1BYQV9XSElURUNIQVBFTAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUFhBX1dISVRFQ0hBUEVMCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3B4YV93aGl0ZWNoYXBlbCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUFhBX1dISVRFQ0hBUEVMKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcHhhX3doaXRlY2hhcGVsKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX05XU0MKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX05XU0MKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbndzYygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTldTQykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX253c2MoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTldMQVJNCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9OV0xBUk0KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbndsYXJtKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9OV0xBUk0pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19ud2xhcm0oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfSVhQNDI1X01HVUFSRAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSVhQNDI1X01HVUFSRAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19peHA0MjVfbWd1YXJkKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9JWFA0MjVfTUdVQVJEKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXhwNDI1X21ndWFyZCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9QWEFfTkVURENVNAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUFhBX05FVERDVTQKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcHhhX25ldGRjdTQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BYQV9ORVREQ1U0KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcHhhX25ldGRjdTQoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfSVhEUDI0MDEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0lYRFAyNDAxCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2l4ZHAyNDAxKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9JWERQMjQwMSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2l4ZHAyNDAxKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0lYRFAyODAxCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9JWERQMjgwMQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19peGRwMjgwMSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSVhEUDI4MDEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19peGRwMjgwMSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9aT0RJQUMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1pPRElBQworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc196b2RpYWMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1pPRElBQykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3pvZGlhYygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9BUk1NT0RVTAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQVJNTU9EVUwKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXJtbW9kdWwoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FSTU1PRFVMKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXJtbW9kdWwoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9LRVRPUAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfS0VUT1AKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfa2V0b3AoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0tFVE9QKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfa2V0b3AoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfQVY3MjAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BVjcyMDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXY3MjAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BVjcyMDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hdjcyMDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfQVJDSF9USTkyNQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQVJDSF9USTkyNQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hcmNoX3RpOTI1KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BUkNIX1RJOTI1KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXJjaF90aTkyNSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9BQ1EyMDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FDUTIwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hY3EyMDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FDUTIwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2FjcTIwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX1BUX0RBRklUCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QVF9EQUZJVAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19wdF9kYWZpdCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUFRfREFGSVQpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19wdF9kYWZpdCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9JSEJBCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9JSEJBCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2loYmEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0lIQkEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19paGJhKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1FVSU5RVUUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1FVSU5RVUUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcXVpbnF1ZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUVVJTlFVRSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3F1aW5xdWUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTklNQlJBT05FCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9OSU1CUkFPTkUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbmltYnJhb25lKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9OSU1CUkFPTkUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19uaW1icmFvbmUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTklNQlJBMjlYCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9OSU1CUkEyOVgKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbmltYnJhMjl4KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9OSU1CUkEyOVgpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19uaW1icmEyOXgoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTklNQlJBMjEwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9OSU1CUkEyMTAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbmltYnJhMjEwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9OSU1CUkEyMTApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19uaW1icmEyMTAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfSEhQX0Q5NVhYCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9ISFBfRDk1WFgKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaGhwX2Q5NXh4KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9ISFBfRDk1WFgpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19oaHBfZDk1eHgoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTEFCQVJNCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9MQUJBUk0KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbGFiYXJtKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9MQUJBUk0pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19sYWJhcm0oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTTgyNVhYCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9NODI1WFgKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbTgyNXh4KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9NODI1WFgpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19tODI1eHgoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9NNzEwMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTTcxMDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbTcxMDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX003MTAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbTcxMDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTklQQzIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX05JUEMyCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX25pcGMyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9OSVBDMikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX25pcGMyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0ZVNzIwMgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRlU3MjAyCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2Z1NzIwMigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRlU3MjAyKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZnU3MjAyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0FEU0FHWAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQURTQUdYCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2Fkc2FneCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQURTQUdYKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWRzYWd4KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1BYQV9QT09ICisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QWEFfUE9PSAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19weGFfcG9vaCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUFhBX1BPT0gpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19weGFfcG9vaCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9CQU5ET04KKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0JBTkRPTgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19iYW5kb24oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0JBTkRPTikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2JhbmRvbigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9QQ003MjEwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QQ003MjEwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3BjbTcyMTAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BDTTcyMTApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19wY203MjEwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX05NUzkyMDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX05NUzkyMDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbm1zOTIwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTk1TOTIwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX25tczkyMDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTE9HT0RMCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9MT0dPREwKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbG9nb2RsKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9MT0dPREwpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19sb2dvZGwoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9NNzE0MAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTTcxNDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbTcxNDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX003MTQwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbTcxNDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfS09SRUJPVAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfS09SRUJPVAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19rb3JlYm90KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9LT1JFQk9UKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfa29yZWJvdCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9JUTMxMjQ0CisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9JUTMxMjQ0CisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2lxMzEyNDQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0lRMzEyNDQpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19pcTMxMjQ0KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19TQTExMDBfS09BTjM5MworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfS09BTjM5MworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19rb2FuMzkzKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9LT0FOMzkzKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfa29hbjM5MygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9JTkhBTkRGVElQMworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSU5IQU5ERlRJUDMKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaW5oYW5kZnRpcDMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0lOSEFOREZUSVAzKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaW5oYW5kZnRpcDMoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfR09OWk8KKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0dPTlpPCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2dvbnpvKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9HT05aTykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2dvbnpvKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0JBU1QKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0JBU1QKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYmFzdCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQkFTVCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2Jhc3QoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfU0NBTlBBU1MKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1NDQU5QQVNTCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NjYW5wYXNzKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TQ0FOUEFTUykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3NjYW5wYXNzKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0VQNzMxMl9QT09ICisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9FUDczMTJfUE9PSAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lcDczMTJfcG9vaCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRVA3MzEyX1BPT0gpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19lcDczMTJfcG9vaCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9UQTdTCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9UQTdTCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3RhN3MoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1RBN1MpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc190YTdzKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1RBN1YKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1RBN1YKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdGE3digpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfVEE3VikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3RhN3YoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9JQ0FSVVMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0lDQVJVUworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19pY2FydXMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0lDQVJVUykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2ljYXJ1cygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9IMTkwMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSDE5MDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaDE5MDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0gxOTAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaDE5MDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NBMTEwMF9HRU1JTkkKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0dFTUlOSQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19nZW1pbmkoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0dFTUlOSSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2dlbWluaSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9BWElNCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BWElNCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2F4aW0oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FYSU0pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19heGltKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0FVRElPVFJPTgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQVVESU9UUk9OCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2F1ZGlvdHJvbigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQVVESU9UUk9OKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXVkaW90cm9uKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0gyMjAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9IMjIwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19oMjIwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSDIyMDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19oMjIwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9MT09YNjAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9MT09YNjAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2xvb3g2MDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0xPT1g2MDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19sb294NjAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX05JT1AKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX05JT1AKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbmlvcCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTklPUCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX25pb3AoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfRE0zMTAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0RNMzEwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2RtMzEwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9ETTMxMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2RtMzEwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1NFRURQWEFfQzIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1NFRURQWEFfQzIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2VlZHB4YV9jMigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU0VFRFBYQV9DMikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3NlZWRweGFfYzIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfSVhQNFhYX01HVUFSRF9QQ0kKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0lYUDRYWF9NR1VBUkRfUENJCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2l4cDR4eF9tZ3VhcmRwY2koKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0lYUDRYWF9NR1VBUkRfUENJKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXhwNHh4X21ndWFyZHBjaSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9IMTk0MAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSDE5NDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaDE5NDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0gxOTQwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaDE5NDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfU0NPUlBJTworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0NPUlBJTworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zY29ycGlvKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TQ09SUElPKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2NvcnBpbygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9WSVZBCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9WSVZBCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3ZpdmEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1ZJVkEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc192aXZhKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1BYQV9YQ0FSRAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUFhBX1hDQVJECisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3B4YV94Y2FyZCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUFhBX1hDQVJEKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcHhhX3hjYXJkKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0NTQjMzNQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ1NCMzM1CisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2NzYjMzNSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ1NCMzM1KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY3NiMzM1KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0lYUkQ0MjUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0lYUkQ0MjUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXhyZDQyNSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSVhSRDQyNSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2l4cmQ0MjUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfSVE4MDMxNQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSVE4MDMxNQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19pcTgwMzE1KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9JUTgwMzE1KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXE4MDMxNSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9OTVA3MzEyCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9OTVA3MzEyCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX25tcDczMTIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX05NUDczMTIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19ubXA3MzEyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0NYODYxWFgKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NYODYxWFgKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY3g4NjF4eCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ1g4NjFYWCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2N4ODYxeHgoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfRU5QMjYxMQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRU5QMjYxMQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lbnAyNjExKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9FTlAyNjExKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZW5wMjYxMSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0ExMTAwX1hEQQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfWERBCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3hkYSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfWERBKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfeGRhKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0NTSVJfSU1TCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9DU0lSX0lNUworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jc2lyX2ltcygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ1NJUl9JTVMpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19jc2lyX2ltcygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9JWFA0MjFfRE5BRUVUSAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSVhQNDIxX0ROQUVFVEgKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXhwNDIxX2RuYWVldGgoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0lYUDQyMV9ETkFFRVRIKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXhwNDIxX2RuYWVldGgoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfUE9DS0VUU0VSVjkyMDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1BPQ0tFVFNFUlY5MjAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3BvY2tldHNlcnY5MjAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QT0NLRVRTRVJWOTIwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3BvY2tldHNlcnY5MjAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1RPVE8KKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1RPVE8KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdG90bygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfVE9UTykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3RvdG8oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfUzNDMjQ0MAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUzNDMjQ0MAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zM2MyNDQwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TM0MyNDQwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfczNjMjQ0MCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9LUzg2OTVQCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9LUzg2OTVQCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2tzODY5NXAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0tTODY5NVApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19rczg2OTVwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1NFNDAwMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0U0MDAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NlNDAwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU0U0MDAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2U0MDAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1FVQURSSUNFUFMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1FVQURSSUNFUFMKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcXVhZHJpY2VwcygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUVVBRFJJQ0VQUykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3F1YWRyaWNlcHMoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfQlJPTkNPCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9CUk9OQ08KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYnJvbmNvKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9CUk9OQ08pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19icm9uY28oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfRVNMX1NPRkNPTVAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VTTF9TT0ZDT01QCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2VzbF9zb2Zjb21wKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9FU0xfU09GQ09NUCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2VzbF9zb2Zjb21wKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1M1QzczNzUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1M1QzczNzUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfczVjNzM3NSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUzVDNzM3NSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3M1YzczNzUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfU1BFQVJIRUFECisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TUEVBUkhFQUQKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3BlYXJoZWFkKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TUEVBUkhFQUQpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zcGVhcmhlYWQoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfUEFOVEVSQQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUEFOVEVSQQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19wYW50ZXJhKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QQU5URVJBKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcGFudGVyYSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9QUkFZT0dMSVRFCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QUkFZT0dMSVRFCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3ByYXlvZ2xpdGUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BSQVlPR0xJVEUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19wcmF5b2dsaXRlKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0dVTVNUSUsKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0dVTVNUSUsKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZ3Vtc3RpeCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfR1VNU1RJSykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2d1bXN0aXgoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfUkNVQkUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1JDVUJFCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3JjdWJlKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9SQ1VCRSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3JjdWJlKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1JFQV9PTFYKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1JFQV9PTFYKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcmVhX29sdigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUkVBX09MVikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3JlYV9vbHYoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfUFhBX0lQSE9ORQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUFhBX0lQSE9ORQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19weGFfaXBob25lKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QWEFfSVBIT05FKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcHhhX2lwaG9uZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9TM0MzNDEwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TM0MzNDEwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3MzYzM0MTAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1MzQzM0MTApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zM2MzNDEwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0VTUERfNDUxMEIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VTUERfNDUxMEIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZXNwZF80NTEwYigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRVNQRF80NTEwQikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2VzcGRfNDUxMGIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfTVAxWAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTVAxWAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19tcDF4KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9NUDFYKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbXAxeCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9BVDkxUk05MjAwVEIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FUOTFSTTkyMDBUQgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hdDkxcm05MjAwdGIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FUOTFSTTkyMDBUQikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2F0OTFybTkyMDB0YigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9BRFNWR1gKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FEU1ZHWAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hZHN2Z3goKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FEU1ZHWCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2Fkc3ZneCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9PTUFQX0gyCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9PTUFQX0gyCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX29tYXBfaDIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX09NQVBfSDIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19vbWFwX2gyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX1BFTEVFCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QRUxFRQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19wZWxlZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUEVMRUUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19wZWxlZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9FNzQwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9FNzQwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2U3NDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0U3NDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19lNzQwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX0lRODAzMzEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0lRODAzMzEKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXE4MDMzMSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSVE4MDMzMSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2lxODAzMzEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfVkVSU0FUSUxFX1BCCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9WRVJTQVRJTEVfUEIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdmVyc2F0aWxlX3BiKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9WRVJTQVRJTEVfUEIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc192ZXJzYXRpbGVfcGIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfS0VWN0E0MDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0tFVjdBNDAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2tldjdhNDAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9LRVY3QTQwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2tldjdhNDAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0xQRDdBNDAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9MUEQ3QTQwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19scGQ3YTQwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTFBEN0E0MDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19scGQ3YTQwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9MUEQ3QTQwNAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTFBEN0E0MDQKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbHBkN2E0MDQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0xQRDdBNDA0KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbHBkN2E0MDQoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfRlVKSVRTVV9DQU1FTE9UCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9GVUpJVFNVX0NBTUVMT1QKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZnVqaXRzdV9jYW1lbG90KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9GVUpJVFNVX0NBTUVMT1QpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19mdWppdHN1X2NhbWVsb3QoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfSkFOVVMyTQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSkFOVVMyTQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19qYW51czJtKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9KQU5VUzJNKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfamFudXMybSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9FTUJURgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRU1CVEYKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZW1idGYoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0VNQlRGKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZW1idGYoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfSFBNCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9IUE0KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaHBtKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9IUE0pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19ocG0oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfU01ESzI0MTBUSworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU01ESzI0MTBUSworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zbWRrMjQxMHRrKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TTURLMjQxMFRLKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc21kazI0MTB0aygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9TTURLMjQxMEFKCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TTURLMjQxMEFKCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NtZGsyNDEwYWooKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NNREsyNDEwQUopCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zbWRrMjQxMGFqKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1NUUkVFVFJBQ0VSCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TVFJFRVRSQUNFUgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zdHJlZXRyYWNlcigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU1RSRUVUUkFDRVIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zdHJlZXRyYWNlcigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9FRlJBTUUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VGUkFNRQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lZnJhbWUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0VGUkFNRSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2VmcmFtZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9DU0IzMzcKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NTQjMzNworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jc2IzMzcoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NTQjMzNykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2NzYjMzNygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9QWEFfTEFSSworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUFhBX0xBUksKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcHhhX2xhcmsoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BYQV9MQVJLKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcHhhX2xhcmsoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfUE5QMjExMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUE5QMjExMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19weGFfcG5wMjExMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUE5QMjExMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3B4YV9wbnAyMTEwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1RDQzcyWAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfVENDNzJYCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3RjYzcyeCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfVENDNzJYKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdGNjNzJ4KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0FMVEFJUgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQUxUQUlSCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2FsdGFpcigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQUxUQUlSKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWx0YWlyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0tDMworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfS0MzCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2tjMygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfS0MzKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfa2MzKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1NJTlRFRlRECisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TSU5URUZURAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zaW50ZWZ0ZCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU0lOVEVGVEQpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zaW50ZWZ0ZCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9NQUlOU1RPTkUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX01BSU5TVE9ORQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19tYWluc3RvbmUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01BSU5TVE9ORSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX21haW5zdG9uZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9BREFZNFgKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FEQVk0WAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hZGF5NHgoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FEQVk0WCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2FkYXk0eCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9MSVRFMzAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9MSVRFMzAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2xpdGUzMDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0xJVEUzMDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19saXRlMzAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1M1QzczNzYKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1M1QzczNzYKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfczVjNzM3NigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUzVDNzM3NikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3M1YzczNzYoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfTVQwMgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTVQwMgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19tdDAyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9NVDAyKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbXQwMigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9NUE9SVDNTCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9NUE9SVDNTCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX21wb3J0M3MoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01QT1JUM1MpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19tcG9ydDNzKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1JBX0FMUEhBCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9SQV9BTFBIQQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19yYV9hbHBoYSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUkFfQUxQSEEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19yYV9hbHBoYSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9YQ0VQCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9YQ0VQCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3hjZXAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1hDRVApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc194Y2VwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0FSQ09NX01FUkNVUlkKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FSQ09NX01FUkNVUlkKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXJjb21fbWVyY3VyeSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQVJDT01fTUVSQ1VSWSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2FyY29tX21lcmN1cnkoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfU1RBUkdBVEUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1NUQVJHQVRFCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3N0YXJnYXRlKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TVEFSR0FURSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3N0YXJnYXRlKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0FSTUFESUxMT0oKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FSTUFESUxMT0oKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXJtYWRpbGxvaigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQVJNQURJTExPSikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2FybWFkaWxsb2ooKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfRUxST1lfSkFDSworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRUxST1lfSkFDSworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lbHJveV9qYWNrKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9FTFJPWV9KQUNLKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZWxyb3lfamFjaygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9CQUNLRU5ECisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9CQUNLRU5ECisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2JhY2tlbmQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0JBQ0tFTkQpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19iYWNrZW5kKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1M1TElOQk9YCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TNUxJTkJPWAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zNWxpbmJveCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUzVMSU5CT1gpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zNWxpbmJveCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9OT01BRElLCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9OT01BRElLCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX25vbWFkaWsoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX05PTUFESUspCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19ub21hZGlrKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0lBX0NQVV85MjAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9JQV9DUFVfOTIwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19pYV9jcHVfOTIwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSUFfQ1BVXzkyMDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19pYV9jcHVfOTIwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9BVDkxX0JKQTEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FUOTFfQkpBMQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hdDkxX2JqYTEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FUOTFfQkpBMSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2F0OTFfYmphMSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9DT1JHSQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ09SR0kKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY29yZ2koKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NPUkdJKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY29yZ2koKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfUE9PRExFCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QT09ETEUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcG9vZGxlKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QT09ETEUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19wb29kbGUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfVEVOCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9URU4KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdGVuKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9URU4pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc190ZW4oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfUk9WRVJQNVAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1JPVkVSUDVQCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3JvdmVycDVwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9ST1ZFUlA1UCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3JvdmVycDVwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1NDMjcwMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0MyNzAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NjMjcwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU0MyNzAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2MyNzAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0VYX0VBR0xFCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9FWF9FQUdMRQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19leF9lYWdsZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRVhfRUFHTEUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19leF9lYWdsZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9OWF9QWEExMgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTlhfUFhBMTIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbnhfcHhhMTIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX05YX1BYQTEyKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbnhfcHhhMTIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfTlhfUFhBNQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTlhfUFhBNQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19ueF9weGE1KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9OWF9QWEE1KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbnhfcHhhNSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9CTEFDS0JPQVJEMgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQkxBQ0tCT0FSRDIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYmxhY2tib2FyZDIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0JMQUNLQk9BUkQyKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYmxhY2tib2FyZDIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfSTgxOQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSTgxOQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19pODE5KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9JODE5KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaTgxOSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9JWE1COTk1RQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSVhNQjk5NUUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXhtYjk5NWUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0lYTUI5OTVFKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXhtYjk5NWUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfU0tZUklERVIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1NLWVJJREVSCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NreXJpZGVyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TS1lSSURFUikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3NreXJpZGVyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1NLWUhBV0sKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1NLWUhBV0sKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2t5aGF3aygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU0tZSEFXSykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3NreWhhd2soKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfRU5URVJQUklTRQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRU5URVJQUklTRQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lbnRlcnByaXNlKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9FTlRFUlBSSVNFKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZW50ZXJwcmlzZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9ERVAyNDEwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9ERVAyNDEwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2RlcDI0MTAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0RFUDI0MTApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19kZXAyNDEwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0FSTUNPUkUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FSTUNPUkUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXJtY29yZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQVJNQ09SRSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2FybWNvcmUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfSE9CQklUCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9IT0JCSVQKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaG9iYml0KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9IT0JCSVQpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19ob2JiaXQoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfSDcyMTAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0g3MjEwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2g3MjEwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9INzIxMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2g3MjEwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1BYQV9ORVREQ1U1CisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QWEFfTkVURENVNQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19weGFfbmV0ZGN1NSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUFhBX05FVERDVTUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19weGFfbmV0ZGN1NSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9BQ0MKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FDQworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hY2MoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FDQykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2FjYygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9FU0xfU0FSVkEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VTTF9TQVJWQQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lc2xfc2FydmEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0VTTF9TQVJWQSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2VzbF9zYXJ2YSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9YTTI1MAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfWE0yNTAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfeG0yNTAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1hNMjUwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfeG0yNTAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfVDZUQzFYQgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfVDZUQzFYQgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc190NnRjMXhiKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9UNlRDMVhCKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdDZ0YzF4YigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9FU1M3MTAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VTUzcxMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lc3M3MTAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0VTUzcxMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2VzczcxMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9NWDNBRFMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX01YM0FEUworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19teDNhZHMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01YM0FEUykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX214M2FkcygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9ISU1BTEFZQQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSElNQUxBWUEKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaGltYWxheWEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0hJTUFMQVlBKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaGltYWxheWEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfQk9MRkVOSworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQk9MRkVOSworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19ib2xmZW5rKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9CT0xGRU5LKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYm9sZmVuaygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9BVDkxUk05MjAwS1IKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FUOTFSTTkyMDBLUgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hdDkxcm05MjAwa3IoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FUOTFSTTkyMDBLUikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2F0OTFybTkyMDBrcigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9FREI5MzEyCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9FREI5MzEyCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2VkYjkzMTIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0VEQjkzMTIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19lZGI5MzEyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX09NQVBfR0VORVJJQworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfT01BUF9HRU5FUklDCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX29tYXBfZ2VuZXJpYygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfT01BUF9HRU5FUklDKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfb21hcF9nZW5lcmljKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0FYSU1YMworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQVhJTVgzCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2F4aW14MygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQVhJTVgzKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXhpbXgzKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0VCNjdYRElQCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9FQjY3WERJUAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lYjY3eGRpcCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRUI2N1hESVApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19lYjY3eGRpcCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9XRUJUWFMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1dFQlRYUworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc193ZWJ0eHMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1dFQlRYUykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3dlYnR4cygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9IQVdLCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9IQVdLCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2hhd2soKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0hBV0spCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19oYXdrKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0NDQVQ5MVNCQzAwMQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ0NBVDkxU0JDMDAxCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2NjYXQ5MXNiYzAwMSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ0NBVDkxU0JDMDAxKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY2NhdDkxc2JjMDAxKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0VYUFJFU1NPCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9FWFBSRVNTTworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19leHByZXNzbygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRVhQUkVTU08pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19leHByZXNzbygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9INDAwMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSDQwMDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaDQwMDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0g0MDAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaDQwMDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfRElOTworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRElOTworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19kaW5vKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9ESU5PKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZGlubygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9NTDY3NUsKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX01MNjc1SworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19tbDY3NWsoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01MNjc1SykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX21sNjc1aygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9FREI5MzAxCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9FREI5MzAxCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2VkYjkzMDEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0VEQjkzMDEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19lZGI5MzAxKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0VEQjkzMTUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VEQjkzMTUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZWRiOTMxNSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRURCOTMxNSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2VkYjkzMTUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfUkVDSVZBX1RUCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9SRUNJVkFfVFQKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcmVjaXZhX3R0KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9SRUNJVkFfVFQpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19yZWNpdmFfdHQoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfQ1NUQ0IwMQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ1NUQ0IwMQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jc3RjYjAxKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9DU1RDQjAxKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY3N0Y2IwMSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9DU1RDQjEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NTVENCMQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jc3RjYjEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NTVENCMSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2NzdGNiMSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9TSEFEV0VMTAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0hBRFdFTEwKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2hhZHdlbGwoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NIQURXRUxMKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2hhZHdlbGwoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfR09FUEVMMjYzCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9HT0VQRUwyNjMKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZ29lcGVsMjYzKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9HT0VQRUwyNjMpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19nb2VwZWwyNjMoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfQUNRMTAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BQ1ExMDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWNxMTAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BQ1ExMDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hY3ExMDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfTVgxRlMyCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9NWDFGUzIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbXgxZnMyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9NWDFGUzIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19teDFmczIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfSElQVE9QX0cxCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9ISVBUT1BfRzEKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaGlwdG9wX2cxKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9ISVBUT1BfRzEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19oaXB0b3BfZzEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfU1BBUktZCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TUEFSS1kKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3Bhcmt5KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TUEFSS1kpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zcGFya3koKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfTlM5NzUwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9OUzk3NTAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbnM5NzUwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9OUzk3NTApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19uczk3NTAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfUEhPRU5JWAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUEhPRU5JWAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19waG9lbml4KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QSE9FTklYKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcGhvZW5peCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9WUjEwMDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1ZSMTAwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc192cjEwMDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1ZSMTAwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3ZyMTAwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9ERUlTVEVSUFhBCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9ERUlTVEVSUFhBCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2RlaXN0ZXJweGEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0RFSVNURVJQWEEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19kZWlzdGVycHhhKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0JDTTExNjAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0JDTTExNjAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYmNtMTE2MCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQkNNMTE2MCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2JjbTExNjAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfUENNMDIyCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QQ00wMjIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcGNtMDIyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QQ00wMjIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19wY20wMjIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfQURTR0NYCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BRFNHQ1gKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWRzZ2N4KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BRFNHQ1gpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hZHNnY3goKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfRFJFQUROQVVHSFQKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0RSRUFETkFVR0hUCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2RyZWFkbmF1Z2h0KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9EUkVBRE5BVUdIVCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2RyZWFkbmF1Z2h0KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0RNMzIwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9ETTMyMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19kbTMyMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRE0zMjApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19kbTMyMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9NQVJLT1YKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX01BUktPVgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19tYXJrb3YoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01BUktPVikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX21hcmtvdigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9DT1M3QTQwMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ09TN0E0MDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY29zN2E0MDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NPUzdBNDAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY29zN2E0MDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfTUlMQU5PCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9NSUxBTk8KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbWlsYW5vKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9NSUxBTk8pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19taWxhbm8oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfVUU5MzI4CisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9VRTkzMjgKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdWU5MzI4KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9VRTkzMjgpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc191ZTkzMjgoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfVUVYMjU1CisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9VRVgyNTUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdWV4MjU1KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9VRVgyNTUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc191ZXgyNTUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfVUUyNDEwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9VRTI0MTAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdWUyNDEwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9VRTI0MTApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc191ZTI0MTAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfQTYyMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQTYyMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hNjIwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BNjIwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYTYyMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9PQ0VMT1QKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX09DRUxPVAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19vY2Vsb3QoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX09DRUxPVCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX29jZWxvdCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9DSEVFVEFICisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9DSEVFVEFICisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2NoZWV0YWgoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NIRUVUQUgpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19jaGVldGFoKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX09NQVBfUEVSU0VVUzIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX09NQVBfUEVSU0VVUzIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfb21hcF9wZXJzZXVzMigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfT01BUF9QRVJTRVVTMikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX29tYXBfcGVyc2V1czIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfWlZVRQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfWlZVRQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc196dnVlKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9aVlVFKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfenZ1ZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9ST1ZFUlAxCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9ST1ZFUlAxCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3JvdmVycDEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1JPVkVSUDEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19yb3ZlcnAxKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0FTSURJQUwyCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BU0lESUFMMgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hc2lkaWFsMigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQVNJRElBTDIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hc2lkaWFsMigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9TM0MyNEEwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TM0MyNEEwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3MzYzI0YTAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1MzQzI0QTApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zM2MyNGEwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0U4MDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0U4MDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZTgwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRTgwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2U4MDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfRTc1MAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRTc1MAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lNzUwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9FNzUwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZTc1MCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9TM0M1NTAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TM0M1NTAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3MzYzU1MDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1MzQzU1MDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zM2M1NTAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1NNREs1NTAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TTURLNTUwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zbWRrNTUwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU01ESzU1MDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zbWRrNTUwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9TSUdOQUxTWU5DCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TSUdOQUxTWU5DCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NpZ25hbHN5bmMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NJR05BTFNZTkMpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zaWduYWxzeW5jKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX05CQworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTkJDCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX25iYygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTkJDKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbmJjKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0tPRElBSworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfS09ESUFLCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2tvZGlhaygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfS09ESUFLKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfa29kaWFrKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX05FVEJPT0tQUk8KKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX05FVEJPT0tQUk8KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbmV0Ym9va3BybygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTkVUQk9PS1BSTykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX25ldGJvb2twcm8oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfSFc5MDIwMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSFc5MDIwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19odzkwMjAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9IVzkwMjAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaHc5MDIwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9DT05ET1IKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NPTkRPUgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jb25kb3IoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NPTkRPUikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2NvbmRvcigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9DVVAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NVUAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jdXAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NVUCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2N1cCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9LSVRFCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9LSVRFCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2tpdGUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0tJVEUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19raXRlKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1NDQjkzMjgKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1NDQjkzMjgKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2NiOTMyOCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU0NCOTMyOCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3NjYjkzMjgoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfT01BUF9IMworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfT01BUF9IMworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19vbWFwX2gzKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9PTUFQX0gzKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfb21hcF9oMygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9PTUFQX0g0CisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9PTUFQX0g0CisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX29tYXBfaDQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX09NQVBfSDQpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19vbWFwX2g0KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX09NQVBfMjQzMFNEUAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfT01BUF8yNDMwU0RQCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX29tYXBfMjQzMFNEUCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfT01BUF8yNDMwU0RQKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfb21hcF8yNDMwU0RQKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX09NQVBfMzQzMFNEUAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfT01BUF8zNDMwU0RQCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX29tYXBfMzQzMFNEUCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfT01BUF8zNDMwU0RQKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfb21hcF8zNDMwU0RQKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX04xMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTjEwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX24xMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTjEwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbjEwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX01PTlRBSkFERQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTU9OVEFKQURFCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX21vbnRlamFkZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTU9OVEFKQURFKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbW9udGVqYWRlKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1NHNTYwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TRzU2MAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zZzU2MCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU0c1NjApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zZzU2MCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9EUDEwMDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0RQMTAwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19kcDEwMDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0RQMTAwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2RwMTAwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9PTUFQX09TSworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfT01BUF9PU0sKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfb21hcF9vc2soKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX09NQVBfT1NLKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfb21hcF9vc2soKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfUkcxMDBWMworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUkcxMDBWMworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19yZzEwMHYzKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9SRzEwMFYzKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcmcxMDB2MygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9NWDJBRFMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX01YMkFEUworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19teDJhZHMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01YMkFEUykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX214MmFkcygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9QWEFfS0lMTworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUFhBX0tJTE8KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcHhhX2tpbG8oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BYQV9LSUxPKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcHhhX2tpbG8oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfSVhQNFhYX0VBR0xFCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9JWFA0WFhfRUFHTEUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXhwNHh4X2VhZ2xlKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9JWFA0WFhfRUFHTEUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19peHA0eHhfZWFnbGUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfVE9TQQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfVE9TQQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc190b3NhKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9UT1NBKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdG9zYSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9NQjI1MjBGCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9NQjI1MjBGCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX21iMjUyMGYoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01CMjUyMEYpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19tYjI1MjBmKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0VNQzEwMDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VNQzEwMDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZW1jMTAwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRU1DMTAwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2VtYzEwMDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfVElEU0MyNQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfVElEU0MyNQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc190aWRzYzI1KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9USURTQzI1KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdGlkc2MyNSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9BS0NQTVhMCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BS0NQTVhMCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2FrY3BteGwoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FLQ1BNWEwpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19ha2NwbXhsKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0FWM1hYCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BVjNYWAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hdjN4eCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQVYzWFgpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hdjN4eCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9BVklMQQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQVZJTEEKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXZpbGEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FWSUxBKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXZpbGEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfUFhBX01QTTEwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QWEFfTVBNMTAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcHhhX21wbTEwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QWEFfTVBNMTApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19weGFfbXBtMTAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfUFhBX0tZQU5JVEUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1BYQV9LWUFOSVRFCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3B4YV9reWFuaXRlKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QWEFfS1lBTklURSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3B4YV9reWFuaXRlKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1NHT0xECisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TR09MRAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zZ29sZCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU0dPTEQpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zZ29sZCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9PU0NBUgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfT1NDQVIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfb3NjYXIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX09TQ0FSKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfb3NjYXIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfRVBYQTRVU0IyCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9FUFhBNFVTQjIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZXB4YTR1c2IyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9FUFhBNFVTQjIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19lcHhhNHVzYjIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfWFNFTkdJTkUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1hTRU5HSU5FCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3hzZW5naW5lKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9YU0VOR0lORSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3hzZW5naW5lKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0lQNjAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9JUDYwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19pcDYwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSVA2MDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19pcDYwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9NQ0FOMgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTUNBTjIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbWNhbjIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01DQU4yKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbWNhbjIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfRERJX0JMVUVSSURHRQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRERJX0JMVUVSSURHRQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19kZGlfYmx1ZXJpZGdlKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9ERElfQkxVRVJJREdFKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZGRpX2JsdWVyaWRnZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9TS1lNSU5ERVIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1NLWU1JTkRFUgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19za3ltaW5kZXIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NLWU1JTkRFUikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3NreW1pbmRlcigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9MUEQ3OTUyMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTFBENzk1MjAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbHBkNzk1MjAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0xQRDc5NTIwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbHBkNzk1MjAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfRURCOTMwMgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRURCOTMwMgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lZGI5MzAyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9FREI5MzAyKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZWRiOTMwMigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9IVzkwMzQwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9IVzkwMzQwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2h3OTAzNDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0hXOTAzNDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19odzkwMzQwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0NJUF9CT1gKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NJUF9CT1gKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY2lwX2JveCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ0lQX0JPWCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2NpcF9ib3goKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfSVZQTgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSVZQTgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19pdnBuKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9JVlBOKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXZwbigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9SU09DMgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUlNPQzIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcnNvYzIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1JTT0MyKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcnNvYzIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfSFVTS1kKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0hVU0tZCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2h1c2t5KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9IVVNLWSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2h1c2t5KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0JPWEVSCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9CT1hFUgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19ib3hlcigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQk9YRVIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19ib3hlcigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9TSEVQSEVSRAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0hFUEhFUkQKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2hlcGhlcmQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NIRVBIRVJEKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2hlcGhlcmQoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfQU1MNDI4MDBBQQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQU1MNDI4MDBBQQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hbWw0MjgwMGFhKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BTUw0MjgwMEFBKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYW1sNDI4MDBhYSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9NQUNIX1RZUEVfTUw2NzQwMDEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX01BQ0hfVFlQRV9NTDY3NDAwMQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19tbDY3NDAwMSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTUFDSF9UWVBFX01MNjc0MDAxKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbWw2NzQwMDEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfTFBDMjI5NAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTFBDMjI5NAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19scGMyMjk0KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9MUEMyMjk0KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbHBjMjI5NCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9TV0lUQ0hHUkFTUworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU1dJVENIR1JBU1MKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3dpdGNoZ3Jhc3MoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NXSVRDSEdSQVNTKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3dpdGNoZ3Jhc3MoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfRU5TX0NNVQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRU5TX0NNVQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lbnNfY211KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9FTlNfQ01VKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZW5zX2NtdSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9NTTZfU0RCCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9NTTZfU0RCCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX21tNl9zZGIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01NNl9TREIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19tbTZfc2RiKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1NBVFVSTgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0FUVVJOCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NhdHVybigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU0FUVVJOKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2F0dXJuKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0FSR09OUExVU0VWQgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQVJHT05QTFVTRVZCCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2FyZ29ucGx1c2V2YigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQVJHT05QTFVTRVZCKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXJnb25wbHVzZXZiKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1NDTUExMUVWQgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0NNQTExRVZCCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NjbWExMWV2YigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU0NNQTExRVZCKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2NtYTExZXZiKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1NNREsyODAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TTURLMjgwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zbWRrMjgwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU01ESzI4MDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zbWRrMjgwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9NVFdJTFNPTgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTVRXSUxTT04KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbXR3aWxzb24oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01UV0lMU09OKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbXR3aWxzb24oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfWklUSQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfWklUSQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc196aXRpKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9aSVRJKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfeml0aSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9HUkFOREZBVEhFUgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfR1JBTkRGQVRIRVIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZ3JhbmRmYXRoZXIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0dSQU5ERkFUSEVSKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZ3JhbmRmYXRoZXIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfVEVOR0lORQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfVEVOR0lORQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc190ZW5naW5lKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9URU5HSU5FKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdGVuZ2luZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9TM0MyNDYwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TM0MyNDYwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3MzYzI0NjAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1MzQzI0NjApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zM2MyNDYwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1BETQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUERNCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3BkbSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUERNKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcGRtKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0g0NzAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9INDcwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19oNDcwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSDQ3MDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19oNDcwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9INjMwMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSDYzMDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaDYzMDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0g2MzAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaDYzMDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfUloxNzAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9SWjE3MDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcnoxNzAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9SWjE3MDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19yejE3MDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfQTcxNgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQTcxNgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hNzE2KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BNzE2KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYTcxNigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9FU1RLMjQ0MEEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VTVEsyNDQwQQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lc3RrMjQ0MGEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0VTVEsyNDQwQSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2VzdGsyNDQwYSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9BVFdJWFA0MjUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FUV0lYUDQyNQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hdHdpeHA0MjUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FUV0lYUDQyNSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2F0d2l4cDQyNSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9DU0IzMzYKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NTQjMzNgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jc2IzMzYoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NTQjMzNikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2NzYjMzNigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9SSVJNMgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUklSTTIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcmlybTIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1JJUk0yKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcmlybTIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfQ1gyMzUxOAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ1gyMzUxOAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jeDIzNTE4KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9DWDIzNTE4KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY3gyMzUxOCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9DWDIzNTFYCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9DWDIzNTFYCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2N4MjM1MXgoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NYMjM1MVgpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19jeDIzNTF4KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0NPTVBVVElNRQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ09NUFVUSU1FCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2NvbXB1dGltZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ09NUFVUSU1FKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY29tcHV0aW1lKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0laQVJVUworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSVpBUlVTCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2l6YXJ1cygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSVpBUlVTKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXphcnVzKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1JUUworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUlRTCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3B4YV9ydHMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1JUUykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3B4YV9ydHMoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfU0U1MTAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TRTUxMDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2U1MTAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TRTUxMDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zZTUxMDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfUzNDMjUxMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUzNDMjUxMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zM2MyNTEwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TM0MyNTEwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfczNjMjUxMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9DU0I0MzdUTAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ1NCNDM3VEwKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY3NiNDM3dGwoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NTQjQzN1RMKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY3NiNDM3dGwoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfU0xBVVNPTgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0xBVVNPTgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zbGF1c29uKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TTEFVU09OKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2xhdXNvbigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9QRUFSTFJJVkVSCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QRUFSTFJJVkVSCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3BlYXJscml2ZXIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BFQVJMUklWRVIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19wZWFybHJpdmVyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1REQ19QMjEwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9URENfUDIxMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc190ZGNfcDIxMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfVERDX1AyMTApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc190ZGNfcDIxMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9TRzU4MAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0c1ODAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2c1ODAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NHNTgwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2c1ODAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfV1JTQkNBUk03CisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9XUlNCQ0FSTTcKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfd3JzYmNhcm03KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9XUlNCQ0FSTTcpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc193cnNiY2FybTcoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfSVBECisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9JUEQKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXBkKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9JUEQpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19pcGQoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfUFhBX0ROUDIxMTAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1BYQV9ETlAyMTEwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3B4YV9kbnAyMTEwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QWEFfRE5QMjExMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3B4YV9kbnAyMTEwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1hBRU5JQVgKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1hBRU5JQVgKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfeGFlbmlheCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfWEFFTklBWCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3hhZW5pYXgoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfU09NTjQyNTAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1NPTU40MjUwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NvbW40MjUwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TT01ONDI1MCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3NvbW40MjUwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1BMRUIyCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QTEVCMgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19wbGViMigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUExFQjIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19wbGViMigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9DT1JOV0FMTElTCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9DT1JOV0FMTElTCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2Nvcm53YWxsaXMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NPUk5XQUxMSVMpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19jb3Jud2FsbGlzKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0dVUk5FWV9EUlYKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0dVUk5FWV9EUlYKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZ3VybmV5X2RydigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfR1VSTkVZX0RSVikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2d1cm5leV9kcnYoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfQ0hBRkZFRQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ0hBRkZFRQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jaGFmZmVlKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9DSEFGRkVFKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY2hhZmZlZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9STVMxMDEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1JNUzEwMQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19ybXMxMDEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1JNUzEwMSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3JtczEwMSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9SWDM3MTUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1JYMzcxNQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19yeDM3MTUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1JYMzcxNSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3J4MzcxNSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9TV0lGVAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU1dJRlQKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3dpZnQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NXSUZUKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3dpZnQoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfUk9WRVJQNworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUk9WRVJQNworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19yb3ZlcnA3KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9ST1ZFUlA3KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcm92ZXJwNygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9QUjgxOFMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1BSODE4UworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19wcjgxOHMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BSODE4UykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3ByODE4cygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9UUlhQUk8KKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1RSWFBSTworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc190cnhwcm8oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1RSWFBSTykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3RyeHBybygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9OU0xVMgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTlNMVTIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbnNsdTIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX05TTFUyKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbnNsdTIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfRTQwMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRTQwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lNDAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9FNDAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZTQwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9UUkFCCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9UUkFCCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3RyYWIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1RSQUIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc190cmFiKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0NNQ19QVTIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NNQ19QVTIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY21jX3B1MigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ01DX1BVMikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2NtY19wdTIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfRlVMQ1JVTQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRlVMQ1JVTQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19mdWxjcnVtKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9GVUxDUlVNKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZnVsY3J1bSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9ORVRHQVRFNDJYCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9ORVRHQVRFNDJYCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX25ldGdhdGU0MngoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX05FVEdBVEU0MlgpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19uZXRnYXRlNDJ4KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1NUUjcxMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU1RSNzEwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3N0cjcxMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU1RSNzEwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3RyNzEwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0lYRFBHNDI1CisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9JWERQRzQyNQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19peGRwZzQyNSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSVhEUEc0MjUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19peGRwZzQyNSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9UT01UT01HTworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfVE9NVE9NR08KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdG9tdG9tZ28oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1RPTVRPTUdPKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdG9tdG9tZ28oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfVkVSU0FUSUxFX0FCCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9WRVJTQVRJTEVfQUIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdmVyc2F0aWxlX2FiKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9WRVJTQVRJTEVfQUIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc192ZXJzYXRpbGVfYWIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfRURCOTMwNworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRURCOTMwNworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lZGI5MzA3KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9FREI5MzA3KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZWRiOTMwNygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9TRzU2NQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0c1NjUKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2c1NjUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NHNTY1KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2c1NjUoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfTFBENzk1MjQKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0xQRDc5NTI0CisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2xwZDc5NTI0KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9MUEQ3OTUyNCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2xwZDc5NTI0KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0xQRDc5NTI1CisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9MUEQ3OTUyNQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19scGQ3OTUyNSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTFBENzk1MjUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19scGQ3OTUyNSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9STVMxMDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1JNUzEwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19ybXMxMDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1JNUzEwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3JtczEwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9LQjkyMDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0tCOTIwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19rYjkyMDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0tCOTIwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2tiOTIwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9TWDEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1NYMQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zeDEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NYMSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3N4MSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9ITVMzOUM3MDkyCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9ITVMzOUM3MDkyCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2htczM5YzcwOTIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0hNUzM5QzcwOTIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19obXMzOWM3MDkyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0FSTUFESUxMTworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQVJNQURJTExPCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2FybWFkaWxsbygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQVJNQURJTExPKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXJtYWRpbGxvKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0lQQ1UKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0lQQ1UKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXBjdSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSVBDVSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2lwY3UoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfTE9PWDcyMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTE9PWDcyMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19sb294NzIwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9MT09YNzIwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbG9veDcyMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9JWERQNDY1CisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9JWERQNDY1CisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2l4ZHA0NjUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0lYRFA0NjUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19peGRwNDY1KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0lYRFAyMzUxCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9JWERQMjM1MQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19peGRwMjM1MSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSVhEUDIzNTEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19peGRwMjM1MSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9BRFNWSVgKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FEU1ZJWAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hZHN2aXgoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FEU1ZJWCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2Fkc3ZpeCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9ETTI3MAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRE0yNzAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZG0yNzAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0RNMjcwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZG0yNzAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfU09DTFRQTFVTCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TT0NMVFBMVVMKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc29jbHRwbHVzKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TT0NMVFBMVVMpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zb2NsdHBsdXMoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfRUNJQQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRUNJQQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lY2lhKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9FQ0lBKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZWNpYSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9DTTQwMDgKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NNNDAwOAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jbTQwMDgoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NNNDAwOCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2NtNDAwOCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9QMjAwMQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUDIwMDEKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcDIwMDEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1AyMDAxKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcDIwMDEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfVFdJU1RFUgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfVFdJU1RFUgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc190d2lzdGVyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9UV0lTVEVSKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdHdpc3RlcigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9NVURTSEFSSworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTVVEU0hBUksKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbXVkc2hhcmsoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01VRFNIQVJLKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbXVkc2hhcmsoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfSEIyCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9IQjIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaGIyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9IQjIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19oYjIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfSVE4MDMzMgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSVE4MDMzMgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19pcTgwMzMyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9JUTgwMzMyKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaXE4MDMzMigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9TRU5EVAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0VORFQKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2VuZHQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NFTkRUKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2VuZHQoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfTVgySkFaWgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTVgySkFaWgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19teDJqYXp6KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9NWDJKQVpaKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbXgyamF6eigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9NVUxUSUlPCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9NVUxUSUlPCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX211bHRpaW8oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01VTFRJSU8pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19tdWx0aWlvKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0hSRElTUExBWQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSFJESVNQTEFZCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2hyZGlzcGxheSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSFJESVNQTEFZKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaHJkaXNwbGF5KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1NDTUExMUJCCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TQ01BMTFCQgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zY21hMTFiYigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU0NNQTExQkIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zY21hMTFiYigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9UUklaRVBTMworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfVFJJWkVQUzMKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdHJpemVwczMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1RSSVpFUFMzKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdHJpemVwczMoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfWkVGRUVSRFpBCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9aRUZFRVJEWkEKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfemVmZWVyZHphKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9aRUZFRVJEWkEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc196ZWZlZXJkemEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfWkVGRUVSRFpCCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9aRUZFRVJEWkIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfemVmZWVyZHpiKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9aRUZFRVJEWkIpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc196ZWZlZXJkemIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfWkVGRUVSRFpHCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9aRUZFRVJEWkcKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfemVmZWVyZHpnKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9aRUZFRVJEWkcpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc196ZWZlZXJkemcoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfWkVGRUVSRFpOCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9aRUZFRVJEWk4KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfemVmZWVyZHpuKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9aRUZFRVJEWk4pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc196ZWZlZXJkem4oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfWkVGRUVSRFpRCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9aRUZFRVJEWlEKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfemVmZWVyZHpxKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9aRUZFRVJEWlEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc196ZWZlZXJkenEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfR1RXWDU3MTUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0dUV1g1NzE1CisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2d0d3g1NzE1KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9HVFdYNTcxNSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2d0d3g1NzE1KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0FTVFJPX0pBQ0sKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FTVFJPX0pBQ0sKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXN0cm9famFjaygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQVNUUk9fSkFDSykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2FzdHJvX2phY2soKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfVElQMDMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1RJUDAzCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3RpcDAzKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9USVAwMykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3RpcDAzKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0E5MjAwRUMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0E5MjAwRUMKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYTkyMDBlYygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQTkyMDBFQykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2E5MjAwZWMoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfUE5YMDEwNQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUE5YMDEwNQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19wbngwMTA1KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QTlgwMTA1KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcG54MDEwNSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9BRENQT0VDUFUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FEQ1BPRUNQVQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hZGNwb2VjcHUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FEQ1BPRUNQVSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2FkY3BvZWNwdSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9DU0I2MzcKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NTQjYzNworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jc2I2MzcoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NTQjYzNykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2NzYjYzNygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9NTDY5UTYyMDMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX01MNjlRNjIwMworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19tbDY5cTYyMDMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01MNjlRNjIwMykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX21sNjlxNjIwMygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9NQjkyMDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX01COTIwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19tYjkyMDAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01COTIwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX21iOTIwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9LVUxVTgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfS1VMVU4KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfa3VsdW4oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0tVTFVOKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfa3VsdW4oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfU05BUFBFUgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU05BUFBFUgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19zbmFwcGVyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9TTkFQUEVSKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc25hcHBlcigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9PUFRJTUEKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX09QVElNQQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19vcHRpbWEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX09QVElNQSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX29wdGltYSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9ETEhTQkMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0RMSFNCQworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19kbGhzYmMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0RMSFNCQykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2RsaHNiYygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9YMzAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1gzMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc194MzAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1gzMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3gzMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9OMzAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX04zMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19uMzAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX04zMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX24zMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9NQU5HQV9LUzg2OTUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX01BTkdBX0tTODY5NQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19tYW5nYV9rczg2OTUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX01BTkdBX0tTODY5NSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX21hbmdhX2tzODY5NSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9BSkFYCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BSkFYCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2FqYXgoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FKQVgpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hamF4KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX05FQ19NUDkwMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTkVDX01QOTAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX25lY19tcDkwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTkVDX01QOTAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbmVjX21wOTAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1ZWVEsxMDAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9WVlRLMTAwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc192dnRrMTAwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfVlZUSzEwMDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc192dnRrMTAwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9LQUZBCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9LQUZBCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2thZmEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0tBRkEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19rYWZhKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1ZWVEszMDAwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9WVlRLMzAwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc192dnRrMzAwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfVlZUSzMwMDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc192dnRrMzAwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9QSU1YMQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUElNWDEKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcGlteDEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BJTVgxKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcGlteDEoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfT0xMSUUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX09MTElFCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX29sbGllKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9PTExJRSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX29sbGllKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1NLWU1BWAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0tZTUFYCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NreW1heCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU0tZTUFYKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2t5bWF4KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0pBWloKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0pBWloKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfamF6eigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSkFaWikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2phenooKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfVEVMX1QzCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9URUxfVDMKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdGVsX3QzKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9URUxfVDMpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc190ZWxfdDMoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfQUlTSU5PX0ZDUjI1NQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQUlTSU5PX0ZDUjI1NQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19haXNpbm9fZmNyMjU1KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BSVNJTk9fRkNSMjU1KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWlzaW5vX2ZjcjI1NSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9CVFdFQgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQlRXRUIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYnR3ZWIoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0JUV0VCKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYnR3ZWIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfREJHX0xINzk1MjAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0RCR19MSDc5NTIwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2RiZ19saDc5NTIwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9EQkdfTEg3OTUyMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2RiZ19saDc5NTIwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0NNNDFYWAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ000MVhYCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2NtNDF4eCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ000MVhYKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY200MXh4KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1RTNzJYWAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfVFM3MlhYCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3RzNzJ4eCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfVFM3MlhYKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdHM3Mnh4KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX05HR1BYQQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTkdHUFhBCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX25nZ3B4YSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTkdHUFhBKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbmdncHhhKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0NTQjUzNQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ1NCNTM1CisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2NzYjUzNSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ1NCNTM1KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY3NiNTM1KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0NTQjUzNgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ1NCNTM2CisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2NzYjUzNigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ1NCNTM2KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY3NiNTM2KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1BYQV9UUkFLUE9ECisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QWEFfVFJBS1BPRAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19weGFfdHJha3BvZCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUFhBX1RSQUtQT0QpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19weGFfdHJha3BvZCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9QUkFYSVMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1BSQVhJUworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19wcmF4aXMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BSQVhJUykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3ByYXhpcygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9MSDc1NDExCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9MSDc1NDExCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2xoNzU0MTEoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0xINzU0MTEpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19saDc1NDExKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX09UT00KKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX09UT00KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfb3RvbSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfT1RPTSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX290b20oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfTkVYQ09ERVJfMjQ0MAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTkVYQ09ERVJfMjQ0MAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19uZXhjb2Rlcl8yNDQwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9ORVhDT0RFUl8yNDQwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbmV4Y29kZXJfMjQ0MCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9MT09YNDEwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9MT09YNDEwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2xvb3g0MTAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0xPT1g0MTApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19sb294NDEwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1dFU1RMQUtFCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9XRVNUTEFLRQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc193ZXN0bGFrZSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfV0VTVExBS0UpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc193ZXN0bGFrZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9OU0IKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX05TQgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19uc2IoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX05TQikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX25zYigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9FU0xfU0FSVkFfU1ROCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9FU0xfU0FSVkFfU1ROCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2VzbF9zYXJ2YV9zdG4oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0VTTF9TQVJWQV9TVE4pCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19lc2xfc2FydmFfc3RuKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0VTTF9TQVJWQV9URlQKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VTTF9TQVJWQV9URlQKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZXNsX3NhcnZhX3RmdCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRVNMX1NBUlZBX1RGVCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2VzbF9zYXJ2YV90ZnQoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfRVNMX1NBUlZBX0lBRAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRVNMX1NBUlZBX0lBRAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lc2xfc2FydmFfaWFkKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9FU0xfU0FSVkFfSUFEKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZXNsX3NhcnZhX2lhZCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9FU0xfU0FSVkFfQUNDCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9FU0xfU0FSVkFfQUNDCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2VzbF9zYXJ2YV9hY2MoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0VTTF9TQVJWQV9BQ0MpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19lc2xfc2FydmFfYWNjKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1RZUEhPT04KKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1RZUEhPT04KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfdHlwaG9vbigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfVFlQSE9PTikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3R5cGhvb24oKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfQ05BVgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ05BVgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jbmF2KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9DTkFWKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY25hdigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9BNzMwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BNzMwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2E3MzAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0E3MzApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hNzMwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX05FVFNUQVIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX05FVFNUQVIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbmV0c3RhcigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTkVUU1RBUikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX25ldHN0YXIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfUEhBU0VGQUxFX1NVUEVSQ09OCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9QSEFTRUZBTEVfU1VQRVJDT04KKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3VwZXJjb24oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1BIQVNFRkFMRV9TVVBFUkNPTikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3N1cGVyY29uKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1NISVZBMTEwMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU0hJVkExMTAwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NoaXZhMTEwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfU0hJVkExMTAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc2hpdmExMTAwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0VURVhTQworIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRVRFWFNDCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2V0ZXhzYygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRVRFWFNDKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZXRleHNjKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0lYRFBHNDY1CisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9JWERQRzQ2NQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19peGRwZzQ2NSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSVhEUEc0NjUpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19peGRwZzQ2NSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9BOU0yNDEwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BOU0yNDEwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2E5bTI0MTAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0E5TTI0MTApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hOW0yNDEwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0E5TTI0NDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0E5TTI0NDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYTltMjQ0MCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQTlNMjQ0MCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2E5bTI0NDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfQTlNOTc1MAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQTlNOTc1MAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hOW05NzUwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BOU05NzUwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYTltOTc1MCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9BOU05MzYwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BOU05MzYwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2E5bTkzNjAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0E5TTkzNjApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hOW05MzYwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1VOQzkwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9VTkM5MAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc191bmM5MCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfVU5DOTApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc191bmM5MCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9FQ085MjAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0VDTzkyMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19lY285MjAoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0VDTzkyMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2VjbzkyMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9TQVRWSUVXCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9TQVRWSUVXCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX3NhdHZpZXcoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NBVFZJRVcpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19zYXR2aWV3KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1JPQURSVU5ORVIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1JPQURSVU5ORVIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcm9hZHJ1bm5lcigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUk9BRFJVTk5FUikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3JvYWRydW5uZXIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfQVQ5MVJNOTIwMEVLCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9BVDkxUk05MjAwRUsKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYXQ5MXJtOTIwMGVrKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BVDkxUk05MjAwRUspCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19hdDkxcm05MjAwZWsoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfR1AzMgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfR1AzMgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19ncDMyKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9HUDMyKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZ3AzMigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9HRU0KKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0dFTQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19nZW0oKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0dFTSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2dlbSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9JODU4CisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9JODU4CisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2k4NTgoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0k4NTgpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19pODU4KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0hYMjc1MAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfSFgyNzUwCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2h4Mjc1MCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfSFgyNzUwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfaHgyNzUwKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1pFVVNFVkIKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1pFVVNFVkIKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfemV1c2V2YigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfWkVVU0VWQikKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3pldXNldmIoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfUDcwMAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfUDcwMAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19wNzAwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9QNzAwKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfcDcwMCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9DUEUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NQRQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19jcGUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NQRSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2NwZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9TUElUWgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfU1BJVFoKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3BpdHooKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX1NQSVRaKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfc3BpdHooKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfTklNQlJBMzQwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9OSU1CUkEzNDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbmltYnJhMzQwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9OSU1CUkEzNDApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19uaW1icmEzNDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfTFBDMjJYWAorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTFBDMjJYWAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19scGMyMnh4KCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9MUEMyMlhYKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbHBjMjJ4eCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9DT01FVDMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0NPTUVUMworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19vbWFwX2NvbWV0MygpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ09NRVQzKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfb21hcF9jb21ldDMoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfQ09NRVQ0CisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9DT01FVDQKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfb21hcF9jb21ldDQoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NPTUVUNCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX29tYXBfY29tZXQ0KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0NTQjYyNQorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQ1NCNjI1CisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2NzYjYyNSgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfQ1NCNjI1KQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfY3NiNjI1KCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX0ZPUlRVTkVUMgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfRk9SVFVORVQyCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2ZvcnR1bmV0MigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfRk9SVFVORVQyKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfZm9ydHVuZXQyKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX1M1SDIyMDAKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX1M1SDIyMDAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfczVoMjIwMCgpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfUzVIMjIwMCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX3M1aDIyMDAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfT1BUT1JNOTIwCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9PUFRPUk05MjAKKyMgZW5kaWYKKyMgZGVmaW5lIG1hY2hpbmVfaXNfb3B0b3JtOTIwKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9PUFRPUk05MjApCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19vcHRvcm05MjAoKQkoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01BQ0hfQURTQklUU1lYQgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfQURTQklUU1lYQgorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hZHNiaXRzeXhiKCkJKG1hY2hpbmVfYXJjaF90eXBlID09IE1BQ0hfVFlQRV9BRFNCSVRTWVhCKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfYWRzYml0c3l4YigpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9BRFNTUEhFUkUKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FEU1NQSEVSRQorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hZHNzcGhlcmUoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FEU1NQSEVSRSkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2Fkc3NwaGVyZSgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9BRFNQT1JUQUwKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0FEU1BPUlRBTAorIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19hZHNwb3J0YWwoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0FEU1BPUlRBTCkKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2Fkc3BvcnRhbCgpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9MTjI0MTBTQkMKKyMgaWZkZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIHVuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJX19tYWNoaW5lX2FyY2hfdHlwZQorIyBlbHNlCisjICBkZWZpbmUgbWFjaGluZV9hcmNoX3R5cGUJTUFDSF9UWVBFX0xOMjQxMFNCQworIyBlbmRpZgorIyBkZWZpbmUgbWFjaGluZV9pc19sbjI0MTBzYmMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0xOMjQxMFNCQykKKyNlbHNlCisjIGRlZmluZSBtYWNoaW5lX2lzX2xuMjQxMHNiYygpCSgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDSF9DQjNSVUZDCisjIGlmZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjICB1bmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyMgZWxzZQorIyAgZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCU1BQ0hfVFlQRV9DQjNSVUZDCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX2NiM3J1ZmMoKQkobWFjaGluZV9hcmNoX3R5cGUgPT0gTUFDSF9UWVBFX0NCM1JVRkMpCisjZWxzZQorIyBkZWZpbmUgbWFjaGluZV9pc19jYjNydWZjKCkJKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NQUNIX01QMlVTQgorIyBpZmRlZiBtYWNoaW5lX2FyY2hfdHlwZQorIyAgdW5kZWYgbWFjaGluZV9hcmNoX3R5cGUKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlfX21hY2hpbmVfYXJjaF90eXBlCisjIGVsc2UKKyMgIGRlZmluZSBtYWNoaW5lX2FyY2hfdHlwZQlNQUNIX1RZUEVfTVAyVVNCCisjIGVuZGlmCisjIGRlZmluZSBtYWNoaW5lX2lzX21wMnVzYigpCShtYWNoaW5lX2FyY2hfdHlwZSA9PSBNQUNIX1RZUEVfTVAyVVNCKQorI2Vsc2UKKyMgZGVmaW5lIG1hY2hpbmVfaXNfbXAydXNiKCkJKDApCisjZW5kaWYKKworLyoKKyAqIFRoZXNlIGhhdmUgbm90IHlldCBiZWVuIHJlZ2lzdGVyZWQKKyAqLworLyogI2RlZmluZSBNQUNIX1RZUEVfMzY3ICAgICAgICAgICAgICAgICAgPDxub3QgcmVnaXN0ZXJlZD4+ICovCisjZGVmaW5lIG1hY2hpbmVfaXNfZXNsX3dpcmVsZXNzX3RhYigpCSgwKQorCisjaWZuZGVmIG1hY2hpbmVfYXJjaF90eXBlCisjZGVmaW5lIG1hY2hpbmVfYXJjaF90eXBlCV9fbWFjaGluZV9hcmNoX3R5cGUKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vbWVtb3J5LmggYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvYXNtL21lbW9yeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzYjJhZmQKLS0tIC9kZXYvbnVsbAorKysgYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvYXNtL21lbW9yeS5oCkBAIC0wLDAgKzEsMTM3IEBACisvKgorICogIGxpbnV4L2luY2x1ZGUvYXNtLWFybS9tZW1vcnkuaAorICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMiBSdXNzZWxsIEtpbmcKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqICBOb3RlOiB0aGlzIGZpbGUgc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCBieSBub24tYXNtLy5oIGZpbGVzCisgKi8KKyNpZm5kZWYgX19BU01fQVJNX01FTU9SWV9ICisjZGVmaW5lIF9fQVNNX0FSTV9NRU1PUllfSAorCisjaWYgMAkvKiBYWFgjIyNYWFggKi8KKworI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL21lbW9yeS5oPgorCisvKgorICogUEZOcyBhcmUgdXNlZCB0byBkZXNjcmliZSBhbnkgcGh5c2ljYWwgcGFnZTsgdGhpcyBtZWFucworICogUEZOIDAgPT0gcGh5c2ljYWwgYWRkcmVzcyAwLgorICoKKyAqIFRoaXMgaXMgdGhlIFBGTiBvZiB0aGUgZmlyc3QgUkFNIHBhZ2UgaW4gdGhlIGtlcm5lbAorICogZGlyZWN0LW1hcHBlZCB2aWV3LiAgV2UgYXNzdW1lIHRoaXMgaXMgdGhlIGZpcnN0IHBhZ2UKKyAqIG9mIFJBTSBpbiB0aGUgbWVtX21hcCBhcyB3ZWxsLgorICovCisjZGVmaW5lIFBIWVNfUEZOX09GRlNFVAkoUEhZU19PRkZTRVQgPj4gUEFHRV9TSElGVCkKKworLyoKKyAqIFRoZXNlIGFyZSAqb25seSogdmFsaWQgb24gdGhlIGtlcm5lbCBkaXJlY3QgbWFwcGVkIFJBTSBtZW1vcnkuCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyB2aXJ0X3RvX3BoeXModm9pZCAqeCkKK3sKKwlyZXR1cm4gX192aXJ0X3RvX3BoeXMoKHVuc2lnbmVkIGxvbmcpKHgpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkICpwaHlzX3RvX3ZpcnQodW5zaWduZWQgbG9uZyB4KQoreworCXJldHVybiAodm9pZCAqKShfX3BoeXNfdG9fdmlydCgodW5zaWduZWQgbG9uZykoeCkpKTsKK30KKworI2RlZmluZSBfX3BhKHgpCQkJX192aXJ0X3RvX3BoeXMoKHVuc2lnbmVkIGxvbmcpKHgpKQorI2RlZmluZSBfX3ZhKHgpCQkJKCh2b2lkICopX19waHlzX3RvX3ZpcnQoKHVuc2lnbmVkIGxvbmcpKHgpKSkKKworLyoKKyAqIFZpcnR1YWwgPC0+IERNQSB2aWV3IG1lbW9yeSBhZGRyZXNzIHRyYW5zbGF0aW9ucworICogQWdhaW4sIHRoZXNlIGFyZSAqb25seSogdmFsaWQgb24gdGhlIGtlcm5lbCBkaXJlY3QgbWFwcGVkIFJBTQorICogbWVtb3J5LiAgVXNlIG9mIHRoZXNlIGlzICpkZXByZWNpYXRlZCouCisgKi8KKyNkZWZpbmUgdmlydF90b19idXMoeCkJCShfX3ZpcnRfdG9fYnVzKCh1bnNpZ25lZCBsb25nKSh4KSkpCisjZGVmaW5lIGJ1c190b192aXJ0KHgpCQkoKHZvaWQgKikoX19idXNfdG9fdmlydCgodW5zaWduZWQgbG9uZykoeCkpKSkKKworLyoKKyAqIENvbnZlcnNpb24gYmV0d2VlbiBhIHN0cnVjdCBwYWdlIGFuZCBhIHBoeXNpY2FsIGFkZHJlc3MuCisgKgorICogTm90ZTogd2hlbiBjb252ZXJ0aW5nIGFuIHVua25vd24gcGh5c2ljYWwgYWRkcmVzcyB0byBhCisgKiBzdHJ1Y3QgcGFnZSwgdGhlIHJlc3VsdGluZyBwb2ludGVyIG11c3QgYmUgdmFsaWRhdGVkCisgKiB1c2luZyBWQUxJRF9QQUdFKCkuICBJdCBtdXN0IHJldHVybiBhbiBpbnZhbGlkIHN0cnVjdCBwYWdlCisgKiBmb3IgYW55IHBoeXNpY2FsIGFkZHJlc3Mgbm90IGNvcnJlc3BvbmRpbmcgdG8gYSBzeXN0ZW0KKyAqIFJBTSBhZGRyZXNzLgorICoKKyAqICBwYWdlX3RvX3BmbihwYWdlKQljb252ZXJ0IGEgc3RydWN0IHBhZ2UgKiB0byBhIFBGTiBudW1iZXIKKyAqICBwZm5fdG9fcGFnZShwZm4pCWNvbnZlcnQgYSBfdmFsaWRfIFBGTiBudW1iZXIgdG8gc3RydWN0IHBhZ2UgKgorICogIHBmbl92YWxpZChwZm4pCWluZGljYXRlcyB3aGV0aGVyIGEgUEZOIG51bWJlciBpcyB2YWxpZAorICoKKyAqICB2aXJ0X3RvX3BhZ2UoaykJY29udmVydCBhIF92YWxpZF8gdmlydHVhbCBhZGRyZXNzIHRvIHN0cnVjdCBwYWdlICoKKyAqICB2aXJ0X2FkZHJfdmFsaWQoaykJaW5kaWNhdGVzIHdoZXRoZXIgYSB2aXJ0dWFsIGFkZHJlc3MgaXMgdmFsaWQKKyAqLworI2lmbmRlZiBDT05GSUdfRElTQ09OVElHTUVNCisKKyNkZWZpbmUgcGFnZV90b19wZm4ocGFnZSkJKCgocGFnZSkgLSBtZW1fbWFwKSArIFBIWVNfUEZOX09GRlNFVCkKKyNkZWZpbmUgcGZuX3RvX3BhZ2UocGZuKQkoKG1lbV9tYXAgKyAocGZuKSkgLSBQSFlTX1BGTl9PRkZTRVQpCisjZGVmaW5lIHBmbl92YWxpZChwZm4pCQkoKHBmbikgPj0gUEhZU19QRk5fT0ZGU0VUICYmIChwZm4pIDwgKFBIWVNfUEZOX09GRlNFVCArIG1heF9tYXBucikpCisKKyNkZWZpbmUgdmlydF90b19wYWdlKGthZGRyKQkocGZuX3RvX3BhZ2UoX19wYShrYWRkcikgPj4gUEFHRV9TSElGVCkpCisjZGVmaW5lIHZpcnRfYWRkcl92YWxpZChrYWRkcikJKChrYWRkcikgPj0gUEFHRV9PRkZTRVQgJiYgKGthZGRyKSA8ICh1bnNpZ25lZCBsb25nKWhpZ2hfbWVtb3J5KQorCisjZGVmaW5lIFBIWVNfVE9fTklEKGFkZHIpCSgwKQorCisjZGVmaW5lIFZBTElEX1BBR0UocGFnZSkJKChwYWdlIC0gbWVtX21hcCkgPCBtYXhfbWFwbnIpCisKKyNlbHNlCisKKy8qCisgKiBUaGlzIGlzIG1vcmUgY29tcGxleC4gIFdlIGhhdmUgYSBzZXQgb2YgbWVtX21hcCBhcnJheXMgc3ByZWFkCisgKiBhcm91bmQgaW4gbWVtb3J5LgorICovCisjZGVmaW5lIHBhZ2VfdG9fcGZuKHBhZ2UpCQkJCQlcCisJKCgocGFnZSkgLSBwYWdlX3pvbmUocGFnZSktPnpvbmVfbWVtX21hcCkJCVwKKwkgICsgKHBhZ2Vfem9uZShwYWdlKS0+em9uZV9zdGFydF9wYWRkciA+PiBQQUdFX1NISUZUKSkKKworI2RlZmluZSBwZm5fdG9fcGFnZShwZm4pCQkJCQlcCisJKFBGTl9UT19NQVBCQVNFKHBmbikgKyBMT0NBTF9NQVBfTlIoKHBmbikgPDwgUEFHRV9TSElGVCkpCisKKyNkZWZpbmUgcGZuX3ZhbGlkKHBmbikJCQkJCQlcCisgICh7CQkJCQkJCQlcCisJdW5zaWduZWQgaW50IG5vZGUgPSBQRk5fVE9fTklEKHBmbik7CQkJXAorCXN0cnVjdCBwZ2xpc3RfZGF0YSAqbmQgPSBOT0RFX0RBVEEobm9kZSk7CQlcCisJKChub2RlIDwgTlJfTk9ERVMpICYmCQkJCQlcCisJICgocGZuIC0gKG5kLT5ub2RlX3N0YXJ0X3BhZGRyID4+IFBBR0VfU0hJRlQpKSA8IG5kLT5ub2RlX3NpemUpKTtcCisgICB9KQorCisjZGVmaW5lIHZpcnRfdG9fcGFnZShrYWRkcikJCQkJCVwKKwkoQUREUl9UT19NQVBCQVNFKGthZGRyKSArIExPQ0FMX01BUF9OUihrYWRkcikpCisKKyNkZWZpbmUgdmlydF9hZGRyX3ZhbGlkKGthZGRyKQkoS1ZBRERSX1RPX05JRChrYWRkcikgPCBOUl9OT0RFUykKKworLyoKKyAqIENvbW1vbiBkaXNjb250aWdtZW0gc3R1ZmYuCisgKiAgUEhZU19UT19OSUQgaXMgdXNlZCBieSB0aGUgQVJNIGtlcm5lbC9zZXR1cC5jCisgKi8KKyNkZWZpbmUgUEhZU19UT19OSUQoYWRkcikJUEZOX1RPX05JRCgoYWRkcikgPj4gUEFHRV9TSElGVCkKKworLyoKKyAqIDIuNCBjb21wYXRpYmlsaXR5CisgKgorICogVkFMSURfUEFHRSByZXR1cm5zIGEgbm9uLXplcm8gdmFsdWUgaWYgZ2l2ZW4gcGFnZSBwb2ludGVyIGlzIHZhbGlkLgorICogVGhpcyBhc3N1bWVzIGFsbCBub2RlJ3MgbWVtX21hcHMgYXJlIHN0b3JlZCB3aXRoaW4gdGhlIG5vZGUgdGhleQorICogcmVmZXIgdG8uICBUaGlzIGlzIGFjdHVhbGx5IGluaGVyZW50bHkgYnVnZ3kuCisgKi8KKyNkZWZpbmUgVkFMSURfUEFHRShwYWdlKSBcCisoeyB1bnNpZ25lZCBpbnQgbm9kZSA9IEtWQUREUl9UT19OSUQocGFnZSk7IFwKKyAgICgobm9kZSA8IE5SX05PREVTKSAmJiBcCisgICAgICgodW5zaWduZWQpKChwYWdlKSAtIE5PREVfTUVNX01BUChub2RlKSkgPCBOT0RFX0RBVEEobm9kZSktPm5vZGVfc2l6ZSkpOyBcCit9KQorCisjZW5kaWYKKworLyoKKyAqIFdlIHNob3VsZCByZWFsbHkgZWxpbWluYXRlIHZpcnRfdG9fYnVzKCkgaGVyZSAtIGl0J3MgZGVwcmVjaWF0ZWQuCisgKi8KKyNkZWZpbmUgcGFnZV90b19idXMocGFnZSkJKHZpcnRfdG9fYnVzKHBhZ2VfYWRkcmVzcyhwYWdlKSkpCisKKyNlbmRpZgkvKiBYWFgjIyNYWFggKi8KKworI2VuZGlmCS8qIF9fQVNNX0FSTV9NRU1PUllfSCAqLwpkaWZmIC0tZ2l0IGEvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS9wb3NpeF90eXBlcy5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS9wb3NpeF90eXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0MTI0ODYKLS0tIC9kZXYvbnVsbAorKysgYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvYXNtL3Bvc2l4X3R5cGVzLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqICBsaW51eC9pbmNsdWRlL2FzbS1hcm0vcG9zaXhfdHlwZXMuaAorICoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTYtMTk5OCBSdXNzZWxsIEtpbmcuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiAgQ2hhbmdlbG9nOgorICogICAyNy0wNi0xOTk2CVJNSwlDcmVhdGVkCisgKi8KKyNpZm5kZWYgX19BUkNIX0FSTV9QT1NJWF9UWVBFU19ICisjZGVmaW5lIF9fQVJDSF9BUk1fUE9TSVhfVFlQRVNfSAorCisvKgorICogVGhpcyBmaWxlIGlzIGdlbmVyYWxseSB1c2VkIGJ5IHVzZXItbGV2ZWwgc29mdHdhcmUsIHNvIHlvdSBuZWVkIHRvCisgKiBiZSBhIGxpdHRsZSBjYXJlZnVsIGFib3V0IG5hbWVzcGFjZSBwb2xsdXRpb24gZXRjLiAgQWxzbywgd2UgY2Fubm90CisgKiBhc3N1bWUgR0NDIGlzIGJlaW5nIHVzZWQuCisgKi8KKwordHlwZWRlZiB1bnNpZ25lZCBzaG9ydAkJX19rZXJuZWxfZGV2X3Q7Cit0eXBlZGVmIHVuc2lnbmVkIGxvbmcJCV9fa2VybmVsX2lub190OwordHlwZWRlZiB1bnNpZ25lZCBzaG9ydAkJX19rZXJuZWxfbW9kZV90OwordHlwZWRlZiB1bnNpZ25lZCBzaG9ydAkJX19rZXJuZWxfbmxpbmtfdDsKK3R5cGVkZWYgbG9uZwkJCV9fa2VybmVsX29mZl90OwordHlwZWRlZiBpbnQJCQlfX2tlcm5lbF9waWRfdDsKK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQJCV9fa2VybmVsX2lwY19waWRfdDsKK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQJCV9fa2VybmVsX3VpZF90OwordHlwZWRlZiB1bnNpZ25lZCBzaG9ydAkJX19rZXJuZWxfZ2lkX3Q7Cit0eXBlZGVmIHVuc2lnbmVkIGludAkJX19rZXJuZWxfc2l6ZV90OwordHlwZWRlZiBpbnQJCQlfX2tlcm5lbF9zc2l6ZV90OwordHlwZWRlZiBpbnQJCQlfX2tlcm5lbF9wdHJkaWZmX3Q7Cit0eXBlZGVmIGxvbmcJCQlfX2tlcm5lbF90aW1lX3Q7Cit0eXBlZGVmIGxvbmcJCQlfX2tlcm5lbF9zdXNlY29uZHNfdDsKK3R5cGVkZWYgbG9uZwkJCV9fa2VybmVsX2Nsb2NrX3Q7Cit0eXBlZGVmIGludAkJCV9fa2VybmVsX2RhZGRyX3Q7Cit0eXBlZGVmIGNoYXIgKgkJCV9fa2VybmVsX2NhZGRyX3Q7Cit0eXBlZGVmIHVuc2lnbmVkIHNob3J0CQlfX2tlcm5lbF91aWQxNl90OwordHlwZWRlZiB1bnNpZ25lZCBzaG9ydAkJX19rZXJuZWxfZ2lkMTZfdDsKK3R5cGVkZWYgdW5zaWduZWQgaW50CQlfX2tlcm5lbF91aWQzMl90OwordHlwZWRlZiB1bnNpZ25lZCBpbnQJCV9fa2VybmVsX2dpZDMyX3Q7CisKK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQJCV9fa2VybmVsX29sZF91aWRfdDsKK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQJCV9fa2VybmVsX29sZF9naWRfdDsKKworI2lmZGVmIF9fR05VQ19fCit0eXBlZGVmIGxvbmcgbG9uZwkJX19rZXJuZWxfbG9mZl90OworI2VuZGlmCisKK3R5cGVkZWYgc3RydWN0IHsKKyNpZiBkZWZpbmVkKF9fS0VSTkVMX18pIHx8IGRlZmluZWQoX19VU0VfQUxMKQorCWludAl2YWxbMl07CisjZWxzZSAvKiAhZGVmaW5lZChfX0tFUk5FTF9fKSAmJiAhZGVmaW5lZChfX1VTRV9BTEwpICovCisJaW50CV9fdmFsWzJdOworI2VuZGlmIC8qICFkZWZpbmVkKF9fS0VSTkVMX18pICYmICFkZWZpbmVkKF9fVVNFX0FMTCkgKi8KK30gX19rZXJuZWxfZnNpZF90OworCisjaWYgZGVmaW5lZChfX0tFUk5FTF9fKSB8fCAhZGVmaW5lZChfX0dMSUJDX18pIHx8IChfX0dMSUJDX18gPCAyKQorCisjdW5kZWYJX19GRF9TRVQKKyNkZWZpbmUgX19GRF9TRVQoZmQsIGZkc2V0cCkgXAorCQkoKChmZF9zZXQgKilmZHNldHApLT5mZHNfYml0c1tmZCA+PiA1XSB8PSAoMTw8KGZkICYgMzEpKSkKKworI3VuZGVmCV9fRkRfQ0xSCisjZGVmaW5lIF9fRkRfQ0xSKGZkLCBmZHNldHApIFwKKwkJKCgoZmRfc2V0ICopZmRzZXRwKS0+ZmRzX2JpdHNbZmQgPj4gNV0gJj0gfigxPDwoZmQgJiAzMSkpKQorCisjdW5kZWYJX19GRF9JU1NFVAorI2RlZmluZSBfX0ZEX0lTU0VUKGZkLCBmZHNldHApIFwKKwkJKCgoKGZkX3NldCAqKWZkc2V0cCktPmZkc19iaXRzW2ZkID4+IDVdICYgKDE8PChmZCAmIDMxKSkpICE9IDApCisKKyN1bmRlZglfX0ZEX1pFUk8KKyNkZWZpbmUgX19GRF9aRVJPKGZkc2V0cCkgXAorCQkobWVtc2V0IChmZHNldHAsIDAsIHNpemVvZiAoKihmZF9zZXQgKilmZHNldHApKSkKKworI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS9zZXR1cC5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS9zZXR1cC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5ZGY0ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvYXNtL3NldHVwLmgKQEAgLTAsMCArMSwyNjkgQEAKKy8qCisgKiAgbGludXgvaW5jbHVkZS9hc20vc2V0dXAuaAorICoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTctMTk5OSBSdXNzZWxsIEtpbmcKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqICBTdHJ1Y3R1cmUgcGFzc2VkIHRvIGtlcm5lbCB0byB0ZWxsIGl0IGFib3V0IHRoZQorICogIGhhcmR3YXJlIGl0J3MgcnVubmluZyBvbi4gIFNlZSBsaW51eC9Eb2N1bWVudGF0aW9uL2FybS9TZXR1cAorICogIGZvciBtb3JlIGluZm8uCisgKgorICogTk9URToKKyAqICBUaGlzIGZpbGUgY29udGFpbnMgdHdvIHdheXMgdG8gcGFzcyBpbmZvcm1hdGlvbiBmcm9tIHRoZSBib290CisgKiAgbG9hZGVyIHRvIHRoZSBrZXJuZWwuIFRoZSBvbGQgc3RydWN0IHBhcmFtX3N0cnVjdCBpcyBkZXByZWNhdGVkLAorICogIGJ1dCBpdCB3aWxsIGJlIGtlcHQgaW4gdGhlIGtlcm5lbCBmb3IgNSB5ZWFycyBmcm9tIG5vdworICogICgyMDAxKS4gVGhpcyB3aWxsIGFsbG93IGJvb3QgbG9hZGVycyB0byBjb252ZXJ0IHRvIHRoZSBuZXcgc3RydWN0CisgKiAgdGFnIHdheS4KKyAqLworI2lmbmRlZiBfX0FTTUFSTV9TRVRVUF9ICisjZGVmaW5lIF9fQVNNQVJNX1NFVFVQX0gKKworLyoKKyAqIFVzYWdlOgorICogIC0gZG8gbm90IGdvIGJsaW5kbHkgYWRkaW5nIGZpZWxkcywgYWRkIHRoZW0gYXQgdGhlIGVuZAorICogIC0gd2hlbiBhZGRpbmcgZmllbGRzLCBkb24ndCByZWx5IG9uIHRoZSBhZGRyZXNzIHVudGlsCisgKiAgICBhIHBhdGNoIGZyb20gbWUgaGFzIGJlZW4gcmVsZWFzZWQKKyAqICAtIHVudXNlZCBmaWVsZHMgc2hvdWxkIGJlIHplcm8gKGZvciBmdXR1cmUgZXhwYW5zaW9uKQorICogIC0gdGhpcyBzdHJ1Y3R1cmUgaXMgcmVsYXRpdmVseSBzaG9ydC1saXZlZCAtIG9ubHkKKyAqICAgIGd1YXJhbnRlZWQgdG8gY29udGFpbiB1c2VmdWwgZGF0YSBpbiBzZXR1cF9hcmNoKCkKKyAqLworI2RlZmluZSBDT01NQU5EX0xJTkVfU0laRSAxMDI0CisKKy8qIFRoaXMgaXMgdGhlIG9sZCBkZXByZWNhdGVkIHdheSB0byBwYXNzIHBhcmFtZXRlcnMgdG8gdGhlIGtlcm5lbCAqLworc3RydWN0IHBhcmFtX3N0cnVjdCB7CisgICAgdW5pb24geworCXN0cnVjdCB7CisJICAgIHVuc2lnbmVkIGxvbmcgcGFnZV9zaXplOwkJLyogIDAgKi8KKwkgICAgdW5zaWduZWQgbG9uZyBucl9wYWdlczsJCS8qICA0ICovCisJICAgIHVuc2lnbmVkIGxvbmcgcmFtZGlza19zaXplOwkJLyogIDggKi8KKwkgICAgdW5zaWduZWQgbG9uZyBmbGFnczsJCS8qIDEyICovCisjZGVmaW5lIEZMQUdfUkVBRE9OTFkJMQorI2RlZmluZSBGTEFHX1JETE9BRAk0CisjZGVmaW5lIEZMQUdfUkRQUk9NUFQJOAorCSAgICB1bnNpZ25lZCBsb25nIHJvb3RkZXY7CQkvKiAxNiAqLworCSAgICB1bnNpZ25lZCBsb25nIHZpZGVvX251bV9jb2xzOwkvKiAyMCAqLworCSAgICB1bnNpZ25lZCBsb25nIHZpZGVvX251bV9yb3dzOwkvKiAyNCAqLworCSAgICB1bnNpZ25lZCBsb25nIHZpZGVvX3g7CQkvKiAyOCAqLworCSAgICB1bnNpZ25lZCBsb25nIHZpZGVvX3k7CQkvKiAzMiAqLworCSAgICB1bnNpZ25lZCBsb25nIG1lbWNfY29udHJvbF9yZWc7CS8qIDM2ICovCisJICAgIHVuc2lnbmVkIGNoYXIgc291bmRkZWZhdWx0OwkJLyogNDAgKi8KKwkgICAgdW5zaWduZWQgY2hhciBhZGZzZHJpdmVzOwkJLyogNDEgKi8KKwkgICAgdW5zaWduZWQgY2hhciBieXRlc19wZXJfY2hhcl9oOwkvKiA0MiAqLworCSAgICB1bnNpZ25lZCBjaGFyIGJ5dGVzX3Blcl9jaGFyX3Y7CS8qIDQzICovCisJICAgIHVuc2lnbmVkIGxvbmcgcGFnZXNfaW5fYmFua1s0XTsJLyogNDQgKi8KKwkgICAgdW5zaWduZWQgbG9uZyBwYWdlc19pbl92cmFtOwkvKiA2MCAqLworCSAgICB1bnNpZ25lZCBsb25nIGluaXRyZF9zdGFydDsJCS8qIDY0ICovCisJICAgIHVuc2lnbmVkIGxvbmcgaW5pdHJkX3NpemU7CQkvKiA2OCAqLworCSAgICB1bnNpZ25lZCBsb25nIHJkX3N0YXJ0OwkJLyogNzIgKi8KKwkgICAgdW5zaWduZWQgbG9uZyBzeXN0ZW1fcmV2OwkJLyogNzYgKi8KKwkgICAgdW5zaWduZWQgbG9uZyBzeXN0ZW1fc2VyaWFsX2xvdzsJLyogODAgKi8KKwkgICAgdW5zaWduZWQgbG9uZyBzeXN0ZW1fc2VyaWFsX2hpZ2g7CS8qIDg0ICovCisJICAgIHVuc2lnbmVkIGxvbmcgbWVtX2ZjbGtfMjEyODU7ICAgICAgIC8qIDg4ICovCisJfSBzOworCWNoYXIgdW51c2VkWzI1Nl07CisgICAgfSB1MTsKKyAgICB1bmlvbiB7CisJY2hhciBwYXRoc1s4XVsxMjhdOworCXN0cnVjdCB7CisJICAgIHVuc2lnbmVkIGxvbmcgbWFnaWM7CisJICAgIGNoYXIgblsxMDI0IC0gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpXTsKKwl9IHM7CisgICAgfSB1MjsKKyAgICBjaGFyIGNvbW1hbmRsaW5lW0NPTU1BTkRfTElORV9TSVpFXTsKK307CisKKworLyoKKyAqIFRoZSBuZXcgd2F5IG9mIHBhc3NpbmcgaW5mb3JtYXRpb246IGEgbGlzdCBvZiB0YWdnZWQgZW50cmllcworICovCisKKy8qIFRoZSBsaXN0IGVuZHMgd2l0aCBhbiBBVEFHX05PTkUgbm9kZS4gKi8KKyNkZWZpbmUgQVRBR19OT05FCTB4MDAwMDAwMDAKKworc3RydWN0IHRhZ19oZWFkZXIgeworCXUzMiBzaXplOworCXUzMiB0YWc7Cit9OworCisvKiBUaGUgbGlzdCBtdXN0IHN0YXJ0IHdpdGggYW4gQVRBR19DT1JFIG5vZGUgKi8KKyNkZWZpbmUgQVRBR19DT1JFCTB4NTQ0MTAwMDEKKworc3RydWN0IHRhZ19jb3JlIHsKKwl1MzIgZmxhZ3M7CQkvKiBiaXQgMCA9IHJlYWQtb25seSAqLworCXUzMiBwYWdlc2l6ZTsKKwl1MzIgcm9vdGRldjsKK307CisKKy8qIGl0IGlzIGFsbG93ZWQgdG8gaGF2ZSBtdWx0aXBsZSBBVEFHX01FTSBub2RlcyAqLworI2RlZmluZSBBVEFHX01FTQkweDU0NDEwMDAyCisKK3N0cnVjdCB0YWdfbWVtMzIgeworCXUzMglzaXplOworCXUzMglzdGFydDsJLyogcGh5c2ljYWwgc3RhcnQgYWRkcmVzcyAqLworfTsKKworLyogVkdBIHRleHQgdHlwZSBkaXNwbGF5cyAqLworI2RlZmluZSBBVEFHX1ZJREVPVEVYVAkweDU0NDEwMDAzCisKK3N0cnVjdCB0YWdfdmlkZW90ZXh0IHsKKwl1OAkJeDsKKwl1OAkJeTsKKwl1MTYJCXZpZGVvX3BhZ2U7CisJdTgJCXZpZGVvX21vZGU7CisJdTgJCXZpZGVvX2NvbHM7CisJdTE2CQl2aWRlb19lZ2FfYng7CisJdTgJCXZpZGVvX2xpbmVzOworCXU4CQl2aWRlb19pc3ZnYTsKKwl1MTYJCXZpZGVvX3BvaW50czsKK307CisKKy8qIGRlc2NyaWJlcyBob3cgdGhlIHJhbWRpc2sgd2lsbCBiZSB1c2VkIGluIGtlcm5lbCAqLworI2RlZmluZSBBVEFHX1JBTURJU0sJMHg1NDQxMDAwNAorCitzdHJ1Y3QgdGFnX3JhbWRpc2sgeworCXUzMiBmbGFnczsJLyogYml0IDAgPSBsb2FkLCBiaXQgMSA9IHByb21wdCAqLworCXUzMiBzaXplOwkvKiBkZWNvbXByZXNzZWQgcmFtZGlzayBzaXplIGluIF9raWxvXyBieXRlcyAqLworCXUzMiBzdGFydDsJLyogc3RhcnRpbmcgYmxvY2sgb2YgZmxvcHB5LWJhc2VkIFJBTSBkaXNrIGltYWdlICovCit9OworCisvKiBkZXNjcmliZXMgd2hlcmUgdGhlIGNvbXByZXNzZWQgcmFtZGlzayBpbWFnZSBsaXZlcyAodmlydHVhbCBhZGRyZXNzKSAqLworLyoKKyAqIHRoaXMgb25lIGFjY2lkZW50YWxseSB1c2VkIHZpcnR1YWwgYWRkcmVzc2VzIC0gYXMgc3VjaCwKKyAqIGl0cyBkZXByZWNpYXRlZC4KKyAqLworI2RlZmluZSBBVEFHX0lOSVRSRAkweDU0NDEwMDA1CisKKy8qIGRlc2NyaWJlcyB3aGVyZSB0aGUgY29tcHJlc3NlZCByYW1kaXNrIGltYWdlIGxpdmVzIChwaHlzaWNhbCBhZGRyZXNzKSAqLworI2RlZmluZSBBVEFHX0lOSVRSRDIJMHg1NDQyMDAwNQorCitzdHJ1Y3QgdGFnX2luaXRyZCB7CisJdTMyIHN0YXJ0OwkvKiBwaHlzaWNhbCBzdGFydCBhZGRyZXNzICovCisJdTMyIHNpemU7CS8qIHNpemUgb2YgY29tcHJlc3NlZCByYW1kaXNrIGltYWdlIGluIGJ5dGVzICovCit9OworCisvKiBib2FyZCBzZXJpYWwgbnVtYmVyLiAiNjQgYml0cyBzaG91bGQgYmUgZW5vdWdoIGZvciBldmVyeWJvZHkiICovCisjZGVmaW5lIEFUQUdfU0VSSUFMCTB4NTQ0MTAwMDYKKworc3RydWN0IHRhZ19zZXJpYWxuciB7CisJdTMyIGxvdzsKKwl1MzIgaGlnaDsKK307CisKKy8qIGJvYXJkIHJldmlzaW9uICovCisjZGVmaW5lIEFUQUdfUkVWSVNJT04JMHg1NDQxMDAwNworCitzdHJ1Y3QgdGFnX3JldmlzaW9uIHsKKwl1MzIgcmV2OworfTsKKworLyogaW5pdGlhbCB2YWx1ZXMgZm9yIHZlc2FmYi10eXBlIGZyYW1lYnVmZmVycy4gc2VlIHN0cnVjdCBzY3JlZW5faW5mbworICogaW4gaW5jbHVkZS9saW51eC90dHkuaAorICovCisjZGVmaW5lIEFUQUdfVklERU9MRkIJMHg1NDQxMDAwOAorCitzdHJ1Y3QgdGFnX3ZpZGVvbGZiIHsKKwl1MTYJCWxmYl93aWR0aDsKKwl1MTYJCWxmYl9oZWlnaHQ7CisJdTE2CQlsZmJfZGVwdGg7CisJdTE2CQlsZmJfbGluZWxlbmd0aDsKKwl1MzIJCWxmYl9iYXNlOworCXUzMgkJbGZiX3NpemU7CisJdTgJCXJlZF9zaXplOworCXU4CQlyZWRfcG9zOworCXU4CQlncmVlbl9zaXplOworCXU4CQlncmVlbl9wb3M7CisJdTgJCWJsdWVfc2l6ZTsKKwl1OAkJYmx1ZV9wb3M7CisJdTgJCXJzdmRfc2l6ZTsKKwl1OAkJcnN2ZF9wb3M7Cit9OworCisvKiBjb21tYW5kIGxpbmU6IFwwIHRlcm1pbmF0ZWQgc3RyaW5nICovCisjZGVmaW5lIEFUQUdfQ01ETElORQkweDU0NDEwMDA5CisKK3N0cnVjdCB0YWdfY21kbGluZSB7CisJY2hhcgljbWRsaW5lWzFdOwkvKiB0aGlzIGlzIHRoZSBtaW5pbXVtIHNpemUgKi8KK307CisKKy8qIGFjb3JuIFJpc2NQQyBzcGVjaWZpYyBpbmZvcm1hdGlvbiAqLworI2RlZmluZSBBVEFHX0FDT1JOCTB4NDEwMDAxMDEKKworc3RydWN0IHRhZ19hY29ybiB7CisJdTMyIG1lbWNfY29udHJvbF9yZWc7CisJdTMyIHZyYW1fcGFnZXM7CisJdTggc291bmRkZWZhdWx0OworCXU4IGFkZnNkcml2ZXM7Cit9OworCisvKiBmb290YnJpZGdlIG1lbW9yeSBjbG9jaywgc2VlIGFyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9hcmNoLmMgKi8KKyNkZWZpbmUgQVRBR19NRU1DTEsJMHg0MTAwMDQwMgorCitzdHJ1Y3QgdGFnX21lbWNsayB7CisJdTMyIGZtZW1jbGs7Cit9OworCitzdHJ1Y3QgdGFnIHsKKwlzdHJ1Y3QgdGFnX2hlYWRlciBoZHI7CisJdW5pb24geworCQlzdHJ1Y3QgdGFnX2NvcmUJCWNvcmU7CisJCXN0cnVjdCB0YWdfbWVtMzIJbWVtOworCQlzdHJ1Y3QgdGFnX3ZpZGVvdGV4dAl2aWRlb3RleHQ7CisJCXN0cnVjdCB0YWdfcmFtZGlzawlyYW1kaXNrOworCQlzdHJ1Y3QgdGFnX2luaXRyZAlpbml0cmQ7CisJCXN0cnVjdCB0YWdfc2VyaWFsbnIJc2VyaWFsbnI7CisJCXN0cnVjdCB0YWdfcmV2aXNpb24JcmV2aXNpb247CisJCXN0cnVjdCB0YWdfdmlkZW9sZmIJdmlkZW9sZmI7CisJCXN0cnVjdCB0YWdfY21kbGluZQljbWRsaW5lOworCisJCS8qCisJCSAqIEFjb3JuIHNwZWNpZmljCisJCSAqLworCQlzdHJ1Y3QgdGFnX2Fjb3JuCWFjb3JuOworCisJCS8qCisJCSAqIERDMjEyODUgc3BlY2lmaWMKKwkJICovCisJCXN0cnVjdCB0YWdfbWVtY2xrCW1lbWNsazsKKwl9IHU7Cit9OworCitzdHJ1Y3QgdGFndGFibGUgeworCXUzMiB0YWc7CisJaW50ICgqcGFyc2UpKGNvbnN0IHN0cnVjdCB0YWcgKik7Cit9OworCisjZGVmaW5lIF9fdGFnIF9fYXR0cmlidXRlX18oKHVudXNlZCwgX19zZWN0aW9uX18oIi50YWdsaXN0IikpKQorI2RlZmluZSBfX3RhZ3RhYmxlKHRhZywgZm4pIFwKK3N0YXRpYyBzdHJ1Y3QgdGFndGFibGUgX190YWd0YWJsZV8jI2ZuIF9fdGFnID0geyB0YWcsIGZuIH0KKworI2RlZmluZSB0YWdfbWVtYmVyX3ByZXNlbnQodGFnLG1lbWJlcikJCQkJXAorCSgodW5zaWduZWQgbG9uZykoJigoc3RydWN0IHRhZyAqKTBMKS0+bWVtYmVyICsgMSkJXAorCQk8PSAodGFnKS0+aGRyLnNpemUgKiA0KQorCisjZGVmaW5lIHRhZ19uZXh0KHQpCSgoc3RydWN0IHRhZyAqKSgodTMyICopKHQpICsgKHQpLT5oZHIuc2l6ZSkpCisjZGVmaW5lIHRhZ19zaXplKHR5cGUpCSgoc2l6ZW9mKHN0cnVjdCB0YWdfaGVhZGVyKSArIHNpemVvZihzdHJ1Y3QgdHlwZSkpID4+IDIpCisKKyNkZWZpbmUgZm9yX2VhY2hfdGFnKHQsYmFzZSkJCVwKKwlmb3IgKHQgPSBiYXNlOyB0LT5oZHIuc2l6ZTsgdCA9IHRhZ19uZXh0KHQpKQorCisvKgorICogTWVtb3J5IG1hcCBkZXNjcmlwdGlvbgorICovCisjZGVmaW5lIE5SX0JBTktTIDgKKworc3RydWN0IG1lbWluZm8geworCWludCBucl9iYW5rczsKKwl1bnNpZ25lZCBsb25nIGVuZDsKKwlzdHJ1Y3QgeworCQl1bnNpZ25lZCBsb25nIHN0YXJ0OworCQl1bnNpZ25lZCBsb25nIHNpemU7CisJCWludCAgICAgICAgICAgbm9kZTsKKwl9IGJhbmtbTlJfQkFOS1NdOworfTsKKworZXh0ZXJuIHN0cnVjdCBtZW1pbmZvIG1lbWluZm87CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS9zaXplcy5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS9zaXplcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4ZDkyY2EKLS0tIC9kZXYvbnVsbAorKysgYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvYXNtL3NpemVzLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworLyogRE8gTk9UIEVESVQhISAtIHRoaXMgZmlsZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZAorICogICAgICAgICAgICAgICAgIGZyb20gLnMgZmlsZSBieSBhd2sgLWYgczJoLmF3aworICovCisvKiAgU2l6ZSBkZWZpbnRpb25zCisgKiAgQ29weXJpZ2h0IChDKSBBUk0gTGltaXRlZCAxOTk4LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICovCisKKyNpZm5kZWYgX19zaXplc19oCisjZGVmaW5lIF9fc2l6ZXNfaCAgICAgICAgICAgICAgICAgICAgICAgMQorCisvKiBoYW5keSBzaXplcyAqLworI2RlZmluZSBTWl8xSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDAKKyNkZWZpbmUgU1pfNEsgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwCisjZGVmaW5lIFNaXzhLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMAorI2RlZmluZSBTWl8xNksgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDAKKyNkZWZpbmUgU1pfNjRLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwCisjZGVmaW5lIFNaXzEyOEsgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMAorI2RlZmluZSBTWl8yNTZLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDAKKyNkZWZpbmUgU1pfNTEySyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwCisKKyNkZWZpbmUgU1pfMU0gICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwCisjZGVmaW5lIFNaXzJNICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMAorI2RlZmluZSBTWl80TSAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDAKKyNkZWZpbmUgU1pfOE0gICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwCisjZGVmaW5lIFNaXzE2TSAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMAorI2RlZmluZSBTWl8zMk0gICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDAKKyNkZWZpbmUgU1pfNjRNICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwCisjZGVmaW5lIFNaXzEyOE0gICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMAorI2RlZmluZSBTWl8yNTZNICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDAKKyNkZWZpbmUgU1pfNTEyTSAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwCisKKyNkZWZpbmUgU1pfMUcgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwCisjZGVmaW5lIFNaXzJHICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAorCisjZW5kaWYKKworLyogICAgICAgICBFTkQgKi8KZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vc3RyaW5nLmggYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvYXNtL3N0cmluZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjYzc2ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvYXNtL3N0cmluZy5oCkBAIC0wLDAgKzEsMTQgQEAKKworI2lmbmRlZiBfX0FTTV9BUk1fU1RSSU5HX0gKKyNkZWZpbmUgX19BU01fQVJNX1NUUklOR19ICisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCitleHRlcm4gdWludDMyX3Qgc3RybGVuKCB1aW50OF90KiBzICk7CitleHRlcm4gdm9pZCAqIG1lbXNldCh2b2lkICosIGludCwgX19rZXJuZWxfc2l6ZV90KTsKK2V4dGVybiBpbnQgbWVtY21wKHZvaWQgKmEsIHZvaWQgKmMsIGludCBuKTsKK2V4dGVybiB2b2lkIG1lbWNweSh1aW50MzJfdCBkZXN0LCB1aW50MzJfdCBzcmMsIHVpbnQzMl90IGNvdW50KTsKKworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS90eXBlcy5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS90eXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzZTk4MDYKLS0tIC9kZXYvbnVsbAorKysgYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvYXNtL3R5cGVzLmgKQEAgLTAsMCArMSw1MCBAQAorI2lmbmRlZiBfX0FTTV9BUk1fVFlQRVNfSAorI2RlZmluZSBfX0FTTV9BUk1fVFlQRVNfSAorCit0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVtb2RlX3Q7CisKKy8qCisgKiBfX3h4IGlzIG9rOiBpdCBkb2Vzbid0IHBvbGx1dGUgdGhlIFBPU0lYIG5hbWVzcGFjZS4gVXNlIHRoZXNlIGluIHRoZQorICogaGVhZGVyIGZpbGVzIGV4cG9ydGVkIHRvIHVzZXIgc3BhY2UKKyAqLworCit0eXBlZGVmIF9fc2lnbmVkX18gY2hhciBfX3M4OwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdTg7CisKK3R5cGVkZWYgX19zaWduZWRfXyBzaG9ydCBfX3MxNjsKK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQgX191MTY7CisKK3R5cGVkZWYgX19zaWduZWRfXyBpbnQgX19zMzI7Cit0eXBlZGVmIHVuc2lnbmVkIGludCBfX3UzMjsKKworI2lmIGRlZmluZWQoX19HTlVDX18pICYmICFkZWZpbmVkKF9fU1RSSUNUX0FOU0lfXykKK3R5cGVkZWYgX19zaWduZWRfXyBsb25nIGxvbmcgX19zNjQ7Cit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3U2NDsKKyNlbmRpZgorCisvKgorICogVGhlc2UgYXJlbid0IGV4cG9ydGVkIG91dHNpZGUgdGhlIGtlcm5lbCB0byBhdm9pZCBuYW1lIHNwYWNlIGNsYXNoZXMKKyAqLworI2lmZGVmIF9fS0VSTkVMX18KKwordHlwZWRlZiBzaWduZWQgY2hhciBzODsKK3R5cGVkZWYgdW5zaWduZWQgY2hhciB1ODsKKwordHlwZWRlZiBzaWduZWQgc2hvcnQgczE2OwordHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1MTY7CisKK3R5cGVkZWYgc2lnbmVkIGludCBzMzI7Cit0eXBlZGVmIHVuc2lnbmVkIGludCB1MzI7CisKK3R5cGVkZWYgc2lnbmVkIGxvbmcgbG9uZyBzNjQ7Cit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1NjQ7CisKKyNkZWZpbmUgQklUU19QRVJfTE9ORyAzMgorCisvKiBEbWEgYWRkcmVzc2VzIGFyZSAzMi1iaXRzIHdpZGUuICAqLworCit0eXBlZGVmIHUzMiBkbWFfYWRkcl90OworCisjZW5kaWYgLyogX19LRVJORUxfXyAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vei1sb2FkLWFybS5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2FzbS96LWxvYWQtYXJtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzM3M2ZlNgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9hc20vei1sb2FkLWFybS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IDIwMDQKKyAqIFRleGFzIEluc3RydW1lbnRzCisgKgorICogKEMpIENvcHlyaWdodCAyMDAyCisgKiBTeXNnbyBSZWFsLVRpbWUgU29sdXRpb25zLCBHbWJIIDx3d3cuZWxpbm9zLmNvbT4KKyAqIE1hcml1cyBHcm9lZ2VyIDxtZ3JvZWdlckBzeXNnby5kZT4KKyAqCisgKiAoQykgQ29weXJpZ2h0IDIwMDIKKyAqIFN5c2dvIFJlYWwtVGltZSBTb2x1dGlvbnMsIEdtYkggPHd3dy5lbGlub3MuY29tPgorICogQWxleCBadWVwa2UgPGF6dUBzeXNnby5kZT4KKyAqCisgKiBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcworICogcHJvamVjdC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKyAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAorICogTUEgMDIxMTEtMTMwNyBVU0EKKyAqLworCisjaWZuZGVmIF9YX0xPQURfQVJNX0hfCisjZGVmaW5lIF9YX0xPQURfQVJNX0hfCTEKKworLyogZm9yIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzLCBzZWUgc3RhcnQuUyAqLworZXh0ZXJuIHVsb25nIF9hcm1ib290X3N0YXJ0OwkvKiBjb2RlIHN0YXJ0ICovCitleHRlcm4gdWxvbmcgX2Jzc19zdGFydDsJLyogY29kZSArIGRhdGEgZW5kID09IEJTUyBzdGFydCAqLworZXh0ZXJuIHVsb25nIF9ic3NfZW5kOwkJLyogQlNTIGVuZCAqLworCitleHRlcm4gdWxvbmcgX3BhcmFfc3RhcnQ7CQorZXh0ZXJuIHVsb25nIF9wYXJhX2VuZDsKKworI2VuZGlmCS8qIF9YX0xPQURfQVJNX0hfICovCmRpZmYgLS1naXQgYS9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvYmJ0LmggYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvYmJ0LmgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2ZhYzkwMQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9iYnQuaApAQCAtMCwwICsxLDYzIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqIENvcHlyaWdodCAoQykgMjAxNiwgWlhJQyBDb3Jwb3JhdGlvbi4NCisgKg0KKyAqIEZpbGUgTmFtZTogICAgDQorICogRmlsZSBNYXJrOiAgICANCisgKiBEZXNjcmlwdGlvbjogIA0KKyAqIE90aGVyczogICAgICAgIA0KKyAqIFZlcnNpb246ICAgICAgIHYxLjANCisgKiBBdXRob3I6ICAgICAgICB6aG91cWkNCisgKiBEYXRlOiAgICAgICAgICAyMDEzLTgtMjENCisgKiBIaXN0b3J5IDE6ICAgICAgDQorICogICAgIERhdGU6IA0KKyAqICAgICBWZXJzaW9uOg0KKyAqICAgICBBdXRob3I6IA0KKyAqICAgICBNb2RpZmljYXRpb246ICANCisgKiBIaXN0b3J5IDI6IA0KKyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorI2lmbmRlZiBfWlgyOTc1MjBfTkFORF9IXw0KKyNkZWZpbmUgX1pYMjk3NTIwX05BTkRfSF8NCisNCisjZGVmaW5lICAgICBCQURfQkxPQ0sgICAweDExDQorI2RlZmluZSAgICAgQkJUX1NJWkUgICAgIDEyOA0KKw0KKw0KKyNkZWZpbmUgTkFORF9NRlJfVE9TSElCQQkweDk4DQorI2RlZmluZSBOQU5EX01GUl9TQU1TVU5HCTB4ZWMNCisjZGVmaW5lIE5BTkRfTUZSX01JQ1JPTiAJMHgyQw0KKyNkZWZpbmUgTkFORF9NRlJfR0lHQURFVklDRSAweEM4DQorI2RlZmluZSBOQU5EX01GUl9XSU5CT05EICAgIDB4RUYNCisjZGVmaW5lIE5BTkRfTUZSX1BBUkFHT04gICAgMHhBMQ0KKyNkZWZpbmUgTkFORF9NRlJfSEVZQU5HVEVLICAweEM5DQorI2RlZmluZSBOQU5EX01GUl9aRVRUQSAgCTB4QkENCisjZGVmaW5lIE5BTkRfTUZSX0RPU0lMSUNPTiAgMHhFNQ0KKyNkZWZpbmUgTkFORF9NRlJfRlVEQU5XRUkgICAweEExDQorDQorI2RlZmluZSBOQU5EX0RFVklEX0ZEQU5XRUlfMUcgCTB4QTUNCisNCisNCisjZGVmaW5lIEJCVF9JTkZPX09PQl9PRkZTRVRfUEFSQUdPTiAgIDY0DQorI2RlZmluZSBCQlRfSU5GT19PT0JfVkVSX09GRlNFVF9QQVJBR09OICAgNjgNCisjZGVmaW5lIEJCVF9JTkZPX09PQl9PRkZTRVRfSEVZQU5HVEVLICAgMzINCisjZGVmaW5lIEJCVF9JTkZPX09PQl9WRVJfT0ZGU0VUX0hFWUFOR1RFSyAgIDY0DQorDQorDQorc3RydWN0IG5hbmRfYmJ0X2Rlc2NyIHsNCisJaW50IHBhZ2U7DQorCWludCBvZmZzOw0KKwlpbnQgbGVuOw0KKwlpbnQgdmVyb2ZmczsNCisJdWludDhfdCB2ZXJzaW9uOw0KKwlpbnQgbWF4YmxvY2tzOw0KKwl1aW50OF90ICpwYXR0ZXJuOw0KK307DQorDQorDQoraW50IG5hbmRfY3JlYXRfYmJ0KCB2b2lkICk7DQordWludDMyX3QgbmFuZF9ibG9ja19pc2JhZCh1aW50MzJfdCBvZmZzZXQpOw0KKw0KKw0KKyNlbmRpZi8qX1pYMjk3NTIwX05BTkRfSF8qLw0KKw0KKw0KZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9ib2FyZC5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2JvYXJkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjEzNjU3YwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9ib2FyZC5oCkBAIC0wLDAgKzEgQEAKKyNkZWZpbmUgCUNQVV9TSElGVCAgICAgIDAKZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9jbWRfY29uZmRlZnMuaCBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9jbWRfY29uZmRlZnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTMyY2M5Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2NtZF9jb25mZGVmcy5oCkBAIC0wLDAgKzEsMTg3IEBACisvKgorICogKEMpIENvcHlyaWdodCAyMDAwLTIwMDIKKyAqIFdvbGZnYW5nIERlbmssIERFTlggU29mdHdhcmUgRW5naW5lZXJpbmcsIHdkQGRlbnguZGUuCisgKgorICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyAqIHByb2plY3QuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCSBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKi8KKworLyoKKyAqIERlZmluaXRpb25zIGZvciBDb25maWd1cmluZyB0aGUgbW9uaXRvciBjb21tYW5kcworICovCisjaWZuZGVmIF9DTURfQ09ORklHX0gKKyNkZWZpbmUgX0NNRF9DT05GSUdfSAorCisvKgorICogQ29uZmlndXJhYmxlIG1vbml0b3IgY29tbWFuZHMKKyAqLworI2RlZmluZSBDRkdfQ01EX0JESQkJMHgwMDAwMDAwMVVMTAkvKiBiZGluZm8JCQkqLworI2RlZmluZSBDRkdfQ01EX0xPQURTCQkweDAwMDAwMDAyVUxMCS8qIGxvYWRzCQkJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9MT0FEQgkJMHgwMDAwMDAwNFVMTAkvKiBsb2FkYgkJCSovCisjZGVmaW5lIENGR19DTURfSU1JCQkweDAwMDAwMDA4VUxMCS8qIGltaW5mbwkJCSovCisjZGVmaW5lIENGR19DTURfQ0FDSEUJCTB4MDAwMDAwMTBVTEwJLyogaWNhY2hlLCBkY2FjaGUJCSovCisjZGVmaW5lIENGR19DTURfRkxBU0gJCTB4MDAwMDAwMjBVTEwJLyogZmxpbmZvLCBlcmFzZSwgcHJvdGVjdAkqLworI2RlZmluZSBDRkdfQ01EX01FTU9SWQkJMHgwMDAwMDA0MFVMTAkvKiBtZCwgbW0sIG5tLCBtdywgY3AsIGNtcCwJKi8KKwkJCQkJCS8qIGNyYywgYmFzZSwgbG9vcCwgbXRlc3QJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9ORVQJCTB4MDAwMDAwODBVTEwJLyogYm9vdHAsIHRmdHBib290LCByYXJwYm9vdAkqLworI2RlZmluZSBDRkdfQ01EX0VOVgkJMHgwMDAwMDEwMFVMTAkvKiBzYXZlZW52CQkJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9LR0RCCQkweDAwMDAwMDAwMDAwMDAyMDBVTEwJLyoga2dkYgkJCQkqLworI2RlZmluZSBDRkdfQ01EX1BDTUNJQQkJMHgwMDAwMDQwMFVMTAkvKiBQQ01DSUEgc3VwcG9ydAkJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9JREUJCTB4MDAwMDA4MDBVTEwJLyogSURFIGhhcmRkaXNrIHN1cHBvcnQJCSovCisjZGVmaW5lIENGR19DTURfUENJCQkweDAwMDAxMDAwVUxMCS8qIHBjaWluZm8JCQkqLworI2RlZmluZSBDRkdfQ01EX0lSUQkJMHgwMDAwMjAwMFVMTAkvKiBpcnFpbmZvCQkJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9CT09URAkJMHgwMDAwNDAwMFVMTAkvKiBib290ZAkJCSovCisjZGVmaW5lIENGR19DTURfQ09OU09MRQkJMHgwMDAwODAwMFVMTAkvKiBjb25pbmZvCQkJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9FRVBST00JCTB4MDAwMTAwMDBVTEwJLyogRUVQUk9NIHJlYWQvd3JpdGUgc3VwcG9ydAkqLworI2RlZmluZSBDRkdfQ01EX0FTS0VOVgkJMHgwMDAyMDAwMFVMTAkvKiBhc2sgZm9yIGVudiB2YXJpYWJsZQkJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9SVU4JCTB4MDAwNDAwMDBVTEwJLyogcnVuIGNvbW1hbmQgaW4gZW52IHZhcmlhYmxlCSovCisjZGVmaW5lIENGR19DTURfRUNITwkJMHgwMDA4MDAwMFVMTAkvKiBlY2hvIGFyZ3VtZW50cwkJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9JMkMJCTB4MDAxMDAwMDBVTEwJLyogSTJDIHNlcmlhbCBidXMgc3VwcG9ydAkqLworI2RlZmluZSBDRkdfQ01EX1JFR0lORk8JCTB4MDAyMDAwMDBVTEwJLyogUmVnaXN0ZXIgZHVtcAkJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9JTU1BUAkJMHgwMDQwMDAwMFVMTAkvKiBJTU1SIGR1bXAgc3VwcG9ydAkJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9EQVRFCQkweDAwODAwMDAwVUxMCS8qIHN1cHBvcnQgZm9yIFJUQywgZGF0ZS90aW1lLi4uKi8KKyNkZWZpbmUgQ0ZHX0NNRF9ESENQCQkweDAxMDAwMDAwVUxMCS8qIERIQ1AgU3VwcG9ydAkJCSovCisjZGVmaW5lIENGR19DTURfQkVEQlVHCQkweDAyMDAwMDAwVUxMCS8qIEluY2x1ZGUgQmVkQnVnIERlYnVnZ2VyCSovCisjZGVmaW5lIENGR19DTURfRkRDCQkweDA0MDAwMDAwVUxMCS8qIEZsb3BweSBEaXNrIFN1cHBvcnQJCSovCisjZGVmaW5lIENGR19DTURfU0NTSQkJMHgwODAwMDAwMFVMTAkvKiBTQ1NJIFN1cHBvcnQJCQkqLworI2RlZmluZSBDRkdfQ01EX0FVVE9TQ1JJUFQJMHgxMDAwMDAwMFVMTAkvKiBBdXRvc2NyaXB0IFN1cHBvcnQJCSovCisjZGVmaW5lIENGR19DTURfTUlJCQkweDIwMDAwMDAwVUxMCS8qIE1JSSBzdXBwb3J0CQkJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9TRVRHRVREQ1IJMHg0MDAwMDAwMFVMTAkvKiBEQ1Igc3VwcG9ydCBvbiA0eHgJCSovCisjZGVmaW5lIENGR19DTURfQlNQCQkweDgwMDAwMDAwVUxMCS8qIEJvYXJkIFNwZWNpZmljIGZ1bmN0aW9ucwkqLworCisjZGVmaW5lIENGR19DTURfRUxGCTB4MDAwMDAwMDEwMDAwMDAwMFVMTAkvKiBFTEYgKFZ4V29ya3MpIGxvYWQvYm9vdCBjbWQJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9NSVNDCTB4MDAwMDAwMDIwMDAwMDAwMFVMTAkvKiBNaXNjIGZ1bmN0aW9ucyBsaWtlIHNsZWVwIGV0YyovCisjZGVmaW5lIENGR19DTURfVVNCCTB4MDAwMDAwMDQwMDAwMDAwMFVMTAkvKiBVU0IgU3VwcG9ydAkJCSovCisjZGVmaW5lIENGR19DTURfRE9DCTB4MDAwMDAwMDgwMDAwMDAwMFVMTAkvKiBEaXNrLU9uLUNoaXAgU3VwcG9ydAkJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9KRkZTMgkweDAwMDAwMDEwMDAwMDAwMDBVTEwJLyogSkZGUzIgU3VwcG9ydAkJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9EVFQJMHgwMDAwMDAyMDAwMDAwMDAwVUxMCS8qIERpZ2l0YWwgVGhlcm0gYW5kIFRoZXJtb3N0YXQgKi8KKyNkZWZpbmUgQ0ZHX0NNRF9TRFJBTQkweDAwMDAwMDQwMDAwMDAwMDBVTEwJLyogU0RSQU0gRElNTSBTUEQgaW5mbyBwcmludG91dCAqLworI2RlZmluZSBDRkdfQ01EX0RJQUcJMHgwMDAwMDA4MDAwMDAwMDAwVUxMCS8qIERpYWdub3N0aWNzCQkJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9GUEdBCTB4MDAwMDAxMDAwMDAwMDAwMFVMTAkvKiBGUEdBIGNvbmZpZ3VyYXRpb24gU3VwcG9ydAkqLworI2RlZmluZSBDRkdfQ01EX0hXRkxPVwkweDAwMDAwMjAwMDAwMDAwMDBVTEwJLyogUlRTL0NUUyBodyBmbG93IGNvbnRyb2wJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9TQVZFUwkweDAwMDAwNDAwMDAwMDAwMDBVTEwJLyogc2F2ZSBTIHJlY29yZCBkdW1wCQkqLworI2RlZmluZSBDRkdfQ01EX1NQSQkweDAwMDAxMDAwMDAwMDAwMDBVTEwJLyogU1BJIHV0aWxpdHkJCQkqLworI2RlZmluZSBDRkdfQ01EX0ZET1MJMHgwMDAwMjAwMDAwMDAwMDAwVUxMCS8qIEZsb3BweSBET1Mgc3VwcG9ydAkJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9WRkQJMHgwMDAwNDAwMDAwMDAwMDAwVUxMCS8qIFZGRCBzdXBwb3J0IChUUkFCKQkJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9OQU5ECTB4MDAwMDgwMDAwMDAwMDAwMFVMTAkvKiBOQU5EIHN1cHBvcnQJCQkqLworI2RlZmluZSBDRkdfQ01EX0JNUAkweDAwMDEwMDAwMDAwMDAwMDBVTEwJLyogQk1QIHN1cHBvcnQJCQkqLworI2RlZmluZSBDRkdfQ01EX1BPUlRJTwkweDAwMDIwMDAwMDAwMDAwMDBVTEwJLyogUG9ydCBJL08JCQkqLworI2RlZmluZSBDRkdfQ01EX1BJTkcJMHgwMDA0MDAwMDAwMDAwMDAwVUxMCS8qIHBpbmcgc3VwcG9ydAkJCSovCisjZGVmaW5lIENGR19DTURfTU1DCTB4MDAwODAwMDAwMDAwMDAwMFVMTAkvKiBNTUMgc3VwcG9ydAkJCSovCisjZGVmaW5lIENGR19DTURfRkFUCTB4MDAxMDAwMDAwMDAwMDAwMFVMTAkvKiBGQVQgc3VwcG9ydAkJCSovCisjZGVmaW5lIENGR19DTURfSU1MUwkweDAwMjAwMDAwMDAwMDAwMDBVTEwJLyogTGlzdCBhbGwgZm91bmQgaW1hZ2VzCSovCisjZGVmaW5lIENGR19DTURfSVRFU1QJMHgwMDQwMDAwMDAwMDAwMDAwVUxMCS8qIEludGVnZXIgKGFuZCBzdHJpbmcpIHRlc3QJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9ORlMJMHgwMDgwMDAwMDAwMDAwMDAwVUxMCS8qIE5GUyBzdXBwb3J0CQkJKi8KKyNkZWZpbmUgQ0ZHX0NNRF9SRUlTRVIJMHgwMTAwMDAwMDAwMDAwMDAwVUxMCS8qIFJlaXNlcmZzIHN1cHBvcnQJCSovCisjZGVmaW5lIENGR19DTURfQ0RQCTB4MDIwMDAwMDAwMDAwMDAwMFVMTAkvKiBDaXNjbyBEaXNjb3ZlcnkgUHJvdG9jb2wgCSovCisjZGVmaW5lIENGR19DTURfWElNRwkweDA0MDAwMDAwMDAwMDAwMDBVTEwJLyogTG9hZCBwYXJ0IG9mIE11bHRpIEltYWdlCSovCisjZGVmaW5lIENGR19DTURfVU5JVkVSU0UgMHgwODAwMDAwMDAwMDAwMDAwVUxMCS8qIFR1bmRyYSBVbml2ZXJzZSBTdXBwb3J0ICAgICAgKi8KKyNkZWZpbmUgQ0ZHX0NNRF9FWFQyCTB4MTAwMDAwMDAwMDAwMDAwMFVMTAkvKiBFWFQyIFN1cHBvcnQJCQkqLworI2RlZmluZSBDRkdfQ01EX1NOVFAJMHgyMDAwMDAwMDAwMDAwMDAwVUxMCS8qIFNOVFAgc3VwcG9ydAkJCSovCisjZGVmaW5lIENGR19DTURfRElTUExBWQkweDQwMDAwMDAwMDAwMDAwMDBVTEwJLyogRGlzcGxheSBzdXBwb3J0CQkqLworI2RlZmluZSBDRkdfQ01EX09ORU5BTkQgMHg4MDAwMDAwMDAwMDAwMDAwVUxMICAgLyogT25lTkFORCBzdXBwb3J0ICAgICAgICAgICAgICAgKi8KKworI2RlZmluZSBDRkdfQ01EX0FMTAkweEZGRkZGRkZGRkZGRkZGRkZVTEwJLyogQUxMIGNvbW1hbmRzCQkJKi8KKworLyogQ29tbWFuZHMgdGhhdCBhcmUgY29uc2lkZXJlZCAibm9uLXN0YW5kYXJkIiBmb3Igc29tZSByZWFzb24KKyAqIChtZW1vcnkgaG9ncywgcmVxdWlyZXMgc3BlY2lhbCBoYXJkd2FyZSwgbm90IGZ1bGx5IHRlc3RlZCwgZXRjLikKKyAqLworI2RlZmluZSBDRkdfQ01EX05PTlNURCAoQ0ZHX0NNRF9BU0tFTlYJfCBcCisJCQlDRkdfQ01EX0JFREJVRwl8IFwKKwkJCUNGR19DTURfQk1QCXwgXAorCQkJQ0ZHX0NNRF9CU1AJfCBcCisJCQlDRkdfQ01EX0NBQ0hFCXwgXAorCQkJQ0ZHX0NNRF9DRFAJfCBcCisJCQlDRkdfQ01EX0RBVEUJfCBcCisJCQlDRkdfQ01EX0RIQ1AJfCBcCisJCQlDRkdfQ01EX0RJQUcJfCBcCisJCQlDRkdfQ01EX0RJU1BMQVkJfCBcCisJCQlDRkdfQ01EX0RPQwl8IFwKKwkJCUNGR19DTURfRFRUCXwgXAorCQkJQ0ZHX0NNRF9FRVBST00JfCBcCisJCQlDRkdfQ01EX0VMRgl8IFwKKwkJCUNGR19DTURfRVhUMgl8IFwKKwkJCUNGR19DTURfRkRDCXwgXAorCQkJQ0ZHX0NNRF9GQVQJfCBcCisJCQlDRkdfQ01EX0ZET1MJfCBcCisJCQlDRkdfQ01EX0hXRkxPVwl8IFwKKwkJCUNGR19DTURfSTJDCXwgXAorCQkJQ0ZHX0NNRF9JREUJfCBcCisJCQlDRkdfQ01EX0lNTUFQCXwgXAorCQkJQ0ZHX0NNRF9JUlEJfCBcCisJCQlDRkdfQ01EX0pGRlMyCXwgXAorCQkJQ0ZHX0NNRF9LR0RCCXwgXAorCQkJQ0ZHX0NNRF9NSUkJfCBcCisJCQlDRkdfQ01EX01NQwl8IFwKKwkJCUNGR19DTURfTkFORAl8IFwKKwkJCUNGR19DTURfUENJCXwgXAorCQkJQ0ZHX0NNRF9QQ01DSUEJfCBcCisJCQlDRkdfQ01EX1BJTkcJfCBcCisJCQlDRkdfQ01EX1BPUlRJTwl8IFwKKwkJCUNGR19DTURfUkVHSU5GTyB8IFwKKwkJCUNGR19DTURfUkVJU0VSCXwgXAorCQkJQ0ZHX0NNRF9TQVZFUwl8IFwKKwkJCUNGR19DTURfU0NTSQl8IFwKKwkJCUNGR19DTURfU0RSQU0JfCBcCisJCQlDRkdfQ01EX1NOVFAJfCBcCisJCQlDRkdfQ01EX1NQSQl8IFwKKwkJCUNGR19DTURfVU5JVkVSU0UgfCBcCisJCQlDRkdfQ01EX1VTQgl8IFwKKwkJCUNGR19DTURfT05FTkFORCB8IFwKKwkJCUNGR19DTURfVkZECSkKKworLyogRGVmYXVsdCBjb25maWd1cmF0aW9uCisgKi8KKyNkZWZpbmUgQ09ORklHX0NNRF9ERkwJKENGR19DTURfQUxMICYgfkNGR19DTURfTk9OU1REKQorCisjaWZuZGVmIENPTkZJR19DT01NQU5EUworI2RlZmluZSBDT05GSUdfQ09NTUFORFMgQ09ORklHX0NNRF9ERkwKKyNlbmRpZgorCisKKy8qCisgKiBvcHRpb25hbCBCT09UUCBmaWVsZHMKKyAqLworCisjZGVmaW5lIENPTkZJR19CT09UUF9TVUJORVRNQVNLCQkweDAwMDAwMDAxCisjZGVmaW5lIENPTkZJR19CT09UUF9HQVRFV0FZCQkweDAwMDAwMDAyCisjZGVmaW5lIENPTkZJR19CT09UUF9IT1NUTkFNRQkJMHgwMDAwMDAwNAorI2RlZmluZSBDT05GSUdfQk9PVFBfTklTRE9NQUlOCQkweDAwMDAwMDA4CisjZGVmaW5lIENPTkZJR19CT09UUF9CT09UUEFUSAkJMHgwMDAwMDAxMAorI2RlZmluZSBDT05GSUdfQk9PVFBfQk9PVEZJTEVTSVpFCTB4MDAwMDAwMjAKKyNkZWZpbmUgQ09ORklHX0JPT1RQX0ROUwkJMHgwMDAwMDA0MAorI2RlZmluZSBDT05GSUdfQk9PVFBfRE5TMgkJMHgwMDAwMDA4MAorI2RlZmluZSBDT05GSUdfQk9PVFBfU0VORF9IT1NUTkFNRQkweDAwMDAwMTAwCisjZGVmaW5lIENPTkZJR19CT09UUF9OVFBTRVJWRVIJCTB4MDAwMDAyMDAKKyNkZWZpbmUgQ09ORklHX0JPT1RQX1RJTUVPRkZTRVQJCTB4MDAwMDA0MDAKKworI2RlZmluZSBDT05GSUdfQk9PVFBfVkVORE9SRVgJCTB4ODAwMDAwMDAKKworI2RlZmluZSBDT05GSUdfQk9PVFBfQUxMCQkofkNPTkZJR19CT09UUF9WRU5ET1JFWCkKKworCisjZGVmaW5lIENPTkZJR19CT09UUF9ERUZBVUxUCQkoQ09ORklHX0JPT1RQX1NVQk5FVE1BU0sgfCBcCisJCQkJCUNPTkZJR19CT09UUF9HQVRFV0FZCSB8IFwKKwkJCQkJQ09ORklHX0JPT1RQX0hPU1ROQU1FCSB8IFwKKwkJCQkJQ09ORklHX0JPT1RQX0JPT1RQQVRIKQorCisjaWZuZGVmIENPTkZJR19CT09UUF9NQVNLCisjZGVmaW5lIENPTkZJR19CT09UUF9NQVNLCQlDT05GSUdfQk9PVFBfREVGQVVMVAorI2VuZGlmCisKKyNlbmRpZgkvKiBfQ01EX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvY29tbWFuZC5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2NvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjkzNmFkCi0tLSAvZGV2L251bGwKKysrIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2NvbW1hbmQuaApAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgMjAwMAorICogV29sZmdhbmcgRGVuaywgREVOWCBTb2Z0d2FyZSBFbmdpbmVlcmluZywgd2RAZGVueC5kZS4KKyAqCisgKiBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcworICogcHJvamVjdC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKyAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAorICogTUEgMDIxMTEtMTMwNyBVU0EKKyAqLworCisvKgorICogIERlZmluaXRpb25zIGZvciBDb21tYW5kIFByb2Nlc3NvcgorICovCisjaWZuZGVmIF9fQ09NTUFORF9ICisjZGVmaW5lIF9fQ09NTUFORF9ICisKKyNpZm5kZWYgTlVMTAorI2RlZmluZSBOVUxMCTAKKyNlbmRpZgorCisjaWZuZGVmCV9fQVNTRU1CTFlfXworLyoKKyAqIE1vbml0b3IgQ29tbWFuZCBUYWJsZQorICovCisKK3N0cnVjdCBjbWRfdGJsX3MgeworCWNoYXIJCSpuYW1lOwkJLyogQ29tbWFuZCBOYW1lCQkJKi8KKwlpbnQJCW1heGFyZ3M7CS8qIG1heGltdW0gbnVtYmVyIG9mIGFyZ3VtZW50cwkqLworCWludAkJcmVwZWF0YWJsZTsJLyogYXV0b3JlcGVhdCBhbGxvd2VkPwkJKi8KKwkJCQkJLyogSW1wbGVtZW50YXRpb24gZnVuY3Rpb24JKi8KKwlpbnQJCSgqY21kKShzdHJ1Y3QgY21kX3RibF9zICosIGludCwgaW50LCBjaGFyICpbXSk7CisJY2hhcgkJKnVzYWdlOwkJLyogVXNhZ2UgbWVzc2FnZQkoc2hvcnQpCSovCisjaWZkZWYJQ0ZHX0xPTkdIRUxQCisJY2hhcgkJKmhlbHA7CQkvKiBIZWxwICBtZXNzYWdlCShsb25nKQkqLworI2VuZGlmCisjaWZkZWYgQ09ORklHX0FVVE9fQ09NUExFVEUKKwkvKiBkbyBhdXRvIGNvbXBsZXRpb24gb24gdGhlIGFyZ3VtZW50cyAqLworCWludAkJKCpjb21wbGV0ZSkoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgY2hhciBsYXN0X2NoYXIsIGludCBtYXh2LCBjaGFyICpjbWR2W10pOworI2VuZGlmCit9OworCit0eXBlZGVmIHN0cnVjdCBjbWRfdGJsX3MJY21kX3RibF90OworCitleHRlcm4gY21kX3RibF90ICBfX3VfYm9vdF9jbWRfc3RhcnQ7CitleHRlcm4gY21kX3RibF90ICBfX3VfYm9vdF9jbWRfZW5kOworCisKKy8qIGNvbW1vbi9jb21tYW5kLmMgKi8KK2NtZF90YmxfdCAqZmluZF9jbWQoY29uc3QgY2hhciAqY21kKTsKKworI2lmZGVmIENPTkZJR19BVVRPX0NPTVBMRVRFCitleHRlcm4gdm9pZCBpbnN0YWxsX2F1dG9fY29tcGxldGUodm9pZCk7CitleHRlcm4gaW50IGNtZF9hdXRvX2NvbXBsZXRlKGNvbnN0IGNoYXIgKmNvbnN0IHByb21wdCwgY2hhciAqYnVmLCBpbnQgKm5wLCBpbnQgKmNvbHApOworI2VuZGlmCisKKy8qCisgKiBNb25pdG9yIENvbW1hbmQKKyAqCisgKiBBbGwgY29tbWFuZHMgdXNlIGEgY29tbW9uIGFyZ3VtZW50IGZvcm1hdDoKKyAqCisgKiB2b2lkIGZ1bmN0aW9uIChjbWRfdGJsX3QgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSk7CisgKi8KKwordHlwZWRlZgl2b2lkIAljb21tYW5kX3QgKGNtZF90YmxfdCAqLCBpbnQsIGludCwgY2hhciAqW10pOworCisjZW5kaWYJLyogX19BU1NFTUJMWV9fICovCisKKy8qCisgKiBDb21tYW5kIEZsYWdzOgorICovCisjZGVmaW5lIENNRF9GTEFHX1JFUEVBVAkJMHgwMDAxCS8qIHJlcGVhdCBsYXN0IGNvbW1hbmQJCSovCisjZGVmaW5lIENNRF9GTEFHX0JPT1RECQkweDAwMDIJLyogY29tbWFuZCBpcyBmcm9tIGJvb3RkCSovCisKKy8qCisgKiBDb25maWd1cmFibGUgbW9uaXRvciBjb21tYW5kcyBkZWZpbml0aW9ucyBoYXZlIGJlZW4gbW92ZWQKKyAqIHRvIGluY2x1ZGUvY21kX2NvbmZkZWZzLmgKKyAqLworCisKKyNkZWZpbmUgU3RydWN0X1NlY3Rpb24gIF9fYXR0cmlidXRlX18gKCh1bnVzZWQsc2VjdGlvbiAoIi51X2Jvb3RfY21kIikpKQorCisjaWZkZWYgIENGR19MT05HSEVMUAorCisjZGVmaW5lIFVfQk9PVF9DTUQobmFtZSxtYXhhcmdzLHJlcCxjbWQsdXNhZ2UsaGVscCkgXAorY21kX3RibF90IF9fdV9ib290X2NtZF8jI25hbWUgU3RydWN0X1NlY3Rpb24gPSB7I25hbWUsIG1heGFyZ3MsIHJlcCwgY21kLCB1c2FnZSwgaGVscH0KKworI2Vsc2UJLyogbm8gbG9uZyBoZWxwIGluZm8gKi8KKworI2RlZmluZSBVX0JPT1RfQ01EKG5hbWUsbWF4YXJncyxyZXAsY21kLHVzYWdlLGhlbHApIFwKK2NtZF90YmxfdCBfX3VfYm9vdF9jbWRfIyNuYW1lIFN0cnVjdF9TZWN0aW9uID0geyNuYW1lLCBtYXhhcmdzLCByZXAsIGNtZCwgdXNhZ2V9CisKKyNlbmRpZgkvKiBDRkdfTE9OR0hFTFAgKi8KKworI2VuZGlmCS8qIF9fQ09NTUFORF9IICovCmRpZmYgLS1naXQgYS9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvY29tbW9uLmggYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvY29tbW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2IwYmQxYgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9jb21tb24uaApAQCAtMCwwICsxLDcyIEBACisvKgorICogKEMpIENvcHlyaWdodCAyMDA0CisgKiBUZXhhcyBJbnN0cnVtZW50cworICoKKyAqIChDKSBDb3B5cmlnaHQgMjAwMC0yMDA0CisgKiBXb2xmZ2FuZyBEZW5rLCBERU5YIFNvZnR3YXJlIEVuZ2luZWVyaW5nLCB3ZEBkZW54LmRlLgorICoKKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisgKiBwcm9qZWN0LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgkgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisgKiBNQSAwMjExMS0xMzA3IFVTQQorICovCisKKyNpZm5kZWYgX19DT01NT05fSF8KKyNkZWZpbmUgX19DT01NT05fSF8JMQorCisjdW5kZWYJX0xJTlVYX0NPTkZJR19ICisjZGVmaW5lIF9MSU5VWF9DT05GSUdfSCAxCS8qIGF2b2lkIHJlYWRpbmcgTGludXggYXV0b2NvbmYuaCBmaWxlCSovCisKKyNpbmNsdWRlIDxjb25maWcuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPHN0ZGFyZy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3VhcnQuaD4KKworCisjaWZkZWYgQ09ORklHX0FSTQorI2RlZmluZSBhc21saW5rYWdlCS8qIG5vdGhpbmcgKi8KKyNlbmRpZgorCisgCisjaWZkZWYgQ09ORklHX0FSTQorIyBpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyMgaW5jbHVkZSA8YXNtL3otbG9hZC1hcm0uaD4JLyogQVJNIHZlcnNpb24gdG8gYmUgZml4ZWQhICovCisjZW5kaWYgLyogQ09ORklHX0FSTSAqLworCisKKyNpZiBDRkdfUFJJTlRGCisjZGVmaW5lIHByaW50Zih4KSAgICB1YXJ0X3B1dHMoeCkKKyNlbHNlCisjZGVmaW5lIHByaW50Zih4KQorI2VuZGlmCS8qIENGR19QUklOVEYgKi8KKworCit2b2lkIGNsa19pbml0ICh2b2lkKTsKK2ludCB0c3BfdXNiX2luaXQodm9pZCk7CisgICAgCit2b2lkIHVzYl9ib290KHUzMiBVU0JfQUREUik7CisgCisvKiBjcHUvJChDUFUpL2NwdS5jICovCit2b2lkIAl1c2RlbGF5ICh1MzIgdXNlYyk7CisKKworLyogbGliL2JvYXJkLmMgKi8KK3ZvaWQJaGFuZwkJKHZvaWQpIF9fYXR0cmlidXRlX18gKChub3JldHVybikpOworCisjZGVmaW5lIFBhcmFfU2VjdGlvbiAgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18gKCIucGFyYSIpKSkKKyAgCisKKyNlbmRpZgkvKiBfX0NPTU1PTl9IXyAqLwpkaWZmIC0tZ2l0IGEvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2NvbmZpZ3MvengyOTc1MjB2My5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2NvbmZpZ3MvengyOTc1MjB2My5oCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcxZDZkNTAKLS0tIC9kZXYvbnVsbAorKysgYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvY29uZmlncy96eDI5NzUyMHYzLmgKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgMjAxNiBaWElDIEluYy4gCisgKgorICovCisjaW5jbHVkZSA8Ym9hcmQuaD4KKyNpbmNsdWRlICJkbWFfY2ZnLmgiCisKKyNpZm5kZWYgX19DT05GSUdfSF9fCisjZGVmaW5lIF9fQ09ORklHX0hfXworCisKKyNkZWZpbmUgQ0ZHX1VTQiAgICAgICAgICAxCisjZGVmaW5lIENGR19VQVJUICAgICAgICAgMAorCisjaWZkZWYgVjNFX05PUl9GTEFTSAorI2RlZmluZSBDRkdfUFJJTlRGICAgICAgIDEgICAgCisjZWxzZQorLy8jaWZkZWYgQ09ORklHX1pYMjk3NTIwVjNFX01ETF9BQgorI2lmIGRlZmluZWQoQ09ORklHX1pYMjk3NTIwVjNFX01ETF9BQikgfHwgZGVmaW5lZChDT05GSUdfWlgyOTc1MjBWM0VfVkVISUNMRV9EQykKKyNkZWZpbmUgQ0ZHX1BSSU5URiAgICAgICAwCisjZWxzZQorI2RlZmluZSBDRkdfUFJJTlRGICAgICAgIDEgICAgCisjZW5kaWYKKyNlbmRpZgorCisjZGVmaW5lIFZFUlNJT05fUkVMRUFTRSAgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1pYMjk3NTIwICAgICAgICAgMQorCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fVEVNUF9CQVNFCTB4MjE0MDAwMDAKKworLyogTTDKobXnsOaxvrP1yry7r7vhx+Wz/TB4MTAzMDAwv6rKvLXE0ru2zlJBTb/VvOShoyAqLworLy8jZGVmaW5lIENGR19CT09UX01PREVfU0FWRV9BRERSX0ZPUl9VQk9PVCAgMHgxMDMwMDAgICAgICAgLyogSVJBTTEgPC0tPiBVLUJPT1QgKi8KKyNkZWZpbmUgICAgIENGR19UTE9BRF9NT0RFICAweDg3NjU0MzIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVS1CT09UICovCisjZGVmaW5lICAgICBDRkdfWkxPQURfTU9ERSAgMHgxMjM0NTY3OCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFUtQk9PVCAqLworCisvKiBNMMqhteew5rG+s/XKvLuvu+HH5bP9MHgxMDMwMDC/qsq8tcTSu7bOUkFNv9W85KGjICovCisvLyNkZWZpbmUgQ0ZHX0JPT1RfTU9ERV9TVEFSVF9NT0RFX0ZPUl9VQk9PVCAgMHgxMDMwMDQgICAgICAgLyogSVJBTTEgPC0tPiBVLUJPT1QgKi8KKyNkZWZpbmUJCUNGR19TVEFSVF9NT0RFX05BTkQgICAgICAgICAweDExMTExMTExICAgICAgICAgICAgICAvKiBJUkFNMSA8LS0+IFUtQk9PVCAqLworI2RlZmluZSAgICAgQ0ZHX1NUQVJUX01PREVfU1BJX05BTkQgICAgIDB4MjIyMjIyMjIgICAgICAgICAgICAgIC8qIElSQU0xIDwtLT4gVS1CT09UICovCisjZGVmaW5lIAlDRkdfU1RBUlRfTU9ERV9OT1IJCQkweDU1NTU1NTU1CisKKworI2RlZmluZSAgICAgQ0ZHX1NUQVJUX1NUQUdFMV9BRERSICAgICAgMHgxMDIwMDAgIAorI2RlZmluZSAgICAgQ0ZHX1NUQVJUX1NUQUdFMV9TVEFURSAgICAgMHg1YWE1NWE1YSAKKworI2RlZmluZSAJQ0ZHX0FNVF9NT0RFX1NXSVRDSF9BRERSCTB4ODIwMDJCQzAKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBwYXJ0aXRpb24gbmFtZQorKioqLworLy8jaWZkZWYgQ09ORklHX1pYMjk3NTIwVjNFX01ETF9BQgorI2lmIGRlZmluZWQoQ09ORklHX1pYMjk3NTIwVjNFX01ETF9BQikgfHwgZGVmaW5lZChDT05GSUdfWlgyOTc1MjBWM0VfVkVISUNMRV9EQykKKyNkZWZpbmUgTTBfUEFSVElUSU9OX05BTUUgICAgICAgImNwdXJwbSIKKyNkZWZpbmUgVUJPT1RfSU1BR0UgICAgCSAgICAJInVib290IgorI2RlZmluZSBVQk9PVDJfSU1BR0UgICAgCSAgICAidWJvb3QyIgorI2RlZmluZSBGTEFHU19JTUFHRSAgICAgICAgIAkiZmxhZ3MiCisjZWxzZQorI2RlZmluZSBNMF9QQVJUSVRJT05fTkFNRSAgICAgICAiY3B1cnBtIgorI2RlZmluZSBVQk9PVF9JTUFHRSAgICAJCQkidWJvb3QiCisjZGVmaW5lIFVCT09UX01JUlJPUl9JTUFHRSAgICAJInVib290LW1pcnIiCisjZW5kaWYKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBJUkFNIGNvZmlnCisqKiovCisjZGVmaW5lIENGR19URU1QX0FERFIgICAgICAgICAgIDB4ODIwMDMwMDAgIC8vMHg4MjAwMTAwMCAgICAgIC8qIElSQU0xICAqLworI2RlZmluZSBDRkdfTkFORF9ETUFfQUREUiAgICAgICAweDEwMjAwMCAgICAgIC8qIElSQU0xIDBGRlNFVCA4ayAqLyAgCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIE5BTkQgcGFydGl0aW9uIGFuZCBjb2ZpZworKioqLworLyogIAorICAgMHgwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyTQorICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgIHwgIHotbG9hZChwYXJ0IHRhYmxlKSAgfCAgICAgICAgdS1ib290ICAgICB8ICAgICAgbTAgICAgICAgfCAgICAgICAgICAgICAgICAKKyAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAgICBibG9jazAgICAgICAgICBibG9jayAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sgCisqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogU0RJT19TTEFWRSBjb2ZpZworKioqLworI2RlZmluZSBDRkdfU0RJT19TTEFWRV9QQUNLQUdFX0xFTiAgICAgICAgICAgMHgxMDAwMCAgICAgLyogSyAgKi8KKyNkZWZpbmUgQ0ZHX1NESU9fU0xBVkVfQUxJR05fTEVOICAgICAgICAgICAweDEwMDAwICAgICAvKiA1MTJieXRlICAqLworCisjZW5kaWYgLyogX19DT05GSUdfSF9fICovCisKZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9kZHIuaCBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9kZHIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2JmMTE4Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2Rkci5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogQ29weXJpZ2h0IChDKSAyMDE2LCBaWElDIENvcnBvcmF0aW9uLg0KKyAqDQorICogRmlsZSBOYW1lOiAgICANCisgKiBGaWxlIE1hcms6ICAgIA0KKyAqIERlc2NyaXB0aW9uOiAgDQorICogT3RoZXJzOiAgICAgICAgDQorICogVmVyc2lvbjogICAgICAgdjEuMA0KKyAqIEF1dGhvcjogICAgICAgIHpob3VxaQ0KKyAqIERhdGU6ICAgICAgICAgIDIwMTMtOC0yMQ0KKyAqIEhpc3RvcnkgMTogICAgICANCisgKiAgICAgRGF0ZTogDQorICogICAgIFZlcnNpb246DQorICogICAgIEF1dGhvcjogDQorICogICAgIE1vZGlmaWNhdGlvbjogIA0KKyAqIEhpc3RvcnkgMjogDQorICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCisjaWZuZGVmIF9aWDI5NzUxMF9ERFJfSF8NCisjZGVmaW5lIF9aWDI5NzUxMF9ERFJfSF8NCisNCisNCisvLyNkZWZpbmUgRERSX0ZGQw0KK3R5cGVkZWYgdW5zaWduZWQgaW50ICBVSU5UMzI7DQordHlwZWRlZiB1bnNpZ25lZCBjaGFyIFVJTlQ4Ow0KKyNpZiAwICANCisvKmRkciDJ6LG4vMS05sb3veG5uczlKi8NCitzdHJ1Y3QgZGRyX2RldmljZV9wYXJhDQorew0KKyAgICB1bnNpZ25lZCBpbnQgIHJlZ18weDEyMDMwZjQ7ICAgICAgICAgICAgLyogvMS05sb3IDB4MTIwMzBmNCAqLw0KK307DQorI2VuZGlmDQorDQorDQordHlwZWRlZiBlbnVtDQorew0KKyAgICBERFJfMTU2TSA9IDAsDQorICAgIEREUl8yMDhNID0gMSwNCisgICAgRERSXzMxMk0gPSAyLA0KKyAgICBERFJfNDAwTSA9IDMsICAgIA0KKyAgICBERFJfQ0xLRU5EDQorfVRfekRydlBvd19ERFJDTEs7DQorDQorDQorLypERFIqLw0KKyNkZWZpbmUgRERSX0NUUkxfQkFTRQkJCSgweDAwMTUwMDAwKQ0KKyNkZWZpbmUgRERSX1BIWV9CQVNFCQkJKDB4MDAxNTQwMDApDQorI2RlZmluZSBERFJfRkZDX0FERFJfQkFTRSAgICAgICAoMHgwMDE1NTAwMCkNCisNCisNCisjZGVmaW5lIFNURF9DUk1fUkVHX0JBU0UgICAgCSgweDAxMzA2MDAwKQ0KKw0KKyNkZWZpbmUgQ1JUTF9QV1JDVEwJCQkJKEREUl9DVFJMX0JBU0UrMHgwMzApDQorDQorLypERFIgQ1RSTCBNUCovDQorDQorI2RlZmluZSBDVFJMX1NUQVQJCQkJKEREUl9DVFJMX0JBU0UrMHgwMDQpDQorDQorI2RlZmluZSBNT0RfQ0xLX1NFTAkJCQkoU1REX0NSTV9SRUdfQkFTRSsweDUwKQ0KKw0KKyNkZWZpbmUgU0VMRlJFRl9TVyAJCQkJKDUpDQorDQorI2RlZmluZSBDSElQX0REUl9JU18zMk0JCQkwDQorI2RlZmluZSBDSElQX0REUl9JU182NE0JCQkxDQorI2RlZmluZSBDSElQX0REUl9JU18xMjhNCQkyDQorI2RlZmluZSBDSElQX0REUl9JU18yNTZNCQkzDQorDQorDQoraW50IGRkcl9pbml0KGludCBmbGFnKTsNCisNCisNCisjZW5kaWYvKl9aWDI5NzUxMF9ERFJfSF8qLw0KKw0KKw0KZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9lbnZpcm9ubWVudC5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2Vudmlyb25tZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ5ODc3MwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9lbnZpcm9ubWVudC5oCkBAIC0wLDAgKzEsMTExIEBACisvKgorICogKEMpIENvcHlyaWdodCAyMDAyCisgKiBXb2xmZ2FuZyBEZW5rLCBERU5YIFNvZnR3YXJlIEVuZ2luZWVyaW5nLCB3ZEBkZW54LmRlLgorICoKKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisgKiBwcm9qZWN0LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisgKiBNQSAwMjExMS0xMzA3IFVTQQorICovCisKKyNpZm5kZWYgX0VOVklST05NRU5UX0hfCisjZGVmaW5lIF9FTlZJUk9OTUVOVF9IXwkxCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIFRoZSAiZW52aXJvbm1lbnQiIGlzIHN0b3JlZCBhcyBhIGxpc3Qgb2YgJ1wwJyB0ZXJtaW5hdGVkCisgKiAibmFtZT12YWx1ZSIgc3RyaW5ncy4gVGhlIGVuZCBvZiB0aGUgbGlzdCBpcyBtYXJrZWQgYnkgYSBkb3VibGUKKyAqICdcMCcuIE5ldyBlbnRyaWVzIGFyZSBhbHdheXMgYWRkZWQgYXQgdGhlIGVuZC4gRGVsZXRpbmcgYW4gZW50cnkKKyAqIHNoaWZ0cyB0aGUgcmVtYWluaW5nIGVudHJpZXMgdG8gdGhlIGZyb250LiBSZXBsYWNpbmcgYW4gZW50cnkgaXMgYQorICogY29tYmluYXRpb24gb2YgZGVsZXRpbmcgdGhlIG9sZCB2YWx1ZSBhbmQgYWRkaW5nIHRoZSBuZXcgb25lLgorICoKKyAqIFRoZSBlbnZpcm9ubWVudCBpcyBwcmVjZWVkZWQgYnkgYSAzMiBiaXQgQ1JDIG92ZXIgdGhlIGRhdGEgcGFydC4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisjaWYgZGVmaW5lZChDRkdfRU5WX0lTX0lOX0ZMQVNIKQorIyBpZm5kZWYgIENGR19FTlZfQUREUgorIyAgZGVmaW5lIENGR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfRU5WX09GRlNFVCkKKyMgZW5kaWYKKyMgaWZuZGVmICBDRkdfRU5WX09GRlNFVAorIyAgZGVmaW5lIENGR19FTlZfT0ZGU0VUIChDRkdfRU5WX0FERFIgLSBDRkdfRkxBU0hfQkFTRSkKKyMgZW5kaWYKKyMgaWYgIWRlZmluZWQoQ0ZHX0VOVl9BRERSX1JFRFVORCkgJiYgZGVmaW5lZChDRkdfRU5WX09GRlNFVF9SRURVTkQpCisjICBkZWZpbmUgQ0ZHX0VOVl9BRERSX1JFRFVORAkoQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfRU5WX09GRlNFVF9SRURVTkQpCisjIGVuZGlmCisjIGlmIGRlZmluZWQoQ0ZHX0VOVl9TRUNUX1NJWkUpIHx8IGRlZmluZWQoQ0ZHX0VOVl9TSVpFKQorIyAgaWZuZGVmICBDRkdfRU5WX1NFQ1RfU0laRQorIyAgIGRlZmluZSBDRkdfRU5WX1NFQ1RfU0laRQlDRkdfRU5WX1NJWkUKKyMgIGVuZGlmCisjICBpZm5kZWYgIENGR19FTlZfU0laRQorIyAgIGRlZmluZSBDRkdfRU5WX1NJWkUJQ0ZHX0VOVl9TRUNUX1NJWkUKKyMgIGVuZGlmCisjIGVsc2UKKyMgIGVycm9yICJCb3RoIENGR19FTlZfU0VDVF9TSVpFIGFuZCBDRkdfRU5WX1NJWkUgdW5kZWZpbmVkIgorIyBlbmRpZgorIyBpZiBkZWZpbmVkKENGR19FTlZfQUREUl9SRURVTkQpICYmICFkZWZpbmVkKENGR19FTlZfU0laRV9SRURVTkQpCisjICBkZWZpbmUgQ0ZHX0VOVl9TSVpFX1JFRFVORAlDRkdfRU5WX1NJWkUKKyMgZW5kaWYKKyMgaWYgKCghZGVmaW5lZCAoRU5WX0lTX1ZBUklBQkxFKSkgfHwgIUVOVl9JU19WQVJJQUJMRSkgJiYgKENGR19FTlZfQUREUiA+PSBDRkdfTU9OSVRPUl9CQVNFKSAmJiBcCisgICAgIChDRkdfRU5WX0FERFIrQ0ZHX0VOVl9TSVpFKSA8PSAoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKyMgIGRlZmluZSBFTlZfSVNfRU1CRURERUQJMQorIyBlbmRpZgorIyBpZiBkZWZpbmVkKENGR19FTlZfQUREUl9SRURVTkQpIHx8IGRlZmluZWQoQ0ZHX0VOVl9PRkZTRVRfUkVEVU5EKQorIyAgZGVmaW5lIENGR19SRURVTkRBTkRfRU5WSVJPTk1FTlQJMQorIyBlbmRpZgorI2VuZGlmCS8qIENGR19FTlZfSVNfSU5fRkxBU0ggKi8KKworI2lmIGRlZmluZWQoQ0ZHX0VOVl9JU19JTl9OQU5EKQorIyBpZm5kZWYgQ0ZHX0VOVl9PRkZTRVQKKyMgIGVycm9yICJOZWVkIHRvIGRlZmluZSBDRkdfRU5WX09GRlNFVCB3aGVuIHVzaW5nIENGR19FTlZfSVNfSU5fTkFORCIKKyMgZW5kaWYKKyMgaWZuZGVmIENGR19FTlZfU0laRQorIyAgZXJyb3IgIk5lZWQgdG8gZGVmaW5lIENGR19FTlZfU0laRSB3aGVuIHVzaW5nIENGR19FTlZfSVNfSU5fTkFORCIKKyMgZW5kaWYKKyMgaWZkZWYgQ0ZHX0VOVl9PRkZTRVRfUkVEVU5ECisjICBkZWZpbmUgQ0ZHX1JFRFVOREFORF9FTlZJUk9OTUVOVAorIyBlbmRpZgorI2VuZGlmIC8qIENGR19FTlZfSVNfSU5fTkFORCAqLworCisKKyNpZiBkZWZpbmVkKENGR19FTlZfSVNfSU5fRU1NQykKKyMgaWZuZGVmIENGR19FTlZfT0ZGU0VUCisjICBlcnJvciAiTmVlZCB0byBkZWZpbmUgQ0ZHX0VOVl9PRkZTRVQgd2hlbiB1c2luZyBDRkdfRU5WX0lTX0lOX0VNTUMiCisjIGVuZGlmCisjIGlmbmRlZiBDRkdfRU5WX1NJWkUKKyMgIGVycm9yICJOZWVkIHRvIGRlZmluZSBDRkdfRU5WX1NJWkUgd2hlbiB1c2luZyBDRkdfRU5WX0lTX0lOX0VNTUMiCisjIGVuZGlmCisjZW5kaWYgLyogQ0ZHX0VOVl9JU19JTl9FTU1DICovCisKKyNpZmRlZiBDRkdfUkVEVU5EQU5EX0VOVklST05NRU5UCisjIGRlZmluZSBFTlZfSEVBREVSX1NJWkUJKHNpemVvZih1bnNpZ25lZCBsb25nKSArIDEpCisjZWxzZQorIyBkZWZpbmUgRU5WX0hFQURFUl9TSVpFCShzaXplb2YodW5zaWduZWQgbG9uZykpCisjZW5kaWYKKworCisjZGVmaW5lIEVOVl9TSVpFIChDRkdfRU5WX1NJWkUgLSBFTlZfSEVBREVSX1NJWkUpCisKK3R5cGVkZWYJc3RydWN0IGVudmlyb25tZW50X3MgeworCXVuc2lnbmVkIGxvbmcJY3JjOwkJLyogQ1JDMzIgb3ZlciBkYXRhIGJ5dGVzCSovCisjaWZkZWYgQ0ZHX1JFRFVOREFORF9FTlZJUk9OTUVOVAorCXVuc2lnbmVkIGNoYXIJZmxhZ3M7CQkvKiBhY3RpdmUvb2Jzb2xldGUgZmxhZ3MJKi8KKyNlbmRpZgorCXVuc2lnbmVkIGNoYXIJZGF0YVtFTlZfU0laRV07IC8qIEVudmlyb25tZW50IGRhdGEJCSovCit9IGVudl90OworCisjZW5kaWYJLyogX0VOVklST05NRU5UX0hfICovCmRpZmYgLS1naXQgYS9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvZmF0LmggYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvZmF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjI5OWFlYQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9mYXQuaApAQCAtMCwwICsxLDIxNSBAQAorLyoKKyAqIFIvTyAoVilGQVQgMTIvMTYvMzIgZmlsZXN5c3RlbSBpbXBsZW1lbnRhdGlvbiBieSBNYXJjdXMgU3VuZGJlcmcKKyAqCisgKiAyMDAyLTA3LTI4IC0gcmpvbmVzQG5leHVzLXRlY2gubmV0IC0gcG9ydGVkIHRvIHBwY2Jvb3QgdjEuMS42CisgKiAyMDAzLTAzLTEwIC0ga2hhcnJpc0BuZXh1cy10ZWNoLm5ldCAtIHBvcnRlZCB0byB1LWJvb3QKKyAqCisgKiBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcworICogcHJvamVjdC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKyAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAorICogTUEgMDIxMTEtMTMwNyBVU0EKKyAqCisgKi8KKworI2lmbmRlZiBfRkFUX0hfCisjZGVmaW5lIF9GQVRfSF8KKworI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4KKworI2RlZmluZSBDT05GSUdfU1VQUE9SVF9WRkFUCisKKyNkZWZpbmUgU0VDVE9SX1NJWkUgRlNfQkxPQ0tfU0laRQorCisjZGVmaW5lIEZTX0JMT0NLX1NJWkUgNTEyCisKKyNpZiBGU19CTE9DS19TSVpFICE9IFNFQ1RPUl9TSVpFCisjZXJyb3IgRlNfQkxPQ0tfU0laRSAhPSBTRUNUT1JfU0laRSAtIFRoaXMgY29kZSBuZWVkcyB0byBiZSBmaXhlZCEKKyNlbmRpZgorCisjZGVmaW5lIE1BWF9DTFVTVFNJWkUJNjU1MzYKKyNkZWZpbmUgRElSRU5UU1BFUkJMT0NLCShGU19CTE9DS19TSVpFL3NpemVvZihkaXJfZW50cnkpKQorI2RlZmluZSBESVJFTlRTUEVSQ0xVU1QJKChteWRhdGEtPmNsdXN0X3NpemUqU0VDVE9SX1NJWkUpL3NpemVvZihkaXJfZW50cnkpKQorCisjZGVmaW5lIEZBVEJVRkJMT0NLUwk2CisjZGVmaW5lIEZBVEJVRlNJWkUJKEZTX0JMT0NLX1NJWkUqRkFUQlVGQkxPQ0tTKQorI2RlZmluZSBGQVQxMkJVRlNJWkUJKChGQVRCVUZTSVpFKjIpLzMpCisjZGVmaW5lIEZBVDE2QlVGU0laRQkoRkFUQlVGU0laRS8yKQorI2RlZmluZSBGQVQzMkJVRlNJWkUJKEZBVEJVRlNJWkUvNCkKKworCisvKiBGaWxlc3lzdGVtIGlkZW50aWZpZXJzICovCisjZGVmaW5lIEZBVDEyX1NJR04JIkZBVDEyICAgIgorI2RlZmluZSBGQVQxNl9TSUdOCSJGQVQxNiAgICIKKyNkZWZpbmUgRkFUMzJfU0lHTgkiRkFUMzIgICAiCisjZGVmaW5lIFNJR05MRU4JCTgKKworLyogRmlsZSBhdHRyaWJ1dGVzICovCisjZGVmaW5lIEFUVFJfUk8gICAgICAxCisjZGVmaW5lIEFUVFJfSElEREVOICAyCisjZGVmaW5lIEFUVFJfU1lTICAgICA0CisjZGVmaW5lIEFUVFJfVk9MVU1FICA4CisjZGVmaW5lIEFUVFJfRElSICAgICAxNgorI2RlZmluZSBBVFRSX0FSQ0ggICAgMzIKKworI2RlZmluZSBBVFRSX1ZGQVQgICAgIChBVFRSX1JPIHwgQVRUUl9ISURERU4gfCBBVFRSX1NZUyB8IEFUVFJfVk9MVU1FKQorCisjZGVmaW5lIERFTEVURURfRkxBRwkoKGNoYXIpMHhlNSkgLyogTWFya3MgZGVsZXRlZCBmaWxlcyB3aGVuIGluIG5hbWVbMF0gKi8KKyNkZWZpbmUgYVJJTkcJCTB4MDUJICAgICAvKiBVc2VkIHRvIHJlcHJlc2VudCAn5ScgaW4gbmFtZVswXSAqLworCisvKiBJbmRpY2F0ZXMgdGhhdCB0aGUgZW50cnkgaXMgdGhlIGxhc3QgbG9uZyBlbnRyeSBpbiBhIHNldCBvZiBsb25nCisgKiBkaXIgZW50cmllcworICovCisjZGVmaW5lIExBU1RfTE9OR19FTlRSWV9NQVNLCTB4NDAKKworLyogRmxhZ3MgdGVsbGluZyB3aGV0aGVyIHdlIHNob3VsZCByZWFkIGEgZmlsZSBvciBsaXN0IGEgZGlyZWN0b3J5ICovCisjZGVmaW5lIExTX05PCTAKKyNkZWZpbmUgTFNfWUVTCTEKKyNkZWZpbmUgTFNfRElSCTEKKyNkZWZpbmUgTFNfUk9PVAkyCisKKyNpZmRlZiBERUJVRworI2RlZmluZSBGQVRfRFBSSU5UKGFyZ3MuLi4pCXByaW50ZihhcmdzKQorI2Vsc2UKKyNkZWZpbmUgRkFUX0RQUklOVChhcmdzLi4uKQorI2VuZGlmCisjZGVmaW5lIEZBVF9FUlJPUihhcmcpCQlwcmludGYoYXJnKQorCisjZGVmaW5lIElTRElSREVMSU0oYykgICAoKGMpID09ICcvJyB8fCAoYykgPT0gJ1xcJykKKworI2RlZmluZSBGU1RZUEVfTk9ORQkoLTEpCisKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX0tFUk5FTF9fKQorI2RlZmluZSBGQVQyQ1BVMTYJbGUxNl90b19jcHUKKyNkZWZpbmUgRkFUMkNQVTMyCWxlMzJfdG9fY3B1CisjZWxzZQorI2lmIF9fTElUVExFX0VORElBTgorI2RlZmluZSBGQVQyQ1BVMTYoeCkJKHgpCisjZGVmaW5lIEZBVDJDUFUzMih4KQkoeCkKKyNlbHNlCisjZGVmaW5lIEZBVDJDUFUxNih4KQkoKCgoeCkgJiAweDAwZmYpIDw8IDgpIHwgKCgoeCkgJiAweGZmMDApID4+IDgpKQorI2RlZmluZSBGQVQyQ1BVMzIoeCkJKCgoKHgpICYgMHgwMDAwMDBmZikgPDwgMjQpICB8CVwKKwkgCQkgKCgoeCkgJiAweDAwMDBmZjAwKSA8PCA4KSAgfAlcCisJCQkgKCgoeCkgJiAweDAwZmYwMDAwKSA+PiA4KSAgfAlcCisJCQkgKCgoeCkgJiAweGZmMDAwMDAwKSA+PiAyNCkpCisjZW5kaWYKKyNlbmRpZgorCisjZGVmaW5lIFRPTE9XRVIoYykJaWYoKGMpID49ICdBJyAmJiAoYykgPD0gJ1onKXsoYykrPSgnYScgLSAnQScpO30KKyNkZWZpbmUgU1RBUlQoZGVudCkJKEZBVDJDUFUxNigoZGVudCktPnN0YXJ0KSBcCisJCQkrIChteWRhdGEtPmZhdHNpemUgIT0gMzIgPyAwIDogXAorCQkJICAoRkFUMkNQVTE2KChkZW50KS0+c3RhcnRoaSkgPDwgMTYpKSkKKworCit0eXBlZGVmIHN0cnVjdCBib290X3NlY3RvciB7CisJX191OAlpZ25vcmVkWzNdOwkvKiBCb290c3RyYXAgY29kZSAqLworCWNoYXIJc3lzdGVtX2lkWzhdOwkvKiBOYW1lIG9mIGZzICovCisJX191OAlzZWN0b3Jfc2l6ZVsyXTsJLyogQnl0ZXMvc2VjdG9yICovCisJX191OAljbHVzdGVyX3NpemU7CS8qIFNlY3RvcnMvY2x1c3RlciAqLworCV9fdTE2CXJlc2VydmVkOwkvKiBOdW1iZXIgb2YgcmVzZXJ2ZWQgc2VjdG9ycyAqLworCV9fdTgJZmF0czsJCS8qIE51bWJlciBvZiBGQVRzICovCisJX191OAlkaXJfZW50cmllc1syXTsJLyogTnVtYmVyIG9mIHJvb3QgZGlyZWN0b3J5IGVudHJpZXMgKi8KKwlfX3U4CXNlY3RvcnNbMl07CS8qIE51bWJlciBvZiBzZWN0b3JzICovCisJX191OAltZWRpYTsJCS8qIE1lZGlhIGNvZGUgKi8KKwlfX3UxNglmYXRfbGVuZ3RoOwkvKiBTZWN0b3JzL0ZBVCAqLworCV9fdTE2CXNlY3NfdHJhY2s7CS8qIFNlY3RvcnMvdHJhY2sgKi8KKwlfX3UxNgloZWFkczsJCS8qIE51bWJlciBvZiBoZWFkcyAqLworCV9fdTMyCWhpZGRlbjsJCS8qIE51bWJlciBvZiBoaWRkZW4gc2VjdG9ycyAqLworCV9fdTMyCXRvdGFsX3NlY3Q7CS8qIE51bWJlciBvZiBzZWN0b3JzIChpZiBzZWN0b3JzID09IDApICovCisKKwkvKiBGQVQzMiBvbmx5ICovCisJX191MzIJZmF0MzJfbGVuZ3RoOwkvKiBTZWN0b3JzL0ZBVCAqLworCV9fdTE2CWZsYWdzOwkJLyogQml0IDg6IGZhdCBtaXJyb3JpbmcsIGxvdyA0OiBhY3RpdmUgZmF0ICovCisJX191OAl2ZXJzaW9uWzJdOwkvKiBGaWxlc3lzdGVtIHZlcnNpb24gKi8KKwlfX3UzMglyb290X2NsdXN0ZXI7CS8qIEZpcnN0IGNsdXN0ZXIgaW4gcm9vdCBkaXJlY3RvcnkgKi8KKwlfX3UxNglpbmZvX3NlY3RvcjsJLyogRmlsZXN5c3RlbSBpbmZvIHNlY3RvciAqLworCV9fdTE2CWJhY2t1cF9ib290OwkvKiBCYWNrdXAgYm9vdCBzZWN0b3IgKi8KKwlfX3UxNglyZXNlcnZlZDJbNl07CS8qIFVudXNlZCAqLworfSBib290X3NlY3RvcjsKKwordHlwZWRlZiBzdHJ1Y3Qgdm9sdW1lX2luZm8KK3sKKwlfX3U4IGRyaXZlX251bWJlcjsJLyogQklPUyBkcml2ZSBudW1iZXIgKi8KKwlfX3U4IHJlc2VydmVkOwkJLyogVW51c2VkICovCisJX191OCBleHRfYm9vdF9zaWduOwkvKiAweDI5IGlmIGZpZWxkcyBiZWxvdyBleGlzdCAoRE9TIDMuMyspICovCisJX191OCB2b2x1bWVfaWRbNF07CS8qIFZvbHVtZSBJRCBudW1iZXIgKi8KKwljaGFyIHZvbHVtZV9sYWJlbFsxMV07CS8qIFZvbHVtZSBsYWJlbCAqLworCWNoYXIgZnNfdHlwZVs5XTsJLyogVHlwaWNhbGx5IEZBVDEyLCBGQVQxNiwgb3IgRkFUMzIgKi8KKwkvKiBCb290IGNvZGUgY29tZXMgbmV4dCwgYWxsIGJ1dCAyIGJ5dGVzIHRvIGZpbGwgdXAgc2VjdG9yICovCisJLyogQm9vdCBzaWduIGNvbWVzIGxhc3QsIDIgYnl0ZXMgKi8KK30gdm9sdW1lX2luZm87CisKK3R5cGVkZWYgc3RydWN0IGRpcl9lbnRyeSB7CisJY2hhcgluYW1lWzhdLGV4dFszXTsJLyogTmFtZSBhbmQgZXh0ZW5zaW9uICovCisJX191OAlhdHRyOwkJLyogQXR0cmlidXRlIGJpdHMgKi8KKwlfX3U4CWxjYXNlOwkJLyogQ2FzZSBmb3IgYmFzZSBhbmQgZXh0ZW5zaW9uICovCisJX191OAljdGltZV9tczsJLyogQ3JlYXRpb24gdGltZSwgbWlsbGlzZWNvbmRzICovCisJX191MTYJY3RpbWU7CQkvKiBDcmVhdGlvbiB0aW1lICovCisJX191MTYJY2RhdGU7CQkvKiBDcmVhdGlvbiBkYXRlICovCisJX191MTYJYWRhdGU7CQkvKiBMYXN0IGFjY2VzcyBkYXRlICovCisJX191MTYJc3RhcnRoaTsJLyogSGlnaCAxNiBiaXRzIG9mIGNsdXN0ZXIgaW4gRkFUMzIgKi8KKwlfX3UxNgl0aW1lLGRhdGUsc3RhcnQ7LyogVGltZSwgZGF0ZSBhbmQgZmlyc3QgY2x1c3RlciAqLworCV9fdTMyCXNpemU7CQkvKiBGaWxlIHNpemUgaW4gYnl0ZXMgKi8KK30gZGlyX2VudHJ5OworCit0eXBlZGVmIHN0cnVjdCBkaXJfc2xvdCB7CisJX191OCAgICBpZDsJCS8qIFNlcXVlbmNlIG51bWJlciBmb3Igc2xvdCAqLworCV9fdTggICAgbmFtZTBfNFsxMF07CS8qIEZpcnN0IDUgY2hhcmFjdGVycyBpbiBuYW1lICovCisJX191OCAgICBhdHRyOwkJLyogQXR0cmlidXRlIGJ5dGUgKi8KKwlfX3U4ICAgIHJlc2VydmVkOwkvKiBVbnVzZWQgKi8KKwlfX3U4ICAgIGFsaWFzX2NoZWNrc3VtOy8qIENoZWNrc3VtIGZvciA4LjMgYWxpYXMgKi8KKwlfX3U4ICAgIG5hbWU1XzEwWzEyXTsJLyogNiBtb3JlIGNoYXJhY3RlcnMgaW4gbmFtZSAqLworCV9fdTE2ICAgc3RhcnQ7CQkvKiBVbnVzZWQgKi8KKwlfX3U4ICAgIG5hbWUxMV8xMls0XTsJLyogTGFzdCAyIGNoYXJhY3RlcnMgaW4gbmFtZSAqLworfSBkaXJfc2xvdDsKKworLyogUHJpdmF0ZSBmaWxlc3lzdGVtIHBhcmFtZXRlcnMgKi8KK3R5cGVkZWYgc3RydWN0IHsKKwlpbnQJZmF0c2l6ZTsJLyogU2l6ZSBvZiBGQVQgaW4gYml0cyAqLworCV9fdTE2CWZhdGxlbmd0aDsJLyogTGVuZ3RoIG9mIEZBVCBpbiBzZWN0b3JzICovCisJX191MTYJZmF0X3NlY3Q7CS8qIFN0YXJ0aW5nIHNlY3RvciBvZiB0aGUgRkFUICovCisJX191MTYJcm9vdGRpcl9zZWN0OwkvKiBTdGFydCBzZWN0b3Igb2Ygcm9vdCBkaXJlY3RvcnkgKi8KKwlfX3UxNgljbHVzdF9zaXplOwkvKiBTaXplIG9mIGNsdXN0ZXJzIGluIHNlY3RvcnMgKi8KKwlzaG9ydAlkYXRhX2JlZ2luOwkvKiBUaGUgc2VjdG9yIG9mIHRoZSBmaXJzdCBjbHVzdGVyLCBjYW4gYmUgbmVnYXRpdmUgKi8KKwlfX3UzMglmYXRidWZbRkFUQlVGU0laRV07IC8qIEN1cnJlbnQgRkFUIGJ1ZmZlciAqLworCWludAlmYXRidWZudW07CS8qIFVzZWQgYnkgZ2V0X2ZhdGVudCwgaW5pdCB0byAtMSAqLworfSBmc2RhdGE7CisKK3R5cGVkZWYgaW50CShmaWxlX2RldGVjdGZzX2Z1bmMpKHZvaWQpOwordHlwZWRlZiBpbnQJKGZpbGVfbHNfZnVuYykoY29uc3QgY2hhciAqZGlyKTsKK3R5cGVkZWYgbG9uZwkoZmlsZV9yZWFkX2Z1bmMpKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCB2b2lkICpidWZmZXIsCisJCQkJIHVuc2lnbmVkIGxvbmcgbWF4c2l6ZSk7CisKK3N0cnVjdCBmaWxlc3lzdGVtIHsKKwlmaWxlX2RldGVjdGZzX2Z1bmMgKmRldGVjdDsKKwlmaWxlX2xzX2Z1bmMJICAgKmxzOworCWZpbGVfcmVhZF9mdW5jCSAgICpyZWFkOworCWNvbnN0IGNoYXIJICAgIG5hbWVbMTJdOworfTsKKworLyogRkFUIHRhYmxlcyAqLworZmlsZV9kZXRlY3Rmc19mdW5jCWZpbGVfZmF0X2RldGVjdGZzOworZmlsZV9sc19mdW5jCQlmaWxlX2ZhdF9sczsKK2ZpbGVfcmVhZF9mdW5jCQlmaWxlX2ZhdF9yZWFkOworCisvKiBDdXJyZW50bHkgdGhpcyBkb2Vzbid0IGNoZWNrIGlmIHRoZSBkaXIgZXhpc3RzIG9yIGlzIHZhbGlkLi4uICovCitpbnQgZmlsZV9jZChjb25zdCBjaGFyICpwYXRoKTsKK2ludCBmaWxlX2ZhdF9kZXRlY3Rmcyh2b2lkKTsKK2ludCBmaWxlX2ZhdF9scyhjb25zdCBjaGFyICpkaXIpOworbG9uZyBmaWxlX2ZhdF9yZWFkKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCB2b2lkICpidWZmZXIsIHVuc2lnbmVkIGxvbmcgbWF4c2l6ZSk7Citjb25zdCBjaGFyICpmaWxlX2dldGZzbmFtZShpbnQgaWR4KTsKK2ludCBmYXRfcmVnaXN0ZXJfZGV2aWNlKGJsb2NrX2Rldl9kZXNjX3QgKmRldl9kZXNjLCBpbnQgcGFydF9ubyk7CisKKyNlbmRpZiAvKiBfRkFUX0hfICovCmRpZmYgLS1naXQgYS9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvaTJjLmggYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvaTJjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdlNTVjOAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9pMmMuaApAQCAtMCwwICsxLDg1IEBACisvKgorICogKEMpIENvcHlyaWdodCAyMDAxCisgKiBHZXJhbGQgVmFuIEJhcmVuLCBDdXN0b20gSURFQVMsIHZhbmJhcmVuQGNpZGVhcy5jb20uCisgKgorICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyAqIHByb2plY3QuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKgorICogVGhlIG9yaWdpbmFsIEkyQyBpbnRlcmZhY2Ugd2FzCisgKiAgIChDKSAyMDAwIGJ5IFBhb2xvIFNjYWZmYXJkaSAoYXJzZW5pb0B0aW4uaXQpCisgKiAgIEFJUlZFTlQgU0FNIHMucC5hIC0gUklNSU5JKElUQUxZKQorICogYnV0IGhhcyBiZWVuIGNoYW5nZWQgc3Vic3RhbnRpYWxseS4KKyAqLworCisjaWZuZGVmIF9JMkNfSF8KKyNkZWZpbmUgX0kyQ19IXworCisvKgorICogV0FSTklORyBXQVJOSU5HIFdBUk5JTkcgV0FSTklORyBXQVJOSU5HIFdBUk5JTkcgV0FSTklORyBXQVJOSU5HCisgKgorICogVGhlIGltcGxlbWVudGF0aW9uIE1VU1QgTk9UIHVzZSBzdGF0aWMgb3IgZ2xvYmFsIHZhcmlhYmxlcyBpZiB0aGUKKyAqIEkyQyByb3V0aW5lcyBhcmUgdXNlZCB0byByZWFkIFNEUkFNIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24KKyAqIGJlY2F1c2UgdGhpcyBpcyBkb25lIGJlZm9yZSB0aGUgbWVtb3JpZXMgYXJlIGluaXRpYWxpemVkLiBMaW1pdGVkCisgKiB1c2Ugb2Ygc3RhY2stYmFzZWQgdmFyaWFibGVzIGFyZSBPSyAodGhlIGluaXRpYWwgc3RhY2sgc2l6ZSBpcworICogbGltaXRlZCkuCisgKgorICogV0FSTklORyBXQVJOSU5HIFdBUk5JTkcgV0FSTklORyBXQVJOSU5HIFdBUk5JTkcgV0FSTklORyBXQVJOSU5HCisgKi8KKworLyoKKyAqIENvbmZpZ3VyYXRpb24gaXRlbXMuCisgKi8KKyNkZWZpbmUgSTJDX1JYVFhfTEVOCTEyOAkvKiBtYXhpbXVtIHR4L3J4IGJ1ZmZlciBsZW5ndGggKi8KKworLyoKKyAqIEluaXRpYWxpemF0aW9uLCBtdXN0IGJlIGNhbGxlZCBvbmNlIG9uIHN0YXJ0IHVwLCBtYXkgYmUgY2FsbGVkCisgKiByZXBlYXRlZGx5IHRvIGNoYW5nZSB0aGUgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3Nlcy4KKyAqLwordm9pZCBpMmNfaW5pdChpbnQgc3BlZWQsIGludCBzbGF2ZWFkZHIpOworI2lmZGVmIENGR19JMkNfSU5JVF9CT0FSRAordm9pZCBpMmNfaW5pdF9ib2FyZCh2b2lkKTsKKyNlbmRpZgorCisvKgorICogUHJvYmUgdGhlIGdpdmVuIEkyQyBjaGlwIGFkZHJlc3MuICBSZXR1cm5zIDAgaWYgYSBjaGlwIHJlc3BvbmRlZCwKKyAqIG5vdCAwIG9uIGZhaWx1cmUuCisgKi8KK2ludCBpMmNfcHJvYmUodWludDhfdCBjaGlwKTsKKworLyoKKyAqIFJlYWQvV3JpdGUgaW50ZXJmYWNlOgorICogICBjaGlwOiAgICBJMkMgY2hpcCBhZGRyZXNzLCByYW5nZSAwLi4xMjcKKyAqICAgYWRkcjogICAgTWVtb3J5IChyZWdpc3RlcikgYWRkcmVzcyB3aXRoaW4gdGhlIGNoaXAKKyAqICAgYWxlbjogICAgTnVtYmVyIG9mIGJ5dGVzIHRvIHVzZSBmb3IgYWRkciAodHlwaWNhbGx5IDEsIDIgZm9yIGxhcmdlcgorICogICAgICAgICAgICAgIG1lbW9yaWVzLCAwIGZvciByZWdpc3RlciB0eXBlIGRldmljZXMgd2l0aCBvbmx5IG9uZQorICogICAgICAgICAgICAgIHJlZ2lzdGVyKQorICogICBidWZmZXI6ICBXaGVyZSB0byByZWFkL3dyaXRlIHRoZSBkYXRhCisgKiAgIGxlbjogICAgIEhvdyBtYW55IGJ5dGVzIHRvIHJlYWQvd3JpdGUKKyAqCisgKiAgIFJldHVybnM6IDAgb24gc3VjY2Vzcywgbm90IDAgb24gZmFpbHVyZQorICovCitpbnQgaTJjX3JlYWQodWludDhfdCBjaGlwLCB1aW50IGFkZHIsIGludCBhbGVuLCB1Y2hhciAqYnVmZmVyLCBpbnQgbGVuKTsKK2ludCBpMmNfd3JpdGUodWludDhfdCBjaGlwLCB1aW50IGFkZHIsIGludCBhbGVuLCB1Y2hhciAqYnVmZmVyLCBpbnQgbGVuKTsKKworLyoKKyAqIFV0aWxpdHkgcm91dGluZXMgdG8gcmVhZC93cml0ZSByZWdpc3RlcnMuCisgKi8KK3VjaGFyIGkyY19yZWdfcmVhZCAodWludDhfdCBjaGlwLCB1aW50OF90IHJlZyk7Cit2b2lkICBpMmNfcmVnX3dyaXRlKHVpbnQ4X3QgY2hpcCwgdWludDhfdCByZWcsIHVpbnQ4X3QgdmFsKTsKKworI2VuZGlmCS8qIF9JMkNfSF8gKi8KZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9pZGUuaCBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9pZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMGRjY2JhCi0tLSAvZGV2L251bGwKKysrIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2lkZS5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IDIwMDAKKyAqIFdvbGZnYW5nIERlbmssIERFTlggU29mdHdhcmUgRW5naW5lZXJpbmcsIHdkQGRlbnguZGUuCisgKgorICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyAqIHByb2plY3QuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKi8KKworI2lmbmRlZglfSURFX0gKKyNkZWZpbmUgX0lERV9ICisKKyNkZWZpbmUJSURFX0JVUyhkZXYpCShkZXYgPj4gMSkKKworI2lmZGVmIENPTkZJR19JREVfTEVECisKKy8qCisgKiBMRUQgUG9ydAorICovCisjZGVmaW5lCUxFRF9QT1JUCSgodWludDhfdCAqKShQRVI4X0JBU0UgKyAweDMwMDApKQorI2RlZmluZSBMRURfSURFMQkweDAxCisjZGVmaW5lIExFRF9JREUyCTB4MDIKKyNkZWZpbmUJREVWSUNFX0xFRChkKQkoKGQgJiAyKSB8ICgoZCAmIDIpID09IDApKSAvKiBkZXBlbmRzIG9uIGJpdCBwb3NpdGlvbnMhICovCisKKyNlbmRpZiAvKiBDT05GSUdfSURFX0xFRCAqLworCisjaWZkZWYgQ0ZHXzY0QklUX0xCQQordHlwZWRlZiB1aW50NjRfdCBsYmFpbnRfdDsKKyNlbHNlCit0eXBlZGVmIHVsb25nIGxiYWludF90OworI2VuZGlmCisKKy8qCisgKiBGdW5jdGlvbiBQcm90b3R5cGVzCisgKi8KKwordm9pZCAgaWRlX2luaXQgICh2b2lkKTsKK3Vsb25nIGlkZV9yZWFkCShpbnQgZGV2aWNlLCBsYmFpbnRfdCBibGtuciwgdWxvbmcgYmxrY250LCB1bG9uZyAqYnVmZmVyKTsKK3Vsb25nIGlkZV93cml0ZSAoaW50IGRldmljZSwgbGJhaW50X3QgYmxrbnIsIHVsb25nIGJsa2NudCwgdWxvbmcgKmJ1ZmZlcik7CisKKyNlbmRpZiAvKiBfSURFX0ggKi8KZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9pbWFnZS5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2ltYWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjYyNDllOQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9pbWFnZS5oCkBAIC0wLDAgKzEsMTUxIEBACisvKgorICogKEMpIENvcHlyaWdodCAyMDE2IFpYSUMgSW5jLiAKKyAqCisgKi8KKworI2lmbmRlZiBfX0lNQUdFX0hfXworI2RlZmluZSBfX0lNQUdFX0hfXworCisjZGVmaW5lIElIX05NTEVOCQkzMgkgICAgLyogSW1hZ2UgTmFtZSBMZW5ndGgJCSovCisjZGVmaW5lIElIX01BR0lDCTB4MjcwNTE5NTYJLyogSW1hZ2UgTWFnaWMgTnVtYmVyCQkqLworCisKKyNkZWZpbmUgQ0ZHX1BBUlRJVElPTl9NQUdJQyAgICAgICAgICAgICAgICAgMHgzMTU5NDg3NiAgICAgIC8qIM2ssr0gVS1CT09UICovCisKKworCisvKgorICAgICstLS0tLS0tLS0tLS0tLSsKKyAgICB8ICAgICBtYWdpYyAgICB8ICAgICAgICB1aW50MzJfdAorICAgICstLS0tLS0tLS0tLS0tLSsKKyAgICB8ICAgIHZlcnNpb24gICB8ICAgICAgICB1aW50MzJfdCAgICAgICAgICAKKyAgICArLS0tLS0tLS0tLS0tLS0rCisgICAgfCAgZW50cnkgbnVtcyAgfCAgICAgICAgdWludDMyX3QKKyAgICArLS0tLS0tLS0tLS0tLS0rCisgICAgfCAgICAgY3JjICAgICAgfCAgICAgICAgdWludDMyX3QgICAgICAgICAgCisgICAgKz09PT09PT09PT09PT09KworICAgIHwgICAgbmFtZVsxXSAgIHwgICAgICAgICAgICAgICAgICAKKyAgICArLS0tLS0tLS0tLS0tLS0rCisgICAgfCAgICBvZmZzZXQgICAgfCAgICAgICAgICAgICAgICAgIAorICAgICstLS0tLS0tLS0tLS0tLSsKKyAgICB8ICAgICBzaXplICAgICB8ICAgICAgICAgICAgICAgICAgCisgICAgKz09PT09PT09PT09PT09KworICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAKKyAgICArPT09PT09PT09PT09PT0rCisgICAgfCAgICAgICAgICAgICAgfCAKKyAgICArPT09PT09PT09PT09PT0rCisgICAgCisqLworI2RlZmluZSBNQVhfRU5UUllTICAgICAgICAgICAgICAgICAgMzAgCisKK3R5cGVkZWYgc3RydWN0IHBhcnRpdGlvbl9lbnRyeSB7CisgICAgdW5zaWduZWQgY2hhcglwYXJ0X25hbWVbMTZdOyAKKyAgICB1bnNpZ25lZCBjaGFyICAgcGFydF90eXBlWzE2XTsKKyAgICB1bnNpZ25lZCBpbnQgICAgcGFydF9vZmZzZXQ7IAorICAgIHVuc2lnbmVkIGludCAgICBwYXJ0X3NpemU7ICAgICAgICAgICAgCit9cGFydGl0aW9uX2VudHJ5X3Q7CisKK3R5cGVkZWYgc3RydWN0IHBhcnRpdGlvbl90YWJsZSB7CisgICAgdW5zaWduZWQgaW50ICAgICAgIG1hZ2ljOworICAgIHVuc2lnbmVkIGNoYXIgICAgICBwbGF0Zm9ybV9uYW1lWzE2XTsKKyAgICB1bnNpZ25lZCBpbnQgICAgICAgdmVyc2lvbjsgICAgICAgICAgICAgLyogt9bH+LDmsb4gKi8KKyAgICB1bnNpZ25lZCBpbnQgICAgICAgZW50cnlzOyAgICAgICAgICAgICAgLyog19y1xLfWx/i49sr9ICovCisgICAgdW5zaWduZWQgaW50ICAgICAgIGNyYzsKKyAgICBwYXJ0aXRpb25fZW50cnlfdCAgdGFibGVbTUFYX0VOVFJZU107ICAgCit9cGFydGl0aW9uX3RhYmxlX3Q7CisKKy8vI2lmZGVmIENPTkZJR19aWDI5NzUyMFYzRV9NRExfQUIKKyNpZiBkZWZpbmVkKENPTkZJR19aWDI5NzUyMFYzRV9NRExfQUIpIHx8IGRlZmluZWQoQ09ORklHX1pYMjk3NTIwVjNFX1ZFSElDTEVfREMpCisvKgorZmxhZ3MgcGFydGl0aW9uCisKKyovCisvKsurz7XNs8Dg0M0qLworI2RlZmluZSBGTEFHU19CT09UX0ZPVEFfT0ZGU0VUICAgICAgKDBYMFVMKQorLy8jZGVmaW5lIEZMQUdTX0JPT1RfRk9UQV9TSVpFICAgICAgICAoMFg4MDAwMFVMKQorLy8jZGVmaW5lIEZMQUdTX0JPT1RfRU5WX09GRlNFVCAgICAgICAoRkxBR1NfQk9PVF9GT1RBX09GRlNFVCArIEZMQUdTX0JPT1RfRk9UQV9TSVpFKQorLy8jZGVmaW5lIEZMQUdTX0JPT1RfRU5WX1NJWkUgICAgICAgICAoMFg4MDAwMFVMKQorLy8jZGVmaW5lIEZMQUdTX0JBQ0tVUF9PRkZTRVQgICAgICAgICAoRkxBR1NfQk9PVF9FTlZfT0ZGU0VUICsgRkxBR1NfQk9PVF9FTlZfU0laRSkKKwkKKyNkZWZpbmUgRkxBR1NfTUFHSUMgICAgICAgICAgICAgICAgICAoMFg0NjRDNDE0N1VMKQorCQorI2RlZmluZSBEVUFMU1lTVEVNX1NUQVRVU19CT09UQUJMRSAgICAgKDBYQjBBQikgLyq/ycb0tq8qLworI2RlZmluZSBEVUFMU1lTVEVNX1NUQVRVU19TVUNDRVNTRlVMICAgKDBYNUNDRikgLyrE3LPJuabG9LavKi8KKyNkZWZpbmUgRFVBTFNZU1RFTV9TVEFUVVNfVU5CT09UQUJMRSAgICgwWEJBQkUpIC8qsru/ycb0tq8qLworCit0eXBlZGVmIHN0cnVjdAoreworICAgIGludCBzdGF0dXM7ICAgICAgICAgICAgICAgIC8qYm9vdGFibGUvc3VjY2Vzc2Z1bC91bmJvb3RhYmxlKi8KKwlpbnQgdHJ5X2NudDsKK31UX0R1YWxTeXN0ZW1fU3RhdHVzOworCit0eXBlZGVmIGVudW0KK3sKKyAgICBEVUFMX1NZU1RFTSAgPSAwWDg3NUEsICAvKrXa0ru49s+1zbMqLworCURVQUxfU1lTVEVNMiA9IDBYOTg2QiwgIC8qtdq2/rj2z7XNsyovCit9VF9CT09UX1RBUkdFVDsKKworLyrLq8+1zbPA4NDNKi8KK3R5cGVkZWYgZW51bQoreworICAgIERVQUxTWVNURU1fUkVDT1ZFUlkgPSAwWDc1NzUsICAgIC8qbm9ybWFsLXJlY292ZXJ5y6vPtc2zKi8KKwlEVUFMU1lTVEVNX0FBICAgICAgID0gMFhBQUFBLCAgICAvKkFBy6vPtc2zKi8KKwlEVUFMU1lTVEVNX0FCICAgICAgID0gMFhBQkFCICAgICAvKkFCy6vPtc2zKi8KK31UX0JPT1RfRFVBTFNZU1RFTV9UWVBFOworCit0eXBlZGVmIHN0cnVjdAoreworICAgIHVpbnQzMl90ICAgICAgICAgICAgIG1hZ2ljOyAgICAgICAvKsr9vt3T0NCn0NTEp8r119YqLworCVRfQk9PVF9UQVJHRVQgICAgICAgIGJvb3RfdG87ICAgICAvKrWxx7DG9Lavz7XNs7Hq1r4qLworCXVpbnQzMl90ICAgICAgICAgICAgIGZvdGFfc3RhdHVzOyAvKmZvdGHXtMysKi8KKwlUX0R1YWxTeXN0ZW1fU3RhdHVzICBzeXN0ZW07ICAgICAgLyq12tK7uPbPtc2z17TMrCovCisJVF9EdWFsU3lzdGVtX1N0YXR1cyAgc3lzdGVtMjsgICAgIC8qtdq2/rj2z7XNs9e0zKwqLworfVRfQk9PVF9GT1RBX0ZMQUc7CisKK3R5cGVkZWYgc3RydWN0Cit7CisgICAgdW5zaWduZWQgaW50ICAgICAgICAgICAgIG1hZ2ljOyAgICAgICAgLyrK/b7d09DQp9DUxKfK9dfWKi8KKwlUX0JPT1RfRFVBTFNZU1RFTV9UWVBFICAgZHVhbHN5c190eXBlOyAvKsurz7XNs8Dg0M0qLworCWNoYXIgc3lzdGVtX2Jvb3RfZW52WzEyOF07CisJY2hhciBzeXN0ZW0yX2Jvb3RfZW52WzEyOF07Cit9VF9CT09UX0VOVjsKKwordHlwZWRlZiBzdHJ1Y3QKK3sKKyAgICBUX0JPT1RfRk9UQV9GTEFHICAgICAgYm9vdF9mbGFnOworCVRfQk9PVF9FTlYgICAgICAgICAgICBib290X2VudjsKK31UX0ZPVEFfRkxBR19JTkZPOworI2VuZGlmCisKKy8qCisgKiBMZWdhY3kgZm9ybWF0IGltYWdlIGhlYWRlciwgIHNpemVvZihpbWFnZV9oZWFkZXJfdCkgPSA2NAorICogYWxsIGRhdGEgaW4gbmV0d29yayBieXRlIG9yZGVyIChha2EgbmF0dXJhbCBha2EgYmlnZW5kaWFuKS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgaW1hZ2VfaGVhZGVyIHsKKwl1aW50MzJfdCBpaF9tYWdpYzsJLyogSW1hZ2UgSGVhZGVyIE1hZ2ljIE51bWJlcgkqLworCXVpbnQzMl90IGloX2hjcmM7CS8qIEltYWdlIEhlYWRlciBDUkMgQ2hlY2tzdW0JKi8KKwl1aW50MzJfdCBpaF90aW1lOwkvKiBJbWFnZSBDcmVhdGlvbiBUaW1lc3RhbXAJKi8KKwl1aW50MzJfdCBpaF9zaXplOwkvKiBJbWFnZSBEYXRhIFNpemUJCSovCisJdWludDMyX3QgaWhfbG9hZDsJLyogRGF0YQkgTG9hZCAgQWRkcmVzcwkqLworCXVpbnQzMl90IGloX2VwOwkJLyogRW50cnkgUG9pbnQgQWRkcmVzcwl1c2VkICoqKioqKioqKioqKioJKi8KKwl1aW50MzJfdCBpaF9kY3JjOwkvKiBJbWFnZSBEYXRhIENSQyBDaGVja3N1bQkqLworCXVpbnQ4X3QJIGloX29zOwkJLyogT3BlcmF0aW5nIFN5c3RlbQkJKi8KKwl1aW50OF90CSBpaF9hcmNoOwkvKiBDUFUgYXJjaGl0ZWN0dXJlCQkqLworCXVpbnQ4X3QJIGloX3R5cGU7CS8qIEltYWdlIFR5cGUJCQkqLworCXVpbnQ4X3QJIGloX2NvbXA7CS8qIENvbXByZXNzaW9uIFR5cGUJCSovCisJdWludDhfdAkgaWhfbmFtZVtJSF9OTUxFTl07CS8qIEltYWdlIE5hbWUJCSovCit9IGltYWdlX2hlYWRlcl90OworCit0eXBlZGVmIHN0cnVjdAoreworCXUzMiB1aVB1YktleVJzYUVbMzJdOworCXUzMiB1aVB1YktleVJzYU5bMzJdOworCXUzMiB1aUhhc2hZWzMyXTsKK30gc0ltYWdlSGVhZGVyOworCisKK2V4dGVybiBpbnQgcmVhZF91Ym9vdF9pbWFnZSh1aW50OF90ICpuYW1lLCB1aW50MzJfdCAqdWJvb3RfZW50cnlfcG9pbnQpOworZXh0ZXJuICBpbnQgbmFuZF9yZWFkX20wKHVpbnQzMl90ICptMF9lbnRyeV9wb2ludCk7CisKKworI2VuZGlmCS8qIF9fSU1BR0VfSF9fICovCmRpZmYgLS1naXQgYS9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvanRhZy5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2p0YWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTBmNmMzCi0tLSAvZGV2L251bGwKKysrIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2p0YWcuaApAQCAtMCwwICsxIEBACisjZGVmaW5lIENPTkZJR19CT0FSRF83NTEwX0pUQUcwX00wCQkxCmRpZmYgLS1naXQgYS9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUva2V5LmggYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUva2V5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY3Yzk5MQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9rZXkuaApAQCAtMCwwICsxLDUgQEAKKyNkZWZpbmUgU0VDVVJFX0VOICAgICAgICAweGZmDQorI2RlZmluZSBTRUNVUkVfUFVLX0hBU0gwIDB4NDRmNTNmYTMNCisjZGVmaW5lIFNFQ1VSRV9QVUtfSEFTSDEgMHg1Nzc5NTg4OQ0KKyNkZWZpbmUgU0VDVVJFX1BVS19IQVNIMiAweDZiZDI1YWI0DQorI2RlZmluZSBTRUNVUkVfUFVLX0hBU0gzIDB4OWJhODY5NTENCmRpZmYgLS1naXQgYS9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvbGludXgvYnl0ZW9yZGVyL2JpZ19lbmRpYW4uaCBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9saW51eC9ieXRlb3JkZXIvYmlnX2VuZGlhbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5YjBjODYKLS0tIC9kZXYvbnVsbAorKysgYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvbGludXgvYnl0ZW9yZGVyL2JpZ19lbmRpYW4uaApAQCAtMCwwICsxLDY5IEBACisjaWZuZGVmIF9MSU5VWF9CWVRFT1JERVJfQklHX0VORElBTl9ICisjZGVmaW5lIF9MSU5VWF9CWVRFT1JERVJfQklHX0VORElBTl9ICisKKyNpZm5kZWYgX19CSUdfRU5ESUFOCisjZGVmaW5lIF9fQklHX0VORElBTiA0MzIxCisjZW5kaWYKKyNpZm5kZWYgX19CSUdfRU5ESUFOX0JJVEZJRUxECisjZGVmaW5lIF9fQklHX0VORElBTl9CSVRGSUVMRAorI2VuZGlmCisjZGVmaW5lCV9fQllURV9PUkRFUglfX0JJR19FTkRJQU4KKworI2luY2x1ZGUgPGxpbnV4L2J5dGVvcmRlci9zd2FiLmg+CisKKyNkZWZpbmUgX19jb25zdGFudF9odG9ubCh4KSAoKF9fdTMyKSh4KSkKKyNkZWZpbmUgX19jb25zdGFudF9udG9obCh4KSAoKF9fdTMyKSh4KSkKKyNkZWZpbmUgX19jb25zdGFudF9odG9ucyh4KSAoKF9fdTE2KSh4KSkKKyNkZWZpbmUgX19jb25zdGFudF9udG9ocyh4KSAoKF9fdTE2KSh4KSkKKyNkZWZpbmUgX19jb25zdGFudF9jcHVfdG9fbGU2NCh4KSBfX19zd2FiNjQoKHgpKQorI2RlZmluZSBfX2NvbnN0YW50X2xlNjRfdG9fY3B1KHgpIF9fX3N3YWI2NCgoeCkpCisjZGVmaW5lIF9fY29uc3RhbnRfY3B1X3RvX2xlMzIoeCkgX19fc3dhYjMyKCh4KSkKKyNkZWZpbmUgX19jb25zdGFudF9sZTMyX3RvX2NwdSh4KSBfX19zd2FiMzIoKHgpKQorI2RlZmluZSBfX2NvbnN0YW50X2NwdV90b19sZTE2KHgpIF9fX3N3YWIxNigoeCkpCisjZGVmaW5lIF9fY29uc3RhbnRfbGUxNl90b19jcHUoeCkgX19fc3dhYjE2KCh4KSkKKyNkZWZpbmUgX19jb25zdGFudF9jcHVfdG9fYmU2NCh4KSAoKF9fdTY0KSh4KSkKKyNkZWZpbmUgX19jb25zdGFudF9iZTY0X3RvX2NwdSh4KSAoKF9fdTY0KSh4KSkKKyNkZWZpbmUgX19jb25zdGFudF9jcHVfdG9fYmUzMih4KSAoKF9fdTMyKSh4KSkKKyNkZWZpbmUgX19jb25zdGFudF9iZTMyX3RvX2NwdSh4KSAoKF9fdTMyKSh4KSkKKyNkZWZpbmUgX19jb25zdGFudF9jcHVfdG9fYmUxNih4KSAoKF9fdTE2KSh4KSkKKyNkZWZpbmUgX19jb25zdGFudF9iZTE2X3RvX2NwdSh4KSAoKF9fdTE2KSh4KSkKKyNkZWZpbmUgX19jcHVfdG9fbGU2NCh4KSBfX3N3YWI2NCgoeCkpCisjZGVmaW5lIF9fbGU2NF90b19jcHUoeCkgX19zd2FiNjQoKHgpKQorI2RlZmluZSBfX2NwdV90b19sZTMyKHgpIF9fc3dhYjMyKCh4KSkKKyNkZWZpbmUgX19sZTMyX3RvX2NwdSh4KSBfX3N3YWIzMigoeCkpCisjZGVmaW5lIF9fY3B1X3RvX2xlMTYoeCkgX19zd2FiMTYoKHgpKQorI2RlZmluZSBfX2xlMTZfdG9fY3B1KHgpIF9fc3dhYjE2KCh4KSkKKyNkZWZpbmUgX19jcHVfdG9fYmU2NCh4KSAoKF9fdTY0KSh4KSkKKyNkZWZpbmUgX19iZTY0X3RvX2NwdSh4KSAoKF9fdTY0KSh4KSkKKyNkZWZpbmUgX19jcHVfdG9fYmUzMih4KSAoKF9fdTMyKSh4KSkKKyNkZWZpbmUgX19iZTMyX3RvX2NwdSh4KSAoKF9fdTMyKSh4KSkKKyNkZWZpbmUgX19jcHVfdG9fYmUxNih4KSAoKF9fdTE2KSh4KSkKKyNkZWZpbmUgX19iZTE2X3RvX2NwdSh4KSAoKF9fdTE2KSh4KSkKKyNkZWZpbmUgX19jcHVfdG9fbGU2NHAoeCkgX19zd2FiNjRwKCh4KSkKKyNkZWZpbmUgX19sZTY0X3RvX2NwdXAoeCkgX19zd2FiNjRwKCh4KSkKKyNkZWZpbmUgX19jcHVfdG9fbGUzMnAoeCkgX19zd2FiMzJwKCh4KSkKKyNkZWZpbmUgX19sZTMyX3RvX2NwdXAoeCkgX19zd2FiMzJwKCh4KSkKKyNkZWZpbmUgX19jcHVfdG9fbGUxNnAoeCkgX19zd2FiMTZwKCh4KSkKKyNkZWZpbmUgX19sZTE2X3RvX2NwdXAoeCkgX19zd2FiMTZwKCh4KSkKKyNkZWZpbmUgX19jcHVfdG9fYmU2NHAoeCkgKCooX191NjQqKSh4KSkKKyNkZWZpbmUgX19iZTY0X3RvX2NwdXAoeCkgKCooX191NjQqKSh4KSkKKyNkZWZpbmUgX19jcHVfdG9fYmUzMnAoeCkgKCooX191MzIqKSh4KSkKKyNkZWZpbmUgX19iZTMyX3RvX2NwdXAoeCkgKCooX191MzIqKSh4KSkKKyNkZWZpbmUgX19jcHVfdG9fYmUxNnAoeCkgKCooX191MTYqKSh4KSkKKyNkZWZpbmUgX19iZTE2X3RvX2NwdXAoeCkgKCooX191MTYqKSh4KSkKKyNkZWZpbmUgX19jcHVfdG9fbGU2NHMoeCkgX19zd2FiNjRzKCh4KSkKKyNkZWZpbmUgX19sZTY0X3RvX2NwdXMoeCkgX19zd2FiNjRzKCh4KSkKKyNkZWZpbmUgX19jcHVfdG9fbGUzMnMoeCkgX19zd2FiMzJzKCh4KSkKKyNkZWZpbmUgX19sZTMyX3RvX2NwdXMoeCkgX19zd2FiMzJzKCh4KSkKKyNkZWZpbmUgX19jcHVfdG9fbGUxNnMoeCkgX19zd2FiMTZzKCh4KSkKKyNkZWZpbmUgX19sZTE2X3RvX2NwdXMoeCkgX19zd2FiMTZzKCh4KSkKKyNkZWZpbmUgX19jcHVfdG9fYmU2NHMoeCkgZG8ge30gd2hpbGUgKDApCisjZGVmaW5lIF9fYmU2NF90b19jcHVzKHgpIGRvIHt9IHdoaWxlICgwKQorI2RlZmluZSBfX2NwdV90b19iZTMycyh4KSBkbyB7fSB3aGlsZSAoMCkKKyNkZWZpbmUgX19iZTMyX3RvX2NwdXMoeCkgZG8ge30gd2hpbGUgKDApCisjZGVmaW5lIF9fY3B1X3RvX2JlMTZzKHgpIGRvIHt9IHdoaWxlICgwKQorI2RlZmluZSBfX2JlMTZfdG9fY3B1cyh4KSBkbyB7fSB3aGlsZSAoMCkKKworI2luY2x1ZGUgPGxpbnV4L2J5dGVvcmRlci9nZW5lcmljLmg+CisKKyNlbmRpZiAvKiBfTElOVVhfQllURU9SREVSX0JJR19FTkRJQU5fSCAqLwpkaWZmIC0tZ2l0IGEvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2xpbnV4L2J5dGVvcmRlci9nZW5lcmljLmggYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvbGludXgvYnl0ZW9yZGVyL2dlbmVyaWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmY4NTBmCi0tLSAvZGV2L251bGwKKysrIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2xpbnV4L2J5dGVvcmRlci9nZW5lcmljLmgKQEAgLTAsMCArMSwxODAgQEAKKyNpZm5kZWYgX0xJTlVYX0JZVEVPUkRFUl9HRU5FUklDX0gKKyNkZWZpbmUgX0xJTlVYX0JZVEVPUkRFUl9HRU5FUklDX0gKKworLyoKKyAqIGxpbnV4L2J5dGVvcmRlcl9nZW5lcmljLmgKKyAqIEdlbmVyaWMgQnl0ZS1yZW9yZGVyaW5nIHN1cHBvcnQKKyAqCisgKiBGcmFuY29pcy1SZW5lIFJpZGVhdSA8ZmFyZUB0dW5lcy5vcmc+IDE5OTcwNzA3CisgKiAgICBnYXRoZXJlZCBhbGwgdGhlIGdvb2QgaWRlYXMgZnJvbSBhbGwgYXNtLWZvby9ieXRlb3JkZXIuaCBpbnRvIG9uZSBmaWxlLAorICogICAgY2xlYW5lZCB0aGVtIHVwLgorICogICAgSSBob3BlIGl0IGlzIGNvbXBsaWFudCB3aXRoIG5vbi1HQ0MgY29tcGlsZXJzLgorICogICAgSSBkZWNpZGVkIHRvIHB1dCBfX0JZVEVPUkRFUl9IQVNfVTY0X18gaW4gYnl0ZW9yZGVyLmgsCisgKiAgICBiZWNhdXNlIEkgd2Fzbid0IHN1cmUgaXQgd291bGQgYmUgb2sgdG8gcHV0IGl0IGluIHR5cGVzLmgKKyAqICAgIFVwZ3JhZGVkIGl0IHRvIDIuMS40MworICogRnJhbmNvaXMtUmVuZSBSaWRlYXUgPGZhcmVAdHVuZXMub3JnPiAxOTk3MTAxMgorICogICAgVXBncmFkZWQgaXQgdG8gMi4xLjU3CisgKiAgICB0byBwbGVhc2UgTGludXMgVC4sIHJlcGxhY2VkIGh1Z2UgI2lmZGVmJ3MgYmV0d2VlbiBsaXR0bGUvYmlnIGVuZGlhbgorICogICAgYnkgbmVzdGVkbHkgI2luY2x1ZGUnZCBmaWxlcy4KKyAqIEZyYW5jb2lzLVJlbmUgUmlkZWF1IDxmYXJlQHR1bmVzLm9yZz4gMTk5NzEyMDUKKyAqICAgIE1hZGUgaXQgdG8gMi4xLjcxOyBub3cgYSBmYWNlbGlmdDoKKyAqICAgIFB1dCBmaWxlcyB1bmRlciBpbmNsdWRlL2xpbnV4L2J5dGVvcmRlci8KKyAqICAgIFNwbGl0IHN3YWIgZnJvbSBnZW5lcmljIHN1cHBvcnQuCisgKgorICogVE9ETzoKKyAqICAgPSBSZWd1bGFyIGtlcm5lbCBtYWludGFpbmVycyBjb3VsZCBhbHNvIHJlcGxhY2UgYWxsIHRoZXNlIG1hbnVhbAorICogICAgYnl0ZXN3YXAgbWFjcm9zIHRoYXQgcmVtYWluLCBkaXNzZW1pbmF0ZWQgYW1vbmcgZHJpdmVycywKKyAqICAgIGFmdGVyIHNvbWUgZ3JlcCBvciB0aGUgc291cmNlcy4uLgorICogICA9IExpbnVzIG1pZ2h0IHdhbnQgdG8gcmVuYW1lIGFsbCB0aGVzZSBtYWNyb3MgYW5kIGZpbGVzIHRvIGZpdCBoaXMgdGFzdGUsCisgKiAgICB0byBmaXQgaGlzIHBlcnNvbmFsIG5hbWluZyBzY2hlbWUuCisgKiAgID0gaXQgc2VlbXMgdGhhdCBhIGZldyBkcml2ZXJzIHdvdWxkIGFsc28gYXBwcmVjaWF0ZQorICogICAgbnliYmxlIHN3YXBwaW5nIHN1cHBvcnQuLi4KKyAqICAgPSBldmVyeSBhcmNoaXRlY3R1cmUgY291bGQgYWRkIHRoZWlyIGJ5dGVzd2FwIG1hY3JvIGluIGFzbS9ieXRlb3JkZXIuaAorICogICAgc2VlIGhvdyBzb21lIGFyY2hpdGVjdHVyZXMgYWxyZWFkeSBkbyAoaTM4NiwgYWxwaGEsIHBwYywgZXRjKQorICogICA9IGNwdV90b19iZVhYIGFuZCBiZVhYX3RvX2NwdSBtaWdodCBzb21lIGRheSBuZWVkIHRvIGJlIHdlbGwKKyAqICAgIGRpc3Rpbmd1aXNoZWQgdGhyb3VnaG91dCB0aGUga2VybmVsLiBUaGlzIGlzIG5vdCB0aGUgY2FzZSBjdXJyZW50bHksCisgKiAgICBzaW5jZSBsaXR0bGUgZW5kaWFuLCBiaWcgZW5kaWFuLCBhbmQgcGRwIGVuZGlhbiBtYWNoaW5lcyBuZWVkbid0IGl0LgorICogICAgQnV0IHRoaXMgbWlnaHQgYmUgdGhlIGNhc2UgZm9yLCBzYXksIGEgcG9ydCBvZiBMaW51eCB0byAyMC8yMSBiaXQKKyAqICAgIGFyY2hpdGVjdHVyZXMgKGFuZCBGMjEgTGludXggYWRkaWN0IGFyb3VuZD8pLgorICovCisKKy8qCisgKiBUaGUgZm9sbG93aW5nIG1hY3JvcyBhcmUgdG8gYmUgZGVmaW5lZCBieSA8YXNtL2J5dGVvcmRlci5oPjoKKyAqCisgKiBDb252ZXJzaW9uIG9mIGxvbmcgYW5kIHNob3J0IGludCBiZXR3ZWVuIG5ldHdvcmsgYW5kIGhvc3QgZm9ybWF0CisgKgludG9obChfX3UzMiB4KQorICoJbnRvaHMoX191MTYgeCkKKyAqCWh0b25sKF9fdTMyIHgpCisgKglodG9ucyhfX3UxNiB4KQorICogSXQgc2VlbXMgdGhhdCBzb21lIHByb2dyYW1zICh3aGljaD8gd2hlcmU/IG9yIHBlcmhhcHMgYSBzdGFuZGFyZD8gUE9TSVg/KQorICogbWlnaHQgbGlrZSB0aGUgYWJvdmUgdG8gYmUgZnVuY3Rpb25zLCBub3QgbWFjcm9zICh3aHk/KS4KKyAqIGlmIHRoYXQncyB0cnVlLCB0aGVuIGRldGVjdCB0aGVtLCBhbmQgdGFrZSBtZWFzdXJlcy4KKyAqIEFueXdheSwgdGhlIG1lYXN1cmUgaXM6IGRlZmluZSBvbmx5IF9fX250b2hsIGFzIGEgbWFjcm8gaW5zdGVhZCwKKyAqIGFuZCBpbiBhIHNlcGFyYXRlIGZpbGUsIGhhdmUKKyAqIHVuc2lnbmVkIGxvbmcgaW5saW5lIG50b2hsKHgpe3JldHVybiBfX19udG9obCh4KTt9CisgKgorICogVGhlIHNhbWUgZm9yIGNvbnN0YW50IGFyZ3VtZW50cworICoJX19jb25zdGFudF9udG9obChfX3UzMiB4KQorICoJX19jb25zdGFudF9udG9ocyhfX3UxNiB4KQorICoJX19jb25zdGFudF9odG9ubChfX3UzMiB4KQorICoJX19jb25zdGFudF9odG9ucyhfX3UxNiB4KQorICoKKyAqIENvbnZlcnNpb24gb2YgWFgtYml0IGludGVnZXJzICgxNi0gMzItIG9yIDY0LSkKKyAqIGJldHdlZW4gbmF0aXZlIENQVSBmb3JtYXQgYW5kIGxpdHRsZS9iaWcgZW5kaWFuIGZvcm1hdAorICogNjQtYml0IHN0dWZmIG9ubHkgZGVmaW5lZCBmb3IgcHJvcGVyIGFyY2hpdGVjdHVyZXMKKyAqCWNwdV90b19bYmxdZVhYKF9fdVhYIHgpCisgKglbYmxdZVhYX3RvX2NwdShfX3VYWCB4KQorICoKKyAqIFRoZSBzYW1lLCBidXQgdGFrZXMgYSBwb2ludGVyIHRvIHRoZSB2YWx1ZSB0byBjb252ZXJ0CisgKgljcHVfdG9fW2JsXWVYWHAoX191WFggeCkKKyAqCVtibF1lWFhfdG9fY3B1cChfX3VYWCB4KQorICoKKyAqIFRoZSBzYW1lLCBidXQgY2hhbmdlIGluIHNpdHUKKyAqCWNwdV90b19bYmxdZVhYcyhfX3VYWCB4KQorICoJW2JsXWVYWF90b19jcHVzKF9fdVhYIHgpCisgKgorICogU2VlIGFzbS1mb28vYnl0ZW9yZGVyLmggZm9yIGV4YW1wbGVzIG9mIGhvdyB0byBwcm92aWRlCisgKiBhcmNoaXRlY3R1cmUtb3B0aW1pemVkIHZlcnNpb25zCisgKgorICovCisKKworI2lmIGRlZmluZWQoX19LRVJORUxfXykKKy8qCisgKiBpbnNpZGUgdGhlIGtlcm5lbCwgd2UgY2FuIHVzZSBuaWNrbmFtZXM7CisgKiBvdXRzaWRlIG9mIGl0LCB3ZSBtdXN0IGF2b2lkIFBPU0lYIG5hbWVzcGFjZSBwb2xsdXRpb24uLi4KKyAqLworI2RlZmluZSBjcHVfdG9fbGU2NCBfX2NwdV90b19sZTY0CisjZGVmaW5lIGxlNjRfdG9fY3B1IF9fbGU2NF90b19jcHUKKyNkZWZpbmUgY3B1X3RvX2xlMzIgX19jcHVfdG9fbGUzMgorI2RlZmluZSBsZTMyX3RvX2NwdSBfX2xlMzJfdG9fY3B1CisjZGVmaW5lIGNwdV90b19sZTE2IF9fY3B1X3RvX2xlMTYKKyNkZWZpbmUgbGUxNl90b19jcHUgX19sZTE2X3RvX2NwdQorI2RlZmluZSBjcHVfdG9fYmU2NCBfX2NwdV90b19iZTY0CisjZGVmaW5lIGJlNjRfdG9fY3B1IF9fYmU2NF90b19jcHUKKyNkZWZpbmUgY3B1X3RvX2JlMzIgX19jcHVfdG9fYmUzMgorI2RlZmluZSBiZTMyX3RvX2NwdSBfX2JlMzJfdG9fY3B1CisjZGVmaW5lIGNwdV90b19iZTE2IF9fY3B1X3RvX2JlMTYKKyNkZWZpbmUgYmUxNl90b19jcHUgX19iZTE2X3RvX2NwdQorI2RlZmluZSBjcHVfdG9fbGU2NHAgX19jcHVfdG9fbGU2NHAKKyNkZWZpbmUgbGU2NF90b19jcHVwIF9fbGU2NF90b19jcHVwCisjZGVmaW5lIGNwdV90b19sZTMycCBfX2NwdV90b19sZTMycAorI2RlZmluZSBsZTMyX3RvX2NwdXAgX19sZTMyX3RvX2NwdXAKKyNkZWZpbmUgY3B1X3RvX2xlMTZwIF9fY3B1X3RvX2xlMTZwCisjZGVmaW5lIGxlMTZfdG9fY3B1cCBfX2xlMTZfdG9fY3B1cAorI2RlZmluZSBjcHVfdG9fYmU2NHAgX19jcHVfdG9fYmU2NHAKKyNkZWZpbmUgYmU2NF90b19jcHVwIF9fYmU2NF90b19jcHVwCisjZGVmaW5lIGNwdV90b19iZTMycCBfX2NwdV90b19iZTMycAorI2RlZmluZSBiZTMyX3RvX2NwdXAgX19iZTMyX3RvX2NwdXAKKyNkZWZpbmUgY3B1X3RvX2JlMTZwIF9fY3B1X3RvX2JlMTZwCisjZGVmaW5lIGJlMTZfdG9fY3B1cCBfX2JlMTZfdG9fY3B1cAorI2RlZmluZSBjcHVfdG9fbGU2NHMgX19jcHVfdG9fbGU2NHMKKyNkZWZpbmUgbGU2NF90b19jcHVzIF9fbGU2NF90b19jcHVzCisjZGVmaW5lIGNwdV90b19sZTMycyBfX2NwdV90b19sZTMycworI2RlZmluZSBsZTMyX3RvX2NwdXMgX19sZTMyX3RvX2NwdXMKKyNkZWZpbmUgY3B1X3RvX2xlMTZzIF9fY3B1X3RvX2xlMTZzCisjZGVmaW5lIGxlMTZfdG9fY3B1cyBfX2xlMTZfdG9fY3B1cworI2RlZmluZSBjcHVfdG9fYmU2NHMgX19jcHVfdG9fYmU2NHMKKyNkZWZpbmUgYmU2NF90b19jcHVzIF9fYmU2NF90b19jcHVzCisjZGVmaW5lIGNwdV90b19iZTMycyBfX2NwdV90b19iZTMycworI2RlZmluZSBiZTMyX3RvX2NwdXMgX19iZTMyX3RvX2NwdXMKKyNkZWZpbmUgY3B1X3RvX2JlMTZzIF9fY3B1X3RvX2JlMTZzCisjZGVmaW5lIGJlMTZfdG9fY3B1cyBfX2JlMTZfdG9fY3B1cworI2VuZGlmCisKKworLyoKKyAqIEhhbmRsZSBudG9obCBhbmQgc3VjaGVzLiBUaGVzZSBoYXZlIHZhcmlvdXMgY29tcGF0aWJpbGl0eQorICogaXNzdWVzIC0gbGlrZSB3ZSB3YW50IHRvIGdpdmUgdGhlIHByb3RvdHlwZSBldmVuIHRob3VnaCB3ZQorICogYWxzbyBoYXZlIGEgbWFjcm8gZm9yIHRoZW0gaW4gY2FzZSBzb21lIHN0cmFuZ2UgcHJvZ3JhbQorICogd2FudHMgdG8gdGFrZSB0aGUgYWRkcmVzcyBvZiB0aGUgdGhpbmcgb3Igc29tZXRoaW5nLi4KKyAqCisgKiBOb3RlIHRoYXQgdGhlc2UgdXNlZCB0byByZXR1cm4gYSAibG9uZyIgaW4gbGliYzUsIGV2ZW4gdGhvdWdoCisgKiBsb25nIGlzIG9mdGVuIDY0LWJpdCB0aGVzZSBkYXlzLi4gVGh1cyB0aGUgY2FzdHMuCisgKgorICogVGhleSBoYXZlIHRvIGJlIG1hY3JvcyBpbiBvcmRlciB0byBkbyB0aGUgY29uc3RhbnQgZm9sZGluZworICogY29ycmVjdGx5IC0gaWYgdGhlIGFyZ3VtZW50IHBhc3NlZCBpbnRvIGEgaW5saW5lIGZ1bmN0aW9uCisgKiBpdCBpcyBubyBsb25nZXIgY29uc3RhbnQgYWNjb3JkaW5nIHRvIGdjYy4uCisgKi8KKworI3VuZGVmIG50b2hsCisjdW5kZWYgbnRvaHMKKyN1bmRlZiBodG9ubAorI3VuZGVmIGh0b25zCisKKy8qCisgKiBEbyB0aGUgcHJvdG90eXBlcy4gU29tZWJvZHkgbWlnaHQgd2FudCB0byB0YWtlIHRoZQorICogYWRkcmVzcyBvciBzb21lIHN1Y2ggc2ljayB0aGluZy4uCisgKi8KKyNpZiBkZWZpbmVkKF9fS0VSTkVMX18pIHx8IChkZWZpbmVkIChfX0dMSUJDX18pICYmIF9fR0xJQkNfXyA+PSAyKQorZXh0ZXJuIF9fdTMyCQkJbnRvaGwoX191MzIpOworZXh0ZXJuIF9fdTMyCQkJaHRvbmwoX191MzIpOworI2Vsc2UKK2V4dGVybiB1bnNpZ25lZCBsb25nIGludAludG9obCh1bnNpZ25lZCBsb25nIGludCk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBpbnQJaHRvbmwodW5zaWduZWQgbG9uZyBpbnQpOworI2VuZGlmCitleHRlcm4gdW5zaWduZWQgc2hvcnQgaW50CW50b2hzKHVuc2lnbmVkIHNob3J0IGludCk7CitleHRlcm4gdW5zaWduZWQgc2hvcnQgaW50CWh0b25zKHVuc2lnbmVkIHNob3J0IGludCk7CisKKworI2lmIGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA+PSAyKQorCisjZGVmaW5lIF9fX2h0b25sKHgpIF9fY3B1X3RvX2JlMzIoeCkKKyNkZWZpbmUgX19faHRvbnMoeCkgX19jcHVfdG9fYmUxNih4KQorI2RlZmluZSBfX19udG9obCh4KSBfX2JlMzJfdG9fY3B1KHgpCisjZGVmaW5lIF9fX250b2hzKHgpIF9fYmUxNl90b19jcHUoeCkKKworI2lmIGRlZmluZWQoX19LRVJORUxfXykgfHwgKGRlZmluZWQgKF9fR0xJQkNfXykgJiYgX19HTElCQ19fID49IDIpCisjZGVmaW5lIGh0b25sKHgpIF9fX2h0b25sKHgpCisjZGVmaW5lIG50b2hsKHgpIF9fX250b2hsKHgpCisjZWxzZQorI2RlZmluZSBodG9ubCh4KSAoKHVuc2lnbmVkIGxvbmcpX19faHRvbmwoeCkpCisjZGVmaW5lIG50b2hsKHgpICgodW5zaWduZWQgbG9uZylfX19udG9obCh4KSkKKyNlbmRpZgorI2RlZmluZSBodG9ucyh4KSBfX19odG9ucyh4KQorI2RlZmluZSBudG9ocyh4KSBfX19udG9ocyh4KQorCisjZW5kaWYgLyogT1BUSU1JWkUgKi8KKworCisjZW5kaWYgLyogX0xJTlVYX0JZVEVPUkRFUl9HRU5FUklDX0ggKi8KZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9saW51eC9ieXRlb3JkZXIvbGl0dGxlX2VuZGlhbi5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2xpbnV4L2J5dGVvcmRlci9saXR0bGVfZW5kaWFuLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQ2ZjNlYwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9saW51eC9ieXRlb3JkZXIvbGl0dGxlX2VuZGlhbi5oCkBAIC0wLDAgKzEsNjkgQEAKKyNpZm5kZWYgX0xJTlVYX0JZVEVPUkRFUl9MSVRUTEVfRU5ESUFOX0gKKyNkZWZpbmUgX0xJTlVYX0JZVEVPUkRFUl9MSVRUTEVfRU5ESUFOX0gKKworI2lmbmRlZiBfX0xJVFRMRV9FTkRJQU4KKyNkZWZpbmUgX19MSVRUTEVfRU5ESUFOIDEyMzQKKyNlbmRpZgorI2lmbmRlZiBfX0xJVFRMRV9FTkRJQU5fQklURklFTEQKKyNkZWZpbmUgX19MSVRUTEVfRU5ESUFOX0JJVEZJRUxECisjZW5kaWYKKyNkZWZpbmUJX19CWVRFX09SREVSCV9fTElUVExFX0VORElBTgorCisjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KKworI2RlZmluZSBfX2NvbnN0YW50X2h0b25sKHgpIF9fX2NvbnN0YW50X3N3YWIzMigoeCkpCisjZGVmaW5lIF9fY29uc3RhbnRfbnRvaGwoeCkgX19fY29uc3RhbnRfc3dhYjMyKCh4KSkKKyNkZWZpbmUgX19jb25zdGFudF9odG9ucyh4KSBfX19jb25zdGFudF9zd2FiMTYoKHgpKQorI2RlZmluZSBfX2NvbnN0YW50X250b2hzKHgpIF9fX2NvbnN0YW50X3N3YWIxNigoeCkpCisjZGVmaW5lIF9fY29uc3RhbnRfY3B1X3RvX2xlNjQoeCkgKChfX3U2NCkoeCkpCisjZGVmaW5lIF9fY29uc3RhbnRfbGU2NF90b19jcHUoeCkgKChfX3U2NCkoeCkpCisjZGVmaW5lIF9fY29uc3RhbnRfY3B1X3RvX2xlMzIoeCkgKChfX3UzMikoeCkpCisjZGVmaW5lIF9fY29uc3RhbnRfbGUzMl90b19jcHUoeCkgKChfX3UzMikoeCkpCisjZGVmaW5lIF9fY29uc3RhbnRfY3B1X3RvX2xlMTYoeCkgKChfX3UxNikoeCkpCisjZGVmaW5lIF9fY29uc3RhbnRfbGUxNl90b19jcHUoeCkgKChfX3UxNikoeCkpCisjZGVmaW5lIF9fY29uc3RhbnRfY3B1X3RvX2JlNjQoeCkgX19fY29uc3RhbnRfc3dhYjY0KCh4KSkKKyNkZWZpbmUgX19jb25zdGFudF9iZTY0X3RvX2NwdSh4KSBfX19jb25zdGFudF9zd2FiNjQoKHgpKQorI2RlZmluZSBfX2NvbnN0YW50X2NwdV90b19iZTMyKHgpIF9fX2NvbnN0YW50X3N3YWIzMigoeCkpCisjZGVmaW5lIF9fY29uc3RhbnRfYmUzMl90b19jcHUoeCkgX19fY29uc3RhbnRfc3dhYjMyKCh4KSkKKyNkZWZpbmUgX19jb25zdGFudF9jcHVfdG9fYmUxNih4KSBfX19jb25zdGFudF9zd2FiMTYoKHgpKQorI2RlZmluZSBfX2NvbnN0YW50X2JlMTZfdG9fY3B1KHgpIF9fX2NvbnN0YW50X3N3YWIxNigoeCkpCisjZGVmaW5lIF9fY3B1X3RvX2xlNjQoeCkgKChfX3U2NCkoeCkpCisjZGVmaW5lIF9fbGU2NF90b19jcHUoeCkgKChfX3U2NCkoeCkpCisjZGVmaW5lIF9fY3B1X3RvX2xlMzIoeCkgKChfX3UzMikoeCkpCisjZGVmaW5lIF9fbGUzMl90b19jcHUoeCkgKChfX3UzMikoeCkpCisjZGVmaW5lIF9fY3B1X3RvX2xlMTYoeCkgKChfX3UxNikoeCkpCisjZGVmaW5lIF9fbGUxNl90b19jcHUoeCkgKChfX3UxNikoeCkpCisjZGVmaW5lIF9fY3B1X3RvX2JlNjQoeCkgX19zd2FiNjQoKHgpKQorI2RlZmluZSBfX2JlNjRfdG9fY3B1KHgpIF9fc3dhYjY0KCh4KSkKKyNkZWZpbmUgX19jcHVfdG9fYmUzMih4KSBfX3N3YWIzMigoeCkpCisjZGVmaW5lIF9fYmUzMl90b19jcHUoeCkgX19zd2FiMzIoKHgpKQorI2RlZmluZSBfX2NwdV90b19iZTE2KHgpIF9fc3dhYjE2KCh4KSkKKyNkZWZpbmUgX19iZTE2X3RvX2NwdSh4KSBfX3N3YWIxNigoeCkpCisjZGVmaW5lIF9fY3B1X3RvX2xlNjRwKHgpICgqKF9fdTY0KikoeCkpCisjZGVmaW5lIF9fbGU2NF90b19jcHVwKHgpICgqKF9fdTY0KikoeCkpCisjZGVmaW5lIF9fY3B1X3RvX2xlMzJwKHgpICgqKF9fdTMyKikoeCkpCisjZGVmaW5lIF9fbGUzMl90b19jcHVwKHgpICgqKF9fdTMyKikoeCkpCisjZGVmaW5lIF9fY3B1X3RvX2xlMTZwKHgpICgqKF9fdTE2KikoeCkpCisjZGVmaW5lIF9fbGUxNl90b19jcHVwKHgpICgqKF9fdTE2KikoeCkpCisjZGVmaW5lIF9fY3B1X3RvX2JlNjRwKHgpIF9fc3dhYjY0cCgoeCkpCisjZGVmaW5lIF9fYmU2NF90b19jcHVwKHgpIF9fc3dhYjY0cCgoeCkpCisjZGVmaW5lIF9fY3B1X3RvX2JlMzJwKHgpIF9fc3dhYjMycCgoeCkpCisjZGVmaW5lIF9fYmUzMl90b19jcHVwKHgpIF9fc3dhYjMycCgoeCkpCisjZGVmaW5lIF9fY3B1X3RvX2JlMTZwKHgpIF9fc3dhYjE2cCgoeCkpCisjZGVmaW5lIF9fYmUxNl90b19jcHVwKHgpIF9fc3dhYjE2cCgoeCkpCisjZGVmaW5lIF9fY3B1X3RvX2xlNjRzKHgpIGRvIHt9IHdoaWxlICgwKQorI2RlZmluZSBfX2xlNjRfdG9fY3B1cyh4KSBkbyB7fSB3aGlsZSAoMCkKKyNkZWZpbmUgX19jcHVfdG9fbGUzMnMoeCkgZG8ge30gd2hpbGUgKDApCisjZGVmaW5lIF9fbGUzMl90b19jcHVzKHgpIGRvIHt9IHdoaWxlICgwKQorI2RlZmluZSBfX2NwdV90b19sZTE2cyh4KSBkbyB7fSB3aGlsZSAoMCkKKyNkZWZpbmUgX19sZTE2X3RvX2NwdXMoeCkgZG8ge30gd2hpbGUgKDApCisjZGVmaW5lIF9fY3B1X3RvX2JlNjRzKHgpIF9fc3dhYjY0cygoeCkpCisjZGVmaW5lIF9fYmU2NF90b19jcHVzKHgpIF9fc3dhYjY0cygoeCkpCisjZGVmaW5lIF9fY3B1X3RvX2JlMzJzKHgpIF9fc3dhYjMycygoeCkpCisjZGVmaW5lIF9fYmUzMl90b19jcHVzKHgpIF9fc3dhYjMycygoeCkpCisjZGVmaW5lIF9fY3B1X3RvX2JlMTZzKHgpIF9fc3dhYjE2cygoeCkpCisjZGVmaW5lIF9fYmUxNl90b19jcHVzKHgpIF9fc3dhYjE2cygoeCkpCisKKyNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIvZ2VuZXJpYy5oPgorCisjZW5kaWYgLyogX0xJTlVYX0JZVEVPUkRFUl9MSVRUTEVfRU5ESUFOX0ggKi8KZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9saW51eC9ieXRlb3JkZXIvc3dhYi5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2xpbnV4L2J5dGVvcmRlci9zd2FiLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFkNTcwZQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9saW51eC9ieXRlb3JkZXIvc3dhYi5oCkBAIC0wLDAgKzEsMTU4IEBACisjaWZuZGVmIF9MSU5VWF9CWVRFT1JERVJfU1dBQl9ICisjZGVmaW5lIF9MSU5VWF9CWVRFT1JERVJfU1dBQl9ICisKKy8qCisgKiBsaW51eC9ieXRlb3JkZXIvc3dhYi5oCisgKiBCeXRlLXN3YXBwaW5nLCBpbmRlcGVuZGVudGx5IGZyb20gQ1BVIGVuZGlhbm5lc3MKKyAqCXN3YWJYWFtwc10/KGZvbykKKyAqCisgKiBGcmFuY29pcy1SZW5lIFJpZGVhdSA8ZmFyZUB0dW5lcy5vcmc+IDE5OTcxMjA1CisgKiAgICBzZXBhcmF0ZWQgc3dhYiBmdW5jdGlvbnMgZnJvbSBjcHVfdG9fWFgsCisgKiAgICB0byBjbGVhbiB1cCBzdXBwb3J0IGZvciBiaXphcnJlLWVuZGlhbiBhcmNoaXRlY3R1cmVzLgorICoKKyAqIFNlZSBhc20taTM4Ni9ieXRlb3JkZXIuaCBhbmQgc3VjaGVzIGZvciBleGFtcGxlcyBvZiBob3cgdG8gcHJvdmlkZQorICogYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBvcHRpbWl6ZWQgdmVyc2lvbnMKKyAqCisgKi8KKworLyogY2FzdHMgYXJlIG5lY2Vzc2FyeSBmb3IgY29uc3RhbnRzLCBiZWNhdXNlIHdlIG5ldmVyIGtub3cgaG93IGZvciBzdXJlCisgKiBob3cgVS9VTC9VTEwgbWFwIHRvIF9fdTE2LCBfX3UzMiwgX191NjQuIEF0IGxlYXN0IG5vdCBpbiBhIHBvcnRhYmxlIHdheS4KKyAqLworI2RlZmluZSBfX19zd2FiMTYoeCkgXAorCSgoX191MTYpKCBcCisJCSgoKF9fdTE2KSh4KSAmIChfX3UxNikweDAwZmZVKSA8PCA4KSB8IFwKKwkJKCgoX191MTYpKHgpICYgKF9fdTE2KTB4ZmYwMFUpID4+IDgpICkpCisjZGVmaW5lIF9fX3N3YWIzMih4KSBcCisJKChfX3UzMikoIFwKKwkJKCgoX191MzIpKHgpICYgKF9fdTMyKTB4MDAwMDAwZmZVTCkgPDwgMjQpIHwgXAorCQkoKChfX3UzMikoeCkgJiAoX191MzIpMHgwMDAwZmYwMFVMKSA8PCAgOCkgfCBcCisJCSgoKF9fdTMyKSh4KSAmIChfX3UzMikweDAwZmYwMDAwVUwpID4+ICA4KSB8IFwKKwkJKCgoX191MzIpKHgpICYgKF9fdTMyKTB4ZmYwMDAwMDBVTCkgPj4gMjQpICkpCisjZGVmaW5lIF9fX3N3YWI2NCh4KSBcCisJKChfX3U2NCkoIFwKKwkJKF9fdTY0KSgoKF9fdTY0KSh4KSAmIChfX3U2NCkweDAwMDAwMDAwMDAwMDAwZmZVTEwpIDw8IDU2KSB8IFwKKwkJKF9fdTY0KSgoKF9fdTY0KSh4KSAmIChfX3U2NCkweDAwMDAwMDAwMDAwMGZmMDBVTEwpIDw8IDQwKSB8IFwKKwkJKF9fdTY0KSgoKF9fdTY0KSh4KSAmIChfX3U2NCkweDAwMDAwMDAwMDBmZjAwMDBVTEwpIDw8IDI0KSB8IFwKKwkJKF9fdTY0KSgoKF9fdTY0KSh4KSAmIChfX3U2NCkweDAwMDAwMDAwZmYwMDAwMDBVTEwpIDw8ICA4KSB8IFwKKwkJKF9fdTY0KSgoKF9fdTY0KSh4KSAmIChfX3U2NCkweDAwMDAwMGZmMDAwMDAwMDBVTEwpID4+ICA4KSB8IFwKKwkJKF9fdTY0KSgoKF9fdTY0KSh4KSAmIChfX3U2NCkweDAwMDBmZjAwMDAwMDAwMDBVTEwpID4+IDI0KSB8IFwKKwkJKF9fdTY0KSgoKF9fdTY0KSh4KSAmIChfX3U2NCkweDAwZmYwMDAwMDAwMDAwMDBVTEwpID4+IDQwKSB8IFwKKwkJKF9fdTY0KSgoKF9fdTY0KSh4KSAmIChfX3U2NCkweGZmMDAwMDAwMDAwMDAwMDBVTEwpID4+IDU2KSApKQorCisvKgorICogcHJvdmlkZSBkZWZhdWx0cyB3aGVuIG5vIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBvcHRpbWl6YXRpb24gaXMgZGV0ZWN0ZWQKKyAqLworI2lmbmRlZiBfX2FyY2hfX3N3YWIxNgorIyAgZGVmaW5lIF9fYXJjaF9fc3dhYjE2KHgpIF9fX3N3YWIxNih4KQorI2VuZGlmCisjaWZuZGVmIF9fYXJjaF9fc3dhYjMyCisjICBkZWZpbmUgX19hcmNoX19zd2FiMzIoeCkgX19fc3dhYjMyKHgpCisjZW5kaWYKKyNpZm5kZWYgX19hcmNoX19zd2FiNjQKKyMgIGRlZmluZSBfX2FyY2hfX3N3YWI2NCh4KSBfX19zd2FiNjQoeCkKKyNlbmRpZgorCisjaWZuZGVmIF9fYXJjaF9fc3dhYjE2cAorIyAgZGVmaW5lIF9fYXJjaF9fc3dhYjE2cCh4KSBfX3N3YWIxNigqKHgpKQorI2VuZGlmCisjaWZuZGVmIF9fYXJjaF9fc3dhYjMycAorIyAgZGVmaW5lIF9fYXJjaF9fc3dhYjMycCh4KSBfX3N3YWIzMigqKHgpKQorI2VuZGlmCisjaWZuZGVmIF9fYXJjaF9fc3dhYjY0cAorIyAgZGVmaW5lIF9fYXJjaF9fc3dhYjY0cCh4KSBfX3N3YWI2NCgqKHgpKQorI2VuZGlmCisKKyNpZm5kZWYgX19hcmNoX19zd2FiMTZzCisjICBkZWZpbmUgX19hcmNoX19zd2FiMTZzKHgpIGRvIHsgKih4KSA9IF9fc3dhYjE2cCgoeCkpOyB9IHdoaWxlICgwKQorI2VuZGlmCisjaWZuZGVmIF9fYXJjaF9fc3dhYjMycworIyAgZGVmaW5lIF9fYXJjaF9fc3dhYjMycyh4KSBkbyB7ICooeCkgPSBfX3N3YWIzMnAoKHgpKTsgfSB3aGlsZSAoMCkKKyNlbmRpZgorI2lmbmRlZiBfX2FyY2hfX3N3YWI2NHMKKyMgIGRlZmluZSBfX2FyY2hfX3N3YWI2NHMoeCkgZG8geyAqKHgpID0gX19zd2FiNjRwKCh4KSk7IH0gd2hpbGUgKDApCisjZW5kaWYKKworCisvKgorICogQWxsb3cgY29uc3RhbnQgZm9sZGluZworICovCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fID49IDIpICYmIGRlZmluZWQoX19PUFRJTUlaRV9fKQorIyAgZGVmaW5lIF9fc3dhYjE2KHgpIFwKKyhfX2J1aWx0aW5fY29uc3RhbnRfcCgoX191MTYpKHgpKSA/IFwKKyBfX19zd2FiMTYoKHgpKSA6IFwKKyBfX2Zzd2FiMTYoKHgpKSkKKyMgIGRlZmluZSBfX3N3YWIzMih4KSBcCisoX19idWlsdGluX2NvbnN0YW50X3AoKF9fdTMyKSh4KSkgPyBcCisgX19fc3dhYjMyKCh4KSkgOiBcCisgX19mc3dhYjMyKCh4KSkpCisjICBkZWZpbmUgX19zd2FiNjQoeCkgXAorKF9fYnVpbHRpbl9jb25zdGFudF9wKChfX3U2NCkoeCkpID8gXAorIF9fX3N3YWI2NCgoeCkpIDogXAorIF9fZnN3YWI2NCgoeCkpKQorI2Vsc2UKKyMgIGRlZmluZSBfX3N3YWIxNih4KSBfX2Zzd2FiMTYoeCkKKyMgIGRlZmluZSBfX3N3YWIzMih4KSBfX2Zzd2FiMzIoeCkKKyMgIGRlZmluZSBfX3N3YWI2NCh4KSBfX2Zzd2FiNjQoeCkKKyNlbmRpZiAvKiBPUFRJTUlaRSAqLworCisKK3N0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX191MTYgX19mc3dhYjE2KF9fdTE2IHgpCit7CisJcmV0dXJuIF9fYXJjaF9fc3dhYjE2KHgpOworfQorc3RhdGljIF9faW5saW5lX18gX191MTYgX19zd2FiMTZwKF9fdTE2ICp4KQoreworCXJldHVybiBfX2FyY2hfX3N3YWIxNnAoeCk7Cit9CitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fc3dhYjE2cyhfX3UxNiAqYWRkcikKK3sKKwlfX2FyY2hfX3N3YWIxNnMoYWRkcik7Cit9CisKK3N0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX191MzIgX19mc3dhYjMyKF9fdTMyIHgpCit7CisJcmV0dXJuIF9fYXJjaF9fc3dhYjMyKHgpOworfQorc3RhdGljIF9faW5saW5lX18gX191MzIgX19zd2FiMzJwKF9fdTMyICp4KQoreworCXJldHVybiBfX2FyY2hfX3N3YWIzMnAoeCk7Cit9CitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fc3dhYjMycyhfX3UzMiAqYWRkcikKK3sKKwlfX2FyY2hfX3N3YWIzMnMoYWRkcik7Cit9CisKKyNpZmRlZiBfX0JZVEVPUkRFUl9IQVNfVTY0X18KK3N0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX191NjQgX19mc3dhYjY0KF9fdTY0IHgpCit7CisjICBpZmRlZiBfX1NXQUJfNjRfVEhSVV8zMl9fCisJX191MzIgaCA9IHggPj4gMzI7CisJX191MzIgbCA9IHggJiAoKDFVTEw8PDMyKS0xKTsKKwlyZXR1cm4gKCgoX191NjQpX19zd2FiMzIobCkpIDw8IDMyKSB8ICgoX191NjQpKF9fc3dhYjMyKGgpKSk7CisjICBlbHNlCisJcmV0dXJuIF9fYXJjaF9fc3dhYjY0KHgpOworIyAgZW5kaWYKK30KK3N0YXRpYyBfX2lubGluZV9fIF9fdTY0IF9fc3dhYjY0cChfX3U2NCAqeCkKK3sKKwlyZXR1cm4gX19hcmNoX19zd2FiNjRwKHgpOworfQorc3RhdGljIF9faW5saW5lX18gdm9pZCBfX3N3YWI2NHMoX191NjQgKmFkZHIpCit7CisJX19hcmNoX19zd2FiNjRzKGFkZHIpOworfQorI2VuZGlmIC8qIF9fQllURU9SREVSX0hBU19VNjRfXyAqLworCisjaWYgZGVmaW5lZChfX0tFUk5FTF9fKQorI2RlZmluZSBzd2FiMTYgX19zd2FiMTYKKyNkZWZpbmUgc3dhYjMyIF9fc3dhYjMyCisjZGVmaW5lIHN3YWI2NCBfX3N3YWI2NAorI2RlZmluZSBzd2FiMTZwIF9fc3dhYjE2cAorI2RlZmluZSBzd2FiMzJwIF9fc3dhYjMycAorI2RlZmluZSBzd2FiNjRwIF9fc3dhYjY0cAorI2RlZmluZSBzd2FiMTZzIF9fc3dhYjE2cworI2RlZmluZSBzd2FiMzJzIF9fc3dhYjMycworI2RlZmluZSBzd2FiNjRzIF9fc3dhYjY0cworI2VuZGlmCisKKyNlbmRpZiAvKiBfTElOVVhfQllURU9SREVSX1NXQUJfSCAqLwpkaWZmIC0tZ2l0IGEvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2xpbnV4L2NvbmZpZy5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2xpbnV4L2NvbmZpZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwMTk0Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvbGludXgvY29uZmlnLmgKQEAgLTAsMCArMSw2IEBACisjaWZuZGVmIF9MSU5VWF9DT05GSUdfSAorI2RlZmluZSBfTElOVVhfQ09ORklHX0gKKworLyogI2luY2x1ZGUgPGxpbnV4L2F1dG9jb25mLmg+ICovCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2xpbnV4L3Bvc2l4X3R5cGVzLmggYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvbGludXgvcG9zaXhfdHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZDM3ZTFmCi0tLSAvZGV2L251bGwKKysrIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2xpbnV4L3Bvc2l4X3R5cGVzLmgKQEAgLTAsMCArMSw0OCBAQAorI2lmbmRlZiBfTElOVVhfUE9TSVhfVFlQRVNfSAorI2RlZmluZSBfTElOVVhfUE9TSVhfVFlQRVNfSAorCisjaW5jbHVkZSA8bGludXgvc3RkZGVmLmg+CisKKy8qCisgKiBUaGlzIGFsbG93cyBmb3IgMTAyNCBmaWxlIGRlc2NyaXB0b3JzOiBpZiBOUl9PUEVOIGlzIGV2ZXIgZ3Jvd24KKyAqIGJleW9uZCB0aGF0IHlvdSdsbCBoYXZlIHRvIGNoYW5nZSB0aGlzIHRvby4gQnV0IDEwMjQgZmQncyBzZWVtIHRvIGJlCisgKiBlbm91Z2ggZXZlbiBmb3Igc3VjaCAicmVhbCIgdW5pY2VzIGxpa2UgT1NGLzEsIHNvIGhvcGVmdWxseSB0aGlzIGlzCisgKiBvbmUgbGltaXQgdGhhdCBkb2Vzbid0IGhhdmUgdG8gYmUgY2hhbmdlZCBbYWdhaW5dLgorICoKKyAqIE5vdGUgdGhhdCBQT1NJWCB3YW50cyB0aGUgRkRfQ0xFQVIoZmQsZmRzZXRwKSBkZWZpbmVzIHRvIGJlIGluCisgKiA8c3lzL3RpbWUuaD4gKGFuZCB0aHVzIDxsaW51eC90aW1lLmg+KSAtIGJ1dCB0aGlzIGlzIGEgbW9yZSBsb2dpY2FsCisgKiBwbGFjZSBmb3IgdGhlbS4gU29sdmVkIGJ5IGhhdmluZyBkdW1teSBkZWZpbmVzIGluIDxzeXMvdGltZS5oPi4KKyAqLworCisvKgorICogVGhvc2UgbWFjcm9zIG1heSBoYXZlIGJlZW4gZGVmaW5lZCBpbiA8Z251L3R5cGVzLmg+LiBCdXQgd2UgYWx3YXlzCisgKiB1c2UgdGhlIG9uZXMgaGVyZS4KKyAqLworI3VuZGVmIF9fTkZEQklUUworI2RlZmluZSBfX05GREJJVFMJKDggKiBzaXplb2YodW5zaWduZWQgbG9uZykpCisKKyN1bmRlZiBfX0ZEX1NFVFNJWkUKKyNkZWZpbmUgX19GRF9TRVRTSVpFCTEwMjQKKworI3VuZGVmIF9fRkRTRVRfTE9OR1MKKyNkZWZpbmUgX19GRFNFVF9MT05HUwkoX19GRF9TRVRTSVpFL19fTkZEQklUUykKKworI3VuZGVmIF9fRkRFTFQKKyNkZWZpbmUJX19GREVMVChkKQkoKGQpIC8gX19ORkRCSVRTKQorCisjdW5kZWYgX19GRE1BU0sKKyNkZWZpbmUJX19GRE1BU0soZCkJKDFVTCA8PCAoKGQpICUgX19ORkRCSVRTKSkKKwordHlwZWRlZiBzdHJ1Y3QgeworCXVuc2lnbmVkIGxvbmcgZmRzX2JpdHMgW19fRkRTRVRfTE9OR1NdOworfSBfX2tlcm5lbF9mZF9zZXQ7CisKKy8qIFR5cGUgb2YgYSBzaWduYWwgaGFuZGxlci4gICovCit0eXBlZGVmIHZvaWQgKCpfX2tlcm5lbF9zaWdoYW5kbGVyX3QpKGludCk7CisKKy8qIFR5cGUgb2YgYSBTWVNWIElQQyBrZXkuICAqLwordHlwZWRlZiBpbnQgX19rZXJuZWxfa2V5X3Q7CisKKyNpbmNsdWRlIDxhc20vcG9zaXhfdHlwZXMuaD4KKworI2VuZGlmIC8qIF9MSU5VWF9QT1NJWF9UWVBFU19IICovCmRpZmYgLS1naXQgYS9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvbGludXgvc3RhdC5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2xpbnV4L3N0YXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTQyMmNiCi0tLSAvZGV2L251bGwKKysrIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2xpbnV4L3N0YXQuaApAQCAtMCwwICsxLDEzMiBAQAorI2lmbmRlZiBfTElOVVhfU1RBVF9ICisjZGVmaW5lIF9MSU5VWF9TVEFUX0gKKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworI2RlZmluZSBTX0lGTVQgIDAwMTcwMDAwCS8qIHR5cGUgb2YgZmlsZSAqLworI2RlZmluZSBTX0lGU09DSyAwMTQwMDAwCS8qIG5hbWVkIHNvY2tldCAqLworI2RlZmluZSBTX0lGTE5LCSAwMTIwMDAwCS8qIHN5bWJvbGljIGxpbmsgKi8KKyNkZWZpbmUgU19JRlJFRyAgMDEwMDAwMAkvKiByZWd1bGFyICovCisjZGVmaW5lIFNfSUZCTEsgIDAwNjAwMDAJLyogYmxvY2sgc3BlY2lhbCAqLworI2RlZmluZSBTX0lGRElSICAwMDQwMDAwCS8qIGRpcmVjdG9yeSAqLworI2RlZmluZSBTX0lGQ0hSICAwMDIwMDAwCS8qIGNoYXJhY3RlciBzcGVjaWFsICovCisjZGVmaW5lIFNfSUZJRk8gIDAwMTAwMDAJLyogZmlmbyAqLworI2RlZmluZSBTX0lTVUlEICAwMDA0MDAwCS8qIHNldCB1c2VyIGlkIG9uIGV4ZWN1dGlvbiAqLworI2RlZmluZSBTX0lTR0lEICAwMDAyMDAwCS8qIHNldCBncm91cCBpZCBvbiBleGVjdXRpb24gKi8KKyNkZWZpbmUgU19JU1ZUWCAgMDAwMTAwMAkvKiBzYXZlIHN3YXBwZWQgdGV4dCBldmVuIGFmdGVyIHVzZSAqLworCisjZGVmaW5lIFNfSVNMTksobSkJKCgobSkgJiBTX0lGTVQpID09IFNfSUZMTkspCisjZGVmaW5lIFNfSVNSRUcobSkJKCgobSkgJiBTX0lGTVQpID09IFNfSUZSRUcpCisjZGVmaW5lIFNfSVNESVIobSkJKCgobSkgJiBTX0lGTVQpID09IFNfSUZESVIpCisjZGVmaW5lIFNfSVNDSFIobSkJKCgobSkgJiBTX0lGTVQpID09IFNfSUZDSFIpCisjZGVmaW5lIFNfSVNCTEsobSkJKCgobSkgJiBTX0lGTVQpID09IFNfSUZCTEspCisjZGVmaW5lIFNfSVNGSUZPKG0pCSgoKG0pICYgU19JRk1UKSA9PSBTX0lGSUZPKQorI2RlZmluZSBTX0lTU09DSyhtKQkoKChtKSAmIFNfSUZNVCkgPT0gU19JRlNPQ0spCisKKyNkZWZpbmUgU19JUldYVSAwMDcwMAkJLyogcnd4IGZvciBvd25lciAqLworI2RlZmluZSBTX0lSVVNSIDAwNDAwCQkvKiByZWFkIHBlcm1pc3Npb24gZm9yIG93bmVyICovCisjZGVmaW5lIFNfSVdVU1IgMDAyMDAJCS8qIHdyaXRlIHBlcm1pc3Npb24gZm9yIG93bmVyICovCisjZGVmaW5lIFNfSVhVU1IgMDAxMDAJCS8qIGV4ZWN1dGUvc2VhcmNoIHBlcm1pc3Npb24gZm9yIG93bmVyICovCisKKyNkZWZpbmUgU19JUldYRyAwMDA3MAkJLyogcnd4IGZvciBncm91cCAqLworI2RlZmluZSBTX0lSR1JQIDAwMDQwCQkvKiByZWFkIHBlcm1pc3Npb24gZm9yIGdyb3VwICovCisjZGVmaW5lIFNfSVdHUlAgMDAwMjAJCS8qIHdyaXRlIHBlcm1pc3Npb24gZm9yIGdyb3VwICovCisjZGVmaW5lIFNfSVhHUlAgMDAwMTAJCS8qIGV4ZWN1dGUvc2VhcmNoIHBlcm1pc3Npb24gZm9yIGdyb3VwICovCisKKyNkZWZpbmUgU19JUldYTyAwMDAwNwkJLyogcnd4IGZvciBvdGhlciAqLworI2RlZmluZSBTX0lST1RIIDAwMDA0CQkvKiByZWFkIHBlcm1pc3Npb24gZm9yIG90aGVyICovCisjZGVmaW5lIFNfSVdPVEggMDAwMDIJCS8qIHJlYWQgcGVybWlzc2lvbiBmb3Igb3RoZXIgKi8KKyNkZWZpbmUgU19JWE9USCAwMDAwMQkJLyogZXhlY3V0ZS9zZWFyY2ggcGVybWlzc2lvbiBmb3Igb3RoZXIgKi8KKworI2lmZGVmCV9fUFBDX18KKworc3RydWN0IHN0YXQgeworCWRldl90CQlzdF9kZXY7CQkvKiBmaWxlIHN5c3RlbSBpZCAqLworCWlub190CQlzdF9pbm87CQkvKiBmaWxlIGlkICovCisJbW9kZV90CQlzdF9tb2RlOwkvKiBvd25lcnNoaXAvcHJvdGVjdGlvbiAqLworCW5saW5rX3QJCXN0X25saW5rOwkvKiBudW1iZXIgb2YgbGlua3MgKi8KKwl1aWRfdCAJCXN0X3VpZDsJCS8qIHVzZXIgaWQgKi8KKwlnaWRfdCAJCXN0X2dpZDsJCS8qIGdyb3VwIGlkICovCisJZGV2X3QJCXN0X3JkZXY7CisJb2ZmX3QJCXN0X3NpemU7CS8qIGZpbGUgc2l6ZSBpbiAjIG9mIGJ5dGVzICovCisJdW5zaWduZWQgbG9uZyAgCXN0X2Jsa3NpemU7CS8qIGJsb2NrIHNpemUgKi8KKwl1bnNpZ25lZCBsb25nICAJc3RfYmxvY2tzOwkvKiBmaWxlIHNpemUgaW4gIyBvZiBibG9ja3MgKi8KKwl1bnNpZ25lZCBsb25nICAJc3RfYXRpbWU7CS8qIHRpbWUgZmlsZSB3YXMgbGFzdCBhY2Nlc3NlZCAqLworCXVuc2lnbmVkIGxvbmcgIAlfX3VudXNlZDE7CisJdW5zaWduZWQgbG9uZyAgCXN0X210aW1lOwkvKiB0aW1lIGZpbGUgd2FzIGxhc3QgbW9kaWZpZWQgKi8KKwl1bnNpZ25lZCBsb25nICAJX191bnVzZWQyOworCXVuc2lnbmVkIGxvbmcgIAlzdF9jdGltZTsJLyogdGltZSBmaWxlIHN0YXR1cyB3YXMgbGFzdCBjaGFuZ2VkICovCisJdW5zaWduZWQgbG9uZyAgCV9fdW51c2VkMzsKKwl1bnNpZ25lZCBsb25nICAJX191bnVzZWQ0OworCXVuc2lnbmVkIGxvbmcgIAlfX3VudXNlZDU7Cit9OworCisjZW5kaWYJLyogX19QUENfXyAqLworCisjaWYgZGVmaW5lZCAoX19BUk1fXykgfHwgZGVmaW5lZCAoX19JMzg2X18pIHx8IGRlZmluZWQgKF9fTTY4S19fKSB8fCBkZWZpbmVkIChfX2JsYWNrZmluX18pCisKK3N0cnVjdCBzdGF0IHsKKwl1bnNpZ25lZCBzaG9ydCBzdF9kZXY7CisJdW5zaWduZWQgc2hvcnQgX19wYWQxOworCXVuc2lnbmVkIGxvbmcgc3RfaW5vOworCXVuc2lnbmVkIHNob3J0IHN0X21vZGU7CisJdW5zaWduZWQgc2hvcnQgc3Rfbmxpbms7CisJdW5zaWduZWQgc2hvcnQgc3RfdWlkOworCXVuc2lnbmVkIHNob3J0IHN0X2dpZDsKKwl1bnNpZ25lZCBzaG9ydCBzdF9yZGV2OworCXVuc2lnbmVkIHNob3J0IF9fcGFkMjsKKwl1bnNpZ25lZCBsb25nICBzdF9zaXplOworCXVuc2lnbmVkIGxvbmcgIHN0X2Jsa3NpemU7CisJdW5zaWduZWQgbG9uZyAgc3RfYmxvY2tzOworCXVuc2lnbmVkIGxvbmcgIHN0X2F0aW1lOworCXVuc2lnbmVkIGxvbmcgIF9fdW51c2VkMTsKKwl1bnNpZ25lZCBsb25nICBzdF9tdGltZTsKKwl1bnNpZ25lZCBsb25nICBfX3VudXNlZDI7CisJdW5zaWduZWQgbG9uZyAgc3RfY3RpbWU7CisJdW5zaWduZWQgbG9uZyAgX191bnVzZWQzOworCXVuc2lnbmVkIGxvbmcgIF9fdW51c2VkNDsKKwl1bnNpZ25lZCBsb25nICBfX3VudXNlZDU7Cit9OworCisjZW5kaWYJLyogX19BUk1fXyAqLworCisjaWYgZGVmaW5lZCAoX19NSVBTX18pCisKK3N0cnVjdCBzdGF0IHsKKwlkZXZfdCAgICAgICAgICAgc3RfZGV2OworCWxvbmcgICAgICAgICAgICBzdF9wYWQxWzNdOworCWlub190ICAgICAgICAgICBzdF9pbm87CisJbW9kZV90ICAgICAgICAgIHN0X21vZGU7CisJbmxpbmtfdCAgICAgICAgIHN0X25saW5rOworCXVpZF90ICAgICAgICAgICBzdF91aWQ7CisJZ2lkX3QgICAgICAgICAgIHN0X2dpZDsKKwlkZXZfdCAgICAgICAgICAgc3RfcmRldjsKKwlsb25nICAgICAgICAgICAgc3RfcGFkMlsyXTsKKwlvZmZfdCAgICAgICAgICAgc3Rfc2l6ZTsKKwlsb25nICAgICAgICAgICAgc3RfcGFkMzsKKwkvKgorCSAqIEFjdHVhbGx5IHRoaXMgc2hvdWxkIGJlIHRpbWVzdHJ1Y190IHN0X2F0aW1lLCBzdF9tdGltZSBhbmQgc3RfY3RpbWUKKwkgKiBidXQgd2UgZG9uJ3QgaGF2ZSBpdCB1bmRlciBMaW51eC4KKwkgKi8KKwl0aW1lX3QgICAgICAgICAgc3RfYXRpbWU7CisJbG9uZyAgICAgICAgICAgIHJlc2VydmVkMDsKKwl0aW1lX3QgICAgICAgICAgc3RfbXRpbWU7CisJbG9uZyAgICAgICAgICAgIHJlc2VydmVkMTsKKwl0aW1lX3QgICAgICAgICAgc3RfY3RpbWU7CisJbG9uZyAgICAgICAgICAgIHJlc2VydmVkMjsKKwlsb25nICAgICAgICAgICAgc3RfYmxrc2l6ZTsKKwlsb25nICAgICAgICAgICAgc3RfYmxvY2tzOworCWxvbmcgICAgICAgICAgICBzdF9wYWQ0WzE0XTsKK307CisKKyNlbmRpZgkvKiBfX01JUFNfXyAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9saW51eC9zdGRkZWYuaCBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9saW51eC9zdGRkZWYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MWUzNGMyCi0tLSAvZGV2L251bGwKKysrIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2xpbnV4L3N0ZGRlZi5oCkBAIC0wLDAgKzEsMTggQEAKKyNpZm5kZWYgX0xJTlVYX1NURERFRl9ICisjZGVmaW5lIF9MSU5VWF9TVERERUZfSAorCisjdW5kZWYgTlVMTAorI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCisjZGVmaW5lIE5VTEwgMAorI2Vsc2UKKyNkZWZpbmUgTlVMTCAoKHZvaWQgKikwKQorI2VuZGlmCisKKyNpZm5kZWYgX1NJWkVfVAorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjZW5kaWYKKworI3VuZGVmIG9mZnNldG9mCisjZGVmaW5lIG9mZnNldG9mKFRZUEUsIE1FTUJFUikgKChzaXplX3QpICYoKFRZUEUgKikwKS0+TUVNQkVSKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9saW51eC90aW1lLmggYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvbGludXgvdGltZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmMTJiOTkKLS0tIC9kZXYvbnVsbAorKysgYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvbGludXgvdGltZS5oCkBAIC0wLDAgKzEsMTU4IEBACisjaWZuZGVmIF9MSU5VWF9USU1FX0gKKyNkZWZpbmUgX0xJTlVYX1RJTUVfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworI2RlZmluZSBfREVGVU4oYSxiLGMpIGEoYykKKyNkZWZpbmUgX0NPTlNUIGNvbnN0CisjZGVmaW5lIF9BTkQgLAorCisjZGVmaW5lIF9SRUVOVF9PTkxZCisKKyNkZWZpbmUgU0VDU1BFUk1JTgk2MEwKKyNkZWZpbmUgTUlOU1BFUkhPVVIJNjBMCisjZGVmaW5lIEhPVVJTUEVSREFZCTI0TAorI2RlZmluZSBTRUNTUEVSSE9VUgkoU0VDU1BFUk1JTiAqIE1JTlNQRVJIT1VSKQorI2RlZmluZSBTRUNTUEVSREFZCShTRUNTUEVSSE9VUiAqIEhPVVJTUEVSREFZKQorI2RlZmluZSBEQVlTUEVSV0VFSwk3CisjZGVmaW5lIE1PTlNQRVJZRUFSCTEyCisKKyNkZWZpbmUgWUVBUl9CQVNFCTE5MDAKKyNkZWZpbmUgRVBPQ0hfWUVBUiAgICAgIDE5NzAKKyNkZWZpbmUgRVBPQ0hfV0RBWSAgICAgIDQKKworI2RlZmluZSBpc2xlYXAoeSkgKCgoKHkpICUgNCkgPT0gMCAmJiAoKHkpICUgMTAwKSAhPSAwKSB8fCAoKHkpICUgNDAwKSA9PSAwKQorCisKKy8qIFVzZWQgYnkgb3RoZXIgdGltZSBmdW5jdGlvbnMuICAqLworc3RydWN0IHRtIHsKKyAgICBpbnQgdG1fc2VjOyAgICAgICAgICAgICAgICAgICAvKiBTZWNvbmRzLiAgICAgWzAtNjBdICgxIGxlYXAgc2Vjb25kKSAqLworICAgIGludCB0bV9taW47ICAgICAgICAgICAgICAgICAgIC8qIE1pbnV0ZXMuICAgICBbMC01OV0gKi8KKyAgICBpbnQgdG1faG91cjsgICAgICAgICAgICAgICAgICAvKiBIb3Vycy4gICAgICAgWzAtMjNdICovCisgICAgaW50IHRtX21kYXk7ICAgICAgICAgICAgICAgICAgLyogRGF5LiAgICAgICAgIFsxLTMxXSAqLworICAgIGludCB0bV9tb247ICAgICAgICAgICAgICAgICAgIC8qIE1vbnRoLiAgICAgICBbMC0xMV0gKi8KKyAgICBpbnQgdG1feWVhcjsgICAgICAgICAgICAgICAgICAvKiBZZWFyIC0gMTkwMC4gICovCisgICAgaW50IHRtX3dkYXk7ICAgICAgICAgICAgICAgICAgLyogRGF5IG9mIHdlZWsuIFswLTZdICovCisgICAgaW50IHRtX3lkYXk7ICAgICAgICAgICAgICAgICAgLyogRGF5cyBpbiB5ZWFyLlswLTM2NV0gKi8KKyAgICBpbnQgdG1faXNkc3Q7ICAgICAgICAgICAgICAgICAvKiBEU1QuICAgICAgICAgWy0xLzAvMV0qLworCisjIGlmZGVmIF9fVVNFX0JTRAorICAgIGxvbmcgaW50IHRtX2dtdG9mZjsgICAgICAgICAgIC8qIFNlY29uZHMgZWFzdCBvZiBVVEMuICAqLworICAgIF9fY29uc3QgY2hhciAqdG1fem9uZTsgICAgICAgIC8qIFRpbWV6b25lIGFiYnJldmlhdGlvbi4gICovCisjIGVsc2UKKyAgICBsb25nIGludCBfX3RtX2dtdG9mZjsgICAgICAgICAvKiBTZWNvbmRzIGVhc3Qgb2YgVVRDLiAgKi8KKyAgICBfX2NvbnN0IGNoYXIgKl9fdG1fem9uZTsgICAgICAvKiBUaW1lem9uZSBhYmJyZXZpYXRpb24uICAqLworIyBlbmRpZgorfTsKKworc3RhdGljIGlubGluZSBjaGFyICoKK19ERUZVTiAoYXNjdGltZV9yLCAodGltX3AsIHJlc3VsdCksCisJX0NPTlNUIHN0cnVjdCB0bSAqdGltX3AgX0FORAorCWNoYXIgKnJlc3VsdCkKK3sKKyAgICBzdGF0aWMgX0NPTlNUIGNoYXIgZGF5X25hbWVbN11bM10gPSB7CisJIlN1biIsICJNb24iLCAiVHVlIiwgIldlZCIsICJUaHUiLCAiRnJpIiwgIlNhdCIKKyAgICB9OworICAgIHN0YXRpYyBfQ09OU1QgY2hhciBtb25fbmFtZVsxMl1bM10gPSB7CisJIkphbiIsICJGZWIiLCAiTWFyIiwgIkFwciIsICJNYXkiLCAiSnVuIiwKKwkiSnVsIiwgIkF1ZyIsICJTZXAiLCAiT2N0IiwgIk5vdiIsICJEZWMiCisgICAgfTsKKworICAgIHNwcmludGYgKHJlc3VsdCwgIiUuM3MgJS4zcyAlLjJkICUuMmQ6JS4yZDolLjJkICVkXG4iLAorCSAgICBkYXlfbmFtZVt0aW1fcC0+dG1fd2RheV0sCisJICAgIG1vbl9uYW1lW3RpbV9wLT50bV9tb25dLAorCSAgICB0aW1fcC0+dG1fbWRheSwgdGltX3AtPnRtX2hvdXIsIHRpbV9wLT50bV9taW4sCisJICAgIHRpbV9wLT50bV9zZWMsIDE5MDAgKyB0aW1fcC0+dG1feWVhcik7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgdG0gKgorX0RFRlVOIChsb2NhbHRpbWVfciwgKHRpbV9wLCByZXMpLAorCV9DT05TVCB0aW1lX3QgKiB0aW1fcCBfQU5ECisJc3RydWN0IHRtICpyZXMpCit7CisgICAgc3RhdGljIF9DT05TVCBpbnQgbW9uX2xlbmd0aHNbMl1bTU9OU1BFUllFQVJdID0geworICAgICAgezMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzF9LAorICAgICAgezMxLCAyOSwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzF9CisgICAgfSA7CisKKyAgICBzdGF0aWMgX0NPTlNUIGludCB5ZWFyX2xlbmd0aHNbMl0gPSB7CisgICAgICAzNjUsCisgICAgICAzNjYKKyAgICB9IDsKKworICAgIGxvbmcgZGF5cywgcmVtOworICAgIGludCB5OworICAgIGludCB5bGVhcDsKKyAgICBfQ09OU1QgaW50ICppcDsKKworICAgIGRheXMgPSAoKGxvbmcpICp0aW1fcCkgLyBTRUNTUEVSREFZOworICAgIHJlbSA9ICgobG9uZykgKnRpbV9wKSAlIFNFQ1NQRVJEQVk7CisgICAgd2hpbGUgKHJlbSA8IDApCisgICAgeworCXJlbSArPSBTRUNTUEVSREFZOworCS0tZGF5czsKKyAgICB9CisgICAgd2hpbGUgKHJlbSA+PSBTRUNTUEVSREFZKQorICAgIHsKKwlyZW0gLT0gU0VDU1BFUkRBWTsKKwkrK2RheXM7CisgICAgfQorCisgICAgLyogY29tcHV0ZSBob3VyLCBtaW4sIGFuZCBzZWMgKi8KKyAgICByZXMtPnRtX2hvdXIgPSAoaW50KSAocmVtIC8gU0VDU1BFUkhPVVIpOworICAgIHJlbSAlPSBTRUNTUEVSSE9VUjsKKyAgICByZXMtPnRtX21pbiA9IChpbnQpIChyZW0gLyBTRUNTUEVSTUlOKTsKKyAgICByZXMtPnRtX3NlYyA9IChpbnQpIChyZW0gJSBTRUNTUEVSTUlOKTsKKworICAgIC8qIGNvbXB1dGUgZGF5IG9mIHdlZWsgKi8KKyAgICBpZiAoKHJlcy0+dG1fd2RheSA9ICgoRVBPQ0hfV0RBWSArIGRheXMpICUgREFZU1BFUldFRUspKSA8IDApCisJcmVzLT50bV93ZGF5ICs9IERBWVNQRVJXRUVLOworCisgICAgLyogY29tcHV0ZSB5ZWFyICYgZGF5IG9mIHllYXIgKi8KKyAgICB5ID0gRVBPQ0hfWUVBUjsKKyAgICBpZiAoZGF5cyA+PSAwKQorICAgIHsKKwlmb3IgKDs7KQorCXsKKwkgICAgeWxlYXAgPSBpc2xlYXAoeSk7CisJICAgIGlmIChkYXlzIDwgeWVhcl9sZW5ndGhzW3lsZWFwXSkKKwkJYnJlYWs7CisJICAgIHkrKzsKKwkgICAgZGF5cyAtPSB5ZWFyX2xlbmd0aHNbeWxlYXBdOworCX0KKyAgICB9CisgICAgZWxzZQorICAgIHsKKwlkbworCXsKKwkgICAgLS15OworCSAgICB5bGVhcCA9IGlzbGVhcCh5KTsKKwkgICAgZGF5cyArPSB5ZWFyX2xlbmd0aHNbeWxlYXBdOworCX0gd2hpbGUgKGRheXMgPCAwKTsKKyAgICB9CisKKyAgICByZXMtPnRtX3llYXIgPSB5IC0gWUVBUl9CQVNFOworICAgIHJlcy0+dG1feWRheSA9IGRheXM7CisgICAgaXAgPSBtb25fbGVuZ3Roc1t5bGVhcF07CisgICAgZm9yIChyZXMtPnRtX21vbiA9IDA7IGRheXMgPj0gaXBbcmVzLT50bV9tb25dOyArK3Jlcy0+dG1fbW9uKQorCWRheXMgLT0gaXBbcmVzLT50bV9tb25dOworICAgIHJlcy0+dG1fbWRheSA9IGRheXMgKyAxOworCisgICAgLyogc2V0IGRheWxpZ2h0IHNhdmluZyB0aW1lIGZsYWcgKi8KKyAgICByZXMtPnRtX2lzZHN0ID0gLTE7CisKKyAgICByZXR1cm4gKHJlcyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgY2hhciAqCitfREVGVU4gKGN0aW1lX3IsICh0aW1fcCwgcmVzdWx0KSwKKwlfQ09OU1QgdGltZV90ICogdGltX3AgX0FORAorCWNoYXIgKiByZXN1bHQpCisKK3sKKyAgICBzdHJ1Y3QgdG0gdG07CisgICAgcmV0dXJuIGFzY3RpbWVfciAobG9jYWx0aW1lX3IgKHRpbV9wLCAmdG0pLCByZXN1bHQpOworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9saW51eC90eXBlcy5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2xpbnV4L3R5cGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY0ODA4ZgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9saW51eC90eXBlcy5oCkBAIC0wLDAgKzEsMTMwIEBACisjaWZuZGVmIF9MSU5VWF9UWVBFU19ICisjZGVmaW5lIF9MSU5VWF9UWVBFU19ICisKKyNpZmRlZglfX0tFUk5FTF9fCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CisjZW5kaWYKKworI2luY2x1ZGUgPGxpbnV4L3Bvc2l4X3R5cGVzLmg+CisjaW5jbHVkZSA8YXNtL3R5cGVzLmg+CisKKyNpZm5kZWYgX19LRVJORUxfU1RSSUNUX05BTUVTCisKK3R5cGVkZWYgX19rZXJuZWxfZmRfc2V0CQlmZF9zZXQ7Cit0eXBlZGVmIF9fa2VybmVsX2Rldl90CQlkZXZfdDsKK3R5cGVkZWYgX19rZXJuZWxfaW5vX3QJCWlub190OwordHlwZWRlZiBfX2tlcm5lbF9tb2RlX3QJCW1vZGVfdDsKK3R5cGVkZWYgX19rZXJuZWxfbmxpbmtfdAlubGlua190OwordHlwZWRlZiBfX2tlcm5lbF9vZmZfdAkJb2ZmX3Q7Cit0eXBlZGVmIF9fa2VybmVsX3BpZF90CQlwaWRfdDsKK3R5cGVkZWYgX19rZXJuZWxfZGFkZHJfdAlkYWRkcl90OwordHlwZWRlZiBfX2tlcm5lbF9rZXlfdAkJa2V5X3Q7Cit0eXBlZGVmIF9fa2VybmVsX3N1c2Vjb25kc190CXN1c2Vjb25kc190OworCisjaWZkZWYgX19LRVJORUxfXwordHlwZWRlZiBfX2tlcm5lbF91aWQzMl90CXVpZF90OwordHlwZWRlZiBfX2tlcm5lbF9naWQzMl90CWdpZF90OwordHlwZWRlZiBfX2tlcm5lbF91aWQxNl90ICAgICAgICB1aWQxNl90OwordHlwZWRlZiBfX2tlcm5lbF9naWQxNl90ICAgICAgICBnaWQxNl90OworCisjaWZkZWYgQ09ORklHX1VJRDE2CisvKiBUaGlzIGlzIGRlZmluZWQgYnkgaW5jbHVkZS9hc20te2FyY2h9L3Bvc2l4X3R5cGVzLmggKi8KK3R5cGVkZWYgX19rZXJuZWxfb2xkX3VpZF90CW9sZF91aWRfdDsKK3R5cGVkZWYgX19rZXJuZWxfb2xkX2dpZF90CW9sZF9naWRfdDsKKyNlbmRpZiAvKiBDT05GSUdfVUlEMTYgKi8KKworLyogbGliYzUgaW5jbHVkZXMgdGhpcyBmaWxlIHRvIGRlZmluZSB1aWRfdCwgdGh1cyB1aWRfdCBjYW4gbmV2ZXIgY2hhbmdlCisgKiB3aGVuIGl0IGlzIGluY2x1ZGVkIGJ5IG5vbi1rZXJuZWwgY29kZQorICovCisjZWxzZQordHlwZWRlZiBfX2tlcm5lbF91aWRfdAkJdWlkX3Q7Cit0eXBlZGVmIF9fa2VybmVsX2dpZF90CQlnaWRfdDsKKyNlbmRpZiAvKiBfX0tFUk5FTF9fICovCisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAhZGVmaW5lZChfX1NUUklDVF9BTlNJX18pCit0eXBlZGVmIF9fa2VybmVsX2xvZmZfdAkJbG9mZl90OworI2VuZGlmCisKKy8qCisgKiBUaGUgZm9sbG93aW5nIHR5cGVkZWZzIGFyZSBhbHNvIHByb3RlY3RlZCBieSBpbmRpdmlkdWFsIGlmZGVmcyBmb3IKKyAqIGhpc3RvcmljYWwgcmVhc29uczoKKyAqLworI2lmbmRlZiBfU0laRV9UCisjZGVmaW5lIF9TSVpFX1QKK3R5cGVkZWYgX19rZXJuZWxfc2l6ZV90CQlzaXplX3Q7CisjZW5kaWYKKworI2lmbmRlZiBfU1NJWkVfVAorI2RlZmluZSBfU1NJWkVfVAordHlwZWRlZiBfX2tlcm5lbF9zc2l6ZV90CXNzaXplX3Q7CisjZW5kaWYKKworI2lmbmRlZiBfUFRSRElGRl9UCisjZGVmaW5lIF9QVFJESUZGX1QKK3R5cGVkZWYgX19rZXJuZWxfcHRyZGlmZl90CXB0cmRpZmZfdDsKKyNlbmRpZgorCisjaWZuZGVmIF9USU1FX1QKKyNkZWZpbmUgX1RJTUVfVAordHlwZWRlZiBfX2tlcm5lbF90aW1lX3QJCXRpbWVfdDsKKyNlbmRpZgorCisjaWZuZGVmIF9DTE9DS19UCisjZGVmaW5lIF9DTE9DS19UCit0eXBlZGVmIF9fa2VybmVsX2Nsb2NrX3QJY2xvY2tfdDsKKyNlbmRpZgorCisjaWZuZGVmIF9DQUREUl9UCisjZGVmaW5lIF9DQUREUl9UCit0eXBlZGVmIF9fa2VybmVsX2NhZGRyX3QJY2FkZHJfdDsKKyNlbmRpZgorCisvKiBic2QgKi8KK3R5cGVkZWYgdW5zaWduZWQgY2hhcgkJdV9jaGFyOwordHlwZWRlZiB1bnNpZ25lZCBzaG9ydAkJdV9zaG9ydDsKK3R5cGVkZWYgdW5zaWduZWQgaW50CQl1X2ludDsKK3R5cGVkZWYgdW5zaWduZWQgbG9uZwkJdV9sb25nOworCisvKiBzeXN2ICovCit0eXBlZGVmIHVuc2lnbmVkIGNoYXIJCXVuY2hhcjsKK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQJCXVzaG9ydDsKK3R5cGVkZWYgdW5zaWduZWQgaW50CQl1aW50OwordHlwZWRlZiB1bnNpZ25lZCBsb25nCQl1bG9uZzsKKworI2lmbmRlZiBfX0JJVF9UWVBFU19ERUZJTkVEX18KKyNkZWZpbmUgX19CSVRfVFlQRVNfREVGSU5FRF9fCisKK3R5cGVkZWYJCV9fdTgJCXVfaW50OF90OwordHlwZWRlZgkJX19zOAkJaW50OF90OwordHlwZWRlZgkJX191MTYJCXVfaW50MTZfdDsKK3R5cGVkZWYJCV9fczE2CQlpbnQxNl90OwordHlwZWRlZgkJX191MzIJCXVfaW50MzJfdDsKK3R5cGVkZWYJCV9fczMyCQlpbnQzMl90OworCisjZW5kaWYgLyogIShfX0JJVF9UWVBFU19ERUZJTkVEX18pICovCisKK3R5cGVkZWYJCV9fdTgJCXVpbnQ4X3Q7Cit0eXBlZGVmCQlfX3UxNgkJdWludDE2X3Q7Cit0eXBlZGVmCQlfX3UzMgkJdWludDMyX3Q7CisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAhZGVmaW5lZChfX1NUUklDVF9BTlNJX18pCit0eXBlZGVmCQlfX3U2NAkJdWludDY0X3Q7Cit0eXBlZGVmCQlfX3U2NAkJdV9pbnQ2NF90OwordHlwZWRlZgkJX19zNjQJCWludDY0X3Q7CisjZW5kaWYKKworI2VuZGlmIC8qIF9fS0VSTkVMX1NUUklDVF9OQU1FUyAqLworCisvKgorICogQmVsb3cgYXJlIHRydWx5IExpbnV4LXNwZWNpZmljIHR5cGVzIHRoYXQgc2hvdWxkIG5ldmVyIGNvbGxpZGUgd2l0aAorICogYW55IGFwcGxpY2F0aW9uL2xpYnJhcnkgdGhhdCB3YW50cyBsaW51eC90eXBlcy5oLgorICovCisKK3N0cnVjdCB1c3RhdCB7CisJX19rZXJuZWxfZGFkZHJfdAlmX3RmcmVlOworCV9fa2VybmVsX2lub190CQlmX3Rpbm9kZTsKKwljaGFyCQkJZl9mbmFtZVs2XTsKKwljaGFyCQkJZl9mcGFja1s2XTsKK307CisKKyNlbmRpZiAvKiBfTElOVVhfVFlQRVNfSCAqLwpkaWZmIC0tZ2l0IGEvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2xvYWRfbW9kZS5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL2xvYWRfbW9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlOGUxMTMKLS0tIC9kZXYvbnVsbAorKysgYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvbG9hZF9tb2RlLmgKQEAgLTAsMCArMSBAQAorI2RlZmluZSAJQ0ZHX1RMT0FEICAgICAgMQpkaWZmIC0tZ2l0IGEvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL21hbGxvYy5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL21hbGxvYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3MTU0YjAKLS0tIC9kZXYvbnVsbAorKysgYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvbWFsbG9jLmgKQEAgLTAsMCArMSw5NDIgQEAKKy8qCisgIEEgdmVyc2lvbiBvZiBtYWxsb2MvZnJlZS9yZWFsbG9jIHdyaXR0ZW4gYnkgRG91ZyBMZWEgYW5kIHJlbGVhc2VkIHRvIHRoZQorICBwdWJsaWMgZG9tYWluLiAgU2VuZCBxdWVzdGlvbnMvY29tbWVudHMvY29tcGxhaW50cy9wZXJmb3JtYW5jZSBkYXRhCisgIHRvIGRsQGNzLm9zd2Vnby5lZHUKKworKiBWRVJTSU9OIDIuNi42ICBTdW4gTWFyICA1IDE5OjEwOjAzIDIwMDAgIERvdWcgTGVhICAoZGwgYXQgZ2VlKQorCisgICBOb3RlOiBUaGVyZSBtYXkgYmUgYW4gdXBkYXRlZCB2ZXJzaW9uIG9mIHRoaXMgbWFsbG9jIG9idGFpbmFibGUgYXQKKwkgICBmdHA6Ly9nLm9zd2Vnby5lZHUvcHViL21pc2MvbWFsbG9jLmMKKwkgQ2hlY2sgYmVmb3JlIGluc3RhbGxpbmchCisKKyogV2h5IHVzZSB0aGlzIG1hbGxvYz8KKworICBUaGlzIGlzIG5vdCB0aGUgZmFzdGVzdCwgbW9zdCBzcGFjZS1jb25zZXJ2aW5nLCBtb3N0IHBvcnRhYmxlLCBvcgorICBtb3N0IHR1bmFibGUgbWFsbG9jIGV2ZXIgd3JpdHRlbi4gSG93ZXZlciBpdCBpcyBhbW9uZyB0aGUgZmFzdGVzdAorICB3aGlsZSBhbHNvIGJlaW5nIGFtb25nIHRoZSBtb3N0IHNwYWNlLWNvbnNlcnZpbmcsIHBvcnRhYmxlIGFuZCB0dW5hYmxlLgorICBDb25zaXN0ZW50IGJhbGFuY2UgYWNyb3NzIHRoZXNlIGZhY3RvcnMgcmVzdWx0cyBpbiBhIGdvb2QgZ2VuZXJhbC1wdXJwb3NlCisgIGFsbG9jYXRvci4gRm9yIGEgaGlnaC1sZXZlbCBkZXNjcmlwdGlvbiwgc2VlCisgICAgIGh0dHA6Ly9nLm9zd2Vnby5lZHUvZGwvaHRtbC9tYWxsb2MuaHRtbAorCisqIFN5bm9wc2lzIG9mIHB1YmxpYyByb3V0aW5lcworCisgIChNdWNoIGZ1bGxlciBkZXNjcmlwdGlvbnMgYXJlIGNvbnRhaW5lZCBpbiB0aGUgcHJvZ3JhbSBkb2N1bWVudGF0aW9uIGJlbG93LikKKworICBtYWxsb2Moc2l6ZV90IG4pOworICAgICBSZXR1cm4gYSBwb2ludGVyIHRvIGEgbmV3bHkgYWxsb2NhdGVkIGNodW5rIG9mIGF0IGxlYXN0IG4gYnl0ZXMsIG9yIG51bGwKKyAgICAgaWYgbm8gc3BhY2UgaXMgYXZhaWxhYmxlLgorICBmcmVlKFZvaWRfdCogcCk7CisgICAgIFJlbGVhc2UgdGhlIGNodW5rIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5IHAsIG9yIG5vIGVmZmVjdCBpZiBwIGlzIG51bGwuCisgIHJlYWxsb2MoVm9pZF90KiBwLCBzaXplX3Qgbik7CisgICAgIFJldHVybiBhIHBvaW50ZXIgdG8gYSBjaHVuayBvZiBzaXplIG4gdGhhdCBjb250YWlucyB0aGUgc2FtZSBkYXRhCisgICAgIGFzIGRvZXMgY2h1bmsgcCB1cCB0byB0aGUgbWluaW11bSBvZiAobiwgcCdzIHNpemUpIGJ5dGVzLCBvciBudWxsCisgICAgIGlmIG5vIHNwYWNlIGlzIGF2YWlsYWJsZS4gVGhlIHJldHVybmVkIHBvaW50ZXIgbWF5IG9yIG1heSBub3QgYmUKKyAgICAgdGhlIHNhbWUgYXMgcC4gSWYgcCBpcyBudWxsLCBlcXVpdmFsZW50IHRvIG1hbGxvYy4gIFVubGVzcyB0aGUKKyAgICAgI2RlZmluZSBSRUFMTE9DX1pFUk9fQllURVNfRlJFRVMgYmVsb3cgaXMgc2V0LCByZWFsbG9jIHdpdGggYQorICAgICBzaXplIGFyZ3VtZW50IG9mIHplcm8gKHJlKWFsbG9jYXRlcyBhIG1pbmltdW0tc2l6ZWQgY2h1bmsuCisgIG1lbWFsaWduKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBuKTsKKyAgICAgUmV0dXJuIGEgcG9pbnRlciB0byBhIG5ld2x5IGFsbG9jYXRlZCBjaHVuayBvZiBuIGJ5dGVzLCBhbGlnbmVkCisgICAgIGluIGFjY29yZCB3aXRoIHRoZSBhbGlnbm1lbnQgYXJndW1lbnQsIHdoaWNoIG11c3QgYmUgYSBwb3dlciBvZgorICAgICB0d28uCisgIHZhbGxvYyhzaXplX3Qgbik7CisgICAgIEVxdWl2YWxlbnQgdG8gbWVtYWxpZ24ocGFnZXNpemUsIG4pLCB3aGVyZSBwYWdlc2l6ZSBpcyB0aGUgcGFnZQorICAgICBzaXplIG9mIHRoZSBzeXN0ZW0gKG9yIGFzIG5lYXIgdG8gdGhpcyBhcyBjYW4gYmUgZmlndXJlZCBvdXQgZnJvbQorICAgICBhbGwgdGhlIGluY2x1ZGVzL2RlZmluZXMgYmVsb3cuKQorICBwdmFsbG9jKHNpemVfdCBuKTsKKyAgICAgRXF1aXZhbGVudCB0byB2YWxsb2MobWluaW11bS1wYWdlLXRoYXQtaG9sZHMobikpLCB0aGF0IGlzLAorICAgICByb3VuZCB1cCBuIHRvIG5lYXJlc3QgcGFnZXNpemUuCisgIGNhbGxvYyhzaXplX3QgdW5pdCwgc2l6ZV90IHF1YW50aXR5KTsKKyAgICAgUmV0dXJucyBhIHBvaW50ZXIgdG8gcXVhbnRpdHkgKiB1bml0IGJ5dGVzLCB3aXRoIGFsbCBsb2NhdGlvbnMKKyAgICAgc2V0IHRvIHplcm8uCisgIGNmcmVlKFZvaWRfdCogcCk7CisgICAgIEVxdWl2YWxlbnQgdG8gZnJlZShwKS4KKyAgbWFsbG9jX3RyaW0oc2l6ZV90IHBhZCk7CisgICAgIFJlbGVhc2UgYWxsIGJ1dCBwYWQgYnl0ZXMgb2YgZnJlZWQgdG9wLW1vc3QgbWVtb3J5IGJhY2sKKyAgICAgdG8gdGhlIHN5c3RlbS4gUmV0dXJuIDEgaWYgc3VjY2Vzc2Z1bCwgZWxzZSAwLgorICBtYWxsb2NfdXNhYmxlX3NpemUoVm9pZF90KiBwKTsKKyAgICAgUmVwb3J0IHRoZSBudW1iZXIgdXNhYmxlIGFsbG9jYXRlZCBieXRlcyBhc3NvY2lhdGVkIHdpdGggYWxsb2NhdGVkCisgICAgIGNodW5rIHAuIFRoaXMgbWF5IG9yIG1heSBub3QgcmVwb3J0IG1vcmUgYnl0ZXMgdGhhbiB3ZXJlIHJlcXVlc3RlZCwKKyAgICAgZHVlIHRvIGFsaWdubWVudCBhbmQgbWluaW11bSBzaXplIGNvbnN0cmFpbnRzLgorICBtYWxsb2Nfc3RhdHMoKTsKKyAgICAgUHJpbnRzIGJyaWVmIHN1bW1hcnkgc3RhdGlzdGljcyBvbiBzdGRlcnIuCisgIG1hbGxpbmZvKCkKKyAgICAgUmV0dXJucyAoYnkgY29weSkgYSBzdHJ1Y3QgY29udGFpbmluZyB2YXJpb3VzIHN1bW1hcnkgc3RhdGlzdGljcy4KKyAgbWFsbG9wdChpbnQgcGFyYW1ldGVyX251bWJlciwgaW50IHBhcmFtZXRlcl92YWx1ZSkKKyAgICAgQ2hhbmdlcyBvbmUgb2YgdGhlIHR1bmFibGUgcGFyYW1ldGVycyBkZXNjcmliZWQgYmVsb3cuIFJldHVybnMKKyAgICAgMSBpZiBzdWNjZXNzZnVsIGluIGNoYW5naW5nIHRoZSBwYXJhbWV0ZXIsIGVsc2UgMC4KKworKiBWaXRhbCBzdGF0aXN0aWNzOgorCisgIEFsaWdubWVudDogICAgICAgICAgICAgICAgICAgICAgICAgICAgOC1ieXRlCisgICAgICAgOCBieXRlIGFsaWdubWVudCBpcyBjdXJyZW50bHkgaGFyZHdpcmVkIGludG8gdGhlIGRlc2lnbi4gIFRoaXMKKyAgICAgICBzZWVtcyB0byBzdWZmaWNlIGZvciBhbGwgY3VycmVudCBtYWNoaW5lcyBhbmQgQyBjb21waWxlcnMuCisKKyAgQXNzdW1lZCBwb2ludGVyIHJlcHJlc2VudGF0aW9uOiAgICAgICA0IG9yIDggYnl0ZXMKKyAgICAgICBDb2RlIGZvciA4LWJ5dGUgcG9pbnRlcnMgaXMgdW50ZXN0ZWQgYnkgbWUgYnV0IGhhcyB3b3JrZWQKKyAgICAgICByZWxpYWJseSBieSBXb2xmcmFtIEdsb2dlciwgd2hvIGNvbnRyaWJ1dGVkIG1vc3Qgb2YgdGhlCisgICAgICAgY2hhbmdlcyBzdXBwb3J0aW5nIHRoaXMuCisKKyAgQXNzdW1lZCBzaXplX3QgIHJlcHJlc2VudGF0aW9uOiAgICAgICA0IG9yIDggYnl0ZXMKKyAgICAgICBOb3RlIHRoYXQgc2l6ZV90IGlzIGFsbG93ZWQgdG8gYmUgNCBieXRlcyBldmVuIGlmIHBvaW50ZXJzIGFyZSA4LgorCisgIE1pbmltdW0gb3ZlcmhlYWQgcGVyIGFsbG9jYXRlZCBjaHVuazogNCBvciA4IGJ5dGVzCisgICAgICAgRWFjaCBtYWxsb2NlZCBjaHVuayBoYXMgYSBoaWRkZW4gb3ZlcmhlYWQgb2YgNCBieXRlcyBob2xkaW5nIHNpemUKKyAgICAgICBhbmQgc3RhdHVzIGluZm9ybWF0aW9uLgorCisgIE1pbmltdW0gYWxsb2NhdGVkIHNpemU6IDQtYnl0ZSBwdHJzOiAgMTYgYnl0ZXMgICAgKGluY2x1ZGluZyA0IG92ZXJoZWFkKQorCQkJICA4LWJ5dGUgcHRyczogIDI0LzMyIGJ5dGVzIChpbmNsdWRpbmcsIDQvOCBvdmVyaGVhZCkKKworICAgICAgIFdoZW4gYSBjaHVuayBpcyBmcmVlZCwgMTIgKGZvciA0Ynl0ZSBwdHJzKSBvciAyMCAoZm9yIDggYnl0ZQorICAgICAgIHB0cnMgYnV0IDQgYnl0ZSBzaXplKSBvciAyNCAoZm9yIDgvOCkgYWRkaXRpb25hbCBieXRlcyBhcmUKKyAgICAgICBuZWVkZWQ7IDQgKDgpIGZvciBhIHRyYWlsaW5nIHNpemUgZmllbGQKKyAgICAgICBhbmQgOCAoMTYpIGJ5dGVzIGZvciBmcmVlIGxpc3QgcG9pbnRlcnMuIFRodXMsIHRoZSBtaW5pbXVtCisgICAgICAgYWxsb2NhdGFibGUgc2l6ZSBpcyAxNi8yNC8zMiBieXRlcy4KKworICAgICAgIEV2ZW4gYSByZXF1ZXN0IGZvciB6ZXJvIGJ5dGVzIChpLmUuLCBtYWxsb2MoMCkpIHJldHVybnMgYQorICAgICAgIHBvaW50ZXIgdG8gc29tZXRoaW5nIG9mIHRoZSBtaW5pbXVtIGFsbG9jYXRhYmxlIHNpemUuCisKKyAgTWF4aW11bSBhbGxvY2F0ZWQgc2l6ZTogNC1ieXRlIHNpemVfdDogMl4zMSAtICA4IGJ5dGVzCisJCQkgIDgtYnl0ZSBzaXplX3Q6IDJeNjMgLSAxNiBieXRlcworCisgICAgICAgSXQgaXMgYXNzdW1lZCB0aGF0IChwb3NzaWJseSBzaWduZWQpIHNpemVfdCBiaXQgdmFsdWVzIHN1ZmZpY2UgdG8KKyAgICAgICByZXByZXNlbnQgY2h1bmsgc2l6ZXMuIGBQb3NzaWJseSBzaWduZWQnIGlzIGR1ZSB0byB0aGUgZmFjdAorICAgICAgIHRoYXQgYHNpemVfdCcgbWF5IGJlIGRlZmluZWQgb24gYSBzeXN0ZW0gYXMgZWl0aGVyIGEgc2lnbmVkIG9yCisgICAgICAgYW4gdW5zaWduZWQgdHlwZS4gVG8gYmUgY29uc2VydmF0aXZlLCB2YWx1ZXMgdGhhdCB3b3VsZCBhcHBlYXIKKyAgICAgICBhcyBuZWdhdGl2ZSBudW1iZXJzIGFyZSBhdm9pZGVkLgorICAgICAgIFJlcXVlc3RzIGZvciBzaXplcyB3aXRoIGEgbmVnYXRpdmUgc2lnbiBiaXQgd2hlbiB0aGUgcmVxdWVzdAorICAgICAgIHNpemUgaXMgdHJlYWRlZCBhcyBhIGxvbmcgd2lsbCByZXR1cm4gbnVsbC4KKworICBNYXhpbXVtIG92ZXJoZWFkIHdhc3RhZ2UgcGVyIGFsbG9jYXRlZCBjaHVuazogbm9ybWFsbHkgMTUgYnl0ZXMKKworICAgICAgIEFsaWdubm1lbnQgZGVtYW5kcywgcGx1cyB0aGUgbWluaW11bSBhbGxvY2F0YWJsZSBzaXplIHJlc3RyaWN0aW9uCisgICAgICAgbWFrZSB0aGUgbm9ybWFsIHdvcnN0LWNhc2Ugd2FzdGFnZSAxNSBieXRlcyAoaS5lLiwgdXAgdG8gMTUKKyAgICAgICBtb3JlIGJ5dGVzIHdpbGwgYmUgYWxsb2NhdGVkIHRoYW4gd2VyZSByZXF1ZXN0ZWQgaW4gbWFsbG9jKSwgd2l0aAorICAgICAgIHR3byBleGNlcHRpb25zOgorCSAxLiBCZWNhdXNlIHJlcXVlc3RzIGZvciB6ZXJvIGJ5dGVzIGFsbG9jYXRlIG5vbi16ZXJvIHNwYWNlLAorCSAgICB0aGUgd29yc3QgY2FzZSB3YXN0YWdlIGZvciBhIHJlcXVlc3Qgb2YgemVybyBieXRlcyBpcyAyNCBieXRlcy4KKwkgMi4gRm9yIHJlcXVlc3RzID49IG1tYXBfdGhyZXNob2xkIHRoYXQgYXJlIHNlcnZpY2VkIHZpYQorCSAgICBtbWFwKCksIHRoZSB3b3JzdCBjYXNlIHdhc3RhZ2UgaXMgOCBieXRlcyBwbHVzIHRoZSByZW1haW5kZXIKKwkgICAgZnJvbSBhIHN5c3RlbSBwYWdlICh0aGUgbWluaW1hbCBtbWFwIHVuaXQpOyB0eXBpY2FsbHkgNDA5NiBieXRlcy4KKworKiBMaW1pdGF0aW9ucworCisgICAgSGVyZSBhcmUgc29tZSBmZWF0dXJlcyB0aGF0IGFyZSBOT1QgY3VycmVudGx5IHN1cHBvcnRlZAorCisgICAgKiBObyB1c2VyLWRlZmluYWJsZSBob29rcyBmb3IgY2FsbGJhY2tzIGFuZCB0aGUgbGlrZS4KKyAgICAqIE5vIGF1dG9tYXRlZCBtZWNoYW5pc20gZm9yIGZ1bGx5IGNoZWNraW5nIHRoYXQgYWxsIGFjY2Vzc2VzCisgICAgICB0byBtYWxsb2NlZCBtZW1vcnkgc3RheSB3aXRoaW4gdGhlaXIgYm91bmRzLgorICAgICogTm8gc3VwcG9ydCBmb3IgY29tcGFjdGlvbi4KKworKiBTeW5vcHNpcyBvZiBjb21waWxlLXRpbWUgb3B0aW9uczoKKworICAgIFBlb3BsZSBoYXZlIHJlcG9ydGVkIHVzaW5nIHByZXZpb3VzIHZlcnNpb25zIG9mIHRoaXMgbWFsbG9jIG9uIGFsbAorICAgIHZlcnNpb25zIG9mIFVuaXgsIHNvbWV0aW1lcyBieSB0d2Vha2luZyBzb21lIG9mIHRoZSBkZWZpbmVzCisgICAgYmVsb3cuIEl0IGhhcyBiZWVuIHRlc3RlZCBtb3N0IGV4dGVuc2l2ZWx5IG9uIFNvbGFyaXMgYW5kCisgICAgTGludXguIEl0IGlzIGFsc28gcmVwb3J0ZWQgdG8gd29yayBvbiBXSU4zMiBwbGF0Zm9ybXMuCisgICAgUGVvcGxlIGhhdmUgYWxzbyByZXBvcnRlZCBhZGFwdGluZyB0aGlzIG1hbGxvYyBmb3IgdXNlIGluCisgICAgc3RhbmQtYWxvbmUgZW1iZWRkZWQgc3lzdGVtcy4KKworICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBpbiBzdHJhaWdodCwgaGFuZC10dW5lZCBBTlNJIEMuICBBbW9uZyBvdGhlcgorICAgIGNvbnNlcXVlbmNlcywgaXQgdXNlcyBhIGxvdCBvZiBtYWNyb3MuICBCZWNhdXNlIG9mIHRoaXMsIHRvIGJlIGF0CisgICAgYWxsIHVzYWJsZSwgdGhpcyBjb2RlIHNob3VsZCBiZSBjb21waWxlZCB1c2luZyBhbiBvcHRpbWl6aW5nIGNvbXBpbGVyCisgICAgKGZvciBleGFtcGxlIGdjYyAtTzIpIHRoYXQgY2FuIHNpbXBsaWZ5IGV4cHJlc3Npb25zIGFuZCBjb250cm9sCisgICAgcGF0aHMuCisKKyAgX19TVERfQyAgICAgICAgICAgICAgICAgIChkZWZhdWx0OiBkZXJpdmVkIGZyb20gQyBjb21waWxlciBkZWZpbmVzKQorICAgICBOb256ZXJvIGlmIHVzaW5nIEFOU0ktc3RhbmRhcmQgQyBjb21waWxlciwgYSBDKysgY29tcGlsZXIsIG9yCisgICAgIGEgQyBjb21waWxlciBzdWZmaWNpZW50bHkgY2xvc2UgdG8gQU5TSSB0byBnZXQgYXdheSB3aXRoIGl0LgorICBERUJVRyAgICAgICAgICAgICAgICAgICAgKGRlZmF1bHQ6IE5PVCBkZWZpbmVkKQorICAgICBEZWZpbmUgdG8gZW5hYmxlIGRlYnVnZ2luZy4gQWRkcyBmYWlybHkgZXh0ZW5zaXZlIGFzc2VydGlvbi1iYXNlZAorICAgICBjaGVja2luZyB0byBoZWxwIHRyYWNrIGRvd24gbWVtb3J5IGVycm9ycywgYnV0IG5vdGljZWFibHkgc2xvd3MgZG93bgorICAgICBleGVjdXRpb24uCisgIFJFQUxMT0NfWkVST19CWVRFU19GUkVFUyAoZGVmYXVsdDogTk9UIGRlZmluZWQpCisgICAgIERlZmluZSB0aGlzIGlmIHlvdSB0aGluayB0aGF0IHJlYWxsb2MocCwgMCkgc2hvdWxkIGJlIGVxdWl2YWxlbnQKKyAgICAgdG8gZnJlZShwKS4gT3RoZXJ3aXNlLCBzaW5jZSBtYWxsb2MgcmV0dXJucyBhIHVuaXF1ZSBwb2ludGVyIGZvcgorICAgICBtYWxsb2MoMCksIHNvIGRvZXMgcmVhbGxvYyhwLCAwKS4KKyAgSEFWRV9NRU1DUFkgICAgICAgICAgICAgICAoZGVmYXVsdDogZGVmaW5lZCkKKyAgICAgRGVmaW5lIGlmIHlvdSBhcmUgbm90IG90aGVyd2lzZSB1c2luZyBBTlNJIFNURCBDLCBidXQgc3RpbGwKKyAgICAgaGF2ZSBtZW1jcHkgYW5kIG1lbXNldCBpbiB5b3VyIEMgbGlicmFyeSBhbmQgd2FudCB0byB1c2UgdGhlbS4KKyAgICAgT3RoZXJ3aXNlLCBzaW1wbGUgaW50ZXJuYWwgdmVyc2lvbnMgYXJlIHN1cHBsaWVkLgorICBVU0VfTUVNQ1BZICAgICAgICAgICAgICAgKGRlZmF1bHQ6IDEgaWYgSEFWRV9NRU1DUFkgaXMgZGVmaW5lZCwgMCBvdGhlcndpc2UpCisgICAgIERlZmluZSBhcyAxIGlmIHlvdSB3YW50IHRoZSBDIGxpYnJhcnkgdmVyc2lvbnMgb2YgbWVtc2V0IGFuZAorICAgICBtZW1jcHkgY2FsbGVkIGluIHJlYWxsb2MgYW5kIGNhbGxvYyAob3RoZXJ3aXNlIG1hY3JvIHZlcnNpb25zIGFyZSB1c2VkKS4KKyAgICAgQXQgbGVhc3Qgb24gc29tZSBwbGF0Zm9ybXMsIHRoZSBzaW1wbGUgbWFjcm8gdmVyc2lvbnMgdXN1YWxseQorICAgICBvdXRwZXJmb3JtIGxpYmMgdmVyc2lvbnMuCisgIEhBVkVfTU1BUCAgICAgICAgICAgICAgICAgKGRlZmF1bHQ6IGRlZmluZWQgYXMgMSkKKyAgICAgRGVmaW5lIHRvIG5vbi16ZXJvIHRvIG9wdGlvbmFsbHkgbWFrZSBtYWxsb2MoKSB1c2UgbW1hcCgpIHRvCisgICAgIGFsbG9jYXRlIHZlcnkgbGFyZ2UgYmxvY2tzLgorICBIQVZFX01SRU1BUCAgICAgICAgICAgICAgICAgKGRlZmF1bHQ6IGRlZmluZWQgYXMgMCB1bmxlc3MgTGludXggbGliYyBzZXQpCisgICAgIERlZmluZSB0byBub24temVybyB0byBvcHRpb25hbGx5IG1ha2UgcmVhbGxvYygpIHVzZSBtcmVtYXAoKSB0bworICAgICByZWFsbG9jYXRlIHZlcnkgbGFyZ2UgYmxvY2tzLgorICBtYWxsb2NfZ2V0cGFnZXNpemUgICAgICAgIChkZWZhdWx0OiBkZXJpdmVkIGZyb20gc3lzdGVtICNpbmNsdWRlcykKKyAgICAgRWl0aGVyIGEgY29uc3RhbnQgb3Igcm91dGluZSBjYWxsIHJldHVybmluZyB0aGUgc3lzdGVtIHBhZ2Ugc2l6ZS4KKyAgSEFWRV9VU1JfSU5DTFVERV9NQUxMT0NfSCAoZGVmYXVsdDogTk9UIGRlZmluZWQpCisgICAgIE9wdGlvbmFsbHkgZGVmaW5lIGlmIHlvdSBhcmUgb24gYSBzeXN0ZW0gd2l0aCBhIC91c3IvaW5jbHVkZS9tYWxsb2MuaAorICAgICB0aGF0IGRlY2xhcmVzIHN0cnVjdCBtYWxsaW5mby4gSXQgaXMgbm90IGF0IGFsbCBuZWNlc3NhcnkgdG8KKyAgICAgZGVmaW5lIHRoaXMgZXZlbiBpZiB5b3UgZG8sIGJ1dCB3aWxsIGVuc3VyZSBjb25zaXN0ZW5jeS4KKyAgSU5URVJOQUxfU0laRV9UICAgICAgICAgICAoZGVmYXVsdDogc2l6ZV90KQorICAgICBEZWZpbmUgdG8gYSAzMi1iaXQgdHlwZSAocHJvYmFibHkgYHVuc2lnbmVkIGludCcpIGlmIHlvdSBhcmUgb24gYQorICAgICA2NC1iaXQgbWFjaGluZSwgeWV0IGRvIG5vdCB3YW50IG9yIG5lZWQgdG8gYWxsb3cgbWFsbG9jIHJlcXVlc3RzIG9mCisgICAgIGdyZWF0ZXIgdGhhbiAyXjMxIHRvIGJlIGhhbmRsZWQuIFRoaXMgc2F2ZXMgc3BhY2UsIGVzcGVjaWFsbHkgZm9yCisgICAgIHZlcnkgc21hbGwgY2h1bmtzLgorICBJTlRFUk5BTF9MSU5VWF9DX0xJQiAgICAgIChkZWZhdWx0OiBOT1QgZGVmaW5lZCkKKyAgICAgRGVmaW5lZCBvbmx5IHdoZW4gY29tcGlsZWQgYXMgcGFydCBvZiBMaW51eCBsaWJjLgorICAgICBBbHNvIG5vdGUgdGhhdCB0aGVyZSBpcyBzb21lIG9kZCBpbnRlcm5hbCBuYW1lLW1hbmdsaW5nIHZpYSBkZWZpbmVzCisgICAgIChmb3IgZXhhbXBsZSwgaW50ZXJuYWxseSwgYG1hbGxvYycgaXMgbmFtZWQgYG1BTExPYycpIG5lZWRlZAorICAgICB3aGVuIGNvbXBpbGluZyBpbiB0aGlzIGNhc2UuIFRoZXNlIGxvb2sgZnVubnkgYnV0IGRvbid0IG90aGVyd2lzZQorICAgICBhZmZlY3QgYW55dGhpbmcuCisgIFdJTjMyICAgICAgICAgICAgICAgICAgICAgKGRlZmF1bHQ6IHVuZGVmaW5lZCkKKyAgICAgRGVmaW5lIHRoaXMgb24gTVMgd2luICg5NSwgbnQpIHBsYXRmb3JtcyB0byBjb21waWxlIGluIHNicmsgZW11bGF0aW9uLgorICBMQUNLU19VTklTVERfSCAgICAgICAgICAgIChkZWZhdWx0OiB1bmRlZmluZWQgaWYgbm90IFdJTjMyKQorICAgICBEZWZpbmUgdGhpcyBpZiB5b3VyIHN5c3RlbSBkb2VzIG5vdCBoYXZlIGEgPHVuaXN0ZC5oPi4KKyAgTEFDS1NfU1lTX1BBUkFNX0ggICAgICAgICAoZGVmYXVsdDogdW5kZWZpbmVkIGlmIG5vdCBXSU4zMikKKyAgICAgRGVmaW5lIHRoaXMgaWYgeW91ciBzeXN0ZW0gZG9lcyBub3QgaGF2ZSBhIDxzeXMvcGFyYW0uaD4uCisgIE1PUkVDT1JFICAgICAgICAgICAgICAgICAgKGRlZmF1bHQ6IHNicmspCisgICAgIFRoZSBuYW1lIG9mIHRoZSByb3V0aW5lIHRvIGNhbGwgdG8gb2J0YWluIG1vcmUgbWVtb3J5IGZyb20gdGhlIHN5c3RlbS4KKyAgTU9SRUNPUkVfRkFJTFVSRSAgICAgICAgICAoZGVmYXVsdDogLTEpCisgICAgIFRoZSB2YWx1ZSByZXR1cm5lZCB1cG9uIGZhaWx1cmUgb2YgTU9SRUNPUkUuCisgIE1PUkVDT1JFX0NMRUFSUyAgICAgICAgICAgKGRlZmF1bHQgMSkKKyAgICAgVHJ1ZSAoMSkgaWYgdGhlIHJvdXRpbmUgbWFwcGVkIHRvIE1PUkVDT1JFIHplcm9lcyBvdXQgbWVtb3J5ICh3aGljaAorICAgICBob2xkcyBmb3Igc2JyaykuCisgIERFRkFVTFRfVFJJTV9USFJFU0hPTEQKKyAgREVGQVVMVF9UT1BfUEFECisgIERFRkFVTFRfTU1BUF9USFJFU0hPTEQKKyAgREVGQVVMVF9NTUFQX01BWAorICAgICBEZWZhdWx0IHZhbHVlcyBvZiB0dW5hYmxlIHBhcmFtZXRlcnMgKGRlc2NyaWJlZCBpbiBkZXRhaWwgYmVsb3cpCisgICAgIGNvbnRyb2xsaW5nIGludGVyYWN0aW9uIHdpdGggaG9zdCBzeXN0ZW0gcm91dGluZXMgKHNicmssIG1tYXAsIGV0YykuCisgICAgIFRoZXNlIHZhbHVlcyBtYXkgYWxzbyBiZSBjaGFuZ2VkIGR5bmFtaWNhbGx5IHZpYSBtYWxsb3B0KCkuIFRoZQorICAgICBwcmVzZXQgZGVmYXVsdHMgYXJlIHRob3NlIHRoYXQgZ2l2ZSBiZXN0IHBlcmZvcm1hbmNlIGZvciB0eXBpY2FsCisgICAgIHByb2dyYW1zL3N5c3RlbXMuCisgIFVTRV9ETF9QUkVGSVggICAgICAgICAgICAgKGRlZmF1bHQ6IHVuZGVmaW5lZCkKKyAgICAgUHJlZml4IGFsbCBwdWJsaWMgcm91dGluZXMgd2l0aCB0aGUgc3RyaW5nICdkbCcuICBVc2VmdWwgdG8KKyAgICAgcXVpY2tseSBhdm9pZCBwcm9jZWR1cmUgZGVjbGFyYXRpb24gY29uZmxpY3RzIGFuZCBsaW5rZXIgc3ltYm9sCisgICAgIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIG1lbW9yeSBhbGxvY2F0aW9uIHJvdXRpbmVzLgorCisKKyovCisKKwwKKworCisvKiBQcmVsaW1pbmFyaWVzICovCisKKyNpZm5kZWYgX19TVERfQworI2lmZGVmIF9fU1REQ19fCisjZGVmaW5lIF9fU1REX0MgICAgIDEKKyNlbHNlCisjaWYgX19jcGx1c3BsdXMKKyNkZWZpbmUgX19TVERfQyAgICAgMQorI2Vsc2UKKyNkZWZpbmUgX19TVERfQyAgICAgMAorI2VuZGlmIC8qX19jcGx1c3BsdXMqLworI2VuZGlmIC8qX19TVERDX18qLworI2VuZGlmIC8qX19TVERfQyovCisKKyNpZm5kZWYgVm9pZF90CisjaWYgKF9fU1REX0MgfHwgZGVmaW5lZChXSU4zMikpCisjZGVmaW5lIFZvaWRfdCAgICAgIHZvaWQKKyNlbHNlCisjZGVmaW5lIFZvaWRfdCAgICAgIGNoYXIKKyNlbmRpZgorI2VuZGlmIC8qVm9pZF90Ki8KKworI2lmIF9fU1REX0MKKyNpbmNsdWRlIDxsaW51eC9zdGRkZWYuaD4JLyogZm9yIHNpemVfdCAqLworI2Vsc2UKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNlbmRpZgkvKiBfX1NURF9DICovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworI2lmIDAJLyogbm90IGZvciBVLUJvb3QgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgkvKiBuZWVkZWQgZm9yIG1hbGxvY19zdGF0cyAqLworI2VuZGlmCisKKworLyoKKyAgQ29tcGlsZS10aW1lIG9wdGlvbnMKKyovCisKKworLyoKKyAgICBEZWJ1Z2dpbmc6CisKKyAgICBCZWNhdXNlIGZyZWVkIGNodW5rcyBtYXkgYmUgb3ZlcndyaXR0ZW4gd2l0aCBsaW5rIGZpZWxkcywgdGhpcworICAgIG1hbGxvYyB3aWxsIG9mdGVuIGRpZSB3aGVuIGZyZWVkIG1lbW9yeSBpcyBvdmVyd3JpdHRlbiBieSB1c2VyCisgICAgcHJvZ3JhbXMuICBUaGlzIGNhbiBiZSB2ZXJ5IGVmZmVjdGl2ZSAoYWxiZWl0IGluIGFuIGFubm95aW5nIHdheSkKKyAgICBpbiBoZWxwaW5nIHRyYWNrIGRvd24gZGFuZ2xpbmcgcG9pbnRlcnMuCisKKyAgICBJZiB5b3UgY29tcGlsZSB3aXRoIC1EREVCVUcsIGEgbnVtYmVyIG9mIGFzc2VydGlvbiBjaGVja3MgYXJlCisgICAgZW5hYmxlZCB0aGF0IHdpbGwgY2F0Y2ggbW9yZSBtZW1vcnkgZXJyb3JzLiBZb3UgcHJvYmFibHkgd29uJ3QgYmUKKyAgICBhYmxlIHRvIG1ha2UgbXVjaCBzZW5zZSBvZiB0aGUgYWN0dWFsIGFzc2VydGlvbiBlcnJvcnMsIGJ1dCB0aGV5CisgICAgc2hvdWxkIGhlbHAgeW91IGxvY2F0ZSBpbmNvcnJlY3RseSBvdmVyd3JpdHRlbiBtZW1vcnkuICBUaGUKKyAgICBjaGVja2luZyBpcyBmYWlybHkgZXh0ZW5zaXZlLCBhbmQgd2lsbCBzbG93IGRvd24gZXhlY3V0aW9uCisgICAgbm90aWNlYWJseS4gQ2FsbGluZyBtYWxsb2Nfc3RhdHMgb3IgbWFsbGluZm8gd2l0aCBERUJVRyBzZXQgd2lsbAorICAgIGF0dGVtcHQgdG8gY2hlY2sgZXZlcnkgbm9uLW1tYXBwZWQgYWxsb2NhdGVkIGFuZCBmcmVlIGNodW5rIGluIHRoZQorICAgIGNvdXJzZSBvZiBjb21wdXRpbmcgdGhlIHN1bW1tYXJpZXMuIChCeSBuYXR1cmUsIG1tYXBwZWQgcmVnaW9ucworICAgIGNhbm5vdCBiZSBjaGVja2VkIHZlcnkgbXVjaCBhdXRvbWF0aWNhbGx5LikKKworICAgIFNldHRpbmcgREVCVUcgbWF5IGFsc28gYmUgaGVscGZ1bCBpZiB5b3UgYXJlIHRyeWluZyB0byBtb2RpZnkKKyAgICB0aGlzIGNvZGUuIFRoZSBhc3NlcnRpb25zIGluIHRoZSBjaGVjayByb3V0aW5lcyBzcGVsbCBvdXQgaW4gbW9yZQorICAgIGRldGFpbCB0aGUgYXNzdW1wdGlvbnMgYW5kIGludmFyaWFudHMgdW5kZXJseWluZyB0aGUgYWxnb3JpdGhtcy4KKworKi8KKworI2lmZGVmIERFQlVHCisvKiAjaW5jbHVkZSA8YXNzZXJ0Lmg+ICovCisjZGVmaW5lIGFzc2VydCh4KSAoKHZvaWQpMCkKKyNlbHNlCisjZGVmaW5lIGFzc2VydCh4KSAoKHZvaWQpMCkKKyNlbmRpZgorCisKKy8qCisgIElOVEVSTkFMX1NJWkVfVCBpcyB0aGUgd29yZC1zaXplIHVzZWQgZm9yIGludGVybmFsIGJvb2trZWVwaW5nCisgIG9mIGNodW5rIHNpemVzLiBPbiBhIDY0LWJpdCBtYWNoaW5lLCB5b3UgY2FuIHJlZHVjZSBtYWxsb2MKKyAgb3ZlcmhlYWQgYnkgZGVmaW5pbmcgSU5URVJOQUxfU0laRV9UIHRvIGJlIGEgMzIgYml0IGB1bnNpZ25lZCBpbnQnCisgIGF0IHRoZSBleHBlbnNlIG9mIG5vdCBiZWluZyBhYmxlIHRvIGhhbmRsZSByZXF1ZXN0cyBncmVhdGVyIHRoYW4KKyAgMl4zMS4gVGhpcyBsaW1pdGF0aW9uIGlzIGhhcmRseSBldmVyIGEgY29uY2VybjsgeW91IGFyZSBlbmNvdXJhZ2VkCisgIHRvIHNldCB0aGlzLiBIb3dldmVyLCB0aGUgZGVmYXVsdCB2ZXJzaW9uIGlzIHRoZSBzYW1lIGFzIHNpemVfdC4KKyovCisKKyNpZm5kZWYgSU5URVJOQUxfU0laRV9UCisjZGVmaW5lIElOVEVSTkFMX1NJWkVfVCBzaXplX3QKKyNlbmRpZgorCisvKgorICBSRUFMTE9DX1pFUk9fQllURVNfRlJFRVMgc2hvdWxkIGJlIHNldCBpZiBhIGNhbGwgdG8KKyAgcmVhbGxvYyB3aXRoIHplcm8gYnl0ZXMgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIGEgY2FsbCB0byBmcmVlLgorICBTb21lIHBlb3BsZSB0aGluayBpdCBzaG91bGQuIE90aGVyd2lzZSwgc2luY2UgdGhpcyBtYWxsb2MKKyAgcmV0dXJucyBhIHVuaXF1ZSBwb2ludGVyIGZvciBtYWxsb2MoMCksIHNvIGRvZXMgcmVhbGxvYyhwLCAwKS4KKyovCisKKworLyogICAjZGVmaW5lIFJFQUxMT0NfWkVST19CWVRFU19GUkVFUyAqLworCisKKy8qCisgIFdJTjMyIGNhdXNlcyBhbiBlbXVsYXRpb24gb2Ygc2JyayB0byBiZSBjb21waWxlZCBpbgorICBtbWFwLWJhc2VkIG9wdGlvbnMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGluIFdJTjMyLgorKi8KKworLyogI2RlZmluZSBXSU4zMiAqLworI2lmZGVmIFdJTjMyCisjZGVmaW5lIE1PUkVDT1JFIHdzYnJrCisjZGVmaW5lIEhBVkVfTU1BUCAwCisKKyNkZWZpbmUgTEFDS1NfVU5JU1REX0gKKyNkZWZpbmUgTEFDS1NfU1lTX1BBUkFNX0gKKworLyoKKyAgSW5jbHVkZSAnd2luZG93cy5oJyB0byBnZXQgdGhlIG5lY2Vzc2FyeSBkZWNsYXJhdGlvbnMgZm9yIHRoZQorICBNaWNyb3NvZnQgVmlzdWFsIEMrKyBkYXRhIHN0cnVjdHVyZXMgYW5kIHJvdXRpbmVzIHVzZWQgaW4gdGhlICdzYnJrJworICBlbXVsYXRpb24uCisKKyAgRGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4gc28gdGhhdCBvbmx5IHRoZSBlc3NlbnRpYWwgTWljcm9zb2Z0CisgIFZpc3VhbCBDKysgaGVhZGVyIGZpbGVzIGFyZSBpbmNsdWRlZC4KKyovCisjZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4KKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjZW5kaWYKKworCisvKgorICBIQVZFX01FTUNQWSBzaG91bGQgYmUgZGVmaW5lZCBpZiB5b3UgYXJlIG5vdCBvdGhlcndpc2UgdXNpbmcKKyAgQU5TSSBTVEQgQywgYnV0IHN0aWxsIGhhdmUgbWVtY3B5IGFuZCBtZW1zZXQgaW4geW91ciBDIGxpYnJhcnkKKyAgYW5kIHdhbnQgdG8gdXNlIHRoZW0gaW4gY2FsbG9jIGFuZCByZWFsbG9jLiBPdGhlcndpc2Ugc2ltcGxlCisgIG1hY3JvIHZlcnNpb25zIGFyZSBkZWZpbmVkIGhlcmUuCisKKyAgVVNFX01FTUNQWSBzaG91bGQgYmUgZGVmaW5lZCBhcyAxIGlmIHlvdSBhY3R1YWxseSB3YW50IHRvCisgIGhhdmUgbWVtc2V0IGFuZCBtZW1jcHkgY2FsbGVkLiBQZW9wbGUgcmVwb3J0IHRoYXQgdGhlIG1hY3JvCisgIHZlcnNpb25zIGFyZSBvZnRlbiBlbm91Z2ggZmFzdGVyIHRoYW4gbGliYyB2ZXJzaW9ucyBvbiBtYW55CisgIHN5c3RlbXMgdGhhdCBpdCBpcyBiZXR0ZXIgdG8gdXNlIHRoZW0uCisKKyovCisKKyNkZWZpbmUgSEFWRV9NRU1DUFkKKworI2lmbmRlZiBVU0VfTUVNQ1BZCisjaWZkZWYgSEFWRV9NRU1DUFkKKyNkZWZpbmUgVVNFX01FTUNQWSAxCisjZWxzZQorI2RlZmluZSBVU0VfTUVNQ1BZIDAKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAoX19TVERfQyB8fCBkZWZpbmVkKEhBVkVfTUVNQ1BZKSkKKworI2lmIF9fU1REX0MKK3ZvaWQqIG1lbXNldCh2b2lkKiwgaW50LCBzaXplX3QpOwordm9pZCogbWVtY3B5KHZvaWQqLCBjb25zdCB2b2lkKiwgc2l6ZV90KTsKKyNlbHNlCisjaWZkZWYgV0lOMzIKKy8qIE9uIFdpbjMyIHBsYXRmb3JtcywgJ21lbXNldCgpJyBhbmQgJ21lbWNweSgpJyBhcmUgYWxyZWFkeSBkZWNsYXJlZCBpbiAqLworLyogJ3dpbmRvd3MuaCcgKi8KKyNlbHNlCitWb2lkX3QqIG1lbXNldCgpOworVm9pZF90KiBtZW1jcHkoKTsKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIFVTRV9NRU1DUFkKKworLyogVGhlIGZvbGxvd2luZyBtYWNyb3MgYXJlIG9ubHkgaW52b2tlZCB3aXRoICgybisxKS1tdWx0aXBsZXMgb2YKKyAgIElOVEVSTkFMX1NJWkVfVCB1bml0cywgd2l0aCBhIHBvc2l0aXZlIGludGVnZXIgbi4gVGhpcyBpcyBleHBsb2l0ZWQKKyAgIGZvciBmYXN0IGlubGluZSBleGVjdXRpb24gd2hlbiBuIGlzIHNtYWxsLiAqLworCisjZGVmaW5lIE1BTExPQ19aRVJPKGNoYXJwLCBuYnl0ZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIElOVEVSTkFMX1NJWkVfVCBtenN6ID0gKG5ieXRlcyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIGlmKG16c3ogPD0gOSpzaXplb2YobXpzeikpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgSU5URVJOQUxfU0laRV9UKiBteiA9IChJTlRFUk5BTF9TSVpFX1QqKSAoY2hhcnApOyAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYobXpzeiA+PSA1KnNpemVvZihtenN6KSkgeyAgICAgKm16KysgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJCQkJICAgICAqbXorKyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIGlmKG16c3ogPj0gNypzaXplb2YobXpzeikpIHsgICAqbXorKyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkJCQkgICAgICpteisrID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCWlmKG16c3ogPj0gOSpzaXplb2YobXpzeikpIHsgKm16KysgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJCQkJICAgICAqbXorKyA9IDA7IH19fSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkJCQkgICAgICpteisrID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCQkJCSAgICAgKm16KysgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJCQkJICAgICAqbXogICA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgfSBlbHNlIG1lbXNldCgoY2hhcnApLCAwLCBtenN6KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30gd2hpbGUoMCkKKworI2RlZmluZSBNQUxMT0NfQ09QWShkZXN0LHNyYyxuYnl0ZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBJTlRFUk5BTF9TSVpFX1QgbWNzeiA9IChuYnl0ZXMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBpZihtY3N6IDw9IDkqc2l6ZW9mKG1jc3opKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIElOVEVSTkFMX1NJWkVfVCogbWNzcmMgPSAoSU5URVJOQUxfU0laRV9UKikgKHNyYyk7ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIElOVEVSTkFMX1NJWkVfVCogbWNkc3QgPSAoSU5URVJOQUxfU0laRV9UKikgKGRlc3QpOyAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmKG1jc3ogPj0gNSpzaXplb2YobWNzeikpIHsgICAgICptY2RzdCsrID0gKm1jc3JjKys7ICAgICAgICAgICAgICAgICAgICAgXAorCQkJCSAgICAgKm1jZHN0KysgPSAqbWNzcmMrKzsgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBpZihtY3N6ID49IDcqc2l6ZW9mKG1jc3opKSB7ICAgKm1jZHN0KysgPSAqbWNzcmMrKzsgICAgICAgICAgICAgICAgICAgICBcCisJCQkJICAgICAqbWNkc3QrKyA9ICptY3NyYysrOyAgICAgICAgICAgICAgICAgICAgIFwKKwlpZihtY3N6ID49IDkqc2l6ZW9mKG1jc3opKSB7ICptY2RzdCsrID0gKm1jc3JjKys7ICAgICAgICAgICAgICAgICAgICAgXAorCQkJCSAgICAgKm1jZHN0KysgPSAqbWNzcmMrKzsgfX19ICAgICAgICAgICAgICAgICBcCisJCQkJICAgICAqbWNkc3QrKyA9ICptY3NyYysrOyAgICAgICAgICAgICAgICAgICAgIFwKKwkJCQkgICAgICptY2RzdCsrID0gKm1jc3JjKys7ICAgICAgICAgICAgICAgICAgICAgXAorCQkJCSAgICAgKm1jZHN0ICAgPSAqbWNzcmMgIDsgICAgICAgICAgICAgICAgICAgICBcCisgIH0gZWxzZSBtZW1jcHkoZGVzdCwgc3JjLCBtY3N6KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9IHdoaWxlKDApCisKKyNlbHNlIC8qICFVU0VfTUVNQ1BZICovCisKKy8qIFVzZSBEdWZmJ3MgZGV2aWNlIGZvciBnb29kIHplcm9pbmcvY29weWluZyBwZXJmb3JtYW5jZS4gKi8KKworI2RlZmluZSBNQUxMT0NfWkVSTyhjaGFycCwgbmJ5dGVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBJTlRFUk5BTF9TSVpFX1QqIG16cCA9IChJTlRFUk5BTF9TSVpFX1QqKShjaGFycCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBsb25nIG1jdG1wID0gKG5ieXRlcykvc2l6ZW9mKElOVEVSTkFMX1NJWkVfVCksIG1jbjsgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBpZiAobWN0bXAgPCA4KSBtY24gPSAwOyBlbHNlIHsgbWNuID0gKG1jdG1wLTEpLzg7IG1jdG1wICU9IDg7IH0gICAgICAgICAgICAgXAorICBzd2l0Y2ggKG1jdG1wKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGNhc2UgMDogZm9yKDs7KSB7ICptenArKyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGNhc2UgNzogICAgICAgICAgICptenArKyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGNhc2UgNjogICAgICAgICAgICptenArKyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGNhc2UgNTogICAgICAgICAgICptenArKyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGNhc2UgNDogICAgICAgICAgICptenArKyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGNhc2UgMzogICAgICAgICAgICptenArKyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGNhc2UgMjogICAgICAgICAgICptenArKyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGNhc2UgMTogICAgICAgICAgICptenArKyA9IDA7IGlmKG1jbiA8PSAwKSBicmVhazsgbWNuLS07IH0gICAgICAgICAgICAgICAgXAorICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfSB3aGlsZSgwKQorCisjZGVmaW5lIE1BTExPQ19DT1BZKGRlc3Qsc3JjLG5ieXRlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIElOVEVSTkFMX1NJWkVfVCogbWNzcmMgPSAoSU5URVJOQUxfU0laRV9UKikgc3JjOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIElOVEVSTkFMX1NJWkVfVCogbWNkc3QgPSAoSU5URVJOQUxfU0laRV9UKikgZGVzdDsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIGxvbmcgbWN0bXAgPSAobmJ5dGVzKS9zaXplb2YoSU5URVJOQUxfU0laRV9UKSwgbWNuOyAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIGlmIChtY3RtcCA8IDgpIG1jbiA9IDA7IGVsc2UgeyBtY24gPSAobWN0bXAtMSkvODsgbWN0bXAgJT0gODsgfSAgICAgICAgICAgICBcCisgIHN3aXRjaCAobWN0bXApIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgY2FzZSAwOiBmb3IoOzspIHsgKm1jZHN0KysgPSAqbWNzcmMrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgY2FzZSA3OiAgICAgICAgICAgKm1jZHN0KysgPSAqbWNzcmMrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgY2FzZSA2OiAgICAgICAgICAgKm1jZHN0KysgPSAqbWNzcmMrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgY2FzZSA1OiAgICAgICAgICAgKm1jZHN0KysgPSAqbWNzcmMrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgY2FzZSA0OiAgICAgICAgICAgKm1jZHN0KysgPSAqbWNzcmMrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgY2FzZSAzOiAgICAgICAgICAgKm1jZHN0KysgPSAqbWNzcmMrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgY2FzZSAyOiAgICAgICAgICAgKm1jZHN0KysgPSAqbWNzcmMrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgY2FzZSAxOiAgICAgICAgICAgKm1jZHN0KysgPSAqbWNzcmMrKzsgaWYobWNuIDw9IDApIGJyZWFrOyBtY24tLTsgfSAgICAgICBcCisgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9IHdoaWxlKDApCisKKyNlbmRpZgorCisKKy8qCisgIERlZmluZSBIQVZFX01NQVAgdG8gb3B0aW9uYWxseSBtYWtlIG1hbGxvYygpIHVzZSBtbWFwKCkgdG8KKyAgYWxsb2NhdGUgdmVyeSBsYXJnZSBibG9ja3MuICBUaGVzZSB3aWxsIGJlIHJldHVybmVkIHRvIHRoZQorICBvcGVyYXRpbmcgc3lzdGVtIGltbWVkaWF0ZWx5IGFmdGVyIGEgZnJlZSgpLgorKi8KKworLyoqKgorI2lmbmRlZiBIQVZFX01NQVAKKyNkZWZpbmUgSEFWRV9NTUFQIDEKKyNlbmRpZgorKioqLworI3VuZGVmCUhBVkVfTU1BUAkvKiBOb3QgYXZhaWxhYmxlIGZvciBVLUJvb3QgKi8KKworLyoKKyAgRGVmaW5lIEhBVkVfTVJFTUFQIHRvIG1ha2UgcmVhbGxvYygpIHVzZSBtcmVtYXAoKSB0byByZS1hbGxvY2F0ZQorICBsYXJnZSBibG9ja3MuICBUaGlzIGlzIGN1cnJlbnRseSBvbmx5IHBvc3NpYmxlIG9uIExpbnV4IHdpdGgKKyAga2VybmVsIHZlcnNpb25zIG5ld2VyIHRoYW4gMS4zLjc3LgorKi8KKworLyoqKgorI2lmbmRlZiBIQVZFX01SRU1BUAorI2lmZGVmIElOVEVSTkFMX0xJTlVYX0NfTElCCisjZGVmaW5lIEhBVkVfTVJFTUFQIDEKKyNlbHNlCisjZGVmaW5lIEhBVkVfTVJFTUFQIDAKKyNlbmRpZgorI2VuZGlmCisqKiovCisjdW5kZWYJSEFWRV9NUkVNQVAJLyogTm90IGF2YWlsYWJsZSBmb3IgVS1Cb290ICovCisKKyNpZiBIQVZFX01NQVAKKworI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3lzL21tYW4uaD4KKworI2lmICFkZWZpbmVkKE1BUF9BTk9OWU1PVVMpICYmIGRlZmluZWQoTUFQX0FOT04pCisjZGVmaW5lIE1BUF9BTk9OWU1PVVMgTUFQX0FOT04KKyNlbmRpZgorCisjZW5kaWYgLyogSEFWRV9NTUFQICovCisKKy8qCisgIEFjY2VzcyB0byBzeXN0ZW0gcGFnZSBzaXplLiBUbyB0aGUgZXh0ZW50IHBvc3NpYmxlLCB0aGlzIG1hbGxvYworICBtYW5hZ2VzIG1lbW9yeSBmcm9tIHRoZSBzeXN0ZW0gaW4gcGFnZS1zaXplIHVuaXRzLgorCisgIFRoZSBmb2xsb3dpbmcgbWVjaGFuaWNzIGZvciBnZXRwYWdlc2l6ZSB3ZXJlIGFkYXB0ZWQgZnJvbQorICBic2QvZ251IGdldHBhZ2VzaXplLmgKKyovCisKKyNkZWZpbmUJTEFDS1NfVU5JU1REX0gJLyogU2hvcnRjdXQgZm9yIFUtQm9vdCAqLworI2RlZmluZQltYWxsb2NfZ2V0cGFnZXNpemUJNDA5NgorCisjaWZuZGVmIExBQ0tTX1VOSVNURF9ICisjICBpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgorCisjaWZuZGVmIG1hbGxvY19nZXRwYWdlc2l6ZQorIyAgaWZkZWYgX1NDX1BBR0VTSVpFICAgICAgICAgLyogc29tZSBTVlI0IHN5c3RlbXMgb21pdCBhbiB1bmRlcnNjb3JlICovCisjICAgIGlmbmRlZiBfU0NfUEFHRV9TSVpFCisjICAgICAgZGVmaW5lIF9TQ19QQUdFX1NJWkUgX1NDX1BBR0VTSVpFCisjICAgIGVuZGlmCisjICBlbmRpZgorIyAgaWZkZWYgX1NDX1BBR0VfU0laRQorIyAgICBkZWZpbmUgbWFsbG9jX2dldHBhZ2VzaXplIHN5c2NvbmYoX1NDX1BBR0VfU0laRSkKKyMgIGVsc2UKKyMgICAgaWYgZGVmaW5lZChCU0QpIHx8IGRlZmluZWQoREdVWCkgfHwgZGVmaW5lZChIQVZFX0dFVFBBR0VTSVpFKQorICAgICAgIGV4dGVybiBzaXplX3QgZ2V0cGFnZXNpemUoKTsKKyMgICAgICBkZWZpbmUgbWFsbG9jX2dldHBhZ2VzaXplIGdldHBhZ2VzaXplKCkKKyMgICAgZWxzZQorIyAgICAgIGlmZGVmIFdJTjMyCisjICAgICAgICBkZWZpbmUgbWFsbG9jX2dldHBhZ2VzaXplICg0MDk2KSAvKiBUQkQ6IFVzZSAnR2V0U3lzdGVtSW5mbycgaW5zdGVhZCAqLworIyAgICAgIGVsc2UKKyMgICAgICAgIGlmbmRlZiBMQUNLU19TWVNfUEFSQU1fSAorIyAgICAgICAgICBpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyMgICAgICAgIGVuZGlmCisjICAgICAgICBpZmRlZiBFWEVDX1BBR0VTSVpFCisjICAgICAgICAgIGRlZmluZSBtYWxsb2NfZ2V0cGFnZXNpemUgRVhFQ19QQUdFU0laRQorIyAgICAgICAgZWxzZQorIyAgICAgICAgICBpZmRlZiBOQlBHCisjICAgICAgICAgICAgaWZuZGVmIENMU0laRQorIyAgICAgICAgICAgICAgZGVmaW5lIG1hbGxvY19nZXRwYWdlc2l6ZSBOQlBHCisjICAgICAgICAgICAgZWxzZQorIyAgICAgICAgICAgICAgZGVmaW5lIG1hbGxvY19nZXRwYWdlc2l6ZSAoTkJQRyAqIENMU0laRSkKKyMgICAgICAgICAgICBlbmRpZgorIyAgICAgICAgICBlbHNlCisjICAgICAgICAgICAgaWZkZWYgTkJQQworIyAgICAgICAgICAgICAgZGVmaW5lIG1hbGxvY19nZXRwYWdlc2l6ZSBOQlBDCisjICAgICAgICAgICAgZWxzZQorIyAgICAgICAgICAgICAgaWZkZWYgUEFHRVNJWkUKKyMgICAgICAgICAgICAgICAgZGVmaW5lIG1hbGxvY19nZXRwYWdlc2l6ZSBQQUdFU0laRQorIyAgICAgICAgICAgICAgZWxzZQorIyAgICAgICAgICAgICAgICBkZWZpbmUgbWFsbG9jX2dldHBhZ2VzaXplICg0MDk2KSAvKiBqdXN0IGd1ZXNzICovCisjICAgICAgICAgICAgICBlbmRpZgorIyAgICAgICAgICAgIGVuZGlmCisjICAgICAgICAgIGVuZGlmCisjICAgICAgICBlbmRpZgorIyAgICAgIGVuZGlmCisjICAgIGVuZGlmCisjICBlbmRpZgorI2VuZGlmCisKKworLyoKKworICBUaGlzIHZlcnNpb24gb2YgbWFsbG9jIHN1cHBvcnRzIHRoZSBzdGFuZGFyZCBTVklEL1hQRyBtYWxsaW5mbworICByb3V0aW5lIHRoYXQgcmV0dXJucyBhIHN0cnVjdCBjb250YWluaW5nIHRoZSBzYW1lIGtpbmQgb2YKKyAgaW5mb3JtYXRpb24geW91IGNhbiBnZXQgZnJvbSBtYWxsb2Nfc3RhdHMuIEl0IHNob3VsZCB3b3JrIG9uCisgIGFueSBTVklEL1hQRyBjb21wbGlhbnQgc3lzdGVtIHRoYXQgaGFzIGEgL3Vzci9pbmNsdWRlL21hbGxvYy5oCisgIGRlZmluaW5nIHN0cnVjdCBtYWxsaW5mby4gKElmIHlvdSdkIGxpa2UgdG8gaW5zdGFsbCBzdWNoIGEgdGhpbmcKKyAgeW91cnNlbGYsIGN1dCBvdXQgdGhlIHByZWxpbWluYXJ5IGRlY2xhcmF0aW9ucyBhcyBkZXNjcmliZWQgYWJvdmUKKyAgYW5kIGJlbG93IGFuZCBzYXZlIHRoZW0gaW4gYSBtYWxsb2MuaCBmaWxlLiBCdXQgdGhlcmUncyBubworICBjb21wZWxsaW5nIHJlYXNvbiB0byBib3RoZXIgdG8gZG8gdGhpcy4pCisKKyAgVGhlIG1haW4gZGVjbGFyYXRpb24gbmVlZGVkIGlzIHRoZSBtYWxsaW5mbyBzdHJ1Y3QgdGhhdCBpcyByZXR1cm5lZAorICAoYnktY29weSkgYnkgbWFsbGluZm8oKS4gIFRoZSBTVklEL1hQRyBtYWxsb2luZm8gc3RydWN0IGNvbnRhaW5zIGEKKyAgYnVuY2ggb2YgZmllbGRzLCBtb3N0IG9mIHdoaWNoIGFyZSBub3QgZXZlbiBtZWFuaW5nZnVsIGluIHRoaXMKKyAgdmVyc2lvbiBvZiBtYWxsb2MuIFNvbWUgb2YgdGhlc2UgZmllbGRzIGFyZSBhcmUgaW5zdGVhZCBmaWxsZWQgYnkKKyAgbWFsbGluZm8oKSB3aXRoIG90aGVyIG51bWJlcnMgdGhhdCBtaWdodCBwb3NzaWJseSBiZSBvZiBpbnRlcmVzdC4KKworICBIQVZFX1VTUl9JTkNMVURFX01BTExPQ19IIHNob3VsZCBiZSBzZXQgaWYgeW91IGhhdmUgYQorICAvdXNyL2luY2x1ZGUvbWFsbG9jLmggZmlsZSB0aGF0IGluY2x1ZGVzIGEgZGVjbGFyYXRpb24gb2Ygc3RydWN0CisgIG1hbGxpbmZvLiAgSWYgc28sIGl0IGlzIGluY2x1ZGVkOyBlbHNlIGFuIFNWSUQyL1hQRzIgY29tcGxpYW50CisgIHZlcnNpb24gaXMgZGVjbGFyZWQgYmVsb3cuICBUaGVzZSBtdXN0IGJlIHByZWNpc2VseSB0aGUgc2FtZSBmb3IKKyAgbWFsbGluZm8oKSB0byB3b3JrLgorCisqLworCisvKiAjZGVmaW5lIEhBVkVfVVNSX0lOQ0xVREVfTUFMTE9DX0ggKi8KKworI2lmIEhBVkVfVVNSX0lOQ0xVREVfTUFMTE9DX0gKKyNpbmNsdWRlICIvdXNyL2luY2x1ZGUvbWFsbG9jLmgiCisjZWxzZQorCisvKiBTVklEMi9YUEcgbWFsbGluZm8gc3RydWN0dXJlICovCisKK3N0cnVjdCBtYWxsaW5mbyB7CisgIGludCBhcmVuYTsgICAgLyogdG90YWwgc3BhY2UgYWxsb2NhdGVkIGZyb20gc3lzdGVtICovCisgIGludCBvcmRibGtzOyAgLyogbnVtYmVyIG9mIG5vbi1pbnVzZSBjaHVua3MgKi8KKyAgaW50IHNtYmxrczsgICAvKiB1bnVzZWQgLS0gYWx3YXlzIHplcm8gKi8KKyAgaW50IGhibGtzOyAgICAvKiBudW1iZXIgb2YgbW1hcHBlZCByZWdpb25zICovCisgIGludCBoYmxraGQ7ICAgLyogdG90YWwgc3BhY2UgaW4gbW1hcHBlZCByZWdpb25zICovCisgIGludCB1c21ibGtzOyAgLyogdW51c2VkIC0tIGFsd2F5cyB6ZXJvICovCisgIGludCBmc21ibGtzOyAgLyogdW51c2VkIC0tIGFsd2F5cyB6ZXJvICovCisgIGludCB1b3JkYmxrczsgLyogdG90YWwgYWxsb2NhdGVkIHNwYWNlICovCisgIGludCBmb3JkYmxrczsgLyogdG90YWwgbm9uLWludXNlIHNwYWNlICovCisgIGludCBrZWVwY29zdDsgLyogdG9wLW1vc3QsIHJlbGVhc2FibGUgKHZpYSBtYWxsb2NfdHJpbSkgc3BhY2UgKi8KK307CisKKy8qIFNWSUQyL1hQRyBtYWxsb3B0IG9wdGlvbnMgKi8KKworI2RlZmluZSBNX01YRkFTVCAgMSAgICAvKiBVTlVTRUQgaW4gdGhpcyBtYWxsb2MgKi8KKyNkZWZpbmUgTV9OTEJMS1MgIDIgICAgLyogVU5VU0VEIGluIHRoaXMgbWFsbG9jICovCisjZGVmaW5lIE1fR1JBSU4gICAzICAgIC8qIFVOVVNFRCBpbiB0aGlzIG1hbGxvYyAqLworI2RlZmluZSBNX0tFRVAgICAgNCAgICAvKiBVTlVTRUQgaW4gdGhpcyBtYWxsb2MgKi8KKworI2VuZGlmCisKKy8qIG1hbGxvcHQgb3B0aW9ucyB0aGF0IGFjdHVhbGx5IGRvIHNvbWV0aGluZyAqLworCisjZGVmaW5lIE1fVFJJTV9USFJFU0hPTEQgICAgLTEKKyNkZWZpbmUgTV9UT1BfUEFEICAgICAgICAgICAtMgorI2RlZmluZSBNX01NQVBfVEhSRVNIT0xEICAgIC0zCisjZGVmaW5lIE1fTU1BUF9NQVggICAgICAgICAgLTQKKworCisjaWZuZGVmIERFRkFVTFRfVFJJTV9USFJFU0hPTEQKKyNkZWZpbmUgREVGQVVMVF9UUklNX1RIUkVTSE9MRCAoMTI4ICogMTAyNCkKKyNlbmRpZgorCisvKgorICAgIE1fVFJJTV9USFJFU0hPTEQgaXMgdGhlIG1heGltdW0gYW1vdW50IG9mIHVudXNlZCB0b3AtbW9zdCBtZW1vcnkKKyAgICAgIHRvIGtlZXAgYmVmb3JlIHJlbGVhc2luZyB2aWEgbWFsbG9jX3RyaW0gaW4gZnJlZSgpLgorCisgICAgICBBdXRvbWF0aWMgdHJpbW1pbmcgaXMgbWFpbmx5IHVzZWZ1bCBpbiBsb25nLWxpdmVkIHByb2dyYW1zLgorICAgICAgQmVjYXVzZSB0cmltbWluZyB2aWEgc2JyayBjYW4gYmUgc2xvdyBvbiBzb21lIHN5c3RlbXMsIGFuZCBjYW4KKyAgICAgIHNvbWV0aW1lcyBiZSB3YXN0ZWZ1bCAoaW4gY2FzZXMgd2hlcmUgcHJvZ3JhbXMgaW1tZWRpYXRlbHkKKyAgICAgIGFmdGVyd2FyZCBhbGxvY2F0ZSBtb3JlIGxhcmdlIGNodW5rcykgdGhlIHZhbHVlIHNob3VsZCBiZSBoaWdoCisgICAgICBlbm91Z2ggc28gdGhhdCB5b3VyIG92ZXJhbGwgc3lzdGVtIHBlcmZvcm1hbmNlIHdvdWxkIGltcHJvdmUgYnkKKyAgICAgIHJlbGVhc2luZy4KKworICAgICAgVGhlIHRyaW0gdGhyZXNob2xkIGFuZCB0aGUgbW1hcCBjb250cm9sIHBhcmFtZXRlcnMgKHNlZSBiZWxvdykKKyAgICAgIGNhbiBiZSB0cmFkZWQgb2ZmIHdpdGggb25lIGFub3RoZXIuIFRyaW1taW5nIGFuZCBtbWFwcGluZyBhcmUKKyAgICAgIHR3byBkaWZmZXJlbnQgd2F5cyBvZiByZWxlYXNpbmcgdW51c2VkIG1lbW9yeSBiYWNrIHRvIHRoZQorICAgICAgc3lzdGVtLiBCZXR3ZWVuIHRoZXNlIHR3bywgaXQgaXMgb2Z0ZW4gcG9zc2libGUgdG8ga2VlcAorICAgICAgc3lzdGVtLWxldmVsIGRlbWFuZHMgb2YgYSBsb25nLWxpdmVkIHByb2dyYW0gZG93biB0byBhIGJhcmUKKyAgICAgIG1pbmltdW0uIEZvciBleGFtcGxlLCBpbiBvbmUgdGVzdCBzdWl0ZSBvZiBzZXNzaW9ucyBtZWFzdXJpbmcKKyAgICAgIHRoZSBYRjg2IFggc2VydmVyIG9uIExpbnV4LCB1c2luZyBhIHRyaW0gdGhyZXNob2xkIG9mIDEyOEsgYW5kIGEKKyAgICAgIG1tYXAgdGhyZXNob2xkIG9mIDE5MksgbGVkIHRvIG5lYXItbWluaW1hbCBsb25nIHRlcm0gcmVzb3VyY2UKKyAgICAgIGNvbnN1bXB0aW9uLgorCisgICAgICBJZiB5b3UgYXJlIHVzaW5nIHRoaXMgbWFsbG9jIGluIGEgbG9uZy1saXZlZCBwcm9ncmFtLCBpdCBzaG91bGQKKyAgICAgIHBheSB0byBleHBlcmltZW50IHdpdGggdGhlc2UgdmFsdWVzLiAgQXMgYSByb3VnaCBndWlkZSwgeW91CisgICAgICBtaWdodCBzZXQgdG8gYSB2YWx1ZSBjbG9zZSB0byB0aGUgYXZlcmFnZSBzaXplIG9mIGEgcHJvY2VzcworICAgICAgKHByb2dyYW0pIHJ1bm5pbmcgb24geW91ciBzeXN0ZW0uICBSZWxlYXNpbmcgdGhpcyBtdWNoIG1lbW9yeQorICAgICAgd291bGQgYWxsb3cgc3VjaCBhIHByb2Nlc3MgdG8gcnVuIGluIG1lbW9yeS4gIEdlbmVyYWxseSwgaXQncworICAgICAgd29ydGggaXQgdG8gdHVuZSBmb3IgdHJpbW1pbmcgcmF0aGVyIHRoYW0gbWVtb3J5IG1hcHBpbmcgd2hlbiBhCisgICAgICBwcm9ncmFtIHVuZGVyZ29lcyBwaGFzZXMgd2hlcmUgc2V2ZXJhbCBsYXJnZSBjaHVua3MgYXJlCisgICAgICBhbGxvY2F0ZWQgYW5kIHJlbGVhc2VkIGluIHdheXMgdGhhdCBjYW4gcmV1c2UgZWFjaCBvdGhlcidzCisgICAgICBzdG9yYWdlLCBwZXJoYXBzIG1peGVkIHdpdGggcGhhc2VzIHdoZXJlIHRoZXJlIGFyZSBubyBzdWNoCisgICAgICBjaHVua3MgYXQgYWxsLiAgQW5kIGluIHdlbGwtYmVoYXZlZCBsb25nLWxpdmVkIHByb2dyYW1zLAorICAgICAgY29udHJvbGxpbmcgcmVsZWFzZSBvZiBsYXJnZSBibG9ja3MgdmlhIHRyaW1taW5nIHZlcnN1cyBtYXBwaW5nCisgICAgICBpcyB1c3VhbGx5IGZhc3Rlci4KKworICAgICAgSG93ZXZlciwgaW4gbW9zdCBwcm9ncmFtcywgdGhlc2UgcGFyYW1ldGVycyBzZXJ2ZSBtYWlubHkgYXMKKyAgICAgIHByb3RlY3Rpb24gYWdhaW5zdCB0aGUgc3lzdGVtLWxldmVsIGVmZmVjdHMgb2YgY2FycnlpbmcgYXJvdW5kCisgICAgICBtYXNzaXZlIGFtb3VudHMgb2YgdW5uZWVkZWQgbWVtb3J5LiBTaW5jZSBmcmVxdWVudCBjYWxscyB0bworICAgICAgc2JyaywgbW1hcCwgYW5kIG11bm1hcCBvdGhlcndpc2UgZGVncmFkZSBwZXJmb3JtYW5jZSwgdGhlIGRlZmF1bHQKKyAgICAgIHBhcmFtZXRlcnMgYXJlIHNldCB0byByZWxhdGl2ZWx5IGhpZ2ggdmFsdWVzIHRoYXQgc2VydmUgb25seSBhcworICAgICAgc2FmZWd1YXJkcy4KKworICAgICAgVGhlIGRlZmF1bHQgdHJpbSB2YWx1ZSBpcyBoaWdoIGVub3VnaCB0byBjYXVzZSB0cmltbWluZyBvbmx5IGluCisgICAgICBmYWlybHkgZXh0cmVtZSAoYnkgY3VycmVudCBtZW1vcnkgY29uc3VtcHRpb24gc3RhbmRhcmRzKSBjYXNlcy4KKyAgICAgIEl0IG11c3QgYmUgZ3JlYXRlciB0aGFuIHBhZ2Ugc2l6ZSB0byBoYXZlIGFueSB1c2VmdWwgZWZmZWN0LiAgVG8KKyAgICAgIGRpc2FibGUgdHJpbW1pbmcgY29tcGxldGVseSwgeW91IGNhbiBzZXQgdG8gKHVuc2lnbmVkIGxvbmcpKC0xKTsKKworCisqLworCisKKyNpZm5kZWYgREVGQVVMVF9UT1BfUEFECisjZGVmaW5lIERFRkFVTFRfVE9QX1BBRCAgICAgICAgKDApCisjZW5kaWYKKworLyoKKyAgICBNX1RPUF9QQUQgaXMgdGhlIGFtb3VudCBvZiBleHRyYSBgcGFkZGluZycgc3BhY2UgdG8gYWxsb2NhdGUgb3IKKyAgICAgIHJldGFpbiB3aGVuZXZlciBzYnJrIGlzIGNhbGxlZC4gSXQgaXMgdXNlZCBpbiB0d28gd2F5cyBpbnRlcm5hbGx5OgorCisgICAgICAqIFdoZW4gc2JyayBpcyBjYWxsZWQgdG8gZXh0ZW5kIHRoZSB0b3Agb2YgdGhlIGFyZW5hIHRvIHNhdGlzZnkKKwlhIG5ldyBtYWxsb2MgcmVxdWVzdCwgdGhpcyBtdWNoIHBhZGRpbmcgaXMgYWRkZWQgdG8gdGhlIHNicmsKKwlyZXF1ZXN0LgorCisgICAgICAqIFdoZW4gbWFsbG9jX3RyaW0gaXMgY2FsbGVkIGF1dG9tYXRpY2FsbHkgZnJvbSBmcmVlKCksCisJaXQgaXMgdXNlZCBhcyB0aGUgYHBhZCcgYXJndW1lbnQuCisKKyAgICAgIEluIGJvdGggY2FzZXMsIHRoZSBhY3R1YWwgYW1vdW50IG9mIHBhZGRpbmcgaXMgcm91bmRlZAorICAgICAgc28gdGhhdCB0aGUgZW5kIG9mIHRoZSBhcmVuYSBpcyBhbHdheXMgYSBzeXN0ZW0gcGFnZSBib3VuZGFyeS4KKworICAgICAgVGhlIG1haW4gcmVhc29uIGZvciB1c2luZyBwYWRkaW5nIGlzIHRvIGF2b2lkIGNhbGxpbmcgc2JyayBzbworICAgICAgb2Z0ZW4uIEhhdmluZyBldmVuIGEgc21hbGwgcGFkIGdyZWF0bHkgcmVkdWNlcyB0aGUgbGlrZWxpaG9vZAorICAgICAgdGhhdCBuZWFybHkgZXZlcnkgbWFsbG9jIHJlcXVlc3QgZHVyaW5nIHByb2dyYW0gc3RhcnQtdXAgKG9yCisgICAgICBhZnRlciB0cmltbWluZykgd2lsbCBpbnZva2Ugc2Jyaywgd2hpY2ggbmVlZGxlc3NseSB3YXN0ZXMKKyAgICAgIHRpbWUuCisKKyAgICAgIEF1dG9tYXRpYyByb3VuZGluZy11cCB0byBwYWdlLXNpemUgdW5pdHMgaXMgbm9ybWFsbHkgc3VmZmljaWVudAorICAgICAgdG8gYXZvaWQgbWVhc3VyYWJsZSBvdmVyaGVhZCwgc28gdGhlIGRlZmF1bHQgaXMgMC4gIEhvd2V2ZXIsIGluCisgICAgICBzeXN0ZW1zIHdoZXJlIHNicmsgaXMgcmVsYXRpdmVseSBzbG93LCBpdCBjYW4gcGF5IHRvIGluY3JlYXNlCisgICAgICB0aGlzIHZhbHVlLCBhdCB0aGUgZXhwZW5zZSBvZiBjYXJyeWluZyBhcm91bmQgbW9yZSBtZW1vcnkgdGhhbgorICAgICAgdGhlIHByb2dyYW0gbmVlZHMuCisKKyovCisKKworI2lmbmRlZiBERUZBVUxUX01NQVBfVEhSRVNIT0xECisjZGVmaW5lIERFRkFVTFRfTU1BUF9USFJFU0hPTEQgKDEyOCAqIDEwMjQpCisjZW5kaWYKKworLyoKKworICAgIE1fTU1BUF9USFJFU0hPTEQgaXMgdGhlIHJlcXVlc3Qgc2l6ZSB0aHJlc2hvbGQgZm9yIHVzaW5nIG1tYXAoKQorICAgICAgdG8gc2VydmljZSBhIHJlcXVlc3QuIFJlcXVlc3RzIG9mIGF0IGxlYXN0IHRoaXMgc2l6ZSB0aGF0IGNhbm5vdAorICAgICAgYmUgYWxsb2NhdGVkIHVzaW5nIGFscmVhZHktZXhpc3Rpbmcgc3BhY2Ugd2lsbCBiZSBzZXJ2aWNlZCB2aWEgbW1hcC4KKyAgICAgIChJZiBlbm91Z2ggbm9ybWFsIGZyZWVkIHNwYWNlIGFscmVhZHkgZXhpc3RzIGl0IGlzIHVzZWQgaW5zdGVhZC4pCisKKyAgICAgIFVzaW5nIG1tYXAgc2VncmVnYXRlcyByZWxhdGl2ZWx5IGxhcmdlIGNodW5rcyBvZiBtZW1vcnkgc28gdGhhdAorICAgICAgdGhleSBjYW4gYmUgaW5kaXZpZHVhbGx5IG9idGFpbmVkIGFuZCByZWxlYXNlZCBmcm9tIHRoZSBob3N0CisgICAgICBzeXN0ZW0uIEEgcmVxdWVzdCBzZXJ2aWNlZCB0aHJvdWdoIG1tYXAgaXMgbmV2ZXIgcmV1c2VkIGJ5IGFueQorICAgICAgb3RoZXIgcmVxdWVzdCAoYXQgbGVhc3Qgbm90IGRpcmVjdGx5OyB0aGUgc3lzdGVtIG1heSBqdXN0IHNvCisgICAgICBoYXBwZW4gdG8gcmVtYXAgc3VjY2Vzc2l2ZSByZXF1ZXN0cyB0byB0aGUgc2FtZSBsb2NhdGlvbnMpLgorCisgICAgICBTZWdyZWdhdGluZyBzcGFjZSBpbiB0aGlzIHdheSBoYXMgdGhlIGJlbmVmaXQgdGhhdCBtbWFwcGVkIHNwYWNlCisgICAgICBjYW4gQUxXQVlTIGJlIGluZGl2aWR1YWxseSByZWxlYXNlZCBiYWNrIHRvIHRoZSBzeXN0ZW0sIHdoaWNoCisgICAgICBoZWxwcyBrZWVwIHRoZSBzeXN0ZW0gbGV2ZWwgbWVtb3J5IGRlbWFuZHMgb2YgYSBsb25nLWxpdmVkCisgICAgICBwcm9ncmFtIGxvdy4gTWFwcGVkIG1lbW9yeSBjYW4gbmV2ZXIgYmVjb21lIGBsb2NrZWQnIGJldHdlZW4KKyAgICAgIG90aGVyIGNodW5rcywgYXMgY2FuIGhhcHBlbiB3aXRoIG5vcm1hbGx5IGFsbG9jYXRlZCBjaHVua3MsIHdoaWNoCisgICAgICBtZW5hcyB0aGF0IGV2ZW4gdHJpbW1pbmcgdmlhIG1hbGxvY190cmltIHdvdWxkIG5vdCByZWxlYXNlIHRoZW0uCisKKyAgICAgIEhvd2V2ZXIsIGl0IGhhcyB0aGUgZGlzYWR2YW50YWdlcyB0aGF0OgorCisJIDEuIFRoZSBzcGFjZSBjYW5ub3QgYmUgcmVjbGFpbWVkLCBjb25zb2xpZGF0ZWQsIGFuZCB0aGVuCisJICAgIHVzZWQgdG8gc2VydmljZSBsYXRlciByZXF1ZXN0cywgYXMgaGFwcGVucyB3aXRoIG5vcm1hbCBjaHVua3MuCisJIDIuIEl0IGNhbiBsZWFkIHRvIG1vcmUgd2FzdGFnZSBiZWNhdXNlIG9mIG1tYXAgcGFnZSBhbGlnbm1lbnQKKwkgICAgcmVxdWlyZW1lbnRzCisJIDMuIEl0IGNhdXNlcyBtYWxsb2MgcGVyZm9ybWFuY2UgdG8gYmUgbW9yZSBkZXBlbmRlbnQgb24gaG9zdAorCSAgICBzeXN0ZW0gbWVtb3J5IG1hbmFnZW1lbnQgc3VwcG9ydCByb3V0aW5lcyB3aGljaCBtYXkgdmFyeSBpbgorCSAgICBpbXBsZW1lbnRhdGlvbiBxdWFsaXR5IGFuZCBtYXkgaW1wb3NlIGFyYml0cmFyeQorCSAgICBsaW1pdGF0aW9ucy4gR2VuZXJhbGx5LCBzZXJ2aWNpbmcgYSByZXF1ZXN0IHZpYSBub3JtYWwKKwkgICAgbWFsbG9jIHN0ZXBzIGlzIGZhc3RlciB0aGFuIGdvaW5nIHRocm91Z2ggYSBzeXN0ZW0ncyBtbWFwLgorCisgICAgICBBbGwgdG9nZXRoZXIsIHRoZXNlIGNvbnNpZGVyYXRpb25zIHNob3VsZCBsZWFkIHlvdSB0byB1c2UgbW1hcAorICAgICAgb25seSBmb3IgcmVsYXRpdmVseSBsYXJnZSByZXF1ZXN0cy4KKworCisqLworCisKKyNpZm5kZWYgREVGQVVMVF9NTUFQX01BWAorI2lmIEhBVkVfTU1BUAorI2RlZmluZSBERUZBVUxUX01NQVBfTUFYICAgICAgICg2NCkKKyNlbHNlCisjZGVmaW5lIERFRkFVTFRfTU1BUF9NQVggICAgICAgKDApCisjZW5kaWYKKyNlbmRpZgorCisvKgorICAgIE1fTU1BUF9NQVggaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcXVlc3RzIHRvIHNpbXVsdGFuZW91c2x5CisgICAgICBzZXJ2aWNlIHVzaW5nIG1tYXAuIFRoaXMgcGFyYW1ldGVyIGV4aXN0cyBiZWNhdXNlOgorCisJIDEuIFNvbWUgc3lzdGVtcyBoYXZlIGEgbGltaXRlZCBudW1iZXIgb2YgaW50ZXJuYWwgdGFibGVzIGZvcgorCSAgICB1c2UgYnkgbW1hcC4KKwkgMi4gSW4gbW9zdCBzeXN0ZW1zLCBvdmVycmVsaWFuY2Ugb24gbW1hcCBjYW4gZGVncmFkZSBvdmVyYWxsCisJICAgIHBlcmZvcm1hbmNlLgorCSAzLiBJZiBhIHByb2dyYW0gYWxsb2NhdGVzIG1hbnkgbGFyZ2UgcmVnaW9ucywgaXQgaXMgcHJvYmFibHkKKwkgICAgYmV0dGVyIG9mZiB1c2luZyBub3JtYWwgc2Jyay1iYXNlZCBhbGxvY2F0aW9uIHJvdXRpbmVzIHRoYXQKKwkgICAgY2FuIHJlY2xhaW0gYW5kIHJlYWxsb2NhdGUgbm9ybWFsIGhlYXAgbWVtb3J5LiBVc2luZyBhCisJICAgIHNtYWxsIHZhbHVlIGFsbG93cyB0cmFuc2l0aW9uIGludG8gdGhpcyBtb2RlIGFmdGVyIHRoZQorCSAgICBmaXJzdCBmZXcgYWxsb2NhdGlvbnMuCisKKyAgICAgIFNldHRpbmcgdG8gMCBkaXNhYmxlcyBhbGwgdXNlIG9mIG1tYXAuICBJZiBIQVZFX01NQVAgaXMgbm90IHNldCwKKyAgICAgIHRoZSBkZWZhdWx0IHZhbHVlIGlzIDAsIGFuZCBhdHRlbXB0cyB0byBzZXQgaXQgdG8gbm9uLXplcm8gdmFsdWVzCisgICAgICBpbiBtYWxsb3B0IHdpbGwgZmFpbC4KKyovCisKKworLyoKKyAgICBVU0VfRExfUFJFRklYIHdpbGwgcHJlZml4IGFsbCBwdWJsaWMgcm91dGluZXMgd2l0aCB0aGUgc3RyaW5nICdkbCcuCisgICAgICBVc2VmdWwgdG8gcXVpY2tseSBhdm9pZCBwcm9jZWR1cmUgZGVjbGFyYXRpb24gY29uZmxpY3RzIGFuZCBsaW5rZXIKKyAgICAgIHN5bWJvbCBjb25mbGljdHMgd2l0aCBleGlzdGluZyBtZW1vcnkgYWxsb2NhdGlvbiByb3V0aW5lcy4KKworKi8KKworLyogI2RlZmluZSBVU0VfRExfUFJFRklYICovCisKKworLyoKKworICBTcGVjaWFsIGRlZmluZXMgZm9yIGxpbnV4IGxpYmMKKworICBFeGNlcHQgd2hlbiBjb21waWxlZCB1c2luZyB0aGVzZSBzcGVjaWFsIGRlZmluZXMgZm9yIExpbnV4IGxpYmMKKyAgdXNpbmcgd2VhayBhbGlhc2VzLCB0aGlzIG1hbGxvYyBpcyBOT1QgZGVzaWduZWQgdG8gd29yayBpbgorICBtdWx0aXRocmVhZGVkIGFwcGxpY2F0aW9ucy4gIE5vIHNlbWFwaG9yZXMgb3Igb3RoZXIgY29uY3VycmVuY3kKKyAgY29udHJvbCBhcmUgcHJvdmlkZWQgdG8gZW5zdXJlIHRoYXQgbXVsdGlwbGUgbWFsbG9jIG9yIGZyZWUgY2FsbHMKKyAgZG9uJ3QgcnVuIGF0IHRoZSBzYW1lIHRpbWUsIHdoaWNoIGNvdWxkIGJlIGRpc2FzdGVyb3VzLiBBIHNpbmdsZQorICBzZW1hcGhvcmUgY291bGQgYmUgdXNlZCBhY3Jvc3MgbWFsbG9jLCByZWFsbG9jLCBhbmQgZnJlZSAod2hpY2ggaXMKKyAgZXNzZW50aWFsbHkgdGhlIGVmZmVjdCBvZiB0aGUgbGludXggd2VhayBhbGlhcyBhcHByb2FjaCkuIEl0IHdvdWxkCisgIGJlIGhhcmQgdG8gb2J0YWluIGZpbmVyIGdyYW51bGFyaXR5LgorCisqLworCisKKyNpZmRlZiBJTlRFUk5BTF9MSU5VWF9DX0xJQgorCisjaWYgX19TVERfQworCitWb2lkX3QgKiBfX2RlZmF1bHRfbW9yZWNvcmVfaW5pdCAocHRyZGlmZl90KTsKK1ZvaWRfdCAqKCpfX21vcmVjb3JlKShwdHJkaWZmX3QpID0gX19kZWZhdWx0X21vcmVjb3JlX2luaXQ7CisKKyNlbHNlCisKK1ZvaWRfdCAqIF9fZGVmYXVsdF9tb3JlY29yZV9pbml0ICgpOworVm9pZF90ICooKl9fbW9yZWNvcmUpKCkgPSBfX2RlZmF1bHRfbW9yZWNvcmVfaW5pdDsKKworI2VuZGlmCisKKyNkZWZpbmUgTU9SRUNPUkUgKCpfX21vcmVjb3JlKQorI2RlZmluZSBNT1JFQ09SRV9GQUlMVVJFIDAKKyNkZWZpbmUgTU9SRUNPUkVfQ0xFQVJTIDEKKworI2Vsc2UgLyogSU5URVJOQUxfTElOVVhfQ19MSUIgKi8KKworI2lmIF9fU1REX0MKK2V4dGVybiBWb2lkX3QqICAgICBzYnJrKHB0cmRpZmZfdCk7CisjZWxzZQorZXh0ZXJuIFZvaWRfdCogICAgIHNicmsoKTsKKyNlbmRpZgorCisjaWZuZGVmIE1PUkVDT1JFCisjZGVmaW5lIE1PUkVDT1JFIHNicmsKKyNlbmRpZgorCisjaWZuZGVmIE1PUkVDT1JFX0ZBSUxVUkUKKyNkZWZpbmUgTU9SRUNPUkVfRkFJTFVSRSAtMQorI2VuZGlmCisKKyNpZm5kZWYgTU9SRUNPUkVfQ0xFQVJTCisjZGVmaW5lIE1PUkVDT1JFX0NMRUFSUyAxCisjZW5kaWYKKworI2VuZGlmIC8qIElOVEVSTkFMX0xJTlVYX0NfTElCICovCisKKyNpZiBkZWZpbmVkKElOVEVSTkFMX0xJTlVYX0NfTElCKSAmJiBkZWZpbmVkKF9fRUxGX18pCisKKyNkZWZpbmUgY0FMTE9jCQlfX2xpYmNfY2FsbG9jCisjZGVmaW5lIGZSRWUJCV9fbGliY19mcmVlCisjZGVmaW5lIG1BTExPYwkJX19saWJjX21hbGxvYworI2RlZmluZSBtRU1BTElHbglfX2xpYmNfbWVtYWxpZ24KKyNkZWZpbmUgckVBTExPYwkJX19saWJjX3JlYWxsb2MKKyNkZWZpbmUgdkFMTE9jCQlfX2xpYmNfdmFsbG9jCisjZGVmaW5lIHB2QUxMT2MJCV9fbGliY19wdmFsbG9jCisjZGVmaW5lIG1BTExJTkZvCV9fbGliY19tYWxsaW5mbworI2RlZmluZSBtQUxMT1B0CQlfX2xpYmNfbWFsbG9wdAorCisjcHJhZ21hIHdlYWsgY2FsbG9jID0gX19saWJjX2NhbGxvYworI3ByYWdtYSB3ZWFrIGZyZWUgPSBfX2xpYmNfZnJlZQorI3ByYWdtYSB3ZWFrIGNmcmVlID0gX19saWJjX2ZyZWUKKyNwcmFnbWEgd2VhayBtYWxsb2MgPSBfX2xpYmNfbWFsbG9jCisjcHJhZ21hIHdlYWsgbWVtYWxpZ24gPSBfX2xpYmNfbWVtYWxpZ24KKyNwcmFnbWEgd2VhayByZWFsbG9jID0gX19saWJjX3JlYWxsb2MKKyNwcmFnbWEgd2VhayB2YWxsb2MgPSBfX2xpYmNfdmFsbG9jCisjcHJhZ21hIHdlYWsgcHZhbGxvYyA9IF9fbGliY19wdmFsbG9jCisjcHJhZ21hIHdlYWsgbWFsbGluZm8gPSBfX2xpYmNfbWFsbGluZm8KKyNwcmFnbWEgd2VhayBtYWxsb3B0ID0gX19saWJjX21hbGxvcHQKKworI2Vsc2UKKworI2lmZGVmIFVTRV9ETF9QUkVGSVgKKyNkZWZpbmUgY0FMTE9jCQlkbGNhbGxvYworI2RlZmluZSBmUkVlCQlkbGZyZWUKKyNkZWZpbmUgbUFMTE9jCQlkbG1hbGxvYworI2RlZmluZSBtRU1BTElHbglkbG1lbWFsaWduCisjZGVmaW5lIHJFQUxMT2MJCWRscmVhbGxvYworI2RlZmluZSB2QUxMT2MJCWRsdmFsbG9jCisjZGVmaW5lIHB2QUxMT2MJCWRscHZhbGxvYworI2RlZmluZSBtQUxMSU5GbwlkbG1hbGxpbmZvCisjZGVmaW5lIG1BTExPUHQJCWRsbWFsbG9wdAorI2Vsc2UgLyogVVNFX0RMX1BSRUZJWCAqLworI2RlZmluZSBjQUxMT2MJCWNhbGxvYworI2RlZmluZSBmUkVlCQlmcmVlCisjZGVmaW5lIG1BTExPYwkJbWFsbG9jCisjZGVmaW5lIG1FTUFMSUduCW1lbWFsaWduCisjZGVmaW5lIHJFQUxMT2MJCXJlYWxsb2MKKyNkZWZpbmUgdkFMTE9jCQl2YWxsb2MKKyNkZWZpbmUgcHZBTExPYwkJcHZhbGxvYworI2RlZmluZSBtQUxMSU5GbwltYWxsaW5mbworI2RlZmluZSBtQUxMT1B0CQltYWxsb3B0CisjZW5kaWYgLyogVVNFX0RMX1BSRUZJWCAqLworCisjZW5kaWYKKworLyogUHVibGljIHJvdXRpbmVzICovCisKKyNpZiBfX1NURF9DCisKK1ZvaWRfdCogbUFMTE9jKHNpemVfdCk7Cit2b2lkICAgIGZSRWUoVm9pZF90Kik7CitWb2lkX3QqIHJFQUxMT2MoVm9pZF90Kiwgc2l6ZV90KTsKK1ZvaWRfdCogbUVNQUxJR24oc2l6ZV90LCBzaXplX3QpOworVm9pZF90KiB2QUxMT2Moc2l6ZV90KTsKK1ZvaWRfdCogcHZBTExPYyhzaXplX3QpOworVm9pZF90KiBjQUxMT2Moc2l6ZV90LCBzaXplX3QpOwordm9pZCAgICBjZnJlZShWb2lkX3QqKTsKK2ludCAgICAgbWFsbG9jX3RyaW0oc2l6ZV90KTsKK3NpemVfdCAgbWFsbG9jX3VzYWJsZV9zaXplKFZvaWRfdCopOwordm9pZCAgICBtYWxsb2Nfc3RhdHModm9pZCk7CitpbnQgICAgIG1BTExPUHQoaW50LCBpbnQpOworc3RydWN0IG1hbGxpbmZvIG1BTExJTkZvKHZvaWQpOworI2Vsc2UKK1ZvaWRfdCogbUFMTE9jKCk7Cit2b2lkICAgIGZSRWUoKTsKK1ZvaWRfdCogckVBTExPYygpOworVm9pZF90KiBtRU1BTElHbigpOworVm9pZF90KiB2QUxMT2MoKTsKK1ZvaWRfdCogcHZBTExPYygpOworVm9pZF90KiBjQUxMT2MoKTsKK3ZvaWQgICAgY2ZyZWUoKTsKK2ludCAgICAgbWFsbG9jX3RyaW0oKTsKK3NpemVfdCAgbWFsbG9jX3VzYWJsZV9zaXplKCk7Cit2b2lkICAgIG1hbGxvY19zdGF0cygpOworaW50ICAgICBtQUxMT1B0KCk7CitzdHJ1Y3QgbWFsbGluZm8gbUFMTElORm8oKTsKKyNlbmRpZgorCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfTsgIC8qIGVuZCBvZiBleHRlcm4gIkMiICovCisjZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9tbWMuaCBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9tbWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTljM2NmCi0tLSAvZGV2L251bGwKKysrIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL21tYy5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IDIwMDAtMjAwMworICogV29sZmdhbmcgRGVuaywgREVOWCBTb2Z0d2FyZSBFbmdpbmVlcmluZywgd2RAZGVueC5kZS4KKyAqCisgKiBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcworICogcHJvamVjdC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKyAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAorICogTUEgMDIxMTEtMTMwNyBVU0EKKyAqLworCisjaWZuZGVmIF9NTUNfSF8KKyNkZWZpbmUgX01NQ19IXworI2luY2x1ZGUgPGFzbS9hcmNoL21tYy5oPgorCitpbnQgbW1jX2luaXQoaW50IHNsb3QpOworaW50IG1tY19yZWFkKGludCBtbWNfY29udCwgdW5zaWduZWQgaW50IHNyYywgdW5zaWduZWQgY2hhciAqZHN0LCBpbnQgc2l6ZSk7CitpbnQgbW1jX3dyaXRlKGludCBtbWNfY29udCwgdW5zaWduZWQgY2hhciAqc3JjLCB1bnNpZ25lZCBsb25nIGRzdCwgaW50IHNpemUpOworaW50IG1tY19lcmFzZShpbnQgbW1jX2NvbnQsIHVuc2lnbmVkIGludCBzdGFydCwgaW50IHNpemUpOworCisjZW5kaWYgLyogX01NQ19IXyAqLwpkaWZmIC0tZ2l0IGEvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL3BhcnQuaCBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9wYXJ0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDZlZDQ4NgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9wYXJ0LmgKQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IDIwMDAtMjAwNAorICogV29sZmdhbmcgRGVuaywgREVOWCBTb2Z0d2FyZSBFbmdpbmVlcmluZywgd2RAZGVueC5kZS4KKyAqCisgKiBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcworICogcHJvamVjdC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKyAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4JIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAorICogTUEgMDIxMTEtMTMwNyBVU0EKKyAqLworI2lmbmRlZiBfUEFSVF9ICisjZGVmaW5lIF9QQVJUX0gKKyNpbmNsdWRlIDxpZGUuaD4KKwordHlwZWRlZiBzdHJ1Y3QgYmxvY2tfZGV2X2Rlc2MgeworCWludAkJaWZfdHlwZTsJLyogdHlwZSBvZiB0aGUgaW50ZXJmYWNlICovCisJaW50CSAgICAgICAgZGV2OwkgIAkvKiBkZXZpY2UgbnVtYmVyICovCisJdW5zaWduZWQgY2hhcglwYXJ0X3R5cGU7ICAJLyogcGFydGl0aW9uIHR5cGUgKi8KKwl1bnNpZ25lZCBjaGFyCXRhcmdldDsJCS8qIHRhcmdldCBTQ1NJIElEICovCisJdW5zaWduZWQgY2hhcglsdW47CQkvKiB0YXJnZXQgTFVOICovCisJdW5zaWduZWQgY2hhcgl0eXBlOwkJLyogZGV2aWNlIHR5cGUgKi8KKwl1bnNpZ25lZCBjaGFyCXJlbW92YWJsZTsJLyogcmVtb3ZhYmxlIGRldmljZSAqLworI2lmZGVmIENPTkZJR19MQkE0OAorCXVuc2lnbmVkIGNoYXIJbGJhNDg7CQkvKiBkZXZpY2UgY2FuIHVzZSA0OGJpdCBhZGRyIChBVEEvQVRBUEkgdjcpICovCisjZW5kaWYKKwlsYmFpbnRfdAkJbGJhOwkgIAkvKiBudW1iZXIgb2YgYmxvY2tzICovCisJdW5zaWduZWQgbG9uZwlibGtzejsJCS8qIGJsb2NrIHNpemUgKi8KKwl1bnNpZ25lZCBjaGFyCXZlbmRvciBbNDArMV07IAkvKiBJREUgbW9kZWwsIFNDU0kgVmVuZG9yICovCisJdW5zaWduZWQgY2hhcglwcm9kdWN0WzIwKzFdOwkvKiBJREUgU2VyaWFsIG5vLCBTQ1NJIHByb2R1Y3QgKi8KKwl1bnNpZ25lZCBjaGFyCXJldmlzaW9uWzgrMV07CS8qIGZpcm13YXJlIHJldmlzaW9uICovCisJdW5zaWduZWQgbG9uZwkoKmJsb2NrX3JlYWQpKGludCBkZXYsCisJCQkJICAgICAgdW5zaWduZWQgbG9uZyBzdGFydCwKKwkJCQkgICAgICBsYmFpbnRfdCBibGtjbnQsCisJCQkJICAgICAgdW5zaWduZWQgbG9uZyAqYnVmZmVyKTsKK31ibG9ja19kZXZfZGVzY190OworCisvKiBJbnRlcmZhY2UgdHlwZXM6ICovCisjZGVmaW5lIElGX1RZUEVfVU5LTk9XTgkJMAorI2RlZmluZSBJRl9UWVBFX0lERQkJMQorI2RlZmluZSBJRl9UWVBFX1NDU0kJCTIKKyNkZWZpbmUgSUZfVFlQRV9BVEFQSQkJMworI2RlZmluZSBJRl9UWVBFX1VTQgkJNAorI2RlZmluZSBJRl9UWVBFX0RPQwkJNQorI2RlZmluZSBJRl9UWVBFX01NQwkJNgorCisvKiBQYXJ0IHR5cGVzICovCisjZGVmaW5lIFBBUlRfVFlQRV9VTktOT1dOCTB4MDAKKyNkZWZpbmUgUEFSVF9UWVBFX01BQwkJMHgwMQorI2RlZmluZSBQQVJUX1RZUEVfRE9TCQkweDAyCisjZGVmaW5lIFBBUlRfVFlQRV9JU08JCTB4MDMKKyNkZWZpbmUgUEFSVF9UWVBFX0FNSUdBCQkweDA0CisKKy8qCisgKiBUeXBlIHN0cmluZyBmb3IgVS1Cb290IGJvb3RhYmxlIHBhcnRpdGlvbnMKKyAqLworI2RlZmluZSBCT09UX1BBUlRfVFlQRQkiVS1Cb290IgkvKiBwcmltYXJ5IGJvb3QgcGFydGl0aW9uIHR5cGUJKi8KKyNkZWZpbmUgQk9PVF9QQVJUX0NPTVAJIlBQQ0Jvb3QiCS8qIFBQQ0Jvb3QgY29tcGF0aWJpbGl0eSB0eXBlCSovCisKKy8qIGRldmljZSB0eXBlcyAqLworI2RlZmluZSBERVZfVFlQRV9VTktOT1dOCTB4ZmYJLyogbm90IGNvbm5lY3RlZCAqLworI2RlZmluZSBERVZfVFlQRV9IQVJERElTSwkweDAwCS8qIGhhcmRkaXNrICovCisjZGVmaW5lIERFVl9UWVBFX1RBUEUJCTB4MDEJLyogVGFwZSAqLworI2RlZmluZSBERVZfVFlQRV9DRFJPTQkJMHgwNQkvKiBDRC1ST00gKi8KKyNkZWZpbmUgREVWX1RZUEVfT1BESVNLCQkweDA3CS8qIG9wdGljYWwgZGlzayAqLworCit0eXBlZGVmIHN0cnVjdCBkaXNrX3BhcnRpdGlvbiB7CisJdWxvbmcJc3RhcnQ7CQkvKiAjIG9mIGZpcnN0IGJsb2NrIGluIHBhcnRpdGlvbgkqLworCXVsb25nCXNpemU7CQkvKiBudW1iZXIgb2YgYmxvY2tzIGluIHBhcnRpdGlvbgkqLworCXVsb25nCWJsa3N6OwkJLyogYmxvY2sgc2l6ZSBpbiBieXRlcwkJCSovCisJdWludDhfdAluYW1lWzMyXTsJLyogcGFydGl0aW9uIG5hbWUJCQkqLworCXVpbnQ4X3QJdHlwZVszMl07CS8qIHN0cmluZyB0eXBlIGRlc2NyaXB0aW9uCQkqLworfSBkaXNrX3BhcnRpdGlvbl90OworCisvKiBkaXNrL3BhcnQuYyAqLworaW50IGdldF9wYXJ0aXRpb25faW5mbyAoYmxvY2tfZGV2X2Rlc2NfdCAqIGRldl9kZXNjLCBpbnQgcGFydCwgZGlza19wYXJ0aXRpb25fdCAqaW5mbyk7Cit2b2lkIHByaW50X3BhcnQgKGJsb2NrX2Rldl9kZXNjX3QgKmRldl9kZXNjKTsKK3ZvaWQgIGluaXRfcGFydCAoYmxvY2tfZGV2X2Rlc2NfdCAqZGV2X2Rlc2MpOwordm9pZCBkZXZfcHJpbnQoYmxvY2tfZGV2X2Rlc2NfdCAqZGV2X2Rlc2MpOworCisKKyNpZmRlZiBDT05GSUdfTUFDX1BBUlRJVElPTgorLyogZGlzay9wYXJ0X21hYy5jICovCitpbnQgZ2V0X3BhcnRpdGlvbl9pbmZvX21hYyAoYmxvY2tfZGV2X2Rlc2NfdCAqIGRldl9kZXNjLCBpbnQgcGFydCwgZGlza19wYXJ0aXRpb25fdCAqaW5mbyk7Cit2b2lkIHByaW50X3BhcnRfbWFjIChibG9ja19kZXZfZGVzY190ICpkZXZfZGVzYyk7CitpbnQgICB0ZXN0X3BhcnRfbWFjIChibG9ja19kZXZfZGVzY190ICpkZXZfZGVzYyk7CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19ET1NfUEFSVElUSU9OCisvKiBkaXNrL3BhcnRfZG9zLmMgKi8KK2ludCBnZXRfcGFydGl0aW9uX2luZm9fZG9zIChibG9ja19kZXZfZGVzY190ICogZGV2X2Rlc2MsIGludCBwYXJ0LCBkaXNrX3BhcnRpdGlvbl90ICppbmZvKTsKK3ZvaWQgcHJpbnRfcGFydF9kb3MgKGJsb2NrX2Rldl9kZXNjX3QgKmRldl9kZXNjKTsKK2ludCAgIHRlc3RfcGFydF9kb3MgKGJsb2NrX2Rldl9kZXNjX3QgKmRldl9kZXNjKTsKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0lTT19QQVJUSVRJT04KKy8qIGRpc2svcGFydF9pc28uYyAqLworaW50IGdldF9wYXJ0aXRpb25faW5mb19pc28gKGJsb2NrX2Rldl9kZXNjX3QgKiBkZXZfZGVzYywgaW50IHBhcnQsIGRpc2tfcGFydGl0aW9uX3QgKmluZm8pOwordm9pZCBwcmludF9wYXJ0X2lzbyAoYmxvY2tfZGV2X2Rlc2NfdCAqZGV2X2Rlc2MpOworaW50ICAgdGVzdF9wYXJ0X2lzbyAoYmxvY2tfZGV2X2Rlc2NfdCAqZGV2X2Rlc2MpOworI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQU1JR0FfUEFSVElUSU9OCisvKiBkaXNrL3BhcnRfYW1pZ2EuYyAqLworaW50IGdldF9wYXJ0aXRpb25faW5mb19hbWlnYSAoYmxvY2tfZGV2X2Rlc2NfdCAqIGRldl9kZXNjLCBpbnQgcGFydCwgZGlza19wYXJ0aXRpb25fdCAqaW5mbyk7Cit2b2lkIHByaW50X3BhcnRfYW1pZ2EgKGJsb2NrX2Rldl9kZXNjX3QgKmRldl9kZXNjKTsKK2ludCAgIHRlc3RfcGFydF9hbWlnYSAoYmxvY2tfZGV2X2Rlc2NfdCAqZGV2X2Rlc2MpOworI2VuZGlmCisKKyNlbmRpZiAvKiBfUEFSVF9IICovCmRpZmYgLS1naXQgYS9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvc2Rpby5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL3NkaW8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNWZkMDk3Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL3NkaW8uaApAQCAtMCwwICsxLDE2OCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAxNiwgWlhJQyBDb3Jwb3JhdGlvbi4KKyAqCisgKiBGaWxlIE5hbWU6ICAgIAorICogRmlsZSBNYXJrOiAgICAKKyAqIERlc2NyaXB0aW9uOiAgCisgKiBPdGhlcnM6ICAgICAgICAKKyAqIFZlcnNpb246ICAgICAgCisgKiBBdXRob3I6ICAgICAgICAKKyAqIERhdGU6ICAgICAgICAgIAorICogSGlzdG9yeSAxOiAgICAgIAorICogICAgIERhdGU6IAorICogICAgIFZlcnNpb246CisgKiAgICAgQXV0aG9yOiAKKyAqICAgICBNb2RpZmljYXRpb246ICAKKyAqIEhpc3RvcnkgMjogCisgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmbmRlZiBfX1NESU9fSF9fCisjZGVmaW5lIF9fU0RJT19IX18KKworCisvLyNpZiAwCit0eXBlZGVmIHNpZ25lZCBjaGFyIAkJCXM4OwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIAkJCXU4OworCit0eXBlZGVmIHNpZ25lZCBzaG9ydCAJCQlzMTY7Cit0eXBlZGVmIHVuc2lnbmVkIHNob3J0IAkJCXUxNjsKKwordHlwZWRlZiBzaWduZWQgaW50IAkJCQlzMzI7Cit0eXBlZGVmIHVuc2lnbmVkIGludCAJCQl1MzI7Cit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyAJCXU2NDsKKy8vI2VuZGlmCisKK3R5cGVkZWYgdTgJCQkJCQlCWVRFOwordHlwZWRlZgl1MzIJCQkJCQlXT1JEMzI7Cit0eXBlZGVmCXUxNgkJCQkJCVdPUkQxNjsKKworI2lmIDAKK3R5cGVkZWYgaW50CQkJCQkJaW50MzJfdDsKK3R5cGVkZWYgdTMyCQkJCQkJdWludDMyX3Q7Cit0eXBlZGVmIHUxNgkJCQkJCXVpbnQxNl90OwordHlwZWRlZiB1OAkJCQkJCXVpbnQ4X3Q7CisjZW5kaWYKKworCisjZGVmaW5lIE1JTih4LHkpCQkgIAkJKCh4KSA8ICh5KSA/ICh4KSA6ICh5KSkKKyNkZWZpbmUgTUFYKHgseSkgICAgICAJCQkoKHgpID4gKHkpID8gKHgpIDogKHkpKQorI2RlZmluZSBBUlJBWV9TSVpFKHgpIAkJCShzaXplb2YoeCkgLyBzaXplb2YoKHgpWzBdKSkKKyNkZWZpbmUgUkVHKHgpCQkJCSAgICAoKih2b2xhdGlsZSB1MzIqKSh4KSkKKyNkZWZpbmUgUkVHOCh4KQkJCQkgICAgKCoodm9sYXRpbGUgdTgqKSh4KSkKKyNkZWZpbmUgUkVHMTYoeCkJCQkgICAgKCoodm9sYXRpbGUgdTE2KikoeCkpCisjZGVmaW5lIFJFRzMyKHgpCQkJICAgICgqKHZvbGF0aWxlIHUzMiopKHgpKQorI2RlZmluZSBEV0NfUkVBRF9SRUczMihhKSAgICAgCSgqKHZvbGF0aWxlIHUzMiAqKShhKSkKKyNkZWZpbmUgRFdDX1dSSVRFX1JFRzMyKGEsdikgICAgKCgqKHZvbGF0aWxlIHUzMiAqKShhKSkgPSB2KQorCisKKy8qU0RJTyCyzsr9Ki8KKyNkZWZpbmUgU1lTX1NESU9fUkVHU19CQVNFICAgICAgICAgICAgICAgICAgICAgIDB4MDE1NDAwMDAgIC8vU0QxCisjZGVmaW5lIENGR19TRElPX0xPQURfQkFTRSAgICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwICAgICAgLy8gU0RJTyBETUEgyv2+3bDh1Mu12NYKKworI2RlZmluZQlTRElPX0NNRDAgICAgMCAgIC8qIEdPX0lETEVfU1RBVEUgICAgICAgIGJjICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBTRElPX0NNRDEgICAgMSAgIC8qIFNFTkRfT1BfQ09ORCAgICAgICAgIGJjciAgWzMxOjBdICBPQ1IgIFIzICAqLworI2RlZmluZSBTRElPX0NNRDIgICAgMiAgIC8qIEFMTF9TRU5EX0NJRCAgICAgICAgIGJjciAgICAgICAgICAgICAgIFIyICAqLworI2RlZmluZSBTRElPX0NNRDMgICAgMyAgIC8qIFNFVF9SRUxBVElWRV9BRERSICAgIGFjICAgWzMxOjE2XSBSQ0EgIFIxICAqLworI2RlZmluZSBTRElPX0NNRDQgICAgNCAgIC8qIFNFVF9EU1IgICAgICAgICAgICAgIGJjICAgWzMxOjE2XSBSQ0EgICAgICAqLworI2RlZmluZSBTRElPX0NNRDUgICAgNSAgIC8qIElPX1NFTkRfT1BfQ09ORCAgICAgICAgICAgID8/ICAgPz8gICAgICAgICAgICAgICAqLworI2RlZmluZSBTRElPX0NNRDYgICAgNiAgIC8qIFNXSVRDSCBGVU5DICAgICAgICAgICAgIGFjICAgICAgICAgICAgICAgIFIxICAqLworCQkJCQkvKiBGb3IgQUNNRDY6U0VUX0JVU19XSURUSCAgPz8gICA/PyAgICAgICAgICAgICAgICovCisjZGVmaW5lIFNESU9fQ01ENyAgICA3ICAgLyogU0VMRUNUX0NBUkQgICAgICAgICAgYWMgICBbMzE6MTZdIFJDQSAgUjEgICovCisjZGVmaW5lIFNESU9fQ01EOCAgICA4ICAgLyogU0VORF9JRl9DT05EICAgICAgYWR0YyBbMzE6MTZdIFJDQSAgUjEgICovCisjZGVmaW5lIFNESU9fQ01EOSAgICA5ICAgLyogU0VORF9DU0QgICAgICAgICAgICAgYWMgICBbMzE6MTZdIFJDQSAgUjIgICovCisvKiBjbGFzcyA3ICovCisjZGVmaW5lIFNESU9fQ01ENTIgICA1MiAgLyogU0RJT19SV19ESVJFQ1QgICAgICAgICAgID8/ICAgICAgICAgICAgICAgICBSNSAgKi8KKyNkZWZpbmUgU0RJT19DTUQ1MyAgIDUzICAvKiBTRElPX1JXX0VYVEVOREVEICAgICAgICAgPz8gICAgICAgICAgICAgICAgIFI1ICAqLworCisvKrzEtObG98ar0sYqLworI2RlZmluZSAgU0RJT19TTEFWRV9SRUdTICAgICAgICAgICAgICBTWVNfU0RJT19SRUdTX0JBU0UKKyNkZWZpbmUgIFNESU9fU0xBVkVfQ1RSTCAgICAgICAgICAgICAoU0RJT19TTEFWRV9SRUdTKzB4MDApCisjZGVmaW5lICBTRElPX1NMQVZFX0NNRCAgIAkgICAgICAgICAoU0RJT19TTEFWRV9SRUdTKzB4MDQpCisjZGVmaW5lICBTRElPX1NMQVZFX0FSR1UgIAkgICAgICAgICAoU0RJT19TTEFWRV9SRUdTKzB4MDgpCisjZGVmaW5lICBTRElPX1NMQVZFX0JMS0NOVCAgICAgICAgICAgKFNESU9fU0xBVkVfUkVHUysweDBDKQorI2RlZmluZSAgU0RJT19TTEFWRV9ETUExQUREUiAgICAgICAgIChTRElPX1NMQVZFX1JFR1MrMHgxMCkKKyNkZWZpbmUgIFNESU9fU0xBVkVfRE1BMUNUUkwgICAgICAgICAoU0RJT19TTEFWRV9SRUdTKzB4MTQpCisKKyNkZWZpbmUgIFNESU9fU0xBVkVfRVJBU0VfV19CTEtTVEFSVCAoU0RJT19TTEFWRV9SRUdTKzB4MjApCisjZGVmaW5lICBTRElPX1NMQVZFX0VSQVNFX1dfQkxLRU5EICAgKFNESU9fU0xBVkVfUkVHUysweDI0KQorI2RlZmluZSAgU0RJT19TTEFWRV9QQVNTTEUgICAgICAgICAgIChTRElPX1NMQVZFX1JFR1MrMHgyOCkKKyNkZWZpbmUgIFNESU9fU0xBVkVfU0VDQkxLQ05UICAgICAgICAoU0RJT19TTEFWRV9SRUdTKzB4MkMpCisKKyNkZWZpbmUgIFNESU9fU0xBVkVfSU5UU1RBVFVTICAgICAgICAoU0RJT19TTEFWRV9SRUdTKzB4M0MpCisjZGVmaW5lICBTRElPX1NMQVZFX0lOVFNUQVRVU19FTiAgICAgKFNESU9fU0xBVkVfUkVHUysweDQwKQorI2RlZmluZSAgU0RJT19TTEFWRV9JTlRTSUdOQUxfRU4gCSAoU0RJT19TTEFWRV9SRUdTKzB4NDQpCisjZGVmaW5lICBTRElPX1NMQVZFX0NBUkRfQUREUiAgICAgICAgKFNESU9fU0xBVkVfUkVHUysweDQ4KQorI2RlZmluZSAgU0RJT19TTEFWRV9DQVJEX0RBVEEgIAkgICAgIChTRElPX1NMQVZFX1JFR1MrMHg0QykKKyNkZWZpbmUgIFNESU9fU0xBVkVfSU9SRUFEWSAgCSAgICAgKFNESU9fU0xBVkVfUkVHUysweDUwKQorI2RlZmluZSAgU0RJT19TTEFWRV9GVU4xQ1RSTCAgICAgICAgIChTRElPX1NMQVZFX1JFR1MrMHg1NCkKKyNkZWZpbmUgIFNESU9fU0xBVkVfRlVOMkNUUkwgICAgICAgICAoU0RJT19TTEFWRV9SRUdTKzB4NTgpCisjZGVmaW5lICBTRElPX1NMQVZFX1NESU9fQ0NDUl9DVFJMICAgKFNESU9fU0xBVkVfUkVHUysweDVDKQorI2RlZmluZSAgU0RJT19TTEFWRV9TRElPX0ZCUnhfQ1RSTCAgIChTRElPX1NMQVZFX1JFR1MrMHg2MCkgIC8qICoqc2RpbyBmYnJ4IGN0cmwgMHg2MC0weDdjKi8KKworI2RlZmluZSAgU0RJT19TTEFWRV9DQVJEX1NJWkUgICAgICAgIChTRElPX1NMQVZFX1JFR1MrMHg4MCkKKyNkZWZpbmUgIFNESU9fU0xBVkVfQ0FSRF9PQ1IgICAgICAgICAoU0RJT19TTEFWRV9SRUdTKzB4ODQpCisjZGVmaW5lCSBTRElPX1NMQVZFX0NUUkwyICAgICAgICAgICAgKFNESU9fU0xBVkVfUkVHUysweDg4KQorCisjZGVmaW5lICBTRElPX1NMQVZFX0ZVTjNDVFJMICAgICAgICAgKFNESU9fU0xBVkVfUkVHUysweDkwKQorI2RlZmluZSAgU0RJT19TTEFWRV9GVU40Q1RSTCAgICAgICAgIChTRElPX1NMQVZFX1JFR1MrMHg5NCkKKyNkZWZpbmUgIFNESU9fU0xBVkVfRlVONUNUUkwgICAgICAgICAoU0RJT19TTEFWRV9SRUdTKzB4OTgpCisjZGVmaW5lICBTRElPX1NMQVZFX0lOVF9TVEFUVVMyICAgICAgKFNESU9fU0xBVkVfUkVHUysweDlDKQorI2RlZmluZSAgU0RJT19TTEFWRV9JTlRfU1RBVFVTX0VOMiAgIChTRElPX1NMQVZFX1JFR1MrMHhBMCkKKyNkZWZpbmUgIFNESU9fU0xBVkVfSU5UX1NJR05BTF9FTjIgICAoU0RJT19TTEFWRV9SRUdTKzB4QTQpCisvKiNkZWZpbmUgIFNESU9fU0xBVkVfUEFTU18xMjdfOTYgICAgICAoU0RJT19TTEFWRV9SRUdTKzB4QTgpCisjZGVmaW5lICBTRElPX1NMQVZFX1BBU1NfOTVfNjQgICAgICAgKFNESU9fU0xBVkVfUkVHUysweEFDKQorI2RlZmluZSAgU0RJT19TTEFWRV9QQVNTXzYzXzMyICAgICAgIChTRElPX1NMQVZFX1JFR1MrMHhCMCkKKyNkZWZpbmUgIFNESU9fU0xBVkVfUEFTU18zMV8wICAgICAgICAoU0RJT19TTEFWRV9SRUdTKzB4QjQpCisjZGVmaW5lICBTRElPX1NMQVZFX0FETUFfRVJSX1NUQVRVUyAgKFNESU9fU0xBVkVfUkVHUysweEI4KQorI2RlZmluZSAgU0RJT19TTEFWRV9SQ0EgICAgICAgICAgICAgIChTRElPX1NMQVZFX1JFR1MrMHhCQykKKyNkZWZpbmUgIFNESU9fU0xBVkVfREJHMCAgICAgICAgICAgICAoU0RJT19TTEFWRV9SRUdTKzB4QzApCisjZGVmaW5lICBTRElPX1NMQVZFX0RCRzEgICAgICAgICAgICAgKFNESU9fU0xBVkVfUkVHUysweEM0KQorI2RlZmluZSAgU0RJT19TTEFWRV9EQkcyICAgICAgICAgICAgIChTRElPX1NMQVZFX1JFR1MrMHhDOCkKKyNkZWZpbmUgIFNESU9fU0xBVkVfREJHMyAgICAgICAgICAgICAoU0RJT19TTEFWRV9SRUdTKzB4Q0MpCisjZGVmaW5lICBTRElPX1NMQVZFX0RCRzQgICAgICAgICAgICAgKFNESU9fU0xBVkVfUkVHUysweEQwKQorI2RlZmluZSAgU0RJT19TTEFWRV9EQkc1ICAgICAgICAgICAgIChTRElPX1NMQVZFX1JFR1MrMHhENCkKKyNkZWZpbmUgIFNESU9fU0xBVkVfREJHNiAgICAgICAgICAgICAoU0RJT19TTEFWRV9SRUdTKzB4RDgpCisjZGVmaW5lICBTRElPX1NMQVZFX0FIQiAgICAgICAgICAgICAgKFNESU9fU0xBVkVfUkVHUysweERDKQorI2RlZmluZSAgU0RJT19TTEFWRV9BUkdVMiAgICAgICAgICAgIChTRElPX1NMQVZFX1JFR1MrMHhFMCkqLworCisKKy8qU0RJT19TTEFWRV9JTlRfU1RBVFVTKi8KKyNkZWZpbmUgU0RJT19TVFNfQl9DICAgICAgICAoMTw8MzEpCS8vQk9PVCBDT01QTEVURQorI2RlZmluZSBTRElPX1NUU19MUlNUICAgICAgICgxPDwzMCkJLy9MUlNUCisjZGVmaW5lIFNESU9fU1RTX0ZfQSAgICAgICAgKDE8PDI5KQkvL0ZVTkNUSU9OWCBBYm9ydAorI2RlZmluZSBTRElPX1NUU19GX0NSQ19FICAgICgxPDwyOCkJLy9GdW5jdGlvblggQ1JDIEVuZCBFcnJvcgorI2RlZmluZSBTRElPX1NUU19DTURfUjFCICAgICgxPDwyNykJLy9DTUQgUjFCCisjZGVmaW5lIFNESU9fU1RTX0NNRDQwICAgICAgKDE8PDI2KQkvL0NNRDQwCisjZGVmaW5lIFNESU9fU1RTX1BSR19TVCAgICAgKDE8PDI1KQkvL1BST0dSQU0gU1RBUlQKKyNkZWZpbmUgU0RJT19TVFNfQ01EMTFfQ19TVCAoMTw8MjQpCS8vQ01EMTEgQ0xLIFNUQVJUCisjZGVmaW5lIFNESU9fU1RTX0NNRDExX0NfU1AgKDE8PDIzKQkvL0NNRDExIENMSyBTVE9QCisjZGVmaW5lIFNESU9fU1RTX0YyX1IJICAgICgxPDwyMikJLy9GdW50aW9uMiByZXNldAorI2RlZmluZSBTRElPX1NUU19GMV9SCSAgICAoMTw8MjEpCS8vRnVudGlvbjEgcmVzZXQKKyNkZWZpbmUgU0RJT19TVFNfQlMJCSAgICAoMTw8MjApCS8vQm9vdCBTdGFydAorI2RlZmluZSBTRElPX1NUU19DTUQ0CQkoMTw8MTkpCS8vQ01ENAorI2RlZmluZSBTRElPX1NUU19DTUQyMAkJKDE8PDE3KQkvL0NNRDIwCisjZGVmaW5lIFNESU9fU1RTX0FDTUQyMwkJKDE8PDE2KQkvL0FDTUQyMworI2RlZmluZSBTRElPX1NUU19QX0NTRAkJKDE8PDE1KQkvL1Byb2dyYW0gQ1NEIGludGVycnVwdAorI2RlZmluZSBTRElPX1NUU19DTUQ2X1NECSgxPDwxNCkJLy9DTUQ2LVN3aXRjaCBEb25lCisjZGVmaW5lIFNESU9fU1RTX0NNRDZfQ0QJKDE8PDEzKQkvL0NNRDYtQ2hlY2sgRG9uZQorI2RlZmluZSBTRElPX1NUU19DTUQyX0NNRDUyICgxPDwxMikJLy9Tb2Z0IFJlc2V0CisjZGVmaW5lIFNESU9fU1RTX0NNRDExCQkoMTw8MTEpCS8vQ29tbWFuZDExIFZvbHRhZ2Ugc3dpdGNoIGludGVycnVwdAorI2RlZmluZSBTRElPX1NUU19FCQkgICAgKDE8PDEwKQkvL0VyYXNlCisjZGVmaW5lIFNESU9fU1RTX0ZFCQkgICAgKDE8PDkpCS8vRm9yY2UgRXJhc2UKKyNkZWZpbmUgU0RJT19TVFNfVUMJICAgICAgICAoMTw8OCkJLy9VbmxvY2sgQ2FyZAorI2RlZmluZSBTRElPX1NUU19MQyAJCSgxPDw3KQkvL0xvY2sgQ2FyZAorI2RlZmluZSBTRElPX1NUU19QUiAJCSgxPDw2KQkvL1Bhc3N3b3JkIFJlc2V0CisjZGVmaW5lIFNESU9fU1RTX1BTCQkgICAgKDE8PDUpCS8vUGFzc3dvcmQgU2V0CisjZGVmaW5lIFNESU9fU1RTX1JTIAkJKDE8PDQpCS8vUmVhZCBTdGFydAorI2RlZmluZSBTRElPX1NUU19XUwkJICAgICgxPDwzKQkvL1dyaXRlIFN0YXJ0CisjZGVmaW5lIFNESU9fU1RTX1NBCQkgICAgKDE8PDIpCS8vU2xlZXAgYXdha2UKKyNkZWZpbmUgU0RJT19TVFNfRE1BMQkJKDE8PDEpCS8vRG1hMSBpbnRlcnJ1cHQKKyNkZWZpbmUgU0RJT19TVFNfVEMgCQkoMTw8MCkJLy9UcmFuc2ZlciBDb21wbGV0ZSBpbnRlcnJ1cHQKKworCit2b2lkIHNkaW9fc2xhdmVfcHJvY2Vzcyh2b2lkKTsKKworCisKKyNlbmRpZiAvKiBfX1NESU9fRFJWX0hfXyAqLworCisKZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvaW5jbHVkZS9zZWN1cmVfdmVyaWZ5LmggYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvc2VjdXJlX3ZlcmlmeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3MzdiZDEKLS0tIC9kZXYvbnVsbAorKysgYi9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvc2VjdXJlX3ZlcmlmeS5oCkBAIC0wLDAgKzEsMjYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYsIFpYSUMgQ29ycG9yYXRpb24uCisgKgorICogRmlsZSBOYW1lOiAgICAKKyAqIEZpbGUgTWFyazogICAgCisgKiBEZXNjcmlwdGlvbjogIAorICogT3RoZXJzOiAgICAgICAgCisgKiBWZXJzaW9uOiAgICAgIAorICogQXV0aG9yOiAgICAgICAgCisgKiBEYXRlOiAgICAgICAgICAKKyAqIEhpc3RvcnkgMTogICAgICAKKyAqICAgICBEYXRlOiAKKyAqICAgICBWZXJzaW9uOgorICogICAgIEF1dGhvcjogCisgKiAgICAgTW9kaWZpY2F0aW9uOiAgCisgKiBIaXN0b3J5IDI6IAorICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZm5kZWYgX19TRUNVUkVfVkVSSUZZX0hfXworI2RlZmluZSBfX1NFQ1VSRV9WRVJJRllfSF9fCisKKworCit1OCBTZWN1cmVWZXJpZnkodTMyIHB1aVNkcm1TdGFydEFkZHIpOworCisKKyNlbmRpZiAvKiBfX1NFQ1VSRV9WRVJJRllfSF9fICovCmRpZmYgLS1naXQgYS9ib290L2NvbW1vbi9zcmMvbG9hZGVyL2luY2x1ZGUvdmVyc2lvbi5oIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL3ZlcnNpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTZkMmU5Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9pbmNsdWRlL3ZlcnNpb24uaApAQCAtMCwwICsxLDI5IEBACisvKgorICogKEMpIENvcHlyaWdodCAyMDAwLTIwMDYKKyAqIFdvbGZnYW5nIERlbmssIERFTlggU29mdHdhcmUgRW5naW5lZXJpbmcsIHdkQGRlbnguZGUuCisgKgorICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyAqIHByb2plY3QuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKi8KKworI2lmbmRlZglfX1ZFUlNJT05fSF9fCisjZGVmaW5lCV9fVkVSU0lPTl9IX18KKworI2luY2x1ZGUgInZlcnNpb25fYXV0b2dlbmVyYXRlZC5oIgorCisjZW5kaWYJLyogX19WRVJTSU9OX0hfXyAqLwo=