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=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, 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 5BE50C48BDF for ; Fri, 11 Jun 2021 00:07:16 +0000 (UTC) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CAE9C613AE for ; Fri, 11 Jun 2021 00:07:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CAE9C613AE Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=schaufler-ca.com Authentication-Results: mail.kernel.org; spf=tempfail smtp.mailfrom=linux-audit-bounces@redhat.com Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-559-sDqWzI_GOwKPeYwNU5Vubw-1; Thu, 10 Jun 2021 20:07:13 -0400 X-MC-Unique: sDqWzI_GOwKPeYwNU5Vubw-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 09AA1107ACF6; Fri, 11 Jun 2021 00:07:10 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E735717C5F; Fri, 11 Jun 2021 00:07:09 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 8BA8546F59; Fri, 11 Jun 2021 00:07:09 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 15B077SG024770 for ; Thu, 10 Jun 2021 20:07:08 -0400 Received: by smtp.corp.redhat.com (Postfix) id C30F321231AC; Fri, 11 Jun 2021 00:07:07 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BDCF22051B83 for ; Fri, 11 Jun 2021 00:07:04 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4B80A802C16 for ; Fri, 11 Jun 2021 00:07:04 +0000 (UTC) Received: from sonic314-27.consmr.mail.ne1.yahoo.com (sonic314-27.consmr.mail.ne1.yahoo.com [66.163.189.153]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-166-nkfMI4doNU-xuqjsbLTNiA-1; Thu, 10 Jun 2021 20:07:01 -0400 X-MC-Unique: nkfMI4doNU-xuqjsbLTNiA-1 X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1623370020; bh=f0Ytu5Y4Of4TLAKP9F36wsY/TMAKreR7qh/sB6iNrnc=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=dZw45uiN8eoRA4hbuvbbGQ93P4qF+ggOBOphXySZ+BdVmR7QsRru3syaC26ZuZ9RGNQzkfiqbei62Wy8XTKb5VbJaxX7Il9K7bXnMQ0RYkCj3YA5fSfQmQUnjebJmAawSH7QEoeKoDAzCRA7u44Z/2PvrGPDExYAiXbJF31Bc5iYJaZ7xQUA07QoEC+teKF6qw2DhjohbVuTsvNPs3Yi9gEb+GY20e7X2MwoXwb1nv6oz81wSiQK3aCpAWkRRtlNL/TU6lSxjd0LroxqnH/inZ2PysVZoaF1d5ZKuE19f4Vhs3g55WGsTJFhWif6nPo1Pf7HldUpsp1prO4HH5MdKQ== X-YMail-OSG: GB4B5j4VM1n02r1TB8u4lofDQ2gbaAvlPgAAkHeiLffuOLE2wbUbmSHWYWgEKKM ofEbsZ0Xe9Ohu32QcQM4CxjaC8814_pZa7nIQEZzKJIe7QhZe7YzeufkEx2huM._tcDcbJZvJipJ s.I6lnCDeabjpZHauOhhhvaUkKQZWZdNbJAIj3nqWyZCJZ36RWKygSwwM7zQdKT8wKu2WGe9DOdM ML_tRw7er8aaOZkeqEisS_l4MGQ1MfFpf_qlHvdCnvK0thX2hnvaMiKIjOHt2RQ9YqKDwqWSXfAS cYwxsBeur5jbbxAwcRCDHo2tXJ9qof_MBMGtNt2GBe5OTOxC7byx3FG_lKgiAXD2og8vTyOzyzhF fP6Shc.RC980T77ylusx0I.76hQVgjRZAhQWTmp9q8IEZ6IRDMhOO6P9P1YKer444q0lLUw_McqR mKRU4tUrKg6FATUbmRX1YAz15OeD8ocU4QmrUiYHgKHopP2_TKnp.Y_3.Eu5Q_aNtEKVN9vkKMLz I.gMrvs0n_ymJkSs0WKcJcD8uDkmWFzLOhFAQDrRy0VS9yTi7a0_j9rNGih.1WvJgTFvCqSOPMbZ PI3ahnucMfn9ZhIRvhTnVeNa2W7uhOX5jHjt_iw8ZFS13NJ1ozYtA8efSOgsvdACk.aaZA.ZfV4l ooR27pCkoRwleoB6nUzgKZqkwmkbCVwZ6xeXUpx3816ZlrP5u5jDC0vgl2AOifaGFH2Z8RrXP75q AjXD.YDMIOfG5no4wSXthXYxPH5Xs5GsfBnrOCpScEkGOO86FB67DVBzcooAoyECTxmUYf1l8qZO Lh3hnqAl_sqQBxFuPDVLgEIDnX_6A7GoQeJn6VtAUeYkmVVdu14zWWkAUYgwgfGstM1Wn62DteNz pn2DcuzwMYznvnuyifDNFyPsrPhO9sG.M05XZVt99ftSWVkNrjwYxsDPFwQdTk3UCX6Eq64_1UZW x4XioNmbOSSGyBkao8.gS_tMsNF4t.g2hhVlbkQjRvuUJYAleadHaHy.YNAFeKzeh5qADjg7Fbmg KLzPZetjmCA47pc042J.C_xl3npss_aa914N5aOOVTA0QHUbcs4KU29chdC9WYcrHIboSqnt795e Qh4Y0cXG4EKLxiT6ISOLWF05DW_K_QhJakVj_z8qzFp1w1u_nTAuQksnM71RES3mmxBQ00oPwdgv 09w2H6LXGcVSzI9ti5IO2ksTqtR3lNF1QGh_b_.sUT72TTbmoI2WVJJIsl6tAi.DMxiyFQslNWw2 Cs6BkG7o4mR9.9grtN3erdQtPzIT1aSZdsnz0J5goHG1fnfAALjr_kkiOn1QiOdbiH_RzKuL8bNa 33.Kt7.PUgWtNhPfVfZXwNZGzbbbwTJdSO0_kxjiYD2iCypHSlb027JcKCKrP3sTEHBJ_TXUr6_Q unWoupZB_YUxOR9ZozoeJBpI18hvDej05kH8teAjgIfcjO7Od.j1OlLOIJoPw.zFfKaI8r8vzsQ_ 9ArHEr3d.eExDuxOOqL0Yf1hSplo3S5xsrA5epAyjZQ5Wk7VjcXIgEgvU7CbCEqmFT0VElkTONT1 jzSUMhzsya96XBiqGZhcbnpwow8O7v900W8ySj_s.ww84nDk7EOnSFC9MjFVqhzZVZ2IGXGzqheY aRQmmKTXkOK_EWEkXLrimZdJyMNEVSGe49PB1VLMX6glFT2VG46fR_aP4o8vPSJYEK3hv129Hgw7 3vApjQiMe1wXCcOZmCJSXTYnvApEN4XXlsph5vrh9kNMuHL1k47IPNqW1qk5K6R2qXhuDDLR1ymw IpS1W6IX00LGBNJJLd.DiIuBlEHG3QsNgL.4sJHwZeCGPeyOpu2QKBGXdUDfwoI8SkUri9sdKkAn PkQQzWVYrFD9DKheulrIteI3scBKozDSpLhdst0jkIN2X42dBGM8mCmPlM2arCUd9Ft9j82fGXWw B99AEzyERxKbrYUwFqI_zbZUDVMrhGgNsDuTDudD8qGd0zGpSRKEMfskIcZVq_gS8XzuBLQSvHsk tPS3TqhK14p798EW8kKv_lAUR8mMsB_FV94K5mTRChV6W57RERdsCWKn26iI8wN5LZvGuSibvjCS krTf4LP55hps_HQGTtxUdYfg0Lswl0JkTJbxFjuLBJ7SVok3GcH62S.e0miE7iiODVu3jr3y2X6I XItvklhzA3O1_qqW9A2w_Ju0FHwf0hN5BJwNyRzsfv0gQwC2OfCJWVDHUvCsjPHlh3YupO98XebX nE_SZZ0QllCkOdcj8EnYiX_8jp_xQvpQzwdSpgWq4KT.8H9Uu0QuyCgrxqG07K7CRLDxgWXLQG5a 57LP_d790YwM17iuF2Yo69jju.juXQaYKAeOJOlwVrla.fy4G_w4Ko68qKLNlcqEs9kUjNCM3Cg7 ruLXlGhy3Q_3IRHTTl_lJk4iLei50TaYWoSEKYCc_Ou6MCznnmIOei.CrsBB9.RQvjMQ68c.Yk31 gKKolonJSC0sIphc8IIIkDPo8LdugOe9pXTQiJ5xJEOW1nxHKXjoTlTWT6Muld9TALSONND3.4vM SzkaWkljv6luTNIjReBsel6WXNcxWewvY565_3yMDdHqaLQEQavUm0bg_yedc3qd8WpAnMtnn.nX oBxGtJoTjq5TecSfnKw_mugPxG_BWpGNf8Dx9kSBq14HzIMzu.ytp8rl4hnuUOTGgoB.r8k_qrW1 FT5KLWFVp7MMVB95gV0u4jOvWnK3DmlkpfUtvLoyQyUW2icQfSazqLvr.Ez0ujtgsnOa69ZmaZAY _3vxqmoInwZ.I.fhTLtD9BItexUyLK_mbA.aOa4nS_4ejs9ArMQEogCx3uhN.PEwiGR4G.Z.mSD3 LOivea.kKlZjOe8cUdlXVVdqMTCC81a5gZlhtV7n6WG9RAvp_djlL.GdeV1JKrAcsEJ4CvS1Nit0 uac6SQvFqiTkTZMJAvc.Sh9Xd3JSeBNlGz2kvx77EGs9AfMbCz24BkDrqMp9afW9wGp5VV5eJMm1 kPfoVD2RkBcAVNYtwd1GMyFlOqEZIyKxLj6GNTENbwlW8GbeBgTvZV2lodEXy3Eca471C7HYNZjX ArvNy0ZiDlgfoN_109l3KM5gC1uzLXtMLjrM4MsFB.vK8D92_XstOZ6fkisYos7IIEq2N3FUqcGa dHcz3c81kLM_XrdI- X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.ne1.yahoo.com with HTTP; Fri, 11 Jun 2021 00:07:00 +0000 Received: by kubenode547.mail-prod1.omega.ne1.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID def83d2a249c950bfe73876fdab09eba; Fri, 11 Jun 2021 00:06:56 +0000 (UTC) From: Casey Schaufler To: casey.schaufler@intel.com, jmorris@namei.org, linux-security-module@vger.kernel.org, selinux@vger.kernel.org Subject: [PATCH v27 02/25] LSM: Add the lsmblob data structure. Date: Thu, 10 Jun 2021 17:04:12 -0700 Message-Id: <20210611000435.36398-3-casey@schaufler-ca.com> In-Reply-To: <20210611000435.36398-1-casey@schaufler-ca.com> References: <20210611000435.36398-1-casey@schaufler-ca.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-loop: linux-audit@redhat.com Cc: john.johansen@canonical.com, linux-kernel@vger.kernel.org, linux-audit@redhat.com, bpf@vger.kernel.org, sds@tycho.nsa.gov X-BeenThere: linux-audit@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Linux Audit Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-audit-bounces@redhat.com Errors-To: linux-audit-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=linux-audit-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 V2hlbiBtb3JlIHRoYW4gb25lIHNlY3VyaXR5IG1vZHVsZSBpcyBleHBvcnRpbmcgZGF0YSB0bwph dWRpdCBhbmQgbmV0d29ya2luZyBzdWItc3lzdGVtcyBhIHNpbmdsZSAzMiBiaXQgaW50ZWdlcgpp cyBubyBsb25nZXIgc3VmZmljaWVudCB0byByZXByZXNlbnQgdGhlIGRhdGEuIEFkZCBhCnN0cnVj dHVyZSB0byBiZSB1c2VkIGluc3RlYWQuCgpUaGUgbHNtYmxvYiBzdHJ1Y3R1cmUgaXMgY3VycmVu dGx5IGFuIGFycmF5IG9mCnUzMiAic2VjaWRzIi4gVGhlcmUgaXMgYW4gZW50cnkgZm9yIGVhY2gg b2YgdGhlCnNlY3VyaXR5IG1vZHVsZXMgYnVpbHQgaW50byB0aGUgc3lzdGVtIHRoYXQgd291bGQK dXNlIHNlY2lkcyBpZiBhY3RpdmUuIFRoZSBzeXN0ZW0gYXNzaWducyB0aGUgbW9kdWxlCmEgInNs b3QiIHdoZW4gaXQgcmVnaXN0ZXJzIGhvb2tzLiBJZiBtb2R1bGVzIGFyZQpjb21waWxlZCBpbiBi dXQgbm90IHJlZ2lzdGVyZWQgdGhlcmUgd2lsbCBiZSB1bnVzZWQKc2xvdHMuCgpBIG5ldyBsc21f aWQgc3RydWN0dXJlLCB3aGljaCBjb250YWlucyB0aGUgbmFtZQpvZiB0aGUgTFNNIGFuZCBpdHMg c2xvdCBudW1iZXIsIGlzIGNyZWF0ZWQuIFRoZXJlCmlzIGFuIGluc3RhbmNlIGZvciBlYWNoIExT TSwgd2hpY2ggYXNzaWducyB0aGUgbmFtZQphbmQgcGFzc2VzIGl0IHRvIHRoZSBpbmZyYXN0cnVj dHVyZSB0byBzZXQgdGhlIHNsb3QuCgpUaGUgYXVkaXQgcnVsZXMgZGF0YSBpcyBleHBhbmRlZCB0 byB1c2UgYW4gYXJyYXkgb2YKc2VjdXJpdHkgbW9kdWxlIGRhdGEgcmF0aGVyIHRoYW4gYSBzaW5n bGUgaW5zdGFuY2UuCkJlY2F1c2UgSU1BIHVzZXMgdGhlIGF1ZGl0IHJ1bGUgZnVuY3Rpb25zIGl0 IGlzCmFmZmVjdGVkIGFzIHdlbGwuCgpBY2tlZC1ieTogU3RlcGhlbiBTbWFsbGV5IDxzZHNAdHlj aG8ubnNhLmdvdj4KQWNrZWQtYnk6IFBhdWwgTW9vcmUgPHBhdWxAcGF1bC1tb29yZS5jb20+CkFj a2VkLWJ5OiBKb2huIEpvaGFuc2VuIDxqb2huLmpvaGFuc2VuQGNhbm9uaWNhbC5jb20+ClNpZ25l ZC1vZmYtYnk6IENhc2V5IFNjaGF1ZmxlciA8Y2FzZXlAc2NoYXVmbGVyLWNhLmNvbT4KQ2M6IDxi cGZAdmdlci5rZXJuZWwub3JnPgpDYzogbGludXgtYXVkaXRAcmVkaGF0LmNvbQpDYzogbGludXgt c2VjdXJpdHktbW9kdWxlQHZnZXIua2VybmVsLm9yZwpDYzogc2VsaW51eEB2Z2VyLmtlcm5lbC5v cmcKVG86IE1pbWkgWm9oYXIgPHpvaGFyQGxpbnV4LmlibS5jb20+ClRvOiBNaWNrYcOrbCBTYWxh w7xuIDxtaWNAbGludXgubWljcm9zb2Z0LmNvbT4KLS0tCiBpbmNsdWRlL2xpbnV4L2F1ZGl0Lmgg ICAgICAgICAgICAgICB8ICA0ICstCiBpbmNsdWRlL2xpbnV4L2xzbV9ob29rcy5oICAgICAgICAg ICB8IDEyICsrKystCiBpbmNsdWRlL2xpbnV4L3NlY3VyaXR5LmggICAgICAgICAgICB8IDY3ICsr KysrKysrKysrKysrKysrKysrKysrKy0tCiBrZXJuZWwvYXVkaXRmaWx0ZXIuYyAgICAgICAgICAg ICAgICB8IDI0ICsrKysrLS0tLS0KIGtlcm5lbC9hdWRpdHNjLmMgICAgICAgICAgICAgICAgICAg IHwgMTMgKysrLS0KIHNlY3VyaXR5L2FwcGFybW9yL2xzbS5jICAgICAgICAgICAgIHwgIDcgKyst CiBzZWN1cml0eS9icGYvaG9va3MuYyAgICAgICAgICAgICAgICB8IDEyICsrKystCiBzZWN1cml0 eS9jb21tb25jYXAuYyAgICAgICAgICAgICAgICB8ICA3ICsrLQogc2VjdXJpdHkvaW50ZWdyaXR5 L2ltYS9pbWFfcG9saWN5LmMgfCA0MCArKysrKysrKysrKy0tLS0tCiBzZWN1cml0eS9sYW5kbG9j ay9jcmVkLmMgICAgICAgICAgICB8ICAyICstCiBzZWN1cml0eS9sYW5kbG9jay9mcy5jICAgICAg ICAgICAgICB8ICAyICstCiBzZWN1cml0eS9sYW5kbG9jay9wdHJhY2UuYyAgICAgICAgICB8ICAy ICstCiBzZWN1cml0eS9sYW5kbG9jay9zZXR1cC5jICAgICAgICAgICB8ICA1ICsrCiBzZWN1cml0 eS9sYW5kbG9jay9zZXR1cC5oICAgICAgICAgICB8ICAxICsKIHNlY3VyaXR5L2xvYWRwaW4vbG9h ZHBpbi5jICAgICAgICAgIHwgIDggKysrLQogc2VjdXJpdHkvbG9ja2Rvd24vbG9ja2Rvd24uYyAg ICAgICAgfCAgNyArKy0KIHNlY3VyaXR5L3NhZmVzZXRpZC9sc20uYyAgICAgICAgICAgIHwgIDgg KysrLQogc2VjdXJpdHkvc2VjdXJpdHkuYyAgICAgICAgICAgICAgICAgfCA3NCArKysrKysrKysr KysrKysrKysrKysrKystLS0tLQogc2VjdXJpdHkvc2VsaW51eC9ob29rcy5jICAgICAgICAgICAg fCAgOCArKystCiBzZWN1cml0eS9zbWFjay9zbWFja19sc20uYyAgICAgICAgICB8ICA3ICsrLQog c2VjdXJpdHkvdG9tb3lvL3RvbW95by5jICAgICAgICAgICAgfCAgOCArKystCiBzZWN1cml0eS95 YW1hL3lhbWFfbHNtLmMgICAgICAgICAgICB8ICA3ICsrLQogMjIgZmlsZXMgY2hhbmdlZCwgMjY1 IGluc2VydGlvbnMoKyksIDYwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvYXVkaXQuaCBiL2luY2x1ZGUvbGludXgvYXVkaXQuaAppbmRleCA4MmI3YzExMTZhODUuLjQx OGE0ODVhZjExNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9hdWRpdC5oCisrKyBiL2luY2x1 ZGUvbGludXgvYXVkaXQuaApAQCAtMTEsNiArMTEsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvc2No ZWQuaD4KICNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zZWN1cml0 eS5oPgogI2luY2x1ZGUgPHVhcGkvbGludXgvYXVkaXQuaD4KICNpbmNsdWRlIDx1YXBpL2xpbnV4 L25ldGZpbHRlci9uZl90YWJsZXMuaD4KIApAQCAtNjUsOCArNjYsOSBAQCBzdHJ1Y3QgYXVkaXRf ZmllbGQgewogCQlrdWlkX3QJCQl1aWQ7CiAJCWtnaWRfdAkJCWdpZDsKIAkJc3RydWN0IHsKKwkJ CWJvb2wJCWxzbV9pc3NldDsKIAkJCWNoYXIJCSpsc21fc3RyOwotCQkJdm9pZAkJKmxzbV9ydWxl OworCQkJdm9pZAkJKmxzbV9ydWxlc1tMU01CTE9CX0VOVFJJRVNdOwogCQl9OwogCX07CiAJdTMy CQkJCW9wOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9sc21faG9va3MuaCBiL2luY2x1ZGUv bGludXgvbHNtX2hvb2tzLmgKaW5kZXggYWZkM2IxNjg3NWIwLi5jNjFhMTZmMGE1YmMgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbGludXgvbHNtX2hvb2tzLmgKKysrIGIvaW5jbHVkZS9saW51eC9sc21f aG9va3MuaApAQCAtMTU3MCw2ICsxNTcwLDE0IEBAIHN0cnVjdCBzZWN1cml0eV9ob29rX2hlYWRz IHsKIAkjdW5kZWYgTFNNX0hPT0sKIH0gX19yYW5kb21pemVfbGF5b3V0OwogCisvKgorICogSW5m b3JtYXRpb24gdGhhdCBpZGVudGlmaWVzIGEgc2VjdXJpdHkgbW9kdWxlLgorICovCitzdHJ1Y3Qg bHNtX2lkIHsKKwljb25zdCBjaGFyCSpsc207CS8qIE5hbWUgb2YgdGhlIExTTSAqLworCWludAkJ c2xvdDsJLyogU2xvdCBpbiBsc21ibG9iIGlmIG9uZSBpcyBhbGxvY2F0ZWQgKi8KK307CisKIC8q CiAgKiBTZWN1cml0eSBtb2R1bGUgaG9vayBsaXN0IHN0cnVjdHVyZS4KICAqIEZvciB1c2Ugd2l0 aCBnZW5lcmljIGxpc3QgbWFjcm9zIGZvciBjb21tb24gb3BlcmF0aW9ucy4KQEAgLTE1NzgsNyAr MTU4Niw3IEBAIHN0cnVjdCBzZWN1cml0eV9ob29rX2xpc3QgewogCXN0cnVjdCBobGlzdF9ub2Rl CQlsaXN0OwogCXN0cnVjdCBobGlzdF9oZWFkCQkqaGVhZDsKIAl1bmlvbiBzZWN1cml0eV9saXN0 X29wdGlvbnMJaG9vazsKLQljaGFyCQkJCSpsc207CisJc3RydWN0IGxzbV9pZAkJCSpsc21pZDsK IH0gX19yYW5kb21pemVfbGF5b3V0OwogCiAvKgpAQCAtMTYxNCw3ICsxNjIyLDcgQEAgZXh0ZXJu IHN0cnVjdCBzZWN1cml0eV9ob29rX2hlYWRzIHNlY3VyaXR5X2hvb2tfaGVhZHM7CiBleHRlcm4g Y2hhciAqbHNtX25hbWVzOwogCiBleHRlcm4gdm9pZCBzZWN1cml0eV9hZGRfaG9va3Moc3RydWN0 IHNlY3VyaXR5X2hvb2tfbGlzdCAqaG9va3MsIGludCBjb3VudCwKLQkJCQljaGFyICpsc20pOwor CQkJICAgICAgIHN0cnVjdCBsc21faWQgKmxzbWlkKTsKIAogI2RlZmluZSBMU01fRkxBR19MRUdB Q1lfTUFKT1IJQklUKDApCiAjZGVmaW5lIExTTV9GTEFHX0VYQ0xVU0lWRQlCSVQoMSkKZGlmZiAt LWdpdCBhL2luY2x1ZGUvbGludXgvc2VjdXJpdHkuaCBiL2luY2x1ZGUvbGludXgvc2VjdXJpdHku aAppbmRleCAwNmY3YzUwY2U3N2YuLjYyNTg4YmM1MjJiYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9s aW51eC9zZWN1cml0eS5oCisrKyBiL2luY2x1ZGUvbGludXgvc2VjdXJpdHkuaApAQCAtMTMzLDYg KzEzMyw2NSBAQCBlbnVtIGxvY2tkb3duX3JlYXNvbiB7CiAKIGV4dGVybiBjb25zdCBjaGFyICpj b25zdCBsb2NrZG93bl9yZWFzb25zW0xPQ0tET1dOX0NPTkZJREVOVElBTElUWV9NQVgrMV07CiAK Ky8qCisgKiBEYXRhIGV4cG9ydGVkIGJ5IHRoZSBzZWN1cml0eSBtb2R1bGVzCisgKgorICogQW55 IExTTSB0aGF0IHByb3ZpZGVzIHNlY2lkIG9yIHNlY2N0eCBiYXNlZCBob29rcyBtdXN0IGJlIGlu Y2x1ZGVkLgorICovCisjZGVmaW5lIExTTUJMT0JfRU5UUklFUyAoIFwKKwkoSVNfRU5BQkxFRChD T05GSUdfU0VDVVJJVFlfU0VMSU5VWCkgPyAxIDogMCkgKyBcCisJKElTX0VOQUJMRUQoQ09ORklH X1NFQ1VSSVRZX1NNQUNLKSA/IDEgOiAwKSArIFwKKwkoSVNfRU5BQkxFRChDT05GSUdfU0VDVVJJ VFlfQVBQQVJNT1IpID8gMSA6IDApICsgXAorCShJU19FTkFCTEVEKENPTkZJR19CUEZfTFNNKSA/ IDEgOiAwKSkKKworc3RydWN0IGxzbWJsb2IgeworCXUzMiAgICAgc2VjaWRbTFNNQkxPQl9FTlRS SUVTXTsKK307CisKKyNkZWZpbmUgTFNNQkxPQl9JTlZBTElECQktMQkvKiBOb3QgYSB2YWxpZCBM U00gc2xvdCBudW1iZXIgKi8KKyNkZWZpbmUgTFNNQkxPQl9ORUVERUQJCS0yCS8qIFNsb3QgcmVx dWVzdGVkIG9uIGluaXRpYWxpemF0aW9uICovCisjZGVmaW5lIExTTUJMT0JfTk9UX05FRURFRAkt MwkvKiBTbG90IG5vdCByZXF1ZXN0ZWQgKi8KKworLyoqCisgKiBsc21ibG9iX2luaXQgLSBpbml0 aWFsaXplIGFuIGxzbWJsb2Igc3RydWN0dXJlCisgKiBAYmxvYjogUG9pbnRlciB0byB0aGUgZGF0 YSB0byBpbml0aWFsaXplCisgKiBAc2VjaWQ6IFRoZSBpbml0aWFsIHNlY2lkIHZhbHVlCisgKgor ICogU2V0IGFsbCBzZWNpZCBmb3IgYWxsIG1vZHVsZXMgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4K KyAqLworc3RhdGljIGlubGluZSB2b2lkIGxzbWJsb2JfaW5pdChzdHJ1Y3QgbHNtYmxvYiAqYmxv YiwgdTMyIHNlY2lkKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IExTTUJMT0JfRU5U UklFUzsgaSsrKQorCQlibG9iLT5zZWNpZFtpXSA9IHNlY2lkOworfQorCisvKioKKyAqIGxzbWJs b2JfaXNfc2V0IC0gcmVwb3J0IGlmIHRoZXJlIGlzIGFuIHZhbHVlIGluIHRoZSBsc21ibG9iCisg KiBAYmxvYjogUG9pbnRlciB0byB0aGUgZXhwb3J0ZWQgTFNNIGRhdGEKKyAqCisgKiBSZXR1cm5z IHRydWUgaWYgdGhlcmUgaXMgYSBzZWNpZCBzZXQsIGZhbHNlIG90aGVyd2lzZQorICovCitzdGF0 aWMgaW5saW5lIGJvb2wgbHNtYmxvYl9pc19zZXQoc3RydWN0IGxzbWJsb2IgKmJsb2IpCit7CisJ c3RydWN0IGxzbWJsb2IgZW1wdHkgPSB7fTsKKworCXJldHVybiAhIW1lbWNtcChibG9iLCAmZW1w dHksIHNpemVvZigqYmxvYikpOworfQorCisvKioKKyAqIGxzbWJsb2JfZXF1YWwgLSByZXBvcnQg aWYgdGhlIHR3byBsc21ibG9iJ3MgYXJlIGVxdWFsCisgKiBAYmxvYmE6IFBvaW50ZXIgdG8gb25l IExTTSBkYXRhCisgKiBAYmxvYmI6IFBvaW50ZXIgdG8gdGhlIG90aGVyIExTTSBkYXRhCisgKgor ICogUmV0dXJucyB0cnVlIGlmIGFsbCBlbnRyaWVzIGluIHRoZSB0d28gYXJlIGVxdWFsLCBmYWxz ZSBvdGhlcndpc2UKKyAqLworc3RhdGljIGlubGluZSBib29sIGxzbWJsb2JfZXF1YWwoc3RydWN0 IGxzbWJsb2IgKmJsb2JhLCBzdHJ1Y3QgbHNtYmxvYiAqYmxvYmIpCit7CisJcmV0dXJuICFtZW1j bXAoYmxvYmEsIGJsb2JiLCBzaXplb2YoKmJsb2JhKSk7Cit9CisKIC8qIFRoZXNlIGZ1bmN0aW9u cyBhcmUgaW4gc2VjdXJpdHkvY29tbW9uY2FwLmMgKi8KIGV4dGVybiBpbnQgY2FwX2NhcGFibGUo Y29uc3Qgc3RydWN0IGNyZWQgKmNyZWQsIHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqbnMsCiAJCSAg ICAgICBpbnQgY2FwLCB1bnNpZ25lZCBpbnQgb3B0cyk7CkBAIC0xODgxLDggKzE5NDAsOCBAQCBz dGF0aWMgaW5saW5lIGludCBzZWN1cml0eV9rZXlfZ2V0c2VjdXJpdHkoc3RydWN0IGtleSAqa2V5 LCBjaGFyICoqX2J1ZmZlcikKICNpZmRlZiBDT05GSUdfU0VDVVJJVFkKIGludCBzZWN1cml0eV9h dWRpdF9ydWxlX2luaXQodTMyIGZpZWxkLCB1MzIgb3AsIGNoYXIgKnJ1bGVzdHIsIHZvaWQgKips c21ydWxlKTsKIGludCBzZWN1cml0eV9hdWRpdF9ydWxlX2tub3duKHN0cnVjdCBhdWRpdF9rcnVs ZSAqa3J1bGUpOwotaW50IHNlY3VyaXR5X2F1ZGl0X3J1bGVfbWF0Y2godTMyIHNlY2lkLCB1MzIg ZmllbGQsIHUzMiBvcCwgdm9pZCAqbHNtcnVsZSk7Ci12b2lkIHNlY3VyaXR5X2F1ZGl0X3J1bGVf ZnJlZSh2b2lkICpsc21ydWxlKTsKK2ludCBzZWN1cml0eV9hdWRpdF9ydWxlX21hdGNoKHUzMiBz ZWNpZCwgdTMyIGZpZWxkLCB1MzIgb3AsIHZvaWQgKipsc21ydWxlKTsKK3ZvaWQgc2VjdXJpdHlf YXVkaXRfcnVsZV9mcmVlKHZvaWQgKipsc21ydWxlKTsKIAogI2Vsc2UKIApAQCAtMTg5OCwxMiAr MTk1NywxMiBAQCBzdGF0aWMgaW5saW5lIGludCBzZWN1cml0eV9hdWRpdF9ydWxlX2tub3duKHN0 cnVjdCBhdWRpdF9rcnVsZSAqa3J1bGUpCiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHNlY3VyaXR5 X2F1ZGl0X3J1bGVfbWF0Y2godTMyIHNlY2lkLCB1MzIgZmllbGQsIHUzMiBvcCwKLQkJCQkJICAg IHZvaWQgKmxzbXJ1bGUpCisJCQkJCSAgICB2b2lkICoqbHNtcnVsZSkKIHsKIAlyZXR1cm4gMDsK IH0KIAotc3RhdGljIGlubGluZSB2b2lkIHNlY3VyaXR5X2F1ZGl0X3J1bGVfZnJlZSh2b2lkICps c21ydWxlKQorc3RhdGljIGlubGluZSB2b2lkIHNlY3VyaXR5X2F1ZGl0X3J1bGVfZnJlZSh2b2lk ICoqbHNtcnVsZSkKIHsgfQogCiAjZW5kaWYgLyogQ09ORklHX1NFQ1VSSVRZICovCmRpZmYgLS1n aXQgYS9rZXJuZWwvYXVkaXRmaWx0ZXIuYyBiL2tlcm5lbC9hdWRpdGZpbHRlci5jCmluZGV4IGRi MmM2YjU5ZGZjMy4uYTIzNDBlODFjZmE3IDEwMDY0NAotLS0gYS9rZXJuZWwvYXVkaXRmaWx0ZXIu YworKysgYi9rZXJuZWwvYXVkaXRmaWx0ZXIuYwpAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMgdm9p ZCBhdWRpdF9mcmVlX2xzbV9maWVsZChzdHJ1Y3QgYXVkaXRfZmllbGQgKmYpCiAJY2FzZSBBVURJ VF9PQkpfTEVWX0xPVzoKIAljYXNlIEFVRElUX09CSl9MRVZfSElHSDoKIAkJa2ZyZWUoZi0+bHNt X3N0cik7Ci0JCXNlY3VyaXR5X2F1ZGl0X3J1bGVfZnJlZShmLT5sc21fcnVsZSk7CisJCXNlY3Vy aXR5X2F1ZGl0X3J1bGVfZnJlZShmLT5sc21fcnVsZXMpOwogCX0KIH0KIApAQCAtNTE5LDkgKzUx OSwxMCBAQCBzdGF0aWMgc3RydWN0IGF1ZGl0X2VudHJ5ICphdWRpdF9kYXRhX3RvX2VudHJ5KHN0 cnVjdCBhdWRpdF9ydWxlX2RhdGEgKmRhdGEsCiAJCQkJZ290byBleGl0X2ZyZWU7CiAJCQl9CiAJ CQllbnRyeS0+cnVsZS5idWZsZW4gKz0gZl92YWw7CisJCQlmLT5sc21faXNzZXQgPSB0cnVlOwog CQkJZi0+bHNtX3N0ciA9IHN0cjsKIAkJCWVyciA9IHNlY3VyaXR5X2F1ZGl0X3J1bGVfaW5pdChm LT50eXBlLCBmLT5vcCwgc3RyLAotCQkJCQkJICAgICAgICh2b2lkICoqKSZmLT5sc21fcnVsZSk7 CisJCQkJCQkgICAgICAgZi0+bHNtX3J1bGVzKTsKIAkJCS8qIEtlZXAgY3VycmVudGx5IGludmFs aWQgZmllbGRzIGFyb3VuZCBpbiBjYXNlIHRoZXkKIAkJCSAqIGJlY29tZSB2YWxpZCBhZnRlciBh IHBvbGljeSByZWxvYWQuICovCiAJCQlpZiAoZXJyID09IC1FSU5WQUwpIHsKQEAgLTc3NCw3ICs3 NzUsNyBAQCBzdGF0aWMgaW50IGF1ZGl0X2NvbXBhcmVfcnVsZShzdHJ1Y3QgYXVkaXRfa3J1bGUg KmEsIHN0cnVjdCBhdWRpdF9rcnVsZSAqYikKIAlyZXR1cm4gMDsKIH0KIAotLyogRHVwbGljYXRl IExTTSBmaWVsZCBpbmZvcm1hdGlvbi4gIFRoZSBsc21fcnVsZSBpcyBvcGFxdWUsIHNvIG11c3Qg YmUKKy8qIER1cGxpY2F0ZSBMU00gZmllbGQgaW5mb3JtYXRpb24uICBUaGUgbHNtX3J1bGVzIGlz IG9wYXF1ZSwgc28gbXVzdCBiZQogICogcmUtaW5pdGlhbGl6ZWQuICovCiBzdGF0aWMgaW5saW5l IGludCBhdWRpdF9kdXBlX2xzbV9maWVsZChzdHJ1Y3QgYXVkaXRfZmllbGQgKmRmLAogCQkJCQkg ICBzdHJ1Y3QgYXVkaXRfZmllbGQgKnNmKQpAQCAtNzg4LDkgKzc4OSw5IEBAIHN0YXRpYyBpbmxp bmUgaW50IGF1ZGl0X2R1cGVfbHNtX2ZpZWxkKHN0cnVjdCBhdWRpdF9maWVsZCAqZGYsCiAJCXJl dHVybiAtRU5PTUVNOwogCWRmLT5sc21fc3RyID0gbHNtX3N0cjsKIAotCS8qIG91ciBvd24gKHJl ZnJlc2hlZCkgY29weSBvZiBsc21fcnVsZSAqLworCS8qIG91ciBvd24gKHJlZnJlc2hlZCkgY29w eSBvZiBsc21fcnVsZXMgKi8KIAlyZXQgPSBzZWN1cml0eV9hdWRpdF9ydWxlX2luaXQoZGYtPnR5 cGUsIGRmLT5vcCwgZGYtPmxzbV9zdHIsCi0JCQkJICAgICAgICh2b2lkICoqKSZkZi0+bHNtX3J1 bGUpOworCQkJCSAgICAgICBkZi0+bHNtX3J1bGVzKTsKIAkvKiBLZWVwIGN1cnJlbnRseSBpbnZh bGlkIGZpZWxkcyBhcm91bmQgaW4gY2FzZSB0aGV5CiAJICogYmVjb21lIHZhbGlkIGFmdGVyIGEg cG9saWN5IHJlbG9hZC4gKi8KIAlpZiAocmV0ID09IC1FSU5WQUwpIHsKQEAgLTg0Miw3ICs4NDMs NyBAQCBzdHJ1Y3QgYXVkaXRfZW50cnkgKmF1ZGl0X2R1cGVfcnVsZShzdHJ1Y3QgYXVkaXRfa3J1 bGUgKm9sZCkKIAluZXctPnRyZWUgPSBvbGQtPnRyZWU7CiAJbWVtY3B5KG5ldy0+ZmllbGRzLCBv bGQtPmZpZWxkcywgc2l6ZW9mKHN0cnVjdCBhdWRpdF9maWVsZCkgKiBmY291bnQpOwogCi0JLyog ZGVlcCBjb3B5IHRoaXMgaW5mb3JtYXRpb24sIHVwZGF0aW5nIHRoZSBsc21fcnVsZSBmaWVsZHMs IGJlY2F1c2UKKwkvKiBkZWVwIGNvcHkgdGhpcyBpbmZvcm1hdGlvbiwgdXBkYXRpbmcgdGhlIGxz bV9ydWxlcyBmaWVsZHMsIGJlY2F1c2UKIAkgKiB0aGUgb3JpZ2luYWxzIHdpbGwgYWxsIGJlIGZy ZWVkIHdoZW4gdGhlIG9sZCBydWxlIGlzIGZyZWVkLiAqLwogCWZvciAoaSA9IDA7IGkgPCBmY291 bnQ7IGkrKykgewogCQlzd2l0Y2ggKG5ldy0+ZmllbGRzW2ldLnR5cGUpIHsKQEAgLTEzNTgsMTEg KzEzNTksMTIgQEAgaW50IGF1ZGl0X2ZpbHRlcihpbnQgbXNndHlwZSwgdW5zaWduZWQgaW50IGxp c3R0eXBlKQogCQkJY2FzZSBBVURJVF9TVUJKX1RZUEU6CiAJCQljYXNlIEFVRElUX1NVQkpfU0VO OgogCQkJY2FzZSBBVURJVF9TVUJKX0NMUjoKLQkJCQlpZiAoZi0+bHNtX3J1bGUpIHsKKwkJCQlp ZiAoZi0+bHNtX2lzc2V0KSB7CiAJCQkJCXNlY3VyaXR5X3Rhc2tfZ2V0c2VjaWRfc3ViaihjdXJy ZW50LAogCQkJCQkJCQkgICAgJnNpZCk7CiAJCQkJCXJlc3VsdCA9IHNlY3VyaXR5X2F1ZGl0X3J1 bGVfbWF0Y2goc2lkLAotCQkJCQkJICAgZi0+dHlwZSwgZi0+b3AsIGYtPmxzbV9ydWxlKTsKKwkJ CQkJCSAgIGYtPnR5cGUsIGYtPm9wLAorCQkJCQkJICAgZi0+bHNtX3J1bGVzKTsKIAkJCQl9CiAJ CQkJYnJlYWs7CiAJCQljYXNlIEFVRElUX0VYRToKQEAgLTEzODksNyArMTM5MSw3IEBAIGludCBh dWRpdF9maWx0ZXIoaW50IG1zZ3R5cGUsIHVuc2lnbmVkIGludCBsaXN0dHlwZSkKIAlyZXR1cm4g cmV0OwogfQogCi1zdGF0aWMgaW50IHVwZGF0ZV9sc21fcnVsZShzdHJ1Y3QgYXVkaXRfa3J1bGUg KnIpCitzdGF0aWMgaW50IHVwZGF0ZV9sc21fcnVsZXMoc3RydWN0IGF1ZGl0X2tydWxlICpyKQog ewogCXN0cnVjdCBhdWRpdF9lbnRyeSAqZW50cnkgPSBjb250YWluZXJfb2Yociwgc3RydWN0IGF1 ZGl0X2VudHJ5LCBydWxlKTsKIAlzdHJ1Y3QgYXVkaXRfZW50cnkgKm5lbnRyeTsKQEAgLTE0MjEs NyArMTQyMyw3IEBAIHN0YXRpYyBpbnQgdXBkYXRlX2xzbV9ydWxlKHN0cnVjdCBhdWRpdF9rcnVs ZSAqcikKIAlyZXR1cm4gZXJyOwogfQogCi0vKiBUaGlzIGZ1bmN0aW9uIHdpbGwgcmUtaW5pdGlh bGl6ZSB0aGUgbHNtX3J1bGUgZmllbGQgb2YgYWxsIGFwcGxpY2FibGUgcnVsZXMuCisvKiBUaGlz IGZ1bmN0aW9uIHdpbGwgcmUtaW5pdGlhbGl6ZSB0aGUgbHNtX3J1bGVzIGZpZWxkIG9mIGFsbCBh cHBsaWNhYmxlIHJ1bGVzLgogICogSXQgd2lsbCB0cmF2ZXJzZSB0aGUgZmlsdGVyIGxpc3RzIHNl cmFyY2hpbmcgZm9yIHJ1bGVzIHRoYXQgY29udGFpbiBMU00KICAqIHNwZWNpZmljIGZpbHRlciBm aWVsZHMuICBXaGVuIHN1Y2ggYSBydWxlIGlzIGZvdW5kLCBpdCBpcyBjb3BpZWQsIHRoZQogICog TFNNIGZpZWxkIGlzIHJlLWluaXRpYWxpemVkLCBhbmQgdGhlIG9sZCBydWxlIGlzIHJlcGxhY2Vk IHdpdGggdGhlCkBAIC0xNDM2LDcgKzE0MzgsNyBAQCBpbnQgYXVkaXRfdXBkYXRlX2xzbV9ydWxl cyh2b2lkKQogCiAJZm9yIChpID0gMDsgaSA8IEFVRElUX05SX0ZJTFRFUlM7IGkrKykgewogCQls aXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUociwgbiwgJmF1ZGl0X3J1bGVzX2xpc3RbaV0sIGxpc3Qp IHsKLQkJCWludCByZXMgPSB1cGRhdGVfbHNtX3J1bGUocik7CisJCQlpbnQgcmVzID0gdXBkYXRl X2xzbV9ydWxlcyhyKTsKIAkJCWlmICghZXJyKQogCQkJCWVyciA9IHJlczsKIAkJfQpkaWZmIC0t Z2l0IGEva2VybmVsL2F1ZGl0c2MuYyBiL2tlcm5lbC9hdWRpdHNjLmMKaW5kZXggMTc1ZWY2ZjNl YTRlLi4zOTJhZmUzZTJmZDYgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9hdWRpdHNjLmMKKysrIGIva2Vy bmVsL2F1ZGl0c2MuYwpAQCAtNjY1LDE0ICs2NjUsMTMgQEAgc3RhdGljIGludCBhdWRpdF9maWx0 ZXJfcnVsZXMoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssCiAJCQkgICBtYXRjaCBmb3Igbm93IHRv IGF2b2lkIGxvc2luZyBpbmZvcm1hdGlvbiB0aGF0CiAJCQkgICBtYXkgYmUgd2FudGVkLiAgIEFu IGVycm9yIG1lc3NhZ2Ugd2lsbCBhbHNvIGJlCiAJCQkgICBsb2dnZWQgdXBvbiBlcnJvciAqLwot CQkJaWYgKGYtPmxzbV9ydWxlKSB7CisJCQlpZiAoZi0+bHNtX2lzc2V0KSB7CiAJCQkJaWYgKG5l ZWRfc2lkKSB7CiAJCQkJCXNlY3VyaXR5X3Rhc2tfZ2V0c2VjaWRfc3Viaih0c2ssICZzaWQpOwog CQkJCQluZWVkX3NpZCA9IDA7CiAJCQkJfQogCQkJCXJlc3VsdCA9IHNlY3VyaXR5X2F1ZGl0X3J1 bGVfbWF0Y2goc2lkLCBmLT50eXBlLAotCQkJCQkJCQkgICBmLT5vcCwKLQkJCQkJCQkJICAgZi0+ bHNtX3J1bGUpOworCQkJCQkJCWYtPm9wLCBmLT5sc21fcnVsZXMpOwogCQkJfQogCQkJYnJlYWs7 CiAJCWNhc2UgQVVESVRfT0JKX1VTRVI6CkBAIC02ODIsMjEgKzY4MSwyMSBAQCBzdGF0aWMgaW50 IGF1ZGl0X2ZpbHRlcl9ydWxlcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywKIAkJY2FzZSBBVURJ VF9PQkpfTEVWX0hJR0g6CiAJCQkvKiBUaGUgYWJvdmUgbm90ZSBmb3IgQVVESVRfU1VCSl9VU0VS Li4uQVVESVRfU1VCSl9DTFIKIAkJCSAgIGFsc28gYXBwbGllcyBoZXJlICovCi0JCQlpZiAoZi0+ bHNtX3J1bGUpIHsKKwkJCWlmIChmLT5sc21faXNzZXQpIHsKIAkJCQkvKiBGaW5kIGZpbGVzIHRo YXQgbWF0Y2ggKi8KIAkJCQlpZiAobmFtZSkgewogCQkJCQlyZXN1bHQgPSBzZWN1cml0eV9hdWRp dF9ydWxlX21hdGNoKAogCQkJCQkJCQluYW1lLT5vc2lkLAogCQkJCQkJCQlmLT50eXBlLAogCQkJ CQkJCQlmLT5vcCwKLQkJCQkJCQkJZi0+bHNtX3J1bGUpOworCQkJCQkJCQlmLT5sc21fcnVsZXMp OwogCQkJCX0gZWxzZSBpZiAoY3R4KSB7CiAJCQkJCWxpc3RfZm9yX2VhY2hfZW50cnkobiwgJmN0 eC0+bmFtZXNfbGlzdCwgbGlzdCkgewogCQkJCQkJaWYgKHNlY3VyaXR5X2F1ZGl0X3J1bGVfbWF0 Y2goCiAJCQkJCQkJCW4tPm9zaWQsCiAJCQkJCQkJCWYtPnR5cGUsCiAJCQkJCQkJCWYtPm9wLAot CQkJCQkJCQlmLT5sc21fcnVsZSkpIHsKKwkJCQkJCQkJZi0+bHNtX3J1bGVzKSkgewogCQkJCQkJ CSsrcmVzdWx0OwogCQkJCQkJCWJyZWFrOwogCQkJCQkJfQpAQCAtNzA3LDcgKzcwNiw3IEBAIHN0 YXRpYyBpbnQgYXVkaXRfZmlsdGVyX3J1bGVzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLAogCQkJ CQlicmVhazsKIAkJCQlpZiAoc2VjdXJpdHlfYXVkaXRfcnVsZV9tYXRjaChjdHgtPmlwYy5vc2lk LAogCQkJCQkJCSAgICAgIGYtPnR5cGUsIGYtPm9wLAotCQkJCQkJCSAgICAgIGYtPmxzbV9ydWxl KSkKKwkJCQkJCQkgICAgICBmLT5sc21fcnVsZXMpKQogCQkJCQkrK3Jlc3VsdDsKIAkJCX0KIAkJ CWJyZWFrOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvYXBwYXJtb3IvbHNtLmMgYi9zZWN1cml0eS9h cHBhcm1vci9sc20uYwppbmRleCA0MTEzNTE2ZmI2MmUuLjM5MmUyNTk0MGQxZiAxMDA2NDQKLS0t IGEvc2VjdXJpdHkvYXBwYXJtb3IvbHNtLmMKKysrIGIvc2VjdXJpdHkvYXBwYXJtb3IvbHNtLmMK QEAgLTExNjEsNiArMTE2MSwxMSBAQCBzdHJ1Y3QgbHNtX2Jsb2Jfc2l6ZXMgYXBwYXJtb3JfYmxv Yl9zaXplcyBfX2xzbV9yb19hZnRlcl9pbml0ID0gewogCS5sYnNfc29jayA9IHNpemVvZihzdHJ1 Y3QgYWFfc2tfY3R4KSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgbHNtX2lkIGFwcGFybW9yX2xzbWlk IF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CisJLmxzbSAgPSAiYXBwYXJtb3IiLAorCS5zbG90ID0g TFNNQkxPQl9ORUVERUQKK307CisKIHN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0IGFw cGFybW9yX2hvb2tzW10gX19sc21fcm9fYWZ0ZXJfaW5pdCA9IHsKIAlMU01fSE9PS19JTklUKHB0 cmFjZV9hY2Nlc3NfY2hlY2ssIGFwcGFybW9yX3B0cmFjZV9hY2Nlc3NfY2hlY2spLAogCUxTTV9I T09LX0lOSVQocHRyYWNlX3RyYWNlbWUsIGFwcGFybW9yX3B0cmFjZV90cmFjZW1lKSwKQEAgLTE4 NjIsNyArMTg2Nyw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGFwcGFybW9yX2luaXQodm9pZCkKIAkJ Z290byBidWZmZXJzX291dDsKIAl9CiAJc2VjdXJpdHlfYWRkX2hvb2tzKGFwcGFybW9yX2hvb2tz LCBBUlJBWV9TSVpFKGFwcGFybW9yX2hvb2tzKSwKLQkJCQkiYXBwYXJtb3IiKTsKKwkJCQkmYXBw YXJtb3JfbHNtaWQpOwogCiAJLyogUmVwb3J0IHRoYXQgQXBwQXJtb3Igc3VjY2Vzc2Z1bGx5IGlu aXRpYWxpemVkICovCiAJYXBwYXJtb3JfaW5pdGlhbGl6ZWQgPSAxOwpkaWZmIC0tZ2l0IGEvc2Vj dXJpdHkvYnBmL2hvb2tzLmMgYi9zZWN1cml0eS9icGYvaG9va3MuYwppbmRleCBlNTk3MWZhNzRm ZDcuLjdhNThmZTlhYjhjNCAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvYnBmL2hvb2tzLmMKKysrIGIv c2VjdXJpdHkvYnBmL2hvb2tzLmMKQEAgLTE1LDkgKzE1LDE5IEBAIHN0YXRpYyBzdHJ1Y3Qgc2Vj dXJpdHlfaG9va19saXN0IGJwZl9sc21faG9va3NbXSBfX2xzbV9yb19hZnRlcl9pbml0ID0gewog CUxTTV9IT09LX0lOSVQodGFza19mcmVlLCBicGZfdGFza19zdG9yYWdlX2ZyZWUpLAogfTsKIAor LyoKKyAqIHNsb3QgaGFzIHRvIGJlIExTTUJMT0JfTkVFREVEIGJlY2F1c2Ugc29tZSBvZiB0aGUg aG9va3MKKyAqIHN1cHBsaWVkIGJ5IHRoaXMgbW9kdWxlIHJlcXVpcmUgYSBzbG90LgorICovCitz dHJ1Y3QgbHNtX2lkIGJwZl9sc21pZCBfX2xzbV9yb19hZnRlcl9pbml0ID0geworCS5sc20gPSAi YnBmIiwKKwkuc2xvdCA9IExTTUJMT0JfTkVFREVECit9OworCiBzdGF0aWMgaW50IF9faW5pdCBi cGZfbHNtX2luaXQodm9pZCkKIHsKLQlzZWN1cml0eV9hZGRfaG9va3MoYnBmX2xzbV9ob29rcywg QVJSQVlfU0laRShicGZfbHNtX2hvb2tzKSwgImJwZiIpOworCXNlY3VyaXR5X2FkZF9ob29rcyhi cGZfbHNtX2hvb2tzLCBBUlJBWV9TSVpFKGJwZl9sc21faG9va3MpLAorCQkJICAgJmJwZl9sc21p ZCk7CiAJcHJfaW5mbygiTFNNIHN1cHBvcnQgZm9yIGVCUEYgYWN0aXZlXG4iKTsKIAlyZXR1cm4g MDsKIH0KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2NvbW1vbmNhcC5jIGIvc2VjdXJpdHkvY29tbW9u Y2FwLmMKaW5kZXggM2Y4MTBkMzdiNzFiLi42Mjg2ODVjZjIwZTMgMTAwNjQ0Ci0tLSBhL3NlY3Vy aXR5L2NvbW1vbmNhcC5jCisrKyBiL3NlY3VyaXR5L2NvbW1vbmNhcC5jCkBAIC0xNDQzLDYgKzE0 NDMsMTEgQEAgaW50IGNhcF9tbWFwX2ZpbGUoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGxv bmcgcmVxcHJvdCwKIAogI2lmZGVmIENPTkZJR19TRUNVUklUWQogCitzdGF0aWMgc3RydWN0IGxz bV9pZCBjYXBhYmlsaXR5X2xzbWlkIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CisJLmxzbSAgPSAi Y2FwYWJpbGl0eSIsCisJLnNsb3QgPSBMU01CTE9CX05PVF9ORUVERUQKK307CisKIHN0YXRpYyBz dHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0IGNhcGFiaWxpdHlfaG9va3NbXSBfX2xzbV9yb19hZnRl cl9pbml0ID0gewogCUxTTV9IT09LX0lOSVQoY2FwYWJsZSwgY2FwX2NhcGFibGUpLAogCUxTTV9I T09LX0lOSVQoc2V0dGltZSwgY2FwX3NldHRpbWUpLApAQCAtMTQ2Nyw3ICsxNDcyLDcgQEAgc3Rh dGljIHN0cnVjdCBzZWN1cml0eV9ob29rX2xpc3QgY2FwYWJpbGl0eV9ob29rc1tdIF9fbHNtX3Jv X2FmdGVyX2luaXQgPSB7CiBzdGF0aWMgaW50IF9faW5pdCBjYXBhYmlsaXR5X2luaXQodm9pZCkK IHsKIAlzZWN1cml0eV9hZGRfaG9va3MoY2FwYWJpbGl0eV9ob29rcywgQVJSQVlfU0laRShjYXBh YmlsaXR5X2hvb2tzKSwKLQkJCQkiY2FwYWJpbGl0eSIpOworCQkJICAgJmNhcGFiaWxpdHlfbHNt aWQpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9zZWN1cml0eS9pbnRlZ3JpdHkvaW1h L2ltYV9wb2xpY3kuYyBiL3NlY3VyaXR5L2ludGVncml0eS9pbWEvaW1hX3BvbGljeS5jCmluZGV4 IGZkNWQ0NmU1MTFmMS4uNWM0MDY3N2U4ODFjIDEwMDY0NAotLS0gYS9zZWN1cml0eS9pbnRlZ3Jp dHkvaW1hL2ltYV9wb2xpY3kuYworKysgYi9zZWN1cml0eS9pbnRlZ3JpdHkvaW1hL2ltYV9wb2xp Y3kuYwpAQCAtODAsNyArODAsNyBAQCBzdHJ1Y3QgaW1hX3J1bGVfZW50cnkgewogCWJvb2wgKCpm b3duZXJfb3ApKGt1aWRfdCwga3VpZF90KTsgLyogdWlkX2VxKCksIHVpZF9ndCgpLCB1aWRfbHQo KSAqLwogCWludCBwY3I7CiAJc3RydWN0IHsKLQkJdm9pZCAqcnVsZTsJLyogTFNNIGZpbGUgbWV0 YWRhdGEgc3BlY2lmaWMgKi8KKwkJdm9pZCAqcnVsZXNbTFNNQkxPQl9FTlRSSUVTXTsgLyogTFNN IGZpbGUgbWV0YWRhdGEgc3BlY2lmaWMgKi8KIAkJY2hhciAqYXJnc19wOwkvKiBhdWRpdCB2YWx1 ZSAqLwogCQlpbnQgdHlwZTsJLyogYXVkaXQgdHlwZSAqLwogCX0gbHNtW01BWF9MU01fUlVMRVNd OwpAQCAtOTAsNiArOTAsMjIgQEAgc3RydWN0IGltYV9ydWxlX2VudHJ5IHsKIAlzdHJ1Y3QgaW1h X3RlbXBsYXRlX2Rlc2MgKnRlbXBsYXRlOwogfTsKIAorLyoqCisgKiBpbWFfbHNtX2lzc2V0IC0g SXMgYSBydWxlIHNldCBmb3IgYW55IG9mIHRoZSBhY3RpdmUgc2VjdXJpdHkgbW9kdWxlcworICog QHJ1bGVzOiBUaGUgc2V0IG9mIElNQSBydWxlcyB0byBjaGVjaworICoKKyAqIElmIGEgcnVsZSBp cyBzZXQgZm9yIGFueSBMU00gcmV0dXJuIHRydWUsIG90aGVyd2lzZSByZXR1cm4gZmFsc2UuCisg Ki8KK3N0YXRpYyBpbmxpbmUgYm9vbCBpbWFfbHNtX2lzc2V0KHZvaWQgKnJ1bGVzW10pCit7CisJ aW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgTFNNQkxPQl9FTlRSSUVTOyBpKyspCisJCWlmIChy dWxlc1tpXSkKKwkJCXJldHVybiB0cnVlOworCXJldHVybiBmYWxzZTsKK30KKwogLyoKICAqIFdp dGhvdXQgTFNNIHNwZWNpZmljIGtub3dsZWRnZSwgdGhlIGRlZmF1bHQgcG9saWN5IGNhbiBvbmx5 IGJlCiAgKiB3cml0dGVuIGluIHRlcm1zIG9mIC5hY3Rpb24sIC5mdW5jLCAubWFzaywgLmZzbWFn aWMsIC51aWQsIGFuZCAuZm93bmVyCkBAIC0zMzUsOSArMzUxLDExIEBAIHN0YXRpYyB2b2lkIGlt YV9mcmVlX3J1bGVfb3B0X2xpc3Qoc3RydWN0IGltYV9ydWxlX29wdF9saXN0ICpvcHRfbGlzdCkK IHN0YXRpYyB2b2lkIGltYV9sc21fZnJlZV9ydWxlKHN0cnVjdCBpbWFfcnVsZV9lbnRyeSAqZW50 cnkpCiB7CiAJaW50IGk7CisJaW50IHI7CiAKIAlmb3IgKGkgPSAwOyBpIDwgTUFYX0xTTV9SVUxF UzsgaSsrKSB7Ci0JCWltYV9maWx0ZXJfcnVsZV9mcmVlKGVudHJ5LT5sc21baV0ucnVsZSk7CisJ CWZvciAociA9IDA7IHIgPCBMU01CTE9CX0VOVFJJRVM7IHIrKykKKwkJCWltYV9maWx0ZXJfcnVs ZV9mcmVlKGVudHJ5LT5sc21baV0ucnVsZXNbcl0pOwogCQlrZnJlZShlbnRyeS0+bHNtW2ldLmFy Z3NfcCk7CiAJfQogfQpAQCAtMzg4LDggKzQwNiw4IEBAIHN0YXRpYyBzdHJ1Y3QgaW1hX3J1bGVf ZW50cnkgKmltYV9sc21fY29weV9ydWxlKHN0cnVjdCBpbWFfcnVsZV9lbnRyeSAqZW50cnkpCiAK IAkJaW1hX2ZpbHRlcl9ydWxlX2luaXQobmVudHJ5LT5sc21baV0udHlwZSwgQXVkaXRfZXF1YWws CiAJCQkJICAgICBuZW50cnktPmxzbVtpXS5hcmdzX3AsCi0JCQkJICAgICAmbmVudHJ5LT5sc21b aV0ucnVsZSk7Ci0JCWlmICghbmVudHJ5LT5sc21baV0ucnVsZSkKKwkJCQkgICAgICZuZW50cnkt PmxzbVtpXS5ydWxlc1swXSk7CisJCWlmICghaW1hX2xzbV9pc3NldChuZW50cnktPmxzbVtpXS5y dWxlcykpCiAJCQlwcl93YXJuKCJydWxlIGZvciBMU00gXCclc1wnIGlzIHVuZGVmaW5lZFxuIiwK IAkJCQluZW50cnktPmxzbVtpXS5hcmdzX3ApOwogCX0KQEAgLTU3OCw3ICs1OTYsNyBAQCBzdGF0 aWMgYm9vbCBpbWFfbWF0Y2hfcnVsZXMoc3RydWN0IGltYV9ydWxlX2VudHJ5ICpydWxlLAogCQlp bnQgcmMgPSAwOwogCQl1MzIgb3NpZDsKIAotCQlpZiAoIXJ1bGUtPmxzbVtpXS5ydWxlKSB7CisJ CWlmICghaW1hX2xzbV9pc3NldChydWxlLT5sc21baV0ucnVsZXMpKSB7CiAJCQlpZiAoIXJ1bGUt PmxzbVtpXS5hcmdzX3ApCiAJCQkJY29udGludWU7CiAJCQllbHNlCkBAIC01OTEsMTQgKzYwOSwx NCBAQCBzdGF0aWMgYm9vbCBpbWFfbWF0Y2hfcnVsZXMoc3RydWN0IGltYV9ydWxlX2VudHJ5ICpy dWxlLAogCQkJc2VjdXJpdHlfaW5vZGVfZ2V0c2VjaWQoaW5vZGUsICZvc2lkKTsKIAkJCXJjID0g aW1hX2ZpbHRlcl9ydWxlX21hdGNoKG9zaWQsIHJ1bGUtPmxzbVtpXS50eXBlLAogCQkJCQkJICAg QXVkaXRfZXF1YWwsCi0JCQkJCQkgICBydWxlLT5sc21baV0ucnVsZSk7CisJCQkJCQkgICBydWxl LT5sc21baV0ucnVsZXMpOwogCQkJYnJlYWs7CiAJCWNhc2UgTFNNX1NVQkpfVVNFUjoKIAkJY2Fz ZSBMU01fU1VCSl9ST0xFOgogCQljYXNlIExTTV9TVUJKX1RZUEU6CiAJCQlyYyA9IGltYV9maWx0 ZXJfcnVsZV9tYXRjaChzZWNpZCwgcnVsZS0+bHNtW2ldLnR5cGUsCiAJCQkJCQkgICBBdWRpdF9l cXVhbCwKLQkJCQkJCSAgIHJ1bGUtPmxzbVtpXS5ydWxlKTsKKwkJCQkJCSAgIHJ1bGUtPmxzbVtp XS5ydWxlcyk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWJyZWFrOwpAQCAtOTk0LDcgKzEw MTIsNyBAQCBzdGF0aWMgaW50IGltYV9sc21fcnVsZV9pbml0KHN0cnVjdCBpbWFfcnVsZV9lbnRy eSAqZW50cnksCiB7CiAJaW50IHJlc3VsdDsKIAotCWlmIChlbnRyeS0+bHNtW2xzbV9ydWxlXS5y dWxlKQorCWlmIChpbWFfbHNtX2lzc2V0KGVudHJ5LT5sc21bbHNtX3J1bGVdLnJ1bGVzKSkKIAkJ cmV0dXJuIC1FSU5WQUw7CiAKIAllbnRyeS0+bHNtW2xzbV9ydWxlXS5hcmdzX3AgPSBtYXRjaF9z dHJkdXAoYXJncyk7CkBAIC0xMDA0LDggKzEwMjIsOCBAQCBzdGF0aWMgaW50IGltYV9sc21fcnVs ZV9pbml0KHN0cnVjdCBpbWFfcnVsZV9lbnRyeSAqZW50cnksCiAJZW50cnktPmxzbVtsc21fcnVs ZV0udHlwZSA9IGF1ZGl0X3R5cGU7CiAJcmVzdWx0ID0gaW1hX2ZpbHRlcl9ydWxlX2luaXQoZW50 cnktPmxzbVtsc21fcnVsZV0udHlwZSwgQXVkaXRfZXF1YWwsCiAJCQkJICAgICAgZW50cnktPmxz bVtsc21fcnVsZV0uYXJnc19wLAotCQkJCSAgICAgICZlbnRyeS0+bHNtW2xzbV9ydWxlXS5ydWxl KTsKLQlpZiAoIWVudHJ5LT5sc21bbHNtX3J1bGVdLnJ1bGUpIHsKKwkJCQkgICAgICAmZW50cnkt PmxzbVtsc21fcnVsZV0ucnVsZXNbMF0pOworCWlmICghaW1hX2xzbV9pc3NldChlbnRyeS0+bHNt W2xzbV9ydWxlXS5ydWxlcykpIHsKIAkJcHJfd2FybigicnVsZSBmb3IgTFNNIFwnJXNcJyBpcyB1 bmRlZmluZWRcbiIsCiAJCQllbnRyeS0+bHNtW2xzbV9ydWxlXS5hcmdzX3ApOwogCkBAIC0xODEy LDcgKzE4MzAsNyBAQCBpbnQgaW1hX3BvbGljeV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9p ZCAqdikKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgTUFYX0xTTV9SVUxFUzsgaSsrKSB7Ci0JCWlm IChlbnRyeS0+bHNtW2ldLnJ1bGUpIHsKKwkJaWYgKGltYV9sc21faXNzZXQoZW50cnktPmxzbVtp XS5ydWxlcykpIHsKIAkJCXN3aXRjaCAoaSkgewogCQkJY2FzZSBMU01fT0JKX1VTRVI6CiAJCQkJ c2VxX3ByaW50ZihtLCBwdChPcHRfb2JqX3VzZXIpLApkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvbGFu ZGxvY2svY3JlZC5jIGIvc2VjdXJpdHkvbGFuZGxvY2svY3JlZC5jCmluZGV4IDY3MjVhZjI0YzY4 NC4uNTZiMTIxZDY1NDM2IDEwMDY0NAotLS0gYS9zZWN1cml0eS9sYW5kbG9jay9jcmVkLmMKKysr IGIvc2VjdXJpdHkvbGFuZGxvY2svY3JlZC5jCkBAIC00Miw1ICs0Miw1IEBAIHN0YXRpYyBzdHJ1 Y3Qgc2VjdXJpdHlfaG9va19saXN0IGxhbmRsb2NrX2hvb2tzW10gX19sc21fcm9fYWZ0ZXJfaW5p dCA9IHsKIF9faW5pdCB2b2lkIGxhbmRsb2NrX2FkZF9jcmVkX2hvb2tzKHZvaWQpCiB7CiAJc2Vj dXJpdHlfYWRkX2hvb2tzKGxhbmRsb2NrX2hvb2tzLCBBUlJBWV9TSVpFKGxhbmRsb2NrX2hvb2tz KSwKLQkJCUxBTkRMT0NLX05BTUUpOworCQkJJmxhbmRsb2NrX2xzbWlkKTsKIH0KZGlmZiAtLWdp dCBhL3NlY3VyaXR5L2xhbmRsb2NrL2ZzLmMgYi9zZWN1cml0eS9sYW5kbG9jay9mcy5jCmluZGV4 IDk3YjhlNDIxZjYxNy4uMzE5ZTkwZTkyOTBjIDEwMDY0NAotLS0gYS9zZWN1cml0eS9sYW5kbG9j ay9mcy5jCisrKyBiL3NlY3VyaXR5L2xhbmRsb2NrL2ZzLmMKQEAgLTY4OCw1ICs2ODgsNSBAQCBz dGF0aWMgc3RydWN0IHNlY3VyaXR5X2hvb2tfbGlzdCBsYW5kbG9ja19ob29rc1tdIF9fbHNtX3Jv X2FmdGVyX2luaXQgPSB7CiBfX2luaXQgdm9pZCBsYW5kbG9ja19hZGRfZnNfaG9va3Modm9pZCkK IHsKIAlzZWN1cml0eV9hZGRfaG9va3MobGFuZGxvY2tfaG9va3MsIEFSUkFZX1NJWkUobGFuZGxv Y2tfaG9va3MpLAotCQkJTEFORExPQ0tfTkFNRSk7CisJCQkmbGFuZGxvY2tfbHNtaWQpOwogfQpk aWZmIC0tZ2l0IGEvc2VjdXJpdHkvbGFuZGxvY2svcHRyYWNlLmMgYi9zZWN1cml0eS9sYW5kbG9j ay9wdHJhY2UuYwppbmRleCBmNTViODI0NDZkZTIuLjU0Y2NmNTVhMDc3YSAxMDA2NDQKLS0tIGEv c2VjdXJpdHkvbGFuZGxvY2svcHRyYWNlLmMKKysrIGIvc2VjdXJpdHkvbGFuZGxvY2svcHRyYWNl LmMKQEAgLTExNiw1ICsxMTYsNSBAQCBzdGF0aWMgc3RydWN0IHNlY3VyaXR5X2hvb2tfbGlzdCBs YW5kbG9ja19ob29rc1tdIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CiBfX2luaXQgdm9pZCBsYW5k bG9ja19hZGRfcHRyYWNlX2hvb2tzKHZvaWQpCiB7CiAJc2VjdXJpdHlfYWRkX2hvb2tzKGxhbmRs b2NrX2hvb2tzLCBBUlJBWV9TSVpFKGxhbmRsb2NrX2hvb2tzKSwKLQkJCUxBTkRMT0NLX05BTUUp OworCQkJJmxhbmRsb2NrX2xzbWlkKTsKIH0KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2xhbmRsb2Nr L3NldHVwLmMgYi9zZWN1cml0eS9sYW5kbG9jay9zZXR1cC5jCmluZGV4IGY4ZThlOTgwNDU0Yy4u NzU5ZTAwYjk0MzZjIDEwMDY0NAotLS0gYS9zZWN1cml0eS9sYW5kbG9jay9zZXR1cC5jCisrKyBi L3NlY3VyaXR5L2xhbmRsb2NrL3NldHVwLmMKQEAgLTIzLDYgKzIzLDExIEBAIHN0cnVjdCBsc21f YmxvYl9zaXplcyBsYW5kbG9ja19ibG9iX3NpemVzIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CiAJ Lmxic19zdXBlcmJsb2NrID0gc2l6ZW9mKHN0cnVjdCBsYW5kbG9ja19zdXBlcmJsb2NrX3NlY3Vy aXR5KSwKIH07CiAKK3N0cnVjdCBsc21faWQgbGFuZGxvY2tfbHNtaWQgX19sc21fcm9fYWZ0ZXJf aW5pdCA9IHsKKwkubHNtID0gTEFORExPQ0tfTkFNRSwKKwkuc2xvdCA9IExTTUJMT0JfTk9UX05F RURFRCwKK307CisKIHN0YXRpYyBpbnQgX19pbml0IGxhbmRsb2NrX2luaXQodm9pZCkKIHsKIAls YW5kbG9ja19hZGRfY3JlZF9ob29rcygpOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvbGFuZGxvY2sv c2V0dXAuaCBiL3NlY3VyaXR5L2xhbmRsb2NrL3NldHVwLmgKaW5kZXggMWRhZmZhYjFhYjRiLi4z OGJjZTViMTcyZGMgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2xhbmRsb2NrL3NldHVwLmgKKysrIGIv c2VjdXJpdHkvbGFuZGxvY2svc2V0dXAuaApAQCAtMTQsNSArMTQsNiBAQAogZXh0ZXJuIGJvb2wg bGFuZGxvY2tfaW5pdGlhbGl6ZWQ7CiAKIGV4dGVybiBzdHJ1Y3QgbHNtX2Jsb2Jfc2l6ZXMgbGFu ZGxvY2tfYmxvYl9zaXplczsKK2V4dGVybiBzdHJ1Y3QgbHNtX2lkIGxhbmRsb2NrX2xzbWlkOwog CiAjZW5kaWYgLyogX1NFQ1VSSVRZX0xBTkRMT0NLX1NFVFVQX0ggKi8KZGlmZiAtLWdpdCBhL3Nl Y3VyaXR5L2xvYWRwaW4vbG9hZHBpbi5jIGIvc2VjdXJpdHkvbG9hZHBpbi9sb2FkcGluLmMKaW5k ZXggYjEyZjdkOTg2YjFlLi5iNTY5ZjNiYzE3MGIgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2xvYWRw aW4vbG9hZHBpbi5jCisrKyBiL3NlY3VyaXR5L2xvYWRwaW4vbG9hZHBpbi5jCkBAIC0xOTIsNiAr MTkyLDExIEBAIHN0YXRpYyBpbnQgbG9hZHBpbl9sb2FkX2RhdGEoZW51bSBrZXJuZWxfbG9hZF9k YXRhX2lkIGlkLCBib29sIGNvbnRlbnRzKQogCXJldHVybiBsb2FkcGluX3JlYWRfZmlsZShOVUxM LCAoZW51bSBrZXJuZWxfcmVhZF9maWxlX2lkKSBpZCwgY29udGVudHMpOwogfQogCitzdGF0aWMg c3RydWN0IGxzbV9pZCBsb2FkcGluX2xzbWlkIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CisJLmxz bSAgPSAibG9hZHBpbiIsCisJLnNsb3QgPSBMU01CTE9CX05PVF9ORUVERUQKK307CisKIHN0YXRp YyBzdHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0IGxvYWRwaW5faG9va3NbXSBfX2xzbV9yb19hZnRl cl9pbml0ID0gewogCUxTTV9IT09LX0lOSVQoc2JfZnJlZV9zZWN1cml0eSwgbG9hZHBpbl9zYl9m cmVlX3NlY3VyaXR5KSwKIAlMU01fSE9PS19JTklUKGtlcm5lbF9yZWFkX2ZpbGUsIGxvYWRwaW5f cmVhZF9maWxlKSwKQEAgLTIzOSw3ICsyNDQsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBsb2FkcGlu X2luaXQodm9pZCkKIAlwcl9pbmZvKCJyZWFkeSB0byBwaW4gKGN1cnJlbnRseSAlc2VuZm9yY2lu ZylcbiIsCiAJCWVuZm9yY2UgPyAiIiA6ICJub3QgIik7CiAJcGFyc2VfZXhjbHVkZSgpOwotCXNl Y3VyaXR5X2FkZF9ob29rcyhsb2FkcGluX2hvb2tzLCBBUlJBWV9TSVpFKGxvYWRwaW5faG9va3Mp LCAibG9hZHBpbiIpOworCXNlY3VyaXR5X2FkZF9ob29rcyhsb2FkcGluX2hvb2tzLCBBUlJBWV9T SVpFKGxvYWRwaW5faG9va3MpLAorCQkJICAgJmxvYWRwaW5fbHNtaWQpOwogCXJldHVybiAwOwog fQogCmRpZmYgLS1naXQgYS9zZWN1cml0eS9sb2NrZG93bi9sb2NrZG93bi5jIGIvc2VjdXJpdHkv bG9ja2Rvd24vbG9ja2Rvd24uYwppbmRleCA4N2NiZGM2NGQyNzIuLjRlMjRlYTNmN2I3ZSAxMDA2 NDQKLS0tIGEvc2VjdXJpdHkvbG9ja2Rvd24vbG9ja2Rvd24uYworKysgYi9zZWN1cml0eS9sb2Nr ZG93bi9sb2NrZG93bi5jCkBAIC03NSw2ICs3NSwxMSBAQCBzdGF0aWMgc3RydWN0IHNlY3VyaXR5 X2hvb2tfbGlzdCBsb2NrZG93bl9ob29rc1tdIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CiAJTFNN X0hPT0tfSU5JVChsb2NrZWRfZG93biwgbG9ja2Rvd25faXNfbG9ja2VkX2Rvd24pLAogfTsKIAor c3RhdGljIHN0cnVjdCBsc21faWQgbG9ja2Rvd25fbHNtaWQgX19sc21fcm9fYWZ0ZXJfaW5pdCA9 IHsKKwkubHNtID0gImxvY2tkb3duIiwKKwkuc2xvdCA9IExTTUJMT0JfTk9UX05FRURFRAorfTsK Kwogc3RhdGljIGludCBfX2luaXQgbG9ja2Rvd25fbHNtX2luaXQodm9pZCkKIHsKICNpZiBkZWZp bmVkKENPTkZJR19MT0NLX0RPV05fS0VSTkVMX0ZPUkNFX0lOVEVHUklUWSkKQEAgLTgzLDcgKzg4 LDcgQEAgc3RhdGljIGludCBfX2luaXQgbG9ja2Rvd25fbHNtX2luaXQodm9pZCkKIAlsb2NrX2tl cm5lbF9kb3duKCJLZXJuZWwgY29uZmlndXJhdGlvbiIsIExPQ0tET1dOX0NPTkZJREVOVElBTElU WV9NQVgpOwogI2VuZGlmCiAJc2VjdXJpdHlfYWRkX2hvb2tzKGxvY2tkb3duX2hvb2tzLCBBUlJB WV9TSVpFKGxvY2tkb3duX2hvb2tzKSwKLQkJCSAgICJsb2NrZG93biIpOworCQkJICAgJmxvY2tk b3duX2xzbWlkKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2FmZXNl dGlkL2xzbS5jIGIvc2VjdXJpdHkvc2FmZXNldGlkL2xzbS5jCmluZGV4IDEwNzljNmQ1NDc4NC4u YTJhMmY0NjJhODIxIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zYWZlc2V0aWQvbHNtLmMKKysrIGIv c2VjdXJpdHkvc2FmZXNldGlkL2xzbS5jCkBAIC0yNDEsNiArMjQxLDExIEBAIHN0YXRpYyBpbnQg c2FmZXNldGlkX3Rhc2tfZml4X3NldGdpZChzdHJ1Y3QgY3JlZCAqbmV3LAogCXJldHVybiAtRUFD Q0VTOwogfQogCitzdGF0aWMgc3RydWN0IGxzbV9pZCBzYWZlc2V0aWRfbHNtaWQgX19sc21fcm9f YWZ0ZXJfaW5pdCA9IHsKKwkubHNtICA9ICJzYWZlc2V0aWQiLAorCS5zbG90ID0gTFNNQkxPQl9O T1RfTkVFREVECit9OworCiBzdGF0aWMgc3RydWN0IHNlY3VyaXR5X2hvb2tfbGlzdCBzYWZlc2V0 aWRfc2VjdXJpdHlfaG9va3NbXSA9IHsKIAlMU01fSE9PS19JTklUKHRhc2tfZml4X3NldHVpZCwg c2FmZXNldGlkX3Rhc2tfZml4X3NldHVpZCksCiAJTFNNX0hPT0tfSU5JVCh0YXNrX2ZpeF9zZXRn aWQsIHNhZmVzZXRpZF90YXNrX2ZpeF9zZXRnaWQpLApAQCAtMjUwLDcgKzI1NSw4IEBAIHN0YXRp YyBzdHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0IHNhZmVzZXRpZF9zZWN1cml0eV9ob29rc1tdID0g ewogc3RhdGljIGludCBfX2luaXQgc2FmZXNldGlkX3NlY3VyaXR5X2luaXQodm9pZCkKIHsKIAlz ZWN1cml0eV9hZGRfaG9va3Moc2FmZXNldGlkX3NlY3VyaXR5X2hvb2tzLAotCQkJICAgQVJSQVlf U0laRShzYWZlc2V0aWRfc2VjdXJpdHlfaG9va3MpLCAic2FmZXNldGlkIik7CisJCQkgICBBUlJB WV9TSVpFKHNhZmVzZXRpZF9zZWN1cml0eV9ob29rcyksCisJCQkgICAmc2FmZXNldGlkX2xzbWlk KTsKIAogCS8qIFJlcG9ydCB0aGF0IFNhZmVTZXRJRCBzdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQg Ki8KIAlzYWZlc2V0aWRfaW5pdGlhbGl6ZWQgPSAxOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2Vj dXJpdHkuYyBiL3NlY3VyaXR5L3NlY3VyaXR5LmMKaW5kZXggZTEyYTdjNDYzNDY4Li40NzNiNDk5 NzFhYWIgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlY3VyaXR5LmMKKysrIGIvc2VjdXJpdHkvc2Vj dXJpdHkuYwpAQCAtMzQ0LDYgKzM0NCw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBvcmRlcmVkX2xz bV9pbml0KHZvaWQpCiAJaW5pdF9kZWJ1Zygic29jayBibG9iIHNpemUgICAgICAgPSAlZFxuIiwg YmxvYl9zaXplcy5sYnNfc29jayk7CiAJaW5pdF9kZWJ1Zygic3VwZXJibG9jayBibG9iIHNpemUg PSAlZFxuIiwgYmxvYl9zaXplcy5sYnNfc3VwZXJibG9jayk7CiAJaW5pdF9kZWJ1ZygidGFzayBi bG9iIHNpemUgICAgICAgPSAlZFxuIiwgYmxvYl9zaXplcy5sYnNfdGFzayk7CisJaW5pdF9kZWJ1 ZygibHNtYmxvYiBzaXplICAgICAgICAgPSAlenVcbiIsIHNpemVvZihzdHJ1Y3QgbHNtYmxvYikp OwogCiAJLyoKIAkgKiBDcmVhdGUgYW55IGttZW1fY2FjaGVzIG5lZWRlZCBmb3IgYmxvYnMKQEAg LTQ3MSwyMSArNDcyLDM4IEBAIHN0YXRpYyBpbnQgbHNtX2FwcGVuZChjb25zdCBjaGFyICpuZXcs IGNoYXIgKipyZXN1bHQpCiAJcmV0dXJuIDA7CiB9CiAKKy8qCisgKiBDdXJyZW50IGluZGV4IHRv IHVzZSB3aGlsZSBpbml0aWFsaXppbmcgdGhlIGxzbWJsb2Igc2VjaWQgbGlzdC4KKyAqLworc3Rh dGljIGludCBsc21fc2xvdCBfX2xzbV9yb19hZnRlcl9pbml0OworCiAvKioKICAqIHNlY3VyaXR5 X2FkZF9ob29rcyAtIEFkZCBhIG1vZHVsZXMgaG9va3MgdG8gdGhlIGhvb2sgbGlzdHMuCiAgKiBA aG9va3M6IHRoZSBob29rcyB0byBhZGQKICAqIEBjb3VudDogdGhlIG51bWJlciBvZiBob29rcyB0 byBhZGQKLSAqIEBsc206IHRoZSBuYW1lIG9mIHRoZSBzZWN1cml0eSBtb2R1bGUKKyAqIEBsc21p ZDogdGhlIGlkZW50aWZpY2F0aW9uIGluZm9ybWF0aW9uIGZvciB0aGUgc2VjdXJpdHkgbW9kdWxl CiAgKgogICogRWFjaCBMU00gaGFzIHRvIHJlZ2lzdGVyIGl0cyBob29rcyB3aXRoIHRoZSBpbmZy YXN0cnVjdHVyZS4KKyAqIElmIHRoZSBMU00gaXMgdXNpbmcgaG9va3MgdGhhdCBleHBvcnQgc2Vj aWRzIGFsbG9jYXRlIGEgc2xvdAorICogZm9yIGl0IGluIHRoZSBsc21ibG9iLgogICovCiB2b2lk IF9faW5pdCBzZWN1cml0eV9hZGRfaG9va3Moc3RydWN0IHNlY3VyaXR5X2hvb2tfbGlzdCAqaG9v a3MsIGludCBjb3VudCwKLQkJCQljaGFyICpsc20pCisJCQkgICAgICAgc3RydWN0IGxzbV9pZCAq bHNtaWQpCiB7CiAJaW50IGk7CiAKKwlXQVJOX09OKCFsc21pZC0+c2xvdCB8fCAhbHNtaWQtPmxz bSk7CisKKwlpZiAobHNtaWQtPnNsb3QgPT0gTFNNQkxPQl9ORUVERUQpIHsKKwkJaWYgKGxzbV9z bG90ID49IExTTUJMT0JfRU5UUklFUykKKwkJCXBhbmljKCIlcyBUb28gbWFueSBMU01zIHJlZ2lz dGVyZWQuXG4iLCBfX2Z1bmNfXyk7CisJCWxzbWlkLT5zbG90ID0gbHNtX3Nsb3QrKzsKKwkJaW5p dF9kZWJ1ZygiJXMgYXNzaWduZWQgbHNtYmxvYiBzbG90ICVkXG4iLCBsc21pZC0+bHNtLAorCQkJ ICAgbHNtaWQtPnNsb3QpOworCX0KKwogCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7Ci0J CWhvb2tzW2ldLmxzbSA9IGxzbTsKKwkJaG9va3NbaV0ubHNtaWQgPSBsc21pZDsKIAkJaGxpc3Rf YWRkX3RhaWxfcmN1KCZob29rc1tpXS5saXN0LCBob29rc1tpXS5oZWFkKTsKIAl9CiAKQEAgLTQ5 NCw3ICs1MTIsNyBAQCB2b2lkIF9faW5pdCBzZWN1cml0eV9hZGRfaG9va3Moc3RydWN0IHNlY3Vy aXR5X2hvb2tfbGlzdCAqaG9va3MsIGludCBjb3VudCwKIAkgKiBhbmQgZml4IHRoaXMgdXAgYWZ0 ZXJ3YXJkcy4KIAkgKi8KIAlpZiAoc2xhYl9pc19hdmFpbGFibGUoKSkgewotCQlpZiAobHNtX2Fw cGVuZChsc20sICZsc21fbmFtZXMpIDwgMCkKKwkJaWYgKGxzbV9hcHBlbmQobHNtaWQtPmxzbSwg JmxzbV9uYW1lcykgPCAwKQogCQkJcGFuaWMoIiVzIC0gQ2Fubm90IGdldCBlYXJseSBtZW1vcnku XG4iLCBfX2Z1bmNfXyk7CiAJfQogfQpAQCAtMjA3MCw3ICsyMDg4LDcgQEAgaW50IHNlY3VyaXR5 X2dldHByb2NhdHRyKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgY29uc3QgY2hhciAqbHNtLCBjaGFy ICpuYW1lLAogCXN0cnVjdCBzZWN1cml0eV9ob29rX2xpc3QgKmhwOwogCiAJaGxpc3RfZm9yX2Vh Y2hfZW50cnkoaHAsICZzZWN1cml0eV9ob29rX2hlYWRzLmdldHByb2NhdHRyLCBsaXN0KSB7Ci0J CWlmIChsc20gIT0gTlVMTCAmJiBzdHJjbXAobHNtLCBocC0+bHNtKSkKKwkJaWYgKGxzbSAhPSBO VUxMICYmIHN0cmNtcChsc20sIGhwLT5sc21pZC0+bHNtKSkKIAkJCWNvbnRpbnVlOwogCQlyZXR1 cm4gaHAtPmhvb2suZ2V0cHJvY2F0dHIocCwgbmFtZSwgdmFsdWUpOwogCX0KQEAgLTIwODMsNyAr MjEwMSw3IEBAIGludCBzZWN1cml0eV9zZXRwcm9jYXR0cihjb25zdCBjaGFyICpsc20sIGNvbnN0 IGNoYXIgKm5hbWUsIHZvaWQgKnZhbHVlLAogCXN0cnVjdCBzZWN1cml0eV9ob29rX2xpc3QgKmhw OwogCiAJaGxpc3RfZm9yX2VhY2hfZW50cnkoaHAsICZzZWN1cml0eV9ob29rX2hlYWRzLnNldHBy b2NhdHRyLCBsaXN0KSB7Ci0JCWlmIChsc20gIT0gTlVMTCAmJiBzdHJjbXAobHNtLCBocC0+bHNt KSkKKwkJaWYgKGxzbSAhPSBOVUxMICYmIHN0cmNtcChsc20sIGhwLT5sc21pZC0+bHNtKSkKIAkJ CWNvbnRpbnVlOwogCQlyZXR1cm4gaHAtPmhvb2suc2V0cHJvY2F0dHIobmFtZSwgdmFsdWUsIHNp emUpOwogCX0KQEAgLTI1NzYsNyArMjU5NCwyNCBAQCBpbnQgc2VjdXJpdHlfa2V5X2dldHNlY3Vy aXR5KHN0cnVjdCBrZXkgKmtleSwgY2hhciAqKl9idWZmZXIpCiAKIGludCBzZWN1cml0eV9hdWRp dF9ydWxlX2luaXQodTMyIGZpZWxkLCB1MzIgb3AsIGNoYXIgKnJ1bGVzdHIsIHZvaWQgKipsc21y dWxlKQogewotCXJldHVybiBjYWxsX2ludF9ob29rKGF1ZGl0X3J1bGVfaW5pdCwgMCwgZmllbGQs IG9wLCBydWxlc3RyLCBsc21ydWxlKTsKKwlzdHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0ICpocDsK Kwlib29sIG9uZV9pc19nb29kID0gZmFsc2U7CisJaW50IHJjID0gMDsKKwlpbnQgdHJjOworCisJ aGxpc3RfZm9yX2VhY2hfZW50cnkoaHAsICZzZWN1cml0eV9ob29rX2hlYWRzLmF1ZGl0X3J1bGVf aW5pdCwgbGlzdCkgeworCQlpZiAoV0FSTl9PTihocC0+bHNtaWQtPnNsb3QgPCAwIHx8IGhwLT5s c21pZC0+c2xvdCA+PSBsc21fc2xvdCkpCisJCQljb250aW51ZTsKKwkJdHJjID0gaHAtPmhvb2su YXVkaXRfcnVsZV9pbml0KGZpZWxkLCBvcCwgcnVsZXN0ciwKKwkJCQkJICAgICAgICZsc21ydWxl W2hwLT5sc21pZC0+c2xvdF0pOworCQlpZiAodHJjID09IDApCisJCQlvbmVfaXNfZ29vZCA9IHRy dWU7CisJCWVsc2UKKwkJCXJjID0gdHJjOworCX0KKwlpZiAob25lX2lzX2dvb2QpCisJCXJldHVy biAwOworCXJldHVybiByYzsKIH0KIAogaW50IHNlY3VyaXR5X2F1ZGl0X3J1bGVfa25vd24oc3Ry dWN0IGF1ZGl0X2tydWxlICprcnVsZSkKQEAgLTI1ODQsMTQgKzI2MTksMzEgQEAgaW50IHNlY3Vy aXR5X2F1ZGl0X3J1bGVfa25vd24oc3RydWN0IGF1ZGl0X2tydWxlICprcnVsZSkKIAlyZXR1cm4g Y2FsbF9pbnRfaG9vayhhdWRpdF9ydWxlX2tub3duLCAwLCBrcnVsZSk7CiB9CiAKLXZvaWQgc2Vj dXJpdHlfYXVkaXRfcnVsZV9mcmVlKHZvaWQgKmxzbXJ1bGUpCit2b2lkIHNlY3VyaXR5X2F1ZGl0 X3J1bGVfZnJlZSh2b2lkICoqbHNtcnVsZSkKIHsKLQljYWxsX3ZvaWRfaG9vayhhdWRpdF9ydWxl X2ZyZWUsIGxzbXJ1bGUpOworCXN0cnVjdCBzZWN1cml0eV9ob29rX2xpc3QgKmhwOworCisJaGxp c3RfZm9yX2VhY2hfZW50cnkoaHAsICZzZWN1cml0eV9ob29rX2hlYWRzLmF1ZGl0X3J1bGVfZnJl ZSwgbGlzdCkgeworCQlpZiAoV0FSTl9PTihocC0+bHNtaWQtPnNsb3QgPCAwIHx8IGhwLT5sc21p ZC0+c2xvdCA+PSBsc21fc2xvdCkpCisJCQljb250aW51ZTsKKwkJaHAtPmhvb2suYXVkaXRfcnVs ZV9mcmVlKGxzbXJ1bGVbaHAtPmxzbWlkLT5zbG90XSk7CisJfQogfQogCi1pbnQgc2VjdXJpdHlf YXVkaXRfcnVsZV9tYXRjaCh1MzIgc2VjaWQsIHUzMiBmaWVsZCwgdTMyIG9wLCB2b2lkICpsc21y dWxlKQoraW50IHNlY3VyaXR5X2F1ZGl0X3J1bGVfbWF0Y2godTMyIHNlY2lkLCB1MzIgZmllbGQs IHUzMiBvcCwgdm9pZCAqKmxzbXJ1bGUpCiB7Ci0JcmV0dXJuIGNhbGxfaW50X2hvb2soYXVkaXRf cnVsZV9tYXRjaCwgMCwgc2VjaWQsIGZpZWxkLCBvcCwgbHNtcnVsZSk7CisJc3RydWN0IHNlY3Vy aXR5X2hvb2tfbGlzdCAqaHA7CisJaW50IHJjOworCisJaGxpc3RfZm9yX2VhY2hfZW50cnkoaHAs ICZzZWN1cml0eV9ob29rX2hlYWRzLmF1ZGl0X3J1bGVfbWF0Y2gsIGxpc3QpIHsKKwkJaWYgKFdB Uk5fT04oaHAtPmxzbWlkLT5zbG90IDwgMCB8fCBocC0+bHNtaWQtPnNsb3QgPj0gbHNtX3Nsb3Qp KQorCQkJY29udGludWU7CisJCXJjID0gaHAtPmhvb2suYXVkaXRfcnVsZV9tYXRjaChzZWNpZCwg ZmllbGQsIG9wLAorCQkJCQkgICAgICAgJmxzbXJ1bGVbaHAtPmxzbWlkLT5zbG90XSk7CisJCWlm IChyYykKKwkJCXJldHVybiByYzsKKwl9CisJcmV0dXJuIDA7CiB9CiAjZW5kaWYgLyogQ09ORklH X0FVRElUICovCiAKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvaG9va3MuYyBiL3NlY3Vy aXR5L3NlbGludXgvaG9va3MuYwppbmRleCA4NGRkY2VjNjMyMmUuLjAxMzNiMTQyZTkzOCAxMDA2 NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9ob29rcy5jCisrKyBiL3NlY3VyaXR5L3NlbGludXgv aG9va3MuYwpAQCAtNzExMSw2ICs3MTExLDExIEBAIHN0YXRpYyBpbnQgc2VsaW51eF9wZXJmX2V2 ZW50X3dyaXRlKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIH0KICNlbmRpZgogCitzdGF0aWMg c3RydWN0IGxzbV9pZCBzZWxpbnV4X2xzbWlkIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CisJLmxz bSAgPSAic2VsaW51eCIsCisJLnNsb3QgPSBMU01CTE9CX05FRURFRAorfTsKKwogLyoKICAqIElN UE9SVEFOVCBOT1RFOiBXaGVuIGFkZGluZyBuZXcgaG9va3MsIHBsZWFzZSBiZSBjYXJlZnVsIHRv IGtlZXAgdGhpcyBvcmRlcjoKICAqIDEuIGFueSBob29rcyB0aGF0IGRvbid0IGJlbG9uZyB0byAo Mi4pIG9yICgzLikgYmVsb3csCkBAIC03NDI0LDcgKzc0MjksOCBAQCBzdGF0aWMgX19pbml0IGlu dCBzZWxpbnV4X2luaXQodm9pZCkKIAogCWhhc2h0YWJfY2FjaGVfaW5pdCgpOwogCi0Jc2VjdXJp dHlfYWRkX2hvb2tzKHNlbGludXhfaG9va3MsIEFSUkFZX1NJWkUoc2VsaW51eF9ob29rcyksICJz ZWxpbnV4Iik7CisJc2VjdXJpdHlfYWRkX2hvb2tzKHNlbGludXhfaG9va3MsIEFSUkFZX1NJWkUo c2VsaW51eF9ob29rcyksCisJCQkgICAmc2VsaW51eF9sc21pZCk7CiAKIAlpZiAoYXZjX2FkZF9j YWxsYmFjayhzZWxpbnV4X25ldGNhY2hlX2F2Y19jYWxsYmFjaywgQVZDX0NBTExCQUNLX1JFU0VU KSkKIAkJcGFuaWMoIlNFTGludXg6IFVuYWJsZSB0byByZWdpc3RlciBBVkMgbmV0Y2FjaGUgY2Fs bGJhY2tcbiIpOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc21hY2svc21hY2tfbHNtLmMgYi9zZWN1 cml0eS9zbWFjay9zbWFja19sc20uYwppbmRleCAxZWUwYmYxNDkzZjYuLjVjMTBhZDI3YmUzNyAx MDA2NDQKLS0tIGEvc2VjdXJpdHkvc21hY2svc21hY2tfbHNtLmMKKysrIGIvc2VjdXJpdHkvc21h Y2svc21hY2tfbHNtLmMKQEAgLTQ2OTQsNiArNDY5NCwxMSBAQCBzdHJ1Y3QgbHNtX2Jsb2Jfc2l6 ZXMgc21hY2tfYmxvYl9zaXplcyBfX2xzbV9yb19hZnRlcl9pbml0ID0gewogCS5sYnNfc3VwZXJi bG9jayA9IHNpemVvZihzdHJ1Y3Qgc3VwZXJibG9ja19zbWFjayksCiB9OwogCitzdGF0aWMgc3Ry dWN0IGxzbV9pZCBzbWFja19sc21pZCBfX2xzbV9yb19hZnRlcl9pbml0ID0geworCS5sc20gID0g InNtYWNrIiwKKwkuc2xvdCA9IExTTUJMT0JfTkVFREVECit9OworCiBzdGF0aWMgc3RydWN0IHNl Y3VyaXR5X2hvb2tfbGlzdCBzbWFja19ob29rc1tdIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CiAJ TFNNX0hPT0tfSU5JVChwdHJhY2VfYWNjZXNzX2NoZWNrLCBzbWFja19wdHJhY2VfYWNjZXNzX2No ZWNrKSwKIAlMU01fSE9PS19JTklUKHB0cmFjZV90cmFjZW1lLCBzbWFja19wdHJhY2VfdHJhY2Vt ZSksCkBAIC00ODkzLDcgKzQ4OTgsNyBAQCBzdGF0aWMgX19pbml0IGludCBzbWFja19pbml0KHZv aWQpCiAJLyoKIAkgKiBSZWdpc3RlciB3aXRoIExTTQogCSAqLwotCXNlY3VyaXR5X2FkZF9ob29r cyhzbWFja19ob29rcywgQVJSQVlfU0laRShzbWFja19ob29rcyksICJzbWFjayIpOworCXNlY3Vy aXR5X2FkZF9ob29rcyhzbWFja19ob29rcywgQVJSQVlfU0laRShzbWFja19ob29rcyksICZzbWFj a19sc21pZCk7CiAJc21hY2tfZW5hYmxlZCA9IDE7CiAKIAlwcl9pbmZvKCJTbWFjazogIEluaXRp YWxpemluZy5cbiIpOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvdG9tb3lvL3RvbW95by5jIGIvc2Vj dXJpdHkvdG9tb3lvL3RvbW95by5jCmluZGV4IDFmM2NkNDMyZDgzMC4uMjJmNjJjNjdmMmVjIDEw MDY0NAotLS0gYS9zZWN1cml0eS90b21veW8vdG9tb3lvLmMKKysrIGIvc2VjdXJpdHkvdG9tb3lv L3RvbW95by5jCkBAIC01MjMsNiArNTIzLDExIEBAIHN0YXRpYyB2b2lkIHRvbW95b190YXNrX2Zy ZWUoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQogCX0KIH0KIAorc3RhdGljIHN0cnVjdCBsc21f aWQgdG9tb3lvX2xzbWlkIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CisJLmxzbSAgPSAidG9tb3lv IiwKKwkuc2xvdCA9IExTTUJMT0JfTk9UX05FRURFRAorfTsKKwogLyoKICAqIHRvbW95b19zZWN1 cml0eV9vcHMgaXMgYSAic3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMiIHdoaWNoIGlzIHVzZWQg Zm9yCiAgKiByZWdpc3RlcmluZyBUT01PWU8uCkBAIC01NzUsNyArNTgwLDggQEAgc3RhdGljIGlu dCBfX2luaXQgdG9tb3lvX2luaXQodm9pZCkKIAlzdHJ1Y3QgdG9tb3lvX3Rhc2sgKnMgPSB0b21v eW9fdGFzayhjdXJyZW50KTsKIAogCS8qIHJlZ2lzdGVyIG91cnNlbHZlcyB3aXRoIHRoZSBzZWN1 cml0eSBmcmFtZXdvcmsgKi8KLQlzZWN1cml0eV9hZGRfaG9va3ModG9tb3lvX2hvb2tzLCBBUlJB WV9TSVpFKHRvbW95b19ob29rcyksICJ0b21veW8iKTsKKwlzZWN1cml0eV9hZGRfaG9va3ModG9t b3lvX2hvb2tzLCBBUlJBWV9TSVpFKHRvbW95b19ob29rcyksCisJCQkgICAmdG9tb3lvX2xzbWlk KTsKIAlwcl9pbmZvKCJUT01PWU8gTGludXggaW5pdGlhbGl6ZWRcbiIpOwogCXMtPmRvbWFpbl9p bmZvID0gJnRvbW95b19rZXJuZWxfZG9tYWluOwogCWF0b21pY19pbmMoJnRvbW95b19rZXJuZWxf ZG9tYWluLnVzZXJzKTsKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3lhbWEveWFtYV9sc20uYyBiL3Nl Y3VyaXR5L3lhbWEveWFtYV9sc20uYwppbmRleCAwNmUyMjYxNjZhYWIuLmE5NjM5ZWE1NDFmNyAx MDA2NDQKLS0tIGEvc2VjdXJpdHkveWFtYS95YW1hX2xzbS5jCisrKyBiL3NlY3VyaXR5L3lhbWEv eWFtYV9sc20uYwpAQCAtNDIxLDYgKzQyMSwxMSBAQCBzdGF0aWMgaW50IHlhbWFfcHRyYWNlX3Ry YWNlbWUoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQpCiAJcmV0dXJuIHJjOwogfQogCitzdGF0 aWMgc3RydWN0IGxzbV9pZCB5YW1hX2xzbWlkIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CisJLmxz bSAgPSAieWFtYSIsCisJLnNsb3QgPSBMU01CTE9CX05PVF9ORUVERUQKK307CisKIHN0YXRpYyBz dHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0IHlhbWFfaG9va3NbXSBfX2xzbV9yb19hZnRlcl9pbml0 ID0gewogCUxTTV9IT09LX0lOSVQocHRyYWNlX2FjY2Vzc19jaGVjaywgeWFtYV9wdHJhY2VfYWNj ZXNzX2NoZWNrKSwKIAlMU01fSE9PS19JTklUKHB0cmFjZV90cmFjZW1lLCB5YW1hX3B0cmFjZV90 cmFjZW1lKSwKQEAgLTQ3Nyw3ICs0ODIsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgeWFtYV9pbml0 X3N5c2N0bCh2b2lkKSB7IH0KIHN0YXRpYyBpbnQgX19pbml0IHlhbWFfaW5pdCh2b2lkKQogewog CXByX2luZm8oIllhbWE6IGJlY29taW5nIG1pbmRmdWwuXG4iKTsKLQlzZWN1cml0eV9hZGRfaG9v a3MoeWFtYV9ob29rcywgQVJSQVlfU0laRSh5YW1hX2hvb2tzKSwgInlhbWEiKTsKKwlzZWN1cml0 eV9hZGRfaG9va3MoeWFtYV9ob29rcywgQVJSQVlfU0laRSh5YW1hX2hvb2tzKSwgJnlhbWFfbHNt aWQpOwogCXlhbWFfaW5pdF9zeXNjdGwoKTsKIAlyZXR1cm4gMDsKIH0KLS0gCjIuMjkuMgoKLS0K TGludXgtYXVkaXQgbWFpbGluZyBsaXN0CkxpbnV4LWF1ZGl0QHJlZGhhdC5jb20KaHR0cHM6Ly9s aXN0bWFuLnJlZGhhdC5jb20vbWFpbG1hbi9saXN0aW5mby9saW51eC1hdWRpdA==