From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([23.128.96.9]:45806 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726998AbeGSAQQ (ORCPT ); Wed, 18 Jul 2018 20:16:16 -0400 Received: from localhost (unknown [128.208.196.2]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 061DF14712DF8 for ; Wed, 18 Jul 2018 16:35:57 -0700 (PDT) Date: Thu, 19 Jul 2018 08:35:57 +0900 (KST) Message-Id: <20180719.083557.1917167565026947143.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Thu_Jul_19_08_35_57_2018_767)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Thu_Jul_19_08_35_57_2018_767)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit ==================== READ ME. I have this stale email in my outgoing draft folder, and I have no idea if I actually sent this out successfully or not. Please double check, thanks! ==================== Please queue up the following networking bug fixes for v4.14 and v4.17 -stable, repectively. Thank you! ----Next_Part(Thu_Jul_19_08_35_57_2018_767)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_414.mbox" RnJvbSAwZmVhNDE0ODRmNjNlYmM0NmE4MzhlMjZiM2ZhNWZiM2E3M2RjMDI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5ldD4K RGF0ZTogRnJpLCAyOSBKdW4gMjAxOCAxNzo1MToyNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEv MzVdIGFseDogdGFrZSBydG5sIGJlZm9yZSBjYWxsaW5nIF9fYWx4X29wZW4gZnJvbSByZXN1bWUK ClsgVXBzdHJlYW0gY29tbWl0IGJjODAwZThiMzliYWQ2MGNjZGI4M2JlODI4ZGE2M2FmNzFhYjg3 YjMgXQoKVGhlIF9fYWx4X29wZW4gZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBmcm9tIG5kb19vcGVu LCB3aGljaCBpcyBjYWxsZWQKdW5kZXIgUlROTCwgb3IgZnJvbSBhbHhfcmVzdW1lLCB3aGljaCBp c24ndC4gU2luY2UgY29tbWl0IGQ3NjgzMTljZDQyNywKd2UncmUgY2FsbGluZyB0aGUgbmV0aWZf c2V0X3JlYWxfbnVtX3t0eCxyeH1fcXVldWVzIGZ1bmN0aW9ucywgd2hpY2gKbmVlZCB0byBiZSBj YWxsZWQgdW5kZXIgUlROTC4KClRoaXMgaXMgc2ltaWxhciB0byBjb21taXQgMGMyY2MwMmU1NzFh ICgiaWdiOiBNb3ZlIHRoZSBjYWxscyB0byBzZXQgdGhlClR4IGFuZCBSeCBxdWV1ZXMgaW50byBp Z2Jfb3BlbiIpLgoKRml4ZXM6IGQ3NjgzMTljZDQyNyAoImFseDogZW5hYmxlIG11bHRpcGxlIHR4 IHF1ZXVlcyIpClNpZ25lZC1vZmYtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwu bmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hbHgvbWFpbi5jIHwgOCArKysrKysr LQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWx4L21haW4uYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L2F0aGVyb3MvYWx4L21haW4uYwppbmRleCA1NjdlZTU0NTA0YmMuLjVlNTAy MmZhMWQwNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hbHgvbWFp bi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWx4L21haW4uYwpAQCAtMTg5 NywxMyArMTg5NywxOSBAQCBzdGF0aWMgaW50IGFseF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2 KQogCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOwogCXN0cnVjdCBhbHhf cHJpdiAqYWx4ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwogCXN0cnVjdCBhbHhfaHcgKmh3ID0g JmFseC0+aHc7CisJaW50IGVycjsKIAogCWFseF9yZXNldF9waHkoaHcpOwogCiAJaWYgKCFuZXRp Zl9ydW5uaW5nKGFseC0+ZGV2KSkKIAkJcmV0dXJuIDA7CiAJbmV0aWZfZGV2aWNlX2F0dGFjaChh bHgtPmRldik7Ci0JcmV0dXJuIF9fYWx4X29wZW4oYWx4LCB0cnVlKTsKKworCXJ0bmxfbG9jaygp OworCWVyciA9IF9fYWx4X29wZW4oYWx4LCB0cnVlKTsKKwlydG5sX3VubG9jaygpOworCisJcmV0 dXJuIGVycjsKIH0KIAogc3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKGFseF9wbV9vcHMsIGFseF9z dXNwZW5kLCBhbHhfcmVzdW1lKTsKLS0gCjIuMTcuMQoKCkZyb20gMTQ2ZThmOWQ3ZDBkYzkzY2I1 MWE1Y2YwNzMwOGIwYzkzOGVkMzNkMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2 aWQgV29vZGhvdXNlIDxkd213MkBpbmZyYWRlYWQub3JnPgpEYXRlOiBTYXQsIDE2IEp1biAyMDE4 IDExOjU1OjQ0ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMi8zNV0gYXRtOiBQcmVzZXJ2ZSB2YWx1 ZSBvZiBza2ItPnRydWVzaXplIHdoZW4gYWNjb3VudGluZyB0bwogdmNjCk1JTUUtVmVyc2lvbjog MS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCA5YmJlNjBhNjdiZTVhMWM2Zjc5 YjNjOWJlNTAwMzQ4MWE1MDUyOWZmIF0KCkFUTSBhY2NvdW50cyBmb3IgaW4tZmxpZ2h0IFRYIHBh Y2tldHMgaW4gc2tfd21lbV9hbGxvYyBvZiB0aGUgVkNDIG9uCndoaWNoIHRoZXkgYXJlIHRvIGJl IHNlbnQuIEJ1dCBpdCBkb2Vzbid0IHRha2Ugb3duZXJzaGlwIG9mIHRob3NlCnBhY2tldHMgZnJv bSB0aGUgc29jayAoaWYgYW55KSB3aGljaCBvcmlnaW5hbGx5IG93bmVkIHRoZW0uIFRoZXkgc2hv dWxkCnJlbWFpbiBvd25lZCBieSB0aGVpciBhY3R1YWwgc2VuZGVyIHVudGlsIHRoZXkndmUgbGVm dCB0aGUgYm94LgoKVGhlcmUncyBhIGhhY2sgaW4gcHNrYl9leHBhbmRfaGVhZCgpIHRvIGF2b2lk IGFkanVzdGluZyBza2ItPnRydWVzaXplCmZvciBjZXJ0YWluIHNrYnMsIHByZWNpc2VseSB0byBh dm9pZCBtZXNzaW5nIHVwIHNrX3dtZW1fYWxsb2MKYWNjb3VudGluZy4gSWRlYWxseSB0aGF0IGhh Y2sgd291bGQgY292ZXIgdGhlIEFUTSB1c2UgY2FzZSB0b28sIGJ1dCBpdApkb2Vzbid0IOKAlCBz a2JzIHdoaWNoIGFyZW4ndCBvd25lZCBieSBhbnkgc29jaywgZm9yIGV4YW1wbGUgUFBQIGNvbnRy b2wKZnJhbWVzLCBzdGlsbCBnZXQgdGhlaXIgdHJ1ZXNpemUgYWRqdXN0ZWQgd2hlbiB0aGUgbG93 LWxldmVsIEFUTSBkcml2ZXIKYWRkcyBoZWFkcm9vbS4KClRoaXMgaGFzIGFsd2F5cyBiZWVuIGFu IGlzc3VlLCBpdCBzZWVtcy4gVGhlIHRydWVzaXplIG9mIGEgcGFja2V0CmluY3JlYXNlcywgYW5k IHNrX3dtZW1fYWxsb2Mgb24gdGhlIFZDQyBnb2VzIG5lZ2F0aXZlLiBCdXQgdGhpcyB3YXNuJ3QK Zm9yIG5vcm1hbCB0cmFmZmljLCBvbmx5IGZvciBjb250cm9sIGZyYW1lcy4gU28gSSB0aGluayB3 ZSBqdXN0IGdvdCBhd2F5CndpdGggaXQsIGFuZCB3ZSBwcm9iYWJseSBuZWVkZWQgdG8gc2VuZCAy R2lCIG9mIExDUCBlY2hvIGZyYW1lcyBiZWZvcmUKdGhlIG1pc2FjY291bnRpbmcgd291bGQgZXZl ciBoYXZlIGNhdXNlZCBhIHByb2JsZW0gYW5kIGNhdXNlZAphdG1fbWF5X3NlbmQoKSB0byBzdGFy dCByZWZ1c2luZyBwYWNrZXRzLgoKQ29tbWl0IDE0YWZlZTRiNjA5ICgibmV0OiBjb252ZXJ0IHNv Y2suc2tfd21lbV9hbGxvYyBmcm9tIGF0b21pY190IHRvCnJlZmNvdW50X3QiKSBkaWQgZXhhY3Rs eSB3aGF0IGl0IHdhcyBpbnRlbmRlZCB0byBkbywgYW5kIHR1cm5lZCB0aGlzCm1vc3RseS10aGVv cmV0aWNhbCBwcm9ibGVtIGludG8gYSByZWFsIG9uZSwgY2F1c2luZyBQUFBvQVRNIHRvIGZhaWwK aW1tZWRpYXRlbHkgYXMgc2tfd21lbV9hbGxvYyB1bmRlcmZsb3dzIGFuZCBhdG1fbWF5X3NlbmQo KSAqaW1tZWRpYXRlbHkqCnN0YXJ0cyByZWZ1c2luZyB0byBhbGxvdyBuZXcgcGFja2V0cy4KClRo ZSBsZWFzdCBpbnRydXNpdmUgc29sdXRpb24gdG8gdGhpcyBwcm9ibGVtIGlzIHRvIHN0YXNoIHRo ZSB2YWx1ZSBvZgpza2ItPnRydWVzaXplIHRoYXQgd2FzIGFjY291bnRlZCB0byB0aGUgVkNDLCBp biBhIG5ldyBtZW1iZXIgb2YgdGhlCkFUTV9TS0Ioc2tiKSBzdHJ1Y3R1cmUuIFRoZW4gaW4gYXRt X3BvcF9yYXcoKSBzdWJ0cmFjdCBwcmVjaXNlbHkgdGhhdAp2YWx1ZSBpbnN0ZWFkIG9mIHRoZSB0 aGVuLWN1cnJlbnQgdmFsdWUgb2Ygc2tiLT50cnVlc2l6ZS4KCkZpeGVzOiAxNThmMzIzYjk4Njgg KCJuZXQ6IGFkanVzdCBza2ItPnRydWVzaXplIGluIHBza2JfZXhwYW5kX2hlYWQoKSIpClNpZ25l ZC1vZmYtYnk6IERhdmlkIFdvb2Rob3VzZSA8ZHdtdzJAaW5mcmFkZWFkLm9yZz4KVGVzdGVkLWJ5 OiBLZXZpbiBEYXJieXNoaXJlLUJyeWFudCA8bGRpckBkYXJieXNoaXJlLWJyeWFudC5tZS51az4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGluY2x1ZGUvbGludXgvYXRtZGV2LmggfCAxNSArKysrKysrKysrKysrKysKIG5ldC9hdG0vYnIy Njg0LmMgICAgICAgfCAgMyArLS0KIG5ldC9hdG0vY2xpcC5jICAgICAgICAgfCAgMyArLS0KIG5l dC9hdG0vY29tbW9uLmMgICAgICAgfCAgMyArLS0KIG5ldC9hdG0vbGVjLmMgICAgICAgICAgfCAg MyArLS0KIG5ldC9hdG0vbXBjLmMgICAgICAgICAgfCAgMyArLS0KIG5ldC9hdG0vcHBwb2F0bS5j ICAgICAgfCAgMyArLS0KIG5ldC9hdG0vcmF3LmMgICAgICAgICAgfCAgNCArKy0tCiA4IGZpbGVz IGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2luY2x1ZGUvbGludXgvYXRtZGV2LmggYi9pbmNsdWRlL2xpbnV4L2F0bWRldi5oCmluZGV4IDBj Mjc1MTVkMmNmNi4uODEyNDgxNWViMTIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2F0bWRl di5oCisrKyBiL2luY2x1ZGUvbGludXgvYXRtZGV2LmgKQEAgLTIxNCw2ICsyMTQsNyBAQCBzdHJ1 Y3QgYXRtcGh5X29wcyB7CiBzdHJ1Y3QgYXRtX3NrYl9kYXRhIHsKIAlzdHJ1Y3QgYXRtX3ZjYwkq dmNjOwkJLyogQVRNIFZDQyAqLwogCXVuc2lnbmVkIGxvbmcJYXRtX29wdGlvbnM7CS8qIEFUTSBs YXllciBvcHRpb25zICovCisJdW5zaWduZWQgaW50CWFjY3RfdHJ1ZXNpemU7ICAvKiB0cnVlc2l6 ZSBhY2NvdW50ZWQgdG8gdmNjICovCiB9OwogCiAjZGVmaW5lIFZDQ19IVEFCTEVfU0laRSAzMgpA QCAtMjQxLDYgKzI0MiwyMCBAQCB2b2lkIHZjY19pbnNlcnRfc29ja2V0KHN0cnVjdCBzb2NrICpz ayk7CiAKIHZvaWQgYXRtX2Rldl9yZWxlYXNlX3ZjY3Moc3RydWN0IGF0bV9kZXYgKmRldik7CiAK K3N0YXRpYyBpbmxpbmUgdm9pZCBhdG1fYWNjb3VudF90eChzdHJ1Y3QgYXRtX3ZjYyAqdmNjLCBz dHJ1Y3Qgc2tfYnVmZiAqc2tiKQoreworCS8qCisJICogQmVjYXVzZSBBVE0gc2ticyBtYXkgbm90 IGJlbG9uZyB0byBhIHNvY2sgKGFuZCB3ZSBkb24ndAorCSAqIG5lY2Vzc2FyaWx5IHdhbnQgdG8p LCBza2ItPnRydWVzaXplIG1heSBiZSBhZGp1c3RlZCwKKwkgKiBlc2NhcGluZyB0aGUgaGFjayBp biBwc2tiX2V4cGFuZF9oZWFkKCkgd2hpY2ggYXZvaWRzCisJICogZG9pbmcgc28gZm9yIHNvbWUg Y2FzZXMuIFNvIHN0YXNoIHRoZSB2YWx1ZSBvZiB0cnVlc2l6ZQorCSAqIGF0IHRoZSB0aW1lIHdl IGFjY291bnRlZCBpdCwgYW5kIGF0bV9wb3BfcmF3KCkgY2FuIHVzZQorCSAqIHRoYXQgdmFsdWUg bGF0ZXIsIGluIGNhc2UgaXQgY2hhbmdlcy4KKwkgKi8KKwlyZWZjb3VudF9hZGQoc2tiLT50cnVl c2l6ZSwgJnNrX2F0bSh2Y2MpLT5za193bWVtX2FsbG9jKTsKKwlBVE1fU0tCKHNrYiktPmFjY3Rf dHJ1ZXNpemUgPSBza2ItPnRydWVzaXplOworCUFUTV9TS0Ioc2tiKS0+YXRtX29wdGlvbnMgPSB2 Y2MtPmF0bV9vcHRpb25zOworfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXRtX2ZvcmNlX2NoYXJn ZShzdHJ1Y3QgYXRtX3ZjYyAqdmNjLGludCB0cnVlc2l6ZSkKIHsKZGlmZiAtLWdpdCBhL25ldC9h dG0vYnIyNjg0LmMgYi9uZXQvYXRtL2JyMjY4NC5jCmluZGV4IDRlMTExMTk2ZjkwMi4uYmMyMWY4 ZThkYWYyIDEwMDY0NAotLS0gYS9uZXQvYXRtL2JyMjY4NC5jCisrKyBiL25ldC9hdG0vYnIyNjg0 LmMKQEAgLTI1Miw4ICsyNTIsNyBAQCBzdGF0aWMgaW50IGJyMjY4NF94bWl0X3ZjYyhzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCiAJQVRNX1NLQihza2IpLT52 Y2MgPSBhdG12Y2MgPSBicnZjYy0+YXRtdmNjOwogCXByX2RlYnVnKCJhdG1fc2tiKCVwKS0+dmNj KCVwKS0+ZGV2KCVwKVxuIiwgc2tiLCBhdG12Y2MsIGF0bXZjYy0+ZGV2KTsKLQlyZWZjb3VudF9h ZGQoc2tiLT50cnVlc2l6ZSwgJnNrX2F0bShhdG12Y2MpLT5za193bWVtX2FsbG9jKTsKLQlBVE1f U0tCKHNrYiktPmF0bV9vcHRpb25zID0gYXRtdmNjLT5hdG1fb3B0aW9uczsKKwlhdG1fYWNjb3Vu dF90eChhdG12Y2MsIHNrYik7CiAJZGV2LT5zdGF0cy50eF9wYWNrZXRzKys7CiAJZGV2LT5zdGF0 cy50eF9ieXRlcyArPSBza2ItPmxlbjsKIApkaWZmIC0tZ2l0IGEvbmV0L2F0bS9jbGlwLmMgYi9u ZXQvYXRtL2NsaXAuYwppbmRleCA2NWY3MDZlNDM0NGMuLjYwOTIwYTQyZjY0MCAxMDA2NDQKLS0t IGEvbmV0L2F0bS9jbGlwLmMKKysrIGIvbmV0L2F0bS9jbGlwLmMKQEAgLTM4MSw4ICszODEsNyBA QCBzdGF0aWMgbmV0ZGV2X3R4X3QgY2xpcF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2Is CiAJCW1lbWNweShoZXJlLCBsbGNfb3VpLCBzaXplb2YobGxjX291aSkpOwogCQkoKF9fYmUxNiAq KSBoZXJlKVszXSA9IHNrYi0+cHJvdG9jb2w7CiAJfQotCXJlZmNvdW50X2FkZChza2ItPnRydWVz aXplLCAmc2tfYXRtKHZjYyktPnNrX3dtZW1fYWxsb2MpOwotCUFUTV9TS0Ioc2tiKS0+YXRtX29w dGlvbnMgPSB2Y2MtPmF0bV9vcHRpb25zOworCWF0bV9hY2NvdW50X3R4KHZjYywgc2tiKTsKIAll bnRyeS0+dmNjcy0+bGFzdF91c2UgPSBqaWZmaWVzOwogCXByX2RlYnVnKCJhdG1fc2tiKCVwKS0+ dmNjKCVwKS0+ZGV2KCVwKVxuIiwgc2tiLCB2Y2MsIHZjYy0+ZGV2KTsKIAlvbGQgPSB4Y2hnKCZl bnRyeS0+dmNjcy0+eG9mZiwgMSk7CS8qIGFzc3VtZSBYT0ZGIC4uLiAqLwpkaWZmIC0tZ2l0IGEv bmV0L2F0bS9jb21tb24uYyBiL25ldC9hdG0vY29tbW9uLmMKaW5kZXggOGE0Zjk5MTE0Y2QyLi45 ZTgxMmM3ODJhMzcgMTAwNjQ0Ci0tLSBhL25ldC9hdG0vY29tbW9uLmMKKysrIGIvbmV0L2F0bS9j b21tb24uYwpAQCAtNjMwLDEwICs2MzAsOSBAQCBpbnQgdmNjX3NlbmRtc2coc3RydWN0IHNvY2tl dCAqc29jaywgc3RydWN0IG1zZ2hkciAqbSwgc2l6ZV90IHNpemUpCiAJCWdvdG8gb3V0OwogCX0K IAlwcl9kZWJ1ZygiJWQgKz0gJWRcbiIsIHNrX3dtZW1fYWxsb2NfZ2V0KHNrKSwgc2tiLT50cnVl c2l6ZSk7Ci0JcmVmY291bnRfYWRkKHNrYi0+dHJ1ZXNpemUsICZzay0+c2tfd21lbV9hbGxvYyk7 CisJYXRtX2FjY291bnRfdHgodmNjLCBza2IpOwogCiAJc2tiLT5kZXYgPSBOVUxMOyAvKiBmb3Ig cGF0aHMgc2hhcmVkIHdpdGggbmV0X2RldmljZSBpbnRlcmZhY2VzICovCi0JQVRNX1NLQihza2Ip LT5hdG1fb3B0aW9ucyA9IHZjYy0+YXRtX29wdGlvbnM7CiAJaWYgKCFjb3B5X2Zyb21faXRlcl9m dWxsKHNrYl9wdXQoc2tiLCBzaXplKSwgc2l6ZSwgJm0tPm1zZ19pdGVyKSkgewogCQlrZnJlZV9z a2Ioc2tiKTsKIAkJZXJyb3IgPSAtRUZBVUxUOwpkaWZmIC0tZ2l0IGEvbmV0L2F0bS9sZWMuYyBi L25ldC9hdG0vbGVjLmMKaW5kZXggNTc0MWI2NDc0ZGQ5Li45ZjIzNjU2OTRhZDQgMTAwNjQ0Ci0t LSBhL25ldC9hdG0vbGVjLmMKKysrIGIvbmV0L2F0bS9sZWMuYwpAQCAtMTgyLDkgKzE4Miw4IEBA IGxlY19zZW5kKHN0cnVjdCBhdG1fdmNjICp2Y2MsIHN0cnVjdCBza19idWZmICpza2IpCiAJc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiA9IHNrYi0+ZGV2OwogCiAJQVRNX1NLQihza2IpLT52Y2MgPSB2 Y2M7Ci0JQVRNX1NLQihza2IpLT5hdG1fb3B0aW9ucyA9IHZjYy0+YXRtX29wdGlvbnM7CisJYXRt X2FjY291bnRfdHgodmNjLCBza2IpOwogCi0JcmVmY291bnRfYWRkKHNrYi0+dHJ1ZXNpemUsICZz a19hdG0odmNjKS0+c2tfd21lbV9hbGxvYyk7CiAJaWYgKHZjYy0+c2VuZCh2Y2MsIHNrYikgPCAw KSB7CiAJCWRldi0+c3RhdHMudHhfZHJvcHBlZCsrOwogCQlyZXR1cm47CmRpZmYgLS1naXQgYS9u ZXQvYXRtL21wYy5jIGIvbmV0L2F0bS9tcGMuYwppbmRleCA1Njc3MTQ3MjA5ZTguLmRiOWExODM4 Njg3YyAxMDA2NDQKLS0tIGEvbmV0L2F0bS9tcGMuYworKysgYi9uZXQvYXRtL21wYy5jCkBAIC01 NTUsOCArNTU1LDcgQEAgc3RhdGljIGludCBzZW5kX3ZpYV9zaG9ydGN1dChzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3QgbXBvYV9jbGllbnQgKm1wYykKIAkJCQkJc2l6ZW9mKHN0cnVjdCBsbGNf c25hcF9oZHIpKTsKIAl9CiAKLQlyZWZjb3VudF9hZGQoc2tiLT50cnVlc2l6ZSwgJnNrX2F0bShl bnRyeS0+c2hvcnRjdXQpLT5za193bWVtX2FsbG9jKTsKLQlBVE1fU0tCKHNrYiktPmF0bV9vcHRp b25zID0gZW50cnktPnNob3J0Y3V0LT5hdG1fb3B0aW9uczsKKwlhdG1fYWNjb3VudF90eChlbnRy eS0+c2hvcnRjdXQsIHNrYik7CiAJZW50cnktPnNob3J0Y3V0LT5zZW5kKGVudHJ5LT5zaG9ydGN1 dCwgc2tiKTsKIAllbnRyeS0+cGFja2V0c19md2RlZCsrOwogCW1wYy0+aW5fb3BzLT5wdXQoZW50 cnkpOwpkaWZmIC0tZ2l0IGEvbmV0L2F0bS9wcHBvYXRtLmMgYi9uZXQvYXRtL3BwcG9hdG0uYwpp bmRleCAyMWQ5ZDM0MWE2MTkuLmFmOGM0YjM4Yjc0NiAxMDA2NDQKLS0tIGEvbmV0L2F0bS9wcHBv YXRtLmMKKysrIGIvbmV0L2F0bS9wcHBvYXRtLmMKQEAgLTM1MCw4ICszNTAsNyBAQCBzdGF0aWMg aW50IHBwcG9hdG1fc2VuZChzdHJ1Y3QgcHBwX2NoYW5uZWwgKmNoYW4sIHN0cnVjdCBza19idWZm ICpza2IpCiAJCXJldHVybiAxOwogCX0KIAotCXJlZmNvdW50X2FkZChza2ItPnRydWVzaXplLCAm c2tfYXRtKEFUTV9TS0Ioc2tiKS0+dmNjKS0+c2tfd21lbV9hbGxvYyk7Ci0JQVRNX1NLQihza2Ip LT5hdG1fb3B0aW9ucyA9IEFUTV9TS0Ioc2tiKS0+dmNjLT5hdG1fb3B0aW9uczsKKwlhdG1fYWNj b3VudF90eCh2Y2MsIHNrYik7CiAJcHJfZGVidWcoImF0bV9za2IoJXApLT52Y2MoJXApLT5kZXYo JXApXG4iLAogCQkgc2tiLCBBVE1fU0tCKHNrYiktPnZjYywgQVRNX1NLQihza2IpLT52Y2MtPmRl dik7CiAJcmV0ID0gQVRNX1NLQihza2IpLT52Y2MtPnNlbmQoQVRNX1NLQihza2IpLT52Y2MsIHNr YikKZGlmZiAtLWdpdCBhL25ldC9hdG0vcmF3LmMgYi9uZXQvYXRtL3Jhdy5jCmluZGV4IGVlMTBl OGQ0NjE4NS4uYjNiYTQ0YWFiMGVlIDEwMDY0NAotLS0gYS9uZXQvYXRtL3Jhdy5jCisrKyBiL25l dC9hdG0vcmF3LmMKQEAgLTM1LDggKzM1LDggQEAgc3RhdGljIHZvaWQgYXRtX3BvcF9yYXcoc3Ry dWN0IGF0bV92Y2MgKnZjYywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlzdHJ1Y3Qgc29jayAqc2sg PSBza19hdG0odmNjKTsKIAogCXByX2RlYnVnKCIoJWQpICVkIC09ICVkXG4iLAotCQkgdmNjLT52 Y2ksIHNrX3dtZW1fYWxsb2NfZ2V0KHNrKSwgc2tiLT50cnVlc2l6ZSk7Ci0JV0FSTl9PTihyZWZj b3VudF9zdWJfYW5kX3Rlc3Qoc2tiLT50cnVlc2l6ZSwgJnNrLT5za193bWVtX2FsbG9jKSk7CisJ CSB2Y2MtPnZjaSwgc2tfd21lbV9hbGxvY19nZXQoc2spLCBBVE1fU0tCKHNrYiktPmFjY3RfdHJ1 ZXNpemUpOworCVdBUk5fT04ocmVmY291bnRfc3ViX2FuZF90ZXN0KEFUTV9TS0Ioc2tiKS0+YWNj dF90cnVlc2l6ZSwgJnNrLT5za193bWVtX2FsbG9jKSk7CiAJZGV2X2tmcmVlX3NrYl9hbnkoc2ti KTsKIAlzay0+c2tfd3JpdGVfc3BhY2Uoc2spOwogfQotLSAKMi4xNy4xCgoKRnJvbSA5NmEyNjM0 ZmEzNmIzNzk1MDJhYzZlNDdiNTk5MTIzYjQyNjhjMjE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiAiR3VzdGF2byBBLiBSLiBTaWx2YSIgPGd1c3Rhdm9AZW1iZWRkZWRvci5jb20+CkRh dGU6IEZyaSwgMjkgSnVuIDIwMTggMTM6Mjg6MDcgLTA1MDAKU3ViamVjdDogW1BBVENIIDAzLzM1 XSBhdG06IHphdG06IEZpeCBwb3RlbnRpYWwgU3BlY3RyZSB2MQoKWyBVcHN0cmVhbSBjb21taXQg Y2VkOWUxOTE1MDFlNTJiOTVlMWI1N2I4ZTBkYjAwOTQzODY5ZWVkMCBdCgpwb29sIGNhbiBiZSBp bmRpcmVjdGx5IGNvbnRyb2xsZWQgYnkgdXNlci1zcGFjZSwgaGVuY2UgbGVhZGluZyB0bwphIHBv dGVudGlhbCBleHBsb2l0YXRpb24gb2YgdGhlIFNwZWN0cmUgdmFyaWFudCAxIHZ1bG5lcmFiaWxp dHkuCgpUaGlzIGlzc3VlIHdhcyBkZXRlY3RlZCB3aXRoIHRoZSBoZWxwIG9mIFNtYXRjaDoKCmRy aXZlcnMvYXRtL3phdG0uYzoxNDkxIHphdG1faW9jdGwoKSB3YXJuOiBwb3RlbnRpYWwgc3BlY3Ry ZSBpc3N1ZQonemF0bV9kZXYtPnBvb2xfaW5mbycgKGxvY2FsIGNhcCkKCkZpeCB0aGlzIGJ5IHNh bml0aXppbmcgcG9vbCBiZWZvcmUgdXNpbmcgaXQgdG8gaW5kZXgKemF0bV9kZXYtPnBvb2xfaW5m bwoKTm90aWNlIHRoYXQgZ2l2ZW4gdGhhdCBzcGVjdWxhdGlvbiB3aW5kb3dzIGFyZSBsYXJnZSwg dGhlIHBvbGljeSBpcwp0byBraWxsIHRoZSBzcGVjdWxhdGlvbiBvbiB0aGUgZmlyc3QgbG9hZCBh bmQgbm90IHdvcnJ5IGlmIGl0IGNhbiBiZQpjb21wbGV0ZWQgd2l0aCBhIGRlcGVuZGVudCBsb2Fk L3N0b3JlIFsxXS4KClsxXSBodHRwczovL21hcmMuaW5mby8/bD1saW51eC1rZXJuZWwmbT0xNTI0 NDkxMzExMTQ3Nzgmdz0yCgpTaWduZWQtb2ZmLWJ5OiBHdXN0YXZvIEEuIFIuIFNpbHZhIDxndXN0 YXZvQGVtYmVkZGVkb3IuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9hdG0vemF0bS5jIHwgMiArKwogMSBmaWxlIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRtL3phdG0uYyBi L2RyaXZlcnMvYXRtL3phdG0uYwppbmRleCA5YzlhMjI5NTg3MTcuLjhkZTU0YTdhMzQ1ZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9hdG0vemF0bS5jCisrKyBiL2RyaXZlcnMvYXRtL3phdG0uYwpAQCAt MTQ4Myw2ICsxNDgzLDggQEAgc3RhdGljIGludCB6YXRtX2lvY3RsKHN0cnVjdCBhdG1fZGV2ICpk ZXYsdW5zaWduZWQgaW50IGNtZCx2b2lkIF9fdXNlciAqYXJnKQogCQkJCQlyZXR1cm4gLUVGQVVM VDsKIAkJCQlpZiAocG9vbCA8IDAgfHwgcG9vbCA+IFpBVE1fTEFTVF9QT09MKQogCQkJCQlyZXR1 cm4gLUVJTlZBTDsKKwkJCQlwb29sID0gYXJyYXlfaW5kZXhfbm9zcGVjKHBvb2wsCisJCQkJCQkJ ICBaQVRNX0xBU1RfUE9PTCArIDEpOwogCQkJCWlmIChjb3B5X2Zyb21fdXNlcigmaW5mbywKIAkJ CQkgICAgJigoc3RydWN0IHphdG1fcG9vbF9yZXEgX191c2VyICopIGFyZyktPmluZm8sCiAJCQkJ ICAgIHNpemVvZihpbmZvKSkpIHJldHVybiAtRUZBVUxUOwotLSAKMi4xNy4xCgoKRnJvbSA0MmUy OWUyN2JhYzU4MWE0MTgzZDg5YWE4OTIxZjQ4MDUwN2VhNDhkIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBTdGVwaGVuIEhlbW1pbmdlciA8c3RoZW1taW5AbWljcm9zb2Z0LmNvbT4KRGF0 ZTogRnJpLCAyOSBKdW4gMjAxOCAxNDowNzoxNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMzVd IGh2X25ldHZzYzogc3BsaXQgc3ViLWNoYW5uZWwgc2V0dXAgaW50byBhc3luYyBhbmQgc3luYwoK WyBVcHN0cmVhbSBjb21taXQgM2ZmZTY0ZjFhNjQxYjgwYTgyZDllZjRlZmE3YTA1Y2U2OTA0OTg3 MSBdCgpXaGVuIGRvaW5nIGRldmljZSBob3RwbHVnIHRoZSBzdWIgY2hhbm5lbCBtdXN0IGJlIGFz eW5jIHRvIGF2b2lkCmRlYWRsb2NrIGlzc3VlcyBiZWNhdXNlIGRldmljZSBpcyBkaXNjb3ZlcmVk IGluIHNvZnRpcnEgY29udGV4dC4KCldoZW4gZG9pbmcgY2hhbmdlcyB0byBNVFUgYW5kIG51bWJl ciBvZiBjaGFubmVscywgdGhlIHNldHVwCm11c3QgYmUgc3luY2hyb25vdXMgdG8gYXZvaWQgcmFj ZXMgc3VjaCBhcyB3aGVuIE1UVSBhbmQgZGV2aWNlCnNldHRpbmdzIGFyZSBkb25lIGluIGEgc2lu Z2xlIGlwIGNvbW1hbmQuCgpSZXBvcnRlZC1ieTogVGhvbWFzIFdhbGtlciA8VGhvbWFzLldhbGtl ckB0d29zaWdtYS5jb20+CkZpeGVzOiA4MTk1YjEzOTZlYzggKCJodl9uZXR2c2M6IGZpeCBkZWFk bG9jayBvbiBob3RwbHVnIikKRml4ZXM6IDczMmU0OTg1MGM1ZSAoIm5ldHZzYzogZml4IHJhY2Ug b24gc3ViIGNoYW5uZWwgY3JlYXRpb24iKQpTaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIEhlbW1pbmdl ciA8c3RoZW1taW5AbWljcm9zb2Z0LmNvbT4KU2lnbmVkLW9mZi1ieTogSGFpeWFuZyBaaGFuZyA8 aGFpeWFuZ3pAbWljcm9zb2Z0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2h5cGVydi9oeXBlcnZfbmV0Lmgg ICB8ICAyICstCiBkcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMgICAgICAgfCAzNyArKysrKysr KysrKysrKysrKystCiBkcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jICAgfCAxNyArKysr KysrKy0KIGRyaXZlcnMvbmV0L2h5cGVydi9ybmRpc19maWx0ZXIuYyB8IDYxICsrKysrKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwg NTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L2h5cGVydl9u ZXQuaCBiL2RyaXZlcnMvbmV0L2h5cGVydi9oeXBlcnZfbmV0LmgKaW5kZXggMDEwMTdkZDg4ODAy Li5jYjI1MGNhY2Y3MjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVydi9oeXBlcnZfbmV0 LmgKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2L2h5cGVydl9uZXQuaApAQCAtMjA3LDcgKzIwNyw3 IEBAIGludCBuZXR2c2NfcmVjdl9jYWxsYmFjayhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0LAogdm9p ZCBuZXR2c2NfY2hhbm5lbF9jYih2b2lkICpjb250ZXh0KTsKIGludCBuZXR2c2NfcG9sbChzdHJ1 Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpOwogCi12b2lkIHJuZGlzX3NldF9zdWJj aGFubmVsKHN0cnVjdCB3b3JrX3N0cnVjdCAqdyk7CitpbnQgcm5kaXNfc2V0X3N1YmNoYW5uZWwo c3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBuZXR2c2NfZGV2aWNlICpudmRldik7CiBp bnQgcm5kaXNfZmlsdGVyX29wZW4oc3RydWN0IG5ldHZzY19kZXZpY2UgKm52ZGV2KTsKIGludCBy bmRpc19maWx0ZXJfY2xvc2Uoc3RydWN0IG5ldHZzY19kZXZpY2UgKm52ZGV2KTsKIHN0cnVjdCBu ZXR2c2NfZGV2aWNlICpybmRpc19maWx0ZXJfZGV2aWNlX2FkZChzdHJ1Y3QgaHZfZGV2aWNlICpk ZXYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMgYi9kcml2ZXJzL25l dC9oeXBlcnYvbmV0dnNjLmMKaW5kZXggNDY0N2VjYmU2ZjM2Li43MDFiZTVkODEwNjIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYworKysgYi9kcml2ZXJzL25ldC9oeXBl cnYvbmV0dnNjLmMKQEAgLTYyLDYgKzYyLDQxIEBAIHZvaWQgbmV0dnNjX3N3aXRjaF9kYXRhcGF0 aChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgYm9vbCB2ZikKIAkJCSAgICAgICBWTV9QS1RfREFU QV9JTkJBTkQsIDApOwogfQogCisvKiBXb3JrZXIgdG8gc2V0dXAgc3ViIGNoYW5uZWxzIG9uIGlu aXRpYWwgc2V0dXAKKyAqIEluaXRpYWwgaG90cGx1ZyBldmVudCBvY2N1cnMgaW4gc29mdGlycSBj b250ZXh0CisgKiBhbmQgY2FuJ3Qgd2FpdCBmb3IgY2hhbm5lbHMuCisgKi8KK3N0YXRpYyB2b2lk IG5ldHZzY19zdWJjaGFuX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3KQoreworCXN0cnVjdCBu ZXR2c2NfZGV2aWNlICpudmRldiA9CisJCWNvbnRhaW5lcl9vZih3LCBzdHJ1Y3QgbmV0dnNjX2Rl dmljZSwgc3ViY2hhbl93b3JrKTsKKwlzdHJ1Y3Qgcm5kaXNfZGV2aWNlICpyZGV2OworCWludCBp LCByZXQ7CisKKwkvKiBBdm9pZCBkZWFkbG9jayB3aXRoIGRldmljZSByZW1vdmFsIGFscmVhZHkg dW5kZXIgUlROTCAqLworCWlmICghcnRubF90cnlsb2NrKCkpIHsKKwkJc2NoZWR1bGVfd29yayh3 KTsKKwkJcmV0dXJuOworCX0KKworCXJkZXYgPSBudmRldi0+ZXh0ZW5zaW9uOworCWlmIChyZGV2 KSB7CisJCXJldCA9IHJuZGlzX3NldF9zdWJjaGFubmVsKHJkZXYtPm5kZXYsIG52ZGV2KTsKKwkJ aWYgKHJldCA9PSAwKSB7CisJCQluZXRpZl9kZXZpY2VfYXR0YWNoKHJkZXYtPm5kZXYpOworCQl9 IGVsc2UgeworCQkJLyogZmFsbGJhY2sgdG8gb25seSBwcmltYXJ5IGNoYW5uZWwgKi8KKwkJCWZv ciAoaSA9IDE7IGkgPCBudmRldi0+bnVtX2NobjsgaSsrKQorCQkJCW5ldGlmX25hcGlfZGVsKCZu dmRldi0+Y2hhbl90YWJsZVtpXS5uYXBpKTsKKworCQkJbnZkZXYtPm1heF9jaG4gPSAxOworCQkJ bnZkZXYtPm51bV9jaG4gPSAxOworCQl9CisJfQorCisJcnRubF91bmxvY2soKTsKK30KKwogc3Rh dGljIHN0cnVjdCBuZXR2c2NfZGV2aWNlICphbGxvY19uZXRfZGV2aWNlKHZvaWQpCiB7CiAJc3Ry dWN0IG5ldHZzY19kZXZpY2UgKm5ldF9kZXZpY2U7CkBAIC03OCw3ICsxMTMsNyBAQCBzdGF0aWMg c3RydWN0IG5ldHZzY19kZXZpY2UgKmFsbG9jX25ldF9kZXZpY2Uodm9pZCkKIAogCWluaXRfY29t cGxldGlvbigmbmV0X2RldmljZS0+Y2hhbm5lbF9pbml0X3dhaXQpOwogCWluaXRfd2FpdHF1ZXVl X2hlYWQoJm5ldF9kZXZpY2UtPnN1YmNoYW5fb3Blbik7Ci0JSU5JVF9XT1JLKCZuZXRfZGV2aWNl LT5zdWJjaGFuX3dvcmssIHJuZGlzX3NldF9zdWJjaGFubmVsKTsKKwlJTklUX1dPUksoJm5ldF9k ZXZpY2UtPnN1YmNoYW5fd29yaywgbmV0dnNjX3N1YmNoYW5fd29yayk7CiAKIAlyZXR1cm4gbmV0 X2RldmljZTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMg Yi9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCmluZGV4IDY4OTA0NzhhMDg1MS4uYWVh YmViMTA3ZmVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCisr KyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKQEAgLTkxMSw4ICs5MTEsMjAgQEAg c3RhdGljIGludCBuZXR2c2NfYXR0YWNoKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LAogCWlmIChJ U19FUlIobnZkZXYpKQogCQlyZXR1cm4gUFRSX0VSUihudmRldik7CiAKLQkvKiBOb3RlOiBlbmFi bGUgYW5kIGF0dGFjaCBoYXBwZW4gd2hlbiBzdWItY2hhbm5lbHMgc2V0dXAgKi8KKwlpZiAobnZk ZXYtPm51bV9jaG4gPiAxKSB7CisJCXJldCA9IHJuZGlzX3NldF9zdWJjaGFubmVsKG5kZXYsIG52 ZGV2KTsKKworCQkvKiBpZiB1bmF2YWlsYWJsZSwganVzdCBwcm9jZWVkIHdpdGggb25lIHF1ZXVl ICovCisJCWlmIChyZXQpIHsKKwkJCW52ZGV2LT5tYXhfY2huID0gMTsKKwkJCW52ZGV2LT5udW1f Y2huID0gMTsKKwkJfQorCX0KKworCS8qIEluIGFueSBjYXNlIGRldmljZSBpcyBub3cgcmVhZHkg Ki8KKwluZXRpZl9kZXZpY2VfYXR0YWNoKG5kZXYpOwogCisJLyogTm90ZTogZW5hYmxlIGFuZCBh dHRhY2ggaGFwcGVuIHdoZW4gc3ViLWNoYW5uZWxzIHNldHVwICovCiAJbmV0aWZfY2Fycmllcl9v ZmYobmRldik7CiAKIAlpZiAobmV0aWZfcnVubmluZyhuZGV2KSkgewpAQCAtMjAzNSw2ICsyMDQ3 LDkgQEAgc3RhdGljIGludCBuZXR2c2NfcHJvYmUoc3RydWN0IGh2X2RldmljZSAqZGV2LAogCiAJ bWVtY3B5KG5ldC0+ZGV2X2FkZHIsIGRldmljZV9pbmZvLm1hY19hZHIsIEVUSF9BTEVOKTsKIAor CWlmIChudmRldi0+bnVtX2NobiA+IDEpCisJCXNjaGVkdWxlX3dvcmsoJm52ZGV2LT5zdWJjaGFu X3dvcmspOworCiAJLyogaHdfZmVhdHVyZXMgY29tcHV0ZWQgaW4gcm5kaXNfbmV0ZGV2X3NldF9o d2NhcHMoKSAqLwogCW5ldC0+ZmVhdHVyZXMgPSBuZXQtPmh3X2ZlYXR1cmVzIHwKIAkJTkVUSUZf Rl9ISUdIRE1BIHwgTkVUSUZfRl9TRyB8CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oeXBlcnYv cm5kaXNfZmlsdGVyLmMgYi9kcml2ZXJzL25ldC9oeXBlcnYvcm5kaXNfZmlsdGVyLmMKaW5kZXgg ZDFhZTE4NDAwOGI0Li5jYjAzYTZlYTA3NmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVy di9ybmRpc19maWx0ZXIuYworKysgYi9kcml2ZXJzL25ldC9oeXBlcnYvcm5kaXNfZmlsdGVyLmMK QEAgLTEwNTUsMjkgKzEwNTUsMTUgQEAgc3RhdGljIHZvaWQgbmV0dnNjX3NjX29wZW4oc3RydWN0 IHZtYnVzX2NoYW5uZWwgKm5ld19zYykKICAqIFRoaXMgYnJlYWtzIG92ZXJsYXAgb2YgcHJvY2Vz c2luZyB0aGUgaG9zdCBtZXNzYWdlIGZvciB0aGUKICAqIG5ldyBwcmltYXJ5IGNoYW5uZWwgd2l0 aCB0aGUgaW5pdGlhbGl6YXRpb24gb2Ygc3ViLWNoYW5uZWxzLgogICovCi12b2lkIHJuZGlzX3Nl dF9zdWJjaGFubmVsKHN0cnVjdCB3b3JrX3N0cnVjdCAqdykKK2ludCBybmRpc19zZXRfc3ViY2hh bm5lbChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IG5ldHZzY19kZXZpY2UgKm52ZGV2 KQogewotCXN0cnVjdCBuZXR2c2NfZGV2aWNlICpudmRldgotCQk9IGNvbnRhaW5lcl9vZih3LCBz dHJ1Y3QgbmV0dnNjX2RldmljZSwgc3ViY2hhbl93b3JrKTsKIAlzdHJ1Y3QgbnZzcF9tZXNzYWdl ICppbml0X3BhY2tldCA9ICZudmRldi0+Y2hhbm5lbF9pbml0X3BrdDsKLQlzdHJ1Y3QgbmV0X2Rl dmljZV9jb250ZXh0ICpuZGV2X2N0eDsKLQlzdHJ1Y3Qgcm5kaXNfZGV2aWNlICpyZGV2OwotCXN0 cnVjdCBuZXRfZGV2aWNlICpuZGV2OwotCXN0cnVjdCBodl9kZXZpY2UgKmh2X2RldjsKKwlzdHJ1 Y3QgbmV0X2RldmljZV9jb250ZXh0ICpuZGV2X2N0eCA9IG5ldGRldl9wcml2KG5kZXYpOworCXN0 cnVjdCBodl9kZXZpY2UgKmh2X2RldiA9IG5kZXZfY3R4LT5kZXZpY2VfY3R4OworCXN0cnVjdCBy bmRpc19kZXZpY2UgKnJkZXYgPSBudmRldi0+ZXh0ZW5zaW9uOwogCWludCBpLCByZXQ7CiAKLQlp ZiAoIXJ0bmxfdHJ5bG9jaygpKSB7Ci0JCXNjaGVkdWxlX3dvcmsodyk7Ci0JCXJldHVybjsKLQl9 Ci0KLQlyZGV2ID0gbnZkZXYtPmV4dGVuc2lvbjsKLQlpZiAoIXJkZXYpCi0JCWdvdG8gdW5sb2Nr OwkvKiBkZXZpY2Ugd2FzIHJlbW92ZWQgKi8KLQotCW5kZXYgPSByZGV2LT5uZGV2OwotCW5kZXZf Y3R4ID0gbmV0ZGV2X3ByaXYobmRldik7Ci0JaHZfZGV2ID0gbmRldl9jdHgtPmRldmljZV9jdHg7 CisJQVNTRVJUX1JUTkwoKTsKIAogCW1lbXNldChpbml0X3BhY2tldCwgMCwgc2l6ZW9mKHN0cnVj dCBudnNwX21lc3NhZ2UpKTsKIAlpbml0X3BhY2tldC0+aGRyLm1zZ190eXBlID0gTlZTUF9NU0c1 X1RZUEVfU1VCQ0hBTk5FTDsKQEAgLTEwOTEsMTMgKzEwNzcsMTMgQEAgdm9pZCBybmRpc19zZXRf c3ViY2hhbm5lbChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKncpCiAJCQkgICAgICAgVk1CVVNfREFUQV9Q QUNLRVRfRkxBR19DT01QTEVUSU9OX1JFUVVFU1RFRCk7CiAJaWYgKHJldCkgewogCQluZXRkZXZf ZXJyKG5kZXYsICJzdWIgY2hhbm5lbCBhbGxvY2F0ZSBzZW5kIGZhaWxlZDogJWRcbiIsIHJldCk7 Ci0JCWdvdG8gZmFpbGVkOworCQlyZXR1cm4gcmV0OwogCX0KIAogCXdhaXRfZm9yX2NvbXBsZXRp b24oJm52ZGV2LT5jaGFubmVsX2luaXRfd2FpdCk7CiAJaWYgKGluaXRfcGFja2V0LT5tc2cudjVf bXNnLnN1YmNobl9jb21wLnN0YXR1cyAhPSBOVlNQX1NUQVRfU1VDQ0VTUykgewogCQluZXRkZXZf ZXJyKG5kZXYsICJzdWIgY2hhbm5lbCByZXF1ZXN0IGZhaWxlZFxuIik7Ci0JCWdvdG8gZmFpbGVk OworCQlyZXR1cm4gLUVJTzsKIAl9CiAKIAludmRldi0+bnVtX2NobiA9IDEgKwpAQCAtMTExNiwy MSArMTEwMiw3IEBAIHZvaWQgcm5kaXNfc2V0X3N1YmNoYW5uZWwoc3RydWN0IHdvcmtfc3RydWN0 ICp3KQogCWZvciAoaSA9IDA7IGkgPCBWUlNTX1NFTkRfVEFCX1NJWkU7IGkrKykKIAkJbmRldl9j dHgtPnR4X3RhYmxlW2ldID0gaSAlIG52ZGV2LT5udW1fY2huOwogCi0JbmV0aWZfZGV2aWNlX2F0 dGFjaChuZGV2KTsKLQlydG5sX3VubG9jaygpOwotCXJldHVybjsKLQotZmFpbGVkOgotCS8qIGZh bGxiYWNrIHRvIG9ubHkgcHJpbWFyeSBjaGFubmVsICovCi0JZm9yIChpID0gMTsgaSA8IG52ZGV2 LT5udW1fY2huOyBpKyspCi0JCW5ldGlmX25hcGlfZGVsKCZudmRldi0+Y2hhbl90YWJsZVtpXS5u YXBpKTsKLQotCW52ZGV2LT5tYXhfY2huID0gMTsKLQludmRldi0+bnVtX2NobiA9IDE7Ci0KLQlu ZXRpZl9kZXZpY2VfYXR0YWNoKG5kZXYpOwotdW5sb2NrOgotCXJ0bmxfdW5sb2NrKCk7CisJcmV0 dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgcm5kaXNfbmV0ZGV2X3NldF9od2NhcHMoc3RydWN0IHJu ZGlzX2RldmljZSAqcm5kaXNfZGV2aWNlLApAQCAtMTMyMSwyMSArMTI5MywxMiBAQCBzdHJ1Y3Qg bmV0dnNjX2RldmljZSAqcm5kaXNfZmlsdGVyX2RldmljZV9hZGQoc3RydWN0IGh2X2RldmljZSAq ZGV2LAogCQluZXRpZl9uYXBpX2FkZChuZXQsICZuZXRfZGV2aWNlLT5jaGFuX3RhYmxlW2ldLm5h cGksCiAJCQkgICAgICAgbmV0dnNjX3BvbGwsIE5BUElfUE9MTF9XRUlHSFQpOwogCi0JaWYgKG5l dF9kZXZpY2UtPm51bV9jaG4gPiAxKQotCQlzY2hlZHVsZV93b3JrKCZuZXRfZGV2aWNlLT5zdWJj aGFuX3dvcmspOworCXJldHVybiBuZXRfZGV2aWNlOwogCiBvdXQ6Ci0JLyogaWYgdW5hdmFpbGFi bGUsIGp1c3QgcHJvY2VlZCB3aXRoIG9uZSBxdWV1ZSAqLwotCWlmIChyZXQpIHsKLQkJbmV0X2Rl dmljZS0+bWF4X2NobiA9IDE7Ci0JCW5ldF9kZXZpY2UtPm51bV9jaG4gPSAxOwotCX0KLQotCS8q IE5vIHN1YiBjaGFubmVscywgZGV2aWNlIGlzIHJlYWR5ICovCi0JaWYgKG5ldF9kZXZpY2UtPm51 bV9jaG4gPT0gMSkKLQkJbmV0aWZfZGV2aWNlX2F0dGFjaChuZXQpOwotCi0JcmV0dXJuIG5ldF9k ZXZpY2U7CisJLyogc2V0dGluZyB1cCBtdWx0aXBsZSBjaGFubmVscyBmYWlsZWQgKi8KKwluZXRf ZGV2aWNlLT5tYXhfY2huID0gMTsKKwluZXRfZGV2aWNlLT5udW1fY2huID0gMTsKIAogZXJyX2Rl dl9yZW12OgogCXJuZGlzX2ZpbHRlcl9kZXZpY2VfcmVtb3ZlKGRldiwgbmV0X2RldmljZSk7Ci0t IAoyLjE3LjEKCgpGcm9tIDNjMWUxNjk2M2Q5ZGY2NjVkMDY4MmJhZDE0ZmFhYTMyNGRhZWRkMmMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgQmlnZ2VycyA8ZWJpZ2dlcnNAZ29v Z2xlLmNvbT4KRGF0ZTogU2F0LCAzMCBKdW4gMjAxOCAxNToyNjo1NiAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggMDUvMzVdIGlwdjY6IHNyOiBmaXggcGFzc2luZyB3cm9uZyBmbGFncyB0bwogY3J5cHRv X2FsbG9jX3NoYXNoKCkKClsgVXBzdHJlYW0gY29tbWl0IGZjOWMyMDI5ZTM3YzNhZTllZmMyOGJm NDcwNDVlMGI4N2UwOTY2MGMgXQoKVGhlICdtYXNrJyBhcmd1bWVudCB0byBjcnlwdG9fYWxsb2Nf c2hhc2goKSB1c2VzIHRoZSBDUllQVE9fQUxHXyogZmxhZ3MsCm5vdCAnZ2ZwX3QnLiAgU28gZG9u J3QgcGFzcyBHRlBfS0VSTkVMIHRvIGl0LgoKRml4ZXM6IGJmMzU1YjhkMmMzMCAoImlwdjY6IHNy OiBhZGQgY29yZSBmaWxlcyBmb3IgU1IgSE1BQyBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogRXJp YyBCaWdnZXJzIDxlYmlnZ2Vyc0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvc2VnNl9obWFjLmMgfCAy ICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9uZXQvaXB2Ni9zZWc2X2htYWMuYyBiL25ldC9pcHY2L3NlZzZfaG1hYy5jCmluZGV4 IDMzZmIzNWNiZmFjMS4uNTU4ZmU4Y2M2ZDQzIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9zZWc2X2ht YWMuYworKysgYi9uZXQvaXB2Ni9zZWc2X2htYWMuYwpAQCAtMzczLDcgKzM3Myw3IEBAIHN0YXRp YyBpbnQgc2VnNl9obWFjX2luaXRfYWxnbyh2b2lkKQogCQkJcmV0dXJuIC1FTk9NRU07CiAKIAkJ Zm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkgewotCQkJdGZtID0gY3J5cHRvX2FsbG9jX3NoYXNo KGFsZ28tPm5hbWUsIDAsIEdGUF9LRVJORUwpOworCQkJdGZtID0gY3J5cHRvX2FsbG9jX3NoYXNo KGFsZ28tPm5hbWUsIDAsIDApOwogCQkJaWYgKElTX0VSUih0Zm0pKQogCQkJCXJldHVybiBQVFJf RVJSKHRmbSk7CiAJCQlwX3RmbSA9IHBlcl9jcHVfcHRyKGFsZ28tPnRmbXMsIGNwdSk7Ci0tIAoy LjE3LjEKCgpGcm9tIDNhZTIwMWU3OGQ0NGE3ZjBmMDE2YTZmZjFlYTUyZWFmYjBjZTJlYzggTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNv bT4KRGF0ZTogVGh1LCAyMSBKdW4gMjAxOCAxMjo1NjowNCArMDgwMApTdWJqZWN0OiBbUEFUQ0gg MDYvMzVdIGlwdmxhbjogZml4IElGTEFfTVRVIGlnbm9yZWQgb24gTkVXTElOSwoKWyBVcHN0cmVh bSBjb21taXQgMzA4Nzc5NjFiMWNkZDZmZGNhNzgzYzJlOGM0ZjBmNDdlOTVkYzU4YyBdCgpDb21t aXQgMjk2ZDQ4NTY4MDQyICgiaXB2bGFuOiBpbmhlcml0IE1UVSBmcm9tIG1hc3RlciBkZXZpY2Ui KSBhZGp1c3RlZAp0aGUgbXR1IGZyb20gdGhlIG1hc3RlciBkZXZpY2Ugd2hlbiBjcmVhdGluZyBh IGlwdmxhbiBkZXZpY2UsIGJ1dCBpdAp3b3VsZCBhbHNvIG92ZXJyaWRlIHRoZSBtdHUgdmFsdWUg c2V0IGluIHJ0bmxfY3JlYXRlX2xpbmsuIEl0IGNhdXNlcwpJRkxBX01UVSBwYXJhbSBub3QgdG8g dGFrZSBlZmZlY3QuCgpTbyB0aGlzIHBhdGNoIGlzIHRvIG5vdCBhZGp1c3QgdGhlIG10dSBpZiBJ RkxBX01UVSBwYXJhbSBpcyBzZXQgd2hlbgpjcmVhdGluZyBhIGlwdmxhbiBkZXZpY2UuCgpGaXhl czogMjk2ZDQ4NTY4MDQyICgiaXB2bGFuOiBpbmhlcml0IE1UVSBmcm9tIG1hc3RlciBkZXZpY2Ui KQpSZXBvcnRlZC1ieTogSmlhbmxpbiBTaGkgPGppc2hpQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYt Ynk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2lwdmxhbi9p cHZsYW5fbWFpbi5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4u YyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jCmluZGV4IGM3NDg5M2MxZTYyMC4u ZTdmN2ExYTAwMmVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4u YworKysgYi9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYwpAQCAtNTQ2LDcgKzU0Niw4 IEBAIGludCBpcHZsYW5fbGlua19uZXcoc3RydWN0IG5ldCAqc3JjX25ldCwgc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwKIAlpcHZsYW4tPmRldiA9IGRldjsKIAlpcHZsYW4tPnBvcnQgPSBwb3J0Owog CWlwdmxhbi0+c2ZlYXR1cmVzID0gSVBWTEFOX0ZFQVRVUkVTOwotCWlwdmxhbl9hZGp1c3RfbXR1 KGlwdmxhbiwgcGh5X2Rldik7CisJaWYgKCF0YltJRkxBX01UVV0pCisJCWlwdmxhbl9hZGp1c3Rf bXR1KGlwdmxhbiwgcGh5X2Rldik7CiAJSU5JVF9MSVNUX0hFQUQoJmlwdmxhbi0+YWRkcnMpOwog CiAJLyogSWYgdGhlIHBvcnQtaWQgYmFzZSBpcyBhdCB0aGUgTUFYIHZhbHVlLCB0aGVuIHdyYXAg aXQgYXJvdW5kIGFuZAotLSAKMi4xNy4xCgoKRnJvbSA2MGZkMDQwODYxZWEzZTdlY2RlOTdlYWUz YThmODY3MTRkZGExNzViIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKZXNwZXIgRGFu Z2FhcmQgQnJvdWVyIDxicm91ZXJAcmVkaGF0LmNvbT4KRGF0ZTogVHVlLCAyNiBKdW4gMjAxOCAx NzozOTo0OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMzVdIGl4Z2JlOiBzcGxpdCBYRFBfVFgg dGFpbCBhbmQgWERQX1JFRElSRUNUIG1hcCBmbHVzaGluZwoKWyBVcHN0cmVhbSBjb21taXQgYWQw ODhlYzQ4MDc2ODg1MGRiMDE5YTVjYzU0MzY4NWU4NjhhNTEzZCBdCgpUaGUgZHJpdmVyIHdhcyBj b21iaW5pbmcgdGhlIFhEUF9UWCB0YWlsIGZsdXNoIGFuZCBYRFBfUkVESVJFQ1QKbWFwIGZsdXNo aW5nICh4ZHBfZG9fZmx1c2hfbWFwKS4gIFRoaXMgaXMgc3Vib3B0aW1hbCwgdGhlc2UgdHdvCmZs dXNoIG9wZXJhdGlvbnMgc2hvdWxkIGJlIGtlcHQgc2VwYXJhdGUuCgpGaXhlczogMTEzOTNjYzli OWJlICgieGRwOiBBZGQgYmF0Y2hpbmcgc3VwcG9ydCB0byByZWRpcmVjdCBtYXAiKQpTaWduZWQt b2ZmLWJ5OiBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIDxicm91ZXJAcmVkaGF0LmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYyB8IDI0ICsrKysrKysrKysr LS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9t YWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMKaW5k ZXggMjBhODAxOGQ0MWVmLi5iNjhkOTRiNDlhOGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMKQEAgLTIyMTEsOSArMjIxMSwxMCBAQCBzdGF0aWMg c3RydWN0IHNrX2J1ZmYgKml4Z2JlX2J1aWxkX3NrYihzdHJ1Y3QgaXhnYmVfcmluZyAqcnhfcmlu ZywKIAlyZXR1cm4gc2tiOwogfQogCi0jZGVmaW5lIElYR0JFX1hEUF9QQVNTIDAKLSNkZWZpbmUg SVhHQkVfWERQX0NPTlNVTUVEIDEKLSNkZWZpbmUgSVhHQkVfWERQX1RYIDIKKyNkZWZpbmUgSVhH QkVfWERQX1BBU1MJCTAKKyNkZWZpbmUgSVhHQkVfWERQX0NPTlNVTUVECUJJVCgwKQorI2RlZmlu ZSBJWEdCRV9YRFBfVFgJCUJJVCgxKQorI2RlZmluZSBJWEdCRV9YRFBfUkVESVIJCUJJVCgyKQog CiBzdGF0aWMgaW50IGl4Z2JlX3htaXRfeGRwX3Jpbmcoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFk YXB0ZXIsCiAJCQkgICAgICAgc3RydWN0IHhkcF9idWZmICp4ZHApOwpAQCAtMjI0Miw3ICsyMjQz LDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICppeGdiZV9ydW5feGRwKHN0cnVjdCBpeGdiZV9h ZGFwdGVyICphZGFwdGVyLAogCWNhc2UgWERQX1JFRElSRUNUOgogCQllcnIgPSB4ZHBfZG9fcmVk aXJlY3QoYWRhcHRlci0+bmV0ZGV2LCB4ZHAsIHhkcF9wcm9nKTsKIAkJaWYgKCFlcnIpCi0JCQly ZXN1bHQgPSBJWEdCRV9YRFBfVFg7CisJCQlyZXN1bHQgPSBJWEdCRV9YRFBfUkVESVI7CiAJCWVs c2UKIAkJCXJlc3VsdCA9IElYR0JFX1hEUF9DT05TVU1FRDsKIAkJYnJlYWs7CkBAIC0yMzAyLDcg KzIzMDMsNyBAQCBzdGF0aWMgaW50IGl4Z2JlX2NsZWFuX3J4X2lycShzdHJ1Y3QgaXhnYmVfcV92 ZWN0b3IgKnFfdmVjdG9yLAogCXVuc2lnbmVkIGludCBtc3MgPSAwOwogI2VuZGlmIC8qIElYR0JF X0ZDT0UgKi8KIAl1MTYgY2xlYW5lZF9jb3VudCA9IGl4Z2JlX2Rlc2NfdW51c2VkKHJ4X3Jpbmcp OwotCWJvb2wgeGRwX3htaXQgPSBmYWxzZTsKKwl1bnNpZ25lZCBpbnQgeGRwX3htaXQgPSAwOwog CiAJd2hpbGUgKGxpa2VseSh0b3RhbF9yeF9wYWNrZXRzIDwgYnVkZ2V0KSkgewogCQl1bmlvbiBp eGdiZV9hZHZfcnhfZGVzYyAqcnhfZGVzYzsKQEAgLTIzNDIsOCArMjM0MywxMCBAQCBzdGF0aWMg aW50IGl4Z2JlX2NsZWFuX3J4X2lycShzdHJ1Y3QgaXhnYmVfcV92ZWN0b3IgKnFfdmVjdG9yLAog CQl9CiAKIAkJaWYgKElTX0VSUihza2IpKSB7Ci0JCQlpZiAoUFRSX0VSUihza2IpID09IC1JWEdC RV9YRFBfVFgpIHsKLQkJCQl4ZHBfeG1pdCA9IHRydWU7CisJCQl1bnNpZ25lZCBpbnQgeGRwX3Jl cyA9IC1QVFJfRVJSKHNrYik7CisKKwkJCWlmICh4ZHBfcmVzICYgKElYR0JFX1hEUF9UWCB8IElY R0JFX1hEUF9SRURJUikpIHsKKwkJCQl4ZHBfeG1pdCB8PSB4ZHBfcmVzOwogCQkJCWl4Z2JlX3J4 X2J1ZmZlcl9mbGlwKHJ4X3JpbmcsIHJ4X2J1ZmZlciwgc2l6ZSk7CiAJCQl9IGVsc2UgewogCQkJ CXJ4X2J1ZmZlci0+cGFnZWNudF9iaWFzKys7CkBAIC0yNDE1LDcgKzI0MTgsMTAgQEAgc3RhdGlj IGludCBpeGdiZV9jbGVhbl9yeF9pcnEoc3RydWN0IGl4Z2JlX3FfdmVjdG9yICpxX3ZlY3RvciwK IAkJdG90YWxfcnhfcGFja2V0cysrOwogCX0KIAotCWlmICh4ZHBfeG1pdCkgeworCWlmICh4ZHBf eG1pdCAmIElYR0JFX1hEUF9SRURJUikKKwkJeGRwX2RvX2ZsdXNoX21hcCgpOworCisJaWYgKHhk cF94bWl0ICYgSVhHQkVfWERQX1RYKSB7CiAJCXN0cnVjdCBpeGdiZV9yaW5nICpyaW5nID0gYWRh cHRlci0+eGRwX3Jpbmdbc21wX3Byb2Nlc3Nvcl9pZCgpXTsKIAogCQkvKiBGb3JjZSBtZW1vcnkg d3JpdGVzIHRvIGNvbXBsZXRlIGJlZm9yZSBsZXR0aW5nIGgvdwpAQCAtMjQyMyw4ICsyNDI5LDYg QEAgc3RhdGljIGludCBpeGdiZV9jbGVhbl9yeF9pcnEoc3RydWN0IGl4Z2JlX3FfdmVjdG9yICpx X3ZlY3RvciwKIAkJICovCiAJCXdtYigpOwogCQl3cml0ZWwocmluZy0+bmV4dF90b191c2UsIHJp bmctPnRhaWwpOwotCi0JCXhkcF9kb19mbHVzaF9tYXAoKTsKIAl9CiAKIAl1NjRfc3RhdHNfdXBk YXRlX2JlZ2luKCZyeF9yaW5nLT5zeW5jcCk7Ci0tIAoyLjE3LjEKCgpGcm9tIDRhNzQ1ZWRjNzI2 YmZmNzE1NmYwODllYWE2MWU2ZTk4YjhmZWZlNDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAyMiBKdW4g MjAxOCAwNjo0NDoxNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMzVdIG5ldDogZGNjcDogYXZv aWQgY3Jhc2ggaW4gY2NpZDNfaGNfcnhfc2VuZF9mZWVkYmFjaygpCgpbIFVwc3RyZWFtIGNvbW1p dCA3NDE3NGZlNTYzNGZmYmY2NDVhN2NhNWEyNjE1NzFmNzAwYjJmMzMyIF0KCk9uIGZhc3QgaG9z dHMgb3IgbWFsaWNpb3VzIGJvdHMsIHdlIHRyaWdnZXIgYSBEQ0NQX0JVRygpIHdoaWNoCnNlZW1z IGV4Y2Vzc2l2ZS4KCnN5emJvdCByZXBvcnRlZCA6CgpCVUc6IGRlbHRhICgtNjE5NSkgPD0gMCBh dCBuZXQvZGNjcC9jY2lkcy9jY2lkMy5jOjYyOC9jY2lkM19oY19yeF9zZW5kX2ZlZWRiYWNrKCkK Q1BVOiAxIFBJRDogMTggQ29tbToga3NvZnRpcnFkLzEgTm90IHRhaW50ZWQgNC4xOC4wLXJjMSsg IzExMgpIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBD b21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1w X3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6NzcgW2lubGluZV0KIGR1bXBfc3RhY2srMHgxYzkvMHgy YjQgbGliL2R1bXBfc3RhY2suYzoxMTMKIGNjaWQzX2hjX3J4X3NlbmRfZmVlZGJhY2sgbmV0L2Rj Y3AvY2NpZHMvY2NpZDMuYzo2MjggW2lubGluZV0KIGNjaWQzX2hjX3J4X3BhY2tldF9yZWN2LmNv bGQuMTYrMHgzOC8weDcxIG5ldC9kY2NwL2NjaWRzL2NjaWQzLmM6NzkzCiBjY2lkX2hjX3J4X3Bh Y2tldF9yZWN2IG5ldC9kY2NwL2NjaWQuaDoxODUgW2lubGluZV0KIGRjY3BfZGVsaXZlcl9pbnB1 dF90b19jY2lkcysweGYwLzB4MjgwIG5ldC9kY2NwL2lucHV0LmM6MTgwCiBkY2NwX3Jjdl9lc3Rh Ymxpc2hlZCsweDg3LzB4YjAgbmV0L2RjY3AvaW5wdXQuYzozNzgKIGRjY3BfdjRfZG9fcmN2KzB4 MTUzLzB4MTgwIG5ldC9kY2NwL2lwdjQuYzo2NTQKIHNrX2JhY2tsb2dfcmN2IGluY2x1ZGUvbmV0 L3NvY2suaDo5MTQgW2lubGluZV0KIF9fc2tfcmVjZWl2ZV9za2IrMHgzYmEvMHhkODAgbmV0L2Nv cmUvc29jay5jOjUxNwogZGNjcF92NF9yY3YrMHgxMGY5LzB4MWY1OCBuZXQvZGNjcC9pcHY0LmM6 ODc1CiBpcF9sb2NhbF9kZWxpdmVyX2ZpbmlzaCsweDJlYi8weGRhMCBuZXQvaXB2NC9pcF9pbnB1 dC5jOjIxNQogTkZfSE9PSyBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI4NyBbaW5saW5lXQog aXBfbG9jYWxfZGVsaXZlcisweDFlOS8weDc1MCBuZXQvaXB2NC9pcF9pbnB1dC5jOjI1NgogZHN0 X2lucHV0IGluY2x1ZGUvbmV0L2RzdC5oOjQ1MCBbaW5saW5lXQogaXBfcmN2X2ZpbmlzaCsweDgy My8weDIyMjAgbmV0L2lwdjQvaXBfaW5wdXQuYzozOTYKIE5GX0hPT0sgaW5jbHVkZS9saW51eC9u ZXRmaWx0ZXIuaDoyODcgW2lubGluZV0KIGlwX3JjdisweGExOC8weDEyODQgbmV0L2lwdjQvaXBf aW5wdXQuYzo0OTIKIF9fbmV0aWZfcmVjZWl2ZV9za2JfY29yZSsweDI0ODgvMHgzNjgwIG5ldC9j b3JlL2Rldi5jOjQ2MjgKIF9fbmV0aWZfcmVjZWl2ZV9za2IrMHgyYy8weDFlMCBuZXQvY29yZS9k ZXYuYzo0NjkzCiBwcm9jZXNzX2JhY2tsb2crMHgyMTkvMHg3NjAgbmV0L2NvcmUvZGV2LmM6NTM3 MwogbmFwaV9wb2xsIG5ldC9jb3JlL2Rldi5jOjU3NzEgW2lubGluZV0KIG5ldF9yeF9hY3Rpb24r MHg3ZGEvMHgxOTgwIG5ldC9jb3JlL2Rldi5jOjU4MzcKIF9fZG9fc29mdGlycSsweDJlOC8weGIx NyBrZXJuZWwvc29mdGlycS5jOjI4NAogcnVuX2tzb2Z0aXJxZCsweDg2LzB4MTAwIGtlcm5lbC9z b2Z0aXJxLmM6NjQ1CiBzbXBib290X3RocmVhZF9mbisweDQxNy8weDg3MCBrZXJuZWwvc21wYm9v dC5jOjE2NAoga3RocmVhZCsweDM0NS8weDQxMCBrZXJuZWwva3RocmVhZC5jOjI0MAogcmV0X2Zy b21fZm9yaysweDNhLzB4NTAgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzo0MTIKClNpZ25lZC1v ZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IHN5 emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+CkNjOiBHZXJyaXQgUmVua2VyIDxnZXJy aXRAZXJnLmFiZG4uYWMudWs+CkNjOiBkY2NwQHZnZXIua2VybmVsLm9yZwpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2RjY3AvY2Np ZHMvY2NpZDMuYyB8IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2RjY3AvY2NpZHMvY2NpZDMuYyBiL25ldC9k Y2NwL2NjaWRzL2NjaWQzLmMKaW5kZXggMTE5YzA0MzE3ZDQ4Li5iOTEzZWUwNjJhODEgMTAwNjQ0 Ci0tLSBhL25ldC9kY2NwL2NjaWRzL2NjaWQzLmMKKysrIGIvbmV0L2RjY3AvY2NpZHMvY2NpZDMu YwpAQCAtNjI0LDkgKzYyNCw4IEBAIHN0YXRpYyB2b2lkIGNjaWQzX2hjX3J4X3NlbmRfZmVlZGJh Y2soc3RydWN0IHNvY2sgKnNrLAogCWNhc2UgQ0NJRDNfRkJBQ0tfUEVSSU9ESUM6CiAJCWRlbHRh ID0ga3RpbWVfdXNfZGVsdGEobm93LCBoYy0+cnhfdHN0YW1wX2xhc3RfZmVlZGJhY2spOwogCQlp ZiAoZGVsdGEgPD0gMCkKLQkJCURDQ1BfQlVHKCJkZWx0YSAoJWxkKSA8PSAwIiwgKGxvbmcpZGVs dGEpOwotCQllbHNlCi0JCQloYy0+cnhfeF9yZWN2ID0gc2NhbGVkX2RpdjMyKGhjLT5yeF9ieXRl c19yZWN2LCBkZWx0YSk7CisJCQlkZWx0YSA9IDE7CisJCWhjLT5yeF94X3JlY3YgPSBzY2FsZWRf ZGl2MzIoaGMtPnJ4X2J5dGVzX3JlY3YsIGRlbHRhKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJ cmV0dXJuOwotLSAKMi4xNy4xCgoKRnJvbSA3YWY4ZTY0ZTZjNzMxMDIzZjE2ZWRiYTMxYzE2NTYw NjliZjY0MDc2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVk dW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IEZyaSwgMjIgSnVuIDIwMTggMDY6NDQ6MTUgLTA3MDAK U3ViamVjdDogW1BBVENIIDA5LzM1XSBuZXQ6IGRjY3A6IHN3aXRjaCByeF90c3RhbXBfbGFzdF9m ZWVkYmFjayB0byBtb25vdG9uaWMKIGNsb2NrCgpbIFVwc3RyZWFtIGNvbW1pdCAwY2U0ZTcwZmYw MDY2MmFkNzQ5MGU1NDViYTBjZDhjMWZhMTc5ZmNhIF0KClRvIGNvbXB1dGUgZGVsYXlzLCBiZXR0 ZXIgbm90IHVzZSB0aW1lIG9mIHRoZSBkYXkgd2hpY2ggY2FuCmJlIGNoYW5nZWQgYnkgYWRtaW5z IG9yIG1hbGljaW91cyBwcm9ncmFtcy4KCkFsc28gY2hhbmdlIGNjaWQzX2ZpcnN0X2xpKCkgdG8g dXNlIHM2NCB0eXBlIGZvciBkZWx0YSB2YXJpYWJsZQp0byBhdm9pZCBwb3RlbnRpYWwgb3ZlcmZs b3dzLgoKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpD YzogR2Vycml0IFJlbmtlciA8Z2Vycml0QGVyZy5hYmRuLmFjLnVrPgpDYzogZGNjcEB2Z2VyLmtl cm5lbC5vcmcKU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9kY2NwL2NjaWRzL2NjaWQzLmMgfCAxMSArKysrKysrLS0tLQogMSBmaWxl IGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9u ZXQvZGNjcC9jY2lkcy9jY2lkMy5jIGIvbmV0L2RjY3AvY2NpZHMvY2NpZDMuYwppbmRleCBiOTEz ZWUwNjJhODEuLjAzZmNmM2VlMTUzNCAxMDA2NDQKLS0tIGEvbmV0L2RjY3AvY2NpZHMvY2NpZDMu YworKysgYi9uZXQvZGNjcC9jY2lkcy9jY2lkMy5jCkBAIC01OTksNyArNTk5LDcgQEAgc3RhdGlj IHZvaWQgY2NpZDNfaGNfcnhfc2VuZF9mZWVkYmFjayhzdHJ1Y3Qgc29jayAqc2ssCiB7CiAJc3Ry dWN0IGNjaWQzX2hjX3J4X3NvY2sgKmhjID0gY2NpZDNfaGNfcnhfc2soc2spOwogCXN0cnVjdCBk Y2NwX3NvY2sgKmRwID0gZGNjcF9zayhzayk7Ci0Ja3RpbWVfdCBub3cgPSBrdGltZV9nZXRfcmVh bCgpOworCWt0aW1lX3Qgbm93ID0ga3RpbWVfZ2V0KCk7CiAJczY0IGRlbHRhID0gMDsKIAogCXN3 aXRjaCAoZmJ0eXBlKSB7CkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIHZvaWQgY2NpZDNfaGNf cnhfc2VuZF9mZWVkYmFjayhzdHJ1Y3Qgc29jayAqc2ssCiAJCXJldHVybjsKIAl9CiAKLQljY2lk M19wcl9kZWJ1ZygiSW50ZXJ2YWwgJWxkdXNlYywgWF9yZWN2PSV1LCAxL3A9JXVcbiIsIChsb25n KWRlbHRhLAorCWNjaWQzX3ByX2RlYnVnKCJJbnRlcnZhbCAlbGxkdXNlYywgWF9yZWN2PSV1LCAx L3A9JXVcbiIsIGRlbHRhLAogCQkgICAgICAgaGMtPnJ4X3hfcmVjdiwgaGMtPnJ4X3BpbnYpOwog CiAJaGMtPnJ4X3RzdGFtcF9sYXN0X2ZlZWRiYWNrID0gbm93OwpAQCAtNjc4LDcgKzY3OCw4IEBA IHN0YXRpYyBpbnQgY2NpZDNfaGNfcnhfaW5zZXJ0X29wdGlvbnMoc3RydWN0IHNvY2sgKnNrLCBz dHJ1Y3Qgc2tfYnVmZiAqc2tiKQogc3RhdGljIHUzMiBjY2lkM19maXJzdF9saShzdHJ1Y3Qgc29j ayAqc2spCiB7CiAJc3RydWN0IGNjaWQzX2hjX3J4X3NvY2sgKmhjID0gY2NpZDNfaGNfcnhfc2so c2spOwotCXUzMiB4X3JlY3YsIHAsIGRlbHRhOworCXUzMiB4X3JlY3YsIHA7CisJczY0IGRlbHRh OwogCXU2NCBmdmFsOwogCiAJaWYgKGhjLT5yeF9ydHQgPT0gMCkgewpAQCAtNjg2LDcgKzY4Nyw5 IEBAIHN0YXRpYyB1MzIgY2NpZDNfZmlyc3RfbGkoc3RydWN0IHNvY2sgKnNrKQogCQloYy0+cnhf cnR0ID0gRENDUF9GQUxMQkFDS19SVFQ7CiAJfQogCi0JZGVsdGEgID0ga3RpbWVfdG9fdXMobmV0 X3RpbWVkZWx0YShoYy0+cnhfdHN0YW1wX2xhc3RfZmVlZGJhY2spKTsKKwlkZWx0YSA9IGt0aW1l X3VzX2RlbHRhKGt0aW1lX2dldCgpLCBoYy0+cnhfdHN0YW1wX2xhc3RfZmVlZGJhY2spOworCWlm IChkZWx0YSA8PSAwKQorCQlkZWx0YSA9IDE7CiAJeF9yZWN2ID0gc2NhbGVkX2RpdjMyKGhjLT5y eF9ieXRlc19yZWN2LCBkZWx0YSk7CiAJaWYgKHhfcmVjdiA9PSAwKSB7CQkvKiB3b3VsZCBhbHNv IHRyaWdnZXIgZGl2aWRlLWJ5LXplcm8gKi8KIAkJRENDUF9XQVJOKCJYX3JlY3Y9PTBcbiIpOwot LSAKMi4xNy4xCgoKRnJvbSBiNzM0YTdjNTk5N2QwNmQwMDhjYjQ3ZjRmZmUxYmNkODA4ZjYwNzIw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFz eXNuYWlsLm5ldD4KRGF0ZTogU2F0LCAzMCBKdW4gMjAxOCAxNzozODo1NSArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMTAvMzVdIG5ldDogZml4IHVzZS1hZnRlci1mcmVlIGluIEdSTyB3aXRoIEVTUAoK WyBVcHN0cmVhbSBjb21taXQgNjAzZDRjZjhmZTA5NWIxZWU3OGY0MjNkNTE0NDI3YmU1MDdmYjUx MyBdCgpTaW5jZSB0aGUgYWRkaXRpb24gb2YgR1JPIGZvciBFU1AsIGdyb19yZWNlaXZlIGNhbiBj b25zdW1lIHRoZSBza2IgYW5kCnJldHVybiAtRUlOUFJPR1JFU1MuIEluIHRoYXQgY2FzZSwgdGhl IGxvd2VyIGxheWVyIEdSTyBoYW5kbGVyIGNhbm5vdAp0b3VjaCB0aGUgc2tiIGFueW1vcmUuCgpD b21taXQgNWYxMTQxNjNmMmY1ICgibmV0OiBBZGQgYSBza2JfZ3JvX2ZsdXNoX2ZpbmFsIGhlbHBl ci4iKSBjb252ZXJ0ZWQKc29tZSBvZiB0aGUgZ3JvX3JlY2VpdmUgaGFuZGxlcnMgdGhhdCBjYW4g bGVhZCB0byBFU1AncyBncm9fcmVjZWl2ZSBzbwp0aGF0IHRoZXkgd291bGRuJ3QgYWNjZXNzIHRo ZSBza2Igd2hlbiAtRUlOUFJPR1JFU1MgaXMgcmV0dXJuZWQsIGJ1dAptaXNzZWQgb3RoZXIgc3Bv dHMsIG1haW5seSBpbiB0dW5uZWxpbmcgcHJvdG9jb2xzLgoKVGhpcyBwYXRjaCBmaW5pc2hlcyB0 aGUgY29udmVyc2lvbiB0byB1c2luZyBza2JfZ3JvX2ZsdXNoX2ZpbmFsKCksIGFuZAphZGRzIGEg bmV3IGhlbHBlciwgc2tiX2dyb19mbHVzaF9maW5hbF9yZW1jc3VtKCksIHVzZWQgaW4gVlhMQU4g YW5kCkdVRS4KCkZpeGVzOiA1ZjExNDE2M2YyZjUgKCJuZXQ6IEFkZCBhIHNrYl9ncm9fZmx1c2hf ZmluYWwgaGVscGVyLiIpClNpZ25lZC1vZmYtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5 c25haWwubmV0PgpSZXZpZXdlZC1ieTogU3RlZmFubyBCcml2aW8gPHNicml2aW9AcmVkaGF0LmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGRyaXZlcnMvbmV0L2dlbmV2ZS5jICAgICAgfCAgMiArLQogZHJpdmVycy9uZXQvdnhsYW4u YyAgICAgICB8ICA0ICstLS0KIGluY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmggfCAyMCArKysrKysr KysrKysrKysrKysrKwogbmV0LzgwMjFxL3ZsYW4uYyAgICAgICAgICB8ICAyICstCiBuZXQvaXB2 NC9mb3UuYyAgICAgICAgICAgIHwgIDQgKy0tLQogbmV0L2lwdjQvZ3JlX29mZmxvYWQuYyAgICB8 ICAyICstCiBuZXQvaXB2NC91ZHBfb2ZmbG9hZC5jICAgIHwgIDIgKy0KIDcgZmlsZXMgY2hhbmdl ZCwgMjYgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZ2VuZXZlLmMgYi9kcml2ZXJzL25ldC9nZW5ldmUuYwppbmRleCBmYmM4MjVhYzk3YWIu LmNiNTE0NDgzODlhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZ2VuZXZlLmMKKysrIGIvZHJp dmVycy9uZXQvZ2VuZXZlLmMKQEAgLTQ3NCw3ICs0NzQsNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1 ZmYgKipnZW5ldmVfZ3JvX3JlY2VpdmUoc3RydWN0IHNvY2sgKnNrLAogb3V0X3VubG9jazoKIAly Y3VfcmVhZF91bmxvY2soKTsKIG91dDoKLQlOQVBJX0dST19DQihza2IpLT5mbHVzaCB8PSBmbHVz aDsKKwlza2JfZ3JvX2ZsdXNoX2ZpbmFsKHNrYiwgcHAsIGZsdXNoKTsKIAogCXJldHVybiBwcDsK IH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Z4bGFuLmMgYi9kcml2ZXJzL25ldC92eGxhbi5j CmluZGV4IDNkOWM1YjM1YTRhNy4uYmJkYjQ2OTE2ZGMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC92eGxhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKQEAgLTYyMyw5ICs2MjMsNyBAQCBz dGF0aWMgc3RydWN0IHNrX2J1ZmYgKip2eGxhbl9ncm9fcmVjZWl2ZShzdHJ1Y3Qgc29jayAqc2ss CiAJZmx1c2ggPSAwOwogCiBvdXQ6Ci0Jc2tiX2dyb19yZW1jc3VtX2NsZWFudXAoc2tiLCAmZ3Jj KTsKLQlza2ItPnJlbWNzdW1fb2ZmbG9hZCA9IDA7Ci0JTkFQSV9HUk9fQ0Ioc2tiKS0+Zmx1c2gg fD0gZmx1c2g7CisJc2tiX2dyb19mbHVzaF9maW5hbF9yZW1jc3VtKHNrYiwgcHAsIGZsdXNoLCAm Z3JjKTsKIAogCXJldHVybiBwcDsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbmV0ZGV2 aWNlLmggYi9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oCmluZGV4IDQ2YmY3Y2M3ZDVkNS4uMmVh N2VlMWZiNDk1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oCisrKyBiL2lu Y2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKQEAgLTI2NjgsMTEgKzI2NjgsMzEgQEAgc3RhdGljIGlu bGluZSB2b2lkIHNrYl9ncm9fZmx1c2hfZmluYWwoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0 IHNrX2J1ZmYgKipwcCwKIAlpZiAoUFRSX0VSUihwcCkgIT0gLUVJTlBST0dSRVNTKQogCQlOQVBJ X0dST19DQihza2IpLT5mbHVzaCB8PSBmbHVzaDsKIH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBza2Jf Z3JvX2ZsdXNoX2ZpbmFsX3JlbWNzdW0oc3RydWN0IHNrX2J1ZmYgKnNrYiwKKwkJCQkJICAgICAg IHN0cnVjdCBza19idWZmICoqcHAsCisJCQkJCSAgICAgICBpbnQgZmx1c2gsCisJCQkJCSAgICAg ICBzdHJ1Y3QgZ3JvX3JlbWNzdW0gKmdyYykKK3sKKwlpZiAoUFRSX0VSUihwcCkgIT0gLUVJTlBS T0dSRVNTKSB7CisJCU5BUElfR1JPX0NCKHNrYiktPmZsdXNoIHw9IGZsdXNoOworCQlza2JfZ3Jv X3JlbWNzdW1fY2xlYW51cChza2IsIGdyYyk7CisJCXNrYi0+cmVtY3N1bV9vZmZsb2FkID0gMDsK Kwl9Cit9CiAjZWxzZQogc3RhdGljIGlubGluZSB2b2lkIHNrYl9ncm9fZmx1c2hfZmluYWwoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHNrX2J1ZmYgKipwcCwgaW50IGZsdXNoKQogewogCU5B UElfR1JPX0NCKHNrYiktPmZsdXNoIHw9IGZsdXNoOwogfQorc3RhdGljIGlubGluZSB2b2lkIHNr Yl9ncm9fZmx1c2hfZmluYWxfcmVtY3N1bShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJCQkgICAg ICAgc3RydWN0IHNrX2J1ZmYgKipwcCwKKwkJCQkJICAgICAgIGludCBmbHVzaCwKKwkJCQkJICAg ICAgIHN0cnVjdCBncm9fcmVtY3N1bSAqZ3JjKQoreworCU5BUElfR1JPX0NCKHNrYiktPmZsdXNo IHw9IGZsdXNoOworCXNrYl9ncm9fcmVtY3N1bV9jbGVhbnVwKHNrYiwgZ3JjKTsKKwlza2ItPnJl bWNzdW1fb2ZmbG9hZCA9IDA7Cit9CiAjZW5kaWYKIAogc3RhdGljIGlubGluZSBpbnQgZGV2X2hh cmRfaGVhZGVyKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCmRp ZmYgLS1naXQgYS9uZXQvODAyMXEvdmxhbi5jIGIvbmV0LzgwMjFxL3ZsYW4uYwppbmRleCBjZjJl NzAwMDNhNTMuLmNmODJkOTcwYjBlNCAxMDA2NDQKLS0tIGEvbmV0LzgwMjFxL3ZsYW4uYworKysg Yi9uZXQvODAyMXEvdmxhbi5jCkBAIC02NjQsNyArNjY0LDcgQEAgc3RhdGljIHN0cnVjdCBza19i dWZmICoqdmxhbl9ncm9fcmVjZWl2ZShzdHJ1Y3Qgc2tfYnVmZiAqKmhlYWQsCiBvdXRfdW5sb2Nr OgogCXJjdV9yZWFkX3VubG9jaygpOwogb3V0OgotCU5BUElfR1JPX0NCKHNrYiktPmZsdXNoIHw9 IGZsdXNoOworCXNrYl9ncm9fZmx1c2hfZmluYWwoc2tiLCBwcCwgZmx1c2gpOwogCiAJcmV0dXJu IHBwOwogfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZm91LmMgYi9uZXQvaXB2NC9mb3UuYwppbmRl eCAxNTQwZGI2NTI0MWEuLmM5ZWMxNjAzNjY2YiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZm91LmMK KysrIGIvbmV0L2lwdjQvZm91LmMKQEAgLTQ0OCw5ICs0NDgsNyBAQCBzdGF0aWMgc3RydWN0IHNr X2J1ZmYgKipndWVfZ3JvX3JlY2VpdmUoc3RydWN0IHNvY2sgKnNrLAogb3V0X3VubG9jazoKIAly Y3VfcmVhZF91bmxvY2soKTsKIG91dDoKLQlOQVBJX0dST19DQihza2IpLT5mbHVzaCB8PSBmbHVz aDsKLQlza2JfZ3JvX3JlbWNzdW1fY2xlYW51cChza2IsICZncmMpOwotCXNrYi0+cmVtY3N1bV9v ZmZsb2FkID0gMDsKKwlza2JfZ3JvX2ZsdXNoX2ZpbmFsX3JlbWNzdW0oc2tiLCBwcCwgZmx1c2gs ICZncmMpOwogCiAJcmV0dXJuIHBwOwogfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZ3JlX29mZmxv YWQuYyBiL25ldC9pcHY0L2dyZV9vZmZsb2FkLmMKaW5kZXggMTg1OWM0NzNiMjFhLi42YTdkOTgw MTA1ZjYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2dyZV9vZmZsb2FkLmMKKysrIGIvbmV0L2lwdjQv Z3JlX29mZmxvYWQuYwpAQCAtMjIzLDcgKzIyMyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAq KmdyZV9ncm9fcmVjZWl2ZShzdHJ1Y3Qgc2tfYnVmZiAqKmhlYWQsCiBvdXRfdW5sb2NrOgogCXJj dV9yZWFkX3VubG9jaygpOwogb3V0OgotCU5BUElfR1JPX0NCKHNrYiktPmZsdXNoIHw9IGZsdXNo OworCXNrYl9ncm9fZmx1c2hfZmluYWwoc2tiLCBwcCwgZmx1c2gpOwogCiAJcmV0dXJuIHBwOwog fQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwX29mZmxvYWQuYyBiL25ldC9pcHY0L3VkcF9vZmZs b2FkLmMKaW5kZXggZWE2ZTZlN2RmMGVlLi5jZGUyNzE5ZmNiODkgMTAwNjQ0Ci0tLSBhL25ldC9p cHY0L3VkcF9vZmZsb2FkLmMKKysrIGIvbmV0L2lwdjQvdWRwX29mZmxvYWQuYwpAQCAtMjk1LDcg KzI5NSw3IEBAIHN0cnVjdCBza19idWZmICoqdWRwX2dyb19yZWNlaXZlKHN0cnVjdCBza19idWZm ICoqaGVhZCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIG91dF91bmxvY2s6CiAJcmN1X3JlYWRfdW5s b2NrKCk7CiBvdXQ6Ci0JTkFQSV9HUk9fQ0Ioc2tiKS0+Zmx1c2ggfD0gZmx1c2g7CisJc2tiX2dy b19mbHVzaF9maW5hbChza2IsIHBwLCBmbHVzaCk7CiAJcmV0dXJuIHBwOwogfQogRVhQT1JUX1NZ TUJPTCh1ZHBfZ3JvX3JlY2VpdmUpOwotLSAKMi4xNy4xCgoKRnJvbSBlNDBhMGU4YzUxMDdjNzJl MTMxZmNlMWYwNjY5YzUxNjI5OTM2ZTRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBI YXJpbmkgS2F0YWthbSA8aGFyaW5pLmthdGFrYW1AeGlsaW54LmNvbT4KRGF0ZTogV2VkLCAyMCBK dW4gMjAxOCAxNzowNDoyMCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggMTEvMzVdIG5ldDogbWFjYjog Rml4IHB0cCB0aW1lIGFkanVzdG1lbnQgZm9yIGxhcmdlIG5lZ2F0aXZlCiBkZWx0YQoKWyBVcHN0 cmVhbSBjb21taXQgNjRkNzgzOWFmOGM4ZjY3ZGFhZjliZjM4NzEzNTA1MmM1NWQ4NWY5MCBdCgpX aGVuIGRlbHRhIHBhc3NlZCB0byBnZW1fcHRwX2FkanRpbWUgaXMgbmVnYXRpdmUsIHRoZSBzaWdu IGlzCm1haW50YWluZWQgaW4gdGhlIG5zX3RvX3RpbWVzcGVjNjQgY29udmVyc2lvbi4gSGVuY2Ug dGltZXNwZWNfYWRkCnNob3VsZCBiZSB1c2VkIGRpcmVjdGx5LiB0aW1lc3BlY19zdWIgd2lsbCBq dXN0IHN1YnRyYWN0IHRoZSBuZWdhdGl2ZQp2YWx1ZSB0aHVzIGluY3JlYXNpbmcgdGhlIHRpbWUg ZGlmZmVyZW5jZS4KClNpZ25lZC1vZmYtYnk6IEhhcmluaSBLYXRha2FtIDxoYXJpbmkua2F0YWth bUB4aWxpbnguY29tPgpBY2tlZC1ieTogTmljb2xhcyBGZXJyZSA8bmljb2xhcy5mZXJyZUBtaWNy b2NoaXAuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jIHwgNSAr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA0IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYwppbmRleCAyMjIwYzc3MTA5MmIuLjY3 ODgzNTEzNmJmOCAxMDA3NTUKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNi X3B0cC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYwpAQCAt MTcwLDEwICsxNzAsNyBAQCBzdGF0aWMgaW50IGdlbV9wdHBfYWRqdGltZShzdHJ1Y3QgcHRwX2Ns b2NrX2luZm8gKnB0cCwgczY0IGRlbHRhKQogCiAJaWYgKGRlbHRhID4gVFNVX05TRUNfTUFYX1ZB TCkgewogCQlnZW1fdHN1X2dldF90aW1lKCZicC0+cHRwX2Nsb2NrX2luZm8sICZub3cpOwotCQlp ZiAoc2lnbikKLQkJCW5vdyA9IHRpbWVzcGVjNjRfc3ViKG5vdywgdGhlbik7Ci0JCWVsc2UKLQkJ CW5vdyA9IHRpbWVzcGVjNjRfYWRkKG5vdywgdGhlbik7CisJCW5vdyA9IHRpbWVzcGVjNjRfYWRk KG5vdywgdGhlbik7CiAKIAkJZ2VtX3RzdV9zZXRfdGltZSgmYnAtPnB0cF9jbG9ja19pbmZvLAog CQkJCSAoY29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKikmbm93KTsKLS0gCjIuMTcuMQoKCkZyb20g ZTQ2NzI0ZGI2NjYwY2Y3ODgzMjJiOTJlNGZlN2Y4MWI1N2ZhYTVkOCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogT3IgR2VybGl0eiA8b2dlcmxpdHpAbWVsbGFub3guY29tPgpEYXRlOiBU aHUsIDMxIE1heSAyMDE4IDExOjMyOjU2ICswMzAwClN1YmplY3Q6IFtQQVRDSCAxMi8zNV0gbmV0 L21seDVlOiBBdm9pZCBkZWFsaW5nIHdpdGggdnBvcnQgcmVwcmVzZW50b3JzIGlmIG5vdAogYmVp bmcgZS1zd2l0Y2ggbWFuYWdlcgoKWyBVcHN0cmVhbSBjb21taXQgNzMzZDNlNTQ5NzA3MGQwNTk3 MTM1MmNhNTA4N2JhYzgzYzE5N2MzZCBdCgpJbiBzbWFydG5pYyBlbnYsIHRoZSBob3N0IChQRikg ZHJpdmVyIG1pZ2h0IG5vdCBiZSBhbiBlLXN3aXRjaAptYW5hZ2VyLCBoZW5jZSB0aGUgc3dpdGNo ZGV2IG1vZGUgcmVwcmVzZW50b3JzIGFyZSBydW5uaW5nIG9uCnRoZSBlbWJlZGRlZCBjcHUgKEVD KSBhbmQgbm90IGF0IHRoZSBob3N0LgoKQXMgc3VjaCwgd2Ugc2hvdWxkIGF2b2lkIGRlYWxpbmcg d2l0aCB2cG9ydCByZXByZXNlbnRvcnMgaWYKbm90IGJlaW5nIGVzdyBtYW5hZ2VyLgoKV2hpbGUg aGVyZSwgbWFrZSBzdXJlIHRvIGRpc2FsbG93IGVzd2l0Y2ggc3dpdGNoZGV2IHJlbGF0ZWQKc2V0 dXBzIHRocm91Z2ggZGV2bGluayBpZiB3ZSBhcmUgbm90IGVzdyBtYW5hZ2Vycy4KCkZpeGVzOiBj YjY3YjgzMjkyMWMgKCduZXQvbWx4NWU6IEludHJvZHVjZSBTUklPViBWRiByZXByZXNlbnRvcnMn KQpTaWduZWQtb2ZmLWJ5OiBPciBHZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+ClJldmll d2VkLWJ5OiBFbGkgQ29oZW4gPGVsaUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVk IE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgICAgfCAxMiArKysrKystLS0tLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yZXAuYyAgICAgfCAgMiArLQog Li4uL2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMgICB8ICA0 ICsrLS0KIDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9t YWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5j CmluZGV4IDMzN2NlOTQyMzc5NC4uYmYzNDI2NGM3MzRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMKQEAgLTI2MjYsNyArMjYyNiw3 IEBAIHZvaWQgbWx4NWVfYWN0aXZhdGVfcHJpdl9jaGFubmVscyhzdHJ1Y3QgbWx4NWVfcHJpdiAq cHJpdikKIAltbHg1ZV9hY3RpdmF0ZV9jaGFubmVscygmcHJpdi0+Y2hhbm5lbHMpOwogCW5ldGlm X3R4X3N0YXJ0X2FsbF9xdWV1ZXMocHJpdi0+bmV0ZGV2KTsKIAotCWlmIChNTFg1X1ZQT1JUX01B TkFHRVIocHJpdi0+bWRldikpCisJaWYgKE1MWDVfRVNXSVRDSF9NQU5BR0VSKHByaXYtPm1kZXYp KQogCQltbHg1ZV9hZGRfc3FzX2Z3ZF9ydWxlcyhwcml2KTsKIAogCW1seDVlX3dhaXRfY2hhbm5l bHNfbWluX3J4X3dxZXMoJnByaXYtPmNoYW5uZWxzKTsKQEAgLTI2MzcsNyArMjYzNyw3IEBAIHZv aWQgbWx4NWVfZGVhY3RpdmF0ZV9wcml2X2NoYW5uZWxzKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2 KQogewogCW1seDVlX3JlZGlyZWN0X3JxdHNfdG9fZHJvcChwcml2KTsKIAotCWlmIChNTFg1X1ZQ T1JUX01BTkFHRVIocHJpdi0+bWRldikpCisJaWYgKE1MWDVfRVNXSVRDSF9NQU5BR0VSKHByaXYt Pm1kZXYpKQogCQltbHg1ZV9yZW1vdmVfc3FzX2Z3ZF9ydWxlcyhwcml2KTsKIAogCS8qIEZJWE1F OiBUaGlzIGlzIGEgVy9BIG9ubHkgZm9yIHR4IHRpbWVvdXQgd2F0Y2ggZG9nIGZhbHNlIGFsYXJt IHdoZW4KQEAgLTQxMjcsNyArNDEyNyw3IEBAIHN0YXRpYyB2b2lkIG1seDVlX2J1aWxkX25pY19u ZXRkZXYoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAltbHg1ZV9zZXRfbmV0ZGV2X2Rldl9h ZGRyKG5ldGRldik7CiAKICNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X0VTV0lUQ0gpCi0JaWYg KE1MWDVfVlBPUlRfTUFOQUdFUihtZGV2KSkKKwlpZiAoTUxYNV9FU1dJVENIX01BTkFHRVIobWRl dikpCiAJCW5ldGRldi0+c3dpdGNoZGV2X29wcyA9ICZtbHg1ZV9zd2l0Y2hkZXZfb3BzOwogI2Vu ZGlmCiAKQEAgLTQyNzMsNyArNDI3Myw3IEBAIHN0YXRpYyB2b2lkIG1seDVlX25pY19lbmFibGUo c3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiAKIAltbHg1ZV9lbmFibGVfYXN5bmNfZXZlbnRzKHBy aXYpOwogCi0JaWYgKE1MWDVfVlBPUlRfTUFOQUdFUihwcml2LT5tZGV2KSkKKwlpZiAoTUxYNV9F U1dJVENIX01BTkFHRVIocHJpdi0+bWRldikpCiAJCW1seDVlX3JlZ2lzdGVyX3Zwb3J0X3JlcHMo cHJpdik7CiAKIAlpZiAobmV0ZGV2LT5yZWdfc3RhdGUgIT0gTkVUUkVHX1JFR0lTVEVSRUQpCkBA IC00MzAwLDcgKzQzMDAsNyBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9uaWNfZGlzYWJsZShzdHJ1Y3Qg bWx4NWVfcHJpdiAqcHJpdikKIAogCXF1ZXVlX3dvcmsocHJpdi0+d3EsICZwcml2LT5zZXRfcnhf bW9kZV93b3JrKTsKIAotCWlmIChNTFg1X1ZQT1JUX01BTkFHRVIocHJpdi0+bWRldikpCisJaWYg KE1MWDVfRVNXSVRDSF9NQU5BR0VSKHByaXYtPm1kZXYpKQogCQltbHg1ZV91bnJlZ2lzdGVyX3Zw b3J0X3JlcHMocHJpdik7CiAKIAltbHg1ZV9kaXNhYmxlX2FzeW5jX2V2ZW50cyhwcml2KTsKQEAg LTQ0ODMsNyArNDQ4Myw3IEBAIHN0YXRpYyB2b2lkICptbHg1ZV9hZGQoc3RydWN0IG1seDVfY29y ZV9kZXYgKm1kZXYpCiAJCXJldHVybiBOVUxMOwogCiAjaWZkZWYgQ09ORklHX01MWDVfRVNXSVRD SAotCWlmIChNTFg1X1ZQT1JUX01BTkFHRVIobWRldikpIHsKKwlpZiAoTUxYNV9FU1dJVENIX01B TkFHRVIobWRldikpIHsKIAkJcnByaXYgPSBtbHg1ZV9hbGxvY19uaWNfcmVwX3ByaXYobWRldik7 CiAJCWlmICghcnByaXYpIHsKIAkJCW1seDVfY29yZV93YXJuKG1kZXYsICJGYWlsZWQgdG8gYWxs b2MgTklDIHJlcCBwcml2IGRhdGFcbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jCmluZGV4IDQ3MjdlNzM5MDgzNC4uM2Y2YTdjYTFjZWU4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5f cmVwLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3Jl cC5jCkBAIC03MTAsNyArNzEwLDcgQEAgYm9vbCBtbHg1ZV9pc191cGxpbmtfcmVwKHN0cnVjdCBt bHg1ZV9wcml2ICpwcml2KQogCXN0cnVjdCBtbHg1ZV9yZXBfcHJpdiAqcnByaXYgPSBwcml2LT5w cHJpdjsKIAlzdHJ1Y3QgbWx4NV9lc3dpdGNoX3JlcCAqcmVwOwogCi0JaWYgKCFNTFg1X0NBUF9H RU4ocHJpdi0+bWRldiwgdnBvcnRfZ3JvdXBfbWFuYWdlcikpCisJaWYgKCFNTFg1X0VTV0lUQ0hf TUFOQUdFUihwcml2LT5tZGV2KSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJcmVwID0gcnByaXYtPnJl cDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l c3dpdGNoX29mZmxvYWRzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZXN3aXRjaF9vZmZsb2Fkcy5jCmluZGV4IGQ5ZmQ4NTcwYjA3Yy4uYzY5OTA1NWMwZmZkIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRj aF9vZmZsb2Fkcy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lc3dpdGNoX29mZmxvYWRzLmMKQEAgLTkxMiw4ICs5MTIsOCBAQCBzdGF0aWMgaW50IG1seDVf ZGV2bGlua19lc3dpdGNoX2NoZWNrKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rKQogCWlmIChNTFg1 X0NBUF9HRU4oZGV2LCBwb3J0X3R5cGUpICE9IE1MWDVfQ0FQX1BPUlRfVFlQRV9FVEgpCiAJCXJl dHVybiAtRU9QTk9UU1VQUDsKIAotCWlmICghTUxYNV9DQVBfR0VOKGRldiwgdnBvcnRfZ3JvdXBf bWFuYWdlcikpCi0JCXJldHVybiAtRU9QTk9UU1VQUDsKKwlpZighTUxYNV9FU1dJVENIX01BTkFH RVIoZGV2KSkKKwkJcmV0dXJuIC1FUEVSTTsKIAogCWlmIChkZXYtPnByaXYuZXN3aXRjaC0+bW9k ZSA9PSBTUklPVl9OT05FKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci0tIAoyLjE3LjEKCgpGcm9t IDkzNTlmY2ViZTRhZTVhZjc0NmI5YWI1ZDM4NWFjNzZjMGY0MmMxYjYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1lbGxhbm94LmNvbT4KRGF0ZTog TW9uLCA0IEp1biAyMDE4IDE5OjQ2OjUzICswMzAwClN1YmplY3Q6IFtQQVRDSCAxMy8zNV0gbmV0 L21seDVlOiBEb24ndCBhdHRlbXB0IHRvIGRlcmVmZXJlbmNlIHRoZSBwcHJpdgogc3RydWN0IGlm IG5vdCBiZWluZyBlc3dpdGNoIG1hbmFnZXIKClsgVXBzdHJlYW0gY29tbWl0IDhmZmQ1NjlhYWE4 MThmMjYyNGNhODIxZDlhMjQ2MzQyZmE4YjhjNTAgXQoKVGhlIGNoZWNrIGZvciBjcHUgaGl0IHN0 YXRpc3RpY3Mgd2FzIG5vdCByZXR1cm5pbmcgaW1tZWRpYXRlIGZhbHNlIGZvcgphbnkgbm9uIHZw b3J0IHJlcCBuZXRkZXYgYW5kIGhlbmNlIHdlIGNyYXNoZWQgKHNheSBvbiBtbHg1IHByb2JlZCBW RnMpIGlmCnVzZXItc3BhY2UgdG9vbCB3YXMgY2FsbGluZyBpbnRvIGFueSBwb3NzaWJsZSBuZXRk ZXYgaW4gdGhlIHN5c3RlbS4KCkZpeCB0aGF0IGJ5IGRvaW5nIGEgcHJvcGVyIGNoZWNrIGJlZm9y ZSBkZXJlZmVyZW5jaW5nLgoKRml4ZXM6IDFkNDQ3YTM5MTQyZSAoJ25ldC9tbHg1ZTogRXh0ZW5k YWJsZSB2cG9ydCByZXByZXNlbnRvciBuZXRkZXYgcHJpdmF0ZSBkYXRhJykKU2lnbmVkLW9mZi1i eTogT3IgR2VybGl0eiA8b2dlcmxpdHpAbWVsbGFub3guY29tPgpSZXBvcnRlZC1ieTogRWxpIENv aGVuIDxlbGlAbWVsbG9hbm94LmNvbT4KUmV2aWV3ZWQtYnk6IEVsaSBDb2hlbiA8ZWxpQG1lbGxv YW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3gu Y29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yZXAu YyB8IDYgKysrKystCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuX3JlcC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3Jl cC5jCmluZGV4IDNmNmE3Y2ExY2VlOC4uMGU3MGNkNmQ4YmM4IDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcmVwLmMKKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jCkBAIC03MjQsOCArNzI0LDEy IEBAIGJvb2wgbWx4NWVfaXNfdXBsaW5rX3JlcChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikKIHN0 YXRpYyBib29sIG1seDVlX2lzX3ZmX3Zwb3J0X3JlcChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikK IHsKIAlzdHJ1Y3QgbWx4NWVfcmVwX3ByaXYgKnJwcml2ID0gcHJpdi0+cHByaXY7Ci0Jc3RydWN0 IG1seDVfZXN3aXRjaF9yZXAgKnJlcCA9IHJwcml2LT5yZXA7CisJc3RydWN0IG1seDVfZXN3aXRj aF9yZXAgKnJlcDsKIAorCWlmICghTUxYNV9DQVBfR0VOKHByaXYtPm1kZXYsIGVzd2l0Y2hfZmxv d190YWJsZSkpCisJCXJldHVybiBmYWxzZTsKKworCXJlcCA9IHJwcml2LT5yZXA7CiAJaWYgKHJl cCAmJiByZXAtPnZwb3J0ICE9IEZEQl9VUExJTktfVlBPUlQpCiAJCXJldHVybiB0cnVlOwogCi0t IAoyLjE3LjEKCgpGcm9tIGM5M2UwODNhYzlhYmQwMTliZmM3M2QwYjRlMzUwYTI1OTM2MWM5ZmYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1lbGxh bm94LmNvbT4KRGF0ZTogVGh1LCAzMSBNYXkgMjAxOCAxMToxNjoxOCArMDMwMApTdWJqZWN0OiBb UEFUQ0ggMTQvMzVdIG5ldC9tbHg1OiBFLVN3aXRjaCwgQXZvaWQgc2V0dXAgYXR0ZW1wdCBpZiBu b3QgYmVpbmcKIGUtc3dpdGNoIG1hbmFnZXIKClsgVXBzdHJlYW0gY29tbWl0IDBlZmM4NTYyNDkx YjdkMzZmNmJiYzRmYmM4ZjMzNDhjYjY2NDFlOWMgXQoKSW4gc21hcnRuaWMgZW52LCB0aGUgaG9z dCAoUEYpIGRyaXZlciBtaWdodCBub3QgYmUgYW4gZS1zd2l0Y2gKbWFuYWdlciwgaGVuY2UgdGhl IEZXIHdpbGwgZXJyIG9uIGRyaXZlciBhdHRlbXB0cyB0byBkZWFsIHdpdGgKc2V0dGluZy91bnNl dHRpbmcgdGhlIGVzd2l0Y2ggYW5kIGFzIGEgcmVzdWx0IHRoZSBvdmVyYWxsIHNldHVwCm9mIHNy aW92IHdpbGwgZmFpbC4KCkZpeCB0aGF0IGJ5IGF2b2lkaW5nIHRoZSBvcGVyYXRpb24gaWYgZS1z d2l0Y2ggbWFuYWdlbWVudCBpcyBub3QKYWxsb3dlZCBmb3IgdGhpcyBkcml2ZXIgaW5zdGFuY2Uu IFdoaWxlIGhlcmUsIG1vdmUgdG8gdXNlIHRoZQpjb3JyZWN0IG5hbWUgZm9yIHRoZSBlc3cgbWFu YWdlciBjYXBhYmlsaXR5IG5hbWUuCgpGaXhlczogODE4NDg3MzFmZjQwICgnbmV0L21seDU6IEUt U3dpdGNoLCBBZGQgU1ItSU9WIChGREIpIHN1cHBvcnQnKQpTaWduZWQtb2ZmLWJ5OiBPciBHZXJs aXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+ClJlcG9ydGVkLWJ5OiBHdXkgS3VzaG5pciA8Z3V5 a0BtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBFbGkgQ29oZW4gPGVsaUBtZWxsb2Fub3guY29t PgpUZXN0ZWQtYnk6IEVsaSBDb2hlbiA8ZWxpQG1lbGxvYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6 IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yZXAuYyAgfCAyICstCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5jIHwgMiArLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guaCB8IDIgKysKIGRyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMgfCAzICsrLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Z3LmMgICAgICB8IDUgKysrLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zcmlvdi5jICAgfCA3ICsrKysrKy0K IGluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oICAgICAgICAgICAgICAgICAgICAgfCAyICst CiA3IGZpbGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jCmluZGV4 IDBlNzBjZDZkOGJjOC4uMjgxOTExNjk4ZjcyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcmVwLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jCkBAIC03MjYsNyArNzI2LDcgQEAgc3RhdGlj IGJvb2wgbWx4NWVfaXNfdmZfdnBvcnRfcmVwKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogCXN0 cnVjdCBtbHg1ZV9yZXBfcHJpdiAqcnByaXYgPSBwcml2LT5wcHJpdjsKIAlzdHJ1Y3QgbWx4NV9l c3dpdGNoX3JlcCAqcmVwOwogCi0JaWYgKCFNTFg1X0NBUF9HRU4ocHJpdi0+bWRldiwgZXN3aXRj aF9mbG93X3RhYmxlKSkKKwlpZiAoIU1MWDVfRVNXSVRDSF9NQU5BR0VSKHByaXYtPm1kZXYpKQog CQlyZXR1cm4gZmFsc2U7CiAKIAlyZXAgPSBycHJpdi0+cmVwOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guYyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmMKaW5kZXggODJlMzcyNTBlZDAx Li42Njc0MTUzMDEwNjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lc3dpdGNoLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2Vzd2l0Y2guYwpAQCAtMTUzNSw3ICsxNTM1LDcgQEAgaW50IG1seDVfZXN3aXRj aF9lbmFibGVfc3Jpb3Yoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBpbnQgbnZmcywgaW50IG1v ZGUpCiAJaWYgKCFFU1dfQUxMT1dFRChlc3cpKQogCQlyZXR1cm4gMDsKIAotCWlmICghTUxYNV9D QVBfR0VOKGVzdy0+ZGV2LCBlc3dpdGNoX2Zsb3dfdGFibGUpIHx8CisJaWYgKCFNTFg1X0VTV0lU Q0hfTUFOQUdFUihlc3ctPmRldikgfHwKIAkgICAgIU1MWDVfQ0FQX0VTV19GTE9XVEFCTEVfRkRC KGVzdy0+ZGV2LCBmdF9zdXBwb3J0KSkgewogCQllc3dfd2Fybihlc3ctPmRldiwgIkUtU3dpdGNo IEZEQiBpcyBub3Qgc3VwcG9ydGVkLCBhYm9ydGluZyAuLi5cbiIpOwogCQlyZXR1cm4gLUVPUE5P VFNVUFA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZXN3aXRjaC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vz d2l0Y2guaAppbmRleCA1NjVjOGI3YTM5OWEuLjEwYmY3NzA2NzVmMyAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guaAorKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5oCkBAIC0zOSw2ICsz OSw4IEBACiAjaW5jbHVkZSA8bGludXgvbWx4NS9kZXZpY2UuaD4KICNpbmNsdWRlICJsaWIvbXBm cy5oIgogCisjZGVmaW5lIE1MWDVfRVNXSVRDSF9NQU5BR0VSKG1kZXYpIE1MWDVfQ0FQX0dFTiht ZGV2LCBlc3dpdGNoX21hbmFnZXIpCisKIGVudW0gewogCVNSSU9WX05PTkUsCiAJU1JJT1ZfTEVH QUNZLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2ZzX2NvcmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19j b3JlLmMKaW5kZXggMzNlNWZmMDgxZTM2Li5kZDA1Y2YxNDg4NDUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYwpAQCAtMzYsNiArMzYs NyBAQAogI2luY2x1ZGUgIm1seDVfY29yZS5oIgogI2luY2x1ZGUgImZzX2NvcmUuaCIKICNpbmNs dWRlICJmc19jbWQuaCIKKyNpbmNsdWRlICJlc3dpdGNoLmgiCiAjaW5jbHVkZSAiZGlhZy9mc190 cmFjZXBvaW50LmgiCiAKICNkZWZpbmUgSU5JVF9UUkVFX05PREVfQVJSQVlfU0laRSguLi4pCShz aXplb2YoKHN0cnVjdCBpbml0X3RyZWVfbm9kZVtdKXtfX1ZBX0FSR1NfX30pIC9cCkBAIC0yMjEx LDcgKzIyMTIsNyBAQCBpbnQgbWx4NV9pbml0X2ZzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYp CiAJCQlnb3RvIGVycjsKIAl9CiAKLQlpZiAoTUxYNV9DQVBfR0VOKGRldiwgZXN3aXRjaF9mbG93 X3RhYmxlKSkgeworCWlmIChNTFg1X0VTV0lUQ0hfTUFOQUdFUihkZXYpKSB7CiAJCWlmIChNTFg1 X0NBUF9FU1dfRkxPV1RBQkxFX0ZEQihkZXYsIGZ0X3N1cHBvcnQpKSB7CiAJCQllcnIgPSBpbml0 X2ZkYl9yb290X25zKHN0ZWVyaW5nKTsKIAkJCWlmIChlcnIpCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZncuYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9mdy5jCmluZGV4IDJjNzE1NTdkMWNlZS4uZDY5ODk3YTFl MmNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZncuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZncuYwpA QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21seDUvY21kLmg+CiAjaW5jbHVkZSA8 bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSAibWx4NV9jb3JlLmgiCisjaW5jbHVkZSAiZXN3aXRj aC5oIgogI2luY2x1ZGUgIi4uLy4uL21seGZ3L21seGZ3LmgiCiAKIHN0YXRpYyBpbnQgbWx4NV9j bWRfcXVlcnlfYWRhcHRlcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MzIgKm91dCwKQEAg LTE1MiwxMyArMTUzLDEzIEBAIGludCBtbHg1X3F1ZXJ5X2hjYV9jYXBzKHN0cnVjdCBtbHg1X2Nv cmVfZGV2ICpkZXYpCiAJfQogCiAJaWYgKE1MWDVfQ0FQX0dFTihkZXYsIHZwb3J0X2dyb3VwX21h bmFnZXIpICYmCi0JICAgIE1MWDVfQ0FQX0dFTihkZXYsIGVzd2l0Y2hfZmxvd190YWJsZSkpIHsK KwkgICAgTUxYNV9FU1dJVENIX01BTkFHRVIoZGV2KSkgewogCQllcnIgPSBtbHg1X2NvcmVfZ2V0 X2NhcHMoZGV2LCBNTFg1X0NBUF9FU1dJVENIX0ZMT1dfVEFCTEUpOwogCQlpZiAoZXJyKQogCQkJ cmV0dXJuIGVycjsKIAl9CiAKLQlpZiAoTUxYNV9DQVBfR0VOKGRldiwgZXN3aXRjaF9mbG93X3Rh YmxlKSkgeworCWlmIChNTFg1X0VTV0lUQ0hfTUFOQUdFUihkZXYpKSB7CiAJCWVyciA9IG1seDVf Y29yZV9nZXRfY2FwcyhkZXYsIE1MWDVfQ0FQX0VTV0lUQ0gpOwogCQlpZiAoZXJyKQogCQkJcmV0 dXJuIGVycjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9zcmlvdi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3Ny aW92LmMKaW5kZXggMmE4YjUyOWNlNmRkLi5hMDY3NDk2MmYwMmMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zcmlvdi5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zcmlvdi5jCkBAIC04OCw2ICs4OCw5IEBA IHN0YXRpYyBpbnQgbWx4NV9kZXZpY2VfZW5hYmxlX3NyaW92KHN0cnVjdCBtbHg1X2NvcmVfZGV2 ICpkZXYsIGludCBudW1fdmZzKQogCQlyZXR1cm4gLUVCVVNZOwogCX0KIAorCWlmICghTUxYNV9F U1dJVENIX01BTkFHRVIoZGV2KSkKKwkJZ290byBlbmFibGVfdmZzX2hjYTsKKwogCWVyciA9IG1s eDVfZXN3aXRjaF9lbmFibGVfc3Jpb3YoZGV2LT5wcml2LmVzd2l0Y2gsIG51bV92ZnMsIFNSSU9W X0xFR0FDWSk7CiAJaWYgKGVycikgewogCQltbHg1X2NvcmVfd2FybihkZXYsCkBAIC05NSw2ICs5 OCw3IEBAIHN0YXRpYyBpbnQgbWx4NV9kZXZpY2VfZW5hYmxlX3NyaW92KHN0cnVjdCBtbHg1X2Nv cmVfZGV2ICpkZXYsIGludCBudW1fdmZzKQogCQlyZXR1cm4gZXJyOwogCX0KIAorZW5hYmxlX3Zm c19oY2E6CiAJZm9yICh2ZiA9IDA7IHZmIDwgbnVtX3ZmczsgdmYrKykgewogCQllcnIgPSBtbHg1 X2NvcmVfZW5hYmxlX2hjYShkZXYsIHZmICsgMSk7CiAJCWlmIChlcnIpIHsKQEAgLTE0MCw3ICsx NDQsOCBAQCBzdGF0aWMgdm9pZCBtbHg1X2RldmljZV9kaXNhYmxlX3NyaW92KHN0cnVjdCBtbHg1 X2NvcmVfZGV2ICpkZXYpCiAJfQogCiBvdXQ6Ci0JbWx4NV9lc3dpdGNoX2Rpc2FibGVfc3Jpb3Yo ZGV2LT5wcml2LmVzd2l0Y2gpOworCWlmIChNTFg1X0VTV0lUQ0hfTUFOQUdFUihkZXYpKQorCQlt bHg1X2Vzd2l0Y2hfZGlzYWJsZV9zcmlvdihkZXYtPnByaXYuZXN3aXRjaCk7CiAKIAlpZiAobWx4 NV93YWl0X2Zvcl92Zl9wYWdlcyhkZXYpKQogCQltbHg1X2NvcmVfd2FybihkZXYsICJ0aW1lb3V0 IHJlY2xhaW1pbmcgVkZzIHBhZ2VzXG4iKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWx4 NS9tbHg1X2lmYy5oIGIvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgKaW5kZXggZjM3NjUx NTVmYTRkLi4xZDc5M2Q4NmQ1NWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1 X2lmYy5oCisrKyBiL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oCkBAIC04NTcsNyArODU3 LDcgQEAgc3RydWN0IG1seDVfaWZjX2NtZF9oY2FfY2FwX2JpdHMgewogCXU4ICAgICAgICAgcmVz ZXJ2ZWRfYXRfMWE0WzB4MV07CiAJdTggICAgICAgICBldHNbMHgxXTsKIAl1OCAgICAgICAgIG5p Y19mbG93X3RhYmxlWzB4MV07Ci0JdTggICAgICAgICBlc3dpdGNoX2Zsb3dfdGFibGVbMHgxXTsK Kwl1OCAgICAgICAgIGVzd2l0Y2hfbWFuYWdlclsweDFdOwogCXU4CSAgIGVhcmx5X3ZmX2VuYWJs ZVsweDFdOwogCXU4ICAgICAgICAgbWNhbV9yZWdbMHgxXTsKIAl1OCAgICAgICAgIHBjYW1fcmVn WzB4MV07Ci0tIAoyLjE3LjEKCgpGcm9tIGJhNjViNjdhODM0OWEyN2NiNTBjYTg4MWMxZmJhNmIw MTFhOWNjODkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFsZXggVmVza2VyIDx2YWxl eEBtZWxsYW5veC5jb20+CkRhdGU6IFR1ZSwgMTIgSnVuIDIwMTggMTY6MTQ6MzEgKzAzMDAKU3Vi amVjdDogW1BBVENIIDE1LzM1XSBuZXQvbWx4NTogRml4IGNvbW1hbmQgaW50ZXJmYWNlIHJhY2Ug aW4gcG9sbGluZyBtb2RlCgpbIFVwc3RyZWFtIGNvbW1pdCBkNDEyYzMxZGFlMDUzYmYzMGExYmMx NTU4MmE5OTkwZGYyOTdhNjYwIF0KClRoZSBjb21tYW5kIGludGVyZmFjZSBjYW4gd29yayBpbiB0 d28gbW9kZXM6IEV2ZW50cyBhbmQgUG9sbGluZy4KSW4gdGhlIGdlbmVyYWwgY2FzZSwgZWFjaCB0 aW1lIHdlIGludm9rZSBhIGNvbW1hbmQsIGEgd29yayBpcwpxdWV1ZWQgdG8gaGFuZGxlIGl0LgoK V2hlbiB3b3JraW5nIGluIGV2ZW50cywgdGhlIGludGVycnVwdCBoYW5kbGVyIGNvbXBsZXRlcyB0 aGUKY29tbWFuZCBleGVjdXRpb24uIE9uIHRoZSBvdGhlciBoYW5kLCB3aGVuIHdvcmtpbmcgaW4g cG9sbGluZwptb2RlLCB0aGUgd29yayBpdHNlbGYgY29tcGxldGVzIGl0LgoKRHVlIHRvIGEgYnVn IGluIHRoZSB3b3JrIGhhbmRsZXIsIGEgY29tbWFuZCBjb3VsZCBoYXZlIGJlZW4KY29tcGxldGVk IGJ5IHRoZSBpbnRlcnJ1cHQgaGFuZGxlciwgd2hpbGUgdGhlIHdvcmsgaGFuZGxlcgpoYXNuJ3Qg ZmluaXNoZWQgeWV0LCBjYXVzaW5nIHRoZSBpdCB0byBjb21wbGV0ZSBvbmNlIGFnYWluCmlmIHRo ZSBjb21tYW5kIGludGVyZmFjZSBtb2RlIHdhcyBjaGFuZ2VkIGZyb20gRXZlbnRzIHRvCnBvbGxp bmcgYWZ0ZXIgdGhlIGludGVycnVwdCBoYW5kbGVyIHdhcyBjYWxsZWQuCgptbHg1X3VubG9hZF9v bmUoKQogICAgICAgIG1seDVfc3RvcF9lcXMoKQogICAgICAgICAgICAgICAgLy8gRGVzdHJveSB0 aGUgRVEgYmVmb3JlIGNtZCBFUQogICAgICAgICAgICAgICAgLi4uY21kX3dvcmtfaGFuZGxlcigp CiAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlX2Rvb3JiZWxsKCkKICAgICAgICAgICAgICAg ICAgICAgICAgLS0+IEVWRU5UX1RZUEVfQ01ECiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbWx4NV9jbWRfY29tcF9oYW5kbGVyKCkgLy8gRmlyc3QgZnJlZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZnJlZV9lbnQoY21kLCBlbnQtPmlkeCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlKCZlbnQtPmRvbmUpCgogICAg ICAgIDwtLSBtbHg1X3N0b3BfZXFzIC8vY21kIHdhcyBjb21wbGV0ZQogICAgICAgICAgICAgICAg Ly8gbW92ZSB0byBwb2xsaW5nIGJlZm9yZSBkZXN0cm95aW5nIHRoZSBsYXN0IGNtZCBFUQogICAg ICAgICAgICAgICAgbWx4NV9jbWRfdXNlX3BvbGxpbmcoKQogICAgICAgICAgICAgICAgICAgICAg ICBjbWQtPm1vZGUgPSBQT0xMOwoKICAgICAgICAgICAgICAgIC0tPiBjbWRfd29ya19oYW5kbGVy IChjb250aW51ZXMpCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjbWQtPm1vZGUgPT0gUE9M TCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbHg1X2NtZF9jb21wX2hhbmRsZXIo KSAvLyBEb3VibGUgZnJlZQoKVGhlIHNvbHV0aW9uIGlzIHRvIHN0b3JlIHRoZSBjbWQtPm1vZGUg YmVmb3JlIHdyaXRpbmcgdGhlIGRvb3JiZWxsLgoKRml4ZXM6IGUxMjZiYTk3ZGJhOSAoIm1seDU6 IEFkZCBkcml2ZXIgZm9yIE1lbGxhbm94IENvbm5lY3QtSUIgYWRhcHRlcnMiKQpTaWduZWQtb2Zm LWJ5OiBBbGV4IFZlc2tlciA8dmFsZXhAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVl ZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvY21kLmMKaW5kZXggM2VmZTQ1YmMyNDcxLi5jNWI2NDkzMTZiYzEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMKQEAgLTgw MSw2ICs4MDEsNyBAQCBzdGF0aWMgdm9pZCBjbWRfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0 cnVjdCAqd29yaykKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWJvb2wgcG9sbF9jbWQgPSBlbnQt PnBvbGxpbmc7CiAJaW50IGFsbG9jX3JldDsKKwlpbnQgY21kX21vZGU7CiAKIAlzZW0gPSBlbnQt PnBhZ2VfcXVldWUgPyAmY21kLT5wYWdlc19zZW0gOiAmY21kLT5zZW07CiAJZG93bihzZW0pOwpA QCAtODQ3LDYgKzg0OCw3IEBAIHN0YXRpYyB2b2lkIGNtZF93b3JrX2hhbmRsZXIoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQogCXNldF9zaWduYXR1cmUoZW50LCAhY21kLT5jaGVja3N1bV9kaXNh YmxlZCk7CiAJZHVtcF9jb21tYW5kKGRldiwgZW50LCAxKTsKIAllbnQtPnRzMSA9IGt0aW1lX2dl dF9ucygpOworCWNtZF9tb2RlID0gY21kLT5tb2RlOwogCiAJaWYgKGVudC0+Y2FsbGJhY2spCiAJ CXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmZW50LT5jYl90aW1lb3V0X3dvcmssIGNiX3RpbWVvdXQp OwpAQCAtODcxLDcgKzg3Myw3IEBAIHN0YXRpYyB2b2lkIGNtZF93b3JrX2hhbmRsZXIoc3RydWN0 IHdvcmtfc3RydWN0ICp3b3JrKQogCWlvd3JpdGUzMmJlKDEgPDwgZW50LT5pZHgsICZkZXYtPmlz ZWctPmNtZF9kYmVsbCk7CiAJbW1pb3diKCk7CiAJLyogaWYgbm90IGluIHBvbGxpbmcgZG9uJ3Qg dXNlIGVudCBhZnRlciB0aGlzIHBvaW50ICovCi0JaWYgKGNtZC0+bW9kZSA9PSBDTURfTU9ERV9Q T0xMSU5HIHx8IHBvbGxfY21kKSB7CisJaWYgKGNtZF9tb2RlID09IENNRF9NT0RFX1BPTExJTkcg fHwgcG9sbF9jbWQpIHsKIAkJcG9sbF90aW1lb3V0KGVudCk7CiAJCS8qIG1ha2Ugc3VyZSB3ZSBy ZWFkIHRoZSBkZXNjcmlwdG9yIGFmdGVyIG93bmVyc2hpcCBpcyBTVyAqLwogCQlybWIoKTsKLS0g CjIuMTcuMQoKCkZyb20gN2E5YzY3ODllMGY4M2ExOTM0NDgxMWQ1NGI3NjI4ZGYwYTI4ZjljMiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxleCBWZXNrZXIgPHZhbGV4QG1lbGxhbm94 LmNvbT4KRGF0ZTogRnJpLCAyNSBNYXkgMjAxOCAyMDoyNTo1OSArMDMwMApTdWJqZWN0OiBbUEFU Q0ggMTYvMzVdIG5ldC9tbHg1OiBGaXggaW5jb3JyZWN0IHJhdyBjb21tYW5kIGxlbmd0aCBwYXJz aW5nCgpbIFVwc3RyZWFtIGNvbW1pdCA2MDNiN2JjZmY4MjQ3NDA1MDBkZGZhMDAxZDdhNzE2OGIw YjM4NTQyIF0KClRoZSBOVUxMIGNoYXJhY3RlciB3YXMgbm90IHNldCBjb3JyZWN0bHkgZm9yIHRo ZSBzdHJpbmcgY29udGFpbmluZwp0aGUgY29tbWFuZCBsZW5ndGgsIHRoaXMgY2F1c2VkIGZhaWx1 cmVzIHJlYWRpbmcgdGhlIG91dHB1dCBvZiB0aGUKY29tbWFuZCBkdWUgdG8gYSByYW5kb20gbGVu Z3RoLiBUaGUgZml4IGlzIHRvIGluaXRpYWxpemUgdGhlIG91dHB1dApsZW5ndGggc3RyaW5nLgoK Rml4ZXM6IGUxMjZiYTk3ZGJhOSAoIm1seDU6IEFkZCBkcml2ZXIgZm9yIE1lbGxhbm94IENvbm5l Y3QtSUIgYWRhcHRlcnMiKQpTaWduZWQtb2ZmLWJ5OiBBbGV4IFZlc2tlciA8dmFsZXhAbWVsbGFu b3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNv bT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMgfCA0 ICstLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMKaW5kZXggYzVi NjQ5MzE2YmMxLi5jZjk0ZmRmMjUxNTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9jbWQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvY21kLmMKQEAgLTEyNzQsNyArMTI3NCw3IEBAIHN0YXRpYyBzc2l6ZV90 IG91dGxlbl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwK IHsKIAlzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC0+cHJpdmF0ZV9kYXRhOwogCXN0 cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gJmRldi0+Y21kLmRiZzsKLQljaGFyIG91dGxlbl9z dHJbOF07CisJY2hhciBvdXRsZW5fc3RyWzhdID0gezB9OwogCWludCBvdXRsZW47CiAJdm9pZCAq cHRyOwogCWludCBlcnI7CkBAIC0xMjg5LDggKzEyODksNiBAQCBzdGF0aWMgc3NpemVfdCBvdXRs ZW5fd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICpidWYsCiAJaWYg KGNvcHlfZnJvbV91c2VyKG91dGxlbl9zdHIsIGJ1ZiwgY291bnQpKQogCQlyZXR1cm4gLUVGQVVM VDsKIAotCW91dGxlbl9zdHJbN10gPSAwOwotCiAJZXJyID0gc3NjYW5mKG91dGxlbl9zdHIsICIl ZCIsICZvdXRsZW4pOwogCWlmIChlcnIgPCAwKQogCQlyZXR1cm4gZXJyOwotLSAKMi4xNy4xCgoK RnJvbSA2MGMyY2Y3NzIyMGY3OTIxZmQ2ODcwYmFhMzAxY2Q0ZWExZDliNjNhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFbGkgQ29oZW4gPGVsaUBtZWxsYW5veC5jb20+CkRhdGU6IFdl ZCwgMTMgSnVuIDIwMTggMTA6Mjc6MzQgKzAzMDAKU3ViamVjdDogW1BBVENIIDE3LzM1XSBuZXQv bWx4NTogRml4IHJlcXVpcmVkIGNhcGFiaWxpdHkgZm9yIG1hbmlwdWxhdGluZyBNUEZTCgpbIFVw c3RyZWFtIGNvbW1pdCBmODExOTgwNDQ0ZWM1OWFkNjJmOWUwNDFhZGJiNTc2YTgyMTEzMmM3IF0K Ck1hbmlwdWxhdGluZyBvZiB0aGUgTVBGUyByZXF1aXJlcyBlc3dpdGNoIG1hbmFnZXIgY2FwYWJp bGl0aWVzLgoKRml4ZXM6IGVlYjY2Y2RiNjgyNiAoJ25ldC9tbHg1OiBTZXBhcmF0ZSBiZXR3ZWVu IEUtU3dpdGNoIGFuZCBNUEZTJykKU2lnbmVkLW9mZi1ieTogRWxpIENvaGVuIDxlbGlAbWVsbGFu b3guY29tPgpSZXZpZXdlZC1ieTogT3IgR2VybGl0eiA8b2dlcmxpdHpAbWVsbGFub3guY29tPgpT aWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBk cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL21wZnMuYyB8IDkgKysr KystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIv bXBmcy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9tcGZz LmMKaW5kZXggN2NiNjcxMjJlOGI1Li4yMjgxMWVjZDhmY2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvbXBmcy5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvbXBmcy5jCkBAIC0zNCw2ICszNCw3 IEBACiAjaW5jbHVkZSA8bGludXgvbWx4NS9kcml2ZXIuaD4KICNpbmNsdWRlIDxsaW51eC9tbHg1 L21seDVfaWZjLmg+CiAjaW5jbHVkZSAibWx4NV9jb3JlLmgiCisjaW5jbHVkZSAiZXN3aXRjaC5o IgogI2luY2x1ZGUgImxpYi9tcGZzLmgiCiAKIC8qIEhXIEwyIFRhYmxlIChNUEZTKSBtYW5hZ2Vt ZW50ICovCkBAIC05OCw3ICs5OSw3IEBAIGludCBtbHg1X21wZnNfaW5pdChzdHJ1Y3QgbWx4NV9j b3JlX2RldiAqZGV2KQogCWludCBsMnRhYmxlX3NpemUgPSAxIDw8IE1MWDVfQ0FQX0dFTihkZXYs IGxvZ19tYXhfbDJfdGFibGUpOwogCXN0cnVjdCBtbHg1X21wZnMgKm1wZnM7CiAKLQlpZiAoIU1M WDVfVlBPUlRfTUFOQUdFUihkZXYpKQorCWlmICghTUxYNV9FU1dJVENIX01BTkFHRVIoZGV2KSkK IAkJcmV0dXJuIDA7CiAKIAltcGZzID0ga3phbGxvYyhzaXplb2YoKm1wZnMpLCBHRlBfS0VSTkVM KTsKQEAgLTEyMiw3ICsxMjMsNyBAQCB2b2lkIG1seDVfbXBmc19jbGVhbnVwKHN0cnVjdCBtbHg1 X2NvcmVfZGV2ICpkZXYpCiB7CiAJc3RydWN0IG1seDVfbXBmcyAqbXBmcyA9IGRldi0+cHJpdi5t cGZzOwogCi0JaWYgKCFNTFg1X1ZQT1JUX01BTkFHRVIoZGV2KSkKKwlpZiAoIU1MWDVfRVNXSVRD SF9NQU5BR0VSKGRldikpCiAJCXJldHVybjsKIAogCVdBUk5fT04oIWhsaXN0X2VtcHR5KG1wZnMt Pmhhc2gpKTsKQEAgLTEzNyw3ICsxMzgsNyBAQCBpbnQgbWx4NV9tcGZzX2FkZF9tYWMoc3RydWN0 IG1seDVfY29yZV9kZXYgKmRldiwgdTggKm1hYykKIAl1MzIgaW5kZXg7CiAJaW50IGVycjsKIAot CWlmICghTUxYNV9WUE9SVF9NQU5BR0VSKGRldikpCisJaWYgKCFNTFg1X0VTV0lUQ0hfTUFOQUdF UihkZXYpKQogCQlyZXR1cm4gMDsKIAogCW11dGV4X2xvY2soJm1wZnMtPmxvY2spOwpAQCAtMTc5 LDcgKzE4MCw3IEBAIGludCBtbHg1X21wZnNfZGVsX21hYyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAq ZGV2LCB1OCAqbWFjKQogCWludCBlcnIgPSAwOwogCXUzMiBpbmRleDsKIAotCWlmICghTUxYNV9W UE9SVF9NQU5BR0VSKGRldikpCisJaWYgKCFNTFg1X0VTV0lUQ0hfTUFOQUdFUihkZXYpKQogCQly ZXR1cm4gMDsKIAogCW11dGV4X2xvY2soJm1wZnMtPmxvY2spOwotLSAKMi4xNy4xCgoKRnJvbSAz NDM1YTAyNmFiOWY4ODdhMDJjNjAwZGY2NGZmNzVlYzQ4ZTNiZDk4IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBTaGF5IEFncm9za2luIDxzaGF5YWdAbWVsbGFub3guY29tPgpEYXRlOiBU dWUsIDIyIE1heSAyMDE4IDE0OjE0OjAyICswMzAwClN1YmplY3Q6IFtQQVRDSCAxOC8zNV0gbmV0 L21seDU6IEZpeCB3cm9uZyBzaXplIGFsbG9jYXRpb24gZm9yIFFvUyBFVEMgVEMKIHJlZ2l0c3Rl cgoKWyBVcHN0cmVhbSBjb21taXQgZDE0ZmNiOGQ4NzdjYWYxYjhkNmJkNjVkNDQ0YmY2MmIyMWYy MDcwYyBdCgpUaGUgZHJpdmVyIGFsbG9jYXRlcyB3cm9uZyBzaXplIChkdWUgdG8gd3Jvbmcgc3Ry dWN0IG5hbWUpIHdoZW4gaXNzdWluZwphIHF1ZXJ5L3NldCByZXF1ZXN0IHRvIE5JQydzIHJlZ2lz dGVyLgoKRml4ZXM6IGQ4ODgwNzk1ZGFiZiAoIm5ldC9tbHg1ZTogSW1wbGVtZW50IERDQk5MIElF RUUgbWF4IHJhdGUiKQpTaWduZWQtb2ZmLWJ5OiBTaGF5IEFncm9za2luIDxzaGF5YWdAbWVsbGFu b3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNv bT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvcG9ydC5jIHwg NCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9wb3J0 LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvcG9ydC5jCmluZGV4 IGUwNzA2MWY1NjVkNi4uY2NiNjI4N2FlZWI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvcG9ydC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9wb3J0LmMKQEAgLTY0MSw3ICs2NDEsNyBAQCBFWFBPUlRfU1lN Qk9MX0dQTChtbHg1X3F1ZXJ5X3BvcnRfcHJpb190Yyk7CiBzdGF0aWMgaW50IG1seDVfc2V0X3Bv cnRfcWV0Y3JfcmVnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LCB1MzIgKmluLAogCQkJCSAg IGludCBpbmxlbikKIHsKLQl1MzIgb3V0W01MWDVfU1RfU1pfRFcocXRjdF9yZWcpXTsKKwl1MzIg b3V0W01MWDVfU1RfU1pfRFcocWV0Y19yZWcpXTsKIAogCWlmICghTUxYNV9DQVBfR0VOKG1kZXYs IGV0cykpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKQEAgLTY1Myw3ICs2NTMsNyBAQCBzdGF0aWMg aW50IG1seDVfc2V0X3BvcnRfcWV0Y3JfcmVnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LCB1 MzIgKmluLAogc3RhdGljIGludCBtbHg1X3F1ZXJ5X3BvcnRfcWV0Y3JfcmVnKHN0cnVjdCBtbHg1 X2NvcmVfZGV2ICptZGV2LCB1MzIgKm91dCwKIAkJCQkgICAgIGludCBvdXRsZW4pCiB7Ci0JdTMy IGluW01MWDVfU1RfU1pfRFcocXRjdF9yZWcpXTsKKwl1MzIgaW5bTUxYNV9TVF9TWl9EVyhxZXRj X3JlZyldOwogCiAJaWYgKCFNTFg1X0NBUF9HRU4obWRldiwgZXRzKSkKIAkJcmV0dXJuIC1FT1BO T1RTVVBQOwotLSAKMi4xNy4xCgoKRnJvbSBkMzIzYmI0OTU1ZjJiMzkyZDczN2VkNzNiYTY1MDc0 NjA2ZjFhODBiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvaW5lIFRlbmFydCA8 YW50b2luZS50ZW5hcnRAYm9vdGxpbi5jb20+CkRhdGU6IEZyaSwgMjIgSnVuIDIwMTggMTA6MTU6 MzkgKzAyMDAKU3ViamVjdDogW1BBVENIIDE5LzM1XSBuZXQ6IG12bmV0YTogZml4IHRoZSBSeCBk ZXNjIERNQSBhZGRyZXNzIGluIHRoZSBSeCBwYXRoCgpbIFVwc3RyZWFtIGNvbW1pdCAyNzFmN2Zm NWFhNWE3MzQ4OGI3YTlkOGI4NGI1MjA1ZmI1YjJmN2NjIF0KCldoZW4gdXNpbmcgcy93IGJ1ZmZl ciBtYW5hZ2VtZW50LCBidWZmZXJzIGFyZSBhbGxvY2F0ZWQgYW5kIERNQSBtYXBwZWQuCldoZW4g ZG9pbmcgc28gb24gYW4gYXJtNjQgcGxhdGZvcm0sIGFuIG9mZnNldCBjb3JyZWN0aW9uIGlzIGFw cGxpZWQgb24KdGhlIERNQSBhZGRyZXNzLCBiZWZvcmUgc3RvcmluZyBpdCBpbiBhbiBSeCBkZXNj cmlwdG9yLiBUaGUgaXNzdWUgaXMKdGhpcyBETUEgYWRkcmVzcyBpcyB0aGVuIHVzZWQgbGF0ZXIg aW4gdGhlIFJ4IHBhdGggd2l0aG91dCByZW1vdmluZyB0aGUKb2Zmc2V0IGNvcnJlY3Rpb24uIFRo dXMgdGhlIERNQSBhZGRyZXNzIGlzIHdyb25nLCB3aGljaCBjYW4gbGVkIHRvCnZhcmlvdXMgaXNz dWVzLgoKVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IHJlbW92aW5nIHRoZSBvZmZzZXQgY29ycmVj dGlvbiBmcm9tIHRoZSBETUEKYWRkcmVzcyByZXRyaWV2ZWQgZnJvbSB0aGUgUnggZGVzY3JpcHRv ciBiZWZvcmUgdXNpbmcgaXQgaW4gdGhlIFJ4IHBhdGguCgpGaXhlczogOGQ1MDQ3Y2Y5Y2EyICgi bmV0OiBtdm5ldGE6IENvbnZlcnQgdG8gYmUgNjQgYml0cyBjb21wYXRpYmxlIikKU2lnbmVkLW9m Zi1ieTogQW50b2luZSBUZW5hcnQgPGFudG9pbmUudGVuYXJ0QGJvb3RsaW4uY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21hcnZlbGwvbXZuZXRhLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212 bmV0YS5jCmluZGV4IGQyOGY4NzMxNjlhOS4uM2RlYWEzNDEzMzEzIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21hcnZlbGwvbXZuZXRhLmMKQEAgLTE5NTksNyArMTk1OSw3IEBAIHN0YXRpYyBpbnQgbXZu ZXRhX3J4X3N3Ym0oc3RydWN0IG12bmV0YV9wb3J0ICpwcCwgaW50IHJ4X3RvZG8sCiAJCXJ4X2J5 dGVzID0gcnhfZGVzYy0+ZGF0YV9zaXplIC0gKEVUSF9GQ1NfTEVOICsgTVZORVRBX01IX1NJWkUp OwogCQlpbmRleCA9IHJ4X2Rlc2MgLSByeHEtPmRlc2NzOwogCQlkYXRhID0gcnhxLT5idWZfdmly dF9hZGRyW2luZGV4XTsKLQkJcGh5c19hZGRyID0gcnhfZGVzYy0+YnVmX3BoeXNfYWRkcjsKKwkJ cGh5c19hZGRyID0gcnhfZGVzYy0+YnVmX3BoeXNfYWRkciAtIHBwLT5yeF9vZmZzZXRfY29ycmVj dGlvbjsKIAogCQlpZiAoIW12bmV0YV9yeHFfZGVzY19pc19maXJzdF9sYXN0KHJ4X3N0YXR1cykg fHwKIAkJICAgIChyeF9zdGF0dXMgJiBNVk5FVEFfUlhEX0VSUl9TVU1NQVJZKSkgewotLSAKMi4x Ny4xCgoKRnJvbSA0NzA0Mjk4MGM2ZjIwMzllOWQ4NzY5YjFkZTE3OGM0ZWM1YzI2MGRjIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+CkRhdGU6IFRodSwgMjEgSnVuIDIwMTggMTQ6MTY6MDIgLTA3MDAKU3ViamVjdDogW1BBVENI IDIwLzM1XSBuZXQvcGFja2V0OiBmaXggdXNlLWFmdGVyLWZyZWUKClsgVXBzdHJlYW0gY29tbWl0 IDk0NWQwMTVlZTBjMzA5NWQyMjkwZTg0NTU2NWEyM2RlZGZkODAyN2MgXQoKV2Ugc2hvdWxkIHB1 dCBjb3B5X3NrYiBpbiByZWNlaXZlX3F1ZXVlIG9ubHkgYWZ0ZXIKYSBzdWNjZXNzZnVsIGNhbGwg dG8gdmlydGlvX25ldF9oZHJfZnJvbV9za2IoKS4KCnN5emJvdCByZXBvcnQgOgoKQlVHOiBLQVNB TjogdXNlLWFmdGVyLWZyZWUgaW4gX19za2JfdW5saW5rIGluY2x1ZGUvbGludXgvc2tidWZmLmg6 MTg0MyBbaW5saW5lXQpCVUc6IEtBU0FOOiB1c2UtYWZ0ZXItZnJlZSBpbiBfX3NrYl9kZXF1ZXVl IGluY2x1ZGUvbGludXgvc2tidWZmLmg6MTg2MyBbaW5saW5lXQpCVUc6IEtBU0FOOiB1c2UtYWZ0 ZXItZnJlZSBpbiBza2JfZGVxdWV1ZSsweDE2YS8weDE4MCBuZXQvY29yZS9za2J1ZmYuYzoyODE1 ClJlYWQgb2Ygc2l6ZSA4IGF0IGFkZHIgZmZmZjg4MDFiMDQ0ZWNjMCBieSB0YXNrIHN5ei1leGVj dXRvcjIxNy80NTUzCgpDUFU6IDAgUElEOiA0NTUzIENvbW06IHN5ei1leGVjdXRvcjIxNyBOb3Qg dGFpbnRlZCA0LjE4LjAtcmMxKyAjMTExCkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29t cHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDEx CkNhbGwgVHJhY2U6CiBfX2R1bXBfc3RhY2sgbGliL2R1bXBfc3RhY2suYzo3NyBbaW5saW5lXQog ZHVtcF9zdGFjaysweDFjOS8weDJiNCBsaWIvZHVtcF9zdGFjay5jOjExMwogcHJpbnRfYWRkcmVz c19kZXNjcmlwdGlvbisweDZjLzB4MjBiIG1tL2thc2FuL3JlcG9ydC5jOjI1Ngoga2FzYW5fcmVw b3J0X2Vycm9yIG1tL2thc2FuL3JlcG9ydC5jOjM1NCBbaW5saW5lXQoga2FzYW5fcmVwb3J0LmNv bGQuNysweDI0Mi8weDJmZSBtbS9rYXNhbi9yZXBvcnQuYzo0MTIKIF9fYXNhbl9yZXBvcnRfbG9h ZDhfbm9hYm9ydCsweDE0LzB4MjAgbW0va2FzYW4vcmVwb3J0LmM6NDMzCiBfX3NrYl91bmxpbmsg aW5jbHVkZS9saW51eC9za2J1ZmYuaDoxODQzIFtpbmxpbmVdCiBfX3NrYl9kZXF1ZXVlIGluY2x1 ZGUvbGludXgvc2tidWZmLmg6MTg2MyBbaW5saW5lXQogc2tiX2RlcXVldWUrMHgxNmEvMHgxODAg bmV0L2NvcmUvc2tidWZmLmM6MjgxNQogc2tiX3F1ZXVlX3B1cmdlKzB4MjYvMHg0MCBuZXQvY29y ZS9za2J1ZmYuYzoyODUyCiBwYWNrZXRfc2V0X3JpbmcrMHg2NzUvMHgxZGEwIG5ldC9wYWNrZXQv YWZfcGFja2V0LmM6NDMzMQogcGFja2V0X3JlbGVhc2UrMHg2MzAvMHhkOTAgbmV0L3BhY2tldC9h Zl9wYWNrZXQuYzoyOTkxCiBfX3NvY2tfcmVsZWFzZSsweGQ3LzB4MjYwIG5ldC9zb2NrZXQuYzo2 MDMKIHNvY2tfY2xvc2UrMHgxOS8weDIwIG5ldC9zb2NrZXQuYzoxMTg2CiBfX2ZwdXQrMHgzNWIv MHg4YjAgZnMvZmlsZV90YWJsZS5jOjIwOQogX19fX2ZwdXQrMHgxNS8weDIwIGZzL2ZpbGVfdGFi bGUuYzoyNDMKIHRhc2tfd29ya19ydW4rMHgxZWMvMHgyYTAga2VybmVsL3Rhc2tfd29yay5jOjEx MwogZXhpdF90YXNrX3dvcmsgaW5jbHVkZS9saW51eC90YXNrX3dvcmsuaDoyMiBbaW5saW5lXQog ZG9fZXhpdCsweDFiMDgvMHgyNzUwIGtlcm5lbC9leGl0LmM6ODY1CiBkb19ncm91cF9leGl0KzB4 MTc3LzB4NDQwIGtlcm5lbC9leGl0LmM6OTY4CiBfX2RvX3N5c19leGl0X2dyb3VwIGtlcm5lbC9l eGl0LmM6OTc5IFtpbmxpbmVdCiBfX3NlX3N5c19leGl0X2dyb3VwIGtlcm5lbC9leGl0LmM6OTc3 IFtpbmxpbmVdCiBfX3g2NF9zeXNfZXhpdF9ncm91cCsweDNlLzB4NTAga2VybmVsL2V4aXQuYzo5 NzcKIGRvX3N5c2NhbGxfNjQrMHgxYjkvMHg4MjAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6Mjkw CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0OS8weGJlClJJUDogMDAzMzoweDQ0 NDhlOQpDb2RlOiBCYWQgUklQIHZhbHVlLgpSU1A6IDAwMmI6MDAwMDdmZmQ1Zjc3N2NhOCBFRkxB R1M6IDAwMDAwMjAyIE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMGU3ClJBWDogZmZmZmZmZmZmZmZm ZmZkYSBSQlg6IDAwMDAwMDAwMDAwMDAwMDAgUkNYOiAwMDAwMDAwMDAwNDQ0OGU5ClJEWDogMDAw MDAwMDAwMDQ0NDhlOSBSU0k6IDAwMDAwMDAwMDAwMGZjZmIgUkRJOiAwMDAwMDAwMDAwMDAwMDAx ClJCUDogMDAwMDAwMDAwMDZjZjAxOCBSMDg6IDAwMDA3ZmZkMDAwMGE0NWIgUjA5OiAwMDAwMDAw MDAwMDAwMDAwClIxMDogMDAwMDdmZmQ1Zjc3N2U0OCBSMTE6IDAwMDAwMDAwMDAwMDAyMDIgUjEy OiAwMDAwMDAwMDAwNDAyMWYwClIxMzogMDAwMDAwMDAwMDQwMjI4MCBSMTQ6IDAwMDAwMDAwMDAw MDAwMDAgUjE1OiAwMDAwMDAwMDAwMDAwMDAwCgpBbGxvY2F0ZWQgYnkgdGFzayA0NTUzOgogc2F2 ZV9zdGFjaysweDQzLzB4ZDAgbW0va2FzYW4va2FzYW4uYzo0NDgKIHNldF90cmFjayBtbS9rYXNh bi9rYXNhbi5jOjQ2MCBbaW5saW5lXQoga2FzYW5fa21hbGxvYysweGM0LzB4ZTAgbW0va2FzYW4v a2FzYW4uYzo1NTMKIGthc2FuX3NsYWJfYWxsb2MrMHgxMi8weDIwIG1tL2thc2FuL2thc2FuLmM6 NDkwCiBrbWVtX2NhY2hlX2FsbG9jKzB4MTJlLzB4NzYwIG1tL3NsYWIuYzozNTU0CiBza2JfY2xv bmUrMHgxZjUvMHg1MDAgbmV0L2NvcmUvc2tidWZmLmM6MTI4MgogdHBhY2tldF9yY3YrMHgyOGY3 LzB4MzIwMCBuZXQvcGFja2V0L2FmX3BhY2tldC5jOjIyMjEKIGRlbGl2ZXJfc2tiIG5ldC9jb3Jl L2Rldi5jOjE5MjUgW2lubGluZV0KIGRlbGl2ZXJfcHR5cGVfbGlzdF9za2IgbmV0L2NvcmUvZGV2 LmM6MTk0MCBbaW5saW5lXQogX19uZXRpZl9yZWNlaXZlX3NrYl9jb3JlKzB4MWJmYi8weDM2ODAg bmV0L2NvcmUvZGV2LmM6NDYxMQogX19uZXRpZl9yZWNlaXZlX3NrYisweDJjLzB4MWUwIG5ldC9j b3JlL2Rldi5jOjQ2OTMKIG5ldGlmX3JlY2VpdmVfc2tiX2ludGVybmFsKzB4MTJlLzB4N2QwIG5l dC9jb3JlL2Rldi5jOjQ3NjcKIG5ldGlmX3JlY2VpdmVfc2tiKzB4YmYvMHg0MjAgbmV0L2NvcmUv ZGV2LmM6NDc5MQogdHVuX3J4X2JhdGNoZWQuaXNyYS41NSsweDRiYS8weDhjMCBkcml2ZXJzL25l dC90dW4uYzoxNTcxCiB0dW5fZ2V0X3VzZXIrMHgyYWYxLzB4NDJmMCBkcml2ZXJzL25ldC90dW4u YzoxOTgxCiB0dW5fY2hyX3dyaXRlX2l0ZXIrMHhiOS8weDE1NCBkcml2ZXJzL25ldC90dW4uYzoy MDA5CiBjYWxsX3dyaXRlX2l0ZXIgaW5jbHVkZS9saW51eC9mcy5oOjE3OTUgW2lubGluZV0KIG5l d19zeW5jX3dyaXRlIGZzL3JlYWRfd3JpdGUuYzo0NzQgW2lubGluZV0KIF9fdmZzX3dyaXRlKzB4 NmM2LzB4OWYwIGZzL3JlYWRfd3JpdGUuYzo0ODcKIHZmc193cml0ZSsweDFmOC8weDU2MCBmcy9y ZWFkX3dyaXRlLmM6NTQ5CiBrc3lzX3dyaXRlKzB4MTAxLzB4MjYwIGZzL3JlYWRfd3JpdGUuYzo1 OTgKIF9fZG9fc3lzX3dyaXRlIGZzL3JlYWRfd3JpdGUuYzo2MTAgW2lubGluZV0KIF9fc2Vfc3lz X3dyaXRlIGZzL3JlYWRfd3JpdGUuYzo2MDcgW2lubGluZV0KIF9feDY0X3N5c193cml0ZSsweDcz LzB4YjAgZnMvcmVhZF93cml0ZS5jOjYwNwogZG9fc3lzY2FsbF82NCsweDFiOS8weDgyMCBhcmNo L3g4Ni9lbnRyeS9jb21tb24uYzoyOTAKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsw eDQ5LzB4YmUKCkZyZWVkIGJ5IHRhc2sgNDU1MzoKIHNhdmVfc3RhY2srMHg0My8weGQwIG1tL2th c2FuL2thc2FuLmM6NDQ4CiBzZXRfdHJhY2sgbW0va2FzYW4va2FzYW4uYzo0NjAgW2lubGluZV0K IF9fa2FzYW5fc2xhYl9mcmVlKzB4MTFhLzB4MTcwIG1tL2thc2FuL2thc2FuLmM6NTIxCiBrYXNh bl9zbGFiX2ZyZWUrMHhlLzB4MTAgbW0va2FzYW4va2FzYW4uYzo1MjgKIF9fY2FjaGVfZnJlZSBt bS9zbGFiLmM6MzQ5OCBbaW5saW5lXQoga21lbV9jYWNoZV9mcmVlKzB4ODYvMHgyZDAgbW0vc2xh Yi5jOjM3NTYKIGtmcmVlX3NrYm1lbSsweDE1NC8weDIzMCBuZXQvY29yZS9za2J1ZmYuYzo1ODIK IF9fa2ZyZWVfc2tiIG5ldC9jb3JlL3NrYnVmZi5jOjY0MiBbaW5saW5lXQoga2ZyZWVfc2tiKzB4 MWE1LzB4NTgwIG5ldC9jb3JlL3NrYnVmZi5jOjY1OQogdHBhY2tldF9yY3YrMHgxODllLzB4MzIw MCBuZXQvcGFja2V0L2FmX3BhY2tldC5jOjIzODUKIGRlbGl2ZXJfc2tiIG5ldC9jb3JlL2Rldi5j OjE5MjUgW2lubGluZV0KIGRlbGl2ZXJfcHR5cGVfbGlzdF9za2IgbmV0L2NvcmUvZGV2LmM6MTk0 MCBbaW5saW5lXQogX19uZXRpZl9yZWNlaXZlX3NrYl9jb3JlKzB4MWJmYi8weDM2ODAgbmV0L2Nv cmUvZGV2LmM6NDYxMQogX19uZXRpZl9yZWNlaXZlX3NrYisweDJjLzB4MWUwIG5ldC9jb3JlL2Rl di5jOjQ2OTMKIG5ldGlmX3JlY2VpdmVfc2tiX2ludGVybmFsKzB4MTJlLzB4N2QwIG5ldC9jb3Jl L2Rldi5jOjQ3NjcKIG5ldGlmX3JlY2VpdmVfc2tiKzB4YmYvMHg0MjAgbmV0L2NvcmUvZGV2LmM6 NDc5MQogdHVuX3J4X2JhdGNoZWQuaXNyYS41NSsweDRiYS8weDhjMCBkcml2ZXJzL25ldC90dW4u YzoxNTcxCiB0dW5fZ2V0X3VzZXIrMHgyYWYxLzB4NDJmMCBkcml2ZXJzL25ldC90dW4uYzoxOTgx CiB0dW5fY2hyX3dyaXRlX2l0ZXIrMHhiOS8weDE1NCBkcml2ZXJzL25ldC90dW4uYzoyMDA5CiBj YWxsX3dyaXRlX2l0ZXIgaW5jbHVkZS9saW51eC9mcy5oOjE3OTUgW2lubGluZV0KIG5ld19zeW5j X3dyaXRlIGZzL3JlYWRfd3JpdGUuYzo0NzQgW2lubGluZV0KIF9fdmZzX3dyaXRlKzB4NmM2LzB4 OWYwIGZzL3JlYWRfd3JpdGUuYzo0ODcKIHZmc193cml0ZSsweDFmOC8weDU2MCBmcy9yZWFkX3dy aXRlLmM6NTQ5CiBrc3lzX3dyaXRlKzB4MTAxLzB4MjYwIGZzL3JlYWRfd3JpdGUuYzo1OTgKIF9f ZG9fc3lzX3dyaXRlIGZzL3JlYWRfd3JpdGUuYzo2MTAgW2lubGluZV0KIF9fc2Vfc3lzX3dyaXRl IGZzL3JlYWRfd3JpdGUuYzo2MDcgW2lubGluZV0KIF9feDY0X3N5c193cml0ZSsweDczLzB4YjAg ZnMvcmVhZF93cml0ZS5jOjYwNwogZG9fc3lzY2FsbF82NCsweDFiOS8weDgyMCBhcmNoL3g4Ni9l bnRyeS9jb21tb24uYzoyOTAKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ5LzB4 YmUKClRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIG9iamVjdCBhdCBmZmZmODgwMWIw NDRlY2MwCiB3aGljaCBiZWxvbmdzIHRvIHRoZSBjYWNoZSBza2J1ZmZfaGVhZF9jYWNoZSBvZiBz aXplIDIzMgpUaGUgYnVnZ3kgYWRkcmVzcyBpcyBsb2NhdGVkIDAgYnl0ZXMgaW5zaWRlIG9mCiAy MzItYnl0ZSByZWdpb24gW2ZmZmY4ODAxYjA0NGVjYzAsIGZmZmY4ODAxYjA0NGVkYTgpClRoZSBi dWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIHBhZ2U6CnBhZ2U6ZmZmZmVhMDAwNmMxMTM4MCBj b3VudDoxIG1hcGNvdW50OjAgbWFwcGluZzpmZmZmODgwMWQ5YmU5NmMwIGluZGV4OjB4MApmbGFn czogMHgyZmZmYzAwMDAwMDAxMDAoc2xhYikKcmF3OiAwMmZmZmMwMDAwMDAwMTAwIGZmZmZlYTAw MDZjMTc5ODggZmZmZjg4MDFkOWJlYzI0OCBmZmZmODgwMWQ5YmU5NmMwCnJhdzogMDAwMDAwMDAw MDAwMDAwMCBmZmZmODgwMWIwNDRlMDQwIDAwMDAwMDAxMDAwMDAwMGMgMDAwMDAwMDAwMDAwMDAw MApwYWdlIGR1bXBlZCBiZWNhdXNlOiBrYXNhbjogYmFkIGFjY2VzcyBkZXRlY3RlZAoKTWVtb3J5 IHN0YXRlIGFyb3VuZCB0aGUgYnVnZ3kgYWRkcmVzczoKIGZmZmY4ODAxYjA0NGViODA6IDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwCiBmZmZmODgwMWIwNDRl YzAwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCBmYyBmYyBmYwo+ZmZm Zjg4MDFiMDQ0ZWM4MDogZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmIgZmIgZmIgZmIgZmIgZmIg ZmIgZmIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIGZmZmY4 ODAxYjA0NGVkMDA6IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZi IGZiCiBmZmZmODgwMWIwNDRlZDgwOiBmYiBmYiBmYiBmYiBmYiBmYyBmYyBmYyBmYyBmYyBmYyBm YyBmYyBmYyBmYyBmYwoKRml4ZXM6IDU4ZDE5YjE5Y2Q5OSAoInBhY2tldDogdm5ldF9oZHIgc3Vw cG9ydCBmb3IgdHBhY2tldF9yY3YiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1h emV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91 cHMuY29tPgpDYzogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Bh Y2tldC9hZl9wYWNrZXQuYyB8IDE2ICsrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3 IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3BhY2tldC9h Zl9wYWNrZXQuYyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKaW5kZXggNGZlMmUzNDUyMmQ2Li4y N2RhZmUzNmYyOWMgMTAwNjQ0Ci0tLSBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0 L3BhY2tldC9hZl9wYWNrZXQuYwpAQCAtMjMwMyw2ICsyMzAzLDEzIEBAIHN0YXRpYyBpbnQgdHBh Y2tldF9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJ aWYgKHBvLT5zdGF0cy5zdGF0czEudHBfZHJvcHMpCiAJCQlzdGF0dXMgfD0gVFBfU1RBVFVTX0xP U0lORzsKIAl9CisKKwlpZiAoZG9fdm5ldCAmJgorCSAgICB2aXJ0aW9fbmV0X2hkcl9mcm9tX3Nr Yihza2IsIGgucmF3ICsgbWFjb2ZmIC0KKwkJCQkgICAgc2l6ZW9mKHN0cnVjdCB2aXJ0aW9fbmV0 X2hkciksCisJCQkJICAgIHZpb19sZSgpLCB0cnVlLCAwKSkKKwkJZ290byBkcm9wX25fYWNjb3Vu dDsKKwogCXBvLT5zdGF0cy5zdGF0czEudHBfcGFja2V0cysrOwogCWlmIChjb3B5X3NrYikgewog CQlzdGF0dXMgfD0gVFBfU1RBVFVTX0NPUFk7CkBAIC0yMzEwLDE1ICsyMzE3LDYgQEAgc3RhdGlj IGludCB0cGFja2V0X3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2LAogCX0KIAlzcGluX3VubG9jaygmc2stPnNrX3JlY2VpdmVfcXVldWUubG9jayk7CiAKLQlp ZiAoZG9fdm5ldCkgewotCQlpZiAodmlydGlvX25ldF9oZHJfZnJvbV9za2Ioc2tiLCBoLnJhdyAr IG1hY29mZiAtCi0JCQkJCSAgICBzaXplb2Yoc3RydWN0IHZpcnRpb19uZXRfaGRyKSwKLQkJCQkJ ICAgIHZpb19sZSgpLCB0cnVlLCAwKSkgewotCQkJc3Bpbl9sb2NrKCZzay0+c2tfcmVjZWl2ZV9x dWV1ZS5sb2NrKTsKLQkJCWdvdG8gZHJvcF9uX2FjY291bnQ7Ci0JCX0KLQl9Ci0KIAlza2JfY29w eV9iaXRzKHNrYiwgMCwgaC5yYXcgKyBtYWNvZmYsIHNuYXBsZW4pOwogCiAJaWYgKCEodHNfc3Rh dHVzID0gdHBhY2tldF9nZXRfdGltZXN0YW1wKHNrYiwgJnRzLCBwby0+dHBfdHN0YW1wKSkpCi0t IAoyLjE3LjEKCgpGcm9tIDhjOTMyNzE0ZjcxNTNhYjU2MjQ0NWNkODVjZWM1ZjEyNzljMjAzYjUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEtvbnN0YW50aW4gS2hsZWJuaWtvdiA8a2hs ZWJuaWtvdkB5YW5kZXgtdGVhbS5ydT4KRGF0ZTogRnJpLCAxNSBKdW4gMjAxOCAxMzoyNzozMSAr MDMwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMzVdIG5ldF9zY2hlZDogYmxhY2tob2xlOiB0ZWxsIHVw cGVyIHFkaXNjIGFib3V0IGRyb3BwZWQKIHBhY2tldHMKClsgVXBzdHJlYW0gY29tbWl0IDdlODVk YzhjYjM1YWJmMTY0NTVmMTUxMWYwNjcwYjU3YzFhODQ2MDggXQoKV2hlbiBibGFja2hvbGUgaXMg dXNlZCBvbiB0b3Agb2YgY2xhc3NmdWwgcWRpc2MgbGlrZSBoZnNjIGl0IGJyZWFrcwpxbGVuIGFu ZCBiYWNrbG9nIGNvdW50ZXJzIGJlY2F1c2UgcGFja2V0cyBhcmUgZGlzYXBwZWFyIHdpdGhvdXQg bm90aWNlLgoKSW4gSEZTQyBub24temVybyBxbGVuIHdoaWxlIGFsbCBjbGFzc2VzIGFyZSBpbmFj dGl2ZSB0cmlnZ2VycyB3YXJuaW5nOgpXQVJOSU5HOiAuLi4gYXQgbmV0L3NjaGVkL3NjaF9oZnNj LmM6MTM5MyBoZnNjX2RlcXVldWUrMHhiYTQvMHhlOTAgW3NjaF9oZnNjXQphbmQgc2NoZWR1bGVz IHdhdGNoZG9nIHdvcmsgZW5kbGVzc2x5LgoKVGhpcyBwYXRjaCByZXR1cm4gX19ORVRfWE1JVF9C WVBBU1MgaW4gYWRkaXRpb24gdG8gTkVUX1hNSVRfU1VDQ0VTUywKdGhpcyBmbGFnIHRlbGxzIHVw cGVyIGxheWVyOiB0aGlzIHBhY2tldCBpcyBnb25lIGFuZCBpc24ndCBxdWV1ZWQuCgpTaWduZWQt b2ZmLWJ5OiBLb25zdGFudGluIEtobGVibmlrb3YgPGtobGVibmlrb3ZAeWFuZGV4LXRlYW0ucnU+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvc2NoZWQvc2NoX2JsYWNraG9sZS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9ibGFj a2hvbGUuYyBiL25ldC9zY2hlZC9zY2hfYmxhY2tob2xlLmMKaW5kZXggYzk4YTYxZTk4MGJhLi45 YzRjMmJiNTQ3ZDcgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfYmxhY2tob2xlLmMKKysrIGIv bmV0L3NjaGVkL3NjaF9ibGFja2hvbGUuYwpAQCAtMjEsNyArMjEsNyBAQCBzdGF0aWMgaW50IGJs YWNraG9sZV9lbnF1ZXVlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBRZGlzYyAqc2NoLAog CQkJICAgICBzdHJ1Y3Qgc2tfYnVmZiAqKnRvX2ZyZWUpCiB7CiAJcWRpc2NfZHJvcChza2IsIHNj aCwgdG9fZnJlZSk7Ci0JcmV0dXJuIE5FVF9YTUlUX1NVQ0NFU1M7CisJcmV0dXJuIE5FVF9YTUlU X1NVQ0NFU1MgfCBfX05FVF9YTUlUX0JZUEFTUzsKIH0KIAogc3RhdGljIHN0cnVjdCBza19idWZm ICpibGFja2hvbGVfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNjaCkKLS0gCjIuMTcuMQoKCkZyb20g NTFkNjg4OTNiZjE1Mzc1YmFmMTNlYmE0YTBkNjZhMTIxM2MzYThhOCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBU dWUsIDE5IEp1biAyMDE4IDE5OjE4OjUwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMi8zNV0gbmV0 OiBzdW5nZW06IGZpeCByeCBjaGVja3N1bSBzdXBwb3J0CgpbIFVwc3RyZWFtIGNvbW1pdCAxMmIw MzU1OGNlZjZkNjU1ZDBkMzk0ZjVlOThhNmZkMDdjMWY2YzBmIF0KCkFmdGVyIGNvbW1pdCA4ODA3 OGQ5OGQxYmIgKCJuZXQ6IHBza2JfdHJpbV9yY3N1bSgpIGFuZCBDSEVDS1NVTV9DT01QTEVURQph cmUgZnJpZW5kcyIpLCBzdW5nZW0gb3duZXJzIHJlcG9ydGVkIHRoZSBpbmZhbW91cyAiZXRoMDog aHcgY3N1bSBmYWlsdXJlIgptZXNzYWdlLgoKQ0hFQ0tTVU1fQ09NUExFVEUgaGFzIGluIGZhY3Qg bmV2ZXIgd29ya2VkIGZvciB0aGlzIGRyaXZlciwgYnV0IHRoaXMKd2FzIG1hc2tlZCBieSB0aGUg ZmFjdCB0aGF0IHVwcGVyIHN0YWNrcyBoYWQgdG8gc3RyaXAgdGhlIEZDUywgYW5kCnRoZXJlZm9y ZSBza2ItPmlwX3N1bW1lZCB3YXMgc2V0IGJhY2sgdG8gQ0hFQ0tTVU1fTk9ORSBiZWZvcmUKbXkg cmVjZW50IGNoYW5nZS4KCkRyaXZlciBjb25maWd1cmVzIGEgbnVtYmVyIG9mIGJ5dGVzIHRvIHNr aXAgd2hlbiB0aGUgY2hpcCBjb21wdXRlcwp0aGUgY2hlY2tzdW0sIGFuZCBmb3Igc29tZSByZWFz b24gb25seSBoYWxmIG9mIHRoZSBFdGhlcm5ldCBoZWFkZXIKd2FzIHNraXBwZWQuCgpUaGVuIGEg c2Vjb25kIHByb2JsZW0gaXMgdGhhdCB3ZSBzaG91bGQgc3RyaXAgdGhlIEZDUyBieSBkZWZhdWx0 LAp1bmxlc3MgdGhlIGRyaXZlciBpcyB1cGRhdGVkIHRvIGV2ZW50dWFsbHkgc3VwcG9ydCBORVRJ Rl9GX1JYRkNTIGluCnRoZSBmdXR1cmUuCgpGaW5hbGx5LCBhIGRyaXZlciBzaG91bGQgY2hlY2sg aWYgTkVUSUZfRl9SWENTVU0gZmVhdHVyZSBpcyBlbmFibGVkCm9yIG5vdCwgc28gdGhhdCB0aGUg YWRtaW4gY2FuIHR1cm4gb2ZmIHJ4IGNoZWNrc3VtIGlmIHdhbnRlZC4KCk1hbnkgdGhhbmtzIHRv IEFuZHJlYXMgU2Nod2FiIGFuZCBNYXRoaWV1IE1hbGF0ZXJyZSBmb3IgdGhlaXIKaGVscCBpbiBk ZWJ1Z2dpbmcgdGhpcyBpc3N1ZS4KClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6 ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IE1lZWxpcyBSb29zIDxtcm9vc0BsaW51eC5lZT4K UmVwb3J0ZWQtYnk6IE1hdGhpZXUgTWFsYXRlcnJlIDxtYWxhdEBkZWJpYW4ub3JnPgpSZXBvcnRl ZC1ieTogQW5kcmVhcyBTY2h3YWIgPHNjaHdhYkBsaW51eC1tNjhrLm9yZz4KVGVzdGVkLWJ5OiBB bmRyZWFzIFNjaHdhYiA8c2Nod2FiQGxpbnV4LW02OGsub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJu ZXQvc3VuL3N1bmdlbS5jIHwgMjIgKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDEyIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L3N1bi9zdW5nZW0uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N1bi9z dW5nZW0uYwppbmRleCBmYTYwN2QwNjJjYjMuLjE1Y2QwODZlM2Y0NyAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvc3VuL3N1bmdlbS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3N1bi9zdW5nZW0uYwpAQCAtNTksOCArNTksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3N1bmdlbV9w aHkuaD4KICNpbmNsdWRlICJzdW5nZW0uaCIKIAotLyogU3RyaXBwaW5nIEZDUyBpcyBjYXVzaW5n IHByb2JsZW1zLCBkaXNhYmxlZCBmb3Igbm93ICovCi0jdW5kZWYgU1RSSVBfRkNTCisjZGVmaW5l IFNUUklQX0ZDUwogCiAjZGVmaW5lIERFRkFVTFRfTVNHCShORVRJRl9NU0dfRFJWCQl8IFwKIAkJ CSBORVRJRl9NU0dfUFJPQkUJfCBcCkBAIC00MzQsNyArNDMzLDcgQEAgc3RhdGljIGludCBnZW1f cnhtYWNfcmVzZXQoc3RydWN0IGdlbSAqZ3ApCiAJd3JpdGVsKGRlc2NfZG1hICYgMHhmZmZmZmZm ZiwgZ3AtPnJlZ3MgKyBSWERNQV9EQkxPVyk7CiAJd3JpdGVsKFJYX1JJTkdfU0laRSAtIDQsIGdw LT5yZWdzICsgUlhETUFfS0lDSyk7CiAJdmFsID0gKFJYRE1BX0NGR19CQVNFIHwgKFJYX09GRlNF VCA8PCAxMCkgfAotCSAgICAgICAoKDE0IC8gMikgPDwgMTMpIHwgUlhETUFfQ0ZHX0ZUSFJFU0hf MTI4KTsKKwkgICAgICAgKEVUSF9ITEVOIDw8IDEzKSB8IFJYRE1BX0NGR19GVEhSRVNIXzEyOCk7 CiAJd3JpdGVsKHZhbCwgZ3AtPnJlZ3MgKyBSWERNQV9DRkcpOwogCWlmIChyZWFkbChncC0+cmVn cyArIEdSRUdfQklGQ0ZHKSAmIEdSRUdfQklGQ0ZHX002NkVOKQogCQl3cml0ZWwoKCg1ICYgUlhE TUFfQkxBTktfSVBLVFMpIHwKQEAgLTc1OSw3ICs3NTgsNiBAQCBzdGF0aWMgaW50IGdlbV9yeChz dHJ1Y3QgZ2VtICpncCwgaW50IHdvcmtfdG9fZG8pCiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9 IGdwLT5kZXY7CiAJaW50IGVudHJ5LCBkcm9wcywgd29ya19kb25lID0gMDsKIAl1MzIgZG9uZTsK LQlfX3N1bTE2IGNzdW07CiAKIAlpZiAobmV0aWZfbXNnX3J4X3N0YXR1cyhncCkpCiAJCXByaW50 ayhLRVJOX0RFQlVHICIlczogcnggaW50ZXJydXB0LCBkb25lOiAlZCwgcnhfbmV3OiAlZFxuIiwK QEAgLTg1NCw5ICs4NTIsMTMgQEAgc3RhdGljIGludCBnZW1fcngoc3RydWN0IGdlbSAqZ3AsIGlu dCB3b3JrX3RvX2RvKQogCQkJc2tiID0gY29weV9za2I7CiAJCX0KIAotCQljc3VtID0gKF9fZm9y Y2UgX19zdW0xNilodG9ucygoc3RhdHVzICYgUlhEQ1RSTF9UQ1BDU1VNKSBeIDB4ZmZmZik7Ci0J CXNrYi0+Y3N1bSA9IGNzdW1fdW5mb2xkKGNzdW0pOwotCQlza2ItPmlwX3N1bW1lZCA9IENIRUNL U1VNX0NPTVBMRVRFOworCQlpZiAobGlrZWx5KGRldi0+ZmVhdHVyZXMgJiBORVRJRl9GX1JYQ1NV TSkpIHsKKwkJCV9fc3VtMTYgY3N1bTsKKworCQkJY3N1bSA9IChfX2ZvcmNlIF9fc3VtMTYpaHRv bnMoKHN0YXR1cyAmIFJYRENUUkxfVENQQ1NVTSkgXiAweGZmZmYpOworCQkJc2tiLT5jc3VtID0g Y3N1bV91bmZvbGQoY3N1bSk7CisJCQlza2ItPmlwX3N1bW1lZCA9IENIRUNLU1VNX0NPTVBMRVRF OworCQl9CiAJCXNrYi0+cHJvdG9jb2wgPSBldGhfdHlwZV90cmFucyhza2IsIGdwLT5kZXYpOwog CiAJCW5hcGlfZ3JvX3JlY2VpdmUoJmdwLT5uYXBpLCBza2IpOwpAQCAtMTc2MCw3ICsxNzYyLDcg QEAgc3RhdGljIHZvaWQgZ2VtX2luaXRfZG1hKHN0cnVjdCBnZW0gKmdwKQogCXdyaXRlbCgwLCBn cC0+cmVncyArIFRYRE1BX0tJQ0spOwogCiAJdmFsID0gKFJYRE1BX0NGR19CQVNFIHwgKFJYX09G RlNFVCA8PCAxMCkgfAotCSAgICAgICAoKDE0IC8gMikgPDwgMTMpIHwgUlhETUFfQ0ZHX0ZUSFJF U0hfMTI4KTsKKwkgICAgICAgKEVUSF9ITEVOIDw8IDEzKSB8IFJYRE1BX0NGR19GVEhSRVNIXzEy OCk7CiAJd3JpdGVsKHZhbCwgZ3AtPnJlZ3MgKyBSWERNQV9DRkcpOwogCiAJd3JpdGVsKGRlc2Nf ZG1hID4+IDMyLCBncC0+cmVncyArIFJYRE1BX0RCSEkpOwpAQCAtMjk4Niw4ICsyOTg4LDggQEAg c3RhdGljIGludCBnZW1faW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVj dCBwY2lfZGV2aWNlX2lkICplbnQpCiAJcGNpX3NldF9kcnZkYXRhKHBkZXYsIGRldik7CiAKIAkv KiBXZSBjYW4gZG8gc2NhdHRlci9nYXRoZXIgYW5kIEhXIGNoZWNrc3VtICovCi0JZGV2LT5od19m ZWF0dXJlcyA9IE5FVElGX0ZfU0cgfCBORVRJRl9GX0hXX0NTVU07Ci0JZGV2LT5mZWF0dXJlcyB8 PSBkZXYtPmh3X2ZlYXR1cmVzIHwgTkVUSUZfRl9SWENTVU07CisJZGV2LT5od19mZWF0dXJlcyA9 IE5FVElGX0ZfU0cgfCBORVRJRl9GX0hXX0NTVU0gfCBORVRJRl9GX1JYQ1NVTTsKKwlkZXYtPmZl YXR1cmVzID0gZGV2LT5od19mZWF0dXJlczsKIAlpZiAocGNpX3VzaW5nX2RhYykKIAkJZGV2LT5m ZWF0dXJlcyB8PSBORVRJRl9GX0hJR0hETUE7CiAKLS0gCjIuMTcuMQoKCkZyb20gYjM5YjY3MTgy OTg5ODNiOGUzOTA4OTJiYjM5MTliZGE4YTJiOTQyNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpEYXRlOiBNb24sIDE4IEp1biAy MDE4IDEyOjMwOjM3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMy8zNV0gbmV0L3RjcDogRml4IHNv Y2tldCBsb29rdXBzIHdpdGggU09fQklORFRPREVWSUNFCgpbIFVwc3RyZWFtIGNvbW1pdCA4YzQz YmQxNzA2ODg1YmExYWNmYTg4ZGEwMmJjNjBhMmVjMTZmNjhjIF0KClNpbWlsYXIgdG8gNjk2Nzhi Y2Q0ZDJkICgidWRwOiBmaXggU09fQklORFRPREVWSUNFIiksIFRDUCBzb2NrZXQgbG9va3Vwcwpu ZWVkIHRvIGZhaWwgaWYgZGV2X21hdGNoIGlzIG5vdCB0cnVlLiBDdXJyZW50bHksIGEgcGFja2V0 IHRvIGEgZ2l2ZW4gcG9ydApjYW4gbWF0Y2ggYSBzb2NrZXQgYm91bmQgdG8gZGV2aWNlIHdoZW4g aXQgc2hvdWxkIG5vdC4gSW4gdGhlIFZSRiBjYXNlLAp0aGlzIGNhdXNlcyB0aGUgbG9va3VwIHRv IGhpdCBhIFZSRiBzb2NrZXQgYW5kIG5vdCBhIGdsb2JhbCBzb2NrZXQKcmVzdWx0aW5nIGluIGEg cmVzcG9uc2UgdHJ5aW5nIHRvIGdvIHRocm91Z2ggdGhlIFZSRiB3aGVuIGl0IHNob3VsZCBub3Qu CgpGaXhlczogM2ZhNmY2MTZhN2E0ZCAoIm5ldDogaXB2NDogYWRkIHNlY29uZCBkaWYgdG8gaW5l dCBzb2NrZXQgbG9va3VwcyIpCkZpeGVzOiA0Mjk3YTBlZjA4NTcyICgibmV0OiBpcHY2OiBhZGQg c2Vjb25kIGRpZiB0byBpbmV0NiBzb2NrZXQgbG9va3VwcyIpClJlcG9ydGVkLWJ5OiBMb3UgQmVy Z2VyIDxsYmVyZ2VyQGxhYm4ubmV0PgpEaWFnbm9zZWQtYnk6IFJlbmF0byBXZXN0cGhhbCA8cmVu YXRvQG9wZW5zb3VyY2Vyb3V0aW5nLm9yZz4KVGVzdGVkLWJ5OiBSZW5hdG8gV2VzdHBoYWwgPHJl bmF0b0BvcGVuc291cmNlcm91dGluZy5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIEFoZXJuIDxk c2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jICB8IDQgKystLQog bmV0L2lwdjYvaW5ldDZfaGFzaHRhYmxlcy5jIHwgNCArKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDQg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0 X2hhc2h0YWJsZXMuYyBiL25ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jCmluZGV4IGU3ZDE1ZmIw ZDk0ZC4uMjRiMDY2YzMyZTA2IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMu YworKysgYi9uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYwpAQCAtMTg4LDkgKzE4OCw5IEBAIHN0 YXRpYyBpbmxpbmUgaW50IGNvbXB1dGVfc2NvcmUoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbmV0 ICpuZXQsCiAJCQlib29sIGRldl9tYXRjaCA9IChzay0+c2tfYm91bmRfZGV2X2lmID09IGRpZiB8 fAogCQkJCQkgIHNrLT5za19ib3VuZF9kZXZfaWYgPT0gc2RpZik7CiAKLQkJCWlmIChleGFjdF9k aWYgJiYgIWRldl9tYXRjaCkKKwkJCWlmICghZGV2X21hdGNoKQogCQkJCXJldHVybiAtMTsKLQkJ CWlmIChzay0+c2tfYm91bmRfZGV2X2lmICYmIGRldl9tYXRjaCkKKwkJCWlmIChzay0+c2tfYm91 bmRfZGV2X2lmKQogCQkJCXNjb3JlICs9IDQ7CiAJCX0KIAkJaWYgKHNrLT5za19pbmNvbWluZ19j cHUgPT0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKSkKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2luZXQ2 X2hhc2h0YWJsZXMuYyBiL25ldC9pcHY2L2luZXQ2X2hhc2h0YWJsZXMuYwppbmRleCBiMDE4NThm NWRlYjEuLjZkYzkzYWMyODI2MSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaW5ldDZfaGFzaHRhYmxl cy5jCisrKyBiL25ldC9pcHY2L2luZXQ2X2hhc2h0YWJsZXMuYwpAQCAtMTEzLDkgKzExMyw5IEBA IHN0YXRpYyBpbmxpbmUgaW50IGNvbXB1dGVfc2NvcmUoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qg bmV0ICpuZXQsCiAJCQlib29sIGRldl9tYXRjaCA9IChzay0+c2tfYm91bmRfZGV2X2lmID09IGRp ZiB8fAogCQkJCQkgIHNrLT5za19ib3VuZF9kZXZfaWYgPT0gc2RpZik7CiAKLQkJCWlmIChleGFj dF9kaWYgJiYgIWRldl9tYXRjaCkKKwkJCWlmICghZGV2X21hdGNoKQogCQkJCXJldHVybiAtMTsK LQkJCWlmIChzay0+c2tfYm91bmRfZGV2X2lmICYmIGRldl9tYXRjaCkKKwkJCWlmIChzay0+c2tf Ym91bmRfZGV2X2lmKQogCQkJCXNjb3JlKys7CiAJCX0KIAkJaWYgKHNrLT5za19pbmNvbWluZ19j cHUgPT0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKSkKLS0gCjIuMTcuMQoKCkZyb20gNTliOWNiZjFk ZTE3YzYzMDRmNGE5ZTRiNjc0YTk4ZTIyM2RlNGJlOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogU3VkYXJzYW5hIFJlZGR5IEthbGx1cnUgPHN1ZGFyc2FuYS5rYWxsdXJ1QGNhdml1bS5j b20+CkRhdGU6IFN1biwgMSBKdWwgMjAxOCAyMDowMzowOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg MjQvMzVdIHFlZGU6IEFkdmVyc3Rpc2Ugc29mdHdhcmUgdGltZXN0YW1wIGNhcHMgd2hlbiBQSEMg aXMKIG5vdCBhdmFpbGFibGUuCgpbIFVwc3RyZWFtIGNvbW1pdCA4MmE0ZTcxYjE1NjVkZWE4Mzg3 ZjU0NTAzZTgwNmNmMzc0ZTc3OWVjIF0KCldoZW4gcHRwIGNsb2NrIGlzIG5vdCBhdmFpbGFibGUg Zm9yIGEgUEYgKGUuZy4sIGhpZ2hlciBQRnMgaW4gTlBBUiBtb2RlKSwKZ2V0LXRzaW5mbygpIGNh bGxiYWNrIHNob3VsZCByZXR1cm4gdGhlIHNvZnR3YXJlIHRpbWVzdGFtcCBjYXBhYmlsaXRpZXMK aW5zdGVhZCBvZiByZXR1cm5pbmcgdGhlIGVycm9yLgoKRml4ZXM6IDRjNTUyMTVjICgicWVkZTog QWRkIGRyaXZlciBzdXBwb3J0IGZvciBQVFAiKQpTaWduZWQtb2ZmLWJ5OiBTdWRhcnNhbmEgUmVk ZHkgS2FsbHVydSA8U3VkYXJzYW5hLkthbGx1cnVAY2F2aXVtLmNvbT4KU2lnbmVkLW9mZi1ieTog TWljaGFsIEthbGRlcm9uIDxNaWNoYWwuS2FsZGVyb25AY2F2aXVtLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L3Fsb2dpYy9xZWRlL3FlZGVfcHRwLmMgfCAxMCArKysrKysrKy0tCiAxIGZpbGUg Y2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWRlL3FlZGVfcHRwLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9xbG9naWMvcWVkZS9xZWRlX3B0cC5jCmluZGV4IDliMjI4MGJhZGFmNy4uNDc1ZjZh ZTVkNGIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkZS9xZWRl X3B0cC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWRlL3FlZGVfcHRwLmMK QEAgLTMzNyw4ICszMzcsMTQgQEAgaW50IHFlZGVfcHRwX2dldF90c19pbmZvKHN0cnVjdCBxZWRl X2RldiAqZWRldiwgc3RydWN0IGV0aHRvb2xfdHNfaW5mbyAqaW5mbykKIHsKIAlzdHJ1Y3QgcWVk ZV9wdHAgKnB0cCA9IGVkZXYtPnB0cDsKIAotCWlmICghcHRwKQotCQlyZXR1cm4gLUVJTzsKKwlp ZiAoIXB0cCkgeworCQlpbmZvLT5zb190aW1lc3RhbXBpbmcgPSBTT0ZfVElNRVNUQU1QSU5HX1RY X1NPRlRXQVJFIHwKKwkJCQkJU09GX1RJTUVTVEFNUElOR19SWF9TT0ZUV0FSRSB8CisJCQkJCVNP Rl9USU1FU1RBTVBJTkdfU09GVFdBUkU7CisJCWluZm8tPnBoY19pbmRleCA9IC0xOworCisJCXJl dHVybiAwOworCX0KIAogCWluZm8tPnNvX3RpbWVzdGFtcGluZyA9IFNPRl9USU1FU1RBTVBJTkdf VFhfU09GVFdBUkUgfAogCQkJCVNPRl9USU1FU1RBTVBJTkdfUlhfU09GVFdBUkUgfAotLSAKMi4x Ny4xCgoKRnJvbSBmMzllOTZhYmIxMzljYzY0NDk4ZjA2ZmFhOTYwYzc2MTRhZDY4NTdlIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdWRhcnNhbmEgUmVkZHkgS2FsbHVydSA8c3VkYXJz YW5hLmthbGx1cnVAY2F2aXVtLmNvbT4KRGF0ZTogU3VuLCAxIEp1bCAyMDE4IDIwOjAzOjA2IC0w NzAwClN1YmplY3Q6IFtQQVRDSCAyNS8zNV0gcWVkOiBGaXggc2V0dGluZyBvZiBpbmNvcnJlY3Qg ZXN3aXRjaCBtb2RlLgoKWyBVcHN0cmVhbSBjb21taXQgNTM4ZjhkMDBiYThiYjQxN2M0ZDllNzZj NjFkZWU1OWQ4MTJkODI4NyBdCgpCeSBkZWZhdWx0LCBkcml2ZXIgc2V0cyB0aGUgZXN3aXRjaCBt b2RlIGluY29ycmVjdGx5IGFzIFZFQiAodmlydHVhbApFdGhlcm5ldCBicmlkZ2luZykuCk5lZWQg dG8gc2V0IFZFQiBlc3dpdGNoIG1vZGUgb25seSB3aGVuIHNyaW92IGlzIGVuYWJsZWQsIGFuZCBp dCBzaG91bGQgYmUKdG8gc2V0IE5PTkUgYnkgZGVmYXVsdC4gVGhlIHBhdGNoIGluY29ycG9yYXRl cyB0aGlzIGNoYW5nZS4KCkZpeGVzOiAwZmVmYmZiYWEgKCJxZWQqOiBNYW5hZ2VtZW50IGZpcm13 YXJlIC0gbm90aWZpY2F0aW9ucyBhbmQgZGVmYXVsdHMiKQpTaWduZWQtb2ZmLWJ5OiBTdWRhcnNh bmEgUmVkZHkgS2FsbHVydSA8U3VkYXJzYW5hLkthbGx1cnVAY2F2aXVtLmNvbT4KU2lnbmVkLW9m Zi1ieTogTWljaGFsIEthbGRlcm9uIDxNaWNoYWwuS2FsZGVyb25AY2F2aXVtLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX2Rldi5jICAgfCAgMiArLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRfc3Jpb3YuYyB8IDE5ICsrKysrKysrKysrKysrKysr LS0KIDIgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkL3FlZF9kZXYuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX2Rldi5jCmluZGV4IDU4YTY4OWZiMDRk Yi4uZWYyMzc0Njk5NzI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMv cWVkL3FlZF9kZXYuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkL3FlZF9k ZXYuYwpAQCAtMTc4Miw3ICsxNzgyLDcgQEAgaW50IHFlZF9od19pbml0KHN0cnVjdCBxZWRfZGV2 ICpjZGV2LCBzdHJ1Y3QgcWVkX2h3X2luaXRfcGFyYW1zICpwX3BhcmFtcykKIAkJCURQX0lORk8o cF9od2ZuLCAiRmFpbGVkIHRvIHVwZGF0ZSBkcml2ZXIgc3RhdGVcbiIpOwogCiAJCXJjID0gcWVk X21jcF9vdl91cGRhdGVfZXN3aXRjaChwX2h3Zm4sIHBfaHdmbi0+cF9tYWluX3B0dCwKLQkJCQkJ ICAgICAgIFFFRF9PVl9FU1dJVENIX1ZFQik7CisJCQkJCSAgICAgICBRRURfT1ZfRVNXSVRDSF9O T05FKTsKIAkJaWYgKHJjKQogCQkJRFBfSU5GTyhwX2h3Zm4sICJGYWlsZWQgdG8gdXBkYXRlIGVz d2l0Y2ggbW9kZVxuIik7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxv Z2ljL3FlZC9xZWRfc3Jpb3YuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVk X3NyaW92LmMKaW5kZXggM2Y0MGIxZGU3OTU3Li5kMDhmZTM1MGFiNmMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX3NyaW92LmMKKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRfc3Jpb3YuYwpAQCAtNDM5Niw2ICs0Mzk2LDggQEAg c3RhdGljIHZvaWQgcWVkX3NyaW92X2VuYWJsZV9xaWRfY29uZmlnKHN0cnVjdCBxZWRfaHdmbiAq aHdmbiwKIHN0YXRpYyBpbnQgcWVkX3NyaW92X2VuYWJsZShzdHJ1Y3QgcWVkX2RldiAqY2Rldiwg aW50IG51bSkKIHsKIAlzdHJ1Y3QgcWVkX2lvdl92Zl9pbml0X3BhcmFtcyBwYXJhbXM7CisJc3Ry dWN0IHFlZF9od2ZuICpod2ZuOworCXN0cnVjdCBxZWRfcHR0ICpwdHQ7CiAJaW50IGksIGosIHJj OwogCiAJaWYgKG51bSA+PSBSRVNDX05VTSgmY2Rldi0+aHdmbnNbMF0sIFFFRF9WUE9SVCkpIHsK QEAgLTQ0MDgsOCArNDQxMCw4IEBAIHN0YXRpYyBpbnQgcWVkX3NyaW92X2VuYWJsZShzdHJ1Y3Qg cWVkX2RldiAqY2RldiwgaW50IG51bSkKIAogCS8qIEluaXRpYWxpemUgSFcgZm9yIFZGIGFjY2Vz cyAqLwogCWZvcl9lYWNoX2h3Zm4oY2RldiwgaikgewotCQlzdHJ1Y3QgcWVkX2h3Zm4gKmh3Zm4g PSAmY2Rldi0+aHdmbnNbal07Ci0JCXN0cnVjdCBxZWRfcHR0ICpwdHQgPSBxZWRfcHR0X2FjcXVp cmUoaHdmbik7CisJCWh3Zm4gPSAmY2Rldi0+aHdmbnNbal07CisJCXB0dCA9IHFlZF9wdHRfYWNx dWlyZShod2ZuKTsKIAogCQkvKiBNYWtlIHN1cmUgbm90IHRvIHVzZSBtb3JlIHRoYW4gMTYgcXVl dWVzIHBlciBWRiAqLwogCQlwYXJhbXMubnVtX3F1ZXVlcyA9IG1pbl90KGludCwKQEAgLTQ0NDUs NiArNDQ0NywxOSBAQCBzdGF0aWMgaW50IHFlZF9zcmlvdl9lbmFibGUoc3RydWN0IHFlZF9kZXYg KmNkZXYsIGludCBudW0pCiAJCWdvdG8gZXJyOwogCX0KIAorCWh3Zm4gPSBRRURfTEVBRElOR19I V0ZOKGNkZXYpOworCXB0dCA9IHFlZF9wdHRfYWNxdWlyZShod2ZuKTsKKwlpZiAoIXB0dCkgewor CQlEUF9FUlIoaHdmbiwgIkZhaWxlZCB0byBhY3F1aXJlIHB0dFxuIik7CisJCXJjID0gLUVCVVNZ OworCQlnb3RvIGVycjsKKwl9CisKKwlyYyA9IHFlZF9tY3Bfb3ZfdXBkYXRlX2Vzd2l0Y2goaHdm biwgcHR0LCBRRURfT1ZfRVNXSVRDSF9WRUIpOworCWlmIChyYykKKwkJRFBfSU5GTyhjZGV2LCAi RmFpbGVkIHRvIHVwZGF0ZSBlc3dpdGNoIG1vZGVcbiIpOworCXFlZF9wdHRfcmVsZWFzZShod2Zu LCBwdHQpOworCiAJcmV0dXJuIG51bTsKIAogZXJyOgotLSAKMi4xNy4xCgoKRnJvbSA5NzczOWZh M2ZkMThkODMzZGIxYjY3MjRmOWMzZmFhMDM5NGZmZWI4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBTdWRhcnNhbmEgUmVkZHkgS2FsbHVydSA8c3VkYXJzYW5hLmthbGx1cnVAY2F2aXVt LmNvbT4KRGF0ZTogU3VuLCAxIEp1bCAyMDE4IDIwOjAzOjA3IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAyNi8zNV0gcWVkOiBGaXggdXNlIG9mIGluY29ycmVjdCBzaXplIGluIG1lbWNweSBjYWxsLgoK WyBVcHN0cmVhbSBjb21taXQgY2M5YjI3Y2RmN2JkM2M4NmRmNzM0Mzk3NThhYzE1NjRiYzhmNWJi ZSBdCgpVc2UgdGhlIGNvcnJlY3Qgc2l6ZSB2YWx1ZSB3aGlsZSBjb3B5aW5nIGNoYXNzaXMvcG9y dCBpZCB2YWx1ZXMuCgpGaXhlczogNmFkOGM2MzJlICgicWVkOiBBZGQgc3VwcG9ydCBmb3IgcXVl cnkvY29uZmlnIGRjYnguIikKU2lnbmVkLW9mZi1ieTogU3VkYXJzYW5hIFJlZGR5IEthbGx1cnUg PFN1ZGFyc2FuYS5LYWxsdXJ1QGNhdml1bS5jb20+ClNpZ25lZC1vZmYtYnk6IE1pY2hhbCBLYWxk ZXJvbiA8TWljaGFsLkthbGRlcm9uQGNhdml1bS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9x bG9naWMvcWVkL3FlZF9kY2J4LmMgfCA4ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L3Fsb2dpYy9xZWQvcWVkX2RjYnguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9x ZWQvcWVkX2RjYnguYwppbmRleCA4ZjZjY2MwYzM5ZTUuLmIzMDY5NjFiMDJmZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRfZGNieC5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX2RjYnguYwpAQCAtNzAwLDkgKzcwMCw5IEBA IHFlZF9kY2J4X2dldF9sb2NhbF9sbGRwX3BhcmFtcyhzdHJ1Y3QgcWVkX2h3Zm4gKnBfaHdmbiwK IAlwX2xvY2FsID0gJnBfaHdmbi0+cF9kY2J4X2luZm8tPmxsZHBfbG9jYWxbTExEUF9ORUFSRVNU X0JSSURHRV07CiAKIAltZW1jcHkocGFyYW1zLT5sbGRwX2xvY2FsLmxvY2FsX2NoYXNzaXNfaWQs IHBfbG9jYWwtPmxvY2FsX2NoYXNzaXNfaWQsCi0JICAgICAgIEFSUkFZX1NJWkUocF9sb2NhbC0+ bG9jYWxfY2hhc3Npc19pZCkpOworCSAgICAgICBzaXplb2YocF9sb2NhbC0+bG9jYWxfY2hhc3Np c19pZCkpOwogCW1lbWNweShwYXJhbXMtPmxsZHBfbG9jYWwubG9jYWxfcG9ydF9pZCwgcF9sb2Nh bC0+bG9jYWxfcG9ydF9pZCwKLQkgICAgICAgQVJSQVlfU0laRShwX2xvY2FsLT5sb2NhbF9wb3J0 X2lkKSk7CisJICAgICAgIHNpemVvZihwX2xvY2FsLT5sb2NhbF9wb3J0X2lkKSk7CiB9CiAKIHN0 YXRpYyB2b2lkCkBAIC03MTQsOSArNzE0LDkgQEAgcWVkX2RjYnhfZ2V0X3JlbW90ZV9sbGRwX3Bh cmFtcyhzdHJ1Y3QgcWVkX2h3Zm4gKnBfaHdmbiwKIAlwX3JlbW90ZSA9ICZwX2h3Zm4tPnBfZGNi eF9pbmZvLT5sbGRwX3JlbW90ZVtMTERQX05FQVJFU1RfQlJJREdFXTsKIAogCW1lbWNweShwYXJh bXMtPmxsZHBfcmVtb3RlLnBlZXJfY2hhc3Npc19pZCwgcF9yZW1vdGUtPnBlZXJfY2hhc3Npc19p ZCwKLQkgICAgICAgQVJSQVlfU0laRShwX3JlbW90ZS0+cGVlcl9jaGFzc2lzX2lkKSk7CisJICAg ICAgIHNpemVvZihwX3JlbW90ZS0+cGVlcl9jaGFzc2lzX2lkKSk7CiAJbWVtY3B5KHBhcmFtcy0+ bGxkcF9yZW1vdGUucGVlcl9wb3J0X2lkLCBwX3JlbW90ZS0+cGVlcl9wb3J0X2lkLAotCSAgICAg ICBBUlJBWV9TSVpFKHBfcmVtb3RlLT5wZWVyX3BvcnRfaWQpKTsKKwkgICAgICAgc2l6ZW9mKHBf cmVtb3RlLT5wZWVyX3BvcnRfaWQpKTsKIH0KIAogc3RhdGljIGludAotLSAKMi4xNy4xCgoKRnJv bSA2ZTFkMDNkMWI4OWNkMjE5MjkzMDAxY2ZmZWZiMGRjMjRjMzQxZTM0IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBTdWRhcnNhbmEgUmVkZHkgS2FsbHVydSA8c3VkYXJzYW5hLmthbGx1 cnVAY2F2aXVtLmNvbT4KRGF0ZTogU3VuLCAxIEp1bCAyMDE4IDIwOjAzOjA1IC0wNzAwClN1Ympl Y3Q6IFtQQVRDSCAyNy8zNV0gcWVkOiBMaW1pdCBtc2l4IHZlY3RvcnMgaW4ga2R1bXAga2VybmVs IHRvIHRoZSBtaW5pbXVtCiByZXF1aXJlZCBjb3VudC4KClsgVXBzdHJlYW0gY29tbWl0IGJiNzg1 OGJhMTEwMmY4MjQ3MGE5MTdlMDQxZmQyM2U2Mzg1YzMxYmUgXQoKTWVtb3J5IHNpemUgaXMgbGlt aXRlZCBpbiB0aGUga2R1bXAga2VybmVsIGVudmlyb25tZW50LiBBbGxvY2F0aW9uIG9mIG1vcmUK bXNpeC12ZWN0b3JzIChvciBxdWV1ZXMpIGNvbnN1bWVzIGZldyB0ZW5zIG9mIE1CcyBvZiBtZW1v cnksIHdoaWNoIG1pZ2h0CmxlYWQgdG8gdGhlIGtkdW1wIGtlcm5lbCBmYWlsdXJlLgpUaGlzIHBh dGNoIGFkZHMgY2hhbmdlcyB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIE1TSS1YIHZlY3RvcnMgaW4g a2R1bXAKa2VybmVsIHRvIG1pbmltdW0gcmVxdWlyZWQgdmFsdWUgKGkuZS4sIDIgcGVyIGVuZ2lu ZSkuCgpGaXhlczogZmU1NmI5ZTZhICgicWVkOiBBZGQgbW9kdWxlIHdpdGggYmFzaWMgY29tbW9u IHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBTdWRhcnNhbmEgUmVkZHkgS2FsbHVydSA8U3VkYXJz YW5hLkthbGx1cnVAY2F2aXVtLmNvbT4KU2lnbmVkLW9mZi1ieTogTWljaGFsIEthbGRlcm9uIDxN aWNoYWwuS2FsZGVyb25AY2F2aXVtLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9x ZWQvcWVkX21haW4uYyB8IDggKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkL3FlZF9tYWlu LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkL3FlZF9tYWluLmMKaW5kZXggMjc4 MzI4ODVhODdmLi4yYzk1ODkyMWRmYjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3Fsb2dpYy9xZWQvcWVkX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMv cWVkL3FlZF9tYWluLmMKQEAgLTc3OSw2ICs3NzksMTQgQEAgc3RhdGljIGludCBxZWRfc2xvd3Bh dGhfc2V0dXBfaW50KHN0cnVjdCBxZWRfZGV2ICpjZGV2LAogCS8qIFdlIHdhbnQgYSBtaW5pbXVt IG9mIG9uZSBzbG93cGF0aCBhbmQgb25lIGZhc3RwYXRoIHZlY3RvciBwZXIgaHdmbiAqLwogCWNk ZXYtPmludF9wYXJhbXMuaW4ubWluX21zaXhfY250ID0gY2Rldi0+bnVtX2h3Zm5zICogMjsKIAor CWlmIChpc19rZHVtcF9rZXJuZWwoKSkgeworCQlEUF9JTkZPKGNkZXYsCisJCQkiS2R1bXAga2Vy bmVsOiBMaW1pdCB0aGUgbWF4IG51bWJlciBvZiByZXF1ZXN0ZWQgTVNJLVggdmVjdG9ycyB0byAl aGRcbiIsCisJCQljZGV2LT5pbnRfcGFyYW1zLmluLm1pbl9tc2l4X2NudCk7CisJCWNkZXYtPmlu dF9wYXJhbXMuaW4ubnVtX3ZlY3RvcnMgPQorCQkJY2Rldi0+aW50X3BhcmFtcy5pbi5taW5fbXNp eF9jbnQ7CisJfQorCiAJcmMgPSBxZWRfc2V0X2ludF9tb2RlKGNkZXYsIGZhbHNlKTsKIAlpZiAo cmMpICB7CiAJCURQX0VSUihjZGV2LCAicWVkX3Nsb3dwYXRoX3NldHVwX2ludCBFUlJcbiIpOwot LSAKMi4xNy4xCgoKRnJvbSBiZTQyMjgzZTcxNjgyZDcwOGQ0MmRmYTZhYWFhYjY1Yjg2YTk5YjJm IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVrc2FuZGVyIE1vcmdhZG8gPGFsZWtz YW5kZXJAYWxla3NhbmRlci5lcz4KRGF0ZTogU2F0LCAyMyBKdW4gMjAxOCAyMzoyMjo1MiArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMjgvMzVdIHFtaV93d2FuOiBhZGQgc3VwcG9ydCBmb3IgdGhlIERl bGwgV2lyZWxlc3MgNTgyMWUKIG1vZHVsZQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6 IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJp dAoKWyBVcHN0cmVhbSBjb21taXQgZTdlMTk3ZWRkMDljMjU3NzRiNGYxMmNhYjE5ZjlkNTQ2MmYy NDBmNCBdCgpUaGlzIG1vZHVsZSBleHBvc2VzIHR3byBVU0IgY29uZmlndXJhdGlvbnM6IGEgUU1J K0FUIGNhcGFibGUgc2V0dXAgb24KVVNCIGNvbmZpZyAjMSBhbmQgYSBNQklNIGNhcGFibGUgc2V0 dXAgb24gVVNCIGNvbmZpZyAjMi4KCkJ5IGRlZmF1bHQgdGhlIGtlcm5lbCB3aWxsIGNob29zZSB0 aGUgTUJJTSBjYXBhYmxlIGNvbmZpZ3VyYXRpb24gYXMKbG9uZyBhcyB0aGUgY2RjX21iaW0gZHJp dmVyIGlzIGF2YWlsYWJsZS4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yCnRoZSBRTUkgcG9y dCBpbiB0aGUgc2Vjb25kYXJ5IGNvbmZpZ3VyYXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBBbGVrc2Fu ZGVyIE1vcmdhZG8gPGFsZWtzYW5kZXJAYWxla3NhbmRlci5lcz4KQWNrZWQtYnk6IEJqw7hybiBN b3JrIDxiam9ybkBtb3JrLm5vPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgfCAxICsKIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Vz Yi9xbWlfd3dhbi5jIGIvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKaW5kZXggOGUwNmYzMDhj ZTQ0Li41ZTBiMzQzZGZiZGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5j CisrKyBiL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCkBAIC0xMjQ0LDYgKzEyNDQsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcHJvZHVjdHNbXSA9IHsKIAl7UU1JX0ZJ WEVEX0lOVEYoMHg0MTNjLCAweDgxYjMsIDgpfSwJLyogRGVsbCBXaXJlbGVzcyA1ODA5ZSBHb2Jp KFRNKSA0RyBMVEUgTW9iaWxlIEJyb2FkYmFuZCBDYXJkIChyZXYzKSAqLwogCXtRTUlfRklYRURf SU5URigweDQxM2MsIDB4ODFiNiwgOCl9LAkvKiBEZWxsIFdpcmVsZXNzIDU4MTFlICovCiAJe1FN SV9GSVhFRF9JTlRGKDB4NDEzYywgMHg4MWI2LCAxMCl9LAkvKiBEZWxsIFdpcmVsZXNzIDU4MTFl ICovCisJe1FNSV9GSVhFRF9JTlRGKDB4NDEzYywgMHg4MWQ3LCAxKX0sCS8qIERlbGwgV2lyZWxl c3MgNTgyMWUgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgwM2YwLCAweDRlMWQsIDgpfSwJLyogSFAg bHQ0MTExIExURS9FVi1ETy9IU1BBKyBHb2JpIDRHIE1vZHVsZSAqLwogCXtRTUlfRklYRURfSU5U RigweDAzZjAsIDB4OWQxZCwgMSl9LAkvKiBIUCBsdDQxMjAgU25hcGRyYWdvbiBYNSBMVEUgKi8K IAl7UU1JX0ZJWEVEX0lOVEYoMHgyMmRlLCAweDkwNjEsIDMpfSwJLyogV2VUZWxlY29tIFdQRC02 MDBOICovCi0tIAoyLjE3LjEKCgpGcm9tIDczYjQyZDJkYzNiOTg2MGQ5NWUwMTRmNjY5ODE4NmFi ZjBiNzc3OTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEppcmkgU2xhYnkgPGpzbGFi eUBzdXNlLmN6PgpEYXRlOiBNb24sIDI1IEp1biAyMDE4IDA5OjI2OjI3ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAyOS8zNV0gcjgxNTI6IG5hcGkgaGFuZ3VwIGZpeCBhZnRlciBkaXNjb25uZWN0Cgpb IFVwc3RyZWFtIGNvbW1pdCAwZWUxZjQ3MzQ5NjdhZjgzMjFlY2ViYWY5Yzc0MjIxYWNlMzRmMmQ1 IF0KCldoZW4gdW5wbHVnZ2luZyBhbiByODE1MiBhZGFwdGVyIHdoaWxlIHRoZSBpbnRlcmZhY2Ug aXMgVVAsIHRoZSBOSUMKYmVjb21lcyB1bnVzYWJsZS4gIHVzYi0+ZGlzY29ubmVjdCAoYWthIHJ0 bDgxNTJfZGlzY29ubmVjdCkgZGVsZXRlcwpuYXBpLiBUaGVuLCBydGw4MTUyX2Rpc2Nvbm5lY3Qg Y2FsbHMgdW5yZWdpc3Rlcl9uZXRkZXYgYW5kIHRoYXQgaW52b2tlcwpuZXRkZXYtPm5kb19zdG9w IChha2EgcnRsODE1Ml9jbG9zZSkuIHJ0bDgxNTJfY2xvc2UgdHJpZXMgdG8KbmFwaV9kaXNhYmxl LCBidXQgdGhlIG5hcGkgaXMgYWxyZWFkeSBkZWxldGVkIGJ5IGRpc2Nvbm5lY3QgYWJvdmUuIFNv CnRoZSBmaXJzdCB3aGlsZSBsb29wIGluIG5hcGlfZGlzYWJsZSBuZXZlciBmaW5pc2hlcy4gVGhp cyByZXN1bHRzIGluCmNvbXBsZXRlIGRlYWRsb2NrIG9mIHRoZSBuZXR3b3JrIGxheWVyIGFzIHRo ZXJlIGlzIHJ0bmxfbXV0ZXggaGVsZCBieQp1bnJlZ2lzdGVyX25ldGRldi4KClNvIGF2b2lkIHRo ZSBjYWxsIHRvIG5hcGlfZGlzYWJsZSBpbiBydGw4MTUyX2Nsb3NlIHdoZW4gdGhlIGRldmljZSBp cwphbHJlYWR5IGdvbmUuCgpUaGUgb3RoZXIgY2FsbHMgdG8gdXNiX2tpbGxfdXJiLCBjYW5jZWxf ZGVsYXllZF93b3JrX3N5bmMsCm5ldGlmX3N0b3BfcXVldWUgZXRjLiBzZWVtIHRvIGJlIGZpbmUu IFRoZSB1cmIgYW5kIG5ldGRldiBpcyBub3QKZGVzdHJveWVkIHlldC4KClNpZ25lZC1vZmYtYnk6 IEppcmkgU2xhYnkgPGpzbGFieUBzdXNlLmN6PgpDYzogbGludXgtdXNiQHZnZXIua2VybmVsLm9y ZwpDYzogbmV0ZGV2QHZnZXIua2VybmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL3I4MTUyLmMgfCAz ICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9yODE1Mi5jIGIvZHJpdmVycy9uZXQvdXNiL3I4MTUy LmMKaW5kZXggYWE4OGI2NDBjYjZjLi4wZmE2NGNjMWEwMTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3VzYi9yODE1Mi5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9yODE1Mi5jCkBAIC0zOTU5LDcg KzM5NTksOCBAQCBzdGF0aWMgaW50IHJ0bDgxNTJfY2xvc2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5l dGRldikKICNpZmRlZiBDT05GSUdfUE1fU0xFRVAKIAl1bnJlZ2lzdGVyX3BtX25vdGlmaWVyKCZ0 cC0+cG1fbm90aWZpZXIpOwogI2VuZGlmCi0JbmFwaV9kaXNhYmxlKCZ0cC0+bmFwaSk7CisJaWYg KCF0ZXN0X2JpdChSVEw4MTUyX1VOUExVRywgJnRwLT5mbGFncykpCisJCW5hcGlfZGlzYWJsZSgm dHAtPm5hcGkpOwogCWNsZWFyX2JpdChXT1JLX0VOQUJMRSwgJnRwLT5mbGFncyk7CiAJdXNiX2tp bGxfdXJiKHRwLT5pbnRyX3VyYik7CiAJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZ0cC0+c2No ZWR1bGUpOwotLSAKMi4xNy4xCgoKRnJvbSA3MTQ1OGJlNjJjZWQ4OThjZWZjM2JjZTA5NGExOTFh ZGM4ZTZiYWQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCaGFkcmFtIFZhcmthIDx2 YmhhZHJhbUBudmlkaWEuY29tPgpEYXRlOiBTdW4sIDE3IEp1biAyMDE4IDIwOjAyOjA1ICswNTMw ClN1YmplY3Q6IFtQQVRDSCAzMC8zNV0gc3RtbWFjOiBmaXggRE1BIGNoYW5uZWwgaGFuZyBpbiBo YWxmLWR1cGxleCBtb2RlCgpbIFVwc3RyZWFtIGNvbW1pdCBiNmNmZmZhN2FkOTIzYzczZjMxN2Vh NTBmZDRlYmNiM2I0YjY2NjljIF0KCkhXIGRvZXMgbm90IHN1cHBvcnQgSGFsZi1kdXBsZXggbW9k ZSBpbiBtdWx0aS1xdWV1ZQpzY2VuYXJpby4gRml4IGl0IGJ5IG5vdCBhZHZlcnRpc2luZyB0aGUg SGFsZi1EdXBsZXgKbW9kZSBpZiBtdWx0aS1xdWV1ZSBlbmFibGVkLgoKU2lnbmVkLW9mZi1ieTog QmhhZHJhbSBWYXJrYSA8dmJoYWRyYW1AbnZpZGlhLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgfCAxMCArKysrKysrKysrCiAxIGZpbGUgY2hh bmdlZCwgMTAgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1p Y3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCmluZGV4IDk4NjZkMmUzNGNkZC4uMjdmMmU2NTBlMjdi IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNf bWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19t YWluLmMKQEAgLTkxNCw2ICs5MTQsNyBAQCBzdGF0aWMgdm9pZCBzdG1tYWNfY2hlY2tfcGNzX21v ZGUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KQogc3RhdGljIGludCBzdG1tYWNfaW5pdF9waHko c3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSBu ZXRkZXZfcHJpdihkZXYpOworCXUzMiB0eF9jbnQgPSBwcml2LT5wbGF0LT50eF9xdWV1ZXNfdG9f dXNlOwogCXN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXY7CiAJY2hhciBwaHlfaWRfZm10W01JSV9C VVNfSURfU0laRSArIDNdOwogCWNoYXIgYnVzX2lkW01JSV9CVVNfSURfU0laRV07CkBAIC05NTQs NiArOTU1LDE1IEBAIHN0YXRpYyBpbnQgc3RtbWFjX2luaXRfcGh5KHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYpCiAJCXBoeWRldi0+YWR2ZXJ0aXNpbmcgJj0gfihTVVBQT1JURURfMTAwMGJhc2VUX0hh bGYgfAogCQkJCQkgU1VQUE9SVEVEXzEwMDBiYXNlVF9GdWxsKTsKIAorCS8qCisJICogSGFsZi1k dXBsZXggbW9kZSBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlxdWV1ZQorCSAqIGhhbGYtZHVwbGV4 IGNhbiBvbmx5IHdvcmtzIHdpdGggc2luZ2xlIHF1ZXVlCisJICovCisJaWYgKHR4X2NudCA+IDEp CisJCXBoeWRldi0+c3VwcG9ydGVkICY9IH4oU1VQUE9SVEVEXzEwMDBiYXNlVF9IYWxmIHwKKwkJ CQkgICAgICAgU1VQUE9SVEVEXzEwMGJhc2VUX0hhbGYgfAorCQkJCSAgICAgICBTVVBQT1JURURf MTBiYXNlVF9IYWxmKTsKKwogCS8qCiAJICogQnJva2VuIEhXIGlzIHNvbWV0aW1lcyBtaXNzaW5n IHRoZSBwdWxsLXVwIHJlc2lzdG9yIG9uIHRoZQogCSAqIE1ESU8gbGluZSwgd2hpY2ggcmVzdWx0 cyBpbiByZWFkcyB0byBub24tZXhpc3RlbnQgZGV2aWNlcyByZXR1cm5pbmcKLS0gCjIuMTcuMQoK CkZyb20gN2YxM2NlOTQ0YWJmYjVlYTA5ODI1NmMzMjU2N2JkOTNhZWFhYWM0NSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRG9yb24gUm9iZXJ0cy1LZWRlcyA8ZG9yb25ya0BmYi5jb20+ CkRhdGU6IFR1ZSwgMjYgSnVuIDIwMTggMTg6MzM6MzMgLTA3MDAKU3ViamVjdDogW1BBVENIIDMx LzM1XSBzdHJwYXJzZXI6IFJlbW92ZSBlYXJseSBlYXRlbiB0byBmaXggZnVsbCB0Y3AgcmVjZWl2 ZQogYnVmZmVyIHN0YWxsCgpbIFVwc3RyZWFtIGNvbW1pdCA5NzdjNzExNGViZGEyZTc0NmExMTQ4 NDBkM2E4NzVlMGNkYjgyNmZiIF0KCk9uIHJlY2V2aW5nIGFuIGluY29tcGxldGUgbWVzc2FnZSwg dGhlIGV4aXN0aW5nIGNvZGUgc3RvcmVzIHRoZQpyZW1haW5pbmcgbGVuZ3RoIG9mIHRoZSBjbG9u ZWQgc2tiIGluIHRoZSBlYXJseV9lYXRlbiBmaWVsZCBpbnN0ZWFkIG9mCmluY3JlbWVudGluZyB0 aGUgdmFsdWUgcmV0dXJuZWQgYnkgX19zdHJwX3JlY3YuIFRoaXMgZGVmZXJzIGludm9jYXRpb24K b2Ygc29ja19yZnJlZSBmb3IgdGhlIGN1cnJlbnQgc2tiIHVudGlsIHRoZSBuZXh0IGludm9jYXRp b24gb2YKX19zdHJwX3JlY3YsIHdoaWNoIHJldHVybnMgZWFybHlfZWF0ZW4gaWYgZWFybHlfZWF0 ZW4gaXMgbm9uLXplcm8uCgpUaGlzIGJlaGF2aW9yIGNhdXNlcyBhIHN0YWxsIHdoZW4gdGhlIGN1 cnJlbnQgbWVzc2FnZSBvY2N1cGllcyB0aGUgdmVyeQp0YWlsIGVuZCBvZiBhIG1hc3NpdmUgc2ti LCBhbmQgc3RycF9wZWVrL25lZWRfYnl0ZXMgaW5kaWNhdGVzIHRoYXQgdGhlCnJlbWFpbmRlciBv ZiB0aGUgY3VycmVudCBtZXNzYWdlIGhhcyB5ZXQgdG8gYXJyaXZlIG9uIHRoZSBzb2NrZXQuIFRo ZQpUQ1AgcmVjZWl2ZSBidWZmZXIgaXMgdG90YWxseSBmdWxsLCBjYXVzaW5nIHRoZSBUQ1Agd2lu ZG93IHRvIGdvIHRvCnplcm8sIHNvIHRoZSByZW1haW5kZXIgb2YgdGhlIG1lc3NhZ2Ugd2lsbCBu ZXZlciBhcnJpdmUuCgpJbmNyZW1lbnRpbmcgdGhlIHZhbHVlIHJldHVybmVkIGJ5IF9fc3RycF9y ZWN2IGJ5IHRoZSBhbW91bnQgb3RoZXJ3aXNlCnN0b3JlZCBpbiBlYXJseV9lYXRlbiBwcmV2ZW50 cyBzdGFsbHMgb2YgdGhpcyBuYXR1cmUuCgpTaWduZWQtb2ZmLWJ5OiBEb3JvbiBSb2JlcnRzLUtl ZGVzIDxkb3JvbnJrQGZiLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zdHJwYXJzZXIvc3RycGFyc2VyLmMgfCAxNyArLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxNiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc3RycGFyc2VyL3N0cnBhcnNlci5jIGIvbmV0L3N0cnBh cnNlci9zdHJwYXJzZXIuYwppbmRleCBjNzQxMzY1Zjc3ZGEuLmE2OGM3NTRlODRlYSAxMDA2NDQK LS0tIGEvbmV0L3N0cnBhcnNlci9zdHJwYXJzZXIuYworKysgYi9uZXQvc3RycGFyc2VyL3N0cnBh cnNlci5jCkBAIC0zNSw3ICszNSw2IEBAIHN0cnVjdCBfc3RycF9tc2cgewogCSAqLwogCXN0cnVj dCBzdHJwX21zZyBzdHJwOwogCWludCBhY2N1bV9sZW47Ci0JaW50IGVhcmx5X2VhdGVuOwogfTsK IAogc3RhdGljIGlubGluZSBzdHJ1Y3QgX3N0cnBfbXNnICpfc3RycF9tc2coc3RydWN0IHNrX2J1 ZmYgKnNrYikKQEAgLTExNSwyMCArMTE0LDYgQEAgc3RhdGljIGludCBfX3N0cnBfcmVjdihyZWFk X2Rlc2NyaXB0b3JfdCAqZGVzYywgc3RydWN0IHNrX2J1ZmYgKm9yaWdfc2tiLAogCWhlYWQgPSBz dHJwLT5za2JfaGVhZDsKIAlpZiAoaGVhZCkgewogCQkvKiBNZXNzYWdlIGFscmVhZHkgaW4gcHJv Z3Jlc3MgKi8KLQotCQlzdG0gPSBfc3RycF9tc2coaGVhZCk7Ci0JCWlmICh1bmxpa2VseShzdG0t PmVhcmx5X2VhdGVuKSkgewotCQkJLyogQWxyZWFkeSBzb21lIG51bWJlciBvZiBieXRlcyBvbiB0 aGUgcmVjZWl2ZSBzb2NrCi0JCQkgKiBkYXRhIHNhdmVkIGluIHNrYl9oZWFkLCBqdXN0IGluZGlj YXRlIHRoZXkKLQkJCSAqIGFyZSBjb25zdW1lZC4KLQkJCSAqLwotCQkJZWF0ZW4gPSBvcmlnX2xl biA8PSBzdG0tPmVhcmx5X2VhdGVuID8KLQkJCQlvcmlnX2xlbiA6IHN0bS0+ZWFybHlfZWF0ZW47 Ci0JCQlzdG0tPmVhcmx5X2VhdGVuIC09IGVhdGVuOwotCi0JCQlyZXR1cm4gZWF0ZW47Ci0JCX0K LQogCQlpZiAodW5saWtlbHkob3JpZ19vZmZzZXQpKSB7CiAJCQkvKiBHZXR0aW5nIGRhdGEgd2l0 aCBhIG5vbi16ZXJvIG9mZnNldCB3aGVuIGEgbWVzc2FnZSBpcwogCQkJICogaW4gcHJvZ3Jlc3Mg aXMgbm90IGV4cGVjdGVkLiBJZiBpdCBkb2VzIGhhcHBlbiwgd2UKQEAgLTI5Nyw5ICsyODIsOSBA QCBzdGF0aWMgaW50IF9fc3RycF9yZWN2KHJlYWRfZGVzY3JpcHRvcl90ICpkZXNjLCBzdHJ1Y3Qg c2tfYnVmZiAqb3JpZ19za2IsCiAJCQkJfQogCiAJCQkJc3RtLT5hY2N1bV9sZW4gKz0gY2FuZF9s ZW47CisJCQkJZWF0ZW4gKz0gY2FuZF9sZW47CiAJCQkJc3RycC0+bmVlZF9ieXRlcyA9IHN0bS0+ c3RycC5mdWxsX2xlbiAtCiAJCQkJCQkgICAgICAgc3RtLT5hY2N1bV9sZW47Ci0JCQkJc3RtLT5l YXJseV9lYXRlbiA9IGNhbmRfbGVuOwogCQkJCVNUUlBfU1RBVFNfQUREKHN0cnAtPnN0YXRzLmJ5 dGVzLCBjYW5kX2xlbik7CiAJCQkJZGVzYy0+Y291bnQgPSAwOyAvKiBTdG9wIHJlYWRpbmcgc29j a2V0ICovCiAJCQkJYnJlYWs7Ci0tIAoyLjE3LjEKCgpGcm9tIDRmYWUxNDBmNzJhYmIyMWVjMTY4 MjIwNzJmMTI4YTQ5ZGU3NTA1ZmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFl1Y2h1 bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpEYXRlOiBXZWQsIDI3IEp1biAyMDE4IDE2OjA0 OjQ4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzMi8zNV0gdGNwOiBmaXggRmFzdCBPcGVuIGtleSBl bmRpYW5uZXNzCgpbIFVwc3RyZWFtIGNvbW1pdCBjODYwZTk5N2U5MTcwYTZkNjhmOWQxZTZlMmNm NjFmNTcyMTkxYWFmIF0KCkZhc3QgT3BlbiBrZXkgY291bGQgYmUgc3RvcmVkIGluIGRpZmZlcmVu dCBlbmRpYW4gYmFzZWQgb24gdGhlIENQVS4KUHJldmlvdXNseSBob3N0cyBpbiBkaWZmZXJlbnQg ZW5kaWFubmVzcyBpbiBhIHNlcnZlciBmYXJtIHVzaW5nCnRoZSBzYW1lIGtleSBjb25maWcgKHN5 c2N0bCB2YWx1ZSkgd291bGQgcHJvZHVjZSBkaWZmZXJlbnQgY29va2llcy4KVGhpcyBwYXRjaCBm aXhlcyBpdCBieSBhbHdheXMgc3RvcmluZyBpdCBhcyBsaXR0bGUgZW5kaWFuIHRvIGtlZXAKc2Ft ZSBBUEkgZm9yIExFIGhvc3RzLgoKUmVwb3J0ZWQtYnk6IERhbmllbGUgSWFtYXJ0aW5vIDxkYW5p ZWxlaUBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29v Z2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9pcHY0L3N5c2N0bF9uZXRfaXB2NC5jIHwgMTggKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9u ZXQvaXB2NC9zeXNjdGxfbmV0X2lwdjQuYyBiL25ldC9pcHY0L3N5c2N0bF9uZXRfaXB2NC5jCmlu ZGV4IDA5ODllNzM5ZDA5OC4uNWEyOWRjNTA4M2EzIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9zeXNj dGxfbmV0X2lwdjQuYworKysgYi9uZXQvaXB2NC9zeXNjdGxfbmV0X2lwdjQuYwpAQCAtMjU4LDgg KzI1OCw5IEBAIHN0YXRpYyBpbnQgcHJvY190Y3BfZmFzdG9wZW5fa2V5KHN0cnVjdCBjdGxfdGFi bGUgKmN0bCwgaW50IHdyaXRlLAogewogCXN0cnVjdCBjdGxfdGFibGUgdGJsID0geyAubWF4bGVu ID0gKFRDUF9GQVNUT1BFTl9LRVlfTEVOR1RIICogMiArIDEwKSB9OwogCXN0cnVjdCB0Y3BfZmFz dG9wZW5fY29udGV4dCAqY3R4dDsKLQlpbnQgcmV0OwogCXUzMiAgdXNlcl9rZXlbNF07IC8qIDE2 IGJ5dGVzLCBtYXRjaGluZyBUQ1BfRkFTVE9QRU5fS0VZX0xFTkdUSCAqLworCV9fbGUzMiBrZXlb NF07CisJaW50IHJldCwgaTsKIAogCXRibC5kYXRhID0ga21hbGxvYyh0YmwubWF4bGVuLCBHRlBf S0VSTkVMKTsKIAlpZiAoIXRibC5kYXRhKQpAQCAtMjY4LDExICsyNjksMTQgQEAgc3RhdGljIGlu dCBwcm9jX3RjcF9mYXN0b3Blbl9rZXkoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUs CiAJcmN1X3JlYWRfbG9jaygpOwogCWN0eHQgPSByY3VfZGVyZWZlcmVuY2UodGNwX2Zhc3RvcGVu X2N0eCk7CiAJaWYgKGN0eHQpCi0JCW1lbWNweSh1c2VyX2tleSwgY3R4dC0+a2V5LCBUQ1BfRkFT VE9QRU5fS0VZX0xFTkdUSCk7CisJCW1lbWNweShrZXksIGN0eHQtPmtleSwgVENQX0ZBU1RPUEVO X0tFWV9MRU5HVEgpOwogCWVsc2UKLQkJbWVtc2V0KHVzZXJfa2V5LCAwLCBzaXplb2YodXNlcl9r ZXkpKTsKKwkJbWVtc2V0KGtleSwgMCwgc2l6ZW9mKGtleSkpOwogCXJjdV9yZWFkX3VubG9jaygp OwogCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoa2V5KTsgaSsrKQorCQl1c2VyX2tleVtp XSA9IGxlMzJfdG9fY3B1KGtleVtpXSk7CisKIAlzbnByaW50Zih0YmwuZGF0YSwgdGJsLm1heGxl biwgIiUwOHgtJTA4eC0lMDh4LSUwOHgiLAogCQl1c2VyX2tleVswXSwgdXNlcl9rZXlbMV0sIHVz ZXJfa2V5WzJdLCB1c2VyX2tleVszXSk7CiAJcmV0ID0gcHJvY19kb3N0cmluZygmdGJsLCB3cml0 ZSwgYnVmZmVyLCBsZW5wLCBwcG9zKTsKQEAgLTI4OCwxMiArMjkyLDE2IEBAIHN0YXRpYyBpbnQg cHJvY190Y3BfZmFzdG9wZW5fa2V5KHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAog CQkgKiBmaXJzdCBpbnZvY2F0aW9uIG9mIHRjcF9mYXN0b3Blbl9jb29raWVfZ2VuCiAJCSAqLwog CQl0Y3BfZmFzdG9wZW5faW5pdF9rZXlfb25jZShmYWxzZSk7Ci0JCXRjcF9mYXN0b3Blbl9yZXNl dF9jaXBoZXIodXNlcl9rZXksIFRDUF9GQVNUT1BFTl9LRVlfTEVOR1RIKTsKKworCQlmb3IgKGkg PSAwOyBpIDwgQVJSQVlfU0laRSh1c2VyX2tleSk7IGkrKykKKwkJCWtleVtpXSA9IGNwdV90b19s ZTMyKHVzZXJfa2V5W2ldKTsKKworCQl0Y3BfZmFzdG9wZW5fcmVzZXRfY2lwaGVyKGtleSwgVENQ X0ZBU1RPUEVOX0tFWV9MRU5HVEgpOwogCX0KIAogYmFkX2tleToKIAlwcl9kZWJ1ZygicHJvYyBG TyBrZXkgc2V0IDB4JXgtJXgtJXgtJXggPC0gMHglczogJXVcbiIsCi0JICAgICAgIHVzZXJfa2V5 WzBdLCB1c2VyX2tleVsxXSwgdXNlcl9rZXlbMl0sIHVzZXJfa2V5WzNdLAorCQkgdXNlcl9rZXlb MF0sIHVzZXJfa2V5WzFdLCB1c2VyX2tleVsyXSwgdXNlcl9rZXlbM10sCiAJICAgICAgIChjaGFy ICopdGJsLmRhdGEsIHJldCk7CiAJa2ZyZWUodGJsLmRhdGEpOwogCXJldHVybiByZXQ7Ci0tIAoy LjE3LjEKCgpGcm9tIDI1OTkzZTBmNjY2MTg0Y2JjMTdlODQzYTY1YzkyNDM4OGYzMzI3MGUgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9JbHBvPTIwSj1DMz1BNHJ2aW5l bj89IDxpbHBvLmphcnZpbmVuQGhlbHNpbmtpLmZpPgpEYXRlOiBGcmksIDI5IEp1biAyMDE4IDEz OjA3OjUzICswMzAwClN1YmplY3Q6IFtQQVRDSCAzMy8zNV0gdGNwOiBwcmV2ZW50IGJvZ3VzIEZS VE8gdW5kb3Mgd2l0aCBub24tU0FDSyBmbG93cwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5 cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzog OGJpdAoKWyBVcHN0cmVhbSBjb21taXQgMTIzNmYyMmZiYWUxNWRmMzczNmFiNGE5ODRjNjRjMGM2 ZWU2MjU0YyBdCgpJZiBTQUNLIGlzIG5vdCBlbmFibGVkIGFuZCB0aGUgZmlyc3QgY3VtdWxhdGl2 ZSBBQ0sgYWZ0ZXIgdGhlIFJUTwpyZXRyYW5zbWlzc2lvbiBjb3ZlcnMgbW9yZSB0aGFuIHRoZSBy ZXRyYW5zbWl0dGVkIHNrYiwgYSBzcHVyaW91cwpGUlRPIHVuZG8gd2lsbCB0cmlnZ2VyIChhc3N1 bWluZyBGUlRPIGlzIGVuYWJsZWQgZm9yIHRoYXQgUlRPKS4KVGhlIHJlYXNvbiBpcyB0aGF0IGFu eSBub24tcmV0cmFuc21pdHRlZCBzZWdtZW50IGFja25vd2xlZGdlZCB3aWxsCnNldCBGTEFHX09S SUdfU0FDS19BQ0tFRCBpbiB0Y3BfY2xlYW5fcnR4X3F1ZXVlIGV2ZW4gaWYgdGhlcmUgaXMKbm8g aW5kaWNhdGlvbiB0aGF0IGl0IHdvdWxkIGhhdmUgYmVlbiBkZWxpdmVyZWQgZm9yIHJlYWwgKHRo ZQpzY29yZWJvYXJkIGlzIG5vdCBrZXB0IHdpdGggVENQQ0JfU0FDS0VEX0FDS0VEIGJpdHMgaW4g dGhlIG5vbi1TQUNLCmNhc2Ugc28gdGhlIGNoZWNrIGZvciB0aGF0IGJpdCB3b24ndCBoZWxwIGxp a2UgaXQgZG9lcyB3aXRoIFNBQ0spLgpIYXZpbmcgRkxBR19PUklHX1NBQ0tfQUNLRUQgc2V0IHJl c3VsdHMgaW4gdGhlIHNwdXJpb3VzIEZSVE8gdW5kbwppbiB0Y3BfcHJvY2Vzc19sb3NzLgoKV2Ug bmVlZCB0byB1c2UgbW9yZSBzdHJpY3QgY29uZGl0aW9uIGZvciBub24tU0FDSyBjYXNlIGFuZCBj aGVjawp0aGF0IG5vbmUgb2YgdGhlIGN1bXVsYXRpdmVseSBBQ0tlZCBzZWdtZW50cyB3ZXJlIHJl dHJhbnNtaXR0ZWQKdG8gcHJvdmUgdGhhdCBwcm9ncmVzcyBpcyBkdWUgdG8gb3JpZ2luYWwgdHJh bnNtaXNzaW9ucy4gT25seSB0aGVuCmtlZXAgRkxBR19PUklHX1NBQ0tfQUNLRUQgc2V0LCBhbGxv d2luZyBGUlRPIHVuZG8gdG8gcHJvY2VlZCBpbgpub24tU0FDSyBjYXNlLgoKKEZMQUdfT1JJR19T QUNLX0FDS0VEIGlzIHBsYW5uZWQgdG8gYmUgcmVuYW1lZCB0byBGTEFHX09SSUdfUFJPR1JFU1MK dG8gYmV0dGVyIGluZGljYXRlIGl0cyBwdXJwb3NlIGJ1dCB0byBrZWVwIHRoaXMgY2hhbmdlIG1p bmltYWwsIGl0CndpbGwgYmUgZG9uZSBpbiBhbm90aGVyIHBhdGNoKS4KCkJlc2lkZXMgYnVyc3Rp bmVzcyBhbmQgY29uZ2VzdGlvbiBjb250cm9sIHZpb2xhdGlvbnMsIHRoaXMgcHJvYmxlbQpjYW4g cmVzdWx0IGluIFJUTyBsb29wOiBXaGVuIHRoZSBsb3NzIHJlY292ZXJ5IGlzIHByZW1hdHVyZWx5 CnVuZG9lZCwgb25seSBuZXcgZGF0YSB3aWxsIGJlIHRyYW5zbWl0dGVkIChpZiBhdmFpbGFibGUp IGFuZAp0aGUgbmV4dCByZXRyYW5zbWlzc2lvbiBjYW4gb2NjdXIgb25seSBhZnRlciBhIG5ldyBS VE8gd2hpY2ggaW4gY2FzZQpvZiBtdWx0aXBsZSBsb3NzZXMgKHRoYXQgYXJlIG5vdCBmb3IgY29u c2VjdXRpdmUgcGFja2V0cykgcmVxdWlyZXMKb25lIFJUTyBwZXIgbG9zcyB0byByZWNvdmVyLgoK U2lnbmVkLW9mZi1ieTogSWxwbyBKw6RydmluZW4gPGlscG8uamFydmluZW5AaGVsc2lua2kuZmk+ ClRlc3RlZC1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+CkFja2VkLWJ5 OiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcF9pbnB1 dC5jIHwgOSArKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9uZXQvaXB2NC90Y3BfaW5wdXQuYyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCmluZGV4 IGYwY2FmZjMxMzllZC4uNTcxMWIxYjEyZDI4IDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaW5w dXQuYworKysgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwpAQCAtMzE5NCw2ICszMTk0LDE1IEBAIHN0 YXRpYyBpbnQgdGNwX2NsZWFuX3J0eF9xdWV1ZShzdHJ1Y3Qgc29jayAqc2ssIGludCBwcmlvcl9m YWNrZXRzLAogCiAJCWlmICh0Y3BfaXNfcmVubyh0cCkpIHsKIAkJCXRjcF9yZW1vdmVfcmVub19z YWNrcyhzaywgcGt0c19hY2tlZCk7CisKKwkJCS8qIElmIGFueSBvZiB0aGUgY3VtdWxhdGl2ZWx5 IEFDS2VkIHNlZ21lbnRzIHdhcworCQkJICogcmV0cmFuc21pdHRlZCwgbm9uLVNBQ0sgY2FzZSBj YW5ub3QgY29uZmlybSB0aGF0CisJCQkgKiBwcm9ncmVzcyB3YXMgZHVlIHRvIG9yaWdpbmFsIHRy YW5zbWlzc2lvbiBkdWUgdG8KKwkJCSAqIGxhY2sgb2YgVENQQ0JfU0FDS0VEX0FDS0VEIGJpdHMg ZXZlbiBpZiBzb21lIG9mCisJCQkgKiB0aGUgcGFja2V0cyBtYXkgaGF2ZSBiZWVuIG5ldmVyIHJl dHJhbnNtaXR0ZWQuCisJCQkgKi8KKwkJCWlmIChmbGFnICYgRkxBR19SRVRSQU5TX0RBVEFfQUNL RUQpCisJCQkJZmxhZyAmPSB+RkxBR19PUklHX1NBQ0tfQUNLRUQ7CiAJCX0gZWxzZSB7CiAJCQlp bnQgZGVsdGE7CiAKLS0gCjIuMTcuMQoKCkZyb20gNDRmNzYyMzA5MDY0MmEyNWZhYmQ4NzlkZGRk MmE1ODJmZTA2YzgzMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFzb24gV2FuZyA8 amFzb3dhbmdAcmVkaGF0LmNvbT4KRGF0ZTogVGh1LCAyMSBKdW4gMjAxOCAxMzoxMTozMSArMDgw MApTdWJqZWN0OiBbUEFUQ0ggMzQvMzVdIHZob3N0X25ldDogdmFsaWRhdGUgc29jayBiZWZvcmUg dHJ5aW5nIHRvIHB1dCBpdHMgZmQKClsgVXBzdHJlYW0gY29tbWl0IGI4ZjFmNjU4ODJmMDc5MTMx NTdjNDQ2NzNhZjdlYzBiMzA4ZDAzZWIgXQoKU29jayB3aWxsIGJlIE5VTEwgaWYgd2UgcGFzcyAt MSB0byB2aG9zdF9uZXRfc2V0X2JhY2tlbmQoKSwgYnV0IHdoZW4Kd2UgbWVldCBlcnJvcnMgZHVy aW5nIHVidWYgYWxsb2NhdGlvbiwgdGhlIGNvZGUgZG9lcyBub3QgY2hlY2sgZm9yCk5VTEwgYmVm b3JlIGNhbGxpbmcgc29ja2ZkX3B1dCgpLCB0aGlzIHdpbGwgbGVhZCBOVUxMCmRlcmVmZXJlbmNp bmcuIEZpeGluZyBieSBjaGVja2luZyBzb2NrIHBvaW50ZXIgYmVmb3JlLgoKRml4ZXM6IGJhYjYz MmQ2OWVlNCAoInZob3N0OiB2aG9zdCBUWCB6ZXJvLWNvcHkgc3VwcG9ydCIpClJlcG9ydGVkLWJ5 OiBEYW4gQ2FycGVudGVyIDxkYW4uY2FycGVudGVyQG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3Zob3N0L25ldC5jIHwg MyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3Zob3N0L25ldC5jIGIvZHJpdmVycy92aG9zdC9uZXQuYwppbmRl eCBiMGQ2MDZiMmQwNmMuLjYxMjNiNGRkODYzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aG9zdC9u ZXQuYworKysgYi9kcml2ZXJzL3Zob3N0L25ldC5jCkBAIC0xMTg2LDcgKzExODYsOCBAQCBzdGF0 aWMgbG9uZyB2aG9zdF9uZXRfc2V0X2JhY2tlbmQoc3RydWN0IHZob3N0X25ldCAqbiwgdW5zaWdu ZWQgaW5kZXgsIGludCBmZCkKIAlpZiAodWJ1ZnMpCiAJCXZob3N0X25ldF91YnVmX3B1dF93YWl0 X2FuZF9mcmVlKHVidWZzKTsKIGVycl91YnVmczoKLQlzb2NrZmRfcHV0KHNvY2spOworCWlmIChz b2NrKQorCQlzb2NrZmRfcHV0KHNvY2spOwogZXJyX3ZxOgogCW11dGV4X3VubG9jaygmdnEtPm11 dGV4KTsKIGVycjoKLS0gCjIuMTcuMQoKCkZyb20gMzgzMmRkNmQ0ZTNmMzFiNWNjNWNiNmU5MGQ1 NjFkMDFlZjRiMDFhMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2xhdWRpbyBJbWJy ZW5kYSA8aW1icmVuZGFAbGludXgudm5ldC5pYm0uY29tPgpEYXRlOiBXZWQsIDIwIEp1biAyMDE4 IDE1OjUxOjUxICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNS8zNV0gVlNPQ0s6IGZpeCBsb29wYmFj ayBvbiBiaWctZW5kaWFuIHN5c3RlbXMKClsgVXBzdHJlYW0gY29tbWl0IGU1YWI1NjRjOWViZWU3 Nzc5NDg0MmNhN2Q3NDc2MTQ3YjgzZDZhMjcgXQoKVGhlIGRzdF9jaWQgYW5kIHNyY19jaWQgYXJl IDY0IGJpdHMsIHRoZXJlZm9yZSA2NCBiaXQgYWNjZXNzb3JzIHNob3VsZCBiZQp1c2VkLCBhbmQg aW4gZmFjdCBpbiB2aXJ0aW9fdHJhbnNwb3J0X2NvbW1vbi5jIG9ubHkgNjQgYml0IGFjY2Vzc29y cyBhcmUKdXNlZC4gVXNpbmcgMzIgYml0IGFjY2Vzc29ycyBmb3IgNjQgYml0IHZhbHVlcyBicmVh a3MgYmlnIGVuZGlhbiBzeXN0ZW1zLgoKVGhpcyBwYXRjaCBmaXhlcyBhIHdyb25nIHVzZSBvZiBs ZTMyX3RvX2NwdSBpbiB2aXJ0aW9fdHJhbnNwb3J0X3NlbmRfcGt0LgoKRml4ZXM6IGI5MTE2ODIz MTg5ZTg1Y2NmMzg0ICgiVlNPQ0s6IGFkZCBsb29wYmFjayB0byB2aXJ0aW9fdHJhbnNwb3J0IikK ClNpZ25lZC1vZmYtYnk6IENsYXVkaW8gSW1icmVuZGEgPGltYnJlbmRhQGxpbnV4LnZuZXQuaWJt LmNvbT4KUmV2aWV3ZWQtYnk6IFN0ZWZhbiBIYWpub2N6aSA8c3RlZmFuaGFAcmVkaGF0LmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Ztd192c29j ay92aXJ0aW9fdHJhbnNwb3J0LmMgYi9uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYwpp bmRleCA0MDNkODZlODAxNjIuLmZkYjI5NDQ0MTY4MiAxMDA2NDQKLS0tIGEvbmV0L3Ztd192c29j ay92aXJ0aW9fdHJhbnNwb3J0LmMKKysrIGIvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0 LmMKQEAgLTIwMSw3ICsyMDEsNyBAQCB2aXJ0aW9fdHJhbnNwb3J0X3NlbmRfcGt0KHN0cnVjdCB2 aXJ0aW9fdnNvY2tfcGt0ICpwa3QpCiAJCXJldHVybiAtRU5PREVWOwogCX0KIAotCWlmIChsZTMy X3RvX2NwdShwa3QtPmhkci5kc3RfY2lkKSA9PSB2c29jay0+Z3Vlc3RfY2lkKQorCWlmIChsZTY0 X3RvX2NwdShwa3QtPmhkci5kc3RfY2lkKSA9PSB2c29jay0+Z3Vlc3RfY2lkKQogCQlyZXR1cm4g dmlydGlvX3RyYW5zcG9ydF9zZW5kX3BrdF9sb29wYmFjayh2c29jaywgcGt0KTsKIAogCWlmIChw a3QtPnJlcGx5KQotLSAKMi4xNy4xCgo= ----Next_Part(Thu_Jul_19_08_35_57_2018_767)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_417.mbox" RnJvbSBiMDU5Y2E0NmFhYWRkZjAxYTQ3ZWIzYTgwOTlkZjI0NDZiZTVjNDlhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5ldD4K RGF0ZTogRnJpLCAyOSBKdW4gMjAxOCAxNzo1MToyNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEv NTNdIGFseDogdGFrZSBydG5sIGJlZm9yZSBjYWxsaW5nIF9fYWx4X29wZW4gZnJvbSByZXN1bWUK ClsgVXBzdHJlYW0gY29tbWl0IGJjODAwZThiMzliYWQ2MGNjZGI4M2JlODI4ZGE2M2FmNzFhYjg3 YjMgXQoKVGhlIF9fYWx4X29wZW4gZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBmcm9tIG5kb19vcGVu LCB3aGljaCBpcyBjYWxsZWQKdW5kZXIgUlROTCwgb3IgZnJvbSBhbHhfcmVzdW1lLCB3aGljaCBp c24ndC4gU2luY2UgY29tbWl0IGQ3NjgzMTljZDQyNywKd2UncmUgY2FsbGluZyB0aGUgbmV0aWZf c2V0X3JlYWxfbnVtX3t0eCxyeH1fcXVldWVzIGZ1bmN0aW9ucywgd2hpY2gKbmVlZCB0byBiZSBj YWxsZWQgdW5kZXIgUlROTC4KClRoaXMgaXMgc2ltaWxhciB0byBjb21taXQgMGMyY2MwMmU1NzFh ICgiaWdiOiBNb3ZlIHRoZSBjYWxscyB0byBzZXQgdGhlClR4IGFuZCBSeCBxdWV1ZXMgaW50byBp Z2Jfb3BlbiIpLgoKRml4ZXM6IGQ3NjgzMTljZDQyNyAoImFseDogZW5hYmxlIG11bHRpcGxlIHR4 IHF1ZXVlcyIpClNpZ25lZC1vZmYtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwu bmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hbHgvbWFpbi5jIHwgOCArKysrKysr LQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWx4L21haW4uYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L2F0aGVyb3MvYWx4L21haW4uYwppbmRleCA1NjdlZTU0NTA0YmMuLjVlNTAy MmZhMWQwNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hbHgvbWFp bi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWx4L21haW4uYwpAQCAtMTg5 NywxMyArMTg5NywxOSBAQCBzdGF0aWMgaW50IGFseF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2 KQogCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOwogCXN0cnVjdCBhbHhf cHJpdiAqYWx4ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwogCXN0cnVjdCBhbHhfaHcgKmh3ID0g JmFseC0+aHc7CisJaW50IGVycjsKIAogCWFseF9yZXNldF9waHkoaHcpOwogCiAJaWYgKCFuZXRp Zl9ydW5uaW5nKGFseC0+ZGV2KSkKIAkJcmV0dXJuIDA7CiAJbmV0aWZfZGV2aWNlX2F0dGFjaChh bHgtPmRldik7Ci0JcmV0dXJuIF9fYWx4X29wZW4oYWx4LCB0cnVlKTsKKworCXJ0bmxfbG9jaygp OworCWVyciA9IF9fYWx4X29wZW4oYWx4LCB0cnVlKTsKKwlydG5sX3VubG9jaygpOworCisJcmV0 dXJuIGVycjsKIH0KIAogc3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKGFseF9wbV9vcHMsIGFseF9z dXNwZW5kLCBhbHhfcmVzdW1lKTsKLS0gCjIuMTcuMQoKCkZyb20gMmJmNmU2ZGUyYWVmYzFjM2Ey NzhhNjc0ZjkzZDRiYmU4ODdhMzk0MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2 aWQgV29vZGhvdXNlIDxkd213MkBpbmZyYWRlYWQub3JnPgpEYXRlOiBTYXQsIDE2IEp1biAyMDE4 IDExOjU1OjQ0ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMi81M10gYXRtOiBQcmVzZXJ2ZSB2YWx1 ZSBvZiBza2ItPnRydWVzaXplIHdoZW4gYWNjb3VudGluZyB0bwogdmNjCk1JTUUtVmVyc2lvbjog MS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCA5YmJlNjBhNjdiZTVhMWM2Zjc5 YjNjOWJlNTAwMzQ4MWE1MDUyOWZmIF0KCkFUTSBhY2NvdW50cyBmb3IgaW4tZmxpZ2h0IFRYIHBh Y2tldHMgaW4gc2tfd21lbV9hbGxvYyBvZiB0aGUgVkNDIG9uCndoaWNoIHRoZXkgYXJlIHRvIGJl IHNlbnQuIEJ1dCBpdCBkb2Vzbid0IHRha2Ugb3duZXJzaGlwIG9mIHRob3NlCnBhY2tldHMgZnJv bSB0aGUgc29jayAoaWYgYW55KSB3aGljaCBvcmlnaW5hbGx5IG93bmVkIHRoZW0uIFRoZXkgc2hv dWxkCnJlbWFpbiBvd25lZCBieSB0aGVpciBhY3R1YWwgc2VuZGVyIHVudGlsIHRoZXkndmUgbGVm dCB0aGUgYm94LgoKVGhlcmUncyBhIGhhY2sgaW4gcHNrYl9leHBhbmRfaGVhZCgpIHRvIGF2b2lk IGFkanVzdGluZyBza2ItPnRydWVzaXplCmZvciBjZXJ0YWluIHNrYnMsIHByZWNpc2VseSB0byBh dm9pZCBtZXNzaW5nIHVwIHNrX3dtZW1fYWxsb2MKYWNjb3VudGluZy4gSWRlYWxseSB0aGF0IGhh Y2sgd291bGQgY292ZXIgdGhlIEFUTSB1c2UgY2FzZSB0b28sIGJ1dCBpdApkb2Vzbid0IOKAlCBz a2JzIHdoaWNoIGFyZW4ndCBvd25lZCBieSBhbnkgc29jaywgZm9yIGV4YW1wbGUgUFBQIGNvbnRy b2wKZnJhbWVzLCBzdGlsbCBnZXQgdGhlaXIgdHJ1ZXNpemUgYWRqdXN0ZWQgd2hlbiB0aGUgbG93 LWxldmVsIEFUTSBkcml2ZXIKYWRkcyBoZWFkcm9vbS4KClRoaXMgaGFzIGFsd2F5cyBiZWVuIGFu IGlzc3VlLCBpdCBzZWVtcy4gVGhlIHRydWVzaXplIG9mIGEgcGFja2V0CmluY3JlYXNlcywgYW5k IHNrX3dtZW1fYWxsb2Mgb24gdGhlIFZDQyBnb2VzIG5lZ2F0aXZlLiBCdXQgdGhpcyB3YXNuJ3QK Zm9yIG5vcm1hbCB0cmFmZmljLCBvbmx5IGZvciBjb250cm9sIGZyYW1lcy4gU28gSSB0aGluayB3 ZSBqdXN0IGdvdCBhd2F5CndpdGggaXQsIGFuZCB3ZSBwcm9iYWJseSBuZWVkZWQgdG8gc2VuZCAy R2lCIG9mIExDUCBlY2hvIGZyYW1lcyBiZWZvcmUKdGhlIG1pc2FjY291bnRpbmcgd291bGQgZXZl ciBoYXZlIGNhdXNlZCBhIHByb2JsZW0gYW5kIGNhdXNlZAphdG1fbWF5X3NlbmQoKSB0byBzdGFy dCByZWZ1c2luZyBwYWNrZXRzLgoKQ29tbWl0IDE0YWZlZTRiNjA5ICgibmV0OiBjb252ZXJ0IHNv Y2suc2tfd21lbV9hbGxvYyBmcm9tIGF0b21pY190IHRvCnJlZmNvdW50X3QiKSBkaWQgZXhhY3Rs eSB3aGF0IGl0IHdhcyBpbnRlbmRlZCB0byBkbywgYW5kIHR1cm5lZCB0aGlzCm1vc3RseS10aGVv cmV0aWNhbCBwcm9ibGVtIGludG8gYSByZWFsIG9uZSwgY2F1c2luZyBQUFBvQVRNIHRvIGZhaWwK aW1tZWRpYXRlbHkgYXMgc2tfd21lbV9hbGxvYyB1bmRlcmZsb3dzIGFuZCBhdG1fbWF5X3NlbmQo KSAqaW1tZWRpYXRlbHkqCnN0YXJ0cyByZWZ1c2luZyB0byBhbGxvdyBuZXcgcGFja2V0cy4KClRo ZSBsZWFzdCBpbnRydXNpdmUgc29sdXRpb24gdG8gdGhpcyBwcm9ibGVtIGlzIHRvIHN0YXNoIHRo ZSB2YWx1ZSBvZgpza2ItPnRydWVzaXplIHRoYXQgd2FzIGFjY291bnRlZCB0byB0aGUgVkNDLCBp biBhIG5ldyBtZW1iZXIgb2YgdGhlCkFUTV9TS0Ioc2tiKSBzdHJ1Y3R1cmUuIFRoZW4gaW4gYXRt X3BvcF9yYXcoKSBzdWJ0cmFjdCBwcmVjaXNlbHkgdGhhdAp2YWx1ZSBpbnN0ZWFkIG9mIHRoZSB0 aGVuLWN1cnJlbnQgdmFsdWUgb2Ygc2tiLT50cnVlc2l6ZS4KCkZpeGVzOiAxNThmMzIzYjk4Njgg KCJuZXQ6IGFkanVzdCBza2ItPnRydWVzaXplIGluIHBza2JfZXhwYW5kX2hlYWQoKSIpClNpZ25l ZC1vZmYtYnk6IERhdmlkIFdvb2Rob3VzZSA8ZHdtdzJAaW5mcmFkZWFkLm9yZz4KVGVzdGVkLWJ5 OiBLZXZpbiBEYXJieXNoaXJlLUJyeWFudCA8bGRpckBkYXJieXNoaXJlLWJyeWFudC5tZS51az4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGluY2x1ZGUvbGludXgvYXRtZGV2LmggfCAxNSArKysrKysrKysrKysrKysKIG5ldC9hdG0vYnIy Njg0LmMgICAgICAgfCAgMyArLS0KIG5ldC9hdG0vY2xpcC5jICAgICAgICAgfCAgMyArLS0KIG5l dC9hdG0vY29tbW9uLmMgICAgICAgfCAgMyArLS0KIG5ldC9hdG0vbGVjLmMgICAgICAgICAgfCAg MyArLS0KIG5ldC9hdG0vbXBjLmMgICAgICAgICAgfCAgMyArLS0KIG5ldC9hdG0vcHBwb2F0bS5j ICAgICAgfCAgMyArLS0KIG5ldC9hdG0vcmF3LmMgICAgICAgICAgfCAgNCArKy0tCiA4IGZpbGVz IGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2luY2x1ZGUvbGludXgvYXRtZGV2LmggYi9pbmNsdWRlL2xpbnV4L2F0bWRldi5oCmluZGV4IDBj Mjc1MTVkMmNmNi4uODEyNDgxNWViMTIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2F0bWRl di5oCisrKyBiL2luY2x1ZGUvbGludXgvYXRtZGV2LmgKQEAgLTIxNCw2ICsyMTQsNyBAQCBzdHJ1 Y3QgYXRtcGh5X29wcyB7CiBzdHJ1Y3QgYXRtX3NrYl9kYXRhIHsKIAlzdHJ1Y3QgYXRtX3ZjYwkq dmNjOwkJLyogQVRNIFZDQyAqLwogCXVuc2lnbmVkIGxvbmcJYXRtX29wdGlvbnM7CS8qIEFUTSBs YXllciBvcHRpb25zICovCisJdW5zaWduZWQgaW50CWFjY3RfdHJ1ZXNpemU7ICAvKiB0cnVlc2l6 ZSBhY2NvdW50ZWQgdG8gdmNjICovCiB9OwogCiAjZGVmaW5lIFZDQ19IVEFCTEVfU0laRSAzMgpA QCAtMjQxLDYgKzI0MiwyMCBAQCB2b2lkIHZjY19pbnNlcnRfc29ja2V0KHN0cnVjdCBzb2NrICpz ayk7CiAKIHZvaWQgYXRtX2Rldl9yZWxlYXNlX3ZjY3Moc3RydWN0IGF0bV9kZXYgKmRldik7CiAK K3N0YXRpYyBpbmxpbmUgdm9pZCBhdG1fYWNjb3VudF90eChzdHJ1Y3QgYXRtX3ZjYyAqdmNjLCBz dHJ1Y3Qgc2tfYnVmZiAqc2tiKQoreworCS8qCisJICogQmVjYXVzZSBBVE0gc2ticyBtYXkgbm90 IGJlbG9uZyB0byBhIHNvY2sgKGFuZCB3ZSBkb24ndAorCSAqIG5lY2Vzc2FyaWx5IHdhbnQgdG8p LCBza2ItPnRydWVzaXplIG1heSBiZSBhZGp1c3RlZCwKKwkgKiBlc2NhcGluZyB0aGUgaGFjayBp biBwc2tiX2V4cGFuZF9oZWFkKCkgd2hpY2ggYXZvaWRzCisJICogZG9pbmcgc28gZm9yIHNvbWUg Y2FzZXMuIFNvIHN0YXNoIHRoZSB2YWx1ZSBvZiB0cnVlc2l6ZQorCSAqIGF0IHRoZSB0aW1lIHdl IGFjY291bnRlZCBpdCwgYW5kIGF0bV9wb3BfcmF3KCkgY2FuIHVzZQorCSAqIHRoYXQgdmFsdWUg bGF0ZXIsIGluIGNhc2UgaXQgY2hhbmdlcy4KKwkgKi8KKwlyZWZjb3VudF9hZGQoc2tiLT50cnVl c2l6ZSwgJnNrX2F0bSh2Y2MpLT5za193bWVtX2FsbG9jKTsKKwlBVE1fU0tCKHNrYiktPmFjY3Rf dHJ1ZXNpemUgPSBza2ItPnRydWVzaXplOworCUFUTV9TS0Ioc2tiKS0+YXRtX29wdGlvbnMgPSB2 Y2MtPmF0bV9vcHRpb25zOworfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXRtX2ZvcmNlX2NoYXJn ZShzdHJ1Y3QgYXRtX3ZjYyAqdmNjLGludCB0cnVlc2l6ZSkKIHsKZGlmZiAtLWdpdCBhL25ldC9h dG0vYnIyNjg0LmMgYi9uZXQvYXRtL2JyMjY4NC5jCmluZGV4IGZkOTRiZWEzNmVlOC4uODJjOGQz M2JkOGJhIDEwMDY0NAotLS0gYS9uZXQvYXRtL2JyMjY4NC5jCisrKyBiL25ldC9hdG0vYnIyNjg0 LmMKQEAgLTI1Miw4ICsyNTIsNyBAQCBzdGF0aWMgaW50IGJyMjY4NF94bWl0X3ZjYyhzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCiAJQVRNX1NLQihza2IpLT52 Y2MgPSBhdG12Y2MgPSBicnZjYy0+YXRtdmNjOwogCXByX2RlYnVnKCJhdG1fc2tiKCVwKS0+dmNj KCVwKS0+ZGV2KCVwKVxuIiwgc2tiLCBhdG12Y2MsIGF0bXZjYy0+ZGV2KTsKLQlyZWZjb3VudF9h ZGQoc2tiLT50cnVlc2l6ZSwgJnNrX2F0bShhdG12Y2MpLT5za193bWVtX2FsbG9jKTsKLQlBVE1f U0tCKHNrYiktPmF0bV9vcHRpb25zID0gYXRtdmNjLT5hdG1fb3B0aW9uczsKKwlhdG1fYWNjb3Vu dF90eChhdG12Y2MsIHNrYik7CiAJZGV2LT5zdGF0cy50eF9wYWNrZXRzKys7CiAJZGV2LT5zdGF0 cy50eF9ieXRlcyArPSBza2ItPmxlbjsKIApkaWZmIC0tZ2l0IGEvbmV0L2F0bS9jbGlwLmMgYi9u ZXQvYXRtL2NsaXAuYwppbmRleCBmMDdkYmM2MzIyMjIuLjBlZGViZjhkZWNjMCAxMDA2NDQKLS0t IGEvbmV0L2F0bS9jbGlwLmMKKysrIGIvbmV0L2F0bS9jbGlwLmMKQEAgLTM4MSw4ICszODEsNyBA QCBzdGF0aWMgbmV0ZGV2X3R4X3QgY2xpcF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2Is CiAJCW1lbWNweShoZXJlLCBsbGNfb3VpLCBzaXplb2YobGxjX291aSkpOwogCQkoKF9fYmUxNiAq KSBoZXJlKVszXSA9IHNrYi0+cHJvdG9jb2w7CiAJfQotCXJlZmNvdW50X2FkZChza2ItPnRydWVz aXplLCAmc2tfYXRtKHZjYyktPnNrX3dtZW1fYWxsb2MpOwotCUFUTV9TS0Ioc2tiKS0+YXRtX29w dGlvbnMgPSB2Y2MtPmF0bV9vcHRpb25zOworCWF0bV9hY2NvdW50X3R4KHZjYywgc2tiKTsKIAll bnRyeS0+dmNjcy0+bGFzdF91c2UgPSBqaWZmaWVzOwogCXByX2RlYnVnKCJhdG1fc2tiKCVwKS0+ dmNjKCVwKS0+ZGV2KCVwKVxuIiwgc2tiLCB2Y2MsIHZjYy0+ZGV2KTsKIAlvbGQgPSB4Y2hnKCZl bnRyeS0+dmNjcy0+eG9mZiwgMSk7CS8qIGFzc3VtZSBYT0ZGIC4uLiAqLwpkaWZmIC0tZ2l0IGEv bmV0L2F0bS9jb21tb24uYyBiL25ldC9hdG0vY29tbW9uLmMKaW5kZXggZmM3OGEwNTA4YWUxLi5h N2E2OGU1MDk2MjggMTAwNjQ0Ci0tLSBhL25ldC9hdG0vY29tbW9uLmMKKysrIGIvbmV0L2F0bS9j b21tb24uYwpAQCAtNjMwLDEwICs2MzAsOSBAQCBpbnQgdmNjX3NlbmRtc2coc3RydWN0IHNvY2tl dCAqc29jaywgc3RydWN0IG1zZ2hkciAqbSwgc2l6ZV90IHNpemUpCiAJCWdvdG8gb3V0OwogCX0K IAlwcl9kZWJ1ZygiJWQgKz0gJWRcbiIsIHNrX3dtZW1fYWxsb2NfZ2V0KHNrKSwgc2tiLT50cnVl c2l6ZSk7Ci0JcmVmY291bnRfYWRkKHNrYi0+dHJ1ZXNpemUsICZzay0+c2tfd21lbV9hbGxvYyk7 CisJYXRtX2FjY291bnRfdHgodmNjLCBza2IpOwogCiAJc2tiLT5kZXYgPSBOVUxMOyAvKiBmb3Ig cGF0aHMgc2hhcmVkIHdpdGggbmV0X2RldmljZSBpbnRlcmZhY2VzICovCi0JQVRNX1NLQihza2Ip LT5hdG1fb3B0aW9ucyA9IHZjYy0+YXRtX29wdGlvbnM7CiAJaWYgKCFjb3B5X2Zyb21faXRlcl9m dWxsKHNrYl9wdXQoc2tiLCBzaXplKSwgc2l6ZSwgJm0tPm1zZ19pdGVyKSkgewogCQlrZnJlZV9z a2Ioc2tiKTsKIAkJZXJyb3IgPSAtRUZBVUxUOwpkaWZmIC0tZ2l0IGEvbmV0L2F0bS9sZWMuYyBi L25ldC9hdG0vbGVjLmMKaW5kZXggMzEzOGE4NjliNWMwLi4xOWFkMmZkMDQ5ODMgMTAwNjQ0Ci0t LSBhL25ldC9hdG0vbGVjLmMKKysrIGIvbmV0L2F0bS9sZWMuYwpAQCAtMTgyLDkgKzE4Miw4IEBA IGxlY19zZW5kKHN0cnVjdCBhdG1fdmNjICp2Y2MsIHN0cnVjdCBza19idWZmICpza2IpCiAJc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiA9IHNrYi0+ZGV2OwogCiAJQVRNX1NLQihza2IpLT52Y2MgPSB2 Y2M7Ci0JQVRNX1NLQihza2IpLT5hdG1fb3B0aW9ucyA9IHZjYy0+YXRtX29wdGlvbnM7CisJYXRt X2FjY291bnRfdHgodmNjLCBza2IpOwogCi0JcmVmY291bnRfYWRkKHNrYi0+dHJ1ZXNpemUsICZz a19hdG0odmNjKS0+c2tfd21lbV9hbGxvYyk7CiAJaWYgKHZjYy0+c2VuZCh2Y2MsIHNrYikgPCAw KSB7CiAJCWRldi0+c3RhdHMudHhfZHJvcHBlZCsrOwogCQlyZXR1cm47CmRpZmYgLS1naXQgYS9u ZXQvYXRtL21wYy5jIGIvbmV0L2F0bS9tcGMuYwppbmRleCAzMWUwZGNiOTcwZjguLjQ0ZGRjZGQ1 ZmQzNSAxMDA2NDQKLS0tIGEvbmV0L2F0bS9tcGMuYworKysgYi9uZXQvYXRtL21wYy5jCkBAIC01 NTUsOCArNTU1LDcgQEAgc3RhdGljIGludCBzZW5kX3ZpYV9zaG9ydGN1dChzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3QgbXBvYV9jbGllbnQgKm1wYykKIAkJCQkJc2l6ZW9mKHN0cnVjdCBsbGNf c25hcF9oZHIpKTsKIAl9CiAKLQlyZWZjb3VudF9hZGQoc2tiLT50cnVlc2l6ZSwgJnNrX2F0bShl bnRyeS0+c2hvcnRjdXQpLT5za193bWVtX2FsbG9jKTsKLQlBVE1fU0tCKHNrYiktPmF0bV9vcHRp b25zID0gZW50cnktPnNob3J0Y3V0LT5hdG1fb3B0aW9uczsKKwlhdG1fYWNjb3VudF90eChlbnRy eS0+c2hvcnRjdXQsIHNrYik7CiAJZW50cnktPnNob3J0Y3V0LT5zZW5kKGVudHJ5LT5zaG9ydGN1 dCwgc2tiKTsKIAllbnRyeS0+cGFja2V0c19md2RlZCsrOwogCW1wYy0+aW5fb3BzLT5wdXQoZW50 cnkpOwpkaWZmIC0tZ2l0IGEvbmV0L2F0bS9wcHBvYXRtLmMgYi9uZXQvYXRtL3BwcG9hdG0uYwpp bmRleCAyMWQ5ZDM0MWE2MTkuLmFmOGM0YjM4Yjc0NiAxMDA2NDQKLS0tIGEvbmV0L2F0bS9wcHBv YXRtLmMKKysrIGIvbmV0L2F0bS9wcHBvYXRtLmMKQEAgLTM1MCw4ICszNTAsNyBAQCBzdGF0aWMg aW50IHBwcG9hdG1fc2VuZChzdHJ1Y3QgcHBwX2NoYW5uZWwgKmNoYW4sIHN0cnVjdCBza19idWZm ICpza2IpCiAJCXJldHVybiAxOwogCX0KIAotCXJlZmNvdW50X2FkZChza2ItPnRydWVzaXplLCAm c2tfYXRtKEFUTV9TS0Ioc2tiKS0+dmNjKS0+c2tfd21lbV9hbGxvYyk7Ci0JQVRNX1NLQihza2Ip LT5hdG1fb3B0aW9ucyA9IEFUTV9TS0Ioc2tiKS0+dmNjLT5hdG1fb3B0aW9uczsKKwlhdG1fYWNj b3VudF90eCh2Y2MsIHNrYik7CiAJcHJfZGVidWcoImF0bV9za2IoJXApLT52Y2MoJXApLT5kZXYo JXApXG4iLAogCQkgc2tiLCBBVE1fU0tCKHNrYiktPnZjYywgQVRNX1NLQihza2IpLT52Y2MtPmRl dik7CiAJcmV0ID0gQVRNX1NLQihza2IpLT52Y2MtPnNlbmQoQVRNX1NLQihza2IpLT52Y2MsIHNr YikKZGlmZiAtLWdpdCBhL25ldC9hdG0vcmF3LmMgYi9uZXQvYXRtL3Jhdy5jCmluZGV4IGVlMTBl OGQ0NjE4NS4uYjNiYTQ0YWFiMGVlIDEwMDY0NAotLS0gYS9uZXQvYXRtL3Jhdy5jCisrKyBiL25l dC9hdG0vcmF3LmMKQEAgLTM1LDggKzM1LDggQEAgc3RhdGljIHZvaWQgYXRtX3BvcF9yYXcoc3Ry dWN0IGF0bV92Y2MgKnZjYywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlzdHJ1Y3Qgc29jayAqc2sg PSBza19hdG0odmNjKTsKIAogCXByX2RlYnVnKCIoJWQpICVkIC09ICVkXG4iLAotCQkgdmNjLT52 Y2ksIHNrX3dtZW1fYWxsb2NfZ2V0KHNrKSwgc2tiLT50cnVlc2l6ZSk7Ci0JV0FSTl9PTihyZWZj b3VudF9zdWJfYW5kX3Rlc3Qoc2tiLT50cnVlc2l6ZSwgJnNrLT5za193bWVtX2FsbG9jKSk7CisJ CSB2Y2MtPnZjaSwgc2tfd21lbV9hbGxvY19nZXQoc2spLCBBVE1fU0tCKHNrYiktPmFjY3RfdHJ1 ZXNpemUpOworCVdBUk5fT04ocmVmY291bnRfc3ViX2FuZF90ZXN0KEFUTV9TS0Ioc2tiKS0+YWNj dF90cnVlc2l6ZSwgJnNrLT5za193bWVtX2FsbG9jKSk7CiAJZGV2X2tmcmVlX3NrYl9hbnkoc2ti KTsKIAlzay0+c2tfd3JpdGVfc3BhY2Uoc2spOwogfQotLSAKMi4xNy4xCgoKRnJvbSBkNTA4NGYy MmY1ZDFmMWMzMTNlMGNkMWJmNTFhNjg2NjIxZjVlZTc2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiAiR3VzdGF2byBBLiBSLiBTaWx2YSIgPGd1c3Rhdm9AZW1iZWRkZWRvci5jb20+CkRh dGU6IEZyaSwgMjkgSnVuIDIwMTggMTM6Mjg6MDcgLTA1MDAKU3ViamVjdDogW1BBVENIIDAzLzUz XSBhdG06IHphdG06IEZpeCBwb3RlbnRpYWwgU3BlY3RyZSB2MQoKWyBVcHN0cmVhbSBjb21taXQg Y2VkOWUxOTE1MDFlNTJiOTVlMWI1N2I4ZTBkYjAwOTQzODY5ZWVkMCBdCgpwb29sIGNhbiBiZSBp bmRpcmVjdGx5IGNvbnRyb2xsZWQgYnkgdXNlci1zcGFjZSwgaGVuY2UgbGVhZGluZyB0bwphIHBv dGVudGlhbCBleHBsb2l0YXRpb24gb2YgdGhlIFNwZWN0cmUgdmFyaWFudCAxIHZ1bG5lcmFiaWxp dHkuCgpUaGlzIGlzc3VlIHdhcyBkZXRlY3RlZCB3aXRoIHRoZSBoZWxwIG9mIFNtYXRjaDoKCmRy aXZlcnMvYXRtL3phdG0uYzoxNDkxIHphdG1faW9jdGwoKSB3YXJuOiBwb3RlbnRpYWwgc3BlY3Ry ZSBpc3N1ZQonemF0bV9kZXYtPnBvb2xfaW5mbycgKGxvY2FsIGNhcCkKCkZpeCB0aGlzIGJ5IHNh bml0aXppbmcgcG9vbCBiZWZvcmUgdXNpbmcgaXQgdG8gaW5kZXgKemF0bV9kZXYtPnBvb2xfaW5m bwoKTm90aWNlIHRoYXQgZ2l2ZW4gdGhhdCBzcGVjdWxhdGlvbiB3aW5kb3dzIGFyZSBsYXJnZSwg dGhlIHBvbGljeSBpcwp0byBraWxsIHRoZSBzcGVjdWxhdGlvbiBvbiB0aGUgZmlyc3QgbG9hZCBh bmQgbm90IHdvcnJ5IGlmIGl0IGNhbiBiZQpjb21wbGV0ZWQgd2l0aCBhIGRlcGVuZGVudCBsb2Fk L3N0b3JlIFsxXS4KClsxXSBodHRwczovL21hcmMuaW5mby8/bD1saW51eC1rZXJuZWwmbT0xNTI0 NDkxMzExMTQ3Nzgmdz0yCgpTaWduZWQtb2ZmLWJ5OiBHdXN0YXZvIEEuIFIuIFNpbHZhIDxndXN0 YXZvQGVtYmVkZGVkb3IuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9hdG0vemF0bS5jIHwgMiArKwogMSBmaWxlIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRtL3phdG0uYyBi L2RyaXZlcnMvYXRtL3phdG0uYwppbmRleCBhOGQyZWIwY2ViOGQuLjJjMjg4ZDFmNDJiYiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9hdG0vemF0bS5jCisrKyBiL2RyaXZlcnMvYXRtL3phdG0uYwpAQCAt MTQ4Myw2ICsxNDgzLDggQEAgc3RhdGljIGludCB6YXRtX2lvY3RsKHN0cnVjdCBhdG1fZGV2ICpk ZXYsdW5zaWduZWQgaW50IGNtZCx2b2lkIF9fdXNlciAqYXJnKQogCQkJCQlyZXR1cm4gLUVGQVVM VDsKIAkJCQlpZiAocG9vbCA8IDAgfHwgcG9vbCA+IFpBVE1fTEFTVF9QT09MKQogCQkJCQlyZXR1 cm4gLUVJTlZBTDsKKwkJCQlwb29sID0gYXJyYXlfaW5kZXhfbm9zcGVjKHBvb2wsCisJCQkJCQkJ ICBaQVRNX0xBU1RfUE9PTCArIDEpOwogCQkJCWlmIChjb3B5X2Zyb21fdXNlcigmaW5mbywKIAkJ CQkgICAgJigoc3RydWN0IHphdG1fcG9vbF9yZXEgX191c2VyICopIGFyZyktPmluZm8sCiAJCQkJ ICAgIHNpemVvZihpbmZvKSkpIHJldHVybiAtRUZBVUxUOwotLSAKMi4xNy4xCgoKRnJvbSAxMjVi ZDBkZDZhZjU3ZDZlYjIzMGZlOTI4OWY5NDM2OWMzOWEzMDkzIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBTdGVwaGVuIEhlbW1pbmdlciA8c3RoZW1taW5AbWljcm9zb2Z0LmNvbT4KRGF0 ZTogRnJpLCAyOSBKdW4gMjAxOCAxNDowNzoxNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDQvNTNd IGh2X25ldHZzYzogc3BsaXQgc3ViLWNoYW5uZWwgc2V0dXAgaW50byBhc3luYyBhbmQgc3luYwoK WyBVcHN0cmVhbSBjb21taXQgM2ZmZTY0ZjFhNjQxYjgwYTgyZDllZjRlZmE3YTA1Y2U2OTA0OTg3 MSBdCgpXaGVuIGRvaW5nIGRldmljZSBob3RwbHVnIHRoZSBzdWIgY2hhbm5lbCBtdXN0IGJlIGFz eW5jIHRvIGF2b2lkCmRlYWRsb2NrIGlzc3VlcyBiZWNhdXNlIGRldmljZSBpcyBkaXNjb3ZlcmVk IGluIHNvZnRpcnEgY29udGV4dC4KCldoZW4gZG9pbmcgY2hhbmdlcyB0byBNVFUgYW5kIG51bWJl ciBvZiBjaGFubmVscywgdGhlIHNldHVwCm11c3QgYmUgc3luY2hyb25vdXMgdG8gYXZvaWQgcmFj ZXMgc3VjaCBhcyB3aGVuIE1UVSBhbmQgZGV2aWNlCnNldHRpbmdzIGFyZSBkb25lIGluIGEgc2lu Z2xlIGlwIGNvbW1hbmQuCgpSZXBvcnRlZC1ieTogVGhvbWFzIFdhbGtlciA8VGhvbWFzLldhbGtl ckB0d29zaWdtYS5jb20+CkZpeGVzOiA4MTk1YjEzOTZlYzggKCJodl9uZXR2c2M6IGZpeCBkZWFk bG9jayBvbiBob3RwbHVnIikKRml4ZXM6IDczMmU0OTg1MGM1ZSAoIm5ldHZzYzogZml4IHJhY2Ug b24gc3ViIGNoYW5uZWwgY3JlYXRpb24iKQpTaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIEhlbW1pbmdl ciA8c3RoZW1taW5AbWljcm9zb2Z0LmNvbT4KU2lnbmVkLW9mZi1ieTogSGFpeWFuZyBaaGFuZyA8 aGFpeWFuZ3pAbWljcm9zb2Z0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2h5cGVydi9oeXBlcnZfbmV0Lmgg ICB8ICAyICstCiBkcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMgICAgICAgfCAzNyArKysrKysr KysrKysrKysrKystCiBkcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jICAgfCAxNyArKysr KysrKy0KIGRyaXZlcnMvbmV0L2h5cGVydi9ybmRpc19maWx0ZXIuYyB8IDYxICsrKysrKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwg NTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L2h5cGVydl9u ZXQuaCBiL2RyaXZlcnMvbmV0L2h5cGVydi9oeXBlcnZfbmV0LmgKaW5kZXggOTYwZjA2MTQxNDcy Li5lYWVlZTMyMDFlOGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVydi9oeXBlcnZfbmV0 LmgKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2L2h5cGVydl9uZXQuaApAQCAtMjExLDcgKzIxMSw3 IEBAIGludCBuZXR2c2NfcmVjdl9jYWxsYmFjayhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0LAogdm9p ZCBuZXR2c2NfY2hhbm5lbF9jYih2b2lkICpjb250ZXh0KTsKIGludCBuZXR2c2NfcG9sbChzdHJ1 Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpOwogCi12b2lkIHJuZGlzX3NldF9zdWJj aGFubmVsKHN0cnVjdCB3b3JrX3N0cnVjdCAqdyk7CitpbnQgcm5kaXNfc2V0X3N1YmNoYW5uZWwo c3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBuZXR2c2NfZGV2aWNlICpudmRldik7CiBp bnQgcm5kaXNfZmlsdGVyX29wZW4oc3RydWN0IG5ldHZzY19kZXZpY2UgKm52ZGV2KTsKIGludCBy bmRpc19maWx0ZXJfY2xvc2Uoc3RydWN0IG5ldHZzY19kZXZpY2UgKm52ZGV2KTsKIHN0cnVjdCBu ZXR2c2NfZGV2aWNlICpybmRpc19maWx0ZXJfZGV2aWNlX2FkZChzdHJ1Y3QgaHZfZGV2aWNlICpk ZXYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMgYi9kcml2ZXJzL25l dC9oeXBlcnYvbmV0dnNjLmMKaW5kZXggMDRmNjExZTZmNjc4Li5jNDE4MTEzYzZiMjAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYworKysgYi9kcml2ZXJzL25ldC9oeXBl cnYvbmV0dnNjLmMKQEAgLTY2LDYgKzY2LDQxIEBAIHZvaWQgbmV0dnNjX3N3aXRjaF9kYXRhcGF0 aChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgYm9vbCB2ZikKIAkJCSAgICAgICBWTV9QS1RfREFU QV9JTkJBTkQsIDApOwogfQogCisvKiBXb3JrZXIgdG8gc2V0dXAgc3ViIGNoYW5uZWxzIG9uIGlu aXRpYWwgc2V0dXAKKyAqIEluaXRpYWwgaG90cGx1ZyBldmVudCBvY2N1cnMgaW4gc29mdGlycSBj b250ZXh0CisgKiBhbmQgY2FuJ3Qgd2FpdCBmb3IgY2hhbm5lbHMuCisgKi8KK3N0YXRpYyB2b2lk IG5ldHZzY19zdWJjaGFuX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3KQoreworCXN0cnVjdCBu ZXR2c2NfZGV2aWNlICpudmRldiA9CisJCWNvbnRhaW5lcl9vZih3LCBzdHJ1Y3QgbmV0dnNjX2Rl dmljZSwgc3ViY2hhbl93b3JrKTsKKwlzdHJ1Y3Qgcm5kaXNfZGV2aWNlICpyZGV2OworCWludCBp LCByZXQ7CisKKwkvKiBBdm9pZCBkZWFkbG9jayB3aXRoIGRldmljZSByZW1vdmFsIGFscmVhZHkg dW5kZXIgUlROTCAqLworCWlmICghcnRubF90cnlsb2NrKCkpIHsKKwkJc2NoZWR1bGVfd29yayh3 KTsKKwkJcmV0dXJuOworCX0KKworCXJkZXYgPSBudmRldi0+ZXh0ZW5zaW9uOworCWlmIChyZGV2 KSB7CisJCXJldCA9IHJuZGlzX3NldF9zdWJjaGFubmVsKHJkZXYtPm5kZXYsIG52ZGV2KTsKKwkJ aWYgKHJldCA9PSAwKSB7CisJCQluZXRpZl9kZXZpY2VfYXR0YWNoKHJkZXYtPm5kZXYpOworCQl9 IGVsc2UgeworCQkJLyogZmFsbGJhY2sgdG8gb25seSBwcmltYXJ5IGNoYW5uZWwgKi8KKwkJCWZv ciAoaSA9IDE7IGkgPCBudmRldi0+bnVtX2NobjsgaSsrKQorCQkJCW5ldGlmX25hcGlfZGVsKCZu dmRldi0+Y2hhbl90YWJsZVtpXS5uYXBpKTsKKworCQkJbnZkZXYtPm1heF9jaG4gPSAxOworCQkJ bnZkZXYtPm51bV9jaG4gPSAxOworCQl9CisJfQorCisJcnRubF91bmxvY2soKTsKK30KKwogc3Rh dGljIHN0cnVjdCBuZXR2c2NfZGV2aWNlICphbGxvY19uZXRfZGV2aWNlKHZvaWQpCiB7CiAJc3Ry dWN0IG5ldHZzY19kZXZpY2UgKm5ldF9kZXZpY2U7CkBAIC04Miw3ICsxMTcsNyBAQCBzdGF0aWMg c3RydWN0IG5ldHZzY19kZXZpY2UgKmFsbG9jX25ldF9kZXZpY2Uodm9pZCkKIAogCWluaXRfY29t cGxldGlvbigmbmV0X2RldmljZS0+Y2hhbm5lbF9pbml0X3dhaXQpOwogCWluaXRfd2FpdHF1ZXVl X2hlYWQoJm5ldF9kZXZpY2UtPnN1YmNoYW5fb3Blbik7Ci0JSU5JVF9XT1JLKCZuZXRfZGV2aWNl LT5zdWJjaGFuX3dvcmssIHJuZGlzX3NldF9zdWJjaGFubmVsKTsKKwlJTklUX1dPUksoJm5ldF9k ZXZpY2UtPnN1YmNoYW5fd29yaywgbmV0dnNjX3N1YmNoYW5fd29yayk7CiAKIAlyZXR1cm4gbmV0 X2RldmljZTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMg Yi9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCmluZGV4IGViOGRjY2QyNGFiZi4uODJj M2M4ZTIwMGYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCisr KyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKQEAgLTkwNSw4ICs5MDUsMjAgQEAg c3RhdGljIGludCBuZXR2c2NfYXR0YWNoKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LAogCWlmIChJ U19FUlIobnZkZXYpKQogCQlyZXR1cm4gUFRSX0VSUihudmRldik7CiAKLQkvKiBOb3RlOiBlbmFi bGUgYW5kIGF0dGFjaCBoYXBwZW4gd2hlbiBzdWItY2hhbm5lbHMgc2V0dXAgKi8KKwlpZiAobnZk ZXYtPm51bV9jaG4gPiAxKSB7CisJCXJldCA9IHJuZGlzX3NldF9zdWJjaGFubmVsKG5kZXYsIG52 ZGV2KTsKKworCQkvKiBpZiB1bmF2YWlsYWJsZSwganVzdCBwcm9jZWVkIHdpdGggb25lIHF1ZXVl ICovCisJCWlmIChyZXQpIHsKKwkJCW52ZGV2LT5tYXhfY2huID0gMTsKKwkJCW52ZGV2LT5udW1f Y2huID0gMTsKKwkJfQorCX0KKworCS8qIEluIGFueSBjYXNlIGRldmljZSBpcyBub3cgcmVhZHkg Ki8KKwluZXRpZl9kZXZpY2VfYXR0YWNoKG5kZXYpOwogCisJLyogTm90ZTogZW5hYmxlIGFuZCBh dHRhY2ggaGFwcGVuIHdoZW4gc3ViLWNoYW5uZWxzIHNldHVwICovCiAJbmV0aWZfY2Fycmllcl9v ZmYobmRldik7CiAKIAlpZiAobmV0aWZfcnVubmluZyhuZGV2KSkgewpAQCAtMjA2NCw2ICsyMDc2 LDkgQEAgc3RhdGljIGludCBuZXR2c2NfcHJvYmUoc3RydWN0IGh2X2RldmljZSAqZGV2LAogCiAJ bWVtY3B5KG5ldC0+ZGV2X2FkZHIsIGRldmljZV9pbmZvLm1hY19hZHIsIEVUSF9BTEVOKTsKIAor CWlmIChudmRldi0+bnVtX2NobiA+IDEpCisJCXNjaGVkdWxlX3dvcmsoJm52ZGV2LT5zdWJjaGFu X3dvcmspOworCiAJLyogaHdfZmVhdHVyZXMgY29tcHV0ZWQgaW4gcm5kaXNfbmV0ZGV2X3NldF9o d2NhcHMoKSAqLwogCW5ldC0+ZmVhdHVyZXMgPSBuZXQtPmh3X2ZlYXR1cmVzIHwKIAkJTkVUSUZf Rl9ISUdIRE1BIHwgTkVUSUZfRl9TRyB8CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oeXBlcnYv cm5kaXNfZmlsdGVyLmMgYi9kcml2ZXJzL25ldC9oeXBlcnYvcm5kaXNfZmlsdGVyLmMKaW5kZXgg ZTdjYTViNWYzOWVkLi5mMzYyY2RhODU0MjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVy di9ybmRpc19maWx0ZXIuYworKysgYi9kcml2ZXJzL25ldC9oeXBlcnYvcm5kaXNfZmlsdGVyLmMK QEAgLTEwNjEsMjkgKzEwNjEsMTUgQEAgc3RhdGljIHZvaWQgbmV0dnNjX3NjX29wZW4oc3RydWN0 IHZtYnVzX2NoYW5uZWwgKm5ld19zYykKICAqIFRoaXMgYnJlYWtzIG92ZXJsYXAgb2YgcHJvY2Vz c2luZyB0aGUgaG9zdCBtZXNzYWdlIGZvciB0aGUKICAqIG5ldyBwcmltYXJ5IGNoYW5uZWwgd2l0 aCB0aGUgaW5pdGlhbGl6YXRpb24gb2Ygc3ViLWNoYW5uZWxzLgogICovCi12b2lkIHJuZGlzX3Nl dF9zdWJjaGFubmVsKHN0cnVjdCB3b3JrX3N0cnVjdCAqdykKK2ludCBybmRpc19zZXRfc3ViY2hh bm5lbChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IG5ldHZzY19kZXZpY2UgKm52ZGV2 KQogewotCXN0cnVjdCBuZXR2c2NfZGV2aWNlICpudmRldgotCQk9IGNvbnRhaW5lcl9vZih3LCBz dHJ1Y3QgbmV0dnNjX2RldmljZSwgc3ViY2hhbl93b3JrKTsKIAlzdHJ1Y3QgbnZzcF9tZXNzYWdl ICppbml0X3BhY2tldCA9ICZudmRldi0+Y2hhbm5lbF9pbml0X3BrdDsKLQlzdHJ1Y3QgbmV0X2Rl dmljZV9jb250ZXh0ICpuZGV2X2N0eDsKLQlzdHJ1Y3Qgcm5kaXNfZGV2aWNlICpyZGV2OwotCXN0 cnVjdCBuZXRfZGV2aWNlICpuZGV2OwotCXN0cnVjdCBodl9kZXZpY2UgKmh2X2RldjsKKwlzdHJ1 Y3QgbmV0X2RldmljZV9jb250ZXh0ICpuZGV2X2N0eCA9IG5ldGRldl9wcml2KG5kZXYpOworCXN0 cnVjdCBodl9kZXZpY2UgKmh2X2RldiA9IG5kZXZfY3R4LT5kZXZpY2VfY3R4OworCXN0cnVjdCBy bmRpc19kZXZpY2UgKnJkZXYgPSBudmRldi0+ZXh0ZW5zaW9uOwogCWludCBpLCByZXQ7CiAKLQlp ZiAoIXJ0bmxfdHJ5bG9jaygpKSB7Ci0JCXNjaGVkdWxlX3dvcmsodyk7Ci0JCXJldHVybjsKLQl9 Ci0KLQlyZGV2ID0gbnZkZXYtPmV4dGVuc2lvbjsKLQlpZiAoIXJkZXYpCi0JCWdvdG8gdW5sb2Nr OwkvKiBkZXZpY2Ugd2FzIHJlbW92ZWQgKi8KLQotCW5kZXYgPSByZGV2LT5uZGV2OwotCW5kZXZf Y3R4ID0gbmV0ZGV2X3ByaXYobmRldik7Ci0JaHZfZGV2ID0gbmRldl9jdHgtPmRldmljZV9jdHg7 CisJQVNTRVJUX1JUTkwoKTsKIAogCW1lbXNldChpbml0X3BhY2tldCwgMCwgc2l6ZW9mKHN0cnVj dCBudnNwX21lc3NhZ2UpKTsKIAlpbml0X3BhY2tldC0+aGRyLm1zZ190eXBlID0gTlZTUF9NU0c1 X1RZUEVfU1VCQ0hBTk5FTDsKQEAgLTEwOTksMTMgKzEwODUsMTMgQEAgdm9pZCBybmRpc19zZXRf c3ViY2hhbm5lbChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKncpCiAJCQkgICAgICAgVk1CVVNfREFUQV9Q QUNLRVRfRkxBR19DT01QTEVUSU9OX1JFUVVFU1RFRCk7CiAJaWYgKHJldCkgewogCQluZXRkZXZf ZXJyKG5kZXYsICJzdWIgY2hhbm5lbCBhbGxvY2F0ZSBzZW5kIGZhaWxlZDogJWRcbiIsIHJldCk7 Ci0JCWdvdG8gZmFpbGVkOworCQlyZXR1cm4gcmV0OwogCX0KIAogCXdhaXRfZm9yX2NvbXBsZXRp b24oJm52ZGV2LT5jaGFubmVsX2luaXRfd2FpdCk7CiAJaWYgKGluaXRfcGFja2V0LT5tc2cudjVf bXNnLnN1YmNobl9jb21wLnN0YXR1cyAhPSBOVlNQX1NUQVRfU1VDQ0VTUykgewogCQluZXRkZXZf ZXJyKG5kZXYsICJzdWIgY2hhbm5lbCByZXF1ZXN0IGZhaWxlZFxuIik7Ci0JCWdvdG8gZmFpbGVk OworCQlyZXR1cm4gLUVJTzsKIAl9CiAKIAludmRldi0+bnVtX2NobiA9IDEgKwpAQCAtMTEyNCwy MSArMTExMCw3IEBAIHZvaWQgcm5kaXNfc2V0X3N1YmNoYW5uZWwoc3RydWN0IHdvcmtfc3RydWN0 ICp3KQogCWZvciAoaSA9IDA7IGkgPCBWUlNTX1NFTkRfVEFCX1NJWkU7IGkrKykKIAkJbmRldl9j dHgtPnR4X3RhYmxlW2ldID0gaSAlIG52ZGV2LT5udW1fY2huOwogCi0JbmV0aWZfZGV2aWNlX2F0 dGFjaChuZGV2KTsKLQlydG5sX3VubG9jaygpOwotCXJldHVybjsKLQotZmFpbGVkOgotCS8qIGZh bGxiYWNrIHRvIG9ubHkgcHJpbWFyeSBjaGFubmVsICovCi0JZm9yIChpID0gMTsgaSA8IG52ZGV2 LT5udW1fY2huOyBpKyspCi0JCW5ldGlmX25hcGlfZGVsKCZudmRldi0+Y2hhbl90YWJsZVtpXS5u YXBpKTsKLQotCW52ZGV2LT5tYXhfY2huID0gMTsKLQludmRldi0+bnVtX2NobiA9IDE7Ci0KLQlu ZXRpZl9kZXZpY2VfYXR0YWNoKG5kZXYpOwotdW5sb2NrOgotCXJ0bmxfdW5sb2NrKCk7CisJcmV0 dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgcm5kaXNfbmV0ZGV2X3NldF9od2NhcHMoc3RydWN0IHJu ZGlzX2RldmljZSAqcm5kaXNfZGV2aWNlLApAQCAtMTMyOSwyMSArMTMwMSwxMiBAQCBzdHJ1Y3Qg bmV0dnNjX2RldmljZSAqcm5kaXNfZmlsdGVyX2RldmljZV9hZGQoc3RydWN0IGh2X2RldmljZSAq ZGV2LAogCQluZXRpZl9uYXBpX2FkZChuZXQsICZuZXRfZGV2aWNlLT5jaGFuX3RhYmxlW2ldLm5h cGksCiAJCQkgICAgICAgbmV0dnNjX3BvbGwsIE5BUElfUE9MTF9XRUlHSFQpOwogCi0JaWYgKG5l dF9kZXZpY2UtPm51bV9jaG4gPiAxKQotCQlzY2hlZHVsZV93b3JrKCZuZXRfZGV2aWNlLT5zdWJj aGFuX3dvcmspOworCXJldHVybiBuZXRfZGV2aWNlOwogCiBvdXQ6Ci0JLyogaWYgdW5hdmFpbGFi bGUsIGp1c3QgcHJvY2VlZCB3aXRoIG9uZSBxdWV1ZSAqLwotCWlmIChyZXQpIHsKLQkJbmV0X2Rl dmljZS0+bWF4X2NobiA9IDE7Ci0JCW5ldF9kZXZpY2UtPm51bV9jaG4gPSAxOwotCX0KLQotCS8q IE5vIHN1YiBjaGFubmVscywgZGV2aWNlIGlzIHJlYWR5ICovCi0JaWYgKG5ldF9kZXZpY2UtPm51 bV9jaG4gPT0gMSkKLQkJbmV0aWZfZGV2aWNlX2F0dGFjaChuZXQpOwotCi0JcmV0dXJuIG5ldF9k ZXZpY2U7CisJLyogc2V0dGluZyB1cCBtdWx0aXBsZSBjaGFubmVscyBmYWlsZWQgKi8KKwluZXRf ZGV2aWNlLT5tYXhfY2huID0gMTsKKwluZXRfZGV2aWNlLT5udW1fY2huID0gMTsKIAogZXJyX2Rl dl9yZW12OgogCXJuZGlzX2ZpbHRlcl9kZXZpY2VfcmVtb3ZlKGRldiwgbmV0X2RldmljZSk7Ci0t IAoyLjE3LjEKCgpGcm9tIDJhMTRkZjZjNTg5MTQxZTM3N2VhNTg4MWIyMTc1ODM3ODQ4MmQ5YzAg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgQmlnZ2VycyA8ZWJpZ2dlcnNAZ29v Z2xlLmNvbT4KRGF0ZTogU2F0LCAzMCBKdW4gMjAxOCAxNToyNjo1NiAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggMDUvNTNdIGlwdjY6IHNyOiBmaXggcGFzc2luZyB3cm9uZyBmbGFncyB0bwogY3J5cHRv X2FsbG9jX3NoYXNoKCkKClsgVXBzdHJlYW0gY29tbWl0IGZjOWMyMDI5ZTM3YzNhZTllZmMyOGJm NDcwNDVlMGI4N2UwOTY2MGMgXQoKVGhlICdtYXNrJyBhcmd1bWVudCB0byBjcnlwdG9fYWxsb2Nf c2hhc2goKSB1c2VzIHRoZSBDUllQVE9fQUxHXyogZmxhZ3MsCm5vdCAnZ2ZwX3QnLiAgU28gZG9u J3QgcGFzcyBHRlBfS0VSTkVMIHRvIGl0LgoKRml4ZXM6IGJmMzU1YjhkMmMzMCAoImlwdjY6IHNy OiBhZGQgY29yZSBmaWxlcyBmb3IgU1IgSE1BQyBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogRXJp YyBCaWdnZXJzIDxlYmlnZ2Vyc0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvc2VnNl9obWFjLmMgfCAy ICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9uZXQvaXB2Ni9zZWc2X2htYWMuYyBiL25ldC9pcHY2L3NlZzZfaG1hYy5jCmluZGV4 IDMzZmIzNWNiZmFjMS4uNTU4ZmU4Y2M2ZDQzIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9zZWc2X2ht YWMuYworKysgYi9uZXQvaXB2Ni9zZWc2X2htYWMuYwpAQCAtMzczLDcgKzM3Myw3IEBAIHN0YXRp YyBpbnQgc2VnNl9obWFjX2luaXRfYWxnbyh2b2lkKQogCQkJcmV0dXJuIC1FTk9NRU07CiAKIAkJ Zm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkgewotCQkJdGZtID0gY3J5cHRvX2FsbG9jX3NoYXNo KGFsZ28tPm5hbWUsIDAsIEdGUF9LRVJORUwpOworCQkJdGZtID0gY3J5cHRvX2FsbG9jX3NoYXNo KGFsZ28tPm5hbWUsIDAsIDApOwogCQkJaWYgKElTX0VSUih0Zm0pKQogCQkJCXJldHVybiBQVFJf RVJSKHRmbSk7CiAJCQlwX3RmbSA9IHBlcl9jcHVfcHRyKGFsZ28tPnRmbXMsIGNwdSk7Ci0tIAoy LjE3LjEKCgpGcm9tIDJmMDBlNWRmNjlmMTYyMDBhNjcwZWE0ODc0ZGQyNzg5ZDg0ODIwOTYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNv bT4KRGF0ZTogVGh1LCAyMSBKdW4gMjAxOCAxMjo1NjowNCArMDgwMApTdWJqZWN0OiBbUEFUQ0gg MDYvNTNdIGlwdmxhbjogZml4IElGTEFfTVRVIGlnbm9yZWQgb24gTkVXTElOSwoKWyBVcHN0cmVh bSBjb21taXQgMzA4Nzc5NjFiMWNkZDZmZGNhNzgzYzJlOGM0ZjBmNDdlOTVkYzU4YyBdCgpDb21t aXQgMjk2ZDQ4NTY4MDQyICgiaXB2bGFuOiBpbmhlcml0IE1UVSBmcm9tIG1hc3RlciBkZXZpY2Ui KSBhZGp1c3RlZAp0aGUgbXR1IGZyb20gdGhlIG1hc3RlciBkZXZpY2Ugd2hlbiBjcmVhdGluZyBh IGlwdmxhbiBkZXZpY2UsIGJ1dCBpdAp3b3VsZCBhbHNvIG92ZXJyaWRlIHRoZSBtdHUgdmFsdWUg c2V0IGluIHJ0bmxfY3JlYXRlX2xpbmsuIEl0IGNhdXNlcwpJRkxBX01UVSBwYXJhbSBub3QgdG8g dGFrZSBlZmZlY3QuCgpTbyB0aGlzIHBhdGNoIGlzIHRvIG5vdCBhZGp1c3QgdGhlIG10dSBpZiBJ RkxBX01UVSBwYXJhbSBpcyBzZXQgd2hlbgpjcmVhdGluZyBhIGlwdmxhbiBkZXZpY2UuCgpGaXhl czogMjk2ZDQ4NTY4MDQyICgiaXB2bGFuOiBpbmhlcml0IE1UVSBmcm9tIG1hc3RlciBkZXZpY2Ui KQpSZXBvcnRlZC1ieTogSmlhbmxpbiBTaGkgPGppc2hpQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYt Ynk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2lwdmxhbi9p cHZsYW5fbWFpbi5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4u YyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jCmluZGV4IDQzNzdjMjZmNzE0ZC4u NjY0MWZkNTM1NWUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4u YworKysgYi9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYwpAQCAtNTk0LDcgKzU5NCw4 IEBAIGludCBpcHZsYW5fbGlua19uZXcoc3RydWN0IG5ldCAqc3JjX25ldCwgc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwKIAlpcHZsYW4tPnBoeV9kZXYgPSBwaHlfZGV2OwogCWlwdmxhbi0+ZGV2ID0g ZGV2OwogCWlwdmxhbi0+c2ZlYXR1cmVzID0gSVBWTEFOX0ZFQVRVUkVTOwotCWlwdmxhbl9hZGp1 c3RfbXR1KGlwdmxhbiwgcGh5X2Rldik7CisJaWYgKCF0YltJRkxBX01UVV0pCisJCWlwdmxhbl9h ZGp1c3RfbXR1KGlwdmxhbiwgcGh5X2Rldik7CiAJSU5JVF9MSVNUX0hFQUQoJmlwdmxhbi0+YWRk cnMpOwogCXNwaW5fbG9ja19pbml0KCZpcHZsYW4tPmFkZHJzX2xvY2spOwogCi0tIAoyLjE3LjEK CgpGcm9tIDA4NmM2NDM4ZDA4YjlhNTI5NDk3YWZiMzc5NDU2YzA3MGVhYzQ5OTEgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEplc3BlciBEYW5nYWFyZCBCcm91ZXIgPGJyb3VlckByZWRo YXQuY29tPgpEYXRlOiBUdWUsIDI2IEp1biAyMDE4IDE3OjM5OjQ4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNy81M10gaXhnYmU6IHNwbGl0IFhEUF9UWCB0YWlsIGFuZCBYRFBfUkVESVJFQ1QgbWFw IGZsdXNoaW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBhZDA4OGVjNDgwNzY4ODUwZGIwMTlhNWNjNTQz Njg1ZTg2OGE1MTNkIF0KClRoZSBkcml2ZXIgd2FzIGNvbWJpbmluZyB0aGUgWERQX1RYIHRhaWwg Zmx1c2ggYW5kIFhEUF9SRURJUkVDVAptYXAgZmx1c2hpbmcgKHhkcF9kb19mbHVzaF9tYXApLiAg VGhpcyBpcyBzdWJvcHRpbWFsLCB0aGVzZSB0d28KZmx1c2ggb3BlcmF0aW9ucyBzaG91bGQgYmUg a2VwdCBzZXBhcmF0ZS4KCkZpeGVzOiAxMTM5M2NjOWI5YmUgKCJ4ZHA6IEFkZCBiYXRjaGluZyBz dXBwb3J0IHRvIHJlZGlyZWN0IG1hcCIpClNpZ25lZC1vZmYtYnk6IEplc3BlciBEYW5nYWFyZCBC cm91ZXIgPGJyb3VlckByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhn YmUvaXhnYmVfbWFpbi5jIHwgMjQgKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDE0IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYwppbmRleCAyZWNkNTU4NTZjNTAuLmE4MjBhNmNk ODMxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVf bWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4u YwpAQCAtMjI1Nyw5ICsyMjU3LDEwIEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqaXhnYmVfYnVp bGRfc2tiKHN0cnVjdCBpeGdiZV9yaW5nICpyeF9yaW5nLAogCXJldHVybiBza2I7CiB9CiAKLSNk ZWZpbmUgSVhHQkVfWERQX1BBU1MgMAotI2RlZmluZSBJWEdCRV9YRFBfQ09OU1VNRUQgMQotI2Rl ZmluZSBJWEdCRV9YRFBfVFggMgorI2RlZmluZSBJWEdCRV9YRFBfUEFTUwkJMAorI2RlZmluZSBJ WEdCRV9YRFBfQ09OU1VNRUQJQklUKDApCisjZGVmaW5lIElYR0JFX1hEUF9UWAkJQklUKDEpCisj ZGVmaW5lIElYR0JFX1hEUF9SRURJUgkJQklUKDIpCiAKIHN0YXRpYyBpbnQgaXhnYmVfeG1pdF94 ZHBfcmluZyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlciwKIAkJCSAgICAgICBzdHJ1Y3Qg eGRwX2J1ZmYgKnhkcCk7CkBAIC0yMjg4LDcgKzIyODksNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1 ZmYgKml4Z2JlX3J1bl94ZHAoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIsCiAJY2FzZSBY RFBfUkVESVJFQ1Q6CiAJCWVyciA9IHhkcF9kb19yZWRpcmVjdChhZGFwdGVyLT5uZXRkZXYsIHhk cCwgeGRwX3Byb2cpOwogCQlpZiAoIWVycikKLQkJCXJlc3VsdCA9IElYR0JFX1hEUF9UWDsKKwkJ CXJlc3VsdCA9IElYR0JFX1hEUF9SRURJUjsKIAkJZWxzZQogCQkJcmVzdWx0ID0gSVhHQkVfWERQ X0NPTlNVTUVEOwogCQlicmVhazsKQEAgLTIzNDgsNyArMjM0OSw3IEBAIHN0YXRpYyBpbnQgaXhn YmVfY2xlYW5fcnhfaXJxKHN0cnVjdCBpeGdiZV9xX3ZlY3RvciAqcV92ZWN0b3IsCiAJdW5zaWdu ZWQgaW50IG1zcyA9IDA7CiAjZW5kaWYgLyogSVhHQkVfRkNPRSAqLwogCXUxNiBjbGVhbmVkX2Nv dW50ID0gaXhnYmVfZGVzY191bnVzZWQocnhfcmluZyk7Ci0JYm9vbCB4ZHBfeG1pdCA9IGZhbHNl OworCXVuc2lnbmVkIGludCB4ZHBfeG1pdCA9IDA7CiAJc3RydWN0IHhkcF9idWZmIHhkcDsKIAog CXhkcC5yeHEgPSAmcnhfcmluZy0+eGRwX3J4cTsKQEAgLTIzOTEsOCArMjM5MiwxMCBAQCBzdGF0 aWMgaW50IGl4Z2JlX2NsZWFuX3J4X2lycShzdHJ1Y3QgaXhnYmVfcV92ZWN0b3IgKnFfdmVjdG9y LAogCQl9CiAKIAkJaWYgKElTX0VSUihza2IpKSB7Ci0JCQlpZiAoUFRSX0VSUihza2IpID09IC1J WEdCRV9YRFBfVFgpIHsKLQkJCQl4ZHBfeG1pdCA9IHRydWU7CisJCQl1bnNpZ25lZCBpbnQgeGRw X3JlcyA9IC1QVFJfRVJSKHNrYik7CisKKwkJCWlmICh4ZHBfcmVzICYgKElYR0JFX1hEUF9UWCB8 IElYR0JFX1hEUF9SRURJUikpIHsKKwkJCQl4ZHBfeG1pdCB8PSB4ZHBfcmVzOwogCQkJCWl4Z2Jl X3J4X2J1ZmZlcl9mbGlwKHJ4X3JpbmcsIHJ4X2J1ZmZlciwgc2l6ZSk7CiAJCQl9IGVsc2Ugewog CQkJCXJ4X2J1ZmZlci0+cGFnZWNudF9iaWFzKys7CkBAIC0yNDY0LDcgKzI0NjcsMTAgQEAgc3Rh dGljIGludCBpeGdiZV9jbGVhbl9yeF9pcnEoc3RydWN0IGl4Z2JlX3FfdmVjdG9yICpxX3ZlY3Rv ciwKIAkJdG90YWxfcnhfcGFja2V0cysrOwogCX0KIAotCWlmICh4ZHBfeG1pdCkgeworCWlmICh4 ZHBfeG1pdCAmIElYR0JFX1hEUF9SRURJUikKKwkJeGRwX2RvX2ZsdXNoX21hcCgpOworCisJaWYg KHhkcF94bWl0ICYgSVhHQkVfWERQX1RYKSB7CiAJCXN0cnVjdCBpeGdiZV9yaW5nICpyaW5nID0g YWRhcHRlci0+eGRwX3Jpbmdbc21wX3Byb2Nlc3Nvcl9pZCgpXTsKIAogCQkvKiBGb3JjZSBtZW1v cnkgd3JpdGVzIHRvIGNvbXBsZXRlIGJlZm9yZSBsZXR0aW5nIGgvdwpAQCAtMjQ3Miw4ICsyNDc4 LDYgQEAgc3RhdGljIGludCBpeGdiZV9jbGVhbl9yeF9pcnEoc3RydWN0IGl4Z2JlX3FfdmVjdG9y ICpxX3ZlY3RvciwKIAkJICovCiAJCXdtYigpOwogCQl3cml0ZWwocmluZy0+bmV4dF90b191c2Us IHJpbmctPnRhaWwpOwotCi0JCXhkcF9kb19mbHVzaF9tYXAoKTsKIAl9CiAKIAl1NjRfc3RhdHNf dXBkYXRlX2JlZ2luKCZyeF9yaW5nLT5zeW5jcCk7Ci0tIAoyLjE3LjEKCgpGcm9tIGUyMDY0MjFj OTFlN2MxY2QyZDhlMzRjNjg4YzcyMGVlZjJhNWZhMTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAyMiBK dW4gMjAxOCAwNjo0NDoxNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDgvNTNdIG5ldDogZGNjcDog YXZvaWQgY3Jhc2ggaW4gY2NpZDNfaGNfcnhfc2VuZF9mZWVkYmFjaygpCgpbIFVwc3RyZWFtIGNv bW1pdCA3NDE3NGZlNTYzNGZmYmY2NDVhN2NhNWEyNjE1NzFmNzAwYjJmMzMyIF0KCk9uIGZhc3Qg aG9zdHMgb3IgbWFsaWNpb3VzIGJvdHMsIHdlIHRyaWdnZXIgYSBEQ0NQX0JVRygpIHdoaWNoCnNl ZW1zIGV4Y2Vzc2l2ZS4KCnN5emJvdCByZXBvcnRlZCA6CgpCVUc6IGRlbHRhICgtNjE5NSkgPD0g MCBhdCBuZXQvZGNjcC9jY2lkcy9jY2lkMy5jOjYyOC9jY2lkM19oY19yeF9zZW5kX2ZlZWRiYWNr KCkKQ1BVOiAxIFBJRDogMTggQ29tbToga3NvZnRpcnFkLzEgTm90IHRhaW50ZWQgNC4xOC4wLXJj MSsgIzExMgpIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2ds ZSBDb21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19k dW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6NzcgW2lubGluZV0KIGR1bXBfc3RhY2srMHgxYzkv MHgyYjQgbGliL2R1bXBfc3RhY2suYzoxMTMKIGNjaWQzX2hjX3J4X3NlbmRfZmVlZGJhY2sgbmV0 L2RjY3AvY2NpZHMvY2NpZDMuYzo2MjggW2lubGluZV0KIGNjaWQzX2hjX3J4X3BhY2tldF9yZWN2 LmNvbGQuMTYrMHgzOC8weDcxIG5ldC9kY2NwL2NjaWRzL2NjaWQzLmM6NzkzCiBjY2lkX2hjX3J4 X3BhY2tldF9yZWN2IG5ldC9kY2NwL2NjaWQuaDoxODUgW2lubGluZV0KIGRjY3BfZGVsaXZlcl9p bnB1dF90b19jY2lkcysweGYwLzB4MjgwIG5ldC9kY2NwL2lucHV0LmM6MTgwCiBkY2NwX3Jjdl9l c3RhYmxpc2hlZCsweDg3LzB4YjAgbmV0L2RjY3AvaW5wdXQuYzozNzgKIGRjY3BfdjRfZG9fcmN2 KzB4MTUzLzB4MTgwIG5ldC9kY2NwL2lwdjQuYzo2NTQKIHNrX2JhY2tsb2dfcmN2IGluY2x1ZGUv bmV0L3NvY2suaDo5MTQgW2lubGluZV0KIF9fc2tfcmVjZWl2ZV9za2IrMHgzYmEvMHhkODAgbmV0 L2NvcmUvc29jay5jOjUxNwogZGNjcF92NF9yY3YrMHgxMGY5LzB4MWY1OCBuZXQvZGNjcC9pcHY0 LmM6ODc1CiBpcF9sb2NhbF9kZWxpdmVyX2ZpbmlzaCsweDJlYi8weGRhMCBuZXQvaXB2NC9pcF9p bnB1dC5jOjIxNQogTkZfSE9PSyBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI4NyBbaW5saW5l XQogaXBfbG9jYWxfZGVsaXZlcisweDFlOS8weDc1MCBuZXQvaXB2NC9pcF9pbnB1dC5jOjI1Ngog ZHN0X2lucHV0IGluY2x1ZGUvbmV0L2RzdC5oOjQ1MCBbaW5saW5lXQogaXBfcmN2X2ZpbmlzaCsw eDgyMy8weDIyMjAgbmV0L2lwdjQvaXBfaW5wdXQuYzozOTYKIE5GX0hPT0sgaW5jbHVkZS9saW51 eC9uZXRmaWx0ZXIuaDoyODcgW2lubGluZV0KIGlwX3JjdisweGExOC8weDEyODQgbmV0L2lwdjQv aXBfaW5wdXQuYzo0OTIKIF9fbmV0aWZfcmVjZWl2ZV9za2JfY29yZSsweDI0ODgvMHgzNjgwIG5l dC9jb3JlL2Rldi5jOjQ2MjgKIF9fbmV0aWZfcmVjZWl2ZV9za2IrMHgyYy8weDFlMCBuZXQvY29y ZS9kZXYuYzo0NjkzCiBwcm9jZXNzX2JhY2tsb2crMHgyMTkvMHg3NjAgbmV0L2NvcmUvZGV2LmM6 NTM3MwogbmFwaV9wb2xsIG5ldC9jb3JlL2Rldi5jOjU3NzEgW2lubGluZV0KIG5ldF9yeF9hY3Rp b24rMHg3ZGEvMHgxOTgwIG5ldC9jb3JlL2Rldi5jOjU4MzcKIF9fZG9fc29mdGlycSsweDJlOC8w eGIxNyBrZXJuZWwvc29mdGlycS5jOjI4NAogcnVuX2tzb2Z0aXJxZCsweDg2LzB4MTAwIGtlcm5l bC9zb2Z0aXJxLmM6NjQ1CiBzbXBib290X3RocmVhZF9mbisweDQxNy8weDg3MCBrZXJuZWwvc21w Ym9vdC5jOjE2NAoga3RocmVhZCsweDM0NS8weDQxMCBrZXJuZWwva3RocmVhZC5jOjI0MAogcmV0 X2Zyb21fZm9yaysweDNhLzB4NTAgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzo0MTIKClNpZ25l ZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6 IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+CkNjOiBHZXJyaXQgUmVua2VyIDxn ZXJyaXRAZXJnLmFiZG4uYWMudWs+CkNjOiBkY2NwQHZnZXIua2VybmVsLm9yZwpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2RjY3Av Y2NpZHMvY2NpZDMuYyB8IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2RjY3AvY2NpZHMvY2NpZDMuYyBiL25l dC9kY2NwL2NjaWRzL2NjaWQzLmMKaW5kZXggOGI1YmE2ZGZmYWM3Li5kNTdhMmJlMWUyZTAgMTAw NjQ0Ci0tLSBhL25ldC9kY2NwL2NjaWRzL2NjaWQzLmMKKysrIGIvbmV0L2RjY3AvY2NpZHMvY2Np ZDMuYwpAQCAtNjI1LDkgKzYyNSw4IEBAIHN0YXRpYyB2b2lkIGNjaWQzX2hjX3J4X3NlbmRfZmVl ZGJhY2soc3RydWN0IHNvY2sgKnNrLAogCWNhc2UgQ0NJRDNfRkJBQ0tfUEVSSU9ESUM6CiAJCWRl bHRhID0ga3RpbWVfdXNfZGVsdGEobm93LCBoYy0+cnhfdHN0YW1wX2xhc3RfZmVlZGJhY2spOwog CQlpZiAoZGVsdGEgPD0gMCkKLQkJCURDQ1BfQlVHKCJkZWx0YSAoJWxkKSA8PSAwIiwgKGxvbmcp ZGVsdGEpOwotCQllbHNlCi0JCQloYy0+cnhfeF9yZWN2ID0gc2NhbGVkX2RpdjMyKGhjLT5yeF9i eXRlc19yZWN2LCBkZWx0YSk7CisJCQlkZWx0YSA9IDE7CisJCWhjLT5yeF94X3JlY3YgPSBzY2Fs ZWRfZGl2MzIoaGMtPnJ4X2J5dGVzX3JlY3YsIGRlbHRhKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoK IAkJcmV0dXJuOwotLSAKMi4xNy4xCgoKRnJvbSA1ZmI3NTMyZGIzYTIxYjdiYWY5MGIwYmU3ODM1 OGRjMjNmOGIwYzJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IEZyaSwgMjIgSnVuIDIwMTggMDY6NDQ6MTUgLTA3 MDAKU3ViamVjdDogW1BBVENIIDA5LzUzXSBuZXQ6IGRjY3A6IHN3aXRjaCByeF90c3RhbXBfbGFz dF9mZWVkYmFjayB0byBtb25vdG9uaWMKIGNsb2NrCgpbIFVwc3RyZWFtIGNvbW1pdCAwY2U0ZTcw ZmYwMDY2MmFkNzQ5MGU1NDViYTBjZDhjMWZhMTc5ZmNhIF0KClRvIGNvbXB1dGUgZGVsYXlzLCBi ZXR0ZXIgbm90IHVzZSB0aW1lIG9mIHRoZSBkYXkgd2hpY2ggY2FuCmJlIGNoYW5nZWQgYnkgYWRt aW5zIG9yIG1hbGljaW91cyBwcm9ncmFtcy4KCkFsc28gY2hhbmdlIGNjaWQzX2ZpcnN0X2xpKCkg dG8gdXNlIHM2NCB0eXBlIGZvciBkZWx0YSB2YXJpYWJsZQp0byBhdm9pZCBwb3RlbnRpYWwgb3Zl cmZsb3dzLgoKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpDYzogR2Vycml0IFJlbmtlciA8Z2Vycml0QGVyZy5hYmRuLmFjLnVrPgpDYzogZGNjcEB2Z2Vy Lmtlcm5lbC5vcmcKU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9kY2NwL2NjaWRzL2NjaWQzLmMgfCAxMSArKysrKysrLS0tLQogMSBm aWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvZGNjcC9jY2lkcy9jY2lkMy5jIGIvbmV0L2RjY3AvY2NpZHMvY2NpZDMuYwppbmRleCBk NTdhMmJlMWUyZTAuLjEyODc3YTE1MTRlNyAxMDA2NDQKLS0tIGEvbmV0L2RjY3AvY2NpZHMvY2Np ZDMuYworKysgYi9uZXQvZGNjcC9jY2lkcy9jY2lkMy5jCkBAIC02MDAsNyArNjAwLDcgQEAgc3Rh dGljIHZvaWQgY2NpZDNfaGNfcnhfc2VuZF9mZWVkYmFjayhzdHJ1Y3Qgc29jayAqc2ssCiB7CiAJ c3RydWN0IGNjaWQzX2hjX3J4X3NvY2sgKmhjID0gY2NpZDNfaGNfcnhfc2soc2spOwogCXN0cnVj dCBkY2NwX3NvY2sgKmRwID0gZGNjcF9zayhzayk7Ci0Ja3RpbWVfdCBub3cgPSBrdGltZV9nZXRf cmVhbCgpOworCWt0aW1lX3Qgbm93ID0ga3RpbWVfZ2V0KCk7CiAJczY0IGRlbHRhID0gMDsKIAog CXN3aXRjaCAoZmJ0eXBlKSB7CkBAIC02MzIsNyArNjMyLDcgQEAgc3RhdGljIHZvaWQgY2NpZDNf aGNfcnhfc2VuZF9mZWVkYmFjayhzdHJ1Y3Qgc29jayAqc2ssCiAJCXJldHVybjsKIAl9CiAKLQlj Y2lkM19wcl9kZWJ1ZygiSW50ZXJ2YWwgJWxkdXNlYywgWF9yZWN2PSV1LCAxL3A9JXVcbiIsIChs b25nKWRlbHRhLAorCWNjaWQzX3ByX2RlYnVnKCJJbnRlcnZhbCAlbGxkdXNlYywgWF9yZWN2PSV1 LCAxL3A9JXVcbiIsIGRlbHRhLAogCQkgICAgICAgaGMtPnJ4X3hfcmVjdiwgaGMtPnJ4X3BpbnYp OwogCiAJaGMtPnJ4X3RzdGFtcF9sYXN0X2ZlZWRiYWNrID0gbm93OwpAQCAtNjc5LDcgKzY3OSw4 IEBAIHN0YXRpYyBpbnQgY2NpZDNfaGNfcnhfaW5zZXJ0X29wdGlvbnMoc3RydWN0IHNvY2sgKnNr LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogc3RhdGljIHUzMiBjY2lkM19maXJzdF9saShzdHJ1Y3Qg c29jayAqc2spCiB7CiAJc3RydWN0IGNjaWQzX2hjX3J4X3NvY2sgKmhjID0gY2NpZDNfaGNfcnhf c2soc2spOwotCXUzMiB4X3JlY3YsIHAsIGRlbHRhOworCXUzMiB4X3JlY3YsIHA7CisJczY0IGRl bHRhOwogCXU2NCBmdmFsOwogCiAJaWYgKGhjLT5yeF9ydHQgPT0gMCkgewpAQCAtNjg3LDcgKzY4 OCw5IEBAIHN0YXRpYyB1MzIgY2NpZDNfZmlyc3RfbGkoc3RydWN0IHNvY2sgKnNrKQogCQloYy0+ cnhfcnR0ID0gRENDUF9GQUxMQkFDS19SVFQ7CiAJfQogCi0JZGVsdGEgID0ga3RpbWVfdG9fdXMo bmV0X3RpbWVkZWx0YShoYy0+cnhfdHN0YW1wX2xhc3RfZmVlZGJhY2spKTsKKwlkZWx0YSA9IGt0 aW1lX3VzX2RlbHRhKGt0aW1lX2dldCgpLCBoYy0+cnhfdHN0YW1wX2xhc3RfZmVlZGJhY2spOwor CWlmIChkZWx0YSA8PSAwKQorCQlkZWx0YSA9IDE7CiAJeF9yZWN2ID0gc2NhbGVkX2RpdjMyKGhj LT5yeF9ieXRlc19yZWN2LCBkZWx0YSk7CiAJaWYgKHhfcmVjdiA9PSAwKSB7CQkvKiB3b3VsZCBh bHNvIHRyaWdnZXIgZGl2aWRlLWJ5LXplcm8gKi8KIAkJRENDUF9XQVJOKCJYX3JlY3Y9PTBcbiIp OwotLSAKMi4xNy4xCgoKRnJvbSA2OWFlMzA5ZjRiYmRmYzE3ZDQwY2NlNjIzODE0Mjc0MzdiMDE4 ZTkzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1 ZWFzeXNuYWlsLm5ldD4KRGF0ZTogU2F0LCAzMCBKdW4gMjAxOCAxNzozODo1NSArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMTAvNTNdIG5ldDogZml4IHVzZS1hZnRlci1mcmVlIGluIEdSTyB3aXRoIEVT UAoKWyBVcHN0cmVhbSBjb21taXQgNjAzZDRjZjhmZTA5NWIxZWU3OGY0MjNkNTE0NDI3YmU1MDdm YjUxMyBdCgpTaW5jZSB0aGUgYWRkaXRpb24gb2YgR1JPIGZvciBFU1AsIGdyb19yZWNlaXZlIGNh biBjb25zdW1lIHRoZSBza2IgYW5kCnJldHVybiAtRUlOUFJPR1JFU1MuIEluIHRoYXQgY2FzZSwg dGhlIGxvd2VyIGxheWVyIEdSTyBoYW5kbGVyIGNhbm5vdAp0b3VjaCB0aGUgc2tiIGFueW1vcmUu CgpDb21taXQgNWYxMTQxNjNmMmY1ICgibmV0OiBBZGQgYSBza2JfZ3JvX2ZsdXNoX2ZpbmFsIGhl bHBlci4iKSBjb252ZXJ0ZWQKc29tZSBvZiB0aGUgZ3JvX3JlY2VpdmUgaGFuZGxlcnMgdGhhdCBj YW4gbGVhZCB0byBFU1AncyBncm9fcmVjZWl2ZSBzbwp0aGF0IHRoZXkgd291bGRuJ3QgYWNjZXNz IHRoZSBza2Igd2hlbiAtRUlOUFJPR1JFU1MgaXMgcmV0dXJuZWQsIGJ1dAptaXNzZWQgb3RoZXIg c3BvdHMsIG1haW5seSBpbiB0dW5uZWxpbmcgcHJvdG9jb2xzLgoKVGhpcyBwYXRjaCBmaW5pc2hl cyB0aGUgY29udmVyc2lvbiB0byB1c2luZyBza2JfZ3JvX2ZsdXNoX2ZpbmFsKCksIGFuZAphZGRz IGEgbmV3IGhlbHBlciwgc2tiX2dyb19mbHVzaF9maW5hbF9yZW1jc3VtKCksIHVzZWQgaW4gVlhM QU4gYW5kCkdVRS4KCkZpeGVzOiA1ZjExNDE2M2YyZjUgKCJuZXQ6IEFkZCBhIHNrYl9ncm9fZmx1 c2hfZmluYWwgaGVscGVyLiIpClNpZ25lZC1vZmYtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVl YXN5c25haWwubmV0PgpSZXZpZXdlZC1ieTogU3RlZmFubyBCcml2aW8gPHNicml2aW9AcmVkaGF0 LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L2dlbmV2ZS5jICAgICAgfCAgMiArLQogZHJpdmVycy9uZXQvdnhs YW4uYyAgICAgICB8ICA0ICstLS0KIGluY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmggfCAyMCArKysr KysrKysrKysrKysrKysrKwogbmV0LzgwMjFxL3ZsYW4uYyAgICAgICAgICB8ICAyICstCiBuZXQv aXB2NC9mb3UuYyAgICAgICAgICAgIHwgIDQgKy0tLQogbmV0L2lwdjQvZ3JlX29mZmxvYWQuYyAg ICB8ICAyICstCiBuZXQvaXB2NC91ZHBfb2ZmbG9hZC5jICAgIHwgIDIgKy0KIDcgZmlsZXMgY2hh bmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZ2VuZXZlLmMgYi9kcml2ZXJzL25ldC9nZW5ldmUuYwppbmRleCBiOTE5ZTg5YTli OTMuLjRiMzk4NmRkYTUyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZ2VuZXZlLmMKKysrIGIv ZHJpdmVycy9uZXQvZ2VuZXZlLmMKQEAgLTQ3NCw3ICs0NzQsNyBAQCBzdGF0aWMgc3RydWN0IHNr X2J1ZmYgKipnZW5ldmVfZ3JvX3JlY2VpdmUoc3RydWN0IHNvY2sgKnNrLAogb3V0X3VubG9jazoK IAlyY3VfcmVhZF91bmxvY2soKTsKIG91dDoKLQlOQVBJX0dST19DQihza2IpLT5mbHVzaCB8PSBm bHVzaDsKKwlza2JfZ3JvX2ZsdXNoX2ZpbmFsKHNrYiwgcHAsIGZsdXNoKTsKIAogCXJldHVybiBw cDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Z4bGFuLmMgYi9kcml2ZXJzL25ldC92eGxh bi5jCmluZGV4IGZhYjdhNGRiMjQ5ZS4uNGIxNzA1OTlmYTVlIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC92eGxhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKQEAgLTYyMyw5ICs2MjMsNyBA QCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKip2eGxhbl9ncm9fcmVjZWl2ZShzdHJ1Y3Qgc29jayAq c2ssCiAJZmx1c2ggPSAwOwogCiBvdXQ6Ci0Jc2tiX2dyb19yZW1jc3VtX2NsZWFudXAoc2tiLCAm Z3JjKTsKLQlza2ItPnJlbWNzdW1fb2ZmbG9hZCA9IDA7Ci0JTkFQSV9HUk9fQ0Ioc2tiKS0+Zmx1 c2ggfD0gZmx1c2g7CisJc2tiX2dyb19mbHVzaF9maW5hbF9yZW1jc3VtKHNrYiwgcHAsIGZsdXNo LCAmZ3JjKTsKIAogCXJldHVybiBwcDsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbmV0 ZGV2aWNlLmggYi9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oCmluZGV4IGNmNDQ1MDNlYTgxYS4u NWFkOTE2ZDMxNDcxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oCisrKyBi L2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKQEAgLTI3MzUsMTEgKzI3MzUsMzEgQEAgc3RhdGlj IGlubGluZSB2b2lkIHNrYl9ncm9fZmx1c2hfZmluYWwoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3Ry dWN0IHNrX2J1ZmYgKipwcCwKIAlpZiAoUFRSX0VSUihwcCkgIT0gLUVJTlBST0dSRVNTKQogCQlO QVBJX0dST19DQihza2IpLT5mbHVzaCB8PSBmbHVzaDsKIH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBz a2JfZ3JvX2ZsdXNoX2ZpbmFsX3JlbWNzdW0oc3RydWN0IHNrX2J1ZmYgKnNrYiwKKwkJCQkJICAg ICAgIHN0cnVjdCBza19idWZmICoqcHAsCisJCQkJCSAgICAgICBpbnQgZmx1c2gsCisJCQkJCSAg ICAgICBzdHJ1Y3QgZ3JvX3JlbWNzdW0gKmdyYykKK3sKKwlpZiAoUFRSX0VSUihwcCkgIT0gLUVJ TlBST0dSRVNTKSB7CisJCU5BUElfR1JPX0NCKHNrYiktPmZsdXNoIHw9IGZsdXNoOworCQlza2Jf Z3JvX3JlbWNzdW1fY2xlYW51cChza2IsIGdyYyk7CisJCXNrYi0+cmVtY3N1bV9vZmZsb2FkID0g MDsKKwl9Cit9CiAjZWxzZQogc3RhdGljIGlubGluZSB2b2lkIHNrYl9ncm9fZmx1c2hfZmluYWwo c3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHNrX2J1ZmYgKipwcCwgaW50IGZsdXNoKQogewog CU5BUElfR1JPX0NCKHNrYiktPmZsdXNoIHw9IGZsdXNoOwogfQorc3RhdGljIGlubGluZSB2b2lk IHNrYl9ncm9fZmx1c2hfZmluYWxfcmVtY3N1bShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJCQkg ICAgICAgc3RydWN0IHNrX2J1ZmYgKipwcCwKKwkJCQkJICAgICAgIGludCBmbHVzaCwKKwkJCQkJ ICAgICAgIHN0cnVjdCBncm9fcmVtY3N1bSAqZ3JjKQoreworCU5BUElfR1JPX0NCKHNrYiktPmZs dXNoIHw9IGZsdXNoOworCXNrYl9ncm9fcmVtY3N1bV9jbGVhbnVwKHNrYiwgZ3JjKTsKKwlza2It PnJlbWNzdW1fb2ZmbG9hZCA9IDA7Cit9CiAjZW5kaWYKIAogc3RhdGljIGlubGluZSBpbnQgZGV2 X2hhcmRfaGVhZGVyKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYs CmRpZmYgLS1naXQgYS9uZXQvODAyMXEvdmxhbi5jIGIvbmV0LzgwMjFxL3ZsYW4uYwppbmRleCA1 NTA1ZWU2ZWJkYmUuLmQzYTVlYzAyZTY0YyAxMDA2NDQKLS0tIGEvbmV0LzgwMjFxL3ZsYW4uYwor KysgYi9uZXQvODAyMXEvdmxhbi5jCkBAIC02ODgsNyArNjg4LDcgQEAgc3RhdGljIHN0cnVjdCBz a19idWZmICoqdmxhbl9ncm9fcmVjZWl2ZShzdHJ1Y3Qgc2tfYnVmZiAqKmhlYWQsCiBvdXRfdW5s b2NrOgogCXJjdV9yZWFkX3VubG9jaygpOwogb3V0OgotCU5BUElfR1JPX0NCKHNrYiktPmZsdXNo IHw9IGZsdXNoOworCXNrYl9ncm9fZmx1c2hfZmluYWwoc2tiLCBwcCwgZmx1c2gpOwogCiAJcmV0 dXJuIHBwOwogfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZm91LmMgYi9uZXQvaXB2NC9mb3UuYwpp bmRleCAxNTQwZGI2NTI0MWEuLmM5ZWMxNjAzNjY2YiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZm91 LmMKKysrIGIvbmV0L2lwdjQvZm91LmMKQEAgLTQ0OCw5ICs0NDgsNyBAQCBzdGF0aWMgc3RydWN0 IHNrX2J1ZmYgKipndWVfZ3JvX3JlY2VpdmUoc3RydWN0IHNvY2sgKnNrLAogb3V0X3VubG9jazoK IAlyY3VfcmVhZF91bmxvY2soKTsKIG91dDoKLQlOQVBJX0dST19DQihza2IpLT5mbHVzaCB8PSBm bHVzaDsKLQlza2JfZ3JvX3JlbWNzdW1fY2xlYW51cChza2IsICZncmMpOwotCXNrYi0+cmVtY3N1 bV9vZmZsb2FkID0gMDsKKwlza2JfZ3JvX2ZsdXNoX2ZpbmFsX3JlbWNzdW0oc2tiLCBwcCwgZmx1 c2gsICZncmMpOwogCiAJcmV0dXJuIHBwOwogfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZ3JlX29m ZmxvYWQuYyBiL25ldC9pcHY0L2dyZV9vZmZsb2FkLmMKaW5kZXggMTg1OWM0NzNiMjFhLi42YTdk OTgwMTA1ZjYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2dyZV9vZmZsb2FkLmMKKysrIGIvbmV0L2lw djQvZ3JlX29mZmxvYWQuYwpAQCAtMjIzLDcgKzIyMyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVm ZiAqKmdyZV9ncm9fcmVjZWl2ZShzdHJ1Y3Qgc2tfYnVmZiAqKmhlYWQsCiBvdXRfdW5sb2NrOgog CXJjdV9yZWFkX3VubG9jaygpOwogb3V0OgotCU5BUElfR1JPX0NCKHNrYiktPmZsdXNoIHw9IGZs dXNoOworCXNrYl9ncm9fZmx1c2hfZmluYWwoc2tiLCBwcCwgZmx1c2gpOwogCiAJcmV0dXJuIHBw OwogfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwX29mZmxvYWQuYyBiL25ldC9pcHY0L3VkcF9v ZmZsb2FkLmMKaW5kZXggZWE2ZTZlN2RmMGVlLi5jZGUyNzE5ZmNiODkgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L3VkcF9vZmZsb2FkLmMKKysrIGIvbmV0L2lwdjQvdWRwX29mZmxvYWQuYwpAQCAtMjk1 LDcgKzI5NSw3IEBAIHN0cnVjdCBza19idWZmICoqdWRwX2dyb19yZWNlaXZlKHN0cnVjdCBza19i dWZmICoqaGVhZCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIG91dF91bmxvY2s6CiAJcmN1X3JlYWRf dW5sb2NrKCk7CiBvdXQ6Ci0JTkFQSV9HUk9fQ0Ioc2tiKS0+Zmx1c2ggfD0gZmx1c2g7CisJc2ti X2dyb19mbHVzaF9maW5hbChza2IsIHBwLCBmbHVzaCk7CiAJcmV0dXJuIHBwOwogfQogRVhQT1JU X1NZTUJPTCh1ZHBfZ3JvX3JlY2VpdmUpOwotLSAKMi4xNy4xCgoKRnJvbSA1NmQ5MzNmNzFmZWY5 NzcxZjFjNDQ0YTY1ZmY0OTQwODdjZWE2ZTdhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBIYXJpbmkgS2F0YWthbSA8aGFyaW5pLmthdGFrYW1AeGlsaW54LmNvbT4KRGF0ZTogV2VkLCAy MCBKdW4gMjAxOCAxNzowNDoyMCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggMTEvNTNdIG5ldDogbWFj YjogRml4IHB0cCB0aW1lIGFkanVzdG1lbnQgZm9yIGxhcmdlIG5lZ2F0aXZlCiBkZWx0YQoKWyBV cHN0cmVhbSBjb21taXQgNjRkNzgzOWFmOGM4ZjY3ZGFhZjliZjM4NzEzNTA1MmM1NWQ4NWY5MCBd CgpXaGVuIGRlbHRhIHBhc3NlZCB0byBnZW1fcHRwX2FkanRpbWUgaXMgbmVnYXRpdmUsIHRoZSBz aWduIGlzCm1haW50YWluZWQgaW4gdGhlIG5zX3RvX3RpbWVzcGVjNjQgY29udmVyc2lvbi4gSGVu Y2UgdGltZXNwZWNfYWRkCnNob3VsZCBiZSB1c2VkIGRpcmVjdGx5LiB0aW1lc3BlY19zdWIgd2ls bCBqdXN0IHN1YnRyYWN0IHRoZSBuZWdhdGl2ZQp2YWx1ZSB0aHVzIGluY3JlYXNpbmcgdGhlIHRp bWUgZGlmZmVyZW5jZS4KClNpZ25lZC1vZmYtYnk6IEhhcmluaSBLYXRha2FtIDxoYXJpbmkua2F0 YWthbUB4aWxpbnguY29tPgpBY2tlZC1ieTogTmljb2xhcyBGZXJyZSA8bmljb2xhcy5mZXJyZUBt aWNyb2NoaXAuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jIHwg NSArLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA0IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYwppbmRleCAyMjIwYzc3MTA5MmIu LjY3ODgzNTEzNmJmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9t YWNiX3B0cC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYwpA QCAtMTcwLDEwICsxNzAsNyBAQCBzdGF0aWMgaW50IGdlbV9wdHBfYWRqdGltZShzdHJ1Y3QgcHRw X2Nsb2NrX2luZm8gKnB0cCwgczY0IGRlbHRhKQogCiAJaWYgKGRlbHRhID4gVFNVX05TRUNfTUFY X1ZBTCkgewogCQlnZW1fdHN1X2dldF90aW1lKCZicC0+cHRwX2Nsb2NrX2luZm8sICZub3cpOwot CQlpZiAoc2lnbikKLQkJCW5vdyA9IHRpbWVzcGVjNjRfc3ViKG5vdywgdGhlbik7Ci0JCWVsc2UK LQkJCW5vdyA9IHRpbWVzcGVjNjRfYWRkKG5vdywgdGhlbik7CisJCW5vdyA9IHRpbWVzcGVjNjRf YWRkKG5vdywgdGhlbik7CiAKIAkJZ2VtX3RzdV9zZXRfdGltZSgmYnAtPnB0cF9jbG9ja19pbmZv LAogCQkJCSAoY29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKikmbm93KTsKLS0gCjIuMTcuMQoKCkZy b20gZTQyN2VjZTFjZGU0MmE0ZmNlNWYxZWViNTZhNDgzMTBmYzhlMjRkMyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogT3IgR2VybGl0eiA8b2dlcmxpdHpAbWVsbGFub3guY29tPgpEYXRl OiBUaHUsIDMxIE1heSAyMDE4IDExOjMyOjU2ICswMzAwClN1YmplY3Q6IFtQQVRDSCAxMi81M10g bmV0L21seDVlOiBBdm9pZCBkZWFsaW5nIHdpdGggdnBvcnQgcmVwcmVzZW50b3JzIGlmIG5vdAog YmVpbmcgZS1zd2l0Y2ggbWFuYWdlcgoKWyBVcHN0cmVhbSBjb21taXQgNzMzZDNlNTQ5NzA3MGQw NTk3MTM1MmNhNTA4N2JhYzgzYzE5N2MzZCBdCgpJbiBzbWFydG5pYyBlbnYsIHRoZSBob3N0IChQ RikgZHJpdmVyIG1pZ2h0IG5vdCBiZSBhbiBlLXN3aXRjaAptYW5hZ2VyLCBoZW5jZSB0aGUgc3dp dGNoZGV2IG1vZGUgcmVwcmVzZW50b3JzIGFyZSBydW5uaW5nIG9uCnRoZSBlbWJlZGRlZCBjcHUg KEVDKSBhbmQgbm90IGF0IHRoZSBob3N0LgoKQXMgc3VjaCwgd2Ugc2hvdWxkIGF2b2lkIGRlYWxp bmcgd2l0aCB2cG9ydCByZXByZXNlbnRvcnMgaWYKbm90IGJlaW5nIGVzdyBtYW5hZ2VyLgoKV2hp bGUgaGVyZSwgbWFrZSBzdXJlIHRvIGRpc2FsbG93IGVzd2l0Y2ggc3dpdGNoZGV2IHJlbGF0ZWQK c2V0dXBzIHRocm91Z2ggZGV2bGluayBpZiB3ZSBhcmUgbm90IGVzdyBtYW5hZ2Vycy4KCkZpeGVz OiBjYjY3YjgzMjkyMWMgKCduZXQvbWx4NWU6IEludHJvZHVjZSBTUklPViBWRiByZXByZXNlbnRv cnMnKQpTaWduZWQtb2ZmLWJ5OiBPciBHZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+ClJl dmlld2VkLWJ5OiBFbGkgQ29oZW4gPGVsaUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNh ZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgICAgfCAxMiArKysrKystLS0tLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yZXAuYyAgICAgfCAgMiAr LQogLi4uL2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMgICB8 ICA0ICsrLS0KIDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFp bi5jCmluZGV4IGIyOWMxZDkzZjA1OC4uZDNhMWEyMjgxZTc3IDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMKQEAgLTI2MTIsNyArMjYx Miw3IEBAIHZvaWQgbWx4NWVfYWN0aXZhdGVfcHJpdl9jaGFubmVscyhzdHJ1Y3QgbWx4NWVfcHJp diAqcHJpdikKIAltbHg1ZV9hY3RpdmF0ZV9jaGFubmVscygmcHJpdi0+Y2hhbm5lbHMpOwogCW5l dGlmX3R4X3N0YXJ0X2FsbF9xdWV1ZXMocHJpdi0+bmV0ZGV2KTsKIAotCWlmIChNTFg1X1ZQT1JU X01BTkFHRVIocHJpdi0+bWRldikpCisJaWYgKE1MWDVfRVNXSVRDSF9NQU5BR0VSKHByaXYtPm1k ZXYpKQogCQltbHg1ZV9hZGRfc3FzX2Z3ZF9ydWxlcyhwcml2KTsKIAogCW1seDVlX3dhaXRfY2hh bm5lbHNfbWluX3J4X3dxZXMoJnByaXYtPmNoYW5uZWxzKTsKQEAgLTI2MjMsNyArMjYyMyw3IEBA IHZvaWQgbWx4NWVfZGVhY3RpdmF0ZV9wcml2X2NoYW5uZWxzKHN0cnVjdCBtbHg1ZV9wcml2ICpw cml2KQogewogCW1seDVlX3JlZGlyZWN0X3JxdHNfdG9fZHJvcChwcml2KTsKIAotCWlmIChNTFg1 X1ZQT1JUX01BTkFHRVIocHJpdi0+bWRldikpCisJaWYgKE1MWDVfRVNXSVRDSF9NQU5BR0VSKHBy aXYtPm1kZXYpKQogCQltbHg1ZV9yZW1vdmVfc3FzX2Z3ZF9ydWxlcyhwcml2KTsKIAogCS8qIEZJ WE1FOiBUaGlzIGlzIGEgVy9BIG9ubHkgZm9yIHR4IHRpbWVvdXQgd2F0Y2ggZG9nIGZhbHNlIGFs YXJtIHdoZW4KQEAgLTQzMTUsNyArNDMxNSw3IEBAIHN0YXRpYyB2b2lkIG1seDVlX2J1aWxkX25p Y19uZXRkZXYoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAltbHg1ZV9zZXRfbmV0ZGV2X2Rl dl9hZGRyKG5ldGRldik7CiAKICNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X0VTV0lUQ0gpCi0J aWYgKE1MWDVfVlBPUlRfTUFOQUdFUihtZGV2KSkKKwlpZiAoTUxYNV9FU1dJVENIX01BTkFHRVIo bWRldikpCiAJCW5ldGRldi0+c3dpdGNoZGV2X29wcyA9ICZtbHg1ZV9zd2l0Y2hkZXZfb3BzOwog I2VuZGlmCiAKQEAgLTQ0NjUsNyArNDQ2NSw3IEBAIHN0YXRpYyB2b2lkIG1seDVlX25pY19lbmFi bGUoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiAKIAltbHg1ZV9lbmFibGVfYXN5bmNfZXZlbnRz KHByaXYpOwogCi0JaWYgKE1MWDVfVlBPUlRfTUFOQUdFUihwcml2LT5tZGV2KSkKKwlpZiAoTUxY NV9FU1dJVENIX01BTkFHRVIocHJpdi0+bWRldikpCiAJCW1seDVlX3JlZ2lzdGVyX3Zwb3J0X3Jl cHMocHJpdik7CiAKIAlpZiAobmV0ZGV2LT5yZWdfc3RhdGUgIT0gTkVUUkVHX1JFR0lTVEVSRUQp CkBAIC00NTAwLDcgKzQ1MDAsNyBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9uaWNfZGlzYWJsZShzdHJ1 Y3QgbWx4NWVfcHJpdiAqcHJpdikKIAogCXF1ZXVlX3dvcmsocHJpdi0+d3EsICZwcml2LT5zZXRf cnhfbW9kZV93b3JrKTsKIAotCWlmIChNTFg1X1ZQT1JUX01BTkFHRVIocHJpdi0+bWRldikpCisJ aWYgKE1MWDVfRVNXSVRDSF9NQU5BR0VSKHByaXYtPm1kZXYpKQogCQltbHg1ZV91bnJlZ2lzdGVy X3Zwb3J0X3JlcHMocHJpdik7CiAKIAltbHg1ZV9kaXNhYmxlX2FzeW5jX2V2ZW50cyhwcml2KTsK QEAgLTQ2ODQsNyArNDY4NCw3IEBAIHN0YXRpYyB2b2lkICptbHg1ZV9hZGQoc3RydWN0IG1seDVf Y29yZV9kZXYgKm1kZXYpCiAJCXJldHVybiBOVUxMOwogCiAjaWZkZWYgQ09ORklHX01MWDVfRVNX SVRDSAotCWlmIChNTFg1X1ZQT1JUX01BTkFHRVIobWRldikpIHsKKwlpZiAoTUxYNV9FU1dJVENI X01BTkFHRVIobWRldikpIHsKIAkJcnByaXYgPSBtbHg1ZV9hbGxvY19uaWNfcmVwX3ByaXYobWRl dik7CiAJCWlmICghcnByaXYpIHsKIAkJCW1seDVfY29yZV93YXJuKG1kZXYsICJGYWlsZWQgdG8g YWxsb2MgTklDIHJlcCBwcml2IGRhdGFcbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jCmluZGV4IDg3NmMzZTRjNjE5My4uNjgzOTlkNzY0 NDg0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW5fcmVwLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vu X3JlcC5jCkBAIC03OTAsNyArNzkwLDcgQEAgYm9vbCBtbHg1ZV9pc191cGxpbmtfcmVwKHN0cnVj dCBtbHg1ZV9wcml2ICpwcml2KQogCXN0cnVjdCBtbHg1ZV9yZXBfcHJpdiAqcnByaXYgPSBwcml2 LT5wcHJpdjsKIAlzdHJ1Y3QgbWx4NV9lc3dpdGNoX3JlcCAqcmVwOwogCi0JaWYgKCFNTFg1X0NB UF9HRU4ocHJpdi0+bWRldiwgdnBvcnRfZ3JvdXBfbWFuYWdlcikpCisJaWYgKCFNTFg1X0VTV0lU Q0hfTUFOQUdFUihwcml2LT5tZGV2KSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJcmVwID0gcnByaXYt PnJlcDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lc3dpdGNoX29mZmxvYWRzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jCmluZGV4IDM1ZTI1NmViMmY2ZS4uMmZlYjMzZGNhZDJm IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3 aXRjaF9vZmZsb2Fkcy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lc3dpdGNoX29mZmxvYWRzLmMKQEAgLTk4Myw4ICs5ODMsOCBAQCBzdGF0aWMgaW50IG1s eDVfZGV2bGlua19lc3dpdGNoX2NoZWNrKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rKQogCWlmIChN TFg1X0NBUF9HRU4oZGV2LCBwb3J0X3R5cGUpICE9IE1MWDVfQ0FQX1BPUlRfVFlQRV9FVEgpCiAJ CXJldHVybiAtRU9QTk9UU1VQUDsKIAotCWlmICghTUxYNV9DQVBfR0VOKGRldiwgdnBvcnRfZ3Jv dXBfbWFuYWdlcikpCi0JCXJldHVybiAtRU9QTk9UU1VQUDsKKwlpZighTUxYNV9FU1dJVENIX01B TkFHRVIoZGV2KSkKKwkJcmV0dXJuIC1FUEVSTTsKIAogCWlmIChkZXYtPnByaXYuZXN3aXRjaC0+ bW9kZSA9PSBTUklPVl9OT05FKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci0tIAoyLjE3LjEKCgpG cm9tIDdmMjhjOTlhMGFhZmExZDIxN2JlZTk5Njc3NDgxNWI1MDU5NTU4ZmMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1lbGxhbm94LmNvbT4KRGF0 ZTogTW9uLCA0IEp1biAyMDE4IDE5OjQ2OjUzICswMzAwClN1YmplY3Q6IFtQQVRDSCAxMy81M10g bmV0L21seDVlOiBEb24ndCBhdHRlbXB0IHRvIGRlcmVmZXJlbmNlIHRoZSBwcHJpdgogc3RydWN0 IGlmIG5vdCBiZWluZyBlc3dpdGNoIG1hbmFnZXIKClsgVXBzdHJlYW0gY29tbWl0IDhmZmQ1Njlh YWE4MThmMjYyNGNhODIxZDlhMjQ2MzQyZmE4YjhjNTAgXQoKVGhlIGNoZWNrIGZvciBjcHUgaGl0 IHN0YXRpc3RpY3Mgd2FzIG5vdCByZXR1cm5pbmcgaW1tZWRpYXRlIGZhbHNlIGZvcgphbnkgbm9u IHZwb3J0IHJlcCBuZXRkZXYgYW5kIGhlbmNlIHdlIGNyYXNoZWQgKHNheSBvbiBtbHg1IHByb2Jl ZCBWRnMpIGlmCnVzZXItc3BhY2UgdG9vbCB3YXMgY2FsbGluZyBpbnRvIGFueSBwb3NzaWJsZSBu ZXRkZXYgaW4gdGhlIHN5c3RlbS4KCkZpeCB0aGF0IGJ5IGRvaW5nIGEgcHJvcGVyIGNoZWNrIGJl Zm9yZSBkZXJlZmVyZW5jaW5nLgoKRml4ZXM6IDFkNDQ3YTM5MTQyZSAoJ25ldC9tbHg1ZTogRXh0 ZW5kYWJsZSB2cG9ydCByZXByZXNlbnRvciBuZXRkZXYgcHJpdmF0ZSBkYXRhJykKU2lnbmVkLW9m Zi1ieTogT3IgR2VybGl0eiA8b2dlcmxpdHpAbWVsbGFub3guY29tPgpSZXBvcnRlZC1ieTogRWxp IENvaGVuIDxlbGlAbWVsbG9hbm94LmNvbT4KUmV2aWV3ZWQtYnk6IEVsaSBDb2hlbiA8ZWxpQG1l bGxvYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFu b3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9y ZXAuYyB8IDYgKysrKystCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX3JlcC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vu X3JlcC5jCmluZGV4IDY4Mzk5ZDc2NDQ4NC4uMmRjNmYwMzA2MTNkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcmVwLmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jCkBAIC04MDQsOCArODA0 LDEyIEBAIGJvb2wgbWx4NWVfaXNfdXBsaW5rX3JlcChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikK IHN0YXRpYyBib29sIG1seDVlX2lzX3ZmX3Zwb3J0X3JlcChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJp dikKIHsKIAlzdHJ1Y3QgbWx4NWVfcmVwX3ByaXYgKnJwcml2ID0gcHJpdi0+cHByaXY7Ci0Jc3Ry dWN0IG1seDVfZXN3aXRjaF9yZXAgKnJlcCA9IHJwcml2LT5yZXA7CisJc3RydWN0IG1seDVfZXN3 aXRjaF9yZXAgKnJlcDsKIAorCWlmICghTUxYNV9DQVBfR0VOKHByaXYtPm1kZXYsIGVzd2l0Y2hf Zmxvd190YWJsZSkpCisJCXJldHVybiBmYWxzZTsKKworCXJlcCA9IHJwcml2LT5yZXA7CiAJaWYg KHJlcCAmJiByZXAtPnZwb3J0ICE9IEZEQl9VUExJTktfVlBPUlQpCiAJCXJldHVybiB0cnVlOwog Ci0tIAoyLjE3LjEKCgpGcm9tIGJhYTE2OTZhN2E4ZTEwZDdmODc0MTlhMzkwNmFjMTIzMjM4ZDZm MzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1l bGxhbm94LmNvbT4KRGF0ZTogVGh1LCAzMSBNYXkgMjAxOCAxMToxNjoxOCArMDMwMApTdWJqZWN0 OiBbUEFUQ0ggMTQvNTNdIG5ldC9tbHg1OiBFLVN3aXRjaCwgQXZvaWQgc2V0dXAgYXR0ZW1wdCBp ZiBub3QgYmVpbmcKIGUtc3dpdGNoIG1hbmFnZXIKClsgVXBzdHJlYW0gY29tbWl0IDBlZmM4NTYy NDkxYjdkMzZmNmJiYzRmYmM4ZjMzNDhjYjY2NDFlOWMgXQoKSW4gc21hcnRuaWMgZW52LCB0aGUg aG9zdCAoUEYpIGRyaXZlciBtaWdodCBub3QgYmUgYW4gZS1zd2l0Y2gKbWFuYWdlciwgaGVuY2Ug dGhlIEZXIHdpbGwgZXJyIG9uIGRyaXZlciBhdHRlbXB0cyB0byBkZWFsIHdpdGgKc2V0dGluZy91 bnNldHRpbmcgdGhlIGVzd2l0Y2ggYW5kIGFzIGEgcmVzdWx0IHRoZSBvdmVyYWxsIHNldHVwCm9m IHNyaW92IHdpbGwgZmFpbC4KCkZpeCB0aGF0IGJ5IGF2b2lkaW5nIHRoZSBvcGVyYXRpb24gaWYg ZS1zd2l0Y2ggbWFuYWdlbWVudCBpcyBub3QKYWxsb3dlZCBmb3IgdGhpcyBkcml2ZXIgaW5zdGFu Y2UuIFdoaWxlIGhlcmUsIG1vdmUgdG8gdXNlIHRoZQpjb3JyZWN0IG5hbWUgZm9yIHRoZSBlc3cg bWFuYWdlciBjYXBhYmlsaXR5IG5hbWUuCgpGaXhlczogODE4NDg3MzFmZjQwICgnbmV0L21seDU6 IEUtU3dpdGNoLCBBZGQgU1ItSU9WIChGREIpIHN1cHBvcnQnKQpTaWduZWQtb2ZmLWJ5OiBPciBH ZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+ClJlcG9ydGVkLWJ5OiBHdXkgS3VzaG5pciA8 Z3V5a0BtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBFbGkgQ29oZW4gPGVsaUBtZWxsb2Fub3gu Y29tPgpUZXN0ZWQtYnk6IEVsaSBDb2hlbiA8ZWxpQG1lbGxvYW5veC5jb20+ClNpZ25lZC1vZmYt Ynk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yZXAuYyAgfCAyICstCiBkcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5jIHwgMiArLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYyB8IDMgKystCiBkcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZncuYyAgICAgIHwgNSArKystLQogZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3NyaW92LmMgICB8IDcgKysrKysr LQogaW5jbHVkZS9saW51eC9tbHg1L2Vzd2l0Y2guaCAgICAgICAgICAgICAgICAgICAgICB8IDIg KysKIGluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oICAgICAgICAgICAgICAgICAgICAgfCAy ICstCiA3IGZpbGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3Jl cC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jCmlu ZGV4IDJkYzZmMDMwNjEzZC4uMjg2NTY1ODYyMzQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcmVwLmMKKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jCkBAIC04MDYsNyArODA2LDcgQEAgc3Rh dGljIGJvb2wgbWx4NWVfaXNfdmZfdnBvcnRfcmVwKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQog CXN0cnVjdCBtbHg1ZV9yZXBfcHJpdiAqcnByaXYgPSBwcml2LT5wcHJpdjsKIAlzdHJ1Y3QgbWx4 NV9lc3dpdGNoX3JlcCAqcmVwOwogCi0JaWYgKCFNTFg1X0NBUF9HRU4ocHJpdi0+bWRldiwgZXN3 aXRjaF9mbG93X3RhYmxlKSkKKwlpZiAoIU1MWDVfRVNXSVRDSF9NQU5BR0VSKHByaXYtPm1kZXYp KQogCQlyZXR1cm4gZmFsc2U7CiAKIAlyZXAgPSBycHJpdi0+cmVwOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmMKaW5kZXggMTM1MmQxM2Vl ZGIzLi5jM2ExOGRkZjVkYmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lc3dpdGNoLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2Vzd2l0Y2guYwpAQCAtMTYwNCw3ICsxNjA0LDcgQEAgaW50IG1seDVfZXN3 aXRjaF9lbmFibGVfc3Jpb3Yoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBpbnQgbnZmcywgaW50 IG1vZGUpCiAJaWYgKCFFU1dfQUxMT1dFRChlc3cpKQogCQlyZXR1cm4gMDsKIAotCWlmICghTUxY NV9DQVBfR0VOKGVzdy0+ZGV2LCBlc3dpdGNoX2Zsb3dfdGFibGUpIHx8CisJaWYgKCFNTFg1X0VT V0lUQ0hfTUFOQUdFUihlc3ctPmRldikgfHwKIAkgICAgIU1MWDVfQ0FQX0VTV19GTE9XVEFCTEVf RkRCKGVzdy0+ZGV2LCBmdF9zdXBwb3J0KSkgewogCQllc3dfd2Fybihlc3ctPmRldiwgIkUtU3dp dGNoIEZEQiBpcyBub3Qgc3VwcG9ydGVkLCBhYm9ydGluZyAuLi5cbiIpOwogCQlyZXR1cm4gLUVP UE5PVFNVUFA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZnNfY29yZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2ZzX2NvcmUuYwppbmRleCBjMzljMTY5MmU2NzQuLmJkMGZmYzM0N2JkNyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jCkBAIC0zMiw2 ICszMiw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L21s eDUvZHJpdmVyLmg+CisjaW5jbHVkZSA8bGludXgvbWx4NS9lc3dpdGNoLmg+CiAKICNpbmNsdWRl ICJtbHg1X2NvcmUuaCIKICNpbmNsdWRlICJmc19jb3JlLmgiCkBAIC0yNjMxLDcgKzI2MzIsNyBA QCBpbnQgbWx4NV9pbml0X2ZzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpCiAJCQlnb3RvIGVy cjsKIAl9CiAKLQlpZiAoTUxYNV9DQVBfR0VOKGRldiwgZXN3aXRjaF9mbG93X3RhYmxlKSkgewor CWlmIChNTFg1X0VTV0lUQ0hfTUFOQUdFUihkZXYpKSB7CiAJCWlmIChNTFg1X0NBUF9FU1dfRkxP V1RBQkxFX0ZEQihkZXYsIGZ0X3N1cHBvcnQpKSB7CiAJCQllcnIgPSBpbml0X2ZkYl9yb290X25z KHN0ZWVyaW5nKTsKIAkJCWlmIChlcnIpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZncuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9mdy5jCmluZGV4IGFmZDlmNGZhMjJmNC4uNDFhZDI0ZjBkZTJjIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZncuYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZncuYwpAQCAtMzIsNiArMzIs NyBAQAogCiAjaW5jbHVkZSA8bGludXgvbWx4NS9kcml2ZXIuaD4KICNpbmNsdWRlIDxsaW51eC9t bHg1L2NtZC5oPgorI2luY2x1ZGUgPGxpbnV4L21seDUvZXN3aXRjaC5oPgogI2luY2x1ZGUgPGxp bnV4L21vZHVsZS5oPgogI2luY2x1ZGUgIm1seDVfY29yZS5oIgogI2luY2x1ZGUgIi4uLy4uL21s eGZ3L21seGZ3LmgiCkBAIC0xNTksMTMgKzE2MCwxMyBAQCBpbnQgbWx4NV9xdWVyeV9oY2FfY2Fw cyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQogCX0KIAogCWlmIChNTFg1X0NBUF9HRU4oZGV2 LCB2cG9ydF9ncm91cF9tYW5hZ2VyKSAmJgotCSAgICBNTFg1X0NBUF9HRU4oZGV2LCBlc3dpdGNo X2Zsb3dfdGFibGUpKSB7CisJICAgIE1MWDVfRVNXSVRDSF9NQU5BR0VSKGRldikpIHsKIAkJZXJy ID0gbWx4NV9jb3JlX2dldF9jYXBzKGRldiwgTUxYNV9DQVBfRVNXSVRDSF9GTE9XX1RBQkxFKTsK IAkJaWYgKGVycikKIAkJCXJldHVybiBlcnI7CiAJfQogCi0JaWYgKE1MWDVfQ0FQX0dFTihkZXYs IGVzd2l0Y2hfZmxvd190YWJsZSkpIHsKKwlpZiAoTUxYNV9FU1dJVENIX01BTkFHRVIoZGV2KSkg ewogCQllcnIgPSBtbHg1X2NvcmVfZ2V0X2NhcHMoZGV2LCBNTFg1X0NBUF9FU1dJVENIKTsKIAkJ aWYgKGVycikKIAkJCXJldHVybiBlcnI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvc3Jpb3YuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9zcmlvdi5jCmluZGV4IDJhOGI1MjljZTZkZC4uYTA2NzQ5NjJmMDJjIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3Jpb3Yu YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3Jpb3YuYwpA QCAtODgsNiArODgsOSBAQCBzdGF0aWMgaW50IG1seDVfZGV2aWNlX2VuYWJsZV9zcmlvdihzdHJ1 Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgbnVtX3ZmcykKIAkJcmV0dXJuIC1FQlVTWTsKIAl9 CiAKKwlpZiAoIU1MWDVfRVNXSVRDSF9NQU5BR0VSKGRldikpCisJCWdvdG8gZW5hYmxlX3Zmc19o Y2E7CisKIAllcnIgPSBtbHg1X2Vzd2l0Y2hfZW5hYmxlX3NyaW92KGRldi0+cHJpdi5lc3dpdGNo LCBudW1fdmZzLCBTUklPVl9MRUdBQ1kpOwogCWlmIChlcnIpIHsKIAkJbWx4NV9jb3JlX3dhcm4o ZGV2LApAQCAtOTUsNiArOTgsNyBAQCBzdGF0aWMgaW50IG1seDVfZGV2aWNlX2VuYWJsZV9zcmlv dihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgbnVtX3ZmcykKIAkJcmV0dXJuIGVycjsK IAl9CiAKK2VuYWJsZV92ZnNfaGNhOgogCWZvciAodmYgPSAwOyB2ZiA8IG51bV92ZnM7IHZmKysp IHsKIAkJZXJyID0gbWx4NV9jb3JlX2VuYWJsZV9oY2EoZGV2LCB2ZiArIDEpOwogCQlpZiAoZXJy KSB7CkBAIC0xNDAsNyArMTQ0LDggQEAgc3RhdGljIHZvaWQgbWx4NV9kZXZpY2VfZGlzYWJsZV9z cmlvdihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQogCX0KIAogb3V0OgotCW1seDVfZXN3aXRj aF9kaXNhYmxlX3NyaW92KGRldi0+cHJpdi5lc3dpdGNoKTsKKwlpZiAoTUxYNV9FU1dJVENIX01B TkFHRVIoZGV2KSkKKwkJbWx4NV9lc3dpdGNoX2Rpc2FibGVfc3Jpb3YoZGV2LT5wcml2LmVzd2l0 Y2gpOwogCiAJaWYgKG1seDVfd2FpdF9mb3JfdmZfcGFnZXMoZGV2KSkKIAkJbWx4NV9jb3JlX3dh cm4oZGV2LCAidGltZW91dCByZWNsYWltaW5nIFZGcyBwYWdlc1xuIik7CmRpZmYgLS1naXQgYS9p bmNsdWRlL2xpbnV4L21seDUvZXN3aXRjaC5oIGIvaW5jbHVkZS9saW51eC9tbHg1L2Vzd2l0Y2gu aAppbmRleCBkM2M5ZGI0OTJiMzAuLmZhYjUxMjFmZmI4ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9s aW51eC9tbHg1L2Vzd2l0Y2guaAorKysgYi9pbmNsdWRlL2xpbnV4L21seDUvZXN3aXRjaC5oCkBA IC04LDYgKzgsOCBAQAogCiAjaW5jbHVkZSA8bGludXgvbWx4NS9kcml2ZXIuaD4KIAorI2RlZmlu ZSBNTFg1X0VTV0lUQ0hfTUFOQUdFUihtZGV2KSBNTFg1X0NBUF9HRU4obWRldiwgZXN3aXRjaF9t YW5hZ2VyKQorCiBlbnVtIHsKIAlTUklPVl9OT05FLAogCVNSSU9WX0xFR0FDWSwKZGlmZiAtLWdp dCBhL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oIGIvaW5jbHVkZS9saW51eC9tbHg1L21s eDVfaWZjLmgKaW5kZXggMWFhZDQ1NTUzOGY0Li41YjY2MmVhMmUzMmEgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oCisrKyBiL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1 X2lmYy5oCkBAIC05MDUsNyArOTA1LDcgQEAgc3RydWN0IG1seDVfaWZjX2NtZF9oY2FfY2FwX2Jp dHMgewogCXU4ICAgICAgICAgdm5pY19lbnZfcXVldWVfY291bnRlcnNbMHgxXTsKIAl1OCAgICAg ICAgIGV0c1sweDFdOwogCXU4ICAgICAgICAgbmljX2Zsb3dfdGFibGVbMHgxXTsKLQl1OCAgICAg ICAgIGVzd2l0Y2hfZmxvd190YWJsZVsweDFdOworCXU4ICAgICAgICAgZXN3aXRjaF9tYW5hZ2Vy WzB4MV07CiAJdTggICAgICAgICBkZXZpY2VfbWVtb3J5WzB4MV07CiAJdTggICAgICAgICBtY2Ft X3JlZ1sweDFdOwogCXU4ICAgICAgICAgcGNhbV9yZWdbMHgxXTsKLS0gCjIuMTcuMQoKCkZyb20g NjMxNDlhYWU4YjE2YTE0OTc4ZjY2NzE1MmYxZmY1YTdjMDdjMmZkOCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogQWxleCBWZXNrZXIgPHZhbGV4QG1lbGxhbm94LmNvbT4KRGF0ZTogVHVl LCAxMiBKdW4gMjAxOCAxNjoxNDozMSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTUvNTNdIG5ldC9t bHg1OiBGaXggY29tbWFuZCBpbnRlcmZhY2UgcmFjZSBpbiBwb2xsaW5nIG1vZGUKClsgVXBzdHJl YW0gY29tbWl0IGQ0MTJjMzFkYWUwNTNiZjMwYTFiYzE1NTgyYTk5OTBkZjI5N2E2NjAgXQoKVGhl IGNvbW1hbmQgaW50ZXJmYWNlIGNhbiB3b3JrIGluIHR3byBtb2RlczogRXZlbnRzIGFuZCBQb2xs aW5nLgpJbiB0aGUgZ2VuZXJhbCBjYXNlLCBlYWNoIHRpbWUgd2UgaW52b2tlIGEgY29tbWFuZCwg YSB3b3JrIGlzCnF1ZXVlZCB0byBoYW5kbGUgaXQuCgpXaGVuIHdvcmtpbmcgaW4gZXZlbnRzLCB0 aGUgaW50ZXJydXB0IGhhbmRsZXIgY29tcGxldGVzIHRoZQpjb21tYW5kIGV4ZWN1dGlvbi4gT24g dGhlIG90aGVyIGhhbmQsIHdoZW4gd29ya2luZyBpbiBwb2xsaW5nCm1vZGUsIHRoZSB3b3JrIGl0 c2VsZiBjb21wbGV0ZXMgaXQuCgpEdWUgdG8gYSBidWcgaW4gdGhlIHdvcmsgaGFuZGxlciwgYSBj b21tYW5kIGNvdWxkIGhhdmUgYmVlbgpjb21wbGV0ZWQgYnkgdGhlIGludGVycnVwdCBoYW5kbGVy LCB3aGlsZSB0aGUgd29yayBoYW5kbGVyCmhhc24ndCBmaW5pc2hlZCB5ZXQsIGNhdXNpbmcgdGhl IGl0IHRvIGNvbXBsZXRlIG9uY2UgYWdhaW4KaWYgdGhlIGNvbW1hbmQgaW50ZXJmYWNlIG1vZGUg d2FzIGNoYW5nZWQgZnJvbSBFdmVudHMgdG8KcG9sbGluZyBhZnRlciB0aGUgaW50ZXJydXB0IGhh bmRsZXIgd2FzIGNhbGxlZC4KCm1seDVfdW5sb2FkX29uZSgpCiAgICAgICAgbWx4NV9zdG9wX2Vx cygpCiAgICAgICAgICAgICAgICAvLyBEZXN0cm95IHRoZSBFUSBiZWZvcmUgY21kIEVRCiAgICAg ICAgICAgICAgICAuLi5jbWRfd29ya19oYW5kbGVyKCkKICAgICAgICAgICAgICAgICAgICAgICAg d3JpdGVfZG9vcmJlbGwoKQogICAgICAgICAgICAgICAgICAgICAgICAtLT4gRVZFTlRfVFlQRV9D TUQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbHg1X2NtZF9jb21wX2hhbmRsZXIo KSAvLyBGaXJzdCBmcmVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm cmVlX2VudChjbWQsIGVudC0+aWR4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29tcGxldGUoJmVudC0+ZG9uZSkKCiAgICAgICAgPC0tIG1seDVfc3RvcF9lcXMgLy9j bWQgd2FzIGNvbXBsZXRlCiAgICAgICAgICAgICAgICAvLyBtb3ZlIHRvIHBvbGxpbmcgYmVmb3Jl IGRlc3Ryb3lpbmcgdGhlIGxhc3QgY21kIEVRCiAgICAgICAgICAgICAgICBtbHg1X2NtZF91c2Vf cG9sbGluZygpCiAgICAgICAgICAgICAgICAgICAgICAgIGNtZC0+bW9kZSA9IFBPTEw7CgogICAg ICAgICAgICAgICAgLS0+IGNtZF93b3JrX2hhbmRsZXIgKGNvbnRpbnVlcykKICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKGNtZC0+bW9kZSA9PSBQT0xMKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1seDVfY21kX2NvbXBfaGFuZGxlcigpIC8vIERvdWJsZSBmcmVlCgpUaGUgc29s dXRpb24gaXMgdG8gc3RvcmUgdGhlIGNtZC0+bW9kZSBiZWZvcmUgd3JpdGluZyB0aGUgZG9vcmJl bGwuCgpGaXhlczogZTEyNmJhOTdkYmE5ICgibWx4NTogQWRkIGRyaXZlciBmb3IgTWVsbGFub3gg Q29ubmVjdC1JQiBhZGFwdGVycyIpClNpZ25lZC1vZmYtYnk6IEFsZXggVmVza2VyIDx2YWxleEBt ZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFu b3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQu YyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9j bWQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYwppbmRl eCAyMWNkMTcwM2E4NjIuLmZkMThiZWVmYmEwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9jbWQuYwpAQCAtODAzLDYgKzgwMyw3IEBAIHN0YXRpYyB2b2lk IGNtZF93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXVuc2lnbmVkIGxv bmcgZmxhZ3M7CiAJYm9vbCBwb2xsX2NtZCA9IGVudC0+cG9sbGluZzsKIAlpbnQgYWxsb2NfcmV0 OworCWludCBjbWRfbW9kZTsKIAogCXNlbSA9IGVudC0+cGFnZV9xdWV1ZSA/ICZjbWQtPnBhZ2Vz X3NlbSA6ICZjbWQtPnNlbTsKIAlkb3duKHNlbSk7CkBAIC04NDksNiArODUwLDcgQEAgc3RhdGlj IHZvaWQgY21kX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJc2V0X3Np Z25hdHVyZShlbnQsICFjbWQtPmNoZWNrc3VtX2Rpc2FibGVkKTsKIAlkdW1wX2NvbW1hbmQoZGV2 LCBlbnQsIDEpOwogCWVudC0+dHMxID0ga3RpbWVfZ2V0X25zKCk7CisJY21kX21vZGUgPSBjbWQt Pm1vZGU7CiAKIAlpZiAoZW50LT5jYWxsYmFjaykKIAkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZl bnQtPmNiX3RpbWVvdXRfd29yaywgY2JfdGltZW91dCk7CkBAIC04NzMsNyArODc1LDcgQEAgc3Rh dGljIHZvaWQgY21kX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJaW93 cml0ZTMyYmUoMSA8PCBlbnQtPmlkeCwgJmRldi0+aXNlZy0+Y21kX2RiZWxsKTsKIAltbWlvd2Io KTsKIAkvKiBpZiBub3QgaW4gcG9sbGluZyBkb24ndCB1c2UgZW50IGFmdGVyIHRoaXMgcG9pbnQg Ki8KLQlpZiAoY21kLT5tb2RlID09IENNRF9NT0RFX1BPTExJTkcgfHwgcG9sbF9jbWQpIHsKKwlp ZiAoY21kX21vZGUgPT0gQ01EX01PREVfUE9MTElORyB8fCBwb2xsX2NtZCkgewogCQlwb2xsX3Rp bWVvdXQoZW50KTsKIAkJLyogbWFrZSBzdXJlIHdlIHJlYWQgdGhlIGRlc2NyaXB0b3IgYWZ0ZXIg b3duZXJzaGlwIGlzIFNXICovCiAJCXJtYigpOwotLSAKMi4xNy4xCgoKRnJvbSAzMzY5MzhjMmZi NzAyMTMxY2JkMDE1MWRjMDQ3MDBhYjBjMDM0NmU3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBBbGV4IFZlc2tlciA8dmFsZXhAbWVsbGFub3guY29tPgpEYXRlOiBGcmksIDI1IE1heSAy MDE4IDIwOjI1OjU5ICswMzAwClN1YmplY3Q6IFtQQVRDSCAxNi81M10gbmV0L21seDU6IEZpeCBp bmNvcnJlY3QgcmF3IGNvbW1hbmQgbGVuZ3RoIHBhcnNpbmcKClsgVXBzdHJlYW0gY29tbWl0IDYw M2I3YmNmZjgyNDc0MDUwMGRkZmEwMDFkN2E3MTY4YjBiMzg1NDIgXQoKVGhlIE5VTEwgY2hhcmFj dGVyIHdhcyBub3Qgc2V0IGNvcnJlY3RseSBmb3IgdGhlIHN0cmluZyBjb250YWluaW5nCnRoZSBj b21tYW5kIGxlbmd0aCwgdGhpcyBjYXVzZWQgZmFpbHVyZXMgcmVhZGluZyB0aGUgb3V0cHV0IG9m IHRoZQpjb21tYW5kIGR1ZSB0byBhIHJhbmRvbSBsZW5ndGguIFRoZSBmaXggaXMgdG8gaW5pdGlh bGl6ZSB0aGUgb3V0cHV0Cmxlbmd0aCBzdHJpbmcuCgpGaXhlczogZTEyNmJhOTdkYmE5ICgibWx4 NTogQWRkIGRyaXZlciBmb3IgTWVsbGFub3ggQ29ubmVjdC1JQiBhZGFwdGVycyIpClNpZ25lZC1v ZmYtYnk6IEFsZXggVmVza2VyIDx2YWxleEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNh ZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYyB8IDQgKy0tLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9jbWQuYwppbmRleCBmZDE4YmVlZmJhMDguLjMzYWIzNGRjNmQ5NiAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5j CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYwpAQCAt MTI3Niw3ICsxMjc2LDcgQEAgc3RhdGljIHNzaXplX3Qgb3V0bGVuX3dyaXRlKHN0cnVjdCBmaWxl ICpmaWxwLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmLAogewogCXN0cnVjdCBtbHg1X2NvcmVfZGV2 ICpkZXYgPSBmaWxwLT5wcml2YXRlX2RhdGE7CiAJc3RydWN0IG1seDVfY21kX2RlYnVnICpkYmcg PSAmZGV2LT5jbWQuZGJnOwotCWNoYXIgb3V0bGVuX3N0cls4XTsKKwljaGFyIG91dGxlbl9zdHJb OF0gPSB7MH07CiAJaW50IG91dGxlbjsKIAl2b2lkICpwdHI7CiAJaW50IGVycjsKQEAgLTEyOTEs OCArMTI5MSw2IEBAIHN0YXRpYyBzc2l6ZV90IG91dGxlbl93cml0ZShzdHJ1Y3QgZmlsZSAqZmls cCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKIAlpZiAoY29weV9mcm9tX3VzZXIob3V0bGVuX3N0 ciwgYnVmLCBjb3VudCkpCiAJCXJldHVybiAtRUZBVUxUOwogCi0Jb3V0bGVuX3N0cls3XSA9IDA7 Ci0KIAllcnIgPSBzc2NhbmYob3V0bGVuX3N0ciwgIiVkIiwgJm91dGxlbik7CiAJaWYgKGVyciA8 IDApCiAJCXJldHVybiBlcnI7Ci0tIAoyLjE3LjEKCgpGcm9tIDVmNWRiNzg3ZTY3NjcxY2YyZjQw OWViZmUxNzdiNjEwYjMyZWMzNTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVsaSBD b2hlbiA8ZWxpQG1lbGxhbm94LmNvbT4KRGF0ZTogV2VkLCAxMyBKdW4gMjAxOCAxMDoyNzozNCAr MDMwMApTdWJqZWN0OiBbUEFUQ0ggMTcvNTNdIG5ldC9tbHg1OiBGaXggcmVxdWlyZWQgY2FwYWJp bGl0eSBmb3IgbWFuaXB1bGF0aW5nIE1QRlMKClsgVXBzdHJlYW0gY29tbWl0IGY4MTE5ODA0NDRl YzU5YWQ2MmY5ZTA0MWFkYmI1NzZhODIxMTMyYzcgXQoKTWFuaXB1bGF0aW5nIG9mIHRoZSBNUEZT IHJlcXVpcmVzIGVzd2l0Y2ggbWFuYWdlciBjYXBhYmlsaXRpZXMuCgpGaXhlczogZWViNjZjZGI2 ODI2ICgnbmV0L21seDU6IFNlcGFyYXRlIGJldHdlZW4gRS1Td2l0Y2ggYW5kIE1QRlMnKQpTaWdu ZWQtb2ZmLWJ5OiBFbGkgQ29oZW4gPGVsaUBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBPciBH ZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFt ZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9saWIvbXBmcy5jIHwgOSArKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9tcGZzLmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL21wZnMuYwppbmRleCA3Y2I2NzEyMmU4YjUuLjk4 MzU5NTU5Yzc3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2xpYi9tcGZzLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2xpYi9tcGZzLmMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9ldGhl cmRldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L21seDUvZHJpdmVyLmg+CiAjaW5jbHVkZSA8bGlu dXgvbWx4NS9tbHg1X2lmYy5oPgorI2luY2x1ZGUgPGxpbnV4L21seDUvZXN3aXRjaC5oPgogI2lu Y2x1ZGUgIm1seDVfY29yZS5oIgogI2luY2x1ZGUgImxpYi9tcGZzLmgiCiAKQEAgLTk4LDcgKzk5 LDcgQEAgaW50IG1seDVfbXBmc19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpCiAJaW50 IGwydGFibGVfc2l6ZSA9IDEgPDwgTUxYNV9DQVBfR0VOKGRldiwgbG9nX21heF9sMl90YWJsZSk7 CiAJc3RydWN0IG1seDVfbXBmcyAqbXBmczsKIAotCWlmICghTUxYNV9WUE9SVF9NQU5BR0VSKGRl dikpCisJaWYgKCFNTFg1X0VTV0lUQ0hfTUFOQUdFUihkZXYpKQogCQlyZXR1cm4gMDsKIAogCW1w ZnMgPSBremFsbG9jKHNpemVvZigqbXBmcyksIEdGUF9LRVJORUwpOwpAQCAtMTIyLDcgKzEyMyw3 IEBAIHZvaWQgbWx4NV9tcGZzX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldikKIHsK IAlzdHJ1Y3QgbWx4NV9tcGZzICptcGZzID0gZGV2LT5wcml2Lm1wZnM7CiAKLQlpZiAoIU1MWDVf VlBPUlRfTUFOQUdFUihkZXYpKQorCWlmICghTUxYNV9FU1dJVENIX01BTkFHRVIoZGV2KSkKIAkJ cmV0dXJuOwogCiAJV0FSTl9PTighaGxpc3RfZW1wdHkobXBmcy0+aGFzaCkpOwpAQCAtMTM3LDcg KzEzOCw3IEBAIGludCBtbHg1X21wZnNfYWRkX21hYyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2 LCB1OCAqbWFjKQogCXUzMiBpbmRleDsKIAlpbnQgZXJyOwogCi0JaWYgKCFNTFg1X1ZQT1JUX01B TkFHRVIoZGV2KSkKKwlpZiAoIU1MWDVfRVNXSVRDSF9NQU5BR0VSKGRldikpCiAJCXJldHVybiAw OwogCiAJbXV0ZXhfbG9jaygmbXBmcy0+bG9jayk7CkBAIC0xNzksNyArMTgwLDcgQEAgaW50IG1s eDVfbXBmc19kZWxfbWFjKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHU4ICptYWMpCiAJaW50 IGVyciA9IDA7CiAJdTMyIGluZGV4OwogCi0JaWYgKCFNTFg1X1ZQT1JUX01BTkFHRVIoZGV2KSkK KwlpZiAoIU1MWDVfRVNXSVRDSF9NQU5BR0VSKGRldikpCiAJCXJldHVybiAwOwogCiAJbXV0ZXhf bG9jaygmbXBmcy0+bG9jayk7Ci0tIAoyLjE3LjEKCgpGcm9tIGQxZDZmMzZiODI2ZjlmOTI0Njkx ZTk1NWQ2Y2M1NDllNWFlODQ0NjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNoYXkg QWdyb3NraW4gPHNoYXlhZ0BtZWxsYW5veC5jb20+CkRhdGU6IFR1ZSwgMjIgTWF5IDIwMTggMTQ6 MTQ6MDIgKzAzMDAKU3ViamVjdDogW1BBVENIIDE4LzUzXSBuZXQvbWx4NTogRml4IHdyb25nIHNp emUgYWxsb2NhdGlvbiBmb3IgUW9TIEVUQyBUQwogcmVnaXRzdGVyCgpbIFVwc3RyZWFtIGNvbW1p dCBkMTRmY2I4ZDg3N2NhZjFiOGQ2YmQ2NWQ0NDRiZjYyYjIxZjIwNzBjIF0KClRoZSBkcml2ZXIg YWxsb2NhdGVzIHdyb25nIHNpemUgKGR1ZSB0byB3cm9uZyBzdHJ1Y3QgbmFtZSkgd2hlbiBpc3N1 aW5nCmEgcXVlcnkvc2V0IHJlcXVlc3QgdG8gTklDJ3MgcmVnaXN0ZXIuCgpGaXhlczogZDg4ODA3 OTVkYWJmICgibmV0L21seDVlOiBJbXBsZW1lbnQgRENCTkwgSUVFRSBtYXggcmF0ZSIpClNpZ25l ZC1vZmYtYnk6IFNoYXkgQWdyb3NraW4gPHNoYXlhZ0BtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYt Ynk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9wb3J0LmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3BvcnQuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9wb3J0LmMKaW5kZXggZmE5ZDA3NjBkZDM2Li4zMWE5 Y2JkODU2ODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9wb3J0LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L3BvcnQuYwpAQCAtNzAxLDcgKzcwMSw3IEBAIEVYUE9SVF9TWU1CT0xfR1BMKG1seDVfcXVlcnlf cG9ydF9wcmlvX3RjKTsKIHN0YXRpYyBpbnQgbWx4NV9zZXRfcG9ydF9xZXRjcl9yZWcoc3RydWN0 IG1seDVfY29yZV9kZXYgKm1kZXYsIHUzMiAqaW4sCiAJCQkJICAgaW50IGlubGVuKQogewotCXUz MiBvdXRbTUxYNV9TVF9TWl9EVyhxdGN0X3JlZyldOworCXUzMiBvdXRbTUxYNV9TVF9TWl9EVyhx ZXRjX3JlZyldOwogCiAJaWYgKCFNTFg1X0NBUF9HRU4obWRldiwgZXRzKSkKIAkJcmV0dXJuIC1F T1BOT1RTVVBQOwpAQCAtNzEzLDcgKzcxMyw3IEBAIHN0YXRpYyBpbnQgbWx4NV9zZXRfcG9ydF9x ZXRjcl9yZWcoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsIHUzMiAqaW4sCiBzdGF0aWMgaW50 IG1seDVfcXVlcnlfcG9ydF9xZXRjcl9yZWcoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsIHUz MiAqb3V0LAogCQkJCSAgICAgaW50IG91dGxlbikKIHsKLQl1MzIgaW5bTUxYNV9TVF9TWl9EVyhx dGN0X3JlZyldOworCXUzMiBpbltNTFg1X1NUX1NaX0RXKHFldGNfcmVnKV07CiAKIAlpZiAoIU1M WDVfQ0FQX0dFTihtZGV2LCBldHMpKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci0tIAoyLjE3LjEK CgpGcm9tIDg1MjQ3M2IxZmNjYmQ2M2E3ZDMyYmYxODU0OTVkZjA0ODExOGQwYjYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEFudG9pbmUgVGVuYXJ0IDxhbnRvaW5lLnRlbmFydEBib290 bGluLmNvbT4KRGF0ZTogRnJpLCAyMiBKdW4gMjAxOCAxMDoxNTozOSArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMTkvNTNdIG5ldDogbXZuZXRhOiBmaXggdGhlIFJ4IGRlc2MgRE1BIGFkZHJlc3MgaW4g dGhlIFJ4IHBhdGgKClsgVXBzdHJlYW0gY29tbWl0IDI3MWY3ZmY1YWE1YTczNDg4YjdhOWQ4Yjg0 YjUyMDVmYjViMmY3Y2MgXQoKV2hlbiB1c2luZyBzL3cgYnVmZmVyIG1hbmFnZW1lbnQsIGJ1ZmZl cnMgYXJlIGFsbG9jYXRlZCBhbmQgRE1BIG1hcHBlZC4KV2hlbiBkb2luZyBzbyBvbiBhbiBhcm02 NCBwbGF0Zm9ybSwgYW4gb2Zmc2V0IGNvcnJlY3Rpb24gaXMgYXBwbGllZCBvbgp0aGUgRE1BIGFk ZHJlc3MsIGJlZm9yZSBzdG9yaW5nIGl0IGluIGFuIFJ4IGRlc2NyaXB0b3IuIFRoZSBpc3N1ZSBp cwp0aGlzIERNQSBhZGRyZXNzIGlzIHRoZW4gdXNlZCBsYXRlciBpbiB0aGUgUnggcGF0aCB3aXRo b3V0IHJlbW92aW5nIHRoZQpvZmZzZXQgY29ycmVjdGlvbi4gVGh1cyB0aGUgRE1BIGFkZHJlc3Mg aXMgd3JvbmcsIHdoaWNoIGNhbiBsZWQgdG8KdmFyaW91cyBpc3N1ZXMuCgpUaGlzIHBhdGNoIGZp eGVzIHRoaXMgYnkgcmVtb3ZpbmcgdGhlIG9mZnNldCBjb3JyZWN0aW9uIGZyb20gdGhlIERNQQph ZGRyZXNzIHJldHJpZXZlZCBmcm9tIHRoZSBSeCBkZXNjcmlwdG9yIGJlZm9yZSB1c2luZyBpdCBp biB0aGUgUnggcGF0aC4KCkZpeGVzOiA4ZDUwNDdjZjljYTIgKCJuZXQ6IG12bmV0YTogQ29udmVy dCB0byBiZSA2NCBiaXRzIGNvbXBhdGlibGUiKQpTaWduZWQtb2ZmLWJ5OiBBbnRvaW5lIFRlbmFy dCA8YW50b2luZS50ZW5hcnRAYm9vdGxpbi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2 ZWxsL212bmV0YS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5l dGEuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMKaW5kZXggMTdhOTA0 Y2M2YTVlLi4wYWQyZjNmN2RhODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21h cnZlbGwvbXZuZXRhLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEu YwpAQCAtMTkzMiw3ICsxOTMyLDcgQEAgc3RhdGljIGludCBtdm5ldGFfcnhfc3dibShzdHJ1Y3Qg bXZuZXRhX3BvcnQgKnBwLCBpbnQgcnhfdG9kbywKIAkJcnhfYnl0ZXMgPSByeF9kZXNjLT5kYXRh X3NpemUgLSAoRVRIX0ZDU19MRU4gKyBNVk5FVEFfTUhfU0laRSk7CiAJCWluZGV4ID0gcnhfZGVz YyAtIHJ4cS0+ZGVzY3M7CiAJCWRhdGEgPSByeHEtPmJ1Zl92aXJ0X2FkZHJbaW5kZXhdOwotCQlw aHlzX2FkZHIgPSByeF9kZXNjLT5idWZfcGh5c19hZGRyOworCQlwaHlzX2FkZHIgPSByeF9kZXNj LT5idWZfcGh5c19hZGRyIC0gcHAtPnJ4X29mZnNldF9jb3JyZWN0aW9uOwogCiAJCWlmICghbXZu ZXRhX3J4cV9kZXNjX2lzX2ZpcnN0X2xhc3Qocnhfc3RhdHVzKSB8fAogCQkgICAgKHJ4X3N0YXR1 cyAmIE1WTkVUQV9SWERfRVJSX1NVTU1BUlkpKSB7Ci0tIAoyLjE3LjEKCgpGcm9tIGJkMTFkMWMw YWYzZDQ2MTgzYTIyODYwMDdjNmIyNmYyM2I2NDU5MjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogVGh1LCAyMSBK dW4gMjAxOCAxNDoxNjowMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjAvNTNdIG5ldC9wYWNrZXQ6 IGZpeCB1c2UtYWZ0ZXItZnJlZQoKWyBVcHN0cmVhbSBjb21taXQgOTQ1ZDAxNWVlMGMzMDk1ZDIy OTBlODQ1NTY1YTIzZGVkZmQ4MDI3YyBdCgpXZSBzaG91bGQgcHV0IGNvcHlfc2tiIGluIHJlY2Vp dmVfcXVldWUgb25seSBhZnRlcgphIHN1Y2Nlc3NmdWwgY2FsbCB0byB2aXJ0aW9fbmV0X2hkcl9m cm9tX3NrYigpLgoKc3l6Ym90IHJlcG9ydCA6CgpCVUc6IEtBU0FOOiB1c2UtYWZ0ZXItZnJlZSBp biBfX3NrYl91bmxpbmsgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoxODQzIFtpbmxpbmVdCkJVRzog S0FTQU46IHVzZS1hZnRlci1mcmVlIGluIF9fc2tiX2RlcXVldWUgaW5jbHVkZS9saW51eC9za2J1 ZmYuaDoxODYzIFtpbmxpbmVdCkJVRzogS0FTQU46IHVzZS1hZnRlci1mcmVlIGluIHNrYl9kZXF1 ZXVlKzB4MTZhLzB4MTgwIG5ldC9jb3JlL3NrYnVmZi5jOjI4MTUKUmVhZCBvZiBzaXplIDggYXQg YWRkciBmZmZmODgwMWIwNDRlY2MwIGJ5IHRhc2sgc3l6LWV4ZWN1dG9yMjE3LzQ1NTMKCkNQVTog MCBQSUQ6IDQ1NTMgQ29tbTogc3l6LWV4ZWN1dG9yMjE3IE5vdCB0YWludGVkIDQuMTguMC1yYzEr ICMxMTEKSGFyZHdhcmUgbmFtZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUg Q29tcHV0ZSBFbmdpbmUsIEJJT1MgR29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToKIF9fZHVt cF9zdGFjayBsaWIvZHVtcF9zdGFjay5jOjc3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4MWM5LzB4 MmI0IGxpYi9kdW1wX3N0YWNrLmM6MTEzCiBwcmludF9hZGRyZXNzX2Rlc2NyaXB0aW9uKzB4NmMv MHgyMGIgbW0va2FzYW4vcmVwb3J0LmM6MjU2CiBrYXNhbl9yZXBvcnRfZXJyb3IgbW0va2FzYW4v cmVwb3J0LmM6MzU0IFtpbmxpbmVdCiBrYXNhbl9yZXBvcnQuY29sZC43KzB4MjQyLzB4MmZlIG1t L2thc2FuL3JlcG9ydC5jOjQxMgogX19hc2FuX3JlcG9ydF9sb2FkOF9ub2Fib3J0KzB4MTQvMHgy MCBtbS9rYXNhbi9yZXBvcnQuYzo0MzMKIF9fc2tiX3VubGluayBpbmNsdWRlL2xpbnV4L3NrYnVm Zi5oOjE4NDMgW2lubGluZV0KIF9fc2tiX2RlcXVldWUgaW5jbHVkZS9saW51eC9za2J1ZmYuaDox ODYzIFtpbmxpbmVdCiBza2JfZGVxdWV1ZSsweDE2YS8weDE4MCBuZXQvY29yZS9za2J1ZmYuYzoy ODE1CiBza2JfcXVldWVfcHVyZ2UrMHgyNi8weDQwIG5ldC9jb3JlL3NrYnVmZi5jOjI4NTIKIHBh Y2tldF9zZXRfcmluZysweDY3NS8weDFkYTAgbmV0L3BhY2tldC9hZl9wYWNrZXQuYzo0MzMxCiBw YWNrZXRfcmVsZWFzZSsweDYzMC8weGQ5MCBuZXQvcGFja2V0L2FmX3BhY2tldC5jOjI5OTEKIF9f c29ja19yZWxlYXNlKzB4ZDcvMHgyNjAgbmV0L3NvY2tldC5jOjYwMwogc29ja19jbG9zZSsweDE5 LzB4MjAgbmV0L3NvY2tldC5jOjExODYKIF9fZnB1dCsweDM1Yi8weDhiMCBmcy9maWxlX3RhYmxl LmM6MjA5CiBfX19fZnB1dCsweDE1LzB4MjAgZnMvZmlsZV90YWJsZS5jOjI0MwogdGFza193b3Jr X3J1bisweDFlYy8weDJhMCBrZXJuZWwvdGFza193b3JrLmM6MTEzCiBleGl0X3Rhc2tfd29yayBp bmNsdWRlL2xpbnV4L3Rhc2tfd29yay5oOjIyIFtpbmxpbmVdCiBkb19leGl0KzB4MWIwOC8weDI3 NTAga2VybmVsL2V4aXQuYzo4NjUKIGRvX2dyb3VwX2V4aXQrMHgxNzcvMHg0NDAga2VybmVsL2V4 aXQuYzo5NjgKIF9fZG9fc3lzX2V4aXRfZ3JvdXAga2VybmVsL2V4aXQuYzo5NzkgW2lubGluZV0K IF9fc2Vfc3lzX2V4aXRfZ3JvdXAga2VybmVsL2V4aXQuYzo5NzcgW2lubGluZV0KIF9feDY0X3N5 c19leGl0X2dyb3VwKzB4M2UvMHg1MCBrZXJuZWwvZXhpdC5jOjk3NwogZG9fc3lzY2FsbF82NCsw eDFiOS8weDgyMCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyOTAKIGVudHJ5X1NZU0NBTExfNjRf YWZ0ZXJfaHdmcmFtZSsweDQ5LzB4YmUKUklQOiAwMDMzOjB4NDQ0OGU5CkNvZGU6IEJhZCBSSVAg dmFsdWUuClJTUDogMDAyYjowMDAwN2ZmZDVmNzc3Y2E4IEVGTEFHUzogMDAwMDAyMDIgT1JJR19S QVg6IDAwMDAwMDAwMDAwMDAwZTcKUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAw MDAwMDAwMCBSQ1g6IDAwMDAwMDAwMDA0NDQ4ZTkKUkRYOiAwMDAwMDAwMDAwNDQ0OGU5IFJTSTog MDAwMDAwMDAwMDAwZmNmYiBSREk6IDAwMDAwMDAwMDAwMDAwMDEKUkJQOiAwMDAwMDAwMDAwNmNm MDE4IFIwODogMDAwMDdmZmQwMDAwYTQ1YiBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKUjEwOiAwMDAw N2ZmZDVmNzc3ZTQ4IFIxMTogMDAwMDAwMDAwMDAwMDIwMiBSMTI6IDAwMDAwMDAwMDA0MDIxZjAK UjEzOiAwMDAwMDAwMDAwNDAyMjgwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAw MDAwMDAwMDAKCkFsbG9jYXRlZCBieSB0YXNrIDQ1NTM6CiBzYXZlX3N0YWNrKzB4NDMvMHhkMCBt bS9rYXNhbi9rYXNhbi5jOjQ0OAogc2V0X3RyYWNrIG1tL2thc2FuL2thc2FuLmM6NDYwIFtpbmxp bmVdCiBrYXNhbl9rbWFsbG9jKzB4YzQvMHhlMCBtbS9rYXNhbi9rYXNhbi5jOjU1Mwoga2FzYW5f c2xhYl9hbGxvYysweDEyLzB4MjAgbW0va2FzYW4va2FzYW4uYzo0OTAKIGttZW1fY2FjaGVfYWxs b2MrMHgxMmUvMHg3NjAgbW0vc2xhYi5jOjM1NTQKIHNrYl9jbG9uZSsweDFmNS8weDUwMCBuZXQv Y29yZS9za2J1ZmYuYzoxMjgyCiB0cGFja2V0X3JjdisweDI4ZjcvMHgzMjAwIG5ldC9wYWNrZXQv YWZfcGFja2V0LmM6MjIyMQogZGVsaXZlcl9za2IgbmV0L2NvcmUvZGV2LmM6MTkyNSBbaW5saW5l XQogZGVsaXZlcl9wdHlwZV9saXN0X3NrYiBuZXQvY29yZS9kZXYuYzoxOTQwIFtpbmxpbmVdCiBf X25ldGlmX3JlY2VpdmVfc2tiX2NvcmUrMHgxYmZiLzB4MzY4MCBuZXQvY29yZS9kZXYuYzo0NjEx CiBfX25ldGlmX3JlY2VpdmVfc2tiKzB4MmMvMHgxZTAgbmV0L2NvcmUvZGV2LmM6NDY5MwogbmV0 aWZfcmVjZWl2ZV9za2JfaW50ZXJuYWwrMHgxMmUvMHg3ZDAgbmV0L2NvcmUvZGV2LmM6NDc2Nwog bmV0aWZfcmVjZWl2ZV9za2IrMHhiZi8weDQyMCBuZXQvY29yZS9kZXYuYzo0NzkxCiB0dW5fcnhf YmF0Y2hlZC5pc3JhLjU1KzB4NGJhLzB4OGMwIGRyaXZlcnMvbmV0L3R1bi5jOjE1NzEKIHR1bl9n ZXRfdXNlcisweDJhZjEvMHg0MmYwIGRyaXZlcnMvbmV0L3R1bi5jOjE5ODEKIHR1bl9jaHJfd3Jp dGVfaXRlcisweGI5LzB4MTU0IGRyaXZlcnMvbmV0L3R1bi5jOjIwMDkKIGNhbGxfd3JpdGVfaXRl ciBpbmNsdWRlL2xpbnV4L2ZzLmg6MTc5NSBbaW5saW5lXQogbmV3X3N5bmNfd3JpdGUgZnMvcmVh ZF93cml0ZS5jOjQ3NCBbaW5saW5lXQogX192ZnNfd3JpdGUrMHg2YzYvMHg5ZjAgZnMvcmVhZF93 cml0ZS5jOjQ4NwogdmZzX3dyaXRlKzB4MWY4LzB4NTYwIGZzL3JlYWRfd3JpdGUuYzo1NDkKIGtz eXNfd3JpdGUrMHgxMDEvMHgyNjAgZnMvcmVhZF93cml0ZS5jOjU5OAogX19kb19zeXNfd3JpdGUg ZnMvcmVhZF93cml0ZS5jOjYxMCBbaW5saW5lXQogX19zZV9zeXNfd3JpdGUgZnMvcmVhZF93cml0 ZS5jOjYwNyBbaW5saW5lXQogX194NjRfc3lzX3dyaXRlKzB4NzMvMHhiMCBmcy9yZWFkX3dyaXRl LmM6NjA3CiBkb19zeXNjYWxsXzY0KzB4MWI5LzB4ODIwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5j OjI5MAogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDkvMHhiZQoKRnJlZWQgYnkg dGFzayA0NTUzOgogc2F2ZV9zdGFjaysweDQzLzB4ZDAgbW0va2FzYW4va2FzYW4uYzo0NDgKIHNl dF90cmFjayBtbS9rYXNhbi9rYXNhbi5jOjQ2MCBbaW5saW5lXQogX19rYXNhbl9zbGFiX2ZyZWUr MHgxMWEvMHgxNzAgbW0va2FzYW4va2FzYW4uYzo1MjEKIGthc2FuX3NsYWJfZnJlZSsweGUvMHgx MCBtbS9rYXNhbi9rYXNhbi5jOjUyOAogX19jYWNoZV9mcmVlIG1tL3NsYWIuYzozNDk4IFtpbmxp bmVdCiBrbWVtX2NhY2hlX2ZyZWUrMHg4Ni8weDJkMCBtbS9zbGFiLmM6Mzc1Ngoga2ZyZWVfc2ti bWVtKzB4MTU0LzB4MjMwIG5ldC9jb3JlL3NrYnVmZi5jOjU4MgogX19rZnJlZV9za2IgbmV0L2Nv cmUvc2tidWZmLmM6NjQyIFtpbmxpbmVdCiBrZnJlZV9za2IrMHgxYTUvMHg1ODAgbmV0L2NvcmUv c2tidWZmLmM6NjU5CiB0cGFja2V0X3JjdisweDE4OWUvMHgzMjAwIG5ldC9wYWNrZXQvYWZfcGFj a2V0LmM6MjM4NQogZGVsaXZlcl9za2IgbmV0L2NvcmUvZGV2LmM6MTkyNSBbaW5saW5lXQogZGVs aXZlcl9wdHlwZV9saXN0X3NrYiBuZXQvY29yZS9kZXYuYzoxOTQwIFtpbmxpbmVdCiBfX25ldGlm X3JlY2VpdmVfc2tiX2NvcmUrMHgxYmZiLzB4MzY4MCBuZXQvY29yZS9kZXYuYzo0NjExCiBfX25l dGlmX3JlY2VpdmVfc2tiKzB4MmMvMHgxZTAgbmV0L2NvcmUvZGV2LmM6NDY5MwogbmV0aWZfcmVj ZWl2ZV9za2JfaW50ZXJuYWwrMHgxMmUvMHg3ZDAgbmV0L2NvcmUvZGV2LmM6NDc2NwogbmV0aWZf cmVjZWl2ZV9za2IrMHhiZi8weDQyMCBuZXQvY29yZS9kZXYuYzo0NzkxCiB0dW5fcnhfYmF0Y2hl ZC5pc3JhLjU1KzB4NGJhLzB4OGMwIGRyaXZlcnMvbmV0L3R1bi5jOjE1NzEKIHR1bl9nZXRfdXNl cisweDJhZjEvMHg0MmYwIGRyaXZlcnMvbmV0L3R1bi5jOjE5ODEKIHR1bl9jaHJfd3JpdGVfaXRl cisweGI5LzB4MTU0IGRyaXZlcnMvbmV0L3R1bi5jOjIwMDkKIGNhbGxfd3JpdGVfaXRlciBpbmNs dWRlL2xpbnV4L2ZzLmg6MTc5NSBbaW5saW5lXQogbmV3X3N5bmNfd3JpdGUgZnMvcmVhZF93cml0 ZS5jOjQ3NCBbaW5saW5lXQogX192ZnNfd3JpdGUrMHg2YzYvMHg5ZjAgZnMvcmVhZF93cml0ZS5j OjQ4NwogdmZzX3dyaXRlKzB4MWY4LzB4NTYwIGZzL3JlYWRfd3JpdGUuYzo1NDkKIGtzeXNfd3Jp dGUrMHgxMDEvMHgyNjAgZnMvcmVhZF93cml0ZS5jOjU5OAogX19kb19zeXNfd3JpdGUgZnMvcmVh ZF93cml0ZS5jOjYxMCBbaW5saW5lXQogX19zZV9zeXNfd3JpdGUgZnMvcmVhZF93cml0ZS5jOjYw NyBbaW5saW5lXQogX194NjRfc3lzX3dyaXRlKzB4NzMvMHhiMCBmcy9yZWFkX3dyaXRlLmM6NjA3 CiBkb19zeXNjYWxsXzY0KzB4MWI5LzB4ODIwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI5MAog ZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDkvMHhiZQoKVGhlIGJ1Z2d5IGFkZHJl c3MgYmVsb25ncyB0byB0aGUgb2JqZWN0IGF0IGZmZmY4ODAxYjA0NGVjYzAKIHdoaWNoIGJlbG9u Z3MgdG8gdGhlIGNhY2hlIHNrYnVmZl9oZWFkX2NhY2hlIG9mIHNpemUgMjMyClRoZSBidWdneSBh ZGRyZXNzIGlzIGxvY2F0ZWQgMCBieXRlcyBpbnNpZGUgb2YKIDIzMi1ieXRlIHJlZ2lvbiBbZmZm Zjg4MDFiMDQ0ZWNjMCwgZmZmZjg4MDFiMDQ0ZWRhOCkKVGhlIGJ1Z2d5IGFkZHJlc3MgYmVsb25n cyB0byB0aGUgcGFnZToKcGFnZTpmZmZmZWEwMDA2YzExMzgwIGNvdW50OjEgbWFwY291bnQ6MCBt YXBwaW5nOmZmZmY4ODAxZDliZTk2YzAgaW5kZXg6MHgwCmZsYWdzOiAweDJmZmZjMDAwMDAwMDEw MChzbGFiKQpyYXc6IDAyZmZmYzAwMDAwMDAxMDAgZmZmZmVhMDAwNmMxNzk4OCBmZmZmODgwMWQ5 YmVjMjQ4IGZmZmY4ODAxZDliZTk2YzAKcmF3OiAwMDAwMDAwMDAwMDAwMDAwIGZmZmY4ODAxYjA0 NGUwNDAgMDAwMDAwMDEwMDAwMDAwYyAwMDAwMDAwMDAwMDAwMDAwCnBhZ2UgZHVtcGVkIGJlY2F1 c2U6IGthc2FuOiBiYWQgYWNjZXNzIGRldGVjdGVkCgpNZW1vcnkgc3RhdGUgYXJvdW5kIHRoZSBi dWdneSBhZGRyZXNzOgogZmZmZjg4MDFiMDQ0ZWI4MDogMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAKIGZmZmY4ODAxYjA0NGVjMDA6IDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIGZjIGZjIGZjCj5mZmZmODgwMWIwNDRlYzgwOiBmYyBm YyBmYyBmYyBmYyBmYyBmYyBmYyBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogZmZmZjg4MDFiMDQ0ZWQwMDogZmIgZmIg ZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIKIGZmZmY4ODAxYjA0NGVk ODA6IGZiIGZiIGZiIGZiIGZiIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjCgpGaXhl czogNThkMTliMTljZDk5ICgicGFja2V0OiB2bmV0X2hkciBzdXBwb3J0IGZvciB0cGFja2V0X3Jj diIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVw b3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+CkNjOiBXaWxsZW0g ZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwg MTYgKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgOSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3Bh Y2tldC9hZl9wYWNrZXQuYwppbmRleCAzOGQxMzJkMDA3YmEuLmNiMGYwMjc4NTc0OSAxMDA2NDQK LS0tIGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYworKysgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5j CkBAIC0yMjk0LDYgKzIyOTQsMTMgQEAgc3RhdGljIGludCB0cGFja2V0X3JjdihzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQlpZiAocG8tPnN0YXRzLnN0YXRz MS50cF9kcm9wcykKIAkJCXN0YXR1cyB8PSBUUF9TVEFUVVNfTE9TSU5HOwogCX0KKworCWlmIChk b192bmV0ICYmCisJICAgIHZpcnRpb19uZXRfaGRyX2Zyb21fc2tiKHNrYiwgaC5yYXcgKyBtYWNv ZmYgLQorCQkJCSAgICBzaXplb2Yoc3RydWN0IHZpcnRpb19uZXRfaGRyKSwKKwkJCQkgICAgdmlv X2xlKCksIHRydWUsIDApKQorCQlnb3RvIGRyb3Bfbl9hY2NvdW50OworCiAJcG8tPnN0YXRzLnN0 YXRzMS50cF9wYWNrZXRzKys7CiAJaWYgKGNvcHlfc2tiKSB7CiAJCXN0YXR1cyB8PSBUUF9TVEFU VVNfQ09QWTsKQEAgLTIzMDEsMTUgKzIzMDgsNiBAQCBzdGF0aWMgaW50IHRwYWNrZXRfcmN2KHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJfQogCXNwaW5fdW5s b2NrKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZS5sb2NrKTsKIAotCWlmIChkb192bmV0KSB7Ci0JCWlm ICh2aXJ0aW9fbmV0X2hkcl9mcm9tX3NrYihza2IsIGgucmF3ICsgbWFjb2ZmIC0KLQkJCQkJICAg IHNpemVvZihzdHJ1Y3QgdmlydGlvX25ldF9oZHIpLAotCQkJCQkgICAgdmlvX2xlKCksIHRydWUs IDApKSB7Ci0JCQlzcGluX2xvY2soJnNrLT5za19yZWNlaXZlX3F1ZXVlLmxvY2spOwotCQkJZ290 byBkcm9wX25fYWNjb3VudDsKLQkJfQotCX0KLQogCXNrYl9jb3B5X2JpdHMoc2tiLCAwLCBoLnJh dyArIG1hY29mZiwgc25hcGxlbik7CiAKIAlpZiAoISh0c19zdGF0dXMgPSB0cGFja2V0X2dldF90 aW1lc3RhbXAoc2tiLCAmdHMsIHBvLT50cF90c3RhbXApKSkKLS0gCjIuMTcuMQoKCkZyb20gYzY1 MDc1ZmVlODAzYzRiMjg0ZDFhOWNiODhlOWQ2NGE3MzhiMWFlOSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGF2aWRlIENhcmF0dGkgPGRjYXJhdHRpQHJlZGhhdC5jb20+CkRhdGU6IFR1 ZSwgMTkgSnVuIDIwMTggMTU6Mzk6NDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDIxLzUzXSBuZXQv c2NoZWQ6IGFjdF9pZmU6IGZpeCByZWN1cnNpdmUgbG9jayBhbmQgaWRyIGxlYWsKClsgVXBzdHJl YW0gY29tbWl0IDBhODg5Yjk0MDRjMDg0YzZmZDE0NTAyMGM5MzlhOGY2ODhiM2UwNTggXQoKYSBy ZWN1cnNpdmUgbG9jayB3YXJuaW5nIFsxXSBjYW4gYmUgb2JzZXJ2ZWQgd2l0aCB0aGUgZm9sbG93 aW5nIHNjcmlwdCwKCiAjICRUQyBhY3Rpb25zIGFkZCBhY3Rpb24gaWZlIGVuY29kZSBhbGxvdyBw cmlvIHBhc3MgaW5kZXggNDIKIElGRSB0eXBlIDB4RUQzRQogIyAkVEMgYWN0aW9ucyByZXBsYWNl IGFjdGlvbiBpZmUgZW5jb2RlIGFsbG93IHRjaW5kZXggcGFzcyBpbmRleCA0MgoKaW4gY2FzZSB0 aGUga2VybmVsIHdhcyB1bmFibGUgdG8gcnVuIHRoZSBsYXN0IGNvbW1hbmQgKGUuZy4gYmVjYXVz ZSBvZgp0aGUgaW1wb3NzaWJpbGl0eSB0byBsb2FkICdhY3RfbWV0YV9za2J0Y2luZGV4JykuIEZv ciBhIHNpbWlsYXIgcmVhc29uLAp0aGUga2VybmVsIGNhbiBsZWFrIGlkciBpbiB0aGUgZXJyb3Ig cGF0aCBvZiB0Y2ZfaWZlX2luaXQoKSwgYmVjYXVzZQp0Y2ZfaWRyX3JlbGVhc2UoKSBpcyBub3Qg Y2FsbGVkIGFmdGVyIHN1Y2Nlc3NmdWwgaWRyIHJlc2VydmF0aW9uOgoKICMgJFRDIGFjdGlvbnMg YWRkIGFjdGlvbiBpZmUgZW5jb2RlIGFsbG93IHRjaW5kZXggaW5kZXggNDcKIElGRSB0eXBlIDB4 RUQzRQogUlRORVRMSU5LIGFuc3dlcnM6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKIFdlIGhh dmUgYW4gZXJyb3IgdGFsa2luZyB0byB0aGUga2VybmVsCiAjICRUQyBhY3Rpb25zIGFkZCBhY3Rp b24gaWZlIGVuY29kZSBhbGxvdyB0Y2luZGV4IGluZGV4IDQ3CiBJRkUgdHlwZSAweEVEM0UKIFJU TkVUTElOSyBhbnN3ZXJzOiBObyBzcGFjZSBsZWZ0IG9uIGRldmljZQogV2UgaGF2ZSBhbiBlcnJv ciB0YWxraW5nIHRvIHRoZSBrZXJuZWwKICMgJFRDIGFjdGlvbnMgYWRkIGFjdGlvbiBpZmUgZW5j b2RlIHVzZSBtYXJrIDcgdHlwZSAweGZlZmUgcGFzcyBpbmRleCA0NwogSUZFIHR5cGUgMHhGRUZF CiBSVE5FVExJTksgYW5zd2VyczogTm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UKIFdlIGhhdmUgYW4g ZXJyb3IgdGFsa2luZyB0byB0aGUga2VybmVsCgpTaW5jZSB0Y2ZhX2xvY2sgaXMgYWxyZWFkeSB0 YWtlbiB3aGVuIHRoZSBhY3Rpb24gaXMgYmVpbmcgZWRpdGVkLCBhIGNhbGwKdG8gdGNmX2lkcl9y ZWxlYXNlKCkgd3JvbmdseSBtYWtlcyB0Y2ZfaWRyX2NsZWFudXAoKSB0YWtlIHRoZSBzYW1lIGxv Y2sKYWdhaW4uIE9uIHRoZSBvdGhlciBoYW5kLCB0Y2ZfaWRyX3JlbGVhc2UoKSBuZWVkcyB0byBi ZSBjYWxsZWQgaW4gdGhlCmVycm9yIHBhdGggb2YgdGNmX2lmZV9pbml0KCksIHRvIHVuZG8gdGhl IGxhc3QgdGNmX2lkcl9jcmVhdGUoKSBpbnZvY2F0aW9uLgpGaXggYm90aCBwcm9ibGVtcyBpbiB0 Y2ZfaWZlX2luaXQoKS4KU2luY2UgdGhlIGNsZWFudXAoKSByb3V0aW5lIGNhbiBub3cgYmUgY2Fs bGVkIHdoZW4gaWZlLT5wYXJhbXMgaXMgTlVMTCwKYWxzbyBhZGQgYSBOVUxMIHBvaW50ZXIgY2hl Y2sgdG8gYXZvaWQgY2FsbGluZyBrZnJlZV9yY3UoTlVMTCwgcmN1KS4KCiBbMV0KID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBXQVJOSU5HOiBwb3NzaWJsZSBy ZWN1cnNpdmUgbG9ja2luZyBkZXRlY3RlZAogNC4xNy4wLXJjNC5rYXNhbisgIzQxNyBUYWludGVk OiBHICAgICAgICAgICAgRQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIHRjLzM5MzIgaXMgdHJ5aW5nIHRvIGFjcXVpcmUgbG9jazoKIDAwMDAwMDAwNTA5N2M5 YTYgKCYoJnAtPnRjZmFfbG9jayktPnJsb2NrKXsrLi4ufSwgYXQ6IHRjZl9pZmVfY2xlYW51cCsw eDE5LzB4ODAgW2FjdF9pZmVdCgogYnV0IHRhc2sgaXMgYWxyZWFkeSBob2xkaW5nIGxvY2s6CiAw MDAwMDAwMDUwOTdjOWE2ICgmKCZwLT50Y2ZhX2xvY2spLT5ybG9jayl7Ky4uLn0sIGF0OiB0Y2Zf aWZlX2luaXQrMHhmNmQvMHgxM2MwIFthY3RfaWZlXQoKIG90aGVyIGluZm8gdGhhdCBtaWdodCBo ZWxwIHVzIGRlYnVnIHRoaXM6CiAgUG9zc2libGUgdW5zYWZlIGxvY2tpbmcgc2NlbmFyaW86Cgog ICAgICAgIENQVTAKICAgICAgICAtLS0tCiAgIGxvY2soJigmcC0+dGNmYV9sb2NrKS0+cmxvY2sp OwogICBsb2NrKCYoJnAtPnRjZmFfbG9jayktPnJsb2NrKTsKCiAgKioqIERFQURMT0NLICoqKgoK ICBNYXkgYmUgZHVlIHRvIG1pc3NpbmcgbG9jayBuZXN0aW5nIG5vdGF0aW9uCgogMiBsb2NrcyBo ZWxkIGJ5IHRjLzM5MzI6CiAgIzA6IDAwMDAwMDAwN2NhOGU5OTAgKHJ0bmxfbXV0ZXgpeysuKy59 LCBhdDogdGNmX2lmZV9pbml0KzB4ZjYxLzB4MTNjMCBbYWN0X2lmZV0KICAjMTogMDAwMDAwMDA1 MDk3YzlhNiAoJigmcC0+dGNmYV9sb2NrKS0+cmxvY2speysuLi59LCBhdDogdGNmX2lmZV9pbml0 KzB4ZjZkLzB4MTNjMCBbYWN0X2lmZV0KCiBzdGFjayBiYWNrdHJhY2U6CiBDUFU6IDMgUElEOiAz OTMyIENvbW06IHRjIFRhaW50ZWQ6IEcgICAgICAgICAgICBFICAgICA0LjE3LjAtcmM0Lmthc2Fu KyAjNDE3CiBIYXJkd2FyZSBuYW1lOiBSZWQgSGF0IEtWTSwgQklPUyAwLjUuMSAwMS8wMS8yMDEx CiBDYWxsIFRyYWNlOgogIGR1bXBfc3RhY2srMHg5YS8weGViCiAgX19sb2NrX2FjcXVpcmUrMHhm NDMvMHgzNGEwCiAgPyBkZWJ1Z19jaGVja19ub19sb2Nrc19mcmVlZCsweDJiMC8weDJiMAogID8g ZGVidWdfY2hlY2tfbm9fbG9ja3NfZnJlZWQrMHgyYjAvMHgyYjAKICA/IGRlYnVnX2NoZWNrX25v X2xvY2tzX2ZyZWVkKzB4MmIwLzB4MmIwCiAgPyBfX211dGV4X2xvY2srMHg2MmYvMHgxMjQwCiAg PyBrdm1fc2NoZWRfY2xvY2tfcmVhZCsweDFhLzB4MzAKICA/IHNjaGVkX2Nsb2NrKzB4NS8weDEw CiAgPyBzY2hlZF9jbG9ja19jcHUrMHgxOC8weDE3MAogID8gZmluZF9oZWxkX2xvY2srMHgzOS8w eDFkMAogID8gbG9ja19hY3F1aXJlKzB4MTBiLzB4MzMwCiAgbG9ja19hY3F1aXJlKzB4MTBiLzB4 MzMwCiAgPyB0Y2ZfaWZlX2NsZWFudXArMHgxOS8weDgwIFthY3RfaWZlXQogIF9yYXdfc3Bpbl9s b2NrX2JoKzB4MzgvMHg3MAogID8gdGNmX2lmZV9jbGVhbnVwKzB4MTkvMHg4MCBbYWN0X2lmZV0K ICB0Y2ZfaWZlX2NsZWFudXArMHgxOS8weDgwIFthY3RfaWZlXQogIF9fdGNmX2lkcl9yZWxlYXNl KzB4ZmYvMHgzNTAKICB0Y2ZfaWZlX2luaXQrMHhkZGUvMHgxM2MwIFthY3RfaWZlXQogID8gaWZl X2V4aXRfbmV0KzB4MjkwLzB4MjkwIFthY3RfaWZlXQogID8gX19sb2NrX2lzX2hlbGQrMHhiNC8w eDE0MAogIHRjZl9hY3Rpb25faW5pdF8xKzB4NjdiLzB4YWQwCiAgPyB0Y2ZfYWN0aW9uX2R1bXBf b2xkKzB4YTAvMHhhMAogID8gc2NoZWRfY2xvY2srMHg1LzB4MTAKICA/IHNjaGVkX2Nsb2NrX2Nw dSsweDE4LzB4MTcwCiAgPyBrdm1fc2NoZWRfY2xvY2tfcmVhZCsweDFhLzB4MzAKICA/IHNjaGVk X2Nsb2NrKzB4NS8weDEwCiAgPyBzY2hlZF9jbG9ja19jcHUrMHgxOC8weDE3MAogID8gbWVtc2V0 KzB4MWYvMHg0MAogIHRjZl9hY3Rpb25faW5pdCsweDMwZi8weDU5MAogID8gdGNmX2FjdGlvbl9p bml0XzErMHhhZDAvMHhhZDAKICA/IG1lbXNldCsweDFmLzB4NDAKICB0Y19jdGxfYWN0aW9uKzB4 NDhlLzB4NWUwCiAgPyBtdXRleF9sb2NrX2lvX25lc3RlZCsweDExNjAvMHgxMTYwCiAgPyB0Y2Ff YWN0aW9uX2dkKzB4OTkwLzB4OTkwCiAgPyBzY2hlZF9jbG9jaysweDUvMHgxMAogID8gZmluZF9o ZWxkX2xvY2srMHgzOS8weDFkMAogIHJ0bmV0bGlua19yY3ZfbXNnKzB4NGRhLzB4OTkwCiAgPyB2 YWxpZGF0ZV9saW5rbXNnKzB4NjgwLzB4NjgwCiAgPyBzY2hlZF9jbG9ja19jcHUrMHgxOC8weDE3 MAogID8gZmluZF9oZWxkX2xvY2srMHgzOS8weDFkMAogIG5ldGxpbmtfcmN2X3NrYisweDEyNy8w eDM1MAogID8gdmFsaWRhdGVfbGlua21zZysweDY4MC8weDY4MAogID8gbmV0bGlua19hY2srMHg5 NzAvMHg5NzAKICA/IF9fa21hbGxvY19ub2RlX3RyYWNrX2NhbGxlcisweDMwNC8weDNhMAogIG5l dGxpbmtfdW5pY2FzdCsweDQwZi8weDVkMAogID8gbmV0bGlua19hdHRhY2hza2IrMHg1ODAvMHg1 ODAKICA/IF9jb3B5X2Zyb21faXRlcl9mdWxsKzB4MTg3LzB4NzYwCiAgPyBpbXBvcnRfaW92ZWMr MHg5MC8weDM5MAogIG5ldGxpbmtfc2VuZG1zZysweDY3Zi8weGI1MAogID8gbmV0bGlua191bmlj YXN0KzB4NWQwLzB4NWQwCiAgPyBjb3B5X21zZ2hkcl9mcm9tX3VzZXIrMHgyMDYvMHgzNDAKICA/ IG5ldGxpbmtfdW5pY2FzdCsweDVkMC8weDVkMAogIHNvY2tfc2VuZG1zZysweGIzLzB4ZjAKICBf X19zeXNfc2VuZG1zZysweDYwYS8weDhiMAogID8gY29weV9tc2doZHJfZnJvbV91c2VyKzB4MzQw LzB4MzQwCiAgPyBsb2NrX2Rvd25ncmFkZSsweDVlMC8weDVlMAogID8gdHR5X3dyaXRlX2xvY2sr MHgxOC8weDUwCiAgPyBrdm1fc2NoZWRfY2xvY2tfcmVhZCsweDFhLzB4MzAKICA/IHNjaGVkX2Ns b2NrKzB4NS8weDEwCiAgPyBzY2hlZF9jbG9ja19jcHUrMHgxOC8weDE3MAogID8gZmluZF9oZWxk X2xvY2srMHgzOS8weDFkMAogID8gbG9ja19kb3duZ3JhZGUrMHg1ZTAvMHg1ZTAKICA/IGxvY2tf YWNxdWlyZSsweDEwYi8weDMzMAogID8gX19hdWRpdF9zeXNjYWxsX2VudHJ5KzB4MzE2LzB4Njkw CiAgPyBjdXJyZW50X2tlcm5lbF90aW1lNjQrMHg2Yi8weGQwCiAgPyBfX2ZnZXRfbGlnaHQrMHg1 NS8weDFmMAogID8gX19zeXNfc2VuZG1zZysweGQyLzB4MTcwCiAgX19zeXNfc2VuZG1zZysweGQy LzB4MTcwCiAgPyBfX2lhMzJfc3lzX3NodXRkb3duKzB4NzAvMHg3MAogID8gc3lzY2FsbF90cmFj ZV9lbnRlcisweDU3YS8weGQ2MAogID8gcmN1X3JlYWRfbG9ja19zY2hlZF9oZWxkKzB4ZGMvMHgx MTAKICA/IF9fYnBmX3RyYWNlX3N5c19lbnRlcisweDEwLzB4MTAKICA/IGRvX3N5c2NhbGxfNjQr MHgyMi8weDQ4MAogIGRvX3N5c2NhbGxfNjQrMHhhNS8weDQ4MAogIGVudHJ5X1NZU0NBTExfNjRf YWZ0ZXJfaHdmcmFtZSsweDQ5LzB4YmUKIFJJUDogMDAzMzoweDdmZDY0Njk4OGJhMAogUlNQOiAw MDJiOjAwMDA3ZmZmYzlmYWIzYzggRUZMQUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAw MDAwMDAyZQogUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDdmZmZjOWZhYjRmMCBSQ1g6 IDAwMDA3ZmQ2NDY5ODhiYTAKIFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAwMDA3ZmZmYzlm YWI0NDAgUkRJOiAwMDAwMDAwMDAwMDAwMDAzCiBSQlA6IDAwMDAwMDAwNWIyOGM4YjMgUjA4OiAw MDAwMDAwMDAwMDAwMDAyIFIwOTogMDAwMDAwMDAwMDAwMDAwMAogUjEwOiAwMDAwN2ZmZmM5ZmFh ZTIwIFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDAwMDAwMDAwMDAwMDAKIFIxMzogMDAw MDdmZmZjOWZhYjUwNCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDEgUjE1OiAwMDAwMDAwMDAwNjZjMTAw CgpGaXhlczogNGU4Yzg2MTU1MDEwICgibmV0IHNjaGVkOiBuZXQgc2NoZWQ6IGlmZSBhY3Rpb24g Zml4IGxhdGUgYmluZGluZyIpCkZpeGVzOiBlZjY5ODBiNmJlY2IgKCJpbnRyb2R1Y2UgSUZFIGFj dGlvbiIpClNpZ25lZC1vZmYtYnk6IERhdmlkZSBDYXJhdHRpIDxkY2FyYXR0aUByZWRoYXQuY29t PgpBY2tlZC1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2No ZWQvYWN0X2lmZS5jIHwgOSArKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2FjdF9pZmUuYyBiL25l dC9zY2hlZC9hY3RfaWZlLmMKaW5kZXggODUyN2NmZGM0NDZkLi4wNzhkNTIyMTIxNzIgMTAwNjQ0 Ci0tLSBhL25ldC9zY2hlZC9hY3RfaWZlLmMKKysrIGIvbmV0L3NjaGVkL2FjdF9pZmUuYwpAQCAt NDE1LDcgKzQxNSw4IEBAIHN0YXRpYyB2b2lkIHRjZl9pZmVfY2xlYW51cChzdHJ1Y3QgdGNfYWN0 aW9uICphKQogCXNwaW5fdW5sb2NrX2JoKCZpZmUtPnRjZl9sb2NrKTsKIAogCXAgPSByY3VfZGVy ZWZlcmVuY2VfcHJvdGVjdGVkKGlmZS0+cGFyYW1zLCAxKTsKLQlrZnJlZV9yY3UocCwgcmN1KTsK KwlpZiAocCkKKwkJa2ZyZWVfcmN1KHAsIHJjdSk7CiB9CiAKIC8qIHVuZGVyIGlmZS0+dGNmX2xv Y2sgZm9yIGV4aXN0aW5nIGFjdGlvbiAqLwpAQCAtNTQzLDEwICs1NDQsOCBAQCBzdGF0aWMgaW50 IHRjZl9pZmVfaW5pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwKIAkJCQkg ICAgICAgTlVMTCwgTlVMTCk7CiAJCWlmIChlcnIpIHsKIG1ldGFkYXRhX3BhcnNlX2VycjoKLQkJ CWlmIChleGlzdHMpCi0JCQkJdGNmX2lkcl9yZWxlYXNlKCphLCBiaW5kKTsKIAkJCWlmIChyZXQg PT0gQUNUX1BfQ1JFQVRFRCkKLQkJCQlfdGNmX2lmZV9jbGVhbnVwKCphKTsKKwkJCQl0Y2ZfaWRy X3JlbGVhc2UoKmEsIGJpbmQpOwogCiAJCQlpZiAoZXhpc3RzKQogCQkJCXNwaW5fdW5sb2NrX2Jo KCZpZmUtPnRjZl9sb2NrKTsKQEAgLTU2Nyw3ICs1NjYsNyBAQCBzdGF0aWMgaW50IHRjZl9pZmVf aW5pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwKIAkJZXJyID0gdXNlX2Fs bF9tZXRhZGF0YShpZmUpOwogCQlpZiAoZXJyKSB7CiAJCQlpZiAocmV0ID09IEFDVF9QX0NSRUFU RUQpCi0JCQkJX3RjZl9pZmVfY2xlYW51cCgqYSk7CisJCQkJdGNmX2lkcl9yZWxlYXNlKCphLCBi aW5kKTsKIAogCQkJaWYgKGV4aXN0cykKIAkJCQlzcGluX3VubG9ja19iaCgmaWZlLT50Y2ZfbG9j ayk7Ci0tIAoyLjE3LjEKCgpGcm9tIGUzNzlhMWYyMTM0ZGMwZjc3N2YzMjdkYjVmZjY0MGEyOGUx ZWJhMzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmlkZSBDYXJhdHRpIDxkY2Fy YXR0aUByZWRoYXQuY29tPgpEYXRlOiBUdWUsIDE5IEp1biAyMDE4IDE1OjQ1OjUwICswMjAwClN1 YmplY3Q6IFtQQVRDSCAyMi81M10gbmV0L3NjaGVkOiBhY3RfaWZlOiBwcmVzZXJ2ZSB0aGUgYWN0 aW9uIGNvbnRyb2wgaW4gY2FzZQogb2YgZXJyb3IKClsgVXBzdHJlYW0gY29tbWl0IGNiZjU2YzI5 NjI0ZmEwNTZhMGMxYzNkMTc3ZTY3YWE1MWE3ZmQ4ZDYgXQoKaW4gdGhlIGZvbGxvd2luZyBzY3Jp cHQKCiAjIHRjIGFjdGlvbnMgYWRkIGFjdGlvbiBpZmUgZW5jb2RlIGFsbG93IHByaW8gcGFzcyBp bmRleCA0MgogIyB0YyBhY3Rpb25zIHJlcGxhY2UgYWN0aW9uIGlmZSBlbmNvZGUgYWxsb3cgdGNp bmRleCBkcm9wIGluZGV4IDQyCgp0aGUgYWN0aW9uIGNvbnRyb2wgc2hvdWxkIHJlbWFpbiBlcXVh bCB0byAncGFzcycsIGlmIHRoZSBrZXJuZWwgZmFpbGVkCnRvIHJlcGxhY2UgdGhlIFRDIGFjdGlv bi4gUG9zcG9uZSB0aGUgYXNzaWdubWVudCBvZiB0aGUgYWN0aW9uIGNvbnRyb2wsCnRvIGVuc3Vy ZSBpdCBpcyBub3Qgb3ZlcndyaXR0ZW4gaW4gdGhlIGVycm9yIHBhdGggb2YgdGNmX2lmZV9pbml0 KCkuCgpGaXhlczogZWY2OTgwYjZiZWNiICgiaW50cm9kdWNlIElGRSBhY3Rpb24iKQpTaWduZWQt b2ZmLWJ5OiBEYXZpZGUgQ2FyYXR0aSA8ZGNhcmF0dGlAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IENv bmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL2FjdF9pZmUuYyB8 IDMgKy0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2FjdF9pZmUuYyBiL25ldC9zY2hlZC9hY3RfaWZlLmMKaW5k ZXggMDc4ZDUyMjEyMTcyLi4yMGQ3ZDM2YjJmYzkgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3Rf aWZlLmMKKysrIGIvbmV0L3NjaGVkL2FjdF9pZmUuYwpAQCAtNTE3LDggKzUxNyw2IEBAIHN0YXRp YyBpbnQgdGNmX2lmZV9pbml0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5sYXR0ciAqbmxhLAog CQkJc2FkZHIgPSBubGFfZGF0YSh0YltUQ0FfSUZFX1NNQUNdKTsKIAl9CiAKLQlpZmUtPnRjZl9h Y3Rpb24gPSBwYXJtLT5hY3Rpb247Ci0KIAlpZiAocGFybS0+ZmxhZ3MgJiBJRkVfRU5DT0RFKSB7 CiAJCWlmIChkYWRkcikKIAkJCWV0aGVyX2FkZHJfY29weShwLT5ldGhfZHN0LCBkYWRkcik7CkBA IC01NzUsNiArNTczLDcgQEAgc3RhdGljIGludCB0Y2ZfaWZlX2luaXQoc3RydWN0IG5ldCAqbmV0 LCBzdHJ1Y3QgbmxhdHRyICpubGEsCiAJCX0KIAl9CiAKKwlpZmUtPnRjZl9hY3Rpb24gPSBwYXJt LT5hY3Rpb247CiAJaWYgKGV4aXN0cykKIAkJc3Bpbl91bmxvY2tfYmgoJmlmZS0+dGNmX2xvY2sp OwogCi0tIAoyLjE3LjEKCgpGcm9tIDIyY2I4M2MyOTA2MDgxM2U2NjNiNzZlNTU3YTY4Y2U5Yzcw ZmMyNDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEtvbnN0YW50aW4gS2hsZWJuaWtv diA8a2hsZWJuaWtvdkB5YW5kZXgtdGVhbS5ydT4KRGF0ZTogRnJpLCAxNSBKdW4gMjAxOCAxMzoy NzozMSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjMvNTNdIG5ldF9zY2hlZDogYmxhY2tob2xlOiB0 ZWxsIHVwcGVyIHFkaXNjIGFib3V0IGRyb3BwZWQKIHBhY2tldHMKClsgVXBzdHJlYW0gY29tbWl0 IDdlODVkYzhjYjM1YWJmMTY0NTVmMTUxMWYwNjcwYjU3YzFhODQ2MDggXQoKV2hlbiBibGFja2hv bGUgaXMgdXNlZCBvbiB0b3Agb2YgY2xhc3NmdWwgcWRpc2MgbGlrZSBoZnNjIGl0IGJyZWFrcwpx bGVuIGFuZCBiYWNrbG9nIGNvdW50ZXJzIGJlY2F1c2UgcGFja2V0cyBhcmUgZGlzYXBwZWFyIHdp dGhvdXQgbm90aWNlLgoKSW4gSEZTQyBub24temVybyBxbGVuIHdoaWxlIGFsbCBjbGFzc2VzIGFy ZSBpbmFjdGl2ZSB0cmlnZ2VycyB3YXJuaW5nOgpXQVJOSU5HOiAuLi4gYXQgbmV0L3NjaGVkL3Nj aF9oZnNjLmM6MTM5MyBoZnNjX2RlcXVldWUrMHhiYTQvMHhlOTAgW3NjaF9oZnNjXQphbmQgc2No ZWR1bGVzIHdhdGNoZG9nIHdvcmsgZW5kbGVzc2x5LgoKVGhpcyBwYXRjaCByZXR1cm4gX19ORVRf WE1JVF9CWVBBU1MgaW4gYWRkaXRpb24gdG8gTkVUX1hNSVRfU1VDQ0VTUywKdGhpcyBmbGFnIHRl bGxzIHVwcGVyIGxheWVyOiB0aGlzIHBhY2tldCBpcyBnb25lIGFuZCBpc24ndCBxdWV1ZWQuCgpT aWduZWQtb2ZmLWJ5OiBLb25zdGFudGluIEtobGVibmlrb3YgPGtobGVibmlrb3ZAeWFuZGV4LXRl YW0ucnU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvc2NoZWQvc2NoX2JsYWNraG9sZS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3Nj aF9ibGFja2hvbGUuYyBiL25ldC9zY2hlZC9zY2hfYmxhY2tob2xlLmMKaW5kZXggYzk4YTYxZTk4 MGJhLi45YzRjMmJiNTQ3ZDcgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfYmxhY2tob2xlLmMK KysrIGIvbmV0L3NjaGVkL3NjaF9ibGFja2hvbGUuYwpAQCAtMjEsNyArMjEsNyBAQCBzdGF0aWMg aW50IGJsYWNraG9sZV9lbnF1ZXVlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBRZGlzYyAq c2NoLAogCQkJICAgICBzdHJ1Y3Qgc2tfYnVmZiAqKnRvX2ZyZWUpCiB7CiAJcWRpc2NfZHJvcChz a2IsIHNjaCwgdG9fZnJlZSk7Ci0JcmV0dXJuIE5FVF9YTUlUX1NVQ0NFU1M7CisJcmV0dXJuIE5F VF9YTUlUX1NVQ0NFU1MgfCBfX05FVF9YTUlUX0JZUEFTUzsKIH0KIAogc3RhdGljIHN0cnVjdCBz a19idWZmICpibGFja2hvbGVfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNjaCkKLS0gCjIuMTcuMQoK CkZyb20gMjBmOTlmZGJjZjE5OTVjMTMxNjRmNTRmYjMwNDY2OTEwMzhlMzIyNSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpE YXRlOiBUdWUsIDE5IEp1biAyMDE4IDE5OjE4OjUwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyNC81 M10gbmV0OiBzdW5nZW06IGZpeCByeCBjaGVja3N1bSBzdXBwb3J0CgpbIFVwc3RyZWFtIGNvbW1p dCAxMmIwMzU1OGNlZjZkNjU1ZDBkMzk0ZjVlOThhNmZkMDdjMWY2YzBmIF0KCkFmdGVyIGNvbW1p dCA4ODA3OGQ5OGQxYmIgKCJuZXQ6IHBza2JfdHJpbV9yY3N1bSgpIGFuZCBDSEVDS1NVTV9DT01Q TEVURQphcmUgZnJpZW5kcyIpLCBzdW5nZW0gb3duZXJzIHJlcG9ydGVkIHRoZSBpbmZhbW91cyAi ZXRoMDogaHcgY3N1bSBmYWlsdXJlIgptZXNzYWdlLgoKQ0hFQ0tTVU1fQ09NUExFVEUgaGFzIGlu IGZhY3QgbmV2ZXIgd29ya2VkIGZvciB0aGlzIGRyaXZlciwgYnV0IHRoaXMKd2FzIG1hc2tlZCBi eSB0aGUgZmFjdCB0aGF0IHVwcGVyIHN0YWNrcyBoYWQgdG8gc3RyaXAgdGhlIEZDUywgYW5kCnRo ZXJlZm9yZSBza2ItPmlwX3N1bW1lZCB3YXMgc2V0IGJhY2sgdG8gQ0hFQ0tTVU1fTk9ORSBiZWZv cmUKbXkgcmVjZW50IGNoYW5nZS4KCkRyaXZlciBjb25maWd1cmVzIGEgbnVtYmVyIG9mIGJ5dGVz IHRvIHNraXAgd2hlbiB0aGUgY2hpcCBjb21wdXRlcwp0aGUgY2hlY2tzdW0sIGFuZCBmb3Igc29t ZSByZWFzb24gb25seSBoYWxmIG9mIHRoZSBFdGhlcm5ldCBoZWFkZXIKd2FzIHNraXBwZWQuCgpU aGVuIGEgc2Vjb25kIHByb2JsZW0gaXMgdGhhdCB3ZSBzaG91bGQgc3RyaXAgdGhlIEZDUyBieSBk ZWZhdWx0LAp1bmxlc3MgdGhlIGRyaXZlciBpcyB1cGRhdGVkIHRvIGV2ZW50dWFsbHkgc3VwcG9y dCBORVRJRl9GX1JYRkNTIGluCnRoZSBmdXR1cmUuCgpGaW5hbGx5LCBhIGRyaXZlciBzaG91bGQg Y2hlY2sgaWYgTkVUSUZfRl9SWENTVU0gZmVhdHVyZSBpcyBlbmFibGVkCm9yIG5vdCwgc28gdGhh dCB0aGUgYWRtaW4gY2FuIHR1cm4gb2ZmIHJ4IGNoZWNrc3VtIGlmIHdhbnRlZC4KCk1hbnkgdGhh bmtzIHRvIEFuZHJlYXMgU2Nod2FiIGFuZCBNYXRoaWV1IE1hbGF0ZXJyZSBmb3IgdGhlaXIKaGVs cCBpbiBkZWJ1Z2dpbmcgdGhpcyBpc3N1ZS4KClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IE1lZWxpcyBSb29zIDxtcm9vc0BsaW51 eC5lZT4KUmVwb3J0ZWQtYnk6IE1hdGhpZXUgTWFsYXRlcnJlIDxtYWxhdEBkZWJpYW4ub3JnPgpS ZXBvcnRlZC1ieTogQW5kcmVhcyBTY2h3YWIgPHNjaHdhYkBsaW51eC1tNjhrLm9yZz4KVGVzdGVk LWJ5OiBBbmRyZWFzIFNjaHdhYiA8c2Nod2FiQGxpbnV4LW02OGsub3JnPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvc3VuL3N1bmdlbS5jIHwgMjIgKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L3N1bi9zdW5nZW0uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3N1bi9zdW5nZW0uYwppbmRleCA3YTE2ZDQwYTcyZDEuLmI5MjIxZmMxNjc0ZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3VuL3N1bmdlbS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3N1bi9zdW5nZW0uYwpAQCAtNjAsOCArNjAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3N1 bmdlbV9waHkuaD4KICNpbmNsdWRlICJzdW5nZW0uaCIKIAotLyogU3RyaXBwaW5nIEZDUyBpcyBj YXVzaW5nIHByb2JsZW1zLCBkaXNhYmxlZCBmb3Igbm93ICovCi0jdW5kZWYgU1RSSVBfRkNTCisj ZGVmaW5lIFNUUklQX0ZDUwogCiAjZGVmaW5lIERFRkFVTFRfTVNHCShORVRJRl9NU0dfRFJWCQl8 IFwKIAkJCSBORVRJRl9NU0dfUFJPQkUJfCBcCkBAIC00MzUsNyArNDM0LDcgQEAgc3RhdGljIGlu dCBnZW1fcnhtYWNfcmVzZXQoc3RydWN0IGdlbSAqZ3ApCiAJd3JpdGVsKGRlc2NfZG1hICYgMHhm ZmZmZmZmZiwgZ3AtPnJlZ3MgKyBSWERNQV9EQkxPVyk7CiAJd3JpdGVsKFJYX1JJTkdfU0laRSAt IDQsIGdwLT5yZWdzICsgUlhETUFfS0lDSyk7CiAJdmFsID0gKFJYRE1BX0NGR19CQVNFIHwgKFJY X09GRlNFVCA8PCAxMCkgfAotCSAgICAgICAoKDE0IC8gMikgPDwgMTMpIHwgUlhETUFfQ0ZHX0ZU SFJFU0hfMTI4KTsKKwkgICAgICAgKEVUSF9ITEVOIDw8IDEzKSB8IFJYRE1BX0NGR19GVEhSRVNI XzEyOCk7CiAJd3JpdGVsKHZhbCwgZ3AtPnJlZ3MgKyBSWERNQV9DRkcpOwogCWlmIChyZWFkbChn cC0+cmVncyArIEdSRUdfQklGQ0ZHKSAmIEdSRUdfQklGQ0ZHX002NkVOKQogCQl3cml0ZWwoKCg1 ICYgUlhETUFfQkxBTktfSVBLVFMpIHwKQEAgLTc2MCw3ICs3NTksNiBAQCBzdGF0aWMgaW50IGdl bV9yeChzdHJ1Y3QgZ2VtICpncCwgaW50IHdvcmtfdG9fZG8pCiAJc3RydWN0IG5ldF9kZXZpY2Ug KmRldiA9IGdwLT5kZXY7CiAJaW50IGVudHJ5LCBkcm9wcywgd29ya19kb25lID0gMDsKIAl1MzIg ZG9uZTsKLQlfX3N1bTE2IGNzdW07CiAKIAlpZiAobmV0aWZfbXNnX3J4X3N0YXR1cyhncCkpCiAJ CXByaW50ayhLRVJOX0RFQlVHICIlczogcnggaW50ZXJydXB0LCBkb25lOiAlZCwgcnhfbmV3OiAl ZFxuIiwKQEAgLTg1NSw5ICs4NTMsMTMgQEAgc3RhdGljIGludCBnZW1fcngoc3RydWN0IGdlbSAq Z3AsIGludCB3b3JrX3RvX2RvKQogCQkJc2tiID0gY29weV9za2I7CiAJCX0KIAotCQljc3VtID0g KF9fZm9yY2UgX19zdW0xNilodG9ucygoc3RhdHVzICYgUlhEQ1RSTF9UQ1BDU1VNKSBeIDB4ZmZm Zik7Ci0JCXNrYi0+Y3N1bSA9IGNzdW1fdW5mb2xkKGNzdW0pOwotCQlza2ItPmlwX3N1bW1lZCA9 IENIRUNLU1VNX0NPTVBMRVRFOworCQlpZiAobGlrZWx5KGRldi0+ZmVhdHVyZXMgJiBORVRJRl9G X1JYQ1NVTSkpIHsKKwkJCV9fc3VtMTYgY3N1bTsKKworCQkJY3N1bSA9IChfX2ZvcmNlIF9fc3Vt MTYpaHRvbnMoKHN0YXR1cyAmIFJYRENUUkxfVENQQ1NVTSkgXiAweGZmZmYpOworCQkJc2tiLT5j c3VtID0gY3N1bV91bmZvbGQoY3N1bSk7CisJCQlza2ItPmlwX3N1bW1lZCA9IENIRUNLU1VNX0NP TVBMRVRFOworCQl9CiAJCXNrYi0+cHJvdG9jb2wgPSBldGhfdHlwZV90cmFucyhza2IsIGdwLT5k ZXYpOwogCiAJCW5hcGlfZ3JvX3JlY2VpdmUoJmdwLT5uYXBpLCBza2IpOwpAQCAtMTc2MSw3ICsx NzYzLDcgQEAgc3RhdGljIHZvaWQgZ2VtX2luaXRfZG1hKHN0cnVjdCBnZW0gKmdwKQogCXdyaXRl bCgwLCBncC0+cmVncyArIFRYRE1BX0tJQ0spOwogCiAJdmFsID0gKFJYRE1BX0NGR19CQVNFIHwg KFJYX09GRlNFVCA8PCAxMCkgfAotCSAgICAgICAoKDE0IC8gMikgPDwgMTMpIHwgUlhETUFfQ0ZH X0ZUSFJFU0hfMTI4KTsKKwkgICAgICAgKEVUSF9ITEVOIDw8IDEzKSB8IFJYRE1BX0NGR19GVEhS RVNIXzEyOCk7CiAJd3JpdGVsKHZhbCwgZ3AtPnJlZ3MgKyBSWERNQV9DRkcpOwogCiAJd3JpdGVs KGRlc2NfZG1hID4+IDMyLCBncC0+cmVncyArIFJYRE1BX0RCSEkpOwpAQCAtMjk4NSw4ICsyOTg3 LDggQEAgc3RhdGljIGludCBnZW1faW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0 IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiAJcGNpX3NldF9kcnZkYXRhKHBkZXYsIGRldik7 CiAKIAkvKiBXZSBjYW4gZG8gc2NhdHRlci9nYXRoZXIgYW5kIEhXIGNoZWNrc3VtICovCi0JZGV2 LT5od19mZWF0dXJlcyA9IE5FVElGX0ZfU0cgfCBORVRJRl9GX0hXX0NTVU07Ci0JZGV2LT5mZWF0 dXJlcyB8PSBkZXYtPmh3X2ZlYXR1cmVzIHwgTkVUSUZfRl9SWENTVU07CisJZGV2LT5od19mZWF0 dXJlcyA9IE5FVElGX0ZfU0cgfCBORVRJRl9GX0hXX0NTVU0gfCBORVRJRl9GX1JYQ1NVTTsKKwlk ZXYtPmZlYXR1cmVzID0gZGV2LT5od19mZWF0dXJlczsKIAlpZiAocGNpX3VzaW5nX2RhYykKIAkJ ZGV2LT5mZWF0dXJlcyB8PSBORVRJRl9GX0hJR0hETUE7CiAKLS0gCjIuMTcuMQoKCkZyb20gYWRm OGY3NWMxMmI3YTIzMjdlMjY4Zjk0YWM3Y2Q0NjYxM2I4NjBkYiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpEYXRlOiBNb24sIDE4 IEp1biAyMDE4IDEyOjMwOjM3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyNS81M10gbmV0L3RjcDog Rml4IHNvY2tldCBsb29rdXBzIHdpdGggU09fQklORFRPREVWSUNFCgpbIFVwc3RyZWFtIGNvbW1p dCA4YzQzYmQxNzA2ODg1YmExYWNmYTg4ZGEwMmJjNjBhMmVjMTZmNjhjIF0KClNpbWlsYXIgdG8g Njk2NzhiY2Q0ZDJkICgidWRwOiBmaXggU09fQklORFRPREVWSUNFIiksIFRDUCBzb2NrZXQgbG9v a3VwcwpuZWVkIHRvIGZhaWwgaWYgZGV2X21hdGNoIGlzIG5vdCB0cnVlLiBDdXJyZW50bHksIGEg cGFja2V0IHRvIGEgZ2l2ZW4gcG9ydApjYW4gbWF0Y2ggYSBzb2NrZXQgYm91bmQgdG8gZGV2aWNl IHdoZW4gaXQgc2hvdWxkIG5vdC4gSW4gdGhlIFZSRiBjYXNlLAp0aGlzIGNhdXNlcyB0aGUgbG9v a3VwIHRvIGhpdCBhIFZSRiBzb2NrZXQgYW5kIG5vdCBhIGdsb2JhbCBzb2NrZXQKcmVzdWx0aW5n IGluIGEgcmVzcG9uc2UgdHJ5aW5nIHRvIGdvIHRocm91Z2ggdGhlIFZSRiB3aGVuIGl0IHNob3Vs ZCBub3QuCgpGaXhlczogM2ZhNmY2MTZhN2E0ZCAoIm5ldDogaXB2NDogYWRkIHNlY29uZCBkaWYg dG8gaW5ldCBzb2NrZXQgbG9va3VwcyIpCkZpeGVzOiA0Mjk3YTBlZjA4NTcyICgibmV0OiBpcHY2 OiBhZGQgc2Vjb25kIGRpZiB0byBpbmV0NiBzb2NrZXQgbG9va3VwcyIpClJlcG9ydGVkLWJ5OiBM b3UgQmVyZ2VyIDxsYmVyZ2VyQGxhYm4ubmV0PgpEaWFnbm9zZWQtYnk6IFJlbmF0byBXZXN0cGhh bCA8cmVuYXRvQG9wZW5zb3VyY2Vyb3V0aW5nLm9yZz4KVGVzdGVkLWJ5OiBSZW5hdG8gV2VzdHBo YWwgPHJlbmF0b0BvcGVuc291cmNlcm91dGluZy5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIEFo ZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jICB8IDQg KystLQogbmV0L2lwdjYvaW5ldDZfaGFzaHRhYmxlcy5jIHwgNCArKy0tCiAyIGZpbGVzIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2 NC9pbmV0X2hhc2h0YWJsZXMuYyBiL25ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jCmluZGV4IDMx ZmY0NmRhYWU5Ny4uMzY0NzE2N2M4ZmEzIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pbmV0X2hhc2h0 YWJsZXMuYworKysgYi9uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYwpAQCAtMjQzLDkgKzI0Myw5 IEBAIHN0YXRpYyBpbmxpbmUgaW50IGNvbXB1dGVfc2NvcmUoc3RydWN0IHNvY2sgKnNrLCBzdHJ1 Y3QgbmV0ICpuZXQsCiAJCQlib29sIGRldl9tYXRjaCA9IChzay0+c2tfYm91bmRfZGV2X2lmID09 IGRpZiB8fAogCQkJCQkgIHNrLT5za19ib3VuZF9kZXZfaWYgPT0gc2RpZik7CiAKLQkJCWlmIChl eGFjdF9kaWYgJiYgIWRldl9tYXRjaCkKKwkJCWlmICghZGV2X21hdGNoKQogCQkJCXJldHVybiAt MTsKLQkJCWlmIChzay0+c2tfYm91bmRfZGV2X2lmICYmIGRldl9tYXRjaCkKKwkJCWlmIChzay0+ c2tfYm91bmRfZGV2X2lmKQogCQkJCXNjb3JlICs9IDQ7CiAJCX0KIAkJaWYgKHNrLT5za19pbmNv bWluZ19jcHUgPT0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKSkKZGlmZiAtLWdpdCBhL25ldC9pcHY2 L2luZXQ2X2hhc2h0YWJsZXMuYyBiL25ldC9pcHY2L2luZXQ2X2hhc2h0YWJsZXMuYwppbmRleCAy ZmViZTI2ZGU2YTEuLjU5NWFkNDA4ZGJhMCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaW5ldDZfaGFz aHRhYmxlcy5jCisrKyBiL25ldC9pcHY2L2luZXQ2X2hhc2h0YWJsZXMuYwpAQCAtMTEzLDkgKzEx Myw5IEBAIHN0YXRpYyBpbmxpbmUgaW50IGNvbXB1dGVfc2NvcmUoc3RydWN0IHNvY2sgKnNrLCBz dHJ1Y3QgbmV0ICpuZXQsCiAJCQlib29sIGRldl9tYXRjaCA9IChzay0+c2tfYm91bmRfZGV2X2lm ID09IGRpZiB8fAogCQkJCQkgIHNrLT5za19ib3VuZF9kZXZfaWYgPT0gc2RpZik7CiAKLQkJCWlm IChleGFjdF9kaWYgJiYgIWRldl9tYXRjaCkKKwkJCWlmICghZGV2X21hdGNoKQogCQkJCXJldHVy biAtMTsKLQkJCWlmIChzay0+c2tfYm91bmRfZGV2X2lmICYmIGRldl9tYXRjaCkKKwkJCWlmIChz ay0+c2tfYm91bmRfZGV2X2lmKQogCQkJCXNjb3JlKys7CiAJCX0KIAkJaWYgKHNrLT5za19pbmNv bWluZ19jcHUgPT0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKSkKLS0gCjIuMTcuMQoKCkZyb20gOWQx OGNjMjk2ZTA5YmU2MmVlZWE5ZTNhOWIyOTY0YjFjMzE2ZGY1YSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogU3VkYXJzYW5hIFJlZGR5IEthbGx1cnUgPHN1ZGFyc2FuYS5rYWxsdXJ1QGNh dml1bS5jb20+CkRhdGU6IFN1biwgMSBKdWwgMjAxOCAyMDowMzowOCAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggMjYvNTNdIHFlZGU6IEFkdmVyc3Rpc2Ugc29mdHdhcmUgdGltZXN0YW1wIGNhcHMgd2hl biBQSEMgaXMKIG5vdCBhdmFpbGFibGUuCgpbIFVwc3RyZWFtIGNvbW1pdCA4MmE0ZTcxYjE1NjVk ZWE4Mzg3ZjU0NTAzZTgwNmNmMzc0ZTc3OWVjIF0KCldoZW4gcHRwIGNsb2NrIGlzIG5vdCBhdmFp bGFibGUgZm9yIGEgUEYgKGUuZy4sIGhpZ2hlciBQRnMgaW4gTlBBUiBtb2RlKSwKZ2V0LXRzaW5m bygpIGNhbGxiYWNrIHNob3VsZCByZXR1cm4gdGhlIHNvZnR3YXJlIHRpbWVzdGFtcCBjYXBhYmls aXRpZXMKaW5zdGVhZCBvZiByZXR1cm5pbmcgdGhlIGVycm9yLgoKRml4ZXM6IDRjNTUyMTVjICgi cWVkZTogQWRkIGRyaXZlciBzdXBwb3J0IGZvciBQVFAiKQpTaWduZWQtb2ZmLWJ5OiBTdWRhcnNh bmEgUmVkZHkgS2FsbHVydSA8U3VkYXJzYW5hLkthbGx1cnVAY2F2aXVtLmNvbT4KU2lnbmVkLW9m Zi1ieTogTWljaGFsIEthbGRlcm9uIDxNaWNoYWwuS2FsZGVyb25AY2F2aXVtLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWRlL3FlZGVfcHRwLmMgfCAxMCArKysrKysrKy0tCiAx IGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWRlL3FlZGVfcHRwLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9xbG9naWMvcWVkZS9xZWRlX3B0cC5jCmluZGV4IDAyYWRiNTEzZjQ3NS4u MDEzZmY1NjcyODNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVk ZS9xZWRlX3B0cC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWRlL3FlZGVf cHRwLmMKQEAgLTMzNyw4ICszMzcsMTQgQEAgaW50IHFlZGVfcHRwX2dldF90c19pbmZvKHN0cnVj dCBxZWRlX2RldiAqZWRldiwgc3RydWN0IGV0aHRvb2xfdHNfaW5mbyAqaW5mbykKIHsKIAlzdHJ1 Y3QgcWVkZV9wdHAgKnB0cCA9IGVkZXYtPnB0cDsKIAotCWlmICghcHRwKQotCQlyZXR1cm4gLUVJ TzsKKwlpZiAoIXB0cCkgeworCQlpbmZvLT5zb190aW1lc3RhbXBpbmcgPSBTT0ZfVElNRVNUQU1Q SU5HX1RYX1NPRlRXQVJFIHwKKwkJCQkJU09GX1RJTUVTVEFNUElOR19SWF9TT0ZUV0FSRSB8CisJ CQkJCVNPRl9USU1FU1RBTVBJTkdfU09GVFdBUkU7CisJCWluZm8tPnBoY19pbmRleCA9IC0xOwor CisJCXJldHVybiAwOworCX0KIAogCWluZm8tPnNvX3RpbWVzdGFtcGluZyA9IFNPRl9USU1FU1RB TVBJTkdfVFhfU09GVFdBUkUgfAogCQkJCVNPRl9USU1FU1RBTVBJTkdfUlhfU09GVFdBUkUgfAot LSAKMi4xNy4xCgoKRnJvbSA1ZTI3YTk5NWZiMDljYTY3OGQ5MjJkYWE5NTViOTFiNDk1YWI4N2I4 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdWRhcnNhbmEgUmVkZHkgS2FsbHVydSA8 c3VkYXJzYW5hLmthbGx1cnVAY2F2aXVtLmNvbT4KRGF0ZTogU3VuLCAxIEp1bCAyMDE4IDIwOjAz OjA2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyNy81M10gcWVkOiBGaXggc2V0dGluZyBvZiBpbmNv cnJlY3QgZXN3aXRjaCBtb2RlLgoKWyBVcHN0cmVhbSBjb21taXQgNTM4ZjhkMDBiYThiYjQxN2M0 ZDllNzZjNjFkZWU1OWQ4MTJkODI4NyBdCgpCeSBkZWZhdWx0LCBkcml2ZXIgc2V0cyB0aGUgZXN3 aXRjaCBtb2RlIGluY29ycmVjdGx5IGFzIFZFQiAodmlydHVhbApFdGhlcm5ldCBicmlkZ2luZyku Ck5lZWQgdG8gc2V0IFZFQiBlc3dpdGNoIG1vZGUgb25seSB3aGVuIHNyaW92IGlzIGVuYWJsZWQs IGFuZCBpdCBzaG91bGQgYmUKdG8gc2V0IE5PTkUgYnkgZGVmYXVsdC4gVGhlIHBhdGNoIGluY29y cG9yYXRlcyB0aGlzIGNoYW5nZS4KCkZpeGVzOiAwZmVmYmZiYWEgKCJxZWQqOiBNYW5hZ2VtZW50 IGZpcm13YXJlIC0gbm90aWZpY2F0aW9ucyBhbmQgZGVmYXVsdHMiKQpTaWduZWQtb2ZmLWJ5OiBT dWRhcnNhbmEgUmVkZHkgS2FsbHVydSA8U3VkYXJzYW5hLkthbGx1cnVAY2F2aXVtLmNvbT4KU2ln bmVkLW9mZi1ieTogTWljaGFsIEthbGRlcm9uIDxNaWNoYWwuS2FsZGVyb25AY2F2aXVtLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX2Rldi5jICAgfCAgMiArLQogZHJp dmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRfc3Jpb3YuYyB8IDE5ICsrKysrKysrKysr KysrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkL3FlZF9kZXYu YyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX2Rldi5jCmluZGV4IGQyYWQ1 ZTkyYzc0Zi4uNTY0NGIyNGQ4NWIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9x bG9naWMvcWVkL3FlZF9kZXYuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVk L3FlZF9kZXYuYwpAQCAtMTc4OSw3ICsxNzg5LDcgQEAgaW50IHFlZF9od19pbml0KHN0cnVjdCBx ZWRfZGV2ICpjZGV2LCBzdHJ1Y3QgcWVkX2h3X2luaXRfcGFyYW1zICpwX3BhcmFtcykKIAkJCURQ X0lORk8ocF9od2ZuLCAiRmFpbGVkIHRvIHVwZGF0ZSBkcml2ZXIgc3RhdGVcbiIpOwogCiAJCXJj ID0gcWVkX21jcF9vdl91cGRhdGVfZXN3aXRjaChwX2h3Zm4sIHBfaHdmbi0+cF9tYWluX3B0dCwK LQkJCQkJICAgICAgIFFFRF9PVl9FU1dJVENIX1ZFQik7CisJCQkJCSAgICAgICBRRURfT1ZfRVNX SVRDSF9OT05FKTsKIAkJaWYgKHJjKQogCQkJRFBfSU5GTyhwX2h3Zm4sICJGYWlsZWQgdG8gdXBk YXRlIGVzd2l0Y2ggbW9kZVxuIik7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvcWxvZ2ljL3FlZC9xZWRfc3Jpb3YuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9x ZWQvcWVkX3NyaW92LmMKaW5kZXggNWFjYjkxYjM1NjRjLi40MTljNjgxZWEyYmUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX3NyaW92LmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRfc3Jpb3YuYwpAQCAtNDQwMCw2ICs0NDAw LDggQEAgc3RhdGljIHZvaWQgcWVkX3NyaW92X2VuYWJsZV9xaWRfY29uZmlnKHN0cnVjdCBxZWRf aHdmbiAqaHdmbiwKIHN0YXRpYyBpbnQgcWVkX3NyaW92X2VuYWJsZShzdHJ1Y3QgcWVkX2RldiAq Y2RldiwgaW50IG51bSkKIHsKIAlzdHJ1Y3QgcWVkX2lvdl92Zl9pbml0X3BhcmFtcyBwYXJhbXM7 CisJc3RydWN0IHFlZF9od2ZuICpod2ZuOworCXN0cnVjdCBxZWRfcHR0ICpwdHQ7CiAJaW50IGks IGosIHJjOwogCiAJaWYgKG51bSA+PSBSRVNDX05VTSgmY2Rldi0+aHdmbnNbMF0sIFFFRF9WUE9S VCkpIHsKQEAgLTQ0MTIsOCArNDQxNCw4IEBAIHN0YXRpYyBpbnQgcWVkX3NyaW92X2VuYWJsZShz dHJ1Y3QgcWVkX2RldiAqY2RldiwgaW50IG51bSkKIAogCS8qIEluaXRpYWxpemUgSFcgZm9yIFZG IGFjY2VzcyAqLwogCWZvcl9lYWNoX2h3Zm4oY2RldiwgaikgewotCQlzdHJ1Y3QgcWVkX2h3Zm4g Kmh3Zm4gPSAmY2Rldi0+aHdmbnNbal07Ci0JCXN0cnVjdCBxZWRfcHR0ICpwdHQgPSBxZWRfcHR0 X2FjcXVpcmUoaHdmbik7CisJCWh3Zm4gPSAmY2Rldi0+aHdmbnNbal07CisJCXB0dCA9IHFlZF9w dHRfYWNxdWlyZShod2ZuKTsKIAogCQkvKiBNYWtlIHN1cmUgbm90IHRvIHVzZSBtb3JlIHRoYW4g MTYgcXVldWVzIHBlciBWRiAqLwogCQlwYXJhbXMubnVtX3F1ZXVlcyA9IG1pbl90KGludCwKQEAg LTQ0NDksNiArNDQ1MSwxOSBAQCBzdGF0aWMgaW50IHFlZF9zcmlvdl9lbmFibGUoc3RydWN0IHFl ZF9kZXYgKmNkZXYsIGludCBudW0pCiAJCWdvdG8gZXJyOwogCX0KIAorCWh3Zm4gPSBRRURfTEVB RElOR19IV0ZOKGNkZXYpOworCXB0dCA9IHFlZF9wdHRfYWNxdWlyZShod2ZuKTsKKwlpZiAoIXB0 dCkgeworCQlEUF9FUlIoaHdmbiwgIkZhaWxlZCB0byBhY3F1aXJlIHB0dFxuIik7CisJCXJjID0g LUVCVVNZOworCQlnb3RvIGVycjsKKwl9CisKKwlyYyA9IHFlZF9tY3Bfb3ZfdXBkYXRlX2Vzd2l0 Y2goaHdmbiwgcHR0LCBRRURfT1ZfRVNXSVRDSF9WRUIpOworCWlmIChyYykKKwkJRFBfSU5GTyhj ZGV2LCAiRmFpbGVkIHRvIHVwZGF0ZSBlc3dpdGNoIG1vZGVcbiIpOworCXFlZF9wdHRfcmVsZWFz ZShod2ZuLCBwdHQpOworCiAJcmV0dXJuIG51bTsKIAogZXJyOgotLSAKMi4xNy4xCgoKRnJvbSAy MjQ5YTIyYmYzZTcwM2NmNDc1MGFjOWJkMmViMWFhM2RjNjM1YjU4IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBTdWRhcnNhbmEgUmVkZHkgS2FsbHVydSA8c3VkYXJzYW5hLmthbGx1cnVA Y2F2aXVtLmNvbT4KRGF0ZTogU3VuLCAxIEp1bCAyMDE4IDIwOjAzOjA3IC0wNzAwClN1YmplY3Q6 IFtQQVRDSCAyOC81M10gcWVkOiBGaXggdXNlIG9mIGluY29ycmVjdCBzaXplIGluIG1lbWNweSBj YWxsLgoKWyBVcHN0cmVhbSBjb21taXQgY2M5YjI3Y2RmN2JkM2M4NmRmNzM0Mzk3NThhYzE1NjRi YzhmNWJiZSBdCgpVc2UgdGhlIGNvcnJlY3Qgc2l6ZSB2YWx1ZSB3aGlsZSBjb3B5aW5nIGNoYXNz aXMvcG9ydCBpZCB2YWx1ZXMuCgpGaXhlczogNmFkOGM2MzJlICgicWVkOiBBZGQgc3VwcG9ydCBm b3IgcXVlcnkvY29uZmlnIGRjYnguIikKU2lnbmVkLW9mZi1ieTogU3VkYXJzYW5hIFJlZGR5IEth bGx1cnUgPFN1ZGFyc2FuYS5LYWxsdXJ1QGNhdml1bS5jb20+ClNpZ25lZC1vZmYtYnk6IE1pY2hh bCBLYWxkZXJvbiA8TWljaGFsLkthbGRlcm9uQGNhdml1bS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9xbG9naWMvcWVkL3FlZF9kY2J4LmMgfCA4ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwg NCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX2RjYnguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fs b2dpYy9xZWQvcWVkX2RjYnguYwppbmRleCA0NDk3NzdmMjEyMzcuLmU4Mjk4NmRmOWI4ZSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRfZGNieC5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX2RjYnguYwpAQCAtNzAwLDkgKzcw MCw5IEBAIHFlZF9kY2J4X2dldF9sb2NhbF9sbGRwX3BhcmFtcyhzdHJ1Y3QgcWVkX2h3Zm4gKnBf aHdmbiwKIAlwX2xvY2FsID0gJnBfaHdmbi0+cF9kY2J4X2luZm8tPmxsZHBfbG9jYWxbTExEUF9O RUFSRVNUX0JSSURHRV07CiAKIAltZW1jcHkocGFyYW1zLT5sbGRwX2xvY2FsLmxvY2FsX2NoYXNz aXNfaWQsIHBfbG9jYWwtPmxvY2FsX2NoYXNzaXNfaWQsCi0JICAgICAgIEFSUkFZX1NJWkUocF9s b2NhbC0+bG9jYWxfY2hhc3Npc19pZCkpOworCSAgICAgICBzaXplb2YocF9sb2NhbC0+bG9jYWxf Y2hhc3Npc19pZCkpOwogCW1lbWNweShwYXJhbXMtPmxsZHBfbG9jYWwubG9jYWxfcG9ydF9pZCwg cF9sb2NhbC0+bG9jYWxfcG9ydF9pZCwKLQkgICAgICAgQVJSQVlfU0laRShwX2xvY2FsLT5sb2Nh bF9wb3J0X2lkKSk7CisJICAgICAgIHNpemVvZihwX2xvY2FsLT5sb2NhbF9wb3J0X2lkKSk7CiB9 CiAKIHN0YXRpYyB2b2lkCkBAIC03MTQsOSArNzE0LDkgQEAgcWVkX2RjYnhfZ2V0X3JlbW90ZV9s bGRwX3BhcmFtcyhzdHJ1Y3QgcWVkX2h3Zm4gKnBfaHdmbiwKIAlwX3JlbW90ZSA9ICZwX2h3Zm4t PnBfZGNieF9pbmZvLT5sbGRwX3JlbW90ZVtMTERQX05FQVJFU1RfQlJJREdFXTsKIAogCW1lbWNw eShwYXJhbXMtPmxsZHBfcmVtb3RlLnBlZXJfY2hhc3Npc19pZCwgcF9yZW1vdGUtPnBlZXJfY2hh c3Npc19pZCwKLQkgICAgICAgQVJSQVlfU0laRShwX3JlbW90ZS0+cGVlcl9jaGFzc2lzX2lkKSk7 CisJICAgICAgIHNpemVvZihwX3JlbW90ZS0+cGVlcl9jaGFzc2lzX2lkKSk7CiAJbWVtY3B5KHBh cmFtcy0+bGxkcF9yZW1vdGUucGVlcl9wb3J0X2lkLCBwX3JlbW90ZS0+cGVlcl9wb3J0X2lkLAot CSAgICAgICBBUlJBWV9TSVpFKHBfcmVtb3RlLT5wZWVyX3BvcnRfaWQpKTsKKwkgICAgICAgc2l6 ZW9mKHBfcmVtb3RlLT5wZWVyX3BvcnRfaWQpKTsKIH0KIAogc3RhdGljIGludAotLSAKMi4xNy4x CgoKRnJvbSA0MDZkNDYzZDBlZmM1ZWI2YzRiYmZhZWI1MGVhZjZiOWY4NzdlODFlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdWRhcnNhbmEgUmVkZHkgS2FsbHVydSA8c3VkYXJzYW5h LmthbGx1cnVAY2F2aXVtLmNvbT4KRGF0ZTogU3VuLCAxIEp1bCAyMDE4IDIwOjAzOjA1IC0wNzAw ClN1YmplY3Q6IFtQQVRDSCAyOS81M10gcWVkOiBMaW1pdCBtc2l4IHZlY3RvcnMgaW4ga2R1bXAg a2VybmVsIHRvIHRoZSBtaW5pbXVtCiByZXF1aXJlZCBjb3VudC4KClsgVXBzdHJlYW0gY29tbWl0 IGJiNzg1OGJhMTEwMmY4MjQ3MGE5MTdlMDQxZmQyM2U2Mzg1YzMxYmUgXQoKTWVtb3J5IHNpemUg aXMgbGltaXRlZCBpbiB0aGUga2R1bXAga2VybmVsIGVudmlyb25tZW50LiBBbGxvY2F0aW9uIG9m IG1vcmUKbXNpeC12ZWN0b3JzIChvciBxdWV1ZXMpIGNvbnN1bWVzIGZldyB0ZW5zIG9mIE1CcyBv ZiBtZW1vcnksIHdoaWNoIG1pZ2h0CmxlYWQgdG8gdGhlIGtkdW1wIGtlcm5lbCBmYWlsdXJlLgpU aGlzIHBhdGNoIGFkZHMgY2hhbmdlcyB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIE1TSS1YIHZlY3Rv cnMgaW4ga2R1bXAKa2VybmVsIHRvIG1pbmltdW0gcmVxdWlyZWQgdmFsdWUgKGkuZS4sIDIgcGVy IGVuZ2luZSkuCgpGaXhlczogZmU1NmI5ZTZhICgicWVkOiBBZGQgbW9kdWxlIHdpdGggYmFzaWMg Y29tbW9uIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBTdWRhcnNhbmEgUmVkZHkgS2FsbHVydSA8 U3VkYXJzYW5hLkthbGx1cnVAY2F2aXVtLmNvbT4KU2lnbmVkLW9mZi1ieTogTWljaGFsIEthbGRl cm9uIDxNaWNoYWwuS2FsZGVyb25AY2F2aXVtLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3Fs b2dpYy9xZWQvcWVkX21haW4uYyB8IDggKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2Vy dGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkL3Fl ZF9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkL3FlZF9tYWluLmMKaW5k ZXggNzg3MGFlMmE2ZjdlLi4yNjFmMjFkNmIwYjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3Fsb2dpYy9xZWQvcWVkX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9x bG9naWMvcWVkL3FlZF9tYWluLmMKQEAgLTc4MCw2ICs3ODAsMTQgQEAgc3RhdGljIGludCBxZWRf c2xvd3BhdGhfc2V0dXBfaW50KHN0cnVjdCBxZWRfZGV2ICpjZGV2LAogCS8qIFdlIHdhbnQgYSBt aW5pbXVtIG9mIG9uZSBzbG93cGF0aCBhbmQgb25lIGZhc3RwYXRoIHZlY3RvciBwZXIgaHdmbiAq LwogCWNkZXYtPmludF9wYXJhbXMuaW4ubWluX21zaXhfY250ID0gY2Rldi0+bnVtX2h3Zm5zICog MjsKIAorCWlmIChpc19rZHVtcF9rZXJuZWwoKSkgeworCQlEUF9JTkZPKGNkZXYsCisJCQkiS2R1 bXAga2VybmVsOiBMaW1pdCB0aGUgbWF4IG51bWJlciBvZiByZXF1ZXN0ZWQgTVNJLVggdmVjdG9y cyB0byAlaGRcbiIsCisJCQljZGV2LT5pbnRfcGFyYW1zLmluLm1pbl9tc2l4X2NudCk7CisJCWNk ZXYtPmludF9wYXJhbXMuaW4ubnVtX3ZlY3RvcnMgPQorCQkJY2Rldi0+aW50X3BhcmFtcy5pbi5t aW5fbXNpeF9jbnQ7CisJfQorCiAJcmMgPSBxZWRfc2V0X2ludF9tb2RlKGNkZXYsIGZhbHNlKTsK IAlpZiAocmMpICB7CiAJCURQX0VSUihjZGV2LCAicWVkX3Nsb3dwYXRoX3NldHVwX2ludCBFUlJc biIpOwotLSAKMi4xNy4xCgoKRnJvbSA0Y2Q4MjBhY2EwYjRjYTU1MWNlNzZiMWI5OGJhMWJhZTFh ZGI1MTA5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVrc2FuZGVyIE1vcmdhZG8g PGFsZWtzYW5kZXJAYWxla3NhbmRlci5lcz4KRGF0ZTogU2F0LCAyMyBKdW4gMjAxOCAyMzoyMjo1 MiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzAvNTNdIHFtaV93d2FuOiBhZGQgc3VwcG9ydCBmb3Ig dGhlIERlbGwgV2lyZWxlc3MgNTgyMWUKIG1vZHVsZQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50 LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu ZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgZTdlMTk3ZWRkMDljMjU3NzRiNGYxMmNhYjE5Zjlk NTQ2MmYyNDBmNCBdCgpUaGlzIG1vZHVsZSBleHBvc2VzIHR3byBVU0IgY29uZmlndXJhdGlvbnM6 IGEgUU1JK0FUIGNhcGFibGUgc2V0dXAgb24KVVNCIGNvbmZpZyAjMSBhbmQgYSBNQklNIGNhcGFi bGUgc2V0dXAgb24gVVNCIGNvbmZpZyAjMi4KCkJ5IGRlZmF1bHQgdGhlIGtlcm5lbCB3aWxsIGNo b29zZSB0aGUgTUJJTSBjYXBhYmxlIGNvbmZpZ3VyYXRpb24gYXMKbG9uZyBhcyB0aGUgY2RjX21i aW0gZHJpdmVyIGlzIGF2YWlsYWJsZS4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yCnRoZSBR TUkgcG9ydCBpbiB0aGUgc2Vjb25kYXJ5IGNvbmZpZ3VyYXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBB bGVrc2FuZGVyIE1vcmdhZG8gPGFsZWtzYW5kZXJAYWxla3NhbmRlci5lcz4KQWNrZWQtYnk6IEJq w7hybiBNb3JrIDxiam9ybkBtb3JrLm5vPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgfCAx ICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3VzYi9xbWlfd3dhbi5jIGIvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKaW5kZXggMDk0 NjgwODcxNjg3Li4wNGMyMmY1MDhlZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9xbWlf d3dhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCkBAIC0xMjQ2LDYgKzEyNDYs NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcHJvZHVjdHNbXSA9IHsKIAl7 UU1JX0ZJWEVEX0lOVEYoMHg0MTNjLCAweDgxYjMsIDgpfSwJLyogRGVsbCBXaXJlbGVzcyA1ODA5 ZSBHb2JpKFRNKSA0RyBMVEUgTW9iaWxlIEJyb2FkYmFuZCBDYXJkIChyZXYzKSAqLwogCXtRTUlf RklYRURfSU5URigweDQxM2MsIDB4ODFiNiwgOCl9LAkvKiBEZWxsIFdpcmVsZXNzIDU4MTFlICov CiAJe1FNSV9GSVhFRF9JTlRGKDB4NDEzYywgMHg4MWI2LCAxMCl9LAkvKiBEZWxsIFdpcmVsZXNz IDU4MTFlICovCisJe1FNSV9GSVhFRF9JTlRGKDB4NDEzYywgMHg4MWQ3LCAxKX0sCS8qIERlbGwg V2lyZWxlc3MgNTgyMWUgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgwM2YwLCAweDRlMWQsIDgpfSwJ LyogSFAgbHQ0MTExIExURS9FVi1ETy9IU1BBKyBHb2JpIDRHIE1vZHVsZSAqLwogCXtRTUlfRklY RURfSU5URigweDAzZjAsIDB4OWQxZCwgMSl9LAkvKiBIUCBsdDQxMjAgU25hcGRyYWdvbiBYNSBM VEUgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgyMmRlLCAweDkwNjEsIDMpfSwJLyogV2VUZWxlY29t IFdQRC02MDBOICovCi0tIAoyLjE3LjEKCgpGcm9tIGJjNjI3NzgwOTlhZTFlOGMwNGUwYjE1YWZh OTNiNjUzZjJhYmEyM2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEppcmkgU2xhYnkg PGpzbGFieUBzdXNlLmN6PgpEYXRlOiBNb24sIDI1IEp1biAyMDE4IDA5OjI2OjI3ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAzMS81M10gcjgxNTI6IG5hcGkgaGFuZ3VwIGZpeCBhZnRlciBkaXNjb25u ZWN0CgpbIFVwc3RyZWFtIGNvbW1pdCAwZWUxZjQ3MzQ5NjdhZjgzMjFlY2ViYWY5Yzc0MjIxYWNl MzRmMmQ1IF0KCldoZW4gdW5wbHVnZ2luZyBhbiByODE1MiBhZGFwdGVyIHdoaWxlIHRoZSBpbnRl cmZhY2UgaXMgVVAsIHRoZSBOSUMKYmVjb21lcyB1bnVzYWJsZS4gIHVzYi0+ZGlzY29ubmVjdCAo YWthIHJ0bDgxNTJfZGlzY29ubmVjdCkgZGVsZXRlcwpuYXBpLiBUaGVuLCBydGw4MTUyX2Rpc2Nv bm5lY3QgY2FsbHMgdW5yZWdpc3Rlcl9uZXRkZXYgYW5kIHRoYXQgaW52b2tlcwpuZXRkZXYtPm5k b19zdG9wIChha2EgcnRsODE1Ml9jbG9zZSkuIHJ0bDgxNTJfY2xvc2UgdHJpZXMgdG8KbmFwaV9k aXNhYmxlLCBidXQgdGhlIG5hcGkgaXMgYWxyZWFkeSBkZWxldGVkIGJ5IGRpc2Nvbm5lY3QgYWJv dmUuIFNvCnRoZSBmaXJzdCB3aGlsZSBsb29wIGluIG5hcGlfZGlzYWJsZSBuZXZlciBmaW5pc2hl cy4gVGhpcyByZXN1bHRzIGluCmNvbXBsZXRlIGRlYWRsb2NrIG9mIHRoZSBuZXR3b3JrIGxheWVy IGFzIHRoZXJlIGlzIHJ0bmxfbXV0ZXggaGVsZCBieQp1bnJlZ2lzdGVyX25ldGRldi4KClNvIGF2 b2lkIHRoZSBjYWxsIHRvIG5hcGlfZGlzYWJsZSBpbiBydGw4MTUyX2Nsb3NlIHdoZW4gdGhlIGRl dmljZSBpcwphbHJlYWR5IGdvbmUuCgpUaGUgb3RoZXIgY2FsbHMgdG8gdXNiX2tpbGxfdXJiLCBj YW5jZWxfZGVsYXllZF93b3JrX3N5bmMsCm5ldGlmX3N0b3BfcXVldWUgZXRjLiBzZWVtIHRvIGJl IGZpbmUuIFRoZSB1cmIgYW5kIG5ldGRldiBpcyBub3QKZGVzdHJveWVkIHlldC4KClNpZ25lZC1v ZmYtYnk6IEppcmkgU2xhYnkgPGpzbGFieUBzdXNlLmN6PgpDYzogbGludXgtdXNiQHZnZXIua2Vy bmVsLm9yZwpDYzogbmV0ZGV2QHZnZXIua2VybmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL3I4MTUy LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9yODE1Mi5jIGIvZHJpdmVycy9uZXQvdXNi L3I4MTUyLmMKaW5kZXggODZmNzE5NmY5ZDkxLi4yYTU4NjA3YTZhZWEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L3VzYi9yODE1Mi5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9yODE1Mi5jCkBAIC0z OTYyLDcgKzM5NjIsOCBAQCBzdGF0aWMgaW50IHJ0bDgxNTJfY2xvc2Uoc3RydWN0IG5ldF9kZXZp Y2UgKm5ldGRldikKICNpZmRlZiBDT05GSUdfUE1fU0xFRVAKIAl1bnJlZ2lzdGVyX3BtX25vdGlm aWVyKCZ0cC0+cG1fbm90aWZpZXIpOwogI2VuZGlmCi0JbmFwaV9kaXNhYmxlKCZ0cC0+bmFwaSk7 CisJaWYgKCF0ZXN0X2JpdChSVEw4MTUyX1VOUExVRywgJnRwLT5mbGFncykpCisJCW5hcGlfZGlz YWJsZSgmdHAtPm5hcGkpOwogCWNsZWFyX2JpdChXT1JLX0VOQUJMRSwgJnRwLT5mbGFncyk7CiAJ dXNiX2tpbGxfdXJiKHRwLT5pbnRyX3VyYik7CiAJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZ0 cC0+c2NoZWR1bGUpOwotLSAKMi4xNy4xCgoKRnJvbSA0NjFkYzJhZmExYzQ0NjhkYTI1M2RlZDQ3 NTViYjc3NGViOTY3NTQxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpYW4gV2ll ZG1hbm4gPGp3aUBsaW51eC5pYm0uY29tPgpEYXRlOiBGcmksIDI5IEp1biAyMDE4IDE5OjQ1OjUz ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMi81M10gczM5MC9xZXRoOiBkb24ndCBjbG9iYmVyIGJ1 ZmZlciBvbiBhc3luYyBUWCBjb21wbGV0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCBjZTI4ODY3ZmQy MGMyM2NkNzY5ZTc4YjRkNjE5YzQ3NTViZjcxYTFjIF0KCklmIHFldGhfcWRpb19vdXRwdXRfaGFu ZGxlcigpIGRldGVjdHMgdGhhdCBhIHRyYW5zbWl0IHJlcXVpcmVzIGFzeW5jCmNvbXBsZXRpb24s IGl0IHJlcGxhY2VzIHRoZSBwZW5kaW5nIGJ1ZmZlcidzIG1ldGFkYXRhIG9iamVjdAoocWV0aF9x ZGlvX291dF9idWZmZXIpIHNvIHRoYXQgdGhpcyBxdWV1ZSBidWZmZXIgY2FuIGJlIHJlLXVzZWQg d2hpbGUKdGhlIGRhdGEgaXMgcGVuZGluZyBjb21wbGV0aW9uLgoKTGF0ZXIgd2hlbiB0aGUgQ1Eg aW5kaWNhdGVzIGFzeW5jIGNvbXBsZXRpb24gb2Ygc3VjaCBhIG1ldGFkYXRhIG9iamVjdCwKcWV0 aF9xZGlvX2NxX2hhbmRsZXIoKSB0cmllcyB0byBmcmVlIGFueSBkYXRhIGFzc29jaWF0ZWQgd2l0 aCB0aGlzCm9iamVjdCAoc2luY2UgSFcgaGFzIG5vdyBjb21wbGV0ZWQgdGhlIHRyYW5zZmVyKS4g QnkgY2FsbGluZwpxZXRoX2NsZWFyX291dHB1dF9idWZmZXIoKSwgaXQgZXJyb25vdXNseSBvcGVy YXRlcyBvbiB0aGUgcXVldWUgYnVmZmVyCnRoYXQgX3ByZXZpb3VzbHlfIGJlbG9uZ2VkIHRvIHRo aXMgdHJhbnNmZXIgLi4uIGJ1dCB3aGljaCBoYXMgYmVlbgpwb3RlbnRpYWxseSByZS11c2VkIHNl dmVyYWwgdGltZXMgYnkgbm93LgpUaGlzIHJlc3VsdHMgaW4gZG91YmxlLWZyZWUncyBvZiB0aGUg YnVmZmVyJ3MgZGF0YSwgYW5kIGZhaWxpbmcKdHJhbnNtaXRzIGFzIHRoZSBidWZmZXIgZGVzY3Jp cHRvciBpcyBzY3J1YmJlZCBpbiBtaWQtYWlyLgoKVGhlIGNvcnJlY3Qgd2F5IG9mIGhhbmRsaW5n IHRoaXMgc2l0dWF0aW9uIGlzIHRvCjEuIHNjcnViIHRoZSBxdWV1ZSBidWZmZXIgd2hlbiBpdCBp cyBwcmVwYXJlZCBmb3IgcmUtdXNlLCBhbmQKMi4gbGF0ZXIgb2J0YWluIHRoZSBkYXRhIGFkZHJl c3NlcyBmcm9tIHRoZSBhc3luYy1jb21wbGV0aW9uIG5vdGlmaWVyCiAgIChpZS4gdGhlIEFPQiks IGluc3RlYWQgb2YgdGhlIHF1ZXVlIGJ1ZmZlci4KCkFsbCB0aGlzIG9ubHkgYWZmZWN0cyBxZXRo IGRldmljZXMgdXNlZCBmb3IgYWZfaXVjdiBIaXBlclRyYW5zcG9ydC4KCkZpeGVzOiAwZGE5NTgx ZGRiMGYgKCJxZXRoOiBleHBsb2l0IGFzeW5jaHJvbm91cyBkZWxpdmVyeSBvZiBzdG9yYWdlIGJs b2NrcyIpClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBXaWVkbWFubiA8andpQGxpbnV4LmlibS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZS5oICAgICAgfCAxMSArKysrKysrKysrKwogZHJp dmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jIHwgMjIgKysrKysrKysrKysrKysrKy0tLS0t LQogMiBmaWxlcyBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlLmggYi9kcml2ZXJzL3MzOTAvbmV0 L3FldGhfY29yZS5oCmluZGV4IDc4Yjk4YjNlN2VmYS4uYjdmNzUzMzk2ODNlIDEwMDY0NAotLS0g YS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZS5oCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0 aF9jb3JlLmgKQEAgLTgzMSw2ICs4MzEsMTcgQEAgc3RydWN0IHFldGhfdHJhcF9pZCB7CiAvKnNv bWUgaGVscGVyIGZ1bmN0aW9ucyovCiAjZGVmaW5lIFFFVEhfQ0FSRF9JRk5BTUUoY2FyZCkgKCgo Y2FyZCktPmRldik/IChjYXJkKS0+ZGV2LT5uYW1lIDogIiIpCiAKK3N0YXRpYyBpbmxpbmUgdm9p ZCBxZXRoX3NjcnViX3FkaW9fYnVmZmVyKHN0cnVjdCBxZGlvX2J1ZmZlciAqYnVmLAorCQkJCQkg IHVuc2lnbmVkIGludCBlbGVtZW50cykKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKworCWZvciAoaSA9 IDA7IGkgPCBlbGVtZW50czsgaSsrKQorCQltZW1zZXQoJmJ1Zi0+ZWxlbWVudFtpXSwgMCwgc2l6 ZW9mKHN0cnVjdCBxZGlvX2J1ZmZlcl9lbGVtZW50KSk7CisJYnVmLT5lbGVtZW50WzE0XS5zZmxh Z3MgPSAwOworCWJ1Zi0+ZWxlbWVudFsxNV0uc2ZsYWdzID0gMDsKK30KKwogLyoqCiAgKiBxZXRo X2dldF9lbGVtZW50c19mb3JfcmFuZ2UoKSAtCWZpbmQgbnVtYmVyIG9mIFNCQUxFcyB0byBjb3Zl ciByYW5nZS4KICAqIEBzdGFydDoJCQkJU3RhcnQgb2YgdGhlIGFkZHJlc3MgcmFuZ2UuCmRpZmYg LS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMgYi9kcml2ZXJzL3MzOTAv bmV0L3FldGhfY29yZV9tYWluLmMKaW5kZXggZGZmZDgyMDczMWYyLi45NTU0MDlhN2ExYzEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYworKysgYi9kcml2ZXJz L3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMKQEAgLTczLDkgKzczLDYgQEAgc3RhdGljIHZvaWQg cWV0aF9ub3RpZnlfc2ticyhzdHJ1Y3QgcWV0aF9xZGlvX291dF9xICpxdWV1ZSwKIAkJc3RydWN0 IHFldGhfcWRpb19vdXRfYnVmZmVyICpidWYsCiAJCWVudW0gaXVjdl90eF9ub3RpZnkgbm90aWZp Y2F0aW9uKTsKIHN0YXRpYyB2b2lkIHFldGhfcmVsZWFzZV9za2JzKHN0cnVjdCBxZXRoX3FkaW9f b3V0X2J1ZmZlciAqYnVmKTsKLXN0YXRpYyB2b2lkIHFldGhfY2xlYXJfb3V0cHV0X2J1ZmZlcihz dHJ1Y3QgcWV0aF9xZGlvX291dF9xICpxdWV1ZSwKLQkJc3RydWN0IHFldGhfcWRpb19vdXRfYnVm ZmVyICpidWYsCi0JCWVudW0gcWV0aF9xZGlvX2J1ZmZlcl9zdGF0ZXMgbmV3YnVmc3RhdGUpOwog c3RhdGljIGludCBxZXRoX2luaXRfcWRpb19vdXRfYnVmKHN0cnVjdCBxZXRoX3FkaW9fb3V0X3Eg KiwgaW50KTsKIAogc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnFldGhfd3E7CkBAIC00ODgsNiAr NDg1LDcgQEAgc3RhdGljIHZvaWQgcWV0aF9xZGlvX2hhbmRsZV9hb2Ioc3RydWN0IHFldGhfY2Fy ZCAqY2FyZCwKIAlzdHJ1Y3QgcWFvYiAqYW9iOwogCXN0cnVjdCBxZXRoX3FkaW9fb3V0X2J1ZmZl ciAqYnVmZmVyOwogCWVudW0gaXVjdl90eF9ub3RpZnkgbm90aWZpY2F0aW9uOworCXVuc2lnbmVk IGludCBpOwogCiAJYW9iID0gKHN0cnVjdCBxYW9iICopIHBoeXNfdG9fdmlydChwaHlzX2FvYl9h ZGRyKTsKIAlRRVRIX0NBUkRfVEVYVChjYXJkLCA1LCAiaGFvYiIpOwpAQCAtNTEyLDEwICs1MTAs MTggQEAgc3RhdGljIHZvaWQgcWV0aF9xZGlvX2hhbmRsZV9hb2Ioc3RydWN0IHFldGhfY2FyZCAq Y2FyZCwKIAlxZXRoX25vdGlmeV9za2JzKGJ1ZmZlci0+cSwgYnVmZmVyLCBub3RpZmljYXRpb24p OwogCiAJYnVmZmVyLT5hb2IgPSBOVUxMOwotCXFldGhfY2xlYXJfb3V0cHV0X2J1ZmZlcihidWZm ZXItPnEsIGJ1ZmZlciwKLQkJCQkgUUVUSF9RRElPX0JVRl9IQU5ETEVEX0RFTEFZRUQpOworCS8q IEZyZWUgZGFuZ2xpbmcgYWxsb2NhdGlvbnMuIFRoZSBhdHRhY2hlZCBza2JzIGFyZSBoYW5kbGVk IGJ5CisJICogcWV0aF9jbGVhbnVwX2hhbmRsZWRfcGVuZGluZygpLgorCSAqLworCWZvciAoaSA9 IDA7CisJICAgICBpIDwgYW9iLT5zYl9jb3VudCAmJiBpIDwgUUVUSF9NQVhfQlVGRkVSX0VMRU1F TlRTKGNhcmQpOworCSAgICAgaSsrKSB7CisJCWlmIChhb2ItPnNiYVtpXSAmJiBidWZmZXItPmlz X2hlYWRlcltpXSkKKwkJCWttZW1fY2FjaGVfZnJlZShxZXRoX2NvcmVfaGVhZGVyX2NhY2hlLAor CQkJCQkodm9pZCAqKSBhb2ItPnNiYVtpXSk7CisJfQorCWF0b21pY19zZXQoJmJ1ZmZlci0+c3Rh dGUsIFFFVEhfUURJT19CVUZfSEFORExFRF9ERUxBWUVEKTsKIAotCS8qIGZyb20gaGVyZSBvbjog ZG8gbm90IHRvdWNoIGJ1ZmZlciBhbnltb3JlICovCiAJcWRpb19yZWxlYXNlX2FvYihhb2IpOwog fQogCkBAIC0zNzU5LDYgKzM3NjUsMTAgQEAgdm9pZCBxZXRoX3FkaW9fb3V0cHV0X2hhbmRsZXIo c3RydWN0IGNjd19kZXZpY2UgKmNjd2RldiwKIAkJCVFFVEhfQ0FSRF9URVhUKHF1ZXVlLT5jYXJk LCA1LCAiYW9iIik7CiAJCQlRRVRIX0NBUkRfVEVYVF8ocXVldWUtPmNhcmQsIDUsICIlbHgiLAog CQkJCQl2aXJ0X3RvX3BoeXMoYnVmZmVyLT5hb2IpKTsKKworCQkJLyogcHJlcGFyZSB0aGUgcXVl dWUgc2xvdCBmb3IgcmUtdXNlOiAqLworCQkJcWV0aF9zY3J1Yl9xZGlvX2J1ZmZlcihidWZmZXIt PmJ1ZmZlciwKKwkJCQkJICAgICAgIFFFVEhfTUFYX0JVRkZFUl9FTEVNRU5UUyhjYXJkKSk7CiAJ CQlpZiAocWV0aF9pbml0X3FkaW9fb3V0X2J1ZihxdWV1ZSwgYmlkeCkpIHsKIAkJCQlRRVRIX0NB UkRfVEVYVChjYXJkLCAyLCAib3V0b2ZidWYiKTsKIAkJCQlxZXRoX3NjaGVkdWxlX3JlY292ZXJ5 KGNhcmQpOwotLSAKMi4xNy4xCgoKRnJvbSA3YmFkYTUyNzU5ZmJhOGUxNTQ3YTZiNzdhOTBhYjky MGU5MWE3OTBmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCaGFkcmFtIFZhcmthIDx2 YmhhZHJhbUBudmlkaWEuY29tPgpEYXRlOiBTdW4sIDE3IEp1biAyMDE4IDIwOjAyOjA1ICswNTMw ClN1YmplY3Q6IFtQQVRDSCAzMy81M10gc3RtbWFjOiBmaXggRE1BIGNoYW5uZWwgaGFuZyBpbiBo YWxmLWR1cGxleCBtb2RlCgpbIFVwc3RyZWFtIGNvbW1pdCBiNmNmZmZhN2FkOTIzYzczZjMxN2Vh NTBmZDRlYmNiM2I0YjY2NjljIF0KCkhXIGRvZXMgbm90IHN1cHBvcnQgSGFsZi1kdXBsZXggbW9k ZSBpbiBtdWx0aS1xdWV1ZQpzY2VuYXJpby4gRml4IGl0IGJ5IG5vdCBhZHZlcnRpc2luZyB0aGUg SGFsZi1EdXBsZXgKbW9kZSBpZiBtdWx0aS1xdWV1ZSBlbmFibGVkLgoKU2lnbmVkLW9mZi1ieTog QmhhZHJhbSBWYXJrYSA8dmJoYWRyYW1AbnZpZGlhLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgfCAxMCArKysrKysrKysrCiAxIGZpbGUgY2hh bmdlZCwgMTAgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1p Y3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCmluZGV4IGI2NWUyZDE0NDY5OC4uMWUxY2M1MjU2ZWNh IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNf bWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19t YWluLmMKQEAgLTkyNyw2ICs5MjcsNyBAQCBzdGF0aWMgdm9pZCBzdG1tYWNfY2hlY2tfcGNzX21v ZGUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KQogc3RhdGljIGludCBzdG1tYWNfaW5pdF9waHko c3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSBu ZXRkZXZfcHJpdihkZXYpOworCXUzMiB0eF9jbnQgPSBwcml2LT5wbGF0LT50eF9xdWV1ZXNfdG9f dXNlOwogCXN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXY7CiAJY2hhciBwaHlfaWRfZm10W01JSV9C VVNfSURfU0laRSArIDNdOwogCWNoYXIgYnVzX2lkW01JSV9CVVNfSURfU0laRV07CkBAIC05Njcs NiArOTY4LDE1IEBAIHN0YXRpYyBpbnQgc3RtbWFjX2luaXRfcGh5KHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYpCiAJCXBoeWRldi0+YWR2ZXJ0aXNpbmcgJj0gfihTVVBQT1JURURfMTAwMGJhc2VUX0hh bGYgfAogCQkJCQkgU1VQUE9SVEVEXzEwMDBiYXNlVF9GdWxsKTsKIAorCS8qCisJICogSGFsZi1k dXBsZXggbW9kZSBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlxdWV1ZQorCSAqIGhhbGYtZHVwbGV4 IGNhbiBvbmx5IHdvcmtzIHdpdGggc2luZ2xlIHF1ZXVlCisJICovCisJaWYgKHR4X2NudCA+IDEp CisJCXBoeWRldi0+c3VwcG9ydGVkICY9IH4oU1VQUE9SVEVEXzEwMDBiYXNlVF9IYWxmIHwKKwkJ CQkgICAgICAgU1VQUE9SVEVEXzEwMGJhc2VUX0hhbGYgfAorCQkJCSAgICAgICBTVVBQT1JURURf MTBiYXNlVF9IYWxmKTsKKwogCS8qCiAJICogQnJva2VuIEhXIGlzIHNvbWV0aW1lcyBtaXNzaW5n IHRoZSBwdWxsLXVwIHJlc2lzdG9yIG9uIHRoZQogCSAqIE1ESU8gbGluZSwgd2hpY2ggcmVzdWx0 cyBpbiByZWFkcyB0byBub24tZXhpc3RlbnQgZGV2aWNlcyByZXR1cm5pbmcKLS0gCjIuMTcuMQoK CkZyb20gYzI5ODg3ZDEzYjFmZTFjZTQ0MzQ0ZDMxMTBmNzIzYjQyZjU4YWZmYSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRG9yb24gUm9iZXJ0cy1LZWRlcyA8ZG9yb25ya0BmYi5jb20+ CkRhdGU6IFR1ZSwgMjYgSnVuIDIwMTggMTg6MzM6MzMgLTA3MDAKU3ViamVjdDogW1BBVENIIDM0 LzUzXSBzdHJwYXJzZXI6IFJlbW92ZSBlYXJseSBlYXRlbiB0byBmaXggZnVsbCB0Y3AgcmVjZWl2 ZQogYnVmZmVyIHN0YWxsCgpbIFVwc3RyZWFtIGNvbW1pdCA5NzdjNzExNGViZGEyZTc0NmExMTQ4 NDBkM2E4NzVlMGNkYjgyNmZiIF0KCk9uIHJlY2V2aW5nIGFuIGluY29tcGxldGUgbWVzc2FnZSwg dGhlIGV4aXN0aW5nIGNvZGUgc3RvcmVzIHRoZQpyZW1haW5pbmcgbGVuZ3RoIG9mIHRoZSBjbG9u ZWQgc2tiIGluIHRoZSBlYXJseV9lYXRlbiBmaWVsZCBpbnN0ZWFkIG9mCmluY3JlbWVudGluZyB0 aGUgdmFsdWUgcmV0dXJuZWQgYnkgX19zdHJwX3JlY3YuIFRoaXMgZGVmZXJzIGludm9jYXRpb24K b2Ygc29ja19yZnJlZSBmb3IgdGhlIGN1cnJlbnQgc2tiIHVudGlsIHRoZSBuZXh0IGludm9jYXRp b24gb2YKX19zdHJwX3JlY3YsIHdoaWNoIHJldHVybnMgZWFybHlfZWF0ZW4gaWYgZWFybHlfZWF0 ZW4gaXMgbm9uLXplcm8uCgpUaGlzIGJlaGF2aW9yIGNhdXNlcyBhIHN0YWxsIHdoZW4gdGhlIGN1 cnJlbnQgbWVzc2FnZSBvY2N1cGllcyB0aGUgdmVyeQp0YWlsIGVuZCBvZiBhIG1hc3NpdmUgc2ti LCBhbmQgc3RycF9wZWVrL25lZWRfYnl0ZXMgaW5kaWNhdGVzIHRoYXQgdGhlCnJlbWFpbmRlciBv ZiB0aGUgY3VycmVudCBtZXNzYWdlIGhhcyB5ZXQgdG8gYXJyaXZlIG9uIHRoZSBzb2NrZXQuIFRo ZQpUQ1AgcmVjZWl2ZSBidWZmZXIgaXMgdG90YWxseSBmdWxsLCBjYXVzaW5nIHRoZSBUQ1Agd2lu ZG93IHRvIGdvIHRvCnplcm8sIHNvIHRoZSByZW1haW5kZXIgb2YgdGhlIG1lc3NhZ2Ugd2lsbCBu ZXZlciBhcnJpdmUuCgpJbmNyZW1lbnRpbmcgdGhlIHZhbHVlIHJldHVybmVkIGJ5IF9fc3RycF9y ZWN2IGJ5IHRoZSBhbW91bnQgb3RoZXJ3aXNlCnN0b3JlZCBpbiBlYXJseV9lYXRlbiBwcmV2ZW50 cyBzdGFsbHMgb2YgdGhpcyBuYXR1cmUuCgpTaWduZWQtb2ZmLWJ5OiBEb3JvbiBSb2JlcnRzLUtl ZGVzIDxkb3JvbnJrQGZiLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zdHJwYXJzZXIvc3RycGFyc2VyLmMgfCAxNyArLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxNiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc3RycGFyc2VyL3N0cnBhcnNlci5jIGIvbmV0L3N0cnBh cnNlci9zdHJwYXJzZXIuYwppbmRleCAwOTJiZWJjNzAwNDguLjdhZmQ2Njk0OWE5MSAxMDA2NDQK LS0tIGEvbmV0L3N0cnBhcnNlci9zdHJwYXJzZXIuYworKysgYi9uZXQvc3RycGFyc2VyL3N0cnBh cnNlci5jCkBAIC0zNSw3ICszNSw2IEBAIHN0cnVjdCBfc3RycF9tc2cgewogCSAqLwogCXN0cnVj dCBzdHJwX21zZyBzdHJwOwogCWludCBhY2N1bV9sZW47Ci0JaW50IGVhcmx5X2VhdGVuOwogfTsK IAogc3RhdGljIGlubGluZSBzdHJ1Y3QgX3N0cnBfbXNnICpfc3RycF9tc2coc3RydWN0IHNrX2J1 ZmYgKnNrYikKQEAgLTExNSwyMCArMTE0LDYgQEAgc3RhdGljIGludCBfX3N0cnBfcmVjdihyZWFk X2Rlc2NyaXB0b3JfdCAqZGVzYywgc3RydWN0IHNrX2J1ZmYgKm9yaWdfc2tiLAogCWhlYWQgPSBz dHJwLT5za2JfaGVhZDsKIAlpZiAoaGVhZCkgewogCQkvKiBNZXNzYWdlIGFscmVhZHkgaW4gcHJv Z3Jlc3MgKi8KLQotCQlzdG0gPSBfc3RycF9tc2coaGVhZCk7Ci0JCWlmICh1bmxpa2VseShzdG0t PmVhcmx5X2VhdGVuKSkgewotCQkJLyogQWxyZWFkeSBzb21lIG51bWJlciBvZiBieXRlcyBvbiB0 aGUgcmVjZWl2ZSBzb2NrCi0JCQkgKiBkYXRhIHNhdmVkIGluIHNrYl9oZWFkLCBqdXN0IGluZGlj YXRlIHRoZXkKLQkJCSAqIGFyZSBjb25zdW1lZC4KLQkJCSAqLwotCQkJZWF0ZW4gPSBvcmlnX2xl biA8PSBzdG0tPmVhcmx5X2VhdGVuID8KLQkJCQlvcmlnX2xlbiA6IHN0bS0+ZWFybHlfZWF0ZW47 Ci0JCQlzdG0tPmVhcmx5X2VhdGVuIC09IGVhdGVuOwotCi0JCQlyZXR1cm4gZWF0ZW47Ci0JCX0K LQogCQlpZiAodW5saWtlbHkob3JpZ19vZmZzZXQpKSB7CiAJCQkvKiBHZXR0aW5nIGRhdGEgd2l0 aCBhIG5vbi16ZXJvIG9mZnNldCB3aGVuIGEgbWVzc2FnZSBpcwogCQkJICogaW4gcHJvZ3Jlc3Mg aXMgbm90IGV4cGVjdGVkLiBJZiBpdCBkb2VzIGhhcHBlbiwgd2UKQEAgLTI5Nyw5ICsyODIsOSBA QCBzdGF0aWMgaW50IF9fc3RycF9yZWN2KHJlYWRfZGVzY3JpcHRvcl90ICpkZXNjLCBzdHJ1Y3Qg c2tfYnVmZiAqb3JpZ19za2IsCiAJCQkJfQogCiAJCQkJc3RtLT5hY2N1bV9sZW4gKz0gY2FuZF9s ZW47CisJCQkJZWF0ZW4gKz0gY2FuZF9sZW47CiAJCQkJc3RycC0+bmVlZF9ieXRlcyA9IHN0bS0+ c3RycC5mdWxsX2xlbiAtCiAJCQkJCQkgICAgICAgc3RtLT5hY2N1bV9sZW47Ci0JCQkJc3RtLT5l YXJseV9lYXRlbiA9IGNhbmRfbGVuOwogCQkJCVNUUlBfU1RBVFNfQUREKHN0cnAtPnN0YXRzLmJ5 dGVzLCBjYW5kX2xlbik7CiAJCQkJZGVzYy0+Y291bnQgPSAwOyAvKiBTdG9wIHJlYWRpbmcgc29j a2V0ICovCiAJCQkJYnJlYWs7Ci0tIAoyLjE3LjEKCgpGcm9tIDRjMjNmYmE4NWNlOTM5NjMwNGQw MTc5NmY0NjgwMzcwZmU4NGFkYmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFl1Y2h1 bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpEYXRlOiBXZWQsIDI3IEp1biAyMDE4IDE2OjA0 OjQ4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzNS81M10gdGNwOiBmaXggRmFzdCBPcGVuIGtleSBl bmRpYW5uZXNzCgpbIFVwc3RyZWFtIGNvbW1pdCBjODYwZTk5N2U5MTcwYTZkNjhmOWQxZTZlMmNm NjFmNTcyMTkxYWFmIF0KCkZhc3QgT3BlbiBrZXkgY291bGQgYmUgc3RvcmVkIGluIGRpZmZlcmVu dCBlbmRpYW4gYmFzZWQgb24gdGhlIENQVS4KUHJldmlvdXNseSBob3N0cyBpbiBkaWZmZXJlbnQg ZW5kaWFubmVzcyBpbiBhIHNlcnZlciBmYXJtIHVzaW5nCnRoZSBzYW1lIGtleSBjb25maWcgKHN5 c2N0bCB2YWx1ZSkgd291bGQgcHJvZHVjZSBkaWZmZXJlbnQgY29va2llcy4KVGhpcyBwYXRjaCBm aXhlcyBpdCBieSBhbHdheXMgc3RvcmluZyBpdCBhcyBsaXR0bGUgZW5kaWFuIHRvIGtlZXAKc2Ft ZSBBUEkgZm9yIExFIGhvc3RzLgoKUmVwb3J0ZWQtYnk6IERhbmllbGUgSWFtYXJ0aW5vIDxkYW5p ZWxlaUBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29v Z2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9pcHY0L3N5c2N0bF9uZXRfaXB2NC5jIHwgMTggKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9u ZXQvaXB2NC9zeXNjdGxfbmV0X2lwdjQuYyBiL25ldC9pcHY0L3N5c2N0bF9uZXRfaXB2NC5jCmlu ZGV4IDRiMTk1YmFjOGFjMC4uMmY2MDBmMjYxNjkwIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9zeXNj dGxfbmV0X2lwdjQuYworKysgYi9uZXQvaXB2NC9zeXNjdGxfbmV0X2lwdjQuYwpAQCAtMjYzLDgg KzI2Myw5IEBAIHN0YXRpYyBpbnQgcHJvY190Y3BfZmFzdG9wZW5fa2V5KHN0cnVjdCBjdGxfdGFi bGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJICAgIGlwdjQuc3lzY3RsX3RjcF9mYXN0b3Blbik7CiAJ c3RydWN0IGN0bF90YWJsZSB0YmwgPSB7IC5tYXhsZW4gPSAoVENQX0ZBU1RPUEVOX0tFWV9MRU5H VEggKiAyICsgMTApIH07CiAJc3RydWN0IHRjcF9mYXN0b3Blbl9jb250ZXh0ICpjdHh0OwotCWlu dCByZXQ7CiAJdTMyICB1c2VyX2tleVs0XTsgLyogMTYgYnl0ZXMsIG1hdGNoaW5nIFRDUF9GQVNU T1BFTl9LRVlfTEVOR1RIICovCisJX19sZTMyIGtleVs0XTsKKwlpbnQgcmV0LCBpOwogCiAJdGJs LmRhdGEgPSBrbWFsbG9jKHRibC5tYXhsZW4sIEdGUF9LRVJORUwpOwogCWlmICghdGJsLmRhdGEp CkBAIC0yNzMsMTEgKzI3NCwxNCBAQCBzdGF0aWMgaW50IHByb2NfdGNwX2Zhc3RvcGVuX2tleShz dHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCXJjdV9yZWFkX2xvY2soKTsKIAlj dHh0ID0gcmN1X2RlcmVmZXJlbmNlKG5ldC0+aXB2NC50Y3BfZmFzdG9wZW5fY3R4KTsKIAlpZiAo Y3R4dCkKLQkJbWVtY3B5KHVzZXJfa2V5LCBjdHh0LT5rZXksIFRDUF9GQVNUT1BFTl9LRVlfTEVO R1RIKTsKKwkJbWVtY3B5KGtleSwgY3R4dC0+a2V5LCBUQ1BfRkFTVE9QRU5fS0VZX0xFTkdUSCk7 CiAJZWxzZQotCQltZW1zZXQodXNlcl9rZXksIDAsIHNpemVvZih1c2VyX2tleSkpOworCQltZW1z ZXQoa2V5LCAwLCBzaXplb2Yoa2V5KSk7CiAJcmN1X3JlYWRfdW5sb2NrKCk7CiAKKwlmb3IgKGkg PSAwOyBpIDwgQVJSQVlfU0laRShrZXkpOyBpKyspCisJCXVzZXJfa2V5W2ldID0gbGUzMl90b19j cHUoa2V5W2ldKTsKKwogCXNucHJpbnRmKHRibC5kYXRhLCB0YmwubWF4bGVuLCAiJTA4eC0lMDh4 LSUwOHgtJTA4eCIsCiAJCXVzZXJfa2V5WzBdLCB1c2VyX2tleVsxXSwgdXNlcl9rZXlbMl0sIHVz ZXJfa2V5WzNdKTsKIAlyZXQgPSBwcm9jX2Rvc3RyaW5nKCZ0YmwsIHdyaXRlLCBidWZmZXIsIGxl bnAsIHBwb3MpOwpAQCAtMjg4LDEzICsyOTIsMTcgQEAgc3RhdGljIGludCBwcm9jX3RjcF9mYXN0 b3Blbl9rZXkoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCXJldCA9IC1F SU5WQUw7CiAJCQlnb3RvIGJhZF9rZXk7CiAJCX0KLQkJdGNwX2Zhc3RvcGVuX3Jlc2V0X2NpcGhl cihuZXQsIE5VTEwsIHVzZXJfa2V5LAorCisJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHVz ZXJfa2V5KTsgaSsrKQorCQkJa2V5W2ldID0gY3B1X3RvX2xlMzIodXNlcl9rZXlbaV0pOworCisJ CXRjcF9mYXN0b3Blbl9yZXNldF9jaXBoZXIobmV0LCBOVUxMLCBrZXksCiAJCQkJCSAgVENQX0ZB U1RPUEVOX0tFWV9MRU5HVEgpOwogCX0KIAogYmFkX2tleToKIAlwcl9kZWJ1ZygicHJvYyBGTyBr ZXkgc2V0IDB4JXgtJXgtJXgtJXggPC0gMHglczogJXVcbiIsCi0JICAgICAgIHVzZXJfa2V5WzBd LCB1c2VyX2tleVsxXSwgdXNlcl9rZXlbMl0sIHVzZXJfa2V5WzNdLAorCQl1c2VyX2tleVswXSwg dXNlcl9rZXlbMV0sIHVzZXJfa2V5WzJdLCB1c2VyX2tleVszXSwKIAkgICAgICAgKGNoYXIgKil0 YmwuZGF0YSwgcmV0KTsKIAlrZnJlZSh0YmwuZGF0YSk7CiAJcmV0dXJuIHJldDsKLS0gCjIuMTcu MQoKCkZyb20gNWQ5MzRmMjQxOGFhMzJmNzI0MWJjMTVhNTM5NGVlNTExMmNmM2RmOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0lscG89MjBKPUMzPUE0cnZpbmVuPz0g PGlscG8uamFydmluZW5AaGVsc2lua2kuZmk+CkRhdGU6IEZyaSwgMjkgSnVuIDIwMTggMTM6MDc6 NTMgKzAzMDAKU3ViamVjdDogW1BBVENIIDM2LzUzXSB0Y3A6IHByZXZlbnQgYm9ndXMgRlJUTyB1 bmRvcyB3aXRoIG5vbi1TQUNLIGZsb3dzCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTog dGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0 CgpbIFVwc3RyZWFtIGNvbW1pdCAxMjM2ZjIyZmJhZTE1ZGYzNzM2YWI0YTk4NGM2NGMwYzZlZTYy NTRjIF0KCklmIFNBQ0sgaXMgbm90IGVuYWJsZWQgYW5kIHRoZSBmaXJzdCBjdW11bGF0aXZlIEFD SyBhZnRlciB0aGUgUlRPCnJldHJhbnNtaXNzaW9uIGNvdmVycyBtb3JlIHRoYW4gdGhlIHJldHJh bnNtaXR0ZWQgc2tiLCBhIHNwdXJpb3VzCkZSVE8gdW5kbyB3aWxsIHRyaWdnZXIgKGFzc3VtaW5n IEZSVE8gaXMgZW5hYmxlZCBmb3IgdGhhdCBSVE8pLgpUaGUgcmVhc29uIGlzIHRoYXQgYW55IG5v bi1yZXRyYW5zbWl0dGVkIHNlZ21lbnQgYWNrbm93bGVkZ2VkIHdpbGwKc2V0IEZMQUdfT1JJR19T QUNLX0FDS0VEIGluIHRjcF9jbGVhbl9ydHhfcXVldWUgZXZlbiBpZiB0aGVyZSBpcwpubyBpbmRp Y2F0aW9uIHRoYXQgaXQgd291bGQgaGF2ZSBiZWVuIGRlbGl2ZXJlZCBmb3IgcmVhbCAodGhlCnNj b3JlYm9hcmQgaXMgbm90IGtlcHQgd2l0aCBUQ1BDQl9TQUNLRURfQUNLRUQgYml0cyBpbiB0aGUg bm9uLVNBQ0sKY2FzZSBzbyB0aGUgY2hlY2sgZm9yIHRoYXQgYml0IHdvbid0IGhlbHAgbGlrZSBp dCBkb2VzIHdpdGggU0FDSykuCkhhdmluZyBGTEFHX09SSUdfU0FDS19BQ0tFRCBzZXQgcmVzdWx0 cyBpbiB0aGUgc3B1cmlvdXMgRlJUTyB1bmRvCmluIHRjcF9wcm9jZXNzX2xvc3MuCgpXZSBuZWVk IHRvIHVzZSBtb3JlIHN0cmljdCBjb25kaXRpb24gZm9yIG5vbi1TQUNLIGNhc2UgYW5kIGNoZWNr CnRoYXQgbm9uZSBvZiB0aGUgY3VtdWxhdGl2ZWx5IEFDS2VkIHNlZ21lbnRzIHdlcmUgcmV0cmFu c21pdHRlZAp0byBwcm92ZSB0aGF0IHByb2dyZXNzIGlzIGR1ZSB0byBvcmlnaW5hbCB0cmFuc21p c3Npb25zLiBPbmx5IHRoZW4Ka2VlcCBGTEFHX09SSUdfU0FDS19BQ0tFRCBzZXQsIGFsbG93aW5n IEZSVE8gdW5kbyB0byBwcm9jZWVkIGluCm5vbi1TQUNLIGNhc2UuCgooRkxBR19PUklHX1NBQ0tf QUNLRUQgaXMgcGxhbm5lZCB0byBiZSByZW5hbWVkIHRvIEZMQUdfT1JJR19QUk9HUkVTUwp0byBi ZXR0ZXIgaW5kaWNhdGUgaXRzIHB1cnBvc2UgYnV0IHRvIGtlZXAgdGhpcyBjaGFuZ2UgbWluaW1h bCwgaXQKd2lsbCBiZSBkb25lIGluIGFub3RoZXIgcGF0Y2gpLgoKQmVzaWRlcyBidXJzdGluZXNz IGFuZCBjb25nZXN0aW9uIGNvbnRyb2wgdmlvbGF0aW9ucywgdGhpcyBwcm9ibGVtCmNhbiByZXN1 bHQgaW4gUlRPIGxvb3A6IFdoZW4gdGhlIGxvc3MgcmVjb3ZlcnkgaXMgcHJlbWF0dXJlbHkKdW5k b2VkLCBvbmx5IG5ldyBkYXRhIHdpbGwgYmUgdHJhbnNtaXR0ZWQgKGlmIGF2YWlsYWJsZSkgYW5k CnRoZSBuZXh0IHJldHJhbnNtaXNzaW9uIGNhbiBvY2N1ciBvbmx5IGFmdGVyIGEgbmV3IFJUTyB3 aGljaCBpbiBjYXNlCm9mIG11bHRpcGxlIGxvc3NlcyAodGhhdCBhcmUgbm90IGZvciBjb25zZWN1 dGl2ZSBwYWNrZXRzKSByZXF1aXJlcwpvbmUgUlRPIHBlciBsb3NzIHRvIHJlY292ZXIuCgpTaWdu ZWQtb2ZmLWJ5OiBJbHBvIErDpHJ2aW5lbiA8aWxwby5qYXJ2aW5lbkBoZWxzaW5raS5maT4KVGVz dGVkLWJ5OiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IE5l YWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX2lucHV0LmMg fCA5ICsrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL25ldC9pcHY0L3RjcF9pbnB1dC5jIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKaW5kZXggZTUx YzY0NDQ4NGRjLi4xZjI1ZWJhYjI1ZDIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9pbnB1dC5j CisrKyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCkBAIC0zMTQ5LDYgKzMxNDksMTUgQEAgc3RhdGlj IGludCB0Y3BfY2xlYW5fcnR4X3F1ZXVlKHN0cnVjdCBzb2NrICpzaywgdTMyIHByaW9yX2ZhY2ss CiAKIAkJaWYgKHRjcF9pc19yZW5vKHRwKSkgewogCQkJdGNwX3JlbW92ZV9yZW5vX3NhY2tzKHNr LCBwa3RzX2Fja2VkKTsKKworCQkJLyogSWYgYW55IG9mIHRoZSBjdW11bGF0aXZlbHkgQUNLZWQg c2VnbWVudHMgd2FzCisJCQkgKiByZXRyYW5zbWl0dGVkLCBub24tU0FDSyBjYXNlIGNhbm5vdCBj b25maXJtIHRoYXQKKwkJCSAqIHByb2dyZXNzIHdhcyBkdWUgdG8gb3JpZ2luYWwgdHJhbnNtaXNz aW9uIGR1ZSB0bworCQkJICogbGFjayBvZiBUQ1BDQl9TQUNLRURfQUNLRUQgYml0cyBldmVuIGlm IHNvbWUgb2YKKwkJCSAqIHRoZSBwYWNrZXRzIG1heSBoYXZlIGJlZW4gbmV2ZXIgcmV0cmFuc21p dHRlZC4KKwkJCSAqLworCQkJaWYgKGZsYWcgJiBGTEFHX1JFVFJBTlNfREFUQV9BQ0tFRCkKKwkJ CQlmbGFnICY9IH5GTEFHX09SSUdfU0FDS19BQ0tFRDsKIAkJfSBlbHNlIHsKIAkJCWludCBkZWx0 YTsKIAotLSAKMi4xNy4xCgoKRnJvbSAxNDI1MDVkYjNiODYzMWY4YWE3MGZhOWZhODUzOGE2OGFh MjdhN2VmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYXNvbiBXYW5nIDxqYXNvd2Fu Z0ByZWRoYXQuY29tPgpEYXRlOiBUaHUsIDIxIEp1biAyMDE4IDEzOjExOjMxICswODAwClN1Ympl Y3Q6IFtQQVRDSCAzNy81M10gdmhvc3RfbmV0OiB2YWxpZGF0ZSBzb2NrIGJlZm9yZSB0cnlpbmcg dG8gcHV0IGl0cyBmZAoKWyBVcHN0cmVhbSBjb21taXQgYjhmMWY2NTg4MmYwNzkxMzE1N2M0NDY3 M2FmN2VjMGIzMDhkMDNlYiBdCgpTb2NrIHdpbGwgYmUgTlVMTCBpZiB3ZSBwYXNzIC0xIHRvIHZo b3N0X25ldF9zZXRfYmFja2VuZCgpLCBidXQgd2hlbgp3ZSBtZWV0IGVycm9ycyBkdXJpbmcgdWJ1 ZiBhbGxvY2F0aW9uLCB0aGUgY29kZSBkb2VzIG5vdCBjaGVjayBmb3IKTlVMTCBiZWZvcmUgY2Fs bGluZyBzb2NrZmRfcHV0KCksIHRoaXMgd2lsbCBsZWFkIE5VTEwKZGVyZWZlcmVuY2luZy4gRml4 aW5nIGJ5IGNoZWNraW5nIHNvY2sgcG9pbnRlciBiZWZvcmUuCgpGaXhlczogYmFiNjMyZDY5ZWU0 ICgidmhvc3Q6IHZob3N0IFRYIHplcm8tY29weSBzdXBwb3J0IikKUmVwb3J0ZWQtYnk6IERhbiBD YXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFzb24g V2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvdmhvc3QvbmV0LmMgfCAzICsrLQog MSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvdmhvc3QvbmV0LmMgYi9kcml2ZXJzL3Zob3N0L25ldC5jCmluZGV4IGVlYWY2 NzM5MjE1Zi4uZGQ0ZWI5ODZmNjkzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Zob3N0L25ldC5jCisr KyBiL2RyaXZlcnMvdmhvc3QvbmV0LmMKQEAgLTEyMTksNyArMTIxOSw4IEBAIHN0YXRpYyBsb25n IHZob3N0X25ldF9zZXRfYmFja2VuZChzdHJ1Y3Qgdmhvc3RfbmV0ICpuLCB1bnNpZ25lZCBpbmRl eCwgaW50IGZkKQogCWlmICh1YnVmcykKIAkJdmhvc3RfbmV0X3VidWZfcHV0X3dhaXRfYW5kX2Zy ZWUodWJ1ZnMpOwogZXJyX3VidWZzOgotCXNvY2tmZF9wdXQoc29jayk7CisJaWYgKHNvY2spCisJ CXNvY2tmZF9wdXQoc29jayk7CiBlcnJfdnE6CiAJbXV0ZXhfdW5sb2NrKCZ2cS0+bXV0ZXgpOwog ZXJyOgotLSAKMi4xNy4xCgoKRnJvbSA1ZmYzZWNmZTBkZWYyMjM4ZjRmOTM5ODZkYWUxNDJjNWNk MmY5NjEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDbGF1ZGlvIEltYnJlbmRhIDxp bWJyZW5kYUBsaW51eC52bmV0LmlibS5jb20+CkRhdGU6IFdlZCwgMjAgSnVuIDIwMTggMTU6NTE6 NTEgKzAyMDAKU3ViamVjdDogW1BBVENIIDM4LzUzXSBWU09DSzogZml4IGxvb3BiYWNrIG9uIGJp Zy1lbmRpYW4gc3lzdGVtcwoKWyBVcHN0cmVhbSBjb21taXQgZTVhYjU2NGM5ZWJlZTc3Nzk0ODQy Y2E3ZDc0NzYxNDdiODNkNmEyNyBdCgpUaGUgZHN0X2NpZCBhbmQgc3JjX2NpZCBhcmUgNjQgYml0 cywgdGhlcmVmb3JlIDY0IGJpdCBhY2Nlc3NvcnMgc2hvdWxkIGJlCnVzZWQsIGFuZCBpbiBmYWN0 IGluIHZpcnRpb190cmFuc3BvcnRfY29tbW9uLmMgb25seSA2NCBiaXQgYWNjZXNzb3JzIGFyZQp1 c2VkLiBVc2luZyAzMiBiaXQgYWNjZXNzb3JzIGZvciA2NCBiaXQgdmFsdWVzIGJyZWFrcyBiaWcg ZW5kaWFuIHN5c3RlbXMuCgpUaGlzIHBhdGNoIGZpeGVzIGEgd3JvbmcgdXNlIG9mIGxlMzJfdG9f Y3B1IGluIHZpcnRpb190cmFuc3BvcnRfc2VuZF9wa3QuCgpGaXhlczogYjkxMTY4MjMxODllODVj Y2YzODQgKCJWU09DSzogYWRkIGxvb3BiYWNrIHRvIHZpcnRpb190cmFuc3BvcnQiKQoKU2lnbmVk LW9mZi1ieTogQ2xhdWRpbyBJbWJyZW5kYSA8aW1icmVuZGFAbGludXgudm5ldC5pYm0uY29tPgpS ZXZpZXdlZC1ieTogU3RlZmFuIEhham5vY3ppIDxzdGVmYW5oYUByZWRoYXQuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Zt d192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvdm13X3Zzb2NrL3ZpcnRp b190cmFuc3BvcnQuYyBiL25ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jCmluZGV4IDhl MDNiZDNmMzY2OC4uNWQzY2NlOWU4NzQ0IDEwMDY0NAotLS0gYS9uZXQvdm13X3Zzb2NrL3ZpcnRp b190cmFuc3BvcnQuYworKysgYi9uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYwpAQCAt MjAxLDcgKzIwMSw3IEBAIHZpcnRpb190cmFuc3BvcnRfc2VuZF9wa3Qoc3RydWN0IHZpcnRpb192 c29ja19wa3QgKnBrdCkKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCi0JaWYgKGxlMzJfdG9fY3B1 KHBrdC0+aGRyLmRzdF9jaWQpID09IHZzb2NrLT5ndWVzdF9jaWQpCisJaWYgKGxlNjRfdG9fY3B1 KHBrdC0+aGRyLmRzdF9jaWQpID09IHZzb2NrLT5ndWVzdF9jaWQpCiAJCXJldHVybiB2aXJ0aW9f dHJhbnNwb3J0X3NlbmRfcGt0X2xvb3BiYWNrKHZzb2NrLCBwa3QpOwogCiAJaWYgKHBrdC0+cmVw bHkpCi0tIAoyLjE3LjEKCgpGcm9tIDNiYTkzOWI2YTBhMjY5ZTc5OTYxYzMzZGRjOWE2NWJkYTJj ODlmOGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdlaSBZb25nanVuIDx3ZWl5b25n anVuMUBodWF3ZWkuY29tPgpEYXRlOiBXZWQsIDI3IEp1biAyMDE4IDE3OjQ3OjM3ICswODAwClN1 YmplY3Q6IFtQQVRDSCAzOS81M10gaGluaWM6IHJlc2V0IGlycSBhZmZpbml0eSBiZWZvcmUgZnJl ZWluZyBpcnEKClsgVXBzdHJlYW0gY29tbWl0IDgyYmUyYWIxNTlhM2EwYWU0MDI0Yjk0NmEzMWYx MmIyMjFmNmM4ZmYgXQoKRm9sbG93aW5nIHdhcm5pbmcgaXMgc2VlbiB3aGVuIHJtbW9kIGhpbmlj LiBUaGlzIGlzIGJlY2F1c2UgYWZmaW5pdHkKdmFsdWUgaXMgbm90IHJlc2V0IGJlZm9yZSBjYWxs aW5nIGZyZWVfaXJxKCkuIFRoaXMgcGF0Y2ggZml4ZXMgaXQuCgpbICAgNTUuMTgxMjMyXSBXQVJO SU5HOiBDUFU6IDM4IFBJRDogMTk1ODkgYXQga2VybmVsL2lycS9tYW5hZ2UuYzoxNjA4Cl9fZnJl ZV9pcnErMHgyYWEvMHgyYzAKCkZpeGVzOiAzNTJmNThiMGQ5ZjIgKCJuZXQtbmV4dC9oaW5pYzog U2V0IFJ4cSBpcnEgdG8gc3BlY2lmaWMgY3B1IGZvciBOVU1BIikKU2lnbmVkLW9mZi1ieTogV2Vp IFlvbmdqdW4gPHdlaXlvbmdqdW4xQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9o dWF3ZWkvaGluaWMvaGluaWNfcnguYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljL2hpbmlj X3J4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMvaGluaWNfcnguYwppbmRl eCBlMmU1Y2RjNzExOWMuLjRjMGY3ZWRhMTE2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvaHVhd2VpL2hpbmljL2hpbmljX3J4LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv aHVhd2VpL2hpbmljL2hpbmljX3J4LmMKQEAgLTQzOSw2ICs0MzksNyBAQCBzdGF0aWMgdm9pZCBy eF9mcmVlX2lycShzdHJ1Y3QgaGluaWNfcnhxICpyeHEpCiB7CiAJc3RydWN0IGhpbmljX3JxICpy cSA9IHJ4cS0+cnE7CiAKKwlpcnFfc2V0X2FmZmluaXR5X2hpbnQocnEtPmlycSwgTlVMTCk7CiAJ ZnJlZV9pcnEocnEtPmlycSwgcnhxKTsKIAlyeF9kZWxfbmFwaShyeHEpOwogfQotLSAKMi4xNy4x CgoKRnJvbSBlNDkwY2IzZDFhNTMyNjQ4NzU2ZGQ3ZTU5MzAyMGRmZmFmYzU5OTU2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQaWV0ZXIgSmFuc2VuIHZhbiBWdXVyZW4gPHBpZXRlci5q YW5zZW52YW52dXVyZW5AbmV0cm9ub21lLmNvbT4KRGF0ZTogTW9uLCAyNSBKdW4gMjAxOCAyMDoz NjoyNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNDAvNTNdIG5mcDogZmxvd2VyOiBmaXggbXBscyBl dGhlciB0eXBlIGRldGVjdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgYTY0MTE5NDE1ZmYyNDhlZmE2 MTMwMTc4M2JjMjY1NTFkZjVkYWJmNiBdCgpQcmV2aW91c2x5IGl0IHdhcyBub3QgcG9zc2libGUg dG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBtcGxzIGV0aGVyIHR5cGVzIGFuZApvdGhlciBldGhlciB0 eXBlcy4gVGhpcyBsZWFkcyB0byBpbmNvcnJlY3QgY2xhc3NpZmljYXRpb24gb2Ygb2ZmbG9hZGVk CmZpbHRlcnMgdGhhdCBtYXRjaCBvbiBtcGxzIGV0aGVyIHR5cGUuIEZvciBleGFtcGxlIHRoZSBm b2xsb3dpbmcgdHdvCmZpbHRlcnMgb3ZlcmxhcDoKCiAjIHRjIGZpbHRlciBhZGQgZGV2IGV0aDAg cGFyZW50IGZmZmY6IFwKICAgIHByb3RvY29sIDB4ODg0NyBmbG93ZXIgXAogICAgYWN0aW9uIG1p cnJlZCBlZ3Jlc3MgcmVkaXJlY3QgZGV2IGV0aDEKCiAjIHRjIGZpbHRlciBhZGQgZGV2IGV0aDAg cGFyZW50IGZmZmY6IFwKICAgIHByb3RvY29sIDB4MDgwMCBmbG93ZXIgXAogICAgYWN0aW9uIG1p cnJlZCBlZ3Jlc3MgcmVkaXJlY3QgZGV2IGV0aDIKClRoZSBkcml2ZXIgbm93IGNvcnJlY3RseSBp bmNsdWRlcyB0aGUgbWFjX21wbHMgbGF5ZXIgd2hlcmUgSFcgc3RvcmVzIG1wbHMKZmllbGRzLCB3 aGVuIGl0IGRldGVjdHMgYW4gbXBscyBldGhlciB0eXBlLiBJdCBhbHNvIHNldHMgdGhlIE1QTFNf USBiaXQgdG8KaW5kaWNhdGUgdGhhdCB0aGUgZmlsdGVyIHNob3VsZCBtYXRjaCBtcGxzIHBhY2tl dHMuCgpGaXhlczogYmIwNTVjMTk4ZDliICgibmZwOiBhZGQgbXBscyBtYXRjaCBvZmZsb2FkaW5n IHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBQaWV0ZXIgSmFuc2VuIHZhbiBWdXVyZW4gPHBpZXRl ci5qYW5zZW52YW52dXVyZW5AbmV0cm9ub21lLmNvbT4KUmV2aWV3ZWQtYnk6IFNpbW9uIEhvcm1h biA8c2ltb24uaG9ybWFuQG5ldHJvbm9tZS5jb20+ClJldmlld2VkLWJ5OiBKYWt1YiBLaWNpbnNr aSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L25l dHJvbm9tZS9uZnAvZmxvd2VyL21hdGNoLmMgIHwgMTQgKysrKysrKysrKysrKysKIC4uLi9uZXQv ZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIvb2ZmbG9hZC5jICAgIHwgIDggKysrKysrKysK IDIgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvZmxvd2VyL21hdGNoLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9tYXRjaC5jCmluZGV4IDkxOTM1NDA1ZjU4Ni4u ODRmN2E1ZGJlYTlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUv bmZwL2Zsb3dlci9tYXRjaC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9u ZnAvZmxvd2VyL21hdGNoLmMKQEAgLTEyMyw2ICsxMjMsMjAgQEAgbmZwX2Zsb3dlcl9jb21waWxl X21hYyhzdHJ1Y3QgbmZwX2Zsb3dlcl9tYWNfbXBscyAqZnJhbWUsCiAJCQkgTkZQX0ZMT1dFUl9N QVNLX01QTFNfUTsKIAogCQlmcmFtZS0+bXBsc19sc2UgPSBjcHVfdG9fYmUzMih0X21wbHMpOwor CX0gZWxzZSBpZiAoZGlzc2VjdG9yX3VzZXNfa2V5KGZsb3ctPmRpc3NlY3RvciwKKwkJCQkgICAg ICBGTE9XX0RJU1NFQ1RPUl9LRVlfQkFTSUMpKSB7CisJCS8qIENoZWNrIGZvciBtcGxzIGV0aGVy IHR5cGUgYW5kIHNldCBORlBfRkxPV0VSX01BU0tfTVBMU19RCisJCSAqIGJpdCwgd2hpY2ggaW5k aWNhdGVzIGFuIG1wbHMgZXRoZXIgdHlwZSBidXQgd2l0aG91dCBhbnkKKwkJICogbXBscyBmaWVs ZHMuCisJCSAqLworCQlzdHJ1Y3QgZmxvd19kaXNzZWN0b3Jfa2V5X2Jhc2ljICprZXlfYmFzaWM7 CisKKwkJa2V5X2Jhc2ljID0gc2tiX2Zsb3dfZGlzc2VjdG9yX3RhcmdldChmbG93LT5kaXNzZWN0 b3IsCisJCQkJCQkgICAgICBGTE9XX0RJU1NFQ1RPUl9LRVlfQkFTSUMsCisJCQkJCQkgICAgICBm bG93LT5rZXkpOworCQlpZiAoa2V5X2Jhc2ljLT5uX3Byb3RvID09IGNwdV90b19iZTE2KEVUSF9Q X01QTFNfVUMpIHx8CisJCSAgICBrZXlfYmFzaWMtPm5fcHJvdG8gPT0gY3B1X3RvX2JlMTYoRVRI X1BfTVBMU19NQykpCisJCQlmcmFtZS0+bXBsc19sc2UgPSBjcHVfdG9fYmUzMihORlBfRkxPV0VS X01BU0tfTVBMU19RKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L25ldHJvbm9tZS9uZnAvZmxvd2VyL29mZmxvYWQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L25l dHJvbm9tZS9uZnAvZmxvd2VyL29mZmxvYWQuYwppbmRleCAxMTRkMmFiMDJhMzguLjMzYzhkNjdi NTVhMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93 ZXIvb2ZmbG9hZC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvZmxv d2VyL29mZmxvYWQuYwpAQCAtMjY0LDYgKzI2NCwxNCBAQCBuZnBfZmxvd2VyX2NhbGN1bGF0ZV9r ZXlfbGF5ZXJzKHN0cnVjdCBuZnBfYXBwICphcHAsCiAJCWNhc2UgY3B1X3RvX2JlMTYoRVRIX1Bf QVJQKToKIAkJCXJldHVybiAtRU9QTk9UU1VQUDsKIAorCQljYXNlIGNwdV90b19iZTE2KEVUSF9Q X01QTFNfVUMpOgorCQljYXNlIGNwdV90b19iZTE2KEVUSF9QX01QTFNfTUMpOgorCQkJaWYgKCEo a2V5X2xheWVyICYgTkZQX0ZMT1dFUl9MQVlFUl9NQUMpKSB7CisJCQkJa2V5X2xheWVyIHw9IE5G UF9GTE9XRVJfTEFZRVJfTUFDOworCQkJCWtleV9zaXplICs9IHNpemVvZihzdHJ1Y3QgbmZwX2Zs b3dlcl9tYWNfbXBscyk7CisJCQl9CisJCQlicmVhazsKKwogCQkvKiBXaWxsIGJlIGluY2x1ZGVk IGluIGxheWVyIDIuICovCiAJCWNhc2UgY3B1X3RvX2JlMTYoRVRIX1BfODAyMVEpOgogCQkJYnJl YWs7Ci0tIAoyLjE3LjEKCgpGcm9tIDIzYWVhMzcxMjA4YTRlN2U1YmMyYjEyODE0MjJmZmVmYmE5 ZTgwNTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFsZXhhbmRyZSBCZWxsb25pIDxh bGV4YW5kcmUuYmVsbG9uaUBib290bGluLmNvbT4KRGF0ZTogVHVlLCAyNiBKdW4gMjAxOCAxMDo0 NDowMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDEvNTNdIG5ldDogbWFjYjogaW5pdGlhbGl6ZSBi cC0+cXVldWVzWzBdLmJwIGZvciBhdDkxcm05MjAwCgpbIFVwc3RyZWFtIGNvbW1pdCBmZWM5ZDNi MWRjNGM0ODFmMjBmNWQyZjVhZWYzYWQxY2I3NTA0MTg2IF0KClRoZSBtYWNiIGRyaXZlciBjdXJy ZW50bHkgY3Jhc2hlcyBvbiBhdDkxcm05MjAwIHdpdGggdGhlIGZvbGxvd2luZyB0cmFjZToKClVu YWJsZSB0byBoYW5kbGUga2VybmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBhdCB2aXJ0dWFs IGFkZHJlc3MgMDAwMDAwMTQKWy4uLl0KWzxjMDMxZGE0ND5dIChtYWNiX3J4X2Rlc2MpIGZyb20g WzxjMDMxZjJiYz5dIChhdDkxZXRoZXJfb3BlbisweDJlOC8weDNmOCkKWzxjMDMxZjJiYz5dIChh dDkxZXRoZXJfb3BlbikgZnJvbSBbPGMwNDFlOGQ4Pl0gKF9fZGV2X29wZW4rMHgxMjAvMHgxM2Mp Cls8YzA0MWU4ZDg+XSAoX19kZXZfb3BlbikgZnJvbSBbPGMwNDFlYzA4Pl0gKF9fZGV2X2NoYW5n ZV9mbGFncysweDE3Yy8weDFhOCkKWzxjMDQxZWMwOD5dIChfX2Rldl9jaGFuZ2VfZmxhZ3MpIGZy b20gWzxjMDQxZWM0Yz5dIChkZXZfY2hhbmdlX2ZsYWdzKzB4MTgvMHg0YykKWzxjMDQxZWM0Yz5d IChkZXZfY2hhbmdlX2ZsYWdzKSBmcm9tIFs8YzA3YTVmNGM+XSAoaXBfYXV0b19jb25maWcrMHgy MjAvMHgxMGIwKQpbPGMwN2E1ZjRjPl0gKGlwX2F1dG9fY29uZmlnKSBmcm9tIFs8YzAwMGE0ZmM+ XSAoZG9fb25lX2luaXRjYWxsKzB4NzgvMHgxOGMpCls8YzAwMGE0ZmM+XSAoZG9fb25lX2luaXRj YWxsKSBmcm9tIFs8YzA3ODNlNTA+XSAoa2VybmVsX2luaXRfZnJlZWFibGUrMHgxODQvMHgxYzQp Cls8YzA3ODNlNTA+XSAoa2VybmVsX2luaXRfZnJlZWFibGUpIGZyb20gWzxjMDU3NGQ3MD5dIChr ZXJuZWxfaW5pdCsweDgvMHhlOCkKWzxjMDU3NGQ3MD5dIChrZXJuZWxfaW5pdCkgZnJvbSBbPGMw MDA5MGUwPl0gKHJldF9mcm9tX2ZvcmsrMHgxNC8weDM0KQoKU29sdmUgdGhhdCBieSBpbml0aWFs aXppbmcgYnAtPnF1ZXVlc1swXS5icCBpbiBhdDkxZXRoZXJfaW5pdCAoYXMgaXMgZG9uZQppbiBt YWNiX2luaXQpLgoKRml4ZXM6IGFlMWYyYTU2ZDI3MyAoIm5ldDogbWFjYjogQWRkZWQgc3VwcG9y dCBmb3IgbWFueSBSWCBxdWV1ZXMiKQpTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQmVsbG9uaSA8 YWxleGFuZHJlLmJlbGxvbmlAYm9vdGxpbi5jb20+CkFja2VkLWJ5OiBOaWNvbGFzIEZlcnJlIDxu aWNvbGFzLmZlcnJlQG1pY3JvY2hpcC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNl L21hY2JfbWFpbi5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jCmluZGV4IGI0YzkyNjgxMDBiYi4u MDY4Zjk5MTM5NWRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21h Y2JfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMK QEAgLTM3MzIsNiArMzczMiw4IEBAIHN0YXRpYyBpbnQgYXQ5MWV0aGVyX2luaXQoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldikKIAlpbnQgZXJyOwogCXUzMiByZWc7CiAKKwlicC0+cXVldWVz WzBdLmJwID0gYnA7CisKIAlkZXYtPm5ldGRldl9vcHMgPSAmYXQ5MWV0aGVyX25ldGRldl9vcHM7 CiAJZGV2LT5ldGh0b29sX29wcyA9ICZtYWNiX2V0aHRvb2xfb3BzOwogCi0tIAoyLjE3LjEKCgpG cm9tIDk4MmJiNTBlMmZmMjUwN2E5YmE1YmJhNjM4ZjYzMzkzZGM4NmIwZGEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpE YXRlOiBGcmksIDI5IEp1biAyMDE4IDEzOjQyOjQ4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA0Mi81 M10gbmV0OiB1c2UgZGV2X2NoYW5nZV90eF9xdWV1ZV9sZW4oKSBmb3IgU0lPQ1NJRlRYUUxFTgoK WyBVcHN0cmVhbSBjb21taXQgM2Y3NmRmMTk4Mjg4Y2VlYzkyZmM5ZWRkZWNhZDFlNzNjNTI3Njli MCBdCgpBcyBub3RpY2VkIGJ5IEVyaWMsIHdlIG5lZWQgdG8gc3dpdGNoIHRvIHRoZSBoZWxwZXIK ZGV2X2NoYW5nZV90eF9xdWV1ZV9sZW4oKSBmb3IgU0lPQ1NJRlRYUUxFTiBjYWxsIHBhdGggdG9v LApvdGhlcml3c2Ugc3RpbGwgbWlzcyBkZXZfcWRpc2NfY2hhbmdlX3R4X3F1ZXVlX2xlbigpLgoK Rml4ZXM6IDZhNjQzZGRiNTYyNCAoIm5ldDogaW50cm9kdWNlIGhlbHBlciBkZXZfY2hhbmdlX3R4 X3F1ZXVlX2xlbigpIikKUmVwb3J0ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xl LmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ ClJldmlld2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29y ZS9kZXZfaW9jdGwuYyB8IDExICsrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rldl9pb2N0bC5j IGIvbmV0L2NvcmUvZGV2X2lvY3RsLmMKaW5kZXggYTA0ZTFlODhiZjNhLi41MDUzN2ZmOTYxYTcg MTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rldl9pb2N0bC5jCisrKyBiL25ldC9jb3JlL2Rldl9pb2N0 bC5jCkBAIC0yODUsMTYgKzI4NSw5IEBAIHN0YXRpYyBpbnQgZGV2X2lmc2lvYyhzdHJ1Y3QgbmV0 ICpuZXQsIHN0cnVjdCBpZnJlcSAqaWZyLCB1bnNpZ25lZCBpbnQgY21kKQogCQlpZiAoaWZyLT5p ZnJfcWxlbiA8IDApCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJaWYgKGRldi0+dHhfcXVldWVfbGVu IF4gaWZyLT5pZnJfcWxlbikgewotCQkJdW5zaWduZWQgaW50IG9yaWdfbGVuID0gZGV2LT50eF9x dWV1ZV9sZW47Ci0KLQkJCWRldi0+dHhfcXVldWVfbGVuID0gaWZyLT5pZnJfcWxlbjsKLQkJCWVy ciA9IGNhbGxfbmV0ZGV2aWNlX25vdGlmaWVycygKLQkJCQkJTkVUREVWX0NIQU5HRV9UWF9RVUVV RV9MRU4sIGRldik7Ci0JCQllcnIgPSBub3RpZmllcl90b19lcnJubyhlcnIpOwotCQkJaWYgKGVy cikgewotCQkJCWRldi0+dHhfcXVldWVfbGVuID0gb3JpZ19sZW47CisJCQllcnIgPSBkZXZfY2hh bmdlX3R4X3F1ZXVlX2xlbihkZXYsIGlmci0+aWZyX3FsZW4pOworCQkJaWYgKGVycikKIAkJCQly ZXR1cm4gZXJyOwotCQkJfQogCQl9CiAJCXJldHVybiAwOwogCi0tIAoyLjE3LjEKCgpGcm9tIGIy YzMwYTU3NTNiZjc3YzgxNDVmOWRhZTk0ZTNjYjM4MTljMDM1MzEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEpvaG4gSHVybGV5IDxqb2huLmh1cmxleUBuZXRyb25vbWUuY29tPgpEYXRl OiBNb24sIDI1IEp1biAyMDE4IDIwOjM2OjI4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA0My81M10g bmZwOiByZWplY3QgYmluZGluZyB0byBzaGFyZWQgYmxvY2tzCgpbIFVwc3RyZWFtIGNvbW1pdCA5 NTFhOGVlNmRlZjM5ZTI1ZDBlNjBiOTM5NGU1YTI0OWJhOGIyMzkwIF0KClRDIHNoYXJlZCBibG9j a3MgYWxsb3cgbXVsdGlwbGUgcWRpc2NzIHRvIGJlIGdyb3VwZWQgdG9nZXRoZXIgYW5kIGZpbHRl cnMKc2hhcmVkIGJldHdlZW4gdGhlbS4gQ3VycmVudGx5IHRoZSBjaGFpbnMgb2YgZmlsdGVycyBh dHRhY2hlZCB0byBhIGJsb2NrCmFyZSBvbmx5IGZsdXNoZWQgd2hlbiB0aGUgYmxvY2sgaXMgcmVt b3ZlZC4gSWYgYSBxZGlzYyBpcyByZW1vdmVkIGZyb20gYQpibG9jayBidXQgdGhlIGJsb2NrIHN0 aWxsIGV4aXN0cywgZmxvdyBkZWwgbWVzc2FnZXMgYXJlIG5vdCBwYXNzZWQgdG8gdGhlCmNhbGxi YWNrIHJlZ2lzdGVyZWQgZm9yIHRoYXQgcWRpc2MuIEZvciB0aGUgTkZQLCB0aGlzIHByZXNlbnRz IHRoZQpwb3NzaWJpbGl0eSBvZiBydWxlcyBzdGlsbCBleGlzdGluZyBpbiBodyB3aGVuIHRoZXkg c2hvdWxkIGJlIHJlbW92ZWQuCgpQcmV2ZW50IGJpbmRpbmcgdG8gc2hhcmVkIGJsb2NrcyB1bnRp bCB0aGUga2VybmVsIGNhbiBzZW5kIHBlciBxZGlzYyBkZWwKbWVzc2FnZXMgd2hlbiBibG9jayB1 bmJpbmRzIG9jY3VyLgoKdGNmX2Jsb2NrX3NoYXJlZCgpIHdhcyBub3QgdXNlZCBvdXRzaWRlIG9m IHRoZSBjb3JlIHVudGlsIG5vdywgc28gYWxzbwphZGQgYW4gZW1wdHkgaW1wbGVtZW50YXRpb24g Zm9yIGJ1aWxkcyB3aXRoIENPTkZJR19ORVRfQ0xTPW4uCgpGaXhlczogNDg2MTczODc3NWQ3ICgi bmV0OiBzY2hlZDogaW50cm9kdWNlIHNoYXJlZCBmaWx0ZXIgYmxvY2tzIGluZnJhc3RydWN0dXJl IikKU2lnbmVkLW9mZi1ieTogSm9obiBIdXJsZXkgPGpvaG4uaHVybGV5QG5ldHJvbm9tZS5jb20+ ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUu Y29tPgpSZXZpZXdlZC1ieTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3JtYW5AbmV0cm9ub21lLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvYnBmL21haW4uYyAgICAgICB8 IDMgKysrCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9vZmZsb2Fk LmMgfCAzICsrKwogaW5jbHVkZS9uZXQvcGt0X2Nscy5oICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgNSArKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9icGYvbWFpbi5jIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9icGYvbWFpbi5jCmluZGV4IDM1ZmIz MWY2ODJhZi4uMWE3ODEyODFjNTdhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9u ZXRyb25vbWUvbmZwL2JwZi9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9u b21lL25mcC9icGYvbWFpbi5jCkBAIC0xOTQsNiArMTk0LDkgQEAgc3RhdGljIGludCBuZnBfYnBm X3NldHVwX3RjX2Jsb2NrKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsCiAJaWYgKGYtPmJpbmRl cl90eXBlICE9IFRDRl9CTE9DS19CSU5ERVJfVFlQRV9DTFNBQ1RfSU5HUkVTUykKIAkJcmV0dXJu IC1FT1BOT1RTVVBQOwogCisJaWYgKHRjZl9ibG9ja19zaGFyZWQoZi0+YmxvY2spKQorCQlyZXR1 cm4gLUVPUE5PVFNVUFA7CisKIAlzd2l0Y2ggKGYtPmNvbW1hbmQpIHsKIAljYXNlIFRDX0JMT0NL X0JJTkQ6CiAJCXJldHVybiB0Y2ZfYmxvY2tfY2JfcmVnaXN0ZXIoZi0+YmxvY2ssCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9vZmZsb2FkLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9vZmZsb2FkLmMKaW5k ZXggMzNjOGQ2N2I1NWEzLi40ZGUzMGQwZjk0OTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L25ldHJvbm9tZS9uZnAvZmxvd2VyL29mZmxvYWQuYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9vZmZsb2FkLmMKQEAgLTYwMSw2ICs2MDEsOSBA QCBzdGF0aWMgaW50IG5mcF9mbG93ZXJfc2V0dXBfdGNfYmxvY2soc3RydWN0IG5ldF9kZXZpY2Ug Km5ldGRldiwKIAlpZiAoZi0+YmluZGVyX3R5cGUgIT0gVENGX0JMT0NLX0JJTkRFUl9UWVBFX0NM U0FDVF9JTkdSRVNTKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKKwlpZiAodGNmX2Jsb2NrX3No YXJlZChmLT5ibG9jaykpCisJCXJldHVybiAtRU9QTk9UU1VQUDsKKwogCXN3aXRjaCAoZi0+Y29t bWFuZCkgewogCWNhc2UgVENfQkxPQ0tfQklORDoKIAkJcmV0dXJuIHRjZl9ibG9ja19jYl9yZWdp c3RlcihmLT5ibG9jaywKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3BrdF9jbHMuaCBiL2luY2x1 ZGUvbmV0L3BrdF9jbHMuaAppbmRleCBlODI4ZDMxYmU1ZGEuLjNiNGZiZjY5MDk1NyAxMDA2NDQK LS0tIGEvaW5jbHVkZS9uZXQvcGt0X2Nscy5oCisrKyBiL2luY2x1ZGUvbmV0L3BrdF9jbHMuaApA QCAtMTExLDYgKzExMSwxMSBAQCB2b2lkIHRjZl9ibG9ja19wdXRfZXh0KHN0cnVjdCB0Y2ZfYmxv Y2sgKmJsb2NrLCBzdHJ1Y3QgUWRpc2MgKnEsCiB7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCB0 Y2ZfYmxvY2tfc2hhcmVkKHN0cnVjdCB0Y2ZfYmxvY2sgKmJsb2NrKQoreworCXJldHVybiBmYWxz ZTsKK30KKwogc3RhdGljIGlubGluZSBzdHJ1Y3QgUWRpc2MgKnRjZl9ibG9ja19xKHN0cnVjdCB0 Y2ZfYmxvY2sgKmJsb2NrKQogewogCXJldHVybiBOVUxMOwotLSAKMi4xNy4xCgoKRnJvbSA0ZTlh Y2U3NTViNDNiMGU4M2IwMzZiYTJlMTEzZmVmNzE1NzQ0NDJmIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBSb3NzIExhZ2Vyd2FsbCA8cm9zcy5sYWdlcndhbGxAY2l0cml4LmNvbT4KRGF0 ZTogVGh1LCAyMSBKdW4gMjAxOCAxNDowMDoyMCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggNDQvNTNd IHhlbi1uZXRmcm9udDogRml4IG1pc21hdGNoZWQgcnRubF91bmxvY2sKClsgVXBzdHJlYW0gY29t bWl0IGNiMjU3NzgzYzI5MjdiNzM2MTRiMjBmOTE1YTkxZmY3OGFhNmYzZTggXQoKRml4ZXM6IGY1 OTljNjRmZGY3ZCAoInhlbi1uZXRmcm9udDogRml4IHJhY2UgYmV0d2VlbiBkZXZpY2Ugc2V0dXAg YW5kIG9wZW4iKQpSZXBvcnRlZC1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2Rl dGhpbmsuY28udWs+ClNpZ25lZC1vZmYtYnk6IFJvc3MgTGFnZXJ3YWxsIDxyb3NzLmxhZ2Vyd2Fs bEBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy9uZXQveGVuLW5ldGZyb250LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3hl bi1uZXRmcm9udC5jIGIvZHJpdmVycy9uZXQveGVuLW5ldGZyb250LmMKaW5kZXggNGRkMDY2ODAw M2U3Li4yNDQwOTViZmQ2MDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3hlbi1uZXRmcm9udC5j CisrKyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRmcm9udC5jCkBAIC0xODEwLDcgKzE4MTAsNyBAQCBz dGF0aWMgaW50IHRhbGtfdG9fbmV0YmFjayhzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAogCWVy ciA9IHhlbl9uZXRfcmVhZF9tYWMoZGV2LCBpbmZvLT5uZXRkZXYtPmRldl9hZGRyKTsKIAlpZiAo ZXJyKSB7CiAJCXhlbmJ1c19kZXZfZmF0YWwoZGV2LCBlcnIsICJwYXJzaW5nICVzL21hYyIsIGRl di0+bm9kZW5hbWUpOwotCQlnb3RvIG91dDsKKwkJZ290byBvdXRfdW5sb2NrZWQ7CiAJfQogCiAJ cnRubF9sb2NrKCk7CkBAIC0xOTI1LDYgKzE5MjUsNyBAQCBzdGF0aWMgaW50IHRhbGtfdG9fbmV0 YmFjayhzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAogCXhlbm5ldF9kZXN0cm95X3F1ZXVlcyhp bmZvKTsKICBvdXQ6CiAJcnRubF91bmxvY2soKTsKK291dF91bmxvY2tlZDoKIAlkZXZpY2VfdW5y ZWdpc3RlcigmZGV2LT5kZXYpOwogCXJldHVybiBlcnI7CiB9Ci0tIAoyLjE3LjEKCgpGcm9tIGNk YjE5NDZmODkzYTBkNWJjNmMxYjQxMmFjMjdjMzQ2MjZjYmZhMDIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFJvc3MgTGFnZXJ3YWxsIDxyb3NzLmxhZ2Vyd2FsbEBjaXRyaXguY29tPgpE YXRlOiBUaHUsIDIxIEp1biAyMDE4IDE0OjAwOjIxICswMTAwClN1YmplY3Q6IFtQQVRDSCA0NS81 M10geGVuLW5ldGZyb250OiBVcGRhdGUgZmVhdHVyZXMgYWZ0ZXIgcmVnaXN0ZXJpbmcgbmV0ZGV2 CgpbIFVwc3RyZWFtIGNvbW1pdCA0NWM4MTg0YzFiZWQxY2E4YTdmMDI5MTg1NTIwNjNhMDBiOTA5 YmY1IF0KClVwZGF0ZSB0aGUgZmVhdHVyZXMgYWZ0ZXIgY2FsbGluZyByZWdpc3Rlcl9uZXRkZXYo KSBvdGhlcndpc2UgdGhlCmRldmljZSBmZWF0dXJlcyBhcmUgbm90IHNldCB1cCBjb3JyZWN0bHkg YW5kIGl0IG5vdCBwb3NzaWJsZSB0byBjaGFuZ2UKdGhlIE1UVSBvZiB0aGUgZGV2aWNlLiBBZnRl ciB0aGlzIGNoYW5nZSwgdGhlIGZlYXR1cmVzIHJlcG9ydGVkIGJ5CmV0aHRvb2wgbWF0Y2ggdGhl IGRldmljZSdzIGZlYXR1cmVzIGJlZm9yZSB0aGUgY29tbWl0IHdoaWNoIGludHJvZHVjZWQKdGhl IGlzc3VlIGFuZCBpdCBpcyBwb3NzaWJsZSB0byBjaGFuZ2UgdGhlIGRldmljZSdzIE1UVS4KCkZp eGVzOiBmNTk5YzY0ZmRmN2QgKCJ4ZW4tbmV0ZnJvbnQ6IEZpeCByYWNlIGJldHdlZW4gZGV2aWNl IHNldHVwIGFuZCBvcGVuIikKUmVwb3J0ZWQtYnk6IExpYW0gU2hlcGhlcmQgPGxpYW1AZGFuY2Vy LmVzPgpTaWduZWQtb2ZmLWJ5OiBSb3NzIExhZ2Vyd2FsbCA8cm9zcy5sYWdlcndhbGxAY2l0cml4 LmNvbT4KUmV2aWV3ZWQtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L3hlbi1uZXRmcm9udC5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5z ZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC94ZW4t bmV0ZnJvbnQuYyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRmcm9udC5jCmluZGV4IDI0NDA5NWJmZDYw NC4uMWQ1MDgyZDMwMTg3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC94ZW4tbmV0ZnJvbnQuYwor KysgYi9kcml2ZXJzL25ldC94ZW4tbmV0ZnJvbnQuYwpAQCAtMTk1MSwxMCArMTk1MSw2IEBAIHN0 YXRpYyBpbnQgeGVubmV0X2Nvbm5lY3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkvKiB0YWxr X3RvX25ldGJhY2soKSBzZXRzIHRoZSBjb3JyZWN0IG51bWJlciBvZiBxdWV1ZXMgKi8KIAludW1f cXVldWVzID0gZGV2LT5yZWFsX251bV90eF9xdWV1ZXM7CiAKLQlydG5sX2xvY2soKTsKLQluZXRk ZXZfdXBkYXRlX2ZlYXR1cmVzKGRldik7Ci0JcnRubF91bmxvY2soKTsKLQogCWlmIChkZXYtPnJl Z19zdGF0ZSA9PSBORVRSRUdfVU5JTklUSUFMSVpFRCkgewogCQllcnIgPSByZWdpc3Rlcl9uZXRk ZXYoZGV2KTsKIAkJaWYgKGVycikgewpAQCAtMTk2NCw2ICsxOTYwLDEwIEBAIHN0YXRpYyBpbnQg eGVubmV0X2Nvbm5lY3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJfQogCX0KIAorCXJ0bmxf bG9jaygpOworCW5ldGRldl91cGRhdGVfZmVhdHVyZXMoZGV2KTsKKwlydG5sX3VubG9jaygpOwor CiAJLyoKIAkgKiBBbGwgcHVibGljIGFuZCBwcml2YXRlIHN0YXRlIHNob3VsZCBub3cgYmUgc2Fu ZS4gIEdldAogCSAqIHJlYWR5IHRvIHN0YXJ0IHNlbmRpbmcgYW5kIHJlY2VpdmluZyBwYWNrZXRz IGFuZCBnaXZlIHRoZSBkcml2ZXIKLS0gCjIuMTcuMQoKCkZyb20gMjg5NjczMTUxMTUzNzU2MjVk YzUwMWM3MzdiYjY3NGJlOGI0ZWFlZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR292 aW5kYXJhanVsdSBWYXJhZGFyYWphbiA8Z3ZhcmFkYXJAY2lzY28uY29tPgpEYXRlOiBNb24sIDE4 IEp1biAyMDE4IDEwOjAxOjA1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA0Ni81M10gZW5pYzogZG8g bm90IG92ZXJ3cml0ZSBlcnJvciBjb2RlCgpbIFVwc3RyZWFtIGNvbW1pdCA1NmY3NzIyNzlhNzYy OTg0ZjZlOWViYmYyNGE3YzgyOWZhYmE1NzEyIF0KCkluIGZhaWx1cmUgcGF0aCwgd2Ugb3Zlcndy aXRlIGVyciB0byB3aGF0IHZuaWNfcnFfZGlzYWJsZSgpIHJldHVybnMuIEluCmNhc2UgaXQgcmV0 dXJucyAwLCBlbmljX29wZW4oKSByZXR1cm5zIHN1Y2Nlc3MgaW4gY2FzZSBvZiBlcnJvci4KClJl cG9ydGVkLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51az4K Rml4ZXM6IGU4NTg4ZTI2ODUwOSAoImVuaWM6IGVuYWJsZSBycSBiZWZvcmUgdXBkYXRpbmcgcnEg ZGVzY3JpcHRvcnMiKQpTaWduZWQtb2ZmLWJ5OiBHb3ZpbmRhcmFqdWx1IFZhcmFkYXJhamFuIDxn dmFyYWRhckBjaXNjby5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9jaXNjby9lbmljL2VuaWNf bWFpbi5jIHwgOSArKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2lzY28vZW5p Yy9lbmljX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Npc2NvL2VuaWMvZW5pY19tYWlu LmMKaW5kZXggOGE4YjEyYjcyMGVmLi40NTRlNTdlZjA0N2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L2Npc2NvL2VuaWMvZW5pY19tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvY2lzY28vZW5pYy9lbmljX21haW4uYwpAQCAtMTkyMCw3ICsxOTIwLDcgQEAgc3RhdGlj IGludCBlbmljX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIHsKIAlzdHJ1Y3QgZW5p YyAqZW5pYyA9IG5ldGRldl9wcml2KG5ldGRldik7CiAJdW5zaWduZWQgaW50IGk7Ci0JaW50IGVy cjsKKwlpbnQgZXJyLCByZXQ7CiAKIAllcnIgPSBlbmljX3JlcXVlc3RfaW50cihlbmljKTsKIAlp ZiAoZXJyKSB7CkBAIC0xOTc3LDEwICsxOTc3LDkgQEAgc3RhdGljIGludCBlbmljX29wZW4oc3Ry dWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAogZXJyX291dF9mcmVlX3JxOgogCWZvciAoaSA9IDA7 IGkgPCBlbmljLT5ycV9jb3VudDsgaSsrKSB7Ci0JCWVyciA9IHZuaWNfcnFfZGlzYWJsZSgmZW5p Yy0+cnFbaV0pOwotCQlpZiAoZXJyKQotCQkJcmV0dXJuIGVycjsKLQkJdm5pY19ycV9jbGVhbigm ZW5pYy0+cnFbaV0sIGVuaWNfZnJlZV9ycV9idWYpOworCQlyZXQgPSB2bmljX3JxX2Rpc2FibGUo JmVuaWMtPnJxW2ldKTsKKwkJaWYgKCFyZXQpCisJCQl2bmljX3JxX2NsZWFuKCZlbmljLT5ycVtp XSwgZW5pY19mcmVlX3JxX2J1Zik7CiAJfQogCWVuaWNfZGV2X25vdGlmeV91bnNldChlbmljKTsK IGVycl9vdXRfZnJlZV9pbnRyOgotLSAKMi4xNy4xCgoKRnJvbSBhODYyY2RiMjFlOTU3MTk2NWFm NTlhZGJkMDRlODU3ODJhNGZiMDYwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKZXNw ZXIgRGFuZ2FhcmQgQnJvdWVyIDxicm91ZXJAcmVkaGF0LmNvbT4KRGF0ZTogVHVlLCAyNiBKdW4g MjAxOCAxNzozOTo1MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDcvNTNdIGk0MGU6IHNwbGl0IFhE UF9UWCB0YWlsIGFuZCBYRFBfUkVESVJFQ1QgbWFwIGZsdXNoaW5nCk1JTUUtVmVyc2lvbjogMS4w CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCAyZTY4OTMxMjM4MzBkMDRlZGMzNjZl MGNlNTlkNDZlNjIyZTE0MGMxIF0KClRoZSBkcml2ZXIgd2FzIGNvbWJpbmluZyB0aGUgWERQX1RY IHRhaWwgZmx1c2ggYW5kIFhEUF9SRURJUkVDVAptYXAgZmx1c2hpbmcgKHhkcF9kb19mbHVzaF9t YXApLiAgVGhpcyBpcyBzdWJvcHRpbWFsLCB0aGVzZSB0d28KZmx1c2ggb3BlcmF0aW9ucyBzaG91 bGQgYmUga2VwdCBzZXBhcmF0ZS4KCkl0IGxvb2tzIGxpa2UgdGhlIG1pc3Rha2Ugd2FzIGNvcHkt cGFzdGVkIGZyb20gaXhnYmUuCgpGaXhlczogZDkzMTRjNDc0ZDRmICgiaTQwZTogYWRkIHN1cHBv cnQgZm9yIFhEUF9SRURJUkVDVCIpClNpZ25lZC1vZmYtYnk6IEplc3BlciBEYW5nYWFyZCBCcm91 ZXIgPGJyb3VlckByZWRoYXQuY29tPgpBY2tlZC1ieTogQmrDtnJuIFTDtnBlbCA8Ympvcm4udG9w ZWxAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3R4cngu YyB8IDI0ICsrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlv bnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv aW50ZWwvaTQwZS9pNDBlX3R4cnguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUv aTQwZV90eHJ4LmMKaW5kZXggZjE3NGM3MjQ4MGFiLi44ZDM1MjJjOTRjM2YgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZV90eHJ4LmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3R4cnguYwpAQCAtMjE5OSw5ICsyMTk5LDEw IEBAIHN0YXRpYyBib29sIGk0MGVfaXNfbm9uX2VvcChzdHJ1Y3QgaTQwZV9yaW5nICpyeF9yaW5n LAogCXJldHVybiB0cnVlOwogfQogCi0jZGVmaW5lIEk0MEVfWERQX1BBU1MgMAotI2RlZmluZSBJ NDBFX1hEUF9DT05TVU1FRCAxCi0jZGVmaW5lIEk0MEVfWERQX1RYIDIKKyNkZWZpbmUgSTQwRV9Y RFBfUEFTUwkJMAorI2RlZmluZSBJNDBFX1hEUF9DT05TVU1FRAlCSVQoMCkKKyNkZWZpbmUgSTQw RV9YRFBfVFgJCUJJVCgxKQorI2RlZmluZSBJNDBFX1hEUF9SRURJUgkJQklUKDIpCiAKIHN0YXRp YyBpbnQgaTQwZV94bWl0X3hkcF9yaW5nKHN0cnVjdCB4ZHBfYnVmZiAqeGRwLAogCQkJICAgICAg c3RydWN0IGk0MGVfcmluZyAqeGRwX3JpbmcpOwpAQCAtMjIzNSw3ICsyMjM2LDcgQEAgc3RhdGlj IHN0cnVjdCBza19idWZmICppNDBlX3J1bl94ZHAoc3RydWN0IGk0MGVfcmluZyAqcnhfcmluZywK IAkJYnJlYWs7CiAJY2FzZSBYRFBfUkVESVJFQ1Q6CiAJCWVyciA9IHhkcF9kb19yZWRpcmVjdChy eF9yaW5nLT5uZXRkZXYsIHhkcCwgeGRwX3Byb2cpOwotCQlyZXN1bHQgPSAhZXJyID8gSTQwRV9Y RFBfVFggOiBJNDBFX1hEUF9DT05TVU1FRDsKKwkJcmVzdWx0ID0gIWVyciA/IEk0MEVfWERQX1JF RElSIDogSTQwRV9YRFBfQ09OU1VNRUQ7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCWJwZl93YXJu X2ludmFsaWRfeGRwX2FjdGlvbihhY3QpOwpAQCAtMjI5OCw3ICsyMjk5LDggQEAgc3RhdGljIGlu dCBpNDBlX2NsZWFuX3J4X2lycShzdHJ1Y3QgaTQwZV9yaW5nICpyeF9yaW5nLCBpbnQgYnVkZ2V0 KQogCXVuc2lnbmVkIGludCB0b3RhbF9yeF9ieXRlcyA9IDAsIHRvdGFsX3J4X3BhY2tldHMgPSAw OwogCXN0cnVjdCBza19idWZmICpza2IgPSByeF9yaW5nLT5za2I7CiAJdTE2IGNsZWFuZWRfY291 bnQgPSBJNDBFX0RFU0NfVU5VU0VEKHJ4X3JpbmcpOwotCWJvb2wgZmFpbHVyZSA9IGZhbHNlLCB4 ZHBfeG1pdCA9IGZhbHNlOworCXVuc2lnbmVkIGludCB4ZHBfeG1pdCA9IDA7CisJYm9vbCBmYWls dXJlID0gZmFsc2U7CiAJc3RydWN0IHhkcF9idWZmIHhkcDsKIAogCXhkcC5yeHEgPSAmcnhfcmlu Zy0+eGRwX3J4cTsKQEAgLTIzNTksOCArMjM2MSwxMCBAQCBzdGF0aWMgaW50IGk0MGVfY2xlYW5f cnhfaXJxKHN0cnVjdCBpNDBlX3JpbmcgKnJ4X3JpbmcsIGludCBidWRnZXQpCiAJCX0KIAogCQlp ZiAoSVNfRVJSKHNrYikpIHsKLQkJCWlmIChQVFJfRVJSKHNrYikgPT0gLUk0MEVfWERQX1RYKSB7 Ci0JCQkJeGRwX3htaXQgPSB0cnVlOworCQkJdW5zaWduZWQgaW50IHhkcF9yZXMgPSAtUFRSX0VS Uihza2IpOworCisJCQlpZiAoeGRwX3JlcyAmIChJNDBFX1hEUF9UWCB8IEk0MEVfWERQX1JFRElS KSkgeworCQkJCXhkcF94bWl0IHw9IHhkcF9yZXM7CiAJCQkJaTQwZV9yeF9idWZmZXJfZmxpcChy eF9yaW5nLCByeF9idWZmZXIsIHNpemUpOwogCQkJfSBlbHNlIHsKIAkJCQlyeF9idWZmZXItPnBh Z2VjbnRfYmlhcysrOwpAQCAtMjQxNCwxMiArMjQxOCwxNCBAQCBzdGF0aWMgaW50IGk0MGVfY2xl YW5fcnhfaXJxKHN0cnVjdCBpNDBlX3JpbmcgKnJ4X3JpbmcsIGludCBidWRnZXQpCiAJCXRvdGFs X3J4X3BhY2tldHMrKzsKIAl9CiAKLQlpZiAoeGRwX3htaXQpIHsKKwlpZiAoeGRwX3htaXQgJiBJ NDBFX1hEUF9SRURJUikKKwkJeGRwX2RvX2ZsdXNoX21hcCgpOworCisJaWYgKHhkcF94bWl0ICYg STQwRV9YRFBfVFgpIHsKIAkJc3RydWN0IGk0MGVfcmluZyAqeGRwX3JpbmcgPQogCQkJcnhfcmlu Zy0+dnNpLT54ZHBfcmluZ3NbcnhfcmluZy0+cXVldWVfaW5kZXhdOwogCiAJCWk0MGVfeGRwX3Jp bmdfdXBkYXRlX3RhaWwoeGRwX3JpbmcpOwotCQl4ZHBfZG9fZmx1c2hfbWFwKCk7CiAJfQogCiAJ cnhfcmluZy0+c2tiID0gc2tiOwotLSAKMi4xNy4xCgoKRnJvbSA4N2U3MTM3MTUzNjFkZWU5YmE0 Y2Y3OGI5NjQ4ZTAzODY4ZmUwYmEyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBPciBH ZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+CkRhdGU6IFRodSwgMzEgTWF5IDIwMTggMTE6 NDA6MTcgKzAzMDAKU3ViamVjdDogW1BBVENIIDQ4LzUzXSBJQi9tbHg1OiBBdm9pZCBkZWFsaW5n IHdpdGggdnBvcnQgcmVwcmVzZW50b3JzIGlmIG5vdAogYmVpbmcgZS1zd2l0Y2ggbWFuYWdlcgoK WyBVcHN0cmVhbSBjb21taXQgYWZmMjI1MmEyYWQzODQ0Y2E0N2JmMmYxOGFmMDcxMTAxYmFhY2U0 MCBdCgpJbiBzbWFydG5pYyBlbnYsIHRoZSBob3N0IChQRikgZHJpdmVyIG1pZ2h0IG5vdCBiZSBh biBlLXN3aXRjaAptYW5hZ2VyLCBoZW5jZSB0aGUgc3dpdGNoZGV2IG1vZGUgcmVwcmVzZW50b3Jz IGFyZSBydW5uaW5nIG9uCnRoZSBlbWJlZGRlZCBjcHUgKEVDKSBhbmQgbm90IGF0IHRoZSBob3N0 LgoKQXMgc3VjaCwgd2Ugc2hvdWxkIGF2b2lkIGRlYWxpbmcgd2l0aCB2cG9ydCByZXByZXNlbnRv cnMgaWYKbm90IGJlaW5nIGVzdyBtYW5hZ2VyLgoKRml4ZXM6IGI1Y2ExNWFkN2U2MSAoJ0lCL21s eDU6IEFkZCBwcm9wZXIgcmVwcmVzZW50b3JzIHN1cHBvcnQnKQpTaWduZWQtb2ZmLWJ5OiBPciBH ZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBFbGkgQ29oZW4gPGVs aUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVs bGFub3guY29tPgotLS0KIGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYyB8IDIgKy0K IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFu ZC9ody9tbHg1L21haW4uYwppbmRleCA2OTcxNmE3ZWE5OTMuLjk1YTUxNmFjNmMzOSAxMDA2NDQK LS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jCisrKyBiL2RyaXZlcnMvaW5m aW5pYmFuZC9ody9tbHg1L21haW4uYwpAQCAtNTczNiw3ICs1NzM2LDcgQEAgc3RhdGljIHZvaWQg Km1seDVfaWJfYWRkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2KQogCWRldi0+bnVtX3BvcnRz ID0gbWF4KE1MWDVfQ0FQX0dFTihtZGV2LCBudW1fcG9ydHMpLAogCQkJICAgICBNTFg1X0NBUF9H RU4obWRldiwgbnVtX3ZoY2FfcG9ydHMpKTsKIAotCWlmIChNTFg1X1ZQT1JUX01BTkFHRVIobWRl dikgJiYKKwlpZiAoTUxYNV9FU1dJVENIX01BTkFHRVIobWRldikgJiYKIAkgICAgbWx4NV9pYl9l c3dpdGNoX21vZGUobWRldi0+cHJpdi5lc3dpdGNoKSA9PSBTUklPVl9PRkZMT0FEUykgewogCQlk ZXYtPnJlcCA9IG1seDVfaWJfdnBvcnRfcmVwKG1kZXYtPnByaXYuZXN3aXRjaCwgMCk7CiAKLS0g CjIuMTcuMQoKCkZyb20gNmZlMzBlMjU4MDU3NTQyM2I0NzBiMDI5YTA4NTJjZDhhMjc4ODk4MyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVsaWFuIFdpZWRtYW5uIDxqd2lAbGludXgu aWJtLmNvbT4KRGF0ZTogRnJpLCAyOSBKdW4gMjAxOCAxOTo0NTo1MCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggNDkvNTNdIFJldmVydCAiczM5MC9xZXRoOiB1c2UgUmVhZCBkZXZpY2UgdG8gcXVlcnkg aHlwZXJ2aXNvcgogZm9yIE1BQyIKClsgVXBzdHJlYW0gY29tbWl0IDQ2NjQ2MTA1MzdkMzk4ZDU1 YmUxOTQzMmY5Y2Q5YzI5YzgzMWUxNTkgXQoKVGhpcyByZXZlcnRzIGNvbW1pdCBiNzQ5M2U5MWMx MWE3NTdjZjBmOGFiMjY5ODk2NDJlZTRiYjJjNjQyLgoKT24gaXRzIG93biwgcXVlcnlpbmcgUkRF ViBmb3IgYSBNQUMgYWRkcmVzcyB3b3JrcyBmaW5lLiBCdXQgd2hlbiB1cGdyYWRpbmcKZnJvbSBh IHFldGggdGhhdCBwcmV2aW91c2x5IHF1ZXJpZWQgRERFViBvbiBhIHovVk0gTklDIChpZS4gYW55 IGtlcm5lbCB3aXRoCmNvbW1pdCBlYzYxYmQyZmQyYTIpLCB0aGUgUkRFViBxdWVyeSBub3cgcmV0 dXJucyBhIF9kaWZmZXJlbnRfIE1BQyBhZGRyZXNzCnRoYW4gdGhlIERERVYgcXVlcnkuCgpJZiB0 aGUgTklDIGlzIGNvbmZpZ3VyZWQgd2l0aCBNQUNQUk9URUNULCB6L1ZNIGFwcGFyZW50bHkgcmVx dWlyZXMgdXMgdG8KdXNlIHRoZSBNQUMgdGhhdCB3YXMgaW5pdGlhbGx5IHJldHVybmVkIChvbiBE REVWKSBhbmQgcmVnaXN0ZXJlZC4gU28gYWZ0ZXIKdXBncmFkaW5nIHRvIGEga2VybmVsIHRoYXQg dXNlcyBSREVWLCB0aGUgU0VUVk1BQyByZWdpc3RyYXRpb24gY21kIGZvciB0aGUKbmV3IE1BQyBh ZGRyZXNzIGZhaWxzIGFuZCB3ZSBlbmQgdXAgd2l0aCBhIG5vbi1vcGVyYWJlbCBpbnRlcmZhY2Uu CgpUbyBhdm9pZCByZWdyZXNzaW9ucyBvbiB1cGdyYWRlLCBzd2l0Y2ggYmFjayB0byB1c2luZyBE REVWIGZvciB0aGUgTUFDCmFkZHJlc3MgcXVlcnkuIFRoZSBkb3duZ3JhZGUgcGF0aCAoZmlyc3Qg UkRFViwgbGF0ZXIgRERFVikgaXMgZmluZSwgaW4gdGhpcwpjYXNlIGJvdGggcXVlcmllcyByZXR1 cm4gdGhlIHNhbWUgTUFDIGFkZHJlc3MuCgpGaXhlczogYjc0OTNlOTFjMTFhICgiczM5MC9xZXRo OiB1c2UgUmVhZCBkZXZpY2UgdG8gcXVlcnkgaHlwZXJ2aXNvciBmb3IgTUFDIikKUmVwb3J0ZWQt Ynk6IE1pY2hhbCBLdWJlY2VrIDxta3ViZWNla0BzdXNlLmNvbT4KVGVzdGVkLWJ5OiBLYXJzdGVu IEdyYXVsIDxrZ3JhdWxAbGludXguaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogSnVsaWFuIFdpZWRt YW5uIDxqd2lAbGludXguaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4u YyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYyBiL2RyaXZlcnMv czM5MC9uZXQvcWV0aF9jb3JlX21haW4uYwppbmRleCA5NTU0MDlhN2ExYzEuLmIyZWViY2ZmZDUw MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jCisrKyBiL2Ry aXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYwpAQCAtNDg0NSw3ICs0ODQ1LDcgQEAgaW50 IHFldGhfdm1fcmVxdWVzdF9tYWMoc3RydWN0IHFldGhfY2FyZCAqY2FyZCkKIAkJZ290byBvdXQ7 CiAJfQogCi0JY2N3X2RldmljZV9nZXRfaWQoQ0FSRF9SREVWKGNhcmQpLCAmaWQpOworCWNjd19k ZXZpY2VfZ2V0X2lkKENBUkRfRERFVihjYXJkKSwgJmlkKTsKIAlyZXF1ZXN0LT5yZXNwX2J1Zl9s ZW4gPSBzaXplb2YoKnJlc3BvbnNlKTsKIAlyZXF1ZXN0LT5yZXNwX3ZlcnNpb24gPSBESUFHMjZD X1ZFUlNJT04yOwogCXJlcXVlc3QtPm9wX2NvZGUgPSBESUFHMjZDX0dFVF9NQUM7Ci0tIAoyLjE3 LjEKCgpGcm9tIDk5MmNmYTlhOWFmYzNkMWFkYTU4YmY1OGYzNWZiNTFjNjRiNmI4YjQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFZhc2lseSBHb3JiaWsgPGdvckBsaW51eC5pYm0uY29t PgpEYXRlOiBGcmksIDI5IEp1biAyMDE4IDE5OjQ1OjUyICswMjAwClN1YmplY3Q6IFtQQVRDSCA1 MC81M10gczM5MC9xZXRoOiBhdm9pZCB1c2luZyBpc19tdWx0aWNhc3RfZXRoZXJfYWRkcl82NGJp dHMKIG9uICh1OCAqKVs2XQoKWyBVcHN0cmVhbSBjb21taXQgOWQwYTU4ZmI5NzQ3YWZkMjdkNDkw YzAyYTk3ODg5YTFiNTlmNmJlNCBdCgoqZXRoZXJfYWRkcipfNjRiaXRzIGZ1bmN0aW9ucyBoYXZl IGJlZW4gaW50cm9kdWNlZCB0byBvcHRpbWl6ZQpwZXJmb3JtYW5jZSBjcml0aWNhbCBwYXRocywg d2hpY2ggYWNjZXNzIDYtYnl0ZSBldGhlcm5ldCBhZGRyZXNzIGFzIHU2NAp2YWx1ZSB0byBnZXQg Im5pY2UiIGFzc2VtYmx5LiBBIGhhcm1sZXNzIGhhY2sgd29ya3MgbmljZWx5IG9uIGV0aGVybmV0 CmFkZHJlc3NlcyBzaG92ZWQgaW50byBhIHN0cnVjdHVyZSBvciBhIGxhcmdlciBidWZmZXIsIHVu dGlsIGJ1c3RlZCBieQpLYXNhbiBvbiBzbXRoIGxpa2UgcGxhaW4gKHU4ICopWzZdLgoKcWV0aF9s Ml9zZXRfbWFjX2FkZHJlc3MgY2FsbHMgcWV0aF9sMl9yZW1vdmVfbWFjIHBhc3NpbmcKdTggb2xk X2FkZHJbRVRIX0FMRU5dIGFzIGFuIGFyZ3VtZW50LgoKQWRkaW5nL3JlbW92aW5nIG1hY3MgZm9y IGFuIGV0aGVybmV0IGFkYXB0ZXIgaXMgbm90IHRoYXQgcGVyZm9ybWFuY2UKY3JpdGljYWwuIE1v cmVvdmVyIGlzX211bHRpY2FzdF9ldGhlcl9hZGRyXzY0Yml0cyBpdHNlbGYgb24gczM5MCBpcyBu b3QKZmFzdGVyIHRoYW4gaXNfbXVsdGljYXN0X2V0aGVyX2FkZHI6Cgppc19tdWx0aWNhc3RfZXRo ZXJfYWRkciglcjIpIC0+ICVyMgpsbGMJJXIyLDAoJXIyKQpyaXNiZwklcjIsJXIyLDYzLDE5MSww Cgppc19tdWx0aWNhc3RfZXRoZXJfYWRkcl82NGJpdHMoJXIyKSAtPiAlcjIKbGxnYwklcjIsMCgl cjIpCnJpc2JnCSVyMiwlcjIsNjMsMTkxLDAKClNvLCBsZXQncyBqdXN0IHVzZSBpc19tdWx0aWNh c3RfZXRoZXJfYWRkciBpbnN0ZWFkIG9mCmlzX211bHRpY2FzdF9ldGhlcl9hZGRyXzY0Yml0cy4K CkZpeGVzOiBiY2FjZmNiYzgyYjQgKCJzMzkwL3FldGg6IGZpeCBNQUMgYWRkcmVzcyB1cGRhdGUg c2VxdWVuY2UiKQpSZXZpZXdlZC1ieTogSnVsaWFuIFdpZWRtYW5uIDxqd2lAbGludXguaWJtLmNv bT4KU2lnbmVkLW9mZi1ieTogVmFzaWx5IEdvcmJpayA8Z29yQGxpbnV4LmlibS5jb20+ClNpZ25l ZC1vZmYtYnk6IEp1bGlhbiBXaWVkbWFubiA8andpQGxpbnV4LmlibS5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3Mz OTAvbmV0L3FldGhfbDJfbWFpbi5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0 aF9sMl9tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJfbWFpbi5jCmluZGV4IGI4MDc5 ZjJhNjViMy4uZWVhNzAwMTA1MWQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhf bDJfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9tYWluLmMKQEAgLTE0MSw3 ICsxNDEsNyBAQCBzdGF0aWMgaW50IHFldGhfbDJfc2VuZF9zZXRtYWMoc3RydWN0IHFldGhfY2Fy ZCAqY2FyZCwgX191OCAqbWFjKQogCiBzdGF0aWMgaW50IHFldGhfbDJfd3JpdGVfbWFjKHN0cnVj dCBxZXRoX2NhcmQgKmNhcmQsIHU4ICptYWMpCiB7Ci0JZW51bSBxZXRoX2lwYV9jbWRzIGNtZCA9 IGlzX211bHRpY2FzdF9ldGhlcl9hZGRyXzY0Yml0cyhtYWMpID8KKwllbnVtIHFldGhfaXBhX2Nt ZHMgY21kID0gaXNfbXVsdGljYXN0X2V0aGVyX2FkZHIobWFjKSA/CiAJCQkJCUlQQV9DTURfU0VU R01BQyA6IElQQV9DTURfU0VUVk1BQzsKIAlpbnQgcmM7CiAKQEAgLTE1OCw3ICsxNTgsNyBAQCBz dGF0aWMgaW50IHFldGhfbDJfd3JpdGVfbWFjKHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQsIHU4ICpt YWMpCiAKIHN0YXRpYyBpbnQgcWV0aF9sMl9yZW1vdmVfbWFjKHN0cnVjdCBxZXRoX2NhcmQgKmNh cmQsIHU4ICptYWMpCiB7Ci0JZW51bSBxZXRoX2lwYV9jbWRzIGNtZCA9IGlzX211bHRpY2FzdF9l dGhlcl9hZGRyXzY0Yml0cyhtYWMpID8KKwllbnVtIHFldGhfaXBhX2NtZHMgY21kID0gaXNfbXVs dGljYXN0X2V0aGVyX2FkZHIobWFjKSA/CiAJCQkJCUlQQV9DTURfREVMR01BQyA6IElQQV9DTURf REVMVk1BQzsKIAlpbnQgcmM7CiAKLS0gCjIuMTcuMQoKCkZyb20gYjc2ZTBjYTRmZjIzYzE1MzU3 YTBiZWMxZjBjNGRmOTlhOTI4MGMwNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVs aWFuIFdpZWRtYW5uIDxqd2lAbGludXguaWJtLmNvbT4KRGF0ZTogRnJpLCAyOSBKdW4gMjAxOCAx OTo0NTo1MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNTEvNTNdIHMzOTAvcWV0aDogZml4IHJhY2Ug d2hlbiBzZXR0aW5nIE1BQyBhZGRyZXNzCgpbIFVwc3RyZWFtIGNvbW1pdCA0Nzg5YTIxODgwNDg4 MDQ4MTA1NTkwMDQ5ZmM0MWE5OWY1M2Q1NjVkIF0KCldoZW4gcWV0aF9sMl9zZXRfbWFjX2FkZHJl c3MoKSBmaW5kcyB0aGUgY2FyZCBpbiBhIG5vbi1yZWFjaGFibGUgc3RhdGUsCml0IG1lcmVseSBj b3BpZXMgdGhlIG5ldyBNQUMgYWRkcmVzcyBpbnRvIGRldi0+ZGV2X2FkZHIgc28gdGhhdApfX3Fl dGhfbDJfc2V0X29ubGluZSgpIGNhbiBsYXRlciByZWdpc3RlciBpdCB3aXRoIHRoZSBIVy4KCkJ1 dCBfX3FldGhfbDJfc2V0X29ubGluZSgpIG1heSB2ZXJ5IHdlbGwgYmUgcnVubmluZyBjb25jdXJy ZW50bHksIHNvIHdlCmNhbid0IHRydXN0IHRoZSBjYXJkIHN0YXRlIHdpdGhvdXQgYXBwcm9wcmlh dGUgbG9ja2luZzoKSWYgdGhlIG9ubGluZSBzZXF1ZW5jZSBpcyBwYXN0IHRoZSBwb2ludCB3aGVy ZSBpdCByZWdpc3RlcnMKZGV2LT5kZXZfYWRkciAoYnV0IG5vdCB5ZXQgaW4gU09GVFNFVFVQIHN0 YXRlKSwgYW55IGFkZHJlc3MgY2hhbmdlIG5lZWRzCnRvIGJlIHByb3Blcmx5IHByb2dyYW1tZWQg aW50byB0aGUgSFcuIE90aGVyd2lzZSB0aGUgbmV0ZGV2aWNlIGVuZHMgdXAKd2l0aCBhIGRpZmZl cmVudCBNQUMgYWRkcmVzcyB0aGFuIHdoYXQncyBzZXQgaW4gdGhlIEhXLCBhbmQgaW5ib3VuZAp0 cmFmZmljIGlzIG5vdCBmb3J3YXJkZWQgYXMgZXhwZWN0ZWQuCgpUaGlzIGlzIG1vc3QgbGlrZWx5 IHRvIG9jY3VyIGZvciBPU0QgaW4gTFBBUiwgd2hlcmUKY29tbWl0IDIxYjE3MDJhZjEyZSAoInMz OTAvcWV0aDogaW1wcm92ZSBmYWxsYmFjayB0byByYW5kb20gTUFDIGFkZHJlc3MiKQpub3cgdHJp Z2dlcnMgZWcuIHN5c3RlbWQgdG8gaW1tZWRpYXRlbHkgY2hhbmdlIHRoZSBNQUMgd2hlbiB0aGUg bmV0ZGV2aWNlCmlzIHJlZ2lzdGVyZWQgd2l0aCBhIE5FVF9BRERSX1JBTkRPTSBhZGRyZXNzLgoK Rml4ZXM6IGJjYWNmY2JjODJiNCAoInMzOTAvcWV0aDogZml4IE1BQyBhZGRyZXNzIHVwZGF0ZSBz ZXF1ZW5jZSIpClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBXaWVkbWFubiA8andpQGxpbnV4LmlibS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJfbWFpbi5jIHwgMTUgKysrKysrKysrKystLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJfbWFpbi5jIGIvZHJpdmVycy9zMzkwL25l dC9xZXRoX2wyX21haW4uYwppbmRleCBlZWE3MDAxMDUxZDEuLjE2ZGM4YjgzY2E2ZiAxMDA2NDQK LS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wyX21haW4uYworKysgYi9kcml2ZXJzL3MzOTAv bmV0L3FldGhfbDJfbWFpbi5jCkBAIC01MjMsMjcgKzUyMywzNCBAQCBzdGF0aWMgaW50IHFldGhf bDJfc2V0X21hY19hZGRyZXNzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHZvaWQgKnApCiAJCXJl dHVybiAtRVJFU1RBUlRTWVM7CiAJfQogCisJLyogYXZvaWQgcmFjaW5nIGFnYWluc3QgY29uY3Vy cmVudCBzdGF0ZSBjaGFuZ2U6ICovCisJaWYgKCFtdXRleF90cnlsb2NrKCZjYXJkLT5jb25mX211 dGV4KSkKKwkJcmV0dXJuIC1FQUdBSU47CisKIAlpZiAoIXFldGhfY2FyZF9od19pc19yZWFjaGFi bGUoY2FyZCkpIHsKIAkJZXRoZXJfYWRkcl9jb3B5KGRldi0+ZGV2X2FkZHIsIGFkZHItPnNhX2Rh dGEpOwotCQlyZXR1cm4gMDsKKwkJZ290byBvdXRfdW5sb2NrOwogCX0KIAogCS8qIGRvbid0IHJl Z2lzdGVyIHRoZSBzYW1lIGFkZHJlc3MgdHdpY2UgKi8KIAlpZiAoZXRoZXJfYWRkcl9lcXVhbF82 NGJpdHMoZGV2LT5kZXZfYWRkciwgYWRkci0+c2FfZGF0YSkgJiYKIAkgICAgKGNhcmQtPmluZm8u bWFjX2JpdHMgJiBRRVRIX0xBWUVSMl9NQUNfUkVHSVNURVJFRCkpCi0JCXJldHVybiAwOworCQln b3RvIG91dF91bmxvY2s7CiAKIAkvKiBhZGQgdGhlIG5ldyBhZGRyZXNzLCBzd2l0Y2ggb3Zlciwg ZHJvcCB0aGUgb2xkICovCiAJcmMgPSBxZXRoX2wyX3NlbmRfc2V0bWFjKGNhcmQsIGFkZHItPnNh X2RhdGEpOwogCWlmIChyYykKLQkJcmV0dXJuIHJjOworCQlnb3RvIG91dF91bmxvY2s7CiAJZXRo ZXJfYWRkcl9jb3B5KG9sZF9hZGRyLCBkZXYtPmRldl9hZGRyKTsKIAlldGhlcl9hZGRyX2NvcHko ZGV2LT5kZXZfYWRkciwgYWRkci0+c2FfZGF0YSk7CiAKIAlpZiAoY2FyZC0+aW5mby5tYWNfYml0 cyAmIFFFVEhfTEFZRVIyX01BQ19SRUdJU1RFUkVEKQogCQlxZXRoX2wyX3JlbW92ZV9tYWMoY2Fy ZCwgb2xkX2FkZHIpOwogCWNhcmQtPmluZm8ubWFjX2JpdHMgfD0gUUVUSF9MQVlFUjJfTUFDX1JF R0lTVEVSRUQ7Ci0JcmV0dXJuIDA7CisKK291dF91bmxvY2s6CisJbXV0ZXhfdW5sb2NrKCZjYXJk LT5jb25mX211dGV4KTsKKwlyZXR1cm4gcmM7CiB9CiAKIHN0YXRpYyB2b2lkIHFldGhfcHJvbWlz Y190b19icmlkZ2Uoc3RydWN0IHFldGhfY2FyZCAqY2FyZCkKLS0gCjIuMTcuMQoKCkZyb20gZTUx ZDUyMTQ3ZGI2NGE4YTY3NWE1NzcxMDlhM2E0MmI4MDU0OTBkZSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQmVydCBLZW53YXJkIDxia2Vud2FyZEBzb2xhcmZsYXJlLmNvbT4KRGF0ZTog RnJpLCAyOSBKdW4gMjAxOCAxNjoyOToyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggNTIvNTNdIHNm YzogY29ycmVjdGx5IGluaXRpYWxpc2UgZmlsdGVyIHJ3c2VtIGZvciBmYXJjaAoKWyBVcHN0cmVh bSBjb21taXQgY2FmYjM5NjAwZTdhNzMyNjMxMjJhMGUyZGIwNTJkNjkxNjg2Mzc4ZiBdCgpGaXhl czogZmM3YTZjMjg3ZmYzICgic2ZjOiB1c2UgYSBzZW1hcGhvcmUgdG8gbG9jayBmYXJjaCBmaWx0 ZXJzIHRvbyIpClN1Z2dlc3RlZC1ieTogSm9zZXBoIEtvcnR5IDxqb2Uua29ydHlAY29uY3VycmVu dC1ydC5jb20+ClNpZ25lZC1vZmYtYnk6IEJlcnQgS2Vud2FyZCA8YmtlbndhcmRAc29sYXJmbGFy ZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFyY2guYyB8IDEgKwogMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv c2ZjL2ZhcmNoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFyY2guYwppbmRleCBjNzJh ZGY4YjUyZWEuLjkxNjVlMmIwYzU5MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv c2ZjL2ZhcmNoLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhcmNoLmMKQEAgLTI3 OTQsNiArMjc5NCw3IEBAIGludCBlZnhfZmFyY2hfZmlsdGVyX3RhYmxlX3Byb2JlKHN0cnVjdCBl ZnhfbmljICplZngpCiAJaWYgKCFzdGF0ZSkKIAkJcmV0dXJuIC1FTk9NRU07CiAJZWZ4LT5maWx0 ZXJfc3RhdGUgPSBzdGF0ZTsKKwlpbml0X3J3c2VtKCZzdGF0ZS0+bG9jayk7CiAKIAl0YWJsZSA9 ICZzdGF0ZS0+dGFibGVbRUZYX0ZBUkNIX0ZJTFRFUl9UQUJMRV9SWF9JUF07CiAJdGFibGUtPmlk ID0gRUZYX0ZBUkNIX0ZJTFRFUl9UQUJMRV9SWF9JUDsKLS0gCjIuMTcuMQoKCkZyb20gODJjMDJi NzFlNWQ5NTYzMGFmZGI2YjRkOTM2YmQzNGZlMGYxN2ZkOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogSmVzcGVyIERhbmdhYXJkIEJyb3VlciA8YnJvdWVyQHJlZGhhdC5jb20+CkRhdGU6 IFR1ZSwgMjYgSnVuIDIwMTggMTc6Mzk6NTggKzAyMDAKU3ViamVjdDogW1BBVENIIDUzLzUzXSB2 aXJ0aW9fbmV0OiBzcGxpdCBYRFBfVFgga2ljayBhbmQgWERQX1JFRElSRUNUIG1hcAogZmx1c2hp bmcKClsgVXBzdHJlYW0gY29tbWl0IDI0NzFjNzVlZmVkMzI1Mjk2OThjMjZkYTQ5OTk1NGYwMjUz Y2I0MDEgXQoKVGhlIGRyaXZlciB3YXMgY29tYmluaW5nIFhEUF9UWCB2aXJ0cXVldWVfa2ljayBh bmQgWERQX1JFRElSRUNUCm1hcCBmbHVzaGluZyAoeGRwX2RvX2ZsdXNoX21hcCkuICBUaGlzIGlz IHN1Ym9wdGltYWwsIHRoZXNlIHR3bwpmbHVzaCBvcGVyYXRpb25zIHNob3VsZCBiZSBrZXB0IHNl cGFyYXRlLgoKVGhlIHN1Ym9wdGltYWwgYmVoYXZpb3Igd2FzIGludHJvZHVjZWQgaW4gY29tbWl0 IDkyNjdjNDMwYzZiNgooInZpcnRpby1uZXQ6IGFkZCBtaXNzaW5nIHZpcnRxdWV1ZSBraWNrIHdo ZW4gZmx1c2hpbmcgcGFja2V0cyIpLgoKRml4ZXM6IDkyNjdjNDMwYzZiNiAoInZpcnRpby1uZXQ6 IGFkZCBtaXNzaW5nIHZpcnRxdWV1ZSBraWNrIHdoZW4gZmx1c2hpbmcgcGFja2V0cyIpClNpZ25l ZC1vZmYtYnk6IEplc3BlciBEYW5nYWFyZCBCcm91ZXIgPGJyb3VlckByZWRoYXQuY29tPgpBY2tl ZC1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3ZpcnRp b19uZXQuYyB8IDMwICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDE5IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3ZpcnRpb19uZXQuYyBiL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYwppbmRleCA4Yzcy MDc1MzUxNzkuLjExYTM5MTVlOTJlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdmlydGlvX25l dC5jCisrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYwpAQCAtNTAsNiArNTAsMTAgQEAgbW9k dWxlX3BhcmFtKG5hcGlfdHgsIGJvb2wsIDA2NDQpOwogLyogQW1vdW50IG9mIFhEUCBoZWFkcm9v bSB0byBwcmVwZW5kIHRvIHBhY2tldHMgZm9yIHVzZSBieSB4ZHBfYWRqdXN0X2hlYWQgKi8KICNk ZWZpbmUgVklSVElPX1hEUF9IRUFEUk9PTSAyNTYKIAorLyogU2VwYXJhdGluZyB0d28gdHlwZXMg b2YgWERQIHhtaXQgKi8KKyNkZWZpbmUgVklSVElPX1hEUF9UWAkJQklUKDApCisjZGVmaW5lIFZJ UlRJT19YRFBfUkVESVIJQklUKDEpCisKIC8qIFJYIHBhY2tldCBzaXplIEVXTUEuIFRoZSBhdmVy YWdlIHBhY2tldCBzaXplIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBwYWNrZXQKICAqIGJ1ZmZl ciBzaXplIHdoZW4gcmVmaWxsaW5nIFJYIHJpbmdzLiBBcyB0aGUgZW50aXJlIFJYIHJpbmcgbWF5 IGJlIHJlZmlsbGVkCiAgKiBhdCBvbmNlLCB0aGUgd2VpZ2h0IGlzIGNob3NlbiBzbyB0aGF0IHRo ZSBFV01BIHdpbGwgYmUgaW5zZW5zaXRpdmUgdG8gc2hvcnQtCkBAIC01NDcsNyArNTUxLDcgQEAg c3RhdGljIHN0cnVjdCBza19idWZmICpyZWNlaXZlX3NtYWxsKHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYsCiAJCQkJICAgICBzdHJ1Y3QgcmVjZWl2ZV9xdWV1ZSAqcnEsCiAJCQkJICAgICB2b2lkICpi dWYsIHZvaWQgKmN0eCwKIAkJCQkgICAgIHVuc2lnbmVkIGludCBsZW4sCi0JCQkJICAgICBib29s ICp4ZHBfeG1pdCkKKwkJCQkgICAgIHVuc2lnbmVkIGludCAqeGRwX3htaXQpCiB7CiAJc3RydWN0 IHNrX2J1ZmYgKnNrYjsKIAlzdHJ1Y3QgYnBmX3Byb2cgKnhkcF9wcm9nOwpAQCAtNjE1LDE0ICs2 MTksMTQgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpyZWNlaXZlX3NtYWxsKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsCiAJCQkJdHJhY2VfeGRwX2V4Y2VwdGlvbih2aS0+ZGV2LCB4ZHBfcHJvZywg YWN0KTsKIAkJCQlnb3RvIGVycl94ZHA7CiAJCQl9Ci0JCQkqeGRwX3htaXQgPSB0cnVlOworCQkJ KnhkcF94bWl0IHw9IFZJUlRJT19YRFBfVFg7CiAJCQlyY3VfcmVhZF91bmxvY2soKTsKIAkJCWdv dG8geGRwX3htaXQ7CiAJCWNhc2UgWERQX1JFRElSRUNUOgogCQkJZXJyID0geGRwX2RvX3JlZGly ZWN0KGRldiwgJnhkcCwgeGRwX3Byb2cpOwogCQkJaWYgKGVycikKIAkJCQlnb3RvIGVycl94ZHA7 Ci0JCQkqeGRwX3htaXQgPSB0cnVlOworCQkJKnhkcF94bWl0IHw9IFZJUlRJT19YRFBfUkVESVI7 CiAJCQlyY3VfcmVhZF91bmxvY2soKTsKIAkJCWdvdG8geGRwX3htaXQ7CiAJCWRlZmF1bHQ6CkBA IC02ODQsNyArNjg4LDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpyZWNlaXZlX21lcmdlYWJs ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQkJCQkgdm9pZCAqYnVmLAogCQkJCQkgdm9pZCAq Y3R4LAogCQkJCQkgdW5zaWduZWQgaW50IGxlbiwKLQkJCQkJIGJvb2wgKnhkcF94bWl0KQorCQkJ CQkgdW5zaWduZWQgaW50ICp4ZHBfeG1pdCkKIHsKIAlzdHJ1Y3QgdmlydGlvX25ldF9oZHJfbXJn X3J4YnVmICpoZHIgPSBidWY7CiAJdTE2IG51bV9idWYgPSB2aXJ0aW8xNl90b19jcHUodmktPnZk ZXYsIGhkci0+bnVtX2J1ZmZlcnMpOwpAQCAtNzcyLDcgKzc3Niw3IEBAIHN0YXRpYyBzdHJ1Y3Qg c2tfYnVmZiAqcmVjZWl2ZV9tZXJnZWFibGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCQkJ cHV0X3BhZ2UoeGRwX3BhZ2UpOwogCQkJCWdvdG8gZXJyX3hkcDsKIAkJCX0KLQkJCSp4ZHBfeG1p dCA9IHRydWU7CisJCQkqeGRwX3htaXQgfD0gVklSVElPX1hEUF9SRURJUjsKIAkJCWlmICh1bmxp a2VseSh4ZHBfcGFnZSAhPSBwYWdlKSkKIAkJCQlwdXRfcGFnZShwYWdlKTsKIAkJCXJjdV9yZWFk X3VubG9jaygpOwpAQCAtNzg0LDcgKzc4OCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqcmVj ZWl2ZV9tZXJnZWFibGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCQkJcHV0X3BhZ2UoeGRw X3BhZ2UpOwogCQkJCWdvdG8gZXJyX3hkcDsKIAkJCX0KLQkJCSp4ZHBfeG1pdCA9IHRydWU7CisJ CQkqeGRwX3htaXQgfD0gVklSVElPX1hEUF9UWDsKIAkJCWlmICh1bmxpa2VseSh4ZHBfcGFnZSAh PSBwYWdlKSkKIAkJCQlwdXRfcGFnZShwYWdlKTsKIAkJCXJjdV9yZWFkX3VubG9jaygpOwpAQCAt ODkzLDcgKzg5Nyw4IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqcmVjZWl2ZV9tZXJnZWFibGUo c3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIH0KIAogc3RhdGljIGludCByZWNlaXZlX2J1ZihzdHJ1 Y3QgdmlydG5ldF9pbmZvICp2aSwgc3RydWN0IHJlY2VpdmVfcXVldWUgKnJxLAotCQkgICAgICAg dm9pZCAqYnVmLCB1bnNpZ25lZCBpbnQgbGVuLCB2b2lkICoqY3R4LCBib29sICp4ZHBfeG1pdCkK KwkJICAgICAgIHZvaWQgKmJ1ZiwgdW5zaWduZWQgaW50IGxlbiwgdm9pZCAqKmN0eCwKKwkJICAg ICAgIHVuc2lnbmVkIGludCAqeGRwX3htaXQpCiB7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9 IHZpLT5kZXY7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYjsKQEAgLTExODYsNyArMTE5MSw4IEBAIHN0 YXRpYyB2b2lkIHJlZmlsbF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAl9CiB9CiAK LXN0YXRpYyBpbnQgdmlydG5ldF9yZWNlaXZlKHN0cnVjdCByZWNlaXZlX3F1ZXVlICpycSwgaW50 IGJ1ZGdldCwgYm9vbCAqeGRwX3htaXQpCitzdGF0aWMgaW50IHZpcnRuZXRfcmVjZWl2ZShzdHJ1 Y3QgcmVjZWl2ZV9xdWV1ZSAqcnEsIGludCBidWRnZXQsCisJCQkgICB1bnNpZ25lZCBpbnQgKnhk cF94bWl0KQogewogCXN0cnVjdCB2aXJ0bmV0X2luZm8gKnZpID0gcnEtPnZxLT52ZGV2LT5wcml2 OwogCXVuc2lnbmVkIGludCBsZW4sIHJlY2VpdmVkID0gMCwgYnl0ZXMgPSAwOwpAQCAtMTI3NSw3 ICsxMjgxLDcgQEAgc3RhdGljIGludCB2aXJ0bmV0X3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpu YXBpLCBpbnQgYnVkZ2V0KQogCXN0cnVjdCB2aXJ0bmV0X2luZm8gKnZpID0gcnEtPnZxLT52ZGV2 LT5wcml2OwogCXN0cnVjdCBzZW5kX3F1ZXVlICpzcTsKIAl1bnNpZ25lZCBpbnQgcmVjZWl2ZWQs IHFwOwotCWJvb2wgeGRwX3htaXQgPSBmYWxzZTsKKwl1bnNpZ25lZCBpbnQgeGRwX3htaXQgPSAw OwogCiAJdmlydG5ldF9wb2xsX2NsZWFudHgocnEpOwogCkBAIC0xMjg1LDEyICsxMjkxLDE0IEBA IHN0YXRpYyBpbnQgdmlydG5ldF9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1 ZGdldCkKIAlpZiAocmVjZWl2ZWQgPCBidWRnZXQpCiAJCXZpcnRxdWV1ZV9uYXBpX2NvbXBsZXRl KG5hcGksIHJxLT52cSwgcmVjZWl2ZWQpOwogCi0JaWYgKHhkcF94bWl0KSB7CisJaWYgKHhkcF94 bWl0ICYgVklSVElPX1hEUF9SRURJUikKKwkJeGRwX2RvX2ZsdXNoX21hcCgpOworCisJaWYgKHhk cF94bWl0ICYgVklSVElPX1hEUF9UWCkgewogCQlxcCA9IHZpLT5jdXJyX3F1ZXVlX3BhaXJzIC0g dmktPnhkcF9xdWV1ZV9wYWlycyArCiAJCSAgICAgc21wX3Byb2Nlc3Nvcl9pZCgpOwogCQlzcSA9 ICZ2aS0+c3FbcXBdOwogCQl2aXJ0cXVldWVfa2ljayhzcS0+dnEpOwotCQl4ZHBfZG9fZmx1c2hf bWFwKCk7CiAJfQogCiAJcmV0dXJuIHJlY2VpdmVkOwotLSAKMi4xNy4xCgo= ----Next_Part(Thu_Jul_19_08_35_57_2018_767)----