From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jakub Jelinek To: git-commits@fedoraproject.org Subject: [rpms/gcc] rhel-f41-base: 4.1.2-20 Date: Mon, 29 Jun 2026 12:23:21 GMT Message-ID: <178273580176.1.12564171810358419265.rpms-gcc-95df1c0db64f@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: 95df1c0db64f40f7c7b685048ee10b69c59c552b QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogOTVkZjFjMGRiNjRmNDBmN2M3YjY4NTA0OGVlMTBiNjlj NTljNTUyYgpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAwNy0wOC0zMVQyMTowOTozMiswMDowMApTdGF0cyAgOiArNzk2Ly03IGluIDUg ZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2djYy9j Lzk1ZGYxYzBkYjY0ZjQwZjdjN2I2ODUwNDhlZTEwYjY5YzU5YzU1MmI/YnJhbmNoPXJoZWwtZjQx LWJhc2UKCkxvZzoKNC4xLjItMjAKCi0tLQpkaWZmIC0tZ2l0IGEvZ2NjNDEtYysrLWdudV9pbmxp bmUucGF0Y2ggYi9nY2M0MS1jKystZ251X2lubGluZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi41MTc1YTNkCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjNDEtYysrLWdu dV9pbmxpbmUucGF0Y2gKQEAgLTAsMCArMSw2MDggQEAKKzIwMDctMDgtMzEgIEpha3ViIEplbGlu ZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJKiBjcC10cmVlLmggKGNwX2Rpc3JlZ2FyZF9pbmxp bmVfbGltaXRzKTogTmV3IHByb3RvdHlwZS4KKwkqIGRlY2wuYyAoY3BfZGlzcmVnYXJkX2lubGlu ZV9saW1pdHMpOiBOZXcgZnVuY3Rpb24uCisJKiBjcC1vYmpjcC1jb21tb24uaAorCShMQU5HX0hP T0tTX1RSRUVfSU5MSU5JTkdfRElTUkVHQVJEX0lOTElORV9MSU1JVFMpOiBEZWZpbmUuCisKKzIw MDctMDgtMzAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJKiBnY2MuZGcv aW5saW5lLTI0LmM6IE5ldyB0ZXN0LgorCSogZysrLmRnL29wdC9pbmxpbmUxMS5DOiBOZXcgdGVz dC4KKworMjAwNy0wOC0yNyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CisK KwkqIGRvYy9leHRlbmQudGV4aSAoZ251X2lubGluZSBmdW50aW9uIGF0dHJpYnV0ZSk6IERvY3Vt ZW50IEMrKworCWJlaGF2aW9yLgorCisJKiBkZWNsLmMgKEdOVV9JTkxJTkVfUCk6IE5ldy4KKwko ZHVwbGljYXRlX2RlY2xzKTogSGFuZGxlIGdudV9pbmxpbmUuICBNZXJnZSBhdHRyaWJ1dGVzIGFu ZAorCXNvbWUgZmxhZ3MgaW4gb3ZlcnJpZGluZyBkZWZpbml0aW9ucy4KKwkocmVkZWNsYXJhdGlv bl9lcnJvcl9tZXNzYWdlKTogSGFuZGxlIGdudV9pbmxpbmUuCisJKHN0YXJ0X3ByZXBhcnNlZF9m dW5jdGlvbik6IExpa2V3aXNlLgorCisJKiBnKysuZGcvZXh0L2dudS1pbmxpbmUtY29tbW9uLmg6 IE5ldy4KKwkqIGcrKy5kZy9leHQvZ251LWlubGluZS1nbG9iYWwtcmVqZWN0LkM6IE5ldy4KKwkq IGcrKy5kZy9leHQvZ251LWlubGluZS1nbG9iYWwuQzogTmV3LgorCSogZysrLmRnL2V4dC9nbnUt aW5saW5lLW5hbWVzcGFjZS5DOiBOZXcuCisJKiBnKysuZGcvZXh0L2dudS1pbmxpbmUtYW5vbi1u YW1lc3BhY2UuQzogTmV3LgorCSogZysrLmRnL2V4dC9nbnUtaW5saW5lLWNsYXNzLkM6IE5ldy4K KwkqIGcrKy5kZy9leHQvZ251LWlubGluZS1jbGFzcy1zdGF0aWMuQzogTmV3LgorCSogZysrLmRn L2V4dC9nbnUtaW5saW5lLXRlbXBsYXRlLWNsYXNzLkM6IE5ldy4KKwkqIGcrKy5kZy9leHQvZ251 LWlubGluZS10ZW1wbGF0ZS1mdW5jLkM6IE5ldy4KKworLS0tIGdjYy9jcC9jcC10cmVlLmguamoJ MjAwNy0wOC0zMSAwOTo0Nzo0My4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvY3AvY3AtdHJlZS5o CTIwMDctMDgtMzEgMTQ6MDk6MDguMDAwMDAwMDAwICswMjAwCitAQCAtNDQxNyw2ICs0NDE3LDcg QEAgZXh0ZXJuIGxpbmthZ2Vfa2luZCBkZWNsX2xpbmthZ2UJCSh0cmVlKQorIGV4dGVybiB0cmVl IGNwX3dhbGtfc3VidHJlZXMgKHRyZWUqLCBpbnQqLCB3YWxrX3RyZWVfZm4sCisgCQkJICAgICAg dm9pZCosIHN0cnVjdCBwb2ludGVyX3NldF90Kik7CisgZXh0ZXJuIGludCBjcF9jYW5ub3RfaW5s aW5lX3RyZWVfZm4JCSh0cmVlKik7CisrZXh0ZXJuIGludCBjcF9kaXNyZWdhcmRfaW5saW5lX2xp bWl0cwkJKHRyZWUpOworIGV4dGVybiB0cmVlIGNwX2FkZF9wZW5kaW5nX2ZuX2RlY2xzCQkodm9p ZCosdHJlZSk7CisgZXh0ZXJuIGludCBjcF9hdXRvX3Zhcl9pbl9mbl9wCQkJKHRyZWUsdHJlZSk7 CisgZXh0ZXJuIHRyZWUgZm9sZF9pZl9ub3RfaW5fdGVtcGxhdGUJCSh0cmVlKTsKKy0tLSBnY2Mv Y3AvZGVjbC5jLmpqCTIwMDctMDgtMzEgMDk6NDc6NDMuMDAwMDAwMDAwICswMjAwCisrKysgZ2Nj L2NwL2RlY2wuYwkyMDA3LTA4LTMxIDE0OjI3OjEyLjAwMDAwMDAwMCArMDIwMAorQEAgLTEwOTcs NiArMTA5NywxMCBAQCBjaGVja19yZWRlY2xhcmF0aW9uX2V4Y2VwdGlvbl9zcGVjaWZpY2F0Cisg ICAgIH0KKyB9CisgCisrI2RlZmluZSBHTlVfSU5MSU5FX1AoZm4pIChERUNMX0RFQ0xBUkVEX0lO TElORV9QIChmbikJCQlcCisrCQkJICAmJiBsb29rdXBfYXR0cmlidXRlICgiZ251X2lubGluZSIs CQlcCisrCQkJCQkgICAgICAgREVDTF9BVFRSSUJVVEVTIChmbikpKQorKworIC8qIElmIE5FV0RF Q0wgaXMgYSByZWRlY2xhcmF0aW9uIG9mIE9MRERFQ0wsIG1lcmdlIHRoZSBkZWNsYXJhdGlvbnMu CisgICAgSWYgdGhlIHJlZGVjbGFyYXRpb24gaXMgaW52YWxpZCwgYSBkaWFnbm9zdGljIGlzIGlz c3VlZCwgYW5kIHRoZQorICAgIGVycm9yX21hcmtfbm9kZSBpcyByZXR1cm5lZC4gIE90aGVyd2lz ZSwgT0xEREVDTCBpcyByZXR1cm5lZC4KK0BAIC0xNjI2LDE5ICsxNjMwLDQ1IEBAIGR1cGxpY2F0 ZV9kZWNscyAodHJlZSBuZXdkZWNsLCB0cmVlIG9sZGQKKyAJPSBjaGFpbm9uIChERUNMX1RFTVBM QVRFX1NQRUNJQUxJWkFUSU9OUyAob2xkZGVjbCksCisgCQkgICBERUNMX1RFTVBMQVRFX1NQRUNJ QUxJWkFUSU9OUyAobmV3ZGVjbCkpOworIAorKyAgICAgIERFQ0xfQVRUUklCVVRFUyAob2xkX3Jl c3VsdCkKKysJPSAoKnRhcmdldG0ubWVyZ2VfZGVjbF9hdHRyaWJ1dGVzKSAob2xkX3Jlc3VsdCwg bmV3X3Jlc3VsdCk7CisrCisgICAgICAgaWYgKERFQ0xfRlVOQ1RJT05fVEVNUExBVEVfUCAobmV3 ZGVjbCkpCisgCXsKKy0JICBERUNMX0lOTElORSAob2xkX3Jlc3VsdCkKKy0JICAgIHw9IERFQ0xf SU5MSU5FIChuZXdfcmVzdWx0KTsKKy0JICBERUNMX0RFQ0xBUkVEX0lOTElORV9QIChvbGRfcmVz dWx0KQorLQkgICAgfD0gREVDTF9ERUNMQVJFRF9JTkxJTkVfUCAobmV3X3Jlc3VsdCk7CistCSAg Y2hlY2tfcmVkZWNsYXJhdGlvbl9leGNlcHRpb25fc3BlY2lmaWNhdGlvbiAobmV3ZGVjbCwgb2xk ZGVjbCk7CisrCSAgaWYgKEdOVV9JTkxJTkVfUCAob2xkX3Jlc3VsdCkgIT0gR05VX0lOTElORV9Q IChuZXdfcmVzdWx0KQorKwkgICAgICAmJiBERUNMX0lOSVRJQUwgKG5ld19yZXN1bHQpKQorKwkg ICAgeworKwkgICAgICBpZiAoREVDTF9JTklUSUFMIChvbGRfcmVzdWx0KSkKKysJCXsKKysJCSAg REVDTF9JTkxJTkUgKG9sZF9yZXN1bHQpID0gMDsKKysJCSAgREVDTF9VTklOTElOQUJMRSAob2xk X3Jlc3VsdCkgPSAxOworKwkJfQorKwkgICAgICBlbHNlCisrCQl7CisrCQkgIERFQ0xfSU5MSU5F IChvbGRfcmVzdWx0KSA9IERFQ0xfSU5MSU5FIChuZXdfcmVzdWx0KTsKKysJCSAgREVDTF9VTklO TElOQUJMRSAob2xkX3Jlc3VsdCkgPSBERUNMX1VOSU5MSU5BQkxFIChuZXdfcmVzdWx0KTsKKysJ CX0KKysJICAgICAgREVDTF9FWFRFUk5BTCAob2xkX3Jlc3VsdCkgPSBERUNMX0VYVEVSTkFMIChu ZXdfcmVzdWx0KTsKKysJICAgICAgREVDTF9OT1RfUkVBTExZX0VYVEVSTiAob2xkX3Jlc3VsdCkK KysJCT0gREVDTF9OT1RfUkVBTExZX0VYVEVSTiAobmV3X3Jlc3VsdCk7CisrCSAgICAgIERFQ0xf SU5URVJGQUNFX0tOT1dOIChvbGRfcmVzdWx0KQorKwkJPSBERUNMX0lOVEVSRkFDRV9LTk9XTiAo bmV3X3Jlc3VsdCk7CisrCSAgICAgIERFQ0xfREVDTEFSRURfSU5MSU5FX1AgKG9sZF9yZXN1bHQp CisrCQk9IERFQ0xfREVDTEFSRURfSU5MSU5FX1AgKG5ld19yZXN1bHQpOworKwkgICAgfQorKwkg IGVsc2UKKysJICAgIHsKKysJICAgICAgREVDTF9JTkxJTkUgKG9sZF9yZXN1bHQpCisrCQl8PSBE RUNMX0lOTElORSAobmV3X3Jlc3VsdCk7CisrCSAgICAgIERFQ0xfREVDTEFSRURfSU5MSU5FX1Ag KG9sZF9yZXN1bHQpCisrCQl8PSBERUNMX0RFQ0xBUkVEX0lOTElORV9QIChuZXdfcmVzdWx0KTsK KysJICAgICAgY2hlY2tfcmVkZWNsYXJhdGlvbl9leGNlcHRpb25fc3BlY2lmaWNhdGlvbiAobmV3 ZGVjbCwgb2xkZGVjbCk7CisrCSAgICB9CisgCX0KKyAKKyAgICAgICAvKiBJZiB0aGUgbmV3IGRl Y2xhcmF0aW9uIGlzIGEgZGVmaW5pdGlvbiwgdXBkYXRlIHRoZSBmaWxlIGFuZAorIAkgbGluZSBp bmZvcm1hdGlvbiBvbiB0aGUgZGVjbGFyYXRpb24uICAqLworLSAgICAgIGlmIChERUNMX0lOSVRJ QUwgKG9sZF9yZXN1bHQpID09IE5VTExfVFJFRQorLQkgICYmIERFQ0xfSU5JVElBTCAobmV3X3Jl c3VsdCkgIT0gTlVMTF9UUkVFKQorKyAgICAgIGlmIChERUNMX0lOSVRJQUwgKG5ld19yZXN1bHQp ICE9IE5VTExfVFJFRSkKKyAJeworIAkgIERFQ0xfU09VUkNFX0xPQ0FUSU9OIChvbGRkZWNsKQor IAkgICAgPSBERUNMX1NPVVJDRV9MT0NBVElPTiAob2xkX3Jlc3VsdCkKK0BAIC0xNzk1LDkgKzE4 MjUsMjkgQEAgZHVwbGljYXRlX2RlY2xzICh0cmVlIG5ld2RlY2wsIHRyZWUgb2xkZAorICAgbmV3 X3RlbXBsYXRlID0gTlVMTF9UUkVFOworICAgaWYgKERFQ0xfTEFOR19TUEVDSUZJQyAobmV3ZGVj bCkgJiYgREVDTF9MQU5HX1NQRUNJRklDIChvbGRkZWNsKSkKKyAgICAgeworLSAgICAgIERFQ0xf SU5URVJGQUNFX0tOT1dOIChuZXdkZWNsKSB8PSBERUNMX0lOVEVSRkFDRV9LTk9XTiAob2xkZGVj bCk7CistICAgICAgREVDTF9OT1RfUkVBTExZX0VYVEVSTiAobmV3ZGVjbCkgfD0gREVDTF9OT1Rf UkVBTExZX0VYVEVSTiAob2xkZGVjbCk7CistICAgICAgREVDTF9DT01EQVQgKG5ld2RlY2wpIHw9 IERFQ0xfQ09NREFUIChvbGRkZWNsKTsKKysgICAgICBib29sIG9sZF9kZWNsX2dudV9pbmxpbmU7 CisrCisrICAgICAgaWYgKChERUNMX0lOVEVSRkFDRV9LTk9XTiAob2xkZGVjbCkKKysJICAgJiYg VFJFRV9DT0RFIChvbGRkZWNsKSA9PSBGVU5DVElPTl9ERUNMKQorKwkgIHx8IChUUkVFX0NPREUg KG9sZGRlY2wpID09IFRFTVBMQVRFX0RFQ0wKKysJICAgICAgJiYgVFJFRV9DT0RFIChERUNMX1RF TVBMQVRFX1JFU1VMVCAob2xkZGVjbCkpID09IEZVTkNUSU9OX0RFQ0wpKQorKwl7CisrCSAgdHJl ZSBmbiA9IG9sZGRlY2w7CisrCisrCSAgaWYgKFRSRUVfQ09ERSAoZm4pID09IFRFTVBMQVRFX0RF Q0wpCisrCSAgICBmbiA9IERFQ0xfVEVNUExBVEVfUkVTVUxUIChvbGRkZWNsKTsKKysKKysJICBv bGRfZGVjbF9nbnVfaW5saW5lID0gR05VX0lOTElORV9QIChmbikgJiYgREVDTF9JTklUSUFMIChm bik7CisrCX0KKysgICAgICBlbHNlCisrCW9sZF9kZWNsX2dudV9pbmxpbmUgPSBmYWxzZTsKKysK KysgICAgICBpZiAoIW9sZF9kZWNsX2dudV9pbmxpbmUpCisrCXsKKysJICBERUNMX0lOVEVSRkFD RV9LTk9XTiAobmV3ZGVjbCkgfD0gREVDTF9JTlRFUkZBQ0VfS05PV04gKG9sZGRlY2wpOworKwkg IERFQ0xfTk9UX1JFQUxMWV9FWFRFUk4gKG5ld2RlY2wpIHw9IERFQ0xfTk9UX1JFQUxMWV9FWFRF Uk4gKG9sZGRlY2wpOworKwkgIERFQ0xfQ09NREFUIChuZXdkZWNsKSB8PSBERUNMX0NPTURBVCAo b2xkZGVjbCk7CisrCX0KKyAgICAgICBERUNMX1RFTVBMQVRFX0lOU1RBTlRJQVRFRCAobmV3ZGVj bCkKKyAJfD0gREVDTF9URU1QTEFURV9JTlNUQU5USUFURUQgKG9sZGRlY2wpOworIAorQEAgLTE4 NzEsNiArMTkyMSwxMyBAQCBkdXBsaWNhdGVfZGVjbHMgKHRyZWUgbmV3ZGVjbCwgdHJlZSBvbGRk CisgCSAgLyogW3RlbXAuZXhwbC5zcGVjLzE0XSBXZSBkb24ndCBpbmxpbmUgZXhwbGljaXQgc3Bl Y2lhbGl6YXRpb24KKyAJICAgICBqdXN0IGJlY2F1c2UgdGhlIHByaW1hcnkgdGVtcGxhdGUgc2F5 cyBzby4gICovCisgCX0KKysgICAgICBlbHNlIGlmIChuZXdfZGVmaW5lc19mdW5jdGlvbiAmJiBE RUNMX0lOSVRJQUwgKG9sZGRlY2wpKQorKwl7CisrCSAgLyogQysrIGlzIGFsd2F5cyBpbiBpbiB1 bml0LWF0LWEtdGltZSBtb2RlLCBzbyB3ZSBuZXZlcgorKwkgICAgIGlubGluZSByZS1kZWZpbmVk IGV4dGVybiBpbmxpbmUgZnVuY3Rpb25zLiAgKi8KKysJICBERUNMX0lOTElORSAobmV3ZGVjbCkg PSAwOworKwkgIERFQ0xfVU5JTkxJTkFCTEUgKG5ld2RlY2wpID0gMTsKKysJfQorICAgICAgIGVs c2UKKyAJeworIAkgIGlmIChERUNMX1BFTkRJTkdfSU5MSU5FX0lORk8gKG5ld2RlY2wpID09IDAp CitAQCAtMjExMyw5ICsyMTcwLDI1IEBAIHJlZGVjbGFyYXRpb25fZXJyb3JfbWVzc2FnZSAodHJl ZSBuZXdkZWMKKyAJeworIAkgIGlmIChERUNMX05BTUUgKG9sZGRlY2wpID09IE5VTExfVFJFRSkK KyAJICAgIHJldHVybiAiJXEjRCBub3QgZGVjbGFyZWQgaW4gY2xhc3MiOworLQkgIGVsc2UKKysJ ICBlbHNlIGlmICghR05VX0lOTElORV9QIChvbGRkZWNsKQorKwkJICAgfHwgR05VX0lOTElORV9Q IChuZXdkZWNsKSkKKyAJICAgIHJldHVybiAicmVkZWZpbml0aW9uIG9mICVxI0QiOworIAl9Cisr CisrICAgICAgaWYgKERFQ0xfREVDTEFSRURfSU5MSU5FX1AgKG9sZGRlY2wpICYmIERFQ0xfREVD TEFSRURfSU5MSU5FX1AgKG5ld2RlY2wpKQorKwl7CisrCSAgYm9vbCBvbGRhID0gR05VX0lOTElO RV9QIChvbGRkZWNsKTsKKysJICBib29sIG5ld2EgPSBHTlVfSU5MSU5FX1AgKG5ld2RlY2wpOwor KworKwkgIGlmIChvbGRhICE9IG5ld2EpCisrCSAgICB7CisrCSAgICAgIGlmIChuZXdhKQorKwkJ cmV0dXJuICIlcStEIHJlZGVjbGFyZWQgaW5saW5lIHdpdGggJTxnbnVfaW5saW5lJT4gYXR0cmli dXRlIjsKKysJICAgICAgZWxzZQorKwkJcmV0dXJuICIlcStEIHJlZGVjbGFyZWQgaW5saW5lIHdp dGhvdXQgJTxnbnVfaW5saW5lJT4gYXR0cmlidXRlIjsKKysJICAgIH0KKysJfQorKworICAgICAg IHJldHVybiAwOworICAgICB9CisgICBlbHNlIGlmIChUUkVFX0NPREUgKG5ld2RlY2wpID09IFRF TVBMQVRFX0RFQ0wpCitAQCAtMjE0MSw5ICsyMjE0LDI0IEBAIHJlZGVjbGFyYXRpb25fZXJyb3Jf bWVzc2FnZSAodHJlZSBuZXdkZWMKKyAgICAgICBvdCA9IERFQ0xfVEVNUExBVEVfUkVTVUxUIChv bGRkZWNsKTsKKyAgICAgICBpZiAoREVDTF9URU1QTEFURV9JTkZPIChvdCkpCisgCW90ID0gREVD TF9URU1QTEFURV9SRVNVTFQgKHRlbXBsYXRlX2Zvcl9zdWJzdGl0dXRpb24gKG90KSk7CistICAg ICAgaWYgKERFQ0xfSU5JVElBTCAobnQpICYmIERFQ0xfSU5JVElBTCAob3QpKQorKyAgICAgIGlm IChERUNMX0lOSVRJQUwgKG50KSAmJiBERUNMX0lOSVRJQUwgKG90KQorKwkgICYmICghR05VX0lO TElORV9QIChvdCkgfHwgR05VX0lOTElORV9QIChudCkpKQorIAlyZXR1cm4gInJlZGVmaW5pdGlv biBvZiAlcSNEIjsKKyAKKysgICAgICBpZiAoREVDTF9ERUNMQVJFRF9JTkxJTkVfUCAob3QpICYm IERFQ0xfREVDTEFSRURfSU5MSU5FX1AgKG50KSkKKysJeworKwkgIGJvb2wgb2xkYSA9IEdOVV9J TkxJTkVfUCAob3QpOworKwkgIGJvb2wgbmV3YSA9IEdOVV9JTkxJTkVfUCAobnQpOworKworKwkg IGlmIChvbGRhICE9IG5ld2EpCisrCSAgICB7CisrCSAgICAgIGlmIChuZXdhKQorKwkJcmV0dXJu ICIlcStEIHJlZGVjbGFyZWQgaW5saW5lIHdpdGggJTxnbnVfaW5saW5lJT4gYXR0cmlidXRlIjsK KysJICAgICAgZWxzZQorKwkJcmV0dXJuICIlcStEIHJlZGVjbGFyZWQgaW5saW5lIHdpdGhvdXQg JTxnbnVfaW5saW5lJT4gYXR0cmlidXRlIjsKKysJICAgIH0KKysJfQorKworICAgICAgIHJldHVy biBOVUxMOworICAgICB9CisgICBlbHNlIGlmIChUUkVFX0NPREUgKG5ld2RlY2wpID09IFZBUl9E RUNMCitAQCAtMTA0NDcsNiArMTA1MzUsMTQgQEAgc3RhcnRfcHJlcGFyc2VkX2Z1bmN0aW9uICh0 cmVlIGRlY2wxLCB0cgorICAgICAgICYmIGxvb2t1cF9hdHRyaWJ1dGUgKCJub2lubGluZSIsIGF0 dHJzKSkKKyAgICAgd2FybmluZyAoMCwgImlubGluZSBmdW5jdGlvbiAlcStEIGdpdmVuIGF0dHJp YnV0ZSBub2lubGluZSIsIGRlY2wxKTsKKyAKKysgIC8qIEhhbmRsZSBnbnVfaW5saW5lIGF0dHJp YnV0ZS4gICovCisrICBpZiAoR05VX0lOTElORV9QIChkZWNsMSkpCisrICAgIHsKKysgICAgICBE RUNMX0VYVEVSTkFMIChkZWNsMSkgPSAxOworKyAgICAgIERFQ0xfTk9UX1JFQUxMWV9FWFRFUk4g KGRlY2wxKSA9IDA7CisrICAgICAgREVDTF9JTlRFUkZBQ0VfS05PV04gKGRlY2wxKSA9IDE7Cisr ICAgIH0KKysKKyAgIGlmIChERUNMX01BWUJFX0lOX0NIQVJHRV9DT05TVFJVQ1RPUl9QIChkZWNs MSkpCisgICAgIC8qIFRoaXMgaXMgYSBjb25zdHJ1Y3Rvciwgd2UgbXVzdCBlbnN1cmUgdGhhdCBh bnkgZGVmYXVsdCBhcmdzCisgICAgICAgIGludHJvZHVjZWQgYnkgdGhpcyBkZWZpbml0aW9uIGFy ZSBwcm9wYWdhdGVkIHRvIHRoZSBjbG9uZXMKK0BAIC0xMDcwMiw4ICsxMDc5OCw5IEBAIHN0YXJ0 X3ByZXBhcnNlZF9mdW5jdGlvbiAodHJlZSBkZWNsMSwgdHIKKyAgIGVsc2UKKyAgICAgeworICAg ICAgIC8qIFRoaXMgaXMgYSBkZWZpbml0aW9uLCBub3QgYSByZWZlcmVuY2UuCistCSBTbyBjbGVh ciBERUNMX0VYVEVSTkFMLiAgKi8KKy0gICAgICBERUNMX0VYVEVSTkFMIChkZWNsMSkgPSAwOwor KwkgU28gY2xlYXIgREVDTF9FWFRFUk5BTCwgdW5sZXNzIHRoaXMgaXMgYSBHTlUgZXh0ZXJuIGlu bGluZS4gICovCisrICAgICAgaWYgKCFHTlVfSU5MSU5FX1AgKGRlY2wxKSkKKysJREVDTF9FWFRF Uk5BTCAoZGVjbDEpID0gMDsKKyAKKyAgICAgICBpZiAoKERFQ0xfREVDTEFSRURfSU5MSU5FX1Ag KGRlY2wxKQorIAkgICB8fCBERUNMX1RFTVBMQVRFX0lOU1RBTlRJQVRJT04gKGRlY2wxKSkKK0BA IC0xMTY5OCw0ICsxMTc5NSwxNyBAQCBjeHhfY29tZGF0X2dyb3VwICh0cmVlIGRlY2wpCisgICBy ZXR1cm4gSURFTlRJRklFUl9QT0lOVEVSIChuYW1lKTsKKyB9CisgCisrLyogV2Ugd2FudCB0byBp bmxpbmUgX19nbnVfaW5saW5lX18gZnVuY3Rpb25zIGV2ZW4gaWYgdGhpcyB3b3VsZAorKyAgIHZp b2xhdGUgaW5saW5pbmcgbGltaXRzLiAgU29tZSBnbGliYyBhbmQgbGludXggY29uc3RydWN0cyBk ZXBlbmQgb24KKysgICBzdWNoIGZ1bmN0aW9ucyBhbHdheXMgYmVpbmcgaW5saW5lZCB3aGVuIG9w dGltaXppbmcuICAqLworKworK2ludAorK2NwX2Rpc3JlZ2FyZF9pbmxpbmVfbGltaXRzICh0cmVl IGZuKQorK3sKKysgIGlmIChsb29rdXBfYXR0cmlidXRlICgiYWx3YXlzX2lubGluZSIsIERFQ0xf QVRUUklCVVRFUyAoZm4pKSAhPSBOVUxMKQorKyAgICByZXR1cm4gMTsKKysKKysgIHJldHVybiAo IWZsYWdfcmVhbGx5X25vX2lubGluZSAmJiBHTlVfSU5MSU5FX1AgKGZuKSk7CisrfQorKworICNp bmNsdWRlICJndC1jcC1kZWNsLmgiCistLS0gZ2NjL2NwL2NwLW9iamNwLWNvbW1vbi5oLmpqCTIw MDctMDItMjAgMjI6Mzc6MzQuMDAwMDAwMDAwICswMTAwCisrKysgZ2NjL2NwL2NwLW9iamNwLWNv bW1vbi5oCTIwMDctMDgtMzEgMTM6NTg6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMTA3LDYgKzEw Nyw5IEBAIGV4dGVybiB0cmVlIG9iamNwX3RzdWJzdF9jb3B5X2FuZF9idWlsZCAKKyAjdW5kZWYg TEFOR19IT09LU19UUkVFX0lOTElOSU5HX0NBTk5PVF9JTkxJTkVfVFJFRV9GTgorICNkZWZpbmUg TEFOR19IT09LU19UUkVFX0lOTElOSU5HX0NBTk5PVF9JTkxJTkVfVFJFRV9GTiBcCisgICBjcF9j YW5ub3RfaW5saW5lX3RyZWVfZm4KKysjdW5kZWYgTEFOR19IT09LU19UUkVFX0lOTElOSU5HX0RJ U1JFR0FSRF9JTkxJTkVfTElNSVRTCisrI2RlZmluZSBMQU5HX0hPT0tTX1RSRUVfSU5MSU5JTkdf RElTUkVHQVJEX0lOTElORV9MSU1JVFMgXAorKyAgY3BfZGlzcmVnYXJkX2lubGluZV9saW1pdHMK KyAjdW5kZWYgTEFOR19IT09LU19UUkVFX0lOTElOSU5HX0FERF9QRU5ESU5HX0ZOX0RFQ0xTCisg I2RlZmluZSBMQU5HX0hPT0tTX1RSRUVfSU5MSU5JTkdfQUREX1BFTkRJTkdfRk5fREVDTFMgXAor ICAgY3BfYWRkX3BlbmRpbmdfZm5fZGVjbHMKKy0tLSBnY2MvZG9jL2V4dGVuZC50ZXhpLmpqCTIw MDctMDgtMzEgMDk6NDc6NDAuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2RvYy9leHRlbmQudGV4 aQkyMDA3LTA4LTMxIDEzOjAwOjI4LjAwMDAwMDAwMCArMDIwMAorQEAgLTE1ODcsOCArMTU4Nyw4 IEBAIHJlZmVyIHRvIHRoZSBzaW5nbGUgY29weSBpbiB0aGUgbGlicmFyeS4KKyBkZWZpbml0aW9u cyBvZiB0aGUgZnVuY3Rpb25zIG5lZWQgbm90IGJlIHByZWNpc2VseSB0aGUgc2FtZSwgYWx0aG91 Z2gKKyBpZiB0aGV5IGRvIG5vdCBoYXZlIHRoZSBzYW1lIGVmZmVjdCB5b3VyIHByb2dyYW0gbWF5 IGJlaGF2ZSBvZGRseS4KKyAKKy1JZiB0aGUgZnVuY3Rpb24gaXMgbmVpdGhlciBAY29kZXtleHRl cm59IG5vciBAY29kZXtzdGF0aWN9LCB0aGVuIHRoZQorLWZ1bmN0aW9uIGlzIGNvbXBpbGVkIGFz IGEgc3RhbmRhbG9uZSBmdW5jdGlvbiwgYXMgd2VsbCBhcyBiZWluZworK0luIEMsIGlmIHRoZSBm dW5jdGlvbiBpcyBuZWl0aGVyIEBjb2Rle2V4dGVybn0gbm9yIEBjb2Rle3N0YXRpY30sIHRoZW4K Kyt0aGUgZnVuY3Rpb24gaXMgY29tcGlsZWQgYXMgYSBzdGFuZGFsb25lIGZ1bmN0aW9uLCBhcyB3 ZWxsIGFzIGJlaW5nCisgaW5saW5lZCB3aGVyZSBwb3NzaWJsZS4KKyAKKyBUaGlzIGlzIGhvdyBH Q0MgdHJhZGl0aW9uYWxseSBoYW5kbGVkIGZ1bmN0aW9ucyBkZWNsYXJlZAorQEAgLTE2MDYsNiAr MTYwNiwxMCBAQCBhc3N1bWUgdGhhdCBpdCBpcyBhbHdheXMgcHJlc2VudCwgd2hldGhlCisgSW4g dmVyc2lvbnMgcHJpb3IgdG8gNC4zLCB0aGUgb25seSBlZmZlY3Qgb2YgZXhwbGljaXRseSBpbmNs dWRpbmcgaXQgaXMKKyB0byBkaXNhYmxlIHdhcm5pbmdzIGFib3V0IHVzaW5nIGlubGluZSBmdW5j dGlvbnMgaW4gQzk5IG1vZGUuCisgCisrSW4gQysrLCB0aGlzIGF0dHJpYnV0ZSBkb2VzIG5vdCBk ZXBlbmQgb24gQGNvZGV7ZXh0ZXJufSBpbiBhbnkgd2F5LAorK2J1dCBpdCBzdGlsbCByZXF1aXJl cyB0aGUgQGNvZGV7aW5saW5lfSBrZXl3b3JkIHRvIGVuYWJsZSBpdHMgc3BlY2lhbAorK2JlaGF2 aW9yLgorKworIEBjaW5kZXggQGNvZGV7ZmxhdHRlbn0gZnVuY3Rpb24gYXR0cmlidXRlCisgQGl0 ZW0gZmxhdHRlbgorIEdlbmVyYWxseSwgaW5saW5pbmcgaW50byBhIGZ1bmN0aW9uIGlzIGxpbWl0 ZWQuICBGb3IgYSBmdW5jdGlvbiBtYXJrZWQgd2l0aAorLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRn L2lubGluZS0yNC5jLmpqCTIwMDctMDgtMzEgMTQ6MTE6NDUuMDAwMDAwMDAwICswMjAwCisrKysg Z2NjL3Rlc3RzdWl0ZS9nY2MuZGcvaW5saW5lLTI0LmMJMjAwNy0wOC0zMCAxODo0Mzo1NS4wMDAw MDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMjggQEAKKysvKiBWZXJpZnkgdGhhdCBnbnVfaW5saW5l IGlubGluZXMgZGlzcmVnYXJkIGlubGluaW5nIGxpbWl0cy4gICovCisrLyogeyBkZy1kbyBsaW5r IH0gKi8KKysvKiB7IGRnLW9wdGlvbnMgIi1PMiIgfSAqLworKworK2V4dGVybiBpbnQgZm9vIChp bnQpOworK2V4dGVybiBpbnQgYmF6IChpbnQpOworKworK2V4dGVybiBpbmxpbmUgX19hdHRyaWJ1 dGVfXygoZ251X2lubGluZSkpCisraW50IGZvbyAoaW50IHgpCisreworKyAgaW50IGk7CisrICBp ZiAoIV9fYnVpbHRpbl9jb25zdGFudF9wICh4KSkKKysgICAgeworKyNkZWZpbmUgQihuKSBiYXog KDEjI24pICsgYmF6ICgyIyNuKSArIGJheiAoMyMjbikgXAorKwkgICAgICsgYmF6ICg0IyNuKSAr IGJheiAoNSMjbikgKyBiYXogKDYjI24pCisrI2RlZmluZSBDKG4pIEIoMSMjbikgKyBCKDIjI24p ICsgQigzIyNuKSArIEIoNCMjbikgKyBCKDUjI24pICsgQig2IyNuKQorKyNkZWZpbmUgRChuKSBD KDEjI24pICsgQygyIyNuKSArIEMoMyMjbikgKyBDKDQjI24pICsgQyg1IyNuKSArIEMoNiMjbikK KysgICAgICByZXR1cm4gRCgwKSArIEQoMSkgKyBEKDIpICsgRCgzKSArIEQoNCkKKysJICAgICAr IEQoNSkgKyBEKDYpICsgRCg3KSArIEQoOCkgKyBEKDkpOworKyAgICB9CisrICByZXR1cm4gMDsK Kyt9CisrCisraW50CisrbWFpbiAodm9pZCkKKyt7CisrICByZXR1cm4gZm9vICgwKTsKKyt9Cist LS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvb3B0L2lubGluZTExLkMuamoJMjAwNy0wOC0zMSAxNDox MjowNS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9vcHQvaW5saW5l MTEuQwkyMDA3LTA4LTMwIDE4OjQzOjU1LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyOCBA QAorKy8qIFZlcmlmeSB0aGF0IGdudV9pbmxpbmUgaW5saW5lcyBkaXNyZWdhcmQgaW5saW5pbmcg bGltaXRzLiAgKi8KKysvKiB7IGRnLWRvIGxpbmsgfSAqLworKy8qIHsgZGctb3B0aW9ucyAiLU8y IiB9ICovCisrCisrZXh0ZXJuIGludCBmb28gKGludCk7CisrZXh0ZXJuIGludCBiYXogKGludCk7 CisrCisrZXh0ZXJuIGlubGluZSBfX2F0dHJpYnV0ZV9fKChnbnVfaW5saW5lKSkKKytpbnQgZm9v IChpbnQgeCkKKyt7CisrICBpbnQgaTsKKysgIGlmICghX19idWlsdGluX2NvbnN0YW50X3AgKHgp KQorKyAgICB7CisrI2RlZmluZSBCKG4pIGJheiAoMSMjbikgKyBiYXogKDIjI24pICsgYmF6ICgz IyNuKSBcCisrCSAgICAgKyBiYXogKDQjI24pICsgYmF6ICg1IyNuKSArIGJheiAoNiMjbikKKysj ZGVmaW5lIEMobikgQigxIyNuKSArIEIoMiMjbikgKyBCKDMjI24pICsgQig0IyNuKSArIEIoNSMj bikgKyBCKDYjI24pCisrI2RlZmluZSBEKG4pIEMoMSMjbikgKyBDKDIjI24pICsgQygzIyNuKSAr IEMoNCMjbikgKyBDKDUjI24pICsgQyg2IyNuKQorKyAgICAgIHJldHVybiBEKDApICsgRCgxKSAr IEQoMikgKyBEKDMpICsgRCg0KQorKwkgICAgICsgRCg1KSArIEQoNikgKyBEKDcpICsgRCg4KSAr IEQoOSk7CisrICAgIH0KKysgIHJldHVybiAwOworK30KKysKKytpbnQKKyttYWluICh2b2lkKQor K3sKKysgIHJldHVybiBmb28gKDApOworK30KKy0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQv Z251LWlubGluZS1nbG9iYWwtcmVqZWN0LkMuamoJMjAwNy0wOC0zMSAxMzowMDoyOC4wMDAwMDAw MDAgKzAyMDAKKysrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQvZ251LWlubGluZS1nbG9iYWwt cmVqZWN0LkMJMjAwNy0wOC0zMSAxMzowMDoyOC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEs NTUgQEAKKysvKiBUZXN0IF9fYXR0cmlidXRlX18oKGdudV9pbmxpbmUpKS4KKysKKysgICBDaGVj ayB0aGF0IHdlIHJlamVjdCB2YXJpb3VzIGZvcm1zIG9mIGR1cGxpY2F0ZSBkZWZpbml0aW9ucy4K KysqLworKworKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisrCisrI2luY2x1ZGUgImdudS1pbmxp bmUtY29tbW9uLmgiCisrCisrI3VuZGVmIGZuCisrI2RlZmluZSBmbiBwZngoZnVuY19kZWNsX2lu bGluZV9iZWZvcmUpCisrZGVjbChpbmxpbmUsIGZuKSAvLyB7IGRnLWVycm9yICJwcmV2aW91cyIg IiIgfQorK2dudWluZGVmKGZuLCAwKSAvLyB7IGRnLWVycm9yICJyZWRlY2xhcmVkIiAiIiB9Cisr CisrI3VuZGVmIGZuCisrI2RlZmluZSBmbiBwZngoZnVuY19kZWNsX2lubGluZV9hZnRlcikKKytn bnVpbmRlZihmbiwgMCkgLy8geyBkZy1lcnJvciAicHJldmlvdXMiICIiIH0KKytkZWNsKGlubGlu ZSwgZm4pIC8vIHsgZGctZXJyb3IgInJlZGVjbGFyZWQiICIiIH0KKysKKysjdW5kZWYgZm4KKysj ZGVmaW5lIGZuIHBmeChmdW5jX2RlZl9nbnVpbl9yZWRlZikKKytnbnVpbmRlZihmbiwgMCkgLy8g eyBkZy1lcnJvciAicHJldmlvdXMiICIiIH0KKytnbnVpbmRlZihmbiwgMSkgLy8geyBkZy1lcnJv ciAicmVkZWZpbml0aW9uIiAiIiB9CisrCisrI3VuZGVmIGZuCisrI2RlZmluZSBmbiBwZngoZnVu Y19kZWZfaW5saW5lX3JlZGVmKQorK2RlZihpbmxpbmUsIGZuLCAwKSAvLyB7IGRnLWVycm9yICJw cmV2aW91cyIgIiIgfQorK2RlZihpbmxpbmUsIGZuLCAxKSAvLyB7IGRnLWVycm9yICJyZWRlZmlu aXRpb24iICIiIH0KKysKKysjdW5kZWYgZm4KKysjZGVmaW5lIGZuIHBmeChmdW5jX2RlZl9pbmxp bmVfYWZ0ZXIpCisrZ251aW5kZWYoZm4sIDApIC8vIHsgZGctZXJyb3IgInByZXZpb3VzIiAiIiB9 CisrZGVmKGlubGluZSwgZm4sIDEpIC8vIHsgZGctZXJyb3IgInJlZGVjbGFyZSIgIiIgfQorKwor KyN1bmRlZiBmbgorKyNkZWZpbmUgZm4gcGZ4KGZ1bmNfZGVmX2lubGluZV9iZWZvcmUpCisrZGVm KGlubGluZSwgZm4sIDApIC8vIHsgZGctZXJyb3IgInByZXZpb3VzIiAiIiB9CisrZ251aW5kZWYo Zm4sIDEpIC8vIHsgZGctZXJyb3IgInJlZGVmaW5pdGlvbiIgIiIgfQorKworKyN1bmRlZiBmbgor KyNkZWZpbmUgZm4gcGZ4KGZ1bmNfZGVmX2JlZm9yZSkKKytkZWYoLCBmbiwgMCkgLy8geyBkZy1l cnJvciAicHJldmlvdXMiICIiIH0KKytnbnVpbmRlZihmbiwgMSkgLy8geyBkZy1lcnJvciAicmVk ZWZpbml0aW9uIiAiIiB9CisrCisrI3VuZGVmIGZuCisrI2RlZmluZSBmbiBwZngoZnVuY19kZWNs X3N0YXRpY19pbmxpbmVfYmVmb3JlKQorK2RlY2woc3RhdGljIGlubGluZSwgZm4pIC8vIHsgZGct ZXJyb3IgInByZXZpb3VzIiAiIiB9CisrZ251aW5kZWYoZm4sIDApIC8vIHsgZGctZXJyb3IgInJl ZGVjbGFyZWQiICIiIH0KKysKKysjdW5kZWYgZm4KKysjZGVmaW5lIGZuIHBmeChmdW5jX2RlZl9z dGF0aWNfaW5saW5lX2FmdGVyKQorK2RlY2woc3RhdGljLCBmbikKKytnbnVpbmRlZihmbiwgMCkg Ly8geyBkZy1lcnJvciAicHJldmlvdXMiICIiIH0KKytkZWNsKHN0YXRpYywgZm4pCisrZGVmKHN0 YXRpYyBpbmxpbmUsIGZuLCAxKSAvLyB7IGRnLWVycm9yICJyZWRlY2xhcmUiICIiIH0KKy0tLSBn Y2MvdGVzdHN1aXRlL2crKy5kZy9leHQvZ251LWlubGluZS10ZW1wbGF0ZS1mdW5jLkMuamoJMjAw Ny0wOC0zMSAxMzowMDoyOC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvdGVzdHN1aXRlL2crKy5k Zy9leHQvZ251LWlubGluZS10ZW1wbGF0ZS1mdW5jLkMJMjAwNy0wOC0zMSAxMzowMDoyOC4wMDAw MDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTcgQEAKKysvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwor Ky8qIHsgZGctb3B0aW9ucyAiLU8iIH0gKi8gLy8gc3VjaCB0aGF0IHN0YXRpYyBmdW5jdGlvbnMg YXJlIG9wdGltaXplZCBvdXQKKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgImZ1bmMx IiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgImZ1bmMyIiB9IH0gKi8K KysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJmdW5jMyIgfSB9ICovCisrLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJmdW5jNCIgfSB9ICovCisrLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAiZnVuYzUiIH0gfSAqLworKworKyNkZWZpbmUgZGVmcGZ4 IHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorKworKyNpbmNsdWRlICJnbnUtaW5saW5lLWdsb2JhbC5D IgorKworK3RlbXBsYXRlIGludCBmdW5jMTxpbnQ+KHZvaWQpOworK3RlbXBsYXRlIGludCBmdW5j MjxpbnQ+KHZvaWQpOworK3RlbXBsYXRlIGludCBmdW5jMzxpbnQ+KHZvaWQpOworK3RlbXBsYXRl IGludCBmdW5jNDxpbnQ+KHZvaWQpOworK3RlbXBsYXRlIGludCBmdW5jNTxpbnQ+KHZvaWQpOwor LS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9nbnUtaW5saW5lLWNvbW1vbi5oLmpqCTIwMDct MDgtMzEgMTM6MDA6MjguMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcv ZXh0L2dudS1pbmxpbmUtY29tbW9uLmgJMjAwNy0wOC0zMSAxMzowMDoyOC4wMDAwMDAwMDAgKzAy MDAKK0BAIC0wLDAgKzEsMjQgQEAKKysjaWZuZGVmIGdudQorKyMgZGVmaW5lIGdudV9pbmxpbmUg X19hdHRyaWJ1dGVfXygoZ251X2lubGluZSkpIGlubGluZQorKyNlbmRpZgorKworKyNkZWZpbmUg ZGVjbHNwZWMoc3BlYywgbmFtZSkgc3BlYyBpbnQgbmFtZSAodm9pZCkKKysjaWZkZWYgSU5fQ0xB U1MKKysjIGRlZmluZSBkZWNsKHNwZWMsIG5hbWUpCisrI2Vsc2UKKysjIGRlZmluZSBkZWNsKHNw ZWMsIG5hbWUpIGRlZnBmeCBkZWNsc3BlYyhzcGVjLCBuYW1lKTsKKysjZW5kaWYKKysjZGVmaW5l IGRlZihzcGVjLCBuYW1lLCByZXQpIGRlZnBmeCBkZWNsc3BlYyhzcGVjLCBuYW1lKSB7IHJldHVy biByZXQ7IH0KKysjZGVmaW5lIGdudWluZGVmKG5hbWUsIHJldCkgZGVmKGdudV9pbmxpbmUsIG5h bWUsIHJldCkKKysKKysjaWZuZGVmIHBmeAorKyMgaWZkZWYgSU5fQ0xBU1MKKysjICBkZWZpbmUg cGZ4KHgpIElOX0NMQVNTOjp4CisrIyBlbHNlCisrIyAgZGVmaW5lIHBmeCh4KSB4CisrIyBlbmRp ZgorKyNlbmRpZgorKworKyNpZm5kZWYgZGVmcGZ4CisrIyBkZWZpbmUgZGVmcGZ4CisrI2VuZGlm CistLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L2dudS1pbmxpbmUtYW5vbi1uYW1lc3BhY2Uu Qy5qagkyMDA3LTA4LTMxIDEzOjAwOjI4LjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy90ZXN0c3Vp dGUvZysrLmRnL2V4dC9nbnUtaW5saW5lLWFub24tbmFtZXNwYWNlLkMJMjAwNy0wOC0zMSAxMzow MDoyOC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTEgQEAKKysvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLworKy8qIHsgZGctb3B0aW9ucyAiLU8iIH0gKi8gLy8gc3VjaCB0aGF0IHN0YXRpYyBm dW5jdGlvbnMgYXJlIG9wdGltaXplZCBvdXQKKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItbm90ICJmdW5jMSIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5v dCAiZnVuYzIiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3QgImZ1 bmMzIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJmdW5jNCIg fSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAiZnVuYzUiIH0gfSAq LworKworK25hbWVzcGFjZSB7CisrI2luY2x1ZGUgImdudS1pbmxpbmUtZ2xvYmFsLkMiCisrfQor LS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9nbnUtaW5saW5lLWNsYXNzLXN0YXRpYy5DLmpq CTIwMDctMDgtMzEgMTM6MDA6MjguMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL3Rlc3RzdWl0ZS9n KysuZGcvZXh0L2dudS1pbmxpbmUtY2xhc3Mtc3RhdGljLkMJMjAwNy0wOC0zMSAxMzowMDoyOC4w MDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMjAgQEAKKysvKiB7IGRnLWRvIGNvbXBpbGUgfSAq LworKy8qIHsgZGctb3B0aW9ucyAiLU8iIH0gKi8gLy8gc3VjaCB0aGF0IHN0YXRpYyBmdW5jdGlv bnMgYXJlIG9wdGltaXplZCBvdXQKKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgImZ1 bmMxIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgImZ1bmMyIiB9IH0g Ki8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJmdW5jMyIgfSB9ICovCisr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJmdW5jNCIgfSB9ICovCisrLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyICJmdW5jNSIgfSB9ICovCisrCisrI3VuZGVmIElOX0NMQVNT CisrI2RlZmluZSBJTl9DTEFTUyBnbnVfdGVzdF9zdGF0aWMKKysKKytzdHJ1Y3QgSU5fQ0xBU1Mg eworKyAgc3RhdGljIGludCBmdW5jMSh2b2lkKTsKKysgIHN0YXRpYyBpbnQgZnVuYzIodm9pZCk7 CisrICBzdGF0aWMgaW50IGZ1bmMzKHZvaWQpOworKyAgc3RhdGljIGludCBmdW5jNCh2b2lkKTsK KysgIHN0YXRpYyBpbnQgZnVuYzUodm9pZCk7CisrfTsKKysKKysjaW5jbHVkZSAiZ251LWlubGlu ZS1nbG9iYWwuQyIKKy0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQvZ251LWlubGluZS1nbG9i YWwuQy5qagkyMDA3LTA4LTMxIDEzOjAwOjI4LjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy90ZXN0 c3VpdGUvZysrLmRnL2V4dC9nbnUtaW5saW5lLWdsb2JhbC5DCTIwMDctMDgtMzEgMTM6MDA6Mjgu MDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDUwIEBACisrLyogVGVzdCBfX2F0dHJpYnV0ZV9f KChnbnVfaW5saW5lKSkuCisrCisrICAgQ2hlY2sgdGhhdCBfX2F0dHJpYnV0ZV9fKChnbnVfaW5s aW5lKSkgaGFzIG5vIGVmZmVjdCwgaW4gdGhlCisrICAgYWJzZW5jZSBvZiBleHRlcm4gYW5kL29y IGlubGluZS4KKysKKysgICBDaGVjayB0aGF0IHdlIGRvbid0IGdldCBvdXQtb2YtbGluZSBkZWZp bml0aW9ucyBmb3IgZXh0ZXJuIGlubGluZQorKyAgIGdudV9pbmxpbmUgZnVuY3Rpb25zLCByZWdh cmRsZXNzIG9mIGRlY2xhcmF0aW9ucyBvciBkZWZpbml0aW9ucy4KKysKKysgICBDaGVjayB0aGF0 IHN1Y2ggZnVuY3Rpb25zIGNhbiBiZSBvdmVycmlkZGVuIGJ5IG91dC1vZi1saW5lCisrICAgZGVm aW5pdGlvbnMuCisrCisrICovCisrCisrLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKysvKiB7IGRn LW9wdGlvbnMgIi1PIiB9ICovIC8vIHN1Y2ggdGhhdCBzdGF0aWMgZnVuY3Rpb25zIGFyZSBvcHRp bWl6ZWQgb3V0CisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJmdW5jMSIgfSB9ICov CisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJmdW5jMiIgfSB9ICovCisrLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAiZnVuYzMiIH0gfSAqLworKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlciAiZnVuYzQiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci1ub3QgImZ1bmM1IiB9IH0gKi8KKysKKysjaW5jbHVkZSAiZ251LWlubGluZS1j b21tb24uaCIKKysKKysjdW5kZWYgZm4KKysjZGVmaW5lIGZuIHBmeChmdW5jMSkgLy8gbXVzdCBi ZSBlbWl0dGVkIG91dC1vZi1saW5lCisrZ251aW5kZWYoZm4sIDApCisrZGVmKCwgZm4sIDIpCisr CisrI3VuZGVmIGZuCisrI2RlZmluZSBmbiBwZngoZnVuYzIpIC8vIG11c3QgYmUgZW1pdHRlZCBv dXQtb2YtbGluZQorK2RlY2woZXh0ZXJuLCBmbikKKytnbnVpbmRlZihmbiwgMCkKKytkZWYoLCBm biwgMikKKysKKysjdW5kZWYgZm4KKysjZGVmaW5lIGZuIHBmeChmdW5jMykgLy8gbXVzdCBub3Qg YmUgZW1pdHRlZAorK2RlY2woZXh0ZXJuLCBmbikKKytnbnVpbmRlZihmbiwgMCkKKysKKysjdW5k ZWYgZm4KKysjZGVmaW5lIGZuIHBmeChmdW5jNCkgLy8gbXVzdCBiZSBlbWl0dGVkIG91dC1vZi1s aW5lCisrZGVjbChleHRlcm4sIGZuKQorK2dudWluZGVmKGZuLCAwKQorK2RlZigsIGZuLCAxKQor KworKyN1bmRlZiBmbgorKyNkZWZpbmUgZm4gcGZ4KGZ1bmM1KSAvLyBtdXN0IE5PVCBiZSBlbWl0 dGVkLCBiZWNhdXNlIGl0J3Mgc3RhdGljIGFuZCB1bnVzZWQKKytkZWNsKHN0YXRpYywgZm4pCisr Z251aW5kZWYoZm4sIDApCisrZGVmKCwgZm4sIDEpCistLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcv ZXh0L2dudS1pbmxpbmUtdGVtcGxhdGUtY2xhc3MuQy5qagkyMDA3LTA4LTMxIDEzOjAwOjI4LjAw MDAwMDAwMCArMDIwMAorKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9nbnUtaW5saW5lLXRl bXBsYXRlLWNsYXNzLkMJMjAwNy0wOC0zMSAxMzowMDoyOC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0w LDAgKzEsMjIgQEAKKysvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworKy8qIHsgZGctb3B0aW9ucyAi LU8iIH0gKi8gLy8gc3VjaCB0aGF0IHN0YXRpYyBmdW5jdGlvbnMgYXJlIG9wdGltaXplZCBvdXQK KysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgImZ1bmMxIiB9IH0gKi8KKysvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgImZ1bmMyIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItbm90ICJmdW5jMyIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyICJmdW5jNCIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy ICJmdW5jNSIgfSB9ICovCisrCisrdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBnbnVfdGVz dCB7CisrICBpbnQgZnVuYzEodm9pZCk7CisrICBpbnQgZnVuYzIodm9pZCk7CisrICBpbnQgZnVu YzModm9pZCk7CisrICBpbnQgZnVuYzQodm9pZCk7CisrICBpbnQgZnVuYzUodm9pZCk7CisrfTsK KysKKysjZGVmaW5lIGRlZnBmeCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKysjZGVmaW5lIElOX0NM QVNTIGdudV90ZXN0PFQ+CisrCisrI2luY2x1ZGUgImdudS1pbmxpbmUtZ2xvYmFsLkMiCisrCisr dGVtcGxhdGUgc3RydWN0IGdudV90ZXN0PGludD47CistLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcv ZXh0L2dudS1pbmxpbmUtbmFtZXNwYWNlLkMuamoJMjAwNy0wOC0zMSAxMzowMDoyOC4wMDAwMDAw MDAgKzAyMDAKKysrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQvZ251LWlubGluZS1uYW1lc3Bh Y2UuQwkyMDA3LTA4LTMxIDEzOjAwOjI4LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxMSBA QAorKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisrLyogeyBkZy1vcHRpb25zICItTyIgfSAqLyAv LyBzdWNoIHRoYXQgc3RhdGljIGZ1bmN0aW9ucyBhcmUgb3B0aW1pemVkIG91dAorKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiZnVuYzEiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlciAiZnVuYzIiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci1ub3QgImZ1bmMzIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIg ImZ1bmM0IiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJmdW5j NSIgfSB9ICovCisrCisrbmFtZXNwYWNlIGdudV90ZXN0IHsKKysjaW5jbHVkZSAiZ251LWlubGlu ZS1nbG9iYWwuQyIKKyt9CistLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L2dudS1pbmxpbmUt Y2xhc3MuQy5qagkyMDA3LTA4LTMxIDEzOjAwOjI4LjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy90 ZXN0c3VpdGUvZysrLmRnL2V4dC9nbnUtaW5saW5lLWNsYXNzLkMJMjAwNy0wOC0zMSAxMzowMDoy OC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTkgQEAKKysvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLworKy8qIHsgZGctb3B0aW9ucyAiLU8iIH0gKi8gLy8gc3VjaCB0aGF0IHN0YXRpYyBmdW5j dGlvbnMgYXJlIG9wdGltaXplZCBvdXQKKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIg ImZ1bmMxIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgImZ1bmMyIiB9 IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJmdW5jMyIgfSB9ICov CisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJmdW5jNCIgfSB9ICovCisrLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJmdW5jNSIgfSB9ICovCisrCisrI2RlZmluZSBJTl9D TEFTUyBnbnVfdGVzdAorKworK3N0cnVjdCBJTl9DTEFTUyB7CisrICBpbnQgZnVuYzEodm9pZCk7 CisrICBpbnQgZnVuYzIodm9pZCk7CisrICBpbnQgZnVuYzModm9pZCk7CisrICBpbnQgZnVuYzQo dm9pZCk7CisrICBpbnQgZnVuYzUodm9pZCk7CisrfTsKKysKKysjaW5jbHVkZSAiZ251LWlubGlu ZS1nbG9iYWwuQyIKCmRpZmYgLS1naXQgYS9nY2M0MS1wcGMtc3luYy1xaWhpLnBhdGNoIGIvZ2Nj NDEtcHBjLXN5bmMtcWloaS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5jZjczZThhCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjNDEtcHBjLXN5bmMtcWloaS5wYXRjaApA QCAtMCwwICsxLDgyIEBACisyMDA3LTA4LTI5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0 LmNvbT4KKworCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2VtaXRfc3luYyk6IEZv ciBRSSBvciBISSBtb2RlCisJdXNlZF9tLCBldmVuIGlmIGl0IGlzIDMyLWJpdCBhbGlnbmVkLCBh ZGp1c3QgdXNlZF9tIE1FTSB0byBoYXZlCisJU0ltb2RlIGFuZCB1cGRhdGUgbS4gIERvbid0IHJ1 biBnZW5fbG93cGFydF9jb21tb24gb24gYXJiaXRyYXJ5CisJbWVtb3J5IGFkZHJlc3MsIGZvcmNl IGl0IHRvIHJlZ2lzdGVyIGZpcnN0LgorCisJKiBnY2MuZGcvc3luYy0yLmMgKEFJX0FMSUdOKTog RGVmaW5lIGlmIG5vdCBkZWZpbmVkLgorCShBSSk6IEFkZCBBSV9BTElHTi4KKwkqIGdjYy5kZy9z eW5jLTMuYzogTmV3IHRlc3QuCisKKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuYy5qagky MDA3LTA4LTI3IDE0OjU2OjM2LjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy9jb25maWcvcnM2MDAw L3JzNjAwMC5jCTIwMDctMDgtMjkgMjI6MTU6NDEuMDAwMDAwMDAwICswMjAwCitAQCAtMTI3NTcs MTQgKzEyNzU3LDE2IEBAIHJzNjAwMF9lbWl0X3N5bmMgKGVudW0gcnR4X2NvZGUgY29kZSwgZW4K KyAJICAgIGlzaGlmdCA9IEdFVF9NT0RFX0JJVFNJWkUgKFNJbW9kZSkgLSBHRVRfTU9ERV9CSVRT SVpFIChtb2RlKTsKKyAKKyAJICBzaGlmdCA9IEdFTl9JTlQgKGlzaGlmdCk7CisrCSAgdXNlZF9t ID0gY2hhbmdlX2FkZHJlc3MgKHVzZWRfbSwgU0ltb2RlLCAwKTsKKyAJfQorICAgICAgIGVsc2UK KyAJeworIAkgIHJ0eCBhZGRyU0ksIGFsaWduZWRfYWRkcjsKKyAJICBpbnQgc2hpZnRfbWFzayA9 IG1vZGUgPT0gUUltb2RlID8gMHgxOCA6IDB4MTA7CisgCistCSAgYWRkclNJID0gZm9yY2VfcmVn IChTSW1vZGUsIGdlbl9sb3dwYXJ0X2NvbW1vbiAoU0ltb2RlLAorLQkJCQkJCQkgIFhFWFAgKHVz ZWRfbSwgMCkpKTsKKysJICBhZGRyU0kgPSBnZW5fbG93cGFydF9jb21tb24gKFNJbW9kZSwKKysJ CQkJICAgICAgIGZvcmNlX3JlZyAoUG1vZGUsIFhFWFAgKHVzZWRfbSwgMCkpKTsKKysJICBhZGRy U0kgPSBmb3JjZV9yZWcgKFNJbW9kZSwgYWRkclNJKTsKKyAJICBzaGlmdCA9IGdlbl9yZWdfcnR4 IChTSW1vZGUpOworIAorIAkgIGVtaXRfaW5zbiAoZ2VuX3Jsd2lubSAoc2hpZnQsIGFkZHJTSSwg R0VOX0lOVCAoMyksCitAQCAtMTI3NzcsMTQgKzEyNzc5LDE0IEBAIHJzNjAwMF9lbWl0X3N5bmMg KGVudW0gcnR4X2NvZGUgY29kZSwgZW4KKyAJCQkJICAgICAgIDEsIE9QVEFCX0xJQl9XSURFTik7 CisgCSAgdXNlZF9tID0gY2hhbmdlX2FkZHJlc3MgKHVzZWRfbSwgU0ltb2RlLCBhbGlnbmVkX2Fk ZHIpOworIAkgIHNldF9tZW1fYWxpZ24gKHVzZWRfbSwgMzIpOworLQkgIC8qIEl0J3Mgc2FmZSB0 byBrZWVwIHRoZSBvbGQgYWxpYXMgc2V0IG9mIFVTRURfTSwgYmVjYXVzZQorLQkgICAgIHRoZSBv cGVyYXRpb24gaXMgYXRvbWljIGFuZCBvbmx5IGFmZmVjdHMgdGhlIG9yaWdpbmFsCistCSAgICAg VVNFRF9NLiAgKi8KKy0JICBpZiAoR0VUX0NPREUgKG0pID09IE5PVCkKKy0JICAgIG0gPSBnZW5f cnR4X05PVCAoU0ltb2RlLCB1c2VkX20pOworLQkgIGVsc2UKKy0JICAgIG0gPSB1c2VkX207Cisg CX0KKysgICAgICAvKiBJdCdzIHNhZmUgdG8ga2VlcCB0aGUgb2xkIGFsaWFzIHNldCBvZiBVU0VE X00sIGJlY2F1c2UKKysJIHRoZSBvcGVyYXRpb24gaXMgYXRvbWljIGFuZCBvbmx5IGFmZmVjdHMg dGhlIG9yaWdpbmFsCisrCSBVU0VEX00uICAqLworKyAgICAgIGlmIChHRVRfQ09ERSAobSkgPT0g Tk9UKQorKwltID0gZ2VuX3J0eF9OT1QgKFNJbW9kZSwgdXNlZF9tKTsKKysgICAgICBlbHNlCisr CW0gPSB1c2VkX207CisgCisgICAgICAgaWYgKEdFVF9DT0RFIChvcCkgPT0gTk9UKQorIAl7Cist LS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvc3luYy0yLmMuamoJMjAwNi0xMC0wNSAwMDoyNTozMi4w MDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvdGVzdHN1aXRlL2djYy5kZy9zeW5jLTIuYwkyMDA3LTA4 LTI5IDIxOjQ5OjQ3LjAwMDAwMDAwMCArMDIwMAorQEAgLTgsNyArOCwxMSBAQAorIGV4dGVybiB2 b2lkIGFib3J0ICh2b2lkKTsKKyBleHRlcm4gdm9pZCAqbWVtY3B5ICh2b2lkICosIGNvbnN0IHZv aWQgKiwgX19TSVpFX1RZUEVfXyk7CisgCistc3RhdGljIGNoYXIgQUlbMThdOworKyNpZm5kZWYg QUlfQUxJR04KKysjZGVmaW5lIEFJX0FMSUdOCisrI2VuZGlmCisrCisrc3RhdGljIGNoYXIgQUlb MThdIEFJX0FMSUdOOworIHN0YXRpYyBjaGFyIGluaXRfcWlbMThdID0geyAzLDUsNyw5LDAsMCww LDAsLTEsMCwwLDAsMCwwLC0xLDAsMCwwIH07Cisgc3RhdGljIGNoYXIgdGVzdF9xaVsxOF0gPSB7 IDMsNSw3LDksMSw0LDIyLC0xMiw3LDgsOSw3LDEsLTEyLDcsOCw5LDcgfTsKKyAKKy0tLSBnY2Mv dGVzdHN1aXRlL2djYy5kZy9zeW5jLTMuYy5qagkyMDA3LTA4LTI5IDIxOjQ5OjU5LjAwMDAwMDAw MCArMDIwMAorKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3N5bmMtMy5jCTIwMDctMDgtMjkgMjI6 MDA6MzEuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDEwIEBACisrLyogeyBkZy1kbyBydW4g fSAqLworKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHN5bmNfY2hhcl9zaG9ydCB9 ICovCisrLyogeyBkZy1vcHRpb25zICItTzIiIH0gKi8KKysvKiB7IGRnLW9wdGlvbnMgIi1tYXJj aD1pNDg2IC1PMiIgeyB0YXJnZXQgeyB7IGk/ODYtKi0qIHg4Nl82NC0qLSogfSAmJiBpbHAzMiB9 IH0gfSAqLworKy8qIHsgZGctb3B0aW9ucyAiLW1jcHU9djkgLU8yIiB7IHRhcmdldCBzcGFyYyot Ki0qIH0gfSAqLworKworKy8qIFRlc3QgZnVuY3Rpb25hbGl0eSBvZiB0aGUgaW50cmluc2ljcyBm b3IgJ3Nob3J0JyBhbmQgJ2NoYXInLiAgKi8KKysKKysjZGVmaW5lIEFJX0FMSUdOIF9fYXR0cmli dXRlX18oKF9fYWxpZ25lZF9fICg0KSkpCisrI2luY2x1ZGUgInN5bmMtMi5jIgoKZGlmZiAtLWdp dCBhL2djYzQxLXBwYzY0LWlhNjQtR05VLXN0YWNrLnBhdGNoIGIvZ2NjNDEtcHBjNjQtaWE2NC1H TlUtc3RhY2sucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU1ZjBm ZQotLS0gL2Rldi9udWxsCisrKyBiL2djYzQxLXBwYzY0LWlhNjQtR05VLXN0YWNrLnBhdGNoCkBA IC0wLDAgKzEsODYgQEAKKzIwMDctMDgtMjcgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQu Y29tPgorCisJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfZWxmX2VuZF9pbmRpY2F0 ZV9leGVjX3N0YWNrKTogTmV3LgorCSogY29uZmlnL3JzNjAwMC9saW51eDY0LmggKFRBUkdFVF9B U01fRklMRV9FTkQpOiBVc2UKKwlyczYwMDBfZWxmX2VuZF9pbmRpY2F0ZV9leGVjX3N0YWNrLgor CSogY29uZmlnL2lhNjQvaWE2NC5jIChpYTY0X2xpbnV4X2ZpbGVfZW5kKTogbmV3LgorCSogY29u ZmlnL2lhNjQvbGludXguaCAoVEFSR0VUX0FTTV9GSUxFX0VORCk6IFVzZSBpYTY0X2xpbnV4X2Zp bGVfZW5kLgorCistLS0gZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmMuamoJMjAwNy0wNi0yNyAx MjoxMDoxOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuYwky MDA3LTA4LTI3IDE5OjI3OjI0LjAwMDAwMDAwMCArMDIwMAorQEAgLTYzOCw2ICs2MzgsNyBAQCBz dGF0aWMgdm9pZCByczYwMDBfZmlsZV9zdGFydCAodm9pZCk7Cisgc3RhdGljIHVuc2lnbmVkIGlu dCByczYwMDBfZWxmX3NlY3Rpb25fdHlwZV9mbGFncyAodHJlZSwgY29uc3QgY2hhciAqLCBpbnQp OworIHN0YXRpYyB2b2lkIHJzNjAwMF9lbGZfYXNtX291dF9jb25zdHJ1Y3RvciAocnR4LCBpbnQp OworIHN0YXRpYyB2b2lkIHJzNjAwMF9lbGZfYXNtX291dF9kZXN0cnVjdG9yIChydHgsIGludCk7 Cisrc3RhdGljIHZvaWQgcnM2MDAwX2VsZl9lbmRfaW5kaWNhdGVfZXhlY19zdGFjayAodm9pZCkg QVRUUklCVVRFX1VOVVNFRDsKKyBzdGF0aWMgdm9pZCByczYwMDBfZWxmX3NlbGVjdF9zZWN0aW9u ICh0cmVlLCBpbnQsIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQpOworIHN0YXRpYyB2b2lkIHJzNjAw MF9lbGZfdW5pcXVlX3NlY3Rpb24gKHRyZWUsIGludCk7Cisgc3RhdGljIHZvaWQgcnM2MDAwX2Vs Zl9zZWxlY3RfcnR4X3NlY3Rpb24gKGVudW0gbWFjaGluZV9tb2RlLCBydHgsCitAQCAtMTg4OTYs NiArMTg4OTcsMjAgQEAgcnM2MDAwX2VsZl9kZWNsYXJlX2Z1bmN0aW9uX25hbWUgKEZJTEUgKgor ICAgICB9CisgICBBU01fT1VUUFVUX0xBQkVMIChmaWxlLCBuYW1lKTsKKyB9CisrCisrc3RhdGlj IHZvaWQKKytyczYwMDBfZWxmX2VuZF9pbmRpY2F0ZV9leGVjX3N0YWNrICh2b2lkKQorK3sKKysg IGlmIChUQVJHRVRfMzJCSVQpCisrICAgIGZpbGVfZW5kX2luZGljYXRlX2V4ZWNfc3RhY2sgKCk7 CisrICBlbHNlCisrICAgIHsKKysgICAgICBpbnQgc2F2ZWRfdHJhbXBvbGluZXNfY3JlYXRlZCA9 IHRyYW1wb2xpbmVzX2NyZWF0ZWQ7CisrICAgICAgdHJhbXBvbGluZXNfY3JlYXRlZCA9IDA7Cisr ICAgICAgZmlsZV9lbmRfaW5kaWNhdGVfZXhlY19zdGFjayAoKTsKKysgICAgICB0cmFtcG9saW5l c19jcmVhdGVkID0gc2F2ZWRfdHJhbXBvbGluZXNfY3JlYXRlZDsKKysgICAgfQorK30KKyAjZW5k aWYKKyAKKyAjaWYgVEFSR0VUX1hDT0ZGCistLS0gZ2NjL2NvbmZpZy9yczYwMDAvbGludXg2NC5o LmpqCTIwMDYtMTEtMDggMTc6NTM6MTUuMDAwMDAwMDAwICswMTAwCisrKysgZ2NjL2NvbmZpZy9y czYwMDAvbGludXg2NC5oCTIwMDctMDgtMjcgMTk6MjU6MDkuMDAwMDAwMDAwICswMjAwCitAQCAt NTQ5LDcgKzU0OSw3IEBAIHdoaWxlICgwKQorICN1bmRlZiBEUkFGVF9WNF9TVFJVQ1RfUkVUCisg I2RlZmluZSBEUkFGVF9WNF9TVFJVQ1RfUkVUICghVEFSR0VUXzY0QklUKQorIAorLSNkZWZpbmUg VEFSR0VUX0FTTV9GSUxFX0VORCBmaWxlX2VuZF9pbmRpY2F0ZV9leGVjX3N0YWNrCisrI2RlZmlu ZSBUQVJHRVRfQVNNX0ZJTEVfRU5EIHJzNjAwMF9lbGZfZW5kX2luZGljYXRlX2V4ZWNfc3RhY2sK KyAKKyAjZGVmaW5lIFRBUkdFVF9QT1NJWF9JTworIAorLS0tIGdjYy9jb25maWcvaWE2NC9saW51 eC5oLmpqCTIwMDYtMDctMTQgMTg6MDA6NTguMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2NvbmZp Zy9pYTY0L2xpbnV4LmgJMjAwNy0wOC0yNyAxOToyMToxMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC01 LDcgKzUsNyBAQAorIAorICNkZWZpbmUgVEFSR0VUX1ZFUlNJT04gZnByaW50ZiAoc3RkZXJyLCAi IChJQS02NCkgTGludXgiKTsKKyAKKy0jZGVmaW5lIFRBUkdFVF9BU01fRklMRV9FTkQgZmlsZV9l bmRfaW5kaWNhdGVfZXhlY19zdGFjaworKyNkZWZpbmUgVEFSR0VUX0FTTV9GSUxFX0VORCBpYTY0 X2xpbnV4X2ZpbGVfZW5kCisgCisgLyogVGhpcyBpcyBmb3IgLXByb2ZpbGUgdG8gdXNlIC1sY19w IGluc3RlYWQgb2YgLWxjLiAgKi8KKyAjdW5kZWYgQ0MxX1NQRUMKKy0tLSBnY2MvY29uZmlnL2lh NjQvaWE2NC5jLmpqCTIwMDctMDEtMDUgMjM6NTQ6MTEuMDAwMDAwMDAwICswMTAwCisrKysgZ2Nj L2NvbmZpZy9pYTY0L2lhNjQuYwkyMDA3LTA4LTI3IDE5OjIxOjQzLjAwMDAwMDAwMCArMDIwMAor QEAgLTI0Niw2ICsyNDYsOCBAQCBzdGF0aWMgdm9pZCBpYTY0X2hwdXhfYWRkX2V4dGVybl9kZWNs ICh0CisgICAgICBBVFRSSUJVVEVfVU5VU0VEOworIHN0YXRpYyB2b2lkIGlhNjRfaHB1eF9maWxl X2VuZCAodm9pZCkKKyAgICAgIEFUVFJJQlVURV9VTlVTRUQ7Cisrc3RhdGljIHZvaWQgaWE2NF9s aW51eF9maWxlX2VuZCAodm9pZCkKKysgICAgIEFUVFJJQlVURV9VTlVTRUQ7Cisgc3RhdGljIHZv aWQgaWE2NF9pbml0X2xpYmZ1bmNzICh2b2lkKQorICAgICAgQVRUUklCVVRFX1VOVVNFRDsKKyBz dGF0aWMgdm9pZCBpYTY0X2hwdXhfaW5pdF9saWJmdW5jcyAodm9pZCkKK0BAIC05MDk2LDQgKzkw OTgsMTMgQEAgaWE2NF9pbnZhbGlkX2JpbmFyeV9vcCAoaW50IG9wIEFUVFJJQlVURQorICAgcmV0 dXJuIE5VTEw7CisgfQorIAorK3N0YXRpYyB2b2lkCisraWE2NF9saW51eF9maWxlX2VuZCAodm9p ZCkKKyt7CisrICBpbnQgc2F2ZWRfdHJhbXBvbGluZXNfY3JlYXRlZCA9IHRyYW1wb2xpbmVzX2Ny ZWF0ZWQ7CisrICB0cmFtcG9saW5lc19jcmVhdGVkID0gMDsKKysgIGZpbGVfZW5kX2luZGljYXRl X2V4ZWNfc3RhY2sgKCk7CisrICB0cmFtcG9saW5lc19jcmVhdGVkID0gc2F2ZWRfdHJhbXBvbGlu ZXNfY3JlYXRlZDsKKyt9CisrCisgI2luY2x1ZGUgImd0LWlhNjQuaCIKCmRpZmYgLS1naXQgYS9n Y2M0MS1wcjMyOTEyLnBhdGNoIGIvZ2NjNDEtcHIzMjkxMi5wYXRjaAppbmRleCA5YTlmODY1Li42 N2NlODMwIDEwMDY0NAotLS0gYS9nY2M0MS1wcjMyOTEyLnBhdGNoCisrKyBiL2djYzQxLXByMzI5 MTIucGF0Y2gKQEAgLTQ2LDcgKzQ2LDcgQEAKIEBAIC0wLDAgKzEsNDQgQEAKICsvKiBQUiBtaWRk bGUtZW5kLzMyOTEyICovCiArLyogeyBkZy1kbyBydW4gfSAqLwotKy8qIHsgZGctb3B0aW9ucyAi LU8yIiB9ICovCisrLyogeyBkZy1vcHRpb25zICItTzIgLXciIH0gKi8KICsKICtleHRlcm4gdm9p ZCBhYm9ydCAodm9pZCk7CiArCkBAIC05Miw3ICs5Miw3IEBACiArKysgZ2NjL3Rlc3RzdWl0ZS9n Y2MuZGcvcHIzMjkxMi0yLmMJMjAwNy0wOC0yMCAxNTo1NTozMi4wMDAwMDAwMDAgKzAyMDAKIEBA IC0wLDAgKzEsNDUgQEAKICsvKiB7IGRnLWRvIHJ1biB9ICovCi0rLyogeyBkZy1vcHRpb25zICIt TzIiIH0gKi8KKysvKiB7IGRnLW9wdGlvbnMgIi1PMiAtdyIgfSAqLwogKwogK2V4dGVybiB2b2lk IGFib3J0ICh2b2lkKTsKICsKCmRpZmYgLS1naXQgYS9nY2M0MS5zcGVjIGIvZ2NjNDEuc3BlYwpp bmRleCBhZDg3YWQyLi42MTgxMWNhIDEwMDY0NAotLS0gYS9nY2M0MS5zcGVjCisrKyBiL2djYzQx LnNwZWMKQEAgLTEsNiArMSw2IEBACiAlZGVmaW5lIERBVEUgMjAwNzA4MjEKICVkZWZpbmUgZ2Nj X3ZlcnNpb24gNC4xLjIKLSVkZWZpbmUgZ2NjX3JlbGVhc2UgMTkKKyVkZWZpbmUgZ2NjX3JlbGVh c2UgMjAKICVkZWZpbmUgX3VucGFja2FnZWRfZmlsZXNfdGVybWluYXRlX2J1aWxkIDAKICVkZWZp bmUgbXVsdGlsaWJfNjRfYXJjaHMgc3BhcmM2NCBwcGM2NCBzMzkweCB4ODZfNjQKICVkZWZpbmUg aW5jbHVkZV9nYXBwbGV0dmlld2VyIDEKQEAgLTE0NCwxMCArMTQ0LDEzIEBAIFBhdGNoMjc6IGdj YzQxLXByMzI5MTIucGF0Y2gKIFBhdGNoMjg6IGdjYzQxLXNwYXJjLW5pYWdhcmEucGF0Y2gKIFBh dGNoMjk6IGdjYzQxLXBwYy10cmFtcC5wYXRjaAogUGF0Y2gzMDogZ2NjNDEtcmgyNTMxMDIucGF0 Y2gKK1BhdGNoMzE6IGdjYzQxLWMrKy1nbnVfaW5saW5lLnBhdGNoCitQYXRjaDMyOiBnY2M0MS1w cGMtc3luYy1xaWhpLnBhdGNoCitQYXRjaDMzOiBnY2M0MS1wcGM2NC1pYTY0LUdOVS1zdGFjay5w YXRjaAogCi0jIE9uIEFSTSBFQUJJIHN5c3RlbXMsIHdlIGRvIHdhbnQgLWdudWVhYmkgdG8gYmUg cGFydCBvZiB0aGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAotIyB0YXJnZXQgdHJpcGxlLiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSVpZm5hcmNoICV7YXJtfSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisj IE9uIEFSTSBFQUJJIHN5c3RlbXMsIHdlIGRvIHdhbnQgLWdudWVhYmkgdG8gYmUgcGFydCBvZiB0 aGUKKyMgdGFyZ2V0IHRyaXBsZS4KKyVpZm5hcmNoICV7YXJtfQogJWRlZmluZSBfZ251ICV7bmls fQogJWVuZGlmCiAlaWZhcmNoIHNwYXJjCkBAIC00NTcsNiArNDYwLDkgQEAgd2hpY2ggYXJlIHJl cXVpcmVkIHRvIHJ1biBwcm9ncmFtcyBjb21waWxlZCB3aXRoIHRoZSBHTkFULgogJXBhdGNoMjgg LXAwIC1iIC5zcGFyYy1uaWFnYXJhfgogJXBhdGNoMjkgLXAwIC1iIC5wcGMtdHJhbXB+CiAlcGF0 Y2gzMCAtcDAgLWIgLnJoMjUzMTAyfgorJXBhdGNoMzEgLXAwIC1iIC5jKystZ251X2lubGluZX4K KyVwYXRjaDMyIC1wMCAtYiAucHBjLXN5bmMtcWloaX4KKyVwYXRjaDMzIC1wMCAtYiAucHBjNjQt aWE2NC1HTlUtc3RhY2t+CiAKIHNlZCAtaSAtZSAncy80XC4xXC4zLzQuMS4yLycgZ2NjL0JBU0Ut VkVSIGdjYy92ZXJzaW9uLmMKIHNlZCAtaSAtZSAncy8iIChSZWQgSGF0W14pXSopIi8iIChSZWQg SGF0ICV7dmVyc2lvbn0tJXtnY2NfcmVsZWFzZX0pIi8nIGdjYy92ZXJzaW9uLmMKQEAgLTE1OTEs NiArMTU5NywxMyBAQCBmaQogJWRvYyBycG0uZG9jL2NoYW5nZWxvZ3MvbGlibXVkZmxhcC9DaGFu Z2VMb2cqCiAKICVjaGFuZ2Vsb2cKKyogRnJpIEF1ZyAzMSAyMDA3IEpha3ViIEplbGluZWsgPGph a3ViQHJlZGhhdC5jb20+IDQuMS4yLTIwCistIGJhY2twb3J0IF9fYXR0cmlidXRlX18oKF9fZ251 X2lubGluZV9fKSkgc3VwcG9ydCBmb3IgQysrCistIGZpeCBwcGMvcHBjNjQgX19zeW5jXyogYnVp bHRpbnMgd2l0aCBhbGlnbmVkIDggb3IgMTYtYml0IHZhbHVlcworLSBkb24ndCBzZXQgZXhlY3V0 YWJsZSBmbGFnIG9uIC5ub3RlLkdOVS1zdGFjayBvbiBwcGM2NC9pYTY0IGV2ZW4KKyAgd2hlbiB0 cmFtcG9saW5lcyBhcmUgdXNlZCAtIHRyYW1wb2xpbmVzIG9uIHRob3NlIGFyY2hpdGVjdHVyZXMK KyAgZG9uJ3QgbmVlZCBleGVjdXRhYmxlIHN0YWNrCisKICogVHVlIEF1ZyAyMSAyMDA3IEpha3Vi IEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuMS4yLTE5CiAtIHVwZGF0ZSBmcm9tIGdjYy00 XzEtYnJhbmNoICgtcjEyNzUyODoxMjc2NzIpCiAgIC0gUFIgYysrLzMyMTEyCkBAIC0xNjI0LDcg KzE2MzcsNyBAQCBmaQogICB0byBiaW51dGlscyB0aGF0IHN1cHBvcnQgaXQgKFJvbGFuZCBNY0dy YXRoKQogLSBiYWNrcG9ydCBBUk0gZml4ZXMgZnJvbSB0cnVuayAoIzI0NjgwMCkKICAgLSBQUnMg bWlkZGxlLWVuZC8yNDk5OCwgdGFyZ2V0LzI4NTE2LCB0YXJnZXQvMzA0ODYKLS0gZml4IHNpbXBs aWZ5X3BsdXNfbWludXMgd2l0aCBwcGN7LDY0fSBwb3dlcjYgdHVuaW5nIChyZWdyZXNzaW9uIGZy b20gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLSBmaXggc2ltcGxpZnlfcGx1c19taW51cyB3aXRoIHBwY3ssNjR9IHBvd2VyNiB0dW5p bmcgKHJlZ3Jlc3Npb24gZnJvbQogICA0LjEuMS01Mi5lbDUuMiwgIzI0NzI1NikKIAogKiBXZWQg SnVsICA0IDIwMDcgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC4xLjItMTUK