From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 75014C28CC5 for ; Sat, 8 Jun 2019 23:27:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 11D32214AE for ; Sat, 8 Jun 2019 23:27:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727528AbfFHX12 (ORCPT ); Sat, 8 Jun 2019 19:27:28 -0400 Received: from shards.monkeyblade.net ([23.128.96.9]:33264 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727489AbfFHX12 (ORCPT ); Sat, 8 Jun 2019 19:27:28 -0400 Received: from localhost (unknown [IPv6:2601:601:9f80:35cd::3d5]) (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 6FE72151D7DAC for ; Sat, 8 Jun 2019 16:27:25 -0700 (PDT) Date: Sat, 08 Jun 2019 16:27:22 -0700 (PDT) Message-Id: <20190608.162722.431283354419982623.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Sat_Jun__8_16_27_22_2019_250)--" Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Sat, 08 Jun 2019 16:27:26 -0700 (PDT) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Sat_Jun__8_16_27_22_2019_250)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.19 and v5.2 -stable, respectively. Thank you. ----Next_Part(Sat_Jun__8_16_27_22_2019_250)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_419.mbox" RnJvbSA4MmQ0ZjkzMDBhZTVlZTlmMjZiMTllY2QzZjg3NmMyZTY4OTBmMTlhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0ZW8gQ3JvY2UgPG1jcm9jZUByZWRoYXQuY29tPgpEYXRl OiBUaHUsIDIgTWF5IDIwMTkgMTA6NTE6MDUgKzAyMDAKU3ViamVjdDogW1BBVENIIDAxLzE4XSBj bHNfbWF0Y2hhbGw6IGF2b2lkIHBhbmljIHdoZW4gcmVjZWl2aW5nIGEgcGFja2V0CiBiZWZvcmUg ZmlsdGVyIHNldAoKWyBVcHN0cmVhbSBjb21taXQgMjU0MjYwNDNlYzllMjJiOTBjNzg5NDA3YzI4 ZTQwZjMyYTlkMTk4NSBdCgpXaGVuIGEgbWF0Y2hhbGwgY2xhc3NpZmllciBpcyBhZGRlZCwgdGhl cmUgaXMgYSBzbWFsbCB0aW1lIGludGVydmFsIGluCndoaWNoIHRwLT5yb290IGlzIE5VTEwuIElm IHdlIHJlY2VpdmUgYSBwYWNrZXQgaW4gdGhpcyBzbWFsbCB0aW1lIHNsaWNlCmEgTlVMTCBwb2lu dGVyIGRlcmVmZXJlbmNlIHdpbGwgaGFwcGVuLCBsZWFkaW5nIHRvIGEga2VybmVsIHBhbmljOgoK ICAgICMgdGMgcWRpc2MgcmVwbGFjZSBkZXYgZXRoMCBpbmdyZXNzCiAgICAjIHRjIGZpbHRlciBh ZGQgZGV2IGV0aDAgcGFyZW50IGZmZmY6IG1hdGNoYWxsIGFjdGlvbiBnYWN0IGRyb3AKICAgIFVu YWJsZSB0byBoYW5kbGUga2VybmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBhdCB2aXJ0dWFs IGFkZHJlc3MgMDAwMDAwMDAwMDAwMDAzNAogICAgTWVtIGFib3J0IGluZm86CiAgICAgIEVTUiA9 IDB4OTYwMDAwMDUKICAgICAgRXhjZXB0aW9uIGNsYXNzID0gREFCVCAoY3VycmVudCBFTCksIElM ID0gMzIgYml0cwogICAgICBTRVQgPSAwLCBGblYgPSAwCiAgICAgIEVBID0gMCwgUzFQVFcgPSAw CiAgICBEYXRhIGFib3J0IGluZm86CiAgICAgIElTViA9IDAsIElTUyA9IDB4MDAwMDAwMDUKICAg ICAgQ00gPSAwLCBXblIgPSAwCiAgICB1c2VyIHBndGFibGU6IDRrIHBhZ2VzLCAzOS1iaXQgVkFz LCBwZ2RwID0gMDAwMDAwMDBhNjIzZDUzMAogICAgWzAwMDAwMDAwMDAwMDAwMzRdIHBnZD0wMDAw MDAwMDAwMDAwMDAwLCBwdWQ9MDAwMDAwMDAwMDAwMDAwMAogICAgSW50ZXJuYWwgZXJyb3I6IE9v cHM6IDk2MDAwMDA1IFsjMV0gU01QCiAgICBNb2R1bGVzIGxpbmtlZCBpbjogY2xzX21hdGNoYWxs IHNjaF9pbmdyZXNzIG5sc19pc284ODU5XzEgbmxzX2NwNDM3IHZmYXQgZmF0IG0yNXA4MCBzcGlf bm9yIG10ZCB4aGNpX3BsYXRfaGNkIHhoY2lfaGNkIHBoeV9nZW5lcmljIHNmcCBtZGlvX2kyYyB1 c2Jjb3JlIGkyY19tdjY0eHh4IG1hcnZlbGwxMGcgbXZwcDIgdXNiX2NvbW1vbiBzcGlfb3Jpb24g bXZtZGlvIGkyY19jb3JlIHNic2FfZ3dkdCBwaHlsaW5rIGlwX3RhYmxlcyB4X3RhYmxlcyBhdXRv ZnM0CiAgICBQcm9jZXNzIGtzb2Z0aXJxZC8wIChwaWQ6IDksIHN0YWNrIGxpbWl0ID0gMHgwMDAw MDAwMDA5ZGU3ZDYyKQogICAgQ1BVOiAwIFBJRDogOSBDb21tOiBrc29mdGlycWQvMCBOb3QgdGFp bnRlZCA1LjEuMC1yYzYgIzIxCiAgICBIYXJkd2FyZSBuYW1lOiBNYXJ2ZWxsIDgwNDAgTUFDQ0hJ QVRPQmluIERvdWJsZS1zaG90IChEVCkKICAgIHBzdGF0ZTogNDAwMDAwMDUgKG5aY3YgZGFpZiAt UEFOIC1VQU8pCiAgICBwYyA6IG1hbGxfY2xhc3NpZnkrMHgyOC8weDc4IFtjbHNfbWF0Y2hhbGxd CiAgICBsciA6IHRjZl9jbGFzc2lmeSsweDc4LzB4MTM4CiAgICBzcCA6IGZmZmZmZjgwMTA5ZGI5 ZDAKICAgIHgyOTogZmZmZmZmODAxMDlkYjlkMCB4Mjg6IGZmZmZmZmM0MjYwNTg4MDAKICAgIHgy NzogMDAwMDAwMDAwMDAwMDAwMCB4MjY6IGZmZmZmZmM0MjViMGRkMDAKICAgIHgyNTogMDAwMDAw MDAyMDAwMDAwMCB4MjQ6IDAwMDAwMDAwMDAwMDAwMDAKICAgIHgyMzogZmZmZmZmODAxMDlkYmFj MCB4MjI6IDAwMDAwMDAwMDAwMDAwMDEKICAgIHgyMTogZmZmZmZmYzQyOGFiNTEwMCB4MjA6IGZm ZmZmZmM0MjViMGRkMDAKICAgIHgxOTogZmZmZmZmODAxMDlkYmFjMCB4MTg6IDAwMDAwMDAwMDAw MDAwMDAKICAgIHgxNzogMDAwMDAwMDAwMDAwMDAwMCB4MTY6IDAwMDAwMDAwMDAwMDAwMDAKICAg IHgxNTogMDAwMDAwMDAwMDAwMDAwMCB4MTQ6IDAwMDAwMDAwMDAwMDAwMDAKICAgIHgxMzogZmZm ZmZmYmYxMDhhZDI4OCB4MTI6IGRlYWQwMDAwMDAwMDAyMDAKICAgIHgxMTogMDAwMDAwMDBmMDAw MDAwMCB4MTA6IDAwMDAwMDAwMDAwMDAwMDEKICAgIHg5IDogZmZmZmZmYmYxMDg5YTIyMCB4OCA6 IDAwMDAwMDAwMDAwMDAwMDEKICAgIHg3IDogZmZmZmZmYmViZmZhYTk1MCB4NiA6IDAwMDAwMDAw MDAwMDAwMDAKICAgIHg1IDogMDAwMDAwNDQyZDZiYTAwMCB4NCA6IDAwMDAwMDAwMDAwMDAwMDAK ICAgIHgzIDogZmZmZmZmODAwODczNWFkOCB4MiA6IGZmZmZmZjgwMTA5ZGJhYzAKICAgIHgxIDog ZmZmZmZmYzQyNWIwZGQwMCB4MCA6IGZmZmZmZjgwMTA1OTIwNzgKICAgIENhbGwgdHJhY2U6CiAg ICAgbWFsbF9jbGFzc2lmeSsweDI4LzB4NzggW2Nsc19tYXRjaGFsbF0KICAgICB0Y2ZfY2xhc3Np ZnkrMHg3OC8weDEzOAogICAgIF9fbmV0aWZfcmVjZWl2ZV9za2JfY29yZSsweDI5Yy8weGEyMAog ICAgIF9fbmV0aWZfcmVjZWl2ZV9za2Jfb25lX2NvcmUrMHgzNC8weDYwCiAgICAgX19uZXRpZl9y ZWNlaXZlX3NrYisweDI4LzB4NzgKICAgICBuZXRpZl9yZWNlaXZlX3NrYl9pbnRlcm5hbCsweDJj LzB4YzAKICAgICBuYXBpX2dyb19yZWNlaXZlKzB4MWEwLzB4MWQ4CiAgICAgbXZwcDJfcG9sbCsw eDkyOC8weGIxOCBbbXZwcDJdCiAgICAgbmV0X3J4X2FjdGlvbisweDEwOC8weDM3OAogICAgIF9f ZG9fc29mdGlycSsweDEyOC8weDMyMAogICAgIHJ1bl9rc29mdGlycWQrMHg0NC8weDYwCiAgICAg c21wYm9vdF90aHJlYWRfZm4rMHgxNjgvMHgxYjAKICAgICBrdGhyZWFkKzB4MTJjLzB4MTMwCiAg ICAgcmV0X2Zyb21fZm9yaysweDEwLzB4MWMKICAgIENvZGU6IGFhMDIwM2YzIGFhMWUwM2UwIGQ1 MDMyMDFmIGY5NDAwNjg0IChiOTQwMzQ4MCkKICAgIC0tLVsgZW5kIHRyYWNlIGZjNzFlMmVmN2I4 YWI1YTUgXS0tLQogICAgS2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6IEZhdGFsIGV4Y2VwdGlv biBpbiBpbnRlcnJ1cHQKICAgIFNNUDogc3RvcHBpbmcgc2Vjb25kYXJ5IENQVXMKICAgIEtlcm5l bCBPZmZzZXQ6IGRpc2FibGVkCiAgICBDUFUgZmVhdHVyZXM6IDB4MDAyLDAwMDAyMDAwCiAgICBN ZW1vcnkgTGltaXQ6IG5vbmUKICAgIFJlYm9vdGluZyBpbiAxIHNlY29uZHMuLgoKRml4IHRoaXMg YnkgYWRkaW5nIGEgTlVMTCBjaGVjayBpbiBtYWxsX2NsYXNzaWZ5KCkuCgpGaXhlczogZWQ3NmY1 ZWRjY2M5ICgibmV0OiBzY2hlZDogcHJvdGVjdCBmaWx0ZXJfY2hhaW4gbGlzdCB3aXRoIGZpbHRl cl9jaGFpbl9sb2NrIG11dGV4IikKU2lnbmVkLW9mZi1ieTogTWF0dGVvIENyb2NlIDxtY3JvY2VA cmVkaGF0LmNvbT4KQWNrZWQtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L3NjaGVkL2Nsc19tYXRjaGFsbC5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGlu c2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvY2xzX21hdGNoYWxsLmMgYi9uZXQv c2NoZWQvY2xzX21hdGNoYWxsLmMKaW5kZXggNjIxYmMxZDViMDU3Li41NzAyOTVhOGJmN2QgMTAw NjQ0Ci0tLSBhL25ldC9zY2hlZC9jbHNfbWF0Y2hhbGwuYworKysgYi9uZXQvc2NoZWQvY2xzX21h dGNoYWxsLmMKQEAgLTMwLDYgKzMwLDkgQEAgc3RhdGljIGludCBtYWxsX2NsYXNzaWZ5KHN0cnVj dCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCB0Y2ZfcHJvdG8gKnRwLAogewogCXN0cnVjdCBj bHNfbWFsbF9oZWFkICpoZWFkID0gcmN1X2RlcmVmZXJlbmNlX2JoKHRwLT5yb290KTsKIAorCWlm ICh1bmxpa2VseSghaGVhZCkpCisJCXJldHVybiAtMTsKKwogCWlmICh0Y19za2lwX3N3KGhlYWQt PmZsYWdzKSkKIAkJcmV0dXJuIC0xOwogCi0tIAoyLjIwLjEKCgpGcm9tIGNhNDJlZTQzZTE4Yjli NTZlZjkwNTVjOGVkMjJkNDBlOTYxOWM5ODIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFZpdmllbiBEaWRlbG90IDx2aXZpZW4uZGlkZWxvdEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMyBK dW4gMjAxOSAxNjo1NzoxMyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMThdIGV0aHRvb2w6IGZp eCBwb3RlbnRpYWwgdXNlcnNwYWNlIGJ1ZmZlciBvdmVyZmxvdwoKWyBVcHN0cmVhbSBjb21taXQg MGVlNGU3NjkzN2Q2OTEyOGE2YTY2ODYxYmEzOTNlYmRjMmZmYzhhMiBdCgpldGh0b29sX2dldF9y ZWdzKCkgYWxsb2NhdGVzIGEgYnVmZmVyIG9mIHNpemUgb3BzLT5nZXRfcmVnc19sZW4oKSwKYW5k IHBhc3MgaXQgdG8gdGhlIGtlcm5lbCBkcml2ZXIgdmlhIG9wcy0+Z2V0X3JlZ3MoKSBmb3IgZmls bGluZy4KClRoZXJlIGlzIG5vIHJlc3RyaWN0aW9uIGFib3V0IHdoYXQgdGhlIGtlcm5lbCBkcml2 ZXJzIGNhbiBvciBjYW5ub3QgZG8Kd2l0aCB0aGUgb3BlbiBldGh0b29sX3JlZ3Mgc3RydWN0dXJl LiBUaGV5IHVzdWFsbHkgc2V0IHJlZ3MtPnZlcnNpb24KYW5kIGlnbm9yZSByZWdzLT5sZW4gb3Ig c2V0IGl0IHRvIHRoZSBzYW1lIHNpemUgYXMgb3BzLT5nZXRfcmVnc19sZW4oKS4KCkJ1dCBpZiB1 c2Vyc3BhY2UgYWxsb2NhdGVzIGEgc21hbGxlciBidWZmZXIgZm9yIHRoZSByZWdpc3RlcnMgZHVt cCwKd2Ugd291bGQgY2F1c2UgYSB1c2Vyc3BhY2UgYnVmZmVyIG92ZXJmbG93IGluIHRoZSBmaW5h bCBjb3B5X3RvX3VzZXIoKQpjYWxsLCB3aGljaCB1c2VzIHRoZSByZWdzLmxlbiB2YWx1ZSBwb3Rl bnRpYWxseSByZXNldCBieSB0aGUgZHJpdmVyLgoKVG8gZml4IHRoaXMsIG1ha2UgdGhpcyBjYXNl IG9idmlvdXMgYW5kIHN0b3JlIHJlZ3MubGVuIGJlZm9yZSBjYWxsaW5nCm9wcy0+Z2V0X3JlZ3Mo KSwgdG8gb25seSBjb3B5IGFzIG11Y2ggZGF0YSBhcyByZXF1ZXN0ZWQgYnkgdXNlcnNwYWNlLAp1 cCB0byB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgb3BzLT5nZXRfcmVnc19sZW4oKS4KCldoaWxlIGF0 IGl0LCByZW1vdmUgdGhlIHJlZHVuZGFudCBjaGVjayBmb3Igbm9uLW51bGwgcmVnYnVmLgoKU2ln bmVkLW9mZi1ieTogVml2aWVuIERpZGVsb3QgPHZpdmllbi5kaWRlbG90QGdtYWlsLmNvbT4KUmV2 aWV3ZWQtYnk6IE1pY2hhbCBLdWJlY2VrIDxta3ViZWNla0BzdXNlLmN6PgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvZXRo dG9vbC5jIHwgNSArKysrLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2V0aHRvb2wuYyBiL25ldC9jb3JlL2V0aHRv b2wuYwppbmRleCA3Y2M5N2Y0M2YxMzguLmRhMGYzZTMwNmYzNSAxMDA2NDQKLS0tIGEvbmV0L2Nv cmUvZXRodG9vbC5jCisrKyBiL25ldC9jb3JlL2V0aHRvb2wuYwpAQCAtMTQzNCwxMyArMTQzNCwx NiBAQCBzdGF0aWMgaW50IGV0aHRvb2xfZ2V0X3JlZ3Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwg Y2hhciBfX3VzZXIgKnVzZXJhZGRyKQogCQkJcmV0dXJuIC1FTk9NRU07CiAJfQogCisJaWYgKHJl Z3MubGVuIDwgcmVnbGVuKQorCQlyZWdsZW4gPSByZWdzLmxlbjsKKwogCW9wcy0+Z2V0X3JlZ3Mo ZGV2LCAmcmVncywgcmVnYnVmKTsKIAogCXJldCA9IC1FRkFVTFQ7CiAJaWYgKGNvcHlfdG9fdXNl cih1c2VyYWRkciwgJnJlZ3MsIHNpemVvZihyZWdzKSkpCiAJCWdvdG8gb3V0OwogCXVzZXJhZGRy ICs9IG9mZnNldG9mKHN0cnVjdCBldGh0b29sX3JlZ3MsIGRhdGEpOwotCWlmIChyZWdidWYgJiYg Y29weV90b191c2VyKHVzZXJhZGRyLCByZWdidWYsIHJlZ3MubGVuKSkKKwlpZiAoY29weV90b191 c2VyKHVzZXJhZGRyLCByZWdidWYsIHJlZ2xlbikpCiAJCWdvdG8gb3V0OwogCXJldCA9IDA7CiAK LS0gCjIuMjAuMQoKCkZyb20gNTgyZTQ2YTI1NTU0NTQ3OGEwZmQxZGZmYTQ5MjJlOWIyYTU4YjY1 YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4 ZHJpdmVyLmNvbT4KRGF0ZTogTW9uLCAzIEp1biAyMDE5IDE2OjMyOjU5IC0wNDAwClN1YmplY3Q6 IFtQQVRDSCAwMy8xOF0gRml4IG1lbW9yeSBsZWFrIGluIHNjdHBfcHJvY2Vzc19pbml0CgpbIFVw c3RyZWFtIGNvbW1pdCAwYThkZDlmNjdjZDBkYTdkYzI4NGY0OGIwMzJjZTAwZGIxYTY4NzkxIF0K CnN5emJvdCBmb3VuZCB0aGUgZm9sbG93aW5nIGxlYWsgaW4gc2N0cF9wcm9jZXNzX2luaXQKQlVH OiBtZW1vcnkgbGVhawp1bnJlZmVyZW5jZWQgb2JqZWN0IDB4ZmZmZjg4ODEwZWY2ODQwMCAoc2l6 ZSAxMDI0KToKICBjb21tICJzeXotZXhlY3V0b3IyNzMiLCBwaWQgNzA0NiwgamlmZmllcyA0Mjk0 OTQ1NTk4IChhZ2UgMjguNzcwcykKICBoZXggZHVtcCAoZmlyc3QgMzIgYnl0ZXMpOgogICAgMWQg ZGUgMjggOGQgZGUgMGIgMWIgZTMgYjUgYzIgZjkgNjggZmQgMWEgOTcgMjUgIC4uKC4uLi4uLi4u aC4uLiUKICAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw ICAuLi4uLi4uLi4uLi4uLi4uCiAgYmFja3RyYWNlOgogICAgWzwwMDAwMDAwMGEwMmNlYmJkPl0g a21lbWxlYWtfYWxsb2NfcmVjdXJzaXZlIGluY2x1ZGUvbGludXgva21lbWxlYWsuaDo1NQpbaW5s aW5lXQogICAgWzwwMDAwMDAwMGEwMmNlYmJkPl0gc2xhYl9wb3N0X2FsbG9jX2hvb2sgbW0vc2xh Yi5oOjQzOSBbaW5saW5lXQogICAgWzwwMDAwMDAwMGEwMmNlYmJkPl0gc2xhYl9hbGxvYyBtbS9z bGFiLmM6MzMyNiBbaW5saW5lXQogICAgWzwwMDAwMDAwMGEwMmNlYmJkPl0gX19kb19rbWFsbG9j IG1tL3NsYWIuYzozNjU4IFtpbmxpbmVdCiAgICBbPDAwMDAwMDAwYTAyY2ViYmQ+XSBfX2ttYWxs b2NfdHJhY2tfY2FsbGVyKzB4MTVkLzB4MmMwIG1tL3NsYWIuYzozNjc1CiAgICBbPDAwMDAwMDAw OWU2MjQ1ZTY+XSBrbWVtZHVwKzB4MjcvMHg2MCBtbS91dGlsLmM6MTE5CiAgICBbPDAwMDAwMDAw ZGZkYzVkMmQ+XSBrbWVtZHVwIGluY2x1ZGUvbGludXgvc3RyaW5nLmg6NDMyIFtpbmxpbmVdCiAg ICBbPDAwMDAwMDAwZGZkYzVkMmQ+XSBzY3RwX3Byb2Nlc3NfaW5pdCsweGE3ZS8weGMyMApuZXQv c2N0cC9zbV9tYWtlX2NodW5rLmM6MjQzNwogICAgWzwwMDAwMDAwMGI1OGI2MmY4Pl0gc2N0cF9j bWRfcHJvY2Vzc19pbml0IG5ldC9zY3RwL3NtX3NpZGVlZmZlY3QuYzo2ODIKW2lubGluZV0KICAg IFs8MDAwMDAwMDBiNThiNjJmOD5dIHNjdHBfY21kX2ludGVycHJldGVyIG5ldC9zY3RwL3NtX3Np ZGVlZmZlY3QuYzoxMzg0CltpbmxpbmVdCiAgICBbPDAwMDAwMDAwYjU4YjYyZjg+XSBzY3RwX3Np ZGVfZWZmZWN0cyBuZXQvc2N0cC9zbV9zaWRlZWZmZWN0LmM6MTE5NApbaW5saW5lXQogICAgWzww MDAwMDAwMGI1OGI2MmY4Pl0gc2N0cF9kb19zbSsweGJkYy8weDFkNjAgbmV0L3NjdHAvc21fc2lk ZWVmZmVjdC5jOjExNjUKICAgIFs8MDAwMDAwMDA0NGUxMWY5Nj5dIHNjdHBfYXNzb2NfYmhfcmN2 KzB4MTNjLzB4MjAwCm5ldC9zY3RwL2Fzc29jaW9sYS5jOjEwNzQKICAgIFs8MDAwMDAwMDBlYzQz ODA0ZD5dIHNjdHBfaW5xX3B1c2grMHg3Zi8weGIwIG5ldC9zY3RwL2lucXVldWUuYzo5NQogICAg WzwwMDAwMDAwMDcyNmFhOTU0Pl0gc2N0cF9iYWNrbG9nX3JjdisweDVlLzB4MmEwIG5ldC9zY3Rw L2lucHV0LmM6MzU0CiAgICBbPDAwMDAwMDAwZDllMjQ5YTg+XSBza19iYWNrbG9nX3JjdiBpbmNs dWRlL25ldC9zb2NrLmg6OTUwIFtpbmxpbmVdCiAgICBbPDAwMDAwMDAwZDllMjQ5YTg+XSBfX3Jl bGVhc2Vfc29jaysweGFiLzB4MTEwIG5ldC9jb3JlL3NvY2suYzoyNDE4CiAgICBbPDAwMDAwMDAw YWNhZTQ0ZmE+XSByZWxlYXNlX3NvY2srMHgzNy8weGQwIG5ldC9jb3JlL3NvY2suYzoyOTM0CiAg ICBbPDAwMDAwMDAwOTYzY2M5YWU+XSBzY3RwX3NlbmRtc2crMHgyYzAvMHg5OTAgbmV0L3NjdHAv c29ja2V0LmM6MjEyMgogICAgWzwwMDAwMDAwMGE3ZmM3NTY1Pl0gaW5ldF9zZW5kbXNnKzB4NjQv MHgxMjAgbmV0L2lwdjQvYWZfaW5ldC5jOjgwMgogICAgWzwwMDAwMDAwMGI3MzJjYmQzPl0gc29j a19zZW5kbXNnX25vc2VjIG5ldC9zb2NrZXQuYzo2NTIgW2lubGluZV0KICAgIFs8MDAwMDAwMDBi NzMyY2JkMz5dIHNvY2tfc2VuZG1zZysweDU0LzB4NzAgbmV0L3NvY2tldC5jOjY3MQogICAgWzww MDAwMDAwMDI3NGM1N2FiPl0gX19fc3lzX3NlbmRtc2crMHgzOTMvMHgzYzAgbmV0L3NvY2tldC5j OjIyOTIKICAgIFs8MDAwMDAwMDA4MjUyYWVkYj5dIF9fc3lzX3NlbmRtc2crMHg4MC8weGYwIG5l dC9zb2NrZXQuYzoyMzMwCiAgICBbPDAwMDAwMDAwZjdiZjIzZDE+XSBfX2RvX3N5c19zZW5kbXNn IG5ldC9zb2NrZXQuYzoyMzM5IFtpbmxpbmVdCiAgICBbPDAwMDAwMDAwZjdiZjIzZDE+XSBfX3Nl X3N5c19zZW5kbXNnIG5ldC9zb2NrZXQuYzoyMzM3IFtpbmxpbmVdCiAgICBbPDAwMDAwMDAwZjdi ZjIzZDE+XSBfX3g2NF9zeXNfc2VuZG1zZysweDIzLzB4MzAgbmV0L3NvY2tldC5jOjIzMzcKICAg IFs8MDAwMDAwMDBhOGI0MTMxZj5dIGRvX3N5c2NhbGxfNjQrMHg3Ni8weDFhMCBhcmNoL3g4Ni9l bnRyeS9jb21tb24uYzozCgpUaGUgcHJvYmxlbSB3YXMgdGhhdCB0aGUgcGVlci5jb29raWUgdmFs dWUgcG9pbnRzIHRvIGFuIHNrYiBhbGxvY2F0ZWQKYXJlYSBvbiB0aGUgZmlyc3QgcGFzcyB0aHJv dWdoIHRoaXMgZnVuY3Rpb24sIGF0IHdoaWNoIHBvaW50IGl0IGlzCm92ZXJ3cml0dGVuIHdpdGgg YSBoZWFwIGFsbG9jYXRlZCB2YWx1ZSwgYnV0IGluIGNlcnRhaW4gY2FzZXMsIHdoZXJlIGEKQ09P S0lFX0VDSE8gY2h1bmsgaXMgaW5jbHVkZWQgaW4gdGhlIHBhY2tldCwgYSBzZWNvbmQgcGFzcyB0 aHJvdWdoCnNjdHBfcHJvY2Vzc19pbml0IGlzIG1hZGUsIHdoZXJlIHRoZSBjb29raWUgdmFsdWUg aXMgcmUtYWxsb2NhdGVkLApsZWFraW5nIHRoZSBmaXJzdCBhbGxvY2F0aW9uLgoKRml4IGlzIHRv IGFsd2F5cyBhbGxvY2F0ZSB0aGUgY29va2llIHZhbHVlLCBhbmQgZnJlZSBpdCB3aGVuIHdlIGFy ZSBkb25lCnVzaW5nIGl0LgoKU2lnbmVkLW9mZi1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4 ZHJpdmVyLmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCtmN2U5MTUzYjAzN2VhYzliMWRmOEBzeXpr YWxsZXIuYXBwc3BvdG1haWwuY29tCkNDOiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vs by5sZWl0bmVyQGdtYWlsLmNvbT4KQ0M6ICJEYXZpZCBTLiBNaWxsZXIiIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgpDQzogbmV0ZGV2QHZnZXIua2VybmVsLm9yZwpBY2tlZC1ieTogTWFyY2VsbyBSaWNh cmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9zbV9tYWtl X2NodW5rLmMgfCAxMyArKystLS0tLS0tLS0tCiBuZXQvc2N0cC9zbV9zaWRlZWZmZWN0LmMgfCAg NSArKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX21ha2VfY2h1bmsuYyBiL25ldC9zY3RwL3NtX21h a2VfY2h1bmsuYwppbmRleCBkMDVjNTc2NjRlMzYuLmFlNjVhMWNmYTU5NiAxMDA2NDQKLS0tIGEv bmV0L3NjdHAvc21fbWFrZV9jaHVuay5jCisrKyBiL25ldC9zY3RwL3NtX21ha2VfY2h1bmsuYwpA QCAtMjMyOSw3ICsyMzI5LDYgQEAgaW50IHNjdHBfcHJvY2Vzc19pbml0KHN0cnVjdCBzY3RwX2Fz c29jaWF0aW9uICphc29jLCBzdHJ1Y3Qgc2N0cF9jaHVuayAqY2h1bmssCiAJdW5pb24gc2N0cF9h ZGRyIGFkZHI7CiAJc3RydWN0IHNjdHBfYWYgKmFmOwogCWludCBzcmNfbWF0Y2ggPSAwOwotCWNo YXIgKmNvb2tpZTsKIAogCS8qIFdlIG11c3QgaW5jbHVkZSB0aGUgYWRkcmVzcyB0aGF0IHRoZSBJ TklUIHBhY2tldCBjYW1lIGZyb20uCiAJICogVGhpcyBpcyB0aGUgb25seSBhZGRyZXNzIHRoYXQg bWF0dGVycyBmb3IgYW4gSU5JVCBwYWNrZXQuCkBAIC0yNDMzLDE0ICsyNDMyLDYgQEAgaW50IHNj dHBfcHJvY2Vzc19pbml0KHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLCBzdHJ1Y3Qgc2N0 cF9jaHVuayAqY2h1bmssCiAJLyogUGVlciBSd25kICAgOiBDdXJyZW50IGNhbGN1bGF0ZWQgdmFs dWUgb2YgdGhlIHBlZXIncyByd25kLiAgKi8KIAlhc29jLT5wZWVyLnJ3bmQgPSBhc29jLT5wZWVy LmkuYV9yd25kOwogCi0JLyogQ29weSBjb29raWUgaW4gY2FzZSB3ZSBuZWVkIHRvIHJlc2VuZCBD T09LSUUtRUNITy4gKi8KLQljb29raWUgPSBhc29jLT5wZWVyLmNvb2tpZTsKLQlpZiAoY29va2ll KSB7Ci0JCWFzb2MtPnBlZXIuY29va2llID0ga21lbWR1cChjb29raWUsIGFzb2MtPnBlZXIuY29v a2llX2xlbiwgZ2ZwKTsKLQkJaWYgKCFhc29jLT5wZWVyLmNvb2tpZSkKLQkJCWdvdG8gY2xlYW5f dXA7Ci0JfQotCiAJLyogUkZDIDI5NjAgNy4yLjEgVGhlIGluaXRpYWwgdmFsdWUgb2Ygc3N0aHJl c2ggTUFZIGJlIGFyYml0cmFyaWx5CiAJICogaGlnaCAoZm9yIGV4YW1wbGUsIGltcGxlbWVudGF0 aW9ucyBNQVkgdXNlIHRoZSBzaXplIG9mIHRoZSByZWNlaXZlcgogCSAqIGFkdmVydGlzZWQgd2lu ZG93KS4KQEAgLTI2MDksNyArMjYwMCw5IEBAIHN0YXRpYyBpbnQgc2N0cF9wcm9jZXNzX3BhcmFt KHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLAogCWNhc2UgU0NUUF9QQVJBTV9TVEFURV9D T09LSUU6CiAJCWFzb2MtPnBlZXIuY29va2llX2xlbiA9CiAJCQludG9ocyhwYXJhbS5wLT5sZW5n dGgpIC0gc2l6ZW9mKHN0cnVjdCBzY3RwX3BhcmFtaGRyKTsKLQkJYXNvYy0+cGVlci5jb29raWUg PSBwYXJhbS5jb29raWUtPmJvZHk7CisJCWFzb2MtPnBlZXIuY29va2llID0ga21lbWR1cChwYXJh bS5jb29raWUtPmJvZHksIGFzb2MtPnBlZXIuY29va2llX2xlbiwgZ2ZwKTsKKwkJaWYgKCFhc29j LT5wZWVyLmNvb2tpZSkKKwkJCXJldHZhbCA9IDA7CiAJCWJyZWFrOwogCiAJY2FzZSBTQ1RQX1BB UkFNX0hFQVJUQkVBVF9JTkZPOgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc21fc2lkZWVmZmVjdC5j IGIvbmV0L3NjdHAvc21fc2lkZWVmZmVjdC5jCmluZGV4IDQ4ZmU4ZjAxMjY1Zi4uMzEzMWI0MTU0 Yzc0IDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zbV9zaWRlZWZmZWN0LmMKKysrIGIvbmV0L3NjdHAv c21fc2lkZWVmZmVjdC5jCkBAIC04OTgsNiArODk4LDExIEBAIHN0YXRpYyB2b2lkIHNjdHBfY21k X25ld19zdGF0ZShzdHJ1Y3Qgc2N0cF9jbWRfc2VxICpjbWRzLAogCQkJCQkJYXNvYy0+cnRvX2lu aXRpYWw7CiAJfQogCisJaWYgKHNjdHBfc3RhdGUoYXNvYywgRVNUQUJMSVNIRUQpKSB7CisJCWtm cmVlKGFzb2MtPnBlZXIuY29va2llKTsKKwkJYXNvYy0+cGVlci5jb29raWUgPSBOVUxMOworCX0K KwogCWlmIChzY3RwX3N0YXRlKGFzb2MsIEVTVEFCTElTSEVEKSB8fAogCSAgICBzY3RwX3N0YXRl KGFzb2MsIENMT1NFRCkgfHwKIAkgICAgc2N0cF9zdGF0ZShhc29jLCBTSFVURE9XTl9SRUNFSVZF RCkpIHsKLS0gCjIuMjAuMQoKCkZyb20gYjQzZjFmOWQ3ZjAzYzczNWJmZmNhM2MzOTFkN2NhYjg4 ZWY5ZjJjNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54 aW5AZ21haWwuY29tPgpEYXRlOiBTdW4sIDIgSnVuIDIwMTkgMTk6MTA6MjQgKzA4MDAKU3ViamVj dDogW1BBVENIIDA0LzE4XSBpcHY0OiBub3QgZG8gY2FjaGUgZm9yIGxvY2FsIGRlbGl2ZXJ5IGlm IGJjX2ZvcndhcmRpbmcKIGlzIGVuYWJsZWQKClsgVXBzdHJlYW0gY29tbWl0IDBhOTA0NzhiOTNh NDZiZGNkNTZiYTMzYzM3NTY2YTk5M2U0NTVkNTQgXQoKV2l0aCB0aGUgdG9wbzoKCiAgICBoMSAt LS18IHJwMSAgICAgICAgICAgIHwKICAgICAgICAgIHwgICAgIHJvdXRlICBycDMgfC0tLSBoMyAo MTkyLjE2OC4yMDAuMSkKICAgIGgyIC0tLXwgcnAyICAgICAgICAgICAgfAoKSWYgcnAxIGJjX2Zv cndhcmRpbmcgaXMgc2V0IHdoaWxlIHJwMiBiY19mb3J3YXJkaW5nIGlzIG5vdCwgYWZ0ZXIKZG9p bmcgInBpbmcgMTkyLjE2OC4yMDAuMjU1IiBvbiBoMSwgdGhlbiBwaW5nIDE5Mi4xNjguMjAwLjI1 NSBvbgpoMiwgYW5kIHRoZSBwYWNrZXRzIGNhbiBzdGlsbCBiZSBmb3J3YXJlZC4KClRoaXMgaXNz dWUgd2FzIGNhdXNlZCBieSB0aGUgaW5wdXQgcm91dGUgY2FjaGUuIEl0IHNob3VsZCBvbmx5IGRv CnRoZSBjYWNoZSBmb3IgZWl0aGVyIGJjIGZvcndhcmRpbmcgb3IgbG9jYWwgZGVsaXZlcnkuIE90 aGVyd2lzZSwKbG9jYWwgZGVsaXZlcnkgY2FuIHVzZSB0aGUgcm91dGUgY2FjaGUgZm9yIGJjIGZv cndhcmRpbmcgb2Ygb3RoZXIKaW50ZXJmYWNlcy4KClRoaXMgcGF0Y2ggaXMgdG8gZml4IGl0IGJ5 IG5vdCBkb2luZyBjYWNoZSBmb3IgbG9jYWwgZGVsaXZlcnkgaWYKYWxsLmJjX2ZvcndhcmRpbmcg aXMgZW5hYmxlZC4KCk5vdGUgdGhhdCB3ZSBkb24ndCBmaXggaXQgYnkgY2hlY2tpbmcgcm91dGUg Y2FjaGUgbG9jYWwgZmxhZyBhZnRlcgpydF9jYWNoZV92YWxpZCgpIGluICJsb2NhbF9pbnB1dDoi IGFuZCAiaXBfbWtyb3V0ZV9pbnB1dCIsIGFzIHRoZQpjb21tb24gcm91dGUgY29kZSBzaG91bGRu J3QgYmUgdG91Y2hlZCBmb3IgYmNfZm9yd2FyZGluZy4KCkZpeGVzOiA1Y2JmNzc3Y2ZkZjYgKCJy b3V0ZTogYWRkIHN1cHBvcnQgZm9yIGRpcmVjdGVkIGJyb2FkY2FzdCBmb3J3YXJkaW5nIikKUmVw b3J0ZWQtYnk6IEppYW5saW4gU2hpIDxqaXNoaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBY aW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9yb3V0ZS5jIHwgMjIgKysr KysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDEx IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3JvdXRlLmMgYi9uZXQvaXB2NC9y b3V0ZS5jCmluZGV4IDQwYmYxOWY3YWUxYS4uMjMyNTgxYzE0MGEwIDEwMDY0NAotLS0gYS9uZXQv aXB2NC9yb3V0ZS5jCisrKyBiL25ldC9pcHY0L3JvdXRlLmMKQEAgLTE5NjAsNyArMTk2MCw3IEBA IHN0YXRpYyBpbnQgaXBfcm91dGVfaW5wdXRfc2xvdyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2Jl MzIgZGFkZHIsIF9fYmUzMiBzYWRkciwKIAl1MzIJCWl0YWcgPSAwOwogCXN0cnVjdCBydGFibGUJ KnJ0aDsKIAlzdHJ1Y3QgZmxvd2k0CWZsNDsKLQlib29sIGRvX2NhY2hlOworCWJvb2wgZG9fY2Fj aGUgPSB0cnVlOwogCiAJLyogSVAgb24gdGhpcyBkZXZpY2UgaXMgZGlzYWJsZWQuICovCiAKQEAg LTIwMzcsNiArMjAzNyw5IEBAIHN0YXRpYyBpbnQgaXBfcm91dGVfaW5wdXRfc2xvdyhzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBfX2JlMzIgZGFkZHIsIF9fYmUzMiBzYWRkciwKIAlpZiAocmVzLT50eXBl ID09IFJUTl9CUk9BRENBU1QpIHsKIAkJaWYgKElOX0RFVl9CRk9SV0FSRChpbl9kZXYpKQogCQkJ Z290byBtYWtlX3JvdXRlOworCQkvKiBub3QgZG8gY2FjaGUgaWYgYmNfZm9yd2FyZGluZyBpcyBl bmFibGVkICovCisJCWlmIChJUFY0X0RFVkNPTkZfQUxMKG5ldCwgQkNfRk9SV0FSRElORykpCisJ CQlkb19jYWNoZSA9IGZhbHNlOwogCQlnb3RvIGJyZF9pbnB1dDsKIAl9CiAKQEAgLTIwNzQsMTYg KzIwNzcsMTMgQEAgb3V0OglyZXR1cm4gZXJyOwogCVJUX0NBQ0hFX1NUQVRfSU5DKGluX2JyZCk7 CiAKIGxvY2FsX2lucHV0OgotCWRvX2NhY2hlID0gZmFsc2U7Ci0JaWYgKHJlcy0+ZmkpIHsKLQkJ aWYgKCFpdGFnKSB7Ci0JCQlydGggPSByY3VfZGVyZWZlcmVuY2UoRklCX1JFU19OSCgqcmVzKS5u aF9ydGhfaW5wdXQpOwotCQkJaWYgKHJ0X2NhY2hlX3ZhbGlkKHJ0aCkpIHsKLQkJCQlza2JfZHN0 X3NldF9ub3JlZihza2IsICZydGgtPmRzdCk7Ci0JCQkJZXJyID0gMDsKLQkJCQlnb3RvIG91dDsK LQkJCX0KLQkJCWRvX2NhY2hlID0gdHJ1ZTsKKwlkb19jYWNoZSAmPSByZXMtPmZpICYmICFpdGFn OworCWlmIChkb19jYWNoZSkgeworCQlydGggPSByY3VfZGVyZWZlcmVuY2UoRklCX1JFU19OSCgq cmVzKS5uaF9ydGhfaW5wdXQpOworCQlpZiAocnRfY2FjaGVfdmFsaWQocnRoKSkgeworCQkJc2ti X2RzdF9zZXRfbm9yZWYoc2tiLCAmcnRoLT5kc3QpOworCQkJZXJyID0gMDsKKwkJCWdvdG8gb3V0 OwogCQl9CiAJfQogCi0tIAoyLjIwLjEKCgpGcm9tIDA2MjNiNTgxNmQ0ZDZiMjA1MTY3MmYxOTFk MjAyNzcxZGUwY2ZkMDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxs dWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAyIEp1biAyMDE5IDE5OjEwOjQ2ICswODAw ClN1YmplY3Q6IFtQQVRDSCAwNS8xOF0gaXB2NjogZml4IHRoZSBjaGVjayBiZWZvcmUgZ2V0dGlu ZyB0aGUgY29va2llIGluCiBydDZfZ2V0X2Nvb2tpZQoKWyBVcHN0cmVhbSBjb21taXQgYjc5OTli MDc3MjZjMTY5NzRiYTljYTNiYjlmZTk4ZWNiZWM1ZjgxYyBdCgpJbiBKaWFubGluJ3MgdGVzdGlu ZywgbmV0cGVyZiB3YXMgYnJva2VuIHdpdGggJ0Nvbm5lY3Rpb24gcmVzZXQgYnkgcGVlcicsCmFz IHRoZSBjb29raWUgY2hlY2sgZmFpbGVkIGluIHJ0Nl9jaGVjaygpIGFuZCBpcDZfZHN0X2NoZWNr KCkgYWx3YXlzCnJldHVybmVkIE5VTEwuCgpJdCdzIGNhdXNlZCBieSBDb21taXQgOTM1MzFjNjc0 MzE1ICgibmV0L2lwdjY6IHNlcGFyYXRlIGhhbmRsaW5nIG9mIEZJQgplbnRyaWVzIGZyb20gZHN0 IGJhc2VkIHJvdXRlcyIpLCB3aGVyZSB0aGUgY29va2llIGNhbiBiZSBnb3Qgb25seSB3aGVuCidj MScoc2VlIGJlbG93KSBmb3Igc2V0dGluZyBkc3RfY29va2llIHdoZXJlYXMgcnQ2X2NoZWNrKCkg aXMgY2FsbGVkCndoZW4gISdjMScgZm9yIGNoZWNraW5nIGRzdF9jb29raWUsIGFzIHdlIGNhbiBz ZWUgaW4gaXA2X2RzdF9jaGVjaygpLgoKU2luY2UgaW4gaXA2X2RzdF9jaGVjaygpIGJvdGggcnQ2 X2RzdF9mcm9tX2NoZWNrKCkgKGMxKSBhbmQgcnQ2X2NoZWNrKCkKKCFjMSkgd2lsbCBjaGVjayB0 aGUgJ2Zyb20nIGNvb2tpZSwgdGhpcyBwYXRjaCBpcyB0byByZW1vdmUgdGhlIGMxIGNoZWNrCmlu IHJ0Nl9nZXRfY29va2llKCksIHNvIHRoYXQgdGhlIGRzdF9jb29raWUgY2FuIGFsd2F5cyBiZSBz ZXQgcHJvcGVybHkuCgpjMToKICAocnQtPnJ0NmlfZmxhZ3MgJiBSVEZfUENQVSB8fCB1bmxpa2Vs eSghbGlzdF9lbXB0eSgmcnQtPnJ0NmlfdW5jYWNoZWQpKSkKCkZpeGVzOiA5MzUzMWM2NzQzMTUg KCJuZXQvaXB2Njogc2VwYXJhdGUgaGFuZGxpbmcgb2YgRklCIGVudHJpZXMgZnJvbSBkc3QgYmFz ZWQgcm91dGVzIikKUmVwb3J0ZWQtYnk6IEppYW5saW4gU2hpIDxqaXNoaUByZWRoYXQuY29tPgpT aWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25l dC9pcDZfZmliLmggfCAzICstLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lwNl9maWIuaCBiL2luY2x1ZGUv bmV0L2lwNl9maWIuaAppbmRleCA5ODNmN2ExYTNmMWQuLjYyYzkzNjIzMGNjOCAxMDA2NDQKLS0t IGEvaW5jbHVkZS9uZXQvaXA2X2ZpYi5oCisrKyBiL2luY2x1ZGUvbmV0L2lwNl9maWIuaApAQCAt MjYwLDggKzI2MCw3IEBAIHN0YXRpYyBpbmxpbmUgdTMyIHJ0Nl9nZXRfY29va2llKGNvbnN0IHN0 cnVjdCBydDZfaW5mbyAqcnQpCiAJcmN1X3JlYWRfbG9jaygpOwogCiAJZnJvbSA9IHJjdV9kZXJl ZmVyZW5jZShydC0+ZnJvbSk7Ci0JaWYgKGZyb20gJiYgKHJ0LT5ydDZpX2ZsYWdzICYgUlRGX1BD UFUgfHwKLQkgICAgdW5saWtlbHkoIWxpc3RfZW1wdHkoJnJ0LT5ydDZpX3VuY2FjaGVkKSkpKQor CWlmIChmcm9tKQogCQlmaWI2X2dldF9jb29raWVfc2FmZShmcm9tLCAmY29va2llKTsKIAogCXJj dV9yZWFkX3VubG9jaygpOwotLSAKMi4yMC4xCgoKRnJvbSBjOWU5YWMyYWZlMWU3NGZmZmUyOTEw Y2UyZDA5MjdkOGJiMzVjMTIyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBB aGVybiA8ZHNhaGVybkBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMSBNYXkgMjAxOSAxODoxODo0MiAt MDcwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMThdIG5laWdoYm9yOiBDYWxsIF9faXB2NF9uZWlnaF9s b29rdXBfbm9yZWYgaW4gbmVpZ2hfeG1pdAoKWyBVcHN0cmVhbSBjb21taXQgNGIyYTJiZmViM2Yw NTY0NjFhOTBiZDYyMWU4YmQ3ZDAzZmE0N2Y2MCBdCgpDb21taXQgY2Q5ZmY0ZGUwMTA3IGNoYW5n ZWQgdGhlIGtleSBmb3IgSUZGX1BPSU5UT1BPSU5UIGRldmljZXMgdG8KSU5BRERSX0FOWSBidXQg bmVpZ2hfeG1pdCB3aGljaCBpcyB1c2VkIGZvciBNUExTIGVuY2Fwc3VsYXRpb25zIHdhcyBub3QK dXBkYXRlZCB0byB1c2UgdGhlIGFsdGVyZWQga2V5LiBUaGUgcmVzdWx0IGlzIHRoYXQgZXZlcnkg cGFja2V0IFR4IGRvZXMKYSBsb29rdXAgb24gdGhlIGdhdGV3YXkgYWRkcmVzcyB3aGljaCBkb2Vz IG5vdCBmaW5kIGFuIGVudHJ5LCBhIG5ldyBvbmUKaXMgY3JlYXRlZCBvbmx5IHRvIGZpbmQgdGhl IGV4aXN0aW5nIG9uZSBpbiB0aGUgdGFibGUgcmlnaHQgYmVmb3JlIHRoZQppbnNlcnQgc2luY2Ug YXJwX2NvbnN0cnVjdG9yIHdhcyB1cGRhdGVkIHRvIHJlc2V0IHRoZSBwcmltYXJ5IGtleS4gVGhp cwppcyBzZWVuIGluIHRoZSBhbGxvY3MgYW5kIGRlc3Ryb3lzIGNvdW50ZXJzOgogICAgaXAgLXMg LTQgbnRhYmxlIHNob3cgfCBoZWFkIC0xMCB8IGdyZXAgYWxsb2MKCndoaWNoIGluY3JlYXNlIGZv ciBlYWNoIHBhY2tldCBzaG93aW5nIHRoZSB1bm5lY2Vzc2FyeSBvdmVyaHJlYWQuCgpGaXggYnkg aGF2aW5nIG5laWdoX3htaXQgdXNlIF9faXB2NF9uZWlnaF9sb29rdXBfbm9yZWYgZm9yIE5FSUdI X0FSUF9UQUJMRS4KCkZpeGVzOiBjZDlmZjRkZTAxMDcgKCJpcHY0OiBNYWtlIG5laWdoIGxvb2t1 cCBrZXlzIGZvciBsb29wYmFjay9wb2ludC10by1wb2ludCBkZXZpY2VzIGJlIElOQUREUl9BTlki KQpSZXBvcnRlZC1ieTogQWxhbiBNYWd1aXJlIDxhbGFuLm1hZ3VpcmVAb3JhY2xlLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpUZXN0ZWQtYnk6IEFs YW4gTWFndWlyZSA8YWxhbi5tYWd1aXJlQG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9uZWlnaGJvdXIu YyB8IDkgKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvbmVpZ2hib3VyLmMgYi9uZXQvY29yZS9uZWln aGJvdXIuYwppbmRleCA0ZTA3ODI0ZWVjNWUuLjRlNGFjNzdjNjgxNiAxMDA2NDQKLS0tIGEvbmV0 L2NvcmUvbmVpZ2hib3VyLmMKKysrIGIvbmV0L2NvcmUvbmVpZ2hib3VyLmMKQEAgLTMwLDYgKzMw LDcgQEAKICNpbmNsdWRlIDxsaW51eC90aW1lcy5oPgogI2luY2x1ZGUgPG5ldC9uZXRfbmFtZXNw YWNlLmg+CiAjaW5jbHVkZSA8bmV0L25laWdoYm91ci5oPgorI2luY2x1ZGUgPG5ldC9hcnAuaD4K ICNpbmNsdWRlIDxuZXQvZHN0Lmg+CiAjaW5jbHVkZSA8bmV0L3NvY2suaD4KICNpbmNsdWRlIDxu ZXQvbmV0ZXZlbnQuaD4KQEAgLTI1MzYsNyArMjUzNywxMyBAQCBpbnQgbmVpZ2hfeG1pdChpbnQg aW5kZXgsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCWlmICghdGJsKQogCQkJZ290byBvdXQ7 CiAJCXJjdV9yZWFkX2xvY2tfYmgoKTsKLQkJbmVpZ2ggPSBfX25laWdoX2xvb2t1cF9ub3JlZih0 YmwsIGFkZHIsIGRldik7CisJCWlmIChpbmRleCA9PSBORUlHSF9BUlBfVEFCTEUpIHsKKwkJCXUz MiBrZXkgPSAqKCh1MzIgKilhZGRyKTsKKworCQkJbmVpZ2ggPSBfX2lwdjRfbmVpZ2hfbG9va3Vw X25vcmVmKGRldiwga2V5KTsKKwkJfSBlbHNlIHsKKwkJCW5laWdoID0gX19uZWlnaF9sb29rdXBf bm9yZWYodGJsLCBhZGRyLCBkZXYpOworCQl9CiAJCWlmICghbmVpZ2gpCiAJCQluZWlnaCA9IF9f bmVpZ2hfY3JlYXRlKHRibCwgYWRkciwgZGV2LCBmYWxzZSk7CiAJCWVyciA9IFBUUl9FUlIobmVp Z2gpOwotLSAKMi4yMC4xCgoKRnJvbSA4YTEzNWU3NzFmZTU1OTkxZTkzODJmMzg1NmUyOTMwYTE1 MTY3YjM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJdmFuIEtob3JvbnpodWsgPGl2 YW4ua2hvcm9uemh1a0BsaW5hcm8ub3JnPgpEYXRlOiBGcmksIDMxIE1heSAyMDE5IDE2OjQ3OjI1 ICswMzAwClN1YmplY3Q6IFtQQVRDSCAwNy8xOF0gbmV0OiBldGhlcm5ldDogdGk6IGNwc3dfZXRo dG9vbDogZml4IGV0aHRvb2wgcmluZyBwYXJhbQogc2V0CgpbIFVwc3RyZWFtIGNvbW1pdCAwOWZh ZjVhN2Q3YzBiY2IwN2ZhYmEwNzJmNjExOTM3YWY5ZGQ1Nzg4IF0KCkZpeCBhYmlsaXR5IHRvIHNl dCBSWCBkZXNjcmlwdG9yIG51bWJlciwgdGhlIHJlYXNvbiAtIGluaXRpYWxseQoidHhfbWF4X3Bl bmRpbmciIHdhcyBzZXQgaW5jb3JyZWN0bHksIGJ1dCB0aGUgaXNzdWUgYXBwZWFycyBhZnRlcgph ZGRpbmcgc2FuaXR5IGNoZWNrLCBzbyBmaXggaXMgZm9yICJzYW5pdHkiIHBhdGNoLgoKRml4ZXM6 IDM3ZTJkOTliNTljNDc2ICgiZXRodG9vbDogRW5zdXJlIG5ldyByaW5nIHBhcmFtZXRlcnMgYXJl IHdpdGhpbiBib3VuZHMgZHVyaW5nIFNSSU5HUEFSQU0iKQpTaWduZWQtb2ZmLWJ5OiBJdmFuIEto b3JvbnpodWsgPGl2YW4ua2hvcm9uemh1a0BsaW5hcm8ub3JnPgpSZXZpZXdlZC1ieTogR3J5Z29y aWkgU3RyYXNoa28gPGdyeWdvcmlpLnN0cmFzaGtvQHRpLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L3RpL2Nwc3cuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cuYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cuYwppbmRleCA4MzJiY2UwN2MzODUuLjFhZmVk ODU1NTBjMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvY3Bzdy5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cuYwpAQCAtMjk3OCw3ICsyOTc4LDcgQEAgc3Rh dGljIHZvaWQgY3Bzd19nZXRfcmluZ3BhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LAogCXN0 cnVjdCBjcHN3X2NvbW1vbiAqY3BzdyA9IHByaXYtPmNwc3c7CiAKIAkvKiBub3Qgc3VwcG9ydGVk ICovCi0JZXJpbmctPnR4X21heF9wZW5kaW5nID0gMDsKKwllcmluZy0+dHhfbWF4X3BlbmRpbmcg PSBkZXNjc19wb29sX3NpemUgLSBDUFNXX01BWF9RVUVVRVM7CiAJZXJpbmctPnR4X3BlbmRpbmcg PSBjcGRtYV9nZXRfbnVtX3R4X2Rlc2NzKGNwc3ctPmRtYSk7CiAJZXJpbmctPnJ4X21heF9wZW5k aW5nID0gZGVzY3NfcG9vbF9zaXplIC0gQ1BTV19NQVhfUVVFVUVTOwogCWVyaW5nLT5yeF9wZW5k aW5nID0gY3BkbWFfZ2V0X251bV9yeF9kZXNjcyhjcHN3LT5kbWEpOwotLSAKMi4yMC4xCgoKRnJv bSAxMTY3NTcwZTFjOGIyOTcyNzBmYzg2ZDhmZjE0NTNkMDlhZWU2MjkxIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBFcmV6IEFsZmFzaSA8ZXJlemFAbWVsbGFub3guY29tPgpEYXRlOiBN b24sIDIwIE1heSAyMDE5IDE3OjQyOjUyICswMzAwClN1YmplY3Q6IFtQQVRDSCAwOC8xOF0gbmV0 L21seDRfZW46IGV0aHRvb2wsIFJlbW92ZSB1bnN1cHBvcnRlZCBTRlAgRUVQUk9NCiBoaWdoIHBh Z2VzIHF1ZXJ5CgpbIFVwc3RyZWFtIGNvbW1pdCAxMzVkZDk1OTRmMTI3YzhhODJkMTQxYzNjODQz MGU5ZTIxNDMyMTZhIF0KClF1ZXJ5aW5nIEVFUFJPTSBoaWdoIHBhZ2VzIGRhdGEgZm9yIFNGUCBt b2R1bGUgaXMgY3VycmVudGx5Cm5vdCBzdXBwb3J0ZWQgYnkgb3VyIGRyaXZlciBidXQgaXMgc3Rp bGwgdHJpZWQsIHJlc3VsdGluZyBpbgppbnZhbGlkIEZXIHF1ZXJpZXMuCgpTZXQgdGhlIEVFUFJP TSBldGh0b29sIGRhdGEgbGVuZ3RoIHRvIDI1NiBmb3IgU0ZQIG1vZHVsZSB0bwpsaW1pdCB0aGUg cmVhZGluZyBmb3IgcGFnZSAwIG9ubHkgYW5kIHByZXZlbnQgaW52YWxpZCBGVyBxdWVyaWVzLgoK Rml4ZXM6IDcyMDJkYThiN2Y3MSAoImV0aHRvb2wsIG5ldC9tbHg0X2VuOiBDYWJsZSBpbmZvLCBn ZXRfbW9kdWxlX2luZm8vZWVwcm9tIGV0aHRvb2wgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEVy ZXogQWxmYXNpIDxlcmV6YUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFRhcmlxIFRvdWth biA8dGFyaXF0QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDQvZW5fZXRodG9vbC5jIHwgNCArKystCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg0L3BvcnQuYyAgICAgICB8IDUgLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDQvZW5fZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NC9lbl9ldGh0b29sLmMKaW5kZXggZDI5MGYwNzg3ZGZiLi45NGM1OTkzOWE4Y2YgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fZXRodG9vbC5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fZXRodG9vbC5jCkBAIC0y MDEwLDYgKzIwMTAsOCBAQCBzdGF0aWMgaW50IG1seDRfZW5fc2V0X3R1bmFibGUoc3RydWN0IG5l dF9kZXZpY2UgKmRldiwKIAlyZXR1cm4gcmV0OwogfQogCisjZGVmaW5lIE1MWDRfRUVQUk9NX1BB R0VfTEVOIDI1NgorCiBzdGF0aWMgaW50IG1seDRfZW5fZ2V0X21vZHVsZV9pbmZvKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsCiAJCQkJICAgc3RydWN0IGV0aHRvb2xfbW9kaW5mbyAqbW9kaW5mbykK IHsKQEAgLTIwNDQsNyArMjA0Niw3IEBAIHN0YXRpYyBpbnQgbWx4NF9lbl9nZXRfbW9kdWxlX2lu Zm8oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJYnJlYWs7CiAJY2FzZSBNTFg0X01PRFVMRV9J RF9TRlA6CiAJCW1vZGluZm8tPnR5cGUgPSBFVEhfTU9EVUxFX1NGRl84NDcyOwotCQltb2RpbmZv LT5lZXByb21fbGVuID0gRVRIX01PRFVMRV9TRkZfODQ3Ml9MRU47CisJCW1vZGluZm8tPmVlcHJv bV9sZW4gPSBNTFg0X0VFUFJPTV9QQUdFX0xFTjsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0 dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg0L3BvcnQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvcG9ydC5jCmlu ZGV4IDEwZmNjMjJmNDU5MC4uYmE2YWMzMWEzMzlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg0L3BvcnQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg0L3BvcnQuYwpAQCAtMjA3NywxMSArMjA3Nyw2IEBAIGludCBtbHg0X2dldF9t b2R1bGVfaW5mbyhzdHJ1Y3QgbWx4NF9kZXYgKmRldiwgdTggcG9ydCwKIAkJc2l6ZSAtPSBvZmZz ZXQgKyBzaXplIC0gSTJDX1BBR0VfU0laRTsKIAogCWkyY19hZGRyID0gSTJDX0FERFJfTE9XOwot CWlmIChvZmZzZXQgPj0gSTJDX1BBR0VfU0laRSkgewotCQkvKiBSZXNldCBvZmZzZXQgdG8gaGln aCBwYWdlICovCi0JCWkyY19hZGRyID0gSTJDX0FERFJfSElHSDsKLQkJb2Zmc2V0IC09IEkyQ19Q QUdFX1NJWkU7Ci0JfQogCiAJY2FibGVfaW5mbyA9IChzdHJ1Y3QgbWx4NF9jYWJsZV9pbmZvICop aW5tYWQtPmRhdGE7CiAJY2FibGVfaW5mby0+ZGV2X21lbV9hZGRyZXNzID0gY3B1X3RvX2JlMTYo b2Zmc2V0KTsKLS0gCjIuMjAuMQoKCkZyb20gMDQ1OWYwZTUzMDEyMTBjMTBhZjY0NDcwYTUxZmU4 ODRlOWIzOWE2YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWF4aW1lIENoZXZhbGxp ZXIgPG1heGltZS5jaGV2YWxsaWVyQGJvb3RsaW4uY29tPgpEYXRlOiBUaHUsIDYgSnVuIDIwMTkg MTA6NDI6NTYgKzAyMDAKU3ViamVjdDogW1BBVENIIDA5LzE4XSBuZXQ6IG12cHAyOiBVc2Ugc3Ry c2NweSB0byBoYW5kbGUgc3RhdCBzdHJpbmdzCgpbIFVwc3RyZWFtIGNvbW1pdCBkMzdhY2Q1YWE5 OWM1NzUwNWI2NDkxM2UwZTI2MjRlYzNkYWVkOGM1IF0KClVzZSBhIHNhZmUgc3Ryc2NweSBjYWxs IHRvIGNvcHkgdGhlIGV0aHRvb2wgc3RhdCBzdHJpbmdzIGludG8gdGhlCnJlbGV2YW50IGJ1ZmZl cnMsIGluc3RlYWQgb2YgYSBtZW1jcHkgdGhhdCB3aWxsIGJlIGFjY2Vzc2luZwpvdXQtb2YtYm91 bmQgZGF0YS4KCkZpeGVzOiAxMThkNjI5OGY2ZjAgKCJuZXQ6IG12cHAyOiBhZGQgZXRodG9vbCBH T1Agc3RhdGlzdGljcyIpClNpZ25lZC1vZmYtYnk6IE1heGltZSBDaGV2YWxsaWVyIDxtYXhpbWUu Y2hldmFsbGllckBib290bGluLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZw cDIvbXZwcDJfbWFpbi5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZl bGwvbXZwcDIvbXZwcDJfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBw Mi9tdnBwMl9tYWluLmMKaW5kZXggNTkyMTJkM2Q5NTg3Li5kZjViNzRmMjg5ZTEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZwcDIvbXZwcDJfbWFpbi5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZwcDIvbXZwcDJfbWFpbi5jCkBAIC0xMzEw LDggKzEzMTAsOCBAQCBzdGF0aWMgdm9pZCBtdnBwMl9ldGh0b29sX2dldF9zdHJpbmdzKHN0cnVj dCBuZXRfZGV2aWNlICpuZXRkZXYsIHUzMiBzc2V0LAogCQlpbnQgaTsKIAogCQlmb3IgKGkgPSAw OyBpIDwgQVJSQVlfU0laRShtdnBwMl9ldGh0b29sX3JlZ3MpOyBpKyspCi0JCQltZW1jcHkoZGF0 YSArIGkgKiBFVEhfR1NUUklOR19MRU4sCi0JCQkgICAgICAgJm12cHAyX2V0aHRvb2xfcmVnc1tp XS5zdHJpbmcsIEVUSF9HU1RSSU5HX0xFTik7CisJCQlzdHJzY3B5KGRhdGEgKyBpICogRVRIX0dT VFJJTkdfTEVOLAorCQkJICAgICAgICBtdnBwMl9ldGh0b29sX3JlZ3NbaV0uc3RyaW5nLCBFVEhf R1NUUklOR19MRU4pOwogCX0KIH0KIAotLSAKMi4yMC4xCgoKRnJvbSBjODkyMmM4OTUwNDc0Y2I2 YTk1YjYzMmU2ZDUyMGY4MzVlMDM0MzJiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBa aHUgWWFuanVuIDx5YW5qdW4uemh1QG9yYWNsZS5jb20+CkRhdGU6IFRodSwgNiBKdW4gMjAxOSAw NDowMDowMyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMThdIG5ldDogcmRzOiBmaXggbWVtb3J5 IGxlYWsgaW4gcmRzX2liX2ZsdXNoX21yX3Bvb2wKClsgVXBzdHJlYW0gY29tbWl0IDg1Y2I5Mjg3 ODdlYWI2YTJmNGNhOWQyYTc5OGI2ZjNiZWQ1M2NlZDEgXQoKV2hlbiB0aGUgZm9sbG93aW5nIHRl c3RzIGxhc3QgZm9yIHNldmVyYWwgaG91cnMsIHRoZSBwcm9ibGVtIHdpbGwgb2NjdXIuCgpTZXJ2 ZXI6CiAgICByZHMtc3RyZXNzIC1yIDEuMS4xLjE2IC1EIDFNCkNsaWVudDoKICAgIHJkcy1zdHJl c3MgLXIgMS4xLjEuMTQgLXMgMS4xLjEuMTYgLUQgMU0gLVQgMzAKClRoZSBmb2xsb3dpbmcgd2ls bCBvY2N1ci4KCiIKU3RhcnRpbmcgdXAuLi4uCnRza3MgICB0eC9zICAgcngvcyAgdHgrcnggSy9z ICAgIG1iaSBLL3MgICAgbWJvIEsvcyB0eCB1cy9jICAgcnR0IHVzIGNwdQolCiAgMSAgICAgIDAg ICAgICAwICAgICAgIDAuMDAgICAgICAgMC4wMCAgICAgICAwLjAwICAgIDAuMDAgMC4wMCAtMS4w MAogIDEgICAgICAwICAgICAgMCAgICAgICAwLjAwICAgICAgIDAuMDAgICAgICAgMC4wMCAgICAw LjAwIDAuMDAgLTEuMDAKICAxICAgICAgMCAgICAgIDAgICAgICAgMC4wMCAgICAgICAwLjAwICAg ICAgIDAuMDAgICAgMC4wMCAwLjAwIC0xLjAwCiAgMSAgICAgIDAgICAgICAwICAgICAgIDAuMDAg ICAgICAgMC4wMCAgICAgICAwLjAwICAgIDAuMDAgMC4wMCAtMS4wMAoiCj5Gcm9tIHZtY29yZSwg d2UgY2FuIGZpbmQgdGhhdCBjbGVhbl9saXN0IGlzIE5VTEwuCgo+RnJvbSB0aGUgc291cmNlIGNv ZGUsIHJkc19tcl9mbHVzaGQgY2FsbHMgcmRzX2liX21yX3Bvb2xfZmx1c2hfd29ya2VyLgpUaGVu IHJkc19pYl9tcl9wb29sX2ZsdXNoX3dvcmtlciBjYWxscwoiCiByZHNfaWJfZmx1c2hfbXJfcG9v bChwb29sLCAwLCBOVUxMKTsKIgpUaGVuIGluIGZ1bmN0aW9uCiIKaW50IHJkc19pYl9mbHVzaF9t cl9wb29sKHN0cnVjdCByZHNfaWJfbXJfcG9vbCAqcG9vbCwKICAgICAgICAgICAgICAgICAgICAg ICAgIGludCBmcmVlX2FsbCwgc3RydWN0IHJkc19pYl9tciAqKmlibXJfcmV0KQoiCmlibXJfcmV0 IGlzIE5VTEwuCgpJbiB0aGUgc291cmNlIGNvZGUsCiIKLi4uCmxpc3RfdG9fbGxpc3Rfbm9kZXMo cG9vbCwgJnVubWFwX2xpc3QsICZjbGVhbl9ub2RlcywgJmNsZWFuX3RhaWwpOwppZiAoaWJtcl9y ZXQpCiAgICAgICAgKmlibXJfcmV0ID0gbGxpc3RfZW50cnkoY2xlYW5fbm9kZXMsIHN0cnVjdCBy ZHNfaWJfbXIsIGxsbm9kZSk7CgovKiBtb3JlIHRoYW4gb25lIGVudHJ5IGluIGxsaXN0IG5vZGVz ICovCmlmIChjbGVhbl9ub2Rlcy0+bmV4dCkKICAgICAgICBsbGlzdF9hZGRfYmF0Y2goY2xlYW5f bm9kZXMtPm5leHQsIGNsZWFuX3RhaWwsICZwb29sLT5jbGVhbl9saXN0KTsKLi4uCiIKV2hlbiBp Ym1yX3JldCBpcyBOVUxMLCBsbGlzdF9lbnRyeSBpcyBub3QgZXhlY3V0ZWQuIGNsZWFuX25vZGVz LT5uZXh0Cmluc3RlYWQgb2YgY2xlYW5fbm9kZXMgaXMgYWRkZWQgaW4gY2xlYW5fbGlzdC4KU28g Y2xlYW5fbm9kZXMgaXMgZGlzY2FyZGVkLiBJdCBjYW4gbm90IGJlIHVzZWQgYWdhaW4uClRoZSB3 b3JrcXVldWUgaXMgZXhlY3V0ZWQgcGVyaW9kaWNhbGx5LiBTbyBtb3JlIGFuZCBtb3JlIGNsZWFu X25vZGVzIGFyZQpkaXNjYXJkZWQuIEZpbmFsbHkgdGhlIGNsZWFuX2xpc3QgaXMgTlVMTC4KVGhl biB0aGlzIHByb2JsZW0gd2lsbCBvY2N1ci4KCkZpeGVzOiAxYmMxNDRiNjI1MjQgKCJuZXQsIHJk cywgUmVwbGFjZSB4bGlzdCBpbiBuZXQvcmRzL3hsaXN0Lmggd2l0aCBsbGlzdCIpClNpZ25lZC1v ZmYtYnk6IFpodSBZYW5qdW4gPHlhbmp1bi56aHVAb3JhY2xlLmNvbT4KQWNrZWQtYnk6IFNhbnRv c2ggU2hpbGlta2FyIDxzYW50b3NoLnNoaWxpbWthckBvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Jkcy9pYl9y ZG1hLmMgfCAxMCArKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9yZHMvaWJfcmRtYS5jIGIvbmV0L3Jkcy9p Yl9yZG1hLmMKaW5kZXggZDY2NGU5YWRlNzRkLi4wYjM0N2Y0NmIyZjQgMTAwNjQ0Ci0tLSBhL25l dC9yZHMvaWJfcmRtYS5jCisrKyBiL25ldC9yZHMvaWJfcmRtYS5jCkBAIC00MjgsMTIgKzQyOCwx NCBAQCBpbnQgcmRzX2liX2ZsdXNoX21yX3Bvb2woc3RydWN0IHJkc19pYl9tcl9wb29sICpwb29s LAogCQl3YWl0X2NsZWFuX2xpc3RfZ3JhY2UoKTsKIAogCQlsaXN0X3RvX2xsaXN0X25vZGVzKHBv b2wsICZ1bm1hcF9saXN0LCAmY2xlYW5fbm9kZXMsICZjbGVhbl90YWlsKTsKLQkJaWYgKGlibXJf cmV0KQorCQlpZiAoaWJtcl9yZXQpIHsKIAkJCSppYm1yX3JldCA9IGxsaXN0X2VudHJ5KGNsZWFu X25vZGVzLCBzdHJ1Y3QgcmRzX2liX21yLCBsbG5vZGUpOwotCisJCQljbGVhbl9ub2RlcyA9IGNs ZWFuX25vZGVzLT5uZXh0OworCQl9CiAJCS8qIG1vcmUgdGhhbiBvbmUgZW50cnkgaW4gbGxpc3Qg bm9kZXMgKi8KLQkJaWYgKGNsZWFuX25vZGVzLT5uZXh0KQotCQkJbGxpc3RfYWRkX2JhdGNoKGNs ZWFuX25vZGVzLT5uZXh0LCBjbGVhbl90YWlsLCAmcG9vbC0+Y2xlYW5fbGlzdCk7CisJCWlmIChj bGVhbl9ub2RlcykKKwkJCWxsaXN0X2FkZF9iYXRjaChjbGVhbl9ub2RlcywgY2xlYW5fdGFpbCwK KwkJCQkJJnBvb2wtPmNsZWFuX2xpc3QpOwogCiAJfQogCi0tIAoyLjIwLjEKCgpGcm9tIDE3YWY2 OWQyYThmNjhlYzRlODJjYTBmMTkxMGJkMDQ4ZjFhMzQ0NGIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+CkRhdGU6 IFN1biwgMiBKdW4gMjAxOSAxNToxMzowMCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMThdIG5l dDogc2ZwOiByZWFkIGVlcHJvbSBpbiBtYXhpbXVtIDE2IGJ5dGUgaW5jcmVtZW50cwoKWyBVcHN0 cmVhbSBjb21taXQgMjhlNzRhN2NmZDY0MDNmMGQxYzBmOGIxMGI0NWQ2ZmFlMzdiMjI3ZSBdCgpT b21lIFNGUCBtb2R1bGVzIGRvIG5vdCBsaWtlIHJlYWRzIGxvbmdlciB0aGFuIDE2IGJ5dGVzLCBz byByZWFkIHRoZQpFRVBST00gaW4gY2h1bmtzIG9mIDE2IGJ5dGVzIGF0IGEgdGltZS4gIFRoaXMg YmVoYXZpb3VyIGlzIG5vdCBzcGVjaWZpZWQKaW4gdGhlIFNGUCBNU0FzLCB3aGljaCBzcGVjaWZp ZXM6CgogIlRoZSBzZXJpYWwgaW50ZXJmYWNlIHVzZXMgdGhlIDItd2lyZSBzZXJpYWwgQ01PUyBF MlBST00gcHJvdG9jb2wKICBkZWZpbmVkIGZvciB0aGUgQVRNRUwgQVQyNEMwMUEvMDIvMDQgZmFt aWx5IG9mIGNvbXBvbmVudHMuIgoKYW5kCgogIkFzIGxvbmcgYXMgdGhlIFNGUCsgcmVjZWl2ZXMg YW4gYWNrbm93bGVkZ2UsIGl0IHNoYWxsIHNlcmlhbGx5IGNsb2NrCiAgb3V0IHNlcXVlbnRpYWwg ZGF0YSB3b3Jkcy4gVGhlIHNlcXVlbmNlIGlzIHRlcm1pbmF0ZWQgd2hlbiB0aGUgaG9zdAogIHJl c3BvbmRzIHdpdGggYSBOQUNLIGFuZCBhIFNUT1AgaW5zdGVhZCBvZiBhbiBhY2tub3dsZWRnZS4i CgpXZSBtdXN0IGF2b2lkIGJyZWFraW5nIGEgcmVhZCBhY3Jvc3MgYSAxNi1iaXQgcXVhbnRpdHkg aW4gdGhlIGRpYWdub3N0aWMKcGFnZSwgdGhhbmtmdWxseSBhbGwgMTYtYml0IHF1YW50aXRpZXMg aW4gdGhhdCBwYWdlIGFyZSBuYXR1cmFsbHkKYWxpZ25lZC4KClNpZ25lZC1vZmYtYnk6IFJ1c3Nl bGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+ClJldmlld2VkLWJ5OiBBbmRyZXcg THVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvc2ZwLmMgfCAyNCArKysrKysr KysrKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9zZnAuYyBiL2RyaXZlcnMv bmV0L3BoeS9zZnAuYwppbmRleCA2OGM4ZmJmMDk5ZjguLjg4MDdhODA2Y2M0NyAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvcGh5L3NmcC5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuYwpAQCAt MjgwLDYgKzI4MCw3IEBAIHN0YXRpYyBpbnQgc2ZwX2kyY19yZWFkKHN0cnVjdCBzZnAgKnNmcCwg Ym9vbCBhMiwgdTggZGV2X2FkZHIsIHZvaWQgKmJ1ZiwKIHsKIAlzdHJ1Y3QgaTJjX21zZyBtc2dz WzJdOwogCXU4IGJ1c19hZGRyID0gYTIgPyAweDUxIDogMHg1MDsKKwlzaXplX3QgdGhpc19sZW47 CiAJaW50IHJldDsKIAogCW1zZ3NbMF0uYWRkciA9IGJ1c19hZGRyOwpAQCAtMjkxLDExICsyOTIs MjYgQEAgc3RhdGljIGludCBzZnBfaTJjX3JlYWQoc3RydWN0IHNmcCAqc2ZwLCBib29sIGEyLCB1 OCBkZXZfYWRkciwgdm9pZCAqYnVmLAogCW1zZ3NbMV0ubGVuID0gbGVuOwogCW1zZ3NbMV0uYnVm ID0gYnVmOwogCi0JcmV0ID0gaTJjX3RyYW5zZmVyKHNmcC0+aTJjLCBtc2dzLCBBUlJBWV9TSVpF KG1zZ3MpKTsKLQlpZiAocmV0IDwgMCkKLQkJcmV0dXJuIHJldDsKKwl3aGlsZSAobGVuKSB7CisJ CXRoaXNfbGVuID0gbGVuOworCQlpZiAodGhpc19sZW4gPiAxNikKKwkJCXRoaXNfbGVuID0gMTY7 CiAKLQlyZXR1cm4gcmV0ID09IEFSUkFZX1NJWkUobXNncykgPyBsZW4gOiAwOworCQltc2dzWzFd LmxlbiA9IHRoaXNfbGVuOworCisJCXJldCA9IGkyY190cmFuc2ZlcihzZnAtPmkyYywgbXNncywg QVJSQVlfU0laRShtc2dzKSk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQlp ZiAocmV0ICE9IEFSUkFZX1NJWkUobXNncykpCisJCQlicmVhazsKKworCQltc2dzWzFdLmJ1ZiAr PSB0aGlzX2xlbjsKKwkJZGV2X2FkZHIgKz0gdGhpc19sZW47CisJCWxlbiAtPSB0aGlzX2xlbjsK Kwl9CisKKwlyZXR1cm4gbXNnc1sxXS5idWYgLSAodTggKilidWY7CiB9CiAKIHN0YXRpYyBpbnQg c2ZwX2kyY193cml0ZShzdHJ1Y3Qgc2ZwICpzZnAsIGJvb2wgYTIsIHU4IGRldl9hZGRyLCB2b2lk ICpidWYsCi0tIAoyLjIwLjEKCgpGcm9tIDE5MzVkODRkNDUzZDEzOTM4ODBhMjA4NjMwMmUzYWUz ZTE1ZTkwMGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxq YWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpEYXRlOiBUdWUsIDQgSnVuIDIwMTkgMTI6MDA6 MTIgLTA3MDAKU3ViamVjdDogW1BBVENIIDEyLzE4XSBuZXQvdGxzOiByZXBsYWNlIHRoZSBzbGVl cGluZyBsb2NrIGFyb3VuZCBSWCByZXN5bmMKIHdpdGggYSBiaXQgbG9jawoKWyBVcHN0cmVhbSBj b21taXQgZTUyOTcyYzExZDZiMTI2Mjk2NGRiOTZkNjU5MzQxOTZkYjYyMTY4NSBdCgpDb21taXQg MzgwMzBkN2NiNzc5ICgibmV0L3RsczogYXZvaWQgTlVMTC1kZXJlZiBvbiByZXN5bmMgZHVyaW5n IGRldmljZSByZW1vdmFsIikKdHJpZWQgdG8gZml4IGEgcG90ZW50aWFsIE5VTEwtZGVyZWZlcmVu Y2UgYnkgdGFraW5nIHRoZQpjb250ZXh0IHJ3c2VtLiAgVW5mb3J0dW5hdGVseSB0aGUgUlggcmVz eW5jIG1heSBnZXQgY2FsbGVkCmZyb20gc29mdCBJUlEsIHNvIHdlIGNhbid0IHVzZSB0aGUgcndz ZW0gdG8gcHJvdGVjdCBmcm9tCnRoZSBkZXZpY2UgZGlzYXBwZWFyaW5nLiAgQmVjYXVzZSB3ZSBh cmUgZ3VhcmFudGVlZCB0aGVyZQpjYW4gYmUgb25seSBvbmUgcmVzeW5jIGF0IGEgdGltZSAoaXQn cyBjYWxsZWQgZnJvbSBzdHJwYXJzZXIpCnVzZSBhIGJpdCB0byBpbmRpY2F0ZSByZXN5bmMgaXMg YnVzeSBhbmQgbWFrZSBkZXZpY2UKcmVtb3ZhbCB3YWl0IGZvciB0aGUgYml0IHRvIGdldCBjbGVh cmVkLgoKTm90ZSB0aGF0IHRoZXJlIGlzIGEgbGVmdG92ZXIgImZsYWdzIiBmaWVsZCBpbiBzdHJ1 Y3QKdGxzX2NvbnRleHQgYWxyZWFkeS4KCkZpeGVzOiA0Nzk5YWM4MWU1MmEgKCJ0bHM6IEFkZCBy eCBpbmxpbmUgY3J5cHRvIG9mZmxvYWQiKQpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8 amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L3Rscy5oICAgIHwgIDQg KysrKwogbmV0L3Rscy90bHNfZGV2aWNlLmMgfCAyNyArKysrKysrKysrKysrKysrKysrKystLS0t LS0KIDIgZmlsZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9pbmNsdWRlL25ldC90bHMuaCBiL2luY2x1ZGUvbmV0L3Rscy5oCmluZGV4IGM0 MjNiN2QwYjZhYi4uOTU0MTEwNTc1ODkxIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC90bHMuaAor KysgYi9pbmNsdWRlL25ldC90bHMuaApAQCAtMTYxLDYgKzE2MSwxMCBAQCBlbnVtIHsKIAlUTFNf UEVORElOR19DTE9TRURfUkVDT1JECiB9OwogCitlbnVtIHRsc19jb250ZXh0X2ZsYWdzIHsKKwlU TFNfUlhfU1lOQ19SVU5OSU5HID0gMCwKK307CisKIHN0cnVjdCBjaXBoZXJfY29udGV4dCB7CiAJ dTE2IHByZXBlbmRfc2l6ZTsKIAl1MTYgdGFnX3NpemU7CmRpZmYgLS1naXQgYS9uZXQvdGxzL3Rs c19kZXZpY2UuYyBiL25ldC90bHMvdGxzX2RldmljZS5jCmluZGV4IDgwMzViZjQ5NWViMi4uZWFk MjljMmFlZmE3IDEwMDY0NAotLS0gYS9uZXQvdGxzL3Rsc19kZXZpY2UuYworKysgYi9uZXQvdGxz L3Rsc19kZXZpY2UuYwpAQCAtNTQ1LDEwICs1NDUsMjIgQEAgc3RhdGljIGludCB0bHNfZGV2aWNl X3B1c2hfcGVuZGluZ19yZWNvcmQoc3RydWN0IHNvY2sgKnNrLCBpbnQgZmxhZ3MpCiAJcmV0dXJu IHRsc19wdXNoX2RhdGEoc2ssICZtc2dfaXRlciwgMCwgZmxhZ3MsIFRMU19SRUNPUkRfVFlQRV9E QVRBKTsKIH0KIAorc3RhdGljIHZvaWQgdGxzX2RldmljZV9yZXN5bmNfcngoc3RydWN0IHRsc19j b250ZXh0ICp0bHNfY3R4LAorCQkJCSBzdHJ1Y3Qgc29jayAqc2ssIHUzMiBzZXEsIHU2NCByY2Rf c24pCit7CisJc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjsKKworCWlmIChXQVJOX09OKHRlc3Rf YW5kX3NldF9iaXQoVExTX1JYX1NZTkNfUlVOTklORywgJnRsc19jdHgtPmZsYWdzKSkpCisJCXJl dHVybjsKKwluZXRkZXYgPSBSRUFEX09OQ0UodGxzX2N0eC0+bmV0ZGV2KTsKKwlpZiAobmV0ZGV2 KQorCQluZXRkZXYtPnRsc2Rldl9vcHMtPnRsc19kZXZfcmVzeW5jX3J4KG5ldGRldiwgc2ssIHNl cSwgcmNkX3NuKTsKKwljbGVhcl9iaXRfdW5sb2NrKFRMU19SWF9TWU5DX1JVTk5JTkcsICZ0bHNf Y3R4LT5mbGFncyk7Cit9CisKIHZvaWQgaGFuZGxlX2RldmljZV9yZXN5bmMoc3RydWN0IHNvY2sg KnNrLCB1MzIgc2VxLCB1NjQgcmNkX3NuKQogewogCXN0cnVjdCB0bHNfY29udGV4dCAqdGxzX2N0 eCA9IHRsc19nZXRfY3R4KHNrKTsKLQlzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2ID0gdGxzX2N0 eC0+bmV0ZGV2OwogCXN0cnVjdCB0bHNfb2ZmbG9hZF9jb250ZXh0X3J4ICpyeF9jdHg7CiAJdTMy IGlzX3JlcV9wZW5kaW5nOwogCXM2NCByZXN5bmNfcmVxOwpAQCAtNTYzLDEwICs1NzUsMTAgQEAg dm9pZCBoYW5kbGVfZGV2aWNlX3Jlc3luYyhzdHJ1Y3Qgc29jayAqc2ssIHUzMiBzZXEsIHU2NCBy Y2Rfc24pCiAJaXNfcmVxX3BlbmRpbmcgPSByZXN5bmNfcmVxOwogCiAJaWYgKHVubGlrZWx5KGlz X3JlcV9wZW5kaW5nKSAmJiByZXFfc2VxID09IHNlcSAmJgotCSAgICBhdG9taWM2NF90cnlfY21w eGNoZygmcnhfY3R4LT5yZXN5bmNfcmVxLCAmcmVzeW5jX3JlcSwgMCkpCi0JCW5ldGRldi0+dGxz ZGV2X29wcy0+dGxzX2Rldl9yZXN5bmNfcngobmV0ZGV2LCBzaywKLQkJCQkJCSAgICAgIHNlcSAr IFRMU19IRUFERVJfU0laRSAtIDEsCi0JCQkJCQkgICAgICByY2Rfc24pOworCSAgICBhdG9taWM2 NF90cnlfY21weGNoZygmcnhfY3R4LT5yZXN5bmNfcmVxLCAmcmVzeW5jX3JlcSwgMCkpIHsKKwkJ c2VxICs9IFRMU19IRUFERVJfU0laRSAtIDE7CisJCXRsc19kZXZpY2VfcmVzeW5jX3J4KHRsc19j dHgsIHNrLCBzZXEsIHJjZF9zbik7CisJfQogfQogCiBzdGF0aWMgaW50IHRsc19kZXZpY2VfcmVl bmNyeXB0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKQEAgLTk1NCw3ICs5 NjYsMTAgQEAgc3RhdGljIGludCB0bHNfZGV2aWNlX2Rvd24oc3RydWN0IG5ldF9kZXZpY2UgKm5l dGRldikKIAkJaWYgKGN0eC0+cnhfY29uZiA9PSBUTFNfSFcpCiAJCQluZXRkZXYtPnRsc2Rldl9v cHMtPnRsc19kZXZfZGVsKG5ldGRldiwgY3R4LAogCQkJCQkJCVRMU19PRkZMT0FEX0NUWF9ESVJf UlgpOwotCQljdHgtPm5ldGRldiA9IE5VTEw7CisJCVdSSVRFX09OQ0UoY3R4LT5uZXRkZXYsIE5V TEwpOworCQlzbXBfbWJfX2JlZm9yZV9hdG9taWMoKTsgLyogcGFpcnMgd2l0aCB0ZXN0X2FuZF9z ZXRfYml0KCkgKi8KKwkJd2hpbGUgKHRlc3RfYml0KFRMU19SWF9TWU5DX1JVTk5JTkcsICZjdHgt PmZsYWdzKSkKKwkJCXVzbGVlcF9yYW5nZSgxMCwgMjAwKTsKIAkJZGV2X3B1dChuZXRkZXYpOwog CQlsaXN0X2RlbF9pbml0KCZjdHgtPmxpc3QpOwogCi0tIAoyLjIwLjEKCgpGcm9tIDkzYWUyNzcw OTk0ZWQ1M2MyNGMwOWYyOWVhMTE0NWFjMzBmMGZkN2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAz MSBNYXkgMjAxOSAxMjozNzoyMyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMThdIHBhY2tldDog dW5jb25kaXRpb25hbGx5IGZyZWUgcG8tPnJvbGxvdmVyCgpbIFVwc3RyZWFtIGNvbW1pdCBhZmEw OTI1YzZmY2M2YThmNjEwZTk5NmNhMDliYzMyMTUwNDgwMzNjIF0KClJvbGxvdmVyIHVzZWQgdG8g dXNlIGEgY29tcGxleCBSQ1UgbWVjaGFuaXNtIGZvciBhc3NpZ25tZW50LCB3aGljaCBoYWQKYSBy YWNlIGNvbmRpdGlvbi4gVGhlIGJlbG93IHBhdGNoIGZpeGVkIHRoZSBidWcgYW5kIGdyZWF0bHkg c2ltcGxpZmllZAp0aGUgbG9naWMuCgpUaGUgZmVhdHVyZSBkZXBlbmRzIG9uIGZhbm91dCwgYnV0 IHRoZSBzdGF0ZSBpcyBwcml2YXRlIHRvIHRoZSBzb2NrZXQuCkZhbm91dF9yZWxlYXNlIHJldHVy bnMgZiBvbmx5IHdoZW4gdGhlIGxhc3QgbWVtYmVyIGxlYXZlcyBhbmQgdGhlCmZhbm91dCBzdHJ1 Y3QgaXMgdG8gYmUgZnJlZWQuCgpEZXN0cm95IHJvbGxvdmVyIHVuY29uZGl0aW9uYWxseSwgcmVn YXJkbGVzcyBvZiBmYW5vdXQgc3RhdGUuCgpGaXhlczogNTdmMDE1ZjVlY2NmMiAoInBhY2tldDog Zml4IGNyYXNoIGluIGZhbm91dF9kZW11eF9yb2xsb3ZlcigpIikKUmVwb3J0ZWQtYnk6IHN5emJv dCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+CkRpYWdub3NlZC1ieTogRG1pdHJ5IFZ5dWtv diA8ZHZ5dWtvdkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3 aWxsZW1iQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgMiArLQogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKaW5kZXggMThkZjNi Y2U3M2RhLi5kOThmY2Y5MjYxNjYgMTAwNjQ0Ci0tLSBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMK KysrIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwpAQCAtMzAxNyw4ICszMDE3LDggQEAgc3RhdGlj IGludCBwYWNrZXRfcmVsZWFzZShzdHJ1Y3Qgc29ja2V0ICpzb2NrKQogCiAJc3luY2hyb25pemVf bmV0KCk7CiAKKwlrZnJlZShwby0+cm9sbG92ZXIpOwogCWlmIChmKSB7Ci0JCWtmcmVlKHBvLT5y b2xsb3Zlcik7CiAJCWZhbm91dF9yZWxlYXNlX2RhdGEoZik7CiAJCWtmcmVlKGYpOwogCX0KLS0g CjIuMjAuMQoKCkZyb20gYjEyZTc3N2I2ZWViNzI0ODE5YTViMWYzMGQ2MzhmNzI2OGUzNTc3NiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFvbG8gQWJlbmkgPHBhYmVuaUByZWRoYXQu Y29tPgpEYXRlOiBUaHUsIDYgSnVuIDIwMTkgMTU6NDU6MDMgKzAyMDAKU3ViamVjdDogW1BBVENI IDE0LzE4XSBwa3RnZW46IGRvIG5vdCBzbGVlcCB3aXRoIHRoZSB0aHJlYWQgbG9jayBoZWxkLgoK WyBVcHN0cmVhbSBjb21taXQgNzIwZjFkZTQwMjFmMDk4OThiOGM4NDQzZjNiM2U5OTU5OTFiNmUz YSBdCgpDdXJyZW50bHksIHRoZSBwcm9jZXNzIGlzc3VpbmcgYSAic3RhcnQiIGNvbW1hbmQgb24g dGhlIHBrdGdlbiBwcm9jZnMKaW50ZXJmYWNlLCBhY3F1aXJlcyB0aGUgcGt0Z2VuIHRocmVhZCBs b2NrIGFuZCBuZXZlciByZWxlYXNlIGl0LCB1bnRpbAphbGwgcGt0Z2VuIHRocmVhZHMgYXJlIGNv bXBsZXRlZC4gVGhlIGFib3ZlIGNhbiBibG9ja3MgaW5kZWZpbml0ZWx5IGFueQpvdGhlciBwa3Rn ZW4gY29tbWFuZCBhbmQgYW55IChldmVuIHVucmVsYXRlZCkgbmV0ZGV2aWNlIHJlbW92YWwgLSBh cwp0aGUgcGt0Z2VuIG5ldGRldiBub3RpZmllciBhY3F1aXJlcyB0aGUgc2FtZSBsb2NrLgoKVGhl IGlzc3VlIGlzIGRlbW9uc3RyYXRlZCBieSB0aGUgZm9sbG93aW5nIHNjcmlwdCwgcmVwb3J0ZWQg YnkgTWF0dGVvOgoKaXAgLWIgLSA8PCdFT0YnCglsaW5rIGFkZCB0eXBlIGR1bW15CglsaW5rIGFk ZCB0eXBlIHZldGgKCWxpbmsgc2V0IGR1bW15MCB1cApFT0YKbW9kcHJvYmUgcGt0Z2VuCmVjaG8g cmVzZXQgPi9wcm9jL25ldC9wa3RnZW4vcGdjdHJsCnsKCWVjaG8gcmVtX2RldmljZV9hbGwKCWVj aG8gYWRkX2RldmljZSBkdW1teTAKfSA+L3Byb2MvbmV0L3BrdGdlbi9rcGt0Z2VuZF8wCmVjaG8g Y291bnQgMCA+L3Byb2MvbmV0L3BrdGdlbi9kdW1teTAKZWNobyBzdGFydCA+L3Byb2MvbmV0L3Br dGdlbi9wZ2N0cmwgJgpzbGVlcCAxCnJtbW9kIHZldGgKCkZpeCB0aGUgYWJvdmUgcmVsZWFzaW5n IHRoZSB0aHJlYWQgbG9jayBhcm91bmQgdGhlIHNsZWVwIGNhbGwuCgpBZGRpdGlvbmFsbHkgd2Ug bXVzdCBwcmV2ZW50IHJhY2luZyB3aXRoIGZvcmNlZnVsbCBybW1vZCAtIGFzIHRoZQp0aHJlYWQg bG9jayBubyBtb3JlIHByb3RlY3RzIGZyb20gdGhlbS4gSW5zdGVhZCwgYWNxdWlyZSBhIHNlbGYt cmVmZXJlbmNlCmJlZm9yZSB3YWl0aW5nIGZvciBhbnkgdGhyZWFkLiBBcyBhIHNpZGUgZWZmZWN0 LCBydW5uaW5nCgpybW1vZCBwa3RnZW4KCndoaWxlIHNvbWUgdGhyZWFkIGlzIHJ1bm5pbmcgbm93 IGZhaWxzIHdpdGggIm1vZHVsZSBpbiB1c2UiIGVycm9yLApiZWZvcmUgdGhpcyBwYXRjaCBzdWNo IGNvbW1hbmQgaGFuZ2VkIGluZGVmaW5pdGVseS4KCk5vdGU6IHRoZSBpc3N1ZSBwcmVkYXRlcyB0 aGUgY29tbWl0IHJlcG9ydGVkIGluIHRoZSBmaXhlcyB0YWcsIGJ1dAp0aGlzIGZpeCBjYW4ndCBi ZSBhcHBsaWVkIGJlZm9yZSB0aGUgbWVudGlvbmVkIGNvbW1pdC4KCnYxIC0+IHYyOgogLSBubyBu ZWVkIHRvIGNoZWNrIGZvciB0aHJlYWQgZXhpc3RlbmNlIGFmdGVyIGZsaXBwaW5nIHRoZSBsb2Nr LAogICBwa3RnZW4gdGhyZWFkcyBhcmUgZnJlZWQgb25seSBhdCBuZXQgZXhpdCB0aW1lCiAtCgpG aXhlczogNjE0NmU2YTQzYjM1ICgiW1BLVEdFTl06IFJlbW92ZXMgdGhyZWFkX3t1bix9bG9jaygp IG1hY3Jvcy4iKQpSZXBvcnRlZC1hbmQtdGVzdGVkLWJ5OiBNYXR0ZW8gQ3JvY2UgPG1jcm9jZUBy ZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvY29yZS9wa3RnZW4uYyB8IDExICsrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTEg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3BrdGdlbi5jIGIvbmV0L2NvcmUv cGt0Z2VuLmMKaW5kZXggN2Y2OTM4NDA1ZmExLi4wOTJmYTNkNzViMzIgMTAwNjQ0Ci0tLSBhL25l dC9jb3JlL3BrdGdlbi5jCisrKyBiL25ldC9jb3JlL3BrdGdlbi5jCkBAIC0zMDY1LDcgKzMwNjUs MTMgQEAgc3RhdGljIGludCBwa3RnZW5fd2FpdF90aHJlYWRfcnVuKHN0cnVjdCBwa3RnZW5fdGhy ZWFkICp0KQogewogCXdoaWxlICh0aHJlYWRfaXNfcnVubmluZyh0KSkgewogCisJCS8qIG5vdGU6 ICd0JyB3aWxsIHN0aWxsIGJlIGFyb3VuZCBldmVuIGFmdGVyIHRoZSB1bmxvY2svbG9jaworCQkg KiBjeWNsZSBiZWNhdXNlIHBrdGdlbl90aHJlYWQgdGhyZWFkcyBhcmUgb25seSBjbGVhcmVkIGF0 CisJCSAqIG5ldCBleGl0CisJCSAqLworCQltdXRleF91bmxvY2soJnBrdGdlbl90aHJlYWRfbG9j ayk7CiAJCW1zbGVlcF9pbnRlcnJ1cHRpYmxlKDEwMCk7CisJCW11dGV4X2xvY2soJnBrdGdlbl90 aHJlYWRfbG9jayk7CiAKIAkJaWYgKHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKQogCQkJZ290byBz aWduYWw7CkBAIC0zMDgwLDYgKzMwODYsMTAgQEAgc3RhdGljIGludCBwa3RnZW5fd2FpdF9hbGxf dGhyZWFkc19ydW4oc3RydWN0IHBrdGdlbl9uZXQgKnBuKQogCXN0cnVjdCBwa3RnZW5fdGhyZWFk ICp0OwogCWludCBzaWcgPSAxOwogCisJLyogcHJldmVudCBmcm9tIHJhY2luZyB3aXRoIHJtbW9k ICovCisJaWYgKCF0cnlfbW9kdWxlX2dldChUSElTX01PRFVMRSkpCisJCXJldHVybiBzaWc7CisK IAltdXRleF9sb2NrKCZwa3RnZW5fdGhyZWFkX2xvY2spOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRy eSh0LCAmcG4tPnBrdGdlbl90aHJlYWRzLCB0aF9saXN0KSB7CkBAIC0zMDkzLDYgKzMxMDMsNyBA QCBzdGF0aWMgaW50IHBrdGdlbl93YWl0X2FsbF90aHJlYWRzX3J1bihzdHJ1Y3QgcGt0Z2VuX25l dCAqcG4pCiAJCQl0LT5jb250cm9sIHw9IChUX1NUT1ApOwogCiAJbXV0ZXhfdW5sb2NrKCZwa3Rn ZW5fdGhyZWFkX2xvY2spOworCW1vZHVsZV9wdXQoVEhJU19NT0RVTEUpOwogCXJldHVybiBzaWc7 CiB9CiAKLS0gCjIuMjAuMQoKCkZyb20gYzdmMTNhNjc0NTk4MTA0MDhhOGFjNGMzMjcwYzI0MmMy NWY4YWIzMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFuZ2JpbiBMaXUgPGxpdWhh bmdiaW5AZ21haWwuY29tPgpEYXRlOiBXZWQsIDUgSnVuIDIwMTkgMTI6Mjc6MTQgKzA4MDAKU3Vi amVjdDogW1BBVENIIDE1LzE4XSBSZXZlcnQgImZpYl9ydWxlczogcmV0dXJuIDAgZGlyZWN0bHkg aWYgYW4gZXhhY3RseSBzYW1lCiBydWxlIGV4aXN0cyB3aGVuIE5MTV9GX0VYQ0wgbm90IHN1cHBs aWVkIgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9 VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQg NDk3MGI0MmQ1YzM2MmJmODczOTgyZGI3ZDkzMjQ1YzUyODFlNThmNCBdCgpUaGlzIHJldmVydHMg Y29tbWl0IGU5OTE5YTI0ZDMwMjJmNzJiY2FkYzQwN2U3M2E2ZWYxNzA5M2E4NDkuCgpOYXRoYW4g cmVwb3J0ZWQgdGhlIG5ldyBiZWhhdmlvdXIgYnJlYWtzIEFuZHJvaWQsIGFzIEFuZHJvaWQganVz dCBhZGQKbmV3IHJ1bGVzIGFuZCBkZWxldGUgb2xkIG9uZXMuCgpJZiB3ZSByZXR1cm4gMCB3aXRo b3V0IGFkZGluZyBkdXAgcnVsZXMsIEFuZHJvaWQgd2lsbCByZW1vdmUgdGhlIG5ldwphZGRlZCBy dWxlcyBhbmQgY2F1c2luZyBzeXN0ZW0gdG8gc29mdC1yZWJvb3QuCgpGaXhlczogZTk5MTlhMjRk MzAyICgiZmliX3J1bGVzOiByZXR1cm4gMCBkaXJlY3RseSBpZiBhbiBleGFjdGx5IHNhbWUgcnVs ZSBleGlzdHMgd2hlbiBOTE1fRl9FWENMIG5vdCBzdXBwbGllZCIpClJlcG9ydGVkLWJ5OiBOYXRo YW4gQ2hhbmNlbGxvciA8bmF0ZWNoYW5jZWxsb3JAZ21haWwuY29tPgpSZXBvcnRlZC1ieTogWWFy byBTbGF2IDx5YXJvMzMwQGdtYWlsLmNvbT4KUmVwb3J0ZWQtYnk6IE1hY2llaiDFu2VuY3p5a293 c2tpIDx6ZW5jenlrb3dza2lAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBIYW5nYmluIExpdSA8 bGl1aGFuZ2JpbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBOYXRoYW4gQ2hhbmNlbGxvciA8bmF0 ZWNoYW5jZWxsb3JAZ21haWwuY29tPgpUZXN0ZWQtYnk6IE5hdGhhbiBDaGFuY2VsbG9yIDxuYXRl Y2hhbmNlbGxvckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9maWJfcnVsZXMuYyB8IDYgKysrLS0tCiAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL25ldC9jb3JlL2ZpYl9ydWxlcy5jIGIvbmV0L2NvcmUvZmliX3J1bGVzLmMKaW5kZXggMzM4 MTQ3YjE0ZDBlLi4wZmYzOTUzZjY0YWEgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2ZpYl9ydWxlcy5j CisrKyBiL25ldC9jb3JlL2ZpYl9ydWxlcy5jCkBAIC03NTYsOSArNzU2LDkgQEAgaW50IGZpYl9u bF9uZXdydWxlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoLAogCWlm IChlcnIpCiAJCWdvdG8gZXJyb3V0OwogCi0JaWYgKHJ1bGVfZXhpc3RzKG9wcywgZnJoLCB0Yiwg cnVsZSkpIHsKLQkJaWYgKG5saC0+bmxtc2dfZmxhZ3MgJiBOTE1fRl9FWENMKQotCQkJZXJyID0g LUVFWElTVDsKKwlpZiAoKG5saC0+bmxtc2dfZmxhZ3MgJiBOTE1fRl9FWENMKSAmJgorCSAgICBy dWxlX2V4aXN0cyhvcHMsIGZyaCwgdGIsIHJ1bGUpKSB7CisJCWVyciA9IC1FRVhJU1Q7CiAJCWdv dG8gZXJyb3V0X2ZyZWU7CiAJfQogCi0tIAoyLjIwLjEKCgpGcm9tIGY3OThmZmFhNzEwYjQ4YTQ0 MTFlN2EzYTBkZWE0NzQ1NjUyYWE2NTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEph bWVzIENsYXJrZSA8anJ0YzI3QGpydGMyNy5jb20+CkRhdGU6IFdlZCwgMjkgTWF5IDIwMTkgMjI6 MzE6MzEgKzAxMDAKU3ViamVjdDogW1BBVENIIDE2LzE4XSBzcGFyYzY0OiBGaXggcmVncmVzc2lv biBpbiBub24taHlwZXJ2aXNvciBUTEIgZmx1c2gKIHhjYWxsCgpbIFVwc3RyZWFtIGNvbW1pdCBk M2M5NzZjMTRhZDhhZjQyMTEzNGM0MjhiMGE4OWZmOGRkM2JkOGY4IF0KClByZXZpb3VzbHksICVn MiB3b3VsZCBlbmQgdXAgd2l0aCB0aGUgdmFsdWUgUEFHRV9TSVpFLCBidXQgYWZ0ZXIgdGhlCmNv bW1pdCBtZW50aW9uZWQgYmVsb3cgaXQgZW5kcyB1cCB3aXRoIHRoZSB2YWx1ZSAxIGR1ZSB0byBi ZWluZyByZXVzZWQKZm9yIGEgZGlmZmVyZW50IHB1cnBvc2UuIFdlIG5lZWQgaXQgdG8gYmUgUEFH RV9TSVpFIGFzIHdlIHVzZSBpdCB0byBzdGVwCnRocm91Z2ggcGFnZXMgaW4gb3VyIGRlbWFwIGxv b3AsIG90aGVyd2lzZSB3ZSBzZXQgZGlmZmVyZW50IGZsYWdzIGluIHRoZQpsb3cgMTIgYml0cyBv ZiB0aGUgYWRkcmVzcyB3cml0dGVuIHRvLCB0aGVyZWJ5IGRvaW5nIHRoaW5ncyBvdGhlciB0aGFu IGEKbnVjbGV1cyBwYWdlIGZsdXNoLgoKRml4ZXM6IGE3NGFkNWU2NjBhOSAoInNwYXJjNjQ6IEhh bmRsZSBleHRyZW1lbHkgbGFyZ2Uga2VybmVsIFRMQiByYW5nZSBmbHVzaGVzIG1vcmUgZ3JhY2Vm dWxseS4iKQpSZXBvcnRlZC1ieTogTWVlbGlzIFJvb3MgPG1yb29zQGxpbnV4LmVlPgpUZXN0ZWQt Ynk6IE1lZWxpcyBSb29zIDxtcm9vc0BsaW51eC5lZT4KU2lnbmVkLW9mZi1ieTogSmFtZXMgQ2xh cmtlIDxqcnRjMjdAanJ0YzI3LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGFyY2gvc3BhcmMvbW0vdWx0cmEuUyB8IDQgKystLQog MSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9hcmNoL3NwYXJjL21tL3VsdHJhLlMgYi9hcmNoL3NwYXJjL21tL3VsdHJhLlMKaW5kZXgg ZDI0NWY4OWQxMzk1Li5kMjIwYjY4NDg3NDYgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMvbW0vdWx0 cmEuUworKysgYi9hcmNoL3NwYXJjL21tL3VsdHJhLlMKQEAgLTU4Nyw3ICs1ODcsNyBAQCB4Y2Fs bF9mbHVzaF90bGJfa2VybmVsX3JhbmdlOgkvKiA0NCBpbnNucyAqLwogCXN1YgkJJWc3LCAlZzEs ICVnMwogCXNybHgJCSVnMywgMTgsICVnMgogCWJybnoscG4JCSVnMiwgMmYKLQkgYWRkCQklZzIs IDEsICVnMgorCSBzZXRoaQkJJWhpKFBBR0VfU0laRSksICVnMgogCXN1YgkJJWczLCAlZzIsICVn MwogCW9yCQklZzEsIDB4MjAsICVnMQkJISBOdWNsZXVzCiAxOglzdHhhCQklZzAsIFslZzEgKyAl ZzNdIEFTSV9ETU1VX0RFTUFQCkBAIC03NTEsNyArNzUxLDcgQEAgX19jaGVldGFoX3hjYWxsX2Zs dXNoX3RsYl9rZXJuZWxfcmFuZ2U6CS8qIDQ0IGluc25zICovCiAJc3ViCQklZzcsICVnMSwgJWcz CiAJc3JseAkJJWczLCAxOCwgJWcyCiAJYnJueixwbgkJJWcyLCAyZgotCSBhZGQJCSVnMiwgMSwg JWcyCisJIHNldGhpCQklaGkoUEFHRV9TSVpFKSwgJWcyCiAJc3ViCQklZzMsICVnMiwgJWczCiAJ b3IJCSVnMSwgMHgyMCwgJWcxCQkhIE51Y2xldXMKIDE6CXN0eGEJCSVnMCwgWyVnMSArICVnM10g QVNJX0RNTVVfREVNQVAKLS0gCjIuMjAuMQoKCkZyb20gNjc1YTI0ZGMzZWQxZTY5ZjNiMWJlMzcz YTRiZjljNmI1OTdhMDE0YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogT2xpdmllciBN YXR6IDxvbGl2aWVyLm1hdHpANndpbmQuY29tPgpEYXRlOiBUaHUsIDYgSnVuIDIwMTkgMDk6MTU6 MTggKzAyMDAKU3ViamVjdDogW1BBVENIIDE3LzE4XSBpcHY2OiB1c2UgUkVBRF9PTkNFKCkgZm9y IGluZXQtPmhkcmluY2wgYXMgaW4gaXB2NAoKWyBVcHN0cmVhbSBjb21taXQgNTllM2U0YjUyNjYz YTlkOTdlZmJjZTczMDdmNjJlNGJjNWM5Y2U5MSBdCgpBcyBpdCB3YXMgZG9uZSBpbiBjb21taXQg OGY2NTlhMDNhMGJhICgibmV0OiBpcHY0OiBmaXggZm9yIGEgcmFjZQpjb25kaXRpb24gaW4gcmF3 X3NlbmRtc2ciKSBhbmQgY29tbWl0IDIwYjUwZDc5OTc0ZSAoIm5ldDogaXB2NDogZW11bGF0ZQpS RUFEX09OQ0UoKSBvbiAtPmhkcmluY2wgYml0LWZpZWxkIGluIHJhd19zZW5kbXNnKCkiKSBmb3Ig aXB2NCwgY29weSB0aGUKdmFsdWUgb2YgaW5ldC0+aGRyaW5jbCBpbiBhIGxvY2FsIHZhcmlhYmxl LCB0byBhdm9pZCBpbnRyb2R1Y2luZyBhIHJhY2UKY29uZGl0aW9uIGluIHRoZSBuZXh0IGNvbW1p dC4KClNpZ25lZC1vZmYtYnk6IE9saXZpZXIgTWF0eiA8b2xpdmllci5tYXR6QDZ3aW5kLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9pcHY2L3Jhdy5jIHwgMTIgKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yYXcuYyBi L25ldC9pcHY2L3Jhdy5jCmluZGV4IDU4MzNkNGFmNzMxMS4uMjEzM2YyNmEyMTg1IDEwMDY0NAot LS0gYS9uZXQvaXB2Ni9yYXcuYworKysgYi9uZXQvaXB2Ni9yYXcuYwpAQCAtNzgyLDYgKzc4Miw3 IEBAIHN0YXRpYyBpbnQgcmF3djZfc2VuZG1zZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2do ZHIgKm1zZywgc2l6ZV90IGxlbikKIAlzdHJ1Y3QgZmxvd2k2IGZsNjsKIAlzdHJ1Y3QgaXBjbTZf Y29va2llIGlwYzY7CiAJaW50IGFkZHJfbGVuID0gbXNnLT5tc2dfbmFtZWxlbjsKKwlpbnQgaGRy aW5jbDsKIAl1MTYgcHJvdG87CiAJaW50IGVycjsKIApAQCAtNzk1LDYgKzc5NiwxMyBAQCBzdGF0 aWMgaW50IHJhd3Y2X3NlbmRtc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2cs IHNpemVfdCBsZW4pCiAJaWYgKG1zZy0+bXNnX2ZsYWdzICYgTVNHX09PQikKIAkJcmV0dXJuIC1F T1BOT1RTVVBQOwogCisJLyogaGRyaW5jbCBzaG91bGQgYmUgUkVBRF9PTkNFKGluZXQtPmhkcmlu Y2wpCisJICogYnV0IFJFQURfT05DRSgpIGRvZXNuJ3Qgd29yayB3aXRoIGJpdCBmaWVsZHMuCisJ ICogRG9pbmcgdGhpcyBpbmRpcmVjdGx5IHlpZWxkcyB0aGUgc2FtZSByZXN1bHQuCisJICovCisJ aGRyaW5jbCA9IGluZXQtPmhkcmluY2w7CisJaGRyaW5jbCA9IFJFQURfT05DRShoZHJpbmNsKTsK KwogCS8qCiAJICoJR2V0IGFuZCB2ZXJpZnkgdGhlIGFkZHJlc3MuCiAJICovCkBAIC05MDcsNyAr OTE1LDcgQEAgc3RhdGljIGludCByYXd2Nl9zZW5kbXNnKHN0cnVjdCBzb2NrICpzaywgc3RydWN0 IG1zZ2hkciAqbXNnLCBzaXplX3QgbGVuKQogCQlmbDYuZmxvd2k2X29pZiA9IG5wLT51Y2FzdF9v aWY7CiAJc2VjdXJpdHlfc2tfY2xhc3NpZnlfZmxvdyhzaywgZmxvd2k2X3RvX2Zsb3dpKCZmbDYp KTsKIAotCWlmIChpbmV0LT5oZHJpbmNsKQorCWlmIChoZHJpbmNsKQogCQlmbDYuZmxvd2k2X2Zs YWdzIHw9IEZMT1dJX0ZMQUdfS05PV05fTkg7CiAKIAlpZiAoaXBjNi50Y2xhc3MgPCAwKQpAQCAt OTMwLDcgKzkzOCw3IEBAIHN0YXRpYyBpbnQgcmF3djZfc2VuZG1zZyhzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbikKIAkJZ290byBkb19jb25maXJtOwogCiBi YWNrX2Zyb21fY29uZmlybToKLQlpZiAoaW5ldC0+aGRyaW5jbCkKKwlpZiAoaGRyaW5jbCkKIAkJ ZXJyID0gcmF3djZfc2VuZF9oZHJpbmMoc2ssIG1zZywgbGVuLCAmZmw2LCAmZHN0LAogCQkJCQlt c2ctPm1zZ19mbGFncywgJmlwYzYuc29ja2MpOwogCWVsc2UgewotLSAKMi4yMC4xCgoKRnJvbSBk Y2UxZDk0YjJkMjIzZjg1YzI2NzQwYmU4NjJlMzcwOTIyNjA4N2EyIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBPbGl2aWVyIE1hdHogPG9saXZpZXIubWF0ekA2d2luZC5jb20+CkRhdGU6 IFRodSwgNiBKdW4gMjAxOSAwOToxNToxOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMThdIGlw djY6IGZpeCBFRkFVTFQgb24gc2VuZHRvIHdpdGggaWNtcHY2IGFuZCBoZHJpbmNsCgpbIFVwc3Ry ZWFtIGNvbW1pdCBiOWFhNTJjNGNiNDU3ZTc0MTZjYzBjOTVmNDc1ZTcyZWY0YTYxMzM2IF0KClRo ZSBmb2xsb3dpbmcgY29kZSByZXR1cm5zIEVGQVVMVCAoQmFkIGFkZHJlc3MpOgoKICBzID0gc29j a2V0KEFGX0lORVQ2LCBTT0NLX1JBVywgSVBQUk9UT19JQ01QVjYpOwogIHNldHNvY2tvcHQocywg U09MX0lQVjYsIElQVjZfSERSSU5DTCwgMSk7CiAgc2VuZHRvKGlwdjZfaWNtcDZfcGFja2V0LCBh ZGRyKTsgICAvKiByZXR1cm5zIC0xLCBlcnJubyA9IEVGQVVMVCAqLwoKVGhlIElQdjQgZXF1aXZh bGVudCBjb2RlIHdvcmtzLiBBIHdvcmthcm91bmQgaXMgdG8gdXNlIElQUFJPVE9fUkFXCmluc3Rl YWQgb2YgSVBQUk9UT19JQ01QVjYuCgpUaGUgZmFpbHVyZSBoYXBwZW5zIGJlY2F1c2UgMiBieXRl cyBhcmUgZWF0ZW4gZnJvbSB0aGUgbXNnaGRyIGJ5CnJhd3Y2X3Byb2JlX3Byb3RvX29wdCgpIHN0 YXJ0aW5nIGZyb20gY29tbWl0IDE5ZTNjNjZiNTJjYSAoImlwdjYKZXF1aXZhbGVudCBvZiAiaXB2 NDogQXZvaWQgcmVhZGluZyB1c2VyIGlvdiB0d2ljZSBhZnRlcgpyYXdfcHJvYmVfcHJvdG9fb3B0 IiIpLCBidXQgYXQgdGhhdCB0aW1lIGl0IHdhcyBub3QgYSBwcm9ibGVtIGJlY2F1c2UKSVBWNl9I RFJJTkNMIHdhcyBub3QgeWV0IGludHJvZHVjZWQuCgpPbmx5IGVhdCB0aGVzZSAyIGJ5dGVzIGlm IGhkcmluY2wgPT0gMC4KCkZpeGVzOiA3MTVmNTA0YjExODkgKCJpcHY2OiBhZGQgSVBWNl9IRFJJ TkNMIG9wdGlvbiBmb3IgcmF3IHNvY2tldHMiKQpTaWduZWQtb2ZmLWJ5OiBPbGl2aWVyIE1hdHog PG9saXZpZXIubWF0ekA2d2luZC5jb20+CkFja2VkLWJ5OiBOaWNvbGFzIERpY2h0ZWwgPG5pY29s YXMuZGljaHRlbEA2d2luZC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9yYXcuYyB8IDEzICsrKysrKysrLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L2lwdjYvcmF3LmMgYi9uZXQvaXB2Ni9yYXcuYwppbmRleCAyMTMzZjI2YTIxODUu LjQ4NTZkOTMyMGIyOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcmF3LmMKKysrIGIvbmV0L2lwdjYv cmF3LmMKQEAgLTg5NCwxMSArODk0LDE0IEBAIHN0YXRpYyBpbnQgcmF3djZfc2VuZG1zZyhzdHJ1 Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbikKIAlvcHQgPSBpcHY2 X2ZpeHVwX29wdGlvbnMoJm9wdF9zcGFjZSwgb3B0KTsKIAogCWZsNi5mbG93aTZfcHJvdG8gPSBw cm90bzsKLQlyZnYubXNnID0gbXNnOwotCXJmdi5obGVuID0gMDsKLQllcnIgPSByYXd2Nl9wcm9i ZV9wcm90b19vcHQoJnJmdiwgJmZsNik7Ci0JaWYgKGVycikKLQkJZ290byBvdXQ7CisKKwlpZiAo IWhkcmluY2wpIHsKKwkJcmZ2Lm1zZyA9IG1zZzsKKwkJcmZ2LmhsZW4gPSAwOworCQllcnIgPSBy YXd2Nl9wcm9iZV9wcm90b19vcHQoJnJmdiwgJmZsNik7CisJCWlmIChlcnIpCisJCQlnb3RvIG91 dDsKKwl9CiAKIAlpZiAoIWlwdjZfYWRkcl9hbnkoZGFkZHIpKQogCQlmbDYuZGFkZHIgPSAqZGFk ZHI7Ci0tIAoyLjIwLjEKCg== ----Next_Part(Sat_Jun__8_16_27_22_2019_250)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_51.mbox" RnJvbSA5YjNmYzZlOTRmZmVjOTIwNzlmNzA1ZmE2M2I5MjdkNTA3OGFlMjM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaXZpZW4gRGlkZWxvdCA8dml2aWVuLmRpZGVsb3RAZ21haWwu Y29tPgpEYXRlOiBNb24sIDMgSnVuIDIwMTkgMTY6NTc6MTMgLTA0MDAKU3ViamVjdDogW1BBVENI IDAxLzIyXSBldGh0b29sOiBmaXggcG90ZW50aWFsIHVzZXJzcGFjZSBidWZmZXIgb3ZlcmZsb3cK ClsgVXBzdHJlYW0gY29tbWl0IDBlZTRlNzY5MzdkNjkxMjhhNmE2Njg2MWJhMzkzZWJkYzJmZmM4 YTIgXQoKZXRodG9vbF9nZXRfcmVncygpIGFsbG9jYXRlcyBhIGJ1ZmZlciBvZiBzaXplIG9wcy0+ Z2V0X3JlZ3NfbGVuKCksCmFuZCBwYXNzIGl0IHRvIHRoZSBrZXJuZWwgZHJpdmVyIHZpYSBvcHMt PmdldF9yZWdzKCkgZm9yIGZpbGxpbmcuCgpUaGVyZSBpcyBubyByZXN0cmljdGlvbiBhYm91dCB3 aGF0IHRoZSBrZXJuZWwgZHJpdmVycyBjYW4gb3IgY2Fubm90IGRvCndpdGggdGhlIG9wZW4gZXRo dG9vbF9yZWdzIHN0cnVjdHVyZS4gVGhleSB1c3VhbGx5IHNldCByZWdzLT52ZXJzaW9uCmFuZCBp Z25vcmUgcmVncy0+bGVuIG9yIHNldCBpdCB0byB0aGUgc2FtZSBzaXplIGFzIG9wcy0+Z2V0X3Jl Z3NfbGVuKCkuCgpCdXQgaWYgdXNlcnNwYWNlIGFsbG9jYXRlcyBhIHNtYWxsZXIgYnVmZmVyIGZv ciB0aGUgcmVnaXN0ZXJzIGR1bXAsCndlIHdvdWxkIGNhdXNlIGEgdXNlcnNwYWNlIGJ1ZmZlciBv dmVyZmxvdyBpbiB0aGUgZmluYWwgY29weV90b191c2VyKCkKY2FsbCwgd2hpY2ggdXNlcyB0aGUg cmVncy5sZW4gdmFsdWUgcG90ZW50aWFsbHkgcmVzZXQgYnkgdGhlIGRyaXZlci4KClRvIGZpeCB0 aGlzLCBtYWtlIHRoaXMgY2FzZSBvYnZpb3VzIGFuZCBzdG9yZSByZWdzLmxlbiBiZWZvcmUgY2Fs bGluZwpvcHMtPmdldF9yZWdzKCksIHRvIG9ubHkgY29weSBhcyBtdWNoIGRhdGEgYXMgcmVxdWVz dGVkIGJ5IHVzZXJzcGFjZSwKdXAgdG8gdGhlIHZhbHVlIHJldHVybmVkIGJ5IG9wcy0+Z2V0X3Jl Z3NfbGVuKCkuCgpXaGlsZSBhdCBpdCwgcmVtb3ZlIHRoZSByZWR1bmRhbnQgY2hlY2sgZm9yIG5v bi1udWxsIHJlZ2J1Zi4KClNpZ25lZC1vZmYtYnk6IFZpdmllbiBEaWRlbG90IDx2aXZpZW4uZGlk ZWxvdEBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBNaWNoYWwgS3ViZWNlayA8bWt1YmVjZWtAc3Vz ZS5jej4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9jb3JlL2V0aHRvb2wuYyB8IDUgKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA0IGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9ldGh0b29s LmMgYi9uZXQvY29yZS9ldGh0b29sLmMKaW5kZXggMDE0ZGNkNjNiNDUxLi43Mjg1YTE5YmIxMzUg MTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2V0aHRvb2wuYworKysgYi9uZXQvY29yZS9ldGh0b29sLmMK QEAgLTEzNTgsMTMgKzEzNTgsMTYgQEAgc3RhdGljIGludCBldGh0b29sX2dldF9yZWdzKHN0cnVj dCBuZXRfZGV2aWNlICpkZXYsIGNoYXIgX191c2VyICp1c2VyYWRkcikKIAlpZiAoIXJlZ2J1ZikK IAkJcmV0dXJuIC1FTk9NRU07CiAKKwlpZiAocmVncy5sZW4gPCByZWdsZW4pCisJCXJlZ2xlbiA9 IHJlZ3MubGVuOworCiAJb3BzLT5nZXRfcmVncyhkZXYsICZyZWdzLCByZWdidWYpOwogCiAJcmV0 ID0gLUVGQVVMVDsKIAlpZiAoY29weV90b191c2VyKHVzZXJhZGRyLCAmcmVncywgc2l6ZW9mKHJl Z3MpKSkKIAkJZ290byBvdXQ7CiAJdXNlcmFkZHIgKz0gb2Zmc2V0b2Yoc3RydWN0IGV0aHRvb2xf cmVncywgZGF0YSk7Ci0JaWYgKHJlZ2J1ZiAmJiBjb3B5X3RvX3VzZXIodXNlcmFkZHIsIHJlZ2J1 ZiwgcmVncy5sZW4pKQorCWlmIChjb3B5X3RvX3VzZXIodXNlcmFkZHIsIHJlZ2J1ZiwgcmVnbGVu KSkKIAkJZ290byBvdXQ7CiAJcmV0ID0gMDsKIAotLSAKMi4yMC4xCgoKRnJvbSAyODYxZjFmODNi YmYxMjIyM2JmZTIxMzg4NTRiMzk1ODEzMWUyMjJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgpEYXRlOiBNb24sIDMgSnVu IDIwMTkgMTY6MzI6NTkgLTA0MDAKU3ViamVjdDogW1BBVENIIDAyLzIyXSBGaXggbWVtb3J5IGxl YWsgaW4gc2N0cF9wcm9jZXNzX2luaXQKClsgVXBzdHJlYW0gY29tbWl0IDBhOGRkOWY2N2NkMGRh N2RjMjg0ZjQ4YjAzMmNlMDBkYjFhNjg3OTEgXQoKc3l6Ym90IGZvdW5kIHRoZSBmb2xsb3dpbmcg bGVhayBpbiBzY3RwX3Byb2Nlc3NfaW5pdApCVUc6IG1lbW9yeSBsZWFrCnVucmVmZXJlbmNlZCBv YmplY3QgMHhmZmZmODg4MTBlZjY4NDAwIChzaXplIDEwMjQpOgogIGNvbW0gInN5ei1leGVjdXRv cjI3MyIsIHBpZCA3MDQ2LCBqaWZmaWVzIDQyOTQ5NDU1OTggKGFnZSAyOC43NzBzKQogIGhleCBk dW1wIChmaXJzdCAzMiBieXRlcyk6CiAgICAxZCBkZSAyOCA4ZCBkZSAwYiAxYiBlMyBiNSBjMiBm OSA2OCBmZCAxYSA5NyAyNSAgLi4oLi4uLi4uLi5oLi4uJQogICAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIC4uLi4uLi4uLi4uLi4uLi4KICBiYWNrdHJh Y2U6CiAgICBbPDAwMDAwMDAwYTAyY2ViYmQ+XSBrbWVtbGVha19hbGxvY19yZWN1cnNpdmUgaW5j bHVkZS9saW51eC9rbWVtbGVhay5oOjU1CltpbmxpbmVdCiAgICBbPDAwMDAwMDAwYTAyY2ViYmQ+ XSBzbGFiX3Bvc3RfYWxsb2NfaG9vayBtbS9zbGFiLmg6NDM5IFtpbmxpbmVdCiAgICBbPDAwMDAw MDAwYTAyY2ViYmQ+XSBzbGFiX2FsbG9jIG1tL3NsYWIuYzozMzI2IFtpbmxpbmVdCiAgICBbPDAw MDAwMDAwYTAyY2ViYmQ+XSBfX2RvX2ttYWxsb2MgbW0vc2xhYi5jOjM2NTggW2lubGluZV0KICAg IFs8MDAwMDAwMDBhMDJjZWJiZD5dIF9fa21hbGxvY190cmFja19jYWxsZXIrMHgxNWQvMHgyYzAg bW0vc2xhYi5jOjM2NzUKICAgIFs8MDAwMDAwMDA5ZTYyNDVlNj5dIGttZW1kdXArMHgyNy8weDYw IG1tL3V0aWwuYzoxMTkKICAgIFs8MDAwMDAwMDBkZmRjNWQyZD5dIGttZW1kdXAgaW5jbHVkZS9s aW51eC9zdHJpbmcuaDo0MzIgW2lubGluZV0KICAgIFs8MDAwMDAwMDBkZmRjNWQyZD5dIHNjdHBf cHJvY2Vzc19pbml0KzB4YTdlLzB4YzIwCm5ldC9zY3RwL3NtX21ha2VfY2h1bmsuYzoyNDM3CiAg ICBbPDAwMDAwMDAwYjU4YjYyZjg+XSBzY3RwX2NtZF9wcm9jZXNzX2luaXQgbmV0L3NjdHAvc21f c2lkZWVmZmVjdC5jOjY4MgpbaW5saW5lXQogICAgWzwwMDAwMDAwMGI1OGI2MmY4Pl0gc2N0cF9j bWRfaW50ZXJwcmV0ZXIgbmV0L3NjdHAvc21fc2lkZWVmZmVjdC5jOjEzODQKW2lubGluZV0KICAg IFs8MDAwMDAwMDBiNThiNjJmOD5dIHNjdHBfc2lkZV9lZmZlY3RzIG5ldC9zY3RwL3NtX3NpZGVl ZmZlY3QuYzoxMTk0CltpbmxpbmVdCiAgICBbPDAwMDAwMDAwYjU4YjYyZjg+XSBzY3RwX2RvX3Nt KzB4YmRjLzB4MWQ2MCBuZXQvc2N0cC9zbV9zaWRlZWZmZWN0LmM6MTE2NQogICAgWzwwMDAwMDAw MDQ0ZTExZjk2Pl0gc2N0cF9hc3NvY19iaF9yY3YrMHgxM2MvMHgyMDAKbmV0L3NjdHAvYXNzb2Np b2xhLmM6MTA3NAogICAgWzwwMDAwMDAwMGVjNDM4MDRkPl0gc2N0cF9pbnFfcHVzaCsweDdmLzB4 YjAgbmV0L3NjdHAvaW5xdWV1ZS5jOjk1CiAgICBbPDAwMDAwMDAwNzI2YWE5NTQ+XSBzY3RwX2Jh Y2tsb2dfcmN2KzB4NWUvMHgyYTAgbmV0L3NjdHAvaW5wdXQuYzozNTQKICAgIFs8MDAwMDAwMDBk OWUyNDlhOD5dIHNrX2JhY2tsb2dfcmN2IGluY2x1ZGUvbmV0L3NvY2suaDo5NTAgW2lubGluZV0K ICAgIFs8MDAwMDAwMDBkOWUyNDlhOD5dIF9fcmVsZWFzZV9zb2NrKzB4YWIvMHgxMTAgbmV0L2Nv cmUvc29jay5jOjI0MTgKICAgIFs8MDAwMDAwMDBhY2FlNDRmYT5dIHJlbGVhc2Vfc29jaysweDM3 LzB4ZDAgbmV0L2NvcmUvc29jay5jOjI5MzQKICAgIFs8MDAwMDAwMDA5NjNjYzlhZT5dIHNjdHBf c2VuZG1zZysweDJjMC8weDk5MCBuZXQvc2N0cC9zb2NrZXQuYzoyMTIyCiAgICBbPDAwMDAwMDAw YTdmYzc1NjU+XSBpbmV0X3NlbmRtc2crMHg2NC8weDEyMCBuZXQvaXB2NC9hZl9pbmV0LmM6ODAy CiAgICBbPDAwMDAwMDAwYjczMmNiZDM+XSBzb2NrX3NlbmRtc2dfbm9zZWMgbmV0L3NvY2tldC5j OjY1MiBbaW5saW5lXQogICAgWzwwMDAwMDAwMGI3MzJjYmQzPl0gc29ja19zZW5kbXNnKzB4NTQv MHg3MCBuZXQvc29ja2V0LmM6NjcxCiAgICBbPDAwMDAwMDAwMjc0YzU3YWI+XSBfX19zeXNfc2Vu ZG1zZysweDM5My8weDNjMCBuZXQvc29ja2V0LmM6MjI5MgogICAgWzwwMDAwMDAwMDgyNTJhZWRi Pl0gX19zeXNfc2VuZG1zZysweDgwLzB4ZjAgbmV0L3NvY2tldC5jOjIzMzAKICAgIFs8MDAwMDAw MDBmN2JmMjNkMT5dIF9fZG9fc3lzX3NlbmRtc2cgbmV0L3NvY2tldC5jOjIzMzkgW2lubGluZV0K ICAgIFs8MDAwMDAwMDBmN2JmMjNkMT5dIF9fc2Vfc3lzX3NlbmRtc2cgbmV0L3NvY2tldC5jOjIz MzcgW2lubGluZV0KICAgIFs8MDAwMDAwMDBmN2JmMjNkMT5dIF9feDY0X3N5c19zZW5kbXNnKzB4 MjMvMHgzMCBuZXQvc29ja2V0LmM6MjMzNwogICAgWzwwMDAwMDAwMGE4YjQxMzFmPl0gZG9fc3lz Y2FsbF82NCsweDc2LzB4MWEwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjMKClRoZSBwcm9ibGVt IHdhcyB0aGF0IHRoZSBwZWVyLmNvb2tpZSB2YWx1ZSBwb2ludHMgdG8gYW4gc2tiIGFsbG9jYXRl ZAphcmVhIG9uIHRoZSBmaXJzdCBwYXNzIHRocm91Z2ggdGhpcyBmdW5jdGlvbiwgYXQgd2hpY2gg cG9pbnQgaXQgaXMKb3ZlcndyaXR0ZW4gd2l0aCBhIGhlYXAgYWxsb2NhdGVkIHZhbHVlLCBidXQg aW4gY2VydGFpbiBjYXNlcywgd2hlcmUgYQpDT09LSUVfRUNITyBjaHVuayBpcyBpbmNsdWRlZCBp biB0aGUgcGFja2V0LCBhIHNlY29uZCBwYXNzIHRocm91Z2gKc2N0cF9wcm9jZXNzX2luaXQgaXMg bWFkZSwgd2hlcmUgdGhlIGNvb2tpZSB2YWx1ZSBpcyByZS1hbGxvY2F0ZWQsCmxlYWtpbmcgdGhl IGZpcnN0IGFsbG9jYXRpb24uCgpGaXggaXMgdG8gYWx3YXlzIGFsbG9jYXRlIHRoZSBjb29raWUg dmFsdWUsIGFuZCBmcmVlIGl0IHdoZW4gd2UgYXJlIGRvbmUKdXNpbmcgaXQuCgpTaWduZWQtb2Zm LWJ5OiBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgpSZXBvcnRlZC1ieTogc3l6 Ym90K2Y3ZTkxNTNiMDM3ZWFjOWIxZGY4QHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KQ0M6IE1h cmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwuY29tPgpDQzogIkRh dmlkIFMuIE1pbGxlciIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+CkNDOiBuZXRkZXZAdmdlci5rZXJu ZWwub3JnCkFja2VkLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVy QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9zY3RwL3NtX21ha2VfY2h1bmsuYyB8IDEzICsrKy0tLS0tLS0tLS0K IG5ldC9zY3RwL3NtX3NpZGVlZmZlY3QuYyB8ICA1ICsrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDgg aW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc21f bWFrZV9jaHVuay5jIGIvbmV0L3NjdHAvc21fbWFrZV9jaHVuay5jCmluZGV4IGQwNWM1NzY2NGUz Ni4uYWU2NWExY2ZhNTk2IDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zbV9tYWtlX2NodW5rLmMKKysr IGIvbmV0L3NjdHAvc21fbWFrZV9jaHVuay5jCkBAIC0yMzI5LDcgKzIzMjksNiBAQCBpbnQgc2N0 cF9wcm9jZXNzX2luaXQoc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsIHN0cnVjdCBzY3Rw X2NodW5rICpjaHVuaywKIAl1bmlvbiBzY3RwX2FkZHIgYWRkcjsKIAlzdHJ1Y3Qgc2N0cF9hZiAq YWY7CiAJaW50IHNyY19tYXRjaCA9IDA7Ci0JY2hhciAqY29va2llOwogCiAJLyogV2UgbXVzdCBp bmNsdWRlIHRoZSBhZGRyZXNzIHRoYXQgdGhlIElOSVQgcGFja2V0IGNhbWUgZnJvbS4KIAkgKiBU aGlzIGlzIHRoZSBvbmx5IGFkZHJlc3MgdGhhdCBtYXR0ZXJzIGZvciBhbiBJTklUIHBhY2tldC4K QEAgLTI0MzMsMTQgKzI0MzIsNiBAQCBpbnQgc2N0cF9wcm9jZXNzX2luaXQoc3RydWN0IHNjdHBf YXNzb2NpYXRpb24gKmFzb2MsIHN0cnVjdCBzY3RwX2NodW5rICpjaHVuaywKIAkvKiBQZWVyIFJ3 bmQgICA6IEN1cnJlbnQgY2FsY3VsYXRlZCB2YWx1ZSBvZiB0aGUgcGVlcidzIHJ3bmQuICAqLwog CWFzb2MtPnBlZXIucnduZCA9IGFzb2MtPnBlZXIuaS5hX3J3bmQ7CiAKLQkvKiBDb3B5IGNvb2tp ZSBpbiBjYXNlIHdlIG5lZWQgdG8gcmVzZW5kIENPT0tJRS1FQ0hPLiAqLwotCWNvb2tpZSA9IGFz b2MtPnBlZXIuY29va2llOwotCWlmIChjb29raWUpIHsKLQkJYXNvYy0+cGVlci5jb29raWUgPSBr bWVtZHVwKGNvb2tpZSwgYXNvYy0+cGVlci5jb29raWVfbGVuLCBnZnApOwotCQlpZiAoIWFzb2Mt PnBlZXIuY29va2llKQotCQkJZ290byBjbGVhbl91cDsKLQl9Ci0KIAkvKiBSRkMgMjk2MCA3LjIu MSBUaGUgaW5pdGlhbCB2YWx1ZSBvZiBzc3RocmVzaCBNQVkgYmUgYXJiaXRyYXJpbHkKIAkgKiBo aWdoIChmb3IgZXhhbXBsZSwgaW1wbGVtZW50YXRpb25zIE1BWSB1c2UgdGhlIHNpemUgb2YgdGhl IHJlY2VpdmVyCiAJICogYWR2ZXJ0aXNlZCB3aW5kb3cpLgpAQCAtMjYwOSw3ICsyNjAwLDkgQEAg c3RhdGljIGludCBzY3RwX3Byb2Nlc3NfcGFyYW0oc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFz b2MsCiAJY2FzZSBTQ1RQX1BBUkFNX1NUQVRFX0NPT0tJRToKIAkJYXNvYy0+cGVlci5jb29raWVf bGVuID0KIAkJCW50b2hzKHBhcmFtLnAtPmxlbmd0aCkgLSBzaXplb2Yoc3RydWN0IHNjdHBfcGFy YW1oZHIpOwotCQlhc29jLT5wZWVyLmNvb2tpZSA9IHBhcmFtLmNvb2tpZS0+Ym9keTsKKwkJYXNv Yy0+cGVlci5jb29raWUgPSBrbWVtZHVwKHBhcmFtLmNvb2tpZS0+Ym9keSwgYXNvYy0+cGVlci5j b29raWVfbGVuLCBnZnApOworCQlpZiAoIWFzb2MtPnBlZXIuY29va2llKQorCQkJcmV0dmFsID0g MDsKIAkJYnJlYWs7CiAKIAljYXNlIFNDVFBfUEFSQU1fSEVBUlRCRUFUX0lORk86CmRpZmYgLS1n aXQgYS9uZXQvc2N0cC9zbV9zaWRlZWZmZWN0LmMgYi9uZXQvc2N0cC9zbV9zaWRlZWZmZWN0LmMK aW5kZXggNGFhMDM1ODhmODdiLi4yN2RkZjJkOGYwMDEgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3Nt X3NpZGVlZmZlY3QuYworKysgYi9uZXQvc2N0cC9zbV9zaWRlZWZmZWN0LmMKQEAgLTg5OCw2ICs4 OTgsMTEgQEAgc3RhdGljIHZvaWQgc2N0cF9jbWRfbmV3X3N0YXRlKHN0cnVjdCBzY3RwX2NtZF9z ZXEgKmNtZHMsCiAJCQkJCQlhc29jLT5ydG9faW5pdGlhbDsKIAl9CiAKKwlpZiAoc2N0cF9zdGF0 ZShhc29jLCBFU1RBQkxJU0hFRCkpIHsKKwkJa2ZyZWUoYXNvYy0+cGVlci5jb29raWUpOworCQlh c29jLT5wZWVyLmNvb2tpZSA9IE5VTEw7CisJfQorCiAJaWYgKHNjdHBfc3RhdGUoYXNvYywgRVNU QUJMSVNIRUQpIHx8CiAJICAgIHNjdHBfc3RhdGUoYXNvYywgQ0xPU0VEKSB8fAogCSAgICBzY3Rw X3N0YXRlKGFzb2MsIFNIVVRET1dOX1JFQ0VJVkVEKSkgewotLSAKMi4yMC4xCgoKRnJvbSA4ZDRk Yjc2ZWU2NmFkY2JlNGI4NTllOTFlMDBkOTMwMjllMDk2YjMyIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMiBK dW4gMjAxOSAxOToxMDoyNCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMjJdIGlwdjQ6IG5vdCBk byBjYWNoZSBmb3IgbG9jYWwgZGVsaXZlcnkgaWYgYmNfZm9yd2FyZGluZwogaXMgZW5hYmxlZAoK WyBVcHN0cmVhbSBjb21taXQgMGE5MDQ3OGI5M2E0NmJkY2Q1NmJhMzNjMzc1NjZhOTkzZTQ1NWQ1 NCBdCgpXaXRoIHRoZSB0b3BvOgoKICAgIGgxIC0tLXwgcnAxICAgICAgICAgICAgfAogICAgICAg ICAgfCAgICAgcm91dGUgIHJwMyB8LS0tIGgzICgxOTIuMTY4LjIwMC4xKQogICAgaDIgLS0tfCBy cDIgICAgICAgICAgICB8CgpJZiBycDEgYmNfZm9yd2FyZGluZyBpcyBzZXQgd2hpbGUgcnAyIGJj X2ZvcndhcmRpbmcgaXMgbm90LCBhZnRlcgpkb2luZyAicGluZyAxOTIuMTY4LjIwMC4yNTUiIG9u IGgxLCB0aGVuIHBpbmcgMTkyLjE2OC4yMDAuMjU1IG9uCmgyLCBhbmQgdGhlIHBhY2tldHMgY2Fu IHN0aWxsIGJlIGZvcndhcmVkLgoKVGhpcyBpc3N1ZSB3YXMgY2F1c2VkIGJ5IHRoZSBpbnB1dCBy b3V0ZSBjYWNoZS4gSXQgc2hvdWxkIG9ubHkgZG8KdGhlIGNhY2hlIGZvciBlaXRoZXIgYmMgZm9y d2FyZGluZyBvciBsb2NhbCBkZWxpdmVyeS4gT3RoZXJ3aXNlLApsb2NhbCBkZWxpdmVyeSBjYW4g dXNlIHRoZSByb3V0ZSBjYWNoZSBmb3IgYmMgZm9yd2FyZGluZyBvZiBvdGhlcgppbnRlcmZhY2Vz LgoKVGhpcyBwYXRjaCBpcyB0byBmaXggaXQgYnkgbm90IGRvaW5nIGNhY2hlIGZvciBsb2NhbCBk ZWxpdmVyeSBpZgphbGwuYmNfZm9yd2FyZGluZyBpcyBlbmFibGVkLgoKTm90ZSB0aGF0IHdlIGRv bid0IGZpeCBpdCBieSBjaGVja2luZyByb3V0ZSBjYWNoZSBsb2NhbCBmbGFnIGFmdGVyCnJ0X2Nh Y2hlX3ZhbGlkKCkgaW4gImxvY2FsX2lucHV0OiIgYW5kICJpcF9ta3JvdXRlX2lucHV0IiwgYXMg dGhlCmNvbW1vbiByb3V0ZSBjb2RlIHNob3VsZG4ndCBiZSB0b3VjaGVkIGZvciBiY19mb3J3YXJk aW5nLgoKRml4ZXM6IDVjYmY3NzdjZmRmNiAoInJvdXRlOiBhZGQgc3VwcG9ydCBmb3IgZGlyZWN0 ZWQgYnJvYWRjYXN0IGZvcndhcmRpbmciKQpSZXBvcnRlZC1ieTogSmlhbmxpbiBTaGkgPGppc2hp QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9pcHY0L3JvdXRlLmMgfCAyMiArKysrKysrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv bmV0L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRlLmMKaW5kZXggZGY2YWZiMDkyOTM2Li4x Y2Q1MTJhYzg0YmEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3JvdXRlLmMKKysrIGIvbmV0L2lwdjQv cm91dGUuYwpAQCAtMTk1NCw3ICsxOTU0LDcgQEAgc3RhdGljIGludCBpcF9yb3V0ZV9pbnB1dF9z bG93KHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiBkYWRkciwgX19iZTMyIHNhZGRyLAogCXUz MgkJaXRhZyA9IDA7CiAJc3RydWN0IHJ0YWJsZQkqcnRoOwogCXN0cnVjdCBmbG93aTQJZmw0Owot CWJvb2wgZG9fY2FjaGU7CisJYm9vbCBkb19jYWNoZSA9IHRydWU7CiAKIAkvKiBJUCBvbiB0aGlz IGRldmljZSBpcyBkaXNhYmxlZC4gKi8KIApAQCAtMjAzMSw2ICsyMDMxLDkgQEAgc3RhdGljIGlu dCBpcF9yb3V0ZV9pbnB1dF9zbG93KHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiBkYWRkciwg X19iZTMyIHNhZGRyLAogCWlmIChyZXMtPnR5cGUgPT0gUlROX0JST0FEQ0FTVCkgewogCQlpZiAo SU5fREVWX0JGT1JXQVJEKGluX2RldikpCiAJCQlnb3RvIG1ha2Vfcm91dGU7CisJCS8qIG5vdCBk byBjYWNoZSBpZiBiY19mb3J3YXJkaW5nIGlzIGVuYWJsZWQgKi8KKwkJaWYgKElQVjRfREVWQ09O Rl9BTEwobmV0LCBCQ19GT1JXQVJESU5HKSkKKwkJCWRvX2NhY2hlID0gZmFsc2U7CiAJCWdvdG8g YnJkX2lucHV0OwogCX0KIApAQCAtMjA2OCwxNiArMjA3MSwxMyBAQCBvdXQ6CXJldHVybiBlcnI7 CiAJUlRfQ0FDSEVfU1RBVF9JTkMoaW5fYnJkKTsKIAogbG9jYWxfaW5wdXQ6Ci0JZG9fY2FjaGUg PSBmYWxzZTsKLQlpZiAocmVzLT5maSkgewotCQlpZiAoIWl0YWcpIHsKLQkJCXJ0aCA9IHJjdV9k ZXJlZmVyZW5jZShGSUJfUkVTX05IKCpyZXMpLm5oX3J0aF9pbnB1dCk7Ci0JCQlpZiAocnRfY2Fj aGVfdmFsaWQocnRoKSkgewotCQkJCXNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgJnJ0aC0+ZHN0KTsK LQkJCQllcnIgPSAwOwotCQkJCWdvdG8gb3V0OwotCQkJfQotCQkJZG9fY2FjaGUgPSB0cnVlOwor CWRvX2NhY2hlICY9IHJlcy0+ZmkgJiYgIWl0YWc7CisJaWYgKGRvX2NhY2hlKSB7CisJCXJ0aCA9 IHJjdV9kZXJlZmVyZW5jZShGSUJfUkVTX05IKCpyZXMpLm5oX3J0aF9pbnB1dCk7CisJCWlmIChy dF9jYWNoZV92YWxpZChydGgpKSB7CisJCQlza2JfZHN0X3NldF9ub3JlZihza2IsICZydGgtPmRz dCk7CisJCQllcnIgPSAwOworCQkJZ290byBvdXQ7CiAJCX0KIAl9CiAKLS0gCjIuMjAuMQoKCkZy b20gZWIzNGRiODQ5Y2MyNTAxMmNmMjg1NDBkNDM4MGQwZjZmYzU5OThiYyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBT dW4sIDIgSnVuIDIwMTkgMTk6MTA6NDYgKzA4MDAKU3ViamVjdDogW1BBVENIIDA0LzIyXSBpcHY2 OiBmaXggdGhlIGNoZWNrIGJlZm9yZSBnZXR0aW5nIHRoZSBjb29raWUgaW4KIHJ0Nl9nZXRfY29v a2llCgpbIFVwc3RyZWFtIGNvbW1pdCBiNzk5OWIwNzcyNmMxNjk3NGJhOWNhM2JiOWZlOThlY2Jl YzVmODFjIF0KCkluIEppYW5saW4ncyB0ZXN0aW5nLCBuZXRwZXJmIHdhcyBicm9rZW4gd2l0aCAn Q29ubmVjdGlvbiByZXNldCBieSBwZWVyJywKYXMgdGhlIGNvb2tpZSBjaGVjayBmYWlsZWQgaW4g cnQ2X2NoZWNrKCkgYW5kIGlwNl9kc3RfY2hlY2soKSBhbHdheXMKcmV0dXJuZWQgTlVMTC4KCkl0 J3MgY2F1c2VkIGJ5IENvbW1pdCA5MzUzMWM2NzQzMTUgKCJuZXQvaXB2Njogc2VwYXJhdGUgaGFu ZGxpbmcgb2YgRklCCmVudHJpZXMgZnJvbSBkc3QgYmFzZWQgcm91dGVzIiksIHdoZXJlIHRoZSBj b29raWUgY2FuIGJlIGdvdCBvbmx5IHdoZW4KJ2MxJyhzZWUgYmVsb3cpIGZvciBzZXR0aW5nIGRz dF9jb29raWUgd2hlcmVhcyBydDZfY2hlY2soKSBpcyBjYWxsZWQKd2hlbiAhJ2MxJyBmb3IgY2hl Y2tpbmcgZHN0X2Nvb2tpZSwgYXMgd2UgY2FuIHNlZSBpbiBpcDZfZHN0X2NoZWNrKCkuCgpTaW5j ZSBpbiBpcDZfZHN0X2NoZWNrKCkgYm90aCBydDZfZHN0X2Zyb21fY2hlY2soKSAoYzEpIGFuZCBy dDZfY2hlY2soKQooIWMxKSB3aWxsIGNoZWNrIHRoZSAnZnJvbScgY29va2llLCB0aGlzIHBhdGNo IGlzIHRvIHJlbW92ZSB0aGUgYzEgY2hlY2sKaW4gcnQ2X2dldF9jb29raWUoKSwgc28gdGhhdCB0 aGUgZHN0X2Nvb2tpZSBjYW4gYWx3YXlzIGJlIHNldCBwcm9wZXJseS4KCmMxOgogIChydC0+cnQ2 aV9mbGFncyAmIFJURl9QQ1BVIHx8IHVubGlrZWx5KCFsaXN0X2VtcHR5KCZydC0+cnQ2aV91bmNh Y2hlZCkpKQoKRml4ZXM6IDkzNTMxYzY3NDMxNSAoIm5ldC9pcHY2OiBzZXBhcmF0ZSBoYW5kbGlu ZyBvZiBGSUIgZW50cmllcyBmcm9tIGRzdCBiYXNlZCByb3V0ZXMiKQpSZXBvcnRlZC1ieTogSmlh bmxpbiBTaGkgPGppc2hpQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNp ZW4ueGluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L2lwNl9maWIuaCB8IDMgKy0tCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9uZXQvaXA2X2ZpYi5oIGIvaW5jbHVkZS9uZXQvaXA2X2ZpYi5oCmluZGV4IGI1ZTNhZGQ5 MGU5OS4uNGM1OWZmZjcxOGMxIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pcDZfZmliLmgKKysr IGIvaW5jbHVkZS9uZXQvaXA2X2ZpYi5oCkBAIC0yNTksOCArMjU5LDcgQEAgc3RhdGljIGlubGlu ZSB1MzIgcnQ2X2dldF9jb29raWUoY29uc3Qgc3RydWN0IHJ0Nl9pbmZvICpydCkKIAlyY3VfcmVh ZF9sb2NrKCk7CiAKIAlmcm9tID0gcmN1X2RlcmVmZXJlbmNlKHJ0LT5mcm9tKTsKLQlpZiAoZnJv bSAmJiAocnQtPnJ0NmlfZmxhZ3MgJiBSVEZfUENQVSB8fAotCSAgICB1bmxpa2VseSghbGlzdF9l bXB0eSgmcnQtPnJ0NmlfdW5jYWNoZWQpKSkpCisJaWYgKGZyb20pCiAJCWZpYjZfZ2V0X2Nvb2tp ZV9zYWZlKGZyb20sICZjb29raWUpOwogCiAJcmN1X3JlYWRfdW5sb2NrKCk7Ci0tIAoyLjIwLjEK CgpGcm9tIGFmYTEzMzM0MDI4YjllYzA1YTJlZjliZjY1ZTk0MGFjZjA5ZjJkNDQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEl2YW4gS2hvcm9uemh1ayA8aXZhbi5raG9yb256aHVrQGxp bmFyby5vcmc+CkRhdGU6IEZyaSwgMzEgTWF5IDIwMTkgMTY6NDc6MjUgKzAzMDAKU3ViamVjdDog W1BBVENIIDA1LzIyXSBuZXQ6IGV0aGVybmV0OiB0aTogY3Bzd19ldGh0b29sOiBmaXggZXRodG9v bCByaW5nIHBhcmFtCiBzZXQKClsgVXBzdHJlYW0gY29tbWl0IDA5ZmFmNWE3ZDdjMGJjYjA3ZmFi YTA3MmY2MTE5MzdhZjlkZDU3ODggXQoKRml4IGFiaWxpdHkgdG8gc2V0IFJYIGRlc2NyaXB0b3Ig bnVtYmVyLCB0aGUgcmVhc29uIC0gaW5pdGlhbGx5CiJ0eF9tYXhfcGVuZGluZyIgd2FzIHNldCBp bmNvcnJlY3RseSwgYnV0IHRoZSBpc3N1ZSBhcHBlYXJzIGFmdGVyCmFkZGluZyBzYW5pdHkgY2hl Y2ssIHNvIGZpeCBpcyBmb3IgInNhbml0eSIgcGF0Y2guCgpGaXhlczogMzdlMmQ5OWI1OWM0NzYg KCJldGh0b29sOiBFbnN1cmUgbmV3IHJpbmcgcGFyYW1ldGVycyBhcmUgd2l0aGluIGJvdW5kcyBk dXJpbmcgU1JJTkdQQVJBTSIpClNpZ25lZC1vZmYtYnk6IEl2YW4gS2hvcm9uemh1ayA8aXZhbi5r aG9yb256aHVrQGxpbmFyby5vcmc+ClJldmlld2VkLWJ5OiBHcnlnb3JpaSBTdHJhc2hrbyA8Z3J5 Z29yaWkuc3RyYXNoa29AdGkuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvY3Bzdy5jIHwg MSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC90aS9jcHN3LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9jcHN3LmMK aW5kZXggZGQxMmI3M2E4ODUzLi4xMjg1ZjI4MmQzYWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3RpL2Nwc3cuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9jcHN3LmMK QEAgLTMxMzAsNiArMzEzMCw3IEBAIHN0YXRpYyB2b2lkIGNwc3dfZ2V0X3JpbmdwYXJhbShzdHJ1 Y3QgbmV0X2RldmljZSAqbmRldiwKIAlzdHJ1Y3QgY3Bzd19jb21tb24gKmNwc3cgPSBwcml2LT5j cHN3OwogCiAJLyogbm90IHN1cHBvcnRlZCAqLworCWVyaW5nLT50eF9tYXhfcGVuZGluZyA9IGRl c2NzX3Bvb2xfc2l6ZSAtIENQU1dfTUFYX1FVRVVFUzsKIAllcmluZy0+dHhfbWF4X3BlbmRpbmcg PSAwOwogCWVyaW5nLT50eF9wZW5kaW5nID0gY3BkbWFfZ2V0X251bV90eF9kZXNjcyhjcHN3LT5k bWEpOwogCWVyaW5nLT5yeF9tYXhfcGVuZGluZyA9IGRlc2NzX3Bvb2xfc2l6ZSAtIENQU1dfTUFY X1FVRVVFUzsKLS0gCjIuMjAuMQoKCkZyb20gZThiZjQzNjQwNTVjYmEzZjczZTkxNDM1MDc2Nzdj M2YyNTUzZWI3ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWF4aW1lIENoZXZhbGxp ZXIgPG1heGltZS5jaGV2YWxsaWVyQGJvb3RsaW4uY29tPgpEYXRlOiBUaHUsIDYgSnVuIDIwMTkg MTA6NDI6NTYgKzAyMDAKU3ViamVjdDogW1BBVENIIDA2LzIyXSBuZXQ6IG12cHAyOiBVc2Ugc3Ry c2NweSB0byBoYW5kbGUgc3RhdCBzdHJpbmdzCgpbIFVwc3RyZWFtIGNvbW1pdCBkMzdhY2Q1YWE5 OWM1NzUwNWI2NDkxM2UwZTI2MjRlYzNkYWVkOGM1IF0KClVzZSBhIHNhZmUgc3Ryc2NweSBjYWxs IHRvIGNvcHkgdGhlIGV0aHRvb2wgc3RhdCBzdHJpbmdzIGludG8gdGhlCnJlbGV2YW50IGJ1ZmZl cnMsIGluc3RlYWQgb2YgYSBtZW1jcHkgdGhhdCB3aWxsIGJlIGFjY2Vzc2luZwpvdXQtb2YtYm91 bmQgZGF0YS4KCkZpeGVzOiAxMThkNjI5OGY2ZjAgKCJuZXQ6IG12cHAyOiBhZGQgZXRodG9vbCBH T1Agc3RhdGlzdGljcyIpClNpZ25lZC1vZmYtYnk6IE1heGltZSBDaGV2YWxsaWVyIDxtYXhpbWUu Y2hldmFsbGllckBib290bGluLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZw cDIvbXZwcDJfbWFpbi5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZl bGwvbXZwcDIvbXZwcDJfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBw Mi9tdnBwMl9tYWluLmMKaW5kZXggZjRmMDc2ZDcwOTBlLi45MDZmMDgwZDk1NTkgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZwcDIvbXZwcDJfbWFpbi5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZwcDIvbXZwcDJfbWFpbi5jCkBAIC0xMzA0 LDggKzEzMDQsOCBAQCBzdGF0aWMgdm9pZCBtdnBwMl9ldGh0b29sX2dldF9zdHJpbmdzKHN0cnVj dCBuZXRfZGV2aWNlICpuZXRkZXYsIHUzMiBzc2V0LAogCQlpbnQgaTsKIAogCQlmb3IgKGkgPSAw OyBpIDwgQVJSQVlfU0laRShtdnBwMl9ldGh0b29sX3JlZ3MpOyBpKyspCi0JCQltZW1jcHkoZGF0 YSArIGkgKiBFVEhfR1NUUklOR19MRU4sCi0JCQkgICAgICAgJm12cHAyX2V0aHRvb2xfcmVnc1tp XS5zdHJpbmcsIEVUSF9HU1RSSU5HX0xFTik7CisJCQlzdHJzY3B5KGRhdGEgKyBpICogRVRIX0dT VFJJTkdfTEVOLAorCQkJICAgICAgICBtdnBwMl9ldGh0b29sX3JlZ3NbaV0uc3RyaW5nLCBFVEhf R1NUUklOR19MRU4pOwogCX0KIH0KIAotLSAKMi4yMC4xCgoKRnJvbSBkN2YwMTE5MzI5MWZiZjdj NGJkMTFhZDgxZDI2Mjg5NzI3NGUzMzM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBa aHUgWWFuanVuIDx5YW5qdW4uemh1QG9yYWNsZS5jb20+CkRhdGU6IFRodSwgNiBKdW4gMjAxOSAw NDowMDowMyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMjJdIG5ldDogcmRzOiBmaXggbWVtb3J5 IGxlYWsgaW4gcmRzX2liX2ZsdXNoX21yX3Bvb2wKClsgVXBzdHJlYW0gY29tbWl0IDg1Y2I5Mjg3 ODdlYWI2YTJmNGNhOWQyYTc5OGI2ZjNiZWQ1M2NlZDEgXQoKV2hlbiB0aGUgZm9sbG93aW5nIHRl c3RzIGxhc3QgZm9yIHNldmVyYWwgaG91cnMsIHRoZSBwcm9ibGVtIHdpbGwgb2NjdXIuCgpTZXJ2 ZXI6CiAgICByZHMtc3RyZXNzIC1yIDEuMS4xLjE2IC1EIDFNCkNsaWVudDoKICAgIHJkcy1zdHJl c3MgLXIgMS4xLjEuMTQgLXMgMS4xLjEuMTYgLUQgMU0gLVQgMzAKClRoZSBmb2xsb3dpbmcgd2ls bCBvY2N1ci4KCiIKU3RhcnRpbmcgdXAuLi4uCnRza3MgICB0eC9zICAgcngvcyAgdHgrcnggSy9z ICAgIG1iaSBLL3MgICAgbWJvIEsvcyB0eCB1cy9jICAgcnR0IHVzIGNwdQolCiAgMSAgICAgIDAg ICAgICAwICAgICAgIDAuMDAgICAgICAgMC4wMCAgICAgICAwLjAwICAgIDAuMDAgMC4wMCAtMS4w MAogIDEgICAgICAwICAgICAgMCAgICAgICAwLjAwICAgICAgIDAuMDAgICAgICAgMC4wMCAgICAw LjAwIDAuMDAgLTEuMDAKICAxICAgICAgMCAgICAgIDAgICAgICAgMC4wMCAgICAgICAwLjAwICAg ICAgIDAuMDAgICAgMC4wMCAwLjAwIC0xLjAwCiAgMSAgICAgIDAgICAgICAwICAgICAgIDAuMDAg ICAgICAgMC4wMCAgICAgICAwLjAwICAgIDAuMDAgMC4wMCAtMS4wMAoiCj5Gcm9tIHZtY29yZSwg d2UgY2FuIGZpbmQgdGhhdCBjbGVhbl9saXN0IGlzIE5VTEwuCgo+RnJvbSB0aGUgc291cmNlIGNv ZGUsIHJkc19tcl9mbHVzaGQgY2FsbHMgcmRzX2liX21yX3Bvb2xfZmx1c2hfd29ya2VyLgpUaGVu IHJkc19pYl9tcl9wb29sX2ZsdXNoX3dvcmtlciBjYWxscwoiCiByZHNfaWJfZmx1c2hfbXJfcG9v bChwb29sLCAwLCBOVUxMKTsKIgpUaGVuIGluIGZ1bmN0aW9uCiIKaW50IHJkc19pYl9mbHVzaF9t cl9wb29sKHN0cnVjdCByZHNfaWJfbXJfcG9vbCAqcG9vbCwKICAgICAgICAgICAgICAgICAgICAg ICAgIGludCBmcmVlX2FsbCwgc3RydWN0IHJkc19pYl9tciAqKmlibXJfcmV0KQoiCmlibXJfcmV0 IGlzIE5VTEwuCgpJbiB0aGUgc291cmNlIGNvZGUsCiIKLi4uCmxpc3RfdG9fbGxpc3Rfbm9kZXMo cG9vbCwgJnVubWFwX2xpc3QsICZjbGVhbl9ub2RlcywgJmNsZWFuX3RhaWwpOwppZiAoaWJtcl9y ZXQpCiAgICAgICAgKmlibXJfcmV0ID0gbGxpc3RfZW50cnkoY2xlYW5fbm9kZXMsIHN0cnVjdCBy ZHNfaWJfbXIsIGxsbm9kZSk7CgovKiBtb3JlIHRoYW4gb25lIGVudHJ5IGluIGxsaXN0IG5vZGVz ICovCmlmIChjbGVhbl9ub2Rlcy0+bmV4dCkKICAgICAgICBsbGlzdF9hZGRfYmF0Y2goY2xlYW5f bm9kZXMtPm5leHQsIGNsZWFuX3RhaWwsICZwb29sLT5jbGVhbl9saXN0KTsKLi4uCiIKV2hlbiBp Ym1yX3JldCBpcyBOVUxMLCBsbGlzdF9lbnRyeSBpcyBub3QgZXhlY3V0ZWQuIGNsZWFuX25vZGVz LT5uZXh0Cmluc3RlYWQgb2YgY2xlYW5fbm9kZXMgaXMgYWRkZWQgaW4gY2xlYW5fbGlzdC4KU28g Y2xlYW5fbm9kZXMgaXMgZGlzY2FyZGVkLiBJdCBjYW4gbm90IGJlIHVzZWQgYWdhaW4uClRoZSB3 b3JrcXVldWUgaXMgZXhlY3V0ZWQgcGVyaW9kaWNhbGx5LiBTbyBtb3JlIGFuZCBtb3JlIGNsZWFu X25vZGVzIGFyZQpkaXNjYXJkZWQuIEZpbmFsbHkgdGhlIGNsZWFuX2xpc3QgaXMgTlVMTC4KVGhl biB0aGlzIHByb2JsZW0gd2lsbCBvY2N1ci4KCkZpeGVzOiAxYmMxNDRiNjI1MjQgKCJuZXQsIHJk cywgUmVwbGFjZSB4bGlzdCBpbiBuZXQvcmRzL3hsaXN0Lmggd2l0aCBsbGlzdCIpClNpZ25lZC1v ZmYtYnk6IFpodSBZYW5qdW4gPHlhbmp1bi56aHVAb3JhY2xlLmNvbT4KQWNrZWQtYnk6IFNhbnRv c2ggU2hpbGlta2FyIDxzYW50b3NoLnNoaWxpbWthckBvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Jkcy9pYl9y ZG1hLmMgfCAxMCArKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9yZHMvaWJfcmRtYS5jIGIvbmV0L3Jkcy9p Yl9yZG1hLmMKaW5kZXggZDY2NGU5YWRlNzRkLi4wYjM0N2Y0NmIyZjQgMTAwNjQ0Ci0tLSBhL25l dC9yZHMvaWJfcmRtYS5jCisrKyBiL25ldC9yZHMvaWJfcmRtYS5jCkBAIC00MjgsMTIgKzQyOCwx NCBAQCBpbnQgcmRzX2liX2ZsdXNoX21yX3Bvb2woc3RydWN0IHJkc19pYl9tcl9wb29sICpwb29s LAogCQl3YWl0X2NsZWFuX2xpc3RfZ3JhY2UoKTsKIAogCQlsaXN0X3RvX2xsaXN0X25vZGVzKHBv b2wsICZ1bm1hcF9saXN0LCAmY2xlYW5fbm9kZXMsICZjbGVhbl90YWlsKTsKLQkJaWYgKGlibXJf cmV0KQorCQlpZiAoaWJtcl9yZXQpIHsKIAkJCSppYm1yX3JldCA9IGxsaXN0X2VudHJ5KGNsZWFu X25vZGVzLCBzdHJ1Y3QgcmRzX2liX21yLCBsbG5vZGUpOwotCisJCQljbGVhbl9ub2RlcyA9IGNs ZWFuX25vZGVzLT5uZXh0OworCQl9CiAJCS8qIG1vcmUgdGhhbiBvbmUgZW50cnkgaW4gbGxpc3Qg bm9kZXMgKi8KLQkJaWYgKGNsZWFuX25vZGVzLT5uZXh0KQotCQkJbGxpc3RfYWRkX2JhdGNoKGNs ZWFuX25vZGVzLT5uZXh0LCBjbGVhbl90YWlsLCAmcG9vbC0+Y2xlYW5fbGlzdCk7CisJCWlmIChj bGVhbl9ub2RlcykKKwkJCWxsaXN0X2FkZF9iYXRjaChjbGVhbl9ub2RlcywgY2xlYW5fdGFpbCwK KwkJCQkJJnBvb2wtPmNsZWFuX2xpc3QpOwogCiAJfQogCi0tIAoyLjIwLjEKCgpGcm9tIDgyMGNm NTZiZjc1MzM1ZWM3NmRkMDdmN2YwOTI2MTI3ZmYyYjBlM2EgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+CkRhdGU6 IFN1biwgMiBKdW4gMjAxOSAxNToxMzowMCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMjJdIG5l dDogc2ZwOiByZWFkIGVlcHJvbSBpbiBtYXhpbXVtIDE2IGJ5dGUgaW5jcmVtZW50cwoKWyBVcHN0 cmVhbSBjb21taXQgMjhlNzRhN2NmZDY0MDNmMGQxYzBmOGIxMGI0NWQ2ZmFlMzdiMjI3ZSBdCgpT b21lIFNGUCBtb2R1bGVzIGRvIG5vdCBsaWtlIHJlYWRzIGxvbmdlciB0aGFuIDE2IGJ5dGVzLCBz byByZWFkIHRoZQpFRVBST00gaW4gY2h1bmtzIG9mIDE2IGJ5dGVzIGF0IGEgdGltZS4gIFRoaXMg YmVoYXZpb3VyIGlzIG5vdCBzcGVjaWZpZWQKaW4gdGhlIFNGUCBNU0FzLCB3aGljaCBzcGVjaWZp ZXM6CgogIlRoZSBzZXJpYWwgaW50ZXJmYWNlIHVzZXMgdGhlIDItd2lyZSBzZXJpYWwgQ01PUyBF MlBST00gcHJvdG9jb2wKICBkZWZpbmVkIGZvciB0aGUgQVRNRUwgQVQyNEMwMUEvMDIvMDQgZmFt aWx5IG9mIGNvbXBvbmVudHMuIgoKYW5kCgogIkFzIGxvbmcgYXMgdGhlIFNGUCsgcmVjZWl2ZXMg YW4gYWNrbm93bGVkZ2UsIGl0IHNoYWxsIHNlcmlhbGx5IGNsb2NrCiAgb3V0IHNlcXVlbnRpYWwg ZGF0YSB3b3Jkcy4gVGhlIHNlcXVlbmNlIGlzIHRlcm1pbmF0ZWQgd2hlbiB0aGUgaG9zdAogIHJl c3BvbmRzIHdpdGggYSBOQUNLIGFuZCBhIFNUT1AgaW5zdGVhZCBvZiBhbiBhY2tub3dsZWRnZS4i CgpXZSBtdXN0IGF2b2lkIGJyZWFraW5nIGEgcmVhZCBhY3Jvc3MgYSAxNi1iaXQgcXVhbnRpdHkg aW4gdGhlIGRpYWdub3N0aWMKcGFnZSwgdGhhbmtmdWxseSBhbGwgMTYtYml0IHF1YW50aXRpZXMg aW4gdGhhdCBwYWdlIGFyZSBuYXR1cmFsbHkKYWxpZ25lZC4KClNpZ25lZC1vZmYtYnk6IFJ1c3Nl bGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+ClJldmlld2VkLWJ5OiBBbmRyZXcg THVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvc2ZwLmMgfCAyNCArKysrKysr KysrKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9zZnAuYyBiL2RyaXZlcnMv bmV0L3BoeS9zZnAuYwppbmRleCBkNDYzNWMyMTc4ZDEuLjcxODEyYmUwYWM2NCAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvcGh5L3NmcC5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuYwpAQCAt MjgxLDYgKzI4MSw3IEBAIHN0YXRpYyBpbnQgc2ZwX2kyY19yZWFkKHN0cnVjdCBzZnAgKnNmcCwg Ym9vbCBhMiwgdTggZGV2X2FkZHIsIHZvaWQgKmJ1ZiwKIHsKIAlzdHJ1Y3QgaTJjX21zZyBtc2dz WzJdOwogCXU4IGJ1c19hZGRyID0gYTIgPyAweDUxIDogMHg1MDsKKwlzaXplX3QgdGhpc19sZW47 CiAJaW50IHJldDsKIAogCW1zZ3NbMF0uYWRkciA9IGJ1c19hZGRyOwpAQCAtMjkyLDExICsyOTMs MjYgQEAgc3RhdGljIGludCBzZnBfaTJjX3JlYWQoc3RydWN0IHNmcCAqc2ZwLCBib29sIGEyLCB1 OCBkZXZfYWRkciwgdm9pZCAqYnVmLAogCW1zZ3NbMV0ubGVuID0gbGVuOwogCW1zZ3NbMV0uYnVm ID0gYnVmOwogCi0JcmV0ID0gaTJjX3RyYW5zZmVyKHNmcC0+aTJjLCBtc2dzLCBBUlJBWV9TSVpF KG1zZ3MpKTsKLQlpZiAocmV0IDwgMCkKLQkJcmV0dXJuIHJldDsKKwl3aGlsZSAobGVuKSB7CisJ CXRoaXNfbGVuID0gbGVuOworCQlpZiAodGhpc19sZW4gPiAxNikKKwkJCXRoaXNfbGVuID0gMTY7 CiAKLQlyZXR1cm4gcmV0ID09IEFSUkFZX1NJWkUobXNncykgPyBsZW4gOiAwOworCQltc2dzWzFd LmxlbiA9IHRoaXNfbGVuOworCisJCXJldCA9IGkyY190cmFuc2ZlcihzZnAtPmkyYywgbXNncywg QVJSQVlfU0laRShtc2dzKSk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQlp ZiAocmV0ICE9IEFSUkFZX1NJWkUobXNncykpCisJCQlicmVhazsKKworCQltc2dzWzFdLmJ1ZiAr PSB0aGlzX2xlbjsKKwkJZGV2X2FkZHIgKz0gdGhpc19sZW47CisJCWxlbiAtPSB0aGlzX2xlbjsK Kwl9CisKKwlyZXR1cm4gbXNnc1sxXS5idWYgLSAodTggKilidWY7CiB9CiAKIHN0YXRpYyBpbnQg c2ZwX2kyY193cml0ZShzdHJ1Y3Qgc2ZwICpzZnAsIGJvb2wgYTIsIHU4IGRldl9hZGRyLCB2b2lk ICpidWYsCi0tIAoyLjIwLjEKCgpGcm9tIDc3ZDUxNDRiZjU3YTlhZjNjMTNjYTQzOWNiODQwMjM0 ZDk1NTdlNjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdpbGxlbSBkZSBCcnVpam4g PHdpbGxlbWJAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAzMSBNYXkgMjAxOSAxMjozNzoyMyAtMDQw MApTdWJqZWN0OiBbUEFUQ0ggMDkvMjJdIHBhY2tldDogdW5jb25kaXRpb25hbGx5IGZyZWUgcG8t PnJvbGxvdmVyCgpbIFVwc3RyZWFtIGNvbW1pdCBhZmEwOTI1YzZmY2M2YThmNjEwZTk5NmNhMDli YzMyMTUwNDgwMzNjIF0KClJvbGxvdmVyIHVzZWQgdG8gdXNlIGEgY29tcGxleCBSQ1UgbWVjaGFu aXNtIGZvciBhc3NpZ25tZW50LCB3aGljaCBoYWQKYSByYWNlIGNvbmRpdGlvbi4gVGhlIGJlbG93 IHBhdGNoIGZpeGVkIHRoZSBidWcgYW5kIGdyZWF0bHkgc2ltcGxpZmllZAp0aGUgbG9naWMuCgpU aGUgZmVhdHVyZSBkZXBlbmRzIG9uIGZhbm91dCwgYnV0IHRoZSBzdGF0ZSBpcyBwcml2YXRlIHRv IHRoZSBzb2NrZXQuCkZhbm91dF9yZWxlYXNlIHJldHVybnMgZiBvbmx5IHdoZW4gdGhlIGxhc3Qg bWVtYmVyIGxlYXZlcyBhbmQgdGhlCmZhbm91dCBzdHJ1Y3QgaXMgdG8gYmUgZnJlZWQuCgpEZXN0 cm95IHJvbGxvdmVyIHVuY29uZGl0aW9uYWxseSwgcmVnYXJkbGVzcyBvZiBmYW5vdXQgc3RhdGUu CgpGaXhlczogNTdmMDE1ZjVlY2NmMiAoInBhY2tldDogZml4IGNyYXNoIGluIGZhbm91dF9kZW11 eF9yb2xsb3ZlcigpIikKUmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vw cy5jb20+CkRpYWdub3NlZC1ieTogRG1pdHJ5IFZ5dWtvdiA8ZHZ5dWtvdkBnb29nbGUuY29tPgpT aWduZWQtb2ZmLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv cGFja2V0L2FmX3BhY2tldC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25l dC9wYWNrZXQvYWZfcGFja2V0LmMKaW5kZXggNTlkYTZmNWI3MTdkLi43MWQ1NTQ0MjQzZDIgMTAw NjQ0Ci0tLSBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0L3BhY2tldC9hZl9wYWNr ZXQuYwpAQCAtMzAxNiw4ICszMDE2LDggQEAgc3RhdGljIGludCBwYWNrZXRfcmVsZWFzZShzdHJ1 Y3Qgc29ja2V0ICpzb2NrKQogCiAJc3luY2hyb25pemVfbmV0KCk7CiAKKwlrZnJlZShwby0+cm9s bG92ZXIpOwogCWlmIChmKSB7Ci0JCWtmcmVlKHBvLT5yb2xsb3Zlcik7CiAJCWZhbm91dF9yZWxl YXNlX2RhdGEoZik7CiAJCWtmcmVlKGYpOwogCX0KLS0gCjIuMjAuMQoKCkZyb20gZjcwNTliMzhi NWQyNzM3NTA0MmMxZjg4ZTQ1NmNlYjIxMWMwZGZhOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogUGFvbG8gQWJlbmkgPHBhYmVuaUByZWRoYXQuY29tPgpEYXRlOiBUaHUsIDYgSnVuIDIw MTkgMTU6NDU6MDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDEwLzIyXSBwa3RnZW46IGRvIG5vdCBz bGVlcCB3aXRoIHRoZSB0aHJlYWQgbG9jayBoZWxkLgoKWyBVcHN0cmVhbSBjb21taXQgNzIwZjFk ZTQwMjFmMDk4OThiOGM4NDQzZjNiM2U5OTU5OTFiNmUzYSBdCgpDdXJyZW50bHksIHRoZSBwcm9j ZXNzIGlzc3VpbmcgYSAic3RhcnQiIGNvbW1hbmQgb24gdGhlIHBrdGdlbiBwcm9jZnMKaW50ZXJm YWNlLCBhY3F1aXJlcyB0aGUgcGt0Z2VuIHRocmVhZCBsb2NrIGFuZCBuZXZlciByZWxlYXNlIGl0 LCB1bnRpbAphbGwgcGt0Z2VuIHRocmVhZHMgYXJlIGNvbXBsZXRlZC4gVGhlIGFib3ZlIGNhbiBi bG9ja3MgaW5kZWZpbml0ZWx5IGFueQpvdGhlciBwa3RnZW4gY29tbWFuZCBhbmQgYW55IChldmVu IHVucmVsYXRlZCkgbmV0ZGV2aWNlIHJlbW92YWwgLSBhcwp0aGUgcGt0Z2VuIG5ldGRldiBub3Rp ZmllciBhY3F1aXJlcyB0aGUgc2FtZSBsb2NrLgoKVGhlIGlzc3VlIGlzIGRlbW9uc3RyYXRlZCBi eSB0aGUgZm9sbG93aW5nIHNjcmlwdCwgcmVwb3J0ZWQgYnkgTWF0dGVvOgoKaXAgLWIgLSA8PCdF T0YnCglsaW5rIGFkZCB0eXBlIGR1bW15CglsaW5rIGFkZCB0eXBlIHZldGgKCWxpbmsgc2V0IGR1 bW15MCB1cApFT0YKbW9kcHJvYmUgcGt0Z2VuCmVjaG8gcmVzZXQgPi9wcm9jL25ldC9wa3RnZW4v cGdjdHJsCnsKCWVjaG8gcmVtX2RldmljZV9hbGwKCWVjaG8gYWRkX2RldmljZSBkdW1teTAKfSA+ L3Byb2MvbmV0L3BrdGdlbi9rcGt0Z2VuZF8wCmVjaG8gY291bnQgMCA+L3Byb2MvbmV0L3BrdGdl bi9kdW1teTAKZWNobyBzdGFydCA+L3Byb2MvbmV0L3BrdGdlbi9wZ2N0cmwgJgpzbGVlcCAxCnJt bW9kIHZldGgKCkZpeCB0aGUgYWJvdmUgcmVsZWFzaW5nIHRoZSB0aHJlYWQgbG9jayBhcm91bmQg dGhlIHNsZWVwIGNhbGwuCgpBZGRpdGlvbmFsbHkgd2UgbXVzdCBwcmV2ZW50IHJhY2luZyB3aXRo IGZvcmNlZnVsbCBybW1vZCAtIGFzIHRoZQp0aHJlYWQgbG9jayBubyBtb3JlIHByb3RlY3RzIGZy b20gdGhlbS4gSW5zdGVhZCwgYWNxdWlyZSBhIHNlbGYtcmVmZXJlbmNlCmJlZm9yZSB3YWl0aW5n IGZvciBhbnkgdGhyZWFkLiBBcyBhIHNpZGUgZWZmZWN0LCBydW5uaW5nCgpybW1vZCBwa3RnZW4K CndoaWxlIHNvbWUgdGhyZWFkIGlzIHJ1bm5pbmcgbm93IGZhaWxzIHdpdGggIm1vZHVsZSBpbiB1 c2UiIGVycm9yLApiZWZvcmUgdGhpcyBwYXRjaCBzdWNoIGNvbW1hbmQgaGFuZ2VkIGluZGVmaW5p dGVseS4KCk5vdGU6IHRoZSBpc3N1ZSBwcmVkYXRlcyB0aGUgY29tbWl0IHJlcG9ydGVkIGluIHRo ZSBmaXhlcyB0YWcsIGJ1dAp0aGlzIGZpeCBjYW4ndCBiZSBhcHBsaWVkIGJlZm9yZSB0aGUgbWVu dGlvbmVkIGNvbW1pdC4KCnYxIC0+IHYyOgogLSBubyBuZWVkIHRvIGNoZWNrIGZvciB0aHJlYWQg ZXhpc3RlbmNlIGFmdGVyIGZsaXBwaW5nIHRoZSBsb2NrLAogICBwa3RnZW4gdGhyZWFkcyBhcmUg ZnJlZWQgb25seSBhdCBuZXQgZXhpdCB0aW1lCiAtCgpGaXhlczogNjE0NmU2YTQzYjM1ICgiW1BL VEdFTl06IFJlbW92ZXMgdGhyZWFkX3t1bix9bG9jaygpIG1hY3Jvcy4iKQpSZXBvcnRlZC1hbmQt dGVzdGVkLWJ5OiBNYXR0ZW8gQ3JvY2UgPG1jcm9jZUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5 OiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9wa3RnZW4uYyB8IDEx ICsrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL25ldC9jb3JlL3BrdGdlbi5jIGIvbmV0L2NvcmUvcGt0Z2VuLmMKaW5kZXggZjNmNWE3OGNk MDYyLi5mMTljNDk4ZjRlY2IgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3BrdGdlbi5jCisrKyBiL25l dC9jb3JlL3BrdGdlbi5jCkBAIC0zMDY2LDcgKzMwNjYsMTMgQEAgc3RhdGljIGludCBwa3RnZW5f d2FpdF90aHJlYWRfcnVuKHN0cnVjdCBwa3RnZW5fdGhyZWFkICp0KQogewogCXdoaWxlICh0aHJl YWRfaXNfcnVubmluZyh0KSkgewogCisJCS8qIG5vdGU6ICd0JyB3aWxsIHN0aWxsIGJlIGFyb3Vu ZCBldmVuIGFmdGVyIHRoZSB1bmxvY2svbG9jaworCQkgKiBjeWNsZSBiZWNhdXNlIHBrdGdlbl90 aHJlYWQgdGhyZWFkcyBhcmUgb25seSBjbGVhcmVkIGF0CisJCSAqIG5ldCBleGl0CisJCSAqLwor CQltdXRleF91bmxvY2soJnBrdGdlbl90aHJlYWRfbG9jayk7CiAJCW1zbGVlcF9pbnRlcnJ1cHRp YmxlKDEwMCk7CisJCW11dGV4X2xvY2soJnBrdGdlbl90aHJlYWRfbG9jayk7CiAKIAkJaWYgKHNp Z25hbF9wZW5kaW5nKGN1cnJlbnQpKQogCQkJZ290byBzaWduYWw7CkBAIC0zMDgxLDYgKzMwODcs MTAgQEAgc3RhdGljIGludCBwa3RnZW5fd2FpdF9hbGxfdGhyZWFkc19ydW4oc3RydWN0IHBrdGdl bl9uZXQgKnBuKQogCXN0cnVjdCBwa3RnZW5fdGhyZWFkICp0OwogCWludCBzaWcgPSAxOwogCisJ LyogcHJldmVudCBmcm9tIHJhY2luZyB3aXRoIHJtbW9kICovCisJaWYgKCF0cnlfbW9kdWxlX2dl dChUSElTX01PRFVMRSkpCisJCXJldHVybiBzaWc7CisKIAltdXRleF9sb2NrKCZwa3RnZW5fdGhy ZWFkX2xvY2spOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeSh0LCAmcG4tPnBrdGdlbl90aHJlYWRz LCB0aF9saXN0KSB7CkBAIC0zMDk0LDYgKzMxMDQsNyBAQCBzdGF0aWMgaW50IHBrdGdlbl93YWl0 X2FsbF90aHJlYWRzX3J1bihzdHJ1Y3QgcGt0Z2VuX25ldCAqcG4pCiAJCQl0LT5jb250cm9sIHw9 IChUX1NUT1ApOwogCiAJbXV0ZXhfdW5sb2NrKCZwa3RnZW5fdGhyZWFkX2xvY2spOworCW1vZHVs ZV9wdXQoVEhJU19NT0RVTEUpOwogCXJldHVybiBzaWc7CiB9CiAKLS0gCjIuMjAuMQoKCkZyb20g MTQyYzU5MTZlNzEyZjI0MWY0NDM2YWY5ZmUyZjgxYjkzMTg3OTFiMyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSGFuZ2JpbiBMaXUgPGxpdWhhbmdiaW5AZ21haWwuY29tPgpEYXRlOiBX ZWQsIDUgSnVuIDIwMTkgMTI6Mjc6MTQgKzA4MDAKU3ViamVjdDogW1BBVENIIDExLzIyXSBSZXZl cnQgImZpYl9ydWxlczogcmV0dXJuIDAgZGlyZWN0bHkgaWYgYW4gZXhhY3RseSBzYW1lCiBydWxl IGV4aXN0cyB3aGVuIE5MTV9GX0VYQ0wgbm90IHN1cHBsaWVkIgpNSU1FLVZlcnNpb246IDEuMApD b250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1F bmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgNDk3MGI0MmQ1YzM2MmJmODczOTgyZGI3 ZDkzMjQ1YzUyODFlNThmNCBdCgpUaGlzIHJldmVydHMgY29tbWl0IGU5OTE5YTI0ZDMwMjJmNzJi Y2FkYzQwN2U3M2E2ZWYxNzA5M2E4NDkuCgpOYXRoYW4gcmVwb3J0ZWQgdGhlIG5ldyBiZWhhdmlv dXIgYnJlYWtzIEFuZHJvaWQsIGFzIEFuZHJvaWQganVzdCBhZGQKbmV3IHJ1bGVzIGFuZCBkZWxl dGUgb2xkIG9uZXMuCgpJZiB3ZSByZXR1cm4gMCB3aXRob3V0IGFkZGluZyBkdXAgcnVsZXMsIEFu ZHJvaWQgd2lsbCByZW1vdmUgdGhlIG5ldwphZGRlZCBydWxlcyBhbmQgY2F1c2luZyBzeXN0ZW0g dG8gc29mdC1yZWJvb3QuCgpGaXhlczogZTk5MTlhMjRkMzAyICgiZmliX3J1bGVzOiByZXR1cm4g MCBkaXJlY3RseSBpZiBhbiBleGFjdGx5IHNhbWUgcnVsZSBleGlzdHMgd2hlbiBOTE1fRl9FWENM IG5vdCBzdXBwbGllZCIpClJlcG9ydGVkLWJ5OiBOYXRoYW4gQ2hhbmNlbGxvciA8bmF0ZWNoYW5j ZWxsb3JAZ21haWwuY29tPgpSZXBvcnRlZC1ieTogWWFybyBTbGF2IDx5YXJvMzMwQGdtYWlsLmNv bT4KUmVwb3J0ZWQtYnk6IE1hY2llaiDFu2VuY3p5a293c2tpIDx6ZW5jenlrb3dza2lAZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+ClJl dmlld2VkLWJ5OiBOYXRoYW4gQ2hhbmNlbGxvciA8bmF0ZWNoYW5jZWxsb3JAZ21haWwuY29tPgpU ZXN0ZWQtYnk6IE5hdGhhbiBDaGFuY2VsbG9yIDxuYXRlY2hhbmNlbGxvckBnbWFpbC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvY29yZS9maWJfcnVsZXMuYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2ZpYl9ydWxlcy5j IGIvbmV0L2NvcmUvZmliX3J1bGVzLmMKaW5kZXggYzQ5Yjc1MmVhN2ViLi5mZmJiODI3NzIzYTIg MTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2ZpYl9ydWxlcy5jCisrKyBiL25ldC9jb3JlL2ZpYl9ydWxl cy5jCkBAIC03NTYsOSArNzU2LDkgQEAgaW50IGZpYl9ubF9uZXdydWxlKHN0cnVjdCBza19idWZm ICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoLAogCWlmIChlcnIpCiAJCWdvdG8gZXJyb3V0Owog Ci0JaWYgKHJ1bGVfZXhpc3RzKG9wcywgZnJoLCB0YiwgcnVsZSkpIHsKLQkJaWYgKG5saC0+bmxt c2dfZmxhZ3MgJiBOTE1fRl9FWENMKQotCQkJZXJyID0gLUVFWElTVDsKKwlpZiAoKG5saC0+bmxt c2dfZmxhZ3MgJiBOTE1fRl9FWENMKSAmJgorCSAgICBydWxlX2V4aXN0cyhvcHMsIGZyaCwgdGIs IHJ1bGUpKSB7CisJCWVyciA9IC1FRVhJU1Q7CiAJCWdvdG8gZXJyb3V0X2ZyZWU7CiAJfQogCi0t IAoyLjIwLjEKCgpGcm9tIDAxZThmM2ZhYjM5NzUxOTBhNjUxNGFmNTNmYjM3NWI5ZDJhNWYzYjQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEphbWVzIENsYXJrZSA8anJ0YzI3QGpydGMy Ny5jb20+CkRhdGU6IFdlZCwgMjkgTWF5IDIwMTkgMjI6MzE6MzEgKzAxMDAKU3ViamVjdDogW1BB VENIIDEyLzIyXSBzcGFyYzY0OiBGaXggcmVncmVzc2lvbiBpbiBub24taHlwZXJ2aXNvciBUTEIg Zmx1c2gKIHhjYWxsCgpbIFVwc3RyZWFtIGNvbW1pdCBkM2M5NzZjMTRhZDhhZjQyMTEzNGM0Mjhi MGE4OWZmOGRkM2JkOGY4IF0KClByZXZpb3VzbHksICVnMiB3b3VsZCBlbmQgdXAgd2l0aCB0aGUg dmFsdWUgUEFHRV9TSVpFLCBidXQgYWZ0ZXIgdGhlCmNvbW1pdCBtZW50aW9uZWQgYmVsb3cgaXQg ZW5kcyB1cCB3aXRoIHRoZSB2YWx1ZSAxIGR1ZSB0byBiZWluZyByZXVzZWQKZm9yIGEgZGlmZmVy ZW50IHB1cnBvc2UuIFdlIG5lZWQgaXQgdG8gYmUgUEFHRV9TSVpFIGFzIHdlIHVzZSBpdCB0byBz dGVwCnRocm91Z2ggcGFnZXMgaW4gb3VyIGRlbWFwIGxvb3AsIG90aGVyd2lzZSB3ZSBzZXQgZGlm ZmVyZW50IGZsYWdzIGluIHRoZQpsb3cgMTIgYml0cyBvZiB0aGUgYWRkcmVzcyB3cml0dGVuIHRv LCB0aGVyZWJ5IGRvaW5nIHRoaW5ncyBvdGhlciB0aGFuIGEKbnVjbGV1cyBwYWdlIGZsdXNoLgoK Rml4ZXM6IGE3NGFkNWU2NjBhOSAoInNwYXJjNjQ6IEhhbmRsZSBleHRyZW1lbHkgbGFyZ2Uga2Vy bmVsIFRMQiByYW5nZSBmbHVzaGVzIG1vcmUgZ3JhY2VmdWxseS4iKQpSZXBvcnRlZC1ieTogTWVl bGlzIFJvb3MgPG1yb29zQGxpbnV4LmVlPgpUZXN0ZWQtYnk6IE1lZWxpcyBSb29zIDxtcm9vc0Bs aW51eC5lZT4KU2lnbmVkLW9mZi1ieTogSmFtZXMgQ2xhcmtlIDxqcnRjMjdAanJ0YzI3LmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGFyY2gvc3BhcmMvbW0vdWx0cmEuUyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL21tL3VsdHJh LlMgYi9hcmNoL3NwYXJjL21tL3VsdHJhLlMKaW5kZXggZDI0NWY4OWQxMzk1Li5kMjIwYjY4NDg3 NDYgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMvbW0vdWx0cmEuUworKysgYi9hcmNoL3NwYXJjL21t L3VsdHJhLlMKQEAgLTU4Nyw3ICs1ODcsNyBAQCB4Y2FsbF9mbHVzaF90bGJfa2VybmVsX3Jhbmdl OgkvKiA0NCBpbnNucyAqLwogCXN1YgkJJWc3LCAlZzEsICVnMwogCXNybHgJCSVnMywgMTgsICVn MgogCWJybnoscG4JCSVnMiwgMmYKLQkgYWRkCQklZzIsIDEsICVnMgorCSBzZXRoaQkJJWhpKFBB R0VfU0laRSksICVnMgogCXN1YgkJJWczLCAlZzIsICVnMwogCW9yCQklZzEsIDB4MjAsICVnMQkJ ISBOdWNsZXVzCiAxOglzdHhhCQklZzAsIFslZzEgKyAlZzNdIEFTSV9ETU1VX0RFTUFQCkBAIC03 NTEsNyArNzUxLDcgQEAgX19jaGVldGFoX3hjYWxsX2ZsdXNoX3RsYl9rZXJuZWxfcmFuZ2U6CS8q IDQ0IGluc25zICovCiAJc3ViCQklZzcsICVnMSwgJWczCiAJc3JseAkJJWczLCAxOCwgJWcyCiAJ YnJueixwbgkJJWcyLCAyZgotCSBhZGQJCSVnMiwgMSwgJWcyCisJIHNldGhpCQklaGkoUEFHRV9T SVpFKSwgJWcyCiAJc3ViCQklZzMsICVnMiwgJWczCiAJb3IJCSVnMSwgMHgyMCwgJWcxCQkhIE51 Y2xldXMKIDE6CXN0eGEJCSVnMCwgWyVnMSArICVnM10gQVNJX0RNTVVfREVNQVAKLS0gCjIuMjAu MQoKCkZyb20gZTQxYjQwMWJhOGRlOGI2Y2M2YjYwM2EyNGVjNjlmMWE3MjAzNjIyYiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGltIEJlYWxlIDx0aW1iZWFsZUBjYXRhbHlzdC5uZXQu bno+CkRhdGU6IFR1ZSwgNCBKdW4gMjAxOSAxMzo1NjoyMyArMTIwMApTdWJqZWN0OiBbUEFUQ0gg MTMvMjJdIHVkcDogb25seSBjaG9vc2UgdW5ib3VuZCBVRFAgc29ja2V0IGZvciBtdWx0aWNhc3Qg d2hlbgogbm90IGluIGEgVlJGCgpbIFVwc3RyZWFtIGNvbW1pdCA4MmJhMjVjNmRlMjAwZDdhOWU5 Yzk3MGM5OThjZGQ2ZGZhODYzN2FlIF0KCkJ5IGRlZmF1bHQsIHBhY2tldHMgcmVjZWl2ZWQgaW4g YW5vdGhlciBWUkYgc2hvdWxkIG5vdCBiZSBwYXNzZWQgdG8gYW4KdW5ib3VuZCBzb2NrZXQgaW4g dGhlIGRlZmF1bHQgVlJGLiBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIElQdjQgVURQCm11bHRpY2Fz dCBsb2dpYyB0byBtYXRjaCB0aGUgdW5pY2FzdCBWUkYgbG9naWMgKGluIGNvbXB1dGVfc2NvcmUo KSksCmFzIHdlbGwgYXMgdGhlIElQdjYgbWNhc3QgbG9naWMgKGluIF9fdWRwX3Y2X2lzX21jYXN0 X3NvY2soKSkuCgpUaGUgcGFydGljdWxhciBjYXNlIEkgbm90aWNlZCB3YXMgREhDUCBkaXNjb3Zl ciBwYWNrZXRzIGdvaW5nCnRvIHRoZSAyNTUuMjU1LjI1NS4yNTUgYWRkcmVzcywgd2hpY2ggYXJl IGhhbmRsZWQgYnkKX191ZHA0X2xpYl9tY2FzdF9kZWxpdmVyKCkuIFRoZSBwcmV2aW91cyBjb2Rl IG1lYW50IHRoYXQgcnVubmluZwptdWx0aXBsZSBkaWZmZXJlbnQgREhDUCBzZXJ2ZXIgb3IgcmVs YXkgYWdlbnQgaW5zdGFuY2VzIGFjcm9zcyBWUkZzCmRpZCBub3Qgd29yayBjb3JyZWN0bHkgLSBh bnkgc2VydmVyL3JlbGF5IGFnZW50IGluIHRoZSBkZWZhdWx0IFZSRgpyZWNlaXZlZCBESENQIGRp c2NvdmVyIHBhY2tldHMgZm9yIGFsbCBvdGhlciBWUkZzLgoKRml4ZXM6IDZkYTViMGYwMjdhOCAo Im5ldDogZW5zdXJlIHVuYm91bmQgZGF0YWdyYW0gc29ja2V0IHRvIGJlIGNob3NlbiB3aGVuIG5v dCBpbiBhIFZSRiIpClNpZ25lZC1vZmYtYnk6IFRpbSBCZWFsZSA8dGltYmVhbGVAY2F0YWx5c3Qu bmV0Lm56PgpSZXZpZXdlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2lwdjQvdWRwLmMgfCAzICstLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3VkcC5jIGIvbmV0L2lwdjQvdWRwLmMK aW5kZXggMzcyZmRjNTM4MWE5Li4zYjE3OWNlNjE3MGYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3Vk cC5jCisrKyBiL25ldC9pcHY0L3VkcC5jCkBAIC01MzgsOCArNTM4LDcgQEAgc3RhdGljIGlubGlu ZSBib29sIF9fdWRwX2lzX21jYXN0X3NvY2soc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29jayAq c2ssCiAJICAgIChpbmV0LT5pbmV0X2Rwb3J0ICE9IHJtdF9wb3J0ICYmIGluZXQtPmluZXRfZHBv cnQpIHx8CiAJICAgIChpbmV0LT5pbmV0X3Jjdl9zYWRkciAmJiBpbmV0LT5pbmV0X3Jjdl9zYWRk ciAhPSBsb2NfYWRkcikgfHwKIAkgICAgaXB2Nl9vbmx5X3NvY2soc2spIHx8Ci0JICAgIChzay0+ c2tfYm91bmRfZGV2X2lmICYmIHNrLT5za19ib3VuZF9kZXZfaWYgIT0gZGlmICYmCi0JICAgICBz ay0+c2tfYm91bmRfZGV2X2lmICE9IHNkaWYpKQorCSAgICAhdWRwX3NrX2JvdW5kX2Rldl9lcShu ZXQsIHNrLT5za19ib3VuZF9kZXZfaWYsIGRpZiwgc2RpZikpCiAJCXJldHVybiBmYWxzZTsKIAlp ZiAoIWlwX21jX3NmX2FsbG93KHNrLCBsb2NfYWRkciwgcm10X2FkZHIsIGRpZiwgc2RpZikpCiAJ CXJldHVybiBmYWxzZTsKLS0gCjIuMjAuMQoKCkZyb20gNjczNjM1MTExZmUyMGIzM2NiNmUzNmQ4 NDEzNTlhYTc1YTcwMmZiMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogT2xpdmllciBN YXR6IDxvbGl2aWVyLm1hdHpANndpbmQuY29tPgpEYXRlOiBUaHUsIDYgSnVuIDIwMTkgMDk6MTU6 MTggKzAyMDAKU3ViamVjdDogW1BBVENIIDE0LzIyXSBpcHY2OiB1c2UgUkVBRF9PTkNFKCkgZm9y IGluZXQtPmhkcmluY2wgYXMgaW4gaXB2NAoKWyBVcHN0cmVhbSBjb21taXQgNTllM2U0YjUyNjYz YTlkOTdlZmJjZTczMDdmNjJlNGJjNWM5Y2U5MSBdCgpBcyBpdCB3YXMgZG9uZSBpbiBjb21taXQg OGY2NTlhMDNhMGJhICgibmV0OiBpcHY0OiBmaXggZm9yIGEgcmFjZQpjb25kaXRpb24gaW4gcmF3 X3NlbmRtc2ciKSBhbmQgY29tbWl0IDIwYjUwZDc5OTc0ZSAoIm5ldDogaXB2NDogZW11bGF0ZQpS RUFEX09OQ0UoKSBvbiAtPmhkcmluY2wgYml0LWZpZWxkIGluIHJhd19zZW5kbXNnKCkiKSBmb3Ig aXB2NCwgY29weSB0aGUKdmFsdWUgb2YgaW5ldC0+aGRyaW5jbCBpbiBhIGxvY2FsIHZhcmlhYmxl LCB0byBhdm9pZCBpbnRyb2R1Y2luZyBhIHJhY2UKY29uZGl0aW9uIGluIHRoZSBuZXh0IGNvbW1p dC4KClNpZ25lZC1vZmYtYnk6IE9saXZpZXIgTWF0eiA8b2xpdmllci5tYXR6QDZ3aW5kLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9pcHY2L3Jhdy5jIHwgMTIgKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yYXcuYyBi L25ldC9pcHY2L3Jhdy5jCmluZGV4IDVjYjE0ZWFiZmM2NS4uYTc5ZmQxYjRiMzkyIDEwMDY0NAot LS0gYS9uZXQvaXB2Ni9yYXcuYworKysgYi9uZXQvaXB2Ni9yYXcuYwpAQCAtNzgzLDYgKzc4Myw3 IEBAIHN0YXRpYyBpbnQgcmF3djZfc2VuZG1zZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2do ZHIgKm1zZywgc2l6ZV90IGxlbikKIAlzdHJ1Y3QgZmxvd2k2IGZsNjsKIAlzdHJ1Y3QgaXBjbTZf Y29va2llIGlwYzY7CiAJaW50IGFkZHJfbGVuID0gbXNnLT5tc2dfbmFtZWxlbjsKKwlpbnQgaGRy aW5jbDsKIAl1MTYgcHJvdG87CiAJaW50IGVycjsKIApAQCAtNzk2LDYgKzc5NywxMyBAQCBzdGF0 aWMgaW50IHJhd3Y2X3NlbmRtc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2cs IHNpemVfdCBsZW4pCiAJaWYgKG1zZy0+bXNnX2ZsYWdzICYgTVNHX09PQikKIAkJcmV0dXJuIC1F T1BOT1RTVVBQOwogCisJLyogaGRyaW5jbCBzaG91bGQgYmUgUkVBRF9PTkNFKGluZXQtPmhkcmlu Y2wpCisJICogYnV0IFJFQURfT05DRSgpIGRvZXNuJ3Qgd29yayB3aXRoIGJpdCBmaWVsZHMuCisJ ICogRG9pbmcgdGhpcyBpbmRpcmVjdGx5IHlpZWxkcyB0aGUgc2FtZSByZXN1bHQuCisJICovCisJ aGRyaW5jbCA9IGluZXQtPmhkcmluY2w7CisJaGRyaW5jbCA9IFJFQURfT05DRShoZHJpbmNsKTsK KwogCS8qCiAJICoJR2V0IGFuZCB2ZXJpZnkgdGhlIGFkZHJlc3MuCiAJICovCkBAIC05MDgsNyAr OTE2LDcgQEAgc3RhdGljIGludCByYXd2Nl9zZW5kbXNnKHN0cnVjdCBzb2NrICpzaywgc3RydWN0 IG1zZ2hkciAqbXNnLCBzaXplX3QgbGVuKQogCQlmbDYuZmxvd2k2X29pZiA9IG5wLT51Y2FzdF9v aWY7CiAJc2VjdXJpdHlfc2tfY2xhc3NpZnlfZmxvdyhzaywgZmxvd2k2X3RvX2Zsb3dpKCZmbDYp KTsKIAotCWlmIChpbmV0LT5oZHJpbmNsKQorCWlmIChoZHJpbmNsKQogCQlmbDYuZmxvd2k2X2Zs YWdzIHw9IEZMT1dJX0ZMQUdfS05PV05fTkg7CiAKIAlpZiAoaXBjNi50Y2xhc3MgPCAwKQpAQCAt OTMxLDcgKzkzOSw3IEBAIHN0YXRpYyBpbnQgcmF3djZfc2VuZG1zZyhzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbikKIAkJZ290byBkb19jb25maXJtOwogCiBi YWNrX2Zyb21fY29uZmlybToKLQlpZiAoaW5ldC0+aGRyaW5jbCkKKwlpZiAoaGRyaW5jbCkKIAkJ ZXJyID0gcmF3djZfc2VuZF9oZHJpbmMoc2ssIG1zZywgbGVuLCAmZmw2LCAmZHN0LAogCQkJCQlt c2ctPm1zZ19mbGFncywgJmlwYzYuc29ja2MpOwogCWVsc2UgewotLSAKMi4yMC4xCgoKRnJvbSBj ZDJkYmVlOGMzNmYzYzRiODIwOTBmZTUwMjI5MTI0N2I4NDYwZmE4IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBPbGl2aWVyIE1hdHogPG9saXZpZXIubWF0ekA2d2luZC5jb20+CkRhdGU6 IFRodSwgNiBKdW4gMjAxOSAwOToxNToxOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMjJdIGlw djY6IGZpeCBFRkFVTFQgb24gc2VuZHRvIHdpdGggaWNtcHY2IGFuZCBoZHJpbmNsCgpbIFVwc3Ry ZWFtIGNvbW1pdCBiOWFhNTJjNGNiNDU3ZTc0MTZjYzBjOTVmNDc1ZTcyZWY0YTYxMzM2IF0KClRo ZSBmb2xsb3dpbmcgY29kZSByZXR1cm5zIEVGQVVMVCAoQmFkIGFkZHJlc3MpOgoKICBzID0gc29j a2V0KEFGX0lORVQ2LCBTT0NLX1JBVywgSVBQUk9UT19JQ01QVjYpOwogIHNldHNvY2tvcHQocywg U09MX0lQVjYsIElQVjZfSERSSU5DTCwgMSk7CiAgc2VuZHRvKGlwdjZfaWNtcDZfcGFja2V0LCBh ZGRyKTsgICAvKiByZXR1cm5zIC0xLCBlcnJubyA9IEVGQVVMVCAqLwoKVGhlIElQdjQgZXF1aXZh bGVudCBjb2RlIHdvcmtzLiBBIHdvcmthcm91bmQgaXMgdG8gdXNlIElQUFJPVE9fUkFXCmluc3Rl YWQgb2YgSVBQUk9UT19JQ01QVjYuCgpUaGUgZmFpbHVyZSBoYXBwZW5zIGJlY2F1c2UgMiBieXRl cyBhcmUgZWF0ZW4gZnJvbSB0aGUgbXNnaGRyIGJ5CnJhd3Y2X3Byb2JlX3Byb3RvX29wdCgpIHN0 YXJ0aW5nIGZyb20gY29tbWl0IDE5ZTNjNjZiNTJjYSAoImlwdjYKZXF1aXZhbGVudCBvZiAiaXB2 NDogQXZvaWQgcmVhZGluZyB1c2VyIGlvdiB0d2ljZSBhZnRlcgpyYXdfcHJvYmVfcHJvdG9fb3B0 IiIpLCBidXQgYXQgdGhhdCB0aW1lIGl0IHdhcyBub3QgYSBwcm9ibGVtIGJlY2F1c2UKSVBWNl9I RFJJTkNMIHdhcyBub3QgeWV0IGludHJvZHVjZWQuCgpPbmx5IGVhdCB0aGVzZSAyIGJ5dGVzIGlm IGhkcmluY2wgPT0gMC4KCkZpeGVzOiA3MTVmNTA0YjExODkgKCJpcHY2OiBhZGQgSVBWNl9IRFJJ TkNMIG9wdGlvbiBmb3IgcmF3IHNvY2tldHMiKQpTaWduZWQtb2ZmLWJ5OiBPbGl2aWVyIE1hdHog PG9saXZpZXIubWF0ekA2d2luZC5jb20+CkFja2VkLWJ5OiBOaWNvbGFzIERpY2h0ZWwgPG5pY29s YXMuZGljaHRlbEA2d2luZC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9yYXcuYyB8IDEzICsrKysrKysrLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L2lwdjYvcmF3LmMgYi9uZXQvaXB2Ni9yYXcuYwppbmRleCBhNzlmZDFiNGIzOTIu LjVmOGZlOThiNDM1YiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcmF3LmMKKysrIGIvbmV0L2lwdjYv cmF3LmMKQEAgLTg5NSwxMSArODk1LDE0IEBAIHN0YXRpYyBpbnQgcmF3djZfc2VuZG1zZyhzdHJ1 Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbikKIAlvcHQgPSBpcHY2 X2ZpeHVwX29wdGlvbnMoJm9wdF9zcGFjZSwgb3B0KTsKIAogCWZsNi5mbG93aTZfcHJvdG8gPSBw cm90bzsKLQlyZnYubXNnID0gbXNnOwotCXJmdi5obGVuID0gMDsKLQllcnIgPSByYXd2Nl9wcm9i ZV9wcm90b19vcHQoJnJmdiwgJmZsNik7Ci0JaWYgKGVycikKLQkJZ290byBvdXQ7CisKKwlpZiAo IWhkcmluY2wpIHsKKwkJcmZ2Lm1zZyA9IG1zZzsKKwkJcmZ2LmhsZW4gPSAwOworCQllcnIgPSBy YXd2Nl9wcm9iZV9wcm90b19vcHQoJnJmdiwgJmZsNik7CisJCWlmIChlcnIpCisJCQlnb3RvIG91 dDsKKwl9CiAKIAlpZiAoIWlwdjZfYWRkcl9hbnkoZGFkZHIpKQogCQlmbDYuZGFkZHIgPSAqZGFk ZHI7Ci0tIAoyLjIwLjEKCgpGcm9tIGY5YmY2YWFkZDA0YWUyYjVkNzQxYjZjODA5M2JhZTc2ZjJk MjM1ZDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pa2l0YSBEYW5pbG92IDxuaWtp dGEuZGFuaWxvdkBhcXVhbnRpYS5jb20+CkRhdGU6IFR1ZSwgNCBKdW4gMjAxOSAxMzoyMzo0OSAr MDAwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMjJdIG5ldDogYXF1YW50aWE6IGZpeCB3b2wgY29uZmln dXJhdGlvbiBub3QgYXBwbGllZAogc29tZXRpbWVzCgpbIFVwc3RyZWFtIGNvbW1pdCA5MzBiOWEw NTQzMzg1ZDRlYjhlZjg4N2U4OGNmODRkOTVhODQ0NTc3IF0KCldvTCBtYWdpYyBwYWNrZXQgY29u ZmlndXJhdGlvbiBzb21ldGltZXMgZG9lcyBub3Qgd29yayBkdWUgdG8KY291cGxlIG9mIGxlYWth Z2VzIGZvdW5kLgoKTWFpbmx5IHRoZXJlIHdhcyBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBkdXJp bmcgcmVhZHhfcG9sbCByZWZhY3RvcmluZy4KCk5leHQsIGZ3IHJlcXVlc3Qgd2FpdGluZyB0aW1l IHdhcyB0b28gc21hbGwuIFNvbWV0aW1lcyB0aGF0CmNhdXNlZCBzbGVlcCBwcm94eSBjb25maWcg ZnVuY3Rpb24gdG8gcmV0dXJuIHdpdGggYW4gZXJyb3IKYW5kIHRvIHNraXAgV29MIGNvbmZpZ3Vy YXRpb24uCkF0IGxhc3QsIFdvTCBkYXRhIHdlcmUgcGFzc2VkIHRvIEZXIGZyb20gbm90IGNsZWFu IGJ1ZmZlci4KVGhhdCBjb3VsZCBjYXVzZSBGVyB0byBhY2NlcHQgZ2FyYmFnZSBhcyBhIHJhbmRv bSBjb25maWd1cmF0aW9uIGRhdGEuCgpGaXhlczogNmE3ZjIyNzczMTNiICgibmV0OiBhcXVhbnRp YTogcmVwbGFjZSBBUV9IV19XQUlUX0ZPUiB3aXRoIHJlYWR4X3BvbGxfdGltZW91dF9hdG9taWMi KQpTaWduZWQtb2ZmLWJ5OiBOaWtpdGEgRGFuaWxvdiA8bmlraXRhLmRhbmlsb3ZAYXF1YW50aWEu Y29tPgpTaWduZWQtb2ZmLWJ5OiBJZ29yIFJ1c3NraWtoIDxpZ29yLnJ1c3NraWtoQGFxdWFudGlh LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIC4uLi9hcXVhbnRpYS9hdGxhbnRpYy9od19hdGwvaHdfYXRsX3V0aWxzLmMgICAgICAg IHwgMTQgKysrKysrKy0tLS0tLS0KIC4uLi9hcXVhbnRpYS9hdGxhbnRpYy9od19hdGwvaHdfYXRs X3V0aWxzX2Z3MnguYyAgIHwgIDQgKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25z KCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fx dWFudGlhL2F0bGFudGljL2h3X2F0bC9od19hdGxfdXRpbHMuYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2FxdWFudGlhL2F0bGFudGljL2h3X2F0bC9od19hdGxfdXRpbHMuYwppbmRleCBlYjRiOTlk NTYwODEuLjMzZDNjMzc4OTIwOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXF1 YW50aWEvYXRsYW50aWMvaHdfYXRsL2h3X2F0bF91dGlscy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2FxdWFudGlhL2F0bGFudGljL2h3X2F0bC9od19hdGxfdXRpbHMuYwpAQCAtMzM1LDEz ICszMzUsMTMgQEAgc3RhdGljIGludCBod19hdGxfdXRpbHNfZndfdXBsb2FkX2R3b3JkcyhzdHJ1 Y3QgYXFfaHdfcyAqc2VsZiwgdTMyIGEsIHUzMiAqcCwKIHsKIAl1MzIgdmFsOwogCWludCBlcnIg PSAwOwotCWJvb2wgaXNfbG9ja2VkOwogCi0JaXNfbG9ja2VkID0gaHdfYXRsX3NlbV9yYW1fZ2V0 KHNlbGYpOwotCWlmICghaXNfbG9ja2VkKSB7Ci0JCWVyciA9IC1FVElNRTsKKwllcnIgPSByZWFk eF9wb2xsX3RpbWVvdXRfYXRvbWljKGh3X2F0bF9zZW1fcmFtX2dldCwgc2VsZiwKKwkJCQkJdmFs LCB2YWwgPT0gMVUsCisJCQkJCTEwVSwgMTAwMDAwVSk7CisJaWYgKGVyciA8IDApCiAJCWdvdG8g ZXJyX2V4aXQ7Ci0JfQorCiAJaWYgKElTX0NISVBfRkVBVFVSRShSRVZJU0lPTl9CMSkpIHsKIAkJ dTMyIG9mZnNldCA9IDA7CiAKQEAgLTM1Myw4ICszNTMsOCBAQCBzdGF0aWMgaW50IGh3X2F0bF91 dGlsc19md191cGxvYWRfZHdvcmRzKHN0cnVjdCBhcV9od19zICpzZWxmLCB1MzIgYSwgdTMyICpw LAogCQkJLyogMTAwMCB0aW1lcyBieSAxMHVzID0gMTBtcyAqLwogCQkJZXJyID0gcmVhZHhfcG9s bF90aW1lb3V0X2F0b21pYyhod19hdGxfc2NycGFkMTJfZ2V0LAogCQkJCQkJCXNlbGYsIHZhbCwK LQkJCQkJCQkodmFsICYgMHhGMDAwMDAwMCkgPT0KLQkJCQkJCQkgMHg4MDAwMDAwMCwKKwkJCQkJ CQkodmFsICYgMHhGMDAwMDAwMCkgIT0KKwkJCQkJCQkweDgwMDAwMDAwLAogCQkJCQkJCTEwVSwg MTAwMDBVKTsKIAkJfQogCX0gZWxzZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9hcXVhbnRpYS9hdGxhbnRpYy9od19hdGwvaHdfYXRsX3V0aWxzX2Z3MnguYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L2FxdWFudGlhL2F0bGFudGljL2h3X2F0bC9od19hdGxfdXRpbHNfZncyeC5j CmluZGV4IGZlNmM1NjU4ZTAxNi4uOWQwMjkyYWEwNzFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9hcXVhbnRpYS9hdGxhbnRpYy9od19hdGwvaHdfYXRsX3V0aWxzX2Z3MnguYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hcXVhbnRpYS9hdGxhbnRpYy9od19hdGwvaHdfYXRs X3V0aWxzX2Z3MnguYwpAQCAtMzQ5LDcgKzM0OSw3IEBAIHN0YXRpYyBpbnQgYXFfZncyeF9zZXRf c2xlZXBfcHJveHkoc3RydWN0IGFxX2h3X3MgKnNlbGYsIHU4ICptYWMpCiAJZXJyID0gcmVhZHhf cG9sbF90aW1lb3V0X2F0b21pYyhhcV9mdzJ4X3N0YXRlMl9nZXQsCiAJCQkJCXNlbGYsIHZhbCwK IAkJCQkJdmFsICYgSFdfQVRMX0ZXMlhfQ1RSTF9TTEVFUF9QUk9YWSwKLQkJCQkJMVUsIDEwMDAw VSk7CisJCQkJCTFVLCAxMDAwMDBVKTsKIAogZXJyX2V4aXQ6CiAJcmV0dXJuIGVycjsKQEAgLTM2 OSw2ICszNjksOCBAQCBzdGF0aWMgaW50IGFxX2Z3Mnhfc2V0X3dvbF9wYXJhbXMoc3RydWN0IGFx X2h3X3MgKnNlbGYsIHU4ICptYWMpCiAKIAltc2cgPSAoc3RydWN0IGZ3MnhfbXNnX3dvbCAqKXJw YzsKIAorCW1lbXNldChtc2csIDAsIHNpemVvZigqbXNnKSk7CisKIAltc2ctPm1zZ19pZCA9IEhB TF9BVExBTlRJQ19VVElMU19GVzJYX01TR19XT0w7CiAJbXNnLT5tYWdpY19wYWNrZXRfZW5hYmxl ZCA9IHRydWU7CiAJbWVtY3B5KG1zZy0+aHdfYWRkciwgbWFjLCBFVEhfQUxFTik7Ci0tIAoyLjIw LjEKCgpGcm9tIDYxMDIwMjU3YjhmYTJkYWQyYWQ1MTg2NDI5ODMwZDVkYzQxNmRjZjAgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4K RGF0ZTogV2VkLCAxIE1heSAyMDE5IDE4OjA4OjM0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNy8y Ml0gbmVpZ2hib3I6IFJlc2V0IGdjX2VudHJpZXMgY291bnRlciBpZiBuZXcgZW50cnkgaXMKIHJl bGVhc2VkIGJlZm9yZSBpbnNlcnQKClsgVXBzdHJlYW0gY29tbWl0IDY0YzZmNGJiY2E3NDhjM2Iy MTAxNDY5YTc2ZDg4YjdjZDFjMDA0NzYgXQoKSWFuIGFuZCBBbGFuIGJvdGggcmVwb3J0ZWQgc2Vl aW5nIG92ZXJmbG93cyBhZnRlciB1cGdyYWRlcyB0byA1Lngga2VybmVsczoKICBuZWlnaGJvdXI6 IGFycF9jYWNoZTogbmVpZ2hib3IgdGFibGUgb3ZlcmZsb3chCgpBbGFuJ3MgbXBscyBzY3JpcHQg aGVscGVkIGdldCB0byB0aGUgYm90dG9tIG9mIHRoaXMgYnVnLiBXaGVuIGEgbmV3IGVudHJ5Cmlz IGNyZWF0ZWQgdGhlIGdjX2VudHJpZXMgY291bnRlciBpcyBidW1wZWQgaW4gbmVpZ2hfYWxsb2Mg dG8gY2hlY2sgaWYgYQpuZXcgb25lIGlzIGFsbG93ZWQgdG8gYmUgY3JlYXRlZC4gX19fbmVpZ2hf Y3JlYXRlIHRoZW4gc2VhcmNoZXMgZm9yIGFuCmV4aXN0aW5nIGVudHJ5IGJlZm9yZSBpbnNlcnRp bmcgdGhlIGp1c3QgYWxsb2NhdGVkIG9uZS4gSWYgYW4gZW50cnkKYWxyZWFkeSBleGlzdHMsIHRo ZSBuZXcgb25lIGlzIGRyb3BwZWQgaW4gZmF2b3Igb2YgdGhlIGV4aXN0aW5nIG9uZS4gSW4KdGhp cyBjYXNlIHRoZSBjbGVhbnVwIHBhdGggbmVlZHMgdG8gZHJvcCB0aGUgZ2NfZW50cmllcyBjb3Vu dGVyLiBUaGVyZQppcyBubyBtZW1vcnkgbGVhaywgb25seSBhIGNvdW50ZXIgbGVhay4KCkZpeGVz OiA1ODk1NjMxN2M4ZCAoIm5laWdoYm9yOiBJbXByb3ZlIGdhcmJhZ2UgY29sbGVjdGlvbiIpClJl cG9ydGVkLWJ5OiBJYW4gS3VtbGllbiA8aWFuLmt1bWxpZW5AZ21haWwuY29tPgpSZXBvcnRlZC1i eTogQWxhbiBNYWd1aXJlIDxhbGFuLm1hZ3VpcmVAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpUZXN0ZWQtYnk6IEFsYW4gTWFndWlyZSA8 YWxhbi5tYWd1aXJlQG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9uZWlnaGJvdXIuYyB8IDIgKysKIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZWln aGJvdXIuYyBiL25ldC9jb3JlL25laWdoYm91ci5jCmluZGV4IDMwZjZmZDhmNjhlMC4uYWZmMDUx ZTU1MjFkIDEwMDY0NAotLS0gYS9uZXQvY29yZS9uZWlnaGJvdXIuYworKysgYi9uZXQvY29yZS9u ZWlnaGJvdXIuYwpAQCAtNjYzLDYgKzY2Myw4IEBAIHN0YXRpYyBzdHJ1Y3QgbmVpZ2hib3VyICpf X19uZWlnaF9jcmVhdGUoc3RydWN0IG5laWdoX3RhYmxlICp0YmwsCiBvdXRfdGJsX3VubG9jazoK IAl3cml0ZV91bmxvY2tfYmgoJnRibC0+bG9jayk7CiBvdXRfbmVpZ2hfcmVsZWFzZToKKwlpZiAo IWV4ZW1wdF9mcm9tX2djKQorCQlhdG9taWNfZGVjKCZ0YmwtPmdjX2VudHJpZXMpOwogCW5laWdo X3JlbGVhc2Uobik7CiAJZ290byBvdXQ7CiB9Ci0tIAoyLjIwLjEKCgpGcm9tIGM0YjNhNGVjODg5 ZjM3NzA3MjU4NjFmNThjNDg1ZTM3Y2U4MjU2ZTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxIE1heSAyMDE5 IDE4OjE4OjQyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxOC8yMl0gbmVpZ2hib3I6IENhbGwgX19p cHY0X25laWdoX2xvb2t1cF9ub3JlZiBpbiBuZWlnaF94bWl0CgpbIFVwc3RyZWFtIGNvbW1pdCA0 YjJhMmJmZWIzZjA1NjQ2MWE5MGJkNjIxZThiZDdkMDNmYTQ3ZjYwIF0KCkNvbW1pdCBjZDlmZjRk ZTAxMDcgY2hhbmdlZCB0aGUga2V5IGZvciBJRkZfUE9JTlRPUE9JTlQgZGV2aWNlcyB0bwpJTkFE RFJfQU5ZIGJ1dCBuZWlnaF94bWl0IHdoaWNoIGlzIHVzZWQgZm9yIE1QTFMgZW5jYXBzdWxhdGlv bnMgd2FzIG5vdAp1cGRhdGVkIHRvIHVzZSB0aGUgYWx0ZXJlZCBrZXkuIFRoZSByZXN1bHQgaXMg dGhhdCBldmVyeSBwYWNrZXQgVHggZG9lcwphIGxvb2t1cCBvbiB0aGUgZ2F0ZXdheSBhZGRyZXNz IHdoaWNoIGRvZXMgbm90IGZpbmQgYW4gZW50cnksIGEgbmV3IG9uZQppcyBjcmVhdGVkIG9ubHkg dG8gZmluZCB0aGUgZXhpc3Rpbmcgb25lIGluIHRoZSB0YWJsZSByaWdodCBiZWZvcmUgdGhlCmlu c2VydCBzaW5jZSBhcnBfY29uc3RydWN0b3Igd2FzIHVwZGF0ZWQgdG8gcmVzZXQgdGhlIHByaW1h cnkga2V5LiBUaGlzCmlzIHNlZW4gaW4gdGhlIGFsbG9jcyBhbmQgZGVzdHJveXMgY291bnRlcnM6 CiAgICBpcCAtcyAtNCBudGFibGUgc2hvdyB8IGhlYWQgLTEwIHwgZ3JlcCBhbGxvYwoKd2hpY2gg aW5jcmVhc2UgZm9yIGVhY2ggcGFja2V0IHNob3dpbmcgdGhlIHVubmVjZXNzYXJ5IG92ZXJocmVh ZC4KCkZpeCBieSBoYXZpbmcgbmVpZ2hfeG1pdCB1c2UgX19pcHY0X25laWdoX2xvb2t1cF9ub3Jl ZiBmb3IgTkVJR0hfQVJQX1RBQkxFLgoKRml4ZXM6IGNkOWZmNGRlMDEwNyAoImlwdjQ6IE1ha2Ug bmVpZ2ggbG9va3VwIGtleXMgZm9yIGxvb3BiYWNrL3BvaW50LXRvLXBvaW50IGRldmljZXMgYmUg SU5BRERSX0FOWSIpClJlcG9ydGVkLWJ5OiBBbGFuIE1hZ3VpcmUgPGFsYW4ubWFndWlyZUBvcmFj bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClRl c3RlZC1ieTogQWxhbiBNYWd1aXJlIDxhbGFuLm1hZ3VpcmVAb3JhY2xlLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3Jl L25laWdoYm91ci5jIHwgOSArKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZWlnaGJvdXIuYyBiL25l dC9jb3JlL25laWdoYm91ci5jCmluZGV4IGFmZjA1MWU1NTIxZC4uOWI5ZGE1MTQyNjEzIDEwMDY0 NAotLS0gYS9uZXQvY29yZS9uZWlnaGJvdXIuYworKysgYi9uZXQvY29yZS9uZWlnaGJvdXIuYwpA QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3RpbWVzLmg+CiAjaW5jbHVkZSA8bmV0 L25ldF9uYW1lc3BhY2UuaD4KICNpbmNsdWRlIDxuZXQvbmVpZ2hib3VyLmg+CisjaW5jbHVkZSA8 bmV0L2FycC5oPgogI2luY2x1ZGUgPG5ldC9kc3QuaD4KICNpbmNsdWRlIDxuZXQvc29jay5oPgog I2luY2x1ZGUgPG5ldC9uZXRldmVudC5oPgpAQCAtMjk4NCw3ICsyOTg1LDEzIEBAIGludCBuZWln aF94bWl0KGludCBpbmRleCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJaWYgKCF0YmwpCiAJ CQlnb3RvIG91dDsKIAkJcmN1X3JlYWRfbG9ja19iaCgpOwotCQluZWlnaCA9IF9fbmVpZ2hfbG9v a3VwX25vcmVmKHRibCwgYWRkciwgZGV2KTsKKwkJaWYgKGluZGV4ID09IE5FSUdIX0FSUF9UQUJM RSkgeworCQkJdTMyIGtleSA9ICooKHUzMiAqKWFkZHIpOworCisJCQluZWlnaCA9IF9faXB2NF9u ZWlnaF9sb29rdXBfbm9yZWYoZGV2LCBrZXkpOworCQl9IGVsc2UgeworCQkJbmVpZ2ggPSBfX25l aWdoX2xvb2t1cF9ub3JlZih0YmwsIGFkZHIsIGRldik7CisJCX0KIAkJaWYgKCFuZWlnaCkKIAkJ CW5laWdoID0gX19uZWlnaF9jcmVhdGUodGJsLCBhZGRyLCBkZXYsIGZhbHNlKTsKIAkJZXJyID0g UFRSX0VSUihuZWlnaCk7Ci0tIAoyLjIwLjEKCgpGcm9tIGVlZjA2OTEwZDk4ZjhkZmU2MTU5YWRk NDkzYmNjNzg0YWY3YmRhMmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hdHRlbyBD cm9jZSA8bWNyb2NlQHJlZGhhdC5jb20+CkRhdGU6IFRodSwgMiBNYXkgMjAxOSAxMDo1MTowNSAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMTkvMjJdIGNsc19tYXRjaGFsbDogYXZvaWQgcGFuaWMgd2hl biByZWNlaXZpbmcgYSBwYWNrZXQKIGJlZm9yZSBmaWx0ZXIgc2V0CgpbIFVwc3RyZWFtIGNvbW1p dCAyNTQyNjA0M2VjOWUyMmI5MGM3ODk0MDdjMjhlNDBmMzJhOWQxOTg1IF0KCldoZW4gYSBtYXRj aGFsbCBjbGFzc2lmaWVyIGlzIGFkZGVkLCB0aGVyZSBpcyBhIHNtYWxsIHRpbWUgaW50ZXJ2YWwg aW4Kd2hpY2ggdHAtPnJvb3QgaXMgTlVMTC4gSWYgd2UgcmVjZWl2ZSBhIHBhY2tldCBpbiB0aGlz IHNtYWxsIHRpbWUgc2xpY2UKYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugd2lsbCBoYXBwZW4s IGxlYWRpbmcgdG8gYSBrZXJuZWwgcGFuaWM6CgogICAgIyB0YyBxZGlzYyByZXBsYWNlIGRldiBl dGgwIGluZ3Jlc3MKICAgICMgdGMgZmlsdGVyIGFkZCBkZXYgZXRoMCBwYXJlbnQgZmZmZjogbWF0 Y2hhbGwgYWN0aW9uIGdhY3QgZHJvcAogICAgVW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgTlVMTCBw b2ludGVyIGRlcmVmZXJlbmNlIGF0IHZpcnR1YWwgYWRkcmVzcyAwMDAwMDAwMDAwMDAwMDM0CiAg ICBNZW0gYWJvcnQgaW5mbzoKICAgICAgRVNSID0gMHg5NjAwMDAwNQogICAgICBFeGNlcHRpb24g Y2xhc3MgPSBEQUJUIChjdXJyZW50IEVMKSwgSUwgPSAzMiBiaXRzCiAgICAgIFNFVCA9IDAsIEZu ViA9IDAKICAgICAgRUEgPSAwLCBTMVBUVyA9IDAKICAgIERhdGEgYWJvcnQgaW5mbzoKICAgICAg SVNWID0gMCwgSVNTID0gMHgwMDAwMDAwNQogICAgICBDTSA9IDAsIFduUiA9IDAKICAgIHVzZXIg cGd0YWJsZTogNGsgcGFnZXMsIDM5LWJpdCBWQXMsIHBnZHAgPSAwMDAwMDAwMGE2MjNkNTMwCiAg ICBbMDAwMDAwMDAwMDAwMDAzNF0gcGdkPTAwMDAwMDAwMDAwMDAwMDAsIHB1ZD0wMDAwMDAwMDAw MDAwMDAwCiAgICBJbnRlcm5hbCBlcnJvcjogT29wczogOTYwMDAwMDUgWyMxXSBTTVAKICAgIE1v ZHVsZXMgbGlua2VkIGluOiBjbHNfbWF0Y2hhbGwgc2NoX2luZ3Jlc3MgbmxzX2lzbzg4NTlfMSBu bHNfY3A0MzcgdmZhdCBmYXQgbTI1cDgwIHNwaV9ub3IgbXRkIHhoY2lfcGxhdF9oY2QgeGhjaV9o Y2QgcGh5X2dlbmVyaWMgc2ZwIG1kaW9faTJjIHVzYmNvcmUgaTJjX212NjR4eHggbWFydmVsbDEw ZyBtdnBwMiB1c2JfY29tbW9uIHNwaV9vcmlvbiBtdm1kaW8gaTJjX2NvcmUgc2JzYV9nd2R0IHBo eWxpbmsgaXBfdGFibGVzIHhfdGFibGVzIGF1dG9mczQKICAgIFByb2Nlc3Mga3NvZnRpcnFkLzAg KHBpZDogOSwgc3RhY2sgbGltaXQgPSAweDAwMDAwMDAwMDlkZTdkNjIpCiAgICBDUFU6IDAgUElE OiA5IENvbW06IGtzb2Z0aXJxZC8wIE5vdCB0YWludGVkIDUuMS4wLXJjNiAjMjEKICAgIEhhcmR3 YXJlIG5hbWU6IE1hcnZlbGwgODA0MCBNQUNDSElBVE9CaW4gRG91YmxlLXNob3QgKERUKQogICAg cHN0YXRlOiA0MDAwMDAwNSAoblpjdiBkYWlmIC1QQU4gLVVBTykKICAgIHBjIDogbWFsbF9jbGFz c2lmeSsweDI4LzB4NzggW2Nsc19tYXRjaGFsbF0KICAgIGxyIDogdGNmX2NsYXNzaWZ5KzB4Nzgv MHgxMzgKICAgIHNwIDogZmZmZmZmODAxMDlkYjlkMAogICAgeDI5OiBmZmZmZmY4MDEwOWRiOWQw IHgyODogZmZmZmZmYzQyNjA1ODgwMAogICAgeDI3OiAwMDAwMDAwMDAwMDAwMDAwIHgyNjogZmZm ZmZmYzQyNWIwZGQwMAogICAgeDI1OiAwMDAwMDAwMDIwMDAwMDAwIHgyNDogMDAwMDAwMDAwMDAw MDAwMAogICAgeDIzOiBmZmZmZmY4MDEwOWRiYWMwIHgyMjogMDAwMDAwMDAwMDAwMDAwMQogICAg eDIxOiBmZmZmZmZjNDI4YWI1MTAwIHgyMDogZmZmZmZmYzQyNWIwZGQwMAogICAgeDE5OiBmZmZm ZmY4MDEwOWRiYWMwIHgxODogMDAwMDAwMDAwMDAwMDAwMAogICAgeDE3OiAwMDAwMDAwMDAwMDAw MDAwIHgxNjogMDAwMDAwMDAwMDAwMDAwMAogICAgeDE1OiAwMDAwMDAwMDAwMDAwMDAwIHgxNDog MDAwMDAwMDAwMDAwMDAwMAogICAgeDEzOiBmZmZmZmZiZjEwOGFkMjg4IHgxMjogZGVhZDAwMDAw MDAwMDIwMAogICAgeDExOiAwMDAwMDAwMGYwMDAwMDAwIHgxMDogMDAwMDAwMDAwMDAwMDAwMQog ICAgeDkgOiBmZmZmZmZiZjEwODlhMjIwIHg4IDogMDAwMDAwMDAwMDAwMDAwMQogICAgeDcgOiBm ZmZmZmZiZWJmZmFhOTUwIHg2IDogMDAwMDAwMDAwMDAwMDAwMAogICAgeDUgOiAwMDAwMDA0NDJk NmJhMDAwIHg0IDogMDAwMDAwMDAwMDAwMDAwMAogICAgeDMgOiBmZmZmZmY4MDA4NzM1YWQ4IHgy IDogZmZmZmZmODAxMDlkYmFjMAogICAgeDEgOiBmZmZmZmZjNDI1YjBkZDAwIHgwIDogZmZmZmZm ODAxMDU5MjA3OAogICAgQ2FsbCB0cmFjZToKICAgICBtYWxsX2NsYXNzaWZ5KzB4MjgvMHg3OCBb Y2xzX21hdGNoYWxsXQogICAgIHRjZl9jbGFzc2lmeSsweDc4LzB4MTM4CiAgICAgX19uZXRpZl9y ZWNlaXZlX3NrYl9jb3JlKzB4MjljLzB4YTIwCiAgICAgX19uZXRpZl9yZWNlaXZlX3NrYl9vbmVf Y29yZSsweDM0LzB4NjAKICAgICBfX25ldGlmX3JlY2VpdmVfc2tiKzB4MjgvMHg3OAogICAgIG5l dGlmX3JlY2VpdmVfc2tiX2ludGVybmFsKzB4MmMvMHhjMAogICAgIG5hcGlfZ3JvX3JlY2VpdmUr MHgxYTAvMHgxZDgKICAgICBtdnBwMl9wb2xsKzB4OTI4LzB4YjE4IFttdnBwMl0KICAgICBuZXRf cnhfYWN0aW9uKzB4MTA4LzB4Mzc4CiAgICAgX19kb19zb2Z0aXJxKzB4MTI4LzB4MzIwCiAgICAg cnVuX2tzb2Z0aXJxZCsweDQ0LzB4NjAKICAgICBzbXBib290X3RocmVhZF9mbisweDE2OC8weDFi MAogICAgIGt0aHJlYWQrMHgxMmMvMHgxMzAKICAgICByZXRfZnJvbV9mb3JrKzB4MTAvMHgxYwog ICAgQ29kZTogYWEwMjAzZjMgYWExZTAzZTAgZDUwMzIwMWYgZjk0MDA2ODQgKGI5NDAzNDgwKQog ICAgLS0tWyBlbmQgdHJhY2UgZmM3MWUyZWY3YjhhYjVhNSBdLS0tCiAgICBLZXJuZWwgcGFuaWMg LSBub3Qgc3luY2luZzogRmF0YWwgZXhjZXB0aW9uIGluIGludGVycnVwdAogICAgU01QOiBzdG9w cGluZyBzZWNvbmRhcnkgQ1BVcwogICAgS2VybmVsIE9mZnNldDogZGlzYWJsZWQKICAgIENQVSBm ZWF0dXJlczogMHgwMDIsMDAwMDIwMDAKICAgIE1lbW9yeSBMaW1pdDogbm9uZQogICAgUmVib290 aW5nIGluIDEgc2Vjb25kcy4uCgpGaXggdGhpcyBieSBhZGRpbmcgYSBOVUxMIGNoZWNrIGluIG1h bGxfY2xhc3NpZnkoKS4KCkZpeGVzOiBlZDc2ZjVlZGNjYzkgKCJuZXQ6IHNjaGVkOiBwcm90ZWN0 IGZpbHRlcl9jaGFpbiBsaXN0IHdpdGggZmlsdGVyX2NoYWluX2xvY2sgbXV0ZXgiKQpTaWduZWQt b2ZmLWJ5OiBNYXR0ZW8gQ3JvY2UgPG1jcm9jZUByZWRoYXQuY29tPgpBY2tlZC1ieTogQ29uZyBX YW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvY2xzX21hdGNoYWxsLmMg fCAzICsrKwogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25l dC9zY2hlZC9jbHNfbWF0Y2hhbGwuYyBiL25ldC9zY2hlZC9jbHNfbWF0Y2hhbGwuYwppbmRleCBh MTNiYzM1MWE0MTQuLjNkMDIxZjJhYWQxYyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2Nsc19tYXRj aGFsbC5jCisrKyBiL25ldC9zY2hlZC9jbHNfbWF0Y2hhbGwuYwpAQCAtMzIsNiArMzIsOSBAQCBz dGF0aWMgaW50IG1hbGxfY2xhc3NpZnkoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0 IHRjZl9wcm90byAqdHAsCiB7CiAJc3RydWN0IGNsc19tYWxsX2hlYWQgKmhlYWQgPSByY3VfZGVy ZWZlcmVuY2VfYmgodHAtPnJvb3QpOwogCisJaWYgKHVubGlrZWx5KCFoZWFkKSkKKwkJcmV0dXJu IC0xOworCiAJaWYgKHRjX3NraXBfc3coaGVhZC0+ZmxhZ3MpKQogCQlyZXR1cm4gLTE7CiAKLS0g CjIuMjAuMQoKCkZyb20gZjI4NGQwNzA4MzUyMWJkZTE2NDVjNmIyMWQ4NjMxMWMzNDY5NWFmYSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwu Y29tPgpEYXRlOiBUaHUsIDIgTWF5IDIwMTkgMTU6MTQ6MTUgLTA3MDAKU3ViamVjdDogW1BBVENI IDIwLzIyXSBpcG1yX2Jhc2U6IERvIG5vdCByZXNldCBpbmRleCBpbiBtcl90YWJsZV9kdW1wCgpb IFVwc3RyZWFtIGNvbW1pdCA3ZmNkMWUwMzNkYWNlZGQ1MjBhYmViYzk0M2M5NjBkY2Y1YWRkM2Fl IF0KCmUgaXMgdGhlIGNvdW50ZXIgdXNlZCB0byBzYXZlIHRoZSBsb2NhdGlvbiBvZiBhIGR1bXAg d2hlbiBhbgpza2IgaXMgZmlsbGVkLiBPbmNlIHRoZSB3YWxrIG9mIHRoZSB0YWJsZSBpcyBjb21w bGV0ZSwgbXJfdGFibGVfZHVtcApuZWVkcyB0byByZXR1cm4gd2l0aG91dCByZXNldHRpbmcgdGhh dCBpbmRleCB0byAwLiBEdW1wIG9mIGEgc3BlY2lmaWMKdGFibGUgaXMgbG9vcGluZyBiZWNhdXNl IG9mIHRoZSByZXNldCBiZWNhdXNlIHRoZXJlIGlzIG5vIHdheSB0bwppbmRpY2F0ZSB0aGUgd2Fs ayBvZiB0aGUgdGFibGUgaXMgZG9uZS4KCk1vdmUgdGhlIHJlc2V0IHRvIHRoZSBjYWxsZXIgc28g dGhlIGR1bXAgb2YgZWFjaCB0YWJsZSBzdGFydHMgYXQgMCwKYnV0IHRoZSBsb29wIGNvdW50ZXIg aXMgbWFpbnRhaW5lZCBpZiBhIGR1bXAgZmlsbHMgYW4gc2tiLgoKRml4ZXM6IGUxY2VkYWUxYmE2 YjAgKCJpcG1yOiBSZWZhY3RvciBtcl9ydG1fZHVtcHJvdXRlIikKU2lnbmVkLW9mZi1ieTogRGF2 aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvaXBtcl9iYXNlLmMgfCAzICst LQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL25ldC9pcHY0L2lwbXJfYmFzZS5jIGIvbmV0L2lwdjQvaXBtcl9iYXNlLmMKaW5kZXgg M2U2MTRjYzgyNGY3Li4zYTFhZjUwYmQwYTUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lwbXJfYmFz ZS5jCisrKyBiL25ldC9pcHY0L2lwbXJfYmFzZS5jCkBAIC0zMzUsOCArMzM1LDYgQEAgaW50IG1y X3RhYmxlX2R1bXAoc3RydWN0IG1yX3RhYmxlICptcnQsIHN0cnVjdCBza19idWZmICpza2IsCiAJ fQogCXNwaW5fdW5sb2NrX2JoKGxvY2spOwogCWVyciA9IDA7Ci0JZSA9IDA7Ci0KIG91dDoKIAlj Yi0+YXJnc1sxXSA9IGU7CiAJcmV0dXJuIGVycjsKQEAgLTM3NCw2ICszNzIsNyBAQCBpbnQgbXJf cnRtX2R1bXByb3V0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFj ayAqY2IsCiAJCWVyciA9IG1yX3RhYmxlX2R1bXAobXJ0LCBza2IsIGNiLCBmaWxsLCBsb2NrLCBm aWx0ZXIpOwogCQlpZiAoZXJyIDwgMCkKIAkJCWJyZWFrOworCQljYi0+YXJnc1sxXSA9IDA7CiBu ZXh0X3RhYmxlOgogCQl0Kys7CiAJfQotLSAKMi4yMC4xCgoKRnJvbSBiOGFlYmY4MjdkZDQ0OTZh ODVhOWQxNjIxNDkzMmE5NGIyMGZhMTk3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBF cmV6IEFsZmFzaSA8ZXJlemFAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDIwIE1heSAyMDE5IDE3 OjQyOjUyICswMzAwClN1YmplY3Q6IFtQQVRDSCAyMS8yMl0gbmV0L21seDRfZW46IGV0aHRvb2ws IFJlbW92ZSB1bnN1cHBvcnRlZCBTRlAgRUVQUk9NCiBoaWdoIHBhZ2VzIHF1ZXJ5CgpbIFVwc3Ry ZWFtIGNvbW1pdCAxMzVkZDk1OTRmMTI3YzhhODJkMTQxYzNjODQzMGU5ZTIxNDMyMTZhIF0KClF1 ZXJ5aW5nIEVFUFJPTSBoaWdoIHBhZ2VzIGRhdGEgZm9yIFNGUCBtb2R1bGUgaXMgY3VycmVudGx5 Cm5vdCBzdXBwb3J0ZWQgYnkgb3VyIGRyaXZlciBidXQgaXMgc3RpbGwgdHJpZWQsIHJlc3VsdGlu ZyBpbgppbnZhbGlkIEZXIHF1ZXJpZXMuCgpTZXQgdGhlIEVFUFJPTSBldGh0b29sIGRhdGEgbGVu Z3RoIHRvIDI1NiBmb3IgU0ZQIG1vZHVsZSB0bwpsaW1pdCB0aGUgcmVhZGluZyBmb3IgcGFnZSAw IG9ubHkgYW5kIHByZXZlbnQgaW52YWxpZCBGVyBxdWVyaWVzLgoKRml4ZXM6IDcyMDJkYThiN2Y3 MSAoImV0aHRvb2wsIG5ldC9tbHg0X2VuOiBDYWJsZSBpbmZvLCBnZXRfbW9kdWxlX2luZm8vZWVw cm9tIGV0aHRvb2wgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEVyZXogQWxmYXNpIDxlcmV6YUBt ZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94 LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fZXRodG9vbC5jIHwg NCArKystCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L3BvcnQuYyAgICAgICB8 IDUgLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fZXRo dG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9ldGh0b29sLmMK aW5kZXggZDI5MGYwNzg3ZGZiLi45NGM1OTkzOWE4Y2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fZXRodG9vbC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDQvZW5fZXRodG9vbC5jCkBAIC0yMDEwLDYgKzIwMTAsOCBAQCBz dGF0aWMgaW50IG1seDRfZW5fc2V0X3R1bmFibGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAly ZXR1cm4gcmV0OwogfQogCisjZGVmaW5lIE1MWDRfRUVQUk9NX1BBR0VfTEVOIDI1NgorCiBzdGF0 aWMgaW50IG1seDRfZW5fZ2V0X21vZHVsZV9pbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJ CQkJICAgc3RydWN0IGV0aHRvb2xfbW9kaW5mbyAqbW9kaW5mbykKIHsKQEAgLTIwNDQsNyArMjA0 Niw3IEBAIHN0YXRpYyBpbnQgbWx4NF9lbl9nZXRfbW9kdWxlX2luZm8oc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwKIAkJYnJlYWs7CiAJY2FzZSBNTFg0X01PRFVMRV9JRF9TRlA6CiAJCW1vZGluZm8t PnR5cGUgPSBFVEhfTU9EVUxFX1NGRl84NDcyOwotCQltb2RpbmZvLT5lZXByb21fbGVuID0gRVRI X01PRFVMRV9TRkZfODQ3Ml9MRU47CisJCW1vZGluZm8tPmVlcHJvbV9sZW4gPSBNTFg0X0VFUFJP TV9QQUdFX0xFTjsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FSU5WQUw7CmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L3BvcnQuYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvcG9ydC5jCmluZGV4IDEwZmNjMjJmNDU5MC4u YmE2YWMzMWEzMzlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg0L3BvcnQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L3BvcnQu YwpAQCAtMjA3NywxMSArMjA3Nyw2IEBAIGludCBtbHg0X2dldF9tb2R1bGVfaW5mbyhzdHJ1Y3Qg bWx4NF9kZXYgKmRldiwgdTggcG9ydCwKIAkJc2l6ZSAtPSBvZmZzZXQgKyBzaXplIC0gSTJDX1BB R0VfU0laRTsKIAogCWkyY19hZGRyID0gSTJDX0FERFJfTE9XOwotCWlmIChvZmZzZXQgPj0gSTJD X1BBR0VfU0laRSkgewotCQkvKiBSZXNldCBvZmZzZXQgdG8gaGlnaCBwYWdlICovCi0JCWkyY19h ZGRyID0gSTJDX0FERFJfSElHSDsKLQkJb2Zmc2V0IC09IEkyQ19QQUdFX1NJWkU7Ci0JfQogCiAJ Y2FibGVfaW5mbyA9IChzdHJ1Y3QgbWx4NF9jYWJsZV9pbmZvICopaW5tYWQtPmRhdGE7CiAJY2Fi bGVfaW5mby0+ZGV2X21lbV9hZGRyZXNzID0gY3B1X3RvX2JlMTYob2Zmc2V0KTsKLS0gCjIuMjAu MQoKCkZyb20gOWZhOTgwYmVlOTY4MWI1ODNlMTU3ODE5NTY3YjBkM2FjMzJiYjlmMSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtpY2luc2tpQG5l dHJvbm9tZS5jb20+CkRhdGU6IFR1ZSwgNCBKdW4gMjAxOSAxMjowMDoxMiAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMjIvMjJdIG5ldC90bHM6IHJlcGxhY2UgdGhlIHNsZWVwaW5nIGxvY2sgYXJvdW5k IFJYIHJlc3luYwogd2l0aCBhIGJpdCBsb2NrCgpbIFVwc3RyZWFtIGNvbW1pdCBlNTI5NzJjMTFk NmIxMjYyOTY0ZGI5NmQ2NTkzNDE5NmRiNjIxNjg1IF0KCkNvbW1pdCAzODAzMGQ3Y2I3NzkgKCJu ZXQvdGxzOiBhdm9pZCBOVUxMLWRlcmVmIG9uIHJlc3luYyBkdXJpbmcgZGV2aWNlIHJlbW92YWwi KQp0cmllZCB0byBmaXggYSBwb3RlbnRpYWwgTlVMTC1kZXJlZmVyZW5jZSBieSB0YWtpbmcgdGhl CmNvbnRleHQgcndzZW0uICBVbmZvcnR1bmF0ZWx5IHRoZSBSWCByZXN5bmMgbWF5IGdldCBjYWxs ZWQKZnJvbSBzb2Z0IElSUSwgc28gd2UgY2FuJ3QgdXNlIHRoZSByd3NlbSB0byBwcm90ZWN0IGZy b20KdGhlIGRldmljZSBkaXNhcHBlYXJpbmcuICBCZWNhdXNlIHdlIGFyZSBndWFyYW50ZWVkIHRo ZXJlCmNhbiBiZSBvbmx5IG9uZSByZXN5bmMgYXQgYSB0aW1lIChpdCdzIGNhbGxlZCBmcm9tIHN0 cnBhcnNlcikKdXNlIGEgYml0IHRvIGluZGljYXRlIHJlc3luYyBpcyBidXN5IGFuZCBtYWtlIGRl dmljZQpyZW1vdmFsIHdhaXQgZm9yIHRoZSBiaXQgdG8gZ2V0IGNsZWFyZWQuCgpOb3RlIHRoYXQg dGhlcmUgaXMgYSBsZWZ0b3ZlciAiZmxhZ3MiIGZpZWxkIGluIHN0cnVjdAp0bHNfY29udGV4dCBh bHJlYWR5LgoKRml4ZXM6IDQ3OTlhYzgxZTUyYSAoInRsczogQWRkIHJ4IGlubGluZSBjcnlwdG8g b2ZmbG9hZCIpClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBu ZXRyb25vbWUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvdGxzLmggICAgfCAgNCArKysrCiBuZXQvdGxzL3Rs c19kZXZpY2UuYyB8IDI3ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogMiBmaWxlcyBjaGFu Z2VkLCAyNSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbmV0L3Rscy5oIGIvaW5jbHVkZS9uZXQvdGxzLmgKaW5kZXggNTkzNDI0NmIyYzZmLi4wNTMw ODJkOTg5MDYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3Rscy5oCisrKyBiL2luY2x1ZGUvbmV0 L3Rscy5oCkBAIC0xOTksNiArMTk5LDEwIEBAIHN0cnVjdCB0bHNfb2ZmbG9hZF9jb250ZXh0X3R4 IHsKIAkoQUxJR04oc2l6ZW9mKHN0cnVjdCB0bHNfb2ZmbG9hZF9jb250ZXh0X3R4KSwgc2l6ZW9m KHZvaWQgKikpICsgICAgICAgIFwKIAkgVExTX0RSSVZFUl9TVEFURV9TSVpFKQogCitlbnVtIHRs c19jb250ZXh0X2ZsYWdzIHsKKwlUTFNfUlhfU1lOQ19SVU5OSU5HID0gMCwKK307CisKIHN0cnVj dCBjaXBoZXJfY29udGV4dCB7CiAJY2hhciAqaXY7CiAJY2hhciAqcmVjX3NlcTsKZGlmZiAtLWdp dCBhL25ldC90bHMvdGxzX2RldmljZS5jIGIvbmV0L3Rscy90bHNfZGV2aWNlLmMKaW5kZXggMGZk OGYwOTk3ZmY1Li4xMjQ1NGYwZDVhNjMgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX2RldmljZS5j CisrKyBiL25ldC90bHMvdGxzX2RldmljZS5jCkBAIC01NzAsMTAgKzU3MCwyMiBAQCB2b2lkIHRs c19kZXZpY2Vfd3JpdGVfc3BhY2Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGxzX2NvbnRleHQg KmN0eCkKIAl9CiB9CiAKK3N0YXRpYyB2b2lkIHRsc19kZXZpY2VfcmVzeW5jX3J4KHN0cnVjdCB0 bHNfY29udGV4dCAqdGxzX2N0eCwKKwkJCQkgc3RydWN0IHNvY2sgKnNrLCB1MzIgc2VxLCB1NjQg cmNkX3NuKQoreworCXN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7CisKKwlpZiAoV0FSTl9PTih0 ZXN0X2FuZF9zZXRfYml0KFRMU19SWF9TWU5DX1JVTk5JTkcsICZ0bHNfY3R4LT5mbGFncykpKQor CQlyZXR1cm47CisJbmV0ZGV2ID0gUkVBRF9PTkNFKHRsc19jdHgtPm5ldGRldik7CisJaWYgKG5l dGRldikKKwkJbmV0ZGV2LT50bHNkZXZfb3BzLT50bHNfZGV2X3Jlc3luY19yeChuZXRkZXYsIHNr LCBzZXEsIHJjZF9zbik7CisJY2xlYXJfYml0X3VubG9jayhUTFNfUlhfU1lOQ19SVU5OSU5HLCAm dGxzX2N0eC0+ZmxhZ3MpOworfQorCiB2b2lkIGhhbmRsZV9kZXZpY2VfcmVzeW5jKHN0cnVjdCBz b2NrICpzaywgdTMyIHNlcSwgdTY0IHJjZF9zbikKIHsKIAlzdHJ1Y3QgdGxzX2NvbnRleHQgKnRs c19jdHggPSB0bHNfZ2V0X2N0eChzayk7Ci0Jc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiA9IHRs c19jdHgtPm5ldGRldjsKIAlzdHJ1Y3QgdGxzX29mZmxvYWRfY29udGV4dF9yeCAqcnhfY3R4Owog CXUzMiBpc19yZXFfcGVuZGluZzsKIAlzNjQgcmVzeW5jX3JlcTsKQEAgLTU4OCwxMCArNjAwLDEw IEBAIHZvaWQgaGFuZGxlX2RldmljZV9yZXN5bmMoc3RydWN0IHNvY2sgKnNrLCB1MzIgc2VxLCB1 NjQgcmNkX3NuKQogCWlzX3JlcV9wZW5kaW5nID0gcmVzeW5jX3JlcTsKIAogCWlmICh1bmxpa2Vs eShpc19yZXFfcGVuZGluZykgJiYgcmVxX3NlcSA9PSBzZXEgJiYKLQkgICAgYXRvbWljNjRfdHJ5 X2NtcHhjaGcoJnJ4X2N0eC0+cmVzeW5jX3JlcSwgJnJlc3luY19yZXEsIDApKQotCQluZXRkZXYt PnRsc2Rldl9vcHMtPnRsc19kZXZfcmVzeW5jX3J4KG5ldGRldiwgc2ssCi0JCQkJCQkgICAgICBz ZXEgKyBUTFNfSEVBREVSX1NJWkUgLSAxLAotCQkJCQkJICAgICAgcmNkX3NuKTsKKwkgICAgYXRv bWljNjRfdHJ5X2NtcHhjaGcoJnJ4X2N0eC0+cmVzeW5jX3JlcSwgJnJlc3luY19yZXEsIDApKSB7 CisJCXNlcSArPSBUTFNfSEVBREVSX1NJWkUgLSAxOworCQl0bHNfZGV2aWNlX3Jlc3luY19yeCh0 bHNfY3R4LCBzaywgc2VxLCByY2Rfc24pOworCX0KIH0KIAogc3RhdGljIGludCB0bHNfZGV2aWNl X3JlZW5jcnlwdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCkBAIC05ODEs NyArOTkzLDEwIEBAIHN0YXRpYyBpbnQgdGxzX2RldmljZV9kb3duKHN0cnVjdCBuZXRfZGV2aWNl ICpuZXRkZXYpCiAJCWlmIChjdHgtPnJ4X2NvbmYgPT0gVExTX0hXKQogCQkJbmV0ZGV2LT50bHNk ZXZfb3BzLT50bHNfZGV2X2RlbChuZXRkZXYsIGN0eCwKIAkJCQkJCQlUTFNfT0ZGTE9BRF9DVFhf RElSX1JYKTsKLQkJY3R4LT5uZXRkZXYgPSBOVUxMOworCQlXUklURV9PTkNFKGN0eC0+bmV0ZGV2 LCBOVUxMKTsKKwkJc21wX21iX19iZWZvcmVfYXRvbWljKCk7IC8qIHBhaXJzIHdpdGggdGVzdF9h bmRfc2V0X2JpdCgpICovCisJCXdoaWxlICh0ZXN0X2JpdChUTFNfUlhfU1lOQ19SVU5OSU5HLCAm Y3R4LT5mbGFncykpCisJCQl1c2xlZXBfcmFuZ2UoMTAsIDIwMCk7CiAJCWRldl9wdXQobmV0ZGV2 KTsKIAkJbGlzdF9kZWxfaW5pdCgmY3R4LT5saXN0KTsKIAotLSAKMi4yMC4xCgo= ----Next_Part(Sat_Jun__8_16_27_22_2019_250)----