From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 230F5C43444 for ; Thu, 17 Jan 2019 19:29:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9D6B620859 for ; Thu, 17 Jan 2019 19:29:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727672AbfAQT3z (ORCPT ); Thu, 17 Jan 2019 14:29:55 -0500 Received: from imap1.codethink.co.uk ([176.9.8.82]:55096 "EHLO imap1.codethink.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727692AbfAQT3z (ORCPT ); Thu, 17 Jan 2019 14:29:55 -0500 Received: from [167.98.27.226] (helo=xylophone) by imap1.codethink.co.uk with esmtpsa (Exim 4.84_2 #1 (Debian)) id 1gkDLM-0006fJ-Bl; Thu, 17 Jan 2019 19:28:48 +0000 Message-ID: <1547753327.3229.115.camel@codethink.co.uk> Subject: Security fixes for 4.4 - f2fs From: Ben Hutchings To: Greg Kroah-Hartman , Sasha Levin Cc: stable , linux-f2fs-devel@lists.sourceforge.net Date: Thu, 17 Jan 2019 19:28:47 +0000 Organization: Codethink Ltd. Content-Type: multipart/mixed; boundary="=-WrPIiQ6FdPH/ltDUIeMT" X-Mailer: Evolution 3.22.6-1+deb9u1 Mime-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org --=-WrPIiQ6FdPH/ltDUIeMT Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit I've backported fixes for several security issues involving filesystem validation in f2fs.  All of these are already fixed in the later stable branches. I tested with the reproducers where available.  I also checked for regressions with xfstests and didn't find any (but many tests fail with or without these changes). Ben. -- Ben Hutchings, Software Developer   Codethink Ltd https://www.codethink.co.uk/ Dale House, 35 Dale Street Manchester, M1 2HF, United Kingdom --=-WrPIiQ6FdPH/ltDUIeMT Content-Type: application/mbox; name="security-4.4-f2fs.mbox" Content-Disposition: attachment; filename="security-4.4-f2fs.mbox" Content-Transfer-Encoding: base64 RnJvbSA5MzU3Yzc4YzRkZDc3M2VmY2U3ODBlYjk4YjM2ZTFjMTUxY2I5ZjA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDaGFvIFl1IDxjaGFvMi55dUBzYW1zdW5nLmNvbT4KRGF0ZTog VHVlLCAxIERlYyAyMDE1IDExOjQzOjU5ICswODAwClN1YmplY3Q6IFtQQVRDSCAwMS8zNl0gZjJm czogY2xlYW4gdXAgYXJndW1lbnQgb2YgcmVjb3Zlcl9kYXRhCgpjb21taXQgYjc5NzNmMjM3OGM2 MTlkMGUxN2EwNzVmMTMzNTBiZDU4YTllYmUzZCB1cHN0cmVhbS4KCkluIHJlY292ZXJfZGF0YSwg dmFsdWUgb2YgYXJndW1lbnQgJ3R5cGUnIHdpbGwgYmUgQ1VSU0VHX1dBUk1fTk9ERSBhbGwKdGhl IHRpbWUsIHJlbW92ZSBpdCBmb3IgY2xlYW51cC4KClNpZ25lZC1vZmYtYnk6IENoYW8gWXUgPGNo YW8yLnl1QHNhbXN1bmcuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYWVnZXVrIEtpbSA8amFlZ2V1a0Br ZXJuZWwub3JnPgpbYndoOiBQaWNrZWQgYXMgZGVwZW5kZW5jeSBvZiBjb21taXQgNjc4MWVhYmJh MWJkICJmMmZzOiBnaXZlIC1FSU5WQUwgZm9yCiBub3JlY292ZXJ5IGFuZCBydyBtb3VudCJdClNp Z25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVr PgotLS0KIGZzL2YyZnMvcmVjb3ZlcnkuYyB8IDcgKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9mcy9mMmZzL3JlY292 ZXJ5LmMgYi9mcy9mMmZzL3JlY292ZXJ5LmMKaW5kZXggZTMyZjM0OWYzNDFiLi5jNmY1MDgyNTZm ZjQgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvcmVjb3ZlcnkuYworKysgYi9mcy9mMmZzL3JlY292ZXJ5 LmMKQEAgLTQ1OSw4ICs0NTksNyBAQCBvdXQ6CiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGlu dCByZWNvdmVyX2RhdGEoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAotCQkJCXN0cnVjdCBsaXN0 X2hlYWQgKmhlYWQsIGludCB0eXBlKQorc3RhdGljIGludCByZWNvdmVyX2RhdGEoc3RydWN0IGYy ZnNfc2JfaW5mbyAqc2JpLCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQogewogCXVuc2lnbmVkIGxv bmcgbG9uZyBjcF92ZXIgPSBjdXJfY3BfdmVyc2lvbihGMkZTX0NLUFQoc2JpKSk7CiAJc3RydWN0 IGN1cnNlZ19pbmZvICpjdXJzZWc7CkBAIC00NjksNyArNDY4LDcgQEAgc3RhdGljIGludCByZWNv dmVyX2RhdGEoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogCWJsb2NrX3QgYmxrYWRkcjsKIAog CS8qIGdldCBub2RlIHBhZ2VzIGluIHRoZSBjdXJyZW50IHNlZ21lbnQgKi8KLQljdXJzZWcgPSBD VVJTRUdfSShzYmksIHR5cGUpOworCWN1cnNlZyA9IENVUlNFR19JKHNiaSwgQ1VSU0VHX1dBUk1f Tk9ERSk7CiAJYmxrYWRkciA9IE5FWFRfRlJFRV9CTEtBRERSKHNiaSwgY3Vyc2VnKTsKIAogCXdo aWxlICgxKSB7CkBAIC01NTYsNyArNTU1LDcgQEAgaW50IHJlY292ZXJfZnN5bmNfZGF0YShzdHJ1 Y3QgZjJmc19zYl9pbmZvICpzYmkpCiAJbmVlZF93cml0ZWNwID0gdHJ1ZTsKIAogCS8qIHN0ZXAg IzI6IHJlY292ZXIgZGF0YSAqLwotCWVyciA9IHJlY292ZXJfZGF0YShzYmksICZpbm9kZV9saXN0 LCBDVVJTRUdfV0FSTV9OT0RFKTsKKwllcnIgPSByZWNvdmVyX2RhdGEoc2JpLCAmaW5vZGVfbGlz dCk7CiAJaWYgKCFlcnIpCiAJCWYyZnNfYnVnX29uKHNiaSwgIWxpc3RfZW1wdHkoJmlub2RlX2xp c3QpKTsKIG91dDoKCkZyb20gZjc2N2Q2MjZmNGZmNTc0MzZmNzY4YzRmNmQzMmU5M2ZmZTEwMzY3 YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2Vy bmVsLm9yZz4KRGF0ZTogU2F0LCAyIEphbiAyMDE2IDA5OjE5OjQxIC0wODAwClN1YmplY3Q6IFtQ QVRDSCAwMi8zNl0gZjJmczogY292ZXIgbW9yZSBhcmVhIHdpdGggbmF0X3RyZWVfbG9jawoKY29t bWl0IGE1MTMxMTkzOGUxNGMxN2Y1YTk0ZDMwYmFhYzlkN2JlYzcxZjU4NTggdXBzdHJlYW0uCgpU aGVyZSB3YXMgYSBzdWJ0bGUgYnVnIG9uIG5hdCBjYWNoZSBtYW5hZ2VtZW50IHdoaWNoIGluY3Vy cyB3cm9uZyBuaWQgYWxsb2NhdGlvbgpvciB3cm9uZyBibG9jayBhZGRyZXNzZXMgd2hlbiB0cnlf dG9fZnJlZV9uYXRzIGlzIHRyaWdnZXJlZCBoZWF2aWx5LgpUaGlzIHBhdGNoIGVubGFyZ2VzIHRo ZSBwcmV2aW91cyBjb3ZlcmFnZSBvZiBuYXRfdHJlZV9sb2NrIHRvIGF2b2lkIGRhdGEgcmFjZS4K ClNpZ25lZC1vZmYtYnk6IEphZWdldWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+ClNpZ25lZC1v ZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0K IGZzL2YyZnMvbm9kZS5jIHwgMjkgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9mcy9mMmZzL25vZGUuYyBiL2ZzL2YyZnMvbm9kZS5jCmluZGV4IDdiY2JjNmU5YzQwZC4uOGY2 Nzg0ZmFkOTE4IDEwMDY0NAotLS0gYS9mcy9mMmZzL25vZGUuYworKysgYi9mcy9mMmZzL25vZGUu YwpAQCAtMjYxLDEzICsyNjEsMTEgQEAgc3RhdGljIHZvaWQgY2FjaGVfbmF0X2VudHJ5KHN0cnVj dCBmMmZzX25tX2luZm8gKm5tX2ksIG5pZF90IG5pZCwKIHsKIAlzdHJ1Y3QgbmF0X2VudHJ5ICpl OwogCi0JZG93bl93cml0ZSgmbm1faS0+bmF0X3RyZWVfbG9jayk7CiAJZSA9IF9fbG9va3VwX25h dF9jYWNoZShubV9pLCBuaWQpOwogCWlmICghZSkgewogCQllID0gZ3JhYl9uYXRfZW50cnkobm1f aSwgbmlkKTsKIAkJbm9kZV9pbmZvX2Zyb21fcmF3X25hdCgmZS0+bmksIG5lKTsKIAl9Ci0JdXBf d3JpdGUoJm5tX2ktPm5hdF90cmVlX2xvY2spOwogfQogCiBzdGF0aWMgdm9pZCBzZXRfbm9kZV9h ZGRyKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IG5vZGVfaW5mbyAqbmksCkBAIC0z NzksNiArMzc3LDggQEAgdm9pZCBnZXRfbm9kZV9pbmZvKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNi aSwgbmlkX3QgbmlkLCBzdHJ1Y3Qgbm9kZV9pbmZvICpuaSkKIAogCW1lbXNldCgmbmUsIDAsIHNp emVvZihzdHJ1Y3QgZjJmc19uYXRfZW50cnkpKTsKIAorCWRvd25fd3JpdGUoJm5tX2ktPm5hdF90 cmVlX2xvY2spOworCiAJLyogQ2hlY2sgY3VycmVudCBzZWdtZW50IHN1bW1hcnkgKi8KIAltdXRl eF9sb2NrKCZjdXJzZWctPmN1cnNlZ19tdXRleCk7CiAJaSA9IGxvb2t1cF9qb3VybmFsX2luX2N1 cnN1bShzdW0sIE5BVF9KT1VSTkFMLCBuaWQsIDApOwpAQCAtMzk5LDYgKzM5OSw3IEBAIHZvaWQg Z2V0X25vZGVfaW5mbyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIG5pZF90IG5pZCwgc3RydWN0 IG5vZGVfaW5mbyAqbmkpCiBjYWNoZToKIAkvKiBjYWNoZSBuYXQgZW50cnkgKi8KIAljYWNoZV9u YXRfZW50cnkoTk1fSShzYmkpLCBuaWQsICZuZSk7CisJdXBfd3JpdGUoJm5tX2ktPm5hdF90cmVl X2xvY2spOwogfQogCiAvKgpAQCAtMTQ0MCwxMyArMTQ0MSwxMCBAQCBzdGF0aWMgaW50IGFkZF9m cmVlX25pZChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIG5pZF90IG5pZCwgYm9vbCBidWlsZCkK IAogCWlmIChidWlsZCkgewogCQkvKiBkbyBub3QgYWRkIGFsbG9jYXRlZCBuaWRzICovCi0JCWRv d25fcmVhZCgmbm1faS0+bmF0X3RyZWVfbG9jayk7CiAJCW5lID0gX19sb29rdXBfbmF0X2NhY2hl KG5tX2ksIG5pZCk7Ci0JCWlmIChuZSAmJgotCQkJKCFnZXRfbmF0X2ZsYWcobmUsIElTX0NIRUNL UE9JTlRFRCkgfHwKKwkJaWYgKG5lICYmICghZ2V0X25hdF9mbGFnKG5lLCBJU19DSEVDS1BPSU5U RUQpIHx8CiAJCQkJbmF0X2dldF9ibGthZGRyKG5lKSAhPSBOVUxMX0FERFIpKQogCQkJYWxsb2Nh dGVkID0gdHJ1ZTsKLQkJdXBfcmVhZCgmbm1faS0+bmF0X3RyZWVfbG9jayk7CiAJCWlmIChhbGxv Y2F0ZWQpCiAJCQlyZXR1cm4gMDsKIAl9CkBAIC0xNTMyLDYgKzE1MzAsOCBAQCBzdGF0aWMgdm9p ZCBidWlsZF9mcmVlX25pZHMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogCXJhX21ldGFfcGFn ZXMoc2JpLCBOQVRfQkxPQ0tfT0ZGU0VUKG5pZCksIEZSRUVfTklEX1BBR0VTLAogCQkJCQkJCU1F VEFfTkFULCB0cnVlKTsKIAorCWRvd25fcmVhZCgmbm1faS0+bmF0X3RyZWVfbG9jayk7CisKIAl3 aGlsZSAoMSkgewogCQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IGdldF9jdXJyZW50X25hdF9wYWdlKHNi aSwgbmlkKTsKIApAQCAtMTU2MCw2ICsxNTYwLDcgQEAgc3RhdGljIHZvaWQgYnVpbGRfZnJlZV9u aWRzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKIAkJCXJlbW92ZV9mcmVlX25pZChubV9pLCBu aWQpOwogCX0KIAltdXRleF91bmxvY2soJmN1cnNlZy0+Y3Vyc2VnX211dGV4KTsKKwl1cF9yZWFk KCZubV9pLT5uYXRfdHJlZV9sb2NrKTsKIAogCXJhX21ldGFfcGFnZXMoc2JpLCBOQVRfQkxPQ0tf T0ZGU0VUKG5tX2ktPm5leHRfc2Nhbl9uaWQpLAogCQkJCQlubV9pLT5yYV9uaWRfcGFnZXMsIE1F VEFfTkFULCBmYWxzZSk7CkBAIC0xODQyLDE0ICsxODQzLDEyIEBAIHN0YXRpYyB2b2lkIHJlbW92 ZV9uYXRzX2luX2pvdXJuYWwoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogCiAJCXJhd19uZSA9 IG5hdF9pbl9qb3VybmFsKHN1bSwgaSk7CiAKLQkJZG93bl93cml0ZSgmbm1faS0+bmF0X3RyZWVf bG9jayk7CiAJCW5lID0gX19sb29rdXBfbmF0X2NhY2hlKG5tX2ksIG5pZCk7CiAJCWlmICghbmUp IHsKIAkJCW5lID0gZ3JhYl9uYXRfZW50cnkobm1faSwgbmlkKTsKIAkJCW5vZGVfaW5mb19mcm9t X3Jhd19uYXQoJm5lLT5uaSwgJnJhd19uZSk7CiAJCX0KIAkJX19zZXRfbmF0X2NhY2hlX2RpcnR5 KG5tX2ksIG5lKTsKLQkJdXBfd3JpdGUoJm5tX2ktPm5hdF90cmVlX2xvY2spOwogCX0KIAl1cGRh dGVfbmF0c19pbl9jdXJzdW0oc3VtLCAtaSk7CiAJbXV0ZXhfdW5sb2NrKCZjdXJzZWctPmN1cnNl Z19tdXRleCk7CkBAIC0xODgzLDcgKzE4ODIsNiBAQCBzdGF0aWMgdm9pZCBfX2ZsdXNoX25hdF9l bnRyeV9zZXQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogCXN0cnVjdCBmMmZzX25hdF9ibG9j ayAqbmF0X2JsazsKIAlzdHJ1Y3QgbmF0X2VudHJ5ICpuZSwgKmN1cjsKIAlzdHJ1Y3QgcGFnZSAq cGFnZSA9IE5VTEw7Ci0Jc3RydWN0IGYyZnNfbm1faW5mbyAqbm1faSA9IE5NX0koc2JpKTsKIAog CS8qCiAJICogdGhlcmUgYXJlIHR3byBzdGVwcyB0byBmbHVzaCBuYXQgZW50cmllczoKQEAgLTE5 MjAsMTIgKzE5MTgsOCBAQCBzdGF0aWMgdm9pZCBfX2ZsdXNoX25hdF9lbnRyeV9zZXQoc3RydWN0 IGYyZnNfc2JfaW5mbyAqc2JpLAogCQkJcmF3X25lID0gJm5hdF9ibGstPmVudHJpZXNbbmlkIC0g c3RhcnRfbmlkXTsKIAkJfQogCQlyYXdfbmF0X2Zyb21fbm9kZV9pbmZvKHJhd19uZSwgJm5lLT5u aSk7Ci0KLQkJZG93bl93cml0ZSgmTk1fSShzYmkpLT5uYXRfdHJlZV9sb2NrKTsKIAkJbmF0X3Jl c2V0X2ZsYWcobmUpOwogCQlfX2NsZWFyX25hdF9jYWNoZV9kaXJ0eShOTV9JKHNiaSksIG5lKTsK LQkJdXBfd3JpdGUoJk5NX0koc2JpKS0+bmF0X3RyZWVfbG9jayk7Ci0KIAkJaWYgKG5hdF9nZXRf YmxrYWRkcihuZSkgPT0gTlVMTF9BRERSKQogCQkJYWRkX2ZyZWVfbmlkKHNiaSwgbmlkLCBmYWxz ZSk7CiAJfQpAQCAtMTkzNyw5ICsxOTMxLDcgQEAgc3RhdGljIHZvaWQgX19mbHVzaF9uYXRfZW50 cnlfc2V0KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKIAogCWYyZnNfYnVnX29uKHNiaSwgc2V0 LT5lbnRyeV9jbnQpOwogCi0JZG93bl93cml0ZSgmbm1faS0+bmF0X3RyZWVfbG9jayk7CiAJcmFk aXhfdHJlZV9kZWxldGUoJk5NX0koc2JpKS0+bmF0X3NldF9yb290LCBzZXQtPnNldCk7Ci0JdXBf d3JpdGUoJm5tX2ktPm5hdF90cmVlX2xvY2spOwogCWttZW1fY2FjaGVfZnJlZShuYXRfZW50cnlf c2V0X3NsYWIsIHNldCk7CiB9CiAKQEAgLTE5NTksNiArMTk1MSw5IEBAIHZvaWQgZmx1c2hfbmF0 X2VudHJpZXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogCiAJaWYgKCFubV9pLT5kaXJ0eV9u YXRfY250KQogCQlyZXR1cm47CisKKwlkb3duX3dyaXRlKCZubV9pLT5uYXRfdHJlZV9sb2NrKTsK KwogCS8qCiAJICogaWYgdGhlcmUgYXJlIG5vIGVub3VnaCBzcGFjZSBpbiBqb3VybmFsIHRvIHN0 b3JlIGRpcnR5IG5hdAogCSAqIGVudHJpZXMsIHJlbW92ZSBhbGwgZW50cmllcyBmcm9tIGpvdXJu YWwgYW5kIG1lcmdlIHRoZW0KQEAgLTE5NjcsNyArMTk2Miw2IEBAIHZvaWQgZmx1c2hfbmF0X2Vu dHJpZXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogCWlmICghX19oYXNfY3Vyc3VtX3NwYWNl KHN1bSwgbm1faS0+ZGlydHlfbmF0X2NudCwgTkFUX0pPVVJOQUwpKQogCQlyZW1vdmVfbmF0c19p bl9qb3VybmFsKHNiaSk7CiAKLQlkb3duX3dyaXRlKCZubV9pLT5uYXRfdHJlZV9sb2NrKTsKIAl3 aGlsZSAoKGZvdW5kID0gX19nYW5nX2xvb2t1cF9uYXRfc2V0KG5tX2ksCiAJCQkJCXNldF9pZHgs IFNFVFZFQ19TSVpFLCBzZXR2ZWMpKSkgewogCQl1bnNpZ25lZCBpZHg7CkBAIC0xOTc2LDEyICsx OTcwLDEzIEBAIHZvaWQgZmx1c2hfbmF0X2VudHJpZXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2Jp KQogCQkJX19hZGp1c3RfbmF0X2VudHJ5X3NldChzZXR2ZWNbaWR4XSwgJnNldHMsCiAJCQkJCQkJ TUFYX05BVF9KRU5UUklFUyhzdW0pKTsKIAl9Ci0JdXBfd3JpdGUoJm5tX2ktPm5hdF90cmVlX2xv Y2spOwogCiAJLyogZmx1c2ggZGlydHkgbmF0cyBpbiBuYXQgZW50cnkgc2V0ICovCiAJbGlzdF9m b3JfZWFjaF9lbnRyeV9zYWZlKHNldCwgdG1wLCAmc2V0cywgc2V0X2xpc3QpCiAJCV9fZmx1c2hf bmF0X2VudHJ5X3NldChzYmksIHNldCk7CiAKKwl1cF93cml0ZSgmbm1faS0+bmF0X3RyZWVfbG9j ayk7CisKIAlmMmZzX2J1Z19vbihzYmksIG5tX2ktPmRpcnR5X25hdF9jbnQpOwogfQogCgpGcm9t IDc1NWQyOTJhZmU2YTZlZGE0MmU5NzAxOTIxNjgyYTllMWE0ZWE1ZGMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFNoYXduIExpbiA8c2hhd24ubGluQHJvY2stY2hpcHMuY29tPgpEYXRl OiBXZWQsIDE3IEZlYiAyMDE2IDExOjI2OjMyICswODAwClN1YmplY3Q6IFtQQVRDSCAwMy8zNl0g ZjJmczogbW92ZSBzYW5pdHkgY2hlY2tpbmcgb2YgY3AgaW50bwogZ2V0X3ZhbGlkX2NoZWNrcG9p bnQKCmNvbW1pdCA5ODRlYzYzYzVhODJhMDdhZDQ0OTBlY2M2OWJlYmFjZDIzZjZmYTY0IHVwc3Ry ZWFtLgoKPkZyb20gdGhlIGZ1bmN0aW9uIG5hbWUgb2YgZ2V0X3ZhbGlkX2NoZWNrcG9pbnQsIGl0 IHNlZW1zIHRvIHJldHVybgp0aGUgdmFsaWQgY3Agb3IgTlVMTCBmb3IgY2FsbGVyIHRvIGNoZWNr LiBJZiBubyB2YWxpZCBvbmUgaXMgZm91bmQsCmYyZnNfZmlsbF9zdXBlciB3aWxsIHByaW50IHRo ZSBlcnIgbG9nLiBCdXQgaWYgZ2V0X3ZhbGlkX2NoZWNrcG9pbnQKZ2V0IG9uZSB2YWxpZCh0aGUg cmV0dXJuIHZhbHVlIGluZGljYXRlIHRoYXQgaXQncyB2YWxpZCwgaG93ZXZlciBhY3R1YWxseQpp dCBpcyBpbnZhbGlkIGFmdGVyIHNhbml0eSBjaGVja2luZyksIHRoZW4gcHJpbnQgYW5vdGhlciBz aW1pbGFyIGVycgpsb2cuIFRoYXQgc2VlbXMgc3RyYW5nZS4gTGV0J3Mga2VlcCBzYW5pdHkgY2hl Y2tpbmcgaW5zaWRlIHRoZSBwcm9jZWR1cmUKb2YgZ2V0aW5nIHZhbGlkIGNwLiBBbm90aGVyIGlt cHJvdmVtZW50IHdlIGdhaW5lZCBmcm9tIHRoaXMgbW92ZSBpcwp0aGF0IGV2ZW4gdGhlIGxhcmdl IHZvbHVtZSBpcyBzdXBwb3J0ZWQsIHdlIGNoZWNrIHRoZSBjcCBpbiBhZHZhbmNlZAp0byBza2lw IHRoZSBmb2xsb3dpbmcgcHJvY2VkdXJlIGlmIGZhaWxpbmcgdGhlIHNhbml0eSBjaGVja2luZy4K ClNpZ25lZC1vZmYtYnk6IFNoYXduIExpbiA8c2hhd24ubGluQHJvY2stY2hpcHMuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBKYWVnZXVrIEtpbSA8amFlZ2V1a0BrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5 OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51az4KLS0tCiBmcy9m MmZzL2NoZWNrcG9pbnQuYyB8ICA0ICsrKysKIGZzL2YyZnMvZjJmcy5oICAgICAgIHwgIDEgKwog ZnMvZjJmcy9zdXBlci5jICAgICAgfCAxMCArLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDYg aW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9mcy9mMmZzL2NoZWNr cG9pbnQuYyBiL2ZzL2YyZnMvY2hlY2twb2ludC5jCmluZGV4IGY2NjFkODA0NzRiZS4uYTYyMjFm NGZkNTgxIDEwMDY0NAotLS0gYS9mcy9mMmZzL2NoZWNrcG9pbnQuYworKysgYi9mcy9mMmZzL2No ZWNrcG9pbnQuYwpAQCAtNjk2LDYgKzY5NiwxMCBAQCBpbnQgZ2V0X3ZhbGlkX2NoZWNrcG9pbnQo c3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogCWNwX2Jsb2NrID0gKHN0cnVjdCBmMmZzX2NoZWNr cG9pbnQgKilwYWdlX2FkZHJlc3MoY3VyX3BhZ2UpOwogCW1lbWNweShzYmktPmNrcHQsIGNwX2Js b2NrLCBibGtfc2l6ZSk7CiAKKwkvKiBTYW5pdHkgY2hlY2tpbmcgb2YgY2hlY2twb2ludCAqLwor CWlmIChzYW5pdHlfY2hlY2tfY2twdChzYmkpKQorCQlnb3RvIGZhaWxfbm9fY3A7CisKIAlpZiAo Y3BfYmxrcyA8PSAxKQogCQlnb3RvIGRvbmU7CiAKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvZjJmcy5o IGIvZnMvZjJmcy9mMmZzLmgKaW5kZXggMjg3MTU3NmZiY2E0Li5iOWI5MzcwODMwYjQgMTAwNjQ0 Ci0tLSBhL2ZzL2YyZnMvZjJmcy5oCisrKyBiL2ZzL2YyZnMvZjJmcy5oCkBAIC0xNzE4LDYgKzE3 MTgsNyBAQCBpbnQgZjJmc19jb21taXRfc3VwZXIoc3RydWN0IGYyZnNfc2JfaW5mbyAqLCBib29s KTsKIGludCBmMmZzX3N5bmNfZnMoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCk7CiBleHRlcm4g X19wcmludGYoMywgNCkKIHZvaWQgZjJmc19tc2coc3RydWN0IHN1cGVyX2Jsb2NrICosIGNvbnN0 IGNoYXIgKiwgY29uc3QgY2hhciAqLCAuLi4pOworaW50IHNhbml0eV9jaGVja19ja3B0KHN0cnVj dCBmMmZzX3NiX2luZm8gKnNiaSk7CiAKIC8qCiAgKiBoYXNoLmMKZGlmZiAtLWdpdCBhL2ZzL2Yy ZnMvc3VwZXIuYyBiL2ZzL2YyZnMvc3VwZXIuYwppbmRleCAyZmZjNTNkMGM5YzcuLjg4YTc2OWQ3 MTljYSAxMDA2NDQKLS0tIGEvZnMvZjJmcy9zdXBlci5jCisrKyBiL2ZzL2YyZnMvc3VwZXIuYwpA QCAtMTA3Myw3ICsxMDczLDcgQEAgc3RhdGljIGludCBzYW5pdHlfY2hlY2tfcmF3X3N1cGVyKHN0 cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgc2FuaXR5 X2NoZWNrX2NrcHQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQoraW50IHNhbml0eV9jaGVja19j a3B0KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKIHsKIAl1bnNpZ25lZCBpbnQgdG90YWwsIGZz bWV0YTsKIAlzdHJ1Y3QgZjJmc19zdXBlcl9ibG9jayAqcmF3X3N1cGVyID0gRjJGU19SQVdfU1VQ RVIoc2JpKTsKQEAgLTEzNTgsMTMgKzEzNTgsNiBAQCB0cnlfb25lbW9yZToKIAkJZ290byBmcmVl X21ldGFfaW5vZGU7CiAJfQogCi0JLyogc2FuaXR5IGNoZWNraW5nIG9mIGNoZWNrcG9pbnQgKi8K LQllcnIgPSAtRUlOVkFMOwotCWlmIChzYW5pdHlfY2hlY2tfY2twdChzYmkpKSB7Ci0JCWYyZnNf bXNnKHNiLCBLRVJOX0VSUiwgIkludmFsaWQgRjJGUyBjaGVja3BvaW50Iik7Ci0JCWdvdG8gZnJl ZV9jcDsKLQl9Ci0KIAlzYmktPnRvdGFsX3ZhbGlkX25vZGVfY291bnQgPQogCQkJCWxlMzJfdG9f Y3B1KHNiaS0+Y2twdC0+dmFsaWRfbm9kZV9jb3VudCk7CiAJc2JpLT50b3RhbF92YWxpZF9pbm9k ZV9jb3VudCA9CkBAIC0xNTE3LDcgKzE1MTAsNiBAQCBmcmVlX25tOgogCWRlc3Ryb3lfbm9kZV9t YW5hZ2VyKHNiaSk7CiBmcmVlX3NtOgogCWRlc3Ryb3lfc2VnbWVudF9tYW5hZ2VyKHNiaSk7Ci1m cmVlX2NwOgogCWtmcmVlKHNiaS0+Y2twdCk7CiBmcmVlX21ldGFfaW5vZGU6CiAJbWFrZV9iYWRf aW5vZGUoc2JpLT5tZXRhX2lub2RlKTsKCkZyb20gNGY3ZmRmNjM0YjBlOTQ5MGRmMTY1OGFhY2Mz YWU3OTZlOTk2YTFmMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2hhbyBZdSA8Y2hh bzIueXVAc2Ftc3VuZy5jb20+CkRhdGU6IE1vbiwgMjIgRmViIDIwMTYgMTg6Mjk6MTggKzA4MDAK U3ViamVjdDogW1BBVENIIDA0LzM2XSBmMmZzOiBmaXggdG8gY29udmVydCBpbmxpbmUgZGlyZWN0 b3J5IGNvcnJlY3RseQoKV2l0aCBiZWxvdyBzZXJpYWxzLCB3ZSB3aWxsIGxvc2UgcGFydHMgb2Yg ZGlyZW50czoKCjEpIG1vdW50IGYyZnMgd2l0aCBpbmxpbmVfZGVudHJ5IG9wdGlvbgoyKSBlY2hv IDEgPiAvc3lzL2ZzL2YyZnMvc2RYL2Rpcl9sZXZlbAozKSBta2RpciBkaXIKNCkgdG91Y2ggMTgw IGZpbGVzIG5hbWVkIFsxLTE4MF0gaW4gZGlyCjUpIHRvdWNoIDE4MSBpbiBkaXIKNikgZWNobyAz ID4gL3Byb2Mvc3lzL3ZtL2Ryb3BfY2FjaGVzCjcpIGxsIGRpcgoKbHM6IGNhbm5vdCBhY2Nlc3Mg MjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpsczogY2Fubm90IGFjY2VzcyA0OiBObyBzdWNo IGZpbGUgb3IgZGlyZWN0b3J5CmxzOiBjYW5ub3QgYWNjZXNzIDU6IE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkKbHM6IGNhbm5vdCBhY2Nlc3MgNjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQps czogY2Fubm90IGFjY2VzcyA4OiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmxzOiBjYW5ub3Qg YWNjZXNzIDk6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLi4uCnRvdGFsIDM2MApkcnd4ci14 ci14IDIgcm9vdCByb290IDQwOTYgRmViIDE5IDE1OjEyIC4vCmRyd3hyLXhyLXggMyByb290IHJv b3QgNDA5NiBGZWIgMTkgMTU6MTEgLi4vCi1ydy1yLS1yLS0gMSByb290IHJvb3QgICAgMCBGZWIg MTkgMTU6MTIgMQotcnctci0tci0tIDEgcm9vdCByb290ICAgIDAgRmViIDE5IDE1OjEyIDEwCi1y dy1yLS1yLS0gMSByb290IHJvb3QgICAgMCBGZWIgMTkgMTU6MTIgMTAwCi0/Pz8/Pz8/Pz8gPyA/ ICAgID8gICAgICAgPyAgICAgICAgICAgID8gMTAxCi0/Pz8/Pz8/Pz8gPyA/ICAgID8gICAgICAg PyAgICAgICAgICAgID8gMTAyCi0/Pz8/Pz8/Pz8gPyA/ICAgID8gICAgICAgPyAgICAgICAgICAg ID8gMTAzCi4uLgoKVGhlIHJlYXNvbiBpczogd2hlbiBkb2luZyB0aGUgaW5saW5lIGRpciBjb252 ZXJzaW9uLCB3ZSBkaWRuJ3QgY29uc2lkZXIKdGhhdCBkaXJlY3RvcnkgaGFzIGhpZXJhcmNoaWNh bCBoYXNoIHN0cnVjdHVyZSB3aGljaCBjYW4gYmUgY29uZmlndXJlZAp0aHJvdWdoIHN5c2ZzIGlu dGVyZmFjZSAnZGlyX2xldmVsJy4KCkJ5IGRlZmF1bHQsIGRpcl9sZXZlbCBvZiBkaXJlY3Rvcnkg aW5vZGUgaXMgMCwgaXQgbWVhbnMgd2UgaGF2ZSBvbmUgYnVja2V0CmluIGhhc2ggdGFibGUgbG9j YXRlZCBpbiBmaXJzdCBsZXZlbCwgYWxsIGRpcmVudHMgd2lsbCBiZSBoYXNoZWQgaW4gdGhpcwpi dWNrZXQsIHNvIGl0IGhhcyBubyBwcm9ibGVtIGZvciB1cyB0byBkbyB0aGUgZHVwbGljYXRpb24g c2ltcGx5IGJldHdlZW4KaW5saW5lIGRlbnRyeSBwYWdlIGFuZCBjb252ZXJ0ZWQgbm9ybWFsIGRl bnRyeSBwYWdlLgoKSG93ZXZlciwgaWYgd2UgY29uZmlndXJlZCBkaXJfbGV2ZWwgd2l0aCB0aGUg dmFsdWUgTiAoZ3JlYXRlciB0aGFuIDApLCBpdAp3aWxsIGV4cGFuZCB0aGUgYnVja2V0IG51bWJl ciBvZiBmaXJzdCBsZXZlbCBoYXNoIHRhYmxlIGJ5IDJeTiAtIDEsIGl0Cmhhc2hzIGRpcmVudHMg aW50byBkaWZmZXJlbnQgYnVja2V0cyBhY2NvcmRpbmcgdGhlaXIgaGFzaCB2YWx1ZSwgaWYgd2UK c3RpbGwgbW92ZSBhbGwgZGlyZW50cyB0byBmaXJzdCBidWNrZXQsIGl0IG1ha2VzIGluY29ycmVu dCBsb2NhdGluZyBmb3IKaW5saW5lIGRpcmVudHMsIHRoZSByZXN1bHQgaXMsIGFsdGhvdWdoIHdl IGNhbiBpdGVyYXRlIGFsbCBkaXJlbnRzIHRocm91Z2gKLT5yZWFkZGlyLCB3ZSBjYW4ndCBzdGF0 IHNvbWUgb2YgdGhlbSBpbiAtPmxvb2t1cCB3aGljaCBiYXNlZCBvbiBoYXNoCnRhYmxlIHNlYXJj aGluZy4KClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1ZSBieSByZWhhc2hpbmcgZGlyZW50cyBp bnRvIGNvcnJlY3QgcG9zaXRpb24Kd2hlbiBjb252ZXJ0aW5nIGlubGluZSBkaXJlY3RvcnkuCgpT aWduZWQtb2ZmLWJ5OiBDaGFvIFl1IDxjaGFvMi55dUBzYW1zdW5nLmNvbT4KU2lnbmVkLW9mZi1i eTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2VybmVsLm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0 LjQ6CiAtIEtlZXAgdXNpbmcgZjJmc19jcnlwdG8gZnVuY3Rpb25zIGluc3RlYWQgb2YgZ2VuZXJp YyBmc2NyeXB0IEFQSQogLSBVc2UgcmVtb3ZlX2RpcnR5X2Rpcl9pbm9kZSgpIGluc3RlYWQgb2Yg cmVtb3ZlX2RpcnR5X2lub2RlKCkKIC0gQWRqdXN0IGNvbnRleHRdClNpZ25lZC1vZmYtYnk6IEJl biBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2YyZnMv ZGlyLmMgICAgICAgICAgIHwgODcgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiBmcy9mMmZzL2YyZnMuaCAgICAgICAgICB8ICA0ICsrLQogZnMvZjJmcy9pbmxp bmUuYyAgICAgICAgfCA5NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystCiBpbmNsdWRlL2xpbnV4L2YyZnNfZnMuaCB8ICAyICsrCiA0IGZpbGVzIGNoYW5n ZWQsIDE0NCBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9mcy9m MmZzL2Rpci5jIGIvZnMvZjJmcy9kaXIuYwppbmRleCA2MDk3MmE1NTk2ODUuLjkyYTI0MDYxNmY1 MiAxMDA2NDQKLS0tIGEvZnMvZjJmcy9kaXIuYworKysgYi9mcy9mMmZzL2Rpci5jCkBAIC00OCw3 ICs0OCw2IEBAIHVuc2lnbmVkIGNoYXIgZjJmc19maWxldHlwZV90YWJsZVtGMkZTX0ZUX01BWF0g PSB7CiAJW0YyRlNfRlRfU1lNTElOS10JPSBEVF9MTkssCiB9OwogCi0jZGVmaW5lIFNfU0hJRlQg MTIKIHN0YXRpYyB1bnNpZ25lZCBjaGFyIGYyZnNfdHlwZV9ieV9tb2RlW1NfSUZNVCA+PiBTX1NI SUZUXSA9IHsKIAlbU19JRlJFRyA+PiBTX1NISUZUXQk9IEYyRlNfRlRfUkVHX0ZJTEUsCiAJW1Nf SUZESVIgPj4gU19TSElGVF0JPSBGMkZTX0ZUX0RJUiwKQEAgLTY0LDYgKzYzLDEzIEBAIHZvaWQg c2V0X2RlX3R5cGUoc3RydWN0IGYyZnNfZGlyX2VudHJ5ICpkZSwgdW1vZGVfdCBtb2RlKQogCWRl LT5maWxlX3R5cGUgPSBmMmZzX3R5cGVfYnlfbW9kZVsobW9kZSAmIFNfSUZNVCkgPj4gU19TSElG VF07CiB9CiAKK3Vuc2lnbmVkIGNoYXIgZ2V0X2RlX3R5cGUoc3RydWN0IGYyZnNfZGlyX2VudHJ5 ICpkZSkKK3sKKwlpZiAoZGUtPmZpbGVfdHlwZSA8IEYyRlNfRlRfTUFYKQorCQlyZXR1cm4gZjJm c19maWxldHlwZV90YWJsZVtkZS0+ZmlsZV90eXBlXTsKKwlyZXR1cm4gRFRfVU5LTk9XTjsKK30K Kwogc3RhdGljIHVuc2lnbmVkIGxvbmcgZGlyX2Jsb2NrX2luZGV4KHVuc2lnbmVkIGludCBsZXZl bCwKIAkJCQlpbnQgZGlyX2xldmVsLCB1bnNpZ25lZCBpbnQgaWR4KQogewpAQCAtNTE5LDExICs1 MjUsNyBAQCB2b2lkIGYyZnNfdXBkYXRlX2RlbnRyeShuaWRfdCBpbm8sIHVtb2RlX3QgbW9kZSwg c3RydWN0IGYyZnNfZGVudHJ5X3B0ciAqZCwKIAkJdGVzdF9hbmRfc2V0X2JpdF9sZShiaXRfcG9z ICsgaSwgKHZvaWQgKilkLT5iaXRtYXApOwogfQogCi0vKgotICogQ2FsbGVyIHNob3VsZCBncmFi IGFuZCByZWxlYXNlIGEgcndzZW0gYnkgY2FsbGluZyBmMmZzX2xvY2tfb3AoKSBhbmQKLSAqIGYy ZnNfdW5sb2NrX29wKCkuCi0gKi8KLWludCBfX2YyZnNfYWRkX2xpbmsoc3RydWN0IGlub2RlICpk aXIsIGNvbnN0IHN0cnVjdCBxc3RyICpuYW1lLAoraW50IGYyZnNfYWRkX3JlZ3VsYXJfZW50cnko c3RydWN0IGlub2RlICpkaXIsIGNvbnN0IHN0cnVjdCBxc3RyICpuZXdfbmFtZSwKIAkJCQlzdHJ1 Y3QgaW5vZGUgKmlub2RlLCBuaWRfdCBpbm8sIHVtb2RlX3QgbW9kZSkKIHsKIAl1bnNpZ25lZCBp bnQgYml0X3BvczsKQEAgLTUzNiwyOCArNTM4LDExIEBAIGludCBfX2YyZnNfYWRkX2xpbmsoc3Ry dWN0IGlub2RlICpkaXIsIGNvbnN0IHN0cnVjdCBxc3RyICpuYW1lLAogCXN0cnVjdCBmMmZzX2Rl bnRyeV9ibG9jayAqZGVudHJ5X2JsayA9IE5VTEw7CiAJc3RydWN0IGYyZnNfZGVudHJ5X3B0ciBk OwogCXN0cnVjdCBwYWdlICpwYWdlID0gTlVMTDsKLQlzdHJ1Y3QgZjJmc19maWxlbmFtZSBmbmFt ZTsKLQlzdHJ1Y3QgcXN0ciBuZXdfbmFtZTsKLQlpbnQgc2xvdHMsIGVycjsKLQotCWVyciA9IGYy ZnNfZm5hbWVfc2V0dXBfZmlsZW5hbWUoZGlyLCBuYW1lLCAwLCAmZm5hbWUpOwotCWlmIChlcnIp Ci0JCXJldHVybiBlcnI7Ci0KLQluZXdfbmFtZS5uYW1lID0gZm5hbWVfbmFtZSgmZm5hbWUpOwot CW5ld19uYW1lLmxlbiA9IGZuYW1lX2xlbigmZm5hbWUpOwotCi0JaWYgKGYyZnNfaGFzX2lubGlu ZV9kZW50cnkoZGlyKSkgewotCQllcnIgPSBmMmZzX2FkZF9pbmxpbmVfZW50cnkoZGlyLCAmbmV3 X25hbWUsIGlub2RlLCBpbm8sIG1vZGUpOwotCQlpZiAoIWVyciB8fCBlcnIgIT0gLUVBR0FJTikK LQkJCWdvdG8gb3V0OwotCQllbHNlCi0JCQllcnIgPSAwOwotCX0KKwlpbnQgc2xvdHMsIGVyciA9 IDA7CiAKIAlsZXZlbCA9IDA7Ci0Jc2xvdHMgPSBHRVRfREVOVFJZX1NMT1RTKG5ld19uYW1lLmxl bik7Ci0JZGVudHJ5X2hhc2ggPSBmMmZzX2RlbnRyeV9oYXNoKCZuZXdfbmFtZSwgTlVMTCk7CisJ c2xvdHMgPSBHRVRfREVOVFJZX1NMT1RTKG5ld19uYW1lLT5sZW4pOworCWRlbnRyeV9oYXNoID0g ZjJmc19kZW50cnlfaGFzaChuZXdfbmFtZSwgTlVMTCk7CiAKIAljdXJyZW50X2RlcHRoID0gRjJG U19JKGRpciktPmlfY3VycmVudF9kZXB0aDsKIAlpZiAoRjJGU19JKGRpciktPmNoYXNoID09IGRl bnRyeV9oYXNoKSB7CkBAIC01NjYsMTAgKzU1MSw4IEBAIGludCBfX2YyZnNfYWRkX2xpbmsoc3Ry dWN0IGlub2RlICpkaXIsIGNvbnN0IHN0cnVjdCBxc3RyICpuYW1lLAogCX0KIAogc3RhcnQ6Ci0J aWYgKHVubGlrZWx5KGN1cnJlbnRfZGVwdGggPT0gTUFYX0RJUl9IQVNIX0RFUFRIKSkgewotCQll cnIgPSAtRU5PU1BDOwotCQlnb3RvIG91dDsKLQl9CisJaWYgKHVubGlrZWx5KGN1cnJlbnRfZGVw dGggPT0gTUFYX0RJUl9IQVNIX0RFUFRIKSkKKwkJcmV0dXJuIC1FTk9TUEM7CiAKIAkvKiBJbmNy ZWFzZSB0aGUgZGVwdGgsIGlmIHJlcXVpcmVkICovCiAJaWYgKGxldmVsID09IGN1cnJlbnRfZGVw dGgpCkBAIC01ODMsMTAgKzU2Niw4IEBAIHN0YXJ0OgogCiAJZm9yIChibG9jayA9IGJpZHg7IGJs b2NrIDw9IChiaWR4ICsgbmJsb2NrIC0gMSk7IGJsb2NrKyspIHsKIAkJZGVudHJ5X3BhZ2UgPSBn ZXRfbmV3X2RhdGFfcGFnZShkaXIsIE5VTEwsIGJsb2NrLCB0cnVlKTsKLQkJaWYgKElTX0VSUihk ZW50cnlfcGFnZSkpIHsKLQkJCWVyciA9IFBUUl9FUlIoZGVudHJ5X3BhZ2UpOwotCQkJZ290byBv dXQ7Ci0JCX0KKwkJaWYgKElTX0VSUihkZW50cnlfcGFnZSkpCisJCQlyZXR1cm4gUFRSX0VSUihk ZW50cnlfcGFnZSk7CiAKIAkJZGVudHJ5X2JsayA9IGttYXAoZGVudHJ5X3BhZ2UpOwogCQliaXRf cG9zID0gcm9vbV9mb3JfZmlsZW5hbWUoJmRlbnRyeV9ibGstPmRlbnRyeV9iaXRtYXAsCkBAIC02 MDYsNyArNTg3LDcgQEAgYWRkX2RlbnRyeToKIAogCWlmIChpbm9kZSkgewogCQlkb3duX3dyaXRl KCZGMkZTX0koaW5vZGUpLT5pX3NlbSk7Ci0JCXBhZ2UgPSBpbml0X2lub2RlX21ldGFkYXRhKGlu b2RlLCBkaXIsICZuZXdfbmFtZSwgTlVMTCk7CisJCXBhZ2UgPSBpbml0X2lub2RlX21ldGFkYXRh KGlub2RlLCBkaXIsIG5ld19uYW1lLCBOVUxMKTsKIAkJaWYgKElTX0VSUihwYWdlKSkgewogCQkJ ZXJyID0gUFRSX0VSUihwYWdlKTsKIAkJCWdvdG8gZmFpbDsKQEAgLTYxNiw3ICs1OTcsNyBAQCBh ZGRfZGVudHJ5OgogCX0KIAogCW1ha2VfZGVudHJ5X3B0cihOVUxMLCAmZCwgKHZvaWQgKilkZW50 cnlfYmxrLCAxKTsKLQlmMmZzX3VwZGF0ZV9kZW50cnkoaW5vLCBtb2RlLCAmZCwgJm5ld19uYW1l LCBkZW50cnlfaGFzaCwgYml0X3Bvcyk7CisJZjJmc191cGRhdGVfZGVudHJ5KGlubywgbW9kZSwg JmQsIG5ld19uYW1lLCBkZW50cnlfaGFzaCwgYml0X3Bvcyk7CiAKIAlzZXRfcGFnZV9kaXJ0eShk ZW50cnlfcGFnZSk7CiAKQEAgLTYzOCw3ICs2MTksMzQgQEAgZmFpbDoKIAl9CiAJa3VubWFwKGRl bnRyeV9wYWdlKTsKIAlmMmZzX3B1dF9wYWdlKGRlbnRyeV9wYWdlLCAxKTsKLW91dDoKKworCXJl dHVybiBlcnI7Cit9CisKKy8qCisgKiBDYWxsZXIgc2hvdWxkIGdyYWIgYW5kIHJlbGVhc2UgYSBy d3NlbSBieSBjYWxsaW5nIGYyZnNfbG9ja19vcCgpIGFuZAorICogZjJmc191bmxvY2tfb3AoKS4K KyAqLworaW50IF9fZjJmc19hZGRfbGluayhzdHJ1Y3QgaW5vZGUgKmRpciwgY29uc3Qgc3RydWN0 IHFzdHIgKm5hbWUsCisJCQkJc3RydWN0IGlub2RlICppbm9kZSwgbmlkX3QgaW5vLCB1bW9kZV90 IG1vZGUpCit7CisJc3RydWN0IGYyZnNfZmlsZW5hbWUgZm5hbWU7CisJc3RydWN0IHFzdHIgbmV3 X25hbWU7CisJaW50IGVycjsKKworCWVyciA9IGYyZnNfZm5hbWVfc2V0dXBfZmlsZW5hbWUoZGly LCBuYW1lLCAwLCAmZm5hbWUpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwluZXdfbmFt ZS5uYW1lID0gZm5hbWVfbmFtZSgmZm5hbWUpOworCW5ld19uYW1lLmxlbiA9IGZuYW1lX2xlbigm Zm5hbWUpOworCisJZXJyID0gLUVBR0FJTjsKKwlpZiAoZjJmc19oYXNfaW5saW5lX2RlbnRyeShk aXIpKQorCQllcnIgPSBmMmZzX2FkZF9pbmxpbmVfZW50cnkoZGlyLCAmbmV3X25hbWUsIGlub2Rl LCBpbm8sIG1vZGUpOworCWlmIChlcnIgPT0gLUVBR0FJTikKKwkJZXJyID0gZjJmc19hZGRfcmVn dWxhcl9lbnRyeShkaXIsICZuZXdfbmFtZSwgaW5vZGUsIGlubywgbW9kZSk7CisKIAlmMmZzX2Zu YW1lX2ZyZWVfZmlsZW5hbWUoJmZuYW1lKTsKIAlyZXR1cm4gZXJyOwogfQpAQCAtNzkyLDEwICs4 MDAsNyBAQCBib29sIGYyZnNfZmlsbF9kZW50cmllcyhzdHJ1Y3QgZGlyX2NvbnRleHQgKmN0eCwg c3RydWN0IGYyZnNfZGVudHJ5X3B0ciAqZCwKIAkJCWJyZWFrOwogCiAJCWRlID0gJmQtPmRlbnRy eVtiaXRfcG9zXTsKLQkJaWYgKGRlLT5maWxlX3R5cGUgPCBGMkZTX0ZUX01BWCkKLQkJCWRfdHlw ZSA9IGYyZnNfZmlsZXR5cGVfdGFibGVbZGUtPmZpbGVfdHlwZV07Ci0JCWVsc2UKLQkJCWRfdHlw ZSA9IERUX1VOS05PV047CisJCWRfdHlwZSA9IGdldF9kZV90eXBlKGRlKTsKIAogCQlkZV9uYW1l Lm5hbWUgPSBkLT5maWxlbmFtZVtiaXRfcG9zXTsKIAkJZGVfbmFtZS5sZW4gPSBsZTE2X3RvX2Nw dShkZS0+bmFtZV9sZW4pOwpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9mMmZzLmggYi9mcy9mMmZzL2Yy ZnMuaAppbmRleCBiOWI5MzcwODMwYjQuLjk2NDhkZGQyNTgzYiAxMDA2NDQKLS0tIGEvZnMvZjJm cy9mMmZzLmgKKysrIGIvZnMvZjJmcy9mMmZzLmgKQEAgLTE2NzcsNyArMTY3Nyw3IEBAIHN0cnVj dCBkZW50cnkgKmYyZnNfZ2V0X3BhcmVudChzdHJ1Y3QgZGVudHJ5ICpjaGlsZCk7CiAgKi8KIGV4 dGVybiB1bnNpZ25lZCBjaGFyIGYyZnNfZmlsZXR5cGVfdGFibGVbRjJGU19GVF9NQVhdOwogdm9p ZCBzZXRfZGVfdHlwZShzdHJ1Y3QgZjJmc19kaXJfZW50cnkgKiwgdW1vZGVfdCk7Ci0KK3Vuc2ln bmVkIGNoYXIgZ2V0X2RlX3R5cGUoc3RydWN0IGYyZnNfZGlyX2VudHJ5ICopOwogc3RydWN0IGYy ZnNfZGlyX2VudHJ5ICpmaW5kX3RhcmdldF9kZW50cnkoc3RydWN0IGYyZnNfZmlsZW5hbWUgKiwK IAkJCWYyZnNfaGFzaF90LCBpbnQgKiwgc3RydWN0IGYyZnNfZGVudHJ5X3B0ciAqKTsKIGJvb2wg ZjJmc19maWxsX2RlbnRyaWVzKHN0cnVjdCBkaXJfY29udGV4dCAqLCBzdHJ1Y3QgZjJmc19kZW50 cnlfcHRyICosCkBAIC0xNjk4LDYgKzE2OTgsOCBAQCB2b2lkIGYyZnNfc2V0X2xpbmsoc3RydWN0 IGlub2RlICosIHN0cnVjdCBmMmZzX2Rpcl9lbnRyeSAqLAogaW50IHVwZGF0ZV9kZW50X2lub2Rl KHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgaW5vZGUgKiwgY29uc3Qgc3RydWN0IHFzdHIgKik7CiB2 b2lkIGYyZnNfdXBkYXRlX2RlbnRyeShuaWRfdCBpbm8sIHVtb2RlX3QgbW9kZSwgc3RydWN0IGYy ZnNfZGVudHJ5X3B0ciAqLAogCQkJY29uc3Qgc3RydWN0IHFzdHIgKiwgZjJmc19oYXNoX3QgLCB1 bnNpZ25lZCBpbnQpOworaW50IGYyZnNfYWRkX3JlZ3VsYXJfZW50cnkoc3RydWN0IGlub2RlICos IGNvbnN0IHN0cnVjdCBxc3RyICosCisJCQkJCQlzdHJ1Y3QgaW5vZGUgKiwgbmlkX3QsIHVtb2Rl X3QpOwogaW50IF9fZjJmc19hZGRfbGluayhzdHJ1Y3QgaW5vZGUgKiwgY29uc3Qgc3RydWN0IHFz dHIgKiwgc3RydWN0IGlub2RlICosIG5pZF90LAogCQkJdW1vZGVfdCk7CiB2b2lkIGYyZnNfZGVs ZXRlX2VudHJ5KHN0cnVjdCBmMmZzX2Rpcl9lbnRyeSAqLCBzdHJ1Y3QgcGFnZSAqLCBzdHJ1Y3Qg aW5vZGUgKiwKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvaW5saW5lLmMgYi9mcy9mMmZzL2lubGluZS5j CmluZGV4IGFkODBmOTE2YjY0ZC4uMTIzYjRkYzkwYTIzIDEwMDY0NAotLS0gYS9mcy9mMmZzL2lu bGluZS5jCisrKyBiL2ZzL2YyZnMvaW5saW5lLmMKQEAgLTM2Nyw3ICszNjcsNyBAQCBpbnQgbWFr ZV9lbXB0eV9pbmxpbmVfZGlyKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBpbm9kZSAqcGFy ZW50LAogICogTk9URTogaXBhZ2UgaXMgZ3JhYmJlZCBieSBjYWxsZXIsIGJ1dCBpZiBhbnkgZXJy b3Igb2NjdXJzLCB3ZSBzaG91bGQKICAqIHJlbGVhc2UgaXBhZ2UgaW4gdGhpcyBmdW5jdGlvbi4K ICAqLwotc3RhdGljIGludCBmMmZzX2NvbnZlcnRfaW5saW5lX2RpcihzdHJ1Y3QgaW5vZGUgKmRp ciwgc3RydWN0IHBhZ2UgKmlwYWdlLAorc3RhdGljIGludCBmMmZzX21vdmVfaW5saW5lX2RpcmVu dHMoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBwYWdlICppcGFnZSwKIAkJCQlzdHJ1Y3QgZjJm c19pbmxpbmVfZGVudHJ5ICppbmxpbmVfZGVudHJ5KQogewogCXN0cnVjdCBwYWdlICpwYWdlOwpA QCAtNDI4LDYgKzQyOCw5OCBAQCBvdXQ6CiAJcmV0dXJuIGVycjsKIH0KIAorc3RhdGljIGludCBm MmZzX2FkZF9pbmxpbmVfZW50cmllcyhzdHJ1Y3QgaW5vZGUgKmRpciwKKwkJCXN0cnVjdCBmMmZz X2lubGluZV9kZW50cnkgKmlubGluZV9kZW50cnkpCit7CisJc3RydWN0IGYyZnNfZGVudHJ5X3B0 ciBkOworCXVuc2lnbmVkIGxvbmcgYml0X3BvcyA9IDA7CisJaW50IGVyciA9IDA7CisKKwltYWtl X2RlbnRyeV9wdHIoTlVMTCwgJmQsICh2b2lkICopaW5saW5lX2RlbnRyeSwgMik7CisKKwl3aGls ZSAoYml0X3BvcyA8IGQubWF4KSB7CisJCXN0cnVjdCBmMmZzX2Rpcl9lbnRyeSAqZGU7CisJCXN0 cnVjdCBxc3RyIG5ld19uYW1lOworCQluaWRfdCBpbm87CisJCXVtb2RlX3QgZmFrZV9tb2RlOwor CisJCWlmICghdGVzdF9iaXRfbGUoYml0X3BvcywgZC5iaXRtYXApKSB7CisJCQliaXRfcG9zKys7 CisJCQljb250aW51ZTsKKwkJfQorCisJCWRlID0gJmQuZGVudHJ5W2JpdF9wb3NdOworCQluZXdf bmFtZS5uYW1lID0gZC5maWxlbmFtZVtiaXRfcG9zXTsKKwkJbmV3X25hbWUubGVuID0gZGUtPm5h bWVfbGVuOworCisJCWlubyA9IGxlMzJfdG9fY3B1KGRlLT5pbm8pOworCQlmYWtlX21vZGUgPSBn ZXRfZGVfdHlwZShkZSkgPDwgU19TSElGVDsKKworCQllcnIgPSBmMmZzX2FkZF9yZWd1bGFyX2Vu dHJ5KGRpciwgJm5ld19uYW1lLCBOVUxMLAorCQkJCQkJCWlubywgZmFrZV9tb2RlKTsKKwkJaWYg KGVycikKKwkJCWdvdG8gcHVuY2hfZGVudHJ5X3BhZ2VzOworCisJCWlmICh1bmxpa2VseSghZGUt Pm5hbWVfbGVuKSkKKwkJCWQubWF4ID0gLTE7CisKKwkJYml0X3BvcyArPSBHRVRfREVOVFJZX1NM T1RTKGxlMTZfdG9fY3B1KGRlLT5uYW1lX2xlbikpOworCX0KKwlyZXR1cm4gMDsKK3B1bmNoX2Rl bnRyeV9wYWdlczoKKwl0cnVuY2F0ZV9pbm9kZV9wYWdlcygmZGlyLT5pX2RhdGEsIDApOworCXRy dW5jYXRlX2Jsb2NrcyhkaXIsIDAsIGZhbHNlKTsKKwlyZW1vdmVfZGlydHlfZGlyX2lub2RlKGRp cik7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBmMmZzX21vdmVfcmVoYXNoZWRfZGly ZW50cyhzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IHBhZ2UgKmlwYWdlLAorCQkJCXN0cnVjdCBm MmZzX2lubGluZV9kZW50cnkgKmlubGluZV9kZW50cnkpCit7CisJc3RydWN0IGYyZnNfaW5saW5l X2RlbnRyeSAqYmFja3VwX2RlbnRyeTsKKwlpbnQgZXJyOworCisJYmFja3VwX2RlbnRyeSA9IGtt YWxsb2Moc2l6ZW9mKHN0cnVjdCBmMmZzX2lubGluZV9kZW50cnkpLAorCQkJCQkJCUdGUF9GMkZT X1pFUk8pOworCWlmICghYmFja3VwX2RlbnRyeSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwltZW1j cHkoYmFja3VwX2RlbnRyeSwgaW5saW5lX2RlbnRyeSwgTUFYX0lOTElORV9EQVRBKTsKKwl0cnVu Y2F0ZV9pbmxpbmVfaW5vZGUoaXBhZ2UsIDApOworCisJdW5sb2NrX3BhZ2UoaXBhZ2UpOworCisJ ZXJyID0gZjJmc19hZGRfaW5saW5lX2VudHJpZXMoZGlyLCBiYWNrdXBfZGVudHJ5KTsKKwlpZiAo ZXJyKQorCQlnb3RvIHJlY292ZXI7CisKKwlsb2NrX3BhZ2UoaXBhZ2UpOworCisJc3RhdF9kZWNf aW5saW5lX2RpcihkaXIpOworCWNsZWFyX2lub2RlX2ZsYWcoRjJGU19JKGRpciksIEZJX0lOTElO RV9ERU5UUlkpOworCXVwZGF0ZV9pbm9kZShkaXIsIGlwYWdlKTsKKwlrZnJlZShiYWNrdXBfZGVu dHJ5KTsKKwlyZXR1cm4gMDsKK3JlY292ZXI6CisJbG9ja19wYWdlKGlwYWdlKTsKKwltZW1jcHko aW5saW5lX2RlbnRyeSwgYmFja3VwX2RlbnRyeSwgTUFYX0lOTElORV9EQVRBKTsKKwlpX3NpemVf d3JpdGUoZGlyLCBNQVhfSU5MSU5FX0RBVEEpOworCXVwZGF0ZV9pbm9kZShkaXIsIGlwYWdlKTsK KwlmMmZzX3B1dF9wYWdlKGlwYWdlLCAxKTsKKworCWtmcmVlKGJhY2t1cF9kZW50cnkpOworCXJl dHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgZjJmc19jb252ZXJ0X2lubGluZV9kaXIoc3RydWN0 IGlub2RlICpkaXIsIHN0cnVjdCBwYWdlICppcGFnZSwKKwkJCQlzdHJ1Y3QgZjJmc19pbmxpbmVf ZGVudHJ5ICppbmxpbmVfZGVudHJ5KQoreworCWlmICghRjJGU19JKGRpciktPmlfZGlyX2xldmVs KQorCQlyZXR1cm4gZjJmc19tb3ZlX2lubGluZV9kaXJlbnRzKGRpciwgaXBhZ2UsIGlubGluZV9k ZW50cnkpOworCWVsc2UKKwkJcmV0dXJuIGYyZnNfbW92ZV9yZWhhc2hlZF9kaXJlbnRzKGRpciwg aXBhZ2UsIGlubGluZV9kZW50cnkpOworfQorCiBpbnQgZjJmc19hZGRfaW5saW5lX2VudHJ5KHN0 cnVjdCBpbm9kZSAqZGlyLCBjb25zdCBzdHJ1Y3QgcXN0ciAqbmFtZSwKIAkJCXN0cnVjdCBpbm9k ZSAqaW5vZGUsIG5pZF90IGlubywgdW1vZGVfdCBtb2RlKQogewpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC9mMmZzX2ZzLmggYi9pbmNsdWRlL2xpbnV4L2YyZnNfZnMuaAppbmRleCAzZDZlNmNl NDRjNWMuLjFmODFlYmNjMjk0OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9mMmZzX2ZzLmgK KysrIGIvaW5jbHVkZS9saW51eC9mMmZzX2ZzLmgKQEAgLTQ5Nyw0ICs0OTcsNiBAQCBlbnVtIHsK IAlGMkZTX0ZUX01BWAogfTsKIAorI2RlZmluZSBTX1NISUZUIDEyCisKICNlbmRpZiAgLyogX0xJ TlVYX0YyRlNfRlNfSCAqLwoKRnJvbSA0Y2VhNGJlNmQ0NDAwMWFhOThhY2M2MTQzZmRlNjY5Yjli YjgzZDdhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWVnZXVrIEtpbSA8amFlZ2V1 a0BrZXJuZWwub3JnPgpEYXRlOiBXZWQsIDIzIE1hciAyMDE2IDE2OjEyOjU4IC0wNzAwClN1Ympl Y3Q6IFtQQVRDSCAwNS8zNl0gZjJmczogZ2l2ZSAtRUlOVkFMIGZvciBub3JlY292ZXJ5IGFuZCBy dyBtb3VudAoKY29tbWl0IDY3ODFlYWJiYTFiZGIxMzNlYjkxMjVjNGFjZjY3MDRjY2JlNGRmMDIg dXBzdHJlYW0uCgpPbmNlIGRldGVjdGluZyBzb21ldGhpbmcgdG8gcmVjb3ZlciwgZjJmcyBzaG91 bGQgc3RvcCBtb3VudGluZywgZ2l2ZW4gbm9yZWNvdmVyeQphbmQgcncgbW91bnQgb3B0aW9ucy4K ClNpZ25lZC1vZmYtYnk6IEphZWdldWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+ClNpZ25lZC1v ZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0K IGZzL2YyZnMvZjJmcy5oICAgICB8ICAyICstCiBmcy9mMmZzL3JlY292ZXJ5LmMgfCAxMSArKysr KysrLS0tLQogZnMvZjJmcy9zdXBlci5jICAgIHwgMTQgKysrKysrKysrKysrLS0KIDMgZmlsZXMg Y2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9m cy9mMmZzL2YyZnMuaCBiL2ZzL2YyZnMvZjJmcy5oCmluZGV4IDk2NDhkZGQyNTgzYi4uYzFkMDg2 ZmM3OWI1IDEwMDY0NAotLS0gYS9mcy9mMmZzL2YyZnMuaAorKysgYi9mcy9mMmZzL2YyZnMuaApA QCAtMTg2Nyw3ICsxODY3LDcgQEAgdm9pZCBidWlsZF9nY19tYW5hZ2VyKHN0cnVjdCBmMmZzX3Ni X2luZm8gKik7CiAvKgogICogcmVjb3ZlcnkuYwogICovCi1pbnQgcmVjb3Zlcl9mc3luY19kYXRh KHN0cnVjdCBmMmZzX3NiX2luZm8gKik7CitpbnQgcmVjb3Zlcl9mc3luY19kYXRhKHN0cnVjdCBm MmZzX3NiX2luZm8gKiwgYm9vbCk7CiBib29sIHNwYWNlX2Zvcl9yb2xsX2ZvcndhcmQoc3RydWN0 IGYyZnNfc2JfaW5mbyAqKTsKIAogLyoKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvcmVjb3ZlcnkuYyBi L2ZzL2YyZnMvcmVjb3ZlcnkuYwppbmRleCBjNmY1MDgyNTZmZjQuLmQxYTRlZWNlMjk5YSAxMDA2 NDQKLS0tIGEvZnMvZjJmcy9yZWNvdmVyeS5jCisrKyBiL2ZzL2YyZnMvcmVjb3ZlcnkuYwpAQCAt NTI0LDEyICs1MjQsMTMgQEAgbmV4dDoKIAlyZXR1cm4gZXJyOwogfQogCi1pbnQgcmVjb3Zlcl9m c3luY19kYXRhKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKK2ludCByZWNvdmVyX2ZzeW5jX2Rh dGEoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBib29sIGNoZWNrX29ubHkpCiB7CiAJc3RydWN0 IGN1cnNlZ19pbmZvICpjdXJzZWcgPSBDVVJTRUdfSShzYmksIENVUlNFR19XQVJNX05PREUpOwog CXN0cnVjdCBsaXN0X2hlYWQgaW5vZGVfbGlzdDsKIAlibG9ja190IGJsa2FkZHI7CiAJaW50IGVy cjsKKwlpbnQgcmV0ID0gMDsKIAlib29sIG5lZWRfd3JpdGVjcCA9IGZhbHNlOwogCiAJZnN5bmNf ZW50cnlfc2xhYiA9IGYyZnNfa21lbV9jYWNoZV9jcmVhdGUoImYyZnNfZnN5bmNfaW5vZGVfZW50 cnkiLApAQCAtNTQ2LDExICs1NDcsMTMgQEAgaW50IHJlY292ZXJfZnN5bmNfZGF0YShzdHJ1Y3Qg ZjJmc19zYl9pbmZvICpzYmkpCiAKIAkvKiBzdGVwICMxOiBmaW5kIGZzeW5jZWQgaW5vZGUgbnVt YmVycyAqLwogCWVyciA9IGZpbmRfZnN5bmNfZG5vZGVzKHNiaSwgJmlub2RlX2xpc3QpOwotCWlm IChlcnIpCisJaWYgKGVyciB8fCBsaXN0X2VtcHR5KCZpbm9kZV9saXN0KSkKIAkJZ290byBvdXQ7 CiAKLQlpZiAobGlzdF9lbXB0eSgmaW5vZGVfbGlzdCkpCisJaWYgKGNoZWNrX29ubHkpIHsKKwkJ cmV0ID0gMTsKIAkJZ290byBvdXQ7CisJfQogCiAJbmVlZF93cml0ZWNwID0gdHJ1ZTsKIApAQCAt NTk4LDUgKzYwMSw1IEBAIG91dDoKIAl9IGVsc2UgewogCQltdXRleF91bmxvY2soJnNiaS0+Y3Bf bXV0ZXgpOwogCX0KLQlyZXR1cm4gZXJyOworCXJldHVybiByZXQgPyByZXQ6IGVycjsKIH0KZGlm ZiAtLWdpdCBhL2ZzL2YyZnMvc3VwZXIuYyBiL2ZzL2YyZnMvc3VwZXIuYwppbmRleCA4OGE3Njlk NzE5Y2EuLjNkNWM4YTYwYWM2ZSAxMDA2NDQKLS0tIGEvZnMvZjJmcy9zdXBlci5jCisrKyBiL2Zz L2YyZnMvc3VwZXIuYwpAQCAtMTQ1NywxNCArMTQ1NywyNCBAQCB0cnlfb25lbW9yZToKIAkJaWYg KG5lZWRfZnNjaykKIAkJCXNldF9zYmlfZmxhZyhzYmksIFNCSV9ORUVEX0ZTQ0spOwogCi0JCWVy ciA9IHJlY292ZXJfZnN5bmNfZGF0YShzYmkpOwotCQlpZiAoZXJyKSB7CisJCWVyciA9IHJlY292 ZXJfZnN5bmNfZGF0YShzYmksIGZhbHNlKTsKKwkJaWYgKGVyciA8IDApIHsKIAkJCW5lZWRfZnNj ayA9IHRydWU7CiAJCQlmMmZzX21zZyhzYiwgS0VSTl9FUlIsCiAJCQkJIkNhbm5vdCByZWNvdmVy IGFsbCBmc3luYyBkYXRhIGVycm5vPSVsZCIsIGVycik7CiAJCQlnb3RvIGZyZWVfa29iajsKIAkJ fQorCX0gZWxzZSB7CisJCWVyciA9IHJlY292ZXJfZnN5bmNfZGF0YShzYmksIHRydWUpOworCisJ CWlmICghZjJmc19yZWFkb25seShzYikgJiYgZXJyID4gMCkgeworCQkJZXJyID0gLUVJTlZBTDsK KwkJCWYyZnNfbXNnKHNiLCBLRVJOX0VSUiwKKwkJCQkiTmVlZCB0byByZWNvdmVyIGZzeW5jIGRh dGEiKTsKKwkJCWdvdG8gZnJlZV9rb2JqOworCQl9CiAJfQorCiAJLyogcmVjb3Zlcl9mc3luY19k YXRhKCkgY2xlYXJlZCB0aGlzIGFscmVhZHkgKi8KIAljbGVhcl9zYmlfZmxhZyhzYmksIFNCSV9Q T1JfRE9JTkcpOwogCgpGcm9tIDlhZmM5NWZiNDYxZTFkZDcyZTY5N2M1NDg2NjI2ZGZhZWY4YjU4 NjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEphZWdldWsgS2ltIDxqYWVnZXVrQGtl cm5lbC5vcmc+CkRhdGU6IFdlZCwgNCBNYXkgMjAxNiAwOTo1ODoxMCAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggMDYvMzZdIGYyZnM6IHJlbW92ZSBhbiBvYnNvbGV0ZSB2YXJpYWJsZQoKY29tbWl0IGZi NThhZTIyMDY3ZTA1OTVkOTc0ZTNkODU2NTIyYzFlZDZkMmQ3YmYgdXBzdHJlYW0uCgpUaGlzIHBh dGNoIHJlbW92ZXMgYW4gb2Jzb2xldGUgdmFyaWFibGUgdXNlZCBpbiBhZGRfZnJlZV9uaWQuCgpT aWduZWQtb2ZmLWJ5OiBKYWVnZXVrIEtpbSA8amFlZ2V1a0BrZXJuZWwub3JnPgpbYndoOiBQaWNr ZWQgYXMgZGVwZW5kZW5jeSBvZiBjb21taXQgMzBhNjFkZGY4MTE3ICJmMmZzOiBmaXggcmFjZSBj b25kaXRpb24KIGluIGJldHdlZW4gZnJlZSBuaWQgYWxsb2NhdG9yL2luaXRpYWxpemVyIl0KU2ln bmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+ Ci0tLQogZnMvZjJmcy9ub2RlLmMgfCAzIC0tLQogMSBmaWxlIGNoYW5nZWQsIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9ub2RlLmMgYi9mcy9mMmZzL25vZGUuYwppbmRleCA4 ZjY3ODRmYWQ5MTguLmNlZDJhZmQ4ZTNmMiAxMDA2NDQKLS0tIGEvZnMvZjJmcy9ub2RlLmMKKysr IGIvZnMvZjJmcy9ub2RlLmMKQEAgLTE0MzAsNyArMTQzMCw2IEBAIHN0YXRpYyBpbnQgYWRkX2Zy ZWVfbmlkKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgbmlkX3QgbmlkLCBib29sIGJ1aWxkKQog CXN0cnVjdCBmMmZzX25tX2luZm8gKm5tX2kgPSBOTV9JKHNiaSk7CiAJc3RydWN0IGZyZWVfbmlk ICppOwogCXN0cnVjdCBuYXRfZW50cnkgKm5lOwotCWJvb2wgYWxsb2NhdGVkID0gZmFsc2U7CiAK IAlpZiAoIWF2YWlsYWJsZV9mcmVlX21lbW9yeShzYmksIEZSRUVfTklEUykpCiAJCXJldHVybiAt MTsKQEAgLTE0NDQsOCArMTQ0Myw2IEBAIHN0YXRpYyBpbnQgYWRkX2ZyZWVfbmlkKHN0cnVjdCBm MmZzX3NiX2luZm8gKnNiaSwgbmlkX3QgbmlkLCBib29sIGJ1aWxkKQogCQluZSA9IF9fbG9va3Vw X25hdF9jYWNoZShubV9pLCBuaWQpOwogCQlpZiAobmUgJiYgKCFnZXRfbmF0X2ZsYWcobmUsIElT X0NIRUNLUE9JTlRFRCkgfHwKIAkJCQluYXRfZ2V0X2Jsa2FkZHIobmUpICE9IE5VTExfQUREUikp Ci0JCQlhbGxvY2F0ZWQgPSB0cnVlOwotCQlpZiAoYWxsb2NhdGVkKQogCQkJcmV0dXJuIDA7CiAJ fQogCgpGcm9tIGI0MTY3ZTk3NDA1N2Y4NGU3OGIxZTVjYzgxNGY5ZWJmODNjYWM5ODUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IENoYW8gWXUgPHl1Y2hhbzBAaHVhd2VpLmNvbT4KRGF0 ZTogRnJpLCAyOSBBcHIgMjAxNiAyMDoxMzozNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMzZd IGYyZnM6IGZhY3RvciBvdXQgZnN5bmMgaW5vZGUgZW50cnkgb3BlcmF0aW9ucwoKY29tbWl0IDNm OGFiMjcwODU1YjBiNDYxOTk1ZGE1ZGM0OGRjZTk0NjFjODVkOTQgdXBzdHJlYW0uCgpGYWN0b3Ig b3V0IGZzeW5jIGlub2RlIGVudHJ5IG9wZXJhdGlvbnMgaW50byB7YWRkLGRlbH1fZnN5bmNfaW5v ZGUuCgpTaWduZWQtb2ZmLWJ5OiBDaGFvIFl1IDx5dWNoYW8wQGh1YXdlaS5jb20+ClNpZ25lZC1v ZmYtYnk6IEphZWdldWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IEJl biBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2YyZnMv cmVjb3ZlcnkuYyB8IDU5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDIxIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvcmVjb3ZlcnkuYyBiL2ZzL2YyZnMvcmVjb3Zl cnkuYwppbmRleCBkMWE0ZWVjZTI5OWEuLjg5MDBjMjk5ZGUwMiAxMDA2NDQKLS0tIGEvZnMvZjJm cy9yZWNvdmVyeS5jCisrKyBiL2ZzL2YyZnMvcmVjb3ZlcnkuYwpAQCAtNjcsNiArNjcsMjggQEAg c3RhdGljIHN0cnVjdCBmc3luY19pbm9kZV9lbnRyeSAqZ2V0X2ZzeW5jX2lub2RlKHN0cnVjdCBs aXN0X2hlYWQgKmhlYWQsCiAJcmV0dXJuIE5VTEw7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgZnN5bmNf aW5vZGVfZW50cnkgKmFkZF9mc3luY19pbm9kZShzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLAorCQkJ CQkJCXN0cnVjdCBpbm9kZSAqaW5vZGUpCit7CisJc3RydWN0IGZzeW5jX2lub2RlX2VudHJ5ICpl bnRyeTsKKworCWVudHJ5ID0ga21lbV9jYWNoZV9hbGxvYyhmc3luY19lbnRyeV9zbGFiLCBHRlBf RjJGU19aRVJPKTsKKwlpZiAoIWVudHJ5KQorCQlyZXR1cm4gTlVMTDsKKworCWVudHJ5LT5pbm9k ZSA9IGlub2RlOworCWxpc3RfYWRkX3RhaWwoJmVudHJ5LT5saXN0LCBoZWFkKTsKKworCXJldHVy biBlbnRyeTsKK30KKworc3RhdGljIHZvaWQgZGVsX2ZzeW5jX2lub2RlKHN0cnVjdCBmc3luY19p bm9kZV9lbnRyeSAqZW50cnkpCit7CisJaXB1dChlbnRyeS0+aW5vZGUpOworCWxpc3RfZGVsKCZl bnRyeS0+bGlzdCk7CisJa21lbV9jYWNoZV9mcmVlKGZzeW5jX2VudHJ5X3NsYWIsIGVudHJ5KTsK K30KKwogc3RhdGljIGludCByZWNvdmVyX2RlbnRyeShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1 Y3QgcGFnZSAqaXBhZ2UpCiB7CiAJc3RydWN0IGYyZnNfaW5vZGUgKnJhd19pbm9kZSA9IEYyRlNf SU5PREUoaXBhZ2UpOwpAQCAtMTcyLDYgKzE5NCw3IEBAIHN0YXRpYyBpbnQgZmluZF9mc3luY19k bm9kZXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQog ewogCXVuc2lnbmVkIGxvbmcgbG9uZyBjcF92ZXIgPSBjdXJfY3BfdmVyc2lvbihGMkZTX0NLUFQo c2JpKSk7CiAJc3RydWN0IGN1cnNlZ19pbmZvICpjdXJzZWc7CisJc3RydWN0IGlub2RlICppbm9k ZTsKIAlzdHJ1Y3QgcGFnZSAqcGFnZSA9IE5VTEw7CiAJYmxvY2tfdCBibGthZGRyOwogCWludCBl cnIgPSAwOwpAQCAtMjA0LDI3ICsyMjcsMjcgQEAgc3RhdGljIGludCBmaW5kX2ZzeW5jX2Rub2Rl cyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCiAJCQkJ CWJyZWFrOwogCQkJfQogCi0JCQkvKiBhZGQgdGhpcyBmc3luYyBpbm9kZSB0byB0aGUgbGlzdCAq LwotCQkJZW50cnkgPSBrbWVtX2NhY2hlX2FsbG9jKGZzeW5jX2VudHJ5X3NsYWIsIEdGUF9GMkZT X1pFUk8pOwotCQkJaWYgKCFlbnRyeSkgewotCQkJCWVyciA9IC1FTk9NRU07Ci0JCQkJYnJlYWs7 Ci0JCQl9CiAJCQkvKgogCQkJICogQ1AgfCBkbm9kZShGKSB8IGlub2RlKERGKQogCQkJICogRm9y IHRoaXMgY2FzZSwgd2Ugc2hvdWxkIG5vdCBnaXZlIHVwIG5vdy4KIAkJCSAqLwotCQkJZW50cnkt Pmlub2RlID0gZjJmc19pZ2V0KHNiaS0+c2IsIGlub19vZl9ub2RlKHBhZ2UpKTsKLQkJCWlmIChJ U19FUlIoZW50cnktPmlub2RlKSkgewotCQkJCWVyciA9IFBUUl9FUlIoZW50cnktPmlub2RlKTsK LQkJCQlrbWVtX2NhY2hlX2ZyZWUoZnN5bmNfZW50cnlfc2xhYiwgZW50cnkpOworCQkJaW5vZGUg PSBmMmZzX2lnZXQoc2JpLT5zYiwgaW5vX29mX25vZGUocGFnZSkpOworCQkJaWYgKElTX0VSUihp bm9kZSkpIHsKKwkJCQllcnIgPSBQVFJfRVJSKGlub2RlKTsKIAkJCQlpZiAoZXJyID09IC1FTk9F TlQpIHsKIAkJCQkJZXJyID0gMDsKIAkJCQkJZ290byBuZXh0OwogCQkJCX0KIAkJCQlicmVhazsK IAkJCX0KLQkJCWxpc3RfYWRkX3RhaWwoJmVudHJ5LT5saXN0LCBoZWFkKTsKKworCQkJLyogYWRk IHRoaXMgZnN5bmMgaW5vZGUgdG8gdGhlIGxpc3QgKi8KKwkJCWVudHJ5ID0gYWRkX2ZzeW5jX2lu b2RlKGhlYWQsIGlub2RlKTsKKwkJCWlmICghZW50cnkpIHsKKwkJCQllcnIgPSAtRU5PTUVNOwor CQkJCWlwdXQoaW5vZGUpOworCQkJCWJyZWFrOworCQkJfQogCQl9CiAJCWVudHJ5LT5ibGthZGRy ID0gYmxrYWRkcjsKIApAQCAtMjQ4LDExICsyNzEsOCBAQCBzdGF0aWMgdm9pZCBkZXN0cm95X2Zz eW5jX2Rub2RlcyhzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQogewogCXN0cnVjdCBmc3luY19pbm9k ZV9lbnRyeSAqZW50cnksICp0bXA7CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZW50cnks IHRtcCwgaGVhZCwgbGlzdCkgewotCQlpcHV0KGVudHJ5LT5pbm9kZSk7Ci0JCWxpc3RfZGVsKCZl bnRyeS0+bGlzdCk7Ci0JCWttZW1fY2FjaGVfZnJlZShmc3luY19lbnRyeV9zbGFiLCBlbnRyeSk7 Ci0JfQorCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShlbnRyeSwgdG1wLCBoZWFkLCBsaXN0KQor CQlkZWxfZnN5bmNfaW5vZGUoZW50cnkpOwogfQogCiBzdGF0aWMgaW50IGNoZWNrX2luZGV4X2lu X3ByZXZfbm9kZXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLApAQCAtNTA5LDExICs1MjksOCBA QCBzdGF0aWMgaW50IHJlY292ZXJfZGF0YShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHN0cnVj dCBsaXN0X2hlYWQgKmhlYWQpCiAJCQlicmVhazsKIAkJfQogCi0JCWlmIChlbnRyeS0+YmxrYWRk ciA9PSBibGthZGRyKSB7Ci0JCQlpcHV0KGVudHJ5LT5pbm9kZSk7Ci0JCQlsaXN0X2RlbCgmZW50 cnktPmxpc3QpOwotCQkJa21lbV9jYWNoZV9mcmVlKGZzeW5jX2VudHJ5X3NsYWIsIGVudHJ5KTsK LQkJfQorCQlpZiAoZW50cnktPmJsa2FkZHIgPT0gYmxrYWRkcikKKwkJCWRlbF9mc3luY19pbm9k ZShlbnRyeSk7CiBuZXh0OgogCQkvKiBjaGVjayBuZXh0IHNlZ21lbnQgKi8KIAkJYmxrYWRkciA9 IG5leHRfYmxrYWRkcl9vZl9ub2RlKHBhZ2UpOwoKRnJvbSBkMzY3YjBmZDhhMzE1MzA0NmFhNTEw ZWEwOWM5N2MxNWRmM2UxYjZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaGFvIFl1 IDx5dWNoYW8wQGh1YXdlaS5jb20+CkRhdGU6IFNhdCwgNyBNYXkgMjAxNiAxNjoxNTowNSArMDgw MApTdWJqZWN0OiBbUEFUQ0ggMDgvMzZdIGYyZnM6IGZpeCBpbm9kZSBjYWNoZSBsZWFrCgpjb21t aXQgZjYxY2NlNWI4MWY5MWJhMzM2MTg0MDA4YjI0YmFlYzg0YWZiYjNkZCB1cHN0cmVhbS4KCldo ZW4gdGVzdGluZyBmMmZzIHdpdGggaW5saW5lX2RlbnRyeSBvcHRpb24sIGdlbmVyaWMvMzQyIHJl cG9ydHM6ClZGUzogQnVzeSBpbm9kZXMgYWZ0ZXIgdW5tb3VudCBvZiBkbS0wLiBTZWxmLWRlc3Ry dWN0IGluIDUgc2Vjb25kcy4gIEhhdmUgYSBuaWNlIGRheS4uLgoKQWZ0ZXIgcm1tb2QgZjJmcyBt b2R1bGUsIGtlbnJlbCBzaG93cyBmb2xsb3dpbmcgZG1lc2c6CiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogQlVHIGYyZnNfaW5vZGVfY2FjaGUgKFRhaW50ZWQ6IEcgICAgICAgICAgIE8gICApOiBPYmpl Y3RzIHJlbWFpbmluZyBpbiBmMmZzX2lub2RlX2NhY2hlIG9uIF9fa21lbV9jYWNoZV9zaHV0ZG93 bigpCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIERpc2FibGluZyBsb2NrIGRlYnVnZ2luZyBkdWUg dG8ga2VybmVsIHRhaW50CiBJTkZPOiBTbGFiIDB4ZjUxY2EwZTAgb2JqZWN0cz0yMiB1c2VkPTEg ZnA9MHhkMWU2ZmM2MCBmbGFncz0weDQwMDA0MDgwCiBDUFU6IDMgUElEOiA3NDU1IENvbW06IHJt bW9kIFRhaW50ZWQ6IEcgICAgQiAgICAgIE8gICAgNC42LjAtcmM0KyAjMTYKIEhhcmR3YXJlIG5h bWU6IGlubm90ZWsgR21iSCBWaXJ0dWFsQm94L1ZpcnR1YWxCb3gsIEJJT1MgVmlydHVhbEJveCAx Mi8wMS8yMDA2CiAgMDAwMDAwODYgMDAwMDAwODYgZDA2MmZlMTggYzEzYTgzYTAgZjUxY2EwZTAg ZDA2MmZlMzggZDA2MmZlYTQgYzExYzcyNzYKICBjMTk4MTA0MCBmNTFjYTBlMCAwMDAwMDAxNiAw MDAwMDAwMSBkMWU2ZmM2MCA0MDAwNDA4MCA2NTZhNjI0ZiAyMDczNzQ2MwogIDYxNmQ2NTcyIDZl Njk2ZTY5IDZlNjkyMDY3IDY2MzI2NjIwIDZlNjk1ZjczIDVmNjU2NDZmIDY4NjM2MTYzIDZlNmYy MDY1CiBDYWxsIFRyYWNlOgogIFs8YzEzYTgzYTA+XSBkdW1wX3N0YWNrKzB4NWYvMHg4ZgogIFs8 YzExYzcyNzY+XSBzbGFiX2VycisweDc2LzB4ODAKICBbPGMxMWNiZmMwPl0gPyBfX2ttZW1fY2Fj aGVfc2h1dGRvd24rMHgxMDAvMHgyZjAKICBbPGMxMWNiZmMwPl0gPyBfX2ttZW1fY2FjaGVfc2h1 dGRvd24rMHgxMDAvMHgyZjAKICBbPGMxMWNiZmU1Pl0gX19rbWVtX2NhY2hlX3NodXRkb3duKzB4 MTI1LzB4MmYwCiAgWzxjMTE5OGEzOD5dIGttZW1fY2FjaGVfZGVzdHJveSsweDE1OC8weDFmMAog IFs8YzE3NmI0M2Q+XSA/IG11dGV4X3VubG9jaysweGQvMHgxMAogIFs8ZjhmMTVhYTM+XSBleGl0 X2YyZnNfZnMrMHg0Yi8weDVhOCBbZjJmc10KICBbPGMxMGY1OTZjPl0gU3lTX2RlbGV0ZV9tb2R1 bGUrMHgxNmMvMHgxZDAKICBbPGMxMDAxYjEwPl0gPyBkb19mYXN0X3N5c2NhbGxfMzIrMHgzMC8w eDFjMAogIFs8YzEzYzU5YmY+XSA/IF9fdGhpc19jcHVfcHJlZW1wdF9jaGVjaysweGYvMHgyMAog IFs8YzEwYWZhN2Q+XSA/IHRyYWNlX2hhcmRpcnFzX29uX2NhbGxlcisweGRkLzB4MjEwCiAgWzxj MTBhZDUwYj5dID8gdHJhY2VfaGFyZGlycXNfb2ZmKzB4Yi8weDEwCiAgWzxjMTAwMWI4MT5dIGRv X2Zhc3Rfc3lzY2FsbF8zMisweGExLzB4MWMwCiAgWzxjMTc2ZDg4OD5dIHN5c2VudGVyX3Bhc3Rf ZXNwKzB4NDUvMHg3NAogSU5GTzogT2JqZWN0IDB4ZDFlNmQ5ZTAgQG9mZnNldD02NjI0CiBrbWVt X2NhY2hlX2Rlc3Ryb3kgZjJmc19pbm9kZV9jYWNoZTogU2xhYiBjYWNoZSBzdGlsbCBoYXMgb2Jq ZWN0cwogQ1BVOiAzIFBJRDogNzQ1NSBDb21tOiBybW1vZCBUYWludGVkOiBHICAgIEIgICAgICBP ICAgIDQuNi4wLXJjNCsgIzE2CiBIYXJkd2FyZSBuYW1lOiBpbm5vdGVrIEdtYkggVmlydHVhbEJv eC9WaXJ0dWFsQm94LCBCSU9TIFZpcnR1YWxCb3ggMTIvMDEvMjAwNgogIDAwMDAwMjg2IDAwMDAw Mjg2IGQwNjJmZWY0IGMxM2E4M2EwIGYxNzRiMDAwIGQwNjJmZjE0IGQwNjJmZjI4IGMxMTk4YWM3 CiAgYzE5N2ZlMTggZjNjNWI5ODAgZDA2MmZmMjAgMDAwZDA0ZjIgZDA2MmZmMGMgZDA2MmZmMGMg ZDA2MmZmMTQgZDA2MmZmMTQKICBmOGYyMGRjMCBmZmZmZmZmNSBkMDYyZTAwMCBkMDYyZmYzMCBm OGYxNWFhMyBkMDYyZmY3YyBjMTBmNTk2YyA3MzY2MzI2NgogQ2FsbCBUcmFjZToKICBbPGMxM2E4 M2EwPl0gZHVtcF9zdGFjaysweDVmLzB4OGYKICBbPGMxMTk4YWM3Pl0ga21lbV9jYWNoZV9kZXN0 cm95KzB4MWU3LzB4MWYwCiAgWzxmOGYxNWFhMz5dIGV4aXRfZjJmc19mcysweDRiLzB4NWE4IFtm MmZzXQogIFs8YzEwZjU5NmM+XSBTeVNfZGVsZXRlX21vZHVsZSsweDE2Yy8weDFkMAogIFs8YzEw MDFiMTA+XSA/IGRvX2Zhc3Rfc3lzY2FsbF8zMisweDMwLzB4MWMwCiAgWzxjMTNjNTliZj5dID8g X190aGlzX2NwdV9wcmVlbXB0X2NoZWNrKzB4Zi8weDIwCiAgWzxjMTBhZmE3ZD5dID8gdHJhY2Vf aGFyZGlycXNfb25fY2FsbGVyKzB4ZGQvMHgyMTAKICBbPGMxMGFkNTBiPl0gPyB0cmFjZV9oYXJk aXJxc19vZmYrMHhiLzB4MTAKICBbPGMxMDAxYjgxPl0gZG9fZmFzdF9zeXNjYWxsXzMyKzB4YTEv MHgxYzAKICBbPGMxNzZkODg4Pl0gc3lzZW50ZXJfcGFzdF9lc3ArMHg0NS8weDc0CgpUaGUgcmVh c29uIGlzOiBpbiByZWNvdmVyeSBmbG93LCB3ZSB1c2UgZGVsYXllZCBpcHV0IG1lY2hhbmlzbSBm b3IgZGlyZWN0b3J5CndoaWNoIGhhcyByZWNvdmVyZWQgZGVudHJ5IGJsb2NrLiBJdCBtZWFucyB0 aGUgcmVmZXJlbmNlIG9mIGlub2RlIHdpbGwgYmUKaGVsZCB1bnRpbCBsYXN0IGRpcnR5IGRlbnRy eSBwYWdlIGJlaW5nIHdyaXRlYmFja2VkLgoKQnV0IHdoZW4gd2UgbW91bnQgZjJmcyB3aXRoIGlu bGluZV9kZW50cnkgb3B0aW9uLCBkdXJpbmcgcmVjb3ZlcnksIGRpcmVudAptYXkgb25seSBiZSBy ZWNvdmVyZWQgaW50byBkaXIgaW5vZGUgcGFnZSByYXRoZXIgdGhhbiBkZW50cnkgcGFnZSwgc28g dGhlcmUKYXJlIG5vIGNoYW5jZSBmb3IgdXMgdG8gcmVsZWFzZSBpbm9kZSByZWZlcmVuY2UgaW4g LT53cml0ZXBhZ2Ugd2hlbgp3cml0ZWJhY2tpbmcgbGFzdCBkZW50cnkgcGFnZS4KCldlIGNhbiBj YWxsIHBhaXJlZCBpZ2V0L2lwdXQgZXhwbGljaXR5bHkgZm9yIGlubGluZV9kZW50cnkgY2FzZSwg YnV0IGZvcgpub24taW5saW5lX2RlbnRyeSBjYXNlLCBpcHV0IHdpbGwgY2FsbCB3cml0ZWJhY2tf c2luZ2xlX2lub2RlIHRvIHdyaXRlIGFsbApkYXRhIHBhZ2VzIHN5bmNocm9ub3VzbHksIGJ1dCBk dXJpbmcgcmVjb3ZlcnksIC0+d3JpdGVwYWdlcyBvZiBmMmZzIHNraXBzCndyaXRpbmcgYWxsIHBh Z2VzLCByZXN1bHQgaW4gbG9zaW5nIGRpcmVudC4KClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1 ZSBieSBvYnNvbGV0aW5nIG9sZCBtZWNoYW5pc20sIGFuZCBpbnRyb2R1Y2UgYQpuZXcgZGlyX2xp c3QgdG8gaG9sZCBhbGwgZGlyZWN0b3J5IGlub2RlcyB3aGljaCBoYXMgcmVjb3ZlcmVkIGRhdGFz IHVudGlsCmZpbmlzaGluZyByZWNvdmVyeS4KClNpZ25lZC1vZmYtYnk6IENoYW8gWXUgPHl1Y2hh bzBAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2VybmVs Lm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0LjQ6CiAtIERlbGV0ZWQgYWRkX2RpcnR5X2Rpcl9p bm9kZSgpIGZ1bmN0aW9uIGlzIGRpZmZlcmVudAogLSBBZGp1c3QgY29udGV4dF0KU2lnbmVkLW9m Zi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQog ZnMvZjJmcy9jaGVja3BvaW50LmMgfCAyNCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBmcy9mMmZz L2YyZnMuaCAgICAgICB8ICAyIC0tCiBmcy9mMmZzL3JlY292ZXJ5LmMgICB8IDU2ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hh bmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwgNTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMv ZjJmcy9jaGVja3BvaW50LmMgYi9mcy9mMmZzL2NoZWNrcG9pbnQuYwppbmRleCBhNjIyMWY0ZmQ1 ODEuLjY5MmI2YTNjODk3MSAxMDA2NDQKLS0tIGEvZnMvZjJmcy9jaGVja3BvaW50LmMKKysrIGIv ZnMvZjJmcy9jaGVja3BvaW50LmMKQEAgLTc3MSwyNCArNzcxLDYgQEAgb3V0OgogCWYyZnNfdHJh Y2VfcGlkKHBhZ2UpOwogfQogCi12b2lkIGFkZF9kaXJ0eV9kaXJfaW5vZGUoc3RydWN0IGlub2Rl ICppbm9kZSkKLXsKLQlzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkgPSBGMkZTX0lfU0IoaW5vZGUp OwotCXN0cnVjdCBpbm9kZV9lbnRyeSAqbmV3ID0KLQkJCWYyZnNfa21lbV9jYWNoZV9hbGxvYyhp bm9kZV9lbnRyeV9zbGFiLCBHRlBfTk9GUyk7Ci0JaW50IHJldCA9IDA7Ci0KLQluZXctPmlub2Rl ID0gaW5vZGU7Ci0JSU5JVF9MSVNUX0hFQUQoJm5ldy0+bGlzdCk7Ci0KLQlzcGluX2xvY2soJnNi aS0+ZGlyX2lub2RlX2xvY2spOwotCXJldCA9IF9fYWRkX2RpcnR5X2lub2RlKGlub2RlLCBuZXcp OwotCXNwaW5fdW5sb2NrKCZzYmktPmRpcl9pbm9kZV9sb2NrKTsKLQotCWlmIChyZXQpCi0JCWtt ZW1fY2FjaGVfZnJlZShpbm9kZV9lbnRyeV9zbGFiLCBuZXcpOwotfQotCiB2b2lkIHJlbW92ZV9k aXJ0eV9kaXJfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKIHsKIAlzdHJ1Y3QgZjJmc19zYl9p bmZvICpzYmkgPSBGMkZTX0lfU0IoaW5vZGUpOwpAQCAtODExLDEyICs3OTMsNiBAQCB2b2lkIHJl bW92ZV9kaXJ0eV9kaXJfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKIAlzdGF0X2RlY19kaXJ0 eV9kaXIoc2JpKTsKIAlzcGluX3VubG9jaygmc2JpLT5kaXJfaW5vZGVfbG9jayk7CiAJa21lbV9j YWNoZV9mcmVlKGlub2RlX2VudHJ5X3NsYWIsIGVudHJ5KTsKLQotCS8qIE9ubHkgZnJvbSB0aGUg cmVjb3Zlcnkgcm91dGluZSAqLwotCWlmIChpc19pbm9kZV9mbGFnX3NldChGMkZTX0koaW5vZGUp LCBGSV9ERUxBWV9JUFVUKSkgewotCQljbGVhcl9pbm9kZV9mbGFnKEYyRlNfSShpbm9kZSksIEZJ X0RFTEFZX0lQVVQpOwotCQlpcHV0KGlub2RlKTsKLQl9CiB9CiAKIHZvaWQgc3luY19kaXJ0eV9k aXJfaW5vZGVzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKZGlmZiAtLWdpdCBhL2ZzL2YyZnMv ZjJmcy5oIGIvZnMvZjJmcy9mMmZzLmgKaW5kZXggYzFkMDg2ZmM3OWI1Li45Mjk2MTYxYzA1MTkg MTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvZjJmcy5oCisrKyBiL2ZzL2YyZnMvZjJmcy5oCkBAIC0xNDAy LDcgKzE0MDIsNiBAQCBlbnVtIHsKIAlGSV9OT19BTExPQywJCS8qIHNob3VsZCBub3QgYWxsb2Nh dGUgYW55IGJsb2NrcyAqLwogCUZJX0ZSRUVfTklELAkJLyogZnJlZSBhbGxvY2F0ZWQgbmlkZSAq LwogCUZJX1VQREFURV9ESVIsCQkvKiBzaG91bGQgdXBkYXRlIGlub2RlIGJsb2NrIGZvciBjb25z aXN0ZW5jeSAqLwotCUZJX0RFTEFZX0lQVVQsCQkvKiB1c2VkIGZvciB0aGUgcmVjb3ZlcnkgKi8K IAlGSV9OT19FWFRFTlQsCQkvKiBub3QgdG8gdXNlIHRoZSBleHRlbnQgY2FjaGUgKi8KIAlGSV9J TkxJTkVfWEFUVFIsCS8qIHVzZWQgZm9yIGlubGluZSB4YXR0ciAqLwogCUZJX0lOTElORV9EQVRB LAkJLyogdXNlZCBmb3IgaW5saW5lIGRhdGEqLwpAQCAtMTgyOCw3ICsxODI3LDYgQEAgdm9pZCBy ZW1vdmVfb3JwaGFuX2lub2RlKHN0cnVjdCBmMmZzX3NiX2luZm8gKiwgbmlkX3QpOwogaW50IHJl Y292ZXJfb3JwaGFuX2lub2RlcyhzdHJ1Y3QgZjJmc19zYl9pbmZvICopOwogaW50IGdldF92YWxp ZF9jaGVja3BvaW50KHN0cnVjdCBmMmZzX3NiX2luZm8gKik7CiB2b2lkIHVwZGF0ZV9kaXJ0eV9w YWdlKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgcGFnZSAqKTsKLXZvaWQgYWRkX2RpcnR5X2Rpcl9p bm9kZShzdHJ1Y3QgaW5vZGUgKik7CiB2b2lkIHJlbW92ZV9kaXJ0eV9kaXJfaW5vZGUoc3RydWN0 IGlub2RlICopOwogdm9pZCBzeW5jX2RpcnR5X2Rpcl9pbm9kZXMoc3RydWN0IGYyZnNfc2JfaW5m byAqKTsKIHZvaWQgd3JpdGVfY2hlY2twb2ludChzdHJ1Y3QgZjJmc19zYl9pbmZvICosIHN0cnVj dCBjcF9jb250cm9sICopOwpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9yZWNvdmVyeS5jIGIvZnMvZjJm cy9yZWNvdmVyeS5jCmluZGV4IDg5MDBjMjk5ZGUwMi4uMzExNjlkZDQwZDMyIDEwMDY0NAotLS0g YS9mcy9mMmZzL3JlY292ZXJ5LmMKKysrIGIvZnMvZjJmcy9yZWNvdmVyeS5jCkBAIC04OSw3ICs4 OSw4IEBAIHN0YXRpYyB2b2lkIGRlbF9mc3luY19pbm9kZShzdHJ1Y3QgZnN5bmNfaW5vZGVfZW50 cnkgKmVudHJ5KQogCWttZW1fY2FjaGVfZnJlZShmc3luY19lbnRyeV9zbGFiLCBlbnRyeSk7CiB9 CiAKLXN0YXRpYyBpbnQgcmVjb3Zlcl9kZW50cnkoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0 IHBhZ2UgKmlwYWdlKQorc3RhdGljIGludCByZWNvdmVyX2RlbnRyeShzdHJ1Y3QgaW5vZGUgKmlu b2RlLCBzdHJ1Y3QgcGFnZSAqaXBhZ2UsCisJCQkJCQlzdHJ1Y3QgbGlzdF9oZWFkICpkaXJfbGlz dCkKIHsKIAlzdHJ1Y3QgZjJmc19pbm9kZSAqcmF3X2lub2RlID0gRjJGU19JTk9ERShpcGFnZSk7 CiAJbmlkX3QgcGlubyA9IGxlMzJfdG9fY3B1KHJhd19pbm9kZS0+aV9waW5vKTsKQEAgLTk3LDE4 ICs5OCwyOSBAQCBzdGF0aWMgaW50IHJlY292ZXJfZGVudHJ5KHN0cnVjdCBpbm9kZSAqaW5vZGUs IHN0cnVjdCBwYWdlICppcGFnZSkKIAlzdHJ1Y3QgcXN0ciBuYW1lOwogCXN0cnVjdCBwYWdlICpw YWdlOwogCXN0cnVjdCBpbm9kZSAqZGlyLCAqZWlub2RlOworCXN0cnVjdCBmc3luY19pbm9kZV9l bnRyeSAqZW50cnk7CiAJaW50IGVyciA9IDA7CiAKLQlkaXIgPSBmMmZzX2lnZXQoaW5vZGUtPmlf c2IsIHBpbm8pOwotCWlmIChJU19FUlIoZGlyKSkgewotCQllcnIgPSBQVFJfRVJSKGRpcik7Ci0J CWdvdG8gb3V0OworCWVudHJ5ID0gZ2V0X2ZzeW5jX2lub2RlKGRpcl9saXN0LCBwaW5vKTsKKwlp ZiAoIWVudHJ5KSB7CisJCWRpciA9IGYyZnNfaWdldChpbm9kZS0+aV9zYiwgcGlubyk7CisJCWlm IChJU19FUlIoZGlyKSkgeworCQkJZXJyID0gUFRSX0VSUihkaXIpOworCQkJZ290byBvdXQ7CisJ CX0KKworCQllbnRyeSA9IGFkZF9mc3luY19pbm9kZShkaXJfbGlzdCwgZGlyKTsKKwkJaWYgKCFl bnRyeSkgeworCQkJZXJyID0gLUVOT01FTTsKKwkJCWlwdXQoZGlyKTsKKwkJCWdvdG8gb3V0Owor CQl9CiAJfQogCi0JaWYgKGZpbGVfZW5jX25hbWUoaW5vZGUpKSB7Ci0JCWlwdXQoZGlyKTsKKwlk aXIgPSBlbnRyeS0+aW5vZGU7CisKKwlpZiAoZmlsZV9lbmNfbmFtZShpbm9kZSkpCiAJCXJldHVy biAwOwotCX0KIAogCW5hbWUubGVuID0gbGUzMl90b19jcHUocmF3X2lub2RlLT5pX25hbWVsZW4p OwogCW5hbWUubmFtZSA9IHJhd19pbm9kZS0+aV9uYW1lOwpAQCAtMTE2LDcgKzEyOCw3IEBAIHN0 YXRpYyBpbnQgcmVjb3Zlcl9kZW50cnkoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IHBhZ2Ug KmlwYWdlKQogCWlmICh1bmxpa2VseShuYW1lLmxlbiA+IEYyRlNfTkFNRV9MRU4pKSB7CiAJCVdB Uk5fT04oMSk7CiAJCWVyciA9IC1FTkFNRVRPT0xPTkc7Ci0JCWdvdG8gb3V0X2VycjsKKwkJZ290 byBvdXQ7CiAJfQogcmV0cnk6CiAJZGUgPSBmMmZzX2ZpbmRfZW50cnkoZGlyLCAmbmFtZSwgJnBh Z2UpOwpAQCAtMTQyLDIzICsxNTQsMTIgQEAgcmV0cnk6CiAJCWdvdG8gcmV0cnk7CiAJfQogCWVy ciA9IF9fZjJmc19hZGRfbGluayhkaXIsICZuYW1lLCBpbm9kZSwgaW5vZGUtPmlfaW5vLCBpbm9k ZS0+aV9tb2RlKTsKLQlpZiAoZXJyKQotCQlnb3RvIG91dF9lcnI7Ci0KLQlpZiAoaXNfaW5vZGVf ZmxhZ19zZXQoRjJGU19JKGRpciksIEZJX0RFTEFZX0lQVVQpKSB7Ci0JCWlwdXQoZGlyKTsKLQl9 IGVsc2UgewotCQlhZGRfZGlydHlfZGlyX2lub2RlKGRpcik7Ci0JCXNldF9pbm9kZV9mbGFnKEYy RlNfSShkaXIpLCBGSV9ERUxBWV9JUFVUKTsKLQl9CiAKIAlnb3RvIG91dDsKIAogb3V0X3VubWFw X3B1dDoKIAlmMmZzX2RlbnRyeV9rdW5tYXAoZGlyLCBwYWdlKTsKIAlmMmZzX3B1dF9wYWdlKHBh Z2UsIDApOwotb3V0X2VycjoKLQlpcHV0KGRpcik7CiBvdXQ6CiAJZjJmc19tc2coaW5vZGUtPmlf c2IsIEtFUk5fTk9USUNFLAogCQkJIiVzOiBpbm8gPSAleCwgbmFtZSA9ICVzLCBkaXIgPSAlbHgs IGVyciA9ICVkIiwKQEAgLTQ3OSw3ICs0ODAsOCBAQCBvdXQ6CiAJcmV0dXJuIGVycjsKIH0KIAot c3RhdGljIGludCByZWNvdmVyX2RhdGEoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBzdHJ1Y3Qg bGlzdF9oZWFkICpoZWFkKQorc3RhdGljIGludCByZWNvdmVyX2RhdGEoc3RydWN0IGYyZnNfc2Jf aW5mbyAqc2JpLCBzdHJ1Y3QgbGlzdF9oZWFkICppbm9kZV9saXN0LAorCQkJCQkJc3RydWN0IGxp c3RfaGVhZCAqZGlyX2xpc3QpCiB7CiAJdW5zaWduZWQgbG9uZyBsb25nIGNwX3ZlciA9IGN1cl9j cF92ZXJzaW9uKEYyRlNfQ0tQVChzYmkpKTsKIAlzdHJ1Y3QgY3Vyc2VnX2luZm8gKmN1cnNlZzsK QEAgLTUwNiw3ICs1MDgsNyBAQCBzdGF0aWMgaW50IHJlY292ZXJfZGF0YShzdHJ1Y3QgZjJmc19z Yl9pbmZvICpzYmksIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCiAJCQlicmVhazsKIAkJfQogCi0J CWVudHJ5ID0gZ2V0X2ZzeW5jX2lub2RlKGhlYWQsIGlub19vZl9ub2RlKHBhZ2UpKTsKKwkJZW50 cnkgPSBnZXRfZnN5bmNfaW5vZGUoaW5vZGVfbGlzdCwgaW5vX29mX25vZGUocGFnZSkpOwogCQlp ZiAoIWVudHJ5KQogCQkJZ290byBuZXh0OwogCQkvKgpAQCAtNTE3LDcgKzUxOSw3IEBAIHN0YXRp YyBpbnQgcmVjb3Zlcl9kYXRhKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IGxpc3Rf aGVhZCAqaGVhZCkKIAkJaWYgKGVudHJ5LT5sYXN0X2lub2RlID09IGJsa2FkZHIpCiAJCQlyZWNv dmVyX2lub2RlKGVudHJ5LT5pbm9kZSwgcGFnZSk7CiAJCWlmIChlbnRyeS0+bGFzdF9kZW50cnkg PT0gYmxrYWRkcikgewotCQkJZXJyID0gcmVjb3Zlcl9kZW50cnkoZW50cnktPmlub2RlLCBwYWdl KTsKKwkJCWVyciA9IHJlY292ZXJfZGVudHJ5KGVudHJ5LT5pbm9kZSwgcGFnZSwgZGlyX2xpc3Qp OwogCQkJaWYgKGVycikgewogCQkJCWYyZnNfcHV0X3BhZ2UocGFnZSwgMSk7CiAJCQkJYnJlYWs7 CkBAIC01NDUsNiArNTQ3LDcgQEAgaW50IHJlY292ZXJfZnN5bmNfZGF0YShzdHJ1Y3QgZjJmc19z Yl9pbmZvICpzYmksIGJvb2wgY2hlY2tfb25seSkKIHsKIAlzdHJ1Y3QgY3Vyc2VnX2luZm8gKmN1 cnNlZyA9IENVUlNFR19JKHNiaSwgQ1VSU0VHX1dBUk1fTk9ERSk7CiAJc3RydWN0IGxpc3RfaGVh ZCBpbm9kZV9saXN0OworCXN0cnVjdCBsaXN0X2hlYWQgZGlyX2xpc3Q7CiAJYmxvY2tfdCBibGth ZGRyOwogCWludCBlcnI7CiAJaW50IHJldCA9IDA7CkBAIC01NTYsNiArNTU5LDcgQEAgaW50IHJl Y292ZXJfZnN5bmNfZGF0YShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJvb2wgY2hlY2tfb25s eSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlJTklUX0xJU1RfSEVBRCgmaW5vZGVfbGlzdCk7CisJ SU5JVF9MSVNUX0hFQUQoJmRpcl9saXN0KTsKIAogCS8qIHByZXZlbnQgY2hlY2twb2ludCAqLwog CW11dGV4X2xvY2soJnNiaS0+Y3BfbXV0ZXgpOwpAQCAtNTc1LDEyICs1NzksMTEgQEAgaW50IHJl Y292ZXJfZnN5bmNfZGF0YShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJvb2wgY2hlY2tfb25s eSkKIAluZWVkX3dyaXRlY3AgPSB0cnVlOwogCiAJLyogc3RlcCAjMjogcmVjb3ZlciBkYXRhICov Ci0JZXJyID0gcmVjb3Zlcl9kYXRhKHNiaSwgJmlub2RlX2xpc3QpOworCWVyciA9IHJlY292ZXJf ZGF0YShzYmksICZpbm9kZV9saXN0LCAmZGlyX2xpc3QpOwogCWlmICghZXJyKQogCQlmMmZzX2J1 Z19vbihzYmksICFsaXN0X2VtcHR5KCZpbm9kZV9saXN0KSk7CiBvdXQ6CiAJZGVzdHJveV9mc3lu Y19kbm9kZXMoJmlub2RlX2xpc3QpOwotCWttZW1fY2FjaGVfZGVzdHJveShmc3luY19lbnRyeV9z bGFiKTsKIAogCS8qIHRydW5jYXRlIG1ldGEgcGFnZXMgdG8gYmUgdXNlZCBieSB0aGUgcmVjb3Zl cnkgKi8KIAl0cnVuY2F0ZV9pbm9kZV9wYWdlc19yYW5nZShNRVRBX01BUFBJTkcoc2JpKSwKQEAg LTYxOCw1ICs2MjEsOCBAQCBvdXQ6CiAJfSBlbHNlIHsKIAkJbXV0ZXhfdW5sb2NrKCZzYmktPmNw X211dGV4KTsKIAl9CisKKwlkZXN0cm95X2ZzeW5jX2Rub2RlcygmZGlyX2xpc3QpOworCWttZW1f Y2FjaGVfZGVzdHJveShmc3luY19lbnRyeV9zbGFiKTsKIAlyZXR1cm4gcmV0ID8gcmV0OiBlcnI7 CiB9CgpGcm9tIGQ0ZTdhOTI5ZTEwZTQ1MDBjNTk3ODg4NmZkNjQyMzIzMWY2MTg3N2UgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IENoYW8gWXUgPHl1Y2hhbzBAaHVhd2VpLmNvbT4KRGF0 ZTogU3VuLCAzIEp1bCAyMDE2IDIyOjA1OjExICswODAwClN1YmplY3Q6IFtQQVRDSCAwOS8zNl0g ZjJmczogZml4IHRvIGF2b2lkIHJlYWRpbmcgb3V0IGVuY3J5cHRlZCBkYXRhIGluIHBhZ2UKIGNh Y2hlCgpjb21taXQgNzg2ODJmNzk0NDc5OTgzNjlhODVmMTJiNjQzN2ZhOGZkYmJkY2E1MCB1cHN0 cmVhbS4KCkZvciBlbmNyeXB0ZWQgaW5vZGUsIGlmIHVzZXIgb3ZlcndyaXRlcyBkYXRhIG9mIHRo ZSBpbm9kZSwgZjJmcyB3aWxsIHJlYWQKZW5jcnlwdGVkIGRhdGEgaW50byBwYWdlIGNhY2hlLCBh bmQgdGhlbiBkbyB0aGUgZGVjcnlwdGlvbi4KCkhvd2V2ZXIgcmVhZGVyIGNhbiByYWNlIHdpdGgg b3ZlcndyaXRlciwgYW5kIGl0IHdpbGwgc2VlIGVuY3J5cHRlZCBkYXRhCndoaWNoIGhhcyBub3Qg YmVlbiBkZWNyeXB0ZWQgYnkgb3ZlcndyaXRlciB5ZXQuIEZpeCBpdCBieSBtb3ZpbmcgZGVjcnlw dGluZwp3b3JrIHRvIGJhY2tncm91bmQgYW5kIGtlZXAgcGFnZSBub24tdXB0b2RhdGVkIHVudGls IGRhdGEgaXMgZGVjcnlwdGVkLgoKVGhyZWFkIEEJCQkJVGhyZWFkIEIKLSBmMmZzX2ZpbGVfd3Jp dGVfaXRlcgogLSBfX2dlbmVyaWNfZmlsZV93cml0ZV9pdGVyCiAgLSBnZW5lcmljX3BlcmZvcm1f d3JpdGUKICAgLSBmMmZzX3dyaXRlX2JlZ2luCiAgICAtIGYyZnNfc3VibWl0X3BhZ2VfYmlvCgkJ CQkJLSBnZW5lcmljX2ZpbGVfcmVhZF9pdGVyCgkJCQkJIC0gZG9fZ2VuZXJpY19maWxlX3JlYWQK CQkJCQkgIC0gbG9ja19wYWdlX2tpbGxhYmxlCgkJCQkJICAtIHVubG9ja19wYWdlCgkJCQkJICAt IGNvcHlfcGFnZV90b19pdGVyCgkJCQkJICBoaXQgdGhlIGVuY3J5cHRlZCBkYXRhIGluIHVwZGF0 ZWQgcGFnZQogICAgLSBsb2NrX3BhZ2UKICAgIC0gZnNjcnlwdF9kZWNyeXB0X3BhZ2UKClNpZ25l ZC1vZmYtYnk6IENoYW8gWXUgPHl1Y2hhbzBAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFl Z2V1ayBLaW0gPGphZWdldWtAa2VybmVsLm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0LjQ6CiAt IEtlZXAgdXNpbmcgZjJmc19jcnlwdG8gZnVuY3Rpb25zIGluc3RlYWQgb2YgZ2VuZXJpYyBmc2Ny eXB0IEFQSQogLSBVc2UgUEFHRV9DQUNIRV9TSVpFIGluc3RlYWQgb2YgUEFHRV9TSVpFCiAtIFVz ZSBzdWJtaXRfYmlvKCkgaW5zdGVhZCBvZiBfX3N1Ym1pdF9iaW8oKQogLSBJbiBmMmZzX3dyaXRl X2JlZ2luKCksIHVzZSBkbi5kYXRhX2Jsa2FkZHIgaW5zdGVhZCBvZiBibGthZGRyCiAtIEFkanVz dCBjb250ZXh0XQpTaWduZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNv ZGV0aGluay5jby51az4KLS0tCiBmcy9mMmZzL2RhdGEuYyB8IDg5ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCA0NyBpbnNlcnRpb25zKCspLCA0MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9mcy9mMmZz L2RhdGEuYyBiL2ZzL2YyZnMvZGF0YS5jCmluZGV4IGY2Y2NiMjFmMjg2Yi4uYjBmY2ZhZWUzNTRm IDEwMDY0NAotLS0gYS9mcy9mMmZzL2RhdGEuYworKysgYi9mcy9mMmZzL2RhdGEuYwpAQCAtODY2 LDYgKzg2NiwzNyBAQCBvdXQ6CiAJcmV0dXJuIHJldDsKIH0KIAorc3RydWN0IGJpbyAqZjJmc19n cmFiX2JpbyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBibG9ja190IGJsa2FkZHIsCisJCQkJCQkJdW5z aWduZWQgbnJfcGFnZXMpCit7CisJc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpID0gRjJGU19JX1NC KGlub2RlKTsKKwlzdHJ1Y3QgZjJmc19jcnlwdG9fY3R4ICpjdHggPSBOVUxMOworCXN0cnVjdCBi bG9ja19kZXZpY2UgKmJkZXYgPSBzYmktPnNiLT5zX2JkZXY7CisJc3RydWN0IGJpbyAqYmlvOwor CisJaWYgKGYyZnNfZW5jcnlwdGVkX2lub2RlKGlub2RlKSAmJiBTX0lTUkVHKGlub2RlLT5pX21v ZGUpKSB7CisJCWN0eCA9IGYyZnNfZ2V0X2NyeXB0b19jdHgoaW5vZGUpOworCQlpZiAoSVNfRVJS KGN0eCkpCisJCQlyZXR1cm4gRVJSX0NBU1QoY3R4KTsKKworCQkvKiB3YWl0IHRoZSBwYWdlIHRv IGJlIG1vdmVkIGJ5IGNsZWFuaW5nICovCisJCWYyZnNfd2FpdF9vbl9lbmNyeXB0ZWRfcGFnZV93 cml0ZWJhY2soc2JpLCBibGthZGRyKTsKKwl9CisKKwliaW8gPSBiaW9fYWxsb2MoR0ZQX0tFUk5F TCwgbWluX3QoaW50LCBucl9wYWdlcywgQklPX01BWF9QQUdFUykpOworCWlmICghYmlvKSB7CisJ CWlmIChjdHgpCisJCQlmMmZzX3JlbGVhc2VfY3J5cHRvX2N0eChjdHgpOworCQlyZXR1cm4gRVJS X1BUUigtRU5PTUVNKTsKKwl9CisJYmlvLT5iaV9iZGV2ID0gYmRldjsKKwliaW8tPmJpX2l0ZXIu Ymlfc2VjdG9yID0gU0VDVE9SX0ZST01fQkxPQ0soYmxrYWRkcik7CisJYmlvLT5iaV9lbmRfaW8g PSBmMmZzX3JlYWRfZW5kX2lvOworCWJpby0+YmlfcHJpdmF0ZSA9IGN0eDsKKworCXJldHVybiBi aW87Cit9CisKIC8qCiAgKiBUaGlzIGZ1bmN0aW9uIHdhcyBvcmlnaW5hbGx5IHRha2VuIGZyb20g ZnMvbXBhZ2UuYywgYW5kIGN1c3RvbWl6ZWQgZm9yIGYyZnMuCiAgKiBNYWpvciBjaGFuZ2Ugd2Fz IGZyb20gYmxvY2tfc2l6ZSA9PSBwYWdlX3NpemUgaW4gZjJmcyBieSBkZWZhdWx0LgpAQCAtODg0 LDcgKzkxNSw2IEBAIHN0YXRpYyBpbnQgZjJmc19tcGFnZV9yZWFkcGFnZXMoc3RydWN0IGFkZHJl c3Nfc3BhY2UgKm1hcHBpbmcsCiAJc2VjdG9yX3QgbGFzdF9ibG9jazsKIAlzZWN0b3JfdCBsYXN0 X2Jsb2NrX2luX2ZpbGU7CiAJc2VjdG9yX3QgYmxvY2tfbnI7Ci0Jc3RydWN0IGJsb2NrX2Rldmlj ZSAqYmRldiA9IGlub2RlLT5pX3NiLT5zX2JkZXY7CiAJc3RydWN0IGYyZnNfbWFwX2Jsb2NrcyBt YXA7CiAKIAltYXAubV9wYmxrID0gMDsKQEAgLTk1OCwzMSArOTg4LDkgQEAgc3VibWl0X2FuZF9y ZWFsbG9jOgogCQkJYmlvID0gTlVMTDsKIAkJfQogCQlpZiAoYmlvID09IE5VTEwpIHsKLQkJCXN0 cnVjdCBmMmZzX2NyeXB0b19jdHggKmN0eCA9IE5VTEw7Ci0KLQkJCWlmIChmMmZzX2VuY3J5cHRl ZF9pbm9kZShpbm9kZSkgJiYKLQkJCQkJU19JU1JFRyhpbm9kZS0+aV9tb2RlKSkgewotCi0JCQkJ Y3R4ID0gZjJmc19nZXRfY3J5cHRvX2N0eChpbm9kZSk7Ci0JCQkJaWYgKElTX0VSUihjdHgpKQot CQkJCQlnb3RvIHNldF9lcnJvcl9wYWdlOwotCi0JCQkJLyogd2FpdCB0aGUgcGFnZSB0byBiZSBt b3ZlZCBieSBjbGVhbmluZyAqLwotCQkJCWYyZnNfd2FpdF9vbl9lbmNyeXB0ZWRfcGFnZV93cml0 ZWJhY2soCi0JCQkJCQlGMkZTX0lfU0IoaW5vZGUpLCBibG9ja19ucik7Ci0JCQl9Ci0KLQkJCWJp byA9IGJpb19hbGxvYyhHRlBfS0VSTkVMLAotCQkJCW1pbl90KGludCwgbnJfcGFnZXMsIEJJT19N QVhfUEFHRVMpKTsKLQkJCWlmICghYmlvKSB7Ci0JCQkJaWYgKGN0eCkKLQkJCQkJZjJmc19yZWxl YXNlX2NyeXB0b19jdHgoY3R4KTsKKwkJCWJpbyA9IGYyZnNfZ3JhYl9iaW8oaW5vZGUsIGJsb2Nr X25yLCBucl9wYWdlcyk7CisJCQlpZiAoSVNfRVJSKGJpbykpCiAJCQkJZ290byBzZXRfZXJyb3Jf cGFnZTsKLQkJCX0KLQkJCWJpby0+YmlfYmRldiA9IGJkZXY7Ci0JCQliaW8tPmJpX2l0ZXIuYmlf c2VjdG9yID0gU0VDVE9SX0ZST01fQkxPQ0soYmxvY2tfbnIpOwotCQkJYmlvLT5iaV9lbmRfaW8g PSBmMmZzX3JlYWRfZW5kX2lvOwotCQkJYmlvLT5iaV9wcml2YXRlID0gY3R4OwogCQl9CiAKIAkJ aWYgKGJpb19hZGRfcGFnZShiaW8sIHBhZ2UsIGJsb2Nrc2l6ZSwgMCkgPCBibG9ja3NpemUpCkBA IC0xNDgyLDE3ICsxNDkwLDIxIEBAIHB1dF9uZXh0OgogCWlmIChkbi5kYXRhX2Jsa2FkZHIgPT0g TkVXX0FERFIpIHsKIAkJemVyb191c2VyX3NlZ21lbnQocGFnZSwgMCwgUEFHRV9DQUNIRV9TSVpF KTsKIAl9IGVsc2UgewotCQlzdHJ1Y3QgZjJmc19pb19pbmZvIGZpbyA9IHsKLQkJCS5zYmkgPSBz YmksCi0JCQkudHlwZSA9IERBVEEsCi0JCQkucncgPSBSRUFEX1NZTkMsCi0JCQkuYmxrX2FkZHIg PSBkbi5kYXRhX2Jsa2FkZHIsCi0JCQkucGFnZSA9IHBhZ2UsCi0JCQkuZW5jcnlwdGVkX3BhZ2Ug PSBOVUxMLAotCQl9OwotCQllcnIgPSBmMmZzX3N1Ym1pdF9wYWdlX2JpbygmZmlvKTsKLQkJaWYg KGVycikKKwkJc3RydWN0IGJpbyAqYmlvOworCisJCWJpbyA9IGYyZnNfZ3JhYl9iaW8oaW5vZGUs IGRuLmRhdGFfYmxrYWRkciwgMSk7CisJCWlmIChJU19FUlIoYmlvKSkgeworCQkJZXJyID0gUFRS X0VSUihiaW8pOwogCQkJZ290byBmYWlsOworCQl9CisKKwkJaWYgKGJpb19hZGRfcGFnZShiaW8s IHBhZ2UsIFBBR0VfQ0FDSEVfU0laRSwgMCkgPCBQQUdFX0NBQ0hFX1NJWkUpIHsKKwkJCWJpb19w dXQoYmlvKTsKKwkJCWVyciA9IC1FRkFVTFQ7CisJCQlnb3RvIGZhaWw7CisJCX0KKworCQlzdWJt aXRfYmlvKFJFQURfU1lOQywgYmlvKTsKIAogCQlsb2NrX3BhZ2UocGFnZSk7CiAJCWlmICh1bmxp a2VseSghUGFnZVVwdG9kYXRlKHBhZ2UpKSkgewpAQCAtMTUwMywxMyArMTUxNSw2IEBAIHB1dF9u ZXh0OgogCQkJZjJmc19wdXRfcGFnZShwYWdlLCAxKTsKIAkJCWdvdG8gcmVwZWF0OwogCQl9Ci0K LQkJLyogYXZvaWQgc3ltbGluayBwYWdlICovCi0JCWlmIChmMmZzX2VuY3J5cHRlZF9pbm9kZShp bm9kZSkgJiYgU19JU1JFRyhpbm9kZS0+aV9tb2RlKSkgewotCQkJZXJyID0gZjJmc19kZWNyeXB0 X29uZShpbm9kZSwgcGFnZSk7Ci0JCQlpZiAoZXJyKQotCQkJCWdvdG8gZmFpbDsKLQkJfQogCX0K IG91dF91cGRhdGU6CiAJU2V0UGFnZVVwdG9kYXRlKHBhZ2UpOwoKRnJvbSBmMDE5MTU2NjFjNGRj NjZjODlhZmNiNzllYjA3ZjUxOWMzYWFmNzU3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBZdW5sZWkgSGUgPGhleXVubGVpQGh1YXdlaS5jb20+CkRhdGU6IFRodSwgMjggSnVsIDIwMTYg MTI6MTI6MzggKzA4MDAKU3ViamVjdDogW1BBVENIIDEwLzM2XSBmMmZzOiBub3QgYWxsb3cgdG8g d3JpdGUgaWxsZWdhbCBibGthZGRyCgpjb21taXQgYmI0MTNkNmFjZDRlMWMzNjFkYWViZjg0ODZl ZmMzOTIzZjQyOTc5MiB1cHN0cmVhbS4KCndlIGNhbWUgYWNyb3NzIGFuIGVycm9yIGFzIGJlbG93 OgoKW2J1aWxkX25hdF9hcmVhX2JpdG1hcDoxNzEwXSBuaWRbMHggICAgMTcxOF0gYWRkclsweCAg ICAgICAgIDFjMThkZGNdIGlub1sweCAgICAxNzE4XQpbYnVpbGRfbmF0X2FyZWFfYml0bWFwOjE3 MTBdIG5pZFsweCAgICAxNzE5XSBhZGRyWzB4ICAgICAgICAgMWMxOTNkNV0gaW5vWzB4ICAgIDE3 MTldCltidWlsZF9uYXRfYXJlYV9iaXRtYXA6MTcxMF0gbmlkWzB4ICAgIDE3MWFdIGFkZHJbMHgg ICAgICAgICAxYzE3MzZlXSBpbm9bMHggICAgMTcxYV0KW2J1aWxkX25hdF9hcmVhX2JpdG1hcDox NzEwXSBuaWRbMHggICAgMTcxYl0gYWRkclsweCAgICAgICAgNThiM2VlOGZdIGlub1sweDgxNWY5 MmVkXQpbYnVpbGRfbmF0X2FyZWFfYml0bWFwOjE3MTBdIG5pZFsweCAgICAxNzFjXSBhZGRyWzB4 ICAgICAgICAgZmNkYzk0Yl0gaW5vWzB4NDkzNjYzNzddCltidWlsZF9uYXRfYXJlYV9iaXRtYXA6 MTcxMF0gbmlkWzB4ICAgIDE3MWRdIGFkZHJbMHggICAgICAgIDdjZDJmYWNmXSBpbm9bMHhiM2M1 NTMwMF0KW2J1aWxkX25hdF9hcmVhX2JpdG1hcDoxNzEwXSBuaWRbMHggICAgMTcxZV0gYWRkclsw eCAgICAgICAgYmQ0ZTI1ZDBdIGlub1sweDc3YzM0YzA5XQoKLi4uIC4uLgoKW2J1aWxkX25hdF9h cmVhX2JpdG1hcDoxNzEwXSBuaWRbMHggICAgMTcxOF0gYWRkclsweCAgICAgICAgIDFjMThkZGNd IGlub1sweCAgICAxNzE4XQpbYnVpbGRfbmF0X2FyZWFfYml0bWFwOjE3MTBdIG5pZFsweCAgICAx NzE5XSBhZGRyWzB4ICAgICAgICAgMWMxOTNkNV0gaW5vWzB4ICAgIDE3MTldCltidWlsZF9uYXRf YXJlYV9iaXRtYXA6MTcxMF0gbmlkWzB4ICAgIDE3MWFdIGFkZHJbMHggICAgICAgICAxYzE3MzZl XSBpbm9bMHggICAgMTcxYV0KW2J1aWxkX25hdF9hcmVhX2JpdG1hcDoxNzEwXSBuaWRbMHggICAg MTcxYl0gYWRkclsweCAgICAgICAgNThiM2VlOGZdIGlub1sweDgxNWY5MmVkXQpbYnVpbGRfbmF0 X2FyZWFfYml0bWFwOjE3MTBdIG5pZFsweCAgICAxNzFjXSBhZGRyWzB4ICAgICAgICAgZmNkYzk0 Yl0gaW5vWzB4NDkzNjYzNzddCltidWlsZF9uYXRfYXJlYV9iaXRtYXA6MTcxMF0gbmlkWzB4ICAg IDE3MWRdIGFkZHJbMHggICAgICAgIDdjZDJmYWNmXSBpbm9bMHhiM2M1NTMwMF0KW2J1aWxkX25h dF9hcmVhX2JpdG1hcDoxNzEwXSBuaWRbMHggICAgMTcxZV0gYWRkclsweCAgICAgICAgYmQ0ZTI1 ZDBdIGlub1sweDc3YzM0YzA5XQoKT25lIG5hdCBibG9jayBtYXkgYmUgc3RlcHBlZCBieSBhIGRh dGEgYmxvY2ssIHNvIHRoaXMgcGF0Y2ggZm9yYmlkIHRvCndyaXRlIGlmIHRoZSBibGthZGRyIGlz IGlsbGVnYWwKClNpZ25lZC1vZmYtYnk6IFl1bmxlaSBIZSA8aGV5dW5sZWlAaHVhd2VpLmNvbT4K U2lnbmVkLW9mZi1ieTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2VybmVsLm9yZz4KU2lnbmVkLW9m Zi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQog ZnMvZjJmcy9zZWdtZW50LmggfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9zZWdtZW50LmggYi9mcy9m MmZzL3NlZ21lbnQuaAppbmRleCBiZmExZDMxZjc5YWEuLjEzM2YzYzRjY2U3NSAxMDA2NDQKLS0t IGEvZnMvZjJmcy9zZWdtZW50LmgKKysrIGIvZnMvZjJmcy9zZWdtZW50LmgKQEAgLTU3Niw4ICs1 NzYsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY2hlY2tfc2VnX3JhbmdlKHN0cnVjdCBmMmZzX3Ni X2luZm8gKnNiaSwgdW5zaWduZWQgaW50IHNlZ25vKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgdmVy aWZ5X2Jsb2NrX2FkZHIoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBibG9ja190IGJsa19hZGRy KQogewotCWYyZnNfYnVnX29uKHNiaSwgYmxrX2FkZHIgPCBTRUcwX0JMS0FERFIoc2JpKQotCQkJ CQl8fCBibGtfYWRkciA+PSBNQVhfQkxLQUREUihzYmkpKTsKKwlCVUdfT04oYmxrX2FkZHIgPCBT RUcwX0JMS0FERFIoc2JpKQorCQkJfHwgYmxrX2FkZHIgPj0gTUFYX0JMS0FERFIoc2JpKSk7CiB9 CiAKIC8qCgpGcm9tIGUwZTAzM2U4MGFlODhjNTE2YTM4NGJkZjk2ODA2ODE2NzJlZjExMDMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENoYW8gWXUgPHl1Y2hhbzBAaHVhd2VpLmNvbT4K RGF0ZTogRnJpLCAxOSBBdWcgMjAxNiAyMzoxMzo0NyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTEv MzZdIGYyZnM6IGF2b2lkIHVubmVlZGVkIGxvb3AgaW4gYnVpbGRfc2l0X2VudHJpZXMKCmNvbW1p dCBkNjAwYWYyMzZkYTUxZDllM2I5MGQyMWEyM2Y5NWI4MjBiZDAyZTJmIHVwc3RyZWFtLgoKV2hl biBidWlsZGluZyBlYWNoIHNpdCBlbnRyeSBpbiBjYWNoZSwgZmlyc3RseSwgd2Ugd2lsbCBsb2Fk IGl0IGZyb20Kc2l0IHBhZ2UsIGFuZCB0aGVuIGNoZWNrIGFsbCBlbnRyaWVzIGluIHNpdCBqb3Vy bmFsLCBpZiB0aGVyZSBpcyBvbmUKdXBkYXRlZCBlbnRyeSBpbiBqb3VybmFsLCBjb3ZlciBjYWNo ZWQgZW50cnkgd2l0aCB0aGUgam91cm5hbGVkIG9uZS4KCkFjdHVhbGx5LCBtb3N0IG9mIGNoZWNr IG9wZXJhdGlvbiBpcyB1bm5lZWRlZCBzaW5jZSB3ZSBvbmx5IG5lZWQKdG8gdXBkYXRlIGNhY2hl ZCBlbnRyaWVzIHdpdGggam91cm5hbGVkIGVudHJpZXMgaW4gYmF0Y2gsIHNvCmNoYW5naW5nIHRo ZSBmbG93IGFzIGJlbG93IGZvciBtb3JlIGVmZmljaWVudDoKMS4gbG9hZCBhbGwgc2l0IGVudHJp ZXMgaW50byBjYWNoZSBmcm9tIHNpdCBwYWdlczsKMi4gdXBkYXRlIHNpdCBlbnRyaWVzIHdpdGgg am91cm5hbC4KClNpZ25lZC1vZmYtYnk6IENoYW8gWXUgPHl1Y2hhbzBAaHVhd2VpLmNvbT4KU2ln bmVkLW9mZi1ieTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2VybmVsLm9yZz4KW2J3aDogQmFja3Bv cnRlZCB0byA0LjQ6CiAtIEtlZXAgdXNpbmcgY3Vyc2VnLT5jdXJzZWdfbXV0ZXggZm9yIHNlcmlh bGlzYXRpb24KIC0gVXNlIHN1bSBpbnN0ZWFkIG9mIGpvdXJuYWwKIC0gRG9uJ3QgYWRkIGYyZnNf ZGlzY2FyZF9lbigpIGNvbmRpdGlvbl0KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVu Lmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZnMvZjJmcy9zZWdtZW50LmMgfCA0NCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDI4IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2ZzL2Yy ZnMvc2VnbWVudC5jIGIvZnMvZjJmcy9zZWdtZW50LmMKaW5kZXggMmJiYTBjNGVmNGI3Li5hYWUz NDczMmU5MzIgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvc2VnbWVudC5jCisrKyBiL2ZzL2YyZnMvc2Vn bWVudC5jCkBAIC0yMTQyLDIyICsyMTQyLDExIEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3NpdF9lbnRy aWVzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKIAkJCXN0cnVjdCBmMmZzX3NpdF9lbnRyeSBz aXQ7CiAJCQlzdHJ1Y3QgcGFnZSAqcGFnZTsKIAotCQkJbXV0ZXhfbG9jaygmY3Vyc2VnLT5jdXJz ZWdfbXV0ZXgpOwotCQkJZm9yIChpID0gMDsgaSA8IHNpdHNfaW5fY3Vyc3VtKHN1bSk7IGkrKykg ewotCQkJCWlmIChsZTMyX3RvX2NwdShzZWdub19pbl9qb3VybmFsKHN1bSwgaSkpCi0JCQkJCQkJ CT09IHN0YXJ0KSB7Ci0JCQkJCXNpdCA9IHNpdF9pbl9qb3VybmFsKHN1bSwgaSk7Ci0JCQkJCW11 dGV4X3VubG9jaygmY3Vyc2VnLT5jdXJzZWdfbXV0ZXgpOwotCQkJCQlnb3RvIGdvdF9pdDsKLQkJ CQl9Ci0JCQl9Ci0JCQltdXRleF91bmxvY2soJmN1cnNlZy0+Y3Vyc2VnX211dGV4KTsKLQogCQkJ cGFnZSA9IGdldF9jdXJyZW50X3NpdF9wYWdlKHNiaSwgc3RhcnQpOwogCQkJc2l0X2JsayA9IChz dHJ1Y3QgZjJmc19zaXRfYmxvY2sgKilwYWdlX2FkZHJlc3MocGFnZSk7CiAJCQlzaXQgPSBzaXRf YmxrLT5lbnRyaWVzW1NJVF9FTlRSWV9PRkZTRVQoc2l0X2ksIHN0YXJ0KV07CiAJCQlmMmZzX3B1 dF9wYWdlKHBhZ2UsIDEpOwotZ290X2l0OgorCiAJCQljaGVja19ibG9ja19jb3VudChzYmksIHN0 YXJ0LCAmc2l0KTsKIAkJCXNlZ19pbmZvX2Zyb21fcmF3X3NpdChzZSwgJnNpdCk7CiAKQEAgLTIx NjUsMTMgKzIxNTQsMzYgQEAgZ290X2l0OgogCQkJbWVtY3B5KHNlLT5kaXNjYXJkX21hcCwgc2Ut PmN1cl92YWxpZF9tYXAsIFNJVF9WQkxPQ0tfTUFQX1NJWkUpOwogCQkJc2JpLT5kaXNjYXJkX2Js a3MgKz0gc2JpLT5ibG9ja3NfcGVyX3NlZyAtIHNlLT52YWxpZF9ibG9ja3M7CiAKLQkJCWlmIChz YmktPnNlZ3NfcGVyX3NlYyA+IDEpIHsKLQkJCQlzdHJ1Y3Qgc2VjX2VudHJ5ICplID0gZ2V0X3Nl Y19lbnRyeShzYmksIHN0YXJ0KTsKLQkJCQllLT52YWxpZF9ibG9ja3MgKz0gc2UtPnZhbGlkX2Js b2NrczsKLQkJCX0KKwkJCWlmIChzYmktPnNlZ3NfcGVyX3NlYyA+IDEpCisJCQkJZ2V0X3NlY19l bnRyeShzYmksIHN0YXJ0KS0+dmFsaWRfYmxvY2tzICs9CisJCQkJCQkJc2UtPnZhbGlkX2Jsb2Nr czsKIAkJfQogCQlzdGFydF9ibGsgKz0gcmVhZGVkOwogCX0gd2hpbGUgKHN0YXJ0X2JsayA8IHNp dF9ibGtfY250KTsKKworCW11dGV4X2xvY2soJmN1cnNlZy0+Y3Vyc2VnX211dGV4KTsKKwlmb3Ig KGkgPSAwOyBpIDwgc2l0c19pbl9jdXJzdW0oc3VtKTsgaSsrKSB7CisJCXN0cnVjdCBmMmZzX3Np dF9lbnRyeSBzaXQ7CisJCXN0cnVjdCBzZWdfZW50cnkgKnNlOworCQl1bnNpZ25lZCBpbnQgb2xk X3ZhbGlkX2Jsb2NrczsKKworCQlzdGFydCA9IGxlMzJfdG9fY3B1KHNlZ25vX2luX2pvdXJuYWwo c3VtLCBpKSk7CisJCXNlID0gJnNpdF9pLT5zZW50cmllc1tzdGFydF07CisJCXNpdCA9IHNpdF9p bl9qb3VybmFsKHN1bSwgaSk7CisKKwkJb2xkX3ZhbGlkX2Jsb2NrcyA9IHNlLT52YWxpZF9ibG9j a3M7CisKKwkJY2hlY2tfYmxvY2tfY291bnQoc2JpLCBzdGFydCwgJnNpdCk7CisJCXNlZ19pbmZv X2Zyb21fcmF3X3NpdChzZSwgJnNpdCk7CisKKwkJbWVtY3B5KHNlLT5kaXNjYXJkX21hcCwgc2Ut PmN1cl92YWxpZF9tYXAsIFNJVF9WQkxPQ0tfTUFQX1NJWkUpOworCQlzYmktPmRpc2NhcmRfYmxr cyArPSBvbGRfdmFsaWRfYmxvY2tzIC0gc2UtPnZhbGlkX2Jsb2NrczsKKworCQlpZiAoc2JpLT5z ZWdzX3Blcl9zZWMgPiAxKQorCQkJZ2V0X3NlY19lbnRyeShzYmksIHN0YXJ0KS0+dmFsaWRfYmxv Y2tzICs9CisJCQkJc2UtPnZhbGlkX2Jsb2NrcyAtIG9sZF92YWxpZF9ibG9ja3M7CisJfQorCW11 dGV4X3VubG9jaygmY3Vyc2VnLT5jdXJzZWdfbXV0ZXgpOwogfQogCiBzdGF0aWMgdm9pZCBpbml0 X2ZyZWVfc2VnbWFwKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKCkZyb20gNzFkOTFlY2I4OTI0 NzZhNWQyODBkMWVjZThhNWFjZDlhNmIzNDg5NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2VybmVsLm9yZz4KRGF0ZTogTW9uLCAxOSBTZXAgMjAx NiAxNzo1NToxMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMzZdIGYyZnM6IHVzZSBjcmMgYW5k IGNwIHZlcnNpb24gdG8gZGV0ZXJtaW5lIHJvbGwtZm9yd2FyZAogcmVjb3ZlcnkKCmNvbW1pdCBh NDY4ZjBlZjUxNmZkYTljN2Q5MWJiNTUwZDQ1OGU4NTNkNzY5NTVlIHVwc3RyZWFtLgoKUHJldmlv dXNseSwgd2UgdXNlZCBjcF92ZXJzaW9uIG9ubHkgdG8gZGV0ZWN0IHJlY292ZXJhYmxlIGRub2Rl cy4KSW4gb3JkZXIgdG8gYXZvaWQgc2FtZSBnYXJiYWdlIGNwX3ZlcnNpb24sIHdlIG5lZWRlZCB0 byB0cnVuY2F0ZSB0aGUgbmV4dApkbm9kZSBkdXJpbmcgY2hlY2twb2ludCwgcmVzdWx0aW5nIGlu IGFkZGl0aW9uYWwgZGlzY2FyZCBvciBkYXRhIHdyaXRlLgpJZiB3ZSBjYW4gZGlzdGluZ3Vpc2gg dGhpcyBieSB1c2luZyBjcmMgaW4gYWRkaXRpb24gdG8gY3BfdmVyc2lvbiwgd2UgY2FuCnJlbW92 ZSB0aGlzIG92ZXJoZWFkLgoKVGhlcmUgaXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBjb25jZXJu IHdoZXJlIGl0IGNoYW5nZXMgbm9kZV9mb290ZXIgbGF5b3V0LgpTbywgdGhpcyBwYXRjaCBpbnRy b2R1Y2VzIGEgbmV3IGNoZWNrcG9pbnQgZmxhZywgQ1BfQ1JDX1JFQ09WRVJZX0ZMQUcsIHRvCmRl dGVjdCBuZXcgbGF5b3V0LiBOZXcgbGF5b3V0IHdpbGwgYmUgYWN0aXZhdGVkIG9ubHkgd2hlbiB0 aGlzIGZsYWcgaXMgc2V0LgoKU2lnbmVkLW9mZi1ieTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2Vy bmVsLm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0LjQ6CiAtIERlbGV0ZWQgY29kZSBpcyBzbGln aHRseSBkaWZmZXJlbnQKIC0gQWRqdXN0IGNvbnRleHRdClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRj aGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2YyZnMvY2hlY2tw b2ludC5jICAgIHwgMjEgKystLS0tLS0tLS0tLS0KIGZzL2YyZnMvZjJmcy5oICAgICAgICAgIHwg IDEgLQogZnMvZjJmcy9ub2RlLmggICAgICAgICAgfCA3NyArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiBmcy9mMmZzL3JlY292ZXJ5LmMgICAgICB8IDMw ICsrKystLS0tLS0tLS0tLS0tLS0KIGZzL2YyZnMvc2VnbWVudC5jICAgICAgIHwgMjIgLS0tLS0t LS0tLS0tLS0KIGZzL2YyZnMvc3VwZXIuYyAgICAgICAgIHwgIDUgKysrLQogaW5jbHVkZS9saW51 eC9mMmZzX2ZzLmggfCAgMSArCiA3IGZpbGVzIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDk0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvY2hlY2twb2ludC5jIGIvZnMvZjJm cy9jaGVja3BvaW50LmMKaW5kZXggNjkyYjZhM2M4OTcxLi4zOTM4N2YwZjc2MDkgMTAwNjQ0Ci0t LSBhL2ZzL2YyZnMvY2hlY2twb2ludC5jCisrKyBiL2ZzL2YyZnMvY2hlY2twb2ludC5jCkBAIC05 MDIsNyArOTAyLDYgQEAgc3RhdGljIHZvaWQgd2FpdF9vbl9hbGxfcGFnZXNfd3JpdGViYWNrKHN0 cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKIHN0YXRpYyB2b2lkIGRvX2NoZWNrcG9pbnQoc3RydWN0 IGYyZnNfc2JfaW5mbyAqc2JpLCBzdHJ1Y3QgY3BfY29udHJvbCAqY3BjKQogewogCXN0cnVjdCBm MmZzX2NoZWNrcG9pbnQgKmNrcHQgPSBGMkZTX0NLUFQoc2JpKTsKLQlzdHJ1Y3QgY3Vyc2VnX2lu Zm8gKmN1cnNlZyA9IENVUlNFR19JKHNiaSwgQ1VSU0VHX1dBUk1fTk9ERSk7CiAJc3RydWN0IGYy ZnNfbm1faW5mbyAqbm1faSA9IE5NX0koc2JpKTsKIAl1bnNpZ25lZCBsb25nIG9ycGhhbl9udW0g PSBzYmktPmltW09SUEhBTl9JTk9dLmlub19udW07CiAJbmlkX3QgbGFzdF9uaWQgPSBubV9pLT5u ZXh0X3NjYW5fbmlkOwpAQCAtOTExLDE1ICs5MTAsNiBAQCBzdGF0aWMgdm9pZCBkb19jaGVja3Bv aW50KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IGNwX2NvbnRyb2wgKmNwYykKIAlf X3UzMiBjcmMzMiA9IDA7CiAJaW50IGk7CiAJaW50IGNwX3BheWxvYWRfYmxrcyA9IF9fY3BfcGF5 bG9hZChzYmkpOwotCWJsb2NrX3QgZGlzY2FyZF9ibGsgPSBORVhUX0ZSRUVfQkxLQUREUihzYmks IGN1cnNlZyk7Ci0JYm9vbCBpbnZhbGlkYXRlID0gZmFsc2U7Ci0KLQkvKgotCSAqIFRoaXMgYXZv aWRzIHRvIGNvbmR1Y3Qgd3Jvbmcgcm9sbC1mb3J3YXJkIG9wZXJhdGlvbnMgYW5kIHVzZXMKLQkg KiBtZXRhcGFnZXMsIHNvIHNob3VsZCBiZSBjYWxsZWQgcHJpb3IgdG8gc3luY19tZXRhX3BhZ2Vz IGJlbG93LgotCSAqLwotCWlmIChkaXNjYXJkX25leHRfZG5vZGUoc2JpLCBkaXNjYXJkX2Jsaykp Ci0JCWludmFsaWRhdGUgPSB0cnVlOwogCiAJLyogRmx1c2ggYWxsIHRoZSBOQVQvU0lUIHBhZ2Vz ICovCiAJd2hpbGUgKGdldF9wYWdlcyhzYmksIEYyRlNfRElSVFlfTUVUQSkpIHsKQEAgLTk5Niw2 ICs5ODYsOSBAQCBzdGF0aWMgdm9pZCBkb19jaGVja3BvaW50KHN0cnVjdCBmMmZzX3NiX2luZm8g KnNiaSwgc3RydWN0IGNwX2NvbnRyb2wgKmNwYykKIAlpZiAoaXNfc2JpX2ZsYWdfc2V0KHNiaSwg U0JJX05FRURfRlNDSykpCiAJCXNldF9ja3B0X2ZsYWdzKGNrcHQsIENQX0ZTQ0tfRkxBRyk7CiAK KwkvKiBzZXQgdGhpcyBmbGFnIHRvIGFjdGl2YXRlIGNyY3xjcF92ZXIgZm9yIHJlY292ZXJ5ICov CisJc2V0X2NrcHRfZmxhZ3MoY2twdCwgQ1BfQ1JDX1JFQ09WRVJZX0ZMQUcpOworCiAJLyogdXBk YXRlIFNJVC9OQVQgYml0bWFwICovCiAJZ2V0X3NpdF9iaXRtYXAoc2JpLCBfX2JpdG1hcF9wdHIo c2JpLCBTSVRfQklUTUFQKSk7CiAJZ2V0X25hdF9iaXRtYXAoc2JpLCBfX2JpdG1hcF9wdHIoc2Jp LCBOQVRfQklUTUFQKSk7CkBAIC0xMDUzLDE0ICsxMDQ2LDYgQEAgc3RhdGljIHZvaWQgZG9fY2hl Y2twb2ludChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHN0cnVjdCBjcF9jb250cm9sICpjcGMp CiAJLyogd2FpdCBmb3IgcHJldmlvdXMgc3VibWl0dGVkIG1ldGEgcGFnZXMgd3JpdGViYWNrICov CiAJd2FpdF9vbl9hbGxfcGFnZXNfd3JpdGViYWNrKHNiaSk7CiAKLQkvKgotCSAqIGludmFsaWRh dGUgbWV0YSBwYWdlIHdoaWNoIGlzIHVzZWQgdGVtcG9yYXJpbHkgZm9yIHplcm9pbmcgb3V0Ci0J ICogYmxvY2sgYXQgdGhlIGVuZCBvZiB3YXJtIG5vZGUgY2hhaW4uCi0JICovCi0JaWYgKGludmFs aWRhdGUpCi0JCWludmFsaWRhdGVfbWFwcGluZ19wYWdlcyhNRVRBX01BUFBJTkcoc2JpKSwgZGlz Y2FyZF9ibGssCi0JCQkJCQkJCWRpc2NhcmRfYmxrKTsKLQogCXJlbGVhc2VfZGlydHlfaW5vZGUo c2JpKTsKIAogCWlmICh1bmxpa2VseShmMmZzX2NwX2Vycm9yKHNiaSkpKQpkaWZmIC0tZ2l0IGEv ZnMvZjJmcy9mMmZzLmggYi9mcy9mMmZzL2YyZnMuaAppbmRleCA5Mjk2MTYxYzA1MTkuLjJjNTIx ZGEzMzQxMyAxMDA2NDQKLS0tIGEvZnMvZjJmcy9mMmZzLmgKKysrIGIvZnMvZjJmcy9mMmZzLmgK QEAgLTE3ODAsNyArMTc4MCw2IEBAIGJvb2wgaXNfY2hlY2twb2ludGVkX2RhdGEoc3RydWN0IGYy ZnNfc2JfaW5mbyAqLCBibG9ja190KTsKIHZvaWQgcmVmcmVzaF9zaXRfZW50cnkoc3RydWN0IGYy ZnNfc2JfaW5mbyAqLCBibG9ja190LCBibG9ja190KTsKIHZvaWQgY2xlYXJfcHJlZnJlZV9zZWdt ZW50cyhzdHJ1Y3QgZjJmc19zYl9pbmZvICosIHN0cnVjdCBjcF9jb250cm9sICopOwogdm9pZCBy ZWxlYXNlX2Rpc2NhcmRfYWRkcnMoc3RydWN0IGYyZnNfc2JfaW5mbyAqKTsKLWJvb2wgZGlzY2Fy ZF9uZXh0X2Rub2RlKHN0cnVjdCBmMmZzX3NiX2luZm8gKiwgYmxvY2tfdCk7CiBpbnQgbnBhZ2Vz X2Zvcl9zdW1tYXJ5X2ZsdXNoKHN0cnVjdCBmMmZzX3NiX2luZm8gKiwgYm9vbCk7CiB2b2lkIGFs bG9jYXRlX25ld19zZWdtZW50cyhzdHJ1Y3QgZjJmc19zYl9pbmZvICopOwogaW50IGYyZnNfdHJp bV9mcyhzdHJ1Y3QgZjJmc19zYl9pbmZvICosIHN0cnVjdCBmc3RyaW1fcmFuZ2UgKik7CmRpZmYg LS1naXQgYS9mcy9mMmZzL25vZGUuaCBiL2ZzL2YyZnMvbm9kZS5oCmluZGV4IGU0ZmZmZDJkOThj NC4uMGQ2ZjBlM2RjNjU1IDEwMDY0NAotLS0gYS9mcy9mMmZzL25vZGUuaAorKysgYi9mcy9mMmZz L25vZGUuaApAQCAtMjEyLDYgKzIxMiwzNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0X3RvX25l eHRfbmF0KHN0cnVjdCBmMmZzX25tX2luZm8gKm5tX2ksIG5pZF90IHN0YXJ0X25pZCkKIAlmMmZz X2NoYW5nZV9iaXQoYmxvY2tfb2ZmLCBubV9pLT5uYXRfYml0bWFwKTsKIH0KIAorc3RhdGljIGlu bGluZSBuaWRfdCBpbm9fb2Zfbm9kZShzdHJ1Y3QgcGFnZSAqbm9kZV9wYWdlKQoreworCXN0cnVj dCBmMmZzX25vZGUgKnJuID0gRjJGU19OT0RFKG5vZGVfcGFnZSk7CisJcmV0dXJuIGxlMzJfdG9f Y3B1KHJuLT5mb290ZXIuaW5vKTsKK30KKworc3RhdGljIGlubGluZSBuaWRfdCBuaWRfb2Zfbm9k ZShzdHJ1Y3QgcGFnZSAqbm9kZV9wYWdlKQoreworCXN0cnVjdCBmMmZzX25vZGUgKnJuID0gRjJG U19OT0RFKG5vZGVfcGFnZSk7CisJcmV0dXJuIGxlMzJfdG9fY3B1KHJuLT5mb290ZXIubmlkKTsK K30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgb2ZzX29mX25vZGUoc3RydWN0IHBhZ2Ug Km5vZGVfcGFnZSkKK3sKKwlzdHJ1Y3QgZjJmc19ub2RlICpybiA9IEYyRlNfTk9ERShub2RlX3Bh Z2UpOworCXVuc2lnbmVkIGZsYWcgPSBsZTMyX3RvX2NwdShybi0+Zm9vdGVyLmZsYWcpOworCXJl dHVybiBmbGFnID4+IE9GRlNFVF9CSVRfU0hJRlQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgX191NjQg Y3B2ZXJfb2Zfbm9kZShzdHJ1Y3QgcGFnZSAqbm9kZV9wYWdlKQoreworCXN0cnVjdCBmMmZzX25v ZGUgKnJuID0gRjJGU19OT0RFKG5vZGVfcGFnZSk7CisJcmV0dXJuIGxlNjRfdG9fY3B1KHJuLT5m b290ZXIuY3BfdmVyKTsKK30KKworc3RhdGljIGlubGluZSBibG9ja190IG5leHRfYmxrYWRkcl9v Zl9ub2RlKHN0cnVjdCBwYWdlICpub2RlX3BhZ2UpCit7CisJc3RydWN0IGYyZnNfbm9kZSAqcm4g PSBGMkZTX05PREUobm9kZV9wYWdlKTsKKwlyZXR1cm4gbGUzMl90b19jcHUocm4tPmZvb3Rlci5u ZXh0X2Jsa2FkZHIpOworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbF9ub2RlX2Zvb3Rlcihz dHJ1Y3QgcGFnZSAqcGFnZSwgbmlkX3QgbmlkLAogCQkJCW5pZF90IGlubywgdW5zaWduZWQgaW50 IG9mcywgYm9vbCByZXNldCkKIHsKQEAgLTI0Miw0MCArMjczLDMwIEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBmaWxsX25vZGVfZm9vdGVyX2Jsa2FkZHIoc3RydWN0IHBhZ2UgKnBhZ2UsIGJsb2NrX3Qg YmxrYWRkcikKIHsKIAlzdHJ1Y3QgZjJmc19jaGVja3BvaW50ICpja3B0ID0gRjJGU19DS1BUKEYy RlNfUF9TQihwYWdlKSk7CiAJc3RydWN0IGYyZnNfbm9kZSAqcm4gPSBGMkZTX05PREUocGFnZSk7 CisJc2l6ZV90IGNyY19vZmZzZXQgPSBsZTMyX3RvX2NwdShja3B0LT5jaGVja3N1bV9vZmZzZXQp OworCV9fdTY0IGNwX3ZlciA9IGxlNjRfdG9fY3B1KGNrcHQtPmNoZWNrcG9pbnRfdmVyKTsKIAot CXJuLT5mb290ZXIuY3BfdmVyID0gY2twdC0+Y2hlY2twb2ludF92ZXI7CisJaWYgKGlzX3NldF9j a3B0X2ZsYWdzKGNrcHQsIENQX0NSQ19SRUNPVkVSWV9GTEFHKSkgeworCQlfX3U2NCBjcmMgPSBs ZTMyX3RvX2NwdSgqKChfX2xlMzIgKikKKwkJCQkoKHVuc2lnbmVkIGNoYXIgKilja3B0ICsgY3Jj X29mZnNldCkpKTsKKwkJY3BfdmVyIHw9IChjcmMgPDwgMzIpOworCX0KKwlybi0+Zm9vdGVyLmNw X3ZlciA9IGNwdV90b19sZTY0KGNwX3Zlcik7CiAJcm4tPmZvb3Rlci5uZXh0X2Jsa2FkZHIgPSBj cHVfdG9fbGUzMihibGthZGRyKTsKIH0KIAotc3RhdGljIGlubGluZSBuaWRfdCBpbm9fb2Zfbm9k ZShzdHJ1Y3QgcGFnZSAqbm9kZV9wYWdlKQotewotCXN0cnVjdCBmMmZzX25vZGUgKnJuID0gRjJG U19OT0RFKG5vZGVfcGFnZSk7Ci0JcmV0dXJuIGxlMzJfdG9fY3B1KHJuLT5mb290ZXIuaW5vKTsK LX0KLQotc3RhdGljIGlubGluZSBuaWRfdCBuaWRfb2Zfbm9kZShzdHJ1Y3QgcGFnZSAqbm9kZV9w YWdlKQorc3RhdGljIGlubGluZSBib29sIGlzX3JlY292ZXJhYmxlX2Rub2RlKHN0cnVjdCBwYWdl ICpwYWdlKQogewotCXN0cnVjdCBmMmZzX25vZGUgKnJuID0gRjJGU19OT0RFKG5vZGVfcGFnZSk7 Ci0JcmV0dXJuIGxlMzJfdG9fY3B1KHJuLT5mb290ZXIubmlkKTsKLX0KLQotc3RhdGljIGlubGlu ZSB1bnNpZ25lZCBpbnQgb2ZzX29mX25vZGUoc3RydWN0IHBhZ2UgKm5vZGVfcGFnZSkKLXsKLQlz dHJ1Y3QgZjJmc19ub2RlICpybiA9IEYyRlNfTk9ERShub2RlX3BhZ2UpOwotCXVuc2lnbmVkIGZs YWcgPSBsZTMyX3RvX2NwdShybi0+Zm9vdGVyLmZsYWcpOwotCXJldHVybiBmbGFnID4+IE9GRlNF VF9CSVRfU0hJRlQ7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBsb25nIGNwdmVy X29mX25vZGUoc3RydWN0IHBhZ2UgKm5vZGVfcGFnZSkKLXsKLQlzdHJ1Y3QgZjJmc19ub2RlICpy biA9IEYyRlNfTk9ERShub2RlX3BhZ2UpOwotCXJldHVybiBsZTY0X3RvX2NwdShybi0+Zm9vdGVy LmNwX3Zlcik7Ci19CisJc3RydWN0IGYyZnNfY2hlY2twb2ludCAqY2twdCA9IEYyRlNfQ0tQVChG MkZTX1BfU0IocGFnZSkpOworCXNpemVfdCBjcmNfb2Zmc2V0ID0gbGUzMl90b19jcHUoY2twdC0+ Y2hlY2tzdW1fb2Zmc2V0KTsKKwlfX3U2NCBjcF92ZXIgPSBjdXJfY3BfdmVyc2lvbihja3B0KTsK IAotc3RhdGljIGlubGluZSBibG9ja190IG5leHRfYmxrYWRkcl9vZl9ub2RlKHN0cnVjdCBwYWdl ICpub2RlX3BhZ2UpCi17Ci0Jc3RydWN0IGYyZnNfbm9kZSAqcm4gPSBGMkZTX05PREUobm9kZV9w YWdlKTsKLQlyZXR1cm4gbGUzMl90b19jcHUocm4tPmZvb3Rlci5uZXh0X2Jsa2FkZHIpOworCWlm IChpc19zZXRfY2twdF9mbGFncyhja3B0LCBDUF9DUkNfUkVDT1ZFUllfRkxBRykpIHsKKwkJX191 NjQgY3JjID0gbGUzMl90b19jcHUoKigoX19sZTMyICopCisJCQkJKCh1bnNpZ25lZCBjaGFyICop Y2twdCArIGNyY19vZmZzZXQpKSk7CisJCWNwX3ZlciB8PSAoY3JjIDw8IDMyKTsKKwl9CisJcmV0 dXJuIGNwdV90b19sZTY0KGNwX3ZlcikgPT0gY3B2ZXJfb2Zfbm9kZShwYWdlKTsKIH0KIAogLyoK ZGlmZiAtLWdpdCBhL2ZzL2YyZnMvcmVjb3ZlcnkuYyBiL2ZzL2YyZnMvcmVjb3ZlcnkuYwppbmRl eCAzMTE2OWRkNDBkMzIuLmI1OTI4NWY0NzM2YyAxMDA2NDQKLS0tIGEvZnMvZjJmcy9yZWNvdmVy eS5jCisrKyBiL2ZzL2YyZnMvcmVjb3ZlcnkuYwpAQCAtMTkzLDcgKzE5Myw2IEBAIHN0YXRpYyB2 b2lkIHJlY292ZXJfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IHBhZ2UgKnBhZ2Up CiAKIHN0YXRpYyBpbnQgZmluZF9mc3luY19kbm9kZXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2Jp LCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQogewotCXVuc2lnbmVkIGxvbmcgbG9uZyBjcF92ZXIg PSBjdXJfY3BfdmVyc2lvbihGMkZTX0NLUFQoc2JpKSk7CiAJc3RydWN0IGN1cnNlZ19pbmZvICpj dXJzZWc7CiAJc3RydWN0IGlub2RlICppbm9kZTsKIAlzdHJ1Y3QgcGFnZSAqcGFnZSA9IE5VTEw7 CkBAIC0yMTQsNyArMjEzLDcgQEAgc3RhdGljIGludCBmaW5kX2ZzeW5jX2Rub2RlcyhzdHJ1Y3Qg ZjJmc19zYl9pbmZvICpzYmksIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCiAKIAkJcGFnZSA9IGdl dF90bXBfcGFnZShzYmksIGJsa2FkZHIpOwogCi0JCWlmIChjcF92ZXIgIT0gY3B2ZXJfb2Zfbm9k ZShwYWdlKSkKKwkJaWYgKCFpc19yZWNvdmVyYWJsZV9kbm9kZShwYWdlKSkKIAkJCWJyZWFrOwog CiAJCWlmICghaXNfZnN5bmNfZG5vZGUocGFnZSkpCkBAIC00ODMsNyArNDgyLDYgQEAgb3V0Ogog c3RhdGljIGludCByZWNvdmVyX2RhdGEoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBzdHJ1Y3Qg bGlzdF9oZWFkICppbm9kZV9saXN0LAogCQkJCQkJc3RydWN0IGxpc3RfaGVhZCAqZGlyX2xpc3Qp CiB7Ci0JdW5zaWduZWQgbG9uZyBsb25nIGNwX3ZlciA9IGN1cl9jcF92ZXJzaW9uKEYyRlNfQ0tQ VChzYmkpKTsKIAlzdHJ1Y3QgY3Vyc2VnX2luZm8gKmN1cnNlZzsKIAlzdHJ1Y3QgcGFnZSAqcGFn ZSA9IE5VTEw7CiAJaW50IGVyciA9IDA7CkBAIC01MDMsNyArNTAxLDcgQEAgc3RhdGljIGludCBy ZWNvdmVyX2RhdGEoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBzdHJ1Y3QgbGlzdF9oZWFkICpp bm9kZV9saXN0LAogCiAJCXBhZ2UgPSBnZXRfdG1wX3BhZ2Uoc2JpLCBibGthZGRyKTsKIAotCQlp ZiAoY3BfdmVyICE9IGNwdmVyX29mX25vZGUocGFnZSkpIHsKKwkJaWYgKCFpc19yZWNvdmVyYWJs ZV9kbm9kZShwYWdlKSkgewogCQkJZjJmc19wdXRfcGFnZShwYWdlLCAxKTsKIAkJCWJyZWFrOwog CQl9CkBAIC01OTUsMzEgKzU5MywxNSBAQCBvdXQ6CiAJfQogCiAJY2xlYXJfc2JpX2ZsYWcoc2Jp LCBTQklfUE9SX0RPSU5HKTsKLQlpZiAoZXJyKSB7Ci0JCWJvb2wgaW52YWxpZGF0ZSA9IGZhbHNl OwotCi0JCWlmIChkaXNjYXJkX25leHRfZG5vZGUoc2JpLCBibGthZGRyKSkKLQkJCWludmFsaWRh dGUgPSB0cnVlOwotCi0JCS8qIEZsdXNoIGFsbCB0aGUgTkFUL1NJVCBwYWdlcyAqLwotCQl3aGls ZSAoZ2V0X3BhZ2VzKHNiaSwgRjJGU19ESVJUWV9NRVRBKSkKLQkJCXN5bmNfbWV0YV9wYWdlcyhz YmksIE1FVEEsIExPTkdfTUFYKTsKLQotCQkvKiBpbnZhbGlkYXRlIHRlbXBvcmFyeSBtZXRhIHBh Z2UgKi8KLQkJaWYgKGludmFsaWRhdGUpCi0JCQlpbnZhbGlkYXRlX21hcHBpbmdfcGFnZXMoTUVU QV9NQVBQSU5HKHNiaSksCi0JCQkJCQkJYmxrYWRkciwgYmxrYWRkcik7Ci0KKwlpZiAoZXJyKQog CQlzZXRfY2twdF9mbGFncyhzYmktPmNrcHQsIENQX0VSUk9SX0ZMQUcpOwotCQltdXRleF91bmxv Y2soJnNiaS0+Y3BfbXV0ZXgpOwotCX0gZWxzZSBpZiAobmVlZF93cml0ZWNwKSB7CisJbXV0ZXhf dW5sb2NrKCZzYmktPmNwX211dGV4KTsKKworCWlmICghZXJyICYmIG5lZWRfd3JpdGVjcCkgewog CQlzdHJ1Y3QgY3BfY29udHJvbCBjcGMgPSB7CiAJCQkucmVhc29uID0gQ1BfUkVDT1ZFUlksCiAJ CX07Ci0JCW11dGV4X3VubG9jaygmc2JpLT5jcF9tdXRleCk7CiAJCXdyaXRlX2NoZWNrcG9pbnQo c2JpLCAmY3BjKTsKLQl9IGVsc2UgewotCQltdXRleF91bmxvY2soJnNiaS0+Y3BfbXV0ZXgpOwog CX0KIAogCWRlc3Ryb3lfZnN5bmNfZG5vZGVzKCZkaXJfbGlzdCk7CmRpZmYgLS1naXQgYS9mcy9m MmZzL3NlZ21lbnQuYyBiL2ZzL2YyZnMvc2VnbWVudC5jCmluZGV4IGFhZTM0NzMyZTkzMi4uYjMy YmI2OTNlODNjIDEwMDY0NAotLS0gYS9mcy9mMmZzL3NlZ21lbnQuYworKysgYi9mcy9mMmZzL3Nl Z21lbnQuYwpAQCAtNTE2LDI4ICs1MTYsNiBAQCBzdGF0aWMgaW50IGYyZnNfaXNzdWVfZGlzY2Fy ZChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksCiAJcmV0dXJuIGJsa2Rldl9pc3N1ZV9kaXNjYXJk KHNiaS0+c2ItPnNfYmRldiwgc3RhcnQsIGxlbiwgR0ZQX05PRlMsIDApOwogfQogCi1ib29sIGRp c2NhcmRfbmV4dF9kbm9kZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJsb2NrX3QgYmxrYWRk cikKLXsKLQlpbnQgZXJyID0gLUVOT1RTVVBQOwotCi0JaWYgKHRlc3Rfb3B0KHNiaSwgRElTQ0FS RCkpIHsKLQkJc3RydWN0IHNlZ19lbnRyeSAqc2UgPSBnZXRfc2VnX2VudHJ5KHNiaSwKLQkJCQlH RVRfU0VHTk8oc2JpLCBibGthZGRyKSk7Ci0JCXVuc2lnbmVkIGludCBvZmZzZXQgPSBHRVRfQkxL T0ZGX0ZST01fU0VHMChzYmksIGJsa2FkZHIpOwotCi0JCWlmIChmMmZzX3Rlc3RfYml0KG9mZnNl dCwgc2UtPmRpc2NhcmRfbWFwKSkKLQkJCXJldHVybiBmYWxzZTsKLQotCQllcnIgPSBmMmZzX2lz c3VlX2Rpc2NhcmQoc2JpLCBibGthZGRyLCAxKTsKLQl9Ci0KLQlpZiAoZXJyKSB7Ci0JCXVwZGF0 ZV9tZXRhX3BhZ2Uoc2JpLCBOVUxMLCBibGthZGRyKTsKLQkJcmV0dXJuIHRydWU7Ci0JfQotCXJl dHVybiBmYWxzZTsKLX0KLQogc3RhdGljIHZvaWQgX19hZGRfZGlzY2FyZF9lbnRyeShzdHJ1Y3Qg ZjJmc19zYl9pbmZvICpzYmksCiAJCXN0cnVjdCBjcF9jb250cm9sICpjcGMsIHN0cnVjdCBzZWdf ZW50cnkgKnNlLAogCQl1bnNpZ25lZCBpbnQgc3RhcnQsIHVuc2lnbmVkIGludCBlbmQpCmRpZmYg LS1naXQgYS9mcy9mMmZzL3N1cGVyLmMgYi9mcy9mMmZzL3N1cGVyLmMKaW5kZXggM2Q1YzhhNjBh YzZlLi45ZTk0ODE0NDZlZWUgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvc3VwZXIuYworKysgYi9mcy9m MmZzL3N1cGVyLmMKQEAgLTE0NTcsNiArMTQ1Nyw5IEBAIHRyeV9vbmVtb3JlOgogCQlpZiAobmVl ZF9mc2NrKQogCQkJc2V0X3NiaV9mbGFnKHNiaSwgU0JJX05FRURfRlNDSyk7CiAKKwkJaWYgKCFy ZXRyeSkKKwkJCWdvdG8gc2tpcF9yZWNvdmVyeTsKKwogCQllcnIgPSByZWNvdmVyX2ZzeW5jX2Rh dGEoc2JpLCBmYWxzZSk7CiAJCWlmIChlcnIgPCAwKSB7CiAJCQluZWVkX2ZzY2sgPSB0cnVlOwpA QCAtMTQ3NCw3ICsxNDc3LDcgQEAgdHJ5X29uZW1vcmU6CiAJCQlnb3RvIGZyZWVfa29iajsKIAkJ fQogCX0KLQorc2tpcF9yZWNvdmVyeToKIAkvKiByZWNvdmVyX2ZzeW5jX2RhdGEoKSBjbGVhcmVk IHRoaXMgYWxyZWFkeSAqLwogCWNsZWFyX3NiaV9mbGFnKHNiaSwgU0JJX1BPUl9ET0lORyk7CiAK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZjJmc19mcy5oIGIvaW5jbHVkZS9saW51eC9mMmZz X2ZzLmgKaW5kZXggMWY4MWViY2MyOTQ4Li41MjBmZDg1NGU3YjMgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbGludXgvZjJmc19mcy5oCisrKyBiL2luY2x1ZGUvbGludXgvZjJmc19mcy5oCkBAIC05OSw2 ICs5OSw3IEBAIHN0cnVjdCBmMmZzX3N1cGVyX2Jsb2NrIHsKIC8qCiAgKiBGb3IgY2hlY2twb2lu dAogICovCisjZGVmaW5lIENQX0NSQ19SRUNPVkVSWV9GTEFHCTB4MDAwMDAwNDAKICNkZWZpbmUg Q1BfRkFTVEJPT1RfRkxBRwkweDAwMDAwMDIwCiAjZGVmaW5lIENQX0ZTQ0tfRkxBRwkJMHgwMDAw MDAxMAogI2RlZmluZSBDUF9FUlJPUl9GTEFHCQkweDAwMDAwMDA4CgpGcm9tIDRhMTZmZjUzMzJm OTIzMDY3YmRkM2EyZDA5NWQ1OTU4MjQ1YWU3YjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFRpZXpodSBZYW5nIDxrZXJuZWxwYXRjaEAxMjYuY29tPgpEYXRlOiBGcmksIDMwIFNlcCAy MDE2IDA4OjI0OjUzICswODAwClN1YmplY3Q6IFtQQVRDSCAxMy8zNl0gZjJmczogaW50cm9kdWNl IGdldF9jaGVja3BvaW50X3ZlcnNpb24gZm9yIGNsZWFudXAKCmNvbW1pdCBmYzAwNjVhZGIyMDI1 MThlMjVmYjkyOWNkYTdkNTg4N2E0NTZmNzc0IHVwc3RyZWFtLgoKVGhlcmUgZXhpc3RzIGFsbW9z dCBzYW1lIGNvZGVzIHdoZW4gZ2V0IHRoZSB2YWx1ZSBvZiBwcmVfdmVyc2lvbgphbmQgY3VyX3Zl cnNpb24gaW4gZnVuY3Rpb24gdmFsaWRhdGVfY2hlY2twb2ludCwgdGhpcyBwYXRjaCBhZGRzCmdl dF9jaGVja3BvaW50X3ZlcnNpb24gdG8gY2xlYW4gdXAgcmVkdW5kYW50IGNvZGVzLgoKU2lnbmVk LW9mZi1ieTogVGllemh1IFlhbmcgPGtlcm5lbHBhdGNoQDEyNi5jb20+ClJldmlld2VkLWJ5OiBD aGFvIFl1IDx5dWNoYW8wQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IEphZWdldWsgS2ltIDxq YWVnZXVrQGtlcm5lbC5vcmc+Cltid2g6IEJhY2twb3J0ZWQgdG8gNC40OiBmMmZzX2NyY192YWxp ZCgpIGRvZXNuJ3QgdGFrZSBhbiBmMmZzX3NiX2luZm8gcG9pbnRlcl0KU2lnbmVkLW9mZi1ieTog QmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZnMvZjJm cy9jaGVja3BvaW50LmMgfCA2NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgMjggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9jaGVja3BvaW50LmMgYi9mcy9mMmZzL2No ZWNrcG9pbnQuYwppbmRleCAzOTM4N2YwZjc2MDkuLjMzN2UxMzJiYTVhYiAxMDA2NDQKLS0tIGEv ZnMvZjJmcy9jaGVja3BvaW50LmMKKysrIGIvZnMvZjJmcy9jaGVja3BvaW50LmMKQEAgLTYwMSw0 NSArNjAxLDU1IEBAIHN0YXRpYyB2b2lkIHdyaXRlX29ycGhhbl9pbm9kZXMoc3RydWN0IGYyZnNf c2JfaW5mbyAqc2JpLCBibG9ja190IHN0YXJ0X2JsaykKIAl9CiB9CiAKLXN0YXRpYyBzdHJ1Y3Qg cGFnZSAqdmFsaWRhdGVfY2hlY2twb2ludChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksCi0JCQkJ YmxvY2tfdCBjcF9hZGRyLCB1bnNpZ25lZCBsb25nIGxvbmcgKnZlcnNpb24pCitzdGF0aWMgaW50 IGdldF9jaGVja3BvaW50X3ZlcnNpb24oc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBibG9ja190 IGNwX2FkZHIsCisJCXN0cnVjdCBmMmZzX2NoZWNrcG9pbnQgKipjcF9ibG9jaywgc3RydWN0IHBh Z2UgKipjcF9wYWdlLAorCQl1bnNpZ25lZCBsb25nIGxvbmcgKnZlcnNpb24pCiB7Ci0Jc3RydWN0 IHBhZ2UgKmNwX3BhZ2VfMSwgKmNwX3BhZ2VfMiA9IE5VTEw7CiAJdW5zaWduZWQgbG9uZyBibGtf c2l6ZSA9IHNiaS0+YmxvY2tzaXplOwotCXN0cnVjdCBmMmZzX2NoZWNrcG9pbnQgKmNwX2Jsb2Nr OwotCXVuc2lnbmVkIGxvbmcgbG9uZyBjdXJfdmVyc2lvbiA9IDAsIHByZV92ZXJzaW9uID0gMDsK LQlzaXplX3QgY3JjX29mZnNldDsKKwlzaXplX3QgY3JjX29mZnNldCA9IDA7CiAJX191MzIgY3Jj ID0gMDsKIAotCS8qIFJlYWQgdGhlIDFzdCBjcCBibG9jayBpbiB0aGlzIENQIHBhY2sgKi8KLQlj cF9wYWdlXzEgPSBnZXRfbWV0YV9wYWdlKHNiaSwgY3BfYWRkcik7CisJKmNwX3BhZ2UgPSBnZXRf bWV0YV9wYWdlKHNiaSwgY3BfYWRkcik7CisJKmNwX2Jsb2NrID0gKHN0cnVjdCBmMmZzX2NoZWNr cG9pbnQgKilwYWdlX2FkZHJlc3MoKmNwX3BhZ2UpOwogCi0JLyogZ2V0IHRoZSB2ZXJzaW9uIG51 bWJlciAqLwotCWNwX2Jsb2NrID0gKHN0cnVjdCBmMmZzX2NoZWNrcG9pbnQgKilwYWdlX2FkZHJl c3MoY3BfcGFnZV8xKTsKLQljcmNfb2Zmc2V0ID0gbGUzMl90b19jcHUoY3BfYmxvY2stPmNoZWNr c3VtX29mZnNldCk7Ci0JaWYgKGNyY19vZmZzZXQgPj0gYmxrX3NpemUpCi0JCWdvdG8gaW52YWxp ZF9jcDE7CisJY3JjX29mZnNldCA9IGxlMzJfdG9fY3B1KCgqY3BfYmxvY2spLT5jaGVja3N1bV9v ZmZzZXQpOworCWlmIChjcmNfb2Zmc2V0ID49IGJsa19zaXplKSB7CisJCWYyZnNfbXNnKHNiaS0+ c2IsIEtFUk5fV0FSTklORywKKwkJCSJpbnZhbGlkIGNyY19vZmZzZXQ6ICV6dSIsIGNyY19vZmZz ZXQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAKLQljcmMgPSBsZTMyX3RvX2NwdSgqKChfX2xl MzIgKikoKHVuc2lnbmVkIGNoYXIgKiljcF9ibG9jayArIGNyY19vZmZzZXQpKSk7Ci0JaWYgKCFm MmZzX2NyY192YWxpZChjcmMsIGNwX2Jsb2NrLCBjcmNfb2Zmc2V0KSkKLQkJZ290byBpbnZhbGlk X2NwMTsKKwljcmMgPSBsZTMyX3RvX2NwdSgqKChfX2xlMzIgKikoKHVuc2lnbmVkIGNoYXIgKikq Y3BfYmxvY2sKKwkJCQkJCQkrIGNyY19vZmZzZXQpKSk7CisJaWYgKCFmMmZzX2NyY192YWxpZChj cmMsICpjcF9ibG9jaywgY3JjX29mZnNldCkpIHsKKwkJZjJmc19tc2coc2JpLT5zYiwgS0VSTl9X QVJOSU5HLCAiaW52YWxpZCBjcmMgdmFsdWUiKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQogCi0J cHJlX3ZlcnNpb24gPSBjdXJfY3BfdmVyc2lvbihjcF9ibG9jayk7CisJKnZlcnNpb24gPSBjdXJf Y3BfdmVyc2lvbigqY3BfYmxvY2spOworCXJldHVybiAwOworfQogCi0JLyogUmVhZCB0aGUgMm5k IGNwIGJsb2NrIGluIHRoaXMgQ1AgcGFjayAqLwotCWNwX2FkZHIgKz0gbGUzMl90b19jcHUoY3Bf YmxvY2stPmNwX3BhY2tfdG90YWxfYmxvY2tfY291bnQpIC0gMTsKLQljcF9wYWdlXzIgPSBnZXRf bWV0YV9wYWdlKHNiaSwgY3BfYWRkcik7CitzdGF0aWMgc3RydWN0IHBhZ2UgKnZhbGlkYXRlX2No ZWNrcG9pbnQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAorCQkJCWJsb2NrX3QgY3BfYWRkciwg dW5zaWduZWQgbG9uZyBsb25nICp2ZXJzaW9uKQoreworCXN0cnVjdCBwYWdlICpjcF9wYWdlXzEg PSBOVUxMLCAqY3BfcGFnZV8yID0gTlVMTDsKKwlzdHJ1Y3QgZjJmc19jaGVja3BvaW50ICpjcF9i bG9jayA9IE5VTEw7CisJdW5zaWduZWQgbG9uZyBsb25nIGN1cl92ZXJzaW9uID0gMCwgcHJlX3Zl cnNpb24gPSAwOworCWludCBlcnI7CiAKLQljcF9ibG9jayA9IChzdHJ1Y3QgZjJmc19jaGVja3Bv aW50ICopcGFnZV9hZGRyZXNzKGNwX3BhZ2VfMik7Ci0JY3JjX29mZnNldCA9IGxlMzJfdG9fY3B1 KGNwX2Jsb2NrLT5jaGVja3N1bV9vZmZzZXQpOwotCWlmIChjcmNfb2Zmc2V0ID49IGJsa19zaXpl KQotCQlnb3RvIGludmFsaWRfY3AyOworCWVyciA9IGdldF9jaGVja3BvaW50X3ZlcnNpb24oc2Jp LCBjcF9hZGRyLCAmY3BfYmxvY2ssCisJCQkJCSZjcF9wYWdlXzEsIHZlcnNpb24pOworCWlmIChl cnIpCisJCWdvdG8gaW52YWxpZF9jcDE7CisJcHJlX3ZlcnNpb24gPSAqdmVyc2lvbjsKIAotCWNy YyA9IGxlMzJfdG9fY3B1KCooKF9fbGUzMiAqKSgodW5zaWduZWQgY2hhciAqKWNwX2Jsb2NrICsg Y3JjX29mZnNldCkpKTsKLQlpZiAoIWYyZnNfY3JjX3ZhbGlkKGNyYywgY3BfYmxvY2ssIGNyY19v ZmZzZXQpKQorCWNwX2FkZHIgKz0gbGUzMl90b19jcHUoY3BfYmxvY2stPmNwX3BhY2tfdG90YWxf YmxvY2tfY291bnQpIC0gMTsKKwllcnIgPSBnZXRfY2hlY2twb2ludF92ZXJzaW9uKHNiaSwgY3Bf YWRkciwgJmNwX2Jsb2NrLAorCQkJCQkmY3BfcGFnZV8yLCB2ZXJzaW9uKTsKKwlpZiAoZXJyKQog CQlnb3RvIGludmFsaWRfY3AyOwotCi0JY3VyX3ZlcnNpb24gPSBjdXJfY3BfdmVyc2lvbihjcF9i bG9jayk7CisJY3VyX3ZlcnNpb24gPSAqdmVyc2lvbjsKIAogCWlmIChjdXJfdmVyc2lvbiA9PSBw cmVfdmVyc2lvbikgewogCQkqdmVyc2lvbiA9IGN1cl92ZXJzaW9uOwoKRnJvbSAyOGI5YTczODE3 N2Y5NjFiMjQ0MGZjNTg5OTY5ZmRiODdmODc1ZjMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBKYWVnZXVrIEtpbSA8amFlZ2V1a0BrZXJuZWwub3JnPgpEYXRlOiBNb24sIDE5IFNlcCAy MDE2IDE4OjEzOjU0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNC8zNl0gZjJmczogcHV0IGRpcmVj dG9yeSBpbm9kZXMgYmVmb3JlIGNoZWNrcG9pbnQgaW4KIHJvbGwtZm9yd2FyZCByZWNvdmVyeQoK Y29tbWl0IDllMWU2ZGY0MTJhMjhjZGJiZDI5MDlkZTVjNjE4OWVkYTRhMzM4M2QgdXBzdHJlYW0u CgpCZWZvcmUgY2hlY2twb2ludCwgd2UnZCBiZSBiZXR0ZXIgZHJvcCBhbnkgaW5vZGVzLgoKU2ln bmVkLW9mZi1ieTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1i eTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZnMv ZjJmcy9yZWNvdmVyeS5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9yZWNvdmVyeS5jIGIvZnMvZjJm cy9yZWNvdmVyeS5jCmluZGV4IGI1OTI4NWY0NzM2Yy4uOWI2MjVjYTE5MDAxIDEwMDY0NAotLS0g YS9mcy9mMmZzL3JlY292ZXJ5LmMKKysrIGIvZnMvZjJmcy9yZWNvdmVyeS5jCkBAIC01OTcsNiAr NTk3LDkgQEAgb3V0OgogCQlzZXRfY2twdF9mbGFncyhzYmktPmNrcHQsIENQX0VSUk9SX0ZMQUcp OwogCW11dGV4X3VubG9jaygmc2JpLT5jcF9tdXRleCk7CiAKKwkvKiBsZXQncyBkcm9wIGFsbCB0 aGUgZGlyZWN0b3J5IGlub2RlcyBmb3IgY2xlYW4gY2hlY2twb2ludCAqLworCWRlc3Ryb3lfZnN5 bmNfZG5vZGVzKCZkaXJfbGlzdCk7CisKIAlpZiAoIWVyciAmJiBuZWVkX3dyaXRlY3ApIHsKIAkJ c3RydWN0IGNwX2NvbnRyb2wgY3BjID0gewogCQkJLnJlYXNvbiA9IENQX1JFQ09WRVJZLApAQCAt NjA0LDcgKzYwNyw2IEBAIG91dDoKIAkJd3JpdGVfY2hlY2twb2ludChzYmksICZjcGMpOwogCX0K IAotCWRlc3Ryb3lfZnN5bmNfZG5vZGVzKCZkaXJfbGlzdCk7CiAJa21lbV9jYWNoZV9kZXN0cm95 KGZzeW5jX2VudHJ5X3NsYWIpOwogCXJldHVybiByZXQgPyByZXQ6IGVycjsKIH0KCkZyb20gYThk YzVlYzc2ZjliODkyMzhjZWJkZWYyYmNlMTIwN2NkYjQzMjFkYiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2VybmVsLm9yZz4KRGF0ZTogVGh1LCAy NCBOb3YgMjAxNiAxMjo0NToxNSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMzZdIGYyZnM6IGZp eCB0byBkZXRlcm1pbmUgc3RhcnRfY3BfYWRkciBieQogc2JpLT5jdXJfY3BfcGFjawoKY29tbWl0 IDg1MDhlNDRhZTk4NjIyZjg0MWY1ZWYyOWQwYmYzZDVkYjRlMGMxY2MgdXBzdHJlYW0uCgpXZSBk b24ndCBndWFyYW50ZWUgY3BfYWRkciBpcyBmaXhlZCBieSBjcF92ZXJzaW9uLgpUaGlzIGlzIHRv IHN5bmMgd2l0aCBmMmZzLXRvb2xzLgoKU2lnbmVkLW9mZi1ieTogSmFlZ2V1ayBLaW0gPGphZWdl dWtAa2VybmVsLm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0LjQ6IGFkanVzdCBjb250ZXh0XQpT aWduZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51 az4KLS0tCiBmcy9mMmZzL2NoZWNrcG9pbnQuYyB8ICA4ICsrKysrKystCiBmcy9mMmZzL2YyZnMu aCAgICAgICB8IDI2ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQs IDIzIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2ZzL2YyZnMv Y2hlY2twb2ludC5jIGIvZnMvZjJmcy9jaGVja3BvaW50LmMKaW5kZXggMzM3ZTEzMmJhNWFiLi5i NWI4YjM4YjFjNjYgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvY2hlY2twb2ludC5jCisrKyBiL2ZzL2Yy ZnMvY2hlY2twb2ludC5jCkBAIC03MTAsNiArNzEwLDExIEBAIGludCBnZXRfdmFsaWRfY2hlY2tw b2ludChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCiAJaWYgKHNhbml0eV9jaGVja19ja3B0KHNi aSkpCiAJCWdvdG8gZmFpbF9ub19jcDsKIAorCWlmIChjdXJfcGFnZSA9PSBjcDEpCisJCXNiaS0+ Y3VyX2NwX3BhY2sgPSAxOworCWVsc2UKKwkJc2JpLT5jdXJfY3BfcGFjayA9IDI7CisKIAlpZiAo Y3BfYmxrcyA8PSAxKQogCQlnb3RvIGRvbmU7CiAKQEAgLTEwMDgsNyArMTAxMyw3IEBAIHN0YXRp YyB2b2lkIGRvX2NoZWNrcG9pbnQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBzdHJ1Y3QgY3Bf Y29udHJvbCAqY3BjKQogCQkJCWxlMzJfdG9fY3B1KGNrcHQtPmNoZWNrc3VtX29mZnNldCkpKQog CQkJCT0gY3B1X3RvX2xlMzIoY3JjMzIpOwogCi0Jc3RhcnRfYmxrID0gX19zdGFydF9jcF9hZGRy KHNiaSk7CisJc3RhcnRfYmxrID0gX19zdGFydF9jcF9uZXh0X2FkZHIoc2JpKTsKIAogCS8qIG5l ZWQgdG8gd2FpdCBmb3IgZW5kX2lvIHJlc3VsdHMgKi8KIAl3YWl0X29uX2FsbF9wYWdlc193cml0 ZWJhY2soc2JpKTsKQEAgLTEwNjMsNiArMTA2OCw3IEBAIHN0YXRpYyB2b2lkIGRvX2NoZWNrcG9p bnQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBzdHJ1Y3QgY3BfY29udHJvbCAqY3BjKQogCiAJ Y2xlYXJfcHJlZnJlZV9zZWdtZW50cyhzYmksIGNwYyk7CiAJY2xlYXJfc2JpX2ZsYWcoc2JpLCBT QklfSVNfRElSVFkpOworCV9fc2V0X2NwX25leHRfcGFjayhzYmkpOwogfQogCiAvKgpkaWZmIC0t Z2l0IGEvZnMvZjJmcy9mMmZzLmggYi9mcy9mMmZzL2YyZnMuaAppbmRleCAyYzUyMWRhMzM0MTMu LmY0Mzc5YTE0MWM3NiAxMDA2NDQKLS0tIGEvZnMvZjJmcy9mMmZzLmgKKysrIGIvZnMvZjJmcy9m MmZzLmgKQEAgLTczMSw2ICs3MzEsNyBAQCBzdHJ1Y3QgZjJmc19zYl9pbmZvIHsKIAogCS8qIGZv ciBjaGVja3BvaW50ICovCiAJc3RydWN0IGYyZnNfY2hlY2twb2ludCAqY2twdDsJCS8qIHJhdyBj aGVja3BvaW50IHBvaW50ZXIgKi8KKwlpbnQgY3VyX2NwX3BhY2s7CQkJLyogcmVtYWluIGN1cnJl bnQgY3AgcGFjayAqLwogCXN0cnVjdCBpbm9kZSAqbWV0YV9pbm9kZTsJCS8qIGNhY2hlIG1ldGEg YmxvY2tzICovCiAJc3RydWN0IG11dGV4IGNwX211dGV4OwkJCS8qIGNoZWNrcG9pbnQgcHJvY2Vk dXJlIGxvY2sgKi8KIAlzdHJ1Y3Qgcndfc2VtYXBob3JlIGNwX3J3c2VtOwkJLyogYmxvY2tpbmcg RlMgb3BlcmF0aW9ucyAqLwpAQCAtMTE0MCwyMiArMTE0MSwyNyBAQCBzdGF0aWMgaW5saW5lIHZv aWQgKl9fYml0bWFwX3B0cihzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGludCBmbGFnKQogCiBz dGF0aWMgaW5saW5lIGJsb2NrX3QgX19zdGFydF9jcF9hZGRyKHN0cnVjdCBmMmZzX3NiX2luZm8g KnNiaSkKIHsKLQlibG9ja190IHN0YXJ0X2FkZHI7Ci0Jc3RydWN0IGYyZnNfY2hlY2twb2ludCAq Y2twdCA9IEYyRlNfQ0tQVChzYmkpOwotCXVuc2lnbmVkIGxvbmcgbG9uZyBja3B0X3ZlcnNpb24g PSBjdXJfY3BfdmVyc2lvbihja3B0KTsKLQotCXN0YXJ0X2FkZHIgPSBsZTMyX3RvX2NwdShGMkZT X1JBV19TVVBFUihzYmkpLT5jcF9ibGthZGRyKTsKKwlibG9ja190IHN0YXJ0X2FkZHIgPSBsZTMy X3RvX2NwdShGMkZTX1JBV19TVVBFUihzYmkpLT5jcF9ibGthZGRyKTsKIAotCS8qCi0JICogb2Rk IG51bWJlcmVkIGNoZWNrcG9pbnQgc2hvdWxkIGF0IGNwIHNlZ21lbnQgMAotCSAqIGFuZCBldmVu IHNlZ21lbnQgbXVzdCBiZSBhdCBjcCBzZWdtZW50IDEKLQkgKi8KLQlpZiAoIShja3B0X3ZlcnNp b24gJiAxKSkKKwlpZiAoc2JpLT5jdXJfY3BfcGFjayA9PSAyKQogCQlzdGFydF9hZGRyICs9IHNi aS0+YmxvY2tzX3Blcl9zZWc7CisJcmV0dXJuIHN0YXJ0X2FkZHI7Cit9CiAKK3N0YXRpYyBpbmxp bmUgYmxvY2tfdCBfX3N0YXJ0X2NwX25leHRfYWRkcihzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkp Cit7CisJYmxvY2tfdCBzdGFydF9hZGRyID0gbGUzMl90b19jcHUoRjJGU19SQVdfU1VQRVIoc2Jp KS0+Y3BfYmxrYWRkcik7CisKKwlpZiAoc2JpLT5jdXJfY3BfcGFjayA9PSAxKQorCQlzdGFydF9h ZGRyICs9IHNiaS0+YmxvY2tzX3Blcl9zZWc7CiAJcmV0dXJuIHN0YXJ0X2FkZHI7CiB9CiAKK3N0 YXRpYyBpbmxpbmUgdm9pZCBfX3NldF9jcF9uZXh0X3BhY2soc3RydWN0IGYyZnNfc2JfaW5mbyAq c2JpKQoreworCXNiaS0+Y3VyX2NwX3BhY2sgPSAoc2JpLT5jdXJfY3BfcGFjayA9PSAxKSA/IDIg OiAxOworfQorCiBzdGF0aWMgaW5saW5lIGJsb2NrX3QgX19zdGFydF9zdW1fYWRkcihzdHJ1Y3Qg ZjJmc19zYl9pbmZvICpzYmkpCiB7CiAJcmV0dXJuIGxlMzJfdG9fY3B1KEYyRlNfQ0tQVChzYmkp LT5jcF9wYWNrX3N0YXJ0X3N1bSk7CgpGcm9tIGI0NmM5OGVhMjMyYzhjMDI5MmI4ZDlhMmE5ZmM5 OTY1OWE4YWY5ZmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEphZWdldWsgS2ltIDxq YWVnZXVrQGtlcm5lbC5vcmc+CkRhdGU6IE1vbiwgNSBEZWMgMjAxNiAxMzo1NjowNCAtMDgwMApT dWJqZWN0OiBbUEFUQ0ggMTYvMzZdIGYyZnM6IGRldGVjdCB3cm9uZyBsYXlvdXQKCmNvbW1pdCAy MDQwZmNlODNmZTE3NzYzYjA3Yzk3YzFmNjkxZGEyYmI4NWU0MTM1IHVwc3RyZWFtLgoKUHJldmlv dXMgbWtmcy5mMmZzIGFsbG93cyBzbWFsbCBwYXJ0aXRpb24gaW5hcHByb3ByaWF0ZWx5LCBzbyBm MmZzIHNob3VsZCBkZXRlY3QKdGhhdCBhcyB3ZWxsLgoKUmVmZXIgdGhpcyBpbiBmMmZzLXRvb2xz LgoKbWtmcy5mMmZzOiBkZXRlY3Qgc21hbGwgcGFydGl0aW9uIGJ5IG92ZXJwcm92aXNpb24gcmF0 aW8gYW5kICMgb2Ygc2VnbWVudHMKClJlcG9ydGVkLWFuZC1UZXN0ZWQtYnk6IEVyaWMgQmlnZ2Vy cyA8ZWJpZ2dlcnNAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFlZ2V1ayBLaW0gPGphZWdl dWtAa2VybmVsLm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0LjQ6IGFkanVzdCBjb250ZXh0XQpT aWduZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51 az4KLS0tCiBmcy9mMmZzL3NlZ21lbnQuaCB8ICAyICsrCiBmcy9mMmZzL3N1cGVyLmMgICB8IDEx ICsrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9mcy9mMmZzL3NlZ21lbnQuaCBiL2ZzL2YyZnMvc2VnbWVudC5oCmluZGV4IDEzM2YzYzRj Y2U3NS4uM2NjZDAyMzk2ZTgzIDEwMDY0NAotLS0gYS9mcy9mMmZzL3NlZ21lbnQuaAorKysgYi9m cy9mMmZzL3NlZ21lbnQuaApAQCAtMTcsNiArMTcsOCBAQAogCiAjZGVmaW5lIERFRl9SRUNMQUlN X1BSRUZSRUVfU0VHTUVOVFMJNQkvKiA1JSBvdmVyIHRvdGFsIHNlZ21lbnRzICovCiAKKyNkZWZp bmUgRjJGU19NSU5fU0VHTUVOVFMJOSAvKiBTQiArIDIgKENQICsgU0lUICsgTkFUKSArIFNTQSAr IE1BSU4gKi8KKwogLyogTDogTG9naWNhbCBzZWdtZW50ICMgaW4gdm9sdW1lLCBSOiBSZWxhdGl2 ZSBzZWdtZW50ICMgaW4gbWFpbiBhcmVhICovCiAjZGVmaW5lIEdFVF9MMlJfU0VHTk8oZnJlZV9p LCBzZWdubykJKHNlZ25vIC0gZnJlZV9pLT5zdGFydF9zZWdubykKICNkZWZpbmUgR0VUX1IyTF9T RUdOTyhmcmVlX2ksIHNlZ25vKQkoc2Vnbm8gKyBmcmVlX2ktPnN0YXJ0X3NlZ25vKQpkaWZmIC0t Z2l0IGEvZnMvZjJmcy9zdXBlci5jIGIvZnMvZjJmcy9zdXBlci5jCmluZGV4IDllOTQ4MTQ0NmVl ZS4uODE5NGNhNDhmMTRkIDEwMDY0NAotLS0gYS9mcy9mMmZzL3N1cGVyLmMKKysrIGIvZnMvZjJm cy9zdXBlci5jCkBAIC0xMDc4LDYgKzEwNzgsNyBAQCBpbnQgc2FuaXR5X2NoZWNrX2NrcHQoc3Ry dWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogCXVuc2lnbmVkIGludCB0b3RhbCwgZnNtZXRhOwogCXN0 cnVjdCBmMmZzX3N1cGVyX2Jsb2NrICpyYXdfc3VwZXIgPSBGMkZTX1JBV19TVVBFUihzYmkpOwog CXN0cnVjdCBmMmZzX2NoZWNrcG9pbnQgKmNrcHQgPSBGMkZTX0NLUFQoc2JpKTsKKwl1bnNpZ25l ZCBpbnQgb3ZwX3NlZ21lbnRzLCByZXNlcnZlZF9zZWdtZW50czsKIAl1bnNpZ25lZCBpbnQgbWFp bl9zZWdzLCBibG9ja3NfcGVyX3NlZzsKIAl1bnNpZ25lZCBpbnQgc2l0X3NlZ3MsIG5hdF9zZWdz OwogCXVuc2lnbmVkIGludCBzaXRfYml0bWFwX3NpemUsIG5hdF9iaXRtYXBfc2l6ZTsKQEAgLTEw OTYsNiArMTA5NywxNiBAQCBpbnQgc2FuaXR5X2NoZWNrX2NrcHQoc3RydWN0IGYyZnNfc2JfaW5m byAqc2JpKQogCWlmICh1bmxpa2VseShmc21ldGEgPj0gdG90YWwpKQogCQlyZXR1cm4gMTsKIAor CW92cF9zZWdtZW50cyA9IGxlMzJfdG9fY3B1KGNrcHQtPm92ZXJwcm92X3NlZ21lbnRfY291bnQp OworCXJlc2VydmVkX3NlZ21lbnRzID0gbGUzMl90b19jcHUoY2twdC0+cnN2ZF9zZWdtZW50X2Nv dW50KTsKKworCWlmICh1bmxpa2VseShmc21ldGEgPCBGMkZTX01JTl9TRUdNRU5UUyB8fAorCQkJ b3ZwX3NlZ21lbnRzID09IDAgfHwgcmVzZXJ2ZWRfc2VnbWVudHMgPT0gMCkpIHsKKwkJZjJmc19t c2coc2JpLT5zYiwgS0VSTl9FUlIsCisJCQkiV3JvbmcgbGF5b3V0OiBjaGVjayBta2ZzLmYyZnMg dmVyc2lvbiIpOworCQlyZXR1cm4gMTsKKwl9CisKIAltYWluX3NlZ3MgPSBsZTMyX3RvX2NwdShy YXdfc3VwZXItPnNlZ21lbnRfY291bnRfbWFpbik7CiAJYmxvY2tzX3Blcl9zZWcgPSBzYmktPmJs b2Nrc19wZXJfc2VnOwogCgpGcm9tIDc0YTY2YzJlZmYwYjE0YWQ5ZTBhM2VjNDQxMzI5YzY2NWYy MTY0ZmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEphZWdldWsgS2ltIDxqYWVnZXVr QGtlcm5lbC5vcmc+CkRhdGU6IE1vbiwgNSBEZWMgMjAxNiAxNzoyNTozMiAtMDgwMApTdWJqZWN0 OiBbUEFUQ0ggMTcvMzZdIGYyZnM6IGZyZWUgbWV0YSBwYWdlcyBpZiBzYW5pdHkgY2hlY2sgZm9y IGNrcHQgaXMKIGZhaWxlZAoKY29tbWl0IGEyMTI1ZmY3ZGQxZWQzYTJhNTNjZGMxZjhmOWM5Y2Vj OWNmYWE3YWIgdXBzdHJlYW0uCgpUaGlzIGZpeGVzIG1pc3NpbmcgZnJlZWluZyBtZXRhIHBhZ2Vz IGluIHRoZSBlcnJvciBjYXNlLgoKVGVzdGVkLWJ5OiBFcmljIEJpZ2dlcnMgPGViaWdnZXJzQGdv b2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IEphZWdldWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+ ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNv LnVrPgotLS0KIGZzL2YyZnMvY2hlY2twb2ludC5jIHwgNSArKysrLQogMSBmaWxlIGNoYW5nZWQs IDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvY2hl Y2twb2ludC5jIGIvZnMvZjJmcy9jaGVja3BvaW50LmMKaW5kZXggYjViOGIzOGIxYzY2Li5mMDU3 NmI4MmNiZmEgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvY2hlY2twb2ludC5jCisrKyBiL2ZzL2YyZnMv Y2hlY2twb2ludC5jCkBAIC03MDgsNyArNzA4LDcgQEAgaW50IGdldF92YWxpZF9jaGVja3BvaW50 KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKIAogCS8qIFNhbml0eSBjaGVja2luZyBvZiBjaGVj a3BvaW50ICovCiAJaWYgKHNhbml0eV9jaGVja19ja3B0KHNiaSkpCi0JCWdvdG8gZmFpbF9ub19j cDsKKwkJZ290byBmcmVlX2ZhaWxfbm9fY3A7CiAKIAlpZiAoY3VyX3BhZ2UgPT0gY3AxKQogCQlz YmktPmN1cl9jcF9wYWNrID0gMTsKQEAgLTczNiw2ICs3MzYsOSBAQCBkb25lOgogCWYyZnNfcHV0 X3BhZ2UoY3AyLCAxKTsKIAlyZXR1cm4gMDsKIAorZnJlZV9mYWlsX25vX2NwOgorCWYyZnNfcHV0 X3BhZ2UoY3AxLCAxKTsKKwlmMmZzX3B1dF9wYWdlKGNwMiwgMSk7CiBmYWlsX25vX2NwOgogCWtm cmVlKHNiaS0+Y2twdCk7CiAJcmV0dXJuIC1FSU5WQUw7CgpGcm9tIGVjMmQ5NzlkYzM4ODhiNmRl Nzk1MzQ0MTU3YmI2ZmU3M2JiZThlNDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENo YW8gWXUgPHl1Y2hhbzBAaHVhd2VpLmNvbT4KRGF0ZTogV2VkLCAyMiBNYXIgMjAxNyAxNDo0NTow NSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMzZdIGYyZnM6IGZpeCByYWNlIGNvbmRpdGlvbiBp biBiZXR3ZWVuIGZyZWUgbmlkCiBhbGxvY2F0b3IvaW5pdGlhbGl6ZXIKCmNvbW1pdCAzMGE2MWRk ZjgxMTdjMjZhYzViMjk1ZTEyMzNlYWE5NjI5YTk0Y2EzIHVwc3RyZWFtLgoKSW4gYmVsb3cgY29u Y3VycmVudCBjYXNlLCBhbGxvY2F0ZWQgbmlkIGNhbiBiZSBsb2FkZWQgaW50byBmcmVlIG5pZCBj YWNoZQphbmQgYmUgYWxsb2NhdGVkIGFnYWluLgoKVGhyZWFkIEEJCQkJVGhyZWFkIEIKLSBmMmZz X2NyZWF0ZQogLSBmMmZzX25ld19pbm9kZQogIC0gYWxsb2NfbmlkCiAgIC0gX19pbnNlcnRfbmlk X3RvX2xpc3QoQUxMT0NfTklEX0xJU1QpCgkJCQkJLSBmMmZzX2JhbGFuY2VfZnNfYmcKCQkJCQkg LSBidWlsZF9mcmVlX25pZHMKCQkJCQkgIC0gX19idWlsZF9mcmVlX25pZHMKCQkJCQkgICAtIHNj YW5fbmF0X3BhZ2UKCQkJCQkgICAgLSBhZGRfZnJlZV9uaWQKCQkJCQkgICAgIC0gX19sb29rdXBf bmF0X2NhY2hlCiAtIGYyZnNfYWRkX2xpbmsKICAtIGluaXRfaW5vZGVfbWV0YWRhdGEKICAgLSBu ZXdfaW5vZGVfcGFnZQogICAgLSBuZXdfbm9kZV9wYWdlCiAgICAgLSBzZXRfbm9kZV9hZGRyCiAt IGFsbG9jX25pZF9kb25lCiAgLSBfX3JlbW92ZV9uaWRfZnJvbV9saXN0KEFMTE9DX05JRF9MSVNU KQoJCQkJCSAgICAgLSBfX2luc2VydF9uaWRfdG9fbGlzdChGUkVFX05JRF9MSVNUKQoKVGhpcyBw YXRjaCBtYWtlcyBuYXQgY2FjaGUgbG9va3VwIGFuZCBmcmVlIG5pZCBsaXN0IG9wZXJhdGlvbiBi ZWluZyBhdG9taWNhbAp0byBhdm9pZCB0aGlzIHJhY2UgY29uZGl0aW9uLgoKU2lnbmVkLW9mZi1i eTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogQ2hhbyBZ dSA8eXVjaGFvMEBodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYWVnZXVrIEtpbSA8amFlZ2V1 a0BrZXJuZWwub3JnPgpbYndoOiBCYWNrcG9ydGVkIHRvIDQuNDoKIC0gYWRkX2ZyZWVfbmlkKCkg cmV0dXJucyAwIGluIGNhc2Ugb2YgYW55IGVycm9yIChleGNlcHQgbG93IG1lbW9yeSkKIC0gVHJl ZS9saXN0IGFkZGl0aW9uIGhhcyBub3QgYmVlbiBtb3ZlZCBpbnRvIF9faW5zZXJ0X25pZF90b19s aXN0KCldClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRo aW5rLmNvLnVrPgotLS0KIGZzL2YyZnMvbm9kZS5jIHwgNjIgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQz IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvbm9k ZS5jIGIvZnMvZjJmcy9ub2RlLmMKaW5kZXggY2VkMmFmZDhlM2YyLi4xYjJiZGI4MTY4ZTkgMTAw NjQ0Ci0tLSBhL2ZzL2YyZnMvbm9kZS5jCisrKyBiL2ZzL2YyZnMvbm9kZS5jCkBAIC0xNDI4LDgg KzE0MjgsOSBAQCBzdGF0aWMgdm9pZCBfX2RlbF9mcm9tX2ZyZWVfbmlkX2xpc3Qoc3RydWN0IGYy ZnNfbm1faW5mbyAqbm1faSwKIHN0YXRpYyBpbnQgYWRkX2ZyZWVfbmlkKHN0cnVjdCBmMmZzX3Ni X2luZm8gKnNiaSwgbmlkX3QgbmlkLCBib29sIGJ1aWxkKQogewogCXN0cnVjdCBmMmZzX25tX2lu Zm8gKm5tX2kgPSBOTV9JKHNiaSk7Ci0Jc3RydWN0IGZyZWVfbmlkICppOworCXN0cnVjdCBmcmVl X25pZCAqaSwgKmU7CiAJc3RydWN0IG5hdF9lbnRyeSAqbmU7CisJaW50IGVyciA9IC1FSU5WQUw7 CiAKIAlpZiAoIWF2YWlsYWJsZV9mcmVlX21lbW9yeShzYmksIEZSRUVfTklEUykpCiAJCXJldHVy biAtMTsKQEAgLTE0MzgsMzUgKzE0MzksNTggQEAgc3RhdGljIGludCBhZGRfZnJlZV9uaWQoc3Ry dWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBuaWRfdCBuaWQsIGJvb2wgYnVpbGQpCiAJaWYgKHVubGlr ZWx5KG5pZCA9PSAwKSkKIAkJcmV0dXJuIDA7CiAKLQlpZiAoYnVpbGQpIHsKLQkJLyogZG8gbm90 IGFkZCBhbGxvY2F0ZWQgbmlkcyAqLwotCQluZSA9IF9fbG9va3VwX25hdF9jYWNoZShubV9pLCBu aWQpOwotCQlpZiAobmUgJiYgKCFnZXRfbmF0X2ZsYWcobmUsIElTX0NIRUNLUE9JTlRFRCkgfHwK LQkJCQluYXRfZ2V0X2Jsa2FkZHIobmUpICE9IE5VTExfQUREUikpCi0JCQlyZXR1cm4gMDsKLQl9 Ci0KIAlpID0gZjJmc19rbWVtX2NhY2hlX2FsbG9jKGZyZWVfbmlkX3NsYWIsIEdGUF9OT0ZTKTsK IAlpLT5uaWQgPSBuaWQ7CiAJaS0+c3RhdGUgPSBOSURfTkVXOwogCi0JaWYgKHJhZGl4X3RyZWVf cHJlbG9hZChHRlBfTk9GUykpIHsKLQkJa21lbV9jYWNoZV9mcmVlKGZyZWVfbmlkX3NsYWIsIGkp OwotCQlyZXR1cm4gMDsKLQl9CisJaWYgKHJhZGl4X3RyZWVfcHJlbG9hZChHRlBfTk9GUykpCisJ CWdvdG8gZXJyOwogCiAJc3Bpbl9sb2NrKCZubV9pLT5mcmVlX25pZF9saXN0X2xvY2spOwotCWlm IChyYWRpeF90cmVlX2luc2VydCgmbm1faS0+ZnJlZV9uaWRfcm9vdCwgaS0+bmlkLCBpKSkgewot CQlzcGluX3VubG9jaygmbm1faS0+ZnJlZV9uaWRfbGlzdF9sb2NrKTsKLQkJcmFkaXhfdHJlZV9w cmVsb2FkX2VuZCgpOwotCQlrbWVtX2NhY2hlX2ZyZWUoZnJlZV9uaWRfc2xhYiwgaSk7Ci0JCXJl dHVybiAwOworCisJaWYgKGJ1aWxkKSB7CisJCS8qCisJCSAqICAgVGhyZWFkIEEgICAgICAgICAg ICAgVGhyZWFkIEIKKwkJICogIC0gZjJmc19jcmVhdGUKKwkJICogICAtIGYyZnNfbmV3X2lub2Rl CisJCSAqICAgIC0gYWxsb2NfbmlkCisJCSAqICAgICAtIF9faW5zZXJ0X25pZF90b19saXN0KEFM TE9DX05JRF9MSVNUKQorCQkgKiAgICAgICAgICAgICAgICAgICAgIC0gZjJmc19iYWxhbmNlX2Zz X2JnCisJCSAqICAgICAgICAgICAgICAgICAgICAgIC0gYnVpbGRfZnJlZV9uaWRzCisJCSAqICAg ICAgICAgICAgICAgICAgICAgICAtIF9fYnVpbGRfZnJlZV9uaWRzCisJCSAqICAgICAgICAgICAg ICAgICAgICAgICAgLSBzY2FuX25hdF9wYWdlCisJCSAqICAgICAgICAgICAgICAgICAgICAgICAg IC0gYWRkX2ZyZWVfbmlkCisJCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAtIF9fbG9va3Vw X25hdF9jYWNoZQorCQkgKiAgLSBmMmZzX2FkZF9saW5rCisJCSAqICAgLSBpbml0X2lub2RlX21l dGFkYXRhCisJCSAqICAgIC0gbmV3X2lub2RlX3BhZ2UKKwkJICogICAgIC0gbmV3X25vZGVfcGFn ZQorCQkgKiAgICAgIC0gc2V0X25vZGVfYWRkcgorCQkgKiAgLSBhbGxvY19uaWRfZG9uZQorCQkg KiAgIC0gX19yZW1vdmVfbmlkX2Zyb21fbGlzdChBTExPQ19OSURfTElTVCkKKwkJICogICAgICAg ICAgICAgICAgICAgICAgICAgLSBfX2luc2VydF9uaWRfdG9fbGlzdChGUkVFX05JRF9MSVNUKQor CQkgKi8KKwkJbmUgPSBfX2xvb2t1cF9uYXRfY2FjaGUobm1faSwgbmlkKTsKKwkJaWYgKG5lICYm ICghZ2V0X25hdF9mbGFnKG5lLCBJU19DSEVDS1BPSU5URUQpIHx8CisJCQkJbmF0X2dldF9ibGth ZGRyKG5lKSAhPSBOVUxMX0FERFIpKQorCQkJZ290byBlcnJfb3V0OworCisJCWUgPSBfX2xvb2t1 cF9mcmVlX25pZF9saXN0KG5tX2ksIG5pZCk7CisJCWlmIChlKQorCQkJZ290byBlcnJfb3V0Owog CX0KKwlpZiAocmFkaXhfdHJlZV9pbnNlcnQoJm5tX2ktPmZyZWVfbmlkX3Jvb3QsIGktPm5pZCwg aSkpCisJCWdvdG8gZXJyX291dDsKKwllcnIgPSAwOwogCWxpc3RfYWRkX3RhaWwoJmktPmxpc3Qs ICZubV9pLT5mcmVlX25pZF9saXN0KTsKIAlubV9pLT5mY250Kys7CitlcnJfb3V0OgogCXNwaW5f dW5sb2NrKCZubV9pLT5mcmVlX25pZF9saXN0X2xvY2spOwogCXJhZGl4X3RyZWVfcHJlbG9hZF9l bmQoKTsKLQlyZXR1cm4gMTsKK2VycjoKKwlpZiAoZXJyKQorCQlrbWVtX2NhY2hlX2ZyZWUoZnJl ZV9uaWRfc2xhYiwgaSk7CisJcmV0dXJuICFlcnI7CiB9CiAKIHN0YXRpYyB2b2lkIHJlbW92ZV9m cmVlX25pZChzdHJ1Y3QgZjJmc19ubV9pbmZvICpubV9pLCBuaWRfdCBuaWQpCgpGcm9tIDZhNmU0 YjBjYWVmMTkyYzVlMTNkNmEwNzA5OTFlNDdkOGQzMzFiNjcgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFl1bmxlaSBIZSA8aGV5dW5sZWlAaHVhd2VpLmNvbT4KRGF0ZTogVGh1LCAxIEp1 biAyMDE3IDE2OjQzOjUxICswODAwClN1YmplY3Q6IFtQQVRDSCAxOS8zNl0gZjJmczogZml4IGEg cGFuaWMgY2F1c2VkIGJ5IE5VTEwgZmx1c2hfY21kX2NvbnRyb2wKCmNvbW1pdCBkNGZkZjhiYTBl NTgwOGJhOWFkNmI0NDMzNzc4M2JkOTkzNWUwOTgyIHVwc3RyZWFtLgoKTW91bnQgZnMgd2l0aCBv cHRpb24gbm9mbHVzaF9tZXJnZSwgYm9vdCBmYWlsZWQgZm9yIGlsbGVnYWwgYWRkcmVzcwpmY2Mg aW4gZnVuY3Rpb24gZjJmc19pc3N1ZV9mbHVzaDoKCiAgICAgICAgaWYgKCF0ZXN0X29wdChzYmks IEZMVVNIX01FUkdFKSkgewogICAgICAgICAgICAgICAgcmV0ID0gc3VibWl0X2ZsdXNoX3dhaXQo c2JpKTsKICAgICAgICAgICAgICAgIGF0b21pY19pbmMoJmZjYy0+aXNzdWVkX2ZsdXNoKTsgICAt PiAgSGVyZSwgZmNjIGlsbGVnYWwKICAgICAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAg fQoKU2lnbmVkLW9mZi1ieTogWXVubGVpIEhlIDxoZXl1bmxlaUBodWF3ZWkuY29tPgpTaWduZWQt b2ZmLWJ5OiBKYWVnZXVrIEtpbSA8amFlZ2V1a0BrZXJuZWwub3JnPgpbYndoOiBCYWNrcG9ydGVk IHRvIDQuNDogYWRqdXN0IGNvbnRleHRdClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJl bi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2YyZnMvc2VnbWVudC5jIHwgNSAr KysrLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL2ZzL2YyZnMvc2VnbWVudC5jIGIvZnMvZjJmcy9zZWdtZW50LmMKaW5kZXggYjMy YmI2OTNlODNjLi5jMGRmZTJhNzI5NWYgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvc2VnbWVudC5jCisr KyBiL2ZzL2YyZnMvc2VnbWVudC5jCkBAIC0zOTgsNiArMzk4LDkgQEAgaW50IGNyZWF0ZV9mbHVz aF9jbWRfY29udHJvbChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCiAJaW5pdF93YWl0cXVldWVf aGVhZCgmZmNjLT5mbHVzaF93YWl0X3F1ZXVlKTsKIAlpbml0X2xsaXN0X2hlYWQoJmZjYy0+aXNz dWVfbGlzdCk7CiAJU01fSShzYmkpLT5jbWRfY29udHJvbF9pbmZvID0gZmNjOworCWlmICghdGVz dF9vcHQoc2JpLCBGTFVTSF9NRVJHRSkpCisJCXJldHVybiBlcnI7CisKIAlmY2MtPmYyZnNfaXNz dWVfZmx1c2ggPSBrdGhyZWFkX3J1bihpc3N1ZV9mbHVzaF90aHJlYWQsIHNiaSwKIAkJCQkiZjJm c19mbHVzaC0ldToldSIsIE1BSk9SKGRldiksIE1JTk9SKGRldikpOwogCWlmIChJU19FUlIoZmNj LT5mMmZzX2lzc3VlX2ZsdXNoKSkgewpAQCAtMjMwNiw3ICsyMzA5LDcgQEAgaW50IGJ1aWxkX3Nl Z21lbnRfbWFuYWdlcihzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCiAKIAlJTklUX0xJU1RfSEVB RCgmc21faW5mby0+c2l0X2VudHJ5X3NldCk7CiAKLQlpZiAodGVzdF9vcHQoc2JpLCBGTFVTSF9N RVJHRSkgJiYgIWYyZnNfcmVhZG9ubHkoc2JpLT5zYikpIHsKKwlpZiAoIWYyZnNfcmVhZG9ubHko c2JpLT5zYikpIHsKIAkJZXJyID0gY3JlYXRlX2ZsdXNoX2NtZF9jb250cm9sKHNiaSk7CiAJCWlm IChlcnIpCiAJCQlyZXR1cm4gZXJyOwoKRnJvbSA5MjM4YmQ5MzExOGViOGQ1YjQxY2ViODhlMzAx ODA2NzE2ODZiZGIyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWVnZXVrIEtpbSA8 amFlZ2V1a0BrZXJuZWwub3JnPgpEYXRlOiBUdWUsIDE5IERlYyAyMDE3IDE5OjE2OjM0IC0wODAw ClN1YmplY3Q6IFtQQVRDSCAyMC8zNl0gZjJmczogcmV0dXJuIGVycm9yIGR1cmluZyBmaWxsX3N1 cGVyCgpjb21taXQgYzM5YTFiMzQ4YzRmZTE3MjcyOWVmZjc3YzUzM2RhYmMzYzdjZGFhNyB1cHN0 cmVhbS4KCkxldCdzIGF2b2lkIEJVR19PTiBkdXJpbmcgZmlsbF9zdXBlciwgd2hlbiBvbi1kaXNr IHdhcyB0b3RhbGwgY29ycnVwdGVkLgoKUmV2aWV3ZWQtYnk6IENoYW8gWXUgPHl1Y2hhbzBAaHVh d2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2VybmVsLm9yZz4K U2lnbmVkLW9mZi1ieTogU3VkaXAgTXVraGVyamVlIDxzdWRpcG0ubXVraGVyamVlQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0 aW9uLm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0LjQ6IGFkanVzdCBjb250ZXh0XQpTaWduZWQt b2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51az4KLS0t CiBmcy9mMmZzL3NlZ21lbnQuYyB8IDE2ICsrKysrKysrKysrKy0tLS0KIGZzL2YyZnMvc2VnbWVu dC5oIHwgMjIgKysrKysrKysrKysrKysrKysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNl cnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvc2VnbWVudC5j IGIvZnMvZjJmcy9zZWdtZW50LmMKaW5kZXggYzBkZmUyYTcyOTVmLi40MjE5MzM1Y2UxYmMgMTAw NjQ0Ci0tLSBhL2ZzL2YyZnMvc2VnbWVudC5jCisrKyBiL2ZzL2YyZnMvc2VnbWVudC5jCkBAIC0y MTAxLDcgKzIxMDEsNyBAQCBzdGF0aWMgaW50IGJ1aWxkX2N1cnNlZyhzdHJ1Y3QgZjJmc19zYl9p bmZvICpzYmkpCiAJcmV0dXJuIHJlc3RvcmVfY3Vyc2VnX3N1bW1hcmllcyhzYmkpOwogfQogCi1z dGF0aWMgdm9pZCBidWlsZF9zaXRfZW50cmllcyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCitz dGF0aWMgaW50IGJ1aWxkX3NpdF9lbnRyaWVzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKIHsK IAlzdHJ1Y3Qgc2l0X2luZm8gKnNpdF9pID0gU0lUX0koc2JpKTsKIAlzdHJ1Y3QgY3Vyc2VnX2lu Zm8gKmN1cnNlZyA9IENVUlNFR19JKHNiaSwgQ1VSU0VHX0NPTERfREFUQSk7CkBAIC0yMTEwLDYg KzIxMTAsNyBAQCBzdGF0aWMgdm9pZCBidWlsZF9zaXRfZW50cmllcyhzdHJ1Y3QgZjJmc19zYl9p bmZvICpzYmkpCiAJdW5zaWduZWQgaW50IGksIHN0YXJ0LCBlbmQ7CiAJdW5zaWduZWQgaW50IHJl YWRlZCwgc3RhcnRfYmxrID0gMDsKIAlpbnQgbnJwYWdlcyA9IE1BWF9CSU9fQkxPQ0tTKHNiaSk7 CisJaW50IGVyciA9IDA7CiAKIAlkbyB7CiAJCXJlYWRlZCA9IHJhX21ldGFfcGFnZXMoc2JpLCBz dGFydF9ibGssIG5ycGFnZXMsIE1FVEFfU0lULCB0cnVlKTsKQEAgLTIxMjgsNyArMjEyOSw5IEBA IHN0YXRpYyB2b2lkIGJ1aWxkX3NpdF9lbnRyaWVzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkK IAkJCXNpdCA9IHNpdF9ibGstPmVudHJpZXNbU0lUX0VOVFJZX09GRlNFVChzaXRfaSwgc3RhcnQp XTsKIAkJCWYyZnNfcHV0X3BhZ2UocGFnZSwgMSk7CiAKLQkJCWNoZWNrX2Jsb2NrX2NvdW50KHNi aSwgc3RhcnQsICZzaXQpOworCQkJZXJyID0gY2hlY2tfYmxvY2tfY291bnQoc2JpLCBzdGFydCwg JnNpdCk7CisJCQlpZiAoZXJyKQorCQkJCXJldHVybiBlcnI7CiAJCQlzZWdfaW5mb19mcm9tX3Jh d19zaXQoc2UsICZzaXQpOwogCiAJCQkvKiBidWlsZCBkaXNjYXJkIG1hcCBvbmx5IG9uZSB0aW1l ICovCkBAIC0yMTU0LDcgKzIxNTcsOSBAQCBzdGF0aWMgdm9pZCBidWlsZF9zaXRfZW50cmllcyhz dHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCiAKIAkJb2xkX3ZhbGlkX2Jsb2NrcyA9IHNlLT52YWxp ZF9ibG9ja3M7CiAKLQkJY2hlY2tfYmxvY2tfY291bnQoc2JpLCBzdGFydCwgJnNpdCk7CisJCWVy ciA9IGNoZWNrX2Jsb2NrX2NvdW50KHNiaSwgc3RhcnQsICZzaXQpOworCQlpZiAoZXJyKQorCQkJ YnJlYWs7CiAJCXNlZ19pbmZvX2Zyb21fcmF3X3NpdChzZSwgJnNpdCk7CiAKIAkJbWVtY3B5KHNl LT5kaXNjYXJkX21hcCwgc2UtPmN1cl92YWxpZF9tYXAsIFNJVF9WQkxPQ0tfTUFQX1NJWkUpOwpA QCAtMjE2NSw2ICsyMTcwLDcgQEAgc3RhdGljIHZvaWQgYnVpbGRfc2l0X2VudHJpZXMoc3RydWN0 IGYyZnNfc2JfaW5mbyAqc2JpKQogCQkJCXNlLT52YWxpZF9ibG9ja3MgLSBvbGRfdmFsaWRfYmxv Y2tzOwogCX0KIAltdXRleF91bmxvY2soJmN1cnNlZy0+Y3Vyc2VnX211dGV4KTsKKwlyZXR1cm4g ZXJyOwogfQogCiBzdGF0aWMgdm9pZCBpbml0X2ZyZWVfc2VnbWFwKHN0cnVjdCBmMmZzX3NiX2lu Zm8gKnNiaSkKQEAgLTIzMjYsNyArMjMzMiw5IEBAIGludCBidWlsZF9zZWdtZW50X21hbmFnZXIo c3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogCQlyZXR1cm4gZXJyOwogCiAJLyogcmVpbml0IGZy ZWUgc2VnbWFwIGJhc2VkIG9uIFNJVCAqLwotCWJ1aWxkX3NpdF9lbnRyaWVzKHNiaSk7CisJZXJy ID0gYnVpbGRfc2l0X2VudHJpZXMoc2JpKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOwogCiAJ aW5pdF9mcmVlX3NlZ21hcChzYmkpOwogCWVyciA9IGJ1aWxkX2RpcnR5X3NlZ21hcChzYmkpOwpk aWZmIC0tZ2l0IGEvZnMvZjJmcy9zZWdtZW50LmggYi9mcy9mMmZzL3NlZ21lbnQuaAppbmRleCAz Y2NkMDIzOTZlODMuLmZkZTE2ZjJhMDY1YiAxMDA2NDQKLS0tIGEvZnMvZjJmcy9zZWdtZW50LmgK KysrIGIvZnMvZjJmcy9zZWdtZW50LmgKQEAgLTU4NSw3ICs1ODUsNyBAQCBzdGF0aWMgaW5saW5l IHZvaWQgdmVyaWZ5X2Jsb2NrX2FkZHIoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBibG9ja190 IGJsa19hZGRyKQogLyoKICAqIFN1bW1hcnkgYmxvY2sgaXMgYWx3YXlzIHRyZWF0ZWQgYXMgYW4g aW52YWxpZCBibG9jawogICovCi1zdGF0aWMgaW5saW5lIHZvaWQgY2hlY2tfYmxvY2tfY291bnQo c3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAorc3RhdGljIGlubGluZSBpbnQgY2hlY2tfYmxvY2tf Y291bnQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogCQlpbnQgc2Vnbm8sIHN0cnVjdCBmMmZz X3NpdF9lbnRyeSAqcmF3X3NpdCkKIHsKICNpZmRlZiBDT05GSUdfRjJGU19DSEVDS19GUwpAQCAt NjA3LDExICs2MDcsMjUgQEAgc3RhdGljIGlubGluZSB2b2lkIGNoZWNrX2Jsb2NrX2NvdW50KHN0 cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKIAkJY3VyX3BvcyA9IG5leHRfcG9zOwogCQlpc192YWxp ZCA9ICFpc192YWxpZDsKIAl9IHdoaWxlIChjdXJfcG9zIDwgc2JpLT5ibG9ja3NfcGVyX3NlZyk7 Ci0JQlVHX09OKEdFVF9TSVRfVkJMT0NLUyhyYXdfc2l0KSAhPSB2YWxpZF9ibG9ja3MpOworCisJ aWYgKHVubGlrZWx5KEdFVF9TSVRfVkJMT0NLUyhyYXdfc2l0KSAhPSB2YWxpZF9ibG9ja3MpKSB7 CisJCWYyZnNfbXNnKHNiaS0+c2IsIEtFUk5fRVJSLAorCQkJCSJNaXNtYXRjaCB2YWxpZCBibG9j a3MgJWQgdnMuICVkIiwKKwkJCQkJR0VUX1NJVF9WQkxPQ0tTKHJhd19zaXQpLCB2YWxpZF9ibG9j a3MpOworCQlzZXRfc2JpX2ZsYWcoc2JpLCBTQklfTkVFRF9GU0NLKTsKKwkJcmV0dXJuIC1FSU5W QUw7CisJfQogI2VuZGlmCiAJLyogY2hlY2sgc2VnbWVudCB1c2FnZSwgYW5kIGNoZWNrIGJvdW5k YXJ5IG9mIGEgZ2l2ZW4gc2VnbWVudCBudW1iZXIgKi8KLQlmMmZzX2J1Z19vbihzYmksIEdFVF9T SVRfVkJMT0NLUyhyYXdfc2l0KSA+IHNiaS0+YmxvY2tzX3Blcl9zZWcKLQkJCQkJfHwgc2Vnbm8g PiBUT1RBTF9TRUdTKHNiaSkgLSAxKTsKKwlpZiAodW5saWtlbHkoR0VUX1NJVF9WQkxPQ0tTKHJh d19zaXQpID4gc2JpLT5ibG9ja3NfcGVyX3NlZworCQkJCQl8fCBzZWdubyA+IFRPVEFMX1NFR1Mo c2JpKSAtIDEpKSB7CisJCWYyZnNfbXNnKHNiaS0+c2IsIEtFUk5fRVJSLAorCQkJCSJXcm9uZyB2 YWxpZCBibG9ja3MgJWQgb3Igc2Vnbm8gJXUiLAorCQkJCQlHRVRfU0lUX1ZCTE9DS1MocmF3X3Np dCksIHNlZ25vKTsKKwkJc2V0X3NiaV9mbGFnKHNiaSwgU0JJX05FRURfRlNDSyk7CisJCXJldHVy biAtRUlOVkFMOworCX0KKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGlubGluZSBwZ29mZl90IGN1 cnJlbnRfc2l0X2FkZHIoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAoKRnJvbSA5MzE5YTJmYjgz ZThlNGNjOWFjNWExOWY2NTc1NmZkNDA5ZTc2NzQyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBZdW5sZWkgSGUgPGhleXVubGVpQGh1YXdlaS5jb20+CkRhdGU6IFRodSwgOCBNYXIgMjAx OCAxNjoyOToxMyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMzZdIGYyZnM6IGNoZWNrIGJsa2Fk ZHIgbW9yZSBhY2N1cmF0bHkgYmVmb3JlIGlzc3VlIGEgYmlvCgpjb21taXQgMDgzMzcyMWVjMzY1 OGE0ZTlkNWU1OGI2ZmE4MmNmOWVkYzQzMWU1OSB1cHN0cmVhbS4KClRoaXMgcGF0Y2ggY2hlY2sg YmxrYWRkciBtb3JlIGFjY3VyYXRseSBiZWZvcmUgaXNzdWUgYQp3cml0ZSBvciByZWFkIGJpby4K ClNpZ25lZC1vZmYtYnk6IFl1bmxlaSBIZSA8aGV5dW5sZWlAaHVhd2VpLmNvbT4KUmV2aWV3ZWQt Ynk6IENoYW8gWXUgPHl1Y2hhbzBAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFlZ2V1ayBL aW0gPGphZWdldWtAa2VybmVsLm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0LjQ6CiAtIENvVyBp cyBub3QgaW1wbGVtZW50ZWQgc28gY2hlY2sgZjJmc19pb19pbmZvOjpibGtfYWRkciBpbnN0ZWFk IG9mCiAgIGYyZnNfaW9faW5mbzo6e29sZCxuZXd9X2Jsa2FkZHIKIC0gT3BlcmF0aW9uIGNvZGUg aXMgZjJmc19pb19pbmZvOjpydyBpbnN0ZWFkIG9mIGYyZnNfaW9faW5mbzo6b3AKIC0gQWRqdXN0 IGNvbnRleHRdClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29k ZXRoaW5rLmNvLnVrPgotLS0KIGZzL2YyZnMvY2hlY2twb2ludC5jIHwgIDIgKysKIGZzL2YyZnMv ZGF0YS5jICAgICAgIHwgIDMgKystCiBmcy9mMmZzL2YyZnMuaCAgICAgICB8ICAxICsKIGZzL2Yy ZnMvc2VnbWVudC5oICAgIHwgMjUgKysrKysrKysrKysrKysrKysrKy0tLS0tLQogNCBmaWxlcyBj aGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Zz L2YyZnMvY2hlY2twb2ludC5jIGIvZnMvZjJmcy9jaGVja3BvaW50LmMKaW5kZXggZjA1NzZiODJj YmZhLi43MGVmNDliYjI4MDMgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvY2hlY2twb2ludC5jCisrKyBi L2ZzL2YyZnMvY2hlY2twb2ludC5jCkBAIC01OCw2ICs1OCw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGFn ZSAqX19nZXRfbWV0YV9wYWdlKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgcGdvZmZfdCBpbmRl eCwKIAkJLnJ3ID0gUkVBRF9TWU5DIHwgUkVRX01FVEEgfCBSRVFfUFJJTywKIAkJLmJsa19hZGRy ID0gaW5kZXgsCiAJCS5lbmNyeXB0ZWRfcGFnZSA9IE5VTEwsCisJCS5pc19tZXRhID0gaXNfbWV0 YSwKIAl9OwogCiAJaWYgKHVubGlrZWx5KCFpc19tZXRhKSkKQEAgLTE1MSw2ICsxNTIsNyBAQCBp bnQgcmFfbWV0YV9wYWdlcyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJsb2NrX3Qgc3RhcnQs IGludCBucnBhZ2VzLAogCQkudHlwZSA9IE1FVEEsCiAJCS5ydyA9IHN5bmMgPyAoUkVBRF9TWU5D IHwgUkVRX01FVEEgfCBSRVFfUFJJTykgOiBSRUFEQSwKIAkJLmVuY3J5cHRlZF9wYWdlID0gTlVM TCwKKwkJLmlzX21ldGEgPSAodHlwZSAhPSBNRVRBX1BPUiksCiAJfTsKIAogCWlmICh1bmxpa2Vs eSh0eXBlID09IE1FVEFfUE9SKSkKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvZGF0YS5jIGIvZnMvZjJm cy9kYXRhLmMKaW5kZXggYjBmY2ZhZWUzNTRmLi5hMTFhNDllY2UyMzggMTAwNjQ0Ci0tLSBhL2Zz L2YyZnMvZGF0YS5jCisrKyBiL2ZzL2YyZnMvZGF0YS5jCkBAIC0xNDcsNiArMTQ3LDcgQEAgaW50 IGYyZnNfc3VibWl0X3BhZ2VfYmlvKHN0cnVjdCBmMmZzX2lvX2luZm8gKmZpbykKIAlzdHJ1Y3Qg YmlvICpiaW87CiAJc3RydWN0IHBhZ2UgKnBhZ2UgPSBmaW8tPmVuY3J5cHRlZF9wYWdlID8gZmlv LT5lbmNyeXB0ZWRfcGFnZSA6IGZpby0+cGFnZTsKIAorCXZlcmlmeV9ibG9ja19hZGRyKGZpbywg ZmlvLT5ibGtfYWRkcik7CiAJdHJhY2VfZjJmc19zdWJtaXRfcGFnZV9iaW8ocGFnZSwgZmlvKTsK IAlmMmZzX3RyYWNlX2lvcyhmaW8sIDApOwogCkBAIC0xNzIsNyArMTczLDcgQEAgdm9pZCBmMmZz X3N1Ym1pdF9wYWdlX21iaW8oc3RydWN0IGYyZnNfaW9faW5mbyAqZmlvKQogCiAJaW8gPSBpc19y ZWFkID8gJnNiaS0+cmVhZF9pbyA6ICZzYmktPndyaXRlX2lvW2J0eXBlXTsKIAotCXZlcmlmeV9i bG9ja19hZGRyKHNiaSwgZmlvLT5ibGtfYWRkcik7CisJdmVyaWZ5X2Jsb2NrX2FkZHIoZmlvLCBm aW8tPmJsa19hZGRyKTsKIAogCWRvd25fd3JpdGUoJmlvLT5pb19yd3NlbSk7CiAKZGlmZiAtLWdp dCBhL2ZzL2YyZnMvZjJmcy5oIGIvZnMvZjJmcy9mMmZzLmgKaW5kZXggZjQzNzlhMTQxYzc2Li45 Y2Y0MTdlZjg3MWEgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvZjJmcy5oCisrKyBiL2ZzL2YyZnMvZjJm cy5oCkBAIC02ODQsNiArNjg0LDcgQEAgc3RydWN0IGYyZnNfaW9faW5mbyB7CiAJYmxvY2tfdCBi bGtfYWRkcjsJLyogYmxvY2sgYWRkcmVzcyB0byBiZSB3cml0dGVuICovCiAJc3RydWN0IHBhZ2Ug KnBhZ2U7CS8qIHBhZ2UgdG8gYmUgd3JpdHRlbiAqLwogCXN0cnVjdCBwYWdlICplbmNyeXB0ZWRf cGFnZTsJLyogZW5jcnlwdGVkIHBhZ2UgKi8KKwlib29sIGlzX21ldGE7CQkvKiBpbmRpY2F0ZSBi b3Jyb3cgbWV0YSBpbm9kZSBtYXBwaW5nIG9yIG5vdCAqLwogfTsKIAogI2RlZmluZSBpc19yZWFk X2lvKHJ3KQkoKChydykgJiAxKSA9PSBSRUFEKQpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9zZWdtZW50 LmggYi9mcy9mMmZzL3NlZ21lbnQuaAppbmRleCBmZGUxNmYyYTA2NWIuLmNiNjE3MTYwNzBlOCAx MDA2NDQKLS0tIGEvZnMvZjJmcy9zZWdtZW50LmgKKysrIGIvZnMvZjJmcy9zZWdtZW50LmgKQEAg LTQ4LDEzICs0OCwxOSBAQAogCSAoc2Vjbm8gPT0gQ1VSU0VHX0koc2JpLCBDVVJTRUdfQ09MRF9O T0RFKS0+c2Vnbm8gLwkJXAogCSAgc2JpLT5zZWdzX3Blcl9zZWMpKQlcCiAKLSNkZWZpbmUgTUFJ Tl9CTEtBRERSKHNiaSkJKFNNX0koc2JpKS0+bWFpbl9ibGthZGRyKQotI2RlZmluZSBTRUcwX0JM S0FERFIoc2JpKQkoU01fSShzYmkpLT5zZWcwX2Jsa2FkZHIpCisjZGVmaW5lIE1BSU5fQkxLQURE UihzYmkpCQkJCQkJXAorCShTTV9JKHNiaSkgPyBTTV9JKHNiaSktPm1haW5fYmxrYWRkciA6IAkJ CQlcCisJCWxlMzJfdG9fY3B1KEYyRlNfUkFXX1NVUEVSKHNiaSktPm1haW5fYmxrYWRkcikpCisj ZGVmaW5lIFNFRzBfQkxLQUREUihzYmkpCQkJCQkJXAorCShTTV9JKHNiaSkgPyBTTV9JKHNiaSkt PnNlZzBfYmxrYWRkciA6IAkJCQlcCisJCWxlMzJfdG9fY3B1KEYyRlNfUkFXX1NVUEVSKHNiaSkt PnNlZ21lbnQwX2Jsa2FkZHIpKQogCiAjZGVmaW5lIE1BSU5fU0VHUyhzYmkpCShTTV9JKHNiaSkt Pm1haW5fc2VnbWVudHMpCiAjZGVmaW5lIE1BSU5fU0VDUyhzYmkpCShzYmktPnRvdGFsX3NlY3Rp b25zKQogCi0jZGVmaW5lIFRPVEFMX1NFR1Moc2JpKQkoU01fSShzYmkpLT5zZWdtZW50X2NvdW50 KQorI2RlZmluZSBUT1RBTF9TRUdTKHNiaSkJCQkJCQkJXAorCShTTV9JKHNiaSkgPyBTTV9JKHNi aSktPnNlZ21lbnRfY291bnQgOiAJCQkJXAorCQlsZTMyX3RvX2NwdShGMkZTX1JBV19TVVBFUihz YmkpLT5zZWdtZW50X2NvdW50KSkKICNkZWZpbmUgVE9UQUxfQkxLUyhzYmkpCShUT1RBTF9TRUdT KHNiaSkgPDwgc2JpLT5sb2dfYmxvY2tzX3Blcl9zZWcpCiAKICNkZWZpbmUgTUFYX0JMS0FERFIo c2JpKQkoU0VHMF9CTEtBRERSKHNiaSkgKyBUT1RBTF9CTEtTKHNiaSkpCkBAIC01NzYsMTAgKzU4 MiwxNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY2hlY2tfc2VnX3JhbmdlKHN0cnVjdCBmMmZzX3Ni X2luZm8gKnNiaSwgdW5zaWduZWQgaW50IHNlZ25vKQogCWYyZnNfYnVnX29uKHNiaSwgc2Vnbm8g PiBUT1RBTF9TRUdTKHNiaSkgLSAxKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHZlcmlmeV9i bG9ja19hZGRyKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgYmxvY2tfdCBibGtfYWRkcikKK3N0 YXRpYyBpbmxpbmUgdm9pZCB2ZXJpZnlfYmxvY2tfYWRkcihzdHJ1Y3QgZjJmc19pb19pbmZvICpm aW8sIGJsb2NrX3QgYmxrX2FkZHIpCiB7Ci0JQlVHX09OKGJsa19hZGRyIDwgU0VHMF9CTEtBRERS KHNiaSkKLQkJCXx8IGJsa19hZGRyID49IE1BWF9CTEtBRERSKHNiaSkpOworCXN0cnVjdCBmMmZz X3NiX2luZm8gKnNiaSA9IGZpby0+c2JpOworCisJaWYgKFBBR0VfVFlQRV9PRl9CSU8oZmlvLT50 eXBlKSA9PSBNRVRBICYmCisJCQkJKCFpc19yZWFkX2lvKGZpby0+cncpIHx8IGZpby0+aXNfbWV0 YSkpCisJCUJVR19PTihibGtfYWRkciA8IFNFRzBfQkxLQUREUihzYmkpIHx8CisJCQkJYmxrX2Fk ZHIgPj0gTUFJTl9CTEtBRERSKHNiaSkpOworCWVsc2UKKwkJQlVHX09OKGJsa19hZGRyIDwgTUFJ Tl9CTEtBRERSKHNiaSkgfHwKKwkJCQlibGtfYWRkciA+PSBNQVhfQkxLQUREUihzYmkpKTsKIH0K IAogLyoKCkZyb20gNWIxNGEwYWFhNzZhYWM1MWNjOTg0MDNjN2VlMGEzZDk0YzNjNDFmMyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2VybmVsLm9y Zz4KRGF0ZTogVHVlLCAyNCBBcHIgMjAxOCAxNTo0NDoxNiAtMDYwMApTdWJqZWN0OiBbUEFUQ0gg MjIvMzZdIGYyZnM6IHNhbml0eSBjaGVjayBvbiBzaXQgZW50cnkKCmNvbW1pdCBiMmNhMzc0ZjMz YmQzM2ZkODIyZWI4NzE4NzZlNDg4OGNmNzlkYzk3IHVwc3RyZWFtLgoKc3l6Ym90IGhpdCB0aGUg Zm9sbG93aW5nIGNyYXNoIG9uIHVwc3RyZWFtIGNvbW1pdAo4N2VmMTIwMjdiOWIxZGQwZTBiMTJj ZjMxMWZiY2IxOWY5ZDkyNTM5IChXZWQgQXByIDE4IDE5OjQ4OjE3IDIwMTggKzAwMDApCk1lcmdl IHRhZyAnY2VwaC1mb3ItNC4xNy1yYzInIG9mIGdpdDovL2dpdGh1Yi5jb20vY2VwaC9jZXBoLWNs aWVudApzeXpib3QgZGFzaGJvYXJkIGxpbms6IGh0dHBzOi8vc3l6a2FsbGVyLmFwcHNwb3QuY29t L2J1Zz9leHRpZD04MzY5OWFkZWIyZDEzNTc5YzMxZQoKQyByZXByb2R1Y2VyOiBodHRwczovL3N5 emthbGxlci5hcHBzcG90LmNvbS94L3JlcHJvLmM/aWQ9NTgwNTIwODE4MTQwNzc0NApzeXprYWxs ZXIgcmVwcm9kdWNlcjogaHR0cHM6Ly9zeXprYWxsZXIuYXBwc3BvdC5jb20veC9yZXByby5zeXo/ aWQ9NjAwNTA3MzM0MzY3NjQxNgpSYXcgY29uc29sZSBvdXRwdXQ6IGh0dHBzOi8vc3l6a2FsbGVy LmFwcHNwb3QuY29tL3gvbG9nLnR4dD9pZD02NTU1MDQ3NzMxMTM0NDY0Cktlcm5lbCBjb25maWc6 IGh0dHBzOi8vc3l6a2FsbGVyLmFwcHNwb3QuY29tL3gvLmNvbmZpZz9pZD0xODA4ODAwMjEzMTIw MTMwMTE4CmNvbXBpbGVyOiBnY2MgKEdDQykgOC4wLjEgMjAxODA0MTMgKGV4cGVyaW1lbnRhbCkK CklNUE9SVEFOVDogaWYgeW91IGZpeCB0aGUgYnVnLCBwbGVhc2UgYWRkIHRoZSBmb2xsb3dpbmcg dGFnIHRvIHRoZSBjb21taXQ6ClJlcG9ydGVkLWJ5OiBzeXpib3QrODM2OTlhZGViMmQxMzU3OWMz MWVAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpJdCB3aWxsIGhlbHAgc3l6Ym90IHVuZGVyc3Rh bmQgd2hlbiB0aGUgYnVnIGlzIGZpeGVkLiBTZWUgZm9vdGVyIGZvciBkZXRhaWxzLgpJZiB5b3Ug Zm9yd2FyZCB0aGUgcmVwb3J0LCBwbGVhc2Uga2VlcCB0aGlzIHBhcnQgYW5kIHRoZSBmb290ZXIu CgpGMkZTLWZzIChsb29wMCk6IE1hZ2ljIE1pc21hdGNoLCB2YWxpZCgweGYyZjUyMDEwKSAtIHJl YWQoMHgwKQpGMkZTLWZzIChsb29wMCk6IENhbid0IGZpbmQgdmFsaWQgRjJGUyBmaWxlc3lzdGVt IGluIDF0aCBzdXBlcmJsb2NrCkYyRlMtZnMgKGxvb3AwKTogaW52YWxpZCBjcmMgdmFsdWUKQlVH OiB1bmFibGUgdG8gaGFuZGxlIGtlcm5lbCBwYWdpbmcgcmVxdWVzdCBhdCBmZmZmZWQwMDZiMmE1 MGMwClBHRCAyMWZmZWUwNjcgUDREIDIxZmZlZTA2NyBQVUQgMjFmYmViMDY3IFBNRCAwCk9vcHM6 IDAwMDAgWyMxXSBTTVAgS0FTQU4KRHVtcGluZyBmdHJhY2UgYnVmZmVyOgogICAoZnRyYWNlIGJ1 ZmZlciBlbXB0eSkKTW9kdWxlcyBsaW5rZWQgaW46CkNQVTogMCBQSUQ6IDQ1MTQgQ29tbTogc3l6 a2FsbGVyOTg5NDgwIE5vdCB0YWludGVkIDQuMTcuMC1yYzErICM4CkhhcmR3YXJlIG5hbWU6IEdv b2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9TIEdv b2dsZSAwMS8wMS8yMDExClJJUDogMDAxMDpidWlsZF9zaXRfZW50cmllcyBmcy9mMmZzL3NlZ21l bnQuYzozNjUzIFtpbmxpbmVdClJJUDogMDAxMDpidWlsZF9zZWdtZW50X21hbmFnZXIrMHg3ZWY3 LzB4YmY3MCBmcy9mMmZzL3NlZ21lbnQuYzozODUyClJTUDogMDAxODpmZmZmODgwMWIxMDJlNWIw IEVGTEFHUzogMDAwMTBhMDYKUkFYOiAxZmZmZjEwMDZiMmE1MGMwIFJCWDogMDAwMDAwMDAwMDAw MDAwNCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDEKUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAw MDAwMDAwMDAwMDAwMSBSREk6IGZmZmY4ODAxYWM3NDI0M2UKUkJQOiBmZmZmODgwMWIxMDJmNDEw IFIwODogZmZmZjg4MDFhY2JkNDZjMCBSMDk6IGZmZmZmYmZmZjE0ZDlhZjgKUjEwOiBmZmZmZmJm ZmYxNGQ5YWY4IFIxMTogZmZmZjg4MDFhY2JkNDZjMCBSMTI6IGZmZmY4ODAxYWM3NDJhODAKUjEz OiBmZmZmODgwMWQ5NTE5MTAwIFIxNDogZGZmZmZjMDAwMDAwMDAwMCBSMTU6IGZmZmY4ODAzNTk1 Mjg2MDAKRlM6ICAwMDAwMDAwMDAxZTA0ODgwKDAwMDApIEdTOmZmZmY4ODAxZGFlMDAwMDAoMDAw MCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1Iw OiAwMDAwMDAwMDgwMDUwMDMzCkNSMjogZmZmZmVkMDA2YjJhNTBjMCBDUjM6IDAwMDAwMDAxYWM2 YWMwMDAgQ1I0OiAwMDAwMDAwMDAwMTQwNmYwCkRSMDogMDAwMDAwMDAwMDAwMDAwMCBEUjE6IDAw MDAwMDAwMDAwMDAwMDAgRFIyOiAwMDAwMDAwMDAwMDAwMDAwCkRSMzogMDAwMDAwMDAwMDAwMDAw MCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAgRFI3OiAwMDAwMDAwMDAwMDAwNDAwCkNhbGwgVHJhY2U6 CiBmMmZzX2ZpbGxfc3VwZXIrMHg0MDk1LzB4N2JmMCBmcy9mMmZzL3N1cGVyLmM6MjgwMwogbW91 bnRfYmRldisweDMwYy8weDNlMCBmcy9zdXBlci5jOjExNjUKIGYyZnNfbW91bnQrMHgzNC8weDQw IGZzL2YyZnMvc3VwZXIuYzozMDIwCiBtb3VudF9mcysweGFlLzB4MzI4IGZzL3N1cGVyLmM6MTI2 OAogdmZzX2tlcm5fbW91bnQucGFydC4zNCsweGQ0LzB4NGQwIGZzL25hbWVzcGFjZS5jOjEwMzcK IHZmc19rZXJuX21vdW50IGZzL25hbWVzcGFjZS5jOjEwMjcgW2lubGluZV0KIGRvX25ld19tb3Vu dCBmcy9uYW1lc3BhY2UuYzoyNTE3IFtpbmxpbmVdCiBkb19tb3VudCsweDU2NC8weDMwNzAgZnMv bmFtZXNwYWNlLmM6Mjg0Nwoga3N5c19tb3VudCsweDEyZC8weDE0MCBmcy9uYW1lc3BhY2UuYzoz MDYzCiBfX2RvX3N5c19tb3VudCBmcy9uYW1lc3BhY2UuYzozMDc3IFtpbmxpbmVdCiBfX3NlX3N5 c19tb3VudCBmcy9uYW1lc3BhY2UuYzozMDc0IFtpbmxpbmVdCiBfX3g2NF9zeXNfbW91bnQrMHhi ZS8weDE1MCBmcy9uYW1lc3BhY2UuYzozMDc0CiBkb19zeXNjYWxsXzY0KzB4MWIxLzB4ODAwIGFy Y2gveDg2L2VudHJ5L2NvbW1vbi5jOjI4NwogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1l KzB4NDkvMHhiZQpSSVA6IDAwMzM6MHg0NDNkNmEKUlNQOiAwMDJiOjAwMDA3ZmZkMzEyODEzYzgg RUZMQUdTOiAwMDAwMDI5NyBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDBhNQpSQVg6IGZmZmZmZmZm ZmZmZmZmZGEgUkJYOiAwMDAwMDAwMDIwMDAwYzAwIFJDWDogMDAwMDAwMDAwMDQ0M2Q2YQpSRFg6 IDAwMDAwMDAwMjAwMDAwMDAgUlNJOiAwMDAwMDAwMDIwMDAwMTAwIFJESTogMDAwMDdmZmQzMTI4 MTNkMApSQlA6IDAwMDAwMDAwMDAwMDAwMDMgUjA4OiAwMDAwMDAwMDIwMDE2YTAwIFIwOTogMDAw MDAwMDAwMDAwMDAwYQpSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMjk3 IFIxMjogMDAwMDAwMDAwMDAwMDAwNApSMTM6IDAwMDAwMDAwMDA0MDJjNjAgUjE0OiAwMDAwMDAw MDAwMDAwMDAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMApSSVA6IGJ1aWxkX3NpdF9lbnRyaWVzIGZz L2YyZnMvc2VnbWVudC5jOjM2NTMgW2lubGluZV0gUlNQOiBmZmZmODgwMWIxMDJlNWIwClJJUDog YnVpbGRfc2VnbWVudF9tYW5hZ2VyKzB4N2VmNy8weGJmNzAgZnMvZjJmcy9zZWdtZW50LmM6Mzg1 MiBSU1A6IGZmZmY4ODAxYjEwMmU1YjAKQ1IyOiBmZmZmZWQwMDZiMmE1MGMwCi0tLVsgZW5kIHRy YWNlIGEyMDM0OTg5ZTE5NmZmMTcgXS0tLQoKUmVwb3J0ZWQtYW5kLXRlc3RlZC1ieTogc3l6Ym90 KzgzNjk5YWRlYjJkMTM1NzljMzFlQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KUmV2aWV3ZWQt Ynk6IENoYW8gWXUgPHl1Y2hhbzBAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFlZ2V1ayBL aW0gPGphZWdldWtAa2VybmVsLm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0LjQ6IGFkanVzdCBj b250ZXh0XQpTaWduZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0 aGluay5jby51az4KLS0tCiBmcy9mMmZzL3NlZ21lbnQuYyB8IDkgKysrKysrKysrCiAxIGZpbGUg Y2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9zZWdtZW50LmMg Yi9mcy9mMmZzL3NlZ21lbnQuYwppbmRleCA0MjE5MzM1Y2UxYmMuLmFkZWVmZjY3NzUxYiAxMDA2 NDQKLS0tIGEvZnMvZjJmcy9zZWdtZW50LmMKKysrIGIvZnMvZjJmcy9zZWdtZW50LmMKQEAgLTIx NTIsNiArMjE1MiwxNSBAQCBzdGF0aWMgaW50IGJ1aWxkX3NpdF9lbnRyaWVzKHN0cnVjdCBmMmZz X3NiX2luZm8gKnNiaSkKIAkJdW5zaWduZWQgaW50IG9sZF92YWxpZF9ibG9ja3M7CiAKIAkJc3Rh cnQgPSBsZTMyX3RvX2NwdShzZWdub19pbl9qb3VybmFsKHN1bSwgaSkpOworCQlpZiAoc3RhcnQg Pj0gTUFJTl9TRUdTKHNiaSkpIHsKKwkJCWYyZnNfbXNnKHNiaS0+c2IsIEtFUk5fRVJSLAorCQkJ CQkiV3Jvbmcgam91cm5hbCBlbnRyeSBvbiBzZWdubyAldSIsCisJCQkJCXN0YXJ0KTsKKwkJCXNl dF9zYmlfZmxhZyhzYmksIFNCSV9ORUVEX0ZTQ0spOworCQkJZXJyID0gLUVJTlZBTDsKKwkJCWJy ZWFrOworCQl9CisKIAkJc2UgPSAmc2l0X2ktPnNlbnRyaWVzW3N0YXJ0XTsKIAkJc2l0ID0gc2l0 X2luX2pvdXJuYWwoc3VtLCBpKTsKIAoKRnJvbSA3OWQzMzdjN2MxNjJlMmY0YWM0NmUwMTU3OTY0 MGRkN2M1MTdiOTgzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWVnZXVrIEtpbSA8 amFlZ2V1a0BrZXJuZWwub3JnPgpEYXRlOiBGcmksIDI3IEFwciAyMDE4IDE5OjAzOjIyIC0wNzAw ClN1YmplY3Q6IFtQQVRDSCAyMy8zNl0gZjJmczogZW5oYW5jZSBzYW5pdHlfY2hlY2tfcmF3X3N1 cGVyKCkgdG8gYXZvaWQKIHBvdGVudGlhbCBvdmVyZmxvdwoKY29tbWl0IDBjZmU3NWM1YjAxMTk5 NDY1MWE0Y2E2ZDc0ZjIwYWE5OTdiZmM2OWEgdXBzdHJlYW0uCgpJbiBvcmRlciB0byBhdm9pZCB0 aGUgYmVsb3cgb3ZlcmZsb3cgaXNzdWUsIHdlIHNob3VsZCBoYXZlIGNoZWNrZWQgdGhlCmJvdW5k YXJpZXMgaW4gc3VwZXJibG9jayBiZWZvcmUgcmVhY2hpbmcgb3V0IHRvIGFsbG9jYXRpb24uIEFz IExpbnVzIHN1Z2dlc3RlZCwKdGhlIHJpZ2h0IHBsYWNlIHNob3VsZCBiZSBzYW5pdHlfY2hlY2tf cmF3X3N1cGVyKCkuCgpEciBTaWx2aW8gQ2VzYXJlIG9mIEluZm9TZWN0IHJlcG9ydGVkOgoKVGhl cmUgYXJlIGludGVnZXIgb3ZlcmZsb3dzIHdpdGggdXNpbmcgdGhlIGNwX3BheWxvYWQgc3VwZXJi bG9jayBmaWVsZCBpbiB0aGUKZjJmcyBmaWxlc3lzdGVtIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8g bWVtb3J5IGNvcnJ1cHRpb24uCgppbmNsdWRlL2xpbnV4L2YyZnNfZnMuaAoKc3RydWN0IGYyZnNf c3VwZXJfYmxvY2sgewouLi4KICAgICAgICBfX2xlMzIgY3BfcGF5bG9hZDsKCmZzL2YyZnMvZjJm cy5oCgp0eXBlZGVmIHUzMiBibG9ja190OyAgICAvKgogICAgICAgICAgICAgICAgICAgICAgICAg KiBzaG91bGQgbm90IGNoYW5nZSB1MzIsIHNpbmNlIGl0IGlzIHRoZSBvbi1kaXNrIGJsb2NrCiAg ICAgICAgICAgICAgICAgICAgICAgICAqIGFkZHJlc3MgZm9ybWF0LCBfX2xlMzIuCiAgICAgICAg ICAgICAgICAgICAgICAgICAqLwouLi4KCnN0YXRpYyBpbmxpbmUgYmxvY2tfdCBfX2NwX3BheWxv YWQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQp7CiAgICAgICAgcmV0dXJuIGxlMzJfdG9fY3B1 KEYyRlNfUkFXX1NVUEVSKHNiaSktPmNwX3BheWxvYWQpOwp9Cgpmcy9mMmZzL2NoZWNrcG9pbnQu YwoKICAgICAgICBibG9ja190IHN0YXJ0X2Jsaywgb3JwaGFuX2Jsb2NrcywgaSwgajsKLi4uCiAg ICAgICAgc3RhcnRfYmxrID0gX19zdGFydF9jcF9hZGRyKHNiaSkgKyAxICsgX19jcF9wYXlsb2Fk KHNiaSk7CiAgICAgICAgb3JwaGFuX2Jsb2NrcyA9IF9fc3RhcnRfc3VtX2FkZHIoc2JpKSAtIDEg LSBfX2NwX3BheWxvYWQoc2JpKTsKCisrKyBpbnRlZ2VyIG92ZXJmbG93cwoKLi4uCiAgICAgICAg dW5zaWduZWQgaW50IGNwX2Jsa3MgPSAxICsgX19jcF9wYXlsb2FkKHNiaSk7Ci4uLgogICAgICAg IHNiaS0+Y2twdCA9IGt6YWxsb2MoY3BfYmxrcyAqIGJsa19zaXplLCBHRlBfS0VSTkVMKTsKCisr KyBpbnRlZ2VyIG92ZXJmbG93IGxlYWRpbmcgdG8gaW5jb3JyZWN0IGhlYXAgYWxsb2NhdGlvbi4K CiAgICAgICAgaW50IGNwX3BheWxvYWRfYmxrcyA9IF9fY3BfcGF5bG9hZChzYmkpOwouLi4KICAg ICAgICBja3B0LT5jcF9wYWNrX3N0YXJ0X3N1bSA9IGNwdV90b19sZTMyKDEgKyBjcF9wYXlsb2Fk X2Jsa3MgKwogICAgICAgICAgICAgICAgICAgICAgICBvcnBoYW5fYmxvY2tzKTsKCisrKyBzaWdu IGJ1ZyBhbmQgaW50ZWdlciBvdmVyZmxvdwoKLi4uCiAgICAgICAgZm9yIChpID0gMTsgaSA8IDEg KyBjcF9wYXlsb2FkX2Jsa3M7IGkrKykKCisrKyBpbnRlZ2VyIG92ZXJmbG93CgouLi4KCiAgICAg IHNiaS0+bWF4X29ycGhhbnMgPSAoc2JpLT5ibG9ja3NfcGVyX3NlZyAtIEYyRlNfQ1BfUEFDS1Mg LQogICAgICAgICAgICAgICAgICAgICAgICBOUl9DVVJTRUdfVFlQRSAtIF9fY3BfcGF5bG9hZChz YmkpKSAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRjJGU19PUlBIQU5TX1BFUl9C TE9DSzsKCisrKyBpbnRlZ2VyIG92ZXJmbG93CgpSZXBvcnRlZC1ieTogR3JlZyBLSCA8Z3JlZ0Br cm9haC5jb20+ClJlcG9ydGVkLWJ5OiBTaWx2aW8gQ2VzYXJlIDxzaWx2aW8uY2VzYXJlQGdtYWls LmNvbT4KU3VnZ2VzdGVkLWJ5OiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRh dGlvbi5vcmc+ClJldmlld2VkLWJ5OiBDaGFvIFl1IDx5dWNoYW8wQGh1YXdlaS5jb20+ClNpZ25l ZC1vZmYtYnk6IEphZWdldWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+Cltid2g6IEJhY2twb3J0 ZWQgdG8gNC40OgogLSBObyBob3QgZmlsZSBleHRlbnNpb24gc3VwcG9ydAogLSBBZGp1c3QgY29u dGV4dF0KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhp bmsuY28udWs+Ci0tLQogZnMvZjJmcy9zdXBlci5jIHwgNzEgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjQg aW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9mcy9mMmZzL3N1cGVy LmMgYi9mcy9mMmZzL3N1cGVyLmMKaW5kZXggODE5NGNhNDhmMTRkLi4wMjkzY2M2YmI1OGUgMTAw NjQ0Ci0tLSBhL2ZzL2YyZnMvc3VwZXIuYworKysgYi9mcy9mMmZzL3N1cGVyLmMKQEAgLTk5NCw2 ICs5OTQsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2FuaXR5X2NoZWNrX2FyZWFfYm91bmRhcnko c3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKIHN0YXRpYyBpbnQgc2FuaXR5X2NoZWNrX3Jhd19zdXBl cihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCQkJc3RydWN0IGYyZnNfc3VwZXJfYmxvY2sgKnJh d19zdXBlcikKIHsKKwlibG9ja190IHNlZ21lbnRfY291bnQsIHNlZ3NfcGVyX3NlYywgc2Vjc19w ZXJfem9uZTsKKwlibG9ja190IHRvdGFsX3NlY3Rpb25zLCBibG9ja3NfcGVyX3NlZzsKIAl1bnNp Z25lZCBpbnQgYmxvY2tzaXplOwogCiAJaWYgKEYyRlNfU1VQRVJfTUFHSUMgIT0gbGUzMl90b19j cHUocmF3X3N1cGVyLT5tYWdpYykpIHsKQEAgLTEwNDcsNiArMTA0OSw2OCBAQCBzdGF0aWMgaW50 IHNhbml0eV9jaGVja19yYXdfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKIAkJcmV0dXJu IDE7CiAJfQogCisJc2VnbWVudF9jb3VudCA9IGxlMzJfdG9fY3B1KHJhd19zdXBlci0+c2VnbWVu dF9jb3VudCk7CisJc2Vnc19wZXJfc2VjID0gbGUzMl90b19jcHUocmF3X3N1cGVyLT5zZWdzX3Bl cl9zZWMpOworCXNlY3NfcGVyX3pvbmUgPSBsZTMyX3RvX2NwdShyYXdfc3VwZXItPnNlY3NfcGVy X3pvbmUpOworCXRvdGFsX3NlY3Rpb25zID0gbGUzMl90b19jcHUocmF3X3N1cGVyLT5zZWN0aW9u X2NvdW50KTsKKworCS8qIGJsb2Nrc19wZXJfc2VnIHNob3VsZCBiZSA1MTIsIGdpdmVuIHRoZSBh Ym92ZSBjaGVjayAqLworCWJsb2Nrc19wZXJfc2VnID0gMSA8PCBsZTMyX3RvX2NwdShyYXdfc3Vw ZXItPmxvZ19ibG9ja3NfcGVyX3NlZyk7CisKKwlpZiAoc2VnbWVudF9jb3VudCA+IEYyRlNfTUFY X1NFR01FTlQgfHwKKwkJCQlzZWdtZW50X2NvdW50IDwgRjJGU19NSU5fU0VHTUVOVFMpIHsKKwkJ ZjJmc19tc2coc2IsIEtFUk5fSU5GTywKKwkJCSJJbnZhbGlkIHNlZ21lbnQgY291bnQgKCV1KSIs CisJCQlzZWdtZW50X2NvdW50KTsKKwkJcmV0dXJuIDE7CisJfQorCisJaWYgKHRvdGFsX3NlY3Rp b25zID4gc2VnbWVudF9jb3VudCB8fAorCQkJdG90YWxfc2VjdGlvbnMgPCBGMkZTX01JTl9TRUdN RU5UUyB8fAorCQkJc2Vnc19wZXJfc2VjID4gc2VnbWVudF9jb3VudCB8fCAhc2Vnc19wZXJfc2Vj KSB7CisJCWYyZnNfbXNnKHNiLCBLRVJOX0lORk8sCisJCQkiSW52YWxpZCBzZWdtZW50L3NlY3Rp b24gY291bnQgKCV1LCAldSB4ICV1KSIsCisJCQlzZWdtZW50X2NvdW50LCB0b3RhbF9zZWN0aW9u cywgc2Vnc19wZXJfc2VjKTsKKwkJcmV0dXJuIDE7CisJfQorCisJaWYgKChzZWdtZW50X2NvdW50 IC8gc2Vnc19wZXJfc2VjKSA8IHRvdGFsX3NlY3Rpb25zKSB7CisJCWYyZnNfbXNnKHNiLCBLRVJO X0lORk8sCisJCQkiU21hbGwgc2VnbWVudF9jb3VudCAoJXUgPCAldSAqICV1KSIsCisJCQlzZWdt ZW50X2NvdW50LCBzZWdzX3Blcl9zZWMsIHRvdGFsX3NlY3Rpb25zKTsKKwkJcmV0dXJuIDE7CisJ fQorCisJaWYgKHNlZ21lbnRfY291bnQgPiAobGUzMl90b19jcHUocmF3X3N1cGVyLT5ibG9ja19j b3VudCkgPj4gOSkpIHsKKwkJZjJmc19tc2coc2IsIEtFUk5fSU5GTywKKwkJCSJXcm9uZyBzZWdt ZW50X2NvdW50IC8gYmxvY2tfY291bnQgKCV1ID4gJXUpIiwKKwkJCXNlZ21lbnRfY291bnQsIGxl MzJfdG9fY3B1KHJhd19zdXBlci0+YmxvY2tfY291bnQpKTsKKwkJcmV0dXJuIDE7CisJfQorCisJ aWYgKHNlY3NfcGVyX3pvbmUgPiB0b3RhbF9zZWN0aW9ucykgeworCQlmMmZzX21zZyhzYiwgS0VS Tl9JTkZPLAorCQkJIldyb25nIHNlY3NfcGVyX3pvbmUgKCV1ID4gJXUpIiwKKwkJCXNlY3NfcGVy X3pvbmUsIHRvdGFsX3NlY3Rpb25zKTsKKwkJcmV0dXJuIDE7CisJfQorCWlmIChsZTMyX3RvX2Nw dShyYXdfc3VwZXItPmV4dGVuc2lvbl9jb3VudCkgPiBGMkZTX01BWF9FWFRFTlNJT04pIHsKKwkJ ZjJmc19tc2coc2IsIEtFUk5fSU5GTywKKwkJCSJDb3JydXB0ZWQgZXh0ZW5zaW9uIGNvdW50ICgl dSA+ICV1KSIsCisJCQlsZTMyX3RvX2NwdShyYXdfc3VwZXItPmV4dGVuc2lvbl9jb3VudCksCisJ CQlGMkZTX01BWF9FWFRFTlNJT04pOworCQlyZXR1cm4gMTsKKwl9CisKKwlpZiAobGUzMl90b19j cHUocmF3X3N1cGVyLT5jcF9wYXlsb2FkKSA+CisJCQkJKGJsb2Nrc19wZXJfc2VnIC0gRjJGU19D UF9QQUNLUykpIHsKKwkJZjJmc19tc2coc2IsIEtFUk5fSU5GTywKKwkJCSJJbnNhbmUgY3BfcGF5 bG9hZCAoJXUgPiAldSkiLAorCQkJbGUzMl90b19jcHUocmF3X3N1cGVyLT5jcF9wYXlsb2FkKSwK KwkJCWJsb2Nrc19wZXJfc2VnIC0gRjJGU19DUF9QQUNLUyk7CisJCXJldHVybiAxOworCX0KKwog CS8qIGNoZWNrIHJlc2VydmVkIGlubyBpbmZvICovCiAJaWYgKGxlMzJfdG9fY3B1KHJhd19zdXBl ci0+bm9kZV9pbm8pICE9IDEgfHwKIAkJbGUzMl90b19jcHUocmF3X3N1cGVyLT5tZXRhX2lubykg IT0gMiB8fApAQCAtMTA1OSwxMyArMTEyMyw2IEBAIHN0YXRpYyBpbnQgc2FuaXR5X2NoZWNrX3Jh d19zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCQlyZXR1cm4gMTsKIAl9CiAKLQlpZiAo bGUzMl90b19jcHUocmF3X3N1cGVyLT5zZWdtZW50X2NvdW50KSA+IEYyRlNfTUFYX1NFR01FTlQp IHsKLQkJZjJmc19tc2coc2IsIEtFUk5fSU5GTywKLQkJCSJJbnZhbGlkIHNlZ21lbnQgY291bnQg KCV1KSIsCi0JCQlsZTMyX3RvX2NwdShyYXdfc3VwZXItPnNlZ21lbnRfY291bnQpKTsKLQkJcmV0 dXJuIDE7Ci0JfQotCiAJLyogY2hlY2sgQ1AvU0lUL05BVC9TU0EvTUFJTl9BUkVBIGFyZWEgYm91 bmRhcnkgKi8KIAlpZiAoc2FuaXR5X2NoZWNrX2FyZWFfYm91bmRhcnkoc2IsIHJhd19zdXBlcikp CiAJCXJldHVybiAxOwoKRnJvbSAwODkyMTEyM2QxM2VjOGYwYWRkYjFhYTgwNWE0NGU4ODIyZDhi OWM2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaGFvIFl1IDx5dWNoYW8wQGh1YXdl aS5jb20+CkRhdGU6IFdlZCwgMjMgTWF5IDIwMTggMjI6MjU6MDggKzA4MDAKU3ViamVjdDogW1BB VENIIDI0LzM2XSBmMmZzOiBjbGVhbiB1cCB3aXRoIGlzX3ZhbGlkX2Jsa2FkZHIoKQoKY29tbWl0 IDdiNTI1ZGQwMTM2NWM2NzY0MDE4ZTM3NGQzOTFjOTI0NjZiZTFiN2EgdXBzdHJlYW0uCgotIHJl bmFtZSBpc192YWxpZF9ibGthZGRyKCkgdG8gaXNfdmFsaWRfbWV0YV9ibGthZGRyKCkgZm9yIHJl YWRhYmlsaXR5LgotIGludHJvZHVjZSBpc192YWxpZF9ibGthZGRyKCkgZm9yIGNsZWFudXAuCgpO byBsb2dpYyBjaGFuZ2UgaW4gdGhpcyBwYXRjaC4KClNpZ25lZC1vZmYtYnk6IENoYW8gWXUgPHl1 Y2hhbzBAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2Vy bmVsLm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0LjQ6CiAtIERyb3AgaW5hcHBsaWNhYmxlIGNo YW5nZSB0byBjaGVjayBvbiBmMmZzX2Zpb19pbmZvOjpvbGRfYmxrYWRkcgogLSBBZGp1c3QgY29u dGV4dF0KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhp bmsuY28udWs+Ci0tLQogZnMvZjJmcy9jaGVja3BvaW50LmMgfCA0ICsrLS0KIGZzL2YyZnMvZGF0 YS5jICAgICAgIHwgNCArKy0tCiBmcy9mMmZzL2YyZnMuaCAgICAgICB8IDkgKysrKysrKystCiBm cy9mMmZzL2ZpbGUuYyAgICAgICB8IDIgKy0KIGZzL2YyZnMvaW5vZGUuYyAgICAgIHwgMiArLQog ZnMvZjJmcy9ub2RlLmMgICAgICAgfCA1ICsrLS0tCiBmcy9mMmZzL3JlY292ZXJ5LmMgICB8IDYg KysrLS0tCiBmcy9mMmZzL3NlZ21lbnQuYyAgICB8IDQgKystLQogZnMvZjJmcy9zZWdtZW50Lmgg ICAgfCAyICstCiA5IGZpbGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvY2hlY2twb2ludC5jIGIvZnMvZjJmcy9jaGVja3Bv aW50LmMKaW5kZXggNzBlZjQ5YmIyODAzLi5kZmZjZTgyYjExYmUgMTAwNjQ0Ci0tLSBhL2ZzL2Yy ZnMvY2hlY2twb2ludC5jCisrKyBiL2ZzL2YyZnMvY2hlY2twb2ludC5jCkBAIC0xMDcsNyArMTA3 LDcgQEAgc3RydWN0IHBhZ2UgKmdldF90bXBfcGFnZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmks IHBnb2ZmX3QgaW5kZXgpCiAJcmV0dXJuIF9fZ2V0X21ldGFfcGFnZShzYmksIGluZGV4LCBmYWxz ZSk7CiB9CiAKLWJvb2wgaXNfdmFsaWRfYmxrYWRkcihzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmks IGJsb2NrX3QgYmxrYWRkciwgaW50IHR5cGUpCitib29sIGlzX3ZhbGlkX21ldGFfYmxrYWRkcihz dHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJsb2NrX3QgYmxrYWRkciwgaW50IHR5cGUpCiB7CiAJ c3dpdGNoICh0eXBlKSB7CiAJY2FzZSBNRVRBX05BVDoKQEAgLTE2MCw3ICsxNjAsNyBAQCBpbnQg cmFfbWV0YV9wYWdlcyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJsb2NrX3Qgc3RhcnQsIGlu dCBucnBhZ2VzLAogCiAJZm9yICg7IG5ycGFnZXMtLSA+IDA7IGJsa25vKyspIHsKIAotCQlpZiAo IWlzX3ZhbGlkX2Jsa2FkZHIoc2JpLCBibGtubywgdHlwZSkpCisJCWlmICghaXNfdmFsaWRfbWV0 YV9ibGthZGRyKHNiaSwgYmxrbm8sIHR5cGUpKQogCQkJZ290byBvdXQ7CiAKIAkJc3dpdGNoICh0 eXBlKSB7CmRpZmYgLS1naXQgYS9mcy9mMmZzL2RhdGEuYyBiL2ZzL2YyZnMvZGF0YS5jCmluZGV4 IGExMWE0OWVjZTIzOC4uNTA0ZjAxMjZiMzY5IDEwMDY0NAotLS0gYS9mcy9mMmZzL2RhdGEuYwor KysgYi9mcy9mMmZzL2RhdGEuYwpAQCAtNjA0LDcgKzYwNCw3IEBAIHN0YXRpYyBpbnQgZjJmc19t YXBfYmxvY2tzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmMmZzX21hcF9ibG9ja3MgKm1h cCwKIAkJZ290byB1bmxvY2tfb3V0OwogCX0KIAotCWlmIChkbi5kYXRhX2Jsa2FkZHIgPT0gTkVX X0FERFIgfHwgZG4uZGF0YV9ibGthZGRyID09IE5VTExfQUREUikgeworCWlmICghaXNfdmFsaWRf YmxrYWRkcihkbi5kYXRhX2Jsa2FkZHIpKSB7CiAJCWlmIChjcmVhdGUpIHsKIAkJCWlmICh1bmxp a2VseShmMmZzX2NwX2Vycm9yKHNiaSkpKSB7CiAJCQkJZXJyID0gLUVJTzsKQEAgLTEwOTAsNyAr MTA5MCw3IEBAIGludCBkb193cml0ZV9kYXRhX3BhZ2Uoc3RydWN0IGYyZnNfaW9faW5mbyAqZmlv KQogCSAqIElmIGN1cnJlbnQgYWxsb2NhdGlvbiBuZWVkcyBTU1IsCiAJICogaXQgaGFkIGJldHRl ciBpbi1wbGFjZSB3cml0ZXMgZm9yIHVwZGF0ZWQgZGF0YS4KIAkgKi8KLQlpZiAodW5saWtlbHko ZmlvLT5ibGtfYWRkciAhPSBORVdfQUREUiAmJgorCWlmICh1bmxpa2VseShpc192YWxpZF9ibGth ZGRyKGZpby0+YmxrX2FkZHIpICYmCiAJCQkhaXNfY29sZF9kYXRhKHBhZ2UpICYmCiAJCQluZWVk X2lucGxhY2VfdXBkYXRlKGlub2RlKSkpIHsKIAkJcmV3cml0ZV9kYXRhX3BhZ2UoZmlvKTsKZGlm ZiAtLWdpdCBhL2ZzL2YyZnMvZjJmcy5oIGIvZnMvZjJmcy9mMmZzLmgKaW5kZXggOWNmNDE3ZWY4 NzFhLi44NTFlYjQ1N2ZjN2MgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvZjJmcy5oCisrKyBiL2ZzL2Yy ZnMvZjJmcy5oCkBAIC0xNjQ3LDYgKzE2NDcsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkICpmMmZz X2t2emFsbG9jKHNpemVfdCBzaXplLCBnZnBfdCBmbGFncykKIAkocGdvZnMgLSBBRERSU19QRVJf SU5PREUoZmkpICsgQUREUlNfUEVSX0JMT0NLKSAvCVwKIAlBRERSU19QRVJfQkxPQ0sgKiBBRERS U19QRVJfQkxPQ0sgKyBBRERSU19QRVJfSU5PREUoZmkpKQogCitzdGF0aWMgaW5saW5lIGJvb2wg aXNfdmFsaWRfYmxrYWRkcihibG9ja190IGJsa2FkZHIpCit7CisJaWYgKGJsa2FkZHIgPT0gTkVX X0FERFIgfHwgYmxrYWRkciA9PSBOVUxMX0FERFIpCisJCXJldHVybiBmYWxzZTsKKwlyZXR1cm4g dHJ1ZTsKK30KKwogLyoKICAqIGZpbGUuYwogICovCkBAIC0xODE4LDcgKzE4MjUsNyBAQCB2b2lk IGRlc3Ryb3lfc2VnbWVudF9tYW5hZ2VyX2NhY2hlcyh2b2lkKTsKIHN0cnVjdCBwYWdlICpncmFi X21ldGFfcGFnZShzdHJ1Y3QgZjJmc19zYl9pbmZvICosIHBnb2ZmX3QpOwogc3RydWN0IHBhZ2Ug KmdldF9tZXRhX3BhZ2Uoc3RydWN0IGYyZnNfc2JfaW5mbyAqLCBwZ29mZl90KTsKIHN0cnVjdCBw YWdlICpnZXRfdG1wX3BhZ2Uoc3RydWN0IGYyZnNfc2JfaW5mbyAqLCBwZ29mZl90KTsKLWJvb2wg aXNfdmFsaWRfYmxrYWRkcihzdHJ1Y3QgZjJmc19zYl9pbmZvICosIGJsb2NrX3QsIGludCk7Citi b29sIGlzX3ZhbGlkX21ldGFfYmxrYWRkcihzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJsb2Nr X3QgYmxrYWRkciwgaW50IHR5cGUpOwogaW50IHJhX21ldGFfcGFnZXMoc3RydWN0IGYyZnNfc2Jf aW5mbyAqLCBibG9ja190LCBpbnQsIGludCwgYm9vbCk7CiB2b2lkIHJhX21ldGFfcGFnZXNfY29u ZChzdHJ1Y3QgZjJmc19zYl9pbmZvICosIHBnb2ZmX3QpOwogbG9uZyBzeW5jX21ldGFfcGFnZXMo c3RydWN0IGYyZnNfc2JfaW5mbyAqLCBlbnVtIHBhZ2VfdHlwZSwgbG9uZyk7CmRpZmYgLS1naXQg YS9mcy9mMmZzL2ZpbGUuYyBiL2ZzL2YyZnMvZmlsZS5jCmluZGV4IDAxZWVkOTRiMDFlYS4uZDRl YmExMmQ0ZDE3IDEwMDY0NAotLS0gYS9mcy9mMmZzL2ZpbGUuYworKysgYi9mcy9mMmZzL2ZpbGUu YwpAQCAtMzExLDcgKzMxMSw3IEBAIHN0YXRpYyBib29sIF9fZm91bmRfb2Zmc2V0KGJsb2NrX3Qg YmxrYWRkciwgcGdvZmZfdCBkaXJ0eSwgcGdvZmZfdCBwZ29mcywKIAlzd2l0Y2ggKHdoZW5jZSkg ewogCWNhc2UgU0VFS19EQVRBOgogCQlpZiAoKGJsa2FkZHIgPT0gTkVXX0FERFIgJiYgZGlydHkg PT0gcGdvZnMpIHx8Ci0JCQkoYmxrYWRkciAhPSBORVdfQUREUiAmJiBibGthZGRyICE9IE5VTExf QUREUikpCisJCQlpc192YWxpZF9ibGthZGRyKGJsa2FkZHIpKQogCQkJcmV0dXJuIHRydWU7CiAJ CWJyZWFrOwogCWNhc2UgU0VFS19IT0xFOgpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9pbm9kZS5jIGIv ZnMvZjJmcy9pbm9kZS5jCmluZGV4IDU1Mjg4MDFhNWJhZi4uYWEwY2UwNmQxNDNhIDEwMDY0NAot LS0gYS9mcy9mMmZzL2lub2RlLmMKKysrIGIvZnMvZjJmcy9pbm9kZS5jCkBAIC01NCw3ICs1NCw3 IEBAIHN0YXRpYyBib29sIF9fd3JpdHRlbl9maXJzdF9ibG9jayhzdHJ1Y3QgZjJmc19pbm9kZSAq cmkpCiB7CiAJYmxvY2tfdCBhZGRyID0gbGUzMl90b19jcHUocmktPmlfYWRkclswXSk7CiAKLQlp ZiAoYWRkciAhPSBORVdfQUREUiAmJiBhZGRyICE9IE5VTExfQUREUikKKwlpZiAoaXNfdmFsaWRf YmxrYWRkcihhZGRyKSkKIAkJcmV0dXJuIHRydWU7CiAJcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0t Z2l0IGEvZnMvZjJmcy9ub2RlLmMgYi9mcy9mMmZzL25vZGUuYwppbmRleCAxYjJiZGI4MTY4ZTku Ljc1ZjBhN2ZjODkxYiAxMDA2NDQKLS0tIGEvZnMvZjJmcy9ub2RlLmMKKysrIGIvZnMvZjJmcy9u b2RlLmMKQEAgLTI5Niw4ICsyOTYsNyBAQCBzdGF0aWMgdm9pZCBzZXRfbm9kZV9hZGRyKHN0cnVj dCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IG5vZGVfaW5mbyAqbmksCiAJCQluZXdfYmxrYWRk ciA9PSBOVUxMX0FERFIpOwogCWYyZnNfYnVnX29uKHNiaSwgbmF0X2dldF9ibGthZGRyKGUpID09 IE5FV19BRERSICYmCiAJCQluZXdfYmxrYWRkciA9PSBORVdfQUREUik7Ci0JZjJmc19idWdfb24o c2JpLCBuYXRfZ2V0X2Jsa2FkZHIoZSkgIT0gTkVXX0FERFIgJiYKLQkJCW5hdF9nZXRfYmxrYWRk cihlKSAhPSBOVUxMX0FERFIgJiYKKwlmMmZzX2J1Z19vbihzYmksIGlzX3ZhbGlkX2Jsa2FkZHIo bmF0X2dldF9ibGthZGRyKGUpKSAmJgogCQkJbmV3X2Jsa2FkZHIgPT0gTkVXX0FERFIpOwogCiAJ LyogaW5jcmVtZW50IHZlcnNpb24gbm8gYXMgbm9kZSBpcyByZW1vdmVkICovCkBAIC0zMTIsNyAr MzExLDcgQEAgc3RhdGljIHZvaWQgc2V0X25vZGVfYWRkcihzdHJ1Y3QgZjJmc19zYl9pbmZvICpz YmksIHN0cnVjdCBub2RlX2luZm8gKm5pLAogCiAJLyogY2hhbmdlIGFkZHJlc3MgKi8KIAluYXRf c2V0X2Jsa2FkZHIoZSwgbmV3X2Jsa2FkZHIpOwotCWlmIChuZXdfYmxrYWRkciA9PSBORVdfQURE UiB8fCBuZXdfYmxrYWRkciA9PSBOVUxMX0FERFIpCisJaWYgKCFpc192YWxpZF9ibGthZGRyKG5l d19ibGthZGRyKSkKIAkJc2V0X25hdF9mbGFnKGUsIElTX0NIRUNLUE9JTlRFRCwgZmFsc2UpOwog CV9fc2V0X25hdF9jYWNoZV9kaXJ0eShubV9pLCBlKTsKIApkaWZmIC0tZ2l0IGEvZnMvZjJmcy9y ZWNvdmVyeS5jIGIvZnMvZjJmcy9yZWNvdmVyeS5jCmluZGV4IDliNjI1Y2ExOTAwMS4uYWUwZDdk MGUwZTI4IDEwMDY0NAotLS0gYS9mcy9mMmZzL3JlY292ZXJ5LmMKKysrIGIvZnMvZjJmcy9yZWNv dmVyeS5jCkBAIC0yMDgsNyArMjA4LDcgQEAgc3RhdGljIGludCBmaW5kX2ZzeW5jX2Rub2Rlcyhz dHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCiAJd2hpbGUg KDEpIHsKIAkJc3RydWN0IGZzeW5jX2lub2RlX2VudHJ5ICplbnRyeTsKIAotCQlpZiAoIWlzX3Zh bGlkX2Jsa2FkZHIoc2JpLCBibGthZGRyLCBNRVRBX1BPUikpCisJCWlmICghaXNfdmFsaWRfbWV0 YV9ibGthZGRyKHNiaSwgYmxrYWRkciwgTUVUQV9QT1IpKQogCQkJcmV0dXJuIDA7CiAKIAkJcGFn ZSA9IGdldF90bXBfcGFnZShzYmksIGJsa2FkZHIpOwpAQCAtNDQzLDcgKzQ0Myw3IEBAIHN0YXRp YyBpbnQgZG9fcmVjb3Zlcl9kYXRhKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IGlu b2RlICppbm9kZSwKIAkJfQogCiAJCS8qIGRlc3QgaXMgdmFsaWQgYmxvY2ssIHRyeSB0byByZWNv dmVyIGZyb20gc3JjIHRvIGRlc3QgKi8KLQkJaWYgKGlzX3ZhbGlkX2Jsa2FkZHIoc2JpLCBkZXN0 LCBNRVRBX1BPUikpIHsKKwkJaWYgKGlzX3ZhbGlkX21ldGFfYmxrYWRkcihzYmksIGRlc3QsIE1F VEFfUE9SKSkgewogCiAJCQlpZiAoc3JjID09IE5VTExfQUREUikgewogCQkJCWVyciA9IHJlc2Vy dmVfbmV3X2Jsb2NrKCZkbik7CkBAIC00OTQsNyArNDk0LDcgQEAgc3RhdGljIGludCByZWNvdmVy X2RhdGEoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBzdHJ1Y3QgbGlzdF9oZWFkICppbm9kZV9s aXN0LAogCXdoaWxlICgxKSB7CiAJCXN0cnVjdCBmc3luY19pbm9kZV9lbnRyeSAqZW50cnk7CiAK LQkJaWYgKCFpc192YWxpZF9ibGthZGRyKHNiaSwgYmxrYWRkciwgTUVUQV9QT1IpKQorCQlpZiAo IWlzX3ZhbGlkX21ldGFfYmxrYWRkcihzYmksIGJsa2FkZHIsIE1FVEFfUE9SKSkKIAkJCWJyZWFr OwogCiAJCXJhX21ldGFfcGFnZXNfY29uZChzYmksIGJsa2FkZHIpOwpkaWZmIC0tZ2l0IGEvZnMv ZjJmcy9zZWdtZW50LmMgYi9mcy9mMmZzL3NlZ21lbnQuYwppbmRleCBhZGVlZmY2Nzc1MWIuLmEw OTg0OWEzOTA3NCAxMDA2NDQKLS0tIGEvZnMvZjJmcy9zZWdtZW50LmMKKysrIGIvZnMvZjJmcy9z ZWdtZW50LmMKQEAgLTc1Miw3ICs3NTIsNyBAQCBib29sIGlzX2NoZWNrcG9pbnRlZF9kYXRhKHN0 cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgYmxvY2tfdCBibGthZGRyKQogCXN0cnVjdCBzZWdfZW50 cnkgKnNlOwogCWJvb2wgaXNfY3AgPSBmYWxzZTsKIAotCWlmIChibGthZGRyID09IE5FV19BRERS IHx8IGJsa2FkZHIgPT0gTlVMTF9BRERSKQorCWlmICghaXNfdmFsaWRfYmxrYWRkcihibGthZGRy KSkKIAkJcmV0dXJuIHRydWU7CiAKIAltdXRleF9sb2NrKCZzaXRfaS0+c2VudHJ5X2xvY2spOwpA QCAtMTQ2Niw3ICsxNDY2LDcgQEAgdm9pZCBmMmZzX3dhaXRfb25fZW5jcnlwdGVkX3BhZ2Vfd3Jp dGViYWNrKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKIHsKIAlzdHJ1Y3QgcGFnZSAqY3BhZ2U7 CiAKLQlpZiAoYmxrYWRkciA9PSBORVdfQUREUikKKwlpZiAoIWlzX3ZhbGlkX2Jsa2FkZHIoYmxr YWRkcikpCiAJCXJldHVybjsKIAogCWYyZnNfYnVnX29uKHNiaSwgYmxrYWRkciA9PSBOVUxMX0FE RFIpOwpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9zZWdtZW50LmggYi9mcy9mMmZzL3NlZ21lbnQuaApp bmRleCBjYjYxNzE2MDcwZTguLmM5MzZlMWEzZjA0ZiAxMDA2NDQKLS0tIGEvZnMvZjJmcy9zZWdt ZW50LmgKKysrIGIvZnMvZjJmcy9zZWdtZW50LmgKQEAgLTgwLDcgKzgwLDcgQEAKIAkoR0VUX1NF R09GRl9GUk9NX1NFRzAoc2JpLCBibGtfYWRkcikgJiAoc2JpLT5ibG9ja3NfcGVyX3NlZyAtIDEp KQogCiAjZGVmaW5lIEdFVF9TRUdOTyhzYmksIGJsa19hZGRyKQkJCQkJXAotCSgoKGJsa19hZGRy ID09IE5VTExfQUREUikgfHwgKGJsa19hZGRyID09IE5FV19BRERSKSkgPwkJXAorCSgoIWlzX3Zh bGlkX2Jsa2FkZHIoYmxrX2FkZHIpKSA/CQkJXAogCU5VTExfU0VHTk8gOiBHRVRfTDJSX1NFR05P KEZSRUVfSShzYmkpLAkJCVwKIAkJR0VUX1NFR05PX0ZST01fU0VHMChzYmksIGJsa19hZGRyKSkp CiAjZGVmaW5lIEdFVF9TRUNOTyhzYmksIHNlZ25vKQkJCQkJXAoKRnJvbSBmZGE1NTQ0ZTdhYjUz Y2U5NmQ0NDNlZGEzODI0NGQ4ZTdiMjNkMTY3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBDaGFvIFl1IDx5dWNoYW8wQGh1YXdlaS5jb20+CkRhdGU6IFR1ZSwgNSBKdW4gMjAxOCAxNzo0 NDoxMSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjUvMzZdIGYyZnM6IGludHJvZHVjZSBhbmQgc3By ZWFkIHZlcmlmeV9ibGthZGRyCgpjb21taXQgZTFkYTc4NzJmNmVkYTk3N2JkODEyMzQ2YmY1ODhj MzVlNDQ5NWExZSB1cHN0cmVhbS4KClRoaXMgcGF0Y2ggaW50cm9kdWNlcyB2ZXJpZnlfYmxrYWRk ciB0byBjaGVjayBtZXRhL2RhdGEgYmxvY2sgYWRkcmVzcwp3aXRoIHZhbGlkIHJhbmdlIHRvIGRl dGVjdCBidWcgZWFybGllci4KCkluIGFkZGl0aW9uLCBvbmNlIHdlIGVuY291bnRlciBhbiBpbnZh bGlkIGJsa2FkZHIsIG5vdGljZSB1c2VyIHRvIHJ1bgpmc2NrIHRvIGZpeCwgYW5kIGxldCB0aGUg a2VybmVsIHBhbmljLgoKU2lnbmVkLW9mZi1ieTogQ2hhbyBZdSA8eXVjaGFvMEBodWF3ZWkuY29t PgpTaWduZWQtb2ZmLWJ5OiBKYWVnZXVrIEtpbSA8amFlZ2V1a0BrZXJuZWwub3JnPgpbYndoOiBC YWNrcG9ydGVkIHRvIDQuNDoKIC0gSSBza2lwcGVkIGFuIGVhcmxpZXIgcmVuYW1pbmcgb2YgaXNf dmFsaWRfbWV0YV9ibGthZGRyKCkgdG8KICAgZjJmc19pc192YWxpZF9tZXRhX2Jsa2FkZHIoKQog LSBEcm9wIGluYXBwbGljYWJsZSBjaGFuZ2UgdG8gY2hlY2sgb24gZjJmc19maW9faW5mbzo6b2xk X2Jsa2FkZHIKIC0gQWRqdXN0IGNvbnRleHRdClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3Mg PGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2YyZnMvY2hlY2twb2ludC5j IHwgMTEgKysrKysrKysrLS0KIGZzL2YyZnMvZGF0YS5jICAgICAgIHwgIDQgKystLQogZnMvZjJm cy9mMmZzLmggICAgICAgfCAzMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogZnMv ZjJmcy9maWxlLmMgICAgICAgfCAgOSArKysrKy0tLS0KIGZzL2YyZnMvaW5vZGUuYyAgICAgIHwg IDcgKysrKy0tLQogZnMvZjJmcy9ub2RlLmMgICAgICAgfCAgNCArKy0tCiBmcy9mMmZzL3JlY292 ZXJ5LmMgICB8ICA2ICsrKy0tLQogZnMvZjJmcy9zZWdtZW50LmMgICAgfCAgNCArKy0tCiBmcy9m MmZzL3NlZ21lbnQuaCAgICB8ICA4ICsrKy0tLS0tCiA5IGZpbGVzIGNoYW5nZWQsIDU5IGluc2Vy dGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvY2hlY2twb2lu dC5jIGIvZnMvZjJmcy9jaGVja3BvaW50LmMKaW5kZXggZGZmY2U4MmIxMWJlLi42NGI2NWQ1MDlm N2MgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvY2hlY2twb2ludC5jCisrKyBiL2ZzL2YyZnMvY2hlY2tw b2ludC5jCkBAIC0xMDcsNyArMTA3LDggQEAgc3RydWN0IHBhZ2UgKmdldF90bXBfcGFnZShzdHJ1 Y3QgZjJmc19zYl9pbmZvICpzYmksIHBnb2ZmX3QgaW5kZXgpCiAJcmV0dXJuIF9fZ2V0X21ldGFf cGFnZShzYmksIGluZGV4LCBmYWxzZSk7CiB9CiAKLWJvb2wgaXNfdmFsaWRfbWV0YV9ibGthZGRy KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgYmxvY2tfdCBibGthZGRyLCBpbnQgdHlwZSkKK2Jv b2wgZjJmc19pc192YWxpZF9ibGthZGRyKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKKwkJCQkJ YmxvY2tfdCBibGthZGRyLCBpbnQgdHlwZSkKIHsKIAlzd2l0Y2ggKHR5cGUpIHsKIAljYXNlIE1F VEFfTkFUOgpAQCAtMTI3LDEwICsxMjgsMTYgQEAgYm9vbCBpc192YWxpZF9tZXRhX2Jsa2FkZHIo c3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBibG9ja190IGJsa2FkZHIsIGludCB0eXBlKQogCQkJ cmV0dXJuIGZhbHNlOwogCQlicmVhazsKIAljYXNlIE1FVEFfUE9SOgorCWNhc2UgREFUQV9HRU5F UklDOgogCQlpZiAodW5saWtlbHkoYmxrYWRkciA+PSBNQVhfQkxLQUREUihzYmkpIHx8CiAJCQli bGthZGRyIDwgTUFJTl9CTEtBRERSKHNiaSkpKQogCQkJcmV0dXJuIGZhbHNlOwogCQlicmVhazsK KwljYXNlIE1FVEFfR0VORVJJQzoKKwkJaWYgKHVubGlrZWx5KGJsa2FkZHIgPCBTRUcwX0JMS0FE RFIoc2JpKSB8fAorCQkJYmxrYWRkciA+PSBNQUlOX0JMS0FERFIoc2JpKSkpCisJCQlyZXR1cm4g ZmFsc2U7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCUJVRygpOwogCX0KQEAgLTE2MCw3ICsxNjcs NyBAQCBpbnQgcmFfbWV0YV9wYWdlcyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJsb2NrX3Qg c3RhcnQsIGludCBucnBhZ2VzLAogCiAJZm9yICg7IG5ycGFnZXMtLSA+IDA7IGJsa25vKyspIHsK IAotCQlpZiAoIWlzX3ZhbGlkX21ldGFfYmxrYWRkcihzYmksIGJsa25vLCB0eXBlKSkKKwkJaWYg KCFmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIoc2JpLCBibGtubywgdHlwZSkpCiAJCQlnb3RvIG91dDsK IAogCQlzd2l0Y2ggKHR5cGUpIHsKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvZGF0YS5jIGIvZnMvZjJm cy9kYXRhLmMKaW5kZXggNTA0ZjAxMjZiMzY5Li40NmRjZjg1NmU4NDggMTAwNjQ0Ci0tLSBhL2Zz L2YyZnMvZGF0YS5jCisrKyBiL2ZzL2YyZnMvZGF0YS5jCkBAIC02MDQsNyArNjA0LDcgQEAgc3Rh dGljIGludCBmMmZzX21hcF9ibG9ja3Moc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGYyZnNf bWFwX2Jsb2NrcyAqbWFwLAogCQlnb3RvIHVubG9ja19vdXQ7CiAJfQogCi0JaWYgKCFpc192YWxp ZF9ibGthZGRyKGRuLmRhdGFfYmxrYWRkcikpIHsKKwlpZiAoIWlzX3ZhbGlkX2RhdGFfYmxrYWRk cihzYmksIGRuLmRhdGFfYmxrYWRkcikpIHsKIAkJaWYgKGNyZWF0ZSkgewogCQkJaWYgKHVubGlr ZWx5KGYyZnNfY3BfZXJyb3Ioc2JpKSkpIHsKIAkJCQllcnIgPSAtRUlPOwpAQCAtMTA5MCw3ICsx MDkwLDcgQEAgaW50IGRvX3dyaXRlX2RhdGFfcGFnZShzdHJ1Y3QgZjJmc19pb19pbmZvICpmaW8p CiAJICogSWYgY3VycmVudCBhbGxvY2F0aW9uIG5lZWRzIFNTUiwKIAkgKiBpdCBoYWQgYmV0dGVy IGluLXBsYWNlIHdyaXRlcyBmb3IgdXBkYXRlZCBkYXRhLgogCSAqLwotCWlmICh1bmxpa2VseShp c192YWxpZF9ibGthZGRyKGZpby0+YmxrX2FkZHIpICYmCisJaWYgKHVubGlrZWx5KGlzX3ZhbGlk X2RhdGFfYmxrYWRkcihmaW8tPnNiaSwgZmlvLT5ibGtfYWRkcikgJiYKIAkJCSFpc19jb2xkX2Rh dGEocGFnZSkgJiYKIAkJCW5lZWRfaW5wbGFjZV91cGRhdGUoaW5vZGUpKSkgewogCQlyZXdyaXRl X2RhdGFfcGFnZShmaW8pOwpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9mMmZzLmggYi9mcy9mMmZzL2Yy ZnMuaAppbmRleCA4NTFlYjQ1N2ZjN2MuLmU1NjJkOGJkNWI4YSAxMDA2NDQKLS0tIGEvZnMvZjJm cy9mMmZzLmgKKysrIGIvZnMvZjJmcy9mMmZzLmgKQEAgLTEzNSw3ICsxMzUsNyBAQCBzdHJ1Y3Qg Y3BfY29udHJvbCB7CiB9OwogCiAvKgotICogRm9yIENQL05BVC9TSVQvU1NBIHJlYWRhaGVhZAor ICogaW5kaWNhdGUgbWV0YS9kYXRhIHR5cGUKICAqLwogZW51bSB7CiAJTUVUQV9DUCwKQEAgLTE0 Myw2ICsxNDMsOCBAQCBlbnVtIHsKIAlNRVRBX1NJVCwKIAlNRVRBX1NTQSwKIAlNRVRBX1BPUiwK KwlEQVRBX0dFTkVSSUMsCisJTUVUQV9HRU5FUklDLAogfTsKIAogLyogZm9yIHRoZSBsaXN0IG9m IGlubyAqLwpAQCAtMTY0NywxMyArMTY0OSwzNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgKmYyZnNf a3Z6YWxsb2Moc2l6ZV90IHNpemUsIGdmcF90IGZsYWdzKQogCShwZ29mcyAtIEFERFJTX1BFUl9J Tk9ERShmaSkgKyBBRERSU19QRVJfQkxPQ0spIC8JXAogCUFERFJTX1BFUl9CTE9DSyAqIEFERFJT X1BFUl9CTE9DSyArIEFERFJTX1BFUl9JTk9ERShmaSkpCiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBp c192YWxpZF9ibGthZGRyKGJsb2NrX3QgYmxrYWRkcikKK2Jvb2wgZjJmc19pc192YWxpZF9ibGth ZGRyKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKKwkJCQkJYmxvY2tfdCBibGthZGRyLCBpbnQg dHlwZSk7Cit2b2lkIGYyZnNfbXNnKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGNvbnN0IGNoYXIg KmxldmVsLCBjb25zdCBjaGFyICpmbXQsIC4uLik7CitzdGF0aWMgaW5saW5lIHZvaWQgdmVyaWZ5 X2Jsa2FkZHIoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAorCQkJCQlibG9ja190IGJsa2FkZHIs IGludCB0eXBlKQoreworCWlmICghZjJmc19pc192YWxpZF9ibGthZGRyKHNiaSwgYmxrYWRkciwg dHlwZSkpIHsKKwkJZjJmc19tc2coc2JpLT5zYiwgS0VSTl9FUlIsCisJCQkiaW52YWxpZCBibGth ZGRyOiAldSwgdHlwZTogJWQsIHJ1biBmc2NrIHRvIGZpeC4iLAorCQkJYmxrYWRkciwgdHlwZSk7 CisJCWYyZnNfYnVnX29uKHNiaSwgMSk7CisJfQorfQorCitzdGF0aWMgaW5saW5lIGJvb2wgX19p c192YWxpZF9kYXRhX2Jsa2FkZHIoYmxvY2tfdCBibGthZGRyKQogewogCWlmIChibGthZGRyID09 IE5FV19BRERSIHx8IGJsa2FkZHIgPT0gTlVMTF9BRERSKQogCQlyZXR1cm4gZmFsc2U7CiAJcmV0 dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc192YWxpZF9kYXRhX2Jsa2FkZHIo c3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAorCQkJCQkJYmxvY2tfdCBibGthZGRyKQoreworCWlm ICghX19pc192YWxpZF9kYXRhX2Jsa2FkZHIoYmxrYWRkcikpCisJCXJldHVybiBmYWxzZTsKKwl2 ZXJpZnlfYmxrYWRkcihzYmksIGJsa2FkZHIsIERBVEFfR0VORVJJQyk7CisJcmV0dXJuIHRydWU7 Cit9CisKIC8qCiAgKiBmaWxlLmMKICAqLwpAQCAtMTgyNSw3ICsxODUwLDggQEAgdm9pZCBkZXN0 cm95X3NlZ21lbnRfbWFuYWdlcl9jYWNoZXModm9pZCk7CiBzdHJ1Y3QgcGFnZSAqZ3JhYl9tZXRh X3BhZ2Uoc3RydWN0IGYyZnNfc2JfaW5mbyAqLCBwZ29mZl90KTsKIHN0cnVjdCBwYWdlICpnZXRf bWV0YV9wYWdlKHN0cnVjdCBmMmZzX3NiX2luZm8gKiwgcGdvZmZfdCk7CiBzdHJ1Y3QgcGFnZSAq Z2V0X3RtcF9wYWdlKHN0cnVjdCBmMmZzX3NiX2luZm8gKiwgcGdvZmZfdCk7Ci1ib29sIGlzX3Zh bGlkX21ldGFfYmxrYWRkcihzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJsb2NrX3QgYmxrYWRk ciwgaW50IHR5cGUpOworYm9vbCBmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIoc3RydWN0IGYyZnNfc2Jf aW5mbyAqc2JpLAorCQkJCQlibG9ja190IGJsa2FkZHIsIGludCB0eXBlKTsKIGludCByYV9tZXRh X3BhZ2VzKHN0cnVjdCBmMmZzX3NiX2luZm8gKiwgYmxvY2tfdCwgaW50LCBpbnQsIGJvb2wpOwog dm9pZCByYV9tZXRhX3BhZ2VzX2NvbmQoc3RydWN0IGYyZnNfc2JfaW5mbyAqLCBwZ29mZl90KTsK IGxvbmcgc3luY19tZXRhX3BhZ2VzKHN0cnVjdCBmMmZzX3NiX2luZm8gKiwgZW51bSBwYWdlX3R5 cGUsIGxvbmcpOwpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9maWxlLmMgYi9mcy9mMmZzL2ZpbGUuYwpp bmRleCBkNGViYTEyZDRkMTcuLmIxNTNiMzdhZTAzOCAxMDA2NDQKLS0tIGEvZnMvZjJmcy9maWxl LmMKKysrIGIvZnMvZjJmcy9maWxlLmMKQEAgLTMwNSwxMyArMzA1LDEzIEBAIHN0YXRpYyBwZ29m Zl90IF9fZ2V0X2ZpcnN0X2RpcnR5X2luZGV4KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n LAogCXJldHVybiBwZ29mczsKIH0KIAotc3RhdGljIGJvb2wgX19mb3VuZF9vZmZzZXQoYmxvY2tf dCBibGthZGRyLCBwZ29mZl90IGRpcnR5LCBwZ29mZl90IHBnb2ZzLAotCQkJCQkJCWludCB3aGVu Y2UpCitzdGF0aWMgYm9vbCBfX2ZvdW5kX29mZnNldChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmks IGJsb2NrX3QgYmxrYWRkciwKKwkJCQlwZ29mZl90IGRpcnR5LCBwZ29mZl90IHBnb2ZzLCBpbnQg d2hlbmNlKQogewogCXN3aXRjaCAod2hlbmNlKSB7CiAJY2FzZSBTRUVLX0RBVEE6CiAJCWlmICgo YmxrYWRkciA9PSBORVdfQUREUiAmJiBkaXJ0eSA9PSBwZ29mcykgfHwKLQkJCWlzX3ZhbGlkX2Js a2FkZHIoYmxrYWRkcikpCisJCQlpc192YWxpZF9kYXRhX2Jsa2FkZHIoc2JpLCBibGthZGRyKSkK IAkJCXJldHVybiB0cnVlOwogCQlicmVhazsKIAljYXNlIFNFRUtfSE9MRToKQEAgLTM3NCw3ICsz NzQsOCBAQCBzdGF0aWMgbG9mZl90IGYyZnNfc2Vla19ibG9jayhzdHJ1Y3QgZmlsZSAqZmlsZSwg bG9mZl90IG9mZnNldCwgaW50IHdoZW5jZSkKIAkJCWJsb2NrX3QgYmxrYWRkcjsKIAkJCWJsa2Fk ZHIgPSBkYXRhYmxvY2tfYWRkcihkbi5ub2RlX3BhZ2UsIGRuLm9mc19pbl9ub2RlKTsKIAotCQkJ aWYgKF9fZm91bmRfb2Zmc2V0KGJsa2FkZHIsIGRpcnR5LCBwZ29mcywgd2hlbmNlKSkgeworCQkJ aWYgKF9fZm91bmRfb2Zmc2V0KEYyRlNfSV9TQihpbm9kZSksIGJsa2FkZHIsIGRpcnR5LAorCQkJ CQkJCXBnb2ZzLCB3aGVuY2UpKSB7CiAJCQkJZjJmc19wdXRfZG5vZGUoJmRuKTsKIAkJCQlnb3Rv IGZvdW5kOwogCQkJfQpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9pbm9kZS5jIGIvZnMvZjJmcy9pbm9k ZS5jCmluZGV4IGFhMGNlMDZkMTQzYS4uNzAyZTliNjM3ZmMwIDEwMDY0NAotLS0gYS9mcy9mMmZz L2lub2RlLmMKKysrIGIvZnMvZjJmcy9pbm9kZS5jCkBAIC01MCwxMSArNTAsMTIgQEAgc3RhdGlj IHZvaWQgX19nZXRfaW5vZGVfcmRldihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZjJmc19p bm9kZSAqcmkpCiAJfQogfQogCi1zdGF0aWMgYm9vbCBfX3dyaXR0ZW5fZmlyc3RfYmxvY2soc3Ry dWN0IGYyZnNfaW5vZGUgKnJpKQorc3RhdGljIGJvb2wgX193cml0dGVuX2ZpcnN0X2Jsb2NrKHN0 cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKKwkJCQkJc3RydWN0IGYyZnNfaW5vZGUgKnJpKQogewog CWJsb2NrX3QgYWRkciA9IGxlMzJfdG9fY3B1KHJpLT5pX2FkZHJbMF0pOwogCi0JaWYgKGlzX3Zh bGlkX2Jsa2FkZHIoYWRkcikpCisJaWYgKGlzX3ZhbGlkX2RhdGFfYmxrYWRkcihzYmksIGFkZHIp KQogCQlyZXR1cm4gdHJ1ZTsKIAlyZXR1cm4gZmFsc2U7CiB9CkBAIC0xNDksNyArMTUwLDcgQEAg c3RhdGljIGludCBkb19yZWFkX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiAJLyogZ2V0IHJk ZXYgYnkgdXNpbmcgaW5saW5lX2luZm8gKi8KIAlfX2dldF9pbm9kZV9yZGV2KGlub2RlLCByaSk7 CiAKLQlpZiAoX193cml0dGVuX2ZpcnN0X2Jsb2NrKHJpKSkKKwlpZiAoX193cml0dGVuX2ZpcnN0 X2Jsb2NrKHNiaSwgcmkpKQogCQlzZXRfaW5vZGVfZmxhZyhGMkZTX0koaW5vZGUpLCBGSV9GSVJT VF9CTE9DS19XUklUVEVOKTsKIAogCWYyZnNfcHV0X3BhZ2Uobm9kZV9wYWdlLCAxKTsKZGlmZiAt LWdpdCBhL2ZzL2YyZnMvbm9kZS5jIGIvZnMvZjJmcy9ub2RlLmMKaW5kZXggNzVmMGE3ZmM4OTFi Li41ODAxYzcwYzQ5NjQgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvbm9kZS5jCisrKyBiL2ZzL2YyZnMv bm9kZS5jCkBAIC0yOTYsNyArMjk2LDcgQEAgc3RhdGljIHZvaWQgc2V0X25vZGVfYWRkcihzdHJ1 Y3QgZjJmc19zYl9pbmZvICpzYmksIHN0cnVjdCBub2RlX2luZm8gKm5pLAogCQkJbmV3X2Jsa2Fk ZHIgPT0gTlVMTF9BRERSKTsKIAlmMmZzX2J1Z19vbihzYmksIG5hdF9nZXRfYmxrYWRkcihlKSA9 PSBORVdfQUREUiAmJgogCQkJbmV3X2Jsa2FkZHIgPT0gTkVXX0FERFIpOwotCWYyZnNfYnVnX29u KHNiaSwgaXNfdmFsaWRfYmxrYWRkcihuYXRfZ2V0X2Jsa2FkZHIoZSkpICYmCisJZjJmc19idWdf b24oc2JpLCBpc192YWxpZF9kYXRhX2Jsa2FkZHIoc2JpLCBuYXRfZ2V0X2Jsa2FkZHIoZSkpICYm CiAJCQluZXdfYmxrYWRkciA9PSBORVdfQUREUik7CiAKIAkvKiBpbmNyZW1lbnQgdmVyc2lvbiBu byBhcyBub2RlIGlzIHJlbW92ZWQgKi8KQEAgLTMxMSw3ICszMTEsNyBAQCBzdGF0aWMgdm9pZCBz ZXRfbm9kZV9hZGRyKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IG5vZGVfaW5mbyAq bmksCiAKIAkvKiBjaGFuZ2UgYWRkcmVzcyAqLwogCW5hdF9zZXRfYmxrYWRkcihlLCBuZXdfYmxr YWRkcik7Ci0JaWYgKCFpc192YWxpZF9ibGthZGRyKG5ld19ibGthZGRyKSkKKwlpZiAoIWlzX3Zh bGlkX2RhdGFfYmxrYWRkcihzYmksIG5ld19ibGthZGRyKSkKIAkJc2V0X25hdF9mbGFnKGUsIElT X0NIRUNLUE9JTlRFRCwgZmFsc2UpOwogCV9fc2V0X25hdF9jYWNoZV9kaXJ0eShubV9pLCBlKTsK IApkaWZmIC0tZ2l0IGEvZnMvZjJmcy9yZWNvdmVyeS5jIGIvZnMvZjJmcy9yZWNvdmVyeS5jCmlu ZGV4IGFlMGQ3ZDBlMGUyOC4uMjg3OGJlM2U0NDhmIDEwMDY0NAotLS0gYS9mcy9mMmZzL3JlY292 ZXJ5LmMKKysrIGIvZnMvZjJmcy9yZWNvdmVyeS5jCkBAIC0yMDgsNyArMjA4LDcgQEAgc3RhdGlj IGludCBmaW5kX2ZzeW5jX2Rub2RlcyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHN0cnVjdCBs aXN0X2hlYWQgKmhlYWQpCiAJd2hpbGUgKDEpIHsKIAkJc3RydWN0IGZzeW5jX2lub2RlX2VudHJ5 ICplbnRyeTsKIAotCQlpZiAoIWlzX3ZhbGlkX21ldGFfYmxrYWRkcihzYmksIGJsa2FkZHIsIE1F VEFfUE9SKSkKKwkJaWYgKCFmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIoc2JpLCBibGthZGRyLCBNRVRB X1BPUikpCiAJCQlyZXR1cm4gMDsKIAogCQlwYWdlID0gZ2V0X3RtcF9wYWdlKHNiaSwgYmxrYWRk cik7CkBAIC00NDMsNyArNDQzLDcgQEAgc3RhdGljIGludCBkb19yZWNvdmVyX2RhdGEoc3RydWN0 IGYyZnNfc2JfaW5mbyAqc2JpLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQl9CiAKIAkJLyogZGVz dCBpcyB2YWxpZCBibG9jaywgdHJ5IHRvIHJlY292ZXIgZnJvbSBzcmMgdG8gZGVzdCAqLwotCQlp ZiAoaXNfdmFsaWRfbWV0YV9ibGthZGRyKHNiaSwgZGVzdCwgTUVUQV9QT1IpKSB7CisJCWlmIChm MmZzX2lzX3ZhbGlkX2Jsa2FkZHIoc2JpLCBkZXN0LCBNRVRBX1BPUikpIHsKIAogCQkJaWYgKHNy YyA9PSBOVUxMX0FERFIpIHsKIAkJCQllcnIgPSByZXNlcnZlX25ld19ibG9jaygmZG4pOwpAQCAt NDk0LDcgKzQ5NCw3IEBAIHN0YXRpYyBpbnQgcmVjb3Zlcl9kYXRhKHN0cnVjdCBmMmZzX3NiX2lu Zm8gKnNiaSwgc3RydWN0IGxpc3RfaGVhZCAqaW5vZGVfbGlzdCwKIAl3aGlsZSAoMSkgewogCQlz dHJ1Y3QgZnN5bmNfaW5vZGVfZW50cnkgKmVudHJ5OwogCi0JCWlmICghaXNfdmFsaWRfbWV0YV9i bGthZGRyKHNiaSwgYmxrYWRkciwgTUVUQV9QT1IpKQorCQlpZiAoIWYyZnNfaXNfdmFsaWRfYmxr YWRkcihzYmksIGJsa2FkZHIsIE1FVEFfUE9SKSkKIAkJCWJyZWFrOwogCiAJCXJhX21ldGFfcGFn ZXNfY29uZChzYmksIGJsa2FkZHIpOwpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9zZWdtZW50LmMgYi9m cy9mMmZzL3NlZ21lbnQuYwppbmRleCBhMDk4NDlhMzkwNzQuLjY4MDJjZDc1NGVkYSAxMDA2NDQK LS0tIGEvZnMvZjJmcy9zZWdtZW50LmMKKysrIGIvZnMvZjJmcy9zZWdtZW50LmMKQEAgLTc1Miw3 ICs3NTIsNyBAQCBib29sIGlzX2NoZWNrcG9pbnRlZF9kYXRhKHN0cnVjdCBmMmZzX3NiX2luZm8g KnNiaSwgYmxvY2tfdCBibGthZGRyKQogCXN0cnVjdCBzZWdfZW50cnkgKnNlOwogCWJvb2wgaXNf Y3AgPSBmYWxzZTsKIAotCWlmICghaXNfdmFsaWRfYmxrYWRkcihibGthZGRyKSkKKwlpZiAoIWlz X3ZhbGlkX2RhdGFfYmxrYWRkcihzYmksIGJsa2FkZHIpKQogCQlyZXR1cm4gdHJ1ZTsKIAogCW11 dGV4X2xvY2soJnNpdF9pLT5zZW50cnlfbG9jayk7CkBAIC0xNDY2LDcgKzE0NjYsNyBAQCB2b2lk IGYyZnNfd2FpdF9vbl9lbmNyeXB0ZWRfcGFnZV93cml0ZWJhY2soc3RydWN0IGYyZnNfc2JfaW5m byAqc2JpLAogewogCXN0cnVjdCBwYWdlICpjcGFnZTsKIAotCWlmICghaXNfdmFsaWRfYmxrYWRk cihibGthZGRyKSkKKwlpZiAoIWlzX3ZhbGlkX2RhdGFfYmxrYWRkcihzYmksIGJsa2FkZHIpKQog CQlyZXR1cm47CiAKIAlmMmZzX2J1Z19vbihzYmksIGJsa2FkZHIgPT0gTlVMTF9BRERSKTsKZGlm ZiAtLWdpdCBhL2ZzL2YyZnMvc2VnbWVudC5oIGIvZnMvZjJmcy9zZWdtZW50LmgKaW5kZXggYzkz NmUxYTNmMDRmLi4yMDRhMzI1MWUxMjMgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvc2VnbWVudC5oCisr KyBiL2ZzL2YyZnMvc2VnbWVudC5oCkBAIC04MCw3ICs4MCw3IEBACiAJKEdFVF9TRUdPRkZfRlJP TV9TRUcwKHNiaSwgYmxrX2FkZHIpICYgKHNiaS0+YmxvY2tzX3Blcl9zZWcgLSAxKSkKIAogI2Rl ZmluZSBHRVRfU0VHTk8oc2JpLCBibGtfYWRkcikJCQkJCVwKLQkoKCFpc192YWxpZF9ibGthZGRy KGJsa19hZGRyKSkgPwkJCVwKKwkoKCFpc192YWxpZF9kYXRhX2Jsa2FkZHIoc2JpLCBibGtfYWRk cikpID8JCQlcCiAJTlVMTF9TRUdOTyA6IEdFVF9MMlJfU0VHTk8oRlJFRV9JKHNiaSksCQkJXAog CQlHRVRfU0VHTk9fRlJPTV9TRUcwKHNiaSwgYmxrX2FkZHIpKSkKICNkZWZpbmUgR0VUX1NFQ05P KHNiaSwgc2Vnbm8pCQkJCQlcCkBAIC01ODgsMTEgKzU4OCw5IEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCB2ZXJpZnlfYmxvY2tfYWRkcihzdHJ1Y3QgZjJmc19pb19pbmZvICpmaW8sIGJsb2NrX3QgYmxr X2FkZHIpCiAKIAlpZiAoUEFHRV9UWVBFX09GX0JJTyhmaW8tPnR5cGUpID09IE1FVEEgJiYKIAkJ CQkoIWlzX3JlYWRfaW8oZmlvLT5ydykgfHwgZmlvLT5pc19tZXRhKSkKLQkJQlVHX09OKGJsa19h ZGRyIDwgU0VHMF9CTEtBRERSKHNiaSkgfHwKLQkJCQlibGtfYWRkciA+PSBNQUlOX0JMS0FERFIo c2JpKSk7CisJCXZlcmlmeV9ibGthZGRyKHNiaSwgYmxrX2FkZHIsIE1FVEFfR0VORVJJQyk7CiAJ ZWxzZQotCQlCVUdfT04oYmxrX2FkZHIgPCBNQUlOX0JMS0FERFIoc2JpKSB8fAotCQkJCWJsa19h ZGRyID49IE1BWF9CTEtBRERSKHNiaSkpOworCQl2ZXJpZnlfYmxrYWRkcihzYmksIGJsa19hZGRy LCBEQVRBX0dFTkVSSUMpOwogfQogCiAvKgoKRnJvbSA4NDQzNDY0OWNjMTNlODlhZWU5MjdjZTky NDI4N2FiMTVmNmM0MzM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaGFvIFl1IDx5 dWNoYW8wQGh1YXdlaS5jb20+CkRhdGU6IFNhdCwgMjMgSnVuIDIwMTggMDA6MTI6MzYgKzA4MDAK U3ViamVjdDogW1BBVENIIDI2LzM2XSBmMmZzOiBmaXggdG8gZG8gc2FuaXR5IGNoZWNrIHdpdGgg c2Vjc19wZXJfem9uZQoKY29tbWl0IDQyYmY1NDZjMWZlM2YzNjU0YmRmOTE0ZTk3N2FjYmMyYjgw YTViZTUgdXBzdHJlYW0uCgpBcyBXZW4gWHUgcmVwb3J0ZWQgaW4gYmVsb3cgbGluazoKCmh0dHBz Oi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwMTgzCgotIE92ZXJ2aWV3 CkRpdmlkZSB6ZXJvIGluIHJlc2V0X2N1cnNlZygpIHdoZW4gbW91bnRpbmcgYSBjcmFmdGVkIGYy ZnMgaW1hZ2UKCi0gUmVwcm9kdWNlCgotIEtlcm5lbCBtZXNzYWdlClsgIDU4OC4yODE1MTBdIGRp dmlkZSBlcnJvcjogMDAwMCBbIzFdIFNNUCBLQVNBTiBQVEkKWyAgNTg4LjI4MjcwMV0gQ1BVOiAw IFBJRDogMTI5MyBDb21tOiBtb3VudCBOb3QgdGFpbnRlZCA0LjE4LjAtcmMxKyAjNApbICA1ODgu Mjg0MDAwXSBIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAx OTk2KSwgQklPUyBVYnVudHUtMS44LjItMXVidW50dTEgMDQvMDEvMjAxNApbICA1ODguMjg2MTc4 XSBSSVA6IDAwMTA6cmVzZXRfY3Vyc2VnKzB4OTQvMHgxYTAKWyAgNTg4LjI5ODE2Nl0gUlNQOiAw MDE4OmZmZmY4ODAxZTg4ZDc5NDAgRUZMQUdTOiAwMDAxMDI0NgpbICA1ODguMjk5MzYwXSBSQVg6 IDAwMDAwMDAwMDAwMDAwMTQgUkJYOiBmZmZmODgwMWUxZDQ2ZDAwIFJDWDogZmZmZmZmZmZiODhi ZjYwYgpbICA1ODguMzAwODA5XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiBkZmZmZmMwMDAw MDAwMDAwIFJESTogZmZmZjg4MDFlMWQ0NmQ2NApbICA1ODguMzA1MjcyXSBSMTM6IDAwMDAwMDAw MDAwMDAwMDAgUjE0OiAwMDAwMDAwMDAwMDAwMDE0IFIxNTogMDAwMDAwMDAwMDAwMDAwMApbICA1 ODguMzA2ODIyXSBGUzogIDAwMDA3ZmFkODUwMDg4NDAoMDAwMCkgR1M6ZmZmZjg4MDFmNmUwMDAw MCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwClsgIDU4OC4zMDg0NTZdIENTOiAgMDAxMCBE UzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKWyAgNTg4LjMwOTYyM10gQ1Iy OiAwMDAwMDAwMDAxNzA1MDc4IENSMzogMDAwMDAwMDFmMzBmODAwMCBDUjQ6IDAwMDAwMDAwMDAw MDA2ZjAKWyAgNTg4LjMxMTA4NV0gQ2FsbCBUcmFjZToKWyAgNTg4LjMxMTYzN10gIGYyZnNfYnVp bGRfc2VnbWVudF9tYW5hZ2VyKzB4MTAzZi8weDM0MTAKWyAgNTg4LjMxNjEzNl0gID8gZjJmc19j b21taXRfc3VwZXIrMHgxYjAvMHgxYjAKWyAgNTg4LjMxNzAzMV0gID8gc2V0X2Jsb2Nrc2l6ZSsw eDkwLzB4MTQwClsgIDU4OC4zMTk0NzNdICBmMmZzX21vdW50KzB4MTUvMHgyMApbICA1ODguMzIw MTY2XSAgbW91bnRfZnMrMHg2MC8weDFhMApbICA1ODguMzIwODQ3XSAgPyBhbGxvY192ZnNtbnQr MHgzMDkvMHgzNjAKWyAgNTg4LjMyMTY0N10gIHZmc19rZXJuX21vdW50KzB4NmIvMHgxYTAKWyAg NTg4LjMyMjQzMl0gIGRvX21vdW50KzB4MzRhLzB4MThjMApbICA1ODguMzIzMTc1XSAgPyBzdHJu ZHVwX3VzZXIrMHg0Ni8weDcwClsgIDU4OC4zMjM5MzddICA/IGNvcHlfbW91bnRfc3RyaW5nKzB4 MjAvMHgyMApbICA1ODguMzI0NzkzXSAgPyBtZW1jZ19rbWVtX3B1dF9jYWNoZSsweDFiLzB4YTAK WyAgNTg4LjMyNTcwMl0gID8ga2FzYW5fY2hlY2tfd3JpdGUrMHgxNC8weDIwClsgIDU4OC4zMjY1 NjJdICA/IF9jb3B5X2Zyb21fdXNlcisweDZhLzB4OTAKWyAgNTg4LjMyNzM3NV0gID8gbWVtZHVw X3VzZXIrMHg0Mi8weDYwClsgIDU4OC4zMjgxMThdICBrc3lzX21vdW50KzB4ODMvMHhkMApbICA1 ODguMzI4ODA4XSAgX194NjRfc3lzX21vdW50KzB4NjcvMHg4MApbICA1ODguMzI5NjA3XSAgZG9f c3lzY2FsbF82NCsweDc4LzB4MTcwClsgIDU4OC4zMzA0MDBdICBlbnRyeV9TWVNDQUxMXzY0X2Fm dGVyX2h3ZnJhbWUrMHg0NC8weGE5ClsgIDU4OC4zMzE0NjFdIFJJUDogMDAzMzoweDdmYWQ4NDhl OGI5YQpbICA1ODguMzM2MDIyXSBSU1A6IDAwMmI6MDAwMDdmZmQ3YzViNmJlOCBFRkxBR1M6IDAw MDAwMjA2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMGE1ClsgIDU4OC4zMzc1NDddIFJBWDogZmZm ZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDE2ZjgwMzAgUkNYOiAwMDAwN2ZhZDg0OGU4Yjlh ClsgIDU4OC4zMzg5OTldIFJEWDogMDAwMDAwMDAwMTZmODIxMCBSU0k6IDAwMDAwMDAwMDE2Zjlm MzAgUkRJOiAwMDAwMDAwMDAxNzAwZWMwClsgIDU4OC4zNDA0NDJdIFJCUDogMDAwMDAwMDAwMDAw MDAwMCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDEzClsgIDU4OC4z NDE4ODddIFIxMDogMDAwMDAwMDBjMGVkMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAyMDYgUjEyOiAw MDAwMDAwMDAxNzAwZWMwClsgIDU4OC4zNDMzNDFdIFIxMzogMDAwMDAwMDAwMTZmODIxMCBSMTQ6 IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiAwMDAwMDAwMDAwMDAwMDAzClsgIDU4OC4zNTQ4OTFdIC0t LVsgZW5kIHRyYWNlIDRjZTAyZjI1ZmY3ZDNkZjUgXS0tLQpbICA1ODguMzU1ODYyXSBSSVA6IDAw MTA6cmVzZXRfY3Vyc2VnKzB4OTQvMHgxYTAKWyAgNTg4LjM2MDc0Ml0gUlNQOiAwMDE4OmZmZmY4 ODAxZTg4ZDc5NDAgRUZMQUdTOiAwMDAxMDI0NgpbICA1ODguMzYxODEyXSBSQVg6IDAwMDAwMDAw MDAwMDAwMTQgUkJYOiBmZmZmODgwMWUxZDQ2ZDAwIFJDWDogZmZmZmZmZmZiODhiZjYwYgpbICA1 ODguMzYzNDg1XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiBkZmZmZmMwMDAwMDAwMDAwIFJE STogZmZmZjg4MDFlMWQ0NmQ2NApbICA1ODguMzY1MjEzXSBSQlA6IGZmZmY4ODAxZTg4ZDc5Njgg UjA4OiBmZmZmZWQwMDNjMzIyNjZmIFIwOTogZmZmZmVkMDAzYzMyMjY2ZgpbICA1ODguMzY2NjYx XSBSMTA6IDAwMDAwMDAwMDAwMDAwMDEgUjExOiBmZmZmZWQwMDNjMzIyNjZlIFIxMjogZmZmZjg4 MDFmMDMzNzcwMApbICA1ODguMzY4MTEwXSBSMTM6IDAwMDAwMDAwMDAwMDAwMDAgUjE0OiAwMDAw MDAwMDAwMDAwMDE0IFIxNTogMDAwMDAwMDAwMDAwMDAwMApbICA1ODguMzcwMDU3XSBGUzogIDAw MDA3ZmFkODUwMDg4NDAoMDAwMCkgR1M6ZmZmZjg4MDFmNmUwMDAwMCgwMDAwKSBrbmxHUzowMDAw MDAwMDAwMDAwMDAwClsgIDU4OC4zNzIwOTldIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBD UjA6IDAwMDAwMDAwODAwNTAwMzMKWyAgNTg4LjM3MzI5MV0gQ1IyOiAwMDAwMDAwMDAxNzA1MDc4 IENSMzogMDAwMDAwMDFmMzBmODAwMCBDUjQ6IDAwMDAwMDAwMDAwMDA2ZjAKCi0gTG9jYXRpb24K aHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20vbGludXgvbGF0ZXN0L3NvdXJjZS9mcy9mMmZzL3Nl Z21lbnQuYyNMMjE0NwogICAgICAgIGN1cnNlZy0+em9uZSA9IEdFVF9aT05FX0ZST01fU0VHKHNi aSwgY3Vyc2VnLT5zZWdubyk7CgpJZiBzZWNzX3Blcl96b25lIGlzIGNvcnJ1cHRlZCBkdWUgdG8g ZnV6emluZyB0ZXN0LCBpdCB3aWxsIGNhdXNlIGRpdmlkZQp6ZXJvIG9wZXJhdGlvbiB3aGVuIHVz aW5nIEdFVF9aT05FX0ZST01fU0VHIG1hY3JvLCBzbyB3ZSBzaG91bGQgZG8gbW9yZQpzYW5pdHkg Y2hlY2sgd2l0aCBzZWNzX3Blcl96b25lIGR1cmluZyBtb3VudCB0byBhdm9pZCB0aGlzIGlzc3Vl LgoKU2lnbmVkLW9mZi1ieTogQ2hhbyBZdSA8eXVjaGFvMEBodWF3ZWkuY29tPgpTaWduZWQtb2Zm LWJ5OiBKYWVnZXVrIEtpbSA8amFlZ2V1a0BrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBCZW4g SHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51az4KLS0tCiBmcy9mMmZzL3N1 cGVyLmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9zdXBlci5jIGIvZnMvZjJmcy9zdXBlci5jCmlu ZGV4IDAyOTNjYzZiYjU4ZS4uYjhlMTYwYjE3NTA1IDEwMDY0NAotLS0gYS9mcy9mMmZzL3N1cGVy LmMKKysrIGIvZnMvZjJmcy9zdXBlci5jCkBAIC0xMDg4LDkgKzEwODgsOSBAQCBzdGF0aWMgaW50 IHNhbml0eV9jaGVja19yYXdfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKIAkJcmV0dXJu IDE7CiAJfQogCi0JaWYgKHNlY3NfcGVyX3pvbmUgPiB0b3RhbF9zZWN0aW9ucykgeworCWlmIChz ZWNzX3Blcl96b25lID4gdG90YWxfc2VjdGlvbnMgfHwgIXNlY3NfcGVyX3pvbmUpIHsKIAkJZjJm c19tc2coc2IsIEtFUk5fSU5GTywKLQkJCSJXcm9uZyBzZWNzX3Blcl96b25lICgldSA+ICV1KSIs CisJCQkiV3Jvbmcgc2Vjc19wZXJfem9uZSAvIHRvdGFsX3NlY3Rpb25zICgldSwgJXUpIiwKIAkJ CXNlY3NfcGVyX3pvbmUsIHRvdGFsX3NlY3Rpb25zKTsKIAkJcmV0dXJuIDE7CiAJfQoKRnJvbSAw OTE4OTUzMTRhZWNjYzAyOWQ4MTJmODU0OTQwNzRkMGQ2MTA3OWI3IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBDaGFvIFl1IDx5dWNoYW8wQGh1YXdlaS5jb20+CkRhdGU6IFdlZCwgMjcg SnVuIDIwMTggMTg6MDU6NTQgKzA4MDAKU3ViamVjdDogW1BBVENIIDI3LzM2XSBmMmZzOiBmaXgg dG8gZG8gc2FuaXR5IGNoZWNrIHdpdGggdXNlcl9ibG9ja19jb3VudAoKY29tbWl0IDlkYzk1NmIy Yzg1MjNhZWQzOWQxZTY1MDg0MzhiZTlmZWEyOGM4ZmMgdXBzdHJlYW0uCgpUaGlzIHBhdGNoIGZp eHMgdG8gZG8gc2FuaXR5IGNoZWNrIHdpdGggdXNlcl9ibG9ja19jb3VudC4KCi0gT3ZlcnZpZXcK RGl2aWRlIHplcm8gaW4gdXRpbGl6YXRpb24gd2hlbiBtb3VudCgpIGEgY29ycnVwdGVkIGYyZnMg aW1hZ2UKCi0gUmVwcm9kdWNlICg0LjE4IHVwc3RyZWFtIGtlcm5lbCkKCi0gS2VybmVsIG1lc3Nh Z2UKWyAgNTY0LjA5OTUwM10gRjJGUy1mcyAobG9vcDApOiBpbnZhbGlkIGNyYyB2YWx1ZQpbICA1 NjQuMTAxOTkxXSBkaXZpZGUgZXJyb3I6IDAwMDAgWyMxXSBTTVAgS0FTQU4gUFRJClsgIDU2NC4x MDMxMDNdIENQVTogMSBQSUQ6IDEyOTggQ29tbTogZjJmc19kaXNjYXJkLTc6IE5vdCB0YWludGVk IDQuMTguMC1yYzErICM0ClsgIDU2NC4xMDQ1ODRdIEhhcmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRh cmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIFVidW50dS0xLjguMi0xdWJ1bnR1MSAw NC8wMS8yMDE0ClsgIDU2NC4xMDY2MjRdIFJJUDogMDAxMDppc3N1ZV9kaXNjYXJkX3RocmVhZCsw eDI0OC8weDVjMApbICA1NjQuMTA3NjkyXSBDb2RlOiBmZiBmZiA0OCA4YiBiZCBlOCBmZSBmZiBm ZiA0MSA4YiA5ZCA0YyAwNCAwMCAwMCBlOCBjZCBiOCBhZCBmZiA0MSA4YiA4NSA1MCAwNCAwMCAw MCAzMSBkMiA0OCA4ZCAwNCA4MCA0OCA4ZCAwNCA4MCA0OCBjMSBlMCAwMiA8NDg+IGY3IGYzIDgz IGY4IDUwIDdlIDE2IDQxIGM3IDg2IDdjIGZmIGZmIGZmIDAxIDAwIDAwIDAwIDQxIGM3IDg2Clsg IDU2NC4xMTE2ODZdIFJTUDogMDAxODpmZmZmODgwMWYzMTE3ZGMwIEVGTEFHUzogMDAwMTAyMDYK WyAgNTY0LjExMjc3NV0gUkFYOiAwMDAwMDAwMDAwMDAwMzg0IFJCWDogMDAwMDAwMDAwMDAwMDAw MCBSQ1g6IGZmZmZmZmZmYjg4YzFlMDMKWyAgNTY0LjExNDI1MF0gUkRYOiAwMDAwMDAwMDAwMDAw MDAwIFJTSTogZGZmZmZjMDAwMDAwMDAwMCBSREk6IGZmZmY4ODAxZTNhYTQ4NTAKWyAgNTY0LjEx NTcwNl0gUkJQOiBmZmZmODgwMWYzMTE3ZjAwIFIwODogMWZmZmZmZmZmNzUxYTFkMCBSMDk6IGZm ZmZmYmZmZjc1MWExZDAKWyAgNTY0LjExNzE3N10gUjEwOiAwMDAwMDAwMDAwMDAwMDAxIFIxMTog ZmZmZmZiZmZmNzUxYTFkMCBSMTI6IDAwMDAwMDAwZmZmZmZmZmMKWyAgNTY0LjExODYzNF0gUjEz OiBmZmZmODgwMWUzYWE0NDAwIFIxNDogZmZmZjg4MDFmMzExN2VkOCBSMTU6IGZmZmY4ODAxZTIw NTAwMDAKWyAgNTY0LjEyMDA5NF0gRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmY4 ODAxZjZmMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICA1NjQuMTIxNzQ4XSBD UzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgIDU2NC4x MjI5MjNdIENSMjogMDAwMDAwMDAwMjAyYjA3OCBDUjM6IDAwMDAwMDAxZjExYWMwMDAgQ1I0OiAw MDAwMDAwMDAwMDAwNmUwClsgIDU2NC4xMjQzODNdIENhbGwgVHJhY2U6ClsgIDU2NC4xMjQ5MjRd ICA/IF9faXNzdWVfZGlzY2FyZF9jbWQrMHg0ODAvMHg0ODAKWyAgNTY0LjEyNTg4Ml0gID8gX19z Y2hlZF90ZXh0X3N0YXJ0KzB4OC8weDgKWyAgNTY0LjEyNjc1Nl0gID8gX19rdGhyZWFkX3Bhcmtt ZSsweGNiLzB4MTAwClsgIDU2NC4xMjc2MjBdICA/IGt0aHJlYWRfYmxrY2crMHg3MC8weDcwClsg IDU2NC4xMjg0MTJdICBrdGhyZWFkKzB4MTgwLzB4MWQwClsgIDU2NC4xMjkxMDVdICA/IF9faXNz dWVfZGlzY2FyZF9jbWQrMHg0ODAvMHg0ODAKWyAgNTY0LjEzMDAyOV0gID8ga3RocmVhZF9hc3Nv Y2lhdGVfYmxrY2crMHgxNTAvMHgxNTAKWyAgNTY0LjEzMTAzM10gIHJldF9mcm9tX2ZvcmsrMHgz NS8weDQwClsgIDU2NC4xMzE3OTRdIE1vZHVsZXMgbGlua2VkIGluOiBzbmRfaGRhX2NvZGVjX2dl bmVyaWMgc25kX2hkYV9pbnRlbCBzbmRfaGRhX2NvZGVjIHNuZF9od2RlcCBzbmRfaGRhX2NvcmUg c25kX3BjbSBzbmRfdGltZXIgc25kIG1hY19oaWQgaTJjX3BpaXg0IHNvdW5kY29yZSBpYl9pc2Vy IHJkbWFfY20gaXdfY20gaWJfY20gaWJfY29yZSBpc2NzaV90Y3AgbGliaXNjc2lfdGNwIGxpYmlz Y3NpIHNjc2lfdHJhbnNwb3J0X2lzY3NpIHJhaWQxMCByYWlkNDU2IGFzeW5jX3JhaWQ2X3JlY292 IGFzeW5jX21lbWNweSBhc3luY19wcSBhc3luY194b3IgYXN5bmNfdHggcmFpZDEgcmFpZDAgbXVs dGlwYXRoIGxpbmVhciA4MTM5dG9vIGNyY3QxMGRpZl9wY2xtdWwgY3JjMzJfcGNsbXVsIHF4bCBk cm1fa21zX2hlbHBlciBzeXNjb3B5YXJlYSBhZXNuaV9pbnRlbCBzeXNmaWxscmVjdCBzeXNpbWdi bHQgZmJfc3lzX2ZvcHMgdHRtIGRybSBhZXNfeDg2XzY0IGNyeXB0b19zaW1kIGNyeXB0ZCA4MTM5 Y3AgZ2x1ZV9oZWxwZXIgbWlpIHBhdGFfYWNwaSBmbG9wcHkKWyAgNTY0LjE0MTc5OF0gLS0tWyBl bmQgdHJhY2UgNGNlMDJmMjVmZjdkM2RmNSBdLS0tClsgIDU2NC4xNDI3NzNdIFJJUDogMDAxMDpp c3N1ZV9kaXNjYXJkX3RocmVhZCsweDI0OC8weDVjMApbICA1NjQuMTQzODg1XSBDb2RlOiBmZiBm ZiA0OCA4YiBiZCBlOCBmZSBmZiBmZiA0MSA4YiA5ZCA0YyAwNCAwMCAwMCBlOCBjZCBiOCBhZCBm ZiA0MSA4YiA4NSA1MCAwNCAwMCAwMCAzMSBkMiA0OCA4ZCAwNCA4MCA0OCA4ZCAwNCA4MCA0OCBj MSBlMCAwMiA8NDg+IGY3IGYzIDgzIGY4IDUwIDdlIDE2IDQxIGM3IDg2IDdjIGZmIGZmIGZmIDAx IDAwIDAwIDAwIDQxIGM3IDg2ClsgIDU2NC4xNDc3NzZdIFJTUDogMDAxODpmZmZmODgwMWYzMTE3 ZGMwIEVGTEFHUzogMDAwMTAyMDYKWyAgNTY0LjE0ODg1Nl0gUkFYOiAwMDAwMDAwMDAwMDAwMzg0 IFJCWDogMDAwMDAwMDAwMDAwMDAwMCBSQ1g6IGZmZmZmZmZmYjg4YzFlMDMKWyAgNTY0LjE1MDQy NF0gUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogZGZmZmZjMDAwMDAwMDAwMCBSREk6IGZmZmY4 ODAxZTNhYTQ4NTAKWyAgNTY0LjE1MTkwNl0gUkJQOiBmZmZmODgwMWYzMTE3ZjAwIFIwODogMWZm ZmZmZmZmNzUxYTFkMCBSMDk6IGZmZmZmYmZmZjc1MWExZDAKWyAgNTY0LjE1MzQ2M10gUjEwOiAw MDAwMDAwMDAwMDAwMDAxIFIxMTogZmZmZmZiZmZmNzUxYTFkMCBSMTI6IDAwMDAwMDAwZmZmZmZm ZmMKWyAgNTY0LjE1NDkxNV0gUjEzOiBmZmZmODgwMWUzYWE0NDAwIFIxNDogZmZmZjg4MDFmMzEx N2VkOCBSMTU6IGZmZmY4ODAxZTIwNTAwMDAKWyAgNTY0LjE1NjQwNV0gRlM6ICAwMDAwMDAwMDAw MDAwMDAwKDAwMDApIEdTOmZmZmY4ODAxZjZmMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAw MDAwMApbICA1NjQuMTU4MDcwXSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAw MDAwMDgwMDUwMDMzClsgIDU2NC4xNTkyNzldIENSMjogMDAwMDAwMDAwMjAyYjA3OCBDUjM6IDAw MDAwMDAxZjExYWMwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwNmUwClsgIDU2NC4xNjEwNDNdID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQpbICA1NjQuMTYyNTg3XSBCVUc6IEtBU0FOOiBzdGFjay1vdXQtb2YtYm91bmRzIGluIGZy b21fa3VpZF9tdW5nZWQrMHgxZC8weDUwClsgIDU2NC4xNjM5OTRdIFJlYWQgb2Ygc2l6ZSA0IGF0 IGFkZHIgZmZmZjg4MDFmMzExN2M4NCBieSB0YXNrIGYyZnNfZGlzY2FyZC03Oi8xMjk4CgpbICA1 NjQuMTY1ODUyXSBDUFU6IDEgUElEOiAxMjk4IENvbW06IGYyZnNfZGlzY2FyZC03OiBUYWludGVk OiBHICAgICAgRCAgICAgICAgICAgNC4xOC4wLXJjMSsgIzQKWyAgNTY0LjE2NzU5M10gSGFyZHdh cmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgVWJ1 bnR1LTEuOC4yLTF1YnVudHUxIDA0LzAxLzIwMTQKWyAgNTY0LjE2OTUyMl0gQ2FsbCBUcmFjZToK WyAgNTY0LjE3MDA1N10gIGR1bXBfc3RhY2srMHg3Yi8weGI1ClsgIDU2NC4xNzA3NzhdICBwcmlu dF9hZGRyZXNzX2Rlc2NyaXB0aW9uKzB4NzAvMHgyOTAKWyAgNTY0LjE3MTc2NV0gIGthc2FuX3Jl cG9ydCsweDI5MS8weDM5MApbICA1NjQuMTcyNTQwXSAgPyBmcm9tX2t1aWRfbXVuZ2VkKzB4MWQv MHg1MApbICA1NjQuMTczNDA4XSAgX19hc2FuX2xvYWQ0KzB4NzgvMHg4MApbICA1NjQuMTc0MTQ4 XSAgZnJvbV9rdWlkX211bmdlZCsweDFkLzB4NTAKWyAgNTY0LjE3NDk2Ml0gIGRvX25vdGlmeV9w YXJlbnQrMHgxZjUvMHg0ZjAKWyAgNTY0LjE3NTgwOF0gID8gc2VuZF9zaWdxdWV1ZSsweDM5MC8w eDM5MApbICA1NjQuMTc2NjM5XSAgPyBjc3Nfc2V0X21vdmVfdGFzaysweDE1Mi8weDM0MApbICA1 NjQuMTg0MTk3XSAgZG9fZXhpdCsweDEyOTAvMHgxMzkwClsgIDU2NC4xODQ5NTBdICA/IF9faXNz dWVfZGlzY2FyZF9jbWQrMHg0ODAvMHg0ODAKWyAgNTY0LjE4NTg4NF0gID8gbW1fdXBkYXRlX25l eHRfb3duZXIrMHgzODAvMHgzODAKWyAgNTY0LjE4NjgyOV0gID8gX19zY2hlZF90ZXh0X3N0YXJ0 KzB4OC8weDgKWyAgNTY0LjE4NzY3Ml0gID8gX19rdGhyZWFkX3BhcmttZSsweGNiLzB4MTAwClsg IDU2NC4xODg1MjhdICA/IGt0aHJlYWRfYmxrY2crMHg3MC8weDcwClsgIDU2NC4xODkzMzNdICA/ IGt0aHJlYWQrMHgxODAvMHgxZDAKWyAgNTY0LjE5MDA1Ml0gID8gX19pc3N1ZV9kaXNjYXJkX2Nt ZCsweDQ4MC8weDQ4MApbICA1NjQuMTkwOTgzXSAgcmV3aW5kX3N0YWNrX2RvX2V4aXQrMHgxNy8w eDIwCgpbICA1NjQuMTkyMTkwXSBUaGUgYnVnZ3kgYWRkcmVzcyBiZWxvbmdzIHRvIHRoZSBwYWdl OgpbICA1NjQuMTkzMjEzXSBwYWdlOmZmZmZlYTAwMDdjYzQ1YzAgY291bnQ6MCBtYXBjb3VudDow IG1hcHBpbmc6MDAwMDAwMDAwMDAwMDAwMCBpbmRleDoweDAKWyAgNTY0LjE5NDg1Nl0gZmxhZ3M6 IDB4MmZmZmYwMDAwMDAwMDAwKCkKWyAgNTY0LjE5NTY0NF0gcmF3OiAwMmZmZmYwMDAwMDAwMDAw IDAwMDAwMDAwMDAwMDAwMDAgZGVhZDAwMDAwMDAwMDIwMCAwMDAwMDAwMDAwMDAwMDAwClsgIDU2 NC4xOTcyNDddIHJhdzogMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAw ZmZmZmZmZmYgMDAwMDAwMDAwMDAwMDAwMApbICA1NjQuMTk4ODI2XSBwYWdlIGR1bXBlZCBiZWNh dXNlOiBrYXNhbjogYmFkIGFjY2VzcyBkZXRlY3RlZAoKWyAgNTY0LjIwMDI5OV0gTWVtb3J5IHN0 YXRlIGFyb3VuZCB0aGUgYnVnZ3kgYWRkcmVzczoKWyAgNTY0LjIwMTMwNl0gIGZmZmY4ODAxZjMx MTdiODA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwClsg IDU2NC4yMDI3NzldICBmZmZmODgwMWYzMTE3YzAwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCBmMyBmMyBmMyBmMyBmMwpbICA1NjQuMjA0MjUyXSA+ZmZmZjg4MDFmMzExN2M4MDog ZjMgZjMgZjMgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgZjEgZjEgZjEgZjEKWyAgNTY0LjIw NTc0Ml0gICAgICAgICAgICAgICAgICAgIF4KWyAgNTY0LjIwNjQyNF0gIGZmZmY4ODAxZjMxMTdk MDA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwClsgIDU2 NC4yMDc5MDhdICBmZmZmODgwMWYzMTE3ZDgwOiBmMyBmMyBmMyBmMyBmMyBmMyBmMyBmMyAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMApbICA1NjQuMjA5Mzg5XSA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KWyAgNTY0LjIzMTc5 NV0gRjJGUy1mcyAobG9vcDApOiBNb3VudGVkIHdpdGggY2hlY2twb2ludCB2ZXJzaW9uID0gMgoK LSBMb2NhdGlvbgpodHRwczovL2VsaXhpci5ib290bGluLmNvbS9saW51eC92NC4xOC1yYzEvc291 cmNlL2ZzL2YyZnMvc2VnbWVudC5oI0w1ODYKCXJldHVybiBkaXZfdTY0KCh1NjQpdmFsaWRfdXNl cl9ibG9ja3Moc2JpKSAqIDEwMCwKCQkJCQlzYmktPnVzZXJfYmxvY2tfY291bnQpOwpNaXNzaW5n IGNoZWNrcyBvbiBzYmktPnVzZXJfYmxvY2tfY291bnQuCgpSZXBvcnRlZC1ieTogV2VuIFh1IDx3 ZW4ueHVAZ2F0ZWNoLmVkdT4KU2lnbmVkLW9mZi1ieTogQ2hhbyBZdSA8eXVjaGFvMEBodWF3ZWku Y29tPgpTaWduZWQtb2ZmLWJ5OiBKYWVnZXVrIEtpbSA8amFlZ2V1a0BrZXJuZWwub3JnPgpTaWdu ZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51az4K LS0tCiBmcy9mMmZzL3N1cGVyLmMgfCAxMyArKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwg MTIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvc3Vw ZXIuYyBiL2ZzL2YyZnMvc3VwZXIuYwppbmRleCBiOGUxNjBiMTc1MDUuLjYxMjIyYTU4NmM0NiAx MDA2NDQKLS0tIGEvZnMvZjJmcy9zdXBlci5jCisrKyBiL2ZzL2YyZnMvc3VwZXIuYwpAQCAtMTE0 MCw2ICsxMTQwLDggQEAgaW50IHNhbml0eV9jaGVja19ja3B0KHN0cnVjdCBmMmZzX3NiX2luZm8g KnNiaSkKIAl1bnNpZ25lZCBpbnQgc2l0X3NlZ3MsIG5hdF9zZWdzOwogCXVuc2lnbmVkIGludCBz aXRfYml0bWFwX3NpemUsIG5hdF9iaXRtYXBfc2l6ZTsKIAl1bnNpZ25lZCBpbnQgbG9nX2Jsb2Nr c19wZXJfc2VnOworCXVuc2lnbmVkIGludCBzZWdtZW50X2NvdW50X21haW47CisJYmxvY2tfdCB1 c2VyX2Jsb2NrX2NvdW50OwogCWludCBpOwogCiAJdG90YWwgPSBsZTMyX3RvX2NwdShyYXdfc3Vw ZXItPnNlZ21lbnRfY291bnQpOwpAQCAtMTE2NCw2ICsxMTY2LDE2IEBAIGludCBzYW5pdHlfY2hl Y2tfY2twdChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCiAJCXJldHVybiAxOwogCX0KIAorCXVz ZXJfYmxvY2tfY291bnQgPSBsZTY0X3RvX2NwdShja3B0LT51c2VyX2Jsb2NrX2NvdW50KTsKKwlz ZWdtZW50X2NvdW50X21haW4gPSBsZTMyX3RvX2NwdShyYXdfc3VwZXItPnNlZ21lbnRfY291bnRf bWFpbik7CisJbG9nX2Jsb2Nrc19wZXJfc2VnID0gbGUzMl90b19jcHUocmF3X3N1cGVyLT5sb2df YmxvY2tzX3Blcl9zZWcpOworCWlmICghdXNlcl9ibG9ja19jb3VudCB8fCB1c2VyX2Jsb2NrX2Nv dW50ID49CisJCQlzZWdtZW50X2NvdW50X21haW4gPDwgbG9nX2Jsb2Nrc19wZXJfc2VnKSB7CisJ CWYyZnNfbXNnKHNiaS0+c2IsIEtFUk5fRVJSLAorCQkJIldyb25nIHVzZXJfYmxvY2tfY291bnQ6 ICV1IiwgdXNlcl9ibG9ja19jb3VudCk7CisJCXJldHVybiAxOworCX0KKwogCW1haW5fc2VncyA9 IGxlMzJfdG9fY3B1KHJhd19zdXBlci0+c2VnbWVudF9jb3VudF9tYWluKTsKIAlibG9ja3NfcGVy X3NlZyA9IHNiaS0+YmxvY2tzX3Blcl9zZWc7CiAKQEAgLTExODAsNyArMTE5Miw2IEBAIGludCBz YW5pdHlfY2hlY2tfY2twdChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCiAKIAlzaXRfYml0bWFw X3NpemUgPSBsZTMyX3RvX2NwdShja3B0LT5zaXRfdmVyX2JpdG1hcF9ieXRlc2l6ZSk7CiAJbmF0 X2JpdG1hcF9zaXplID0gbGUzMl90b19jcHUoY2twdC0+bmF0X3Zlcl9iaXRtYXBfYnl0ZXNpemUp OwotCWxvZ19ibG9ja3NfcGVyX3NlZyA9IGxlMzJfdG9fY3B1KHJhd19zdXBlci0+bG9nX2Jsb2Nr c19wZXJfc2VnKTsKIAogCWlmIChzaXRfYml0bWFwX3NpemUgIT0gKChzaXRfc2VncyAvIDIpIDw8 IGxvZ19ibG9ja3NfcGVyX3NlZykgLyA4IHx8CiAJCW5hdF9iaXRtYXBfc2l6ZSAhPSAoKG5hdF9z ZWdzIC8gMikgPDwgbG9nX2Jsb2Nrc19wZXJfc2VnKSAvIDgpIHsKCkZyb20gMDRmODc5OTFjODg4 M2RjMGI5N2E2YWU1MGVjZTA3MWViYWNlYTlhMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+CkRhdGU6IFRo dSwgMjkgTm92IDIwMTggMTk6MTc6MzQgKzAwMDAKU3ViamVjdDogW1BBVENIIDI4LzM2XSBmMmZz OiBBZGQgc2FuaXR5X2NoZWNrX2lub2RlKCkgZnVuY3Rpb24KClRoaXMgd2FzIGRvbmUgYXMgcGFy dCBvZiBjb21taXRzIDVkNjQ2MDBkNGYzMyAiZjJmczogYXZvaWQgYnVnX29uIG9uCmNvcnJ1cHRl ZCBpbm9kZSIgYW5kIDc2ZDU2ZDRhYjRmMiAiZjJmczogZml4IHRvIGRvIHNhbml0eSBjaGVjayB3 aXRoCmV4dHJhX2F0dHIgZmVhdHVyZSIgdXBzdHJlYW0sIGJ1dCB0aGUgc3BlY2lmaWMgY2hlY2tz IHRoZXkgYWRkZWQgYXJlCm5vdCBhcHBsaWNhYmxlIHRvIDQuNC4KCkNjOiBKYWVnZXVrIEtpbSA8 amFlZ2V1a0BrZXJuZWwub3JnPgpDYzogQ2hhbyBZdSA8eXVjaGFvMEBodWF3ZWkuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51az4K LS0tCiBmcy9mMmZzL2lub2RlLmMgfCAxMiArKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAx MiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9pbm9kZS5jIGIvZnMvZjJmcy9p bm9kZS5jCmluZGV4IDcwMmU5YjYzN2ZjMC4uMGY0OTYzOGQyYTVkIDEwMDY0NAotLS0gYS9mcy9m MmZzL2lub2RlLmMKKysrIGIvZnMvZjJmcy9pbm9kZS5jCkBAIC05NSw2ICs5NSwxMyBAQCBzdGF0 aWMgdm9pZCBfX3JlY292ZXJfaW5saW5lX3N0YXR1cyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1 Y3QgcGFnZSAqaXBhZ2UpCiAJcmV0dXJuOwogfQogCitzdGF0aWMgYm9vbCBzYW5pdHlfY2hlY2tf aW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKK3sKKwlzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkg PSBGMkZTX0lfU0IoaW5vZGUpOworCisJcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBpbnQgZG9f cmVhZF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQogewogCXN0cnVjdCBmMmZzX3NiX2luZm8g KnNiaSA9IEYyRlNfSV9TQihpbm9kZSk7CkBAIC0xNDMsNiArMTUwLDExIEBAIHN0YXRpYyBpbnQg ZG9fcmVhZF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQogCiAJZ2V0X2lubGluZV9pbmZvKGZp LCByaSk7CiAKKwlpZiAoIXNhbml0eV9jaGVja19pbm9kZShpbm9kZSkpIHsKKwkJZjJmc19wdXRf cGFnZShub2RlX3BhZ2UsIDEpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKIAkvKiBjaGVjayBk YXRhIGV4aXN0ICovCiAJaWYgKGYyZnNfaGFzX2lubGluZV9kYXRhKGlub2RlKSAmJiAhZjJmc19l eGlzdF9kYXRhKGlub2RlKSkKIAkJX19yZWNvdmVyX2lubGluZV9zdGF0dXMoaW5vZGUsIG5vZGVf cGFnZSk7CgpGcm9tIGJmODFmMDM3NmM5MzZlNTExMmNiMjQ4YWUyNzExNmM5N2FjZGRiOTggTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENoYW8gWXUgPHl1Y2hhbzBAaHVhd2VpLmNvbT4K RGF0ZTogRnJpLCAyOSBKdW4gMjAxOCAxMzo1NToyMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjkv MzZdIGYyZnM6IGZpeCB0byBkbyBzYW5pdHkgY2hlY2sgd2l0aCBub2RlIGZvb3RlciBhbmQKIGli bG9ja3MKCmNvbW1pdCBlMzQ0MzhjOTAzYjY1M2RhY2EyYjJhN2RlOTVhZWQ0NjIyNmY4ZWQzIHVw c3RyZWFtLgoKVGhpcyBwYXRjaCBhZGRzIHRvIGRvIHNhbml0eSBjaGVjayB3aXRoIGJlbG93IGZp ZWxkcyBvZiBpbm9kZSB0bwphdm9pZCByZXBvcnRlZCBwYW5pYy4KLSBub2RlIGZvb3RlcgotIGli bG9ja3MKCmh0dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwMjIz CgotIE92ZXJ2aWV3CkJVRygpIHRyaWdnZXJlZCBpbiBmMmZzX3RydW5jYXRlX2lub2RlX2Jsb2Nr cygpIHdoZW4gdW4tbW91bnRpbmcgYSBtb3VudGVkIGYyZnMgaW1hZ2UgYWZ0ZXIgd3JpdGluZyB0 byBpdAoKLSBSZXByb2R1Y2UKCi0gUE9DIChwb2MuYykKCnN0YXRpYyB2b2lkIGFjdGl2aXR5KGNo YXIgKm1wb2ludCkgewoKICBjaGFyICpmb29fYmFyX2JhejsKICBpbnQgZXJyOwoKICBzdGF0aWMg aW50IGJ1Zls4MTkyXTsKICBtZW1zZXQoYnVmLCAwLCBzaXplb2YoYnVmKSk7CgogIGVyciA9IGFz cHJpbnRmKCZmb29fYmFyX2JheiwgIiVzL2Zvby9iYXIvYmF6IiwgbXBvaW50KTsKCiAgLy8gb3Bl biAvIHdyaXRlIC8gcmVhZAogIGludCBmZCA9IG9wZW4oZm9vX2Jhcl9iYXosIE9fUkRXUiB8IE9f VFJVTkMsIDA3NzcpOwogIGlmIChmZCA+PSAwKSB7CiAgICB3cml0ZShmZCwgKGNoYXIgKilidWYs IDUxNyk7CiAgICB3cml0ZShmZCwgKGNoYXIgKilidWYsIHNpemVvZihidWYpKTsKICAgIGNsb3Nl KGZkKTsKICB9Cgp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7CiAgYWN0aXZp dHkoYXJndlsxXSk7CiAgcmV0dXJuIDA7Cn0KCi0gS2VybmVsIG1lZXNhZ2UKWyAgNTUyLjQ3OTcy M10gRjJGUy1mcyAobG9vcDApOiBNb3VudGVkIHdpdGggY2hlY2twb2ludCB2ZXJzaW9uID0gMgpb ICA1NTYuNDUxODkxXSAtLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0KWyAgNTU2 LjQ1MTg5OV0ga2VybmVsIEJVRyBhdCBmcy9mMmZzL25vZGUuYzo5ODchClsgIDU1Ni40NTI5MjBd IGludmFsaWQgb3Bjb2RlOiAwMDAwIFsjMV0gU01QIEtBU0FOIFBUSQpbICA1NTYuNDUzOTM2XSBD UFU6IDEgUElEOiAxMzEwIENvbW06IHVtb3VudCBOb3QgdGFpbnRlZCA0LjE4LjAtcmMxKyAjNApb ICA1NTYuNDU1MjEzXSBIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQ SUlYLCAxOTk2KSwgQklPUyBVYnVudHUtMS44LjItMXVidW50dTEgMDQvMDEvMjAxNApbICA1NTYu NDU3MTQwXSBSSVA6IDAwMTA6ZjJmc190cnVuY2F0ZV9pbm9kZV9ibG9ja3MrMHg0YTcvMHg2ZjAK WyAgNTU2LjQ1ODI4MF0gQ29kZTogZTggYWUgZWEgZmYgZmYgNDEgODkgYzcgYzEgZTggMWYgODQg YzAgNzQgMGEgNDEgODMgZmYgZmUgMGYgODUgMzUgZmYgZmYgZmYgODEgODUgYjAgZmUgZmYgZmYg ZmIgMDMgMDAgMDAgZTkgZjcgZmQgZmYgZmYgMGYgMGIgPDBmPiAwYiBlOCA2MiBiNyA5YSAwMCA0 OCA4YiBiZCBhMCBmZSBmZiBmZiBlOCA1NiA1NCBhZSBmZiA0OCA4YiBiNQpbICA1NTYuNDYyMDE1 XSBSU1A6IDAwMTg6ZmZmZjg4MDFmMjkyZjgwOCBFRkxBR1M6IDAwMDEwMjg2ClsgIDU1Ni40NjMw NjhdIFJBWDogZmZmZmVkMDAzZTczMjQyZCBSQlg6IGZmZmY4ODAxZjI5MmY5NTggUkNYOiBmZmZm ZmZmZmI4OGI4MWJjClsgIDU1Ni40NjQ0NzldIFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAw MDAwMDAwMDAwMDAwMDQgUkRJOiBmZmZmODgwMWYzOTkyMTY0ClsgIDU1Ni40NjU5MDFdIFJCUDog ZmZmZjg4MDFmMjkyZjk4MCBSMDg6IGZmZmZlZDAwM2U3MzI0MmQgUjA5OiBmZmZmZWQwMDNlNzMy NDJkClsgIDU1Ni40NjczMTFdIFIxMDogMDAwMDAwMDAwMDAwMDAwMSBSMTE6IGZmZmZlZDAwM2U3 MzI0MmMgUjEyOiAwMDAwMDAwMGZmZmZmYzY0ClsgIDU1Ni40Njg3MDZdIFIxMzogZmZmZjg4MDFm Mzk5MjAwMCBSMTQ6IDAwMDAwMDAwMDAwMDAwNTggUjE1OiAwMDAwMDAwMGZmZmY4ODAxClsgIDU1 Ni40NzAxMTddIEZTOiAgMDAwMDdmODAyOTI5Nzg0MCgwMDAwKSBHUzpmZmZmODgwMWY2ZjAwMDAw KDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgNTU2LjQ3MTcwMl0gQ1M6ICAwMDEwIERT OiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbICA1NTYuNDcyODM4XSBDUjI6 IDAwMDA1NWY1ZjU3MzA1ZDggQ1IzOiAwMDAwMDAwMWYxOGIwMDAwIENSNDogMDAwMDAwMDAwMDAw MDZlMApbICA1NTYuNDc0MjY1XSBDYWxsIFRyYWNlOgpbICA1NTYuNDc0NzgyXSAgPyBmMmZzX2Fs bG9jX25pZF9mYWlsZWQrMHhmMC8weGYwClsgIDU1Ni40NzU2ODZdICA/IHRydW5jYXRlX25vZGVz KzB4OTgwLzB4OTgwClsgIDU1Ni40NzY1MTZdICA/IHBhZ2VjYWNoZV9nZXRfcGFnZSsweDIxZi8w eDJmMApbICA1NTYuNDc3NDEyXSAgPyBfX2FzYW5fbG9hZE4rMHhmLzB4MjAKWyAgNTU2LjQ3ODE1 M10gID8gX19nZXRfbm9kZV9wYWdlKzB4MzMxLzB4NWIwClsgIDU1Ni40Nzg5OTJdICA/IHJld2Vp Z2h0X2VudGl0eSsweDFlNi8weDNiMApbICA1NTYuNDc5ODI2XSAgZjJmc190cnVuY2F0ZV9ibG9j a3MrMHg1NWUvMHg3NDAKWyAgNTU2LjQ4MDcwOV0gID8gZjJmc190cnVuY2F0ZV9kYXRhX2Jsb2Nr cysweDIwLzB4MjAKWyAgNTU2LjQ4MTY4OV0gID8gX19yYWRpeF90cmVlX2xvb2t1cCsweDM0LzB4 MTYwClsgIDU1Ni40ODI2MzBdICA/IHJhZGl4X3RyZWVfbG9va3VwKzB4ZC8weDEwClsgIDU1Ni40 ODM0NDVdICBmMmZzX3RydW5jYXRlKzB4ZDQvMHgxYTAKWyAgNTU2LjQ4NDIwNl0gIGYyZnNfZXZp Y3RfaW5vZGUrMHg1Y2UvMHg2MzAKWyAgNTU2LjQ4NTAzMl0gIGV2aWN0KzB4MTZmLzB4MjkwClsg IDU1Ni40ODU2NjRdICBpcHV0KzB4MjgwLzB4MzAwClsgIDU1Ni40ODYzMDBdICBkZW50cnlfdW5s aW5rX2lub2RlKzB4MTY1LzB4MWUwClsgIDU1Ni40ODcxNjldICBfX2RlbnRyeV9raWxsKzB4MTZh LzB4MjYwClsgIDU1Ni40ODc5MzZdICBkZW50cnlfa2lsbCsweDcwLzB4MjUwClsgIDU1Ni40ODg2 NTFdICBzaHJpbmtfZGVudHJ5X2xpc3QrMHgxMjUvMHgyNjAKWyAgNTU2LjQ4OTUwNF0gIHNocmlu a19kY2FjaGVfcGFyZW50KzB4YzEvMHgxMTAKWyAgNTU2LjQ5MDM3OV0gID8gc2hyaW5rX2RjYWNo ZV9zYisweDIwMC8weDIwMApbICA1NTYuNDkxMjMxXSAgPyBiaXRfd2FpdF90aW1lb3V0KzB4YzAv MHhjMApbICA1NTYuNDkyMDQ3XSAgZG9fb25lX3RyZWUrMHgxMi8weDQwClsgIDU1Ni40OTI3NDNd ICBzaHJpbmtfZGNhY2hlX2Zvcl91bW91bnQrMHgzZi8weGEwClsgIDU1Ni40OTM2NTZdICBnZW5l cmljX3NodXRkb3duX3N1cGVyKzB4NDMvMHgxYzAKWyAgNTU2LjQ5NDU2MV0gIGtpbGxfYmxvY2tf c3VwZXIrMHg1Mi8weDgwClsgIDU1Ni40OTUzNDFdICBraWxsX2YyZnNfc3VwZXIrMHg2Mi8weDcw ClsgIDU1Ni40OTYxMDVdICBkZWFjdGl2YXRlX2xvY2tlZF9zdXBlcisweDZmLzB4YTAKWyAgNTU2 LjQ5NzAwNF0gIGRlYWN0aXZhdGVfc3VwZXIrMHg1ZS8weDgwClsgIDU1Ni40OTc3ODVdICBjbGVh bnVwX21udCsweDYxLzB4YTAKWyAgNTU2LjQ5ODQ5Ml0gIF9fY2xlYW51cF9tbnQrMHgxMi8weDIw ClsgIDU1Ni40OTkyMThdICB0YXNrX3dvcmtfcnVuKzB4YzgvMHhmMApbICA1NTYuNDk5OTQ5XSAg ZXhpdF90b191c2VybW9kZV9sb29wKzB4MTI1LzB4MTMwClsgIDU1Ni41MDA4NDZdICBkb19zeXNj YWxsXzY0KzB4MTM4LzB4MTcwClsgIDU1Ni41MDE2MDldICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVy X2h3ZnJhbWUrMHg0NC8weGE5ClsgIDU1Ni41MDI2NTldIFJJUDogMDAzMzoweDdmODAyOGI3NzQ4 NwpbICA1NTYuNTAzMzg0XSBDb2RlOiA4MyBjOCBmZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAw MCAwMCAwMCAwZiAxZiA0NCAwMCAwMCAzMSBmNiBlOSAwOSAwMCAwMCAwMCA2NiAwZiAxZiA4NCAw MCAwMCAwMCAwMCAwMCBiOCBhNiAwMCAwMCAwMCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZmIDcz IDAxIGMzIDQ4IDhiIDBkIGUxIGM5IDJiIDAwIGY3IGQ4IDY0IDg5IDAxIDQ4ClsgIDU1Ni41MDcx MzddIFJTUDogMDAyYjowMDAwN2ZmZjlmMmUzNTk4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6 IDAwMDAwMDAwMDAwMDAwYTYKWyAgNTU2LjUwODYzN10gUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJC WDogMDAwMDAwMDAwMGViZDAzMCBSQ1g6IDAwMDA3ZjgwMjhiNzc0ODcKWyAgNTU2LjUxMDA2OV0g UkRYOiAwMDAwMDAwMDAwMDAwMDAxIFJTSTogMDAwMDAwMDAwMDAwMDAwMCBSREk6IDAwMDAwMDAw MDBlYzQxZTAKWyAgNTU2LjUxMTQ4MV0gUkJQOiAwMDAwMDAwMDAwZWM0MWUwIFIwODogMDAwMDAw MDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMTQKWyAgNTU2LjUxMjg5Ml0gUjEwOiAwMDAw MDAwMDAwMDAwNmIyIFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDA3ZjgwMjkwODA4M2MK WyAgNTU2LjUxNDMyMF0gUjEzOiAwMDAwMDAwMDAwMDAwMDAwIFIxNDogMDAwMDAwMDAwMGViZDIx MCBSMTU6IDAwMDA3ZmZmOWYyZTM4MjAKWyAgNTU2LjUxNTc0NV0gTW9kdWxlcyBsaW5rZWQgaW46 IHNuZF9oZGFfY29kZWNfZ2VuZXJpYyBzbmRfaGRhX2ludGVsIHNuZF9oZGFfY29kZWMgc25kX2h3 ZGVwIHNuZF9oZGFfY29yZSBzbmRfcGNtIHNuZF90aW1lciBzbmQgbWFjX2hpZCBpMmNfcGlpeDQg c291bmRjb3JlIGliX2lzZXIgcmRtYV9jbSBpd19jbSBpYl9jbSBpYl9jb3JlIGlzY3NpX3RjcCBs aWJpc2NzaV90Y3AgbGliaXNjc2kgc2NzaV90cmFuc3BvcnRfaXNjc2kgcmFpZDEwIHJhaWQ0NTYg YXN5bmNfcmFpZDZfcmVjb3YgYXN5bmNfbWVtY3B5IGFzeW5jX3BxIGFzeW5jX3hvciBhc3luY190 eCByYWlkMSByYWlkMCBtdWx0aXBhdGggbGluZWFyIDgxMzl0b28gY3JjdDEwZGlmX3BjbG11bCBj cmMzMl9wY2xtdWwgcXhsIGRybV9rbXNfaGVscGVyIHN5c2NvcHlhcmVhIGFlc25pX2ludGVsIHN5 c2ZpbGxyZWN0IHN5c2ltZ2JsdCBmYl9zeXNfZm9wcyB0dG0gZHJtIGFlc194ODZfNjQgY3J5cHRv X3NpbWQgY3J5cHRkIDgxMzljcCBnbHVlX2hlbHBlciBtaWkgcGF0YV9hY3BpIGZsb3BweQpbICA1 NTYuNTI5Mjc2XSAtLS1bIGVuZCB0cmFjZSA0Y2UwMmYyNWZmN2QzZGY1IF0tLS0KWyAgNTU2LjUz MDM0MF0gUklQOiAwMDEwOmYyZnNfdHJ1bmNhdGVfaW5vZGVfYmxvY2tzKzB4NGE3LzB4NmYwClsg IDU1Ni41MzE1MTNdIENvZGU6IGU4IGFlIGVhIGZmIGZmIDQxIDg5IGM3IGMxIGU4IDFmIDg0IGMw IDc0IDBhIDQxIDgzIGZmIGZlIDBmIDg1IDM1IGZmIGZmIGZmIDgxIDg1IGIwIGZlIGZmIGZmIGZi IDAzIDAwIDAwIGU5IGY3IGZkIGZmIGZmIDBmIDBiIDwwZj4gMGIgZTggNjIgYjcgOWEgMDAgNDgg OGIgYmQgYTAgZmUgZmYgZmYgZTggNTYgNTQgYWUgZmYgNDggOGIgYjUKWyAgNTU2LjUzNTMzMF0g UlNQOiAwMDE4OmZmZmY4ODAxZjI5MmY4MDggRUZMQUdTOiAwMDAxMDI4NgpbICA1NTYuNTM2Mzk1 XSBSQVg6IGZmZmZlZDAwM2U3MzI0MmQgUkJYOiBmZmZmODgwMWYyOTJmOTU4IFJDWDogZmZmZmZm ZmZiODhiODFiYwpbICA1NTYuNTM3ODI0XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAwMDAw MDAwMDAwMDAwMDA0IFJESTogZmZmZjg4MDFmMzk5MjE2NApbICA1NTYuNTM5MjkwXSBSQlA6IGZm ZmY4ODAxZjI5MmY5ODAgUjA4OiBmZmZmZWQwMDNlNzMyNDJkIFIwOTogZmZmZmVkMDAzZTczMjQy ZApbICA1NTYuNTQwNzA5XSBSMTA6IDAwMDAwMDAwMDAwMDAwMDEgUjExOiBmZmZmZWQwMDNlNzMy NDJjIFIxMjogMDAwMDAwMDBmZmZmZmM2NApbICA1NTYuNTQyMTMxXSBSMTM6IGZmZmY4ODAxZjM5 OTIwMDAgUjE0OiAwMDAwMDAwMDAwMDAwMDU4IFIxNTogMDAwMDAwMDBmZmZmODgwMQpbICA1NTYu NTQzNTc5XSBGUzogIDAwMDA3ZjgwMjkyOTc4NDAoMDAwMCkgR1M6ZmZmZjg4MDFmNmYwMDAwMCgw MDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwClsgIDU1Ni41NDUxODBdIENTOiAgMDAxMCBEUzog MDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKWyAgNTU2LjU0NjMzOF0gQ1IyOiAw MDAwNTVmNWY1NzMwNWQ4IENSMzogMDAwMDAwMDFmMThiMDAwMCBDUjQ6IDAwMDAwMDAwMDAwMDA2 ZTAKWyAgNTU2LjU0NzgwOV0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09ClsgIDU1Ni41NDkyNDhdIEJVRzogS0FTQU46IHN0 YWNrLW91dC1vZi1ib3VuZHMgaW4gYXJjaF90bGJfZ2F0aGVyX21tdSsweDUyLzB4MTcwClsgIDU1 Ni41NTA2NzJdIFdyaXRlIG9mIHNpemUgOCBhdCBhZGRyIGZmZmY4ODAxZjI5MmZkMTAgYnkgdGFz ayB1bW91bnQvMTMxMAoKWyAgNTU2LjU1MjMzOF0gQ1BVOiAxIFBJRDogMTMxMCBDb21tOiB1bW91 bnQgVGFpbnRlZDogRyAgICAgIEQgICAgICAgICAgIDQuMTguMC1yYzErICM0ClsgIDU1Ni41NTM4 ODZdIEhhcmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYp LCBCSU9TIFVidW50dS0xLjguMi0xdWJ1bnR1MSAwNC8wMS8yMDE0ClsgIDU1Ni41NTU3NTZdIENh bGwgVHJhY2U6ClsgIDU1Ni41NTYyNjRdICBkdW1wX3N0YWNrKzB4N2IvMHhiNQpbICA1NTYuNTU2 OTQ0XSAgcHJpbnRfYWRkcmVzc19kZXNjcmlwdGlvbisweDcwLzB4MjkwClsgIDU1Ni41NTc5MDNd ICBrYXNhbl9yZXBvcnQrMHgyOTEvMHgzOTAKWyAgNTU2LjU1ODY0OV0gID8gYXJjaF90bGJfZ2F0 aGVyX21tdSsweDUyLzB4MTcwClsgIDU1Ni41NTk1MzddICBfX2FzYW5fc3RvcmU4KzB4NTcvMHg5 MApbICA1NTYuNTYwMjY4XSAgYXJjaF90bGJfZ2F0aGVyX21tdSsweDUyLzB4MTcwClsgIDU1Ni41 NjExMTBdICB0bGJfZ2F0aGVyX21tdSsweDEyLzB4NDAKWyAgNTU2LjU2MTg2Ml0gIGV4aXRfbW1h cCsweDEyMy8weDJhMApbICA1NTYuNTYyNTU1XSAgPyBfX2lhMzJfc3lzX211bm1hcCsweDUwLzB4 NTAKWyAgNTU2LjU2MzM4NF0gID8gZXhpdF9haW8rMHg5OC8weDIzMApbICA1NTYuNTY0MDc5XSAg PyBfX3gzMl9jb21wYXRfc3lzX2lvX3N1Ym1pdCsweDI2MC8weDI2MApbICA1NTYuNTY1MDk5XSAg PyB0YXNrc3RhdHNfZXhpdCsweDFmNC8weDY0MApbICA1NTYuNTY1OTI1XSAgPyBrYXNhbl9jaGVj a19yZWFkKzB4MTEvMHgyMApbICA1NTYuNTY2NzM5XSAgPyBtbV91cGRhdGVfbmV4dF9vd25lcisw eDMyMi8weDM4MApbICA1NTYuNTY3NjUyXSAgbW1wdXQrMHg4Yi8weDFkMApbICA1NTYuNTY4MjYw XSAgZG9fZXhpdCsweDQzYS8weDEzOTAKWyAgNTU2LjU2ODkzN10gID8gbW1fdXBkYXRlX25leHRf b3duZXIrMHgzODAvMHgzODAKWyAgNTU2LjU2OTg1NV0gID8gZGVhY3RpdmF0ZV9zdXBlcisweDVl LzB4ODAKWyAgNTU2LjU3MDY2OF0gID8gY2xlYW51cF9tbnQrMHg2MS8weGEwClsgIDU1Ni41NzEz OTVdICA/IF9fY2xlYW51cF9tbnQrMHgxMi8weDIwClsgIDU1Ni41NzIxNTZdICA/IHRhc2tfd29y a19ydW4rMHhjOC8weGYwClsgIDU1Ni41NzI5MTddICA/IGV4aXRfdG9fdXNlcm1vZGVfbG9vcCsw eDEyNS8weDEzMApbICA1NTYuNTczODYxXSAgcmV3aW5kX3N0YWNrX2RvX2V4aXQrMHgxNy8weDIw ClsgIDU1Ni41NzQ3MDddIFJJUDogMDAzMzoweDdmODAyOGI3NzQ4NwpbICA1NTYuNTc1NDI4XSBD b2RlOiBCYWQgUklQIHZhbHVlLgpbICA1NTYuNTc2MTA2XSBSU1A6IDAwMmI6MDAwMDdmZmY5ZjJl MzU5OCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMGE2ClsgIDU1Ni41 Nzc1OTldIFJBWDogMDAwMDAwMDAwMDAwMDAwMCBSQlg6IDAwMDAwMDAwMDBlYmQwMzAgUkNYOiAw MDAwN2Y4MDI4Yjc3NDg3ClsgIDU1Ni41NzkwMjBdIFJEWDogMDAwMDAwMDAwMDAwMDAwMSBSU0k6 IDAwMDAwMDAwMDAwMDAwMDAgUkRJOiAwMDAwMDAwMDAwZWM0MWUwClsgIDU1Ni41ODA0MjJdIFJC UDogMDAwMDAwMDAwMGVjNDFlMCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAw MDAwMDE0ClsgIDU1Ni41ODE4MzNdIFIxMDogMDAwMDAwMDAwMDAwMDZiMiBSMTE6IDAwMDAwMDAw MDAwMDAyNDYgUjEyOiAwMDAwN2Y4MDI5MDgwODNjClsgIDU1Ni41ODMyNTJdIFIxMzogMDAwMDAw MDAwMDAwMDAwMCBSMTQ6IDAwMDAwMDAwMDBlYmQyMTAgUjE1OiAwMDAwN2ZmZjlmMmUzODIwCgpb ICA1NTYuNTg0OTgzXSBUaGUgYnVnZ3kgYWRkcmVzcyBiZWxvbmdzIHRvIHRoZSBwYWdlOgpbICA1 NTYuNTg1OTYxXSBwYWdlOmZmZmZlYTAwMDdjYTRiYzAgY291bnQ6MCBtYXBjb3VudDowIG1hcHBp bmc6MDAwMDAwMDAwMDAwMDAwMCBpbmRleDoweDAKWyAgNTU2LjU4NzU0MF0gZmxhZ3M6IDB4MmZm ZmYwMDAwMDAwMDAwKCkKWyAgNTU2LjU4ODI5Nl0gcmF3OiAwMmZmZmYwMDAwMDAwMDAwIDAwMDAw MDAwMDAwMDAwMDAgZGVhZDAwMDAwMDAwMDIwMCAwMDAwMDAwMDAwMDAwMDAwClsgIDU1Ni41ODk4 MjJdIHJhdzogMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwZmZmZmZm ZmYgMDAwMDAwMDAwMDAwMDAwMApbICA1NTYuNTkxMzU5XSBwYWdlIGR1bXBlZCBiZWNhdXNlOiBr YXNhbjogYmFkIGFjY2VzcyBkZXRlY3RlZAoKWyAgNTU2LjU5Mjc4Nl0gTWVtb3J5IHN0YXRlIGFy b3VuZCB0aGUgYnVnZ3kgYWRkcmVzczoKWyAgNTU2LjU5Mzc1M10gIGZmZmY4ODAxZjI5MmZjMDA6 IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwClsgIDU1Ni41 OTUxOTFdICBmZmZmODgwMWYyOTJmYzgwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCBmMSBmMSBm MSBmMSAwMCAwMCAwMCAwMApbICA1NTYuNTk2NjEzXSA+ZmZmZjg4MDFmMjkyZmQwMDogMDAgMDAg ZjMgMDAgMDAgMDAgMDAgZjMgZjMgMDAgMDAgMDAgMDAgZjQgZjQgZjQKWyAgNTU2LjU5ODA0NF0g ICAgICAgICAgICAgICAgICAgICAgICAgIF4KWyAgNTU2LjU5ODc5N10gIGZmZmY4ODAxZjI5MmZk ODA6IGYzIGYzIGYzIGYzIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwClsgIDU1 Ni42MDAyMjVdICBmZmZmODgwMWYyOTJmZTAwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCBmMSBm MSBmMSBmMSAwMCBmNCBmNCBmNApbICA1NTYuNjAxNjQ3XSA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCi0gTG9jYXRpb24K aHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20vbGludXgvdjQuMTgtcmMxL3NvdXJjZS9mcy9mMmZz L25vZGUuYyNMOTg3CgkJY2FzZSBOT0RFX0RJTkRfQkxPQ0s6CgkJCWVyciA9IHRydW5jYXRlX25v ZGVzKCZkbiwgbm9mcywgb2Zmc2V0WzFdLCAzKTsKCQkJY29udCA9IDA7CgkJCWJyZWFrOwoKCQlk ZWZhdWx0OgoJCQlCVUcoKTsgPC0tLQoJCX0KClJlcG9ydGVkLWJ5IFdlbiBYdSA8d2VuLnh1QGdh dGVjaC5lZHU+ClNpZ25lZC1vZmYtYnk6IENoYW8gWXUgPHl1Y2hhbzBAaHVhd2VpLmNvbT4KU2ln bmVkLW9mZi1ieTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1i eTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZnMv ZjJmcy9pbm9kZS5jIHwgMjUgKysrKysrKysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5n ZWQsIDIzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMvZjJm cy9pbm9kZS5jIGIvZnMvZjJmcy9pbm9kZS5jCmluZGV4IDBmNDk2MzhkMmE1ZC4uZjIyYmNkMGJl N2UwIDEwMDY0NAotLS0gYS9mcy9mMmZzL2lub2RlLmMKKysrIGIvZnMvZjJmcy9pbm9kZS5jCkBA IC05NSw5ICs5NSwzMCBAQCBzdGF0aWMgdm9pZCBfX3JlY292ZXJfaW5saW5lX3N0YXR1cyhzdHJ1 Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgcGFnZSAqaXBhZ2UpCiAJcmV0dXJuOwogfQogCi1zdGF0 aWMgYm9vbCBzYW5pdHlfY2hlY2tfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKK3N0YXRpYyBi b29sIHNhbml0eV9jaGVja19pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgcGFnZSAq bm9kZV9wYWdlKQogewogCXN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSA9IEYyRlNfSV9TQihpbm9k ZSk7CisJdW5zaWduZWQgbG9uZyBsb25nIGlibG9ja3M7CisKKwlpYmxvY2tzID0gbGU2NF90b19j cHUoRjJGU19JTk9ERShub2RlX3BhZ2UpLT5pX2Jsb2Nrcyk7CisJaWYgKCFpYmxvY2tzKSB7CisJ CXNldF9zYmlfZmxhZyhzYmksIFNCSV9ORUVEX0ZTQ0spOworCQlmMmZzX21zZyhzYmktPnNiLCBL RVJOX1dBUk5JTkcsCisJCQkiJXM6IGNvcnJ1cHRlZCBpbm9kZSBpX2Jsb2NrcyBpX2lubz0lbHgg aWJsb2Nrcz0lbGx1LCAiCisJCQkicnVuIGZzY2sgdG8gZml4LiIsCisJCQlfX2Z1bmNfXywgaW5v ZGUtPmlfaW5vLCBpYmxvY2tzKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWlmIChpbm9fb2Zf bm9kZShub2RlX3BhZ2UpICE9IG5pZF9vZl9ub2RlKG5vZGVfcGFnZSkpIHsKKwkJc2V0X3NiaV9m bGFnKHNiaSwgU0JJX05FRURfRlNDSyk7CisJCWYyZnNfbXNnKHNiaS0+c2IsIEtFUk5fV0FSTklO RywKKwkJCSIlczogY29ycnVwdGVkIGlub2RlIGZvb3RlciBpX2lubz0lbHgsIGlubyxuaWQ6ICIK KwkJCSJbJXUsICV1XSBydW4gZnNjayB0byBmaXguIiwKKwkJCV9fZnVuY19fLCBpbm9kZS0+aV9p bm8sCisJCQlpbm9fb2Zfbm9kZShub2RlX3BhZ2UpLCBuaWRfb2Zfbm9kZShub2RlX3BhZ2UpKTsK KwkJcmV0dXJuIGZhbHNlOworCX0KIAogCXJldHVybiB0cnVlOwogfQpAQCAtMTUwLDcgKzE3MSw3 IEBAIHN0YXRpYyBpbnQgZG9fcmVhZF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQogCiAJZ2V0 X2lubGluZV9pbmZvKGZpLCByaSk7CiAKLQlpZiAoIXNhbml0eV9jaGVja19pbm9kZShpbm9kZSkp IHsKKwlpZiAoIXNhbml0eV9jaGVja19pbm9kZShpbm9kZSwgbm9kZV9wYWdlKSkgewogCQlmMmZz X3B1dF9wYWdlKG5vZGVfcGFnZSwgMSk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KCkZyb20gNzVj YzhjMzY0OTUzYzZlMDkwNDUwZWRkNjRmNjY1M2UwZTczNDYyNSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQ2hhbyBZdSA8eXVjaGFvMEBodWF3ZWkuY29tPgpEYXRlOiBTYXQsIDMwIEp1 biAyMDE4IDE4OjEzOjQwICswODAwClN1YmplY3Q6IFtQQVRDSCAzMC8zNl0gZjJmczogZml4IHRv IGRvIHNhbml0eSBjaGVjayB3aXRoIHJlc2VydmVkIGJsa2FkZHIgb2YKIGlubGluZSBpbm9kZQoK Y29tbWl0IDRkYmUzOGRjMzg2OTEwYzY2OGM3NWFlNjE2Yjk5YjgyM2I1OWYzZWIgdXBzdHJlYW0u CgpBcyBXZW4gWHUgcmVwb3J0ZWQgaW4gYnVnemlsbGEsIGFmdGVyIGltYWdlIHdhcyBpbmplY3Rl ZCB3aXRoIHJhbmRvbSBkYXRhCmJ5IGZ1enppbmcsIGlubGluZSBpbm9kZSB3b3VsZCBjb250YWlu IGludmFsaWQgcmVzZXJ2ZWQgYmxrYWRkciwgdGhlbgpkdXJpbmcgaW5saW5lIGNvbnZlcnNpb24s IHdlIHdpbGwgZW5jb3VudGVyIGlsbGVnYWwgbWVtb3J5IGFjY2Vzc2luZwpyZXBvcnRlZCBieSBL QVNBTiwgdGhlIHJvb3QgY2F1c2Ugb2YgdGhpcyBpcyB3aGVuIHdyaXRpbmcgb3V0IGNvbnZlcnRl ZAppbmxpbmUgcGFnZSwgd2Ugd2lsbCB1c2UgaW52YWxpZCByZXNlcnZlZCBibGthZGRyIHRvIHVw ZGF0ZSBzaXQgYml0bWFwLApyZXN1bHQgaW4gYWNjZXNzaW5nIG1lbW9yeSBiZXlvbmQgc2l0IGJp dG1hcCBib3VuZGFyeS4KCkluIG9yZGVyIHRvIGZpeCB0aGlzIGlzc3VlLCBsZXQncyBkbyBzYW5p dHkgY2hlY2sgd2l0aCByZXNlcnZlZCBibG9jawphZGRyZXNzIG9mIGlubGluZSBpbm9kZSB0byBh dm9pZCBhYm92ZSBjb25kaXRpb24uCgpodHRwczovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19i dWcuY2dpP2lkPTIwMDE3OQoKWyAxNDI4Ljg0NjM1Ml0gQlVHOiBLQVNBTjogdXNlLWFmdGVyLWZy ZWUgaW4gdXBkYXRlX3NpdF9lbnRyeSsweDgwLzB4N2YwClsgMTQyOC44NDY2MThdIFJlYWQgb2Yg c2l6ZSA0IGF0IGFkZHIgZmZmZjg4MDE5NDQ4MzU0MCBieSB0YXNrIGEub3V0LzI3NDEKClsgMTQy OC44NDY4NTVdIENQVTogMCBQSUQ6IDI3NDEgQ29tbTogYS5vdXQgVGFpbnRlZDogRyAgICAgICAg VyAgICAgICAgIDQuMTcuMCsgIzEKWyAxNDI4Ljg0Njg1OF0gSGFyZHdhcmUgbmFtZTogUUVNVSBT dGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgVWJ1bnR1LTEuOC4yLTF1YnVu dHUxIDA0LzAxLzIwMTQKWyAxNDI4Ljg0Njg2MF0gQ2FsbCBUcmFjZToKWyAxNDI4Ljg0Njg2OF0g IGR1bXBfc3RhY2srMHg3MS8weGFiClsgMTQyOC44NDY4NzVdICBwcmludF9hZGRyZXNzX2Rlc2Ny aXB0aW9uKzB4NmIvMHgyOTAKWyAxNDI4Ljg0Njg4MV0gIGthc2FuX3JlcG9ydCsweDI4ZS8weDM5 MApbIDE0MjguODQ2ODg4XSAgPyB1cGRhdGVfc2l0X2VudHJ5KzB4ODAvMHg3ZjAKWyAxNDI4Ljg0 Njg5OF0gIHVwZGF0ZV9zaXRfZW50cnkrMHg4MC8weDdmMApbIDE0MjguODQ2OTA2XSAgZjJmc19h bGxvY2F0ZV9kYXRhX2Jsb2NrKzB4NmRiLzB4YzcwClsgMTQyOC44NDY5MTRdICA/IGYyZnNfZ2V0 X25vZGVfaW5mbysweDE0Zi8weDU5MApbIDE0MjguODQ2OTIwXSAgZG9fd3JpdGVfcGFnZSsweGM4 LzB4MTUwClsgMTQyOC44NDY5MjhdICBmMmZzX291dHBsYWNlX3dyaXRlX2RhdGErMHhmZS8weDIx MApbIDE0MjguODQ2OTM1XSAgPyBmMmZzX2RvX3dyaXRlX25vZGVfcGFnZSsweDE3MC8weDE3MApb IDE0MjguODQ2OTQxXSAgPyByYWRpeF90cmVlX3RhZ19jbGVhcisweGZmLzB4MTMwClsgMTQyOC44 NDY5NDZdICA/IF9fbW9kX25vZGVfcGFnZV9zdGF0ZSsweDIyLzB4YTAKWyAxNDI4Ljg0Njk1MV0g ID8gaW5jX3pvbmVfcGFnZV9zdGF0ZSsweDU0LzB4MTAwClsgMTQyOC44NDY5NTZdICA/IF9fdGVz dF9zZXRfcGFnZV93cml0ZWJhY2srMHgzMzYvMHg1ZDAKWyAxNDI4Ljg0Njk2NF0gIGYyZnNfY29u dmVydF9pbmxpbmVfcGFnZSsweDQwNy8weDZkMApbIDE0MjguODQ2OTcxXSAgPyBmMmZzX3JlYWRf aW5saW5lX2RhdGErMHgzYjAvMHgzYjAKWyAxNDI4Ljg0Njk3OF0gID8gX19nZXRfbm9kZV9wYWdl KzB4MzM1LzB4NmIwClsgMTQyOC44NDY5ODddICBmMmZzX2NvbnZlcnRfaW5saW5lX2lub2RlKzB4 NDFiLzB4NTAwClsgMTQyOC44NDY5OTRdICA/IGYyZnNfY29udmVydF9pbmxpbmVfcGFnZSsweDZk MC8weDZkMApbIDE0MjguODQ3MDAwXSAgPyBrYXNhbl91bnBvaXNvbl9zaGFkb3crMHgzMS8weDQw ClsgMTQyOC44NDcwMDVdICA/IGthc2FuX2ttYWxsb2MrMHhhNi8weGQwClsgMTQyOC44NDcwMjRd ICBmMmZzX2ZpbGVfbW1hcCsweDc5LzB4YzAKWyAxNDI4Ljg0NzAyOV0gIG1tYXBfcmVnaW9uKzB4 NThiLzB4ODgwClsgMTQyOC44NDcwMzddICA/IGFyY2hfZ2V0X3VubWFwcGVkX2FyZWErMHgzNzAv MHgzNzAKWyAxNDI4Ljg0NzA0Ml0gIGRvX21tYXArMHg1NWIvMHg3YTAKWyAxNDI4Ljg0NzA0OF0g IHZtX21tYXBfcGdvZmYrMHgxNmYvMHgxYzAKWyAxNDI4Ljg0NzA1NV0gID8gdm1hX2lzX3N0YWNr X2Zvcl9jdXJyZW50KzB4NTAvMHg1MApbIDE0MjguODQ3MDYyXSAgPyBfX2Zzbm90aWZ5X3VwZGF0 ZV9jaGlsZF9kZW50cnlfZmxhZ3MucGFydC4xKzB4MTYwLzB4MTYwClsgMTQyOC44NDcwNjhdICA/ IGRvX3N5c19vcGVuKzB4MjA2LzB4MmEwClsgMTQyOC44NDcwNzNdICA/IF9fZmdldCsweGI0LzB4 MTAwClsgMTQyOC44NDcwNzldICBrc3lzX21tYXBfcGdvZmYrMHgyNzgvMHgzNjAKWyAxNDI4Ljg0 NzA4NV0gID8gZmluZF9tZXJnZWFibGVfYW5vbl92bWErMHg1MC8weDUwClsgMTQyOC44NDcwOTFd ICBkb19zeXNjYWxsXzY0KzB4NzMvMHgxNjAKWyAxNDI4Ljg0NzA5OF0gIGVudHJ5X1NZU0NBTExf NjRfYWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKWyAxNDI4Ljg0NzEwMl0gUklQOiAwMDMzOjB4N2Zi MTQzMDc2NmJhClsgMTQyOC44NDcxMDNdIENvZGU6IDg5IGY1IDQxIDU0IDQ5IDg5IGZjIDU1IDUz IDc0IDM1IDQ5IDYzIGU4IDQ4IDYzIGRhIDRkIDg5IGY5IDQ5IDg5IGU4IDRkIDYzIGQ2IDQ4IDg5 IGRhIDRjIDg5IGVlIDRjIDg5IGU3IGI4IDA5IDAwIDAwIDAwIDBmIDA1IDw0OD4gM2QgMDAgZjAg ZmYgZmYgNzcgNTYgNWIgNWQgNDEgNWMgNDEgNWQgNDEgNWUgNDEgNWYgYzMgMGYgMWYgMDAKWyAx NDI4Ljg0NzE2Ml0gUlNQOiAwMDJiOjAwMDA3ZmZjNjUxZDkzODggRUZMQUdTOiAwMDAwMDI0NiBP UklHX1JBWDogMDAwMDAwMDAwMDAwMDAwOQpbIDE0MjguODQ3MTY3XSBSQVg6IGZmZmZmZmZmZmZm ZmZmZGEgUkJYOiAwMDAwMDAwMDAwMDAwMDAxIFJDWDogMDAwMDdmYjE0MzA3NjZiYQpbIDE0Mjgu ODQ3MTcwXSBSRFg6IDAwMDAwMDAwMDAwMDAwMDEgUlNJOiAwMDAwMDAwMDAwMDAxMDAwIFJESTog MDAwMDAwMDAwMDAwMDAwMApbIDE0MjguODQ3MTczXSBSQlA6IDAwMDAwMDAwMDAwMDAwMDMgUjA4 OiAwMDAwMDAwMDAwMDAwMDAzIFIwOTogMDAwMDAwMDAwMDAwMDAwMApbIDE0MjguODQ3MTc2XSBS MTA6IDAwMDAwMDAwMDAwMDgwMDIgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAwMDAw MDAwMDAwMApbIDE0MjguODQ3MTc5XSBSMTM6IDAwMDAwMDAwMDAwMDEwMDAgUjE0OiAwMDAwMDAw MDAwMDA4MDAyIFIxNTogMDAwMDAwMDAwMDAwMDAwMAoKWyAxNDI4Ljg0NzI1Ml0gQWxsb2NhdGVk IGJ5IHRhc2sgMjY4MzoKWyAxNDI4Ljg0NzM3Ml0gIGthc2FuX2ttYWxsb2MrMHhhNi8weGQwClsg MTQyOC44NDczODBdICBrbWVtX2NhY2hlX2FsbG9jKzB4YzgvMHgxZTAKWyAxNDI4Ljg0NzM4NV0g IGdldG5hbWVfZmxhZ3MrMHg3My8weDJiMApbIDE0MjguODQ3MzkwXSAgdXNlcl9wYXRoX2F0X2Vt cHR5KzB4MWQvMHg0MApbIDE0MjguODQ3Mzk1XSAgdmZzX3N0YXR4KzB4YzEvMHgxNTAKWyAxNDI4 Ljg0NzQwMV0gIF9fZG9fc3lzX25ld2xzdGF0KzB4N2UvMHhkMApbIDE0MjguODQ3NDA1XSAgZG9f c3lzY2FsbF82NCsweDczLzB4MTYwClsgMTQyOC44NDc0MTFdICBlbnRyeV9TWVNDQUxMXzY0X2Fm dGVyX2h3ZnJhbWUrMHg0NC8weGE5CgpbIDE0MjguODQ3NDY2XSBGcmVlZCBieSB0YXNrIDI2ODM6 ClsgMTQyOC44NDc1NjZdICBfX2thc2FuX3NsYWJfZnJlZSsweDEzNy8weDE5MApbIDE0MjguODQ3 NTcxXSAga21lbV9jYWNoZV9mcmVlKzB4ODUvMHgxZTAKWyAxNDI4Ljg0NzU3NV0gIGZpbGVuYW1l X2xvb2t1cCsweDE5MS8weDI4MApbIDE0MjguODQ3NTgwXSAgdmZzX3N0YXR4KzB4YzEvMHgxNTAK WyAxNDI4Ljg0NzU4NV0gIF9fZG9fc3lzX25ld2xzdGF0KzB4N2UvMHhkMApbIDE0MjguODQ3NTkw XSAgZG9fc3lzY2FsbF82NCsweDczLzB4MTYwClsgMTQyOC44NDc1OTZdICBlbnRyeV9TWVNDQUxM XzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5CgpbIDE0MjguODQ3NjQ4XSBUaGUgYnVnZ3kgYWRk cmVzcyBiZWxvbmdzIHRvIHRoZSBvYmplY3QgYXQgZmZmZjg4MDE5NDQ4MzMwMAogICAgICAgICAg ICAgICAgd2hpY2ggYmVsb25ncyB0byB0aGUgY2FjaGUgbmFtZXNfY2FjaGUgb2Ygc2l6ZSA0MDk2 ClsgMTQyOC44NDc5NDZdIFRoZSBidWdneSBhZGRyZXNzIGlzIGxvY2F0ZWQgNTc2IGJ5dGVzIGlu c2lkZSBvZgogICAgICAgICAgICAgICAgNDA5Ni1ieXRlIHJlZ2lvbiBbZmZmZjg4MDE5NDQ4MzMw MCwgZmZmZjg4MDE5NDQ4NDMwMCkKWyAxNDI4Ljg0ODIzNF0gVGhlIGJ1Z2d5IGFkZHJlc3MgYmVs b25ncyB0byB0aGUgcGFnZToKWyAxNDI4Ljg0ODM2Nl0gcGFnZTpmZmZmZWEwMDA2NTEyMDAwIGNv dW50OjEgbWFwY291bnQ6MCBtYXBwaW5nOmZmZmY4ODAxZjM1ODYzODAgaW5kZXg6MHgwIGNvbXBv dW5kX21hcGNvdW50OiAwClsgMTQyOC44NDg2MDZdIGZsYWdzOiAweDE3ZmZmODAwMDAwODEwMChz bGFifGhlYWQpClsgMTQyOC44NDg3MzddIHJhdzogMDE3ZmZmODAwMDAwODEwMCBkZWFkMDAwMDAw MDAwMTAwIGRlYWQwMDAwMDAwMDAyMDAgZmZmZjg4MDFmMzU4NjM4MApbIDE0MjguODQ4OTMxXSBy YXc6IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDA3MDAwNyAwMDAwMDAwMWZmZmZmZmZmIDAw MDAwMDAwMDAwMDAwMDAKWyAxNDI4Ljg0OTEyMl0gcGFnZSBkdW1wZWQgYmVjYXVzZToga2FzYW46 IGJhZCBhY2Nlc3MgZGV0ZWN0ZWQKClsgMTQyOC44NDkzMDVdIE1lbW9yeSBzdGF0ZSBhcm91bmQg dGhlIGJ1Z2d5IGFkZHJlc3M6ClsgMTQyOC44NDk0MzZdICBmZmZmODgwMTk0NDgzNDAwOiBmYiBm YiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYgpbIDE0MjguODQ5NjIw XSAgZmZmZjg4MDE5NDQ4MzQ4MDogZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIg ZmIgZmIgZmIgZmIKWyAxNDI4Ljg0OTgwNF0gPmZmZmY4ODAxOTQ0ODM1MDA6IGZiIGZiIGZiIGZi IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiClsgMTQyOC44NDk5ODVdICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeClsgMTQyOC44NTAxMjBdICBm ZmZmODgwMTk0NDgzNTgwOiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBm YiBmYiBmYgpbIDE0MjguODUwMzAzXSAgZmZmZjg4MDE5NDQ4MzYwMDogZmIgZmIgZmIgZmIgZmIg ZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIKWyAxNDI4Ljg1MDQ5OF0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CgpSZXBvcnRlZC1ieTogV2VuIFh1IDx3ZW4ueHVAZ2F0ZWNoLmVkdT4KU2lnbmVkLW9mZi1ieTog Q2hhbyBZdSA8eXVjaGFvMEBodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYWVnZXVrIEtpbSA8 amFlZ2V1a0BrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBTYXNoYSBMZXZpbiA8YWxleGFuZGVy LmxldmluQG1pY3Jvc29mdC5jb20+ClNpZ25lZC1vZmYtYnk6IEdyZWcgS3JvYWgtSGFydG1hbiA8 Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+Cltid2g6IEJhY2twb3J0ZWQgdG8gNC40OiBhZGp1 c3QgY29udGV4dF0KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bj b2RldGhpbmsuY28udWs+Ci0tLQogZnMvZjJmcy9pbmxpbmUuYyB8IDIxICsrKysrKysrKysrKysr KysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9m cy9mMmZzL2lubGluZS5jIGIvZnMvZjJmcy9pbmxpbmUuYwppbmRleCAxMjNiNGRjOTBhMjMuLjAw Njg1YThiMTQxOCAxMDA2NDQKLS0tIGEvZnMvZjJmcy9pbmxpbmUuYworKysgYi9mcy9mMmZzL2lu bGluZS5jCkBAIC0xMjcsNiArMTI3LDE2IEBAIGludCBmMmZzX2NvbnZlcnRfaW5saW5lX3BhZ2Uo c3RydWN0IGRub2RlX29mX2RhdGEgKmRuLCBzdHJ1Y3QgcGFnZSAqcGFnZSkKIAlpZiAoZXJyKQog CQlyZXR1cm4gZXJyOwogCisJaWYgKHVubGlrZWx5KGRuLT5kYXRhX2Jsa2FkZHIgIT0gTkVXX0FE RFIpKSB7CisJCWYyZnNfcHV0X2Rub2RlKGRuKTsKKwkJc2V0X3NiaV9mbGFnKGZpby5zYmksIFNC SV9ORUVEX0ZTQ0spOworCQlmMmZzX21zZyhmaW8uc2JpLT5zYiwgS0VSTl9XQVJOSU5HLAorCQkJ IiVzOiBjb3JydXB0ZWQgaW5saW5lIGlub2RlIGlubz0lbHgsIGlfYWRkclswXToweCV4LCAiCisJ CQkicnVuIGZzY2sgdG8gZml4LiIsCisJCQlfX2Z1bmNfXywgZG4tPmlub2RlLT5pX2lubywgZG4t PmRhdGFfYmxrYWRkcik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwogCWYyZnNfd2FpdF9vbl9w YWdlX3dyaXRlYmFjayhwYWdlLCBEQVRBKTsKIAogCWlmIChQYWdlVXB0b2RhdGUocGFnZSkpCkBA IC0zODYsNiArMzk2LDE3IEBAIHN0YXRpYyBpbnQgZjJmc19tb3ZlX2lubGluZV9kaXJlbnRzKHN0 cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgcGFnZSAqaXBhZ2UsCiAJaWYgKGVycikKIAkJZ290byBv dXQ7CiAKKwlpZiAodW5saWtlbHkoZG4uZGF0YV9ibGthZGRyICE9IE5FV19BRERSKSkgeworCQlm MmZzX3B1dF9kbm9kZSgmZG4pOworCQlzZXRfc2JpX2ZsYWcoRjJGU19QX1NCKHBhZ2UpLCBTQklf TkVFRF9GU0NLKTsKKwkJZjJmc19tc2coRjJGU19QX1NCKHBhZ2UpLT5zYiwgS0VSTl9XQVJOSU5H LAorCQkJIiVzOiBjb3JydXB0ZWQgaW5saW5lIGlub2RlIGlubz0lbHgsIGlfYWRkclswXToweCV4 LCAiCisJCQkicnVuIGZzY2sgdG8gZml4LiIsCisJCQlfX2Z1bmNfXywgZGlyLT5pX2lubywgZG4u ZGF0YV9ibGthZGRyKTsKKwkJZXJyID0gLUVJTlZBTDsKKwkJZ290byBvdXQ7CisJfQorCiAJZjJm c193YWl0X29uX3BhZ2Vfd3JpdGViYWNrKHBhZ2UsIERBVEEpOwogCXplcm9fdXNlcl9zZWdtZW50 KHBhZ2UsIE1BWF9JTkxJTkVfREFUQSwgUEFHRV9DQUNIRV9TSVpFKTsKIAoKRnJvbSAyMmNjMmQy YmYyODg1ZTdkMjM5ZDQ1YWU2M2Q0NjM2ZjMyNWYwNmFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBDaGFvIFl1IDx5dWNoYW8wQGh1YXdlaS5jb20+CkRhdGU6IFdlZCwgMSBBdWcgMjAx OCAxOToxMzo0NCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzEvMzZdIGYyZnM6IGZpeCB0byBkbyBz YW5pdHkgY2hlY2sgd2l0aCBibG9jayBhZGRyZXNzIGluIG1haW4KIGFyZWEKCmNvbW1pdCBjOWI2 MDc4OGZjNzYwZDEzNjIxMTg1M2YxMGNlNzNkYzE1MmQxZjRhIHVwc3RyZWFtLgoKVGhpcyBwYXRj aCBhZGQgdG8gZG8gc2FuaXR5IGNoZWNrIHdpdGggYmVsb3cgZmllbGQ6Ci0gY3BfcGFja190b3Rh bF9ibG9ja19jb3VudAotIGJsa2FkZHIgb2YgZGF0YS9ub2RlCi0gZXh0ZW50IGluZm8KCi0gT3Zl cnZpZXcKQlVHKCkgaW4gdmVyaWZ5X2Jsb2NrX2FkZHIoKSB3aGVuIHdyaXRpbmcgdG8gYSBjb3Jy dXB0ZWQgZjJmcyBpbWFnZQoKLSBSZXByb2R1Y2UgKDQuMTggdXBzdHJlYW0ga2VybmVsKQoKLSBQ T0MgKHBvYy5jKQoKc3RhdGljIHZvaWQgYWN0aXZpdHkoY2hhciAqbXBvaW50KSB7CgogIGNoYXIg KmZvb19iYXJfYmF6OwogIGludCBlcnI7CgogIHN0YXRpYyBpbnQgYnVmWzgxOTJdOwogIG1lbXNl dChidWYsIDAsIHNpemVvZihidWYpKTsKCiAgZXJyID0gYXNwcmludGYoJmZvb19iYXJfYmF6LCAi JXMvZm9vL2Jhci9iYXoiLCBtcG9pbnQpOwoKICBpbnQgZmQgPSBvcGVuKGZvb19iYXJfYmF6LCBP X1JEV1IgfCBPX1RSVU5DLCAwNzc3KTsKICBpZiAoZmQgPj0gMCkgewogICAgd3JpdGUoZmQsIChj aGFyICopYnVmLCBzaXplb2YoYnVmKSk7CiAgICBmZGF0YXN5bmMoZmQpOwogICAgY2xvc2UoZmQp OwogIH0KfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewogIGFjdGl2aXR5KGFy Z3ZbMV0pOwogIHJldHVybiAwOwp9CgotIEtlcm5lbCBtZXNzYWdlClsgIDY4OS4zNDk0NzNdIEYy RlMtZnMgKGxvb3AwKTogTW91bnRlZCB3aXRoIGNoZWNrcG9pbnQgdmVyc2lvbiA9IDMKWyAgNjk5 LjcyODY2Ml0gV0FSTklORzogQ1BVOiAwIFBJRDogMTMwOSBhdCBmcy9mMmZzL3NlZ21lbnQuYzoy ODYwIGYyZnNfaW5wbGFjZV93cml0ZV9kYXRhKzB4MjMyLzB4MjQwClsgIDY5OS43Mjg2NzBdIE1v ZHVsZXMgbGlua2VkIGluOiBzbmRfaGRhX2NvZGVjX2dlbmVyaWMgc25kX2hkYV9pbnRlbCBzbmRf aGRhX2NvZGVjIHNuZF9od2RlcCBzbmRfaGRhX2NvcmUgc25kX3BjbSBzbmRfdGltZXIgc25kIG1h Y19oaWQgaTJjX3BpaXg0IHNvdW5kY29yZSBpYl9pc2VyIHJkbWFfY20gaXdfY20gaWJfY20gaWJf Y29yZSBpc2NzaV90Y3AgbGliaXNjc2lfdGNwIGxpYmlzY3NpIHNjc2lfdHJhbnNwb3J0X2lzY3Np IHJhaWQxMCByYWlkNDU2IGFzeW5jX3JhaWQ2X3JlY292IGFzeW5jX21lbWNweSBhc3luY19wcSBh c3luY194b3IgYXN5bmNfdHggcmFpZDEgcmFpZDAgbXVsdGlwYXRoIGxpbmVhciA4MTM5dG9vIGNy Y3QxMGRpZl9wY2xtdWwgY3JjMzJfcGNsbXVsIHF4bCBkcm1fa21zX2hlbHBlciBzeXNjb3B5YXJl YSBhZXNuaV9pbnRlbCBzeXNmaWxscmVjdCBzeXNpbWdibHQgZmJfc3lzX2ZvcHMgdHRtIGRybSBh ZXNfeDg2XzY0IGNyeXB0b19zaW1kIGNyeXB0ZCA4MTM5Y3AgZ2x1ZV9oZWxwZXIgbWlpIHBhdGFf YWNwaSBmbG9wcHkKWyAgNjk5LjcyOTA1Nl0gQ1BVOiAwIFBJRDogMTMwOSBDb21tOiBhLm91dCBO b3QgdGFpbnRlZCA0LjE4LjAtcmMxKyAjNApbICA2OTkuNzI5MDY0XSBIYXJkd2FyZSBuYW1lOiBR RU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyBVYnVudHUtMS44LjIt MXVidW50dTEgMDQvMDEvMjAxNApbICA2OTkuNzI5MDc0XSBSSVA6IDAwMTA6ZjJmc19pbnBsYWNl X3dyaXRlX2RhdGErMHgyMzIvMHgyNDAKWyAgNjk5LjcyOTA3Nl0gQ29kZTogZmYgZTkgY2YgZmUg ZmYgZmYgNDkgOGQgN2QgMTAgZTggMzkgNDUgYWQgZmYgNGQgOGIgN2QgMTAgYmUgMDQgMDAgMDAg MDAgNDkgOGQgN2YgNDggZTggMDcgNDkgYWQgZmYgNDUgOGIgN2YgNDggZTkgZmIgZmUgZmYgZmYg PDBmPiAwYiBmMCA0MSA4MCA0ZCA0OCAwNCBlOSA2NSBmZSBmZiBmZiA5MCA2NiA2NiA2NiA2NiA5 MCA1NSA0OCA4ZApbICA2OTkuNzI5MTMwXSBSU1A6IDAwMTg6ZmZmZjg4MDFmNDNhZjU2OCBFRkxB R1M6IDAwMDEwMjAyClsgIDY5OS43MjkxMzldIFJBWDogMDAwMDAwMDAwMDAwMDAzZiBSQlg6IGZm ZmY4ODAxZjQzYWY3YjggUkNYOiBmZmZmZmZmZmI4OGM5MTEzClsgIDY5OS43MjkxNDJdIFJEWDog MDAwMDAwMDAwMDAwMDAwMyBSU0k6IGRmZmZmYzAwMDAwMDAwMDAgUkRJOiBmZmZmODgwMjAyNGU1 NTQwClsgIDY5OS43MjkxNDRdIFJCUDogZmZmZjg4MDFmNDNhZjU5MCBSMDg6IDAwMDAwMDAwMDAw MDAwMDkgUjA5OiBmZmZmZmZmZmZmZmZmZmU4ClsgIDY5OS43MjkxNDddIFIxMDogMDAwMDAwMDAw MDAwMDAwMSBSMTE6IGZmZmZlZDAwMzliMDU5NmEgUjEyOiBmZmZmODgwMjAyNGU1NTQwClsgIDY5 OS43MjkxNDldIFIxMzogZmZmZjg4MDFmMDMzNTUwMCBSMTQ6IGZmZmY4ODAxZTNlN2E3MDAgUjE1 OiBmZmZmODgwMWUxZWU0NDUwClsgIDY5OS43MjkxNTRdIEZTOiAgMDAwMDdmOWJmOTdmNTcwMCgw MDAwKSBHUzpmZmZmODgwMWY2ZTAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAg Njk5LjcyOTE1Nl0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1 MDAzMwpbICA2OTkuNzI5MTU5XSBDUjI6IDAwMDA3ZjliZjkyNWQxNzAgQ1IzOiAwMDAwMDAwMWYw YzM0MDAwIENSNDogMDAwMDAwMDAwMDAwMDZmMApbICA2OTkuNzI5MTcxXSBDYWxsIFRyYWNlOgpb ICA2OTkuNzI5MTkyXSAgZjJmc19kb193cml0ZV9kYXRhX3BhZ2UrMHgyZTIvMHhlMDAKWyAgNjk5 LjcyOTIwM10gID8gZjJmc19zaG91bGRfdXBkYXRlX291dHBsYWNlKzB4ZDAvMHhkMApbICA2OTku NzI5MjM4XSAgPyBtZW1jZ19kcmFpbl9hbGxfbGlzdF9scnVzKzB4MjgwLzB4MjgwClsgIDY5OS43 MjkyNjldICA/IF9fcmFkaXhfdHJlZV9yZXBsYWNlKzB4YTMvMHgxMjAKWyAgNjk5LjcyOTI3Nl0g IF9fd3JpdGVfZGF0YV9wYWdlKzB4NWM3LzB4ZTMwClsgIDY5OS43MjkyOTFdICA/IGthc2FuX2No ZWNrX3JlYWQrMHgxMS8weDIwClsgIDY5OS43MjkzMTBdICA/IHBhZ2VfbWFwcGVkKzB4OGEvMHgx MTAKWyAgNjk5LjcyOTMyMV0gID8gcGFnZV9ta2NsZWFuKzB4ZTkvMHgxNjAKWyAgNjk5LjcyOTMy N10gID8gZjJmc19kb193cml0ZV9kYXRhX3BhZ2UrMHhlMDAvMHhlMDAKWyAgNjk5LjcyOTMzMV0g ID8gaW52YWxpZF9wYWdlX3JlZmVyZW5jZWRfdm1hKzB4MTMwLzB4MTMwClsgIDY5OS43MjkzNDVd ICA/IGNsZWFyX3BhZ2VfZGlydHlfZm9yX2lvKzB4MzMyLzB4NDUwClsgIDY5OS43MjkzNTFdICBm MmZzX3dyaXRlX2NhY2hlX3BhZ2VzKzB4NGNhLzB4ODYwClsgIDY5OS43MjkzNThdICA/IF9fd3Jp dGVfZGF0YV9wYWdlKzB4ZTMwLzB4ZTMwClsgIDY5OS43MjkzNzRdICA/IHBlcmNwdV9jb3VudGVy X2FkZF9iYXRjaCsweDIyLzB4YTAKWyAgNjk5LjcyOTM4MF0gID8ga2FzYW5fY2hlY2tfd3JpdGUr MHgxNC8weDIwClsgIDY5OS43MjkzOTFdICA/IF9yYXdfc3Bpbl9sb2NrKzB4MTcvMHg0MApbICA2 OTkuNzI5NDAzXSAgPyBmMmZzX21hcmtfaW5vZGVfZGlydHlfc3luYy5wYXJ0LjE4KzB4MTYvMHgz MApbICA2OTkuNzI5NDEzXSAgPyBpb3ZfaXRlcl9hZHZhbmNlKzB4MTEzLzB4NjQwClsgIDY5OS43 Mjk0MThdICA/IGYyZnNfd3JpdGVfZW5kKzB4MTMzLzB4MmUwClsgIDY5OS43Mjk0MjNdICA/IGJh bGFuY2VfZGlydHlfcGFnZXNfcmF0ZWxpbWl0ZWQrMHgyMzkvMHg2NDAKWyAgNjk5LjcyOTQyOF0g IGYyZnNfd3JpdGVfZGF0YV9wYWdlcysweDMyOS8weDUyMApbICA2OTkuNzI5NDMzXSAgPyBnZW5l cmljX3BlcmZvcm1fd3JpdGUrMHgyNTAvMHgzMjAKWyAgNjk5LjcyOTQzOF0gID8gZjJmc193cml0 ZV9jYWNoZV9wYWdlcysweDg2MC8weDg2MApbICA2OTkuNzI5NDU0XSAgPyBjdXJyZW50X3RpbWUr MHgxMTAvMHgxMTAKWyAgNjk5LjcyOTQ1OV0gID8gZjJmc19wcmVhbGxvY2F0ZV9ibG9ja3MrMHgx ZWYvMHgzNzAKWyAgNjk5LjcyOTQ2NF0gIGRvX3dyaXRlcGFnZXMrMHgzNy8weGIwClsgIDY5OS43 Mjk0NjhdICA/IGYyZnNfd3JpdGVfY2FjaGVfcGFnZXMrMHg4NjAvMHg4NjAKWyAgNjk5LjcyOTQ3 Ml0gID8gZG9fd3JpdGVwYWdlcysweDM3LzB4YjAKWyAgNjk5LjcyOTQ3OF0gIF9fZmlsZW1hcF9m ZGF0YXdyaXRlX3JhbmdlKzB4MTlhLzB4MWYwClsgIDY5OS43Mjk0ODNdICA/IGRlbGV0ZV9mcm9t X3BhZ2VfY2FjaGVfYmF0Y2grMHg0ZTAvMHg0ZTAKWyAgNjk5LjcyOTQ5Nl0gID8gX192ZnNfd3Jp dGUrMHgyYjIvMHg0MTAKWyAgNjk5LjcyOTUwMV0gIGZpbGVfd3JpdGVfYW5kX3dhaXRfcmFuZ2Ur MHg2Ni8weGIwClsgIDY5OS43Mjk1MDZdICBmMmZzX2RvX3N5bmNfZmlsZSsweDFmOS8weGQ5MApb ICA2OTkuNzI5NTExXSAgPyB0cnVuY2F0ZV9wYXJ0aWFsX2RhdGFfcGFnZSsweDI5MC8weDI5MApb ICA2OTkuNzI5NTIxXSAgPyBfX3NiX2VuZF93cml0ZSsweDMwLzB4NTAKWyAgNjk5LjcyOTUyNl0g ID8gdmZzX3dyaXRlKzB4MjBmLzB4MjYwClsgIDY5OS43Mjk1MzBdICBmMmZzX3N5bmNfZmlsZSsw eDlhLzB4YjAKWyAgNjk5LjcyOTUzNF0gID8gZjJmc19kb19zeW5jX2ZpbGUrMHhkOTAvMHhkOTAK WyAgNjk5LjcyOTU0OF0gIHZmc19mc3luY19yYW5nZSsweDY4LzB4MTAwClsgIDY5OS43Mjk1NTRd ICA/IF9fZmdldF9saWdodCsweGM5LzB4ZTAKWyAgNjk5LjcyOTU1OF0gIGRvX2ZzeW5jKzB4M2Qv MHg3MApbICA2OTkuNzI5NTYyXSAgX194NjRfc3lzX2ZkYXRhc3luYysweDI0LzB4MzAKWyAgNjk5 LjcyOTU4NV0gIGRvX3N5c2NhbGxfNjQrMHg3OC8weDE3MApbICA2OTkuNzI5NTk1XSAgZW50cnlf U1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQpbICA2OTkuNzI5NjEzXSBSSVA6IDAw MzM6MHg3ZjliZjkzMGQ4MDAKWyAgNjk5LjcyOTYxNV0gQ29kZTogMDAgZjcgZDggNjQgODkgMDEg NDggODMgYzggZmYgYzMgNjYgMmUgMGYgMWYgODQgMDAgMDAgMDAgMDAgMDAgMGYgMWYgNDQgMDAg MDAgODMgM2QgNDkgYmYgMmMgMDAgMDAgNzUgMTAgYjggNGIgMDAgMDAgMDAgMGYgMDUgPDQ4PiAz ZCAwMSBmMCBmZiBmZiA3MyAzMSBjMyA0OCA4MyBlYyAwOCBlOCBiZSA3OCAwMSAwMCA0OCA4OSAw NCAyNApbICA2OTkuNzI5NjY4XSBSU1A6IDAwMmI6MDAwMDdmZmVlMzYwNmM2OCBFRkxBR1M6IDAw MDAwMjQ2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMDRiClsgIDY5OS43Mjk2NzNdIFJBWDogZmZm ZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDAwMDAwMDAgUkNYOiAwMDAwN2Y5YmY5MzBkODAw ClsgIDY5OS43Mjk2NzVdIFJEWDogMDAwMDAwMDAwMDAwODAwMCBSU0k6IDAwMDAwMDAwMDA2MDEw YTAgUkRJOiAwMDAwMDAwMDAwMDAwMDAzClsgIDY5OS43Mjk2NzhdIFJCUDogMDAwMDdmZmVlMzYw NmNhMCBSMDg6IDAwMDAwMDAwMDE1MDMwMTAgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClsgIDY5OS43 Mjk2ODBdIFIxMDogMDAwMDAwMDAwMDAwMDJlOCBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAw MDAwMDAwMDAwNDAwNjEwClsgIDY5OS43Mjk2ODNdIFIxMzogMDAwMDdmZmVlMzYwNmRhMCBSMTQ6 IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiAwMDAwMDAwMDAwMDAwMDAwClsgIDY5OS43Mjk2ODddIC0t LVsgZW5kIHRyYWNlIDRjZTAyZjI1ZmY3ZDNkZjUgXS0tLQpbICA2OTkuNzI5NzgyXSAtLS0tLS0t LS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0KWyAgNjk5LjcyOTc4NV0ga2VybmVsIEJVRyBh dCBmcy9mMmZzL3NlZ21lbnQuaDo2NTQhClsgIDY5OS43MzEwNTVdIGludmFsaWQgb3Bjb2RlOiAw MDAwIFsjMV0gU01QIEtBU0FOIFBUSQpbICA2OTkuNzMyMTA0XSBDUFU6IDAgUElEOiAxMzA5IENv bW06IGEub3V0IFRhaW50ZWQ6IEcgICAgICAgIFcgICAgICAgICA0LjE4LjAtcmMxKyAjNApbICA2 OTkuNzMzNjg0XSBIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlY LCAxOTk2KSwgQklPUyBVYnVudHUtMS44LjItMXVidW50dTEgMDQvMDEvMjAxNApbICA2OTkuNzM1 NjExXSBSSVA6IDAwMTA6ZjJmc19zdWJtaXRfcGFnZV9iaW8rMHgyOWIvMHg3MzAKWyAgNjk5Ljcz NjY0OV0gQ29kZTogNTQgNDkgOGQgYmQgMTggMDQgMDAgMDAgZTggYjIgNTkgYWYgZmYgNDEgOGIg OGQgMTggMDQgMDAgMDAgOGIgNDUgYjggNDEgZDMgZTYgNDQgMDEgZjAgNGMgOGQgNzMgMTQgNDEg MzkgYzcgMGYgODIgMzcgZmUgZmYgZmYgPDBmPiAwYiA2NSA4YiAwNSAyYyAwNCA3NyA0NyA4OSBj MCA0OCAwZiBhMyAwNSA1MiBjMSBkNSAwMSAwZiA5MiBjMApbICA2OTkuNzQwNTI0XSBSU1A6IDAw MTg6ZmZmZjg4MDFmNDNhZjUwOCBFRkxBR1M6IDAwMDEwMjgzClsgIDY5OS43NDE1NzNdIFJBWDog MDAwMDAwMDAwMDAwMDAwMCBSQlg6IGZmZmY4ODAxZjQzYWY3YjggUkNYOiBmZmZmZmZmZmI4OGE3 Y2VmClsgIDY5OS43NDMwMDZdIFJEWDogMDAwMDAwMDAwMDAwMDAwNyBSU0k6IGRmZmZmYzAwMDAw MDAwMDAgUkRJOiBmZmZmODgwMWUzZTdhNjRjClsgIDY5OS43NDQ0MjZdIFJCUDogZmZmZjg4MDFm NDNhZjU1OCBSMDg6IGZmZmZlZDAwM2UwNjZiNTUgUjA5OiBmZmZmZWQwMDNlMDY2YjU1ClsgIDY5 OS43NDU4MzNdIFIxMDogMDAwMDAwMDAwMDAwMDAwMSBSMTE6IGZmZmZlZDAwM2UwNjZiNTQgUjEy OiBmZmZmZWEwMDA3ODc2OTQwClsgIDY5OS43NDcyNTZdIFIxMzogZmZmZjg4MDFmMDMzNTUwMCBS MTQ6IGZmZmY4ODAxZTNlN2E2MDAgUjE1OiAwMDAwMDAwMDAwMDAwMDAxClsgIDY5OS43NDg2ODNd IEZTOiAgMDAwMDdmOWJmOTdmNTcwMCgwMDAwKSBHUzpmZmZmODgwMWY2ZTAwMDAwKDAwMDApIGtu bEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgNjk5Ljc1MDI5M10gQ1M6ICAwMDEwIERTOiAwMDAwIEVT OiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbICA2OTkuNzUxNDYyXSBDUjI6IDAwMDA3Zjli ZjkyNWQxNzAgQ1IzOiAwMDAwMDAwMWYwYzM0MDAwIENSNDogMDAwMDAwMDAwMDAwMDZmMApbICA2 OTkuNzUyODc0XSBDYWxsIFRyYWNlOgpbICA2OTkuNzUzMzg2XSAgPyBmMmZzX2lucGxhY2Vfd3Jp dGVfZGF0YSsweDkzLzB4MjQwClsgIDY5OS43NTQzNDFdICBmMmZzX2lucGxhY2Vfd3JpdGVfZGF0 YSsweGQyLzB4MjQwClsgIDY5OS43NTUyNzFdICBmMmZzX2RvX3dyaXRlX2RhdGFfcGFnZSsweDJl Mi8weGUwMApbICA2OTkuNzU2MjE0XSAgPyBmMmZzX3Nob3VsZF91cGRhdGVfb3V0cGxhY2UrMHhk MC8weGQwClsgIDY5OS43NTcyMTVdICA/IG1lbWNnX2RyYWluX2FsbF9saXN0X2xydXMrMHgyODAv MHgyODAKWyAgNjk5Ljc1ODIwOV0gID8gX19yYWRpeF90cmVlX3JlcGxhY2UrMHhhMy8weDEyMApb ICA2OTkuNzU5MTY0XSAgX193cml0ZV9kYXRhX3BhZ2UrMHg1YzcvMHhlMzAKWyAgNjk5Ljc2MDAw Ml0gID8ga2FzYW5fY2hlY2tfcmVhZCsweDExLzB4MjAKWyAgNjk5Ljc2MDgyM10gID8gcGFnZV9t YXBwZWQrMHg4YS8weDExMApbICA2OTkuNzYxNTczXSAgPyBwYWdlX21rY2xlYW4rMHhlOS8weDE2 MApbICA2OTkuNzYyMzQ1XSAgPyBmMmZzX2RvX3dyaXRlX2RhdGFfcGFnZSsweGUwMC8weGUwMApb ICA2OTkuNzYzMzMyXSAgPyBpbnZhbGlkX3BhZ2VfcmVmZXJlbmNlZF92bWErMHgxMzAvMHgxMzAK WyAgNjk5Ljc2NDM3NF0gID8gY2xlYXJfcGFnZV9kaXJ0eV9mb3JfaW8rMHgzMzIvMHg0NTAKWyAg Njk5Ljc2NTM0N10gIGYyZnNfd3JpdGVfY2FjaGVfcGFnZXMrMHg0Y2EvMHg4NjAKWyAgNjk5Ljc2 NjI3Nl0gID8gX193cml0ZV9kYXRhX3BhZ2UrMHhlMzAvMHhlMzAKWyAgNjk5Ljc2NzE2MV0gID8g cGVyY3B1X2NvdW50ZXJfYWRkX2JhdGNoKzB4MjIvMHhhMApbICA2OTkuNzY4MTEyXSAgPyBrYXNh bl9jaGVja193cml0ZSsweDE0LzB4MjAKWyAgNjk5Ljc2ODk1MV0gID8gX3Jhd19zcGluX2xvY2sr MHgxNy8weDQwClsgIDY5OS43Njk3MzldICA/IGYyZnNfbWFya19pbm9kZV9kaXJ0eV9zeW5jLnBh cnQuMTgrMHgxNi8weDMwClsgIDY5OS43NzA4ODVdICA/IGlvdl9pdGVyX2FkdmFuY2UrMHgxMTMv MHg2NDAKWyAgNjk5Ljc3MTc0M10gID8gZjJmc193cml0ZV9lbmQrMHgxMzMvMHgyZTAKWyAgNjk5 Ljc3MjU2OV0gID8gYmFsYW5jZV9kaXJ0eV9wYWdlc19yYXRlbGltaXRlZCsweDIzOS8weDY0MApb ICA2OTkuNzczNjgwXSAgZjJmc193cml0ZV9kYXRhX3BhZ2VzKzB4MzI5LzB4NTIwClsgIDY5OS43 NzQ2MDNdICA/IGdlbmVyaWNfcGVyZm9ybV93cml0ZSsweDI1MC8weDMyMApbICA2OTkuNzc1NTQ0 XSAgPyBmMmZzX3dyaXRlX2NhY2hlX3BhZ2VzKzB4ODYwLzB4ODYwClsgIDY5OS43NzY1MTBdICA/ IGN1cnJlbnRfdGltZSsweDExMC8weDExMApbICA2OTkuNzc3Mjk5XSAgPyBmMmZzX3ByZWFsbG9j YXRlX2Jsb2NrcysweDFlZi8weDM3MApbICA2OTkuNzc4Mjc5XSAgZG9fd3JpdGVwYWdlcysweDM3 LzB4YjAKWyAgNjk5Ljc3OTAyNl0gID8gZjJmc193cml0ZV9jYWNoZV9wYWdlcysweDg2MC8weDg2 MApbICA2OTkuNzc5OTc4XSAgPyBkb193cml0ZXBhZ2VzKzB4MzcvMHhiMApbICA2OTkuNzgwNzU1 XSAgX19maWxlbWFwX2ZkYXRhd3JpdGVfcmFuZ2UrMHgxOWEvMHgxZjAKWyAgNjk5Ljc4MTc0Nl0g ID8gZGVsZXRlX2Zyb21fcGFnZV9jYWNoZV9iYXRjaCsweDRlMC8weDRlMApbICA2OTkuNzgyODIw XSAgPyBfX3Zmc193cml0ZSsweDJiMi8weDQxMApbICA2OTkuNzgzNTk3XSAgZmlsZV93cml0ZV9h bmRfd2FpdF9yYW5nZSsweDY2LzB4YjAKWyAgNjk5Ljc4NDU0MF0gIGYyZnNfZG9fc3luY19maWxl KzB4MWY5LzB4ZDkwClsgIDY5OS43ODUzODFdICA/IHRydW5jYXRlX3BhcnRpYWxfZGF0YV9wYWdl KzB4MjkwLzB4MjkwClsgIDY5OS43ODY0MTVdICA/IF9fc2JfZW5kX3dyaXRlKzB4MzAvMHg1MApb ICA2OTkuNzg3MjA0XSAgPyB2ZnNfd3JpdGUrMHgyMGYvMHgyNjAKWyAgNjk5Ljc4Nzk0MV0gIGYy ZnNfc3luY19maWxlKzB4OWEvMHhiMApbICA2OTkuNzg4Njk0XSAgPyBmMmZzX2RvX3N5bmNfZmls ZSsweGQ5MC8weGQ5MApbICA2OTkuNzg5NTcyXSAgdmZzX2ZzeW5jX3JhbmdlKzB4NjgvMHgxMDAK WyAgNjk5Ljc5MDM2MF0gID8gX19mZ2V0X2xpZ2h0KzB4YzkvMHhlMApbICA2OTkuNzkxMTI4XSAg ZG9fZnN5bmMrMHgzZC8weDcwClsgIDY5OS43OTE3NzldICBfX3g2NF9zeXNfZmRhdGFzeW5jKzB4 MjQvMHgzMApbICA2OTkuNzkyNjE0XSAgZG9fc3lzY2FsbF82NCsweDc4LzB4MTcwClsgIDY5OS43 OTMzNzFdICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5ClsgIDY5OS43 OTQ0MDZdIFJJUDogMDAzMzoweDdmOWJmOTMwZDgwMApbICA2OTkuNzk1MTM0XSBDb2RlOiAwMCBm NyBkOCA2NCA4OSAwMSA0OCA4MyBjOCBmZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAwMCAwMCAw MCAwZiAxZiA0NCAwMCAwMCA4MyAzZCA0OSBiZiAyYyAwMCAwMCA3NSAxMCBiOCA0YiAwMCAwMCAw MCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZmIDczIDMxIGMzIDQ4IDgzIGVjIDA4IGU4IGJlIDc4 IDAxIDAwIDQ4IDg5IDA0IDI0ClsgIDY5OS43OTg5NjBdIFJTUDogMDAyYjowMDAwN2ZmZWUzNjA2 YzY4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwNGIKWyAgNjk5Ljgw MDQ4M10gUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDAwMDAwMCBSQ1g6IDAw MDA3ZjliZjkzMGQ4MDAKWyAgNjk5LjgwMTkyM10gUkRYOiAwMDAwMDAwMDAwMDA4MDAwIFJTSTog MDAwMDAwMDAwMDYwMTBhMCBSREk6IDAwMDAwMDAwMDAwMDAwMDMKWyAgNjk5LjgwMzM3M10gUkJQ OiAwMDAwN2ZmZWUzNjA2Y2EwIFIwODogMDAwMDAwMDAwMTUwMzAxMCBSMDk6IDAwMDAwMDAwMDAw MDAwMDAKWyAgNjk5LjgwNDc5OF0gUjEwOiAwMDAwMDAwMDAwMDAwMmU4IFIxMTogMDAwMDAwMDAw MDAwMDI0NiBSMTI6IDAwMDAwMDAwMDA0MDA2MTAKWyAgNjk5LjgwNjIzM10gUjEzOiAwMDAwN2Zm ZWUzNjA2ZGEwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKWyAg Njk5LjgwNzY2N10gTW9kdWxlcyBsaW5rZWQgaW46IHNuZF9oZGFfY29kZWNfZ2VuZXJpYyBzbmRf aGRhX2ludGVsIHNuZF9oZGFfY29kZWMgc25kX2h3ZGVwIHNuZF9oZGFfY29yZSBzbmRfcGNtIHNu ZF90aW1lciBzbmQgbWFjX2hpZCBpMmNfcGlpeDQgc291bmRjb3JlIGliX2lzZXIgcmRtYV9jbSBp d19jbSBpYl9jbSBpYl9jb3JlIGlzY3NpX3RjcCBsaWJpc2NzaV90Y3AgbGliaXNjc2kgc2NzaV90 cmFuc3BvcnRfaXNjc2kgcmFpZDEwIHJhaWQ0NTYgYXN5bmNfcmFpZDZfcmVjb3YgYXN5bmNfbWVt Y3B5IGFzeW5jX3BxIGFzeW5jX3hvciBhc3luY190eCByYWlkMSByYWlkMCBtdWx0aXBhdGggbGlu ZWFyIDgxMzl0b28gY3JjdDEwZGlmX3BjbG11bCBjcmMzMl9wY2xtdWwgcXhsIGRybV9rbXNfaGVs cGVyIHN5c2NvcHlhcmVhIGFlc25pX2ludGVsIHN5c2ZpbGxyZWN0IHN5c2ltZ2JsdCBmYl9zeXNf Zm9wcyB0dG0gZHJtIGFlc194ODZfNjQgY3J5cHRvX3NpbWQgY3J5cHRkIDgxMzljcCBnbHVlX2hl bHBlciBtaWkgcGF0YV9hY3BpIGZsb3BweQpbICA2OTkuODE3MDc5XSAtLS1bIGVuZCB0cmFjZSA0 Y2UwMmYyNWZmN2QzZGY2IF0tLS0KWyAgNjk5LjgxODA2OF0gUklQOiAwMDEwOmYyZnNfc3VibWl0 X3BhZ2VfYmlvKzB4MjliLzB4NzMwClsgIDY5OS44MTkxMTRdIENvZGU6IDU0IDQ5IDhkIGJkIDE4 IDA0IDAwIDAwIGU4IGIyIDU5IGFmIGZmIDQxIDhiIDhkIDE4IDA0IDAwIDAwIDhiIDQ1IGI4IDQx IGQzIGU2IDQ0IDAxIGYwIDRjIDhkIDczIDE0IDQxIDM5IGM3IDBmIDgyIDM3IGZlIGZmIGZmIDww Zj4gMGIgNjUgOGIgMDUgMmMgMDQgNzcgNDcgODkgYzAgNDggMGYgYTMgMDUgNTIgYzEgZDUgMDEg MGYgOTIgYzAKWyAgNjk5LjgyMjkxOV0gUlNQOiAwMDE4OmZmZmY4ODAxZjQzYWY1MDggRUZMQUdT OiAwMDAxMDI4MwpbICA2OTkuODIzOTc3XSBSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZm ODgwMWY0M2FmN2I4IFJDWDogZmZmZmZmZmZiODhhN2NlZgpbICA2OTkuODI1NDM2XSBSRFg6IDAw MDAwMDAwMDAwMDAwMDcgUlNJOiBkZmZmZmMwMDAwMDAwMDAwIFJESTogZmZmZjg4MDFlM2U3YTY0 YwpbICA2OTkuODI2ODgxXSBSQlA6IGZmZmY4ODAxZjQzYWY1NTggUjA4OiBmZmZmZWQwMDNlMDY2 YjU1IFIwOTogZmZmZmVkMDAzZTA2NmI1NQpbICA2OTkuODI4MjkyXSBSMTA6IDAwMDAwMDAwMDAw MDAwMDEgUjExOiBmZmZmZWQwMDNlMDY2YjU0IFIxMjogZmZmZmVhMDAwNzg3Njk0MApbICA2OTku ODI5NzUwXSBSMTM6IGZmZmY4ODAxZjAzMzU1MDAgUjE0OiBmZmZmODgwMWUzZTdhNjAwIFIxNTog MDAwMDAwMDAwMDAwMDAwMQpbICA2OTkuODMxMTkyXSBGUzogIDAwMDA3ZjliZjk3ZjU3MDAoMDAw MCkgR1M6ZmZmZjg4MDFmNmUwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwClsgIDY5 OS44MzI3OTNdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAw MzMKWyAgNjk5LjgzMzk4MV0gQ1IyOiAwMDAwN2Y5YmY5MjVkMTcwIENSMzogMDAwMDAwMDFmMGMz NDAwMCBDUjQ6IDAwMDAwMDAwMDAwMDA2ZjAKWyAgNjk5LjgzNTU1Nl0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClsgIDY5 OS44MzcwMjldIEJVRzogS0FTQU46IHN0YWNrLW91dC1vZi1ib3VuZHMgaW4gdXBkYXRlX3N0YWNr X3N0YXRlKzB4MzhjLzB4M2UwClsgIDY5OS44Mzg0NjJdIFJlYWQgb2Ygc2l6ZSA4IGF0IGFkZHIg ZmZmZjg4MDFmNDNhZjk3MCBieSB0YXNrIGEub3V0LzEzMDkKClsgIDY5OS44NDAwODZdIENQVTog MCBQSUQ6IDEzMDkgQ29tbTogYS5vdXQgVGFpbnRlZDogRyAgICAgIEQgVyAgICAgICAgIDQuMTgu MC1yYzErICM0ClsgIDY5OS44NDE2MDNdIEhhcmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMg KGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIFVidW50dS0xLjguMi0xdWJ1bnR1MSAwNC8wMS8y MDE0ClsgIDY5OS44NDM0NzVdIENhbGwgVHJhY2U6ClsgIDY5OS44NDM5ODJdICBkdW1wX3N0YWNr KzB4N2IvMHhiNQpbICA2OTkuODQ0NjYxXSAgcHJpbnRfYWRkcmVzc19kZXNjcmlwdGlvbisweDcw LzB4MjkwClsgIDY5OS44NDU2MDddICBrYXNhbl9yZXBvcnQrMHgyOTEvMHgzOTAKWyAgNjk5Ljg0 NjM1MV0gID8gdXBkYXRlX3N0YWNrX3N0YXRlKzB4MzhjLzB4M2UwClsgIDY5OS44NTM4MzFdICBf X2FzYW5fbG9hZDgrMHg1NC8weDkwClsgIDY5OS44NTQ1NjldICB1cGRhdGVfc3RhY2tfc3RhdGUr MHgzOGMvMHgzZTAKWyAgNjk5Ljg1NTQyOF0gID8gX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrLmNv bnN0cHJvcC43KzB4MjAvMHgyMApbICA2OTkuODU2NjAxXSAgPyBfX3NhdmVfc3RhY2tfdHJhY2Ur MHg1ZS8weDEwMApbICA2OTkuODU3NDc2XSAgdW53aW5kX25leHRfZnJhbWUucGFydC41KzB4MThl LzB4NDkwClsgIDY5OS44NTg0NDhdICA/IHVud2luZF9kdW1wKzB4MjkwLzB4MjkwClsgIDY5OS44 NTkyMTddICA/IGNsZWFyX3BhZ2VfZGlydHlfZm9yX2lvKzB4MzMyLzB4NDUwClsgIDY5OS44NjAx ODVdICBfX3Vud2luZF9zdGFydCsweDEwNi8weDE5MApbICA2OTkuODYwOTc0XSAgX19zYXZlX3N0 YWNrX3RyYWNlKzB4NWUvMHgxMDAKWyAgNjk5Ljg2MTgwOF0gID8gX19zYXZlX3N0YWNrX3RyYWNl KzB4NWUvMHgxMDAKWyAgNjk5Ljg2MjY5MV0gID8gdW5saW5rX2Fub25fdm1hcysweGJhLzB4MmMw ClsgIDY5OS44NjM1MjVdICBzYXZlX3N0YWNrX3RyYWNlKzB4MWYvMHgzMApbICA2OTkuODY0MzEy XSAgc2F2ZV9zdGFjaysweDQ2LzB4ZDAKWyAgNjk5Ljg2NDk5M10gID8gX19hbGxvY19wYWdlc19z bG93cGF0aCsweDE0MjAvMHgxNDIwClsgIDY5OS44NjU5OTBdICA/IGZsdXNoX3RsYl9tbV9yYW5n ZSsweDE1ZS8weDIyMApbICA2OTkuODY2ODg5XSAgPyBrYXNhbl9jaGVja193cml0ZSsweDE0LzB4 MjAKWyAgNjk5Ljg2NzcyNF0gID8gX19kZWNfbm9kZV9zdGF0ZSsweDkyLzB4YjAKWyAgNjk5Ljg2 ODU0M10gID8gbG9ja19wYWdlX21lbWNnKzB4ODUvMHhmMApbICA2OTkuODY5MzUwXSAgPyB1bmxv Y2tfcGFnZV9tZW1jZysweDE2LzB4ODAKWyAgNjk5Ljg3MDE4NV0gID8gcGFnZV9yZW1vdmVfcm1h cCsweDE5OC8weDUyMApbICA2OTkuODcxMDQ4XSAgPyBtYXJrX3BhZ2VfYWNjZXNzZWQrMHgxMzMv MHgyMDAKWyAgNjk5Ljg3MTkzMF0gID8gX2NvbmRfcmVzY2hlZCsweDFhLzB4NTAKWyAgNjk5Ljg3 MjcwMF0gID8gdW5tYXBfcGFnZV9yYW5nZSsweGNkNC8weGU1MApbICA2OTkuODczNTUxXSAgPyBy Yl9uZXh0KzB4NTgvMHg4MApbICA2OTkuODc0MjE3XSAgPyByYl9uZXh0KzB4NTgvMHg4MApbICA2 OTkuODc0ODk1XSAgX19rYXNhbl9zbGFiX2ZyZWUrMHgxM2MvMHgxYTAKWyAgNjk5Ljg3NTczNF0g ID8gdW5saW5rX2Fub25fdm1hcysweGJhLzB4MmMwClsgIDY5OS44NzY1NjNdICBrYXNhbl9zbGFi X2ZyZWUrMHhlLzB4MTAKWyAgNjk5Ljg3NzMxNV0gIGttZW1fY2FjaGVfZnJlZSsweDg5LzB4MWUw ClsgIDY5OS44NzgwOTVdICB1bmxpbmtfYW5vbl92bWFzKzB4YmEvMHgyYzAKWyAgNjk5Ljg3ODkx M10gIGZyZWVfcGd0YWJsZXMrMHgxMDEvMHgxYjAKWyAgNjk5Ljg3OTY3N10gIGV4aXRfbW1hcCsw eDE0Ni8weDJhMApbICA2OTkuODgwMzc4XSAgPyBfX2lhMzJfc3lzX211bm1hcCsweDUwLzB4NTAK WyAgNjk5Ljg4MTIxNF0gID8ga2FzYW5fY2hlY2tfcmVhZCsweDExLzB4MjAKWyAgNjk5Ljg4MjA1 Ml0gID8gbW1fdXBkYXRlX25leHRfb3duZXIrMHgzMjIvMHgzODAKWyAgNjk5Ljg4Mjk4NV0gIG1t cHV0KzB4OGIvMHgxZDAKWyAgNjk5Ljg4MzYwMl0gIGRvX2V4aXQrMHg0M2EvMHgxMzkwClsgIDY5 OS44ODQyODhdICA/IG1tX3VwZGF0ZV9uZXh0X293bmVyKzB4MzgwLzB4MzgwClsgIDY5OS44ODUy MTJdICA/IGYyZnNfc3luY19maWxlKzB4OWEvMHhiMApbICA2OTkuODg1OTk1XSAgPyBmMmZzX2Rv X3N5bmNfZmlsZSsweGQ5MC8weGQ5MApbICA2OTkuODg2ODc3XSAgPyB2ZnNfZnN5bmNfcmFuZ2Ur MHg2OC8weDEwMApbICA2OTkuODg3Njk0XSAgPyBfX2ZnZXRfbGlnaHQrMHhjOS8weGUwClsgIDY5 OS44ODg0NDJdICA/IGRvX2ZzeW5jKzB4M2QvMHg3MApbICA2OTkuODg5MTE4XSAgPyBfX3g2NF9z eXNfZmRhdGFzeW5jKzB4MjQvMHgzMApbICA2OTkuODg5OTk2XSAgcmV3aW5kX3N0YWNrX2RvX2V4 aXQrMHgxNy8weDIwClsgIDY5OS44OTA4NjBdIFJJUDogMDAzMzoweDdmOWJmOTMwZDgwMApbICA2 OTkuODkxNTg1XSBDb2RlOiBCYWQgUklQIHZhbHVlLgpbICA2OTkuODkyMjY4XSBSU1A6IDAwMmI6 MDAwMDdmZmVlMzYwNmM2OCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAw MDRiClsgIDY5OS44OTM3ODFdIFJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDAw MDAwMDAgUkNYOiAwMDAwN2Y5YmY5MzBkODAwClsgIDY5OS44OTUyMjBdIFJEWDogMDAwMDAwMDAw MDAwODAwMCBSU0k6IDAwMDAwMDAwMDA2MDEwYTAgUkRJOiAwMDAwMDAwMDAwMDAwMDAzClsgIDY5 OS44OTY2NDNdIFJCUDogMDAwMDdmZmVlMzYwNmNhMCBSMDg6IDAwMDAwMDAwMDE1MDMwMTAgUjA5 OiAwMDAwMDAwMDAwMDAwMDAwClsgIDY5OS44OTgwNjldIFIxMDogMDAwMDAwMDAwMDAwMDJlOCBS MTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAwMDAwMDAwMDAwNDAwNjEwClsgIDY5OS44OTk1MDVd IFIxMzogMDAwMDdmZmVlMzYwNmRhMCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiAwMDAwMDAw MDAwMDAwMDAwCgpbICA2OTkuOTAxMjQxXSBUaGUgYnVnZ3kgYWRkcmVzcyBiZWxvbmdzIHRvIHRo ZSBwYWdlOgpbICA2OTkuOTAyMjE1XSBwYWdlOmZmZmZlYTAwMDdkMGViYzAgY291bnQ6MCBtYXBj b3VudDowIG1hcHBpbmc6MDAwMDAwMDAwMDAwMDAwMCBpbmRleDoweDAKWyAgNjk5LjkwMzgxMV0g ZmxhZ3M6IDB4MmZmZmYwMDAwMDAwMDAwKCkKWyAgNjk5LjkwNDU4NV0gcmF3OiAwMmZmZmYwMDAw MDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgZmZmZmZmZmYwN2QwMDEwMSAwMDAwMDAwMDAwMDAwMDAw ClsgIDY5OS45MDYxMjVdIHJhdzogMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMjQwMDAwIDAw MDAwMDAwZmZmZmZmZmYgMDAwMDAwMDAwMDAwMDAwMApbICA2OTkuOTA3NjczXSBwYWdlIGR1bXBl ZCBiZWNhdXNlOiBrYXNhbjogYmFkIGFjY2VzcyBkZXRlY3RlZAoKWyAgNjk5LjkwOTEwOF0gTWVt b3J5IHN0YXRlIGFyb3VuZCB0aGUgYnVnZ3kgYWRkcmVzczoKWyAgNjk5LjkxMDA3N10gIGZmZmY4 ODAxZjQzYWY4MDA6IDAwIGYxIGYxIGYxIGYxIDAwIGY0IGY0IGY0IGYzIGYzIGYzIGYzIDAwIDAw IDAwClsgIDY5OS45MTE1MjhdICBmZmZmODgwMWY0M2FmODgwOiAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMApbICA2OTkuOTEyOTUzXSA+ZmZmZjg4MDFmNDNh ZjkwMDogMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgZjEgMDEgZjQgZjQgZjQgZjIgZjIgZjIKWyAg Njk5LjkxNDM5Ml0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KWyAgNjk5LjkxNTc1OF0gIGZmZmY4ODAxZjQzYWY5ODA6IGYyIDAw IGY0IGY0IDAwIDAwIDAwIDAwIGYyIDAwIDAwIDAwIDAwIDAwIDAwIDAwClsgIDY5OS45MTcxOTNd ICBmZmZmODgwMWY0M2FmYTAwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCBmMyBmMyBmMyAw MCAwMCAwMCAwMApbICA2OTkuOTE4NjM0XSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCi0gTG9jYXRpb24KaHR0cHM6Ly9l bGl4aXIuYm9vdGxpbi5jb20vbGludXgvdjQuMTgtcmMxL3NvdXJjZS9mcy9mMmZzL3NlZ21lbnQu aCNMNjQ0CgpSZXBvcnRlZC1ieSBXZW4gWHUgPHdlbi54dUBnYXRlY2guZWR1PgpTaWduZWQtb2Zm LWJ5OiBDaGFvIFl1IDx5dWNoYW8wQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IEphZWdldWsg S2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+Cltid2g6IEJhY2twb3J0ZWQgdG8gNC40OgogLSBDb1cg aXMgbm90IGltcGxlbWVudGVkIHNvIGNoZWNrIGYyZnNfaW9faW5mbzo6YmxrX2FkZHIgaW5zdGVh ZCBvZgogICBmMmZzX2lvX2luZm86OntvbGQsbmV3fV9ibGthZGRyCiAtIE9wZXJhdGlvbiBjb2Rl IGlzIGYyZnNfaW9faW5mbzo6cncgaW5zdGVhZCBvZiBmMmZzX2lvX2luZm86Om9wCiAtIGYyZnNf c3RvcF9jaGVja3BvaW50KCkgb25seSB0YWtlcyBvbmUgYXJndW1lbnQKIC0gSW4gZjJmc19tYXBf YmxvY2tzKCksIHZhbGlkYXRlIGRuLmRhdGFfYmxrYWRkciBpbnN0ZWFkIG9mIGJsa2FkZHIKIC0g QWRqdXN0IGNvbnRleHRdClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGlu Z3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2YyZnMvY2hlY2twb2ludC5jIHwgMjIgKysrKysr KysrKysrKysrKysrKy0tLQogZnMvZjJmcy9kYXRhLmMgICAgICAgfCAyMSArKysrKysrKysrKysr KysrKysrKy0KIGZzL2YyZnMvZjJmcy5oICAgICAgIHwgIDMgKysrCiBmcy9mMmZzL2ZpbGUuYyAg ICAgICB8IDEyICsrKysrKysrKysrKwogZnMvZjJmcy9pbm9kZS5jICAgICAgfCAxNiArKysrKysr KysrKysrKysrCiBmcy9mMmZzL25vZGUuYyAgICAgICB8ICA0ICsrKysKIGZzL2YyZnMvc2VnbWVu dC5oICAgIHwgIDMgKy0tCiA3IGZpbGVzIGNoYW5nZWQsIDc1IGluc2VydGlvbnMoKyksIDYgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9jaGVja3BvaW50LmMgYi9mcy9mMmZzL2No ZWNrcG9pbnQuYwppbmRleCA2NGI2NWQ1MDlmN2MuLmI2ZWRiMzk0MDY5ZCAxMDA2NDQKLS0tIGEv ZnMvZjJmcy9jaGVja3BvaW50LmMKKysrIGIvZnMvZjJmcy9jaGVja3BvaW50LmMKQEAgLTc1LDgg Kzc1LDEwIEBAIHJlcGVhdDoKIAlmaW8ucGFnZSA9IHBhZ2U7CiAKIAlpZiAoZjJmc19zdWJtaXRf cGFnZV9iaW8oJmZpbykpIHsKLQkJZjJmc19wdXRfcGFnZShwYWdlLCAxKTsKLQkJZ290byByZXBl YXQ7CisJCW1lbXNldChwYWdlX2FkZHJlc3MocGFnZSksIDAsIFBBR0VfU0laRSk7CisJCWYyZnNf c3RvcF9jaGVja3BvaW50KHNiaSk7CisJCWYyZnNfYnVnX29uKHNiaSwgMSk7CisJCXJldHVybiBw YWdlOwogCX0KIAogCWxvY2tfcGFnZShwYWdlKTsKQEAgLTEzMCw4ICsxMzIsMTQgQEAgYm9vbCBm MmZzX2lzX3ZhbGlkX2Jsa2FkZHIoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogCWNhc2UgTUVU QV9QT1I6CiAJY2FzZSBEQVRBX0dFTkVSSUM6CiAJCWlmICh1bmxpa2VseShibGthZGRyID49IE1B WF9CTEtBRERSKHNiaSkgfHwKLQkJCWJsa2FkZHIgPCBNQUlOX0JMS0FERFIoc2JpKSkpCisJCQli bGthZGRyIDwgTUFJTl9CTEtBRERSKHNiaSkpKSB7CisJCQlpZiAodHlwZSA9PSBEQVRBX0dFTkVS SUMpIHsKKwkJCQlmMmZzX21zZyhzYmktPnNiLCBLRVJOX1dBUk5JTkcsCisJCQkJCSJhY2Nlc3Mg aW52YWxpZCBibGthZGRyOiV1IiwgYmxrYWRkcik7CisJCQkJV0FSTl9PTigxKTsKKwkJCX0KIAkJ CXJldHVybiBmYWxzZTsKKwkJfQogCQlicmVhazsKIAljYXNlIE1FVEFfR0VORVJJQzoKIAkJaWYg KHVubGlrZWx5KGJsa2FkZHIgPCBTRUcwX0JMS0FERFIoc2JpKSB8fApAQCAtNjUxLDYgKzY1OSwx NCBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKnZhbGlkYXRlX2NoZWNrcG9pbnQoc3RydWN0IGYyZnNf c2JfaW5mbyAqc2JpLAogCQkJCQkmY3BfcGFnZV8xLCB2ZXJzaW9uKTsKIAlpZiAoZXJyKQogCQln b3RvIGludmFsaWRfY3AxOworCisJaWYgKGxlMzJfdG9fY3B1KGNwX2Jsb2NrLT5jcF9wYWNrX3Rv dGFsX2Jsb2NrX2NvdW50KSA+CisJCQkJCXNiaS0+YmxvY2tzX3Blcl9zZWcpIHsKKwkJZjJmc19t c2coc2JpLT5zYiwgS0VSTl9XQVJOSU5HLAorCQkJImludmFsaWQgY3BfcGFja190b3RhbF9ibG9j a19jb3VudDoldSIsCisJCQlsZTMyX3RvX2NwdShjcF9ibG9jay0+Y3BfcGFja190b3RhbF9ibG9j a19jb3VudCkpOworCQlnb3RvIGludmFsaWRfY3AxOworCX0KIAlwcmVfdmVyc2lvbiA9ICp2ZXJz aW9uOwogCiAJY3BfYWRkciArPSBsZTMyX3RvX2NwdShjcF9ibG9jay0+Y3BfcGFja190b3RhbF9i bG9ja19jb3VudCkgLSAxOwpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9kYXRhLmMgYi9mcy9mMmZzL2Rh dGEuYwppbmRleCA0NmRjZjg1NmU4NDguLmZlNzY5NGVjMzU0NiAxMDA2NDQKLS0tIGEvZnMvZjJm cy9kYXRhLmMKKysrIGIvZnMvZjJmcy9kYXRhLmMKQEAgLTE0Nyw3ICsxNDcsMTAgQEAgaW50IGYy ZnNfc3VibWl0X3BhZ2VfYmlvKHN0cnVjdCBmMmZzX2lvX2luZm8gKmZpbykKIAlzdHJ1Y3QgYmlv ICpiaW87CiAJc3RydWN0IHBhZ2UgKnBhZ2UgPSBmaW8tPmVuY3J5cHRlZF9wYWdlID8gZmlvLT5l bmNyeXB0ZWRfcGFnZSA6IGZpby0+cGFnZTsKIAotCXZlcmlmeV9ibG9ja19hZGRyKGZpbywgZmlv LT5ibGtfYWRkcik7CisJaWYgKCFmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIoZmlvLT5zYmksIGZpby0+ YmxrX2FkZHIsCisJCQlfX2lzX21ldGFfaW8oZmlvKSA/IE1FVEFfR0VORVJJQyA6IERBVEFfR0VO RVJJQykpCisJCXJldHVybiAtRUZBVUxUOworCiAJdHJhY2VfZjJmc19zdWJtaXRfcGFnZV9iaW8o cGFnZSwgZmlvKTsKIAlmMmZzX3RyYWNlX2lvcyhmaW8sIDApOwogCkBAIC02MDQsNiArNjA3LDEy IEBAIHN0YXRpYyBpbnQgZjJmc19tYXBfYmxvY2tzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVj dCBmMmZzX21hcF9ibG9ja3MgKm1hcCwKIAkJZ290byB1bmxvY2tfb3V0OwogCX0KIAorCWlmIChf X2lzX3ZhbGlkX2RhdGFfYmxrYWRkcihkbi5kYXRhX2Jsa2FkZHIpICYmCisJCSFmMmZzX2lzX3Zh bGlkX2Jsa2FkZHIoc2JpLCBkbi5kYXRhX2Jsa2FkZHIsIERBVEFfR0VORVJJQykpIHsKKwkJZXJy ID0gLUVGQVVMVDsKKwkJZ290byBzeW5jX291dDsKKwl9CisKIAlpZiAoIWlzX3ZhbGlkX2RhdGFf YmxrYWRkcihzYmksIGRuLmRhdGFfYmxrYWRkcikpIHsKIAkJaWYgKGNyZWF0ZSkgewogCQkJaWYg KHVubGlrZWx5KGYyZnNfY3BfZXJyb3Ioc2JpKSkpIHsKQEAgLTk3Miw2ICs5ODEsMTAgQEAgZ290 X2l0OgogCQkJCVNldFBhZ2VVcHRvZGF0ZShwYWdlKTsKIAkJCQlnb3RvIGNvbmZ1c2VkOwogCQkJ fQorCisJCQlpZiAoIWYyZnNfaXNfdmFsaWRfYmxrYWRkcihGMkZTX0lfU0IoaW5vZGUpLCBibG9j a19uciwKKwkJCQkJCQkJREFUQV9HRU5FUklDKSkKKwkJCQlnb3RvIHNldF9lcnJvcl9wYWdlOwog CQl9IGVsc2UgewogCQkJemVyb191c2VyX3NlZ21lbnQocGFnZSwgMCwgUEFHRV9DQUNIRV9TSVpF KTsKIAkJCVNldFBhZ2VVcHRvZGF0ZShwYWdlKTsKQEAgLTEwODYsNiArMTA5OSwxMiBAQCBpbnQg ZG9fd3JpdGVfZGF0YV9wYWdlKHN0cnVjdCBmMmZzX2lvX2luZm8gKmZpbykKIAogCXNldF9wYWdl X3dyaXRlYmFjayhwYWdlKTsKIAorCWlmIChfX2lzX3ZhbGlkX2RhdGFfYmxrYWRkcihmaW8tPmJs a19hZGRyKSAmJgorCQkhZjJmc19pc192YWxpZF9ibGthZGRyKGZpby0+c2JpLCBmaW8tPmJsa19h ZGRyLAorCQkJCQkJCURBVEFfR0VORVJJQykpIHsKKwkJZXJyID0gLUVGQVVMVDsKKwkJZ290byBv dXRfd3JpdGVwYWdlOworCX0KIAkvKgogCSAqIElmIGN1cnJlbnQgYWxsb2NhdGlvbiBuZWVkcyBT U1IsCiAJICogaXQgaGFkIGJldHRlciBpbi1wbGFjZSB3cml0ZXMgZm9yIHVwZGF0ZWQgZGF0YS4K ZGlmZiAtLWdpdCBhL2ZzL2YyZnMvZjJmcy5oIGIvZnMvZjJmcy9mMmZzLmgKaW5kZXggZTU2MmQ4 YmQ1YjhhLi4yYmZjZTg4N2RjZTIgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvZjJmcy5oCisrKyBiL2Zz L2YyZnMvZjJmcy5oCkBAIC0xNjQ5LDYgKzE2NDksOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgKmYy ZnNfa3Z6YWxsb2Moc2l6ZV90IHNpemUsIGdmcF90IGZsYWdzKQogCShwZ29mcyAtIEFERFJTX1BF Ul9JTk9ERShmaSkgKyBBRERSU19QRVJfQkxPQ0spIC8JXAogCUFERFJTX1BFUl9CTE9DSyAqIEFE RFJTX1BFUl9CTE9DSyArIEFERFJTX1BFUl9JTk9ERShmaSkpCiAKKyNkZWZpbmUgX19pc19tZXRh X2lvKGZpbykgKFBBR0VfVFlQRV9PRl9CSU8oZmlvLT50eXBlKSA9PSBNRVRBICYmCVwKKwkJCQko IWlzX3JlYWRfaW8oZmlvLT5ydykgfHwgZmlvLT5pc19tZXRhKSkKKwogYm9vbCBmMmZzX2lzX3Zh bGlkX2Jsa2FkZHIoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogCQkJCQlibG9ja190IGJsa2Fk ZHIsIGludCB0eXBlKTsKIHZvaWQgZjJmc19tc2coc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgY29u c3QgY2hhciAqbGV2ZWwsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKZGlmZiAtLWdpdCBhL2ZzL2Yy ZnMvZmlsZS5jIGIvZnMvZjJmcy9maWxlLmMKaW5kZXggYjE1M2IzN2FlMDM4Li45NmJmZDlmMGVh MDIgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvZmlsZS5jCisrKyBiL2ZzL2YyZnMvZmlsZS5jCkBAIC0z NzQsNiArMzc0LDEzIEBAIHN0YXRpYyBsb2ZmX3QgZjJmc19zZWVrX2Jsb2NrKHN0cnVjdCBmaWxl ICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgd2hlbmNlKQogCQkJYmxvY2tfdCBibGthZGRyOwog CQkJYmxrYWRkciA9IGRhdGFibG9ja19hZGRyKGRuLm5vZGVfcGFnZSwgZG4ub2ZzX2luX25vZGUp OwogCisJCQlpZiAoX19pc192YWxpZF9kYXRhX2Jsa2FkZHIoYmxrYWRkcikgJiYKKwkJCQkhZjJm c19pc192YWxpZF9ibGthZGRyKEYyRlNfSV9TQihpbm9kZSksCisJCQkJCQlibGthZGRyLCBEQVRB X0dFTkVSSUMpKSB7CisJCQkJZjJmc19wdXRfZG5vZGUoJmRuKTsKKwkJCQlnb3RvIGZhaWw7CisJ CQl9CisKIAkJCWlmIChfX2ZvdW5kX29mZnNldChGMkZTX0lfU0IoaW5vZGUpLCBibGthZGRyLCBk aXJ0eSwKIAkJCQkJCQlwZ29mcywgd2hlbmNlKSkgewogCQkJCWYyZnNfcHV0X2Rub2RlKCZkbik7 CkBAIC00NjcsNiArNDc0LDExIEBAIGludCB0cnVuY2F0ZV9kYXRhX2Jsb2Nrc19yYW5nZShzdHJ1 Y3QgZG5vZGVfb2ZfZGF0YSAqZG4sIGludCBjb3VudCkKIAogCQlkbi0+ZGF0YV9ibGthZGRyID0g TlVMTF9BRERSOwogCQlzZXRfZGF0YV9ibGthZGRyKGRuKTsKKworCQlpZiAoX19pc192YWxpZF9k YXRhX2Jsa2FkZHIoYmxrYWRkcikgJiYKKwkJCSFmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIoc2JpLCBi bGthZGRyLCBEQVRBX0dFTkVSSUMpKQorCQkJY29udGludWU7CisKIAkJaW52YWxpZGF0ZV9ibG9j a3Moc2JpLCBibGthZGRyKTsKIAkJaWYgKGRuLT5vZnNfaW5fbm9kZSA9PSAwICYmIElTX0lOT0RF KGRuLT5ub2RlX3BhZ2UpKQogCQkJY2xlYXJfaW5vZGVfZmxhZyhGMkZTX0koZG4tPmlub2RlKSwK ZGlmZiAtLWdpdCBhL2ZzL2YyZnMvaW5vZGUuYyBiL2ZzL2YyZnMvaW5vZGUuYwppbmRleCBmMjJi Y2QwYmU3ZTAuLjNhYzU3Y2JlZTBmZCAxMDA2NDQKLS0tIGEvZnMvZjJmcy9pbm9kZS5jCisrKyBi L2ZzL2YyZnMvaW5vZGUuYwpAQCAtMTIwLDYgKzEyMCwyMiBAQCBzdGF0aWMgYm9vbCBzYW5pdHlf Y2hlY2tfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IHBhZ2UgKm5vZGVfcGFnZSkK IAkJcmV0dXJuIGZhbHNlOwogCX0KIAorCWlmIChGMkZTX0koaW5vZGUpLT5leHRlbnRfdHJlZSkg eworCQlzdHJ1Y3QgZXh0ZW50X2luZm8gKmVpID0gJkYyRlNfSShpbm9kZSktPmV4dGVudF90cmVl LT5sYXJnZXN0OworCisJCWlmIChlaS0+bGVuICYmCisJCQkoIWYyZnNfaXNfdmFsaWRfYmxrYWRk cihzYmksIGVpLT5ibGssIERBVEFfR0VORVJJQykgfHwKKwkJCSFmMmZzX2lzX3ZhbGlkX2Jsa2Fk ZHIoc2JpLCBlaS0+YmxrICsgZWktPmxlbiAtIDEsCisJCQkJCQkJREFUQV9HRU5FUklDKSkpIHsK KwkJCXNldF9zYmlfZmxhZyhzYmksIFNCSV9ORUVEX0ZTQ0spOworCQkJZjJmc19tc2coc2JpLT5z YiwgS0VSTl9XQVJOSU5HLAorCQkJCSIlczogaW5vZGUgKGlubz0lbHgpIGV4dGVudCBpbmZvIFsl dSwgJXUsICV1XSAiCisJCQkJImlzIGluY29ycmVjdCwgcnVuIGZzY2sgdG8gZml4IiwKKwkJCQlf X2Z1bmNfXywgaW5vZGUtPmlfaW5vLAorCQkJCWVpLT5ibGssIGVpLT5mb2ZzLCBlaS0+bGVuKTsK KwkJCXJldHVybiBmYWxzZTsKKwkJfQorCX0KIAlyZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0 IGEvZnMvZjJmcy9ub2RlLmMgYi9mcy9mMmZzL25vZGUuYwppbmRleCA1ODAxYzcwYzQ5NjQuLjAx NjQ3M2ZjMjY3ZCAxMDA2NDQKLS0tIGEvZnMvZjJmcy9ub2RlLmMKKysrIGIvZnMvZjJmcy9ub2Rl LmMKQEAgLTEzNDEsNiArMTM0MSwxMCBAQCBzdGF0aWMgaW50IGYyZnNfd3JpdGVfbm9kZV9wYWdl KHN0cnVjdCBwYWdlICpwYWdlLAogCQlyZXR1cm4gMDsKIAl9CiAKKwlpZiAoX19pc192YWxpZF9k YXRhX2Jsa2FkZHIobmkuYmxrX2FkZHIpICYmCisJCSFmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIoc2Jp LCBuaS5ibGtfYWRkciwgREFUQV9HRU5FUklDKSkKKwkJZ290byByZWRpcnR5X291dDsKKwogCXNl dF9wYWdlX3dyaXRlYmFjayhwYWdlKTsKIAlmaW8uYmxrX2FkZHIgPSBuaS5ibGtfYWRkcjsKIAl3 cml0ZV9ub2RlX3BhZ2UobmlkLCAmZmlvKTsKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvc2VnbWVudC5o IGIvZnMvZjJmcy9zZWdtZW50LmgKaW5kZXggMjA0YTMyNTFlMTIzLi4wOGIwOGFlNmJhOWQgMTAw NjQ0Ci0tLSBhL2ZzL2YyZnMvc2VnbWVudC5oCisrKyBiL2ZzL2YyZnMvc2VnbWVudC5oCkBAIC01 ODYsOCArNTg2LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHZlcmlmeV9ibG9ja19hZGRyKHN0cnVj dCBmMmZzX2lvX2luZm8gKmZpbywgYmxvY2tfdCBibGtfYWRkcikKIHsKIAlzdHJ1Y3QgZjJmc19z Yl9pbmZvICpzYmkgPSBmaW8tPnNiaTsKIAotCWlmIChQQUdFX1RZUEVfT0ZfQklPKGZpby0+dHlw ZSkgPT0gTUVUQSAmJgotCQkJCSghaXNfcmVhZF9pbyhmaW8tPnJ3KSB8fCBmaW8tPmlzX21ldGEp KQorCWlmIChfX2lzX21ldGFfaW8oZmlvKSkKIAkJdmVyaWZ5X2Jsa2FkZHIoc2JpLCBibGtfYWRk ciwgTUVUQV9HRU5FUklDKTsKIAllbHNlCiAJCXZlcmlmeV9ibGthZGRyKHNiaSwgYmxrX2FkZHIs IERBVEFfR0VORVJJQyk7CgpGcm9tIDk4MGRmYmEzZWVhNzdhNWQ5OGNlMmZkNTY4ZDA5MGQ3ZDVk OWU2MDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENoYW8gWXUgPHl1Y2hhbzBAaHVh d2VpLmNvbT4KRGF0ZTogVHVlLCAxMCBKdWwgMjAxOCAyMzowMTo0NSArMDgwMApTdWJqZWN0OiBb UEFUQ0ggMzIvMzZdIGYyZnM6IGZpeCB0byBkbyBzYW5pdHkgY2hlY2sgd2l0aCBibG9jayBhZGRy ZXNzIGluIG1haW4KIGFyZWEgdjIKCmNvbW1pdCA5MTI5MWU5OTk4ZDIwODM3MGViODE1NmM3NjA2 OTFiODczYmQ3NTIyIHVwc3RyZWFtLgoKVGhpcyBwYXRjaCBhZGRzIGYyZnNfaXNfdmFsaWRfYmxr YWRkcigpIGluIGJlbG93IGZ1bmN0aW9ucyB0byBkbyBzYW5pdHkKY2hlY2sgd2l0aCBibG9jayBh ZGRyZXNzIHRvIGF2b2lkIHBlbnRlbnRpYWwgcGFuaWM6Ci0gZjJmc19ncmFiX3JlYWRfYmlvKCkK LSBfX3dyaXR0ZW5fZmlyc3RfYmxvY2soKQoKaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3No b3dfYnVnLmNnaT9pZD0yMDA0NjUKCi0gUmVwcm9kdWNlCgotIFBPQyAocG9jLmMpCiAgICAjZGVm aW5lIF9HTlVfU09VUkNFCiAgICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAgICAjaW5jbHVkZSA8 c3lzL21vdW50Lmg+CiAgICAjaW5jbHVkZSA8c3lzL21tYW4uaD4KICAgICNpbmNsdWRlIDxzeXMv c3RhdC5oPgogICAgI2luY2x1ZGUgPHN5cy94YXR0ci5oPgoKICAgICNpbmNsdWRlIDxkaXJlbnQu aD4KICAgICNpbmNsdWRlIDxlcnJuby5oPgogICAgI2luY2x1ZGUgPGVycm9yLmg+CiAgICAjaW5j bHVkZSA8ZmNudGwuaD4KICAgICNpbmNsdWRlIDxzdGRpby5oPgogICAgI2luY2x1ZGUgPHN0ZGxp Yi5oPgogICAgI2luY2x1ZGUgPHN0cmluZy5oPgogICAgI2luY2x1ZGUgPHVuaXN0ZC5oPgoKICAg ICNpbmNsdWRlIDxsaW51eC9mYWxsb2MuaD4KICAgICNpbmNsdWRlIDxsaW51eC9sb29wLmg+Cgog ICAgc3RhdGljIHZvaWQgYWN0aXZpdHkoY2hhciAqbXBvaW50KSB7CgogICAgICBjaGFyICp4YXR0 cjsKICAgICAgaW50IGVycjsKCiAgICAgIGVyciA9IGFzcHJpbnRmKCZ4YXR0ciwgIiVzL2Zvby9i YXIveGF0dHIiLCBtcG9pbnQpOwoKICAgICAgY2hhciBidWYyWzExM107CiAgICAgIG1lbXNldChi dWYyLCAwLCBzaXplb2YoYnVmMikpOwogICAgICBsaXN0eGF0dHIoeGF0dHIsIGJ1ZjIsIHNpemVv ZihidWYyKSk7CgogICAgfQoKICAgIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsK ICAgICAgYWN0aXZpdHkoYXJndlsxXSk7CiAgICAgIHJldHVybiAwOwogICAgfQoKLSBrZXJuZWwg bWVzc2FnZQpbICA4NDQuNzE4NzM4XSBGMkZTLWZzIChsb29wMCk6IE1vdW50ZWQgd2l0aCBjaGVj a3BvaW50IHZlcnNpb24gPSAyClsgIDg0Ni40MzA5MjldIEYyRlMtZnMgKGxvb3AwKTogYWNjZXNz IGludmFsaWQgYmxrYWRkcjoxMDI0ClsgIDg0Ni40MzEwNThdIFdBUk5JTkc6IENQVTogMSBQSUQ6 IDEyNDkgYXQgZnMvZjJmcy9jaGVja3BvaW50LmM6MTU0IGYyZnNfaXNfdmFsaWRfYmxrYWRkcisw eDEwZi8weDE2MApbICA4NDYuNDMxMDU5XSBNb2R1bGVzIGxpbmtlZCBpbjogc25kX2hkYV9jb2Rl Y19nZW5lcmljIHNuZF9oZGFfaW50ZWwgc25kX2hkYV9jb2RlYyBzbmRfaGRhX2NvcmUgc25kX2h3 ZGVwIHNuZF9wY20gc25kX3RpbWVyIHNuZCBpbnB1dF9sZWRzIGpveWRldiBzb3VuZGNvcmUgc2Vy aW9fcmF3IGkyY19waWl4NCBtYWNfaGlkIGliX2lzZXIgcmRtYV9jbSBpd19jbSBpYl9jbSBpYl9j b3JlIGNvbmZpZ2ZzIGlzY3NpX3RjcCBsaWJpc2NzaV90Y3AgbGliaXNjc2kgc2NzaV90cmFuc3Bv cnRfaXNjc2kgYXV0b2ZzNCByYWlkMTAgcmFpZDQ1NiBsaWJjcmMzMmMgYXN5bmNfcmFpZDZfcmVj b3YgYXN5bmNfbWVtY3B5IGFzeW5jX3BxIGFzeW5jX3hvciB4b3IgYXN5bmNfdHggcmFpZDZfcHEg cmFpZDEgcmFpZDAgbXVsdGlwYXRoIGxpbmVhciBxeGwgdHRtIGNyY3QxMGRpZl9wY2xtdWwgY3Jj MzJfcGNsbXVsIGRybV9rbXNfaGVscGVyIGdoYXNoX2NsbXVsbmlfaW50ZWwgc3lzY29weWFyZWEg c3lzZmlsbHJlY3Qgc3lzaW1nYmx0IGZiX3N5c19mb3BzIHBjYmMgZHJtIDgxMzl0b28gYWVzbmlf aW50ZWwgODEzOWNwIGZsb3BweSBwc21vdXNlIG1paSBhZXNfeDg2XzY0IGNyeXB0b19zaW1kIHBh dGFfYWNwaSBjcnlwdGQgZ2x1ZV9oZWxwZXIKWyAgODQ2LjQzMTMxMF0gQ1BVOiAxIFBJRDogMTI0 OSBDb21tOiBhLm91dCBOb3QgdGFpbnRlZCA0LjE4LjAtcmMzKyAjMQpbICA4NDYuNDMxMzEyXSBI YXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklP UyBVYnVudHUtMS44LjItMXVidW50dTEgMDQvMDEvMjAxNApbICA4NDYuNDMxMzE1XSBSSVA6IDAw MTA6ZjJmc19pc192YWxpZF9ibGthZGRyKzB4MTBmLzB4MTYwClsgIDg0Ni40MzEzMTZdIENvZGU6 IDAwIGViIGVkIDMxIGMwIDgzIGZhIDA1IDc1IGFlIDQ4IDgzIGVjIDA4IDQ4IDhiIDNmIDg5IGYx IDQ4IGM3IGMyIGZjIDBiIDBmIDhiIDQ4IGM3IGM2IDhiIGQ3IDA5IDhiIDg4IDQ0IDI0IDA3IGU4 IDYxIDhiIGZmIGZmIDwwZj4gMGIgMGYgYjYgNDQgMjQgMDcgNDggODMgYzQgMDggZWIgODEgNGMg OGIgNDcgMTAgOGIgOGYgMzggMDQgMDAKWyAgODQ2LjQzMTM0N10gUlNQOiAwMDE4OmZmZmY5NjFj NDE0YTdiYzAgRUZMQUdTOiAwMDAxMDI4MgpbICA4NDYuNDMxMzQ5XSBSQVg6IDAwMDAwMDAwMDAw MDAwMDAgUkJYOiBmZmZmYzVmNzg3YjhlYTgwIFJDWDogMDAwMDAwMDAwMDAwMDAwMApbICA4NDYu NDMxMzUwXSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiBmZmZmODlkZmZmZDE2NWQ4IFJESTog ZmZmZjg5ZGZmZmQxNjVkOApbICA4NDYuNDMxMzUxXSBSQlA6IGZmZmY5NjFjNDE0YTdjMjAgUjA4 OiAwMDAwMDAwMDAwMDAwMDAxIFIwOTogMDAwMDAwMDAwMDAwMDI0OApbICA4NDYuNDMxMzUzXSBS MTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMjQ4IFIxMjogMDAwMDAwMDAw MDAwMDAwNwpbICA4NDYuNDMxMzY5XSBSMTM6IGZmZmY4OWRmZjU0OTI4MDAgUjE0OiBmZmZmODlk ZmFlM2FhMDAwIFIxNTogZmZmZjg5ZGZmNGZmODhkMApbICA4NDYuNDMxMzcyXSBGUzogIDAwMDA3 Zjg4MmUyZmI3MDAoMDAwMCkgR1M6ZmZmZjg5ZGZmZmQwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAw MDAwMDAwMDAwClsgIDg0Ni40MzEzNzNdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6 IDAwMDAwMDAwODAwNTAwMzMKWyAgODQ2LjQzMTM3NF0gQ1IyOiAwMDAwMDAwMDAxYTg4MDA4IENS MzogMDAwMDAwMDFlYjU3MjAwMCBDUjQ6IDAwMDAwMDAwMDAwMDA2ZTAKWyAgODQ2LjQzMTM4NF0g Q2FsbCBUcmFjZToKWyAgODQ2LjQzMTQyNl0gIGYyZnNfaWdldCsweDZmNC8weGU3MApbICA4NDYu NDMxNDMwXSAgPyBmMmZzX2ZpbmRfZW50cnkrMHg3MS8weDkwClsgIDg0Ni40MzE0MzJdICBmMmZz X2xvb2t1cCsweDFhYS8weDM5MApbICA4NDYuNDMxNDUyXSAgX19sb29rdXBfc2xvdysweDk3LzB4 MTUwClsgIDg0Ni40MzE0NTldICBsb29rdXBfc2xvdysweDM1LzB4NTAKWyAgODQ2LjQzMTQ2Ml0g IHdhbGtfY29tcG9uZW50KzB4MWM2LzB4NDcwClsgIDg0Ni40MzE0NzldICA/IG1lbWNnX2ttZW1f Y2hhcmdlX21lbWNnKzB4NzAvMHg5MApbICA4NDYuNDMxNDg4XSAgPyBwYWdlX2FkZF9maWxlX3Jt YXArMHgxMy8weDIwMApbICA4NDYuNDMxNDkxXSAgcGF0aF9sb29rdXBhdCsweDc2LzB4MjMwClsg IDg0Ni40MzE1MDFdICA/IF9fYWxsb2NfcGFnZXNfbm9kZW1hc2srMHhmYy8weDI4MApbICA4NDYu NDMxNTA0XSAgZmlsZW5hbWVfbG9va3VwKzB4YjgvMHgxYTAKWyAgODQ2LjQzMTUzNF0gID8gX2Nv bmRfcmVzY2hlZCsweDE2LzB4NDAKWyAgODQ2LjQzMTU0MV0gID8ga21lbV9jYWNoZV9hbGxvYysw eDE2MC8weDFkMApbICA4NDYuNDMxNTQ5XSAgPyBwYXRoX2xpc3R4YXR0cisweDQxLzB4YTAKWyAg ODQ2LjQzMTU1MV0gIHBhdGhfbGlzdHhhdHRyKzB4NDEvMHhhMApbICA4NDYuNDMxNTcwXSAgZG9f c3lzY2FsbF82NCsweDU1LzB4MTAwClsgIDg0Ni40MzE1ODNdICBlbnRyeV9TWVNDQUxMXzY0X2Fm dGVyX2h3ZnJhbWUrMHg0NC8weGE5ClsgIDg0Ni40MzE2MDddIFJJUDogMDAzMzoweDdmODgyZGUx YzBkNwpbICA4NDYuNDMxNjA3XSBDb2RlOiBmMCBmZiBmZiA3MyAwMSBjMyA0OCA4YiAwZCBiZSBk ZCAyYiAwMCBmNyBkOCA2NCA4OSAwMSA0OCA4MyBjOCBmZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAw MCAwMCAwMCAwMCA2NiA5MCBiOCBjMiAwMCAwMCAwMCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZm IDczIDAxIGMzIDQ4IDhiIDBkIDkxIGRkIDJiIDAwIGY3IGQ4IDY0IDg5IDAxIDQ4ClsgIDg0Ni40 MzE2MzldIFJTUDogMDAyYjowMDAwN2ZmZThlNjZjMjM4IEVGTEFHUzogMDAwMDAyMDIgT1JJR19S QVg6IDAwMDAwMDAwMDAwMDAwYzIKWyAgODQ2LjQzMTY0MV0gUkFYOiBmZmZmZmZmZmZmZmZmZmRh IFJCWDogMDAwMDAwMDAwMDAwMDAwMCBSQ1g6IDAwMDA3Zjg4MmRlMWMwZDcKWyAgODQ2LjQzMTY0 Ml0gUkRYOiAwMDAwMDAwMDAwMDAwMDcxIFJTSTogMDAwMDdmZmU4ZTY2YzI4MCBSREk6IDAwMDAw MDAwMDFhODgwYzAKWyAgODQ2LjQzMTY0M10gUkJQOiAwMDAwN2ZmZThlNjZjMzAwIFIwODogMDAw MDAwMDAwMWE4ODAxMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKWyAgODQ2LjQzMTY0NV0gUjEwOiAw MDAwMDAwMDAwMDAwMWFiIFIxMTogMDAwMDAwMDAwMDAwMDIwMiBSMTI6IDAwMDAwMDAwMDA0MDA1 NTAKWyAgODQ2LjQzMTY0Nl0gUjEzOiAwMDAwN2ZmZThlNjZjNDAwIFIxNDogMDAwMDAwMDAwMDAw MDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKWyAgODQ2LjQzMTY0OF0gLS0tWyBlbmQgdHJhY2Ug YWJjYTU0ZGYzOWQxNGY1YyBdLS0tClsgIDg0Ni40MzE2NTFdIEYyRlMtZnMgKGxvb3AwKTogaW52 YWxpZCBibGthZGRyOiAxMDI0LCB0eXBlOiA1LCBydW4gZnNjayB0byBmaXguClsgIDg0Ni40MzE3 NjJdIFdBUk5JTkc6IENQVTogMSBQSUQ6IDEyNDkgYXQgZnMvZjJmcy9mMmZzLmg6MjY5NyBmMmZz X2lnZXQrMHhkMTcvMHhlNzAKWyAgODQ2LjQzMTc2M10gTW9kdWxlcyBsaW5rZWQgaW46IHNuZF9o ZGFfY29kZWNfZ2VuZXJpYyBzbmRfaGRhX2ludGVsIHNuZF9oZGFfY29kZWMgc25kX2hkYV9jb3Jl IHNuZF9od2RlcCBzbmRfcGNtIHNuZF90aW1lciBzbmQgaW5wdXRfbGVkcyBqb3lkZXYgc291bmRj b3JlIHNlcmlvX3JhdyBpMmNfcGlpeDQgbWFjX2hpZCBpYl9pc2VyIHJkbWFfY20gaXdfY20gaWJf Y20gaWJfY29yZSBjb25maWdmcyBpc2NzaV90Y3AgbGliaXNjc2lfdGNwIGxpYmlzY3NpIHNjc2lf dHJhbnNwb3J0X2lzY3NpIGF1dG9mczQgcmFpZDEwIHJhaWQ0NTYgbGliY3JjMzJjIGFzeW5jX3Jh aWQ2X3JlY292IGFzeW5jX21lbWNweSBhc3luY19wcSBhc3luY194b3IgeG9yIGFzeW5jX3R4IHJh aWQ2X3BxIHJhaWQxIHJhaWQwIG11bHRpcGF0aCBsaW5lYXIgcXhsIHR0bSBjcmN0MTBkaWZfcGNs bXVsIGNyYzMyX3BjbG11bCBkcm1fa21zX2hlbHBlciBnaGFzaF9jbG11bG5pX2ludGVsIHN5c2Nv cHlhcmVhIHN5c2ZpbGxyZWN0IHN5c2ltZ2JsdCBmYl9zeXNfZm9wcyBwY2JjIGRybSA4MTM5dG9v IGFlc25pX2ludGVsIDgxMzljcCBmbG9wcHkgcHNtb3VzZSBtaWkgYWVzX3g4Nl82NCBjcnlwdG9f c2ltZCBwYXRhX2FjcGkgY3J5cHRkIGdsdWVfaGVscGVyClsgIDg0Ni40MzE3OTddIENQVTogMSBQ SUQ6IDEyNDkgQ29tbTogYS5vdXQgVGFpbnRlZDogRyAgICAgICAgVyAgICAgICAgIDQuMTguMC1y YzMrICMxClsgIDg0Ni40MzE3OThdIEhhcmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0 NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIFVidW50dS0xLjguMi0xdWJ1bnR1MSAwNC8wMS8yMDE0 ClsgIDg0Ni40MzE4MDBdIFJJUDogMDAxMDpmMmZzX2lnZXQrMHhkMTcvMHhlNzAKWyAgODQ2LjQz MTgwMV0gQ29kZTogZmYgZmYgNDggNjMgZDggZTkgZTEgZjYgZmYgZmYgNDggOGIgNDUgYzggNDEg YjggMDUgMDAgMDAgMDAgNDggYzcgYzIgZDggZTggMGUgOGIgNDggYzcgYzYgMWQgYjAgMGEgOGIg NDggOGIgMzggZTggZjkgYjQgMDAgMDAgPDBmPiAwYiA0OCA4YiA0NSBjOCBmMCA4MCA0OCA0OCAw NCBlOSBkOCBmOSBmZiBmZiAwZiAwYiA0OCA4YiA0MyAxOApbICA4NDYuNDMxODMyXSBSU1A6IDAw MTg6ZmZmZjk2MWM0MTRhN2JkMCBFRkxBR1M6IDAwMDEwMjgyClsgIDg0Ni40MzE4MzRdIFJBWDog MDAwMDAwMDAwMDAwMDAwMCBSQlg6IGZmZmZjNWY3ODdiOGVhODAgUkNYOiAwMDAwMDAwMDAwMDAw MDA2ClsgIDg0Ni40MzE4MzVdIFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAwMDAwMDAwMDAw MDAwOTYgUkRJOiBmZmZmODlkZmZmZDE2NWQwClsgIDg0Ni40MzE4MzZdIFJCUDogZmZmZjk2MWM0 MTRhN2MyMCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMjczClsgIDg0 Ni40MzE4MzddIFIxMDogMDAwMDAwMDAwMDAwMDAwMCBSMTE6IGZmZmY4OWRmYWQ1MGNhNjAgUjEy OiAwMDAwMDAwMDAwMDAwMDA3ClsgIDg0Ni40MzE4MzhdIFIxMzogZmZmZjg5ZGZmNTQ5MjgwMCBS MTQ6IGZmZmY4OWRmYWUzYWEwMDAgUjE1OiBmZmZmODlkZmY0ZmY4OGQwClsgIDg0Ni40MzE4NDBd IEZTOiAgMDAwMDdmODgyZTJmYjcwMCgwMDAwKSBHUzpmZmZmODlkZmZmZDAwMDAwKDAwMDApIGtu bEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgODQ2LjQzMTg0MV0gQ1M6ICAwMDEwIERTOiAwMDAwIEVT OiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbICA4NDYuNDMxODQyXSBDUjI6IDAwMDAwMDAw MDFhODgwMDggQ1IzOiAwMDAwMDAwMWViNTcyMDAwIENSNDogMDAwMDAwMDAwMDAwMDZlMApbICA4 NDYuNDMxODQ2XSBDYWxsIFRyYWNlOgpbICA4NDYuNDMxODUwXSAgPyBmMmZzX2ZpbmRfZW50cnkr MHg3MS8weDkwClsgIDg0Ni40MzE4NTNdICBmMmZzX2xvb2t1cCsweDFhYS8weDM5MApbICA4NDYu NDMxODU2XSAgX19sb29rdXBfc2xvdysweDk3LzB4MTUwClsgIDg0Ni40MzE4NThdICBsb29rdXBf c2xvdysweDM1LzB4NTAKWyAgODQ2LjQzMTg3NF0gIHdhbGtfY29tcG9uZW50KzB4MWM2LzB4NDcw ClsgIDg0Ni40MzE4NzhdICA/IG1lbWNnX2ttZW1fY2hhcmdlX21lbWNnKzB4NzAvMHg5MApbICA4 NDYuNDMxODgwXSAgPyBwYWdlX2FkZF9maWxlX3JtYXArMHgxMy8weDIwMApbICA4NDYuNDMxODgy XSAgcGF0aF9sb29rdXBhdCsweDc2LzB4MjMwClsgIDg0Ni40MzE4ODRdICA/IF9fYWxsb2NfcGFn ZXNfbm9kZW1hc2srMHhmYy8weDI4MApbICA4NDYuNDMxODg2XSAgZmlsZW5hbWVfbG9va3VwKzB4 YjgvMHgxYTAKWyAgODQ2LjQzMTg5MF0gID8gX2NvbmRfcmVzY2hlZCsweDE2LzB4NDAKWyAgODQ2 LjQzMTg5MV0gID8ga21lbV9jYWNoZV9hbGxvYysweDE2MC8weDFkMApbICA4NDYuNDMxODk0XSAg PyBwYXRoX2xpc3R4YXR0cisweDQxLzB4YTAKWyAgODQ2LjQzMTg5Nl0gIHBhdGhfbGlzdHhhdHRy KzB4NDEvMHhhMApbICA4NDYuNDMxODk4XSAgZG9fc3lzY2FsbF82NCsweDU1LzB4MTAwClsgIDg0 Ni40MzE5MDFdICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5ClsgIDg0 Ni40MzE5MDJdIFJJUDogMDAzMzoweDdmODgyZGUxYzBkNwpbICA4NDYuNDMxOTAzXSBDb2RlOiBm MCBmZiBmZiA3MyAwMSBjMyA0OCA4YiAwZCBiZSBkZCAyYiAwMCBmNyBkOCA2NCA4OSAwMSA0OCA4 MyBjOCBmZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAwMCAwMCAwMCA2NiA5MCBiOCBjMiAwMCAw MCAwMCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZmIDczIDAxIGMzIDQ4IDhiIDBkIDkxIGRkIDJi IDAwIGY3IGQ4IDY0IDg5IDAxIDQ4ClsgIDg0Ni40MzE5MzRdIFJTUDogMDAyYjowMDAwN2ZmZThl NjZjMjM4IEVGTEFHUzogMDAwMDAyMDIgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwYzIKWyAgODQ2 LjQzMTkzNl0gUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDAwMDAwMCBSQ1g6 IDAwMDA3Zjg4MmRlMWMwZDcKWyAgODQ2LjQzMTkzN10gUkRYOiAwMDAwMDAwMDAwMDAwMDcxIFJT STogMDAwMDdmZmU4ZTY2YzI4MCBSREk6IDAwMDAwMDAwMDFhODgwYzAKWyAgODQ2LjQzMTkzOV0g UkJQOiAwMDAwN2ZmZThlNjZjMzAwIFIwODogMDAwMDAwMDAwMWE4ODAxMCBSMDk6IDAwMDAwMDAw MDAwMDAwMDAKWyAgODQ2LjQzMTk0MF0gUjEwOiAwMDAwMDAwMDAwMDAwMWFiIFIxMTogMDAwMDAw MDAwMDAwMDIwMiBSMTI6IDAwMDAwMDAwMDA0MDA1NTAKWyAgODQ2LjQzMTk0MV0gUjEzOiAwMDAw N2ZmZThlNjZjNDAwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAK WyAgODQ2LjQzMTk0M10gLS0tWyBlbmQgdHJhY2UgYWJjYTU0ZGYzOWQxNGY1ZCBdLS0tClsgIDg0 Ni40MzIwMzNdIEYyRlMtZnMgKGxvb3AwKTogYWNjZXNzIGludmFsaWQgYmxrYWRkcjoxMDI0Clsg IDg0Ni40MzIwNTFdIFdBUk5JTkc6IENQVTogMSBQSUQ6IDEyNDkgYXQgZnMvZjJmcy9jaGVja3Bv aW50LmM6MTU0IGYyZnNfaXNfdmFsaWRfYmxrYWRkcisweDEwZi8weDE2MApbICA4NDYuNDMyMDUx XSBNb2R1bGVzIGxpbmtlZCBpbjogc25kX2hkYV9jb2RlY19nZW5lcmljIHNuZF9oZGFfaW50ZWwg c25kX2hkYV9jb2RlYyBzbmRfaGRhX2NvcmUgc25kX2h3ZGVwIHNuZF9wY20gc25kX3RpbWVyIHNu ZCBpbnB1dF9sZWRzIGpveWRldiBzb3VuZGNvcmUgc2VyaW9fcmF3IGkyY19waWl4NCBtYWNfaGlk IGliX2lzZXIgcmRtYV9jbSBpd19jbSBpYl9jbSBpYl9jb3JlIGNvbmZpZ2ZzIGlzY3NpX3RjcCBs aWJpc2NzaV90Y3AgbGliaXNjc2kgc2NzaV90cmFuc3BvcnRfaXNjc2kgYXV0b2ZzNCByYWlkMTAg cmFpZDQ1NiBsaWJjcmMzMmMgYXN5bmNfcmFpZDZfcmVjb3YgYXN5bmNfbWVtY3B5IGFzeW5jX3Bx IGFzeW5jX3hvciB4b3IgYXN5bmNfdHggcmFpZDZfcHEgcmFpZDEgcmFpZDAgbXVsdGlwYXRoIGxp bmVhciBxeGwgdHRtIGNyY3QxMGRpZl9wY2xtdWwgY3JjMzJfcGNsbXVsIGRybV9rbXNfaGVscGVy IGdoYXNoX2NsbXVsbmlfaW50ZWwgc3lzY29weWFyZWEgc3lzZmlsbHJlY3Qgc3lzaW1nYmx0IGZi X3N5c19mb3BzIHBjYmMgZHJtIDgxMzl0b28gYWVzbmlfaW50ZWwgODEzOWNwIGZsb3BweSBwc21v dXNlIG1paSBhZXNfeDg2XzY0IGNyeXB0b19zaW1kIHBhdGFfYWNwaSBjcnlwdGQgZ2x1ZV9oZWxw ZXIKWyAgODQ2LjQzMjA4NV0gQ1BVOiAxIFBJRDogMTI0OSBDb21tOiBhLm91dCBUYWludGVkOiBH ICAgICAgICBXICAgICAgICAgNC4xOC4wLXJjMysgIzEKWyAgODQ2LjQzMjA4Nl0gSGFyZHdhcmUg bmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgVWJ1bnR1 LTEuOC4yLTF1YnVudHUxIDA0LzAxLzIwMTQKWyAgODQ2LjQzMjA4OV0gUklQOiAwMDEwOmYyZnNf aXNfdmFsaWRfYmxrYWRkcisweDEwZi8weDE2MApbICA4NDYuNDMyMDg5XSBDb2RlOiAwMCBlYiBl ZCAzMSBjMCA4MyBmYSAwNSA3NSBhZSA0OCA4MyBlYyAwOCA0OCA4YiAzZiA4OSBmMSA0OCBjNyBj MiBmYyAwYiAwZiA4YiA0OCBjNyBjNiA4YiBkNyAwOSA4YiA4OCA0NCAyNCAwNyBlOCA2MSA4YiBm ZiBmZiA8MGY+IDBiIDBmIGI2IDQ0IDI0IDA3IDQ4IDgzIGM0IDA4IGViIDgxIDRjIDhiIDQ3IDEw IDhiIDhmIDM4IDA0IDAwClsgIDg0Ni40MzIxMjBdIFJTUDogMDAxODpmZmZmOTYxYzQxNGE3OTAw IEVGTEFHUzogMDAwMTAyODYKWyAgODQ2LjQzMjEyMl0gUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJC WDogMDAwMDAwMDAwMDAwMDQwMCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDYKWyAgODQ2LjQzMjEyM10g UkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAwMDAwMDA5NiBSREk6IGZmZmY4OWRm ZmZkMTY1ZDAKWyAgODQ2LjQzMjEyNF0gUkJQOiBmZmZmODlkZmY1NDkyODAwIFIwODogMDAwMDAw MDAwMDAwMDAwMSBSMDk6IDAwMDAwMDAwMDAwMDAyOWQKWyAgODQ2LjQzMjEyNV0gUjEwOiBmZmZm OTYxYzQxNGE3ODIwIFIxMTogMDAwMDAwMDAwMDAwMDI5ZCBSMTI6IDAwMDAwMDAwMDAwMDA0MDAK WyAgODQ2LjQzMjEyNl0gUjEzOiAwMDAwMDAwMDAwMDAwMDAwIFIxNDogZmZmZjg5ZGZmNGZmODhk MCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKWyAgODQ2LjQzMjEyOF0gRlM6ICAwMDAwN2Y4ODJlMmZi NzAwKDAwMDApIEdTOmZmZmY4OWRmZmZkMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAw MApbICA4NDYuNDMyMTMwXSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAw MDgwMDUwMDMzClsgIDg0Ni40MzIxMzFdIENSMjogMDAwMDAwMDAwMWE4ODAwOCBDUjM6IDAwMDAw MDAxZWI1NzIwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwNmUwClsgIDg0Ni40MzIxMzVdIENhbGwgVHJh Y2U6ClsgIDg0Ni40MzIxNTFdICBmMmZzX3dhaXRfb25fYmxvY2tfd3JpdGViYWNrKzB4MjAvMHgx MTAKWyAgODQ2LjQzMjE1OF0gIGYyZnNfZ3JhYl9yZWFkX2JpbysweGJjLzB4ZTAKWyAgODQ2LjQz MjE2MV0gIGYyZnNfc3VibWl0X3BhZ2VfcmVhZCsweDIxLzB4MjgwClsgIDg0Ni40MzIxNjNdICBm MmZzX2dldF9yZWFkX2RhdGFfcGFnZSsweGI3LzB4M2MwClsgIDg0Ni40MzIxNjVdICBmMmZzX2dl dF9sb2NrX2RhdGFfcGFnZSsweDI5LzB4MWUwClsgIDg0Ni40MzIxNjddICBmMmZzX2dldF9uZXdf ZGF0YV9wYWdlKzB4MTQ4LzB4NTUwClsgIDg0Ni40MzIxNzBdICBmMmZzX2FkZF9yZWd1bGFyX2Vu dHJ5KzB4MWQyLzB4NTUwClsgIDg0Ni40MzIxNzhdICA/IF9fc3dpdGNoX3RvKzB4MTJmLzB4NDYw ClsgIDg0Ni40MzIxODFdICBmMmZzX2FkZF9kZW50cnkrMHg2YS8weGQwClsgIDg0Ni40MzIxODRd ICBmMmZzX2RvX2FkZF9saW5rKzB4ZTkvMHgxNDAKWyAgODQ2LjQzMjE4Nl0gIF9fcmVjb3Zlcl9k b3RfZGVudHJpZXMrMHgyNjAvMHgyODAKWyAgODQ2LjQzMjE4OV0gIGYyZnNfbG9va3VwKzB4MzQz LzB4MzkwClsgIDg0Ni40MzIxOTNdICBfX2xvb2t1cF9zbG93KzB4OTcvMHgxNTAKWyAgODQ2LjQz MjE5NV0gIGxvb2t1cF9zbG93KzB4MzUvMHg1MApbICA4NDYuNDMyMjA4XSAgd2Fsa19jb21wb25l bnQrMHgxYzYvMHg0NzAKWyAgODQ2LjQzMjIxMl0gID8gbWVtY2dfa21lbV9jaGFyZ2VfbWVtY2cr MHg3MC8weDkwClsgIDg0Ni40MzIyMTVdICA/IHBhZ2VfYWRkX2ZpbGVfcm1hcCsweDEzLzB4MjAw ClsgIDg0Ni40MzIyMTddICBwYXRoX2xvb2t1cGF0KzB4NzYvMHgyMzAKWyAgODQ2LjQzMjIxOV0g ID8gX19hbGxvY19wYWdlc19ub2RlbWFzaysweGZjLzB4MjgwClsgIDg0Ni40MzIyMjFdICBmaWxl bmFtZV9sb29rdXArMHhiOC8weDFhMApbICA4NDYuNDMyMjI0XSAgPyBfY29uZF9yZXNjaGVkKzB4 MTYvMHg0MApbICA4NDYuNDMyMjI2XSAgPyBrbWVtX2NhY2hlX2FsbG9jKzB4MTYwLzB4MWQwClsg IDg0Ni40MzIyMjhdICA/IHBhdGhfbGlzdHhhdHRyKzB4NDEvMHhhMApbICA4NDYuNDMyMjMwXSAg cGF0aF9saXN0eGF0dHIrMHg0MS8weGEwClsgIDg0Ni40MzIyMzNdICBkb19zeXNjYWxsXzY0KzB4 NTUvMHgxMDAKWyAgODQ2LjQzMjIzNV0gIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsw eDQ0LzB4YTkKWyAgODQ2LjQzMjIzN10gUklQOiAwMDMzOjB4N2Y4ODJkZTFjMGQ3ClsgIDg0Ni40 MzIyMzddIENvZGU6IGYwIGZmIGZmIDczIDAxIGMzIDQ4IDhiIDBkIGJlIGRkIDJiIDAwIGY3IGQ4 IDY0IDg5IDAxIDQ4IDgzIGM4IGZmIGMzIDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIDY2 IDkwIGI4IGMyIDAwIDAwIDAwIDBmIDA1IDw0OD4gM2QgMDEgZjAgZmYgZmYgNzMgMDEgYzMgNDgg OGIgMGQgOTEgZGQgMmIgMDAgZjcgZDggNjQgODkgMDEgNDgKWyAgODQ2LjQzMjI2OV0gUlNQOiAw MDJiOjAwMDA3ZmZlOGU2NmMyMzggRUZMQUdTOiAwMDAwMDIwMiBPUklHX1JBWDogMDAwMDAwMDAw MDAwMDBjMgpbICA4NDYuNDMyMjcxXSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAw MDAwMDAwMDAwIFJDWDogMDAwMDdmODgyZGUxYzBkNwpbICA4NDYuNDMyMjcyXSBSRFg6IDAwMDAw MDAwMDAwMDAwNzEgUlNJOiAwMDAwN2ZmZThlNjZjMjgwIFJESTogMDAwMDAwMDAwMWE4ODBjMApb ICA4NDYuNDMyMjczXSBSQlA6IDAwMDA3ZmZlOGU2NmMzMDAgUjA4OiAwMDAwMDAwMDAxYTg4MDEw IFIwOTogMDAwMDAwMDAwMDAwMDAwMApbICA4NDYuNDMyMjc0XSBSMTA6IDAwMDAwMDAwMDAwMDAx YWIgUjExOiAwMDAwMDAwMDAwMDAwMjAyIFIxMjogMDAwMDAwMDAwMDQwMDU1MApbICA4NDYuNDMy Mjc1XSBSMTM6IDAwMDA3ZmZlOGU2NmM0MDAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogMDAw MDAwMDAwMDAwMDAwMApbICA4NDYuNDMyMjc3XSAtLS1bIGVuZCB0cmFjZSBhYmNhNTRkZjM5ZDE0 ZjVlIF0tLS0KWyAgODQ2LjQzMjI3OV0gRjJGUy1mcyAobG9vcDApOiBpbnZhbGlkIGJsa2FkZHI6 IDEwMjQsIHR5cGU6IDUsIHJ1biBmc2NrIHRvIGZpeC4KWyAgODQ2LjQzMjM3Nl0gV0FSTklORzog Q1BVOiAxIFBJRDogMTI0OSBhdCBmcy9mMmZzL2YyZnMuaDoyNjk3IGYyZnNfd2FpdF9vbl9ibG9j a193cml0ZWJhY2srMHhiMS8weDExMApbICA4NDYuNDMyMzc2XSBNb2R1bGVzIGxpbmtlZCBpbjog c25kX2hkYV9jb2RlY19nZW5lcmljIHNuZF9oZGFfaW50ZWwgc25kX2hkYV9jb2RlYyBzbmRfaGRh X2NvcmUgc25kX2h3ZGVwIHNuZF9wY20gc25kX3RpbWVyIHNuZCBpbnB1dF9sZWRzIGpveWRldiBz b3VuZGNvcmUgc2VyaW9fcmF3IGkyY19waWl4NCBtYWNfaGlkIGliX2lzZXIgcmRtYV9jbSBpd19j bSBpYl9jbSBpYl9jb3JlIGNvbmZpZ2ZzIGlzY3NpX3RjcCBsaWJpc2NzaV90Y3AgbGliaXNjc2kg c2NzaV90cmFuc3BvcnRfaXNjc2kgYXV0b2ZzNCByYWlkMTAgcmFpZDQ1NiBsaWJjcmMzMmMgYXN5 bmNfcmFpZDZfcmVjb3YgYXN5bmNfbWVtY3B5IGFzeW5jX3BxIGFzeW5jX3hvciB4b3IgYXN5bmNf dHggcmFpZDZfcHEgcmFpZDEgcmFpZDAgbXVsdGlwYXRoIGxpbmVhciBxeGwgdHRtIGNyY3QxMGRp Zl9wY2xtdWwgY3JjMzJfcGNsbXVsIGRybV9rbXNfaGVscGVyIGdoYXNoX2NsbXVsbmlfaW50ZWwg c3lzY29weWFyZWEgc3lzZmlsbHJlY3Qgc3lzaW1nYmx0IGZiX3N5c19mb3BzIHBjYmMgZHJtIDgx Mzl0b28gYWVzbmlfaW50ZWwgODEzOWNwIGZsb3BweSBwc21vdXNlIG1paSBhZXNfeDg2XzY0IGNy eXB0b19zaW1kIHBhdGFfYWNwaSBjcnlwdGQgZ2x1ZV9oZWxwZXIKWyAgODQ2LjQzMjQxMF0gQ1BV OiAxIFBJRDogMTI0OSBDb21tOiBhLm91dCBUYWludGVkOiBHICAgICAgICBXICAgICAgICAgNC4x OC4wLXJjMysgIzEKWyAgODQ2LjQzMjQxMV0gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQ QyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgVWJ1bnR1LTEuOC4yLTF1YnVudHUxIDA0LzAx LzIwMTQKWyAgODQ2LjQzMjQxM10gUklQOiAwMDEwOmYyZnNfd2FpdF9vbl9ibG9ja193cml0ZWJh Y2srMHhiMS8weDExMApbICA4NDYuNDMyNDE0XSBDb2RlOiA2NiA5MCBmMCBmZiA0YiAzNCA3NCA1 OSA1YiA1ZCBjMyA0OCA4YiA3ZCAwMCA0MSBiOCAwNSAwMCAwMCAwMCA4OSBkOSA0OCBjNyBjMiBk OCBlOCAwZSA4YiA0OCBjNyBjNiAxZCBiMCAwYSA4YiBlOCBkZiBiYyBmZCBmZiA8MGY+IDBiIGYw IDgwIDRkIDQ4IDA0IGU5IDY3IGZmIGZmIGZmIDQ4IDhiIDAzIDQ4IGMxIGU4IDM3IDgzIGUwIDA3 ClsgIDg0Ni40MzI0NDVdIFJTUDogMDAxODpmZmZmOTYxYzQxNGE3OTEwIEVGTEFHUzogMDAwMTAy ODYKWyAgODQ2LjQzMjQ0N10gUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogMDAwMDAwMDAwMDAw MDQwMCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDYKWyAgODQ2LjQzMjQ0OF0gUkRYOiAwMDAwMDAwMDAw MDAwMDAwIFJTSTogMDAwMDAwMDAwMDAwMDA5MiBSREk6IGZmZmY4OWRmZmZkMTY1ZDAKWyAgODQ2 LjQzMjQ0OV0gUkJQOiBmZmZmODlkZmY1NDkyODAwIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6 IDAwMDAwMDAwMDAwMDAyZDEKWyAgODQ2LjQzMjQ1MF0gUjEwOiBmZmZmOTYxYzQxNGE3ODIwIFIx MTogZmZmZjg5ZGZhZDUwY2Y4MCBSMTI6IDAwMDAwMDAwMDAwMDA0MDAKWyAgODQ2LjQzMjQ1MV0g UjEzOiAwMDAwMDAwMDAwMDAwMDAwIFIxNDogZmZmZjg5ZGZmNGZmODhkMCBSMTU6IDAwMDAwMDAw MDAwMDAwMDAKWyAgODQ2LjQzMjQ1M10gRlM6ICAwMDAwN2Y4ODJlMmZiNzAwKDAwMDApIEdTOmZm ZmY4OWRmZmZkMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICA4NDYuNDMyNDU0 XSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgIDg0 Ni40MzI0NTVdIENSMjogMDAwMDAwMDAwMWE4ODAwOCBDUjM6IDAwMDAwMDAxZWI1NzIwMDAgQ1I0 OiAwMDAwMDAwMDAwMDAwNmUwClsgIDg0Ni40MzI0NTldIENhbGwgVHJhY2U6ClsgIDg0Ni40MzI0 NjNdICBmMmZzX2dyYWJfcmVhZF9iaW8rMHhiYy8weGUwClsgIDg0Ni40MzI0NjRdICBmMmZzX3N1 Ym1pdF9wYWdlX3JlYWQrMHgyMS8weDI4MApbICA4NDYuNDMyNDY2XSAgZjJmc19nZXRfcmVhZF9k YXRhX3BhZ2UrMHhiNy8weDNjMApbICA4NDYuNDMyNDY4XSAgZjJmc19nZXRfbG9ja19kYXRhX3Bh Z2UrMHgyOS8weDFlMApbICA4NDYuNDMyNDcwXSAgZjJmc19nZXRfbmV3X2RhdGFfcGFnZSsweDE0 OC8weDU1MApbICA4NDYuNDMyNDczXSAgZjJmc19hZGRfcmVndWxhcl9lbnRyeSsweDFkMi8weDU1 MApbICA4NDYuNDMyNDc1XSAgPyBfX3N3aXRjaF90bysweDEyZi8weDQ2MApbICA4NDYuNDMyNDc3 XSAgZjJmc19hZGRfZGVudHJ5KzB4NmEvMHhkMApbICA4NDYuNDMyNDgwXSAgZjJmc19kb19hZGRf bGluaysweGU5LzB4MTQwClsgIDg0Ni40MzI0ODNdICBfX3JlY292ZXJfZG90X2RlbnRyaWVzKzB4 MjYwLzB4MjgwClsgIDg0Ni40MzI0ODVdICBmMmZzX2xvb2t1cCsweDM0My8weDM5MApbICA4NDYu NDMyNDg4XSAgX19sb29rdXBfc2xvdysweDk3LzB4MTUwClsgIDg0Ni40MzI0OTBdICBsb29rdXBf c2xvdysweDM1LzB4NTAKWyAgODQ2LjQzMjUwNV0gIHdhbGtfY29tcG9uZW50KzB4MWM2LzB4NDcw ClsgIDg0Ni40MzI1MDldICA/IG1lbWNnX2ttZW1fY2hhcmdlX21lbWNnKzB4NzAvMHg5MApbICA4 NDYuNDMyNTExXSAgPyBwYWdlX2FkZF9maWxlX3JtYXArMHgxMy8weDIwMApbICA4NDYuNDMyNTEz XSAgcGF0aF9sb29rdXBhdCsweDc2LzB4MjMwClsgIDg0Ni40MzI1MTVdICA/IF9fYWxsb2NfcGFn ZXNfbm9kZW1hc2srMHhmYy8weDI4MApbICA4NDYuNDMyNTE3XSAgZmlsZW5hbWVfbG9va3VwKzB4 YjgvMHgxYTAKWyAgODQ2LjQzMjUyMF0gID8gX2NvbmRfcmVzY2hlZCsweDE2LzB4NDAKWyAgODQ2 LjQzMjUyMl0gID8ga21lbV9jYWNoZV9hbGxvYysweDE2MC8weDFkMApbICA4NDYuNDMyNTI1XSAg PyBwYXRoX2xpc3R4YXR0cisweDQxLzB4YTAKWyAgODQ2LjQzMjUyNl0gIHBhdGhfbGlzdHhhdHRy KzB4NDEvMHhhMApbICA4NDYuNDMyNTI5XSAgZG9fc3lzY2FsbF82NCsweDU1LzB4MTAwClsgIDg0 Ni40MzI1MzFdICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5ClsgIDg0 Ni40MzI1MzNdIFJJUDogMDAzMzoweDdmODgyZGUxYzBkNwpbICA4NDYuNDMyNTMzXSBDb2RlOiBm MCBmZiBmZiA3MyAwMSBjMyA0OCA4YiAwZCBiZSBkZCAyYiAwMCBmNyBkOCA2NCA4OSAwMSA0OCA4 MyBjOCBmZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAwMCAwMCAwMCA2NiA5MCBiOCBjMiAwMCAw MCAwMCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZmIDczIDAxIGMzIDQ4IDhiIDBkIDkxIGRkIDJi IDAwIGY3IGQ4IDY0IDg5IDAxIDQ4ClsgIDg0Ni40MzI1NjVdIFJTUDogMDAyYjowMDAwN2ZmZThl NjZjMjM4IEVGTEFHUzogMDAwMDAyMDIgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwYzIKWyAgODQ2 LjQzMjU2N10gUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDAwMDAwMCBSQ1g6 IDAwMDA3Zjg4MmRlMWMwZDcKWyAgODQ2LjQzMjU2OF0gUkRYOiAwMDAwMDAwMDAwMDAwMDcxIFJT STogMDAwMDdmZmU4ZTY2YzI4MCBSREk6IDAwMDAwMDAwMDFhODgwYzAKWyAgODQ2LjQzMjU2OV0g UkJQOiAwMDAwN2ZmZThlNjZjMzAwIFIwODogMDAwMDAwMDAwMWE4ODAxMCBSMDk6IDAwMDAwMDAw MDAwMDAwMDAKWyAgODQ2LjQzMjU3MF0gUjEwOiAwMDAwMDAwMDAwMDAwMWFiIFIxMTogMDAwMDAw MDAwMDAwMDIwMiBSMTI6IDAwMDAwMDAwMDA0MDA1NTAKWyAgODQ2LjQzMjU3MV0gUjEzOiAwMDAw N2ZmZThlNjZjNDAwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAK WyAgODQ2LjQzMjU3M10gLS0tWyBlbmQgdHJhY2UgYWJjYTU0ZGYzOWQxNGY1ZiBdLS0tClsgIDg0 Ni40MzQyODBdIEJVRzogdW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgTlVMTCBwb2ludGVyIGRlcmVm ZXJlbmNlIGF0IDAwMDAwMDAwMDAwMDAwMDgKWyAgODQ2LjQzNDQyNF0gUEdEIDgwMDAwMDAxZWJk M2EwNjcgUDREIDgwMDAwMDAxZWJkM2EwNjcgUFVEIDFlYjFhZTA2NyBQTUQgMApbICA4NDYuNDM0 NTUxXSBPb3BzOiAwMDAwIFsjMV0gU01QIFBUSQpbICA4NDYuNDM0Njk3XSBDUFU6IDAgUElEOiA0 NCBDb21tOiBrd29ya2VyL3U1OjAgVGFpbnRlZDogRyAgICAgICAgVyAgICAgICAgIDQuMTguMC1y YzMrICMxClsgIDg0Ni40MzQ4MDVdIEhhcmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0 NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIFVidW50dS0xLjguMi0xdWJ1bnR1MSAwNC8wMS8yMDE0 ClsgIDg0Ni40MzUwMDBdIFdvcmtxdWV1ZTogZnNjcnlwdF9yZWFkX3F1ZXVlIGRlY3J5cHRfd29y awpbICA4NDYuNDM1MTc0XSBSSVA6IDAwMTA6ZnNjcnlwdF9kb19wYWdlX2NyeXB0bysweDZlLzB4 MmQwClsgIDg0Ni40MzUzNTFdIENvZGU6IDAwIDY1IDQ4IDhiIDA0IDI1IDI4IDAwIDAwIDAwIDQ4 IDg5IDg0IDI0IDg4IDAwIDAwIDAwIDMxIGMwIGU4IDQzIGMyIGUwIGZmIDQ5IDhiIDg2IDQ4IDAy IDAwIDAwIDg1IGVkIGM3IDQ0IDI0IDcwIDAwIDAwIDAwIDAwIDw0OD4gOGIgNTggMDggMGYgODQg MTQgMDIgMDAgMDAgNDggOGIgNzggMTAgNDggOGIgMGMgMjQgNDggYzcgODQgMjQKWyAgODQ2LjQz NTY5Nl0gUlNQOiAwMDE4OmZmZmY5NjFjNDBmOWJkNjAgRUZMQUdTOiAwMDAxMDIwNgpbICA4NDYu NDM1ODcwXSBSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZmYzVmNzg3NzE5YjgwIFJDWDog ZmZmZmM1Zjc4NzcxOWI4MApbICA4NDYuNDM2MDUxXSBSRFg6IGZmZmZmZmZmOGI5ZjRiODggUlNJ OiBmZmZmZmZmZjhiMGFlNjIyIFJESTogZmZmZjk2MWM0MGY5YmRiOApbICA4NDYuNDM2MjYxXSBS QlA6IDAwMDAwMDAwMDAwMDEwMDAgUjA4OiBmZmZmYzVmNzg3NzE5YjgwIFIwOTogMDAwMDAwMDAw MDAwMTAwMApbICA4NDYuNDM2NDMzXSBSMTA6IDAwMDAwMDAwMDAwMDAwMTggUjExOiBmZWZlZmVm ZWZlZmVmZWZmIFIxMjogZmZmZmM1Zjc4NzcxOWI4MApbICA4NDYuNDM2NTYyXSBSMTM6IGZmZmZj NWY3ODc3MTliODAgUjE0OiBmZmZmODlkZmY0ZmY4OGQwIFIxNTogMGZmZmY4OWRmYWRkZWU2MApb ICA4NDYuNDM2NjU4XSBGUzogIDAwMDAwMDAwMDAwMDAwMDAoMDAwMCkgR1M6ZmZmZjg5ZGZmZmMw MDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwClsgIDg0Ni40MzY3NThdIENTOiAgMDAx MCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKWyAgODQ2LjQzNjg5OF0g Q1IyOiAwMDAwMDAwMDAwMDAwMDA4IENSMzogMDAwMDAwMDFlZGRkMDAwMCBDUjQ6IDAwMDAwMDAw MDAwMDA2ZjAKWyAgODQ2LjQzNzAwMV0gQ2FsbCBUcmFjZToKWyAgODQ2LjQzNzE4MV0gID8gY2hl Y2tfcHJlZW1wdF93YWtldXArMHhmMi8weDIzMApbICA4NDYuNDM3Mjc2XSAgPyBjaGVja19wcmVl bXB0X2N1cnIrMHg3Yy8weDkwClsgIDg0Ni40MzczNzBdICBmc2NyeXB0X2RlY3J5cHRfcGFnZSsw eDQ4LzB4NGQKWyAgODQ2LjQzNzQ2Nl0gIF9fZnNjcnlwdF9kZWNyeXB0X2JpbysweDViLzB4OTAK WyAgODQ2LjQzNzU0Ml0gIGRlY3J5cHRfd29yaysweDEyLzB4MjAKWyAgODQ2LjQzNzY1MV0gIHBy b2Nlc3Nfb25lX3dvcmsrMHgxNWUvMHgzZDAKWyAgODQ2LjQzNzc0MF0gIHdvcmtlcl90aHJlYWQr MHg0Yy8weDQ0MApbICA4NDYuNDM3ODQ4XSAga3RocmVhZCsweGY4LzB4MTMwClsgIDg0Ni40Mzc5 MzhdICA/IHJlc2N1ZXJfdGhyZWFkKzB4MzUwLzB4MzUwClsgIDg0Ni40MzgwMjJdICA/IGt0aHJl YWRfYXNzb2NpYXRlX2Jsa2NnKzB4OTAvMHg5MApbICA4NDYuNDM4MTE3XSAgcmV0X2Zyb21fZm9y aysweDM1LzB4NDAKWyAgODQ2LjQzODIwMV0gTW9kdWxlcyBsaW5rZWQgaW46IHNuZF9oZGFfY29k ZWNfZ2VuZXJpYyBzbmRfaGRhX2ludGVsIHNuZF9oZGFfY29kZWMgc25kX2hkYV9jb3JlIHNuZF9o d2RlcCBzbmRfcGNtIHNuZF90aW1lciBzbmQgaW5wdXRfbGVkcyBqb3lkZXYgc291bmRjb3JlIHNl cmlvX3JhdyBpMmNfcGlpeDQgbWFjX2hpZCBpYl9pc2VyIHJkbWFfY20gaXdfY20gaWJfY20gaWJf Y29yZSBjb25maWdmcyBpc2NzaV90Y3AgbGliaXNjc2lfdGNwIGxpYmlzY3NpIHNjc2lfdHJhbnNw b3J0X2lzY3NpIGF1dG9mczQgcmFpZDEwIHJhaWQ0NTYgbGliY3JjMzJjIGFzeW5jX3JhaWQ2X3Jl Y292IGFzeW5jX21lbWNweSBhc3luY19wcSBhc3luY194b3IgeG9yIGFzeW5jX3R4IHJhaWQ2X3Bx IHJhaWQxIHJhaWQwIG11bHRpcGF0aCBsaW5lYXIgcXhsIHR0bSBjcmN0MTBkaWZfcGNsbXVsIGNy YzMyX3BjbG11bCBkcm1fa21zX2hlbHBlciBnaGFzaF9jbG11bG5pX2ludGVsIHN5c2NvcHlhcmVh IHN5c2ZpbGxyZWN0IHN5c2ltZ2JsdCBmYl9zeXNfZm9wcyBwY2JjIGRybSA4MTM5dG9vIGFlc25p X2ludGVsIDgxMzljcCBmbG9wcHkgcHNtb3VzZSBtaWkgYWVzX3g4Nl82NCBjcnlwdG9fc2ltZCBw YXRhX2FjcGkgY3J5cHRkIGdsdWVfaGVscGVyClsgIDg0Ni40Mzg2NTNdIENSMjogMDAwMDAwMDAw MDAwMDAwOApbICA4NDYuNDM4NzEzXSAtLS1bIGVuZCB0cmFjZSBhYmNhNTRkZjM5ZDE0ZjYwIF0t LS0KWyAgODQ2LjQzODc5Nl0gUklQOiAwMDEwOmZzY3J5cHRfZG9fcGFnZV9jcnlwdG8rMHg2ZS8w eDJkMApbICA4NDYuNDM4ODQ0XSBDb2RlOiAwMCA2NSA0OCA4YiAwNCAyNSAyOCAwMCAwMCAwMCA0 OCA4OSA4NCAyNCA4OCAwMCAwMCAwMCAzMSBjMCBlOCA0MyBjMiBlMCBmZiA0OSA4YiA4NiA0OCAw MiAwMCAwMCA4NSBlZCBjNyA0NCAyNCA3MCAwMCAwMCAwMCAwMCA8NDg+IDhiIDU4IDA4IDBmIDg0 IDE0IDAyIDAwIDAwIDQ4IDhiIDc4IDEwIDQ4IDhiIDBjIDI0IDQ4IGM3IDg0IDI0ClsgIDg0Ni40 MzkwODRdIFJTUDogMDAxODpmZmZmOTYxYzQwZjliZDYwIEVGTEFHUzogMDAwMTAyMDYKWyAgODQ2 LjQzOTE3Nl0gUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogZmZmZmM1Zjc4NzcxOWI4MCBSQ1g6 IGZmZmZjNWY3ODc3MTliODAKWyAgODQ2LjQ0MDkyN10gUkRYOiBmZmZmZmZmZjhiOWY0Yjg4IFJT STogZmZmZmZmZmY4YjBhZTYyMiBSREk6IGZmZmY5NjFjNDBmOWJkYjgKWyAgODQ2LjQ0MjA4M10g UkJQOiAwMDAwMDAwMDAwMDAxMDAwIFIwODogZmZmZmM1Zjc4NzcxOWI4MCBSMDk6IDAwMDAwMDAw MDAwMDEwMDAKWyAgODQ2LjQ0MzI4NF0gUjEwOiAwMDAwMDAwMDAwMDAwMDE4IFIxMTogZmVmZWZl ZmVmZWZlZmVmZiBSMTI6IGZmZmZjNWY3ODc3MTliODAKWyAgODQ2LjQ0NDQ0OF0gUjEzOiBmZmZm YzVmNzg3NzE5YjgwIFIxNDogZmZmZjg5ZGZmNGZmODhkMCBSMTU6IDBmZmZmODlkZmFkZGVlNjAK WyAgODQ2LjQ0NTU1OF0gRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmY4OWRmZmZj MDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICA4NDYuNDQ2Njg3XSBDUzogIDAw MTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgIDg0Ni40NDc3OTZd IENSMjogMDAwMDAwMDAwMDAwMDAwOCBDUjM6IDAwMDAwMDAxZWRkZDAwMDAgQ1I0OiAwMDAwMDAw MDAwMDAwNmYwCgotIExvY2F0aW9uCmh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L3Y0 LjE4LXJjNC9zb3VyY2UvZnMvY3J5cHRvL2NyeXB0by5jI0wxNDkKCXN0cnVjdCBjcnlwdG9fc2tj aXBoZXIgKnRmbSA9IGNpLT5jaV9jdGZtOwpIZXJlIGNpIGNhbiBiZSBOVUxMCgpOb3RlIHRoYXQg dGhpcyBpc3N1ZSBtYXliZSByZXF1aXJlIENPTkZJR19GMkZTX0ZTX0VOQ1JZUFRJT049eSB0byBy ZXByb2R1Y2UuCgpSZXBvcnRlZC1ieSBXZW4gWHUgPHdlbi54dUBnYXRlY2guZWR1PgpTaWduZWQt b2ZmLWJ5OiBDaGFvIFl1IDx5dWNoYW8wQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IEphZWdl dWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+Cltid2g6IEJhY2twb3J0ZWQgdG8gNC40OiBhZGp1 c3QgY29udGV4dF0KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bj b2RldGhpbmsuY28udWs+Ci0tLQogZnMvZjJmcy9kYXRhLmMgIHwgIDMgKysrCiBmcy9mMmZzL2lu b2RlLmMgfCAxOCArKysrKysrKysrKysrLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0 aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9mcy9mMmZzL2RhdGEuYyBiL2Zz L2YyZnMvZGF0YS5jCmluZGV4IGZlNzY5NGVjMzU0Ni4uMmIwYjY3MTQ4NGJkIDEwMDY0NAotLS0g YS9mcy9mMmZzL2RhdGEuYworKysgYi9mcy9mMmZzL2RhdGEuYwpAQCAtODg0LDYgKzg4NCw5IEBA IHN0cnVjdCBiaW8gKmYyZnNfZ3JhYl9iaW8oc3RydWN0IGlub2RlICppbm9kZSwgYmxvY2tfdCBi bGthZGRyLAogCXN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYgPSBzYmktPnNiLT5zX2JkZXY7CiAJ c3RydWN0IGJpbyAqYmlvOwogCisJaWYgKCFmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIoc2JpLCBibGth ZGRyLCBEQVRBX0dFTkVSSUMpKQorCQlyZXR1cm4gRVJSX1BUUigtRUZBVUxUKTsKKwogCWlmIChm MmZzX2VuY3J5cHRlZF9pbm9kZShpbm9kZSkgJiYgU19JU1JFRyhpbm9kZS0+aV9tb2RlKSkgewog CQljdHggPSBmMmZzX2dldF9jcnlwdG9fY3R4KGlub2RlKTsKIAkJaWYgKElTX0VSUihjdHgpKQpk aWZmIC0tZ2l0IGEvZnMvZjJmcy9pbm9kZS5jIGIvZnMvZjJmcy9pbm9kZS5jCmluZGV4IDNhYzU3 Y2JlZTBmZC4uODliZjhkZDc3NThjIDEwMDY0NAotLS0gYS9mcy9mMmZzL2lub2RlLmMKKysrIGIv ZnMvZjJmcy9pbm9kZS5jCkBAIC01MCwxNCArNTAsMTYgQEAgc3RhdGljIHZvaWQgX19nZXRfaW5v ZGVfcmRldihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZjJmc19pbm9kZSAqcmkpCiAJfQog fQogCi1zdGF0aWMgYm9vbCBfX3dyaXR0ZW5fZmlyc3RfYmxvY2soc3RydWN0IGYyZnNfc2JfaW5m byAqc2JpLAorc3RhdGljIGludCBfX3dyaXR0ZW5fZmlyc3RfYmxvY2soc3RydWN0IGYyZnNfc2Jf aW5mbyAqc2JpLAogCQkJCQlzdHJ1Y3QgZjJmc19pbm9kZSAqcmkpCiB7CiAJYmxvY2tfdCBhZGRy ID0gbGUzMl90b19jcHUocmktPmlfYWRkclswXSk7CiAKLQlpZiAoaXNfdmFsaWRfZGF0YV9ibGth ZGRyKHNiaSwgYWRkcikpCi0JCXJldHVybiB0cnVlOwotCXJldHVybiBmYWxzZTsKKwlpZiAoIV9f aXNfdmFsaWRfZGF0YV9ibGthZGRyKGFkZHIpKQorCQlyZXR1cm4gMTsKKwlpZiAoIWYyZnNfaXNf dmFsaWRfYmxrYWRkcihzYmksIGFkZHIsIERBVEFfR0VORVJJQykpCisJCXJldHVybiAtRUZBVUxU OworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBfX3NldF9pbm9kZV9yZGV2KHN0cnVjdCBp bm9kZSAqaW5vZGUsIHN0cnVjdCBmMmZzX2lub2RlICpyaSkKQEAgLTE0NSw2ICsxNDcsNyBAQCBz dGF0aWMgaW50IGRvX3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKIAlzdHJ1Y3QgZjJm c19pbm9kZV9pbmZvICpmaSA9IEYyRlNfSShpbm9kZSk7CiAJc3RydWN0IHBhZ2UgKm5vZGVfcGFn ZTsKIAlzdHJ1Y3QgZjJmc19pbm9kZSAqcmk7CisJaW50IGVycjsKIAogCS8qIENoZWNrIGlmIGlu byBpcyB3aXRoaW4gc2NvcGUgKi8KIAlpZiAoY2hlY2tfbmlkX3JhbmdlKHNiaSwgaW5vZGUtPmlf aW5vKSkgewpAQCAtMTk5LDcgKzIwMiwxMiBAQCBzdGF0aWMgaW50IGRvX3JlYWRfaW5vZGUoc3Ry dWN0IGlub2RlICppbm9kZSkKIAkvKiBnZXQgcmRldiBieSB1c2luZyBpbmxpbmVfaW5mbyAqLwog CV9fZ2V0X2lub2RlX3JkZXYoaW5vZGUsIHJpKTsKIAotCWlmIChfX3dyaXR0ZW5fZmlyc3RfYmxv Y2soc2JpLCByaSkpCisJZXJyID0gX193cml0dGVuX2ZpcnN0X2Jsb2NrKHNiaSwgcmkpOworCWlm IChlcnIgPCAwKSB7CisJCWYyZnNfcHV0X3BhZ2Uobm9kZV9wYWdlLCAxKTsKKwkJcmV0dXJuIGVy cjsKKwl9CisJaWYgKCFlcnIpCiAJCXNldF9pbm9kZV9mbGFnKEYyRlNfSShpbm9kZSksIEZJX0ZJ UlNUX0JMT0NLX1dSSVRURU4pOwogCiAJZjJmc19wdXRfcGFnZShub2RlX3BhZ2UsIDEpOwoKRnJv bSA1MjU3NWM3OGNhNWU3YTc2ZTkxY2FiNjM1ZDJiODlmODQ1ZjRhNmRkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBDaGFvIFl1IDx5dWNoYW8wQGh1YXdlaS5jb20+CkRhdGU6IFdlZCwg MSBBdWcgMjAxOCAxOToxNjoxMSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzMvMzZdIGYyZnM6IGZp eCB0byBkbyBzYW5pdHkgY2hlY2sgd2l0aCBjcF9wYWNrX3N0YXJ0X3N1bQoKY29tbWl0IGU0OTRj MmY5OTVkNjE4MWQ2ZTI5YzQ5MjdkNjhlMGYyOTVlY2Y3NWIgdXBzdHJlYW0uCgpBZnRlciBmdXp6 aW5nLCBjcF9wYWNrX3N0YXJ0X3N1bSBjb3VsZCBiZSBjb3JydXB0ZWQsIHNvIGN1cnJlbnQgbG9n J3MKc3VtbWFyeSBpbmZvIHNob3VsZCBiZSB3cm9uZyBkdWUgdG8gbG9hZGluZyBpbmNvcnJlY3Qg c3VtbWFyeSBibG9jay4KVGhlbiwgaWYgc2VnbWVudCdzIHR5cGUgaW4gY3VycmVudCBsb2cgaXMg ZXhjZWVkZWQgTlJfQ1VSU0VHX1RZUEUsIGl0CmNhbiBsZWFkIGFjY2Vzc2luZyBpbnZhbGlkIGRp cnR5X2ktPmRpcnR5X3NlZ21hcCBiaXRtYXAgZmluYWxseS4KCkFkZCBzYW5pdHkgY2hlY2sgZm9y IGNwX3BhY2tfc3RhcnRfc3VtIHRvIGZpeCB0aGlzIGlzc3VlLgoKaHR0cHM6Ly9idWd6aWxsYS5r ZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA0MTkKCi0gUmVwcm9kdWNlCgotIEtlcm5lbCBt ZXNzYWdlIChmMmZzLWRldiB3LyBLQVNBTikKWyAzMTE3LjU3ODQzMl0gRjJGUy1mcyAobG9vcDAp OiBJbnZhbGlkIGxvZyBibG9ja3MgcGVyIHNlZ21lbnQgKDgpCgpbIDMxMTcuNTc4NDQ1XSBGMkZT LWZzIChsb29wMCk6IENhbid0IGZpbmQgdmFsaWQgRjJGUyBmaWxlc3lzdGVtIGluIDJ0aCBzdXBl cmJsb2NrClsgMzExNy41ODEzNjRdIEYyRlMtZnMgKGxvb3AwKTogaW52YWxpZCBjcmNfb2Zmc2V0 OiAzMDcxNgpbIDMxMTcuNTgzNTY0XSBXQVJOSU5HOiBDUFU6IDEgUElEOiAxMjI1IGF0IGZzL2Yy ZnMvY2hlY2twb2ludC5jOjkwIF9fZ2V0X21ldGFfcGFnZSsweDQ0OC8weDRiMApbIDMxMTcuNTgz NTcwXSBNb2R1bGVzIGxpbmtlZCBpbjogc25kX2hkYV9jb2RlY19nZW5lcmljIHNuZF9oZGFfaW50 ZWwgc25kX2hkYV9jb2RlYyBzbmRfaGRhX2NvcmUgc25kX2h3ZGVwIHNuZF9wY20gc25kX3RpbWVy IGpveWRldiBpbnB1dF9sZWRzIHNlcmlvX3JhdyBzbmQgc291bmRjb3JlIG1hY19oaWQgaTJjX3Bp aXg0IGliX2lzZXIgcmRtYV9jbSBpd19jbSBpYl9jbSBpYl9jb3JlIGNvbmZpZ2ZzIGlzY3NpX3Rj cCBsaWJpc2NzaV90Y3AgbGliaXNjc2kgc2NzaV90cmFuc3BvcnRfaXNjc2kgYnRyZnMgenN0ZF9k ZWNvbXByZXNzIHpzdGRfY29tcHJlc3MgeHhoYXNoIHJhaWQxMCByYWlkNDU2IGFzeW5jX3JhaWQ2 X3JlY292IGFzeW5jX21lbWNweSBhc3luY19wcSBhc3luY194b3IgYXN5bmNfdHggeG9yIHJhaWQ2 X3BxIGxpYmNyYzMyYyByYWlkMSByYWlkMCBtdWx0aXBhdGggbGluZWFyIDgxMzl0b28gcXhsIHR0 bSBkcm1fa21zX2hlbHBlciBzeXNjb3B5YXJlYSBzeXNmaWxscmVjdCBzeXNpbWdibHQgZmJfc3lz X2ZvcHMgZHJtIGNyY3QxMGRpZl9wY2xtdWwgY3JjMzJfcGNsbXVsIGdoYXNoX2NsbXVsbmlfaW50 ZWwgcGNiYyBhZXNuaV9pbnRlbCBwc21vdXNlIGFlc194ODZfNjQgODEzOWNwIGNyeXB0b19zaW1k IGNyeXB0ZCBtaWkgZ2x1ZV9oZWxwZXIgcGF0YV9hY3BpIGZsb3BweQpbIDMxMTcuNTg0MDE0XSBD UFU6IDEgUElEOiAxMjI1IENvbW06IG1vdW50IE5vdCB0YWludGVkIDQuMTcuMCsgIzEKWyAzMTE3 LjU4NDAxN10gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwg MTk5NiksIEJJT1MgVWJ1bnR1LTEuOC4yLTF1YnVudHUxIDA0LzAxLzIwMTQKWyAzMTE3LjU4NDAy Ml0gUklQOiAwMDEwOl9fZ2V0X21ldGFfcGFnZSsweDQ0OC8weDRiMApbIDMxMTcuNTg0MDIzXSBD b2RlOiAwMCA0OSA4ZCBiYyAyNCA4NCAwMCAwMCAwMCBlOCA3NCA1NCBkYSBmZiA0MSA4MyA4YyAy NCA4NCAwMCAwMCAwMCAwOCA0YyA4OSBmNiA0YyA4OSBlZiBlOCBjMCBkOSA5NSAwMCA0OCA4OSBl ZiBlOCAxOCBlMyAwMCAwMCA8MGY+IDBiIGYwIDgwIDRkIDQ4IDA0IGU5IDBmIGZlIGZmIGZmIDBm IDBiIDQ4IDg5IGM3IDQ4IDg5IDA0IDI0IGU4ClsgMzExNy41ODQwNzJdIFJTUDogMDAxODpmZmZm ODgwMThlYjY3OGMwIEVGTEFHUzogMDAwMTAyODYKWyAzMTE3LjU4NDA4Ml0gUkFYOiBmZmZmODgw MThmMGE2YTc4IFJCWDogZmZmZmVhMDAwN2E0NjYwMCBSQ1g6IGZmZmZmZmZmOTMxNGQxYjIKWyAz MTE3LjU4NDA4NV0gUkRYOiBmZmZmZmZmZjAwMDAwMDAxIFJTSTogMDAwMDAwMDAwMDAwMDAwMCBS REk6IGZmZmY4ODAxOGYwYTZhOTgKWyAzMTE3LjU4NDA4N10gUkJQOiBmZmZmODgwMThlYmU5OTgw IFIwODogMDAwMDAwMDAwMDAwMDAwMiBSMDk6IDAwMDAwMDAwMDAwMDAwMDEKWyAzMTE3LjU4NDA5 MF0gUjEwOiAwMDAwMDAwMDAwMDAwMDAxIFIxMTogZmZmZmVkMDAzMjZlNDQ1MCBSMTI6IGZmZmY4 ODAxOTM3MjIyMDAKWyAzMTE3LjU4NDA5Ml0gUjEzOiBmZmZmODgwMThlYmU5YWZjIFIxNDogMDAw MDAwMDAwMDAwMDIwNiBSMTU6IGZmZmY4ODAxOGViNjc5MDAKWyAzMTE3LjU4NDA5Nl0gRlM6ICAw MDAwN2Y1Njk0NjM2ODQwKDAwMDApIEdTOmZmZmY4ODAxZjNiMDAwMDAoMDAwMCkga25sR1M6MDAw MDAwMDAwMDAwMDAwMApbIDMxMTcuNTg0MDk4XSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAg Q1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgMzExNy41ODQxMDFdIENSMjogMDAwMDAwMDAwMTZmMjFi OCBDUjM6IDAwMDAwMDAxOTFjMjIwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwNmUwClsgMzExNy41ODQx MTJdIENhbGwgVHJhY2U6ClsgMzExNy41ODQxMjFdICA/IGYyZnNfc2V0X21ldGFfcGFnZV9kaXJ0 eSsweDE1MC8weDE1MApbIDMxMTcuNTg0MTI3XSAgPyBmMmZzX2J1aWxkX3NlZ21lbnRfbWFuYWdl cisweGJmOS8weDMxOTAKWyAzMTE3LjU4NDEzM10gID8gZjJmc19ucGFnZXNfZm9yX3N1bW1hcnlf Zmx1c2grMHg3NS8weDEyMApbIDMxMTcuNTg0MTQ1XSAgZjJmc19idWlsZF9zZWdtZW50X21hbmFn ZXIrMHhkYTgvMHgzMTkwClsgMzExNy41ODQxNTFdICA/IGYyZnNfZ2V0X3ZhbGlkX2NoZWNrcG9p bnQrMHgyOTgvMHhhMDAKWyAzMTE3LjU4NDE1Nl0gID8gZjJmc19mbHVzaF9zaXRfZW50cmllcysw eDEwZTAvMHgxMGUwClsgMzExNy41ODQxODRdICA/IG1hcF9pZF9yYW5nZV9kb3duKzB4MTdjLzB4 MWIwClsgMzExNy41ODQxODhdICA/IF9fcHV0X3VzZXJfbnMrMHgzMC8weDMwClsgMzExNy41ODQy MDZdICA/IGZpbmRfbmV4dF9iaXQrMHg1My8weDkwClsgMzExNy41ODQyMzddICA/IGNwdW1hc2tf bmV4dCsweDE2LzB4MjAKWyAzMTE3LjU4NDI0OV0gIGYyZnNfZmlsbF9zdXBlcisweDE5NDgvMHgy YjQwClsgMzExNy41ODQyNThdICA/IGYyZnNfY29tbWl0X3N1cGVyKzB4MWEwLzB4MWEwClsgMzEx Ny41ODQyNzldICA/IHNnZXRfdXNlcm5zKzB4NjVlLzB4NjkwClsgMzExNy41ODQyOTZdICA/IHNl dF9ibG9ja3NpemUrMHg4OC8weDEzMApbIDMxMTcuNTg0MzAyXSAgPyBmMmZzX2NvbW1pdF9zdXBl cisweDFhMC8weDFhMApbIDMxMTcuNTg0MzA1XSAgbW91bnRfYmRldisweDFjMC8weDIwMApbIDMx MTcuNTg0MzEwXSAgbW91bnRfZnMrMHg1Yy8weDE5MApbIDMxMTcuNTg0MzIwXSAgdmZzX2tlcm5f bW91bnQrMHg2NC8weDE5MApbIDMxMTcuNTg0MzMwXSAgZG9fbW91bnQrMHgyZTQvMHgxNDUwClsg MzExNy41ODQzNDNdICA/IGxvY2tyZWZfcHV0X3JldHVybisweDEzMC8weDEzMApbIDMxMTcuNTg0 MzQ3XSAgPyBjb3B5X21vdW50X3N0cmluZysweDIwLzB4MjAKWyAzMTE3LjU4NDM1N10gID8ga2Fz YW5fdW5wb2lzb25fc2hhZG93KzB4MzEvMHg0MApbIDMxMTcuNTg0MzYyXSAgPyBrYXNhbl9rbWFs bG9jKzB4YTYvMHhkMApbIDMxMTcuNTg0MzczXSAgPyBtZW1jZ19rbWVtX3B1dF9jYWNoZSsweDE2 LzB4OTAKWyAzMTE3LjU4NDM3N10gID8gX19rbWFsbG9jX3RyYWNrX2NhbGxlcisweDE5Ni8weDIx MApbIDMxMTcuNTg0MzgzXSAgPyBfY29weV9mcm9tX3VzZXIrMHg2MS8weDkwClsgMzExNy41ODQz OTZdICA/IG1lbWR1cF91c2VyKzB4M2UvMHg2MApbIDMxMTcuNTg0NDAxXSAga3N5c19tb3VudCsw eDdlLzB4ZDAKWyAzMTE3LjU4NDQwNV0gIF9feDY0X3N5c19tb3VudCsweDYyLzB4NzAKWyAzMTE3 LjU4NDQyN10gIGRvX3N5c2NhbGxfNjQrMHg3My8weDE2MApbIDMxMTcuNTg0NDQwXSAgZW50cnlf U1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQpbIDMxMTcuNTg0NDU1XSBSSVA6IDAw MzM6MHg3ZjU2OTNmMTRiOWEKWyAzMTE3LjU4NDQ1Nl0gQ29kZTogNDggOGIgMGQgMDEgYzMgMmIg MDAgZjcgZDggNjQgODkgMDEgNDggODMgYzggZmYgYzMgNjYgMmUgMGYgMWYgODQgMDAgMDAgMDAg MDAgMDAgMGYgMWYgNDQgMDAgMDAgNDkgODkgY2EgYjggYTUgMDAgMDAgMDAgMGYgMDUgPDQ4PiAz ZCAwMSBmMCBmZiBmZiA3MyAwMSBjMyA0OCA4YiAwZCBjZSBjMiAyYiAwMCBmNyBkOCA2NCA4OSAw MSA0OApbIDMxMTcuNTg0NTA1XSBSU1A6IDAwMmI6MDAwMDdmZmYyNzM0NjQ4OCBFRkxBR1M6IDAw MDAwMjA2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMGE1ClsgMzExNy41ODQ1MTBdIFJBWDogZmZm ZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDE2ZTIwMzAgUkNYOiAwMDAwN2Y1NjkzZjE0Yjlh ClsgMzExNy41ODQ1MTJdIFJEWDogMDAwMDAwMDAwMTZlMjIxMCBSU0k6IDAwMDAwMDAwMDE2ZTNm MzAgUkRJOiAwMDAwMDAwMDAxNmVlMDQwClsgMzExNy41ODQ1MTRdIFJCUDogMDAwMDAwMDAwMDAw MDAwMCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDEzClsgMzExNy41 ODQ1MTZdIFIxMDogMDAwMDAwMDBjMGVkMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAyMDYgUjEyOiAw MDAwMDAwMDAxNmVlMDQwClsgMzExNy41ODQ1MTldIFIxMzogMDAwMDAwMDAwMTZlMjIxMCBSMTQ6 IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiAwMDAwMDAwMDAwMDAwMDAzClsgMzExNy41ODQ1MjNdIC0t LVsgZW5kIHRyYWNlIGE4ZTBkODk5OTg1ZmFmMzEgXS0tLQpbIDMxMTcuNjg1NjYzXSBGMkZTLWZz IChsb29wMCk6IGYyZnNfY2hlY2tfbmlkX3JhbmdlOiBvdXQtb2YtcmFuZ2UgbmlkPTIsIHJ1biBm c2NrIHRvIGZpeC4KWyAzMTE3LjY4NTY3M10gRjJGUy1mcyAobG9vcDApOiByZWNvdmVyX2RhdGE6 IGlubyA9IDIgKGlfc2l6ZTogcmVjb3ZlcikgcmVjb3ZlcmVkID0gMSwgZXJyID0gMApbIDMxMTcu Njg1NzA3XSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KWyAzMTE3LjY4NTk1NV0gQlVHOiBLQVNBTjogc2xhYi1vdXQtb2Yt Ym91bmRzIGluIF9fcmVtb3ZlX2RpcnR5X3NlZ21lbnQrMHhkZC8weDFlMApbIDMxMTcuNjg2MTc1 XSBSZWFkIG9mIHNpemUgOCBhdCBhZGRyIGZmZmY4ODAxOGYwYTYzZDAgYnkgdGFzayBtb3VudC8x MjI1CgpbIDMxMTcuNjg2NDc3XSBDUFU6IDAgUElEOiAxMjI1IENvbW06IG1vdW50IFRhaW50ZWQ6 IEcgICAgICAgIFcgICAgICAgICA0LjE3LjArICMxClsgMzExNy42ODY0ODFdIEhhcmR3YXJlIG5h bWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIFVidW50dS0x LjguMi0xdWJ1bnR1MSAwNC8wMS8yMDE0ClsgMzExNy42ODY0ODNdIENhbGwgVHJhY2U6ClsgMzEx Ny42ODY0OTRdICBkdW1wX3N0YWNrKzB4NzEvMHhhYgpbIDMxMTcuNjg2NTEyXSAgcHJpbnRfYWRk cmVzc19kZXNjcmlwdGlvbisweDZiLzB4MjkwClsgMzExNy42ODY1MTddICBrYXNhbl9yZXBvcnQr MHgyOGUvMHgzOTAKWyAzMTE3LjY4NjUyMl0gID8gX19yZW1vdmVfZGlydHlfc2VnbWVudCsweGRk LzB4MWUwClsgMzExNy42ODY1MjddICBfX3JlbW92ZV9kaXJ0eV9zZWdtZW50KzB4ZGQvMHgxZTAK WyAzMTE3LjY4NjUzMl0gIGxvY2F0ZV9kaXJ0eV9zZWdtZW50KzB4MTg5LzB4MTkwClsgMzExNy42 ODY1MzhdICBmMmZzX2FsbG9jYXRlX25ld19zZWdtZW50cysweGE5LzB4ZTAKWyAzMTE3LjY4NjU0 M10gIHJlY292ZXJfZGF0YSsweDcwMy8weDJjMjAKWyAzMTE3LjY4NjU0N10gID8gZjJmc19yZWNv dmVyX2ZzeW5jX2RhdGErMHg0OGYvMHhkNTAKWyAzMTE3LjY4NjU1M10gID8ga3N5c19tb3VudCsw eDdlLzB4ZDAKWyAzMTE3LjY4NjU2NF0gID8gcG9saWN5X25vZGVtYXNrKzB4MWEvMHg5MApbIDMx MTcuNjg2NTY3XSAgPyBwb2xpY3lfbm9kZSsweDU2LzB4NzAKWyAzMTE3LjY4NjU3MV0gID8gYWRk X2ZzeW5jX2lub2RlKzB4ZjAvMHhmMApbIDMxMTcuNjg2NTkyXSAgPyBibGtfZmluaXNoX3BsdWcr MHg0NC8weDYwClsgMzExNy42ODY1OTddICA/IGYyZnNfcmFfbWV0YV9wYWdlcysweDM4Yi8weDVl MApbIDMxMTcuNjg2NjAyXSAgPyBmaW5kX2lub2RlX2Zhc3QrMHhhYy8weGMwClsgMzExNy42ODY2 MDZdICA/IGYyZnNfaXNfdmFsaWRfYmxrYWRkcisweDMyMC8weDMyMApbIDMxMTcuNjg2NjE4XSAg PyBfX3JhZGl4X3RyZWVfbG9va3VwKzB4MTUwLzB4MTUwClsgMzExNy42ODY2MzNdICA/IGRxZ2V0 KzB4NjcwLzB4NjcwClsgMzExNy42ODY2NDhdICA/IHBhZ2VjYWNoZV9nZXRfcGFnZSsweDI5LzB4 NDEwClsgMzExNy42ODY2NTZdICA/IGttZW1fY2FjaGVfYWxsb2MrMHgxNzYvMHgxZTAKWyAzMTE3 LjY4NjY2MF0gID8gZjJmc19pc192YWxpZF9ibGthZGRyKzB4MTFkLzB4MzIwClsgMzExNy42ODY2 NjRdICBmMmZzX3JlY292ZXJfZnN5bmNfZGF0YSsweGMyMy8weGQ1MApbIDMxMTcuNjg2NjcwXSAg PyBmMmZzX3NwYWNlX2Zvcl9yb2xsX2ZvcndhcmQrMHg2MC8weDYwClsgMzExNy42ODY2NzRdICA/ IHJiX2luc2VydF9jb2xvcisweDMyMy8weDNkMApbIDMxMTcuNjg2Njc4XSAgPyBmMmZzX3JlY292 ZXJfb3JwaGFuX2lub2RlcysweGE1LzB4NzAwClsgMzExNy42ODY2ODNdICA/IHByb2NfcmVnaXN0 ZXIrMHgxNTMvMHgxZDAKWyAzMTE3LjY4NjY4Nl0gID8gZjJmc19yZW1vdmVfb3JwaGFuX2lub2Rl KzB4MTAvMHgxMApbIDMxMTcuNjg2Njk1XSAgPyBmMmZzX2F0dHJfc3RvcmUrMHg1MC8weDUwClsg MzExNy42ODY3MDBdICA/IHByb2NfY3JlYXRlX3NpbmdsZV9kYXRhKzB4NTIvMHg2MApbIDMxMTcu Njg2NzA3XSAgZjJmc19maWxsX3N1cGVyKzB4MWQwNi8weDJiNDAKWyAzMTE3LjY4NjcyOF0gID8g ZjJmc19jb21taXRfc3VwZXIrMHgxYTAvMHgxYTAKWyAzMTE3LjY4NjczNV0gID8gc2dldF91c2Vy bnMrMHg2NWUvMHg2OTAKWyAzMTE3LjY4Njc0MF0gID8gc2V0X2Jsb2Nrc2l6ZSsweDg4LzB4MTMw ClsgMzExNy42ODY3NDVdICA/IGYyZnNfY29tbWl0X3N1cGVyKzB4MWEwLzB4MWEwClsgMzExNy42 ODY3NDhdICBtb3VudF9iZGV2KzB4MWMwLzB4MjAwClsgMzExNy42ODY3NTNdICBtb3VudF9mcysw eDVjLzB4MTkwClsgMzExNy42ODY3NThdICB2ZnNfa2Vybl9tb3VudCsweDY0LzB4MTkwClsgMzEx Ny42ODY3NjJdICBkb19tb3VudCsweDJlNC8weDE0NTAKWyAzMTE3LjY4Njc2OV0gID8gbG9ja3Jl Zl9wdXRfcmV0dXJuKzB4MTMwLzB4MTMwClsgMzExNy42ODY3NzNdICA/IGNvcHlfbW91bnRfc3Ry aW5nKzB4MjAvMHgyMApbIDMxMTcuNjg2Nzc3XSAgPyBrYXNhbl91bnBvaXNvbl9zaGFkb3crMHgz MS8weDQwClsgMzExNy42ODY3ODBdICA/IGthc2FuX2ttYWxsb2MrMHhhNi8weGQwClsgMzExNy42 ODY3ODZdICA/IG1lbWNnX2ttZW1fcHV0X2NhY2hlKzB4MTYvMHg5MApbIDMxMTcuNjg2NzkwXSAg PyBfX2ttYWxsb2NfdHJhY2tfY2FsbGVyKzB4MTk2LzB4MjEwClsgMzExNy42ODY3OTVdICA/IF9j b3B5X2Zyb21fdXNlcisweDYxLzB4OTAKWyAzMTE3LjY4NjgwMV0gID8gbWVtZHVwX3VzZXIrMHgz ZS8weDYwClsgMzExNy42ODY4MDRdICBrc3lzX21vdW50KzB4N2UvMHhkMApbIDMxMTcuNjg2ODA5 XSAgX194NjRfc3lzX21vdW50KzB4NjIvMHg3MApbIDMxMTcuNjg2ODE2XSAgZG9fc3lzY2FsbF82 NCsweDczLzB4MTYwClsgMzExNy42ODY4MjRdICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJh bWUrMHg0NC8weGE5ClsgMzExNy42ODY4MjldIFJJUDogMDAzMzoweDdmNTY5M2YxNGI5YQpbIDMx MTcuNjg2ODMwXSBDb2RlOiA0OCA4YiAwZCAwMSBjMyAyYiAwMCBmNyBkOCA2NCA4OSAwMSA0OCA4 MyBjOCBmZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAwMCAwMCAwMCAwZiAxZiA0NCAwMCAwMCA0 OSA4OSBjYSBiOCBhNSAwMCAwMCAwMCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZmIDczIDAxIGMz IDQ4IDhiIDBkIGNlIGMyIDJiIDAwIGY3IGQ4IDY0IDg5IDAxIDQ4ClsgMzExNy42ODY4ODddIFJT UDogMDAyYjowMDAwN2ZmZjI3MzQ2NDg4IEVGTEFHUzogMDAwMDAyMDYgT1JJR19SQVg6IDAwMDAw MDAwMDAwMDAwYTUKWyAzMTE3LjY4Njg5Ml0gUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAw MDAwMDAwMTZlMjAzMCBSQ1g6IDAwMDA3ZjU2OTNmMTRiOWEKWyAzMTE3LjY4Njg5NF0gUkRYOiAw MDAwMDAwMDAxNmUyMjEwIFJTSTogMDAwMDAwMDAwMTZlM2YzMCBSREk6IDAwMDAwMDAwMDE2ZWUw NDAKWyAzMTE3LjY4Njg5Nl0gUkJQOiAwMDAwMDAwMDAwMDAwMDAwIFIwODogMDAwMDAwMDAwMDAw MDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMTMKWyAzMTE3LjY4Njg5OV0gUjEwOiAwMDAwMDAwMGMw ZWQwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDIwNiBSMTI6IDAwMDAwMDAwMDE2ZWUwNDAKWyAzMTE3 LjY4NjkwMV0gUjEzOiAwMDAwMDAwMDAxNmUyMjEwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6 IDAwMDAwMDAwMDAwMDAwMDMKClsgMzExNy42ODcwMDVdIEFsbG9jYXRlZCBieSB0YXNrIDEyMjU6 ClsgMzExNy42ODcxNTJdICBrYXNhbl9rbWFsbG9jKzB4YTYvMHhkMApbIDMxMTcuNjg3MTU3XSAg a21lbV9jYWNoZV9hbGxvY190cmFjZSsweGZkLzB4MjAwClsgMzExNy42ODcxNjFdICBmMmZzX2J1 aWxkX3NlZ21lbnRfbWFuYWdlcisweDJkMDkvMHgzMTkwClsgMzExNy42ODcxNjVdICBmMmZzX2Zp bGxfc3VwZXIrMHgxOTQ4LzB4MmI0MApbIDMxMTcuNjg3MTY4XSAgbW91bnRfYmRldisweDFjMC8w eDIwMApbIDMxMTcuNjg3MTcxXSAgbW91bnRfZnMrMHg1Yy8weDE5MApbIDMxMTcuNjg3MTc0XSAg dmZzX2tlcm5fbW91bnQrMHg2NC8weDE5MApbIDMxMTcuNjg3MTc3XSAgZG9fbW91bnQrMHgyZTQv MHgxNDUwClsgMzExNy42ODcxODBdICBrc3lzX21vdW50KzB4N2UvMHhkMApbIDMxMTcuNjg3MTgy XSAgX194NjRfc3lzX21vdW50KzB4NjIvMHg3MApbIDMxMTcuNjg3MTg2XSAgZG9fc3lzY2FsbF82 NCsweDczLzB4MTYwClsgMzExNy42ODcxOTBdICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJh bWUrMHg0NC8weGE5CgpbIDMxMTcuNjg3Mjg1XSBGcmVlZCBieSB0YXNrIDE5OgpbIDMxMTcuNjg3 NDEyXSAgX19rYXNhbl9zbGFiX2ZyZWUrMHgxMzcvMHgxOTAKWyAzMTE3LjY4NzQxNl0gIGtmcmVl KzB4OGIvMHgxYjAKWyAzMTE3LjY4NzQ2MF0gIHR0bV9ib19tYW5fcHV0X25vZGUrMHg2MS8weDgw IFt0dG1dClsgMzExNy42ODc0NzZdICB0dG1fYm9fY2xlYW51cF9yZWZzKzB4MTVmLzB4MjUwIFt0 dG1dClsgMzExNy42ODc0OTJdICB0dG1fYm9fZGVsYXllZF9kZWxldGUrMHgyZjAvMHgzMDAgW3R0 bV0KWyAzMTE3LjY4NzUwN10gIHR0bV9ib19kZWxheWVkX3dvcmtxdWV1ZSsweDE3LzB4NTAgW3R0 bV0KWyAzMTE3LjY4NzUyOF0gIHByb2Nlc3Nfb25lX3dvcmsrMHgyZjkvMHg3NDAKWyAzMTE3LjY4 NzUzMV0gIHdvcmtlcl90aHJlYWQrMHg3OC8weDZiMApbIDMxMTcuNjg3NTQxXSAga3RocmVhZCsw eDE3Ny8weDFjMApbIDMxMTcuNjg3NTQ1XSAgcmV0X2Zyb21fZm9yaysweDM1LzB4NDAKClsgMzEx Ny42ODc2MzhdIFRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIG9iamVjdCBhdCBmZmZm ODgwMThmMGE2MzAwCiAgICAgICAgICAgICAgICB3aGljaCBiZWxvbmdzIHRvIHRoZSBjYWNoZSBr bWFsbG9jLTE5MiBvZiBzaXplIDE5MgpbIDMxMTcuNjg4MDE0XSBUaGUgYnVnZ3kgYWRkcmVzcyBp cyBsb2NhdGVkIDE2IGJ5dGVzIHRvIHRoZSByaWdodCBvZgogICAgICAgICAgICAgICAgMTkyLWJ5 dGUgcmVnaW9uIFtmZmZmODgwMThmMGE2MzAwLCBmZmZmODgwMThmMGE2M2MwKQpbIDMxMTcuNjg4 MzgyXSBUaGUgYnVnZ3kgYWRkcmVzcyBiZWxvbmdzIHRvIHRoZSBwYWdlOgpbIDMxMTcuNjg4NTU0 XSBwYWdlOmZmZmZlYTAwMDYzYzI5ODAgY291bnQ6MSBtYXBjb3VudDowIG1hcHBpbmc6ZmZmZjg4 MDFmMzQwMzE4MCBpbmRleDoweDAKWyAzMTE3LjY4ODc4OF0gZmxhZ3M6IDB4MTdmZmY4MDAwMDAw MTAwKHNsYWIpClsgMzExNy42ODg5NDRdIHJhdzogMDE3ZmZmODAwMDAwMDEwMCBmZmZmZWEwMDA2 M2MyODQwIDAwMDAwMDBlMDAwMDAwMGUgZmZmZjg4MDFmMzQwMzE4MApbIDMxMTcuNjg5MTY2XSBy YXc6IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDA4MDEwMDAxMCAwMDAwMDAwMWZmZmZmZmZmIDAw MDAwMDAwMDAwMDAwMDAKWyAzMTE3LjY4OTM4Nl0gcGFnZSBkdW1wZWQgYmVjYXVzZToga2FzYW46 IGJhZCBhY2Nlc3MgZGV0ZWN0ZWQKClsgMzExNy42ODk2NTNdIE1lbW9yeSBzdGF0ZSBhcm91bmQg dGhlIGJ1Z2d5IGFkZHJlc3M6ClsgMzExNy42ODk4MTZdICBmZmZmODgwMThmMGE2MjgwOiBmYiBm YiBmYiBmYiBmYiBmYiBmYiBmYiBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYwpbIDMxMTcuNjkwMDI3 XSAgZmZmZjg4MDE4ZjBhNjMwMDogMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAKWyAzMTE3LjY5MDIzOV0gPmZmZmY4ODAxOGYwYTYzODA6IDAwIDAwIGZjIGZj IGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjClsgMzExNy42OTA0NDhdICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeClsgMzExNy42OTA2 NDRdICBmZmZmODgwMThmMGE2NDAwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMApbIDMxMTcuNjkwODY4XSAgZmZmZjg4MDE4ZjBhNjQ4MDogMDAgMDAgZmMg ZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMKWyAzMTE3LjY5MTA3N10gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09ClsgMzExNy42OTEyOTBdIERpc2FibGluZyBsb2NrIGRlYnVnZ2luZyBkdWUgdG8ga2Vy bmVsIHRhaW50ClsgMzExNy42OTM4OTNdIEJVRzogdW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgTlVM TCBwb2ludGVyIGRlcmVmZXJlbmNlIGF0IDAwMDAwMDAwMDAwMDAwMDAKWyAzMTE3LjY5NDEyMF0g UEdEIDgwMDAwMDAxZjAxYmMwNjcgUDREIDgwMDAwMDAxZjAxYmMwNjcgUFVEIDFkOTYzODA2NyBQ TUQgMApbIDMxMTcuNjk0MzM4XSBPb3BzOiAwMDAyIFsjMV0gU01QIEtBU0FOIFBUSQpbIDMxMTcu Njk0NDkwXSBDUFU6IDEgUElEOiAxMjI1IENvbW06IG1vdW50IFRhaW50ZWQ6IEcgICAgQiAgIFcg ICAgICAgICA0LjE3LjArICMxClsgMzExNy42OTQ3MDNdIEhhcmR3YXJlIG5hbWU6IFFFTVUgU3Rh bmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIFVidW50dS0xLjguMi0xdWJ1bnR1 MSAwNC8wMS8yMDE0ClsgMzExNy42OTUwNzNdIFJJUDogMDAxMDpfX3JlbW92ZV9kaXJ0eV9zZWdt ZW50KzB4ZTIvMHgxZTAKWyAzMTE3LjY5NTI0Nl0gQ29kZTogYzQgNDggODkgYzcgZTggY2YgYmIg ZDcgZmYgNDUgMGYgYjYgMjQgMjQgNDEgODMgZTQgM2YgNDQgODggNjQgMjQgMDcgNDEgODMgZTQg M2YgNGEgOGQgN2MgZTMgMDggZTggYjMgYmMgZDcgZmYgNGEgOGIgNGMgZTMgMDggPGYwPiA0YyAw ZiBiMyAyOSAwZiA4MiA5NCAwMCAwMCAwMCA0OCA4ZCBiZCAyMCAwNCAwMCAwMCBlOCA5NyBiYiBk NwpbIDMxMTcuNjk1NzkzXSBSU1A6IDAwMTg6ZmZmZjg4MDE4ZWI2NzYzOCBFRkxBR1M6IDAwMDEw MjkyClsgMzExNy42OTU5NjldIFJBWDogMDAwMDAwMDAwMDAwMDAwMCBSQlg6IGZmZmY4ODAxOGYw YTYzMDAgUkNYOiAwMDAwMDAwMDAwMDAwMDAwClsgMzExNy42OTYxODJdIFJEWDogMDAwMDAwMDAw MDAwMDAwMCBSU0k6IDAwMDAwMDAwMDAwMDAyOTcgUkRJOiAwMDAwMDAwMDAwMDAwMjk3ClsgMzEx Ny42OTYzOTFdIFJCUDogZmZmZjg4MDE4ZWJlOTk4MCBSMDg6IGZmZmZlZDAwM2U3NDNlYmIgUjA5 OiBmZmZmZWQwMDNlNzQzZWJiClsgMzExNy42OTY2MDRdIFIxMDogMDAwMDAwMDAwMDAwMDAwMSBS MTE6IGZmZmZlZDAwM2U3NDNlYmEgUjEyOiAwMDAwMDAwMDAwMDAwMDE5ClsgMzExNy42OTY4MTNd IFIxMzogMDAwMDAwMDAwMDAwMDAxNCBSMTQ6IDAwMDAwMDAwMDAwMDAzMjAgUjE1OiBmZmZmODgw MThlYmU5OWUwClsgMzExNy42OTcwMzJdIEZTOiAgMDAwMDdmNTY5NDYzNjg0MCgwMDAwKSBHUzpm ZmZmODgwMWYzYjAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAzMTE3LjY5NzI4 MF0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbIDMx MTcuNzAyMzU3XSBDUjI6IDAwMDA3ZmU4OWJiMWEwMDAgQ1IzOiAwMDAwMDAwMTkxYzIyMDAwIENS NDogMDAwMDAwMDAwMDAwMDZlMApbIDMxMTcuNzA3MjM1XSBDYWxsIFRyYWNlOgpbIDMxMTcuNzEy MDc3XSAgbG9jYXRlX2RpcnR5X3NlZ21lbnQrMHgxODkvMHgxOTAKWyAzMTE3LjcxNjg5MV0gIGYy ZnNfYWxsb2NhdGVfbmV3X3NlZ21lbnRzKzB4YTkvMHhlMApbIDMxMTcuNzIxNjE3XSAgcmVjb3Zl cl9kYXRhKzB4NzAzLzB4MmMyMApbIDMxMTcuNzI2MzE2XSAgPyBmMmZzX3JlY292ZXJfZnN5bmNf ZGF0YSsweDQ4Zi8weGQ1MApbIDMxMTcuNzMwOTU3XSAgPyBrc3lzX21vdW50KzB4N2UvMHhkMApb IDMxMTcuNzM1NTczXSAgPyBwb2xpY3lfbm9kZW1hc2srMHgxYS8weDkwClsgMzExNy43NDAxOThd ICA/IHBvbGljeV9ub2RlKzB4NTYvMHg3MApbIDMxMTcuNzQ0ODI5XSAgPyBhZGRfZnN5bmNfaW5v ZGUrMHhmMC8weGYwClsgMzExNy43NDk0ODddICA/IGJsa19maW5pc2hfcGx1ZysweDQ0LzB4NjAK WyAzMTE3Ljc1NDE1Ml0gID8gZjJmc19yYV9tZXRhX3BhZ2VzKzB4MzhiLzB4NWUwClsgMzExNy43 NTg4MzFdICA/IGZpbmRfaW5vZGVfZmFzdCsweGFjLzB4YzAKWyAzMTE3Ljc2MzQ0OF0gID8gZjJm c19pc192YWxpZF9ibGthZGRyKzB4MzIwLzB4MzIwClsgMzExNy43NjgwNDZdICA/IF9fcmFkaXhf dHJlZV9sb29rdXArMHgxNTAvMHgxNTAKWyAzMTE3Ljc3MjYwM10gID8gZHFnZXQrMHg2NzAvMHg2 NzAKWyAzMTE3Ljc3NzE1OV0gID8gcGFnZWNhY2hlX2dldF9wYWdlKzB4MjkvMHg0MTAKWyAzMTE3 Ljc4MTY0OF0gID8ga21lbV9jYWNoZV9hbGxvYysweDE3Ni8weDFlMApbIDMxMTcuNzg2MDY3XSAg PyBmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIrMHgxMWQvMHgzMjAKWyAzMTE3Ljc5MDQ3Nl0gIGYyZnNf cmVjb3Zlcl9mc3luY19kYXRhKzB4YzIzLzB4ZDUwClsgMzExNy43OTQ3OTBdICA/IGYyZnNfc3Bh Y2VfZm9yX3JvbGxfZm9yd2FyZCsweDYwLzB4NjAKWyAzMTE3Ljc5OTA4Nl0gID8gcmJfaW5zZXJ0 X2NvbG9yKzB4MzIzLzB4M2QwClsgMzExNy44MDMzMDRdICA/IGYyZnNfcmVjb3Zlcl9vcnBoYW5f aW5vZGVzKzB4YTUvMHg3MDAKWyAzMTE3LjgwNzU2M10gID8gcHJvY19yZWdpc3RlcisweDE1My8w eDFkMApbIDMxMTcuODExNzY2XSAgPyBmMmZzX3JlbW92ZV9vcnBoYW5faW5vZGUrMHgxMC8weDEw ClsgMzExNy44MTU5NDddICA/IGYyZnNfYXR0cl9zdG9yZSsweDUwLzB4NTAKWyAzMTE3LjgyMDA4 N10gID8gcHJvY19jcmVhdGVfc2luZ2xlX2RhdGErMHg1Mi8weDYwClsgMzExNy44MjQyNjJdICBm MmZzX2ZpbGxfc3VwZXIrMHgxZDA2LzB4MmI0MApbIDMxMTcuODI4MzY3XSAgPyBmMmZzX2NvbW1p dF9zdXBlcisweDFhMC8weDFhMApbIDMxMTcuODMyNDMyXSAgPyBzZ2V0X3VzZXJucysweDY1ZS8w eDY5MApbIDMxMTcuODM2NTAwXSAgPyBzZXRfYmxvY2tzaXplKzB4ODgvMHgxMzAKWyAzMTE3Ljg0 MDUwMV0gID8gZjJmc19jb21taXRfc3VwZXIrMHgxYTAvMHgxYTAKWyAzMTE3Ljg0NDQyMF0gIG1v dW50X2JkZXYrMHgxYzAvMHgyMDAKWyAzMTE3Ljg0ODI3NV0gIG1vdW50X2ZzKzB4NWMvMHgxOTAK WyAzMTE3Ljg1MjA1M10gIHZmc19rZXJuX21vdW50KzB4NjQvMHgxOTAKWyAzMTE3Ljg1NTgxMF0g IGRvX21vdW50KzB4MmU0LzB4MTQ1MApbIDMxMTcuODU5NDQxXSAgPyBsb2NrcmVmX3B1dF9yZXR1 cm4rMHgxMzAvMHgxMzAKWyAzMTE3Ljg2Mjk5Nl0gID8gY29weV9tb3VudF9zdHJpbmcrMHgyMC8w eDIwClsgMzExNy44NjY0MTddICA/IGthc2FuX3VucG9pc29uX3NoYWRvdysweDMxLzB4NDAKWyAz MTE3Ljg2OTcxOV0gID8ga2FzYW5fa21hbGxvYysweGE2LzB4ZDAKWyAzMTE3Ljg3Mjk0OF0gID8g bWVtY2dfa21lbV9wdXRfY2FjaGUrMHgxNi8weDkwClsgMzExNy44NzYxMjFdICA/IF9fa21hbGxv Y190cmFja19jYWxsZXIrMHgxOTYvMHgyMTAKWyAzMTE3Ljg3OTMzM10gID8gX2NvcHlfZnJvbV91 c2VyKzB4NjEvMHg5MApbIDMxMTcuODgyNDY3XSAgPyBtZW1kdXBfdXNlcisweDNlLzB4NjAKWyAz MTE3Ljg4NTYwNF0gIGtzeXNfbW91bnQrMHg3ZS8weGQwClsgMzExNy44ODg3MDBdICBfX3g2NF9z eXNfbW91bnQrMHg2Mi8weDcwClsgMzExNy44OTE3NDJdICBkb19zeXNjYWxsXzY0KzB4NzMvMHgx NjAKWyAzMTE3Ljg5NDY5Ml0gIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ0LzB4 YTkKWyAzMTE3Ljg5NzY2OV0gUklQOiAwMDMzOjB4N2Y1NjkzZjE0YjlhClsgMzExNy45MDA1NjNd IENvZGU6IDQ4IDhiIDBkIDAxIGMzIDJiIDAwIGY3IGQ4IDY0IDg5IDAxIDQ4IDgzIGM4IGZmIGMz IDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIDBmIDFmIDQ0IDAwIDAwIDQ5IDg5IGNhIGI4 IGE1IDAwIDAwIDAwIDBmIDA1IDw0OD4gM2QgMDEgZjAgZmYgZmYgNzMgMDEgYzMgNDggOGIgMGQg Y2UgYzIgMmIgMDAgZjcgZDggNjQgODkgMDEgNDgKWyAzMTE3LjkwNjkyMl0gUlNQOiAwMDJiOjAw MDA3ZmZmMjczNDY0ODggRUZMQUdTOiAwMDAwMDIwNiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDBh NQpbIDMxMTcuOTEwMTU5XSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAwMDAxNmUy MDMwIFJDWDogMDAwMDdmNTY5M2YxNGI5YQpbIDMxMTcuOTEzNDY5XSBSRFg6IDAwMDAwMDAwMDE2 ZTIyMTAgUlNJOiAwMDAwMDAwMDAxNmUzZjMwIFJESTogMDAwMDAwMDAwMTZlZTA0MApbIDMxMTcu OTE2NzY0XSBSQlA6IDAwMDAwMDAwMDAwMDAwMDAgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTog MDAwMDAwMDAwMDAwMDAxMwpbIDMxMTcuOTIwMDcxXSBSMTA6IDAwMDAwMDAwYzBlZDAwMDAgUjEx OiAwMDAwMDAwMDAwMDAwMjA2IFIxMjogMDAwMDAwMDAwMTZlZTA0MApbIDMxMTcuOTIzMzkzXSBS MTM6IDAwMDAwMDAwMDE2ZTIyMTAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogMDAwMDAwMDAw MDAwMDAwMwpbIDMxMTcuOTI2NjgwXSBNb2R1bGVzIGxpbmtlZCBpbjogc25kX2hkYV9jb2RlY19n ZW5lcmljIHNuZF9oZGFfaW50ZWwgc25kX2hkYV9jb2RlYyBzbmRfaGRhX2NvcmUgc25kX2h3ZGVw IHNuZF9wY20gc25kX3RpbWVyIGpveWRldiBpbnB1dF9sZWRzIHNlcmlvX3JhdyBzbmQgc291bmRj b3JlIG1hY19oaWQgaTJjX3BpaXg0IGliX2lzZXIgcmRtYV9jbSBpd19jbSBpYl9jbSBpYl9jb3Jl IGNvbmZpZ2ZzIGlzY3NpX3RjcCBsaWJpc2NzaV90Y3AgbGliaXNjc2kgc2NzaV90cmFuc3BvcnRf aXNjc2kgYnRyZnMgenN0ZF9kZWNvbXByZXNzIHpzdGRfY29tcHJlc3MgeHhoYXNoIHJhaWQxMCBy YWlkNDU2IGFzeW5jX3JhaWQ2X3JlY292IGFzeW5jX21lbWNweSBhc3luY19wcSBhc3luY194b3Ig YXN5bmNfdHggeG9yIHJhaWQ2X3BxIGxpYmNyYzMyYyByYWlkMSByYWlkMCBtdWx0aXBhdGggbGlu ZWFyIDgxMzl0b28gcXhsIHR0bSBkcm1fa21zX2hlbHBlciBzeXNjb3B5YXJlYSBzeXNmaWxscmVj dCBzeXNpbWdibHQgZmJfc3lzX2ZvcHMgZHJtIGNyY3QxMGRpZl9wY2xtdWwgY3JjMzJfcGNsbXVs IGdoYXNoX2NsbXVsbmlfaW50ZWwgcGNiYyBhZXNuaV9pbnRlbCBwc21vdXNlIGFlc194ODZfNjQg ODEzOWNwIGNyeXB0b19zaW1kIGNyeXB0ZCBtaWkgZ2x1ZV9oZWxwZXIgcGF0YV9hY3BpIGZsb3Bw eQpbIDMxMTcuOTQ5OTc5XSBDUjI6IDAwMDAwMDAwMDAwMDAwMDAKWyAzMTE3Ljk1NDI4M10gLS0t WyBlbmQgdHJhY2UgYThlMGQ4OTk5ODVmYWYzMiBdLS0tClsgMzExNy45NTg1NzVdIFJJUDogMDAx MDpfX3JlbW92ZV9kaXJ0eV9zZWdtZW50KzB4ZTIvMHgxZTAKWyAzMTE3Ljk2MjgxMF0gQ29kZTog YzQgNDggODkgYzcgZTggY2YgYmIgZDcgZmYgNDUgMGYgYjYgMjQgMjQgNDEgODMgZTQgM2YgNDQg ODggNjQgMjQgMDcgNDEgODMgZTQgM2YgNGEgOGQgN2MgZTMgMDggZTggYjMgYmMgZDcgZmYgNGEg OGIgNGMgZTMgMDggPGYwPiA0YyAwZiBiMyAyOSAwZiA4MiA5NCAwMCAwMCAwMCA0OCA4ZCBiZCAy MCAwNCAwMCAwMCBlOCA5NyBiYiBkNwpbIDMxMTcuOTcxNzg5XSBSU1A6IDAwMTg6ZmZmZjg4MDE4 ZWI2NzYzOCBFRkxBR1M6IDAwMDEwMjkyClsgMzExNy45NzYzMzNdIFJBWDogMDAwMDAwMDAwMDAw MDAwMCBSQlg6IGZmZmY4ODAxOGYwYTYzMDAgUkNYOiAwMDAwMDAwMDAwMDAwMDAwClsgMzExNy45 ODA5MjZdIFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAwMDAwMDAwMDAwMDAyOTcgUkRJOiAw MDAwMDAwMDAwMDAwMjk3ClsgMzExNy45ODU0OTddIFJCUDogZmZmZjg4MDE4ZWJlOTk4MCBSMDg6 IGZmZmZlZDAwM2U3NDNlYmIgUjA5OiBmZmZmZWQwMDNlNzQzZWJiClsgMzExNy45OTAwOThdIFIx MDogMDAwMDAwMDAwMDAwMDAwMSBSMTE6IGZmZmZlZDAwM2U3NDNlYmEgUjEyOiAwMDAwMDAwMDAw MDAwMDE5ClsgMzExNy45OTQ3NjFdIFIxMzogMDAwMDAwMDAwMDAwMDAxNCBSMTQ6IDAwMDAwMDAw MDAwMDAzMjAgUjE1OiBmZmZmODgwMThlYmU5OWUwClsgMzExNy45OTkzOTJdIEZTOiAgMDAwMDdm NTY5NDYzNjg0MCgwMDAwKSBHUzpmZmZmODgwMWYzYjAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAw MDAwMDAwMDAKWyAzMTE4LjAwNDA5Nl0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDog MDAwMDAwMDA4MDA1MDAzMwpbIDMxMTguMDA4ODE2XSBDUjI6IDAwMDA3ZmU4OWJiMWEwMDAgQ1Iz OiAwMDAwMDAwMTkxYzIyMDAwIENSNDogMDAwMDAwMDAwMDAwMDZlMAoKLSBMb2NhdGlvbgpodHRw czovL2VsaXhpci5ib290bGluLmNvbS9saW51eC92NC4xOC1yYzMvc291cmNlL2ZzL2YyZnMvc2Vn bWVudC5jI0w3NzUKCQlpZiAodGVzdF9hbmRfY2xlYXJfYml0KHNlZ25vLCBkaXJ0eV9pLT5kaXJ0 eV9zZWdtYXBbdF0pKQoJCQlkaXJ0eV9pLT5ucl9kaXJ0eVt0XS0tOwpIZXJlIGRpcnR5X2ktPmRp cnR5X3NlZ21hcFt0XSBjYW4gYmUgTlVMTCB3aGljaCBsZWFkcyB0byBjcmFzaCBpbiB0ZXN0X2Fu ZF9jbGVhcl9iaXQoKQoKUmVwb3J0ZWQtYnkgV2VuIFh1IDx3ZW4ueHVAZ2F0ZWNoLmVkdT4KU2ln bmVkLW9mZi1ieTogQ2hhbyBZdSA8eXVjaGFvMEBodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBK YWVnZXVrIEtpbSA8amFlZ2V1a0BrZXJuZWwub3JnPgpbYndoOiBCYWNrcG9ydGVkIHRvIDQuNDog VGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCBzYW5pdHlfY2hlY2tfY2twdCgpXQpTaWduZWQtb2ZmLWJ5 OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51az4KLS0tCiBmcy9m MmZzL2NoZWNrcG9pbnQuYyB8ICA4ICsrKystLS0tCiBmcy9mMmZzL3N1cGVyLmMgICAgICB8IDEy ICsrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvY2hlY2twb2ludC5jIGIvZnMvZjJmcy9jaGVj a3BvaW50LmMKaW5kZXggYjZlZGIzOTQwNjlkLi41MTNlNWI4MTMxZGQgMTAwNjQ0Ci0tLSBhL2Zz L2YyZnMvY2hlY2twb2ludC5jCisrKyBiL2ZzL2YyZnMvY2hlY2twb2ludC5jCkBAIC03MzEsMTUg KzczMSwxNSBAQCBpbnQgZ2V0X3ZhbGlkX2NoZWNrcG9pbnQoc3RydWN0IGYyZnNfc2JfaW5mbyAq c2JpKQogCWNwX2Jsb2NrID0gKHN0cnVjdCBmMmZzX2NoZWNrcG9pbnQgKilwYWdlX2FkZHJlc3Mo Y3VyX3BhZ2UpOwogCW1lbWNweShzYmktPmNrcHQsIGNwX2Jsb2NrLCBibGtfc2l6ZSk7CiAKLQkv KiBTYW5pdHkgY2hlY2tpbmcgb2YgY2hlY2twb2ludCAqLwotCWlmIChzYW5pdHlfY2hlY2tfY2tw dChzYmkpKQotCQlnb3RvIGZyZWVfZmFpbF9ub19jcDsKLQogCWlmIChjdXJfcGFnZSA9PSBjcDEp CiAJCXNiaS0+Y3VyX2NwX3BhY2sgPSAxOwogCWVsc2UKIAkJc2JpLT5jdXJfY3BfcGFjayA9IDI7 CiAKKwkvKiBTYW5pdHkgY2hlY2tpbmcgb2YgY2hlY2twb2ludCAqLworCWlmIChzYW5pdHlfY2hl Y2tfY2twdChzYmkpKQorCQlnb3RvIGZyZWVfZmFpbF9ub19jcDsKKwogCWlmIChjcF9ibGtzIDw9 IDEpCiAJCWdvdG8gZG9uZTsKIApkaWZmIC0tZ2l0IGEvZnMvZjJmcy9zdXBlci5jIGIvZnMvZjJm cy9zdXBlci5jCmluZGV4IDYxMjIyYTU4NmM0Ni4uNDZmNzhiNTE2MmU3IDEwMDY0NAotLS0gYS9m cy9mMmZzL3N1cGVyLmMKKysrIGIvZnMvZjJmcy9zdXBlci5jCkBAIC0xMTQxLDYgKzExNDEsNyBA QCBpbnQgc2FuaXR5X2NoZWNrX2NrcHQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogCXVuc2ln bmVkIGludCBzaXRfYml0bWFwX3NpemUsIG5hdF9iaXRtYXBfc2l6ZTsKIAl1bnNpZ25lZCBpbnQg bG9nX2Jsb2Nrc19wZXJfc2VnOwogCXVuc2lnbmVkIGludCBzZWdtZW50X2NvdW50X21haW47CisJ dW5zaWduZWQgaW50IGNwX3BhY2tfc3RhcnRfc3VtLCBjcF9wYXlsb2FkOwogCWJsb2NrX3QgdXNl cl9ibG9ja19jb3VudDsKIAlpbnQgaTsKIApAQCAtMTIwMSw2ICsxMjAyLDE3IEBAIGludCBzYW5p dHlfY2hlY2tfY2twdChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCiAJCXJldHVybiAxOwogCX0K IAorCWNwX3BhY2tfc3RhcnRfc3VtID0gX19zdGFydF9zdW1fYWRkcihzYmkpOworCWNwX3BheWxv YWQgPSBfX2NwX3BheWxvYWQoc2JpKTsKKwlpZiAoY3BfcGFja19zdGFydF9zdW0gPCBjcF9wYXls b2FkICsgMSB8fAorCQljcF9wYWNrX3N0YXJ0X3N1bSA+IGJsb2Nrc19wZXJfc2VnIC0gMSAtCisJ CQlOUl9DVVJTRUdfVFlQRSkgeworCQlmMmZzX21zZyhzYmktPnNiLCBLRVJOX0VSUiwKKwkJCSJX cm9uZyBjcF9wYWNrX3N0YXJ0X3N1bTogJXUiLAorCQkJY3BfcGFja19zdGFydF9zdW0pOworCQly ZXR1cm4gMTsKKwl9CisKIAlpZiAodW5saWtlbHkoZjJmc19jcF9lcnJvcihzYmkpKSkgewogCQlm MmZzX21zZyhzYmktPnNiLCBLRVJOX0VSUiwgIkEgYnVnIGNhc2U6IG5lZWQgdG8gcnVuIGZzY2si KTsKIAkJcmV0dXJuIDE7CgpGcm9tIDBkZTE5ZmEwY2JlN2Y2OGVkMjBlMDgyYjE2M2Y1MWRhNjIz NjM3MWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENoYW8gWXUgPHl1Y2hhbzBAaHVh d2VpLmNvbT4KRGF0ZTogVGh1LCAyIEF1ZyAyMDE4IDIyOjU5OjEyICswODAwClN1YmplY3Q6IFtQ QVRDSCAzNC8zNl0gZjJmczogZml4IGludmFsaWQgbWVtb3J5IGFjY2VzcwoKY29tbWl0IGQzZjA3 YzA0OWRhYjFhM2YxNzQwZjQ3NmFmZDNkNWU1YjczOGMyMWMgdXBzdHJlYW0uCgpzeXpib3QgZm91 bmQgdGhlIGZvbGxvd2luZyBjcmFzaCBvbjoKCkhFQUQgY29tbWl0OiAgICBkOWJkOTRjMGJjYWEg QWRkIGxpbnV4LW5leHQgc3BlY2lmaWMgZmlsZXMgZm9yIDIwMTgwODAxCmdpdCB0cmVlOiAgICAg ICBsaW51eC1uZXh0CmNvbnNvbGUgb3V0cHV0OiBodHRwczovL3N5emthbGxlci5hcHBzcG90LmNv bS94L2xvZy50eHQ/eD0xMDAxMTg5YzQwMDAwMAprZXJuZWwgY29uZmlnOiAgaHR0cHM6Ly9zeXpr YWxsZXIuYXBwc3BvdC5jb20veC8uY29uZmlnP3g9Y2M4OTY0ZWE0ZDA0NTE4YwpkYXNoYm9hcmQg bGluazogaHR0cHM6Ly9zeXprYWxsZXIuYXBwc3BvdC5jb20vYnVnP2V4dGlkPWM5NjZhODJkYjBi MTRhYTM3ZTgxCmNvbXBpbGVyOiAgICAgICBnY2MgKEdDQykgOC4wLjEgMjAxODA0MTMgKGV4cGVy aW1lbnRhbCkKClVuZm9ydHVuYXRlbHksIEkgZG9uJ3QgaGF2ZSBhbnkgcmVwcm9kdWNlciBmb3Ig dGhpcyBjcmFzaCB5ZXQuCgpJTVBPUlRBTlQ6IGlmIHlvdSBmaXggdGhlIGJ1ZywgcGxlYXNlIGFk ZCB0aGUgZm9sbG93aW5nIHRhZyB0byB0aGUgY29tbWl0OgpSZXBvcnRlZC1ieTogc3l6Ym90K2M5 NjZhODJkYjBiMTRhYTM3ZTgxQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KCmxvb3A3OiBydz0x MjI4OCwgd2FudD04MjAwLCBsaW1pdD0yMApuZXRsaW5rOiA2NTM0MiBieXRlcyBsZWZ0b3ZlciBh ZnRlciBwYXJzaW5nIGF0dHJpYnV0ZXMgaW4gcHJvY2VzcyBgc3l6LWV4ZWN1dG9yNCcuCm9wZW52 c3dpdGNoOiBuZXRsaW5rOiBNZXNzYWdlIGhhcyA4IHVua25vd24gYnl0ZXMuCmthc2FuOiBDT05G SUdfS0FTQU5fSU5MSU5FIGVuYWJsZWQKa2FzYW46IEdQRiBjb3VsZCBiZSBjYXVzZWQgYnkgTlVM TC1wdHIgZGVyZWYgb3IgdXNlciBtZW1vcnkgYWNjZXNzCmdlbmVyYWwgcHJvdGVjdGlvbiBmYXVs dDogMDAwMCBbIzFdIFNNUCBLQVNBTgpDUFU6IDEgUElEOiA3NjE1IENvbW06IHN5ei1leGVjdXRv cjcgTm90IHRhaW50ZWQgNC4xOC4wLXJjNy1uZXh0LTIwMTgwODAxKyAjMjkKSGFyZHdhcmUgbmFt ZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJ T1MgR29vZ2xlIDAxLzAxLzIwMTEKUklQOiAwMDEwOl9fcmVhZF9vbmNlX3NpemUgaW5jbHVkZS9s aW51eC9jb21waWxlci5oOjE4OCBbaW5saW5lXQpSSVA6IDAwMTA6Y29tcG91bmRfaGVhZCBpbmNs dWRlL2xpbnV4L3BhZ2UtZmxhZ3MuaDoxNDIgW2lubGluZV0KUklQOiAwMDEwOlBhZ2VMb2NrZWQg aW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmg6MjcyIFtpbmxpbmVdClJJUDogMDAxMDpmMmZzX3B1 dF9wYWdlIGZzL2YyZnMvZjJmcy5oOjIwMTEgW2lubGluZV0KUklQOiAwMDEwOnZhbGlkYXRlX2No ZWNrcG9pbnQrMHg2NmQvMHhlYzAgZnMvZjJmcy9jaGVja3BvaW50LmM6ODM1CkNvZGU6IGU4IDU4 IDA1IDdmIGZlIDRjIDhkIDZiIDgwIDRkIDhkIDc0IDI0IDA4IDQ4IGI4IDAwIDAwIDAwIDAwIDAw IGZjIGZmIGRmIDRjIDg5IGVhIDQ4IGMxIGVhIDAzIGM2IDA0IDAyIDAwIDRjIDg5IGYyIDQ4IGMx IGVhIDAzIDw4MD4gM2MgMDIgMDAgMGYgODUgZjQgMDYgMDAgMDAgNGMgODkgZWEgNGQgOGIgN2Mg MjQgMDggNDggYjggMDAgMDAKUlNQOiAwMDE4OmZmZmY4ODAxOTM3Y2ViZTggRUZMQUdTOiAwMDAx MDI0NgpSQVg6IGRmZmZmYzAwMDAwMDAwMDAgUkJYOiBmZmZmODgwMTkzN2NlZjMwIFJDWDogZmZm ZmM5MDAwNjAzNTAwMApSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiBmZmZmZmZmZjgyZmQ5NjU4 IFJESTogMDAwMDAwMDAwMDAwMDAwNQpSQlA6IGZmZmY4ODAxOTM3Y2VmNTggUjA4OiBmZmZmODgw MWFiMjU0NzAwIFIwOTogZmZmZmY5NDAwMGQ5ZTAyNgpSMTA6IGZmZmZmOTQwMDBkOWUwMjYgUjEx OiBmZmZmZWEwMDA2Y2YwMTM3IFIxMjogZmZmZmZmZmZmZmZmZmZmYgpSMTM6IGZmZmY4ODAxOTM3 Y2VlYjAgUjE0OiAwMDAwMDAwMDAwMDAwMDAzIFIxNTogZmZmZjg4MDE5MzQxOWI0MApGUzogIDAw MDA3ZjM2YTYxZDU3MDAoMDAwMCkgR1M6ZmZmZjg4MDFkYjEwMDAwMCgwMDAwKSBrbmxHUzowMDAw MDAwMDAwMDAwMDAwCkNTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAw NTAwMzMKQ1IyOiAwMDAwN2ZjMDRmZjkzMDAwIENSMzogMDAwMDAwMDFkMDU2MjAwMCBDUjQ6IDAw MDAwMDAwMDAxNDI2ZTAKRFIwOiAwMDAwMDAwMDAwMDAwMDAwIERSMTogMDAwMDAwMDAwMDAwMDAw MCBEUjI6IDAwMDAwMDAwMDAwMDAwMDAKRFIzOiAwMDAwMDAwMDAwMDAwMDAwIERSNjogMDAwMDAw MDBmZmZlMGZmMCBEUjc6IDAwMDAwMDAwMDAwMDA0MDAKQ2FsbCBUcmFjZToKIGYyZnNfZ2V0X3Zh bGlkX2NoZWNrcG9pbnQrMHg0MzYvMHgxZWMwIGZzL2YyZnMvY2hlY2twb2ludC5jOjg2MAogZjJm c19maWxsX3N1cGVyKzB4MmQ0Mi8weDgxMTAgZnMvZjJmcy9zdXBlci5jOjI4ODMKIG1vdW50X2Jk ZXYrMHgzMTQvMHgzZTAgZnMvc3VwZXIuYzoxMzQ0CiBmMmZzX21vdW50KzB4M2MvMHg1MCBmcy9m MmZzL3N1cGVyLmM6MzEzMwogbGVnYWN5X2dldF90cmVlKzB4MTMxLzB4NDYwIGZzL2ZzX2NvbnRl eHQuYzo3MjkKIHZmc19nZXRfdHJlZSsweDFjYi8weDVjMCBmcy9zdXBlci5jOjE3NDMKIGRvX25l d19tb3VudCBmcy9uYW1lc3BhY2UuYzoyNjAzIFtpbmxpbmVdCiBkb19tb3VudCsweDZmMi8weDFl MjAgZnMvbmFtZXNwYWNlLmM6MjkyNwoga3N5c19tb3VudCsweDEyZC8weDE0MCBmcy9uYW1lc3Bh Y2UuYzozMTQzCiBfX2RvX3N5c19tb3VudCBmcy9uYW1lc3BhY2UuYzozMTU3IFtpbmxpbmVdCiBf X3NlX3N5c19tb3VudCBmcy9uYW1lc3BhY2UuYzozMTU0IFtpbmxpbmVdCiBfX3g2NF9zeXNfbW91 bnQrMHhiZS8weDE1MCBmcy9uYW1lc3BhY2UuYzozMTU0CiBkb19zeXNjYWxsXzY0KzB4MWI5LzB4 ODIwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI5MAogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9o d2ZyYW1lKzB4NDkvMHhiZQpSSVA6IDAwMzM6MHg0NTk0M2EKQ29kZTogYjggYTYgMDAgMDAgMDAg MGYgMDUgNDggM2QgMDEgZjAgZmYgZmYgMGYgODMgYmQgOGEgZmIgZmYgYzMgNjYgMmUgMGYgMWYg ODQgMDAgMDAgMDAgMDAgMDAgNjYgOTAgNDkgODkgY2EgYjggYTUgMDAgMDAgMDAgMGYgMDUgPDQ4 PiAzZCAwMSBmMCBmZiBmZiAwZiA4MyA5YSA4YSBmYiBmZiBjMyA2NiAwZiAxZiA4NCAwMCAwMCAw MCAwMCAwMApSU1A6IDAwMmI6MDAwMDdmMzZhNjFkNGE4OCBFRkxBR1M6IDAwMDAwMjA2IE9SSUdf UkFYOiAwMDAwMDAwMDAwMDAwMGE1ClJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDA3ZjM2 YTYxZDRiMzAgUkNYOiAwMDAwMDAwMDAwNDU5NDNhClJEWDogMDAwMDdmMzZhNjFkNGFkMCBSU0k6 IDAwMDAwMDAwMjAwMDAxMDAgUkRJOiAwMDAwN2YzNmE2MWQ0YWYwClJCUDogMDAwMDAwMDAyMDAw MDEwMCBSMDg6IDAwMDA3ZjM2YTYxZDRiMzAgUjA5OiAwMDAwN2YzNmE2MWQ0YWQwClIxMDogMDAw MDAwMDAwMDAwMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAyMDYgUjEyOiAwMDAwMDAwMDAwMDAwMDEz ClIxMzogMDAwMDAwMDAwMDAwMDAwMCBSMTQ6IDAwMDAwMDAwMDA0YzhlYTAgUjE1OiAwMDAwMDAw MDAwMDAwMDAwCk1vZHVsZXMgbGlua2VkIGluOgpEdW1waW5nIGZ0cmFjZSBidWZmZXI6CiAgIChm dHJhY2UgYnVmZmVyIGVtcHR5KQotLS1bIGVuZCB0cmFjZSBiZDg1NTBjMTI5MzUyMjg2IF0tLS0K UklQOiAwMDEwOl9fcmVhZF9vbmNlX3NpemUgaW5jbHVkZS9saW51eC9jb21waWxlci5oOjE4OCBb aW5saW5lXQpSSVA6IDAwMTA6Y29tcG91bmRfaGVhZCBpbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3Mu aDoxNDIgW2lubGluZV0KUklQOiAwMDEwOlBhZ2VMb2NrZWQgaW5jbHVkZS9saW51eC9wYWdlLWZs YWdzLmg6MjcyIFtpbmxpbmVdClJJUDogMDAxMDpmMmZzX3B1dF9wYWdlIGZzL2YyZnMvZjJmcy5o OjIwMTEgW2lubGluZV0KUklQOiAwMDEwOnZhbGlkYXRlX2NoZWNrcG9pbnQrMHg2NmQvMHhlYzAg ZnMvZjJmcy9jaGVja3BvaW50LmM6ODM1CkNvZGU6IGU4IDU4IDA1IDdmIGZlIDRjIDhkIDZiIDgw IDRkIDhkIDc0IDI0IDA4IDQ4IGI4IDAwIDAwIDAwIDAwIDAwIGZjIGZmIGRmIDRjIDg5IGVhIDQ4 IGMxIGVhIDAzIGM2IDA0IDAyIDAwIDRjIDg5IGYyIDQ4IGMxIGVhIDAzIDw4MD4gM2MgMDIgMDAg MGYgODUgZjQgMDYgMDAgMDAgNGMgODkgZWEgNGQgOGIgN2MgMjQgMDggNDggYjggMDAgMDAKUlNQ OiAwMDE4OmZmZmY4ODAxOTM3Y2ViZTggRUZMQUdTOiAwMDAxMDI0NgpSQVg6IGRmZmZmYzAwMDAw MDAwMDAgUkJYOiBmZmZmODgwMTkzN2NlZjMwIFJDWDogZmZmZmM5MDAwNjAzNTAwMApSRFg6IDAw MDAwMDAwMDAwMDAwMDAgUlNJOiBmZmZmZmZmZjgyZmQ5NjU4IFJESTogMDAwMDAwMDAwMDAwMDAw NQpuZXRsaW5rOiA2NTM0MiBieXRlcyBsZWZ0b3ZlciBhZnRlciBwYXJzaW5nIGF0dHJpYnV0ZXMg aW4gcHJvY2VzcyBgc3l6LWV4ZWN1dG9yNCcuClJCUDogZmZmZjg4MDE5MzdjZWY1OCBSMDg6IGZm ZmY4ODAxYWIyNTQ3MDAgUjA5OiBmZmZmZjk0MDAwZDllMDI2Cm9wZW52c3dpdGNoOiBuZXRsaW5r OiBNZXNzYWdlIGhhcyA4IHVua25vd24gYnl0ZXMuClIxMDogZmZmZmY5NDAwMGQ5ZTAyNiBSMTE6 IGZmZmZlYTAwMDZjZjAxMzcgUjEyOiBmZmZmZmZmZmZmZmZmZmZiClIxMzogZmZmZjg4MDE5Mzdj ZWViMCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDMgUjE1OiBmZmZmODgwMTkzNDE5YjQwCkZTOiAgMDAw MDdmMzZhNjFkNTcwMCgwMDAwKSBHUzpmZmZmODgwMWRiMTAwMDAwKDAwMDApIGtubEdTOjAwMDAw MDAwMDAwMDAwMDAKQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1 MDAzMwpDUjI6IDAwMDA3ZmMwNGZmOTMwMDAgQ1IzOiAwMDAwMDAwMWQwNTYyMDAwIENSNDogMDAw MDAwMDAwMDE0MjZlMApEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAwMDAw IERSMjogMDAwMDAwMDAwMDAwMDAwMApEUjM6IDAwMDAwMDAwMDAwMDAwMDAgRFI2OiAwMDAwMDAw MGZmZmUwZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMAoKSW4gdmFsaWRhdGVfY2hlY2twb2ludCgp LCBpZiB3ZSBmYWlsZWQgdG8gY2FsbCBnZXRfY2hlY2twb2ludF92ZXJzaW9uKCksIHdlCndpbGwg cGFzcyByZXR1cm5lZCBpbnZhbGlkIHBhZ2UgcG9pbnRlciBpbnRvIGYyZnNfcHV0X3BhZ2UsIGNh dXNlIGFjY2Vzc2luZwppbnZhbGlkIG1lbW9yeSwgdGhpcyBwYXRjaCB0cmllcyB0byBoYW5kbGUg ZXJyb3IgcGF0aCBjb3JyZWN0bHkgdG8gZml4IHRoaXMKaXNzdWUuCgpTaWduZWQtb2ZmLWJ5OiBD aGFvIFl1IDx5dWNoYW8wQGh1YXdlaS5jb20+CgpTaWduZWQtb2ZmLWJ5OiBKYWVnZXVrIEtpbSA8 amFlZ2V1a0BrZXJuZWwub3JnPgpbYndoOiBCYWNrcG9ydGVkIHRvIDQuNDogYWRqdXN0IGNvbnRl eHRdClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5r LmNvLnVrPgotLS0KIGZzL2YyZnMvY2hlY2twb2ludC5jIHwgMTEgKysrKysrLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZnMvZjJmcy9jaGVja3BvaW50LmMgYi9mcy9mMmZzL2NoZWNrcG9pbnQuYwppbmRleCA1MTNlNWI4 MTMxZGQuLjRiMmY2MDlmMzc2ZCAxMDA2NDQKLS0tIGEvZnMvZjJmcy9jaGVja3BvaW50LmMKKysr IGIvZnMvZjJmcy9jaGVja3BvaW50LmMKQEAgLTYzMSw2ICs2MzEsNyBAQCBzdGF0aWMgaW50IGdl dF9jaGVja3BvaW50X3ZlcnNpb24oc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBibG9ja190IGNw X2FkZHIsCiAKIAljcmNfb2Zmc2V0ID0gbGUzMl90b19jcHUoKCpjcF9ibG9jayktPmNoZWNrc3Vt X29mZnNldCk7CiAJaWYgKGNyY19vZmZzZXQgPj0gYmxrX3NpemUpIHsKKwkJZjJmc19wdXRfcGFn ZSgqY3BfcGFnZSwgMSk7CiAJCWYyZnNfbXNnKHNiaS0+c2IsIEtFUk5fV0FSTklORywKIAkJCSJp bnZhbGlkIGNyY19vZmZzZXQ6ICV6dSIsIGNyY19vZmZzZXQpOwogCQlyZXR1cm4gLUVJTlZBTDsK QEAgLTYzOSw2ICs2NDAsNyBAQCBzdGF0aWMgaW50IGdldF9jaGVja3BvaW50X3ZlcnNpb24oc3Ry dWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBibG9ja190IGNwX2FkZHIsCiAJY3JjID0gbGUzMl90b19j cHUoKigoX19sZTMyICopKCh1bnNpZ25lZCBjaGFyICopKmNwX2Jsb2NrCiAJCQkJCQkJKyBjcmNf b2Zmc2V0KSkpOwogCWlmICghZjJmc19jcmNfdmFsaWQoY3JjLCAqY3BfYmxvY2ssIGNyY19vZmZz ZXQpKSB7CisJCWYyZnNfcHV0X3BhZ2UoKmNwX3BhZ2UsIDEpOwogCQlmMmZzX21zZyhzYmktPnNi LCBLRVJOX1dBUk5JTkcsICJpbnZhbGlkIGNyYyB2YWx1ZSIpOwogCQlyZXR1cm4gLUVJTlZBTDsK IAl9CkBAIC02NTgsMTQgKzY2MCwxNCBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKnZhbGlkYXRlX2No ZWNrcG9pbnQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogCWVyciA9IGdldF9jaGVja3BvaW50 X3ZlcnNpb24oc2JpLCBjcF9hZGRyLCAmY3BfYmxvY2ssCiAJCQkJCSZjcF9wYWdlXzEsIHZlcnNp b24pOwogCWlmIChlcnIpCi0JCWdvdG8gaW52YWxpZF9jcDE7CisJCXJldHVybiBOVUxMOwogCiAJ aWYgKGxlMzJfdG9fY3B1KGNwX2Jsb2NrLT5jcF9wYWNrX3RvdGFsX2Jsb2NrX2NvdW50KSA+CiAJ CQkJCXNiaS0+YmxvY2tzX3Blcl9zZWcpIHsKIAkJZjJmc19tc2coc2JpLT5zYiwgS0VSTl9XQVJO SU5HLAogCQkJImludmFsaWQgY3BfcGFja190b3RhbF9ibG9ja19jb3VudDoldSIsCiAJCQlsZTMy X3RvX2NwdShjcF9ibG9jay0+Y3BfcGFja190b3RhbF9ibG9ja19jb3VudCkpOwotCQlnb3RvIGlu dmFsaWRfY3AxOworCQlnb3RvIGludmFsaWRfY3A7CiAJfQogCXByZV92ZXJzaW9uID0gKnZlcnNp b247CiAKQEAgLTY3Myw3ICs2NzUsNyBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKnZhbGlkYXRlX2No ZWNrcG9pbnQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogCWVyciA9IGdldF9jaGVja3BvaW50 X3ZlcnNpb24oc2JpLCBjcF9hZGRyLCAmY3BfYmxvY2ssCiAJCQkJCSZjcF9wYWdlXzIsIHZlcnNp b24pOwogCWlmIChlcnIpCi0JCWdvdG8gaW52YWxpZF9jcDI7CisJCWdvdG8gaW52YWxpZF9jcDsK IAljdXJfdmVyc2lvbiA9ICp2ZXJzaW9uOwogCiAJaWYgKGN1cl92ZXJzaW9uID09IHByZV92ZXJz aW9uKSB7CkBAIC02ODEsOSArNjgzLDggQEAgc3RhdGljIHN0cnVjdCBwYWdlICp2YWxpZGF0ZV9j aGVja3BvaW50KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKIAkJZjJmc19wdXRfcGFnZShjcF9w YWdlXzIsIDEpOwogCQlyZXR1cm4gY3BfcGFnZV8xOwogCX0KLWludmFsaWRfY3AyOgogCWYyZnNf cHV0X3BhZ2UoY3BfcGFnZV8yLCAxKTsKLWludmFsaWRfY3AxOgoraW52YWxpZF9jcDoKIAlmMmZz X3B1dF9wYWdlKGNwX3BhZ2VfMSwgMSk7CiAJcmV0dXJuIE5VTEw7CiB9CgpGcm9tIDVjZDYyMDli Y2RhNDZjYjg5ZGVkYTdhZTZmNzI5ZDU0NGMxOWZkNmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEphZWdldWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+CkRhdGU6IFRodSwgMjcgU2Vw IDIwMTggMjI6MTU6MzEgLTA3MDAKU3ViamVjdDogW1BBVENIIDM1LzM2XSBmMmZzOiBmaXggbWlz c2luZyB1cF9yZWFkCgpjb21taXQgODlkMTNjMzg1MDFkZjczMGNiYjJlMDJjNDQ5OWRhMWI1MTg3 MTE5ZCB1cHN0cmVhbS4KClRoaXMgcGF0Y2ggZml4ZXMgbWlzc2luZyB1cF9yZWFkIGNhbGwuCgpG aXhlczogYzliNjA3ODhmYzc2ICgiZjJmczogZml4IHRvIGRvIHNhbml0eSBjaGVjayB3aXRoIGJs b2NrIGFkZHJlc3MgaW4gbWFpbiBhcmVhIikKUmV2aWV3ZWQtYnk6IENoYW8gWXUgPHl1Y2hhbzBA aHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2VybmVsLm9y Zz4KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsu Y28udWs+Ci0tLQogZnMvZjJmcy9ub2RlLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9mcy9mMmZzL25vZGUuYyBi L2ZzL2YyZnMvbm9kZS5jCmluZGV4IDAxNjQ3M2ZjMjY3ZC4uMzY4NWZlYTYyMzMzIDEwMDY0NAot LS0gYS9mcy9mMmZzL25vZGUuYworKysgYi9mcy9mMmZzL25vZGUuYwpAQCAtMTM0Miw4ICsxMzQy LDEwIEBAIHN0YXRpYyBpbnQgZjJmc193cml0ZV9ub2RlX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2Us CiAJfQogCiAJaWYgKF9faXNfdmFsaWRfZGF0YV9ibGthZGRyKG5pLmJsa19hZGRyKSAmJgotCQkh ZjJmc19pc192YWxpZF9ibGthZGRyKHNiaSwgbmkuYmxrX2FkZHIsIERBVEFfR0VORVJJQykpCisJ CSFmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIoc2JpLCBuaS5ibGtfYWRkciwgREFUQV9HRU5FUklDKSkg eworCQl1cF9yZWFkKCZzYmktPm5vZGVfd3JpdGUpOwogCQlnb3RvIHJlZGlydHlfb3V0OworCX0K IAogCXNldF9wYWdlX3dyaXRlYmFjayhwYWdlKTsKIAlmaW8uYmxrX2FkZHIgPSBuaS5ibGtfYWRk cjsKCkZyb20gNmVlYTJhNzJjNmQ0NDZmOWFiODY3MTYxZDY1MWRkOTI3ZWNmYjk4MyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFydGluIEJsdW1lbnN0aW5nbCA8bWFydGluLmJsdW1l bnN0aW5nbEBnb29nbGVtYWlsLmNvbT4KRGF0ZTogU2F0LCAyMiBEZWMgMjAxOCAxMToyMjoyNiAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggMzYvMzZdIGYyZnM6IGZpeCB2YWxpZGF0aW9uIG9mIHRoZSBi bG9jayBjb3VudCBpbgogc2FuaXR5X2NoZWNrX3Jhd19zdXBlcgoKY29tbWl0IDg4OTYwMDY4ZjI1 ZmNjMzc1OTQ1NWQ4NTQ2MDIzNGRjYzlkNDNmZWYgdXBzdHJlYW0uCgpUcmVhdCAiYmxvY2tfY291 bnQiIGZyb20gc3RydWN0IGYyZnNfc3VwZXJfYmxvY2sgYXMgNjQtYml0IGxpdHRsZSBlbmRpYW4K dmFsdWUgaW4gc2FuaXR5X2NoZWNrX3Jhd19zdXBlcigpIGJlY2F1c2Ugc3RydWN0IGYyZnNfc3Vw ZXJfYmxvY2sKZGVjbGFyZXMgImJsb2NrX2NvdW50IiBhcyAiX19sZTY0Ii4KClRoaXMgZml4ZXMg YSBidWcgd2hlcmUgdGhlIHN1cGVyYmxvY2sgdmFsaWRhdGlvbiBmYWlscyBvbiBiaWcgZW5kaWFu CmRldmljZXMgd2l0aCB0aGUgZm9sbG93aW5nIGVycm9yOgogIEYyRlMtZnMgKHNkYTEpOiBXcm9u ZyBzZWdtZW50X2NvdW50IC8gYmxvY2tfY291bnQgKDYxNDM5ID4gMCkKICBGMkZTLWZzIChzZGEx KTogQ2FuJ3QgZmluZCB2YWxpZCBGMkZTIGZpbGVzeXN0ZW0gaW4gMXRoIHN1cGVyYmxvY2sKICBG MkZTLWZzIChzZGExKTogV3Jvbmcgc2VnbWVudF9jb3VudCAvIGJsb2NrX2NvdW50ICg2MTQzOSA+ IDApCiAgRjJGUy1mcyAoc2RhMSk6IENhbid0IGZpbmQgdmFsaWQgRjJGUyBmaWxlc3lzdGVtIGlu IDJ0aCBzdXBlcmJsb2NrCkFzIHJlc3VsdCBvZiB0aGlzIHRoZSBwYXJ0aXRpb24gY2Fubm90IGJl IG1vdW50ZWQuCgpXaXRoIHRoaXMgcGF0Y2ggYXBwbGllZCB0aGUgc3VwZXJibG9jayB2YWxpZGF0 aW9uIHdvcmtzIGZpbmUgYW5kIHRoZQpwYXJ0aXRpb24gY2FuIGJlIG1vdW50ZWQgYWdhaW46CiAg RjJGUy1mcyAoc2RhMSk6IE1vdW50ZWQgd2l0aCBjaGVja3BvaW50IHZlcnNpb24gPSA3Yzg0CgpN eSBsaXR0bGUgZW5kaWFuIHg4Ni02NCBoYXJkd2FyZSB3YXMgYWJsZSB0byBtb3VudCB0aGUgcGFy dGl0aW9uIHdpdGhvdXQKdGhpcyBmaXguClRvIGNvbmZpcm0gdGhhdCBtb3VudGluZyBmMmZzIGZp bGVzeXN0ZW1zIHdvcmtzIG9uIGJpZyBlbmRpYW4gbWFjaGluZXMKYWdhaW4gSSB0ZXN0ZWQgdGhp cyBvbiBhIDMyLWJpdCBNSVBTIGJpZyBlbmRpYW4gKGxhbnRpcSkgZGV2aWNlLgoKRml4ZXM6IDBj ZmU3NWM1YjAxMTk5ICgiZjJmczogZW5oYW5jZSBzYW5pdHlfY2hlY2tfcmF3X3N1cGVyKCkgdG8g YXZvaWQgcG90ZW50aWFsIG92ZXJmbG93cyIpClNpZ25lZC1vZmYtYnk6IE1hcnRpbiBCbHVtZW5z dGluZ2wgPG1hcnRpbi5ibHVtZW5zdGluZ2xAZ29vZ2xlbWFpbC5jb20+ClJldmlld2VkLWJ5OiBD aGFvIFl1IDx5dWNoYW8wQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IEphZWdldWsgS2ltIDxq YWVnZXVrQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRj aGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2YyZnMvc3VwZXIuYyB8IDYgKysrLS0tCiAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2ZzL2YyZnMvc3VwZXIuYyBiL2ZzL2YyZnMvc3VwZXIuYwppbmRleCA0NmY3OGI1MTYyZTcu LmRiZDdhZGZmOGI1YSAxMDA2NDQKLS0tIGEvZnMvZjJmcy9zdXBlci5jCisrKyBiL2ZzL2YyZnMv c3VwZXIuYwpAQCAtMTA4MSwxMCArMTA4MSwxMCBAQCBzdGF0aWMgaW50IHNhbml0eV9jaGVja19y YXdfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKIAkJcmV0dXJuIDE7CiAJfQogCi0JaWYg KHNlZ21lbnRfY291bnQgPiAobGUzMl90b19jcHUocmF3X3N1cGVyLT5ibG9ja19jb3VudCkgPj4g OSkpIHsKKwlpZiAoc2VnbWVudF9jb3VudCA+IChsZTY0X3RvX2NwdShyYXdfc3VwZXItPmJsb2Nr X2NvdW50KSA+PiA5KSkgewogCQlmMmZzX21zZyhzYiwgS0VSTl9JTkZPLAotCQkJIldyb25nIHNl Z21lbnRfY291bnQgLyBibG9ja19jb3VudCAoJXUgPiAldSkiLAotCQkJc2VnbWVudF9jb3VudCwg bGUzMl90b19jcHUocmF3X3N1cGVyLT5ibG9ja19jb3VudCkpOworCQkJIldyb25nIHNlZ21lbnRf Y291bnQgLyBibG9ja19jb3VudCAoJXUgPiAlbGx1KSIsCisJCQlzZWdtZW50X2NvdW50LCBsZTY0 X3RvX2NwdShyYXdfc3VwZXItPmJsb2NrX2NvdW50KSk7CiAJCXJldHVybiAxOwogCX0KIAo= --=-WrPIiQ6FdPH/ltDUIeMT--