RE: [PATCH v3] printk: fix zero-valued printk timestamps in early boot
"Bird, Tim" <[email protected]> Fri, 20 Mar 2026 18:15:52 +0000
| Newsgroups | org.kernel.vger.linux-embedded,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <MW5PR13MB5632F255ED98B84B1F7ED179FD4CA@MW5PR13MB5632.namprd13.prod.outlook.com> |
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUGV0ciBNbGFkZWsgPHBt bGFkZWtAc3VzZS5jb20+DQo+IEZpbmFsbHkgYWRkZWQgdGltZWtlZXBpbmcgbWFpbnRhaW5lcnMg YW5kIEpvaG4gaW50byBDYy4NCj4gV2Ugc2hvdWxkIGhhdmUgYWRkZWQgdGltZSBzaW5jZSB2MS4N Cg0KVGhhbmtzIGZvciBjYXRjaGluZyB0aGF0LiAgSSdsbCB0cnkgdG8gcmVtZW1iZXIgdG8gYWRk IHRob3NlIChhbmQgdXNlIEpvaG4gT2duZXNzJyBjb3JyZWN0DQplbWFpbCkgZ29pbmcgZm9yd2Fy ZC4NCg0KPiANCj4gQW55d2F5LCB5b3UgbWlnaHQgc2VlIHRoZSBlbnRpcmUgaGlzdG9yeSBhdA0K PiBodHRwczovL2xvcmUua2VybmVsLm9yZy9hbGwvMzliMDllZGItODk5OC00ZWJkLWE1NjQtN2Q1 OTQ0MzRhOTgxQGJpcmQub3JnLw0KPiANCj4gDQo+IE9uIEZyaSAyMDI2LTAzLTEzIDA0OjUyOjQw LCBCaXJkLCBUaW0gd3JvdGU6DQo+ID4gSGV5IE1pY2hlYWwsDQo+ID4NCj4gPiBUaGlzIHJlcG9y dCBpcyB2ZXJ5IGludGVyZXN0aW5nLg0KPiA+DQo+ID4gVGhhbmtzIHZlcnkgbXVjaCBmb3IgdHJ5 aW5nIGl0IG91dCENCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ IEZyb206IE1pY2hhZWwgS2VsbGV5IDxtaGtsaW51eEBvdXRsb29rLmNvbT4NCj4gPiA+IFNlbnQ6 IFdlZG5lc2RheSwgTWFyY2ggMTEsIDIwMjYgOTo0NyBBTQ0KPiA+ID4gRnJvbTogVGltIEJpcmQg PHRpbS5iaXJkQHNvbnkuY29tPiBTZW50OiBUdWVzZGF5LCBGZWJydWFyeSAxMCwgMjAyNiAzOjQ4 IFBNDQo+ID4gPiA+DQo+ID4gPiA+IER1cmluZyBlYXJseSBib290LCBwcmludGsgdGltZXN0YW1w cyBhcmUgcmVwb3J0ZWQgYXMgemVybyBiZWZvcmUNCj4gPiA+ID4ga2VybmVsIHRpbWVrZWVwaW5n IHN0YXJ0cyAoZS5nLiBiZWZvcmUgdGltZV9pbml0KCkpLiAgVGhpcw0KPiA+ID4gPiBoaW5kZXJz IGJvb3QtdGltZSBvcHRpbWl6YXRpb24gZWZmb3J0cy4gIFRoaXMgcGVyaW9kIGlzIGFib3V0IDQw MA0KPiA+ID4gPiBtaWxsaXNlY29uZHMgZm9yIG1hbnkgY3VycmVudCBkZXNrdG9wIGFuZCBlbWJl ZGRlZCBtYWNoaW5lcw0KPiA+ID4gPiBydW5uaW5nIExpbnV4Lg0KPiA+ID4gPg0KPiA+ID4gPiBB ZGQgc3VwcG9ydCB0byBzYXZlIGN5Y2xlcyBkdXJpbmcgZWFybHkgYm9vdCwgYW5kIG91dHB1dCBj b3JyZWN0DQo+ID4gPiA+IHRpbWVzdGFtcCB2YWx1ZXMgYWZ0ZXIgdGltZWtlZXBpbmcgaXMgaW5p dGlhbGl6ZWQuICBnZXRfY3ljbGVzKCkNCj4gPiA+ID4gaXMgb3BlcmF0aW9uYWwgb24gYXJtNjQg YW5kIHg4Nl82NCBmcm9tIGtlcm5lbCBzdGFydC4gIEFkZCBjb2RlDQo+ID4gPiA+IGFuZCB2YXJp YWJsZXMgdG8gc2F2ZSBjYWxpYnJhdGlvbiB2YWx1ZXMgdXNlZCB0byBsYXRlciBjb252ZXJ0DQo+ ID4gPiA+IGN5Y2xlIGNvdW50cyB0byB0aW1lIHZhbHVlcyBpbiB0aGUgZWFybHkgcHJpbnRrcy4g IEFkZCBhIGNvbmZpZw0KPiA+ID4gPiB0byBjb250cm9sIHRoZSBmZWF0dXJlLg0KPiA+ID4gPg0K PiA+ID4gPiBUaGlzIHlpZWxkcyBub24temVybyB0aW1lc3RhbXBzIGZvciBwcmludGtzIGZyb20g dGhlIHZlcnkgc3RhcnQNCj4gPiA+ID4gb2Yga2VybmVsIGV4ZWN1dGlvbi4gIFRoZSB0aW1lc3Rh bXBzIGFyZSByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YNCj4gPiA+ID4gdGhlIGFyY2hpdGVjdHVy ZS1zcGVjaWZpZWQgY291bnRlciB1c2VkIGluIGdldF9jeWNsZXMNCj4gPiA+ID4gKGUuZy4gdGhl IFRTQyBvbiB4ODZfNjQgYW5kIGNudHZjdF9lbDAgb24gYXJtNjQpLg0KPiA+ID4gPg0KPiA+ID4g PiBBbGwgdGltZXN0YW1wcyByZWZsZWN0IHRpbWUgZnJvbSBwcm9jZXNzb3IgcG93ZXItb24gaW5z dGVhZCBvZg0KPiA+ID4gPiB0aW1lIGZyb20gdGhlIGtlcm5lbCdzIHRpbWVrZWVwaW5nIGluaXRp YWxpemF0aW9uLg0KPiA+ID4NCj4gPiA+IEkgdHJpZWQgdGhpcyBwYXRjaCBpbiBsaW51eC1uZXh0 MjAyNjAzMDIga2VybmVsIHJ1bm5pbmcgYXMgYSBndWVzdCBWTQ0KPiA+ID4gb24gYSBIeXBlci1W IGhvc3QuIFR3byB0aGluZ3M6DQo+ID4gPg0KPiA+ID4gMSkgSW4gdGhlIGRtZXNnIG91dHB1dCwg SSdtIHNlZWluZyBhIHBsYWNlIHdoZXJlIHRoZSB0aW1lc3RhbXBzIGJyaWVmbHkgZ28NCj4gPiA+ IGJhY2t3YXJkcyAtLSBpLmUuLCB0aGV5IGFyZSBub3QgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5n LiBIZXJlJ3MgYSBzbmlwcGV0LA0KPiA+ID4gd2hlcmUgdGhlcmUncyBhIHNtYWxsZXIgdGltZXN0 YW1wIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSB0c2MgaXMgZGV0ZWN0ZWQ6DQo+ID4gPg0KPiA+ID4g WyAgIDI3Ljk5NDg5MV0gU01CSU9TIDMuMS4wIHByZXNlbnQuDQo+ID4gPiBbICAgMjcuOTk0ODkz XSBETUk6IE1pY3Jvc29mdCBDb3Jwb3JhdGlvbiBWaXJ0dWFsIE1hY2hpbmUvVmlydHVhbCBNYWNo aW5lLCBCSU9TIEh5cGVyLVYgVUVGSSBSZWxlYXNlIHY0LjEgMDkvMjUvMjAyNQ0KPiA+ID4gWyAg IDI3Ljk5NDg5OF0gRE1JOiBNZW1vcnkgc2xvdHMgcG9wdWxhdGVkOiAyLzINCj4gPiA+IFsgICAy Ny45OTUyMDJdIEh5cGVydmlzb3IgZGV0ZWN0ZWQ6IE1pY3Jvc29mdCBIeXBlci1WDQo+ID4gPiBb ICAgMjcuOTk1MjA1XSBIeXBlci1WOiBwcml2aWxlZ2UgZmxhZ3MgbG93IDB4YWU3ZiwgaGlnaCAw eDNiODAzMCwgZXh0IDB4NjIsIGhpbnRzIDB4YTBlMjQsIG1pc2MgMHhlMGJlZDdiMg0KPiA+ID4g WyAgIDI3Ljk5NTIwOF0gSHlwZXItVjogTmVzdGVkIGZlYXR1cmVzOiAweDANCj4gPiA+IFsgICAy Ny45OTUyMDldIEh5cGVyLVY6IExBUElDIFRpbWVyIEZyZXF1ZW5jeTogMHhjMzUwMA0KPiA+ID4g WyAgIDI3Ljk5NTIxMF0gSHlwZXItVjogVXNpbmcgaHlwZXJjYWxsIGZvciByZW1vdGUgVExCIGZs dXNoDQo+ID4gPiBbICAgMjcuOTk1MjE2XSBjbG9ja3NvdXJjZTogaHlwZXJ2X2Nsb2Nrc291cmNl X3RzY19wYWdlOiBtYXNrOiAweGZmZmZmZmZmZmZmZmZmZmYgbWF4X2N5Y2xlczogMHgyNGU2YTE3 MTAsIG1heF9pZGxlX25zOiA0NDA3OTUyMDIxMjANCj4gbnMNCj4gPiA+IFsgICAyNy45OTUyMThd IGNsb2Nrc291cmNlOiBoeXBlcnZfY2xvY2tzb3VyY2VfbXNyOiBtYXNrOiAweGZmZmZmZmZmZmZm ZmZmZmYgbWF4X2N5Y2xlczogMHgyNGU2YTE3MTAsIG1heF9pZGxlX25zOiA0NDA3OTUyMDIxMjAg bnMNCj4gPiA+IFsgICAyNy45OTUyMjBdIHRzYzogRGV0ZWN0ZWQgMjkxOC40MDEgTUh6IHByb2Nl c3Nvcg0KPiA+DQo+ID4gSSB3b25kZXIgaWYgdGhlIHRzYyBpcyBnZXR0aW5nIGZpZGRsZWQgd2l0 aCBvciB2aXJ0dWFsaXplZCBzb21ld2hlcmUgaW4gaGVyZSwgYXMgcGFydCBvZiBjbG9ja3NvdXJj ZSBpbml0aWFsaXphdGlvbi4NCj4gPiBJIGJlbGlldmUgZWFjaCBjbG9ja3NvdXJjZSBpbiB0aGUg a2VybmVsIG1haW50YWlucyBpdCdzIG93biBpbnRlcm5hbCBvZmZzZXQsIGFuZCBtYXliZSB0aGUg b2Zmc2V0IHRoYXQgaXMNCj4gPiBiZWluZyB1c2VkIGVuZHMgdXAgYmVpbmcgc2xpZ2h0bHkgZGlm ZmVyZW50IGZyb20gdGhlIGN5Y2xlLWNvdW50ZXIgb2Zmc2V0IHRoYXQgdGhlIGVhcmx5X3RpbWVz IGZlYXR1cmUgdXNlcy4NCj4gPiBJJ20ganVzdCB0aHJvd2luZyBvdXQgZ3Vlc3Nlcy4gIEl0J3Mg YWJvdXQgYSA0bXMgZGVsdGEsIHdoaWNoIGlzIHByZXR0eSBiaWcuDQo+ID4NCj4gPiA+IFsgICAy Ny45OTEwNjBdIGU4MjA6IHVwZGF0ZSBbbWVtIDB4MDAwMDAwMDAtMHgwMDAwMGZmZl0gU3lzdGVt IFJBTSA9PT4gZGV2aWNlIHJlc2VydmVkDQo+ID4gPiBbICAgMjcuOTkxMDYyXSBlODIwOiByZW1v dmUgW21lbSAweDAwMGEwMDAwLTB4MDAwZmZmZmZdIFN5c3RlbSBSQU0NCj4gPiA+IFsgICAyNy45 OTEwNjRdIGxhc3RfcGZuID0gMHgyMTAwMDAgbWF4X2FyY2hfcGZuID0gMHg0MDAwMDAwMDANCj4g PiA+IFsgICAyNy45OTEwNjVdIHg4Ni9QQVQ6IFBBVCBzdXBwb3J0IGRpc2FibGVkIGJlY2F1c2Ug Q09ORklHX1g4Nl9QQVQgaXMgZGlzYWJsZWQgaW4gdGhlIGtlcm5lbC4NCj4gPiA+IFsgICAyNy45 OTEwNjZdIHg4Ni9QQVQ6IENvbmZpZ3VyYXRpb24gWzAtN106IFdCICBXVCAgVUMtIFVDICBXQiAg V1QgIFVDLSBVQw0KPiANCj4gSSB3b25kZXIgaG93IHRoZSBjYWxpYnJhdGlvbiBvZiB0aGUgY3lj bGVzIGlzIHByZWNpc2UuIEkgd29uZGVyIGlmDQo+IHRoZSBwcm9ibGVtIG1pZ2h0IGJlIHRoYXQg Y3ljbGVzIHdlcmUgZmFzdGVyIHJpZ2h0IGFmdGVyIGJvb3QgdGhhbg0KPiBsYXRlciBkdXJpbmcg dGhlIGNhbGlicmF0aW9uLg0KDQpPbiB4ODZfNjQgVFNDIGhhcyBiZWVuIHN0YWJsZSBvbiBhbGwg cHJvY2Vzc29ycyBwcm9kdWNlZCBzaW5jZSBhYm91dA0KMjAwOCwgd2hlbiBpbnZhcmlhbnQgVFND IHdlcmUgaW50cm9kdWNlZC4gIFRoZXkgc2hvdWxkbid0IGJlIGNoYW5naW5nDQpzcGVlZHMgb3Ig ZG9pbmcgd2VpcmQgdGhpbmdzLg0KDQo+IA0KPiBJIGFkZGVkIHRoZSBmb2xsb3dpbmcgZGVidWcg b3V0cHV0IG9uIHRvcCBvZiB0aGlzIHBhdGNoOg0KPiANCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgvZWFybHlfdGltZXMuaCBiL2luY2x1ZGUvbGludXgvZWFybHlfdGltZXMuaA0KPiBpbmRl eCAwNTM4OGRjYjg1NzMuLmNkYjQ2NzM0NWJjYyAxMDA2NDQNCj4gLS0tIGEvaW5jbHVkZS9saW51 eC9lYXJseV90aW1lcy5oDQo+ICsrKyBiL2luY2x1ZGUvbGludXgvZWFybHlfdGltZXMuaA0KPiBA QCAtMjAsNiArMjAsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZWFybHlfdGltZXNfc3RhcnRfY2Fs aWJyYXRpb24odm9pZCkNCj4gIHsNCj4gIAlzdGFydF9jeWNsZXMgPSBnZXRfY3ljbGVzKCk7DQo+ ICAJc3RhcnRfbnMgPSBsb2NhbF9jbG9jaygpOw0KPiArCXByX2luZm8oIkVhcmx5IHByaW50ayB0 aW1lczogc3RhcnRlZCBjYWxsaWJyYXRpb246ICVsbHUgbnNcbiIsIHN0YXJ0X25zKTsNCj4gIH0N Cj4gDQo+ICBzdGF0aWMgaW5saW5lIHZvaWQgZWFybHlfdGltZXNfZmluaXNoX2NhbGlicmF0aW9u KHZvaWQpDQo+IGRpZmYgLS1naXQgYS9rZXJuZWwvcHJpbnRrL3ByaW50ay5jIGIva2VybmVsL3By aW50ay9wcmludGsuYw0KPiBpbmRleCA3NzRmZmIxZmE1YWMuLjgzNmNiMDNhYWE2ZCAxMDA2NDQN Cj4gLS0tIGEva2VybmVsL3ByaW50ay9wcmludGsuYw0KPiArKysgYi9rZXJuZWwvcHJpbnRrL3By aW50ay5jDQo+IEBAIC0yMzA4LDYgKzIzMDgsOCBAQCBpbnQgdnByaW50a19zdG9yZShpbnQgZmFj aWxpdHksIGludCBsZXZlbCwNCj4gIAl0c19uc2VjID0gbG9jYWxfY2xvY2soKTsNCj4gIAlpZiAo IXRzX25zZWMpDQo+ICAJCXRzX25zZWMgPSBlYXJseV9jeWNsZXMoKTsNCj4gKwllbHNlDQo+ICsJ CXByX2luZm9fb25jZSgibG9jYWxfY2xvY2soKSByZXR1cm5lZCBub24temVybyB0aW1lc3RhbXA6 ICVsbHUgbnNlY1xuIiwgdHNfbnNlYyk7DQo+IA0KPiAgCWNhbGxlcl9pZCA9IHByaW50a19jYWxs ZXJfaWQoKTsNCj4gDQo+IA0KPiBBbmQgaXQgcHJvZHVjZWQgaW4gbXkga3ZtOg0KPiANCj4gTGV0 J3Mgc2F5IHRoYXQgc3RhcnQgb2YgdGhlIGN5Y2xlIGNvdW50ZXIgaXMNCj4gDQo+IFN0YXJ0IG9m IHN0YWdlIEENCj4gDQo+IFsgICAgOC42ODQ0MzhdIExpbnV4IHZlcnNpb24gNy4wLjAtcmMyLWRl ZmF1bHQrIChwbWxhZGVrQHBhdGh3YXkpIChnY2MgKFNVU0UgTGludXgpIDE1LjIuMSAyMDI2MDIw MiwgR05VIGxkIChHTlUgQmludXRpbHM7IG9wZW5TVVNFDQo+IFR1bWJsZXdlZWQpIDIuNDUuMC4y MDI1MTEwMy0yKSAjNTcxIFNNUCBQUkVFTVBUX0RZTkFNSUMgRnJpIE1hciAxMyAxMDoyMzo1NCBD RVQgMjAyNg0KPiBbICAgIDguNjg0NDQyXSBDb21tYW5kIGxpbmU6IEJPT1RfSU1BR0U9L2Jvb3Qv dm1saW51ei03LjAuMC1yYzItZGVmYXVsdCsgcm9vdD0vZGV2L3ZkYTIgcmVzdW1lPS9kZXYvZGlz ay9ieS11dWlkLzM2OWM3NDUzLTNkMTYtDQo+IDQwOWQtODhiMi01ZGUwMjc4OTFhMTIgbWl0aWdh dGlvbnM9YXV0byBub3NwbGFzaCBlYXJseWNvbj11YXJ0ODI1MCxpbywweDNmOCwxMTUyMDAgY29u c29sZT10dHlTMCwxMTUyMDAgY29uc29sZT10dHkwIGlnbm9yZV9sb2dsZXZlbA0KPiBsb2dfYnVm X2xlbj0xTSBjcmFzaGtlcm5lbD01MTJNLGhpZ2ggY3Jhc2hrZXJuZWw9NzJNLGxvdw0KPiBbLi4u XQ0KPiBbICAgIDguNjk2NjMzXSBlYXJseWNvbjogdWFydDgyNTAgYXQgSS9PIHBvcnQgMHgzZjgg KG9wdGlvbnMgJzExNTIwMCcpDQo+IFsgICAgOC42OTY2MzldIHByaW50azogbGVnYWN5IGJvb3Rj b25zb2xlIFt1YXJ0ODI1MF0gZW5hYmxlZA0KPiBbICAgIDguNzMxMzAzXSBwcmludGs6IGRlYnVn OiBpZ25vcmluZyBsb2dsZXZlbCBzZXR0aW5nLg0KPiBbICAgIDguNzMyMzQ5XSBOWCAoRXhlY3V0 ZSBEaXNhYmxlKSBwcm90ZWN0aW9uOiBhY3RpdmUNCj4gWyAgICA4LjczMzQ0N10gQVBJQzogU3Rh dGljIGNhbGxzIGluaXRpYWxpemVkDQo+IFsgICAgOC43MzQ2NjddIFNNQklPUyAyLjggcHJlc2Vu dC4NCj4gWyAgICA4LjczNTM1OF0gRE1JOiBRRU1VIFN0YW5kYXJkIFBDIChRMzUgKyBJQ0g5LCAy MDA5KSwgQklPUyByZWwtMS4xNy4wLTItZzRmMjUzYjliLXByZWJ1aWx0LnFlbXUub3JnIDA0LzAx LzIwMTQNCj4gWyAgICA4LjczNzI4NV0gRE1JOiBNZW1vcnkgc2xvdHMgcG9wdWxhdGVkOiAxLzEN Cj4gWyAgICA4LjczODM4MF0gSHlwZXJ2aXNvciBkZXRlY3RlZDogS1ZNDQo+IFsgICAgOC43Mzkx NTFdIGxhc3RfcGZuID0gMHg3ZmZkYyBtYXhfYXJjaF9wZm4gPSAweDQwMDAwMDAwMA0KPiBbICAg IDguNzQwMjU0XSBrdm0tY2xvY2s6IFVzaW5nIG1zcnMgNGI1NjRkMDEgYW5kIDRiNTY0ZDAwDQo+ IFsgICAgOC43MzI5NzFdIHByaW50azogbG9jYWxfY2xvY2soKSByZXR1cm5lZCBub24temVybyB0 aW1lc3RhbXA6IDM0ODYgbnNlYw0KPiANCj4gRW5kIG9mIHN0YWdlIEENCj4gDQo+IFRoaXMgaXMg dGhlIHBvaW50IHdoZXJlIHByaW50aygpIHN0YXJ0ZWQgc3RvcmluZyB0aGUgdmFsdWVzIGZyb20N Cj4gbG9jYWxfY2xvY2soKSBpbnN0ZWFkIG9mIGN5Y2xlcy4NCg0KVGhhbmtzIGZvciBtZWFzdXJp bmcgdGhpcy4NCg0KVGhhdCdzIHN1c3BpY2lvdXNseSBjbG9zZSB0byB0aGUgYXBwcm94aW1hdGUg NG1zIGRpZmZlcmVudCB0aGF0IE1pY2hhZWwgc2F3Lg0KSXQgbWF5IGJlIHRoYXQgbXkgb2Zmc2V0 IGNhbGN1bGF0aW9uIGlzIG9mZi4gIE1pY2hhZWwgYWxzbyBtZW50aW9uZWQgdGhhdCB0aGUNCm1h dGggc2VlbWVkIHRvIGJlIG9mZiBvbiB0aGUgY2FsaWJyYXRpb24uICBJJ2xsIHJldmlldyB0aGUg bWF0aCBhbmQgcnVuIHNvbWUgdGVzdHMNCmFuZCBzZWUgaWYgSSBjYW4gZmlndXJlIG91dCB3aGVy ZSB0aGUgcHJvYmxlbSBpcy4gIEFub3RoZXIgb3B0aW9uDQppcyB0byBqdXN0IGVsaW1pbmF0ZSB0 aGUgZWFybHlfdHNfb2Zmc2V0LCBhbmQgbGl2ZSB3aXRoIHRoZSBkaXNjb250aW51aXR5IGdvaW5n DQpmcm9tIGN5Y2xlLWJhc2VkIHRpbWVzdGFtcHMgdG8gbG9jYWwtY2xvY2soKS1iYXNlZCB0aW1l c3RhbXBzLg0KDQo+IA0KPiBTdGFydCBvZiBzdGFnZSBCDQo+IA0KPiBbICAgIDguNzMyOTcxXSBr dm0tY2xvY2s6IHVzaW5nIHNjaGVkIG9mZnNldCBvZiAyNTIzNjcwMTQwODIyOTUgY3ljbGVzDQo+ IFsgICAgOC43MzU0NzFdIGNsb2Nrc291cmNlOiBrdm0tY2xvY2s6IG1hc2s6IDB4ZmZmZmZmZmZm ZmZmZmZmZiBtYXhfY3ljbGVzOiAweDFjZDQyZTRkZmZiLCBtYXhfaWRsZV9uczogODgxNTkwNTkx NDgzIG5zDQo+IFsgICAgOC43Mzg4ODBdIHRzYzogRGV0ZWN0ZWQgMzI5My43NzYgTUh6IHByb2Nl c3Nvcg0KPiBbICAgIDguNzQwNDc0XSBlODIwOiB1cGRhdGUgW21lbSAweDAwMDAwMDAwLTB4MDAw MDBmZmZdIFN5c3RlbSBSQU0gPT0+IGRldmljZSByZXNlcnZlZA0KPiBbLi4uXQ0KPiBbICAgIDgu OTMyNjcxXSByY3U6IHNyY3VfaW5pdDogU2V0dGluZyBzcmN1X3N0cnVjdCBzaXplcyBiYXNlZCBv biBjb250ZW50aW9uLg0KPiBbICAgIDguOTM0MDQ3XSBFYXJseSBwcmludGsgdGltZXM6IHN0YXJ0 ZWQgY2FsbGlicmF0aW9uOiAyMDEwNzk1MDcgbnMNCj4gDQo+IEVuZCBvZiBzdGFnZSBCDQo+IA0K PiBUaGlzIGlzIHdoZXJlIHdlIHN0YXJ0ZWQgY2FsaWJyYXRpb24gb2YgZWFybHkgY3ljbGVzLg0K PiANCj4gU3RhcnQgb2Ygc3RhZ2UgQw0KPiANCj4gWyAgICA4LjkzNTU3MV0gQ29uc29sZTogY29s b3VyIGR1bW15IGRldmljZSA4MHgyNQ0KPiBbLi4uXQ0KPiBbICAgIDkuMjg5NjczXSB0aGVybWFs X3N5czogUmVnaXN0ZXJlZCB0aGVybWFsIGdvdmVybm9yICdmYWlyX3NoYXJlJw0KPiBbICAgIDku MjkwMDc3XSB0aGVybWFsX3N5czogUmVnaXN0ZXJlZCB0aGVybWFsIGdvdmVybm9yICdiYW5nX2Jh bmcnDQo+IFsgICAgOS4yOTIyOTBdIHRoZXJtYWxfc3lzOiBSZWdpc3RlcmVkIHRoZXJtYWwgZ292 ZXJub3IgJ3N0ZXBfd2lzZScNCj4gWyAgICA5LjI5MzUzMF0gdGhlcm1hbF9zeXM6IFJlZ2lzdGVy ZWQgdGhlcm1hbCBnb3Zlcm5vciAndXNlcl9zcGFjZScNCj4gWyAgICA5LjI5NDg1Nl0gY3B1aWRs ZTogdXNpbmcgZ292ZXJub3IgbGFkZGVyDQo+IFsgICAgOS4yOTYzMDJdIGNwdWlkbGU6IHVzaW5n IGdvdmVybm9yIG1lbnUNCj4gDQo+IEhlcmUgdGhlIHRoZXJtYWwgZ292ZXJub3JzIGFyZSByZWdp c3RlcmVkLiBJIGd1ZXNzIHRoYXQgdGhleSBtaWdodA0KPiByZWR1Y2Ugc3BlZWQgb2Ygc29tZSBI Vy4NCj4gDQo+IFsuLi5dDQo+IFsgICAxMS45NzQxNDddIGNsazogRGlzYWJsaW5nIHVudXNlZCBj bG9ja3MNCj4gDQo+IFNvbWUgdW51c2VkIGNsb2NrcyBhcmUgZGlzYWJsZWQuIEkgd29uZGVyIGlm IHRoaXMgbWlnaHQgYWZmZWN0DQo+IGNvdW50aW5nIHRoZSBjeWNsZXMuDQo+IA0KPiBbICAgMTIu MzMwODUyXSBGcmVlaW5nIHVudXNlZCBrZXJuZWwgaW1hZ2UgKHJvZGF0YS9kYXRhIGdhcCkgbWVt b3J5OiAxNTAwSw0KPiBbICAgMTIuMzUxMTkxXSBFYXJseSBwcmludGsgdGltZXM6IG11bHQ9MTk2 MzQyNDUsIHNoaWZ0PTI2LCBvZmZzZXQ9ODczMjk2NzkyOSBucw0KPiANCj4gRW5kIG9mIHN0YWdl IEMNCj4gDQo+IEhlcmUgaXMgdGhlIGVuZCBvbiBjYWxpYnJhdGlvbi4NCj4gDQo+IE5vdywgaWYg dGhlIGZyZXF1ZW5jZSBvZiB0aGUgY3ljbGVzIHdhczoNCj4gDQo+ICAgICsgd2FzIGhpZ2hlciBp biB0aGUgc3RhZ2UgQSB3aGVuIG9ubHkgY3ljbGVzIHdlcmUgc3RvcmVkDQo+ICAgICsgd2FzIGxv d2VyIGluIHN0YWdlIEMgd2hlbiBpdCB3YXMgY2FsaWJyYXRlZCBhZ2FpbnN0IGxvY2FsX2Nsb2Nr KCkNCj4gDQo+IFRoZW4gaXQgbWlnaHQgcmVzdWx0IGluIGhpZ2hlciAoY2FsaWJyYXRlZCkgdGlt ZXN0YW1wcyBpbiBzdGFnZSBBDQo+IGFuZCBzdGVwIGJhY2sgaW4gc3RhZ2UgQi4NCj4gDQo+IE9y IHNvbWV0aGluZyBsaWtlIHRoaXMuIEl0IGlzIHBvc3NpYmxlIHRoYXQgZXZlbiBsb2NhbF9jbG9j aygpIGRvZXMNCj4gbm90IGhhdmUgYSBzdGFibGUgZnJlcXVlbmNlIGR1cmluZyB0aGUgZWFybHkg Ym9vdC4NCg0KTW9zdCB4ODZfNjQgcGxhdGZvcm1zIGFyZSB1c2luZyBUU0MgYXMgdGhlIGJhc2lz IGZvciBsb2NhbF9jbG9jaygpLCBhbmQgaXQgc2hvdWxkDQpiZSBzdGFibGUgKGhhdmUgaW52YXJp YW50IGZyZXF1ZW5jeSkgb24gYWxsIG1vZGVybiBwcm9jZXNzb3JzLg0KSW4gdGhlIHZhc3QgbWFq b3JpdHkgb2YgY2FzZXMsIEkgZXhwZWN0IHRoYXQgdGhlIGN5Y2xlcyBiZWluZyB1c2VkIGZvcg0K ZWFybHlfY3ljbGVzIGlzIGNvbWluZyBmcm9tIHRoZSBleGFjdCBzYW1lIGJhc2UgaGFyZHdhcmUg KHRoZSBUU0MpIGFzIGxvY2FsX2Nsb2NrKCksIHNvDQp0aGVyZSBzaG91bGRuJ3QgYmUgZGlzY3Jl cGFuY2llcy4NCihTb21lb25lIHdpdGggbW9yZSBjbG9jayBleHBlcnRpc2UgdGhhbiBtZSwgcGxl YXNlIGNvcnJlY3QgbWUgaWYgSSdtIHdyb25nLg0KRXZlbiBvbiB2aXJ0dWFsaXplZCBzeXN0ZW1z LCB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSBmb3IgdGhlIFRTQyBpbnN0cnVjdGlvbiBpcyBzdGls bCBqdXN0IHRoZSByZWFsDQpUU0MgaGFyZHdhcmUgb24gdGhlIHBoeXNpY2FsIHBsYXRmb3JtKS4N Cg0KSSBzdXNwZWN0IHRoYXQgSSBqdXN0IGdvdCB0aGUgbWF0aCB3cm9uZyBzb21ld2hlcmUsIG9y IHRoZXJlJ3MgYW4gdW5hY2NvdW50ZWQtZm9yIGRlbGF5DQpzb21ld2hlcmUgSSBkaWRuJ3QgdGFr ZSBpbnRvIGFjY291bnQgd2hlbiBjYWxjdWxhdGluZyB0aGUgb2Zmc2V0LiAgSSdsbCByZXZpZXcg aXQgYW5kIGxldA0KeW91IGtub3cgd2hhdCBJIGZpbmQuDQoNCj4gDQo+IElkZWE6IEEgc29sdXRp b24gbWlnaHQgYmUgdG8gc3RhcnQgY2FsaWJyYXRpb24gd2hlbiBwcmludGsoKQ0KPiAgICAgICBn ZXRzIGZpcnN0IG5vbi16ZXJvIHRpbWUgZnJvbSBsb2NhbF9jbG9jay4NCg0KQWN0dWFsbHksIEkg d2FudCB0aGUgdmFsdWVzIHVzZWQgaW4gdGhlIGNhbGlicmF0aW9uIHRvIGhhdmUgYWNjdW11bGF0 ZWQgZW5vdWdoDQp0aW1lIGZvciBzb21lIGFjY3VyYWN5IHRvIHNldCBpbi4gIElmIEkgZ3JhYiBs b2NhbF9jbG9jaygpIHRvbyBjbG9zZSB0byB6ZXJvLA0KdGhlbiB0aGUgbWF0aCBpcyBsZXNzIGFj Y3VyYXRlLg0KDQo+IA0KPiAgICAgICBTb21ldGhpbmcgbGlrZToNCj4gDQo+IGRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L2Vhcmx5X3RpbWVzLmggYi9pbmNsdWRlL2xpbnV4L2Vhcmx5X3RpbWVz LmgNCj4gaW5kZXggMDUzODhkY2I4NTczLi4wOWQyNzg5OTYxODQgMTAwNjQ0DQo+IC0tLSBhL2lu Y2x1ZGUvbGludXgvZWFybHlfdGltZXMuaA0KPiArKysgYi9pbmNsdWRlL2xpbnV4L2Vhcmx5X3Rp bWVzLmgNCj4gQEAgLTE2LDEwICsxNiwxMyBAQCBleHRlcm4gdTY0IHN0YXJ0X25zOw0KPiAgZXh0 ZXJuIHUzMiBlYXJseV9tdWx0LCBlYXJseV9zaGlmdDsNCj4gIGV4dGVybiB1NjQgZWFybHlfdHNf b2Zmc2V0Ow0KPiANCj4gLXN0YXRpYyBpbmxpbmUgdm9pZCBlYXJseV90aW1lc19zdGFydF9jYWxp YnJhdGlvbih2b2lkKQ0KPiArc3RhdGljIGlubGluZSB2b2lkIGVhcmx5X3RpbWVzX21heV9zdGFy dF9jYWxpYnJhdGlvbih1NjQgdHNfbnMpDQo+ICB7DQo+ICsJaWYgKHN0YXJ0X25zKQ0KPiArCQly ZXR1cm47DQo+ICsNCj4gKwlzdGFydF9ucyA9IHRzX25zOw0KPiAgCXN0YXJ0X2N5Y2xlcyA9IGdl dF9jeWNsZXMoKTsNCj4gLQlzdGFydF9ucyA9IGxvY2FsX2Nsb2NrKCk7DQo+ICB9DQo+IA0KPiAg c3RhdGljIGlubGluZSB2b2lkIGVhcmx5X3RpbWVzX2ZpbmlzaF9jYWxpYnJhdGlvbih2b2lkKQ0K PiBkaWZmIC0tZ2l0IGEvaW5pdC9tYWluLmMgYi9pbml0L21haW4uYw0KPiBpbmRleCAyNzgzNTI3 MGRmYjUuLmEzMzNiMGRhNjljZiAxMDA2NDQNCj4gLS0tIGEvaW5pdC9tYWluLmMNCj4gKysrIGIv aW5pdC9tYWluLmMNCj4gQEAgLTExMjMsOSArMTEyMyw2IEBAIHZvaWQgc3RhcnRfa2VybmVsKHZv aWQpDQo+ICAJdGltZWtlZXBpbmdfaW5pdCgpOw0KPiAgCXRpbWVfaW5pdCgpOw0KPiANCj4gLQkv KiBUaGlzIG11c3QgYmUgYWZ0ZXIgdGltZWtlZXBpbmcgaXMgaW5pdGlhbGl6ZWQgKi8NCj4gLQll YXJseV90aW1lc19zdGFydF9jYWxpYnJhdGlvbigpOw0KPiAtDQo+ICAJLyogVGhpcyBtdXN0IGJl IGFmdGVyIHRpbWVrZWVwaW5nIGlzIGluaXRpYWxpemVkICovDQo+ICAJcmFuZG9tX2luaXQoKTsN Cj4gDQo+IGRpZmYgLS1naXQgYS9rZXJuZWwvcHJpbnRrL3ByaW50ay5jIGIva2VybmVsL3ByaW50 ay9wcmludGsuYw0KPiBpbmRleCA3NzRmZmIxZmE1YWMuLjE5MzMwYjZiNGViMiAxMDA2NDQNCj4g LS0tIGEva2VybmVsL3ByaW50ay9wcmludGsuYw0KPiArKysgYi9rZXJuZWwvcHJpbnRrL3ByaW50 ay5jDQo+IEBAIC0yMzA2LDcgKzIzMDYsOSBAQCBpbnQgdnByaW50a19zdG9yZShpbnQgZmFjaWxp dHksIGludCBsZXZlbCwNCj4gIAkgKiB0aW1lc3RhbXAgd2l0aCByZXNwZWN0IHRvIHRoZSBjYWxs ZXIuDQo+ICAJICovDQo+ICAJdHNfbnNlYyA9IGxvY2FsX2Nsb2NrKCk7DQo+IC0JaWYgKCF0c19u c2VjKQ0KPiArCWlmICh0c19uc2VjKQ0KPiArCQllYXJseV90aW1lc19tYXlfc3RhcnRfY2FsaWJy YXRpb24odHNfbnNlYyk7DQo+ICsJZWxzZQ0KPiAgCQl0c19uc2VjID0gZWFybHlfY3ljbGVzKCk7 DQo+IA0KPiAgCWNhbGxlcl9pZCA9IHByaW50a19jYWxsZXJfaWQoKTsNCj4gDQo+IA0KPiA+ID4N Cj4gPiA+IDIpIEEgTGludXggVk0gcnVubmluZyBpbiB0aGUgQXp1cmUgY2xvdWQgaXMgYWxzbyBy dW5uaW5nIG9uIEh5cGVyLVYuIFN1Y2ggYQ0KPiA+ID4gVk0gdHlwaWNhbGx5IHVzZXMgY2xvdWQt aW5pdCB0byBzZXQgZXZlcnl0aGluZyB1cCBhdCBib290IHRpbWUsIGFuZCBjbG91ZC1pbml0DQo+ ID4gPiBpcyBvdXRwdXR0aW5nIGxpbmVzIHRvIHRoZSBzZXJpYWwgY29uc29sZSB3aXRoIGEgdGlt ZXN0YW1wIHRoYXQgbG9va3MgbGlrZSB0aGUNCj4gPiA+IHByaW50aygpIHRpbWVzdGFtcCwgYnV0 IGFwcGFyZW50bHkgaXMgbm90IGFkanVzdGVkIGZvciB0aGUgZWFybHkgdGltZXN0YW1waW5nDQo+ ID4gPiB0aGF0IHRoaXMgcGF0Y2ggYWRkcy4gQWdhaW4sIEkgaGF2ZW4ndCBkZWJ1Z2dlZCB3aGF0 J3MgZ29pbmcgb24gLS0gSSdtIG5vdA0KPiA+ID4gaW1tZWRpYXRlbHkgc3VyZSBvZiB0aGUgbWVj aGFuaXNtIHRoYXQgY2xvdWQtaW5pdCB1c2VzIHRvIGRvIG91dHB1dCB0byB0aGUNCj4gPiA+IHNl cmlhbCBjb25zb2xlLiBUaGUgdXNlIG9mIHRoZSBIeXBlci1WIHN5bnRoZXRpYyBjbG9jayBzb3Vy Y2UgbWlnaHQgdGhlIGNhdXNlDQo+ID4gPiBvZiB0aGUgcHJvYmxlbSBoZXJlIGFzIHdlbGwuIEhl cmUncyBhbiBvdXRwdXQgc25pcHBldCBmcm9tIHRoZSBzZXJpYWwgY29uc29sZToNCj4gPiA+DQo+ ID4gPiBbICAgMjAuMzMwNDE0XSBzeXN0ZW1kWzFdOiBDb25kaXRpb24gY2hlY2sgcmVzdWx0ZWQg aW4gT3BlblZTd2l0Y2ggY29uZmlndXJhdGlvbiBmb3IgY2xlYW51cCBiZWluZyBza2lwcGVkLg0K PiA+ID4gWyAgIDIwLjMzMjkxMV0gc3lzdGVtZFsxXTogQ29uZGl0aW9uIGNoZWNrIHJlc3VsdGVk IGluIFNldCBVcCBBZGRpdGlvbmFsIEJpbmFyeSBGb3JtYXRzIGJlaW5nIHNraXBwZWQuDQo+ID4g PiBbICAgMjAuMzMzMjU3XSBwc3RvcmU6IFJlZ2lzdGVyZWQgZWZpX3BzdG9yZSBhcyBwZXJzaXN0 ZW50IHN0b3JlIGJhY2tlbmQNCj4gPiA+IFsgICAyMC4zMzQzNjBdIHN5c3RlbWRbMV06IENvbmRp dGlvbiBjaGVjayByZXN1bHRlZCBpbiBGaWxlIFN5c3RlbSBDaGVjayBvbiBSb290IERldmljZSBi ZWluZyBza2lwcGVkLg0KPiA+ID4gWyAgIDIwLjMzODMxOV0gc3lzdGVtZFsxXTogU3RhcnRpbmcg TG9hZCBLZXJuZWwgTW9kdWxlcy4uLg0KPiA+ID4gWyAgIDIwLjM0MTA5NF0gc3lzdGVtZFsxXTog U3RhcnRpbmcgUmVtb3VudCBSb290IGFuZCBLZXJuZWwgRmlsZSBTeXN0ZW1zLi4uDQo+ID4gPiBb ICAgMjAuMzUwOTkzXSBzeXN0ZW1kWzFdOiBTdGFydGluZyB1ZGV2IENvbGRwbHVnIGFsbCBEZXZp Y2VzLi4uDQo+ID4gPiBbICAgMjAuMzU2MjU1XSBzeXN0ZW1kWzFdOiBTdGFydGluZyBVbmNvbXBs aWNhdGVkIGZpcmV3YWxsLi4uDQo+ID4gPiBbICAgMjAuMzYxNTM2XSBzeXN0ZW1kWzFdOiBTdGFy dGVkIEpvdXJuYWwgU2VydmljZS4NCj4gPiA+IFsgICAyMC4zODY5MDJdIEVYVDQtZnMgKHNkYTEp OiByZS1tb3VudGVkIGMwMmRjZTBjLTBjNDAtNGU2ZS04OGFmLWM1YTA5ODdiMGFkYiByL3cuDQo+ ID4gPiBbICAgMjIuNTMyMDMzXSAvZGV2L3NyMDogQ2FuJ3QgbG9va3VwIGJsb2NrZGV2DQo+ID4g PiBbICAgIDcuOTU1OTczXSBjbG91ZC1pbml0Wzc4M106IENsb3VkLWluaXQgdi4gMjQuMy4xLTB1 YnVudHUwfjIwLjA0LjEgcnVubmluZyAnaW5pdC1sb2NhbCcgYXQgV2VkLCAxMSBNYXIgMjAyNiAx NToyNzowNiArMDAwMC4gVXAgNy40OA0KPiA+ID4gc2Vjb25kcy4NCj4gPiA+IFsgICAgOS45MzMx MjBdIGNsb3VkLWluaXRbODIyXTogQ2xvdWQtaW5pdCB2LiAyNC4zLjEtMHVidW50dTB+MjAuMDQu MSBydW5uaW5nICdpbml0JyBhdCBXZWQsIDExIE1hciAyMDI2IDE1OjI3OjA4ICswMDAwLiBVcCA5 LjgyIHNlY29uZHMuDQo+ID4gPiBbICAgIDkuOTM1NDgzXSBjbG91ZC1pbml0WzgyMl06IGNpLWlu Zm86ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrTmV0IGRldmljZQ0KPiA+ ID4gaW5mbysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gWyAg ICA5LjkzNzcyNl0gY2xvdWQtaW5pdFs4MjJdOiBjaS1pbmZvOiArLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKw0KPiA+ID4gWyAgICA5LjkzOTkwNV0gY2xvdWQtaW5pdFs4MjJdOiBj aS1pbmZvOiB8IERldmljZSB8ICBVcCAgfCAgICAgICAgICAgQWRkcmVzcyAgICAgICAgICAgfCAg ICAgIE1hc2sgICAgIHwgU2NvcGUgIHwgICAgIEh3LUFkZHJlc3MgICAgfA0KPiA+ID4gWyAgICA5 Ljk0MjA1OV0gY2xvdWQtaW5pdFs4MjJdOiBjaS1pbmZvOiArLS0tLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKw0KPiANCj4gVGhpcyBpcyBtb3JlIGNvbXBsaWNhdGVkLiBJIHdvbmRlciBp ZiB0aGUgdGltZXN0YW1wcyBmcm9tIGNsb3VkLWluaXQoKQ0KPiBhcmUgc29tZWhvdyBzeW5jaHJv bml6ZWQgd2l0aCBsb2NhbF9jbG9jaygpLg0KDQpUaGlzIHJhaXNlcyBhbiBpbXBvcnRhbnQgaXNz dWUsIHdoaWNoIGlzIHRoYXQgYW55b25lIHVzaW5nIGxvY2FsX2Nsb2NrKCkgd2lsbCBnZXQgdGlt ZXN0YW1wcw0KcmVsYXRpdmUgdG8gdGltZV9pbml0KCksIHdoZXJlYXMgd2l0aCB0aGUgZWFybHkg dGltZXMgcGF0Y2ggYXBwbGllZCwgcHJpbnRrIGlzIHVzaW5nIHRpbWVzdGFtcHMNCnJlbGF0aXZl IHRvIHBvd2VyIG9uICh3ZWxsLCBUU0MgaW5pdCB3aGljaCBpcyBhbG1vc3QgYWx3YXlzIHRoZSBz YW1lIHRoaW5nKS4gIEknbSBzdGlsbCBhIGJpdA0KY29uZnVzZWQgd2l0aCBob3cgY2xvdWQtaW5p dCBpcyBnZXR0aW5nIGl0J3MgbWVzc2FnZXMgaW50ZXJtaW5nbGVkIHdpdGggdGhlIHByaW50aw0K bWVzc2FnZXM/ICBJcyB0aGlzIGEgZmVhdHVyZSBvZiBzeXN0ZW1kPw0KDQo+IA0KPiBXZSBtaWdo dCBuZWVkIHRvIHN5bmNocm9uaXplIGxvY2FsX2Nsb2NrKCkgd2l0aCB0aGUgY3ljbGVzIGFzIHdl bGwuDQoNCkkgdGhvdWdodCBhYm91dCBtb2RpZnlpbmcgbG9jYWxfY2xvY2sgdG8gdXNlIGVhcmx5 X3RzX29mZnNldCwgc28gdGhhdCBhbGwgdXNlcnMNCm9mIGxvY2FsX2Nsb2NrKCkgd291bGQgZ2V0 IHRpbWVzdGFtcHMgd2l0aCBhbiBvZmZzZXQgYWRqdXN0ZWQgc28gdGhleSB3ZXJlDQpyZWxhdGl2 ZSB0byBwb3dlciBvbiwgYnV0IHRoYXQgd2FzIGEgbXVjaCBtb3JlIGludHJ1c2l2ZSBwYXRjaC4N Cg0KPiBCdXQgdGhlcmUgaXMgdGhlIGNoaWNrZW4mZWdnIHByb2JsZW0uIFdlIG5lZWQ6DQo+IA0K PiAgICAgKyB0byBrbm93IHRoZSBvZmZzZXQgY2F1c2VkIGJ5IGN5Y2xlcyB3aGVuIGxvY2FsX2Ns b2NrKCkgZ2V0cyBpbml0aWFsaXplZC4NCj4gICAgICsgbG9jYWxfY2xvY2soKSBydW5uaW5nIGZv ciBzb21lIHRpbWUgdG8gY2FsaWJyYXRlIGN5Y2xlcy4NCj4gDQo+IEhtbSwgSSBzZWUgdGhhdCB0 aW1lLW1hbmFnZW1lbnQgcGVvcGxlIGFyZSBub3QgaW4gQ2MuIFdlIHNob3VsZCBoYXZlDQo+IGFk ZGVkIHRoZW0gc2luY2UgdjEuDQo+IA0KPiBJIGFkZCB0aGVtIG5vdy4gQmV0dGVyIGxhdGUgdGhh biBuZXZlci4NCg0KVGhhbmtzIGZvciB0aGUgZmVlZGJhY2sgYW5kIHRlc3RpbmchICBJIHJlYWxs eSBhcHByZWNpYXRlIGl0Lg0KIC0tIFRpbQ0KDQo=