[PATCH] xtensa: add R_XTENSA_PDIFF_ULEB128 for DWARF uleb128 diffs

Alexey Lapshin <[email protected]> Mon, 3 Aug 2026 11:38:00 +0000
Newsgroups gmane.comp.gnu.binutils
Message-ID <[email protected]>
RFdBUkYgNSBsb2NhdGlvbiBhbmQgcmFuZ2UgbGlzdHMgZW5jb2RlIG1hbnkgc2FtZS1zZWN0aW9u
IHN5bWJvbA0KZGlmZmVyZW5jZXMgYXMgdWxlYjEyOC4gIFRvZGF5IHRoZSBhc3NlbWJsZXIgbXVz
dCBtYXJrIGFsbCBjb3ZlcmVkIGNvZGUNCm5vX3RyYW5zZm9ybSBzbyBsaW5rZXIgcmVsYXhhdGlv
biBjYW5ub3QgY2hhbmdlIHRob3NlIGRpZmZlcmVuY2VzLCB3aGljaA0KZWZmZWN0aXZlbHkgZGlz
YWJsZXMgcmVsYXhhdGlvbiBmb3IgbmVhcmx5IGV2ZXJ5IGZ1bmN0aW9uIHRoYXQgaGFzIERXQVJG
IDUNCmRlYnVnIGluZm8uDQoNCkVtaXQgUl9YVEVOU0FfUERJRkZfVUxFQjEyOCBpbnN0ZWFkOiBs
aWtlIFJfWFRFTlNBX1BESUZGMzIgdGhlIGRpZmZlcmVuY2UNCnN0YXlzIGluIHRoZSBzZWN0aW9u
IGNvbnRlbnRzIGFuZCB0aGUgcmVsb2MgcmVjb3JkcyB0aGUgc3VidHJhY3RlZCBzeW1ib2wsDQpi
dXQgdGhlIGFzc2VtYmxlciBwYWRzIHRoZSB1bGViMTI4IHRvIGEgZml4ZWQgd2lkdGggKG1pbmlt
YWwgZW5jb2RpbmcgcGx1cw0Kb25lIHNwYXJlIGJ5dGUpIGFuZCB0aGUgbGlua2VyIHJld3JpdGVz
IHRoZSB2YWx1ZSBpbiBwbGFjZSBhZnRlcg0KcmVsYXhhdGlvbi4NCg0Kc2xlYjEyOCBhbmQgY3Jv
c3Mtc2VjdGlvbiBkaWZmZXJlbmNlcyBzdGlsbCBmYWxsIGJhY2sgdG8gbm9fdHJhbnNmb3JtLg0K
R3Jvd3RoIHRoYXQgbmVlZHMgbW9yZSB0aGFuIHRoZSByZXNlcnZlZCBzcGFyZSBieXRlIGlzIHJl
cG9ydGVkIGFzIGENCnJlbG9jYXRpb24gb3ZlcmZsb3cuDQoNCmJmZC8NCgkqIGJmZC1pbjIuaDog
UmVnZW5lcmF0ZWQuDQoJKiBlbGYzMi14dGVuc2EuYyAoZWxmX2hvd3RvX3RhYmxlKTogTmV3IGVu
dHJ5IGZvcg0KCVJfWFRFTlNBX1BESUZGX1VMRUIxMjguDQoJKGVsZl94dGVuc2FfcmVsb2NfdHlw
ZV9sb29rdXAsIGVsZl94dGVuc2FfZG9fcmVsb2MpOiBIYW5kbGUgaXQuDQoJKHJlbGF4X3NlY3Rp
b24pOiBSZXdyaXRlIHBhZGRlZCB1bGViMTI4IGRpZmZlcmVuY2VzIGluIHBsYWNlLg0KCSogbGli
YmZkLmggKGJmZF9yZWxvY19jb2RlX3JlYWxfbmFtZXMpOiBBZGQNCglCRkRfUkVMT0NfWFRFTlNB
X1BESUZGX1VMRUIxMjguDQoJKiByZWxvYy5jOiBEb2N1bWVudCBCRkRfUkVMT0NfWFRFTlNBX1BE
SUZGX1VMRUIxMjguDQoNCmJpbnV0aWxzLw0KCSogcmVhZGVsZi5jIChpc19ub25lX3JlbG9jKTog
UmVjb2duaXplIFJfWFRFTlNBX1BESUZGX1VMRUIxMjguDQoNCmdhcy8NCgkqIHdyaXRlLmMgKGN2
dF9mcmFnX3RvX2ZpbGwpOiBQYWQgbGViMTI4IGZyYWdzIHRvIHRoZSByZXNlcnZlZA0KCXNpemUg
d2hlbiBtZF9sZWIxMjhfZnJhZ19zaXplIGdyZXcgdGhlbS4NCgkocmVsYXhfc2VnbWVudCk6IENh
bGwgbWRfbGViMTI4X2ZyYWdfc2l6ZSBpZiBkZWZpbmVkLg0KCSogY29uZmlnL3RjLXh0ZW5zYS5o
ICh4dGVuc2Ffc3ltZmllbGRfdHlwZSk6IEFkZA0KCWhhc19sZWIxMjhfZGlmZl9yZWxvYy4NCgko
bWRfbGViMTI4X2ZyYWdfc2l6ZSk6IERlZmluZS4NCgkqIGNvbmZpZy90Yy14dGVuc2EuYyAoeHRl
bnNhX21kX2ZpbmlzaCk6IEluc2VydCB1bGViMTI4IGZpeGVzLg0KCSh4dGVuc2FfaW5zZXJ0X3Vs
ZWIxMjhfZml4ZXMsIHh0ZW5zYV9sZWIxMjhfZnJhZ19zaXplKTogTmV3Lg0KCSh4dGVuc2FfbWFy
a19kaWZmZXJlbmNlX29mX3R3b19zeW1ib2xzKTogU2tpcCByZWxvY2F0ZWQgZGlmZnMuDQoJKG1k
X2FwcGx5X2ZpeCk6IElnbm9yZSBCRkRfUkVMT0NfWFRFTlNBX1BESUZGX1VMRUIxMjguDQoJKiB0
ZXN0c3VpdGUvZ2FzL3h0ZW5zYS9wZGlmZi11bGViMTI4LnM6IE5ldyB0ZXN0Lg0KCSogdGVzdHN1
aXRlL2dhcy94dGVuc2EvcGRpZmYtdWxlYjEyOC5kOiBOZXcgdGVzdC4NCgkqIHRlc3RzdWl0ZS9n
YXMveHRlbnNhL3BkaWZmLXVsZWIxMjgtbm9yZWxheC5kOiBOZXcgdGVzdC4NCg0KaW5jbHVkZS8N
CgkqIGVsZi94dGVuc2EuaCAoZWxmX3h0ZW5zYV9yZWxvY190eXBlKTogQWRkDQoJUl9YVEVOU0Ff
UERJRkZfVUxFQjEyOC4NCg0KbGQvDQoJKiB0ZXN0c3VpdGUvbGQteHRlbnNhL3JlbGF4LXVsZWIx
MjguczogTmV3IHRlc3QuDQoJKiB0ZXN0c3VpdGUvbGQteHRlbnNhL3JlbGF4LXVsZWIxMjguZDog
TmV3IHRlc3QuDQoJKiB0ZXN0c3VpdGUvbGQteHRlbnNhL3JlbGF4LXVsZWIxMjgtMi5zOiBOZXcg
dGVzdC4NCgkqIHRlc3RzdWl0ZS9sZC14dGVuc2EvcmVsYXgtdWxlYjEyOC0yLmQ6IE5ldyB0ZXN0
Lg0KCSogdGVzdHN1aXRlL2xkLXh0ZW5zYS94dGVuc2EuZXhwOiBSdW4gdGhlbS4NCi0tLQ0KIGJm
ZC9iZmQtaW4yLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrKw0KIGJm
ZC9lbGYzMi14dGVuc2EuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgwICsrKysrKysr
KysrKysrKysrDQogYmZkL2xpYmJmZC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgIDEgKw0KIGJmZC9yZWxvYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
IDEyICsrKw0KIGJpbnV0aWxzL3JlYWRlbGYuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAzICstDQogZ2FzL2NvbmZpZy90Yy14dGVuc2EuYyAgICAgICAgICAgICAgICAgICAgICAgIHwg
ODYgKysrKysrKysrKysrKysrKysrLQ0KIGdhcy9jb25maWcvdGMteHRlbnNhLmggICAgICAgICAg
ICAgICAgICAgICAgICB8ICA1ICsrDQogLi4uL2dhcy94dGVuc2EvcGRpZmYtdWxlYjEyOC1ub3Jl
bGF4LmQgICAgICAgIHwgMjAgKysrKysNCiBnYXMvdGVzdHN1aXRlL2dhcy94dGVuc2EvcGRpZmYt
dWxlYjEyOC5kICAgICAgfCAxMiArKysNCiBnYXMvdGVzdHN1aXRlL2dhcy94dGVuc2EvcGRpZmYt
dWxlYjEyOC5zICAgICAgfCAgNyArKw0KIGdhcy93cml0ZS5jICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8IDIwICsrKysrDQogaW5jbHVkZS9lbGYveHRlbnNhLmggICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgIDMgKw0KIGxkL3Rlc3RzdWl0ZS9sZC14dGVuc2EvcmVsYXgtdWxl
YjEyOC0yLmQgICAgICB8IDEyICsrKw0KIGxkL3Rlc3RzdWl0ZS9sZC14dGVuc2EvcmVsYXgtdWxl
YjEyOC0yLnMgICAgICB8IDE4ICsrKysNCiBsZC90ZXN0c3VpdGUvbGQteHRlbnNhL3JlbGF4LXVs
ZWIxMjguZCAgICAgICAgfCAxMSArKysNCiBsZC90ZXN0c3VpdGUvbGQteHRlbnNhL3JlbGF4LXVs
ZWIxMjgucyAgICAgICAgfCAxNiArKysrDQogbGQvdGVzdHN1aXRlL2xkLXh0ZW5zYS94dGVuc2Eu
ZXhwICAgICAgICAgICAgIHwgIDIgKw0KIDE3IGZpbGVzIGNoYW5nZWQsIDMxNCBpbnNlcnRpb25z
KCspLCA0IGRlbGV0aW9ucygtKQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBnYXMvdGVzdHN1aXRlL2dh
cy94dGVuc2EvcGRpZmYtdWxlYjEyOC1ub3JlbGF4LmQNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Fz
L3Rlc3RzdWl0ZS9nYXMveHRlbnNhL3BkaWZmLXVsZWIxMjguZA0KIGNyZWF0ZSBtb2RlIDEwMDY0
NCBnYXMvdGVzdHN1aXRlL2dhcy94dGVuc2EvcGRpZmYtdWxlYjEyOC5zDQogY3JlYXRlIG1vZGUg
MTAwNjQ0IGxkL3Rlc3RzdWl0ZS9sZC14dGVuc2EvcmVsYXgtdWxlYjEyOC0yLmQNCiBjcmVhdGUg
bW9kZSAxMDA2NDQgbGQvdGVzdHN1aXRlL2xkLXh0ZW5zYS9yZWxheC11bGViMTI4LTIucw0KIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQteHRlbnNhL3JlbGF4LXVsZWIxMjguZA0K
IGNyZWF0ZSBtb2RlIDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQteHRlbnNhL3JlbGF4LXVsZWIxMjgu
cw0KDQpkaWZmIC0tZ2l0IGEvYmZkL2JmZC1pbjIuaCBiL2JmZC9iZmQtaW4yLmgNCmluZGV4IDI0
MzNjM2MxMmM0Li5iY2E1ZTU1NTUwZSAxMDA2NDQNCi0tLSBhL2JmZC9iZmQtaW4yLmgNCisrKyBi
L2JmZC9iZmQtaW4yLmgNCkBAIC02MTY5LDYgKzYxNjksMTYgQEAgZW51bSBiZmRfcmVsb2NfY29k
ZV9yZWFsDQogICBCRkRfUkVMT0NfWFRFTlNBX05ESUZGMTYsDQogICBCRkRfUkVMT0NfWFRFTlNB
X05ESUZGMzIsDQogDQorICAvKiBYdGVuc2EgcmVsb2NhdGlvbiB0byBtYXJrIGEgcG9zaXRpdmUg
ZGlmZmVyZW5jZSBvZiB0d28gbG9jYWwgc3ltYm9scw0KKyAgICAgZW5jb2RlZCBhcyBhbiB1bnNp
Z25lZCBMRUIxMjggdmFsdWUuICBUaGlzIHdvcmtzIGxpa2UNCisgICAgIEJGRF9SRUxPQ19YVEVO
U0FfUERJRkYzMiwgYnV0IHRoZSBsaW5rZXIgcmV3cml0ZXMgdGhlIGRpZmZlcmVuY2UgaW4NCisg
ICAgIHBsYWNlIHVzaW5nIHRoZSBudW1iZXIgb2YgYnl0ZXMgdGhlIGFzc2VtYmxlciBvcmlnaW5h
bGx5IGVtaXR0ZWQsIHNvDQorICAgICB0aGF0IHRoZSBzaXplIG9mIHRoZSBjb250YWluaW5nIHNl
Y3Rpb24gbmV2ZXIgY2hhbmdlcy4gIFdpdGhvdXQgaXQgdGhlDQorICAgICBhc3NlbWJsZXIgd291
bGQgaGF2ZSB0byBpbmhpYml0IGxpbmtlciByZWxheGF0aW9uIG9mIGFsbCBjb2RlIGNvdmVyZWQN
CisgICAgIGJ5IHN1Y2ggYSBkaWZmZXJlbmNlLCB3aGljaCBEV0FSRiA1IGxvY2F0aW9uIGFuZCBy
YW5nZSBsaXN0cyBwcm9kdWNlDQorICAgICBmb3IgdmlydHVhbGx5IGV2ZXJ5IGZ1bmN0aW9uLiAg
Ki8NCisgIEJGRF9SRUxPQ19YVEVOU0FfUERJRkZfVUxFQjEyOCwNCisNCiAgIC8qIDggYml0IHNp
Z25lZCBvZmZzZXQgaW4gKGl4K2QpIG9yIChpeStkKS4gICovDQogICBCRkRfUkVMT0NfWjgwX0RJ
U1A4LA0KIA0KZGlmZiAtLWdpdCBhL2JmZC9lbGYzMi14dGVuc2EuYyBiL2JmZC9lbGYzMi14dGVu
c2EuYw0KaW5kZXggZDRhYWM3NGQxMmMuLmEzNGJkOWQyMmVlIDEwMDY0NA0KLS0tIGEvYmZkL2Vs
ZjMyLXh0ZW5zYS5jDQorKysgYi9iZmQvZWxmMzIteHRlbnNhLmMNCkBAIC0zNDYsNiArMzQ2LDgg
QEAgc3RhdGljIHJlbG9jX2hvd3RvX3R5cGUgZWxmX2hvd3RvX3RhYmxlW10gPQ0KIAkgYmZkX2Vs
Zl94dGVuc2FfcmVsb2MsICJSX1hURU5TQV9ORElGRjE2IiwgZmFsc2UsIDAsIDB4ZmZmZiwgZmFs
c2UpLA0KICAgSE9XVE8gKFJfWFRFTlNBX05ESUZGMzIsIDAsIDQsIDMyLCBmYWxzZSwgMCwgY29t
cGxhaW5fb3ZlcmZsb3dfYml0ZmllbGQsDQogCSBiZmRfZWxmX3h0ZW5zYV9yZWxvYywgIlJfWFRF
TlNBX05ESUZGMzIiLCBmYWxzZSwgMCwgMHhmZmZmZmZmZiwgZmFsc2UpLA0KKyAgSE9XVE8gKFJf
WFRFTlNBX1BESUZGX1VMRUIxMjgsIDAsIDAsIDAsIGZhbHNlLCAwLCBjb21wbGFpbl9vdmVyZmxv
d19kb250LA0KKwkgYmZkX2VsZl94dGVuc2FfcmVsb2MsICJSX1hURU5TQV9QRElGRl9VTEVCMTI4
IiwgZmFsc2UsIDAsIDAsIGZhbHNlKSwNCiB9Ow0KIA0KICNpZiBERUJVR19HRU5fUkVMT0MNCkBA
IC00MDksNiArNDExLDEwIEBAIGVsZl94dGVuc2FfcmVsb2NfdHlwZV9sb29rdXAgKGJmZCAqYWJm
ZCBBVFRSSUJVVEVfVU5VU0VELA0KICAgICAgIFRSQUNFICgiQkZEX1JFTE9DX1hURU5TQV9ORElG
RjMyIik7DQogICAgICAgcmV0dXJuICZlbGZfaG93dG9fdGFibGVbKHVuc2lnbmVkKSBSX1hURU5T
QV9ORElGRjMyIF07DQogDQorICAgIGNhc2UgQkZEX1JFTE9DX1hURU5TQV9QRElGRl9VTEVCMTI4
Og0KKyAgICAgIFRSQUNFICgiQkZEX1JFTE9DX1hURU5TQV9QRElGRl9VTEVCMTI4Iik7DQorICAg
ICAgcmV0dXJuICZlbGZfaG93dG9fdGFibGVbKHVuc2lnbmVkKSBSX1hURU5TQV9QRElGRl9VTEVC
MTI4IF07DQorDQogICAgIGNhc2UgQkZEX1JFTE9DX1hURU5TQV9SVExEOg0KICAgICAgIFRSQUNF
ICgiQkZEX1JFTE9DX1hURU5TQV9SVExEIik7DQogICAgICAgcmV0dXJuICZlbGZfaG93dG9fdGFi
bGVbKHVuc2lnbmVkKSBSX1hURU5TQV9SVExEIF07DQpAQCAtMTg5Myw2ICsxODk5LDcgQEAgZWxm
X3h0ZW5zYV9kb19yZWxvYyAocmVsb2NfaG93dG9fdHlwZSAqaG93dG8sDQogICAgIGNhc2UgUl9Y
VEVOU0FfTkRJRkY4Og0KICAgICBjYXNlIFJfWFRFTlNBX05ESUZGMTY6DQogICAgIGNhc2UgUl9Y
VEVOU0FfTkRJRkYzMjoNCisgICAgY2FzZSBSX1hURU5TQV9QRElGRl9VTEVCMTI4Og0KICAgICBj
YXNlIFJfWFRFTlNBX1RMU19GVU5DOg0KICAgICBjYXNlIFJfWFRFTlNBX1RMU19BUkc6DQogICAg
IGNhc2UgUl9YVEVOU0FfVExTX0NBTEw6DQpAQCAtOTY1Nyw2ICs5NjY0LDc5IEBAIHJlbGF4X3Nl
Y3Rpb24gKGJmZCAqYWJmZCwgYXNlY3Rpb24gKnNlYywgc3RydWN0IGJmZF9saW5rX2luZm8gKmxp
bmtfaW5mbykNCiAJICAgICAgcl9yZWxvYyBuZXdfcmVsb2M7DQogCSAgICAgIHRhcmdldF9zZWMg
PSB0cmFuc2xhdGVfcmVsb2MgKCZyX3JlbCwgJm5ld19yZWxvYywgdGFyZ2V0X3NlYyk7DQogDQor
CSAgICAgIGlmIChyX3R5cGUgPT0gUl9YVEVOU0FfUERJRkZfVUxFQjEyOCkNCisJCXsNCisJCSAg
YmZkX3ZtYSBkaWZmX3ZhbHVlLCBuZXdfZW5kX29mZnNldDsNCisJCSAgdW5zaWduZWQgaW50IGxl
biwgbmV3X2xlbiA9IDA7DQorCQkgIGJmZF9ieXRlICpwLCAqcSwgKmVuZHA7DQorDQorCQkgIGlm
IChzZWNfc2l6ZSA8PSBvbGRfc291cmNlX29mZnNldCkNCisJCSAgICB7DQorCQkgICAgICAoKmxp
bmtfaW5mby0+Y2FsbGJhY2tzLT5yZWxvY19kYW5nZXJvdXMpDQorCQkJKGxpbmtfaW5mbywgXygi
aW52YWxpZCByZWxvY2F0aW9uIGFkZHJlc3MiKSwNCisJCQkgYWJmZCwgc2VjLCBvbGRfc291cmNl
X29mZnNldCk7DQorCQkgICAgICBnb3RvIGVycm9yX3JldHVybjsNCisJCSAgICB9DQorDQorCQkg
IC8qIFRoZSB2YWx1ZSBpcyByZWFkIGJhY2sgZnJvbSB0aGUgc2VjdGlvbiBjb250ZW50cywgc28N
CisJCSAgICAgaXQgbXVzdCBub3QgYmUgdHJ1c3RlZCB0byBiZSBhIHdlbGwgZm9ybWVkIHVsZWIx
MjgNCisJCSAgICAgdGhhdCBlbmRzIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBzZWN0aW9uLiAgKi8N
CisJCSAgcCA9IHEgPSAmY29udGVudHNbb2xkX3NvdXJjZV9vZmZzZXRdOw0KKwkJICBkaWZmX3Zh
bHVlID0gX2JmZF9zYWZlX3JlYWRfbGViMTI4IChhYmZkLCAmcSwgZmFsc2UsDQorCQkJCQkJICAg
ICAgY29udGVudHMgKyBzZWNfc2l6ZSk7DQorCQkgIGxlbiA9IHEgLSBwOw0KKwkJICBpZiAobGVu
ID09IDAgfHwgKHFbLTFdICYgMHg4MCkgIT0gMCkNCisJCSAgICB7DQorCQkgICAgICAoKmxpbmtf
aW5mby0+Y2FsbGJhY2tzLT5yZWxvY19kYW5nZXJvdXMpDQorCQkJKGxpbmtfaW5mbywgXygiaW52
YWxpZCB1bGViMTI4IGRpZmZlcmVuY2UiKSwNCisJCQkgYWJmZCwgc2VjLCBvbGRfc291cmNlX29m
ZnNldCk7DQorCQkgICAgICBnb3RvIGVycm9yX3JldHVybjsNCisJCSAgICB9DQorDQorCQkgIG5l
d19lbmRfb2Zmc2V0ID0gb2Zmc2V0X3dpdGhfcmVtb3ZlZF90ZXh0X21hcA0KKwkJICAgICgmdGFy
Z2V0X3JlbGF4X2luZm8tPmFjdGlvbl9saXN0LA0KKwkJICAgICByX3JlbC50YXJnZXRfb2Zmc2V0
ICsgZGlmZl92YWx1ZSk7DQorCQkgIGlmIChuZXdfZW5kX29mZnNldCA8IG5ld19yZWxvYy50YXJn
ZXRfb2Zmc2V0KQ0KKwkJICAgIHsNCisJCSAgICAgICgqbGlua19pbmZvLT5jYWxsYmFja3MtPnJl
bG9jX2Rhbmdlcm91cykNCisJCQkobGlua19pbmZvLCBfKCJ1bGViMTI4IGRpZmZlcmVuY2UgaXMg
bmVnYXRpdmUgYWZ0ZXIgIg0KKwkJCQkgICAgICAicmVsYXhhdGlvbiIpLA0KKwkJCSBhYmZkLCBz
ZWMsIG9sZF9zb3VyY2Vfb2Zmc2V0KTsNCisJCSAgICAgIGdvdG8gZXJyb3JfcmV0dXJuOw0KKwkJ
ICAgIH0NCisJCSAgZGlmZl92YWx1ZSA9IG5ld19lbmRfb2Zmc2V0IC0gbmV3X3JlbG9jLnRhcmdl
dF9vZmZzZXQ7DQorDQorCQkgIC8qIEJ5dGUgbGVuZ3RoIG9mIHRoZSBtaW5pbWFsIHVsZWIxMjgg
ZW5jb2Rpbmcgb2YNCisJCSAgICAgRElGRl9WQUxVRS4gICovDQorCQkgIGZvciAoYmZkX3ZtYSB2
ID0gZGlmZl92YWx1ZTsgbmV3X2xlbisrLCB2ID4+PSA3OyApDQorCQkgICAgOw0KKwkJICAvKiBU
aGUgYXNzZW1ibGVyIHJlc2VydmVzIG9uZSBzcGFyZSBieXRlIGZvciB0aGVzZQ0KKwkJICAgICBk
aWZmZXJlbmNlcywgYnV0IHJlamVjdCBncm93dGggdGhhdCBzdGlsbCBuZWVkcyBtb3JlDQorCQkg
ICAgIGJ5dGVzIHRoYW4gd2VyZSBlbWl0dGVkLiAgKi8NCisJCSAgaWYgKG5ld19sZW4gPiBsZW4p
DQorCQkgICAgew0KKwkJICAgICAgKCpsaW5rX2luZm8tPmNhbGxiYWNrcy0+cmVsb2NfZGFuZ2Vy
b3VzKQ0KKwkJCShsaW5rX2luZm8sIF8oInVsZWIxMjggZGlmZmVyZW5jZSBvdmVyZmxvd3MgYWZ0
ZXIgIg0KKwkJCQkgICAgICAicmVsYXhhdGlvbiIpLA0KKwkJCSBhYmZkLCBzZWMsIG9sZF9zb3Vy
Y2Vfb2Zmc2V0KTsNCisJCSAgICAgIGdvdG8gZXJyb3JfcmV0dXJuOw0KKwkJICAgIH0NCisNCisJ
CSAgLyogUmV3cml0ZSB0aGUgZGlmZmVyZW5jZSBpbiBwbGFjZSwgYWx3YXlzIHVzaW5nIHRoZQ0K
KwkJICAgICBudW1iZXIgb2YgYnl0ZXMgdGhlIGFzc2VtYmxlciBlbWl0dGVkIHNvIHRoYXQgdGhl
IHNpemUNCisJCSAgICAgb2YgdGhpcyBzZWN0aW9uIGRvZXMgbm90IGNoYW5nZS4gIEEgdmFsdWUg
dGhhdCBub3cNCisJCSAgICAgbmVlZHMgZmV3ZXIgYnl0ZXMgaXMgcGFkZGVkIHdpdGggdWxlYjEy
OCB6ZXJvZXMuICAqLw0KKwkJICBlbmRwID0gcCArIGxlbiAtIDE7DQorCQkgIG1lbXNldCAocCwg
MHg4MCwgbGVuIC0gMSk7DQorCQkgICplbmRwID0gMDsNCisJCSAgcCA9IF9iZmRfd3JpdGVfdW5z
aWduZWRfbGViMTI4IChwLCBlbmRwLCBkaWZmX3ZhbHVlKTsNCisJCSAgQkZEX0FTU0VSVCAocCk7
DQorCQkgIGlmICgtLXAgPCBlbmRwKQ0KKwkJICAgICpwIHw9IDB4ODA7DQorDQorCQkgIHBpbl9j
b250ZW50cyAoc2VjLCBjb250ZW50cyk7DQorCQl9DQorDQogCSAgICAgIGlmIChyX3R5cGUgPT0g
Ul9YVEVOU0FfRElGRjgNCiAJCSAgfHwgcl90eXBlID09IFJfWFRFTlNBX0RJRkYxNg0KIAkJICB8
fCByX3R5cGUgPT0gUl9YVEVOU0FfRElGRjMyDQpkaWZmIC0tZ2l0IGEvYmZkL2xpYmJmZC5oIGIv
YmZkL2xpYmJmZC5oDQppbmRleCAwM2M5ZGNhODAwZC4uNWYyNzMwZDI0MTEgMTAwNjQ0DQotLS0g
YS9iZmQvbGliYmZkLmgNCisrKyBiL2JmZC9saWJiZmQuaA0KQEAgLTI4NDUsNiArMjg0NSw3IEBA
IHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBiZmRfcmVsb2NfY29kZV9yZWFsX25hbWVzW10gPSB7
ICJAQHVuaW5pdGlhbGl6ZWRAQCIsDQogICAiQkZEX1JFTE9DX1hURU5TQV9ORElGRjgiLA0KICAg
IkJGRF9SRUxPQ19YVEVOU0FfTkRJRkYxNiIsDQogICAiQkZEX1JFTE9DX1hURU5TQV9ORElGRjMy
IiwNCisgICJCRkRfUkVMT0NfWFRFTlNBX1BESUZGX1VMRUIxMjgiLA0KICAgIkJGRF9SRUxPQ19a
ODBfRElTUDgiLA0KICAgIkJGRF9SRUxPQ19aODBfQllURTAiLA0KICAgIkJGRF9SRUxPQ19aODBf
QllURTEiLA0KZGlmZiAtLWdpdCBhL2JmZC9yZWxvYy5jIGIvYmZkL3JlbG9jLmMNCmluZGV4IDk4
MzQzNjk2YTMzLi4xMmFkZTU4ZGQ1NSAxMDA2NDQNCi0tLSBhL2JmZC9yZWxvYy5jDQorKysgYi9i
ZmQvcmVsb2MuYw0KQEAgLTYxNzgsNiArNjE3OCwxOCBAQCBFTlVNRE9DDQogICBkaWZmZXJlbmNl
cy4gIFRoZSBkaWZmZXJlbmNlIHZhbHVlIGlzIHRyZWF0ZWQgYXMgdW5zaWduZWQgd2l0aCB0aGVz
ZQ0KICAgcmVsb2NhdGlvbiB0eXBlcywgZ2l2aW5nIGZ1bGwgOC8xNiB2YWx1ZSByYW5nZXMuDQog
DQorRU5VTQ0KKyAgQkZEX1JFTE9DX1hURU5TQV9QRElGRl9VTEVCMTI4DQorRU5VTURPQw0KKyAg
WHRlbnNhIHJlbG9jYXRpb24gdG8gbWFyayBhIHBvc2l0aXZlIGRpZmZlcmVuY2Ugb2YgdHdvIGxv
Y2FsIHN5bWJvbHMNCisgIGVuY29kZWQgYXMgYW4gdW5zaWduZWQgTEVCMTI4IHZhbHVlLiAgVGhp
cyB3b3JrcyBsaWtlDQorICBCRkRfUkVMT0NfWFRFTlNBX1BESUZGMzIsIGJ1dCB0aGUgbGlua2Vy
IHJld3JpdGVzIHRoZSBkaWZmZXJlbmNlIGluDQorICBwbGFjZSB1c2luZyB0aGUgbnVtYmVyIG9m
IGJ5dGVzIHRoZSBhc3NlbWJsZXIgb3JpZ2luYWxseSBlbWl0dGVkLCBzbw0KKyAgdGhhdCB0aGUg
c2l6ZSBvZiB0aGUgY29udGFpbmluZyBzZWN0aW9uIG5ldmVyIGNoYW5nZXMuICBXaXRob3V0IGl0
IHRoZQ0KKyAgYXNzZW1ibGVyIHdvdWxkIGhhdmUgdG8gaW5oaWJpdCBsaW5rZXIgcmVsYXhhdGlv
biBvZiBhbGwgY29kZSBjb3ZlcmVkDQorICBieSBzdWNoIGEgZGlmZmVyZW5jZSwgd2hpY2ggRFdB
UkYgNSBsb2NhdGlvbiBhbmQgcmFuZ2UgbGlzdHMgcHJvZHVjZQ0KKyAgZm9yIHZpcnR1YWxseSBl
dmVyeSBmdW5jdGlvbi4NCisNCiBFTlVNDQogICBCRkRfUkVMT0NfWjgwX0RJU1A4DQogRU5VTURP
Qw0KZGlmZiAtLWdpdCBhL2JpbnV0aWxzL3JlYWRlbGYuYyBiL2JpbnV0aWxzL3JlYWRlbGYuYw0K
aW5kZXggOGNhOTBhMjZmNzcuLjA1YjM4NzdmZDFlIDEwMDY0NA0KLS0tIGEvYmludXRpbHMvcmVh
ZGVsZi5jDQorKysgYi9iaW51dGlscy9yZWFkZWxmLmMNCkBAIC0xNjcxNSw3ICsxNjcxNSw4IEBA
IGlzX25vbmVfcmVsb2MgKEZpbGVkYXRhICogZmlsZWRhdGEsIHVuc2lnbmVkIGludCByZWxvY190
eXBlKQ0KIAkgICAgICB8fCByZWxvY190eXBlID09IDU5ICAvKiBSX1hURU5TQV9QRElGRjMyLiAg
Ki8NCiAJICAgICAgfHwgcmVsb2NfdHlwZSA9PSA2MCAgLyogUl9YVEVOU0FfTkRJRkY4LiAgKi8N
CiAJICAgICAgfHwgcmVsb2NfdHlwZSA9PSA2MSAgLyogUl9YVEVOU0FfTkRJRkYxNi4gICovDQot
CSAgICAgIHx8IHJlbG9jX3R5cGUgPT0gNjIgIC8qIFJfWFRFTlNBX05ESUZGMzIuICAqLyk7DQor
CSAgICAgIHx8IHJlbG9jX3R5cGUgPT0gNjIgIC8qIFJfWFRFTlNBX05ESUZGMzIuICAqLw0KKwkg
ICAgICB8fCByZWxvY190eXBlID09IDYzICAvKiBSX1hURU5TQV9QRElGRl9VTEVCMTI4LiAgKi8p
Ow0KICAgICB9DQogICByZXR1cm4gZmFsc2U7DQogfQ0KZGlmZiAtLWdpdCBhL2dhcy9jb25maWcv
dGMteHRlbnNhLmMgYi9nYXMvY29uZmlnL3RjLXh0ZW5zYS5jDQppbmRleCAwYjZkN2QxODVkYi4u
ZTg0ZWIxNjllMWEgMTAwNjQ0DQotLS0gYS9nYXMvY29uZmlnL3RjLXh0ZW5zYS5jDQorKysgYi9n
YXMvY29uZmlnL3RjLXh0ZW5zYS5jDQpAQCAtNjExOSw2ICs2MTE5LDcgQEAgbWRfYXBwbHlfZml4
IChmaXhTICpmaXhQLCB2YWx1ZVQgKnZhbFAsIHNlZ1Qgc2VnKQ0KICAgICAgIGJyZWFrOw0KIA0K
ICAgICBjYXNlIEJGRF9SRUxPQ19YVEVOU0FfQVNNX0VYUEFORDoNCisgICAgY2FzZSBCRkRfUkVM
T0NfWFRFTlNBX1BESUZGX1VMRUIxMjg6DQogICAgIGNhc2UgQkZEX1JFTE9DX1hURU5TQV9UTFNf
RlVOQzoNCiAgICAgY2FzZSBCRkRfUkVMT0NfWFRFTlNBX1RMU19BUkc6DQogICAgIGNhc2UgQkZE
X1JFTE9DX1hURU5TQV9UTFNfQ0FMTDoNCkBAIC03Mzc2LDYgKzczNzcsNyBAQCBzdGF0aWMgdm9p
ZCB4dGVuc2FfZml4X3RhcmdldF9mcmFncyAodm9pZCk7DQogc3RhdGljIHZvaWQgeHRlbnNhX21h
cmtfbmFycm93X2JyYW5jaGVzICh2b2lkKTsNCiBzdGF0aWMgdm9pZCB4dGVuc2FfbWFya196Y2xf
Zmlyc3RfaW5zbnMgKHZvaWQpOw0KIHN0YXRpYyB2b2lkIHh0ZW5zYV9tYXJrX2RpZmZlcmVuY2Vf
b2ZfdHdvX3N5bWJvbHMgKHZvaWQpOw0KK3N0YXRpYyB2b2lkIHh0ZW5zYV9pbnNlcnRfdWxlYjEy
OF9maXhlcyAoYmZkICosIGFzZWN0aW9uICosIHZvaWQgKik7DQogc3RhdGljIHZvaWQgeHRlbnNh
X2ZpeF9hMF9iX3JldHdfZnJhZ3MgKHZvaWQpOw0KIHN0YXRpYyB2b2lkIHh0ZW5zYV9maXhfYl9q
X2xvb3BfZW5kX2ZyYWdzICh2b2lkKTsNCiBzdGF0aWMgdm9pZCB4dGVuc2FfZml4X2Nsb3NlX2xv
b3BfZW5kX2ZyYWdzICh2b2lkKTsNCkBAIC03NDE2LDYgKzc0MTgsOSBAQCB4dGVuc2FfbWRfZmlu
aXNoICh2b2lkKQ0KICAgeHRlbnNhX2FkZF9jb25maWdfaW5mbyAoKTsNCiANCiAgIHh0ZW5zYV9j
aGVja19mcmFnX2NvdW50ICgpOw0KKw0KKyAgaWYgKGxpbmtyZWxheCkNCisgICAgYmZkX21hcF9v
dmVyX3NlY3Rpb25zIChzdGRvdXRwdXQsIHh0ZW5zYV9pbnNlcnRfdWxlYjEyOF9maXhlcywgTlVM
TCk7DQogfQ0KIA0KIHN0cnVjdCB0cmFtcG9saW5lX2NoYWluX2VudHJ5DQpAQCAtODI0OSwxMSAr
ODI1NCw4MyBAQCB4dGVuc2FfbWFya196Y2xfZmlyc3RfaW5zbnMgKHZvaWQpDQogICAgICAgfQ0K
IH0NCiANCisvKiBBIGRpZmZlcmVuY2Ugb2YgdHdvIHN5bWJvbHMgZW5jb2RlZCBhcyBhIHVsZWIx
MjggdmFsdWUgY2FuIGJlIGhhbmRlZCB0bw0KKyAgIHRoZSBsaW5rZXIgYXMgYSBCRkRfUkVMT0Nf
WFRFTlNBX1BESUZGX1VMRUIxMjggcmVsb2NhdGlvbjogdGhlIGRpZmZlcmVuY2UNCisgICBpdHNl
bGYgc3RheXMgaW4gdGhlIHNlY3Rpb24gY29udGVudHMgYW5kIHRoZSByZWxvY2F0aW9uIHJlY29y
ZHMgdGhlDQorICAgYWRkcmVzcyBvZiB0aGUgc3VidHJhY3RlZCBzeW1ib2wsIHdoaWNoIGlzIGFs
bCB0aGUgbGlua2VyIG5lZWRzIHRvDQorICAgcmV3cml0ZSB0aGUgdmFsdWUgYWZ0ZXIgcmVsYXhh
dGlvbi4gIERXQVJGIDUgbG9jYXRpb24gYW5kIHJhbmdlIGxpc3RzDQorICAgYXJlIG1hZGUgYWxt
b3N0IGVudGlyZWx5IG9mIHN1Y2ggZGlmZmVyZW5jZXMsIHNvIHdpdGhvdXQgdGhpcyB0aGUgY29k
ZQ0KKyAgIGNvdmVyZWQgYnkgdGhlbSBjb3VsZCBuZXZlciBiZSByZWxheGVkLg0KKw0KKyAgIFRo
aXMgaGFzIHRvIHJ1biBiZWZvcmUgcmVsYXhhdGlvbiB0dXJucyB0aGUgcnNfbGViMTI4IGZyYWdz
IGludG8gcGxhaW4NCisgICBkYXRhLiAgRGlmZmVyZW5jZXMgdGhhdCBjYW5ub3QgYmUgcmVwcmVz
ZW50ZWQgdGhpcyB3YXkgYXJlIGxlZnQgdG8NCisgICB4dGVuc2FfbWFya19kaWZmZXJlbmNlX29m
X3R3b19zeW1ib2xzLg0KKw0KKyAgIE1hcmsgdGhlIGV4cHJlc3Npb24gc3ltYm9sIHNvIHh0ZW5z
YV9sZWIxMjhfZnJhZ19zaXplIGNhbiByZXNlcnZlIG9uZQ0KKyAgIHNwYXJlIGJ5dGU6IFh0ZW5z
YSBsaW5rZXIgcmVsYXhhdGlvbiBjYW4gZ3JvdyBjb2RlLCB3aGljaCBtYXkgcHVzaCBhDQorICAg
ZGlmZmVyZW5jZSBhY3Jvc3MgYSB1bGViMTI4IGJ5dGUgYm91bmRhcnkuICAqLw0KKw0KK3N0YXRp
YyB2b2lkDQoreHRlbnNhX2luc2VydF91bGViMTI4X2ZpeGVzIChiZmQgKmFiZmQgQVRUUklCVVRF
X1VOVVNFRCwNCisJCQkgICAgIGFzZWN0aW9uICpzZWMsDQorCQkJICAgICB2b2lkICp1bnVzZWQg
QVRUUklCVVRFX1VOVVNFRCkNCit7DQorICBzZWdtZW50X2luZm9fdHlwZSAqc2VnaW5mbyA9IHNl
Z19pbmZvIChzZWMpOw0KKyAgZnJhZ1MgKmZyYWdQOw0KKw0KKyAgaWYgKHNlZ2luZm8gPT0gTlVM
TCB8fCBzZWdpbmZvLT5mcmNoYWluUCA9PSBOVUxMKQ0KKyAgICByZXR1cm47DQorDQorICBzdWJz
ZWdfc2V0IChzZWMsIDApOw0KKw0KKyAgZm9yIChmcmFnUCA9IHNlZ2luZm8tPmZyY2hhaW5QLT5m
cmNoX3Jvb3Q7IGZyYWdQOyBmcmFnUCA9IGZyYWdQLT5mcl9uZXh0KQ0KKyAgICB7DQorICAgICAg
ZXhwcmVzc2lvblMgKmV4cDsNCisNCisgICAgICAvKiBBIG5vbi16ZXJvIGZyX3N1YnR5cGUgbWVh
bnMgc2xlYjEyOCwgZm9yIHdoaWNoIHRoZXJlIGlzIG5vDQorCSByZWxvY2F0aW9uLiAgKi8NCisg
ICAgICBpZiAoZnJhZ1AtPmZyX3R5cGUgIT0gcnNfbGViMTI4IHx8IGZyYWdQLT5mcl9zdWJ0eXBl
ICE9IDANCisJICB8fCBmcmFnUC0+ZnJfc3ltYm9sID09IE5VTEwpDQorCWNvbnRpbnVlOw0KKw0K
KyAgICAgIGV4cCA9IHN5bWJvbF9nZXRfdmFsdWVfZXhwcmVzc2lvbiAoZnJhZ1AtPmZyX3N5bWJv
bCk7DQorICAgICAgaWYgKGV4cC0+WF9vcCAhPSBPX3N1YnRyYWN0KQ0KKwljb250aW51ZTsNCisN
CisgICAgICAvKiBEaWZmZXJlbmNlcyBvZiBzeW1ib2xzIGluIGRpZmZlcmVudCBzZWN0aW9ucyBh
cmUgcmVzb2x2ZWQgYnkgdGhlDQorCSBsaW5rZXIgYW55d2F5LiAgKi8NCisgICAgICBpZiAoU19H
RVRfU0VHTUVOVCAoZXhwLT5YX2FkZF9zeW1ib2wpDQorCSAgIT0gU19HRVRfU0VHTUVOVCAoZXhw
LT5YX29wX3N5bWJvbCkpDQorCWNvbnRpbnVlOw0KKw0KKyAgICAgIGZpeF9uZXcgKGZyYWdQLCBm
cmFnUC0+ZnJfZml4LCAwLCBleHAtPlhfb3Bfc3ltYm9sLCAwLCAwLA0KKwkgICAgICAgQkZEX1JF
TE9DX1hURU5TQV9QRElGRl9VTEVCMTI4KTsNCisgICAgICBzeW1ib2xfZ2V0X3RjIChmcmFnUC0+
ZnJfc3ltYm9sKS0+aGFzX2xlYjEyOF9kaWZmX3JlbG9jID0gMTsNCisgICAgfQ0KK30NCisNCisv
KiBGb3IgdWxlYjEyOCBkaWZmcyB3aXRoIFJfWFRFTlNBX1BESUZGX1VMRUIxMjgsIHJlc2VydmUg
b25lIHNwYXJlIGJ5dGUgc28NCisgICBsaW5rZXIgcmVsYXhhdGlvbiBjYW4gZ3JvdyB0aGUgdmFs
dWUgYWNyb3NzIG9uZSA3LWJpdCBib3VuZGFyeSB3aXRob3V0DQorICAgb3ZlcmZsb3dpbmcuICBH
cm93dGggdGhhdCBuZWVkcyBtb3JlIHRoYW4gb25lIGV4dHJhIGJ5dGUgc3RpbGwgZXJyb3JzIGlu
DQorICAgdGhlIGxpbmtlci4gIGZyYWdfdmFyIGFscmVhZHkgYWxsb2NhdGVkIHNpemVvZl9sZWIx
MjggKH4wLCAwKSBieXRlczsNCisgICBjbGFtcCBpZiB0aGUgdmFsdWUgYWxyZWFkeSBuZWVkcyB0
aGF0IG1hbnkuICAqLw0KKw0KK29mZnNldFQNCit4dGVuc2FfbGViMTI4X2ZyYWdfc2l6ZSAoY29u
c3QgZnJhZ1MgKmZyYWdQLCBvZmZzZXRUIHNpemUpDQorew0KKyAgaWYgKGZyYWdQLT5mcl9zeW1i
b2wgIT0gTlVMTA0KKyAgICAgICYmIHN5bWJvbF9nZXRfdGMgKGZyYWdQLT5mcl9zeW1ib2wpLT5o
YXNfbGViMTI4X2RpZmZfcmVsb2MNCisgICAgICAmJiBzaXplIDwgKG9mZnNldFQpIHNpemVvZl9s
ZWIxMjggKH4odmFsdWVUKSAwLCAwKSkNCisgICAgc2l6ZSsrOw0KKyAgcmV0dXJuIHNpemU7DQor
fQ0KKw0KIA0KIC8qIFdoZW4gYSBkaWZmZXJlbmNlLW9mLXN5bWJvbHMgZXhwcmVzc2lvbiBpcyBl
bmNvZGVkIGFzIGEgdWxlYjEyOCBvcg0KLSAgIHNsZWIxMjggdmFsdWUsIHRoZSBsaW5rZXIgaXMg
dW5hYmxlIHRvIGFkanVzdCB0aGF0IHZhbHVlIHRvIGFjY291bnQgZm9yDQotICAgbGluay10aW1l
IHJlbGF4YXRpb24uICBNYXJrIGFsbCB0aGUgY29kZSBiZXR3ZWVuIHN1Y2ggc3ltYm9scyBzbyB0
aGF0DQotICAgaXRzIHNpemUgY2Fubm90IGJlIGNoYW5nZWQgYnkgbGlua2VyIHJlbGF4YXRpb24u
ICAqLw0KKyAgIHNsZWIxMjggdmFsdWUgYW5kIG5vIHJlbG9jYXRpb24gY2FuIGV4cHJlc3MgaXQs
IHRoZSBsaW5rZXIgaXMgdW5hYmxlIHRvDQorICAgYWRqdXN0IHRoYXQgdmFsdWUgdG8gYWNjb3Vu
dCBmb3IgbGluay10aW1lIHJlbGF4YXRpb24uICBNYXJrIGFsbCB0aGUgY29kZQ0KKyAgIGJldHdl
ZW4gc3VjaCBzeW1ib2xzIHNvIHRoYXQgaXRzIHNpemUgY2Fubm90IGJlIGNoYW5nZWQgYnkgbGlu
a2VyDQorICAgcmVsYXhhdGlvbi4gICovDQogDQogc3RhdGljIHZvaWQNCiB4dGVuc2FfbWFya19k
aWZmZXJlbmNlX29mX3R3b19zeW1ib2xzICh2b2lkKQ0KQEAgLTgyNjUsNiArODM0Miw5IEBAIHh0
ZW5zYV9tYXJrX2RpZmZlcmVuY2Vfb2ZfdHdvX3N5bWJvbHMgKHZvaWQpDQogICAgIHsNCiAgICAg
ICBleHByZXNzaW9uUyAqZXhwID0gc3ltYm9sX2dldF92YWx1ZV9leHByZXNzaW9uIChleHByX3N5
bSk7DQogDQorICAgICAgaWYgKHN5bWJvbF9nZXRfdGMgKGV4cHJfc3ltKS0+aGFzX2xlYjEyOF9k
aWZmX3JlbG9jKQ0KKwljb250aW51ZTsNCisNCiAgICAgICBpZiAoZXhwLT5YX29wID09IE9fc3Vi
dHJhY3QpDQogCXsNCiAJICBzeW1ib2xTICpsZWZ0ID0gZXhwLT5YX2FkZF9zeW1ib2w7DQpkaWZm
IC0tZ2l0IGEvZ2FzL2NvbmZpZy90Yy14dGVuc2EuaCBiL2dhcy9jb25maWcvdGMteHRlbnNhLmgN
CmluZGV4IDY0ZDczNTE0NGQ3Li5hZmQ3NDc4ZGQ4ZCAxMDA2NDQNCi0tLSBhL2dhcy9jb25maWcv
dGMteHRlbnNhLmgNCisrKyBiL2dhcy9jb25maWcvdGMteHRlbnNhLmgNCkBAIC0yOTcsNiArMjk3
LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgeHRlbnNhX3N5bWZpZWxkX3R5cGUNCiB7DQogICB1bnNpZ25l
ZCBpbnQgaXNfbG9vcF90YXJnZXQgOiAxOw0KICAgdW5zaWduZWQgaW50IGlzX2JyYW5jaF90YXJn
ZXQgOiAxOw0KKyAgLyogU2V0IHdoZW4gYSB1bGViMTI4IGRpZmZlcmVuY2UgZ290IFJfWFRFTlNB
X1BESUZGX1VMRUIxMjgsIHNvIGNvZGUNCisgICAgIGJldHdlZW4gdGhlIHN5bWJvbHMgbWF5IHN0
aWxsIGJlIHJlbGF4ZWQuICAqLw0KKyAgdW5zaWduZWQgaW50IGhhc19sZWIxMjhfZGlmZl9yZWxv
YyA6IDE7DQogICBzeW1ib2xTICpuZXh0X2V4cHJfc3ltYm9sOw0KIH0geHRlbnNhX3N5bWZpZWxk
X3R5cGU7DQogDQpAQCAtMzQxLDYgKzM0NCw3IEBAIGV4dGVybiBpbnQgeHRlbnNhX3VucmVjb2du
aXplZF9saW5lIChpbnQpOw0KIGV4dGVybiBib29sIHh0ZW5zYV9jaGVja19pbnNpZGVfYnVuZGxl
ICh2b2lkKTsNCiBleHRlcm4gdm9pZCB4dGVuc2FfaGFuZGxlX2FsaWduIChmcmFnUyAqKTsNCiBl
eHRlcm4gY2hhciAqeHRlbnNhX3NlY3Rpb25fcmVuYW1lIChjb25zdCBjaGFyICopOw0KK2V4dGVy
biBvZmZzZXRUIHh0ZW5zYV9sZWIxMjhfZnJhZ19zaXplIChjb25zdCBmcmFnUyAqLCBvZmZzZXRU
KTsNCiANCiAvKiBXZSBuZWVkIHRvIHNldCB0aGUgdGFyZ2V0IGVuZGlhbm5lc3MgaW4geHRlbnNh
X2luaXQgYW5kIG5vdCBpbiBtZF9iZWdpbi4NCiAgICBUaGlzIGlzIGJlY2F1c2UgeHRlbnNhX3Rh
cmdldF9mb3JtYXQgaXMgY2FsbGVkIGJlZm9yZSBtZF9iZWdpbiwgYW5kIHdlDQpAQCAtMzc0LDYg
KzM3OCw3IEBAIGV4dGVybiB2b2lkIHh0ZW5zYV9pbml0IChpbnQsIGNoYXIgKiopOw0KICNkZWZp
bmUgbWRfZWxmX3NlY3Rpb25fY2hhbmdlX2hvb2sJeHRlbnNhX2VsZl9zZWN0aW9uX2NoYW5nZV9o
b29rDQogI2RlZmluZSBtZF9maW5pc2gJCQl4dGVuc2FfbWRfZmluaXNoDQogI2RlZmluZSBtZF9m
bHVzaF9wZW5kaW5nX291dHB1dCgpCXh0ZW5zYV9mbHVzaF9wZW5kaW5nX291dHB1dCAoKQ0KKyNk
ZWZpbmUgbWRfbGViMTI4X2ZyYWdfc2l6ZShmcmFnLCBzaXplKQl4dGVuc2FfbGViMTI4X2ZyYWdf
c2l6ZSAoZnJhZywgc2l6ZSkNCiAjZGVmaW5lIG1kX29wZXJhbmQoeCkNCiAjZGVmaW5lIFRFWFRf
U0VDVElPTl9OQU1FCQl4dGVuc2Ffc2VjdGlvbl9yZW5hbWUgKCIudGV4dCIpDQogI2RlZmluZSBE
QVRBX1NFQ1RJT05fTkFNRQkJeHRlbnNhX3NlY3Rpb25fcmVuYW1lICgiLmRhdGEiKQ0KZGlmZiAt
LWdpdCBhL2dhcy90ZXN0c3VpdGUvZ2FzL3h0ZW5zYS9wZGlmZi11bGViMTI4LW5vcmVsYXguZCBi
L2dhcy90ZXN0c3VpdGUvZ2FzL3h0ZW5zYS9wZGlmZi11bGViMTI4LW5vcmVsYXguZA0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5kY2Q0NjQxMDgzZg0KLS0tIC9kZXYv
bnVsbA0KKysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMveHRlbnNhL3BkaWZmLXVsZWIxMjgtbm9yZWxh
eC5kDQpAQCAtMCwwICsxLDIwIEBADQorI2FzOiAtLW5vLWxpbmstcmVsYXgNCisjc291cmNlOiBw
ZGlmZi11bGViMTI4LnMNCisjb2JqZHVtcDogLXIgLXMgLWogLmRlYnVnX2luZm8gLWogLnh0LnBy
b3ANCisjbmFtZTogdWxlYjEyOCBkaWZmZXJlbmNlIHdpdGhvdXQgbGluay1yZWxheA0KKw0KKyMg
V2l0aG91dCBsaW5rLXJlbGF4LCBubyBSX1hURU5TQV9QRElGRl9VTEVCMTI4IGlzIGVtaXR0ZWQu
ICBUaGUgYXNzZW1ibGVyDQorIyBmYWxscyBiYWNrIHRvIG1hcmtpbmcgdGhlIGNvdmVyZWQgY29k
ZSBub190cmFuc2Zvcm0gdmlhIC54dC5wcm9wLCBhbmQgdGhlDQorIyB1bGViMTI4IHVzZXMgdGhl
IG1pbmltYWwgZW5jb2RpbmcgKG5vIHNwYXJlIGJ5dGUpLg0KKw0KKy4qOiArZmlsZSBmb3JtYXQg
Lip4dGVuc2EuKg0KKw0KK1JFTE9DQVRJT04gUkVDT1JEUyBGT1IgXFsueHQucHJvcFxdOg0KK09G
RlNFVCArVFlQRSArVkFMVUUNCiswKyBSX1hURU5TQV8zMiArLnRleHQuKg0KKw0KK0NvbnRlbnRz
IG9mIHNlY3Rpb24gLmRlYnVnX2luZm86DQorIDAwMDAgYzgwMS4qDQorIy4uLg0KK0NvbnRlbnRz
IG9mIHNlY3Rpb24gLnh0LnByb3A6DQorIDAwMDAgLioNCmRpZmYgLS1naXQgYS9nYXMvdGVzdHN1
aXRlL2dhcy94dGVuc2EvcGRpZmYtdWxlYjEyOC5kIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMveHRlbnNh
L3BkaWZmLXVsZWIxMjguZA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAw
Li41YzM4ZjU2Y2E2Ng0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMveHRl
bnNhL3BkaWZmLXVsZWIxMjguZA0KQEAgLTAsMCArMSwxMiBAQA0KKyNvYmpkdW1wOiAtciAtcyAt
aiAuZGVidWdfaW5mbw0KKyNuYW1lOiB1bGViMTI4IGRpZmZlcmVuY2UgcmVsb2MNCisNCisuKjog
K2ZpbGUgZm9ybWF0IC4qeHRlbnNhLioNCisNCitSRUxPQ0FUSU9OIFJFQ09SRFMgRk9SIFxbLmRl
YnVnX2luZm9cXToNCitPRkZTRVQgK1RZUEUgK1ZBTFVFDQorMCsgUl9YVEVOU0FfUERJRkZfVUxF
QjEyOCArLnRleHQuKg0KKw0KKyMgRGlmZmVyZW5jZSBpcyAyMDAgKDB4YzggMHgwMSkgcGx1cyBv
bmUgc3BhcmUgYnl0ZSByZXNlcnZlZCBmb3IgZ3Jvd3RoLg0KK0NvbnRlbnRzIG9mIHNlY3Rpb24g
LmRlYnVnX2luZm86DQorIDAwMDAgYzg4MTAwLioNCmRpZmYgLS1naXQgYS9nYXMvdGVzdHN1aXRl
L2dhcy94dGVuc2EvcGRpZmYtdWxlYjEyOC5zIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMveHRlbnNhL3Bk
aWZmLXVsZWIxMjgucw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4w
YjQzMWEzYWMyNg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMveHRlbnNh
L3BkaWZmLXVsZWIxMjgucw0KQEAgLTAsMCArMSw3IEBADQorCS50ZXh0DQorLkwxOg0KKwkuc3Bh
Y2UJMjAwDQorLkwyOg0KKw0KKwkuc2VjdGlvbgkuZGVidWdfaW5mbywgIiIsIEBwcm9nYml0cw0K
KwkudWxlYjEyOAkuTDIgLSAuTDENCmRpZmYgLS1naXQgYS9nYXMvd3JpdGUuYyBiL2dhcy93cml0
ZS5jDQppbmRleCAzNDk0ODcxMjcwYS4uNmJmYThhZjEzNTEgMTAwNjQ0DQotLS0gYS9nYXMvd3Jp
dGUuYw0KKysrIGIvZ2FzL3dyaXRlLmMNCkBAIC00NjEsNiArNDYxLDIzIEBAIGN2dF9mcmFnX3Rv
X2ZpbGwgKHNlZ1Qgc2VjIEFUVFJJQlVURV9VTlVTRUQsIGZyYWdTICpmcmFnUCkNCiAJc2l6ZSA9
IG91dHB1dF9sZWIxMjggKGZyYWdQLT5mcl9saXRlcmFsICsgZnJhZ1AtPmZyX2ZpeCwgdmFsdWUs
DQogCQkJICAgICAgZnJhZ1AtPmZyX3N1YnR5cGUpOw0KIA0KKwkvKiBSZWxheGF0aW9uIG1heSBo
YXZlIHJlc2VydmVkIG1vcmUgcm9vbSB0aGFuIHRoZSBzaG9ydGVzdCBlbmNvZGluZw0KKwkgICBu
ZWVkcyAoc2VlIG1kX2xlYjEyOF9mcmFnX3NpemUpLiAgS2VlcCB0aGUgcmVzZXJ2ZWQgc2l6ZSBi
eSBhZGRpbmcNCisJICAgcmVkdW5kYW50IGhpZ2gtb3JkZXIgY29udGludWF0aW9uIGJ5dGVzOyBp
bmVydCB1bmxlc3MgYSB0YXJnZXQNCisJICAgaG9vayBncmV3IGZyX29mZnNldCBhYm92ZSB0aGUg
bWluaW1hbCBlbmNvZGluZy4gICovDQorCWlmICgob2Zmc2V0VCkgc2l6ZSA8IGZyYWdQLT5mcl9v
ZmZzZXQpDQorCSAgew0KKwkgICAgY2hhciAqcCA9IGZyYWdQLT5mcl9saXRlcmFsICsgZnJhZ1At
PmZyX2ZpeDsNCisJICAgIGNoYXIgcGFkID0gZnJhZ1AtPmZyX3N1YnR5cGUgJiYgKG9mZnNldFQp
IHZhbHVlIDwgMCA/IDB4N2YgOiAwOw0KKw0KKwkgICAgZG8NCisJICAgICAgew0KKwkJcFtzaXpl
IC0gMV0gfD0gMHg4MDsNCisJCXBbc2l6ZSsrXSA9IHBhZDsNCisJICAgICAgfQ0KKwkgICAgd2hp
bGUgKChvZmZzZXRUKSBzaXplIDwgZnJhZ1AtPmZyX29mZnNldCk7DQorCSAgfQ0KKw0KIAlmcmFn
UC0+ZnJfZml4ICs9IHNpemU7DQogCWZyYWdQLT5mcl90eXBlID0gcnNfZmlsbDsNCiAJZnJhZ1At
PmZyX3ZhciA9IDA7DQpAQCAtMzEwOCw2ICszMTI1LDkgQEAgcmVsYXhfc2VnbWVudCAoc3RydWN0
IGZyYWcgKnNlZ21lbnRfZnJhZ19yb290LCBzZWdUIHNlZ21lbnQsIGludCBwYXNzKQ0KIA0KIAkJ
ICB2YWx1ZSA9IHJlc29sdmVfc3ltYm9sX3ZhbHVlIChmcmFnUC0+ZnJfc3ltYm9sKTsNCiAJCSAg
c2l6ZSA9IHNpemVvZl9sZWIxMjggKHZhbHVlLCBmcmFnUC0+ZnJfc3VidHlwZSk7DQorI2lmZGVm
IG1kX2xlYjEyOF9mcmFnX3NpemUNCisJCSAgc2l6ZSA9IG1kX2xlYjEyOF9mcmFnX3NpemUgKGZy
YWdQLCBzaXplKTsNCisjZW5kaWYNCiAJCSAgZ3Jvd3RoID0gc2l6ZSAtIGZyYWdQLT5mcl9vZmZz
ZXQ7DQogCQkgIGZyYWdQLT5mcl9vZmZzZXQgPSBzaXplOw0KIAkJfQ0KZGlmZiAtLWdpdCBhL2lu
Y2x1ZGUvZWxmL3h0ZW5zYS5oIGIvaW5jbHVkZS9lbGYveHRlbnNhLmgNCmluZGV4IDFhOWJkZjk1
Y2Y3Li4wMzJiOTRlZjk0YiAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvZWxmL3h0ZW5zYS5oDQorKysg
Yi9pbmNsdWRlL2VsZi94dGVuc2EuaA0KQEAgLTkzLDYgKzkzLDkgQEAgU1RBUlRfUkVMT0NfTlVN
QkVSUyAoZWxmX3h0ZW5zYV9yZWxvY190eXBlKQ0KICAgICAgUkVMT0NfTlVNQkVSIChSX1hURU5T
QV9ORElGRjgsIDYwKQ0KICAgICAgUkVMT0NfTlVNQkVSIChSX1hURU5TQV9ORElGRjE2LCA2MSkN
CiAgICAgIFJFTE9DX05VTUJFUiAoUl9YVEVOU0FfTkRJRkYzMiwgNjIpDQorICAgICAvKiBQb3Np
dGl2ZSBzYW1lLXNlY3Rpb24gZGlmZmVyZW5jZSBlbmNvZGVkIGFzIHVsZWIxMjg7IHJld3JpdHRl
bg0KKwlpbiBwbGFjZSBhZnRlciByZWxheGF0aW9uIHdpdGhvdXQgY2hhbmdpbmcgdGhlIHNlY3Rp
b24gc2l6ZS4gICovDQorICAgICBSRUxPQ19OVU1CRVIgKFJfWFRFTlNBX1BESUZGX1VMRUIxMjgs
IDYzKQ0KIEVORF9SRUxPQ19OVU1CRVJTIChSX1hURU5TQV9tYXgpDQogDQogLyogUHJvY2Vzc29y
LXNwZWNpZmljIGZsYWdzIGZvciB0aGUgRUxGIGhlYWRlciBlX2ZsYWdzIGZpZWxkLiAgKi8NCmRp
ZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUvbGQteHRlbnNhL3JlbGF4LXVsZWIxMjgtMi5kIGIvbGQv
dGVzdHN1aXRlL2xkLXh0ZW5zYS9yZWxheC11bGViMTI4LTIuZA0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5jMGYxYzljYTM3OA0KLS0tIC9kZXYvbnVsbA0KKysrIGIv
bGQvdGVzdHN1aXRlL2xkLXh0ZW5zYS9yZWxheC11bGViMTI4LTIuZA0KQEAgLTAsMCArMSwxMiBA
QA0KKyNzb3VyY2U6IHJlbGF4LXVsZWIxMjgtMi5zDQorI3NvdXJjZTogbGNhbGwyLnMNCisjbGQ6
IC1UIGxjYWxsLnQNCisjb2JqZHVtcDogLXMgLWogLmRlYnVnX2luZm8NCisjbmFtZTogdWxlYjEy
OCBkaWZmZXJlbmNlIHNocmlua2luZyBiZWxvdyAxMjgNCisNCisjIFRoZSBkaWZmZXJlbmNlIGlz
IDE1NiBiZWZvcmUgcmVsYXhhdGlvbiBhbmQgMTA4IGFmdGVyIGl0LCBzbyB0aGUgdmFsdWUgbm8N
CisjIGxvbmdlciBuZWVkcyB0d28gYnl0ZXMuICBUaGUgYXNzZW1ibGVyIHJlc2VydmVkIG9uZSBz
cGFyZSBieXRlICh0aHJlZQ0KKyMgdG90YWwpLCBhbmQgdGhlIGxpbmtlciBtdXN0IGtlZXAgdGhh
dCBmaXhlZCB3aWR0aCB3aXRoIHVsZWIxMjggcGFkZGluZy4NCisjLi4uDQorIDAwMDAgZWM4MDAw
LioNCisjLi4uDQpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLXh0ZW5zYS9yZWxheC11bGVi
MTI4LTIucyBiL2xkL3Rlc3RzdWl0ZS9sZC14dGVuc2EvcmVsYXgtdWxlYjEyOC0yLnMNCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYzU4N2VkOGJiMDYNCi0tLSAvZGV2
L251bGwNCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC14dGVuc2EvcmVsYXgtdWxlYjEyOC0yLnMNCkBA
IC0wLDAgKzEsMTggQEANCisJLmdsb2JsCV9zdGFydA0KKwkuZ2xvYmwJZm9vDQorCS50ZXh0DQor
CS5hbGlnbgk0DQorX3N0YXJ0Og0KKwkubGl0ZXJhbAkuTHVudXNlZCwgMHhmZmZmZmZmZg0KKwll
bnRyeQlhNSwgMTYNCisuTDE6DQorCS5zcGFjZQk2MA0KKwkuYmVnaW4JbG9uZ2NhbGxzDQorCS5y
ZXB0CTE2DQorCWNhbGw0CWZvbw0KKwkuZW5kcg0KKwkuZW5kCWxvbmdjYWxscw0KKy5MMjoNCisN
CisJLnNlY3Rpb24JLmRlYnVnX2luZm8sICIiLCBAcHJvZ2JpdHMNCisJLnVsZWIxMjgJLkwyIC0g
LkwxDQpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLXh0ZW5zYS9yZWxheC11bGViMTI4LmQg
Yi9sZC90ZXN0c3VpdGUvbGQteHRlbnNhL3JlbGF4LXVsZWIxMjguZA0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4wOGIwMTc5ODRkOA0KLS0tIC9kZXYvbnVsbA0KKysr
IGIvbGQvdGVzdHN1aXRlL2xkLXh0ZW5zYS9yZWxheC11bGViMTI4LmQNCkBAIC0wLDAgKzEsMTEg
QEANCisjc291cmNlOiByZWxheC11bGViMTI4LnMNCisjc291cmNlOiBsY2FsbDIucw0KKyNsZDog
LVQgbGNhbGwudA0KKyNvYmpkdW1wOiAtcyAtaiAuZGVidWdfaW5mbw0KKyNuYW1lOiB1bGViMTI4
IGRpZmZlcmVuY2UgYWZ0ZXIgbG9uZ2NhbGwgcmVsYXgNCisNCisjIExvbmdjYWxsIHJlbGF4ZXMg
ZnJvbSA2IGJ5dGVzIHRvIDM7IHdpdGggdGhlIHRyYWlsaW5nIG5vcCB0aGUgZGlmZmVyZW5jZQ0K
KyMgaXMgNS4gIEFzc2VtYmxlciByZXNlcnZlZCBvbmUgc3BhcmUgYnl0ZSAodHdvIHRvdGFsKS4N
CisjLi4uDQorIDAwMDAgODUwMC4qDQorIy4uLg0KZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9s
ZC14dGVuc2EvcmVsYXgtdWxlYjEyOC5zIGIvbGQvdGVzdHN1aXRlL2xkLXh0ZW5zYS9yZWxheC11
bGViMTI4LnMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uOGUxYzAw
NTg5NzYNCi0tLSAvZGV2L251bGwNCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC14dGVuc2EvcmVsYXgt
dWxlYjEyOC5zDQpAQCAtMCwwICsxLDE2IEBADQorCS5nbG9ibAlfc3RhcnQNCisJLmdsb2JsCWZv
bw0KKwkudGV4dA0KKwkuYWxpZ24JNA0KK19zdGFydDoNCisJLmxpdGVyYWwJLkx1bnVzZWQsIDB4
ZmZmZmZmZmYNCisJZW50cnkJYTUsIDE2DQorLkwxOg0KKwkuYmVnaW4JbG9uZ2NhbGxzDQorCWNh
bGw0CWZvbw0KKwkuZW5kCWxvbmdjYWxscw0KKwlub3ANCisuTDI6DQorDQorCS5zZWN0aW9uCS5k
ZWJ1Z19pbmZvLCAiIiwgQHByb2diaXRzDQorCS51bGViMTI4CS5MMiAtIC5MMQ0KZGlmZiAtLWdp
dCBhL2xkL3Rlc3RzdWl0ZS9sZC14dGVuc2EveHRlbnNhLmV4cCBiL2xkL3Rlc3RzdWl0ZS9sZC14
dGVuc2EveHRlbnNhLmV4cA0KaW5kZXggNzE3M2M2YjIxYjIuLjY2YTZiN2E2MGRhIDEwMDY0NA0K
LS0tIGEvbGQvdGVzdHN1aXRlL2xkLXh0ZW5zYS94dGVuc2EuZXhwDQorKysgYi9sZC90ZXN0c3Vp
dGUvbGQteHRlbnNhL3h0ZW5zYS5leHANCkBAIC0zMCw2ICszMCw4IEBAIHJ1bl9kdW1wX3Rlc3Qg
ImxjYWxsIg0KIHJ1bl9kdW1wX3Rlc3QgInJlbGF4LWRpZmYxIg0KIHJ1bl9kdW1wX3Rlc3QgInJl
bGF4LWxvYyINCiBydW5fZHVtcF90ZXN0ICJyZWxheC1uZGlmZiINCitydW5fZHVtcF90ZXN0ICJy
ZWxheC11bGViMTI4Ig0KK3J1bl9kdW1wX3Rlc3QgInJlbGF4LXVsZWIxMjgtMiINCiANCiBydW5f
ZHVtcF90ZXN0ICJyZWxheC1zdGF0aWMtcGllIg0KIHJ1bl9kdW1wX3Rlc3QgInJlbGF4LXN0YXRp
Yy1sb2NhbC1waWUiDQotLSANCjIuNDMuMA0KDQo=