Re: Assertion ¡®state() & Thread_vcpu_user' in kernel vgic interrupt processing
Adam Lackorzynski <[email protected]> Tue, 14 Oct 2025 22:41:15 +0200
| Newsgroups | gmane.comp.micro-kernel.l4.devel |
|---|---|
| Message-ID | <[email protected]> |
SGkgU3RlcGhlbiwNCg0Kd2hpbGUgd2UgZG8gbm90IGhhdmUgdGhpcyBwYXJ0aWN1bGFyIFJvY2tj aGlwIFNvQyByaWdodCBub3csIHdlIGhhdmUgQTc2DQorIEE1NSBjb3Jlcy4gVGhhbmtzIQ0KDQoN CkJSLA0KQWRhbQ0KDQpPbiBNb24gT2N0IDEzLCAyMDI1IGF0IDEwOjI4OjE0ICswODAwLCB5eTE4 NTEzNjc2MzY2IHdyb3RlOg0KPiBIaSBBZGFtLA0KPiANCj4gV2XigJlyZSB1c2luZyB0aGUgUmFk eGEgU2lSaWRlciBTMSBkZXZlbG9wbWVudCBib2FyZCwgd2hpY2ggaXMgYmFzZWQgb24gdGhlIFJv Y2tjaGlwIFJLMzU4OCBTb0MuDQo+IFlvdSBjYW4gZmluZCBtb3JlIGRldGFpbHMgaGVyZTogaHR0 cHM6Ly9hcmFjZS50ZWNoL3Byb2R1Y3RzL3JhZHhhLXNpcmlkZXItczEuDQo+IFRoZSBDUFUgY29u c2lzdHMgb2YgNCBDb3J0ZXgtQTc2IGNvcmVzIGFuZCAyIENvcnRleC1BNTUgY29yZXMuDQo+IA0K PiBCZXN0LA0KPiBTdGVwaGVuLnlhbmcNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiBBdCAyMDI1LTEw LTA2IDA2OjAwOjQ0LCAiQWRhbSBMYWNrb3J6eW5za2kiIDxhZGFtQGw0cmUub3JnPiB3cm90ZToN Cj4gPkhpIFN0ZXBoZW4sDQo+ID4NCj4gPkkgZG91YnQgdGhpcyBpcyBoYXJkd2FyZSwgaXQgc2Vs ZG9tbHkgaXMuIFdvdWxkIHlvdSBiZSBhYmxlIHRvIHNoYXJlDQo+ID53aGljaCBBcm0gY29yZSBp dCBpcyBpZiB5b3UgY2FuPw0KPiA+SSdsbCB0cnkgdG8gcmVwcm9kdWNlIGhlcmUsIHlvdXIgaW5k aWNhdGlvbiBvZiBpbmNyZWFzaW5nIHRoZSB0aW1lcg0KPiA+ZnJlcXVlbmN5IGlzIGEgZ29vZCBo aW50LiBBbmQga25vd2luZyB3aGljaCBjb3JlIG9yIGF0IGxlYXN0IGNhdGVnb3J5IG9mDQo+ID5j b3JlIGNhbiBiZSBoZWxwZnVsLg0KPiA+DQo+ID4NCj4gPkJSLCBBZGFtDQo+ID4NCj4gPk9uIFRo dSBPY3QgMDIsIDIwMjUgYXQgMTM6MDI6NTAgKzA4MDAsIHl5MTg1MTM2NzYzNjYgd3JvdGU6DQo+ ID4+IEhpIEFkYW0sDQo+ID4+IA0KPiA+PiANCj4gPj4gSSB0cnVseSBhcHByZWNpYXRlIHlvdXIg cmVwbHkuIA0KPiA+PiBJIGFjdHVhbGx5IGVuY291bnRlcmVkIHRoaXMgaXNzdWUgb24gcmVhbCBo YXJkd2FyZSByYXRoZXIgdGhhbiBRRU1VLiANCj4gPj4gTWF5IEkgYXNrIGlmIHRoaXMgcHJvYmxl bSBjb3VsZCBiZSByZWxhdGVkIHRvIHRoZSBoYXJkd2FyZSBpdHNlbGY/IEnigJltIG5vdCBxdWl0 ZSBzdXJlIEkgZnVsbHkgdW5kZXJzdGFuZC4NCj4gPj4gDQo+ID4+IA0KPiA+PiBCZXN0IHJlZ2Fy ZHMNCj4gPj4gU3RlcGhlbi55YW5nDQo+ID4+IA0KPiA+PiANCj4gPj4gDQo+ID4+IA0KPiA+PiAN Cj4gPj4gDQo+ID4+IA0KPiA+PiDlnKggMjAyNS0wOS0zMCAxNTo1MDoyMu+8jCJBZGFtIExhY2tv cnp5bnNraSIgPGFkYW1AbDRyZS5vcmc+IOWGmemBk++8mg0KPiA+PiA+SGkgU3RlcGhlbiwNCj4g Pj4gPg0KPiA+PiA+b2ssIHRoYW5rcywgdGhhdCdzIHRyaWNreSBpbmRlZWQuDQo+ID4+ID4NCj4g Pj4gPkluIGNhc2UgeW91IGFyZSBkb2luZyB0aGlzIHdpdGggUUVNVSwgY291bGQgeW91IHBsZWFz ZSBtYWtlIHN1cmUgeW91DQo+ID4+ID5oYXZlIHRoZSBmb2xsb3dpbmcgY2hhbmdlIGluIHlvdXIg UUVNVT86IGh0dHBzOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvcWVtdS1kZXZlbC8yMDI0 LTA5L21zZzAyMjA3Lmh0bWwNCj4gPj4gPg0KPiA+PiA+T3IgZG8geW91IHNlZSB0aGlzIG9uIGhh cmR3YXJlPw0KPiA+PiA+DQo+ID4+ID4NCj4gPj4gPlRoYW5rcywNCj4gPj4gPkFkYW0NCj4gPj4g Pg0KPiA+PiA+T24gVHVlIFNlcCAzMCwgMjAyNSBhdCAxMToxNDo1NyArMDgwMCwgeXkxODUxMzY3 NjM2NiB3cm90ZToNCj4gPj4gPj4gSGkgQWRhbSwNCj4gPj4gPj4gDQo+ID4+ID4+IA0KPiA+PiA+ PiBUaGFuayB5b3UgdmVyeSBtdWNoIGZvciB5b3VyIHJlcGx5IOKAlCBpdCByZWFsbHkgZ2F2ZSBt ZSBzb21lIGhvcGUuDQo+ID4+ID4+IA0KPiA+PiA+PiANCj4gPj4gPj4gVGhpcyBpc3N1ZSBpcyBp bmRlZWQgZGlmZmljdWx0IHRvIHJlcHJvZHVjZSByZWxpYWJseSwgd2hpY2ggaGFzIGJlZW4gb25l IG9mIHRoZSBtYWluIGNoYWxsZW5nZXMgZHVyaW5nIG15IGRlYnVnZ2luZy4NCj4gPj4gPj4gU28g ZmFyLCBJIGhhdmUgZm91bmQgdGhhdCBpbmNyZWFzaW5nIHRoZSB2dGltZXIgaW50ZXJydXB0IGZy ZXF1ZW5jeSwgd2hpbGUga2VlcGluZyB0aGUgdHJhZGl0aW9uYWwgaGFuZGxpbmcgbW9kZSAoaS5l Liwgd2l0aG91dCBkaXJlY3QgaW5qZWN0aW9uKSwNCj4gPj4gPj4gbWFrZXMgdGhlIHByb2JsZW0g c2lnbmlmaWNhbnRseSBlYXNpZXIgdG8gcmVwcm9kdWNlLiANCj4gPj4gPj4gDQo+ID4+ID4+IA0K PiA+PiA+PiBUaGUgcmVsZXZhbnQgY2hhbmdlcyBhcmUgYXMgZm9sbG93cy4gDQo+ID4+ID4+IDHj gIFJbiB0aGlzIHNldHVwLCB0aGUgdnRpbWVyIGlzIGFkanVzdGVkIGZyb20gcm91Z2hseSBvbmUg dHJpZ2dlciBwZXIgbWlsbGlzZWNvbmQgdG8gYXBwcm94aW1hdGVseSBvbmUgdHJpZ2dlciBwZXIg bWljcm9zZWNvbmQsIA0KPiA+PiA+PiBhbmQgdGhlIHN5c3RlbSByZW1haW5zIHN0YWJsZSBhbmQg ZnVuY3Rpb25hbDoNCj4gPj4gPj4gDQo+ID4+ID4+IA0KPiA+PiA+PiBkaWZmIC0tZ2l0IGEvc3Jj L2tlcm4vYXJtL3RpbWVyLWFybS1nZW5lcmljLmNwcCBiL3NyYy9rZXJuL2FybS90aW1lci1hcm0t Z2VuZXJpYy5jcHANCj4gPj4gPj4gaW5kZXggYTA0MGNmNDYuLmI0Y2JiY2ViIDEwMDY0NA0KPiA+ PiA+PiAtLS0gYS9zcmMva2Vybi9hcm0vdGltZXItYXJtLWdlbmVyaWMuY3BwDQo+ID4+ID4+ICsr KyBiL3NyYy9rZXJuL2FybS90aW1lci1hcm0tZ2VuZXJpYy5jcHANCj4gPj4gPj4gQEAgLTY0LDcg KzY0LDggQEAgdm9pZCBUaW1lcjo6aW5pdChDcHVfbnVtYmVyIGNwdSkNCj4gPj4gPj4gICAgaWYg KGNwdSA9PSBDcHVfbnVtYmVyOjpib290X2NwdSgpKQ0KPiA+PiA+PiAgICAgIHsNCj4gPj4gPj4g ICAgICAgIF9mcmVxMCA9IGZyZXF1ZW5jeSgpOw0KPiA+PiA+PiAtICAgICAgX2ludGVydmFsID0g VW5zaWduZWQ2NHtfZnJlcTB9ICogQ29uZmlnOjpTY2hlZHVsZXJfZ3JhbnVsYXJpdHkgLyAxMDAw MDAwOw0KPiA+PiA+PiArICAgICAgLy9faW50ZXJ2YWwgPSBVbnNpZ25lZDY0e19mcmVxMH0gKiBD b25maWc6OlNjaGVkdWxlcl9ncmFudWxhcml0eSAvIDEwMDAwMDA7DQo+ID4+ID4+ICsgICAgICBf aW50ZXJ2YWwgPSBVbnNpZ25lZDY0e19mcmVxMH0gKiBDb25maWc6OlNjaGVkdWxlcl9ncmFudWxh cml0eSAvIDEwMDAwMDAwMDA7DQo+ID4+ID4+ICAgICAgICBwcmludGYoIkFSTSBnZW5lcmljIHRp bWVyOiBmcmVxPSVsZCBpbnRlcnZhbD0lbGQgY250PSVsbGRcbiIsDQo+ID4+ID4+ICAgICAgICAg ICAgICAgX2ZyZXEwLCBfaW50ZXJ2YWwsIEd0aW1lcjo6Y291bnRlcigpKTsNCj4gPj4gPj4gICAg ICAgIGFzc2VydChfZnJlcTApOw0KPiA+PiA+PiANCj4gPj4gPj4gDQo+ID4+ID4+IDLjgIFJbiBh ZGRpdGlvbiwgSSBzZWxlY3RlZCB0aGUgbW9kZSB3aGVyZSBpbnRlcnJ1cHRzIGFyZSBub3QgZGly ZWN0bHkgaW5qZWN0ZWQ6DQo+ID4+ID4+IGRpZmYgLS1naXQgYS9zcmMvS2NvbmZpZyBiL3NyYy9L Y29uZmlnDQo+ID4+ID4+IGluZGV4IDQzOTFjOTk2Li41NWRlZWIxYyAxMDA2NDQNCj4gPj4gPj4g LS0tIGEvc3JjL0tjb25maWcNCj4gPj4gPj4gKysrIGIvc3JjL0tjb25maWcNCj4gPj4gPj4gQEAg LTM2Nyw3ICszNjcsNyBAQCBjb25maWcgSU9NTVUNCj4gPj4gPj4gIGNvbmZpZyBJUlFfRElSRUNU X0lOSkVDVA0KPiA+PiA+PiAgICAgICAgIGJvb2wgIlN1cHBvcnQgZGlyZWN0IGludGVycnVwdCBm b3J3YXJkaW5nIHRvIGd1ZXN0cyINCj4gPj4gPj4gICAgICAgICBkZXBlbmRzIG9uIENQVV9WSVJU ICYmIEhBU19JUlFfRElSRUNUX0lOSkVDVF9PUFRJT04NCj4gPj4gPj4gLSAgICAgICBkZWZhdWx0 IHkNCj4gPj4gPj4gKyAgICAgIGRlZmF1bHQgbg0KPiA+PiA+PiAgICAgICAgIGhlbHANCj4gPj4g Pj4gICAgICAgICAgIEFkZHMgc3VwcG9ydCBpbiB0aGUga2VybmVsIHRvIGFsbG93IHRoZSBWTU0g dG8gbGV0IEZpYXNjbyBkaXJlY3RseQ0KPiA+PiA+PiAgICAgICAgICAgZm9yd2FyZCBoYXJkd2Fy ZSBpbnRlcnJ1cHRzIHRvIGEgZ3Vlc3QuIFRoaXMgZW5hYmxlcyBqdXN0IHRoZQ0KPiA+PiA+PiAN Cj4gPj4gPj4gQXQgdGhlIG1vbWVudCwgdGhpcyBpcyB0aGUgb25seSB3YXkgSSBoYXZlIGZvdW5k IHRoYXQgY2FuIG5vdGljZWFibHkgaW5jcmVhc2UgdGhlIHJlcHJvZHVjdGlvbiByYXRlLg0KPiA+ PiA+PiBPbmNlIGFnYWluLCB0aGFuayB5b3UgZm9yIHlvdXIgdmFsdWFibGUgdGltZSBhbmQgZmVl ZGJhY2shDQo+ID4+ID4+IA0KPiA+PiA+PiBCZXN0IHJlZ2FyZHMsDQo+ID4+ID4+IFN0ZXBoZW4u eWFuZw0KPiA+PiA+PiANCj4gPj4gPj4gDQo+ID4+ID4+IA0KPiA+PiA+PiANCj4gPj4gPj4gQXQg MjAyNS0wOS0yOSAwMDoxMTo0MSwgIkFkYW0gTGFja29yenluc2tpIiA8YWRhbUBsNHJlLm9yZz4g d3JvdGU6DQo+ID4+ID4+ID5IaSwNCj4gPj4gPj4gPg0KPiA+PiA+PiA+T24gV2VkIFNlcCAxNywg MjAyNSBhdCAxMzo1Nzo0MyArMDgwMCwgeXkxODUxMzY3NjM2NiB3cm90ZToNCj4gPj4gPj4gPj4g V2hlbiBydW5uaW5nIGEgdmlydHVhbCBtYWNoaW5lLCBJIGVuY291bnRlciBhbiBhc3NlcnRpb24g ZmFpbHVyZSBhZnRlciB0aGUgVk0NCj4gPj4gPj4gPj4gaGFzIGJlZW4gdXAgZm9yIHNvbWUgdGlt ZS4gVGhlIGtlcm5lbCBjcmFzaGVzIGluIHNyYy9rZXJuL2FybS8NCj4gPj4gPj4gPj4gdGhyZWFk LWFybS1oeXAuY3BwLCBzcGVjaWZpY2FsbHkgaW4gdGhlIGZ1bmN0aW9uIHZjcHVfdmdpY191cGNh bGwodW5zaWduZWQNCj4gPj4gPj4gPj4gdmlycSk6DQo+ID4+ID4+ID4+IA0KPiA+PiA+PiA+PiB2 Y3B1X3ZnaWNfdXBjYWxsKHVuc2lnbmVkIHZpcnEpDQo+ID4+ID4+ID4+IHsNCj4gPj4gPj4gPj4g ICAgLi4uLi4uDQo+ID4+ID4+ID4+ICAgIGFzc2VydChzdGF0ZSgpICYgVGhyZWFkX3ZjcHVfdXNl cik7DQo+ID4+ID4+ID4+ICAgIC4uLi4uLg0KPiA+PiA+PiA+PiB9DQo+ID4+ID4+ID4+IA0KPiA+ PiA+PiA+PiBCYXNlZCBvbiBzb3VyY2UgY29kZSBpbnNwZWN0aW9uIGFuZCBwcmVsaW1pbmFyeSBk ZWJ1Z2dpbmcsIHRoZSBwcm9ibGVtIHNlZW1zIHRvDQo+ID4+ID4+ID4+IGJlIHJlbGF0ZWQgdG8g dGhlIG1hbmFnZW1lbnQgb2YgdGhlIFRocmVhZF92Y3B1X3VzZXIgc3RhdGUuDQo+ID4+ID4+ID4+ IA0KPiA+PiA+PiA+PiAgIDEgIFVuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzLCB0aGUgdmNwdV9y ZXN1bWUgcGF0aCAodHJhbnNpdGlvbmluZyBmcm9tIHRoZQ0KPiA+PiA+PiA+PiBrZXJuZWwgYmFj ayB0byB0aGUgZ3Vlc3QgT1MpIHVwZGF0ZXMgdGhlIHZDUFUgc3RhdGUgdG8gaW5jbHVkZQ0KPiA+ PiA+PiA+PiBUaHJlYWRfdmNwdV91c2VyLiBIb3dldmVyLCBpZiBhbiBpbnRlcnJ1cHQgaXMgZGVs aXZlcmVkIGR1cmluZyB0aGlzIHRyYW5zaXRpb24NCj4gPj4gPj4gPj4gd2hpbGUgdGhlIHJlY2Vp dmluZyBzaWRlIGlzIG5vdCB5ZXQgcmVhZHksIHRoZSB2Q1BVIGZyZXF1ZW50bHkgcmV0dXJuIHRv IHRoZQ0KPiA+PiA+PiA+PiBrZXJuZWwgKHZpYSB2Y3B1X3JldHVybl90b19rZXJuZWwpIGFuZCBz dWJzZXF1ZW50bHkgcHJvY2VzcyB0aGUgaW50ZXJydXB0DQo+ID4+ID4+ID4+IHRocm91Z2ggZ3Vl c3RfaXJxIGluIHZjcHVfZW50cmllcy4gSW4gdGhpcyBzaXR1YXRpb24sIHRoZSBleHBlY3RlZCB1 cGRhdGUgb2YNCj4gPj4gPj4gPj4gVGhyZWFkX3ZjcHVfdXNlciBtYXkgbm90IHlldCBoYXZlIHRh a2VuIHBsYWNlLCB3aGljaCBzZWVtcyByZXN1bHQgaW4gdGhlIGFzc2VydA0KPiA+PiA+PiA+PiBi ZWluZyB0cmlnZ2VyZWQgd2hlbiBhIFZHSUMgaW50ZXJydXB0IGlzIGludm9sdmVkLg0KPiA+PiA+ PiA+PiANCj4gPj4gPj4gPj4gICAyICBBIHNpbWlsYXIgY29uZGl0aW9uIHNlZW1zIHRvIG9jY3Vy IGluIHRoZSB2Y3B1X2FzeW5jX2lwYyBwYXRoLiBBdCB0aGUgZW5kDQo+ID4+ID4+ID4+IG9mIElQ QyBoYW5kbGluZywgdGhpcyBmdW5jdGlvbiBleHBsaWNpdGx5IGNsZWFycyB0aGUgVGhyZWFkX3Zj cHVfdXNlciBmbGFnLiBJZg0KPiA+PiA+PiA+PiBhIFZHSUMgaW50ZXJydXB0IGlzIGRlbGl2ZXJl ZCBkdXJpbmcgdGhpcyBwaGFzZSwgdGhlIGFic2VuY2Ugb2YgdGhlIGV4cGVjdGVkDQo+ID4+ID4+ ID4+IFRocmVhZF92Y3B1X3VzZXIgc3RhdGUgc2VlbXMgdG8gbGVhZCB0byB0aGUgc2FtZSBhc3Nl cnRpb24gZmFpbHVyZS4NCj4gPj4gPj4gPj4gDQo+ID4+ID4+ID4+IEkgd291bGQgbGlrZSB0byBj b25maXJtIGlmIHRoZSB0d28gcG9pbnRzIGFib3ZlIGFyZSBjb3JyZWN0LCBhbmQgd2hhdCBzdGVw cyBJDQo+ID4+ID4+ID4+IHNob3VsZCB0YWtlIG5leHQgdG8gZnVydGhlciBkZWJ1ZyB0aGlzIGlz c3VlLg0KPiA+PiA+PiA+DQo+ID4+ID4+ID5UaGFua3MgZm9yIHJlcG9yZGluZy4gQXQgbGVhc3Qg dGhlIGRlc2NyaXB0aW9uIHNvdW5kcyByZWFzb25hYmxlIHRvIG1lLg0KPiA+PiA+PiA+DQo+ID4+ ID4+ID5EbyB5b3UgaGF2ZSBhIGdvb2Qgd2F5IG9mIHJlbGlhYmx5IHJlcHJvZHVjaW5nIHRoaXMg c2l0dWF0aW9uPw0KPiA+PiA+PiA+DQo+ID4+ID4+ID4+IEluIGFkZGl0aW9uLCBJIGhhdmUgc29t ZSBhc3N1bXB0aW9ucyBJIHdvdWxkIGxpa2UgdG8gY29uZmlybToNCj4gPj4gPj4gPj4gDQo+ID4+ ID4+ID4+IEZpcnN0LCBmb3IgSVBDIGJldHdlZW4gbm9uLXZjcHUgdGhyZWFkcywgdGhlIEw0IG1p Y3Jva2VybmVsIGhhbmRsZXMgbWVzc2FnZQ0KPiA+PiA+PiA+PiBkZWxpdmVyeSBhbmQgc2NoZWR1 bGluZyAod2FrZS9zY2hlZHVsZSkgZGlyZWN0bHksIHdpdGhvdXQgcmVxdWlyaW5nIGFueQ0KPiA+ PiA+PiA+PiBmb3J3YXJkaW5nIHRocm91Z2ggdXZtbS4gU2ltaWxhcmx5LCBpbnRlcnJ1cHRzIGJv dW5kIHZpYSB0aGUgaW50ZXJydXB0DQo+ID4+ID4+ID4+IGNvbnRyb2xsZXIgKElDVSkgdG8gYSBu b24tdmNwdSB0aHJlYWQgb3IgaGFuZGxlciBhcmUgYWxzbyBtYW5hZ2VkIGJ5IHRoZSBrZXJuZWwN Cj4gPj4gPj4gPj4gYW5kIHNjaGVkdWxlciwgYW5kIHRoZXJlZm9yZSBkbyBub3QgbmVjZXNzYXJp bHkgaW52b2x2ZSB1dm1tLg0KPiA+PiA+PiA+DQo+ID4+ID4+ID5JUENzIGJldHdlZW4gdGhyZWFk cyBhcmUgaGFuZGxlZCBieSB0aGUgbWljcm9rZXJuZWwuIHZjcHUtdGhyZWFkIHZzLg0KPiA+PiA+ PiA+bm9uLXZjcHUtdGhyZWFkIGlzIGp1c3QgbWFraW5nIHRoZSBkaWZmZXJlbmNlIHJlZ2FyZGlu ZyBob3cgaXQgaXMNCj4gPj4gPj4gPmRlbGl2ZXJlZCB0byB0aGUgdGhyZWFkLiBGb3IgYSBub24t dmNwdSB0aHJlYWQgdGhlIHJlY2VpdmVyIGhhcyB0byB3YWl0DQo+ID4+ID4+ID5pbiBJUEMgdG8g Z2V0IGl0LCBpbiB2Y3B1IG1vZGUgdGhlIElQQyBpcyByZWNlaXZlZCBieSBjYXVzaW5nIGEgdmNw dQ0KPiA+PiA+PiA+ZXZlbnQgYW5kIGJyaW5naW5nIHRoZSB2Y3B1IHRvIGl0cyBlbnRyeS4gVGhp cyBhbHNvIHdvcmtzIHdpdGhvdXQNCj4gPj4gPj4gPnZpcnR1YWxpemF0aW9uIChub3RlIHRoYXQg dmNwdXMgYWxzbyB3b3JrIHdpdGhvdXQgaHctdmlydHVhbGl6YXRpb24pLg0KPiA+PiA+PiA+Rm9y IGludGVycnVwdHMgaXQgaXMgdGhlIHNhbWUuIEZvciBub24tdmNwdSB0aHJlYWRzIHRoZXkgaGF2 ZSB0byBibG9jaw0KPiA+PiA+PiA+aW4gSVBDIHRvIGdldCBhbiBpbnRlcnJ1cHQsIG9yIGZvciB2 Y3B1IHRocmVhZHMsIHRoZXkgd2lsbCBiZSBicm91Z2h0IHRvDQo+ID4+ID4+ID50aGVpciBlbnRy eS4NCj4gPj4gPj4gPg0KPiA+PiA+PiA+PiBTZWNvbmQsIHBhc3N0aHJvdWdoIGludGVycnVwdHMs IHdoZW4gbm90IGRlbGl2ZXJlZCBpbiBkaXJlY3QtaW5qZWN0aW9uIG1vZGUsDQo+ID4+ID4+ID4+ IGFyZSByb3V0ZWQgdG8gdXZtbSBmb3IgaGFuZGxpbmcgaWYgdGhleSBhcmUgYm91bmQgdG8gYSB2 Q1BVLiBMaWtld2lzZSwgc2VydmljZXMNCj4gPj4gPj4gPj4gcHJvdmlkZWQgYnkgdXZtbSAoc3Vj aCBhcyB2aXJxKSBhcmUgYWxzbyBib3VuZCB0byBhIHZDUFUgYW5kIHRoZXJlZm9yZSByZXF1aXJl DQo+ID4+ID4+ID4+IGZvcndhcmRpbmcgdGhyb3VnaCB1dm1tLg0KPiA+PiA+PiA+DQo+ID4+ID4+ ID5ZZXMuIERpcmVjdCBpbmplY3Rpb24gd2lsbCBvbmx5IGhhcHBlbiB3aGVuIHRoZSB2Y3B1IGlz IHJ1bm5pbmcuDQo+ID4+ID4+ID4NCj4gPj4gPj4gPj4gVGhlcmUgc2VlbXMgdG8gaGF2ZSBiZWVu IGEgc2ltaWxhciBxdWVzdGlvbiBpbiB0aGUgcGFzdCwgYnV0IGl0IGRvZXMgbm90IHNlZW0NCj4g Pj4gPj4gPj4gdG8gaGF2ZSBiZWVuIHJlc29sdmVkLg0KPiA+PiA+PiA+PiANCj4gPj4gPj4gPj4g UmU6IEFzc2VydGlvbiBmYWlsdXJlIGVycm9yIGluIGtlcm5lbCB2Z2ljIGludGVycnVwdCBwcm9j ZXNzaW5nIC0gbDQtaGFja2VycyAtDQo+ID4+ID4+ID4+IE9TIFNpdGUNCj4gPj4gPj4gPj4gDQo+ ID4+ID4+ID4+IEkgd29uZGVyIGlmIG15IHF1ZXN0aW9ucyBhcmUgcmVsYXRlZCB0byB0aGF0IHBv c3QsIGFuZCBpZiBhbnkgc29sdXRpb25zIGV4aXN0Lg0KPiA+PiA+PiA+DQo+ID4+ID4+ID5UaGFu a3MsIHdlIG5lZWQgdG8gd29yayBvbiBpdC4gUmVwcm9kdWNpbmcgdGhpcyBzaXR1YXRpb24gb24g b3VyIHNpZGUNCj4gPj4gPj4gPndvdWxkIGJlIHZlcnkgdmFsdWFibGUuDQo+ID4+ID4+ID4NCj4g Pj4gPj4gPg0KPiA+PiA+PiA+VGhhbmtzLCBBZGFtDQo+ID4+ID5fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+PiA+bDQtaGFja2VycyBtYWlsaW5nIGxp c3QgLS0gbDQtaGFja2Vyc0Bvcy5pbmYudHUtZHJlc2Rlbi5kZQ0KPiA+PiA+VG8gdW5zdWJzY3Jp YmUgc2VuZCBhbiBlbWFpbCB0byBsNC1oYWNrZXJzLWxlYXZlQG9zLmluZi50dS1kcmVzZGVuLmRl DQo+ID5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+ bDQtaGFja2VycyBtYWlsaW5nIGxpc3QgLS0gbDQtaGFja2Vyc0Bvcy5pbmYudHUtZHJlc2Rlbi5k ZQ0KPiA+VG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBsNC1oYWNrZXJzLWxlYXZlQG9z LmluZi50dS1kcmVzZGVuLmRlDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpsNC1oYWNrZXJzIG1haWxpbmcgbGlzdCAtLSBsNC1oYWNrZXJzQG9zLmluZi50 dS1kcmVzZGVuLmRlClRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gbDQtaGFja2Vycy1s ZWF2ZUBvcy5pbmYudHUtZHJlc2Rlbi5kZQo=