From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7445D10E085 for ; Sat, 15 Jul 2023 21:20:50 +0000 (UTC) From: "Souza, Jose" To: "igt-dev@lists.freedesktop.org" , "Auld, Matthew" Date: Sat, 15 Jul 2023 21:20:44 +0000 Message-ID: References: <20230714144238.573403-1-matthew.auld@intel.com> <20230714144238.573403-5-matthew.auld@intel.com> In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <39B4F0BA7E7B55439EDF3AC854ECB84E@namprd11.prod.outlook.com> 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: T24gRnJpLCAyMDIzLTA3LTE0IGF0IDEwOjAxIC0wNzAwLCBKb3PDqSBSb2JlcnRvIGRlIFNvdXph IHdyb3RlOg0KPiBPbiBGcmksIDIwMjMtMDctMTQgYXQgMTU6NDIgKzAxMDAsIE1hdHRoZXcgQXVs ZCB3cm90ZToNCj4gPiBDb252ZXJ0IGFsbCB0aGUgZXhpc3RpbmcgdGVzdHMgdGhhdCByZXF1aXJl IENQVSBhY2Nlc3MuDQo+ID4gDQo+IA0KPiBNaXNzaW5nIGNvbnZlcnNpb24gaW4gdGVzdF9iYWRf ZmxhZ3MoKSwgdGVzdF9iYWRfZXh0ZW5zaW9ucygpLCB0ZXN0X2JhZF9vYmplY3QoKSwgdGVzdF93 aXRoX29uZV9ib190d29fZmlsZXMoKSwgdGVzdF9yZWltcG9ydF9jbG9zZV9yYWNlKCksDQo+IHRo cmVhZF9mbl9leHBvcnRfdnNfY2xvc2UoKSwgdGVzdF9sbHNlZWtfc2l6ZSgpLCB0ZXN0X2xsc2Vl a19iYWQoKS4NCj4gDQo+IFRoZSBtbWFwcyB0ZXN0cyBhcmUgZXhwZWN0ZWQgdG8gZmFpbCBidXQg bm90IGJlY2F1c2UgcmVnaW9uIGlzIG5vdCBjcHUgbW1hcGVkLg0KPiBGb3IgdGhlIHByaW1lX3Nl bGZfaW1wb3J0IHRlc3QgaXQgaXMgYWxzbyBnb29kIHRvIHJlcXVpcmUgdmlzaWJsZSB2cmFtIGV2 ZW4gaWYgdGhlIHRlc3QgZG9uJ3QgZG8gYW55IG9wZXJhdGlvbiB3aXRoIENQVSwgaW4gcmVhbCB3 b3JsZCBhcHBsaWNhdGlvbnMNCj4geW91IG5lZWQgdG8gZ2l2ZSBhcHBsaWNhdGlvbnMgdGhlIGZs ZXhpYmlsaXR5IHRvIGFjY2VzcyBpdCBpbiBDUFUgYXMgd2VsbC4gDQo+IA0KPiANCj4gPiB2MjoN Cj4gPiAgIC0gU3BsaXQgb3V0IHRoZSBsaWIgY2hhbmdlcw0KPiA+ICAgLSBQcmVmZXIgU1pfMjU2 TSBhbmQgU1pfMUcgaW4geGVfZXZpY3QNCj4gPiAgIC0gU2ltcGxpZnkgYW5kIGZpeCB0aGUgYm9f ZmxhZ3MgaGFuZGxpbmcgaW4gdGVzdF9leGVjDQo+ID4gdjM6DQo+ID4gICAtIFNtYWxsIGZpeCBp biB4ZV9ldmljdCBjb252ZXJzaW9uIChtaXNzaW5nIHN5c3RlbV9tZW1vcnkoZmQpKQ0KPiA+IA0K PiA+IFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4N Cj4gPiBDYzogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+DQo+ ID4gQ2M6IEthbWlsIEtvbmllY3pueSA8a2FtaWwua29uaWVjem55QGxpbnV4LmludGVsLmNvbT4N Cj4gPiBDYzogR3dhbi1neWVvbmcgTXVuIDxnd2FuLWd5ZW9uZy5tdW5AaW50ZWwuY29tPg0KPiA+ IC0tLQ0KPiA+ICB0ZXN0cy94ZS94ZV9kbWFfYnVmX3N5bmMuYyAgICAgIHwgIDMgKystDQo+ID4g IHRlc3RzL3hlL3hlX2V2aWN0LmMgICAgICAgICAgICAgfCAzNCArKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0NCj4gPiAgdGVzdHMveGUveGVfZXhlY19iYWxhbmNlci5jICAgICB8ICA2 ICsrKy0tLQ0KPiA+ICB0ZXN0cy94ZS94ZV9leGVjX2Jhc2ljLmMgICAgICAgIHwgMTcgKysrKysr KystLS0tLS0tLS0NCj4gPiAgdGVzdHMveGUveGVfZXhlY19jb21wdXRlX21vZGUuYyB8ICA0ICsr LS0NCj4gPiAgdGVzdHMveGUveGVfZXhlY19mYXVsdF9tb2RlLmMgICB8IDEyICsrKysrKysrLS0t LQ0KPiA+ICB0ZXN0cy94ZS94ZV9leGVjX3Jlc2V0LmMgICAgICAgIHwgMTMgKysrKysrKystLS0t LQ0KPiA+ICB0ZXN0cy94ZS94ZV9leGVjX3N0b3JlLmMgICAgICAgIHwgIDYgKysrKy0tDQo+ID4g IHRlc3RzL3hlL3hlX2V4ZWNfdGhyZWFkcy5jICAgICAgfCAgOSArKysrKystLS0NCj4gPiAgdGVz dHMveGUveGVfZ3VjX3BjLmMgICAgICAgICAgICB8ICAzICsrLQ0KPiA+ICB0ZXN0cy94ZS94ZV9t bWFwLmMgICAgICAgICAgICAgIHwgIDQgKystLQ0KPiA+ICB0ZXN0cy94ZS94ZV9wbS5jICAgICAg ICAgICAgICAgIHwgIDMgKystDQo+ID4gIHRlc3RzL3hlL3hlX3ByaW1lX3NlbGZfaW1wb3J0LmMg fCAgOCArKysrLS0tLQ0KPiA+ICB0ZXN0cy94ZS94ZV92bS5jICAgICAgICAgICAgICAgIHwgMjMg KysrKysrKysrKysrKysrLS0tLS0tLQ0KPiA+ICAxNCBmaWxlcyBjaGFuZ2VkLCA4OSBpbnNlcnRp b25zKCspLCA1NiBkZWxldGlvbnMoLSkNCj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMveGUv eGVfZG1hX2J1Zl9zeW5jLmMgYi90ZXN0cy94ZS94ZV9kbWFfYnVmX3N5bmMuYw0KPiA+IGluZGV4 IGMwOGY4YWMxOC4uNGU3NmQ4NWFiIDEwMDY0NA0KPiA+IC0tLSBhL3Rlc3RzL3hlL3hlX2RtYV9i dWZfc3luYy5jDQo+ID4gKysrIGIvdGVzdHMveGUveGVfZG1hX2J1Zl9zeW5jLmMNCj4gPiBAQCAt MTIwLDcgKzEyMCw4IEBAIHRlc3RfZXhwb3J0X2RtYV9idWYoc3RydWN0IGRybV94ZV9lbmdpbmVf Y2xhc3NfaW5zdGFuY2UgKmh3ZTAsDQo+ID4gIAlib19zaXplID0gQUxJR04oYm9fc2l6ZSArIHhl X2NzX3ByZWZldGNoX3NpemUoZmRbMF0pLA0KPiA+ICAJCQl4ZV9nZXRfZGVmYXVsdF9hbGlnbm1l bnQoZmRbMF0pKTsNCj4gPiAgCWZvciAoaSA9IDA7IGkgPCBuX2JvOyArK2kpIHsNCj4gPiAtCQli b1tpXSA9IHhlX2JvX2NyZWF0ZShmZFswXSwgaHdlMC0+Z3RfaWQsIDAsIGJvX3NpemUpOw0KPiA+ ICsJCWJvW2ldID0geGVfYm9fY3JlYXRlX2ZsYWdzKGZkWzBdLCAwLCBib19zaXplLA0KPiA+ICsJ CQkJCSAgIHZpc2libGVfdnJhbV9pZl9wb3NzaWJsZShmZFswXSwgaHdlMC0+Z3RfaWQpKTsNCj4g PiAgCQlkbWFfYnVmX2ZkW2ldID0gcHJpbWVfaGFuZGxlX3RvX2ZkKGZkWzBdLCBib1tpXSk7DQo+ ID4gIAkJaW1wb3J0X2JvW2ldID0gcHJpbWVfZmRfdG9faGFuZGxlKGZkWzFdLCBkbWFfYnVmX2Zk W2ldKTsNCj4gPiAgDQo+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL3hlL3hlX2V2aWN0LmMgYi90ZXN0 cy94ZS94ZV9ldmljdC5jDQo+ID4gaW5kZXggMWE3MGYxYjQ1Li5jNDRjYjgwZGMgMTAwNjQ0DQo+ ID4gLS0tIGEvdGVzdHMveGUveGVfZXZpY3QuYw0KPiA+ICsrKyBiL3Rlc3RzL3hlL3hlX2V2aWN0 LmMNCj4gPiBAQCAtOTcsMTUgKzk3LDE3IEBAIHRlc3RfZXZpY3QoaW50IGZkLCBzdHJ1Y3QgZHJt X3hlX2VuZ2luZV9jbGFzc19pbnN0YW5jZSAqZWNpLA0KPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGkgPCBuX2V4ZWNzIC8gOCA/IDAgOiB2bTsNCj4gPiAgDQo+ID4gIAkJCWlm IChmbGFncyAmIE1VTFRJX1ZNKSB7DQo+ID4gLQkJCQlfX2JvID0gYm9baV0gPSB4ZV9ib19jcmVh dGUoZmQsIGVjaS0+Z3RfaWQsIDAsDQo+ID4gLQkJCQkJCQkgICAgYm9fc2l6ZSk7DQo+ID4gKwkJ CQlfX2JvID0gYm9baV0gPSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmQsIDAsDQo+ID4gKwkJCQkJCQkJ ICBib19zaXplLA0KPiA+ICsJCQkJCQkJCSAgdmlzaWJsZV92cmFtX21lbW9yeShmZCwgZWNpLT5n dF9pZCkpOw0KPiA+ICAJCQl9IGVsc2UgaWYgKGZsYWdzICYgVEhSRUFERUQpIHsNCj4gPiAtCQkJ CV9fYm8gPSBib1tpXSA9IHhlX2JvX2NyZWF0ZShmZCwgZWNpLT5ndF9pZCwgdm0sDQo+ID4gLQkJ CQkJCQkgICAgYm9fc2l6ZSk7DQo+ID4gKwkJCQlfX2JvID0gYm9baV0gPSB4ZV9ib19jcmVhdGVf ZmxhZ3MoZmQsIHZtLA0KPiA+ICsJCQkJCQkJCSAgYm9fc2l6ZSwNCj4gPiArCQkJCQkJCQkgIHZp c2libGVfdnJhbV9tZW1vcnkoZmQsIGVjaS0+Z3RfaWQpKTsNCj4gPiAgCQkJfSBlbHNlIHsNCj4g PiAgCQkJCV9fYm8gPSBib1tpXSA9IHhlX2JvX2NyZWF0ZV9mbGFncyhmZCwgX3ZtLA0KPiA+ICAJ CQkJCQkJCSAgYm9fc2l6ZSwNCj4gPiAtCQkJCQkJCQkgIHZyYW1fbWVtb3J5KGZkLCBlY2ktPmd0 X2lkKSB8DQo+ID4gKwkJCQkJCQkJICB2aXNpYmxlX3ZyYW1fbWVtb3J5KGZkLCBlY2ktPmd0X2lk KSB8DQo+ID4gIAkJCQkJCQkJICBzeXN0ZW1fbWVtb3J5KGZkKSk7DQo+ID4gIAkJCX0NCj4gPiAg CQl9IGVsc2Ugew0KPiA+IEBAIC0yNzgsMTUgKzI4MCwxNyBAQCB0ZXN0X2V2aWN0X2NtKGludCBm ZCwgc3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgKmVjaSwNCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpIDwgbl9leGVjcyAvIDggPyAwIDogdm07DQo+ID4g IA0KPiA+ICAJCQlpZiAoZmxhZ3MgJiBNVUxUSV9WTSkgew0KPiA+IC0JCQkJX19ibyA9IGJvW2ld ID0geGVfYm9fY3JlYXRlKGZkLCBlY2ktPmd0X2lkLA0KPiA+IC0JCQkJCQkJICAgIDAsIGJvX3Np emUpOw0KPiA+ICsJCQkJX19ibyA9IGJvW2ldID0geGVfYm9fY3JlYXRlX2ZsYWdzKGZkLCAwLA0K PiA+ICsJCQkJCQkJCSAgYm9fc2l6ZSwNCj4gPiArCQkJCQkJCQkgIHZpc2libGVfdnJhbV9tZW1v cnkoZmQsIGVjaS0+Z3RfaWQpKTsNCj4gPiAgCQkJfSBlbHNlIGlmIChmbGFncyAmIFRIUkVBREVE KSB7DQo+ID4gLQkJCQlfX2JvID0gYm9baV0gPSB4ZV9ib19jcmVhdGUoZmQsIGVjaS0+Z3RfaWQs DQo+ID4gLQkJCQkJCQkgICAgdm0sIGJvX3NpemUpOw0KPiA+ICsJCQkJX19ibyA9IGJvW2ldID0g eGVfYm9fY3JlYXRlX2ZsYWdzKGZkLCB2bSwNCj4gPiArCQkJCQkJCQkgIGJvX3NpemUsDQo+ID4g KwkJCQkJCQkJICB2aXNpYmxlX3ZyYW1fbWVtb3J5KGZkLCBlY2ktPmd0X2lkKSk7DQo+ID4gIAkJ CX0gZWxzZSB7DQo+ID4gIAkJCQlfX2JvID0gYm9baV0gPSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmQs IF92bSwNCj4gPiAgCQkJCQkJCQkgIGJvX3NpemUsDQo+ID4gLQkJCQkJCQkJICB2cmFtX21lbW9y eShmZCwgZWNpLT5ndF9pZCkgfA0KPiA+ICsJCQkJCQkJCSAgdmlzaWJsZV92cmFtX21lbW9yeShm ZCwgZWNpLT5ndF9pZCkgfA0KPiA+ICAJCQkJCQkJCSAgc3lzdGVtX21lbW9yeShmZCkpOw0KPiA+ ICAJCQl9DQo+ID4gIAkJfSBlbHNlIHsNCj4gPiBAQCAtNDQ5LDkgKzQ1MywxNSBAQCB0aHJlYWRz KGludCBmZCwgc3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgKmVjaSwNCj4gPiAg CQlwdGhyZWFkX2pvaW4odGhyZWFkc19kYXRhW2ldLnRocmVhZCwgTlVMTCk7DQo+ID4gIH0NCj4g PiAgDQo+ID4gKyNkZWZpbmUgU1pfMjU2TSAweDEwMDAwMDAwDQo+ID4gKyNkZWZpbmUgU1pfMUcg ICAweDQwMDAwMDAwDQo+ID4gKw0KPiA+ICBzdGF0aWMgdWludDY0X3QgY2FsY19ib19zaXplKHVp bnQ2NF90IHZyYW1fc2l6ZSwgaW50IG11bCwgaW50IGRpdikNCj4gPiAgew0KPiA+IC0JcmV0dXJu IChBTElHTih2cmFtX3NpemUsIDB4NDAwMDAwMDApICAqIG11bCkgLyBkaXY7DQo+ID4gKwlpZiAo dnJhbV9zaXplID49IFNaXzFHKQ0KPiA+ICsJCXJldHVybiAoQUxJR04odnJhbV9zaXplLCBTWl8x RykgICogbXVsKSAvIGRpdjsNCj4gPiArCWVsc2UNCj4gPiArCQlyZXR1cm4gKEFMSUdOKHZyYW1f c2l6ZSwgU1pfMjU2TSkgICogbXVsKSAvIGRpdjsgLyogc21hbGwtYmFyICovDQo+ID4gIH0NCj4g PiAgDQo+ID4gIC8qKg0KPiA+IEBAIC02NjQsNyArNjc0LDcgQEAgaWd0X21haW4NCj4gPiAgCWln dF9maXh0dXJlIHsNCj4gPiAgCQlmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfWEUpOw0KPiA+ ICAJCWlndF9yZXF1aXJlKHhlX2hhc192cmFtKGZkKSk7DQo+ID4gLQkJdnJhbV9zaXplID0geGVf dnJhbV9zaXplKGZkLCAwKTsNCj4gPiArCQl2cmFtX3NpemUgPSB4ZV92aXNpYmxlX3ZyYW1fc2l6 ZShmZCwgMCk7DQo+ID4gIAkJaWd0X2Fzc2VydCh2cmFtX3NpemUpOw0KPiA+ICANCj4gPiAgCQl4 ZV9mb3JfZWFjaF9od19lbmdpbmUoZmQsIGh3ZSkNCj4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMveGUv eGVfZXhlY19iYWxhbmNlci5jIGIvdGVzdHMveGUveGVfZXhlY19iYWxhbmNlci5jDQo+ID4gaW5k ZXggOGRmNmNlYmE4Li4wYjAwZDkzZGUgMTAwNjQ0DQo+ID4gLS0tIGEvdGVzdHMveGUveGVfZXhl Y19iYWxhbmNlci5jDQo+ID4gKysrIGIvdGVzdHMveGUveGVfZXhlY19iYWxhbmNlci5jDQo+ID4g QEAgLTY5LDcgKzY5LDcgQEAgc3RhdGljIHZvaWQgdGVzdF9hbGxfYWN0aXZlKGludCBmZCwgaW50 IGd0LCBpbnQgY2xhc3MpDQo+ID4gIAlib19zaXplID0gc2l6ZW9mKCpkYXRhKSAqIG51bV9wbGFj ZW1lbnRzOw0KPiA+ICAJYm9fc2l6ZSA9IEFMSUdOKGJvX3NpemUgKyB4ZV9jc19wcmVmZXRjaF9z aXplKGZkKSwgeGVfZ2V0X2RlZmF1bHRfYWxpZ25tZW50KGZkKSk7DQo+ID4gIA0KPiA+IC0JYm8g PSB4ZV9ib19jcmVhdGUoZmQsIGd0LCB2bSwgYm9fc2l6ZSk7DQo+ID4gKwlibyA9IHhlX2JvX2Ny ZWF0ZV9mbGFncyhmZCwgdm0sIGJvX3NpemUsIHZpc2libGVfdnJhbV9pZl9wb3NzaWJsZShmZCwg Z3QpKTsNCj4gPiAgCWRhdGEgPSB4ZV9ib19tYXAoZmQsIGJvLCBib19zaXplKTsNCj4gPiAgDQo+ ID4gIAlmb3IgKGkgPSAwOyBpIDwgbnVtX3BsYWNlbWVudHM7IGkrKykgew0KPiA+IEBAIC0yMjUs NyArMjI1LDcgQEAgdGVzdF9leGVjKGludCBmZCwgaW50IGd0LCBpbnQgY2xhc3MsIGludCBuX2Vu Z2luZXMsIGludCBuX2V4ZWNzLA0KPiA+ICAJCX0NCj4gPiAgCQltZW1zZXQoZGF0YSwgMCwgYm9f c2l6ZSk7DQo+ID4gIAl9IGVsc2Ugew0KPiA+IC0JCWJvID0geGVfYm9fY3JlYXRlKGZkLCBndCwg dm0sIGJvX3NpemUpOw0KPiA+ICsJCWJvID0geGVfYm9fY3JlYXRlX2ZsYWdzKGZkLCB2bSwgYm9f c2l6ZSwgdmlzaWJsZV92cmFtX2lmX3Bvc3NpYmxlKGZkLCBndCkpOw0KPiA+ICAJCWRhdGEgPSB4 ZV9ib19tYXAoZmQsIGJvLCBib19zaXplKTsNCj4gPiAgCX0NCj4gPiAgDQo+ID4gQEAgLTQ0Nyw3 ICs0NDcsNyBAQCB0ZXN0X2NtKGludCBmZCwgaW50IGd0LCBpbnQgY2xhc3MsIGludCBuX2VuZ2lu ZXMsIGludCBuX2V4ZWNzLA0KPiA+ICAJCQlpZ3RfYXNzZXJ0KGRhdGEpOw0KPiA+ICAJCX0NCj4g PiAgCX0gZWxzZSB7DQo+ID4gLQkJYm8gPSB4ZV9ib19jcmVhdGUoZmQsIGd0LCB2bSwgYm9fc2l6 ZSk7DQo+ID4gKwkJYm8gPSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmQsIHZtLCBib19zaXplLCB2aXNp YmxlX3ZyYW1faWZfcG9zc2libGUoZmQsIGd0KSk7DQo+ID4gIAkJZGF0YSA9IHhlX2JvX21hcChm ZCwgYm8sIGJvX3NpemUpOw0KPiA+ICAJfQ0KPiA+ICAJbWVtc2V0KGRhdGEsIDAsIGJvX3NpemUp Ow0KPiA+IGRpZmYgLS1naXQgYS90ZXN0cy94ZS94ZV9leGVjX2Jhc2ljLmMgYi90ZXN0cy94ZS94 ZV9leGVjX2Jhc2ljLmMNCj4gPiBpbmRleCBhZjU4MWMzMjcuLmE0YmFlOTNmMCAxMDA2NDQNCj4g PiAtLS0gYS90ZXN0cy94ZS94ZV9leGVjX2Jhc2ljLmMNCj4gPiArKysgYi90ZXN0cy94ZS94ZV9l eGVjX2Jhc2ljLmMNCj4gPiBAQCAtMTI2LDE1ICsxMjYsMTQgQEAgdGVzdF9leGVjKGludCBmZCwg c3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgKmVjaSwNCj4gPiAgCQl9DQo+ID4g IAkJbWVtc2V0KGRhdGEsIDAsIGJvX3NpemUpOw0KPiA+ICAJfSBlbHNlIHsNCj4gPiAtCQlpZiAo ZmxhZ3MgJiBERUZFUl9BTExPQykgew0KPiA+IC0JCQlibyA9IHhlX2JvX2NyZWF0ZV9mbGFncyhm ZCwgbl92bSA9PSAxID8gdm1bMF0gOiAwLA0KPiA+IC0JCQkJCQlib19zaXplLA0KPiA+IC0JCQkJ CQl2cmFtX2lmX3Bvc3NpYmxlKGZkLCBlY2ktPmd0X2lkKSB8DQo+ID4gLQkJCQkJCVhFX0dFTV9D UkVBVEVfRkxBR19ERUZFUl9CQUNLSU5HKTsNCj4gPiAtCQl9IGVsc2Ugew0KPiA+IC0JCQlibyA9 IHhlX2JvX2NyZWF0ZShmZCwgZWNpLT5ndF9pZCwgbl92bSA9PSAxID8gdm1bMF0gOiAwLA0KPiA+ IC0JCQkJCSAgYm9fc2l6ZSk7DQo+ID4gLQkJfQ0KPiA+ICsJCXVpbnQzMl90IGJvX2ZsYWdzOw0K PiA+ICsNCj4gPiArCQlib19mbGFncyA9IHZpc2libGVfdnJhbV9pZl9wb3NzaWJsZShmZCwgZWNp LT5ndF9pZCk7DQo+ID4gKwkJaWYgKGZsYWdzICYgREVGRVJfQUxMT0MpDQo+ID4gKwkJCWJvX2Zs YWdzIHw9IFhFX0dFTV9DUkVBVEVfRkxBR19ERUZFUl9CQUNLSU5HOw0KPiA+ICsNCj4gPiArCQli byA9IHhlX2JvX2NyZWF0ZV9mbGFncyhmZCwgbl92bSA9PSAxID8gdm1bMF0gOiAwLA0KPiA+ICsJ CQkJCWJvX3NpemUsIGJvX2ZsYWdzKTsNCj4gPiAgCQlpZiAoIShmbGFncyAmIERFRkVSX0JJTkQp KQ0KPiA+ICAJCQlkYXRhID0geGVfYm9fbWFwKGZkLCBibywgYm9fc2l6ZSk7DQo+ID4gIAl9DQo+ ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL3hlL3hlX2V4ZWNfY29tcHV0ZV9tb2RlLmMgYi90ZXN0cy94 ZS94ZV9leGVjX2NvbXB1dGVfbW9kZS5jDQo+ID4gaW5kZXggMjdiNTM4NDE0Li5lZTk3NTZjMjEg MTAwNjQ0DQo+ID4gLS0tIGEvdGVzdHMveGUveGVfZXhlY19jb21wdXRlX21vZGUuYw0KPiA+ICsr KyBiL3Rlc3RzL3hlL3hlX2V4ZWNfY29tcHV0ZV9tb2RlLmMNCj4gPiBAQCAtMTUwLDggKzE1MCw4 IEBAIHRlc3RfZXhlYyhpbnQgZmQsIHN0cnVjdCBkcm1feGVfZW5naW5lX2NsYXNzX2luc3RhbmNl ICplY2ksDQo+ID4gIAkJCWlndF9hc3NlcnQoZGF0YSk7DQo+ID4gIAkJfQ0KPiA+ICAJfSBlbHNl IHsNCj4gPiAtCQlibyA9IHhlX2JvX2NyZWF0ZShmZCwgZWNpLT5ndF9pZCwgZmxhZ3MgJiBWTV9G T1JfQk8gPyB2bSA6IDAsDQo+ID4gLQkJCQkgIGJvX3NpemUpOw0KPiA+ICsJCWJvID0geGVfYm9f Y3JlYXRlX2ZsYWdzKGZkLCBmbGFncyAmIFZNX0ZPUl9CTyA/IHZtIDogMCwNCj4gPiArCQkJCQli b19zaXplLCB2aXNpYmxlX3ZyYW1faWZfcG9zc2libGUoZmQsIGVjaS0+Z3RfaWQpKTsNCj4gPiAg CQlkYXRhID0geGVfYm9fbWFwKGZkLCBibywgYm9fc2l6ZSk7DQo+ID4gIAl9DQo+ID4gIAltZW1z ZXQoZGF0YSwgMCwgYm9fc2l6ZSk7DQo+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL3hlL3hlX2V4ZWNf ZmF1bHRfbW9kZS5jIGIvdGVzdHMveGUveGVfZXhlY19mYXVsdF9tb2RlLmMNCj4gPiBpbmRleCBi ZjcyMzBjNWEuLjdkY2JiM2M0NSAxMDA2NDQNCj4gPiAtLS0gYS90ZXN0cy94ZS94ZV9leGVjX2Zh dWx0X21vZGUuYw0KPiA+ICsrKyBiL3Rlc3RzL3hlL3hlX2V4ZWNfZmF1bHRfbW9kZS5jDQo+ID4g QEAgLTE1Myw5ICsxNTMsMTEgQEAgdGVzdF9leGVjKGludCBmZCwgc3RydWN0IGRybV94ZV9lbmdp bmVfY2xhc3NfaW5zdGFuY2UgKmVjaSwNCj4gPiAgCX0gZWxzZSB7DQo+ID4gIAkJaWYgKGZsYWdz ICYgUFJFRkVUQ0gpDQo+ID4gIAkJCWJvID0geGVfYm9fY3JlYXRlX2ZsYWdzKGZkLCAwLCBib19z aXplLA0KPiA+IC0JCQkJCQlhbGxfbWVtb3J5X3JlZ2lvbnMoZmQpKTsNCj4gPiArCQkJCQkJYWxs X21lbW9yeV9yZWdpb25zKGZkKSB8DQo+ID4gKwkJCQkJCXZpc2libGVfdnJhbV9pZl9wb3NzaWJs ZShmZCwgMCkpOw0KPiA+ICAJCWVsc2UNCj4gPiAtCQkJYm8gPSB4ZV9ib19jcmVhdGUoZmQsIGVj aS0+Z3RfaWQsIDAsIGJvX3NpemUpOw0KPiA+ICsJCQlibyA9IHhlX2JvX2NyZWF0ZV9mbGFncyhm ZCwgMCwgYm9fc2l6ZSwNCj4gPiArCQkJCQkJdmlzaWJsZV92cmFtX2lmX3Bvc3NpYmxlKGZkLCBl Y2ktPmd0X2lkKSk7DQo+ID4gIAkJZGF0YSA9IHhlX2JvX21hcChmZCwgYm8sIGJvX3NpemUpOw0K PiA+ICAJfQ0KPiA+ICAJbWVtc2V0KGRhdGEsIDAsIGJvX3NpemUpOw0KPiA+IEBAIC0zODIsOCAr Mzg0LDEwIEBAIHRlc3RfYXRvbWljKGludCBmZCwgc3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3Nf aW5zdGFuY2UgKmVjaSwNCj4gPiAgCWFkZHJfd2FpdCA9IGFkZHIgKyBib19zaXplOw0KPiA+ICAN Cj4gPiAgCWJvID0geGVfYm9fY3JlYXRlX2ZsYWdzKGZkLCB2bSwgYm9fc2l6ZSwNCj4gPiAtCQkJ CWFsbF9tZW1vcnlfcmVnaW9ucyhmZCkpOw0KPiA+IC0JYm9fd2FpdCA9IHhlX2JvX2NyZWF0ZShm ZCwgZWNpLT5ndF9pZCwgdm0sIGJvX3NpemUpOw0KPiA+ICsJCQkJYWxsX21lbW9yeV9yZWdpb25z KGZkKSB8DQo+ID4gKwkJCQl2aXNpYmxlX3ZyYW1faWZfcG9zc2libGUoZmQsIDApKTsNCj4gPiAr CWJvX3dhaXQgPSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmQsIHZtLCBib19zaXplLA0KPiA+ICsJCQkJ ICAgICB2aXNpYmxlX3ZyYW1faWZfcG9zc2libGUoZmQsIGVjaS0+Z3RfaWQpKTsNCj4gPiAgCWRh dGEgPSB4ZV9ib19tYXAoZmQsIGJvLCBib19zaXplKTsNCj4gPiAgCXdhaXQgPSB4ZV9ib19tYXAo ZmQsIGJvX3dhaXQsIGJvX3NpemUpOw0KPiA+ICAJcHRyID0gJmRhdGFbMF0uZGF0YTsNCj4gPiBk aWZmIC0tZ2l0IGEvdGVzdHMveGUveGVfZXhlY19yZXNldC5jIGIvdGVzdHMveGUveGVfZXhlY19y ZXNldC5jDQo+ID4gaW5kZXggNmNhMWNkNzY5Li5kZmJhYTYwMzUgMTAwNjQ0DQo+ID4gLS0tIGEv dGVzdHMveGUveGVfZXhlY19yZXNldC5jDQo+ID4gKysrIGIvdGVzdHMveGUveGVfZXhlY19yZXNl dC5jDQo+ID4gQEAgLTUwLDcgKzUwLDggQEAgc3RhdGljIHZvaWQgdGVzdF9zcGluKGludCBmZCwg c3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgKmVjaSkNCj4gPiAgCWJvX3NpemUg PSBBTElHTihib19zaXplICsgeGVfY3NfcHJlZmV0Y2hfc2l6ZShmZCksDQo+ID4gIAkJCXhlX2dl dF9kZWZhdWx0X2FsaWdubWVudChmZCkpOw0KPiA+ICANCj4gPiAtCWJvID0geGVfYm9fY3JlYXRl KGZkLCBlY2ktPmd0X2lkLCB2bSwgYm9fc2l6ZSk7DQo+ID4gKwlibyA9IHhlX2JvX2NyZWF0ZV9m bGFncyhmZCwgdm0sIGJvX3NpemUsDQo+ID4gKwkJCQl2aXNpYmxlX3ZyYW1faWZfcG9zc2libGUo ZmQsIGVjaS0+Z3RfaWQpKTsNCj4gPiAgCXNwaW4gPSB4ZV9ib19tYXAoZmQsIGJvLCBib19zaXpl KTsNCj4gPiAgDQo+ID4gIAllbmdpbmUgPSB4ZV9lbmdpbmVfY3JlYXRlKGZkLCB2bSwgZWNpLCAw KTsNCj4gPiBAQCAtMTg3LDcgKzE4OCw3IEBAIHRlc3RfYmFsYW5jZXIoaW50IGZkLCBpbnQgZ3Qs IGludCBjbGFzcywgaW50IG5fZW5naW5lcywgaW50IG5fZXhlY3MsDQo+ID4gIAlib19zaXplID0g QUxJR04oYm9fc2l6ZSArIHhlX2NzX3ByZWZldGNoX3NpemUoZmQpLA0KPiA+ICAJCQl4ZV9nZXRf ZGVmYXVsdF9hbGlnbm1lbnQoZmQpKTsNCj4gPiAgDQo+ID4gLQlibyA9IHhlX2JvX2NyZWF0ZShm ZCwgZ3QsIHZtLCBib19zaXplKTsNCj4gPiArCWJvID0geGVfYm9fY3JlYXRlX2ZsYWdzKGZkLCB2 bSwgYm9fc2l6ZSwgdmlzaWJsZV92cmFtX2lmX3Bvc3NpYmxlKGZkLCBndCkpOw0KPiA+ICAJZGF0 YSA9IHhlX2JvX21hcChmZCwgYm8sIGJvX3NpemUpOw0KPiA+ICANCj4gPiAgCWZvciAoaSA9IDA7 IGkgPCBuX2VuZ2luZXM7IGkrKykgew0KPiA+IEBAIC0zNzksNyArMzgwLDggQEAgdGVzdF9sZWdh Y3lfbW9kZShpbnQgZmQsIHN0cnVjdCBkcm1feGVfZW5naW5lX2NsYXNzX2luc3RhbmNlICplY2ks DQo+ID4gIAlib19zaXplID0gQUxJR04oYm9fc2l6ZSArIHhlX2NzX3ByZWZldGNoX3NpemUoZmQp LA0KPiA+ICAJCQl4ZV9nZXRfZGVmYXVsdF9hbGlnbm1lbnQoZmQpKTsNCj4gPiAgDQo+ID4gLQli byA9IHhlX2JvX2NyZWF0ZShmZCwgZWNpLT5ndF9pZCwgdm0sIGJvX3NpemUpOw0KPiA+ICsJYm8g PSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmQsIHZtLCBib19zaXplLA0KPiA+ICsJCQkJdmlzaWJsZV92 cmFtX2lmX3Bvc3NpYmxlKGZkLCBlY2ktPmd0X2lkKSk7DQo+ID4gIAlkYXRhID0geGVfYm9fbWFw KGZkLCBibywgYm9fc2l6ZSk7DQo+ID4gIA0KPiA+ICAJZm9yIChpID0gMDsgaSA8IG5fZW5naW5l czsgaSsrKSB7DQo+ID4gQEAgLTU1MCw3ICs1NTIsOCBAQCB0ZXN0X2NvbXB1dGVfbW9kZShpbnQg ZmQsIHN0cnVjdCBkcm1feGVfZW5naW5lX2NsYXNzX2luc3RhbmNlICplY2ksDQo+ID4gIAlib19z aXplID0gQUxJR04oYm9fc2l6ZSArIHhlX2NzX3ByZWZldGNoX3NpemUoZmQpLA0KPiA+ICAJCQl4 ZV9nZXRfZGVmYXVsdF9hbGlnbm1lbnQoZmQpKTsNCj4gPiAgDQo+ID4gLQlibyA9IHhlX2JvX2Ny ZWF0ZShmZCwgZWNpLT5ndF9pZCwgdm0sIGJvX3NpemUpOw0KPiA+ICsJYm8gPSB4ZV9ib19jcmVh dGVfZmxhZ3MoZmQsIHZtLCBib19zaXplLA0KPiA+ICsJCQkJdmlzaWJsZV92cmFtX2lmX3Bvc3Np YmxlKGZkLCBlY2ktPmd0X2lkKSk7DQo+ID4gIAlkYXRhID0geGVfYm9fbWFwKGZkLCBibywgYm9f c2l6ZSk7DQo+ID4gIAltZW1zZXQoZGF0YSwgMCwgYm9fc2l6ZSk7DQo+ID4gIA0KPiA+IEBAIC02 ODIsNyArNjg1LDcgQEAgc3RhdGljIHZvaWQgc3VibWl0X2pvYnMoc3RydWN0IGd0X3RocmVhZF9k YXRhICp0KQ0KPiA+ICAJdWludDMyX3QgYm87DQo+ID4gIAl1aW50MzJfdCAqZGF0YTsNCj4gPiAg DQo+ID4gLQlibyA9IHhlX2JvX2NyZWF0ZShmZCwgMCwgdm0sIGJvX3NpemUpOw0KPiA+ICsJYm8g PSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmQsIHZtLCBib19zaXplLCB2aXNpYmxlX3ZyYW1faWZfcG9z c2libGUoZmQsIDApKTsNCj4gPiAgCWRhdGEgPSB4ZV9ib19tYXAoZmQsIGJvLCBib19zaXplKTsN Cj4gPiAgCWRhdGFbMF0gPSBNSV9CQVRDSF9CVUZGRVJfRU5EOw0KPiA+ICANCj4gPiBkaWZmIC0t Z2l0IGEvdGVzdHMveGUveGVfZXhlY19zdG9yZS5jIGIvdGVzdHMveGUveGVfZXhlY19zdG9yZS5j DQo+ID4gaW5kZXggOTY0MGIxNTY3Li5hYjFiZGUzNmUgMTAwNjQ0DQo+ID4gLS0tIGEvdGVzdHMv eGUveGVfZXhlY19zdG9yZS5jDQo+ID4gKysrIGIvdGVzdHMveGUveGVfZXhlY19zdG9yZS5jDQo+ ID4gQEAgLTgyLDcgKzgyLDggQEAgc3RhdGljIHZvaWQgc3RvcmUoaW50IGZkKQ0KPiA+ICAJCQl4 ZV9nZXRfZGVmYXVsdF9hbGlnbm1lbnQoZmQpKTsNCj4gPiAgDQo+ID4gIAlod19lbmdpbmUgPSB4 ZV9od19lbmdpbmUoZmQsIDEpOw0KPiA+IC0JYm8gPSB4ZV9ib19jcmVhdGUoZmQsIGh3X2VuZ2lu ZS0+Z3RfaWQsIHZtLCBib19zaXplKTsNCj4gPiArCWJvID0geGVfYm9fY3JlYXRlX2ZsYWdzKGZk LCB2bSwgYm9fc2l6ZSwNCj4gPiArCQkJCXZpc2libGVfdnJhbV9pZl9wb3NzaWJsZShmZCwgaHdf ZW5naW5lLT5ndF9pZCkpOw0KPiA+ICANCj4gPiAgCXhlX3ZtX2JpbmRfYXN5bmMoZmQsIHZtLCBo d19lbmdpbmUtPmd0X2lkLCBibywgMCwgYWRkciwgYm9fc2l6ZSwgJnN5bmMsIDEpOw0KPiA+ICAJ ZGF0YSA9IHhlX2JvX21hcChmZCwgYm8sIGJvX3NpemUpOw0KPiA+IEBAIC0xMzgsNyArMTM5LDgg QEAgc3RhdGljIHZvaWQgc3RvcmVfYWxsKGludCBmZCwgaW50IGd0LCBpbnQgY2xhc3MpDQo+ID4g IAlib19zaXplID0gQUxJR04oYm9fc2l6ZSArIHhlX2NzX3ByZWZldGNoX3NpemUoZmQpLA0KPiA+ ICAJCQl4ZV9nZXRfZGVmYXVsdF9hbGlnbm1lbnQoZmQpKTsNCj4gPiAgDQo+ID4gLQlibyA9IHhl X2JvX2NyZWF0ZShmZCwgMCwgdm0sIGJvX3NpemUpOw0KPiA+ICsJYm8gPSB4ZV9ib19jcmVhdGVf ZmxhZ3MoZmQsIHZtLCBib19zaXplLA0KPiA+ICsJCQkJdmlzaWJsZV92cmFtX2lmX3Bvc3NpYmxl KGZkLCAwKSk7DQo+ID4gIAlkYXRhID0geGVfYm9fbWFwKGZkLCBibywgYm9fc2l6ZSk7DQo+ID4g IA0KPiA+ICAJeGVfZm9yX2VhY2hfaHdfZW5naW5lKGZkLCBod2UpIHsNCj4gPiBkaWZmIC0tZ2l0 IGEvdGVzdHMveGUveGVfZXhlY190aHJlYWRzLmMgYi90ZXN0cy94ZS94ZV9leGVjX3RocmVhZHMu Yw0KPiA+IGluZGV4IDQxNGQ4ZWU5YS4uMzk2Mzk4OTg0IDEwMDY0NA0KPiA+IC0tLSBhL3Rlc3Rz L3hlL3hlX2V4ZWNfdGhyZWFkcy5jDQo+ID4gKysrIGIvdGVzdHMveGUveGVfZXhlY190aHJlYWRz LmMNCj4gPiBAQCAtMTA2LDcgKzEwNiw4IEBAIHRlc3RfYmFsYW5jZXIoaW50IGZkLCBpbnQgZ3Qs IHVpbnQzMl90IHZtLCB1aW50NjRfdCBhZGRyLCB1aW50NjRfdCB1c2VycHRyLA0KPiA+ICAJCQlp Z3RfYXNzZXJ0KGRhdGEpOw0KPiA+ICAJCX0NCj4gPiAgCX0gZWxzZSB7DQo+ID4gLQkJYm8gPSB4 ZV9ib19jcmVhdGUoZmQsIGd0LCB2bSwgYm9fc2l6ZSk7DQo+ID4gKwkJYm8gPSB4ZV9ib19jcmVh dGVfZmxhZ3MoZmQsIHZtLCBib19zaXplLA0KPiA+ICsJCQkJCXZpc2libGVfdnJhbV9pZl9wb3Nz aWJsZShmZCwgZ3QpKTsNCj4gPiAgCQlkYXRhID0geGVfYm9fbWFwKGZkLCBibywgYm9fc2l6ZSk7 DQo+ID4gIAl9DQo+ID4gIAltZW1zZXQoZGF0YSwgMCwgYm9fc2l6ZSk7DQo+ID4gQEAgLTMwNiw3 ICszMDcsOCBAQCB0ZXN0X2NvbXB1dGVfbW9kZShpbnQgZmQsIHVpbnQzMl90IHZtLCB1aW50NjRf dCBhZGRyLCB1aW50NjRfdCB1c2VycHRyLA0KPiA+ICAJCQlpZ3RfYXNzZXJ0KGRhdGEpOw0KPiA+ ICAJCX0NCj4gPiAgCX0gZWxzZSB7DQo+ID4gLQkJYm8gPSB4ZV9ib19jcmVhdGUoZmQsIGVjaS0+ Z3RfaWQsIDAsIGJvX3NpemUpOw0KPiA+ICsJCWJvID0geGVfYm9fY3JlYXRlX2ZsYWdzKGZkLCAw LCBib19zaXplLA0KPiA+ICsJCQkJCXZpc2libGVfdnJhbV9pZl9wb3NzaWJsZShmZCwgZWNpLT5n dF9pZCkpOw0KPiA+ICAJCWRhdGEgPSB4ZV9ib19tYXAoZmQsIGJvLCBib19zaXplKTsNCj4gPiAg CX0NCj4gPiAgCW1lbXNldChkYXRhLCAwLCBib19zaXplKTsNCj4gPiBAQCAtNTE2LDcgKzUxOCw4 IEBAIHRlc3RfbGVnYWN5X21vZGUoaW50IGZkLCB1aW50MzJfdCB2bSwgdWludDY0X3QgYWRkciwg dWludDY0X3QgdXNlcnB0ciwNCj4gPiAgCQkJaWd0X2Fzc2VydChkYXRhKTsNCj4gPiAgCQl9DQo+ ID4gIAl9IGVsc2Ugew0KPiA+IC0JCWJvID0geGVfYm9fY3JlYXRlKGZkLCBlY2ktPmd0X2lkLCB2 bSwgYm9fc2l6ZSk7DQo+ID4gKwkJYm8gPSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmQsIHZtLCBib19z aXplLA0KPiA+ICsJCQkJCXZpc2libGVfdnJhbV9pZl9wb3NzaWJsZShmZCwgZWNpLT5ndF9pZCkp Ow0KPiA+ICAJCWRhdGEgPSB4ZV9ib19tYXAoZmQsIGJvLCBib19zaXplKTsNCj4gPiAgCX0NCj4g PiAgCW1lbXNldChkYXRhLCAwLCBib19zaXplKTsNCj4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMveGUv eGVfZ3VjX3BjLmMgYi90ZXN0cy94ZS94ZV9ndWNfcGMuYw0KPiA+IGluZGV4IGMzNGRmOGQ2MC4u NjMzOWIzODkzIDEwMDY0NA0KPiA+IC0tLSBhL3Rlc3RzL3hlL3hlX2d1Y19wYy5jDQo+ID4gKysr IGIvdGVzdHMveGUveGVfZ3VjX3BjLmMNCj4gPiBAQCAtNjQsNyArNjQsOCBAQCBzdGF0aWMgdm9p ZCBleGVjX2Jhc2ljKGludCBmZCwgc3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFuY2Ug KmVjaSwNCj4gPiAgCWJvX3NpemUgPSBBTElHTihib19zaXplICsgeGVfY3NfcHJlZmV0Y2hfc2l6 ZShmZCksDQo+ID4gIAkJCXhlX2dldF9kZWZhdWx0X2FsaWdubWVudChmZCkpOw0KPiA+ICANCj4g PiAtCWJvID0geGVfYm9fY3JlYXRlKGZkLCBlY2ktPmd0X2lkLCB2bSwgYm9fc2l6ZSk7DQo+ID4g KwlibyA9IHhlX2JvX2NyZWF0ZV9mbGFncyhmZCwgdm0sIGJvX3NpemUsDQo+ID4gKwkJCQl2aXNp YmxlX3ZyYW1faWZfcG9zc2libGUoZmQsIGVjaS0+Z3RfaWQpKTsNCj4gPiAgCWRhdGEgPSB4ZV9i b19tYXAoZmQsIGJvLCBib19zaXplKTsNCj4gPiAgDQo+ID4gIAlmb3IgKGkgPSAwOyBpIDwgbl9l bmdpbmVzOyBpKyspIHsNCj4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMveGUveGVfbW1hcC5jIGIvdGVz dHMveGUveGVfbW1hcC5jDQo+ID4gaW5kZXggNzk4ZmFjY2E5Li41ODNmMzlkN2EgMTAwNjQ0DQo+ ID4gLS0tIGEvdGVzdHMveGUveGVfbW1hcC5jDQo+ID4gKysrIGIvdGVzdHMveGUveGVfbW1hcC5j DQo+ID4gQEAgLTExOCwxMCArMTE4LDEwIEBAIGlndF9tYWluDQo+ID4gIAkJdGVzdF9tbWFwKGZk LCBzeXN0ZW1fbWVtb3J5KGZkKSk7DQo+ID4gIA0KPiA+ICAJaWd0X3N1YnRlc3QoInZyYW0iKQ0K PiA+IC0JCXRlc3RfbW1hcChmZCwgdnJhbV9tZW1vcnkoZmQsIDApKTsNCj4gPiArCQl0ZXN0X21t YXAoZmQsIHZpc2libGVfdnJhbV9tZW1vcnkoZmQsIDApKTsNCj4gPiAgDQo+ID4gIAlpZ3Rfc3Vi dGVzdCgidnJhbS1zeXN0ZW0iKQ0KPiA+IC0JCXRlc3RfbW1hcChmZCwgdnJhbV9tZW1vcnkoZmQs IDApIHwgc3lzdGVtX21lbW9yeShmZCkpOw0KPiA+ICsJCXRlc3RfbW1hcChmZCwgdmlzaWJsZV92 cmFtX21lbW9yeShmZCwgMCkgfCBzeXN0ZW1fbWVtb3J5KGZkKSk7DQo+ID4gIA0KPiA+ICAJaWd0 X3N1YnRlc3QoImJhZC1mbGFncyIpDQo+ID4gIAkJdGVzdF9iYWRfZmxhZ3MoZmQpOw0KPiA+IGRp ZmYgLS1naXQgYS90ZXN0cy94ZS94ZV9wbS5jIGIvdGVzdHMveGUveGVfcG0uYw0KPiA+IGluZGV4 IGE3ZjczYzRlNi4uNTU5ZWNjZGViIDEwMDY0NA0KPiA+IC0tLSBhL3Rlc3RzL3hlL3hlX3BtLmMN Cj4gPiArKysgYi90ZXN0cy94ZS94ZV9wbS5jDQo+ID4gQEAgLTI1NCw3ICsyNTQsOCBAQCB0ZXN0 X2V4ZWMoZGV2aWNlX3QgZGV2aWNlLCBzdHJ1Y3QgZHJtX3hlX2VuZ2luZV9jbGFzc19pbnN0YW5j ZSAqZWNpLA0KPiA+ICAJaWYgKGNoZWNrX3JwbSAmJiBydW50aW1lX3VzYWdlX2F2YWlsYWJsZShk ZXZpY2UucGNpX3hlKSkNCj4gPiAgCQlycG1fdXNhZ2UgPSBpZ3RfcG1fZ2V0X3J1bnRpbWVfdXNh Z2UoZGV2aWNlLnBjaV94ZSk7DQo+ID4gIA0KPiA+IC0JYm8gPSB4ZV9ib19jcmVhdGUoZGV2aWNl LmZkX3hlLCBlY2ktPmd0X2lkLCB2bSwgYm9fc2l6ZSk7DQo+ID4gKwlibyA9IHhlX2JvX2NyZWF0 ZV9mbGFncyhkZXZpY2UuZmRfeGUsIHZtLCBib19zaXplLA0KPiA+ICsJCQkJdmlzaWJsZV92cmFt X2lmX3Bvc3NpYmxlKGRldmljZS5mZF94ZSwgZWNpLT5ndF9pZCkpOw0KPiA+ICAJZGF0YSA9IHhl X2JvX21hcChkZXZpY2UuZmRfeGUsIGJvLCBib19zaXplKTsNCj4gPiAgDQo+ID4gIAlmb3IgKGkg PSAwOyBpIDwgbl9lbmdpbmVzOyBpKyspIHsNCj4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMveGUveGVf cHJpbWVfc2VsZl9pbXBvcnQuYyBiL3Rlc3RzL3hlL3hlX3ByaW1lX3NlbGZfaW1wb3J0LmMNCj4g PiBpbmRleCAwZmQ3OWY3MDQuLmU3MTJlMmE5YyAxMDA2NDQNCj4gPiAtLS0gYS90ZXN0cy94ZS94 ZV9wcmltZV9zZWxmX2ltcG9ydC5jDQo+ID4gKysrIGIvdGVzdHMveGUveGVfcHJpbWVfc2VsZl9p bXBvcnQuYw0KPiA+IEBAIC0xMDcsNyArMTA3LDcgQEAgc3RhdGljIHZvaWQgdGVzdF93aXRoX2Zk X2R1cCh2b2lkKQ0KPiA+ICAJZmQxID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9YRSk7DQo+ID4g IAlmZDIgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX1hFKTsNCj4gPiAgDQo+ID4gLQloYW5kbGUg PSB4ZV9ib19jcmVhdGUoZmQxLCAwLCAwLCBCT19TSVpFKTsNCj4gPiArCWhhbmRsZSA9IHhlX2Jv X2NyZWF0ZV9mbGFncyhmZDEsIDAsIEJPX1NJWkUsIHZpc2libGVfdnJhbV9pZl9wb3NzaWJsZShm ZDEsIDApKTsNCj4gPiAgDQo+ID4gIAlkbWFfYnVmX2ZkMSA9IHByaW1lX2hhbmRsZV90b19mZChm ZDEsIGhhbmRsZSk7DQo+ID4gIAlnZW1fY2xvc2UoZmQxLCBoYW5kbGUpOw0KPiA+IEBAIC0xNDEs OCArMTQxLDggQEAgc3RhdGljIHZvaWQgdGVzdF93aXRoX3R3b19ib3Modm9pZCkNCj4gPiAgCWZk MSA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfWEUpOw0KPiA+ICAJZmQyID0gZHJtX29wZW5fZHJp dmVyKERSSVZFUl9YRSk7DQo+ID4gIA0KPiA+IC0JaGFuZGxlMSA9IHhlX2JvX2NyZWF0ZShmZDEs IDAsIDAsIEJPX1NJWkUpOw0KPiA+IC0JaGFuZGxlMiA9IHhlX2JvX2NyZWF0ZShmZDEsIDAsIDAs IEJPX1NJWkUpOw0KPiA+ICsJaGFuZGxlMSA9IHhlX2JvX2NyZWF0ZV9mbGFncyhmZDEsIDAsIEJP X1NJWkUsIHZpc2libGVfdnJhbV9pZl9wb3NzaWJsZShmZDEsIDApKTsNCj4gPiArCWhhbmRsZTIg PSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmQxLCAwLCBCT19TSVpFLCB2aXNpYmxlX3ZyYW1faWZfcG9z c2libGUoZmQxLCAwKSk7DQo+ID4gIA0KPiA+ICAJZG1hX2J1Zl9mZCA9IHByaW1lX2hhbmRsZV90 b19mZChmZDEsIGhhbmRsZTEpOw0KPiA+ICAJaGFuZGxlX2ltcG9ydCA9IHByaW1lX2ZkX3RvX2hh bmRsZShmZDIsIGRtYV9idWZfZmQpOw0KPiA+IEBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGljIHZv aWQgdGVzdF93aXRoX29uZV9ibyh2b2lkKQ0KPiA+ICAJZmQxID0gZHJtX29wZW5fZHJpdmVyKERS SVZFUl9YRSk7DQo+ID4gIAlmZDIgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX1hFKTsNCj4gPiAg DQo+ID4gLQloYW5kbGUgPSB4ZV9ib19jcmVhdGUoZmQxLCAwLCAwLCBCT19TSVpFKTsNCj4gPiAr CWhhbmRsZSA9IHhlX2JvX2NyZWF0ZV9mbGFncyhmZDEsIDAsIEJPX1NJWkUsIHZpc2libGVfdnJh bV9pZl9wb3NzaWJsZShmZDEsIDApKTsNCj4gPiAgDQo+ID4gIAlkbWFfYnVmX2ZkID0gcHJpbWVf aGFuZGxlX3RvX2ZkKGZkMSwgaGFuZGxlKTsNCj4gPiAgCWhhbmRsZV9pbXBvcnQxID0gcHJpbWVf ZmRfdG9faGFuZGxlKGZkMiwgZG1hX2J1Zl9mZCk7DQo+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL3hl L3hlX3ZtLmMgYi90ZXN0cy94ZS94ZV92bS5jDQo+ID4gaW5kZXggMDRkNmMzOTU2Li45ODJjNTBm NmQgMTAwNjQ0DQo+ID4gLS0tIGEvdGVzdHMveGUveGVfdm0uYw0KPiA+ICsrKyBiL3Rlc3RzL3hl L3hlX3ZtLmMNCj4gPiBAQCAtNTIsNyArNTIsOCBAQCB3cml0ZV9kd29yZHMoaW50IGZkLCB1aW50 MzJfdCB2bSwgaW50IG5fZHdvcmRzLCB1aW50NjRfdCAqYWRkcnMpDQo+ID4gIAliYXRjaF9zaXpl ID0gKG5fZHdvcmRzICogNCArIDEpICogc2l6ZW9mKHVpbnQzMl90KTsNCj4gPiAgCWJhdGNoX3Np emUgPSBBTElHTihiYXRjaF9zaXplICsgeGVfY3NfcHJlZmV0Y2hfc2l6ZShmZCksDQo+ID4gIAkJ CSAgIHhlX2dldF9kZWZhdWx0X2FsaWdubWVudChmZCkpOw0KPiA+IC0JYmF0Y2hfYm8gPSB4ZV9i b19jcmVhdGUoZmQsIDAsIHZtLCBiYXRjaF9zaXplKTsNCj4gPiArCWJhdGNoX2JvID0geGVfYm9f Y3JlYXRlX2ZsYWdzKGZkLCB2bSwgYmF0Y2hfc2l6ZSwNCj4gPiArCQkJCSAgICAgIHZpc2libGVf dnJhbV9pZl9wb3NzaWJsZShmZCwgMCkpOw0KPiA+ICAJYmF0Y2hfbWFwID0geGVfYm9fbWFwKGZk LCBiYXRjaF9ibywgYmF0Y2hfc2l6ZSk7DQo+ID4gIA0KPiA+ICAJZm9yIChpID0gMDsgaSA8IG5f ZHdvcmRzOyBpKyspIHsNCj4gPiBAQCAtMTE2LDcgKzExNyw3IEBAIF9fdGVzdF9iaW5kX29uZV9i byhpbnQgZmQsIHVpbnQzMl90IHZtLCBpbnQgbl9hZGRycywgdWludDY0X3QgKmFkZHJzKQ0KPiA+ ICAJCXZtcyA9IG1hbGxvYyhzaXplb2YoKnZtcykgKiBuX2FkZHJzKTsNCj4gPiAgCQlpZ3RfYXNz ZXJ0KHZtcyk7DQo+ID4gIAl9DQo+ID4gLQlibyA9IHhlX2JvX2NyZWF0ZShmZCwgMCwgdm0sIGJv X3NpemUpOw0KPiA+ICsJYm8gPSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmQsIHZtLCBib19zaXplLCB2 aXNpYmxlX3ZyYW1faWZfcG9zc2libGUoZmQsIDApKTsNCj4gPiAgCW1hcCA9IHhlX2JvX21hcChm ZCwgYm8sIGJvX3NpemUpOw0KPiA+ICAJbWVtc2V0KG1hcCwgMCwgYm9fc2l6ZSk7DQo+ID4gIA0K PiA+IEBAIC01NTQsNyArNTU1LDggQEAgc2hhcmVkX3B0ZV9wYWdlKGludCBmZCwgc3RydWN0IGRy bV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgKmVjaSwgaW50IG5fYm8sDQo+ID4gIAkJCXhlX2dl dF9kZWZhdWx0X2FsaWdubWVudChmZCkpOw0KPiA+ICANCj4gPiAgCWZvciAoaSA9IDA7IGkgPCBu X2JvOyArK2kpIHsNCj4gPiAtCQlib1tpXSA9IHhlX2JvX2NyZWF0ZShmZCwgZWNpLT5ndF9pZCwg dm0sIGJvX3NpemUpOw0KPiA+ICsJCWJvW2ldID0geGVfYm9fY3JlYXRlX2ZsYWdzKGZkLCB2bSwg Ym9fc2l6ZSwNCj4gPiArCQkJCQkgICB2aXNpYmxlX3ZyYW1faWZfcG9zc2libGUoZmQsIGVjaS0+ Z3RfaWQpKTsNCj4gPiAgCQlkYXRhW2ldID0geGVfYm9fbWFwKGZkLCBib1tpXSwgYm9fc2l6ZSk7 DQo+ID4gIAl9DQo+ID4gIA0KPiA+IEBAIC03MjMsNyArNzI1LDggQEAgdGVzdF9iaW5kX2VuZ2lu ZXNfaW5kZXBlbmRlbnQoaW50IGZkLCBzdHJ1Y3QgZHJtX3hlX2VuZ2luZV9jbGFzc19pbnN0YW5j ZSAqZWNpKQ0KPiA+ICAJYm9fc2l6ZSA9IHNpemVvZigqZGF0YSkgKiBOX0VOR0lORVM7DQo+ID4g IAlib19zaXplID0gQUxJR04oYm9fc2l6ZSArIHhlX2NzX3ByZWZldGNoX3NpemUoZmQpLA0KPiA+ ICAJCQl4ZV9nZXRfZGVmYXVsdF9hbGlnbm1lbnQoZmQpKTsNCj4gPiAtCWJvID0geGVfYm9fY3Jl YXRlKGZkLCBlY2ktPmd0X2lkLCB2bSwgYm9fc2l6ZSk7DQo+ID4gKwlibyA9IHhlX2JvX2NyZWF0 ZV9mbGFncyhmZCwgdm0sIGJvX3NpemUsDQo+ID4gKwkJCQl2aXNpYmxlX3ZyYW1faWZfcG9zc2li bGUoZmQsIGVjaS0+Z3RfaWQpKTsNCj4gPiAgCWRhdGEgPSB4ZV9ib19tYXAoZmQsIGJvLCBib19z aXplKTsNCj4gPiAgDQo+ID4gIAlmb3IgKGkgPSAwOyBpIDwgTl9FTkdJTkVTOyBpKyspIHsNCj4g PiBAQCAtODgwLDcgKzg4Myw4IEBAIHRlc3RfYmluZF9hcnJheShpbnQgZmQsIHN0cnVjdCBkcm1f eGVfZW5naW5lX2NsYXNzX2luc3RhbmNlICplY2ksIGludCBuX2V4ZWNzLA0KPiA+ICAJYm9fc2l6 ZSA9IEFMSUdOKGJvX3NpemUgKyB4ZV9jc19wcmVmZXRjaF9zaXplKGZkKSwNCj4gPiAgCQkJeGVf Z2V0X2RlZmF1bHRfYWxpZ25tZW50KGZkKSk7DQo+ID4gIA0KPiA+IC0JYm8gPSB4ZV9ib19jcmVh dGUoZmQsIGVjaS0+Z3RfaWQsIHZtLCBib19zaXplKTsNCj4gPiArCWJvID0geGVfYm9fY3JlYXRl X2ZsYWdzKGZkLCB2bSwgYm9fc2l6ZSwNCj4gPiArCQkJCXZpc2libGVfdnJhbV9pZl9wb3NzaWJs ZShmZCwgZWNpLT5ndF9pZCkpOw0KPiA+ICAJZGF0YSA9IHhlX2JvX21hcChmZCwgYm8sIGJvX3Np emUpOw0KPiA+ICANCj4gPiAgCWlmIChmbGFncyAmIEJJTkRfQVJSQVlfQklORF9FTkdJTkVfRkxB RykNCj4gPiBAQCAtMTA3Miw3ICsxMDc2LDExIEBAIHRlc3RfbGFyZ2VfYmluZHMoaW50IGZkLCBz dHJ1Y3QgZHJtX3hlX2VuZ2luZV9jbGFzc19pbnN0YW5jZSAqZWNpLA0KPiA+ICAJCW1hcCA9IGFs aWduZWRfYWxsb2MoeGVfZ2V0X2RlZmF1bHRfYWxpZ25tZW50KGZkKSwgYm9fc2l6ZSk7DQo+ID4g IAkJaWd0X2Fzc2VydChtYXApOw0KPiA+ICAJfSBlbHNlIHsNCj4gPiAtCQlibyA9IHhlX2JvX2Ny ZWF0ZShmZCwgZWNpLT5ndF9pZCwgdm0sIGJvX3NpemUpOw0KPiA+ICsJCWlndF9za2lwX29uKHhl X3Zpc2libGVfdnJhbV9zaXplKGZkLCAwKSAmJiBib19zaXplID4NCj4gPiArCQkJICAgIHhlX3Zp c2libGVfdnJhbV9zaXplKGZkLCAwKSk7DQo+IA0KPiANCj4gcmVkdW5kYW50ICd4ZV92aXNpYmxl X3ZyYW1fc2l6ZShmZCwgMCknIGlmIGl0IGlzIDAgaXQgd2lsbCBiZSBzbWFsbGVyIHRoYW4gYm9f c2l6ZS4NCg0KbWlzcyByZWFkIHRoaXMsIHBsZWFzZSBpZ25vcmUgdGhlIGNvbW1lbnQgYWJvdmUu DQoNCj4gDQo+IE90aGVyIHRoYW4gdGhpcyBhbmQgdGhlIG1pc3NpbmcgY2FzZXMgTEdUTS4NCj4g DQo+ID4gKw0KPiA+ICsJCWJvID0geGVfYm9fY3JlYXRlX2ZsYWdzKGZkLCB2bSwgYm9fc2l6ZSwN Cj4gPiArCQkJCQl2aXNpYmxlX3ZyYW1faWZfcG9zc2libGUoZmQsIGVjaS0+Z3RfaWQpKTsNCj4g PiAgCQltYXAgPSB4ZV9ib19tYXAoZmQsIGJvLCBib19zaXplKTsNCj4gPiAgCX0NCj4gPiAgDQo+ ID4gQEAgLTEzNTAsNyArMTM1OCw4IEBAIHRlc3RfbXVubWFwX3N0eWxlX3VuYmluZChpbnQgZmQs IHN0cnVjdCBkcm1feGVfZW5naW5lX2NsYXNzX2luc3RhbmNlICplY2ksDQo+ID4gIAkJCSAgICBN QVBfQU5PTllNT1VTLCAtMSwgMCk7DQo+ID4gIAkJaWd0X2Fzc2VydChtYXAgIT0gTUFQX0ZBSUxF RCk7DQo+ID4gIAl9IGVsc2Ugew0KPiA+IC0JCWJvID0geGVfYm9fY3JlYXRlKGZkLCBlY2ktPmd0 X2lkLCB2bSwgYm9fc2l6ZSk7DQo+ID4gKwkJYm8gPSB4ZV9ib19jcmVhdGVfZmxhZ3MoZmQsIHZt LCBib19zaXplLA0KPiA+ICsJCQkJCXZpc2libGVfdnJhbV9pZl9wb3NzaWJsZShmZCwgZWNpLT5n dF9pZCkpOw0KPiA+ICAJCW1hcCA9IHhlX2JvX21hcChmZCwgYm8sIGJvX3NpemUpOw0KPiA+ICAJ fQ0KPiA+ICAJbWVtc2V0KG1hcCwgMCwgYm9fc2l6ZSk7DQo+IA0KDQo=