From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v3 2/8] dm_op: convert HVMOP_*ioreq_server* Date: Thu, 12 Jan 2017 14:58:34 +0000 Message-ID: <1484233120-2015-3-git-send-email-paul.durrant@citrix.com> References: <1484233120-2015-1-git-send-email-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cRgq0-0005TZ-BT for xen-devel@lists.xenproject.org; Thu, 12 Jan 2017 14:58:48 +0000 In-Reply-To: <1484233120-2015-1-git-send-email-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Andrew Cooper , Daniel De Graaf , Paul Durrant , Ian Jackson List-Id: xen-devel@lists.xenproject.org VGhlIGRlZmluaXRpb25zIG9mIEhWTV9JT1JFUVNSVl9CVUZJT1JFUV8qIGhhdmUgdG8gcGVyc2lz dCBhcyB0aGV5IGFyZQphbHJlYWR5IGluIHVzZSBieSBjYWxsZXJzIG9mIHRoZSBsaWJ4YyBpbnRl cmZhY2UuCgpTdWdnZXN0ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KU2ln bmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0KUmV2 aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IElhbiBKYWNrc29u IDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpBY2tlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJA Y2l0cml4LmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ CkNjOiBEYW5pZWwgRGUgR3JhYWYgPGRnZGVncmFAdHljaG8ubnNhLmdvdj4KCnYzOgotIEZpeCBw YWQgY2hlY2suCgp2MjoKLSBBZGRyZXNzZWQgc2V2ZXJhbCBjb21tZW50cyBmcm9tIEphbi4KLS0t CiB0b29scy9saWJ4Yy94Y19kb21haW4uYyAgICAgICAgICB8IDIxMiArKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2RtLmMgICAgICAgICAgICB8 ICA4OSArKysrKysrKysrKysrKysrCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgICB8 IDIxOSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4 Ni9odm0vaW9yZXEuYyAgICAgICAgIHwgIDM2ICsrKy0tLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYv aHZtL2RvbWFpbi5oIHwgICAzICstCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmggICB8 IDE1MyArKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9pbmNsdWRlL3B1YmxpYy9odm0v aHZtX29wLmggIHwgMTMyICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS94c20v ZHVtbXkuaCAgICAgICAgICB8ICAgNiAtLQogeGVuL2luY2x1ZGUveHNtL3hzbS5oICAgICAgICAg ICAgfCAgIDYgLS0KIHhlbi94c20vZHVtbXkuYyAgICAgICAgICAgICAgICAgIHwgICAxIC0KIHhl bi94c20vZmxhc2svaG9va3MuYyAgICAgICAgICAgIHwgICA2IC0tCiAxMSBmaWxlcyBjaGFuZ2Vk LCAzNTYgaW5zZXJ0aW9ucygrKSwgNTA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xz L2xpYnhjL3hjX2RvbWFpbi5jIGIvdG9vbHMvbGlieGMveGNfZG9tYWluLmMKaW5kZXggMjk2Yjg1 Mi4uNDE5YTg5NyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfZG9tYWluLmMKKysrIGIvdG9v bHMvbGlieGMveGNfZG9tYWluLmMKQEAgLTE0MTcsMjQgKzE0MTcsMjQgQEAgaW50IHhjX2h2bV9j cmVhdGVfaW9yZXFfc2VydmVyKHhjX2ludGVyZmFjZSAqeGNoLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCBoYW5kbGVfYnVmaW9yZXEsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW9zZXJ2aWRfdCAqaWQpCiB7Ci0gICAgREVDTEFSRV9IWVBFUkNBTExfQlVGRkVS KHhlbl9odm1fY3JlYXRlX2lvcmVxX3NlcnZlcl90LCBhcmcpOworICAgIHN0cnVjdCB4ZW5fZG1f b3Agb3A7CisgICAgc3RydWN0IHhlbl9kbV9vcF9jcmVhdGVfaW9yZXFfc2VydmVyICpkYXRhOwog ICAgIGludCByYzsKIAotICAgIGFyZyA9IHhjX2h5cGVyY2FsbF9idWZmZXJfYWxsb2MoeGNoLCBh cmcsIHNpemVvZigqYXJnKSk7Ci0gICAgaWYgKCBhcmcgPT0gTlVMTCApCi0gICAgICAgIHJldHVy biAtMTsKKyAgICBtZW1zZXQoJm9wLCAwLCBzaXplb2Yob3ApKTsKIAotICAgIGFyZy0+ZG9taWQg PSBkb21pZDsKLSAgICBhcmctPmhhbmRsZV9idWZpb3JlcSA9IGhhbmRsZV9idWZpb3JlcTsKKyAg ICBvcC5vcCA9IFhFTl9ETU9QX2NyZWF0ZV9pb3JlcV9zZXJ2ZXI7CisgICAgZGF0YSA9ICZvcC51 LmNyZWF0ZV9pb3JlcV9zZXJ2ZXI7CiAKLSAgICByYyA9IHhlbmNhbGwyKHhjaC0+eGNhbGwsIF9f SFlQRVJWSVNPUl9odm1fb3AsCi0gICAgICAgICAgICAgICAgICBIVk1PUF9jcmVhdGVfaW9yZXFf c2VydmVyLAotICAgICAgICAgICAgICAgICAgSFlQRVJDQUxMX0JVRkZFUl9BU19BUkcoYXJnKSk7 CisgICAgZGF0YS0+aGFuZGxlX2J1ZmlvcmVxID0gaGFuZGxlX2J1ZmlvcmVxOworCisgICAgcmMg PSBkb19kbV9vcCh4Y2gsIGRvbWlkLCAxLCAmb3AsIHNpemVvZihvcCkpOworICAgIGlmICggcmMg KQorICAgICAgICByZXR1cm4gcmM7CiAKLSAgICAqaWQgPSBhcmctPmlkOworICAgICppZCA9IGRh dGEtPmlkOwogCi0gICAgeGNfaHlwZXJjYWxsX2J1ZmZlcl9mcmVlKHhjaCwgYXJnKTsKLSAgICBy ZXR1cm4gcmM7CisgICAgcmV0dXJuIDA7CiB9CiAKIGludCB4Y19odm1fZ2V0X2lvcmVxX3NlcnZl cl9pbmZvKHhjX2ludGVyZmFjZSAqeGNoLApAQCAtMTQ0NCw4NCArMTQ0NCw3MSBAQCBpbnQgeGNf aHZtX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyh4Y19pbnRlcmZhY2UgKnhjaCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHhlbl9wZm5fdCAqYnVmaW9yZXFfcGZuLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZXZ0Y2huX3BvcnRfdCAqYnVmaW9yZXFfcG9ydCkKIHsK LSAgICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVIoeGVuX2h2bV9nZXRfaW9yZXFfc2VydmVyX2lu Zm9fdCwgYXJnKTsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOworICAgIHN0cnVjdCB4ZW5fZG1f b3BfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvICpkYXRhOwogICAgIGludCByYzsKIAotICAgIGFyZyA9 IHhjX2h5cGVyY2FsbF9idWZmZXJfYWxsb2MoeGNoLCBhcmcsIHNpemVvZigqYXJnKSk7Ci0gICAg aWYgKCBhcmcgPT0gTlVMTCApCi0gICAgICAgIHJldHVybiAtMTsKKyAgICBtZW1zZXQoJm9wLCAw LCBzaXplb2Yob3ApKTsKIAotICAgIGFyZy0+ZG9taWQgPSBkb21pZDsKLSAgICBhcmctPmlkID0g aWQ7CisgICAgb3Aub3AgPSBYRU5fRE1PUF9nZXRfaW9yZXFfc2VydmVyX2luZm87CisgICAgZGF0 YSA9ICZvcC51LmdldF9pb3JlcV9zZXJ2ZXJfaW5mbzsKIAotICAgIHJjID0geGVuY2FsbDIoeGNo LT54Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9vcCwKLSAgICAgICAgICAgICAgICAgIEhWTU9QX2dl dF9pb3JlcV9zZXJ2ZXJfaW5mbywKLSAgICAgICAgICAgICAgICAgIEhZUEVSQ0FMTF9CVUZGRVJf QVNfQVJHKGFyZykpOwotICAgIGlmICggcmMgIT0gMCApCi0gICAgICAgIGdvdG8gZG9uZTsKKyAg ICBkYXRhLT5pZCA9IGlkOworCisgICAgcmMgPSBkb19kbV9vcCh4Y2gsIGRvbWlkLCAxLCAmb3As IHNpemVvZihvcCkpOworICAgIGlmICggcmMgKQorICAgICAgICByZXR1cm4gcmM7CiAKICAgICBp ZiAoIGlvcmVxX3BmbiApCi0gICAgICAgICppb3JlcV9wZm4gPSBhcmctPmlvcmVxX3BmbjsKKyAg ICAgICAgKmlvcmVxX3BmbiA9IGRhdGEtPmlvcmVxX3BmbjsKIAogICAgIGlmICggYnVmaW9yZXFf cGZuICkKLSAgICAgICAgKmJ1ZmlvcmVxX3BmbiA9IGFyZy0+YnVmaW9yZXFfcGZuOworICAgICAg ICAqYnVmaW9yZXFfcGZuID0gZGF0YS0+YnVmaW9yZXFfcGZuOwogCiAgICAgaWYgKCBidWZpb3Jl cV9wb3J0ICkKLSAgICAgICAgKmJ1ZmlvcmVxX3BvcnQgPSBhcmctPmJ1ZmlvcmVxX3BvcnQ7Cisg ICAgICAgICpidWZpb3JlcV9wb3J0ID0gZGF0YS0+YnVmaW9yZXFfcG9ydDsKIAotZG9uZToKLSAg ICB4Y19oeXBlcmNhbGxfYnVmZmVyX2ZyZWUoeGNoLCBhcmcpOwotICAgIHJldHVybiByYzsKKyAg ICByZXR1cm4gMDsKIH0KIAogaW50IHhjX2h2bV9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVy KHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlvc2VydmlkX3QgaWQsIGludCBpc19tbWlvLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBl bmQpCiB7Ci0gICAgREVDTEFSRV9IWVBFUkNBTExfQlVGRkVSKHhlbl9odm1faW9fcmFuZ2VfdCwg YXJnKTsKLSAgICBpbnQgcmM7CisgICAgc3RydWN0IHhlbl9kbV9vcCBvcDsKKyAgICBzdHJ1Y3Qg eGVuX2RtX29wX2lvcmVxX3NlcnZlcl9yYW5nZSAqZGF0YTsKIAotICAgIGFyZyA9IHhjX2h5cGVy Y2FsbF9idWZmZXJfYWxsb2MoeGNoLCBhcmcsIHNpemVvZigqYXJnKSk7Ci0gICAgaWYgKCBhcmcg PT0gTlVMTCApCi0gICAgICAgIHJldHVybiAtMTsKKyAgICBtZW1zZXQoJm9wLCAwLCBzaXplb2Yo b3ApKTsKIAotICAgIGFyZy0+ZG9taWQgPSBkb21pZDsKLSAgICBhcmctPmlkID0gaWQ7Ci0gICAg YXJnLT50eXBlID0gaXNfbW1pbyA/IEhWTU9QX0lPX1JBTkdFX01FTU9SWSA6IEhWTU9QX0lPX1JB TkdFX1BPUlQ7Ci0gICAgYXJnLT5zdGFydCA9IHN0YXJ0OwotICAgIGFyZy0+ZW5kID0gZW5kOwor ICAgIG9wLm9wID0gWEVOX0RNT1BfbWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcjsKKyAgICBk YXRhID0gJm9wLnUubWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcjsKIAotICAgIHJjID0geGVu Y2FsbDIoeGNoLT54Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9vcCwKLSAgICAgICAgICAgICAgICAg IEhWTU9QX21hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICBI WVBFUkNBTExfQlVGRkVSX0FTX0FSRyhhcmcpKTsKKyAgICBkYXRhLT5pZCA9IGlkOworICAgIGRh dGEtPnR5cGUgPSBpc19tbWlvID8gWEVOX0RNT1BfSU9fUkFOR0VfTUVNT1JZIDogWEVOX0RNT1Bf SU9fUkFOR0VfUE9SVDsKKyAgICBkYXRhLT5zdGFydCA9IHN0YXJ0OworICAgIGRhdGEtPmVuZCA9 IGVuZDsKIAotICAgIHhjX2h5cGVyY2FsbF9idWZmZXJfZnJlZSh4Y2gsIGFyZyk7Ci0gICAgcmV0 dXJuIHJjOworICAgIHJldHVybiBkb19kbV9vcCh4Y2gsIGRvbWlkLCAxLCAmb3AsIHNpemVvZihv cCkpOwogfQogCiBpbnQgeGNfaHZtX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyKHhj X2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpb3NlcnZpZF90IGlkLCBpbnQgaXNfbW1pbywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3Qgc3RhcnQsIHVpbnQ2 NF90IGVuZCkKIHsKLSAgICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVIoeGVuX2h2bV9pb19yYW5n ZV90LCBhcmcpOwotICAgIGludCByYzsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOworICAgIHN0 cnVjdCB4ZW5fZG1fb3BfaW9yZXFfc2VydmVyX3JhbmdlICpkYXRhOwogCi0gICAgYXJnID0geGNf aHlwZXJjYWxsX2J1ZmZlcl9hbGxvYyh4Y2gsIGFyZywgc2l6ZW9mKCphcmcpKTsKLSAgICBpZiAo IGFyZyA9PSBOVUxMICkKLSAgICAgICAgcmV0dXJuIC0xOworICAgIG1lbXNldCgmb3AsIDAsIHNp emVvZihvcCkpOwogCi0gICAgYXJnLT5kb21pZCA9IGRvbWlkOwotICAgIGFyZy0+aWQgPSBpZDsK LSAgICBhcmctPnR5cGUgPSBpc19tbWlvID8gSFZNT1BfSU9fUkFOR0VfTUVNT1JZIDogSFZNT1Bf SU9fUkFOR0VfUE9SVDsKLSAgICBhcmctPnN0YXJ0ID0gc3RhcnQ7Ci0gICAgYXJnLT5lbmQgPSBl bmQ7CisgICAgb3Aub3AgPSBYRU5fRE1PUF91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZl cjsKKyAgICBkYXRhID0gJm9wLnUudW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXI7CiAK LSAgICByYyA9IHhlbmNhbGwyKHhjaC0+eGNhbGwsIF9fSFlQRVJWSVNPUl9odm1fb3AsCi0gICAg ICAgICAgICAgICAgICBIVk1PUF91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlciwKLSAg ICAgICAgICAgICAgICAgIEhZUEVSQ0FMTF9CVUZGRVJfQVNfQVJHKGFyZykpOworICAgIGRhdGEt PmlkID0gaWQ7CisgICAgZGF0YS0+dHlwZSA9IGlzX21taW8gPyBYRU5fRE1PUF9JT19SQU5HRV9N RU1PUlkgOiBYRU5fRE1PUF9JT19SQU5HRV9QT1JUOworICAgIGRhdGEtPnN0YXJ0ID0gc3RhcnQ7 CisgICAgZGF0YS0+ZW5kID0gZW5kOwogCi0gICAgeGNfaHlwZXJjYWxsX2J1ZmZlcl9mcmVlKHhj aCwgYXJnKTsKLSAgICByZXR1cm4gcmM7CisgICAgcmV0dXJuIGRvX2RtX29wKHhjaCwgZG9taWQs IDEsICZvcCwgc2l6ZW9mKG9wKSk7CiB9CiAKIGludCB4Y19odm1fbWFwX3BjaWRldl90b19pb3Jl cV9zZXJ2ZXIoeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9taWQsCkBAIC0xNTI5LDM3ICsx NTE2LDMyIEBAIGludCB4Y19odm1fbWFwX3BjaWRldl90b19pb3JlcV9zZXJ2ZXIoeGNfaW50ZXJm YWNlICp4Y2gsIGRvbWlkX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmljZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWludDhfdCBmdW5jdGlvbikKIHsKLSAgICBERUNMQVJFX0hZUEVS Q0FMTF9CVUZGRVIoeGVuX2h2bV9pb19yYW5nZV90LCBhcmcpOwotICAgIGludCByYzsKKyAgICBz dHJ1Y3QgeGVuX2RtX29wIG9wOworICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW9yZXFfc2VydmVyX3Jh bmdlICpkYXRhOwogCiAgICAgaWYgKGRldmljZSA+IDB4MWYgfHwgZnVuY3Rpb24gPiAweDcpIHsK ICAgICAgICAgZXJybm8gPSBFSU5WQUw7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAKLSAg ICBhcmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9jKHhjaCwgYXJnLCBzaXplb2YoKmFyZykp OwotICAgIGlmICggYXJnID09IE5VTEwgKQotICAgICAgICByZXR1cm4gLTE7CisgICAgbWVtc2V0 KCZvcCwgMCwgc2l6ZW9mKG9wKSk7CiAKLSAgICBhcmctPmRvbWlkID0gZG9taWQ7Ci0gICAgYXJn LT5pZCA9IGlkOwotICAgIGFyZy0+dHlwZSA9IEhWTU9QX0lPX1JBTkdFX1BDSTsKKyAgICBvcC5v cCA9IFhFTl9ETU9QX21hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXI7CisgICAgZGF0YSA9ICZv cC51Lm1hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXI7CisKKyAgICBkYXRhLT5pZCA9IGlkOwor ICAgIGRhdGEtPnR5cGUgPSBYRU5fRE1PUF9JT19SQU5HRV9QQ0k7CiAKICAgICAvKgogICAgICAq IFRoZSB1bmRlcmx5aW5nIGh5cGVyY2FsbCB3aWxsIGRlYWwgd2l0aCByYW5nZXMgb2YgUENJIFNC REYKICAgICAgKiBidXQsIGZvciBzaW1wbGljaXR5LCB0aGUgQVBJIG9ubHkgdXNlcyBzaW5nbGV0 b25zLgogICAgICAqLwotICAgIGFyZy0+c3RhcnQgPSBhcmctPmVuZCA9IEhWTU9QX1BDSV9TQkRG KCh1aW50NjRfdClzZWdtZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICh1aW50NjRfdClidXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHVpbnQ2NF90KWRldmljZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAodWludDY0X3QpZnVuY3Rpb24pOwotCi0gICAgcmMgPSB4ZW5jYWxsMih4 Y2gtPnhjYWxsLCBfX0hZUEVSVklTT1JfaHZtX29wLAotICAgICAgICAgICAgICAgICAgSFZNT1Bf bWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlciwKLSAgICAgICAgICAgICAgICAgIEhZUEVSQ0FM TF9CVUZGRVJfQVNfQVJHKGFyZykpOworICAgIGRhdGEtPnN0YXJ0ID0gZGF0YS0+ZW5kID0gWEVO X0RNT1BfUENJX1NCREYoKHVpbnQ2NF90KXNlZ21lbnQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAodWludDY0X3QpYnVzLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQ2NF90KWRldmljZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1aW50NjRfdClmdW5j dGlvbik7CiAKLSAgICB4Y19oeXBlcmNhbGxfYnVmZmVyX2ZyZWUoeGNoLCBhcmcpOwotICAgIHJl dHVybiByYzsKKyAgICByZXR1cm4gZG9fZG1fb3AoeGNoLCBkb21pZCwgMSwgJm9wLCBzaXplb2Yo b3ApKTsKIH0KIAogaW50IHhjX2h2bV91bm1hcF9wY2lkZXZfZnJvbV9pb3JlcV9zZXJ2ZXIoeGNf aW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9taWQsCkBAIC0xNTY3LDU0ICsxNTQ5LDQ5IEBAIGlu dCB4Y19odm1fdW5tYXBfcGNpZGV2X2Zyb21faW9yZXFfc2VydmVyKHhjX2ludGVyZmFjZSAqeGNo LCBkb21pZF90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDhfdCBidXMsIHVpbnQ4X3QgZGV2aWNlLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWludDhfdCBmdW5jdGlvbikKIHsKLSAgICBERUNMQVJFX0hZUEVS Q0FMTF9CVUZGRVIoeGVuX2h2bV9pb19yYW5nZV90LCBhcmcpOwotICAgIGludCByYzsKKyAgICBz dHJ1Y3QgeGVuX2RtX29wIG9wOworICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW9yZXFfc2VydmVyX3Jh bmdlICpkYXRhOwogCiAgICAgaWYgKGRldmljZSA+IDB4MWYgfHwgZnVuY3Rpb24gPiAweDcpIHsK ICAgICAgICAgZXJybm8gPSBFSU5WQUw7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAKLSAg ICBhcmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9jKHhjaCwgYXJnLCBzaXplb2YoKmFyZykp OwotICAgIGlmICggYXJnID09IE5VTEwgKQotICAgICAgICByZXR1cm4gLTE7CisgICAgbWVtc2V0 KCZvcCwgMCwgc2l6ZW9mKG9wKSk7CiAKLSAgICBhcmctPmRvbWlkID0gZG9taWQ7Ci0gICAgYXJn LT5pZCA9IGlkOwotICAgIGFyZy0+dHlwZSA9IEhWTU9QX0lPX1JBTkdFX1BDSTsKLSAgICBhcmct PnN0YXJ0ID0gYXJnLT5lbmQgPSBIVk1PUF9QQ0lfU0JERigodWludDY0X3Qpc2VnbWVudCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodWludDY0X3QpYnVzLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1aW50NjRfdClkZXZp Y2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQ2NF90 KWZ1bmN0aW9uKTsKLQotICAgIHJjID0geGVuY2FsbDIoeGNoLT54Y2FsbCwgX19IWVBFUlZJU09S X2h2bV9vcCwKLSAgICAgICAgICAgICAgICAgIEhWTU9QX3VubWFwX2lvX3JhbmdlX2Zyb21faW9y ZXFfc2VydmVyLAotICAgICAgICAgICAgICAgICAgSFlQRVJDQUxMX0JVRkZFUl9BU19BUkcoYXJn KSk7CisgICAgb3Aub3AgPSBYRU5fRE1PUF91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZl cjsKKyAgICBkYXRhID0gJm9wLnUudW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXI7CiAK LSAgICB4Y19oeXBlcmNhbGxfYnVmZmVyX2ZyZWUoeGNoLCBhcmcpOwotICAgIHJldHVybiByYzsK KyAgICBkYXRhLT5pZCA9IGlkOworICAgIGRhdGEtPnR5cGUgPSBYRU5fRE1PUF9JT19SQU5HRV9Q Q0k7CisKKyAgICAvKgorICAgICAqIFRoZSB1bmRlcmx5aW5nIGh5cGVyY2FsbCB3aWxsIGRlYWwg d2l0aCByYW5nZXMgb2YgUENJIFNCREYKKyAgICAgKiBidXQsIGZvciBzaW1wbGljaXR5LCB0aGUg QVBJIG9ubHkgdXNlcyBzaW5nbGV0b25zLgorICAgICAqLworICAgIGRhdGEtPnN0YXJ0ID0gZGF0 YS0+ZW5kID0gWEVOX0RNT1BfUENJX1NCREYoKHVpbnQ2NF90KXNlZ21lbnQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodWludDY0X3QpYnVzLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQ2NF90KWRl dmljZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1 aW50NjRfdClmdW5jdGlvbik7CisKKyAgICByZXR1cm4gZG9fZG1fb3AoeGNoLCBkb21pZCwgMSwg Jm9wLCBzaXplb2Yob3ApKTsKIH0KIAogaW50IHhjX2h2bV9kZXN0cm95X2lvcmVxX3NlcnZlcih4 Y19pbnRlcmZhY2UgKnhjaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taWRf dCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9zZXJ2aWRfdCBpZCkK IHsKLSAgICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVIoeGVuX2h2bV9kZXN0cm95X2lvcmVxX3Nl cnZlcl90LCBhcmcpOwotICAgIGludCByYzsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOworICAg IHN0cnVjdCB4ZW5fZG1fb3BfZGVzdHJveV9pb3JlcV9zZXJ2ZXIgKmRhdGE7CiAKLSAgICBhcmcg PSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9jKHhjaCwgYXJnLCBzaXplb2YoKmFyZykpOwotICAg IGlmICggYXJnID09IE5VTEwgKQotICAgICAgICByZXR1cm4gLTE7CisgICAgbWVtc2V0KCZvcCwg MCwgc2l6ZW9mKG9wKSk7CiAKLSAgICBhcmctPmRvbWlkID0gZG9taWQ7Ci0gICAgYXJnLT5pZCA9 IGlkOworICAgIG9wLm9wID0gWEVOX0RNT1BfZGVzdHJveV9pb3JlcV9zZXJ2ZXI7CisgICAgZGF0 YSA9ICZvcC51LmRlc3Ryb3lfaW9yZXFfc2VydmVyOwogCi0gICAgcmMgPSB4ZW5jYWxsMih4Y2gt PnhjYWxsLCBfX0hZUEVSVklTT1JfaHZtX29wLAotICAgICAgICAgICAgICAgICAgSFZNT1BfZGVz dHJveV9pb3JlcV9zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICBIWVBFUkNBTExfQlVGRkVSX0FT X0FSRyhhcmcpKTsKKyAgICBkYXRhLT5pZCA9IGlkOwogCi0gICAgeGNfaHlwZXJjYWxsX2J1ZmZl cl9mcmVlKHhjaCwgYXJnKTsKLSAgICByZXR1cm4gcmM7CisgICAgcmV0dXJuIGRvX2RtX29wKHhj aCwgZG9taWQsIDEsICZvcCwgc2l6ZW9mKG9wKSk7CiB9CiAKIGludCB4Y19odm1fc2V0X2lvcmVx X3NlcnZlcl9zdGF0ZSh4Y19pbnRlcmZhY2UgKnhjaCwKQEAgLTE2MjIsMjMgKzE1OTksMTggQEAg aW50IHhjX2h2bV9zZXRfaW9yZXFfc2VydmVyX3N0YXRlKHhjX2ludGVyZmFjZSAqeGNoLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlvc2VydmlkX3QgaWQsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuYWJsZWQpCiB7Ci0gICAgREVDTEFSRV9IWVBF UkNBTExfQlVGRkVSKHhlbl9odm1fc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZV90LCBhcmcpOwotICAg IGludCByYzsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOworICAgIHN0cnVjdCB4ZW5fZG1fb3Bf c2V0X2lvcmVxX3NlcnZlcl9zdGF0ZSAqZGF0YTsKIAotICAgIGFyZyA9IHhjX2h5cGVyY2FsbF9i dWZmZXJfYWxsb2MoeGNoLCBhcmcsIHNpemVvZigqYXJnKSk7Ci0gICAgaWYgKCBhcmcgPT0gTlVM TCApCi0gICAgICAgIHJldHVybiAtMTsKKyAgICBtZW1zZXQoJm9wLCAwLCBzaXplb2Yob3ApKTsK IAotICAgIGFyZy0+ZG9taWQgPSBkb21pZDsKLSAgICBhcmctPmlkID0gaWQ7Ci0gICAgYXJnLT5l bmFibGVkID0gISFlbmFibGVkOworICAgIG9wLm9wID0gWEVOX0RNT1Bfc2V0X2lvcmVxX3NlcnZl cl9zdGF0ZTsKKyAgICBkYXRhID0gJm9wLnUuc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZTsKIAotICAg IHJjID0geGVuY2FsbDIoeGNoLT54Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9vcCwKLSAgICAgICAg ICAgICAgICAgIEhWTU9QX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUsCi0gICAgICAgICAgICAgICAg ICBIWVBFUkNBTExfQlVGRkVSX0FTX0FSRyhhcmcpKTsKKyAgICBkYXRhLT5pZCA9IGlkOworICAg IGRhdGEtPmVuYWJsZWQgPSAhIWVuYWJsZWQ7CiAKLSAgICB4Y19oeXBlcmNhbGxfYnVmZmVyX2Zy ZWUoeGNoLCBhcmcpOwotICAgIHJldHVybiByYzsKKyAgICByZXR1cm4gZG9fZG1fb3AoeGNoLCBk b21pZCwgMSwgJm9wLCBzaXplb2Yob3ApKTsKIH0KIAogaW50IHhjX2RvbWFpbl9zZXRkZWJ1Z2dp bmcoeGNfaW50ZXJmYWNlICp4Y2gsCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2RtLmMg Yi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKaW5kZXggOTA1MTBiOC4uNGI5NGQ4NSAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L2h2bS9kbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwpAQCAt OTEsOCArOTEsOTcgQEAgbG9uZyBkb19kbV9vcChkb21pZF90IGRvbWlkLAogICAgIGlmICggcmMg KQogICAgICAgICBnb3RvIG91dDsKIAorICAgIHJjID0gLUVJTlZBTDsKKyAgICBpZiAoIG9wLnBh ZCApCisgICAgICAgIGdvdG8gb3V0OworCiAgICAgc3dpdGNoICggb3Aub3AgKQogICAgIHsKKyAg ICBjYXNlIFhFTl9ETU9QX2NyZWF0ZV9pb3JlcV9zZXJ2ZXI6CisgICAgeworICAgICAgICBzdHJ1 Y3QgZG9tYWluICpjdXJyX2QgPSBjdXJyZW50LT5kb21haW47CisgICAgICAgIHN0cnVjdCB4ZW5f ZG1fb3BfY3JlYXRlX2lvcmVxX3NlcnZlciAqZGF0YSA9CisgICAgICAgICAgICAmb3AudS5jcmVh dGVfaW9yZXFfc2VydmVyOworCisgICAgICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgaWYgKCBk YXRhLT5wYWRbMF0gfHwgZGF0YS0+cGFkWzFdIHx8IGRhdGEtPnBhZFsyXSApCisgICAgICAgICAg ICBicmVhazsKKworICAgICAgICByYyA9IGh2bV9jcmVhdGVfaW9yZXFfc2VydmVyKGQsIGN1cnJf ZC0+ZG9tYWluX2lkLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGEtPmhhbmRsZV9idWZpb3JlcSwgJmRhdGEtPmlkKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor CisgICAgY2FzZSBYRU5fRE1PUF9nZXRfaW9yZXFfc2VydmVyX2luZm86CisgICAgeworICAgICAg ICBzdHJ1Y3QgeGVuX2RtX29wX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyAqZGF0YSA9CisgICAgICAg ICAgICAmb3AudS5nZXRfaW9yZXFfc2VydmVyX2luZm87CisKKyAgICAgICAgcmMgPSAtRUlOVkFM OworICAgICAgICBpZiAoIGRhdGEtPnBhZCApCisgICAgICAgICAgICBicmVhazsKKworICAgICAg ICByYyA9IGh2bV9nZXRfaW9yZXFfc2VydmVyX2luZm8oZCwgZGF0YS0+aWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YS0+aW9yZXFfcGZuLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGEtPmJ1ZmlvcmVxX3BmbiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkYXRhLT5idWZpb3JlcV9wb3J0KTsK KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBYRU5fRE1PUF9tYXBfaW9fcmFuZ2Vf dG9faW9yZXFfc2VydmVyOgorICAgIHsKKyAgICAgICAgY29uc3Qgc3RydWN0IHhlbl9kbV9vcF9p b3JlcV9zZXJ2ZXJfcmFuZ2UgKmRhdGEgPQorICAgICAgICAgICAgJm9wLnUubWFwX2lvX3Jhbmdl X3RvX2lvcmVxX3NlcnZlcjsKKworICAgICAgICByYyA9IC1FSU5WQUw7CisgICAgICAgIGlmICgg ZGF0YS0+cGFkICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHJjID0gaHZtX21hcF9p b19yYW5nZV90b19pb3JlcV9zZXJ2ZXIoZCwgZGF0YS0+aWQsIGRhdGEtPnR5cGUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+c3RhcnQsIGRhdGEt PmVuZCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgWEVOX0RNT1BfdW5tYXBf aW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXI6CisgICAgeworICAgICAgICBjb25zdCBzdHJ1Y3Qg eGVuX2RtX29wX2lvcmVxX3NlcnZlcl9yYW5nZSAqZGF0YSA9CisgICAgICAgICAgICAmb3AudS51 bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcjsKKworICAgICAgICByYyA9IC1FSU5WQUw7 CisgICAgICAgIGlmICggZGF0YS0+cGFkICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg IHJjID0gaHZtX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyKGQsIGRhdGEtPmlkLCBk YXRhLT50eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkYXRhLT5zdGFydCwgZGF0YS0+ZW5kKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisg ICAgY2FzZSBYRU5fRE1PUF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlOgorICAgIHsKKyAgICAgICAg Y29uc3Qgc3RydWN0IHhlbl9kbV9vcF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlICpkYXRhID0KKyAg ICAgICAgICAgICZvcC51LnNldF9pb3JlcV9zZXJ2ZXJfc3RhdGU7CisKKyAgICAgICAgcmMgPSAt RUlOVkFMOworICAgICAgICBpZiAoIGRhdGEtPnBhZCApCisgICAgICAgICAgICBicmVhazsKKwor ICAgICAgICByYyA9IGh2bV9zZXRfaW9yZXFfc2VydmVyX3N0YXRlKGQsIGRhdGEtPmlkLCAhIWRh dGEtPmVuYWJsZWQpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIFhFTl9ETU9Q X2Rlc3Ryb3lfaW9yZXFfc2VydmVyOgorICAgIHsKKyAgICAgICAgY29uc3Qgc3RydWN0IHhlbl9k bV9vcF9kZXN0cm95X2lvcmVxX3NlcnZlciAqZGF0YSA9CisgICAgICAgICAgICAmb3AudS5kZXN0 cm95X2lvcmVxX3NlcnZlcjsKKworICAgICAgICByYyA9IC1FSU5WQUw7CisgICAgICAgIGlmICgg ZGF0YS0+cGFkICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHJjID0gaHZtX2Rlc3Ry b3lfaW9yZXFfc2VydmVyKGQsIGRhdGEtPmlkKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAg ICAgZGVmYXVsdDoKICAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKICAgICAgICAgYnJlYWs7CmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0u YwppbmRleCBmMzYyYTQyLi4xMzhjYjQ2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2 bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTQ3NjEsMTk1ICs0NzYxLDYgQEAg c3RhdGljIGludCBodm1vcF9mbHVzaF90bGJfYWxsKHZvaWQpCiAgICAgcmV0dXJuIDA7CiB9CiAK LXN0YXRpYyBpbnQgaHZtb3BfY3JlYXRlX2lvcmVxX3NlcnZlcigKLSAgICBYRU5fR1VFU1RfSEFO RExFX1BBUkFNKHhlbl9odm1fY3JlYXRlX2lvcmVxX3NlcnZlcl90KSB1b3ApCi17Ci0gICAgc3Ry dWN0IGRvbWFpbiAqY3Vycl9kID0gY3VycmVudC0+ZG9tYWluOwotICAgIHhlbl9odm1fY3JlYXRl X2lvcmVxX3NlcnZlcl90IG9wOwotICAgIHN0cnVjdCBkb21haW4gKmQ7Ci0gICAgaW50IHJjOwot Ci0gICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJm9wLCB1b3AsIDEpICkKLSAgICAgICAgcmV0dXJu IC1FRkFVTFQ7Ci0KLSAgICByYyA9IHJjdV9sb2NrX3JlbW90ZV9kb21haW5fYnlfaWQob3AuZG9t aWQsICZkKTsKLSAgICBpZiAoIHJjICE9IDAgKQotICAgICAgICByZXR1cm4gcmM7Ci0KLSAgICBy YyA9IC1FSU5WQUw7Ci0gICAgaWYgKCAhaXNfaHZtX2RvbWFpbihkKSApCi0gICAgICAgIGdvdG8g b3V0OwotCi0gICAgcmMgPSB4c21faHZtX2lvcmVxX3NlcnZlcihYU01fRE1fUFJJViwgZCwgSFZN T1BfY3JlYXRlX2lvcmVxX3NlcnZlcik7Ci0gICAgaWYgKCByYyAhPSAwICkKLSAgICAgICAgZ290 byBvdXQ7Ci0KLSAgICByYyA9IGh2bV9jcmVhdGVfaW9yZXFfc2VydmVyKGQsIGN1cnJfZC0+ZG9t YWluX2lkLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3AuaGFuZGxlX2J1 ZmlvcmVxLCAmb3AuaWQpOwotICAgIGlmICggcmMgIT0gMCApCi0gICAgICAgIGdvdG8gb3V0Owot Ci0gICAgcmMgPSBjb3B5X3RvX2d1ZXN0KHVvcCwgJm9wLCAxKSA/IC1FRkFVTFQgOiAwOwotICAg IAotIG91dDoKLSAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsKLSAgICByZXR1cm4gcmM7Ci19Ci0K LXN0YXRpYyBpbnQgaHZtb3BfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvKAotICAgIFhFTl9HVUVTVF9I QU5ETEVfUEFSQU0oeGVuX2h2bV9nZXRfaW9yZXFfc2VydmVyX2luZm9fdCkgdW9wKQotewotICAg IHhlbl9odm1fZ2V0X2lvcmVxX3NlcnZlcl9pbmZvX3Qgb3A7Ci0gICAgc3RydWN0IGRvbWFpbiAq ZDsKLSAgICBpbnQgcmM7Ci0KLSAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmb3AsIHVvcCwgMSkg KQotICAgICAgICByZXR1cm4gLUVGQVVMVDsKLQotICAgIHJjID0gcmN1X2xvY2tfcmVtb3RlX2Rv bWFpbl9ieV9pZChvcC5kb21pZCwgJmQpOwotICAgIGlmICggcmMgIT0gMCApCi0gICAgICAgIHJl dHVybiByYzsKLQotICAgIHJjID0gLUVJTlZBTDsKLSAgICBpZiAoICFpc19odm1fZG9tYWluKGQp ICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9IHhzbV9odm1faW9yZXFfc2VydmVyKFhT TV9ETV9QUklWLCBkLCBIVk1PUF9nZXRfaW9yZXFfc2VydmVyX2luZm8pOwotICAgIGlmICggcmMg IT0gMCApCi0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMgPSBodm1fZ2V0X2lvcmVxX3NlcnZl cl9pbmZvKGQsIG9wLmlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3Au aW9yZXFfcGZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3AuYnVmaW9y ZXFfcGZuLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wLmJ1ZmlvcmVx X3BvcnQpOwotICAgIGlmICggcmMgIT0gMCApCi0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMg PSBjb3B5X3RvX2d1ZXN0KHVvcCwgJm9wLCAxKSA/IC1FRkFVTFQgOiAwOwotICAgIAotIG91dDoK LSAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsKLSAgICByZXR1cm4gcmM7Ci19Ci0KLXN0YXRpYyBp bnQgaHZtb3BfbWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcigKLSAgICBYRU5fR1VFU1RfSEFO RExFX1BBUkFNKHhlbl9odm1faW9fcmFuZ2VfdCkgdW9wKQotewotICAgIHhlbl9odm1faW9fcmFu Z2VfdCBvcDsKLSAgICBzdHJ1Y3QgZG9tYWluICpkOwotICAgIGludCByYzsKLQotICAgIGlmICgg Y29weV9mcm9tX2d1ZXN0KCZvcCwgdW9wLCAxKSApCi0gICAgICAgIHJldHVybiAtRUZBVUxUOwot Ci0gICAgcmMgPSByY3VfbG9ja19yZW1vdGVfZG9tYWluX2J5X2lkKG9wLmRvbWlkLCAmZCk7Ci0g ICAgaWYgKCByYyAhPSAwICkKLSAgICAgICAgcmV0dXJuIHJjOwotCi0gICAgcmMgPSAtRUlOVkFM OwotICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICBnb3RvIG91dDsKLQotICAg IHJjID0geHNtX2h2bV9pb3JlcV9zZXJ2ZXIoWFNNX0RNX1BSSVYsIGQsIEhWTU9QX21hcF9pb19y YW5nZV90b19pb3JlcV9zZXJ2ZXIpOwotICAgIGlmICggcmMgIT0gMCApCi0gICAgICAgIGdvdG8g b3V0OwotCi0gICAgcmMgPSBodm1fbWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcihkLCBvcC5p ZCwgb3AudHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w LnN0YXJ0LCBvcC5lbmQpOwotCi0gb3V0OgotICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOwotICAg IHJldHVybiByYzsKLX0KLQotc3RhdGljIGludCBodm1vcF91bm1hcF9pb19yYW5nZV9mcm9tX2lv cmVxX3NlcnZlcigKLSAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9odm1faW9fcmFuZ2Vf dCkgdW9wKQotewotICAgIHhlbl9odm1faW9fcmFuZ2VfdCBvcDsKLSAgICBzdHJ1Y3QgZG9tYWlu ICpkOwotICAgIGludCByYzsKLQotICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZvcCwgdW9wLCAx KSApCi0gICAgICAgIHJldHVybiAtRUZBVUxUOwotCi0gICAgcmMgPSByY3VfbG9ja19yZW1vdGVf ZG9tYWluX2J5X2lkKG9wLmRvbWlkLCAmZCk7Ci0gICAgaWYgKCByYyAhPSAwICkKLSAgICAgICAg cmV0dXJuIHJjOwotCi0gICAgcmMgPSAtRUlOVkFMOwotICAgIGlmICggIWlzX2h2bV9kb21haW4o ZCkgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJjID0geHNtX2h2bV9pb3JlcV9zZXJ2ZXIo WFNNX0RNX1BSSVYsIGQsIEhWTU9QX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyKTsK LSAgICBpZiAoIHJjICE9IDAgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJjID0gaHZtX3Vu bWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyKGQsIG9wLmlkLCBvcC50eXBlLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wLnN0YXJ0LCBvcC5lbmQp OwotICAgIAotIG91dDoKLSAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsKLSAgICByZXR1cm4gcmM7 Ci19Ci0KLXN0YXRpYyBpbnQgaHZtb3Bfc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZSgKLSAgICBYRU5f R1VFU1RfSEFORExFX1BBUkFNKHhlbl9odm1fc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZV90KSB1b3Ap Ci17Ci0gICAgeGVuX2h2bV9zZXRfaW9yZXFfc2VydmVyX3N0YXRlX3Qgb3A7Ci0gICAgc3RydWN0 IGRvbWFpbiAqZDsKLSAgICBpbnQgcmM7Ci0KLSAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmb3As IHVvcCwgMSkgKQotICAgICAgICByZXR1cm4gLUVGQVVMVDsKLQotICAgIHJjID0gcmN1X2xvY2tf cmVtb3RlX2RvbWFpbl9ieV9pZChvcC5kb21pZCwgJmQpOwotICAgIGlmICggcmMgIT0gMCApCi0g ICAgICAgIHJldHVybiByYzsKLQotICAgIHJjID0gLUVJTlZBTDsKLSAgICBpZiAoICFpc19odm1f ZG9tYWluKGQpICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9IHhzbV9odm1faW9yZXFf c2VydmVyKFhTTV9ETV9QUklWLCBkLCBIVk1PUF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlKTsKLSAg ICBpZiAoIHJjICE9IDAgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJjID0gaHZtX3NldF9p b3JlcV9zZXJ2ZXJfc3RhdGUoZCwgb3AuaWQsICEhb3AuZW5hYmxlZCk7Ci0KLSBvdXQ6Ci0gICAg cmN1X3VubG9ja19kb21haW4oZCk7Ci0gICAgcmV0dXJuIHJjOwotfQotCi1zdGF0aWMgaW50IGh2 bW9wX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKAotICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVu X2h2bV9kZXN0cm95X2lvcmVxX3NlcnZlcl90KSB1b3ApCi17Ci0gICAgeGVuX2h2bV9kZXN0cm95 X2lvcmVxX3NlcnZlcl90IG9wOwotICAgIHN0cnVjdCBkb21haW4gKmQ7Ci0gICAgaW50IHJjOwot Ci0gICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJm9wLCB1b3AsIDEpICkKLSAgICAgICAgcmV0dXJu IC1FRkFVTFQ7Ci0KLSAgICByYyA9IHJjdV9sb2NrX3JlbW90ZV9kb21haW5fYnlfaWQob3AuZG9t aWQsICZkKTsKLSAgICBpZiAoIHJjICE9IDAgKQotICAgICAgICByZXR1cm4gcmM7Ci0KLSAgICBy YyA9IC1FSU5WQUw7Ci0gICAgaWYgKCAhaXNfaHZtX2RvbWFpbihkKSApCi0gICAgICAgIGdvdG8g b3V0OwotCi0gICAgcmMgPSB4c21faHZtX2lvcmVxX3NlcnZlcihYU01fRE1fUFJJViwgZCwgSFZN T1BfZGVzdHJveV9pb3JlcV9zZXJ2ZXIpOwotICAgIGlmICggcmMgIT0gMCApCi0gICAgICAgIGdv dG8gb3V0OwotCi0gICAgcmMgPSBodm1fZGVzdHJveV9pb3JlcV9zZXJ2ZXIoZCwgb3AuaWQpOwot Ci0gb3V0OgotICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOwotICAgIHJldHVybiByYzsKLX0KLQog c3RhdGljIGludCBodm1vcF9zZXRfZXZ0Y2huX3VwY2FsbF92ZWN0b3IoCiAgICAgWEVOX0dVRVNU X0hBTkRMRV9QQVJBTSh4ZW5faHZtX2V2dGNobl91cGNhbGxfdmVjdG9yX3QpIHVvcCkKIHsKQEAg LTU2NjYsMzYgKzU0NzcsNiBAQCBsb25nIGRvX2h2bV9vcCh1bnNpZ25lZCBsb25nIG9wLCBYRU5f R1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICBzdGFydF9pdGVyID0gb3AgJiB+bWFz azsKICAgICBzd2l0Y2ggKCBvcCAmPSBtYXNrICkKICAgICB7Ci0gICAgY2FzZSBIVk1PUF9jcmVh dGVfaW9yZXFfc2VydmVyOgotICAgICAgICByYyA9IGh2bW9wX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIo Ci0gICAgICAgICAgICBndWVzdF9oYW5kbGVfY2FzdChhcmcsIHhlbl9odm1fY3JlYXRlX2lvcmVx X3NlcnZlcl90KSk7Ci0gICAgICAgIGJyZWFrOwotICAgIAotICAgIGNhc2UgSFZNT1BfZ2V0X2lv cmVxX3NlcnZlcl9pbmZvOgotICAgICAgICByYyA9IGh2bW9wX2dldF9pb3JlcV9zZXJ2ZXJfaW5m bygKLSAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9nZXRfaW9yZXFf c2VydmVyX2luZm9fdCkpOwotICAgICAgICBicmVhazsKLSAgICAKLSAgICBjYXNlIEhWTU9QX21h cF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXI6Ci0gICAgICAgIHJjID0gaHZtb3BfbWFwX2lvX3Jh bmdlX3RvX2lvcmVxX3NlcnZlcigKLSAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywg eGVuX2h2bV9pb19yYW5nZV90KSk7Ci0gICAgICAgIGJyZWFrOwotICAgIAotICAgIGNhc2UgSFZN T1BfdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXI6Ci0gICAgICAgIHJjID0gaHZtb3Bf dW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXIoCi0gICAgICAgICAgICBndWVzdF9oYW5k bGVfY2FzdChhcmcsIHhlbl9odm1faW9fcmFuZ2VfdCkpOwotICAgICAgICBicmVhazsKLQotICAg IGNhc2UgSFZNT1Bfc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZToKLSAgICAgICAgcmMgPSBodm1vcF9z ZXRfaW9yZXFfc2VydmVyX3N0YXRlKAotICAgICAgICAgICAgZ3Vlc3RfaGFuZGxlX2Nhc3QoYXJn LCB4ZW5faHZtX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGVfdCkpOwotICAgICAgICBicmVhazsKLSAg ICAKLSAgICBjYXNlIEhWTU9QX2Rlc3Ryb3lfaW9yZXFfc2VydmVyOgotICAgICAgICByYyA9IGh2 bW9wX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKAotICAgICAgICAgICAgZ3Vlc3RfaGFuZGxlX2Nhc3Qo YXJnLCB4ZW5faHZtX2Rlc3Ryb3lfaW9yZXFfc2VydmVyX3QpKTsKLSAgICAgICAgYnJlYWs7Ci0g ICAgCiAgICAgY2FzZSBIVk1PUF9zZXRfZXZ0Y2huX3VwY2FsbF92ZWN0b3I6CiAgICAgICAgIHJj ID0gaHZtb3Bfc2V0X2V2dGNobl91cGNhbGxfdmVjdG9yKAogICAgICAgICAgICAgZ3Vlc3RfaGFu ZGxlX2Nhc3QoYXJnLCB4ZW5faHZtX2V2dGNobl91cGNhbGxfdmVjdG9yX3QpKTsKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyBiL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYwpp bmRleCA2NzNhMjE1Li4xNGRiYjY0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2lvcmVx LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCkBAIC01MTQsOSArNTE0LDkgQEAgc3Rh dGljIGludCBodm1faW9yZXFfc2VydmVyX2FsbG9jX3Jhbmdlc2V0cyhzdHJ1Y3QgaHZtX2lvcmVx X3NlcnZlciAqcywKICAgICAgICAgY2hhciAqbmFtZTsKIAogICAgICAgICByYyA9IGFzcHJpbnRm KCZuYW1lLCAiaW9yZXFfc2VydmVyICVkICVzIiwgcy0+aWQsCi0gICAgICAgICAgICAgICAgICAg ICAgKGkgPT0gSFZNT1BfSU9fUkFOR0VfUE9SVCkgPyAicG9ydCIgOgotICAgICAgICAgICAgICAg ICAgICAgIChpID09IEhWTU9QX0lPX1JBTkdFX01FTU9SWSkgPyAibWVtb3J5IiA6Ci0gICAgICAg ICAgICAgICAgICAgICAgKGkgPT0gSFZNT1BfSU9fUkFOR0VfUENJKSA/ICJwY2kiIDoKKyAgICAg ICAgICAgICAgICAgICAgICAoaSA9PSBYRU5fRE1PUF9JT19SQU5HRV9QT1JUKSA/ICJwb3J0IiA6 CisgICAgICAgICAgICAgICAgICAgICAgKGkgPT0gWEVOX0RNT1BfSU9fUkFOR0VfTUVNT1JZKSA/ ICJtZW1vcnkiIDoKKyAgICAgICAgICAgICAgICAgICAgICAoaSA9PSBYRU5fRE1PUF9JT19SQU5H RV9QQ0kpID8gInBjaSIgOgogICAgICAgICAgICAgICAgICAgICAgICIiKTsKICAgICAgICAgaWYg KCByYyApCiAgICAgICAgICAgICBnb3RvIGZhaWw7CkBAIC04MzQsOSArODM0LDkgQEAgaW50IGh2 bV9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQsIGlvc2Vydmlk X3QgaWQsCiAKICAgICAgICAgICAgIHN3aXRjaCAoIHR5cGUgKQogICAgICAgICAgICAgewotICAg ICAgICAgICAgY2FzZSBIVk1PUF9JT19SQU5HRV9QT1JUOgotICAgICAgICAgICAgY2FzZSBIVk1P UF9JT19SQU5HRV9NRU1PUlk6Ci0gICAgICAgICAgICBjYXNlIEhWTU9QX0lPX1JBTkdFX1BDSToK KyAgICAgICAgICAgIGNhc2UgWEVOX0RNT1BfSU9fUkFOR0VfUE9SVDoKKyAgICAgICAgICAgIGNh c2UgWEVOX0RNT1BfSU9fUkFOR0VfTUVNT1JZOgorICAgICAgICAgICAgY2FzZSBYRU5fRE1PUF9J T19SQU5HRV9QQ0k6CiAgICAgICAgICAgICAgICAgciA9IHMtPnJhbmdlW3R5cGVdOwogICAgICAg ICAgICAgICAgIGJyZWFrOwogCkBAIC04ODYsOSArODg2LDkgQEAgaW50IGh2bV91bm1hcF9pb19y YW5nZV9mcm9tX2lvcmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAog CiAgICAgICAgICAgICBzd2l0Y2ggKCB0eXBlICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAg IGNhc2UgSFZNT1BfSU9fUkFOR0VfUE9SVDoKLSAgICAgICAgICAgIGNhc2UgSFZNT1BfSU9fUkFO R0VfTUVNT1JZOgotICAgICAgICAgICAgY2FzZSBIVk1PUF9JT19SQU5HRV9QQ0k6CisgICAgICAg ICAgICBjYXNlIFhFTl9ETU9QX0lPX1JBTkdFX1BPUlQ6CisgICAgICAgICAgICBjYXNlIFhFTl9E TU9QX0lPX1JBTkdFX01FTU9SWToKKyAgICAgICAgICAgIGNhc2UgWEVOX0RNT1BfSU9fUkFOR0Vf UENJOgogICAgICAgICAgICAgICAgIHIgPSBzLT5yYW5nZVt0eXBlXTsKICAgICAgICAgICAgICAg ICBicmVhazsKIApAQCAtMTEyOSwxMiArMTEyOSwxMiBAQCBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZl ciAqaHZtX3NlbGVjdF9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwKIAogICAgICAgICAv KiBQQ0kgY29uZmlnIGRhdGEgY3ljbGUgKi8KIAotICAgICAgICBzYmRmID0gSFZNT1BfUENJX1NC REYoMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9CVVMoQ0Y4X0JERihjZjgp KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKENGOF9CREYoY2Y4KSks Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfRlVOQyhDRjhfQkRGKGNmOCkpKTsK KyAgICAgICAgc2JkZiA9IFhFTl9ETU9QX1BDSV9TQkRGKDAsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQQ0lfQlVTKENGOF9CREYoY2Y4KSksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQQ0lfU0xPVChDRjhfQkRGKGNmOCkpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUENJX0ZVTkMoQ0Y4X0JERihjZjgpKSk7CiAKLSAgICAgICAgdHlwZSA9 IEhWTU9QX0lPX1JBTkdFX1BDSTsKKyAgICAgICAgdHlwZSA9IFhFTl9ETU9QX0lPX1JBTkdFX1BD STsKICAgICAgICAgYWRkciA9ICgodWludDY0X3Qpc2JkZiA8PCAzMikgfAogICAgICAgICAgICAg ICAgQ0Y4X0FERFJfTE8oY2Y4KSB8CiAgICAgICAgICAgICAgICAocC0+YWRkciAmIDMpOwpAQCAt MTE1Myw3ICsxMTUzLDcgQEAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKmh2bV9zZWxlY3RfaW9y ZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQsCiAgICAgZWxzZQogICAgIHsKICAgICAgICAgdHlw ZSA9IChwLT50eXBlID09IElPUkVRX1RZUEVfUElPKSA/Ci0gICAgICAgICAgICAgICAgSFZNT1Bf SU9fUkFOR0VfUE9SVCA6IEhWTU9QX0lPX1JBTkdFX01FTU9SWTsKKyAgICAgICAgICAgICAgICBY RU5fRE1PUF9JT19SQU5HRV9QT1JUIDogWEVOX0RNT1BfSU9fUkFOR0VfTUVNT1JZOwogICAgICAg ICBhZGRyID0gcC0+YWRkcjsKICAgICB9CiAKQEAgLTExNzUsMTkgKzExNzUsMTkgQEAgc3RydWN0 IGh2bV9pb3JlcV9zZXJ2ZXIgKmh2bV9zZWxlY3RfaW9yZXFfc2VydmVyKHN0cnVjdCBkb21haW4g KmQsCiAgICAgICAgIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZW5kOwogCi0gICAgICAg IGNhc2UgSFZNT1BfSU9fUkFOR0VfUE9SVDoKKyAgICAgICAgY2FzZSBYRU5fRE1PUF9JT19SQU5H RV9QT1JUOgogICAgICAgICAgICAgZW5kID0gYWRkciArIHAtPnNpemUgLSAxOwogICAgICAgICAg ICAgaWYgKCByYW5nZXNldF9jb250YWluc19yYW5nZShyLCBhZGRyLCBlbmQpICkKICAgICAgICAg ICAgICAgICByZXR1cm4gczsKIAogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSFZN T1BfSU9fUkFOR0VfTUVNT1JZOgorICAgICAgICBjYXNlIFhFTl9ETU9QX0lPX1JBTkdFX01FTU9S WToKICAgICAgICAgICAgIGVuZCA9IGFkZHIgKyAocC0+c2l6ZSAqIHAtPmNvdW50KSAtIDE7CiAg ICAgICAgICAgICBpZiAoIHJhbmdlc2V0X2NvbnRhaW5zX3JhbmdlKHIsIGFkZHIsIGVuZCkgKQog ICAgICAgICAgICAgICAgIHJldHVybiBzOwogCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg Y2FzZSBIVk1PUF9JT19SQU5HRV9QQ0k6CisgICAgICAgIGNhc2UgWEVOX0RNT1BfSU9fUkFOR0Vf UENJOgogICAgICAgICAgICAgaWYgKCByYW5nZXNldF9jb250YWluc19zaW5nbGV0b24ociwgYWRk ciA+PiAzMikgKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHAtPnR5cGUgPSBJT1JF UV9UWVBFX1BDSV9DT05GSUc7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9k b21haW4uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2RvbWFpbi5oCmluZGV4IGQ1NWQxODAu LjM1MGYwMTMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2RvbWFpbi5oCisr KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2RvbWFpbi5oCkBAIC0zMyw2ICszMyw3IEBACiAj aW5jbHVkZSA8cHVibGljL2h2bS9wYXJhbXMuaD4KICNpbmNsdWRlIDxwdWJsaWMvaHZtL3NhdmUu aD4KICNpbmNsdWRlIDxwdWJsaWMvaHZtL2h2bV9vcC5oPgorI2luY2x1ZGUgPHB1YmxpYy9odm0v ZG1fb3AuaD4KIAogc3RydWN0IGh2bV9pb3JlcV9wYWdlIHsKICAgICB1bnNpZ25lZCBsb25nIGdt Zm47CkBAIC00Nyw3ICs0OCw3IEBAIHN0cnVjdCBodm1faW9yZXFfdmNwdSB7CiAgICAgYm9vbF90 ICAgICAgICAgICBwZW5kaW5nOwogfTsKIAotI2RlZmluZSBOUl9JT19SQU5HRV9UWVBFUyAoSFZN T1BfSU9fUkFOR0VfUENJICsgMSkKKyNkZWZpbmUgTlJfSU9fUkFOR0VfVFlQRVMgKFhFTl9ETU9Q X0lPX1JBTkdFX1BDSSArIDEpCiAjZGVmaW5lIE1BWF9OUl9JT19SQU5HRVMgIDI1NgogCiBzdHJ1 Y3QgaHZtX2lvcmVxX3NlcnZlciB7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZt L2RtX29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKaW5kZXggZjhiNDk0MS4u YjVjN2MyOSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCisrKyBi L3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaApAQCAtMjcsMTEgKzI3LDE2NCBAQAogI2lm IGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQogCiAjaW5jbHVkZSAi Li4veGVuLmgiCisjaW5jbHVkZSAiLi4vZXZlbnRfY2hhbm5lbC5oIgogCiAjZGVmaW5lIFhFTl9E TU9QX2ludmFsaWQgMAogCisvKgorICogSU9SRVEgU2VydmVycworICoKKyAqIFRoZSBpbnRlcmZh Y2UgYmV0d2VlbiBhbiBJL08gZW11bGF0b3IgYW4gWGVuIGlzIGNhbGxlZCBhbiBJT1JFUSBTZXJ2 ZXIuCisgKiBBIGRvbWFpbiBzdXBwb3J0cyBhIHNpbmdsZSAnbGVnYWN5JyBJT1JFUSBTZXJ2ZXIg d2hpY2ggaXMgaW5zdGFudGlhdGVkIGlmCisgKiBwYXJhbWV0ZXIuLi4KKyAqCisgKiBIVk1fUEFS QU1fSU9SRVFfUEZOIGlzIHJlYWQgKHRvIGdldCB0aGUgZ21mbiBjb250YWluaW5nIHRoZSBzeW5j aHJvbm91cworICogaW9yZXEgc3RydWN0dXJlcyksIG9yLi4uCisgKiBIVk1fUEFSQU1fQlVGSU9S RVFfUEZOIGlzIHJlYWQgKHRvIGdldCB0aGUgZ21mbiBjb250YWluaW5nIHRoZSBidWZmZXJlZAor ICogaW9yZXEgcmluZyksIG9yLi4uCisgKiBIVk1fUEFSQU1fQlVGSU9SRVFfRVZUQ0hOIGlzIHJl YWQgKHRvIGdldCB0aGUgZXZlbnQgY2hhbm5lbCB0aGF0IFhlbiB1c2VzCisgKiB0byByZXF1ZXN0 IGJ1ZmZlcmVkIEkvTyBlbXVsYXRpb24pLgorICoKKyAqIFRoZSBmb2xsb3dpbmcgaHlwZXJjYWxs cyBmYWNpbGl0YXRlIHRoZSBjcmVhdGlvbiBvZiBJT1JFUSBTZXJ2ZXJzIGZvcgorICogJ3NlY29u ZGFyeScgZW11bGF0b3JzIHdoaWNoIGFyZSBpbnZva2VkIHRvIGltcGxlbWVudCBwb3J0IEkvTywg bWVtb3J5LCBvcgorICogUENJIGNvbmZpZyBzcGFjZSByYW5nZXMgd2hpY2ggdGhleSBleHBsaWNp dGx5IHJlZ2lzdGVyLgorICovCisKK3R5cGVkZWYgdWludDE2X3QgaW9zZXJ2aWRfdDsKKworLyoK KyAqIFhFTl9ETU9QX2NyZWF0ZV9pb3JlcV9zZXJ2ZXI6IEluc3RhbnRpYXRlIGEgbmV3IElPUkVR IFNlcnZlciBmb3IgYQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5 IGVtdWxhdG9yLgorICoKKyAqIFRoZSA8aWQ+IGhhbmRlZCBiYWNrIGlzIHVuaXF1ZSBmb3IgdGFy Z2V0IGRvbWFpbi4gVGhlIHZhbHVyIG9mCisgKiA8aGFuZGxlX2J1ZmlvcmVxPiBzaG91bGQgYmUg b25lIG9mIEhWTV9JT1JFUVNSVl9CVUZJT1JFUV8qIGRlZmluZWQgaW4KKyAqIGh2bV9vcC5oLiBJ ZiB0aGUgdmFsdWUgaXMgSFZNX0lPUkVRU1JWX0JVRklPUkVRX09GRiB0aGVuICB0aGUgYnVmZmVy ZWQKKyAqIGlvcmVxIHJpbmcgd2lsbCBub3QgYmUgYWxsb2NhdGVkIGFuZCBoZW5jZSBhbGwgZW11 bGF0aW9uIHJlcXVlc3RzIHRvCisgKiB0aGlzIHNlcnZlciB3aWxsIGJlIHN5bmNocm9ub3VzLgor ICovCisjZGVmaW5lIFhFTl9ETU9QX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIgMQorCitzdHJ1Y3QgeGVu X2RtX29wX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIgeworICAgIC8qIElOIC0gc2hvdWxkIHNlcnZlciBo YW5kbGUgYnVmZmVyZWQgaW9yZXFzICovCisgICAgdWludDhfdCBoYW5kbGVfYnVmaW9yZXE7Cisg ICAgdWludDhfdCBwYWRbM107CisgICAgLyogT1VUIC0gc2VydmVyIGlkICovCisgICAgaW9zZXJ2 aWRfdCBpZDsKK307CisKKy8qCisgKiBYRU5fRE1PUF9nZXRfaW9yZXFfc2VydmVyX2luZm86IEdl dCBhbGwgdGhlIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSB0bworICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhY2Nlc3MgSU9SRVEgU2VydmVyIDxpZD4uCisgKgorICogVGhlIGVtdWxh dG9yIG5lZWRzIHRvIG1hcCB0aGUgc3luY2hyb25vdXMgaW9yZXEgc3RydWN0dXJlcyBhbmQgYnVm ZmVyZWQKKyAqIGlvcmVxIHJpbmcgKGlmIGl0IGV4aXN0cykgdGhhdCBYZW4gdXNlcyB0byByZXF1 ZXN0IGVtdWxhdGlvbi4gVGhlc2UgYXJlCisgKiBob3N0ZWQgaW4gdGhlIHRhcmdldCBkb21haW4n cyBnbWZucyA8aW9yZXFfcGZuPiBhbmQgPGJ1ZmlvcmVxX3Bmbj4KKyAqIHJlc3BlY3RpdmVseS4g SW4gYWRkaXRpb24sIGlmIHRoZSBJT1JFUSBTZXJ2ZXIgaXMgaGFuZGxpbmcgYnVmZmVyZWQKKyAq IGVtdWxhdGlvbiByZXF1ZXN0cywgdGhlIGVtdWxhdG9yIG5lZWRzIHRvIGJpbmQgdG8gZXZlbnQg Y2hhbm5lbAorICogPGJ1ZmlvcmVxX3BvcnQ+IHRvIGxpc3RlbiBmb3IgdGhlbS4gKFRoZSBldmVu dCBjaGFubmVscyB1c2VkIGZvcgorICogc3luY2hyb25vdXMgZW11bGF0aW9uIHJlcXVlc3RzIGFy ZSBzcGVjaWZpZWQgaW4gdGhlIHBlci1DUFUgaW9yZXEKKyAqIHN0cnVjdHVyZXMgaW4gPGlvcmVx X3Bmbj4pLgorICogSWYgdGhlIElPUkVRIFNlcnZlciBpcyBub3QgaGFuZGxpbmcgYnVmZmVyZWQg ZW11bGF0aW9uIHJlcXVlc3RzIHRoZW4gdGhlCisgKiB2YWx1ZXMgaGFuZGVkIGJhY2sgaW4gPGJ1 ZmlvcmVxX3Bmbj4gYW5kIDxidWZpb3JlcV9wb3J0PiB3aWxsIGJvdGggYmUgMC4KKyAqLworI2Rl ZmluZSBYRU5fRE1PUF9nZXRfaW9yZXFfc2VydmVyX2luZm8gMgorCitzdHJ1Y3QgeGVuX2RtX29w X2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyB7CisgICAgLyogSU4gLSBzZXJ2ZXIgaWQgKi8KKyAgICBp b3NlcnZpZF90IGlkOworICAgIHVpbnQxNl90IHBhZDsKKyAgICAvKiBPVVQgLSBidWZmZXJlZCBp b3JlcSBwb3J0ICovCisgICAgZXZ0Y2huX3BvcnRfdCBidWZpb3JlcV9wb3J0OworICAgIC8qIE9V VCAtIHN5bmMgaW9yZXEgcGZuICovCisgICAgdWludDY0X2FsaWduZWRfdCBpb3JlcV9wZm47Cisg ICAgLyogT1VUIC0gYnVmZmVyZWQgaW9yZXEgcGZuICovCisgICAgdWludDY0X2FsaWduZWRfdCBi dWZpb3JlcV9wZm47Cit9OworCisvKgorICogWEVOX0RNT1BfbWFwX2lvX3JhbmdlX3RvX2lvcmVx X3NlcnZlcjogUmVnaXN0ZXIgYW4gSS9PIHJhbmdlIGZvcgorICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZW11bGF0aW9uIGJ5IHRoZSBjbGllbnQgb2YKKyAqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPUkVRIFNlcnZlciA8aWQ+LgorICog WEVOX0RNT1BfdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXI6IERlcmVnaXN0ZXIgYW4g SS9PIHJhbmdlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cHJldmlvdXNseSByZWdpc3RlcmVkIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGVtdWxhdGlvbiBieSB0aGUgY2xpZW50IG9mCisgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9SRVEgU2VydmVyIDxpZD4uCisgKgor ICogVGhlcmUgYXJlIHRocmVlIHR5cGVzIG9mIEkvTyB0aGF0IGNhbiBiZSBlbXVsYXRlZDogcG9y dCBJL08sIG1lbW9yeQorICogYWNjZXNzZXMgYW5kIFBDSSBjb25maWcgc3BhY2UgYWNjZXNzZXMu IFRoZSA8dHlwZT4gZmllbGQgZGVub3RlcyB3aGljaAorICogdHlwZSBvZiByYW5nZSogdGhlIDxz dGFydD4gYW5kIDxlbmQ+IChpbmNsdXNpdmUpIGZpZWxkcyBhcmUgc3BlY2lmeWluZy4KKyAqIFBD SSBjb25maWcgc3BhY2UgcmFuZ2VzIGFyZSBzcGVjaWZpZWQgYnkgc2VnbWVudC9idXMvZGV2aWNl L2Z1bmN0aW9uCisgKiB2YWx1ZXMgd2hpY2ggc2hvdWxkIGJlIGVuY29kZWQgdXNpbmcgdGhlIERN T1BfUENJX1NCREYgaGVscGVyIG1hY3JvCisgKiBiZWxvdy4KKyAqCisgKiBOT1RFOiB1bmxlc3Mg YW4gZW11bGF0aW9uIHJlcXVlc3QgZmFsbHMgZW50aXJlbHkgd2l0aGluIGEgcmFuZ2UgbWFwcGVk CisgKiBieSBhIHNlY29uZGFyeSBlbXVsYXRvciwgaXQgd2lsbCBub3QgYmUgcGFzc2VkIHRvIHRo YXQgZW11bGF0b3IuCisgKi8KKyNkZWZpbmUgWEVOX0RNT1BfbWFwX2lvX3JhbmdlX3RvX2lvcmVx X3NlcnZlciAzCisjZGVmaW5lIFhFTl9ETU9QX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2Vy dmVyIDQKKworc3RydWN0IHhlbl9kbV9vcF9pb3JlcV9zZXJ2ZXJfcmFuZ2UgeworICAgIC8qIElO IC0gc2VydmVyIGlkICovCisgICAgaW9zZXJ2aWRfdCBpZDsKKyAgICB1aW50MTZfdCBwYWQ7Cisg ICAgLyogSU4gLSB0eXBlIG9mIHJhbmdlICovCisgICAgdWludDMyX3QgdHlwZTsKKyMgZGVmaW5l IFhFTl9ETU9QX0lPX1JBTkdFX1BPUlQgICAwIC8qIEkvTyBwb3J0IHJhbmdlICovCisjIGRlZmlu ZSBYRU5fRE1PUF9JT19SQU5HRV9NRU1PUlkgMSAvKiBNTUlPIHJhbmdlICovCisjIGRlZmluZSBY RU5fRE1PUF9JT19SQU5HRV9QQ0kgICAgMiAvKiBQQ0kgc2VnbWVudC9idXMvZGV2L2Z1bmMgcmFu Z2UgKi8KKyAgICAvKiBJTiAtIGluY2x1c2l2ZSBzdGFydCBhbmQgZW5kIG9mIHJhbmdlICovCisg ICAgdWludDY0X2FsaWduZWRfdCBzdGFydCwgZW5kOworfTsKKworI2RlZmluZSBYRU5fRE1PUF9Q Q0lfU0JERihzLGIsZCxmKSBcCisJKCgoKHMpICYgMHhmZmZmKSA8PCAxNikgfCAgXAorCSAoKChi KSAmIDB4ZmYpIDw8IDgpIHwgICAgIFwKKwkgKCgoZCkgJiAweDFmKSA8PCAzKSB8ICAgICBcCisJ ICgoZikgJiAweDA3KSkKKworLyoKKyAqIFhFTl9ETU9QX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGU6 IEVuYWJsZSBvciBkaXNhYmxlIHRoZSBJT1JFUSBTZXJ2ZXIgPGlkPgorICoKKyAqIFRoZSBJT1JF USBTZXJ2ZXIgd2lsbCBub3QgYmUgcGFzc2VkIGFueSBlbXVsYXRpb24gcmVxdWVzdHMgdW50aWwg aXQgaXMKKyAqIGluIHRoZSBlbmFibGVkIHN0YXRlLgorICogTm90ZSB0aGF0IHRoZSBjb250ZW50 cyBvZiB0aGUgaW9yZXFfcGZuIGFuZCBidWZpb3JlcV9mbiAoc2VlCisgKiBYRU5fRE1PUF9nZXRf aW9yZXFfc2VydmVyX2luZm8pIGFyZSBub3QgbWVhbmluZ2Z1bCB1bnRpbCB0aGUgSU9SRVEgU2Vy dmVyCisgKiBpcyBpbiB0aGUgZW5hYmxlZCBzdGF0ZS4KKyAqLworI2RlZmluZSBYRU5fRE1PUF9z ZXRfaW9yZXFfc2VydmVyX3N0YXRlIDUKKworc3RydWN0IHhlbl9kbV9vcF9zZXRfaW9yZXFfc2Vy dmVyX3N0YXRlIHsKKyAgICAvKiBJTiAtIHNlcnZlciBpZCAqLworICAgIGlvc2VydmlkX3QgaWQ7 CisgICAgLyogSU4gLSBlbmFibGVkPyAqLworICAgIHVpbnQ4X3QgZW5hYmxlZDsKKyAgICB1aW50 OF90IHBhZDsKK307CisKKy8qCisgKiBYRU5fRE1PUF9kZXN0cm95X2lvcmVxX3NlcnZlcjogRGVz dHJveSB0aGUgSU9SRVEgU2VydmVyIDxpZD4uCisgKgorICogQW55IHJlZ2lzdGVyZWQgSS9PIHJh bmdlcyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgZGVyZWdpc3RlcmVkLgorICovCisjZGVmaW5lIFhF Tl9ETU9QX2Rlc3Ryb3lfaW9yZXFfc2VydmVyIDYKKworc3RydWN0IHhlbl9kbV9vcF9kZXN0cm95 X2lvcmVxX3NlcnZlciB7CisgICAgLyogSU4gLSBzZXJ2ZXIgaWQgKi8KKyAgICBpb3NlcnZpZF90 IGlkOworICAgIHVpbnQxNl90IHBhZDsKK307CisKIHN0cnVjdCB4ZW5fZG1fb3AgewogICAgIHVp bnQzMl90IG9wOworICAgIHVpbnQzMl90IHBhZDsKKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVj dCB4ZW5fZG1fb3BfY3JlYXRlX2lvcmVxX3NlcnZlciBjcmVhdGVfaW9yZXFfc2VydmVyOworICAg ICAgICBzdHJ1Y3QgeGVuX2RtX29wX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyBnZXRfaW9yZXFfc2Vy dmVyX2luZm87CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW9yZXFfc2VydmVyX3JhbmdlIG1h cF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXI7CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW9y ZXFfc2VydmVyX3JhbmdlIHVubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyOworICAgICAg ICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUgc2V0X2lvcmVxX3NlcnZl cl9zdGF0ZTsKKyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9kZXN0cm95X2lvcmVxX3NlcnZlciBk ZXN0cm95X2lvcmVxX3NlcnZlcjsKKyAgICB9IHU7CiB9OwogCiBzdHJ1Y3QgeGVuX2RtX29wX2J1 ZiB7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oIGIveGVuL2lu Y2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaAppbmRleCBiM2U0NWNmLi42ZmNkODZkIDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1 YmxpYy9odm0vaHZtX29wLmgKQEAgLTI0MywzNyArMjQzLDEwIEBAIHR5cGVkZWYgc3RydWN0IHhl bl9odm1faW5qZWN0X21zaSB4ZW5faHZtX2luamVjdF9tc2lfdDsKIERFRklORV9YRU5fR1VFU1Rf SEFORExFKHhlbl9odm1faW5qZWN0X21zaV90KTsKIAogLyoKLSAqIElPUkVRIFNlcnZlcnMKLSAq Ci0gKiBUaGUgaW50ZXJmYWNlIGJldHdlZW4gYW4gSS9PIGVtdWxhdG9yIGFuIFhlbiBpcyBjYWxs ZWQgYW4gSU9SRVEgU2VydmVyLgotICogQSBkb21haW4gc3VwcG9ydHMgYSBzaW5nbGUgJ2xlZ2Fj eScgSU9SRVEgU2VydmVyIHdoaWNoIGlzIGluc3RhbnRpYXRlZCBpZgotICogcGFyYW1ldGVyLi4u Ci0gKgotICogSFZNX1BBUkFNX0lPUkVRX1BGTiBpcyByZWFkICh0byBnZXQgdGhlIGdtZm4gY29u dGFpbmluZyB0aGUgc3luY2hyb25vdXMKLSAqIGlvcmVxIHN0cnVjdHVyZXMpLCBvci4uLgotICog SFZNX1BBUkFNX0JVRklPUkVRX1BGTiBpcyByZWFkICh0byBnZXQgdGhlIGdtZm4gY29udGFpbmlu ZyB0aGUgYnVmZmVyZWQKLSAqIGlvcmVxIHJpbmcpLCBvci4uLgotICogSFZNX1BBUkFNX0JVRklP UkVRX0VWVENITiBpcyByZWFkICh0byBnZXQgdGhlIGV2ZW50IGNoYW5uZWwgdGhhdCBYZW4gdXNl cwotICogdG8gcmVxdWVzdCBidWZmZXJlZCBJL08gZW11bGF0aW9uKS4KLSAqIAotICogVGhlIGZv bGxvd2luZyBoeXBlcmNhbGxzIGZhY2lsaXRhdGUgdGhlIGNyZWF0aW9uIG9mIElPUkVRIFNlcnZl cnMgZm9yCi0gKiAnc2Vjb25kYXJ5JyBlbXVsYXRvcnMgd2hpY2ggYXJlIGludm9rZWQgdG8gaW1w bGVtZW50IHBvcnQgSS9PLCBtZW1vcnksIG9yCi0gKiBQQ0kgY29uZmlnIHNwYWNlIHJhbmdlcyB3 aGljaCB0aGV5IGV4cGxpY2l0bHkgcmVnaXN0ZXIuCisgKiBEZWZpbml0aW9ucyByZWxhdGluZyB0 byBETU9QX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIuIChEZWZpbmVkIGhlcmUgZm9yCisgKiBiYWNrd2Fy ZHMgY29tcGF0aWJpbGl0eSkuCiAgKi8KIAotdHlwZWRlZiB1aW50MTZfdCBpb3NlcnZpZF90Owot Ci0vKgotICogSFZNT1BfY3JlYXRlX2lvcmVxX3NlcnZlcjogSW5zdGFudGlhdGUgYSBuZXcgSU9S RVEgU2VydmVyIGZvciBhIHNlY29uZGFyeQotICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ZW11bGF0b3Igc2VydmljaW5nIGRvbWFpbiA8ZG9taWQ+LgotICoKLSAqIFRoZSA8aWQ+IGhhbmRl ZCBiYWNrIGlzIHVuaXF1ZSBmb3IgPGRvbWlkPi4gSWYgPGhhbmRsZV9idWZpb3JlcT4gaXMgemVy bwotICogdGhlIGJ1ZmZlcmVkIGlvcmVxIHJpbmcgd2lsbCBub3QgYmUgYWxsb2NhdGVkIGFuZCBo ZW5jZSBhbGwgZW11bGF0aW9uCi0gKiByZXF1ZXN0ZXMgdG8gdGhpcyBzZXJ2ZXIgd2lsbCBiZSBz eW5jaHJvbm91cy4KLSAqLwotI2RlZmluZSBIVk1PUF9jcmVhdGVfaW9yZXFfc2VydmVyIDE3Ci1z dHJ1Y3QgeGVuX2h2bV9jcmVhdGVfaW9yZXFfc2VydmVyIHsKLSAgICBkb21pZF90IGRvbWlkOyAg ICAgICAgICAgLyogSU4gLSBkb21haW4gdG8gYmUgc2VydmljZWQgKi8KICNkZWZpbmUgSFZNX0lP UkVRU1JWX0JVRklPUkVRX09GRiAgICAwCiAjZGVmaW5lIEhWTV9JT1JFUVNSVl9CVUZJT1JFUV9M RUdBQ1kgMQogLyoKQEAgLTI4MSwxMDcgKzI1NCw2IEBAIHN0cnVjdCB4ZW5faHZtX2NyZWF0ZV9p b3JlcV9zZXJ2ZXIgewogICogdGhlIHBvaW50ZXIgcGFpciBnZXRzIHJlYWQgYXRvbWljYWxseToK ICAqLwogI2RlZmluZSBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfQVRPTUlDIDIKLSAgICB1aW50OF90 IGhhbmRsZV9idWZpb3JlcTsgLyogSU4gLSBzaG91bGQgc2VydmVyIGhhbmRsZSBidWZmZXJlZCBp b3JlcXMgKi8KLSAgICBpb3NlcnZpZF90IGlkOyAgICAgICAgICAgLyogT1VUIC0gc2VydmVyIGlk ICovCi19OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9jcmVhdGVfaW9yZXFfc2VydmVyIHhlbl9o dm1fY3JlYXRlX2lvcmVxX3NlcnZlcl90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2 bV9jcmVhdGVfaW9yZXFfc2VydmVyX3QpOwotCi0vKgotICogSFZNT1BfZ2V0X2lvcmVxX3NlcnZl cl9pbmZvOiBHZXQgYWxsIHRoZSBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgdG8gYWNjZXNzCi0gKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPUkVRIFNlcnZlciA8aWQ+LiAKLSAqCi0gKiBU aGUgZW11bGF0b3IgbmVlZHMgdG8gbWFwIHRoZSBzeW5jaHJvbm91cyBpb3JlcSBzdHJ1Y3R1cmVz IGFuZCBidWZmZXJlZAotICogaW9yZXEgcmluZyAoaWYgaXQgZXhpc3RzKSB0aGF0IFhlbiB1c2Vz IHRvIHJlcXVlc3QgZW11bGF0aW9uLiBUaGVzZSBhcmUKLSAqIGhvc3RlZCBpbiBkb21haW4gPGRv bWlkPidzIGdtZm5zIDxpb3JlcV9wZm4+IGFuZCA8YnVmaW9yZXFfcGZuPgotICogcmVzcGVjdGl2 ZWx5LiBJbiBhZGRpdGlvbiwgaWYgdGhlIElPUkVRIFNlcnZlciBpcyBoYW5kbGluZyBidWZmZXJl ZAotICogZW11bGF0aW9uIHJlcXVlc3RzLCB0aGUgZW11bGF0b3IgbmVlZHMgdG8gYmluZCB0byBl dmVudCBjaGFubmVsCi0gKiA8YnVmaW9yZXFfcG9ydD4gdG8gbGlzdGVuIGZvciB0aGVtLiAoVGhl IGV2ZW50IGNoYW5uZWxzIHVzZWQgZm9yCi0gKiBzeW5jaHJvbm91cyBlbXVsYXRpb24gcmVxdWVz dHMgYXJlIHNwZWNpZmllZCBpbiB0aGUgcGVyLUNQVSBpb3JlcQotICogc3RydWN0dXJlcyBpbiA8 aW9yZXFfcGZuPikuCi0gKiBJZiB0aGUgSU9SRVEgU2VydmVyIGlzIG5vdCBoYW5kbGluZyBidWZm ZXJlZCBlbXVsYXRpb24gcmVxdWVzdHMgdGhlbiB0aGUKLSAqIHZhbHVlcyBoYW5kZWQgYmFjayBp biA8YnVmaW9yZXFfcGZuPiBhbmQgPGJ1ZmlvcmVxX3BvcnQ+IHdpbGwgYm90aCBiZSAwLgotICov Ci0jZGVmaW5lIEhWTU9QX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyAxOAotc3RydWN0IHhlbl9odm1f Z2V0X2lvcmVxX3NlcnZlcl9pbmZvIHsKLSAgICBkb21pZF90IGRvbWlkOyAgICAgICAgICAgICAg ICAgLyogSU4gLSBkb21haW4gdG8gYmUgc2VydmljZWQgKi8KLSAgICBpb3NlcnZpZF90IGlkOyAg ICAgICAgICAgICAgICAgLyogSU4gLSBzZXJ2ZXIgaWQgKi8KLSAgICBldnRjaG5fcG9ydF90IGJ1 ZmlvcmVxX3BvcnQ7ICAgLyogT1VUIC0gYnVmZmVyZWQgaW9yZXEgcG9ydCAqLwotICAgIHVpbnQ2 NF9hbGlnbmVkX3QgaW9yZXFfcGZuOyAgICAvKiBPVVQgLSBzeW5jIGlvcmVxIHBmbiAqLwotICAg IHVpbnQ2NF9hbGlnbmVkX3QgYnVmaW9yZXFfcGZuOyAvKiBPVVQgLSBidWZmZXJlZCBpb3JlcSBw Zm4gKi8KLX07Ci10eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyB4 ZW5faHZtX2dldF9pb3JlcV9zZXJ2ZXJfaW5mb190OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo eGVuX2h2bV9nZXRfaW9yZXFfc2VydmVyX2luZm9fdCk7Ci0KLS8qCi0gKiBIVk1fbWFwX2lvX3Jh bmdlX3RvX2lvcmVxX3NlcnZlcjogUmVnaXN0ZXIgYW4gSS9PIHJhbmdlIG9mIGRvbWFpbiA8ZG9t aWQ+Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGVtdWxhdGlvbiBi eSB0aGUgY2xpZW50IG9mIElPUkVRCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2VydmVyIDxpZD4KLSAqIEhWTV91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcjog RGVyZWdpc3RlciBhbiBJL08gcmFuZ2Ugb2YgPGRvbWlkPgotICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmb3IgZW11bGF0aW9uIGJ5IHRoZSBjbGllbnQgb2YgSU9SRVEK LSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VydmVyIDxpZD4KLSAq Ci0gKiBUaGVyZSBhcmUgdGhyZWUgdHlwZXMgb2YgSS9PIHRoYXQgY2FuIGJlIGVtdWxhdGVkOiBw b3J0IEkvTywgbWVtb3J5IGFjY2Vzc2VzCi0gKiBhbmQgUENJIGNvbmZpZyBzcGFjZSBhY2Nlc3Nl cy4gVGhlIDx0eXBlPiBmaWVsZCBkZW5vdGVzIHdoaWNoIHR5cGUgb2YgcmFuZ2UKLSAqIHRoZSA8 c3RhcnQ+IGFuZCA8ZW5kPiAoaW5jbHVzaXZlKSBmaWVsZHMgYXJlIHNwZWNpZnlpbmcuCi0gKiBQ Q0kgY29uZmlnIHNwYWNlIHJhbmdlcyBhcmUgc3BlY2lmaWVkIGJ5IHNlZ21lbnQvYnVzL2Rldmlj ZS9mdW5jdGlvbiB2YWx1ZXMKLSAqIHdoaWNoIHNob3VsZCBiZSBlbmNvZGVkIHVzaW5nIHRoZSBI Vk1PUF9QQ0lfU0JERiBoZWxwZXIgbWFjcm8gYmVsb3cuCi0gKgotICogTk9URTogdW5sZXNzIGFu IGVtdWxhdGlvbiByZXF1ZXN0IGZhbGxzIGVudGlyZWx5IHdpdGhpbiBhIHJhbmdlIG1hcHBlZAot ICogYnkgYSBzZWNvbmRhcnkgZW11bGF0b3IsIGl0IHdpbGwgbm90IGJlIHBhc3NlZCB0byB0aGF0 IGVtdWxhdG9yLgotICovCi0jZGVmaW5lIEhWTU9QX21hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2 ZXIgMTkKLSNkZWZpbmUgSFZNT1BfdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXIgMjAK LXN0cnVjdCB4ZW5faHZtX2lvX3JhbmdlIHsKLSAgICBkb21pZF90IGRvbWlkOyAgICAgICAgICAg ICAgIC8qIElOIC0gZG9tYWluIHRvIGJlIHNlcnZpY2VkICovCi0gICAgaW9zZXJ2aWRfdCBpZDsg ICAgICAgICAgICAgICAvKiBJTiAtIHNlcnZlciBpZCAqLwotICAgIHVpbnQzMl90IHR5cGU7ICAg ICAgICAgICAgICAgLyogSU4gLSB0eXBlIG9mIHJhbmdlICovCi0jIGRlZmluZSBIVk1PUF9JT19S QU5HRV9QT1JUICAgMCAvKiBJL08gcG9ydCByYW5nZSAqLwotIyBkZWZpbmUgSFZNT1BfSU9fUkFO R0VfTUVNT1JZIDEgLyogTU1JTyByYW5nZSAqLwotIyBkZWZpbmUgSFZNT1BfSU9fUkFOR0VfUENJ ICAgIDIgLyogUENJIHNlZ21lbnQvYnVzL2Rldi9mdW5jIHJhbmdlICovCi0gICAgdWludDY0X2Fs aWduZWRfdCBzdGFydCwgZW5kOyAvKiBJTiAtIGluY2x1c2l2ZSBzdGFydCBhbmQgZW5kIG9mIHJh bmdlICovCi19OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9pb19yYW5nZSB4ZW5faHZtX2lvX3Jh bmdlX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2lvX3JhbmdlX3QpOwotCi0j ZGVmaW5lIEhWTU9QX1BDSV9TQkRGKHMsYixkLGYpICAgICAgICAgICAgICAgICBcCi0JKCgoKHMp ICYgMHhmZmZmKSA8PCAxNikgfCAgICAgICAgICAgICAgICAgICBcCi0JICgoKGIpICYgMHhmZikg PDwgOCkgfCAgICAgICAgICAgICAgICAgICAgICBcCi0JICgoKGQpICYgMHgxZikgPDwgMykgfCAg ICAgICAgICAgICAgICAgICAgICBcCi0JICgoZikgJiAweDA3KSkKLQotLyoKLSAqIEhWTU9QX2Rl c3Ryb3lfaW9yZXFfc2VydmVyOiBEZXN0cm95IHRoZSBJT1JFUSBTZXJ2ZXIgPGlkPiBzZXJ2aWNp bmcgZG9tYWluCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRvbWlkPi4KLSAqCi0g KiBBbnkgcmVnaXN0ZXJlZCBJL08gcmFuZ2VzIHdpbGwgYmUgYXV0b21hdGljYWxseSBkZXJlZ2lz dGVyZWQuCi0gKi8KLSNkZWZpbmUgSFZNT1BfZGVzdHJveV9pb3JlcV9zZXJ2ZXIgMjEKLXN0cnVj dCB4ZW5faHZtX2Rlc3Ryb3lfaW9yZXFfc2VydmVyIHsKLSAgICBkb21pZF90IGRvbWlkOyAvKiBJ TiAtIGRvbWFpbiB0byBiZSBzZXJ2aWNlZCAqLwotICAgIGlvc2VydmlkX3QgaWQ7IC8qIElOIC0g c2VydmVyIGlkICovCi19OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9kZXN0cm95X2lvcmVxX3Nl cnZlciB4ZW5faHZtX2Rlc3Ryb3lfaW9yZXFfc2VydmVyX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hB TkRMRSh4ZW5faHZtX2Rlc3Ryb3lfaW9yZXFfc2VydmVyX3QpOwotCi0vKgotICogSFZNT1Bfc2V0 X2lvcmVxX3NlcnZlcl9zdGF0ZTogRW5hYmxlIG9yIGRpc2FibGUgdGhlIElPUkVRIFNlcnZlciA8 aWQ+IHNlcnZpY2luZwotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluIDxk b21pZD4uCi0gKgotICogVGhlIElPUkVRIFNlcnZlciB3aWxsIG5vdCBiZSBwYXNzZWQgYW55IGVt dWxhdGlvbiByZXF1ZXN0cyB1bnRpbCBpdCBpcyBpbiB0aGUKLSAqIGVuYWJsZWQgc3RhdGUuCi0g KiBOb3RlIHRoYXQgdGhlIGNvbnRlbnRzIG9mIHRoZSBpb3JlcV9wZm4gYW5kIGJ1ZmlvcmVxX2Zu IChzZWUKLSAqIEhWTU9QX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbykgYXJlIG5vdCBtZWFuaW5nZnVs IHVudGlsIHRoZSBJT1JFUSBTZXJ2ZXIgaXMgaW4KLSAqIHRoZSBlbmFibGVkIHN0YXRlLgotICov Ci0jZGVmaW5lIEhWTU9QX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUgMjIKLXN0cnVjdCB4ZW5faHZt X3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUgewotICAgIGRvbWlkX3QgZG9taWQ7ICAgLyogSU4gLSBk b21haW4gdG8gYmUgc2VydmljZWQgKi8KLSAgICBpb3NlcnZpZF90IGlkOyAgIC8qIElOIC0gc2Vy dmVyIGlkICovCi0gICAgdWludDhfdCBlbmFibGVkOyAvKiBJTiAtIGVuYWJsZWQ/ICovICAgIAot fTsKLXR5cGVkZWYgc3RydWN0IHhlbl9odm1fc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZSB4ZW5faHZt X3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGVfdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9o dm1fc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZV90KTsKIAogI2VuZGlmIC8qIGRlZmluZWQoX19YRU5f XykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKSAqLwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS94c20vZHVtbXkuaCBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCmluZGV4IGIyMDZmNWEuLjlm N2MxNzQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCisrKyBiL3hlbi9pbmNs dWRlL3hzbS9kdW1teS5oCkBAIC02MzQsMTIgKzYzNCw2IEBAIHN0YXRpYyBYU01fSU5MSU5FIGlu dCB4c21faHZtX2luamVjdF9tc2koWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQpCiAg ICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7 CiB9CiAKLXN0YXRpYyBYU01fSU5MSU5FIGludCB4c21faHZtX2lvcmVxX3NlcnZlcihYU01fREVG QVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgaW50IG9wKQotewotICAgIFhTTV9BU1NFUlRfQUNU SU9OKFhTTV9ETV9QUklWKTsKLSAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwg Y3VycmVudC0+ZG9tYWluLCBkKTsKLX0KLQogc3RhdGljIFhTTV9JTkxJTkUgaW50IHhzbV9tZW1f c2hhcmluZ19vcChYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGRvbWFp biAqY2QsIGludCBvcCkKIHsKICAgICBYU01fQVNTRVJUX0FDVElPTihYU01fRE1fUFJJVik7CmRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94c20veHNtLmggYi94ZW4vaW5jbHVkZS94c20veHNtLmgK aW5kZXggZTJkMzM2Zi4uYjU4NDVhMiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveHNtL3hzbS5o CisrKyBiL3hlbi9pbmNsdWRlL3hzbS94c20uaApAQCAtMTY2LDcgKzE2Niw2IEBAIHN0cnVjdCB4 c21fb3BlcmF0aW9ucyB7CiAgICAgaW50ICgqaHZtX3NldF9pc2FfaXJxX2xldmVsKSAoc3RydWN0 IGRvbWFpbiAqZCk7CiAgICAgaW50ICgqaHZtX3NldF9wY2lfbGlua19yb3V0ZSkgKHN0cnVjdCBk b21haW4gKmQpOwogICAgIGludCAoKmh2bV9pbmplY3RfbXNpKSAoc3RydWN0IGRvbWFpbiAqZCk7 Ci0gICAgaW50ICgqaHZtX2lvcmVxX3NlcnZlcikgKHN0cnVjdCBkb21haW4gKmQsIGludCBvcCk7 CiAgICAgaW50ICgqbWVtX3NoYXJpbmdfb3ApIChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgZG9t YWluICpjZCwgaW50IG9wKTsKICAgICBpbnQgKCphcGljKSAoc3RydWN0IGRvbWFpbiAqZCwgaW50 IGNtZCk7CiAgICAgaW50ICgqbWVtdHlwZSkgKHVpbnQzMl90IGFjY2Vzcyk7CkBAIC02NTYsMTEg KzY1NSw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9odm1faW5qZWN0X21zaSAoeHNtX2RlZmF1 bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQpCiAgICAgcmV0dXJuIHhzbV9vcHMtPmh2bV9pbmpl Y3RfbXNpKGQpOwogfQogCi1zdGF0aWMgaW5saW5lIGludCB4c21faHZtX2lvcmVxX3NlcnZlciAo eHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQsIGludCBvcCkKLXsKLSAgICByZXR1 cm4geHNtX29wcy0+aHZtX2lvcmVxX3NlcnZlcihkLCBvcCk7Ci19Ci0KIHN0YXRpYyBpbmxpbmUg aW50IHhzbV9tZW1fc2hhcmluZ19vcCAoeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4g KmQsIHN0cnVjdCBkb21haW4gKmNkLCBpbnQgb3ApCiB7CiAgICAgcmV0dXJuIHhzbV9vcHMtPm1l bV9zaGFyaW5nX29wKGQsIGNkLCBvcCk7CmRpZmYgLS1naXQgYS94ZW4veHNtL2R1bW15LmMgYi94 ZW4veHNtL2R1bW15LmMKaW5kZXggYTA4MmIyOC4uZDU0NGVjMSAxMDA2NDQKLS0tIGEveGVuL3hz bS9kdW1teS5jCisrKyBiL3hlbi94c20vZHVtbXkuYwpAQCAtMTQ5LDcgKzE0OSw2IEBAIHZvaWQg X19pbml0IHhzbV9maXh1cF9vcHMgKHN0cnVjdCB4c21fb3BlcmF0aW9ucyAqb3BzKQogICAgIHNl dF90b19kdW1teV9pZl9udWxsKG9wcywgaHZtX3NldF9pc2FfaXJxX2xldmVsKTsKICAgICBzZXRf dG9fZHVtbXlfaWZfbnVsbChvcHMsIGh2bV9zZXRfcGNpX2xpbmtfcm91dGUpOwogICAgIHNldF90 b19kdW1teV9pZl9udWxsKG9wcywgaHZtX2luamVjdF9tc2kpOwotICAgIHNldF90b19kdW1teV9p Zl9udWxsKG9wcywgaHZtX2lvcmVxX3NlcnZlcik7CiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwo b3BzLCBtZW1fc2hhcmluZ19vcCk7CiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBhcGlj KTsKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIG1hY2hpbmVfbWVtb3J5X21hcCk7CmRp ZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMK aW5kZXggMzgzZGQ0Zi4uMWNlOGEzNiAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFzay9ob29rcy5j CisrKyBiL3hlbi94c20vZmxhc2svaG9va3MuYwpAQCAtMTUyNSwxMSArMTUyNSw2IEBAIHN0YXRp YyBpbnQgZmxhc2tfaHZtX2luamVjdF9tc2koc3RydWN0IGRvbWFpbiAqZCkKICAgICByZXR1cm4g Y3VycmVudF9oYXNfcGVybShkLCBTRUNDTEFTU19IVk0sIEhWTV9fU0VORF9JUlEpOwogfQogCi1z dGF0aWMgaW50IGZsYXNrX2h2bV9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwgaW50IG9w KQotewotICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0hWTSwgSFZNX19I Vk1DVEwpOwotfQotCiBzdGF0aWMgaW50IGZsYXNrX21lbV9zaGFyaW5nX29wKHN0cnVjdCBkb21h aW4gKmQsIHN0cnVjdCBkb21haW4gKmNkLCBpbnQgb3ApCiB7CiAgICAgaW50IHJjID0gY3VycmVu dF9oYXNfcGVybShjZCwgU0VDQ0xBU1NfSFZNLCBIVk1fX01FTV9TSEFSSU5HKTsKQEAgLTE4MDgs NyArMTgwMyw2IEBAIHN0YXRpYyBzdHJ1Y3QgeHNtX29wZXJhdGlvbnMgZmxhc2tfb3BzID0gewog ICAgIC5odm1fc2V0X2lzYV9pcnFfbGV2ZWwgPSBmbGFza19odm1fc2V0X2lzYV9pcnFfbGV2ZWws CiAgICAgLmh2bV9zZXRfcGNpX2xpbmtfcm91dGUgPSBmbGFza19odm1fc2V0X3BjaV9saW5rX3Jv dXRlLAogICAgIC5odm1faW5qZWN0X21zaSA9IGZsYXNrX2h2bV9pbmplY3RfbXNpLAotICAgIC5o dm1faW9yZXFfc2VydmVyID0gZmxhc2tfaHZtX2lvcmVxX3NlcnZlciwKICAgICAubWVtX3NoYXJp bmdfb3AgPSBmbGFza19tZW1fc2hhcmluZ19vcCwKICAgICAuYXBpYyA9IGZsYXNrX2FwaWMsCiAg ICAgLm1hY2hpbmVfbWVtb3J5X21hcCA9IGZsYXNrX21hY2hpbmVfbWVtb3J5X21hcCwKLS0gCjIu MS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==