From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kazlauskas, Nicholas" Subject: Re: [PATCH v2 1/3] drm: Add support for panic message output Date: Thu, 14 Mar 2019 12:44:06 +0000 Message-ID: References: <20190312161754.GF3888@intel.com> <20190313133108.GL3888@intel.com> <0baabe1f-8924-2c9a-5cd4-59084a37dbb2@gmail.com> <617c0977-940f-c324-2b86-9a873c8ced28@daenzer.net> <76f769e5-fb95-2cdd-60fc-3e7286cf313f@gmail.com> <593cfebb-97b1-3d77-1081-1ca93eb56e86@amd.com> <20190314095004.GP2665@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190314095004.GP2665@phenom.ffwll.local> Content-Language: en-US Content-ID: <5D1EDB486E6358429DC6B46EADDF18CB@namprd12.prod.outlook.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: "daniel.vetter@ffwll.ch" , =?utf-8?B?TWljaGVsIETDpG56ZXI=?= , "dri-devel@lists.freedesktop.org" , "darwish.07@gmail.com" , "intel-gfx@lists.freedesktop.org" , "Wentland, Harry" , "Koenig, Christian" List-Id: dri-devel@lists.freedesktop.org T24gMy8xNC8xOSA1OjUwIEFNLCBEYW5pZWwgVmV0dGVyIHdyb3RlOg0KPiBPbiBXZWQsIE1hciAx MywgMjAxOSBhdCAwNTo0MTo1MlBNICswMDAwLCBLYXpsYXVza2FzLCBOaWNob2xhcyB3cm90ZToN Cj4+IE9uIDMvMTMvMTkgMTozMyBQTSwgTWljaGVsIETDpG56ZXIgd3JvdGU6DQo+Pj4gT24gMjAx OS0wMy0xMyA1OjE2IHAubS4sIEthemxhdXNrYXMsIE5pY2hvbGFzIHdyb3RlOg0KPj4+PiBPbiAz LzEzLzE5IDExOjU0IEFNLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOg0KPj4+Pj4gQW0gMTMuMDMu MTkgdW0gMTY6Mzggc2NocmllYiBNaWNoZWwgRMOkbnplcjoNCj4+Pj4+PiBPbiAyMDE5LTAzLTEz IDI6MzcgcC5tLiwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToNCj4+Pj4+Pj4gQW0gMTMuMDMuMTkg dW0gMTQ6MzEgc2NocmllYiBWaWxsZSBTeXJqw6Rsw6Q6DQo+Pj4+Pj4+PiBPbiBXZWQsIE1hciAx MywgMjAxOSBhdCAxMDozNTowOEFNICswMTAwLCBNaWNoZWwgRMOkbnplciB3cm90ZToNCj4+Pj4+ Pj4+PiBPbiAyMDE5LTAzLTEyIDY6MTUgcC5tLiwgTm9yYWxmIFRyw7hubmVzIHdyb3RlOg0KPj4+ Pj4+Pj4+PiBEZW4gMTIuMDMuMjAxOSAxNy4xNywgc2tyZXYgVmlsbGUgU3lyasOkbMOkOg0KPj4+ Pj4+Pj4+Pj4gT24gVHVlLCBNYXIgMTIsIDIwMTkgYXQgMTE6NDc6MDRBTSArMDEwMCwgTWljaGVs IETDpG56ZXIgd3JvdGU6DQo+Pj4+Pj4+Pj4+Pj4gT24gMjAxOS0wMy0xMSA2OjQyIHAubS4sIE5v cmFsZiBUcsO4bm5lcyB3cm90ZToNCj4+Pj4+Pj4+Pj4+Pj4gVGhpcyBhZGRzIHN1cHBvcnQgZm9y IG91dHB1dHRpbmcga2VybmVsIG1lc3NhZ2VzIG9uIHBhbmljKCkuDQo+Pj4+Pj4+Pj4+Pj4+IEEg a2VybmVsIG1lc3NhZ2UgZHVtcGVyIGlzIHVzZWQgdG8gZHVtcCB0aGUgbG9nLiBUaGUgZHVtcGVy DQo+Pj4+Pj4+Pj4+Pj4+IGl0ZXJhdGVzDQo+Pj4+Pj4+Pj4+Pj4+IG92ZXIgZWFjaCBEUk0gZGV2 aWNlIGFuZCBpdCdzIGNydGMncyB0byBmaW5kIHN1aXRhYmxlDQo+Pj4+Pj4+Pj4+Pj4+IGZyYW1l YnVmZmVycy4NCj4+Pj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4+Pj4gQWxsIHRoZSBvdGhlciBkdW1w ZXJzIGFyZSBydW4gYmVmb3JlIHRoaXMgb25lIGV4Y2VwdCBtdGRvb3BzLg0KPj4+Pj4+Pj4+Pj4+ PiBPbmx5IGF0b21pYyBkcml2ZXJzIGFyZSBzdXBwb3J0ZWQuDQo+Pj4+Pj4+Pj4+Pj4+DQo+Pj4+ Pj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IE5vcmFsZiBUcsO4bm5lcyA8bm9yYWxmQHRyb25uZXMu b3JnPg0KPj4+Pj4+Pj4+Pj4+PiAtLS0NCj4+Pj4+Pj4+Pj4+Pj4gICDCoMKgIFsuLi5dDQo+Pj4+ Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZnJh bWVidWZmZXIuaA0KPj4+Pj4+Pj4+Pj4+PiBiL2luY2x1ZGUvZHJtL2RybV9mcmFtZWJ1ZmZlci5o DQo+Pj4+Pj4+Pj4+Pj4+IGluZGV4IGYwYjM0Yzk3N2VjNS4uZjMyNzQ3OThlY2ZlIDEwMDY0NA0K Pj4+Pj4+Pj4+Pj4+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZnJhbWVidWZmZXIuaA0KPj4+Pj4+ Pj4+Pj4+PiArKysgYi9pbmNsdWRlL2RybS9kcm1fZnJhbWVidWZmZXIuaA0KPj4+Pj4+Pj4+Pj4+ PiBAQCAtOTQsNiArOTQsNDQgQEAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlcl9mdW5jcyB7DQo+Pj4+ Pj4+Pj4+Pj4+ICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2LCB1bnNpZ25lZCBmbGFncywNCj4+Pj4+Pj4+Pj4+Pj4gICDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgY29sb3IsIHN0cnVjdCBkcm1fY2xpcF9yZWN0 ICpjbGlwcywNCj4+Pj4+Pj4+Pj4+Pj4gICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg dW5zaWduZWQgbnVtX2NsaXBzKTsNCj4+Pj4+Pj4+Pj4+Pj4gKw0KPj4+Pj4+Pj4+Pj4+PiArwqDC oMKgIC8qKg0KPj4+Pj4+Pj4+Pj4+PiArwqDCoMKgwqAgKiBAcGFuaWNfdm1hcDoNCj4+Pj4+Pj4+ Pj4+Pj4gK8KgwqDCoMKgICoNCj4+Pj4+Pj4+Pj4+Pj4gK8KgwqDCoMKgICogT3B0aW9uYWwgY2Fs bGJhY2sgZm9yIHBhbmljIGhhbmRsaW5nLg0KPj4+Pj4+Pj4+Pj4+PiArwqDCoMKgwqAgKg0KPj4+ Pj4+Pj4+Pj4+PiArwqDCoMKgwqAgKiBGb3Igdm1hcHBpbmcgdGhlIHNlbGVjdGVkIGZyYW1lYnVm ZmVyIGluIGEgcGFuaWMgY29udGV4dC4NCj4+Pj4+Pj4+Pj4+Pj4gTXVzdA0KPj4+Pj4+Pj4+Pj4+ PiArwqDCoMKgwqAgKiBiZSBzdXBlciBjYXJlZnVsIGFib3V0IGxvY2tpbmcgKG9ubHkgdHJ5bG9j a2luZyBhbGxvd2VkKS4NCj4+Pj4+Pj4+Pj4+Pj4gK8KgwqDCoMKgICoNCj4+Pj4+Pj4+Pj4+Pj4g K8KgwqDCoMKgICogUkVUVVJOUzoNCj4+Pj4+Pj4+Pj4+Pj4gK8KgwqDCoMKgICoNCj4+Pj4+Pj4+ Pj4+Pj4gK8KgwqDCoMKgICogTlVMTCBpZiBpdCBkaWRuJ3Qgd29yayBvdXQsIG90aGVyd2lzZSBh biBvcGFxdWUgY29va2llDQo+Pj4+Pj4+Pj4+Pj4+IHdoaWNoIGlzDQo+Pj4+Pj4+Pj4+Pj4+ICvC oMKgwqDCoCAqIHBhc3NlZCB0byBAcGFuaWNfZHJhd194eS4gSXQgY2FuIGJlIGFueXRoaW5nOiB2 bWFwIGFyZWEsDQo+Pj4+Pj4+Pj4+Pj4+IHN0cnVjdHVyZQ0KPj4+Pj4+Pj4+Pj4+PiArwqDCoMKg wqAgKiB3aXRoIG1vcmUgZGV0YWlscywganVzdCBhIGZldyBmbGFncywgLi4uDQo+Pj4+Pj4+Pj4+ Pj4+ICvCoMKgwqDCoCAqLw0KPj4+Pj4+Pj4+Pj4+PiArwqDCoMKgIHZvaWQgKigqcGFuaWNfdm1h cCkoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpOw0KPj4+Pj4+Pj4+Pj4+IEZXSVcsIHRoZSBw YW5pY192bWFwIGhvb2sgY2Fubm90IHdvcmsgaW4gZ2VuZXJhbCB3aXRoIHRoZQ0KPj4+Pj4+Pj4+ Pj4+IGFtZGdwdS9yYWRlb24NCj4+Pj4+Pj4+Pj4+PiBkcml2ZXJzOg0KPj4+Pj4+Pj4+Pj4+DQo+ Pj4+Pj4+Pj4+Pj4gRnJhbWVidWZmZXJzIGFyZSBub3JtYWxseSB0aWxlZCwgd3JpdGluZyB0byB0 aGVtIHdpdGggdGhlIENQVQ0KPj4+Pj4+Pj4+Pj4+IHJlc3VsdHMgaW4NCj4+Pj4+Pj4+Pj4+PiBn YXJibGVkIG91dHB1dC4NCj4+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiBJbiB3aGljaCBjYXNlIHRo ZSBkcml2ZXIgbmVlZHMgdG8gc3VwcG9ydCB0aGUgLT5wYW5pY19kcmF3X3h5DQo+Pj4+Pj4+Pj4+ IGNhbGxiYWNrLA0KPj4+Pj4+Pj4+PiBvciBtYXliZSBpdCdzIHBvc3NpYmxlIHRvIG1ha2UgYSBn ZW5lcmljIGhlbHBlciBmb3IgdGlsZWQgYnVmZmVycy4NCj4+Pj4+Pj4+PiBJJ20gYWZyYWlkIHRo YXQgd29uJ3QgaGVscCwgYXQgbGVhc3Qgbm90IHdpdGhvdXQgcG9ydGluZyBiaWcgY2h1bmtzIG9m DQo+Pj4+Pj4+Pj4gaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL21lc2EvbWVzYS90cmVl L21hc3Rlci9zcmMvYW1kL2FkZHJsaWINCj4+Pj4+Pj4+PiBpbnRvIHRoZSBrZXJuZWwsIG5vbmUg b2Ygd2hpY2ggd2lsbCBiZSB1c2VkIGZvciBhbnl0aGluZyBlbHNlLg0KPj4+Pj4+Pj4+DQo+Pj4+ Pj4+Pj4NCj4+Pj4+Pj4+Pj4+PiBUaGVyZSB3b3VsZCBuZWVkIHRvIGJlIGEgbWVjaGFuaXNtIGZv ciBzd2l0Y2hpbmcgc2Nhbm91dCB0byBhDQo+Pj4+Pj4+Pj4+Pj4gbGluZWFyLA0KPj4+Pj4+Pj4+ Pj4+IENQVSBhY2Nlc3NpYmxlIGZyYW1lYnVmZmVyLg0KPj4+Pj4+Pj4+Pj4gSSBzdXBwb3NlIHBh bmljX3ZtYXAoKSBjb3VsZCBqdXN0IHByb3ZpZGUgYSBsaW5lYXIgdGVtcCBidWZmZXINCj4+Pj4+ Pj4+Pj4+IHRvIHRoZSBwYW5pYyBoYW5kbGVyLCBhbmQgcGFuaWNfdW5tYXAoKSBjb3VsZCBjb3B5 IHRoZSBjb250ZW50cw0KPj4+Pj4+Pj4+Pj4gb3ZlciB0byB0aGUgcmVhbCBmYi4NCj4+Pj4+Pj4+ PiBDb3B5IGhvdz8gVXNpbmcgYSBHUFUgZW5naW5lPw0KPj4+Pj4+Pj4gQ1BVIG1heWJlPyBUaG91 Z2ggSSBzdXBwb3NlIHRoYXQgd29uJ3Qgd29yayBpZiB0aGUgYnVmZmVyIGlzbid0IENQVQ0KPj4+ Pj4+Pj4gYWNjZXNpYmxlIDovDQo+Pj4+Pj4+IFdlbGwgd2UgZG8gaGF2ZSBhIGRlYnVnIHBhdGgg Zm9yIGFjY2Vzc2luZyBpbnZpc2libGUgbWVtb3J5IHdpdGggdGhlDQo+Pj4+Pj4+IENQVS4NCj4+ Pj4+Pj4NCj4+Pj4+Pj4gRS5nLiB0aHJlZSByZWdpc3RlcnM6IERBVEEgYW5kIGF1dG8gaW5jcmVt ZW50IE9GRlNFVF9MTy9ISS4gU28geW91IGNhbg0KPj4+Pj4+PiBqdXN0IHJlYWQvd3JpdGUgREFU QSBvdmVyIGFuZCBvdmVyIGFnYWluIGlmIHlvdSB3YW50IHRvIGFjY2VzcyBzb21lDQo+Pj4+Pj4+ IG1lbW9yeS4NCj4+Pj4+PiBSaWdodC4gSSBhc3N1bWUgdGhhdCdsbCBiZSB2ZXJ5IHNsb3csIGJ1 dCBJIGd1ZXNzIGl0IGNvdWxkIGRvIHdoZW4gdGhlDQo+Pj4+Pj4gbWVtb3J5IGlzbid0IGRpcmVj dGx5IENQVSBhY2Nlc3NpYmxlLg0KPj4+Pj4NCj4+Pj4+IEp1c3QgbWFkZSBhIHF1aWNrIHRlc3Qg YW5kIHJlYWRpbmcgMzM0MjMzNjAgYnl0ZXMgKDQwOTZ4MjA0MHg0KSB1c2luZw0KPj4+Pj4gdGhh dCBpbnRlcmZhY2VzIHRha2VzIGFib3V0IDEzIHNlY29uZHMuDQo+Pj4+Pg0KPj4+Pj4gSUlSQyB3 ZSBkb24ndCB1c2UgdGhlIGF1dG8gaW5jcmVtZW50IG9wdGltaXphdGlvbiB5ZXQsIHNvIHRoYXQg Y2FuDQo+Pj4+PiBwcm9iYWJseSBiZSBpbXByb3ZlZCBieSBhIGZhY3RvciBvZiAzIG9yIG1vcmUu DQo+Pj4NCj4+PiBJJ2QgYXNzdW1lIG9ubHkgd3JpdGVzIGFyZSBuZWVkZWQsIG5vIHJlYWRzLg0K Pj4+DQo+Pj4NCj4+Pj4+Pj4gQnV0IHR1cm5pbmcgb2YgdGlsbGluZyBldGMgaXMgc3RpbGwgZXh0 cmVtZWx5IHRyaWNreSB3aGVuIHRoZSBzeXN0ZW0gaXMNCj4+Pj4+Pj4gYWxyZWFkeSB1bnN0YWJs ZS4NCj4+Pj4+PiBNYXliZSB3ZSBjb3VsZCBhZGQgYSBsaXR0bGUgaG9vayB0byB0aGUgZGlzcGxh eSBjb2RlLCB3aGljaCBqdXN0DQo+Pj4+Pj4gZGlzYWJsZXMgdGlsaW5nIGZvciBzY2Fub3V0IGFu ZCBtYXliZSBkaXNhYmxlcyBub24tcHJpbWFyeSBwbGFuZXMsIGJ1dA0KPj4+Pj4+IGRvZXNuJ3Qg dG91Y2ggYW55dGhpbmcgZWxzZS4gSGFycnkgLyBOaWNob2xhcywgZG9lcyB0aGF0IHNlZW0gZmVh c2libGU/DQo+Pj4+Pj4NCj4+Pj4+Pg0KPj4+Pj4+IEknbSBjb21pbmcgYXJvdW5kIGZyb20gInRo aXMgaXMgbmV2ZXIgZ29pbmcgdG8gd29yayIgdG8gIml0IG1pZ2h0DQo+Pj4+Pj4gYWN0dWFsbHkg d29yayIgd2l0aCBvdXIgaGFyZHdhcmUuLi4NCj4+Pj4+DQo+Pj4+PiBZZWFoLCBhZ3JlZS4gSXQn cyBhIGJpdCB0cmlja3ksIGJ1dCBkb2FibGUuDQo+Pj4+DQo+Pj4+IEEgImRpc2FibGVfdGlsaW5n IiBob29rIG9yIHNvbWV0aGluZyBhbG9uZyB0aG9zZSBsaW5lcyBjb3VsZCB3b3JrIGZvcg0KPj4+ PiBkaXNwbGF5LiBJdCdzIGEgbGl0dGxlIGJpdCBub24gdHJpdmlhbCB3aGVuIHlvdSB3YW50IHRv IHN0YXJ0IGRlYWxpbmcNCj4+Pj4gd2l0aCBsb2NraW5nIGFuZCBhbnkgYWN0aXZlIERSTSBjb21t aXRzLCBidXQgd2UgaGF2ZSBhIGdsb2JhbCBsb2NrDQo+Pj4+IGFyb3VuZCBhbGwgb3VyIGhhcmR3 YXJlIHByb2dyYW1taW5nIGFueXdheSB0aGF0IG1ha2VzIHRoYXQgZWFzaWVyIHRvDQo+Pj4+IGRl YWwgd2l0aC4NCj4+Pg0KPj4+IFRoaXMgY29kZSBvbmx5IHJ1bnMgd2hlbiB0aGVyZSdzIGEga2Vy bmVsIHBhbmljLCBzbyBpdCBkb2Vzbid0IGhhdmUgdG8NCj4+PiBjYXJlIGFib3V0IHN1Y2ggdGhp bmdzLiA6KSBJbiBmYWN0LCBpdCBzaG91bGQgcmF0aGVyIGF2b2lkIHRoZW0gYW5kIG9ubHkNCj4+ PiBkbyB0aGUgYWJzb2x1dGUgbWluaW11bSByZWdpc3RlciB3cml0ZXMgbmVlZGVkIHRvIGRvIHRo ZSBqb2IuDQo+Pg0KPj4gR29vZCBwb2ludC4gSSBndWVzcyBpdCBkb2Vzbid0IHJlYWxseSBtYXR0 ZXIgYXQgdGhhdCBwb2ludC4NCj4+DQo+Pj4NCj4+Pg0KPj4+PiBJIHRoaW5rIHdlIGNhbiBqdXN0 IHJlLWNvbW1pdCBhbmQgdXBkYXRlIHRoZSBleGlzdGluZyBoYXJkd2FyZSBzdGF0ZQ0KPj4+PiB3 aXRoIG9ubHkgdGhlIHRpbGluZyBpbmZvIGZvciBldmVyeSBwbGFuZSByZXNldCB0byBvZmYuDQo+ Pj4NCj4+PiBUaGVyZSdzIGFsc28gYSBjb25jZXJuIHRoYXQgbm9uLXByaW1hcnkgcGxhbmVzIG1p Z2h0IHByZXZlbnQgdGhlIG91dHB1dA0KPj4+IGZyb20gYmVpbmcgdmlzaWJsZS4NCj4+DQo+PiBJ IHdvdWxkIGp1c3QgaG9wZSB0aGF0IHRoZSBvdmVybGF5IGRvZXNuJ3QgY292ZXIgdGhlIGZ1bGwg c2NyZWVuLCBvcg0KPj4gdGhhdCB0aGUgcGFuaWMgaGFuZGxlciB3cml0ZXMgdG8gYWxsIGJ1ZmZl cnMgaWYgcG9zc2libGUuDQo+Pg0KPj4gREMgd291bGQgaGF2ZSB0byBzd2FwIHRoZSBjdXJyZW50 IGNvbnRleHQgaW4gb3JkZXIgdG8gZGlzYWJsZSBwbGFuZXMgYW5kDQo+PiB3ZSdkIGhhdmUgdG8g ZG8gbWVtb3J5IGFsbG9jYXRpb25zIC8gZnJlZXMgZXRjIGluIG9yZGVyIHRvIGRvIHNvLg0KPiAN Cj4gWW91IGNhbid0LiBBbmQgSSdtIHdpdGggTWljaGVsLCB5b3UgZG9uJ3Qgd2FudCB0byBydW4g YW55IG9mIHRoZSBEQyBjb2RlLg0KPiBQdWxsaW5nIGluIH4xMDBrbG9jIG9mIGRlcGVuZGVuY3kg aW4gcGFuaWMgY29udGV4dCBqdXN0IGRvZXNuJ3Qgd29yaw0KPiAodGhhdCdzIHdoYXQgd2UgdHJp ZWQgYmVmb3JlIGVzc2VudGlhbGx5KS4NCj4gDQo+IFdoYXQgeW91IGNhbiBkbyBpcw0KPiAtIHRy eWxvY2ssIGFuZCBiYWlsIG91dCBpZiBhbnkgbG9jayBpcyBsb2NrZWQgKHNpbmNlIHRoYXQgbWVh bnMgdW5kZWZpbmVkDQo+ICAgIGh3IG9yIHN3IHN0YXRlLCBhbmQgdGhlbiB5b3UgcmVhbGx5IHNo b3VsZG4ndCB0b3VjaCBhbnl0aGluZykNCj4gLSBtYXliZSB3cml0ZSBhIGZldyB2ZXJ5IHNwZWNp ZmljIHJlZ2lzdGVycyB3aXRoIHRoZSBtb3N0IG1pbmltYWwgYW1vdW50DQo+ICAgIG9mIGNvZGUg KHNpbmNlIHdlIG5lZWQgdG8gdmFsaWRhdGUgZXZlcnkgbGluZSB0aGF0IHJ1bnMgaW4gb29wcy9w YW5pYw0KPiAgICBjb250ZXh0IHRvIG1ha2Ugc3VyZSBpdCBzdGlsbCB3b3JrcyBpbiBubWkgY29u dGV4dCkuIFN0dWZmIGxpa2UNCj4gICAgZGlzYWJsaW5nIHRpbGluZyAob24gaTkxNSB0aGF0J3Mg anVzdCBmbGlwcGluZyBhIGJpdCBpbiBhIHJlZ2lzdGVyKS4NCj4gLSBtZW1vcnkgd3JpdGVzIChv ciB0aGF0IHNsb3cgaW5kaXJlY3Qgd3JpdGUgaW50ZXJmYWNlIHlvdSBoYXZlIGZvcg0KPiAgICBj cHUgaW52aXNpYmxlIHZyYW0pIHRvIGRyYXcgdGhlIGFjdHVhbCBvb3BzLg0KPiANCj4gRXZlcnl0 aGluZyBlbHNlIGlzIG91dCBvZiBxdWVzdGlvbi4gRXNwZWNpYWxseSBjYWxsaW5nIGV4aXN0aW5n IGRpc3BsYXkNCj4gY29kZSBqdXN0IGRvZXNuJ3Qgd29yaywgaXQncyBpbWUgaW1wb3NzaWJsZSB0 byBrZWVwIGFsbG9jYXRpb25zL3NwaW5sb2Nrcw0KPiBhbmQgc3R1ZmYgbGlrZSB0aGF0IG91dCBv ZiBpdC4NCj4gLURhbmllbA0KDQpBdCBzb21lIHBvaW50IHdlJ2xsIGhhdmUgdG8gcnVuIGF0IGxl YXN0IHNvbWUgREMgY29kZSBzaW5jZSBkaXNhYmxpbmcgDQp0aWxpbmcgYW5kIGNvbXByZXNzaW9u IGlzIEFTSUMgc3BlY2lmaWMgYW5kIHlvdSBuZWVkIHRvIGtub3cgd2hhdCANCnJlZ2lzdGVycyB0 byBhY3R1YWxseSB3cml0ZS4NCg0KVGhlcmUncyBubyBmYXN0IHBhdGggdGhhdCBEQyBleHBvc2Vz IHNwZWNpZmljYWxseSBmb3IgdGhpcyB1c2VjYXNlLCBidXQgDQpsb2NraW5nIGlzIGNvbnRyb2xs ZWQgb3V0c2lkZSBvZiBEQyBhbnl3YXkgKHNvIHdlIGRvbid0IGhhdmUgdG8gbG9jaykgDQphbmQg aXQgREMgaXRzZWxmIHdvbid0IGJlIGRvaW5nIGFueSBtZW1vcnkgYWxsb2NhdGlvbnMgaWYgaXQn cyBqdXN0IA0KZGlzYWJsaW5nIHRpbGluZyBhbmQgY29tcHJlc3Npb24uDQoNCkl0J3Mgbm90IGFj dHVhbGx5IHRoYXQgbWFueSByZWdpc3RlciByZWFkcy93cml0ZXMsIGFuZCBpdCBjb3VsZCBwcm9i YWJseSANCnN0cmlwcGVkIGRvd24gdG8ganVzdCB3cml0ZXMgc2luY2UgdGhlIHJlYWRzIGFyZSBv bmx5IHVzZWQgZm9yIHNhbml0eSANCmNoZWNraW5nIGFuZCB0aGUgc3lzdGVtIGlzIGdvaW5nIGRv d24gYW55d2F5LiBUaGF0IHBhcnQgbWlnaHQgbmVlZCBhIA0Kc2VwYXJhdGUgaW50ZXJmYWNlIGZv ciBkY19jb21taXRfdXBkYXRlc19mb3Jfc3RyZWFtIG9yIGZvciBhbWRncHVfZG0gdG8gDQpkaXNh YmxlIHNhbml0eSBjaGVja2luZyBiZWZvcmUgdGhlIGNhbGwgdGhyb3VnaCBEQydzIGRlYnVnIG9w dGlvbnMuDQoNCk5pY2hvbGFzIEthemxhdXNrYXMNCg0KPiANCj4+Pj4gRm9yIG1vc3QgYnVmZmVy cyBJIGRvbid0IHRoaW5rIHdlJ2QgaGF2ZSB0byByZWFsbHkgY29uc2lkZXIgY2hhbmdpbmcNCj4+ Pj4gYW55dGhpbmcgZWxzZSBoZXJlIGFzIGxvbmcgYXMgeW91IHJlc3BlY3QgdGhlIGN1cnJlbnQg RkIgc2l6ZSBhbmQNCj4+Pj4gcGl0Y2guDQo+Pj4NCj4+PiBIbW0sIGUuZy4gY29tcHJlc3Npb24g bWlnaHQgYWxzbyBuZWVkIHRvIGJlIGRpc2FibGVkPyBPciBtYXliZSB0aGF0J3MNCj4+PiBpbXBs aWNpdGx5IG9mZiB3aXRoIG5vIHRpbGluZz8NCj4+Pg0KPj4+DQo+Pg0KPj4gUmVzZXR0aW5nIHRo ZSB0aWxpbmcgaW5mbyB3aWxsIGFsc28gZGlzYWJsZSB0aGUgY29tcHJlc3Npb24gaW4gdGhpcw0K Pj4gY2FzZSwgc28gdGhlIGJ1ZmZlciBzaG91bGQgc3RpbGwgYmUgdXNhYmxlIGZvciB0aGlzIHB1 cnBvc2UuDQo+Pg0KPj4gTmljaG9sYXMgS2F6bGF1c2thcw0KPiANCg0KX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4