From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 25DD289CB2 for ; Mon, 27 May 2019 12:17:31 +0000 (UTC) From: "Ser, Simon" Date: Mon, 27 May 2019 12:17:27 +0000 Message-ID: References: <20190524150334.15833-1-simon.ser@intel.com> <20190524150334.15833-2-simon.ser@intel.com> In-Reply-To: Content-Language: en-US Content-ID: MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t v2 1/9] tests/kms_chamelium: refactor audio test List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: "igt-dev@lists.freedesktop.org" , "martin.peres@linux.intel.com" List-ID: T24gTW9uLCAyMDE5LTA1LTI3IGF0IDEzOjIwICswMzAwLCBNYXJ0aW4gUGVyZXMgd3JvdGU6DQo+ IE9uIDI0LzA1LzIwMTkgMTg6MDMsIFNpbW9uIFNlciB3cm90ZToNCj4gPiBJbnN0ZWFkIG9mIHNo YXZpbmcgZXZlcnl0aGluZyBpbnRvIGRvX3Rlc3RfZGlzcGxheV9hdWRpbywgZXh0cmFjdCB0aGUg bG9naWMgdG8NCj4gDQo+IHNob3ZpbmcgOikNCg0KRGVycA0KDQo+ID4gaW5pdGlhbGl6ZSwgc3Rh cnQsIHN0b3AsIGZpbmlzaCBhbiBhdWRpbyB0ZXN0IGluIGhlbHBlciBmdW5jdGlvbnMuIFRoZSBz dHJ1Y3QNCj4gPiBhdWRpb19zdGF0ZSBub3cgY2FycmllcyBhbGwgYXVkaW8tcmVsYXRlZCBzdGF0 ZS4NCj4gPiANCj4gPiBUaGlzIHdpbGwgYWxsb3cgdG8gZWFzaWx5IGFkZCBtb3JlIGF1ZGlvIHRl c3RzIHRoYXQgZG9uJ3QgdXNlIHNpbmUgd2F2ZXMgKHZpYQ0KPiA+IGF1ZGlvX3NpZ25hbCkuIFRo aXMgaXMgbmVjZXNzYXJ5IGZvciBmdXR1cmUgZGVsYXkgYW5kIGFtcGxpdHVkZSB0ZXN0cy4NCj4g PiANCj4gPiBTaWduZWQtb2ZmLWJ5OiBTaW1vbiBTZXIgPHNpbW9uLnNlckBpbnRlbC5jb20+DQo+ ID4gLS0tDQo+ID4gIHRlc3RzL2ttc19jaGFtZWxpdW0uYyB8IDMzNiArKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDE5NSBpbnNl cnRpb25zKCspLCAxNDEgZGVsZXRpb25zKC0pDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBhL3Rlc3Rz L2ttc19jaGFtZWxpdW0uYyBiL3Rlc3RzL2ttc19jaGFtZWxpdW0uYw0KPiA+IGluZGV4IDhkYTZl YzIwNzU5ZS4uMWEwYTAyY2EyODkwIDEwMDY0NA0KPiA+IC0tLSBhL3Rlc3RzL2ttc19jaGFtZWxp dW0uYw0KPiA+ICsrKyBiL3Rlc3RzL2ttc19jaGFtZWxpdW0uYw0KPiA+IEBAIC04MTIsMTcgKzgx MiwxNzkgQEAgc3RhdGljIGNvbnN0IHNuZF9wY21fZm9ybWF0X3QgdGVzdF9mb3JtYXRzW10gPSB7 DQo+ID4gIHN0YXRpYyBjb25zdCBzaXplX3QgdGVzdF9mb3JtYXRzX2NvdW50ID0gc2l6ZW9mKHRl c3RfZm9ybWF0cykgLyBzaXplb2YodGVzdF9mb3JtYXRzWzBdKTsNCj4gPiAgDQo+ID4gIHN0cnVj dCBhdWRpb19zdGF0ZSB7DQo+ID4gKwlzdHJ1Y3QgYWxzYSAqYWxzYTsNCj4gPiArCXN0cnVjdCBj aGFtZWxpdW0gKmNoYW1lbGl1bTsNCj4gPiArCXN0cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydDsN Cj4gPiArCXN0cnVjdCBjaGFtZWxpdW1fc3RyZWFtICpzdHJlYW07DQo+ID4gKw0KPiA+ICsJLyog VGhlIGNhcHR1cmUgZm9ybWF0IGlzIG9ubHkgYXZhaWxhYmxlIGFmdGVyIGNhcHR1cmUgaGFzIHN0 YXJ0ZWQuICovDQo+ID4gKwlzdHJ1Y3Qgew0KPiA+ICsJCXNuZF9wY21fZm9ybWF0X3QgZm9ybWF0 Ow0KPiA+ICsJCWludCBjaGFubmVsczsNCj4gPiArCQlpbnQgcmF0ZTsNCj4gPiArCX0gcGxheWJh Y2ssIGNhcHR1cmU7DQo+ID4gKw0KPiA+ICAJc3RydWN0IGF1ZGlvX3NpZ25hbCAqc2lnbmFsOw0K PiA+IC0Jc25kX3BjbV9mb3JtYXRfdCBmb3JtYXQ7DQo+ID4gKwlpbnQgY2hhbm5lbF9tYXBwaW5n WzhdOw0KPiA+ICsNCj4gPiArCWludCBkdW1wX2ZkOw0KPiA+ICsJY2hhciAqZHVtcF9wYXRoOw0K PiA+ICsNCj4gPiArCXB0aHJlYWRfdCB0aHJlYWQ7DQo+ID4gIAlhdG9taWNfYm9vbCBydW47DQo+ ID4gIH07DQo+ID4gIA0KPiA+ICtzdGF0aWMgdm9pZCBhdWRpb19zdGF0ZV9pbml0KHN0cnVjdCBh dWRpb19zdGF0ZSAqc3RhdGUsIGRhdGFfdCAqZGF0YSwNCj4gPiArCQkJICAgICBzdHJ1Y3QgYWxz YSAqYWxzYSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0LA0KPiA+ICsJCQkgICAgIHNuZF9w Y21fZm9ybWF0X3QgZm9ybWF0LCBpbnQgY2hhbm5lbHMsIGludCByYXRlKQ0KPiA+ICt7DQo+ID4g KwltZW1zZXQoc3RhdGUsIDAsIHNpemVvZigqc3RhdGUpKTsNCj4gPiArCXN0YXRlLT5kdW1wX2Zk ID0gLTE7DQo+ID4gKw0KPiA+ICsJc3RhdGUtPmFsc2EgPSBhbHNhOw0KPiA+ICsJc3RhdGUtPmNo YW1lbGl1bSA9IGRhdGEtPmNoYW1lbGl1bTsNCj4gPiArCXN0YXRlLT5wb3J0ID0gcG9ydDsNCj4g PiArDQo+ID4gKwlzdGF0ZS0+cGxheWJhY2suZm9ybWF0ID0gZm9ybWF0Ow0KPiA+ICsJc3RhdGUt PnBsYXliYWNrLmNoYW5uZWxzID0gY2hhbm5lbHM7DQo+ID4gKwlzdGF0ZS0+cGxheWJhY2sucmF0 ZSA9IHJhdGU7DQo+ID4gKw0KPiA+ICsJYWxzYV9jb25maWd1cmVfb3V0cHV0KGFsc2EsIGZvcm1h dCwgY2hhbm5lbHMsIHJhdGUpOw0KPiA+ICsNCj4gPiArCXN0YXRlLT5zdHJlYW0gPSBjaGFtZWxp dW1fc3RyZWFtX2luaXQoKTsNCj4gPiArCWlndF9hc3NlcnQoc3RhdGUtPnN0cmVhbSk7DQo+ID4g K30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIGF1ZGlvX3N0YXRlX2Zpbmkoc3RydWN0IGF1ZGlv X3N0YXRlICpzdGF0ZSkNCj4gPiArew0KPiA+ICsJY2hhbWVsaXVtX3N0cmVhbV9kZWluaXQoc3Rh dGUtPnN0cmVhbSk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkICpydW5fYXVkaW9f dGhyZWFkKHZvaWQgKmRhdGEpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBhbHNhICphbHNhID0gZGF0 YTsNCj4gPiArDQo+ID4gKwlhbHNhX3J1bihhbHNhLCAtMSk7DQo+ID4gKwlyZXR1cm4gTlVMTDsN Cj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZvaWQgYXVkaW9fc3RhdGVfc3RhcnQoc3RydWN0 IGF1ZGlvX3N0YXRlICpzdGF0ZSkNCj4gPiArew0KPiA+ICsJaW50IHJldDsNCj4gPiArCWJvb2wg b2s7DQo+ID4gKwlzaXplX3QgaSwgajsNCj4gPiArCWVudW0gY2hhbWVsaXVtX3N0cmVhbV9yZWFs dGltZV9tb2RlIHN0cmVhbV9tb2RlOw0KPiA+ICsJY2hhciBkdW1wX3N1ZmZpeFs2NF07DQo+ID4g Kw0KPiA+ICsJaWd0X2RlYnVnKCJTdGFydGluZyB0ZXN0IHdpdGggcGxheWJhY2sgZm9ybWF0ICVz LCBzYW1wbGluZyByYXRlICVkIEh6ICINCj4gPiArCQkgICJhbmQgJWQgY2hhbm5lbHNcbiIsDQo+ ID4gKwkJICBzbmRfcGNtX2Zvcm1hdF9uYW1lKHN0YXRlLT5wbGF5YmFjay5mb3JtYXQpLA0KPiA+ ICsJCSAgc3RhdGUtPnBsYXliYWNrLnJhdGUsIHN0YXRlLT5wbGF5YmFjay5jaGFubmVscyk7DQo+ ID4gKw0KPiA+ICsJY2hhbWVsaXVtX3N0YXJ0X2NhcHR1cmluZ19hdWRpbyhzdGF0ZS0+Y2hhbWVs aXVtLCBzdGF0ZS0+cG9ydCwgZmFsc2UpOw0KPiA+ICsNCj4gPiArCXN0cmVhbV9tb2RlID0gQ0hB TUVMSVVNX1NUUkVBTV9SRUFMVElNRV9TVE9QX1dIRU5fT1ZFUkZMT1c7DQo+ID4gKwlvayA9IGNo YW1lbGl1bV9zdHJlYW1fZHVtcF9yZWFsdGltZV9hdWRpbyhzdGF0ZS0+c3RyZWFtLCBzdHJlYW1f bW9kZSk7DQo+ID4gKwlpZ3RfYXNzZXJ0KG9rKTsNCj4gPiArDQo+ID4gKwkvKiBTdGFydCBwbGF5 aW5nIGF1ZGlvICovDQo+ID4gKwlzdGF0ZS0+cnVuID0gdHJ1ZTsNCj4gPiArCXJldCA9IHB0aHJl YWRfY3JlYXRlKCZzdGF0ZS0+dGhyZWFkLCBOVUxMLA0KPiA+ICsJCQkgICAgIHJ1bl9hdWRpb190 aHJlYWQsIHN0YXRlLT5hbHNhKTsNCj4gPiArCWlndF9hc3NlcnQocmV0ID09IDApOw0KPiA+ICsN Cj4gPiArCS8qIFRoZSBDaGFtZWxpdW0gZGV2aWNlIG9ubHkgc3VwcG9ydHMgdGhpcyBQQ00gZm9y bWF0LiAqLw0KPiA+ICsJc3RhdGUtPmNhcHR1cmUuZm9ybWF0ID0gU05EX1BDTV9GT1JNQVRfUzMy X0xFOw0KPiA+ICsNCj4gPiArCS8qIE9ubHkgYWZ0ZXIgd2UndmUgc3RhcnRlZCBwbGF5aW5nIGF1 ZGlvLCB3ZSBjYW4gcmV0cmlldmUgdGhlIGNhcHR1cmUNCj4gPiArCSAqIGZvcm1hdCB1c2VkIGJ5 IHRoZSBDaGFtZWxpdW0gZGV2aWNlLiAqLw0KPiA+ICsJY2hhbWVsaXVtX2dldF9hdWRpb19mb3Jt YXQoc3RhdGUtPmNoYW1lbGl1bSwgc3RhdGUtPnBvcnQsDQo+ID4gKwkJCQkgICAmc3RhdGUtPmNh cHR1cmUucmF0ZSwNCj4gPiArCQkJCSAgICZzdGF0ZS0+Y2FwdHVyZS5jaGFubmVscyk7DQo+IA0K PiBJcyB0aGlzIGEgYmxvY2tpbmcgY2FsbD8gSWYgbm90LCB3ZSBoYXZlIGEgcmFjZSBjb25kaXRp b24gaGVyZS4uLg0KDQpZZWFoLCBhbGwgQ2hhbWVsZW9uIGNhbGxzIGFyZSBibG9ja2luZy4gVGhp cyBwYXJ0aWN1bGFyIG9uZSBhbHNvIGJsb2Nrcw0KdW50aWwgc29tZSBhdWRpbyBpcyByZWNlaXZl ZCBvbiB0aGUgQ2hhbWVsaXVtIHNpZGUuDQoNCj4gPiArCWlmIChzdGF0ZS0+Y2FwdHVyZS5yYXRl ID09IDApIHsNCj4gPiArCQlpZ3RfZGVidWcoIkF1ZGlvIHJlY2VpdmVyIGRvZXNuJ3QgaW5kaWNh dGUgdGhlIGNhcHR1cmUgIg0KPiA+ICsJCQkgInNhbXBsaW5nIHJhdGUsIGFzc3VtaW5nIGl0J3Mg JWQgSHpcbiIsDQo+ID4gKwkJCSBzdGF0ZS0+cGxheWJhY2sucmF0ZSk7DQo+ID4gKwkJc3RhdGUt PmNhcHR1cmUucmF0ZSA9IHN0YXRlLT5wbGF5YmFjay5yYXRlOw0KPiA+ICsJfQ0KPiA+ICsNCj4g PiArCWNoYW1lbGl1bV9nZXRfYXVkaW9fY2hhbm5lbF9tYXBwaW5nKHN0YXRlLT5jaGFtZWxpdW0s IHN0YXRlLT5wb3J0LA0KPiA+ICsJCQkJCSAgICBzdGF0ZS0+Y2hhbm5lbF9tYXBwaW5nKTsNCj4g PiArCS8qIE1ha2Ugc3VyZSB3ZSBjYW4gY2FwdHVyZSBhbGwgY2hhbm5lbHMgd2Ugc2VuZC4gKi8N Cj4gPiArCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+cGxheWJhY2suY2hhbm5lbHM7IGkrKykgew0K PiA+ICsJCW9rID0gZmFsc2U7DQo+ID4gKwkJZm9yIChqID0gMDsgaiA8IHN0YXRlLT5jYXB0dXJl LmNoYW5uZWxzOyBqKyspIHsNCj4gPiArCQkJaWYgKHN0YXRlLT5jaGFubmVsX21hcHBpbmdbal0g PT0gaSkgew0KPiA+ICsJCQkJb2sgPSB0cnVlOw0KPiA+ICsJCQkJYnJlYWs7DQo+ID4gKwkJCX0N Cj4gPiArCQl9DQo+ID4gKwkJaWd0X2Fzc2VydChvayk7DQo+ID4gKwl9DQo+IA0KPiBOaWNlIGNo ZWNrIQ0KPiANCj4gPiArDQo+ID4gKwlpZiAoaWd0X2ZyYW1lX2R1bXBfaXNfZW5hYmxlZCgpKSB7 DQo+IA0KPiBNYXliZSB5b3Ugc2hvdWxkIHJlbmFtZSB0aGlzIGZ1bmN0aW9uLCBub3cgdGhhdCBp dCBpcyBhbHNvIHVzZWQgdG8gZHVtcA0KPiBzb3VuZC4gSG93IGFib3V0IGlndF9yZXNvdXJjZV9k dW1waW5nX2lzX2VuYWJsZWQoKT8gVGhpcyBkb2VzIG5vdCBoYXZlDQo+IHRvIGhhcHBlbiBpbiB0 aGlzIHBhdGNoIHRob3VnaC4NCg0KWWVhaCwgdGhpcyBtYWtlcyBzZW5zZS4gQnV0IHRoZW4gd2Ug YWxzbyBuZWVkIHRvIHJlbmFtZSB0aGUgY29uZmlnDQpvcHRpb24gaW4gLmlndHJjLiBJcyB0aGF0 IGEgY29uY2Vybj8gRG8gd2UgbmVlZCB0byBrZWVwIHN1cHBvcnQgZm9yIHRoZQ0KbGVnYWN5IGNv bmZpZ3VyYXRpb24gb3B0aW9uPw0KDQo+IFRoaXMgaXMgYSBnb29kIHBhdGNoOg0KPiBSZXZpZXdl ZC1ieTogTWFydGluIFBlcmVzIDxtYXJ0aW4ucGVyZXNAbGludXguaW50ZWwuY29tPg0KPiANCj4g TWFydGluDQo+IA0KPiA+ICsJCXNucHJpbnRmKGR1bXBfc3VmZml4LCBzaXplb2YoZHVtcF9zdWZm aXgpLA0KPiA+ICsJCQkgImNhcHR1cmUtJXMtJWRjaC0lZEh6IiwNCj4gPiArCQkJIHNuZF9wY21f Zm9ybWF0X25hbWUoc3RhdGUtPnBsYXliYWNrLmZvcm1hdCksDQo+ID4gKwkJCSBzdGF0ZS0+cGxh eWJhY2suY2hhbm5lbHMsIHN0YXRlLT5wbGF5YmFjay5yYXRlKTsNCj4gPiArDQo+ID4gKwkJc3Rh dGUtPmR1bXBfZmQgPSBhdWRpb19jcmVhdGVfd2F2X2ZpbGVfczMyX2xlKGR1bXBfc3VmZml4LA0K PiA+ICsJCQkJCQkJICAgICAgc3RhdGUtPmNhcHR1cmUucmF0ZSwNCj4gPiArCQkJCQkJCSAgICAg IHN0YXRlLT5jYXB0dXJlLmNoYW5uZWxzLA0KPiA+ICsJCQkJCQkJICAgICAgJnN0YXRlLT5kdW1w X3BhdGgpOw0KPiA+ICsJCWlndF9hc3NlcnQoc3RhdGUtPmR1bXBfZmQgPj0gMCk7DQo+ID4gKwl9 DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIGF1ZGlvX3N0YXRlX3N0b3Aoc3RydWN0 IGF1ZGlvX3N0YXRlICpzdGF0ZSwgYm9vbCBzdWNjZXNzKQ0KPiA+ICt7DQo+ID4gKwlib29sIG9r Ow0KPiA+ICsJaW50IHJldDsNCj4gPiArCXN0cnVjdCBjaGFtZWxpdW1fYXVkaW9fZmlsZSAqYXVk aW9fZmlsZTsNCj4gPiArDQo+ID4gKwlpZ3RfZGVidWcoIlN0b3BwaW5nIGF1ZGlvIHBsYXliYWNr XG4iKTsNCj4gPiArCXN0YXRlLT5ydW4gPSBmYWxzZTsNCj4gPiArCXJldCA9IHB0aHJlYWRfam9p bihzdGF0ZS0+dGhyZWFkLCBOVUxMKTsNCj4gPiArCWlndF9hc3NlcnQocmV0ID09IDApOw0KPiA+ ICsNCj4gPiArCW9rID0gY2hhbWVsaXVtX3N0cmVhbV9zdG9wX3JlYWx0aW1lX2F1ZGlvKHN0YXRl LT5zdHJlYW0pOw0KPiA+ICsJaWd0X2Fzc2VydChvayk7DQo+ID4gKw0KPiA+ICsJYXVkaW9fZmls ZSA9IGNoYW1lbGl1bV9zdG9wX2NhcHR1cmluZ19hdWRpbyhzdGF0ZS0+Y2hhbWVsaXVtLA0KPiA+ ICsJCQkJCQkgICAgc3RhdGUtPnBvcnQpOw0KPiA+ICsJaWYgKGF1ZGlvX2ZpbGUpIHsNCj4gPiAr CQlpZ3RfZGVidWcoIkF1ZGlvIGZpbGUgc2F2ZWQgb24gdGhlIENoYW1lbGl1bSBpbiAlc1xuIiwN Cj4gPiArCQkJICBhdWRpb19maWxlLT5wYXRoKTsNCj4gPiArCQljaGFtZWxpdW1fZGVzdHJveV9h dWRpb19maWxlKGF1ZGlvX2ZpbGUpOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWlmIChzdGF0ZS0+ ZHVtcF9mZCA+PSAwKSB7DQo+ID4gKwkJY2xvc2Uoc3RhdGUtPmR1bXBfZmQpOw0KPiA+ICsJCXN0 YXRlLT5kdW1wX2ZkID0gLTE7DQo+ID4gKw0KPiA+ICsJCWlmIChzdWNjZXNzKSB7DQo+ID4gKwkJ CS8qIFRlc3Qgc3VjY2VlZGVkLCBubyBuZWVkIHRvIGtlZXAgdGhlIGNhcHR1cmVkIGRhdGEgKi8N Cj4gPiArCQkJdW5saW5rKHN0YXRlLT5kdW1wX3BhdGgpOw0KPiA+ICsJCX0gZWxzZQ0KPiA+ICsJ CQlpZ3RfZGVidWcoIlNhdmVkIGNhcHR1cmVkIGF1ZGlvIGRhdGEgdG8gJXNcbiIsDQo+ID4gKwkJ CQkgIHN0YXRlLT5kdW1wX3BhdGgpOw0KPiA+ICsJCWZyZWUoc3RhdGUtPmR1bXBfcGF0aCk7DQo+ ID4gKwkJc3RhdGUtPmR1bXBfcGF0aCA9IE5VTEw7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJaWd0 X2RlYnVnKCJBdWRpbyB0ZXN0IHJlc3VsdCBmb3IgZm9ybWF0ICVzLCBzYW1wbGluZyByYXRlICVk IEh6IGFuZCAiDQo+ID4gKwkJICAiJWQgY2hhbm5lbHM6ICVzXG4iLA0KPiA+ICsJCSAgc25kX3Bj bV9mb3JtYXRfbmFtZShzdGF0ZS0+cGxheWJhY2suZm9ybWF0KSwNCj4gPiArCQkgIHN0YXRlLT5w bGF5YmFjay5yYXRlLCBzdGF0ZS0+cGxheWJhY2suY2hhbm5lbHMsDQo+ID4gKwkJICBzdWNjZXNz ID8gIkFMTCBHUkVFTiIgOiAiRkFJTEVEIik7DQo+ID4gK30NCj4gPiArDQo+ID4gIHN0YXRpYyBp bnQNCj4gPiAgYXVkaW9fb3V0cHV0X2NhbGxiYWNrKHZvaWQgKmRhdGEsIHZvaWQgKmJ1ZmZlciwg aW50IHNhbXBsZXMpDQo+ID4gIHsNCj4gPiAgCXN0cnVjdCBhdWRpb19zdGF0ZSAqc3RhdGUgPSBk YXRhOw0KPiA+ICANCj4gPiAtCXN3aXRjaCAoc3RhdGUtPmZvcm1hdCkgew0KPiA+ICsJc3dpdGNo IChzdGF0ZS0+cGxheWJhY2suZm9ybWF0KSB7DQo+ID4gIAljYXNlIFNORF9QQ01fRk9STUFUX1Mx Nl9MRToNCj4gPiAgCQlhdWRpb19zaWduYWxfZmlsbF9zMTZfbGUoc3RhdGUtPnNpZ25hbCwgYnVm ZmVyLCBzYW1wbGVzKTsNCj4gPiAgCQlicmVhazsNCj4gPiBAQCAtODM5LDU1ICsxMDAxLDE5IEBA IGF1ZGlvX291dHB1dF9jYWxsYmFjayh2b2lkICpkYXRhLCB2b2lkICpidWZmZXIsIGludCBzYW1w bGVzKQ0KPiA+ICAJcmV0dXJuIHN0YXRlLT5ydW4gPyAwIDogLTE7DQo+ID4gIH0NCj4gPiAgDQo+ ID4gLXN0YXRpYyB2b2lkICoNCj4gPiAtcnVuX2F1ZGlvX3RocmVhZCh2b2lkICpkYXRhKQ0KPiA+ ICtzdGF0aWMgYm9vbCBkb190ZXN0X2Rpc3BsYXlfYXVkaW8oc3RydWN0IGF1ZGlvX3N0YXRlICpz dGF0ZSkNCj4gPiAgew0KPiA+IC0Jc3RydWN0IGFsc2EgKmFsc2EgPSBkYXRhOw0KPiA+IC0NCj4g PiAtCWFsc2FfcnVuKGFsc2EsIC0xKTsNCj4gPiAtCXJldHVybiBOVUxMOw0KPiA+IC19DQo+ID4g LQ0KPiA+IC1zdGF0aWMgYm9vbA0KPiA+IC1kb190ZXN0X2Rpc3BsYXlfYXVkaW8oZGF0YV90ICpk YXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsDQo+ID4gLQkJICAgICAgc3RydWN0IGFs c2EgKmFsc2EsIHNuZF9wY21fZm9ybWF0X3QgcGxheWJhY2tfZm9ybWF0LA0KPiA+IC0JCSAgICAg IGludCBwbGF5YmFja19jaGFubmVscywgaW50IHBsYXliYWNrX3JhdGUpDQo+ID4gLXsNCj4gPiAt CWludCByZXQsIGNhcHR1cmVfcmF0ZSwgY2FwdHVyZV9jaGFubmVscywgbXNlYywgZnJlcSwgc3Rl cDsNCj4gPiAtCXN0cnVjdCBjaGFtZWxpdW1fYXVkaW9fZmlsZSAqYXVkaW9fZmlsZTsNCj4gPiAt CXN0cnVjdCBjaGFtZWxpdW1fc3RyZWFtICpzdHJlYW07DQo+ID4gLQllbnVtIGNoYW1lbGl1bV9z dHJlYW1fcmVhbHRpbWVfbW9kZSBzdHJlYW1fbW9kZTsNCj4gPiAtCXN0cnVjdCBhdWRpb19zaWdu YWwgKnNpZ25hbDsNCj4gPiArCWludCBtc2VjLCBmcmVxLCBzdGVwOw0KPiA+ICAJaW50MzJfdCAq cmVjdiwgKmJ1ZjsNCj4gPiAgCWRvdWJsZSAqY2hhbm5lbDsNCj4gPiAgCXNpemVfdCBpLCBqLCBz dHJlYWssIHBhZ2VfY291bnQ7DQo+ID4gIAlzaXplX3QgcmVjdl9sZW4sIGJ1Zl9sZW4sIGJ1Zl9j YXAsIGJ1Zl9zaXplLCBjaGFubmVsX2xlbjsNCj4gPiAgCWJvb2wgb2ssIHN1Y2Nlc3M7DQo+ID4g LQljaGFyIGR1bXBfc3VmZml4WzY0XTsNCj4gPiAtCWNoYXIgKmR1bXBfcGF0aCA9IE5VTEw7DQo+ ID4gLQlpbnQgZHVtcF9mZCA9IC0xOw0KPiA+IC0JcHRocmVhZF90IHRocmVhZDsNCj4gPiAtCXN0 cnVjdCBhdWRpb19zdGF0ZSBzdGF0ZSA9IHt9Ow0KPiA+IC0JaW50IGNoYW5uZWxfbWFwcGluZ1s4 XSwgY2FwdHVyZV9jaGFuOw0KPiA+IC0NCj4gPiAtCWlndF9kZWJ1ZygiVGVzdGluZyB3aXRoIHBs YXliYWNrIGZvcm1hdCAlcywgc2FtcGxpbmcgcmF0ZSAlZCBIeiBhbmQgIg0KPiA+IC0JCSAgIiVk IGNoYW5uZWxzXG4iLA0KPiA+IC0JCSAgc25kX3BjbV9mb3JtYXRfbmFtZShwbGF5YmFja19mb3Jt YXQpLA0KPiA+IC0JCSAgcGxheWJhY2tfcmF0ZSwgcGxheWJhY2tfY2hhbm5lbHMpOw0KPiA+IC0J YWxzYV9jb25maWd1cmVfb3V0cHV0KGFsc2EsIHBsYXliYWNrX2Zvcm1hdCwNCj4gPiAtCQkJICAg ICAgcGxheWJhY2tfY2hhbm5lbHMsIHBsYXliYWNrX3JhdGUpOw0KPiA+ICsJaW50IGNhcHR1cmVf Y2hhbjsNCj4gPiAgDQo+ID4gLQljaGFtZWxpdW1fc3RhcnRfY2FwdHVyaW5nX2F1ZGlvKGRhdGEt PmNoYW1lbGl1bSwgcG9ydCwgZmFsc2UpOw0KPiA+IC0NCj4gPiAtCXN0cmVhbSA9IGNoYW1lbGl1 bV9zdHJlYW1faW5pdCgpOw0KPiA+IC0JaWd0X2Fzc2VydChzdHJlYW0pOw0KPiA+IC0NCj4gPiAt CXN0cmVhbV9tb2RlID0gQ0hBTUVMSVVNX1NUUkVBTV9SRUFMVElNRV9TVE9QX1dIRU5fT1ZFUkZM T1c7DQo+ID4gLQlvayA9IGNoYW1lbGl1bV9zdHJlYW1fZHVtcF9yZWFsdGltZV9hdWRpbyhzdHJl YW0sIHN0cmVhbV9tb2RlKTsNCj4gPiAtCWlndF9hc3NlcnQob2spOw0KPiA+IC0NCj4gPiAtCXNp Z25hbCA9IGF1ZGlvX3NpZ25hbF9pbml0KHBsYXliYWNrX2NoYW5uZWxzLCBwbGF5YmFja19yYXRl KTsNCj4gPiAtCWlndF9hc3NlcnQoc2lnbmFsKTsNCj4gPiArCXN0YXRlLT5zaWduYWwgPSBhdWRp b19zaWduYWxfaW5pdChzdGF0ZS0+cGxheWJhY2suY2hhbm5lbHMsDQo+ID4gKwkJCQkJICBzdGF0 ZS0+cGxheWJhY2sucmF0ZSk7DQo+ID4gKwlpZ3RfYXNzZXJ0KHN0YXRlLT5zaWduYWwpOw0KPiA+ ICANCj4gPiAgCS8qIFdlJ2xsIGNob29zZSBkaWZmZXJlbnQgZnJlcXVlbmNpZXMgcGVyIGNoYW5u ZWwgdG8gbWFrZSBzdXJlIHRoZXkgYXJlDQo+ID4gIAkgKiBpbmRlcGVuZGVudCBmcm9tIGVhY2gg b3RoZXIuIFRvIGRvIHNvLCB3ZSdsbCBhZGQgYSBkaWZmZXJlbnQgb2Zmc2V0DQo+ID4gQEAgLTkw MCw2MiArMTAyNiwyMSBAQCBkb190ZXN0X2Rpc3BsYXlfYXVkaW8oZGF0YV90ICpkYXRhLCBzdHJ1 Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsDQo+ID4gIAkgKiBsYXRlciBvbi4gV2UgY2Fubm90IHJl dHJpZXZlIHRoZSBjYXB0dXJlIHJhdGUgYmVmb3JlIHN0YXJ0aW5nDQo+ID4gIAkgKiBwbGF5aW5n IGF1ZGlvLCBzbyB3ZSBkb24ndCByZWFsbHkgaGF2ZSB0aGUgY2hvaWNlLg0KPiA+ICAJICovDQo+ ID4gLQlzdGVwID0gMiAqIHBsYXliYWNrX3JhdGUgLyBDQVBUVVJFX1NBTVBMRVM7DQo+ID4gKwlz dGVwID0gMiAqIHN0YXRlLT5wbGF5YmFjay5yYXRlIC8gQ0FQVFVSRV9TQU1QTEVTOw0KPiA+ICAJ Zm9yIChpID0gMDsgaSA8IHRlc3RfZnJlcXVlbmNpZXNfY291bnQ7IGkrKykgew0KPiA+IC0JCWZv ciAoaiA9IDA7IGogPCBwbGF5YmFja19jaGFubmVsczsgaisrKSB7DQo+ID4gKwkJZm9yIChqID0g MDsgaiA8IHN0YXRlLT5wbGF5YmFjay5jaGFubmVsczsgaisrKSB7DQo+ID4gIAkJCWZyZXEgPSB0 ZXN0X2ZyZXF1ZW5jaWVzW2ldICsgaiAqIHN0ZXA7DQo+ID4gLQkJCWF1ZGlvX3NpZ25hbF9hZGRf ZnJlcXVlbmN5KHNpZ25hbCwgZnJlcSwgaik7DQo+ID4gKwkJCWF1ZGlvX3NpZ25hbF9hZGRfZnJl cXVlbmN5KHN0YXRlLT5zaWduYWwsIGZyZXEsIGopOw0KPiA+ICAJCX0NCj4gPiAgCX0NCj4gPiAt CWF1ZGlvX3NpZ25hbF9zeW50aGVzaXplKHNpZ25hbCk7DQo+ID4gKwlhdWRpb19zaWduYWxfc3lu dGhlc2l6ZShzdGF0ZS0+c2lnbmFsKTsNCj4gPiAgDQo+ID4gLQlzdGF0ZS5zaWduYWwgPSBzaWdu YWw7DQo+ID4gLQlzdGF0ZS5mb3JtYXQgPSBwbGF5YmFja19mb3JtYXQ7DQo+ID4gLQlzdGF0ZS5y dW4gPSB0cnVlOw0KPiA+IC0JYWxzYV9yZWdpc3Rlcl9vdXRwdXRfY2FsbGJhY2soYWxzYSwgYXVk aW9fb3V0cHV0X2NhbGxiYWNrLCAmc3RhdGUsDQo+ID4gKwlhbHNhX3JlZ2lzdGVyX291dHB1dF9j YWxsYmFjayhzdGF0ZS0+YWxzYSwgYXVkaW9fb3V0cHV0X2NhbGxiYWNrLCBzdGF0ZSwNCj4gPiAg CQkJCSAgICAgIFBMQVlCQUNLX1NBTVBMRVMpOw0KPiA+ICANCj4gPiAtCS8qIFN0YXJ0IHBsYXlp bmcgYXVkaW8gKi8NCj4gPiAtCXJldCA9IHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWQsIE5VTEwsIHJ1 bl9hdWRpb190aHJlYWQsIGFsc2EpOw0KPiA+IC0JaWd0X2Fzc2VydChyZXQgPT0gMCk7DQo+ID4g KwlhdWRpb19zdGF0ZV9zdGFydChzdGF0ZSk7DQo+ID4gIA0KPiA+IC0JLyogT25seSBhZnRlciB3 ZSd2ZSBzdGFydGVkIHBsYXlpbmcgYXVkaW8sIHdlIGNhbiByZXRyaWV2ZSB0aGUgY2FwdHVyZQ0K PiA+IC0JICogZm9ybWF0IHVzZWQgYnkgdGhlIENoYW1lbGl1bSBkZXZpY2UuICovDQo+ID4gLQlj aGFtZWxpdW1fZ2V0X2F1ZGlvX2Zvcm1hdChkYXRhLT5jaGFtZWxpdW0sIHBvcnQsDQo+ID4gLQkJ CQkgICAmY2FwdHVyZV9yYXRlLCAmY2FwdHVyZV9jaGFubmVscyk7DQo+ID4gLQlpZiAoY2FwdHVy ZV9yYXRlID09IDApIHsNCj4gPiAtCQlpZ3RfZGVidWcoIkF1ZGlvIHJlY2VpdmVyIGRvZXNuJ3Qg aW5kaWNhdGUgdGhlIGNhcHR1cmUgIg0KPiA+IC0JCQkgInNhbXBsaW5nIHJhdGUsIGFzc3VtaW5n IGl0J3MgJWQgSHpcbiIsIHBsYXliYWNrX3JhdGUpOw0KPiA+IC0JCWNhcHR1cmVfcmF0ZSA9IHBs YXliYWNrX3JhdGU7DQo+ID4gLQl9IGVsc2UNCj4gPiAtCQlpZ3RfYXNzZXJ0KGNhcHR1cmVfcmF0 ZSA9PSBwbGF5YmFja19yYXRlKTsNCj4gPiAtDQo+ID4gLQljaGFtZWxpdW1fZ2V0X2F1ZGlvX2No YW5uZWxfbWFwcGluZyhkYXRhLT5jaGFtZWxpdW0sIHBvcnQsDQo+ID4gLQkJCQkJICAgIGNoYW5u ZWxfbWFwcGluZyk7DQo+ID4gLQkvKiBNYWtlIHN1cmUgd2UgY2FuIGNhcHR1cmUgYWxsIGNoYW5u ZWxzIHdlIHNlbmQuICovDQo+ID4gLQlmb3IgKGkgPSAwOyBpIDwgcGxheWJhY2tfY2hhbm5lbHM7 IGkrKykgew0KPiA+IC0JCW9rID0gZmFsc2U7DQo+ID4gLQkJZm9yIChqID0gMDsgaiA8IGNhcHR1 cmVfY2hhbm5lbHM7IGorKykgew0KPiA+IC0JCQlpZiAoY2hhbm5lbF9tYXBwaW5nW2pdID09IGkp IHsNCj4gPiAtCQkJCW9rID0gdHJ1ZTsNCj4gPiAtCQkJCWJyZWFrOw0KPiA+IC0JCQl9DQo+ID4g LQkJfQ0KPiA+IC0JCWlndF9hc3NlcnQob2spOw0KPiA+IC0JfQ0KPiA+IC0NCj4gPiAtCWlmIChp Z3RfZnJhbWVfZHVtcF9pc19lbmFibGVkKCkpIHsNCj4gPiAtCQlzbnByaW50ZihkdW1wX3N1ZmZp eCwgc2l6ZW9mKGR1bXBfc3VmZml4KSwNCj4gPiAtCQkJICJjYXB0dXJlLSVzLSVkY2gtJWRIeiIs DQo+ID4gLQkJCSBzbmRfcGNtX2Zvcm1hdF9uYW1lKHBsYXliYWNrX2Zvcm1hdCksDQo+ID4gLQkJ CSBwbGF5YmFja19jaGFubmVscywgcGxheWJhY2tfcmF0ZSk7DQo+ID4gLQ0KPiA+IC0JCWR1bXBf ZmQgPSBhdWRpb19jcmVhdGVfd2F2X2ZpbGVfczMyX2xlKGR1bXBfc3VmZml4LA0KPiA+IC0JCQkJ CQkgICAgICAgY2FwdHVyZV9yYXRlLA0KPiA+IC0JCQkJCQkgICAgICAgY2FwdHVyZV9jaGFubmVs cywNCj4gPiAtCQkJCQkJICAgICAgICZkdW1wX3BhdGgpOw0KPiA+IC0JCWlndF9hc3NlcnQoZHVt cF9mZCA+PSAwKTsNCj4gPiAtCX0NCj4gPiArCWlndF9hc3NlcnQoc3RhdGUtPmNhcHR1cmUucmF0 ZSA9PSBzdGF0ZS0+cGxheWJhY2sucmF0ZSk7DQo+ID4gIA0KPiA+ICAJLyogTmVlZHMgdG8gYmUg YSBtdWx0aXBsZSBvZiAxMjgsIGJlY2F1c2UgdGhhdCdzIHRoZSBudW1iZXIgb2Ygc2FtcGxlcw0K PiA+ICAJICogd2UgZ2V0IHBlciBjaGFubmVsIGVhY2ggdGltZSB3ZSByZWNlaXZlIGFuIGF1ZGlv IHBhZ2UgZnJvbSB0aGUNCj4gPiBAQCAtOTcwLDcgKzEwNTUsNyBAQCBkb190ZXN0X2Rpc3BsYXlf YXVkaW8oZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsDQo+ID4gIAlj aGFubmVsX2xlbiA9IENBUFRVUkVfU0FNUExFUzsNCj4gPiAgCWNoYW5uZWwgPSBtYWxsb2Moc2l6 ZW9mKGRvdWJsZSkgKiBjaGFubmVsX2xlbik7DQo+ID4gIA0KPiA+IC0JYnVmX2NhcCA9IGNhcHR1 cmVfY2hhbm5lbHMgKiBjaGFubmVsX2xlbjsNCj4gPiArCWJ1Zl9jYXAgPSBzdGF0ZS0+Y2FwdHVy ZS5jaGFubmVscyAqIGNoYW5uZWxfbGVuOw0KPiA+ICAJYnVmID0gbWFsbG9jKHNpemVvZihpbnQz Ml90KSAqIGJ1Zl9jYXApOw0KPiA+ICAJYnVmX2xlbiA9IDA7DQo+ID4gIA0KPiA+IEBAIC05ODIs NyArMTA2Nyw3IEBAIGRvX3Rlc3RfZGlzcGxheV9hdWRpbyhkYXRhX3QgKmRhdGEsIHN0cnVjdCBj aGFtZWxpdW1fcG9ydCAqcG9ydCwNCj4gPiAgCW1zZWMgPSAwOw0KPiA+ICAJaSA9IDA7DQo+ID4g IAl3aGlsZSAoIXN1Y2Nlc3MgJiYgbXNlYyA8IEFVRElPX1RJTUVPVVQpIHsNCj4gPiAtCQlvayA9 IGNoYW1lbGl1bV9zdHJlYW1fcmVjZWl2ZV9yZWFsdGltZV9hdWRpbyhzdHJlYW0sDQo+ID4gKwkJ b2sgPSBjaGFtZWxpdW1fc3RyZWFtX3JlY2VpdmVfcmVhbHRpbWVfYXVkaW8oc3RhdGUtPnN0cmVh bSwNCj4gPiAgCQkJCQkJCSAgICAgJnBhZ2VfY291bnQsDQo+ID4gIAkJCQkJCQkgICAgICZyZWN2 LCAmcmVjdl9sZW4pOw0KPiA+ICAJCWlndF9hc3NlcnQob2spOw0KPiA+IEBAIC05OTQsMjYgKzEw NzksMjcgQEAgZG9fdGVzdF9kaXNwbGF5X2F1ZGlvKGRhdGFfdCAqZGF0YSwgc3RydWN0IGNoYW1l bGl1bV9wb3J0ICpwb3J0LA0KPiA+ICAJCQljb250aW51ZTsNCj4gPiAgCQlpZ3RfYXNzZXJ0KGJ1 Zl9sZW4gPT0gYnVmX2NhcCk7DQo+ID4gIA0KPiA+IC0JCWlmIChkdW1wX2ZkID49IDApIHsNCj4g PiArCQlpZiAoc3RhdGUtPmR1bXBfZmQgPj0gMCkgew0KPiA+ICAJCQlidWZfc2l6ZSA9IGJ1Zl9s ZW4gKiBzaXplb2YoaW50MzJfdCk7DQo+ID4gLQkJCWlndF9hc3NlcnQod3JpdGUoZHVtcF9mZCwg YnVmLCBidWZfc2l6ZSkgPT0gYnVmX3NpemUpOw0KPiA+ICsJCQlpZ3RfYXNzZXJ0KHdyaXRlKHN0 YXRlLT5kdW1wX2ZkLCBidWYsIGJ1Zl9zaXplKSA9PSBidWZfc2l6ZSk7DQo+ID4gIAkJfQ0KPiA+ ICANCj4gPiAtCQltc2VjID0gaSAqIGNoYW5uZWxfbGVuIC8gKGRvdWJsZSkgY2FwdHVyZV9yYXRl ICogMTAwMDsNCj4gPiArCQltc2VjID0gaSAqIGNoYW5uZWxfbGVuIC8gKGRvdWJsZSkgc3RhdGUt PmNhcHR1cmUucmF0ZSAqIDEwMDA7DQo+ID4gIAkJaWd0X2RlYnVnKCJEZXRlY3RpbmcgYXVkaW8g c2lnbmFsLCB0PSVkIG1zZWNcbiIsIG1zZWMpOw0KPiA+ICANCj4gPiAtCQlmb3IgKGogPSAwOyBq IDwgcGxheWJhY2tfY2hhbm5lbHM7IGorKykgew0KPiA+IC0JCQljYXB0dXJlX2NoYW4gPSBjaGFu bmVsX21hcHBpbmdbal07DQo+ID4gKwkJZm9yIChqID0gMDsgaiA8IHN0YXRlLT5wbGF5YmFjay5j aGFubmVsczsgaisrKSB7DQo+ID4gKwkJCWNhcHR1cmVfY2hhbiA9IHN0YXRlLT5jaGFubmVsX21h cHBpbmdbal07DQo+ID4gIAkJCWlndF9hc3NlcnQoY2FwdHVyZV9jaGFuID49IDApOw0KPiA+ICAJ CQlpZ3RfZGVidWcoIlByb2Nlc3NpbmcgY2hhbm5lbCAlenUgKGNhcHR1cmVkIGFzICINCj4gPiAg CQkJCSAgImNoYW5uZWwgJWQpXG4iLCBqLCBjYXB0dXJlX2NoYW4pOw0KPiA+ICANCj4gPiAgCQkJ YXVkaW9fZXh0cmFjdF9jaGFubmVsX3MzMl9sZShjaGFubmVsLCBjaGFubmVsX2xlbiwNCj4gPiAg CQkJCQkJICAgICBidWYsIGJ1Zl9sZW4sDQo+ID4gLQkJCQkJCSAgICAgY2FwdHVyZV9jaGFubmVs cywNCj4gPiArCQkJCQkJICAgICBzdGF0ZS0+Y2FwdHVyZS5jaGFubmVscywNCj4gPiAgCQkJCQkJ ICAgICBjYXB0dXJlX2NoYW4pOw0KPiA+ICANCj4gPiAtCQkJaWYgKGF1ZGlvX3NpZ25hbF9kZXRl Y3Qoc2lnbmFsLCBjYXB0dXJlX3JhdGUsIGosDQo+ID4gKwkJCWlmIChhdWRpb19zaWduYWxfZGV0 ZWN0KHN0YXRlLT5zaWduYWwsDQo+ID4gKwkJCQkJCXN0YXRlLT5jYXB0dXJlLnJhdGUsIGosDQo+ ID4gIAkJCQkJCWNoYW5uZWwsIGNoYW5uZWxfbGVuKSkNCj4gPiAgCQkJCXN0cmVhaysrOw0KPiA+ ICAJCQllbHNlDQo+ID4gQEAgLTEwMjMsNDkgKzExMDksMTUgQEAgZG9fdGVzdF9kaXNwbGF5X2F1 ZGlvKGRhdGFfdCAqZGF0YSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0LA0KPiA+ICAJCWJ1 Zl9sZW4gPSAwOw0KPiA+ICAJCWkrKzsNCj4gPiAgDQo+ID4gLQkJc3VjY2VzcyA9IHN0cmVhayA9 PSBNSU5fU1RSRUFLICogcGxheWJhY2tfY2hhbm5lbHM7DQo+ID4gKwkJc3VjY2VzcyA9IHN0cmVh ayA9PSBNSU5fU1RSRUFLICogc3RhdGUtPnBsYXliYWNrLmNoYW5uZWxzOw0KPiA+ICAJfQ0KPiA+ ICANCj4gPiAtCWlndF9kZWJ1ZygiU3RvcHBpbmcgYXVkaW8gcGxheWJhY2tcbiIpOw0KPiA+IC0J c3RhdGUucnVuID0gZmFsc2U7DQo+ID4gLQlyZXQgPSBwdGhyZWFkX2pvaW4odGhyZWFkLCBOVUxM KTsNCj4gPiAtCWlndF9hc3NlcnQocmV0ID09IDApOw0KPiA+IC0NCj4gPiAtCWFsc2FfY2xvc2Vf b3V0cHV0KGFsc2EpOw0KPiA+IC0NCj4gPiAtCWlndF9kZWJ1ZygiQXVkaW8gdGVzdCByZXN1bHQg Zm9yIGZvcm1hdCAlcywgc2FtcGxpbmcgcmF0ZSAlZCBIeiBhbmQgIg0KPiA+IC0JCSAgIiVkIGNo YW5uZWxzOiAlc1xuIiwNCj4gPiAtCQkgIHNuZF9wY21fZm9ybWF0X25hbWUocGxheWJhY2tfZm9y bWF0KSwNCj4gPiAtCQkgIHBsYXliYWNrX3JhdGUsIHBsYXliYWNrX2NoYW5uZWxzLA0KPiA+IC0J CSAgc3VjY2VzcyA/ICJBTEwgR1JFRU4iIDogIkZBSUxFRCIpOw0KPiA+IC0NCj4gPiAtCWlmIChk dW1wX2ZkID49IDApIHsNCj4gPiAtCQljbG9zZShkdW1wX2ZkKTsNCj4gPiAtCQlpZiAoc3VjY2Vz cykgew0KPiA+IC0JCQkvKiBUZXN0IHN1Y2NlZWRlZCwgbm8gbmVlZCB0byBrZWVwIHRoZSBjYXB0 dXJlZCBkYXRhICovDQo+ID4gLQkJCXVubGluayhkdW1wX3BhdGgpOw0KPiA+IC0JCX0gZWxzZQ0K PiA+IC0JCQlpZ3RfZGVidWcoIlNhdmVkIGNhcHR1cmVkIGF1ZGlvIGRhdGEgdG8gJXNcbiIsIGR1 bXBfcGF0aCk7DQo+ID4gLQkJZnJlZShkdW1wX3BhdGgpOw0KPiA+IC0JfQ0KPiA+ICsJYXVkaW9f c3RhdGVfc3RvcChzdGF0ZSwgc3VjY2Vzcyk7DQo+ID4gIA0KPiA+ICAJZnJlZShyZWN2KTsNCj4g PiAgCWZyZWUoYnVmKTsNCj4gPiAgCWZyZWUoY2hhbm5lbCk7DQo+ID4gLQ0KPiA+IC0Jb2sgPSBj aGFtZWxpdW1fc3RyZWFtX3N0b3BfcmVhbHRpbWVfYXVkaW8oc3RyZWFtKTsNCj4gPiAtCWlndF9h c3NlcnQob2spOw0KPiA+IC0NCj4gPiAtCWF1ZGlvX2ZpbGUgPSBjaGFtZWxpdW1fc3RvcF9jYXB0 dXJpbmdfYXVkaW8oZGF0YS0+Y2hhbWVsaXVtLA0KPiA+IC0JCQkJCQkgICAgcG9ydCk7DQo+ID4g LQlpZiAoYXVkaW9fZmlsZSkgew0KPiA+IC0JCWlndF9kZWJ1ZygiQXVkaW8gZmlsZSBzYXZlZCBv biB0aGUgQ2hhbWVsaXVtIGluICVzXG4iLA0KPiA+IC0JCQkgIGF1ZGlvX2ZpbGUtPnBhdGgpOw0K PiA+IC0JCWNoYW1lbGl1bV9kZXN0cm95X2F1ZGlvX2ZpbGUoYXVkaW9fZmlsZSk7DQo+ID4gLQl9 DQo+ID4gLQ0KPiA+IC0JYXVkaW9fc2lnbmFsX2Zpbmkoc2lnbmFsKTsNCj4gPiAtCWNoYW1lbGl1 bV9zdHJlYW1fZGVpbml0KHN0cmVhbSk7DQo+ID4gKwlhdWRpb19zaWduYWxfZmluaShzdGF0ZS0+ c2lnbmFsKTsNCj4gPiAgDQo+ID4gIAlyZXR1cm4gc3VjY2VzczsNCj4gPiAgfQ0KPiA+IEBAIC0x MTEyLDYgKzExNjQsNyBAQCB0ZXN0X2Rpc3BsYXlfYXVkaW8oZGF0YV90ICpkYXRhLCBzdHJ1Y3Qg Y2hhbWVsaXVtX3BvcnQgKnBvcnQsDQo+ID4gIAlpbnQgZmJfaWQsIGksIGo7DQo+ID4gIAlpbnQg Y2hhbm5lbHMsIHNhbXBsaW5nX3JhdGU7DQo+ID4gIAlzbmRfcGNtX2Zvcm1hdF90IGZvcm1hdDsN Cj4gPiArCXN0cnVjdCBhdWRpb19zdGF0ZSBzdGF0ZTsNCj4gPiAgDQo+ID4gIAlpZ3RfcmVxdWly ZShhbHNhX2hhc19leGNsdXNpdmVfYWNjZXNzKCkpOw0KPiA+ICANCj4gPiBAQCAtMTE2MSw5ICsx MjE0LDEwIEBAIHRlc3RfZGlzcGxheV9hdWRpbyhkYXRhX3QgKmRhdGEsIHN0cnVjdCBjaGFtZWxp dW1fcG9ydCAqcG9ydCwNCj4gPiAgDQo+ID4gIAkJCXJ1biA9IHRydWU7DQo+ID4gIA0KPiA+IC0J CQlzdWNjZXNzICY9IGRvX3Rlc3RfZGlzcGxheV9hdWRpbyhkYXRhLCBwb3J0LCBhbHNhLA0KPiA+ IC0JCQkJCQkJIGZvcm1hdCwgY2hhbm5lbHMsDQo+ID4gLQkJCQkJCQkgc2FtcGxpbmdfcmF0ZSk7 DQo+ID4gKwkJCWF1ZGlvX3N0YXRlX2luaXQoJnN0YXRlLCBkYXRhLCBhbHNhLCBwb3J0LA0KPiA+ ICsJCQkJCSBmb3JtYXQsIGNoYW5uZWxzLCBzYW1wbGluZ19yYXRlKTsNCj4gPiArCQkJc3VjY2Vz cyAmPSBkb190ZXN0X2Rpc3BsYXlfYXVkaW8oJnN0YXRlKTsNCj4gPiArCQkJYXVkaW9fc3RhdGVf ZmluaSgmc3RhdGUpOw0KPiA+ICANCj4gPiAgCQkJYWxzYV9jbG9zZV9vdXRwdXQoYWxzYSk7DQo+ ID4gIAkJfQ0KPiA+IA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2