Return-Path: From: Amitkumar Karwar To: Marcel Holtmann CC: "linux-bluetooth@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Cathy Luo , Nishant Sarmukadam , Ganapathi Bhat Subject: RE: [PATCH] btusb: fix zero BD address problem during stress test Date: Wed, 7 Dec 2016 07:44:34 +0000 Message-ID: References: <1476795449-20592-1-git-send-email-akarwar@marvell.com> <077FBE27-DA84-4F11-BC69-F38184CE6B40@holtmann.org> <3926ae98e84248eaa53999e4d466b189@SC-EXCH04.marvell.com> <0175091F-6B2E-49CE-B099-FC6D35C9C1BF@holtmann.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 List-ID: SGkgTWFyY2VsLA0KDQo+IEZyb206IEFtaXRrdW1hciBLYXJ3YXINCj4gU2VudDogRnJpZGF5LCBO b3ZlbWJlciAyNSwgMjAxNiA0OjUxIFBNDQo+IFRvOiAnTWFyY2VsIEhvbHRtYW5uJw0KPiBDYzog J2xpbnV4LWJsdWV0b290aEB2Z2VyLmtlcm5lbC5vcmcnOyAnbGludXgta2VybmVsQHZnZXIua2Vy bmVsLm9yZyc7DQo+IENhdGh5IEx1bzsgTmlzaGFudCBTYXJtdWthZGFtOyBHYW5hcGF0aGkgQmhh dA0KPiBTdWJqZWN0OiBSRTogW1BBVENIXSBidHVzYjogZml4IHplcm8gQkQgYWRkcmVzcyBwcm9i bGVtIGR1cmluZyBzdHJlc3MNCj4gdGVzdA0KPiANCj4gSGkgTWFyY2VsLA0KPiANCj4gPiBGcm9t OiBBbWl0a3VtYXIgS2Fyd2FyDQo+ID4gU2VudDogV2VkbmVzZGF5LCBOb3ZlbWJlciAyMywgMjAx NiAzOjE0IFBNDQo+ID4gVG86ICdNYXJjZWwgSG9sdG1hbm4nDQo+ID4gQ2M6IGxpbnV4LWJsdWV0 b290aEB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7DQo+ID4g Q2F0aHkgTHVvOyBOaXNoYW50IFNhcm11a2FkYW07IEdhbmFwYXRoaSBCaGF0DQo+ID4gU3ViamVj dDogUkU6IFtQQVRDSF0gYnR1c2I6IGZpeCB6ZXJvIEJEIGFkZHJlc3MgcHJvYmxlbSBkdXJpbmcg c3RyZXNzDQo+ID4gdGVzdA0KPiA+DQo+ID4gSGkgTWFyY2VsLA0KPiA+DQo+ID4gPiBGcm9tOiBN YXJjZWwgSG9sdG1hbm4gW21haWx0bzptYXJjZWxAaG9sdG1hbm4ub3JnXQ0KPiA+ID4gU2VudDog V2VkbmVzZGF5LCBOb3ZlbWJlciAyMywgMjAxNiAxOjQ2IFBNDQo+ID4gPiBUbzogQW1pdGt1bWFy IEthcndhcg0KPiA+ID4gQ2M6IGxpbnV4LWJsdWV0b290aEB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4 LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7DQo+ID4gPiBDYXRoeSBMdW87IE5pc2hhbnQgU2FybXVr YWRhbTsgR2FuYXBhdGhpIEJoYXQNCj4gPiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIGJ0dXNiOiBm aXggemVybyBCRCBhZGRyZXNzIHByb2JsZW0gZHVyaW5nDQo+ID4gPiBzdHJlc3MgdGVzdA0KPiA+ ID4NCj4gPiA+IEhpIEFtaXRrdW1hciwNCj4gPiA+DQo+ID4gPiA+Pj4+IEZyb206IEFtaXRrdW1h ciBLYXJ3YXIgW21haWx0bzpha2Fyd2FyQG1hcnZlbGwuY29tXQ0KPiA+ID4gPj4+PiBTZW50OiBU dWVzZGF5LCBPY3RvYmVyIDE4LCAyMDE2IDY6MjcgUE0NCj4gPiA+ID4+Pj4gVG86IGxpbnV4LWJs dWV0b290aEB2Z2VyLmtlcm5lbC5vcmcNCj4gPiA+ID4+Pj4gQ2M6IG1hcmNlbEBob2x0bWFubi5v cmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IENhdGh5DQo+ID4gTHVvOw0KPiA+ID4g Pj4+PiBOaXNoYW50IFNhcm11a2FkYW07IEdhbmFwYXRoaSBCaGF0OyBBbWl0a3VtYXIgS2Fyd2Fy DQo+ID4gPiA+Pj4+IFN1YmplY3Q6IFtQQVRDSF0gYnR1c2I6IGZpeCB6ZXJvIEJEIGFkZHJlc3Mg cHJvYmxlbSBkdXJpbmcNCj4gPiBzdHJlc3MNCj4gPiA+ID4+Pj4gdGVzdA0KPiA+ID4gPj4+Pg0K PiA+ID4gPj4+PiBGcm9tOiBHYW5hcGF0aGkgQmhhdCA8Z2JoYXRAbWFydmVsbC5jb20+DQo+ID4g PiA+Pj4+DQo+ID4gPiA+Pj4+IFdlIGNhbWUgYWNyb3NzIGEgY29ybmVyIGNhc2UgaXNzdWUgZHVy aW5nIHJlYm9vdCBzdHJlc3MgdGVzdA0KPiBpbg0KPiA+ID4gPj4gd2hpY2gNCj4gPiA+ID4+Pj4g aGNpY29uZmlnIHNob3dzIEJEIGFkZHJlc3MgaXMgYWxsIHplcm8uIFJlYXNvbiBpcyB3ZSBkb24n dCBnZXQNCj4gPiA+ID4+Pj4gcmVzcG9uc2UgZm9yIEhDSSBSRVNFVCBjb21tYW5kIGR1cmluZyBp bml0aWFsaXphdGlvbg0KPiA+ID4gPj4+Pg0KPiA+ID4gPj4+PiBUaGUgaXNzdWUgaXMgdHJhY2tl ZCB0byBhIHJhY2Ugd2hlcmUgVVNCIHN1YnN5c3RlbSBjYWxscw0KPiA+ID4gPj4+PiBidHVzYl9p bnRyX2NvbXBsZXRlKCkgdG8gZGVsaXZlciBhIGRhdGEoTk9PUCBmcmFtZSkgcmVjZWl2ZWQNCj4g b24NCj4gPiA+ID4+Pj4gaW50ZXJydXB0IGVuZHBvaW50LiBIQ0lfUlVOTklORyBmbGFnIGlzIG5v dCB5ZXQgc2V0IGJ5DQo+ID4gPiA+Pj4+IGJsdWV0b290aCBzdWJzeXN0ZW0uIFNvIHdlIGlnbm9y ZSB0aGF0IGZyYW1lIGFuZCByZXR1cm4uDQo+ID4gPiA+Pj4+DQo+ID4gPiA+Pj4+IEFzIHdlIG1p c3NlZCB0byByZXN1Ym1pdCB0aGUgYnVmZmVyIHRvIGludGVycnVwdCBlbmRwb2ludCBpbg0KPiA+ IHRoaXMNCj4gPiA+ID4+Pj4gY2FzZSwgd2UgZG9uJ3QgZ2V0IHJlc3BvbnNlIGZvciBCVCByZXNl dCBjb21tYW5kIGRvd25sb2FkZWQNCj4gPiBhZnRlcg0KPiA+ID4gPj4gdGhpcy4NCj4gPiA+ID4+ Pj4NCj4gPiA+ID4+Pj4gVGhpcyBwYXRjaCBoYW5kbGVzIHRoZSBjb3JuZXIgY2FzZSB0byByZXNv bHZlIHplcm8gQkQgYWRkcmVzcw0KPiA+ID4gPj4gcHJvYmxlbS4NCj4gPiA+ID4+Pj4NCj4gPiA+ ID4+Pj4gU2lnbmVkLW9mZi1ieTogR2FuYXBhdGhpIEJoYXQgPGdiaGF0QG1hcnZlbGwuY29tPg0K PiA+ID4gPj4+PiBTaWduZWQtb2ZmLWJ5OiBBbWl0a3VtYXIgS2Fyd2FyIDxha2Fyd2FyQG1hcnZl bGwuY29tPg0KPiA+ID4gPj4+PiAtLS0NCj4gPiA+ID4+Pj4gZHJpdmVycy9ibHVldG9vdGgvYnR1 c2IuYyB8IDUgKy0tLS0NCj4gPiA+ID4+Pj4gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCA0IGRlbGV0aW9ucygtKQ0KPiA+ID4gPj4+Pg0KPiA+ID4gPj4+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ibHVldG9vdGgvYnR1c2IuYw0KPiA+ID4gPj4+PiBiL2RyaXZlcnMvYmx1ZXRvb3RoL2J0 dXNiLmMgaW5kZXggODExZjliOS4uYjU1OTZhYyAxMDA2NDQNCj4gPiA+ID4+Pj4gLS0tIGEvZHJp dmVycy9ibHVldG9vdGgvYnR1c2IuYw0KPiA+ID4gPj4+PiArKysgYi9kcml2ZXJzL2JsdWV0b290 aC9idHVzYi5jDQo+ID4gPiA+Pj4+IEBAIC02MDcsMTAgKzYwNyw3IEBAIHN0YXRpYyB2b2lkIGJ0 dXNiX2ludHJfY29tcGxldGUoc3RydWN0DQo+IHVyYg0KPiA+ID4gPj4gKnVyYikNCj4gPiA+ID4+ Pj4gCUJUX0RCRygiJXMgdXJiICVwIHN0YXR1cyAlZCBjb3VudCAlZCIsIGhkZXYtPm5hbWUsIHVy YiwNCj4gPiB1cmItDQo+ID4gPiA+Pj4+PiBzdGF0dXMsDQo+ID4gPiA+Pj4+IAkgICAgICAgdXJi LT5hY3R1YWxfbGVuZ3RoKTsNCj4gPiA+ID4+Pj4NCj4gPiA+ID4+Pj4gLQlpZiAoIXRlc3RfYml0 KEhDSV9SVU5OSU5HLCAmaGRldi0+ZmxhZ3MpKQ0KPiA+ID4gPj4+PiAtCQlyZXR1cm47DQo+ID4g PiA+Pj4+IC0NCj4gPiA+ID4+Pj4gLQlpZiAodXJiLT5zdGF0dXMgPT0gMCkgew0KPiA+ID4gPj4+ PiArCWlmICh1cmItPnN0YXR1cyA9PSAwICYmIHRlc3RfYml0KEhDSV9SVU5OSU5HLCAmaGRldi0N Cj4gPiA+ID5mbGFncykpIHsNCj4gPiA+ID4+Pj4gCQloZGV2LT5zdGF0LmJ5dGVfcnggKz0gdXJi LT5hY3R1YWxfbGVuZ3RoOw0KPiA+ID4gPj4+Pg0KPiA+ID4gPj4+PiAJCWlmIChidHVzYl9yZWN2 X2ludHIoZGF0YSwgdXJiLT50cmFuc2Zlcl9idWZmZXIsDQo+ID4gPiA+Pj4NCj4gPiA+ID4+PiBE aWQgeW91IGdldCBhIGNoYW5jZSB0byBjaGVjayB0aGlzPw0KPiA+ID4gPj4+IFBsZWFzZSBsZXQg dXMga25vdyBpZiB5b3UgaGF2ZSBhbnkgcmV2aWV3IGNvbW1lbnRzLg0KPiA+ID4gPj4NCj4gPiA+ ID4+IGNhbiB5b3UgZXhwbGFpbiBob3cgdGhpcyBpcyBjb3JyZWN0IGFuZCBzaG93IG1lIHRoZSBI Q0kgdHJhY2VzDQo+ID4gPiA+PiBmb3IgdGhpcy4NCj4gPiA+ID4+DQo+ID4gPiA+DQo+ID4gPiA+ IEkgc3VwcG9zZSBIQ0kgdHJhY2UgbWVhbnMgaGNpZHVtcCBsb2dzIGhlcmUuIEFzIGRldmljZSBo YXNuJ3QgeWV0DQo+ID4gPiBpbml0aWFsaXplZCwgaGNpZHVtcCB3b24ndCBzaG93IGFueXRoaW5n Lg0KPiA+ID4gPiBXZSBoYWQgYWRkZWQgZGVidWcgaW5mbyBpbiBidHVzYiBkcml2ZXIgdG8gdHJh Y2UgdGhlIGRhdGENCj4gcmVjZWl2ZWQNCj4gPiA+ID4gb24NCj4gPiA+IGFsbCBVU0IgZW5kcG9p bnRzIGFuZCBhbHNvIGNoZWNrZWQgdXNibW9uIGxvZ3MuDQo+ID4gPg0KPiA+ID4gdXNlIGJ0bW9u IGFuZCBpdCB3aWxsIHNob3cgaXQuDQo+ID4gPg0KPiA+ID4gPiBIZXJlIGlzIHRoZSBzZXF1ZW5j ZSBvZiBldmVudHMgd2Ugb2JzZXJ2ZWQgaW4gYSBjb3JuZXIgY2FzZSB3aGlsZQ0KPiA+ID4gcnVu bmluZyBzdHJlc3MgdGVzdC4NCj4gPiA+ID4gMSkgSW5zaWRlIGJ0dXNiX29wZW4oKSBjYWxsIC0t LS0tLSBUaHJlYWQgMQ0KPiA+ID4gPiAyKSBidHVzYl9zdWJtaXRfaW50cl91cmIoKSBzdWJtaXRz IHRoZSBVUkIgZm9yIHJlY2VpdmluZyBkYXRhIG9uDQo+ID4gPiA+IGludGVycnVwdCBlbmRwb2lu dCAtLS0tIFRocmVhZCAxDQo+ID4gPiA+IDMpIGJ0dXNiX2ludHJfY29tcGxldGUoKSBnZXRzIGNh bGxlZCB0byBkZWxpdmVyIE5PUCBmcmFtZSBmcm9tDQo+IEhDSQ0KPiA+ID4gPiBjb250cm9sbGVy IC0tLS0gVGhyZWFkIDINCj4gPiA+ID4gNCkgSENJX1JVTk5JTkcgaXNuJ3Qgc2V0IHlldC4gU28g d2UgcmV0dXJuIGZyb20NCj4gPiA+ID4gYnR1c2JfaW50cl9jb21wbGV0ZSgpIHdpdGhvdXQgcmVz dWJtaXR0aW5nIHRoZSBidWZmZXIgLS0tIFRocmVhZA0KPiAyDQo+ID4gPiA+IDUpIEV4aXQgYnR1 c2Jfb3BlbigpIC0tLS0gVGhyZWFkIDENCj4gPiA+ID4gNikgInNldF9iaXQoSENJX1JVTk5JTkcs ICZoZGV2LT5mbGFncykiIGRvbmUgYnkgYmx1ZXRvb3RoIGNvcmUNCj4gPiA+ID4gLS0tLSBUaHJl YWQgMQ0KPiA+ID4gPg0KPiA+ID4gPiBMYXRlciBIQ0lfUkVTRVQgY29tbWFuZCBnZXRzIHRpbWVk b3V0LCBhcyB3ZSBoYXZlbid0IHJlLXN1Ym1pdHRlZA0KPiA+ID4gYnVmZmVyIGZvciBpbnRlcnJ1 cHQgZW5kcG9pbnQgaW4gc3RlcCAoNCkgYWJvdmUuDQo+ID4gPiA+DQo+ID4gPiA+IFBsZWFzZSBm aW5kIGF0dGFjaGVkIGxvZ3MuIHVzYm1vbiBsb2cgc2hvd3MgZmlyc3QgZnJhbWUgcmVjZWl2ZWQN Cj4gPiA+ID4gb24NCj4gPiA+IGludGVycnVwdCBlbmRwb2ludCBpcyBOT1AoU2VhcmNoIGZvciBN YXJ2ZWxsIGluIGxvZykuDQo+ID4gPiA+DQo+ID4gPiA+IEhlcmUgaXMgd2hhdCBibHVldG9vdGgg c3BlYyBzYXlzIGFib3V0IE5PUCBmcmFtZS4NCj4gPiA+ID4NCj4gPiA+ID4gIlRvIGluZGljYXRl IHRvIHRoZSBIb3N0IHRoYXQgdGhlIENvbnRyb2xsZXIgaXMgcmVhZHkgdG8gcmVjZWl2ZQ0KPiA+ IEhDSQ0KPiA+ID4gPiBjb21tYW5kIHBhY2tldHMsIHRoZSBDb250cm9sbGVyIGdlbmVyYXRlcyBh IENvbW1hbmQgU3RhdHVzIGV2ZW50DQo+ID4gPiA+IHdpdGggU3RhdHVzIDB4MDAgYW5kIENvbW1h bmRfT3Bjb2RlIDB4MDAwMCwgYW5kIHRoZQ0KPiA+ID4gTnVtX0hDSV9Db21tYW5kX1BhY2tldHMN Cj4gPiA+ID4gZXZlbnQgcGFyYW1ldGVyIGlzIHNldCB0byAxIG9yIG1vcmUuIENvbW1hbmRfT3Bj b2RlLCAweDAwMDAgaXMgYQ0KPiA+IE5PUA0KPiA+ID4gKE5vIE9wZXJhdGlvbinigJ0NCj4gPiA+ DQo+ID4gPiBTbyBJIHdvbmRlciBpZiB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgSENJX1JVTk5JTkcg bG9naWMgZnJvbSB0aGUNCj4gPiA+IGRyaXZlcnMuIEl0IGlzIG9ubHkgbGVmdCBpbiBhIGZldyBV U0IgZHJpdmVycyBhbmQgSSByZW1vdmVkIHRoZQ0KPiByZXN0DQo+ID4gPiBhbmQgbW92ZWQgaXQg aW50byB0aGUgY29yZS4gSSBhbSBub3QgaW4gZmF2b3VyIG9mIHBhcGVyaW5nIG92ZXINCj4gdGhp cw0KPiA+ID4gaXNzdWUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgaXMgd3JvbmcuIEFuZCBh Y3R1YWxseSBIQ0lfUlVOTklORw0KPiA+ID4gbmVlZHMgdG8gYmUgdGFrZW4gYXdheSBmcm9tIHRo ZSBkcml2ZXJzLiBTbyB0aGUgcXVlc3Rpb24gaXMgaWYNCj4gPiBidHVzYi5jDQo+ID4gPiBzdGls bCBuZWVkcyBpdCBvciBpZiB0aGF0IGlzIGp1c3QgYSBsZWZ0b3Zlci4gTWVhbmluZyBpcyBpdA0K PiA+IHByb3RlY3RpbmcNCj4gPiA+IGFueXRoaW5nPw0KPiA+ID4NCj4gPg0KPiA+IEkgY2FuIHNl ZSBIQ0lfUlVOTklORyBjaGVjayBiZWluZyB1c2VkIGF0IGJlbG93IHBsYWNlcyBpbiBidHVzYi5j DQo+ID4NCj4gPiAxKSBidHVzYl9pbnRyX2NvbXBsZXRlDQo+ID4gMikgYnR1c2JfYnVsa19jb21w bGV0ZQ0KPiA+IDMpIGJ0dXNiX2lzb2NfY29tcGxldGUNCj4gPiA0KSBidHVzYl90eF9jb21wbGV0 ZQ0KPiA+IDUpIGJ0dXNiX2lzb2NfdHhfY29tcGxldGUNCj4gPiA2KSBidHVzYl9iY21fc2V0X2Rp YWcNCj4gPiA3KSBidHVzYl9yZXN1bWUNCj4gPg0KPiA+IEkgdGhpbmssIGl0IGNhbiBiZSByZW1v dmVkIGZyb20gKDEpLCAoMikgYW5kICgzKSwgYXMgd2UgYWxyZWFkeSBoYXZlDQo+ID4gYmVsb3cg Y2hlY2sgaW5zaWRlIGhjaV9yZWN2X2ZyYW1lKCkNCj4gPg0KPiA+ICAgICAgICAgaWYgKCFoZGV2 IHx8ICghdGVzdF9iaXQoSENJX1VQLCAmaGRldi0+ZmxhZ3MpDQo+ID4gICAgICAgICAgICAgICAg ICAgICAgICYmICF0ZXN0X2JpdChIQ0lfSU5JVCwgJmhkZXYtPmZsYWdzKSkpIHsNCj4gPiAgICAg ICAgICAgICAgICAga2ZyZWVfc2tiKHNrYik7DQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiAt RU5YSU87DQo+ID4gICAgICAgICB9DQo+ID4NCj4gPiBGb3IgKDQpIGFuZCAoNSksIGl0J3MganVz dCB1c2VkIHRvIGRlY2lkZSBpZiB3ZSBzaG91bGQgdXBkYXRlICJoZGV2LQ0KPiA+ID5zdGF0IiBv ciBub3QuDQo+ID4NCj4gDQo+IFBsZWFzZSBndWlkZSBvbiBob3cgc2hvdWxkIHdlIGZpeCB0aGlz IGlzc3VlLiBXZSBvYnNlcnZlIHRpbWVvdXQgZm9yDQo+IEhDSV9SRVNFVCBjb21tYW5kIHNvbWV0 aW1lcyB3aGVuIHN5c3RlbSBpcyBib290ZWQuIFRoaXMgaGFwcGVucyBkdWUgdG8NCj4gbWlzc2lu ZyB1cmJfc3VibWl0dCgpIHdoZW4gZmlyc3QgZnJhbWUoTk9QKSByZWNlaXZlZCBvbiBJTlQgZW5k cG9pbnQgaXMNCj4gaWdub3JlZC4gQmVsb3cgY2hhbmdlIHdvdWxkIGFsc28gaGVscC4NCj4gDQo+ IC0tLSBhL25ldC9ibHVldG9vdGgvaGNpX2NvcmUuYw0KPiArKysgYi9uZXQvYmx1ZXRvb3RoL2hj aV9jb3JlLmMNCj4gQEAgLTEzMTgsMTIgKzEzMTgsMTMgQEAgc3RhdGljIGludCBoY2lfZGV2X2Rv X29wZW4oc3RydWN0IGhjaV9kZXYNCj4gKmhkZXYpDQo+ICAgICAgICAgICAgICAgICBnb3RvIGRv bmU7DQo+ICAgICAgICAgfQ0KPiANCj4gKyAgICAgICBzZXRfYml0KEhDSV9SVU5OSU5HLCAmaGRl di0+ZmxhZ3MpOw0KPiAgICAgICAgIGlmIChoZGV2LT5vcGVuKGhkZXYpKSB7DQo+ICsgICAgICAg ICAgICAgICBjbGVhcl9iaXQoSENJX1JVTk5JTkcsICZoZGV2LT5mbGFncyk7DQo+ICAgICAgICAg ICAgICAgICByZXQgPSAtRUlPOw0KPiAgICAgICAgICAgICAgICAgZ290byBkb25lOw0KPiAgICAg ICAgIH0NCj4gDQo+IC0gICAgICAgc2V0X2JpdChIQ0lfUlVOTklORywgJmhkZXYtPmZsYWdzKTsN Cj4gICAgICAgICBoY2lfc29ja19kZXZfZXZlbnQoaGRldiwgSENJX0RFVl9PUEVOKTsNCg0KSG93 IGNhbiB3ZSBwcm9jZWVkIG9uIHRoaXM/IEknbSBub3QgbXVjaCBmYW1pbGlhciB3aXRoIGJ0dXNi IGRyaXZlciwgc28gbm90IHN1cmUgaWYgSENJX1JVTk5JTkcgbG9naWMgY2FuIGJlIGNvbXBsZXRl bHkgcmVtb3ZlZC4NCk1lYW53aGlsZSBjb3VsZCB5b3UgYWNjZXB0IHByb3Bvc2VkIGZpeCBpbiB0 aGlzIHBhdGNoIGZvciB0aGUgcG90ZW50aWFsIGlzc3VlIHdlIHNwb3R0ZWQgZHVyaW5nIHN0cmVz cyB0ZXN0cy4NCg0KVGhlIGNoYW5nZSBkb2Vzbid0IGhhdmUgYW55IHNpZGUtZWZmZWN0cy4gRHVy aW5nIHRlYXJkb3duLCByYWNlIGJldHdlZW4gYnR1c2JfY2xvc2UoKSBhbmQgYnR1c2JfaW50cl9j b21wbGV0ZSgpIGlzIGFwcHJvcHJpYXRlbHkgdGFrZW4gY2FyZSBvZiB3aXRoIHRoZSBoZWxwIG9m IEJUVVNCX0lOVFJfUlVOTklORyBmbGFnLg0KDQpSZWdhcmRzLA0KQW1pdGt1bWFyIEthcndhcg0K