From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0C9B210E108 for ; Fri, 14 Jul 2023 17:02:38 +0000 (UTC) From: "Souza, Jose" To: "igt-dev@lists.freedesktop.org" , "Auld, Matthew" Date: Fri, 14 Jul 2023 17:02:16 +0000 Message-ID: References: <20230714144238.573403-1-matthew.auld@intel.com> <20230714144238.573403-5-matthew.auld@intel.com> In-Reply-To: <20230714144238.573403-5-matthew.auld@intel.com> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t v3 4/6] tests/xe: handle small-bar systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: T24gRnJpLCAyMDIzLTA3LTE0IGF0IDE1OjQyICswMTAwLCBNYXR0aGV3IEF1bGQgd3JvdGU6DQo+ IENvbnZlcnQgYWxsIHRoZSBleGlzdGluZyB0ZXN0cyB0aGF0IHJlcXVpcmUgQ1BVIGFjY2Vzcy4N Cj4gDQoNCk1pc3NpbmcgY29udmVyc2lvbiBpbiB0ZXN0X2JhZF9mbGFncygpLCB0ZXN0X2JhZF9l eHRlbnNpb25zKCksIHRlc3RfYmFkX29iamVjdCgpLCB0ZXN0X3dpdGhfb25lX2JvX3R3b19maWxl cygpLCB0ZXN0X3JlaW1wb3J0X2Nsb3NlX3JhY2UoKSwNCnRocmVhZF9mbl9leHBvcnRfdnNfY2xv c2UoKSwgdGVzdF9sbHNlZWtfc2l6ZSgpLCB0ZXN0X2xsc2Vla19iYWQoKS4NCg0KVGhlIG1tYXBz IHRlc3RzIGFyZSBleHBlY3RlZCB0byBmYWlsIGJ1dCBub3QgYmVjYXVzZSByZWdpb24gaXMgbm90 IGNwdSBtbWFwZWQuDQpGb3IgdGhlIHByaW1lX3NlbGZfaW1wb3J0IHRlc3QgaXQgaXMgYWxzbyBn b29kIHRvIHJlcXVpcmUgdmlzaWJsZSB2cmFtIGV2ZW4gaWYgdGhlIHRlc3QgZG9uJ3QgZG8gYW55 IG9wZXJhdGlvbiB3aXRoIENQVSwgaW4gcmVhbCB3b3JsZCBhcHBsaWNhdGlvbnMNCnlvdSBuZWVk IHRvIGdpdmUgYXBwbGljYXRpb25zIHRoZSBmbGV4aWJpbGl0eSB0byBhY2Nlc3MgaXQgaW4gQ1BV IGFzIHdlbGwuIA0KDQoNCj4gdjI6DQo+ICAgLSBTcGxpdCBvdXQgdGhlIGxpYiBjaGFuZ2VzDQo+ ICAgLSBQcmVmZXIgU1pfMjU2TSBhbmQgU1pfMUcgaW4geGVfZXZpY3QNCj4gICAtIFNpbXBsaWZ5 IGFuZCBmaXggdGhlIGJvX2ZsYWdzIGhhbmRsaW5nIGluIHRlc3RfZXhlYw0KPiB2MzoNCj4gICAt IFNtYWxsIGZpeCBpbiB4ZV9ldmljdCBjb252ZXJzaW9uIChtaXNzaW5nIHN5c3RlbV9tZW1vcnko ZmQpKQ0KPiANCj4gU2lnbmVkLW9mZi1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50 ZWwuY29tPg0KPiBDYzogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5j b20+DQo+IENjOiBLYW1pbCBLb25pZWN6bnkgPGthbWlsLmtvbmllY3pueUBsaW51eC5pbnRlbC5j b20+DQo+IENjOiBHd2FuLWd5ZW9uZyBNdW4gPGd3YW4tZ3llb25nLm11bkBpbnRlbC5jb20+DQo+ IC0tLQ0KPiAgdGVzdHMveGUveGVfZG1hX2J1Zl9zeW5jLmMgICAgICB8ICAzICsrLQ0KPiAgdGVz dHMveGUveGVfZXZpY3QuYyAgICAgICAgICAgICB8IDM0ICsrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLQ0KPiAgdGVzdHMveGUveGVfZXhlY19iYWxhbmNlci5jICAgICB8ICA2ICsrKy0t LQ0KPiAgdGVzdHMveGUveGVfZXhlY19iYXNpYy5jICAgICAgICB8IDE3ICsrKysrKysrLS0tLS0t LS0tDQo+ICB0ZXN0cy94ZS94ZV9leGVjX2NvbXB1dGVfbW9kZS5jIHwgIDQgKystLQ0KPiAgdGVz dHMveGUveGVfZXhlY19mYXVsdF9tb2RlLmMgICB8IDEyICsrKysrKysrLS0tLQ0KPiAgdGVzdHMv eGUveGVfZXhlY19yZXNldC5jICAgICAgICB8IDEzICsrKysrKysrLS0tLS0NCj4gIHRlc3RzL3hl L3hlX2V4ZWNfc3RvcmUuYyAgICAgICAgfCAgNiArKysrLS0NCj4gIHRlc3RzL3hlL3hlX2V4ZWNf dGhyZWFkcy5jICAgICAgfCAgOSArKysrKystLS0NCj4gIHRlc3RzL3hlL3hlX2d1Y19wYy5jICAg ICAgICAgICAgfCAgMyArKy0NCj4gIHRlc3RzL3hlL3hlX21tYXAuYyAgICAgICAgICAgICAgfCAg NCArKy0tDQo+ICB0ZXN0cy94ZS94ZV9wbS5jICAgICAgICAgICAgICAgIHwgIDMgKystDQo+ICB0 ZXN0cy94ZS94ZV9wcmltZV9zZWxmX2ltcG9ydC5jIHwgIDggKysrKy0tLS0NCj4gIHRlc3RzL3hl L3hlX3ZtLmMgICAgICAgICAgICAgICAgfCAyMyArKysrKysrKysrKysrKystLS0tLS0tDQo+ICAx NCBmaWxlcyBjaGFuZ2VkLCA4OSBpbnNlcnRpb25zKCspLCA1NiBkZWxldGlvbnMoLSkNCj4gDQo+ IGRpZmYgLS1naXQgYS90ZXN0cy94ZS94ZV9kbWFfYnVmX3N5bmMuYyBiL3Rlc3RzL3hlL3hlX2Rt YV9idWZfc3luYy5jDQo+IGluZGV4IGMwOGY4YWMxOC4uNGU3NmQ4NWFiIDEwMDY0NA0KPiAtLS0g YS90ZXN0cy94ZS94ZV9kbWFfYnVmX3N5bmMuYw0KPiArKysgYi90ZXN0cy94ZS94ZV9kbWFfYnVm X3N5bmMuYw0KPiBAQCAtMTIwLDcgKzEyMCw4IEBAIHRlc3RfZXhwb3J0X2RtYV9idWYoc3RydWN0 IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgKmh3ZTAsDQo+ICAJYm9fc2l6ZSA9IEFMSUdO KGJvX3NpemUgKyB4ZV9jc19wcmVmZXRjaF9zaXplKGZkWzBdKSwNCj4gIAkJCXhlX2dldF9kZWZh dWx0X2FsaWdubWVudChmZFswXSkpOw0KPiAgCWZvciAoaSA9IDA7IGkgPCBuX2JvOyArK2kpIHsN Cj4gLQkJYm9baV0gPSB4ZV9ib19jcmVhdGUoZmRbMF0sIGh3ZTAtPmd0X2lkLCAwLCBib19zaXpl KTsNCj4gKwkJYm9baV0gPSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmRbMF0sIDAsIGJvX3NpemUsDQo+ ICsJCQkJCSAgIHZpc2libGVfdnJhbV9pZl9wb3NzaWJsZShmZFswXSwgaHdlMC0+Z3RfaWQpKTsN Cj4gIAkJZG1hX2J1Zl9mZFtpXSA9IHByaW1lX2hhbmRsZV90b19mZChmZFswXSwgYm9baV0pOw0K PiAgCQlpbXBvcnRfYm9baV0gPSBwcmltZV9mZF90b19oYW5kbGUoZmRbMV0sIGRtYV9idWZfZmRb aV0pOw0KPiAgDQo+IGRpZmYgLS1naXQgYS90ZXN0cy94ZS94ZV9ldmljdC5jIGIvdGVzdHMveGUv eGVfZXZpY3QuYw0KPiBpbmRleCAxYTcwZjFiNDUuLmM0NGNiODBkYyAxMDA2NDQNCj4gLS0tIGEv dGVzdHMveGUveGVfZXZpY3QuYw0KPiArKysgYi90ZXN0cy94ZS94ZV9ldmljdC5jDQo+IEBAIC05 NywxNSArOTcsMTcgQEAgdGVzdF9ldmljdChpbnQgZmQsIHN0cnVjdCBkcm1feGVfZW5naW5lX2Ns YXNzX2luc3RhbmNlICplY2ksDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkg PCBuX2V4ZWNzIC8gOCA/IDAgOiB2bTsNCj4gIA0KPiAgCQkJaWYgKGZsYWdzICYgTVVMVElfVk0p IHsNCj4gLQkJCQlfX2JvID0gYm9baV0gPSB4ZV9ib19jcmVhdGUoZmQsIGVjaS0+Z3RfaWQsIDAs DQo+IC0JCQkJCQkJICAgIGJvX3NpemUpOw0KPiArCQkJCV9fYm8gPSBib1tpXSA9IHhlX2JvX2Ny ZWF0ZV9mbGFncyhmZCwgMCwNCj4gKwkJCQkJCQkJICBib19zaXplLA0KPiArCQkJCQkJCQkgIHZp c2libGVfdnJhbV9tZW1vcnkoZmQsIGVjaS0+Z3RfaWQpKTsNCj4gIAkJCX0gZWxzZSBpZiAoZmxh Z3MgJiBUSFJFQURFRCkgew0KPiAtCQkJCV9fYm8gPSBib1tpXSA9IHhlX2JvX2NyZWF0ZShmZCwg ZWNpLT5ndF9pZCwgdm0sDQo+IC0JCQkJCQkJICAgIGJvX3NpemUpOw0KPiArCQkJCV9fYm8gPSBi b1tpXSA9IHhlX2JvX2NyZWF0ZV9mbGFncyhmZCwgdm0sDQo+ICsJCQkJCQkJCSAgYm9fc2l6ZSwN Cj4gKwkJCQkJCQkJICB2aXNpYmxlX3ZyYW1fbWVtb3J5KGZkLCBlY2ktPmd0X2lkKSk7DQo+ICAJ CQl9IGVsc2Ugew0KPiAgCQkJCV9fYm8gPSBib1tpXSA9IHhlX2JvX2NyZWF0ZV9mbGFncyhmZCwg X3ZtLA0KPiAgCQkJCQkJCQkgIGJvX3NpemUsDQo+IC0JCQkJCQkJCSAgdnJhbV9tZW1vcnkoZmQs IGVjaS0+Z3RfaWQpIHwNCj4gKwkJCQkJCQkJICB2aXNpYmxlX3ZyYW1fbWVtb3J5KGZkLCBlY2kt Pmd0X2lkKSB8DQo+ICAJCQkJCQkJCSAgc3lzdGVtX21lbW9yeShmZCkpOw0KPiAgCQkJfQ0KPiAg CQl9IGVsc2Ugew0KPiBAQCAtMjc4LDE1ICsyODAsMTcgQEAgdGVzdF9ldmljdF9jbShpbnQgZmQs IHN0cnVjdCBkcm1feGVfZW5naW5lX2NsYXNzX2luc3RhbmNlICplY2ksDQo+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGkgPCBuX2V4ZWNzIC8gOCA/IDAgOiB2bTsNCj4gIA0KPiAg CQkJaWYgKGZsYWdzICYgTVVMVElfVk0pIHsNCj4gLQkJCQlfX2JvID0gYm9baV0gPSB4ZV9ib19j cmVhdGUoZmQsIGVjaS0+Z3RfaWQsDQo+IC0JCQkJCQkJICAgIDAsIGJvX3NpemUpOw0KPiArCQkJ CV9fYm8gPSBib1tpXSA9IHhlX2JvX2NyZWF0ZV9mbGFncyhmZCwgMCwNCj4gKwkJCQkJCQkJICBi b19zaXplLA0KPiArCQkJCQkJCQkgIHZpc2libGVfdnJhbV9tZW1vcnkoZmQsIGVjaS0+Z3RfaWQp KTsNCj4gIAkJCX0gZWxzZSBpZiAoZmxhZ3MgJiBUSFJFQURFRCkgew0KPiAtCQkJCV9fYm8gPSBi b1tpXSA9IHhlX2JvX2NyZWF0ZShmZCwgZWNpLT5ndF9pZCwNCj4gLQkJCQkJCQkgICAgdm0sIGJv X3NpemUpOw0KPiArCQkJCV9fYm8gPSBib1tpXSA9IHhlX2JvX2NyZWF0ZV9mbGFncyhmZCwgdm0s DQo+ICsJCQkJCQkJCSAgYm9fc2l6ZSwNCj4gKwkJCQkJCQkJICB2aXNpYmxlX3ZyYW1fbWVtb3J5 KGZkLCBlY2ktPmd0X2lkKSk7DQo+ICAJCQl9IGVsc2Ugew0KPiAgCQkJCV9fYm8gPSBib1tpXSA9 IHhlX2JvX2NyZWF0ZV9mbGFncyhmZCwgX3ZtLA0KPiAgCQkJCQkJCQkgIGJvX3NpemUsDQo+IC0J CQkJCQkJCSAgdnJhbV9tZW1vcnkoZmQsIGVjaS0+Z3RfaWQpIHwNCj4gKwkJCQkJCQkJICB2aXNp YmxlX3ZyYW1fbWVtb3J5KGZkLCBlY2ktPmd0X2lkKSB8DQo+ICAJCQkJCQkJCSAgc3lzdGVtX21l bW9yeShmZCkpOw0KPiAgCQkJfQ0KPiAgCQl9IGVsc2Ugew0KPiBAQCAtNDQ5LDkgKzQ1MywxNSBA QCB0aHJlYWRzKGludCBmZCwgc3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgKmVj aSwNCj4gIAkJcHRocmVhZF9qb2luKHRocmVhZHNfZGF0YVtpXS50aHJlYWQsIE5VTEwpOw0KPiAg fQ0KPiAgDQo+ICsjZGVmaW5lIFNaXzI1Nk0gMHgxMDAwMDAwMA0KPiArI2RlZmluZSBTWl8xRyAg IDB4NDAwMDAwMDANCj4gKw0KPiAgc3RhdGljIHVpbnQ2NF90IGNhbGNfYm9fc2l6ZSh1aW50NjRf dCB2cmFtX3NpemUsIGludCBtdWwsIGludCBkaXYpDQo+ICB7DQo+IC0JcmV0dXJuIChBTElHTih2 cmFtX3NpemUsIDB4NDAwMDAwMDApICAqIG11bCkgLyBkaXY7DQo+ICsJaWYgKHZyYW1fc2l6ZSA+ PSBTWl8xRykNCj4gKwkJcmV0dXJuIChBTElHTih2cmFtX3NpemUsIFNaXzFHKSAgKiBtdWwpIC8g ZGl2Ow0KPiArCWVsc2UNCj4gKwkJcmV0dXJuIChBTElHTih2cmFtX3NpemUsIFNaXzI1Nk0pICAq IG11bCkgLyBkaXY7IC8qIHNtYWxsLWJhciAqLw0KPiAgfQ0KPiAgDQo+ICAvKioNCj4gQEAgLTY2 NCw3ICs2NzQsNyBAQCBpZ3RfbWFpbg0KPiAgCWlndF9maXh0dXJlIHsNCj4gIAkJZmQgPSBkcm1f b3Blbl9kcml2ZXIoRFJJVkVSX1hFKTsNCj4gIAkJaWd0X3JlcXVpcmUoeGVfaGFzX3ZyYW0oZmQp KTsNCj4gLQkJdnJhbV9zaXplID0geGVfdnJhbV9zaXplKGZkLCAwKTsNCj4gKwkJdnJhbV9zaXpl ID0geGVfdmlzaWJsZV92cmFtX3NpemUoZmQsIDApOw0KPiAgCQlpZ3RfYXNzZXJ0KHZyYW1fc2l6 ZSk7DQo+ICANCj4gIAkJeGVfZm9yX2VhY2hfaHdfZW5naW5lKGZkLCBod2UpDQo+IGRpZmYgLS1n aXQgYS90ZXN0cy94ZS94ZV9leGVjX2JhbGFuY2VyLmMgYi90ZXN0cy94ZS94ZV9leGVjX2JhbGFu Y2VyLmMNCj4gaW5kZXggOGRmNmNlYmE4Li4wYjAwZDkzZGUgMTAwNjQ0DQo+IC0tLSBhL3Rlc3Rz L3hlL3hlX2V4ZWNfYmFsYW5jZXIuYw0KPiArKysgYi90ZXN0cy94ZS94ZV9leGVjX2JhbGFuY2Vy LmMNCj4gQEAgLTY5LDcgKzY5LDcgQEAgc3RhdGljIHZvaWQgdGVzdF9hbGxfYWN0aXZlKGludCBm ZCwgaW50IGd0LCBpbnQgY2xhc3MpDQo+ICAJYm9fc2l6ZSA9IHNpemVvZigqZGF0YSkgKiBudW1f cGxhY2VtZW50czsNCj4gIAlib19zaXplID0gQUxJR04oYm9fc2l6ZSArIHhlX2NzX3ByZWZldGNo X3NpemUoZmQpLCB4ZV9nZXRfZGVmYXVsdF9hbGlnbm1lbnQoZmQpKTsNCj4gIA0KPiAtCWJvID0g eGVfYm9fY3JlYXRlKGZkLCBndCwgdm0sIGJvX3NpemUpOw0KPiArCWJvID0geGVfYm9fY3JlYXRl X2ZsYWdzKGZkLCB2bSwgYm9fc2l6ZSwgdmlzaWJsZV92cmFtX2lmX3Bvc3NpYmxlKGZkLCBndCkp Ow0KPiAgCWRhdGEgPSB4ZV9ib19tYXAoZmQsIGJvLCBib19zaXplKTsNCj4gIA0KPiAgCWZvciAo aSA9IDA7IGkgPCBudW1fcGxhY2VtZW50czsgaSsrKSB7DQo+IEBAIC0yMjUsNyArMjI1LDcgQEAg dGVzdF9leGVjKGludCBmZCwgaW50IGd0LCBpbnQgY2xhc3MsIGludCBuX2VuZ2luZXMsIGludCBu X2V4ZWNzLA0KPiAgCQl9DQo+ICAJCW1lbXNldChkYXRhLCAwLCBib19zaXplKTsNCj4gIAl9IGVs c2Ugew0KPiAtCQlibyA9IHhlX2JvX2NyZWF0ZShmZCwgZ3QsIHZtLCBib19zaXplKTsNCj4gKwkJ Ym8gPSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmQsIHZtLCBib19zaXplLCB2aXNpYmxlX3ZyYW1faWZf cG9zc2libGUoZmQsIGd0KSk7DQo+ICAJCWRhdGEgPSB4ZV9ib19tYXAoZmQsIGJvLCBib19zaXpl KTsNCj4gIAl9DQo+ICANCj4gQEAgLTQ0Nyw3ICs0NDcsNyBAQCB0ZXN0X2NtKGludCBmZCwgaW50 IGd0LCBpbnQgY2xhc3MsIGludCBuX2VuZ2luZXMsIGludCBuX2V4ZWNzLA0KPiAgCQkJaWd0X2Fz c2VydChkYXRhKTsNCj4gIAkJfQ0KPiAgCX0gZWxzZSB7DQo+IC0JCWJvID0geGVfYm9fY3JlYXRl KGZkLCBndCwgdm0sIGJvX3NpemUpOw0KPiArCQlibyA9IHhlX2JvX2NyZWF0ZV9mbGFncyhmZCwg dm0sIGJvX3NpemUsIHZpc2libGVfdnJhbV9pZl9wb3NzaWJsZShmZCwgZ3QpKTsNCj4gIAkJZGF0 YSA9IHhlX2JvX21hcChmZCwgYm8sIGJvX3NpemUpOw0KPiAgCX0NCj4gIAltZW1zZXQoZGF0YSwg MCwgYm9fc2l6ZSk7DQo+IGRpZmYgLS1naXQgYS90ZXN0cy94ZS94ZV9leGVjX2Jhc2ljLmMgYi90 ZXN0cy94ZS94ZV9leGVjX2Jhc2ljLmMNCj4gaW5kZXggYWY1ODFjMzI3Li5hNGJhZTkzZjAgMTAw NjQ0DQo+IC0tLSBhL3Rlc3RzL3hlL3hlX2V4ZWNfYmFzaWMuYw0KPiArKysgYi90ZXN0cy94ZS94 ZV9leGVjX2Jhc2ljLmMNCj4gQEAgLTEyNiwxNSArMTI2LDE0IEBAIHRlc3RfZXhlYyhpbnQgZmQs IHN0cnVjdCBkcm1feGVfZW5naW5lX2NsYXNzX2luc3RhbmNlICplY2ksDQo+ICAJCX0NCj4gIAkJ bWVtc2V0KGRhdGEsIDAsIGJvX3NpemUpOw0KPiAgCX0gZWxzZSB7DQo+IC0JCWlmIChmbGFncyAm IERFRkVSX0FMTE9DKSB7DQo+IC0JCQlibyA9IHhlX2JvX2NyZWF0ZV9mbGFncyhmZCwgbl92bSA9 PSAxID8gdm1bMF0gOiAwLA0KPiAtCQkJCQkJYm9fc2l6ZSwNCj4gLQkJCQkJCXZyYW1faWZfcG9z c2libGUoZmQsIGVjaS0+Z3RfaWQpIHwNCj4gLQkJCQkJCVhFX0dFTV9DUkVBVEVfRkxBR19ERUZF Ul9CQUNLSU5HKTsNCj4gLQkJfSBlbHNlIHsNCj4gLQkJCWJvID0geGVfYm9fY3JlYXRlKGZkLCBl Y2ktPmd0X2lkLCBuX3ZtID09IDEgPyB2bVswXSA6IDAsDQo+IC0JCQkJCSAgYm9fc2l6ZSk7DQo+ IC0JCX0NCj4gKwkJdWludDMyX3QgYm9fZmxhZ3M7DQo+ICsNCj4gKwkJYm9fZmxhZ3MgPSB2aXNp YmxlX3ZyYW1faWZfcG9zc2libGUoZmQsIGVjaS0+Z3RfaWQpOw0KPiArCQlpZiAoZmxhZ3MgJiBE RUZFUl9BTExPQykNCj4gKwkJCWJvX2ZsYWdzIHw9IFhFX0dFTV9DUkVBVEVfRkxBR19ERUZFUl9C QUNLSU5HOw0KPiArDQo+ICsJCWJvID0geGVfYm9fY3JlYXRlX2ZsYWdzKGZkLCBuX3ZtID09IDEg PyB2bVswXSA6IDAsDQo+ICsJCQkJCWJvX3NpemUsIGJvX2ZsYWdzKTsNCj4gIAkJaWYgKCEoZmxh Z3MgJiBERUZFUl9CSU5EKSkNCj4gIAkJCWRhdGEgPSB4ZV9ib19tYXAoZmQsIGJvLCBib19zaXpl KTsNCj4gIAl9DQo+IGRpZmYgLS1naXQgYS90ZXN0cy94ZS94ZV9leGVjX2NvbXB1dGVfbW9kZS5j IGIvdGVzdHMveGUveGVfZXhlY19jb21wdXRlX21vZGUuYw0KPiBpbmRleCAyN2I1Mzg0MTQuLmVl OTc1NmMyMSAxMDA2NDQNCj4gLS0tIGEvdGVzdHMveGUveGVfZXhlY19jb21wdXRlX21vZGUuYw0K PiArKysgYi90ZXN0cy94ZS94ZV9leGVjX2NvbXB1dGVfbW9kZS5jDQo+IEBAIC0xNTAsOCArMTUw LDggQEAgdGVzdF9leGVjKGludCBmZCwgc3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFu Y2UgKmVjaSwNCj4gIAkJCWlndF9hc3NlcnQoZGF0YSk7DQo+ICAJCX0NCj4gIAl9IGVsc2Ugew0K PiAtCQlibyA9IHhlX2JvX2NyZWF0ZShmZCwgZWNpLT5ndF9pZCwgZmxhZ3MgJiBWTV9GT1JfQk8g PyB2bSA6IDAsDQo+IC0JCQkJICBib19zaXplKTsNCj4gKwkJYm8gPSB4ZV9ib19jcmVhdGVfZmxh Z3MoZmQsIGZsYWdzICYgVk1fRk9SX0JPID8gdm0gOiAwLA0KPiArCQkJCQlib19zaXplLCB2aXNp YmxlX3ZyYW1faWZfcG9zc2libGUoZmQsIGVjaS0+Z3RfaWQpKTsNCj4gIAkJZGF0YSA9IHhlX2Jv X21hcChmZCwgYm8sIGJvX3NpemUpOw0KPiAgCX0NCj4gIAltZW1zZXQoZGF0YSwgMCwgYm9fc2l6 ZSk7DQo+IGRpZmYgLS1naXQgYS90ZXN0cy94ZS94ZV9leGVjX2ZhdWx0X21vZGUuYyBiL3Rlc3Rz L3hlL3hlX2V4ZWNfZmF1bHRfbW9kZS5jDQo+IGluZGV4IGJmNzIzMGM1YS4uN2RjYmIzYzQ1IDEw MDY0NA0KPiAtLS0gYS90ZXN0cy94ZS94ZV9leGVjX2ZhdWx0X21vZGUuYw0KPiArKysgYi90ZXN0 cy94ZS94ZV9leGVjX2ZhdWx0X21vZGUuYw0KPiBAQCAtMTUzLDkgKzE1MywxMSBAQCB0ZXN0X2V4 ZWMoaW50IGZkLCBzdHJ1Y3QgZHJtX3hlX2VuZ2luZV9jbGFzc19pbnN0YW5jZSAqZWNpLA0KPiAg CX0gZWxzZSB7DQo+ICAJCWlmIChmbGFncyAmIFBSRUZFVENIKQ0KPiAgCQkJYm8gPSB4ZV9ib19j cmVhdGVfZmxhZ3MoZmQsIDAsIGJvX3NpemUsDQo+IC0JCQkJCQlhbGxfbWVtb3J5X3JlZ2lvbnMo ZmQpKTsNCj4gKwkJCQkJCWFsbF9tZW1vcnlfcmVnaW9ucyhmZCkgfA0KPiArCQkJCQkJdmlzaWJs ZV92cmFtX2lmX3Bvc3NpYmxlKGZkLCAwKSk7DQo+ICAJCWVsc2UNCj4gLQkJCWJvID0geGVfYm9f Y3JlYXRlKGZkLCBlY2ktPmd0X2lkLCAwLCBib19zaXplKTsNCj4gKwkJCWJvID0geGVfYm9fY3Jl YXRlX2ZsYWdzKGZkLCAwLCBib19zaXplLA0KPiArCQkJCQkJdmlzaWJsZV92cmFtX2lmX3Bvc3Np YmxlKGZkLCBlY2ktPmd0X2lkKSk7DQo+ICAJCWRhdGEgPSB4ZV9ib19tYXAoZmQsIGJvLCBib19z aXplKTsNCj4gIAl9DQo+ICAJbWVtc2V0KGRhdGEsIDAsIGJvX3NpemUpOw0KPiBAQCAtMzgyLDgg KzM4NCwxMCBAQCB0ZXN0X2F0b21pYyhpbnQgZmQsIHN0cnVjdCBkcm1feGVfZW5naW5lX2NsYXNz X2luc3RhbmNlICplY2ksDQo+ICAJYWRkcl93YWl0ID0gYWRkciArIGJvX3NpemU7DQo+ICANCj4g IAlibyA9IHhlX2JvX2NyZWF0ZV9mbGFncyhmZCwgdm0sIGJvX3NpemUsDQo+IC0JCQkJYWxsX21l bW9yeV9yZWdpb25zKGZkKSk7DQo+IC0JYm9fd2FpdCA9IHhlX2JvX2NyZWF0ZShmZCwgZWNpLT5n dF9pZCwgdm0sIGJvX3NpemUpOw0KPiArCQkJCWFsbF9tZW1vcnlfcmVnaW9ucyhmZCkgfA0KPiAr CQkJCXZpc2libGVfdnJhbV9pZl9wb3NzaWJsZShmZCwgMCkpOw0KPiArCWJvX3dhaXQgPSB4ZV9i b19jcmVhdGVfZmxhZ3MoZmQsIHZtLCBib19zaXplLA0KPiArCQkJCSAgICAgdmlzaWJsZV92cmFt X2lmX3Bvc3NpYmxlKGZkLCBlY2ktPmd0X2lkKSk7DQo+ICAJZGF0YSA9IHhlX2JvX21hcChmZCwg Ym8sIGJvX3NpemUpOw0KPiAgCXdhaXQgPSB4ZV9ib19tYXAoZmQsIGJvX3dhaXQsIGJvX3NpemUp Ow0KPiAgCXB0ciA9ICZkYXRhWzBdLmRhdGE7DQo+IGRpZmYgLS1naXQgYS90ZXN0cy94ZS94ZV9l eGVjX3Jlc2V0LmMgYi90ZXN0cy94ZS94ZV9leGVjX3Jlc2V0LmMNCj4gaW5kZXggNmNhMWNkNzY5 Li5kZmJhYTYwMzUgMTAwNjQ0DQo+IC0tLSBhL3Rlc3RzL3hlL3hlX2V4ZWNfcmVzZXQuYw0KPiAr KysgYi90ZXN0cy94ZS94ZV9leGVjX3Jlc2V0LmMNCj4gQEAgLTUwLDcgKzUwLDggQEAgc3RhdGlj IHZvaWQgdGVzdF9zcGluKGludCBmZCwgc3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFu Y2UgKmVjaSkNCj4gIAlib19zaXplID0gQUxJR04oYm9fc2l6ZSArIHhlX2NzX3ByZWZldGNoX3Np emUoZmQpLA0KPiAgCQkJeGVfZ2V0X2RlZmF1bHRfYWxpZ25tZW50KGZkKSk7DQo+ICANCj4gLQli byA9IHhlX2JvX2NyZWF0ZShmZCwgZWNpLT5ndF9pZCwgdm0sIGJvX3NpemUpOw0KPiArCWJvID0g eGVfYm9fY3JlYXRlX2ZsYWdzKGZkLCB2bSwgYm9fc2l6ZSwNCj4gKwkJCQl2aXNpYmxlX3ZyYW1f aWZfcG9zc2libGUoZmQsIGVjaS0+Z3RfaWQpKTsNCj4gIAlzcGluID0geGVfYm9fbWFwKGZkLCBi bywgYm9fc2l6ZSk7DQo+ICANCj4gIAllbmdpbmUgPSB4ZV9lbmdpbmVfY3JlYXRlKGZkLCB2bSwg ZWNpLCAwKTsNCj4gQEAgLTE4Nyw3ICsxODgsNyBAQCB0ZXN0X2JhbGFuY2VyKGludCBmZCwgaW50 IGd0LCBpbnQgY2xhc3MsIGludCBuX2VuZ2luZXMsIGludCBuX2V4ZWNzLA0KPiAgCWJvX3NpemUg PSBBTElHTihib19zaXplICsgeGVfY3NfcHJlZmV0Y2hfc2l6ZShmZCksDQo+ICAJCQl4ZV9nZXRf ZGVmYXVsdF9hbGlnbm1lbnQoZmQpKTsNCj4gIA0KPiAtCWJvID0geGVfYm9fY3JlYXRlKGZkLCBn dCwgdm0sIGJvX3NpemUpOw0KPiArCWJvID0geGVfYm9fY3JlYXRlX2ZsYWdzKGZkLCB2bSwgYm9f c2l6ZSwgdmlzaWJsZV92cmFtX2lmX3Bvc3NpYmxlKGZkLCBndCkpOw0KPiAgCWRhdGEgPSB4ZV9i b19tYXAoZmQsIGJvLCBib19zaXplKTsNCj4gIA0KPiAgCWZvciAoaSA9IDA7IGkgPCBuX2VuZ2lu ZXM7IGkrKykgew0KPiBAQCAtMzc5LDcgKzM4MCw4IEBAIHRlc3RfbGVnYWN5X21vZGUoaW50IGZk LCBzdHJ1Y3QgZHJtX3hlX2VuZ2luZV9jbGFzc19pbnN0YW5jZSAqZWNpLA0KPiAgCWJvX3NpemUg PSBBTElHTihib19zaXplICsgeGVfY3NfcHJlZmV0Y2hfc2l6ZShmZCksDQo+ICAJCQl4ZV9nZXRf ZGVmYXVsdF9hbGlnbm1lbnQoZmQpKTsNCj4gIA0KPiAtCWJvID0geGVfYm9fY3JlYXRlKGZkLCBl Y2ktPmd0X2lkLCB2bSwgYm9fc2l6ZSk7DQo+ICsJYm8gPSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmQs IHZtLCBib19zaXplLA0KPiArCQkJCXZpc2libGVfdnJhbV9pZl9wb3NzaWJsZShmZCwgZWNpLT5n dF9pZCkpOw0KPiAgCWRhdGEgPSB4ZV9ib19tYXAoZmQsIGJvLCBib19zaXplKTsNCj4gIA0KPiAg CWZvciAoaSA9IDA7IGkgPCBuX2VuZ2luZXM7IGkrKykgew0KPiBAQCAtNTUwLDcgKzU1Miw4IEBA IHRlc3RfY29tcHV0ZV9tb2RlKGludCBmZCwgc3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5z dGFuY2UgKmVjaSwNCj4gIAlib19zaXplID0gQUxJR04oYm9fc2l6ZSArIHhlX2NzX3ByZWZldGNo X3NpemUoZmQpLA0KPiAgCQkJeGVfZ2V0X2RlZmF1bHRfYWxpZ25tZW50KGZkKSk7DQo+ICANCj4g LQlibyA9IHhlX2JvX2NyZWF0ZShmZCwgZWNpLT5ndF9pZCwgdm0sIGJvX3NpemUpOw0KPiArCWJv ID0geGVfYm9fY3JlYXRlX2ZsYWdzKGZkLCB2bSwgYm9fc2l6ZSwNCj4gKwkJCQl2aXNpYmxlX3Zy YW1faWZfcG9zc2libGUoZmQsIGVjaS0+Z3RfaWQpKTsNCj4gIAlkYXRhID0geGVfYm9fbWFwKGZk LCBibywgYm9fc2l6ZSk7DQo+ICAJbWVtc2V0KGRhdGEsIDAsIGJvX3NpemUpOw0KPiAgDQo+IEBA IC02ODIsNyArNjg1LDcgQEAgc3RhdGljIHZvaWQgc3VibWl0X2pvYnMoc3RydWN0IGd0X3RocmVh ZF9kYXRhICp0KQ0KPiAgCXVpbnQzMl90IGJvOw0KPiAgCXVpbnQzMl90ICpkYXRhOw0KPiAgDQo+ IC0JYm8gPSB4ZV9ib19jcmVhdGUoZmQsIDAsIHZtLCBib19zaXplKTsNCj4gKwlibyA9IHhlX2Jv X2NyZWF0ZV9mbGFncyhmZCwgdm0sIGJvX3NpemUsIHZpc2libGVfdnJhbV9pZl9wb3NzaWJsZShm ZCwgMCkpOw0KPiAgCWRhdGEgPSB4ZV9ib19tYXAoZmQsIGJvLCBib19zaXplKTsNCj4gIAlkYXRh WzBdID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsNCj4gIA0KPiBkaWZmIC0tZ2l0IGEvdGVzdHMveGUv eGVfZXhlY19zdG9yZS5jIGIvdGVzdHMveGUveGVfZXhlY19zdG9yZS5jDQo+IGluZGV4IDk2NDBi MTU2Ny4uYWIxYmRlMzZlIDEwMDY0NA0KPiAtLS0gYS90ZXN0cy94ZS94ZV9leGVjX3N0b3JlLmMN Cj4gKysrIGIvdGVzdHMveGUveGVfZXhlY19zdG9yZS5jDQo+IEBAIC04Miw3ICs4Miw4IEBAIHN0 YXRpYyB2b2lkIHN0b3JlKGludCBmZCkNCj4gIAkJCXhlX2dldF9kZWZhdWx0X2FsaWdubWVudChm ZCkpOw0KPiAgDQo+ICAJaHdfZW5naW5lID0geGVfaHdfZW5naW5lKGZkLCAxKTsNCj4gLQlibyA9 IHhlX2JvX2NyZWF0ZShmZCwgaHdfZW5naW5lLT5ndF9pZCwgdm0sIGJvX3NpemUpOw0KPiArCWJv ID0geGVfYm9fY3JlYXRlX2ZsYWdzKGZkLCB2bSwgYm9fc2l6ZSwNCj4gKwkJCQl2aXNpYmxlX3Zy YW1faWZfcG9zc2libGUoZmQsIGh3X2VuZ2luZS0+Z3RfaWQpKTsNCj4gIA0KPiAgCXhlX3ZtX2Jp bmRfYXN5bmMoZmQsIHZtLCBod19lbmdpbmUtPmd0X2lkLCBibywgMCwgYWRkciwgYm9fc2l6ZSwg JnN5bmMsIDEpOw0KPiAgCWRhdGEgPSB4ZV9ib19tYXAoZmQsIGJvLCBib19zaXplKTsNCj4gQEAg LTEzOCw3ICsxMzksOCBAQCBzdGF0aWMgdm9pZCBzdG9yZV9hbGwoaW50IGZkLCBpbnQgZ3QsIGlu dCBjbGFzcykNCj4gIAlib19zaXplID0gQUxJR04oYm9fc2l6ZSArIHhlX2NzX3ByZWZldGNoX3Np emUoZmQpLA0KPiAgCQkJeGVfZ2V0X2RlZmF1bHRfYWxpZ25tZW50KGZkKSk7DQo+ICANCj4gLQli byA9IHhlX2JvX2NyZWF0ZShmZCwgMCwgdm0sIGJvX3NpemUpOw0KPiArCWJvID0geGVfYm9fY3Jl YXRlX2ZsYWdzKGZkLCB2bSwgYm9fc2l6ZSwNCj4gKwkJCQl2aXNpYmxlX3ZyYW1faWZfcG9zc2li bGUoZmQsIDApKTsNCj4gIAlkYXRhID0geGVfYm9fbWFwKGZkLCBibywgYm9fc2l6ZSk7DQo+ICAN Cj4gIAl4ZV9mb3JfZWFjaF9od19lbmdpbmUoZmQsIGh3ZSkgew0KPiBkaWZmIC0tZ2l0IGEvdGVz dHMveGUveGVfZXhlY190aHJlYWRzLmMgYi90ZXN0cy94ZS94ZV9leGVjX3RocmVhZHMuYw0KPiBp bmRleCA0MTRkOGVlOWEuLjM5NjM5ODk4NCAxMDA2NDQNCj4gLS0tIGEvdGVzdHMveGUveGVfZXhl Y190aHJlYWRzLmMNCj4gKysrIGIvdGVzdHMveGUveGVfZXhlY190aHJlYWRzLmMNCj4gQEAgLTEw Niw3ICsxMDYsOCBAQCB0ZXN0X2JhbGFuY2VyKGludCBmZCwgaW50IGd0LCB1aW50MzJfdCB2bSwg dWludDY0X3QgYWRkciwgdWludDY0X3QgdXNlcnB0ciwNCj4gIAkJCWlndF9hc3NlcnQoZGF0YSk7 DQo+ICAJCX0NCj4gIAl9IGVsc2Ugew0KPiAtCQlibyA9IHhlX2JvX2NyZWF0ZShmZCwgZ3QsIHZt LCBib19zaXplKTsNCj4gKwkJYm8gPSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmQsIHZtLCBib19zaXpl LA0KPiArCQkJCQl2aXNpYmxlX3ZyYW1faWZfcG9zc2libGUoZmQsIGd0KSk7DQo+ICAJCWRhdGEg PSB4ZV9ib19tYXAoZmQsIGJvLCBib19zaXplKTsNCj4gIAl9DQo+ICAJbWVtc2V0KGRhdGEsIDAs IGJvX3NpemUpOw0KPiBAQCAtMzA2LDcgKzMwNyw4IEBAIHRlc3RfY29tcHV0ZV9tb2RlKGludCBm ZCwgdWludDMyX3Qgdm0sIHVpbnQ2NF90IGFkZHIsIHVpbnQ2NF90IHVzZXJwdHIsDQo+ICAJCQlp Z3RfYXNzZXJ0KGRhdGEpOw0KPiAgCQl9DQo+ICAJfSBlbHNlIHsNCj4gLQkJYm8gPSB4ZV9ib19j cmVhdGUoZmQsIGVjaS0+Z3RfaWQsIDAsIGJvX3NpemUpOw0KPiArCQlibyA9IHhlX2JvX2NyZWF0 ZV9mbGFncyhmZCwgMCwgYm9fc2l6ZSwNCj4gKwkJCQkJdmlzaWJsZV92cmFtX2lmX3Bvc3NpYmxl KGZkLCBlY2ktPmd0X2lkKSk7DQo+ICAJCWRhdGEgPSB4ZV9ib19tYXAoZmQsIGJvLCBib19zaXpl KTsNCj4gIAl9DQo+ICAJbWVtc2V0KGRhdGEsIDAsIGJvX3NpemUpOw0KPiBAQCAtNTE2LDcgKzUx OCw4IEBAIHRlc3RfbGVnYWN5X21vZGUoaW50IGZkLCB1aW50MzJfdCB2bSwgdWludDY0X3QgYWRk ciwgdWludDY0X3QgdXNlcnB0ciwNCj4gIAkJCWlndF9hc3NlcnQoZGF0YSk7DQo+ICAJCX0NCj4g IAl9IGVsc2Ugew0KPiAtCQlibyA9IHhlX2JvX2NyZWF0ZShmZCwgZWNpLT5ndF9pZCwgdm0sIGJv X3NpemUpOw0KPiArCQlibyA9IHhlX2JvX2NyZWF0ZV9mbGFncyhmZCwgdm0sIGJvX3NpemUsDQo+ ICsJCQkJCXZpc2libGVfdnJhbV9pZl9wb3NzaWJsZShmZCwgZWNpLT5ndF9pZCkpOw0KPiAgCQlk YXRhID0geGVfYm9fbWFwKGZkLCBibywgYm9fc2l6ZSk7DQo+ICAJfQ0KPiAgCW1lbXNldChkYXRh LCAwLCBib19zaXplKTsNCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL3hlL3hlX2d1Y19wYy5jIGIvdGVz dHMveGUveGVfZ3VjX3BjLmMNCj4gaW5kZXggYzM0ZGY4ZDYwLi42MzM5YjM4OTMgMTAwNjQ0DQo+ IC0tLSBhL3Rlc3RzL3hlL3hlX2d1Y19wYy5jDQo+ICsrKyBiL3Rlc3RzL3hlL3hlX2d1Y19wYy5j DQo+IEBAIC02NCw3ICs2NCw4IEBAIHN0YXRpYyB2b2lkIGV4ZWNfYmFzaWMoaW50IGZkLCBzdHJ1 Y3QgZHJtX3hlX2VuZ2luZV9jbGFzc19pbnN0YW5jZSAqZWNpLA0KPiAgCWJvX3NpemUgPSBBTElH Tihib19zaXplICsgeGVfY3NfcHJlZmV0Y2hfc2l6ZShmZCksDQo+ICAJCQl4ZV9nZXRfZGVmYXVs dF9hbGlnbm1lbnQoZmQpKTsNCj4gIA0KPiAtCWJvID0geGVfYm9fY3JlYXRlKGZkLCBlY2ktPmd0 X2lkLCB2bSwgYm9fc2l6ZSk7DQo+ICsJYm8gPSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmQsIHZtLCBi b19zaXplLA0KPiArCQkJCXZpc2libGVfdnJhbV9pZl9wb3NzaWJsZShmZCwgZWNpLT5ndF9pZCkp Ow0KPiAgCWRhdGEgPSB4ZV9ib19tYXAoZmQsIGJvLCBib19zaXplKTsNCj4gIA0KPiAgCWZvciAo aSA9IDA7IGkgPCBuX2VuZ2luZXM7IGkrKykgew0KPiBkaWZmIC0tZ2l0IGEvdGVzdHMveGUveGVf bW1hcC5jIGIvdGVzdHMveGUveGVfbW1hcC5jDQo+IGluZGV4IDc5OGZhY2NhOS4uNTgzZjM5ZDdh IDEwMDY0NA0KPiAtLS0gYS90ZXN0cy94ZS94ZV9tbWFwLmMNCj4gKysrIGIvdGVzdHMveGUveGVf bW1hcC5jDQo+IEBAIC0xMTgsMTAgKzExOCwxMCBAQCBpZ3RfbWFpbg0KPiAgCQl0ZXN0X21tYXAo ZmQsIHN5c3RlbV9tZW1vcnkoZmQpKTsNCj4gIA0KPiAgCWlndF9zdWJ0ZXN0KCJ2cmFtIikNCj4g LQkJdGVzdF9tbWFwKGZkLCB2cmFtX21lbW9yeShmZCwgMCkpOw0KPiArCQl0ZXN0X21tYXAoZmQs IHZpc2libGVfdnJhbV9tZW1vcnkoZmQsIDApKTsNCj4gIA0KPiAgCWlndF9zdWJ0ZXN0KCJ2cmFt LXN5c3RlbSIpDQo+IC0JCXRlc3RfbW1hcChmZCwgdnJhbV9tZW1vcnkoZmQsIDApIHwgc3lzdGVt X21lbW9yeShmZCkpOw0KPiArCQl0ZXN0X21tYXAoZmQsIHZpc2libGVfdnJhbV9tZW1vcnkoZmQs IDApIHwgc3lzdGVtX21lbW9yeShmZCkpOw0KPiAgDQo+ICAJaWd0X3N1YnRlc3QoImJhZC1mbGFn cyIpDQo+ICAJCXRlc3RfYmFkX2ZsYWdzKGZkKTsNCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL3hlL3hl X3BtLmMgYi90ZXN0cy94ZS94ZV9wbS5jDQo+IGluZGV4IGE3ZjczYzRlNi4uNTU5ZWNjZGViIDEw MDY0NA0KPiAtLS0gYS90ZXN0cy94ZS94ZV9wbS5jDQo+ICsrKyBiL3Rlc3RzL3hlL3hlX3BtLmMN Cj4gQEAgLTI1NCw3ICsyNTQsOCBAQCB0ZXN0X2V4ZWMoZGV2aWNlX3QgZGV2aWNlLCBzdHJ1Y3Qg ZHJtX3hlX2VuZ2luZV9jbGFzc19pbnN0YW5jZSAqZWNpLA0KPiAgCWlmIChjaGVja19ycG0gJiYg cnVudGltZV91c2FnZV9hdmFpbGFibGUoZGV2aWNlLnBjaV94ZSkpDQo+ICAJCXJwbV91c2FnZSA9 IGlndF9wbV9nZXRfcnVudGltZV91c2FnZShkZXZpY2UucGNpX3hlKTsNCj4gIA0KPiAtCWJvID0g eGVfYm9fY3JlYXRlKGRldmljZS5mZF94ZSwgZWNpLT5ndF9pZCwgdm0sIGJvX3NpemUpOw0KPiAr CWJvID0geGVfYm9fY3JlYXRlX2ZsYWdzKGRldmljZS5mZF94ZSwgdm0sIGJvX3NpemUsDQo+ICsJ CQkJdmlzaWJsZV92cmFtX2lmX3Bvc3NpYmxlKGRldmljZS5mZF94ZSwgZWNpLT5ndF9pZCkpOw0K PiAgCWRhdGEgPSB4ZV9ib19tYXAoZGV2aWNlLmZkX3hlLCBibywgYm9fc2l6ZSk7DQo+ICANCj4g IAlmb3IgKGkgPSAwOyBpIDwgbl9lbmdpbmVzOyBpKyspIHsNCj4gZGlmZiAtLWdpdCBhL3Rlc3Rz L3hlL3hlX3ByaW1lX3NlbGZfaW1wb3J0LmMgYi90ZXN0cy94ZS94ZV9wcmltZV9zZWxmX2ltcG9y dC5jDQo+IGluZGV4IDBmZDc5ZjcwNC4uZTcxMmUyYTljIDEwMDY0NA0KPiAtLS0gYS90ZXN0cy94 ZS94ZV9wcmltZV9zZWxmX2ltcG9ydC5jDQo+ICsrKyBiL3Rlc3RzL3hlL3hlX3ByaW1lX3NlbGZf aW1wb3J0LmMNCj4gQEAgLTEwNyw3ICsxMDcsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X3dpdGhfZmRf ZHVwKHZvaWQpDQo+ICAJZmQxID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9YRSk7DQo+ICAJZmQy ID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9YRSk7DQo+ICANCj4gLQloYW5kbGUgPSB4ZV9ib19j cmVhdGUoZmQxLCAwLCAwLCBCT19TSVpFKTsNCj4gKwloYW5kbGUgPSB4ZV9ib19jcmVhdGVfZmxh Z3MoZmQxLCAwLCBCT19TSVpFLCB2aXNpYmxlX3ZyYW1faWZfcG9zc2libGUoZmQxLCAwKSk7DQo+ ICANCj4gIAlkbWFfYnVmX2ZkMSA9IHByaW1lX2hhbmRsZV90b19mZChmZDEsIGhhbmRsZSk7DQo+ ICAJZ2VtX2Nsb3NlKGZkMSwgaGFuZGxlKTsNCj4gQEAgLTE0MSw4ICsxNDEsOCBAQCBzdGF0aWMg dm9pZCB0ZXN0X3dpdGhfdHdvX2Jvcyh2b2lkKQ0KPiAgCWZkMSA9IGRybV9vcGVuX2RyaXZlcihE UklWRVJfWEUpOw0KPiAgCWZkMiA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfWEUpOw0KPiAgDQo+ IC0JaGFuZGxlMSA9IHhlX2JvX2NyZWF0ZShmZDEsIDAsIDAsIEJPX1NJWkUpOw0KPiAtCWhhbmRs ZTIgPSB4ZV9ib19jcmVhdGUoZmQxLCAwLCAwLCBCT19TSVpFKTsNCj4gKwloYW5kbGUxID0geGVf Ym9fY3JlYXRlX2ZsYWdzKGZkMSwgMCwgQk9fU0laRSwgdmlzaWJsZV92cmFtX2lmX3Bvc3NpYmxl KGZkMSwgMCkpOw0KPiArCWhhbmRsZTIgPSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmQxLCAwLCBCT19T SVpFLCB2aXNpYmxlX3ZyYW1faWZfcG9zc2libGUoZmQxLCAwKSk7DQo+ICANCj4gIAlkbWFfYnVm X2ZkID0gcHJpbWVfaGFuZGxlX3RvX2ZkKGZkMSwgaGFuZGxlMSk7DQo+ICAJaGFuZGxlX2ltcG9y dCA9IHByaW1lX2ZkX3RvX2hhbmRsZShmZDIsIGRtYV9idWZfZmQpOw0KPiBAQCAtMjExLDcgKzIx MSw3IEBAIHN0YXRpYyB2b2lkIHRlc3Rfd2l0aF9vbmVfYm8odm9pZCkNCj4gIAlmZDEgPSBkcm1f b3Blbl9kcml2ZXIoRFJJVkVSX1hFKTsNCj4gIAlmZDIgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVS X1hFKTsNCj4gIA0KPiAtCWhhbmRsZSA9IHhlX2JvX2NyZWF0ZShmZDEsIDAsIDAsIEJPX1NJWkUp Ow0KPiArCWhhbmRsZSA9IHhlX2JvX2NyZWF0ZV9mbGFncyhmZDEsIDAsIEJPX1NJWkUsIHZpc2li bGVfdnJhbV9pZl9wb3NzaWJsZShmZDEsIDApKTsNCj4gIA0KPiAgCWRtYV9idWZfZmQgPSBwcmlt ZV9oYW5kbGVfdG9fZmQoZmQxLCBoYW5kbGUpOw0KPiAgCWhhbmRsZV9pbXBvcnQxID0gcHJpbWVf ZmRfdG9faGFuZGxlKGZkMiwgZG1hX2J1Zl9mZCk7DQo+IGRpZmYgLS1naXQgYS90ZXN0cy94ZS94 ZV92bS5jIGIvdGVzdHMveGUveGVfdm0uYw0KPiBpbmRleCAwNGQ2YzM5NTYuLjk4MmM1MGY2ZCAx MDA2NDQNCj4gLS0tIGEvdGVzdHMveGUveGVfdm0uYw0KPiArKysgYi90ZXN0cy94ZS94ZV92bS5j DQo+IEBAIC01Miw3ICs1Miw4IEBAIHdyaXRlX2R3b3JkcyhpbnQgZmQsIHVpbnQzMl90IHZtLCBp bnQgbl9kd29yZHMsIHVpbnQ2NF90ICphZGRycykNCj4gIAliYXRjaF9zaXplID0gKG5fZHdvcmRz ICogNCArIDEpICogc2l6ZW9mKHVpbnQzMl90KTsNCj4gIAliYXRjaF9zaXplID0gQUxJR04oYmF0 Y2hfc2l6ZSArIHhlX2NzX3ByZWZldGNoX3NpemUoZmQpLA0KPiAgCQkJICAgeGVfZ2V0X2RlZmF1 bHRfYWxpZ25tZW50KGZkKSk7DQo+IC0JYmF0Y2hfYm8gPSB4ZV9ib19jcmVhdGUoZmQsIDAsIHZt LCBiYXRjaF9zaXplKTsNCj4gKwliYXRjaF9ibyA9IHhlX2JvX2NyZWF0ZV9mbGFncyhmZCwgdm0s IGJhdGNoX3NpemUsDQo+ICsJCQkJICAgICAgdmlzaWJsZV92cmFtX2lmX3Bvc3NpYmxlKGZkLCAw KSk7DQo+ICAJYmF0Y2hfbWFwID0geGVfYm9fbWFwKGZkLCBiYXRjaF9ibywgYmF0Y2hfc2l6ZSk7 DQo+ICANCj4gIAlmb3IgKGkgPSAwOyBpIDwgbl9kd29yZHM7IGkrKykgew0KPiBAQCAtMTE2LDcg KzExNyw3IEBAIF9fdGVzdF9iaW5kX29uZV9ibyhpbnQgZmQsIHVpbnQzMl90IHZtLCBpbnQgbl9h ZGRycywgdWludDY0X3QgKmFkZHJzKQ0KPiAgCQl2bXMgPSBtYWxsb2Moc2l6ZW9mKCp2bXMpICog bl9hZGRycyk7DQo+ICAJCWlndF9hc3NlcnQodm1zKTsNCj4gIAl9DQo+IC0JYm8gPSB4ZV9ib19j cmVhdGUoZmQsIDAsIHZtLCBib19zaXplKTsNCj4gKwlibyA9IHhlX2JvX2NyZWF0ZV9mbGFncyhm ZCwgdm0sIGJvX3NpemUsIHZpc2libGVfdnJhbV9pZl9wb3NzaWJsZShmZCwgMCkpOw0KPiAgCW1h cCA9IHhlX2JvX21hcChmZCwgYm8sIGJvX3NpemUpOw0KPiAgCW1lbXNldChtYXAsIDAsIGJvX3Np emUpOw0KPiAgDQo+IEBAIC01NTQsNyArNTU1LDggQEAgc2hhcmVkX3B0ZV9wYWdlKGludCBmZCwg c3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgKmVjaSwgaW50IG5fYm8sDQo+ICAJ CQl4ZV9nZXRfZGVmYXVsdF9hbGlnbm1lbnQoZmQpKTsNCj4gIA0KPiAgCWZvciAoaSA9IDA7IGkg PCBuX2JvOyArK2kpIHsNCj4gLQkJYm9baV0gPSB4ZV9ib19jcmVhdGUoZmQsIGVjaS0+Z3RfaWQs IHZtLCBib19zaXplKTsNCj4gKwkJYm9baV0gPSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmQsIHZtLCBi b19zaXplLA0KPiArCQkJCQkgICB2aXNpYmxlX3ZyYW1faWZfcG9zc2libGUoZmQsIGVjaS0+Z3Rf aWQpKTsNCj4gIAkJZGF0YVtpXSA9IHhlX2JvX21hcChmZCwgYm9baV0sIGJvX3NpemUpOw0KPiAg CX0NCj4gIA0KPiBAQCAtNzIzLDcgKzcyNSw4IEBAIHRlc3RfYmluZF9lbmdpbmVzX2luZGVwZW5k ZW50KGludCBmZCwgc3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgKmVjaSkNCj4g IAlib19zaXplID0gc2l6ZW9mKCpkYXRhKSAqIE5fRU5HSU5FUzsNCj4gIAlib19zaXplID0gQUxJ R04oYm9fc2l6ZSArIHhlX2NzX3ByZWZldGNoX3NpemUoZmQpLA0KPiAgCQkJeGVfZ2V0X2RlZmF1 bHRfYWxpZ25tZW50KGZkKSk7DQo+IC0JYm8gPSB4ZV9ib19jcmVhdGUoZmQsIGVjaS0+Z3RfaWQs IHZtLCBib19zaXplKTsNCj4gKwlibyA9IHhlX2JvX2NyZWF0ZV9mbGFncyhmZCwgdm0sIGJvX3Np emUsDQo+ICsJCQkJdmlzaWJsZV92cmFtX2lmX3Bvc3NpYmxlKGZkLCBlY2ktPmd0X2lkKSk7DQo+ ICAJZGF0YSA9IHhlX2JvX21hcChmZCwgYm8sIGJvX3NpemUpOw0KPiAgDQo+ICAJZm9yIChpID0g MDsgaSA8IE5fRU5HSU5FUzsgaSsrKSB7DQo+IEBAIC04ODAsNyArODgzLDggQEAgdGVzdF9iaW5k X2FycmF5KGludCBmZCwgc3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgKmVjaSwg aW50IG5fZXhlY3MsDQo+ICAJYm9fc2l6ZSA9IEFMSUdOKGJvX3NpemUgKyB4ZV9jc19wcmVmZXRj aF9zaXplKGZkKSwNCj4gIAkJCXhlX2dldF9kZWZhdWx0X2FsaWdubWVudChmZCkpOw0KPiAgDQo+ IC0JYm8gPSB4ZV9ib19jcmVhdGUoZmQsIGVjaS0+Z3RfaWQsIHZtLCBib19zaXplKTsNCj4gKwli byA9IHhlX2JvX2NyZWF0ZV9mbGFncyhmZCwgdm0sIGJvX3NpemUsDQo+ICsJCQkJdmlzaWJsZV92 cmFtX2lmX3Bvc3NpYmxlKGZkLCBlY2ktPmd0X2lkKSk7DQo+ICAJZGF0YSA9IHhlX2JvX21hcChm ZCwgYm8sIGJvX3NpemUpOw0KPiAgDQo+ICAJaWYgKGZsYWdzICYgQklORF9BUlJBWV9CSU5EX0VO R0lORV9GTEFHKQ0KPiBAQCAtMTA3Miw3ICsxMDc2LDExIEBAIHRlc3RfbGFyZ2VfYmluZHMoaW50 IGZkLCBzdHJ1Y3QgZHJtX3hlX2VuZ2luZV9jbGFzc19pbnN0YW5jZSAqZWNpLA0KPiAgCQltYXAg PSBhbGlnbmVkX2FsbG9jKHhlX2dldF9kZWZhdWx0X2FsaWdubWVudChmZCksIGJvX3NpemUpOw0K PiAgCQlpZ3RfYXNzZXJ0KG1hcCk7DQo+ICAJfSBlbHNlIHsNCj4gLQkJYm8gPSB4ZV9ib19jcmVh dGUoZmQsIGVjaS0+Z3RfaWQsIHZtLCBib19zaXplKTsNCj4gKwkJaWd0X3NraXBfb24oeGVfdmlz aWJsZV92cmFtX3NpemUoZmQsIDApICYmIGJvX3NpemUgPg0KPiArCQkJICAgIHhlX3Zpc2libGVf dnJhbV9zaXplKGZkLCAwKSk7DQoNCg0KcmVkdW5kYW50ICd4ZV92aXNpYmxlX3ZyYW1fc2l6ZShm ZCwgMCknIGlmIGl0IGlzIDAgaXQgd2lsbCBiZSBzbWFsbGVyIHRoYW4gYm9fc2l6ZS4NCg0KT3Ro ZXIgdGhhbiB0aGlzIGFuZCB0aGUgbWlzc2luZyBjYXNlcyBMR1RNLg0KDQo+ICsNCj4gKwkJYm8g PSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmQsIHZtLCBib19zaXplLA0KPiArCQkJCQl2aXNpYmxlX3Zy YW1faWZfcG9zc2libGUoZmQsIGVjaS0+Z3RfaWQpKTsNCj4gIAkJbWFwID0geGVfYm9fbWFwKGZk LCBibywgYm9fc2l6ZSk7DQo+ICAJfQ0KPiAgDQo+IEBAIC0xMzUwLDcgKzEzNTgsOCBAQCB0ZXN0 X211bm1hcF9zdHlsZV91bmJpbmQoaW50IGZkLCBzdHJ1Y3QgZHJtX3hlX2VuZ2luZV9jbGFzc19p bnN0YW5jZSAqZWNpLA0KPiAgCQkJICAgIE1BUF9BTk9OWU1PVVMsIC0xLCAwKTsNCj4gIAkJaWd0 X2Fzc2VydChtYXAgIT0gTUFQX0ZBSUxFRCk7DQo+ICAJfSBlbHNlIHsNCj4gLQkJYm8gPSB4ZV9i b19jcmVhdGUoZmQsIGVjaS0+Z3RfaWQsIHZtLCBib19zaXplKTsNCj4gKwkJYm8gPSB4ZV9ib19j cmVhdGVfZmxhZ3MoZmQsIHZtLCBib19zaXplLA0KPiArCQkJCQl2aXNpYmxlX3ZyYW1faWZfcG9z c2libGUoZmQsIGVjaS0+Z3RfaWQpKTsNCj4gIAkJbWFwID0geGVfYm9fbWFwKGZkLCBibywgYm9f c2l6ZSk7DQo+ICAJfQ0KPiAgCW1lbXNldChtYXAsIDAsIGJvX3NpemUpOw0KDQo=