From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([149.20.54.216]:47031 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750899AbcFQHDu (ORCPT ); Fri, 17 Jun 2016 03:03:50 -0400 Received: from localhost (74-93-104-98-Washington.hfc.comcastbusiness.net [74.93.104.98]) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 0D03E5B6D06 for ; Fri, 17 Jun 2016 00:03:48 -0700 (PDT) Date: Fri, 17 Jun 2016 00:03:46 -0700 (PDT) Message-Id: <20160617.000346.395013690469975369.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Fri_Jun_17_00_03_46_2016_429)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Fri_Jun_17_00_03_46_2016_429)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for 4.4, 4.5, and 4.6 -stable, respectively. Thanks! ----Next_Part(Fri_Jun_17_00_03_46_2016_429)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_44.mbox" RnJvbSA5YWNiYWRmYWVkNWIyNjAxNGQ1ODMwYzZiZDhmZTgzNzQ2OTUwMjIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIEFscGUgPHJpY2hhcmQuYWxwZUBlcmljc3Nvbi5j b20+CkRhdGU6IE1vbiwgMTYgTWF5IDIwMTYgMTE6MTQ6NTQgKzAyMDAKU3ViamVjdDogW1BBVENI IDAxLzE5XSB0aXBjOiBjaGVjayBubCBzb2NrIGJlZm9yZSBwYXJzaW5nIG5lc3RlZCBhdHRyaWJ1 dGVzCgpbIFVwc3RyZWFtIGNvbW1pdCA0NWUwOTNhZTI4MzBjZDEyNjQ2NzdkNDdmZjlhOTVhNzFm NWQ5ZjljIF0KCk1ha2Ugc3VyZSB0aGUgc29ja2V0IGZvciB3aGljaCB0aGUgdXNlciBpcyBsaXN0 aW5nIHB1YmxpY2F0aW9uIGV4aXN0cwpiZWZvcmUgcGFyc2luZyB0aGUgc29ja2V0IG5ldGxpbmsg YXR0cmlidXRlcy4KClByaW9yIHRvIHRoaXMgcGF0Y2ggYSBjYWxsIHdpdGhvdXQgYW55IHNvY2tl dCBjYXVzZWQgYSBOVUxMIHBvaW50ZXIKZGVyZWZlcmVuY2UgaW4gdGlwY19ubF9wdWJsX2R1bXAo KS4KClRlc3RlZC1hbmQtcmVwb3J0ZWQtYnk6IEJhb3plbmcgRGluZyA8c3Bsb3ZpbmcxQGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogUmljaGFyZCBBbHBlIDxyaWNoYXJkLmFscGVAZXJpY3Nzb24u Y29tPgpBY2tlZC1ieTogSm9uIE1hbG95IDxqb24ubWFsb3lAZXJpY3Nzb24uY20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlw Yy9zb2NrZXQuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvbmV0L3RpcGMvc29ja2V0LmMgYi9uZXQvdGlwYy9zb2NrZXQuYwppbmRleCBlNTMw MDNjLi45YjcxM2UwIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9zb2NrZXQuYworKysgYi9uZXQvdGlw Yy9zb2NrZXQuYwpAQCAtMjgxNCw2ICsyODE0LDkgQEAgaW50IHRpcGNfbmxfcHVibF9kdW1wKHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYikKIAkJaWYgKGVy cikKIAkJCXJldHVybiBlcnI7CiAKKwkJaWYgKCFhdHRyc1tUSVBDX05MQV9TT0NLXSkKKwkJCXJl dHVybiAtRUlOVkFMOworCiAJCWVyciA9IG5sYV9wYXJzZV9uZXN0ZWQoc29jaywgVElQQ19OTEFf U09DS19NQVgsCiAJCQkJICAgICAgIGF0dHJzW1RJUENfTkxBX1NPQ0tdLAogCQkJCSAgICAgICB0 aXBjX25sX3NvY2tfcG9saWN5KTsKLS0gCjIuMS4wCgoKRnJvbSAzOTAyNmUwZjEzNTBkMWNmODRk NzMxOWMwZDZkM2FlM2MzYTljODU2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZXJi ZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CkRhdGU6IE1vbiwgMTYgTWF5IDIw MTYgMTc6Mjg6MTYgKzA4MDAKU3ViamVjdDogW1BBVENIIDAyLzE5XSBuZXRsaW5rOiBGaXggZHVt cCBza2IgbGVhay9kb3VibGUgZnJlZQoKWyBVcHN0cmVhbSBjb21taXQgOTI5NjRjNzliMzU3ZWZk OTgwODEyYzRkZTVjMWZkMmVjOGJiNTUyMCBdCgpXaGVuIHdlIGZyZWUgY2ItPnNrYiBhZnRlciBh IGR1bXAsIHdlIGRvIGl0IGFmdGVyIHJlbGVhc2luZyB0aGUKbG9jay4gIFRoaXMgbWVhbnMgdGhh dCBhIG5ldyBkdW1wIGNvdWxkIGhhdmUgc3RhcnRlZCBpbiB0aGUgdGltZQpiZWluZyBhbmQgd2Un bGwgZW5kIHVwIGZyZWVpbmcgdGhlaXIgc2tiIGluc3RlYWQgb2Ygb3Vycy4KClRoaXMgcGF0Y2gg c2F2ZXMgdGhlIHNrYiBhbmQgbW9kdWxlIGJlZm9yZSB3ZSB1bmxvY2sgc28gd2UgZnJlZQp0aGUg cmlnaHQgbWVtb3J5LgoKRml4ZXM6IDE2YjMwNGYzNDA0ZiAoIm5ldGxpbms6IEVsaW1pbmF0ZSBr bWFsbG9jIGluIG5ldGxpbmsgZHVtcCBvcGVyYXRpb24uIikKUmVwb3J0ZWQtYnk6IEJhb3plbmcg RGluZyA8c3Bsb3ZpbmcxQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSGVyYmVydCBYdSA8aGVy YmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpBY2tlZC1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5n Y29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmMgfCA3ICsrKysrLS0KIDEg ZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jIGIvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCmlu ZGV4IDk5MmIzNWYuLjdhNWZhMGMgMTAwNjQ0Ci0tLSBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsu YworKysgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKQEAgLTI3ODQsNiArMjc4NCw3IEBAIHN0 YXRpYyBpbnQgbmV0bGlua19kdW1wKHN0cnVjdCBzb2NrICpzaykKIAlzdHJ1Y3QgbmV0bGlua19j YWxsYmFjayAqY2I7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYiA9IE5VTEw7CiAJc3RydWN0IG5sbXNn aGRyICpubGg7CisJc3RydWN0IG1vZHVsZSAqbW9kdWxlOwogCWludCBsZW4sIGVyciA9IC1FTk9C VUZTOwogCWludCBhbGxvY19taW5fc2l6ZTsKIAlpbnQgYWxsb2Nfc2l6ZTsKQEAgLTI4NjMsOSAr Mjg2NCwxMSBAQCBzdGF0aWMgaW50IG5ldGxpbmtfZHVtcChzdHJ1Y3Qgc29jayAqc2spCiAJCWNi LT5kb25lKGNiKTsKIAogCW5say0+Y2JfcnVubmluZyA9IGZhbHNlOworCW1vZHVsZSA9IGNiLT5t b2R1bGU7CisJc2tiID0gY2ItPnNrYjsKIAltdXRleF91bmxvY2sobmxrLT5jYl9tdXRleCk7Ci0J bW9kdWxlX3B1dChjYi0+bW9kdWxlKTsKLQljb25zdW1lX3NrYihjYi0+c2tiKTsKKwltb2R1bGVf cHV0KG1vZHVsZSk7CisJY29uc3VtZV9za2Ioc2tiKTsKIAlyZXR1cm4gMDsKIAogZXJyb3V0X3Nr YjoKLS0gCjIuMS4wCgoKRnJvbSAwNDc0NGMzYjlkMTVjMzM5YWNlNTA0MWUzZTgwYWZjOTkzMTI1 NmI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIEFscGUgPHJpY2hhcmQu YWxwZUBlcmljc3Nvbi5jb20+CkRhdGU6IFR1ZSwgMTcgTWF5IDIwMTYgMTY6NTc6MzcgKzAyMDAK U3ViamVjdDogW1BBVENIIDAzLzE5XSB0aXBjOiBmaXggbmFtZXRhYmxlIHB1YmxpY2F0aW9uIGZp ZWxkIGluIG5sIGNvbXBhdAoKWyBVcHN0cmVhbSBjb21taXQgMDNhYWFhOWI5NDFlMTM2NzU3YjU1 YzRjZjc3NWFhYjYwNjhkZmQ5NCBdCgpUaGUgcHVibGljYXRpb24gZmllbGQgb2YgdGhlIG9sZCBu ZXRsaW5rIEFQSSBzaG91bGQgY29udGFpbiB0aGUKcHVibGljYXRpb24ga2V5IGFuZCBub3QgdGhl IHB1YmxpY2F0aW9uIHJlZmVyZW5jZS4KCkZpeGVzOiA0NGE4YWU5NGZkNTUgKHRpcGM6IGNvbnZl cnQgbGVnYWN5IG5sIG5hbWUgdGFibGUgZHVtcCB0byBubCBjb21wYXQpClNpZ25lZC1vZmYtYnk6 IFJpY2hhcmQgQWxwZSA8cmljaGFyZC5hbHBlQGVyaWNzc29uLmNvbT4KQWNrZWQtYnk6IEpvbiBN YWxveSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL25ldGxpbmtfY29tcGF0LmMg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9uZXQvdGlwYy9uZXRsaW5rX2NvbXBhdC5jIGIvbmV0L3RpcGMvbmV0bGlua19j b21wYXQuYwppbmRleCAxZWFkYzk1Li4yZWQ3MzJiIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9uZXRs aW5rX2NvbXBhdC5jCisrKyBiL25ldC90aXBjL25ldGxpbmtfY29tcGF0LmMKQEAgLTgwMiw3ICs4 MDIsNyBAQCBzdGF0aWMgaW50IHRpcGNfbmxfY29tcGF0X25hbWVfdGFibGVfZHVtcChzdHJ1Y3Qg dGlwY19ubF9jb21wYXRfbXNnICptc2csCiAJCWdvdG8gb3V0OwogCiAJdGlwY190bHZfc3ByaW50 Zihtc2ctPnJlcCwgIiUtMTB1ICVzIiwKLQkJCSBubGFfZ2V0X3UzMihwdWJsW1RJUENfTkxBX1BV QkxfUkVGXSksCisJCQkgbmxhX2dldF91MzIocHVibFtUSVBDX05MQV9QVUJMX0tFWV0pLAogCQkJ IHNjb3BlX3N0cltubGFfZ2V0X3UzMihwdWJsW1RJUENfTkxBX1BVQkxfU0NPUEVdKV0pOwogb3V0 OgogCXRpcGNfdGx2X3NwcmludGYobXNnLT5yZXAsICJcbiIpOwotLSAKMi4xLjAKCgpGcm9tIGM0 MDI2NjNkZmY1N2ZmMDBjODk1NDFjZGE1ZGYyZjlhNDU2ZDdmNGMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEppcmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpEYXRlOiBUdWUsIDE3 IE1heSAyMDE2IDE4OjU4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNC8xOV0gc3dpdGNoZGV2 OiBwYXNzIHBvaW50ZXIgdG8gZmliX2luZm8gaW5zdGVhZCBvZiBjb3B5CgpbIFVwc3RyZWFtIGNv bW1pdCBkYTRlZDU1MTY1ZDQxYjEwNzNmOWE0NzZmMWMxODQ5M2U5YmY4YzhlIF0KClRoZSBwcm9i bGVtIGlzIHRoYXQgZmliX2luZm8tPm5oIGlzIFswXSBzbyB0aGUgc3RydWN0IGZpYl9pbmZvCmFs bG9jYXRpb24gc2l6ZSBkZXBlbmRzIG9uIG51bWJlciBvZiBuZXh0aG9wcy4gSWYgd2UganVzdCBj b3B5IGZpYl9pbmZvLAp3ZSBkbyBub3QgY29weSB0aGUgbmV4dGhvcHMgaW5mbyBhbmQgZHJpdmVy IGFjY2Vzc2VzIG1lbW9yeSB3aGljaCBpcyBub3QKb3Vycy4KCkdpdmVuIHRoZSBmYWN0IHRoYXQg ZmliNCBkb2VzIG5vdCBkZWZlciBvcGVyYXRpb25zIGFuZCB0aGVyZWZvcmUgaXQgZG9lcwpub3Qg bmVlZCBjb3B5LCBqdXN0IHBhc3MgdGhlIHBvaW50ZXIgZG93biB0byBkcml2ZXJzIGFzIGl0IHdh cyBkb25lCmJlZm9yZS4KCkZpeGVzOiA4NTBkMGNiYzkxICgic3dpdGNoZGV2OiByZW1vdmUgcG9p bnRlcnMgZnJvbSBzd2l0Y2hkZXYgb2JqZWN0cyIpClNpZ25lZC1vZmYtYnk6IEppcmkgUGlya28g PGppcmlAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvcm9ja2VyL3JvY2tlci5j IHwgNCArKy0tCiBpbmNsdWRlL25ldC9zd2l0Y2hkZXYuaCAgICAgICAgICAgICAgfCAyICstCiBu ZXQvc3dpdGNoZGV2L3N3aXRjaGRldi5jICAgICAgICAgICAgfCA2ICsrLS0tLQogMyBmaWxlcyBj aGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvcm9ja2VyL3JvY2tlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv cm9ja2VyL3JvY2tlci5jCmluZGV4IDJiMzQ2MjIuLjM5MjBjM2ViIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9yb2NrZXIvcm9ja2VyLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvcm9ja2VyL3JvY2tlci5jCkBAIC00NDc1LDcgKzQ0NzUsNyBAQCBzdGF0aWMgaW50IHJvY2tl cl9wb3J0X29ial9hZGQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJZmliNCA9IFNXSVRDSERF Vl9PQkpfSVBWNF9GSUIob2JqKTsKIAkJZXJyID0gcm9ja2VyX3BvcnRfZmliX2lwdjQocm9ja2Vy X3BvcnQsIHRyYW5zLAogCQkJCQkgICBodG9ubChmaWI0LT5kc3QpLCBmaWI0LT5kc3RfbGVuLAot CQkJCQkgICAmZmliNC0+ZmksIGZpYjQtPnRiX2lkLCAwKTsKKwkJCQkJICAgZmliNC0+ZmksIGZp YjQtPnRiX2lkLCAwKTsKIAkJYnJlYWs7CiAJY2FzZSBTV0lUQ0hERVZfT0JKX0lEX1BPUlRfRkRC OgogCQllcnIgPSByb2NrZXJfcG9ydF9mZGJfYWRkKHJvY2tlcl9wb3J0LCB0cmFucywKQEAgLTQ1 NDcsNyArNDU0Nyw3IEBAIHN0YXRpYyBpbnQgcm9ja2VyX3BvcnRfb2JqX2RlbChzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2LAogCQlmaWI0ID0gU1dJVENIREVWX09CSl9JUFY0X0ZJQihvYmopOwogCQll cnIgPSByb2NrZXJfcG9ydF9maWJfaXB2NChyb2NrZXJfcG9ydCwgTlVMTCwKIAkJCQkJICAgaHRv bmwoZmliNC0+ZHN0KSwgZmliNC0+ZHN0X2xlbiwKLQkJCQkJICAgJmZpYjQtPmZpLCBmaWI0LT50 Yl9pZCwKKwkJCQkJICAgZmliNC0+ZmksIGZpYjQtPnRiX2lkLAogCQkJCQkgICBST0NLRVJfT1Bf RkxBR19SRU1PVkUpOwogCQlicmVhazsKIAljYXNlIFNXSVRDSERFVl9PQkpfSURfUE9SVF9GREI6 CmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9zd2l0Y2hkZXYuaCBiL2luY2x1ZGUvbmV0L3N3aXRj aGRldi5oCmluZGV4IDFkMjJjZTkuLjMxZDBlNTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3N3 aXRjaGRldi5oCisrKyBiL2luY2x1ZGUvbmV0L3N3aXRjaGRldi5oCkBAIC04OCw3ICs4OCw3IEBA IHN0cnVjdCBzd2l0Y2hkZXZfb2JqX2lwdjRfZmliIHsKIAlzdHJ1Y3Qgc3dpdGNoZGV2X29iaiBv Ymo7CiAJdTMyIGRzdDsKIAlpbnQgZHN0X2xlbjsKLQlzdHJ1Y3QgZmliX2luZm8gZmk7CisJc3Ry dWN0IGZpYl9pbmZvICpmaTsKIAl1OCB0b3M7CiAJdTggdHlwZTsKIAl1MzIgbmxmbGFnczsKZGlm ZiAtLWdpdCBhL25ldC9zd2l0Y2hkZXYvc3dpdGNoZGV2LmMgYi9uZXQvc3dpdGNoZGV2L3N3aXRj aGRldi5jCmluZGV4IGQ1ZDcxMzIuLjFiNTg4NjYgMTAwNjQ0Ci0tLSBhL25ldC9zd2l0Y2hkZXYv c3dpdGNoZGV2LmMKKysrIGIvbmV0L3N3aXRjaGRldi9zd2l0Y2hkZXYuYwpAQCAtMTE2OSw2ICsx MTY5LDcgQEAgaW50IHN3aXRjaGRldl9maWJfaXB2NF9hZGQodTMyIGRzdCwgaW50IGRzdF9sZW4s IHN0cnVjdCBmaWJfaW5mbyAqZmksCiAJCS5vYmouaWQgPSBTV0lUQ0hERVZfT0JKX0lEX0lQVjRf RklCLAogCQkuZHN0ID0gZHN0LAogCQkuZHN0X2xlbiA9IGRzdF9sZW4sCisJCS5maSA9IGZpLAog CQkudG9zID0gdG9zLAogCQkudHlwZSA9IHR5cGUsCiAJCS5ubGZsYWdzID0gbmxmbGFncywKQEAg LTExNzcsOCArMTE3OCw2IEBAIGludCBzd2l0Y2hkZXZfZmliX2lwdjRfYWRkKHUzMiBkc3QsIGlu dCBkc3RfbGVuLCBzdHJ1Y3QgZmliX2luZm8gKmZpLAogCXN0cnVjdCBuZXRfZGV2aWNlICpkZXY7 CiAJaW50IGVyciA9IDA7CiAKLQltZW1jcHkoJmlwdjRfZmliLmZpLCBmaSwgc2l6ZW9mKGlwdjRf ZmliLmZpKSk7Ci0KIAkvKiBEb24ndCBvZmZsb2FkIHJvdXRlIGlmIHVzaW5nIGN1c3RvbSBpcCBy dWxlcyBvciBpZgogCSAqIElQdjQgRklCIG9mZmxvYWRpbmcgaGFzIGJlZW4gZGlzYWJsZWQgY29t cGxldGVseS4KIAkgKi8KQEAgLTEyMjIsNiArMTIyMSw3IEBAIGludCBzd2l0Y2hkZXZfZmliX2lw djRfZGVsKHUzMiBkc3QsIGludCBkc3RfbGVuLCBzdHJ1Y3QgZmliX2luZm8gKmZpLAogCQkub2Jq LmlkID0gU1dJVENIREVWX09CSl9JRF9JUFY0X0ZJQiwKIAkJLmRzdCA9IGRzdCwKIAkJLmRzdF9s ZW4gPSBkc3RfbGVuLAorCQkuZmkgPSBmaSwKIAkJLnRvcyA9IHRvcywKIAkJLnR5cGUgPSB0eXBl LAogCQkubmxmbGFncyA9IDAsCkBAIC0xMjMwLDggKzEyMzAsNiBAQCBpbnQgc3dpdGNoZGV2X2Zp Yl9pcHY0X2RlbCh1MzIgZHN0LCBpbnQgZHN0X2xlbiwgc3RydWN0IGZpYl9pbmZvICpmaSwKIAlz dHJ1Y3QgbmV0X2RldmljZSAqZGV2OwogCWludCBlcnIgPSAwOwogCi0JbWVtY3B5KCZpcHY0X2Zp Yi5maSwgZmksIHNpemVvZihpcHY0X2ZpYi5maSkpOwotCiAJaWYgKCEoZmktPmZpYl9mbGFncyAm IFJUTkhfRl9PRkZMT0FEKSkKIAkJcmV0dXJuIDA7CiAKLS0gCjIuMS4wCgoKRnJvbSBmZDQzZWYx NTIwNmE5NWY3MWQyZDQ5MDUxZWFiNjRiZWYxYmM4MDhmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgpEYXRlOiBUaHUsIDE5IE1h eSAyMDE2IDEzOjM2OjUxICswODAwClN1YmplY3Q6IFtQQVRDSCAwNS8xOV0gdHVudGFwOiBjb3Jy ZWN0bHkgd2FrZSB1cCBwcm9jZXNzIGR1cmluZyB1bmluaXQKClsgVXBzdHJlYW0gY29tbWl0IGFk ZGY4ZmM0YWNiMWNmNzk0OTJhYzY0OTY2ZjA3MTc4NzkzY2IzZDcgXQoKV2UgdXNlZCB0byBjaGVj ayBkZXYtPnJlZ19zdGF0ZSBhZ2FpbnN0IE5FVFJFR19SRUdJU1RFUkVEIGFmdGVyIGVhY2gKdGlt ZSB3ZSBhcmUgd29rZSB1cC4gQnV0IGFmdGVyIGNvbW1pdCA5ZTY0MWJkY2ZhNGUgKCJuZXQtdHVu OgpyZXN0cnVjdHVyZSB0dW5fZG9fcmVhZCBmb3IgYmV0dGVyIHNsZWVwL3dha2V1cCBlZmZpY2ll bmN5IiksIGl0IHVzZXMKc2tiX3JlY3ZfZGF0YWdyYW0oKSB3aGljaCBkb2VzIG5vdCBjaGVjayBk ZXYtPnJlZ19zdGF0ZS4gVGhpcyB3aWxsCnJlc3VsdCBpZiB3ZSBkZWxldGUgYSB0dW4vdGFwIGRl dmljZSBhZnRlciBhIHByb2Nlc3MgaXMgYmxvY2tlZCBpbiB0aGUKcmVhZGluZy4gVGhlIGRldmlj ZSB3aWxsIHdhaXQgZm9yIHRoZSByZWZlcmVuY2UgY291bnQgd2hpY2ggd2FzIGhlbGQKYnkgdGhh dCBwcm9jZXNzIGZvciBldmVyLgoKRml4ZXMgdGhpcyBieSB1c2luZyBSQ1ZfU0hVVERPV04gd2hp Y2ggd2lsbCBiZSBjaGVja2VkIGR1cmluZwpza19yZWN2X2RhdGFncmFtKCkgYmVmb3JlIHRyeWlu ZyB0byB3YWtlIHVwIHRoZSBwcm9jZXNzIGR1cmluZyB1bmluaXQuCgpGaXhlczogOWU2NDFiZGNm YTRlICgibmV0LXR1bjogcmVzdHJ1Y3R1cmUgdHVuX2RvX3JlYWQgZm9yIGJldHRlcgpzbGVlcC93 YWtldXAgZWZmaWNpZW5jeSIpCkNjOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ CkNjOiBYaSBXYW5nIDx4aWlAZ29vZ2xlLmNvbT4KQ2M6IE1pY2hhZWwgUy4gVHNpcmtpbiA8bXN0 QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5j b20+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkFja2VkLWJ5 OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdHVuLmMg fCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90dW4uYyBiL2RyaXZlcnMvbmV0L3R1bi5jCmlu ZGV4IDJkMTg2YmQuLjExMWI5NzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3R1bi5jCisrKyBi L2RyaXZlcnMvbmV0L3R1bi5jCkBAIC01NjcsMTEgKzU2NywxMyBAQCBzdGF0aWMgdm9pZCB0dW5f ZGV0YWNoX2FsbChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWZvciAoaSA9IDA7IGkgPCBuOyBp KyspIHsKIAkJdGZpbGUgPSBydG5sX2RlcmVmZXJlbmNlKHR1bi0+dGZpbGVzW2ldKTsKIAkJQlVH X09OKCF0ZmlsZSk7CisJCXRmaWxlLT5zb2NrZXQuc2stPnNrX3NodXRkb3duID0gUkNWX1NIVVRE T1dOOwogCQl0ZmlsZS0+c29ja2V0LnNrLT5za19kYXRhX3JlYWR5KHRmaWxlLT5zb2NrZXQuc2sp OwogCQlSQ1VfSU5JVF9QT0lOVEVSKHRmaWxlLT50dW4sIE5VTEwpOwogCQktLXR1bi0+bnVtcXVl dWVzOwogCX0KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRmaWxlLCAmdHVuLT5kaXNhYmxlZCwgbmV4 dCkgeworCQl0ZmlsZS0+c29ja2V0LnNrLT5za19zaHV0ZG93biA9IFJDVl9TSFVURE9XTjsKIAkJ dGZpbGUtPnNvY2tldC5zay0+c2tfZGF0YV9yZWFkeSh0ZmlsZS0+c29ja2V0LnNrKTsKIAkJUkNV X0lOSVRfUE9JTlRFUih0ZmlsZS0+dHVuLCBOVUxMKTsKIAl9CkBAIC02MjcsNiArNjI5LDcgQEAg c3RhdGljIGludCB0dW5fYXR0YWNoKHN0cnVjdCB0dW5fc3RydWN0ICp0dW4sIHN0cnVjdCBmaWxl ICpmaWxlLCBib29sIHNraXBfZmlsdGUKIAkJCWdvdG8gb3V0OwogCX0KIAl0ZmlsZS0+cXVldWVf aW5kZXggPSB0dW4tPm51bXF1ZXVlczsKKwl0ZmlsZS0+c29ja2V0LnNrLT5za19zaHV0ZG93biAm PSB+UkNWX1NIVVRET1dOOwogCXJjdV9hc3NpZ25fcG9pbnRlcih0ZmlsZS0+dHVuLCB0dW4pOwog CXJjdV9hc3NpZ25fcG9pbnRlcih0dW4tPnRmaWxlc1t0dW4tPm51bXF1ZXVlc10sIHRmaWxlKTsK IAl0dW4tPm51bXF1ZXVlcysrOwpAQCAtMTQwOCw5ICsxNDExLDYgQEAgc3RhdGljIHNzaXplX3Qg dHVuX2RvX3JlYWQoc3RydWN0IHR1bl9zdHJ1Y3QgKnR1biwgc3RydWN0IHR1bl9maWxlICp0Zmls ZSwKIAlpZiAoIWlvdl9pdGVyX2NvdW50KHRvKSkKIAkJcmV0dXJuIDA7CiAKLQlpZiAodHVuLT5k ZXYtPnJlZ19zdGF0ZSAhPSBORVRSRUdfUkVHSVNURVJFRCkKLQkJcmV0dXJuIC1FSU87Ci0KIAkv KiBSZWFkIGZyYW1lcyBmcm9tIHF1ZXVlICovCiAJc2tiID0gX19za2JfcmVjdl9kYXRhZ3JhbSh0 ZmlsZS0+c29ja2V0LnNrLCBub2Jsb2NrID8gTVNHX0RPTlRXQUlUIDogMCwKIAkJCQkgICZwZWVr ZWQsICZvZmYsICZlcnIpOwotLSAKMi4xLjAKCgpGcm9tIDFjMjVhMjY2MDlkODE1YTlmOTk5N2Zh ODYzOTVmMjkyNGZlMjg1MTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ICJFcmljIFcu IEJpZWRlcm1hbiIgPGViaWVkZXJtQHhtaXNzaW9uLmNvbT4KRGF0ZTogRnJpLCAyMCBNYXkgMjAx NiAxNzoyMjo0OCAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMTldIGJwZjogVXNlIG1vdW50X25v ZGV2IG5vdCBtb3VudF9ucyB0byBtb3VudCB0aGUgYnBmCiBmaWxlc3lzdGVtCgpbIFVwc3RyZWFt IGNvbW1pdCBlMjdmNGE5NDJhMGVlNGI4NDU2N2EzYzZjZmE4NGYyNzNlNTVjYmI3IF0KCldoaWxl IHJldmlld2luZyB0aGUgZmlsZXN5c3RlbXMgdGhhdCBzZXQgRlNfVVNFUk5TX01PVU5UIEkgc3Bv dHRlZCB0aGUKYnBmIGZpbGVzeXN0ZW0uICBMb29raW5nIGF0IHRoZSBjb2RlIEkgc2F3IGEgYnJv a2VuIHVzYWdlIG9mIG1vdW50X25zCndpdGggY3VycmVudC0+bnNwcm94eS0+bW50X25zLiBBcyB0 aGUgY29kZSBkb2VzIG5vdCBhY3F1aXJlIGEKcmVmZXJlbmNlIHRvIHRoZSBtb3VudCBuYW1lc3Bh Y2UgaXQgY2FuIG5vdCBwb3NzaWJseSBiZSBjb3JyZWN0IHRvCnN0b3JlIHRoZSBtb3VudCBuYW1l c3BhY2Ugb24gdGhlIHN1cGVyYmxvY2sgYXMgaXQgZG9lcy4KClJlcGxhY2UgbW91bnRfbnMgd2l0 aCBtb3VudF9ub2RldiBzbyB0aGF0IGVhY2ggbW91bnQgb2YgdGhlIGJwZgpmaWxlc3lzdGVtIHJl dHVybnMgYSBkaXN0aW5jdCBpbnN0YW5jZSwgYW5kIHRoZSBjb2RlIGlzIG5vdCBidWdneS4KCklu IGRpc2N1c3Npb24gd2l0aCBIYW5uZXMgRnJlZGVyaWMgU293YSBpdCB3YXMgcmVwb3J0ZWQgdGhh dCB0aGUgdXNlCm9mIG1vdW50X25zIHdhcyBhbiBhdHRlbXB0IHRvIGhhdmUgb25lIGJwZiBpbnN0 YW5jZSBwZXIgbW91bnQKbmFtZXNwYWNlLCBpbiBhbiBhdHRlbXB0IHRvIGtlZXAgcmVzb3VyY2Vz IHRoYXQgcGluIHJlc291cmNlcyBmcm9tCmhpZGluZy4gIFRoYXQgaW50ZW50IHNpbXBseSBkb2Vz IG5vdCB3b3JrLCB0aGUgdmZzIGlzIG5vdCBidWlsdCB0bwphbGxvdyB0aGF0IGtpbmQgb2YgYmVo YXZpb3IuICBXaGljaCBtZWFucyB0aGF0IHRoZSBicGYgZmlsZXN5c3RlbQpyZWFsbHkgaXMgYnVn Z3kgYm90aCBzZW1hbnRpY2FsbHkgYW5kIGluIGl0J3MgaW1wbGVtZW5hdGlvbiBhcyBpdCBkb2Vz Cm5vdCBub3IgY2FuIGl0IGltcGxlbWVudCB0aGUgb3JpZ2luYWwgaW50ZW50LgoKVGhpcyBjaGFu Z2UgaXMgdXNlcnNwYWNlIHZpc2libGUsIGJ1dCBteSBleHBlcmllbmNlIHdpdGggc2ltaWxhcgpm aWxlc3lzdGVtcyBsZWFkcyBtZSB0byBiZWxpZXZlIG5vdGhpbmcgd2lsbCBicmVhayB3aXRoIGEg bW9kZWwgb2YgZWFjaAptb3VudCBvZiB0aGUgYnBmIGZpbGVzeXN0ZW0gaXMgZGlzdGluY3QgZnJv bSBhbGwgb3RoZXJzLgoKRml4ZXM6IGIyMTk3NzU1YjI2MyAoImJwZjogYWRkIHN1cHBvcnQgZm9y IHBlcnNpc3RlbnQgbWFwcy9wcm9ncyIpCkNjOiBIYW5uZXMgRnJlZGVyaWMgU293YSA8aGFubmVz QHN0cmVzc2luZHVrdGlvbi5vcmc+CkFja2VkLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBp b2dlYXJib3gubmV0PgpTaWduZWQtb2ZmLWJ5OiAiRXJpYyBXLiBCaWVkZXJtYW4iIDxlYmllZGVy bUB4bWlzc2lvbi5jb20+CkFja2VkLWJ5OiBIYW5uZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0 cmVzc2luZHVrdGlvbi5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBrZXJuZWwvYnBmL2lub2RlLmMgfCAyICstCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9rZXJuZWwv YnBmL2lub2RlLmMgYi9rZXJuZWwvYnBmL2lub2RlLmMKaW5kZXggZDFhNzY0Ni4uMDBmOTc4ZSAx MDA2NDQKLS0tIGEva2VybmVsL2JwZi9pbm9kZS5jCisrKyBiL2tlcm5lbC9icGYvaW5vZGUuYwpA QCAtMzU4LDcgKzM1OCw3IEBAIHN0YXRpYyBpbnQgYnBmX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVy X2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5 ICpicGZfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKnR5cGUsIGludCBmbGFncywKIAkJ CQljb25zdCBjaGFyICpkZXZfbmFtZSwgdm9pZCAqZGF0YSkKIHsKLQlyZXR1cm4gbW91bnRfbnMo dHlwZSwgZmxhZ3MsIGN1cnJlbnQtPm5zcHJveHktPm1udF9ucywgYnBmX2ZpbGxfc3VwZXIpOwor CXJldHVybiBtb3VudF9ub2Rldih0eXBlLCBmbGFncywgZGF0YSwgYnBmX2ZpbGxfc3VwZXIpOwog fQogCiBzdGF0aWMgc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgYnBmX2ZzX3R5cGUgPSB7Ci0tIAoy LjEuMAoKCkZyb20gMzQyNzgxMzQ3ZDA3NzY4Mzc5MGE3OWFjZDc2MjQ3YjIxMWQzNGUxMiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFubmVzIEZyZWRlcmljIFNvd2EgPGhhbm5lc0Bz dHJlc3NpbmR1a3Rpb24ub3JnPgpEYXRlOiBUaHUsIDE5IE1heSAyMDE2IDE1OjU4OjMzICswMjAw ClN1YmplY3Q6IFtQQVRDSCAwNy8xOV0gdWRwOiBwcmV2ZW50IHNrYnMgbGluZ2VyaW5nIGluIHR1 bm5lbCBzb2NrZXQgcXVldWVzCgpbIFVwc3RyZWFtIGNvbW1pdCBlNWFlZDAwNmJlOTE4YWYxNjNl YjM5N2U0NWFhNWVhNmNlZmQ1ZTAxIF0KCkluIGNhc2Ugd2UgZmluZCBhIHNvY2tldCB3aXRoIGVu Y2Fwc3VsYXRpb24gZW5hYmxlZCB3ZSBzaG91bGQgY2FsbAp0aGUgZW5jYXBfcmVjdiBmdW5jdGlv biBldmVuIGlmIGp1c3QgYSB1ZHAgaGVhZGVyIHdpdGhvdXQgcGF5bG9hZCBpcwphdmFpbGFibGUu IFRoZSBjYWxsYmFja3MgYXJlIHJlc3BvbnNpYmxlIGZvciBjb3JyZWN0bHkgdmVyaWZ5aW5nIGFu ZApkcm9wcGluZyB0aGUgcGFja2V0cy4KCkFsc28sIGluIGNhc2UgdGhlIGhlYWRlciB2YWxpZGF0 aW9uIGZhaWxzIGZvciBnZW5ldmUgYW5kIHZ4bGFuIHdlCnNob3VsZG4ndCBwdXQgdGhlIHNrYiBi YWNrIGludG8gdGhlIHNvY2tldCBxdWV1ZSwgbm8gb25lIHdpbGwgcGljawp0aGVtIHVwIHRoZXJl LiAgSW5zdGVhZCB3ZSBjYW4gc2ltcGx5IGRpc2NhcmQgdGhlbSBpbiB0aGUgcmVzcGVjdGl2ZQpl bmNhcF9yZWN2IGZ1bmN0aW9ucy4KClNpZ25lZC1vZmYtYnk6IEhhbm5lcyBGcmVkZXJpYyBTb3dh IDxoYW5uZXNAc3RyZXNzaW5kdWt0aW9uLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2dlbmV2ZS5jIHwgMTAg KysrLS0tLS0tLQogZHJpdmVycy9uZXQvdnhsYW4uYyAgfCAxMCArKy0tLS0tLS0tCiBuZXQvaXB2 NC91ZHAuYyAgICAgICB8ICAyICstCiBuZXQvaXB2Ni91ZHAuYyAgICAgICB8ICAyICstCiA0IGZp bGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZ2VuZXZlLmMgYi9kcml2ZXJzL25ldC9nZW5ldmUuYwppbmRleCA1OGVm ZGVjLi5lM2Y5MzlmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9nZW5ldmUuYworKysgYi9kcml2 ZXJzL25ldC9nZW5ldmUuYwpAQCAtMzEwLDE1ICszMTAsMTUgQEAgc3RhdGljIGludCBnZW5ldmVf dWRwX2VuY2FwX3JlY3Yoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCiAJ LyogTmVlZCBHZW5ldmUgYW5kIGlubmVyIEV0aGVybmV0IGhlYWRlciB0byBiZSBwcmVzZW50ICov CiAJaWYgKHVubGlrZWx5KCFwc2tiX21heV9wdWxsKHNrYiwgR0VORVZFX0JBU0VfSExFTikpKQot CQlnb3RvIGVycm9yOworCQlnb3RvIGRyb3A7CiAKIAkvKiBSZXR1cm4gcGFja2V0cyB3aXRoIHJl c2VydmVkIGJpdHMgc2V0ICovCiAJZ2VuZXZlaCA9IGdlbmV2ZV9oZHIoc2tiKTsKIAlpZiAodW5s aWtlbHkoZ2VuZXZlaC0+dmVyICE9IEdFTkVWRV9WRVIpKQotCQlnb3RvIGVycm9yOworCQlnb3Rv IGRyb3A7CiAKIAlpZiAodW5saWtlbHkoZ2VuZXZlaC0+cHJvdG9fdHlwZSAhPSBodG9ucyhFVEhf UF9URUIpKSkKLQkJZ290byBlcnJvcjsKKwkJZ290byBkcm9wOwogCiAJb3B0c19sZW4gPSBnZW5l dmVoLT5vcHRfbGVuICogNDsKIAlpZiAoaXB0dW5uZWxfcHVsbF9oZWFkZXIoc2tiLCBHRU5FVkVf QkFTRV9ITEVOICsgb3B0c19sZW4sCkBAIC0zMzYsMTAgKzMzNiw2IEBAIGRyb3A6CiAJLyogQ29u c3VtZSBiYWQgcGFja2V0ICovCiAJa2ZyZWVfc2tiKHNrYik7CiAJcmV0dXJuIDA7Ci0KLWVycm9y OgotCS8qIExldCB0aGUgVURQIGxheWVyIGRlYWwgd2l0aCB0aGUgc2tiICovCi0JcmV0dXJuIDE7 CiB9CiAKIHN0YXRpYyBzdHJ1Y3Qgc29ja2V0ICpnZW5ldmVfY3JlYXRlX3NvY2soc3RydWN0IG5l dCAqbmV0LCBib29sIGlwdjYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi5jIGIvZHJp dmVycy9uZXQvdnhsYW4uYwppbmRleCAzYzBkZjcwLi4wNDk2ZjFhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC92eGxhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKQEAgLTEyNTQsNyArMTI1 NCw3IEBAIHN0YXRpYyBpbnQgdnhsYW5fdWRwX2VuY2FwX3JlY3Yoc3RydWN0IHNvY2sgKnNrLCBz dHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCiAJLyogTmVlZCBWeGxhbiBhbmQgaW5uZXIgRXRoZXJuZXQg aGVhZGVyIHRvIGJlIHByZXNlbnQgKi8KIAlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBWWExBTl9I TEVOKSkKLQkJZ290byBlcnJvcjsKKwkJZ290byBkcm9wOwogCiAJdnhoID0gKHN0cnVjdCB2eGxh bmhkciAqKSh1ZHBfaGRyKHNrYikgKyAxKTsKIAlmbGFncyA9IG50b2hsKHZ4aC0+dnhfZmxhZ3Mp OwpAQCAtMTM0NCwxMyArMTM0NCw3IEBAIGRyb3A6CiBiYWRfZmxhZ3M6CiAJbmV0ZGV2X2RiZyhz a2ItPmRldiwgImludmFsaWQgdnhsYW4gZmxhZ3M9JSN4IHZuaT0lI3hcbiIsCiAJCSAgIG50b2hs KHZ4aC0+dnhfZmxhZ3MpLCBudG9obCh2eGgtPnZ4X3ZuaSkpOwotCi1lcnJvcjoKLQlpZiAodHVu X2RzdCkKLQkJZHN0X3JlbGVhc2UoKHN0cnVjdCBkc3RfZW50cnkgKil0dW5fZHN0KTsKLQotCS8q IFJldHVybiBub24gdnhsYW4gcGt0ICovCi0JcmV0dXJuIDE7CisJZ290byBkcm9wOwogfQogCiBz dGF0aWMgaW50IGFycF9yZWR1Y2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1 ZmYgKnNrYikKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3VkcC5jIGIvbmV0L2lwdjQvdWRwLmMKaW5k ZXggMjFmYmI1NC4uNDRlMTYzMiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdWRwLmMKKysrIGIvbmV0 L2lwdjQvdWRwLmMKQEAgLTE1MzEsNyArMTUzMSw3IEBAIGludCB1ZHBfcXVldWVfcmN2X3NrYihz dHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAKIAkJLyogaWYgd2UncmUgb3Zl cmx5IHNob3J0LCBsZXQgVURQIGhhbmRsZSBpdCAqLwogCQllbmNhcF9yY3YgPSBBQ0NFU1NfT05D RSh1cC0+ZW5jYXBfcmN2KTsKLQkJaWYgKHNrYi0+bGVuID4gc2l6ZW9mKHN0cnVjdCB1ZHBoZHIp ICYmIGVuY2FwX3JjdikgeworCQlpZiAoZW5jYXBfcmN2KSB7CiAJCQlpbnQgcmV0OwogCiAJCQkv KiBWZXJpZnkgY2hlY2tzdW0gYmVmb3JlIGdpdmluZyB0byBlbmNhcCAqLwpkaWZmIC0tZ2l0IGEv bmV0L2lwdjYvdWRwLmMgYi9uZXQvaXB2Ni91ZHAuYwppbmRleCA2NjY1ZTFhLi4yNzVhZjQzIDEw MDY0NAotLS0gYS9uZXQvaXB2Ni91ZHAuYworKysgYi9uZXQvaXB2Ni91ZHAuYwpAQCAtNjQ3LDcg KzY0Nyw3IEBAIGludCB1ZHB2Nl9xdWV1ZV9yY3Zfc2tiKHN0cnVjdCBzb2NrICpzaywgc3RydWN0 IHNrX2J1ZmYgKnNrYikKIAogCQkvKiBpZiB3ZSdyZSBvdmVybHkgc2hvcnQsIGxldCBVRFAgaGFu ZGxlIGl0ICovCiAJCWVuY2FwX3JjdiA9IEFDQ0VTU19PTkNFKHVwLT5lbmNhcF9yY3YpOwotCQlp ZiAoc2tiLT5sZW4gPiBzaXplb2Yoc3RydWN0IHVkcGhkcikgJiYgZW5jYXBfcmN2KSB7CisJCWlm IChlbmNhcF9yY3YpIHsKIAkJCWludCByZXQ7CiAKIAkJCS8qIFZlcmlmeSBjaGVja3N1bSBiZWZv cmUgZ2l2aW5nIHRvIGVuY2FwICovCi0tIAoyLjEuMAoKCkZyb20gN2UzN2JjNTYwZDdlZjBhYjYx M2ZhZjNmMzY3NDdlMDc2ODkxOWVkYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmlj b2xhcyBEaWNodGVsIDxuaWNvbGFzLmRpY2h0ZWxANndpbmQuY29tPgpEYXRlOiBUaHUsIDE5IE1h eSAyMDE2IDE3OjI2OjI5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOC8xOV0gdWFwaSBnbGliYyBj b21wYXQ6IGZpeCBjb21waWxhdGlvbiB3aGVuICFfX1VTRV9NSVNDIGluCiBnbGliYwoKWyBVcHN0 cmVhbSBjb21taXQgZjBhM2ZkY2E3OTRkMWU2OGFlMjg0ZWY0Y2FlZmU2ODFmN2MxOGU4OSBdCgpU aGVzZSBzdHJ1Y3R1cmVzIGFyZSBkZWZpbmVkIG9ubHkgaWYgX19VU0VfTUlTQyBpcyBzZXQgaW4g Z2xpYmMgbmV0L2lmLmgKaGVhZGVycywgaWUgd2hlbiBfQlNEX1NPVVJDRSBvciBfU1ZJRF9TT1VS Q0UgYXJlIGRlZmluZWQuCgpDQzogSmFuIEVuZ2VsaGFyZHQgPGplbmdlbGhAaW5haS5kZT4KQ0M6 IEpvc2ggQm95ZXIgPGp3Ym95ZXJAZmVkb3JhcHJvamVjdC5vcmc+CkNDOiBTdGVwaGVuIEhlbW1p bmdlciA8c2hlbW1pbmdAYnJvY2FkZS5jb20+CkNDOiBXYWxkZW1hciBCcm9ka29yYiA8bWFpbEB3 YWxkZW1hci1icm9ka29yYi5kZT4KQ0M6IEdhYnJpZWwgTGFza2FyIDxnYWJyaWVsQGxzZS5lcGl0 YS5mcj4KQ0M6IE1pa2tvIFJhcGVsaSA8bWlra28ucmFwZWxpQGlraS5maT4KRml4ZXM6IDRhOTFj YjYxYmI5OSAoInVhcGkgZ2xpYmMgY29tcGF0OiBmaXggY29tcGlsZSBlcnJvcnMgd2hlbiBnbGli YyBuZXQvaWYuaCBpbmNsdWRlZCBiZWZvcmUgbGludXgvaWYuaCIpClNpZ25lZC1vZmYtYnk6IE5p Y29sYXMgRGljaHRlbCA8bmljb2xhcy5kaWNodGVsQDZ3aW5kLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvdWFwaS9s aW51eC9saWJjLWNvbXBhdC5oIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2xpYmMtY29t cGF0LmggYi9pbmNsdWRlL3VhcGkvbGludXgvbGliYy1jb21wYXQuaAppbmRleCBkNWUzOGM3Li5l NGYwNDhlIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvbGliYy1jb21wYXQuaAorKysg Yi9pbmNsdWRlL3VhcGkvbGludXgvbGliYy1jb21wYXQuaApAQCAtNTIsNyArNTIsNyBAQAogI2lm IGRlZmluZWQoX19HTElCQ19fKQogCiAvKiBDb29yZGluYXRlIHdpdGggZ2xpYmMgbmV0L2lmLmgg aGVhZGVyLiAqLwotI2lmIGRlZmluZWQoX05FVF9JRl9IKQorI2lmIGRlZmluZWQoX05FVF9JRl9I KSAmJiBkZWZpbmVkKF9fVVNFX01JU0MpCiAKIC8qIEdMSUJDIGhlYWRlcnMgaW5jbHVkZWQgZmly c3Qgc28gZG9uJ3QgZGVmaW5lIGFueXRoaW5nCiAgKiB0aGF0IHdvdWxkIGFscmVhZHkgYmUgZGVm aW5lZC4gKi8KLS0gCjIuMS4wCgoKRnJvbSBlMDQ2NmIzYTIyOTU4NTAyNmQwMmNjODAwZGU1MDBh MDFkMmQ0MGZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQm9ya21hbm4g PGRhbmllbEBpb2dlYXJib3gubmV0PgpEYXRlOiBTdW4sIDIyIE1heSAyMDE2IDIzOjE2OjE4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwOS8xOV0gYnBmLCBpbm9kZTogZGlzYWxsb3cgdXNlcm5zIG1v dW50cwoKWyBVcHN0cmVhbSBjb21taXQgNjEyYmFjYWQ3OGJhNmQwYTkxMTY2ZmM0NDg3YWYxMTRi YWMxNzJhOCBdCgpGb2xsb3ctdXAgdG8gY29tbWl0IGUyN2Y0YTk0MmEwZSAoImJwZjogVXNlIG1v dW50X25vZGV2IG5vdCBtb3VudF9ucwp0byBtb3VudCB0aGUgYnBmIGZpbGVzeXN0ZW0iKSwgd2hp Y2ggcmVtb3ZlcyB0aGUgRlNfVVNFUk5TX01PVU5UIGZsYWcuCgpUaGUgb3JpZ2luYWwgaWRlYSB3 YXMgdG8gaGF2ZSBhIHBlciBtb3VudG5zIGluc3RhbmNlIGluc3RlYWQgb2YgYQpzaW5nbGUgZ2xv YmFsIGZzIGluc3RhbmNlLCBidXQgdGhhdCBkaWRuJ3Qgd29yayBvdXQgYW5kIHdlIGhhZCB0bwpz d2l0Y2ggdG8gbW91bnRfbm9kZXYoKSBtb2RlbC4gVGhlIGludGVudCBvZiB0aGF0IG1pZGRsZSBn cm91bmQgd2FzCnRoYXQgd2UgYXZvaWQgdXNlcnMgd2hvIGRvbid0IHBsYXkgbmljZSB0byBjcmVh dGUgZW5kbGVzcyBpbnN0YW5jZXMKb2YgYnBmIGZzIHdoaWNoIGFyZSBkaWZmaWN1bHQgdG8gY29u dHJvbCBhbmQgZGlzY292ZXIgZnJvbSBhbiBhZG1pbgpwb2ludCBvZiB2aWV3LCBidXQgYXQgdGhl IHNhbWUgdGltZSBpdCB3b3VsZCBoYXZlIGFsbG93ZWQgdXMgdG8gYmUKbW9yZSBmbGV4aWJsZSB3 aXRoIHJlZ2FyZCB0byBuYW1lc3BhY2VzLgoKVGhlcmVmb3JlLCBzaW5jZSB3ZSBub3cgZGlkIHRo ZSBzd2l0Y2ggdG8gbW91bnRfbm9kZXYoKSBhcyBhIGZpeAp3aGVyZSBpbmRpdmlkdWFsIGluc3Rh bmNlcyBhcmUgY3JlYXRlZCwgd2UgYWxzbyBuZWVkIHRvIHJlbW92ZSB1c2VybnMKbW91bnQgZmxh ZyBhbG9uZyB3aXRoIGl0IHRvIGF2b2lkIHJ1bm5pbmcgaW50byBtZW50aW9uZWQgc2l0dWF0aW9u LgpJIGRvbid0IGV4cGVjdCBhbnkgYnJlYWthZ2UgYXQgdGhpcyBlYXJseSBwb2ludCBpbiB0aW1l IHdpdGggcmVtb3ZpbmcKdGhlIGZsYWcgYW5kIHdlIGNhbiByZXZpc2l0IHRoaXMgbGF0ZXIgc2hv dWxkIHRoZSByZXF1aXJlbWVudCBmb3IKdGhpcyBjb21lIHVwIHdpdGggZnV0dXJlIHVzZXJzLiBU aGlzIGFuZCBjb21taXQgZTI3ZjRhOTQyYTBlIGhhdmUKYmVlbiBzcGxpdCB0byBmYWNpbGl0YXRl IHRyYWNraW5nIHNob3VsZCBhbnkgb2YgdGhlbSBydW4gaW50byB0aGUKdW5saWtlbHkgY2FzZSBv ZiBjYXVzaW5nIGEgcmVncmVzc2lvbi4KCkZpeGVzOiBiMjE5Nzc1NWIyNjMgKCJicGY6IGFkZCBz dXBwb3J0IGZvciBwZXJzaXN0ZW50IG1hcHMvcHJvZ3MiKQpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwg Qm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpBY2tlZC1ieTogSGFubmVzIEZyZWRlcmlj IFNvd2EgPGhhbm5lc0BzdHJlc3NpbmR1a3Rpb24ub3JnPgpBY2tlZC1ieTogQWxleGVpIFN0YXJv dm9pdG92IDxhc3RAa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGtlcm5lbC9icGYvaW5vZGUuYyB8IDEgLQogMSBmaWxl IGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2lub2RlLmMg Yi9rZXJuZWwvYnBmL2lub2RlLmMKaW5kZXggMDBmOTc4ZS4uY2I4NWQyMiAxMDA2NDQKLS0tIGEv a2VybmVsL2JwZi9pbm9kZS5jCisrKyBiL2tlcm5lbC9icGYvaW5vZGUuYwpAQCAtMzY2LDcgKzM2 Niw2IEBAIHN0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBicGZfZnNfdHlwZSA9IHsKIAku bmFtZQkJPSAiYnBmIiwKIAkubW91bnQJCT0gYnBmX21vdW50LAogCS5raWxsX3NiCT0ga2lsbF9s aXR0ZXJfc3VwZXIsCi0JLmZzX2ZsYWdzCT0gRlNfVVNFUk5TX01PVU5ULAogfTsKIAogTU9EVUxF X0FMSUFTX0ZTKCJicGYiKTsKLS0gCjIuMS4wCgoKRnJvbSBkNDg0NDY5YzI5M2U2NmJkOTNlMGU2 MjI2NzhkNzQxNjBjYzc0M2Q5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFZHdhcmQg Q3JlZSA8ZWNyZWVAc29sYXJmbGFyZS5jb20+CkRhdGU6IFR1ZSwgMjQgTWF5IDIwMTYgMTg6NTM6 MzYgKzAxMDAKU3ViamVjdDogW1BBVENIIDEwLzE5XSBzZmM6IG9uIE1DIHJlc2V0LCBjbGVhciBQ SU8gYnVmZmVyIGxpbmthZ2UgaW4gVFhRcwoKWyBVcHN0cmVhbSBjb21taXQgYzA3OTViZjY0Y2Jh NGQxYjc5NmZkYzViNzRiMzM3NzI4NDFlZDFiYiBdCgpPdGhlcndpc2UsIGlmIHdlIGZhaWwgdG8g YWxsb2NhdGUgbmV3IFBJTyBidWZmZXJzLCBvdXIgVFhRcyB3aWxsIHRyeSB0bwp1c2UgdGhlIG9s ZCBvbmVzLCB3aGljaCBhcmVuJ3QgdGhlcmUgYW55IG1vcmUuCgpGaXhlczogMTgzMjMzYmVjODEw ICJzZmM6IEFsbG9jYXRlIGFuZCBsaW5rIFBJTyBidWZmZXJzOyBtYXAgdGhlbSB3aXRoIHdyaXRl LWNvbWJpbmluZyIKU2lnbmVkLW9mZi1ieTogRWR3YXJkIENyZWUgPGVjcmVlQHNvbGFyZmxhcmUu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYyB8IDE2ICsrKysrKysrKysrKysr KysKIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEw LmMKaW5kZXggZTZhMDg0YS4uY2JlOWEzMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvc2ZjL2VmMTAuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jCkBAIC02 MTksNiArNjE5LDE3IEBAIGZhaWw6CiAJcmV0dXJuIHJjOwogfQogCitzdGF0aWMgdm9pZCBlZnhf ZWYxMF9mb3JnZXRfb2xkX3Bpb2J1ZnMoc3RydWN0IGVmeF9uaWMgKmVmeCkKK3sKKwlzdHJ1Y3Qg ZWZ4X2NoYW5uZWwgKmNoYW5uZWw7CisJc3RydWN0IGVmeF90eF9xdWV1ZSAqdHhfcXVldWU7CisK KwkvKiBBbGwgb3VyIGV4aXN0aW5nIFBJTyBidWZmZXJzIHdlbnQgYXdheSAqLworCWVmeF9mb3Jf ZWFjaF9jaGFubmVsKGNoYW5uZWwsIGVmeCkKKwkJZWZ4X2Zvcl9lYWNoX2NoYW5uZWxfdHhfcXVl dWUodHhfcXVldWUsIGNoYW5uZWwpCisJCQl0eF9xdWV1ZS0+cGlvYnVmID0gTlVMTDsKK30KKwog I2Vsc2UgLyogIUVGWF9VU0VfUElPICovCiAKIHN0YXRpYyBpbnQgZWZ4X2VmMTBfYWxsb2NfcGlv YnVmcyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCB1bnNpZ25lZCBpbnQgbikKQEAgLTYzNSw2ICs2NDYs MTAgQEAgc3RhdGljIHZvaWQgZWZ4X2VmMTBfZnJlZV9waW9idWZzKHN0cnVjdCBlZnhfbmljICpl ZngpCiB7CiB9CiAKK3N0YXRpYyB2b2lkIGVmeF9lZjEwX2ZvcmdldF9vbGRfcGlvYnVmcyhzdHJ1 Y3QgZWZ4X25pYyAqZWZ4KQoreworfQorCiAjZW5kaWYgLyogRUZYX1VTRV9QSU8gKi8KIAogc3Rh dGljIHZvaWQgZWZ4X2VmMTBfcmVtb3ZlKHN0cnVjdCBlZnhfbmljICplZngpCkBAIC0xMDE4LDYg KzEwMzMsNyBAQCBzdGF0aWMgdm9pZCBlZnhfZWYxMF9yZXNldF9tY19hbGxvY2F0aW9ucyhzdHJ1 Y3QgZWZ4X25pYyAqZWZ4KQogCW5pY19kYXRhLT5tdXN0X3JlYWxsb2NfdmlzID0gdHJ1ZTsKIAlu aWNfZGF0YS0+bXVzdF9yZXN0b3JlX2ZpbHRlcnMgPSB0cnVlOwogCW5pY19kYXRhLT5tdXN0X3Jl c3RvcmVfcGlvYnVmcyA9IHRydWU7CisJZWZ4X2VmMTBfZm9yZ2V0X29sZF9waW9idWZzKGVmeCk7 CiAJbmljX2RhdGEtPnJ4X3Jzc19jb250ZXh0ID0gRUZYX0VGMTBfUlNTX0NPTlRFWFRfSU5WQUxJ RDsKIAogCS8qIERyaXZlci1jcmVhdGVkIHZzd2l0Y2hlcyBhbmQgdnBvcnRzIG11c3QgYmUgcmUt Y3JlYXRlZCAqLwotLSAKMi4xLjAKCgpGcm9tIGQ3NGE2ZGFiZGU5NTAzNmZiZWY2NzQwZmYxZjU3 YWFmNjAwOTAyNzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEl2YW4gVmVjZXJhIDxp dmVjZXJhQHJlZGhhdC5jb20+CkRhdGU6IFdlZCwgMjUgTWF5IDIwMTYgMjE6MjE6NTIgKzAyMDAK U3ViamVjdDogW1BBVENIIDExLzE5XSB0ZWFtOiBkb24ndCBjYWxsIG5ldGRldl9jaGFuZ2VfZmVh dHVyZXMgdW5kZXIKIHRlYW0tPmxvY2sKClsgVXBzdHJlYW0gY29tbWl0IGY2OTg4Y2I2M2E0ZTY5 OGQ4YTYyYTFkMDg1ZDI2M2QxZmNjMzUxZWEgXQoKVGhlIHRlYW1fZGV2aWNlX2V2ZW50KCkgbm90 aWZpZXIgY2FsbHMgdGVhbV9jb21wdXRlX2ZlYXR1cmVzKCkgdG8gZml4CnZsYW5fZmVhdHVyZXMg dW5kZXIgdGVhbS0+bG9jayB0byBwcm90ZWN0IHRlYW0tPnBvcnRfbGlzdC4gVGhlIHByb2JsZW0g aXMKdGhhdCBzdWJzZXF1ZW50IF9fdGVhbV9jb21wdXRlX2ZlYXR1cmVzKCkgY2FsbHMgbmV0ZGV2 X2NoYW5nZV9mZWF0dXJlcygpCnRvIHByb3BhZ2F0ZSB2bGFuX2ZlYXR1cmVzIHRvIHVwcGVyIHZs YW4gZGV2aWNlcyB3aGlsZSB0ZWFtLT5sb2NrIGlzIHN0aWxsCnRha2VuLiBUaGlzIGNhbiBsZWFk IHRvIGRlYWRsb2NrIHdoZW4gTkVUSUZfRl9MUk8gaXMgbW9kaWZpZWQgb24gbG93ZXIKZGV2aWNl cyBvciB0ZWFtIGRldmljZSBpdHNlbGYuCgpFeGFtcGxlOgpUaGUgdGVhbTAgYXMgYWN0aXZlIGJh Y2t1cCB3aXRoIGV0aDAgYW5kIGV0aDEgTklDcy4gQm90aCBldGgwICYgZXRoMSBhcmUKTFJPIGNh cGFibGUgYW5kIExSTyBpcyBlbmFibGVkLiBUaHVzIExSTyBpcyBhbHNvIGVuYWJsZWQgb24gdGVh bTAuCgpUaGUgY29tbWFuZCAnZXRodG9vbCAtSyB0ZWFtMCBscm8gb2ZmJyBub3cgaGFuZ3MgZHVl IHRvIHRoaXMgZGVhZGxvY2s6CgpkZXZfZXRodG9vbCgpCi0+IGV0aHRvb2xfc2V0X2ZlYXR1cmVz KCkKIC0+IF9fbmV0ZGV2X3VwZGF0ZV9mZWF0dXJlcyh0ZWFtKQogIC0+IG5ldGRldl9zeW5jX2xv d2VyX2ZlYXR1cmVzKCkKICAgLT4gbmV0ZGV2X3VwZGF0ZV9mZWF0dXJlcyhsb3dlcl8xKQogICAg LT4gX19uZXRkZXZfdXBkYXRlX2ZlYXR1cmVzKGxvd2VyXzEpCiAgICAtPiBuZXRkZXZfZmVhdHVy ZXNfY2hhbmdlKGxvd2VyXzEpCiAgICAgLT4gY2FsbF9uZXRkZXZpY2Vfbm90aWZpZXJzKC4uLikK ICAgICAgLT4gdGVhbV9kZXZpY2VfZXZlbnQobG93ZXJfMSkKICAgICAgIC0+IHRlYW1fY29tcHV0 ZV9mZWF0dXJlcyh0ZWFtKSBbVEFLRVMgdGVhbS0+bG9ja10KICAgICAgICAtPiBuZXRkZXZfY2hh bmdlX2ZlYXR1cmVzKHRlYW0pCiAgICAgICAgIC0+IF9fbmV0ZGV2X3VwZGF0ZV9mZWF0dXJlcyh0 ZWFtKQogICAgICAgICAgLT4gbmV0ZGV2X3N5bmNfbG93ZXJfZmVhdHVyZXMoKQogICAgICAgICAg IC0+IG5ldGRldl91cGRhdGVfZmVhdHVyZXMobG93ZXJfMikKICAgICAgICAgICAgLT4gX19uZXRk ZXZfdXBkYXRlX2ZlYXR1cmVzKGxvd2VyXzIpCiAgICAgICAgICAgIC0+IG5ldGRldl9mZWF0dXJl c19jaGFuZ2UobG93ZXJfMikKICAgICAgICAgICAgIC0+IGNhbGxfbmV0ZGV2aWNlX25vdGlmaWVy cyguLi4pCiAgICAgICAgICAgICAgLT4gdGVhbV9kZXZpY2VfZXZlbnQobG93ZXJfMikKICAgICAg ICAgICAgICAgLT4gdGVhbV9jb21wdXRlX2ZlYXR1cmVzKHRlYW0pIFtERUFETE9DS10KClRoZSBi dWcgaXMgcHJlc2VudCBpbiB0ZWFtIGZyb20gdGhlIGJlZ2lubmluZyBidXQgaXQgYXBwZWFyZWQg YWZ0ZXIgdGhlIGNvbW1pdApmZDg2N2Q1IChuZXQvY29yZTogZ2VuZXJpYyBzdXBwb3J0IGZvciBk aXNhYmxpbmcgbmV0ZGV2IGZlYXR1cmVzIGRvd24gc3RhY2spCnRoYXQgYWRkcyBzeW5jaHJvbml6 YXRpb24gb2YgZmVhdHVyZXMgd2l0aCBsb3dlciBkZXZpY2VzLgoKRml4ZXM6IGZkODY3ZDUgKG5l dC9jb3JlOiBnZW5lcmljIHN1cHBvcnQgZm9yIGRpc2FibGluZyBuZXRkZXYgZmVhdHVyZXMgZG93 biBzdGFjaykKQ2M6IEppcmkgUGlya28gPGppcmlAcmVzbnVsbGkudXM+ClNpZ25lZC1vZmYtYnk6 IEl2YW4gVmVjZXJhIDxpdmVjZXJhQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IEppcmkgUGly a28gPGppcmlAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMgfCA5ICsrKysr KystLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC90ZWFtL3RlYW0uYyBiL2RyaXZlcnMvbmV0L3RlYW0vdGVh bS5jCmluZGV4IDU5ZmVmY2EuLmE1ZjM5MmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3RlYW0v dGVhbS5jCisrKyBiL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jCkBAIC05NjksNyArOTY5LDcgQEAg c3RhdGljIHZvaWQgdGVhbV9wb3J0X2Rpc2FibGUoc3RydWN0IHRlYW0gKnRlYW0sCiAJCQkgICAg TkVUSUZfRl9GUkFHTElTVCB8IE5FVElGX0ZfQUxMX1RTTyB8IFwKIAkJCSAgICBORVRJRl9GX0hJ R0hETUEgfCBORVRJRl9GX0xSTykKIAotc3RhdGljIHZvaWQgX190ZWFtX2NvbXB1dGVfZmVhdHVy ZXMoc3RydWN0IHRlYW0gKnRlYW0pCitzdGF0aWMgdm9pZCBfX190ZWFtX2NvbXB1dGVfZmVhdHVy ZXMoc3RydWN0IHRlYW0gKnRlYW0pCiB7CiAJc3RydWN0IHRlYW1fcG9ydCAqcG9ydDsKIAl1MzIg dmxhbl9mZWF0dXJlcyA9IFRFQU1fVkxBTl9GRUFUVVJFUyAmIE5FVElGX0ZfQUxMX0ZPUl9BTEw7 CkBAIC05OTMsMTUgKzk5MywyMCBAQCBzdGF0aWMgdm9pZCBfX3RlYW1fY29tcHV0ZV9mZWF0dXJl cyhzdHJ1Y3QgdGVhbSAqdGVhbSkKIAl0ZWFtLT5kZXYtPnByaXZfZmxhZ3MgJj0gfklGRl9YTUlU X0RTVF9SRUxFQVNFOwogCWlmIChkc3RfcmVsZWFzZV9mbGFnID09IChJRkZfWE1JVF9EU1RfUkVM RUFTRSB8IElGRl9YTUlUX0RTVF9SRUxFQVNFX1BFUk0pKQogCQl0ZWFtLT5kZXYtPnByaXZfZmxh Z3MgfD0gSUZGX1hNSVRfRFNUX1JFTEVBU0U7Cit9CiAKK3N0YXRpYyB2b2lkIF9fdGVhbV9jb21w dXRlX2ZlYXR1cmVzKHN0cnVjdCB0ZWFtICp0ZWFtKQoreworCV9fX3RlYW1fY29tcHV0ZV9mZWF0 dXJlcyh0ZWFtKTsKIAluZXRkZXZfY2hhbmdlX2ZlYXR1cmVzKHRlYW0tPmRldik7CiB9CiAKIHN0 YXRpYyB2b2lkIHRlYW1fY29tcHV0ZV9mZWF0dXJlcyhzdHJ1Y3QgdGVhbSAqdGVhbSkKIHsKIAlt dXRleF9sb2NrKCZ0ZWFtLT5sb2NrKTsKLQlfX3RlYW1fY29tcHV0ZV9mZWF0dXJlcyh0ZWFtKTsK KwlfX190ZWFtX2NvbXB1dGVfZmVhdHVyZXModGVhbSk7CiAJbXV0ZXhfdW5sb2NrKCZ0ZWFtLT5s b2NrKTsKKwluZXRkZXZfY2hhbmdlX2ZlYXR1cmVzKHRlYW0tPmRldik7CiB9CiAKIHN0YXRpYyBp bnQgdGVhbV9wb3J0X2VudGVyKHN0cnVjdCB0ZWFtICp0ZWFtLCBzdHJ1Y3QgdGVhbV9wb3J0ICpw b3J0KQotLSAKMi4xLjAKCgpGcm9tIGRmNjg4YTVjNzUzZWM0NjRmNjNlZWE0NmRhOGNkMzQ4NjY5 NzQ4NDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENoZW4gSGFpcXVhbiA8b2NAeXVu aWZ5LmNvbT4KRGF0ZTogRnJpLCAyNyBNYXkgMjAxNiAxMDo0OToxMSArMDgwMApTdWJqZWN0OiBb UEFUQ0ggMTIvMTldIHZ4bGFuOiBBY2NlcHQgdXNlciBzcGVjaWZpZWQgTVRVIHZhbHVlIHdoZW4g Y3JlYXRlIG5ldwogdnhsYW4gbGluawoKWyBVcHN0cmVhbSBjb21taXQgY2U1Nzc2NjhhNDI2YzZh OWUyNDcwYTA5ZGNkMDdmYmQ2ZTQ1MjcyYSBdCgpXaGVuIGNyZWF0ZSBhIG5ldyB2eGxhbiBsaW5r LCBleGFtcGxlOgogIGlwIGxpbmsgYWRkIHZ0YXAgbXR1IDE0NDAgdHlwZSB2eGxhbiB2bmkgMSBk ZXYgZXRoMAoKVGhlIGFyZ3VtZW50ICJtdHUiIGhhcyBubyBlZmZlY3QsIGJlY2F1c2UgaXQgaXMg bm90IHNldCB0byBjb25mLT5tdHUuIFRoZQpkZWZhdWx0IHZhbHVlIGlzIHVzZWQgaW4gdnhsYW5f ZGV2X2NvbmZpZ3VyZSBmdW5jdGlvbi4KClRoaXMgcHJvYmxlbSB3YXMgaW50cm9kdWNlZCBieSBj b21taXQgMGRmYmRmNDEwMmI5ICh2eGxhbjogRmFjdG9yIG91dCBkZXZpY2UKY29uZmlndXJhdGlv bikuCgpGaXhlczogMGRmYmRmNDEwMmI5ICh2eGxhbjogRmFjdG9yIG91dCBkZXZpY2UgY29uZmln dXJhdGlvbikKU2lnbmVkLW9mZi1ieTogIENoZW4gSGFpcXVhbiA8b2NAeXVuaWZ5LmNvbT4KQWNr ZWQtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv dnhsYW4uYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvdnhsYW4uYyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKaW5kZXggMDQ5 NmYxYS4uMGIyNGY1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdnhsYW4uYworKysgYi9kcml2 ZXJzL25ldC92eGxhbi5jCkBAIC0yOTg1LDYgKzI5ODUsOSBAQCBzdGF0aWMgaW50IHZ4bGFuX25l d2xpbmsoc3RydWN0IG5ldCAqc3JjX25ldCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAlpZiAo ZGF0YVtJRkxBX1ZYTEFOX1JFTUNTVU1fTk9QQVJUSUFMXSkKIAkJY29uZi5mbGFncyB8PSBWWExB Tl9GX1JFTUNTVU1fTk9QQVJUSUFMOwogCisJaWYgKHRiW0lGTEFfTVRVXSkKKwkJY29uZi5tdHUg PSBubGFfZ2V0X3UzMih0YltJRkxBX01UVV0pOworCiAJZXJyID0gdnhsYW5fZGV2X2NvbmZpZ3Vy ZShzcmNfbmV0LCBkZXYsICZjb25mKTsKIAlzd2l0Y2ggKGVycikgewogCWNhc2UgLUVOT0RFVjoK LS0gCjIuMS4wCgoKRnJvbSA0ODgxOGQ5NjU5YmIwN2VjYWU5NGExODE4YzhlMDU2NWRmYTQ4ZjA4 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29v Z2xlLmNvbT4KRGF0ZTogTW9uLCA2IEp1biAyMDE2IDE1OjA3OjE4IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCAxMy8xOV0gdGNwOiByZWNvcmQgVExQIGFuZCBFUiB0aW1lciBzdGF0cyBpbiB2NiBzdGF0 cwoKWyBVcHN0cmVhbSBjb21taXQgY2UzY2Y0ZWMwMzA1OTE5ZmM2OWE5NzJmNmMyYjJlZmQzNWQz NmFiYyBdCgpUaGUgdjYgdGNwIHN0YXRzIHNjYW4gZG8gbm90IHByb3ZpZGUgVExQIGFuZCBFUiB0 aW1lciBpbmZvcm1hdGlvbgpjb3JyZWN0bHkgbGlrZSB0aGUgdjQgdmVyc2lvbiAuIFRoaXMgcGF0 Y2ggZml4ZXMgdGhhdC4KCkZpeGVzOiA2YmE4YTNiMTllNzYgKCJ0Y3A6IFRhaWwgbG9zcyBwcm9i ZSAoVExQKSIpCkZpeGVzOiBlZWQ1MzBiNmM2NzYgKCJ0Y3A6IGVhcmx5IHJldHJhbnNtaXQiKQpT aWduZWQtb2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KU2lnbmVkLW9m Zi1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni90Y3Bf aXB2Ni5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvdGNwX2lwdjYuYyBiL25ldC9pcHY2L3RjcF9p cHY2LmMKaW5kZXggYjhkNDA1Ni4uMWExY2QzOSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvdGNwX2lw djYuYworKysgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCkBAIC0xNzA2LDcgKzE3MDYsOSBAQCBzdGF0 aWMgdm9pZCBnZXRfdGNwNl9zb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3Qgc29jayAq c3AsIGludCBpKQogCWRlc3RwID0gbnRvaHMoaW5ldC0+aW5ldF9kcG9ydCk7CiAJc3JjcCAgPSBu dG9ocyhpbmV0LT5pbmV0X3Nwb3J0KTsKIAotCWlmIChpY3NrLT5pY3NrX3BlbmRpbmcgPT0gSUNT S19USU1FX1JFVFJBTlMpIHsKKwlpZiAoaWNzay0+aWNza19wZW5kaW5nID09IElDU0tfVElNRV9S RVRSQU5TIHx8CisJICAgIGljc2stPmljc2tfcGVuZGluZyA9PSBJQ1NLX1RJTUVfRUFSTFlfUkVU UkFOUyB8fAorCSAgICBpY3NrLT5pY3NrX3BlbmRpbmcgPT0gSUNTS19USU1FX0xPU1NfUFJPQkUp IHsKIAkJdGltZXJfYWN0aXZlCT0gMTsKIAkJdGltZXJfZXhwaXJlcwk9IGljc2stPmljc2tfdGlt ZW91dDsKIAl9IGVsc2UgaWYgKGljc2stPmljc2tfcGVuZGluZyA9PSBJQ1NLX1RJTUVfUFJPQkUw KSB7Ci0tIAoyLjEuMAoKCkZyb20gODI4OGJiZTA3MmFiNmVkOTUzYWQ3Y2Q5ZjdhYjhiMDhjNjJj NDA4NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVG9zaGlha2kgTWFraXRhIDxtYWtp dGEudG9zaGlha2lAbGFiLm50dC5jby5qcD4KRGF0ZTogVHVlLCA3IEp1biAyMDE2IDE5OjE0OjE3 ICswOTAwClN1YmplY3Q6IFtQQVRDSCAxNC8xOV0gYnJpZGdlOiBEb24ndCBpbnNlcnQgdW5uZWNl c3NhcnkgbG9jYWwgZmRiIGVudHJ5IG9uCiBjaGFuZ2luZyBtYWMgYWRkcmVzcwoKWyBVcHN0cmVh bSBjb21taXQgMGIxNDhkZWY0MDMxNTNhNGQxNTY1ZjE2NDAzNTZjYjc4Y2U1MTA5ZiBdCgpUaGUg bWlzc2luZyBicl92bGFuX3Nob3VsZF91c2UoKSB0ZXN0IGNhdXNlZCBjcmVhdGlvbiBvZiBhbiB1 bm5lZWRlZApsb2NhbCBmZGIgZW50cnkgb24gY2hhbmdpbmcgbWFjIGFkZHJlc3Mgb2YgYSBicmlk Z2UgZGV2aWNlIHdoZW4gdGhlcmUgaXMKYSB2bGFuIHdoaWNoIGlzIGNvbmZpZ3VyZWQgb24gYSBi cmlkZ2UgcG9ydCBidXQgbm90IG9uIHRoZSBicmlkZ2UKZGV2aWNlLgoKRml4ZXM6IDI1OTRlOTA2 NGE1NyAoImJyaWRnZTogdmxhbjogYWRkIHBlci12bGFuIHN0cnVjdCBhbmQgbW92ZSB0byByaGFz aHRhYmxlcyIpClNpZ25lZC1vZmYtYnk6IFRvc2hpYWtpIE1ha2l0YSA8bWFraXRhLnRvc2hpYWtp QGxhYi5udHQuY28uanA+CkFja2VkLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1 bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX2ZkYi5jIHwgMiArKwogMSBmaWxlIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfZmRiLmMg Yi9uZXQvYnJpZGdlL2JyX2ZkYi5jCmluZGV4IGE2NDJiYjguLjA5NDQyZTAgMTAwNjQ0Ci0tLSBh L25ldC9icmlkZ2UvYnJfZmRiLmMKKysrIGIvbmV0L2JyaWRnZS9icl9mZGIuYwpAQCAtMjc4LDYg KzI3OCw4IEBAIHZvaWQgYnJfZmRiX2NoYW5nZV9tYWNfYWRkcmVzcyhzdHJ1Y3QgbmV0X2JyaWRn ZSAqYnIsIGNvbnN0IHU4ICpuZXdhZGRyKQogCSAqIGNoYW5nZSBmcm9tIHVuZGVyIHVzLgogCSAq LwogCWxpc3RfZm9yX2VhY2hfZW50cnkodiwgJnZnLT52bGFuX2xpc3QsIHZsaXN0KSB7CisJCWlm ICghYnJfdmxhbl9zaG91bGRfdXNlKHYpKQorCQkJY29udGludWU7CiAJCWYgPSBfX2JyX2ZkYl9n ZXQoYnIsIGJyLT5kZXYtPmRldl9hZGRyLCB2LT52aWQpOwogCQlpZiAoZiAmJiBmLT5pc19sb2Nh bCAmJiAhZi0+ZHN0KQogCQkJZmRiX2RlbGV0ZV9sb2NhbChiciwgTlVMTCwgZik7Ci0tIAoyLjEu MAoKCkZyb20gZGJjOGFlYzI5ODAxZGJlNTFjMjNlOGM2OTc3M2E5NTQzZmZhZmI5MiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR3VpbGxhdW1lIE5hdWx0IDxnLm5hdWx0QGFscGhhbGlu ay5mcj4KRGF0ZTogV2VkLCA4IEp1biAyMDE2IDEyOjU5OjE3ICswMjAwClN1YmplY3Q6IFtQQVRD SCAxNS8xOV0gbDJ0cDogZml4IGNvbmZpZ3VyYXRpb24gcGFzc2VkIHRvCiBzZXR1cF91ZHBfdHVu bmVsX3NvY2soKQoKWyBVcHN0cmVhbSBjb21taXQgYTVjNWUyZGE4NTUxZWI2OWU1ZDVkMDlkNTFk NTI2MTQwYjVkYjlmYiBdCgpVbnVzZWQgZmllbGRzIG9mIHVkcF9jZmcgbXVzdCBiZSBhbGwgemVy b3MuIE90aGVyd2lzZQpzZXR1cF91ZHBfdHVubmVsX3NvY2soKSBmaWxscyAtPmdyb19yZWNlaXZl IGFuZCAtPmdyb19jb21wbGV0ZQpjYWxsYmFja3Mgd2l0aCBnYXJiYWdlLCBldmVudHVhbGx5IHJl c3VsdGluZyBpbiBwYW5pYyB3aGVuIHVzZWQgYnkKdWRwX2dyb19yZWNlaXZlKCkuCgpbICAgNzIu Njk0MTIzXSBCVUc6IHVuYWJsZSB0byBoYW5kbGUga2VybmVsIHBhZ2luZyByZXF1ZXN0IGF0IGZm ZmY4ODAwMzNmODdkNzgKWyAgIDcyLjY5NTUxOF0gSVA6IFs8ZmZmZjg4MDAzM2Y4N2Q3OD5dIDB4 ZmZmZjg4MDAzM2Y4N2Q3OApbICAgNzIuNjk2NTMwXSBQR0QgMjZlMjA2NyBQVUQgMjZlMzA2NyBQ TUQgMzQyZWQwNjMgUFRFIDgwMDAwMDAwMzNmODcxNjMKWyAgIDcyLjY5NjUzMF0gT29wczogMDAx MSBbIzFdIFNNUCBLQVNBTgpbICAgNzIuNjk2NTMwXSBNb2R1bGVzIGxpbmtlZCBpbjogbDJ0cF9w cHAgbDJ0cF9uZXRsaW5rIGwydHBfY29yZSBpcDZfdWRwX3R1bm5lbCB1ZHBfdHVubmVsIHBwdHAg Z3JlIHBwcG94IHBwcF9nZW5lcmljIHNsaGMgY3JjMzJjX2ludGVsIGdoYXNoX2NsbXVsbmlfaW50 ZWwgaml0dGVyZW50cm9weV9ybmcgc2hhMjU2X2dlbmVyaWMgaG1hYyBkcmJnIGFuc2lfY3Bybmcg YWVzbmlfaW50ZWwgZXZkZXYgYWVzX3g4Nl82NCBhYmxrX2hlbHBlciBjcnlwdGQgbHJ3IGdmMTI4 bXVsIGdsdWVfaGVscGVyIHNlcmlvX3JhdyBhY3BpX2NwdWZyZXEgYnV0dG9uIHByb2NcCmVzc29y IGV4dDQgY3JjMTYgamJkMiBtYmNhY2hlIHZpcnRpb19ibGsgdmlydGlvX25ldCB2aXJ0aW9fcGNp IHZpcnRpb19yaW5nIHZpcnRpbwpbICAgNzIuNjk2NTMwXSBDUFU6IDMgUElEOiAwIENvbW06IHN3 YXBwZXIvMyBOb3QgdGFpbnRlZCA0LjcuMC1yYzEgIzEKWyAgIDcyLjY5NjUzMF0gSGFyZHdhcmUg bmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgRGViaWFu LTEuOC4yLTEgMDQvMDEvMjAxNApbICAgNzIuNjk2NTMwXSB0YXNrOiBmZmZmODgwMDM1YjU5NzAw IHRpOiBmZmZmODgwMDM1YjcwMDAwIHRhc2sudGk6IGZmZmY4ODAwMzViNzAwMDAKWyAgIDcyLjY5 NjUzMF0gUklQOiAwMDEwOls8ZmZmZjg4MDAzM2Y4N2Q3OD5dICBbPGZmZmY4ODAwMzNmODdkNzg+ XSAweGZmZmY4ODAwMzNmODdkNzgKWyAgIDcyLjY5NjUzMF0gUlNQOiAwMDE4OmZmZmY4ODAwMzVm ODdiYzAgIEVGTEFHUzogMDAwMTAyNDYKWyAgIDcyLjY5NjUzMF0gUkFYOiBmZmZmZWQwMDA2OThm OTk2IFJCWDogZmZmZjg4MDAzMzI2Yjg0MCBSQ1g6IGZmZmZmZmZmODE0Y2M4MjMKWyAgIDcyLjY5 NjUzMF0gUkRYOiBmZmZmODgwMDMzMjZiODQwIFJTSTogZmZmZjg4MDAzM2U0ODAzOCBSREk6IGZm ZmY4ODAwMzRjN2M3ODAKWyAgIDcyLjY5NjUzMF0gUkJQOiBmZmZmODgwMDM1Zjg3YzE4IFIwODog MDAwMDAwMDAwMDAwYTUwNiBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKWyAgIDcyLjY5NjUzMF0gUjEw OiBmZmZmODgwMDM1Zjg3YjM4IFIxMTogZmZmZjg4MDAzNGI5MzQ0ZCBSMTI6IDAwMDAwMDAwZWJm ZWE3MTUKWyAgIDcyLjY5NjUzMF0gUjEzOiAwMDAwMDAwMDAwMDAwMDAwIFIxNDogZmZmZjg4MDAz NGM3Yzc4MCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKWyAgIDcyLjY5NjUzMF0gRlM6ICAwMDAwMDAw MDAwMDAwMDAwKDAwMDApIEdTOmZmZmY4ODAwMzVmODAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAw MDAwMDAwMApbICAgNzIuNjk2NTMwXSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAw MDAwMDAwMDgwMDUwMDMzClsgICA3Mi42OTY1MzBdIENSMjogZmZmZjg4MDAzM2Y4N2Q3OCBDUjM6 IDAwMDAwMDAwMzNjOTgwMDAgQ1I0OiAwMDAwMDAwMDAwMDQwNmEwClsgICA3Mi42OTY1MzBdIFN0 YWNrOgpbICAgNzIuNjk2NTMwXSAgZmZmZmZmZmY4MTRjYzgzNCBmZmZmODgwMDM0YjkzNDY4IDAw MDAwMDE0ODE0MTY4MTggZmZmZjg4MDAzMzI2Yjg3NApbICAgNzIuNjk2NTMwXSAgZmZmZjg4MDAz NGM3Y2NiMCBmZmZmODgwMDMzZTQ4MDM4IGZmZmY4ODAwMzMyNmI4NDAgZmZmZjg4MDAzNGI5MzQ2 MgpbICAgNzIuNjk2NTMwXSAgZmZmZjg4MDAzMzI2Yjg4YSBmZmZmODgwMDMzMjZiODhjIGZmZmY4 ODAwMzRiOTM0NjggZmZmZjg4MDAzNWY4N2M3MApbICAgNzIuNjk2NTMwXSBDYWxsIFRyYWNlOgpb ICAgNzIuNjk2NTMwXSAgPElSUT4KWyAgIDcyLjY5NjUzMF0gIFs8ZmZmZmZmZmY4MTRjYzgzND5d ID8gdWRwX2dyb19yZWNlaXZlKzB4MWM2LzB4MWY5ClsgICA3Mi42OTY1MzBdICBbPGZmZmZmZmZm ODE0Y2NiMWM+XSB1ZHA0X2dyb19yZWNlaXZlKzB4MmI1LzB4MzEwClsgICA3Mi42OTY1MzBdICBb PGZmZmZmZmZmODE0ZDk4OWI+XSBpbmV0X2dyb19yZWNlaXZlKzB4NGEzLzB4NGNkClsgICA3Mi42 OTY1MzBdICBbPGZmZmZmZmZmODE0MzFiMzI+XSBkZXZfZ3JvX3JlY2VpdmUrMHg1ODQvMHg3YTMK WyAgIDcyLjY5NjUzMF0gIFs8ZmZmZmZmZmY4MTBhZGY3YT5dID8gX19sb2NrX2lzX2hlbGQrMHgy OS8weDY0ClsgICA3Mi42OTY1MzBdICBbPGZmZmZmZmZmODE0MzIxZjc+XSBuYXBpX2dyb19yZWNl aXZlKzB4MTI0LzB4MjFkClsgICA3Mi42OTY1MzBdICBbPGZmZmZmZmZmYTAwMGIxNDU+XSB2aXJ0 bmV0X3JlY2VpdmUrMHg4ZGYvMHg4ZjYgW3ZpcnRpb19uZXRdClsgICA3Mi42OTY1MzBdICBbPGZm ZmZmZmZmYTAwMGIyN2U+XSB2aXJ0bmV0X3BvbGwrMHgxZC8weDhkIFt2aXJ0aW9fbmV0XQpbICAg NzIuNjk2NTMwXSAgWzxmZmZmZmZmZjgxNDMxMzUwPl0gbmV0X3J4X2FjdGlvbisweDE1Yi8weDNi OQpbICAgNzIuNjk2NTMwXSAgWzxmZmZmZmZmZjgxNTg5M2Q2Pl0gX19kb19zb2Z0aXJxKzB4MjE2 LzB4NTQ2ClsgICA3Mi42OTY1MzBdICBbPGZmZmZmZmZmODEwNjIzOTI+XSBpcnFfZXhpdCsweDQ5 LzB4YjYKWyAgIDcyLjY5NjUzMF0gIFs8ZmZmZmZmZmY4MTU4OGU5YT5dIGRvX0lSUSsweGUyLzB4 ZmEKWyAgIDcyLjY5NjUzMF0gIFs8ZmZmZmZmZmY4MTU4N2E0OT5dIGNvbW1vbl9pbnRlcnJ1cHQr MHg4OS8weDg5ClsgICA3Mi42OTY1MzBdICA8RU9JPgpbICAgNzIuNjk2NTMwXSAgWzxmZmZmZmZm ZjgxMGIwNWRmPl0gPyB0cmFjZV9oYXJkaXJxc19vbl9jYWxsZXIrMHgyMjkvMHgyNzAKWyAgIDcy LjY5NjUzMF0gIFs8ZmZmZmZmZmY4MTAyYjNjNz5dID8gZGVmYXVsdF9pZGxlKzB4MWMvMHgyZApb ICAgNzIuNjk2NTMwXSAgWzxmZmZmZmZmZjgxMDJiM2M1Pl0gPyBkZWZhdWx0X2lkbGUrMHgxYS8w eDJkClsgICA3Mi42OTY1MzBdICBbPGZmZmZmZmZmODEwMmJiOGM+XSBhcmNoX2NwdV9pZGxlKzB4 YS8weGMKWyAgIDcyLjY5NjUzMF0gIFs8ZmZmZmZmZmY4MTBhNmMzOT5dIGRlZmF1bHRfaWRsZV9j YWxsKzB4MWEvMHgxYwpbICAgNzIuNjk2NTMwXSAgWzxmZmZmZmZmZjgxMGE2ZDk2Pl0gY3B1X3N0 YXJ0dXBfZW50cnkrMHgxNWIvMHgyMGYKWyAgIDcyLjY5NjUzMF0gIFs8ZmZmZmZmZmY4MTAzOWE4 MT5dIHN0YXJ0X3NlY29uZGFyeSsweDEyYy8weDEzMwpbICAgNzIuNjk2NTMwXSBDb2RlOiBmZiBm ZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiA3ZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiA3ZiAwMCA3 ZSBmOCAzMyAwMCA4OCBmZiBmZiA2ZCA2MSA1OCA4MSBmZiBmZiBmZiBmZiA1ZSBkZSAwYSA4MSBm ZiBmZiBmZiBmZiA8MDA+IDVjIGUyIDM0IDAwIDg4IGZmIGZmIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwClsgICA3Mi42OTY1MzBdIFJJUCAgWzxmZmZmODgwMDMzZjg3ZDc4 Pl0gMHhmZmZmODgwMDMzZjg3ZDc4ClsgICA3Mi42OTY1MzBdICBSU1AgPGZmZmY4ODAwMzVmODdi YzA+ClsgICA3Mi42OTY1MzBdIENSMjogZmZmZjg4MDAzM2Y4N2Q3OApbICAgNzIuNjk2NTMwXSAt LS1bIGVuZCB0cmFjZSBhZDc3NThiOWExZGNjZjk5IF0tLS0KWyAgIDcyLjY5NjUzMF0gS2VybmVs IHBhbmljIC0gbm90IHN5bmNpbmc6IEZhdGFsIGV4Y2VwdGlvbiBpbiBpbnRlcnJ1cHQKWyAgIDcy LjY5NjUzMF0gS2VybmVsIE9mZnNldDogZGlzYWJsZWQKWyAgIDcyLjY5NjUzMF0gLS0tWyBlbmQg S2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6IEZhdGFsIGV4Y2VwdGlvbiBpbiBpbnRlcnJ1cHQK CnYyOiB1c2UgZW1wdHkgaW5pdGlhbGlzZXIgaW5zdGVhZCBvZiAieyBOVUxMIH0iIHRvIGF2b2lk IHJlbHlpbmcgb24KICAgIGZpcnN0IGZpZWxkJ3MgdHlwZS4KCkZpeGVzOiAzOGZkMmFmMjRmY2Yg KCJ1ZHA6IEFkZCBzb2NrZXQgYmFzZWQgR1JPIGFuZCBjb25maWciKQpTaWduZWQtb2ZmLWJ5OiBH dWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2wydHAvbDJ0cF9jb3Jl LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRwX2NvcmUuYyBiL25ldC9sMnRwL2wydHBfY29yZS5j CmluZGV4IGFmY2EyZWIuLmVjMTdjYmUgMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBfY29yZS5j CisrKyBiL25ldC9sMnRwL2wydHBfY29yZS5jCkBAIC0xNTgxLDcgKzE1ODEsNyBAQCBpbnQgbDJ0 cF90dW5uZWxfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgaW50IGZkLCBpbnQgdmVyc2lvbiwgdTMy IHR1bm5lbF9pZCwgdTMyCiAJLyogTWFyayBzb2NrZXQgYXMgYW4gZW5jYXBzdWxhdGlvbiBzb2Nr ZXQuIFNlZSBuZXQvaXB2NC91ZHAuYyAqLwogCXR1bm5lbC0+ZW5jYXAgPSBlbmNhcDsKIAlpZiAo ZW5jYXAgPT0gTDJUUF9FTkNBUFRZUEVfVURQKSB7Ci0JCXN0cnVjdCB1ZHBfdHVubmVsX3NvY2tf Y2ZnIHVkcF9jZmc7CisJCXN0cnVjdCB1ZHBfdHVubmVsX3NvY2tfY2ZnIHVkcF9jZmcgPSB7IH07 CiAKIAkJdWRwX2NmZy5za191c2VyX2RhdGEgPSB0dW5uZWw7CiAJCXVkcF9jZmcuZW5jYXBfdHlw ZSA9IFVEUF9FTkNBUF9MMlRQSU5VRFA7Ci0tIAoyLjEuMAoKCkZyb20gZWIyOTZmMDhmYjZhM2Ni ZjJlNzI3MzcyODJhMDdiODVmMzQxYTliMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog SmFrdWIgU2l0bmlja2kgPGprYnNAcmVkaGF0LmNvbT4KRGF0ZTogV2VkLCA4IEp1biAyMDE2IDE1 OjEzOjM0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNi8xOV0gaXB2NjogU2tpcCBYRlJNIGxvb2t1 cCBpZiBkc3RfZW50cnkgaW4gc29ja2V0IGNhY2hlIGlzCiB2YWxpZAoKWyBVcHN0cmVhbSBjb21t aXQgMDBiYzBlZjU4ODBkYzdiODJmOWMzMjBkZWFkNGFmYWFkNDhlNDdiZSBdCgpBdCBwcmVzZW50 IHdlIHBlcmZvcm0gYW4geGZybV9sb29rdXAoKSBmb3IgZWFjaCBVRFB2NiBtZXNzYWdlIHdlCnNl bmQuIFRoZSBsb29rdXAgaW52b2x2ZXMgcXVlcnlpbmcgdGhlIGZsb3cgY2FjaGUgKGZsb3dfY2Fj aGVfbG9va3VwKQphbmQsIGluIGNhc2Ugb2YgYSBjYWNoZSBtaXNzLCBjcmVhdGluZyBhbiBYRlJN IGJ1bmRsZS4KCklmIHdlIG1pc3MgdGhlIGZsb3cgY2FjaGUsIHdlIGNhbiBlbmQgdXAgY3JlYXRp bmcgYSBuZXcgYnVuZGxlIGFuZApkZXJpdmluZyB0aGUgcGF0aCBNVFUgKHhmcm1faW5pdF9wbXR1 KSBmcm9tIG9uIGFuIGFscmVhZHkgdHJhbnNmb3JtZWQKZHN0X2VudHJ5LCB3aGljaCB3ZSBwYXNz IGZyb20gdGhlIHNvY2tldCBjYWNoZSAoc2stPnNrX2RzdF9jYWNoZSkgZG93bgp0byB4ZnJtX2xv b2t1cCgpLiBUaGlzIGNhbiBoYXBwZW4gb25seSBpZiB3ZSdyZSBjYWNoaW5nIHRoZSBkc3RfZW50 cnkKaW4gdGhlIHNvY2tldCwgdGhhdCBpcyB3aGVuIHdlJ3JlIHVzaW5nIGEgY29ubmVjdGVkIFVE UCBzb2NrZXQuCgpUbyBwdXQgaXQgYW5vdGhlciB3YXksIHRoZSBwYXRoIE1UVSBzaHJpbmtzIGVh Y2ggdGltZSB3ZSBtaXNzIHRoZSBmbG93CmNhY2hlLCB3aGljaCBsYXRlciBvbiBsZWFkcyB0byBp bmNvcnJlY3RseSBmcmFnbWVudGVkIHBheWxvYWQuIEl0IGNhbgpiZSBvYnNlcnZlZCB3aXRoIEVT UHY2IGluIHRyYW5zcG9ydCBtb2RlOgoKICAxKSBTZXQgdXAgYSB0cmFuc2Zvcm1hdGlvbiBhbmQg bG93ZXIgdGhlIE1UVSB0byB0cmlnZ2VyIGZyYWdtZW50YXRpb24KICAgICMgaXAgeGZybSBwb2xp Y3kgYWRkIGRpciBvdXQgc3JjIDo6MSBkc3QgOjoxIFwKICAgICAgdG1wbCBzcmMgOjoxIGRzdCA6 OjEgcHJvdG8gZXNwIHNwaSAxCiAgICAjIGlwIHhmcm0gc3RhdGUgYWRkIHNyYyA6OjEgZHN0IDo6 MSBcCiAgICAgIHByb3RvIGVzcCBzcGkgMSBlbmMgJ2FlcycgMHgwYjBiMGIwYjBiMGIwYjBiMGIw YjBiMGIwYjBiMGIwYgogICAgIyBpcCBsaW5rIHNldCBkZXYgbG8gbXR1IDE1MDAKCiAgMikgTW9u aXRvciB0aGUgcGFja2V0IGZsb3cgYW5kIHNldCB1cCBhbiBVRFAgc2luawogICAgIyB0Y3BkdW1w IC1uaSBsbyAtdHR0ICYKICAgICMgc29jYXQgdWRwNi1saXN0ZW46MTIzNDUsZm9yayAvZGV2L251 bGwgJgoKICAzKSBTZW5kIGEgZGF0YWdyYW0gdGhhdCBuZWVkcyBmcmFnbWVudGF0aW9uIHdpdGgg YSBjb25uZWN0ZWQgc29ja2V0CiAgICAjIHBlcmwgLWUgJ3ByaW50ICJAIiB4IDE0NzAgfCBzb2Nh dCAtIHVkcDY6Wzo6MV06MTIzNDUKICAgIDIwMTYvMDYvMDcgMTg6NTI6NTIgc29jYXRbNzI0XSBF IHJlYWQoMywgMHg1NTViYjNkNWJhMDAsIDgxOTIpOiBQcm90b2NvbCBlcnJvcgogICAgMDA6MDA6 MDAuMDAwMDAwIElQNiA6OjEgPiA6OjE6IGZyYWcgKDB8MTQ0OCkgRVNQKHNwaT0weDAwMDAwMDAx LHNlcT0weDIpLCBsZW5ndGggMTQ0OAogICAgMDA6MDA6MDAuMDAwMDE0IElQNiA6OjEgPiA6OjE6 IGZyYWcgKDE0NDh8MzIpCiAgICAwMDowMDowMC4wMDAwNTAgSVA2IDo6MSA+IDo6MTogRVNQKHNw aT0weDAwMDAwMDAxLHNlcT0weDMpLCBsZW5ndGggMTI3MgogICAgKF4gSUNNUHY2IFBhcmFtZXRl ciBQcm9ibGVtKQogICAgMDA6MDA6MDAuMDAwMDIyIElQNiA6OjEgPiA6OjE6IEVTUChzcGk9MHgw MDAwMDAwMSxzZXE9MHg1KSwgbGVuZ3RoIDEzNgoKICA0KSBDb21wYXJlIGl0IHRvIGEgbm9uLWNv bm5lY3RlZCBzb2NrZXQKICAgICMgcGVybCAtZSAncHJpbnQgIkAiIHggMTUwMCcgfCBzb2NhdCAt IHVkcDYtc2VuZHRvOls6OjFdOjEyMzQ1CiAgICAwMDowMDo0MC41MzU0ODggSVA2IDo6MSA+IDo6 MTogZnJhZyAoMHwxNDQ4KSBFU1Aoc3BpPTB4MDAwMDAwMDEsc2VxPTB4NiksIGxlbmd0aCAxNDQ4 CiAgICAwMDowMDowMC4wMDAwMTAgSVA2IDo6MSA+IDo6MTogZnJhZyAoMTQ0OHw2NCkKCldoYXQg aGFwcGVucyBpbiBzdGVwICgzKSBpczoKCiAgMSkgd2hlbiBjb25uZWN0aW5nIHRoZSBzb2NrZXQg aW4gX19pcDZfZGF0YWdyYW1fY29ubmVjdCgpLCB3ZQogICAgIHBlcmZvcm0gYW4gWEZSTSBsb29r dXAsIG1pc3MgdGhlIGZsb3cgY2FjaGUsIGNyZWF0ZSBhbiBYRlJNCiAgICAgYnVuZGxlLCBhbmQg Y2FjaGUgdGhlIGRlc3RpbmF0aW9uLAoKICAyKSBhZnRlcndhcmRzLCB3aGVuIHNlbmRpbmcgdGhl IGRhdGFncmFtLCB3ZSBwZXJmb3JtIGFuIFhGUk0gbG9va3VwLAogICAgIGFnYWluLCBtaXNzIHRo ZSBmbG93IGNhY2hlIChkdWUgdG8gbWlzbWF0Y2ggb2YgZmxvd2k2X2lpZiBhbmQKICAgICBmbG93 aTZfb2lmLCB3aGljaCBpcyBhbiBpc3N1ZSBvZiBpdHMgb3duKSwgYW5kIHJlY3JlYXRlIGFuIFhG Uk0KICAgICBidW5kbGUgYmFzZWQgb24gdGhlIGNhY2hlZCAoYW5kIGFscmVhZHkgdHJhbnNmb3Jt ZWQpIGRlc3RpbmF0aW9uLgoKVG8gcHJldmVudCB0aGUgcmVjcmVhdGlvbiBvZiBhbiBYRlJNIGJ1 bmRsZSwgYXZvaWQgYW4gWEZSTSBsb29rdXAKYWx0b2dldGhlciB3aGVuZXZlciB3ZSBhbHJlYWR5 IGhhdmUgYSBkZXN0aW5hdGlvbiBlbnRyeSBjYWNoZWQgaW4gdGhlCnNvY2tldC4gVGhpcyBwcmV2 ZW50cyB0aGUgcGF0aCBNVFUgc2hyaW5rYWdlIGFuZCBicmluZ3MgdXMgb24gcGFyIHdpdGgKVURQ djQuCgpUaGUgZml4IGFsc28gYmVuZWZpdHMgY29ubmVjdGVkIFBJTkd2NiBzb2NrZXRzLCBhbm90 aGVyIHVzZXIgb2YKaXA2X3NrX2RzdF9sb29rdXBfZmxvdygpLCB3aG8gYWxzbyBzdWZmZXIgbWVz c2FnZXMgYmVpbmcgdHJhbnNmb3JtZWQKdHdpY2UuCgpKb2ludCB3b3JrIHdpdGggSGFubmVzIEZy ZWRlcmljIFNvd2EuCgpSZXBvcnRlZC1ieTogSmFuIFRsdWthIDxqdGx1a2FAcmVkaGF0LmNvbT4K U2lnbmVkLW9mZi1ieTogSmFrdWIgU2l0bmlja2kgPGprYnNAcmVkaGF0LmNvbT4KQWNrZWQtYnk6 IEhhbm5lcyBGcmVkZXJpYyBTb3dhIDxoYW5uZXNAc3RyZXNzaW5kdWt0aW9uLm9yZz4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9p cHY2L2lwNl9vdXRwdXQuYyB8IDExICsrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9vdXRw dXQuYyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYwppbmRleCBhMTc1MTUyLi41ODkwMGMyIDEwMDY0 NAotLS0gYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjYvaXA2X291dHB1dC5j CkBAIC0xMDcyLDE3ICsxMDcyLDEyIEBAIHN0cnVjdCBkc3RfZW50cnkgKmlwNl9za19kc3RfbG9v a3VwX2Zsb3coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgZmxvd2k2ICpmbDYsCiAJCQkJCSBjb25z dCBzdHJ1Y3QgaW42X2FkZHIgKmZpbmFsX2RzdCkKIHsKIAlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3Qg PSBza19kc3RfY2hlY2soc2ssIGluZXQ2X3NrKHNrKS0+ZHN0X2Nvb2tpZSk7Ci0JaW50IGVycjsK IAogCWRzdCA9IGlwNl9za19kc3RfY2hlY2soc2ssIGRzdCwgZmw2KTsKKwlpZiAoIWRzdCkKKwkJ ZHN0ID0gaXA2X2RzdF9sb29rdXBfZmxvdyhzaywgZmw2LCBmaW5hbF9kc3QpOwogCi0JZXJyID0g aXA2X2RzdF9sb29rdXBfdGFpbChzb2NrX25ldChzayksIHNrLCAmZHN0LCBmbDYpOwotCWlmIChl cnIpCi0JCXJldHVybiBFUlJfUFRSKGVycik7Ci0JaWYgKGZpbmFsX2RzdCkKLQkJZmw2LT5kYWRk ciA9ICpmaW5hbF9kc3Q7Ci0KLQlyZXR1cm4geGZybV9sb29rdXBfcm91dGUoc29ja19uZXQoc2sp LCBkc3QsIGZsb3dpNl90b19mbG93aShmbDYpLCBzaywgMCk7CisJcmV0dXJuIGRzdDsKIH0KIEVY UE9SVF9TWU1CT0xfR1BMKGlwNl9za19kc3RfbG9va3VwX2Zsb3cpOwogCi0tIAoyLjEuMAoKCkZy b20gZmJhZjc3YTAyMzFkMTA2NzAwN2I5ZmM1MmQwMWE1ZjVjZGNlMmZiNyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGF2aWQgV3JhZ2cgPGRhdmlkQHdlYXZlLndvcmtzPgpEYXRlOiBG cmksIDMgSnVuIDIwMTYgMTg6NTg6MTMgLTA0MDAKU3ViamVjdDogW1BBVENIIDE3LzE5XSB2eGxh bjogUmVsYXggTVRVIGNvbnN0cmFpbnRzCgpbIFVwc3RyZWFtIGNvbW1pdCA3MjU2NGI1OWZmYzQz OGVhMTAzYjA3MjdhOTIxYWFkZGNlNzY2NzI4IF0KCkFsbG93IHRoZSBNVFUgb2YgdnhsYW4gZGV2 aWNlcyB3aXRob3V0IGFuIHVuZGVybHlpbmcgZGV2aWNlIHRvIGJlIHNldAp0byBsYXJnZXIgdmFs dWVzICh1cCB0byBhIG1heGltdW0gYmFzZWQgb24gSVAgcGFja2V0IGxpbWl0cyBhbmQgdnhsYW4K b3ZlcmhlYWQpLgoKUHJldmlvdXNseSwgdGhlaXIgTVRVcyBjb3VsZCBub3QgYmUgc2V0IHRvIGhp Z2hlciB0aGFuIHRoZQpjb252ZW50aW9uYWwgZXRoZXJuZXQgdmFsdWUgb2YgMTUwMC4gIFRoaXMg aXMgYSB2ZXJ5IGFyYml0cmFyeSB2YWx1ZQppbiB0aGUgY29udGV4dCBvZiB2eGxhbiwgYW5kIHBy ZXZlbnRlZCB2eGxhbiBkZXZpY2VzIGZyb20gYmVpbmcgYWJsZQp0byB0YWtlIGFkdmFudGFnZSBv ZiBqdW1ibyBmcmFtZXMgZXRjLgoKVGhlIGRlZmF1bHQgTVRVIHJlbWFpbnMgMTUwMCwgZm9yIGNv bXBhdGliaWxpdHkuCgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBXcmFnZyA8ZGF2aWRAd2VhdmUud29y a3M+CkFja2VkLWJ5OiBSb29wYSBQcmFiaHUgPHJvb3BhQGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBk cml2ZXJzL25ldC92eGxhbi5jIHwgMzYgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnhsYW4uYyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKaW5k ZXggMGIyNGY1MS4uMmY0NGJjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdnhsYW4uYworKysg Yi9kcml2ZXJzL25ldC92eGxhbi5jCkBAIC0yMzY0LDI5ICsyMzY0LDQzIEBAIHN0YXRpYyB2b2lk IHZ4bGFuX3NldF9tdWx0aWNhc3RfbGlzdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogfQog Ci1zdGF0aWMgaW50IHZ4bGFuX2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50 IG5ld19tdHUpCitzdGF0aWMgaW50IF9fdnhsYW5fY2hhbmdlX210dShzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LAorCQkJICAgICAgc3RydWN0IG5ldF9kZXZpY2UgKmxvd2VyZGV2LAorCQkJICAgICAg c3RydWN0IHZ4bGFuX3Jkc3QgKmRzdCwgaW50IG5ld19tdHUsIGJvb2wgc3RyaWN0KQogewotCXN0 cnVjdCB2eGxhbl9kZXYgKnZ4bGFuID0gbmV0ZGV2X3ByaXYoZGV2KTsKLQlzdHJ1Y3QgdnhsYW5f cmRzdCAqZHN0ID0gJnZ4bGFuLT5kZWZhdWx0X2RzdDsKLQlzdHJ1Y3QgbmV0X2RldmljZSAqbG93 ZXJkZXY7Ci0JaW50IG1heF9tdHU7CisJaW50IG1heF9tdHUgPSBJUF9NQVhfTVRVOwogCi0JbG93 ZXJkZXYgPSBfX2Rldl9nZXRfYnlfaW5kZXgodnhsYW4tPm5ldCwgZHN0LT5yZW1vdGVfaWZpbmRl eCk7Ci0JaWYgKGxvd2VyZGV2ID09IE5VTEwpCi0JCXJldHVybiBldGhfY2hhbmdlX210dShkZXYs IG5ld19tdHUpOworCWlmIChsb3dlcmRldikKKwkJbWF4X210dSA9IGxvd2VyZGV2LT5tdHU7CiAK IAlpZiAoZHN0LT5yZW1vdGVfaXAuc2Euc2FfZmFtaWx5ID09IEFGX0lORVQ2KQotCQltYXhfbXR1 ID0gbG93ZXJkZXYtPm10dSAtIFZYTEFONl9IRUFEUk9PTTsKKwkJbWF4X210dSAtPSBWWExBTjZf SEVBRFJPT007CiAJZWxzZQotCQltYXhfbXR1ID0gbG93ZXJkZXYtPm10dSAtIFZYTEFOX0hFQURS T09NOworCQltYXhfbXR1IC09IFZYTEFOX0hFQURST09NOwogCi0JaWYgKG5ld19tdHUgPCA2OCB8 fCBuZXdfbXR1ID4gbWF4X210dSkKKwlpZiAobmV3X210dSA8IDY4KQogCQlyZXR1cm4gLUVJTlZB TDsKIAorCWlmIChuZXdfbXR1ID4gbWF4X210dSkgeworCQlpZiAoc3RyaWN0KQorCQkJcmV0dXJu IC1FSU5WQUw7CisKKwkJbmV3X210dSA9IG1heF9tdHU7CisJfQorCiAJZGV2LT5tdHUgPSBuZXdf bXR1OwogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IHZ4bGFuX2NoYW5nZV9tdHUoc3RydWN0 IG5ldF9kZXZpY2UgKmRldiwgaW50IG5ld19tdHUpCit7CisJc3RydWN0IHZ4bGFuX2RldiAqdnhs YW4gPSBuZXRkZXZfcHJpdihkZXYpOworCXN0cnVjdCB2eGxhbl9yZHN0ICpkc3QgPSAmdnhsYW4t PmRlZmF1bHRfZHN0OworCXN0cnVjdCBuZXRfZGV2aWNlICpsb3dlcmRldiA9IF9fZGV2X2dldF9i eV9pbmRleCh2eGxhbi0+bmV0LAorCQkJCQkJCSBkc3QtPnJlbW90ZV9pZmluZGV4KTsKKwlyZXR1 cm4gX192eGxhbl9jaGFuZ2VfbXR1KGRldiwgbG93ZXJkZXYsIGRzdCwgbmV3X210dSwgdHJ1ZSk7 Cit9CisKIHN0YXRpYyBpbnQgZWdyZXNzX2lwdjRfdHVuX2luZm8oc3RydWN0IG5ldF9kZXZpY2Ug KmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQlzdHJ1Y3QgaXBfdHVubmVsX2luZm8gKmlu Zm8sCiAJCQkJX19iZTE2IHNwb3J0LCBfX2JlMTYgZHBvcnQpCi0tIAoyLjEuMAoKCkZyb20gZWU2 ODU1OGJhZGI2NGFlNjZhMjk1MmUwOWNlMzNmYjc5ZDQ2MDRhOSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGF2aWQgV3JhZ2cgPGRhdmlkQHdlYXZlLndvcmtzPgpEYXRlOiBGcmksIDMg SnVuIDIwMTYgMTg6NTg6MTQgLTA0MDAKU3ViamVjdDogW1BBVENIIDE4LzE5XSBnZW5ldmU6IFJl bGF4IE1UVSBjb25zdHJhaW50cwoKWyBVcHN0cmVhbSBjb21taXQgNTVlNWJmYjUzY2ZmMjg2YzFj MWZmNDlmNTEzMjVkYzE1YzdmZWE2MyBdCgpBbGxvdyB0aGUgTVRVIG9mIGdlbmV2ZSBkZXZpY2Vz IHRvIGJlIHNldCB0byBsYXJnZSB2YWx1ZXMsIGluIG9yZGVyIHRvCmV4cGxvaXQgdW5kZXJseWlu ZyBuZXR3b3JrcyB3aXRoIGxhcmdlciBmcmFtZSBzaXplcy4KCkdFTkVWRSBkb2VzIG5vdCBoYXZl IGEgZml4ZWQgZW5jYXBzdWxhdGlvbiBvdmVyaGVhZCAoYW4gb3BlbnZzd2l0Y2gKcnVsZSBjYW4g YWRkIHZhcmlhYmxlIGxlbmd0aCBvcHRpb25zKSwgc28gdGhlcmUgaXMgbm8gcmVsZXZhbnQgbWF4 aW11bQpNVFUgdG8gZW5mb3JjZS4gIEEgbWF4aW11bSBvZiBJUF9NQVhfTVRVIGlzIHVzZWQgaW5z dGVhZC4KRW5jYXBzdWxhdGVkIHBhY2tldHMgdGhhdCBhcmUgdG9vIGJpZyBmb3IgdGhlIHVuZGVy bHlpbmcgbmV0d29yayB3aWxsCmdldCBkcm9wcGVkIG9uIHRoZSBmbG9vci4KClNpZ25lZC1vZmYt Ynk6IERhdmlkIFdyYWdnIDxkYXZpZEB3ZWF2ZS53b3Jrcz4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2dlbmV2ZS5j IHwgMTMgKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9nZW5ldmUuYyBiL2RyaXZlcnMv bmV0L2dlbmV2ZS5jCmluZGV4IGUzZjkzOWYuLjI0MDYyMGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2dlbmV2ZS5jCisrKyBiL2RyaXZlcnMvbmV0L2dlbmV2ZS5jCkBAIC05OTQsNiArOTk0LDE3 IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBnZW5ldmVfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXJldHVybiBnZW5ldmVfeG1pdF9za2Ioc2tiLCBkZXYs IGluZm8pOwogfQogCitzdGF0aWMgaW50IGdlbmV2ZV9jaGFuZ2VfbXR1KHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsIGludCBuZXdfbXR1KQoreworCS8qIEdFTkVWRSBvdmVyaGVhZCBpcyBub3QgZml4 ZWQsIHNvIHdlIGNhbid0IGVuZm9yY2UgYSBtb3JlCisJICogcHJlY2lzZSBtYXggTVRVLgorCSAq LworCWlmIChuZXdfbXR1IDwgNjggfHwgbmV3X210dSA+IElQX01BWF9NVFUpCisJCXJldHVybiAt RUlOVkFMOworCWRldi0+bXR1ID0gbmV3X210dTsKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGlu dCBnZW5ldmVfZmlsbF9tZXRhZGF0YV9kc3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0 IHNrX2J1ZmYgKnNrYikKIHsKIAlzdHJ1Y3QgaXBfdHVubmVsX2luZm8gKmluZm8gPSBza2JfdHVu bmVsX2luZm8oc2tiKTsKQEAgLTEwMzgsNyArMTA0OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg bmV0X2RldmljZV9vcHMgZ2VuZXZlX25ldGRldl9vcHMgPSB7CiAJLm5kb19zdG9wCQk9IGdlbmV2 ZV9zdG9wLAogCS5uZG9fc3RhcnRfeG1pdAkJPSBnZW5ldmVfeG1pdCwKIAkubmRvX2dldF9zdGF0 czY0CT0gaXBfdHVubmVsX2dldF9zdGF0czY0LAotCS5uZG9fY2hhbmdlX210dQkJPSBldGhfY2hh bmdlX210dSwKKwkubmRvX2NoYW5nZV9tdHUJCT0gZ2VuZXZlX2NoYW5nZV9tdHUsCiAJLm5kb192 YWxpZGF0ZV9hZGRyCT0gZXRoX3ZhbGlkYXRlX2FkZHIsCiAJLm5kb19zZXRfbWFjX2FkZHJlc3MJ PSBldGhfbWFjX2FkZHIsCiAJLm5kb19maWxsX21ldGFkYXRhX2RzdAk9IGdlbmV2ZV9maWxsX21l dGFkYXRhX2RzdCwKLS0gCjIuMS4wCgoKRnJvbSA1YzMwNmQ1NTZjZjA2M2ZmYmY0OWVkNzc3ZDk0 YzJmM2EwZTBmYWFmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBXcmFnZyA8 ZGF2aWRAd2VhdmUud29ya3M+CkRhdGU6IEZyaSwgMyBKdW4gMjAxNiAxODo1ODoxNSAtMDQwMApT dWJqZWN0OiBbUEFUQ0ggMTkvMTldIHZ4bGFuLCBncmUsIGdlbmV2ZTogU2V0IGEgbGFyZ2UgTVRV IG9uIG92cy1jcmVhdGVkCiB0dW5uZWwgZGV2aWNlcwoKWyBVcHN0cmVhbSBjb21taXQgN2UwNTkx NThkNTdiNzkxNTllYWYxZjUwNDgyNWQxOTg2NmVmMmM0MiBdCgpQcmlvciB0byA0LjMsIG9wZW52 c3dpdGNoIHR1bm5lbCB2cG9ydHMgKHZ4bGFuLCBncmUgYW5kIGdlbmV2ZSkgY291bGQKdHJhbnNt aXQgdnhsYW4gcGFja2V0cyBvZiBhbnkgc2l6ZSwgY29uc3RyYWluZWQgb25seSBieSB0aGUgYWJp bGl0eSB0bwpzZW5kIG91dCB0aGUgcmVzdWx0aW5nIHBhY2tldHMuICA0LjMgaW50cm9kdWNlZCBu ZXRkZXZzIGNvcnJlc3BvbmRpbmcKdG8gdHVubmVsIHZwb3J0cy4gIFRoZXNlIG5ldGRldnMgaGF2 ZSBhbiBNVFUsIHdoaWNoIGxpbWl0cyB0aGUgc2l6ZSBvZgphIHBhY2tldCB0aGF0IGNhbiBiZSBz dWNjZXNzZnVsbHkgZW5jYXBzdWxhdGVkLiAgVGhlIGRlZmF1bHQgTVRVCnZhbHVlcyBhcmUgbG93 ICgxNTAwIG9yIGxlc3MpLCB3aGljaCBpcyBhd2t3YXJkbHkgc21hbGwgaW4gdGhlIGNvbnRleHQK b2YgcGh5c2ljYWwgbmV0d29ya3Mgc3VwcG9ydGluZyBqdW1ibyBmcmFtZXMsIGFuZCBsZWFkcyB0 byBhCmNvbnNwaWN1b3VzIGNoYW5nZSBpbiBiZWhhdmlvdXIgZm9yIHVzZXJzcGFjZS4KCkluc3Rl YWQsIHNldCB0aGUgTVRVIG9uIG9wZW52c3dpdGNoLWNyZWF0ZWQgbmV0ZGV2cyB0byBiZSB0aGUg cmVsZXZhbnQKbWF4aW11bSAoaS5lLiB0aGUgbWF4aW11bSBJUCBwYWNrZXQgc2l6ZSBtaW51cyBh bnkgcmVsZXZhbnQgb3ZlcmhlYWQpLAplZmZlY3RpdmVseSByZXN0b3JpbmcgdGhlIGJlaGF2aW91 ciBwcmlvciB0byA0LjMuCgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBXcmFnZyA8ZGF2aWRAd2VhdmUu d29ya3M+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL25ldC9nZW5ldmUuYyAgICAgICAgICB8IDE4ICsrKysrKysrKysrKysr LS0tLQogZHJpdmVycy9uZXQvdnhsYW4uYyAgICAgICAgICAgfCAxMSArKysrKysrKy0tLQogaW5j bHVkZS9uZXQvaXBfdHVubmVscy5oICAgICAgfCAgMSArCiBuZXQvaXB2NC9pcF9ncmUuYyAgICAg ICAgICAgICB8ICA4ICsrKysrKysrCiBuZXQvaXB2NC9pcF90dW5uZWwuYyAgICAgICAgICB8IDIw ICsrKysrKysrKysrKysrKysrLS0tCiBuZXQvb3BlbnZzd2l0Y2gvdnBvcnQtdnhsYW4uYyB8ICAy ICsrCiA2IGZpbGVzIGNoYW5nZWQsIDUwIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2dlbmV2ZS5jIGIvZHJpdmVycy9uZXQvZ2VuZXZlLmMK aW5kZXggMjQwNjIwYy4uNjllMzFlMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZ2VuZXZlLmMK KysrIGIvZHJpdmVycy9uZXQvZ2VuZXZlLmMKQEAgLTEzNTYsMTEgKzEzNTYsMjEgQEAgc3RydWN0 IG5ldF9kZXZpY2UgKmdlbmV2ZV9kZXZfY3JlYXRlX2ZiKHN0cnVjdCBuZXQgKm5ldCwgY29uc3Qg Y2hhciAqbmFtZSwKIAogCWVyciA9IGdlbmV2ZV9jb25maWd1cmUobmV0LCBkZXYsICZnZW5ldmVf cmVtb3RlX3Vuc3BlYywKIAkJCSAgICAgICAwLCAwLCAwLCBodG9ucyhkc3RfcG9ydCksIHRydWUp OwotCWlmIChlcnIpIHsKLQkJZnJlZV9uZXRkZXYoZGV2KTsKLQkJcmV0dXJuIEVSUl9QVFIoZXJy KTsKLQl9CisJaWYgKGVycikKKwkJZ290byBlcnI7CisKKwkvKiBvcGVudnN3aXRjaCB1c2VycyBl eHBlY3QgcGFja2V0IHNpemVzIHRvIGJlIHVucmVzdHJpY3RlZCwKKwkgKiBzbyBzZXQgdGhlIGxh cmdlc3QgTVRVIHdlIGNhbi4KKwkgKi8KKwllcnIgPSBnZW5ldmVfY2hhbmdlX210dShkZXYsIElQ X01BWF9NVFUpOworCWlmIChlcnIpCisJCWdvdG8gZXJyOworCiAJcmV0dXJuIGRldjsKKworIGVy cjoKKwlmcmVlX25ldGRldihkZXYpOworCXJldHVybiBFUlJfUFRSKGVycik7CiB9CiBFWFBPUlRf U1lNQk9MX0dQTChnZW5ldmVfZGV2X2NyZWF0ZV9mYik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3Z4bGFuLmMgYi9kcml2ZXJzL25ldC92eGxhbi5jCmluZGV4IDJmNDRiYzUuLjAwMzc4MDkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3Z4bGFuLmMKKysrIGIvZHJpdmVycy9uZXQvdnhsYW4u YwpAQCAtMjc3Niw2ICsyNzc2LDcgQEAgc3RhdGljIGludCB2eGxhbl9kZXZfY29uZmlndXJlKHN0 cnVjdCBuZXQgKnNyY19uZXQsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJaW50IGVycjsKIAli b29sIHVzZV9pcHY2ID0gZmFsc2U7CiAJX19iZTE2IGRlZmF1bHRfcG9ydCA9IHZ4bGFuLT5jZmcu ZHN0X3BvcnQ7CisJc3RydWN0IG5ldF9kZXZpY2UgKmxvd2VyZGV2ID0gTlVMTDsKIAogCXZ4bGFu LT5uZXQgPSBzcmNfbmV0OwogCkBAIC0yNzk2LDkgKzI3OTcsNyBAQCBzdGF0aWMgaW50IHZ4bGFu X2Rldl9jb25maWd1cmUoc3RydWN0IG5ldCAqc3JjX25ldCwgc3RydWN0IG5ldF9kZXZpY2UgKmRl diwKIAl9CiAKIAlpZiAoY29uZi0+cmVtb3RlX2lmaW5kZXgpIHsKLQkJc3RydWN0IG5ldF9kZXZp Y2UgKmxvd2VyZGV2Ci0JCQkgPSBfX2Rldl9nZXRfYnlfaW5kZXgoc3JjX25ldCwgY29uZi0+cmVt b3RlX2lmaW5kZXgpOwotCisJCWxvd2VyZGV2ID0gX19kZXZfZ2V0X2J5X2luZGV4KHNyY19uZXQs IGNvbmYtPnJlbW90ZV9pZmluZGV4KTsKIAkJZHN0LT5yZW1vdGVfaWZpbmRleCA9IGNvbmYtPnJl bW90ZV9pZmluZGV4OwogCiAJCWlmICghbG93ZXJkZXYpIHsKQEAgLTI4MjIsNiArMjgyMSwxMiBA QCBzdGF0aWMgaW50IHZ4bGFuX2Rldl9jb25maWd1cmUoc3RydWN0IG5ldCAqc3JjX25ldCwgc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJbmVlZGVkX2hlYWRyb29tID0gbG93ZXJkZXYtPmhhcmRf aGVhZGVyX2xlbjsKIAl9CiAKKwlpZiAoY29uZi0+bXR1KSB7CisJCWVyciA9IF9fdnhsYW5fY2hh bmdlX210dShkZXYsIGxvd2VyZGV2LCBkc3QsIGNvbmYtPm10dSwgZmFsc2UpOworCQlpZiAoZXJy KQorCQkJcmV0dXJuIGVycjsKKwl9CisKIAlpZiAodXNlX2lwdjYgfHwgY29uZi0+ZmxhZ3MgJiBW WExBTl9GX0NPTExFQ1RfTUVUQURBVEEpCiAJCW5lZWRlZF9oZWFkcm9vbSArPSBWWExBTjZfSEVB RFJPT007CiAJZWxzZQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaXBfdHVubmVscy5oIGIvaW5j bHVkZS9uZXQvaXBfdHVubmVscy5oCmluZGV4IDYyYTc1MGEuLmFmNDBiYzUgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvbmV0L2lwX3R1bm5lbHMuaAorKysgYi9pbmNsdWRlL25ldC9pcF90dW5uZWxzLmgK QEAgLTIzMCw2ICsyMzAsNyBAQCB2b2lkIGlwX3R1bm5lbF94bWl0KHN0cnVjdCBza19idWZmICpz a2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiBpbnQgaXBfdHVubmVsX2lvY3RsKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBpcF90dW5uZWxfcGFybSAqcCwgaW50IGNtZCk7CiBpbnQg aXBfdHVubmVsX2VuY2FwKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBpcF90dW5uZWwgKnQs CiAJCSAgICB1OCAqcHJvdG9jb2wsIHN0cnVjdCBmbG93aTQgKmZsNCk7CitpbnQgX19pcF90dW5u ZWxfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgbmV3X210dSwgYm9vbCBz dHJpY3QpOwogaW50IGlwX3R1bm5lbF9jaGFuZ2VfbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYs IGludCBuZXdfbXR1KTsKIAogc3RydWN0IHJ0bmxfbGlua19zdGF0czY0ICppcF90dW5uZWxfZ2V0 X3N0YXRzNjQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lw X2dyZS5jIGIvbmV0L2lwdjQvaXBfZ3JlLmMKaW5kZXggN2RjOTYyYi4uM2U0MTg0MCAxMDA2NDQK LS0tIGEvbmV0L2lwdjQvaXBfZ3JlLmMKKysrIGIvbmV0L2lwdjQvaXBfZ3JlLmMKQEAgLTEyNDcs NiArMTI0NywxNCBAQCBzdHJ1Y3QgbmV0X2RldmljZSAqZ3JldGFwX2ZiX2Rldl9jcmVhdGUoc3Ry dWN0IG5ldCAqbmV0LCBjb25zdCBjaGFyICpuYW1lLAogCWVyciA9IGlwZ3JlX25ld2xpbmsobmV0 LCBkZXYsIHRiLCBOVUxMKTsKIAlpZiAoZXJyIDwgMCkKIAkJZ290byBvdXQ7CisKKwkvKiBvcGVu dnN3aXRjaCB1c2VycyBleHBlY3QgcGFja2V0IHNpemVzIHRvIGJlIHVucmVzdHJpY3RlZCwKKwkg KiBzbyBzZXQgdGhlIGxhcmdlc3QgTVRVIHdlIGNhbi4KKwkgKi8KKwllcnIgPSBfX2lwX3R1bm5l bF9jaGFuZ2VfbXR1KGRldiwgSVBfTUFYX01UVSwgZmFsc2UpOworCWlmIChlcnIpCisJCWdvdG8g b3V0OworCiAJcmV0dXJuIGRldjsKIG91dDoKIAlmcmVlX25ldGRldihkZXYpOwpkaWZmIC0tZ2l0 IGEvbmV0L2lwdjQvaXBfdHVubmVsLmMgYi9uZXQvaXB2NC9pcF90dW5uZWwuYwppbmRleCBjZTMw YzhiLi4zMzEwYWM3IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcF90dW5uZWwuYworKysgYi9uZXQv aXB2NC9pcF90dW5uZWwuYwpAQCAtOTQ4LDE3ICs5NDgsMzEgQEAgZG9uZToKIH0KIEVYUE9SVF9T WU1CT0xfR1BMKGlwX3R1bm5lbF9pb2N0bCk7CiAKLWludCBpcF90dW5uZWxfY2hhbmdlX210dShz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgbmV3X210dSkKK2ludCBfX2lwX3R1bm5lbF9jaGFu Z2VfbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBuZXdfbXR1LCBib29sIHN0cmljdCkK IHsKIAlzdHJ1Y3QgaXBfdHVubmVsICp0dW5uZWwgPSBuZXRkZXZfcHJpdihkZXYpOwogCWludCB0 X2hsZW4gPSB0dW5uZWwtPmhsZW4gKyBzaXplb2Yoc3RydWN0IGlwaGRyKTsKKwlpbnQgbWF4X210 dSA9IDB4RkZGOCAtIGRldi0+aGFyZF9oZWFkZXJfbGVuIC0gdF9obGVuOwogCi0JaWYgKG5ld19t dHUgPCA2OCB8fAotCSAgICBuZXdfbXR1ID4gMHhGRkY4IC0gZGV2LT5oYXJkX2hlYWRlcl9sZW4g LSB0X2hsZW4pCisJaWYgKG5ld19tdHUgPCA2OCkKIAkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAo bmV3X210dSA+IG1heF9tdHUpIHsKKwkJaWYgKHN0cmljdCkKKwkJCXJldHVybiAtRUlOVkFMOwor CisJCW5ld19tdHUgPSBtYXhfbXR1OworCX0KKwogCWRldi0+bXR1ID0gbmV3X210dTsKIAlyZXR1 cm4gMDsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKF9faXBfdHVubmVsX2NoYW5nZV9tdHUpOworCitp bnQgaXBfdHVubmVsX2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IG5ld19t dHUpCit7CisJcmV0dXJuIF9faXBfdHVubmVsX2NoYW5nZV9tdHUoZGV2LCBuZXdfbXR1LCB0cnVl KTsKK30KIEVYUE9SVF9TWU1CT0xfR1BMKGlwX3R1bm5lbF9jaGFuZ2VfbXR1KTsKIAogc3RhdGlj IHZvaWQgaXBfdHVubmVsX2Rldl9mcmVlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCmRpZmYgLS1n aXQgYS9uZXQvb3BlbnZzd2l0Y2gvdnBvcnQtdnhsYW4uYyBiL25ldC9vcGVudnN3aXRjaC92cG9y dC12eGxhbi5jCmluZGV4IGQ5MzNjYjguLjVlYjc2OTQgMTAwNjQ0Ci0tLSBhL25ldC9vcGVudnN3 aXRjaC92cG9ydC12eGxhbi5jCisrKyBiL25ldC9vcGVudnN3aXRjaC92cG9ydC12eGxhbi5jCkBA IC05MSw2ICs5MSw4IEBAIHN0YXRpYyBzdHJ1Y3QgdnBvcnQgKnZ4bGFuX3RubF9jcmVhdGUoY29u c3Qgc3RydWN0IHZwb3J0X3Bhcm1zICpwYXJtcykKIAlzdHJ1Y3QgdnhsYW5fY29uZmlnIGNvbmYg PSB7CiAJCS5ub19zaGFyZSA9IHRydWUsCiAJCS5mbGFncyA9IFZYTEFOX0ZfQ09MTEVDVF9NRVRB REFUQSB8IFZYTEFOX0ZfVURQX1pFUk9fQ1NVTTZfUlgsCisJCS8qIERvbid0IHJlc3RyaWN0IHRo ZSBwYWNrZXRzIHRoYXQgY2FuIGJlIHNlbnQgYnkgTVRVICovCisJCS5tdHUgPSBJUF9NQVhfTVRV LAogCX07CiAKIAlpZiAoIW9wdGlvbnMpIHsKLS0gCjIuMS4wCgo= ----Next_Part(Fri_Jun_17_00_03_46_2016_429)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_45.mbox" RnJvbSA0YzE2ZjcyZDY3OGViNTFlODdjYmUwOGFjZTMzYzRjZTZkMDdjMzVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIEFscGUgPHJpY2hhcmQuYWxwZUBlcmljc3Nvbi5j b20+CkRhdGU6IE1vbiwgMTYgTWF5IDIwMTYgMTE6MTQ6NTQgKzAyMDAKU3ViamVjdDogW1BBVENI IDAxLzIzXSB0aXBjOiBjaGVjayBubCBzb2NrIGJlZm9yZSBwYXJzaW5nIG5lc3RlZCBhdHRyaWJ1 dGVzCgpbIFVwc3RyZWFtIGNvbW1pdCA0NWUwOTNhZTI4MzBjZDEyNjQ2NzdkNDdmZjlhOTVhNzFm NWQ5ZjljIF0KCk1ha2Ugc3VyZSB0aGUgc29ja2V0IGZvciB3aGljaCB0aGUgdXNlciBpcyBsaXN0 aW5nIHB1YmxpY2F0aW9uIGV4aXN0cwpiZWZvcmUgcGFyc2luZyB0aGUgc29ja2V0IG5ldGxpbmsg YXR0cmlidXRlcy4KClByaW9yIHRvIHRoaXMgcGF0Y2ggYSBjYWxsIHdpdGhvdXQgYW55IHNvY2tl dCBjYXVzZWQgYSBOVUxMIHBvaW50ZXIKZGVyZWZlcmVuY2UgaW4gdGlwY19ubF9wdWJsX2R1bXAo KS4KClRlc3RlZC1hbmQtcmVwb3J0ZWQtYnk6IEJhb3plbmcgRGluZyA8c3Bsb3ZpbmcxQGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogUmljaGFyZCBBbHBlIDxyaWNoYXJkLmFscGVAZXJpY3Nzb24u Y29tPgpBY2tlZC1ieTogSm9uIE1hbG95IDxqb24ubWFsb3lAZXJpY3Nzb24uY20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlw Yy9zb2NrZXQuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvbmV0L3RpcGMvc29ja2V0LmMgYi9uZXQvdGlwYy9zb2NrZXQuYwppbmRleCA0ZDQy MGJiLi5lYTA2ZjkxIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9zb2NrZXQuYworKysgYi9uZXQvdGlw Yy9zb2NrZXQuYwpAQCAtMjgxNCw2ICsyODE0LDkgQEAgaW50IHRpcGNfbmxfcHVibF9kdW1wKHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYikKIAkJaWYgKGVy cikKIAkJCXJldHVybiBlcnI7CiAKKwkJaWYgKCFhdHRyc1tUSVBDX05MQV9TT0NLXSkKKwkJCXJl dHVybiAtRUlOVkFMOworCiAJCWVyciA9IG5sYV9wYXJzZV9uZXN0ZWQoc29jaywgVElQQ19OTEFf U09DS19NQVgsCiAJCQkJICAgICAgIGF0dHJzW1RJUENfTkxBX1NPQ0tdLAogCQkJCSAgICAgICB0 aXBjX25sX3NvY2tfcG9saWN5KTsKLS0gCjIuMS4wCgoKRnJvbSAzZDE2N2M4Y2E2ZDU3NzIxOWQw YzJlYzczYmZmOTFhNGVkY2EzZGVjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZXJi ZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CkRhdGU6IE1vbiwgMTYgTWF5IDIw MTYgMTc6Mjg6MTYgKzA4MDAKU3ViamVjdDogW1BBVENIIDAyLzIzXSBuZXRsaW5rOiBGaXggZHVt cCBza2IgbGVhay9kb3VibGUgZnJlZQoKWyBVcHN0cmVhbSBjb21taXQgOTI5NjRjNzliMzU3ZWZk OTgwODEyYzRkZTVjMWZkMmVjOGJiNTUyMCBdCgpXaGVuIHdlIGZyZWUgY2ItPnNrYiBhZnRlciBh IGR1bXAsIHdlIGRvIGl0IGFmdGVyIHJlbGVhc2luZyB0aGUKbG9jay4gIFRoaXMgbWVhbnMgdGhh dCBhIG5ldyBkdW1wIGNvdWxkIGhhdmUgc3RhcnRlZCBpbiB0aGUgdGltZQpiZWluZyBhbmQgd2Un bGwgZW5kIHVwIGZyZWVpbmcgdGhlaXIgc2tiIGluc3RlYWQgb2Ygb3Vycy4KClRoaXMgcGF0Y2gg c2F2ZXMgdGhlIHNrYiBhbmQgbW9kdWxlIGJlZm9yZSB3ZSB1bmxvY2sgc28gd2UgZnJlZQp0aGUg cmlnaHQgbWVtb3J5LgoKRml4ZXM6IDE2YjMwNGYzNDA0ZiAoIm5ldGxpbms6IEVsaW1pbmF0ZSBr bWFsbG9jIGluIG5ldGxpbmsgZHVtcCBvcGVyYXRpb24uIikKUmVwb3J0ZWQtYnk6IEJhb3plbmcg RGluZyA8c3Bsb3ZpbmcxQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSGVyYmVydCBYdSA8aGVy YmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpBY2tlZC1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5n Y29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmMgfCA3ICsrKysrLS0KIDEg ZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jIGIvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCmlu ZGV4IGQyYmMwM2YuLjQ1ZGQ1ZTMgMTAwNjQ0Ci0tLSBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsu YworKysgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKQEAgLTI3ODQsNiArMjc4NCw3IEBAIHN0 YXRpYyBpbnQgbmV0bGlua19kdW1wKHN0cnVjdCBzb2NrICpzaykKIAlzdHJ1Y3QgbmV0bGlua19j YWxsYmFjayAqY2I7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYiA9IE5VTEw7CiAJc3RydWN0IG5sbXNn aGRyICpubGg7CisJc3RydWN0IG1vZHVsZSAqbW9kdWxlOwogCWludCBsZW4sIGVyciA9IC1FTk9C VUZTOwogCWludCBhbGxvY19taW5fc2l6ZTsKIAlpbnQgYWxsb2Nfc2l6ZTsKQEAgLTI4NjQsOSAr Mjg2NSwxMSBAQCBzdGF0aWMgaW50IG5ldGxpbmtfZHVtcChzdHJ1Y3Qgc29jayAqc2spCiAJCWNi LT5kb25lKGNiKTsKIAogCW5say0+Y2JfcnVubmluZyA9IGZhbHNlOworCW1vZHVsZSA9IGNiLT5t b2R1bGU7CisJc2tiID0gY2ItPnNrYjsKIAltdXRleF91bmxvY2sobmxrLT5jYl9tdXRleCk7Ci0J bW9kdWxlX3B1dChjYi0+bW9kdWxlKTsKLQljb25zdW1lX3NrYihjYi0+c2tiKTsKKwltb2R1bGVf cHV0KG1vZHVsZSk7CisJY29uc3VtZV9za2Ioc2tiKTsKIAlyZXR1cm4gMDsKIAogZXJyb3V0X3Nr YjoKLS0gCjIuMS4wCgoKRnJvbSA4ODA4MGI1N2ZkYmQwNWI5ZmU5ZThlNWNkOGI4YzI5NzNkMDM1 YTNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIEFscGUgPHJpY2hhcmQu YWxwZUBlcmljc3Nvbi5jb20+CkRhdGU6IFR1ZSwgMTcgTWF5IDIwMTYgMTY6NTc6MzcgKzAyMDAK U3ViamVjdDogW1BBVENIIDAzLzIzXSB0aXBjOiBmaXggbmFtZXRhYmxlIHB1YmxpY2F0aW9uIGZp ZWxkIGluIG5sIGNvbXBhdAoKWyBVcHN0cmVhbSBjb21taXQgMDNhYWFhOWI5NDFlMTM2NzU3YjU1 YzRjZjc3NWFhYjYwNjhkZmQ5NCBdCgpUaGUgcHVibGljYXRpb24gZmllbGQgb2YgdGhlIG9sZCBu ZXRsaW5rIEFQSSBzaG91bGQgY29udGFpbiB0aGUKcHVibGljYXRpb24ga2V5IGFuZCBub3QgdGhl IHB1YmxpY2F0aW9uIHJlZmVyZW5jZS4KCkZpeGVzOiA0NGE4YWU5NGZkNTUgKHRpcGM6IGNvbnZl cnQgbGVnYWN5IG5sIG5hbWUgdGFibGUgZHVtcCB0byBubCBjb21wYXQpClNpZ25lZC1vZmYtYnk6 IFJpY2hhcmQgQWxwZSA8cmljaGFyZC5hbHBlQGVyaWNzc29uLmNvbT4KQWNrZWQtYnk6IEpvbiBN YWxveSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL25ldGxpbmtfY29tcGF0LmMg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9uZXQvdGlwYy9uZXRsaW5rX2NvbXBhdC5jIGIvbmV0L3RpcGMvbmV0bGlua19j b21wYXQuYwppbmRleCAyYzAxNmZkLi5hZTU4YTZiIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9uZXRs aW5rX2NvbXBhdC5jCisrKyBiL25ldC90aXBjL25ldGxpbmtfY29tcGF0LmMKQEAgLTgwMiw3ICs4 MDIsNyBAQCBzdGF0aWMgaW50IHRpcGNfbmxfY29tcGF0X25hbWVfdGFibGVfZHVtcChzdHJ1Y3Qg dGlwY19ubF9jb21wYXRfbXNnICptc2csCiAJCWdvdG8gb3V0OwogCiAJdGlwY190bHZfc3ByaW50 Zihtc2ctPnJlcCwgIiUtMTB1ICVzIiwKLQkJCSBubGFfZ2V0X3UzMihwdWJsW1RJUENfTkxBX1BV QkxfUkVGXSksCisJCQkgbmxhX2dldF91MzIocHVibFtUSVBDX05MQV9QVUJMX0tFWV0pLAogCQkJ IHNjb3BlX3N0cltubGFfZ2V0X3UzMihwdWJsW1RJUENfTkxBX1BVQkxfU0NPUEVdKV0pOwogb3V0 OgogCXRpcGNfdGx2X3NwcmludGYobXNnLT5yZXAsICJcbiIpOwotLSAKMi4xLjAKCgpGcm9tIDRk N2Q3MGEzY2VhMTQxMGRkMjhlZTUyNTllN2JiYThiYzBlMDE5NjUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEppcmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpEYXRlOiBUdWUsIDE3 IE1heSAyMDE2IDE4OjU4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNC8yM10gc3dpdGNoZGV2 OiBwYXNzIHBvaW50ZXIgdG8gZmliX2luZm8gaW5zdGVhZCBvZiBjb3B5CgpbIFVwc3RyZWFtIGNv bW1pdCBkYTRlZDU1MTY1ZDQxYjEwNzNmOWE0NzZmMWMxODQ5M2U5YmY4YzhlIF0KClRoZSBwcm9i bGVtIGlzIHRoYXQgZmliX2luZm8tPm5oIGlzIFswXSBzbyB0aGUgc3RydWN0IGZpYl9pbmZvCmFs bG9jYXRpb24gc2l6ZSBkZXBlbmRzIG9uIG51bWJlciBvZiBuZXh0aG9wcy4gSWYgd2UganVzdCBj b3B5IGZpYl9pbmZvLAp3ZSBkbyBub3QgY29weSB0aGUgbmV4dGhvcHMgaW5mbyBhbmQgZHJpdmVy IGFjY2Vzc2VzIG1lbW9yeSB3aGljaCBpcyBub3QKb3Vycy4KCkdpdmVuIHRoZSBmYWN0IHRoYXQg ZmliNCBkb2VzIG5vdCBkZWZlciBvcGVyYXRpb25zIGFuZCB0aGVyZWZvcmUgaXQgZG9lcwpub3Qg bmVlZCBjb3B5LCBqdXN0IHBhc3MgdGhlIHBvaW50ZXIgZG93biB0byBkcml2ZXJzIGFzIGl0IHdh cyBkb25lCmJlZm9yZS4KCkZpeGVzOiA4NTBkMGNiYzkxICgic3dpdGNoZGV2OiByZW1vdmUgcG9p bnRlcnMgZnJvbSBzd2l0Y2hkZXYgb2JqZWN0cyIpClNpZ25lZC1vZmYtYnk6IEppcmkgUGlya28g PGppcmlAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvcm9ja2VyL3JvY2tlci5j IHwgNCArKy0tCiBpbmNsdWRlL25ldC9zd2l0Y2hkZXYuaCAgICAgICAgICAgICAgfCAyICstCiBu ZXQvc3dpdGNoZGV2L3N3aXRjaGRldi5jICAgICAgICAgICAgfCA2ICsrLS0tLQogMyBmaWxlcyBj aGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvcm9ja2VyL3JvY2tlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv cm9ja2VyL3JvY2tlci5jCmluZGV4IGYzOWU3MTkuLjRmNDJlNTggMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L3JvY2tlci9yb2NrZXIuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9yb2NrZXIvcm9ja2VyLmMKQEAgLTQ0NzUsNyArNDQ3NSw3IEBAIHN0YXRpYyBpbnQgcm9ja2Vy X3BvcnRfb2JqX2FkZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQlmaWI0ID0gU1dJVENIREVW X09CSl9JUFY0X0ZJQihvYmopOwogCQllcnIgPSByb2NrZXJfcG9ydF9maWJfaXB2NChyb2NrZXJf cG9ydCwgdHJhbnMsCiAJCQkJCSAgIGh0b25sKGZpYjQtPmRzdCksIGZpYjQtPmRzdF9sZW4sCi0J CQkJCSAgICZmaWI0LT5maSwgZmliNC0+dGJfaWQsIDApOworCQkJCQkgICBmaWI0LT5maSwgZmli NC0+dGJfaWQsIDApOwogCQlicmVhazsKIAljYXNlIFNXSVRDSERFVl9PQkpfSURfUE9SVF9GREI6 CiAJCWVyciA9IHJvY2tlcl9wb3J0X2ZkYl9hZGQocm9ja2VyX3BvcnQsIHRyYW5zLApAQCAtNDU0 Nyw3ICs0NTQ3LDcgQEAgc3RhdGljIGludCByb2NrZXJfcG9ydF9vYmpfZGVsKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsCiAJCWZpYjQgPSBTV0lUQ0hERVZfT0JKX0lQVjRfRklCKG9iaik7CiAJCWVy ciA9IHJvY2tlcl9wb3J0X2ZpYl9pcHY0KHJvY2tlcl9wb3J0LCBOVUxMLAogCQkJCQkgICBodG9u bChmaWI0LT5kc3QpLCBmaWI0LT5kc3RfbGVuLAotCQkJCQkgICAmZmliNC0+ZmksIGZpYjQtPnRi X2lkLAorCQkJCQkgICBmaWI0LT5maSwgZmliNC0+dGJfaWQsCiAJCQkJCSAgIFJPQ0tFUl9PUF9G TEFHX1JFTU9WRSk7CiAJCWJyZWFrOwogCWNhc2UgU1dJVENIREVWX09CSl9JRF9QT1JUX0ZEQjoK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3N3aXRjaGRldi5oIGIvaW5jbHVkZS9uZXQvc3dpdGNo ZGV2LmgKaW5kZXggZDQ1MTEyMi4uYTc1ZDc5NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc3dp dGNoZGV2LmgKKysrIGIvaW5jbHVkZS9uZXQvc3dpdGNoZGV2LmgKQEAgLTkzLDcgKzkzLDcgQEAg c3RydWN0IHN3aXRjaGRldl9vYmpfaXB2NF9maWIgewogCXN0cnVjdCBzd2l0Y2hkZXZfb2JqIG9i ajsKIAl1MzIgZHN0OwogCWludCBkc3RfbGVuOwotCXN0cnVjdCBmaWJfaW5mbyBmaTsKKwlzdHJ1 Y3QgZmliX2luZm8gKmZpOwogCXU4IHRvczsKIAl1OCB0eXBlOwogCXUzMiBubGZsYWdzOwpkaWZm IC0tZ2l0IGEvbmV0L3N3aXRjaGRldi9zd2l0Y2hkZXYuYyBiL25ldC9zd2l0Y2hkZXYvc3dpdGNo ZGV2LmMKaW5kZXggOGI1ODMzYy4uMDAyY2M4NSAxMDA2NDQKLS0tIGEvbmV0L3N3aXRjaGRldi9z d2l0Y2hkZXYuYworKysgYi9uZXQvc3dpdGNoZGV2L3N3aXRjaGRldi5jCkBAIC0xMTgyLDYgKzEx ODIsNyBAQCBpbnQgc3dpdGNoZGV2X2ZpYl9pcHY0X2FkZCh1MzIgZHN0LCBpbnQgZHN0X2xlbiwg c3RydWN0IGZpYl9pbmZvICpmaSwKIAkJLm9iai5pZCA9IFNXSVRDSERFVl9PQkpfSURfSVBWNF9G SUIsCiAJCS5kc3QgPSBkc3QsCiAJCS5kc3RfbGVuID0gZHN0X2xlbiwKKwkJLmZpID0gZmksCiAJ CS50b3MgPSB0b3MsCiAJCS50eXBlID0gdHlwZSwKIAkJLm5sZmxhZ3MgPSBubGZsYWdzLApAQCAt MTE5MCw4ICsxMTkxLDYgQEAgaW50IHN3aXRjaGRldl9maWJfaXB2NF9hZGQodTMyIGRzdCwgaW50 IGRzdF9sZW4sIHN0cnVjdCBmaWJfaW5mbyAqZmksCiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldjsK IAlpbnQgZXJyID0gMDsKIAotCW1lbWNweSgmaXB2NF9maWIuZmksIGZpLCBzaXplb2YoaXB2NF9m aWIuZmkpKTsKLQogCS8qIERvbid0IG9mZmxvYWQgcm91dGUgaWYgdXNpbmcgY3VzdG9tIGlwIHJ1 bGVzIG9yIGlmCiAJICogSVB2NCBGSUIgb2ZmbG9hZGluZyBoYXMgYmVlbiBkaXNhYmxlZCBjb21w bGV0ZWx5LgogCSAqLwpAQCAtMTIzNiw2ICsxMjM1LDcgQEAgaW50IHN3aXRjaGRldl9maWJfaXB2 NF9kZWwodTMyIGRzdCwgaW50IGRzdF9sZW4sIHN0cnVjdCBmaWJfaW5mbyAqZmksCiAJCS5vYmou aWQgPSBTV0lUQ0hERVZfT0JKX0lEX0lQVjRfRklCLAogCQkuZHN0ID0gZHN0LAogCQkuZHN0X2xl biA9IGRzdF9sZW4sCisJCS5maSA9IGZpLAogCQkudG9zID0gdG9zLAogCQkudHlwZSA9IHR5cGUs CiAJCS5ubGZsYWdzID0gMCwKQEAgLTEyNDQsOCArMTI0NCw2IEBAIGludCBzd2l0Y2hkZXZfZmli X2lwdjRfZGVsKHUzMiBkc3QsIGludCBkc3RfbGVuLCBzdHJ1Y3QgZmliX2luZm8gKmZpLAogCXN0 cnVjdCBuZXRfZGV2aWNlICpkZXY7CiAJaW50IGVyciA9IDA7CiAKLQltZW1jcHkoJmlwdjRfZmli LmZpLCBmaSwgc2l6ZW9mKGlwdjRfZmliLmZpKSk7Ci0KIAlpZiAoIShmaS0+ZmliX2ZsYWdzICYg UlROSF9GX09GRkxPQUQpKQogCQlyZXR1cm4gMDsKIAotLSAKMi4xLjAKCgpGcm9tIDJlZDk1MWEz Yjk3NDNiMjgwYjc0MzA4NDlkNDEyN2QyYWZkNTM2MTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+CkRhdGU6IFRodSwgMTkgTWF5 IDIwMTYgMTM6MzY6NTEgKzA4MDAKU3ViamVjdDogW1BBVENIIDA1LzIzXSB0dW50YXA6IGNvcnJl Y3RseSB3YWtlIHVwIHByb2Nlc3MgZHVyaW5nIHVuaW5pdAoKWyBVcHN0cmVhbSBjb21taXQgYWRk ZjhmYzRhY2IxY2Y3OTQ5MmFjNjQ5NjZmMDcxNzg3OTNjYjNkNyBdCgpXZSB1c2VkIHRvIGNoZWNr IGRldi0+cmVnX3N0YXRlIGFnYWluc3QgTkVUUkVHX1JFR0lTVEVSRUQgYWZ0ZXIgZWFjaAp0aW1l IHdlIGFyZSB3b2tlIHVwLiBCdXQgYWZ0ZXIgY29tbWl0IDllNjQxYmRjZmE0ZSAoIm5ldC10dW46 CnJlc3RydWN0dXJlIHR1bl9kb19yZWFkIGZvciBiZXR0ZXIgc2xlZXAvd2FrZXVwIGVmZmljaWVu Y3kiKSwgaXQgdXNlcwpza2JfcmVjdl9kYXRhZ3JhbSgpIHdoaWNoIGRvZXMgbm90IGNoZWNrIGRl di0+cmVnX3N0YXRlLiBUaGlzIHdpbGwKcmVzdWx0IGlmIHdlIGRlbGV0ZSBhIHR1bi90YXAgZGV2 aWNlIGFmdGVyIGEgcHJvY2VzcyBpcyBibG9ja2VkIGluIHRoZQpyZWFkaW5nLiBUaGUgZGV2aWNl IHdpbGwgd2FpdCBmb3IgdGhlIHJlZmVyZW5jZSBjb3VudCB3aGljaCB3YXMgaGVsZApieSB0aGF0 IHByb2Nlc3MgZm9yIGV2ZXIuCgpGaXhlcyB0aGlzIGJ5IHVzaW5nIFJDVl9TSFVURE9XTiB3aGlj aCB3aWxsIGJlIGNoZWNrZWQgZHVyaW5nCnNrX3JlY3ZfZGF0YWdyYW0oKSBiZWZvcmUgdHJ5aW5n IHRvIHdha2UgdXAgdGhlIHByb2Nlc3MgZHVyaW5nIHVuaW5pdC4KCkZpeGVzOiA5ZTY0MWJkY2Zh NGUgKCJuZXQtdHVuOiByZXN0cnVjdHVyZSB0dW5fZG9fcmVhZCBmb3IgYmV0dGVyCnNsZWVwL3dh a2V1cCBlZmZpY2llbmN5IikKQ2M6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4K Q2M6IFhpIFdhbmcgPHhpaUBnb29nbGUuY29tPgpDYzogTWljaGFlbCBTLiBUc2lya2luIDxtc3RA cmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNv bT4KQWNrZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6 IE1pY2hhZWwgUy4gVHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90dW4uYyB8 IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3R1bi5jIGIvZHJpdmVycy9uZXQvdHVuLmMKaW5k ZXggODFlY2MyZS4uN2EzODg0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdHVuLmMKKysrIGIv ZHJpdmVycy9uZXQvdHVuLmMKQEAgLTU2NywxMSArNTY3LDEzIEBAIHN0YXRpYyB2b2lkIHR1bl9k ZXRhY2hfYWxsKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJZm9yIChpID0gMDsgaSA8IG47IGkr KykgewogCQl0ZmlsZSA9IHJ0bmxfZGVyZWZlcmVuY2UodHVuLT50ZmlsZXNbaV0pOwogCQlCVUdf T04oIXRmaWxlKTsKKwkJdGZpbGUtPnNvY2tldC5zay0+c2tfc2h1dGRvd24gPSBSQ1ZfU0hVVERP V047CiAJCXRmaWxlLT5zb2NrZXQuc2stPnNrX2RhdGFfcmVhZHkodGZpbGUtPnNvY2tldC5zayk7 CiAJCVJDVV9JTklUX1BPSU5URVIodGZpbGUtPnR1biwgTlVMTCk7CiAJCS0tdHVuLT5udW1xdWV1 ZXM7CiAJfQogCWxpc3RfZm9yX2VhY2hfZW50cnkodGZpbGUsICZ0dW4tPmRpc2FibGVkLCBuZXh0 KSB7CisJCXRmaWxlLT5zb2NrZXQuc2stPnNrX3NodXRkb3duID0gUkNWX1NIVVRET1dOOwogCQl0 ZmlsZS0+c29ja2V0LnNrLT5za19kYXRhX3JlYWR5KHRmaWxlLT5zb2NrZXQuc2spOwogCQlSQ1Vf SU5JVF9QT0lOVEVSKHRmaWxlLT50dW4sIE5VTEwpOwogCX0KQEAgLTYyNyw2ICs2MjksNyBAQCBz dGF0aWMgaW50IHR1bl9hdHRhY2goc3RydWN0IHR1bl9zdHJ1Y3QgKnR1biwgc3RydWN0IGZpbGUg KmZpbGUsIGJvb2wgc2tpcF9maWx0ZQogCQkJZ290byBvdXQ7CiAJfQogCXRmaWxlLT5xdWV1ZV9p bmRleCA9IHR1bi0+bnVtcXVldWVzOworCXRmaWxlLT5zb2NrZXQuc2stPnNrX3NodXRkb3duICY9 IH5SQ1ZfU0hVVERPV047CiAJcmN1X2Fzc2lnbl9wb2ludGVyKHRmaWxlLT50dW4sIHR1bik7CiAJ cmN1X2Fzc2lnbl9wb2ludGVyKHR1bi0+dGZpbGVzW3R1bi0+bnVtcXVldWVzXSwgdGZpbGUpOwog CXR1bi0+bnVtcXVldWVzKys7CkBAIC0xNDExLDkgKzE0MTQsNiBAQCBzdGF0aWMgc3NpemVfdCB0 dW5fZG9fcmVhZChzdHJ1Y3QgdHVuX3N0cnVjdCAqdHVuLCBzdHJ1Y3QgdHVuX2ZpbGUgKnRmaWxl LAogCWlmICghaW92X2l0ZXJfY291bnQodG8pKQogCQlyZXR1cm4gMDsKIAotCWlmICh0dW4tPmRl di0+cmVnX3N0YXRlICE9IE5FVFJFR19SRUdJU1RFUkVEKQotCQlyZXR1cm4gLUVJTzsKLQogCS8q IFJlYWQgZnJhbWVzIGZyb20gcXVldWUgKi8KIAlza2IgPSBfX3NrYl9yZWN2X2RhdGFncmFtKHRm aWxlLT5zb2NrZXQuc2ssIG5vYmxvY2sgPyBNU0dfRE9OVFdBSVQgOiAwLAogCQkJCSAgJnBlZWtl ZCwgJm9mZiwgJmVycik7Ci0tIAoyLjEuMAoKCkZyb20gMGE1ODMyOGU2Y2YxYTBjYTgzY2Q2YmRm OTVjMzA5ZTBlZDBlNTcyOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIkVyaWMgVy4g QmllZGVybWFuIiA8ZWJpZWRlcm1AeG1pc3Npb24uY29tPgpEYXRlOiBGcmksIDIwIE1heSAyMDE2 IDE3OjIyOjQ4IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAwNi8yM10gYnBmOiBVc2UgbW91bnRfbm9k ZXYgbm90IG1vdW50X25zIHRvIG1vdW50IHRoZSBicGYKIGZpbGVzeXN0ZW0KClsgVXBzdHJlYW0g Y29tbWl0IGUyN2Y0YTk0MmEwZWU0Yjg0NTY3YTNjNmNmYTg0ZjI3M2U1NWNiYjcgXQoKV2hpbGUg cmV2aWV3aW5nIHRoZSBmaWxlc3lzdGVtcyB0aGF0IHNldCBGU19VU0VSTlNfTU9VTlQgSSBzcG90 dGVkIHRoZQpicGYgZmlsZXN5c3RlbS4gIExvb2tpbmcgYXQgdGhlIGNvZGUgSSBzYXcgYSBicm9r ZW4gdXNhZ2Ugb2YgbW91bnRfbnMKd2l0aCBjdXJyZW50LT5uc3Byb3h5LT5tbnRfbnMuIEFzIHRo ZSBjb2RlIGRvZXMgbm90IGFjcXVpcmUgYQpyZWZlcmVuY2UgdG8gdGhlIG1vdW50IG5hbWVzcGFj ZSBpdCBjYW4gbm90IHBvc3NpYmx5IGJlIGNvcnJlY3QgdG8Kc3RvcmUgdGhlIG1vdW50IG5hbWVz cGFjZSBvbiB0aGUgc3VwZXJibG9jayBhcyBpdCBkb2VzLgoKUmVwbGFjZSBtb3VudF9ucyB3aXRo IG1vdW50X25vZGV2IHNvIHRoYXQgZWFjaCBtb3VudCBvZiB0aGUgYnBmCmZpbGVzeXN0ZW0gcmV0 dXJucyBhIGRpc3RpbmN0IGluc3RhbmNlLCBhbmQgdGhlIGNvZGUgaXMgbm90IGJ1Z2d5LgoKSW4g ZGlzY3Vzc2lvbiB3aXRoIEhhbm5lcyBGcmVkZXJpYyBTb3dhIGl0IHdhcyByZXBvcnRlZCB0aGF0 IHRoZSB1c2UKb2YgbW91bnRfbnMgd2FzIGFuIGF0dGVtcHQgdG8gaGF2ZSBvbmUgYnBmIGluc3Rh bmNlIHBlciBtb3VudApuYW1lc3BhY2UsIGluIGFuIGF0dGVtcHQgdG8ga2VlcCByZXNvdXJjZXMg dGhhdCBwaW4gcmVzb3VyY2VzIGZyb20KaGlkaW5nLiAgVGhhdCBpbnRlbnQgc2ltcGx5IGRvZXMg bm90IHdvcmssIHRoZSB2ZnMgaXMgbm90IGJ1aWx0IHRvCmFsbG93IHRoYXQga2luZCBvZiBiZWhh dmlvci4gIFdoaWNoIG1lYW5zIHRoYXQgdGhlIGJwZiBmaWxlc3lzdGVtCnJlYWxseSBpcyBidWdn eSBib3RoIHNlbWFudGljYWxseSBhbmQgaW4gaXQncyBpbXBsZW1lbmF0aW9uIGFzIGl0IGRvZXMK bm90IG5vciBjYW4gaXQgaW1wbGVtZW50IHRoZSBvcmlnaW5hbCBpbnRlbnQuCgpUaGlzIGNoYW5n ZSBpcyB1c2Vyc3BhY2UgdmlzaWJsZSwgYnV0IG15IGV4cGVyaWVuY2Ugd2l0aCBzaW1pbGFyCmZp bGVzeXN0ZW1zIGxlYWRzIG1lIHRvIGJlbGlldmUgbm90aGluZyB3aWxsIGJyZWFrIHdpdGggYSBt b2RlbCBvZiBlYWNoCm1vdW50IG9mIHRoZSBicGYgZmlsZXN5c3RlbSBpcyBkaXN0aW5jdCBmcm9t IGFsbCBvdGhlcnMuCgpGaXhlczogYjIxOTc3NTViMjYzICgiYnBmOiBhZGQgc3VwcG9ydCBmb3Ig cGVyc2lzdGVudCBtYXBzL3Byb2dzIikKQ2M6IEhhbm5lcyBGcmVkZXJpYyBTb3dhIDxoYW5uZXNA c3RyZXNzaW5kdWt0aW9uLm9yZz4KQWNrZWQtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlv Z2VhcmJveC5uZXQ+ClNpZ25lZC1vZmYtYnk6ICJFcmljIFcuIEJpZWRlcm1hbiIgPGViaWVkZXJt QHhtaXNzaW9uLmNvbT4KQWNrZWQtYnk6IEhhbm5lcyBGcmVkZXJpYyBTb3dhIDxoYW5uZXNAc3Ry ZXNzaW5kdWt0aW9uLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGtlcm5lbC9icGYvaW5vZGUuYyB8IDIgKy0KIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2tlcm5lbC9i cGYvaW5vZGUuYyBiL2tlcm5lbC9icGYvaW5vZGUuYwppbmRleCA4Zjk0Y2ExLi41NWQ5MjM2IDEw MDY0NAotLS0gYS9rZXJuZWwvYnBmL2lub2RlLmMKKysrIGIva2VybmVsL2JwZi9pbm9kZS5jCkBA IC0zNzgsNyArMzc4LDcgQEAgc3RhdGljIGludCBicGZfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJf YmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogc3RhdGljIHN0cnVjdCBkZW50cnkg KmJwZl9tb3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqdHlwZSwgaW50IGZsYWdzLAogCQkJ CWNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lkICpkYXRhKQogewotCXJldHVybiBtb3VudF9ucyh0 eXBlLCBmbGFncywgY3VycmVudC0+bnNwcm94eS0+bW50X25zLCBicGZfZmlsbF9zdXBlcik7CisJ cmV0dXJuIG1vdW50X25vZGV2KHR5cGUsIGZsYWdzLCBkYXRhLCBicGZfZmlsbF9zdXBlcik7CiB9 CiAKIHN0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBicGZfZnNfdHlwZSA9IHsKLS0gCjIu MS4wCgoKRnJvbSBjMmUwOGQ2NTkyMmJlOGMzMjQxMDBlMGMzZWNkMTQ2OTRmMzY5ODMxIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYW5uZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0 cmVzc2luZHVrdGlvbi5vcmc+CkRhdGU6IFRodSwgMTkgTWF5IDIwMTYgMTU6NTg6MzMgKzAyMDAK U3ViamVjdDogW1BBVENIIDA3LzIzXSB1ZHA6IHByZXZlbnQgc2ticyBsaW5nZXJpbmcgaW4gdHVu bmVsIHNvY2tldCBxdWV1ZXMKClsgVXBzdHJlYW0gY29tbWl0IGU1YWVkMDA2YmU5MThhZjE2M2Vi Mzk3ZTQ1YWE1ZWE2Y2VmZDVlMDEgXQoKSW4gY2FzZSB3ZSBmaW5kIGEgc29ja2V0IHdpdGggZW5j YXBzdWxhdGlvbiBlbmFibGVkIHdlIHNob3VsZCBjYWxsCnRoZSBlbmNhcF9yZWN2IGZ1bmN0aW9u IGV2ZW4gaWYganVzdCBhIHVkcCBoZWFkZXIgd2l0aG91dCBwYXlsb2FkIGlzCmF2YWlsYWJsZS4g VGhlIGNhbGxiYWNrcyBhcmUgcmVzcG9uc2libGUgZm9yIGNvcnJlY3RseSB2ZXJpZnlpbmcgYW5k CmRyb3BwaW5nIHRoZSBwYWNrZXRzLgoKQWxzbywgaW4gY2FzZSB0aGUgaGVhZGVyIHZhbGlkYXRp b24gZmFpbHMgZm9yIGdlbmV2ZSBhbmQgdnhsYW4gd2UKc2hvdWxkbid0IHB1dCB0aGUgc2tiIGJh Y2sgaW50byB0aGUgc29ja2V0IHF1ZXVlLCBubyBvbmUgd2lsbCBwaWNrCnRoZW0gdXAgdGhlcmUu ICBJbnN0ZWFkIHdlIGNhbiBzaW1wbHkgZGlzY2FyZCB0aGVtIGluIHRoZSByZXNwZWN0aXZlCmVu Y2FwX3JlY3YgZnVuY3Rpb25zLgoKU2lnbmVkLW9mZi1ieTogSGFubmVzIEZyZWRlcmljIFNvd2Eg PGhhbm5lc0BzdHJlc3NpbmR1a3Rpb24ub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZ2VuZXZlLmMgfCAxMCAr KystLS0tLS0tCiBkcml2ZXJzL25ldC92eGxhbi5jICB8IDEwICsrLS0tLS0tLS0KIG5ldC9pcHY0 L3VkcC5jICAgICAgIHwgIDIgKy0KIG5ldC9pcHY2L3VkcC5jICAgICAgIHwgIDIgKy0KIDQgZmls ZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9nZW5ldmUuYyBiL2RyaXZlcnMvbmV0L2dlbmV2ZS5jCmluZGV4IDBiZjdl ZGQuLmFlNjdmYTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2dlbmV2ZS5jCisrKyBiL2RyaXZl cnMvbmV0L2dlbmV2ZS5jCkBAIC0zMTcsMTUgKzMxNywxNSBAQCBzdGF0aWMgaW50IGdlbmV2ZV91 ZHBfZW5jYXBfcmVjdihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAKIAkv KiBOZWVkIEdlbmV2ZSBhbmQgaW5uZXIgRXRoZXJuZXQgaGVhZGVyIHRvIGJlIHByZXNlbnQgKi8K IAlpZiAodW5saWtlbHkoIXBza2JfbWF5X3B1bGwoc2tiLCBHRU5FVkVfQkFTRV9ITEVOKSkpCi0J CWdvdG8gZXJyb3I7CisJCWdvdG8gZHJvcDsKIAogCS8qIFJldHVybiBwYWNrZXRzIHdpdGggcmVz ZXJ2ZWQgYml0cyBzZXQgKi8KIAlnZW5ldmVoID0gZ2VuZXZlX2hkcihza2IpOwogCWlmICh1bmxp a2VseShnZW5ldmVoLT52ZXIgIT0gR0VORVZFX1ZFUikpCi0JCWdvdG8gZXJyb3I7CisJCWdvdG8g ZHJvcDsKIAogCWlmICh1bmxpa2VseShnZW5ldmVoLT5wcm90b190eXBlICE9IGh0b25zKEVUSF9Q X1RFQikpKQotCQlnb3RvIGVycm9yOworCQlnb3RvIGRyb3A7CiAKIAlvcHRzX2xlbiA9IGdlbmV2 ZWgtPm9wdF9sZW4gKiA0OwogCWlmIChpcHR1bm5lbF9wdWxsX2hlYWRlcihza2IsIEdFTkVWRV9C QVNFX0hMRU4gKyBvcHRzX2xlbiwKQEAgLTM0MywxMCArMzQzLDYgQEAgZHJvcDoKIAkvKiBDb25z dW1lIGJhZCBwYWNrZXQgKi8KIAlrZnJlZV9za2Ioc2tiKTsKIAlyZXR1cm4gMDsKLQotZXJyb3I6 Ci0JLyogTGV0IHRoZSBVRFAgbGF5ZXIgZGVhbCB3aXRoIHRoZSBza2IgKi8KLQlyZXR1cm4gMTsK IH0KIAogc3RhdGljIHN0cnVjdCBzb2NrZXQgKmdlbmV2ZV9jcmVhdGVfc29jayhzdHJ1Y3QgbmV0 ICpuZXQsIGJvb2wgaXB2NiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Z4bGFuLmMgYi9kcml2 ZXJzL25ldC92eGxhbi5jCmluZGV4IDFjMzJiZDEuLmI0ZWI1NWUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L3Z4bGFuLmMKKysrIGIvZHJpdmVycy9uZXQvdnhsYW4uYwpAQCAtMTI1Niw3ICsxMjU2 LDcgQEAgc3RhdGljIGludCB2eGxhbl91ZHBfZW5jYXBfcmVjdihzdHJ1Y3Qgc29jayAqc2ssIHN0 cnVjdCBza19idWZmICpza2IpCiAKIAkvKiBOZWVkIFZ4bGFuIGFuZCBpbm5lciBFdGhlcm5ldCBo ZWFkZXIgdG8gYmUgcHJlc2VudCAqLwogCWlmICghcHNrYl9tYXlfcHVsbChza2IsIFZYTEFOX0hM RU4pKQotCQlnb3RvIGVycm9yOworCQlnb3RvIGRyb3A7CiAKIAl2eGggPSAoc3RydWN0IHZ4bGFu aGRyICopKHVkcF9oZHIoc2tiKSArIDEpOwogCWZsYWdzID0gbnRvaGwodnhoLT52eF9mbGFncyk7 CkBAIC0xMzQ2LDEzICsxMzQ2LDcgQEAgZHJvcDoKIGJhZF9mbGFnczoKIAluZXRkZXZfZGJnKHNr Yi0+ZGV2LCAiaW52YWxpZCB2eGxhbiBmbGFncz0lI3ggdm5pPSUjeFxuIiwKIAkJICAgbnRvaGwo dnhoLT52eF9mbGFncyksIG50b2hsKHZ4aC0+dnhfdm5pKSk7Ci0KLWVycm9yOgotCWlmICh0dW5f ZHN0KQotCQlkc3RfcmVsZWFzZSgoc3RydWN0IGRzdF9lbnRyeSAqKXR1bl9kc3QpOwotCi0JLyog UmV0dXJuIG5vbiB2eGxhbiBwa3QgKi8KLQlyZXR1cm4gMTsKKwlnb3RvIGRyb3A7CiB9CiAKIHN0 YXRpYyBpbnQgYXJwX3JlZHVjZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRl eCA1NjIxOGZmLi5jOWYzZGU3IDEwMDY0NAotLS0gYS9uZXQvaXB2NC91ZHAuYworKysgYi9uZXQv aXB2NC91ZHAuYwpAQCAtMTYyOCw3ICsxNjI4LDcgQEAgaW50IHVkcF9xdWV1ZV9yY3Zfc2tiKHN0 cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAogCQkvKiBpZiB3ZSdyZSBvdmVy bHkgc2hvcnQsIGxldCBVRFAgaGFuZGxlIGl0ICovCiAJCWVuY2FwX3JjdiA9IEFDQ0VTU19PTkNF KHVwLT5lbmNhcF9yY3YpOwotCQlpZiAoc2tiLT5sZW4gPiBzaXplb2Yoc3RydWN0IHVkcGhkcikg JiYgZW5jYXBfcmN2KSB7CisJCWlmIChlbmNhcF9yY3YpIHsKIAkJCWludCByZXQ7CiAKIAkJCS8q IFZlcmlmeSBjaGVja3N1bSBiZWZvcmUgZ2l2aW5nIHRvIGVuY2FwICovCmRpZmYgLS1naXQgYS9u ZXQvaXB2Ni91ZHAuYyBiL25ldC9pcHY2L3VkcC5jCmluZGV4IDY3OTQxMjAuLmIyZTkwMDcgMTAw NjQ0Ci0tLSBhL25ldC9pcHY2L3VkcC5jCisrKyBiL25ldC9pcHY2L3VkcC5jCkBAIC02OTMsNyAr NjkzLDcgQEAgaW50IHVkcHY2X3F1ZXVlX3Jjdl9za2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiKQogCiAJCS8qIGlmIHdlJ3JlIG92ZXJseSBzaG9ydCwgbGV0IFVEUCBoYW5k bGUgaXQgKi8KIAkJZW5jYXBfcmN2ID0gQUNDRVNTX09OQ0UodXAtPmVuY2FwX3Jjdik7Ci0JCWlm IChza2ItPmxlbiA+IHNpemVvZihzdHJ1Y3QgdWRwaGRyKSAmJiBlbmNhcF9yY3YpIHsKKwkJaWYg KGVuY2FwX3JjdikgewogCQkJaW50IHJldDsKIAogCQkJLyogVmVyaWZ5IGNoZWNrc3VtIGJlZm9y ZSBnaXZpbmcgdG8gZW5jYXAgKi8KLS0gCjIuMS4wCgoKRnJvbSAxMjdjZDMxMTAwZDRlYzRiYWE4 MWVkYzUyZTNjMDk2OTE0NzMyOTA5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWNv bGFzIERpY2h0ZWwgPG5pY29sYXMuZGljaHRlbEA2d2luZC5jb20+CkRhdGU6IFRodSwgMTkgTWF5 IDIwMTYgMTc6MjY6MjkgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4LzIzXSB1YXBpIGdsaWJjIGNv bXBhdDogZml4IGNvbXBpbGF0aW9uIHdoZW4gIV9fVVNFX01JU0MgaW4KIGdsaWJjCgpbIFVwc3Ry ZWFtIGNvbW1pdCBmMGEzZmRjYTc5NGQxZTY4YWUyODRlZjRjYWVmZTY4MWY3YzE4ZTg5IF0KClRo ZXNlIHN0cnVjdHVyZXMgYXJlIGRlZmluZWQgb25seSBpZiBfX1VTRV9NSVNDIGlzIHNldCBpbiBn bGliYyBuZXQvaWYuaApoZWFkZXJzLCBpZSB3aGVuIF9CU0RfU09VUkNFIG9yIF9TVklEX1NPVVJD RSBhcmUgZGVmaW5lZC4KCkNDOiBKYW4gRW5nZWxoYXJkdCA8amVuZ2VsaEBpbmFpLmRlPgpDQzog Sm9zaCBCb3llciA8andib3llckBmZWRvcmFwcm9qZWN0Lm9yZz4KQ0M6IFN0ZXBoZW4gSGVtbWlu Z2VyIDxzaGVtbWluZ0Bicm9jYWRlLmNvbT4KQ0M6IFdhbGRlbWFyIEJyb2Rrb3JiIDxtYWlsQHdh bGRlbWFyLWJyb2Rrb3JiLmRlPgpDQzogR2FicmllbCBMYXNrYXIgPGdhYnJpZWxAbHNlLmVwaXRh LmZyPgpDQzogTWlra28gUmFwZWxpIDxtaWtrby5yYXBlbGlAaWtpLmZpPgpGaXhlczogNGE5MWNi NjFiYjk5ICgidWFwaSBnbGliYyBjb21wYXQ6IGZpeCBjb21waWxlIGVycm9ycyB3aGVuIGdsaWJj IG5ldC9pZi5oIGluY2x1ZGVkIGJlZm9yZSBsaW51eC9pZi5oIikKU2lnbmVkLW9mZi1ieTogTmlj b2xhcyBEaWNodGVsIDxuaWNvbGFzLmRpY2h0ZWxANndpbmQuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS91YXBpL2xp bnV4L2xpYmMtY29tcGF0LmggfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvbGliYy1jb21w YXQuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9saWJjLWNvbXBhdC5oCmluZGV4IGQ1ZTM4YzcuLmU0 ZjA0OGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9saWJjLWNvbXBhdC5oCisrKyBi L2luY2x1ZGUvdWFwaS9saW51eC9saWJjLWNvbXBhdC5oCkBAIC01Miw3ICs1Miw3IEBACiAjaWYg ZGVmaW5lZChfX0dMSUJDX18pCiAKIC8qIENvb3JkaW5hdGUgd2l0aCBnbGliYyBuZXQvaWYuaCBo ZWFkZXIuICovCi0jaWYgZGVmaW5lZChfTkVUX0lGX0gpCisjaWYgZGVmaW5lZChfTkVUX0lGX0gp ICYmIGRlZmluZWQoX19VU0VfTUlTQykKIAogLyogR0xJQkMgaGVhZGVycyBpbmNsdWRlZCBmaXJz dCBzbyBkb24ndCBkZWZpbmUgYW55dGhpbmcKICAqIHRoYXQgd291bGQgYWxyZWFkeSBiZSBkZWZp bmVkLiAqLwotLSAKMi4xLjAKCgpGcm9tIDk0MWM0NzhjOTU0NTNlZmQwYjkwNDliMDJiZTk1NGNj ZmZhYmNkNTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBCb3JrbWFubiA8 ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkRhdGU6IFN1biwgMjIgTWF5IDIwMTYgMjM6MTY6MTggKzAy MDAKU3ViamVjdDogW1BBVENIIDA5LzIzXSBicGYsIGlub2RlOiBkaXNhbGxvdyB1c2VybnMgbW91 bnRzCgpbIFVwc3RyZWFtIGNvbW1pdCA2MTJiYWNhZDc4YmE2ZDBhOTExNjZmYzQ0ODdhZjExNGJh YzE3MmE4IF0KCkZvbGxvdy11cCB0byBjb21taXQgZTI3ZjRhOTQyYTBlICgiYnBmOiBVc2UgbW91 bnRfbm9kZXYgbm90IG1vdW50X25zCnRvIG1vdW50IHRoZSBicGYgZmlsZXN5c3RlbSIpLCB3aGlj aCByZW1vdmVzIHRoZSBGU19VU0VSTlNfTU9VTlQgZmxhZy4KClRoZSBvcmlnaW5hbCBpZGVhIHdh cyB0byBoYXZlIGEgcGVyIG1vdW50bnMgaW5zdGFuY2UgaW5zdGVhZCBvZiBhCnNpbmdsZSBnbG9i YWwgZnMgaW5zdGFuY2UsIGJ1dCB0aGF0IGRpZG4ndCB3b3JrIG91dCBhbmQgd2UgaGFkIHRvCnN3 aXRjaCB0byBtb3VudF9ub2RldigpIG1vZGVsLiBUaGUgaW50ZW50IG9mIHRoYXQgbWlkZGxlIGdy b3VuZCB3YXMKdGhhdCB3ZSBhdm9pZCB1c2VycyB3aG8gZG9uJ3QgcGxheSBuaWNlIHRvIGNyZWF0 ZSBlbmRsZXNzIGluc3RhbmNlcwpvZiBicGYgZnMgd2hpY2ggYXJlIGRpZmZpY3VsdCB0byBjb250 cm9sIGFuZCBkaXNjb3ZlciBmcm9tIGFuIGFkbWluCnBvaW50IG9mIHZpZXcsIGJ1dCBhdCB0aGUg c2FtZSB0aW1lIGl0IHdvdWxkIGhhdmUgYWxsb3dlZCB1cyB0byBiZQptb3JlIGZsZXhpYmxlIHdp dGggcmVnYXJkIHRvIG5hbWVzcGFjZXMuCgpUaGVyZWZvcmUsIHNpbmNlIHdlIG5vdyBkaWQgdGhl IHN3aXRjaCB0byBtb3VudF9ub2RldigpIGFzIGEgZml4CndoZXJlIGluZGl2aWR1YWwgaW5zdGFu Y2VzIGFyZSBjcmVhdGVkLCB3ZSBhbHNvIG5lZWQgdG8gcmVtb3ZlIHVzZXJucwptb3VudCBmbGFn IGFsb25nIHdpdGggaXQgdG8gYXZvaWQgcnVubmluZyBpbnRvIG1lbnRpb25lZCBzaXR1YXRpb24u CkkgZG9uJ3QgZXhwZWN0IGFueSBicmVha2FnZSBhdCB0aGlzIGVhcmx5IHBvaW50IGluIHRpbWUg d2l0aCByZW1vdmluZwp0aGUgZmxhZyBhbmQgd2UgY2FuIHJldmlzaXQgdGhpcyBsYXRlciBzaG91 bGQgdGhlIHJlcXVpcmVtZW50IGZvcgp0aGlzIGNvbWUgdXAgd2l0aCBmdXR1cmUgdXNlcnMuIFRo aXMgYW5kIGNvbW1pdCBlMjdmNGE5NDJhMGUgaGF2ZQpiZWVuIHNwbGl0IHRvIGZhY2lsaXRhdGUg dHJhY2tpbmcgc2hvdWxkIGFueSBvZiB0aGVtIHJ1biBpbnRvIHRoZQp1bmxpa2VseSBjYXNlIG9m IGNhdXNpbmcgYSByZWdyZXNzaW9uLgoKRml4ZXM6IGIyMTk3NzU1YjI2MyAoImJwZjogYWRkIHN1 cHBvcnQgZm9yIHBlcnNpc3RlbnQgbWFwcy9wcm9ncyIpClNpZ25lZC1vZmYtYnk6IERhbmllbCBC b3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkFja2VkLWJ5OiBIYW5uZXMgRnJlZGVyaWMg U293YSA8aGFubmVzQHN0cmVzc2luZHVrdGlvbi5vcmc+CkFja2VkLWJ5OiBBbGV4ZWkgU3Rhcm92 b2l0b3YgPGFzdEBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQoga2VybmVsL2JwZi9pbm9kZS5jIHwgMSAtCiAxIGZpbGUg Y2hhbmdlZCwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvaW5vZGUuYyBi L2tlcm5lbC9icGYvaW5vZGUuYwppbmRleCA1NWQ5MjM2Li5iMmFlZmEyIDEwMDY0NAotLS0gYS9r ZXJuZWwvYnBmL2lub2RlLmMKKysrIGIva2VybmVsL2JwZi9pbm9kZS5jCkBAIC0zODYsNyArMzg2 LDYgQEAgc3RhdGljIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlIGJwZl9mc190eXBlID0gewogCS5u YW1lCQk9ICJicGYiLAogCS5tb3VudAkJPSBicGZfbW91bnQsCiAJLmtpbGxfc2IJPSBraWxsX2xp dHRlcl9zdXBlciwKLQkuZnNfZmxhZ3MJPSBGU19VU0VSTlNfTU9VTlQsCiB9OwogCiBNT0RVTEVf QUxJQVNfRlMoImJwZiIpOwotLSAKMi4xLjAKCgpGcm9tIDQ1MzBlNTQzYTI5MjRmOGU4MzQ4Y2Y5 ZWJiY2FhOTY0ODUwMTZiY2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVkd2FyZCBD cmVlIDxlY3JlZUBzb2xhcmZsYXJlLmNvbT4KRGF0ZTogVHVlLCAyNCBNYXkgMjAxNiAxODo1Mzoz NiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMjNdIHNmYzogb24gTUMgcmVzZXQsIGNsZWFyIFBJ TyBidWZmZXIgbGlua2FnZSBpbiBUWFFzCgpbIFVwc3RyZWFtIGNvbW1pdCBjMDc5NWJmNjRjYmE0 ZDFiNzk2ZmRjNWI3NGIzMzc3Mjg0MWVkMWJiIF0KCk90aGVyd2lzZSwgaWYgd2UgZmFpbCB0byBh bGxvY2F0ZSBuZXcgUElPIGJ1ZmZlcnMsIG91ciBUWFFzIHdpbGwgdHJ5IHRvCnVzZSB0aGUgb2xk IG9uZXMsIHdoaWNoIGFyZW4ndCB0aGVyZSBhbnkgbW9yZS4KCkZpeGVzOiAxODMyMzNiZWM4MTAg InNmYzogQWxsb2NhdGUgYW5kIGxpbmsgUElPIGJ1ZmZlcnM7IG1hcCB0aGVtIHdpdGggd3JpdGUt Y29tYmluaW5nIgpTaWduZWQtb2ZmLWJ5OiBFZHdhcmQgQ3JlZSA8ZWNyZWVAc29sYXJmbGFyZS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jIHwgMTYgKysrKysrKysrKysrKysr KwogMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAu YwppbmRleCA5OGQzM2Q0Li4zYmU5MzRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9zZmMvZWYxMC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMKQEAgLTYx OSw2ICs2MTksMTcgQEAgZmFpbDoKIAlyZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyB2b2lkIGVmeF9l ZjEwX2ZvcmdldF9vbGRfcGlvYnVmcyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KQoreworCXN0cnVjdCBl ZnhfY2hhbm5lbCAqY2hhbm5lbDsKKwlzdHJ1Y3QgZWZ4X3R4X3F1ZXVlICp0eF9xdWV1ZTsKKwor CS8qIEFsbCBvdXIgZXhpc3RpbmcgUElPIGJ1ZmZlcnMgd2VudCBhd2F5ICovCisJZWZ4X2Zvcl9l YWNoX2NoYW5uZWwoY2hhbm5lbCwgZWZ4KQorCQllZnhfZm9yX2VhY2hfY2hhbm5lbF90eF9xdWV1 ZSh0eF9xdWV1ZSwgY2hhbm5lbCkKKwkJCXR4X3F1ZXVlLT5waW9idWYgPSBOVUxMOworfQorCiAj ZWxzZSAvKiAhRUZYX1VTRV9QSU8gKi8KIAogc3RhdGljIGludCBlZnhfZWYxMF9hbGxvY19waW9i dWZzKHN0cnVjdCBlZnhfbmljICplZngsIHVuc2lnbmVkIGludCBuKQpAQCAtNjM1LDYgKzY0Niwx MCBAQCBzdGF0aWMgdm9pZCBlZnhfZWYxMF9mcmVlX3Bpb2J1ZnMoc3RydWN0IGVmeF9uaWMgKmVm eCkKIHsKIH0KIAorc3RhdGljIHZvaWQgZWZ4X2VmMTBfZm9yZ2V0X29sZF9waW9idWZzKHN0cnVj dCBlZnhfbmljICplZngpCit7Cit9CisKICNlbmRpZiAvKiBFRlhfVVNFX1BJTyAqLwogCiBzdGF0 aWMgdm9pZCBlZnhfZWYxMF9yZW1vdmUoc3RydWN0IGVmeF9uaWMgKmVmeCkKQEAgLTEwMTgsNiAr MTAzMyw3IEBAIHN0YXRpYyB2b2lkIGVmeF9lZjEwX3Jlc2V0X21jX2FsbG9jYXRpb25zKHN0cnVj dCBlZnhfbmljICplZngpCiAJbmljX2RhdGEtPm11c3RfcmVhbGxvY192aXMgPSB0cnVlOwogCW5p Y19kYXRhLT5tdXN0X3Jlc3RvcmVfZmlsdGVycyA9IHRydWU7CiAJbmljX2RhdGEtPm11c3RfcmVz dG9yZV9waW9idWZzID0gdHJ1ZTsKKwllZnhfZWYxMF9mb3JnZXRfb2xkX3Bpb2J1ZnMoZWZ4KTsK IAluaWNfZGF0YS0+cnhfcnNzX2NvbnRleHQgPSBFRlhfRUYxMF9SU1NfQ09OVEVYVF9JTlZBTElE OwogCiAJLyogRHJpdmVyLWNyZWF0ZWQgdnN3aXRjaGVzIGFuZCB2cG9ydHMgbXVzdCBiZSByZS1j cmVhdGVkICovCi0tIAoyLjEuMAoKCkZyb20gMTYzNGVjZWYzNTYwYjFlNGMxZThiZmNhYTllOGI0 YWYyYWIwMDRiMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSXZhbiBWZWNlcmEgPGl2 ZWNlcmFAcmVkaGF0LmNvbT4KRGF0ZTogV2VkLCAyNSBNYXkgMjAxNiAyMToyMTo1MiArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMTEvMjNdIHRlYW06IGRvbid0IGNhbGwgbmV0ZGV2X2NoYW5nZV9mZWF0 dXJlcyB1bmRlcgogdGVhbS0+bG9jawoKWyBVcHN0cmVhbSBjb21taXQgZjY5ODhjYjYzYTRlNjk4 ZDhhNjJhMWQwODVkMjYzZDFmY2MzNTFlYSBdCgpUaGUgdGVhbV9kZXZpY2VfZXZlbnQoKSBub3Rp ZmllciBjYWxscyB0ZWFtX2NvbXB1dGVfZmVhdHVyZXMoKSB0byBmaXgKdmxhbl9mZWF0dXJlcyB1 bmRlciB0ZWFtLT5sb2NrIHRvIHByb3RlY3QgdGVhbS0+cG9ydF9saXN0LiBUaGUgcHJvYmxlbSBp cwp0aGF0IHN1YnNlcXVlbnQgX190ZWFtX2NvbXB1dGVfZmVhdHVyZXMoKSBjYWxscyBuZXRkZXZf Y2hhbmdlX2ZlYXR1cmVzKCkKdG8gcHJvcGFnYXRlIHZsYW5fZmVhdHVyZXMgdG8gdXBwZXIgdmxh biBkZXZpY2VzIHdoaWxlIHRlYW0tPmxvY2sgaXMgc3RpbGwKdGFrZW4uIFRoaXMgY2FuIGxlYWQg dG8gZGVhZGxvY2sgd2hlbiBORVRJRl9GX0xSTyBpcyBtb2RpZmllZCBvbiBsb3dlcgpkZXZpY2Vz IG9yIHRlYW0gZGV2aWNlIGl0c2VsZi4KCkV4YW1wbGU6ClRoZSB0ZWFtMCBhcyBhY3RpdmUgYmFj a3VwIHdpdGggZXRoMCBhbmQgZXRoMSBOSUNzLiBCb3RoIGV0aDAgJiBldGgxIGFyZQpMUk8gY2Fw YWJsZSBhbmQgTFJPIGlzIGVuYWJsZWQuIFRodXMgTFJPIGlzIGFsc28gZW5hYmxlZCBvbiB0ZWFt MC4KClRoZSBjb21tYW5kICdldGh0b29sIC1LIHRlYW0wIGxybyBvZmYnIG5vdyBoYW5ncyBkdWUg dG8gdGhpcyBkZWFkbG9jazoKCmRldl9ldGh0b29sKCkKLT4gZXRodG9vbF9zZXRfZmVhdHVyZXMo KQogLT4gX19uZXRkZXZfdXBkYXRlX2ZlYXR1cmVzKHRlYW0pCiAgLT4gbmV0ZGV2X3N5bmNfbG93 ZXJfZmVhdHVyZXMoKQogICAtPiBuZXRkZXZfdXBkYXRlX2ZlYXR1cmVzKGxvd2VyXzEpCiAgICAt PiBfX25ldGRldl91cGRhdGVfZmVhdHVyZXMobG93ZXJfMSkKICAgIC0+IG5ldGRldl9mZWF0dXJl c19jaGFuZ2UobG93ZXJfMSkKICAgICAtPiBjYWxsX25ldGRldmljZV9ub3RpZmllcnMoLi4uKQog ICAgICAtPiB0ZWFtX2RldmljZV9ldmVudChsb3dlcl8xKQogICAgICAgLT4gdGVhbV9jb21wdXRl X2ZlYXR1cmVzKHRlYW0pIFtUQUtFUyB0ZWFtLT5sb2NrXQogICAgICAgIC0+IG5ldGRldl9jaGFu Z2VfZmVhdHVyZXModGVhbSkKICAgICAgICAgLT4gX19uZXRkZXZfdXBkYXRlX2ZlYXR1cmVzKHRl YW0pCiAgICAgICAgICAtPiBuZXRkZXZfc3luY19sb3dlcl9mZWF0dXJlcygpCiAgICAgICAgICAg LT4gbmV0ZGV2X3VwZGF0ZV9mZWF0dXJlcyhsb3dlcl8yKQogICAgICAgICAgICAtPiBfX25ldGRl dl91cGRhdGVfZmVhdHVyZXMobG93ZXJfMikKICAgICAgICAgICAgLT4gbmV0ZGV2X2ZlYXR1cmVz X2NoYW5nZShsb3dlcl8yKQogICAgICAgICAgICAgLT4gY2FsbF9uZXRkZXZpY2Vfbm90aWZpZXJz KC4uLikKICAgICAgICAgICAgICAtPiB0ZWFtX2RldmljZV9ldmVudChsb3dlcl8yKQogICAgICAg ICAgICAgICAtPiB0ZWFtX2NvbXB1dGVfZmVhdHVyZXModGVhbSkgW0RFQURMT0NLXQoKVGhlIGJ1 ZyBpcyBwcmVzZW50IGluIHRlYW0gZnJvbSB0aGUgYmVnaW5uaW5nIGJ1dCBpdCBhcHBlYXJlZCBh ZnRlciB0aGUgY29tbWl0CmZkODY3ZDUgKG5ldC9jb3JlOiBnZW5lcmljIHN1cHBvcnQgZm9yIGRp c2FibGluZyBuZXRkZXYgZmVhdHVyZXMgZG93biBzdGFjaykKdGhhdCBhZGRzIHN5bmNocm9uaXph dGlvbiBvZiBmZWF0dXJlcyB3aXRoIGxvd2VyIGRldmljZXMuCgpGaXhlczogZmQ4NjdkNSAobmV0 L2NvcmU6IGdlbmVyaWMgc3VwcG9ydCBmb3IgZGlzYWJsaW5nIG5ldGRldiBmZWF0dXJlcyBkb3du IHN0YWNrKQpDYzogSmlyaSBQaXJrbyA8amlyaUByZXNudWxsaS51cz4KU2lnbmVkLW9mZi1ieTog SXZhbiBWZWNlcmEgPGl2ZWNlcmFAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogSmlyaSBQaXJr byA8amlyaUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90ZWFtL3RlYW0uYyB8IDkgKysrKysr Ky0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jIGIvZHJpdmVycy9uZXQvdGVhbS90ZWFt LmMKaW5kZXggNzE4Y2VlYS4uODAwYTQ0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdGVhbS90 ZWFtLmMKKysrIGIvZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMKQEAgLTk4OCw3ICs5ODgsNyBAQCBz dGF0aWMgdm9pZCB0ZWFtX3BvcnRfZGlzYWJsZShzdHJ1Y3QgdGVhbSAqdGVhbSwKICNkZWZpbmUg VEVBTV9FTkNfRkVBVFVSRVMJKE5FVElGX0ZfSFdfQ1NVTSB8IE5FVElGX0ZfU0cgfCBcCiAJCQkJ IE5FVElGX0ZfUlhDU1VNIHwgTkVUSUZfRl9BTExfVFNPKQogCi1zdGF0aWMgdm9pZCBfX3RlYW1f Y29tcHV0ZV9mZWF0dXJlcyhzdHJ1Y3QgdGVhbSAqdGVhbSkKK3N0YXRpYyB2b2lkIF9fX3RlYW1f Y29tcHV0ZV9mZWF0dXJlcyhzdHJ1Y3QgdGVhbSAqdGVhbSkKIHsKIAlzdHJ1Y3QgdGVhbV9wb3J0 ICpwb3J0OwogCXUzMiB2bGFuX2ZlYXR1cmVzID0gVEVBTV9WTEFOX0ZFQVRVUkVTICYgTkVUSUZf Rl9BTExfRk9SX0FMTDsKQEAgLTEwMTksMTUgKzEwMTksMjAgQEAgc3RhdGljIHZvaWQgX190ZWFt X2NvbXB1dGVfZmVhdHVyZXMoc3RydWN0IHRlYW0gKnRlYW0pCiAJdGVhbS0+ZGV2LT5wcml2X2Zs YWdzICY9IH5JRkZfWE1JVF9EU1RfUkVMRUFTRTsKIAlpZiAoZHN0X3JlbGVhc2VfZmxhZyA9PSAo SUZGX1hNSVRfRFNUX1JFTEVBU0UgfCBJRkZfWE1JVF9EU1RfUkVMRUFTRV9QRVJNKSkKIAkJdGVh bS0+ZGV2LT5wcml2X2ZsYWdzIHw9IElGRl9YTUlUX0RTVF9SRUxFQVNFOworfQogCitzdGF0aWMg dm9pZCBfX3RlYW1fY29tcHV0ZV9mZWF0dXJlcyhzdHJ1Y3QgdGVhbSAqdGVhbSkKK3sKKwlfX190 ZWFtX2NvbXB1dGVfZmVhdHVyZXModGVhbSk7CiAJbmV0ZGV2X2NoYW5nZV9mZWF0dXJlcyh0ZWFt LT5kZXYpOwogfQogCiBzdGF0aWMgdm9pZCB0ZWFtX2NvbXB1dGVfZmVhdHVyZXMoc3RydWN0IHRl YW0gKnRlYW0pCiB7CiAJbXV0ZXhfbG9jaygmdGVhbS0+bG9jayk7Ci0JX190ZWFtX2NvbXB1dGVf ZmVhdHVyZXModGVhbSk7CisJX19fdGVhbV9jb21wdXRlX2ZlYXR1cmVzKHRlYW0pOwogCW11dGV4 X3VubG9jaygmdGVhbS0+bG9jayk7CisJbmV0ZGV2X2NoYW5nZV9mZWF0dXJlcyh0ZWFtLT5kZXYp OwogfQogCiBzdGF0aWMgaW50IHRlYW1fcG9ydF9lbnRlcihzdHJ1Y3QgdGVhbSAqdGVhbSwgc3Ry dWN0IHRlYW1fcG9ydCAqcG9ydCkKLS0gCjIuMS4wCgoKRnJvbSBmN2ViOWE3OTVjNDMwMjU5MmQ4 OGFlMjM4NmM1MTM4NTUyMDUyY2E0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGZW5n IFRhbmcgPGZlbmcudGFuZ0BpbnRlbC5jb20+CkRhdGU6IFdlZCwgMjUgTWF5IDIwMTYgMTQ6NDk6 NTQgKzA4MDAKU3ViamVjdDogW1BBVENIIDEyLzIzXSBuZXQ6IGFseDogdXNlIGN1c3RvbSBza2Ig YWxsb2NhdG9yCgpbIFVwc3RyZWFtIGNvbW1pdCAyNmM1ZjAzYjJhZTgwMTg0MThjZWIyNWIyZTZh NDg1NjBlOGMyZjViIF0KClRoaXMgcGF0Y2ggZm9sbG93cyBFcmljIER1bWF6ZXQncyBjb21taXQg N2I3MDE3NjQyMSBmb3IgQXRoZXJvcwphdGwxYyBkcml2ZXIgdG8gZml4IG9uZSBleGFjdGx5IHNh bWUgYnVnIGluIGFseCBkcml2ZXIsIHRoYXQgdGhlCm5ldHdvcmsgbGluayB3aWxsIGJlIGxvc3Qg aW4gMS01IG1pbnV0ZXMgYWZ0ZXIgdGhlIGRldmljZSBpcyB1cC4KCk15IGxhcHRvcCBMZW5vdm8g WTU4MCB3aXRoIEF0aGVyb3MgQVI4MTYxIGV0aGVybmV0IGRldmljZSBoaXQgdGhlCnNhbWUgcHJv YmxlbSB3aXRoIGtlcm5lbCA0LjQsIGFuZCBpdCB3aWxsIGJlIGN1cmVkIGJ5IEphcm9kIFdpbHNv bidzCmNvbW1pdCBjNDA2NzAwYyBmb3IgYWx4IGRyaXZlciB3aGljaCBnZXQgbWVyZ2VkIGluIDQu NS4gQnV0IHRoZXJlCmFyZSBzdGlsbCBzb21lIGFseCBkZXZpY2VzIGNhbid0IGZ1bmN0aW9uIHdl bGwgZXZlbiB3aXRoIEphcm9kJ3MKcGF0Y2gsIHdoaWxlIHRoaXMgcGF0Y2ggY291bGQgbWFrZSB0 aGVtIHdvcmsgZmluZS4gTW9yZSBkZXRhaWxzIG9uCglodHRwczovL2J1Z3ppbGxhLmtlcm5lbC5v cmcvc2hvd19idWcuY2dpP2lkPTcwNzYxCgpUaGUgZGVidWcgc2hvd3MgdGhlIGlzc3VlIGlzIHZl cnkgbGlrZWx5IHRvIGJlIHJlbGF0ZWQgd2l0aCB0aGUgUlgKRE1BIGFkZHJlc3MsIHNwZWNpZmlj YWxseSAweC4uLmY4MCwgaWYgUlggYnVmZmVyIGdldCAweC4uLmY4MCBzZXZlcmFsCnRpbWVzLCB0 aGVpciB3aWxsIGJlIFJYIG92ZXJmbG93IGVycm9yIGFuZCBkZXZpY2Ugd2lsbCBzdG9wIHdvcmtp bmcuCgpGb3Iga2VybmVsIDQuNS4wIHdpdGggSmFyb2QncyBwYXRjaCB3aGljaCB3b3JrcyBmaW5l IHdpdGggbXkKQVI4MTYxL0xlbm5vdiBZNTgwLCBpZiBJIG1hZGUgc29tZSBjaGFuZ2UgdG8gdGhl CglfX25ldGRldl9hbGxvY19za2IKCQktLT4gX19hbGxvY19wYWdlX2ZyYWcoKQp0byBtYWtlIHRo ZSBhbGxvY2F0ZWQgYnVmZmVyIGNhbiBnZXQgYW4gYWRkcmVzcyB3aXRoIDB4Li4uZjgwLAp0aGVu IHRoZSBzYW1lIGVycm9yIGhhcHBlbnMuIElmIEkgbWFrZSBpdCB0byAweC4uLmY0MCBvciAweC4u Li5mYzAsCmV2ZXJ5dGhpbmcgd2lsbCBiZSBzdGlsbCBmaW5lLiBTbyBJIHRlbmQgdG8gYmVsaWV2 ZSB0aGF0IHRoZQoweC4uZjgwIGFkZHJlc3MgY2F1c2UgdGhlIHNpbGljb24gdG8gYmVoYXZlIGFi bm9ybWFsbHkuCgpCdWd6aWxsYTogaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVn LmNnaT9pZD03MDc2MQpDYzogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzog Sm9oYW5uZXMgQmVyZyA8am9oYW5uZXNAc2lwc29sdXRpb25zLm5ldD4KQ2M6IEphcm9kIFdpbHNv biA8amFyb2RAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRmVuZyBUYW5nIDxmZW5nLnRhbmdA aW50ZWwuY29tPgpUZXN0ZWQtYnk6IE9sZSBMdWtvaWUgPG9sZWx1a29pZUBtYWlsLnJ1PgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hbHgvYWx4LmggIHwgIDQgKysrCiBkcml2ZXJzL25l dC9ldGhlcm5ldC9hdGhlcm9zL2FseC9tYWluLmMgfCA0OCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWx4L2FseC5o IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hbHgvYWx4LmgKaW5kZXggOGZjOTNjNS4u ZDAyYzQyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hbHgvYWx4 LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hbHgvYWx4LmgKQEAgLTk2LDYg Kzk2LDEwIEBAIHN0cnVjdCBhbHhfcHJpdiB7CiAJdW5zaWduZWQgaW50IHJ4X3JpbmdzejsKIAl1 bnNpZ25lZCBpbnQgcnhidWZfc2l6ZTsKIAorCXN0cnVjdCBwYWdlICAqcnhfcGFnZTsKKwl1bnNp Z25lZCBpbnQgcnhfcGFnZV9vZmZzZXQ7CisJdW5zaWduZWQgaW50IHJ4X2ZyYWdfc2l6ZTsKKwog CXN0cnVjdCBuYXBpX3N0cnVjdCBuYXBpOwogCXN0cnVjdCBhbHhfdHhfcXVldWUgdHhxOwogCXN0 cnVjdCBhbHhfcnhfcXVldWUgcnhxOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv YXRoZXJvcy9hbHgvbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hbHgvbWFp bi5jCmluZGV4IDU1YjExOGUuLjg2MTE4MTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2F0aGVyb3MvYWx4L21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9z L2FseC9tYWluLmMKQEAgLTcwLDYgKzcwLDM1IEBAIHN0YXRpYyB2b2lkIGFseF9mcmVlX3R4YnVm KHN0cnVjdCBhbHhfcHJpdiAqYWx4LCBpbnQgZW50cnkpCiAJfQogfQogCitzdGF0aWMgc3RydWN0 IHNrX2J1ZmYgKmFseF9hbGxvY19za2Ioc3RydWN0IGFseF9wcml2ICphbHgsIGdmcF90IGdmcCkK K3sKKwlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOworCXN0cnVjdCBwYWdlICpwYWdlOworCisJaWYgKGFs eC0+cnhfZnJhZ19zaXplID4gUEFHRV9TSVpFKQorCQlyZXR1cm4gX19uZXRkZXZfYWxsb2Nfc2ti KGFseC0+ZGV2LCBhbHgtPnJ4YnVmX3NpemUsIGdmcCk7CisKKwlwYWdlID0gYWx4LT5yeF9wYWdl OworCWlmICghcGFnZSkgeworCQlhbHgtPnJ4X3BhZ2UgPSBwYWdlID0gYWxsb2NfcGFnZShnZnAp OworCQlpZiAodW5saWtlbHkoIXBhZ2UpKQorCQkJcmV0dXJuIE5VTEw7CisJCWFseC0+cnhfcGFn ZV9vZmZzZXQgPSAwOworCX0KKworCXNrYiA9IGJ1aWxkX3NrYihwYWdlX2FkZHJlc3MocGFnZSkg KyBhbHgtPnJ4X3BhZ2Vfb2Zmc2V0LAorCQkJYWx4LT5yeF9mcmFnX3NpemUpOworCWlmIChsaWtl bHkoc2tiKSkgeworCQlhbHgtPnJ4X3BhZ2Vfb2Zmc2V0ICs9IGFseC0+cnhfZnJhZ19zaXplOwor CQlpZiAoYWx4LT5yeF9wYWdlX29mZnNldCA+PSBQQUdFX1NJWkUpCisJCQlhbHgtPnJ4X3BhZ2Ug PSBOVUxMOworCQllbHNlCisJCQlnZXRfcGFnZShwYWdlKTsKKwl9CisJcmV0dXJuIHNrYjsKK30K KworCiBzdGF0aWMgaW50IGFseF9yZWZpbGxfcnhfcmluZyhzdHJ1Y3QgYWx4X3ByaXYgKmFseCwg Z2ZwX3QgZ2ZwKQogewogCXN0cnVjdCBhbHhfcnhfcXVldWUgKnJ4cSA9ICZhbHgtPnJ4cTsKQEAg LTg2LDcgKzExNSw3IEBAIHN0YXRpYyBpbnQgYWx4X3JlZmlsbF9yeF9yaW5nKHN0cnVjdCBhbHhf cHJpdiAqYWx4LCBnZnBfdCBnZnApCiAJd2hpbGUgKCFjdXJfYnVmLT5za2IgJiYgbmV4dCAhPSBy eHEtPnJlYWRfaWR4KSB7CiAJCXN0cnVjdCBhbHhfcmZkICpyZmQgPSAmcnhxLT5yZmRbY3VyXTsK IAotCQlza2IgPSBfX25ldGRldl9hbGxvY19za2IoYWx4LT5kZXYsIGFseC0+cnhidWZfc2l6ZSwg Z2ZwKTsKKwkJc2tiID0gYWx4X2FsbG9jX3NrYihhbHgsIGdmcCk7CiAJCWlmICghc2tiKQogCQkJ YnJlYWs7CiAJCWRtYSA9IGRtYV9tYXBfc2luZ2xlKCZhbHgtPmh3LnBkZXYtPmRldiwKQEAgLTEy NCw2ICsxNTMsNyBAQCBzdGF0aWMgaW50IGFseF9yZWZpbGxfcnhfcmluZyhzdHJ1Y3QgYWx4X3By aXYgKmFseCwgZ2ZwX3QgZ2ZwKQogCQlhbHhfd3JpdGVfbWVtMTYoJmFseC0+aHcsIEFMWF9SRkRf UElEWCwgY3VyKTsKIAl9CiAKKwogCXJldHVybiBjb3VudDsKIH0KIApAQCAtNTkyLDYgKzYyMiwx MSBAQCBzdGF0aWMgdm9pZCBhbHhfZnJlZV9yaW5ncyhzdHJ1Y3QgYWx4X3ByaXYgKmFseCkKIAlr ZnJlZShhbHgtPnR4cS5idWZzKTsKIAlrZnJlZShhbHgtPnJ4cS5idWZzKTsKIAorCWlmIChhbHgt PnJ4X3BhZ2UpIHsKKwkJcHV0X3BhZ2UoYWx4LT5yeF9wYWdlKTsKKwkJYWx4LT5yeF9wYWdlID0g TlVMTDsKKwl9CisKIAlkbWFfZnJlZV9jb2hlcmVudCgmYWx4LT5ody5wZGV2LT5kZXYsCiAJCQkg IGFseC0+ZGVzY21lbS5zaXplLAogCQkJICBhbHgtPmRlc2NtZW0udmlydCwKQEAgLTY0Niw2ICs2 ODEsNyBAQCBzdGF0aWMgaW50IGFseF9yZXF1ZXN0X2lycShzdHJ1Y3QgYWx4X3ByaXYgKmFseCkK IAkJCQkgIGFseC0+ZGV2LT5uYW1lLCBhbHgpOwogCQlpZiAoIWVycikKIAkJCWdvdG8gb3V0Owor CiAJCS8qIGZhbGwgYmFjayB0byBsZWdhY3kgaW50ZXJydXB0ICovCiAJCXBjaV9kaXNhYmxlX21z aShhbHgtPmh3LnBkZXYpOwogCX0KQEAgLTY4OSw2ICs3MjUsNyBAQCBzdGF0aWMgaW50IGFseF9p bml0X3N3KHN0cnVjdCBhbHhfcHJpdiAqYWx4KQogCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gYWx4 LT5ody5wZGV2OwogCXN0cnVjdCBhbHhfaHcgKmh3ID0gJmFseC0+aHc7CiAJaW50IGVycjsKKwl1 bnNpZ25lZCBpbnQgaGVhZF9zaXplOwogCiAJZXJyID0gYWx4X2lkZW50aWZ5X2h3KGFseCk7CiAJ aWYgKGVycikgewpAQCAtNzA0LDcgKzc0MSwxMiBAQCBzdGF0aWMgaW50IGFseF9pbml0X3N3KHN0 cnVjdCBhbHhfcHJpdiAqYWx4KQogCiAJaHctPnNtYl90aW1lciA9IDQwMDsKIAlody0+bXR1ID0g YWx4LT5kZXYtPm10dTsKKwogCWFseC0+cnhidWZfc2l6ZSA9IEFMWF9NQVhfRlJBTUVfTEVOKGh3 LT5tdHUpOworCWhlYWRfc2l6ZSA9IFNLQl9EQVRBX0FMSUdOKGFseC0+cnhidWZfc2l6ZSArIE5F VF9TS0JfUEFEKSArCisJCSAgICBTS0JfREFUQV9BTElHTihzaXplb2Yoc3RydWN0IHNrYl9zaGFy ZWRfaW5mbykpOworCWFseC0+cnhfZnJhZ19zaXplID0gcm91bmR1cF9wb3dfb2ZfdHdvKGhlYWRf c2l6ZSk7CisKIAlhbHgtPnR4X3JpbmdzeiA9IDI1NjsKIAlhbHgtPnJ4X3JpbmdzeiA9IDUxMjsK IAlody0+aW10ID0gMjAwOwpAQCAtODA2LDYgKzg0OCw3IEBAIHN0YXRpYyBpbnQgYWx4X2NoYW5n ZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IG10dSkKIHsKIAlzdHJ1Y3QgYWx4 X3ByaXYgKmFseCA9IG5ldGRldl9wcml2KG5ldGRldik7CiAJaW50IG1heF9mcmFtZSA9IEFMWF9N QVhfRlJBTUVfTEVOKG10dSk7CisJdW5zaWduZWQgaW50IGhlYWRfc2l6ZTsKIAogCWlmICgobWF4 X2ZyYW1lIDwgQUxYX01JTl9GUkFNRV9TSVpFKSB8fAogCSAgICAobWF4X2ZyYW1lID4gQUxYX01B WF9GUkFNRV9TSVpFKSkKQEAgLTgxNyw2ICs4NjAsOSBAQCBzdGF0aWMgaW50IGFseF9jaGFuZ2Vf bXR1KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBtdHUpCiAJbmV0ZGV2LT5tdHUgPSBt dHU7CiAJYWx4LT5ody5tdHUgPSBtdHU7CiAJYWx4LT5yeGJ1Zl9zaXplID0gbWF4KG1heF9mcmFt ZSwgQUxYX0RFRl9SWEJVRl9TSVpFKTsKKwloZWFkX3NpemUgPSBTS0JfREFUQV9BTElHTihhbHgt PnJ4YnVmX3NpemUgKyBORVRfU0tCX1BBRCkgKworCQkgICAgU0tCX0RBVEFfQUxJR04oc2l6ZW9m KHN0cnVjdCBza2Jfc2hhcmVkX2luZm8pKTsKKwlhbHgtPnJ4X2ZyYWdfc2l6ZSA9IHJvdW5kdXBf cG93X29mX3R3byhoZWFkX3NpemUpOwogCW5ldGRldl91cGRhdGVfZmVhdHVyZXMobmV0ZGV2KTsK IAlpZiAobmV0aWZfcnVubmluZyhuZXRkZXYpKQogCQlhbHhfcmVpbml0KGFseCk7Ci0tIAoyLjEu MAoKCkZyb20gMWU3OTRiZTJiYzBlNjdmNGE1MDc1ZWNkZDgwMTY5Y2VkMjJjYzI1YiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyZWsgVmFzdXQgPG1hcmV4QGRlbnguZGU+CkRhdGU6 IFRodSwgMjYgTWF5IDIwMTYgMDA6NDA6MjMgKzAyMDAKU3ViamVjdDogW1BBVENIIDEzLzIzXSBu ZXQ6IHN0bW1hYzogRml4IGluY29ycmVjdCBtZW1jcHkgc291cmNlIG1lbW9yeQoKWyBVcHN0cmVh bSBjb21taXQgNjQzZDYwYmY1NzVkYWFiYTkzYzFhYzBkMGUxYzRiMWQ0ZGVkMWY3NSBdCgpUaGUg bWVtY3B5KCkgY3VycmVudGx5IGNvcGllcyBtZGlvX2J1c19kYXRhIGludG8gbmV3X2J1cy0+aXJx LCB3aGljaAptYWtlcyBubyBzZW5zZSwgc2luY2UgdGhlIG1kaW9fYnVzX2RhdGEgc3RydWN0dXJl IGNvbnRhaW5zIG1vcmUgdGhhbgpqdXN0IGlycXMuIFRoZSBjb2RlIHdhcyBsaWtlbHkgc3VwcG9z ZWQgdG8gY29weSBtZGlvX2J1c19kYXRhLT5pcnFzCmludG8gdGhlIG5ld19idXMtPmlycSBpbnN0 ZWFkLCBzbyBmaXggdGhpcy4KCkZpeGVzOiBlN2Y0ZGMzNTM2YTQgKCJtZGlvOiBNb3ZlIGFsbG9j YXRpb24gb2YgaW50ZXJydXB0cyBpbnRvIGNvcmUiKQpTaWduZWQtb2ZmLWJ5OiBNYXJlayBWYXN1 dCA8bWFyZXhAZGVueC5kZT4KQ2M6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KQ2M6IEdpdXNlcHBlIENhdmFsbGFybyA8cGVwcGUuY2F2YWxsYXJvQHN0LmNvbT4KQ2M6IEFs ZXhhbmRyZSBUb3JndWUgPGFsZXhhbmRyZS50b3JndWVAc3QuY29tPgpSZXZpZXdlZC1ieTogQW5k cmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9z dG1tYWMvc3RtbWFjX21kaW8uYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWlj cm8vc3RtbWFjL3N0bW1hY19tZGlvLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0 bW1hYy9zdG1tYWNfbWRpby5jCmluZGV4IGVmYjU0ZjMuLmZmMTVkYTQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYwpAQCAtMjE3LDcg KzIxNyw3IEBAIGludCBzdG1tYWNfbWRpb19yZWdpc3RlcihzdHJ1Y3QgbmV0X2RldmljZSAqbmRl dikKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlpZiAobWRpb19idXNfZGF0YS0+aXJxcykKLQkJbWVt Y3B5KG5ld19idXMtPmlycSwgbWRpb19idXNfZGF0YSwgc2l6ZW9mKG5ld19idXMtPmlycSkpOwor CQltZW1jcHkobmV3X2J1cy0+aXJxLCBtZGlvX2J1c19kYXRhLT5pcnFzLCBzaXplb2YobmV3X2J1 cy0+aXJxKSk7CiAKICNpZmRlZiBDT05GSUdfT0YKIAlpZiAocHJpdi0+ZGV2aWNlLT5vZl9ub2Rl KQotLSAKMi4xLjAKCgpGcm9tIDYxMzI1NjZjNjQwMGM4ZGY2Y2RmZDk0Y2M1MDRlMzZiODQzNjgx MmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENoZW4gSGFpcXVhbiA8b2NAeXVuaWZ5 LmNvbT4KRGF0ZTogRnJpLCAyNyBNYXkgMjAxNiAxMDo0OToxMSArMDgwMApTdWJqZWN0OiBbUEFU Q0ggMTQvMjNdIHZ4bGFuOiBBY2NlcHQgdXNlciBzcGVjaWZpZWQgTVRVIHZhbHVlIHdoZW4gY3Jl YXRlIG5ldwogdnhsYW4gbGluawoKWyBVcHN0cmVhbSBjb21taXQgY2U1Nzc2NjhhNDI2YzZhOWUy NDcwYTA5ZGNkMDdmYmQ2ZTQ1MjcyYSBdCgpXaGVuIGNyZWF0ZSBhIG5ldyB2eGxhbiBsaW5rLCBl eGFtcGxlOgogIGlwIGxpbmsgYWRkIHZ0YXAgbXR1IDE0NDAgdHlwZSB2eGxhbiB2bmkgMSBkZXYg ZXRoMAoKVGhlIGFyZ3VtZW50ICJtdHUiIGhhcyBubyBlZmZlY3QsIGJlY2F1c2UgaXQgaXMgbm90 IHNldCB0byBjb25mLT5tdHUuIFRoZQpkZWZhdWx0IHZhbHVlIGlzIHVzZWQgaW4gdnhsYW5fZGV2 X2NvbmZpZ3VyZSBmdW5jdGlvbi4KClRoaXMgcHJvYmxlbSB3YXMgaW50cm9kdWNlZCBieSBjb21t aXQgMGRmYmRmNDEwMmI5ICh2eGxhbjogRmFjdG9yIG91dCBkZXZpY2UKY29uZmlndXJhdGlvbiku CgpGaXhlczogMGRmYmRmNDEwMmI5ICh2eGxhbjogRmFjdG9yIG91dCBkZXZpY2UgY29uZmlndXJh dGlvbikKU2lnbmVkLW9mZi1ieTogIENoZW4gSGFpcXVhbiA8b2NAeXVuaWZ5LmNvbT4KQWNrZWQt Ynk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdnhs YW4uYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvdnhsYW4uYyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKaW5kZXggYjRlYjU1 ZS4uMDE3NjliOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdnhsYW4uYworKysgYi9kcml2ZXJz L25ldC92eGxhbi5jCkBAIC0zMDA4LDYgKzMwMDgsOSBAQCBzdGF0aWMgaW50IHZ4bGFuX25ld2xp bmsoc3RydWN0IG5ldCAqc3JjX25ldCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAlpZiAoZGF0 YVtJRkxBX1ZYTEFOX1JFTUNTVU1fTk9QQVJUSUFMXSkKIAkJY29uZi5mbGFncyB8PSBWWExBTl9G X1JFTUNTVU1fTk9QQVJUSUFMOwogCisJaWYgKHRiW0lGTEFfTVRVXSkKKwkJY29uZi5tdHUgPSBu bGFfZ2V0X3UzMih0YltJRkxBX01UVV0pOworCiAJZXJyID0gdnhsYW5fZGV2X2NvbmZpZ3VyZShz cmNfbmV0LCBkZXYsICZjb25mKTsKIAlzd2l0Y2ggKGVycikgewogCWNhc2UgLUVOT0RFVjoKLS0g CjIuMS4wCgoKRnJvbSBjMmUxZjBmMmY4YTg0NzZmZGU0NTBjZGY1ZmU3MGM2MTI4NTJiMTdiIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dl YXJib3gubmV0PgpEYXRlOiBTYXQsIDQgSnVuIDIwMTYgMjA6NTA6NTkgKzAyMDAKU3ViamVjdDog W1BBVENIIDE1LzIzXSBicGYsIHRyYWNlOiB1c2UgUkVBRF9PTkNFIGZvciByZXRyaWV2aW5nIGZp bGUgcHRyCgpbIFVwc3RyZWFtIGNvbW1pdCA1YjZjMWI0ZDQ2YjBkYWU0ZWRlYTYzNmE3NzZkMDlm MjA2NGY0Y2Q3IF0KCkluIGJwZl9wZXJmX2V2ZW50X3JlYWQoKSBhbmQgYnBmX3BlcmZfZXZlbnRf b3V0cHV0KCksIHdlIG11c3QgdXNlClJFQURfT05DRSgpIGZvciBmZXRjaGluZyB0aGUgc3RydWN0 IGZpbGUgcG9pbnRlciwgd2hpY2ggY291bGQgZ2V0CnVwZGF0ZWQgY29uY3VycmVudGx5LCBzbyB3 ZSBtdXN0IHByZXZlbnQgdGhlIGNvbXBpbGVyIGZyb20gcG90ZW50aWFsCnJlZmV0Y2hpbmcuCgpX ZSBhbHJlYWR5IGRvIHRoaXMgd2l0aCB0YWlsIGNhbGxzIGZvciBmZXRjaGluZyB0aGUgcmVsYXRl ZCBicGZfcHJvZywKYnV0IG5vdCBzbyBvbiBzdG9yZWQgcGVyZiBldmVudHMuIFNlbWFudGljcyBm b3IgYm90aCBhcmUgdGhlIHNhbWUKd2l0aCByZWdhcmRzIHRvIHVwZGF0ZXMuCgpGaXhlczogYTQz ZWVjMzA0MjU5ICgiYnBmOiBpbnRyb2R1Y2UgYnBmX3BlcmZfZXZlbnRfb3V0cHV0KCkgaGVscGVy IikKRml4ZXM6IDM1NTc4ZDc5ODQwMCAoImJwZjogSW1wbGVtZW50IGZ1bmN0aW9uIGJwZl9wZXJm X2V2ZW50X3JlYWQoKSB0aGF0IGdldCB0aGUgc2VsZWN0ZWQgaGFyZHdhcmUgUE1VIGNvbnV0ZXIi KQpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpB Y2tlZC1ieTogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RAa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGtlcm5lbC90cmFj ZS9icGZfdHJhY2UuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvYnBmX3RyYWNlLmMgYi9r ZXJuZWwvdHJhY2UvYnBmX3RyYWNlLmMKaW5kZXggMzI2YTc1ZS4uMDU4NmU3OCAxMDA2NDQKLS0t IGEva2VybmVsL3RyYWNlL2JwZl90cmFjZS5jCisrKyBiL2tlcm5lbC90cmFjZS9icGZfdHJhY2Uu YwpAQCAtMTk2LDcgKzE5Niw3IEBAIHN0YXRpYyB1NjQgYnBmX3BlcmZfZXZlbnRfcmVhZCh1NjQg cjEsIHU2NCBpbmRleCwgdTY0IHIzLCB1NjQgcjQsIHU2NCByNSkKIAlpZiAodW5saWtlbHkoaW5k ZXggPj0gYXJyYXktPm1hcC5tYXhfZW50cmllcykpCiAJCXJldHVybiAtRTJCSUc7CiAKLQlmaWxl ID0gKHN0cnVjdCBmaWxlICopYXJyYXktPnB0cnNbaW5kZXhdOworCWZpbGUgPSBSRUFEX09OQ0Uo YXJyYXktPnB0cnNbaW5kZXhdKTsKIAlpZiAodW5saWtlbHkoIWZpbGUpKQogCQlyZXR1cm4gLUVO T0VOVDsKIApAQCAtMjQwLDcgKzI0MCw3IEBAIHN0YXRpYyB1NjQgYnBmX3BlcmZfZXZlbnRfb3V0 cHV0KHU2NCByMSwgdTY0IHIyLCB1NjQgaW5kZXgsIHU2NCByNCwgdTY0IHNpemUpCiAJaWYgKHVu bGlrZWx5KGluZGV4ID49IGFycmF5LT5tYXAubWF4X2VudHJpZXMpKQogCQlyZXR1cm4gLUUyQklH OwogCi0JZmlsZSA9IChzdHJ1Y3QgZmlsZSAqKWFycmF5LT5wdHJzW2luZGV4XTsKKwlmaWxlID0g UkVBRF9PTkNFKGFycmF5LT5wdHJzW2luZGV4XSk7CiAJaWYgKHVubGlrZWx5KCFmaWxlKSkKIAkJ cmV0dXJuIC1FTk9FTlQ7CiAKLS0gCjIuMS4wCgoKRnJvbSBjYjkwNDI5MjJkMzcwNGI2M2MxNTRk YTBhMTkxZWEwZjQ5YTA1ZTI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBZdWNodW5n IENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KRGF0ZTogTW9uLCA2IEp1biAyMDE2IDE1OjA3OjE4 IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNi8yM10gdGNwOiByZWNvcmQgVExQIGFuZCBFUiB0aW1l ciBzdGF0cyBpbiB2NiBzdGF0cwoKWyBVcHN0cmVhbSBjb21taXQgY2UzY2Y0ZWMwMzA1OTE5ZmM2 OWE5NzJmNmMyYjJlZmQzNWQzNmFiYyBdCgpUaGUgdjYgdGNwIHN0YXRzIHNjYW4gZG8gbm90IHBy b3ZpZGUgVExQIGFuZCBFUiB0aW1lciBpbmZvcm1hdGlvbgpjb3JyZWN0bHkgbGlrZSB0aGUgdjQg dmVyc2lvbiAuIFRoaXMgcGF0Y2ggZml4ZXMgdGhhdC4KCkZpeGVzOiA2YmE4YTNiMTllNzYgKCJ0 Y3A6IFRhaWwgbG9zcyBwcm9iZSAoVExQKSIpCkZpeGVzOiBlZWQ1MzBiNmM2NzYgKCJ0Y3A6IGVh cmx5IHJldHJhbnNtaXQiKQpTaWduZWQtb2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29v Z2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvaXB2Ni90Y3BfaXB2Ni5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvdGNwX2lwdjYu YyBiL25ldC9pcHY2L3RjcF9pcHY2LmMKaW5kZXggNWM4Yzg0Mi4uMjljZmFiMyAxMDA2NDQKLS0t IGEvbmV0L2lwdjYvdGNwX2lwdjYuYworKysgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCkBAIC0xNzA3 LDcgKzE3MDcsOSBAQCBzdGF0aWMgdm9pZCBnZXRfdGNwNl9zb2NrKHN0cnVjdCBzZXFfZmlsZSAq c2VxLCBzdHJ1Y3Qgc29jayAqc3AsIGludCBpKQogCWRlc3RwID0gbnRvaHMoaW5ldC0+aW5ldF9k cG9ydCk7CiAJc3JjcCAgPSBudG9ocyhpbmV0LT5pbmV0X3Nwb3J0KTsKIAotCWlmIChpY3NrLT5p Y3NrX3BlbmRpbmcgPT0gSUNTS19USU1FX1JFVFJBTlMpIHsKKwlpZiAoaWNzay0+aWNza19wZW5k aW5nID09IElDU0tfVElNRV9SRVRSQU5TIHx8CisJICAgIGljc2stPmljc2tfcGVuZGluZyA9PSBJ Q1NLX1RJTUVfRUFSTFlfUkVUUkFOUyB8fAorCSAgICBpY3NrLT5pY3NrX3BlbmRpbmcgPT0gSUNT S19USU1FX0xPU1NfUFJPQkUpIHsKIAkJdGltZXJfYWN0aXZlCT0gMTsKIAkJdGltZXJfZXhwaXJl cwk9IGljc2stPmljc2tfdGltZW91dDsKIAl9IGVsc2UgaWYgKGljc2stPmljc2tfcGVuZGluZyA9 PSBJQ1NLX1RJTUVfUFJPQkUwKSB7Ci0tIAoyLjEuMAoKCkZyb20gYmY4OTc0MDI0ZDk2Y2UyMjhj YzllZGZiMTBkYzBhZTgyYWMxZjg4YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVG9z aGlha2kgTWFraXRhIDxtYWtpdGEudG9zaGlha2lAbGFiLm50dC5jby5qcD4KRGF0ZTogVHVlLCA3 IEp1biAyMDE2IDE5OjE0OjE3ICswOTAwClN1YmplY3Q6IFtQQVRDSCAxNy8yM10gYnJpZGdlOiBE b24ndCBpbnNlcnQgdW5uZWNlc3NhcnkgbG9jYWwgZmRiIGVudHJ5IG9uCiBjaGFuZ2luZyBtYWMg YWRkcmVzcwoKWyBVcHN0cmVhbSBjb21taXQgMGIxNDhkZWY0MDMxNTNhNGQxNTY1ZjE2NDAzNTZj Yjc4Y2U1MTA5ZiBdCgpUaGUgbWlzc2luZyBicl92bGFuX3Nob3VsZF91c2UoKSB0ZXN0IGNhdXNl ZCBjcmVhdGlvbiBvZiBhbiB1bm5lZWRlZApsb2NhbCBmZGIgZW50cnkgb24gY2hhbmdpbmcgbWFj IGFkZHJlc3Mgb2YgYSBicmlkZ2UgZGV2aWNlIHdoZW4gdGhlcmUgaXMKYSB2bGFuIHdoaWNoIGlz IGNvbmZpZ3VyZWQgb24gYSBicmlkZ2UgcG9ydCBidXQgbm90IG9uIHRoZSBicmlkZ2UKZGV2aWNl LgoKRml4ZXM6IDI1OTRlOTA2NGE1NyAoImJyaWRnZTogdmxhbjogYWRkIHBlci12bGFuIHN0cnVj dCBhbmQgbW92ZSB0byByaGFzaHRhYmxlcyIpClNpZ25lZC1vZmYtYnk6IFRvc2hpYWtpIE1ha2l0 YSA8bWFraXRhLnRvc2hpYWtpQGxhYi5udHQuY28uanA+CkFja2VkLWJ5OiBOaWtvbGF5IEFsZWtz YW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX2ZkYi5j IHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25l dC9icmlkZ2UvYnJfZmRiLmMgYi9uZXQvYnJpZGdlL2JyX2ZkYi5jCmluZGV4IGRjZWE0ZjQuLmMx ODA4MGEgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfZmRiLmMKKysrIGIvbmV0L2JyaWRnZS9i cl9mZGIuYwpAQCAtMjc5LDYgKzI3OSw4IEBAIHZvaWQgYnJfZmRiX2NoYW5nZV9tYWNfYWRkcmVz cyhzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsIGNvbnN0IHU4ICpuZXdhZGRyKQogCSAqIGNoYW5nZSBm cm9tIHVuZGVyIHVzLgogCSAqLwogCWxpc3RfZm9yX2VhY2hfZW50cnkodiwgJnZnLT52bGFuX2xp c3QsIHZsaXN0KSB7CisJCWlmICghYnJfdmxhbl9zaG91bGRfdXNlKHYpKQorCQkJY29udGludWU7 CiAJCWYgPSBfX2JyX2ZkYl9nZXQoYnIsIGJyLT5kZXYtPmRldl9hZGRyLCB2LT52aWQpOwogCQlp ZiAoZiAmJiBmLT5pc19sb2NhbCAmJiAhZi0+ZHN0KQogCQkJZmRiX2RlbGV0ZV9sb2NhbChiciwg TlVMTCwgZik7Ci0tIAoyLjEuMAoKCkZyb20gMjk4NjAzNDAxMWRlOGZkNjA1NDg4OTA4ZTU3MmIw N2JjMDVkMmY3MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR3VpbGxhdW1lIE5hdWx0 IDxnLm5hdWx0QGFscGhhbGluay5mcj4KRGF0ZTogV2VkLCA4IEp1biAyMDE2IDEyOjU5OjE3ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAxOC8yM10gbDJ0cDogZml4IGNvbmZpZ3VyYXRpb24gcGFzc2Vk IHRvCiBzZXR1cF91ZHBfdHVubmVsX3NvY2soKQoKWyBVcHN0cmVhbSBjb21taXQgYTVjNWUyZGE4 NTUxZWI2OWU1ZDVkMDlkNTFkNTI2MTQwYjVkYjlmYiBdCgpVbnVzZWQgZmllbGRzIG9mIHVkcF9j ZmcgbXVzdCBiZSBhbGwgemVyb3MuIE90aGVyd2lzZQpzZXR1cF91ZHBfdHVubmVsX3NvY2soKSBm aWxscyAtPmdyb19yZWNlaXZlIGFuZCAtPmdyb19jb21wbGV0ZQpjYWxsYmFja3Mgd2l0aCBnYXJi YWdlLCBldmVudHVhbGx5IHJlc3VsdGluZyBpbiBwYW5pYyB3aGVuIHVzZWQgYnkKdWRwX2dyb19y ZWNlaXZlKCkuCgpbICAgNzIuNjk0MTIzXSBCVUc6IHVuYWJsZSB0byBoYW5kbGUga2VybmVsIHBh Z2luZyByZXF1ZXN0IGF0IGZmZmY4ODAwMzNmODdkNzgKWyAgIDcyLjY5NTUxOF0gSVA6IFs8ZmZm Zjg4MDAzM2Y4N2Q3OD5dIDB4ZmZmZjg4MDAzM2Y4N2Q3OApbICAgNzIuNjk2NTMwXSBQR0QgMjZl MjA2NyBQVUQgMjZlMzA2NyBQTUQgMzQyZWQwNjMgUFRFIDgwMDAwMDAwMzNmODcxNjMKWyAgIDcy LjY5NjUzMF0gT29wczogMDAxMSBbIzFdIFNNUCBLQVNBTgpbICAgNzIuNjk2NTMwXSBNb2R1bGVz IGxpbmtlZCBpbjogbDJ0cF9wcHAgbDJ0cF9uZXRsaW5rIGwydHBfY29yZSBpcDZfdWRwX3R1bm5l bCB1ZHBfdHVubmVsIHBwdHAgZ3JlIHBwcG94IHBwcF9nZW5lcmljIHNsaGMgY3JjMzJjX2ludGVs IGdoYXNoX2NsbXVsbmlfaW50ZWwgaml0dGVyZW50cm9weV9ybmcgc2hhMjU2X2dlbmVyaWMgaG1h YyBkcmJnIGFuc2lfY3BybmcgYWVzbmlfaW50ZWwgZXZkZXYgYWVzX3g4Nl82NCBhYmxrX2hlbHBl ciBjcnlwdGQgbHJ3IGdmMTI4bXVsIGdsdWVfaGVscGVyIHNlcmlvX3JhdyBhY3BpX2NwdWZyZXEg YnV0dG9uIHByb2NcCmVzc29yIGV4dDQgY3JjMTYgamJkMiBtYmNhY2hlIHZpcnRpb19ibGsgdmly dGlvX25ldCB2aXJ0aW9fcGNpIHZpcnRpb19yaW5nIHZpcnRpbwpbICAgNzIuNjk2NTMwXSBDUFU6 IDMgUElEOiAwIENvbW06IHN3YXBwZXIvMyBOb3QgdGFpbnRlZCA0LjcuMC1yYzEgIzEKWyAgIDcy LjY5NjUzMF0gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwg MTk5NiksIEJJT1MgRGViaWFuLTEuOC4yLTEgMDQvMDEvMjAxNApbICAgNzIuNjk2NTMwXSB0YXNr OiBmZmZmODgwMDM1YjU5NzAwIHRpOiBmZmZmODgwMDM1YjcwMDAwIHRhc2sudGk6IGZmZmY4ODAw MzViNzAwMDAKWyAgIDcyLjY5NjUzMF0gUklQOiAwMDEwOls8ZmZmZjg4MDAzM2Y4N2Q3OD5dICBb PGZmZmY4ODAwMzNmODdkNzg+XSAweGZmZmY4ODAwMzNmODdkNzgKWyAgIDcyLjY5NjUzMF0gUlNQ OiAwMDE4OmZmZmY4ODAwMzVmODdiYzAgIEVGTEFHUzogMDAwMTAyNDYKWyAgIDcyLjY5NjUzMF0g UkFYOiBmZmZmZWQwMDA2OThmOTk2IFJCWDogZmZmZjg4MDAzMzI2Yjg0MCBSQ1g6IGZmZmZmZmZm ODE0Y2M4MjMKWyAgIDcyLjY5NjUzMF0gUkRYOiBmZmZmODgwMDMzMjZiODQwIFJTSTogZmZmZjg4 MDAzM2U0ODAzOCBSREk6IGZmZmY4ODAwMzRjN2M3ODAKWyAgIDcyLjY5NjUzMF0gUkJQOiBmZmZm ODgwMDM1Zjg3YzE4IFIwODogMDAwMDAwMDAwMDAwYTUwNiBSMDk6IDAwMDAwMDAwMDAwMDAwMDAK WyAgIDcyLjY5NjUzMF0gUjEwOiBmZmZmODgwMDM1Zjg3YjM4IFIxMTogZmZmZjg4MDAzNGI5MzQ0 ZCBSMTI6IDAwMDAwMDAwZWJmZWE3MTUKWyAgIDcyLjY5NjUzMF0gUjEzOiAwMDAwMDAwMDAwMDAw MDAwIFIxNDogZmZmZjg4MDAzNGM3Yzc4MCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKWyAgIDcyLjY5 NjUzMF0gRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmY4ODAwMzVmODAwMDAoMDAw MCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICAgNzIuNjk2NTMwXSBDUzogIDAwMTAgRFM6IDAw MDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgICA3Mi42OTY1MzBdIENSMjogZmZm Zjg4MDAzM2Y4N2Q3OCBDUjM6IDAwMDAwMDAwMzNjOTgwMDAgQ1I0OiAwMDAwMDAwMDAwMDQwNmEw ClsgICA3Mi42OTY1MzBdIFN0YWNrOgpbICAgNzIuNjk2NTMwXSAgZmZmZmZmZmY4MTRjYzgzNCBm ZmZmODgwMDM0YjkzNDY4IDAwMDAwMDE0ODE0MTY4MTggZmZmZjg4MDAzMzI2Yjg3NApbICAgNzIu Njk2NTMwXSAgZmZmZjg4MDAzNGM3Y2NiMCBmZmZmODgwMDMzZTQ4MDM4IGZmZmY4ODAwMzMyNmI4 NDAgZmZmZjg4MDAzNGI5MzQ2MgpbICAgNzIuNjk2NTMwXSAgZmZmZjg4MDAzMzI2Yjg4YSBmZmZm ODgwMDMzMjZiODhjIGZmZmY4ODAwMzRiOTM0NjggZmZmZjg4MDAzNWY4N2M3MApbICAgNzIuNjk2 NTMwXSBDYWxsIFRyYWNlOgpbICAgNzIuNjk2NTMwXSAgPElSUT4KWyAgIDcyLjY5NjUzMF0gIFs8 ZmZmZmZmZmY4MTRjYzgzND5dID8gdWRwX2dyb19yZWNlaXZlKzB4MWM2LzB4MWY5ClsgICA3Mi42 OTY1MzBdICBbPGZmZmZmZmZmODE0Y2NiMWM+XSB1ZHA0X2dyb19yZWNlaXZlKzB4MmI1LzB4MzEw ClsgICA3Mi42OTY1MzBdICBbPGZmZmZmZmZmODE0ZDk4OWI+XSBpbmV0X2dyb19yZWNlaXZlKzB4 NGEzLzB4NGNkClsgICA3Mi42OTY1MzBdICBbPGZmZmZmZmZmODE0MzFiMzI+XSBkZXZfZ3JvX3Jl Y2VpdmUrMHg1ODQvMHg3YTMKWyAgIDcyLjY5NjUzMF0gIFs8ZmZmZmZmZmY4MTBhZGY3YT5dID8g X19sb2NrX2lzX2hlbGQrMHgyOS8weDY0ClsgICA3Mi42OTY1MzBdICBbPGZmZmZmZmZmODE0MzIx Zjc+XSBuYXBpX2dyb19yZWNlaXZlKzB4MTI0LzB4MjFkClsgICA3Mi42OTY1MzBdICBbPGZmZmZm ZmZmYTAwMGIxNDU+XSB2aXJ0bmV0X3JlY2VpdmUrMHg4ZGYvMHg4ZjYgW3ZpcnRpb19uZXRdClsg ICA3Mi42OTY1MzBdICBbPGZmZmZmZmZmYTAwMGIyN2U+XSB2aXJ0bmV0X3BvbGwrMHgxZC8weDhk IFt2aXJ0aW9fbmV0XQpbICAgNzIuNjk2NTMwXSAgWzxmZmZmZmZmZjgxNDMxMzUwPl0gbmV0X3J4 X2FjdGlvbisweDE1Yi8weDNiOQpbICAgNzIuNjk2NTMwXSAgWzxmZmZmZmZmZjgxNTg5M2Q2Pl0g X19kb19zb2Z0aXJxKzB4MjE2LzB4NTQ2ClsgICA3Mi42OTY1MzBdICBbPGZmZmZmZmZmODEwNjIz OTI+XSBpcnFfZXhpdCsweDQ5LzB4YjYKWyAgIDcyLjY5NjUzMF0gIFs8ZmZmZmZmZmY4MTU4OGU5 YT5dIGRvX0lSUSsweGUyLzB4ZmEKWyAgIDcyLjY5NjUzMF0gIFs8ZmZmZmZmZmY4MTU4N2E0OT5d IGNvbW1vbl9pbnRlcnJ1cHQrMHg4OS8weDg5ClsgICA3Mi42OTY1MzBdICA8RU9JPgpbICAgNzIu Njk2NTMwXSAgWzxmZmZmZmZmZjgxMGIwNWRmPl0gPyB0cmFjZV9oYXJkaXJxc19vbl9jYWxsZXIr MHgyMjkvMHgyNzAKWyAgIDcyLjY5NjUzMF0gIFs8ZmZmZmZmZmY4MTAyYjNjNz5dID8gZGVmYXVs dF9pZGxlKzB4MWMvMHgyZApbICAgNzIuNjk2NTMwXSAgWzxmZmZmZmZmZjgxMDJiM2M1Pl0gPyBk ZWZhdWx0X2lkbGUrMHgxYS8weDJkClsgICA3Mi42OTY1MzBdICBbPGZmZmZmZmZmODEwMmJiOGM+ XSBhcmNoX2NwdV9pZGxlKzB4YS8weGMKWyAgIDcyLjY5NjUzMF0gIFs8ZmZmZmZmZmY4MTBhNmMz OT5dIGRlZmF1bHRfaWRsZV9jYWxsKzB4MWEvMHgxYwpbICAgNzIuNjk2NTMwXSAgWzxmZmZmZmZm ZjgxMGE2ZDk2Pl0gY3B1X3N0YXJ0dXBfZW50cnkrMHgxNWIvMHgyMGYKWyAgIDcyLjY5NjUzMF0g IFs8ZmZmZmZmZmY4MTAzOWE4MT5dIHN0YXJ0X3NlY29uZGFyeSsweDEyYy8weDEzMwpbICAgNzIu Njk2NTMwXSBDb2RlOiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiA3ZiBmZiBmZiBmZiBm ZiBmZiBmZiBmZiA3ZiAwMCA3ZSBmOCAzMyAwMCA4OCBmZiBmZiA2ZCA2MSA1OCA4MSBmZiBmZiBm ZiBmZiA1ZSBkZSAwYSA4MSBmZiBmZiBmZiBmZiA8MDA+IDVjIGUyIDM0IDAwIDg4IGZmIGZmIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwClsgICA3Mi42OTY1MzBdIFJJUCAg WzxmZmZmODgwMDMzZjg3ZDc4Pl0gMHhmZmZmODgwMDMzZjg3ZDc4ClsgICA3Mi42OTY1MzBdICBS U1AgPGZmZmY4ODAwMzVmODdiYzA+ClsgICA3Mi42OTY1MzBdIENSMjogZmZmZjg4MDAzM2Y4N2Q3 OApbICAgNzIuNjk2NTMwXSAtLS1bIGVuZCB0cmFjZSBhZDc3NThiOWExZGNjZjk5IF0tLS0KWyAg IDcyLjY5NjUzMF0gS2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6IEZhdGFsIGV4Y2VwdGlvbiBp biBpbnRlcnJ1cHQKWyAgIDcyLjY5NjUzMF0gS2VybmVsIE9mZnNldDogZGlzYWJsZWQKWyAgIDcy LjY5NjUzMF0gLS0tWyBlbmQgS2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6IEZhdGFsIGV4Y2Vw dGlvbiBpbiBpbnRlcnJ1cHQKCnYyOiB1c2UgZW1wdHkgaW5pdGlhbGlzZXIgaW5zdGVhZCBvZiAi eyBOVUxMIH0iIHRvIGF2b2lkIHJlbHlpbmcgb24KICAgIGZpcnN0IGZpZWxkJ3MgdHlwZS4KCkZp eGVzOiAzOGZkMmFmMjRmY2YgKCJ1ZHA6IEFkZCBzb2NrZXQgYmFzZWQgR1JPIGFuZCBjb25maWci KQpTaWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2wydHAvbDJ0cF9jb3JlLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRwX2NvcmUuYyBiL25l dC9sMnRwL2wydHBfY29yZS5jCmluZGV4IGFmY2EyZWIuLmVjMTdjYmUgMTAwNjQ0Ci0tLSBhL25l dC9sMnRwL2wydHBfY29yZS5jCisrKyBiL25ldC9sMnRwL2wydHBfY29yZS5jCkBAIC0xNTgxLDcg KzE1ODEsNyBAQCBpbnQgbDJ0cF90dW5uZWxfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgaW50IGZk LCBpbnQgdmVyc2lvbiwgdTMyIHR1bm5lbF9pZCwgdTMyCiAJLyogTWFyayBzb2NrZXQgYXMgYW4g ZW5jYXBzdWxhdGlvbiBzb2NrZXQuIFNlZSBuZXQvaXB2NC91ZHAuYyAqLwogCXR1bm5lbC0+ZW5j YXAgPSBlbmNhcDsKIAlpZiAoZW5jYXAgPT0gTDJUUF9FTkNBUFRZUEVfVURQKSB7Ci0JCXN0cnVj dCB1ZHBfdHVubmVsX3NvY2tfY2ZnIHVkcF9jZmc7CisJCXN0cnVjdCB1ZHBfdHVubmVsX3NvY2tf Y2ZnIHVkcF9jZmcgPSB7IH07CiAKIAkJdWRwX2NmZy5za191c2VyX2RhdGEgPSB0dW5uZWw7CiAJ CXVkcF9jZmcuZW5jYXBfdHlwZSA9IFVEUF9FTkNBUF9MMlRQSU5VRFA7Ci0tIAoyLjEuMAoKCkZy b20gZTIyNjRjZmVkZjc3N2VhZDg3MDc5N2I2MjFmZWEwZjlmM2JkNjAyNyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogSmFrdWIgU2l0bmlja2kgPGprYnNAcmVkaGF0LmNvbT4KRGF0ZTog V2VkLCA4IEp1biAyMDE2IDE1OjEzOjM0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxOS8yM10gaXB2 NjogU2tpcCBYRlJNIGxvb2t1cCBpZiBkc3RfZW50cnkgaW4gc29ja2V0IGNhY2hlIGlzCiB2YWxp ZAoKWyBVcHN0cmVhbSBjb21taXQgMDBiYzBlZjU4ODBkYzdiODJmOWMzMjBkZWFkNGFmYWFkNDhl NDdiZSBdCgpBdCBwcmVzZW50IHdlIHBlcmZvcm0gYW4geGZybV9sb29rdXAoKSBmb3IgZWFjaCBV RFB2NiBtZXNzYWdlIHdlCnNlbmQuIFRoZSBsb29rdXAgaW52b2x2ZXMgcXVlcnlpbmcgdGhlIGZs b3cgY2FjaGUgKGZsb3dfY2FjaGVfbG9va3VwKQphbmQsIGluIGNhc2Ugb2YgYSBjYWNoZSBtaXNz LCBjcmVhdGluZyBhbiBYRlJNIGJ1bmRsZS4KCklmIHdlIG1pc3MgdGhlIGZsb3cgY2FjaGUsIHdl IGNhbiBlbmQgdXAgY3JlYXRpbmcgYSBuZXcgYnVuZGxlIGFuZApkZXJpdmluZyB0aGUgcGF0aCBN VFUgKHhmcm1faW5pdF9wbXR1KSBmcm9tIG9uIGFuIGFscmVhZHkgdHJhbnNmb3JtZWQKZHN0X2Vu dHJ5LCB3aGljaCB3ZSBwYXNzIGZyb20gdGhlIHNvY2tldCBjYWNoZSAoc2stPnNrX2RzdF9jYWNo ZSkgZG93bgp0byB4ZnJtX2xvb2t1cCgpLiBUaGlzIGNhbiBoYXBwZW4gb25seSBpZiB3ZSdyZSBj YWNoaW5nIHRoZSBkc3RfZW50cnkKaW4gdGhlIHNvY2tldCwgdGhhdCBpcyB3aGVuIHdlJ3JlIHVz aW5nIGEgY29ubmVjdGVkIFVEUCBzb2NrZXQuCgpUbyBwdXQgaXQgYW5vdGhlciB3YXksIHRoZSBw YXRoIE1UVSBzaHJpbmtzIGVhY2ggdGltZSB3ZSBtaXNzIHRoZSBmbG93CmNhY2hlLCB3aGljaCBs YXRlciBvbiBsZWFkcyB0byBpbmNvcnJlY3RseSBmcmFnbWVudGVkIHBheWxvYWQuIEl0IGNhbgpi ZSBvYnNlcnZlZCB3aXRoIEVTUHY2IGluIHRyYW5zcG9ydCBtb2RlOgoKICAxKSBTZXQgdXAgYSB0 cmFuc2Zvcm1hdGlvbiBhbmQgbG93ZXIgdGhlIE1UVSB0byB0cmlnZ2VyIGZyYWdtZW50YXRpb24K ICAgICMgaXAgeGZybSBwb2xpY3kgYWRkIGRpciBvdXQgc3JjIDo6MSBkc3QgOjoxIFwKICAgICAg dG1wbCBzcmMgOjoxIGRzdCA6OjEgcHJvdG8gZXNwIHNwaSAxCiAgICAjIGlwIHhmcm0gc3RhdGUg YWRkIHNyYyA6OjEgZHN0IDo6MSBcCiAgICAgIHByb3RvIGVzcCBzcGkgMSBlbmMgJ2FlcycgMHgw YjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYgogICAgIyBpcCBsaW5rIHNldCBkZXYgbG8g bXR1IDE1MDAKCiAgMikgTW9uaXRvciB0aGUgcGFja2V0IGZsb3cgYW5kIHNldCB1cCBhbiBVRFAg c2luawogICAgIyB0Y3BkdW1wIC1uaSBsbyAtdHR0ICYKICAgICMgc29jYXQgdWRwNi1saXN0ZW46 MTIzNDUsZm9yayAvZGV2L251bGwgJgoKICAzKSBTZW5kIGEgZGF0YWdyYW0gdGhhdCBuZWVkcyBm cmFnbWVudGF0aW9uIHdpdGggYSBjb25uZWN0ZWQgc29ja2V0CiAgICAjIHBlcmwgLWUgJ3ByaW50 ICJAIiB4IDE0NzAgfCBzb2NhdCAtIHVkcDY6Wzo6MV06MTIzNDUKICAgIDIwMTYvMDYvMDcgMTg6 NTI6NTIgc29jYXRbNzI0XSBFIHJlYWQoMywgMHg1NTViYjNkNWJhMDAsIDgxOTIpOiBQcm90b2Nv bCBlcnJvcgogICAgMDA6MDA6MDAuMDAwMDAwIElQNiA6OjEgPiA6OjE6IGZyYWcgKDB8MTQ0OCkg RVNQKHNwaT0weDAwMDAwMDAxLHNlcT0weDIpLCBsZW5ndGggMTQ0OAogICAgMDA6MDA6MDAuMDAw MDE0IElQNiA6OjEgPiA6OjE6IGZyYWcgKDE0NDh8MzIpCiAgICAwMDowMDowMC4wMDAwNTAgSVA2 IDo6MSA+IDo6MTogRVNQKHNwaT0weDAwMDAwMDAxLHNlcT0weDMpLCBsZW5ndGggMTI3MgogICAg KF4gSUNNUHY2IFBhcmFtZXRlciBQcm9ibGVtKQogICAgMDA6MDA6MDAuMDAwMDIyIElQNiA6OjEg PiA6OjE6IEVTUChzcGk9MHgwMDAwMDAwMSxzZXE9MHg1KSwgbGVuZ3RoIDEzNgoKICA0KSBDb21w YXJlIGl0IHRvIGEgbm9uLWNvbm5lY3RlZCBzb2NrZXQKICAgICMgcGVybCAtZSAncHJpbnQgIkAi IHggMTUwMCcgfCBzb2NhdCAtIHVkcDYtc2VuZHRvOls6OjFdOjEyMzQ1CiAgICAwMDowMDo0MC41 MzU0ODggSVA2IDo6MSA+IDo6MTogZnJhZyAoMHwxNDQ4KSBFU1Aoc3BpPTB4MDAwMDAwMDEsc2Vx PTB4NiksIGxlbmd0aCAxNDQ4CiAgICAwMDowMDowMC4wMDAwMTAgSVA2IDo6MSA+IDo6MTogZnJh ZyAoMTQ0OHw2NCkKCldoYXQgaGFwcGVucyBpbiBzdGVwICgzKSBpczoKCiAgMSkgd2hlbiBjb25u ZWN0aW5nIHRoZSBzb2NrZXQgaW4gX19pcDZfZGF0YWdyYW1fY29ubmVjdCgpLCB3ZQogICAgIHBl cmZvcm0gYW4gWEZSTSBsb29rdXAsIG1pc3MgdGhlIGZsb3cgY2FjaGUsIGNyZWF0ZSBhbiBYRlJN CiAgICAgYnVuZGxlLCBhbmQgY2FjaGUgdGhlIGRlc3RpbmF0aW9uLAoKICAyKSBhZnRlcndhcmRz LCB3aGVuIHNlbmRpbmcgdGhlIGRhdGFncmFtLCB3ZSBwZXJmb3JtIGFuIFhGUk0gbG9va3VwLAog ICAgIGFnYWluLCBtaXNzIHRoZSBmbG93IGNhY2hlIChkdWUgdG8gbWlzbWF0Y2ggb2YgZmxvd2k2 X2lpZiBhbmQKICAgICBmbG93aTZfb2lmLCB3aGljaCBpcyBhbiBpc3N1ZSBvZiBpdHMgb3duKSwg YW5kIHJlY3JlYXRlIGFuIFhGUk0KICAgICBidW5kbGUgYmFzZWQgb24gdGhlIGNhY2hlZCAoYW5k IGFscmVhZHkgdHJhbnNmb3JtZWQpIGRlc3RpbmF0aW9uLgoKVG8gcHJldmVudCB0aGUgcmVjcmVh dGlvbiBvZiBhbiBYRlJNIGJ1bmRsZSwgYXZvaWQgYW4gWEZSTSBsb29rdXAKYWx0b2dldGhlciB3 aGVuZXZlciB3ZSBhbHJlYWR5IGhhdmUgYSBkZXN0aW5hdGlvbiBlbnRyeSBjYWNoZWQgaW4gdGhl CnNvY2tldC4gVGhpcyBwcmV2ZW50cyB0aGUgcGF0aCBNVFUgc2hyaW5rYWdlIGFuZCBicmluZ3Mg dXMgb24gcGFyIHdpdGgKVURQdjQuCgpUaGUgZml4IGFsc28gYmVuZWZpdHMgY29ubmVjdGVkIFBJ Tkd2NiBzb2NrZXRzLCBhbm90aGVyIHVzZXIgb2YKaXA2X3NrX2RzdF9sb29rdXBfZmxvdygpLCB3 aG8gYWxzbyBzdWZmZXIgbWVzc2FnZXMgYmVpbmcgdHJhbnNmb3JtZWQKdHdpY2UuCgpKb2ludCB3 b3JrIHdpdGggSGFubmVzIEZyZWRlcmljIFNvd2EuCgpSZXBvcnRlZC1ieTogSmFuIFRsdWthIDxq dGx1a2FAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogSmFrdWIgU2l0bmlja2kgPGprYnNAcmVk aGF0LmNvbT4KQWNrZWQtYnk6IEhhbm5lcyBGcmVkZXJpYyBTb3dhIDxoYW5uZXNAc3RyZXNzaW5k dWt0aW9uLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl9vdXRwdXQuYyB8IDExICsrKy0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L25ldC9pcHY2L2lwNl9vdXRwdXQuYyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYwppbmRleCAyYTY2 MDZjLi5mMjhlOTQwIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKKysrIGIvbmV0 L2lwdjYvaXA2X291dHB1dC5jCkBAIC0xMDcyLDE3ICsxMDcyLDEyIEBAIHN0cnVjdCBkc3RfZW50 cnkgKmlwNl9za19kc3RfbG9va3VwX2Zsb3coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgZmxvd2k2 ICpmbDYsCiAJCQkJCSBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgKmZpbmFsX2RzdCkKIHsKIAlzdHJ1 Y3QgZHN0X2VudHJ5ICpkc3QgPSBza19kc3RfY2hlY2soc2ssIGluZXQ2X3NrKHNrKS0+ZHN0X2Nv b2tpZSk7Ci0JaW50IGVycjsKIAogCWRzdCA9IGlwNl9za19kc3RfY2hlY2soc2ssIGRzdCwgZmw2 KTsKKwlpZiAoIWRzdCkKKwkJZHN0ID0gaXA2X2RzdF9sb29rdXBfZmxvdyhzaywgZmw2LCBmaW5h bF9kc3QpOwogCi0JZXJyID0gaXA2X2RzdF9sb29rdXBfdGFpbChzb2NrX25ldChzayksIHNrLCAm ZHN0LCBmbDYpOwotCWlmIChlcnIpCi0JCXJldHVybiBFUlJfUFRSKGVycik7Ci0JaWYgKGZpbmFs X2RzdCkKLQkJZmw2LT5kYWRkciA9ICpmaW5hbF9kc3Q7Ci0KLQlyZXR1cm4geGZybV9sb29rdXBf cm91dGUoc29ja19uZXQoc2spLCBkc3QsIGZsb3dpNl90b19mbG93aShmbDYpLCBzaywgMCk7CisJ cmV0dXJuIGRzdDsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGlwNl9za19kc3RfbG9va3VwX2Zsb3cp OwogCi0tIAoyLjEuMAoKCkZyb20gN2VjYjQ5ODkzMWFiYTZiZGUwMzExYjFmMWQ3NzhkMmUwNWNl YzJkYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR2l1c2VwcGUgQ0FWQUxMQVJPIDxw ZXBwZS5jYXZhbGxhcm9Ac3QuY29tPgpEYXRlOiBNb24sIDIzIE1heSAyMDE2IDE1OjE3OjQyICsw MjAwClN1YmplY3Q6IFtQQVRDSCAyMC8yM10gUmV2ZXJ0ICJzdG1tYWM6IEZpeCAnZXRoMDogTm8g UEhZIGZvdW5kJyByZWdyZXNzaW9uIgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRl eHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoK WyBVcHN0cmVhbSBjb21taXQgZDdlOTQ0YzhkZGMwOTgzNjQwYTlhMzI4NjhmYjIxNzQ4NWQxMmNh MiBdCgpUaGlzIHJldmVydHMgY29tbWl0IDg4ZjhiMWJiNDFjNjIwOGY4MWI2YTQ4MDI0NDUzM2Rl ZDdiNTk0OTMuCmR1ZSB0byBwcm9ibGVtcyBvbiBHZWVrQm94IGFuZCBCYW5hbmEgUGkgTTEgYm9h cmQgd2hlbgpjb25uZWN0ZWQgdG8gYSByZWFsIHRyYW5zY2VpdmVyIGluc3RlYWQgb2YgYSBzd2l0 Y2ggdmlhCmZpeGVkLWxpbmsuCgpTaWduZWQtb2ZmLWJ5OiBHaXVzZXBwZSBDYXZhbGxhcm8gPHBl cHBlLmNhdmFsbGFyb0BzdC5jb20+CkNjOiBHYWJyaWVsIEZlcm5hbmRleiA8Z2FicmllbC5mZXJu YW5kZXpAbGluYXJvLm9yZz4KQ2M6IEFuZHJlYXMgRsOkcmJlciA8YWZhZXJiZXJAc3VzZS5kZT4K Q2M6IEZyYW5rIFNjaMOkZmVyIDxmc2NoYWVmZXIub3NzQGdvb2dsZW1haWwuY29tPgpDYzogRGlu aCBOZ3V5ZW4gPGRpbmgubGludXhAZ21haWwuY29tPgpDYzogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3Rt bWFjX21kaW8uYyAgICAgfCAxMSArKysrKysrKysrLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvc3Rt aWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMgfCAgOSArLS0tLS0tLS0KIDIgZmlsZXMgY2hh bmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYwppbmRleCBmZjE1ZGE0Li42 MDFiZmIyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMv c3RtbWFjX21kaW8uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9z dG1tYWNfbWRpby5jCkBAIC0xOTksMTIgKzE5OSwyMSBAQCBpbnQgc3RtbWFjX21kaW9fcmVnaXN0 ZXIoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpCiAJc3RydWN0IHN0bW1hY19wcml2ICpwcml2ID0g bmV0ZGV2X3ByaXYobmRldik7CiAJc3RydWN0IHN0bW1hY19tZGlvX2J1c19kYXRhICptZGlvX2J1 c19kYXRhID0gcHJpdi0+cGxhdC0+bWRpb19idXNfZGF0YTsKIAlpbnQgYWRkciwgZm91bmQ7Ci0J c3RydWN0IGRldmljZV9ub2RlICptZGlvX25vZGUgPSBwcml2LT5wbGF0LT5tZGlvX25vZGU7CisJ c3RydWN0IGRldmljZV9ub2RlICptZGlvX25vZGUgPSBOVUxMOworCXN0cnVjdCBkZXZpY2Vfbm9k ZSAqY2hpbGRfbm9kZSA9IE5VTEw7CiAKIAlpZiAoIW1kaW9fYnVzX2RhdGEpCiAJCXJldHVybiAw OwogCiAJaWYgKElTX0VOQUJMRUQoQ09ORklHX09GKSkgeworCQlmb3JfZWFjaF9jaGlsZF9vZl9u b2RlKHByaXYtPmRldmljZS0+b2Zfbm9kZSwgY2hpbGRfbm9kZSkgeworCQkJaWYgKG9mX2Rldmlj ZV9pc19jb21wYXRpYmxlKGNoaWxkX25vZGUsCisJCQkJCQkgICAgInNucHMsZHdtYWMtbWRpbyIp KSB7CisJCQkJbWRpb19ub2RlID0gY2hpbGRfbm9kZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQor CiAJCWlmIChtZGlvX25vZGUpIHsKIAkJCW5ldGRldl9kYmcobmRldiwgIkZPVU5EIE1ESU8gc3Vi bm9kZVxuIik7CiAJCX0gZWxzZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9z dG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0 bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jCmluZGV4IDQ1MTRiYTcuLjZhNTJmYTEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0 Zm9ybS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19w bGF0Zm9ybS5jCkBAIC0xMTAsNyArMTEwLDYgQEAgc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBjb25zdCBjaGFyICoqbWFjKQogCXN0cnVjdCBkZXZp Y2Vfbm9kZSAqbnAgPSBwZGV2LT5kZXYub2Zfbm9kZTsKIAlzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0 X2RhdGEgKnBsYXQ7CiAJc3RydWN0IHN0bW1hY19kbWFfY2ZnICpkbWFfY2ZnOwotCXN0cnVjdCBk ZXZpY2Vfbm9kZSAqY2hpbGRfbm9kZSA9IE5VTEw7CiAKIAlwbGF0ID0gZGV2bV9remFsbG9jKCZw ZGV2LT5kZXYsIHNpemVvZigqcGxhdCksIEdGUF9LRVJORUwpOwogCWlmICghcGxhdCkKQEAgLTE0 MSwxOSArMTQwLDEzIEBAIHN0bW1hY19wcm9iZV9jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldiwgY29uc3QgY2hhciAqKm1hYykKIAkJcGxhdC0+cGh5X25vZGUgPSBvZl9ub2Rl X2dldChucCk7CiAJfQogCi0JZm9yX2VhY2hfY2hpbGRfb2Zfbm9kZShucCwgY2hpbGRfbm9kZSkK LQkJaWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKGNoaWxkX25vZGUsCSJzbnBzLGR3bWFjLW1k aW8iKSkgewotCQkJcGxhdC0+bWRpb19ub2RlID0gY2hpbGRfbm9kZTsKLQkJCWJyZWFrOwotCQl9 Ci0KIAkvKiAic25wcyxwaHktYWRkciIgaXMgbm90IGEgc3RhbmRhcmQgcHJvcGVydHkuIE1hcmsg aXQgYXMgZGVwcmVjYXRlZAogCSAqIGFuZCB3YXJuIG9mIGl0cyB1c2UuIFJlbW92ZSB0aGlzIHdo ZW4gcGh5IG5vZGUgc3VwcG9ydCBpcyBhZGRlZC4KIAkgKi8KIAlpZiAob2ZfcHJvcGVydHlfcmVh ZF91MzIobnAsICJzbnBzLHBoeS1hZGRyIiwgJnBsYXQtPnBoeV9hZGRyKSA9PSAwKQogCQlkZXZf d2FybigmcGRldi0+ZGV2LCAic25wcyxwaHktYWRkciBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkXG4i KTsKIAotCWlmICgocGxhdC0+cGh5X25vZGUgJiYgIW9mX3BoeV9pc19maXhlZF9saW5rKG5wKSkg fHwgIXBsYXQtPm1kaW9fbm9kZSkKKwlpZiAoKHBsYXQtPnBoeV9ub2RlICYmICFvZl9waHlfaXNf Zml4ZWRfbGluayhucCkpIHx8IHBsYXQtPnBoeV9idXNfbmFtZSkKIAkJcGxhdC0+bWRpb19idXNf ZGF0YSA9IE5VTEw7CiAJZWxzZQogCQlwbGF0LT5tZGlvX2J1c19kYXRhID0KLS0gCjIuMS4wCgoK RnJvbSA1NzhjNDUwMmRiOTE1MzMxZmYxZGE1MWRkYmJkZGFjYjA0MzM3MGEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHaXVzZXBwZSBDQVZBTExBUk8gPHBlcHBlLmNhdmFsbGFyb0Bz dC5jb20+CkRhdGU6IE1vbiwgMjMgTWF5IDIwMTYgMTU6MTc6NDMgKzAyMDAKU3ViamVjdDogW1BB VENIIDIxLzIzXSBzdG1tYWM6IGZpeCBNRElPIHNldHRpbmdzCk1JTUUtVmVyc2lvbjogMS4wCkNv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVu Y29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCBhNzY1N2YxMjhjMjc5YWU1Nzk2YWIyY2E3 ZDA0YTc4MTlmNDI1OWYwIF0KCkluaXRpYWxseSB0aGUgcGh5X2J1c19uYW1lIHdhcyBhZGRlZCB0 byBtYW5pcHVsYXRlIHRoZQpkcml2ZXIgbmFtZSBidXQgaXQgd2FzIHJlY2VudGx5IGp1c3QgdXNl ZCB0byBtYW5hZ2UgdGhlCmZpeGVkLWxpbmsgYW5kIHRoZW4gdG8gdGFrZSBzb21lIGRlY2lzaW9u IGF0IHJ1bi10aW1lLgpTbyB0aGUgcGF0Y2ggdXNlcyB0aGUgaXNfcHNldWRvX2ZpeGVkX2xpbmsg YW5kIHJlbW92ZXMKdGhlIHBoeV9idXNfbmFtZSB2YXJpYWJsZSBub3QgbmVjZXNzYXJ5IGFueW1v cmUuCgpUaGUgZHJpdmVyIGNhbiBtYW5hZ2UgdGhlIG1kaW8gcmVnaXN0cmF0aW9uIGJ5IHVzaW5n IHBoeS1oYW5kbGUsCmR3bWFjLW1kaW8gYW5kIG93biBwYXJhbWV0ZXIgZS5nLiBzbnBzLHBoeS1h ZGRyLgpUaGlzIHBhdGNoIHRha2VzIGNhcmUgYWJvdXQgYWxsIHRoZXNlIHBvc3NpYmxlIGNvbmZp Z3VyYXRpb25zCmFuZCBmaXhlcyB0aGUgbWRpbyByZWdpc3RyYXRpb24gaW4gY2FzZSBvZiB0aGVy ZSBpcyBhIHJlYWwKdHJhbnNjZWl2ZXIgb3IgYSBzd2l0Y2ggKHRoYXQgbmVlZHMgdG8gYmUgbWFu YWdlZCBieSB1c2luZwpmaXhlZC1saW5rKS4KClNpZ25lZC1vZmYtYnk6IEdpdXNlcHBlIENhdmFs bGFybyA8cGVwcGUuY2F2YWxsYXJvQHN0LmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJlYXMgRsOkcmJl ciA8YWZhZXJiZXJAc3VzZS5kZT4KVGVzdGVkLWJ5OiBGcmFuayBTY2jDpGZlciA8ZnNjaGFlZmVy Lm9zc0Bnb29nbGVtYWlsLmNvbT4KQ2M6IEdhYnJpZWwgRmVybmFuZGV6IDxnYWJyaWVsLmZlcm5h bmRlekBsaW5hcm8ub3JnPgpDYzogRGluaCBOZ3V5ZW4gPGRpbmgubGludXhAZ21haWwuY29tPgpD YzogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgpDYzogUGhpbCBSZWlkIDxw cmVpZEBlbGVjdHJvbWFnLmNvbS5hdT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3Jv L3N0bW1hYy9zdG1tYWNfbWFpbi5jICB8IDExICstLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvc3Rt aWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYyAgfCAxOSArLS0tLQogLi4uL25ldC9ldGhlcm5ldC9z dG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYyAgfCA4NCArKysrKysrKysrKysrKysrKy0t LS0tCiAzIGZpbGVzIGNoYW5nZWQsIDcwIGluc2VydGlvbnMoKyksIDQ0IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19t YWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5j CmluZGV4IGMyMTAxNWIuLjM4OWQ3ZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv c3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwpAQCAtMjcxLDcgKzI3MSw2IEBAIHN0YXRpYyB2 b2lkIHN0bW1hY19lZWVfY3RybF90aW1lcih1bnNpZ25lZCBsb25nIGFyZykKICAqLwogYm9vbCBz dG1tYWNfZWVlX2luaXQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KQogewotCWNoYXIgKnBoeV9i dXNfbmFtZSA9IHByaXYtPnBsYXQtPnBoeV9idXNfbmFtZTsKIAl1bnNpZ25lZCBsb25nIGZsYWdz OwogCWJvb2wgcmV0ID0gZmFsc2U7CiAKQEAgLTI4Myw3ICsyODIsNyBAQCBib29sIHN0bW1hY19l ZWVfaW5pdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpCiAJCWdvdG8gb3V0OwogCiAJLyogTmV2 ZXIgaW5pdCBFRUUgaW4gY2FzZSBvZiBhIHN3aXRjaCBpcyBhdHRhY2hlZCAqLwotCWlmIChwaHlf YnVzX25hbWUgJiYgKCFzdHJjbXAocGh5X2J1c19uYW1lLCAiZml4ZWQiKSkpCisJaWYgKHByaXYt PnBoeWRldi0+aXNfcHNldWRvX2ZpeGVkX2xpbmspCiAJCWdvdG8gb3V0OwogCiAJLyogTUFDIGNv cmUgc3VwcG9ydHMgdGhlIEVFRSBmZWF0dXJlLiAqLwpAQCAtODIwLDEyICs4MTksOCBAQCBzdGF0 aWMgaW50IHN0bW1hY19pbml0X3BoeShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCQlwaHlkZXYg PSBvZl9waHlfY29ubmVjdChkZXYsIHByaXYtPnBsYXQtPnBoeV9ub2RlLAogCQkJCQkmc3RtbWFj X2FkanVzdF9saW5rLCAwLCBpbnRlcmZhY2UpOwogCX0gZWxzZSB7Ci0JCWlmIChwcml2LT5wbGF0 LT5waHlfYnVzX25hbWUpCi0JCQlzbnByaW50ZihidXNfaWQsIE1JSV9CVVNfSURfU0laRSwgIiVz LSV4IiwKLQkJCQkgcHJpdi0+cGxhdC0+cGh5X2J1c19uYW1lLCBwcml2LT5wbGF0LT5idXNfaWQp OwotCQllbHNlCi0JCQlzbnByaW50ZihidXNfaWQsIE1JSV9CVVNfSURfU0laRSwgInN0bW1hYy0l eCIsCi0JCQkJIHByaXYtPnBsYXQtPmJ1c19pZCk7CisJCXNucHJpbnRmKGJ1c19pZCwgTUlJX0JV U19JRF9TSVpFLCAic3RtbWFjLSV4IiwKKwkJCSBwcml2LT5wbGF0LT5idXNfaWQpOwogCiAJCXNu cHJpbnRmKHBoeV9pZF9mbXQsIE1JSV9CVVNfSURfU0laRSArIDMsIFBIWV9JRF9GTVQsIGJ1c19p ZCwKIAkJCSBwcml2LT5wbGF0LT5waHlfYWRkcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYwppbmRleCA2MDFiZmIyMS4uMmZlYzc1YyAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21k aW8uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRp by5jCkBAIC0xOTgsMjkgKzE5OCwxMiBAQCBpbnQgc3RtbWFjX21kaW9fcmVnaXN0ZXIoc3RydWN0 IG5ldF9kZXZpY2UgKm5kZXYpCiAJc3RydWN0IG1paV9idXMgKm5ld19idXM7CiAJc3RydWN0IHN0 bW1hY19wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmRldik7CiAJc3RydWN0IHN0bW1hY19tZGlv X2J1c19kYXRhICptZGlvX2J1c19kYXRhID0gcHJpdi0+cGxhdC0+bWRpb19idXNfZGF0YTsKKwlz dHJ1Y3QgZGV2aWNlX25vZGUgKm1kaW9fbm9kZSA9IHByaXYtPnBsYXQtPm1kaW9fbm9kZTsKIAlp bnQgYWRkciwgZm91bmQ7Ci0Jc3RydWN0IGRldmljZV9ub2RlICptZGlvX25vZGUgPSBOVUxMOwot CXN0cnVjdCBkZXZpY2Vfbm9kZSAqY2hpbGRfbm9kZSA9IE5VTEw7CiAKIAlpZiAoIW1kaW9fYnVz X2RhdGEpCiAJCXJldHVybiAwOwogCi0JaWYgKElTX0VOQUJMRUQoQ09ORklHX09GKSkgewotCQlm b3JfZWFjaF9jaGlsZF9vZl9ub2RlKHByaXYtPmRldmljZS0+b2Zfbm9kZSwgY2hpbGRfbm9kZSkg ewotCQkJaWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKGNoaWxkX25vZGUsCi0JCQkJCQkgICAg InNucHMsZHdtYWMtbWRpbyIpKSB7Ci0JCQkJbWRpb19ub2RlID0gY2hpbGRfbm9kZTsKLQkJCQli cmVhazsKLQkJCX0KLQkJfQotCi0JCWlmIChtZGlvX25vZGUpIHsKLQkJCW5ldGRldl9kYmcobmRl diwgIkZPVU5EIE1ESU8gc3Vibm9kZVxuIik7Ci0JCX0gZWxzZSB7Ci0JCQluZXRkZXZfd2Fybihu ZGV2LCAiTm8gTURJTyBzdWJub2RlIGZvdW5kXG4iKTsKLQkJfQotCX0KLQogCW5ld19idXMgPSBt ZGlvYnVzX2FsbG9jKCk7CiAJaWYgKG5ld19idXMgPT0gTlVMTCkKIAkJcmV0dXJuIC1FTk9NRU07 CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNf cGxhdGZvcm0uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19w bGF0Zm9ybS5jCmluZGV4IDZhNTJmYTEuLjE5MGZiNmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jCkBAIC05Niw2ICs5 Niw2OSBAQCBzdGF0aWMgaW50IGR3bWFjMTAwMF92YWxpZGF0ZV91Y2FzdF9lbnRyaWVzKGludCB1 Y2FzdF9lbnRyaWVzKQogfQogCiAvKioKKyAqIHN0bW1hY19kdF9waHkgLSBwYXJzZSBkZXZpY2Ut dHJlZSBkcml2ZXIgcGFyYW1ldGVycyB0byBhbGxvY2F0ZSBQSFkgcmVzb3VyY2VzCisgKiBAcGxh dDogZHJpdmVyIGRhdGEgcGxhdGZvcm0gc3RydWN0dXJlCisgKiBAbnA6IGRldmljZSB0cmVlIG5v ZGUKKyAqIEBkZXY6IGRldmljZSBwb2ludGVyCisgKiBEZXNjcmlwdGlvbjoKKyAqIFRoZSBtZGlv IGJ1cyB3aWxsIGJlIGFsbG9jYXRlZCBpbiBjYXNlIG9mIGEgcGh5IHRyYW5zY2VpdmVyIGlzIG9u IGJvYXJkOworICogaXQgd2lsbCBiZSBOVUxMIGlmIHRoZSBmaXhlZC1saW5rIGlzIGNvbmZpZ3Vy ZWQuCisgKiBJZiB0aGVyZSBpcyB0aGUgInNucHMsZHdtYWMtbWRpbyIgc3ViLW5vZGUgdGhlIG1k aW8gd2lsbCBiZSBhbGxvY2F0ZWQKKyAqIGluIGFueSBjYXNlIChmb3IgRFNBLCBtZGlvIG11c3Qg YmUgcmVnaXN0ZXJlZCBldmVuIGlmIGZpeGVkLWxpbmspLgorICogVGhlIHRhYmxlIGJlbG93IHN1 bXMgdGhlIHN1cHBvcnRlZCBjb25maWd1cmF0aW9uczoKKyAqCS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqCXNucHMscGh5LWFkZHIJfCAgICAgWQorICoJLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICoJcGh5LWhhbmRsZQl8ICAgICBZCisgKgktLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKglmaXhlZC1saW5rCXwgICAgIE4KKyAqCS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCXNucHMsZHdtYWMtbWRpbwl8CisgKgkgIGV2ZW4gaWYJ fCAgICAgWQorICoJZml4ZWQtbGluawl8CisgKgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKgorICogSXQgcmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBvdGhlcndpc2UgLUVO T0RFVi4KKyAqLworc3RhdGljIGludCBzdG1tYWNfZHRfcGh5KHN0cnVjdCBwbGF0X3N0bW1hY2Vu ZXRfZGF0YSAqcGxhdCwKKwkJCSBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLCBzdHJ1Y3QgZGV2aWNl ICpkZXYpCit7CisJYm9vbCBtZGlvID0gdHJ1ZTsKKworCS8qIElmIHBoeS1oYW5kbGUgcHJvcGVy dHkgaXMgcGFzc2VkIGZyb20gRFQsIHVzZSBpdCBhcyB0aGUgUEhZICovCisJcGxhdC0+cGh5X25v ZGUgPSBvZl9wYXJzZV9waGFuZGxlKG5wLCAicGh5LWhhbmRsZSIsIDApOworCWlmIChwbGF0LT5w aHlfbm9kZSkKKwkJZGV2X2RiZyhkZXYsICJGb3VuZCBwaHktaGFuZGxlIHN1Ym5vZGVcbiIpOwor CisJLyogSWYgcGh5LWhhbmRsZSBpcyBub3Qgc3BlY2lmaWVkLCBjaGVjayBpZiB3ZSBoYXZlIGEg Zml4ZWQtcGh5ICovCisJaWYgKCFwbGF0LT5waHlfbm9kZSAmJiBvZl9waHlfaXNfZml4ZWRfbGlu ayhucCkpIHsKKwkJaWYgKChvZl9waHlfcmVnaXN0ZXJfZml4ZWRfbGluayhucCkgPCAwKSkKKwkJ CXJldHVybiAtRU5PREVWOworCisJCWRldl9kYmcoZGV2LCAiRm91bmQgZml4ZWQtbGluayBzdWJu b2RlXG4iKTsKKwkJcGxhdC0+cGh5X25vZGUgPSBvZl9ub2RlX2dldChucCk7CisJCW1kaW8gPSBm YWxzZTsKKwl9CisKKwkvKiBJZiBzbnBzLGR3bWFjLW1kaW8gaXMgcGFzc2VkIGZyb20gRFQsIGFs d2F5cyByZWdpc3RlciB0aGUgTURJTyAqLworCWZvcl9lYWNoX2NoaWxkX29mX25vZGUobnAsIHBs YXQtPm1kaW9fbm9kZSkgeworCQlpZiAob2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUocGxhdC0+bWRp b19ub2RlLCAic25wcyxkd21hYy1tZGlvIikpCisJCQlicmVhazsKKwl9CisKKwlpZiAocGxhdC0+ bWRpb19ub2RlKSB7CisJCWRldl9kYmcoZGV2LCAiRm91bmQgTURJTyBzdWJub2RlXG4iKTsKKwkJ bWRpbyA9IHRydWU7CisJfQorCisJaWYgKG1kaW8pCisJCXBsYXQtPm1kaW9fYnVzX2RhdGEgPQor CQkJZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfbWRpb19idXNfZGF0YSks CisJCQkJICAgICBHRlBfS0VSTkVMKTsKKwlyZXR1cm4gMDsKK30KKworLyoqCiAgKiBzdG1tYWNf cHJvYmVfY29uZmlnX2R0IC0gcGFyc2UgZGV2aWNlLXRyZWUgZHJpdmVyIHBhcmFtZXRlcnMKICAq IEBwZGV2OiBwbGF0Zm9ybV9kZXZpY2Ugc3RydWN0dXJlCiAgKiBAcGxhdDogZHJpdmVyIGRhdGEg cGxhdGZvcm0gc3RydWN0dXJlCkBAIC0xMjksMzAgKzE5MiwxNSBAQCBzdG1tYWNfcHJvYmVfY29u ZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIGNvbnN0IGNoYXIgKiptYWMpCiAJ LyogRGVmYXVsdCB0byBwaHkgYXV0by1kZXRlY3Rpb24gKi8KIAlwbGF0LT5waHlfYWRkciA9IC0x OwogCi0JLyogSWYgd2UgZmluZCBhIHBoeS1oYW5kbGUgcHJvcGVydHksIHVzZSBpdCBhcyB0aGUg UEhZICovCi0JcGxhdC0+cGh5X25vZGUgPSBvZl9wYXJzZV9waGFuZGxlKG5wLCAicGh5LWhhbmRs ZSIsIDApOwotCi0JLyogSWYgcGh5LWhhbmRsZSBpcyBub3Qgc3BlY2lmaWVkLCBjaGVjayBpZiB3 ZSBoYXZlIGEgZml4ZWQtcGh5ICovCi0JaWYgKCFwbGF0LT5waHlfbm9kZSAmJiBvZl9waHlfaXNf Zml4ZWRfbGluayhucCkpIHsKLQkJaWYgKChvZl9waHlfcmVnaXN0ZXJfZml4ZWRfbGluayhucCkg PCAwKSkKLQkJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwotCi0JCXBsYXQtPnBoeV9ub2RlID0g b2Zfbm9kZV9nZXQobnApOwotCX0KLQogCS8qICJzbnBzLHBoeS1hZGRyIiBpcyBub3QgYSBzdGFu ZGFyZCBwcm9wZXJ0eS4gTWFyayBpdCBhcyBkZXByZWNhdGVkCiAJICogYW5kIHdhcm4gb2YgaXRz IHVzZS4gUmVtb3ZlIHRoaXMgd2hlbiBwaHkgbm9kZSBzdXBwb3J0IGlzIGFkZGVkLgogCSAqLwog CWlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgInNucHMscGh5LWFkZHIiLCAmcGxhdC0+cGh5 X2FkZHIpID09IDApCiAJCWRldl93YXJuKCZwZGV2LT5kZXYsICJzbnBzLHBoeS1hZGRyIHByb3Bl cnR5IGlzIGRlcHJlY2F0ZWRcbiIpOwogCi0JaWYgKChwbGF0LT5waHlfbm9kZSAmJiAhb2ZfcGh5 X2lzX2ZpeGVkX2xpbmsobnApKSB8fCBwbGF0LT5waHlfYnVzX25hbWUpCi0JCXBsYXQtPm1kaW9f YnVzX2RhdGEgPSBOVUxMOwotCWVsc2UKLQkJcGxhdC0+bWRpb19idXNfZGF0YSA9Ci0JCQlkZXZt X2t6YWxsb2MoJnBkZXYtPmRldiwKLQkJCQkgICAgIHNpemVvZihzdHJ1Y3Qgc3RtbWFjX21kaW9f YnVzX2RhdGEpLAotCQkJCSAgICAgR0ZQX0tFUk5FTCk7CisJLyogVG8gQ29uZmlndXJlIFBIWSBi eSB1c2luZyBhbGwgZGV2aWNlLXRyZWUgc3VwcG9ydGVkIHByb3BlcnRpZXMgKi8KKwlpZiAoc3Rt bWFjX2R0X3BoeShwbGF0LCBucCwgJnBkZXYtPmRldikpCisJCXJldHVybiBFUlJfUFRSKC1FTk9E RVYpOwogCiAJb2ZfcHJvcGVydHlfcmVhZF91MzIobnAsICJ0eC1maWZvLWRlcHRoIiwgJnBsYXQt PnR4X2ZpZm9fc2l6ZSk7CiAKLS0gCjIuMS4wCgoKRnJvbSAzMzJjZWVkMGM3ZjRhOGIxZmUzNmUz ZmZlMGNjYmNiMzM2NzQ0MTBhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBB aGVybiA8ZHNhQGN1bXVsdXNuZXR3b3Jrcy5jb20+CkRhdGU6IFdlZCwgMjUgTWF5IDIwMTYgMDk6 MzU6MzAgLTA3MDAKU3ViamVjdDogW1BBVENIIDIyLzIzXSBuZXQ6IHZyZjogRml4IGRzdCByZWZl cmVuY2UgY291bnRpbmcKClsgVXBzdHJlYW0gY29tbWl0IDlhYjE3OWQ4M2I0ZTMxZWEyNzdhMTIz NDkyZTQxOTA2N2MyZjEyOWEgXQoKVml2ZWsgcmVwb3J0ZWQgYSBrZXJuZWwgZXhjZXB0aW9uIGRl bGV0aW5nIGEgVlJGIHdpdGggYW4gYWN0aXZlCmNvbm5lY3Rpb24gdGhyb3VnaCBpdC4gVGhlIHJv b3QgY2F1c2UgaXMgdGhhdCB0aGUgc29ja2V0IGhhcyBhIGNhY2hlZApyZWZlcmVuY2UgdG8gYSBk c3QgdGhhdCBpcyBkZXN0cm95ZWQuIENvbnZlcnRpbmcgdGhlIGRzdF9kZXN0cm95IHRvCmRzdF9y ZWxlYXNlIGFuZCBsZXR0aW5nIHByb3BlciByZWZlcmVuY2UgY291bnRpbmcga2ljayBpbiBkb2Vz IG5vdAp3b3JrIGFzIHRoZSBkc3QgaGFzIGEgcmVmZXJlbmNlIHRvIHRoZSBkZXZpY2Ugd2hpY2gg bmVlZHMgdG8gYmUgcmVsZWFzZWQKYXMgd2VsbC4KCkkgdGFsa2VkIHRvIEhhbm5lcyBhYm91dCB0 aGlzIGF0IG5ldGRldiBhbmQgaGUgcG9pbnRlZCBvdXQgdGhlIGlwdjQgYW5kCmlwdjYgZHN0IGhh bmRsaW5nIGhhcyBkc3RfaWZkb3duIGZvciBqdXN0IHRoaXMgc2NlbmFyaW8uIFJhdGhlciB0aGFu CmNvbnRpbnVpbmcgd2l0aCB0aGUgcmVpbnZlbnRlZCBkc3Qgd2hlZWwgaW4gVlJGIGp1c3QgcmVt b3ZlIGl0IGFuZApsZXZlcmFnZSB0aGUgaXB2NCBhbmQgaXB2NiB2ZXJzaW9ucy4KCkZpeGVzOiAx OTMxMjVkYmQ4ZWIyICgibmV0OiBJbnRyb2R1Y2UgVlJGIGRldmljZSBkcml2ZXIiKQpGaXhlczog MzU0MDJlMzEzNjYzNCAoIm5ldDogQWRkIElQdjYgc3VwcG9ydCB0byBWUkYgZGV2aWNlIikKClNp Z25lZC1vZmYtYnk6IERhdmlkIEFoZXJuIDxkc2FAY3VtdWx1c25ldHdvcmtzLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L3ZyZi5jICAgICAgIHwgMTc3ICsrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogaW5jbHVkZS9uZXQvaXA2X3JvdXRlLmggfCAgIDMgKwogaW5jbHVk ZS9uZXQvcm91dGUuaCAgICAgfCAgIDMgKwogbmV0L2lwdjQvcm91dGUuYyAgICAgICAgfCAgIDcg Ky0KIG5ldC9pcHY2L3JvdXRlLmMgICAgICAgIHwgICA3ICstCiA1IGZpbGVzIGNoYW5nZWQsIDMw IGluc2VydGlvbnMoKyksIDE2NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC92cmYuYyBiL2RyaXZlcnMvbmV0L3ZyZi5jCmluZGV4IGJkY2Y2MTcuLmQ4MTk3ZjkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L3ZyZi5jCisrKyBiL2RyaXZlcnMvbmV0L3ZyZi5jCkBAIC02MSw0 MSArNjEsNiBAQCBzdHJ1Y3QgcGNwdV9kc3RhdHMgewogCXN0cnVjdCB1NjRfc3RhdHNfc3luYwlz eW5jcDsKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgZHN0X2VudHJ5ICp2cmZfaXBfY2hlY2soc3RydWN0 IGRzdF9lbnRyeSAqZHN0LCB1MzIgY29va2llKQotewotCXJldHVybiBkc3Q7Ci19Ci0KLXN0YXRp YyBpbnQgdnJmX2lwX2xvY2FsX291dChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywg c3RydWN0IHNrX2J1ZmYgKnNrYikKLXsKLQlyZXR1cm4gaXBfbG9jYWxfb3V0KG5ldCwgc2ssIHNr Yik7Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgdnJmX3Y0X210dShjb25zdCBzdHJ1Y3QgZHN0 X2VudHJ5ICpkc3QpCi17Ci0JLyogVE8tRE86IHJldHVybiBtYXggZXRoZXJuZXQgc2l6ZT8gKi8K LQlyZXR1cm4gZHN0LT5kZXYtPm10dTsKLX0KLQotc3RhdGljIHZvaWQgdnJmX2RzdF9kZXN0cm95 KHN0cnVjdCBkc3RfZW50cnkgKmRzdCkKLXsKLQkvKiBvdXIgZHN0IGxpdmVzIGZvcmV2ZXIgLSBv ciB1bnRpbCB0aGUgZGV2aWNlIGlzIGNsb3NlZCAqLwotfQotCi1zdGF0aWMgdW5zaWduZWQgaW50 IHZyZl9kZWZhdWx0X2Fkdm1zcyhjb25zdCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpCi17Ci0JcmV0 dXJuIDY1NTM1IC0gNDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgZHN0X29wcyB2cmZfZHN0X29wcyA9 IHsKLQkuZmFtaWx5CQk9IEFGX0lORVQsCi0JLmxvY2FsX291dAk9IHZyZl9pcF9sb2NhbF9vdXQs Ci0JLmNoZWNrCQk9IHZyZl9pcF9jaGVjaywKLQkubXR1CQk9IHZyZl92NF9tdHUsCi0JLmRlc3Ry b3kJPSB2cmZfZHN0X2Rlc3Ryb3ksCi0JLmRlZmF1bHRfYWR2bXNzCT0gdnJmX2RlZmF1bHRfYWR2 bXNzLAotfTsKLQogLyogbmVpZ2hib3IgaGFuZGxpbmcgaXMgZG9uZSB3aXRoIGFjdHVhbCBkZXZp Y2U7IGRvIG5vdCB3YW50CiAgKiB0byBmbGlwIHNrYi0+ZGV2IGZvciB0aG9zZSBuZGlzYyBwYWNr ZXRzLiBUaGlzIHJlYWxseSBmYWlscwogICogZm9yIG11bHRpcGxlIG5leHQgcHJvdG9jb2xzIChl LmcuLCBORVhUSERSX0hPUCkuIEJ1dCBpdCBpcwpAQCAtMzUwLDQ2ICszMTUsNiBAQCBzdGF0aWMg bmV0ZGV2X3R4X3QgdnJmX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZp Y2UgKmRldikKIH0KIAogI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpCi1zdGF0aWMgc3RydWN0 IGRzdF9lbnRyeSAqdnJmX2lwNl9jaGVjayhzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIHUzMiBjb29r aWUpCi17Ci0JcmV0dXJuIGRzdDsKLX0KLQotc3RhdGljIHN0cnVjdCBkc3Rfb3BzIHZyZl9kc3Rf b3BzNiA9IHsKLQkuZmFtaWx5CQk9IEFGX0lORVQ2LAotCS5sb2NhbF9vdXQJPSBpcDZfbG9jYWxf b3V0LAotCS5jaGVjawkJPSB2cmZfaXA2X2NoZWNrLAotCS5tdHUJCT0gdnJmX3Y0X210dSwKLQku ZGVzdHJveQk9IHZyZl9kc3RfZGVzdHJveSwKLQkuZGVmYXVsdF9hZHZtc3MJPSB2cmZfZGVmYXVs dF9hZHZtc3MsCi19OwotCi1zdGF0aWMgaW50IGluaXRfZHN0X29wczZfa21lbV9jYWNoZXAodm9p ZCkKLXsKLQl2cmZfZHN0X29wczYua21lbV9jYWNoZXAgPSBrbWVtX2NhY2hlX2NyZWF0ZSgidnJm X2lwNl9kc3RfY2FjaGUiLAotCQkJCQkJICAgICBzaXplb2Yoc3RydWN0IHJ0Nl9pbmZvKSwKLQkJ CQkJCSAgICAgMCwKLQkJCQkJCSAgICAgU0xBQl9IV0NBQ0hFX0FMSUdOLAotCQkJCQkJICAgICBO VUxMKTsKLQotCWlmICghdnJmX2RzdF9vcHM2LmttZW1fY2FjaGVwKQotCQlyZXR1cm4gLUVOT01F TTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBmcmVlX2RzdF9vcHM2X2ttZW1fY2Fj aGVwKHZvaWQpCi17Ci0Ja21lbV9jYWNoZV9kZXN0cm95KHZyZl9kc3Rfb3BzNi5rbWVtX2NhY2hl cCk7Ci19Ci0KLXN0YXRpYyBpbnQgdnJmX2lucHV0NihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotewot CXNrYi0+ZGV2LT5zdGF0cy5yeF9lcnJvcnMrKzsKLQlrZnJlZV9za2Ioc2tiKTsKLQlyZXR1cm4g MDsKLX0KLQogLyogbW9kZWxsZWQgYWZ0ZXIgaXA2X2ZpbmlzaF9vdXRwdXQyICovCiBzdGF0aWMg aW50IHZyZl9maW5pc2hfb3V0cHV0NihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywK IAkJCSAgICAgIHN0cnVjdCBza19idWZmICpza2IpCkBAIC00MzAsNjcgKzM1NSwzNCBAQCBzdGF0 aWMgaW50IHZyZl9vdXRwdXQ2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiKQogCQkJICAgICEoSVA2Q0Ioc2tiKS0+ZmxhZ3MgJiBJUDZTS0JfUkVS T1VURUQpKTsKIH0KIAotc3RhdGljIHZvaWQgdnJmX3J0Nl9kZXN0cm95KHN0cnVjdCBuZXRfdnJm ICp2cmYpCitzdGF0aWMgdm9pZCB2cmZfcnQ2X3JlbGVhc2Uoc3RydWN0IG5ldF92cmYgKnZyZikK IHsKLQlkc3RfZGVzdHJveSgmdnJmLT5ydDYtPmRzdCk7Ci0JZnJlZV9wZXJjcHUodnJmLT5ydDYt PnJ0NmlfcGNwdSk7CisJZHN0X3JlbGVhc2UoJnZyZi0+cnQ2LT5kc3QpOwogCXZyZi0+cnQ2ID0g TlVMTDsKIH0KIAogc3RhdGljIGludCB2cmZfcnQ2X2NyZWF0ZShzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2KQogewogCXN0cnVjdCBuZXRfdnJmICp2cmYgPSBuZXRkZXZfcHJpdihkZXYpOwotCXN0cnVj dCBkc3RfZW50cnkgKmRzdDsKKwlzdHJ1Y3QgbmV0ICpuZXQgPSBkZXZfbmV0KGRldik7CiAJc3Ry dWN0IHJ0Nl9pbmZvICpydDY7Ci0JaW50IGNwdTsKIAlpbnQgcmMgPSAtRU5PTUVNOwogCi0JcnQ2 ID0gZHN0X2FsbG9jKCZ2cmZfZHN0X29wczYsIGRldiwgMCwKLQkJCURTVF9PQlNPTEVURV9OT05F LAotCQkJKERTVF9IT1NUIHwgRFNUX05PUE9MSUNZIHwgRFNUX05PWEZSTSkpOworCXJ0NiA9IGlw Nl9kc3RfYWxsb2MobmV0LCBkZXYsCisJCQkgICAgRFNUX0hPU1QgfCBEU1RfTk9QT0xJQ1kgfCBE U1RfTk9YRlJNIHwgRFNUX05PQ0FDSEUpOwogCWlmICghcnQ2KQogCQlnb3RvIG91dDsKIAotCWRz dCA9ICZydDYtPmRzdDsKLQotCXJ0Ni0+cnQ2aV9wY3B1ID0gYWxsb2NfcGVyY3B1X2dmcChzdHJ1 Y3QgcnQ2X2luZm8gKiwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFydDYtPnJ0NmlfcGNwdSkgewotCQlk c3RfZGVzdHJveShkc3QpOwotCQlnb3RvIG91dDsKLQl9Ci0JZm9yX2VhY2hfcG9zc2libGVfY3B1 KGNwdSkgewotCQlzdHJ1Y3QgcnQ2X2luZm8gKipwID0gcGVyX2NwdV9wdHIocnQ2LT5ydDZpX3Bj cHUsIGNwdSk7Ci0JCSpwID0gIE5VTEw7Ci0JfQotCi0JbWVtc2V0KGRzdCArIDEsIDAsIHNpemVv ZigqcnQ2KSAtIHNpemVvZigqZHN0KSk7Ci0KLQlJTklUX0xJU1RfSEVBRCgmcnQ2LT5ydDZpX3Np YmxpbmdzKTsKLQlJTklUX0xJU1RfSEVBRCgmcnQ2LT5ydDZpX3VuY2FjaGVkKTsKLQotCXJ0Ni0+ ZHN0LmlucHV0CT0gdnJmX2lucHV0NjsKIAlydDYtPmRzdC5vdXRwdXQJPSB2cmZfb3V0cHV0NjsK LQotCXJ0Ni0+cnQ2aV90YWJsZSA9IGZpYjZfZ2V0X3RhYmxlKGRldl9uZXQoZGV2KSwgdnJmLT50 Yl9pZCk7Ci0KLQlhdG9taWNfc2V0KCZydDYtPmRzdC5fX3JlZmNudCwgMik7Ci0KKwlydDYtPnJ0 NmlfdGFibGUgPSBmaWI2X2dldF90YWJsZShuZXQsIHZyZi0+dGJfaWQpOworCWRzdF9ob2xkKCZy dDYtPmRzdCk7CiAJdnJmLT5ydDYgPSBydDY7CiAJcmMgPSAwOwogb3V0OgogCXJldHVybiByYzsK IH0KICNlbHNlCi1zdGF0aWMgaW50IGluaXRfZHN0X29wczZfa21lbV9jYWNoZXAodm9pZCkKLXsK LQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZnJlZV9kc3Rfb3BzNl9rbWVtX2NhY2hlcCh2 b2lkKQotewotfQotCi1zdGF0aWMgdm9pZCB2cmZfcnQ2X2Rlc3Ryb3koc3RydWN0IG5ldF92cmYg KnZyZikKK3N0YXRpYyB2b2lkIHZyZl9ydDZfcmVsZWFzZShzdHJ1Y3QgbmV0X3ZyZiAqdnJmKQog ewogfQogCkBAIC01NTgsMTEgKzQ1MCwxMSBAQCBzdGF0aWMgaW50IHZyZl9vdXRwdXQoc3RydWN0 IG5ldCAqbmV0LCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAJCQkgICAg IShJUENCKHNrYiktPmZsYWdzICYgSVBTS0JfUkVST1VURUQpKTsKIH0KIAotc3RhdGljIHZvaWQg dnJmX3J0YWJsZV9kZXN0cm95KHN0cnVjdCBuZXRfdnJmICp2cmYpCitzdGF0aWMgdm9pZCB2cmZf cnRhYmxlX3JlbGVhc2Uoc3RydWN0IG5ldF92cmYgKnZyZikKIHsKIAlzdHJ1Y3QgZHN0X2VudHJ5 ICpkc3QgPSAoc3RydWN0IGRzdF9lbnRyeSAqKXZyZi0+cnRoOwogCi0JZHN0X2Rlc3Ryb3koZHN0 KTsKKwlkc3RfcmVsZWFzZShkc3QpOwogCXZyZi0+cnRoID0gTlVMTDsKIH0KIApAQCAtNTcxLDIy ICs0NjMsMTAgQEAgc3RhdGljIHN0cnVjdCBydGFibGUgKnZyZl9ydGFibGVfY3JlYXRlKHN0cnVj dCBuZXRfZGV2aWNlICpkZXYpCiAJc3RydWN0IG5ldF92cmYgKnZyZiA9IG5ldGRldl9wcml2KGRl dik7CiAJc3RydWN0IHJ0YWJsZSAqcnRoOwogCi0JcnRoID0gZHN0X2FsbG9jKCZ2cmZfZHN0X29w cywgZGV2LCAyLAotCQkJRFNUX09CU09MRVRFX05PTkUsCi0JCQkoRFNUX0hPU1QgfCBEU1RfTk9Q T0xJQ1kgfCBEU1RfTk9YRlJNKSk7CisJcnRoID0gcnRfZHN0X2FsbG9jKGRldiwgMCwgUlROX1VO SUNBU1QsIDEsIDEsIDApOwogCWlmIChydGgpIHsKIAkJcnRoLT5kc3Qub3V0cHV0CT0gdnJmX291 dHB1dDsKLQkJcnRoLT5ydF9nZW5pZAk9IHJ0X2dlbmlkX2lwdjQoZGV2X25ldChkZXYpKTsKLQkJ cnRoLT5ydF9mbGFncwk9IDA7Ci0JCXJ0aC0+cnRfdHlwZQk9IFJUTl9VTklDQVNUOwotCQlydGgt PnJ0X2lzX2lucHV0ID0gMDsKLQkJcnRoLT5ydF9paWYJPSAwOwotCQlydGgtPnJ0X3BtdHUJPSAw OwotCQlydGgtPnJ0X2dhdGV3YXkJPSAwOwotCQlydGgtPnJ0X3VzZXNfZ2F0ZXdheSA9IDA7CiAJ CXJ0aC0+cnRfdGFibGVfaWQgPSB2cmYtPnRiX2lkOwotCQlJTklUX0xJU1RfSEVBRCgmcnRoLT5y dF91bmNhY2hlZCk7Ci0JCXJ0aC0+cnRfdW5jYWNoZWRfbGlzdCA9IE5VTEw7CiAJfQogCiAJcmV0 dXJuIHJ0aDsKQEAgLTY3NCw4ICs1NTQsOCBAQCBzdGF0aWMgdm9pZCB2cmZfZGV2X3VuaW5pdChz dHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXN0cnVjdCBuZXRfZGV2aWNlICpwb3J0X2RldjsKIAlz dHJ1Y3QgbGlzdF9oZWFkICppdGVyOwogCi0JdnJmX3J0YWJsZV9kZXN0cm95KHZyZik7Ci0JdnJm X3J0Nl9kZXN0cm95KHZyZik7CisJdnJmX3J0YWJsZV9yZWxlYXNlKHZyZik7CisJdnJmX3J0Nl9y ZWxlYXNlKHZyZik7CiAKIAluZXRkZXZfZm9yX2VhY2hfbG93ZXJfZGV2KGRldiwgcG9ydF9kZXYs IGl0ZXIpCiAJCXZyZl9kZWxfc2xhdmUoZGV2LCBwb3J0X2Rldik7CkBAIC03MDUsNyArNTg1LDcg QEAgc3RhdGljIGludCB2cmZfZGV2X2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlyZXR1 cm4gMDsKIAogb3V0X3J0aDoKLQl2cmZfcnRhYmxlX2Rlc3Ryb3kodnJmKTsKKwl2cmZfcnRhYmxl X3JlbGVhc2UodnJmKTsKIG91dF9zdGF0czoKIAlmcmVlX3BlcmNwdShkZXYtPmRzdGF0cyk7CiAJ ZGV2LT5kc3RhdHMgPSBOVUxMOwpAQCAtNzM4LDcgKzYxOCw3IEBAIHN0YXRpYyBzdHJ1Y3QgcnRh YmxlICp2cmZfZ2V0X3J0YWJsZShjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQlzdHJ1 Y3QgbmV0X3ZyZiAqdnJmID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAogCQlydGggPSB2cmYtPnJ0aDsK LQkJYXRvbWljX2luYygmcnRoLT5kc3QuX19yZWZjbnQpOworCQlkc3RfaG9sZCgmcnRoLT5kc3Qp OwogCX0KIAogCXJldHVybiBydGg7CkBAIC03ODksNyArNjY5LDcgQEAgc3RhdGljIHN0cnVjdCBk c3RfZW50cnkgKnZyZl9nZXRfcnQ2X2RzdChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAog CQlzdHJ1Y3QgbmV0X3ZyZiAqdnJmID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAogCQlydCA9IHZyZi0+ cnQ2OwotCQlhdG9taWNfaW5jKCZydC0+ZHN0Ll9fcmVmY250KTsKKwkJZHN0X2hvbGQoJnJ0LT5k c3QpOwogCX0KIAogCXJldHVybiAoc3RydWN0IGRzdF9lbnRyeSAqKXJ0OwpAQCAtOTI2LDE5ICs4 MDYsNiBAQCBzdGF0aWMgaW50IF9faW5pdCB2cmZfaW5pdF9tb2R1bGUodm9pZCkKIHsKIAlpbnQg cmM7CiAKLQl2cmZfZHN0X29wcy5rbWVtX2NhY2hlcCA9Ci0JCWttZW1fY2FjaGVfY3JlYXRlKCJ2 cmZfaXBfZHN0X2NhY2hlIiwKLQkJCQkgIHNpemVvZihzdHJ1Y3QgcnRhYmxlKSwgMCwKLQkJCQkg IFNMQUJfSFdDQUNIRV9BTElHTiwKLQkJCQkgIE5VTEwpOwotCi0JaWYgKCF2cmZfZHN0X29wcy5r bWVtX2NhY2hlcCkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlyYyA9IGluaXRfZHN0X29wczZfa21l bV9jYWNoZXAoKTsKLQlpZiAocmMgIT0gMCkKLQkJZ290byBlcnJvcjI7Ci0KIAlyZWdpc3Rlcl9u ZXRkZXZpY2Vfbm90aWZpZXIoJnZyZl9ub3RpZmllcl9ibG9jayk7CiAKIAlyYyA9IHJ0bmxfbGlu a19yZWdpc3RlcigmdnJmX2xpbmtfb3BzKTsKQEAgLTk0OSwyMiArODE2LDEwIEBAIHN0YXRpYyBp bnQgX19pbml0IHZyZl9pbml0X21vZHVsZSh2b2lkKQogCiBlcnJvcjoKIAl1bnJlZ2lzdGVyX25l dGRldmljZV9ub3RpZmllcigmdnJmX25vdGlmaWVyX2Jsb2NrKTsKLQlmcmVlX2RzdF9vcHM2X2tt ZW1fY2FjaGVwKCk7Ci1lcnJvcjI6Ci0Ja21lbV9jYWNoZV9kZXN0cm95KHZyZl9kc3Rfb3BzLmtt ZW1fY2FjaGVwKTsKIAlyZXR1cm4gcmM7CiB9CiAKLXN0YXRpYyB2b2lkIF9fZXhpdCB2cmZfY2xl YW51cF9tb2R1bGUodm9pZCkKLXsKLQlydG5sX2xpbmtfdW5yZWdpc3RlcigmdnJmX2xpbmtfb3Bz KTsKLQl1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcigmdnJmX25vdGlmaWVyX2Jsb2NrKTsK LQlrbWVtX2NhY2hlX2Rlc3Ryb3kodnJmX2RzdF9vcHMua21lbV9jYWNoZXApOwotCWZyZWVfZHN0 X29wczZfa21lbV9jYWNoZXAoKTsKLX0KLQogbW9kdWxlX2luaXQodnJmX2luaXRfbW9kdWxlKTsK LW1vZHVsZV9leGl0KHZyZl9jbGVhbnVwX21vZHVsZSk7CiBNT0RVTEVfQVVUSE9SKCJTaHJpamVl dCBNdWtoZXJqZWUsIERhdmlkIEFoZXJuIik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkRldmljZSBk cml2ZXIgdG8gaW5zdGFudGlhdGUgVlJGIGRvbWFpbnMiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwi KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lwNl9yb3V0ZS5oIGIvaW5jbHVkZS9uZXQvaXA2 X3JvdXRlLmgKaW5kZXggMjk1ZDI5MS4uNTRjNzc5NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQv aXA2X3JvdXRlLmgKKysrIGIvaW5jbHVkZS9uZXQvaXA2X3JvdXRlLmgKQEAgLTEwMSw2ICsxMDEs OSBAQCB2b2lkIGZpYjZfZm9yY2Vfc3RhcnRfZ2Moc3RydWN0IG5ldCAqbmV0KTsKIHN0cnVjdCBy dDZfaW5mbyAqYWRkcmNvbmZfZHN0X2FsbG9jKHN0cnVjdCBpbmV0Nl9kZXYgKmlkZXYsCiAJCQkJ ICAgIGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqYWRkciwgYm9vbCBhbnljYXN0KTsKIAorc3RydWN0 IHJ0Nl9pbmZvICppcDZfZHN0X2FsbG9jKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwKKwkJCSAgICAgICBpbnQgZmxhZ3MpOworCiAvKgogICoJc3VwcG9ydCBmdW5jdGlv bnMgZm9yIE5ECiAgKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvcm91dGUuaCBiL2luY2x1ZGUv bmV0L3JvdXRlLmgKaW5kZXggYTNiOWVmNy4uMTU4N2NhMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9u ZXQvcm91dGUuaAorKysgYi9pbmNsdWRlL25ldC9yb3V0ZS5oCkBAIC0yMDksNiArMjA5LDkgQEAg dW5zaWduZWQgaW50IGluZXRfYWRkcl90eXBlX2Rldl90YWJsZShzdHJ1Y3QgbmV0ICpuZXQsCiB2 b2lkIGlwX3J0X211bHRpY2FzdF9ldmVudChzdHJ1Y3QgaW5fZGV2aWNlICopOwogaW50IGlwX3J0 X2lvY3RsKHN0cnVjdCBuZXQgKiwgdW5zaWduZWQgaW50IGNtZCwgdm9pZCBfX3VzZXIgKmFyZyk7 CiB2b2lkIGlwX3J0X2dldF9zb3VyY2UodTggKnNyYywgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3Ry dWN0IHJ0YWJsZSAqcnQpOworc3RydWN0IHJ0YWJsZSAqcnRfZHN0X2FsbG9jKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsCisJCQkgICAgIHVuc2lnbmVkIGludCBmbGFncywgdTE2IHR5cGUsCisJCQkg ICAgIGJvb2wgbm9wb2xpY3ksIGJvb2wgbm94ZnJtLCBib29sIHdpbGxfY2FjaGUpOwogCiBzdHJ1 Y3QgaW5faWZhZGRyOwogdm9pZCBmaWJfYWRkX2lmYWRkcihzdHJ1Y3QgaW5faWZhZGRyICopOwpk aWZmIC0tZ2l0IGEvbmV0L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRlLmMKaW5kZXggYjA1 MGNmOS4uNjAzOThhOSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvcm91dGUuYworKysgYi9uZXQvaXB2 NC9yb3V0ZS5jCkBAIC0xNDM4LDkgKzE0MzgsOSBAQCBzdGF0aWMgdm9pZCBydF9zZXRfbmV4dGhv cChzdHJ1Y3QgcnRhYmxlICpydCwgX19iZTMyIGRhZGRyLAogI2VuZGlmCiB9CiAKLXN0YXRpYyBz dHJ1Y3QgcnRhYmxlICpydF9kc3RfYWxsb2Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKLQkJCQkg ICB1bnNpZ25lZCBpbnQgZmxhZ3MsIHUxNiB0eXBlLAotCQkJCSAgIGJvb2wgbm9wb2xpY3ksIGJv b2wgbm94ZnJtLCBib29sIHdpbGxfY2FjaGUpCitzdHJ1Y3QgcnRhYmxlICpydF9kc3RfYWxsb2Mo c3RydWN0IG5ldF9kZXZpY2UgKmRldiwKKwkJCSAgICB1bnNpZ25lZCBpbnQgZmxhZ3MsIHUxNiB0 eXBlLAorCQkJICAgIGJvb2wgbm9wb2xpY3ksIGJvb2wgbm94ZnJtLCBib29sIHdpbGxfY2FjaGUp CiB7CiAJc3RydWN0IHJ0YWJsZSAqcnQ7CiAKQEAgLTE0NjgsNiArMTQ2OCw3IEBAIHN0YXRpYyBz dHJ1Y3QgcnRhYmxlICpydF9kc3RfYWxsb2Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAogCXJl dHVybiBydDsKIH0KK0VYUE9SVF9TWU1CT0wocnRfZHN0X2FsbG9jKTsKIAogLyogY2FsbGVkIGlu IHJjdV9yZWFkX2xvY2soKSBzZWN0aW9uICovCiBzdGF0aWMgaW50IGlwX3JvdXRlX2lucHV0X21j KHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiBkYWRkciwgX19iZTMyIHNhZGRyLApkaWZmIC0t Z2l0IGEvbmV0L2lwdjYvcm91dGUuYyBiL25ldC9pcHY2L3JvdXRlLmMKaW5kZXggMThlMjllMi4u ZjRkZDE0MyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9yb3V0 ZS5jCkBAIC0zMzgsOSArMzM4LDkgQEAgc3RhdGljIHN0cnVjdCBydDZfaW5mbyAqX19pcDZfZHN0 X2FsbG9jKHN0cnVjdCBuZXQgKm5ldCwKIAlyZXR1cm4gcnQ7CiB9CiAKLXN0YXRpYyBzdHJ1Y3Qg cnQ2X2luZm8gKmlwNl9kc3RfYWxsb2Moc3RydWN0IG5ldCAqbmV0LAotCQkJCSAgICAgIHN0cnVj dCBuZXRfZGV2aWNlICpkZXYsCi0JCQkJICAgICAgaW50IGZsYWdzKQorc3RydWN0IHJ0Nl9pbmZv ICppcDZfZHN0X2FsbG9jKHN0cnVjdCBuZXQgKm5ldCwKKwkJCSAgICAgICBzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LAorCQkJICAgICAgIGludCBmbGFncykKIHsKIAlzdHJ1Y3QgcnQ2X2luZm8gKnJ0 ID0gX19pcDZfZHN0X2FsbG9jKG5ldCwgZGV2LCBmbGFncyk7CiAKQEAgLTM2NCw2ICszNjQsNyBA QCBzdGF0aWMgc3RydWN0IHJ0Nl9pbmZvICppcDZfZHN0X2FsbG9jKHN0cnVjdCBuZXQgKm5ldCwK IAogCXJldHVybiBydDsKIH0KK0VYUE9SVF9TWU1CT0woaXA2X2RzdF9hbGxvYyk7CiAKIHN0YXRp YyB2b2lkIGlwNl9kc3RfZGVzdHJveShzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpCiB7Ci0tIAoyLjEu MAoKCkZyb20gY2M4MDEyM2NiYzQ5NGYwNWZhYmY4Y2RiYmUwODI1MDZjNzMyYjFmZCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2aWQgQWhlcm4gPGRzYUBjdW11bHVzbmV0d29ya3Mu Y29tPgpEYXRlOiBXZWQsIDI1IE1heSAyMDE2IDA5OjM1OjMxIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAyMy8yM10gbmV0OiB2cmY6IHByb3RlY3QgY2hhbmdlcyB0byBwcml2YXRlIGRhdGEgd2l0aCBy Y3UKClsgVXBzdHJlYW0gY29tbWl0IGIwZTk1Y2NkZDc3NTkxZjEwOGM5MzhiYmM3MDJiNTc1NTRh MTY2NWQgXQoKT25lIGNwdSBjYW4gYmUgcHJvY2Vzc2luZyBwYWNrZXRzIHdoaWNoIGluY2x1ZGVz IHVzaW5nIHRoZSBjYWNoZWQgcm91dGUKZW50cmllcyBpbiB0aGUgdnJmIGRldmljZSdzIHByaXZh dGUgZGF0YSBhbmQgb24gYW5vdGhlciBjcHUgdGhlIGRldmljZQpnZXRzIGRlbGV0ZWQgd2hpY2gg cmVsZWFzZXMgdGhlIHJvdXRlcyBhbmQgc2V0cyB0aGUgcG9pbnRlcnMgaW4gbmV0X3ZyZgp0byBO VUxMLiBUaGlzIHJlc3VsdHMgaW4gZGF0YXBhdGggZGVyZWZlcmVuY2luZyBhIE5VTEwgcG9pbnRl ci4KCkZpeCBieSBwcm90ZWN0aW5nIGFjY2VzcyB0byBkc3QncyB3aXRoIHJjdS4KCkZpeGVzOiAx OTMxMjVkYmQ4ZWIgKCJuZXQ6IEludHJvZHVjZSBWUkYgZGV2aWNlIGRyaXZlciIpCkZpeGVzOiAz NTQwMmUzMTM2NjMgKCJuZXQ6IEFkZCBJUHY2IHN1cHBvcnQgdG8gVlJGIGRldmljZSIpClNpZ25l ZC1vZmYtYnk6IERhdmlkIEFoZXJuIDxkc2FAY3VtdWx1c25ldHdvcmtzLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L3ZyZi5jIHwgNjggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDIyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZyZi5jIGIvZHJpdmVycy9uZXQvdnJm LmMKaW5kZXggZDgxOTdmOS4uYmZjOWZlYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdnJmLmMK KysrIGIvZHJpdmVycy9uZXQvdnJmLmMKQEAgLTQ3LDggKzQ3LDggQEAKIAkoKHN0cnVjdCBuZXRf ZGV2aWNlICopcmN1X2RlcmVmZXJlbmNlKGRldi0+cnhfaGFuZGxlcl9kYXRhKSkKIAogc3RydWN0 IG5ldF92cmYgewotCXN0cnVjdCBydGFibGUgICAgICAgICAgICpydGg7Ci0Jc3RydWN0IHJ0Nl9p bmZvCQkqcnQ2OworCXN0cnVjdCBydGFibGUgX19yY3UJKnJ0aDsKKwlzdHJ1Y3QgcnQ2X2luZm8J X19yY3UJKnJ0NjsKIAl1MzIgICAgICAgICAgICAgICAgICAgICB0Yl9pZDsKIH07CiAKQEAgLTM1 NSwxMCArMzU1LDE1IEBAIHN0YXRpYyBpbnQgdnJmX291dHB1dDYoc3RydWN0IG5ldCAqbmV0LCBz dHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAJCQkgICAgIShJUDZDQihza2Ip LT5mbGFncyAmIElQNlNLQl9SRVJPVVRFRCkpOwogfQogCisvKiBob2xkaW5nIHJ0bmwgKi8KIHN0 YXRpYyB2b2lkIHZyZl9ydDZfcmVsZWFzZShzdHJ1Y3QgbmV0X3ZyZiAqdnJmKQogewotCWRzdF9y ZWxlYXNlKCZ2cmYtPnJ0Ni0+ZHN0KTsKLQl2cmYtPnJ0NiA9IE5VTEw7CisJc3RydWN0IHJ0Nl9p bmZvICpydDYgPSBydG5sX2RlcmVmZXJlbmNlKHZyZi0+cnQ2KTsKKworCXJjdV9hc3NpZ25fcG9p bnRlcih2cmYtPnJ0NiwgTlVMTCk7CisKKwlpZiAocnQ2KQorCQlkc3RfcmVsZWFzZSgmcnQ2LT5k c3QpOwogfQogCiBzdGF0aWMgaW50IHZyZl9ydDZfY3JlYXRlKHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYpCkBAIC0zNzYsNyArMzgxLDggQEAgc3RhdGljIGludCB2cmZfcnQ2X2NyZWF0ZShzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2KQogCXJ0Ni0+ZHN0Lm91dHB1dAk9IHZyZl9vdXRwdXQ2OwogCXJ0Ni0+ cnQ2aV90YWJsZSA9IGZpYjZfZ2V0X3RhYmxlKG5ldCwgdnJmLT50Yl9pZCk7CiAJZHN0X2hvbGQo JnJ0Ni0+ZHN0KTsKLQl2cmYtPnJ0NiA9IHJ0NjsKKwlyY3VfYXNzaWduX3BvaW50ZXIodnJmLT5y dDYsIHJ0Nik7CisKIAlyYyA9IDA7CiBvdXQ6CiAJcmV0dXJuIHJjOwpAQCAtNDUwLDI2ICs0NTYs MzIgQEAgc3RhdGljIGludCB2cmZfb3V0cHV0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQkJICAgICEoSVBDQihza2IpLT5mbGFncyAmIElQ U0tCX1JFUk9VVEVEKSk7CiB9CiAKKy8qIGhvbGRpbmcgcnRubCAqLwogc3RhdGljIHZvaWQgdnJm X3J0YWJsZV9yZWxlYXNlKHN0cnVjdCBuZXRfdnJmICp2cmYpCiB7Ci0Jc3RydWN0IGRzdF9lbnRy eSAqZHN0ID0gKHN0cnVjdCBkc3RfZW50cnkgKil2cmYtPnJ0aDsKKwlzdHJ1Y3QgcnRhYmxlICpy dGggPSBydG5sX2RlcmVmZXJlbmNlKHZyZi0+cnRoKTsKKworCXJjdV9hc3NpZ25fcG9pbnRlcih2 cmYtPnJ0aCwgTlVMTCk7CiAKLQlkc3RfcmVsZWFzZShkc3QpOwotCXZyZi0+cnRoID0gTlVMTDsK KwlpZiAocnRoKQorCQlkc3RfcmVsZWFzZSgmcnRoLT5kc3QpOwogfQogCi1zdGF0aWMgc3RydWN0 IHJ0YWJsZSAqdnJmX3J0YWJsZV9jcmVhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKK3N0YXRp YyBpbnQgdnJmX3J0YWJsZV9jcmVhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKIAlzdHJ1 Y3QgbmV0X3ZyZiAqdnJmID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlzdHJ1Y3QgcnRhYmxlICpydGg7 CiAKIAlydGggPSBydF9kc3RfYWxsb2MoZGV2LCAwLCBSVE5fVU5JQ0FTVCwgMSwgMSwgMCk7Ci0J aWYgKHJ0aCkgewotCQlydGgtPmRzdC5vdXRwdXQJPSB2cmZfb3V0cHV0OwotCQlydGgtPnJ0X3Rh YmxlX2lkID0gdnJmLT50Yl9pZDsKLQl9CisJaWYgKCFydGgpCisJCXJldHVybiAtRU5PTUVNOwog Ci0JcmV0dXJuIHJ0aDsKKwlydGgtPmRzdC5vdXRwdXQgPSB2cmZfb3V0cHV0OworCXJ0aC0+cnRf dGFibGVfaWQgPSB2cmYtPnRiX2lkOworCisJcmN1X2Fzc2lnbl9wb2ludGVyKHZyZi0+cnRoLCBy dGgpOworCisJcmV0dXJuIDA7CiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqIGRl dmljZSBoYW5kbGluZyAqKioqKioqKioqKioqKioqKioqKi8KQEAgLTU3Myw4ICs1ODUsNyBAQCBz dGF0aWMgaW50IHZyZl9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCQlnb3RvIG91 dF9ub21lbTsKIAogCS8qIGNyZWF0ZSB0aGUgZGVmYXVsdCBkc3Qgd2hpY2ggcG9pbnRzIGJhY2sg dG8gdXMgKi8KLQl2cmYtPnJ0aCA9IHZyZl9ydGFibGVfY3JlYXRlKGRldik7Ci0JaWYgKCF2cmYt PnJ0aCkKKwlpZiAodnJmX3J0YWJsZV9jcmVhdGUoZGV2KSAhPSAwKQogCQlnb3RvIG91dF9zdGF0 czsKIAogCWlmICh2cmZfcnQ2X2NyZWF0ZShkZXYpICE9IDApCkBAIC02MTcsOCArNjI4LDEzIEBA IHN0YXRpYyBzdHJ1Y3QgcnRhYmxlICp2cmZfZ2V0X3J0YWJsZShjb25zdCBzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LAogCWlmICghKGZsNC0+Zmxvd2k0X2ZsYWdzICYgRkxPV0lfRkxBR19MM01ERVZf U1JDKSkgewogCQlzdHJ1Y3QgbmV0X3ZyZiAqdnJmID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAotCQly dGggPSB2cmYtPnJ0aDsKLQkJZHN0X2hvbGQoJnJ0aC0+ZHN0KTsKKwkJcmN1X3JlYWRfbG9jaygp OworCisJCXJ0aCA9IHJjdV9kZXJlZmVyZW5jZSh2cmYtPnJ0aCk7CisJCWlmIChsaWtlbHkocnRo KSkKKwkJCWRzdF9ob2xkKCZydGgtPmRzdCk7CisKKwkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJfQog CiAJcmV0dXJuIHJ0aDsKQEAgLTY2MywxNiArNjc5LDI0IEBAIHN0YXRpYyBpbnQgdnJmX2dldF9z YWRkcihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZmxvd2k0ICpmbDQpCiBzdGF0aWMg c3RydWN0IGRzdF9lbnRyeSAqdnJmX2dldF9ydDZfZHN0KGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYsCiAJCQkJCSBjb25zdCBzdHJ1Y3QgZmxvd2k2ICpmbDYpCiB7Ci0Jc3RydWN0IHJ0Nl9p bmZvICpydCA9IE5VTEw7CisJc3RydWN0IGRzdF9lbnRyeSAqZHN0ID0gTlVMTDsKIAogCWlmICgh KGZsNi0+Zmxvd2k2X2ZsYWdzICYgRkxPV0lfRkxBR19MM01ERVZfU1JDKSkgewogCQlzdHJ1Y3Qg bmV0X3ZyZiAqdnJmID0gbmV0ZGV2X3ByaXYoZGV2KTsKKwkJc3RydWN0IHJ0Nl9pbmZvICpydDsK KworCQlyY3VfcmVhZF9sb2NrKCk7CisKKwkJcnQgPSByY3VfZGVyZWZlcmVuY2UodnJmLT5ydDYp OworCQlpZiAobGlrZWx5KHJ0KSkgeworCQkJZHN0ID0gJnJ0LT5kc3Q7CisJCQlkc3RfaG9sZChk c3QpOworCQl9CiAKLQkJcnQgPSB2cmYtPnJ0NjsKLQkJZHN0X2hvbGQoJnJ0LT5kc3QpOworCQly Y3VfcmVhZF91bmxvY2soKTsKIAl9CiAKLQlyZXR1cm4gKHN0cnVjdCBkc3RfZW50cnkgKilydDsK KwlyZXR1cm4gZHN0OwogfQogI2VuZGlmCiAKLS0gCjIuMS4wCgo= ----Next_Part(Fri_Jun_17_00_03_46_2016_429)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_46.mbox" RnJvbSBjYWJhYTgxYjkyMTYyNmQ5MjYzNTVkNDljYjM2NWY2YThiNWUwMmVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIEFscGUgPHJpY2hhcmQuYWxwZUBlcmljc3Nvbi5j b20+CkRhdGU6IE1vbiwgMTYgTWF5IDIwMTYgMTE6MTQ6NTQgKzAyMDAKU3ViamVjdDogW1BBVENI IDAxLzI0XSB0aXBjOiBjaGVjayBubCBzb2NrIGJlZm9yZSBwYXJzaW5nIG5lc3RlZCBhdHRyaWJ1 dGVzCgpbIFVwc3RyZWFtIGNvbW1pdCA0NWUwOTNhZTI4MzBjZDEyNjQ2NzdkNDdmZjlhOTVhNzFm NWQ5ZjljIF0KCk1ha2Ugc3VyZSB0aGUgc29ja2V0IGZvciB3aGljaCB0aGUgdXNlciBpcyBsaXN0 aW5nIHB1YmxpY2F0aW9uIGV4aXN0cwpiZWZvcmUgcGFyc2luZyB0aGUgc29ja2V0IG5ldGxpbmsg YXR0cmlidXRlcy4KClByaW9yIHRvIHRoaXMgcGF0Y2ggYSBjYWxsIHdpdGhvdXQgYW55IHNvY2tl dCBjYXVzZWQgYSBOVUxMIHBvaW50ZXIKZGVyZWZlcmVuY2UgaW4gdGlwY19ubF9wdWJsX2R1bXAo KS4KClRlc3RlZC1hbmQtcmVwb3J0ZWQtYnk6IEJhb3plbmcgRGluZyA8c3Bsb3ZpbmcxQGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogUmljaGFyZCBBbHBlIDxyaWNoYXJkLmFscGVAZXJpY3Nzb24u Y29tPgpBY2tlZC1ieTogSm9uIE1hbG95IDxqb24ubWFsb3lAZXJpY3Nzb24uY20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlw Yy9zb2NrZXQuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvbmV0L3RpcGMvc29ja2V0LmMgYi9uZXQvdGlwYy9zb2NrZXQuYwppbmRleCAzZWVi NTBhLi41ZjgwZDNmIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9zb2NrZXQuYworKysgYi9uZXQvdGlw Yy9zb2NrZXQuYwpAQCAtMjgwNyw2ICsyODA3LDkgQEAgaW50IHRpcGNfbmxfcHVibF9kdW1wKHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYikKIAkJaWYgKGVy cikKIAkJCXJldHVybiBlcnI7CiAKKwkJaWYgKCFhdHRyc1tUSVBDX05MQV9TT0NLXSkKKwkJCXJl dHVybiAtRUlOVkFMOworCiAJCWVyciA9IG5sYV9wYXJzZV9uZXN0ZWQoc29jaywgVElQQ19OTEFf U09DS19NQVgsCiAJCQkJICAgICAgIGF0dHJzW1RJUENfTkxBX1NPQ0tdLAogCQkJCSAgICAgICB0 aXBjX25sX3NvY2tfcG9saWN5KTsKLS0gCjIuMS4wCgoKRnJvbSBmYmM0OGZhNTE2NDIyNGIxOWMw OTZiYTE1Y2MzZTIwZmRlNjg0MWU3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZXJi ZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CkRhdGU6IE1vbiwgMTYgTWF5IDIw MTYgMTc6Mjg6MTYgKzA4MDAKU3ViamVjdDogW1BBVENIIDAyLzI0XSBuZXRsaW5rOiBGaXggZHVt cCBza2IgbGVhay9kb3VibGUgZnJlZQoKWyBVcHN0cmVhbSBjb21taXQgOTI5NjRjNzliMzU3ZWZk OTgwODEyYzRkZTVjMWZkMmVjOGJiNTUyMCBdCgpXaGVuIHdlIGZyZWUgY2ItPnNrYiBhZnRlciBh IGR1bXAsIHdlIGRvIGl0IGFmdGVyIHJlbGVhc2luZyB0aGUKbG9jay4gIFRoaXMgbWVhbnMgdGhh dCBhIG5ldyBkdW1wIGNvdWxkIGhhdmUgc3RhcnRlZCBpbiB0aGUgdGltZQpiZWluZyBhbmQgd2Un bGwgZW5kIHVwIGZyZWVpbmcgdGhlaXIgc2tiIGluc3RlYWQgb2Ygb3Vycy4KClRoaXMgcGF0Y2gg c2F2ZXMgdGhlIHNrYiBhbmQgbW9kdWxlIGJlZm9yZSB3ZSB1bmxvY2sgc28gd2UgZnJlZQp0aGUg cmlnaHQgbWVtb3J5LgoKRml4ZXM6IDE2YjMwNGYzNDA0ZiAoIm5ldGxpbms6IEVsaW1pbmF0ZSBr bWFsbG9jIGluIG5ldGxpbmsgZHVtcCBvcGVyYXRpb24uIikKUmVwb3J0ZWQtYnk6IEJhb3plbmcg RGluZyA8c3Bsb3ZpbmcxQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSGVyYmVydCBYdSA8aGVy YmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpBY2tlZC1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5n Y29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmMgfCA3ICsrKysrLS0KIDEg ZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jIGIvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCmlu ZGV4IDMzMGViZDYuLmY0OGUzYjMgMTAwNjQ0Ci0tLSBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsu YworKysgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKQEAgLTIwNTksNiArMjA1OSw3IEBAIHN0 YXRpYyBpbnQgbmV0bGlua19kdW1wKHN0cnVjdCBzb2NrICpzaykKIAlzdHJ1Y3QgbmV0bGlua19j YWxsYmFjayAqY2I7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYiA9IE5VTEw7CiAJc3RydWN0IG5sbXNn aGRyICpubGg7CisJc3RydWN0IG1vZHVsZSAqbW9kdWxlOwogCWludCBsZW4sIGVyciA9IC1FTk9C VUZTOwogCWludCBhbGxvY19taW5fc2l6ZTsKIAlpbnQgYWxsb2Nfc2l6ZTsKQEAgLTIxMzQsOSAr MjEzNSwxMSBAQCBzdGF0aWMgaW50IG5ldGxpbmtfZHVtcChzdHJ1Y3Qgc29jayAqc2spCiAJCWNi LT5kb25lKGNiKTsKIAogCW5say0+Y2JfcnVubmluZyA9IGZhbHNlOworCW1vZHVsZSA9IGNiLT5t b2R1bGU7CisJc2tiID0gY2ItPnNrYjsKIAltdXRleF91bmxvY2sobmxrLT5jYl9tdXRleCk7Ci0J bW9kdWxlX3B1dChjYi0+bW9kdWxlKTsKLQljb25zdW1lX3NrYihjYi0+c2tiKTsKKwltb2R1bGVf cHV0KG1vZHVsZSk7CisJY29uc3VtZV9za2Ioc2tiKTsKIAlyZXR1cm4gMDsKIAogZXJyb3V0X3Nr YjoKLS0gCjIuMS4wCgoKRnJvbSBkNjc1ZTYzMzM3NTJhOWFlZGViOTIzZjBhMzc5MjE3MzYyNTFm MWFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIEFscGUgPHJpY2hhcmQu YWxwZUBlcmljc3Nvbi5jb20+CkRhdGU6IFR1ZSwgMTcgTWF5IDIwMTYgMTY6NTc6MzcgKzAyMDAK U3ViamVjdDogW1BBVENIIDAzLzI0XSB0aXBjOiBmaXggbmFtZXRhYmxlIHB1YmxpY2F0aW9uIGZp ZWxkIGluIG5sIGNvbXBhdAoKWyBVcHN0cmVhbSBjb21taXQgMDNhYWFhOWI5NDFlMTM2NzU3YjU1 YzRjZjc3NWFhYjYwNjhkZmQ5NCBdCgpUaGUgcHVibGljYXRpb24gZmllbGQgb2YgdGhlIG9sZCBu ZXRsaW5rIEFQSSBzaG91bGQgY29udGFpbiB0aGUKcHVibGljYXRpb24ga2V5IGFuZCBub3QgdGhl IHB1YmxpY2F0aW9uIHJlZmVyZW5jZS4KCkZpeGVzOiA0NGE4YWU5NGZkNTUgKHRpcGM6IGNvbnZl cnQgbGVnYWN5IG5sIG5hbWUgdGFibGUgZHVtcCB0byBubCBjb21wYXQpClNpZ25lZC1vZmYtYnk6 IFJpY2hhcmQgQWxwZSA8cmljaGFyZC5hbHBlQGVyaWNzc29uLmNvbT4KQWNrZWQtYnk6IEpvbiBN YWxveSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL25ldGxpbmtfY29tcGF0LmMg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9uZXQvdGlwYy9uZXRsaW5rX2NvbXBhdC5jIGIvbmV0L3RpcGMvbmV0bGlua19j b21wYXQuYwppbmRleCBkN2QwNTBmLi40ZGZjNWMxIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9uZXRs aW5rX2NvbXBhdC5jCisrKyBiL25ldC90aXBjL25ldGxpbmtfY29tcGF0LmMKQEAgLTgwMiw3ICs4 MDIsNyBAQCBzdGF0aWMgaW50IHRpcGNfbmxfY29tcGF0X25hbWVfdGFibGVfZHVtcChzdHJ1Y3Qg dGlwY19ubF9jb21wYXRfbXNnICptc2csCiAJCWdvdG8gb3V0OwogCiAJdGlwY190bHZfc3ByaW50 Zihtc2ctPnJlcCwgIiUtMTB1ICVzIiwKLQkJCSBubGFfZ2V0X3UzMihwdWJsW1RJUENfTkxBX1BV QkxfUkVGXSksCisJCQkgbmxhX2dldF91MzIocHVibFtUSVBDX05MQV9QVUJMX0tFWV0pLAogCQkJ IHNjb3BlX3N0cltubGFfZ2V0X3UzMihwdWJsW1RJUENfTkxBX1BVQkxfU0NPUEVdKV0pOwogb3V0 OgogCXRpcGNfdGx2X3NwcmludGYobXNnLT5yZXAsICJcbiIpOwotLSAKMi4xLjAKCgpGcm9tIGEz Y2NkNzI5YmUwM2YwYzNjMDRjMDQxMTU0NWZkMDJlM2UyNDU2NzMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEppcmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpEYXRlOiBUdWUsIDE3 IE1heSAyMDE2IDE4OjU4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNC8yNF0gc3dpdGNoZGV2 OiBwYXNzIHBvaW50ZXIgdG8gZmliX2luZm8gaW5zdGVhZCBvZiBjb3B5CgpbIFVwc3RyZWFtIGNv bW1pdCBkYTRlZDU1MTY1ZDQxYjEwNzNmOWE0NzZmMWMxODQ5M2U5YmY4YzhlIF0KClRoZSBwcm9i bGVtIGlzIHRoYXQgZmliX2luZm8tPm5oIGlzIFswXSBzbyB0aGUgc3RydWN0IGZpYl9pbmZvCmFs bG9jYXRpb24gc2l6ZSBkZXBlbmRzIG9uIG51bWJlciBvZiBuZXh0aG9wcy4gSWYgd2UganVzdCBj b3B5IGZpYl9pbmZvLAp3ZSBkbyBub3QgY29weSB0aGUgbmV4dGhvcHMgaW5mbyBhbmQgZHJpdmVy IGFjY2Vzc2VzIG1lbW9yeSB3aGljaCBpcyBub3QKb3Vycy4KCkdpdmVuIHRoZSBmYWN0IHRoYXQg ZmliNCBkb2VzIG5vdCBkZWZlciBvcGVyYXRpb25zIGFuZCB0aGVyZWZvcmUgaXQgZG9lcwpub3Qg bmVlZCBjb3B5LCBqdXN0IHBhc3MgdGhlIHBvaW50ZXIgZG93biB0byBkcml2ZXJzIGFzIGl0IHdh cyBkb25lCmJlZm9yZS4KCkZpeGVzOiA4NTBkMGNiYzkxICgic3dpdGNoZGV2OiByZW1vdmUgcG9p bnRlcnMgZnJvbSBzd2l0Y2hkZXYgb2JqZWN0cyIpClNpZ25lZC1vZmYtYnk6IEppcmkgUGlya28g PGppcmlAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvcm9ja2VyL3JvY2tlcl9v ZmRwYS5jIHwgNCArKy0tCiBpbmNsdWRlL25ldC9zd2l0Y2hkZXYuaCAgICAgICAgICAgICAgICAg ICAgfCAyICstCiBuZXQvc3dpdGNoZGV2L3N3aXRjaGRldi5jICAgICAgICAgICAgICAgICAgfCA2 ICsrLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcm9ja2VyL3JvY2tlcl9vZmRwYS5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcm9ja2VyL3JvY2tlcl9vZmRwYS5jCmluZGV4IDBlNzU4 YmMuLjFjYTc5NjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JvY2tlci9yb2Nr ZXJfb2ZkcGEuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9yb2NrZXIvcm9ja2VyX29mZHBh LmMKQEAgLTI3MjcsNyArMjcyNyw3IEBAIHN0YXRpYyBpbnQgb2ZkcGFfcG9ydF9vYmpfZmliNF9h ZGQoc3RydWN0IHJvY2tlcl9wb3J0ICpyb2NrZXJfcG9ydCwKIAogCXJldHVybiBvZmRwYV9wb3J0 X2ZpYl9pcHY0KG9mZHBhX3BvcnQsIHRyYW5zLAogCQkJCSAgIGh0b25sKGZpYjQtPmRzdCksIGZp YjQtPmRzdF9sZW4sCi0JCQkJICAgJmZpYjQtPmZpLCBmaWI0LT50Yl9pZCwgMCk7CisJCQkJICAg ZmliNC0+ZmksIGZpYjQtPnRiX2lkLCAwKTsKIH0KIAogc3RhdGljIGludCBvZmRwYV9wb3J0X29i al9maWI0X2RlbChzdHJ1Y3Qgcm9ja2VyX3BvcnQgKnJvY2tlcl9wb3J0LApAQCAtMjczNyw3ICsy NzM3LDcgQEAgc3RhdGljIGludCBvZmRwYV9wb3J0X29ial9maWI0X2RlbChzdHJ1Y3Qgcm9ja2Vy X3BvcnQgKnJvY2tlcl9wb3J0LAogCiAJcmV0dXJuIG9mZHBhX3BvcnRfZmliX2lwdjQob2ZkcGFf cG9ydCwgTlVMTCwKIAkJCQkgICBodG9ubChmaWI0LT5kc3QpLCBmaWI0LT5kc3RfbGVuLAotCQkJ CSAgICZmaWI0LT5maSwgZmliNC0+dGJfaWQsCisJCQkJICAgZmliNC0+ZmksIGZpYjQtPnRiX2lk LAogCQkJCSAgIE9GRFBBX09QX0ZMQUdfUkVNT1ZFKTsKIH0KIApkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9uZXQvc3dpdGNoZGV2LmggYi9pbmNsdWRlL25ldC9zd2l0Y2hkZXYuaAppbmRleCA1MWQ3N2Iy Li45ODU2MTlhIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zd2l0Y2hkZXYuaAorKysgYi9pbmNs dWRlL25ldC9zd2l0Y2hkZXYuaApAQCAtOTcsNyArOTcsNyBAQCBzdHJ1Y3Qgc3dpdGNoZGV2X29i al9pcHY0X2ZpYiB7CiAJc3RydWN0IHN3aXRjaGRldl9vYmogb2JqOwogCXUzMiBkc3Q7CiAJaW50 IGRzdF9sZW47Ci0Jc3RydWN0IGZpYl9pbmZvIGZpOworCXN0cnVjdCBmaWJfaW5mbyAqZmk7CiAJ dTggdG9zOwogCXU4IHR5cGU7CiAJdTMyIG5sZmxhZ3M7CmRpZmYgLS1naXQgYS9uZXQvc3dpdGNo ZGV2L3N3aXRjaGRldi5jIGIvbmV0L3N3aXRjaGRldi9zd2l0Y2hkZXYuYwppbmRleCBiN2UwMWQ4 Li41OTY1OGIyIDEwMDY0NAotLS0gYS9uZXQvc3dpdGNoZGV2L3N3aXRjaGRldi5jCisrKyBiL25l dC9zd2l0Y2hkZXYvc3dpdGNoZGV2LmMKQEAgLTExODgsNiArMTE4OCw3IEBAIGludCBzd2l0Y2hk ZXZfZmliX2lwdjRfYWRkKHUzMiBkc3QsIGludCBkc3RfbGVuLCBzdHJ1Y3QgZmliX2luZm8gKmZp LAogCQkub2JqLmlkID0gU1dJVENIREVWX09CSl9JRF9JUFY0X0ZJQiwKIAkJLmRzdCA9IGRzdCwK IAkJLmRzdF9sZW4gPSBkc3RfbGVuLAorCQkuZmkgPSBmaSwKIAkJLnRvcyA9IHRvcywKIAkJLnR5 cGUgPSB0eXBlLAogCQkubmxmbGFncyA9IG5sZmxhZ3MsCkBAIC0xMTk2LDggKzExOTcsNiBAQCBp bnQgc3dpdGNoZGV2X2ZpYl9pcHY0X2FkZCh1MzIgZHN0LCBpbnQgZHN0X2xlbiwgc3RydWN0IGZp Yl9pbmZvICpmaSwKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2OwogCWludCBlcnIgPSAwOwogCi0J bWVtY3B5KCZpcHY0X2ZpYi5maSwgZmksIHNpemVvZihpcHY0X2ZpYi5maSkpOwotCiAJLyogRG9u J3Qgb2ZmbG9hZCByb3V0ZSBpZiB1c2luZyBjdXN0b20gaXAgcnVsZXMgb3IgaWYKIAkgKiBJUHY0 IEZJQiBvZmZsb2FkaW5nIGhhcyBiZWVuIGRpc2FibGVkIGNvbXBsZXRlbHkuCiAJICovCkBAIC0x MjQyLDYgKzEyNDEsNyBAQCBpbnQgc3dpdGNoZGV2X2ZpYl9pcHY0X2RlbCh1MzIgZHN0LCBpbnQg ZHN0X2xlbiwgc3RydWN0IGZpYl9pbmZvICpmaSwKIAkJLm9iai5pZCA9IFNXSVRDSERFVl9PQkpf SURfSVBWNF9GSUIsCiAJCS5kc3QgPSBkc3QsCiAJCS5kc3RfbGVuID0gZHN0X2xlbiwKKwkJLmZp ID0gZmksCiAJCS50b3MgPSB0b3MsCiAJCS50eXBlID0gdHlwZSwKIAkJLm5sZmxhZ3MgPSAwLApA QCAtMTI1MCw4ICsxMjUwLDYgQEAgaW50IHN3aXRjaGRldl9maWJfaXB2NF9kZWwodTMyIGRzdCwg aW50IGRzdF9sZW4sIHN0cnVjdCBmaWJfaW5mbyAqZmksCiAJc3RydWN0IG5ldF9kZXZpY2UgKmRl djsKIAlpbnQgZXJyID0gMDsKIAotCW1lbWNweSgmaXB2NF9maWIuZmksIGZpLCBzaXplb2YoaXB2 NF9maWIuZmkpKTsKLQogCWlmICghKGZpLT5maWJfZmxhZ3MgJiBSVE5IX0ZfT0ZGTE9BRCkpCiAJ CXJldHVybiAwOwogCi0tIAoyLjEuMAoKCkZyb20gODY0N2U0ZTM2YjA1Zjk2NmZlZGFiYTFiNjE0 YjI5ZjMyYjI1ZjEwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2FicmluYSBEdWJy b2NhIDxzZEBxdWVhc3lzbmFpbC5uZXQ+CkRhdGU6IFdlZCwgMTggTWF5IDIwMTYgMTM6MzQ6NDAg KzAyMDAKU3ViamVjdDogW1BBVENIIDA1LzI0XSBtYWNzZWM6IGZpeCBuZXRsaW5rIGF0dHJpYnV0 ZSBmb3Iga2V5IGlkCgpbIFVwc3RyZWFtIGNvbW1pdCAxOTY4YTBiOGI2Y2EwODhiYzAyOWJkOTll ZTY5NmYxYWNhNDA5MGQwIF0KCkluIG15IGxhc3QgY29tbWl0IEkgcmVwbGFjZWQgTUFDU0VDX1NB X0FUVFJfS0VZSUQgYnkKTUFDU0VDX1NBX0FUVFJfS0VZLgoKRml4ZXM6IDhhY2NhNmFjZWJkMCAo Im1hY3NlYzoga2V5IGlkZW50aWZpZXIgaXMgMTI4IGJpdHMsIG5vdCA2NCIpClNpZ25lZC1vZmYt Ynk6IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwubmV0PgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvbWFj c2VjLmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjc2VjLmMgYi9kcml2ZXJzL25ldC9t YWNzZWMuYwppbmRleCA5MmVhYWI5NS4uOWU4MDNiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv bWFjc2VjLmMKKysrIGIvZHJpdmVycy9uZXQvbWFjc2VjLmMKQEAgLTE2NDUsNyArMTY0NSw3IEBA IHN0YXRpYyBpbnQgbWFjc2VjX2FkZF9yeHNhKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBn ZW5sX2luZm8gKmluZm8pCiAJaWYgKHRiX3NhW01BQ1NFQ19TQV9BVFRSX0FDVElWRV0pCiAJCXJ4 X3NhLT5hY3RpdmUgPSAhIW5sYV9nZXRfdTgodGJfc2FbTUFDU0VDX1NBX0FUVFJfQUNUSVZFXSk7 CiAKLQlubGFfbWVtY3B5KHJ4X3NhLT5rZXkuaWQsIHRiX3NhW01BQ1NFQ19TQV9BVFRSX0tFWV0s IE1BQ1NFQ19LRVlJRF9MRU4pOworCW5sYV9tZW1jcHkocnhfc2EtPmtleS5pZCwgdGJfc2FbTUFD U0VDX1NBX0FUVFJfS0VZSURdLCBNQUNTRUNfS0VZSURfTEVOKTsKIAlyeF9zYS0+c2MgPSByeF9z YzsKIAlyY3VfYXNzaWduX3BvaW50ZXIocnhfc2MtPnNhW2Fzc29jX251bV0sIHJ4X3NhKTsKIApA QCAtMTc4NCw3ICsxNzg0LDcgQEAgc3RhdGljIGludCBtYWNzZWNfYWRkX3R4c2Eoc3RydWN0IHNr X2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykKIAkJcmV0dXJuIC1FTk9NRU07CiAJ fQogCi0JbmxhX21lbWNweSh0eF9zYS0+a2V5LmlkLCB0Yl9zYVtNQUNTRUNfU0FfQVRUUl9LRVld LCBNQUNTRUNfS0VZSURfTEVOKTsKKwlubGFfbWVtY3B5KHR4X3NhLT5rZXkuaWQsIHRiX3NhW01B Q1NFQ19TQV9BVFRSX0tFWUlEXSwgTUFDU0VDX0tFWUlEX0xFTik7CiAKIAlzcGluX2xvY2tfYmgo JnR4X3NhLT5sb2NrKTsKIAl0eF9zYS0+bmV4dF9wbiA9IG5sYV9nZXRfdTMyKHRiX3NhW01BQ1NF Q19TQV9BVFRSX1BOXSk7Ci0tIAoyLjEuMAoKCkZyb20gYjAzYjE5Njg3NDVmZDU4ODIyMTkyMDY3 ZjZmZWZmNDMwM2RjMTRkZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFzb24gV2Fu ZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KRGF0ZTogVGh1LCAxOSBNYXkgMjAxNiAxMzozNjo1MSAr MDgwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMjRdIHR1bnRhcDogY29ycmVjdGx5IHdha2UgdXAgcHJv Y2VzcyBkdXJpbmcgdW5pbml0CgpbIFVwc3RyZWFtIGNvbW1pdCBhZGRmOGZjNGFjYjFjZjc5NDky YWM2NDk2NmYwNzE3ODc5M2NiM2Q3IF0KCldlIHVzZWQgdG8gY2hlY2sgZGV2LT5yZWdfc3RhdGUg YWdhaW5zdCBORVRSRUdfUkVHSVNURVJFRCBhZnRlciBlYWNoCnRpbWUgd2UgYXJlIHdva2UgdXAu IEJ1dCBhZnRlciBjb21taXQgOWU2NDFiZGNmYTRlICgibmV0LXR1bjoKcmVzdHJ1Y3R1cmUgdHVu X2RvX3JlYWQgZm9yIGJldHRlciBzbGVlcC93YWtldXAgZWZmaWNpZW5jeSIpLCBpdCB1c2VzCnNr Yl9yZWN2X2RhdGFncmFtKCkgd2hpY2ggZG9lcyBub3QgY2hlY2sgZGV2LT5yZWdfc3RhdGUuIFRo aXMgd2lsbApyZXN1bHQgaWYgd2UgZGVsZXRlIGEgdHVuL3RhcCBkZXZpY2UgYWZ0ZXIgYSBwcm9j ZXNzIGlzIGJsb2NrZWQgaW4gdGhlCnJlYWRpbmcuIFRoZSBkZXZpY2Ugd2lsbCB3YWl0IGZvciB0 aGUgcmVmZXJlbmNlIGNvdW50IHdoaWNoIHdhcyBoZWxkCmJ5IHRoYXQgcHJvY2VzcyBmb3IgZXZl ci4KCkZpeGVzIHRoaXMgYnkgdXNpbmcgUkNWX1NIVVRET1dOIHdoaWNoIHdpbGwgYmUgY2hlY2tl ZCBkdXJpbmcKc2tfcmVjdl9kYXRhZ3JhbSgpIGJlZm9yZSB0cnlpbmcgdG8gd2FrZSB1cCB0aGUg cHJvY2VzcyBkdXJpbmcgdW5pbml0LgoKRml4ZXM6IDllNjQxYmRjZmE0ZSAoIm5ldC10dW46IHJl c3RydWN0dXJlIHR1bl9kb19yZWFkIGZvciBiZXR0ZXIKc2xlZXAvd2FrZXVwIGVmZmljaWVuY3ki KQpDYzogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogWGkgV2FuZyA8eGlp QGdvb2dsZS5jb20+CkNjOiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgpBY2tlZC1ieTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpBY2tlZC1ieTogTWljaGFlbCBTLiBUc2ly a2luIDxtc3RAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3R1bi5jIHwgNiArKystLS0KIDEgZmls ZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvdHVuLmMgYi9kcml2ZXJzL25ldC90dW4uYwppbmRleCAyYzllNDVmNS4uZGRh NDkwNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdHVuLmMKKysrIGIvZHJpdmVycy9uZXQvdHVu LmMKQEAgLTU2OCwxMSArNTY4LDEzIEBAIHN0YXRpYyB2b2lkIHR1bl9kZXRhY2hfYWxsKHN0cnVj dCBuZXRfZGV2aWNlICpkZXYpCiAJZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogCQl0ZmlsZSA9 IHJ0bmxfZGVyZWZlcmVuY2UodHVuLT50ZmlsZXNbaV0pOwogCQlCVUdfT04oIXRmaWxlKTsKKwkJ dGZpbGUtPnNvY2tldC5zay0+c2tfc2h1dGRvd24gPSBSQ1ZfU0hVVERPV047CiAJCXRmaWxlLT5z b2NrZXQuc2stPnNrX2RhdGFfcmVhZHkodGZpbGUtPnNvY2tldC5zayk7CiAJCVJDVV9JTklUX1BP SU5URVIodGZpbGUtPnR1biwgTlVMTCk7CiAJCS0tdHVuLT5udW1xdWV1ZXM7CiAJfQogCWxpc3Rf Zm9yX2VhY2hfZW50cnkodGZpbGUsICZ0dW4tPmRpc2FibGVkLCBuZXh0KSB7CisJCXRmaWxlLT5z b2NrZXQuc2stPnNrX3NodXRkb3duID0gUkNWX1NIVVRET1dOOwogCQl0ZmlsZS0+c29ja2V0LnNr LT5za19kYXRhX3JlYWR5KHRmaWxlLT5zb2NrZXQuc2spOwogCQlSQ1VfSU5JVF9QT0lOVEVSKHRm aWxlLT50dW4sIE5VTEwpOwogCX0KQEAgLTYyOCw2ICs2MzAsNyBAQCBzdGF0aWMgaW50IHR1bl9h dHRhY2goc3RydWN0IHR1bl9zdHJ1Y3QgKnR1biwgc3RydWN0IGZpbGUgKmZpbGUsIGJvb2wgc2tp cF9maWx0ZQogCQkJZ290byBvdXQ7CiAJfQogCXRmaWxlLT5xdWV1ZV9pbmRleCA9IHR1bi0+bnVt cXVldWVzOworCXRmaWxlLT5zb2NrZXQuc2stPnNrX3NodXRkb3duICY9IH5SQ1ZfU0hVVERPV047 CiAJcmN1X2Fzc2lnbl9wb2ludGVyKHRmaWxlLT50dW4sIHR1bik7CiAJcmN1X2Fzc2lnbl9wb2lu dGVyKHR1bi0+dGZpbGVzW3R1bi0+bnVtcXVldWVzXSwgdGZpbGUpOwogCXR1bi0+bnVtcXVldWVz Kys7CkBAIC0xNDI1LDkgKzE0MjgsNiBAQCBzdGF0aWMgc3NpemVfdCB0dW5fZG9fcmVhZChzdHJ1 Y3QgdHVuX3N0cnVjdCAqdHVuLCBzdHJ1Y3QgdHVuX2ZpbGUgKnRmaWxlLAogCWlmICghaW92X2l0 ZXJfY291bnQodG8pKQogCQlyZXR1cm4gMDsKIAotCWlmICh0dW4tPmRldi0+cmVnX3N0YXRlICE9 IE5FVFJFR19SRUdJU1RFUkVEKQotCQlyZXR1cm4gLUVJTzsKLQogCS8qIFJlYWQgZnJhbWVzIGZy b20gcXVldWUgKi8KIAlza2IgPSBfX3NrYl9yZWN2X2RhdGFncmFtKHRmaWxlLT5zb2NrZXQuc2ss IG5vYmxvY2sgPyBNU0dfRE9OVFdBSVQgOiAwLAogCQkJCSAgJnBlZWtlZCwgJm9mZiwgJmVycik7 Ci0tIAoyLjEuMAoKCkZyb20gNjY1OTUwNTQ3YjJkMjkyMjM0MDIxMmQ1Yzk4MGUwOGYwZmU2MWRh MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIkVyaWMgVy4gQmllZGVybWFuIiA8ZWJp ZWRlcm1AeG1pc3Npb24uY29tPgpEYXRlOiBGcmksIDIwIE1heSAyMDE2IDE3OjIyOjQ4IC0wNTAw ClN1YmplY3Q6IFtQQVRDSCAwNy8yNF0gYnBmOiBVc2UgbW91bnRfbm9kZXYgbm90IG1vdW50X25z IHRvIG1vdW50IHRoZSBicGYKIGZpbGVzeXN0ZW0KClsgVXBzdHJlYW0gY29tbWl0IGUyN2Y0YTk0 MmEwZWU0Yjg0NTY3YTNjNmNmYTg0ZjI3M2U1NWNiYjcgXQoKV2hpbGUgcmV2aWV3aW5nIHRoZSBm aWxlc3lzdGVtcyB0aGF0IHNldCBGU19VU0VSTlNfTU9VTlQgSSBzcG90dGVkIHRoZQpicGYgZmls ZXN5c3RlbS4gIExvb2tpbmcgYXQgdGhlIGNvZGUgSSBzYXcgYSBicm9rZW4gdXNhZ2Ugb2YgbW91 bnRfbnMKd2l0aCBjdXJyZW50LT5uc3Byb3h5LT5tbnRfbnMuIEFzIHRoZSBjb2RlIGRvZXMgbm90 IGFjcXVpcmUgYQpyZWZlcmVuY2UgdG8gdGhlIG1vdW50IG5hbWVzcGFjZSBpdCBjYW4gbm90IHBv c3NpYmx5IGJlIGNvcnJlY3QgdG8Kc3RvcmUgdGhlIG1vdW50IG5hbWVzcGFjZSBvbiB0aGUgc3Vw ZXJibG9jayBhcyBpdCBkb2VzLgoKUmVwbGFjZSBtb3VudF9ucyB3aXRoIG1vdW50X25vZGV2IHNv IHRoYXQgZWFjaCBtb3VudCBvZiB0aGUgYnBmCmZpbGVzeXN0ZW0gcmV0dXJucyBhIGRpc3RpbmN0 IGluc3RhbmNlLCBhbmQgdGhlIGNvZGUgaXMgbm90IGJ1Z2d5LgoKSW4gZGlzY3Vzc2lvbiB3aXRo IEhhbm5lcyBGcmVkZXJpYyBTb3dhIGl0IHdhcyByZXBvcnRlZCB0aGF0IHRoZSB1c2UKb2YgbW91 bnRfbnMgd2FzIGFuIGF0dGVtcHQgdG8gaGF2ZSBvbmUgYnBmIGluc3RhbmNlIHBlciBtb3VudApu YW1lc3BhY2UsIGluIGFuIGF0dGVtcHQgdG8ga2VlcCByZXNvdXJjZXMgdGhhdCBwaW4gcmVzb3Vy Y2VzIGZyb20KaGlkaW5nLiAgVGhhdCBpbnRlbnQgc2ltcGx5IGRvZXMgbm90IHdvcmssIHRoZSB2 ZnMgaXMgbm90IGJ1aWx0IHRvCmFsbG93IHRoYXQga2luZCBvZiBiZWhhdmlvci4gIFdoaWNoIG1l YW5zIHRoYXQgdGhlIGJwZiBmaWxlc3lzdGVtCnJlYWxseSBpcyBidWdneSBib3RoIHNlbWFudGlj YWxseSBhbmQgaW4gaXQncyBpbXBsZW1lbmF0aW9uIGFzIGl0IGRvZXMKbm90IG5vciBjYW4gaXQg aW1wbGVtZW50IHRoZSBvcmlnaW5hbCBpbnRlbnQuCgpUaGlzIGNoYW5nZSBpcyB1c2Vyc3BhY2Ug dmlzaWJsZSwgYnV0IG15IGV4cGVyaWVuY2Ugd2l0aCBzaW1pbGFyCmZpbGVzeXN0ZW1zIGxlYWRz IG1lIHRvIGJlbGlldmUgbm90aGluZyB3aWxsIGJyZWFrIHdpdGggYSBtb2RlbCBvZiBlYWNoCm1v dW50IG9mIHRoZSBicGYgZmlsZXN5c3RlbSBpcyBkaXN0aW5jdCBmcm9tIGFsbCBvdGhlcnMuCgpG aXhlczogYjIxOTc3NTViMjYzICgiYnBmOiBhZGQgc3VwcG9ydCBmb3IgcGVyc2lzdGVudCBtYXBz L3Byb2dzIikKQ2M6IEhhbm5lcyBGcmVkZXJpYyBTb3dhIDxoYW5uZXNAc3RyZXNzaW5kdWt0aW9u Lm9yZz4KQWNrZWQtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+ClNp Z25lZC1vZmYtYnk6ICJFcmljIFcuIEJpZWRlcm1hbiIgPGViaWVkZXJtQHhtaXNzaW9uLmNvbT4K QWNrZWQtYnk6IEhhbm5lcyBGcmVkZXJpYyBTb3dhIDxoYW5uZXNAc3RyZXNzaW5kdWt0aW9uLm9y Zz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGtlcm5lbC9icGYvaW5vZGUuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvaW5vZGUuYyBiL2tl cm5lbC9icGYvaW5vZGUuYwppbmRleCA4Zjk0Y2ExLi41NWQ5MjM2IDEwMDY0NAotLS0gYS9rZXJu ZWwvYnBmL2lub2RlLmMKKysrIGIva2VybmVsL2JwZi9pbm9kZS5jCkBAIC0zNzgsNyArMzc4LDcg QEAgc3RhdGljIGludCBicGZfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lk ICpkYXRhLCBpbnQgc2lsZW50KQogc3RhdGljIHN0cnVjdCBkZW50cnkgKmJwZl9tb3VudChzdHJ1 Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqdHlwZSwgaW50IGZsYWdzLAogCQkJCWNvbnN0IGNoYXIgKmRl dl9uYW1lLCB2b2lkICpkYXRhKQogewotCXJldHVybiBtb3VudF9ucyh0eXBlLCBmbGFncywgY3Vy cmVudC0+bnNwcm94eS0+bW50X25zLCBicGZfZmlsbF9zdXBlcik7CisJcmV0dXJuIG1vdW50X25v ZGV2KHR5cGUsIGZsYWdzLCBkYXRhLCBicGZfZmlsbF9zdXBlcik7CiB9CiAKIHN0YXRpYyBzdHJ1 Y3QgZmlsZV9zeXN0ZW1fdHlwZSBicGZfZnNfdHlwZSA9IHsKLS0gCjIuMS4wCgoKRnJvbSA2Y2Qy MTdmNmZiOGUzZTAwNGYyOTMyYzlhYjRhNzhmZmJmNDdhNWZjIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBIYW5uZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0cmVzc2luZHVrdGlvbi5v cmc+CkRhdGU6IFRodSwgMTkgTWF5IDIwMTYgMTU6NTg6MzMgKzAyMDAKU3ViamVjdDogW1BBVENI IDA4LzI0XSB1ZHA6IHByZXZlbnQgc2ticyBsaW5nZXJpbmcgaW4gdHVubmVsIHNvY2tldCBxdWV1 ZXMKClsgVXBzdHJlYW0gY29tbWl0IGU1YWVkMDA2YmU5MThhZjE2M2ViMzk3ZTQ1YWE1ZWE2Y2Vm ZDVlMDEgXQoKSW4gY2FzZSB3ZSBmaW5kIGEgc29ja2V0IHdpdGggZW5jYXBzdWxhdGlvbiBlbmFi bGVkIHdlIHNob3VsZCBjYWxsCnRoZSBlbmNhcF9yZWN2IGZ1bmN0aW9uIGV2ZW4gaWYganVzdCBh IHVkcCBoZWFkZXIgd2l0aG91dCBwYXlsb2FkIGlzCmF2YWlsYWJsZS4gVGhlIGNhbGxiYWNrcyBh cmUgcmVzcG9uc2libGUgZm9yIGNvcnJlY3RseSB2ZXJpZnlpbmcgYW5kCmRyb3BwaW5nIHRoZSBw YWNrZXRzLgoKQWxzbywgaW4gY2FzZSB0aGUgaGVhZGVyIHZhbGlkYXRpb24gZmFpbHMgZm9yIGdl bmV2ZSBhbmQgdnhsYW4gd2UKc2hvdWxkbid0IHB1dCB0aGUgc2tiIGJhY2sgaW50byB0aGUgc29j a2V0IHF1ZXVlLCBubyBvbmUgd2lsbCBwaWNrCnRoZW0gdXAgdGhlcmUuICBJbnN0ZWFkIHdlIGNh biBzaW1wbHkgZGlzY2FyZCB0aGVtIGluIHRoZSByZXNwZWN0aXZlCmVuY2FwX3JlY3YgZnVuY3Rp b25zLgoKU2lnbmVkLW9mZi1ieTogSGFubmVzIEZyZWRlcmljIFNvd2EgPGhhbm5lc0BzdHJlc3Np bmR1a3Rpb24ub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZ2VuZXZlLmMgfCAxMCArKystLS0tLS0tCiBkcml2 ZXJzL25ldC92eGxhbi5jICB8ICA0ICsrLS0KIG5ldC9pcHY0L3VkcC5jICAgICAgIHwgIDIgKy0K IG5ldC9pcHY2L3VkcC5jICAgICAgIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRp b25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9nZW5ldmUu YyBiL2RyaXZlcnMvbmV0L2dlbmV2ZS5jCmluZGV4IDdiMGE2NDQuLjlmY2I0ODkgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2dlbmV2ZS5jCisrKyBiL2RyaXZlcnMvbmV0L2dlbmV2ZS5jCkBAIC0z MzYsMTUgKzMzNiwxNSBAQCBzdGF0aWMgaW50IGdlbmV2ZV91ZHBfZW5jYXBfcmVjdihzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAKIAkvKiBOZWVkIEdlbmV2ZSBhbmQgaW5u ZXIgRXRoZXJuZXQgaGVhZGVyIHRvIGJlIHByZXNlbnQgKi8KIAlpZiAodW5saWtlbHkoIXBza2Jf bWF5X3B1bGwoc2tiLCBHRU5FVkVfQkFTRV9ITEVOKSkpCi0JCWdvdG8gZXJyb3I7CisJCWdvdG8g ZHJvcDsKIAogCS8qIFJldHVybiBwYWNrZXRzIHdpdGggcmVzZXJ2ZWQgYml0cyBzZXQgKi8KIAln ZW5ldmVoID0gZ2VuZXZlX2hkcihza2IpOwogCWlmICh1bmxpa2VseShnZW5ldmVoLT52ZXIgIT0g R0VORVZFX1ZFUikpCi0JCWdvdG8gZXJyb3I7CisJCWdvdG8gZHJvcDsKIAogCWlmICh1bmxpa2Vs eShnZW5ldmVoLT5wcm90b190eXBlICE9IGh0b25zKEVUSF9QX1RFQikpKQotCQlnb3RvIGVycm9y OworCQlnb3RvIGRyb3A7CiAKIAlncyA9IHJjdV9kZXJlZmVyZW5jZV9za191c2VyX2RhdGEoc2sp OwogCWlmICghZ3MpCkBAIC0zNjcsMTAgKzM2Nyw2IEBAIGRyb3A6CiAJLyogQ29uc3VtZSBiYWQg cGFja2V0ICovCiAJa2ZyZWVfc2tiKHNrYik7CiAJcmV0dXJuIDA7Ci0KLWVycm9yOgotCS8qIExl dCB0aGUgVURQIGxheWVyIGRlYWwgd2l0aCB0aGUgc2tiICovCi0JcmV0dXJuIDE7CiB9CiAKIHN0 YXRpYyBzdHJ1Y3Qgc29ja2V0ICpnZW5ldmVfY3JlYXRlX3NvY2soc3RydWN0IG5ldCAqbmV0LCBi b29sIGlwdjYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi5jIGIvZHJpdmVycy9uZXQv dnhsYW4uYwppbmRleCA4YWMyNjFhLi45YWE4Njc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92 eGxhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKQEAgLTEyNjIsNyArMTI2Miw3IEBAIHN0 YXRpYyBpbnQgdnhsYW5fcmN2KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikK IAogCS8qIE5lZWQgVnhsYW4gYW5kIGlubmVyIEV0aGVybmV0IGhlYWRlciB0byBiZSBwcmVzZW50 ICovCiAJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgVlhMQU5fSExFTikpCi0JCXJldHVybiAxOwor CQlnb3RvIGRyb3A7CiAKIAl1bnBhcnNlZCA9ICp2eGxhbl9oZHIoc2tiKTsKIAkvKiBWTkkgZmxh ZyBhbHdheXMgcmVxdWlyZWQgdG8gYmUgc2V0ICovCkBAIC0xMjcxLDcgKzEyNzEsNyBAQCBzdGF0 aWMgaW50IHZ4bGFuX3JjdihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAJ CQkgICBudG9obCh2eGxhbl9oZHIoc2tiKS0+dnhfZmxhZ3MpLAogCQkJICAgbnRvaGwodnhsYW5f aGRyKHNrYiktPnZ4X3ZuaSkpOwogCQkvKiBSZXR1cm4gbm9uIHZ4bGFuIHBrdCAqLwotCQlyZXR1 cm4gMTsKKwkJZ290byBkcm9wOwogCX0KIAl1bnBhcnNlZC52eF9mbGFncyAmPSB+VlhMQU5fSEZf Vk5JOwogCXVucGFyc2VkLnZ4X3ZuaSAmPSB+VlhMQU5fVk5JX01BU0s7CmRpZmYgLS1naXQgYS9u ZXQvaXB2NC91ZHAuYyBiL25ldC9pcHY0L3VkcC5jCmluZGV4IGEyZTdmNTUuLmU5ODUzZGYgMTAw NjQ0Ci0tLSBhL25ldC9pcHY0L3VkcC5jCisrKyBiL25ldC9pcHY0L3VkcC5jCkBAIC0xNjE2LDcg KzE2MTYsNyBAQCBpbnQgdWRwX3F1ZXVlX3Jjdl9za2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiKQogCiAJCS8qIGlmIHdlJ3JlIG92ZXJseSBzaG9ydCwgbGV0IFVEUCBoYW5k bGUgaXQgKi8KIAkJZW5jYXBfcmN2ID0gQUNDRVNTX09OQ0UodXAtPmVuY2FwX3Jjdik7Ci0JCWlm IChza2ItPmxlbiA+IHNpemVvZihzdHJ1Y3QgdWRwaGRyKSAmJiBlbmNhcF9yY3YpIHsKKwkJaWYg KGVuY2FwX3JjdikgewogCQkJaW50IHJldDsKIAogCQkJLyogVmVyaWZ5IGNoZWNrc3VtIGJlZm9y ZSBnaXZpbmcgdG8gZW5jYXAgKi8KZGlmZiAtLWdpdCBhL25ldC9pcHY2L3VkcC5jIGIvbmV0L2lw djYvdWRwLmMKaW5kZXggNmJjNWM2Ni4uZjk2ODMxZDkgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3Vk cC5jCisrKyBiL25ldC9pcHY2L3VkcC5jCkBAIC02NTMsNyArNjUzLDcgQEAgaW50IHVkcHY2X3F1 ZXVlX3Jjdl9za2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCiAJCS8q IGlmIHdlJ3JlIG92ZXJseSBzaG9ydCwgbGV0IFVEUCBoYW5kbGUgaXQgKi8KIAkJZW5jYXBfcmN2 ID0gQUNDRVNTX09OQ0UodXAtPmVuY2FwX3Jjdik7Ci0JCWlmIChza2ItPmxlbiA+IHNpemVvZihz dHJ1Y3QgdWRwaGRyKSAmJiBlbmNhcF9yY3YpIHsKKwkJaWYgKGVuY2FwX3JjdikgewogCQkJaW50 IHJldDsKIAogCQkJLyogVmVyaWZ5IGNoZWNrc3VtIGJlZm9yZSBnaXZpbmcgdG8gZW5jYXAgKi8K LS0gCjIuMS4wCgoKRnJvbSA2ZjUzM2U1MWU5Y2ZmYjZiNThjMTU1YTcwNjQxMTdmNTkwYmY0MzYy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWNvbGFzIERpY2h0ZWwgPG5pY29sYXMu ZGljaHRlbEA2d2luZC5jb20+CkRhdGU6IFRodSwgMTkgTWF5IDIwMTYgMTc6MjY6MjkgKzAyMDAK U3ViamVjdDogW1BBVENIIDA5LzI0XSB1YXBpIGdsaWJjIGNvbXBhdDogZml4IGNvbXBpbGF0aW9u IHdoZW4gIV9fVVNFX01JU0MgaW4KIGdsaWJjCgpbIFVwc3RyZWFtIGNvbW1pdCBmMGEzZmRjYTc5 NGQxZTY4YWUyODRlZjRjYWVmZTY4MWY3YzE4ZTg5IF0KClRoZXNlIHN0cnVjdHVyZXMgYXJlIGRl ZmluZWQgb25seSBpZiBfX1VTRV9NSVNDIGlzIHNldCBpbiBnbGliYyBuZXQvaWYuaApoZWFkZXJz LCBpZSB3aGVuIF9CU0RfU09VUkNFIG9yIF9TVklEX1NPVVJDRSBhcmUgZGVmaW5lZC4KCkNDOiBK YW4gRW5nZWxoYXJkdCA8amVuZ2VsaEBpbmFpLmRlPgpDQzogSm9zaCBCb3llciA8andib3llckBm ZWRvcmFwcm9qZWN0Lm9yZz4KQ0M6IFN0ZXBoZW4gSGVtbWluZ2VyIDxzaGVtbWluZ0Bicm9jYWRl LmNvbT4KQ0M6IFdhbGRlbWFyIEJyb2Rrb3JiIDxtYWlsQHdhbGRlbWFyLWJyb2Rrb3JiLmRlPgpD QzogR2FicmllbCBMYXNrYXIgPGdhYnJpZWxAbHNlLmVwaXRhLmZyPgpDQzogTWlra28gUmFwZWxp IDxtaWtrby5yYXBlbGlAaWtpLmZpPgpGaXhlczogNGE5MWNiNjFiYjk5ICgidWFwaSBnbGliYyBj b21wYXQ6IGZpeCBjb21waWxlIGVycm9ycyB3aGVuIGdsaWJjIG5ldC9pZi5oIGluY2x1ZGVkIGJl Zm9yZSBsaW51eC9pZi5oIikKU2lnbmVkLW9mZi1ieTogTmljb2xhcyBEaWNodGVsIDxuaWNvbGFz LmRpY2h0ZWxANndpbmQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS91YXBpL2xpbnV4L2xpYmMtY29tcGF0LmggfCAy ICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvbGliYy1jb21wYXQuaCBiL2luY2x1ZGUvdWFwaS9s aW51eC9saWJjLWNvbXBhdC5oCmluZGV4IGQ1ZTM4YzcuLmU0ZjA0OGUgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvdWFwaS9saW51eC9saWJjLWNvbXBhdC5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9s aWJjLWNvbXBhdC5oCkBAIC01Miw3ICs1Miw3IEBACiAjaWYgZGVmaW5lZChfX0dMSUJDX18pCiAK IC8qIENvb3JkaW5hdGUgd2l0aCBnbGliYyBuZXQvaWYuaCBoZWFkZXIuICovCi0jaWYgZGVmaW5l ZChfTkVUX0lGX0gpCisjaWYgZGVmaW5lZChfTkVUX0lGX0gpICYmIGRlZmluZWQoX19VU0VfTUlT QykKIAogLyogR0xJQkMgaGVhZGVycyBpbmNsdWRlZCBmaXJzdCBzbyBkb24ndCBkZWZpbmUgYW55 dGhpbmcKICAqIHRoYXQgd291bGQgYWxyZWFkeSBiZSBkZWZpbmVkLiAqLwotLSAKMi4xLjAKCgpG cm9tIDcyM2I1N2E2NWE0NGI2OWIyYzg1MTRkYjM1ODkyMTRlYmU3ZjNmZjcgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEV6ZXF1aWVsIEdhcmNpYSA8ZXplcXVpZWxAdmFuZ3VhcmRpYXN1 ci5jb20uYXI+CkRhdGU6IEZyaSwgMjAgTWF5IDIwMTYgMTM6MjE6MTAgLTAzMDAKU3ViamVjdDog W1BBVENIIDEwLzI0XSBpcHY0OiBGaXggbm9uLWluaXRpYWxpemVkIFRUTCB3aGVuIENPTkZJR19T WVNDVEw9bgoKWyBVcHN0cmVhbSBjb21taXQgMDQ5YmJmNTg5ZWM2NTE2ODUyMDViZDhjZTczMjIx ZmRkNjIzNDVjZiBdCgpDb21taXQgZmE1MGQ5NzRkMTA0ICgiaXB2NDogTmFtZXNwYWNlaWZ5IGlw X2RlZmF1bHRfdHRsIHN5c2N0bCBrbm9iIikKbW92ZXMgdGhlIGRlZmF1bHQgVFRMIGFzc2lnbm1l bnQsIGFuZCBhcyBzaWRlLWVmZmVjdCBJUHY0IFRUTCBub3cKaGFzIGEgZGVmYXVsdCB2YWx1ZSBv bmx5IGlmIHN5c2N0bCBzdXBwb3J0IGlzIGVuYWJsZWQgKENPTkZJR19TWVNDVEw9eSkuCgpUaGUg c3lzY3RsX2lwX2RlZmF1bHRfdHRsIGlzIGZ1bmRhbWVudGFsIGZvciBJUCB0byB3b3JrIHByb3Bl cmx5LAphcyBpdCBwcm92aWRlcyB0aGUgVFRMIHRvIGJlIHVzZWQgYXMgZGVmYXVsdC4gVGhlIGRl ZmF1dGwgVFRMIG1heSBiZQp1c2VkIGluIGlwX3NlbGVjdGVkX3R0bCwgdGhyb3VnaCB0aGUgZm9s bG93aW5nIGZsb3c6CgogIGlwX3NlbGVjdF90dGwKICAgIGlwNF9kc3RfaG9wbGltaXQKICAgICAg bmV0LT5pcHY0LnN5c2N0bF9pcF9kZWZhdWx0X3R0bAoKVGhpcyBjb21taXQgZml4ZXMgdGhlIGlz c3VlIGJ5IGFzc2lnbmluZyBuZXQtPmlwdjQuc3lzY3RsX2lwX2RlZmF1bHRfdHRsCmluIG5ldF9p bml0X25ldCwgY2FsbGVkIGR1cmluZyBpcHY0J3MgaW5pdGlhbGl6YXRpb24uCgpXaXRob3V0IHRo aXMgY29tbWl0LCBhIGtlcm5lbCBidWlsdCB3aXRob3V0IHN5c2N0bCBzdXBwb3J0IHdpbGwgc2Vu ZAphbGwgSVAgcGFja2V0cyB3aXRoIHplcm8gVFRMICh1bmxlc3MgYSBUVEwgaXMgZXhwbGljaXRs eSBzZXQsIGUuZy4Kd2l0aCBzZXRzb2Nrb3B0KS4KCkdpdmVuIGEgc2ltaWxhciBpc3N1ZSBtaWdo dCBhcHBlYXIgb24gdGhlIG90aGVyIGtub2JzIHRoYXQgd2VyZQpuYW1lc3BhY2VpZnksIHRoaXMg Y29tbWl0IGFsc28gbW92ZXMgdGhlbS4KCkZpeGVzOiBmYTUwZDk3NGQxMDQgKCJpcHY0OiBOYW1l c3BhY2VpZnkgaXBfZGVmYXVsdF90dGwgc3lzY3RsIGtub2IiKQpTaWduZWQtb2ZmLWJ5OiBFemVx dWllbCBHYXJjaWEgPGV6ZXF1aWVsQHZhbmd1YXJkaWFzdXIuY29tLmFyPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvYWZf aW5ldC5jICAgICAgICAgfCA4ICsrKysrKysrCiBuZXQvaXB2NC9zeXNjdGxfbmV0X2lwdjQuYyB8 IDQgLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvYWZfaW5ldC5jIGIvbmV0L2lwdjQvYWZfaW5ldC5jCmlu ZGV4IDllNDgxOTkuLjdhZDBlNTYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2FmX2luZXQuYworKysg Yi9uZXQvaXB2NC9hZl9pbmV0LmMKQEAgLTE2NjAsNiArMTY2MCwxNCBAQCBzdGF0aWMgX19uZXRf aW5pdCBpbnQgaW5ldF9pbml0X25ldChzdHJ1Y3QgbmV0ICpuZXQpCiAJICovCiAJbmV0LT5pcHY0 LnBpbmdfZ3JvdXBfcmFuZ2UucmFuZ2VbMF0gPSBtYWtlX2tnaWQoJmluaXRfdXNlcl9ucywgMSk7 CiAJbmV0LT5pcHY0LnBpbmdfZ3JvdXBfcmFuZ2UucmFuZ2VbMV0gPSBtYWtlX2tnaWQoJmluaXRf dXNlcl9ucywgMCk7CisKKwkvKiBEZWZhdWx0IHZhbHVlcyBmb3Igc3lzY3RsLWNvbnRyb2xsZWQg cGFyYW1ldGVycy4KKwkgKiBXZSBzZXQgdGhlbSBoZXJlLCBpbiBjYXNlIHN5c2N0bCBpcyBub3Qg Y29tcGlsZWQuCisJICovCisJbmV0LT5pcHY0LnN5c2N0bF9pcF9kZWZhdWx0X3R0bCA9IElQREVG VFRMOworCW5ldC0+aXB2NC5zeXNjdGxfaXBfZHluYWRkciA9IDA7CisJbmV0LT5pcHY0LnN5c2N0 bF9pcF9lYXJseV9kZW11eCA9IDE7CisKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0 L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMgYi9uZXQvaXB2NC9zeXNjdGxfbmV0X2lwdjQuYwppbmRl eCAxZTFmZTYwLi4wMzExMmEzIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9zeXNjdGxfbmV0X2lwdjQu YworKysgYi9uZXQvaXB2NC9zeXNjdGxfbmV0X2lwdjQuYwpAQCAtOTg4LDEwICs5ODgsNiBAQCBz dGF0aWMgX19uZXRfaW5pdCBpbnQgaXB2NF9zeXNjdGxfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0 KQogCWlmICghbmV0LT5pcHY0LnN5c2N0bF9sb2NhbF9yZXNlcnZlZF9wb3J0cykKIAkJZ290byBl cnJfcG9ydHM7CiAKLQluZXQtPmlwdjQuc3lzY3RsX2lwX2RlZmF1bHRfdHRsID0gSVBERUZUVEw7 Ci0JbmV0LT5pcHY0LnN5c2N0bF9pcF9keW5hZGRyID0gMDsKLQluZXQtPmlwdjQuc3lzY3RsX2lw X2Vhcmx5X2RlbXV4ID0gMTsKLQogCXJldHVybiAwOwogCiBlcnJfcG9ydHM6Ci0tIAoyLjEuMAoK CkZyb20gOGU5YjUzNzA3MzYxYWExYzA0MDU5MTBiZDc2MWUzMzJjYzlkOTBiMSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5l dD4KRGF0ZTogU3VuLCAyMiBNYXkgMjAxNiAyMzoxNjoxOCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MTEvMjRdIGJwZiwgaW5vZGU6IGRpc2FsbG93IHVzZXJucyBtb3VudHMKClsgVXBzdHJlYW0gY29t bWl0IDYxMmJhY2FkNzhiYTZkMGE5MTE2NmZjNDQ4N2FmMTE0YmFjMTcyYTggXQoKRm9sbG93LXVw IHRvIGNvbW1pdCBlMjdmNGE5NDJhMGUgKCJicGY6IFVzZSBtb3VudF9ub2RldiBub3QgbW91bnRf bnMKdG8gbW91bnQgdGhlIGJwZiBmaWxlc3lzdGVtIiksIHdoaWNoIHJlbW92ZXMgdGhlIEZTX1VT RVJOU19NT1VOVCBmbGFnLgoKVGhlIG9yaWdpbmFsIGlkZWEgd2FzIHRvIGhhdmUgYSBwZXIgbW91 bnRucyBpbnN0YW5jZSBpbnN0ZWFkIG9mIGEKc2luZ2xlIGdsb2JhbCBmcyBpbnN0YW5jZSwgYnV0 IHRoYXQgZGlkbid0IHdvcmsgb3V0IGFuZCB3ZSBoYWQgdG8Kc3dpdGNoIHRvIG1vdW50X25vZGV2 KCkgbW9kZWwuIFRoZSBpbnRlbnQgb2YgdGhhdCBtaWRkbGUgZ3JvdW5kIHdhcwp0aGF0IHdlIGF2 b2lkIHVzZXJzIHdobyBkb24ndCBwbGF5IG5pY2UgdG8gY3JlYXRlIGVuZGxlc3MgaW5zdGFuY2Vz Cm9mIGJwZiBmcyB3aGljaCBhcmUgZGlmZmljdWx0IHRvIGNvbnRyb2wgYW5kIGRpc2NvdmVyIGZy b20gYW4gYWRtaW4KcG9pbnQgb2YgdmlldywgYnV0IGF0IHRoZSBzYW1lIHRpbWUgaXQgd291bGQg aGF2ZSBhbGxvd2VkIHVzIHRvIGJlCm1vcmUgZmxleGlibGUgd2l0aCByZWdhcmQgdG8gbmFtZXNw YWNlcy4KClRoZXJlZm9yZSwgc2luY2Ugd2Ugbm93IGRpZCB0aGUgc3dpdGNoIHRvIG1vdW50X25v ZGV2KCkgYXMgYSBmaXgKd2hlcmUgaW5kaXZpZHVhbCBpbnN0YW5jZXMgYXJlIGNyZWF0ZWQsIHdl IGFsc28gbmVlZCB0byByZW1vdmUgdXNlcm5zCm1vdW50IGZsYWcgYWxvbmcgd2l0aCBpdCB0byBh dm9pZCBydW5uaW5nIGludG8gbWVudGlvbmVkIHNpdHVhdGlvbi4KSSBkb24ndCBleHBlY3QgYW55 IGJyZWFrYWdlIGF0IHRoaXMgZWFybHkgcG9pbnQgaW4gdGltZSB3aXRoIHJlbW92aW5nCnRoZSBm bGFnIGFuZCB3ZSBjYW4gcmV2aXNpdCB0aGlzIGxhdGVyIHNob3VsZCB0aGUgcmVxdWlyZW1lbnQg Zm9yCnRoaXMgY29tZSB1cCB3aXRoIGZ1dHVyZSB1c2Vycy4gVGhpcyBhbmQgY29tbWl0IGUyN2Y0 YTk0MmEwZSBoYXZlCmJlZW4gc3BsaXQgdG8gZmFjaWxpdGF0ZSB0cmFja2luZyBzaG91bGQgYW55 IG9mIHRoZW0gcnVuIGludG8gdGhlCnVubGlrZWx5IGNhc2Ugb2YgY2F1c2luZyBhIHJlZ3Jlc3Np b24uCgpGaXhlczogYjIxOTc3NTViMjYzICgiYnBmOiBhZGQgc3VwcG9ydCBmb3IgcGVyc2lzdGVu dCBtYXBzL3Byb2dzIikKU2lnbmVkLW9mZi1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9n ZWFyYm94Lm5ldD4KQWNrZWQtYnk6IEhhbm5lcyBGcmVkZXJpYyBTb3dhIDxoYW5uZXNAc3RyZXNz aW5kdWt0aW9uLm9yZz4KQWNrZWQtYnk6IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YXN0QGtlcm5lbC5v cmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBrZXJuZWwvYnBmL2lub2RlLmMgfCAxIC0KIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9pbm9kZS5jIGIva2VybmVsL2JwZi9pbm9kZS5j CmluZGV4IDU1ZDkyMzYuLmIyYWVmYTIgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvaW5vZGUuYwor KysgYi9rZXJuZWwvYnBmL2lub2RlLmMKQEAgLTM4Niw3ICszODYsNiBAQCBzdGF0aWMgc3RydWN0 IGZpbGVfc3lzdGVtX3R5cGUgYnBmX2ZzX3R5cGUgPSB7CiAJLm5hbWUJCT0gImJwZiIsCiAJLm1v dW50CQk9IGJwZl9tb3VudCwKIAkua2lsbF9zYgk9IGtpbGxfbGl0dGVyX3N1cGVyLAotCS5mc19m bGFncwk9IEZTX1VTRVJOU19NT1VOVCwKIH07CiAKIE1PRFVMRV9BTElBU19GUygiYnBmIik7Ci0t IAoyLjEuMAoKCkZyb20gYjBhNGM4Y2Q3YzgxZmJmNDhjNDkxNWY0NmU2YjNhZjAyNGFhZmM1NiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR3JlZ29yeSBDTEVNRU5UIDxncmVnb3J5LmNs ZW1lbnRAZnJlZS1lbGVjdHJvbnMuY29tPgpEYXRlOiBUdWUsIDI0IE1heSAyMDE2IDE4OjAzOjI1 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMi8yNF0gbmV0OiBtdm5ldGE6IEZpeCBsYWNraW5nIHNw aW5sb2NrIGluaXRpYWxpemF0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA5MWM0NWUzOGI5NDc4ZmY1 MDdlMDVmMTAxNTFkNjRjZDBkMWFhZDdiIF0KClRoZSBzcGlubG9jayB1c2VkIGJ5IHRoZSBod2Jt IGZ1bmN0aW9ucyBtdXN0IGJlIGluaXRpYWxpemVkIGJ5IHRoZQpuZXR3b3JrIGRyaXZlci4gVGhp cyBjb21taXQgZml4ZXMgdGhpcyBsYWNrIGFuZCB0aGUgZm9sbG93aW5nIGVycm9zIHdoZW4KbG9j a2RlcCBpcyBlbmFibGVkOgoKSU5GTzogdHJ5aW5nIHRvIHJlZ2lzdGVyIG5vbi1zdGF0aWMga2V5 Lgp0aGUgY29kZSBpcyBmaW5lIGJ1dCBuZWVkcyBsb2NrZGVwIGFubm90YXRpb24uCnR1cm5pbmcg b2ZmIHRoZSBsb2NraW5nIGNvcnJlY3RuZXNzIHZhbGlkYXRvci4KWzxjMDEwZmY4MD5dICh1bndp bmRfYmFja3RyYWNlKSBmcm9tIFs8YzAxMGJkMDg+XSAoc2hvd19zdGFjaysweDEwLzB4MTQpCls8 YzAxMGJkMDg+XSAoc2hvd19zdGFjaykgZnJvbSBbPGMwMzI5MTNjPl0gKGR1bXBfc3RhY2srMHhi NC8weGUwKQpbPGMwMzI5MTNjPl0gKGR1bXBfc3RhY2spIGZyb20gWzxjMDE2NzBlND5dIChfX2xv Y2tfYWNxdWlyZSsweDFmNTgvMHgyMDYwKQpbPGMwMTY3MGU0Pl0gKF9fbG9ja19hY3F1aXJlKSBm cm9tIFs8YzAxNjdkZWM+XSAobG9ja19hY3F1aXJlKzB4YTQvMHhkMCkKWzxjMDE2N2RlYz5dIChs b2NrX2FjcXVpcmUpIGZyb20gWzxjMDZmNjY1MD5dIChfcmF3X3NwaW5fbG9ja19pcnFzYXZlKzB4 NTQvMHg2OCkKWzxjMDZmNjY1MD5dIChfcmF3X3NwaW5fbG9ja19pcnFzYXZlKSBmcm9tIFs8YzA1 OGU4MzA+XSAoaHdibV9wb29sX2FkZCsweDFjLzB4ZGMpCls8YzA1OGU4MzA+XSAoaHdibV9wb29s X2FkZCkgZnJvbSBbPGMwNDNmNGU4Pl0gKG12bmV0YV9ibV9wb29sX3VzZSsweDMzOC8weDQ5MCkK WzxjMDQzZjRlOD5dIChtdm5ldGFfYm1fcG9vbF91c2UpIGZyb20gWzxjMDQ0MzE5OD5dIChtdm5l dGFfcHJvYmUrMHg2NTQvMHgxMjg0KQpbPGMwNDQzMTk4Pl0gKG12bmV0YV9wcm9iZSkgZnJvbSBb PGMwM2I4OTRjPl0gKHBsYXRmb3JtX2Rydl9wcm9iZSsweDRjLzB4YjApCls8YzAzYjg5NGM+XSAo cGxhdGZvcm1fZHJ2X3Byb2JlKSBmcm9tIFs8YzAzYjcxNTg+XSAoZHJpdmVyX3Byb2JlX2Rldmlj ZSsweDIxNC8weDJjMCkKWzxjMDNiNzE1OD5dIChkcml2ZXJfcHJvYmVfZGV2aWNlKSBmcm9tIFs8 YzAzYjcyYzQ+XSAoX19kcml2ZXJfYXR0YWNoKzB4YzAvMHhjNCkKWzxjMDNiNzJjND5dIChfX2Ry aXZlcl9hdHRhY2gpIGZyb20gWzxjMDNiNTQ0MD5dIChidXNfZm9yX2VhY2hfZGV2KzB4NjgvMHg5 YykKWzxjMDNiNTQ0MD5dIChidXNfZm9yX2VhY2hfZGV2KSBmcm9tIFs8YzAzYjY1Yjg+XSAoYnVz X2FkZF9kcml2ZXIrMHgxYTAvMHgyMTgpCls8YzAzYjY1Yjg+XSAoYnVzX2FkZF9kcml2ZXIpIGZy b20gWzxjMDNiNzljYz5dIChkcml2ZXJfcmVnaXN0ZXIrMHg3OC8weGY4KQpbPGMwM2I3OWNjPl0g KGRyaXZlcl9yZWdpc3RlcikgZnJvbSBbPGMwMTAxOGY0Pl0gKGRvX29uZV9pbml0Y2FsbCsweDkw LzB4MWRjKQpbPGMwMTAxOGY0Pl0gKGRvX29uZV9pbml0Y2FsbCkgZnJvbSBbPGMwOTAwZGU0Pl0g KGtlcm5lbF9pbml0X2ZyZWVhYmxlKzB4MTVjLzB4MWZjKQpbPGMwOTAwZGU0Pl0gKGtlcm5lbF9p bml0X2ZyZWVhYmxlKSBmcm9tIFs8YzA2ZWVkOTA+XSAoa2VybmVsX2luaXQrMHg4LzB4MTE0KQpb PGMwNmVlZDkwPl0gKGtlcm5lbF9pbml0KSBmcm9tIFs8YzAxMDc5MTA+XSAocmV0X2Zyb21fZm9y aysweDE0LzB4MjQpCgpGaXhlczogYmFhMTFlYmMwYzc2ICgibmV0OiBtdm5ldGE6IFVzZSB0aGUg bmV3IGh3Ym0gZnJhbWV3b3JrIikKUmVwb3J0ZWQtYnk6IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5l bEBhcm1saW51eC5vcmcudWs+CkNjOiA8c3RhYmxlQHZnZXIua2VybmVsLm9yZz4KU2lnbmVkLW9m Zi1ieTogR3JlZ29yeSBDTEVNRU5UIDxncmVnb3J5LmNsZW1lbnRAZnJlZS1lbGVjdHJvbnMuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGFfYm0uYyB8IDEgKwogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWFydmVsbC9tdm5ldGFfYm0uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZu ZXRhX2JtLmMKaW5kZXggMDFmY2NlYy4uNDY2OTM5ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWFydmVsbC9tdm5ldGFfYm0uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t YXJ2ZWxsL212bmV0YV9ibS5jCkBAIC0xODksNiArMTg5LDcgQEAgc3RydWN0IG12bmV0YV9ibV9w b29sICptdm5ldGFfYm1fcG9vbF91c2Uoc3RydWN0IG12bmV0YV9ibSAqcHJpdiwgdTggcG9vbF9p ZCwKIAkJCVNLQl9EQVRBX0FMSUdOKHNpemVvZihzdHJ1Y3Qgc2tiX3NoYXJlZF9pbmZvKSk7CiAJ CWh3Ym1fcG9vbC0+Y29uc3RydWN0ID0gbXZuZXRhX2JtX2NvbnN0cnVjdDsKIAkJaHdibV9wb29s LT5wcml2ID0gbmV3X3Bvb2w7CisJCXNwaW5fbG9ja19pbml0KCZod2JtX3Bvb2wtPmxvY2spOwog CiAJCS8qIENyZWF0ZSBuZXcgcG9vbCAqLwogCQllcnIgPSBtdm5ldGFfYm1fcG9vbF9jcmVhdGUo cHJpdiwgbmV3X3Bvb2wpOwotLSAKMi4xLjAKCgpGcm9tIGVjNmMxNDAwNzI1NTIyNDAxZmVlNDc5 NTM4NDYxNTYzMWJkYTRjMmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEdyZWdvcnkg Q0xFTUVOVCA8Z3JlZ29yeS5jbGVtZW50QGZyZWUtZWxlY3Ryb25zLmNvbT4KRGF0ZTogVHVlLCAy NCBNYXkgMjAxNiAxODowMzoyNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMjRdIG5ldDogaHdi bTogRml4IHVuYmFsYW5jZWQgc3BpbmxvY2sgaW4gZXJyb3IgY2FzZQoKWyBVcHN0cmVhbSBjb21t aXQgYjM4OGZjNzQwNWU5MDFjN2Q2Zjc4MTdkMDUxOTNjMDU0ZTc2MTgxNSBdCgpXaGVuIGh3Ym1f cG9vbF9hZGQgZXhpdGVkIGluIGVycm9yIHRoZSBzcGlubG9jayB3YXMgbm90IHJlbGVhc2VkLiBU aGlzCnBhdGNoIGZpeGVzIHRoaXMgaXNzdWUuCgpGaXhlczogOGNiMmQ4YmY1N2U2ICgibmV0OiBh ZGQgYSBoYXJkd2FyZSBidWZmZXIgbWFuYWdlbWVudCBoZWxwZXIgQVBJIikKUmVwb3J0ZWQtYnk6 IEplYW4tSmFjcXVlcyBIaWJsb3QgPGpqaGlibG90QHRyYXBoYW5kbGVyLmNvbT4KQ2M6IDxzdGFi bGVAdmdlci5rZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBHcmVnb3J5IENMRU1FTlQgPGdyZWdv cnkuY2xlbWVudEBmcmVlLWVsZWN0cm9ucy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9od2JtLmMgfCAzICsrKwog MSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2h3 Ym0uYyBiL25ldC9jb3JlL2h3Ym0uYwppbmRleCA5NDFjMjg0Li4yY2FiNDg5IDEwMDY0NAotLS0g YS9uZXQvY29yZS9od2JtLmMKKysrIGIvbmV0L2NvcmUvaHdibS5jCkBAIC01NSwxOCArNTUsMjEg QEAgaW50IGh3Ym1fcG9vbF9hZGQoc3RydWN0IGh3Ym1fcG9vbCAqYm1fcG9vbCwgdW5zaWduZWQg aW50IGJ1Zl9udW0sIGdmcF90IGdmcCkKIAlzcGluX2xvY2tfaXJxc2F2ZSgmYm1fcG9vbC0+bG9j aywgZmxhZ3MpOwogCWlmIChibV9wb29sLT5idWZfbnVtID09IGJtX3Bvb2wtPnNpemUpIHsKIAkJ cHJfd2FybigicG9vbCBhbHJlYWR5IGZpbGxlZFxuIik7CisJCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmJtX3Bvb2wtPmxvY2ssIGZsYWdzKTsKIAkJcmV0dXJuIGJtX3Bvb2wtPmJ1Zl9udW07CiAJ fQogCiAJaWYgKGJ1Zl9udW0gKyBibV9wb29sLT5idWZfbnVtID4gYm1fcG9vbC0+c2l6ZSkgewog CQlwcl93YXJuKCJjYW5ub3QgYWxsb2NhdGUgJWQgYnVmZmVycyBmb3IgcG9vbFxuIiwKIAkJCWJ1 Zl9udW0pOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZibV9wb29sLT5sb2NrLCBmbGFncyk7 CiAJCXJldHVybiAwOwogCX0KIAogCWlmICgoYnVmX251bSArIGJtX3Bvb2wtPmJ1Zl9udW0pIDwg Ym1fcG9vbC0+YnVmX251bSkgewogCQlwcl93YXJuKCJBZGRpbmcgJWQgYnVmZmVycyB0byB0aGUg JWQgY3VycmVudCBidWZmZXJzIHdpbGwgb3ZlcmZsb3dcbiIsCiAJCQlidWZfbnVtLCAgYm1fcG9v bC0+YnVmX251bSk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmJtX3Bvb2wtPmxvY2ssIGZs YWdzKTsKIAkJcmV0dXJuIDA7CiAJfQogCi0tIAoyLjEuMAoKCkZyb20gNWI5NjJlMTcyNDM2NjIw ZTU4MDZlOGE3NjVlZGIxZmU4YzQ5YzliZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RWR3YXJkIENyZWUgPGVjcmVlQHNvbGFyZmxhcmUuY29tPgpEYXRlOiBUdWUsIDI0IE1heSAyMDE2 IDE4OjUzOjM2ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNC8yNF0gc2ZjOiBvbiBNQyByZXNldCwg Y2xlYXIgUElPIGJ1ZmZlciBsaW5rYWdlIGluIFRYUXMKClsgVXBzdHJlYW0gY29tbWl0IGMwNzk1 YmY2NGNiYTRkMWI3OTZmZGM1Yjc0YjMzNzcyODQxZWQxYmIgXQoKT3RoZXJ3aXNlLCBpZiB3ZSBm YWlsIHRvIGFsbG9jYXRlIG5ldyBQSU8gYnVmZmVycywgb3VyIFRYUXMgd2lsbCB0cnkgdG8KdXNl IHRoZSBvbGQgb25lcywgd2hpY2ggYXJlbid0IHRoZXJlIGFueSBtb3JlLgoKRml4ZXM6IDE4MzIz M2JlYzgxMCAic2ZjOiBBbGxvY2F0ZSBhbmQgbGluayBQSU8gYnVmZmVyczsgbWFwIHRoZW0gd2l0 aCB3cml0ZS1jb21iaW5pbmciClNpZ25lZC1vZmYtYnk6IEVkd2FyZCBDcmVlIDxlY3JlZUBzb2xh cmZsYXJlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMgfCAxNiArKysrKysr KysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9z ZmMvZWYxMC5jCmluZGV4IDE2ODEwODQuLjFmMzA5MTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3NmYy9lZjEwLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAu YwpAQCAtNjE5LDYgKzYxOSwxNyBAQCBmYWlsOgogCXJldHVybiByYzsKIH0KIAorc3RhdGljIHZv aWQgZWZ4X2VmMTBfZm9yZ2V0X29sZF9waW9idWZzKHN0cnVjdCBlZnhfbmljICplZngpCit7CisJ c3RydWN0IGVmeF9jaGFubmVsICpjaGFubmVsOworCXN0cnVjdCBlZnhfdHhfcXVldWUgKnR4X3F1 ZXVlOworCisJLyogQWxsIG91ciBleGlzdGluZyBQSU8gYnVmZmVycyB3ZW50IGF3YXkgKi8KKwll ZnhfZm9yX2VhY2hfY2hhbm5lbChjaGFubmVsLCBlZngpCisJCWVmeF9mb3JfZWFjaF9jaGFubmVs X3R4X3F1ZXVlKHR4X3F1ZXVlLCBjaGFubmVsKQorCQkJdHhfcXVldWUtPnBpb2J1ZiA9IE5VTEw7 Cit9CisKICNlbHNlIC8qICFFRlhfVVNFX1BJTyAqLwogCiBzdGF0aWMgaW50IGVmeF9lZjEwX2Fs bG9jX3Bpb2J1ZnMoc3RydWN0IGVmeF9uaWMgKmVmeCwgdW5zaWduZWQgaW50IG4pCkBAIC02MzUs NiArNjQ2LDEwIEBAIHN0YXRpYyB2b2lkIGVmeF9lZjEwX2ZyZWVfcGlvYnVmcyhzdHJ1Y3QgZWZ4 X25pYyAqZWZ4KQogewogfQogCitzdGF0aWMgdm9pZCBlZnhfZWYxMF9mb3JnZXRfb2xkX3Bpb2J1 ZnMoc3RydWN0IGVmeF9uaWMgKmVmeCkKK3sKK30KKwogI2VuZGlmIC8qIEVGWF9VU0VfUElPICov CiAKIHN0YXRpYyB2b2lkIGVmeF9lZjEwX3JlbW92ZShzdHJ1Y3QgZWZ4X25pYyAqZWZ4KQpAQCAt MTAxOCw2ICsxMDMzLDcgQEAgc3RhdGljIHZvaWQgZWZ4X2VmMTBfcmVzZXRfbWNfYWxsb2NhdGlv bnMoc3RydWN0IGVmeF9uaWMgKmVmeCkKIAluaWNfZGF0YS0+bXVzdF9yZWFsbG9jX3ZpcyA9IHRy dWU7CiAJbmljX2RhdGEtPm11c3RfcmVzdG9yZV9maWx0ZXJzID0gdHJ1ZTsKIAluaWNfZGF0YS0+ bXVzdF9yZXN0b3JlX3Bpb2J1ZnMgPSB0cnVlOworCWVmeF9lZjEwX2ZvcmdldF9vbGRfcGlvYnVm cyhlZngpOwogCW5pY19kYXRhLT5yeF9yc3NfY29udGV4dCA9IEVGWF9FRjEwX1JTU19DT05URVhU X0lOVkFMSUQ7CiAKIAkvKiBEcml2ZXItY3JlYXRlZCB2c3dpdGNoZXMgYW5kIHZwb3J0cyBtdXN0 IGJlIHJlLWNyZWF0ZWQgKi8KLS0gCjIuMS4wCgoKRnJvbSA4ODFiY2I3OWE1NWY5YzM0ZGYzMDJk NTlhNWM2M2RlOGM2NjllZDY4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJdmFuIFZl Y2VyYSA8aXZlY2VyYUByZWRoYXQuY29tPgpEYXRlOiBXZWQsIDI1IE1heSAyMDE2IDIxOjIxOjUy ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNS8yNF0gdGVhbTogZG9uJ3QgY2FsbCBuZXRkZXZfY2hh bmdlX2ZlYXR1cmVzIHVuZGVyCiB0ZWFtLT5sb2NrCgpbIFVwc3RyZWFtIGNvbW1pdCBmNjk4OGNi NjNhNGU2OThkOGE2MmExZDA4NWQyNjNkMWZjYzM1MWVhIF0KClRoZSB0ZWFtX2RldmljZV9ldmVu dCgpIG5vdGlmaWVyIGNhbGxzIHRlYW1fY29tcHV0ZV9mZWF0dXJlcygpIHRvIGZpeAp2bGFuX2Zl YXR1cmVzIHVuZGVyIHRlYW0tPmxvY2sgdG8gcHJvdGVjdCB0ZWFtLT5wb3J0X2xpc3QuIFRoZSBw cm9ibGVtIGlzCnRoYXQgc3Vic2VxdWVudCBfX3RlYW1fY29tcHV0ZV9mZWF0dXJlcygpIGNhbGxz IG5ldGRldl9jaGFuZ2VfZmVhdHVyZXMoKQp0byBwcm9wYWdhdGUgdmxhbl9mZWF0dXJlcyB0byB1 cHBlciB2bGFuIGRldmljZXMgd2hpbGUgdGVhbS0+bG9jayBpcyBzdGlsbAp0YWtlbi4gVGhpcyBj YW4gbGVhZCB0byBkZWFkbG9jayB3aGVuIE5FVElGX0ZfTFJPIGlzIG1vZGlmaWVkIG9uIGxvd2Vy CmRldmljZXMgb3IgdGVhbSBkZXZpY2UgaXRzZWxmLgoKRXhhbXBsZToKVGhlIHRlYW0wIGFzIGFj dGl2ZSBiYWNrdXAgd2l0aCBldGgwIGFuZCBldGgxIE5JQ3MuIEJvdGggZXRoMCAmIGV0aDEgYXJl CkxSTyBjYXBhYmxlIGFuZCBMUk8gaXMgZW5hYmxlZC4gVGh1cyBMUk8gaXMgYWxzbyBlbmFibGVk IG9uIHRlYW0wLgoKVGhlIGNvbW1hbmQgJ2V0aHRvb2wgLUsgdGVhbTAgbHJvIG9mZicgbm93IGhh bmdzIGR1ZSB0byB0aGlzIGRlYWRsb2NrOgoKZGV2X2V0aHRvb2woKQotPiBldGh0b29sX3NldF9m ZWF0dXJlcygpCiAtPiBfX25ldGRldl91cGRhdGVfZmVhdHVyZXModGVhbSkKICAtPiBuZXRkZXZf c3luY19sb3dlcl9mZWF0dXJlcygpCiAgIC0+IG5ldGRldl91cGRhdGVfZmVhdHVyZXMobG93ZXJf MSkKICAgIC0+IF9fbmV0ZGV2X3VwZGF0ZV9mZWF0dXJlcyhsb3dlcl8xKQogICAgLT4gbmV0ZGV2 X2ZlYXR1cmVzX2NoYW5nZShsb3dlcl8xKQogICAgIC0+IGNhbGxfbmV0ZGV2aWNlX25vdGlmaWVy cyguLi4pCiAgICAgIC0+IHRlYW1fZGV2aWNlX2V2ZW50KGxvd2VyXzEpCiAgICAgICAtPiB0ZWFt X2NvbXB1dGVfZmVhdHVyZXModGVhbSkgW1RBS0VTIHRlYW0tPmxvY2tdCiAgICAgICAgLT4gbmV0 ZGV2X2NoYW5nZV9mZWF0dXJlcyh0ZWFtKQogICAgICAgICAtPiBfX25ldGRldl91cGRhdGVfZmVh dHVyZXModGVhbSkKICAgICAgICAgIC0+IG5ldGRldl9zeW5jX2xvd2VyX2ZlYXR1cmVzKCkKICAg ICAgICAgICAtPiBuZXRkZXZfdXBkYXRlX2ZlYXR1cmVzKGxvd2VyXzIpCiAgICAgICAgICAgIC0+ IF9fbmV0ZGV2X3VwZGF0ZV9mZWF0dXJlcyhsb3dlcl8yKQogICAgICAgICAgICAtPiBuZXRkZXZf ZmVhdHVyZXNfY2hhbmdlKGxvd2VyXzIpCiAgICAgICAgICAgICAtPiBjYWxsX25ldGRldmljZV9u b3RpZmllcnMoLi4uKQogICAgICAgICAgICAgIC0+IHRlYW1fZGV2aWNlX2V2ZW50KGxvd2VyXzIp CiAgICAgICAgICAgICAgIC0+IHRlYW1fY29tcHV0ZV9mZWF0dXJlcyh0ZWFtKSBbREVBRExPQ0td CgpUaGUgYnVnIGlzIHByZXNlbnQgaW4gdGVhbSBmcm9tIHRoZSBiZWdpbm5pbmcgYnV0IGl0IGFw cGVhcmVkIGFmdGVyIHRoZSBjb21taXQKZmQ4NjdkNSAobmV0L2NvcmU6IGdlbmVyaWMgc3VwcG9y dCBmb3IgZGlzYWJsaW5nIG5ldGRldiBmZWF0dXJlcyBkb3duIHN0YWNrKQp0aGF0IGFkZHMgc3lu Y2hyb25pemF0aW9uIG9mIGZlYXR1cmVzIHdpdGggbG93ZXIgZGV2aWNlcy4KCkZpeGVzOiBmZDg2 N2Q1IChuZXQvY29yZTogZ2VuZXJpYyBzdXBwb3J0IGZvciBkaXNhYmxpbmcgbmV0ZGV2IGZlYXR1 cmVzIGRvd24gc3RhY2spCkNjOiBKaXJpIFBpcmtvIDxqaXJpQHJlc251bGxpLnVzPgpTaWduZWQt b2ZmLWJ5OiBJdmFuIFZlY2VyYSA8aXZlY2VyYUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBK aXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3RlYW0vdGVhbS5jIHwg OSArKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMgYi9kcml2ZXJzL25ldC90 ZWFtL3RlYW0uYwppbmRleCBhMGY2NGNiLi4yYWNlMTI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC90ZWFtL3RlYW0uYworKysgYi9kcml2ZXJzL25ldC90ZWFtL3RlYW0uYwpAQCAtOTkwLDcgKzk5 MCw3IEBAIHN0YXRpYyB2b2lkIHRlYW1fcG9ydF9kaXNhYmxlKHN0cnVjdCB0ZWFtICp0ZWFtLAog I2RlZmluZSBURUFNX0VOQ19GRUFUVVJFUwkoTkVUSUZfRl9IV19DU1VNIHwgTkVUSUZfRl9TRyB8 IFwKIAkJCQkgTkVUSUZfRl9SWENTVU0gfCBORVRJRl9GX0FMTF9UU08pCiAKLXN0YXRpYyB2b2lk IF9fdGVhbV9jb21wdXRlX2ZlYXR1cmVzKHN0cnVjdCB0ZWFtICp0ZWFtKQorc3RhdGljIHZvaWQg X19fdGVhbV9jb21wdXRlX2ZlYXR1cmVzKHN0cnVjdCB0ZWFtICp0ZWFtKQogewogCXN0cnVjdCB0 ZWFtX3BvcnQgKnBvcnQ7CiAJdTMyIHZsYW5fZmVhdHVyZXMgPSBURUFNX1ZMQU5fRkVBVFVSRVMg JiBORVRJRl9GX0FMTF9GT1JfQUxMOwpAQCAtMTAyMSwxNSArMTAyMSwyMCBAQCBzdGF0aWMgdm9p ZCBfX3RlYW1fY29tcHV0ZV9mZWF0dXJlcyhzdHJ1Y3QgdGVhbSAqdGVhbSkKIAl0ZWFtLT5kZXYt PnByaXZfZmxhZ3MgJj0gfklGRl9YTUlUX0RTVF9SRUxFQVNFOwogCWlmIChkc3RfcmVsZWFzZV9m bGFnID09IChJRkZfWE1JVF9EU1RfUkVMRUFTRSB8IElGRl9YTUlUX0RTVF9SRUxFQVNFX1BFUk0p KQogCQl0ZWFtLT5kZXYtPnByaXZfZmxhZ3MgfD0gSUZGX1hNSVRfRFNUX1JFTEVBU0U7Cit9CiAK K3N0YXRpYyB2b2lkIF9fdGVhbV9jb21wdXRlX2ZlYXR1cmVzKHN0cnVjdCB0ZWFtICp0ZWFtKQor eworCV9fX3RlYW1fY29tcHV0ZV9mZWF0dXJlcyh0ZWFtKTsKIAluZXRkZXZfY2hhbmdlX2ZlYXR1 cmVzKHRlYW0tPmRldik7CiB9CiAKIHN0YXRpYyB2b2lkIHRlYW1fY29tcHV0ZV9mZWF0dXJlcyhz dHJ1Y3QgdGVhbSAqdGVhbSkKIHsKIAltdXRleF9sb2NrKCZ0ZWFtLT5sb2NrKTsKLQlfX3RlYW1f Y29tcHV0ZV9mZWF0dXJlcyh0ZWFtKTsKKwlfX190ZWFtX2NvbXB1dGVfZmVhdHVyZXModGVhbSk7 CiAJbXV0ZXhfdW5sb2NrKCZ0ZWFtLT5sb2NrKTsKKwluZXRkZXZfY2hhbmdlX2ZlYXR1cmVzKHRl YW0tPmRldik7CiB9CiAKIHN0YXRpYyBpbnQgdGVhbV9wb3J0X2VudGVyKHN0cnVjdCB0ZWFtICp0 ZWFtLCBzdHJ1Y3QgdGVhbV9wb3J0ICpwb3J0KQotLSAKMi4xLjAKCgpGcm9tIGVkODE5ZTk3ZmUx N2VkNDdhZjA5ZGNiZGFjYzA5ZDU2OGQwODgyNzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEZlbmcgVGFuZyA8ZmVuZy50YW5nQGludGVsLmNvbT4KRGF0ZTogV2VkLCAyNSBNYXkgMjAx NiAxNDo0OTo1NCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMjRdIG5ldDogYWx4OiB1c2UgY3Vz dG9tIHNrYiBhbGxvY2F0b3IKClsgVXBzdHJlYW0gY29tbWl0IDI2YzVmMDNiMmFlODAxODQxOGNl YjI1YjJlNmE0ODU2MGU4YzJmNWIgXQoKVGhpcyBwYXRjaCBmb2xsb3dzIEVyaWMgRHVtYXpldCdz IGNvbW1pdCA3YjcwMTc2NDIxIGZvciBBdGhlcm9zCmF0bDFjIGRyaXZlciB0byBmaXggb25lIGV4 YWN0bHkgc2FtZSBidWcgaW4gYWx4IGRyaXZlciwgdGhhdCB0aGUKbmV0d29yayBsaW5rIHdpbGwg YmUgbG9zdCBpbiAxLTUgbWludXRlcyBhZnRlciB0aGUgZGV2aWNlIGlzIHVwLgoKTXkgbGFwdG9w IExlbm92byBZNTgwIHdpdGggQXRoZXJvcyBBUjgxNjEgZXRoZXJuZXQgZGV2aWNlIGhpdCB0aGUK c2FtZSBwcm9ibGVtIHdpdGgga2VybmVsIDQuNCwgYW5kIGl0IHdpbGwgYmUgY3VyZWQgYnkgSmFy b2QgV2lsc29uJ3MKY29tbWl0IGM0MDY3MDBjIGZvciBhbHggZHJpdmVyIHdoaWNoIGdldCBtZXJn ZWQgaW4gNC41LiBCdXQgdGhlcmUKYXJlIHN0aWxsIHNvbWUgYWx4IGRldmljZXMgY2FuJ3QgZnVu Y3Rpb24gd2VsbCBldmVuIHdpdGggSmFyb2QncwpwYXRjaCwgd2hpbGUgdGhpcyBwYXRjaCBjb3Vs ZCBtYWtlIHRoZW0gd29yayBmaW5lLiBNb3JlIGRldGFpbHMgb24KCWh0dHBzOi8vYnVnemlsbGEu a2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NjEKClRoZSBkZWJ1ZyBzaG93cyB0aGUgaXNz dWUgaXMgdmVyeSBsaWtlbHkgdG8gYmUgcmVsYXRlZCB3aXRoIHRoZSBSWApETUEgYWRkcmVzcywg c3BlY2lmaWNhbGx5IDB4Li4uZjgwLCBpZiBSWCBidWZmZXIgZ2V0IDB4Li4uZjgwIHNldmVyYWwK dGltZXMsIHRoZWlyIHdpbGwgYmUgUlggb3ZlcmZsb3cgZXJyb3IgYW5kIGRldmljZSB3aWxsIHN0 b3Agd29ya2luZy4KCkZvciBrZXJuZWwgNC41LjAgd2l0aCBKYXJvZCdzIHBhdGNoIHdoaWNoIHdv cmtzIGZpbmUgd2l0aCBteQpBUjgxNjEvTGVubm92IFk1ODAsIGlmIEkgbWFkZSBzb21lIGNoYW5n ZSB0byB0aGUKCV9fbmV0ZGV2X2FsbG9jX3NrYgoJCS0tPiBfX2FsbG9jX3BhZ2VfZnJhZygpCnRv IG1ha2UgdGhlIGFsbG9jYXRlZCBidWZmZXIgY2FuIGdldCBhbiBhZGRyZXNzIHdpdGggMHguLi5m ODAsCnRoZW4gdGhlIHNhbWUgZXJyb3IgaGFwcGVucy4gSWYgSSBtYWtlIGl0IHRvIDB4Li4uZjQw IG9yIDB4Li4uLmZjMCwKZXZlcnl0aGluZyB3aWxsIGJlIHN0aWxsIGZpbmUuIFNvIEkgdGVuZCB0 byBiZWxpZXZlIHRoYXQgdGhlCjB4Li5mODAgYWRkcmVzcyBjYXVzZSB0aGUgc2lsaWNvbiB0byBi ZWhhdmUgYWJub3JtYWxseS4KCkJ1Z3ppbGxhOiBodHRwczovL2J1Z3ppbGxhLmtlcm5lbC5vcmcv c2hvd19idWcuY2dpP2lkPTcwNzYxCkNjOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+CkNjOiBKb2hhbm5lcyBCZXJnIDxqb2hhbm5lc0BzaXBzb2x1dGlvbnMubmV0PgpDYzogSmFy b2QgV2lsc29uIDxqYXJvZEByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBGZW5nIFRhbmcgPGZl bmcudGFuZ0BpbnRlbC5jb20+ClRlc3RlZC1ieTogT2xlIEx1a29pZSA8b2xlbHVrb2llQG1haWwu cnU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FseC9hbHguaCAgfCAgNCArKysKIGRy aXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWx4L21haW4uYyB8IDQ4ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9h bHgvYWx4LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FseC9hbHguaAppbmRleCA4 ZmM5M2M1Li5kMDJjNDI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9z L2FseC9hbHguaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FseC9hbHguaApA QCAtOTYsNiArOTYsMTAgQEAgc3RydWN0IGFseF9wcml2IHsKIAl1bnNpZ25lZCBpbnQgcnhfcmlu Z3N6OwogCXVuc2lnbmVkIGludCByeGJ1Zl9zaXplOwogCisJc3RydWN0IHBhZ2UgICpyeF9wYWdl OworCXVuc2lnbmVkIGludCByeF9wYWdlX29mZnNldDsKKwl1bnNpZ25lZCBpbnQgcnhfZnJhZ19z aXplOworCiAJc3RydWN0IG5hcGlfc3RydWN0IG5hcGk7CiAJc3RydWN0IGFseF90eF9xdWV1ZSB0 eHE7CiAJc3RydWN0IGFseF9yeF9xdWV1ZSByeHE7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9hdGhlcm9zL2FseC9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9z L2FseC9tYWluLmMKaW5kZXggNTViMTE4ZS4uODYxMTgxMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvYXRoZXJvcy9hbHgvbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2F0aGVyb3MvYWx4L21haW4uYwpAQCAtNzAsNiArNzAsMzUgQEAgc3RhdGljIHZvaWQgYWx4X2Zy ZWVfdHhidWYoc3RydWN0IGFseF9wcml2ICphbHgsIGludCBlbnRyeSkKIAl9CiB9CiAKK3N0YXRp YyBzdHJ1Y3Qgc2tfYnVmZiAqYWx4X2FsbG9jX3NrYihzdHJ1Y3QgYWx4X3ByaXYgKmFseCwgZ2Zw X3QgZ2ZwKQoreworCXN0cnVjdCBza19idWZmICpza2I7CisJc3RydWN0IHBhZ2UgKnBhZ2U7CisK KwlpZiAoYWx4LT5yeF9mcmFnX3NpemUgPiBQQUdFX1NJWkUpCisJCXJldHVybiBfX25ldGRldl9h bGxvY19za2IoYWx4LT5kZXYsIGFseC0+cnhidWZfc2l6ZSwgZ2ZwKTsKKworCXBhZ2UgPSBhbHgt PnJ4X3BhZ2U7CisJaWYgKCFwYWdlKSB7CisJCWFseC0+cnhfcGFnZSA9IHBhZ2UgPSBhbGxvY19w YWdlKGdmcCk7CisJCWlmICh1bmxpa2VseSghcGFnZSkpCisJCQlyZXR1cm4gTlVMTDsKKwkJYWx4 LT5yeF9wYWdlX29mZnNldCA9IDA7CisJfQorCisJc2tiID0gYnVpbGRfc2tiKHBhZ2VfYWRkcmVz cyhwYWdlKSArIGFseC0+cnhfcGFnZV9vZmZzZXQsCisJCQlhbHgtPnJ4X2ZyYWdfc2l6ZSk7CisJ aWYgKGxpa2VseShza2IpKSB7CisJCWFseC0+cnhfcGFnZV9vZmZzZXQgKz0gYWx4LT5yeF9mcmFn X3NpemU7CisJCWlmIChhbHgtPnJ4X3BhZ2Vfb2Zmc2V0ID49IFBBR0VfU0laRSkKKwkJCWFseC0+ cnhfcGFnZSA9IE5VTEw7CisJCWVsc2UKKwkJCWdldF9wYWdlKHBhZ2UpOworCX0KKwlyZXR1cm4g c2tiOworfQorCisKIHN0YXRpYyBpbnQgYWx4X3JlZmlsbF9yeF9yaW5nKHN0cnVjdCBhbHhfcHJp diAqYWx4LCBnZnBfdCBnZnApCiB7CiAJc3RydWN0IGFseF9yeF9xdWV1ZSAqcnhxID0gJmFseC0+ cnhxOwpAQCAtODYsNyArMTE1LDcgQEAgc3RhdGljIGludCBhbHhfcmVmaWxsX3J4X3Jpbmcoc3Ry dWN0IGFseF9wcml2ICphbHgsIGdmcF90IGdmcCkKIAl3aGlsZSAoIWN1cl9idWYtPnNrYiAmJiBu ZXh0ICE9IHJ4cS0+cmVhZF9pZHgpIHsKIAkJc3RydWN0IGFseF9yZmQgKnJmZCA9ICZyeHEtPnJm ZFtjdXJdOwogCi0JCXNrYiA9IF9fbmV0ZGV2X2FsbG9jX3NrYihhbHgtPmRldiwgYWx4LT5yeGJ1 Zl9zaXplLCBnZnApOworCQlza2IgPSBhbHhfYWxsb2Nfc2tiKGFseCwgZ2ZwKTsKIAkJaWYgKCFz a2IpCiAJCQlicmVhazsKIAkJZG1hID0gZG1hX21hcF9zaW5nbGUoJmFseC0+aHcucGRldi0+ZGV2 LApAQCAtMTI0LDYgKzE1Myw3IEBAIHN0YXRpYyBpbnQgYWx4X3JlZmlsbF9yeF9yaW5nKHN0cnVj dCBhbHhfcHJpdiAqYWx4LCBnZnBfdCBnZnApCiAJCWFseF93cml0ZV9tZW0xNigmYWx4LT5odywg QUxYX1JGRF9QSURYLCBjdXIpOwogCX0KIAorCiAJcmV0dXJuIGNvdW50OwogfQogCkBAIC01OTIs NiArNjIyLDExIEBAIHN0YXRpYyB2b2lkIGFseF9mcmVlX3JpbmdzKHN0cnVjdCBhbHhfcHJpdiAq YWx4KQogCWtmcmVlKGFseC0+dHhxLmJ1ZnMpOwogCWtmcmVlKGFseC0+cnhxLmJ1ZnMpOwogCisJ aWYgKGFseC0+cnhfcGFnZSkgeworCQlwdXRfcGFnZShhbHgtPnJ4X3BhZ2UpOworCQlhbHgtPnJ4 X3BhZ2UgPSBOVUxMOworCX0KKwogCWRtYV9mcmVlX2NvaGVyZW50KCZhbHgtPmh3LnBkZXYtPmRl diwKIAkJCSAgYWx4LT5kZXNjbWVtLnNpemUsCiAJCQkgIGFseC0+ZGVzY21lbS52aXJ0LApAQCAt NjQ2LDYgKzY4MSw3IEBAIHN0YXRpYyBpbnQgYWx4X3JlcXVlc3RfaXJxKHN0cnVjdCBhbHhfcHJp diAqYWx4KQogCQkJCSAgYWx4LT5kZXYtPm5hbWUsIGFseCk7CiAJCWlmICghZXJyKQogCQkJZ290 byBvdXQ7CisKIAkJLyogZmFsbCBiYWNrIHRvIGxlZ2FjeSBpbnRlcnJ1cHQgKi8KIAkJcGNpX2Rp c2FibGVfbXNpKGFseC0+aHcucGRldik7CiAJfQpAQCAtNjg5LDYgKzcyNSw3IEBAIHN0YXRpYyBp bnQgYWx4X2luaXRfc3coc3RydWN0IGFseF9wcml2ICphbHgpCiAJc3RydWN0IHBjaV9kZXYgKnBk ZXYgPSBhbHgtPmh3LnBkZXY7CiAJc3RydWN0IGFseF9odyAqaHcgPSAmYWx4LT5odzsKIAlpbnQg ZXJyOworCXVuc2lnbmVkIGludCBoZWFkX3NpemU7CiAKIAllcnIgPSBhbHhfaWRlbnRpZnlfaHco YWx4KTsKIAlpZiAoZXJyKSB7CkBAIC03MDQsNyArNzQxLDEyIEBAIHN0YXRpYyBpbnQgYWx4X2lu aXRfc3coc3RydWN0IGFseF9wcml2ICphbHgpCiAKIAlody0+c21iX3RpbWVyID0gNDAwOwogCWh3 LT5tdHUgPSBhbHgtPmRldi0+bXR1OworCiAJYWx4LT5yeGJ1Zl9zaXplID0gQUxYX01BWF9GUkFN RV9MRU4oaHctPm10dSk7CisJaGVhZF9zaXplID0gU0tCX0RBVEFfQUxJR04oYWx4LT5yeGJ1Zl9z aXplICsgTkVUX1NLQl9QQUQpICsKKwkJICAgIFNLQl9EQVRBX0FMSUdOKHNpemVvZihzdHJ1Y3Qg c2tiX3NoYXJlZF9pbmZvKSk7CisJYWx4LT5yeF9mcmFnX3NpemUgPSByb3VuZHVwX3Bvd19vZl90 d28oaGVhZF9zaXplKTsKKwogCWFseC0+dHhfcmluZ3N6ID0gMjU2OwogCWFseC0+cnhfcmluZ3N6 ID0gNTEyOwogCWh3LT5pbXQgPSAyMDA7CkBAIC04MDYsNiArODQ4LDcgQEAgc3RhdGljIGludCBh bHhfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBpbnQgbXR1KQogewogCXN0 cnVjdCBhbHhfcHJpdiAqYWx4ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTsKIAlpbnQgbWF4X2ZyYW1l ID0gQUxYX01BWF9GUkFNRV9MRU4obXR1KTsKKwl1bnNpZ25lZCBpbnQgaGVhZF9zaXplOwogCiAJ aWYgKChtYXhfZnJhbWUgPCBBTFhfTUlOX0ZSQU1FX1NJWkUpIHx8CiAJICAgIChtYXhfZnJhbWUg PiBBTFhfTUFYX0ZSQU1FX1NJWkUpKQpAQCAtODE3LDYgKzg2MCw5IEBAIHN0YXRpYyBpbnQgYWx4 X2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IG10dSkKIAluZXRkZXYt Pm10dSA9IG10dTsKIAlhbHgtPmh3Lm10dSA9IG10dTsKIAlhbHgtPnJ4YnVmX3NpemUgPSBtYXgo bWF4X2ZyYW1lLCBBTFhfREVGX1JYQlVGX1NJWkUpOworCWhlYWRfc2l6ZSA9IFNLQl9EQVRBX0FM SUdOKGFseC0+cnhidWZfc2l6ZSArIE5FVF9TS0JfUEFEKSArCisJCSAgICBTS0JfREFUQV9BTElH TihzaXplb2Yoc3RydWN0IHNrYl9zaGFyZWRfaW5mbykpOworCWFseC0+cnhfZnJhZ19zaXplID0g cm91bmR1cF9wb3dfb2ZfdHdvKGhlYWRfc2l6ZSk7CiAJbmV0ZGV2X3VwZGF0ZV9mZWF0dXJlcyhu ZXRkZXYpOwogCWlmIChuZXRpZl9ydW5uaW5nKG5ldGRldikpCiAJCWFseF9yZWluaXQoYWx4KTsK LS0gCjIuMS4wCgoKRnJvbSBjMTQzMGRkNGVmNWFjM2MwYThmMjY4NjEwYzM3M2E3Y2IzZWFhODll IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJlayBWYXN1dCA8bWFyZXhAZGVueC5k ZT4KRGF0ZTogVGh1LCAyNiBNYXkgMjAxNiAwMDo0MDoyMyArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MTcvMjRdIG5ldDogc3RtbWFjOiBGaXggaW5jb3JyZWN0IG1lbWNweSBzb3VyY2UgbWVtb3J5Cgpb IFVwc3RyZWFtIGNvbW1pdCA2NDNkNjBiZjU3NWRhYWJhOTNjMWFjMGQwZTFjNGIxZDRkZWQxZjc1 IF0KClRoZSBtZW1jcHkoKSBjdXJyZW50bHkgY29waWVzIG1kaW9fYnVzX2RhdGEgaW50byBuZXdf YnVzLT5pcnEsIHdoaWNoCm1ha2VzIG5vIHNlbnNlLCBzaW5jZSB0aGUgbWRpb19idXNfZGF0YSBz dHJ1Y3R1cmUgY29udGFpbnMgbW9yZSB0aGFuCmp1c3QgaXJxcy4gVGhlIGNvZGUgd2FzIGxpa2Vs eSBzdXBwb3NlZCB0byBjb3B5IG1kaW9fYnVzX2RhdGEtPmlycXMKaW50byB0aGUgbmV3X2J1cy0+ aXJxIGluc3RlYWQsIHNvIGZpeCB0aGlzLgoKRml4ZXM6IGU3ZjRkYzM1MzZhNCAoIm1kaW86IE1v dmUgYWxsb2NhdGlvbiBvZiBpbnRlcnJ1cHRzIGludG8gY29yZSIpClNpZ25lZC1vZmYtYnk6IE1h cmVrIFZhc3V0IDxtYXJleEBkZW54LmRlPgpDYzogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgpDYzogR2l1c2VwcGUgQ2F2YWxsYXJvIDxwZXBwZS5jYXZhbGxhcm9Ac3QuY29t PgpDYzogQWxleGFuZHJlIFRvcmd1ZSA8YWxleGFuZHJlLnRvcmd1ZUBzdC5jb20+ClJldmlld2Vk LWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9z dG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0 bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMKaW5kZXggMDY3MDRjYS4uODY4M2EyMSAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jCkBA IC0yMDksNyArMjA5LDcgQEAgaW50IHN0bW1hY19tZGlvX3JlZ2lzdGVyKHN0cnVjdCBuZXRfZGV2 aWNlICpuZGV2KQogCQlyZXR1cm4gLUVOT01FTTsKIAogCWlmIChtZGlvX2J1c19kYXRhLT5pcnFz KQotCQltZW1jcHkobmV3X2J1cy0+aXJxLCBtZGlvX2J1c19kYXRhLCBzaXplb2YobmV3X2J1cy0+ aXJxKSk7CisJCW1lbWNweShuZXdfYnVzLT5pcnEsIG1kaW9fYnVzX2RhdGEtPmlycXMsIHNpemVv ZihuZXdfYnVzLT5pcnEpKTsKIAogI2lmZGVmIENPTkZJR19PRgogCWlmIChwcml2LT5kZXZpY2Ut Pm9mX25vZGUpCi0tIAoyLjEuMAoKCkZyb20gNzY2NmYzYzdiMGM0OTU2OThhZDI2MzM3NDEzN2Uz NDliNjZiYjk0NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2hlbiBIYWlxdWFuIDxv Y0B5dW5pZnkuY29tPgpEYXRlOiBGcmksIDI3IE1heSAyMDE2IDEwOjQ5OjExICswODAwClN1Ympl Y3Q6IFtQQVRDSCAxOC8yNF0gdnhsYW46IEFjY2VwdCB1c2VyIHNwZWNpZmllZCBNVFUgdmFsdWUg d2hlbiBjcmVhdGUgbmV3CiB2eGxhbiBsaW5rCgpbIFVwc3RyZWFtIGNvbW1pdCBjZTU3NzY2OGE0 MjZjNmE5ZTI0NzBhMDlkY2QwN2ZiZDZlNDUyNzJhIF0KCldoZW4gY3JlYXRlIGEgbmV3IHZ4bGFu IGxpbmssIGV4YW1wbGU6CiAgaXAgbGluayBhZGQgdnRhcCBtdHUgMTQ0MCB0eXBlIHZ4bGFuIHZu aSAxIGRldiBldGgwCgpUaGUgYXJndW1lbnQgIm10dSIgaGFzIG5vIGVmZmVjdCwgYmVjYXVzZSBp dCBpcyBub3Qgc2V0IHRvIGNvbmYtPm10dS4gVGhlCmRlZmF1bHQgdmFsdWUgaXMgdXNlZCBpbiB2 eGxhbl9kZXZfY29uZmlndXJlIGZ1bmN0aW9uLgoKVGhpcyBwcm9ibGVtIHdhcyBpbnRyb2R1Y2Vk IGJ5IGNvbW1pdCAwZGZiZGY0MTAyYjkgKHZ4bGFuOiBGYWN0b3Igb3V0IGRldmljZQpjb25maWd1 cmF0aW9uKS4KCkZpeGVzOiAwZGZiZGY0MTAyYjkgKHZ4bGFuOiBGYWN0b3Igb3V0IGRldmljZSBj b25maWd1cmF0aW9uKQpTaWduZWQtb2ZmLWJ5OiAgQ2hlbiBIYWlxdWFuIDxvY0B5dW5pZnkuY29t PgpBY2tlZC1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC92eGxhbi5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi5jIGIvZHJpdmVycy9uZXQvdnhsYW4uYwppbmRl eCA5YWE4Njc4Li43ZTI5YjU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92eGxhbi5jCisrKyBi L2RyaXZlcnMvbmV0L3Z4bGFuLmMKQEAgLTI5NTksNiArMjk1OSw5IEBAIHN0YXRpYyBpbnQgdnhs YW5fbmV3bGluayhzdHJ1Y3QgbmV0ICpzcmNfbmV0LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAog CWlmIChkYXRhW0lGTEFfVlhMQU5fUkVNQ1NVTV9OT1BBUlRJQUxdKQogCQljb25mLmZsYWdzIHw9 IFZYTEFOX0ZfUkVNQ1NVTV9OT1BBUlRJQUw7CiAKKwlpZiAodGJbSUZMQV9NVFVdKQorCQljb25m Lm10dSA9IG5sYV9nZXRfdTMyKHRiW0lGTEFfTVRVXSk7CisKIAllcnIgPSB2eGxhbl9kZXZfY29u ZmlndXJlKHNyY19uZXQsIGRldiwgJmNvbmYpOwogCXN3aXRjaCAoZXJyKSB7CiAJY2FzZSAtRU5P REVWOgotLSAKMi4xLjAKCgpGcm9tIGNhMDQzZDIxYTYzZjIxZGMxZGRhMTVhNjQyZGNjNjg1OTkx OTgwMTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVsYWQgS2FuZmkgPGVsYWRrYW5A bWVsbGFub3guY29tPgpEYXRlOiBUaHUsIDI2IE1heSAyMDE2IDE1OjAwOjA2ICswMzAwClN1Ympl Y3Q6IFtQQVRDSCAxOS8yNF0gbmV0OiBucHNfZW5ldDogRGlzYWJsZSBpbnRlcnJ1cHRzIGJlZm9y ZSBuYXBpCiByZXNjaGVkdWxlCgpbIFVwc3RyZWFtIGNvbW1pdCA4NjY1MTY1MGQxNmEzNTllNDE0 MmM2YThiMDQ2N2M4N2U0OGM0Yzk0IF0KClNpbmNlIE5BUEkgd29ya3MgYnkgc2h1dHRpbmcgZG93 biBldmVudCBpbnRlcnJ1cHRzIHdoZW4gdGhlcmVzCndvcmsgYW5kIHR1cm5pbmcgdGhlbSBvbiB3 aGVuIHRoZXJlcyBub25lLCB0aGUgbmV0IGRyaXZlciBtdXN0Cm1ha2Ugc3VyZSB0aGF0IGludGVy cnVwdHMgYXJlIGRpc2FibGVkIHdoZW4gaXQgcmVzY2hlZHVsZXMgcG9sbGluZy4KQnkgY2FsbGlu ZyBuYXBpX3Jlc2NoZWR1bGUsIHRoZSBkcml2ZXIgc3dpdGNoZXMgdG8gcG9sbGluZyBtb2RlLAp0 aGVyZWZvciB0aGVyZSBzaG91bGQgYmUgbm8gaW50ZXJydXB0IGludGVyZmVyZW5jZS4KQW55IHJl Y2VpdmVkIHBhY2tldHMgd2lsbCBiZSBoYW5kbGVkIGluIG5wc19lbmV0X3BvbGwgYnkgcG9sbGlu ZyB0aGUgSFcKaW5kaWNhdGlvbiBvZiByZWNlaXZlZCBwYWNrZXQgdW50aWwgYWxsIHBhY2tldHMg YXJlIGhhbmRsZWQuCgpTaWduZWQtb2ZmLWJ5OiBFbGFkIEthbmZpIDxlbGFka2FuQG1lbGxhbm94 LmNvbT4KQWNrZWQtYnk6IE5vYW0gQ2FtdXMgPG5vYW1jYUBtZWxsYW5veC5jb20+ClRlc3RlZC1i eTogQWxleGV5IEJyb2RraW4gPGFicm9ka2luQHN5bm9wc3lzLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L2V6Y2hpcC9ucHNfZW5ldC5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvZXpjaGlwL25wc19lbmV0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9lemNoaXAvbnBzX2Vu ZXQuYwppbmRleCAwODVmOTEyLi4wNmYwMzE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9lemNoaXAvbnBzX2VuZXQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9lemNoaXAv bnBzX2VuZXQuYwpAQCAtMjA1LDggKzIwNSwxMCBAQCBzdGF0aWMgaW50IG5wc19lbmV0X3BvbGwo c3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KQogCQkgKiByZS1hZGRpbmcgb3Vy c2VsdmVzIHRvIHRoZSBwb2xsIGxpc3QuCiAJCSAqLwogCi0JCWlmIChwcml2LT50eF9za2IgJiYg IXR4X2N0cmxfY3QpCisJCWlmIChwcml2LT50eF9za2IgJiYgIXR4X2N0cmxfY3QpIHsKKwkJCW5w c19lbmV0X3JlZ19zZXQocHJpdiwgTlBTX0VORVRfUkVHX0JVRl9JTlRfRU5BQkxFLCAwKTsKIAkJ CW5hcGlfcmVzY2hlZHVsZShuYXBpKTsKKwkJfQogCX0KIAogCXJldHVybiB3b3JrX2RvbmU7Ci0t IAoyLjEuMAoKCkZyb20gNjZhYThjNDk0N2NhN2QwYjRjZTQ5OGM2MGFjMTE3ZmIwMzRhY2E3NyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9n ZWFyYm94Lm5ldD4KRGF0ZTogU2F0LCA0IEp1biAyMDE2IDIwOjUwOjU5ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAyMC8yNF0gYnBmLCB0cmFjZTogdXNlIFJFQURfT05DRSBmb3IgcmV0cmlldmluZyBm aWxlIHB0cgoKWyBVcHN0cmVhbSBjb21taXQgNWI2YzFiNGQ0NmIwZGFlNGVkZWE2MzZhNzc2ZDA5 ZjIwNjRmNGNkNyBdCgpJbiBicGZfcGVyZl9ldmVudF9yZWFkKCkgYW5kIGJwZl9wZXJmX2V2ZW50 X291dHB1dCgpLCB3ZSBtdXN0IHVzZQpSRUFEX09OQ0UoKSBmb3IgZmV0Y2hpbmcgdGhlIHN0cnVj dCBmaWxlIHBvaW50ZXIsIHdoaWNoIGNvdWxkIGdldAp1cGRhdGVkIGNvbmN1cnJlbnRseSwgc28g d2UgbXVzdCBwcmV2ZW50IHRoZSBjb21waWxlciBmcm9tIHBvdGVudGlhbApyZWZldGNoaW5nLgoK V2UgYWxyZWFkeSBkbyB0aGlzIHdpdGggdGFpbCBjYWxscyBmb3IgZmV0Y2hpbmcgdGhlIHJlbGF0 ZWQgYnBmX3Byb2csCmJ1dCBub3Qgc28gb24gc3RvcmVkIHBlcmYgZXZlbnRzLiBTZW1hbnRpY3Mg Zm9yIGJvdGggYXJlIHRoZSBzYW1lCndpdGggcmVnYXJkcyB0byB1cGRhdGVzLgoKRml4ZXM6IGE0 M2VlYzMwNDI1OSAoImJwZjogaW50cm9kdWNlIGJwZl9wZXJmX2V2ZW50X291dHB1dCgpIGhlbHBl ciIpCkZpeGVzOiAzNTU3OGQ3OTg0MDAgKCJicGY6IEltcGxlbWVudCBmdW5jdGlvbiBicGZfcGVy Zl9ldmVudF9yZWFkKCkgdGhhdCBnZXQgdGhlIHNlbGVjdGVkIGhhcmR3YXJlIFBNVSBjb251dGVy IikKU2lnbmVkLW9mZi1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4K QWNrZWQtYnk6IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YXN0QGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBrZXJuZWwvdHJh Y2UvYnBmX3RyYWNlLmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL2JwZl90cmFjZS5jIGIv a2VybmVsL3RyYWNlL2JwZl90cmFjZS5jCmluZGV4IDNlNGZmYjMuLmQwMjg5NDEgMTAwNjQ0Ci0t LSBhL2tlcm5lbC90cmFjZS9icGZfdHJhY2UuYworKysgYi9rZXJuZWwvdHJhY2UvYnBmX3RyYWNl LmMKQEAgLTE5NCw3ICsxOTQsNyBAQCBzdGF0aWMgdTY0IGJwZl9wZXJmX2V2ZW50X3JlYWQodTY0 IHIxLCB1NjQgaW5kZXgsIHU2NCByMywgdTY0IHI0LCB1NjQgcjUpCiAJaWYgKHVubGlrZWx5KGlu ZGV4ID49IGFycmF5LT5tYXAubWF4X2VudHJpZXMpKQogCQlyZXR1cm4gLUUyQklHOwogCi0JZmls ZSA9IChzdHJ1Y3QgZmlsZSAqKWFycmF5LT5wdHJzW2luZGV4XTsKKwlmaWxlID0gUkVBRF9PTkNF KGFycmF5LT5wdHJzW2luZGV4XSk7CiAJaWYgKHVubGlrZWx5KCFmaWxlKSkKIAkJcmV0dXJuIC1F Tk9FTlQ7CiAKQEAgLTIzOCw3ICsyMzgsNyBAQCBzdGF0aWMgdTY0IGJwZl9wZXJmX2V2ZW50X291 dHB1dCh1NjQgcjEsIHU2NCByMiwgdTY0IGluZGV4LCB1NjQgcjQsIHU2NCBzaXplKQogCWlmICh1 bmxpa2VseShpbmRleCA+PSBhcnJheS0+bWFwLm1heF9lbnRyaWVzKSkKIAkJcmV0dXJuIC1FMkJJ RzsKIAotCWZpbGUgPSAoc3RydWN0IGZpbGUgKilhcnJheS0+cHRyc1tpbmRleF07CisJZmlsZSA9 IFJFQURfT05DRShhcnJheS0+cHRyc1tpbmRleF0pOwogCWlmICh1bmxpa2VseSghZmlsZSkpCiAJ CXJldHVybiAtRU5PRU5UOwogCi0tIAoyLjEuMAoKCkZyb20gYjI3ZThmMmZiM2M2MzgxYTY2NTVl NmRmNWU5OWJlM2YwMTE1ZDZmYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWXVjaHVu ZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgNiBKdW4gMjAxNiAxNTowNzox OCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMjRdIHRjcDogcmVjb3JkIFRMUCBhbmQgRVIgdGlt ZXIgc3RhdHMgaW4gdjYgc3RhdHMKClsgVXBzdHJlYW0gY29tbWl0IGNlM2NmNGVjMDMwNTkxOWZj NjlhOTcyZjZjMmIyZWZkMzVkMzZhYmMgXQoKVGhlIHY2IHRjcCBzdGF0cyBzY2FuIGRvIG5vdCBw cm92aWRlIFRMUCBhbmQgRVIgdGltZXIgaW5mb3JtYXRpb24KY29ycmVjdGx5IGxpa2UgdGhlIHY0 IHZlcnNpb24gLiBUaGlzIHBhdGNoIGZpeGVzIHRoYXQuCgpGaXhlczogNmJhOGEzYjE5ZTc2ICgi dGNwOiBUYWlsIGxvc3MgcHJvYmUgKFRMUCkiKQpGaXhlczogZWVkNTMwYjZjNjc2ICgidGNwOiBl YXJseSByZXRyYW5zbWl0IikKU2lnbmVkLW9mZi1ieTogWXVjaHVuZyBDaGVuZyA8eWNoZW5nQGdv b2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2lwdjYvdGNwX2lwdjYuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3RjcF9pcHY2 LmMgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCmluZGV4IGY0NDNjNmIuLmY2ZDc1MTYgMTAwNjQ0Ci0t LSBhL25ldC9pcHY2L3RjcF9pcHY2LmMKKysrIGIvbmV0L2lwdjYvdGNwX2lwdjYuYwpAQCAtMTcx Nyw3ICsxNzE3LDkgQEAgc3RhdGljIHZvaWQgZ2V0X3RjcDZfc29jayhzdHJ1Y3Qgc2VxX2ZpbGUg KnNlcSwgc3RydWN0IHNvY2sgKnNwLCBpbnQgaSkKIAlkZXN0cCA9IG50b2hzKGluZXQtPmluZXRf ZHBvcnQpOwogCXNyY3AgID0gbnRvaHMoaW5ldC0+aW5ldF9zcG9ydCk7CiAKLQlpZiAoaWNzay0+ aWNza19wZW5kaW5nID09IElDU0tfVElNRV9SRVRSQU5TKSB7CisJaWYgKGljc2stPmljc2tfcGVu ZGluZyA9PSBJQ1NLX1RJTUVfUkVUUkFOUyB8fAorCSAgICBpY3NrLT5pY3NrX3BlbmRpbmcgPT0g SUNTS19USU1FX0VBUkxZX1JFVFJBTlMgfHwKKwkgICAgaWNzay0+aWNza19wZW5kaW5nID09IElD U0tfVElNRV9MT1NTX1BST0JFKSB7CiAJCXRpbWVyX2FjdGl2ZQk9IDE7CiAJCXRpbWVyX2V4cGly ZXMJPSBpY3NrLT5pY3NrX3RpbWVvdXQ7CiAJfSBlbHNlIGlmIChpY3NrLT5pY3NrX3BlbmRpbmcg PT0gSUNTS19USU1FX1BST0JFMCkgewotLSAKMi4xLjAKCgpGcm9tIDMwODVlNmRhZTQwYzQxMzYw OTFmMTNhOTQ3N2M5ZmNhYzc0ZGIxNGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRv c2hpYWtpIE1ha2l0YSA8bWFraXRhLnRvc2hpYWtpQGxhYi5udHQuY28uanA+CkRhdGU6IFR1ZSwg NyBKdW4gMjAxNiAxOToxNDoxNyArMDkwMApTdWJqZWN0OiBbUEFUQ0ggMjIvMjRdIGJyaWRnZTog RG9uJ3QgaW5zZXJ0IHVubmVjZXNzYXJ5IGxvY2FsIGZkYiBlbnRyeSBvbgogY2hhbmdpbmcgbWFj IGFkZHJlc3MKClsgVXBzdHJlYW0gY29tbWl0IDBiMTQ4ZGVmNDAzMTUzYTRkMTU2NWYxNjQwMzU2 Y2I3OGNlNTEwOWYgXQoKVGhlIG1pc3NpbmcgYnJfdmxhbl9zaG91bGRfdXNlKCkgdGVzdCBjYXVz ZWQgY3JlYXRpb24gb2YgYW4gdW5uZWVkZWQKbG9jYWwgZmRiIGVudHJ5IG9uIGNoYW5naW5nIG1h YyBhZGRyZXNzIG9mIGEgYnJpZGdlIGRldmljZSB3aGVuIHRoZXJlIGlzCmEgdmxhbiB3aGljaCBp cyBjb25maWd1cmVkIG9uIGEgYnJpZGdlIHBvcnQgYnV0IG5vdCBvbiB0aGUgYnJpZGdlCmRldmlj ZS4KCkZpeGVzOiAyNTk0ZTkwNjRhNTcgKCJicmlkZ2U6IHZsYW46IGFkZCBwZXItdmxhbiBzdHJ1 Y3QgYW5kIG1vdmUgdG8gcmhhc2h0YWJsZXMiKQpTaWduZWQtb2ZmLWJ5OiBUb3NoaWFraSBNYWtp dGEgPG1ha2l0YS50b3NoaWFraUBsYWIubnR0LmNvLmpwPgpBY2tlZC1ieTogTmlrb2xheSBBbGVr c2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2JyaWRnZS9icl9mZGIu YyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9u ZXQvYnJpZGdlL2JyX2ZkYi5jIGIvbmV0L2JyaWRnZS9icl9mZGIuYwppbmRleCBkY2VhNGY0Li5j MTgwODBhIDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX2ZkYi5jCisrKyBiL25ldC9icmlkZ2Uv YnJfZmRiLmMKQEAgLTI3OSw2ICsyNzksOCBAQCB2b2lkIGJyX2ZkYl9jaGFuZ2VfbWFjX2FkZHJl c3Moc3RydWN0IG5ldF9icmlkZ2UgKmJyLCBjb25zdCB1OCAqbmV3YWRkcikKIAkgKiBjaGFuZ2Ug ZnJvbSB1bmRlciB1cy4KIAkgKi8KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHYsICZ2Zy0+dmxhbl9s aXN0LCB2bGlzdCkgeworCQlpZiAoIWJyX3ZsYW5fc2hvdWxkX3VzZSh2KSkKKwkJCWNvbnRpbnVl OwogCQlmID0gX19icl9mZGJfZ2V0KGJyLCBici0+ZGV2LT5kZXZfYWRkciwgdi0+dmlkKTsKIAkJ aWYgKGYgJiYgZi0+aXNfbG9jYWwgJiYgIWYtPmRzdCkKIAkJCWZkYl9kZWxldGVfbG9jYWwoYnIs IE5VTEwsIGYpOwotLSAKMi4xLjAKCgpGcm9tIDI0OGNhNTUyZmE1ODFmMTQ4OTY5OGU4YTdjNThj MzI3Y2RlZTgzNzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEd1aWxsYXVtZSBOYXVs dCA8Zy5uYXVsdEBhbHBoYWxpbmsuZnI+CkRhdGU6IFdlZCwgOCBKdW4gMjAxNiAxMjo1OToxNyAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMjMvMjRdIGwydHA6IGZpeCBjb25maWd1cmF0aW9uIHBhc3Nl ZCB0bwogc2V0dXBfdWRwX3R1bm5lbF9zb2NrKCkKClsgVXBzdHJlYW0gY29tbWl0IGE1YzVlMmRh ODU1MWViNjllNWQ1ZDA5ZDUxZDUyNjE0MGI1ZGI5ZmIgXQoKVW51c2VkIGZpZWxkcyBvZiB1ZHBf Y2ZnIG11c3QgYmUgYWxsIHplcm9zLiBPdGhlcndpc2UKc2V0dXBfdWRwX3R1bm5lbF9zb2NrKCkg ZmlsbHMgLT5ncm9fcmVjZWl2ZSBhbmQgLT5ncm9fY29tcGxldGUKY2FsbGJhY2tzIHdpdGggZ2Fy YmFnZSwgZXZlbnR1YWxseSByZXN1bHRpbmcgaW4gcGFuaWMgd2hlbiB1c2VkIGJ5CnVkcF9ncm9f cmVjZWl2ZSgpLgoKWyAgIDcyLjY5NDEyM10gQlVHOiB1bmFibGUgdG8gaGFuZGxlIGtlcm5lbCBw YWdpbmcgcmVxdWVzdCBhdCBmZmZmODgwMDMzZjg3ZDc4ClsgICA3Mi42OTU1MThdIElQOiBbPGZm ZmY4ODAwMzNmODdkNzg+XSAweGZmZmY4ODAwMzNmODdkNzgKWyAgIDcyLjY5NjUzMF0gUEdEIDI2 ZTIwNjcgUFVEIDI2ZTMwNjcgUE1EIDM0MmVkMDYzIFBURSA4MDAwMDAwMDMzZjg3MTYzClsgICA3 Mi42OTY1MzBdIE9vcHM6IDAwMTEgWyMxXSBTTVAgS0FTQU4KWyAgIDcyLjY5NjUzMF0gTW9kdWxl cyBsaW5rZWQgaW46IGwydHBfcHBwIGwydHBfbmV0bGluayBsMnRwX2NvcmUgaXA2X3VkcF90dW5u ZWwgdWRwX3R1bm5lbCBwcHRwIGdyZSBwcHBveCBwcHBfZ2VuZXJpYyBzbGhjIGNyYzMyY19pbnRl bCBnaGFzaF9jbG11bG5pX2ludGVsIGppdHRlcmVudHJvcHlfcm5nIHNoYTI1Nl9nZW5lcmljIGht YWMgZHJiZyBhbnNpX2Nwcm5nIGFlc25pX2ludGVsIGV2ZGV2IGFlc194ODZfNjQgYWJsa19oZWxw ZXIgY3J5cHRkIGxydyBnZjEyOG11bCBnbHVlX2hlbHBlciBzZXJpb19yYXcgYWNwaV9jcHVmcmVx IGJ1dHRvbiBwcm9jXAplc3NvciBleHQ0IGNyYzE2IGpiZDIgbWJjYWNoZSB2aXJ0aW9fYmxrIHZp cnRpb19uZXQgdmlydGlvX3BjaSB2aXJ0aW9fcmluZyB2aXJ0aW8KWyAgIDcyLjY5NjUzMF0gQ1BV OiAzIFBJRDogMCBDb21tOiBzd2FwcGVyLzMgTm90IHRhaW50ZWQgNC43LjAtcmMxICMxClsgICA3 Mi42OTY1MzBdIEhhcmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgs IDE5OTYpLCBCSU9TIERlYmlhbi0xLjguMi0xIDA0LzAxLzIwMTQKWyAgIDcyLjY5NjUzMF0gdGFz azogZmZmZjg4MDAzNWI1OTcwMCB0aTogZmZmZjg4MDAzNWI3MDAwMCB0YXNrLnRpOiBmZmZmODgw MDM1YjcwMDAwClsgICA3Mi42OTY1MzBdIFJJUDogMDAxMDpbPGZmZmY4ODAwMzNmODdkNzg+XSAg WzxmZmZmODgwMDMzZjg3ZDc4Pl0gMHhmZmZmODgwMDMzZjg3ZDc4ClsgICA3Mi42OTY1MzBdIFJT UDogMDAxODpmZmZmODgwMDM1Zjg3YmMwICBFRkxBR1M6IDAwMDEwMjQ2ClsgICA3Mi42OTY1MzBd IFJBWDogZmZmZmVkMDAwNjk4Zjk5NiBSQlg6IGZmZmY4ODAwMzMyNmI4NDAgUkNYOiBmZmZmZmZm ZjgxNGNjODIzClsgICA3Mi42OTY1MzBdIFJEWDogZmZmZjg4MDAzMzI2Yjg0MCBSU0k6IGZmZmY4 ODAwMzNlNDgwMzggUkRJOiBmZmZmODgwMDM0YzdjNzgwClsgICA3Mi42OTY1MzBdIFJCUDogZmZm Zjg4MDAzNWY4N2MxOCBSMDg6IDAwMDAwMDAwMDAwMGE1MDYgUjA5OiAwMDAwMDAwMDAwMDAwMDAw ClsgICA3Mi42OTY1MzBdIFIxMDogZmZmZjg4MDAzNWY4N2IzOCBSMTE6IGZmZmY4ODAwMzRiOTM0 NGQgUjEyOiAwMDAwMDAwMGViZmVhNzE1ClsgICA3Mi42OTY1MzBdIFIxMzogMDAwMDAwMDAwMDAw MDAwMCBSMTQ6IGZmZmY4ODAwMzRjN2M3ODAgUjE1OiAwMDAwMDAwMDAwMDAwMDAwClsgICA3Mi42 OTY1MzBdIEZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmODgwMDM1ZjgwMDAwKDAw MDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgIDcyLjY5NjUzMF0gQ1M6ICAwMDEwIERTOiAw MDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbICAgNzIuNjk2NTMwXSBDUjI6IGZm ZmY4ODAwMzNmODdkNzggQ1IzOiAwMDAwMDAwMDMzYzk4MDAwIENSNDogMDAwMDAwMDAwMDA0MDZh MApbICAgNzIuNjk2NTMwXSBTdGFjazoKWyAgIDcyLjY5NjUzMF0gIGZmZmZmZmZmODE0Y2M4MzQg ZmZmZjg4MDAzNGI5MzQ2OCAwMDAwMDAxNDgxNDE2ODE4IGZmZmY4ODAwMzMyNmI4NzQKWyAgIDcy LjY5NjUzMF0gIGZmZmY4ODAwMzRjN2NjYjAgZmZmZjg4MDAzM2U0ODAzOCBmZmZmODgwMDMzMjZi ODQwIGZmZmY4ODAwMzRiOTM0NjIKWyAgIDcyLjY5NjUzMF0gIGZmZmY4ODAwMzMyNmI4OGEgZmZm Zjg4MDAzMzI2Yjg4YyBmZmZmODgwMDM0YjkzNDY4IGZmZmY4ODAwMzVmODdjNzAKWyAgIDcyLjY5 NjUzMF0gQ2FsbCBUcmFjZToKWyAgIDcyLjY5NjUzMF0gIDxJUlE+ClsgICA3Mi42OTY1MzBdICBb PGZmZmZmZmZmODE0Y2M4MzQ+XSA/IHVkcF9ncm9fcmVjZWl2ZSsweDFjNi8weDFmOQpbICAgNzIu Njk2NTMwXSAgWzxmZmZmZmZmZjgxNGNjYjFjPl0gdWRwNF9ncm9fcmVjZWl2ZSsweDJiNS8weDMx MApbICAgNzIuNjk2NTMwXSAgWzxmZmZmZmZmZjgxNGQ5ODliPl0gaW5ldF9ncm9fcmVjZWl2ZSsw eDRhMy8weDRjZApbICAgNzIuNjk2NTMwXSAgWzxmZmZmZmZmZjgxNDMxYjMyPl0gZGV2X2dyb19y ZWNlaXZlKzB4NTg0LzB4N2EzClsgICA3Mi42OTY1MzBdICBbPGZmZmZmZmZmODEwYWRmN2E+XSA/ IF9fbG9ja19pc19oZWxkKzB4MjkvMHg2NApbICAgNzIuNjk2NTMwXSAgWzxmZmZmZmZmZjgxNDMy MWY3Pl0gbmFwaV9ncm9fcmVjZWl2ZSsweDEyNC8weDIxZApbICAgNzIuNjk2NTMwXSAgWzxmZmZm ZmZmZmEwMDBiMTQ1Pl0gdmlydG5ldF9yZWNlaXZlKzB4OGRmLzB4OGY2IFt2aXJ0aW9fbmV0XQpb ICAgNzIuNjk2NTMwXSAgWzxmZmZmZmZmZmEwMDBiMjdlPl0gdmlydG5ldF9wb2xsKzB4MWQvMHg4 ZCBbdmlydGlvX25ldF0KWyAgIDcyLjY5NjUzMF0gIFs8ZmZmZmZmZmY4MTQzMTM1MD5dIG5ldF9y eF9hY3Rpb24rMHgxNWIvMHgzYjkKWyAgIDcyLjY5NjUzMF0gIFs8ZmZmZmZmZmY4MTU4OTNkNj5d IF9fZG9fc29mdGlycSsweDIxNi8weDU0NgpbICAgNzIuNjk2NTMwXSAgWzxmZmZmZmZmZjgxMDYy MzkyPl0gaXJxX2V4aXQrMHg0OS8weGI2ClsgICA3Mi42OTY1MzBdICBbPGZmZmZmZmZmODE1ODhl OWE+XSBkb19JUlErMHhlMi8weGZhClsgICA3Mi42OTY1MzBdICBbPGZmZmZmZmZmODE1ODdhNDk+ XSBjb21tb25faW50ZXJydXB0KzB4ODkvMHg4OQpbICAgNzIuNjk2NTMwXSAgPEVPST4KWyAgIDcy LjY5NjUzMF0gIFs8ZmZmZmZmZmY4MTBiMDVkZj5dID8gdHJhY2VfaGFyZGlycXNfb25fY2FsbGVy KzB4MjI5LzB4MjcwClsgICA3Mi42OTY1MzBdICBbPGZmZmZmZmZmODEwMmIzYzc+XSA/IGRlZmF1 bHRfaWRsZSsweDFjLzB4MmQKWyAgIDcyLjY5NjUzMF0gIFs8ZmZmZmZmZmY4MTAyYjNjNT5dID8g ZGVmYXVsdF9pZGxlKzB4MWEvMHgyZApbICAgNzIuNjk2NTMwXSAgWzxmZmZmZmZmZjgxMDJiYjhj Pl0gYXJjaF9jcHVfaWRsZSsweGEvMHhjClsgICA3Mi42OTY1MzBdICBbPGZmZmZmZmZmODEwYTZj Mzk+XSBkZWZhdWx0X2lkbGVfY2FsbCsweDFhLzB4MWMKWyAgIDcyLjY5NjUzMF0gIFs8ZmZmZmZm ZmY4MTBhNmQ5Nj5dIGNwdV9zdGFydHVwX2VudHJ5KzB4MTViLzB4MjBmClsgICA3Mi42OTY1MzBd ICBbPGZmZmZmZmZmODEwMzlhODE+XSBzdGFydF9zZWNvbmRhcnkrMHgxMmMvMHgxMzMKWyAgIDcy LjY5NjUzMF0gQ29kZTogZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgN2YgZmYgZmYgZmYg ZmYgZmYgZmYgZmYgN2YgMDAgN2UgZjggMzMgMDAgODggZmYgZmYgNmQgNjEgNTggODEgZmYgZmYg ZmYgZmYgNWUgZGUgMGEgODEgZmYgZmYgZmYgZmYgPDAwPiA1YyBlMiAzNCAwMCA4OCBmZiBmZiAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMApbICAgNzIuNjk2NTMwXSBSSVAg IFs8ZmZmZjg4MDAzM2Y4N2Q3OD5dIDB4ZmZmZjg4MDAzM2Y4N2Q3OApbICAgNzIuNjk2NTMwXSAg UlNQIDxmZmZmODgwMDM1Zjg3YmMwPgpbICAgNzIuNjk2NTMwXSBDUjI6IGZmZmY4ODAwMzNmODdk NzgKWyAgIDcyLjY5NjUzMF0gLS0tWyBlbmQgdHJhY2UgYWQ3NzU4YjlhMWRjY2Y5OSBdLS0tClsg ICA3Mi42OTY1MzBdIEtlcm5lbCBwYW5pYyAtIG5vdCBzeW5jaW5nOiBGYXRhbCBleGNlcHRpb24g aW4gaW50ZXJydXB0ClsgICA3Mi42OTY1MzBdIEtlcm5lbCBPZmZzZXQ6IGRpc2FibGVkClsgICA3 Mi42OTY1MzBdIC0tLVsgZW5kIEtlcm5lbCBwYW5pYyAtIG5vdCBzeW5jaW5nOiBGYXRhbCBleGNl cHRpb24gaW4gaW50ZXJydXB0Cgp2MjogdXNlIGVtcHR5IGluaXRpYWxpc2VyIGluc3RlYWQgb2Yg InsgTlVMTCB9IiB0byBhdm9pZCByZWx5aW5nIG9uCiAgICBmaXJzdCBmaWVsZCdzIHR5cGUuCgpG aXhlczogMzhmZDJhZjI0ZmNmICgidWRwOiBBZGQgc29ja2V0IGJhc2VkIEdSTyBhbmQgY29uZmln IikKU2lnbmVkLW9mZi1ieTogR3VpbGxhdW1lIE5hdWx0IDxnLm5hdWx0QGFscGhhbGluay5mcj4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9sMnRwL2wydHBfY29yZS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2wydHAvbDJ0cF9jb3JlLmMgYi9u ZXQvbDJ0cC9sMnRwX2NvcmUuYwppbmRleCA2ZWRmYTk5Li4xZTQwZGFjIDEwMDY0NAotLS0gYS9u ZXQvbDJ0cC9sMnRwX2NvcmUuYworKysgYi9uZXQvbDJ0cC9sMnRwX2NvcmUuYwpAQCAtMTU4MSw3 ICsxNTgxLDcgQEAgaW50IGwydHBfdHVubmVsX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIGludCBm ZCwgaW50IHZlcnNpb24sIHUzMiB0dW5uZWxfaWQsIHUzMgogCS8qIE1hcmsgc29ja2V0IGFzIGFu IGVuY2Fwc3VsYXRpb24gc29ja2V0LiBTZWUgbmV0L2lwdjQvdWRwLmMgKi8KIAl0dW5uZWwtPmVu Y2FwID0gZW5jYXA7CiAJaWYgKGVuY2FwID09IEwyVFBfRU5DQVBUWVBFX1VEUCkgewotCQlzdHJ1 Y3QgdWRwX3R1bm5lbF9zb2NrX2NmZyB1ZHBfY2ZnOworCQlzdHJ1Y3QgdWRwX3R1bm5lbF9zb2Nr X2NmZyB1ZHBfY2ZnID0geyB9OwogCiAJCXVkcF9jZmcuc2tfdXNlcl9kYXRhID0gdHVubmVsOwog CQl1ZHBfY2ZnLmVuY2FwX3R5cGUgPSBVRFBfRU5DQVBfTDJUUElOVURQOwotLSAKMi4xLjAKCgpG cm9tIGY3ODAyMGViODZjOTZkMDE0MDBiMDlhNzQ5ZGZhODY3ZTFkYmMyZjEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEpha3ViIFNpdG5pY2tpIDxqa2JzQHJlZGhhdC5jb20+CkRhdGU6 IFdlZCwgOCBKdW4gMjAxNiAxNToxMzozNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjQvMjRdIGlw djY6IFNraXAgWEZSTSBsb29rdXAgaWYgZHN0X2VudHJ5IGluIHNvY2tldCBjYWNoZSBpcwogdmFs aWQKClsgVXBzdHJlYW0gY29tbWl0IDAwYmMwZWY1ODgwZGM3YjgyZjljMzIwZGVhZDRhZmFhZDQ4 ZTQ3YmUgXQoKQXQgcHJlc2VudCB3ZSBwZXJmb3JtIGFuIHhmcm1fbG9va3VwKCkgZm9yIGVhY2gg VURQdjYgbWVzc2FnZSB3ZQpzZW5kLiBUaGUgbG9va3VwIGludm9sdmVzIHF1ZXJ5aW5nIHRoZSBm bG93IGNhY2hlIChmbG93X2NhY2hlX2xvb2t1cCkKYW5kLCBpbiBjYXNlIG9mIGEgY2FjaGUgbWlz cywgY3JlYXRpbmcgYW4gWEZSTSBidW5kbGUuCgpJZiB3ZSBtaXNzIHRoZSBmbG93IGNhY2hlLCB3 ZSBjYW4gZW5kIHVwIGNyZWF0aW5nIGEgbmV3IGJ1bmRsZSBhbmQKZGVyaXZpbmcgdGhlIHBhdGgg TVRVICh4ZnJtX2luaXRfcG10dSkgZnJvbSBvbiBhbiBhbHJlYWR5IHRyYW5zZm9ybWVkCmRzdF9l bnRyeSwgd2hpY2ggd2UgcGFzcyBmcm9tIHRoZSBzb2NrZXQgY2FjaGUgKHNrLT5za19kc3RfY2Fj aGUpIGRvd24KdG8geGZybV9sb29rdXAoKS4gVGhpcyBjYW4gaGFwcGVuIG9ubHkgaWYgd2UncmUg Y2FjaGluZyB0aGUgZHN0X2VudHJ5CmluIHRoZSBzb2NrZXQsIHRoYXQgaXMgd2hlbiB3ZSdyZSB1 c2luZyBhIGNvbm5lY3RlZCBVRFAgc29ja2V0LgoKVG8gcHV0IGl0IGFub3RoZXIgd2F5LCB0aGUg cGF0aCBNVFUgc2hyaW5rcyBlYWNoIHRpbWUgd2UgbWlzcyB0aGUgZmxvdwpjYWNoZSwgd2hpY2gg bGF0ZXIgb24gbGVhZHMgdG8gaW5jb3JyZWN0bHkgZnJhZ21lbnRlZCBwYXlsb2FkLiBJdCBjYW4K YmUgb2JzZXJ2ZWQgd2l0aCBFU1B2NiBpbiB0cmFuc3BvcnQgbW9kZToKCiAgMSkgU2V0IHVwIGEg dHJhbnNmb3JtYXRpb24gYW5kIGxvd2VyIHRoZSBNVFUgdG8gdHJpZ2dlciBmcmFnbWVudGF0aW9u CiAgICAjIGlwIHhmcm0gcG9saWN5IGFkZCBkaXIgb3V0IHNyYyA6OjEgZHN0IDo6MSBcCiAgICAg IHRtcGwgc3JjIDo6MSBkc3QgOjoxIHByb3RvIGVzcCBzcGkgMQogICAgIyBpcCB4ZnJtIHN0YXRl IGFkZCBzcmMgOjoxIGRzdCA6OjEgXAogICAgICBwcm90byBlc3Agc3BpIDEgZW5jICdhZXMnIDB4 MGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIKICAgICMgaXAgbGluayBzZXQgZGV2IGxv IG10dSAxNTAwCgogIDIpIE1vbml0b3IgdGhlIHBhY2tldCBmbG93IGFuZCBzZXQgdXAgYW4gVURQ IHNpbmsKICAgICMgdGNwZHVtcCAtbmkgbG8gLXR0dCAmCiAgICAjIHNvY2F0IHVkcDYtbGlzdGVu OjEyMzQ1LGZvcmsgL2Rldi9udWxsICYKCiAgMykgU2VuZCBhIGRhdGFncmFtIHRoYXQgbmVlZHMg ZnJhZ21lbnRhdGlvbiB3aXRoIGEgY29ubmVjdGVkIHNvY2tldAogICAgIyBwZXJsIC1lICdwcmlu dCAiQCIgeCAxNDcwIHwgc29jYXQgLSB1ZHA2Ols6OjFdOjEyMzQ1CiAgICAyMDE2LzA2LzA3IDE4 OjUyOjUyIHNvY2F0WzcyNF0gRSByZWFkKDMsIDB4NTU1YmIzZDViYTAwLCA4MTkyKTogUHJvdG9j b2wgZXJyb3IKICAgIDAwOjAwOjAwLjAwMDAwMCBJUDYgOjoxID4gOjoxOiBmcmFnICgwfDE0NDgp IEVTUChzcGk9MHgwMDAwMDAwMSxzZXE9MHgyKSwgbGVuZ3RoIDE0NDgKICAgIDAwOjAwOjAwLjAw MDAxNCBJUDYgOjoxID4gOjoxOiBmcmFnICgxNDQ4fDMyKQogICAgMDA6MDA6MDAuMDAwMDUwIElQ NiA6OjEgPiA6OjE6IEVTUChzcGk9MHgwMDAwMDAwMSxzZXE9MHgzKSwgbGVuZ3RoIDEyNzIKICAg ICheIElDTVB2NiBQYXJhbWV0ZXIgUHJvYmxlbSkKICAgIDAwOjAwOjAwLjAwMDAyMiBJUDYgOjox ID4gOjoxOiBFU1Aoc3BpPTB4MDAwMDAwMDEsc2VxPTB4NSksIGxlbmd0aCAxMzYKCiAgNCkgQ29t cGFyZSBpdCB0byBhIG5vbi1jb25uZWN0ZWQgc29ja2V0CiAgICAjIHBlcmwgLWUgJ3ByaW50ICJA IiB4IDE1MDAnIHwgc29jYXQgLSB1ZHA2LXNlbmR0bzpbOjoxXToxMjM0NQogICAgMDA6MDA6NDAu NTM1NDg4IElQNiA6OjEgPiA6OjE6IGZyYWcgKDB8MTQ0OCkgRVNQKHNwaT0weDAwMDAwMDAxLHNl cT0weDYpLCBsZW5ndGggMTQ0OAogICAgMDA6MDA6MDAuMDAwMDEwIElQNiA6OjEgPiA6OjE6IGZy YWcgKDE0NDh8NjQpCgpXaGF0IGhhcHBlbnMgaW4gc3RlcCAoMykgaXM6CgogIDEpIHdoZW4gY29u bmVjdGluZyB0aGUgc29ja2V0IGluIF9faXA2X2RhdGFncmFtX2Nvbm5lY3QoKSwgd2UKICAgICBw ZXJmb3JtIGFuIFhGUk0gbG9va3VwLCBtaXNzIHRoZSBmbG93IGNhY2hlLCBjcmVhdGUgYW4gWEZS TQogICAgIGJ1bmRsZSwgYW5kIGNhY2hlIHRoZSBkZXN0aW5hdGlvbiwKCiAgMikgYWZ0ZXJ3YXJk cywgd2hlbiBzZW5kaW5nIHRoZSBkYXRhZ3JhbSwgd2UgcGVyZm9ybSBhbiBYRlJNIGxvb2t1cCwK ICAgICBhZ2FpbiwgbWlzcyB0aGUgZmxvdyBjYWNoZSAoZHVlIHRvIG1pc21hdGNoIG9mIGZsb3dp Nl9paWYgYW5kCiAgICAgZmxvd2k2X29pZiwgd2hpY2ggaXMgYW4gaXNzdWUgb2YgaXRzIG93biks IGFuZCByZWNyZWF0ZSBhbiBYRlJNCiAgICAgYnVuZGxlIGJhc2VkIG9uIHRoZSBjYWNoZWQgKGFu ZCBhbHJlYWR5IHRyYW5zZm9ybWVkKSBkZXN0aW5hdGlvbi4KClRvIHByZXZlbnQgdGhlIHJlY3Jl YXRpb24gb2YgYW4gWEZSTSBidW5kbGUsIGF2b2lkIGFuIFhGUk0gbG9va3VwCmFsdG9nZXRoZXIg d2hlbmV2ZXIgd2UgYWxyZWFkeSBoYXZlIGEgZGVzdGluYXRpb24gZW50cnkgY2FjaGVkIGluIHRo ZQpzb2NrZXQuIFRoaXMgcHJldmVudHMgdGhlIHBhdGggTVRVIHNocmlua2FnZSBhbmQgYnJpbmdz IHVzIG9uIHBhciB3aXRoClVEUHY0LgoKVGhlIGZpeCBhbHNvIGJlbmVmaXRzIGNvbm5lY3RlZCBQ SU5HdjYgc29ja2V0cywgYW5vdGhlciB1c2VyIG9mCmlwNl9za19kc3RfbG9va3VwX2Zsb3coKSwg d2hvIGFsc28gc3VmZmVyIG1lc3NhZ2VzIGJlaW5nIHRyYW5zZm9ybWVkCnR3aWNlLgoKSm9pbnQg d29yayB3aXRoIEhhbm5lcyBGcmVkZXJpYyBTb3dhLgoKUmVwb3J0ZWQtYnk6IEphbiBUbHVrYSA8 anRsdWthQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IEpha3ViIFNpdG5pY2tpIDxqa2JzQHJl ZGhhdC5jb20+CkFja2VkLWJ5OiBIYW5uZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0cmVzc2lu ZHVrdGlvbi5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfb3V0cHV0LmMgfCAxMSArKystLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMgYi9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKaW5kZXggYmM5 NzJlNy4uZGE4OGRlOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X291dHB1dC5jCisrKyBiL25l dC9pcHY2L2lwNl9vdXRwdXQuYwpAQCAtMTA3MSwxNyArMTA3MSwxMiBAQCBzdHJ1Y3QgZHN0X2Vu dHJ5ICppcDZfc2tfZHN0X2xvb2t1cF9mbG93KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGZsb3dp NiAqZmw2LAogCQkJCQkgY29uc3Qgc3RydWN0IGluNl9hZGRyICpmaW5hbF9kc3QpCiB7CiAJc3Ry dWN0IGRzdF9lbnRyeSAqZHN0ID0gc2tfZHN0X2NoZWNrKHNrLCBpbmV0Nl9zayhzayktPmRzdF9j b29raWUpOwotCWludCBlcnI7CiAKIAlkc3QgPSBpcDZfc2tfZHN0X2NoZWNrKHNrLCBkc3QsIGZs Nik7CisJaWYgKCFkc3QpCisJCWRzdCA9IGlwNl9kc3RfbG9va3VwX2Zsb3coc2ssIGZsNiwgZmlu YWxfZHN0KTsKIAotCWVyciA9IGlwNl9kc3RfbG9va3VwX3RhaWwoc29ja19uZXQoc2spLCBzaywg JmRzdCwgZmw2KTsKLQlpZiAoZXJyKQotCQlyZXR1cm4gRVJSX1BUUihlcnIpOwotCWlmIChmaW5h bF9kc3QpCi0JCWZsNi0+ZGFkZHIgPSAqZmluYWxfZHN0OwotCi0JcmV0dXJuIHhmcm1fbG9va3Vw X3JvdXRlKHNvY2tfbmV0KHNrKSwgZHN0LCBmbG93aTZfdG9fZmxvd2koZmw2KSwgc2ssIDApOwor CXJldHVybiBkc3Q7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChpcDZfc2tfZHN0X2xvb2t1cF9mbG93 KTsKIAotLSAKMi4xLjAKCg== ----Next_Part(Fri_Jun_17_00_03_46_2016_429)----