Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 May 2018 21:31:39 +0200
From:      "O. Hartmann" <ohartmann@walstatt.org>
To:        Stephen Hurd <shurd@FreeBSD.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r333175 - in head/sys: kern net netinet netinet6 sys
Message-ID:  <20180503213206.7fba052c@thor.intern.walstatt.dynvpn.de>
In-Reply-To: <201805021936.w42JaTlq039053@repo.freebsd.org>
References:  <201805021936.w42JaTlq039053@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
LS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0UtLS0tLQ0KSGFzaDogU0hBNTEyDQoNCkFtIFdl
ZCwgMiBNYXkgMjAxOCAxOTozNjoyOSArMDAwMCAoVVRDKQ0KU3RlcGhlbiBIdXJkIDxzaHVyZEBG
cmVlQlNELm9yZz4gc2NocmllYjoNCg0KPiBBdXRob3I6IHNodXJkDQo+IERhdGU6IFdlZCBNYXkg
IDIgMTk6MzY6MjkgMjAxOA0KPiBOZXcgUmV2aXNpb246IDMzMzE3NQ0KPiBVUkw6IGh0dHBzOi8v
c3Zud2ViLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzMzMzE3NQ0KPiANCj4gTG9nOg0KPiAg
IFNlcGFyYXRlIGxpc3QgbWFuaXB1bGF0aW9uIGxvY2tpbmcgZnJvbSBzdGF0ZSBjaGFuZ2UgaW4g
bXVsdGljYXN0DQo+ICAgDQo+ICAgTXVsdGljYXN0IGluY29ycmVjdGx5IGNhbGxzIGluIHRvIGRy
aXZlcnMgd2l0aCBhIG11dGV4IGhlbGQgY2F1c2luZyBkcml2ZXJzDQo+ICAgdG8gaGF2ZSB0byBn
byB0aHJvdWdoIGFsbCBtYW5uZXIgb2YgY29udG9ydGlvbnMgdG8gdXNlIGEgbm9uIHNsZWVwYWJs
ZSBsb2NrLg0KPiAgIFNlcmlhbGl6ZSBtdWx0aWNhc3QgdXBkYXRlcyBpbnN0ZWFkLg0KPiAgIA0K
PiAgIFN1Ym1pdHRlZCBieToJbW1hY3kgPG1tYWN5QG1hdHRtYWN5LmlvPg0KPiAgIFJldmlld2Vk
IGJ5OglzaHVyZCwgc2JydW5vDQo+ICAgU3BvbnNvcmVkIGJ5OglMaW1lbGlnaHQgTmV0d29ya3MN
Cj4gICBEaWZmZXJlbnRpYWwgUmV2aXNpb246CWh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9yZy9E
MTQ5NjkNCj4gDQo+IE1vZGlmaWVkOg0KPiAgIGhlYWQvc3lzL2tlcm4vc3Vicl9ndGFza3F1ZXVl
LmMNCj4gICBoZWFkL3N5cy9rZXJuL3N1YnJfd2l0bmVzcy5jDQo+ICAgaGVhZC9zeXMvbmV0L2lm
LmMNCj4gICBoZWFkL3N5cy9uZXRpbmV0L2lnbXAuYw0KPiAgIGhlYWQvc3lzL25ldGluZXQvaWdt
cF92YXIuaA0KPiAgIGhlYWQvc3lzL25ldGluZXQvaW4uYw0KPiAgIGhlYWQvc3lzL25ldGluZXQv
aW5fbWNhc3QuYw0KPiAgIGhlYWQvc3lzL25ldGluZXQvaW5fcGNiLmMNCj4gICBoZWFkL3N5cy9u
ZXRpbmV0L2luX3Zhci5oDQo+ICAgaGVhZC9zeXMvbmV0aW5ldC9pcF9jYXJwLmMNCj4gICBoZWFk
L3N5cy9uZXRpbmV0Ni9pbjYuYw0KPiAgIGhlYWQvc3lzL25ldGluZXQ2L2luNl9pZmF0dGFjaC5j
DQo+ICAgaGVhZC9zeXMvbmV0aW5ldDYvaW42X21jYXN0LmMNCj4gICBoZWFkL3N5cy9uZXRpbmV0
Ni9pbjZfcGNiLmMNCj4gICBoZWFkL3N5cy9uZXRpbmV0Ni9pbjZfdmFyLmgNCj4gICBoZWFkL3N5
cy9uZXRpbmV0Ni9tbGQ2LmMNCj4gICBoZWFkL3N5cy9uZXRpbmV0Ni9tbGQ2X3Zhci5oDQo+ICAg
aGVhZC9zeXMvc3lzL2d0YXNrcXVldWUuaA0KPiANCj4gTW9kaWZpZWQ6IGhlYWQvc3lzL2tlcm4v
c3Vicl9ndGFza3F1ZXVlLmMNCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IC0tLSBoZWFkL3N5
cy9rZXJuL3N1YnJfZ3Rhc2txdWV1ZS5jCVdlZCBNYXkgIDIgMTc6NDE6MDAgMjAxOAkocjMzMzE3
NCkNCj4gKysrIGhlYWQvc3lzL2tlcm4vc3Vicl9ndGFza3F1ZXVlLmMJV2VkIE1heSAgMiAxOToz
NjoyOSAyMDE4CShyMzMzMTc1KQ0KPiBAQCAtNTMsNiArNTMsNyBAQCBzdGF0aWMgdm9pZAlndGFz
a3F1ZXVlX3RocmVhZF9lbnF1ZXVlKHZvaWQgKik7DQo+ICBzdGF0aWMgdm9pZAlndGFza3F1ZXVl
X3RocmVhZF9sb29wKHZvaWQgKmFyZyk7DQo+ICANCj4gIFRBU0tRR1JPVVBfREVGSU5FKHNvZnRp
cnEsIG1wX25jcHVzLCAxKTsNCj4gK1RBU0tRR1JPVVBfREVGSU5FKGNvbmZpZywgMSwgMSk7DQo+
ICANCj4gIHN0cnVjdCBndGFza3F1ZXVlX2J1c3kgew0KPiAgCXN0cnVjdCBndGFzawkqdGJfcnVu
bmluZzsNCj4gQEAgLTY2Miw3ICs2NjMsNyBAQCBTWVNJTklUKHRxZ19yZWNvcmRfc21wX3N0YXJ0
ZWQsIFNJX1NVQl9TTVAsIFNJX09SREVSX0YNCj4gIA0KPiAgdm9pZA0KPiAgdGFza3Fncm91cF9h
dHRhY2goc3RydWN0IHRhc2txZ3JvdXAgKnFncm91cCwgc3RydWN0IGdyb3VwdGFzayAqZ3Rhc2ss
DQo+IC0gICAgdm9pZCAqdW5pcSwgaW50IGlycSwgY2hhciAqbmFtZSkNCj4gKyAgICB2b2lkICp1
bmlxLCBpbnQgaXJxLCBjb25zdCBjaGFyICpuYW1lKQ0KPiAgew0KPiAgCWNwdXNldF90IG1hc2s7
DQo+ICAJaW50IHFpZCwgZXJyb3I7DQo+IEBAIC05NzYsNCArOTc3LDEzIEBAIHZvaWQNCj4gIHRh
c2txZ3JvdXBfZGVzdHJveShzdHJ1Y3QgdGFza3Fncm91cCAqcWdyb3VwKQ0KPiAgew0KPiAgDQo+
ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rhc2txZ3JvdXBfY29uZmlnX2d0YXNrX2luaXQodm9pZCAq
Y3R4LCBzdHJ1Y3QgZ3JvdXB0YXNrICpndGFzaywgZ3Rhc2tfZm5fdCAqZm4sDQo+ICsJY29uc3Qg
Y2hhciAqbmFtZSkNCj4gK3sNCj4gKw0KPiArCUdST1VQVEFTS19JTklUKGd0YXNrLCAwLCBmbiwg
Y3R4KTsNCj4gKwl0YXNrcWdyb3VwX2F0dGFjaChxZ3JvdXBfY29uZmlnLCBndGFzaywgZ3Rhc2ss
IC0xLCBuYW1lKTsNCj4gIH0NCj4gDQo+IE1vZGlmaWVkOiBoZWFkL3N5cy9rZXJuL3N1YnJfd2l0
bmVzcy5jDQo+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiAtLS0gaGVhZC9zeXMva2Vybi9zdWJy
X3dpdG5lc3MuYwlXZWQgTWF5ICAyIDE3OjQxOjAwIDIwMTgJKHIzMzMxNzQpDQo+ICsrKyBoZWFk
L3N5cy9rZXJuL3N1YnJfd2l0bmVzcy5jCVdlZCBNYXkgIDIgMTk6MzY6MjkgMjAxOAkocjMzMzE3
NSkNCj4gQEAgLTUzMiwxOCArNTMyLDIyIEBAIHN0YXRpYyBzdHJ1Y3Qgd2l0bmVzc19vcmRlcl9s
aXN0X2VudHJ5IG9yZGVyX2xpc3RzW10gPQ0KPiAgCSAqIElQdjQgbXVsdGljYXN0Og0KPiAgCSAq
IHByb3RvY29sIGxvY2tzIGJlZm9yZSBpbnRlcmZhY2UgbG9ja3MsIGFmdGVyIFVEUCBsb2Nrcy4N
Cj4gIAkgKi8NCj4gKwl7ICJpbl9tdWx0aV9zeCIsICZsb2NrX2NsYXNzX3N4IH0sDQo+ICAJeyAi
dWRwaW5wIiwgJmxvY2tfY2xhc3NfcncgfSwNCj4gLQl7ICJpbl9tdWx0aV9tdHgiLCAmbG9ja19j
bGFzc19tdHhfc2xlZXAgfSwNCj4gKwl7ICJpbl9tdWx0aV9saXN0X210eCIsICZsb2NrX2NsYXNz
X210eF9zbGVlcCB9LA0KPiAgCXsgImlnbXBfbXR4IiwgJmxvY2tfY2xhc3NfbXR4X3NsZWVwIH0s
DQo+ICsJeyAiaWZuZXRfcnciLCAmbG9ja19jbGFzc19ydyB9LA0KPiAgCXsgImlmX2FkZHJfbG9j
ayIsICZsb2NrX2NsYXNzX3J3IH0sDQo+ICAJeyBOVUxMLCBOVUxMIH0sDQo+ICAJLyoNCj4gIAkg
KiBJUHY2IG11bHRpY2FzdDoNCj4gIAkgKiBwcm90b2NvbCBsb2NrcyBiZWZvcmUgaW50ZXJmYWNl
IGxvY2tzLCBhZnRlciBVRFAgbG9ja3MuDQo+ICAJICovDQo+ICsJeyAiaW42X211bHRpX3N4Iiwg
JmxvY2tfY2xhc3Nfc3ggfSwNCj4gIAl7ICJ1ZHBpbnAiLCAmbG9ja19jbGFzc19ydyB9LA0KPiAt
CXsgImluNl9tdWx0aV9tdHgiLCAmbG9ja19jbGFzc19tdHhfc2xlZXAgfSwNCj4gKwl7ICJpbjZf
bXVsdGlfbGlzdF9tdHgiLCAmbG9ja19jbGFzc19tdHhfc2xlZXAgfSwNCj4gIAl7ICJtbGRfbXR4
IiwgJmxvY2tfY2xhc3NfbXR4X3NsZWVwIH0sDQo+ICsJeyAiaWZuZXRfcnciLCAmbG9ja19jbGFz
c19ydyB9LA0KPiAgCXsgImlmX2FkZHJfbG9jayIsICZsb2NrX2NsYXNzX3J3IH0sDQo+ICAJeyBO
VUxMLCBOVUxMIH0sDQo+ICAJLyoNCj4gDQo+IE1vZGlmaWVkOiBoZWFkL3N5cy9uZXQvaWYuYw0K
PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCj4gLS0tIGhlYWQvc3lzL25ldC9pZi5jCVdlZCBNYXkg
IDIgMTc6NDE6MDAgMjAxOAkocjMzMzE3NCkNCj4gKysrIGhlYWQvc3lzL25ldC9pZi5jCVdlZCBN
YXkgIDIgMTk6MzY6MjkgMjAxOAkocjMzMzE3NSkNCj4gQEAgLTk4NSwxMSArOTg1LDEzIEBAIHN0
YXRpYyB2b2lkDQo+ICBpZl9wdXJnZW1hZGRycyhzdHJ1Y3QgaWZuZXQgKmlmcCkNCj4gIHsNCj4g
IAlzdHJ1Y3QgaWZtdWx0aWFkZHIgKmlmbWE7DQo+IC0Jc3RydWN0IGlmbXVsdGlhZGRyICpuZXh0
Ow0KPiAgDQo+ICAJSUZfQUREUl9XTE9DSyhpZnApOw0KPiAtCVRBSUxRX0ZPUkVBQ0hfU0FGRShp
Zm1hLCAmaWZwLT5pZl9tdWx0aWFkZHJzLCBpZm1hX2xpbmssIG5leHQpDQo+ICsJd2hpbGUgKCFU
QUlMUV9FTVBUWSgmaWZwLT5pZl9tdWx0aWFkZHJzKSkgew0KPiArCQlpZm1hID0gVEFJTFFfRklS
U1QoJmlmcC0+aWZfbXVsdGlhZGRycyk7DQo+ICsJCVRBSUxRX1JFTU9WRSgmaWZwLT5pZl9tdWx0
aWFkZHJzLCBpZm1hLCBpZm1hX2xpbmspOw0KPiAgCQlpZl9kZWxtdWx0aV9sb2NrZWQoaWZwLCBp
Zm1hLCAxKTsNCj4gKwl9DQo+ICAJSUZfQUREUl9XVU5MT0NLKGlmcCk7DQo+ICB9DQo+ICANCj4g
QEAgLTM0MjksNiArMzQzMSwxMiBAQCBpZl9hZGRtdWx0aShzdHJ1Y3QgaWZuZXQgKmlmcCwgc3Ry
dWN0IHNvY2thZGRyICpzYSwNCj4gIAlzdHJ1Y3Qgc29ja2FkZHJfZGwgc2RsOw0KPiAgCWludCBl
cnJvcjsNCj4gIA0KPiArI2lmZGVmIElORVQNCj4gKwlJTl9NVUxUSV9MSVNUX1VOTE9DS19BU1NF
UlQoKTsNCj4gKyNlbmRpZg0KPiArI2lmZGVmIElORVQ2DQo+ICsJSU42X01VTFRJX0xJU1RfVU5M
T0NLX0FTU0VSVCgpOw0KPiArI2VuZGlmDQo+ICAJLyoNCj4gIAkgKiBJZiB0aGUgYWRkcmVzcyBp
cyBhbHJlYWR5IHByZXNlbnQsIHJldHVybiBhIG5ldyByZWZlcmVuY2UgdG8gaXQ7DQo+ICAJICog
b3RoZXJ3aXNlLCBhbGxvY2F0ZSBzdG9yYWdlIGFuZCBzZXQgdXAgYSBuZXcgYWRkcmVzcy4NCj4g
QEAgLTM2MTAsNiArMzYxOCw5IEBAIGlmX2RlbG11bHRpX2lmbWEoc3RydWN0IGlmbXVsdGlhZGRy
ICppZm1hKQ0KPiAgCXN0cnVjdCBpZm5ldCAqaWZwOw0KPiAgCWludCBsYXN0cmVmOw0KPiAgDQo+
ICsjaWZkZWYgSU5FVA0KPiArCUlOX01VTFRJX0xJU1RfVU5MT0NLX0FTU0VSVCgpOw0KPiArI2Vu
ZGlmDQo+ICAJaWZwID0gaWZtYS0+aWZtYV9pZnA7DQo+ICAjaWZkZWYgRElBR05PU1RJQw0KPiAg
CWlmIChpZnAgPT0gTlVMTCkgew0KPiBAQCAtMzcxMSw4ICszNzIyLDcgQEAgaWZfZGVsbXVsdGlf
bG9ja2VkKHN0cnVjdCBpZm5ldCAqaWZwLCBzdHJ1Y3QgaWZtdWx0aWFkDQo+ICAJCQlpZl9mcmVl
bXVsdGkobGxfaWZtYSk7DQo+ICAJCX0NCj4gIAl9DQo+IC0NCj4gLQlpZiAoaWZwICE9IE5VTEwp
DQo+ICsJaWYgKGlmcCAhPSBOVUxMICYmIGRldGFjaGluZyA9PSAwKQ0KPiAgCQlUQUlMUV9SRU1P
VkUoJmlmcC0+aWZfbXVsdGlhZGRycywgaWZtYSwgaWZtYV9saW5rKTsNCj4gIA0KPiAgCWlmX2Zy
ZWVtdWx0aShpZm1hKTsNCj4gDQo+IE1vZGlmaWVkOiBoZWFkL3N5cy9uZXRpbmV0L2lnbXAuYw0K
PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCj4gLS0tIGhlYWQvc3lzL25ldGluZXQvaWdtcC5jCVdl
ZCBNYXkgIDIgMTc6NDE6MDAgMjAxOAkocjMzMzE3NCkNCj4gKysrIGhlYWQvc3lzL25ldGluZXQv
aWdtcC5jCVdlZCBNYXkgIDIgMTk6MzY6MjkgMjAxOAkocjMzMzE3NSkNCj4gQEAgLTEzNiw3ICsx
MzYsNyBAQCBzdGF0aWMgaW50CWlnbXBfdjNfZW5xdWV1ZV9ncm91cF9yZWNvcmQoc3RydWN0IG1i
dWZxICoNCj4gIAkJICAgIHN0cnVjdCBpbl9tdWx0aSAqLCBjb25zdCBpbnQsIGNvbnN0IGludCwg
Y29uc3QgaW50KTsNCj4gIHN0YXRpYyBpbnQJaWdtcF92M19lbnF1ZXVlX2ZpbHRlcl9jaGFuZ2Uo
c3RydWN0IG1idWZxICosDQo+ICAJCSAgICBzdHJ1Y3QgaW5fbXVsdGkgKik7DQo+IC1zdGF0aWMg
dm9pZAlpZ21wX3YzX3Byb2Nlc3NfZ3JvdXBfdGltZXJzKHN0cnVjdCBpZ21wX2lmc29mdGMgKiwN
Cj4gK3N0YXRpYyB2b2lkCWlnbXBfdjNfcHJvY2Vzc19ncm91cF90aW1lcnMoc3RydWN0IGluX211
bHRpX2hlYWQgKiwNCj4gIAkJICAgIHN0cnVjdCBtYnVmcSAqLCBzdHJ1Y3QgbWJ1ZnEgKiwgc3Ry
dWN0IGluX211bHRpICosDQo+ICAJCSAgICBjb25zdCBpbnQpOw0KPiAgc3RhdGljIGludAlpZ21w
X3YzX21lcmdlX3N0YXRlX2NoYW5nZXMoc3RydWN0IGluX211bHRpICosDQo+IEBAIC0xNjIsMTIg
KzE2MiwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldGlzcl9oYW5kbGVyIGlnbXBfbmggPSB7
DQo+ICAgKiB0aGVtc2VsdmVzIGFyZSBub3QgdmlydHVhbGl6ZWQuDQo+ICAgKg0KPiAgICogTG9j
a2luZzoNCj4gLSAqICAqIFRoZSBwZXJtaXR0ZWQgbG9jayBvcmRlciBpczogSU5fTVVMVElfTE9D
SywgSUdNUF9MT0NLLCBJRl9BRERSX0xPQ0suDQo+ICsgKiAgKiBUaGUgcGVybWl0dGVkIGxvY2sg
b3JkZXIgaXM6IElOX01VTFRJX0xJU1RfTE9DSywgSUdNUF9MT0NLLCBJRl9BRERSX0xPQ0suDQo+
ICAgKiAgICBBbnkgbWF5IGJlIHRha2VuIGluZGVwZW5kZW50bHk7IGlmIGFueSBhcmUgaGVsZCBh
dCB0aGUgc2FtZQ0KPiAgICogICAgdGltZSwgdGhlIGFib3ZlIGxvY2sgb3JkZXIgbXVzdCBiZSBm
b2xsb3dlZC4NCj4gICAqICAqIEFsbCBvdXRwdXQgaXMgZGVsZWdhdGVkIHRvIHRoZSBuZXRpc3Iu
DQo+ICAgKiAgICBOb3cgdGhhdCBHaWFudCBoYXMgYmVlbiBlbGltaW5hdGVkLCB0aGUgbmV0aXNy
IG1heSBiZSBpbmxpbmVkLg0KPiAtICogICogSU5fTVVMVElfTE9DSyBjb3ZlcnMgaW5fbXVsdGku
DQo+ICsgKiAgKiBJTl9NVUxUSV9MSVNUX0xPQ0sgY292ZXJzIGluX211bHRpLg0KPiAgICogICog
SUdNUF9MT0NLIGNvdmVycyBpZ21wX2lmc29mdGMgYW5kIGFueSBnbG9iYWwgdmFyaWFibGVzIGlu
IHRoaXMgZmlsZSwNCj4gICAqICAgIGluY2x1ZGluZyB0aGUgb3V0cHV0IHF1ZXVlLg0KPiAgICog
ICogSUZfQUREUl9MT0NLIGNvdmVycyBpZl9tdWx0aWFkZHJzLCB3aGljaCBpcyB1c2VkIGZvciBh
IHZhcmlldHkgb2YNCj4gQEAgLTQ0MSw3ICs0NDEsNyBAQCBzeXNjdGxfaWdtcF9pZmluZm8oU1lT
Q1RMX0hBTkRMRVJfQVJHUykNCj4gIAlpZiAoZXJyb3IpDQo+ICAJCXJldHVybiAoZXJyb3IpOw0K
PiAgDQo+IC0JSU5fTVVMVElfTE9DSygpOw0KPiArCUlOX01VTFRJX0xJU1RfTE9DSygpOw0KPiAg
CUlHTVBfTE9DSygpOw0KPiAgDQo+ICAJaWYgKG5hbWVbMF0gPD0gMCB8fCBuYW1lWzBdID4gVl9p
Zl9pbmRleCkgew0KPiBAQCAtNDc1LDcgKzQ3NSw3IEBAIHN5c2N0bF9pZ21wX2lmaW5mbyhTWVND
VExfSEFORExFUl9BUkdTKQ0KPiAgDQo+ICBvdXRfbG9ja2VkOg0KPiAgCUlHTVBfVU5MT0NLKCk7
DQo+IC0JSU5fTVVMVElfVU5MT0NLKCk7DQo+ICsJSU5fTVVMVElfTElTVF9VTkxPQ0soKTsNCj4g
IAlyZXR1cm4gKGVycm9yKTsNCj4gIH0NCj4gIA0KPiBAQCAtNTg2LDcgKzU4Niw2IEBAIGlnaV9h
bGxvY19sb2NrZWQoLypjb25zdCovIHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiAgCWlnaS0+aWdpX3Fp
ID0gSUdNUF9RSV9JTklUOw0KPiAgCWlnaS0+aWdpX3FyaSA9IElHTVBfUVJJX0lOSVQ7DQo+ICAJ
aWdpLT5pZ2lfdXJpID0gSUdNUF9VUklfSU5JVDsNCj4gLQlTTElTVF9JTklUKCZpZ2ktPmlnaV9y
ZWxpbm1oZWFkKTsNCj4gIAltYnVmcV9pbml0KCZpZ2ktPmlnaV9ncSwgSUdNUF9NQVhfUkVTUE9O
U0VfUEFDS0VUUyk7DQo+ICANCj4gIAlMSVNUX0lOU0VSVF9IRUFEKCZWX2lnaV9oZWFkLCBpZ2ks
IGlnaV9saW5rKTsNCj4gQEAgLTYxMiwxMSArNjExLDEyIEBAIGlnbXBfaWZkZXRhY2goc3RydWN0
IGlmbmV0ICppZnApDQo+ICB7DQo+ICAJc3RydWN0IGlnbXBfaWZzb2Z0YwkqaWdpOw0KPiAgCXN0
cnVjdCBpZm11bHRpYWRkcgkqaWZtYTsNCj4gLQlzdHJ1Y3QgaW5fbXVsdGkJCSppbm0sICp0aW5t
Ow0KPiAtDQo+ICsJc3RydWN0IGluX211bHRpCQkqaW5tOw0KPiArCXN0cnVjdCBpbl9tdWx0aV9o
ZWFkIGlubV9mcmVlX3RtcDsNCj4gIAlDVFIzKEtUUl9JR01QVjMsICIlczogY2FsbGVkIGZvciBp
ZnAgJXAoJXMpIiwgX19mdW5jX18sIGlmcCwNCj4gIAkgICAgaWZwLT5pZl94bmFtZSk7DQo+ICAN
Cj4gKwlTTElTVF9JTklUKCZpbm1fZnJlZV90bXApOw0KPiAgCUlHTVBfTE9DSygpOw0KPiAgDQo+
ICAJaWdpID0gKChzdHJ1Y3QgaW5faWZpbmZvICopaWZwLT5pZl9hZmRhdGFbQUZfSU5FVF0pLT5p
aV9pZ21wOw0KPiBAQCAtNjMxLDI0ICs2MzEsMTUgQEAgaWdtcF9pZmRldGFjaChzdHJ1Y3QgaWZu
ZXQgKmlmcCkNCj4gIAkJCSAgICAoIiVzOiBpZm1hX3Byb3Rvc3BlYyBpcyBOVUxMIiwgX19mdW5j
X18pKTsNCj4gICNlbmRpZg0KPiAgCQkJaW5tID0gKHN0cnVjdCBpbl9tdWx0aSAqKWlmbWEtPmlm
bWFfcHJvdG9zcGVjOw0KPiAtCQkJaWYgKGlubS0+aW5tX3N0YXRlID09IElHTVBfTEVBVklOR19N
RU1CRVIpIHsNCj4gLQkJCQlTTElTVF9JTlNFUlRfSEVBRCgmaWdpLT5pZ2lfcmVsaW5taGVhZCwN
Cj4gLQkJCQkgICAgaW5tLCBpbm1fbnJlbGUpOw0KPiAtCQkJfQ0KPiArCQkJaWYgKGlubS0+aW5t
X3N0YXRlID09IElHTVBfTEVBVklOR19NRU1CRVIpDQo+ICsJCQkJaW5tX3JlbGVfbG9ja2VkKCZp
bm1fZnJlZV90bXAsIGlubSk7DQo+ICAJCQlpbm1fY2xlYXJfcmVjb3JkZWQoaW5tKTsNCj4gIAkJ
fQ0KPiAgCQlJRl9BRERSX1JVTkxPQ0soaWZwKTsNCj4gLQkJLyoNCj4gLQkJICogRnJlZSB0aGUg
aW5fbXVsdGkgcmVmZXJlbmNlKHMpIGZvciB0aGlzIElHTVAgbGlmZWN5Y2xlLg0KPiAtCQkgKi8N
Cj4gLQkJU0xJU1RfRk9SRUFDSF9TQUZFKGlubSwgJmlnaS0+aWdpX3JlbGlubWhlYWQsIGlubV9u
cmVsZSwNCj4gLQkJICAgIHRpbm0pIHsNCj4gLQkJCVNMSVNUX1JFTU9WRV9IRUFEKCZpZ2ktPmln
aV9yZWxpbm1oZWFkLCBpbm1fbnJlbGUpOw0KPiAtCQkJaW5tX3JlbGVhc2VfbG9ja2VkKGlubSk7
DQo+IC0JCX0NCj4gKwkJaW5tX3JlbGVhc2VfbGlzdF9kZWZlcnJlZCgmaW5tX2ZyZWVfdG1wKTsN
Cj4gIAl9DQo+IC0NCj4gIAlJR01QX1VOTE9DSygpOw0KPiArDQo+ICB9DQo+ICANCj4gIC8qDQo+
IEBAIC02ODQsMTEgKzY3NSw2IEBAIGlnaV9kZWxldGVfbG9ja2VkKGNvbnN0IHN0cnVjdCBpZm5l
dCAqaWZwKQ0KPiAgCQkJbWJ1ZnFfZHJhaW4oJmlnaS0+aWdpX2dxKTsNCj4gIA0KPiAgCQkJTElT
VF9SRU1PVkUoaWdpLCBpZ2lfbGluayk7DQo+IC0NCj4gLQkJCUtBU1NFUlQoU0xJU1RfRU1QVFko
JmlnaS0+aWdpX3JlbGlubWhlYWQpLA0KPiAtCQkJICAgICgiJXM6IHRoZXJlIGFyZSBkYW5nbGlu
ZyBpbl9tdWx0aSByZWZlcmVuY2VzIiwNCj4gLQkJCSAgICBfX2Z1bmNfXykpOw0KPiAtDQo+ICAJ
CQlmcmVlKGlnaSwgTV9JR01QKTsNCj4gIAkJCXJldHVybjsNCj4gIAkJfQ0KPiBAQCAtNzIyLDcg
KzcwOCw3IEBAIGlnbXBfaW5wdXRfdjFfcXVlcnkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0
cnVjdCBpcA0KPiAgCX0NCj4gIAlJR01QU1RBVF9JTkMoaWdwc19yY3ZfZ2VuX3F1ZXJpZXMpOw0K
PiAgDQo+IC0JSU5fTVVMVElfTE9DSygpOw0KPiArCUlOX01VTFRJX0xJU1RfTE9DSygpOw0KPiAg
CUlHTVBfTE9DSygpOw0KPiAgDQo+ICAJaWdpID0gKChzdHJ1Y3QgaW5faWZpbmZvICopaWZwLT5p
Zl9hZmRhdGFbQUZfSU5FVF0pLT5paV9pZ21wOw0KPiBAQCAtNzc4LDcgKzc2NCw3IEBAIGlnbXBf
aW5wdXRfdjFfcXVlcnkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpcA0KPiAgDQo+
ICBvdXRfbG9ja2VkOg0KPiAgCUlHTVBfVU5MT0NLKCk7DQo+IC0JSU5fTVVMVElfVU5MT0NLKCk7
DQo+ICsJSU5fTVVMVElfTElTVF9VTkxPQ0soKTsNCj4gIA0KPiAgCXJldHVybiAoMCk7DQo+ICB9
DQo+IEBAIC04MTYsNyArODAyLDcgQEAgaWdtcF9pbnB1dF92Ml9xdWVyeShzdHJ1Y3QgaWZuZXQg
KmlmcCwgY29uc3Qgc3RydWN0IGlwDQo+ICAJCUlHTVBTVEFUX0lOQyhpZ3BzX3Jjdl9ncm91cF9x
dWVyaWVzKTsNCj4gIAl9DQo+ICANCj4gLQlJTl9NVUxUSV9MT0NLKCk7DQo+ICsJSU5fTVVMVElf
TElTVF9MT0NLKCk7DQo+ICAJSUdNUF9MT0NLKCk7DQo+ICANCj4gIAlpZ2kgPSAoKHN0cnVjdCBp
bl9pZmluZm8gKilpZnAtPmlmX2FmZGF0YVtBRl9JTkVUXSktPmlpX2lnbXA7DQo+IEBAIC04NzIs
NyArODU4LDcgQEAgaWdtcF9pbnB1dF92Ml9xdWVyeShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qg
c3RydWN0IGlwDQo+ICANCj4gIG91dF9sb2NrZWQ6DQo+ICAJSUdNUF9VTkxPQ0soKTsNCj4gLQlJ
Tl9NVUxUSV9VTkxPQ0soKTsNCj4gKwlJTl9NVUxUSV9MSVNUX1VOTE9DSygpOw0KPiAgDQo+ICAJ
cmV0dXJuICgwKTsNCj4gIH0NCj4gQEAgLTg5OSw3ICs4ODUsNyBAQCBpZ21wX3YyX3VwZGF0ZV9n
cm91cChzdHJ1Y3QgaW5fbXVsdGkgKmlubSwgY29uc3QgaW50IHQNCj4gIAlDVFI0KEtUUl9JR01Q
VjMsICIweCUwOHg6ICVzLyVzIHRpbWVyPSVkIiwgX19mdW5jX18sDQo+ICAJICAgIG50b2hsKGlu
bS0+aW5tX2FkZHIuc19hZGRyKSwgaW5tLT5pbm1faWZwLT5pZl94bmFtZSwgdGltZXIpOw0KPiAg
DQo+IC0JSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gKwlJTl9NVUxUSV9MSVNUX0xPQ0tfQVNT
RVJUKCk7DQo+ICANCj4gIAlzd2l0Y2ggKGlubS0+aW5tX3N0YXRlKSB7DQo+ICAJY2FzZSBJR01Q
X05PVF9NRU1CRVI6DQo+IEBAIC0xMDExLDcgKzk5Nyw3IEBAIGlnbXBfaW5wdXRfdjNfcXVlcnko
c3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpcA0KPiAgCQkJSUdNUFNUQVRfSU5DKGln
cHNfcmN2X2dzcl9xdWVyaWVzKTsNCj4gIAl9DQo+ICANCj4gLQlJTl9NVUxUSV9MT0NLKCk7DQo+
ICsJSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ICAJSUdNUF9MT0NLKCk7DQo+ICANCj4gIAlpZ2kg
PSAoKHN0cnVjdCBpbl9pZmluZm8gKilpZnAtPmlmX2FmZGF0YVtBRl9JTkVUXSktPmlpX2lnbXA7
DQo+IEBAIC0xMDkyLDcgKzEwNzgsNyBAQCBpZ21wX2lucHV0X3YzX3F1ZXJ5KHN0cnVjdCBpZm5l
dCAqaWZwLCBjb25zdCBzdHJ1Y3QgaXANCj4gIA0KPiAgb3V0X2xvY2tlZDoNCj4gIAlJR01QX1VO
TE9DSygpOw0KPiAtCUlOX01VTFRJX1VOTE9DSygpOw0KPiArCUlOX01VTFRJX0xJU1RfVU5MT0NL
KCk7DQo+ICANCj4gIAlyZXR1cm4gKDApOw0KPiAgfQ0KPiBAQCAtMTEwOSw3ICsxMDk1LDcgQEAg
aWdtcF9pbnB1dF92M19ncm91cF9xdWVyeShzdHJ1Y3QgaW5fbXVsdGkgKmlubSwgc3RydWN0DQo+
ICAJaW50CQkJIHJldHZhbDsNCj4gIAl1aW50MTZfdAkJIG5zcmM7DQo+ICANCj4gLQlJTl9NVUxU
SV9MT0NLX0FTU0VSVCgpOw0KPiArCUlOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gIAlJ
R01QX0xPQ0tfQVNTRVJUKCk7DQo+ICANCj4gIAlyZXR2YWwgPSAwOw0KPiBAQCAtMTI0Niw3ICsx
MjMyLDcgQEAgaWdtcF9pbnB1dF92MV9yZXBvcnQoc3RydWN0IGlmbmV0ICppZnAsIC8qY29uc3Qq
LyBzdHJ1DQo+ICAJICogSWYgd2UgYXJlIGEgbWVtYmVyIG9mIHRoaXMgZ3JvdXAsIGFuZCBvdXIg
bWVtYmVyc2hpcCBzaG91bGQgYmUNCj4gIAkgKiByZXBvcnRlZCwgc3RvcCBvdXIgZ3JvdXAgdGlt
ZXIgYW5kIHRyYW5zaXRpb24gdG8gdGhlICdsYXp5JyBzdGF0ZS4NCj4gIAkgKi8NCj4gLQlJTl9N
VUxUSV9MT0NLKCk7DQo+ICsJSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ICAJaW5tID0gaW5tX2xv
b2t1cChpZnAsIGlnbXAtPmlnbXBfZ3JvdXApOw0KPiAgCWlmIChpbm0gIT0gTlVMTCkgew0KPiAg
CQlzdHJ1Y3QgaWdtcF9pZnNvZnRjICppZ2k7DQo+IEBAIC0xMzA1LDcgKzEyOTEsNyBAQCBpZ21w
X2lucHV0X3YxX3JlcG9ydChzdHJ1Y3QgaWZuZXQgKmlmcCwgLypjb25zdCovIHN0cnUNCj4gIAl9
DQo+ICANCj4gIG91dF9sb2NrZWQ6DQo+IC0JSU5fTVVMVElfVU5MT0NLKCk7DQo+ICsJSU5fTVVM
VElfTElTVF9VTkxPQ0soKTsNCj4gIA0KPiAgCXJldHVybiAoMCk7DQo+ICB9DQo+IEBAIC0xMzcz
LDcgKzEzNTksNyBAQCBpZ21wX2lucHV0X3YyX3JlcG9ydChzdHJ1Y3QgaWZuZXQgKmlmcCwgLypj
b25zdCovIHN0cnUNCj4gIAkgKiByZXBvcnRlZCwgYW5kIG91ciBncm91cCB0aW1lciBpcyBwZW5k
aW5nIG9yIGFib3V0IHRvIGJlIHJlc2V0LA0KPiAgCSAqIHN0b3Agb3VyIGdyb3VwIHRpbWVyIGJ5
IHRyYW5zaXRpb25pbmcgdG8gdGhlICdsYXp5JyBzdGF0ZS4NCj4gIAkgKi8NCj4gLQlJTl9NVUxU
SV9MT0NLKCk7DQo+ICsJSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ICAJaW5tID0gaW5tX2xvb2t1
cChpZnAsIGlnbXAtPmlnbXBfZ3JvdXApOw0KPiAgCWlmIChpbm0gIT0gTlVMTCkgew0KPiAgCQlz
dHJ1Y3QgaWdtcF9pZnNvZnRjICppZ2k7DQo+IEBAIC0xNDE4LDcgKzE0MDQsNyBAQCBpZ21wX2lu
cHV0X3YyX3JlcG9ydChzdHJ1Y3QgaWZuZXQgKmlmcCwgLypjb25zdCovIHN0cnUNCj4gIAl9DQo+
ICANCj4gIG91dF9sb2NrZWQ6DQo+IC0JSU5fTVVMVElfVU5MT0NLKCk7DQo+ICsJSU5fTVVMVElf
TElTVF9VTkxPQ0soKTsNCj4gIA0KPiAgCXJldHVybiAoMCk7DQo+ICB9DQo+IEBAIC0xNjQ3LDYg
KzE2MzMsNyBAQCBpZ21wX2Zhc3R0aW1vX3ZuZXQodm9pZCkNCj4gIAlzdHJ1Y3QgaWdtcF9pZnNv
ZnRjCSppZ2k7DQo+ICAJc3RydWN0IGlmbXVsdGlhZGRyCSppZm1hOw0KPiAgCXN0cnVjdCBpbl9t
dWx0aQkJKmlubTsNCj4gKwlzdHJ1Y3QgaW5fbXVsdGlfaGVhZCBpbm1fZnJlZV90bXA7DQo+ICAJ
aW50CQkJIGxvb3AsIHVyaV9mYXN0aHo7DQo+ICANCj4gIAlsb29wID0gMDsNCj4gQEAgLTE2NjIs
NyArMTY0OSw4IEBAIGlnbXBfZmFzdHRpbW9fdm5ldCh2b2lkKQ0KPiAgCSAgICAhVl9zdGF0ZV9j
aGFuZ2VfdGltZXJzX3J1bm5pbmcpDQo+ICAJCXJldHVybjsNCj4gIA0KPiAtCUlOX01VTFRJX0xP
Q0soKTsNCj4gKwlTTElTVF9JTklUKCZpbm1fZnJlZV90bXApOw0KPiArCUlOX01VTFRJX0xJU1Rf
TE9DSygpOw0KPiAgCUlHTVBfTE9DSygpOw0KPiAgDQo+ICAJLyoNCj4gQEAgLTE3MjAsNyArMTcw
OCw3IEBAIGlnbXBfZmFzdHRpbW9fdm5ldCh2b2lkKQ0KPiAgCQkJCSAgICBpZ2ktPmlnaV92ZXJz
aW9uKTsNCj4gIAkJCQlicmVhazsNCj4gIAkJCWNhc2UgSUdNUF9WRVJTSU9OXzM6DQo+IC0JCQkJ
aWdtcF92M19wcm9jZXNzX2dyb3VwX3RpbWVycyhpZ2ksICZxcnEsDQo+ICsJCQkJaWdtcF92M19w
cm9jZXNzX2dyb3VwX3RpbWVycygmaW5tX2ZyZWVfdG1wLCAmcXJxLA0KPiAgCQkJCSAgICAmc2Nx
LCBpbm0sIHVyaV9mYXN0aHopOw0KPiAgCQkJCWJyZWFrOw0KPiAgCQkJfQ0KPiBAQCAtMTcyOCw4
ICsxNzE2LDYgQEAgaWdtcF9mYXN0dGltb192bmV0KHZvaWQpDQo+ICAJCUlGX0FERFJfUlVOTE9D
SyhpZnApOw0KPiAgDQo+ICAJCWlmIChpZ2ktPmlnaV92ZXJzaW9uID09IElHTVBfVkVSU0lPTl8z
KSB7DQo+IC0JCQlzdHJ1Y3QgaW5fbXVsdGkJCSp0aW5tOw0KPiAtDQo+ICAJCQlpZ21wX2Rpc3Bh
dGNoX3F1ZXVlKCZxcnEsIDAsIGxvb3ApOw0KPiAgCQkJaWdtcF9kaXNwYXRjaF9xdWV1ZSgmc2Nx
LCAwLCBsb29wKTsNCj4gIA0KPiBAQCAtMTczNywxOCArMTcyMywxMyBAQCBpZ21wX2Zhc3R0aW1v
X3ZuZXQodm9pZCkNCj4gIAkJCSAqIEZyZWUgdGhlIGluX211bHRpIHJlZmVyZW5jZShzKSBmb3Ig
dGhpcw0KPiAgCQkJICogSUdNUCBsaWZlY3ljbGUuDQo+ICAJCQkgKi8NCj4gLQkJCVNMSVNUX0ZP
UkVBQ0hfU0FGRShpbm0sICZpZ2ktPmlnaV9yZWxpbm1oZWFkLA0KPiAtCQkJICAgIGlubV9ucmVs
ZSwgdGlubSkgew0KPiAtCQkJCVNMSVNUX1JFTU9WRV9IRUFEKCZpZ2ktPmlnaV9yZWxpbm1oZWFk
LA0KPiAtCQkJCSAgICBpbm1fbnJlbGUpOw0KPiAtCQkJCWlubV9yZWxlYXNlX2xvY2tlZChpbm0p
Ow0KPiAtCQkJfQ0KPiArCQkJaW5tX3JlbGVhc2VfbGlzdF9kZWZlcnJlZCgmaW5tX2ZyZWVfdG1w
KTsNCj4gIAkJfQ0KPiAgCX0NCj4gIA0KPiAgb3V0X2xvY2tlZDoNCj4gIAlJR01QX1VOTE9DSygp
Ow0KPiAtCUlOX01VTFRJX1VOTE9DSygpOw0KPiArCUlOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+
ICB9DQo+ICANCj4gIC8qDQo+IEBAIC0xNzYwLDcgKzE3NDEsNyBAQCBpZ21wX3YxdjJfcHJvY2Vz
c19ncm91cF90aW1lcihzdHJ1Y3QgaW5fbXVsdGkgKmlubSwgY28NCj4gIHsNCj4gIAlpbnQgcmVw
b3J0X3RpbWVyX2V4cGlyZWQ7DQo+ICANCj4gLQlJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiAr
CUlOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gIAlJR01QX0xPQ0tfQVNTRVJUKCk7DQo+
ICANCj4gIAlpZiAoaW5tLT5pbm1fdGltZXIgPT0gMCkgew0KPiBAQCAtMTgwMiwxNCArMTc4Mywx
NCBAQCBpZ21wX3YxdjJfcHJvY2Vzc19ncm91cF90aW1lcihzdHJ1Y3QgaW5fbXVsdGkgKmlubSwg
Y28NCj4gICAqIE5vdGU6IFVubG9ja2VkIHJlYWQgZnJvbSBpZ2kuDQo+ICAgKi8NCj4gIHN0YXRp
YyB2b2lkDQo+IC1pZ21wX3YzX3Byb2Nlc3NfZ3JvdXBfdGltZXJzKHN0cnVjdCBpZ21wX2lmc29m
dGMgKmlnaSwNCj4gK2lnbXBfdjNfcHJvY2Vzc19ncm91cF90aW1lcnMoc3RydWN0IGluX211bHRp
X2hlYWQgKmlubWgsDQo+ICAgICAgc3RydWN0IG1idWZxICpxcnEsIHN0cnVjdCBtYnVmcSAqc2Nx
LA0KPiAgICAgIHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBjb25zdCBpbnQgdXJpX2Zhc3RoeikNCj4g
IHsNCj4gIAlpbnQgcXVlcnlfcmVzcG9uc2VfdGltZXJfZXhwaXJlZDsNCj4gIAlpbnQgc3RhdGVf
Y2hhbmdlX3JldHJhbnNtaXRfdGltZXJfZXhwaXJlZDsNCj4gIA0KPiAtCUlOX01VTFRJX0xPQ0tf
QVNTRVJUKCk7DQo+ICsJSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiAgCUlHTVBfTE9D
S19BU1NFUlQoKTsNCj4gIA0KPiAgCXF1ZXJ5X3Jlc3BvbnNlX3RpbWVyX2V4cGlyZWQgPSAwOw0K
PiBAQCAtMTkwNyw4ICsxODg4LDcgQEAgaWdtcF92M19wcm9jZXNzX2dyb3VwX3RpbWVycyhzdHJ1
Y3QgaWdtcF9pZnNvZnRjICppZ2ksDQo+ICAJCQlpZiAoaW5tLT5pbm1fc3RhdGUgPT0gSUdNUF9M
RUFWSU5HX01FTUJFUiAmJg0KPiAgCQkJICAgIGlubS0+aW5tX3NjcnYgPT0gMCkgew0KPiAgCQkJ
CWlubS0+aW5tX3N0YXRlID0gSUdNUF9OT1RfTUVNQkVSOw0KPiAtCQkJCVNMSVNUX0lOU0VSVF9I
RUFEKCZpZ2ktPmlnaV9yZWxpbm1oZWFkLA0KPiAtCQkJCSAgICBpbm0sIGlubV9ucmVsZSk7DQo+
ICsJCQkJaW5tX3JlbGVfbG9ja2VkKGlubWgsIGlubSk7DQo+ICAJCQl9DQo+ICAJCX0NCj4gIAkJ
YnJlYWs7DQo+IEBAIC0xOTI5LDcgKzE5MDksNyBAQCBzdGF0aWMgdm9pZA0KPiAgaWdtcF92M19z
dXBwcmVzc19ncm91cF9yZWNvcmQoc3RydWN0IGluX211bHRpICppbm0pDQo+ICB7DQo+ICANCj4g
LQlJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiArCUlOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQo
KTsNCj4gIA0KPiAgCUtBU1NFUlQoaW5tLT5pbm1faWdpLT5pZ2lfdmVyc2lvbiA9PSBJR01QX1ZF
UlNJT05fMywNCj4gIAkJKCIlczogbm90IElHTVB2MyBtb2RlIG9uIGxpbmsiLCBfX2Z1bmNfXykp
Ow0KPiBAQCAtMjAwMywxMyArMTk4MywxNSBAQCBpZ21wX3YzX2NhbmNlbF9saW5rX3RpbWVycyhz
dHJ1Y3QgaWdtcF9pZnNvZnRjICppZ2kpDQo+ICB7DQo+ICAJc3RydWN0IGlmbXVsdGlhZGRyCSpp
Zm1hOw0KPiAgCXN0cnVjdCBpZm5ldAkJKmlmcDsNCj4gLQlzdHJ1Y3QgaW5fbXVsdGkJCSppbm0s
ICp0aW5tOw0KPiArCXN0cnVjdCBpbl9tdWx0aQkJKmlubTsNCj4gKwlzdHJ1Y3QgaW5fbXVsdGlf
aGVhZCBpbm1fZnJlZV90bXA7DQo+ICANCj4gIAlDVFIzKEtUUl9JR01QVjMsICIlczogY2FuY2Vs
IHYzIHRpbWVycyBvbiBpZnAgJXAoJXMpIiwgX19mdW5jX18sDQo+ICAJICAgIGlnaS0+aWdpX2lm
cCwgaWdpLT5pZ2lfaWZwLT5pZl94bmFtZSk7DQo+ICANCj4gLQlJTl9NVUxUSV9MT0NLX0FTU0VS
VCgpOw0KPiArCUlOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gIAlJR01QX0xPQ0tfQVNT
RVJUKCk7DQo+ICsJU0xJU1RfSU5JVCgmaW5tX2ZyZWVfdG1wKTsNCj4gIA0KPiAgCS8qDQo+ICAJ
ICogU3RvcCB0aGUgdjMgR2VuZXJhbCBRdWVyeSBSZXNwb25zZSBvbiB0aGlzIGxpbmsgc3RvbmUg
ZGVhZC4NCj4gQEAgLTIwNTAsNyArMjAzMiw3IEBAIGlnbXBfdjNfY2FuY2VsX2xpbmtfdGltZXJz
KHN0cnVjdCBpZ21wX2lmc29mdGMgKmlnaSkNCj4gIAkJCSAqIG1lc3NhZ2UgaXMgc2VudCB1cHN0
cmVhbSB0byB0aGUgb2xkIHF1ZXJpZXIgLS0NCj4gIAkJCSAqIHRyYW5zaXRpb24gdG8gTk9UIHdv
dWxkIGxvc2UgdGhlIGxlYXZlIGFuZCByYWNlLg0KPiAgCQkJICovDQo+IC0JCQlTTElTVF9JTlNF
UlRfSEVBRCgmaWdpLT5pZ2lfcmVsaW5taGVhZCwgaW5tLCBpbm1fbnJlbGUpOw0KPiArCQkJaW5t
X3JlbGVfbG9ja2VkKCZpbm1fZnJlZV90bXAsIGlubSk7DQo+ICAJCQkvKiBGQUxMVEhST1VHSCAq
Lw0KPiAgCQljYXNlIElHTVBfR19RVUVSWV9QRU5ESU5HX01FTUJFUjoNCj4gIAkJY2FzZSBJR01Q
X1NHX1FVRVJZX1BFTkRJTkdfTUVNQkVSOg0KPiBAQCAtMjA2OSwxMCArMjA1MSw4IEBAIGlnbXBf
djNfY2FuY2VsX2xpbmtfdGltZXJzKHN0cnVjdCBpZ21wX2lmc29mdGMgKmlnaSkNCj4gIAkJbWJ1
ZnFfZHJhaW4oJmlubS0+aW5tX3NjcSk7DQo+ICAJfQ0KPiAgCUlGX0FERFJfUlVOTE9DSyhpZnAp
Ow0KPiAtCVNMSVNUX0ZPUkVBQ0hfU0FGRShpbm0sICZpZ2ktPmlnaV9yZWxpbm1oZWFkLCBpbm1f
bnJlbGUsIHRpbm0pIHsNCj4gLQkJU0xJU1RfUkVNT1ZFX0hFQUQoJmlnaS0+aWdpX3JlbGlubWhl
YWQsIGlubV9ucmVsZSk7DQo+IC0JCWlubV9yZWxlYXNlX2xvY2tlZChpbm0pOw0KPiAtCX0NCj4g
Kw0KPiArCWlubV9yZWxlYXNlX2xpc3RfZGVmZXJyZWQoJmlubV9mcmVlX3RtcCk7DQo+ICB9DQo+
ICANCj4gIC8qDQo+IEBAIC0yMTk5LDcgKzIxNzksNyBAQCBpZ21wX3YxdjJfcXVldWVfcmVwb3J0
KHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBjb25zdCBpbnQNCj4gIAlzdHJ1Y3QgaXAJCSppcDsNCj4g
IAlzdHJ1Y3QgbWJ1ZgkJKm07DQo+ICANCj4gLQlJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiAr
CUlOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gIAlJR01QX0xPQ0tfQVNTRVJUKCk7DQo+
ICANCj4gIAlpZnAgPSBpbm0tPmlubV9pZnA7DQo+IEBAIC0yMjc2LDEwICsyMjU2LDggQEAgaWdt
cF9jaGFuZ2Vfc3RhdGUoc3RydWN0IGluX211bHRpICppbm0pDQo+ICAJc3RydWN0IGlmbmV0ICpp
ZnA7DQo+ICAJaW50IGVycm9yOw0KPiAgDQo+IC0JSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4g
LQ0KPiAgCWVycm9yID0gMDsNCj4gLQ0KPiArCUlOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ICAJ
LyoNCj4gIAkgKiBUcnkgdG8gZGV0ZWN0IGlmIHRoZSB1cHBlciBsYXllciBqdXN0IGFza2VkIHVz
IHRvIGNoYW5nZSBzdGF0ZQ0KPiAgCSAqIGZvciBhbiBpbnRlcmZhY2Ugd2hpY2ggaGFzIG5vdyBn
b25lIGF3YXkuDQo+IEBAIC0yMzc5LDkgKzIzNTcsMTAgQEAgaWdtcF9pbml0aWFsX2pvaW4oc3Ry
dWN0IGluX211bHRpICppbm0sIHN0cnVjdCBpZ21wX2lmDQo+ICAJCSAqIGdyb3VwIGFyb3VuZCBm
b3IgdGhlIGZpbmFsIElOQ0xVREUge30gZW5xdWV1ZS4NCj4gIAkJICovDQo+ICAJCWlmIChpZ2kt
PmlnaV92ZXJzaW9uID09IElHTVBfVkVSU0lPTl8zICYmDQo+IC0JCSAgICBpbm0tPmlubV9zdGF0
ZSA9PSBJR01QX0xFQVZJTkdfTUVNQkVSKQ0KPiAtCQkJaW5tX3JlbGVhc2VfbG9ja2VkKGlubSk7
DQo+IC0NCj4gKwkJICAgIGlubS0+aW5tX3N0YXRlID09IElHTVBfTEVBVklOR19NRU1CRVIpIHsN
Cj4gKwkJCU1QQVNTKGlubS0+aW5tX3JlZmNvdW50ID4gMSk7DQo+ICsJCQlpbm1fcmVsZV9sb2Nr
ZWQoTlVMTCwgaW5tKTsNCj4gKwkJfQ0KPiAgCQlpbm0tPmlubV9zdGF0ZSA9IElHTVBfUkVQT1JU
SU5HX01FTUJFUjsNCj4gIA0KPiAgCQlzd2l0Y2ggKGlnaS0+aWdpX3ZlcnNpb24pIHsNCj4gQEAg
LTI0NzMsNyArMjQ1Miw3IEBAIGlnbXBfaGFuZGxlX3N0YXRlX2NoYW5nZShzdHJ1Y3QgaW5fbXVs
dGkgKmlubSwgc3RydWN0IA0KPiAgDQo+ICAJaWZwID0gaW5tLT5pbm1faWZwOw0KPiAgDQo+IC0J
SU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gKwlJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7
DQo+ICAJSUdNUF9MT0NLX0FTU0VSVCgpOw0KPiAgDQo+ICAJS0FTU0VSVChpZ2kgJiYgaWdpLT5p
Z2lfaWZwID09IGlmcCwgKCIlczogaW5jb25zaXN0ZW50IGlmcCIsIF9fZnVuY19fKSk7DQo+IEBA
IC0yNTMxLDcgKzI1MTAsNyBAQCBpZ21wX2ZpbmFsX2xlYXZlKHN0cnVjdCBpbl9tdWx0aSAqaW5t
LCBzdHJ1Y3QgaWdtcF9pZnMNCj4gIAkgICAgX19mdW5jX18sIG50b2hsKGlubS0+aW5tX2FkZHIu
c19hZGRyKSwgaW5tLT5pbm1faWZwLA0KPiAgCSAgICBpbm0tPmlubV9pZnAtPmlmX3huYW1lKTsN
Cj4gIA0KPiAtCUlOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ICsJSU5fTVVMVElfTElTVF9MT0NL
X0FTU0VSVCgpOw0KPiAgCUlHTVBfTE9DS19BU1NFUlQoKTsNCj4gIA0KPiAgCXN3aXRjaCAoaW5t
LT5pbm1fc3RhdGUpIHsNCj4gQEAgLTI2NTgsNyArMjYzNyw3IEBAIGlnbXBfdjNfZW5xdWV1ZV9n
cm91cF9yZWNvcmQoc3RydWN0IG1idWZxICptcSwgc3RydWN0IA0KPiAgCWluX2FkZHJfdAkJIG5h
ZGRyOw0KPiAgCXVpbnQ4X3QJCQkgbW9kZTsNCj4gIA0KPiAtCUlOX01VTFRJX0xPQ0tfQVNTRVJU
KCk7DQo+ICsJSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiAgDQo+ICAJZXJyb3IgPSAw
Ow0KPiAgCWlmcCA9IGlubS0+aW5tX2lmcDsNCj4gQEAgLTMwMTgsNyArMjk5Nyw3IEBAIGlnbXBf
djNfZW5xdWV1ZV9maWx0ZXJfY2hhbmdlKHN0cnVjdCBtYnVmcSAqbXEsIHN0cnVjdA0KPiAgCXVp
bnQ4X3QJCQkgbW9kZSwgbm93LCB0aGVuOw0KPiAgCXJlY3R5cGVfdAkJIGNydCwgZHJ0LCBucnQ7
DQo+ICANCj4gLQlJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiArCUlOX01VTFRJX0xJU1RfTE9D
S19BU1NFUlQoKTsNCj4gIA0KPiAgCWlmIChpbm0tPmlubV9uc3JjID09IDAgfHwNCj4gIAkgICAg
KGlubS0+aW5tX3N0WzBdLmlzc19hc20gPiAwICYmIGlubS0+aW5tX3N0WzFdLmlzc19hc20gPiAw
KSkNCj4gQEAgLTMyMjEsNyArMzIwMCw3IEBAIGlnbXBfdjNfbWVyZ2Vfc3RhdGVfY2hhbmdlcyhz
dHJ1Y3QgaW5fbXVsdGkgKmlubSwgc3RydQ0KPiAgCWRvbWVyZ2UgPSAwOw0KPiAgCXJlY3NsZW4g
PSAwOw0KPiAgDQo+IC0JSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gKwlJTl9NVUxUSV9MSVNU
X0xPQ0tfQVNTRVJUKCk7DQo+ICAJSUdNUF9MT0NLX0FTU0VSVCgpOw0KPiAgDQo+ICAJLyoNCj4g
QEAgLTMzMjAsNyArMzI5OSw3IEBAIGlnbXBfdjNfZGlzcGF0Y2hfZ2VuZXJhbF9xdWVyeShzdHJ1
Y3QgaWdtcF9pZnNvZnRjICppZw0KPiAgCXN0cnVjdCBpbl9tdWx0aQkJKmlubTsNCj4gIAlpbnQJ
CQkgcmV0dmFsLCBsb29wOw0KPiAgDQo+IC0JSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gKwlJ
Tl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ICAJSUdNUF9MT0NLX0FTU0VSVCgpOw0KPiAg
DQo+ICAJS0FTU0VSVChpZ2ktPmlnaV92ZXJzaW9uID09IElHTVBfVkVSU0lPTl8zLA0KPiBAQCAt
MzYzMiw3ICszNjExLDYgQEAgREJfU0hPV19DT01NQU5EKGlnaV9saXN0LCBkYl9zaG93X2lnaV9s
aXN0KQ0KPiAgCQlkYl9wcmludGYoIiAgICBxaSAldVxuIiwgaWdpLT5pZ2lfcWkpOw0KPiAgCQlk
Yl9wcmludGYoIiAgICBxcmkgJXVcbiIsIGlnaS0+aWdpX3FyaSk7DQo+ICAJCWRiX3ByaW50Zigi
ICAgIHVyaSAldVxuIiwgaWdpLT5pZ2lfdXJpKTsNCj4gLQkJLyogU0xJU1RfSEVBRCgsaW5fbXVs
dGkpICAgaWdpX3JlbGlubWhlYWQgKi8NCj4gIAkJLyogc3RydWN0IG1idWZxICAgIGlnaV9ncTsg
Ki8NCj4gIAkJZGJfcHJpbnRmKCJcbiIpOw0KPiAgCX0NCj4gDQo+IE1vZGlmaWVkOiBoZWFkL3N5
cy9uZXRpbmV0L2lnbXBfdmFyLmgNCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IC0tLSBoZWFk
L3N5cy9uZXRpbmV0L2lnbXBfdmFyLmgJV2VkIE1heSAgMiAxNzo0MTowMCAyMDE4CShyMzMzMTc0
KQ0KPiArKysgaGVhZC9zeXMvbmV0aW5ldC9pZ21wX3Zhci5oCVdlZCBNYXkgIDIgMTk6MzY6Mjkg
MjAxOAkocjMzMzE3NSkNCj4gQEAgLTIxNCw3ICsyMTQsNiBAQCBzdHJ1Y3QgaWdtcF9pZnNvZnRj
IHsNCj4gIAl1aW50MzJfdCBpZ2lfcWk7CS8qIElHTVB2MyBRdWVyeSBJbnRlcnZhbCAocykgKi8N
Cj4gIAl1aW50MzJfdCBpZ2lfcXJpOwkvKiBJR01QdjMgUXVlcnkgUmVzcG9uc2UgSW50ZXJ2YWwg
KHMpICovDQo+ICAJdWludDMyX3QgaWdpX3VyaTsJLyogSUdNUHYzIFVuc29saWNpdGVkIFJlcG9y
dCBJbnRlcnZhbCAocykgKi8NCj4gLQlTTElTVF9IRUFEKCxpbl9tdWx0aSkJaWdpX3JlbGlubWhl
YWQ7IC8qIHJlbGVhc2VkIGdyb3VwcyAqLw0KPiAgCXN0cnVjdCBtYnVmcQlpZ2lfZ3E7CQkvKiBn
ZW5lcmFsIHF1ZXJ5IHJlc3BvbnNlcyBxdWV1ZSAqLw0KPiAgfTsNCj4gIA0KPiANCj4gTW9kaWZp
ZWQ6IGhlYWQvc3lzL25ldGluZXQvaW4uYw0KPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gLS0t
IGhlYWQvc3lzL25ldGluZXQvaW4uYwlXZWQgTWF5ICAyIDE3OjQxOjAwIDIwMTgJKHIzMzMxNzQp
DQo+ICsrKyBoZWFkL3N5cy9uZXRpbmV0L2luLmMJV2VkIE1heSAgMiAxOTozNjoyOSAyMDE4CShy
MzMzMTc1KQ0KPiBAQCAtNjMyLDEyICs2MzIsMTAgQEAgaW5fZGlmYWRkcl9pb2N0bCh1X2xvbmcg
Y21kLCBjYWRkcl90IGRhdGEsIHN0cnVjdCBpZm5lDQo+ICAJCXN0cnVjdCBpbl9pZmluZm8gKmlp
Ow0KPiAgDQo+ICAJCWlpID0gKChzdHJ1Y3QgaW5faWZpbmZvICopaWZwLT5pZl9hZmRhdGFbQUZf
SU5FVF0pOw0KPiAtCQlJTl9NVUxUSV9MT0NLKCk7DQo+ICAJCWlmIChpaS0+aWlfYWxsaG9zdHMp
IHsNCj4gLQkJCSh2b2lkKWluX2xlYXZlZ3JvdXBfbG9ja2VkKGlpLT5paV9hbGxob3N0cywgTlVM
TCk7DQo+ICsJCQkodm9pZClpbl9sZWF2ZWdyb3VwKGlpLT5paV9hbGxob3N0cywgTlVMTCk7DQo+
ICAJCQlpaS0+aWlfYWxsaG9zdHMgPSBOVUxMOw0KPiAgCQl9DQo+IC0JCUlOX01VTFRJX1VOTE9D
SygpOw0KPiAgCX0NCj4gIA0KPiAgCUlGX0FERFJfV0xPQ0soaWZwKTsNCj4gQEAgLTk5NCwxMSAr
OTkyLDEyIEBAIGluX2Jyb2FkY2FzdChzdHJ1Y3QgaW5fYWRkciBpbiwgc3RydWN0IGlmbmV0ICpp
ZnApDQo+ICB2b2lkDQo+ICBpbl9pZmRldGFjaChzdHJ1Y3QgaWZuZXQgKmlmcCkNCj4gIHsNCj4g
LQ0KPiArCUlOX01VTFRJX0xPQ0soKTsNCj4gIAlpbl9wY2JwdXJnZWlmMCgmVl9yaXBjYmluZm8s
IGlmcCk7DQo+ICAJaW5fcGNicHVyZ2VpZjAoJlZfdWRiaW5mbywgaWZwKTsNCj4gIAlpbl9wY2Jw
dXJnZWlmMCgmVl91bGl0ZWNiaW5mbywgaWZwKTsNCj4gIAlpbl9wdXJnZW1hZGRycyhpZnApOw0K
PiArCUlOX01VTFRJX1VOTE9DSygpOw0KPiAgfQ0KPiAgDQo+ICAvKg0KPiBAQCAtMTAxMSwxMiAr
MTAxMCwxMiBAQCBpbl9pZmRldGFjaChzdHJ1Y3QgaWZuZXQgKmlmcCkNCj4gIHN0YXRpYyB2b2lk
DQo+ICBpbl9wdXJnZW1hZGRycyhzdHJ1Y3QgaWZuZXQgKmlmcCkNCj4gIHsNCj4gLQlMSVNUX0hF
QUQoLGluX211bHRpKSBwdXJnZWlubXM7DQo+IC0Jc3RydWN0IGluX211bHRpCQkqaW5tLCAqdGlu
bTsNCj4gKwlzdHJ1Y3QgaW5fbXVsdGlfaGVhZCBwdXJnZWlubXM7DQo+ICsJc3RydWN0IGluX211
bHRpCQkqaW5tOw0KPiAgCXN0cnVjdCBpZm11bHRpYWRkcgkqaWZtYTsNCj4gIA0KPiAtCUxJU1Rf
SU5JVCgmcHVyZ2Vpbm1zKTsNCj4gLQlJTl9NVUxUSV9MT0NLKCk7DQo+ICsJU0xJU1RfSU5JVCgm
cHVyZ2Vpbm1zKTsNCj4gKwlJTl9NVUxUSV9MSVNUX0xPQ0soKTsNCj4gIA0KPiAgCS8qDQo+ICAJ
ICogRXh0cmFjdCBsaXN0IG9mIGluX211bHRpIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGV0YWNoaW5n
IGlmcA0KPiBAQCAtMTAzNCwxNyArMTAzMywxMyBAQCBpbl9wdXJnZW1hZGRycyhzdHJ1Y3QgaWZu
ZXQgKmlmcCkNCj4gIAkJICAgICgiJXM6IGlmbWFfcHJvdG9zcGVjIGlzIE5VTEwiLCBfX2Z1bmNf
XykpOw0KPiAgI2VuZGlmDQo+ICAJCWlubSA9IChzdHJ1Y3QgaW5fbXVsdGkgKilpZm1hLT5pZm1h
X3Byb3Rvc3BlYzsNCj4gLQkJTElTVF9JTlNFUlRfSEVBRCgmcHVyZ2Vpbm1zLCBpbm0sIGlubV9s
aW5rKTsNCj4gKwkJaW5tX3JlbGVfbG9ja2VkKCZwdXJnZWlubXMsIGlubSk7DQo+ICAJfQ0KPiAg
CUlGX0FERFJfUlVOTE9DSyhpZnApOw0KPiAgDQo+IC0JTElTVF9GT1JFQUNIX1NBRkUoaW5tLCAm
cHVyZ2Vpbm1zLCBpbm1fbGluaywgdGlubSkgew0KPiAtCQlMSVNUX1JFTU9WRShpbm0sIGlubV9s
aW5rKTsNCj4gLQkJaW5tX3JlbGVhc2VfbG9ja2VkKGlubSk7DQo+IC0JfQ0KPiArCWlubV9yZWxl
YXNlX2xpc3RfZGVmZXJyZWQoJnB1cmdlaW5tcyk7DQo+ICAJaWdtcF9pZmRldGFjaChpZnApOw0K
PiAtDQo+IC0JSU5fTVVMVElfVU5MT0NLKCk7DQo+ICsJSU5fTVVMVElfTElTVF9VTkxPQ0soKTsN
Cj4gIH0NCj4gIA0KPiAgc3RydWN0IGluX2xsZW50cnkgew0KPiANCj4gTW9kaWZpZWQ6IGhlYWQv
c3lzL25ldGluZXQvaW5fbWNhc3QuYw0KPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gLS0tIGhl
YWQvc3lzL25ldGluZXQvaW5fbWNhc3QuYwlXZWQgTWF5ICAyIDE3OjQxOjAwIDIwMTgJKHIzMzMx
NzQpDQo+ICsrKyBoZWFkL3N5cy9uZXRpbmV0L2luX21jYXN0LmMJV2VkIE1heSAgMiAxOTozNjoy
OSAyMDE4CShyMzMzMTc1KQ0KPiBAQCAtNTEsNiArNTEsNyBAQCBfX0ZCU0RJRCgiJEZyZWVCU0Qk
Iik7DQo+ICAjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPg0KPiAgI2luY2x1ZGUgPHN5cy9rdHIuaD4N
Cj4gICNpbmNsdWRlIDxzeXMvdGFza3F1ZXVlLmg+DQo+ICsjaW5jbHVkZSA8c3lzL2d0YXNrcXVl
dWUuaD4NCj4gICNpbmNsdWRlIDxzeXMvdHJlZS5oPg0KPiAgDQo+ICAjaW5jbHVkZSA8bmV0L2lm
Lmg+DQo+IEBAIC01OSw2ICs2MCw4IEBAIF9fRkJTRElEKCIkRnJlZUJTRCQiKTsNCj4gICNpbmNs
dWRlIDxuZXQvcm91dGUuaD4NCj4gICNpbmNsdWRlIDxuZXQvdm5ldC5oPg0KPiAgDQo+ICsjaW5j
bHVkZSA8bmV0L2V0aGVybmV0Lmg+DQo+ICsNCj4gICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+DQo+
ICAjaW5jbHVkZSA8bmV0aW5ldC9pbl9zeXN0bS5oPg0KPiAgI2luY2x1ZGUgPG5ldGluZXQvaW5f
ZmliLmg+DQo+IEBAIC05MSwxOCArOTQsMjQgQEAgc3RhdGljIE1BTExPQ19ERUZJTkUoTV9JUE1T
T1VSQ0UsICJpcF9tc291cmNlIiwNCj4gIA0KPiAgLyoNCj4gICAqIExvY2tpbmc6DQo+IC0gKiAt
IExvY2sgb3JkZXIgaXM6IEdpYW50LCBJTlBfV0xPQ0ssIElOX01VTFRJX0xPQ0ssIElHTVBfTE9D
SywgSUZfQUREUl9MT0NLLg0KPiArICogLSBMb2NrIG9yZGVyIGlzOiBHaWFudCwgSU5QX1dMT0NL
LCBJTl9NVUxUSV9MSVNUX0xPQ0ssIElHTVBfTE9DSywgSUZfQUREUl9MT0NLLg0KPiAgICogLSBU
aGUgSUZfQUREUl9MT0NLIGlzIGltcGxpY2l0bHkgdGFrZW4gYnkgaW5tX2xvb2t1cCgpIGVhcmxp
ZXIsIGhvd2V2ZXINCj4gICAqICAgaXQgY2FuIGJlIHRha2VuIGJ5IGNvZGUgaW4gbmV0L2lmLmMg
YWxzby4NCj4gICAqIC0gaXBfbW9wdGlvbnMgYW5kIGluX21maWx0ZXIgYXJlIGNvdmVyZWQgYnkg
dGhlIElOUF9XTE9DSy4NCj4gICAqDQo+IC0gKiBzdHJ1Y3QgaW5fbXVsdGkgaXMgY292ZXJlZCBi
eSBJTl9NVUxUSV9MT0NLLiBUaGVyZSBpc24ndCBzdHJpY3RseQ0KPiArICogc3RydWN0IGluX211
bHRpIGlzIGNvdmVyZWQgYnkgSU5fTVVMVElfTElTVF9MT0NLLiBUaGVyZSBpc24ndCBzdHJpY3Rs
eQ0KPiAgICogYW55IG5lZWQgZm9yIGluX211bHRpIGl0c2VsZiB0byBiZSB2aXJ0dWFsaXplZCAt
LSBpdCBpcyBib3VuZCB0byBhbiBpZnANCj4gICAqIGFueXdheSBubyBtYXR0ZXIgd2hhdCBoYXBw
ZW5zLg0KPiAgICovDQo+IC1zdHJ1Y3QgbXR4IGluX211bHRpX210eDsNCj4gLU1UWF9TWVNJTklU
KGluX211bHRpX210eCwgJmluX211bHRpX210eCwgImluX211bHRpX210eCIsIE1UWF9ERUYpOw0K
PiArc3RydWN0IG10eCBpbl9tdWx0aV9saXN0X210eDsNCj4gK01UWF9TWVNJTklUKGluX211bHRp
X210eCwgJmluX211bHRpX2xpc3RfbXR4LCAiaW5fbXVsdGlfbGlzdF9tdHgiLCBNVFhfREVGKTsN
Cj4gIA0KPiArc3RydWN0IG10eCBpbl9tdWx0aV9mcmVlX210eDsNCj4gK01UWF9TWVNJTklUKGlu
X211bHRpX2ZyZWVfbXR4LCAmaW5fbXVsdGlfZnJlZV9tdHgsICJpbl9tdWx0aV9mcmVlX210eCIs
IE1UWF9ERUYpOw0KPiArDQo+ICtzdHJ1Y3Qgc3ggaW5fbXVsdGlfc3g7DQo+ICtTWF9TWVNJTklU
KGluX211bHRpX3N4LCAmaW5fbXVsdGlfc3gsICJpbl9tdWx0aV9zeCIpOw0KPiArDQo+ICAvKg0K
PiAgICogRnVuY3Rpb25zIHdpdGggbm9uLXN0YXRpYyBsaW5rYWdlIGRlZmluZWQgaW4gdGhpcyBm
aWxlIHNob3VsZCBiZQ0KPiAgICogZGVjbGFyZWQgaW4gaW5fdmFyLmg6DQo+IEBAIC0xNTEsNiAr
MTYwLDcgQEAgc3RhdGljIGludAlpbm1faXNfaWZwX2RldGFjaGVkKGNvbnN0IHN0cnVjdCBpbl9t
dWx0aSAqDQo+ICBzdGF0aWMgaW50CWlubV9tZXJnZShzdHJ1Y3QgaW5fbXVsdGkgKiwgLypjb25z
dCovIHN0cnVjdCBpbl9tZmlsdGVyICopOw0KPiAgc3RhdGljIHZvaWQJaW5tX3B1cmdlKHN0cnVj
dCBpbl9tdWx0aSAqKTsNCj4gIHN0YXRpYyB2b2lkCWlubV9yZWFwKHN0cnVjdCBpbl9tdWx0aSAq
KTsNCj4gK3N0YXRpYyB2b2lkIGlubV9yZWxlYXNlKHN0cnVjdCBpbl9tdWx0aSAqKTsNCj4gIHN0
YXRpYyBzdHJ1Y3QgaXBfbW9wdGlvbnMgKg0KPiAgCQlpbnBfZmluZG1vcHRpb25zKHN0cnVjdCBp
bnBjYiAqKTsNCj4gIHN0YXRpYyB2b2lkCWlucF9mcmVlbW9wdGlvbnNfaW50ZXJuYWwoc3RydWN0
IGlwX21vcHRpb25zICopOw0KPiBAQCAtMjE2LDYgKzIyNiw2NSBAQCBpbm1faXNfaWZwX2RldGFj
aGVkKGNvbnN0IHN0cnVjdCBpbl9tdWx0aSAqaW5tKQ0KPiAgfQ0KPiAgI2VuZGlmDQo+ICANCj4g
K3N0YXRpYyBzdHJ1Y3QgZ3JvdXB0YXNrIGZyZWVfZ3Rhc2s7DQo+ICtzdGF0aWMgc3RydWN0IGlu
X211bHRpX2hlYWQgaW5tX2ZyZWVfbGlzdDsNCj4gK3N0YXRpYyB2b2lkIGlubV9yZWxlYXNlX3Rh
c2sodm9pZCAqYXJnIF9fdW51c2VkKTsNCj4gK3N0YXRpYyB2b2lkIGlubV9pbml0KHZvaWQpDQo+
ICt7DQo+ICsJU0xJU1RfSU5JVCgmaW5tX2ZyZWVfbGlzdCk7DQo+ICsJdGFza3Fncm91cF9jb25m
aWdfZ3Rhc2tfaW5pdChOVUxMLCAmZnJlZV9ndGFzaywgaW5tX3JlbGVhc2VfdGFzaywgImlubSBy
ZWxlYXNlDQo+IHRhc2siKTsgK30NCj4gKw0KPiArU1lTSU5JVChpbm1faW5pdCwgU0lfU1VCX1NN
UCArIDEsIFNJX09SREVSX0ZJUlNULA0KPiArCWlubV9pbml0LCBOVUxMKTsNCj4gKw0KPiArDQo+
ICt2b2lkDQo+ICtpbm1fcmVsZWFzZV9saXN0X2RlZmVycmVkKHN0cnVjdCBpbl9tdWx0aV9oZWFk
ICppbm1oKQ0KPiArew0KPiArDQo+ICsJaWYgKFNMSVNUX0VNUFRZKGlubWgpKQ0KPiArCQlyZXR1
cm47DQo+ICsJbXR4X2xvY2soJmluX211bHRpX2ZyZWVfbXR4KTsNCj4gKwlTTElTVF9DT05DQVQo
JmlubV9mcmVlX2xpc3QsIGlubWgsIGluX211bHRpLCBpbm1fbnJlbGUpOw0KPiArCW10eF91bmxv
Y2soJmluX211bHRpX2ZyZWVfbXR4KTsNCj4gKwlHUk9VUFRBU0tfRU5RVUVVRSgmZnJlZV9ndGFz
ayk7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK2lubV9yZWxlYXNlX2RlZmVycmVkKHN0cnVjdCBp
bl9tdWx0aSAqaW5tKQ0KPiArew0KPiArCXN0cnVjdCBpbl9tdWx0aV9oZWFkIHRtcDsNCj4gKw0K
PiArCUlOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gKwlNUEFTUyhpbm0tPmlubV9yZWZj
b3VudCA+IDApOw0KPiArCWlmICgtLWlubS0+aW5tX3JlZmNvdW50ID09IDApIHsNCj4gKwkJU0xJ
U1RfSU5JVCgmdG1wKTsNCj4gKwkJaW5tLT5pbm1faWZtYS0+aWZtYV9wcm90b3NwZWMgPSBOVUxM
Ow0KPiArCQlTTElTVF9JTlNFUlRfSEVBRCgmdG1wLCBpbm0sIGlubV9ucmVsZSk7DQo+ICsJCWlu
bV9yZWxlYXNlX2xpc3RfZGVmZXJyZWQoJnRtcCk7DQo+ICsJfQ0KPiArfQ0KPiArDQo+ICtzdGF0
aWMgdm9pZA0KPiAraW5tX3JlbGVhc2VfdGFzayh2b2lkICphcmcgX191bnVzZWQpDQo+ICt7DQo+
ICsJc3RydWN0IGluX211bHRpX2hlYWQgaW5tX2ZyZWVfdG1wOw0KPiArCXN0cnVjdCBpbl9tdWx0
aSAqaW5tLCAqdGlubTsNCj4gKw0KPiArCVNMSVNUX0lOSVQoJmlubV9mcmVlX3RtcCk7DQo+ICsJ
bXR4X2xvY2soJmluX211bHRpX2ZyZWVfbXR4KTsNCj4gKwlTTElTVF9DT05DQVQoJmlubV9mcmVl
X3RtcCwgJmlubV9mcmVlX2xpc3QsIGluX211bHRpLCBpbm1fbnJlbGUpOw0KPiArCW10eF91bmxv
Y2soJmluX211bHRpX2ZyZWVfbXR4KTsNCj4gKwlJTl9NVUxUSV9MT0NLKCk7DQo+ICsJU0xJU1Rf
Rk9SRUFDSF9TQUZFKGlubSwgJmlubV9mcmVlX3RtcCwgaW5tX25yZWxlLCB0aW5tKSB7DQo+ICsJ
CVNMSVNUX1JFTU9WRV9IRUFEKCZpbm1fZnJlZV90bXAsIGlubV9ucmVsZSk7DQo+ICsJCU1QQVNT
KGlubSk7DQo+ICsJCWlubV9yZWxlYXNlKGlubSk7DQo+ICsJfQ0KPiArCUlOX01VTFRJX1VOTE9D
SygpOw0KPiArfQ0KPiArDQo+ICAvKg0KPiAgICogSW5pdGlhbGl6ZSBhbiBpbl9tZmlsdGVyIHN0
cnVjdHVyZSB0byBhIGtub3duIHN0YXRlIGF0IHQwLCB0MQ0KPiAgICogd2l0aCBhbiBlbXB0eSBz
b3VyY2UgZmlsdGVyIGxpc3QuDQo+IEBAIC0yMzIsNyArMzAxLDcgQEAgaW1mX2luaXQoc3RydWN0
IGluX21maWx0ZXIgKmltZiwgY29uc3QgaW50IHN0MCwgY29uc3QgDQo+ICAvKg0KPiAgICogRnVu
Y3Rpb24gZm9yIGxvb2tpbmcgdXAgYW4gaW5fbXVsdGkgcmVjb3JkIGZvciBhbiBJUHY0IG11bHRp
Y2FzdCBhZGRyZXNzDQo+ICAgKiBvbiBhIGdpdmVuIGludGVyZmFjZS4gaWZwIG11c3QgYmUgdmFs
aWQuIElmIG5vIHJlY29yZCBmb3VuZCwgcmV0dXJuIE5VTEwuDQo+IC0gKiBUaGUgSU5fTVVMVElf
TE9DSyBhbmQgSUZfQUREUl9MT0NLIG9uIGlmcCBtdXN0IGJlIGhlbGQuDQo+ICsgKiBUaGUgSU5f
TVVMVElfTElTVF9MT0NLIGFuZCBJRl9BRERSX0xPQ0sgb24gaWZwIG11c3QgYmUgaGVsZC4NCj4g
ICAqLw0KPiAgc3RydWN0IGluX211bHRpICoNCj4gIGlubV9sb29rdXBfbG9ja2VkKHN0cnVjdCBp
Zm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaW5fYWRkciBpbmEpDQo+IEBAIC0yNDAsNyArMzA5LDcg
QEAgaW5tX2xvb2t1cF9sb2NrZWQoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9h
DQo+ICAJc3RydWN0IGlmbXVsdGlhZGRyICppZm1hOw0KPiAgCXN0cnVjdCBpbl9tdWx0aSAqaW5t
Ow0KPiAgDQo+IC0JSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gKwlJTl9NVUxUSV9MSVNUX0xP
Q0tfQVNTRVJUKCk7DQo+ICAJSUZfQUREUl9MT0NLX0FTU0VSVChpZnApOw0KPiAgDQo+ICAJaW5t
ID0gTlVMTDsNCj4gQEAgLTI2NCw3ICszMzMsNyBAQCBpbm1fbG9va3VwKHN0cnVjdCBpZm5ldCAq
aWZwLCBjb25zdCBzdHJ1Y3QgaW5fYWRkciBpbmENCj4gIHsNCj4gIAlzdHJ1Y3QgaW5fbXVsdGkg
KmlubTsNCj4gIA0KPiAtCUlOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ICsJSU5fTVVMVElfTElT
VF9MT0NLX0FTU0VSVCgpOw0KPiAgCUlGX0FERFJfUkxPQ0soaWZwKTsNCj4gIAlpbm0gPSBpbm1f
bG9va3VwX2xvY2tlZChpZnAsIGluYSk7DQo+ICAJSUZfQUREUl9SVU5MT0NLKGlmcCk7DQo+IEBA
IC00NTEsNyArNTIwLDcgQEAgaW5fZ2V0bXVsdGkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0
cnVjdCBpbl9hZGRyICpnDQo+ICAJSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gIA0KPiAgCWlp
ID0gKHN0cnVjdCBpbl9pZmluZm8gKilpZnAtPmlmX2FmZGF0YVtBRl9JTkVUXTsNCj4gLQ0KPiAr
CUlOX01VTFRJX0xJU1RfTE9DSygpOw0KPiAgCWlubSA9IGlubV9sb29rdXAoaWZwLCAqZ3JvdXAp
Ow0KPiAgCWlmIChpbm0gIT0gTlVMTCkgew0KPiAgCQkvKg0KPiBAQCAtNDYwLDExICs1MjksMTMg
QEAgaW5fZ2V0bXVsdGkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9hZGRyICpn
DQo+ICAJCSAqLw0KPiAgCQlLQVNTRVJUKGlubS0+aW5tX3JlZmNvdW50ID49IDEsDQo+ICAJCSAg
ICAoIiVzOiBiYWQgcmVmY291bnQgJWQiLCBfX2Z1bmNfXywgaW5tLT5pbm1fcmVmY291bnQpKTsN
Cj4gLQkJKytpbm0tPmlubV9yZWZjb3VudDsNCj4gKwkJaW5tX2FjcXVpcmVfbG9ja2VkKGlubSk7
DQo+ICAJCSpwaW5tID0gaW5tOw0KPiAtCQlyZXR1cm4gKDApOw0KPiAgCX0NCj4gLQ0KPiArCUlO
X01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ICsJaWYgKGlubSAhPSBOVUxMKQ0KPiArCQlyZXR1cm4g
KDApOw0KPiArCQ0KPiAgCW1lbXNldCgmZ3NpbiwgMCwgc2l6ZW9mKGdzaW4pKTsNCj4gIAlnc2lu
LnNpbl9mYW1pbHkgPSBBRl9JTkVUOw0KPiAgCWdzaW4uc2luX2xlbiA9IHNpemVvZihzdHJ1Y3Qg
c29ja2FkZHJfaW4pOw0KPiBAQCAtNDc5LDYgKzU1MCw3IEBAIGluX2dldG11bHRpKHN0cnVjdCBp
Zm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaW5fYWRkciAqZw0KPiAgCQlyZXR1cm4gKGVycm9yKTsN
Cj4gIA0KPiAgCS8qIFhYWCBpZm1hX3Byb3Rvc3BlYyBtdXN0IGJlIGNvdmVyZWQgYnkgSUZfQURE
Ul9MT0NLICovDQo+ICsJSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ICAJSUZfQUREUl9XTE9DSyhp
ZnApOw0KPiAgDQo+ICAJLyoNCj4gQEAgLTUwNCwxMCArNTc2LDkgQEAgaW5fZ2V0bXVsdGkoc3Ry
dWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9hZGRyICpnDQo+ICAJCQkgICAgX19mdW5j
X18sIGlmbWEsIGlubSwgaW5ldF9udG9hX3IoKmdyb3VwLCBhZGRyYnVmKSk7DQo+ICAJCX0NCj4g
ICNlbmRpZg0KPiAtCQkrK2lubS0+aW5tX3JlZmNvdW50Ow0KPiArCQlpbm1fYWNxdWlyZV9sb2Nr
ZWQoaW5tKTsNCj4gIAkJKnBpbm0gPSBpbm07DQo+IC0JCUlGX0FERFJfV1VOTE9DSyhpZnApOw0K
PiAtCQlyZXR1cm4gKDApOw0KPiArCQlnb3RvIG91dF9sb2NrZWQ7DQo+ICAJfQ0KPiAgDQo+ICAJ
SUZfQUREUl9XTE9DS19BU1NFUlQoaWZwKTsNCj4gQEAgLTUyMiw2ICs1OTMsNyBAQCBpbl9nZXRt
dWx0aShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGluX2FkZHIgKmcNCj4gIAlpbm0g
PSBtYWxsb2Moc2l6ZW9mKCppbm0pLCBNX0lQTUFERFIsIE1fTk9XQUlUIHwgTV9aRVJPKTsNCj4g
IAlpZiAoaW5tID09IE5VTEwpIHsNCj4gIAkJSUZfQUREUl9XVU5MT0NLKGlmcCk7DQo+ICsJCUlO
X01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ICAJCWlmX2RlbG11bHRpX2lmbWEoaWZtYSk7DQo+ICAJ
CXJldHVybiAoRU5PTUVNKTsNCj4gIAl9DQo+IEBAIC01MzksOCArNjExLDkgQEAgaW5fZ2V0bXVs
dGkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9hZGRyICpnDQo+ICAJaWZtYS0+
aWZtYV9wcm90b3NwZWMgPSBpbm07DQo+ICANCj4gIAkqcGlubSA9IGlubTsNCj4gLQ0KPiArIG91
dF9sb2NrZWQ6DQo+ICAJSUZfQUREUl9XVU5MT0NLKGlmcCk7DQo+ICsJSU5fTVVMVElfTElTVF9V
TkxPQ0soKTsNCj4gIAlyZXR1cm4gKDApOw0KPiAgfQ0KPiAgDQo+IEBAIC01NTAsMzYgKzYyMywy
OSBAQCBpbl9nZXRtdWx0aShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGluX2FkZHIg
KmcNCj4gICAqIElmIHRoZSByZWZjb3VudCBkcm9wcyB0byAwLCBmcmVlIHRoZSBpbl9tdWx0aSBy
ZWNvcmQgYW5kDQo+ICAgKiBkZWxldGUgdGhlIHVuZGVybHlpbmcgbGluay1sYXllciBtZW1iZXJz
aGlwLg0KPiAgICovDQo+IC12b2lkDQo+IC1pbm1fcmVsZWFzZV9sb2NrZWQoc3RydWN0IGluX211
bHRpICppbm0pDQo+ICtzdGF0aWMgdm9pZA0KPiAraW5tX3JlbGVhc2Uoc3RydWN0IGluX211bHRp
ICppbm0pDQo+ICB7DQo+ICAJc3RydWN0IGlmbXVsdGlhZGRyICppZm1hOw0KPiArCXN0cnVjdCBp
Zm5ldCAqaWZwOw0KPiAgDQo+IC0JSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gLQ0KPiAgCUNU
UjIoS1RSX0lHTVBWMywgIiVzOiByZWZjb3VudCBpcyAlZCIsIF9fZnVuY19fLCBpbm0tPmlubV9y
ZWZjb3VudCk7DQo+IC0NCj4gLQlpZiAoLS1pbm0tPmlubV9yZWZjb3VudCA+IDApIHsNCj4gLQkJ
Q1RSMihLVFJfSUdNUFYzLCAiJXM6IHJlZmNvdW50IGlzIG5vdyAlZCIsIF9fZnVuY19fLA0KPiAt
CQkgICAgaW5tLT5pbm1fcmVmY291bnQpOw0KPiAtCQlyZXR1cm47DQo+IC0JfQ0KPiAtDQo+ICsJ
TVBBU1MoaW5tLT5pbm1fcmVmY291bnQgPT0gMCk7DQo+ICAJQ1RSMihLVFJfSUdNUFYzLCAiJXM6
IGZyZWVpbmcgaW5tICVwIiwgX19mdW5jX18sIGlubSk7DQo+ICANCj4gIAlpZm1hID0gaW5tLT5p
bm1faWZtYTsNCj4gKwlpZnAgPSBpbm0tPmlubV9pZnA7DQo+ICANCj4gIAkvKiBYWFggdGhpcyBh
Y2Nlc3MgaXMgbm90IGNvdmVyZWQgYnkgSUZfQUREUl9MT0NLICovDQo+ICAJQ1RSMihLVFJfSUdN
UFYzLCAiJXM6IHB1cmdpbmcgaWZtYSAlcCIsIF9fZnVuY19fLCBpZm1hKTsNCj4gLQlLQVNTRVJU
KGlmbWEtPmlmbWFfcHJvdG9zcGVjID09IGlubSwNCj4gLQkgICAgKCIlczogaWZtYV9wcm90b3Nw
ZWMgIT0gaW5tIiwgX19mdW5jX18pKTsNCj4gLQlpZm1hLT5pZm1hX3Byb3Rvc3BlYyA9IE5VTEw7
DQo+IC0NCj4gKwlpZiAoaWZwKQ0KPiArCQlDVVJWTkVUX1NFVChpZnAtPmlmX3ZuZXQpOw0KPiAg
CWlubV9wdXJnZShpbm0pOw0KPiAtDQo+ICAJZnJlZShpbm0sIE1fSVBNQUREUik7DQo+ICANCj4g
IAlpZl9kZWxtdWx0aV9pZm1hKGlmbWEpOw0KPiArCWlmIChpZnApDQo+ICsJCUNVUlZORVRfUkVT
VE9SRSgpOw0KPiAgfQ0KPiAgDQo+ICAvKg0KPiBAQCAtNTkyLDcgKzY1OCw3IEBAIGlubV9jbGVh
cl9yZWNvcmRlZChzdHJ1Y3QgaW5fbXVsdGkgKmlubSkNCj4gIHsNCj4gIAlzdHJ1Y3QgaXBfbXNv
dXJjZQkqaW1zOw0KPiAgDQo+IC0JSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gKwlJTl9NVUxU
SV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ICANCj4gIAlSQl9GT1JFQUNIKGltcywgaXBfbXNvdXJj
ZV90cmVlLCAmaW5tLT5pbm1fc3Jjcykgew0KPiAgCQlpZiAoaW1zLT5pbXNfc3RwKSB7DQo+IEBA
IC02MzIsNyArNjk4LDcgQEAgaW5tX3JlY29yZF9zb3VyY2Uoc3RydWN0IGluX211bHRpICppbm0s
IGNvbnN0IGluX2FkZHJfDQo+ICAJc3RydWN0IGlwX21zb3VyY2UJIGZpbmQ7DQo+ICAJc3RydWN0
IGlwX21zb3VyY2UJKmltcywgKm5pbXM7DQo+ICANCj4gLQlJTl9NVUxUSV9MT0NLX0FTU0VSVCgp
Ow0KPiArCUlOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gIA0KPiAgCWZpbmQuaW1zX2hh
ZGRyID0gbnRvaGwobmFkZHIpOw0KPiAgCWltcyA9IFJCX0ZJTkQoaXBfbXNvdXJjZV90cmVlLCAm
aW5tLT5pbm1fc3JjcywgJmZpbmQpOw0KPiBAQCAtOTU5LDYgKzEwMjUsNyBAQCBpbm1fbWVyZ2Uo
c3RydWN0IGluX211bHRpICppbm0sIC8qY29uc3QqLyBzdHJ1Y3QgaW5fbWYNCj4gIAlzY2hhbmdl
ZCA9IDA7DQo+ICAJZXJyb3IgPSAwOw0KPiAgCW5zcmMxID0gbnNyYzAgPSAwOw0KPiArCUlOX01V
TFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gIA0KPiAgCS8qDQo+ICAJICogVXBkYXRlIHRoZSBz
b3VyY2UgZmlsdGVycyBmaXJzdCwgYXMgdGhpcyBtYXkgZmFpbC4NCj4gQEAgLTExNjUsNiArMTIz
Miw3IEBAIGluX2pvaW5ncm91cF9sb2NrZWQoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVj
dCBpbg0KPiAgCWludAkJCSBlcnJvcjsNCj4gIA0KPiAgCUlOX01VTFRJX0xPQ0tfQVNTRVJUKCk7
DQo+ICsJSU5fTVVMVElfTElTVF9VTkxPQ0tfQVNTRVJUKCk7DQo+ICANCj4gIAlDVFI0KEtUUl9J
R01QVjMsICIlczogam9pbiAweCUwOHggb24gJXAoJXMpKSIsIF9fZnVuY19fLA0KPiAgCSAgICBu
dG9obChnaW5hLT5zX2FkZHIpLCBpZnAsIGlmcC0+aWZfeG5hbWUpOw0KPiBAQCAtMTE4Niw3ICsx
MjU0LDcgQEAgaW5fam9pbmdyb3VwX2xvY2tlZChzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3Ry
dWN0IGluDQo+ICAJCUNUUjEoS1RSX0lHTVBWMywgIiVzOiBpbl9nZXRtdWx0aSgpIGZhaWx1cmUi
LCBfX2Z1bmNfXyk7DQo+ICAJCXJldHVybiAoZXJyb3IpOw0KPiAgCX0NCj4gLQ0KPiArCUlOX01V
TFRJX0xJU1RfTE9DSygpOw0KPiAgCUNUUjEoS1RSX0lHTVBWMywgIiVzOiBtZXJnZSBpbm0gc3Rh
dGUiLCBfX2Z1bmNfXyk7DQo+ICAJZXJyb3IgPSBpbm1fbWVyZ2UoaW5tLCBpbWYpOw0KPiAgCWlm
IChlcnJvcikgew0KPiBAQCAtMTIwMSwxMCArMTI2OSwxMiBAQCBpbl9qb2luZ3JvdXBfbG9ja2Vk
KHN0cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaW4NCj4gIAkJZ290byBvdXRfaW5tX3Jl
bGVhc2U7DQo+ICAJfQ0KPiAgDQo+IC1vdXRfaW5tX3JlbGVhc2U6DQo+ICsgb3V0X2lubV9yZWxl
YXNlOg0KPiArCUlOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ICAJaWYgKGVycm9yKSB7DQo+ICsN
Cj4gIAkJQ1RSMihLVFJfSUdNUFYzLCAiJXM6IGRyb3BwaW5nIHJlZiBvbiAlcCIsIF9fZnVuY19f
LCBpbm0pOw0KPiAtCQlpbm1fcmVsZWFzZV9sb2NrZWQoaW5tKTsNCj4gKwkJaW5tX3JlbGVhc2Vf
ZGVmZXJyZWQoaW5tKTsNCj4gIAl9IGVsc2Ugew0KPiAgCQkqcGlubSA9IGlubTsNCj4gIAl9DQo+
IEBAIC0xMjQ5LDYgKzEzMTksNyBAQCBpbl9sZWF2ZWdyb3VwX2xvY2tlZChzdHJ1Y3QgaW5fbXVs
dGkgKmlubSwgLypjb25zdCovIHMNCj4gIAllcnJvciA9IDA7DQo+ICANCj4gIAlJTl9NVUxUSV9M
T0NLX0FTU0VSVCgpOw0KPiArCUlOX01VTFRJX0xJU1RfVU5MT0NLX0FTU0VSVCgpOw0KPiAgDQo+
ICAJQ1RSNShLVFJfSUdNUFYzLCAiJXM6IGxlYXZlIGlubSAlcCwgMHglMDh4LyVzLCBpbWYgJXAi
LCBfX2Z1bmNfXywNCj4gIAkgICAgaW5tLCBudG9obChpbm0tPmlubV9hZGRyLnNfYWRkciksDQo+
IEBAIC0xMjcyLDE4ICsxMzQzLDIwIEBAIGluX2xlYXZlZ3JvdXBfbG9ja2VkKHN0cnVjdCBpbl9t
dWx0aSAqaW5tLCAvKmNvbnN0Ki8gcw0KPiAgCSAqIHRoZSB0cmFuc2FjdGlvbiwgaXQgTVVTVCBO
T1QgZmFpbC4NCj4gIAkgKi8NCj4gIAlDVFIxKEtUUl9JR01QVjMsICIlczogbWVyZ2UgaW5tIHN0
YXRlIiwgX19mdW5jX18pOw0KPiArCUlOX01VTFRJX0xJU1RfTE9DSygpOw0KPiAgCWVycm9yID0g
aW5tX21lcmdlKGlubSwgaW1mKTsNCj4gIAlLQVNTRVJUKGVycm9yID09IDAsICgiJXM6IGZhaWxl
ZCB0byBtZXJnZSBpbm0gc3RhdGUiLCBfX2Z1bmNfXykpOw0KPiAgDQo+ICAJQ1RSMShLVFJfSUdN
UFYzLCAiJXM6IGRvaW5nIGlnbXAgZG93bmNhbGwiLCBfX2Z1bmNfXyk7DQo+ICAJQ1VSVk5FVF9T
RVQoaW5tLT5pbm1faWZwLT5pZl92bmV0KTsNCj4gIAllcnJvciA9IGlnbXBfY2hhbmdlX3N0YXRl
KGlubSk7DQo+ICsJaW5tX3JlbGVhc2VfZGVmZXJyZWQoaW5tKTsNCj4gKwlJTl9NVUxUSV9MSVNU
X1VOTE9DSygpOw0KPiAgCUNVUlZORVRfUkVTVE9SRSgpOw0KPiAgCWlmIChlcnJvcikNCj4gIAkJ
Q1RSMShLVFJfSUdNUFYzLCAiJXM6IGZhaWxlZCBpZ21wIGRvd25jYWxsIiwgX19mdW5jX18pOw0K
PiAgDQo+ICAJQ1RSMihLVFJfSUdNUFYzLCAiJXM6IGRyb3BwaW5nIHJlZiBvbiAlcCIsIF9fZnVu
Y19fLCBpbm0pOw0KPiAtCWlubV9yZWxlYXNlX2xvY2tlZChpbm0pOw0KPiAgDQo+ICAJcmV0dXJu
IChlcnJvcik7DQo+ICB9DQo+IEBAIC0xMzE1LDE4ICsxMzg4LDYgQEAgaW5fYWRkbXVsdGkoc3Ry
dWN0IGluX2FkZHIgKmFwLCBzdHJ1Y3QgaWZuZXQgKmlmcCkNCj4gIH0NCj4gIA0KPiAgLyoNCj4g
LSAqIExlYXZlIGFuIElQdjQgbXVsdGljYXN0IGdyb3VwLCBhc3N1bWVkIHRvIGJlIGluIGV4Y2x1
c2l2ZSAoKixHKSBtb2RlLg0KPiAtICogVGhpcyBLUEkgaXMgZm9yIGxlZ2FjeSBrZXJuZWwgY29u
c3VtZXJzIG9ubHkuDQo+IC0gKi8NCj4gDQo+ICoqKiBESUZGIE9VVFBVVCBUUlVOQ0FURUQgQVQg
MTAwMCBMSU5FUyAqKioNCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18NCj4gc3ZuLXNyYy1oZWFkQGZyZWVic2Qub3JnIG1haWxpbmcgbGlzdA0KPiBodHRw
czovL2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGluZm8vc3ZuLXNyYy1oZWFkDQo+IFRv
IHVuc3Vic2NyaWJlLCBzZW5kIGFueSBtYWlsIHRvICJzdm4tc3JjLWhlYWQtdW5zdWJzY3JpYmVA
ZnJlZWJzZC5vcmciDQoNCg0KQWZ0ZXIgKGFyb3VuZCEpIHRoaXMgdXBkYXRlLCBzb21lIGJveGVz
IHdpdGggaTM1MCBkdWFsIHBvcnQgTklDcyBpbW1lZGlhdGVseSBjcmFzaCB3aXRoDQpGYXRhbCB0
cmFwIDEyOiBwYWdlIGZhdWx0IGFuZCBzb21ldGhpbmcgd2l0aCANCg0KY3VycmVudCBwcm9jZXNz
OiAoaXNjLXdvcmtlcjAwMDYpDQoNCi4uLi4NCg0KVGhvc2UgYm94ZXMgZG8gbm90IGhhdmUgZGVi
dWdnaW5nIGtlcm5lbC4gVGhlIHN5bXB0b21icyBhcmUgdGhlIHNhbWUuIFNpbmdsZSB1c2VyIGtl
cm5lbA0Kd29ya3MsIGJ1dCB0aGUgbW9tZW50IEkgcGVyZm9ybSAvZXRjL25ldHN0YXJ0IGFuZCBh
bnkga2luZCBvZiBuZXQgdHJhZmZpYyBlc3RhYmxpc2hlcywNCnRoaXMgY3JhcCBiYWlscyBvdXQu
DQoNCg0KLSAtLSANCk8uIEhhcnRtYW5uDQoNCkljaCB3aWRlcnNwcmVjaGUgZGVyIE51dHp1bmcg
b2RlciDDnGJlcm1pdHRsdW5nIG1laW5lciBEYXRlbiBmw7xyDQpXZXJiZXp3ZWNrZSBvZGVyIGbD
vHIgZGllIE1hcmt0LSBvZGVyIE1laW51bmdzZm9yc2NodW5nICjCpyAyOCBBYnMuIDQgQkRTRyku
DQotLS0tLUJFR0lOIFBHUCBTSUdOQVRVUkUtLS0tLQ0KDQppTFVFQVJNS0FCMFdJUVFaVlpNekF0
d0MyVC84NlRyUzUyOGZ5RmhZbEFVQ1d1dGp0Z0FLQ1JEUzUyOGZ5RmhZDQpsQWt6QWY5UGhhRlR3
TmhRRDJ6Rjd4U0hKMndmdkx0b1VFalpsekdzdXNBQ3AxcGE3SkFmejBQeXYrbG0rWE5KDQp2TEVs
cklmMUNtRHp1QTh5YmxaL3gvd09WU0prQWY5Qys1MERWRXRHcTVIL2JIU0ROd3ptcXJqOFlnQjdY
cFNzDQpQTVJYYytJd0lhMUpnaTJ5TSs2VENTTlNzMU41YkVVaFU5Qmk4ZVh5NlkwRlNrQVplVitz
DQo9UzBiQw0KLS0tLS1FTkQgUEdQIFNJR05BVFVSRS0tLS0tDQo=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180503213206.7fba052c>