From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:49533) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R0HL4-0007fb-AW for qemu-devel@nongnu.org; Sun, 04 Sep 2011 14:22:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R0HL2-0006cP-Mt for qemu-devel@nongnu.org; Sun, 04 Sep 2011 14:22:38 -0400 Received: from mail-qy0-f173.google.com ([209.85.216.173]:46071) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R0HL2-0006cL-Hr for qemu-devel@nongnu.org; Sun, 04 Sep 2011 14:22:36 -0400 Received: by qyk31 with SMTP id 31so1557519qyk.4 for ; Sun, 04 Sep 2011 11:22:36 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <1314909960-31738-18-git-send-email-jcmvbkbc@gmail.com> References: <1314909960-31738-1-git-send-email-jcmvbkbc@gmail.com> <1314909960-31738-18-git-send-email-jcmvbkbc@gmail.com> From: Blue Swirl Date: Sun, 4 Sep 2011 18:22:16 +0000 Message-ID: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Subject: Re: [Qemu-devel] [PATCH v4 17/32] target-xtensa: implement exceptions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Max Filippov Cc: qemu-devel@nongnu.org T24gVGh1LCBTZXAgMSwgMjAxMSBhdCA4OjQ1IFBNLCBNYXggRmlsaXBwb3YgPGpjbXZia2JjQGdt YWlsLmNvbT4gd3JvdGU6Cj4gLSBtYXJrIHByaXZpbGVnZWQgb3Bjb2RlcyB3aXRoIHJpbmcgY2hl Y2s7Cj4gLSBtYWtlIGRlYnVnIGV4Y2VwdGlvbiBvbiBleGNlcHRpb24gaGFuZGxlciBlbnRyeS4K Pgo+IFNpZ25lZC1vZmYtYnk6IE1heCBGaWxpcHBvdiA8amNtdmJrYmNAZ21haWwuY29tPgo+IC0t LQo+IMKgY3B1LWV4ZWMuYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgwqAgwqA2ICsrKwo+IMKg dGFyZ2V0LXh0ZW5zYS9jcHUuaCDCoCDCoCDCoCB8IMKgIDY3ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysKPiDCoHRhcmdldC14dGVuc2EvaGVscGVyLmMgwqAgwqB8IMKgIDM3ICsrKysrKysr KysrKysrKy0KPiDCoHRhcmdldC14dGVuc2EvaGVscGVycy5oIMKgIHwgwqAgwqAyICsKPiDCoHRh cmdldC14dGVuc2Evb3BfaGVscGVyLmMgfCDCoCAyOSArKysrKysrKysrKysKPiDCoHRhcmdldC14 dGVuc2EvdHJhbnNsYXRlLmMgfCDCoDEwNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLQo+IMKgNiBmaWxlcyBjaGFuZ2VkLCAyNDIgaW5zZXJ0aW9ucygrKSwgNiBk ZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9jcHUtZXhlYy5jIGIvY3B1LWV4ZWMuYwo+IGlu ZGV4IDNmY2UwMzMuLjJmYzM3ZDggMTAwNjQ0Cj4gLS0tIGEvY3B1LWV4ZWMuYwo+ICsrKyBiL2Nw dS1leGVjLmMKPiBAQCAtNDg4LDYgKzQ4OCwxMiBAQCBpbnQgY3B1X2V4ZWMoQ1BVU3RhdGUgKmVu dikKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBkb19pbnRlcnJ1cHQoZW52 KTsKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBuZXh0X3RiID0gMDsKPiDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB9Cj4gKyNlbGlmIGRlZmluZWQoVEFSR0VUX1hU RU5TQSkKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgaWYgKGludGVycnVwdF9yZXF1 ZXN0ICYgQ1BVX0lOVEVSUlVQVF9IQVJEKSB7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoGVudi0+ZXhjZXB0aW9uX2luZGV4ID0gRVhDX0lSUTsKPiArIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZG9faW50ZXJydXB0KGVudik7Cj4gKyDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoG5leHRfdGIgPSAwOwo+ICsgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqB9Cj4gwqAjZW5kaWYKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oC8qIERvbid0IHVzZSB0aGUgY2FjaGVkIGludGVycnVwdF9yZXF1ZXN0IHZhbHVlLAo+IMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGRvX2ludGVycnVwdCBtYXkgaGF2ZSB1cGRhdGVk IHRoZSBFWElUVEIgZmxhZy4gKi8KPiBkaWZmIC0tZ2l0IGEvdGFyZ2V0LXh0ZW5zYS9jcHUuaCBi L3RhcmdldC14dGVuc2EvY3B1LmgKPiBpbmRleCA5MzkyMjJjLi5jYWU2NjM3IDEwMDY0NAo+IC0t LSBhL3RhcmdldC14dGVuc2EvY3B1LmgKPiArKysgYi90YXJnZXQteHRlbnNhL2NwdS5oCj4gQEAg LTEwOCw3ICsxMDgsMTIgQEAgZW51bSB7Cj4gwqBlbnVtIHsKPiDCoCDCoCBTQVIgPSAzLAo+IMKg IMKgIFNDT01QQVJFMSA9IDEyLAo+ICsgwqAgwqBFUEMxID0gMTc3LAo+ICsgwqAgwqBERVBDID0g MTkyLAo+ICsgwqAgwqBFWENTQVZFMSA9IDIwOSwKPiDCoCDCoCBQUyA9IDIzMCwKPiArIMKgIMKg RVhDQ0FVU0UgPSAyMzIsCj4gKyDCoCDCoEVYQ1ZBRERSID0gMjM4LAo+IMKgfTsKPgo+IMKgI2Rl ZmluZSBQU19JTlRMRVZFTCAweGYKPiBAQCAtMTI5LDkgKzEzNCw2MCBAQCBlbnVtIHsKPgo+IMKg I2RlZmluZSBQU19XT0UgMHg0MDAwMAo+Cj4gK2VudW0gewo+ICsgwqAgwqAvKiBTdGF0aWMgdmVj dG9ycyAqLwo+ICsgwqAgwqBFWENfUkVTRVQsCj4gKyDCoCDCoEVYQ19NRU1PUllfRVJST1IsCj4g Kwo+ICsgwqAgwqAvKiBEeW5hbWljIHZlY3RvcnMgKi8KPiArIMKgIMKgRVhDX1dJTkRPV19PVkVS RkxPVzQsCj4gKyDCoCDCoEVYQ19XSU5ET1dfVU5ERVJGTE9XNCwKPiArIMKgIMKgRVhDX1dJTkRP V19PVkVSRkxPVzgsCj4gKyDCoCDCoEVYQ19XSU5ET1dfVU5ERVJGTE9XOCwKPiArIMKgIMKgRVhD X1dJTkRPV19PVkVSRkxPVzEyLAo+ICsgwqAgwqBFWENfV0lORE9XX1VOREVSRkxPVzEyLAo+ICsg wqAgwqBFWENfSVJRLAo+ICsgwqAgwqBFWENfS0VSTkVMLAo+ICsgwqAgwqBFWENfVVNFUiwKPiAr IMKgIMKgRVhDX0RPVUJMRSwKPiArIMKgIMKgRVhDX01BWAo+ICt9Owo+ICsKPiArZW51bSB7Cj4g KyDCoCDCoElMTEVHQUxfSU5TVFJVQ1RJT05fQ0FVU0UgPSAwLAo+ICsgwqAgwqBTWVNDQUxMX0NB VVNFLAo+ICsgwqAgwqBJTlNUUlVDVElPTl9GRVRDSF9FUlJPUl9DQVVTRSwKPiArIMKgIMKgTE9B RF9TVE9SRV9FUlJPUl9DQVVTRSwKPiArIMKgIMKgTEVWRUwxX0lOVEVSUlVQVF9DQVVTRSwKPiAr IMKgIMKgQUxMT0NBX0NBVVNFLAo+ICsgwqAgwqBJTlRFR0VSX0RJVklERV9CWV9aRVJPX0NBVVNF LAo+ICsgwqAgwqBQUklWSUxFR0VEX0NBVVNFID0gOCwKPiArIMKgIMKgTE9BRF9TVE9SRV9BTElH Tk1FTlRfQ0FVU0UsCj4gKwo+ICsgwqAgwqBJTlNUUl9QSUZfREFUQV9FUlJPUl9DQVVTRSA9IDEy LAo+ICsgwqAgwqBMT0FEX1NUT1JFX1BJRl9EQVRBX0VSUk9SX0NBVVNFLAo+ICsgwqAgwqBJTlNU Ul9QSUZfQUREUl9FUlJPUl9DQVVTRSwKPiArIMKgIMKgTE9BRF9TVE9SRV9QSUZfQUREUl9FUlJP Ul9DQVVTRSwKPiArCj4gKyDCoCDCoElOU1RfVExCX01JU1NfQ0FVU0UsCj4gKyDCoCDCoElOU1Rf VExCX01VTFRJX0hJVF9DQVVTRSwKPiArIMKgIMKgSU5TVF9GRVRDSF9QUklWSUxFR0VfQ0FVU0Us Cj4gKyDCoCDCoElOU1RfRkVUQ0hfUFJPSElCSVRFRF9DQVVTRSA9IDIwLAo+ICsgwqAgwqBMT0FE X1NUT1JFX1RMQl9NSVNTX0NBVVNFID0gMjQsCj4gKyDCoCDCoExPQURfU1RPUkVfVExCX01VTFRJ X0hJVF9DQVVTRSwKPiArIMKgIMKgTE9BRF9TVE9SRV9QUklWSUxFR0VfQ0FVU0UsCj4gKyDCoCDC oExPQURfUFJPSElCSVRFRF9DQVVTRSA9IDI4LAo+ICsgwqAgwqBTVE9SRV9QUk9ISUJJVEVEX0NB VVNFLAo+ICsKPiArIMKgIMKgQ09QUk9DRVNTT1IwX0RJU0FCTEVEID0gMzIsCj4gK307Cj4gKwo+ IMKgdHlwZWRlZiBzdHJ1Y3QgWHRlbnNhQ29uZmlnIHsKPiDCoCDCoCBjb25zdCBjaGFyICpuYW1l Owo+IMKgIMKgIHVpbnQ2NF90IG9wdGlvbnM7Cj4gKyDCoCDCoGludCBleGNtX2xldmVsOwo+ICsg wqAgwqBpbnQgbmRlcGM7Cj4gKyDCoCDCoHVpbnQzMl90IGV4Y2VwdGlvbl92ZWN0b3JbRVhDX01B WF07Cj4gwqB9IFh0ZW5zYUNvbmZpZzsKPgo+IMKgdHlwZWRlZiBzdHJ1Y3QgQ1BVWHRlbnNhU3Rh dGUgewo+IEBAIC0xNDEsNiArMTk3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgQ1BVWHRlbnNhU3RhdGUg ewo+IMKgIMKgIHVpbnQzMl90IHNyZWdzWzI1Nl07Cj4gwqAgwqAgdWludDMyX3QgdXJlZ3NbMjU2 XTsKPgo+ICsgwqAgwqBpbnQgZXhjZXB0aW9uX3Rha2VuOwo+ICsKPiDCoCDCoCBDUFVfQ09NTU9O Cj4gwqB9IENQVVh0ZW5zYVN0YXRlOwo+Cj4gQEAgLTE2NCw2ICsyMjIsMTUgQEAgc3RhdGljIGlu bGluZSBib29sIHh0ZW5zYV9vcHRpb25fZW5hYmxlZChjb25zdCBYdGVuc2FDb25maWcgKmNvbmZp ZywgaW50IG9wdCkKPiDCoCDCoCByZXR1cm4gKGNvbmZpZy0+b3B0aW9ucyAmIFhURU5TQV9PUFRJ T05fQklUKG9wdCkpICE9IDA7Cj4gwqB9Cj4KPiArc3RhdGljIGlubGluZSBpbnQgeHRlbnNhX2dl dF9jaW50bGV2ZWwoY29uc3QgQ1BVU3RhdGUgKmVudikKPiArewo+ICsgwqAgwqBpbnQgbGV2ZWwg PSAoZW52LT5zcmVnc1tQU10gJiBQU19JTlRMRVZFTCkgPj4gUFNfSU5UTEVWRUxfU0hJRlQ7Cj4g KyDCoCDCoGlmICgoZW52LT5zcmVnc1tQU10gJiBQU19FWENNKSAmJiBlbnYtPmNvbmZpZy0+ZXhj bV9sZXZlbCA+IGxldmVsKSB7Cj4gKyDCoCDCoCDCoCDCoGxldmVsID0gZW52LT5jb25maWctPmV4 Y21fbGV2ZWw7Cj4gKyDCoCDCoH0KPiArIMKgIMKgcmV0dXJuIGxldmVsOwo+ICt9Cj4gKwo+IMKg c3RhdGljIGlubGluZSBpbnQgeHRlbnNhX2dldF9yaW5nKGNvbnN0IENQVVN0YXRlICplbnYpCj4g wqB7Cj4gwqAgwqAgaWYgKHh0ZW5zYV9vcHRpb25fZW5hYmxlZChlbnYtPmNvbmZpZywgWFRFTlNB X09QVElPTl9NTVUpKSB7Cj4gZGlmZiAtLWdpdCBhL3RhcmdldC14dGVuc2EvaGVscGVyLmMgYi90 YXJnZXQteHRlbnNhL2hlbHBlci5jCj4gaW5kZXggODNiOGEwNC4uNDRlYmI5ZiAxMDA2NDQKPiAt LS0gYS90YXJnZXQteHRlbnNhL2hlbHBlci5jCj4gKysrIGIvdGFyZ2V0LXh0ZW5zYS9oZWxwZXIu Ywo+IEBAIC0zNiw3ICszNiw4IEBACj4KPiDCoHZvaWQgY3B1X3Jlc2V0KENQVVh0ZW5zYVN0YXRl ICplbnYpCj4gwqB7Cj4gLSDCoCDCoGVudi0+cGMgPSAwOwo+ICsgwqAgwqBlbnYtPmV4Y2VwdGlv bl90YWtlbiA9IDA7Cj4gKyDCoCDCoGVudi0+cGMgPSBlbnYtPmNvbmZpZy0+ZXhjZXB0aW9uX3Zl Y3RvcltFWENfUkVTRVRdOwo+IMKgIMKgIGVudi0+c3JlZ3NbUFNdID0gMHgxZjsKPiDCoH0KPgo+ IEBAIC00NCw2ICs0NSwyMCBAQCBzdGF0aWMgY29uc3QgWHRlbnNhQ29uZmlnIGNvcmVfY29uZmln W10gPSB7Cj4gwqAgwqAgewo+IMKgIMKgIMKgIMKgIC5uYW1lID0gInNhbXBsZS14dGVuc2EtY29y ZSIsCj4gwqAgwqAgwqAgwqAgLm9wdGlvbnMgPSAtMSwKPiArIMKgIMKgIMKgIMKgLm5kZXBjID0g MSwKPiArIMKgIMKgIMKgIMKgLmV4Y21fbGV2ZWwgPSAxNiwKPiArIMKgIMKgIMKgIMKgLmV4Y2Vw dGlvbl92ZWN0b3IgPSB7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoFtFWENfUkVTRVRdID0gMHg1ZmZm ODAwMCwKPiArIMKgIMKgIMKgIMKgIMKgIMKgW0VYQ19XSU5ET1dfT1ZFUkZMT1c0XSA9IDB4NWZm Zjg0MDAsCj4gKyDCoCDCoCDCoCDCoCDCoCDCoFtFWENfV0lORE9XX1VOREVSRkxPVzRdID0gMHg1 ZmZmODQ0MCwKPiArIMKgIMKgIMKgIMKgIMKgIMKgW0VYQ19XSU5ET1dfT1ZFUkZMT1c4XSA9IDB4 NWZmZjg0ODAsCj4gKyDCoCDCoCDCoCDCoCDCoCDCoFtFWENfV0lORE9XX1VOREVSRkxPVzhdID0g MHg1ZmZmODRjMCwKPiArIMKgIMKgIMKgIMKgIMKgIMKgW0VYQ19XSU5ET1dfT1ZFUkZMT1cxMl0g PSAweDVmZmY4NTAwLAo+ICsgwqAgwqAgwqAgwqAgwqAgwqBbRVhDX1dJTkRPV19VTkRFUkZMT1cx Ml0gPSAweDVmZmY4NTQwLAo+ICsgwqAgwqAgwqAgwqAgwqAgwqBbRVhDX0tFUk5FTF0gPSAweDVm ZmY4NjFjLAo+ICsgwqAgwqAgwqAgwqAgwqAgwqBbRVhDX1VTRVJdID0gMHg1ZmZmODYzYywKPiAr IMKgIMKgIMKgIMKgIMKgIMKgW0VYQ19ET1VCTEVdID0gMHg1ZmZmODY1YywKPiArIMKgIMKgIMKg IMKgfSwKPiDCoCDCoCB9LAo+IMKgfTsKPgo+IEBAIC05NCw0ICsxMDksMjQgQEAgdGFyZ2V0X3Bo eXNfYWRkcl90IGNwdV9nZXRfcGh5c19wYWdlX2RlYnVnKENQVVN0YXRlICplbnYsIHRhcmdldF91 bG9uZyBhZGRyKQo+Cj4gwqB2b2lkIGRvX2ludGVycnVwdChDUFVTdGF0ZSAqZW52KQo+IMKgewo+ ICsgwqAgwqBzd2l0Y2ggKGVudi0+ZXhjZXB0aW9uX2luZGV4KSB7Cj4gKyDCoCDCoGNhc2UgRVhD X1dJTkRPV19PVkVSRkxPVzQ6Cj4gKyDCoCDCoGNhc2UgRVhDX1dJTkRPV19VTkRFUkZMT1c0Ogo+ ICsgwqAgwqBjYXNlIEVYQ19XSU5ET1dfT1ZFUkZMT1c4Ogo+ICsgwqAgwqBjYXNlIEVYQ19XSU5E T1dfVU5ERVJGTE9XODoKPiArIMKgIMKgY2FzZSBFWENfV0lORE9XX09WRVJGTE9XMTI6Cj4gKyDC oCDCoGNhc2UgRVhDX1dJTkRPV19VTkRFUkZMT1cxMjoKPiArIMKgIMKgY2FzZSBFWENfS0VSTkVM Ogo+ICsgwqAgwqBjYXNlIEVYQ19VU0VSOgo+ICsgwqAgwqBjYXNlIEVYQ19ET1VCTEU6Cj4gKyDC oCDCoCDCoCDCoGlmIChlbnYtPmNvbmZpZy0+ZXhjZXB0aW9uX3ZlY3RvcltlbnYtPmV4Y2VwdGlv bl9pbmRleF0pIHsKPiArIMKgIMKgIMKgIMKgIMKgIMKgZW52LT5wYyA9IGVudi0+Y29uZmlnLT5l eGNlcHRpb25fdmVjdG9yW2Vudi0+ZXhjZXB0aW9uX2luZGV4XTsKPiArIMKgIMKgIMKgIMKgIMKg IMKgZW52LT5leGNlcHRpb25fdGFrZW4gPSAxOwo+ICsgwqAgwqAgwqAgwqB9IGVsc2Ugewo+ICsg wqAgwqAgwqAgwqAgwqAgwqBxZW11X2xvZygiJXMocGMgPSAlMDh4KSBiYWQgZXhjZXB0aW9uX2lu ZGV4OiAlZFxuIiwKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgX19mdW5jX18sIGVu di0+cGMsIGVudi0+ZXhjZXB0aW9uX2luZGV4KTsKPiArIMKgIMKgIMKgIMKgfQo+ICsgwqAgwqAg wqAgwqBicmVhazsKPiArCj4gKyDCoCDCoH0KPiDCoH0KPiBkaWZmIC0tZ2l0IGEvdGFyZ2V0LXh0 ZW5zYS9oZWxwZXJzLmggYi90YXJnZXQteHRlbnNhL2hlbHBlcnMuaAo+IGluZGV4IDk3NmM4ZDgu LjYzMjljNDMgMTAwNjQ0Cj4gLS0tIGEvdGFyZ2V0LXh0ZW5zYS9oZWxwZXJzLmgKPiArKysgYi90 YXJnZXQteHRlbnNhL2hlbHBlcnMuaAo+IEBAIC0xLDYgKzEsOCBAQAo+IMKgI2luY2x1ZGUgImRl Zi1oZWxwZXIuaCIKPgo+IMKgREVGX0hFTFBFUl8xKGV4Y2VwdGlvbiwgdm9pZCwgaTMyKQo+ICtE RUZfSEVMUEVSXzIoZXhjZXB0aW9uX2NhdXNlLCB2b2lkLCBpMzIsIGkzMikKPiArREVGX0hFTFBF Ul8zKGV4Y2VwdGlvbl9jYXVzZV92YWRkciwgdm9pZCwgaTMyLCBpMzIsIGkzMikKPiDCoERFRl9I RUxQRVJfMShuc2EsIGkzMiwgaTMyKQo+IMKgREVGX0hFTFBFUl8xKG5zYXUsIGkzMiwgaTMyKQo+ Cj4gZGlmZiAtLWdpdCBhL3RhcmdldC14dGVuc2Evb3BfaGVscGVyLmMgYi90YXJnZXQteHRlbnNh L29wX2hlbHBlci5jCj4gaW5kZXggYzFjZmQyZS4uNzk0YTgzNCAxMDA2NDQKPiAtLS0gYS90YXJn ZXQteHRlbnNhL29wX2hlbHBlci5jCj4gKysrIGIvdGFyZ2V0LXh0ZW5zYS9vcF9oZWxwZXIuYwo+ IEBAIC01OSw2ICs1OSwzNSBAQCB2b2lkIEhFTFBFUihleGNlcHRpb24pKHVpbnQzMl90IGV4Y3Ap Cj4gwqAgwqAgY3B1X2xvb3BfZXhpdChlbnYpOwo+IMKgfQo+Cj4gK3ZvaWQgSEVMUEVSKGV4Y2Vw dGlvbl9jYXVzZSkodWludDMyX3QgcGMsIHVpbnQzMl90IGNhdXNlKQo+ICt7Cj4gKyDCoCDCoHVp bnQzMl90IHZlY3RvcjsKPiArCj4gKyDCoCDCoGVudi0+cGMgPSBwYzsKPiArIMKgIMKgaWYgKGVu di0+c3JlZ3NbUFNdICYgUFNfRVhDTSkgewo+ICsgwqAgwqAgwqAgwqBpZiAoZW52LT5jb25maWct Pm5kZXBjKSB7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoGVudi0+c3JlZ3NbREVQQ10gPSBwYzsKPiAr IMKgIMKgIMKgIMKgfSBlbHNlIHsKPiArIMKgIMKgIMKgIMKgIMKgIMKgZW52LT5zcmVnc1tFUEMx XSA9IHBjOwo+ICsgwqAgwqAgwqAgwqB9Cj4gKyDCoCDCoCDCoCDCoHZlY3RvciA9IEVYQ19ET1VC TEU7Cj4gKyDCoCDCoH0gZWxzZSB7Cj4gKyDCoCDCoCDCoCDCoGVudi0+c3JlZ3NbRVBDMV0gPSBw YzsKPiArIMKgIMKgIMKgIMKgdmVjdG9yID0gKGVudi0+c3JlZ3NbUFNdICYgUFNfVU0pID8gRVhD X1VTRVIgOiBFWENfS0VSTkVMOwo+ICsgwqAgwqB9Cj4gKwo+ICsgwqAgwqBlbnYtPnNyZWdzW0VY Q0NBVVNFXSA9IGNhdXNlOwo+ICsgwqAgwqBlbnYtPnNyZWdzW1BTXSB8PSBQU19FWENNOwo+ICsK PiArIMKgIMKgSEVMUEVSKGV4Y2VwdGlvbikodmVjdG9yKTsKPiArfQo+ICsKPiArdm9pZCBIRUxQ RVIoZXhjZXB0aW9uX2NhdXNlX3ZhZGRyKSh1aW50MzJfdCBwYywgdWludDMyX3QgY2F1c2UsIHVp bnQzMl90IHZhZGRyKQo+ICt7Cj4gKyDCoCDCoGVudi0+c3JlZ3NbRVhDVkFERFJdID0gdmFkZHI7 Cj4gKyDCoCDCoEhFTFBFUihleGNlcHRpb25fY2F1c2UpKHBjLCBjYXVzZSk7Cj4gK30KPiArCj4g wqB1aW50MzJfdCBIRUxQRVIobnNhKSh1aW50MzJfdCB2KQo+IMKgewo+IMKgIMKgIGlmICh2ICYg MHg4MDAwMDAwMCkgewo+IGRpZmYgLS1naXQgYS90YXJnZXQteHRlbnNhL3RyYW5zbGF0ZS5jIGIv dGFyZ2V0LXh0ZW5zYS90cmFuc2xhdGUuYwo+IGluZGV4IGI2ZDAyMTAuLjRjOWRiOWUgMTAwNjQ0 Cj4gLS0tIGEvdGFyZ2V0LXh0ZW5zYS90cmFuc2xhdGUuYwo+ICsrKyBiL3RhcmdldC14dGVuc2Ev dHJhbnNsYXRlLmMKPiBAQCAtNjcsNyArNjcsMTIgQEAgc3RhdGljIFRDR3ZfaTMyIGNwdV9VUlsy NTZdOwo+IMKgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzcmVnbmFtZXNbMjU2XSA9IHsKPiDC oCDCoCBbU0FSXSA9ICJTQVIiLAo+IMKgIMKgIFtTQ09NUEFSRTFdID0gIlNDT01QQVJFMSIsCj4g KyDCoCDCoFtFUEMxXSA9ICJFUEMxIiwKPiArIMKgIMKgW0RFUENdID0gIkRFUEMiLAo+ICsgwqAg wqBbRVhDU0FWRTFdID0gIkVYQ1NBVkUxIiwKPiDCoCDCoCBbUFNdID0gIlBTIiwKPiArIMKgIMKg W0VYQ0NBVVNFXSA9ICJFWENDQVVTRSIsCj4gKyDCoCDCoFtFWENWQUREUl0gPSAiRVhDVkFERFIi LAo+IMKgfTsKPgo+IMKgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1cmVnbmFtZXNbMjU2XSA9 IHsKPiBAQCAtMTY1LDYgKzE3MCwyMiBAQCBzdGF0aWMgdm9pZCBnZW5fZXhjZXB0aW9uKGludCBl eGNwKQo+IMKgIMKgIHRjZ190ZW1wX2ZyZWUodG1wKTsKPiDCoH0KPgo+ICtzdGF0aWMgdm9pZCBn ZW5fZXhjZXB0aW9uX2NhdXNlKERpc2FzQ29udGV4dCAqZGMsIHVpbnQzMl90IGNhdXNlKQo+ICt7 Cj4gKyDCoCDCoFRDR3ZfaTMyIF9wYyA9IHRjZ19jb25zdF9pMzIoZGMtPnBjKTsKPiArIMKgIMKg VENHdl9pMzIgX2NhdXNlID0gdGNnX2NvbnN0X2kzMihjYXVzZSk7CgpQbGVhc2UgZG9uJ3QgdXNl IGlkZW50aWZpZXJzIHN0YXJ0aW5nIHdpdGggdW5kZXJzY29yZS4KCj4gKyDCoCDCoGdlbl9oZWxw ZXJfZXhjZXB0aW9uX2NhdXNlKF9wYywgX2NhdXNlKTsKPiArIMKgIMKgdGNnX3RlbXBfZnJlZShf cGMpOwo+ICsgwqAgwqB0Y2dfdGVtcF9mcmVlKF9jYXVzZSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2 b2lkIGdlbl9jaGVja19wcml2aWxlZ2UoRGlzYXNDb250ZXh0ICpkYykKPiArewo+ICsgwqAgwqBp ZiAoZGMtPmNyaW5nKSB7Cj4gKyDCoCDCoCDCoCDCoGdlbl9leGNlcHRpb25fY2F1c2UoZGMsIFBS SVZJTEVHRURfQ0FVU0UpOwo+ICsgwqAgwqB9Cj4gK30KPiArCj4gwqBzdGF0aWMgdm9pZCBnZW5f anVtcF9zbG90KERpc2FzQ29udGV4dCAqZGMsIFRDR3YgZGVzdCwgaW50IHNsb3QpCj4gwqB7Cj4g wqAgwqAgdGNnX2dlbl9tb3ZfaTMyKGNwdV9wYywgZGVzdCk7Cj4gQEAgLTM5Miw3ICs0MTMsNyBA QCBzdGF0aWMgdm9pZCBkaXNhc194dGVuc2FfaW5zbihEaXNhc0NvbnRleHQgKmRjKQo+IMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIGNhc2UgMDogLypTTk0wKi8KPiDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCBzd2l0Y2ggKENBTExYX00pIHsKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCBjYXNlIDA6IC8qSUxMKi8KPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgVEJEKCk7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGdlbl9leGNl cHRpb25fY2F1c2UoZGMsIElMTEVHQUxfSU5TVFJVQ1RJT05fQ0FVU0UpOwo+IMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGJyZWFrOwo+Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgY2FzZSAxOiAvKnJlc2VydmVkKi8KPiBAQCAtNDc5LDcgKzUwMCw1MiBAQCBzdGF0 aWMgdm9pZCBkaXNhc194dGVuc2FfaW5zbihEaXNhc0NvbnRleHQgKmRjKQo+IMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIGJyZWFrOwo+Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgY2Fz ZSAzOiAvKlJGRUl4Ki8KPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgVEJEKCk7Cj4g KyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHN3aXRjaCAoUlJSX1QpIHsKPiArIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgY2FzZSAwOiAvKlJGRVR4Ki8KPiArIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgSEFTX09QVElPTihYVEVOU0FfT1BUSU9OX0VYQ0VQVElP Tik7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHN3aXRjaCAoUlJSX1Mp IHsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgY2FzZSAwOiAvKlJGRXgq Lwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBnZW5fY2hlY2tf cHJpdmlsZWdlKGRjKTsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgdGNnX2dlbl9hbmRpX2kzMihjcHVfU1JbUFNdLCBjcHVfU1JbUFNdLCB+UFNfRVhDTSk7Cj4g KyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGdlbl9qdW1wKGRjLCBj cHVfU1JbRVBDMV0pOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqBicmVhazsKPiArCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGNhc2Ug MTogLypSRlVFeCovCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oFJFU0VSVkVEKCk7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oGJyZWFrOwo+ICsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgY2FzZSAy OiAvKlJGREV4Ki8KPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg Z2VuX2NoZWNrX3ByaXZpbGVnZShkYyk7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoGdlbl9qdW1wKGRjLCBjcHVfU1JbCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGRjLT5jb25maWctPm5kZXBjID8gREVQ QyA6IEVQQzFdKTsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg YnJlYWs7Cj4gKwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBjYXNlIDQ6 IC8qUkZXT3cqLwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBjYXNlIDU6 IC8qUkZXVXcqLwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBI QVNfT1BUSU9OKFhURU5TQV9PUFRJT05fV0lORE9XRURfUkVHSVNURVIpOwo+ICsgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBUQkQoKTsKPiArIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgYnJlYWs7Cj4gKwo+ICsgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqBkZWZhdWx0OiAvKnJlc2VydmVkKi8KPiArIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgUkVTRVJWRUQoKTsKPiArIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgYnJlYWs7Cj4gKyDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoH0KPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgYnJlYWs7Cj4gKwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBjYXNlIDE6IC8q UkZJeCovCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoEhBU19PUFRJT04o WFRFTlNBX09QVElPTl9ISUdIX1BSSU9SSVRZX0lOVEVSUlVQVCk7Cj4gKyDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoFRCRCgpOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqBicmVhazsKPiArCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGNh c2UgMjogLypSRk1FKi8KPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgVEJE KCk7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGJyZWFrOwo+ICsKPiAr IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZGVmYXVsdDogLypyZXNlcnZlZCovCj4gKyDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFJFU0VSVkVEKCk7Cj4gKyDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGJyZWFrOwo+ICsKPiArIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgfQo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGJyZWFrOwo+ Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgY2FzZSA0OiAvKkJSRUFLeCovCj4gQEAgLTQ4OSwx MiArNTU1LDI4IEBAIHN0YXRpYyB2b2lkIGRpc2FzX3h0ZW5zYV9pbnNuKERpc2FzQ29udGV4dCAq ZGMpCj4KPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBjYXNlIDU6IC8qU1lTQ0FMTHgqLwo+IMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIEhBU19PUFRJT04oWFRFTlNBX09QVElPTl9FWENF UFRJT04pOwo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBUQkQoKTsKPiArIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgc3dpdGNoIChSUlJfUykgewo+ICsgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqBjYXNlIDA6IC8qU1lTQ0FMTHgqLwo+ICsgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqBnZW5fZXhjZXB0aW9uX2NhdXNlKGRjLCBTWVNDQUxMX0NBVVNF KTsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgYnJlYWs7Cj4gKwo+ICsg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBjYXNlIDE6IC8qU0lNQ0FMTCovCj4gKyDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFRCRCgpOwo+ICsgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqBicmVhazsKPiArCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoGRlZmF1bHQ6Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFJF U0VSVkVEKCk7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGJyZWFrOwo+ ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB9Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgYnJlYWs7Cj4KPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBjYXNlIDY6IC8qUlNJ THgqLwo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIEhBU19PUFRJT04oWFRFTlNBX09Q VElPTl9JTlRFUlJVUFQpOwo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBUQkQoKTsK PiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZ2VuX2NoZWNrX3ByaXZpbGVnZShkYyk7 Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHRjZ19nZW5fbW92X2kzMihjcHVfUltS UlJfVF0sIGNwdV9TUltQU10pOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB0Y2df Z2VuX29yaV9pMzIoY3B1X1NSW1BTXSwgY3B1X1NSW1BTXSwgUlJSX1MpOwo+ICsgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqB0Y2dfZ2VuX2FuZGlfaTMyKGNwdV9TUltQU10sIGNwdV9TUltQ U10sCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFJSUl9TIHwg flBTX0lOVExFVkVMKTsKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBicmVhazsKPgo+ IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGNhc2UgNzogLypXQUlUSXgqLwo+IEBAIC02OTEsNiAr NzczLDkgQEAgc3RhdGljIHZvaWQgZGlzYXNfeHRlbnNhX2luc24oRGlzYXNDb250ZXh0ICpkYykK PiDCoCDCoCDCoCDCoCDCoCDCoCBjYXNlIDY6IC8qWFNSKi8KPiDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCB7Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgVENHdl9pMzIgdG1wID0gdGNn X3RlbXBfbmV3X2kzMigpOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBpZiAoUlNS X1NSID49IDY0KSB7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGdlbl9j aGVja19wcml2aWxlZ2UoZGMpOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB9Cj4g wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgdGNnX2dlbl9tb3ZfaTMyKHRtcCwgY3B1X1Jb UlJSX1RdKTsKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBnZW5fcnNyKGRjLCBjcHVf UltSUlJfVF0sIFJTUl9TUik7Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgZ2VuX3dz cihkYywgUlNSX1NSLCB0bXApOwo+IEBAIC03OTksNiArODg0LDkgQEAgc3RhdGljIHZvaWQgZGlz YXNfeHRlbnNhX2luc24oRGlzYXNDb250ZXh0ICpkYykKPiDCoCDCoCDCoCDCoCBjYXNlIDM6IC8q UlNUMyovCj4gwqAgwqAgwqAgwqAgwqAgwqAgc3dpdGNoIChPUDIpIHsKPiDCoCDCoCDCoCDCoCDC oCDCoCBjYXNlIDA6IC8qUlNSKi8KPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgaWYgKFJTUl9T UiA+PSA2NCkgewo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBnZW5fY2hlY2tfcHJp dmlsZWdlKGRjKTsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfQo+IMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIGdlbl9yc3IoZGMsIGNwdV9SW1JSUl9UXSwgUlNSX1NSKTsKPiDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCBpZiAoIXNyZWduYW1lc1tSU1JfU1JdKSB7Cj4gwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgVEJEKCk7Cj4gQEAgLTgwNiw2ICs4OTQsOSBAQCBzdGF0aWMgdm9pZCBk aXNhc194dGVuc2FfaW5zbihEaXNhc0NvbnRleHQgKmRjKQo+IMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIGJyZWFrOwo+Cj4gwqAgwqAgwqAgwqAgwqAgwqAgY2FzZSAxOiAvKldTUiovCj4gKyDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoGlmIChSU1JfU1IgPj0gNjQpIHsKPiArIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgZ2VuX2NoZWNrX3ByaXZpbGVnZShkYyk7Cj4gKyDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoH0KPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBnZW5fd3NyKGRjLCBSU1JfU1Is IGNwdV9SW1JSUl9UXSk7Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgaWYgKCFzcmVnbmFtZXNb UlNSX1NSXSkgewo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFRCRCgpOwo+IEBAIC0x NDIxLDcgKzE1MTIsNyBAQCBzdGF0aWMgdm9pZCBkaXNhc194dGVuc2FfaW5zbihEaXNhc0NvbnRl eHQgKmRjKQo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGJyZWFrOwo+Cj4gwqAgwqAgwqAgwqAg wqAgwqAgY2FzZSA2OiAvKklMTC5ObiovCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFRCRCgp Owo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBnZW5fZXhjZXB0aW9uX2NhdXNlKGRjLCBJTExF R0FMX0lOU1RSVUNUSU9OX0NBVVNFKTsKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBicmVhazsK Pgo+IMKgIMKgIMKgIMKgIMKgIMKgIGRlZmF1bHQ6IC8qcmVzZXJ2ZWQqLwo+IEBAIC0xNDkzLDYg KzE1ODQsMTIgQEAgc3RhdGljIHZvaWQgZ2VuX2ludGVybWVkaWF0ZV9jb2RlX2ludGVybmFsKAo+ Cj4gwqAgwqAgZ2VuX2ljb3VudF9zdGFydCgpOwo+Cj4gKyDCoCDCoGlmIChlbnYtPnNpbmdsZXN0 ZXBfZW5hYmxlZCAmJiBlbnYtPmV4Y2VwdGlvbl90YWtlbikgewo+ICsgwqAgwqAgwqAgwqBlbnYt PmV4Y2VwdGlvbl90YWtlbiA9IDA7Cj4gKyDCoCDCoCDCoCDCoHRjZ19nZW5fbW92aV9pMzIoY3B1 X3BjLCBkYy5wYyk7Cj4gKyDCoCDCoCDCoCDCoGdlbl9leGNlcHRpb24oRVhDUF9ERUJVRyk7Cj4g KyDCoCDCoH0KPiArCj4gwqAgwqAgZG8gewo+IMKgIMKgIMKgIMKgIGNoZWNrX2JyZWFrcG9pbnQo ZW52LCAmZGMpOwo+Cj4gLS0KPiAxLjcuNgo+Cj4KPgo=