Re: [RFC PATCH v3 14/19] target/arm/kvm: compute supported values for ID register fields
Khushit Shah <[email protected]> Wed, 5 Aug 2026 09:58:44 +0000
| Newsgroups | org.nongnu.qemu-arm,dev.linux.lists.kvmarm,org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
DQoNCj4gT24gMjYgSnVsIDIwMjYsIGF0IDc6NTLigK9QTSwgRXJpYyBBdWdlciA8ZXJpYy5hdWdl ckByZWRoYXQuY29tPiB3cm90ZToNCj4gDQo+ICEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfA0KPiAgQ0FVVElPTjogRXh0 ZXJuYWwgRW1haWwNCj4gDQo+IHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIQ0KPiANCj4gSGkgS2h1c2hpdCwNCj4gDQo+ IE9uIDcvMTYvMjYgMTE6MzggUE0sIEtodXNoaXQgU2hhaCB3cm90ZToNCj4+IEFkZCBhcm1fZmll bGRfZ2V0X3N1cHBvcnRlZF92YWx1ZXMoKSB3aGljaCwgZm9yIGEgZ2l2ZW4gSUQgcmVnaXN0ZXIN Cj4+IGZpZWxkLCBidWlsZHMgdGhlIHNldCBvZiB2YWx1ZXMgS1ZNIGFsbG93cyBpdCB0byB0YWtl IG9uIHRoZSBsaXZlIGhvc3QuDQo+PiANCj4+IE5vbi13cml0YWJsZSBmaWVsZHMgYXJlIHBpbm5l ZCB0byB0aGUgaG9zdCB2YWx1ZS4gV3JpdGFibGUgZmllbGRzIGZvbGxvdw0KPj4gdGhlaXIgcGVy IGZpZWxkIGNvbnN0cmFpbnRzLiBUaGlzIGZ1bmN0aW9uIGxpa2VseSBuZWVkcyBjaGFuZ2Ugd2hl bg0KPj4gS1ZNIHN0YXJ0cyBleHBvc2luZyBhIG5ldyB3cml0YWJsZSBmaWVsZCB0aGF0IGlzIG5v dCBsb3dlci1zYWZlLCBoZW5jZSwNCj4+IHRoZSBzcGVjaWFsIGhhbmRsaW5nIG9mIFRHcmFuWF8y L1NwZWNTRUkvTDFJcC9NSURSL1JFVklEUi9BSURSLg0KPiBzbyB0aGlzIGxvb2tzIHF1aXRlIHJp c2t5LiANCkkgYWdyZWUuDQoNCldoYXQgYXJlIHlvdXIgdGhvdWdodHMgb24gaGF2aW5nIGEgYXV0 aG9yaXRhdGl2ZSBsaXN0IGluIFFFTVUgb2YgYWxsDQp3cml0YWJsZSBmaWVsZHM/IE5vIG1hdHRl ciB3aGF0IEtWTSBleHBvc2VzIGFzIHdyaXRhYmxlLCBhY3R1YWwgZmllbGRzDQp3ZSBhbGxvdyB0 byBiZSB3cml0YWJsZSB3aWxsIGJlIGludGVyc2VjdGlvbiBvZiBLVk0gd3JpdGFibGUgKyBRRU1V DQp3cml0YWJsZS4gV2hlbiBUaGUgUUVNVSBsaXN0IGlzIHVwZGF0ZWQgd2UgbWFrZSBzdXJlIHRo aW5ncyBsaWtlIHRoaXMNCmZ1bmN0aW9uIGlzIHVwZGF0ZWQuDQoNClRoaXMgZ2V04oCZcyByaWQg b2YgY2FzZXMgd2hlcmUgd2Ugc2lsZW50bHkgc3VwcG9ydCB3cml0aW5nIHRvIGEgZmllbGQuDQpJ dCBpcyBzaW1pbGFyIHRvIHg4NiwgUUVNVSBvbmx5IHN1cHBvcnRzIHdyaXRpbmcgdG8gc3BlY2lm aWMgQ1BVSUQNCmxlYWZzIChieSB0aGUgZGVmaW5lZCBQcm9wZXJ0aWVzKSBhbmQgbm90IGp1c3Qg YW55IENQVUlEIGxlYWZzLg0KDQo+PiANCj4+IENyb3NzLWZpZWxkIGNvbnN0cmFpbnRzIGFyZSBu b3QgbW9kZWxsZWQ7IGZvciBleGFtcGxlIElEX0FBNjRaRlIwX0VMMQ0KPj4gaXMgZ2F0ZWQgYnkg U1ZFLiBSZXByb2R1Y2luZyBldmVyeSBpbnRlci1maWVsZCBkZXBlbmRlbmN5IGluIFFFTVUNCj4+ IHdvdWxkIG9ubHkgZHVwbGljYXRlIEtWTSdzIGxvZ2ljIGFuZCBkcmlmdCBvdXQgb2Ygc3luYyB3 aXRoIGl0Lg0KPiANCj4gSXNuJ3QgcW1wX3F1ZXJ5X2NwdV9tb2RlbF9leHBhbnNpb24gc3VmZmlj aWVudD8gSW4gZ2VuZXJhbCB1cHBlciBsYXllcnMNCj4gd2lsbCB0cnkgdG8gYXBwbHkgcmF3IG5h bWVkIG1vZGVscy4gSWYgYWp1c3RlbWVudHMgYXJlIG5lZWRlZCBiZXR3ZWVuDQo+IHNvdXJjZSBh bmQgZGVzdGluYXRpb24sIHdlIGtub3cgZmllbGQgY2FuZGlkYXRlIHZhbHVlcyAoZWl0aGVyIHRo ZQ0KPiBzb3VyY2Ugb3IgZGVzdCBvbmUpIGFuZCB0aGlzIGxhdHRlciBjYW4gYmUgZGlyZWN0bHkg dHJpZWQgdXNpbmcNCj4gcW1wX3F1ZXJ5X2NwdV9tb2RlbF9leHBhbnNpb24gd3JpdGUuIE9uIHRv cCBvZiB0aGF0DQo+IHFtcF9xdWVyeV9jcHVfbW9kZWxfZXhwYW5zaW9uIGNhbiBiZSBkaXJlY3Rs eSBjaGVja2VkIGFnYWluc3QgYSBzY3JhdGNoDQo+IHZjcHUgcmV1c2luZyB0aGUgbG9naWMgaW1w bGVtZW50ZWQgYXQga2VybmVsIGxldmVsLg0KDQpJIGFtIG5vdCBzdXJlIGlmIGl0IGlzIGFjY2Vw dGFibGUgZm9yIHF1ZXJ5X2NwdV9tb2RlbF9leHBhbnNpb24gc2hvdWxkIGZhaWwNCmlmIG1vZGVs IGlzIG5vdCByZWFsaXNhYmxlLiBPbiBhdCBsZWFzdCB4ODYgaXQgZG9lcyBub3QuIEl0IGp1c3Qg cmV0dXJucyB0aGUNCnN0YXRlIHdoaWNoIFFFTVUgd291bGQgcmVxdWVzdCBLVk0gZm9yIHRoZSBn aXZlbiBjb25maWd1cmF0aW9ucy4NCg0KUmVmOg0KaHR0cHM6Ly9naXRodWIuY29tL3FlbXUvcWVt dS9ibG9iLzNlM2NjYWIxMDZmODc5YjE1MTJmOGUwZDUxYTgyN2RkNGRlMzBlMjIvdGFyZ2V0L2kz ODYvY3B1LmMjTDk2ODkNCg0KY3B1LWRlZmluaXRpb25zIGlzIG1heWJlIGEgYmV0dGVyIGNhbmRp ZGF0ZSBmb3IgYWxnbyB5b3UgYXJlIGRlc2NyaWJpbmcsIGJ1dA0KaXQgd2lsbCBub3QgdGFrZSB0 aGUgdXNlciBvdmVycmlkZXMgaW50byBjb25zaWRlcmF0aW9ucyBhbmQgb25seSBzYXkgaWYgYQ0K YmFzZSBtb2RlbCBpcyB1c2FibGUgb3Igbm90DQoNCg0KPj4gU2lnbmVkLW9mZi1ieTogS2h1c2hp dCBTaGFoIDxraHVzaGl0LnNoYWhAbnV0YW5peC5jb20+DQo+PiAtLS0NCj4+IHRhcmdldC9hcm0v a3ZtLmMgICAgIHwgOTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysNCj4+IHRhcmdldC9hcm0va3ZtX2FybS5oIHwgMjYgKysrKysrKysrKysrDQo+PiAyIGZpbGVz IGNoYW5nZWQsIDEyNSBpbnNlcnRpb25zKCspDQo+PiANCj4+IGRpZmYgLS1naXQgYS90YXJnZXQv YXJtL2t2bS5jIGIvdGFyZ2V0L2FybS9rdm0uYw0KPj4gaW5kZXggYzM4Yjk5Y2ZjZS4uOGY0NTJm OTU3MCAxMDA2NDQNCj4+IC0tLSBhL3RhcmdldC9hcm0va3ZtLmMNCj4+ICsrKyBiL3RhcmdldC9h cm0va3ZtLmMNCj4+IEBAIC0xMjYyLDYgKzEyNjIsMTA1IEBAIGJvb2wga3ZtX2FybV9jcHVfcG9z dF9sb2FkKEFSTUNQVSAqY3B1KQ0KPj4gICAgIHJldHVybiB0cnVlOw0KPj4gfQ0KPj4gDQo+PiAr c3RhdGljIGJvb2wgYXJtX2ZpZWxkX2lzX3NpZ25lZChjb25zdCBBUk02NFN5c1JlZ0ZpZWxkICpm aWVsZCkNCj4+ICt7DQo+PiArICAgIHJldHVybiBmaWVsZF9tYXRjaGVzKGZpZWxkLCBJRF9BQTY0 TU1GUjBfRUwxX0lEWCwgIlRHcmFuNCIpICAgIHx8DQo+PiArICAgICAgICAgICBmaWVsZF9tYXRj aGVzKGZpZWxkLCBJRF9BQTY0TU1GUjBfRUwxX0lEWCwgIlRHcmFuNjQiKSAgIHx8DQo+PiArICAg ICAgICAgICBmaWVsZF9tYXRjaGVzKGZpZWxkLCBJRF9NTUZSMF9FTDFfSURYLCAiSW5uZXJTaHIi KSAgICAgIHx8DQo+PiArICAgICAgICAgICBmaWVsZF9tYXRjaGVzKGZpZWxkLCBJRF9NTUZSMF9F TDFfSURYLCAiT3V0ZXJTaHIiKSAgICAgIHx8DQo+PiArICAgICAgICAgICBmaWVsZF9tYXRjaGVz KGZpZWxkLCBJRF9BQTY0REZSMF9FTDFfSURYLCAiRG91YmxlTG9jayIpIHx8DQo+PiArICAgICAg ICAgICBmaWVsZF9tYXRjaGVzKGZpZWxkLCBJRF9BQTY0REZSMF9FTDFfSURYLCAiUE1VVmVyIikg ICAgIHx8DQo+PiArICAgICAgICAgICBmaWVsZF9tYXRjaGVzKGZpZWxkLCBJRF9ERlIwX0VMMV9J RFgsICJQZXJmTW9uIikgICAgICAgIHx8DQo+PiArICAgICAgICAgICBmaWVsZF9tYXRjaGVzKGZp ZWxkLCBJRF9BQTY0UEZSMV9FTDFfSURYLCAiTVRFX2ZyYWMiKSAgIHx8DQo+PiArICAgICAgICAg ICBmaWVsZF9tYXRjaGVzKGZpZWxkLCBJRF9BQTY0TU1GUjRfRUwxX0lEWCwgIkUySDAiKSAgICAg IHx8DQo+PiArICAgICAgICAgICBmaWVsZF9tYXRjaGVzKGZpZWxkLCBJRF9ERlIxX0VMMV9JRFgs ICJNVFBNVSIpICAgICAgICAgIHx8DQo+PiArICAgICAgICAgICBmaWVsZF9tYXRjaGVzKGZpZWxk LCBJRF9BQTY0UEZSMF9FTDFfSURYLCAiRlAiKSAgICAgICAgIHx8DQo+PiArICAgICAgICAgICBm aWVsZF9tYXRjaGVzKGZpZWxkLCBJRF9BQTY0UEZSMF9FTDFfSURYLCAiQWR2U0lNRCIpOw0KPiBD YW4ndCB3ZSBleHRyYWN0IHRoaXMgZnJvbSBSZWdpc3Rlci5qc29uIGluc3RlYWQ/DQoNCkFGQUlL LCBUaGVyZSBpcyBub3Qgc2lnbmVkbmVzcyBkYXRhIGluIFJlZ2lzdGVyLmpzb24NCg0KPj4gK30N Cj4+ICsNCj4+ICtzdGF0aWMgdm9pZCByYW5nZXNfYWRkKEdBcnJheSAqcmFuZ2VzLCB1aW50NjRf dCBtaW4sIHVpbnQ2NF90IG1heCkNCj4+ICt7DQo+PiArICAgIEFybUZpZWxkUmFuZ2UgciA9IHsg Lm1pbiA9IG1pbiwgLm1heCA9IG1heCB9Ow0KPj4gKyAgICBnX2FycmF5X2FwcGVuZF92YWwocmFu Z2VzLCByKTsNCj4+ICt9DQo+PiArDQo+PiArdm9pZCBhcm1fZmllbGRfZ2V0X3N1cHBvcnRlZF92 YWx1ZXMoY29uc3QgQVJNNjRTeXNSZWdGaWVsZCAqZmllbGQsDQo+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgQVJNSVNBUmVnaXN0ZXJzICpob3N0X2lzYXIsDQo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJtRmllbGRWYWx1ZVNldCAq KnZhbHVlX3NldCkNCj4+ICt7DQo+PiArICAgIGJvb2wgaXNfc2lnbmVkID0gYXJtX2ZpZWxkX2lz X3NpZ25lZChmaWVsZCk7DQo+PiArICAgIHVpbnQ2NF90IGhvc3QgPSBleHRyYWN0NjQoaG9zdF9p c2FyLT5pZHJlZ3NbZmllbGQtPmluZGV4XSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmaWVsZC0+c2hpZnQsIGZpZWxkLT5sZW5ndGgpOw0KPj4gKyAgICBHQXJyYXkgKnJhbmdl cyA9IGdfYXJyYXlfbmV3KGZhbHNlLCBmYWxzZSwgc2l6ZW9mKEFybUZpZWxkUmFuZ2UpKTsNCj4+ ICsNCj4+ICsgICAgLyogQSBub24td3JpdGFibGUgZmllbGQgY2FuIG9ubHkgZXZlciBob2xkIHRo ZSBob3N0IHZhbHVlLiAqLw0KPj4gKyAgICBpZiAoIWFybV9maWVsZF9pc193cml0YWJsZShmaWVs ZCkpIHsNCj4+ICsgICAgICAgIHJhbmdlc19hZGQocmFuZ2VzLCBob3N0LCBob3N0KTsNCj4+ICsg ICAgICAgIGdvdG8gZG9uZTsNCj4geW91IGFscmVhZHkgZ2V0IHRoaXMgaW5mbyBmcm9tIHFtcF9x dWVyeV9jcHVfbW9kZWxfZXhwYW5zaW9uDQpDYW4geW91IHBsZWFzZSBlbGFib3JhdGUgaG93PyBJ IHRob3VnaHQgdGhlIGN1cnJlbnQgcW1wX3F1ZXJ5X2NwdV9tb2RlbF9leHBhbnNpb24NCihZb3Vy IHY2KSBvbmx5IHJldHVybnMgdGhlIHdyaXRhYmxlIGZpZWxkLg0KKEkgaGF2ZSBub3QgeWV0IGxv b2tlZCBhdCB2NykNCg0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIGlmIChmaWVsZF9tYXRjaGVz KGZpZWxkLCBJRF9BQTY0TU1GUjBfRUwxX0lEWCwgIlRHcmFuNF8yIikgIHx8DQo+PiArICAgICAg ICBmaWVsZF9tYXRjaGVzKGZpZWxkLCBJRF9BQTY0TU1GUjBfRUwxX0lEWCwgIlRHcmFuMTZfMiIp IHx8DQo+PiArICAgICAgICBmaWVsZF9tYXRjaGVzKGZpZWxkLCBJRF9BQTY0TU1GUjBfRUwxX0lE WCwgIlRHcmFuNjRfMiIpKSB7DQo+PiArICAgICAgICAvKiBFaXRoZXIgc3VwcG9ydCB0aGUgaG9z dCB2YWx1ZSBvciB0aGUgIm9mZiIgdmFsdWUgKi8NCj4+ICsgICAgICAgIHJhbmdlc19hZGQocmFu Z2VzLCBob3N0LCBob3N0KTsNCj4+ICsgICAgICAgIGlmIChob3N0ICE9IDEpIHsgLyogMSA9ICJv ZmYiICovDQo+PiArICAgICAgICAgICAgcmFuZ2VzX2FkZChyYW5nZXMsIDEsIDEpOw0KPj4gKyAg ICAgICAgfQ0KPj4gKyAgICB9IGVsc2UgaWYgKGZpZWxkX21hdGNoZXMoZmllbGQsIENUUl9FTDBf SURYLCAiTDFJcCIpKSB7DQo+PiArICAgICAgICAvKiBPbmx5IHNhZmUgdG8gZG93bmdyYWRlIHRv IFZJUFQsIG90aGVyIHZhbHVlcyBhcmUgcmVzZXJ2ZWQuICovDQo+PiArICAgICAgICByYW5nZXNf YWRkKHJhbmdlcywgaG9zdCwgaG9zdCk7DQo+PiArICAgICAgICBpZiAoaG9zdCAhPSAyKSB7IC8q IDIgPSAiVklQVCIgKi8NCj4+ICsgICAgICAgICAgICByYW5nZXNfYWRkKHJhbmdlcywgMiwgMik7 DQo+PiArICAgICAgICB9DQo+PiArICAgIH0gZWxzZSBpZiAoZmllbGRfbWF0Y2hlcyhmaWVsZCwg SURfQUE2NE1NRlIxX0VMMV9JRFgsICJTcGVjU0VJIikgfHwNCj4+ICsgICAgICAgICAgICAgICBm aWVsZF9tYXRjaGVzKGZpZWxkLCBJRF9NTUZSNF9FTDFfSURYLCAiU3BlY1NFSSIpKSB7DQo+PiAr ICAgICAgICAvKiBJdCBpcyBzYWZlIHRvIHVwZ3JhZGUgU3BlY1NFSSB0byAxLCBvdGhlciB2YWx1 ZXMgYXJlIHJlc2VydmVkLiAqLw0KPj4gKyAgICAgICAgcmFuZ2VzX2FkZChyYW5nZXMsIGhvc3Qs IGhvc3QpOw0KPj4gKyAgICAgICAgaWYgKGhvc3QgIT0gMSkgew0KPj4gKyAgICAgICAgICAgIHJh bmdlc19hZGQocmFuZ2VzLCAxLCAxKTsNCj4+ICsgICAgICAgIH0NCj4+ICsgICAgfSBlbHNlIGlm IChmaWVsZC0+aW5kZXggPT0gTUlEUl9FTDFfSURYIHx8DQo+PiArICAgICAgICAgICAgICAgZmll bGQtPmluZGV4ID09IFJFVklEUl9FTDFfSURYIHx8DQo+PiArICAgICAgICAgICAgICAgZmllbGQt PmluZGV4ID09IEFJRFJfRUwxX0lEWCkgew0KPj4gKyAgICAgICAgLyoNCj4+ICsgICAgICAgICAq IE5vIHJlc3RyaWN0aW9uIG9uIHZhbHVlIHRoYXQgY2FuIGJlIHNldCBmb3IgaW1wbGVtZW50YXRp b24gSUQNCj4+ICsgICAgICAgICAqIHJlZ2lzdGVycyBmaWVsZHMuDQo+PiArICAgICAgICAgKi8N Cj4+ICsgICAgICAgIHVpbnQ2NF90IG1heCA9IDA7DQo+PiArICAgICAgICBpZiAoZmllbGQtPmxl bmd0aCA9PSA2NCkgew0KPj4gKyAgICAgICAgICAgIG1heCA9IH4wVUxMOw0KPj4gKyAgICAgICAg fSBlbHNlIHsNCj4+ICsgICAgICAgICAgICBtYXggPSAoMVVMTCA8PCBmaWVsZC0+bGVuZ3RoKSAt IDE7DQo+PiArICAgICAgICB9DQo+PiArICAgICAgICByYW5nZXNfYWRkKHJhbmdlcywgMCwgbWF4 KTsNCj4+ICsgICAgfSBlbHNlIHsNCj4+ICsgICAgICAgIC8qDQo+PiArICAgICAgICAgKiBBZnRl ciBoYW5kbGluZyB0aGUgc3BlY2lhbCBjYXNlcywgb3RoZXIgd3JpdGFibGUgZmllbGRzIGFyZQ0K Pj4gKyAgICAgICAgICogZWl0aGVyIGxvd2VyLXNhZmUgb3Igc2lnbmVkIGxvd2VyLXNhZmUuDQo+ PiArICAgICAgICAgKi8NCj4+ICsgICAgICAgIGlmIChmaWVsZC0+YXJjaF92YWxzX2NvdW50KSB7 DQo+PiArICAgICAgICAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGZpZWxkLT5hcmNoX3Zh bHNfY291bnQ7IGkrKykgew0KPj4gKyAgICAgICAgICAgICAgICB1aW50NjRfdCBhdiA9IGZpZWxk LT5hcmNoX3ZhbHNbaV0udmFsdWU7DQo+PiArICAgICAgICAgICAgICAgIGludDY0X3QgdiA9IGlz X3NpZ25lZCA/DQo+PiArICAgICAgICAgICAgICAgICAgICBzZXh0cmFjdDY0KGF2LCAwLCBmaWVs ZC0+bGVuZ3RoKSA6IChpbnQ2NF90KWF2Ow0KPj4gKyAgICAgICAgICAgICAgICBpbnQ2NF90IGh2 ID0gaXNfc2lnbmVkID8NCj4+ICsgICAgICAgICAgICAgICAgICAgIHNleHRyYWN0NjQoaG9zdCwg MCwgZmllbGQtPmxlbmd0aCkgOiAoaW50NjRfdClob3N0Ow0KPj4gKyAgICAgICAgICAgICAgICBp ZiAodiA8PSBodikgew0KPj4gKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VzX2FkZChyYW5nZXMs IGF2LCBhdik7DQo+PiArICAgICAgICAgICAgICAgIH0NCj4+ICsgICAgICAgICAgICB9DQo+PiAr ICAgICAgICB9IGVsc2Ugew0KPj4gKyAgICAgICAgICAgIGdfYXNzZXJ0KCFpc19zaWduZWQpOyAv KiBObyBzaWduZWQgZmllbGQgd2l0aCBubyBhcmNoIHZhbHMgKi8NCj4+ICsgICAgICAgICAgICBy YW5nZXNfYWRkKHJhbmdlcywgMCwgaG9zdCk7DQo+PiArICAgICAgICB9DQo+PiArICAgIH0NCj4+ ICtkb25lOg0KPj4gKyAgICAqdmFsdWVfc2V0ID0gZ19uZXcwKEFybUZpZWxkVmFsdWVTZXQsIDEp Ow0KPj4gKyAgICAoKnZhbHVlX3NldCktPm5fcmFuZ2VzID0gcmFuZ2VzLT5sZW47DQo+PiArICAg ICgqdmFsdWVfc2V0KS0+cmFuZ2VzID0gKEFybUZpZWxkUmFuZ2UgKilnX2FycmF5X2ZyZWUocmFu Z2VzLCBmYWxzZSk7DQo+PiArfQ0KPj4gKw0KPj4gc3RhdGljIGJvb2wgYXJtX2ZpZWxkX3NraXBf d3JpdGViYWNrX2Fsd2F5cyhjb25zdCBBUk02NFN5c1JlZ0ZpZWxkICpmaWVsZCkNCj4+IHsNCj4+ ICAgICAvKg0KPj4gZGlmZiAtLWdpdCBhL3RhcmdldC9hcm0va3ZtX2FybS5oIGIvdGFyZ2V0L2Fy bS9rdm1fYXJtLmgNCj4+IGluZGV4IDEzM2EwMjYwMzYuLjlmMTVjOTFjNGUgMTAwNjQ0DQo+PiAt LS0gYS90YXJnZXQvYXJtL2t2bV9hcm0uaA0KPj4gKysrIGIvdGFyZ2V0L2FybS9rdm1fYXJtLmgN Cj4+IEBAIC0xNDMsNiArMTQzLDMyIEBAIHZvaWQga3ZtX2FybV9zZXRfY3B1X2ZlYXR1cmVzX2Zy b21faG9zdChBUk1DUFUgKmNwdSk7DQo+PiB2b2lkIGt2bV9hcm1fYWRkX3ZjcHVfcHJvcGVydGll cyhBUk1DUFUgKmNwdSk7DQo+PiANCj4+IHR5cGVkZWYgc3RydWN0IEFSTTY0U3lzUmVnIEFSTTY0 U3lzUmVnOw0KPj4gK3R5cGVkZWYgc3RydWN0IEFSTTY0U3lzUmVnRmllbGQgQVJNNjRTeXNSZWdG aWVsZDsNCj4+ICt0eXBlZGVmIHN0cnVjdCBBUk1JU0FSZWdpc3RlcnMgQVJNSVNBUmVnaXN0ZXJz Ow0KPj4gKw0KPj4gK3R5cGVkZWYgc3RydWN0IEFybUZpZWxkUmFuZ2Ugew0KPj4gKyAgICB1aW50 NjRfdCBtaW47DQo+PiArICAgIHVpbnQ2NF90IG1heDsNCj4+ICt9IEFybUZpZWxkUmFuZ2U7DQo+ PiArDQo+PiArdHlwZWRlZiBzdHJ1Y3QgQXJtRmllbGRWYWx1ZVNldCB7DQo+PiArICAgIEFybUZp ZWxkUmFuZ2UgKnJhbmdlczsNCj4+ICsgICAgc2l6ZV90IG5fcmFuZ2VzOw0KPj4gK30gQXJtRmll bGRWYWx1ZVNldDsNCj4+ICsNCj4+ICsvKioNCj4+ICsgKiBhcm1fZmllbGRfZ2V0X3N1cHBvcnRl ZF92YWx1ZXM6DQo+PiArICogQGZpZWxkOiBUaGUgZmllbGQgdG8gZ2V0IHRoZSBzdXBwb3J0ZWQg dmFsdWVzIGZvcg0KPj4gKyAqIEBob3N0X2lzYXI6IFRoZSBob3N0IElTQVIgcmVnaXN0ZXJzDQo+ PiArICogQHZhbHVlX3NldDogVGhlIHNldCBvZiBzdXBwb3J0ZWQgdmFsdWVzIGZvciB0aGUgQGZp ZWxkDQo+PiArICoNCj4+ICsgKiBXaWxsIGJlIGFsbG9jYXRlZCBhbmQgZmlsbGVkIGluIHdpdGgg dGhlIHN1cHBvcnRlZCB2YWx1ZXMgZm9yIHRoZSBAZmllbGQNCj4+ICsgKiBiYXNlZCBvbiB0aGUg aG9zdF9pc2FyIGFuZCB3aGV0aGVyIHRoZSBmaWVsZCBpcyB3cml0YWJsZSBvciBub3QuDQo+PiAr ICogVGhlIGNhbGxlciBtdXN0IGZyZWUgdGhlIHZhbHVlX3NldC4NCj4+ICsgKi8NCj4+ICt2b2lk IGFybV9maWVsZF9nZXRfc3VwcG9ydGVkX3ZhbHVlcyhjb25zdCBBUk02NFN5c1JlZ0ZpZWxkICpm aWVsZCwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBUk1J U0FSZWdpc3RlcnMgKmhvc3RfaXNhciwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBcm1GaWVsZFZhbHVlU2V0ICoqdmFsdWVfc2V0KTsNCj4+IA0KPj4gLyoqDQo+PiAg KiBrdm1fYXJtX3N0ZWFsX3RpbWVfZmluYWxpemU6DQo+IFRoYW5rcw0KPiANCj4gRXJpYw0KDQoN Cg==