Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vEVVR-00CXKd-7y for pgsql-hackers@arkaria.postgresql.org; Thu, 30 Oct 2025 16:28:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1vEVVP-009TkK-6G for pgsql-hackers@arkaria.postgresql.org; Thu, 30 Oct 2025 16:28:06 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vEVVO-009Tk9-Dd for pgsql-hackers@lists.postgresql.org; Thu, 30 Oct 2025 16:28:05 +0000 Received: from mail-yw1-x112d.google.com ([2607:f8b0:4864:20::112d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vEVVD-0056Bg-2E for pgsql-hackers@lists.postgresql.org; Thu, 30 Oct 2025 16:28:05 +0000 Received: by mail-yw1-x112d.google.com with SMTP id 00721157ae682-784826b775aso15514707b3.2 for ; Thu, 30 Oct 2025 09:27:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761841674; x=1762446474; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Yl1FRkP4BdSSlyTY3PywTrLA3o1tWJ/oMR0xwH0EiOM=; b=aLf/0UtLbI2rKcwBTRZDEmZ4zFVkb+ZQ6234WpUj4ifHwzpTrzdR0gsiuyPH0olfeB KVAseJAjZ5q/H9TaynRNV2Bpz5l5SAdIo8L1kIcHxSMr85bEcEXJ/riF/CFagdIjOCVQ x557ujE32lZg8IW0F+oZgDrv1qXRqULO7bSM9Uo24D6OGiTB0HRffMorZLU+HrPl78d7 rkEIyIs9q53A4fErOauRm4ALvbeFh9U5k/JSA8uRQ2LcmXQMzOh8mjj5WJTF6YoKSGrX HVjq419ItMVo8o871beuaTvZ3hdYs0QUeEV1pt4HArPK3mGCWyN/Xw38e8/9pX54hISR n20g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761841674; x=1762446474; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Yl1FRkP4BdSSlyTY3PywTrLA3o1tWJ/oMR0xwH0EiOM=; b=b5N2rgWFakXBE+/gs0I4bw6SbAoZDM/7CisiYeu93FPXL7tqc2sFMROy21ZpQHYC2v Wj1ix0LQwaM1QIAd53SITnUmhR9z7uU//wvKHfjTgX+tK0iFNB3Estw1zvcqGvIF4NAD kBo3xkwmujDfH1/Teh5N+DtbBp7aD/nF9GKmsmUkeEvsCZiACiBElV0/Tym6HouZqjzA aojBjsmh8UfhsIXW6g0h7jcV+PtLGfe4eyL0UhNezDdJY2b5XL9+1MniuzMOuo8unBI4 mvPx4X1ziCIKcrGXGPebnmrvksJ/pb9vF3mB2orVugmkt5QJBHBmcDD3Ow9aKS0ykgtc 6hvQ== X-Forwarded-Encrypted: i=1; AJvYcCUEWMiLp03zAMDP44JrHIbfZ3hIlAGxpRWuQbRF5sMaMIYBb22pzg1QBm875lPUVPQ69rQUpKCP8p/ORTQm@lists.postgresql.org X-Gm-Message-State: AOJu0YxzHt/jzTtgMfG2qUHDbBMJGGgg1XYbN2RUl7UeFneFJ16idCpM zWrAyN1ydhb+Sc/jWSvLnC50SDw3OdaR0Oki1ki9lg/JQXgQOaOxx4A56S44B34B/I9F7PTuo3Z G2M8JNk2BaZ6zoCOZKoliaZpqncHqyLM= X-Gm-Gg: ASbGncvwanqnsCeP3SLzq5oXwJrzKBAf7RfHCNozyYhEEle2l79UcM3WcW7KpNvBe3L naPoimevxakTk9BxOSTvvWRMVPWQ74qYXgpTjq8tNkopPjTe0VyUPRoh4JOKbTg8ef0ntkt/miK De8QNd8kPV2usml2ho+azAME3fI/Kz8TJdqyrUrH0bMIoEuL62NDJX/M3qIOyku/tdRUsZXfihI JJeBi4X2YoDKAZmlXSvVseywH/bR1Y0kty1Hon36+4P1UIV6CQSzWgzdo+1E+kN/mbk29jY53m7 iwsOiR1gVXjKKbM77Q== X-Google-Smtp-Source: AGHT+IFyTi1LPChsTECd/1Nkjlg2pGSaDl3LIqtZZU701YU+XF2mKYUPYp4mkEYEJ4dP8PIEq6NKT/tJlC/HCpdtab0= X-Received: by 2002:a05:690c:b1e:b0:786:3528:7a27 with SMTP id 00721157ae682-78648435f10mr722587b3.24.1761841673620; Thu, 30 Oct 2025 09:27:53 -0700 (PDT) MIME-Version: 1.0 References: <9d6897bd-855d-44a6-8ebe-17b2b1d04430@uni-muenster.de> In-Reply-To: From: Pavel Stehule Date: Thu, 30 Oct 2025 17:27:12 +0100 X-Gm-Features: AWmQ_bmxYT14yDhRVo4-CtaJgaGBFoTF_WixsHXOXdOAdI0NEp97AOxkfOS8Vfw Message-ID: Subject: Re: proposal: schema variables To: Jim Jones Cc: Bruce Momjian , Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers , jian he , Alvaro Herrera , PegoraroF10 Content-Type: multipart/mixed; boundary="0000000000001c96f9064262bb7f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000001c96f9064262bb7f Content-Type: multipart/alternative; boundary="0000000000001c96f8064262bb7d" --0000000000001c96f8064262bb7d Content-Type: text/plain; charset="UTF-8" Hi fresh rebase Regards Pavel --0000000000001c96f8064262bb7d Content-Type: text/html; charset="UTF-8"
Hi

fresh rebase

Regards

Pavel
--0000000000001c96f8064262bb7d-- --0000000000001c96f9064262bb7f Content-Type: text/x-patch; charset="US-ASCII"; name="v20251030-0015-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20251030-0015-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhdn0d8w0 RnJvbSAyOTVmNDY5OTQ0NjVhOTUwM2ZiZWQyNzZlODkzMTY2YzNiOWEwMmU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNDowNjowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTUvMTVdIHBscGdzcWwgdGVzdHMKCnNldCBvZiBwbHBnc3FsIHJlbGF0ZWQgdGVzdHM6CgoqIGNo ZWNrIHNlc3Npb24gdmFyaWFibGVzIGFuZCBwbHBnc3FsIHZhcmlhYmxlcyBhcmUgbm90IGluIGNv bGxpc2lvbiBldmVyCiogY2hlY2sgY29ycmVjdCBwbHBnc3FsIHBsYW4gY2FjaGUgaW52YWxpZGF0 aW9uIHdoZW4gc2Vzc2lvbiB2YXJpYWJsZSBpcyBkcm9wcGVkCiogY2hlY2sgc28gdGhlIHZhbHVl IG9mIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IGNvcnJ1cHRlZCwgd2hlbiB0aGUgdmFyaWFibGUg aXMKICBtb2RpZmllZCBpbnNpZGUgbmVzdGVkIGNhbGxlZCBmdW5jdGlvbnMKLS0tCiBzcmMvcGwv cGxwZ3NxbC9zcmMvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9zcmMv ZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCB8IDIzOSArKysrKysrKysrKysr KysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8ICAg MSArCiAuLi4vc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsICAgICAgfCAxNjgg KysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDQxMCBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3Bs cGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcGwvcGxw Z3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKCmRpZmYgLS1naXQgYS9z cmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUK aW5kZXggNjNjYjk2ZmFlM2UuLmJiY2FlMjdkNDIyIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvTWFrZWZpbGUKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL01ha2VmaWxlCkBAIC0zNSw3 ICszNSw4IEBAIFJFR1JFU1NfT1BUUyA9IC0tZGJuYW1lPSQoUExfVEVTVERCKQogUkVHUkVTUyA9 IHBscGdzcWxfYXJyYXkgcGxwZ3NxbF9jYWNoZSBwbHBnc3FsX2NhbGwgcGxwZ3NxbF9jb250cm9s IFwKIAlwbHBnc3FsX2NvcHkgcGxwZ3NxbF9kb21haW4gcGxwZ3NxbF9taXNjIFwKIAlwbHBnc3Fs X3JlY29yZCBwbHBnc3FsX3NpbXBsZSBwbHBnc3FsX3RyYW5zYWN0aW9uIFwKLQlwbHBnc3FsX3Ry YXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdzcWxfdmFycHJvcHMKKwlwbHBnc3FsX3RyYXAgcGxwZ3Nx bF90cmlnZ2VyIHBscGdzcWxfdmFycHJvcHMgXAorCXBscGdzcWxfc2Vzc2lvbl92YXJpYWJsZQog CiAjIHdoZXJlIHRvIGZpbmQgZ2VuX2tleXdvcmRsaXN0LnBsIGFuZCBzdWJzaWRpYXJ5IGZpbGVz CiBUT09MU0RJUiA9ICQodG9wX3NyY2Rpcikvc3JjL3Rvb2xzCmRpZmYgLS1naXQgYS9zcmMvcGwv cGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9w bC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lYzVmZmNiNDJiMgotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFy aWFibGUub3V0CkBAIC0wLDAgKzEsMjM5IEBACistLSB2YXJpYWJsZXMgYXJlIG5vdCBjaGVja2Vk IGluIGNvbXBpbGUgdGltZQorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfcGxw Z3NxbF9mdW5jMDBfMDEoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJ Q0UgJyUnLCBWQVJJQUJMRSh0aGlzX3ZhcmlhYmxlX2RvZXNudF9leGlzdHMpOworRU5EOworJCQg TEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3Bs cGdzcWxfZnVuYzAwXzAyKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHRoaXNf dmFyaWFibGVfZG9lc250X2V4aXN0cyA9IDEwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAwXzAzKCkK K1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHRoaXNfdmFyaWFibGVfZG9lc250X2V4 aXN0c1sxMF0gPSAnSGVsbG8nOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKy0tIHNob3Vs ZCBmYWlsCitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDBfMDEoKTsKK0VSUk9SOiAgc2Vz c2lvbiB2YXJpYWJsZSAidGhpc192YXJpYWJsZV9kb2VzbnRfZXhpc3RzIiBkb2Vzbid0IGV4aXN0 CitMSU5FIDE6IFZBUklBQkxFKHRoaXNfdmFyaWFibGVfZG9lc250X2V4aXN0cykKKyAgICAgICAg ICAgICAgICAgXgorUVVFUlk6ICBWQVJJQUJMRSh0aGlzX3ZhcmlhYmxlX2RvZXNudF9leGlzdHMp CitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDBfMDEo KSBsaW5lIDMgYXQgUkFJU0UKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMF8wMigpOwor RVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJ0aGlzX3ZhcmlhYmxlX2RvZXNudF9leGlzdHMiIGRv ZXNuJ3QgZXhpc3QKK0xJTkUgMTogTEVUIHRoaXNfdmFyaWFibGVfZG9lc250X2V4aXN0cyA9IDEw CisgICAgICAgICAgICBeCitRVUVSWTogIExFVCB0aGlzX3ZhcmlhYmxlX2RvZXNudF9leGlzdHMg PSAxMAorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAw XzAyKCkgbGluZSAzIGF0IFNRTCBzdGF0ZW1lbnQKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2Z1 bmMwMF8wMygpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJ0aGlzX3ZhcmlhYmxlX2RvZXNu dF9leGlzdHMiIGRvZXNuJ3QgZXhpc3QKK0xJTkUgMTogTEVUIHRoaXNfdmFyaWFibGVfZG9lc250 X2V4aXN0c1sxMF0gPSAnSGVsbG8nCisgICAgICAgICAgICBeCitRVUVSWTogIExFVCB0aGlzX3Zh cmlhYmxlX2RvZXNudF9leGlzdHNbMTBdID0gJ0hlbGxvJworQ09OVEVYVDogIFBML3BnU1FMIGZ1 bmN0aW9uIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAwXzAzKCkgbGluZSAzIGF0IFNRTCBzdGF0ZW1l bnQKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDBfMDEoKTsKK0RST1AgRlVO Q1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDBfMDIoKTsKK0RST1AgRlVOQ1RJT04gc3ZhcnRl c3RfcGxwZ3NxbF9mdW5jMDBfMDMoKTsKKy0tIGNoZWNrIG9mIGNvcnJlY3QgcGxhbiBjYWNoZSBp bnZhbGlkYXRpb24KK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAxIEFTIGludDsKK0NS RUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAyIEFTIGludFtdOworLS0gcGxwZ3NxbCB2YXJp YWJsZXMgYW5kIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgaW4gY29sbGlzaW9uIGV2ZXIKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAxKCkKK1JF VFVSTlMgdm9pZCBBUyAkJAorREVDTEFSRSBwbHBnc3FsX3Nlc3ZhcjAxIGludDsKK0JFR0lOCisg IHBscGdzcWxfc2VzdmFyMDEgOj0gMTAwOworICBMRVQgcGxwZ3NxbF9zZXN2YXIwMSA9IDEwMDA7 CisgIFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2YXI6ICUsIHNlc3Npb24gdmFyOiAlJywKKyAgICBw bHBnc3FsX3Nlc3ZhcjAxLCBWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAxKTsKK0VORDsKKyQkIExB TkdVQUdFIHBscGdzcWw7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDEoKTsKK05P VElDRTogIHBscGdzcWwgdmFyOiAxMDAsIHNlc3Npb24gdmFyOiAxMDAwCisgc3ZhcnRlc3RfcGxw Z3NxbF9mdW5jMDFfMDEgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cp CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAy KCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorREVDTEFSRSBfX3BscGdzcWxfc2VzdmFyMDEgaW50Owor QkVHSU4KKyAgX19wbHBnc3FsX3Nlc3ZhcjAxIDo9IDEwMDsKKyAgTEVUIF9fcGxwZ3NxbF9zZXN2 YXIwMSA9IDEwMDA7CisgIFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2YXI6ICUsIHNlc3Npb24gdmFy OiAlJywKKyAgICBfX3BscGdzcWxfc2VzdmFyMDEsIFZBUklBQkxFKF9fcGxwZ3NxbF9zZXN2YXIw MSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBz dmFydGVzdF9wbHBnc3FsX2Z1bmMwMV8wMigpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJf X3BscGdzcWxfc2VzdmFyMDEiIGRvZXNuJ3QgZXhpc3QKK0xJTkUgMTogTEVUIF9fcGxwZ3NxbF9z ZXN2YXIwMSA9IDEwMDAKKyAgICAgICAgICAgIF4KK1FVRVJZOiAgTEVUIF9fcGxwZ3NxbF9zZXN2 YXIwMSA9IDEwMDAKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiBzdmFydGVzdF9wbHBnc3Fs X2Z1bmMwMV8wMigpIGxpbmUgNSBhdCBTUUwgc3RhdGVtZW50CistLSBzaG91bGQgZmFpbAorQ1JF QVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDMoKQorUkVU VVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBwbHBnc3FsX3Nlc3ZhcjAxIDo9IDEwMDsKKyAgTEVU IHBscGdzcWxfc2VzdmFyMDEgPSAxMDAwOworICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyOiAl LCBzZXNzaW9uIHZhcjogJScsCisgICAgcGxwZ3NxbF9zZXN2YXIwMSwgVkFSSUFCTEUocGxwZ3Nx bF9zZXN2YXIwMSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworRVJST1I6ICAicGxwZ3Nx bF9zZXN2YXIwMSIgaXMgbm90IGEga25vd24gdmFyaWFibGUKK0xJTkUgNDogICBwbHBnc3FsX3Nl c3ZhcjAxIDo9IDEwMDsKKyAgICAgICAgICBeCitEUk9QIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdz cWxfZnVuYzAxXzAxKCk7CitEUk9QIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAy KCk7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMigp CitSRVRVUk5TIHZvaWQgQVMgJCQKK0RFQ0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJ TgorICBMRVQgcGxwZ3NxbF9zZXN2YXIwMSA9IDE7CisgIHZbVkFSSUFCTEUocGxwZ3NxbF9zZXN2 YXIwMSldID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2OworICBMRVQgcGxwZ3NxbF9zZXN2 YXIwMiA9IHY7CisgIExFVCBwbHBnc3FsX3Nlc3ZhcjAyW1ZBUklBQkxFKHBscGdzcWxfc2VzdmFy MDEpXSA9IC0xOworICBSQUlTRSBOT1RJQ0UgJyUnLCBWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAy KTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9m dW5jMDIoKTsKK05PVElDRTogIHsxMDB9CitOT1RJQ0U6ICB7LTF9Cisgc3ZhcnRlc3RfcGxwZ3Nx bF9mdW5jMDIgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0RST1Ag VkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSwgcGxwZ3NxbF9zZXN2YXIwMjsKK0NSRUFURSBWQVJJ QUJMRSBwbHBnc3FsX3Nlc3ZhcjAxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nl c3ZhcjAyIEFTIGludFtdOworU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAyKCk7CitOT1RJ Q0U6ICB7MTAwfQorTk9USUNFOiAgey0xfQorIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAyIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitEUk9QIEZVTkNUSU9OIHN2YXJ0 ZXN0X3BscGdzcWxfZnVuYzAyKCk7CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc2VzdmFyMDEsIHBs cGdzcWxfc2VzdmFyMDI7CistLSByZXR1cm5zIHVwZGF0ZWQgdmFsdWUKK0NSRUFURSBWQVJJQUJM RSBwbHBnc3FsX3Nlc3ZhcjAxIEFTIGludDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2 YXJ0ZXN0X3BscGdzcWxfaW5jKGludCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQg cGxwZ3NxbF9zZXN2YXIwMSA9IENPQUxFU0NFKFZBUklBQkxFKHBscGdzcWxfc2VzdmFyMDEpICsg JDEsICQxKTsKKyAgUkVUVVJOIFZBUklBQkxFKHBscGdzcWxfc2VzdmFyMDEpOworRU5EOworJCQg TEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2luYygxKTsKKyBzdmFy dGVzdF9wbHBnc3FsX2luYyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgMQorKDEgcm93KQorCitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7Cisgc3Zh cnRlc3RfcGxwZ3NxbF9pbmMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgIDIKKygxIHJvdykKKworU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEpOworIHN2 YXJ0ZXN0X3BscGdzcWxfaW5jIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAg ICAgICAgICAzCisoMSByb3cpCisKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2luYygxKSBGUk9N IGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKyBzdmFydGVzdF9wbHBnc3FsX2luYyAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgNAorICAgICAgICAgICAgICAgICAg ICA1CisgICAgICAgICAgICAgICAgICAgIDYKKyAgICAgICAgICAgICAgICAgICAgNworICAgICAg ICAgICAgICAgICAgICA4CisgICAgICAgICAgICAgICAgICAgIDkKKyAgICAgICAgICAgICAgICAg ICAxMAorICAgICAgICAgICAgICAgICAgIDExCisgICAgICAgICAgICAgICAgICAgMTIKKyAgICAg ICAgICAgICAgICAgICAxMworKDEwIHJvd3MpCisKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nl c3ZhcjAyIEFTIG51bWVyaWM7CitMRVQgcGxwZ3NxbF9zZXN2YXIwMiA9IDAuMDsKK0NSRUFURSBP UiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKG51bWVyaWMpCitSRVRVUk5T IGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc2VzdmFyMDIgPSBDT0FMRVNDRShWQVJJ QUJMRShwbHBnc3FsX3Nlc3ZhcjAyKSArICQxLCAkMSk7CisgIFJFVFVSTiBWQVJJQUJMRShwbHBn c3FsX3Nlc3ZhcjAyKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1Qgc3ZhcnRl c3RfcGxwZ3NxbF9pbmMoMS4wKTsKKyBzdmFydGVzdF9wbHBnc3FsX2luYyAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgMQorKDEgcm93KQorCitTRUxFQ1Qgc3Zh cnRlc3RfcGxwZ3NxbF9pbmMoMS4wKTsKKyBzdmFydGVzdF9wbHBnc3FsX2luYyAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgMgorKDEgcm93KQorCitTRUxFQ1Qg c3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMS4wKTsKKyBzdmFydGVzdF9wbHBnc3FsX2luYyAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgMworKDEgcm93KQorCitTRUxF Q1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMS4wKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsK KyBzdmFydGVzdF9wbHBnc3FsX2luYyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgICAgICAgNAorICAgICAgICAgICAgICAgICAgICA1CisgICAgICAgICAgICAgICAgICAg IDYKKyAgICAgICAgICAgICAgICAgICAgNworICAgICAgICAgICAgICAgICAgICA4CisgICAgICAg ICAgICAgICAgICAgIDkKKyAgICAgICAgICAgICAgICAgICAxMAorICAgICAgICAgICAgICAgICAg IDExCisgICAgICAgICAgICAgICAgICAgMTIKKyAgICAgICAgICAgICAgICAgICAxMworKDEwIHJv d3MpCisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSwgcGxwZ3NxbF9zZXN2YXIwMjsK K0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoaW50KTsKK0RST1AgRlVOQ1RJT04g c3ZhcnRlc3RfcGxwZ3NxbF9pbmMobnVtZXJpYyk7CistLSB0aGUgdmFsdWUgc2hvdWxkIG5vdCBi ZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAzIHRleHQ7CitMRVQg cGxwZ3NxbF9zZXN2YXIwMyA9ICdhYmMnOworQ1JFQVRFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdz cWxfZnVuYzAzKCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIHN2YXJ0ZXN0 X3BscGdzcWxfZnVuY19uZXN0ZWQoVkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMykpOworRU5ECisk JCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVu Y19uZXN0ZWQodCB0ZXh0KQorUkVUVVJOUyB0ZXh0IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3Nx bF9zZXN2YXIwMyA9ICdCT09NISc7CisgIFJFVFVSTiB0OworRU5EOworJCQgTEFOR1VBR0UgcGxw Z3NxbDsKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMygpOworIHN2YXJ0ZXN0X3BscGdz cWxfZnVuYzAzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGFiYworKDEgcm93KQorCitE Uk9QIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAzKCk7CitEUk9QIEZVTkNUSU9OIHN2 YXJ0ZXN0X3BscGdzcWxfZnVuY19uZXN0ZWQodGV4dCk7CitEUk9QIFZBUklBQkxFIHBscGdzcWxf c2VzdmFyMDM7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKaW5kZXggMzNjNDlhYzI1ZDkuLjFkMDFkMWMy NjI5IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCkBAIC04OCw2ICs4OCw3IEBAIHRlc3RzICs9IHsK ICAgICAgICdwbHBnc3FsX3RyYXAnLAogICAgICAgJ3BscGdzcWxfdHJpZ2dlcicsCiAgICAgICAn cGxwZ3NxbF92YXJwcm9wcycsCisgICAgICAncGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlJywKICAg ICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3Fs X3Nlc3Npb25fdmFyaWFibGUuc3FsIGIvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3Nl c3Npb25fdmFyaWFibGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li42MWQ0NmE3OTJlYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwv cGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApAQCAtMCwwICsxLDE2OCBAQAorLS0gdmFyaWFi bGVzIGFyZSBub3QgY2hlY2tlZCBpbiBjb21waWxlIHRpbWUKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAwXzAxKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAor QkVHSU4KKyAgUkFJU0UgTk9USUNFICclJywgVkFSSUFCTEUodGhpc192YXJpYWJsZV9kb2VzbnRf ZXhpc3RzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAwXzAyKCkKK1JFVFVSTlMgdm9pZCBBUyAk JAorQkVHSU4KKyAgTEVUIHRoaXNfdmFyaWFibGVfZG9lc250X2V4aXN0cyA9IDEwOworRU5EOwor JCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRl c3RfcGxwZ3NxbF9mdW5jMDBfMDMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBMRVQg dGhpc192YXJpYWJsZV9kb2VzbnRfZXhpc3RzWzEwXSA9ICdIZWxsbyc7CitFTkQ7CiskJCBMQU5H VUFHRSBwbHBnc3FsOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxf ZnVuYzAwXzAxKCk7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDBfMDIoKTsKK1NFTEVD VCBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMF8wMygpOworCitEUk9QIEZVTkNUSU9OIHN2YXJ0ZXN0 X3BscGdzcWxfZnVuYzAwXzAxKCk7CitEUk9QIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVu YzAwXzAyKCk7CitEUk9QIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAwXzAzKCk7CisK Ky0tIGNoZWNrIG9mIGNvcnJlY3QgcGxhbiBjYWNoZSBpbnZhbGlkYXRpb24KK0NSRUFURSBWQVJJ QUJMRSBwbHBnc3FsX3Nlc3ZhcjAxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nl c3ZhcjAyIEFTIGludFtdOworCistLSBwbHBnc3FsIHZhcmlhYmxlcyBhbmQgc2Vzc2lvbiB2YXJp YWJsZXMgYXJlIG5vdCBpbiBjb2xsaXNpb24gZXZlcgorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJ T04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDEoKQorUkVUVVJOUyB2b2lkIEFTICQkCitERUNM QVJFIHBscGdzcWxfc2VzdmFyMDEgaW50OworQkVHSU4KKyAgcGxwZ3NxbF9zZXN2YXIwMSA6PSAx MDA7CisgIExFVCBwbHBnc3FsX3Nlc3ZhcjAxID0gMTAwMDsKKyAgUkFJU0UgTk9USUNFICdwbHBn c3FsIHZhcjogJSwgc2Vzc2lvbiB2YXI6ICUnLAorICAgIHBscGdzcWxfc2VzdmFyMDEsIFZBUklB QkxFKHBscGdzcWxfc2VzdmFyMDEpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VM RUNUIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAxKCk7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAyKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAor REVDTEFSRSBfX3BscGdzcWxfc2VzdmFyMDEgaW50OworQkVHSU4KKyAgX19wbHBnc3FsX3Nlc3Zh cjAxIDo9IDEwMDsKKyAgTEVUIF9fcGxwZ3NxbF9zZXN2YXIwMSA9IDEwMDA7CisgIFJBSVNFIE5P VElDRSAncGxwZ3NxbCB2YXI6ICUsIHNlc3Npb24gdmFyOiAlJywKKyAgICBfX3BscGdzcWxfc2Vz dmFyMDEsIFZBUklBQkxFKF9fcGxwZ3NxbF9zZXN2YXIwMSk7CitFTkQ7CiskJCBMQU5HVUFHRSBw bHBnc3FsOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAx XzAyKCk7CisKKy0tIHNob3VsZCBmYWlsCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFy dGVzdF9wbHBnc3FsX2Z1bmMwMV8wMygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIHBs cGdzcWxfc2VzdmFyMDEgOj0gMTAwOworICBMRVQgcGxwZ3NxbF9zZXN2YXIwMSA9IDEwMDA7Cisg IFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2YXI6ICUsIHNlc3Npb24gdmFyOiAlJywKKyAgICBwbHBn c3FsX3Nlc3ZhcjAxLCBWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAxKTsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CisKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDEo KTsKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDIoKTsKKworQ1JFQVRF IE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDIoKQorUkVUVVJOUyB2 b2lkIEFTICQkCitERUNMQVJFIHYgaW50W10gREVGQVVMVCAne30nOworQkVHSU4KKyAgTEVUIHBs cGdzcWxfc2VzdmFyMDEgPSAxOworICB2W1ZBUklBQkxFKHBscGdzcWxfc2VzdmFyMDEpXSA9IDEw MDsKKyAgUkFJU0UgTk9USUNFICclJywgdjsKKyAgTEVUIHBscGdzcWxfc2VzdmFyMDIgPSB2Owor ICBMRVQgcGxwZ3NxbF9zZXN2YXIwMltWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAxKV0gPSAtMTsK KyAgUkFJU0UgTk9USUNFICclJywgVkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMik7CitFTkQ7Cisk JCBMQU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDIoKTsK KworRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAxLCBwbHBnc3FsX3Nlc3ZhcjAyOworCitD UkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUg cGxwZ3NxbF9zZXN2YXIwMiBBUyBpbnRbXTsKKworU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfZnVu YzAyKCk7CisKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDIoKTsKKworRFJP UCBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAxLCBwbHBnc3FsX3Nlc3ZhcjAyOworCistLSByZXR1 cm5zIHVwZGF0ZWQgdmFsdWUKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAxIEFTIGlu dDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoaW50 KQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3Nlc3ZhcjAxID0gQ09B TEVTQ0UoVkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMSkgKyAkMSwgJDEpOworICBSRVRVUk4gVkFS SUFCTEUocGxwZ3NxbF9zZXN2YXIwMSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitT RUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9p bmMoMSk7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7CisKK1NFTEVDVCBzdmFydGVz dF9wbHBnc3FsX2luYygxKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKworQ1JFQVRFIFZB UklBQkxFIHBscGdzcWxfc2VzdmFyMDIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc2VzdmFy MDIgPSAwLjA7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxf aW5jKG51bWVyaWMpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc2Vz dmFyMDIgPSBDT0FMRVNDRShWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAyKSArICQxLCAkMSk7Cisg IFJFVFVSTiBWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAyKTsKK0VORDsKKyQkIExBTkdVQUdFIHBs cGdzcWw7CisKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2luYygxLjApOworU0VMRUNUIHN2YXJ0 ZXN0X3BscGdzcWxfaW5jKDEuMCk7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMS4wKTsK KworU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwxMCk7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSwgcGxwZ3NxbF9zZXN2YXIw MjsKKworRFJPUCBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2luYyhpbnQpOworRFJPUCBGVU5D VElPTiBzdmFydGVzdF9wbHBnc3FsX2luYyhudW1lcmljKTsKKworLS0gdGhlIHZhbHVlIHNob3Vs ZCBub3QgYmUgY29ycnVwdGVkCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMyB0ZXh0 OworTEVUIHBscGdzcWxfc2VzdmFyMDMgPSAnYWJjJzsKKworQ1JFQVRFIEZVTkNUSU9OIHN2YXJ0 ZXN0X3BscGdzcWxfZnVuYzAzKCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJO IHN2YXJ0ZXN0X3BscGdzcWxfZnVuY19uZXN0ZWQoVkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMykp OworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgRlVOQ1RJT04gc3ZhcnRlc3Rf cGxwZ3NxbF9mdW5jX25lc3RlZCh0IHRleHQpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisg IExFVCBwbHBnc3FsX3Nlc3ZhcjAzID0gJ0JPT00hJzsKKyAgUkVUVVJOIHQ7CitFTkQ7CiskJCBM QU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDMoKTsKKwor RFJPUCBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMygpOworRFJPUCBGVU5DVElPTiBz dmFydGVzdF9wbHBnc3FsX2Z1bmNfbmVzdGVkKHRleHQpOworCitEUk9QIFZBUklBQkxFIHBscGdz cWxfc2VzdmFyMDM7Ci0tIAoyLjUxLjEKCg== --0000000000001c96f9064262bb7f Content-Type: text/x-patch; charset="US-ASCII"; name="v20251030-0012-function-pg_get_session_variables_memory-for-cleanin.patch" Content-Disposition: attachment; filename="v20251030-0012-function-pg_get_session_variables_memory-for-cleanin.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhdn0dak3 RnJvbSA4YjcwMzU4ZmE3YmVkZmMzYmVkMWM2YmUwMTVlNmMzZDY1MDExY2JhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDEy LzE1XSBmdW5jdGlvbiBwZ19nZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5IGZvciBjbGVhbmlu ZwogdGVzdHMKClRoaXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVi dWdnaW5nLiAgSXQgcmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5k IGNhbiB0aGVyZWZvcmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRo YXQgd2VyZSBkcm9wcGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNz IHRoZSBzaGFyZWQgaW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIHwgMTAwICsrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgIHwgICA4ICsrCiAyIGZpbGVzIGNoYW5n ZWQsIDEwOCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCmluZGV4IDliZGM5MmJmZDMwLi4zYmFmYTcwMTUwOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImV4ZWN1dG9y L2V4ZWNkZXNjLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJl eGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNs dWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9wbGFubm9kZXMuaCIKICNpbmNsdWRl ICJwYXJzZXIvcGFyc2VfdHlwZS5oIgpAQCAtNjAwLDMgKzYwMSwxMDIgQEAgRXhlY3V0ZUxldFN0 bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCiAJUG9wQWN0aXZlU25hcHNob3QoKTsKIH0KKworLyoK KyAqIHBnX2dldF9zZXNzaW9uX3ZhcmlhYmxlc19tZW1vcnkgLSBkZXNpZ25lZCBmb3IgdGVzdGlu ZworICoKKyAqIFRoaXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVi dWdnaW5nLiAgSXQgcmV0dXJucyB0aGUKKyAqIGNvbnRlbnQgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMg YXMtaXMsIGFuZCBjYW4gdGhlcmVmb3JlIGRpc3BsYXkgZGF0YSBhYm91dAorICogc2Vzc2lvbiB2 YXJpYWJsZXMgdGhhdCB3ZXJlIGRyb3BwZWQsIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRp ZG4ndAorICogcHJvY2VzcyB0aGUgc2hhcmVkIGludmFsaWRhdGlvbnMgeWV0LgorICovCitEYXR1 bQorcGdfZ2V0X3Nlc3Npb25fdmFyaWFibGVzX21lbW9yeShQR19GVU5DVElPTl9BUkdTKQorewor I2RlZmluZSBOVU1fUEdfR0VUX1NFU1NJT05fVkFSSUFCTEVTX01FTU9SWV9BVFRTIDgKKworCS8q CisJICogTWFrZSBzdXJlIHN5c2NhY2hlIGVudHJpZXMgYXJlIGZsdXNoZWQgZm9yIHJlY2VudCBj YXRhbG9nIGNoYW5nZXMuIEZvcgorCSAqIHN0YWJsZSBiZWhhdmlvciB3ZSBuZWVkIHRvIHJlbGlh Ymx5IGRldGVjdCB3aGljaCB2YXJpYWJsZXMgd2VyZQorCSAqIGRyb3BwZWQuCisJICovCisJQWNj ZXB0SW52YWxpZGF0aW9uTWVzc2FnZXMoKTsKKworCUluaXRNYXRlcmlhbGl6ZWRTUkYoZmNpbmZv LCAwKTsKKworCWlmIChzZXNzaW9udmFycykKKwl7CisJCVJldHVyblNldEluZm8gKnJzaW5mbyA9 IChSZXR1cm5TZXRJbmZvICopIGZjaW5mby0+cmVzdWx0aW5mbzsKKwkJSEFTSF9TRVFfU1RBVFVT IHN0YXR1czsKKwkJU1ZhcmlhYmxlCXN2YXI7CisKKwkJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBz ZXNzaW9udmFycyk7CisKKwkJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2Vh cmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCQl7CisJCQlEYXR1bQkJdmFsdWVzW05VTV9QR19HRVRf U0VTU0lPTl9WQVJJQUJMRVNfTUVNT1JZX0FUVFNdOworCQkJYm9vbAkJbnVsbHNbTlVNX1BHX0dF VF9TRVNTSU9OX1ZBUklBQkxFU19NRU1PUllfQVRUU107CisJCQlIZWFwVHVwbGUJdHA7CisJCQli b29sCQl2YXJfaXNfdmFsaWQgPSBmYWxzZTsKKworCQkJbWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9m KHZhbHVlcykpOworCQkJbWVtc2V0KG51bGxzLCAwLCBzaXplb2YobnVsbHMpKTsKKworCQkJdmFs dWVzWzBdID0gT2JqZWN0SWRHZXREYXR1bShzdmFyLT52YXJpZCk7CisJCQl2YWx1ZXNbM10gPSBP YmplY3RJZEdldERhdHVtKHN2YXItPnR5cGlkKTsKKworCQkJLyoKKwkJCSAqIEl0IGlzIHBvc3Np YmxlIHRoYXQgdGhlIHZhcmlhYmxlIGhhcyBiZWVuIGRyb3BwZWQgZnJvbSB0aGUKKwkJCSAqIGNh dGFsb2csIGJ1dCBub3QgeWV0IHB1cmdlZCBmcm9tIHRoZSBoYXNoIHRhYmxlLgorCQkJICovCisJ CQl0cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShzdmFy LT52YXJpZCkpOworCisJCQlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0cCkpCisJCQl7CisJCQkJRm9y bV9wZ192YXJpYWJsZSB2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0cCk7 CisKKwkJCQkvKgorCQkJCSAqIEl0IGlzIGFsc28gcG9zc2libGUgdGhhdCBhIHZhcmlhYmxlIGhh cyBiZWVuIGRyb3BwZWQgYW5kCisJCQkJICogc29tZW9uZSBjcmVhdGVkIGEgbmV3IHZhcmlhYmxl IHdpdGggdGhlIHNhbWUgb2JqZWN0IElELgorCQkJCSAqIFVzZSB0aGUgY2F0YWxvZyBpbmZvcm1h dGlvbiBvbmx5IGlmIHRoYXQgaXMgbm90IHRoZSBjYXNlLgorCQkJCSAqLworCQkJCWlmIChzdmFy LT5jcmVhdGVfbHNuID09IHZhcmZvcm0tPnZhcmNyZWF0ZV9sc24pCisJCQkJeworCQkJCQl2YWx1 ZXNbMV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKAorCQkJCQkJCQkJCQkJCWdldF9uYW1lc3BhY2Vf bmFtZSh2YXJmb3JtLT52YXJuYW1lc3BhY2UpKTsKKworCQkJCQl2YWx1ZXNbMl0gPSBDU3RyaW5n R2V0VGV4dERhdHVtKE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSkpOworCQkJCQl2YWx1ZXNbNF0g PSBDU3RyaW5nR2V0VGV4dERhdHVtKGZvcm1hdF90eXBlX2JlKHN2YXItPnR5cGlkKSk7CisJCQkJ CXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bShmYWxzZSk7CisKKwkJCQkJdmFsdWVzWzZdID0gQm9v bEdldERhdHVtKAorCQkJCQkJCQkJCQkgb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25J ZCwgc3Zhci0+dmFyaWQsCisJCQkJCQkJCQkJCQkJCQkgR2V0VXNlcklkKCksIEFDTF9TRUxFQ1Qp ID09IEFDTENIRUNLX09LKTsKKworCQkJCQl2YWx1ZXNbN10gPSBCb29sR2V0RGF0dW0oCisJCQkJ CQkJCQkJCSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCBzdmFyLT52YXJpZCwK KwkJCQkJCQkJCQkJCQkJCSBHZXRVc2VySWQoKSwgQUNMX1VQREFURSkgPT0gQUNMQ0hFQ0tfT0sp OworCisJCQkJCXZhcl9pc192YWxpZCA9IHRydWU7CisJCQkJfQorCisJCQkJUmVsZWFzZVN5c0Nh Y2hlKHRwKTsKKwkJCX0KKworCQkJLyogaWYgdGhlcmUgaXMgbm8gbWF0Y2hpbmcgY2F0YWxvZyBl bnRyeSwgcmV0dXJuIG51bGwgdmFsdWVzICovCisJCQlpZiAoIXZhcl9pc192YWxpZCkKKwkJCXsK KwkJCQludWxsc1sxXSA9IHRydWU7CisJCQkJbnVsbHNbMl0gPSB0cnVlOworCQkJCW51bGxzWzRd ID0gdHJ1ZTsKKwkJCQl2YWx1ZXNbNV0gPSBCb29sR2V0RGF0dW0odHJ1ZSk7CisJCQkJbnVsbHNb Nl0gPSB0cnVlOworCQkJCW51bGxzWzddID0gdHJ1ZTsKKwkJCX0KKworCQkJdHVwbGVzdG9yZV9w dXR2YWx1ZXMocnNpbmZvLT5zZXRSZXN1bHQsIHJzaW5mby0+c2V0RGVzYywgdmFsdWVzLCBudWxs cyk7CisJCX0KKwl9CisKKwlyZXR1cm4gKERhdHVtKSAwOworfQpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQKaW5kZXggOGRlNGQ5Y2ZhNzYuLjlmYjdiZTk4N2JjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQKQEAgLTEyNjI3LDQgKzEyNjI3LDEyIEBACiAgIHByb2FyZ25hbWVzID0+ICd7cGlkLGlvX2lk LGlvX2dlbmVyYXRpb24sc3RhdGUsb3BlcmF0aW9uLG9mZixsZW5ndGgsdGFyZ2V0LGhhbmRsZV9k YXRhX2xlbixyYXdfcmVzdWx0LHJlc3VsdCx0YXJnZXRfZGVzYyxmX3N5bmMsZl9sb2NhbG1lbSxm X2J1ZmZlcmVkfScsCiAgIHByb3NyYyA9PiAncGdfZ2V0X2Fpb3MnIH0sCiAKKyMgU2Vzc2lvbiB2 YXJpYWJsZXMgc3VwcG9ydAoreyBvaWQgPT4gJzgwNjgnLCBkZXNjciA9PiAnaW50ZXJuYWwgdmll dyBvZiBtZW1vcnkgZW50cmllcyB1c2VkIGJ5IHNlc3Npb24gdmFyaWFibGVzIChmb3IgZGVidWdn aW5nKScsCisgIHByb25hbWUgPT4gJ3BnX2dldF9zZXNzaW9uX3ZhcmlhYmxlc19tZW1vcnknLCBw cm9yb3dzID0+ICcxMDAwJywgcHJvcmV0c2V0ID0+ICd0JywKKyAgcHJvdm9sYXRpbGUgPT4gJ3Mn LCBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcsCisgIHByb2FyZ3R5 cGVzID0+ICcnLCBwcm9hbGxhcmd0eXBlcyA9PiAne29pZCx0ZXh0LHRleHQsb2lkLHRleHQsYm9v bCxib29sLGJvb2x9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG99JywKKyAg cHJvYXJnbmFtZXMgPT4gJ3t2YXJpZCxzY2hlbWEsbmFtZSx0eXBpZCx0eXBuYW1lLGRyb3BwZWQs Y2FuX3NlbGVjdCxjYW5fdXBkYXRlfScsCisgIHByb3NyYyA9PiAncGdfZ2V0X3Nlc3Npb25fdmFy aWFibGVzX21lbW9yeScgfSwKIF0KLS0gCjIuNTEuMQoK --0000000000001c96f9064262bb7f Content-Type: text/x-patch; charset="US-ASCII"; name="v20251030-0014-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20251030-0014-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhdn0d9q1 RnJvbSBkYjlhNWFmODg5NmE5OTVlN2JlNGI4OGYzZWQ1NjYxMWEzZmI4OTJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IE1vbiwgMiBKdW4gMjAyNSAyMjozMzoyNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTQv MTVdIG1lbW9yeSBjbGVhbmluZyBhZnRlciBEUk9QIFZBUklBQkxFCgpBY2NlcHRpbmcgYSBzaW52 YWwgbWVzc2FnZSBpbnZhbGlkYXRlcyBlbnRyaWVzIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhhc2gg dGFibGUuClRoZXNlIGVudHJpZXMgYXJlIHZhbGlkYXRlZCBiZWZvcmUgYW55IHJlYWQgb3Igd3Jp dGUgb3BlcmF0aW9ucyBvbiBzZXNzaW9uIHZhcmlhYmxlcy4KV2hlbiB0aGUgZW50cnkgY2Fubm90 IGJlIHZhbGlkYXRlZCwgaXQgaXMgcmVtb3ZlZC4gIFJlbW92YWwgd2lsbCBiZSBkZWxheWVkIHdo ZW4KdGhlIHZhcmlhYmxlIHdhcyBkcm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLCB3 aGljaCBjb3VsZCBzdGlsbCBiZSByb2xsZWQgYmFjay4KLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9n L3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE1NCArKysrKysrKysrKystCiBzcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgIDIgKwogLi4uL2lzb2xhdGlv bi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgMTEwICsrKysrKysrKwogc3JjL3Rl c3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSAgICAgICAgIHwgICAxICsKIC4uLi9pc29s YXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA1MCArKysrCiAuLi4vZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dCAgICAgICAgfCAyMTQgKysrKysrKysrKysr KysrKysrCiAuLi4vcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbCAgICAgfCAx NTEgKysrKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDY4MyBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9zZXNzaW9uLXZhcmlhYmxlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKaW5kZXggZDhlZGU0ZmE4YzguLmM5NDExNDQzYzZkIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24u aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfdmFyaWFibGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9wZ19sc24uaCIKICNp bmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgpAQCAtMTU0LDcgKzE1NSw4IEBAIGNyZWF0ZV92YXJp YWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogfQogCiAvKgotICogRHJvcCB2YXJpYWJsZSBieSBP SUQKKyAqIERyb3AgdmFyaWFibGUgYnkgT0lELCBhbmQgcmVnaXN0ZXIgdGhlIG5lZWRlZCBzZXNz aW9uIHZhcmlhYmxlCisgKiBjbGVhbnVwLgogICovCiB2b2lkCiBEcm9wVmFyaWFibGVCeUlkKE9p ZCB2YXJpZCkKQEAgLTE3NCw0ICsxNzYsNyBAQCBEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkK IAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIAogCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZl TG9jayk7CisKKwkvKiBkbyB0aGUgbmVjZXNzYXJ5IGNsZWFudXAgaW4gbG9jYWwgbWVtb3J5LCBp ZiBuZWVkZWQgKi8KKwlTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3ModmFyaWQpOwogfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IGM3ZjY0MjRiNzZiLi5i YjA2M2JiN2JiYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAt MTMsOCArMTMsOCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KICNpbmNsdWRlICJwb3N0Z3Jl cy5oIgotCiAjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUgImFjY2Vz cy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNh dGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCkBAIC03Niw2 ICs3NiwxNCBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJdm9pZAkgICAqZG9tYWlu X2NoZWNrX2V4dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0cmFfbHhp ZDsKIAorCS8qCisJICogVG9wIGxldmVsIGxvY2FsIHRyYW5zYWN0aW9uIGlkIG9mIHRoZSBsYXN0 IHRyYW5zYWN0aW9uIHRoYXQgZHJvcHBlZCB0aGUKKwkgKiB2YXJpYWJsZSwgaWYgYW55LiAgV2Ug bmVlZCB0aGlzIGluZm9ybWF0aW9uIHRvIGF2b2lkIGZyZWVpbmcgbWVtb3J5IGZvcgorCSAqIHZh cmlhYmxlcyBkcm9wcGVkIGJ5IHRoZSBsb2NhbCBiYWNrZW5kLCBpbiBjYXNlIHRoZSBvcGVyYXRp b24gaXMgcm9sbGVkCisJICogYmFjay4KKwkgKi8KKwlMb2NhbFRyYW5zYWN0aW9uSWQgZHJvcF9s eGlkOworCiAJLyoKIAkgKiBTdG9yZWQgdmFsdWUgYW5kIHR5cGUgZGVzY3JpcHRpb24gY2FuIGJl IG91dGRhdGVkIHdoZW4gd2UgcmVjZWl2ZSBhCiAJICogc2ludmFsIG1lc3NhZ2UuICBXZSB0aGVu IGhhdmUgdG8gY2hlY2sgaWYgdGhlIHN0b3JlZCBkYXRhIGFyZSBzdGlsbApAQCAtOTIsNiArMTAw LDE3IEBAIHN0YXRpYyBIVEFCICpzZXNzaW9udmFycyA9IE5VTEw7CS8qIGhhc2ggdGFibGUgZm9y IHNlc3Npb24gdmFyaWFibGVzICovCiAKIHN0YXRpYyBNZW1vcnlDb250ZXh0IFNWYXJpYWJsZU1l bW9yeUNvbnRleHQgPSBOVUxMOwogCisvKiBiZWNvbWVzIHRydWUgd2hlbiB3ZSByZWNlaXZlIGEg c2ludmFsIG1lc3NhZ2UgKi8KK3N0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsK KworLyoKKyAqIFRoZSBjb250ZW50IG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgbm90 IHJlbW92ZWQgaW1tZWRpYXRlbHkuICBXZSBkbworICogdGhhdCBpbiB0aGUgbmV4dCB0cmFuc2Fj dGlvbiB0aGF0IHJlYWRzIG9yIHdyaXRlcyBhIHNlc3Npb24gdmFyaWFibGUuCisgKiAidmFsaWRh dGVkX2x4aWQiIHN0b3JlcyB0aGUgdHJhbnNhY3Rpb24gdGhhdCBwZXJmb3JtZWQgc2FpZCB2YWxp ZGF0aW9uLCBzbworICogdGhhdCB3ZSBjYW4gYXZvaWQgcmVwZWF0aW5nIHRoZSBlZmZvcnQuCisg Ki8KK3N0YXRpYyBMb2NhbFRyYW5zYWN0aW9uSWQgdmFsaWRhdGVkX2x4aWQgPSBJbnZhbGlkTG9j YWxUcmFuc2FjdGlvbklkOworCiAvKgogICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHNlc3Npb24g dmFyaWFibGUgaW52YWxpZGF0aW9uLgogICovCkBAIC0xMjQsNiArMTQzLDM4IEBAIHBnX3Zhcmlh YmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFs dWUpCiAJCWlmIChoYXNodmFsdWUgPT0gMCB8fCBzdmFyLT5oYXNodmFsdWUgPT0gaGFzaHZhbHVl KQogCQl7CiAJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQkJbmVlZHNfdmFsaWRhdGlvbiA9 IHRydWU7CisJCX0KKwl9Cit9CisKKy8qCisgKiBIYW5kbGUgdGhlIGxvY2FsIG1lbW9yeSBjbGVh bnVwIGZvciBhIERST1AgVkFSSUFCTEUgY29tbWFuZC4KKyAqCisgKiBDYWxsZXIgc2hvdWxkIHRh a2UgY2FyZSBvZiByZW1vdmluZyB0aGUgcGdfdmFyaWFibGUgZW50cnkgZmlyc3QuCisgKi8KK3Zv aWQKK1Nlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpCit7CisJQXNzZXJ0 KExvY2FsVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlQcm9jLT52eGlkLmx4aWQpKTsKKworCWlmIChz ZXNzaW9udmFycykKKwl7CisJCWJvb2wJCWZvdW5kOworCQlTVmFyaWFibGUJc3ZhciA9IChTVmFy aWFibGUpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCisJCQkJCQkJCQkJCQkgICBI QVNIX0ZJTkQsICZmb3VuZCk7CisKKwkJaWYgKGZvdW5kKQorCQl7CisJCQkvKgorCQkJICogU2F2 ZSB0aGUgY3VycmVudCB0b3AgbGV2ZWwgbG9jYWwgdHJhbnNhY3Rpb24gaWQgdG8gbWFrZSBzdXJl IHdlCisJCQkgKiB3b24ndCBhdXRvbWF0aWNhbGx5IHJlbW92ZSB0aGUgbG9jYWwgdmFyaWFibGUg c3RvcmFnZSBpbgorCQkJICogdmFsaWRhdGVfYWxsX3Nlc3Npb25fdmFyaWFibGVzKCkgd2hlbiB0 aGUgaW52YWxpZGF0aW9uIG1lc3NhZ2UKKwkJCSAqIGZyb20gRFJPUCBWQVJJQUJMRSBhcnJpdmVz LiAgQWZ0ZXIgYWxsLCB0aGUgdHJhbnNhY3Rpb24gY291bGQKKwkJCSAqIHN0aWxsIGJlIHJvbGxl ZCBiYWNrLgorCQkJICovCisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQkJc3Zhci0+ZHJv cF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CiAJCX0KIAl9CiB9CkBAIC0xNzcsNiArMjI4LDY3 IEBAIGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoU1ZhcmlhYmxlIHN2YXIpCiAJcmV0dXJuIHJl c3VsdDsKIH0KIAorLyoKKyAqIENoZWNrIGFsbCBwb3RlbnRpYWxseSBpbnZhbGlkIHNlc3Npb24g dmFyaWFibGUgZGF0YSBpbiBsb2NhbCBtZW1vcnkgYW5kIGZyZWUKKyAqIHRoZSBtZW1vcnkgZm9y IGFsbCBpbnZhbGlkIG9uZXMuICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBiZWZvcmUgYW55IHJl YWQgb3IKKyAqIHdyaXRlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZS4gIEZyZWVpbmcgb2YgYSB2YXJp YWJsZSdzIG1lbW9yeSBpcyBwb3N0cG9uZWQgaWYKKyAqIHRoZSB2YXJpYWJsZSBoYXMgYmVlbiBk cm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLCBzaW5jZSB0aGF0CisgKiBvcGVyYXRp b24gY291bGQgc3RpbGwgYmUgcm9sbGVkIGJhY2suCisgKgorICogSXQgaXMgcG9zc2libGUgdGhh dCB3ZSByZWNlaXZlIGEgY2FjaGUgaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2hpbGUKKyAqIHJlbW92 ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCkgaXMgZXhlY3V0aW5nLCBzbyB3ZSBjYW5ub3Qg Z3VhcmFudGVlIHRoYXQKKyAqIGFsbCBlbnRyaWVzIGluICJzZXNzaW9udmFycyIgd2lsbCBiZSBz ZXQgdG8gImlzX3ZhbGlkIiBhZnRlciB0aGUgZnVuY3Rpb24gaXMKKyAqIGRvbmUuICBIb3dldmVy LCB3ZSBjYW4gZ3VhcmFudGVlIHRoYXQgYWxsIGVudHJpZXMgZ2V0IGNoZWNrZWQgb25jZS4KKyAq Lworc3RhdGljIHZvaWQKK3JlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKHZvaWQpCit7 CisJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwlTVmFyaWFibGUJc3ZhcjsKKworCS8qCisJICog VGhlIHZhbGlkYXRpb24gcmVxdWlyZXMgc3lzdGVtIGNhdGFsb2cgYWNjZXNzLCBzbyB0aGUgc2Vz c2lvbiBzdGF0ZQorCSAqIHNob3VsZCBiZSAiaW4gdHJhbnNhY3Rpb24iLgorCSAqLworCUFzc2Vy dChJc1RyYW5zYWN0aW9uU3RhdGUoKSk7CisKKwlpZiAoIW5lZWRzX3ZhbGlkYXRpb24gfHwgIXNl c3Npb252YXJzKQorCQlyZXR1cm47CisKKwkvKgorCSAqIFJlc2V0IHRoZSBmbGFnIGJlZm9yZSB3 ZSBzdGFydCB0aGUgdmFsaWRhdGlvbi4gIEl0IGNhbiBiZSBzZXQgYWdhaW4gYnkKKwkgKiBjb25j dXJyZW50bHkgaW5jb21pbmcgc2ludmFsIG1lc3NhZ2VzLgorCSAqLworCW5lZWRzX3ZhbGlkYXRp b24gPSBmYWxzZTsKKworCWVsb2coREVCVUcxLCAiZWZmZWN0aXZlIGNhbGwgb2YgdmFsaWRhdGVf YWxsX3Nlc3Npb25fdmFyaWFibGVzKCkiKTsKKworCWhhc2hfc2VxX2luaXQoJnN0YXR1cywgc2Vz c2lvbnZhcnMpOworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgm c3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsKKwkJCWlm IChzdmFyLT5kcm9wX2x4aWQgPT0gTXlQcm9jLT52eGlkLmx4aWQpCisJCQl7CisJCQkJLyogdHJ5 IGFnYWluIGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uICovCisJCQkJbmVlZHNfdmFsaWRhdGlvbiA9 IHRydWU7CisJCQkJY29udGludWU7CisJCQl9CisKKwkJCWlmICghaXNfc2Vzc2lvbl92YXJpYWJs ZV92YWxpZChzdmFyKSkKKwkJCXsKKwkJCQlPaWQJCQl2YXJpZCA9IHN2YXItPnZhcmlkOworCisJ CQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCQkJCWhhc2hfc2VhcmNoKHNl c3Npb252YXJzLCAmdmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwkJCQlzdmFyID0gTlVMTDsK KwkJCX0KKwkJCWVsc2UKKwkJCQlzdmFyLT5pc192YWxpZCA9IHRydWU7CisJCX0KKwl9Cit9CisK IC8qCiAgKiBJbml0aWFsaXplIGF0dHJpYnV0ZXMgY2FjaGVkIGluICJzdmFyIgogICovCkBAIC0y MDYsNiArMzE4LDggQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lk IHZhcmlkKQogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CiAJc3Zhci0+ZG9tYWlu X2NoZWNrX2V4dHJhX2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisJc3Zhci0+ ZHJvcF9seGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisKIAlzdmFyLT5pc251bGwgPSB0cnVl OwogCXN2YXItPnZhbHVlID0gKERhdHVtKSAwOwogCkBAIC0zMjksMjIgKzQ0Myw0MiBAQCBnZXRf c2Vzc2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCiAJaWYgKCFzZXNzaW9udmFycykKIAkJY3JlYXRl X3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKIAorCWlmICh2YWxpZGF0ZWRfbHhpZCA9PSBJbnZh bGlkTG9jYWxUcmFuc2FjdGlvbklkIHx8CisJCXZhbGlkYXRlZF9seGlkICE9IE15UHJvYy0+dnhp ZC5seGlkKQorCXsKKwkJLyogZnJlZSB0aGUgbWVtb3J5IGZyb20gZHJvcHBlZCBzZXNzaW9uIHZh cmlhYmxlcyAqLworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpOworCisJCS8q IGRvbid0IHJlcGVhdCB0aGUgYWJvdmUgc3RlcCBpbiB0aGUgc2FtZSB0cmFuc2FjdGlvbiAqLwor CQl2YWxpZGF0ZWRfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKwogCXN2YXIgPSAoU1Zh cmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAogCQkJCQkJCQkgICBIQVNI X0VOVEVSLCAmZm91bmQpOwogCiAJaWYgKGZvdW5kKQogCXsKKwkJLyoKKwkJICogVGhlIHNlc3Np b24gdmFyaWFibGUgY291bGQgaGF2ZSBiZWVuIGRyb3BwZWQgYnkgYSBEUk9QIFZBUklBQkxFCisJ CSAqIHN0YXRlbWVudCBpbiBhIHN1YnRyYW5zYWN0aW9uIHRoYXQgd2FzIGxhdGVyIHJvbGxlZCBi YWNrLCB3aGljaAorCQkgKiBtZWFucyB0aGF0IHdlIG1heSBoYXZlIHRvIHdvcmsgd2l0aCB0aGUg ZGF0YSBvZiBhIHZhcmlhYmxlIG1hcmtlZAorCQkgKiBhcyBpbnZhbGlkLgorCQkgKi8KIAkJaWYg KCFzdmFyLT5pc192YWxpZCkKIAkJewogCQkJLyoKLQkJCSAqIElmIHRoZXJlIHdhcyBhbiBpbnZh bGlkYXRpb24gbWVzc2FnZSwgdGhlIHZhcmlhYmxlIG1pZ2h0IHN0aWxsCi0JCQkgKiBiZSB2YWxp ZCwgYnV0IHdlIGhhdmUgdG8gY2hlY2sgd2l0aCB0aGUgc3lzdGVtIGNhdGFsb2cuCisJCQkgKiBX ZSBoYXZlIHRvIGNoZWNrIHRoZSBzeXN0ZW0gY2F0YWxvZyB0byBzZWUgaWYgdGhlIHZhcmlhYmxl IGlzCisJCQkgKiBzdGlsbCB2YWxpZCwgZXZlbiBpZiBhbiBpbnZhbGlkYXRpb24gbWVzc2FnZSBz ZXQgaXQgdG8gaW52YWxpZC4KKwkJCSAqCisJCQkgKiBUaGUgdmFyaWFibGUgbXVzdCBiZSB2YWxp ZGF0ZWQgYmVmb3JlIGl0IGlzIGFjY2Vzc2VkLiAgVGhlIG9pZAorCQkJICogc2hvdWxkIGJlIHZh bGlkLCBiZWNhdXNlIHRoZSByZWxhdGVkIHNlc3Npb24gdmFyaWFibGUgaXMKKwkJCSAqIGFscmVh ZHkgbG9ja2VkLCBhbmQgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoKSB3b3VsZAor CQkJICogcmVtb3ZlIHZhcmlhYmxlcyBkcm9wcGVkIGJ5IG90aGVyIHRyYW5zYWN0aW9ucy4KIAkJ CSAqLwogCQkJaWYgKGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3ZhcikpCiAJCQkJc3Zhci0+ aXNfdmFsaWQgPSB0cnVlOwogCQkJZWxzZQotCQkJCS8qIGlmIHRoZSB2YWx1ZSBjYW5ub3QgYmUg dmFsaWRhdGVkLCB3ZSBoYXZlIHRvIGRpc2NhcmQgaXQgKi8KLQkJCQlmcmVlX3Nlc3Npb25fdmFy aWFibGVfdmFsdWUoc3Zhcik7CisJCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgc3RhdGUgb2Yg c2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKIAkJfQogCX0KIAllbHNlCkBAIC00MDUsNiAr NTM5LDE2IEBAIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29s IGlzTnVsbCkKIAlpZiAoIXNlc3Npb252YXJzKQogCQljcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRh YmxlcygpOwogCisJaWYgKHZhbGlkYXRlZF9seGlkID09IEludmFsaWRMb2NhbFRyYW5zYWN0aW9u SWQgfHwKKwkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJeworCQkvKiBm cmVlIHRoZSBtZW1vcnkgZnJvbSBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzICovCisJCXJlbW92 ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKwkJLyogZG9uJ3QgcmVwZWF0IHRoZSBh Ym92ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uICovCisJCXZhbGlkYXRlZF9seGlkID0g TXlQcm9jLT52eGlkLmx4aWQ7CisJfQorCiAJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNo KHNlc3Npb252YXJzLCAmdmFyaWQsCiAJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3VuZCk7CiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCBiL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAppbmRleCBhYzM2ZGZjYzE5Yi4u YzA2ZTFmYWYwMmMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAg LTIxLDYgKzIxLDggQEAKICNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCiAjaW5jbHVkZSAi dGNvcC9jbWR0YWcuaCIKIAorZXh0ZXJuIHZvaWQgU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9j ZXNzKE9pZCB2YXJpZCk7CisKIGV4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFy aWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZh cmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsKTsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv aXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0IGIvc3JjL3Rlc3QvaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5iNjlkYWMyZGY3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0 L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApAQCAtMCwwICsxLDExMCBA QAorUGFyc2VkIHRlc3Qgc3BlYyB3aXRoIDQgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRp b246IGxldCB2YWwgZHJvcCB2YWwKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVw IHZhbDogU0VMRUNUIFZBUklBQkxFKG15dmFyKTsKK215dmFyCistLS0tLQordGVzdCAKKygxIHJv dykKKworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCB2YWw6IFNFTEVDVCBW QVJJQUJMRShteXZhcik7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgIm15dmFyIiBkb2Vzbid0 IGV4aXN0CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQor c3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBTRUxFQ1QgVkFSSUFCTEUo bXl2YXIpOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIHMxOiBCRUdJTjsK K3N0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKK3N0ZXAgdmFsOiBTRUxFQ1QgVkFSSUFC TEUobXl2YXIpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJteXZhciIgZG9lc24ndCBleGlz dAorc3RlcCBzcjE6IFJPTExCQUNLOworCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBk YmcgZHJvcCBjcmVhdGUgZGJnIHZhbAorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0 ZXAgdmFsOiBTRUxFQ1QgVkFSSUFCTEUobXl2YXIpOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEg cm93KQorCitzdGVwIGRiZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgZHJvcHBlZCBGUk9NIHBnX2dl dF9zZXNzaW9uX3ZhcmlhYmxlc19tZW1vcnkoKTsKK3NjaGVtYXxuYW1lIHxkcm9wcGVkCistLS0t LS0rLS0tLS0rLS0tLS0tLQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCBk cm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBt eXZhciBBUyB0ZXh0Oworc3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIGRyb3BwZWQgRlJP TSBwZ19nZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5KCk7CitzY2hlbWF8bmFtZXxkcm9wcGVk CistLS0tLS0rLS0tLSstLS0tLS0tCisgICAgICB8ICAgIHx0ICAgICAgCisoMSByb3cpCisKK3N0 ZXAgdmFsOiBTRUxFQ1QgVkFSSUFCTEUobXl2YXIpOworbXl2YXIKKy0tLS0tCisgICAgIAorKDEg cm93KQorCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0 ZSBkYmcgdmFsIHNyMQorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBT RUxFQ1QgVkFSSUFCTEUobXl2YXIpOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitz dGVwIHMxOiBCRUdJTjsKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCBkcm9wcGVkIEZS T00gcGdfZ2V0X3Nlc3Npb25fdmFyaWFibGVzX21lbW9yeSgpOworc2NoZW1hfG5hbWUgfGRyb3Bw ZWQKKy0tLS0tLSstLS0tLSstLS0tLS0tCitwdWJsaWN8bXl2YXJ8ZiAgICAgIAorKDEgcm93KQor CitzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7CitzdGVwIGNyZWF0ZTogQ1JFQVRFIFZB UklBQkxFIG15dmFyIEFTIHRleHQ7CitzdGVwIGRiZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgZHJv cHBlZCBGUk9NIHBnX2dldF9zZXNzaW9uX3ZhcmlhYmxlc19tZW1vcnkoKTsKK3NjaGVtYXxuYW1l fGRyb3BwZWQKKy0tLS0tLSstLS0tKy0tLS0tLS0KKyAgICAgIHwgICAgfHQgICAgICAKKygxIHJv dykKKworc3RlcCB2YWw6IFNFTEVDVCBWQVJJQUJMRShteXZhcik7CitteXZhcgorLS0tLS0KKyAg ICAgCisoMSByb3cpCisKK3N0ZXAgc3IxOiBST0xMQkFDSzsKKworc3RhcnRpbmcgcGVybXV0YXRp b246IGNyZWF0ZTMgbGV0MyBzMyBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2Nh cmQgc2MzIHN0YXRlCitzdGVwIGNyZWF0ZTM6IENSRUFURSBWQVJJQUJMRSBteXZhcjMgQVMgdGV4 dDsKK3N0ZXAgbGV0MzogTEVUIG15dmFyMyA9ICd0ZXN0JzsKK3N0ZXAgczM6IEJFR0lOOworc3Rl cCBjcmVhdGU0OiBDUkVBVEUgVkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7CitzdGVwIGxldDQ6IExF VCBteXZhcjQgPSAndGVzdCc7CitzdGVwIGRyb3A0OiBEUk9QIFZBUklBQkxFIG15dmFyNDsKK3N0 ZXAgZHJvcDM6IERST1AgVkFSSUFCTEUgbXl2YXIzOworc3RlcCBpbnZhbDM6IFNFTEVDVCBDT1VO VCgqKSA+PSAwIEZST00gcGdfZm9yZWlnbl90YWJsZTsKKz9jb2x1bW4/CistLS0tLS0tLQordCAg ICAgICAKKygxIHJvdykKKworc3RlcCBkaXNjYXJkOiBESVNDQVJEIFZBUklBQkxFUzsKK3N0ZXAg c2MzOiBDT01NSVQ7CitzdGVwIHN0YXRlOiBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3ZhcmlhYmxl OwordmFybmFtZQorLS0tLS0tLQorbXl2YXIgIAorKDEgcm93KQorCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2lz b2xhdGlvbl9zY2hlZHVsZQppbmRleCA1YWZhZTMzZDM3MC4uMzA2OGFlNDAxZGIgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3Qv aXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZQpAQCAtMTIwLDMgKzEyMCw0IEBAIHRlc3Q6IHNl cmlhbGl6YWJsZS1wYXJhbGxlbC0yCiB0ZXN0OiBzZXJpYWxpemFibGUtcGFyYWxsZWwtMwogdGVz dDogbWF0dmlldy13cml0ZS1za2V3CiB0ZXN0OiBsb2NrLW5vd2FpdAordGVzdDogc2Vzc2lvbi12 YXJpYWJsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFy aWFibGUuc3BlYyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNw ZWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcyNjI5MzIxZDkwCi0t LSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFi bGUuc3BlYwpAQCAtMCwwICsxLDUwIEBACisjIFRlc3Qgc2Vzc2lvbiB2YXJpYWJsZXMgbWVtb3J5 IGNsZWFudXAgZm9yIHNpbnZhbAorCitzZXR1cAoreworICAgIENSRUFURSBWQVJJQUJMRSBteXZh ciBBUyB0ZXh0OworfQorCit0ZWFyZG93bgoreworICAgIERST1AgVkFSSUFCTEUgSUYgRVhJU1RT IG15dmFyOworfQorCitzZXNzaW9uIHMxCitzdGVwIHMxCQl7IEJFR0lOOyB9CitzdGVwIGxldAl7 IExFVCBteXZhciA9ICd0ZXN0JzsgfQorc3RlcCB2YWwJeyBTRUxFQ1QgVkFSSUFCTEUobXl2YXIp OyB9CitzdGVwIGRiZwl7IFNFTEVDVCBzY2hlbWEsIG5hbWUsIGRyb3BwZWQgRlJPTSBwZ19nZXRf c2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5KCk7IH0KK3N0ZXAgc3IxCXsgUk9MTEJBQ0s7IH0KKwor c2Vzc2lvbiBzMgorc3RlcCBkcm9wCQl7IERST1AgVkFSSUFCTEUgbXl2YXI7IH0KK3N0ZXAgY3Jl YXRlCQl7IENSRUFURSBWQVJJQUJMRSBteXZhciBBUyB0ZXh0OyB9CisKK3Nlc3Npb24gczMKK3N0 ZXAgczMJCQl7IEJFR0lOOyB9CitzdGVwIGxldDMJCXsgTEVUIG15dmFyMyA9ICd0ZXN0JzsgfQor c3RlcCBjcmVhdGU0CXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0OyB9CitzdGVwIGxl dDQJCXsgTEVUIG15dmFyNCA9ICd0ZXN0JzsgfQorc3RlcCBkcm9wNAkJeyBEUk9QIFZBUklBQkxF IG15dmFyNDsgfQorc3RlcCBpbnZhbDMJCXsgU0VMRUNUIENPVU5UKCopID49IDAgRlJPTSBwZ19m b3JlaWduX3RhYmxlOyB9CitzdGVwIGRpc2NhcmQJeyBESVNDQVJEIFZBUklBQkxFUzsgfQorc3Rl cCBzYzMJCXsgQ09NTUlUOyB9CitzdGVwIHN0YXRlCQl7IFNFTEVDVCB2YXJuYW1lIEZST00gcGdf dmFyaWFibGU7IH0KKworc2Vzc2lvbiBzNAorc3RlcCBjcmVhdGUzCXsgQ1JFQVRFIFZBUklBQkxF IG15dmFyMyBBUyB0ZXh0OyB9CitzdGVwIGRyb3AzCQl7IERST1AgVkFSSUFCTEUgbXl2YXIzOyB9 CisKKyMgQ29uY3VycmVudCBkcm9wIG9mIGEga25vd24gdmFyaWFibGUgc2hvdWxkIGxlYWQgdG8g YW4gZXJyb3IKK3Blcm11dGF0aW9uIGxldCB2YWwgZHJvcCB2YWwKKyMgU2FtZSwgYnV0IHdpdGgg YW4gZXhwbGljaXQgdHJhbnNhY3Rpb24KK3Blcm11dGF0aW9uIGxldCB2YWwgczEgZHJvcCB2YWwg c3IxCisjIENvbmN1cnJlbnQgZHJvcC9jcmVhdGUgb2YgYSBrbm93biB2YXJpYWJsZSBzaG91bGQg bGVhZCB0byBlbXB0eSB2YXJpYWJsZQorcGVybXV0YXRpb24gbGV0IHZhbCBkYmcgZHJvcCBjcmVh dGUgZGJnIHZhbAorIyBDb25jdXJyZW50IGRyb3AvY3JlYXRlIG9mIGEga25vd24gdmFyaWFibGUg c2hvdWxkIGxlYWQgdG8gZW1wdHkgdmFyaWFibGUKKyMgV2UgbmVlZCBhIHRyYW5zYWN0aW9uIHRv IG1ha2Ugc3VyZSB0aGF0IHdlIHdvbid0IGFjY2VwdCBpbnZhbGlkYXRpb24gd2hlbgorIyBjYWxs aW5nIHRoZSBkYmcgc3RlcCBhZnRlciB0aGUgY29uY3VycmVudCBkcm9wCitwZXJtdXRhdGlvbiBs ZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsIHNyMQorIyB0ZXN0IGZvciBESVNDQVJE IEFMTCB3aGVuIGFsbCBpbnRlcm5hbCBxdWV1ZXMgaGF2ZSBhY3Rpb25zIHJlZ2lzdGVyZWQKK3Bl cm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwz IGRpc2NhcmQgc2MzIHN0YXRlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzX2RkbC5vdXQKaW5kZXggOWM3NTk1ZTlhNDEuLjNhZWY3NjY1ZWRjIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2Rk bC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19k ZGwub3V0CkBAIC0xNjEsMyArMTYxLDIxNyBAQCBERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHNl c3Npb24gdmFyaWFibGUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTAKIGRyb3AgY2FzY2FkZXMgdG8g c2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMQogRFJPUCBTQ0hFTUEgc3Zh cnRlc3QwMl9kZGwgQ0FTQ0FERTsKIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2 YXJpYWJsZSBzdmFydGVzdDAyX2RkbC5zZXN2YXIxMAorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdF9k ZGw7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwIEFTIHZhcmNoYXI7Cist LSBkcm9wcGVkIHZhcmlhYmxlcyBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIG1lbW9yeSBiZWZvcmUg dGhlIG5leHQgdXNhZ2UKKy0tIG9mIGFueSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBuZXh0IHRy YW5zYWN0aW9uCitMRVQgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwID0gJ0hlbGxvJzsKK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX2dldF9zZXNzaW9uX3ZhcmlhYmxlc19tZW1vcnkoKQorICBXSEVSRSBz Y2hlbWEgPSAnc3ZhcnRlc3RfZGRsJzsgLS0gMQorIGNvdW50IAorLS0tLS0tLQorICAgICAxCiso MSByb3cpCisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwOworLS0gc2hvdWxk IGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX2dldF9zZXNzaW9uX3ZhcmlhYmxlc19t ZW1vcnkoKQorICBXSEVSRSBzY2hlbWEgPSAnc3ZhcnRlc3RfZGRsJzsgLS0gMAorIGNvdW50IAor LS0tLS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHRoZSBjb250ZW50IG9mIHRoZSB2YWx1ZSBz aG91bGQgYmUgcHJlc2VydmVkIHdoZW4gYSB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBieSBhbiBh Ym9ydGVkIHRyYW5zYWN0aW9uCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYw IEFTIHZhcmNoYXI7CitMRVQgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwID0gJ0hlbGxvJzsKK0JFR0lO OworICBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MDsKKyAgLS0gc2hvdWxkIGZh aWwKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCk7CitFUlJPUjogIHNl c3Npb24gdmFyaWFibGUgInN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCIgZG9lc24ndCBleGlzdAorTElO RSAxOiBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgIF4KK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFC TEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwKTsgLS0gSGVsbG8KKyBzZXN2YXI2MCAKKy0tLS0tLS0t LS0KKyBIZWxsbworKDEgcm93KQorCistLSBhbm90aGVyIHRlc3QKK0JFR0lOOworICBEUk9QIFZB UklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MDsKKyAgLS0gc2hvdWxkIGJlIG9rCisgIENSRUFU RSBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjAgQVMgaW50OworICBMRVQgc3ZhcnRlc3Rf ZGRsLnNlc3ZhcjYwID0gMTAwOworICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3Zh cjYwKTsgLS0gMTAwCisgc2VzdmFyNjAgCistLS0tLS0tLS0tCisgICAgICAxMDAKKygxIHJvdykK KworUk9MTEJBQ0s7CitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwKTsgLS0g SGVsbG8KKyBzZXN2YXI2MCAKKy0tLS0tLS0tLS0KKyBIZWxsbworKDEgcm93KQorCitEUk9QIFZB UklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1Qg Y291bnQoKikgRlJPTSBwZ19nZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5KCkKKyAgV0hFUkUg c2NoZW1hID0gJ3N2YXJ0ZXN0X2RkbCc7IC0tIDAKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAor KDEgcm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2 MCBBUyBpbnQ7CisgIExFVCBzdmFydGVzdF9kZGwuc2VzdmFyNjAgPSAxMDA7CisgIFNFTEVDVCBW QVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjApOworIHNlc3ZhcjYwIAorLS0tLS0tLS0tLQor ICAgICAgMTAwCisoMSByb3cpCisKKyAgU0VMRUNUIGNvdW50KCopIEZST00gcGdfZ2V0X3Nlc3Np b25fdmFyaWFibGVzX21lbW9yeSgpCisgICAgV0hFUkUgc2NoZW1hID0gJ3N2YXJ0ZXN0X2RkbCc7 IC0tIDEKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMQorKDEgcm93KQorCisgIERST1AgVkFSSUFC TEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwOworQ09NTUlUOworU0VMRUNUIGNvdW50KCopIEZST00g cGdfZ2V0X3Nlc3Npb25fdmFyaWFibGVzX21lbW9yeSgpCisgIFdIRVJFIHNjaGVtYSA9ICdzdmFy dGVzdF9kZGwnOyAtLSAwCisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQ1JF QVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFC TEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyIEFTIGludDsKK0xFVCBzdmFydGVzdF9kZGwuc2VzdmFy NjEgPSAxMDsKK0xFVCBzdmFydGVzdF9kZGwuc2VzdmFyNjIgPSAwOworQkVHSU47CisgIFNBVkVQ T0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7CisgIC0tIGZv cmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxF Q1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKyBzZXN2YXI2MiAKKy0tLS0tLS0t LS0KKyAgICAgICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMxOworICBTRUxFQ1QgVkFS SUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxKTsKKyBzZXN2YXI2MSAKKy0tLS0tLS0tLS0KKyAg ICAgICAxMAorKDEgcm93KQorCisgIFNBVkVQT0lOVCBzMjsKKyAgRFJPUCBWQVJJQUJMRSBzdmFy dGVzdF9kZGwuc2VzdmFyNjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3Ro ZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3Zh cjYyKTsKKyBzZXN2YXI2MiAKKy0tLS0tLS0tLS0KKyAgICAgICAgMAorKDEgcm93KQorCisgIFJP TExCQUNLIFRPIHMyOworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUo c3ZhcnRlc3RfZGRsLnNlc3ZhcjYxKTsKKyBzZXN2YXI2MSAKKy0tLS0tLS0tLS0KKyAgICAgICAx MAorKDEgcm93KQorCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHN2 YXJ0ZXN0X2RkbC5zZXN2YXI2MTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5v dGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2Vz dmFyNjIpOworIHNlc3ZhcjYyIAorLS0tLS0tLS0tLQorICAgICAgICAwCisoMSByb3cpCisKKyAg Uk9MTEJBQ0sgVE8gczE7CisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjEp OworIHNlc3ZhcjYxIAorLS0tLS0tLS0tLQorICAgICAgIDEwCisoMSByb3cpCisKKyAgU0FWRVBP SU5UIHMyOworICBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MTsKKyAgLS0gZm9y Y2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVD VCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjIpOworIHNlc3ZhcjYyIAorLS0tLS0tLS0t LQorICAgICAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczI7CitST0xMQkFDSzsKKy0t IHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7Cisg c2VzdmFyNjEgCistLS0tLS0tLS0tCisgICAgICAgMTAKKygxIHJvdykKKworQkVHSU47CisgIFNB VkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7CisgIC0t IGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBT RUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKyBzZXN2YXI2MiAKKy0tLS0t LS0tLS0KKyAgICAgICAgMAorKDEgcm93KQorCisgIFNBVkVQT0lOVCBzMjsKKyAgLS0gZm9yY2Ug Y2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCBW QVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjIpOworIHNlc3ZhcjYyIAorLS0tLS0tLS0tLQor ICAgICAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7CisgIC0tIGZvcmNlIGNsZWFu aW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgVkFSSUFC TEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKyBzZXN2YXI2MiAKKy0tLS0tLS0tLS0KKyAgICAg ICAgMAorKDEgcm93KQorCitDT01NSVQ7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJM RShzdmFydGVzdF9kZGwuc2VzdmFyNjEpOworIHNlc3ZhcjYxIAorLS0tLS0tLS0tLQorICAgICAg IDEwCisoMSByb3cpCisKKy0tIHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0JFR0lOOyBE Uk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJP UCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7IFJPTExCQUNLOworQkVHSU47IERST1Ag VkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOyBST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBv aworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7Cisgc2VzdmFyNjEgCist LS0tLS0tLS0tCisgICAgICAgMTAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9k ZGwuc2VzdmFyNjEsIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MjsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0 X2RkbDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz X2RkbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3Fs CmluZGV4IGY4NDQ0NjllY2IxLi5hNjE2ZWNkYzhlZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsCkBAIC0xNDgsMyArMTQ4LDE1NCBAQCBBTFRF UiBWQVJJQUJMRSBzdmFydGVzdDAyX2RkbC5zZXN2YXIxMCBTRVQgU0NIRU1BIHN2YXJ0ZXN0MDFf ZGRsOwogCiBEUk9QIFNDSEVNQSBzdmFydGVzdDAxX2RkbCBDQVNDQURFOwogRFJPUCBTQ0hFTUEg c3ZhcnRlc3QwMl9kZGwgQ0FTQ0FERTsKKworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdF9kZGw7CisK K0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjAgQVMgdmFyY2hhcjsKKworLS0g ZHJvcHBlZCB2YXJpYWJsZXMgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSBtZW1vcnkgYmVmb3JlIHRo ZSBuZXh0IHVzYWdlCistLSBvZiBhbnkgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGUgbmV4dCB0cmFu c2FjdGlvbgorCitMRVQgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwID0gJ0hlbGxvJzsKKworU0VMRUNU IGNvdW50KCopIEZST00gcGdfZ2V0X3Nlc3Npb25fdmFyaWFibGVzX21lbW9yeSgpCisgIFdIRVJF IHNjaGVtYSA9ICdzdmFydGVzdF9kZGwnOyAtLSAxCisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3Rf ZGRsLnNlc3ZhcjYwOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00g cGdfZ2V0X3Nlc3Npb25fdmFyaWFibGVzX21lbW9yeSgpCisgIFdIRVJFIHNjaGVtYSA9ICdzdmFy dGVzdF9kZGwnOyAtLSAwCisKKy0tIHRoZSBjb250ZW50IG9mIHRoZSB2YWx1ZSBzaG91bGQgYmUg cHJlc2VydmVkIHdoZW4gYSB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBieSBhbiBhYm9ydGVkIHRy YW5zYWN0aW9uCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwIEFTIHZhcmNo YXI7CisKK0xFVCBzdmFydGVzdF9kZGwuc2VzdmFyNjAgPSAnSGVsbG8nOworCitCRUdJTjsKKyAg RFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjA7CisKKyAgLS0gc2hvdWxkIGZhaWwK KyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCk7CisKK1JPTExCQUNLOwor CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjAp OyAtLSBIZWxsbworCistLSBhbm90aGVyIHRlc3QKK0JFR0lOOworICBEUk9QIFZBUklBQkxFIHN2 YXJ0ZXN0X2RkbC5zZXN2YXI2MDsKKworICAtLSBzaG91bGQgYmUgb2sKKyAgQ1JFQVRFIFZBUklB QkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCBBUyBpbnQ7CisgIExFVCBzdmFydGVzdF9kZGwuc2Vz dmFyNjAgPSAxMDA7CisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjApOyAt LSAxMDAKKworUk9MTEJBQ0s7CisKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFy NjApOyAtLSBIZWxsbworCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MDsKKwor LS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX2dldF9zZXNzaW9uX3Zh cmlhYmxlc19tZW1vcnkoKQorICBXSEVSRSBzY2hlbWEgPSAnc3ZhcnRlc3RfZGRsJzsgLS0gMAor CitCRUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCBBUyBpbnQ7 CisKKyAgTEVUIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCA9IDEwMDsKKworICBTRUxFQ1QgVkFSSUFC TEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwKTsKKworICBTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19n ZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5KCkKKyAgICBXSEVSRSBzY2hlbWEgPSAnc3ZhcnRl c3RfZGRsJzsgLS0gMQorCisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwOwor CitDT01NSVQ7CisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX2dldF9zZXNzaW9uX3ZhcmlhYmxl c19tZW1vcnkoKQorICBXSEVSRSBzY2hlbWEgPSAnc3ZhcnRlc3RfZGRsJzsgLS0gMAorCitDUkVB VEUgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxIEFTIGludDsKK0NSRUFURSBWQVJJQUJM RSBzdmFydGVzdF9kZGwuc2VzdmFyNjIgQVMgaW50OworCitMRVQgc3ZhcnRlc3RfZGRsLnNlc3Zh cjYxID0gMTA7CitMRVQgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyID0gMDsKKworQkVHSU47CisgIFNB VkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7CisKKyAg LS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisg IFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjIpOworICBST0xMQkFDSyBUTyBz MTsKKworICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxKTsKKworICBTQVZF UE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOworCisgIC0t IGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBT RUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKyAgUk9MTEJBQ0sgVE8gczI7 CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2Rk bC5zZXN2YXI2MSk7CisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUg c3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOworCisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5n IGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRs LnNlc3ZhcjYyKTsKKyAgUk9MTEJBQ0sgVE8gczE7CisKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0 ZXN0X2RkbC5zZXN2YXI2MSk7CisKKyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZBUklBQkxFIHN2 YXJ0ZXN0X2RkbC5zZXN2YXI2MTsKKworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBh bm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5z ZXN2YXI2Mik7CisgIFJPTExCQUNLIFRPIHMyOworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBv aworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7CisKK0JFR0lOOworICBT QVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOworCisg IC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQor ICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKworICBTQVZFUE9JTlQg czI7CisKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZh cmlhYmxlCisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjIpOworICBST0xM QkFDSyBUTyBzMTsKKworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNl c3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2Mik7 CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2Rk bC5zZXN2YXI2MSk7CisKKy0tIHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0JFR0lOOyBE Uk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJP UCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7IFJPTExCQUNLOworQkVHSU47IERST1Ag VkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOyBST0xMQkFDSzsKKworLS0gc2hvdWxkIGJl IG9rCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxKTsKKworRFJPUCBWQVJJ QUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjEsIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MjsKKworRFJP UCBTQ0hFTUEgc3ZhcnRlc3RfZGRsOwotLSAKMi41MS4xCgo= --0000000000001c96f9064262bb7f Content-Type: text/x-patch; charset="US-ASCII"; name="v20251030-0013-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20251030-0013-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhdn0da72 RnJvbSBkYWZkODVkNmJkNTgzZDBkN2Y1YjY1YWE3Yzg5MjRiMzgxZjI5ZWMxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IE1vbiwgMiBKdW4gMjAyNSAyMDo0MTo1NyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMv MTVdIERJU0NBUkQgVkFSSUFCTEVTCgpJbXBsZW1lbnRhdGlvbiBvZiBESVNDQVJEIFZBUklBQkxF UyBjb21tYW5kcyBieSByZW1vdmluZyBoYXNoIHRhYmxlIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMK YW5kIHJlc2V0dGluZyByZWxhdGVkIG1lbW9yeSBjb250ZXh0LgotLS0KIGRvYy9zcmMvc2dtbC9y ZWYvZGlzY2FyZC5zZ21sICAgICAgICAgICAgICAgICB8IDEzICsrKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKysKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDMyICsrKysrKysrKystLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrCiBzcmMvYmFj a2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgMyArKwogc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRl L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3Av Y21kdGFnbGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlc19kbWwub3V0ICAgICAgICB8IDUwICsrKysrKysrKysrKysrKysrKysKIC4uLi9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsICAgICB8IDI0ICsrKysrKysrKwog MTEgZmlsZXMgY2hhbmdlZCwgMTM1IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2Rpc2NhcmQuc2dtbAppbmRleCBiZjQ0YzUyM2NhYy4uNjFiOTY3ZjljOWIgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZGlz Y2FyZC5zZ21sCkBAIC0yMSw3ICsyMSw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAg PHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgotRElTQ0FSRCB7IEFMTCB8IFBMQU5TIHwgU0VR VUVOQ0VTIHwgVEVNUE9SQVJZIHwgVEVNUCB9CitESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFV RU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIHwgVkFSSUFCTEVTIH0KIDwvc3lub3BzaXM+CiAgPC9y ZWZzeW5vcHNpc2Rpdj4KIApAQCAtNjYsNiArNjYsMTYgQEAgRElTQ0FSRCB7IEFMTCB8IFBMQU5T IHwgU0VRVUVOQ0VTIHwgVEVNUE9SQVJZIHwgVEVNUCB9CiAgICAgPC9saXN0aXRlbT4KICAgIDwv dmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlZB UklBQkxFUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIFJlc2V0cyB0aGUgdmFsdWUgb2YgYWxsIHNlc3Npb24gdmFyaWFibGVzLiBJZiBhIHZhcmlh YmxlCisgICAgICBpcyBsYXRlciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRvIDxsaXRl cmFsPk5VTEw8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwv dmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPlRF TVBPUkFSWTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+VEVNUDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAg PGxpc3RpdGVtPgpAQCAtOTMsNiArMTAzLDcgQEAgU0VMRUNUIHBnX2Fkdmlzb3J5X3VubG9ja19h bGwoKTsKIERJU0NBUkQgUExBTlM7CiBESVNDQVJEIFRFTVA7CiBESVNDQVJEIFNFUVVFTkNFUzsK K0RJU0NBUkQgVkFSSUFCTEVTOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAgICAgPC9saXN0 aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvZGlzY2FyZC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCmluZGV4IDgxMzM5 YTc1YTUyLi41OTA0YTZjNDkxNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlz Y2FyZC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Rpc2NhcmQuYwpAQCAtMTgsNiArMTgs NyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGlz Y2FyZC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3ByZXBhcmUuaCIKKyNpbmNsdWRlICJjb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKICNp bmNsdWRlICJ1dGlscy9ndWMuaCIKICNpbmNsdWRlICJ1dGlscy9wb3J0YWwuaCIKQEAgLTQ4LDYg KzQ5LDEwIEBAIERpc2NhcmRDb21tYW5kKERpc2NhcmRTdG10ICpzdG10LCBib29sIGlzVG9wTGV2 ZWwpCiAJCQlSZXNldFRlbXBUYWJsZU5hbWVzcGFjZSgpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBE SVNDQVJEX1ZBUklBQkxFUzoKKwkJCVJlc2V0U2Vzc2lvblZhcmlhYmxlcygpOworCQkJYnJlYWs7 CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgRElTQ0FSRCB0YXJn ZXQ6ICVkIiwgc3RtdC0+dGFyZ2V0KTsKIAl9CkBAIC03NSw0ICs4MCw1IEBAIERpc2NhcmRBbGwo Ym9vbCBpc1RvcExldmVsKQogCVJlc2V0UGxhbkNhY2hlKCk7CiAJUmVzZXRUZW1wVGFibGVOYW1l c3BhY2UoKTsKIAlSZXNldFNlcXVlbmNlQ2FjaGVzKCk7CisJUmVzZXRTZXNzaW9uVmFyaWFibGVz KCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggM2JhZmE3 MDE1MDkuLmM3ZjY0MjRiNzZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCkBAIC0xMDMsNyArMTAzLDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVt IGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVHMSwgInBn X3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKIAot CUFzc2VydChzZXNzaW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgb2Yg c2Vzc2lvbiB2YXJpYWJsZXMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAqIHJlY2Vp dmluZyBhbiBpbnZhbGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBWQVJJQUJM RVMgXQorCSAqIGRlc3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLworCWlmICgh c2Vzc2lvbnZhcnMpCisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBu b3Qgc3BlY2lmaWVkLCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAtNjU3LDgg KzY2Myw4IEBAIHBnX2dldF9zZXNzaW9uX3ZhcmlhYmxlc19tZW1vcnkoUEdfRlVOQ1RJT05fQVJH UykKIAogCQkJCS8qCiAJCQkJICogSXQgaXMgYWxzbyBwb3NzaWJsZSB0aGF0IGEgdmFyaWFibGUg aGFzIGJlZW4gZHJvcHBlZCBhbmQKLQkJCQkgKiBzb21lb25lIGNyZWF0ZWQgYSBuZXcgdmFyaWFi bGUgd2l0aCB0aGUgc2FtZSBvYmplY3QgSUQuCi0JCQkJICogVXNlIHRoZSBjYXRhbG9nIGluZm9y bWF0aW9uIG9ubHkgaWYgdGhhdCBpcyBub3QgdGhlIGNhc2UuCisJCQkJICogc29tZW9uZSBjcmVh dGVkIGEgbmV3IHZhcmlhYmxlIHdpdGggdGhlIHNhbWUgb2JqZWN0IElELiBVc2UKKwkJCQkgKiB0 aGUgY2F0YWxvZyBpbmZvcm1hdGlvbiBvbmx5IGlmIHRoYXQgaXMgbm90IHRoZSBjYXNlLgogCQkJ CSAqLwogCQkJCWlmIChzdmFyLT5jcmVhdGVfbHNuID09IHZhcmZvcm0tPnZhcmNyZWF0ZV9sc24p CiAJCQkJewpAQCAtNzAwLDMgKzcwNiwyMyBAQCBwZ19nZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVt b3J5KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXR1cm4gKERhdHVtKSAwOwogfQorCisvKgorICog RmFzdCBkcm9wIG9mIHRoZSBjb21wbGV0ZSBjb250ZW50IG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxl cyBoYXNoIHRhYmxlLCBhbmQKKyAqIGNsZWFudXAgb2YgYW55IGxpc3QgdGhhdCB3b3VsZG4ndCBi ZSByZWxldmFudCBhbnltb3JlLgorICogVGhpcyBpcyB1c2VkIGJ5IHRoZSBESVNDQVJEIFZBUklB QkxFUyAoYW5kIERJU0NBUkQgQUxMKSBjb21tYW5kLgorICovCit2b2lkCitSZXNldFNlc3Npb25W YXJpYWJsZXModm9pZCkKK3sKKwkvKiBkZXN0cm95IGhhc2ggdGFibGUgYW5kIHJlc2V0IHJlbGF0 ZWQgbWVtb3J5IGNvbnRleHQgKi8KKwlpZiAoc2Vzc2lvbnZhcnMpCisJeworCQloYXNoX2Rlc3Ry b3koc2Vzc2lvbnZhcnMpOworCQlzZXNzaW9udmFycyA9IE5VTEw7CisJfQorCisJLyogcmVsZWFz ZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IHNlc3Npb24gdmFyaWFibGVzICovCisJaWYgKFNWYXJpYWJs ZU1lbW9yeUNvbnRleHQgIT0gTlVMTCkKKwkJTWVtb3J5Q29udGV4dFJlc2V0KFNWYXJpYWJsZU1l bW9yeUNvbnRleHQpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBi L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggZGU2YTgyYmI0NjYuLjE3M2U2ZDczOGZh IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKQEAgLTIxMjYsNyArMjEyNiwxMyBAQCBEaXNjYXJkU3RtdDoKIAkJCQkJ bi0+dGFyZ2V0ID0gRElTQ0FSRF9TRVFVRU5DRVM7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJ CQl9CisJCQl8IERJU0NBUkQgVkFSSUFCTEVTCisJCQkJeworCQkJCQlEaXNjYXJkU3RtdCAqbiA9 IG1ha2VOb2RlKERpc2NhcmRTdG10KTsKIAorCQkJCQluLT50YXJnZXQgPSBESVNDQVJEX1ZBUklB QkxFUzsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJOwogCiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMK aW5kZXggYWIwNDAwYzFmN2EuLjdhOTI3MWQwNjM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAtMjk1Myw2 ICsyOTUzLDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQkJY2FzZSBE SVNDQVJEX1NFUVVFTkNFUzoKIAkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRfU0VRVUVOQ0VTOwog CQkJCQlicmVhazsKKwkJCQljYXNlIERJU0NBUkRfVkFSSUFCTEVTOgorCQkJCQl0YWcgPSBDTURU QUdfRElTQ0FSRF9WQVJJQUJMRVM7CisJCQkJCWJyZWFrOwogCQkJCWRlZmF1bHQ6CiAJCQkJCXRh ZyA9IENNRFRBR19VTktOT1dOOwogCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IGRkN2Fl NzNlNTQwLi4wY2I1MGI1ODVlOCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtNDIxMSw3ICs0 MjExLDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAKIC8qIERJU0NB UkQgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJESVNDQVJEIikpCi0JCUNPTVBMRVRFX1dJVEgoIkFM TCIsICJQTEFOUyIsICJTRVFVRU5DRVMiLCAiVEVNUCIpOworCQlDT01QTEVURV9XSVRIKCJBTEwi LCAiUExBTlMiLCAiU0VRVUVOQ0VTIiwgIlRFTVAiLCAiVkFSSUFCTEVTIik7CiAKIC8qIERPICov CiAJZWxzZSBpZiAoTWF0Y2hlcygiRE8iKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuaAppbmRleCAyZWJlODQ3Nzc4OS4uYWMzNmRmY2MxOWIgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTI5LDQgKzI5LDYgQEAgZXh0ZXJuIE9iamVjdEFk ZHJlc3MgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFy U3RtdCAqc3QKIGV4dGVybiB2b2lkIEV4ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwg TGV0U3RtdCAqc3RtdCwgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCiAJCQkJCQkgICBRdWVyeUVudmly b25tZW50ICpxdWVyeUVudiwgUXVlcnlDb21wbGV0aW9uICpxYyk7CiAKK2V4dGVybiB2b2lkIFJl c2V0U2Vzc2lvblZhcmlhYmxlcyh2b2lkKTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgK aW5kZXggODM0YjQ0YTYxMDIuLmIwOWViMzM1MWJjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBA IC00MTA3LDYgKzQxMDcsNyBAQCB0eXBlZGVmIGVudW0gRGlzY2FyZE1vZGUKIAlESVNDQVJEX1BM QU5TLAogCURJU0NBUkRfU0VRVUVOQ0VTLAogCURJU0NBUkRfVEVNUCwKKwlESVNDQVJEX1ZBUklB QkxFUywKIH0gRGlzY2FyZE1vZGU7CiAKIHR5cGVkZWYgc3RydWN0IERpc2NhcmRTdG10CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3Av Y21kdGFnbGlzdC5oCmluZGV4IDIyMDgyYzMwMDA4Li5iZWYwYWMyNTMzMSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0 YWdsaXN0LmgKQEAgLTEzNSw2ICsxMzUsNyBAQCBQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfQUxM LCAiRElTQ0FSRCBBTEwiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19E SVNDQVJEX1BMQU5TLCAiRElTQ0FSRCBQTEFOUyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19D TURUQUcoQ01EVEFHX0RJU0NBUkRfU0VRVUVOQ0VTLCAiRElTQ0FSRCBTRVFVRU5DRVMiLCBmYWxz ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1RFTVAsICJESVNDQVJE IFRFTVAiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1ZB UklBQkxFUywgIkRJU0NBUkQgVkFSSUFCTEVTIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NN RFRBRyhDTURUQUdfRE8sICJETyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0RST1BfQUNDRVNTX01FVEhPRCwgIkRST1AgQUNDRVNTIE1FVEhPRCIsIHRydWUsIGZhbHNl LCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9BR0dSRUdBVEUsICJEUk9QIEFHR1JFR0FU RSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dAppbmRleCA2N2Y3OGE1NDhkYy4uZGZiZTc5MDBj MWMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXNfZG1sLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzX2RtbC5vdXQKQEAgLTQ2NiwzICs0NjYsNTMgQEAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9u IHZhcmlhYmxlIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NwogZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9u IHZhcmlhYmxlIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OAogZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9u IHZhcmlhYmxlIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OQogRFJPUCBST0xFIHJlZ3Jlc3Nfc3ZhcnRl c3RfZG1sX3dyaXRlX29ubHlfcm9sZTsKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfZG1sX2Rpc2Nh cmQ7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFyNTAgQVMgdmFy Y2hhcjsKK0xFVCBzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCA9ICdIZWxsbyc7CitTRUxF Q1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFyNTApOworIHNlc3ZhcjUwIAor LS0tLS0tLS0tLQorIEhlbGxvCisoMSByb3cpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX2dl dF9zZXNzaW9uX3ZhcmlhYmxlc19tZW1vcnkoKSBXSEVSRSBzY2hlbWEgPSAnc3ZhcnRlc3RfZG1s X2Rpc2NhcmQnOworIGNvdW50IAorLS0tLS0tLQorICAgICAxCisoMSByb3cpCisKK0RJU0NBUkQg QUxMOworU0VMRUNUIGNvdW50KCopIEZST00gcGdfZ2V0X3Nlc3Npb25fdmFyaWFibGVzX21lbW9y eSgpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK1NFTEVDVCBWQVJJQUJM RShzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCk7Cisgc2VzdmFyNTAgCistLS0tLS0tLS0t CisgCisoMSByb3cpCisKK0xFVCBzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCA9ICdIZWxs byc7CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19nZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5 KCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDEKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJM RVM7CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19nZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5 KCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworU0VMRUNUIFZBUklBQkxF KHN2YXJ0ZXN0X2RtbF9kaXNjYXJkLnNlc3ZhcjUwKTsKKyBzZXN2YXI1MCAKKy0tLS0tLS0tLS0K KyAKKygxIHJvdykKKworRFJPUCBTQ0hFTUEgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQgQ0FTQ0FERTsK K05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdF9kbWxf ZGlzY2FyZC5zZXN2YXI1MApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXNfZG1sLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFi bGVzX2RtbC5zcWwKaW5kZXggMmM4ZDZjM2E0OTcuLmIwYWVlYjg2NWMyIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwKQEAgLTM0OCwzICszNDgs MjcgQEAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OSk7CiAKIERST1AgU0NI RU1BIHN2YXJ0ZXN0X2RtbCBDQVNDQURFOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1s X3dyaXRlX29ubHlfcm9sZTsKKworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdF9kbWxfZGlzY2FyZDsK KworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbF9kaXNjYXJkLnNlc3ZhcjUwIEFTIHZhcmNo YXI7CitMRVQgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFyNTAgPSAnSGVsbG8nOworU0VMRUNU IFZBUklBQkxFKHN2YXJ0ZXN0X2RtbF9kaXNjYXJkLnNlc3ZhcjUwKTsKKworU0VMRUNUIGNvdW50 KCopIEZST00gcGdfZ2V0X3Nlc3Npb25fdmFyaWFibGVzX21lbW9yeSgpIFdIRVJFIHNjaGVtYSA9 ICdzdmFydGVzdF9kbWxfZGlzY2FyZCc7CisKK0RJU0NBUkQgQUxMOworCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ19nZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5KCk7CisKK1NFTEVDVCBWQVJJ QUJMRShzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCk7CitMRVQgc3ZhcnRlc3RfZG1sX2Rp c2NhcmQuc2VzdmFyNTAgPSAnSGVsbG8nOworCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19nZXRf c2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5KCk7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCitTRUxF Q1QgY291bnQoKikgRlJPTSBwZ19nZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5KCk7CisKK1NF TEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCk7CitEUk9QIFNDSEVN QSBzdmFydGVzdF9kbWxfZGlzY2FyZCBDQVNDQURFOwotLSAKMi41MS4xCgo= --0000000000001c96f9064262bb7f Content-Type: text/x-patch; charset="UTF-8"; name="v20251030-0011-LET-command-assign-a-result-of-expression-to-the-ses.patch" Content-Disposition: attachment; filename="v20251030-0011-LET-command-assign-a-result-of-expression-to-the-ses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhdn0dat4 RnJvbSBlOGRlOWZjMTQyNTQ5YmNkMDc3MDlmZjY3MWY5NWJjM2IyNmI4NzYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IE1vbiwgMiBKdW4gMjAyNSAwODoyOTozNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTEv MTVdIExFVCBjb21tYW5kIC0gYXNzaWduIGEgcmVzdWx0IG9mIGV4cHJlc3Npb24gdG8gdGhlCiBz ZXNzaW9uIHZhcmlhYmxlCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUaGUgdmFs dWUgaXMgYXNzaWduZWQgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgdXN1YWxseSBieSBTRVQgY29tbWFu ZC4gVW5mb3J0dW5hdGVseQp0aGVyZSBhcmUgdHdvIHJlYXNvbnMgd2h5IFNFVCBzaG91bGQgbm90 IGJlIHVzZWQgZm9yIHRoaXMgcHVycG9zZSBpbiBQb3N0Z3Jlcy4KCjEuIFVzaW5nIGFfZXhwciBp bnNpZGUgZ2VuZXJpY19zZXQgcmFtIHJ1bGUgcHJvZHVjZXMgcmVkdWNlIGNvbmZsaWN0cywgc28g aXQgbmVlZHMKwqAgwqB0b3RhbCByZWltcGxlbWVudGF0aW9uIG9mIHJlbGF0ZWQgZ3JhbSBydWxl cy4KCjIuIFNFVCBpcyBubyBwbGFuIGNvbW1hbmQgLSBzbyBpdCBkb2Vzbid0IHN1cHBvcnQgdXNh Z2Ugb2YgcGFyYW1ldGVycy4KCjMuIEV4Y2VwdGluZyBpbXBsZW1lbnRhdGlvbiBpc3N1ZXMsIHRo ZXJlIGlzIGZhY3QsIHNvIGlmIHdlIHVzZSBTRVQgY29tbWFuZArCoCDCoGZvciBhc3NpZ25pbmcg dmFsdWVzIHRvIHNlc3Npb24gdmFyaWFibGVzLCB0aGVuIHRoZXJlIGNhbiBiZSBjb2xsaXNpb25z CsKgIMKgYmV0d2VlbiBzZXNzaW9uIHZhcmlhYmxlcyBhbmQgR1VDLCBhbmQgdGhlbiB3ZSBuZWVk IHNvbWUgY29uY2VwdHMsIGhvdwrCoCDCoHRoZXNlIGNvbGxpc2lvbnMgc2hvdWxkIGJlIHNvbHZl ZCwgb3IgaG93IHRvIHByb3RlY3Qgc2VsZiBhZ2FpbnN0IHRoZXNlCsKgIMKgY29sbGlzaW9ucy4g V2l0aCB0aGUgZGVkaWNhdGVkIGNvbW1hbmQsIHRoZSBjb2xsaXNpb25zIGJldHdlZW4gR1VDIGFu ZCBzZXNzaW9uCsKgIMKgdmFyaWFibGVzIGFyZSBub3QgcG9zc2libGUuCgpUaGUgY29tbWFuZCBM RVQgaXMgZXhlY3V0ZWQgYXMgdXN1YWwgcXVlcnkgZXhlY3V0aW9uLiBUaGUgcmVzdWx0IGlzIHN0 b3JlZAp0byB0aGUgdGFyZ2V0IHNlc3Npb24gdmFyaWFibGUgKHJlc3VsdFZhcmlhYmxlKSBieSB1 c2luZyBWYXJpYWJsZURlc3RSZWNlaXZlci4KCkltcGxlbWVudGF0aW9ucyBvZiBFWFBMQUlOIExF VCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cyBhcmUgbm90IHN1cHBvcnRlZApub3cuIFBvc3Rw b25lZCB0byBuZXh0IHN0ZXAgZHVlIHJlZHVjaW5nIHBhdGNoIHNpemUuCi0tLQogZG9jL3NyYy9z Z21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI5ICsrCiBkb2Mvc3JjL3Nn bWwvcmVmL2FsbGZpbGVzLnNnbWwgICAgICAgICAgICAgICAgfCAgIDEgKwogZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sICAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAgNSArLQogZG9jL3NyYy9zZ21sL3Jl Zi9kcm9wX3ZhcmlhYmxlLnNnbWwgICAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9yZWYv bGV0LnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICA5NiArKysrKysKIGRvYy9zcmMvc2dtbC9y ZWZlcmVuY2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAgODYgKysrKysrCiBzcmMvYmFja2VuZC9l eGVjdXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAgMjMgKy0KIHNyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAxMCArCiBzcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubmVyLmMgICAgICAgICAgfCAgMjQgKysKIHNyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3NldHJlZnMuYyAgICAgICAgICB8ICAzNCArKy0KIHNyYy9iYWNrZW5kL3BhcnNl ci9hbmFseXplLmMgICAgICAgICAgICAgICAgICB8IDIzNyArKysrKysrKysrKysrKysKIHNyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAzOSArKy0KIHNyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jICAgICAgICAgICAgICAgICAgICB8ICAxNSArCiBzcmMvYmFj a2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYyAgICAgICAgICAgfCAgMTEgKwogc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDEyICstCiBzcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgIDUgKwogc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDE1ICsKIHNyYy9pbmNsdWRlL25v ZGVzL3BhdGhub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvaW5jbHVkZS9ub2Rl cy9wbGFubm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDcgKwogc3JjL2luY2x1ZGUvbm9kZXMv cHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9pbmNsdWRlL3BhcnNlci9r d2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS90Y29wL2NtZHRh Z2xpc3QuaCAgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzX2RtbC5vdXQgICAgICAgIHwgMjc3ICsrKysrKysrKysrKysrKysrKwogLi4uL3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwgICAgIHwgMTg5ICsrKysrKysrKysrKwog c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAxICsKIDI3 IGZpbGVzIGNoYW5nZWQsIDExMjQgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbAoKZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCAyNjU1ZmE1 ZTdjZS4uYmRmMDBiMzU1MDggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTU0MDMsMTAgKzU0MDMsMzkgQEAgRVhQTEFJTiBT RUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVudCBXSEVSRSBsb2dkYXRlICZndDs9IERBVEUg JzIwMDgtMDEtMDEnOwogICAgIHNlc3Npb24gdmFyaWFibGUgaWRlbnRpZmllciwgYW5kIGNhbiBi ZSB1c2VkIG9ubHkgZm9yIHNlc3Npb24gdmFyaWFibGUKICAgICBpZGVudGlmaWVyLiBUaGUgc3Bl Y2lhbCBzeW50YXggZm9yIGFjY2Vzc2luZyBzZXNzaW9uIHZhcmlhYmxlcyByZW1vdmVzCiAgICAg cmlzayBvZiBjb2xsaXNpb25zIGJldHdlZW4gdmFyaWFibGUgaWRlbnRpZmllcnMgYW5kIGNvbHVt biBuYW1lcy4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIHZhbHVlIG9mIGEgc2Vz c2lvbiB2YXJpYWJsZSBpcyBzZXQgd2l0aCB0aGUgU1FMIHN0YXRlbWVudAorICAgIDxjb21tYW5k PkxFVDwvY29tbWFuZD4uICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSBy ZXRyaWV2ZWQKKyAgICB3aXRoIHRoZSBTUUwgc3RhdGVtZW50IDxjb21tYW5kPlNFTEVDVDwvY29t bWFuZD4uCiA8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBkYXRlOwor TEVUIHZhcjEgPSBjdXJyZW50X2RhdGU7CitTRUxFQ1QgVkFSSUFCTEUodmFyMSk7Cis8L3Byb2dy YW1saXN0aW5nPgorCisgICAgb3IKKworPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxF IHB1YmxpYy5jdXJyZW50X3VzZXJfaWQgQVMgaW50ZWdlcjsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJ QUJMRSBwdWJsaWMuY3VycmVudF91c2VyX2lkIFRPIFBVQkxJQzsKK0xFVCBjdXJyZW50X3VzZXJf aWQgPSAoU0VMRUNUIGlkIEZST00gdXNlcnMgV0hFUkUgdXNlbmFtZSA9IHNlc3Npb25fdXNlcik7 CiBTRUxFQ1QgVkFSSUFCTEUoY3VycmVudF91c2VyX2lkKTsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAg ICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFi bGUgaXMgbG9jYWwgdG8gdGhlIGN1cnJlbnQgc2Vzc2lvbi4gUmV0cmlldmluZworICAgIGEgdmFy aWFibGUncyB2YWx1ZSByZXR1cm5zIGEgPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4sIHVubGVzcyBp dHMgdmFsdWUgaGFzCisgICAgYmVlbiBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJl bnQgc2Vzc2lvbiB1c2luZyB0aGUKKyAgICA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQu ICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IHRyYW5zYWN0aW9uYWw6CisgICAgYW55IGNoYW5n ZXMgbWFkZSB0byB0aGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGluIGEgdHJhbnNhY3Rp b24gd29uJ3QKKyAgICBiZSB1bmRvbmUgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNr IChqdXN0IGxpa2UgdmFyaWFibGVzIGluCisgICAgcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vz c2lvbiB2YXJpYWJsZXMgdGhlbXNlbHZlcyBhcmUgcGVyc2lzdGVudCwgYnV0CisgICAgdGhlaXIg dmFsdWVzIGFyZSBuZWl0aGVyIHBlcnNpc3RlbnQgbm9yIHNoYXJlZCAobGlrZSB0aGUgY29udGVu dCBvZgorICAgIHRlbXBvcmFyeSB0YWJsZXMpLgorICAgPC9wYXJhPgogICA8L3NlY3QxPgogCiAg PHNlY3QxIGlkPSJkZGwtb3RoZXJzIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWxs ZmlsZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAppbmRleCAyZjY3ZGUz ZTIxYi4uY2MzYmQ1YWI1NDAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTE1OCw2ICsxNTgs NyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRp cmVjdG9yeS4KIDwhRU5USVRZIGdyYW50ICAgICAgICAgICAgICBTWVNURU0gImdyYW50LnNnbWwi PgogPCFFTlRJVFkgaW1wb3J0Rm9yZWlnblNjaGVtYSBTWVNURU0gImltcG9ydF9mb3JlaWduX3Nj aGVtYS5zZ21sIj4KIDwhRU5USVRZIGluc2VydCAgICAgICAgICAgICBTWVNURU0gImluc2VydC5z Z21sIj4KKzwhRU5USVRZIGxldCAgICAgICAgICAgICAgICBTWVNURU0gImxldC5zZ21sIj4KIDwh RU5USVRZIGxpc3RlbiAgICAgICAgICAgICBTWVNURU0gImxpc3Rlbi5zZ21sIj4KIDwhRU5USVRZ IGxvYWQgICAgICAgICAgICAgICBTWVNURU0gImxvYWQuc2dtbCI+CiA8IUVOVElUWSBsb2NrICAg ICAgICAgICAgICAgU1lTVEVNICJsb2NrLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJs ZS5zZ21sCmluZGV4IDk2ZDI1ODY0MjNlLi4yMjFhNjk5NDY5YiAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfdmFyaWFibGUuc2dtbApAQCAtMTczLDYgKzE3Myw3IEBAIEFMVEVSIFZBUklBQkxFIGJvbyBT RVQgU0NIRU1BIHByaXZhdGU7CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVt YmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgogICAgPG1l bWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVt YmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1sZXQiLz48L21lbWJlcj4KICAgPC9zaW1wbGVsaXN0Pgog IDwvcmVmc2VjdDE+CiA8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNn bWwKaW5kZXggNmU5ODhmMmU0NzIuLjQzMDAwY2UwMDRkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3ZhcmlhYmxlLnNnbWwKQEAgLTEyMCw5ICsxMjAsMTEgQEAgQ1JFQVRFIFZBUklBQkxFIFsgSUYg Tk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWIKICAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KIAogICA8cGFyYT4KLSAgIENyZWF0ZSBhbiBk YXRlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46CisgICBDcmVhdGUg YSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPnZhcjE8L2xpdGVyYWw+IG9mIGRhdGEgdHlwZSBk YXRlOgogPHByb2dyYW1saXN0aW5nPgogQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsKK0xF VCB2YXIxID0gY3VycmVudF9kYXRlOworU0VMRUNUIFZBUklBQkxFKHZhcjEpOwogPC9wcm9ncmFt bGlzdGluZz4KICAgPC9wYXJhPgogCkBAIC0xNDMsNiArMTQ1LDcgQEAgQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgZGF0ZTsKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KICAgIDxtZW1iZXI+ PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KICAgIDxtZW1iZXI+ PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48 eHJlZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwvc2ltcGxlbGlzdD4KICA8L3Jl ZnNlY3QxPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCmluZGV4IDViZGIzNTYwZjBi Li42Nzk4OGI1ZmNkOCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxl LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKQEAgLTExMSw2 ICsxMTEsNyBAQCBEUk9QIFZBUklBQkxFIHZhcjE7CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGlu ZSI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1i ZXI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVt YmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwv c2ltcGxlbGlzdD4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L2xldC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uMDBmOWJlYTkxZmUKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mv c3JjL3NnbWwvcmVmL2xldC5zZ21sCkBAIC0wLDAgKzEsOTYgQEAKKzwhLS0KK2RvYy9zcmMvc2dt bC9yZWYvbGV0LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRy eSBpZD0ic3FsLWxldCI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtbGV0Ij4KKyAgPHByaW1hcnk+ TEVUPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1hcnk+ c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFyeT5jaGFuZ2luZzwvc2Vjb25k YXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkxFVDwv cmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5m bz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisK KyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+TEVUPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5j aGFuZ2UgYSBzZXNzaW9uIHZhcmlhYmxlJ3MgdmFsdWU8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1l ZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorTEVUIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3ZhcmlhYmxlPC9yZXBsYWNlYWJsZT4gPSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3FsX2V4cHJlc3Npb248L3JlcGxhY2VhYmxlPgorPC9z eW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVz Y3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkxFVDwvY29tbWFu ZD4gY29tbWFuZCBhc3NpZ25zIGEgdmFsdWUgdG8gdGhlIHNwZWNpZmllZCBzZXNzaW9uCisgICB2 YXJpYWJsZS4KKyAgPC9wYXJhPgorCisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRp dGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3Zh cmlhYmxlPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5Pgor ICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zcWxfZXhwcmVzc2lvbjwv cmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBB biBhcmJpdHJhcnkgU1FMIGV4cHJlc3Npb24uICBUaGUgcmVzdWx0IG11c3QgYmUgb2YgYSBkYXRh IHR5cGUgdGhhdCBjYW4KKyAgICAgIGJlIGNhc3QgdG8gdGhlIHR5cGUgb2YgdGhlIHNlc3Npb24g dmFyaWFibGUgaW4gYW4gYXNzaWdubWVudC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgor CisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorPHByb2dyYW1saXN0aW5n PgorQ1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIGludGVnZXI7CitMRVQgbXl2YXIgPSAxMDsKK0xF VCBteXZhciA9IChTRUxFQ1Qgc3VtKHZhbCkgRlJPTSB0YWIpOworPC9wcm9ncmFtbGlzdGluZz4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0 bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBpcyBhIDxwcm9k dWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KKyAgIGV4dGVuc2lvbi4KKyAgPC9wYXJh PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+ CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2Vu ZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2Vu ZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtl bmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVm c2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCmluZGV4IDI1NTc4ZjM5NDZjLi4xM2U0 YWRjNWRmMyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbApAQCAtMTg2LDYgKzE4Niw3IEBACiAgICAmZ3JhbnQ7 CiAgICAmaW1wb3J0Rm9yZWlnblNjaGVtYTsKICAgICZpbnNlcnQ7CisgICAmbGV0OwogICAgJmxp c3RlbjsKICAgICZsb2FkOwogICAgJmxvY2s7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmMKaW5kZXggZGJjMDU0Nzk1YmIuLjliZGM5MmJmZDMwIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0xOSwxNSArMTksMjIgQEAKICNpbmNsdWRlICJj YXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKKyNpbmNsdWRlICJleGVjdXRvci9leGVj ZGVzYy5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCisjaW5jbHVkZSAiZXhlY3V0 b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRl ICJub2Rlcy9wbGFubm9kZXMuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgorI2lu Y2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3Iu aCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKKyNpbmNsdWRlICJ0Y29wL3Rjb3Bwcm90Lmgi CiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXR1bS5oIgog I2luY2x1ZGUgInV0aWxzL2ludmFsLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAj aW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKKyNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCiAj aW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIAogLyoKQEAgLTUxNCwzICs1MjEsODIgQEAgQ3Jl YXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3Rt dCkKIAogCXJldHVybiB2YXJpYWJsZTsKIH0KKworLyoKKyAqIEFzc2lnbiB0aGUgcmVzdWx0IG9m IHRoZSBldmFsdWF0ZWQgZXhwcmVzc2lvbiB0byB0aGUgc2Vzc2lvbiB2YXJpYWJsZQorICovCit2 b2lkCitFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkgICBMZXRTdG10ICpz dG10LAorCQkJICAgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCisJCQkgICBRdWVyeUVudmlyb25tZW50 ICpxdWVyeUVudiwKKwkJCSAgIFF1ZXJ5Q29tcGxldGlvbiAqcWMpCit7CisJUXVlcnkJICAgKnF1 ZXJ5ID0gY2FzdE5vZGUoUXVlcnksIHN0bXQtPnF1ZXJ5KTsKKwlMaXN0CSAgICpyZXdyaXR0ZW47 CisJRGVzdFJlY2VpdmVyICpkZXN0OworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJUGxhbm5lZFN0 bXQgKnBsYW47CisJUXVlcnlEZXNjICAqcXVlcnlEZXNjOworCU9pZAkJCXZhcmlkID0gcXVlcnkt PnJlc3VsdFZhcmlhYmxlOworCisJQXNzZXJ0KE9pZElzVmFsaWQodmFyaWQpKTsKKworCS8qIGRv IHdlIGhhdmUgcGVybWlzc2lvbiB0byB3cml0ZSB0byB0aGUgc2Vzc2lvbiB2YXJpYWJsZT8gKi8K KwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwg R2V0VXNlcklkKCksIEFDTF9VUERBVEUpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0sp CisJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLCBnZXRfc2Vzc2lv bl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisKKwkvKiBjcmVhdGUgYSBkZXN0IHJlY2VpdmVyIGZv ciBMRVQgKi8KKwlkZXN0ID0gQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIodmFyaWQpOworCisJ LyogcnVuIHRoZSBxdWVyeSByZXdyaXRlciAqLworCXF1ZXJ5ID0gY29weU9iamVjdChxdWVyeSk7 CisKKwlyZXdyaXR0ZW4gPSBRdWVyeVJld3JpdGUocXVlcnkpOworCisJQXNzZXJ0KGxpc3RfbGVu Z3RoKHJld3JpdHRlbikgPT0gMSk7CisKKwlxdWVyeSA9IGxpbml0aWFsX25vZGUoUXVlcnksIHJl d3JpdHRlbik7CisJQXNzZXJ0KHF1ZXJ5LT5jb21tYW5kVHlwZSA9PSBDTURfU0VMRUNUKTsKKwor CS8qIHBsYW4gdGhlIHF1ZXJ5ICovCisJcGxhbiA9IHBnX3BsYW5fcXVlcnkocXVlcnksIHBzdGF0 ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJIENVUlNPUl9PUFRfUEFSQUxMRUxfT0ssIHBhcmFtcywg TlVMTCk7CisKKwkvKgorCSAqIFVzZSBhIHNuYXBzaG90IHdpdGggYW4gdXBkYXRlZCBjb21tYW5k IElEIHRvIGVuc3VyZSB0aGlzIHF1ZXJ5IHNlZXMgdGhlCisJICogcmVzdWx0cyBvZiBhbnkgcHJl dmlvdXNseSBleGVjdXRlZCBxdWVyaWVzLiAgKFRoaXMgY291bGQgb25seSBtYXR0ZXIgaWYKKwkg KiB0aGUgcGxhbm5lciBleGVjdXRlZCBhbiBhbGxlZ2VkbHktc3RhYmxlIGZ1bmN0aW9uIHRoYXQg Y2hhbmdlZCB0aGUKKwkgKiBkYXRhYmFzZSBjb250ZW50cywgYnV0IGxldCdzIGRvIGl0IGFueXdh eSB0byBiZSBwYXJhbGxlbCB0byB0aGUgRVhQTEFJTgorCSAqIGNvZGUgcGF0aC4pCisJICovCisJ UHVzaENvcGllZFNuYXBzaG90KEdldEFjdGl2ZVNuYXBzaG90KCkpOworCVVwZGF0ZUFjdGl2ZVNu YXBzaG90Q29tbWFuZElkKCk7CisKKwkvKiBjcmVhdGUgYSBRdWVyeURlc2MsIHJlZGlyZWN0aW5n IG91dHB1dCB0byBvdXIgdHVwbGUgcmVjZWl2ZXIgKi8KKwlxdWVyeURlc2MgPSBDcmVhdGVRdWVy eURlc2MocGxhbiwgcHN0YXRlLT5wX3NvdXJjZXRleHQsCisJCQkJCQkJCUdldEFjdGl2ZVNuYXBz aG90KCksIEludmFsaWRTbmFwc2hvdCwKKwkJCQkJCQkJZGVzdCwgcGFyYW1zLCBxdWVyeUVudiwg MCk7CisKKwkvKiBjYWxsIEV4ZWN1dG9yU3RhcnQgdG8gcHJlcGFyZSB0aGUgcGxhbiBmb3IgZXhl Y3V0aW9uICovCisJRXhlY3V0b3JTdGFydChxdWVyeURlc2MsIDApOworCisJLyoKKwkgKiBSdW4g dGhlIHBsYW4gdG8gY29tcGxldGlvbi4gIFRoZSByZXN1bHQgc2hvdWxkIGJlIG9ubHkgb25lIHJv dy4gIFRvCisJICogY2hlY2sgaWYgdGhlcmUgYXJlIHRvbyBtYW55IHJlc3VsdCByb3dzLCB3ZSB0 cnkgdG8gZmV0Y2ggdHdvLgorCSAqLworCUV4ZWN1dG9yUnVuKHF1ZXJ5RGVzYywgRm9yd2FyZFNj YW5EaXJlY3Rpb24sIDJMKTsKKworCS8qIHNhdmUgdGhlIHJvd2NvdW50IGlmIHdlJ3JlIGdpdmVu IGEgUXVlcnlDb21wbGV0aW9uIHRvIGZpbGwgKi8KKwlpZiAocWMpCisJCVNldFF1ZXJ5Q29tcGxl dGlvbihxYywgQ01EVEFHX0xFVCwgcXVlcnlEZXNjLT5lc3RhdGUtPmVzX3Byb2Nlc3NlZCk7CisK KwkvKiBhbmQgY2xlYW4gdXAgKi8KKwlFeGVjdXRvckZpbmlzaChxdWVyeURlc2MpOworCUV4ZWN1 dG9yRW5kKHF1ZXJ5RGVzYyk7CisKKwlGcmVlUXVlcnlEZXNjKHF1ZXJ5RGVzYyk7CisKKwlQb3BB Y3RpdmVTbmFwc2hvdCgpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggNGM1YjEwMWM4 ZWUuLjc2ZjQ3OGZmNTgwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFp bi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKQEAgLTIzNCwxMyArMjM0 LDI0IEBAIHN0YW5kYXJkX0V4ZWN1dG9yU3RhcnQoUXVlcnlEZXNjICpxdWVyeURlc2MsIGludCBl ZmxhZ3MpCiAJCS8qIGZpbGwgdGhlIGFycmF5ICovCiAJCWZvcmVhY2hfb2lkKHZhcmlkLCBxdWVy eURlc2MtPnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQogCQl7Ci0JCQlBY2xSZXN1bHQJ YWNscmVzdWx0OworCQkJLyoKKwkJCSAqIFBlcm1pc3Npb24gY2hlY2sgc2hvdWxkIGJlIGV4ZWN1 dGVkIG9uIGFsbCBleHBsaWNpdGx5IHVzZWQKKwkJCSAqIHZhcmlhYmxlcyBpbiB0aGUgcXVlcnku IEZvciBpbXBsaWNpdGx5IHVzZWQgdmFyaWFibGUgKGxpa2UgYmFzZQorCQkJICogbm9kZSBvZiBh c3NpZ25tZW50IGluZGlyZWN0KSB3ZSBjYW5ub3QgZG8gcGVybWlzc2lvbiBjaGVjaywKKwkJCSAq IGJlY2F1c2Ugd2UgbmVlZCByZWFkIHRoZSB2YWx1ZSAoYW5kIHVzZXIgY2FuIGhhdmUgb25seSBV UERBVEUKKwkJCSAqIHZhcmlhYmxlKS4gSW4gdGhpcyBjYXNlIHRoZSBwZXJtaXNzaW9uIGNoZWNr IGlzIGV4ZWN1dGVkIGluCisJCQkgKiB3cml0ZSB0aW1lLgorCQkJICovCisJCQlpZiAodmFyaWQg IT0gcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+ZXhjbFNlbGVjdFBlcm1DaGVja1ZhcmlkKQorCQkJ eworCQkJCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CiAKLQkJCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xj aGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAotCQkJCQkJCQkJCUdldFVzZXJJZCgpLCBB Q0xfU0VMRUNUKTsKLQkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCi0JCQkJYWNsY2hl Y2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsCi0JCQkJCQkJICAgZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCQkJCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVj ayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJCQlHZXRVc2VySWQoKSwgQUNM X1NFTEVDVCk7CisJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQkJYWNsY2hl Y2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsCisJCQkJCQkJCSAgIGdldF9zZXNz aW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsKKwkJCX0KIAogCQkJZXN0YXRlLT5lc19zZXNzaW9u X3ZhcmlhYmxlc1tpXS52YWx1ZSA9CiAJCQkJR2V0U2Vzc2lvblZhcmlhYmxlKHZhcmlkLApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rl cy9ub2RlRnVuY3MuYwppbmRleCBjNzYxZmRlNmFjYi4uMGQ1NDYxY2JkNmIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25v ZGVGdW5jcy5jCkBAIC00Mzc0LDYgKzQzNzQsMTYgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxr ZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOwor CQljYXNlIFRfTGV0U3RtdDoKKwkJCXsKKwkJCQlMZXRTdG10ICAgICpzdG10ID0gKExldFN0bXQg Kikgbm9kZTsKKworCQkJCWlmIChXQUxLKHN0bXQtPnRhcmdldCkpCisJCQkJCXJldHVybiB0cnVl OworCQkJCWlmIChXQUxLKHN0bXQtPnF1ZXJ5KSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQl9CisJ CQlicmVhazsKIAkJY2FzZSBUX1BMQXNzaWduU3RtdDoKIAkJCXsKIAkJCQlQTEFzc2lnblN0bXQg KnN0bXQgPSAoUExBc3NpZ25TdG10ICopIG5vZGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFu bmVyLmMKaW5kZXggY2MwM2IwMzExYTQuLjhkY2NkNTA3MzdhIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vcGxhbm5lci5jCkBAIC0zNzYsNiArMzc2LDIwIEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVl cnkgKnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGludCBjdXJzb3JPcHRpb25zLAog CWdsb2ItPnJlbF9ub3RudWxsYXR0c19oYXNoID0gTlVMTDsKIAlnbG9iLT5zZXNzaW9uVmFyaWFi bGVzID0gTklMOwogCisJLyoKKwkgKiBUaGUgKHNlc3Npb24pIHJlc3VsdCB2YXJpYWJsZSBzaG91 bGQgYmUgc3RvcmVkIHRvIGdsb2JhbCwgYmVjYXVzZSBpdCBpcworCSAqIG5vdCBzZXQgaW4gc3Vi cXVlcnkuICBXaGVuIHRoaXMgdmFyaWFibGUgaXMgdXNlZCBvdGhlciB0aGFuIGluIGJhc2UKKwkg KiBub2RlIG9mIGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24sIHdlIG5lZWQgdG8gY2hlY2sgdGhlIGFj Y2VzcyByaWdodHMgKGFuZAorCSAqIHRoZW4gd2UgbmVlZCB0byBkZXRlY3QgdGhpcyBzaXR1YXRp b24pLiBUaGUgdmFyaWFibGUgdXNlZCBsaWtlIGJhc2UKKwkgKiBub2RlIGNhbm5vdCBiZSBkaWZm ZXJlbnQgdGhhbiB0YXJnZXQgKHJlc3VsdCkgdmFyaWFibGUuIEJlY2F1c2Ugd2Uga25vdworCSAq IHRoZSByZXN1bHQgdmFyaWFibGUgYmVmb3JlIHBsYW5uZXIgaW52b2NhdGlvbiwgd2UgY2FuIHNp bXBseSBzZWFyY2ggb2YKKwkgKiB1c2FnZSBqdXN0IHRoaXMgdmFyaWFibGUsIGFuZCB3ZSBkb24n dCBuZWVkIHRvIHRvIHdhaXQgdW50aWwgdGhlIGVuZCBvZgorCSAqIHBsYW5uaW5nIHdoZW4gd2Ug a25vdyBiYXNlbm9kZVNlc3Npb25WYXJpZC4KKwkgKi8KKwlnbG9iLT5yZXN1bHRWYXJpYWJsZSA9 IHBhcnNlLT5yZXN1bHRWYXJpYWJsZTsKKwlnbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCA9IElu dmFsaWRPaWQ7CisJZ2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyU2VsZWN0Q2hlY2sgPSBmYWxzZTsK KwogCS8qCiAJICogQXNzZXNzIHdoZXRoZXIgaXQncyBmZWFzaWJsZSB0byB1c2UgcGFyYWxsZWwg bW9kZSBmb3IgdGhpcyBxdWVyeS4gV2UKIAkgKiBjYW4ndCBkbyB0aGlzIGluIGEgc3RhbmRhbG9u ZSBiYWNrZW5kLCBvciBpZiB0aGUgY29tbWFuZCB3aWxsIHRyeSB0bwpAQCAtNjIxLDYgKzYzNSwx NiBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3Ry aW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAogCXJlc3VsdC0+c2Vzc2lvblZhcmlhYmxlcyA9IGds b2ItPnNlc3Npb25WYXJpYWJsZXM7CiAKKwkvKgorCSAqIFRoZSBzZXNzaW9uIHZhcmlhYmxlIHVz ZWQgKGFuZCBvbmx5IHVzZWQpIGxpa2UgYmFzZSBub2RlIGZvciBhc3NpZ25lbW50CisJICogaW5k aXJlY3Rpb24gc2hvdWxkIGJlIGV4Y2x1ZGVkIGZyb20gcGVybWlzc2lvbiBjaGVjay4KKwkgKi8K KwlpZiAoT2lkSXNWYWxpZChnbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCkgJiYKKwkJKCFnbG9i LT5iYXNlbm9kZVNlc3Npb25WYXJTZWxlY3RDaGVjaykpCisJCXJlc3VsdC0+ZXhjbFNlbGVjdFBl cm1DaGVja1ZhcmlkID0gZ2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQ7CisJZWxzZQorCQlyZXN1 bHQtPmV4Y2xTZWxlY3RQZXJtQ2hlY2tWYXJpZCA9IEludmFsaWRPaWQ7CisKIAlyZXN1bHQtPnN0 bXRfbG9jYXRpb24gPSBwYXJzZS0+c3RtdF9sb2NhdGlvbjsKIAlyZXN1bHQtPnN0bXRfbGVuID0g cGFyc2UtPnN0bXRfbGVuOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxh bi9zZXRyZWZzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKaW5kZXgg YTEyYTNjNjA5NGMuLjBjYmUwOTgzNGM1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9zZXRyZWZzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVm cy5jCkBAIC0yMjQ5LDYgKzIyNDksMjcgQEAgZml4X3BhcmFtX25vZGUoUGxhbm5lckluZm8gKnJv b3QsIFBhcmFtICpwKQogCQkJcC0+cGFyYW1pZCA9IG47CiAJCX0KIAorCQkvKgorCQkgKiBXZSBk byBTRUxFQ1QgcGVybWlzc2lvbiBjaGVjayBvZiBhbGwgdmFyaWFibGVzIHVzZWQgYnkgdGhlIHF1 ZXJ5CisJCSAqIGV4Y2x1ZGluZyB0aGUgdmFyaWFibGUgdGhhdCBpcyB1c2VkIG9ubHkgYXMgYmFz ZSBub2RlIG9mIGFzc2lnbm1lbnQKKwkJICogaW5kaXJlY3Rpb24uIFRoZSB2YXJpYWJsZSBpZCBh c3NpZ25lZCB0byB0aGlzIHBhcmFtIHNob3VsZCBiZSBzYW1lCisJCSAqIGxpa2UgcmVzdWx0VmFy aWFibGUgaWQsIGFuZCB0aGlzIHBhcmFtIHNob3VsZCBiZSB1c2VkIG9ubHkgb25jZSBpbgorCQkg KiBxdWVyeS4gV2hlbiB0aGUgdmFyaWFibGUgaXMgcmVmZXJlbmNlZCBieSBhbnkgb3RoZXIgcGFy YW0sIHdlCisJCSAqIHNob3VsZCB0byBkbyBTRUxFQ1QgcGVybWlzc2lvbiBjaGVjayBmb3IgdGhp cyB2YXJpYWJsZSB0b28uCisJCSAqLworCQlpZiAocC0+cGFyYW1iYXNlbm9kZSkKKwkJeworCQkJ QXNzZXJ0KCFPaWRJc1ZhbGlkKHJvb3QtPmdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkKSk7CisJ CQlBc3NlcnQocm9vdC0+Z2xvYi0+cmVzdWx0VmFyaWFibGUgPT0gcC0+cGFyYW12YXJpZCk7CisK KwkJCXJvb3QtPmdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkID0gcC0+cGFyYW12YXJpZDsKKwkJ fQorCQllbHNlCisJCXsKKwkJCWlmIChwLT5wYXJhbXZhcmlkID09IHJvb3QtPmdsb2ItPnJlc3Vs dFZhcmlhYmxlKQorCQkJCXJvb3QtPmdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhclNlbGVjdENoZWNr ID0gdHJ1ZTsKKwkJfQorCiAJCXJldHVybiAoTm9kZSAqKSBwOwogCX0KIApAQCAtMzczNCw3ICsz NzU1LDcgQEAgcmVjb3JkX3BsYW5fdHlwZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBP aWQgdHlwaWQpCiAKIC8qCiAgKiBSZWNvcmQgZGVwZW5kZW5jeSBvbiBhIHNlc3Npb24gdmFyaWFi bGUuICBUaGUgdmFyaWFibGUgY2FuIGJlIHVzZWQgYXMgYQotICogc2Vzc2lvbiB2YXJpYWJsZSBp biBhbiBleHByZXNzaW9uIGxpc3QuCisgKiBzZXNzaW9uIHZhcmlhYmxlIGluIGFuIGV4cHJlc3Np b24gbGlzdCwgb3IgYXMgdGhlIHRhcmdldCBvZiBhIExFVCBzdGF0ZW1lbnQuCiAgKi8KIHN0YXRp YyB2b2lkCiByZWNvcmRfcGxhbl92YXJpYWJsZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290 LCBPaWQgdmFyaWQpCkBAIC0zODM2LDkgKzM4NTcsMTAgQEAgZXh0cmFjdF9xdWVyeV9kZXBlbmRl bmNpZXNfd2Fsa2VyKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCQkJfQogCiAJ CQkvKgotCQkJICogSWdub3JlIG90aGVyIHV0aWxpdHkgc3RhdGVtZW50cywgZXhjZXB0IHRob3Nl IChzdWNoIGFzIEVYUExBSU4pCi0JCQkgKiB0aGF0IGNvbnRhaW4gYSBwYXJzZWQtYnV0LW5vdC1w bGFubmVkIHF1ZXJ5LiAgRm9yIHRob3NlLCB3ZQotCQkJICoganVzdCBuZWVkIHRvIHRyYW5zZmVy IG91ciBhdHRlbnRpb24gdG8gdGhlIGNvbnRhaW5lZCBxdWVyeS4KKwkJCSAqIElnbm9yZSBvdGhl ciB1dGlsaXR5IHN0YXRlbWVudHMsIGV4Y2VwdCB0aG9zZSAoc3VjaCBhcyBFWFBMQUlOCisJCQkg KiBvciBMRVQpIHRoYXQgY29udGFpbiBhIHBhcnNlZC1idXQtbm90LXBsYW5uZWQgcXVlcnkuICBG b3IKKwkJCSAqIHRob3NlLCB3ZSBqdXN0IG5lZWQgdG8gdHJhbnNmZXIgb3VyIGF0dGVudGlvbiB0 byB0aGUgY29udGFpbmVkCisJCQkgKiBxdWVyeS4KIAkJCSAqLwogCQkJcXVlcnkgPSBVdGlsaXR5 Q29udGFpbnNRdWVyeShxdWVyeS0+dXRpbGl0eVN0bXQpOwogCQkJaWYgKHF1ZXJ5ID09IE5VTEwp CkBAIC0zODYxLDYgKzM4ODMsMTAgQEAgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2Vy KE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCQkJCQlsYXBwZW5kX29pZChjb250 ZXh0LT5nbG9iLT5yZWxhdGlvbk9pZHMsIHJ0ZS0+cmVsaWQpOwogCQl9CiAKKwkJLyogcmVjb3Jk IGRlcGVuZGVuY3kgb24gdGhlIHRhcmdldCB2YXJpYWJsZSBvZiBhIExFVCBjb21tYW5kICovCisJ CWlmIChPaWRJc1ZhbGlkKHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSkpCisJCQlyZWNvcmRfcGxhbl92 YXJpYWJsZV9kZXBlbmRlbmN5KGNvbnRleHQsIHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSk7CisKIAkJ LyogQW5kIHJlY3Vyc2UgaW50byB0aGUgcXVlcnkncyBzdWJleHByZXNzaW9ucyAqLwogCQlyZXR1 cm4gcXVlcnlfdHJlZV93YWxrZXIocXVlcnksIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dh bGtlciwKIAkJCQkJCQkJIGNvbnRleHQsIDApOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggYzM4OTdh YWZkMjEuLmZjYTcyNjdlYzhiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6 ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTUyLDYgKzUyLDcgQEAK ICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2d1Yy5oIgogI2lu Y2x1ZGUgInV0aWxzL3JlbC5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1 ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKIApAQCAtOTQsNiArOTUsOCBAQCBzdGF0aWMgUXVlcnkg KnRyYW5zZm9ybUNyZWF0ZVRhYmxlQXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJ CQkgQ3JlYXRlVGFibGVBc1N0bXQgKnN0bXQpOwogc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1DYWxs U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCUNhbGxTdG10ICpzdG10KTsKK3N0YXRp YyBRdWVyeSAqdHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJICAg TGV0U3RtdCAqc3RtdCk7CiBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1Mb2NraW5nQ2xhdXNlKFBhcnNl U3RhdGUgKnBzdGF0ZSwgUXVlcnkgKnFyeSwKIAkJCQkJCQkJICAgTG9ja2luZ0NsYXVzZSAqbGMs IGJvb2wgcHVzaGVkRG93bik7CiAjaWZkZWYgREVCVUdfTk9ERV9URVNUU19FTkFCTEVECkBAIC0z NDEsNiArMzQ0LDcgQEAgdHJhbnNmb3JtU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnBh cnNlVHJlZSkKIAkJCWNhc2UgVF9VcGRhdGVTdG10OgogCQkJY2FzZSBUX0RlbGV0ZVN0bXQ6CiAJ CQljYXNlIFRfTWVyZ2VTdG10OgorCQkJY2FzZSBUX0xldFN0bXQ6CiAJCQkJKHZvaWQpIHRlc3Rf cmF3X2V4cHJlc3Npb25fY292ZXJhZ2UocGFyc2VUcmVlLCBOVUxMKTsKIAkJCQlicmVhazsKIAkJ CWRlZmF1bHQ6CkBAIC00MjAsNiArNDI0LDExIEBAIHRyYW5zZm9ybVN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBOb2RlICpwYXJzZVRyZWUpCiAJCQkJCQkJCQkgICAoQ2FsbFN0bXQgKikgcGFyc2VU cmVlKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJcmVzdWx0ID0gdHJhbnNm b3JtTGV0U3RtdChwc3RhdGUsCisJCQkJCQkJCQkgIChMZXRTdG10ICopIHBhcnNlVHJlZSk7CisJ CQlicmVhazsKKwogCQlkZWZhdWx0OgogCiAJCQkvKgpAQCAtNDcxLDYgKzQ4MCw3IEBAIHN0bXRf cmVxdWlyZXNfcGFyc2VfYW5hbHlzaXMoUmF3U3RtdCAqcGFyc2VUcmVlKQogCQljYXNlIFRfU2Vs ZWN0U3RtdDoKIAkJY2FzZSBUX1JldHVyblN0bXQ6CiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6CisJ CWNhc2UgVF9MZXRTdG10OgogCQkJcmVzdWx0ID0gdHJ1ZTsKIAkJCWJyZWFrOwogCkBAIC0zMzE5 LDYgKzMzMjksMjMzIEBAIHRyYW5zZm9ybUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ2Fs bFN0bXQgKnN0bXQpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIHRyYW5zZm9ybUxldFN0 bXQgLQorICoJICB0cmFuc2Zvcm0gYW4gTGV0IFN0YXRlbWVudAorICovCitzdGF0aWMgUXVlcnkg KgordHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQpCit7 CisJUXVlcnkJICAgKnF1ZXJ5OworCVF1ZXJ5CSAgICpyZXN1bHQ7CisJTGlzdAkgICAqZXhwckxp c3QgPSBOSUw7CisJTGlzdAkgICAqZXhwckxpc3RDb2VyID0gTklMOworCUxpc3RDZWxsICAgKmxj OworCUxpc3RDZWxsICAgKmluZGlyZWN0aW9uX2hlYWQgPSBOVUxMOworCVF1ZXJ5CSAgICpzZWxl Y3RRdWVyeTsKKwlPaWQJCQl2YXJpZDsKKwljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7CisJYm9v bAkJbm90X3VuaXF1ZTsKKwlib29sCQlpc19yb3d0eXBlOworCU9pZAkJCXR5cGlkOworCWludDMy CQl0eXBtb2Q7CisJT2lkCQkJY29sbGlkOworCUxpc3QJICAgKm5hbWVzID0gTlVMTDsKKwlpbnQJ CQlpbmRpcmVjdGlvbl9zdGFydDsKKwlpbnQJCQlpID0gMDsKKworCS8qIHRoZXJlIGNhbid0IGJl IGFueSBvdXRlciBXSVRIIHRvIHdvcnJ5IGFib3V0ICovCisJQXNzZXJ0KHBzdGF0ZS0+cF9jdGVu YW1lc3BhY2UgPT0gTklMKTsKKworCW5hbWVzID0gTmFtZXNGcm9tTGlzdChzdG10LT50YXJnZXQp OworCisJLyogbG9ja3MgdGhlIHZhcmlhYmxlIHdpdGggYW4gQWNjZXNzU2hhcmVMb2NrICovCisJ dmFyaWQgPSBJZGVudGlmeVZhcmlhYmxlKG5hbWVzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBm YWxzZSk7CisJaWYgKG5vdF91bmlxdWUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9BTUJJR1VPVVNfUEFSQU1FVEVSKSwKKwkJCQkgZXJybXNnKCJ0YXJnZXQgXCIlc1wi IG9mIExFVCBjb21tYW5kIGlzIGFtYmlndW91cyIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5h bWVzKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0aW9uKSkp OworCisJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFy aWFibGUgXCIlc1wiIGRvZXNuJ3QgZXhpc3QiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1l cykpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5sb2NhdGlvbikpKTsK KworCS8qCisJICogQ2FsY3VsYXRlIHN0YXJ0IG9mIHBvc3NpYmxlIHBvc2l0aW9uIG9mIGFuIGlu ZGlyZWN0aW9uIGluIGxpc3QsIGFuZAorCSAqIHdoZW4gaXQgaXMgaW5zaWRlIHRoZSBsaXN0LCBz dG9yZSBwb2ludGVyIG9uIGZpcnN0IG5vZGUgb2YgaW5kaXJlY3Rpb24uCisJICovCisJaW5kaXJl Y3Rpb25fc3RhcnQgPSBsaXN0X2xlbmd0aChuYW1lcykgLSAoYXR0cm5hbWUgPyAxIDogMCk7CisJ aWYgKGxpc3RfbGVuZ3RoKHN0bXQtPnRhcmdldCkgPiBpbmRpcmVjdGlvbl9zdGFydCkKKwkJaW5k aXJlY3Rpb25faGVhZCA9IGxpc3RfbnRoX2NlbGwoc3RtdC0+dGFyZ2V0LCBpbmRpcmVjdGlvbl9z dGFydCk7CisKKwlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQodmFyaWQs ICZ0eXBpZCwgJnR5cG1vZCwgJmNvbGxpZCk7CisKKwlpc19yb3d0eXBlID0gdHlwZV9pc19yb3d0 eXBlKHR5cGlkKTsKKworCWlmIChhdHRybmFtZSAmJiAhaXNfcm93dHlwZSkKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkgZXJy bXNnKCJjYW5ub3QgYXNzaWduIHRvIGZpZWxkIFwiJXNcIiBvZiBzZXNzaW9uIHZhcmlhYmxlIFwi JXMuJXNcIiBiZWNhdXNlIGl0cyB0eXBlICVzIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwKKwkJ CQkJCWF0dHJuYW1lLAorCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3Zhcmlh YmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2 YXJpZCksCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJCSBwYXJzZXJfZXJycG9z aXRpb24ocHN0YXRlLCBzdG10LT5sb2NhdGlvbikpKTsKKworCXBzdGF0ZS0+cF9leHByX2tpbmQg PSBFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVDsKKworCS8qIHdlIG5lZWQgdG8gcG9zdHBvbmUgY29u dmVyc2lvbiBvZiAidW5rbm93biIgdG8gdGV4dCAqLworCXBzdGF0ZS0+cF9yZXNvbHZlX3Vua25v d25zID0gZmFsc2U7CisKKwlzZWxlY3RRdWVyeSA9IHRyYW5zZm9ybVN0bXQocHN0YXRlLCBzdG10 LT5xdWVyeSk7CisKKwkvKiB0aGUgZ3JhbW1hciBzaG91bGQgaGF2ZSBwcm9kdWNlZCBhIFNFTEVD VCAqLworCUFzc2VydChJc0Eoc2VsZWN0UXVlcnksIFF1ZXJ5KSAmJiBzZWxlY3RRdWVyeS0+Y29t bWFuZFR5cGUgPT0gQ01EX1NFTEVDVCk7CisKKwkvKgorCSAqIEdlbmVyYXRlIGFuIGV4cHJlc3Np b24gbGlzdCBmb3IgdGhlIExFVCB0aGF0IHNlbGVjdHMgYWxsIHRoZQorCSAqIG5vbi1yZXNqdW5r IGNvbHVtbnMgZnJvbSB0aGUgc3VicXVlcnkuCisJICovCisJZXhwckxpc3QgPSBOSUw7CisJZm9y ZWFjaF9ub2RlKFRhcmdldEVudHJ5LCB0bGUsIHNlbGVjdFF1ZXJ5LT50YXJnZXRMaXN0KQorCXsK KwkJaWYgKHRsZS0+cmVzanVuaykKKwkJCWNvbnRpbnVlOworCisJCWV4cHJMaXN0ID0gbGFwcGVu ZChleHByTGlzdCwgdGxlLT5leHByKTsKKwl9CisKKwkvKiBkb24ndCBhbGxvdyBtdWx0aWNvbHVt biByZXN1bHQgKi8KKwlpZiAobGlzdF9sZW5ndGgoZXhwckxpc3QpICE9IDEpCisJCWVyZXBvcnQo RVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2df cGx1cmFsKCJhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0dXJuZWQgJWQgY29sdW1uIiwKKwkJCQkJ CQkgICAiYXNzaWdubWVudCBleHByZXNzaW9uIHJldHVybmVkICVkIGNvbHVtbnMiLAorCQkJCQkJ CSAgIGxpc3RfbGVuZ3RoKGV4cHJMaXN0KSwKKwkJCQkJCQkgICBsaXN0X2xlbmd0aChleHByTGlz dCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAorCQkJCQkJCQkJZXhwckxvY2F0 aW9uKChOb2RlICopIGV4cHJMaXN0KSkpKTsKKworCWV4cHJMaXN0Q29lciA9IE5JTDsKKworCWZv cmVhY2gobGMsIGV4cHJMaXN0KQorCXsKKwkJRXhwcgkgICAqZXhwciA9IChFeHByICopIGxmaXJz dChsYyk7CisJCUV4cHIJICAgKmNvZXJjZWRfZXhwcjsKKwkJT2lkCQkJZXhwcnR5cGlkOworCisJ CS8qIG5vdyB3ZSBjYW4gcmVhZCB0aGUgdHlwZSBvZiB0aGUgZXhwcmVzc2lvbiAqLworCQlleHBy dHlwaWQgPSBleHByVHlwZSgoTm9kZSAqKSBleHByKTsKKworCQlpZiAoaW5kaXJlY3Rpb25faGVh ZCkKKwkJeworCQkJYm9vbAkJdGFyZ2V0SXNBcnJheTsKKwkJCWNoYXIJICAgKnRhcmdldE5hbWU7 CisJCQlQYXJhbQkgICAqcGFyYW07CisKKwkJCXRhcmdldE5hbWUgPSBnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lKHZhcmlkKTsKKwkJCXRhcmdldElzQXJyYXkgPSBPaWRJc1ZhbGlkKGdldF9lbGVt ZW50X3R5cGUodHlwaWQpKTsKKworCQkJcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMgPSB0 cnVlOworCisJCQlwYXJhbSA9IG1ha2VOb2RlKFBhcmFtKTsKKwkJCXBhcmFtLT5wYXJhbWtpbmQg PSBQQVJBTV9WQVJJQUJMRTsKKwkJCXBhcmFtLT5wYXJhbXZhcmlkID0gdmFyaWQ7CisJCQlwYXJh bS0+cGFyYW10eXBlID0gdHlwaWQ7CisJCQlwYXJhbS0+cGFyYW10eXBtb2QgPSB0eXBtb2Q7CisK KwkJCS8qCisJCQkgKiBUaGUgcGFyYW1ldGVyIHVzZWQgYXMgYmFzZW5vZGUgaGFzIHRvIGhhdmUg c3BlY2lhbCBtYXJrLAorCQkJICogYmVjYXVzZSByZXF1aXJlcyBzcGVjaWFsIGFjY2VzcyB3aGVu IHdlIGRvIFNFTEVDVCBhY2Nlc3MgY2hlY2suCisJCQkgKi8KKwkJCXBhcmFtLT5wYXJhbWJhc2Vu b2RlID0gdHJ1ZTsKKworCQkJY29lcmNlZF9leHByID0gKEV4cHIgKikKKwkJCQl0cmFuc2Zvcm1B c3NpZ25tZW50SW5kaXJlY3Rpb24ocHN0YXRlLAorCQkJCQkJCQkJCQkgICAoTm9kZSAqKSBwYXJh bSwKKwkJCQkJCQkJCQkJICAgdGFyZ2V0TmFtZSwKKwkJCQkJCQkJCQkJICAgdGFyZ2V0SXNBcnJh eSwKKwkJCQkJCQkJCQkJICAgdHlwaWQsCisJCQkJCQkJCQkJCSAgIHR5cG1vZCwKKwkJCQkJCQkJ CQkJICAgSW52YWxpZE9pZCwKKwkJCQkJCQkJCQkJICAgc3RtdC0+dGFyZ2V0LAorCQkJCQkJCQkJ CQkgICBpbmRpcmVjdGlvbl9oZWFkLAorCQkJCQkJCQkJCQkgICAoTm9kZSAqKSBleHByLAorCQkJ CQkJCQkJCQkgICBDT0VSQ0lPTl9BU1NJR05NRU5ULAorCQkJCQkJCQkJCQkgICBzdG10LT5sb2Nh dGlvbik7CisJCX0KKwkJZWxzZQorCQkJY29lcmNlZF9leHByID0gKEV4cHIgKikKKwkJCQljb2Vy Y2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLAorCQkJCQkJCQkJICAoTm9kZSAqKSBleHByLAorCQkJ CQkJCQkJICBleHBydHlwaWQsCisJCQkJCQkJCQkgIHR5cGlkLCB0eXBtb2QsCisJCQkJCQkJCQkg IENPRVJDSU9OX0FTU0lHTk1FTlQsCisJCQkJCQkJCQkgIENPRVJDRV9JTVBMSUNJVF9DQVNULAor CQkJCQkJCQkJICBzdG10LT5sb2NhdGlvbik7CisKKwkJaWYgKGNvZXJjZWRfZXhwciA9PSBOVUxM KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNN QVRDSCksCisJCQkJCSBlcnJtc2coInZhcmlhYmxlIFwiJXMuJXNcIiBpcyBvZiB0eXBlICVzLCBi dXQgZXhwcmVzc2lvbiBpcyBvZiB0eXBlICVzIiwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUo Z2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh2YXJpZCksCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpLAor CQkJCQkJCWZvcm1hdF90eXBlX2JlKGV4cHJ0eXBpZCkpLAorCQkJCQkgZXJyaGludCgiWW91IHdp bGwgbmVlZCB0byByZXdyaXRlIG9yIGNhc3QgdGhlIGV4cHJlc3Npb24uIiksCisJCQkJCSBwYXJz ZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oKE5vZGUgKikgZXhwcikpKSk7CisK KwkJZXhwckxpc3RDb2VyID0gbGFwcGVuZChleHByTGlzdENvZXIsIGNvZXJjZWRfZXhwcik7CisJ fQorCisJLyogZ2VuZXJhdGUgcXVlcnkncyB0YXJnZXQgbGlzdCB1c2luZyB0aGUgY29tcHV0ZWQg bGlzdCBvZiBleHByZXNzaW9ucyAqLworCXF1ZXJ5ID0gbWFrZU5vZGUoUXVlcnkpOworCXF1ZXJ5 LT5jb21tYW5kVHlwZSA9IENNRF9TRUxFQ1Q7CisKKwlmb3JlYWNoKGxjLCBleHByTGlzdENvZXIp CisJeworCQlFeHByCSAgICpleHByID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKKwkJVGFyZ2V0RW50 cnkgKnRsZTsKKworCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnkoZXhwciwKKwkJCQkJCQkgIGkgKyAx LAorCQkJCQkJCSAgRmlndXJlQ29sbmFtZSgoTm9kZSAqKSBleHByKSwKKwkJCQkJCQkgIGZhbHNl KTsKKwkJcXVlcnktPnRhcmdldExpc3QgPSBsYXBwZW5kKHF1ZXJ5LT50YXJnZXRMaXN0LCB0bGUp OworCX0KKworCS8qIGRvbmUgYnVpbGRpbmcgdGhlIHJhbmdlIHRhYmxlIGFuZCBqb2ludHJlZSAq LworCXF1ZXJ5LT5ydGFibGUgPSBwc3RhdGUtPnBfcnRhYmxlOworCXF1ZXJ5LT5qb2ludHJlZSA9 IG1ha2VGcm9tRXhwcihwc3RhdGUtPnBfam9pbmxpc3QsIE5VTEwpOworCisJcXVlcnktPmhhc1Rh cmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKKwlxdWVyeS0+aGFzU3ViTGlua3Mg PSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBw c3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKKworCS8qIHRoaXMgaXMgdG9wLWxldmVsIHF1 ZXJ5ICovCisJcXVlcnktPmNhblNldFRhZyA9IHRydWU7CisKKwkvKgorCSAqIFNhdmUgdGFyZ2V0 IHNlc3Npb24gdmFyaWFibGUgSUQuIEl0IGlzIHVzZWQgbGF0ZXIgZm9yIGFjcXVpcmluZyBhbgor CSAqIEFjY2Vzc1NoYXJlTG9jayBvbiB0YXJnZXQgdmFyaWFibGUsIHNldHRpbmcgcGxhbiBkZXBl bmRlbmN5IGFuZCBmaW5hbGx5CisJICogZm9yIGNyZWF0aW5nIFZhcmlhYmxlRGVzdFJlY2VpdmVy LgorCSAqLworCXF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSA9IHZhcmlkOworCisJYXNzaWduX3F1ZXJ5 X2NvbGxhdGlvbnMocHN0YXRlLCBxdWVyeSk7CisKKwkvKgorCSAqIFRoZSBxdWVyeSBpcyBleGVj dXRlZCBhcyB1dGlsaXR5IGNvbW1hbmQgYnkgbmVzdGVkIGV4ZWN1dG9yIGNhbGwuCisJICogQXNz aWduZWQgcXVlcnlJZCBpcyByZXF1aXJlZCBpbiB0aGlzIGNhc2UuCisJICovCisJaWYgKElzUXVl cnlJZEVuYWJsZWQoKSkKKwkJSnVtYmxlUXVlcnkocXVlcnkpOworCisJc3RtdC0+cXVlcnkgPSAo Tm9kZSAqKSBxdWVyeTsKKworCS8qIHJlcHJlc2VudCB0aGUgY29tbWFuZCBhcyBhIHV0aWxpdHkg UXVlcnkgKi8KKwlyZXN1bHQgPSBtYWtlTm9kZShRdWVyeSk7CisJcmVzdWx0LT5jb21tYW5kVHlw ZSA9IENNRF9VVElMSVRZOworCXJlc3VsdC0+dXRpbGl0eVN0bXQgPSAoTm9kZSAqKSBzdG10Owor CisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIFByb2R1Y2UgYSBzdHJpbmcgcmVwcmVzZW50 YXRpb24gb2YgYSBMb2NrQ2xhdXNlU3RyZW5ndGggdmFsdWUuCiAgKiBUaGlzIHNob3VsZCBvbmx5 IGJlIGFwcGxpZWQgdG8gdmFsaWQgdmFsdWVzIChub3QgTENTX05PTkUpLgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5k ZXggNTUxNzBjOWI3Y2EuLmRlNmE4MmJiNDY2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTMwMiw3ICszMDIs NyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwg TGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQlEcm9wVHJhbnNmb3JtU3RtdAogCQlEcm9w VXNlck1hcHBpbmdTdG10IEV4cGxhaW5TdG10IEZldGNoU3RtdAogCQlHcmFudFN0bXQgR3JhbnRS b2xlU3RtdCBJbXBvcnRGb3JlaWduU2NoZW1hU3RtdCBJbmRleFN0bXQgSW5zZXJ0U3RtdAotCQlM aXN0ZW5TdG10IExvYWRTdG10IExvY2tTdG10IE1lcmdlU3RtdCBOb3RpZnlTdG10IEV4cGxhaW5h YmxlU3RtdCBQcmVwYXJhYmxlU3RtdAorCQlMZXRTdG10IExpc3RlblN0bXQgTG9hZFN0bXQgTG9j a1N0bXQgTWVyZ2VTdG10IE5vdGlmeVN0bXQgRXhwbGFpbmFibGVTdG10IFByZXBhcmFibGVTdG10 CiAJCUNyZWF0ZUZ1bmN0aW9uU3RtdCBBbHRlckZ1bmN0aW9uU3RtdCBSZWluZGV4U3RtdCBSZW1v dmVBZ2dyU3RtdAogCQlSZW1vdmVGdW5jU3RtdCBSZW1vdmVPcGVyU3RtdCBSZW5hbWVTdG10IFJl dHVyblN0bXQgUmV2b2tlU3RtdCBSZXZva2VSb2xlU3RtdAogCQlSdWxlQWN0aW9uU3RtdCBSdWxl QWN0aW9uU3RtdE9yRW1wdHkgUnVsZVN0bXQKQEAgLTc0OCw3ICs3NDgsNyBAQCBzdGF0aWMgTm9k ZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywg Tm9kZSAqcXVlcnkpOwogCUtFRVAgS0VZIEtFWVMKIAogCUxBQkVMIExBTkdVQUdFIExBUkdFX1Ag TEFTVF9QIExBVEVSQUxfUAotCUxFQURJTkcgTEVBS1BST09GIExFQVNUIExFRlQgTEVWRUwgTElL RSBMSU1JVCBMSVNURU4gTE9BRCBMT0NBTAorCUxFQURJTkcgTEVBS1BST09GIExFQVNUIExFRlQg TEVUIExFVkVMIExJS0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKIAlMT0NBTFRJTUUgTE9DQUxU SU1FU1RBTVAgTE9DQVRJT04gTE9DS19QIExPQ0tFRCBMT0dHRUQKIAogCU1BUFBJTkcgTUFUQ0gg TUFUQ0hFRCBNQVRFUklBTElaRUQgTUFYVkFMVUUgTUVSR0UgTUVSR0VfQUNUSU9OIE1FVEhPRApA QCAtMTA5NSw2ICsxMDk1LDcgQEAgc3RtdDoKIAkJCXwgSW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQK IAkJCXwgSW5kZXhTdG10CiAJCQl8IEluc2VydFN0bXQKKwkJCXwgTGV0U3RtdAogCQkJfCBMaXN0 ZW5TdG10CiAJCQl8IFJlZnJlc2hNYXRWaWV3U3RtdAogCQkJfCBMb2FkU3RtdApAQCAtMTI5NjIs NiArMTI5NjMsMzggQEAgb3B0X2hvbGQ6IC8qIEVNUFRZICovCQkJCQkJeyAkJCA9IDA7IH0KIAkJ CXwgV0lUSE9VVCBIT0xECQkJCQl7ICQkID0gMDsgfQogCQk7CiAKKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgorICoKKyAqCQlRVUVSWToKKyAqCQkJCUxFVCBTVEFURU1FTlQKKyAqCisgKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCitMZXRTdG10OglMRVQgQ29sSWQgb3B0X2luZGlyZWN0aW9uICc9JyBhX2V4 cHIKKwkJCQl7CisJCQkJCUxldFN0bXQJICAgKm4gPSBtYWtlTm9kZShMZXRTdG10KTsKKwkJCQkJ U2VsZWN0U3RtdCAqc2VsZWN0OworCQkJCQlSZXNUYXJnZXQgICpyZXM7CisKKwkJCQkJbi0+dGFy Z2V0ID0gbGNvbnMobWFrZVN0cmluZygkMiksCisJCQkJCQkJCQkgIGNoZWNrX2luZGlyZWN0aW9u KCQzLCB5eXNjYW5uZXIpKTsKKworCQkJCQlzZWxlY3QgPSBtYWtlTm9kZShTZWxlY3RTdG10KTsK KwkJCQkJcmVzID0gbWFrZU5vZGUoUmVzVGFyZ2V0KTsKKworCQkJCQkvKiBjcmVhdGUgdGFyZ2V0 IGxpc3QgZm9yIGltcGxpY2l0IHF1ZXJ5ICovCisJCQkJCXJlcy0+bmFtZSA9IE5VTEw7CisJCQkJ CXJlcy0+aW5kaXJlY3Rpb24gPSBOSUw7CisJCQkJCXJlcy0+dmFsID0gKE5vZGUgKikgJDU7CisJ CQkJCXJlcy0+bG9jYXRpb24gPSBANTsKKworCQkJCQlzZWxlY3QtPnRhcmdldExpc3QgPSBsaXN0 X21ha2UxKHJlcyk7CisJCQkJCW4tPnF1ZXJ5ID0gKE5vZGUgKikgc2VsZWN0OworCisJCQkJCW4t PmxvY2F0aW9uID0gQDI7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKwogLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCiAgKgogICoJCVFVRVJZOgpAQCAtMTgwNTgsNiArMTgwOTEsNyBA QCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IExBUkdFX1AKIAkJCXwgTEFTVF9QCiAJCQl8IExF QUtQUk9PRgorCQkJfCBMRVQKIAkJCXwgTEVWRUwKIAkJCXwgTElTVEVOCiAJCQl8IExPQUQKQEAg LTE4NjczLDYgKzE4NzA3LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBMRUFLUFJPT0YK IAkJCXwgTEVBU1QKIAkJCXwgTEVGVAorCQkJfCBMRVQKIAkJCXwgTEVWRUwKIAkJCXwgTElLRQog CQkJfCBMSVNURU4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3Jj L2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXggMWEwZTExYmE3MDEuLmFiMDQwMGMxZjdhIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYwpAQCAtMjM1LDYgKzIzNSw3IEBAIENsYXNzaWZ5VXRpbGl0eUNvbW1hbmRB c1JlYWRPbmx5KE5vZGUgKnBhcnNldHJlZSkKIAogCQljYXNlIFRfQ2FsbFN0bXQ6CiAJCWNhc2Ug VF9Eb1N0bXQ6CisJCWNhc2UgVF9MZXRTdG10OgogCQkJewogCQkJCS8qCiAJCQkJICogQ29tbWFu ZHMgaW5zaWRlIHRoZSBETyBibG9jayBvciB0aGUgY2FsbGVkIHByb2NlZHVyZSBtaWdodApAQCAt MTA1Nyw2ICsxMDU4LDExIEBAIHN0YW5kYXJkX1Byb2Nlc3NVdGlsaXR5KFBsYW5uZWRTdG10ICpw c3RtdCwKIAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCUV4ZWN1dGVM ZXRTdG10KHBzdGF0ZSwgKExldFN0bXQgKikgcGFyc2V0cmVlLCBwYXJhbXMsCisJCQkJCQkgICBx dWVyeUVudiwgcWMpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCS8qIEFsbCBvdGhlciBz dGF0ZW1lbnQgdHlwZXMgaGF2ZSBldmVudCB0cmlnZ2VyIHN1cHBvcnQgKi8KIAkJCVByb2Nlc3NV dGlsaXR5U2xvdyhwc3RhdGUsIHBzdG10LCBxdWVyeVN0cmluZywKQEAgLTIxOTgsNiArMjIwNCwx MCBAQCBVdGlsaXR5Q29udGFpbnNRdWVyeShOb2RlICpwYXJzZXRyZWUpCiAJCQkJcmV0dXJuIFV0 aWxpdHlDb250YWluc1F1ZXJ5KHFyeS0+dXRpbGl0eVN0bXQpOwogCQkJcmV0dXJuIHFyeTsKIAor CQljYXNlIFRfTGV0U3RtdDoKKwkJCXFyeSA9IGNhc3ROb2RlKFF1ZXJ5LCAoKExldFN0bXQgKikg cGFyc2V0cmVlKS0+cXVlcnkpOworCQkJcmV0dXJuIHFyeTsKKwogCQlkZWZhdWx0OgogCQkJcmV0 dXJuIE5VTEw7CiAJfQpAQCAtMjM5Niw2ICsyNDA2LDEwIEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9k ZSAqcGFyc2V0cmVlKQogCQkJdGFnID0gQ01EVEFHX1NFTEVDVDsKIAkJCWJyZWFrOwogCisJCWNh c2UgVF9MZXRTdG10OgorCQkJdGFnID0gQ01EVEFHX0xFVDsKKwkJCWJyZWFrOworCiAJCQkvKiB1 dGlsaXR5IHN0YXRlbWVudHMgLS0tIHNhbWUgd2hldGhlciByYXcgb3IgY29va2VkICovCiAJCWNh c2UgVF9UcmFuc2FjdGlvblN0bXQ6CiAJCQl7CkBAIC0zMjgxLDYgKzMyOTUsNyBAQCBHZXRDb21t YW5kTG9nTGV2ZWwoTm9kZSAqcGFyc2V0cmVlKQogCQkJYnJlYWs7CiAKIAkJY2FzZSBUX1BMQXNz aWduU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJCQlsZXYgPSBMT0dTVE1UX0FMTDsKIAkJCWJy ZWFrOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCmluZGV4IDFkMjBmMzM4MmIwLi5j OGU5MWJlMTQ4MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hl LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKQEAgLTIwNTMsNiAr MjA1MywxNyBAQCBTY2FuUXVlcnlGb3JMb2NrcyhRdWVyeSAqcGFyc2V0cmVlLCBib29sIGFjcXVp cmUpCiAJCXF1ZXJ5X3RyZWVfd2Fsa2VyKHBhcnNldHJlZSwgU2NhblF1ZXJ5V2Fsa2VyLCAmYWNx dWlyZSwKIAkJCQkJCSAgUVRXX0lHTk9SRV9SQ19TVUJRVUVSSUVTKTsKIAl9CisKKwkvKiBwcm9j ZXNzIHNlc3Npb24gdmFyaWFibGVzICovCisJaWYgKE9pZElzVmFsaWQocGFyc2V0cmVlLT5yZXN1 bHRWYXJpYWJsZSkpCisJeworCQlpZiAoYWNxdWlyZSkKKwkJCUxvY2tEYXRhYmFzZU9iamVjdChW YXJpYWJsZVJlbGF0aW9uSWQsIHBhcnNldHJlZS0+cmVzdWx0VmFyaWFibGUsCisJCQkJCQkJICAg MCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJZWxzZQorCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFy aWFibGVSZWxhdGlvbklkLCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlLAorCQkJCQkJCQkgMCwg QWNjZXNzU2hhcmVMb2NrKTsKKwl9CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXgg MThlNzk1YzNhYWYuLmRkN2FlNzNlNTQwIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0xMjYy LDggKzEyNjIsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgc3FsX2NvbW1hbmRzW10gPSB7 CiAJIkFCT1JUIiwgIkFMVEVSIiwgIkFOQUxZWkUiLCAiQkVHSU4iLCAiQ0FMTCIsICJDSEVDS1BP SU5UIiwgIkNMT1NFIiwgIkNMVVNURVIiLAogCSJDT01NRU5UIiwgIkNPTU1JVCIsICJDT1BZIiwg IkNSRUFURSIsICJERUFMTE9DQVRFIiwgIkRFQ0xBUkUiLAogCSJERUxFVEUgRlJPTSIsICJESVND QVJEIiwgIkRPIiwgIkRST1AiLCAiRU5EIiwgIkVYRUNVVEUiLCAiRVhQTEFJTiIsCi0JIkZFVENI IiwgIkdSQU5UIiwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsICJJTlNFUlQgSU5UTyIsICJMSVNU RU4iLCAiTE9BRCIsICJMT0NLIiwKLQkiTUVSR0UgSU5UTyIsICJNT1ZFIiwgIk5PVElGWSIsICJQ UkVQQVJFIiwKKwkiRkVUQ0giLCAiR1JBTlQiLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1BIiwgIklO U0VSVCBJTlRPIiwgIkxFVCIsCisJIkxJU1RFTiIsICJMT0FEIiwgIkxPQ0siLCAiTUVSR0UgSU5U TyIsICJNT1ZFIiwgIk5PVElGWSIsICJQUkVQQVJFIiwKIAkiUkVBU1NJR04iLCAiUkVGUkVTSCBN QVRFUklBTElaRUQgVklFVyIsICJSRUlOREVYIiwgIlJFTEVBU0UiLAogCSJSRVNFVCIsICJSRVZP S0UiLCAiUk9MTEJBQ0siLAogCSJTQVZFUE9JTlQiLCAiU0VDVVJJVFkgTEFCRUwiLCAiU0VMRUNU IiwgIlNFVCIsICJTSE9XIiwgIlNUQVJUIiwKQEAgLTQ3OTAsNiArNDc5MCwxNCBAQCBtYXRjaF9w cmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFM VUVTIikgJiYgIVRhaWxNYXRjaGVzKCJERUZBVUxUIiwgIlZBTFVFUyIpKQogCQlDT01QTEVURV9X SVRIKCIoIik7CiAKKy8qIExFVCAqLworCS8qIElmIHByZXYuIHdvcmQgaXMgTEVUIHN1Z2dlc3Qg YSBsaXN0IG9mIHZhcmlhYmxlcyAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkxFVCIpKQorCQlDT01Q TEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOworCS8q IENvbXBsZXRlIExFVCA8dmFyaWFibGU+IHdpdGggIj0iICovCisJZWxzZSBpZiAoVGFpbE1hdGNo ZXMoIkxFVCIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiPSIpOworCiAvKiBMT0NLICov CiAJLyogQ29tcGxldGUgTE9DSyBbVEFCTEVdIFtPTkxZXSB3aXRoIGEgbGlzdCBvZiB0YWJsZXMg Ki8KIAllbHNlIGlmIChNYXRjaGVzKCJMT0NLIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmgKaW5kZXggOWY1YzZlMzBmYmQuLjJlYmU4NDc3Nzg5IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0xNywxMSArMTcsMTYgQEAKIAogI2luY2x1 ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2Rl LmgiCisjaW5jbHVkZSAibm9kZXMvcGFyYW1zLmgiCiAjaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rl cy5oIgorI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAKIGV4dGVybiB2b2lkIFNldFNlc3Npb25W YXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CiBleHRlcm4gRGF0 dW0gR2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsKTsKIAogZXh0ZXJu IE9iamVjdEFkZHJlc3MgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVT ZXNzaW9uVmFyU3RtdCAqc3RtdCk7CiAKK2V4dGVybiB2b2lkIEV4ZWN1dGVMZXRTdG10KFBhcnNl U3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCisJCQkJ CQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgUXVlcnlDb21wbGV0aW9uICpxYyk7CisK ICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDk5OTQ3Y2FkZWU4Li44MzRiNDRhNjEw MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMTQ3LDYgKzE0Nyw5IEBAIHR5cGVkZWYgc3Ry dWN0IFF1ZXJ5CiAJICovCiAJaW50CQkJcmVzdWx0UmVsYXRpb24gcGdfbm9kZV9hdHRyKHF1ZXJ5 X2p1bWJsZV9pZ25vcmUpOwogCisJLyogdGFyZ2V0IHZhcmlhYmxlIG9mIExFVCBzdGF0ZW1lbnQg Ki8KKwlPaWQJCQlyZXN1bHRWYXJpYWJsZTsKKwogCS8qIGhhcyBhZ2dyZWdhdGVzIGluIHRsaXN0 IG9yIGhhdmluZ1F1YWwgKi8KIAlib29sCQloYXNBZ2dzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1i bGVfaWdub3JlKTsKIAkvKiBoYXMgd2luZG93IGZ1bmN0aW9ucyBpbiB0bGlzdCAqLwpAQCAtMjE3 MCw2ICsyMTczLDE4IEBAIHR5cGVkZWYgc3RydWN0IE1lcmdlU3RtdAogCVdpdGhDbGF1c2UgKndp dGhDbGF1c2U7CQkvKiBXSVRIIGNsYXVzZSAqLwogfSBNZXJnZVN0bXQ7CiAKKy8qIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqCQlMZXQgU3RhdGVtZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IExldFN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCUxp c3QJICAgKnRhcmdldDsJCQkvKiB0YXJnZXQgdmFyaWFibGUgKi8KKwlOb2RlCSAgICpxdWVyeTsJ CQkvKiBzb3VyY2UgZXhwcmVzc2lvbiAqLworCVBhcnNlTG9jCWxvY2F0aW9uOworfSBMZXRTdG10 OworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJU2VsZWN0IFN0YXRlbWVudAogICoK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGF0aG5vZGVzLmgKaW5kZXggNzVhODYzZGFkOTMuLjUwZDRhMjBiZTc3IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rl cy9wYXRobm9kZXMuaApAQCAtMTkyLDYgKzE5MiwxNSBAQCB0eXBlZGVmIHN0cnVjdCBQbGFubmVy R2xvYmFsCiAKIAkvKiBsaXN0IG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KIAlMaXN0CSAg ICpzZXNzaW9uVmFyaWFibGVzOworCisJLyogT2lkIG9mIHNlc3Npb24gdmFyaWFibGUgdXNlZCBs aWtlIHRhcmdldCBvZiBMRVQgY29tbWFuZCAqLworCU9pZAkJCXJlc3VsdFZhcmlhYmxlOworCisJ Lyogb2lkIG9mIHNlc3Npb24gdmFyaWFibGUgdXNlZCBsaWtlIGJhc2Ugbm9kZSBmb3IgYXNzaWdu bWVudCBpbmRpcmVjdGlvbiAqLworCU9pZAkJCWJhc2Vub2RlU2Vzc2lvblZhcmlkOworCisJLyog dHJ1ZSwgaWYgd2UgZG8gU0VMRUNUIHBlcm1pc3Npb24gY2hlY2sgb24gYmFzZW5vZGVTZXNzaW9u VmFyaWQgKi8KKwlib29sCQliYXNlbm9kZVNlc3Npb25WYXJTZWxlY3RDaGVjazsKIH0gUGxhbm5l ckdsb2JhbDsKIAogLyogbWFjcm8gZm9yIGZldGNoaW5nIHRoZSBQbGFuIGFzc29jaWF0ZWQgd2l0 aCBhIFN1YlBsYW4gbm9kZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5v ZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCBjZjRiZmFiODk4MS4u Mzk1NjViODc5NjQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBAIC0xNjEsNiArMTYxLDEzIEBAIHR5 cGVkZWYgc3RydWN0IFBsYW5uZWRTdG10CiAJLyogT0lEcyBmb3IgUEFSQU1fVkFSSUFCTEUgUGFy YW1zICovCiAJTGlzdAkgICAqc2Vzc2lvblZhcmlhYmxlczsKIAorCS8qCisJICogVGhlIG9pZCBv ZiBzZXNzaW9uIHZhcmlhYmxlIGV4ZWNsdWRlZCBmcm9tIHBlcm1pc3Npb24gY2hlY2suIFRoaXMK KwkgKiBzZXNzaW9uIHZhcmlhYmxlIGlzIHVzZWQgYXMgYmFzZSBub2RlIG9mIGFzc2lnbm1lbnQg aW5kaXJlY3Rpb24gKGFuZCBpdAorCSAqIGlzIHVzZWQgb25seSB0aGVyZSkuCisJICovCisJaW50 CQkJZXhjbFNlbGVjdFBlcm1DaGVja1ZhcmlkOworCiAJLyogc3RhdGVtZW50IGxvY2F0aW9uIGlu IHNvdXJjZSBzdHJpbmcgKGNvcGllZCBmcm9tIFF1ZXJ5KSAqLwogCS8qIHN0YXJ0IGxvY2F0aW9u LCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJc3RtdF9sb2NhdGlvbjsKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJp bW5vZGVzLmgKaW5kZXggNWYzYTFhMmQxYmUuLjkxMDc4OTFmYTlkIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9k ZXMuaApAQCAtNDA0LDYgKzQwNCwxNSBAQCB0eXBlZGVmIHN0cnVjdCBQYXJhbQogCU9pZAkJCXBh cmFtY29sbGlkOwogCS8qIE9JRCBvZiB1c2VkIHNlc3Npb24gdmFyaWFibGUgb3IgSW52YWxpZE9p ZCBpZiBub25lICovCiAJT2lkCQkJcGFyYW12YXJpZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxl X2lnbm9yZSk7CisKKwkvKgorCSAqIHRydWUgaWYgcGFyYW0gaXMgdXNlZCBhcyBiYXNlIG5vZGUg b2YgYXNzaWdubWVudCBpbmRpcmVjdGlvbiAod2hlbgorCSAqIHRhcmdldCBvZiBMRVQgc3RhdGVt ZW50IGlzIGFuIGFycmF5IGZpZWxkIG9yIGFuIHJlY29yZCBmaWVsZCkuIEZvciB0aGlzCisJICog cGFyYW0gd2UgZG8gbm90IGNoZWNrIFNFTEVDVCBhY2Nlc3MgcmlnaHQsIGJlY2F1c2UgdGhpcyBw YXJhbSBpcyB1c2VkCisJICoganVzdCBmb3IgZXhlY3V0aW9uIG9mIGFuIG1vZGlmeSBvcGVyYXRp b24uCisJICovCisJYm9vbAkJcGFyYW1iYXNlbm9kZTsKKwogCS8qIHRva2VuIGxvY2F0aW9uLCBv ciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJbG9jYXRpb247CiB9IFBhcmFtOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oCmluZGV4IDdlN2QyNjJiMWJiLi4xY2NhYWNjMzlhZCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApA QCAtMjU4LDYgKzI1OCw3IEBAIFBHX0tFWVdPUkQoImxlYWRpbmciLCBMRUFESU5HLCBSRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGVha3Byb29mIiwgTEVBS1BST09G LCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWFzdCIsIExF QVNULCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGVmdCIsIExF RlQsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJsZXQi LCBMRVQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxldmVs IiwgTEVWRUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxp a2UiLCBMSUtFLCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgibGltaXQiLCBMSU1JVCwgUkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oCmluZGV4IGVhODY5NTRkZGVkLi4yMjA4MmMzMDAwOCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0 LmgKQEAgLTE4Niw2ICsxODYsNyBAQCBQR19DTURUQUcoQ01EVEFHX0dSQU5ULCAiR1JBTlQiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0dSQU5UX1JPTEUsICJHUkFOVCBS T0xFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfSU1QT1JUX0ZPUkVJ R05fU0NIRU1BLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1BIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQog UEdfQ01EVEFHKENNRFRBR19JTlNFUlQsICJJTlNFUlQiLCBmYWxzZSwgZmFsc2UsIHRydWUpCitQ R19DTURUQUcoQ01EVEFHX0xFVCwgIkxFVCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURU QUcoQ01EVEFHX0xJU1RFTiwgIkxJU1RFTiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURU QUcoQ01EVEFHX0xPQUQsICJMT0FEIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhD TURUQUdfTE9DS19UQUJMRSwgIkxPQ0sgVEFCTEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwub3V0 CmluZGV4IDNlMjEwNTlhY2MyLi42N2Y3OGE1NDhkYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dApAQCAtMTg5LDMgKzE4OSwy ODAgQEAgZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBzdmFydGVzdF9kbWwudGVzdHRhYgogRFJPUCBS T0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3JlYWRfcm9sZTsKIERST1AgVkFSSUFCTEUgc2VzdmFy NDA7CiBEUk9QIFRBQkxFIHN2YXJ0ZXN0X2RtbDsKK0NSRUFURSBWQVJJQUJMRSBzZXN2YXI0MyBB UyBudW1lcmljOworLS0gTEVUIHN0bXQgaXMgbm90IGFsbG93ZWQgaW5zaWRlIENURQorV0lUSCB4 IEFTIChMRVQgc2VzdmFyNDMgPSAzLjE0KSBTRUxFQ1QgKiBGUk9NIHg7CitFUlJPUjogIHN5bnRh eCBlcnJvciBhdCBvciBuZWFyICJMRVQiCitMSU5FIDE6IFdJVEggeCBBUyAoTEVUIHNlc3ZhcjQz ID0gMy4xNCkgU0VMRUNUICogRlJPTSB4OworICAgICAgICAgICAgICAgICAgIF4KKy0tIExFVCBz dG10IHJlcXVpcmVzIHJlc3VsdCB3aXRoIGV4YWN0bHkgb25lIHJvdworTEVUIHNlc3ZhcjQzID0g Z2VuZXJhdGVfc2VyaWVzKDEsMSk7CistLSBzaG91bGQgZmFpbAorTEVUIHNlc3ZhcjQzID0gZ2Vu ZXJhdGVfc2VyaWVzKDEsMik7CitFUlJPUjogIGV4cHJlc3Npb24gcmV0dXJuZWQgbW9yZSB0aGFu IG9uZSByb3cKK0xFVCBzZXN2YXI0MyA9IGdlbmVyYXRlX3NlcmllcygxLDApOworRVJST1I6ICBl eHByZXNzaW9uIHJldHVybmVkIG5vIHJvd3MKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfZG1sOwor Q1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NCBBUyB2YXJjaGFyOworQ1JFQVRF IFRZUEUgc3ZhcnRlc3RfZG1sLmNvbXBvc2l0ZV90eXBlIEFTIChhIGludCwgYiBpbnQsIGMgaW50 KTsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDUgQVMgc3ZhcnRlc3RfZG1s LmNvbXBvc2l0ZV90eXBlOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfZG1s LmZ4MDEobnVtZXJpYykKK1JFVFVSTlMgdm9pZCBBUyAkJAorTEVUIHNlc3ZhcjQzID0gJDE7Cisk JCBMQU5HVUFHRSBzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwu ZngwMigpCitSRVRVUk5TIG51bWVyaWMgQVMgJCQKK1NFTEVDVCBWQVJJQUJMRShzZXN2YXI0Myk7 CiskJCBMQU5HVUFHRSBzcWw7CitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDEoMy4xNCk7CisgZngw MSAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDIoKSwgVkFS SUFCTEUoc2VzdmFyNDMpOworIGZ4MDIgfCBzZXN2YXI0MyAKKy0tLS0tLSstLS0tLS0tLS0tCisg My4xNCB8ICAgICAzLjE0CisoMSByb3cpCisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2 YXJ0ZXN0X2RtbC5meDAzKHMgdmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJAorQkVHSU4K KyAgTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NCA9IHM7CisgIFJFVFVSTiBWQVJJQUJMRShzdmFy dGVzdF9kbWwuc2VzdmFyNDQpOworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIHN2 YXJ0ZXN0X2RtbC5meDAzKCdIZWxsbycpOworIGZ4MDMgIAorLS0tLS0tLQorIEhlbGxvCisoMSBy b3cpCisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2RtbC5meDA0KHMgdmFy Y2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJAorQkVHSU4KKyAgTEVUIHNlc3ZhcjQ0ID0gczsK KyAgUkVUVVJOIFZBUklBQkxFKHNlc3ZhcjQ0KTsKK0VORAorJCQgTEFOR1VBR0UgcGxwZ3NxbAor U0VUIFNFQVJDSF9QQVRIIFRPICdzdmFydGVzdF9kbWwnOworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5m eDA0KCdIZWxsbycpOworIGZ4MDQgIAorLS0tLS0tLQorIEhlbGxvCisoMSByb3cpCisKK0NSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2RtbC5meDA1KGEgaW50LCBiIGludCwgYyBp bnQpCitSRVRVUk5TIHN2YXJ0ZXN0X2RtbC5jb21wb3NpdGVfdHlwZSBBUyAkJAorQkVHSU4KKyAg TEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSA9IFJPVyhhLCBiLCBjKTsKKyAgUkVUVVJOIFZBUklB QkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOwor U0VMRUNUIHJvd190b19qc29uKHN2YXJ0ZXN0X2RtbC5meDA1KDEwLCAyMCwgMzApKTsKKyAgICAg IHJvd190b19qc29uICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJhIjoxMCwi YiI6MjAsImMiOjMwfQorKDEgcm93KQorCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNl c3ZhcjQ1KTsKKyAgc2VzdmFyNDUgIAorLS0tLS0tLS0tLS0tCisgKDEwLDIwLDMwKQorKDEgcm93 KQorCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KS4qOworIGEgIHwgYiAg fCBjICAKKy0tLS0rLS0tLSstLS0tCisgMTAgfCAyMCB8IDMwCisoMSByb3cpCisKK1NFTEVDVCBW QVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUuYSk7CisgYSAgCistLS0tCisgMTAKKygxIHJv dykKKworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkuYTsKKyBhICAKKy0t LS0KKyAxMAorKDEgcm93KQorCitBTFRFUiBUWVBFIHN2YXJ0ZXN0X2RtbC5jb21wb3NpdGVfdHlw ZSBBREQgQVRUUklCVVRFIGQgaW50OworLS0gY29tcG9zaXRlIHZhbHVlIHNob3VsZCBiZSBzdGls bCByZWFkYWJsZQorU0VMRUNUIHJvd190b19qc29uKFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2 YXI0NSkpOworICAgICAgICAgICByb3dfdG9fanNvbiAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7ImEiOjEwLCJiIjoyMCwiYyI6MzAsImQiOm51bGx9Ciso MSByb3cpCisKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUgPSBST1coMTAwLCAyMDAsIDMwMCwg TlVMTCk7CitTRUxFQ1Qgcm93X3RvX2pzb24oVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1 KSk7CisgICAgICAgICAgICByb3dfdG9fanNvbiAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsiYSI6MTAwLCJiIjoyMDAsImMiOjMwMCwiZCI6bnVs bH0KKygxIHJvdykKKworLS0gdXNlIHZhcmlhYmxlcyBpbnNpZGUgdmlldworQ1JFQVRFIFZJRVcg c3ZhcnRlc3RfZG1sLnZpZXcwMSBBUyBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3Zh cjQ1KS4qOworU0VMRUNUICogRlJPTSBzdmFydGVzdF9kbWwudmlldzAxOworICBhICB8ICBiICB8 ICBjICB8IGQgCistLS0tLSstLS0tLSstLS0tLSstLS0KKyAxMDAgfCAyMDAgfCAzMDAgfCAgCiso MSByb3cpCisKKy0tIHN0YXJ0IG5ldyBjb25uZWN0aW9uCitcYworU0VMRUNUICogRlJPTSBzdmFy dGVzdF9kbWwudmlldzAxOworIGEgfCBiIHwgYyB8IGQgCistLS0rLS0tKy0tLSstLS0KKyAgIHwg ICB8ICAgfCAgCisoMSByb3cpCisKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUgPSBST1coNSwg NiwgNywgOCk7CitTRUxFQ1QgKiBGUk9NIHN2YXJ0ZXN0X2RtbC52aWV3MDE7CisgYSB8IGIgfCBj IHwgZCAKKy0tLSstLS0rLS0tKy0tLQorIDUgfCA2IHwgNyB8IDgKKygxIHJvdykKKworLS0gc2hv dWxkIGZhaWwgKGRlcGVuZGVuY3kpCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0 NTsKK0VSUk9SOiAgY2Fubm90IGRyb3Agc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdF9kbWwuc2Vz dmFyNDUgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgdmlldyBz dmFydGVzdF9kbWwudmlldzAxIGRlcGVuZHMgb24gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdF9k bWwuc2VzdmFyNDUKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBl bmRlbnQgb2JqZWN0cyB0b28uCitEUk9QIFZJRVcgc3ZhcnRlc3RfZG1sLnZpZXcwMTsKKy0tIHRl c3Qgb2YgYWNjZXNzIHZhcmlhYmxlcyBmcm9tIGdlbmVyaWMgcGxhbnMKK0NSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2RtbC5meDA2KCkKK1JFVFVSTlMgbnVtZXJpYyBBUyAkJAor QkVHSU4KKyAgUkVUVVJOIFZBUklBQkxFKHNlc3ZhcjQzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBs cGdzcWw7CitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKK0xFVCBz ZXN2YXI0MyA9IDYuMjg7CitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDYoKTsKKyBmeDA2IAorLS0t LS0tCisgNi4yOAorKDEgcm93KQorCitMRVQgc2VzdmFyNDMgPSBWQVJJQUJMRShzZXN2YXI0Mykg KiAyOworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7CisgZngwNiAgCistLS0tLS0tCisgMTIu NTYKKygxIHJvdykKKworLS0gcGxhbiBjYWNoZSBpbnZhbGlkYXRpb24gdGVzdAorRFJPUCBWQVJJ QUJMRSBzZXN2YXI0MzsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDYo KTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAic2VzdmFyNDMiIGRvZXNuJ3QgZXhpc3QKK0xJ TkUgMTogVkFSSUFCTEUoc2VzdmFyNDMpCisgICAgICAgICAgICAgICAgIF4KK1FVRVJZOiAgVkFS SUFCTEUoc2VzdmFyNDMpCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gc3ZhcnRlc3RfZG1s LmZ4MDYoKSBsaW5lIDMgYXQgUkVUVVJOCitDUkVBVEUgVkFSSUFCTEUgc2VzdmFyNDMgQVMgbnVt ZXJpYzsKK0xFVCBzZXN2YXI0MyA9IDIuNzI7CitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDYoKTsK KyBmeDA2IAorLS0tLS0tCisgMi43MgorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHNlc3ZhcjQz OworQ1JFQVRFIERPTUFJTiBzdmFydGVzdF9kbWwuaW50X25vdF9udWxsIEFTIGludCBDSEVDSyh2 YWx1ZSBJUyBOT1QgTlVMTCk7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ2 IEFTIHN2YXJ0ZXN0X2RtbC5pbnRfbm90X251bGw7CistLSBzaG91bGQgZmFpbAorTEVUIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0NiA9IE5VTEw7CitFUlJPUjogIHZhbHVlIGZvciBkb21haW4gc3ZhcnRl c3RfZG1sLmludF9ub3RfbnVsbCB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJpbnRfbm90X251 bGxfY2hlY2siCistLSBzaG91bGQgYmUgb2sKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDYgPSAx MDA7CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1ID0gUk9XKDEsMiwzLDQpOworTEVUIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0NS5hID0gMTAwOworU0VMRUNUIHJvd190b19qc29uKFZBUklBQkxFKHN2 YXJ0ZXN0X2RtbC5zZXN2YXI0NSkpOworICAgICAgICAgcm93X3RvX2pzb24gICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJhIjoxMDAsImIiOjIsImMiOjMsImQiOjR9 CisoMSByb3cpCisKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29ubHlf cm9sZTsKK0dSQU5UIFVTQUdFIE9OIFNDSEVNQSBzdmFydGVzdF9kbWwgVE8gcmVncmVzc19zdmFy dGVzdF9kbWxfd3JpdGVfb25seV9yb2xlOworR1JBTlQgVVBEQVRFIE9OIFZBUklBQkxFIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0NSBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7 CitTRVQgUk9MRSBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7CistLSBz aG91bGQgZmFpbAorU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSk7CitFUlJP UjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHNlc3ZhcjQ1CistLSBz aG91bGQgYmUgb2sKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUuYiA9IDIwMDsKK1NFVCBST0xF IFRPIERFRkFVTFQ7CitTRUxFQ1Qgcm93X3RvX2pzb24oVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNl c3ZhcjQ1KSk7CisgICAgICAgICAgcm93X3RvX2pzb24gICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgeyJhIjoxMDAsImIiOjIwMCwiYyI6MywiZCI6NH0KKygxIHJv dykKKworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NyBBUyBpbnRbXTsKK0xF VCBzdmFydGVzdF9kbWwuc2VzdmFyNDcgPSBBUlJBWVsxLDIsM107CitHUkFOVCBVUERBVEUgT04g VkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ3IFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dy aXRlX29ubHlfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29u bHlfcm9sZTsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNl c3ZhcjQ3KTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUg c2VzdmFyNDcKKy0tIHNob3VsZCBiZSBvaworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0N1sxXSA9 IDIwMDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1s LnNlc3ZhcjQ3KTsKKyBzZXN2YXI0NyAgCistLS0tLS0tLS0tLQorIHsyMDAsMiwzfQorKDEgcm93 KQorCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ4IEFTIGludDRtdWx0aXJh bmdlW107CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ4ID0gTlVMTDsKK0xFVCBzdmFydGVzdF9k bWwuc2VzdmFyNDggPSAneyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7CitM RVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ4WzJdID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworU0VMRUNU IFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OCk7CisgICAgICAgICAgICAgICAgc2VzdmFy NDggICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgeyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDEwMCl9In0KKygxIHJvdykKKwor LS0gdGVzdCBleHRlbmRlZCBxdWVyeSBwcm90b2NvbAorQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0 X2RtbC5zZXN2YXI0OSBBUyBpbnQ7CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ5ID0gJDEgXGJp bmQgMTAgXGcKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDkpOworIHNlc3Zh cjQ5IAorLS0tLS0tLS0tLQorICAgICAgIDEwCisoMSByb3cpCisKK0xFVCBzdmFydGVzdF9kbWwu c2VzdmFyNDkgPSAkMSBccGFyc2UgbGV0cHMKK1xiaW5kX25hbWVkIGxldHBzIDEwMCBcZworU0VM RUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OSk7Cisgc2VzdmFyNDkgCistLS0tLS0t LS0tCisgICAgICAxMDAKKygxIHJvdykKKworXGNsb3NlX3ByZXBhcmVkIGxldHBzCitEUk9QIFND SEVNQSBzdmFydGVzdF9kbWwgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMTQg b3RoZXIgb2JqZWN0cworREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxl IHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NAorZHJvcCBjYXNjYWRlcyB0byB0eXBlIHN2YXJ0ZXN0X2Rt bC5jb21wb3NpdGVfdHlwZQorZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0NQorZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBzdmFydGVzdF9kbWwu ZngwMShudW1lcmljKQorZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBzdmFydGVzdF9kbWwuZngw MigpCitkcm9wIGNhc2NhZGVzIHRvIGZ1bmN0aW9uIHN2YXJ0ZXN0X2RtbC5meDAzKGNoYXJhY3Rl ciB2YXJ5aW5nKQorZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBzdmFydGVzdF9kbWwuZngwNChj aGFyYWN0ZXIgdmFyeWluZykKK2Ryb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gc3ZhcnRlc3RfZG1s LmZ4MDUoaW50ZWdlcixpbnRlZ2VyLGludGVnZXIpCitkcm9wIGNhc2NhZGVzIHRvIGZ1bmN0aW9u IHN2YXJ0ZXN0X2RtbC5meDA2KCkKK2Ryb3AgY2FzY2FkZXMgdG8gdHlwZSBzdmFydGVzdF9kbWwu aW50X25vdF9udWxsCitkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3Rf ZG1sLnNlc3ZhcjQ2Citkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3Rf ZG1sLnNlc3ZhcjQ3Citkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3Rf ZG1sLnNlc3ZhcjQ4Citkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3Rf ZG1sLnNlc3ZhcjQ5CitEUk9QIFJPTEUgcmVncmVzc19zdmFydGVzdF9kbWxfd3JpdGVfb25seV9y b2xlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNf ZG1sLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwK aW5kZXggYjI4NzBkZGU5ZTkuLjJjOGQ2YzNhNDk3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwKQEAgLTE1OSwzICsxNTksMTkyIEBAIERST1Ag Uk9MRSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CiBEUk9QIFZBUklBQkxFIHNlc3Zh cjQwOwogCiBEUk9QIFRBQkxFIHN2YXJ0ZXN0X2RtbDsKKworQ1JFQVRFIFZBUklBQkxFIHNlc3Zh cjQzIEFTIG51bWVyaWM7CisKKy0tIExFVCBzdG10IGlzIG5vdCBhbGxvd2VkIGluc2lkZSBDVEUK K1dJVEggeCBBUyAoTEVUIHNlc3ZhcjQzID0gMy4xNCkgU0VMRUNUICogRlJPTSB4OworCistLSBM RVQgc3RtdCByZXF1aXJlcyByZXN1bHQgd2l0aCBleGFjdGx5IG9uZSByb3cKK0xFVCBzZXN2YXI0 MyA9IGdlbmVyYXRlX3NlcmllcygxLDEpOworCistLSBzaG91bGQgZmFpbAorTEVUIHNlc3ZhcjQz ID0gZ2VuZXJhdGVfc2VyaWVzKDEsMik7CitMRVQgc2VzdmFyNDMgPSBnZW5lcmF0ZV9zZXJpZXMo MSwwKTsKKworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdF9kbWw7CitDUkVBVEUgVkFSSUFCTEUgc3Zh cnRlc3RfZG1sLnNlc3ZhcjQ0IEFTIHZhcmNoYXI7CitDUkVBVEUgVFlQRSBzdmFydGVzdF9kbWwu Y29tcG9zaXRlX3R5cGUgQVMgKGEgaW50LCBiIGludCwgYyBpbnQpOworQ1JFQVRFIFZBUklBQkxF IHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSBBUyBzdmFydGVzdF9kbWwuY29tcG9zaXRlX3R5cGU7CisK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2RtbC5meDAxKG51bWVyaWMpCitS RVRVUk5TIHZvaWQgQVMgJCQKK0xFVCBzZXN2YXI0MyA9ICQxOworJCQgTEFOR1VBR0Ugc3FsOwor CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwMigpCitSRVRVUk5T IG51bWVyaWMgQVMgJCQKK1NFTEVDVCBWQVJJQUJMRShzZXN2YXI0Myk7CiskJCBMQU5HVUFHRSBz cWw7CisKK1NFTEVDVCBzdmFydGVzdF9kbWwuZngwMSgzLjE0KTsKK1NFTEVDVCBzdmFydGVzdF9k bWwuZngwMigpLCBWQVJJQUJMRShzZXN2YXI0Myk7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHN2YXJ0ZXN0X2RtbC5meDAzKHMgdmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJAor QkVHSU4KKyAgTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NCA9IHM7CisgIFJFVFVSTiBWQVJJQUJM RShzdmFydGVzdF9kbWwuc2VzdmFyNDQpOworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitT RUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDMoJ0hlbGxvJyk7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHN2YXJ0ZXN0X2RtbC5meDA0KHMgdmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAk JAorQkVHSU4KKyAgTEVUIHNlc3ZhcjQ0ID0gczsKKyAgUkVUVVJOIFZBUklBQkxFKHNlc3ZhcjQ0 KTsKK0VORAorJCQgTEFOR1VBR0UgcGxwZ3NxbAorU0VUIFNFQVJDSF9QQVRIIFRPICdzdmFydGVz dF9kbWwnOworCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDQoJ0hlbGxvJyk7CisKK0NSRUFURSBP UiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2RtbC5meDA1KGEgaW50LCBiIGludCwgYyBpbnQp CitSRVRVUk5TIHN2YXJ0ZXN0X2RtbC5jb21wb3NpdGVfdHlwZSBBUyAkJAorQkVHSU4KKyAgTEVU IHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSA9IFJPVyhhLCBiLCBjKTsKKyAgUkVUVVJOIFZBUklBQkxF KHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitT RUxFQ1Qgcm93X3RvX2pzb24oc3ZhcnRlc3RfZG1sLmZ4MDUoMTAsIDIwLCAzMCkpOworCitTRUxF Q1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KTsKK1NFTEVDVCBWQVJJQUJMRShzdmFy dGVzdF9kbWwuc2VzdmFyNDUpLio7CitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3Zh cjQ1LmEpOworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkuYTsKKworQUxU RVIgVFlQRSBzdmFydGVzdF9kbWwuY29tcG9zaXRlX3R5cGUgQUREIEFUVFJJQlVURSBkIGludDsK KworLS0gY29tcG9zaXRlIHZhbHVlIHNob3VsZCBiZSBzdGlsbCByZWFkYWJsZQorU0VMRUNUIHJv d190b19qc29uKFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkpOworCitMRVQgc3ZhcnRl c3RfZG1sLnNlc3ZhcjQ1ID0gUk9XKDEwMCwgMjAwLCAzMDAsIE5VTEwpOworU0VMRUNUIHJvd190 b19qc29uKFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkpOworCistLSB1c2UgdmFyaWFi bGVzIGluc2lkZSB2aWV3CitDUkVBVEUgVklFVyBzdmFydGVzdF9kbWwudmlldzAxIEFTIFNFTEVD VCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpLio7CitTRUxFQ1QgKiBGUk9NIHN2YXJ0 ZXN0X2RtbC52aWV3MDE7CisKKy0tIHN0YXJ0IG5ldyBjb25uZWN0aW9uCitcYworU0VMRUNUICog RlJPTSBzdmFydGVzdF9kbWwudmlldzAxOworCitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1ID0g Uk9XKDUsIDYsIDcsIDgpOworCitTRUxFQ1QgKiBGUk9NIHN2YXJ0ZXN0X2RtbC52aWV3MDE7CisK Ky0tIHNob3VsZCBmYWlsIChkZXBlbmRlbmN5KQorRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kbWwu c2VzdmFyNDU7CisKK0RST1AgVklFVyBzdmFydGVzdF9kbWwudmlldzAxOworCistLSB0ZXN0IG9m IGFjY2VzcyB2YXJpYWJsZXMgZnJvbSBnZW5lcmljIHBsYW5zCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiBzdmFydGVzdF9kbWwuZngwNigpCitSRVRVUk5TIG51bWVyaWMgQVMgJCQKK0JFR0lO CisgIFJFVFVSTiBWQVJJQUJMRShzZXN2YXI0Myk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3Fs OworCitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworTEVUIHNl c3ZhcjQzID0gNi4yODsKKworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7CisKK0xFVCBzZXN2 YXI0MyA9IFZBUklBQkxFKHNlc3ZhcjQzKSAqIDI7CisKK1NFTEVDVCBzdmFydGVzdF9kbWwuZngw NigpOworCistLSBwbGFuIGNhY2hlIGludmFsaWRhdGlvbiB0ZXN0CitEUk9QIFZBUklBQkxFIHNl c3ZhcjQzOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7CisK K0NSRUFURSBWQVJJQUJMRSBzZXN2YXI0MyBBUyBudW1lcmljOworCitMRVQgc2VzdmFyNDMgPSAy LjcyOworCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDYoKTsKKworRFJPUCBWQVJJQUJMRSBzZXN2 YXI0MzsKKworQ1JFQVRFIERPTUFJTiBzdmFydGVzdF9kbWwuaW50X25vdF9udWxsIEFTIGludCBD SEVDSyh2YWx1ZSBJUyBOT1QgTlVMTCk7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNl c3ZhcjQ2IEFTIHN2YXJ0ZXN0X2RtbC5pbnRfbm90X251bGw7CisKKy0tIHNob3VsZCBmYWlsCitM RVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ2ID0gTlVMTDsKKy0tIHNob3VsZCBiZSBvaworTEVUIHN2 YXJ0ZXN0X2RtbC5zZXN2YXI0NiA9IDEwMDsKKworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSA9 IFJPVygxLDIsMyw0KTsKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUuYSA9IDEwMDsKK1NFTEVD VCByb3dfdG9fanNvbihWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpKTsKKworQ1JFQVRF IFJPTEUgcmVncmVzc19zdmFydGVzdF9kbWxfd3JpdGVfb25seV9yb2xlOworR1JBTlQgVVNBR0Ug T04gU0NIRU1BIHN2YXJ0ZXN0X2RtbCBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5 X3JvbGU7CitHUkFOVCBVUERBVEUgT04gVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1IFRP IHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29ubHlfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVn cmVzc19zdmFydGVzdF9kbWxfd3JpdGVfb25seV9yb2xlOworCistLSBzaG91bGQgZmFpbAorU0VM RUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSk7CisKKy0tIHNob3VsZCBiZSBvawor TEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NS5iID0gMjAwOworCitTRVQgUk9MRSBUTyBERUZBVUxU OworCitTRUxFQ1Qgcm93X3RvX2pzb24oVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KSk7 CisKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDcgQVMgaW50W107CitMRVQg c3ZhcnRlc3RfZG1sLnNlc3ZhcjQ3ID0gQVJSQVlbMSwyLDNdOworCitHUkFOVCBVUERBVEUgT04g VkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ3IFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dy aXRlX29ubHlfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfd3JpdGVf b25seV9yb2xlOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2Rt bC5zZXN2YXI0Nyk7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0 N1sxXSA9IDIwMDsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VMRUNUIFZBUklBQkxFKHN2 YXJ0ZXN0X2RtbC5zZXN2YXI0Nyk7CisKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2Vz dmFyNDggQVMgaW50NG11bHRpcmFuZ2VbXTsKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDggPSBO VUxMOworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OCA9ICd7IntbMiw4KSxbMTEsMTQpfSIsIntb NSw4KSxbMTIsMTQpfSJ9JzsKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDhbMl0gPSAne1s1LDgp LFsxMiwxMDApfSc7CitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ4KTsKKwor LS0gdGVzdCBleHRlbmRlZCBxdWVyeSBwcm90b2NvbAorQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0 X2RtbC5zZXN2YXI0OSBBUyBpbnQ7CisKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDkgPSAkMSBc YmluZCAxMCBcZworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OSk7CisKK0xF VCBzdmFydGVzdF9kbWwuc2VzdmFyNDkgPSAkMSBccGFyc2UgbGV0cHMKK1xiaW5kX25hbWVkIGxl dHBzIDEwMCBcZworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OSk7CisKK1xj bG9zZV9wcmVwYXJlZCBsZXRwcworCitEUk9QIFNDSEVNQSBzdmFydGVzdF9kbWwgQ0FTQ0FERTsK K0RST1AgUk9MRSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7CmRpZmYgLS1n aXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0CmluZGV4IDgyZWFmYTkzMDNjLi4xY2VlYjIzZTkwOSAxMDA2NDQKLS0t IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKQEAgLTE1NDgsNiArMTU0OCw3IEBAIExhcmdlT2JqZWN0RGVzYwog TGF0Y2gKIExhdW5jaGVyTGFzdFN0YXJ0VGltZXNFbnRyeQogTGVycEZ1bmMKK0xldFN0bXQKIExl eERlc2NyCiBMZXhlbWVFbnRyeQogTGV4ZW1lSGFzaEtleQotLSAKMi41MS4xCgo= --0000000000001c96f9064262bb7f Content-Type: text/x-patch; charset="US-ASCII"; name="v20251030-0010-svariableReceiver.patch" Content-Disposition: attachment; filename="v20251030-0010-svariableReceiver.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhdn0db35 RnJvbSBiZDZkMTIwMzc2YTg5MjIxOTQ0NTBmZTIwZjNlNTdhZTdlMzBhNGFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMSBKdW4gMjAyNSAyMToyMDoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAv MTVdIHN2YXJpYWJsZVJlY2VpdmVyCgphbGxvd3MgdG8gc3RvcmUgcmVzdWx0IG9mIHRoZSBxdWVy eSB0byBzZXNzaW9uIHZhcmlhYmxlCgpDaGVjayBjb3JyZWN0IGZvcm1hdCBvZiByZXN1bHQgLSBv bmUgY29sdW1uLCBvbmUgcm93LgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQgICAgICAg ICB8ICAgMSArCiBzcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jIHwgMTcz ICsrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC90Y29wL2Rlc3QuYyAgICAgICAg ICAgICAgICAgIHwgICA3ICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVy LmggfCAgMjIgKysrCiBzcmMvaW5jbHVkZS90Y29wL2Rlc3QuaCAgICAgICAgICAgICAgICAgIHwg ICAxICsKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgfCAgIDEgKwog NyBmaWxlcyBjaGFuZ2VkLCAyMDYgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtl ZmlsZQppbmRleCAxMTExOGQwY2UwMi4uNzEyNDhhMzRmMjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxl CkBAIC03Niw2ICs3Niw3IEBAIE9CSlMgPSBcCiAJbm9kZVdpbmRvd0FnZy5vIFwKIAlub2RlV29y a3RhYmxlc2Nhbi5vIFwKIAlzcGkubyBcCisJc3ZhcmlhYmxlUmVjZWl2ZXIubyBcCiAJdHF1ZXVl Lm8gXAogCXRzdG9yZVJlY2VpdmVyLm8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZAppbmRleCAy Y2VhNDFmODc3MS4uNDkxMDkyZmNjNGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkCkBAIC02 NCw2ICs2NCw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ25vZGVXaW5kb3dBZ2cu YycsCiAgICdub2RlV29ya3RhYmxlc2Nhbi5jJywKICAgJ3NwaS5jJywKKyAgJ3N2YXJpYWJsZVJl Y2VpdmVyLmMnLAogICAndHF1ZXVlLmMnLAogICAndHN0b3JlUmVjZWl2ZXIuYycsCiApCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uYWFkZDQ0NmYyNzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCkBAIC0wLDAgKzEsMTczIEBACisvKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzdmFyaWFibGVSZWNlaXZlci5jCisgKgkgIEFuIGltcGxl bWVudGF0aW9uIG9mIERlc3RSZWNlaXZlciB0aGF0IHN0b3JlcyB0aGUgcmVzdWx0IHZhbHVlIGlu CisgKgkgIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxp Zm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvZXhlY3V0b3Iv c3ZhcmlhYmxlUmVjZWl2ZXIuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNs dWRlICJwb3N0Z3Jlcy5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorCisjaW5jbHVkZSAiYWNj ZXNzL2RldG9hc3QuaCIKKyNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgorI2luY2x1 ZGUgInN0b3JhZ2UvbG9jay5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVk ZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworLyoK KyAqIFRoaXMgRGVzdFJlY2VpdmVyIGlzIHVzZWQgYnkgdGhlIExFVCBjb21tYW5kIGZvciBzdG9y aW5nIHRoZSByZXN1bHQgdG8gYQorICogc2Vzc2lvbiB2YXJpYWJsZS4gIFRoZSByZXN1bHQgaGFz IHRvIGhhdmUgb25seSBvbmUgdHVwbGUgd2l0aCBvbmx5IG9uZQorICogbm9uLWRlbGV0ZWQgYXR0 cmlidXRlLiAgVGhlIHJvdyBjb3VudGVyIChmaWVsZCAicm93cyIpIGlzIGluY3JlbWVudGVkCisg KiBhZnRlciByZWNlaXZpbmcgYSByb3csIGFuZCBhbiBlcnJvciBpcyByYWlzZWQgd2hlbiB0aGVy ZSBhcmUgbm8gcm93cyBvcgorICogdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgcmVjZWl2ZWQgcm93 cy4gIEEgcmVjZWl2ZWQgdHVwbGUgY2Fubm90IHRvIGhhdmUKKyAqIGRlbGV0ZWQgYXR0cmlidXRl cy4gIFRoZSB2YWx1ZSBpcyBkZXRvYXN0ZWQgYmVmb3JlIHN0b3JpbmcgaXQgaW4gdGhlCisgKiBz ZXNzaW9uIHZhcmlhYmxlLgorICovCit0eXBlZGVmIHN0cnVjdAoreworCURlc3RSZWNlaXZlciBw dWI7CisJT2lkCQkJdmFyaWQ7CisJYm9vbAkJbmVlZF9kZXRvYXN0OwkvKiBkbyB3ZSBuZWVkIHRv IGRldG9hc3QgdGhlIGF0dHJpYnV0ZT8gKi8KKwlpbnQJCQlyb3dzOwkJCS8qIHJvdyBjb3VudGVy ICovCit9IFNWYXJpYWJsZVN0YXRlOworCisvKgorICogUHJlcGFyZSB0byByZWNlaXZlIHR1cGxl cyBmcm9tIGV4ZWN1dG9yLgorICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxlU3RhcnR1cFJlY2Vp dmVyKERlc3RSZWNlaXZlciAqc2VsZiwgaW50IG9wZXJhdGlvbiwgVHVwbGVEZXNjIHR5cGVpbmZv KQoreworCVNWYXJpYWJsZVN0YXRlICpteVN0YXRlID0gKFNWYXJpYWJsZVN0YXRlICopIHNlbGY7 CisJTE9DS1RBRwkJbG9ja3RhZyBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFk7CisJRm9ybV9wZ19h dHRyaWJ1dGUgYXR0cjsKKwlPaWQJCQl0eXBpZCBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFk7CisJ T2lkCQkJY29sbGlkIFBHX1VTRURfRk9SX0FTU0VSVFNfT05MWTsKKwlpbnQzMgkJdHlwbW9kIFBH X1VTRURfRk9SX0FTU0VSVFNfT05MWTsKKworCUFzc2VydChteVN0YXRlLT5wdWIubXlkZXN0ID09 IERlc3RWYXJpYWJsZSk7CisJQXNzZXJ0KE9pZElzVmFsaWQobXlTdGF0ZS0+dmFyaWQpKTsKKwlB c3NlcnQoU2VhcmNoU3lzQ2FjaGVFeGlzdHMxKFZBUklBQkxFT0lELCBteVN0YXRlLT52YXJpZCkp OworCUFzc2VydCh0eXBlaW5mby0+bmF0dHMgPT0gMSk7CisKKyNpZmRlZiBVU0VfQVNTRVJUX0NI RUNLSU5HCisKKwlTRVRfTE9DS1RBR19PQkpFQ1QobG9ja3RhZywKKwkJCQkJICAgTXlEYXRhYmFz ZUlkLAorCQkJCQkgICBWYXJpYWJsZVJlbGF0aW9uSWQsCisJCQkJCSAgIG15U3RhdGUtPnZhcmlk LAorCQkJCQkgICAwKTsKKworCUFzc2VydChMb2NrSGVsZEJ5TWUoJmxvY2t0YWcsIEFjY2Vzc1No YXJlTG9jaywgZmFsc2UpKTsKKworI2VuZGlmCisKKwlhdHRyID0gVHVwbGVEZXNjQXR0cih0eXBl aW5mbywgMCk7CisKKwlBc3NlcnQoIWF0dHItPmF0dGlzZHJvcHBlZCk7CisKKyNpZmRlZiBVU0Vf QVNTRVJUX0NIRUNLSU5HCisKKwlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xs aWQobXlTdGF0ZS0+dmFyaWQsCisJCQkJCQkJCQkJCSZ0eXBpZCwKKwkJCQkJCQkJCQkJJnR5cG1v ZCwKKwkJCQkJCQkJCQkJJmNvbGxpZCk7CisKKwlBc3NlcnQoYXR0ci0+YXR0dHlwaWQgPT0gdHlw aWQpOworCUFzc2VydChhdHRyLT5hdHR0eXBtb2QgPCAwIHx8IGF0dHItPmF0dHR5cG1vZCA9PSB0 eXBtb2QpOworCisjZW5kaWYKKworCW15U3RhdGUtPm5lZWRfZGV0b2FzdCA9IGF0dHItPmF0dGxl biA9PSAtMTsKKwlteVN0YXRlLT5yb3dzID0gMDsKK30KKworLyoKKyAqIFJlY2VpdmUgYSB0dXBs ZSBmcm9tIHRoZSBleGVjdXRvciBhbmQgc3RvcmUgaXQgaW4gdGhlIHNlc3Npb24gdmFyaWFibGUu CisgKi8KK3N0YXRpYyBib29sCitzdmFyaWFibGVSZWNlaXZlU2xvdChUdXBsZVRhYmxlU2xvdCAq c2xvdCwgRGVzdFJlY2VpdmVyICpzZWxmKQoreworCVNWYXJpYWJsZVN0YXRlICpteVN0YXRlID0g KFNWYXJpYWJsZVN0YXRlICopIHNlbGY7CisJRGF0dW0JCXZhbHVlOworCWJvb2wJCWlzbnVsbDsK Kwlib29sCQlmcmVldmFsID0gZmFsc2U7CisKKwkvKiBtYWtlIHN1cmUgdGhlIHR1cGxlIGlzIGZ1 bGx5IGRlY29uc3RydWN0ZWQgKi8KKwlzbG90X2dldGFsbGF0dHJzKHNsb3QpOworCisJdmFsdWUg PSBzbG90LT50dHNfdmFsdWVzWzBdOworCWlzbnVsbCA9IHNsb3QtPnR0c19pc251bGxbMF07CisK KwlpZiAobXlTdGF0ZS0+bmVlZF9kZXRvYXN0ICYmICFpc251bGwgJiYgVkFSQVRUX0lTX0VYVEVS TkFMKERhdHVtR2V0UG9pbnRlcih2YWx1ZSkpKQorCXsKKwkJdmFsdWUgPSBQb2ludGVyR2V0RGF0 dW0oZGV0b2FzdF9leHRlcm5hbF9hdHRyKChzdHJ1Y3QgdmFybGVuYSAqKQorCQkJCQkJCQkJCQkJ CSAgRGF0dW1HZXRQb2ludGVyKHZhbHVlKSkpOworCQlmcmVldmFsID0gdHJ1ZTsKKwl9CisKKwlt eVN0YXRlLT5yb3dzICs9IDE7CisKKwlpZiAobXlTdGF0ZS0+cm93cyA+IDEpCisJCWVyZXBvcnQo RVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9UT09fTUFOWV9ST1dTKSwKKwkJCQkgZXJybXNn KCJleHByZXNzaW9uIHJldHVybmVkIG1vcmUgdGhhbiBvbmUgcm93IikpKTsKKworCVNldFNlc3Np b25WYXJpYWJsZShteVN0YXRlLT52YXJpZCwgdmFsdWUsIGlzbnVsbCk7CisKKwlpZiAoZnJlZXZh bCkKKwkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKHZhbHVlKSk7CisKKwlyZXR1cm4gdHJ1ZTsKK30K KworLyoKKyAqIENsZWFuIHVwIGF0IGVuZCBvZiB0aGUgZXhlY3V0b3IgcnVuCisgKi8KK3N0YXRp YyB2b2lkCitzdmFyaWFibGVTaHV0ZG93blJlY2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZikKK3sK KwlpZiAoKChTVmFyaWFibGVTdGF0ZSAqKSBzZWxmKS0+cm93cyA9PSAwKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfTk9fREFUQV9GT1VORCksCisJCQkJIGVycm1zZygi ZXhwcmVzc2lvbiByZXR1cm5lZCBubyByb3dzIikpKTsKK30KKworLyoKKyAqIERlc3Ryb3kgdGhl IHJlY2VpdmVyIHdoZW4gd2UgYXJlIGRvbmUgd2l0aCBpdAorICovCitzdGF0aWMgdm9pZAorc3Zh cmlhYmxlRGVzdHJveVJlY2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlwZnJlZShzZWxm KTsKK30KKworLyoKKyAqIEluaXRpYWxseSBjcmVhdGUgYSBEZXN0UmVjZWl2ZXIgb2JqZWN0Lgor ICovCitEZXN0UmVjZWl2ZXIgKgorQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoT2lkIHZhcmlk KQoreworCVNWYXJpYWJsZVN0YXRlICpzZWxmID0gKFNWYXJpYWJsZVN0YXRlICopIHBhbGxvYzAo c2l6ZW9mKFNWYXJpYWJsZVN0YXRlKSk7CisKKwlzZWxmLT5wdWIucmVjZWl2ZVNsb3QgPSBzdmFy aWFibGVSZWNlaXZlU2xvdDsKKwlzZWxmLT5wdWIuclN0YXJ0dXAgPSBzdmFyaWFibGVTdGFydHVw UmVjZWl2ZXI7CisJc2VsZi0+cHViLnJTaHV0ZG93biA9IHN2YXJpYWJsZVNodXRkb3duUmVjZWl2 ZXI7CisJc2VsZi0+cHViLnJEZXN0cm95ID0gc3ZhcmlhYmxlRGVzdHJveVJlY2VpdmVyOworCXNl bGYtPnB1Yi5teWRlc3QgPSBEZXN0VmFyaWFibGU7CisKKwlzZWxmLT52YXJpZCA9IHZhcmlkOwor CisJcmV0dXJuIChEZXN0UmVjZWl2ZXIgKikgc2VsZjsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3Rjb3AvZGVzdC5jIGIvc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMKaW5kZXggYjYyMDc2NmM5 MzguLmIyZjc2NGI2NTdmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYworKysg Yi9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgImV4 ZWN1dG9yL2Z1bmN0aW9ucy5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3RxdWV1ZS5oIgogI2luY2x1 ZGUgImV4ZWN1dG9yL3RzdG9yZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3Zhcmlh YmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJsaWJwcS9saWJwcS5oIgogI2luY2x1ZGUgImxpYnBx L3BxZm9ybWF0LmgiCiAKQEAgLTE1NSw2ICsxNTYsOSBAQCBDcmVhdGVEZXN0UmVjZWl2ZXIoQ29t bWFuZERlc3QgZGVzdCkKIAogCQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgogCQkJcmV0dXJu IENyZWF0ZUV4cGxhaW5TZXJpYWxpemVEZXN0UmVjZWl2ZXIoTlVMTCk7CisKKwkJY2FzZSBEZXN0 VmFyaWFibGU6CisJCQlyZXR1cm4gQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoSW52YWxpZE9p ZCk7CiAJfQogCiAJLyogc2hvdWxkIG5ldmVyIGdldCBoZXJlICovCkBAIC0xOTEsNiArMTk1LDcg QEAgRW5kQ29tbWFuZChjb25zdCBRdWVyeUNvbXBsZXRpb24gKnFjLCBDb21tYW5kRGVzdCBkZXN0 LCBib29sIGZvcmNlX3VuZGVjb3JhdGVkX28KIAkJY2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQlj YXNlIERlc3RUdXBsZVF1ZXVlOgogCQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNl IERlc3RWYXJpYWJsZToKIAkJCWJyZWFrOwogCX0KIH0KQEAgLTIzNyw2ICsyNDIsNyBAQCBOdWxs Q29tbWFuZChDb21tYW5kRGVzdCBkZXN0KQogCQljYXNlIERlc3RUcmFuc2llbnRSZWw6CiAJCWNh c2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CisJCWNhc2Ug RGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJfQogfQpAQCAtMjgxLDYgKzI4Nyw3IEBAIFJlYWR5 Rm9yUXVlcnkoQ29tbWFuZERlc3QgZGVzdCkKIAkJY2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQlj YXNlIERlc3RUdXBsZVF1ZXVlOgogCQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNl IERlc3RWYXJpYWJsZToKIAkJCWJyZWFrOwogCX0KIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9zdmFy aWFibGVSZWNlaXZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5k YjQ0ZDhiOTRjNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJp YWJsZVJlY2VpdmVyLmgKQEAgLTAsMCArMSwyMiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgor ICogc3ZhcmlhYmxlUmVjZWl2ZXIuaAorICoJICBwcm90b3R5cGVzIGZvciBzdmFyaWFibGVSZWNl aXZlci5jCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0 Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBz cmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCisgKgorICotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKi8KKworI2lmbmRlZiBTVkFSSUFCTEVfUkVDRUlWRVJfSAorI2RlZmluZSBTVkFS SUFCTEVfUkVDRUlWRVJfSAorCisjaW5jbHVkZSAidGNvcC9kZXN0LmgiCisKK2V4dGVybiBEZXN0 UmVjZWl2ZXIgKkNyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKE9pZCB2YXJpZCk7CisKKyNlbmRp ZgkJCQkJCQkvKiBTVkFSSUFCTEVfUkVDRUlWRVJfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvdGNvcC9kZXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaAppbmRleCAwMGMwOTJlM2Q3 Yy4uNmNlM2VhMGU2MTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oCisrKyBi L3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oCkBAIC05Nyw2ICs5Nyw3IEBAIHR5cGVkZWYgZW51bQog CURlc3RUcmFuc2llbnRSZWwsCQkJLyogcmVzdWx0cyBzZW50IHRvIHRyYW5zaWVudCByZWxhdGlv biAqLwogCURlc3RUdXBsZVF1ZXVlLAkJCQkvKiByZXN1bHRzIHNlbnQgdG8gdHVwbGUgcXVldWUg Ki8KIAlEZXN0RXhwbGFpblNlcmlhbGl6ZSwJCS8qIHJlc3VsdHMgYXJlIHNlcmlhbGl6ZWQgYW5k IGRpc2NhcmRlZCAqLworCURlc3RWYXJpYWJsZSwJCQkJLyogcmVzdWx0cyBzZW50IHRvIHNlc3Np b24gdmFyaWFibGUgKi8KIH0gQ29tbWFuZERlc3Q7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KZGlm ZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggNDJmMWUyYjAxOGUuLjgyZWFmYTkzMDNjIDEwMDY0 NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMv cGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjY2NSw2ICsyNjY1LDcgQEAgU1RSTEVOCiBTVgog U1ZhcmlhYmxlRGF0YQogU1ZhcmlhYmxlCitTVmFyaWFibGVTdGF0ZQogU1lOQ0hST05JWkFUSU9O X0JBUlJJRVIKIFNZU1RFTV9JTkZPCiBTYW1wbGVTY2FuCi0tIAoyLjUxLjEKCg== --0000000000001c96f9064262bb7f Content-Type: text/x-patch; charset="US-ASCII"; name="v20251030-0009-fill-an-auxiliary-buffer-with-values-of-session-vari.patch" Content-Disposition: attachment; filename="v20251030-0009-fill-an-auxiliary-buffer-with-values-of-session-vari.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhdn0dbd6 RnJvbSAxNDdkNjk5YTQyMTcyNmJmOTQ5YWU2YjgyNDU2ZTdjYjZlYzI0YjFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMSBKdW4gMjAyNSAwNzozMjowMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkv MTVdIGZpbGwgYW4gYXV4aWxpYXJ5IGJ1ZmZlciB3aXRoIHZhbHVlcyBvZiBzZXNzaW9uCiB2YXJp YWJsZXMgdXNlZCBpbiBxdWVyeQoKYW5kIGxvY2tzIHZhcmlhYmxlcyB1c2VkIGluIHF1ZXJ5LiBO b3cgd2UgY2FuIHJlYWQgdGhlIGNvbnRlbnQgb2YgYW55CnNlc3Npb24gdmFyaWFibGUuIERpcmVj dCByZWFkaW5nIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvciBpcyBub3QgYWxsb3dlZCwKc28gd2Ug Y2Fubm90IHRvIHVzZSBzZXNzaW9uIHZhcmlhYmxlcyBpbnNpZGUgQ0FMTCBvciBFWEVDVVRFIGNv bW1hbmRzCihjYW4gYmUgc3VwcG9ydGVkIHdpdGggZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZh cmlhYmxlcyAoZnJvbSBleHByZXNzaW9uCmV4ZWN1dG9yKSAtIHBvc3Rwb25lZCkuCgpVc2luZyBz ZXNzaW9uIHZhcmlhYmxlcyBibG9ja3MgcGFyYWxsZWwgcXVlcnkgZXhlY3V0aW9uLiBJdCBpcyBu b3QKdGVjaG5pY2FsIHByb2JsZW0gKGl0IGp1c3QgbmVlZHMgYSBzZXJpYWxpemF0aW9uL2Rlc2Vy aWFsaXphdGlvbiBvZgplc19zZXNzaW9uX3ZhcmlibGVzIGJ1ZmZlciksIGJ1dCBpdCBpbmNyZWFz ZXMgYSBzaXplIG9mIHBhdGNoIChhbmQgdGhlbgppdCBpcyBwb3N0cG9uZWQpLgotLS0KIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICAyOSArKysKIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8ICA1NiArKysrKwogc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgIDI0ICsrLQogc3Jj L2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAgICAgICAgIHwgIDE0ICsrCiAuLi4v ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dCAgICAgICAgfCAxOTEgKysrKysrKysr KysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAg fCAgIDcgKy0KIC4uLi9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsICAgICB8 IDE2MSArKysrKysrKysrKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAg ICAgICAgICAgICB8ICAgMSArCiA4IGZpbGVzIGNoYW5nZWQsIDQ3OSBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHIuYwppbmRleCBmMTU2OTg3OWI1Mi4uMDQ1N2E3Mjk1MzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHIuYwpAQCAtMTA2OSw2ICsxMDY5LDM1IEBAIEV4ZWNJbml0RXhwclJlYyhFeHByICpub2RlLCBF eHByU3RhdGUgKnN0YXRlLAogCQkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNo KTsKIAkJCQkJCX0KIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIFBBUkFNX1ZBUklBQkxFOgorCQkJ CQkJeworCQkJCQkJCWludAkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IDA7CisJCQkJCQkJ U2Vzc2lvblZhcmlhYmxlVmFsdWUgKmVzX3Nlc3Npb25fdmFyaWFibGVzID0gTlVMTDsKKwkJCQkJ CQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqdmFyOworCisJCQkJCQkJaWYgKHN0YXRlLT5wYXJlbnQg JiYgc3RhdGUtPnBhcmVudC0+c3RhdGUpCisJCQkJCQkJeworCQkJCQkJCQllc19zZXNzaW9uX3Zh cmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlczsKKwkJ CQkJCQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVz X251bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwkJCQkJCQl9CisKKwkJCQkJCQlBc3NlcnQoZXNfc2Vz c2lvbl92YXJpYWJsZXMpOworCisJCQkJCQkJLyogcGFyYW1ldGVyIHNhbml0eSBjaGVja3MgKi8K KwkJCQkJCQlpZiAocGFyYW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzKQor CQkJCQkJCQllbG9nKEVSUk9SLCAicGFyYW1pZCBvZiBQQVJBTV9WQVJJQUJMRSBwYXJhbSBpcyBv dXQgb2YgcmFuZ2UiKTsKKworCQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJh bS0+cGFyYW1pZF07CisKKwkJCQkJCQkvKgorCQkJCQkJCSAqIEluIHRoaXMgY2FzZSwgcGFzcyB0 aGUgdmFsdWUgbGlrZSBhIGNvbnN0YW50LgorCQkJCQkJCSAqLworCQkJCQkJCXNjcmF0Y2gub3Bj b2RlID0gRUVPUF9DT05TVDsKKwkJCQkJCQlzY3JhdGNoLmQuY29uc3R2YWwudmFsdWUgPSB2YXIt PnZhbHVlOworCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC5pc251bGwgPSB2YXItPmlzbnVsbDsK KwkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQl9CisJCQkJ CQlicmVhazsKIAkJCQkJZGVmYXVsdDoKIAkJCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQg cGFyYW1raW5kOiAlZCIsCiAJCQkJCQkJIChpbnQpIHBhcmFtLT5wYXJhbWtpbmQpOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNNYWluLmMKaW5kZXggMjdjOWVlYzY5N2IuLjRjNWIxMDFjOGVlIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNNYWluLmMKQEAgLTQzLDcgKzQzLDkgQEAKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5o IgogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wYXJ0 aXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvbWF0dmlldy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIK ICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0 b3IuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjUGFydGl0aW9uLmgiCkBAIC0xOTYsNiArMTk4 LDYwIEBAIHN0YW5kYXJkX0V4ZWN1dG9yU3RhcnQoUXVlcnlEZXNjICpxdWVyeURlc2MsIGludCBl ZmxhZ3MpCiAJQXNzZXJ0KHF1ZXJ5RGVzYy0+c291cmNlVGV4dCAhPSBOVUxMKTsKIAllc3RhdGUt PmVzX3NvdXJjZVRleHQgPSBxdWVyeURlc2MtPnNvdXJjZVRleHQ7CiAKKwkvKgorCSAqIFRoZSBl eGVjdXRvciBkb2Vzbid0IHdvcmsgd2l0aCBzZXNzaW9uIHZhcmlhYmxlcyBkaXJlY3RseS4gVmFs dWVzIG9mCisJICogcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgY29waWVkIHRvIGEgZGVk aWNhdGVkIGFycmF5LCBhbmQgdGhpcworCSAqIGFycmF5IGlzIHBhc3NlZCB0byB0aGUgZXhlY3V0 b3IuIFRoaXMgYXJyYXkgaXMgc3RhYmxlICJzbmFwc2hvdCIgb2YKKwkgKiB2YWx1ZXMgb2YgdXNl ZCBzZXNzaW9uIHZhcmlhYmxlcy4gVGhlcmUgYXJlIHRocmVlIGJlbmVmaXRzIG9mIHRoaXMKKwkg KiBzdHJhdGVneToKKwkgKgorCSAqIC0gY29uc2lzdGVuY3kgd2l0aCBleHRlcm5hbCBwYXJhbWV0 ZXJzIGFuZCBwbHBnc3FsIHZhcmlhYmxlcywKKwkgKgorCSAqIC0gc2Vzc2lvbiB2YXJpYWJsZXMg Y2FuIGJlIHBhcmFsbGVsIHNhZmUsCisJICoKKwkgKiAtIHdlIGRvbid0IG5lZWQgbWFrZSBmcmVz aCBjb3B5IGZvciBhbnkgcmVhZCBvZiBzZXNzaW9uIHZhcmlhYmxlICh0aGlzCisJICogaXMgbmVj ZXNzYXJ5IGJlY2F1c2UgdGhlIGludGVybmFsbHkgdGhlIHNlc3Npb24gdmFyaWFibGUgY2FuIGJl IGNoYW5nZWQKKwkgKiBpbnNpZGUgcXVlcnkgZXhlY3V0aW9uIHRpbWUsIGFuZCB0aGVuIGEgcmVm ZXJlbmNlIHRvIHByZXZpb3VzbHkKKwkgKiByZXR1cm5lZCB2YWx1ZSBjYW4gYmUgY29ycnVwdGVk KS4KKwkgKi8KKwlpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykK Kwl7CisJCWludAkJCW5TZXNzaW9uVmFyaWFibGVzOworCQlpbnQJCQlpID0gMDsKKworCQkvKgor CQkgKiBJbiB0aGlzIGNhc2UsIHRoZSBxdWVyeSB1c2VzIHNlc3Npb24gdmFyaWFibGVzLCBidXQg d2UgaGF2ZSB0bworCQkgKiBwcmVwYXJlIHRoZSBhcnJheSB3aXRoIHBhc3NlZCB2YWx1ZXMgKG9m IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMpCisJCSAqIGZpcnN0LgorCQkgKi8KKwkJQXNzZXJ0KCFJ c1BhcmFsbGVsV29ya2VyKCkpOworCQluU2Vzc2lvblZhcmlhYmxlcyA9IGxpc3RfbGVuZ3RoKHF1 ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpOworCisJCS8qIGNyZWF0ZSB0 aGUgYXJyYXkgdXNlZCBmb3IgcGFzc2luZyB2YWx1ZXMgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxl cyAqLworCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZh bHVlICopCisJCQlwYWxsb2MoblNlc3Npb25WYXJpYWJsZXMgKiBzaXplb2YoU2Vzc2lvblZhcmlh YmxlVmFsdWUpKTsKKworCQkvKiBmaWxsIHRoZSBhcnJheSAqLworCQlmb3JlYWNoX29pZCh2YXJp ZCwgcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykKKwkJeworCQkJQWNs UmVzdWx0CWFjbHJlc3VsdDsKKworCQkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlh YmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQkJR2V0VXNlcklkKCksIEFDTF9TRUxFQ1Qp OworCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQlhY2xjaGVja19lcnJvcihh Y2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwKKwkJCQkJCQkgICBnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lKHZhcmlkKSk7CisKKwkJCWVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0udmFs dWUgPQorCQkJCUdldFNlc3Npb25WYXJpYWJsZSh2YXJpZCwKKwkJCQkJCQkJICAgJmVzdGF0ZS0+ ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0uaXNudWxsKTsKKworCQkJaSsrOworCQl9CisKKwkJZXN0 YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBuU2Vzc2lvblZhcmlhYmxlczsKKwl9CisK IAkvKgogCSAqIEZpbGwgaW4gdGhlIHF1ZXJ5IGVudmlyb25tZW50LCBpZiBhbnksIGZyb20gcXVl cnlEZXNjLgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNh Y2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwppbmRleCBhYjFmMmFm MTNlNS4uMWQyMGYzMzgyYjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3Bs YW5jYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCkBAIC0y MDQzLDkgKzIwNDMsMTIgQEAgU2NhblF1ZXJ5Rm9yTG9ja3MoUXVlcnkgKnBhcnNldHJlZSwgYm9v bCBhY3F1aXJlKQogCiAJLyoKIAkgKiBSZWN1cnNlIGludG8gc3VibGluayBzdWJxdWVyaWVzLCB0 b28uICBCdXQgd2UgYWxyZWFkeSBkaWQgdGhlIG9uZXMgaW4KLQkgKiB0aGUgcnRhYmxlIGFuZCBj dGVMaXN0LgorCSAqIHRoZSBydGFibGUgYW5kIGN0ZUxpc3QuICBXZSBuZWVkIHRvIGZvcmNlIGEg cmVjdXJzaXZlIGNhbGwgZm9yIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMgdG9vLCB0byBmaW5kIGFu ZCBsb2NrIHZhcmlhYmxlcyB1c2VkIGluIHRoZSBxdWVyeSAoc2VlCisJICogU2NhblF1ZXJ5V2Fs a2VyKS4KIAkgKi8KLQlpZiAocGFyc2V0cmVlLT5oYXNTdWJMaW5rcykKKwlpZiAocGFyc2V0cmVl LT5oYXNTdWJMaW5rcyB8fAorCQlwYXJzZXRyZWUtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJewog CQlxdWVyeV90cmVlX3dhbGtlcihwYXJzZXRyZWUsIFNjYW5RdWVyeVdhbGtlciwgJmFjcXVpcmUs CiAJCQkJCQkgIFFUV19JR05PUkVfUkNfU1VCUVVFUklFUyk7CkBAIC0yMDUzLDcgKzIwNTYsOCBA QCBTY2FuUXVlcnlGb3JMb2NrcyhRdWVyeSAqcGFyc2V0cmVlLCBib29sIGFjcXVpcmUpCiB9CiAK IC8qCi0gKiBXYWxrZXIgdG8gZmluZCBzdWJsaW5rIHN1YnF1ZXJpZXMgZm9yIFNjYW5RdWVyeUZv ckxvY2tzCisgKiBXYWxrZXIgdG8gZmluZCBzdWJsaW5rIHN1YnF1ZXJpZXMgb3IgcmVmZXJlbmNl ZCBzZXNzaW9uIHZhcmlhYmxlcworICogZm9yIFNjYW5RdWVyeUZvckxvY2tzCiAgKi8KIHN0YXRp YyBib29sCiBTY2FuUXVlcnlXYWxrZXIoTm9kZSAqbm9kZSwgYm9vbCAqYWNxdWlyZSkKQEAgLTIw NjgsNiArMjA3MiwyMCBAQCBTY2FuUXVlcnlXYWxrZXIoTm9kZSAqbm9kZSwgYm9vbCAqYWNxdWly ZSkKIAkJU2NhblF1ZXJ5Rm9yTG9ja3MoY2FzdE5vZGUoUXVlcnksIHN1Yi0+c3Vic2VsZWN0KSwg KmFjcXVpcmUpOwogCQkvKiBGYWxsIHRocm91Z2ggdG8gcHJvY2VzcyBsZWZ0aGFuZCBhcmdzIG9m IFN1YkxpbmsgKi8KIAl9CisJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFt CSAgICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9W QVJJQUJMRSkKKwkJeworCQkJaWYgKGFjcXVpcmUpCisJCQkJTG9ja0RhdGFiYXNlT2JqZWN0KFZh cmlhYmxlUmVsYXRpb25JZCwgcC0+cGFyYW12YXJpZCwKKwkJCQkJCQkJICAgMCwgQWNjZXNzU2hh cmVMb2NrKTsKKwkJCWVsc2UKKwkJCQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0 aW9uSWQsIHAtPnBhcmFtdmFyaWQsCisJCQkJCQkJCQkgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJ fQorCX0KIAogCS8qCiAJICogRG8gTk9UIHJlY3Vyc2UgaW50byBRdWVyeSBub2RlcywgYmVjYXVz ZSBTY2FuUXVlcnlGb3JMb2NrcyBhbHJlYWR5CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rl cy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4IDE4YWU4 ZjBkNGJiLi5iNjA0OGQ5NjkwMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25v ZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTY0NSw2ICs2NDUs MTYgQEAgdHlwZWRlZiBzdHJ1Y3QgQXN5bmNSZXF1ZXN0CiAJCQkJCQkJCSAqIHR1cGxlcykgKi8K IH0gQXN5bmNSZXF1ZXN0OwogCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKiBTZXNzaW9uVmFyaWFi bGVWYWx1ZQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBTZXNzaW9u VmFyaWFibGVWYWx1ZQoreworCWJvb2wJCWlzbnVsbDsKKwlEYXR1bQkJdmFsdWU7Cit9IFNlc3Np b25WYXJpYWJsZVZhbHVlOworCiAvKiAtLS0tLS0tLS0tLS0tLS0tCiAgKgkgIEVTdGF0ZSBpbmZv cm1hdGlvbgogICoKQEAgLTcwNCw2ICs3MTQsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgRVN0YXRlCiAJ UGFyYW1MaXN0SW5mbyBlc19wYXJhbV9saXN0X2luZm87CS8qIHZhbHVlcyBvZiBleHRlcm5hbCBw YXJhbXMgKi8KIAlQYXJhbUV4ZWNEYXRhICplc19wYXJhbV9leGVjX3ZhbHM7CS8qIHZhbHVlcyBv ZiBpbnRlcm5hbCBwYXJhbXMgKi8KIAorCS8qIFNlc3Npb24gdmFyaWFibGVzIGluZm86ICovCisJ aW50CQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOwkvKiBudW1iZXIgb2YgdXNlZCB2YXJpYWJs ZXMgKi8KKwlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqZXNfc2Vzc2lvbl92YXJpYWJsZXM7IC8qIGFy cmF5IG9mIGNvcGllcyBvZiB2YWx1ZXMgKi8KKwogCVF1ZXJ5RW52aXJvbm1lbnQgKmVzX3F1ZXJ5 RW52OwkvKiBxdWVyeSBlbnZpcm9ubWVudCAqLwogCiAJLyogT3RoZXIgd29ya2luZyBzdGF0ZTog Ki8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXNfZG1sLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNf ZG1sLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2UyMTA1OWFj YzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzX2RtbC5vdXQKQEAgLTAsMCArMSwxOTEgQEAKK0NSRUFURSBWQVJJQUJMRSBzZXN2 YXI0MCBBUyBpbnQ7CistLSBzaG91bGQgbm90IGJlIGFjY2Vzc2libGUgd2l0aG91dCB2YXJpYWJs ZSdzIGZlbmNlCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHNlc3ZhcjQwOworRVJST1I6ICBjb2x1 bW4gInNlc3ZhcjQwIiBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1Qgc2VzdmFyNDA7Cisg ICAgICAgICAgICAgICBeCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJMRShzZXN2YXI0 MCk7Cisgc2VzdmFyNDAgCistLS0tLS0tLS0tCisgICAgICAgICAKKygxIHJvdykKKworQ1JFQVRF IFNDSEVNQSBzdmFydGVzdF9kbWw7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3Zh cjQxIEFTIGludDsKKy0tIGlkZW50aWZpZXIgY29sbGlzaW9uIHRlc3QKK0NSRUFURSBUQUJMRSBz dmFydGVzdF9kbWwoc2VzdmFyNDEgaW50KTsKK0lOU0VSVCBJTlRPIHN2YXJ0ZXN0X2RtbCBWQUxV RVMoMTAwKTsKK1NFTEVDVCBzZXN2YXI0MSBGUk9NIHN2YXJ0ZXN0X2RtbDsgLS0gMTAwCisgc2Vz dmFyNDEgCistLS0tLS0tLS0tCisgICAgICAxMDAKKygxIHJvdykKKworU0VMRUNUIFZBUklBQkxF KHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7IC0tIE5VTEwKKyBzZXN2YXI0MSAKKy0tLS0tLS0tLS0K KyAgICAgICAgIAorKDEgcm93KQorCistLSBzaG91bGQgZmFpbAorU0VMRUNUIFZBUklBQkxFKHNl c3ZhcjQxKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAic2VzdmFyNDEiIGRvZXNuJ3QgZXhp c3QKK0xJTkUgMTogU0VMRUNUIFZBUklBQkxFKHNlc3ZhcjQxKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgIF4KK1NFVCBTRUFSQ0hfUEFUSCBUTyBzdmFydGVzdF9kbWw7CistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCBWQVJJQUJMRShzZXN2YXI0MSk7Cisgc2VzdmFyNDEgCistLS0tLS0tLS0tCisg ICAgICAgICAKKygxIHJvdykKKworU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CistLSBzaG91 bGQgbm90IGNyYXNoCitETyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICclJywgVkFSSUFCTEUo c3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKTsKK0VORDsKKyQkOworTk9USUNFOiAgPE5VTEw+CitDUkVB VEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwudGVzdHNxbCgpCitSRVRVUk5TIGlu dCBBUyAkJAorU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7CiskJCBMQU5H VUFHRSBzcWw7CitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLnRlc3RzcWwoKTsKKyB0ZXN0c3FsIAorLS0t LS0tLS0tCisgICAgICAgIAorKDEgcm93KQorCistLSBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBi ZSB1c2VkIGFzIHBhcmFtZXRlciBvZiBDQUxMIG9yIEVYRUNVVEUKK0NSRUFURSBPUiBSRVBMQUNF IFBST0NFRFVSRSBzdmFydGVzdF9kbWwucHJvYyhpbnQpCitBUyAkJAorQkVHSU4KKyAgUkFJU0Ug Tk9USUNFICclJywgJDE7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gc2hvdWxkIG5v dCBjcmFzaAorQ0FMTCBzdmFydGVzdF9kbWwucHJvYyhWQVJJQUJMRShzdmFydGVzdF9kbWwuc2Vz dmFyNDEpKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgaXMgbm90IHN1cHBv cnRlZCBoZXJlCitMSU5FIDE6IENBTEwgc3ZhcnRlc3RfZG1sLnByb2MoVkFSSUFCTEUoc3ZhcnRl c3RfZG1sLnNlc3ZhcjQxKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgorUFJFUEFSRSBzdmFydGVzdF9kbWxfcHJlcHN0bXQoaW50KSBBUyBTRUxFQ1QgJDE7Cist LSBzaG91bGQgbm90IGNyYXNoCitFWEVDVVRFIHN2YXJ0ZXN0X2RtbF9wcmVwc3RtdChWQVJJQUJM RShzdmFydGVzdF9kbWwuc2VzdmFyNDEpKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZl cmVuY2UgaXMgbm90IHN1cHBvcnRlZCBoZXJlCitMSU5FIDE6IEVYRUNVVEUgc3ZhcnRlc3RfZG1s X3ByZXBzdG10KFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MS4uLgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitEUk9QIFBST0NFRFVSRSBzdmFy dGVzdF9kbWwucHJvYzsKK0RFQUxMT0NBVEUgc3ZhcnRlc3RfZG1sX3ByZXBzdG10OworLS0gZG9t YWlucyBhcmUgc3VwcG9ydGVkCitDUkVBVEUgRE9NQUlOIHN2YXJ0ZXN0X2RtbF9pbnRfbm90X251 bGwgQVMgaW50IENIRUNLKHZhbHVlIElTIE5PVCBOVUxMKTsKK0NSRUFURSBWQVJJQUJMRSBzdmFy dGVzdF9kbWwuc3ZhcnRlc3Q0MiBBUyBzdmFydGVzdF9kbWxfaW50X25vdF9udWxsOworLS0gc2hv dWxkIGZhaWwKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc3ZhcnRlc3Q0Mik7CitFUlJP UjogIHZhbHVlIGZvciBkb21haW4gc3ZhcnRlc3RfZG1sX2ludF9ub3RfbnVsbCB2aW9sYXRlcyBj aGVjayBjb25zdHJhaW50ICJzdmFydGVzdF9kbWxfaW50X25vdF9udWxsX2NoZWNrIgorRFJPUCBW QVJJQUJMRSBzdmFydGVzdF9kbWwuc3ZhcnRlc3Q0MjsKK0RST1AgRE9NQUlOIHN2YXJ0ZXN0X2Rt bF9pbnRfbm90X251bGw7CitDUkVBVEUgUk9MRSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3Jv bGU7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZnVuY19zZWNkZWYo KQorUkVUVVJOUyBpbnQgQVMgJCQKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFy NDEpOworJCQgTEFOR1VBR0UgU1FMIFNFQ1VSSVRZIERFRklORVI7CitHUkFOVCBVU0FHRSBPTiBT Q0hFTUEgc3ZhcnRlc3RfZG1sIFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3JlYWRfcm9sZTsKK1NF VCBST0xFIFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3JlYWRfcm9sZTsKKy0tIHNob3VsZCBmYWls CitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKTsKK0VSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgc2VzdmFyNDEKKy0tIHNob3VsZCBmYWls CitETyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICclJywgVkFSSUFCTEUoc3ZhcnRlc3RfZG1s LnNlc3ZhcjQxKTsKK0VORDsKKyQkOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vz c2lvbiB2YXJpYWJsZSBzZXN2YXI0MQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gIlZB UklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSkiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVf Y29kZV9ibG9jayBsaW5lIDMgYXQgUkFJU0UKKy0tIHVzaW5nIHNxbCBmdW5jdGlvbiBzaG91bGQg dG8gZmFpbAorU0VMRUNUIHN2YXJ0ZXN0X2RtbC50ZXN0c3FsKCk7CitFUlJPUjogIHBlcm1pc3Np b24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHNlc3ZhcjQxCitDT05URVhUOiAgU1FMIGZ1 bmN0aW9uICJ0ZXN0c3FsIiBzdGF0ZW1lbnQgMQorLS0gdXNpbmcgc2VjdXJpdHkgZGVmaW5lciBz aG91bGQgYmUgb2sKK1NFTEVDVCBzdmFydGVzdF9kbWwuZnVuY19zZWNkZWYoKTsKKyBmdW5jX3Nl Y2RlZiAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIAorKDEgcm93KQorCitTRVQgUk9MRSBU TyBERUZBVUxUOworRFJPUCBGVU5DVElPTiBzdmFydGVzdF9kbWwuZnVuY19zZWNkZWYoKTsKK0dS QU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDEgVE8gcmVncmVzc19z dmFydGVzdF9kbWxfcmVhZF9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc19zdmFydGVzdF9kbWxf cmVhZF9yb2xlOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1s LnNlc3ZhcjQxKTsKKyBzZXN2YXI0MSAKKy0tLS0tLS0tLS0KKyAgICAgICAgIAorKDEgcm93KQor CistLSBzaG91bGQgYmUgb2sKK0RPICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCBWQVJJ QUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpOworRU5EOworJCQ7CitOT1RJQ0U6ICA8TlVMTD4K K1NFVCBST0xFIFRPIERFRkFVTFQ7CitDUkVBVEUgVEFCTEUgc3ZhcnRlc3RfZG1sLnRlc3R0YWIo YSBpbnQpOworSU5TRVJUIElOVE8gc3ZhcnRlc3RfZG1sLnRlc3R0YWIgU0VMRUNUICogRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKTsKK0NSRUFURSBJTkRFWCBzdmFydGVzdF9kbWxfdGVzdHRh Yl9hIE9OIHN2YXJ0ZXN0X2RtbC50ZXN0dGFiKGEpOworQU5BTFlaRSBzdmFydGVzdF9kbWwudGVz dHRhYjsKKy0tIGZvcmNlIGluZGV4CitTRVQgZW5hYmxlX3NlcXNjYW4gVE8gT0ZGOworLS0gaW5k ZXggc2NhbiBzaG91bGQgYmUgdXNlZAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9N IHN2YXJ0ZXN0X2RtbC50ZXN0dGFiIFdIRVJFIGEgPSBWQVJJQUJMRShzZXN2YXI0MCk7CisgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IEluZGV4IE9ubHkgU2NhbiB1c2luZyBzdmFydGVzdF9kbWxfdGVzdHRhYl9hIG9uIHRlc3R0YWIK KyAgIEluZGV4IENvbmQ6IChhID0gVkFSSUFCTEUoc2VzdmFyNDApKQorKDIgcm93cykKKworRFJP UCBJTkRFWCBzdmFydGVzdF9kbWwuc3ZhcnRlc3RfZG1sX3Rlc3R0YWJfYTsKK1NFVCBlbmFibGVf c2Vxc2NhbiBUTyBERUZBVUxUOworLS0gcGFyYWxsZWwgZXhlY3V0aW9uIHNob3VsZCBiZSBibG9j a2VkCistLSBFbmNvdXJhZ2UgdXNlIG9mIHBhcmFsbGVsIHBsYW5zCitTRVQgcGFyYWxsZWxfc2V0 dXBfY29zdCA9IDA7CitTRVQgcGFyYWxsZWxfdHVwbGVfY29zdCA9IDA7CitTRVQgbWluX3BhcmFs bGVsX3RhYmxlX3NjYW5fc2l6ZSA9IDA7CitTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dh dGhlciA9IDI7CistLSBwYXJhbGxlbCBwbGFuIHNob3VsZCBiZSB1c2VkCitFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gc3ZhcnRlc3RfZG1sLnRlc3R0YWIgV0hFUkUgYSA9IDEwMDsK KyAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgR2F0aGVyCisgICBXb3JrZXJzIFBsYW5uZWQ6IDIKKyAgIC0+ ICBQYXJhbGxlbCBTZXEgU2NhbiBvbiB0ZXN0dGFiCisgICAgICAgICBGaWx0ZXI6IChhID0gMTAw KQorKDQgcm93cykKKworLS0gcGFyYWxsZWwgcGxhbiBzaG91bGQgbm90IGJlIHVzZWQKK0VYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBzdmFydGVzdF9kbWwudGVzdHRhYiBXSEVSRSBh ID0gVkFSSUFCTEUoc2VzdmFyNDApOworICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB0 ZXN0dGFiCisgICBGaWx0ZXI6IChhID0gVkFSSUFCTEUoc2VzdmFyNDApKQorKDIgcm93cykKKwor UkVTRVQgcGFyYWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3Q7CitS RVNFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOworUkVTRVQgbWF4X3BhcmFsbGVsX3dv cmtlcnNfcGVyX2dhdGhlcjsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0X2RtbCBDQVNDQURFOworTk9U SUNFOiAgZHJvcCBjYXNjYWRlcyB0byAzIG90aGVyIG9iamVjdHMKK0RFVEFJTDogIGRyb3AgY2Fz Y2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdF9kbWwuc2VzdmFyNDEKK2Ryb3AgY2Fz Y2FkZXMgdG8gZnVuY3Rpb24gc3ZhcnRlc3RfZG1sLnRlc3RzcWwoKQorZHJvcCBjYXNjYWRlcyB0 byB0YWJsZSBzdmFydGVzdF9kbWwudGVzdHRhYgorRFJPUCBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3Rf ZG1sX3JlYWRfcm9sZTsKK0RST1AgVkFSSUFCTEUgc2VzdmFyNDA7CitEUk9QIFRBQkxFIHN2YXJ0 ZXN0X2RtbDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUg Yi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IGQ4MDAwZGEzZjg2Li44 NjBjNTI2ZWRiZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVs ZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0xMTUsNyArMTE1 LDcgQEAgdGVzdDoganNvbiBqc29uYiBqc29uX2VuY29kaW5nIGpzb25wYXRoIGpzb25wYXRoX2Vu Y29kaW5nIGpzb25iX2pzb25wYXRoIHNxbGpzb24KICMgTkI6IHRlbXAuc3FsIGRvZXMgcmVjb25u ZWN0cyB3aGljaCB0cmFuc2llbnRseSB1c2VzIDIgY29ubmVjdGlvbnMsCiAjIHNvIGtlZXAgdGhp cyBwYXJhbGxlbCBncm91cCB0byBhdCBtb3N0IDE5IHRlc3RzCiAjIC0tLS0tLS0tLS0KLXRlc3Q6 IHBsYW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9tYWluIHJhbmdlZnVuY3MgcHJl cGFyZSBjb252ZXJzaW9uIHRydW5jYXRlIGFsdGVyX3RhYmxlIHNlcXVlbmNlIHBvbHltb3JwaGlz bSByb3d0eXBlcyByZXR1cm5pbmcgbGFyZ2VvYmplY3Qgd2l0aCB4bWwgc2Vzc2lvbl92YXJpYWJs ZXNfZGRsIHNlc3Npb25fdmFyaWFibGVzX2FjbAordGVzdDogcGxhbmNhY2hlIGxpbWl0IHBscGdz cWwgY29weTIgdGVtcCBkb21haW4gcmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1bmNh dGUgYWx0ZXJfdGFibGUgc2VxdWVuY2UgcG9seW1vcnBoaXNtIHJvd3R5cGVzIHJldHVybmluZyBs YXJnZW9iamVjdCB3aXRoIHhtbAogCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBw YXJhbGxlbCB0ZXN0cwpAQCAtMTQwLDMgKzE0MCw4IEBAIHRlc3Q6IGZhc3RfZGVmYXVsdAogIyBy dW4gdGFibGVzcGFjZSB0ZXN0IGF0IHRoZSBlbmQgYmVjYXVzZSBpdCBkcm9wcyB0aGUgdGFibGVz cGFjZSBjcmVhdGVkIGR1cmluZwogIyBzZXR1cCB0aGF0IG90aGVyIHRlc3RzIG1heSB1c2UuCiB0 ZXN0OiB0YWJsZXNwYWNlCisKKyMgLS0tLS0tLS0tLQorIyBBbm90aGVyIGdyb3VwIG9mIHBhcmFs bGVsIHRlc3RzIChzZXNzaW9uIHZhcmlhYmxlcyByZWxhdGVkKQorIyAtLS0tLS0tLS0tCit0ZXN0 OiBzZXNzaW9uX3ZhcmlhYmxlc19kZGwgc2Vzc2lvbl92YXJpYWJsZXNfYWNsIHNlc3Npb25fdmFy aWFibGVzX2RtbApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXNfZG1sLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2Rt bC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmIyODcwZGRlOWU5 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXNfZG1sLnNxbApAQCAtMCwwICsxLDE2MSBAQAorQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjQwIEFT IGludDsKKworLS0gc2hvdWxkIG5vdCBiZSBhY2Nlc3NpYmxlIHdpdGhvdXQgdmFyaWFibGUncyBm ZW5jZQorLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBzZXN2YXI0MDsKKworLS0gc2hvdWxkIGJlIG9r CitTRUxFQ1QgVkFSSUFCTEUoc2VzdmFyNDApOworCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0X2Rt bDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDEgQVMgaW50OworCistLSBp ZGVudGlmaWVyIGNvbGxpc2lvbiB0ZXN0CitDUkVBVEUgVEFCTEUgc3ZhcnRlc3RfZG1sKHNlc3Zh cjQxIGludCk7CitJTlNFUlQgSU5UTyBzdmFydGVzdF9kbWwgVkFMVUVTKDEwMCk7CisKK1NFTEVD VCBzZXN2YXI0MSBGUk9NIHN2YXJ0ZXN0X2RtbDsgLS0gMTAwCitTRUxFQ1QgVkFSSUFCTEUoc3Zh cnRlc3RfZG1sLnNlc3ZhcjQxKTsgLS0gTlVMTAorCistLSBzaG91bGQgZmFpbAorU0VMRUNUIFZB UklBQkxFKHNlc3ZhcjQxKTsKKworU0VUIFNFQVJDSF9QQVRIIFRPIHN2YXJ0ZXN0X2RtbDsKKwor LS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUoc2VzdmFyNDEpOworCitTRVQgU0VBUkNI X1BBVEggVE8gREVGQVVMVDsKKworLS0gc2hvdWxkIG5vdCBjcmFzaAorRE8gJCQKK0JFR0lOCisg IFJBSVNFIE5PVElDRSAnJScsIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7CitFTkQ7 CiskJDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLnRlc3RzcWwo KQorUkVUVVJOUyBpbnQgQVMgJCQKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFy NDEpOworJCQgTEFOR1VBR0Ugc3FsOworCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLnRlc3RzcWwoKTsK KworLS0gc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBwYXJhbWV0ZXIgb2YgQ0FM TCBvciBFWEVDVVRFCitDUkVBVEUgT1IgUkVQTEFDRSBQUk9DRURVUkUgc3ZhcnRlc3RfZG1sLnBy b2MoaW50KQorQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJScsICQxOworRU5EOworJCQg TEFOR1VBR0UgcGxwZ3NxbDsKKworLS0gc2hvdWxkIG5vdCBjcmFzaAorQ0FMTCBzdmFydGVzdF9k bWwucHJvYyhWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpKTsKKworUFJFUEFSRSBzdmFy dGVzdF9kbWxfcHJlcHN0bXQoaW50KSBBUyBTRUxFQ1QgJDE7CisKKy0tIHNob3VsZCBub3QgY3Jh c2gKK0VYRUNVVEUgc3ZhcnRlc3RfZG1sX3ByZXBzdG10KFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5z ZXN2YXI0MSkpOworCitEUk9QIFBST0NFRFVSRSBzdmFydGVzdF9kbWwucHJvYzsKK0RFQUxMT0NB VEUgc3ZhcnRlc3RfZG1sX3ByZXBzdG10OworCistLSBkb21haW5zIGFyZSBzdXBwb3J0ZWQKK0NS RUFURSBET01BSU4gc3ZhcnRlc3RfZG1sX2ludF9ub3RfbnVsbCBBUyBpbnQgQ0hFQ0sodmFsdWUg SVMgTk9UIE5VTEwpOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zdmFydGVzdDQyIEFT IHN2YXJ0ZXN0X2RtbF9pbnRfbm90X251bGw7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgVkFS SUFCTEUoc3ZhcnRlc3RfZG1sLnN2YXJ0ZXN0NDIpOworCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0 X2RtbC5zdmFydGVzdDQyOworRFJPUCBET01BSU4gc3ZhcnRlc3RfZG1sX2ludF9ub3RfbnVsbDsK KworQ1JFQVRFIFJPTEUgcmVncmVzc19zdmFydGVzdF9kbWxfcmVhZF9yb2xlOworCitDUkVBVEUg T1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZnVuY19zZWNkZWYoKQorUkVUVVJOUyBp bnQgQVMgJCQKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpOworJCQgTEFO R1VBR0UgU1FMIFNFQ1VSSVRZIERFRklORVI7CisKK0dSQU5UIFVTQUdFIE9OIFNDSEVNQSBzdmFy dGVzdF9kbWwgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfcmVhZF9yb2xlOworCitTRVQgUk9MRSBU TyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CisKKy0tIHNob3VsZCBmYWlsCitTRUxF Q1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKTsKKworLS0gc2hvdWxkIGZhaWwKK0RP ICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2Vz dmFyNDEpOworRU5EOworJCQ7CisKKy0tIHVzaW5nIHNxbCBmdW5jdGlvbiBzaG91bGQgdG8gZmFp bAorU0VMRUNUIHN2YXJ0ZXN0X2RtbC50ZXN0c3FsKCk7CisKKy0tIHVzaW5nIHNlY3VyaXR5IGRl ZmluZXIgc2hvdWxkIGJlIG9rCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ1bmNfc2VjZGVmKCk7CisK K1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLmZ1bmNf c2VjZGVmKCk7CisKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFy NDEgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfcmVhZF9yb2xlOworCitTRVQgUk9MRSBUTyByZWdy ZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZB UklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7CisKKy0tIHNob3VsZCBiZSBvaworRE8gJCQK K0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJScsIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0 MSk7CitFTkQ7CiskJDsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworQ1JFQVRFIFRBQkxFIHN2 YXJ0ZXN0X2RtbC50ZXN0dGFiKGEgaW50KTsKKworSU5TRVJUIElOVE8gc3ZhcnRlc3RfZG1sLnRl c3R0YWIgU0VMRUNUICogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKTsKKworQ1JFQVRFIElO REVYIHN2YXJ0ZXN0X2RtbF90ZXN0dGFiX2EgT04gc3ZhcnRlc3RfZG1sLnRlc3R0YWIoYSk7CisK K0FOQUxZWkUgc3ZhcnRlc3RfZG1sLnRlc3R0YWI7CisKKy0tIGZvcmNlIGluZGV4CitTRVQgZW5h YmxlX3NlcXNjYW4gVE8gT0ZGOworCistLSBpbmRleCBzY2FuIHNob3VsZCBiZSB1c2VkCitFWFBM QUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gc3ZhcnRlc3RfZG1sLnRlc3R0YWIgV0hFUkUg YSA9IFZBUklBQkxFKHNlc3ZhcjQwKTsKKworRFJPUCBJTkRFWCBzdmFydGVzdF9kbWwuc3ZhcnRl c3RfZG1sX3Rlc3R0YWJfYTsKKworU0VUIGVuYWJsZV9zZXFzY2FuIFRPIERFRkFVTFQ7CisKKy0t IHBhcmFsbGVsIGV4ZWN1dGlvbiBzaG91bGQgYmUgYmxvY2tlZAorLS0gRW5jb3VyYWdlIHVzZSBv ZiBwYXJhbGxlbCBwbGFucworU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3QgPSAwOworU0VUIHBhcmFs bGVsX3R1cGxlX2Nvc3QgPSAwOworU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemUgPSAw OworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXIgPSAyOworCistLSBwYXJhbGxl bCBwbGFuIHNob3VsZCBiZSB1c2VkCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g c3ZhcnRlc3RfZG1sLnRlc3R0YWIgV0hFUkUgYSA9IDEwMDsKKworLS0gcGFyYWxsZWwgcGxhbiBz aG91bGQgbm90IGJlIHVzZWQKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBzdmFy dGVzdF9kbWwudGVzdHRhYiBXSEVSRSBhID0gVkFSSUFCTEUoc2VzdmFyNDApOworCitSRVNFVCBw YXJhbGxlbF9zZXR1cF9jb3N0OworUkVTRVQgcGFyYWxsZWxfdHVwbGVfY29zdDsKK1JFU0VUIG1p bl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemU7CitSRVNFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19w ZXJfZ2F0aGVyOworCitEUk9QIFNDSEVNQSBzdmFydGVzdF9kbWwgQ0FTQ0FERTsKK0RST1AgUk9M RSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CisKK0RST1AgVkFSSUFCTEUgc2VzdmFy NDA7CisKK0RST1AgVEFCTEUgc3ZhcnRlc3RfZG1sOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApp bmRleCA2M2U3ZjZjYTFlZC4uNDJmMWUyYjAxOGUgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 CkBAIC0yNzIzLDYgKzI3MjMsNyBAQCBTZXJpYWxpemVkVHJhbnNhY3Rpb25TdGF0ZQogU2Vzc2lv bgogU2Vzc2lvbkJhY2t1cFN0YXRlCiBTZXNzaW9uRW5kVHlwZQorU2Vzc2lvblZhcmlhYmxlVmFs dWUKIFNldENvbnN0cmFpbnRTdGF0ZQogU2V0Q29uc3RyYWludFN0YXRlRGF0YQogU2V0Q29uc3Ry YWludFRyaWdnZXJEYXRhCi0tIAoyLjUxLjEKCg== --0000000000001c96f9064262bb7f Content-Type: text/x-patch; charset="US-ASCII"; name="v20251030-0008-collect-session-variables-used-in-plan-and-assign-pa.patch" Content-Disposition: attachment; filename="v20251030-0008-collect-session-variables-used-in-plan-and-assign-pa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhdn0dbl7 RnJvbSBmY2FhMmNlNzg4MTAxY2U5ZjFiN2M0YWRjNWNkZTY3NjIzYzNmMzBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMzAgTWF5IDIwMjUgMDk6MzE6MDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4 LzE1XSBjb2xsZWN0IHNlc3Npb24gdmFyaWFibGVzIHVzZWQgaW4gcGxhbiBhbmQgYXNzaWduCiBw YXJhbWlkCgpJbiB0aGUgcGxhbiBzdGFnZSB3ZSBuZWVkIHRvIGNvbGxlY3QgdXNlZCBzZXNzaW9u IHZhcmlhYmxlcy4gT24gdGhlCm9yZGVyIG9mIHRoaXMgbGlzdCwgdGhlIHBhcmFtIG5vZGVzIGdl dHMgcGFyYW1pZCAoZml4X3BhcmFtX25vZGUpLgpUaGlzIG51bWJlciBpcyB1c2VkIChsYXRlcikg YXMgaW5kZXggdG8gYnVmZmVyIG9mIHZhbHVlcyBvZiB0aGUKdXNlZCBzZXNzaW9uIHZhcmlhYmxl cy4gVGhlIGJ1ZmZlciBpcyBwcmVwYXJlZCBhbmQgZmlsbGVkIGJ5IGV4ZWN1dG9yLgoKU29tZSB1 bnN1cHBvcnRlZCBvcHRpbWl6YXRpb25zIGFyZSBkaXNhYmxlZDoKCiogcGFyYWxsZWwgZXhlY3V0 aW9uCiogc2ltcGxlIGV4cHJlc3Npb24gZXhlY3V0aW9uIGluIFBML3BnU1FMCiogU1FMIGZ1bmN0 aW9ucyBpbmxpbmluZwoKQmVmb3JlIGV4ZWN1dGlvbiBvZiBxdWVyeSB3aXRoIHNlc3Npb24gdmFy aWFibGVzIHdlIG5lZWQgdG8gY29sbGVjdAp1c2VkIHNlc3Npb24gdmFyaWFibGVzLiBUaGlzIGxp c3QgaXMgdXNlZCBmb3IKLS0tCiBkb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbCAgICAgICAgICAg ICAgICB8ICAgNiArKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgICAgICAgICAg fCAgIDUgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jICAgICAgfCAgMTEg KysKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYyAgICAgIHwgMTI0ICsrKysr KysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJl ZS5jIHwgICAzICsKIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyAgICAgIHwg IDMzICsrKysrLQogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgICAgICAgfCAg IDYgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jICAgICAgICAgICAgIHwgIDEwICst CiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCAgICAgICAgICAgICB8ICAgNSArCiBzcmMv aW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVk ZS9vcHRpbWl6ZXIvcGxhbm1haW4uaCAgICAgICAgICB8ICAgMiArCiAxMSBmaWxlcyBjaGFuZ2Vk LCAxOTkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcGFyYWxsZWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCmluZGV4IDFj ZTlhYmY4NmY1Li42ODNkZWRlNmFkYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BhcmFsbGVs LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKQEAgLTUxNSw2ICs1MTUsMTIg QEAgRVhQTEFJTiBTRUxFQ1QgKiBGUk9NIHBnYmVuY2hfYWNjb3VudHMgV0hFUkUgZmlsbGVyIExJ S0UgJyV4JSc7CiAgICAgICAgIFBsYW4gbm9kZXMgdGhhdCByZWZlcmVuY2UgYSBjb3JyZWxhdGVk IDxsaXRlcmFsPlN1YlBsYW48L2xpdGVyYWw+LgogICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0 ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICAgUGxhbiBub2RlcyB0 aGF0IHVzZSBhIHNlc3Npb24gdmFyaWFibGUuCisgICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KICAgPC9pdGVtaXplZGxpc3Q+CiAKICA8c2VjdDIgaWQ9InBhcmFsbGVsLWxhYmVsaW5nIj4K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggMWQ2MmU2M2Q0ZjcuLmViOTFiNDZiMTI4IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtMTg3NSw2ICsxODc1LDExIEBAIGZpbmRfZXhw cl9yZWZlcmVuY2VzX3dhbGtlcihOb2RlICpub2RlLAogCXsKIAkJUGFyYW0JICAgKnBhcmFtID0g KFBhcmFtICopIG5vZGU7CiAKKwkJLyogYSB2YXJpYWJsZSBwYXJhbWV0ZXIgZGVwZW5kcyBvbiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9W QVJJQUJMRSkKKwkJCWFkZF9vYmplY3RfYWRkcmVzcyhWYXJpYWJsZVJlbGF0aW9uSWQsIHBhcmFt LT5wYXJhbXZhcmlkLCAwLAorCQkJCQkJCSAgIGNvbnRleHQtPmFkZHJzKTsKKwogCQkvKiBBIHBh cmFtZXRlciBtdXN0IGRlcGVuZCBvbiB0aGUgcGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KIAkJYWRk X29iamVjdF9hZGRyZXNzKFR5cGVSZWxhdGlvbklkLCBwYXJhbS0+cGFyYW10eXBlLCAwLAogCQkJ CQkJICAgY29udGV4dC0+YWRkcnMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmlu ZGV4IGM0ZmQ2NDZiOTk5Li5jYzAzYjAzMTFhNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Bs YW5uZXIuYwpAQCAtMzc0LDYgKzM3NCw3IEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNl LCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGludCBjdXJzb3JPcHRpb25zLAogCWdsb2ItPmRl cGVuZHNPblJvbGUgPSBmYWxzZTsKIAlnbG9iLT5wYXJ0aXRpb25fZGlyZWN0b3J5ID0gTlVMTDsK IAlnbG9iLT5yZWxfbm90bnVsbGF0dHNfaGFzaCA9IE5VTEw7CisJZ2xvYi0+c2Vzc2lvblZhcmlh YmxlcyA9IE5JTDsKIAogCS8qCiAJICogQXNzZXNzIHdoZXRoZXIgaXQncyBmZWFzaWJsZSB0byB1 c2UgcGFyYWxsZWwgbW9kZSBmb3IgdGhpcyBxdWVyeS4gV2UKQEAgLTYxNyw2ICs2MTgsOSBAQCBz dGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLCBp bnQgY3Vyc29yT3B0aW9ucywKIAlyZXN1bHQtPnBhcmFtRXhlY1R5cGVzID0gZ2xvYi0+cGFyYW1F eGVjVHlwZXM7CiAJLyogdXRpbGl0eVN0bXQgc2hvdWxkIGJlIG51bGwsIGJ1dCB3ZSBtaWdodCBh cyB3ZWxsIGNvcHkgaXQgKi8KIAlyZXN1bHQtPnV0aWxpdHlTdG10ID0gcGFyc2UtPnV0aWxpdHlT dG10OworCisJcmVzdWx0LT5zZXNzaW9uVmFyaWFibGVzID0gZ2xvYi0+c2Vzc2lvblZhcmlhYmxl czsKKwogCXJlc3VsdC0+c3RtdF9sb2NhdGlvbiA9IHBhcnNlLT5zdG10X2xvY2F0aW9uOwogCXJl c3VsdC0+c3RtdF9sZW4gPSBwYXJzZS0+c3RtdF9sZW47CiAKQEAgLTgwNSw2ICs4MDksMTMgQEAg c3VicXVlcnlfcGxhbm5lcihQbGFubmVyR2xvYmFsICpnbG9iLCBRdWVyeSAqcGFyc2UsIGNoYXIg KnBsYW5fbmFtZSwKIAkgKi8KIAlwdWxsX3VwX3N1YnF1ZXJpZXMocm9vdCk7CiAKKwkvKgorCSAq IENoZWNrIGlmIHNvbWUgc3VicXVlcnkgdXNlcyBhIHNlc3Npb24gdmFyaWFibGUuICBUaGUgZmxh ZworCSAqIGhhc1Nlc3Npb25WYXJpYWJsZXMgc2hvdWxkIGJlIHRydWUgaWYgdGhlIHF1ZXJ5IG9y IHNvbWUgc3VicXVlcnkgdXNlcyBhCisJICogc2Vzc2lvbiB2YXJpYWJsZS4KKwkgKi8KKwlwdWxs X3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhyb290KTsKKwogCS8qCiAJICogSWYgdGhpcyBpcyBh IHNpbXBsZSBVTklPTiBBTEwgcXVlcnksIGZsYXR0ZW4gaXQgaW50byBhbiBhcHBlbmRyZWwuIFdl CiAJICogZG8gdGhpcyBub3cgYmVjYXVzZSBpdCByZXF1aXJlcyBhcHBseWluZyBwdWxsX3VwX3N1 YnF1ZXJpZXMgdG8gdGhlIGxlYWYKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL3NldHJlZnMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwppbmRl eCBjY2RjOWJjMjY0YS4uYTEyYTNjNjA5NGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3NldHJlZnMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRy ZWZzLmMKQEAgLTIxMCw2ICsyMTAsOSBAQCBzdGF0aWMgTGlzdCAqc2V0X3JldHVybmluZ19jbGF1 c2VfcmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwKIHN0YXRpYyBMaXN0ICpzZXRfd2luZG93 YWdnX3J1bmNvbmRpdGlvbl9yZWZlcmVuY2VzKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJCQkJ CQkJICAgTGlzdCAqcnVuY29uZGl0aW9uLAogCQkJCQkJCQkJCQkJICAgUGxhbiAqcGxhbik7Citz dGF0aWMgYm9vbCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIoTm9kZSAqbm9k ZSwKKwkJCQkJCQkJCQkJCSBQbGFubmVySW5mbyAqcm9vdCk7CitzdGF0aWMgdm9pZCByZWNvcmRf cGxhbl92YXJpYWJsZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdmFyaWQpOwog CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTM0MSw2ICsxMzQ0LDUwIEBAIHNldF9wbGFu X3JlZnMoUGxhbm5lckluZm8gKnJvb3QsIFBsYW4gKnBsYW4sIGludCBydG9mZnNldCkKIAlyZXR1 cm4gcGxhbjsKIH0KIAorLyoKKyAqIFNlYXJjaCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlcyBp biBzdWJxdWVyaWVzCisgKi8KK3ZvaWQKK3B1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzKFBs YW5uZXJJbmZvICpyb290KQoreworCVF1ZXJ5CSAgICpxdWVyeSA9IHJvb3QtPnBhcnNlOworCisJ aWYgKHF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQorCXsKKwkJcm9vdC0+aGFzU2Vzc2lvblZh cmlhYmxlcyA9IHRydWU7CisJfQorCWVsc2UKKwl7CisJCSh2b2lkKSBxdWVyeV90cmVlX3dhbGtl cihxdWVyeSwKKwkJCQkJCQkJIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlciwK KwkJCQkJCQkJICh2b2lkICopIHJvb3QsIDApOworCX0KK30KKworc3RhdGljIGJvb2wKK3B1bGxf dXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAq cm9vdCkKK3sKKwlpZiAobm9kZSA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKElzQShu b2RlLCBRdWVyeSkpCisJeworCQlRdWVyeQkgICAqcXVlcnkgPSAoUXVlcnkgKikgbm9kZTsKKwor CQlpZiAocXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCisJCXsKKwkJCXJvb3QtPmhhc1Nlc3Np b25WYXJpYWJsZXMgPSB0cnVlOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisKKwkJLyogcmVjdXJz ZSBpbnRvIHN1YnNlbGVjdHMgKi8KKwkJcmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKChRdWVyeSAq KSBub2RlLAorCQkJCQkJCQkgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyLAor CQkJCQkJCQkgKHZvaWQgKikgcm9vdCwgMCk7CisJfQorCXJldHVybiBleHByZXNzaW9uX3RyZWVf d2Fsa2VyKG5vZGUsIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlciwKKwkJCQkJ CQkJICAodm9pZCAqKSByb290KTsKK30KKwogLyoKICAqIHNldF9pbmRleG9ubHlzY2FuX3JlZmVy ZW5jZXMKICAqCQlEbyBzZXRfcGxhbl9yZWZlcmVuY2VzIHByb2Nlc3Npbmcgb24gYW4gSW5kZXhP bmx5U2NhbgpAQCAtMjA0MSw4ICsyMDg4LDkgQEAgY29weVZhcihWYXIgKnZhcikKICAqIFRoaXMg aXMgY29kZSB0aGF0IGlzIGNvbW1vbiB0byBhbGwgdmFyaWFudHMgb2YgZXhwcmVzc2lvbi1maXhp bmcuCiAgKiBXZSBtdXN0IGxvb2sgdXAgb3BlcmF0b3Igb3Bjb2RlIGluZm8gZm9yIE9wRXhwciBh bmQgcmVsYXRlZCBub2RlcywKICAqIGFkZCBPSURzIGZyb20gcmVnY2xhc3MgQ29uc3Qgbm9kZXMg aW50byByb290LT5nbG9iLT5yZWxhdGlvbk9pZHMsIGFuZAotICogYWRkIFBsYW5JbnZhbEl0ZW1z IGZvciB1c2VyLWRlZmluZWQgZnVuY3Rpb25zIGludG8gcm9vdC0+Z2xvYi0+aW52YWxJdGVtcy4K LSAqIFdlIGFsc28gZmlsbCBpbiBjb2x1bW4gaW5kZXggbGlzdHMgZm9yIEdST1VQSU5HKCkgZXhw cmVzc2lvbnMuCisgKiBhZGQgUGxhbkludmFsSXRlbXMgZm9yIHVzZXItZGVmaW5lZCBmdW5jdGlv bnMgYW5kIHNlc3Npb24gdmFyaWFibGVzIGludG8KKyAqIHJvb3QtPmdsb2ItPmludmFsSXRlbXMu ICBXZSBhbHNvIGZpbGwgaW4gY29sdW1uIGluZGV4IGxpc3RzIGZvciBHUk9VUElORygpCisgKiBl eHByZXNzaW9ucy4KICAqCiAgKiBXZSBhc3N1bWUgaXQncyBva2F5IHRvIHVwZGF0ZSBvcGNvZGUg aW5mbyBpbi1wbGFjZS4gIFNvIHRoaXMgY291bGQgcG9zc2libHkKICAqIHNjcmliYmxlIG9uIHRo ZSBwbGFubmVyJ3MgaW5wdXQgZGF0YSBzdHJ1Y3R1cmVzLCBidXQgaXQncyBPSy4KQEAgLTIxMzIs NiArMjE4MCwxMyBAQCBmaXhfZXhwcl9jb21tb24oUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5v ZGUpCiAJCQkJZy0+Y29scyA9IGNvbHM7CiAJCX0KIAl9CisJZWxzZSBpZiAoSXNBKG5vZGUsIFBh cmFtKSkKKwl7CisJCVBhcmFtCSAgICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJaWYgKHAtPnBh cmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJCXJlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVu ZGVuY3kocm9vdCwgcC0+cGFyYW12YXJpZCk7CisJfQogfQogCiAvKgpAQCAtMjE0MSw2ICsyMTk2 LDEwIEBAIGZpeF9leHByX2NvbW1vbihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSkKICAq IElmIGl0J3MgYSBQQVJBTV9NVUxUSUVYUFIsIHJlcGxhY2UgaXQgd2l0aCB0aGUgYXBwcm9wcmlh dGUgUGFyYW0gZnJvbQogICogcm9vdC0+bXVsdGlleHByX3BhcmFtczsgb3RoZXJ3aXNlIG5vIGNo YW5nZSBpcyBuZWVkZWQuCiAgKiBKdXN0IGZvciBwYXJhbm9pYSdzIHNha2UsIHdlIG1ha2UgYSBj b3B5IG9mIHRoZSBub2RlIGluIGVpdGhlciBjYXNlLgorICoKKyAqIElmIGl0J3MgYSBQQVJBTV9W QVJJQUJMRSwgdGhlbiB3ZSBjb2xsZWN0IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaW4KKyAqIHRo ZSBsaXN0IHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZS4gIEFsc28sIGFzc2lnbiB0aGUgcGFy YW1ldGVyJ3MKKyAqICJwYXJhbWlkIiB0byB0aGUgcGFyYW1ldGVyJ3MgcG9zaXRpb24gaW4gdGhh dCBsaXN0LgogICovCiBzdGF0aWMgTm9kZSAqCiBmaXhfcGFyYW1fbm9kZShQbGFubmVySW5mbyAq cm9vdCwgUGFyYW0gKnApCkBAIC0yMTU5LDYgKzIyMTgsNDAgQEAgZml4X3BhcmFtX25vZGUoUGxh bm5lckluZm8gKnJvb3QsIFBhcmFtICpwKQogCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgUEFS QU1fTVVMVElFWFBSIElEOiAlZCIsIHAtPnBhcmFtaWQpOwogCQlyZXR1cm4gY29weU9iamVjdChs aXN0X250aChwYXJhbXMsIGNvbG5vIC0gMSkpOwogCX0KKworCWlmIChwLT5wYXJhbWtpbmQgPT0g UEFSQU1fVkFSSUFCTEUpCisJeworCQlpbnQJCQluID0gMDsKKwkJYm9vbAkJZm91bmQgPSBmYWxz ZTsKKworCQkvKiB3ZSB3aWxsIG1vZGlmeSBvYmplY3QgKi8KKwkJcCA9IChQYXJhbSAqKSBjb3B5 T2JqZWN0KHApOworCisJCS8qCisJCSAqIE5vdywgd2UgY2FuIGFjdHVhbGl6ZSBsaXN0IG9mIHNl c3Npb24gdmFyaWFibGVzLCBhbmQgd2UgY2FuCisJCSAqIGNvbXBsZXRlIHBhcmFtaWQgcGFyYW1l dGVyLgorCQkgKi8KKwkJZm9yZWFjaF9vaWQodmFyaWQsIHJvb3QtPmdsb2ItPnNlc3Npb25WYXJp YWJsZXMpCisJCXsKKwkJCWlmICh2YXJpZCA9PSBwLT5wYXJhbXZhcmlkKQorCQkJeworCQkJCXAt PnBhcmFtaWQgPSBuOworCQkJCWZvdW5kID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCW4g Kz0gMTsKKwkJfQorCisJCWlmICghZm91bmQpCisJCXsKKwkJCXJvb3QtPmdsb2ItPnNlc3Npb25W YXJpYWJsZXMgPSBsYXBwZW5kX29pZChyb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzLAorCQkJ CQkJCQkJCQkJCSAgIHAtPnBhcmFtdmFyaWQpOworCQkJcC0+cGFyYW1pZCA9IG47CisJCX0KKwor CQlyZXR1cm4gKE5vZGUgKikgcDsKKwl9CisKIAlyZXR1cm4gKE5vZGUgKikgY29weU9iamVjdChw KTsKIH0KIApAQCAtMjIyMCw3ICsyMzEzLDEwIEBAIGZpeF9hbHRlcm5hdGl2ZV9zdWJwbGFuKFBs YW5uZXJJbmZvICpyb290LCBBbHRlcm5hdGl2ZVN1YlBsYW4gKmFzcGxhbiwKICAqIHJlcGxhY2lu ZyBBZ2dyZWYgbm9kZXMgdGhhdCBzaG91bGQgYmUgcmVwbGFjZWQgYnkgaW5pdHBsYW4gb3V0cHV0 IFBhcmFtcywKICAqIGNob29zaW5nIHRoZSBiZXN0IGltcGxlbWVudGF0aW9uIGZvciBBbHRlcm5h dGl2ZVN1YlBsYW5zLAogICogbG9va2luZyB1cCBvcGVyYXRvciBvcGNvZGUgaW5mbyBmb3IgT3BF eHByIGFuZCByZWxhdGVkIG5vZGVzLAotICogYW5kIGFkZGluZyBPSURzIGZyb20gcmVnY2xhc3Mg Q29uc3Qgbm9kZXMgaW50byByb290LT5nbG9iLT5yZWxhdGlvbk9pZHMuCisgKiBhZGRpbmcgT0lE cyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRz LAorICogYXNzaWduaW5nIHBhcmFtdmFyaWQgdG8gUEFSQU1fVkFSSUFCTEUgcGFyYW1zLCBhbmQg Y29sbGVjdGluZyB0aGUKKyAqIE9JRHMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgaW4gdGhlIHJvb3Qt Pmdsb2ItPnNlc3Npb25WYXJpYWJsZXMgbGlzdAorICogKHBhcmFtdmFyaWQgaXMgdGhlIHBvc2l0 aW9uIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoaXMgbGlzdCkuCiAgKgogICogJ25vZGUn OiB0aGUgZXhwcmVzc2lvbiB0byBiZSBtb2RpZmllZAogICogJ3J0b2Zmc2V0JzogaG93IG11Y2gg dG8gaW5jcmVtZW50IHZhcm5vcyBieQpAQCAtMjI0Miw3ICsyMzM4LDggQEAgZml4X3NjYW5fZXhw cihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSwgaW50IHJ0b2Zmc2V0LCBkb3VibGUgbnVt X2V4ZWMpCiAJCXJvb3QtPm11bHRpZXhwcl9wYXJhbXMgIT0gTklMIHx8CiAJCXJvb3QtPmdsb2It Pmxhc3RQSElkICE9IDAgfHwKIAkJcm9vdC0+bWlubWF4X2FnZ3MgIT0gTklMIHx8Ci0JCXJvb3Qt Pmhhc0FsdGVybmF0aXZlU3ViUGxhbnMpCisJCXJvb3QtPmhhc0FsdGVybmF0aXZlU3ViUGxhbnMg fHwKKwkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAl7CiAJCXJldHVybiBmaXhfc2Nhbl9l eHByX211dGF0b3Iobm9kZSwgJmNvbnRleHQpOwogCX0KQEAgLTM2MzUsNiArMzczMiwyNSBAQCBy ZWNvcmRfcGxhbl90eXBlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB0eXBpZCkK IAl9CiB9CiAKKy8qCisgKiBSZWNvcmQgZGVwZW5kZW5jeSBvbiBhIHNlc3Npb24gdmFyaWFibGUu ICBUaGUgdmFyaWFibGUgY2FuIGJlIHVzZWQgYXMgYQorICogc2Vzc2lvbiB2YXJpYWJsZSBpbiBh biBleHByZXNzaW9uIGxpc3QuCisgKi8KK3N0YXRpYyB2b2lkCityZWNvcmRfcGxhbl92YXJpYWJs ZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdmFyaWQpCit7CisJUGxhbkludmFs SXRlbSAqaW52YWxfaXRlbSA9IG1ha2VOb2RlKFBsYW5JbnZhbEl0ZW0pOworCisJLyogcGFyYW1p ZCBpcyBzdGlsbCBzZXNzaW9uIHZhcmlhYmxlIGlkICovCisJaW52YWxfaXRlbS0+Y2FjaGVJZCA9 IFZBUklBQkxFT0lEOworCWludmFsX2l0ZW0tPmhhc2hWYWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZh bHVlMShWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkp OworCisJLyogYXBwZW5kIHRoaXMgdmFyaWFibGUgdG8gZ2xvYmFsLCByZWdpc3RlciBkZXBlbmRl bmN5ICovCisJcm9vdC0+Z2xvYi0+aW52YWxJdGVtcyA9IGxhcHBlbmQocm9vdC0+Z2xvYi0+aW52 YWxJdGVtcywKKwkJCQkJCQkJCSBpbnZhbF9pdGVtKTsKK30KKwogLyoKICAqIGV4dHJhY3RfcXVl cnlfZGVwZW5kZW5jaWVzCiAgKgkJR2l2ZW4gYSByZXdyaXR0ZW4sIGJ1dCBub3QgeWV0IHBsYW5u ZWQsIHF1ZXJ5IG9yIHF1ZXJpZXMKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9w cmVwL3ByZXBqb2ludHJlZS5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50 cmVlLmMKaW5kZXggNDgxZDgwMTE3OTEuLjIzNTVhN2NlOTIyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYworKysgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYwpAQCAtMTY0Nyw2ICsxNjQ3LDkgQEAgcHVsbF91cF9z aW1wbGVfc3VicXVlcnkoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKmp0bm9kZSwgUmFuZ2VUYmxF bnRyeSAqcnRlLAogCS8qIElmIHN1YnF1ZXJ5IGhhZCBhbnkgUkxTIGNvbmRpdGlvbnMsIG5vdyBt YWluIHF1ZXJ5IGRvZXMgdG9vICovCiAJcGFyc2UtPmhhc1Jvd1NlY3VyaXR5IHw9IHN1YnF1ZXJ5 LT5oYXNSb3dTZWN1cml0eTsKIAorCS8qIGlmIHRoZSBzdWJxdWVyeSBoYWQgc2Vzc2lvbiB2YXJp YWJsZXMsIHRoZSBtYWluIHF1ZXJ5IGRvZXMgdG9vICovCisJcGFyc2UtPmhhc1Nlc3Npb25WYXJp YWJsZXMgfD0gc3VicXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXM7CisKIAkvKgogCSAqIHN1YnF1 ZXJ5IHdvbid0IGJlIHB1bGxlZCB1cCBpZiBpdCBoYXNBZ2dzLCBoYXNXaW5kb3dGdW5jcywgb3IK IAkgKiBoYXNUYXJnZXRTUkZzLCBzbyBubyB3b3JrIG5lZWRlZCBvbiB0aG9zZSBmbGFncwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jIGIvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCmluZGV4IDgxZDc2OGZmMmEyLi41NWMyZWM1MGM5 NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisrKyBi L3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwpAQCAtMjUsNiArMjUsNyBAQAog I2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3By b2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNs dWRlICJleGVjdXRvci9mdW5jdGlvbnMuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC05Mzks NiArOTQwLDEzIEBAIG1heF9wYXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5vZGUsIG1heF9w YXJhbGxlbF9oYXphcmRfY29udGV4dCAqY29udGV4dCkKIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQg PT0gUEFSQU1fRVhURVJOKQogCQkJcmV0dXJuIGZhbHNlOwogCisJCS8qIHdlIGRvbid0IHN1cHBv cnQgcGFzc2luZyBzZXNzaW9uIHZhcmlhYmxlcyB0byB3b3JrZXJzICovCisJCWlmIChwYXJhbS0+ cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQl7CisJCQlpZiAobWF4X3BhcmFsbGVsX2hh emFyZF90ZXN0KFBST1BBUkFMTEVMX1JFU1RSSUNURUQsIGNvbnRleHQpKQorCQkJCXJldHVybiB0 cnVlOworCQl9CisKIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhFQyB8fAogCQkJ IWxpc3RfbWVtYmVyX2ludChjb250ZXh0LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0tPnBhcmFtaWQp KQogCQl7CkBAIC0yMzk3LDYgKzI0MDUsNyBAQCBjb252ZXJ0X3Nhb3BfdG9faGFzaGVkX3Nhb3Bf d2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAgKgkgIHZhbHVlIG9mIHRoZSBQYXJh bS4KICAqIDIuIEZvbGQgc3RhYmxlLCBhcyB3ZWxsIGFzIGltbXV0YWJsZSwgZnVuY3Rpb25zIHRv IGNvbnN0YW50cy4KICAqIDMuIFJlZHVjZSBQbGFjZUhvbGRlclZhciBub2RlcyB0byB0aGVpciBj b250YWluZWQgZXhwcmVzc2lvbnMuCisgKiA0LiBDdXJyZW50IHZhbHVlIG9mIHNlc3Npb24gdmFy aWFibGUgY2FuIGJlIHVzZWQgZm9yIGVzdGltYXRpb24gdG9vLgogICotLS0tLS0tLS0tLS0tLS0t LS0tLQogICovCiBOb2RlICoKQEAgLTI1MjMsNiArMjUzMiwyNyBAQCBldmFsX2NvbnN0X2V4cHJl c3Npb25zX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJCQkJCX0KIAkJCQkJfQogCQkJCX0KKwkJCQll bHNlIGlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFICYmCisJCQkJCQkgY29u dGV4dC0+ZXN0aW1hdGUpCisJCQkJeworCQkJCQlpbnQxNgkJdHlwTGVuOworCQkJCQlib29sCQl0 eXBCeVZhbDsKKwkJCQkJRGF0dW0JCXB2YWw7CisJCQkJCWJvb2wJCWlzbnVsbDsKKworCQkJCQln ZXRfdHlwbGVuYnl2YWwocGFyYW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCSZ0eXBMZW4sICZ0eXBC eVZhbCk7CisKKwkJCQkJcHZhbCA9IEdldFNlc3Npb25WYXJpYWJsZShwYXJhbS0+cGFyYW12YXJp ZCwgJmlzbnVsbCk7CisKKwkJCQkJcmV0dXJuIChOb2RlICopIG1ha2VDb25zdChwYXJhbS0+cGFy YW10eXBlLAorCQkJCQkJCQkJCQkgIHBhcmFtLT5wYXJhbXR5cG1vZCwKKwkJCQkJCQkJCQkJICBw YXJhbS0+cGFyYW1jb2xsaWQsCisJCQkJCQkJCQkJCSAgKGludCkgdHlwTGVuLAorCQkJCQkJCQkJ CQkgIHB2YWwsCisJCQkJCQkJCQkJCSAgaXNudWxsLAorCQkJCQkJCQkJCQkgIHR5cEJ5VmFsKTsK KwkJCQl9CiAKIAkJCQkvKgogCQkJCSAqIE5vdCByZXBsYWNlYWJsZSwgc28ganVzdCBjb3B5IHRo ZSBQYXJhbSAobm8gbmVlZCB0bwpAQCAtNDgyMiw3ICs0ODUyLDggQEAgaW5saW5lX2Z1bmN0aW9u KE9pZCBmdW5jaWQsIE9pZCByZXN1bHRfdHlwZSwgT2lkIHJlc3VsdF9jb2xsaWQsCiAJCXF1ZXJ5 dHJlZS0+bGltaXRPZmZzZXQgfHwKIAkJcXVlcnl0cmVlLT5saW1pdENvdW50IHx8CiAJCXF1ZXJ5 dHJlZS0+c2V0T3BlcmF0aW9ucyB8fAotCQlsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRhcmdldExp c3QpICE9IDEpCisJCShsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRhcmdldExpc3QpICE9IDEpIHx8 CisJCXF1ZXJ5dHJlZS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAkJZ290byBmYWlsOwogCiAJLyog SWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBjb21wb3NpdGUsIHJlc29sdmUgaXQgKi8KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKaW5kZXggNjY2MWQyYzZiNzMuLmFiMWYyYWYxM2U1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwpAQCAtNTgsNiArNTgsNyBAQAogCiAjaW5j bHVkZSAiYWNjZXNzL3RyYW5zYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVj dXRvci5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5j cy5oIgpAQCAtMTUzLDYgKzE1NCw3IEBAIEluaXRQbGFuQ2FjaGUodm9pZCkKIAlDYWNoZVJlZ2lz dGVyU3lzY2FjaGVDYWxsYmFjayhBTU9QT1BJRCwgUGxhbkNhY2hlU3lzQ2FsbGJhY2ssIChEYXR1 bSkgMCk7CiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soRk9SRUlHTlNFUlZFUk9JRCwg UGxhbkNhY2hlU3lzQ2FsbGJhY2ssIChEYXR1bSkgMCk7CiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hl Q2FsbGJhY2soRk9SRUlHTkRBVEFXUkFQUEVST0lELCBQbGFuQ2FjaGVTeXNDYWxsYmFjaywgKERh dHVtKSAwKTsKKwlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhWQVJJQUJMRU9JRCwgUGxh bkNhY2hlT2JqZWN0Q2FsbGJhY2ssIChEYXR1bSkgMCk7CiB9CiAKIC8qCkBAIC0yMTk2LDcgKzIx OTgsOSBAQCBQbGFuQ2FjaGVSZWxDYWxsYmFjayhEYXR1bSBhcmcsIE9pZCByZWxpZCkKIAogLyoK ICAqIFBsYW5DYWNoZU9iamVjdENhbGxiYWNrCi0gKgkJU3lzY2FjaGUgaW52YWwgY2FsbGJhY2sg ZnVuY3Rpb24gZm9yIFBST0NPSUQgYW5kIFRZUEVPSUQgY2FjaGVzCisgKgkJU3lzY2FjaGUgaW52 YWwgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIFRZUEVPSUQsIFBST0NPSUQsIE5BTUVTUEFDRU9JRCwK KyAqCQlPUEVST0lELCBBTU9QT1BJRCwgRk9SRUlHTlNFUlZFUk9JRCwgRk9SRUlHTkRBVEFXUkFQ UEVST0lEIGFuZAorICoJCVZBUklBQkxFT0lEIGNhY2hlcy4KICAqCiAgKiBJbnZhbGlkYXRlIGFs bCBwbGFucyBtZW50aW9uaW5nIHRoZSBvYmplY3Qgd2l0aCB0aGUgc3BlY2lmaWVkIGhhc2ggdmFs dWUsCiAgKiBvciBhbGwgcGxhbnMgbWVudGlvbmluZyBhbnkgbWVtYmVyIG9mIHRoaXMgY2FjaGUg aWYgaGFzaHZhbHVlID09IDAuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2Zt Z3IuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCmluZGV4IDBmZTYzYzZiYjgzLi5k MjZlNzQ0ZTI5NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKQEAgLTE5OTEsOSArMTk5MSwxMyBAQCBn ZXRfY2FsbF9leHByX2FyZ19zdGFibGUoTm9kZSAqZXhwciwgaW50IGFyZ251bSkKIAkgKi8KIAlp ZiAoSXNBKGFyZywgQ29uc3QpKQogCQlyZXR1cm4gdHJ1ZTsKLQlpZiAoSXNBKGFyZywgUGFyYW0p ICYmCi0JCSgoUGFyYW0gKikgYXJnKS0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTikKLQkJcmV0 dXJuIHRydWU7CisJaWYgKElzQShhcmcsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAgICpwID0gKFBh cmFtICopIGFyZzsKKworCQlpZiAocC0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTiB8fCBwLT5w YXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CiAKIAlyZXR1 cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCmluZGV4IDMwZDg4OWI1NGM1Li43NWE4NjNk YWQ5MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKKysrIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKQEAgLTE4OSw2ICsxODksOSBAQCB0eXBlZGVmIHN0 cnVjdCBQbGFubmVyR2xvYmFsCiAJLyogZXh0ZW5zaW9uIHN0YXRlICovCiAJdm9pZAkgICoqZXh0 ZW5zaW9uX3N0YXRlIHBnX25vZGVfYXR0cihyZWFkX3dyaXRlX2lnbm9yZSk7CiAJaW50CQkJZXh0 ZW5zaW9uX3N0YXRlX2FsbG9jYXRlZDsKKworCS8qIGxpc3Qgb2YgdXNlZCBzZXNzaW9uIHZhcmlh YmxlcyAqLworCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CiB9IFBsYW5uZXJHbG9iYWw7CiAK IC8qIG1hY3JvIGZvciBmZXRjaGluZyB0aGUgUGxhbiBhc3NvY2lhdGVkIHdpdGggYSBTdWJQbGFu IG5vZGUgKi8KQEAgLTU0Nyw2ICs1NTAsOCBAQCBzdHJ1Y3QgUGxhbm5lckluZm8KIAlib29sCQlo YXNSZWN1cnNpb247CiAJLyogdHJ1ZSBpZiBhIHBsYW5uZXIgZXh0ZW5zaW9uIG1heSByZXBsYW4g dGhpcyBzdWJxdWVyeSAqLwogCWJvb2wJCWFzc3VtZVJlcGxhbm5pbmc7CisJLyogdHJ1ZSBpZiBz ZXNzaW9uIHZhcmlhYmxlcyB3ZXJlIHVzZWQgKi8KKwlib29sCQloYXNTZXNzaW9uVmFyaWFibGVz OwogCiAJLyoKIAkgKiBUaGUgcmFuZ2V0YWJsZSBpbmRleCBmb3IgdGhlIFJURV9HUk9VUCBSVEUs IG9yIDAgaWYgdGhlcmUgaXMgbm8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5u b2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggN2NkZDJiNTFjOTQu LmNmNGJmYWI4OTgxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAor KysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMTU4LDYgKzE1OCw5IEBAIHR5 cGVkZWYgc3RydWN0IFBsYW5uZWRTdG10CiAJICovCiAJTGlzdAkgICAqZXh0ZW5zaW9uX3N0YXRl OwogCisJLyogT0lEcyBmb3IgUEFSQU1fVkFSSUFCTEUgUGFyYW1zICovCisJTGlzdAkgICAqc2Vz c2lvblZhcmlhYmxlczsKKwogCS8qIHN0YXRlbWVudCBsb2NhdGlvbiBpbiBzb3VyY2Ugc3RyaW5n IChjb3BpZWQgZnJvbSBRdWVyeSkgKi8KIAkvKiBzdGFydCBsb2NhdGlvbiwgb3IgLTEgaWYgdW5r bm93biAqLwogCVBhcnNlTG9jCXN0bXRfbG9jYXRpb247CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9vcHRpbWl6ZXIvcGxhbm1haW4uaCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5o CmluZGV4IDA5YjQ4YjI2ZjhmLi5jNzllYTBlYTE4YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv b3B0aW1pemVyL3BsYW5tYWluLmgKKysrIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWlu LmgKQEAgLTEzMiw0ICsxMzIsNiBAQCBleHRlcm4gdm9pZCByZWNvcmRfcGxhbl9mdW5jdGlvbl9k ZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgZnVuY2lkKTsKIGV4dGVybiB2b2lkIHJl Y29yZF9wbGFuX3R5cGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHR5cGlkKTsK IGV4dGVybiBib29sIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2Rl LCBQbGFubmVySW5mbyAqY29udGV4dCk7CiAKK2V4dGVybiB2b2lkIHB1bGxfdXBfaGFzX3Nlc3Np b25fdmFyaWFibGVzKFBsYW5uZXJJbmZvICpyb290KTsKKwogI2VuZGlmCQkJCQkJCS8qIFBMQU5N QUlOX0ggKi8KLS0gCjIuNTEuMQoK --0000000000001c96f9064262bb7f Content-Type: text/x-patch; charset="US-ASCII"; name="v20251030-0007-local-HASHTAB-for-currently-used-session-variables-a.patch" Content-Disposition: attachment; filename="v20251030-0007-local-HASHTAB-for-currently-used-session-variables-a.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhdn0dby8 RnJvbSA3MmQzMDFiNTFmZmY0ZjBjNGI5NzA4MDgzMTA5ZGQyYTUyMmNkM2YzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMzAgTWF5IDIwMjUgMjI6NDQ6NTggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3 LzE1XSBsb2NhbCBIQVNIVEFCIGZvciBjdXJyZW50bHkgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyBh bmQKIGxvdyBsZXZlbCBhY2Nlc3MgZnVuY3Rpb25zCgpTZXNzaW9uIHZhcmlhYmxlcyBhcmUgc3Rv cmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGEgZGVkaWNhdGVkIGhhc2ggdGFibGUuClRoZXkgYXJl IHNldCBieSB0aGUgTEVUIGNvbW1hbmQgYW5kIHJlYWQgYnkgdGhlIFNFTEVDVCBjb21tYW5kLgpU aGUgYWNjZXNzIHJpZ2h0cyBzaG91bGQgYmUgY2hlY2tlZC4KCkhhc2ggZW50cmllcyByZWxhdGVk IHRvIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCByZWxlYXNlZC4gVGhlIG1lbW9y eQpjbGVhbmluZyBpcyBpbXBsZW1lbnRlZCBpbiBtZW1vcnktY2xlYW5pbmctYWZ0ZXItRFJPUC1W QVJJQUJMRSBwYXRjaC4KLS0tCiBkb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCAgICAgICAgICAg ICAgfCAgIDUgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyB8IDQy OCArKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuaCB8ICAgMyArCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAg ICAgfCAgIDIgKwogNCBmaWxlcyBjaGFuZ2VkLCA0MzYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCBiL2RvYy9zcmMv c2dtbC9nbG9zc2FyeS5zZ21sCmluZGV4IGMzN2ZkNWRhNTBiLi45N2NkMTM5NTdiYiAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2dsb3Nz YXJ5LnNnbWwKQEAgLTE3MTcsOCArMTcxNyw5IEBACiAgICAgPHBhcmE+CiAgICAgIEEgcGVyc2lz dGVudCBkYXRhYmFzZSBvYmplY3QgdGhhdCBob2xkcyBhIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5 LiAgVGhpcwogICAgICB2YWx1ZSBpcyBwcml2YXRlIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVs ZWFzZWQgd2hlbiB0aGUgc2Vzc2lvbiBlbmRzLgotICAgICBSZWFkIG9yIHdyaXRlIGFjY2VzcyB0 byBzZXNzaW9uIHZhcmlhYmxlcyBpcyBjb250cm9sbGVkIGJ5IHByaXZpbGVnZXMsCi0gICAgIHNp bWlsYXIgdG8gb3RoZXIgZGF0YWJhc2Ugb2JqZWN0cy4KKyAgICAgVGhlIGRlZmF1bHQgdmFsdWUg b2YgdGhlIHNlc3Npb24gdmFyaWFibGUgaXMgbnVsbC4gIFJlYWQgb3Igd3JpdGUgYWNjZXNzCisg ICAgIHRvIHNlc3Npb24gdmFyaWFibGVzIGlzIGNvbnRyb2xsZWQgYnkgcHJpdmlsZWdlcywgc2lt aWxhciB0byBvdGhlciBkYXRhYmFzZQorICAgICBvYmplY3RzLgogICAgIDwvcGFyYT4KICAgICA8 cGFyYT4KICAgICAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwt c2Vzc2lvbi12YXJpYWJsZXMiLz4uCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMKaW5kZXggZjY0MWUwMGMxYWMuLmRiYzA1NDc5NWJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0xNCwxNCArMTQsNDQyIEBACiAgKi8KICNpbmNsdWRlICJw b3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwYXJzZXIvcGFy c2VfdHlwZS5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInN0b3JhZ2Uv cHJvYy5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZGF0 dW0uaCIKKyNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNo ZS5oIgorI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2Fj aGUuaCIKKworLyoKKyAqIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0b3Jl ZCBpbiB0aGUgYmFja2VuZCdzIHByaXZhdGUgbWVtb3J5CisgKiBpbiB0aGUgZGVkaWNhdGVkIG1l bW9yeSBjb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaW4gYmluYXJ5IGZvcm1hdC4KKyAq IFRoZXkgYXJlIHN0b3JlZCBpbiB0aGUgInNlc3Npb252YXJzIiBoYXNoIHRhYmxlLCB3aG9zZSBr ZXkgaXMgdGhlIE9JRCBvZiB0aGUKKyAqIHZhcmlhYmxlLiAgSG93ZXZlciwgdGhlIE9JRCBpcyBu b3QgZ29vZCBlbm91Z2ggdG8gaWRlbnRpZnkgYSBzZXNzaW9uCisgKiB2YXJpYWJsZTogY29uY3Vy cmVudCBzZXNzaW9ucyBjb3VsZCBkcm9wIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGFuZCBjcmVhdGUg YQorICogbmV3IG9uZSwgd2hpY2ggY291bGQgYmUgYXNzaWduZWQgdGhlIHNhbWUgT0lELiAgVG8g ZW5zdXJlIHRoYXQgdGhlIHZhbHVlcworICogc3RvcmVkIGluIG1lbW9yeSBhbmQgdGhlIGNhdGFs b2cgZGVmaW5pdGlvbiBtYXRjaCwgd2UgYWxzbyBrZWVwIHRyYWNrIG9mCisgKiB0aGUgImNyZWF0 ZV9sc24iLiAgQmVmb3JlIGFueSBhY2Nlc3MgdG8gdGhlIHZhcmlhYmxlIHZhbHVlcywgd2UgbmVl ZCB0bworICogY2hlY2sgaWYgdGhlIExTTiBzdG9yZWQgaW4gbWVtb3J5IG1hdGNoZXMgdGhlIExT TiBpbiB0aGUgY2F0YWxvZy4gIElmIHRoZXJlCisgKiBpcyBhIG1pc21hdGNoIGJldHdlZW4gdGhl IExTTnMsIG9yIGlmIHRoZSBPSUQgaXMgbm90IHByZXNlbnQgaW4gcGdfdmFyaWFibGUKKyAqIGF0 IGFsbCwgdGhlIHZhbHVlIHN0b3JlZCBpbiBtZW1vcnkgaXMgcmVsZWFzZWQuCisgKi8KK3R5cGVk ZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKK3sKKwlPaWQJCQl2YXJpZDsJCQkvKiBwZ192YXJpYWJs ZSBPSUQgb2YgdGhlIHZhcmlhYmxlIChoYXNoIGtleSkgKi8KKwlYTG9nUmVjUHRyCWNyZWF0ZV9s c247CisKKwlib29sCQlpc251bGw7CisJRGF0dW0JCXZhbHVlOworCisJT2lkCQkJdHlwaWQ7CisJ aW50MTYJCXR5cGxlbjsKKwlib29sCQl0eXBieXZhbDsKKworCWJvb2wJCWlzX2RvbWFpbjsKKwor CS8qCisJICogZG9tYWluX2NoZWNrX2V4dHJhIGhvbGRzIGNhY2hlZCBkb21haW4gbWV0YWRhdGEu ICBUaGlzICJleHRyYSIgaXMKKwkgKiB1c3VhbGx5IHN0b3JlZCBpbiBmbl9tY3h0LiAgV2UgZG8g bm90IGhhdmUgYWNjZXNzIHRvIHRoYXQgbWVtb3J5CisJICogY29udGV4dCBmb3Igc2Vzc2lvbiB2 YXJpYWJsZXMsIGJ1dCB3ZSBjYW4gdXNlIFRvcFRyYW5zYWN0aW9uQ29udGV4dAorCSAqIGluc3Rl YWQuIEEgZnJlc2ggdmFsdWUgaXMgZm9yY2VkIHdoZW4gd2UgZGV0ZWN0IHdlIGFyZSBpbiBhIGRp ZmZlcmVudAorCSAqIHRyYW5zYWN0aW9uICh0aGUgbG9jYWwgdHJhbnNhY3Rpb24gSUQgZGlmZmVy cyBmcm9tCisJICogZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQpLgorCSAqLworCXZvaWQJICAgKmRv bWFpbl9jaGVja19leHRyYTsKKwlMb2NhbFRyYW5zYWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4dHJh X2x4aWQ7CisKKwkvKgorCSAqIFN0b3JlZCB2YWx1ZSBhbmQgdHlwZSBkZXNjcmlwdGlvbiBjYW4g YmUgb3V0ZGF0ZWQgd2hlbiB3ZSByZWNlaXZlIGEKKwkgKiBzaW52YWwgbWVzc2FnZS4gIFdlIHRo ZW4gaGF2ZSB0byBjaGVjayBpZiB0aGUgc3RvcmVkIGRhdGEgYXJlIHN0aWxsCisJICogdHJ1c3R3 b3J0aHkuCisJICovCisJYm9vbAkJaXNfdmFsaWQ7CisKKwl1aW50MzIJCWhhc2h2YWx1ZTsJCS8q IHVzZWQgZm9yIHBhaXJpbmcgc2ludmFsIG1lc3NhZ2UgKi8KK30gU1ZhcmlhYmxlRGF0YTsKKwor dHlwZWRlZiBTVmFyaWFibGVEYXRhICpTVmFyaWFibGU7CisKK3N0YXRpYyBIVEFCICpzZXNzaW9u dmFycyA9IE5VTEw7CS8qIGhhc2ggdGFibGUgZm9yIHNlc3Npb24gdmFyaWFibGVzICovCisKK3N0 YXRpYyBNZW1vcnlDb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgPSBOVUxMOworCisvKgor ICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHNlc3Npb24gdmFyaWFibGUgaW52YWxpZGF0aW9uLgor ICovCitzdGF0aWMgdm9pZAorcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJnLCBp bnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKK3sKKwlIQVNIX1NFUV9TVEFUVVMgc3RhdHVz OworCVNWYXJpYWJsZQlzdmFyOworCisJZWxvZyhERUJVRzEsICJwZ192YXJpYWJsZV9jYWNoZV9j YWxsYmFjayAldSAldSIsIGNhY2hlaWQsIGhhc2h2YWx1ZSk7CisKKwlBc3NlcnQoc2Vzc2lvbnZh cnMpOworCisJLyoKKwkgKiBJZiB0aGUgaGFzaHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQsIHdlIGhh dmUgdG8gcmVjaGVjayBhbGwgY3VycmVudGx5CisJICogdXNlZCBzZXNzaW9uIHZhcmlhYmxlcy4g IFNpbmNlIHdlIGNhbid0IHRlbGwgdGhlIGV4YWN0IHNlc3Npb24gdmFyaWFibGUKKwkgKiBmcm9t IGl0cyBoYXNodmFsdWUsIHdlIGhhdmUgdG8gaXRlcmF0ZSBvdmVyIGFsbCBpdGVtcyBpbiB0aGUg aGFzaAorCSAqIGJ1Y2tldC4KKwkgKi8KKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252 YXJzKTsKKworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgmc3Rh dHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmIChoYXNodmFsdWUgPT0gMCB8fCBzdmFyLT5oYXNodmFs dWUgPT0gaGFzaHZhbHVlKQorCQl7CisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQl9CisJ fQorfQorCisvKgorICogUmVsZWFzZSBzdG9yZWQgdmFsdWUsIGZyZWUgbWVtb3J5CisgKi8KK3N0 YXRpYyB2b2lkCitmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoU1ZhcmlhYmxlIHN2YXIpCit7 CisJLyogY2xlYW4gdGhlIGN1cnJlbnQgdmFsdWUgKi8KKwlpZiAoIXN2YXItPmlzbnVsbCkKKwl7 CisJCWlmICghc3Zhci0+dHlwYnl2YWwpCisJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoc3Zhci0+ dmFsdWUpKTsKKworCQlzdmFyLT5pc251bGwgPSB0cnVlOworCX0KKworCXN2YXItPnZhbHVlID0g KERhdHVtKSAwOworfQorCisvKgorICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIGVudHJ5IGluIHBn X3ZhcmlhYmxlIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgZ2l2ZW4KKyAqIHNlc3Npb24gdmFyaWFi bGUuCisgKi8KK3N0YXRpYyBib29sCitpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKFNWYXJpYWJs ZSBzdmFyKQoreworCUhlYXBUdXBsZQl0cDsKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKworCUFz c2VydChPaWRJc1ZhbGlkKHN2YXItPnZhcmlkKSk7CisKKwl0cCA9IFNlYXJjaFN5c0NhY2hlMShW QVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShzdmFyLT52YXJpZCkpOworCisJaWYgKEhlYXBU dXBsZUlzVmFsaWQodHApKQorCXsKKwkJLyoKKwkJICogVGhlIE9JRCBhbG9uZSBpcyBub3QgZW5v dWdoIGFzIGFuIHVuaXF1ZSBpZGVudGlmaWVyLCBiZWNhdXNlIE9JRAorCQkgKiB2YWx1ZXMgZ2V0 IHJlY3ljbGVkLCBhbmQgYSBuZXcgc2Vzc2lvbiB2YXJpYWJsZSBjb3VsZCBoYXZlIGdvdCB0aGUK KwkJICogc2FtZSBPSUQuICBXZSBkbyBhIHNlY29uZCBjaGVjayBhZ2FpbnN0IHRoZSA2NC1iaXQg TFNOIHdoZW4gdGhlCisJCSAqIHZhcmlhYmxlIHdhcyBjcmVhdGVkLgorCQkgKi8KKwkJaWYgKHN2 YXItPmNyZWF0ZV9sc24gPT0gKChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHApKS0+dmFy Y3JlYXRlX2xzbikKKwkJCXJlc3VsdCA9IHRydWU7CisKKwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsK Kwl9CisKKwlyZXR1cm4gcmVzdWx0OworfQorCisvKgorICogSW5pdGlhbGl6ZSBhdHRyaWJ1dGVz IGNhY2hlZCBpbiAic3ZhciIKKyAqLworc3RhdGljIHZvaWQKK3NldHVwX3Nlc3Npb25fdmFyaWFi bGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1f cGdfdmFyaWFibGUgdmFyZm9ybTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwl0 dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQp KTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUg bG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZv cm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwlzdmFyLT52YXJpZCA9 IHZhcmlkOworCXN2YXItPmNyZWF0ZV9sc24gPSB2YXJmb3JtLT52YXJjcmVhdGVfbHNuOworCisJ c3Zhci0+dHlwaWQgPSB2YXJmb3JtLT52YXJ0eXBlOworCisJZ2V0X3R5cGxlbmJ5dmFsKHN2YXIt PnR5cGlkLCAmc3Zhci0+dHlwbGVuLCAmc3Zhci0+dHlwYnl2YWwpOworCisJc3Zhci0+aXNfZG9t YWluID0gKGdldF90eXB0eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsK KwlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOworCXN2YXItPmRvbWFpbl9jaGVja19l eHRyYV9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKKworCXN2YXItPmlzbnVsbCA9 IHRydWU7CisJc3Zhci0+dmFsdWUgPSAoRGF0dW0pIDA7CisKKwlzdmFyLT5pc192YWxpZCA9IHRy dWU7CisKKwlzdmFyLT5oYXNodmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVP SUQsCisJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCVJlbGVhc2VTeXND YWNoZSh0dXApOworfQorCisvKgorICogQXNzaWduIGEgbmV3IHZhbHVlIHRvIHRoZSBzZXNzaW9u IHZhcmlhYmxlLiAgSXQgaXMgY29waWVkIHRvCisgKiBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGlm IG5lY2Vzc2FyeS4KKyAqCisgKiBJZiBhbnkgZXJyb3IgaGFwcGVucywgdGhlIGV4aXN0aW5nIHZh bHVlIHdvbid0IGJlIG1vZGlmaWVkLgorICovCitzdGF0aWMgdm9pZAorc2V0X3Nlc3Npb25fdmFy aWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKK3sKKwlEYXR1 bQkJbmV3dmFsOworCVNWYXJpYWJsZURhdGEgbG9jc3ZhciwKKwkJCSAgICpfc3ZhcjsKKworCUFz c2VydChzdmFyKTsKKwlBc3NlcnQoIWlzbnVsbCB8fCB2YWx1ZSA9PSAoRGF0dW0pIDApOworCisJ LyoKKwkgKiBVc2UgdHlwYnl2YWwsIHR5cGJ5bGVuIGZyb20gc2Vzc2lvbiB2YXJpYWJsZSBvbmx5 IHdoZW4gdGhleSBhcmUKKwkgKiB0cnVzdHdvcnRoeSAodGhlIGludmFsaWRhdGlvbiBtZXNzYWdl IHdhcyBub3QgYWNjZXB0ZWQgZm9yIHRoaXMKKwkgKiB2YXJpYWJsZSkuICBJZiB0aGUgdmFyaWFi bGUgbWlnaHQgYmUgaW52YWxpZCwgZm9yY2Ugc2V0dXAuCisJICoKKwkgKiBEbyBub3Qgb3Zlcndy aXRlIHRoZSBwYXNzZWQgc2Vzc2lvbiB2YXJpYWJsZSB1bnRpbCB3ZSBjYW4gYmUgY2VydGFpbgor CSAqIHRoYXQgbm8gZXJyb3IgY2FuIGJlIHRocm93bi4KKwkgKi8KKwlpZiAoIXN2YXItPmlzX3Zh bGlkKQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZSgmbG9jc3Zhciwgc3Zhci0+dmFyaWQp OworCQlfc3ZhciA9ICZsb2NzdmFyOworCX0KKwllbHNlCisJCV9zdmFyID0gc3ZhcjsKKworCWlm ICghaXNudWxsKQorCXsKKwkJTWVtb3J5Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dp dGNoVG8oU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7CisKKwkJbmV3dmFsID0gZGF0dW1Db3B5KHZh bHVlLCBfc3Zhci0+dHlwYnl2YWwsIF9zdmFyLT50eXBsZW4pOworCisJCU1lbW9yeUNvbnRleHRT d2l0Y2hUbyhvbGRjeHQpOworCX0KKwllbHNlCisJCW5ld3ZhbCA9IHZhbHVlOworCisJZnJlZV9z ZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCisJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZh cmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgbmV3IHZhbHVlIiwKKwkJIGdldF9uYW1lc3Bh Y2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJ IGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFyaWQpLAorCQkgc3Zhci0+dmFyaWQp OworCisJLyogbm8gbW9yZSBlcnJvciBleHBlY3RlZCwgc28gd2UgY2FuIG92ZXJ3cml0ZSB0aGUg b2xkIHZhcmlhYmxlIG5vdyAqLworCWlmIChzdmFyICE9IF9zdmFyKQorCQltZW1jcHkoc3Zhciwg X3N2YXIsIHNpemVvZihTVmFyaWFibGVEYXRhKSk7CisKKwlzdmFyLT52YWx1ZSA9IG5ld3ZhbDsK KwlzdmFyLT5pc251bGwgPSBpc251bGw7Cit9CisKKy8qCisgKiBDcmVhdGUgdGhlIGhhc2ggdGFi bGUgZm9yIHN0b3Jpbmcgc2Vzc2lvbiB2YXJpYWJsZXMuCisgKi8KK3N0YXRpYyB2b2lkCitjcmVh dGVfc2Vzc2lvbnZhcnNfaGFzaHRhYmxlcyh2b2lkKQoreworCUhBU0hDVEwJCXZhcnNfY3RsOwor CisJQXNzZXJ0KCFzZXNzaW9udmFycyk7CisKKwlpZiAoIVNWYXJpYWJsZU1lbW9yeUNvbnRleHQp CisJeworCQkvKiByZWFkIHNpbnZhbCBtZXNzYWdlcyAqLworCQlDYWNoZVJlZ2lzdGVyU3lzY2Fj aGVDYWxsYmFjayhWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCSAgcGdfdmFyaWFibGVfY2FjaGVfY2Fs bGJhY2ssCisJCQkJCQkJCQkgIChEYXR1bSkgMCk7CisKKwkJLyogd2UgbmVlZCBvdXIgb3duIGxv bmctbGl2ZWQgbWVtb3J5IGNvbnRleHQgKi8KKwkJU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9CisJ CQlBbGxvY1NldENvbnRleHRDcmVhdGUoVG9wTWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJICAic2Vz c2lvbiB2YXJpYWJsZXMiLAorCQkJCQkJCQkgIEFMTE9DU0VUX1NUQVJUX1NNQUxMX1NJWkVTKTsK Kwl9CisKKwltZW1zZXQoJnZhcnNfY3RsLCAwLCBzaXplb2YodmFyc19jdGwpKTsKKwl2YXJzX2N0 bC5rZXlzaXplID0gc2l6ZW9mKE9pZCk7CisJdmFyc19jdGwuZW50cnlzaXplID0gc2l6ZW9mKFNW YXJpYWJsZURhdGEpOworCXZhcnNfY3RsLmhjeHQgPSBTVmFyaWFibGVNZW1vcnlDb250ZXh0Owor CisJc2Vzc2lvbnZhcnMgPSBoYXNoX2NyZWF0ZSgiU2Vzc2lvbiB2YXJpYWJsZXMiLCA2NCwgJnZh cnNfY3RsLAorCQkJCQkJCSAgSEFTSF9FTEVNIHwgSEFTSF9CTE9CUyB8IEhBU0hfQ09OVEVYVCk7 Cit9CisKKy8qCisgKiBTZWFyY2ggYSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBoYXNoIHRhYmxl IGdpdmVuIGl0cyBPSUQuICBJZiBpdAorICogZG9lc24ndCBleGlzdCwgdGhlbiBpbnNlcnQgaXQg dGhlcmUuCisgKgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgcGVybWlz c2lvbiBjaGVja3MuCisgKgorICogQXMgYSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5jdGlvbiBhY3F1 aXJlcyBhIEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUKKyAqIHNlc3Npb24gdmFyaWFibGUgdW50aWwg dGhlIGVuZCBvZiB0aGUgdHJhbnNhY3Rpb24uCisgKi8KK3N0YXRpYyBTVmFyaWFibGUKK2dldF9z ZXNzaW9uX3ZhcmlhYmxlKE9pZCB2YXJpZCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwlib29sCQlm b3VuZDsKKworCS8qIHByb3RlY3QgdGhlIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZSBhZ2FpbnN0IERS T1AgKi8KKwlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwg QWNjZXNzU2hhcmVMb2NrKTsKKworCWlmICghc2Vzc2lvbnZhcnMpCisJCWNyZWF0ZV9zZXNzaW9u dmFyc19oYXNodGFibGVzKCk7CisKKwlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vz c2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKKworCWlm IChmb3VuZCkKKwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsKKwkJCS8qCisJCQkgKiBJ ZiB0aGVyZSB3YXMgYW4gaW52YWxpZGF0aW9uIG1lc3NhZ2UsIHRoZSB2YXJpYWJsZSBtaWdodCBz dGlsbAorCQkJICogYmUgdmFsaWQsIGJ1dCB3ZSBoYXZlIHRvIGNoZWNrIHdpdGggdGhlIHN5c3Rl bSBjYXRhbG9nLgorCQkJICovCisJCQlpZiAoaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChzdmFy KSkKKwkJCQlzdmFyLT5pc192YWxpZCA9IHRydWU7CisJCQllbHNlCisJCQkJLyogaWYgdGhlIHZh bHVlIGNhbm5vdCBiZSB2YWxpZGF0ZWQsIHdlIGhhdmUgdG8gZGlzY2FyZCBpdCAqLworCQkJCWZy ZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJfQorCX0KKwllbHNlCisJCXN2YXIt PmlzX3ZhbGlkID0gZmFsc2U7CisKKwkvKgorCSAqIEZvcmNlIHNldHVwIGZvciBub3QgeWV0IGlu aXRpYWxpemVkIHZhcmlhYmxlcyBvciB2YXJpYWJsZXMgdGhhdCBjYW5ub3QKKwkgKiBiZSB2YWxp ZGF0ZWQuCisJICovCisJaWYgKCFzdmFyLT5pc192YWxpZCkKKwl7CisJCXNldHVwX3Nlc3Npb25f dmFyaWFibGUoc3ZhciwgdmFyaWQpOworCisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRl ZCBieSBSRUFEKSIsCisJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxl X25hbWVzcGFjZSh2YXJpZCkpLAorCQkJIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQp LAorCQkJIHZhcmlkKTsKKwl9CisKKwkvKiBlbnN1cmUgdGhlIHJldHVybmVkIGRhdGEgaXMgc3Rp bGwgb2YgdGhlIGNvcnJlY3QgZG9tYWluICovCisJaWYgKHN2YXItPmlzX2RvbWFpbikKKwl7CisJ CS8qCisJCSAqIFN0b3JlICJleHRyYSIgZm9yIGRvbWFpbl9jaGVjaygpIGluIFRvcFRyYW5zYWN0 aW9uQ29udGV4dC4gIFdoZW4gd2UKKwkJICogYXJlIGluIGEgbmV3IHRyYW5zYWN0aW9uLCBkb21h aW5fY2hlY2tfZXh0cmEgY2FjaGUgaXMgbm90IHZhbGlkIGFueQorCQkgKiBtb3JlLgorCQkgKi8K KwkJaWYgKHN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkICE9IE15UHJvYy0+dnhpZC5seGlk KQorCQkJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKKworCQlkb21haW5fY2hlY2so c3Zhci0+dmFsdWUsIHN2YXItPmlzbnVsbCwKKwkJCQkJIHN2YXItPnR5cGlkLCAmc3Zhci0+ZG9t YWluX2NoZWNrX2V4dHJhLAorCQkJCQkgVG9wVHJhbnNhY3Rpb25Db250ZXh0KTsKKworCQlzdmFy LT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKworCXJl dHVybiBzdmFyOworfQorCisvKgorICogU3RvcmUgdGhlIGdpdmVuIHZhbHVlIGluIGEgc2Vzc2lv biB2YXJpYWJsZSBpbiB0aGUgY2FjaGUuCisgKgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJs ZSBmb3IgZG9pbmcgcGVybWlzc2lvbiBjaGVja3MuCisgKgorICogQXMgYSBzaWRlIGVmZmVjdCwg dGhpcyBmdW5jdGlvbiBhY3F1aXJlcyBhIEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUgc2Vzc2lvbgor ICogdmFyaWFibGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgdHJhbnNhY3Rpb24uCisgKi8KK3ZvaWQK K1NldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkK K3sKKwlTVmFyaWFibGUJc3ZhcjsKKwlib29sCQlmb3VuZDsKKworCS8qIHByb3RlY3QgdXNlZCBz ZXNzaW9uIHZhcmlhYmxlIGFnYWluc3QgRFJPUCAqLworCUxvY2tEYXRhYmFzZU9iamVjdChWYXJp YWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCisJaWYgKCFzZXNz aW9udmFycykKKwkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKKworCXN2YXIgPSAo U1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAorCQkJCQkJCQkgICBI QVNIX0VOVEVSLCAmZm91bmQpOworCisJaWYgKCFmb3VuZCkKKwl7CisJCXNldHVwX3Nlc3Npb25f dmFyaWFibGUoc3ZhciwgdmFyaWQpOworCisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRl ZCBieSBXUklURSkiLAorCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHN2YXItPnZhcmlkKSwKKwkJCSB2YXJpZCk7CisJfQorCisJLyogaWYgdGhpcyBmYWlscywgaXQg d29uJ3QgY2hhbmdlIHRoZSBzdG9yZWQgdmFsdWUgKi8KKwlzZXRfc2Vzc2lvbl92YXJpYWJsZShz dmFyLCB2YWx1ZSwgaXNOdWxsKTsKK30KKworLyoKKyAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2 YWx1ZSBzdG9yZWQgaW4gYSB2YXJpYWJsZS4KKyAqLworc3RhdGljIGlubGluZSBEYXR1bQorY29w eV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBzdmFyLCBib29sICppc051bGwpCit7 CisJRGF0dW0JCXZhbHVlOworCisJLyogZm9yY2UgY29weSBvZiBub24gTlVMTCB2YWx1ZSAqLwor CWlmICghc3Zhci0+aXNudWxsKQorCXsKKwkJdmFsdWUgPSBkYXR1bUNvcHkoc3Zhci0+dmFsdWUs IHN2YXItPnR5cGJ5dmFsLCBzdmFyLT50eXBsZW4pOworCQkqaXNOdWxsID0gZmFsc2U7CisJfQor CWVsc2UKKwl7CisJCXZhbHVlID0gKERhdHVtKSAwOworCQkqaXNOdWxsID0gdHJ1ZTsKKwl9CisK KwlyZXR1cm4gdmFsdWU7Cit9CisKKy8qCisgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUg b2YgdGhlIHNlc3Npb24gdmFyaWFibGUgKGluIHRoZSBjdXJyZW50IG1lbW9yeQorICogY29udGV4 dCkuICBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBwZXJtaXNzaW9uIGNoZWNrcy4KKyAq LworRGF0dW0KK0dldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCkKK3sK KwlTVmFyaWFibGUJc3ZhcjsKKworCXN2YXIgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZSh2YXJpZCk7 CisKKwkvKgorCSAqIEFsdGhvdWdoICJzdmFyIiBpcyBmcmVzaGx5IHZhbGlkYXRlZCBpbiB0aGlz IHBvaW50LCBzdmFyLT5pc192YWxpZCBjYW4KKwkgKiBiZSBmYWxzZSwgaWYgYW4gaW52YWxpZGF0 aW9uIG1lc3NhZ2Ugd2FzIHByb2Nlc3NlZCBkdXJpbmcgdGhlIGRvbWFpbgorCSAqIGNoZWNrLiBC dXQgdGhlIHZhcmlhYmxlIGFuZCBhbGwgaXRzIGRlcGVuZGVuY2llcyBhcmUgbG9ja2VkIG5vdywg c28gd2UKKwkgKiBkb24ndCBuZWVkIHRvIHJlcGVhdCB0aGUgdmFsaWRhdGlvbi4KKwkgKi8KKwly ZXR1cm4gY29weV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIGlzTnVsbCk7Cit9CiAKIC8q CiAgKiBDcmVhdGVzIGEgbmV3IHZhcmlhYmxlCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmgKaW5kZXggNDlmMzZhYzY4ODUuLjlmNWM2ZTMwZmJkIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0xOSw2ICsxOSw5IEBACiAjaW5jbHVkZSAicGFy c2VyL3BhcnNlX25vZGUuaCIKICNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCiAKK2V4dGVy biB2b2lkIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlz TnVsbCk7CitleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAq aXNOdWxsKTsKKwogZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCk7CiAKICNlbmRpZgpkaWZmIC0t Z2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAppbmRleCAwMmQ5ZDc2ZDFlNC4uNjNlN2Y2Y2ExZWQgMTAwNjQ0Ci0t LSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC0yNjYzLDYgKzI2NjMsOCBAQCBTU0xfQ1RYCiBTVEFSVFVQ SU5GTwogU1RSTEVOCiBTVgorU1ZhcmlhYmxlRGF0YQorU1ZhcmlhYmxlCiBTWU5DSFJPTklaQVRJ T05fQkFSUklFUgogU1lTVEVNX0lORk8KIFNhbXBsZVNjYW4KLS0gCjIuNTEuMQoK --0000000000001c96f9064262bb7f Content-Type: text/x-patch; charset="US-ASCII"; name="v20251030-0006-session-variable-fences-parsing.patch" Content-Disposition: attachment; filename="v20251030-0006-session-variable-fences-parsing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhdn0dc79 RnJvbSA0Nzg3Yzc2ODUyZGJiNzYyM2QyYWMzMmU5YzgwNTU1YzgzOTUzNWE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMzAgTWF5IDIwMjUgMDc6Mjc6MjcgKzAyMDAKU3ViamVjdDogW1BBVENIIDA2 LzE1XSBzZXNzaW9uIHZhcmlhYmxlIGZlbmNlcyBwYXJzaW5nCgpUaGUgc2Vzc2lvbiB2YXJpYWJs ZXMgY2FuIGJlIHVzZWQgaW4gcXVlcnkgb25seSBpbnNpZGUgdGhlIHZhcmlhYmxlIGZlbmNlLgpU aGlzIGlzIHNwZWNpYWwgc3ludGF4IFZBUklBQkxFKHZhcm5hbWUpLCB0aGF0IGVsaW1pbmF0ZXMg YSByaXNrIG9mCmNvbGxpc2lvbiBiZXR3ZWVuIHZhcmlhYmxlIGFuZCBjb2x1bW4gaWRlbnRpZmll ci4KClRoZSBzZXNzaW9uIHZhcmlhYmxlcyBjYW5ub3QgYmUgdXNlZCBhcyBwYXJhbWV0ZXJzIG9m IENBTEwgb3IgRVhFQ1VURQpjb21tYW5kcy4gVGhlc2UgY29tbWFuZHMgZXZhbHVhdGVzIGFyZ3Vt ZW50cyBieSBkaXJlY3QgY2FsbCBvZiBleHByZXNzaW9uCmV4ZWN1dG9yLCBhbmQgZGlyZWN0IGFj Y2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKd2lsbCBi ZSBpbXBsZW1lbnRlZCBsYXRlciAoaW4gbmV4dCBzdGVwKS4KLS0tCiBkb2Mvc3JjL3NnbWwvZGRs LnNnbWwgICAgICAgICAgICAgICB8ICAxMSArKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3Bh Y2UuYyAgICAgfCAyODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvcHJlcGFyZS5jICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1 bmNzLmMgICAgICAgfCAgIDYgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAg fCAgIDcgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgfCAgMjggKystCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICB8IDIwOCArKysrKysrKysrKysrKysr KysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMgICAgfCAgIDEgKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAgfCAgIDcgKwogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3J1bGV1dGlscy5jICAgfCAgNDYgKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xz eXNjYWNoZS5jIHwgIDI0ICsrKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCAgICAg fCAgIDIgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgfCAgMTIgKysKIHNy Yy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9ub2RlLmggICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNo ZS5oICAgICAgIHwgICA0ICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAgICAgIHwg ICAzICstCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICB8ICAgMSArCiAxOCBm aWxlcyBjaGFuZ2VkLCA2NTkgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXgg NDIwYTRkOWZmMTEuLjI2NTVmYTVlN2NlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01Mzk2LDYgKzUzOTYsMTcgQEAgRVhQ TEFJTiBTRUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVudCBXSEVSRSBsb2dkYXRlICZndDs9 IERBVEUgJzIwMDgtMDEtMDEnOwogICAgIFRoZSBzZXNzaW9uIHZhcmlhYmxlIGhvbGRzIHZhbHVl IGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcyB2YWx1ZSBpcyBwcml2YXRlCiAgICAgdG8gZWFjaCBz ZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVuIHRoZSBzZXNzaW9uIGVuZHMuCiAgICA8L3BhcmE+ CisKKyAgIDxwYXJhPgorICAgIEluIGFuIHF1ZXJ5IHRoZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBi ZSB1c2VkIG9ubHkgaW5zaWRlCisgICAgPGZpcnN0dGVybT52YXJpYWJsZSBmZW5jZTwvZmlyc3R0 ZXJtPi4gVGhpcyBpcyBzcGVjaWFsIHN5bnRheCBmb3IKKyAgICBzZXNzaW9uIHZhcmlhYmxlIGlk ZW50aWZpZXIsIGFuZCBjYW4gYmUgdXNlZCBvbmx5IGZvciBzZXNzaW9uIHZhcmlhYmxlCisgICAg aWRlbnRpZmllci4gVGhlIHNwZWNpYWwgc3ludGF4IGZvciBhY2Nlc3Npbmcgc2Vzc2lvbiB2YXJp YWJsZXMgcmVtb3ZlcworICAgIHJpc2sgb2YgY29sbGlzaW9ucyBiZXR3ZWVuIHZhcmlhYmxlIGlk ZW50aWZpZXJzIGFuZCBjb2x1bW4gbmFtZXMuCis8cHJvZ3JhbWxpc3Rpbmc+CitTRUxFQ1QgVkFS SUFCTEUoY3VycmVudF91c2VyX2lkKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICA8L3BhcmE+CiAg IDwvc2VjdDE+CiAKICA8c2VjdDEgaWQ9ImRkbC1vdGhlcnMiPgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNl LmMKaW5kZXggODAwZjM3ZGMyZWEuLmIyMGQyMDc0MzgyIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNl LmMKQEAgLTM1NjcsNiArMzU2NywyOTUgQEAgTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcykKIAly ZXR1cm4gcmVzdWx0OwogfQogCisvKiAtLS0tLQorICogSWRlbnRpZnlWYXJpYWJsZSAtIHRyeSB0 byBmaW5kIGEgdmFyaWFibGUgZnJvbSBhIGxpc3Qgb2YgaWRlbnRpZmllcnMKKyAqCisgKiBSZXR1 cm5zIHRoZSBPSUQgb2YgdGhlIHZhcmlhYmxlIGZvdW5kLCBvciBJbnZhbGlkT2lkLgorICoKKyAq ICJuYW1lcyIgaXMgYSBsaXN0IG9mIHVwIHRvIGZvdXIgaWRlbnRpZmllcnM7IHBvc3NpYmxlIG1l YW5pbmdzIGFyZToKKyAqIC0gdmFyaWFibGUgIChzZWFyY2hlZCBvbiB0aGUgc2VhcmNoX3BhdGgp CisgKiAtIHNjaGVtYS52YXJpYWJsZQorICogLSB2YXJpYWJsZS5hdHRyaWJ1dGUgIChzZWFyY2hl ZCBvbiB0aGUgc2VhcmNoX3BhdGgpCisgKiAtIHNjaGVtYS52YXJpYWJsZS5hdHRyaWJ1dGUKKyAq IC0gZGF0YWJhc2Uuc2NoZW1hLnZhcmlhYmxlCisgKiAtIGRhdGFiYXNlLnNjaGVtYS52YXJpYWJs ZS5hdHRyaWJ1dGUKKyAqCisgKiBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHdheSB0byBpZGVu dGlmeSBhIHZhcmlhYmxlLCAibm90X3VuaXF1ZSIgd2lsbCBiZQorICogc2V0IHRvIHRydWUuCisg KgorICogVW5sZXNzICJub2Vycm9yIiBpcyB0cnVlLCBhbiBlcnJvciBpcyByYWlzZWQgaWYgdGhl cmUgYXJlIG1vcmUgdGhhbiBmb3VyCisgKiAgaWRlbnRpZmllcnMgaW4gdGhlIGxpc3QsIG9yIGlm IHRoZSBuYW1lZCBkYXRhYmFzZSBpcyBub3QgdGhlIGN1cnJlbnQgb25lLgorICogVGhpcyBpcyB1 c2VmdWwgaWYgd2Ugd2FudCB0byBpZGVudGlmeSBhIHNoYWRvd2VkIHZhcmlhYmxlLgorICoKKyAq IElmIGFuIGF0dHJpYnV0ZSBpcyBpZGVudGlmaWVkLCBpdCBpcyBzdG9yZWQgaW4gImF0dHJuYW1l Iiwgb3RoZXJ3aXNlIHRoZQorICogcGFyYW1ldGVyIGlzIHNldCB0byBOVUxMLgorICoKKyAqIFRo ZSBpZGVudGlmaWVkIHNlc3Npb24gdmFyaWFibGUgd2lsbCBiZSBsb2NrZWQgd2l0aCBhbiBBY2Nl c3NTaGFyZUxvY2suCisgKiAtLS0tLQorICovCitPaWQKK0lkZW50aWZ5VmFyaWFibGUoTGlzdCAq bmFtZXMsIGNoYXIgKiphdHRybmFtZSwgYm9vbCAqbm90X3VuaXF1ZSwgYm9vbCBub2Vycm9yKQor eworCU9pZAkJCXZhcmlkID0gSW52YWxpZE9pZDsKKwlPaWQJCQlvbGRfdmFyaWQgPSBJbnZhbGlk T2lkOworCXVpbnQ2NAkJaW52YWxfY291bnQ7CisJYm9vbAkJcmV0cnkgPSBmYWxzZTsKKworCS8q CisJICogRERMIG9wZXJhdGlvbnMgY2FuIGNoYW5nZSB0aGUgcmVzdWx0cyBvZiBhIG5hbWUgbG9v a3VwLiAgU2luY2UgYWxsIHN1Y2gKKwkgKiBvcGVyYXRpb25zIHdpbGwgZ2VuZXJhdGUgaW52YWxp ZGF0aW9uIG1lc3NhZ2VzLCB3ZSBrZWVwIHRyYWNrIG9mCisJICogd2hldGhlciBhbnkgc3VjaCBt ZXNzYWdlcyBzaG93IHVwIHdoaWxlIHdlJ3JlIHBlcmZvcm1pbmcgdGhlIG9wZXJhdGlvbiwKKwkg KiBhbmQgcmV0cnkgdW50aWwgZWl0aGVyICgxKSBubyBtb3JlIGludmFsaWRhdGlvbiBtZXNzYWdl cyBzaG93IHVwIG9yICgyKQorCSAqIHRoZSBhbnN3ZXIgZG9lc24ndCBjaGFuZ2UuCisJICovCisJ Zm9yICg7OykKKwl7CisJCU5vZGUJICAgKmZpZWxkMSA9IE5VTEw7CisJCU5vZGUJICAgKmZpZWxk MiA9IE5VTEw7CisJCU5vZGUJICAgKmZpZWxkMyA9IE5VTEw7CisJCU5vZGUJICAgKmZpZWxkNCA9 IE5VTEw7CisJCWNoYXIJICAgKmEgPSBOVUxMOworCQljaGFyCSAgICpiID0gTlVMTDsKKwkJY2hh cgkgICAqYyA9IE5VTEw7CisJCWNoYXIJICAgKmQgPSBOVUxMOworCQlPaWQJCQl2YXJvaWRfd2l0 aG91dF9hdHRyID0gSW52YWxpZE9pZDsKKwkJT2lkCQkJdmFyb2lkX3dpdGhfYXR0ciA9IEludmFs aWRPaWQ7CisKKwkJKm5vdF91bmlxdWUgPSBmYWxzZTsKKwkJKmF0dHJuYW1lID0gTlVMTDsKKwkJ dmFyaWQgPSBJbnZhbGlkT2lkOworCisJCWludmFsX2NvdW50ID0gU2hhcmVkSW52YWxpZE1lc3Nh Z2VDb3VudGVyOworCisJCXN3aXRjaCAobGlzdF9sZW5ndGgobmFtZXMpKQorCQl7CisJCQljYXNl IDE6CisJCQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMpOworCisJCQkJQXNzZXJ0KElzQShmaWVs ZDEsIFN0cmluZykpOworCisJCQkJdmFyaWQgPSBMb29rdXBWYXJpYWJsZShOVUxMLCBzdHJWYWwo ZmllbGQxKSwgdHJ1ZSk7CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgMjoKKwkJCQlmaWVsZDEgPSBs aW5pdGlhbChuYW1lcyk7CisJCQkJZmllbGQyID0gbHNlY29uZChuYW1lcyk7CisKKwkJCQlBc3Nl cnQoSXNBKGZpZWxkMSwgU3RyaW5nKSk7CisJCQkJYSA9IHN0clZhbChmaWVsZDEpOworCisJCQkJ aWYgKElzQShmaWVsZDIsIFN0cmluZykpCisJCQkJeworCQkJCQkvKiB3aGVuIGJvdGggZmllbGRz IGFyZSBvZiBzdHJpbmcgdHlwZSAqLworCQkJCQliID0gc3RyVmFsKGZpZWxkMik7CisKKwkJCQkJ LyoKKwkJCQkJICogYS5iIGNhbiBtZWFuICJzY2hlbWEiLiJ2YXJpYWJsZSIgb3IKKwkJCQkJICog InZhcmlhYmxlIi4iYXR0cmlidXRlIi4gIENoZWNrIGJvdGggdmFyaWFudHMsIGFuZAorCQkJCQkg KiByZXR1cm5zIEludmFsaWRPaWQgd2l0aCBub3RfdW5pcXVlIGZsYWcsIHdoZW4gYm90aAorCQkJ CQkgKiBpbnRlcnByZXRhdGlvbnMgYXJlIHBvc3NpYmxlLgorCQkJCQkgKi8KKwkJCQkJdmFyb2lk X3dpdGhvdXRfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGEsIGIsIHRydWUpOworCQkJCQl2YXJvaWRf d2l0aF9hdHRyID0gTG9va3VwVmFyaWFibGUoTlVMTCwgYSwgdHJ1ZSk7CisJCQkJfQorCQkJCWVs c2UKKwkJCQl7CisJCQkJCS8qIHRoZSBsYXN0IGZpZWxkIG9mIGxpc3QgY2FuIGJlIHN0YXIgdG9v ICovCisJCQkJCUFzc2VydChJc0EoZmllbGQyLCBBX1N0YXIpKTsKKworCQkJCQkvKgorCQkJCQkg KiBUaGUgc3ludGF4IGlkZW50LiogaXMgdXNlZCBvbmx5IGJ5IHJlbGF0aW9uIGFsaWFzZXMsCisJ CQkJCSAqIGFuZCB0aGVuIHRoaXMgaWRlbnRpZmllciBjYW5ub3QgYmUgYSByZWZlcmVuY2UgdG8K KwkJCQkJICogc2Vzc2lvbiB2YXJpYWJsZS4KKwkJCQkJICovCisJCQkJCXJldHVybiBJbnZhbGlk T2lkOworCQkJCX0KKworCQkJCWlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0X2F0dHIpICYm IE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikpCisJCQkJeworCQkJCQkqbm90X3VuaXF1ZSA9 IHRydWU7CisJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJCQl9CisJCQkJZWxz ZSBpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSkKKwkJCQl7CisJCQkJCXZhcmlk ID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJCQl9CisJCQkJZWxzZSBpZiAoT2lkSXNWYWxpZCh2 YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQl7CisJCQkJCSphdHRybmFtZSA9IGI7CisJCQkJCXZhcmlk ID0gdmFyb2lkX3dpdGhfYXR0cjsKKwkJCQl9CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgMzoKKwkJ CQl7CisJCQkJCWJvb2wJCWZpZWxkMV9pc19jYXRhbG9nID0gZmFsc2U7CisKKwkJCQkJZmllbGQx ID0gbGluaXRpYWwobmFtZXMpOworCQkJCQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsKKwkJCQkJ ZmllbGQzID0gbHRoaXJkKG5hbWVzKTsKKworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5n KSk7CisJCQkJCUFzc2VydChJc0EoZmllbGQyLCBTdHJpbmcpKTsKKworCQkJCQlhID0gc3RyVmFs KGZpZWxkMSk7CisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsKKworCQkJCQlpZiAoSXNBKGZpZWxk MywgU3RyaW5nKSkKKwkJCQkJeworCQkJCQkJYyA9IHN0clZhbChmaWVsZDMpOworCisJCQkJCQkv KgorCQkJCQkJICogYS5iLmMgY2FuIG1lYW4gY2F0YWxvZy5zY2hlbWEudmFyaWFibGUgb3IKKwkJ CQkJCSAqIHNjaGVtYS52YXJpYWJsZS5hdHRyaWJ1dGUuCisJCQkJCQkgKgorCQkJCQkJICogQ2hl Y2sgYm90aCB2YXJpYW50cywgYW5kIHNldCBub3RfdW5pcXVlIGZsYWcsIHdoZW4KKwkJCQkJCSAq IGJvdGggaW50ZXJwcmV0YXRpb25zIGFyZSBwb3NzaWJsZS4KKwkJCQkJCSAqCisJCQkJCQkgKiBX aGVuIHRoaXJkIG5vZGUgaXMgc3Rhciwgb25seSBwb3NzaWJsZQorCQkJCQkJICogaW50ZXJwcmV0 YXRpb24gaXMgc2NoZW1hLnZhcmlhYmxlLiosIGJ1dCB0aGlzCisJCQkJCQkgKiBwYXR0ZXJuIGlz IG5vdCBzdXBwb3J0ZWQgbm93LgorCQkJCQkJICovCisJCQkJCQl2YXJvaWRfd2l0aF9hdHRyID0g TG9va3VwVmFyaWFibGUoYSwgYiwgdHJ1ZSk7CisKKwkJCQkJCS8qCisJCQkJCQkgKiBjaGVjayBw YXR0ZXJuIGNhdGFsb2cuc2NoZW1hLnZhcmlhYmxlIG9ubHkgd2hlbgorCQkJCQkJICogdGhlcmUg aXMgcG9zc2liaWxpdHkgdG8gc3VjY2Vzcy4KKwkJCQkJCSAqLworCQkJCQkJaWYgKHN0cmNtcChh LCBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKSA9PSAwKQorCQkJCQkJeworCQkJCQkJ CWZpZWxkMV9pc19jYXRhbG9nID0gdHJ1ZTsKKwkJCQkJCQl2YXJvaWRfd2l0aG91dF9hdHRyID0g TG9va3VwVmFyaWFibGUoYiwgYywgdHJ1ZSk7CisJCQkJCQl9CisJCQkJCX0KKwkJCQkJZWxzZQor CQkJCQl7CisJCQkJCQlBc3NlcnQoSXNBKGZpZWxkMywgQV9TdGFyKSk7CisJCQkJCQlyZXR1cm4g SW52YWxpZE9pZDsKKwkJCQkJfQorCisJCQkJCWlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0 X2F0dHIpICYmIE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikpCisJCQkJCXsKKwkJCQkJCSpu b3RfdW5pcXVlID0gdHJ1ZTsKKwkJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJ CQkJfQorCQkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0X2F0dHIpKQorCQkJ CQl7CisJCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJCX0KKwkJCQkJZWxz ZSBpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQkJeworCQkJCQkJKmF0dHJu YW1lID0gYzsKKwkJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhfYXR0cjsKKwkJCQkJfQorCisJCQkJ CS8qCisJCQkJCSAqIFdoZW4gd2UgZGlkbid0IGZpbmQgdmFyaWFibGUsIHdlIGNhbiAod2hlbiBp dCBpcworCQkJCQkgKiBhbGxvd2VkKSByYWlzZSBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2UgZXJy b3IuCisJCQkJCSAqLworCQkJCQlpZiAoIU9pZElzVmFsaWQodmFyaWQpICYmICFub2Vycm9yICYm ICFmaWVsZDFfaXNfY2F0YWxvZykKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCShlcnJj b2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkJIGVycm1zZygiY3Jv c3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAlcyIsCisJCQkJCQkJ CQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQkJfQorCQkJCWJyZWFrOworCisJCQlj YXNlIDQ6CisJCQkJeworCQkJCQlmaWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7CisJCQkJCWZpZWxk MiA9IGxzZWNvbmQobmFtZXMpOworCQkJCQlmaWVsZDMgPSBsdGhpcmQobmFtZXMpOworCQkJCQlm aWVsZDQgPSBsZm91cnRoKG5hbWVzKTsKKworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5n KSk7CisJCQkJCUFzc2VydChJc0EoZmllbGQyLCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0KElzQShm aWVsZDMsIFN0cmluZykpOworCisJCQkJCWEgPSBzdHJWYWwoZmllbGQxKTsKKwkJCQkJYiA9IHN0 clZhbChmaWVsZDIpOworCQkJCQljID0gc3RyVmFsKGZpZWxkMyk7CisKKwkJCQkJLyoKKwkJCQkJ ICogSW4gdGhpcyBjYXNlLCAiYSIgaXMgdXNlZCBhcyBjYXRhbG9nIG5hbWUgLSBjaGVjayBpdC4K KwkJCQkJICovCisJCQkJCWlmIChzdHJjbXAoYSwgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFz ZUlkKSkgIT0gMCkKKwkJCQkJeworCQkJCQkJaWYgKCFub2Vycm9yKQorCQkJCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CisJCQkJCQkJCQkgZXJybXNnKCJjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1w bGVtZW50ZWQ6ICVzIiwKKwkJCQkJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJ CQkJCX0KKworCQkJCQlpZiAoSXNBKGZpZWxkNCwgU3RyaW5nKSkKKwkJCQkJeworCQkJCQkJZCA9 IHN0clZhbChmaWVsZDQpOworCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJQXNzZXJ0 KElzQShmaWVsZDQsIEFfU3RhcikpOworCQkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJCX0K KworCQkJCQkqYXR0cm5hbWUgPSBkOworCQkJCQl2YXJpZCA9IExvb2t1cFZhcmlhYmxlKGIsIGMs IHRydWUpOworCQkJCX0KKwkJCQlicmVhazsKKworCQkJZGVmYXVsdDoKKwkJCQlpZiAoIW5vZXJy b3IpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhf RVJST1IpLAorCQkJCQkJCSBlcnJtc2coImltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFu eSBkb3R0ZWQgbmFtZXMpOiAlcyIsCisJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkp KTsKKwkJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJfQorCisJCS8qCisJCSAqIElmLCB1cG9uIHJl dHJ5LCB3ZSBnZXQgYmFjayB0aGUgc2FtZSBPSUQgd2UgZGlkIGxhc3QgdGltZSwgdGhlbiB0aGUK KwkJICogaW52YWxpZGF0aW9uIG1lc3NhZ2VzIHdlIHByb2Nlc3NlZCBkaWQgbm90IGNoYW5nZSB0 aGUgZmluYWwgYW5zd2VyLgorCQkgKiBTbyB3ZSdyZSBkb25lLgorCQkgKgorCQkgKiBJZiB3ZSBn b3QgYSBkaWZmZXJlbnQgT0lELCB3ZSd2ZSBsb2NrZWQgdGhlIHZhcmlhYmxlIHRoYXQgdXNlZCB0 bworCQkgKiBoYXZlIHRoaXMgbmFtZSByYXRoZXIgdGhhbiB0aGUgb25lIHRoYXQgZG9lcyBub3cu ICBTbyByZWxlYXNlIHRoZQorCQkgKiBsb2NrLgorCQkgKi8KKwkJaWYgKHJldHJ5KQorCQl7CisJ CQlpZiAob2xkX3ZhcmlkID09IHZhcmlkKQorCQkJCWJyZWFrOworCisJCQlpZiAoT2lkSXNWYWxp ZChvbGRfdmFyaWQpKQorCQkJCVVubG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25J ZCwgb2xkX3ZhcmlkLCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCQl9CisKKwkJLyoKKwkJICogTG9j ayB0aGUgdmFyaWFibGUuICBUaGlzIHdpbGwgYWxzbyBhY2NlcHQgYW55IHBlbmRpbmcgaW52YWxp ZGF0aW9uCisJCSAqIG1lc3NhZ2VzLiAgSWYgd2UgZ290IGJhY2sgSW52YWxpZE9pZCwgaW5kaWNh dGluZyBub3QgZm91bmQsIHRoZW4KKwkJICogdGhlcmUncyBub3RoaW5nIHRvIGxvY2ssIGJ1dCB3 ZSBhY2NlcHQgaW52YWxpZGF0aW9uIG1lc3NhZ2VzCisJCSAqIGFueXdheSwgdG8gZmx1c2ggYW55 IG5lZ2F0aXZlIGNhdGNhY2hlIGVudHJpZXMgdGhhdCBtYXkgYmUKKwkJICogbGluZ2VyaW5nLgor CQkgKi8KKwkJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJCUFjY2VwdEludmFsaWRhdGlvbk1l c3NhZ2VzKCk7CisJCWVsc2UKKwkJCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9u SWQsIHZhcmlkLCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCisJCS8qCisJCSAqIElmIG5vIGludmFs aWRhdGlvbiBtZXNzYWdlIHdlcmUgcHJvY2Vzc2VkLCB3ZSdyZSBkb25lIQorCQkgKi8KKwkJaWYg KGludmFsX2NvdW50ID09IFNoYXJlZEludmFsaWRNZXNzYWdlQ291bnRlcikKKwkJCWJyZWFrOwor CisJCXJldHJ5ID0gdHJ1ZTsKKwkJb2xkX3ZhcmlkID0gdmFyaWQ7CisJCXZhcmlkID0gSW52YWxp ZE9pZDsKKwl9CisKKwlyZXR1cm4gdmFyaWQ7Cit9CisKIC8qCiAgKiBEZWNvbnN0cnVjdFF1YWxp ZmllZE5hbWUKICAqCQlHaXZlbiBhIHBvc3NpYmx5LXF1YWxpZmllZCBuYW1lIGV4cHJlc3NlZCBh cyBhIGxpc3Qgb2YgU3RyaW5nIG5vZGVzLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHJlcGFyZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDM0YjY0 MTBkNmEyLi5mY2FkY2Q5YmMzZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJl cGFyZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtMzQxLDYgKzM0 MSwxNCBAQCBFdmFsdWF0ZVBhcmFtcyhQYXJzZVN0YXRlICpwc3RhdGUsIFByZXBhcmVkU3RhdGVt ZW50ICpwc3RtdCwgTGlzdCAqcGFyYW1zLAogCQlpKys7CiAJfQogCisJLyoKKwkgKiBUaGUgYXJn dW1lbnRzIG9mIEVYRUNVVEUgYXJlIGV2YWx1YXRlZCBieSBhIGRpcmVjdCBleHByZXNzaW9uIGV4 ZWN1dG9yCisJICogY2FsbC4gIFRoaXMgbW9kZSBkb2Vzbid0IHN1cHBvcnQgc2Vzc2lvbiB2YXJp YWJsZXMgeWV0LiBJdCB3aWxsIGJlCisJICogZW5hYmxlZCBsYXRlci4gVGhpcyBjYXNlIHNob3Vs ZCBiZSBibG9ja2VkIHBhcnNlciBieQorCSAqIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJp YWJsZXMsIHNvIG9ubHkgYXNzZXJ0aW9ucyBpcyB1c2VkIGhlcmUuCisJICovCisJQXNzZXJ0KCFw c3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcyk7CisKIAkvKiBQcmVwYXJlIHRoZSBleHByZXNz aW9ucyBmb3IgZXhlY3V0aW9uICovCiAJZXhwcnN0YXRlcyA9IEV4ZWNQcmVwYXJlRXhwckxpc3Qo cGFyYW1zLCBlc3RhdGUpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVu Y3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IGVkZTgzOGNkNDBjLi5j NzYxZmRlNmFjYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysr IGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTE2NjksNiArMTY2OSw5IEBAIGV4 cHJMb2NhdGlvbihjb25zdCBOb2RlICpleHByKQogCQljYXNlIFRfUGFyYW1SZWY6CiAJCQlsb2Mg PSAoKGNvbnN0IFBhcmFtUmVmICopIGV4cHIpLT5sb2NhdGlvbjsKIAkJCWJyZWFrOworCQljYXNl IFRfVmFyaWFibGVGZW5jZToKKwkJCWxvYyA9ICgoY29uc3QgVmFyaWFibGVGZW5jZSAqKSBleHBy KS0+bG9jYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBUX0FfQ29uc3Q6CiAJCQlsb2MgPSAoKGNv bnN0IEFfQ29uc3QgKikgZXhwciktPmxvY2F0aW9uOwogCQkJYnJlYWs7CkBAIC00NzAxLDYgKzQ3 MDQsOSBAQCByYXdfZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJ CXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9WYXJpYWJsZUZlbmNlOgor CQkJLyogd2UgYXNzdW1lIHRoZSBmaWVsZHMgY29udGFpbiBub3RoaW5nIGludGVyZXN0aW5nICov CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9k ZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVUYWcobm9kZSkpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMK aW5kZXggM2IzOTJiMDg0YWQuLmMzODk3YWFmZDIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTYx OCw2ICs2MTgsNyBAQCB0cmFuc2Zvcm1EZWxldGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVs ZXRlU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRv d0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwog CXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlh YmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2Nv bGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0xMDQzLDYgKzEwNDQsNyBAQCB0cmFuc2Zvcm1J bnNlcnRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgSW5zZXJ0U3RtdCAqc3RtdCkKIAogCXFyeS0+ aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzU3ViTGlu a3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0g cHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9u cyhwc3RhdGUsIHFyeSk7CiAKQEAgLTE1MjYsNiArMTUyOCw3IEBAIHRyYW5zZm9ybVNlbGVjdFN0 bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10LAogCXFyeS0+aGFzV2luZG93 RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0g cHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0Fn Z3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJp YWJsZXM7CiAKIAlmb3JlYWNoKGwsIHN0bXQtPmxvY2tpbmdDbGF1c2UpCiAJewpAQCAtMTc1Miw2 ICsxNzU1LDcgQEAgdHJhbnNmb3JtVmFsdWVzQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2Vs ZWN0U3RtdCAqc3RtdCkKIAlxcnktPmpvaW50cmVlID0gbWFrZUZyb21FeHByKHBzdGF0ZS0+cF9q b2lubGlzdCwgTlVMTCk7CiAKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1Ykxp bmtzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFy aWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0y MDAzLDYgKzIwMDcsNyBAQCB0cmFuc2Zvcm1TZXRPcGVyYXRpb25TdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5w X2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJn ZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vz c2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJZm9yZWFj aChsLCBsb2NraW5nQ2xhdXNlKQogCXsKQEAgLTI0NzUsNiArMjQ4MCw3IEBAIHRyYW5zZm9ybVJl dHVyblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSZXR1cm5TdG10ICpzdG10KQogCXFyeS0+aGFz V2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRT UkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5w X2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Np b25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAK QEAgLTI1NDIsNiArMjU0OCw3IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBVcGRhdGVTdG10ICpzdG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5w X2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5r czsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlh YmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKaW5kZXggYTBkMTllMjk1YzkuLjU1MTcwYzliN2NhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTUzMSw3 ICs1MzEsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVs bmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPG5vZGU+CWRlZl9hcmcg Y29sdW1uRWxlbSB3aGVyZV9jbGF1c2Ugd2hlcmVfb3JfY3VycmVudF9jbGF1c2UKIAkJCQlhX2V4 cHIgYl9leHByIGNfZXhwciBBZXhwckNvbnN0IGluZGlyZWN0aW9uX2VsIG9wdF9zbGljZV9ib3Vu ZAogCQkJCWNvbHVtbnJlZiBoYXZpbmdfY2xhdXNlIGZ1bmNfdGFibGUgeG1sdGFibGUgYXJyYXlf ZXhwcgotCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJhdG9yX2RlZl9hcmcKKwkJCQlPcHRXaGVyZUNs YXVzZSBvcGVyYXRvcl9kZWZfYXJnIHZhcmlhYmxlX2ZlbmNlCiAldHlwZSA8bGlzdD4Jb3B0X2Nv bHVtbl9hbmRfcGVyaW9kX2xpc3QKICV0eXBlIDxsaXN0Pglyb3dzZnJvbV9pdGVtIHJvd3Nmcm9t X2xpc3Qgb3B0X2NvbF9kZWZfbGlzdAogJXR5cGUgPGJvb2xlYW4+IG9wdF9vcmRpbmFsaXR5IG9w dF93aXRob3V0X292ZXJsYXBzCkBAIC04ODgsNyArODg4LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VS ZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1 ZXJ5KTsKICAqLwogJW5vbmFzc29jCVVOQk9VTkRFRCBORVNURUQgLyogaWRlYWxseSB3b3VsZCBo YXZlIHNhbWUgcHJlY2VkZW5jZSBhcyBJREVOVCAqLwogJW5vbmFzc29jCUlERU5UIFBBUlRJVElP TiBSQU5HRSBST1dTIEdST1VQUyBQUkVDRURJTkcgRk9MTE9XSU5HIENVQkUgUk9MTFVQCi0JCQlT RVQgS0VZUyBPQkpFQ1RfUCBTQ0FMQVIgVkFMVUVfUCBXSVRIIFdJVEhPVVQgUEFUSAorCQkJU0VU IEtFWVMgT0JKRUNUX1AgU0NBTEFSIFZBTFVFX1AgV0lUSCBXSVRIT1VUIFBBVEggVkFSSUFCTEUK ICVsZWZ0CQlPcCBPUEVSQVRPUgkJLyogbXVsdGktY2hhcmFjdGVyIG9wcyBhbmQgdXNlci1kZWZp bmVkIG9wZXJhdG9ycyAqLwogJWxlZnQJCScrJyAnLScKICVsZWZ0CQknKicgJy8nICclJwpAQCAt MTU3NDksNiArMTU3NDksMTkgQEAgY19leHByOgkJY29sdW1ucmVmCQkJCQkJCQl7ICQkID0gJDE7 IH0KIAkJCQkJZWxzZQogCQkJCQkJJCQgPSAkMjsKIAkJCQl9CisJCQl8IHZhcmlhYmxlX2ZlbmNl IG9wdF9pbmRpcmVjdGlvbgorCQkJCXsKKwkJCQkJaWYgKCQyKQorCQkJCQl7CisJCQkJCQlBX0lu ZGlyZWN0aW9uICpuID0gbWFrZU5vZGUoQV9JbmRpcmVjdGlvbik7CisKKwkJCQkJCW4tPmFyZyA9 IChOb2RlICopICQxOworCQkJCQkJbi0+aW5kaXJlY3Rpb24gPSBjaGVja19pbmRpcmVjdGlvbigk MiwgeXlzY2FubmVyKTsKKwkJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQkJfQorCQkJCQllbHNl CisJCQkJCQkkJCA9ICQxOworCQkJCX0KIAkJCXwgY2FzZV9leHByCiAJCQkJeyAkJCA9ICQxOyB9 CiAJCQl8IGZ1bmNfZXhwcgpAQCAtMTcxMzEsNiArMTcxNDQsMTcgQEAgY2FzZV9hcmc6CWFfZXhw cgkJCQkJCQkJCXsgJCQgPSAkMTsgfQogCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBOVUxM OyB9CiAJCTsKIAordmFyaWFibGVfZmVuY2U6CisJCQlWQVJJQUJMRSAnKCcgYW55X25hbWUgJykn CisJCQkJeworCQkJCQlWYXJpYWJsZUZlbmNlICp2ZiA9IG1ha2VOb2RlKFZhcmlhYmxlRmVuY2Up OworCisJCQkJCXZmLT52YXJuYW1lID0gJDM7CisJCQkJCXZmLT5sb2NhdGlvbiA9IEAzOworCQkJ CQkkJCA9IChOb2RlICopIHZmOworCQkJCX0KKwkJOworCiBjb2x1bW5yZWY6CUNvbElkCiAJCQkJ ewogCQkJCQkkJCA9IG1ha2VDb2x1bW5SZWYoJDEsIE5JTCwgQDEsIHl5c2Nhbm5lcik7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYwppbmRleCAxMjExOWYxNDdmYy4uMDI2NWI4ZWZjNGQgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYwpAQCAtMTYsNiArMTYsNyBAQAogI2luY2x1ZGUgInBvc3RncmVzLmgi CiAKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9u YW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgpAQCAtNzcsNiArNzgs NyBAQCBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtV2hvbGVSb3dSZWYoUGFyc2VTdGF0ZSAqcHN0YXRl LAogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QV9JbmRpcmVjdGlvbiAqaW5kKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1UeXBlQ2FzdChQYXJz ZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0Yyk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtQ29s bGF0ZUNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIENvbGxhdGVDbGF1c2UgKmMpOworc3RhdGlj IE5vZGUgKnRyYW5zZm9ybVZhcmlhYmxlRmVuY2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBWYXJpYWJs ZUZlbmNlICp2Zik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNvbk9iamVjdENvbnN0cnVjdG9y KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJSnNvbk9iamVjdENvbnN0cnVjdG9yICpj dG9yKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Kc29uQXJyYXlDb25zdHJ1Y3RvcihQYXJzZVN0 YXRlICpwc3RhdGUsCkBAIC0xMDcsNyArMTA5LDkgQEAgc3RhdGljIEV4cHIgKm1ha2VfZGlzdGlu Y3Rfb3AoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpvcG5hbWUsCiAJCQkJCQkJICBOb2RlICps dHJlZSwgTm9kZSAqcnRyZWUsIGludCBsb2NhdGlvbik7CiBzdGF0aWMgTm9kZSAqbWFrZV9udWxs dGVzdF9mcm9tX2Rpc3RpbmN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkgQV9FeHBy ICpkaXN0aW5jdGEsIE5vZGUgKmFyZyk7Ci0KK3N0YXRpYyBOb2RlICptYWtlUGFyYW1TZXNzaW9u VmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQkJICBPaWQgdmFyaWQsIE9pZCB0 eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAorCQkJCQkJCQkJICBjaGFyICphdHRybmFt ZSwgaW50IGxvY2F0aW9uKTsKIAogLyoKICAqIHRyYW5zZm9ybUV4cHIgLQpAQCAtMzcxLDYgKzM3 NSwxMCBAQCB0cmFuc2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4 cHIpCiAJCQlyZXN1bHQgPSB0cmFuc2Zvcm1Kc29uRnVuY0V4cHIocHN0YXRlLCAoSnNvbkZ1bmNF eHByICopIGV4cHIpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX1ZhcmlhYmxlRmVuY2U6CisJCQly ZXN1bHQgPSB0cmFuc2Zvcm1WYXJpYWJsZUZlbmNlKHBzdGF0ZSwgKFZhcmlhYmxlRmVuY2UgKikg ZXhwcik7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJLyogc2hvdWxkIG5vdCByZWFjaCBo ZXJlICovCiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLCAoaW50 KSBub2RlVGFnKGV4cHIpKTsKQEAgLTkwNCw2ICs5MTIsMTM1IEBAIHRyYW5zZm9ybVBhcmFtUmVm KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnByZWYpCiAJcmV0dXJuIHJlc3VsdDsKIH0K IAorLyoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBraW5kIGlzIHZh bGlkIGZvciBzZXNzaW9uIHZhcmlhYmxlcy4KKyAqIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSB1 c2VkIGV2ZXJ5d2hlcmUgd2hlcmUgZXh0ZXJuYWwgcGFyYW1ldGVycyBjYW4gYmUKKyAqIHVzZWQu ICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IGFsbG93ZWQgaW4gRERMIGNvbW1hbmRzIG9yIGlu IGNvbnN0cmFpbnRzLgorICoKKyAqIEFuIGlkZW50aWZpZXIgY2FuIGJlIHBhcnNlZCBhcyBhIHNl c3Npb24gdmFyaWFibGUgb25seSBmb3IgZXhwcmVzc2lvbiBraW5kcworICogd2hlcmUgc2Vzc2lv biB2YXJpYWJsZXMgYXJlIGFsbG93ZWQuICBUaGlzIGlzIHRoZSBwcmltYXJ5IHVzYWdlIG9mIHRo aXMKKyAqIGZ1bmN0aW9uLgorICoKKyAqIFRoZSBzZWNvbmQgdXNhZ2Ugb2YgdGhpcyBmdW5jdGlv biBpcyB0byBkZWNpZGUgd2hldGhlciBhICJjb2x1bW4gZG9lcyBub3QKKyAqIGV4aXN0IiBvciBh ICJjb2x1bW4gb3IgdmFyaWFibGUgZG9lcyBub3QgZXhpc3QiIGVycm9yIG1lc3NhZ2Ugc2hvdWxk IGJlCisgKiBwcmludGVkLiAgV2hlbiB3ZSBhcmUgaW4gYW4gZXhwcmVzc2lvbiB3aGVyZSBzZXNz aW9uIHZhcmlhYmxlcyBjYW5ub3QgYmUKKyAqIHVzZWQsIHdlIHJhaXNlIHRoZSBmaXJzdCBmb3Jt IG9mIGVycm9yIG1lc3NhZ2UuCisgKi8KK3N0YXRpYyBib29sCitleHByX2tpbmRfYWxsb3dzX3Nl c3Npb25fdmFyaWFibGVzKFBhcnNlRXhwcktpbmQgcF9leHByX2tpbmQpCit7CisJYm9vbAkJcmVz dWx0ID0gZmFsc2U7CisKKwlzd2l0Y2ggKHBfZXhwcl9raW5kKQorCXsKKwkJY2FzZSBFWFBSX0tJ TkRfTk9ORToKKwkJCUFzc2VydChmYWxzZSk7CQkvKiBjYW4ndCBoYXBwZW4gKi8KKwkJCXJldHVy biBmYWxzZTsKKworCQkJLyogc2Vzc2lvbiB2YXJpYWJsZXMgYWxsb3dlZCAqLworCQljYXNlIEVY UFJfS0lORF9PVEhFUjoKKwkJY2FzZSBFWFBSX0tJTkRfSk9JTl9PTjoKKwkJY2FzZSBFWFBSX0tJ TkRfRlJPTV9TVUJTRUxFQ1Q6CisJCWNhc2UgRVhQUl9LSU5EX0ZST01fRlVOQ1RJT046CisJCWNh c2UgRVhQUl9LSU5EX1dIRVJFOgorCQljYXNlIEVYUFJfS0lORF9IQVZJTkc6CisJCWNhc2UgRVhQ Ul9LSU5EX0ZJTFRFUjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX1BBUlRJVElPTjoKKwkJY2Fz ZSBFWFBSX0tJTkRfV0lORE9XX09SREVSOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfRlJBTUVf UkFOR0U6CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19GUkFNRV9ST1dTOgorCQljYXNlIEVYUFJf S0lORF9XSU5ET1dfRlJBTUVfR1JPVVBTOgorCQljYXNlIEVYUFJfS0lORF9TRUxFQ1RfVEFSR0VU OgorCQljYXNlIEVYUFJfS0lORF9VUERBVEVfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9VUERB VEVfU09VUkNFOgorCQljYXNlIEVYUFJfS0lORF9NRVJHRV9XSEVOOgorCQljYXNlIEVYUFJfS0lO RF9NRVJHRV9SRVRVUk5JTkc6CisJCWNhc2UgRVhQUl9LSU5EX0dST1VQX0JZOgorCQljYXNlIEVY UFJfS0lORF9PUkRFUl9CWToKKwkJY2FzZSBFWFBSX0tJTkRfRElTVElOQ1RfT046CisJCWNhc2Ug RVhQUl9LSU5EX0xJTUlUOgorCQljYXNlIEVYUFJfS0lORF9PRkZTRVQ6CisJCWNhc2UgRVhQUl9L SU5EX1JFVFVSTklORzoKKwkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTOgorCQljYXNlIEVYUFJfS0lO RF9WQUxVRVNfU0lOR0xFOgorCQkJcmVzdWx0ID0gdHJ1ZTsKKwkJCWJyZWFrOworCisJCQkvKiBz ZXNzaW9uIHZhcmlhYmxlcyBub3QgYWxsb3dlZCAqLworCQljYXNlIEVYUFJfS0lORF9JTlNFUlRf VEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9FWEVDVVRFX1BBUkFNRVRFUjoKKwkJY2FzZSBFWFBS X0tJTkRfQ0FMTF9BUkdVTUVOVDoKKwkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVDoK KwkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgorCQljYXNlIEVYUFJfS0lORF9DT0xVTU5f REVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBFWFBS X0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfUFJFRElDQVRF OgorCQljYXNlIEVYUFJfS0lORF9TVEFUU19FWFBSRVNTSU9OOgorCQljYXNlIEVYUFJfS0lORF9U UklHR0VSX1dIRU46CisJCWNhc2UgRVhQUl9LSU5EX1BBUlRJVElPTl9CT1VORDoKKwkJY2FzZSBF WFBSX0tJTkRfUEFSVElUSU9OX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRF RF9DT0xVTU46CisJCWNhc2UgRVhQUl9LSU5EX0pPSU5fVVNJTkc6CisJCWNhc2UgRVhQUl9LSU5E X0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9LSU5EX0FMVEVSX0NPTF9UUkFOU0ZPUk06CisJCWNh c2UgRVhQUl9LSU5EX1BPTElDWToKKwkJY2FzZSBFWFBSX0tJTkRfQ09QWV9XSEVSRToKKwkJCXJl c3VsdCA9IGZhbHNlOworCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KKworc3Rh dGljIE5vZGUgKgordHJhbnNmb3JtVmFyaWFibGVGZW5jZShQYXJzZVN0YXRlICpwc3RhdGUsIFZh cmlhYmxlRmVuY2UgKnZmKQoreworCU5vZGUJICAgKnJlc3VsdDsKKwlPaWQJCQl2YXJpZCA9IElu dmFsaWRPaWQ7CisJY2hhcgkgICAqYXR0cm5hbWUgPSBOVUxMOworCWJvb2wJCW5vdF91bmlxdWU7 CisKKwkvKiBWYXJpYWJsZUZlbmNlIGNhbiBiZSB1c2VkIG9ubHkgaW4gY29udGV4dCB3aGVuIHZh cmlhYmxlcyBhcmUgc3VwcG9ydGVkICovCisJaWYgKCFleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25f dmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJzZXNz aW9uIHZhcmlhYmxlIHJlZmVyZW5jZSBpcyBub3Qgc3VwcG9ydGVkIGhlcmUiKSwKKwkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgdmYtPmxvY2F0aW9uKSkpOworCisJLyogdGFrZXMgYW4g QWNjZXNzU2hhcmVMb2NrIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlICovCisJdmFyaWQgPSBJZGVu dGlmeVZhcmlhYmxlKHZmLT52YXJuYW1lLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7 CisKKwlpZiAobm90X3VuaXF1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJD T0RFX0FNQklHVU9VU19QQVJBTUVURVIpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUg cmVmZXJlbmNlIFwiJXNcIiBpcyBhbWJpZ3VvdXMiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyh2 Zi0+dmFybmFtZSkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCB2Zi0+bG9jYXRp b24pKSk7CisKKwlpZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJeworCQlPaWQJCQl0eXBpZDsKKwkJ aW50MzIJCXR5cG1vZDsKKwkJT2lkCQkJY29sbGlkOworCisJCWdldF9zZXNzaW9uX3ZhcmlhYmxl X3R5cGVfdHlwbW9kX2NvbGxpZCh2YXJpZCwgJnR5cGlkLCAmdHlwbW9kLAorCQkJCQkJCQkJCQkJ JmNvbGxpZCk7CisKKwkJcmVzdWx0ID0gbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKHBzdGF0ZSwK KwkJCQkJCQkJCQkgIHZhcmlkLCB0eXBpZCwgdHlwbW9kLCBjb2xsaWQsCisJCQkJCQkJCQkJICBh dHRybmFtZSwgdmYtPmxvY2F0aW9uKTsKKwl9CisJZWxzZQorCQllcmVwb3J0KEVSUk9SLAorCQkJ CShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVycm1zZygic2Vzc2lv biB2YXJpYWJsZSBcIiVzXCIgZG9lc24ndCBleGlzdCIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5n KHZmLT52YXJuYW1lKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHZmLT5sb2Nh dGlvbikpKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qIFRlc3Qgd2hldGhlciBhbiBhX2V4 cHIgaXMgYSBwbGFpbiBOVUxMIGNvbnN0YW50IG9yIG5vdCAqLwogc3RhdGljIGJvb2wKIGV4cHJJ c051bGxDb25zdGFudChOb2RlICphcmcpCkBAIC0zMTIzLDYgKzMyNjAsNzUgQEAgbWFrZV9udWxs dGVzdF9mcm9tX2Rpc3RpbmN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9FeHByICpkaXN0aW5jdGEs IE5vZGUgKmFyZykKIAlyZXR1cm4gKE5vZGUgKikgbnQ7CiB9CiAKKy8qCisgKiBHZW5lcmF0ZSBw YXJhbSB2YXJpYWJsZSBmb3IgcmVmZXJlbmNlIHRvIHNlc3Npb24gdmFyaWFibGUKKyAqLworc3Rh dGljIE5vZGUgKgorbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwK KwkJCQkJCSBPaWQgdmFyaWQsIE9pZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAor CQkJCQkJIGNoYXIgKmF0dHJuYW1lLCBpbnQgbG9jYXRpb24pCit7CisJUGFyYW0JICAgKnBhcmFt OworCisJcGFyYW0gPSBtYWtlTm9kZShQYXJhbSk7CisKKwlwYXJhbS0+cGFyYW1raW5kID0gUEFS QU1fVkFSSUFCTEU7CisJcGFyYW0tPnBhcmFtdmFyaWQgPSB2YXJpZDsKKwlwYXJhbS0+cGFyYW10 eXBlID0gdHlwaWQ7CisJcGFyYW0tPnBhcmFtdHlwbW9kID0gdHlwbW9kOworCXBhcmFtLT5wYXJh bWNvbGxpZCA9IGNvbGxpZDsKKworCXBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1 ZTsKKworCWlmIChhdHRybmFtZSAhPSBOVUxMKQorCXsKKwkJVHVwbGVEZXNjCXR1cGRlc2M7CisJ CWludAkJCWk7CisKKwkJdHVwZGVzYyA9IGxvb2t1cF9yb3d0eXBlX3R1cGRlc2Nfbm9lcnJvcih0 eXBpZCwgdHlwbW9kLCB0cnVlKTsKKwkJaWYgKCF0dXBkZXNjKQorCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJCSBlcnJtc2co InZhcmlhYmxlIFwiJXMuJXNcIiBpcyBvZiB0eXBlIFwiJXNcIiwgd2hpY2ggaXMgbm90IGEgY29t cG9zaXRlIHR5cGUiLAorCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHZhcmlkKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CisKKwkJZm9yIChpID0gMDsgaSA8IHR1cGRl c2MtPm5hdHRzOyBpKyspCisJCXsKKwkJCUZvcm1fcGdfYXR0cmlidXRlIGF0dCA9IFR1cGxlRGVz Y0F0dHIodHVwZGVzYywgaSk7CisKKwkJCWlmIChzdHJjbXAoYXR0cm5hbWUsIE5hbWVTdHIoYXR0 LT5hdHRuYW1lKSkgPT0gMCAmJgorCQkJCSFhdHQtPmF0dGlzZHJvcHBlZCkKKwkJCXsKKwkJCQkv KiBzdWNjZXNzLCBzbyBnZW5lcmF0ZSBhIEZpZWxkU2VsZWN0IGV4cHJlc3Npb24gKi8KKwkJCQlG aWVsZFNlbGVjdCAqZnNlbGVjdCA9IG1ha2VOb2RlKEZpZWxkU2VsZWN0KTsKKworCQkJCWZzZWxl Y3QtPmFyZyA9IChFeHByICopIHBhcmFtOworCQkJCWZzZWxlY3QtPmZpZWxkbnVtID0gaSArIDE7 CisJCQkJZnNlbGVjdC0+cmVzdWx0dHlwZSA9IGF0dC0+YXR0dHlwaWQ7CisJCQkJZnNlbGVjdC0+ cmVzdWx0dHlwbW9kID0gYXR0LT5hdHR0eXBtb2Q7CisJCQkJLyogc2F2ZSBhdHRyaWJ1dGUncyBj b2xsYXRpb24gZm9yIHBhcnNlX2NvbGxhdGUuYyAqLworCQkJCWZzZWxlY3QtPnJlc3VsdGNvbGxp ZCA9IGF0dC0+YXR0Y29sbGF0aW9uOworCisJCQkJUmVsZWFzZVR1cGxlRGVzYyh0dXBkZXNjKTsK KwkJCQlyZXR1cm4gKE5vZGUgKikgZnNlbGVjdDsKKwkJCX0KKwkJfQorCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKKwkJCQkgZXJybXNn KCJjb3VsZCBub3QgaWRlbnRpZnkgY29sdW1uIFwiJXNcIiBpbiB2YXJpYWJsZSBcIiVzLiVzXCIi LAorCQkJCQkJYXR0cm5hbWUsCisJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHZhcmlkKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkp OworCX0KKworCXJldHVybiAoTm9kZSAqKSBwYXJhbTsKK30KKwogLyoKICAqIFByb2R1Y2UgYSBz dHJpbmcgaWRlbnRpZnlpbmcgYW4gZXhwcmVzc2lvbiBieSBraW5kLgogICoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX21lcmdlLmMKaW5kZXggNTFkNzcwM2VmZjcuLjI0NGVmY2RkZjMyIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfbWVyZ2UuYwpAQCAtNDA1LDYgKzQwNSw3IEBAIHRyYW5zZm9ybU1lcmdlU3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsIE1lcmdlU3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9 IGZhbHNlOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5 LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAK IAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYwppbmRleCA5MDVjOTc1ZDgzYi4uOGI1MjQwY2Q1NGIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdGFyZ2V0LmMKQEAgLTIwMzMsNiArMjAzMywxMyBAQCBGaWd1cmVDb2xuYW1lSW50ZXJu YWwoTm9kZSAqbm9kZSwgY2hhciAqKm5hbWUpCiAJCQkJCQkgKGludCkgKChKc29uRnVuY0V4cHIg Kikgbm9kZSktPm9wKTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfVmFyaWFibGVGZW5jZToK KwkJCXsKKwkJCQkvKiByZXR1cm4gbGFzdCBmaWVsZCBuYW1lICovCisJCQkJKm5hbWUgPSBzdHJW YWwobGxhc3QoKChWYXJpYWJsZUZlbmNlICopIG5vZGUpLT52YXJuYW1lKSk7CisJCQkJcmV0dXJu IDI7CisJCQl9CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWJyZWFrOwogCX0KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYwppbmRleCA3OWVjMTM2MjMxYi4uMGIxZDllMDUwMWQgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJjYXRhbG9n L3BnX3N0YXRpc3RpY19leHQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxl LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFi bGVzcGFjZS5oIgogI2luY2x1ZGUgImNvbW1vbi9rZXl3b3Jkcy5oIgpAQCAtNTM0LDYgKzUzNSw3 IEBAIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9mdW5jdGlvbl9uYW1lKE9pZCBmdW5jaWQsIGludCBu YXJncywKIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9vcGVyYXRvcl9uYW1lKE9pZCBvcGVyaWQsIE9p ZCBhcmcxLCBPaWQgYXJnMik7CiBzdGF0aWMgdm9pZCBhZGRfY2FzdF90byhTdHJpbmdJbmZvIGJ1 ZiwgT2lkIHR5cGlkKTsKIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9xdWFsaWZpZWRfdHlwZV9uYW1l KE9pZCB0eXBpZCk7CitzdGF0aWMgY2hhciAqZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KE9pZCB2YXJpZCk7CiBzdGF0aWMgdGV4dCAqc3RyaW5nX3RvX3RleHQoY2hhciAqc3RyKTsKIHN0 YXRpYyBjaGFyICpmbGF0dGVuX3JlbG9wdGlvbnMoT2lkIHJlbGlkKTsKIHN0YXRpYyB2b2lkIGdl dF9yZWxvcHRpb25zKFN0cmluZ0luZm8gYnVmLCBEYXR1bSByZWxvcHRpb25zKTsKQEAgLTg4MTIs NiArODgxNCwxNCBAQCBnZXRfcGFyYW1ldGVyKFBhcmFtICpwYXJhbSwgZGVwYXJzZV9jb250ZXh0 ICpjb250ZXh0KQogCQl9CiAJfQogCisJLyogdHJhbnNsYXRlIHBhcmFtdmFyaWQgdG8gc2Vzc2lv biB2YXJpYWJsZSBuYW1lICovCisJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFC TEUpCisJeworCQlhcHBlbmRTdHJpbmdJbmZvKGNvbnRleHQtPmJ1ZiwgIlZBUklBQkxFKCVzKSIs CisJCQkJCQkgZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHBhcmFtLT5wYXJhbXZhcmlk KSk7CisJCXJldHVybjsKKwl9CisKIAkvKgogCSAqIE5vdCBQQVJBTV9FWEVDLCBvciBjb3VsZG4n dCBmaW5kIHJlZmVyZW50OiBqdXN0IHByaW50ICROLgogCSAqCkBAIC0xMzU5Nyw2ICsxMzYwNyw0 MiBAQCBnZW5lcmF0ZV9jb2xsYXRpb25fbmFtZShPaWQgY29sbGlkKQogCXJldHVybiByZXN1bHQ7 CiB9CiAKKy8qCisgKiBnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUKKyAqCQlDb21wdXRl IHRoZSBuYW1lIHRvIGRpc3BsYXkgZm9yIGEgc2Vzc2lvbiB2YXJpYWJsZSBzcGVjaWZpZWQgYnkg T0lECisgKgorICogVGhlIHJlc3VsdCBpbmNsdWRlcyBhbGwgbmVjZXNzYXJ5IHF1b3RpbmcgYW5k IHNjaGVtYS1wcmVmaXhpbmcuCisgKi8KK3N0YXRpYyBjaGFyICoKK2dlbmVyYXRlX3Nlc3Npb25f dmFyaWFibGVfbmFtZShPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3Zh cmlhYmxlIHZhcmZvcm07CisJY2hhcgkgICAqdmFybmFtZTsKKwljaGFyCSAgICpuc3BuYW1lOwor CWNoYXIJICAgKnJlc3VsdDsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwg T2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkp CisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZh cmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisK Kwl2YXJuYW1lID0gTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKTsKKworCWlmICghVmFyaWFibGVJ c1Zpc2libGUodmFyaWQpKQorCQluc3BuYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAo dmFyZm9ybS0+dmFybmFtZXNwYWNlKTsKKwllbHNlCisJCW5zcG5hbWUgPSBOVUxMOworCisJcmVz dWx0ID0gcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIobnNwbmFtZSwgdmFybmFtZSk7CisKKwlS ZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiBHaXZl biBhIEMgc3RyaW5nLCBwcm9kdWNlIGEgVEVYVCBkYXR1bS4KICAqCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L2xzeXNjYWNoZS5jCmluZGV4IDFjNDAzMWVlYTIzLi5iOWIwYWM1NTQ3NSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvbHN5c2NhY2hlLmMKQEAgLTM5NDYsMyArMzk0NiwyNyBAQCBnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lc3BhY2UoT2lkIHZhcmlkKQogCiAJcmV0dXJuIHZhcm5hbWVzcGFjZTsKIH0K KworLyoKKyAqIFJldHVybnMgdGhlIHR5cGUsIHR5cG1vZCBhbmQgY29sbGlkIG9mIHRoZSBnaXZl biBzZXNzaW9uIHZhcmlhYmxlLgorICovCit2b2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBl X3R5cG1vZF9jb2xsaWQoT2lkIHZhcmlkLCBPaWQgKnR5cGlkLCBpbnQzMiAqdHlwbW9kLAorCQkJ CQkJCQkJCU9pZCAqY29sbGlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJs ZSB2YXJmb3JtOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJ ZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxv ZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2 YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOwor CisJKnR5cGlkID0gdmFyZm9ybS0+dmFydHlwZTsKKwkqdHlwbW9kID0gdmFyZm9ybS0+dmFydHlw bW9kOworCSpjb2xsaWQgPSB2YXJmb3JtLT52YXJjb2xsYXRpb247CisKKwlSZWxlYXNlU3lzQ2Fj aGUodHVwKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IGQxMmMzYjk1N2I3Li41YWE4 NmIxZGI3MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC0xMTYsNiArMTE2LDggQEAgZXh0 ZXJuIE9pZAlUeXBlbmFtZUdldFR5cGlkRXh0ZW5kZWQoY29uc3QgY2hhciAqdHlwbmFtZSwgYm9v bCB0ZW1wX29rKTsKIGV4dGVybiBib29sIFR5cGVJc1Zpc2libGUoT2lkIHR5cGlkKTsKIAogZXh0 ZXJuIGJvb2wgVmFyaWFibGVJc1Zpc2libGUoT2lkIHZhcmlkKTsKK2V4dGVybiBPaWQJSWRlbnRp ZnlWYXJpYWJsZShMaXN0ICpuYW1lcywgY2hhciAqKmF0dHJuYW1lLAorCQkJCQkJCSBib29sICpu b3RfdW5pcXVlLCBib29sIG5vZXJyb3IpOwogCiBleHRlcm4gRnVuY0NhbmRpZGF0ZUxpc3QgRnVu Y25hbWVHZXRDYW5kaWRhdGVzKExpc3QgKm5hbWVzLAogCQkJCQkJCQkJCQkgICBpbnQgbmFyZ3Ms IExpc3QgKmFyZ25hbWVzLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDZkZGUwMWYyYzdiLi45 OTk0N2NhZGVlOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMTY3LDYgKzE2Nyw4IEBAIHR5 cGVkZWYgc3RydWN0IFF1ZXJ5CiAJYm9vbAkJaGFzUm93U2VjdXJpdHkgcGdfbm9kZV9hdHRyKHF1 ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIHBhcnNlciBoYXMgYWRkZWQgYW4gUlRFX0dST1VQIFJU RSAqLwogCWJvb2wJCWhhc0dyb3VwUlRFIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3Jl KTsKKwkvKiB1c2VzIHNlc3Npb24gdmFyaWFibGVzICovCisJYm9vbAkJaGFzU2Vzc2lvblZhcmlh YmxlcyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogaXMgYSBSRVRVUk4g c3RhdGVtZW50ICovCiAJYm9vbAkJaXNSZXR1cm4gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9p Z25vcmUpOwogCkBAIC0zMjIsNiArMzI0LDE2IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFtUmVmCiAJ UGFyc2VMb2MJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAq LwogfSBQYXJhbVJlZjsKIAorLyoKKyAqIFZhcmlhYmxlRmVuY2UgLSBlbnN1cmUgc28gZmllbGRz IHdpbGwgYmUgaW50ZXJwcmV0dGVkIGFzIGEgdmFyaWFibGUKKyAqLwordHlwZWRlZiBzdHJ1Y3Qg VmFyaWFibGVGZW5jZQoreworCU5vZGVUYWcJCXR5cGU7CisJTGlzdAkgICAqdmFybmFtZTsJCS8q IHZhcmlhYmxlIG5hbWUgKFN0cmluZyBub2RlcykgKi8KKwlQYXJzZUxvYwlsb2NhdGlvbjsJCS8q IHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCit9IFZhcmlhYmxlRmVuY2U7CisK IC8qCiAgKiBBX0V4cHIgLSBpbmZpeCwgcHJlZml4LCBhbmQgcG9zdGZpeCBleHByZXNzaW9ucwog ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IDFiNDQzNmYyZmY2Li41ZjNhMWEyZDFiZSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmgKQEAgLTM3OCw2ICszNzgsOCBAQCB0eXBlZGVmIHN0cnVjdCBDb25z dAogICoJCQkJb2YgdGhlIGBwYXJhbWlkJyBmaWVsZCBjb250YWluIHRoZSBTdWJMaW5rJ3Mgc3Vi TGlua0lkLCBhbmQKICAqCQkJCXRoZSBsb3ctb3JkZXIgMTYgYml0cyBjb250YWluIHRoZSBjb2x1 bW4gbnVtYmVyLiAgKFRoaXMgdHlwZQogICoJCQkJb2YgUGFyYW0gaXMgYWxzbyBjb252ZXJ0ZWQg dG8gUEFSQU1fRVhFQyBkdXJpbmcgcGxhbm5pbmcuKQorICoJCVBBUkFNX1ZBUklBQkxFOiAgVGhl IHBhcmFtZXRlciBpcyBhIHJlZmVyZW5jZSB0byBhIHNlc3Npb24gdmFyaWFibGUKKyAqCQkJCShw YXJhbXZhcmlkIGhvbGRzIHRoZSB2YXJpYWJsZSdzIE9JRCkuCiAgKi8KIHR5cGVkZWYgZW51bSBQ YXJhbUtpbmQKIHsKQEAgLTM4NSw2ICszODcsNyBAQCB0eXBlZGVmIGVudW0gUGFyYW1LaW5kCiAJ UEFSQU1fRVhFQywKIAlQQVJBTV9TVUJMSU5LLAogCVBBUkFNX01VTFRJRVhQUiwKKwlQQVJBTV9W QVJJQUJMRSwKIH0gUGFyYW1LaW5kOwogCiB0eXBlZGVmIHN0cnVjdCBQYXJhbQpAQCAtMzk5LDYg KzQwMiw4IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFtCiAJaW50MzIJCXBhcmFtdHlwbW9kOwogCS8q IE9JRCBvZiBjb2xsYXRpb24sIG9yIEludmFsaWRPaWQgaWYgbm9uZSAqLwogCU9pZAkJCXBhcmFt Y29sbGlkOworCS8qIE9JRCBvZiB1c2VkIHNlc3Npb24gdmFyaWFibGUgb3IgSW52YWxpZE9pZCBp ZiBub25lICovCisJT2lkCQkJcGFyYW12YXJpZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2ln bm9yZSk7CiAJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxv Ywlsb2NhdGlvbjsKIH0gUGFyYW07CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2Vfbm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCBmN2QwN2M4 NDU0Mi4uODRlODg2OTQwZDggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9u b2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtMjI4LDYgKzIy OCw3IEBAIHN0cnVjdCBQYXJzZVN0YXRlCiAJYm9vbAkJcF9oYXNUYXJnZXRTUkZzOwogCWJvb2wJ CXBfaGFzU3ViTGlua3M7CiAJYm9vbAkJcF9oYXNNb2RpZnlpbmdDVEU7CisJYm9vbAkJcF9oYXNT ZXNzaW9uVmFyaWFibGVzOwogCiAJTm9kZQkgICAqcF9sYXN0X3NyZjsJCS8qIG1vc3QgcmVjZW50 IHNldC1yZXR1cm5pbmcgZnVuYy9vcCBmb3VuZCAqLwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4 IDAzYzRjNTg1ODBlLi41OTI2YTg1NGQxMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMv bHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAgLTIxNCw2 ICsyMTQsMTAgQEAgZXh0ZXJuIGNoYXIgKmdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQs IGJvb2wgbWlzc2luZ19vayk7CiAKIGV4dGVybiBjaGFyICpnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKE9pZCB2YXJpZCk7CiBleHRlcm4gT2lkCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFj ZShPaWQgdmFyaWQpOworZXh0ZXJuIHZvaWQgZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBt b2RfY29sbGlkKE9pZCB2YXJpZCwKKwkJCQkJCQkJCQkJCQlPaWQgKnR5cGlkLAorCQkJCQkJCQkJ CQkJCWludDMyICp0eXBtb2QsCisJCQkJCQkJCQkJCQkJT2lkICpjb2xsaWQpOwogCiAjZGVmaW5l IHR5cGVfaXNfYXJyYXkodHlwaWQpICAoZ2V0X2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxp ZE9pZCkKIC8qIHR5cGVfaXNfYXJyYXlfZG9tYWluIGFjY2VwdHMgYm90aCBwbGFpbiBhcnJheXMg YW5kIGRvbWFpbnMgb3ZlciBhcnJheXMgKi8KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9wbF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IGQxOTQyNWI3 YTcxLi45Njg1Nzg3NGZmZSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMu YworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC04MjY4LDcgKzgyNjgsOCBA QCBleGVjX2lzX3NpbXBsZV9xdWVyeShQTHBnU1FMX2V4cHIgKmV4cHIpCiAJCXF1ZXJ5LT5zb3J0 Q2xhdXNlIHx8CiAJCXF1ZXJ5LT5saW1pdE9mZnNldCB8fAogCQlxdWVyeS0+bGltaXRDb3VudCB8 fAotCQlxdWVyeS0+c2V0T3BlcmF0aW9ucykKKwkJcXVlcnktPnNldE9wZXJhdGlvbnMgfHwKKwkJ cXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJCXJldHVybiBmYWxzZTsKIAogCS8qCmRpZmYg LS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDkwMDIzN2FjZGU0Li4wMmQ5ZDc2ZDFlNCAxMDA2NDQK LS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTMyMTEsNiArMzIxMSw3IEBAIFZhbGlkYXRvclZhbGlk YXRlQ0IKIFZhbHVlc1NjYW4KIFZhbHVlc1NjYW5TdGF0ZQogVmFyCitWYXJpYWJsZUZlbmNlCiBW YXJCaXQKIFZhckNoYXIKIFZhclBhcmFtU3RhdGUKLS0gCjIuNTEuMQoK --0000000000001c96f9064262bb7f Content-Type: text/x-patch; charset="US-ASCII"; name="v20251030-0005-support-of-session-variables-for-pg_dump.patch" Content-Disposition: attachment; filename="v20251030-0005-support-of-session-variables-for-pg_dump.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhdn0dck10 RnJvbSAxZTU0NjY5NjJlODJkMDM1MDU4MGU1YTk0Zjk4OWJlYWQwMmU1YWFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFdlZCwgMjggTWF5IDIwMjUgMjI6NTQ6MDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDA1 LzE1XSBzdXBwb3J0IG9mIHNlc3Npb24gdmFyaWFibGVzIGZvciBwZ19kdW1wCgpUaGlzIHBhdGNo IGVuaGFuY2luZyBwZ19kdW1wIHRvIHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuCi0tLQogc3Jj L2Jpbi9wZ19kdW1wL2NvbW1vbi5jICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcGdfZHVt cC9kdW1wdXRpbHMuYyAgICAgICAgICB8ICAgNiArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw LmggICAgICAgICAgfCAgIDIgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5j IHwgICA5ICsrCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgfCAxOTAgKysr KysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAg ICAgICAgfCAgMTUgKysrCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgICAgICAgfCAg IDcgKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgIHwgIDYzICsrKysrKysr Kwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgIHwgICAxICsKIDkgZmlsZXMg Y2hhbmdlZCwgMjk2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAv Y29tbW9uLmMgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKaW5kZXggNGU3MzAzZWE2MzEuLmFl YTgzZTUwYTdiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL2NvbW1vbi5jCkBAIC0yNDcsNiArMjQ3LDkgQEAgZ2V0U2NoZW1hRGF0YShB cmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlc1B0cikKIAlwZ19sb2dfaW5mbygicmVhZGluZyBz dWJzY3JpcHRpb24gbWVtYmVyc2hpcCBvZiByZWxhdGlvbnMiKTsKIAlnZXRTdWJzY3JpcHRpb25S ZWxhdGlvbnMoZm91dCk7CiAKKwlwZ19sb2dfaW5mbygicmVhZGluZyB2YXJpYWJsZXMiKTsKKwln ZXRWYXJpYWJsZXMoZm91dCk7CisKIAlmcmVlKGluaGluZm8pOwkJCQkvKiBub3QgbmVlZGVkIGFu eSBsb25nZXIgKi8KIAogCSpudW1UYWJsZXNQdHIgPSBudW1UYWJsZXM7CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMgYi9zcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMK aW5kZXggMDViODRjMGQ2ZTcuLjE1Y2JlNTYxNmZhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvZHVtcHV0aWxzLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jCkBAIC01NTIs NiArNTUyLDEyIEBAIGRvIHsgXAogCQlDT05WRVJUX1BSSVYoJ3InLCAiU0VMRUNUIik7CiAJCUNP TlZFUlRfUFJJVigndycsICJVUERBVEUiKTsKIAl9CisJZWxzZSBpZiAoc3RyY21wKHR5cGUsICJW QVJJQUJMRSIpID09IDAgfHwKKwkJCSBzdHJjbXAodHlwZSwgIlZBUklBQkxFUyIpID09IDApCisJ eworCQlDT05WRVJUX1BSSVYoJ3InLCAiU0VMRUNUIik7CisJCUNPTlZFUlRfUFJJVigndycsICJV UERBVEUiKTsKKwl9CiAJZWxzZQogCQlhYm9ydCgpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvcGdfYmFja3VwLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKaW5kZXggZDkw NDFkYWQ3MjAuLmRhYzA2N2JkYzRjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFj a3VwLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCkBAIC0xMzQsMTIgKzEzNCwx NCBAQCB0eXBlZGVmIHN0cnVjdCBfcmVzdG9yZU9wdGlvbnMKIAlpbnQJCQlzZWxGdW5jdGlvbjsK IAlpbnQJCQlzZWxUcmlnZ2VyOwogCWludAkJCXNlbFRhYmxlOworCWludAkJCXNlbFZhcmlhYmxl OwogCVNpbXBsZVN0cmluZ0xpc3QgaW5kZXhOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IGZ1bmN0 aW9uTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBzY2hlbWFOYW1lczsKIAlTaW1wbGVTdHJpbmdM aXN0IHNjaGVtYUV4Y2x1ZGVOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHRyaWdnZXJOYW1lczsK IAlTaW1wbGVTdHJpbmdMaXN0IHRhYmxlTmFtZXM7CisJU2ltcGxlU3RyaW5nTGlzdCB2YXJpYWJs ZU5hbWVzOwogCiAJaW50CQkJdXNlREI7CiAJQ29ublBhcmFtcwljcGFyYW1zOwkJLyogcGFyYW1l dGVycyB0byB1c2UgaWYgdXNlREIgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19i YWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwpp bmRleCA1OWVhZWNiNGVkNy4uMDY3NzRkYzc1YzEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC9wZ19iYWNrdXBfYXJjaGl2ZXIuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2Fy Y2hpdmVyLmMKQEAgLTMyNDEsNiArMzI0MSwxNCBAQCBfdG9jRW50cnlSZXF1aXJlZChUb2NFbnRy eSAqdGUsIHRlU2VjdGlvbiBjdXJTZWN0aW9uLCBBcmNoaXZlSGFuZGxlICpBSCkKIAkJCQkJIXNp bXBsZV9zdHJpbmdfbGlzdF9tZW1iZXIoJnJvcHQtPnRyaWdnZXJOYW1lcywgdGUtPnRhZykpCiAJ CQkJCXJldHVybiAwOwogCQkJfQorCQkJZWxzZSBpZiAoc3RyY21wKHRlLT5kZXNjLCAiVkFSSUFC TEUiKSA9PSAwKQorCQkJeworCQkJCWlmICghcm9wdC0+c2VsVmFyaWFibGUpCisJCQkJCXJldHVy biAwOworCQkJCWlmIChyb3B0LT52YXJpYWJsZU5hbWVzLmhlYWQgIT0gTlVMTCAmJgorCQkJCQkh c2ltcGxlX3N0cmluZ19saXN0X21lbWJlcigmcm9wdC0+dmFyaWFibGVOYW1lcywgdGUtPnRhZykp CisJCQkJCXJldHVybiAwOworCQkJfQogCQkJZWxzZQogCQkJCXJldHVybiAwOwogCQl9CkBAIC0z ODE2LDYgKzM4MjQsNyBAQCBfZ2V0T2JqZWN0RGVzY3JpcHRpb24oUFFFeHBCdWZmZXIgYnVmLCBj b25zdCBUb2NFbnRyeSAqdGUpCiAJCXN0cmNtcCh0eXBlLCAiVEVYVCBTRUFSQ0ggRElDVElPTkFS WSIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJURVhUIFNFQVJDSCBDT05GSUdVUkFUSU9OIikg PT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlRZUEUiKSA9PSAwIHx8CisJCXN0cmNtcCh0eXBlLCAi VkFSSUFCTEUiKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVklFVyIpID09IDAgfHwKIAkvKiBu b24tc2NoZW1hLXNwZWNpZmllZCBvYmplY3RzICovCiAJCXN0cmNtcCh0eXBlLCAiREFUQUJBU0Ui KSA9PSAwIHx8CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCA0NzkxMzE3OGE5My4uOTIyYjAwNjBjZDkgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYwpAQCAtMzgxLDYgKzM4MSw3IEBAIHN0YXRpYyB2b2lkIGR1bXBQdWJsaWNhdGlvbihB cmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvbkluZm8gKnB1YmluZm8pOwogc3RhdGljIHZv aWQgZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25S ZWxJbmZvICpwdWJyaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wU3Vic2NyaXB0aW9uKEFyY2hpdmUg KmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlvbkluZm8gKnN1YmluZm8pOwogc3RhdGljIHZvaWQgZHVt cFN1YnNjcmlwdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YlJlbEluZm8gKnN1YnJp bmZvKTsKK3N0YXRpYyB2b2lkIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJp YWJsZUluZm8gKnZhcmluZm8pOwogc3RhdGljIHZvaWQgZHVtcERhdGFiYXNlKEFyY2hpdmUgKmZv dXQpOwogc3RhdGljIHZvaWQgZHVtcERhdGFiYXNlQ29uZmlnKEFyY2hpdmUgKkFILCBQUUV4cEJ1 ZmZlciBvdXRidWYsCiAJCQkJCQkJICAgY29uc3QgY2hhciAqZGJuYW1lLCBPaWQgZGJvaWQpOwpA QCAtNTY5NCw2ICs1Njk1LDE4OCBAQCBnZXRfbmV4dF9wb3NzaWJsZV9mcmVlX3BnX3R5cGVfb2lk KEFyY2hpdmUgKmZvdXQsIFBRRXhwQnVmZmVyIHVwZ3JhZGVfcXVlcnkpCiAJcmV0dXJuIG5leHRf cG9zc2libGVfZnJlZV9vaWQ7CiB9CiAKKy8qCisgKiBnZXRWYXJpYWJsZXMKKyAqCSAgZ2V0IGlu Zm9ybWF0aW9uIGFib3V0IHZhcmlhYmxlcworICovCit2b2lkCitnZXRWYXJpYWJsZXMoQXJjaGl2 ZSAqZm91dCkKK3sKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwlQR3Jlc3VsdCAgICpyZXM7CisJVmFy aWFibGVJbmZvICp2YXJpbmZvOworCWludAkJCWlfdGFibGVvaWQ7CisJaW50CQkJaV9vaWQ7CisJ aW50CQkJaV92YXJuYW1lOworCWludAkJCWlfdmFybmFtZXNwYWNlOworCWludAkJCWlfdmFydHlw ZTsKKwlpbnQJCQlpX3ZhcnR5cG5hbWU7CisJaW50CQkJaV92YXJvd25lcjsKKwlpbnQJCQlpX3Zh cmNvbGxhdGlvbjsKKwlpbnQJCQlpX3ZhcmFjbDsKKwlpbnQJCQlpX2FjbGRlZmF1bHQ7CisJaW50 CQkJaSwKKwkJCQludHVwczsKKworCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uIDwgMTgwMDAwKQor CQlyZXR1cm47CisKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwkvKiBnZXQgdGhl IHZhcmlhYmxlcyBpbiBjdXJyZW50IGRhdGFiYXNlICovCisJYXBwZW5kUFFFeHBCdWZmZXIocXVl cnksCisJCQkJCSAgIlNFTEVDVCB2LnRhYmxlb2lkLCB2Lm9pZCwgdi52YXJuYW1lLFxuIgorCQkJ CQkgICIgICAgICAgdi52YXJuYW1lc3BhY2UsIHYudmFydHlwZSxcbiIKKwkJCQkJICAiICAgICAg IHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgdmFydHlw bmFtZSxcbiIKKwkJCQkJICAiICAgICAgIENBU0UgV0hFTiB2LnZhcmNvbGxhdGlvbiA8PiB0LnR5 cGNvbGxhdGlvbiAiCisJCQkJCSAgIiAgICAgICAgICAgIFRIRU4gdi52YXJjb2xsYXRpb25cbiIK KwkJCQkJICAiICAgICAgICAgICAgRUxTRSAwXG4iCisJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFy Y29sbGF0aW9uLFxuIgorCQkJCQkgICIgICAgICAgdi52YXJvd25lciwgdi52YXJhY2wsXG4iCisJ CQkJCSAgIiAgICAgICBhY2xkZWZhdWx0KCdWJywgdi52YXJvd25lcikgQVMgYWNsZGVmYXVsdFxu IgorCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfdmFyaWFibGUgdlxuIgorCQkJCQkgICJKT0lO IHBnX2NhdGFsb2cucGdfdHlwZSB0ICIKKwkJCQkJICAiT04gKHYudmFydHlwZSA9IHQub2lkKSIp OworCisJcmVzID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBM RVNfT0spOworCisJbnR1cHMgPSBQUW50dXBsZXMocmVzKTsKKworCWlfdGFibGVvaWQgPSBQUWZu dW1iZXIocmVzLCAidGFibGVvaWQiKTsKKwlpX29pZCA9IFBRZm51bWJlcihyZXMsICJvaWQiKTsK KwlpX3Zhcm5hbWUgPSBQUWZudW1iZXIocmVzLCAidmFybmFtZSIpOworCWlfdmFybmFtZXNwYWNl ID0gUFFmbnVtYmVyKHJlcywgInZhcm5hbWVzcGFjZSIpOworCWlfdmFydHlwZSA9IFBRZm51bWJl cihyZXMsICJ2YXJ0eXBlIik7CisJaV92YXJ0eXBuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcnR5 cG5hbWUiKTsKKwlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24i KTsKKworCWlfdmFyb3duZXIgPSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKKwlpX3ZhcmFj bCA9IFBRZm51bWJlcihyZXMsICJ2YXJhY2wiKTsKKwlpX2FjbGRlZmF1bHQgPSBQUWZudW1iZXIo cmVzLCAiYWNsZGVmYXVsdCIpOworCisJdmFyaW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNpemVv ZihWYXJpYWJsZUluZm8pKTsKKworCWZvciAoaSA9IDA7IGkgPCBudHVwczsgaSsrKQorCXsKKwkJ VHlwZUluZm8gICAqdnR5cGU7CisKKwkJdmFyaW5mb1tpXS5kb2JqLm9ialR5cGUgPSBET19WQVJJ QUJMRTsKKwkJdmFyaW5mb1tpXS5kb2JqLmNhdElkLnRhYmxlb2lkID0KKwkJCWF0b29pZChQUWdl dHZhbHVlKHJlcywgaSwgaV90YWJsZW9pZCkpOworCQl2YXJpbmZvW2ldLmRvYmouY2F0SWQub2lk ID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOworCQlBc3NpZ25EdW1wSWQoJnZh cmluZm9baV0uZG9iaik7CisJCXZhcmluZm9baV0uZG9iai5uYW1lID0gcGdfc3RyZHVwKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3Zhcm5hbWUpKTsKKwkJdmFyaW5mb1tpXS5kb2JqLm5hbWVzcGFjZSA9 CisJCQlmaW5kTmFtZXNwYWNlKGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJuYW1lc3Bh Y2UpKSk7CisKKwkJdmFyaW5mb1tpXS52YXJ0eXBlID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBp LCBpX3ZhcnR5cGUpKTsKKwkJdmFyaW5mb1tpXS52YXJ0eXBuYW1lID0gcGdfc3RyZHVwKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3ZhcnR5cG5hbWUpKTsKKwkJdmFyaW5mb1tpXS52YXJjb2xsYXRpb24g PSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CisKKwkJdmFyaW5m b1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wpKTsK KwkJdmFyaW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMs IGksIGlfYWNsZGVmYXVsdCkpOworCQl2YXJpbmZvW2ldLmRhY2wucHJpdnR5cGUgPSAwOworCQl2 YXJpbmZvW2ldLmRhY2wuaW5pdHByaXZzID0gTlVMTDsKKwkJdmFyaW5mb1tpXS5yb2xuYW1lID0g Z2V0Um9sZU5hbWUoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyb3duZXIpKTsKKworCQkvKiBkbyBu b3QgdHJ5IHRvIGR1bXAgQUNMIGlmIG5vIEFDTCBleGlzdHMgKi8KKwkJaWYgKCFQUWdldGlzbnVs bChyZXMsIGksIGlfdmFyYWNsKSkKKwkJCXZhcmluZm9baV0uZG9iai5jb21wb25lbnRzIHw9IERV TVBfQ09NUE9ORU5UX0FDTDsKKworCQlpZiAoc3RybGVuKHZhcmluZm9baV0ucm9sbmFtZSkgPT0g MCkKKwkJCXBnX2xvZ193YXJuaW5nKCJvd25lciBvZiB2YXJpYWJsZSBcIiVzXCIgYXBwZWFycyB0 byBiZSBpbnZhbGlkIiwKKwkJCQkJCSAgIHZhcmluZm9baV0uZG9iai5uYW1lKTsKKworCQkvKiBk ZWNpZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KKwkJc2VsZWN0RHVtcGFibGVPYmpl Y3QoJih2YXJpbmZvW2ldLmRvYmopLCBmb3V0KTsKKworCQl2dHlwZSA9IGZpbmRUeXBlQnlPaWQo dmFyaW5mb1tpXS52YXJ0eXBlKTsKKwkJYWRkT2JqZWN0RGVwZW5kZW5jeSgmdmFyaW5mb1tpXS5k b2JqLCB2dHlwZS0+ZG9iai5kdW1wSWQpOworCX0KKwlQUWNsZWFyKHJlcyk7CisKKwlkZXN0cm95 UFFFeHBCdWZmZXIocXVlcnkpOworfQorCisvKgorICogZHVtcFZhcmlhYmxlCisgKgkgIGR1bXAg dGhlIGRlZmluaXRpb24gb2YgdGhlIGdpdmVuIHNlc3Npb24gdmFyaWFibGUKKyAqLworc3RhdGlj IHZvaWQKK2R1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZh cmluZm8pCit7CisJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OworCisJUFFFeHBCdWZm ZXIgZGVscTsKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwljaGFyCSAgICpxdWFsdmFybmFtZTsKKwlj b25zdCBjaGFyICp2YXJ0eXBuYW1lOworCU9pZAkJCXZhcmNvbGxhdGlvbjsKKworCS8qIHNraXAg aWYgbm90IHRvIGJlIGR1bXBlZCAqLworCWlmICghdmFyaW5mby0+ZG9iai5kdW1wIHx8ICFkb3B0 LT5kdW1wU2NoZW1hKQorCQlyZXR1cm47CisKKwlkZWxxID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsK KwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlxdWFsdmFybmFtZSA9IHBnX3N0cmR1 cChmbXRRdWFsaWZpZWREdW1wYWJsZSh2YXJpbmZvKSk7CisJdmFydHlwbmFtZSA9IHZhcmluZm8t PnZhcnR5cG5hbWU7CisJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9uOworCisJ YXBwZW5kUFFFeHBCdWZmZXIoZGVscSwgIkRST1AgVkFSSUFCTEUgJXM7XG4iLAorCQkJCQkgIHF1 YWx2YXJuYW1lKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIFZBUklBQkxF ICVzIEFTICVzIiwKKwkJCQkJICBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CisKKwlpZiAoT2lk SXNWYWxpZCh2YXJjb2xsYXRpb24pKQorCXsKKwkJQ29sbEluZm8gICAqY29sbDsKKworCQljb2xs ID0gZmluZENvbGxhdGlvbkJ5T2lkKHZhcmNvbGxhdGlvbik7CisJCWlmIChjb2xsKQorCQkJYXBw ZW5kUFFFeHBCdWZmZXIocXVlcnksICIgQ09MTEFURSAlcyIsCisJCQkJCQkJICBmbXRRdWFsaWZp ZWREdW1wYWJsZShjb2xsKSk7CisJfQorCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICI7XG4i KTsKKworCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9O KQorCQlBcmNoaXZlRW50cnkoZm91dCwgdmFyaW5mby0+ZG9iai5jYXRJZCwgdmFyaW5mby0+ZG9i ai5kdW1wSWQsCisJCQkJCSBBUkNISVZFX09QVFMoLnRhZyA9IHZhcmluZm8tPmRvYmoubmFtZSwK KwkJCQkJCQkJICAubmFtZXNwYWNlID0gdmFyaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFt ZSwKKwkJCQkJCQkJICAub3duZXIgPSB2YXJpbmZvLT5yb2xuYW1lLAorCQkJCQkJCQkgIC5kZXNj cmlwdGlvbiA9ICJWQVJJQUJMRSIsCisJCQkJCQkJCSAgLnNlY3Rpb24gPSBTRUNUSU9OX1BSRV9E QVRBLAorCQkJCQkJCQkgIC5jcmVhdGVTdG10ID0gcXVlcnktPmRhdGEsCisJCQkJCQkJCSAgLmRy b3BTdG10ID0gZGVscS0+ZGF0YSkpOworCisJLyogZHVtcCBjb21tZW50IGlmIGFueSAqLworCWlm ICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9DT01NRU5UKQorCQlkdW1wQ29t bWVudChmb3V0LCAiVkFSSUFCTEUiLCBxdWFsdmFybmFtZSwKKwkJCQkJTlVMTCwgdmFyaW5mby0+ cm9sbmFtZSwKKwkJCQkJdmFyaW5mby0+ZG9iai5jYXRJZCwgMCwgdmFyaW5mby0+ZG9iai5kdW1w SWQpOworCisJLyogZHVtcCBBQ0wgaWYgYW55ICovCisJaWYgKHZhcmluZm8tPmRvYmouZHVtcCAm IERVTVBfQ09NUE9ORU5UX0FDTCkKKwl7CisJCWNoYXIJICAgKnF2YXJuYW1lID0gcGdfc3RyZHVw KGZtdElkKHZhcmluZm8tPmRvYmoubmFtZSkpOworCisJCWR1bXBBQ0woZm91dCwgdmFyaW5mby0+ ZG9iai5kdW1wSWQsIEludmFsaWREdW1wSWQsICJWQVJJQUJMRSIsCisJCQkJcXZhcm5hbWUsIE5V TEwsCisJCQkJdmFyaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwgTlVMTCwgdmFyaW5m by0+cm9sbmFtZSwKKwkJCQkmdmFyaW5mby0+ZGFjbCk7CisKKwkJZnJlZShxdmFybmFtZSk7CisJ fQorCisJZGVzdHJveVBRRXhwQnVmZmVyKGRlbHEpOworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVy eSk7CisKKwlmcmVlKHF1YWx2YXJuYW1lKTsKK30KKwogc3RhdGljIHZvaWQKIGJpbmFyeV91cGdy YWRlX3NldF90eXBlX29pZHNfYnlfdHlwZV9vaWQoQXJjaGl2ZSAqZm91dCwKIAkJCQkJCQkJCQkg UFFFeHBCdWZmZXIgdXBncmFkZV9idWZmZXIsCkBAIC0xMTgyOCw2ICsxMjAxMSw5IEBAIGR1bXBE dW1wYWJsZU9iamVjdChBcmNoaXZlICpmb3V0LCBEdW1wYWJsZU9iamVjdCAqZG9iaikKIAkJY2Fz ZSBET19SRUxfU1RBVFM6CiAJCQlkdW1wUmVsYXRpb25TdGF0cyhmb3V0LCAoY29uc3QgUmVsU3Rh dHNJbmZvICopIGRvYmopOwogCQkJYnJlYWs7CisJCWNhc2UgRE9fVkFSSUFCTEU6CisJCQlkdW1w VmFyaWFibGUoZm91dCwgKFZhcmlhYmxlSW5mbyAqKSBkb2JqKTsKKwkJCWJyZWFrOwogCQljYXNl IERPX1BSRV9EQVRBX0JPVU5EQVJZOgogCQljYXNlIERPX1BPU1RfREFUQV9CT1VOREFSWToKIAkJ CS8qIG5ldmVyIGR1bXBlZCwgbm90aGluZyB0byBkbyAqLwpAQCAtMTYzMjksNiArMTY1MTUsOSBA QCBkdW1wRGVmYXVsdEFDTChBcmNoaXZlICpmb3V0LCBjb25zdCBEZWZhdWx0QUNMSW5mbyAqZGFj bGluZm8pCiAJCWNhc2UgREVGQUNMT0JKX0xBUkdFT0JKRUNUOgogCQkJdHlwZSA9ICJMQVJHRSBP QkpFQ1RTIjsKIAkJCWJyZWFrOworCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCXR5cGUg PSAiVkFSSUFCTEVTIjsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJLyogc2hvdWxkbid0IGdl dCBoZXJlICovCiAJCQlwZ19mYXRhbCgidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlIGluIGRlZmF1 bHQgcHJpdmlsZWdlczogJWQiLApAQCAtMjAxNDcsNiArMjAzMzYsNyBAQCBhZGRCb3VuZGFyeURl cGVuZGVuY2llcyhEdW1wYWJsZU9iamVjdCAqKmRvYmpzLCBpbnQgbnVtT2JqcywKIAkJCWNhc2Ug RE9fQ09OVkVSU0lPTjoKIAkJCWNhc2UgRE9fVEFCTEU6CiAJCQljYXNlIERPX1RBQkxFX0FUVEFD SDoKKwkJCWNhc2UgRE9fVkFSSUFCTEU6CiAJCQljYXNlIERPX0FUVFJERUY6CiAJCQljYXNlIERP X1BST0NMQU5HOgogCQkJY2FzZSBET19DQVNUOgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggNzJhMDBlMWJjMjAu LmY5NGUwNWEwNWYxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTUzLDYgKzUzLDcgQEAgdHlwZWRlZiBlbnVt CiAJRE9fVEFCTEUsCiAJRE9fVEFCTEVfQVRUQUNILAogCURPX0FUVFJERUYsCisJRE9fVkFSSUFC TEUsCiAJRE9fSU5ERVgsCiAJRE9fSU5ERVhfQVRUQUNILAogCURPX1NUQVRTRVhULApAQCAtNzQ2 LDYgKzc0NywxOSBAQCB0eXBlZGVmIHN0cnVjdCBfU3ViUmVsSW5mbwogCWNoYXIJICAgKnNyc3Vi bHNuOwogfSBTdWJSZWxJbmZvOwogCisvKgorICogVGhlIFZhcmlhYmxlSW5mbyBzdHJ1Y3QgaXMg dXNlZCB0byByZXByZXNlbnQgc2Vzc2lvbiB2YXJpYWJsZXMKKyAqLwordHlwZWRlZiBzdHJ1Y3Qg X1ZhcmlhYmxlSW5mbworeworCUR1bXBhYmxlT2JqZWN0IGRvYmo7CisJRHVtcGFibGVBY2wgZGFj bDsKKwlPaWQJCQl2YXJ0eXBlOworCWNoYXIJICAgKnZhcnR5cG5hbWU7CisJT2lkCQkJdmFyY29s bGF0aW9uOworCWNvbnN0IGNoYXIgKnJvbG5hbWU7CQkvKiBuYW1lIG9mIG93bmVyLCBvciBlbXB0 eSBzdHJpbmcgKi8KK30gVmFyaWFibGVJbmZvOworCiAvKgogICoJY29tbW9uIHV0aWxpdHkgZnVu Y3Rpb25zCiAgKi8KQEAgLTgzMCw1ICs4NDQsNiBAQCBleHRlcm4gdm9pZCBnZXRQdWJsaWNhdGlv blRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLAogCQkJCQkJCQkgaW50 IG51bVRhYmxlcyk7CiBleHRlcm4gdm9pZCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQp OwogZXh0ZXJuIHZvaWQgZ2V0U3Vic2NyaXB0aW9uUmVsYXRpb25zKEFyY2hpdmUgKmZvdXQpOwor ZXh0ZXJuIHZvaWQgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpOwogCiAjZW5kaWYJCQkJCQkJ LyogUEdfRFVNUF9IICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0 LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXggMTY0Yzc2ZTA4NjQuLjlm NmZmNmI3ZDU3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCkBAIC03Niw2ICs3Niw3IEBAIGVudW0g ZGJPYmplY3RUeXBlUHJpb3JpdGllcwogCVBSSU9fVEFCTEVfQVRUQUNILAogCVBSSU9fRFVNTVlf VFlQRSwKIAlQUklPX0FUVFJERUYsCisJUFJJT19WQVJJQUJMRSwKIAlQUklPX1BSRV9EQVRBX0JP VU5EQVJZLAkJLyogYm91bmRhcnkhICovCiAJUFJJT19UQUJMRV9EQVRBLAogCVBSSU9fU0VRVUVO Q0VfU0VULApAQCAtMTE5LDYgKzEyMCw3IEBAIHN0YXRpYyBjb25zdCBpbnQgZGJPYmplY3RUeXBl UHJpb3JpdHlbXSA9CiAJW0RPX1RBQkxFXSA9IFBSSU9fVEFCTEUsCiAJW0RPX1RBQkxFX0FUVEFD SF0gPSBQUklPX1RBQkxFX0FUVEFDSCwKIAlbRE9fQVRUUkRFRl0gPSBQUklPX0FUVFJERUYsCisJ W0RPX1ZBUklBQkxFXSA9IFBSSU9fVkFSSUFCTEUsCiAJW0RPX0lOREVYXSA9IFBSSU9fSU5ERVgs CiAJW0RPX0lOREVYX0FUVEFDSF0gPSBQUklPX0lOREVYX0FUVEFDSCwKIAlbRE9fU1RBVFNFWFRd ID0gUFJJT19TVEFUU0VYVCwKQEAgLTE3NTAsNiArMTc1MiwxMSBAQCBkZXNjcmliZUR1bXBhYmxl T2JqZWN0KER1bXBhYmxlT2JqZWN0ICpvYmosIGNoYXIgKmJ1ZiwgaW50IGJ1ZnNpemUpCiAJCQkJ CSAiUkVMQVRJT04gU1RBVElTVElDUyBGT1IgJXMgIChJRCAlZCBPSUQgJXUpIiwKIAkJCQkJIG9i ai0+bmFtZSwgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKIAkJCXJldHVybjsKKwkJY2Fz ZSBET19WQVJJQUJMRToKKwkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKKwkJCQkJICJWQVJJQUJM RSAlcyAgKElEICVkIE9JRCAldSkiLAorCQkJCQkgb2JqLT5uYW1lLCBvYmotPmR1bXBJZCwgb2Jq LT5jYXRJZC5vaWQpOworCQkJcmV0dXJuOwogCX0KIAkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8K IAlzbnByaW50ZihidWYsIGJ1ZnNpemUsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8w MDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDQ0 NWE1NDFhYmY2Li5kNWE3MGIzOWNjNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTc1 MCw2ICs3NTAsMTYgQEAgbXkgJXRlc3RzID0gKAogCQl1bmxpa2UgPT4geyBub19wcml2cyA9PiAx LCB9LAogCSAgfSwKIAorCSdBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVz c19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQycKKwkg ID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDU2LAorCQljcmVhdGVfc3FsICAgPT4gJ0FMVEVSIERF RkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIEdSQU5UIFNF TEVDVCBPTiBWQVJJQUJMRVMgVE8gUFVCTElDOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUFM VEVSIERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIEdS QU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8gUFVCTElDO1xFL3htLAorCQlsaWtlID0+IHsgJWZ1 bGxfcnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsgbm9fcHJp dnMgPT4gMSwgfSwKKwkgIH0sCisKIAknQUxURVIgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xl JyA9PiB7CiAJCXJlZ2V4cCA9PiBxci9eCiAJCQlcUUFMVEVSIFJPTEUgcmVncmVzc19kdW1wX3Rl c3Rfcm9sZSBXSVRIIFxFCkBAIC0xNzc2LDYgKzE3ODYsMjMgQEAgbXkgJXRlc3RzID0gKAogCQl9 LAogCX0sCiAKKwknQ09NTUVOVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxJyA9PiB7 CisJCWNyZWF0ZV9vcmRlciA9PiA3MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDT01NRU5UIE9OIFZB UklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEKKwkJCQkJICAgSVMgXCdjb21tZW50IG9uIHZhcmlh YmxlXCc7JywKKwkJcmVnZXhwID0+CisJCSAgcXIvXlxRQ09NTUVOVCBPTiBWQVJJQUJMRSBkdW1w X3Rlc3QudmFyaWFibGUxIElTICdjb21tZW50IG9uIHZhcmlhYmxlJztcRS9tLAorCQlsaWtlID0+ IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlv bl9wcmVfZGF0YSAgICAgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVt cF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJ CX0sCisJfSwKKwogCSdDT1BZIHRlc3RfdGFibGUnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDQs CiAJCWNyZWF0ZV9zcWwgPT4gJ0lOU0VSVCBJTlRPIGR1bXBfdGVzdC50ZXN0X3RhYmxlIChjb2wx KSAnCkBAIC00MDc0LDYgKzQxMDEsMjMgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwkn Q1JFQVRFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJY2F0Y2hfYWxsICAgID0+ICdD UkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3Fs ICAgPT4gJ0NSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIEFTIGludGVnZXI7JywK KwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJs ZTEgQVMgaW50ZWdlcjtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1 bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJ dW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9k dW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0ZXN0 X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdDUkVB VEUgVklFVyBkdW1wX3Rlc3QudGVzdF92aWV3CkBAIC00NTM4LDYgKzQ1ODIsMjUgQEAgbXkgJXRl c3RzID0gKAogCQlsaWtlID0+IHt9LAogCX0sCiAKKwknR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxF IGR1bXBfdGVzdC52YXJpYWJsZTEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDczLAorCQljcmVh dGVfc3FsID0+CisJCSAgJ0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFi bGUxIFRPIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGU7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxR R1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgVE8gcmVncmVzc19k dW1wX3Rlc3Rfcm9sZTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJ CQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9 LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlu b19wcml2cyAgICAgICAgICAgICAgICAgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAg ICA9PiAxLAorCQl9LAorCX0sCisKIAknUkVGUkVTSCBNQVRFUklBTElaRUQgVklFVyBtYXR2aWV3 JyA9PiB7CiAJCXJlZ2V4cCA9PiBxci9eXFFSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIGR1bXBf dGVzdC5tYXR2aWV3O1xFL20sCiAJCWxpa2UgPT4KZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5k ZXggZmM1YTI3YzgxZjcuLjkwMDIzN2FjZGU0IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApA QCAtMzIxOSw2ICszMjE5LDcgQEAgVmFyU3RyaW5nCiBWYXJTdHJpbmdTb3J0U3VwcG9ydAogVmFy aWFibGUKIFZhcmlhYmxlQXNzaWduSG9vaworVmFyaWFibGVJbmZvCiBWYXJpYWJsZVNldEtpbmQK IFZhcmlhYmxlU2V0U3RtdAogVmFyaWFibGVTaG93U3RtdAotLSAKMi41MS4xCgo= --0000000000001c96f9064262bb7f Content-Type: text/x-patch; charset="US-ASCII"; name="v20251030-0004-support-of-session-variables-for-psql.patch" Content-Disposition: attachment; filename="v20251030-0004-support-of-session-variables-for-psql.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhdn0dcy11 RnJvbSBiMmUwNjc3MGRlZDQwMjBkNGJiNjNkZmM2MDgxYmZhYWZhMTU5ODlkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDUgQXVnIDIwMjUgMDY6NDI6MDIgKzAyMDAKU3ViamVjdDogW1BB VENIIDA0LzE1XSBzdXBwb3J0IG9mIHNlc3Npb24gdmFyaWFibGVzIGZvciBwc3FsCgpUaGlzIHBh dGNoIGVuaGFuY2luZyBwc3FsIHRvIHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXM6CgogKiBcZFZb K10gY29tbWFuZAogKiB0YWIgY29tcGxldGUgZm9yIENSRUFURSwgRFJPUCwgQUxURVIgVkFSSUFC TEUKCk5vdGU6IHRhYiBjb21wbGV0ZSBmb3IgdmFyaWFibGUgZmVuY2luZyBpcyBub3Qgc3VwcG9y dGVkIHlldAotLS0KIGRvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtaW5mby5zZ21sICAgfCAgMTMgKysr KwogZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICB8ICAxMyArKysrCiBzcmMvYmFj a2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jICAgIHwgIDE0ICsrKysKIHNyYy9iaW4vcHNxbC9jb21t YW5kLmMgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAg ICAgICB8IDEwMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmggICAgICAgICAgICB8ICAgMyArCiBzcmMvYmluL3BzcWwvaGVscC5jICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgfCAgNDUg KysrKysrKysrKystLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICB8ICAgMyAr CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IHwgIDUwICsrKysrKysrKysrKysr Kwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwgICAgICB8ICAyMSArKysrKysKIDExIGZp bGVzIGNoYW5nZWQsIDI1OSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtaW5mby5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMv ZnVuYy1pbmZvLnNnbWwKaW5kZXggYTU3Zjc2NjUwNTQuLjNhYWQ5ZDA1MjlmIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWluZm8uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVu Yy9mdW5jLWluZm8uc2dtbApAQCAtMTM3Nyw2ICsxMzc3LDE5IEBAIFNFTEVDVCByZWxuYW1lIEZS T00gcGdfY2xhc3MgV0hFUkUgcGdfdGFibGVfaXNfdmlzaWJsZShvaWQpOwogICAgICAgICBJcyB0 eXBlIChvciBkb21haW4pIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/CiAgICAgICAgPC9wYXJhPjwv ZW50cnk+CiAgICAgICA8L3Jvdz4KKworICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0i ZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8 aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+cGdfdmFyaWFibGVfaXNfdmlzaWJsZTwvcHJp bWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+CisgICAgICAgIDxmdW5jdGlvbj5wZ192YXJpYWJs ZV9pc192aXNpYmxlPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnZhcmlhYmxlPC9wYXJhbWV0ZXI+ IDx0eXBlPm9pZDwvdHlwZT4gKQorICAgICAgICA8cmV0dXJudmFsdWU+Ym9vbGVhbjwvcmV0dXJu dmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBJcyBzZXNzaW9u IHZhcmlhYmxlIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/CisgICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgICA8L3Jvdz4KICAgICAgPC90Ym9keT4KICAgICA8L3Rncm91cD4KICAgIDwvdGFibGU+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggODQ2ODNmNjJiMWMuLjQwZWQ0YjBmZWFkIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yMTQ0LDYgKzIxNDQsMTkgQEAgU0VMRUNUICQxIFxwYXJz ZSBzdG10MQogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg ICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImFwcC1wc3FsLW1ldGEtY29tbWFuZC1kdiI+CisgICAgICAg IDx0ZXJtPjxsaXRlcmFsPlxkVlsrXSBbIDxsaW5rIGxpbmtlbmQ9ImFwcC1wc3FsLXBhdHRlcm5z Ij48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+PC9s aW5rPiBdPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFy YT4KKyAgICAgICAgTGlzdHMgc2Vzc2lvbiB2YXJpYWJsZXMuCisgICAgICAgIElmIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4gaXMKKyAgICAgICAg c3BlY2lmaWVkLCBvbmx5IHNlc3Npb24gdmFyaWFibGVzIHdob3NlIG5hbWVzIG1hdGNoIHRoZSBw YXR0ZXJuIGFyZSBsaXN0ZWQuCisgICAgICAgIElmIHRoZSBmb3JtIDxsaXRlcmFsPlxkVis8L2xp dGVyYWw+IGlzIHVzZWQsIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAgICAgICAgYWJvdXQgZWFj aCB2YXJpYWJsZSBpcyBzaG93biwgbGlrZSAgYWNjZXNzIHByaXZpbGVnZXMgYW5kIGRlc2NyaXB0 aW9uLgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxp c3RlbnRyeT4KKwogICAgICAgPHZhcmxpc3RlbnRyeSBpZD0iYXBwLXBzcWwtbWV0YS1jb21tYW5k LWR1Ij4KICAgICAgICAgPHRlcm0+PGxpdGVyYWw+XGR1W1N4K10gWyA8bGluayBsaW5rZW5kPSJh cHAtcHNxbC1wYXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48 L3JlcGxhY2VhYmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRl bT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IGFiODM3YTNjYjllLi44MDBmMzdkYzJlYSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC01MzYyLDMgKzUzNjIsMTcgQEAgcGdfaXNfb3Ro ZXJfdGVtcF9zY2hlbWEoUEdfRlVOQ1RJT05fQVJHUykKIAogCVBHX1JFVFVSTl9CT09MKGlzT3Ro ZXJUZW1wTmFtZXNwYWNlKG9pZCkpOwogfQorCitEYXR1bQorcGdfdmFyaWFibGVfaXNfdmlzaWJs ZShQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCW9pZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJ Ym9vbAkJcmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKworCXJlc3VsdCA9IFZh cmlhYmxlSXNWaXNpYmxlRXh0KG9pZCwgJmlzX21pc3NpbmcpOworCisJaWYgKGlzX21pc3Npbmcp CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJUEdfUkVUVVJOX0JPT0wocmVzdWx0KTsKK30KZGlmZiAt LWdpdCBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmlu ZGV4IGNjNjAyMDg3ZGIyLi4wYWM3Yjk4ODFjZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Nv bW1hbmQuYworKysgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCkBAIC0xMjcwLDYgKzEyNzAsOSBA QCBleGVjX2NvbW1hbmRfZChQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2Jy YW5jaCwgY29uc3QgY2hhciAqY21kKQogCQkJCQkJYnJlYWs7CiAJCQkJfQogCQkJCWJyZWFrOwor CQkJY2FzZSAnVic6CQkJLyogVmFyaWFibGVzICovCisJCQkJc3VjY2VzcyA9IGxpc3RWYXJpYWJs ZXMocGF0dGVybiwgc2hvd192ZXJib3NlKTsKKwkJCQlicmVhazsKIAkJCWNhc2UgJ3gnOgkJCS8q IEV4dGVuc2lvbnMgKi8KIAkJCQlpZiAoc2hvd192ZXJib3NlKQogCQkJCQlzdWNjZXNzID0gbGlz dEV4dGVuc2lvbkNvbnRlbnRzKHBhdHRlcm4pOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCAzNmYyNDUwMjg0Mi4uMTJi YzM4M2U4M2UgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jCkBAIC0xMjI0LDcgKzEyMjQsNyBAQCBsaXN0RGVmYXVsdEFDTHMo Y29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJICAiU0VMRUNUIHBnX2NhdGFsb2cucGdfZ2V0X3Vz ZXJieWlkKGQuZGVmYWNscm9sZSkgQVMgXCIlc1wiLFxuIgogCQkJCQkgICIgIG4ubnNwbmFtZSBB UyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgQ0FTRSBkLmRlZmFjbG9ianR5cGUgIgotCQkJCQkgICIg ICAgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVO ICclcyciCisJCQkJCSAgIiAgICBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICcl cycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIgogCQkJCQkgICIgICAg V0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICcl cycgRU5EIEFTIFwiJXNcIixcbiIKIAkJCQkJICAiICAiLAogCQkJCQkgIGdldHRleHRfbm9vcCgi T3duZXIiKSwKQEAgLTEyNDEsNiArMTI0MSw4IEBAIGxpc3REZWZhdWx0QUNMcyhjb25zdCBjaGFy ICpwYXR0ZXJuKQogCQkJCQkgIGdldHRleHRfbm9vcCgic2NoZW1hIiksCiAJCQkJCSAgREVGQUNM T0JKX0xBUkdFT0JKRUNULAogCQkJCQkgIGdldHRleHRfbm9vcCgibGFyZ2Ugb2JqZWN0IiksCisJ CQkJCSAgREVGQUNMT0JKX1ZBUklBQkxFLAorCQkJCQkgIGdldHRleHRfbm9vcCgic2Vzc2lvbiB2 YXJpYWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpKTsKIAogCXByaW50QUNMQ29s dW1uKCZidWYsICJkLmRlZmFjbGFjbCIpOwpAQCAtNTM0OCw2ICs1MzUwLDEwMiBAQCBlcnJvcl9y ZXR1cm46CiAJcmV0dXJuIGZhbHNlOwogfQogCisvKgorICogXGRWCisgKgorICogbGlzdFZhcmlh YmxlcygpCisgKi8KK2Jvb2wKK2xpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9v bCB2ZXJib3NlKQoreworCVBRRXhwQnVmZmVyRGF0YSBidWY7CisJUEdyZXN1bHQgICAqcmVzOwor CXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7CisJc3RhdGljIGNvbnN0IGJvb2wgdHJh bnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZX07CisKKwlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKKwl7CisJCWNoYXIJ CXN2ZXJidWZbMzJdOworCisJCXBnX2xvZ19lcnJvcigiVGhlIHNlcnZlciAodmVyc2lvbiAlcykg ZG9lcyBub3Qgc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcy4iLAorCQkJCQkgZm9ybWF0UEdWZXJz aW9uTnVtYmVyKHBzZXQuc3ZlcnNpb24sIGZhbHNlLAorCQkJCQkJCQkJCSAgIHN2ZXJidWYsIHNp emVvZihzdmVyYnVmKSkpOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlpbml0UFFFeHBCdWZmZXIo JmJ1Zik7CisKKwlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxFQ1Qgbi5uc3Bu YW1lIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICB2LnZhcm5hbWUgYXMgXCIlc1wiLFxuIgorCQkJ CQkgICIgIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMg XCIlc1wiLFxuIgorCQkJCQkgICIgIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cu cGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSBidFxuIgorCQkJCQkgICIgICBXSEVS RSBjLm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5vaWQgPSB2LnZhcnR5cGUgQU5EIHYudmFy Y29sbGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHBn X2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIlxuIiwKKwkJCQkJ ICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIpLAor CQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0 aW9uIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpKTsKKworCWlmICh2ZXJib3NlKQor CXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgIik7CisJCXByaW50QUNMQ29s dW1uKCZidWYsICJ2LnZhcmFjbCIpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJ ICAiLFxuICBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbih2Lm9pZCwgJ3BnX3ZhcmlhYmxlJykg QVMgXCIlc1wiIiwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZXNjcmlwdGlvbiIpKTsKKwl9CisK KwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAorCQkJCQkJICJcbkZST00gcGdfY2F0YWxvZy5w Z192YXJpYWJsZSB2IgorCQkJCQkJICJcbiAgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfbmFt ZXNwYWNlIG4gT04gbi5vaWQgPSB2LnZhcm5hbWVzcGFjZSIpOworCisJYXBwZW5kUFFFeHBCdWZm ZXJTdHIoJmJ1ZiwgIlxuV0hFUkUgdHJ1ZVxuIik7CisJaWYgKCFwYXR0ZXJuKQorCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cigmYnVmLCAiICAgICAgQU5EIG4ubnNwbmFtZSA8PiAncGdfY2F0YWxvZydc biIKKwkJCQkJCQkgIiAgICAgIEFORCBuLm5zcG5hbWUgPD4gJ2luZm9ybWF0aW9uX3NjaGVtYSdc biIpOworCisJaWYgKCF2YWxpZGF0ZVNRTE5hbWVQYXR0ZXJuKCZidWYsIHBhdHRlcm4sIHRydWUs IGZhbHNlLAorCQkJCQkJCQkibi5uc3BuYW1lIiwgInYudmFybmFtZSIsIE5VTEwsCisJCQkJCQkJ CSJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlX2lzX3Zpc2libGUodi5vaWQpIiwKKwkJCQkJCQkJTlVM TCwgMykpCisJCXJldHVybiBmYWxzZTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJP UkRFUiBCWSAxLDI7Iik7CisKKwlyZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7CisJdGVybVBRRXhw QnVmZmVyKCZidWYpOworCWlmICghcmVzKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKgorCSAqIE1v c3QgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBhcmUgY29udGVudCB0byBwcmludCBhbiBlbXB0eSB0 YWJsZSB3aGVuCisJICogdGhlcmUgYXJlIG5vIG1hdGNoaW5nIG9iamVjdHMuICBXZSBpbnRlbnRp b25hbGx5IGRldmlhdGUgZnJvbSB0aGF0CisJICogaGVyZSwgYnV0IG9ubHkgaW4gIXF1aWV0IG1v ZGUsIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMuCisJICovCisJaWYgKFBRbnR1cGxlcyhyZXMpID09 IDAgJiYgIXBzZXQucXVpZXQpCisJeworCQlpZiAocGF0dGVybikKKwkJCXBnX2xvZ19lcnJvcigi RGlkIG5vdCBmaW5kIGFueSBzZXNzaW9uIHZhcmlhYmxlIG5hbWVkIFwiJXNcIi4iLAorCQkJCQkJ IHBhdHRlcm4pOworCQllbHNlCisJCQlwZ19sb2dfZXJyb3IoIkRpZCBub3QgZmluZCBhbnkgc2Vz c2lvbiB2YXJpYWJsZXMuIik7CisJfQorCWVsc2UKKwl7CisJCW15b3B0Lm51bGxQcmludCA9IE5V TEw7CisJCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiB2YXJpYWJsZXMiKTsKKwkJbXlvcHQudHJh bnNsYXRlX2hlYWRlciA9IHRydWU7CisJCW15b3B0LnRyYW5zbGF0ZV9jb2x1bW5zID0gdHJhbnNs YXRlX2NvbHVtbnM7CisJCW15b3B0Lm5fdHJhbnNsYXRlX2NvbHVtbnMgPSBsZW5ndGhvZih0cmFu c2xhdGVfY29sdW1ucyk7CisKKwkJcHJpbnRRdWVyeShyZXMsICZteW9wdCwgcHNldC5xdWVyeUZv dXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCX0KKworCVBRY2xlYXIocmVzKTsKKwlyZXR1cm4g dHJ1ZTsKK30KIAogLyoKICAqIFxkRnAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmli ZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKaW5kZXggMThlY2FhNjA5NDkuLjU1Y2VkNGFh YjdiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaAorKysgYi9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuaApAQCAtMTQ5LDQgKzE0OSw3IEBAIGV4dGVybiBib29sIGxpc3RPcEZhbWls eUZ1bmN0aW9ucyhjb25zdCBjaGFyICphY2Nlc3NfbWV0aG9kX3BhdHRlcm4sCiAvKiBcZGwgb3Ig XGxvX2xpc3QgKi8KIGV4dGVybiBib29sIGxpc3RMYXJnZU9iamVjdHMoYm9vbCB2ZXJib3NlKTsK IAorLyogXGRWICovCitleHRlcm4gYm9vbCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRl cm4sIGJvb2wgdmFyYm9zZSk7CisKICNlbmRpZgkJCQkJCQkvKiBERVNDUklCRV9IICovCmRpZmYg LS1naXQgYS9zcmMvYmluL3BzcWwvaGVscC5jIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwppbmRleCBl ZDAwYzM2Njk1ZS4uYWE5MWE3Y2UxMGYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9oZWxwLmMK KysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMjY2LDYgKzI2Niw3IEBAIHNsYXNoVXNhZ2Uo dW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCUhFTFAwKCIgIFxcZFRbU3grXSBbUEFUVEVSTl0g ICAgIGxpc3QgZGF0YSB0eXBlc1xuIik7CiAJSEVMUDAoIiAgXFxkdVtTeCtdIFtQQVRURVJOXSAg ICAgbGlzdCByb2xlc1xuIik7CiAJSEVMUDAoIiAgXFxkdltTeCtdIFtQQVRURVJOXSAgICAgbGlz dCB2aWV3c1xuIik7CisJSEVMUDAoIiAgXFxkVlt4K10gIFtQQVRURVJOXSAgICAgbGlzdCBzZXNz aW9uIHZhcmlhYmxlc1xuIik7CiAJSEVMUDAoIiAgXFxkeFt4K10gIFtQQVRURVJOXSAgICAgbGlz dCBleHRlbnNpb25zXG4iKTsKIAlIRUxQMCgiICBcXGRYW3hdICAgW1BBVFRFUk5dICAgICBsaXN0 IGV4dGVuZGVkIHN0YXRpc3RpY3NcbiIpOwogCUhFTFAwKCIgIFxcZHlbeCtdICBbUEFUVEVSTl0g ICAgIGxpc3QgZXZlbnQgdHJpZ2dlcnNcbiIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDM2 ZWE2YTRkNTU3Li4xOGU3OTVjM2FhZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtOTg4LDYg Kzk4OCwxMyBAQCBzdGF0aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9yX3RyaWdnZXJfb2Zf dGFibGUgPSB7CiAJLnJlZm5hbWVzcGFjZSA9ICJjMS5yZWxuYW1lc3BhY2UiLAogfTsKIAorc3Rh dGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyA9IHsKKwku bWluX3NlcnZlcl92ZXJzaW9uID0gMTgwMDAwLAorCS5jYXRuYW1lID0gInBnX2NhdGFsb2cucGdf dmFyaWFibGUgdiIsCisJLnZpc2NvbmRpdGlvbiA9ICJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlX2lz X3Zpc2libGUodi5vaWQpIiwKKwkubmFtZXNwYWNlID0gInYudmFybmFtZXNwYWNlIiwKKwkucmVz dWx0ID0gInYudmFybmFtZSIsCit9OwogCiAvKgogICogUXVlcmllcyB0byBnZXQgbGlzdHMgb2Yg bmFtZXMgb2YgdmFyaW91cyBraW5kcyBvZiB0aGluZ3MsIHBvc3NpYmx5CkBAIC0xMzUyLDYgKzEz NTksNyBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9 IHsKIAkJCQkJCQkJCQkJCQkJCQkJCQkgKiBUQUJMRSAuLi4gKi8KIAl7IlVTRVIiLCBRdWVyeV9m b3JfbGlzdF9vZl9yb2xlcywgTlVMTCwgTlVMTCwgS2V5d29yZHNfZm9yX3VzZXJfdGhpbmd9LAog CXsiVVNFUiBNQVBQSU5HIEZPUiIsIE5VTEwsIE5VTEwsIE5VTEx9LAorCXsiVkFSSUFCTEUiLCBO VUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzfSwKIAl7IlZJRVciLCBOVUxM LCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2Zfdmlld3N9LAogCXtOVUxMfQkJCQkJCS8qIGVuZCBv ZiBsaXN0ICovCiB9OwpAQCAtMTkxOCw3ICsxOTI2LDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0 IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJIlxcZEYiLCAiXFxkRmQiLCAiXFxk RnAiLCAiXFxkRnQiLCAiXFxkZyIsICJcXGRpIiwgIlxcZGwiLCAiXFxkTCIsCiAJCSJcXGRtIiwg IlxcZG4iLCAiXFxkbyIsICJcXGRPIiwgIlxcZHAiLCAiXFxkUCIsICJcXGRQaSIsICJcXGRQdCIs CiAJCSJcXGRyZHMiLCAiXFxkcmciLCAiXFxkUnMiLCAiXFxkUnAiLCAiXFxkcyIsCi0JCSJcXGR0 IiwgIlxcZFQiLCAiXFxkdiIsICJcXGR1IiwgIlxcZHgiLCAiXFxkWCIsICJcXGR5IiwKKwkJIlxc ZHQiLCAiXFxkVCIsICJcXGR2IiwgIlxcZHUiLCAiXFxkeCIsICJcXGRYIiwgIlxcZHkiLCAiXFxk ViIsCiAJCSJcXGVjaG8iLCAiXFxlZGl0IiwgIlxcZWYiLCAiXFxlbGlmIiwgIlxcZWxzZSIsICJc XGVuY29kaW5nIiwKIAkJIlxcZW5kaWYiLCAiXFxlbmRwaXBlbGluZSIsICJcXGVycnZlcmJvc2Ui LCAiXFxldiIsCiAJCSJcXGYiLCAiXFxmbHVzaCIsICJcXGZsdXNocmVxdWVzdCIsCkBAIC0yNjMy LDYgKzI2NDAsOSBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJ CQkJCQkgICJBTEwiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJTWVNURU0iLCAiU0VU IiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJUTyIpOworCS8qIEFMVEVSIFZBUklBQkxF IDxuYW1lPiAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlZBUklBQkxFIiwgTWF0Y2hB bnkpKQorCQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVN QSIpOwogCS8qIEFMVEVSIFZJRVcgPG5hbWU+ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIi LCAiVklFVyIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQUxURVIgQ09MVU1OIiwgIk9X TkVSIFRPIiwgIlJFTkFNRSIsICJSRVNFVCIsICJTRVQiKTsKQEAgLTMyMzgsNyArMzI0OSw3IEBA IG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkgICJST1VUSU5FIiwg IlJVTEUiLCAiU0NIRU1BIiwgIlNFUVVFTkNFIiwgIlNFUlZFUiIsCiAJCQkJCSAgIlNUQVRJU1RJ Q1MiLCAiU1VCU0NSSVBUSU9OIiwgIlRBQkxFIiwKIAkJCQkJICAiVEFCTEVTUEFDRSIsICJURVhU IFNFQVJDSCIsICJUUkFOU0ZPUk0gRk9SIiwKLQkJCQkJICAiVFJJR0dFUiIsICJUWVBFIiwgIlZJ RVciKTsKKwkJCQkJICAiVFJJR0dFUiIsICJUWVBFIiwgIlZBUklBQkxFIiwgIlZJRVciKTsKIAll bHNlIGlmIChNYXRjaGVzKCJDT01NRU5UIiwgIk9OIiwgIkFDQ0VTUyIsICJNRVRIT0QiKSkKIAkJ Q09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9hY2Nlc3NfbWV0aG9kcyk7CiAJ ZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIsICJPTiIsICJDT05TVFJBSU5UIikpCkBAIC00MDQ0 LDYgKzQwNTUsMTMgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCWVs c2UgaWYgKFRhaWxNYXRjaGVzKCI9IiwgTWF0Y2hBbnlFeGNlcHQoIiopIikpKQogCQkJQ09NUExF VEVfV0lUSCgiLCIsICIpIik7CiAJfQorLyogQ1JFQVRFIFZBUklBQkxFIC0tLSBpcyBhbGxvd2Vk IGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KKwkvKiBDb21wbGV0 ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hl cygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJBUyIp OworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKKwkJ LyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTIHR5cGVzICovCisJCUNP TVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2RhdGF0eXBlcyk7CiAK IC8qIENSRUFURSBWSUVXIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1 c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBDUkVBVEUgWyBPUiBSRVBMQUNFIF0gVklF VyA8bmFtZT4gd2l0aCBBUyBvciBXSVRIICovCkBAIC00MzIxLDYgKzQzMzksMTIgQEAgbWF0Y2hf cHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoTWF0Y2hlcygiRFJPUCIs ICJUUkFOU0ZPUk0iLCAiRk9SIiwgTWF0Y2hBbnksICJMQU5HVUFHRSIsIE1hdGNoQW55KSkKIAkJ Q09NUExFVEVfV0lUSCgiQ0FTQ0FERSIsICJSRVNUUklDVCIpOwogCisJLyogRFJPUCBWQVJJQUJM RSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiVkFSSUFCTEUiKSkKKwkJQ09NUExFVEVf V0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKKwllbHNlIGlm IChNYXRjaGVzKCJEUk9QIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRI KCJDQVNDQURFIiwgIlJFU1RSSUNUIik7CisKIC8qIEVYRUNVVEUgKi8KIAllbHNlIGlmIChNYXRj aGVzKCJFWEVDVVRFIikpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zf cHJlcGFyZWRfc3RhdGVtZW50cyk7CkBAIC00NTIyLDcgKzQ1NDYsOSBAQCBtYXRjaF9wcmV2aW91 c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJICogb2JqZWN0cyBzdXBwb3J0ZWQuCiAJCSAqLwog CQlpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIkRFRkFVTFQiLCAiUFJJVklMRUdFUyIpKQotCQkJ Q09NUExFVEVfV0lUSCgiVEFCTEVTIiwgIlNFUVVFTkNFUyIsICJGVU5DVElPTlMiLCAiUFJPQ0VE VVJFUyIsICJST1VUSU5FUyIsICJUWVBFUyIsICJTQ0hFTUFTIiwgIkxBUkdFIE9CSkVDVFMiKTsK KwkJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIsICJTRVFVRU5DRVMiLCAiRlVOQ1RJT05TIiwgIlBS T0NFRFVSRVMiLAorCQkJCQkJICAiUk9VVElORVMiLCAiVFlQRVMiLCAiU0NIRU1BUyIsICJMQVJH RSBPQkpFQ1RTIiwKKwkJCQkJCSAgIlZBUklBQkxFUyIpOwogCQllbHNlCiAJCQlDT01QTEVURV9X SVRIX1NDSEVNQV9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9saXN0X29mX2dyYW50YWJsZXMsCiAJCQkJ CQkJCQkJCSJBTEwgRlVOQ1RJT05TIElOIFNDSEVNQSIsCkBAIC00NTMwLDYgKzQ1NTYsNyBAQCBt YXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJCQkJCQkJIkFMTCBST1VU SU5FUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEiLAog CQkJCQkJCQkJCQkiQUxMIFRBQkxFUyBJTiBTQ0hFTUEiLAorCQkJCQkJCQkJCQkiQUxMIFZBUklB QkxFUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiREFUQUJBU0UiLAogCQkJCQkJCQkJCQkiRE9N QUlOIiwKIAkJCQkJCQkJCQkJIkZPUkVJR04gREFUQSBXUkFQUEVSIiwKQEAgLTQ1NDQsNyArNDU3 MSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkJCQkJCQki U0VRVUVOQ0UiLAogCQkJCQkJCQkJCQkiVEFCTEUiLAogCQkJCQkJCQkJCQkiVEFCTEVTUEFDRSIs Ci0JCQkJCQkJCQkJCSJUWVBFIik7CisJCQkJCQkJCQkJCSJUWVBFIiwKKwkJCQkJCQkJCQkJIlZB UklBQkxFIik7CiAJfQogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVHxSRVZPS0UiLCBNYXRj aEFueSwgIk9OIiwgIkFMTCIpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlJFVk9LRSIsICJHUkFOVCIs ICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIsICJBTEwiKSkKQEAgLTQ1NTIsNyArNDU4 MCw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkgICJQUk9D RURVUkVTIElOIFNDSEVNQSIsCiAJCQkJCSAgIlJPVVRJTkVTIElOIFNDSEVNQSIsCiAJCQkJCSAg IlNFUVVFTkNFUyBJTiBTQ0hFTUEiLAotCQkJCQkgICJUQUJMRVMgSU4gU0NIRU1BIik7CisJCQkJ CSAgIlRBQkxFUyBJTiBTQ0hFTUEiLAorCQkJCQkgICJWQVJJQUJMRVMgSU4gU0NIRU1BIik7CiAK IAkvKgogCSAqIENvbXBsZXRlICJHUkFOVC9SRVZPS0UgKiBPTiBEQVRBQkFTRS9ET01BSU4vLi4u IiB3aXRoIGEgbGlzdCBvZgpAQCAtNDU5NCw2ICs0NjIzLDggQEAgbWF0Y2hfcHJldmlvdXNfd29y ZHMoaW50IHBhdHRlcm5faWQsCiAJCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0 X29mX3RhYmxlc3BhY2VzKTsKIAkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlRZUEUiKSkKIAkJCUNP TVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2RhdGF0eXBlcyk7CisJ CWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIpKQorCQkJQ09NUExFVEVfV0lUSF9TQ0hF TUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKIAkJZWxzZSBpZiAoVGFpbE1h dGNoZXMoIkdSQU5UIiwgTWF0Y2hBbnksIE1hdGNoQW55LCBNYXRjaEFueSkpCiAJCQlDT01QTEVU RV9XSVRIKCJUTyIpOwogCQllbHNlCkBAIC00OTIwLDcgKzQ5NTEsNyBAQCBtYXRjaF9wcmV2aW91 c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAogLyogUFJFUEFSRSB4eCBBUyAqLwogCWVsc2UgaWYg KE1hdGNoZXMoIlBSRVBBUkUiLCBNYXRjaEFueSwgIkFTIikpCi0JCUNPTVBMRVRFX1dJVEgoIlNF TEVDVCIsICJVUERBVEUiLCAiSU5TRVJUIElOVE8iLCAiREVMRVRFIEZST00iKTsKKwkJQ09NUExF VEVfV0lUSCgiU0VMRUNUIiwgIlVQREFURSIsICJJTlNFUlQgSU5UTyIsICJERUxFVEUgRlJPTSIs ICJMRVQiKTsKIAogLyoKICAqIFBSRVBBUkUgVFJBTlNBQ1RJT04gaXMgbWlzc2luZyBvbiBwdXJw b3NlLiBJdCdzIGludGVuZGVkIGZvciB0cmFuc2FjdGlvbgpAQCAtNTQwOSw2ICs1NDQwLDggQEAg bWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEhfUVVF UlkoUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxc ZHYqIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3Zp ZXdzKTsKKwllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGRWKiIpKQorCQlDT01QTEVURV9XSVRI X1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOwogCWVsc2UgaWYgKFRh aWxNYXRjaGVzQ1MoIlxcZHgqIikpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xp c3Rfb2ZfZXh0ZW5zaW9ucyk7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkWCoiKSkKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDFlYTNmNTE4NDFjLi44ZGU0ZDljZmE3NiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0CkBAIC02NzE3LDYgKzY3MTcsOSBAQAogICBwcm9uYW1lID0+ICdw Z19jb2xsYXRpb25faXNfdmlzaWJsZScsIHByb2Nvc3QgPT4gJzEwJywgcHJvdm9sYXRpbGUgPT4g J3MnLAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCiAgIHBy b3NyYyA9PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnIH0sCit7IG9pZCA9PiAnOTk5OScsIGRl c2NyID0+ICdpcyBzZXNzaW9uIHZhcmlhYmxlIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/JywKKyAg cHJvbmFtZSA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJsZScsIHByb2Nvc3QgPT4gJzEwJywgcHJv dm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlwZXMgPT4g J29pZCcsIHByb3NyYyA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJsZScgfSwKIAogeyBvaWQgPT4g JzI4NTQnLCBkZXNjciA9PiAnZ2V0IE9JRCBvZiBjdXJyZW50IHNlc3Npb25cJ3MgdGVtcCBzY2hl bWEsIGlmIGFueScsCiAgIHByb25hbWUgPT4gJ3BnX215X3RlbXBfc2NoZW1hJywgcHJvdm9sYXRp bGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91 dAppbmRleCBmYTg5ODRmZmUwZC4uMmVkNzkwMzU4OWUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w c3FsLm91dApAQCAtNjAyNSw2ICs2MDI1LDMwIEBAIENPTU1JVDsKICMgZmluYWwgT05fRVJST1Jf Uk9MTEJBQ0s6IG9mZgogRFJPUCBUQUJMRSBibGE7CiBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7 CistLSBzZXNzaW9uIHZhcmlhYmxlIHRlc3QKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI7CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsKK1xkVisgdmFyMQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVt YSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIg ICAgICAgICAgfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBj aGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAg ICAgICAgICAgICAgICAgICB8IAorKDEgcm93KQorCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUg dmFyMSBUTyBQVUJMSUM7CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgZGVzY3Jp cHRpb24nOworXGRWKyB2YXIxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFt ZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAg ICB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAg RGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVibGljIHwg dmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9v d25lciB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8 IHNvbWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9v d25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUg dmFyMTsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9v d25lcjsKIC0tIGNoZWNrIGRlc2NyaWJpbmcgaW52YWxpZCBtdWx0aXBhcnQgbmFtZXMKIFxkQSBy ZWdyZXNzaW9uLmhlYXAKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQg bmFtZXMpOiByZWdyZXNzaW9uLmhlYXAKQEAgLTYyNDYsNiArNjI3MCwxMiBAQCBjcm9zcy1kYXRh YmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IG5vbmVzdWNoLnB1YmxpYy5mdW5j X2RlcHNfc3RhdAogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1l cyk6IHJlZ3Jlc3Npb24ubXlldnQKIFxkeSBub25lc3VjaC5teWV2dAogaW1wcm9wZXIgcXVhbGlm aWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6IG5vbmVzdWNoLm15ZXZ0CitcZFYgaG9z dC5yZWdyZXNzaW9uLnB1YmxpYy52YXIKK2ltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFu eSBkb3R0ZWQgbmFtZXMpOiBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgorXGRWIHJlZ3Jlc3Np b258bXlkYi5wdWJsaWMudmFyCitjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1w bGVtZW50ZWQ6IHJlZ3Jlc3Npb258bXlkYi5wdWJsaWMudmFyCitcZFYgbm9uZXN1Y2gucHVibGlj LnZhcgorY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiBub25l c3VjaC5wdWJsaWMudmFyCiAtLSBjaGVjayB0aGF0IGRvdHMgd2l0aGluIHF1b3RlZCBuYW1lIHNl Z21lbnRzIGFyZSBub3QgY291bnRlZAogXGRBICJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCiBMaXN0 IG9mIGFjY2VzcyBtZXRob2RzCkBAIC02NDgwLDYgKzY1MTAsMTIgQEAgTGlzdCBvZiBzY2hlbWFz CiAtLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLQogKDAg cm93cykKIAorXGRWICJuby5zdWNoLnZhcmlhYmxlIgorICAgICAgICAgICAgTGlzdCBvZiB2YXJp YWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAorLS0tLS0t LS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisoMCByb3dzKQorCiAtLSBhZ2Fp biwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkQSAibm8uc3VjaC5z Y2hlbWEiLiJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAo dG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5hY2Nlc3Mu bWV0aG9kIgpAQCAtNjY0OSw2ICs2Njg1LDEyIEBAIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0 b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhCiAK IFxkeSAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBpbXByb3BlciBx dWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC5ldmVudC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFy aWFibGUiCisgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBU eXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0KKygwIHJvd3MpCisKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50IGRhdGFi YXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0IHJlZ3Jlc3Npb24uIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKICAgICAgICAgTGlzdCBvZiB0 YWJsZXMKQEAgLTY3ODIsNiArNjgyNCwxMiBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRl cwogLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LSstLS0tLQogKDAgcm93cykKIAorXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRl ZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCAibm8uc3Vj aC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKIGNy b3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0 YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCkBAIC02ODI5 LDYgKzY4NzcsOCBAQCBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50 ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbQogY3Jvc3MtZGF0YWJhc2UgcmVm ZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2gu c2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBcZFggIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKIGNyb3NzLWRhdGFiYXNl IHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKK1xkViAibm8uc3VjaC5k YXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKK2Nyb3NzLWRhdGFi YXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAtLSBjaGVjayBcZHJnIGFuZCBcZHUK IENSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CiBDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3Jv bGUxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9wc3FsLnNxbAppbmRleCBmMDY0ZTRmNTQ1Ni4uOGY2MTA4ZTQ0ZGUgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3BzcWwuc3FsCkBAIC0xNjQ1LDYgKzE2NDUsMTkgQEAgQ09NTUlUOwogRFJPUCBU QUJMRSBibGE7CiBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiAKKy0tIHNlc3Npb24gdmFyaWFi bGUgdGVzdAorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFy IENPTExBVEUgIkMiOworXGRWKyB2YXIxCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBU TyBQVUJMSUM7CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgZGVzY3JpcHRpb24n OworXGRWKyB2YXIxCitEUk9QIFZBUklBQkxFIHZhcjE7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7 CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKKwogLS0gY2hlY2sgZGVzY3JpYmlu ZyBpbnZhbGlkIG11bHRpcGFydCBuYW1lcwogXGRBIHJlZ3Jlc3Npb24uaGVhcAogXGRBIG5vbmVz dWNoLmhlYXAKQEAgLTE3NTYsNiArMTc2OSw5IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsK IFxkWCBub25lc3VjaC5wdWJsaWMuZnVuY19kZXBzX3N0YXQKIFxkeSByZWdyZXNzaW9uLm15ZXZ0 CiBcZHkgbm9uZXN1Y2gubXlldnQKK1xkViBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgorXGRW IHJlZ3Jlc3Npb258bXlkYi5wdWJsaWMudmFyCitcZFYgbm9uZXN1Y2gucHVibGljLnZhcgogCiAt LSBjaGVjayB0aGF0IGRvdHMgd2l0aGluIHF1b3RlZCBuYW1lIHNlZ21lbnRzIGFyZSBub3QgY291 bnRlZAogXGRBICJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCkBAIC0xNzk3LDYgKzE4MTMsOCBAQCBE Uk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZHggIm5vLnN1Y2guaW5zdGFsbGVkLmV4dGVuc2lv biIKIFxkWCAibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgogXGR5ICJuby5zdWNoLmV2ZW50 LnRyaWdnZXIiCitcZFYgIm5vLnN1Y2gudmFyaWFibGUiCisKIAogLS0gYWdhaW4sIGJ1dCB3aXRo IGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZEEgIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC5hY2Nlc3MubWV0aG9kIgpAQCAtMTgzNyw2ICsxODU1LDcgQEAgRFJPUCBGVU5DVElPTiBw c3FsX2Vycm9yOwogXGR4ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGFsbGVkLmV4dGVu c2lvbiIKIFxkWCAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3Mi CiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgorXGRWICJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJy ZW50IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0IHJlZ3Jl c3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKQEAgLTE4NjEs NiArMTg4MCw3IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkUCByZWdyZXNzaW9uLiJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gucGFydGl0aW9uZWQucmVsYXRpb24iCiBcZFQgcmVncmVz c2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCByZWdyZXNzaW9u LiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKK1xkViByZWdy ZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAKIC0tIGFnYWluLCBi dXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMu CiBcZHQgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUu cmVsYXRpb24iCkBAIC0xODg2LDYgKzE5MDYsNyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7 CiBcZFAgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gucGFydGl0 aW9uZWQucmVsYXRpb24iCiBcZFQgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIu Im5vLnN1Y2guZGF0YS50eXBlIgogXGRYICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYgIm5vLnN1Y2guZGF0YWJhc2Ui LiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAKIC0tIGNoZWNrIFxkcmcgYW5k IFxkdQogQ1JFQVRFIFJPTEUgcmVncmVzc19kdV9yb2xlMDsKLS0gCjIuNTEuMQoK --0000000000001c96f9064262bb7f Content-Type: text/x-patch; charset="US-ASCII"; name="v20251030-0003-GRANT-REVOKE-variable.patch" Content-Disposition: attachment; filename="v20251030-0003-GRANT-REVOKE-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhdn0ddc12 RnJvbSBlZGM3ZmJjNjgzNGJlZjQ3M2JlMTkwOWYzMTg5MGY0MzAzZDAzZGI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDUgQXVnIDIwMjUgMDY6Mzc6MjggKzAyMDAKU3ViamVjdDogW1BB VENIIDAzLzE1XSBHUkFOVCwgUkVWT0tFIHZhcmlhYmxlCgpBY2Nlc3MgdG8gc2Vzc2lvbiB2YXJp YWJsZXMgY2FuIGJlIGNvbnRyb2xsZWQgYnkgU0VMRUNUIG9yIFVQREFURSByaWdodHMuIEJvdGgg cmlnaHRzIGFyZQppbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggdG9vLiBEZWZhdWx0IEFDTCBhcmUg c3VwcG9ydGVkLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAg ICAgICB8ICAgMyArLQogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDE5ICstCiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWluZm8uc2dtbCAgICAgICAgICAg ICAgfCAgMjMgKy0KIC4uLi9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbCAg ICB8ICAyOSArLQogZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sICAgICAgICAgICAgICAgICAg IHwgIDIwICstCiBkb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21sICAgICAgICAgICAgICAgICAg fCAgIDggKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyAgICAgICAgICAgICAgICAgIHwg IDc0ICsrKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jICAgICAgICAgICB8 ICAyMiArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwg IDExICstCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAg MjEgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyAgICAgICAgICAgICAgICAgICB8IDIy MSArKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaCAgICAg ICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAg ICAgfCAgMjAgKysKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAg ICB8ICAgMSArCiBzcmMvaW5jbHVkZS91dGlscy9hY2wuaCAgICAgICAgICAgICAgICAgICAgICAg fCAgIDEgKwogLi4uL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2FjbC5vdXQgICAgICAgIHwg MzM1ICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVs ZSAgICAgICAgICAgIHwgICAyICstCiAuLi4vcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNf YWNsLnNxbCAgICAgfCAxODIgKysrKysrKysrKwogMTggZmlsZXMgY2hhbmdlZCwgOTY3IGluc2Vy dGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfYWNsLm91dAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2FjbC5zcWwKCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCmluZGV4IDdjNzlkZGM5YzA5Li43YTZkMjVlMjkyMCAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAg LTMzNjMsNyArMzM2Myw4IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRp b24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICAgPGxpdGVy YWw+ZjwvbGl0ZXJhbD4gPSBmdW5jdGlvbiwKICAgICAgICA8bGl0ZXJhbD5UPC9saXRlcmFsPiA9 IHR5cGUsCiAgICAgICAgPGxpdGVyYWw+bjwvbGl0ZXJhbD4gPSBzY2hlbWEsCi0gICAgICAgPGxp dGVyYWw+TDwvbGl0ZXJhbD4gPSBsYXJnZSBvYmplY3QKKyAgICAgICA8bGl0ZXJhbD5MPC9saXRl cmFsPiA9IGxhcmdlIG9iamVjdCwKKyAgICAgICA8bGl0ZXJhbD5WPC9saXRlcmFsPiA9IHNlc3Np b24gdmFyaWFibGUKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIApkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4 IGZhNzExYTA5YmM0Li40MjBhNGQ5ZmYxMSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtMjAyNSw2ICsyMDI1LDcgQEAgUkVW T0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAgICAgICBGb3Igc2VxdWVuY2VzLCB0 aGlzIHByaXZpbGVnZSBhbHNvIGFsbG93cyB1c2Ugb2YgdGhlCiAgICAgICAgPGZ1bmN0aW9uPmN1 cnJ2YWw8L2Z1bmN0aW9uPiBmdW5jdGlvbi4KICAgICAgICBGb3IgbGFyZ2Ugb2JqZWN0cywgdGhp cyBwcml2aWxlZ2UgYWxsb3dzIHRoZSBvYmplY3QgdG8gYmUgcmVhZC4KKyAgICAgICBGb3Igc2Vz c2lvbiB2YXJpYWJsZXMsIHRoaXMgIHByaXZpbGVnZSBhbGxvd3MgdGhlIG9iamVjdCB0byBiZSBy ZWFkLgogICAgICAgPC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5 PgpAQCAtMjA2MCw2ICsyMDYxLDggQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJ QzsKICAgICAgICA8ZnVuY3Rpb24+c2V0dmFsPC9mdW5jdGlvbj4gZnVuY3Rpb25zLgogICAgICAg IEZvciBsYXJnZSBvYmplY3RzLCB0aGlzIHByaXZpbGVnZSBhbGxvd3Mgd3JpdGluZyBvciB0cnVu Y2F0aW5nIHRoZQogICAgICAgIG9iamVjdC4KKyAgICAgICBGb3Igc2Vzc2lvbiB2YXJpYWJsZXMs IHRoaXMgcHJpdmlsZWdlIGFsbG93cyB0byBzZXQgYSB2YWx1ZSB0byB0aGUKKyAgICAgICBvYmpl Y3QuCiAgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+ CkBAIC0yMzA0LDcgKzIzMDcsOCBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVCTElD OwogICAgICAgIDxsaXRlcmFsPkxBUkdFIE9CSkVDVDwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVy YWw+U0VRVUVOQ0U8L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPlRBQkxFPC9saXRlcmFsPiAo YW5kIHRhYmxlLWxpa2Ugb2JqZWN0cyksCi0gICAgICAgdGFibGUgY29sdW1uCisgICAgICAgdGFi bGUgY29sdW1uLAorICAgICAgIDxsaXRlcmFsPlNFU1NJT04gVkFSSUFCTEU8L2xpdGVyYWw+CiAg ICAgICA8L2VudHJ5PgogICAgICA8L3Jvdz4KICAgICAgPHJvdz4KQEAgLTIzMTksNyArMjMyMyw4 IEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJMSUM7CiAgICAgICAgPGxpdGVyYWw+ TEFSR0UgT0JKRUNUPC9saXRlcmFsPiwKICAgICAgICA8bGl0ZXJhbD5TRVFVRU5DRTwvbGl0ZXJh bD4sCiAgICAgICAgPGxpdGVyYWw+VEFCTEU8L2xpdGVyYWw+LAotICAgICAgIHRhYmxlIGNvbHVt bgorICAgICAgIHRhYmxlIGNvbHVtbiwKKyAgICAgICA8bGl0ZXJhbD5TRVNTSU9OIFZBUklBQkxF PC9saXRlcmFsPgogICAgICAgPC9lbnRyeT4KICAgICAgPC9yb3c+CiAgICAgIDxyb3c+CkBAIC0y NTA2LDYgKzI1MTEsMTIgQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5VPC9saXRlcmFsPjwvZW50cnk+CiAgICAgICA8ZW50cnk+PGxp dGVyYWw+XGRUKzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeT48bGl0ZXJhbD5TRVNTSU9OIFZBUklBQkxFPC9saXRlcmFsPjwvZW50cnk+Cisg ICAgICA8ZW50cnk+PGxpdGVyYWw+cnc8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48 bGl0ZXJhbD5ub25lPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+XGRW KzwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8L3Rib2R5PgogICAgPC90Z3Jv dXA+CiAgIDwvdGFibGU+CkBAIC01Mzc1LDYgKzUzODYsMTAgQEAgRVhQTEFJTiBTRUxFQ1QgY291 bnQoKikgRlJPTSBtZWFzdXJlbWVudCBXSEVSRSBsb2dkYXRlICZndDs9IERBVEUgJzIwMDgtMDEt MDEnOwogCiAgICA8cGFyYT4KICAgICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgZGF0YWJhc2Ugb2Jq ZWN0cyB0aGF0IGNhbiBob2xkIGEgdmFsdWUuCisgICAgU2Vzc2lvbiB2YXJpYWJsZXMsIGxpa2Ug cmVsYXRpb25zLCBleGlzdCB3aXRoaW4gYSBzY2hlbWEgYW5kIHRoZWlyIGFjY2VzcworICAgIGlz IGNvbnRyb2xsZWQgdmlhIDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+UkVW T0tFPC9jb21tYW5kPgorICAgIGNvbW1hbmRzLiAgQSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSBj cmVhdGVkIGJ5IHRoZSA8Y29tbWFuZD5DUkVBVEUKKyAgICBWQVJJQUJMRTwvY29tbWFuZD4gY29t bWFuZC4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv ZnVuYy9mdW5jLWluZm8uc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtaW5mby5zZ21sCmlu ZGV4IGMzOTM4MzJkOTRjLi5hNTdmNzY2NTA1NCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1 bmMvZnVuYy1pbmZvLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1pbmZvLnNnbWwK QEAgLTc0MCw2ICs3NDAsMjUgQEAgU0VMRUNUIGhhc19mdW5jdGlvbl9wcml2aWxlZ2UoJ2pvZXVz ZXInLCAnbXlmdW5jKGludCwgdGV4dCknLCAnZXhlY3V0ZScpOwogICAgICAgIDwvcGFyYT48L2Vu dHJ5PgogICAgICAgPC9yb3c+CiAKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1 bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGlu ZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5Pmhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZTwvcHJpbWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+CisgICAgICAgIDxmdW5jdGlvbj5oYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2U8L2Z1bmN0aW9uPiAoCisgICAgICAgICAgPG9wdGlv bmFsPiA8cGFyYW1ldGVyPnVzZXI8L3BhcmFtZXRlcj4gPHR5cGU+bmFtZTwvdHlwZT4gb3IgPHR5 cGU+b2lkPC90eXBlPiwgPC9vcHRpb25hbD4KKyAgICAgICAgICA8cGFyYW1ldGVyPnNlc3Npb25f dmFyaWFibGU8L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4gb3IgPHR5cGU+b2lkPC90eXBl PiwKKyAgICAgICAgICA8cGFyYW1ldGVyPnByaXZpbGVnZTwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0 PC90eXBlPiApCisgICAgICAgIDxyZXR1cm52YWx1ZT5ib29sZWFuPC9yZXR1cm52YWx1ZT4KKyAg ICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIERvZXMgdXNlciBoYXZlIHByaXZp bGVnZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZT8KKyAgICAgICAgQWxsb3dhYmxlIHByaXZpbGVnZSB0 eXBlcyBhcmUKKyAgICAgICAgPGxpdGVyYWw+U0VMRUNUPC9saXRlcmFsPiwgYW5kCisgICAgICAg IDxsaXRlcmFsPlVQREFURTwvbGl0ZXJhbD4uCisgICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg ICA8L3Jvdz4KKwogICAgICAgPHJvdz4KICAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgogICAgICAgICA8aW5kZXh0ZXJtPgpA QCAtMTA4OSw4ICsxMTA4LDggQEAgU0VMRUNUIGhhc19mdW5jdGlvbl9wcml2aWxlZ2UoJ2pvZXVz ZXInLCAnbXlmdW5jKGludCwgdGV4dCknLCAnZXhlY3V0ZScpOwogICAgICAgICAndCcgZm9yIDxs aXRlcmFsPlRBQkxFU1BBQ0U8L2xpdGVyYWw+LAogICAgICAgICAnRicgZm9yIDxsaXRlcmFsPkZP UkVJR04gREFUQSBXUkFQUEVSPC9saXRlcmFsPiwKICAgICAgICAgJ1MnIGZvciA8bGl0ZXJhbD5G T1JFSUdOIFNFUlZFUjwvbGl0ZXJhbD4sCi0gICAgICAgIG9yCi0gICAgICAgICdUJyBmb3IgPGxp dGVyYWw+VFlQRTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+RE9NQUlOPC9saXRlcmFsPi4KKyAgICAg ICAgJ1QnIGZvciA8bGl0ZXJhbD5UWVBFPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5ET01BSU48L2xp dGVyYWw+IG9yCisgICAgICAgICdWJyBmb3IgPGxpdGVyYWw+U0VTU0lPTiBWQVJJQUJMRTwvbGl0 ZXJhbD4uCiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KIApkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwKaW5kZXggNmFjZDBmMWRm OTEuLmJjNzM4MTcwNjFmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1 bHRfcHJpdmlsZWdlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9w cml2aWxlZ2VzLnNnbWwKQEAgLTU2LDYgKzU2LDExIEBAIEdSQU5UIHsgeyBTRUxFQ1QgfCBVUERB VEUgfQogICAgIE9OIExBUkdFIE9CSkVDVFMKICAgICBUTyB7IFsgR1JPVVAgXSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBb LCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJT04gXQogCitHUkFOVCB7IHsgU0VMRUNUIHwgVVBEQVRF IH0KKyAgICBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiBWQVJJQUJMRVMK KyAgICBUTyB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9u YW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJT04g XQorCiBSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KICAgICB7IHsgU0VMRUNUIHwgSU5TRVJU IHwgVVBEQVRFIHwgREVMRVRFIHwgVFJVTkNBVEUgfCBSRUZFUkVOQ0VTIHwgVFJJR0dFUiB8IE1B SU5UQUlOIH0KICAgICBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KQEAgLTk1LDYgKzEw MCwxNCBAQCBSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KICAgICBPTiBMQVJHRSBPQkpFQ1RT CiAgICAgRlJPTSB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9s ZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dCiAgICAgWyBDQVNDQURFIHwg UkVTVFJJQ1QgXQorCitSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KKyAgICB7IHsgU0VMRUNU IHwgVVBEQVRFIH0KKyAgICBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICB7IHsg U0VMRUNUIHwgVVBEQVRFIH0gWywgLi4uXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgT04g VkFSSUFCTEVTCisgICAgRlJPTSB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dCisgICAgWyBD QVNDQURFIHwgUkVTVFJJQ1QgXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCkBA IC0xMjksMTQgKzE0MiwxNCBAQCBSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KICAgPHBhcmE+ CiAgICBDdXJyZW50bHksCiAgICBvbmx5IHRoZSBwcml2aWxlZ2VzIGZvciBzY2hlbWFzLCB0YWJs ZXMgKGluY2x1ZGluZyB2aWV3cyBhbmQgZm9yZWlnbgotICAgdGFibGVzKSwgc2VxdWVuY2VzLCBm dW5jdGlvbnMsIHR5cGVzIChpbmNsdWRpbmcgZG9tYWlucyksIGFuZCBsYXJnZSBvYmplY3RzCi0g ICBjYW4gYmUgYWx0ZXJlZC4gIEZvciB0aGlzIGNvbW1hbmQsIGZ1bmN0aW9ucyBpbmNsdWRlIGFn Z3JlZ2F0ZXMgYW5kIHByb2NlZHVyZXMuCi0gICBUaGUgd29yZHMgPGxpdGVyYWw+RlVOQ1RJT05T PC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+Uk9VVElORVM8L2xpdGVyYWw+IGFyZQotICAgZXF1aXZh bGVudCBpbiB0aGlzIGNvbW1hbmQuICAoPGxpdGVyYWw+Uk9VVElORVM8L2xpdGVyYWw+IGlzIHBy ZWZlcnJlZAotICAgZ29pbmcgZm9yd2FyZCBhcyB0aGUgc3RhbmRhcmQgdGVybSBmb3IgZnVuY3Rp b25zIGFuZCBwcm9jZWR1cmVzIHRha2VuCi0gICB0b2dldGhlci4gIEluIGVhcmxpZXIgUG9zdGdy ZVNRTCByZWxlYXNlcywgb25seSB0aGUKLSAgIHdvcmQgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRl cmFsPiB3YXMgYWxsb3dlZC4gIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBzZXQKLSAgIGRlZmF1bHQg cHJpdmlsZWdlcyBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHNlcGFyYXRlbHkuKQorICAg dGFibGVzKSwgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIHR5cGVzIChpbmNsdWRpbmcgZG9tYWlucyks IGxhcmdlIG9iamVjdHMKKyAgIGFuZCBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgYWx0ZXJlZC4g IEZvciB0aGlzIGNvbW1hbmQsIGZ1bmN0aW9ucyBpbmNsdWRlCisgICBhZ2dyZWdhdGVzIGFuZCBw cm9jZWR1cmVzLiAgVGhlIHdvcmRzIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gYW5kCisg ICA8bGl0ZXJhbD5ST1VUSU5FUzwvbGl0ZXJhbD4gYXJlIGVxdWl2YWxlbnQgaW4gdGhpcyBjb21t YW5kLgorICAgKDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBpcyBwcmVmZXJyZWQgZ29pbmcg Zm9yd2FyZCBhcyB0aGUgc3RhbmRhcmQgdGVybQorICAgZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2Vk dXJlcyB0YWtlbiB0b2dldGhlci4gIEluIGVhcmxpZXIgUG9zdGdyZVNRTCByZWxlYXNlcywKKyAg IG9ubHkgdGhlIHdvcmQgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiB3YXMgYWxsb3dlZC4g IEl0IGlzIG5vdCBwb3NzaWJsZQorICAgdG8gc2V0IGRlZmF1bHQgcHJpdmlsZWdlcyBmb3IgZnVu Y3Rpb25zIGFuZCBwcm9jZWR1cmVzIHNlcGFyYXRlbHkuKQogICA8L3BhcmE+CiAKICAgPHBhcmE+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2dyYW50LnNnbWwKaW5kZXggOTk5ZjY1N2Q1YzAuLmMxMTg2MGZhMjAwIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9ncmFu dC5zZ21sCkBAIC0xMDEsNiArMTAxLDEyIEBAIEdSQU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFRPIDxyZXBsYWNlCiAgICAg WyBXSVRIIHsgQURNSU4gfCBJTkhFUklUIHwgU0VUIH0geyBPUFRJT04gfCBUUlVFIHwgRkFMU0Ug fSBdCiAgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xl X3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCiAKK0dSQU5UIHsgU0VMRUNUIHwgVVBEQVRF IHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiB7IFZBUklBQkxFIDxyZXBsYWNlYWJsZT52 YXJpYWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXQorICAgICAgIHwgQUxMIFZBUklBQkxF UyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9y ZXBsYWNlYWJsZT4gWywgLi4uXSB9CisgICAgVE8gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gWyBXSVRIIEdSQU5U IE9QVElPTiBdCisgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCisKIDxwaHJhc2U+d2hlcmUgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFi bGU+IGNhbiBiZTo8L3BocmFzZT4KIAogICAgIFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4KQEAgLTExOSw4ICsxMjUsOCBAQCBH UkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJs ZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICAgdGhhdCBncmFudHMgcHJpdmlsZWdlcyBvbiBhIGRh dGFiYXNlIG9iamVjdCAodGFibGUsIGNvbHVtbiwgdmlldywKICAgIGZvcmVpZ24gdGFibGUsIHNl cXVlbmNlLCBkYXRhYmFzZSwgZm9yZWlnbi1kYXRhIHdyYXBwZXIsIGZvcmVpZ24gc2VydmVyLAog ICAgZnVuY3Rpb24sIHByb2NlZHVyZSwgcHJvY2VkdXJhbCBsYW5ndWFnZSwgbGFyZ2Ugb2JqZWN0 LCBjb25maWd1cmF0aW9uCi0gICBwYXJhbWV0ZXIsIHNjaGVtYSwgdGFibGVzcGFjZSwgb3IgdHlw ZSksIGFuZCBvbmUgdGhhdCBncmFudHMKLSAgIG1lbWJlcnNoaXAgaW4gYSByb2xlLiAgVGhlc2Ug dmFyaWFudHMgYXJlIHNpbWlsYXIgaW4gbWFueSB3YXlzLCBidXQKKyAgIHBhcmFtZXRlciwgc2No ZW1hLCBzZXNzaW9uIHZhcmlhYmxlLCB0YWJsZXNwYWNlLCBvciB0eXBlKSwgYW5kIG9uZSB0aGF0 CisgICBncmFudHMgbWVtYmVyc2hpcCBpbiBhIHJvbGUuICBUaGVzZSB2YXJpYW50cyBhcmUgc2lt aWxhciBpbiBtYW55IHdheXMsIGJ1dAogICAgdGhleSBhcmUgZGlmZmVyZW50IGVub3VnaCB0byBi ZSBkZXNjcmliZWQgc2VwYXJhdGVseS4KICAgPC9wYXJhPgogCkBAIC0yMzYsOSArMjQyLDkgQEAg R1JBTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFi bGU+IFssIC4uLl0gVE8gPHJlcGxhY2UKICAgPHBhcmE+CiAgICBUaGVyZSBpcyBhbHNvIGFuIG9w dGlvbiB0byBncmFudCBwcml2aWxlZ2VzIG9uIGFsbCBvYmplY3RzIG9mIHRoZSBzYW1lCiAgICB0 eXBlIHdpdGhpbiBvbmUgb3IgbW9yZSBzY2hlbWFzLiAgVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGN1 cnJlbnRseSBzdXBwb3J0ZWQKLSAgIG9ubHkgZm9yIHRhYmxlcywgc2VxdWVuY2VzLCBmdW5jdGlv bnMsIGFuZCBwcm9jZWR1cmVzLiAgPGxpdGVyYWw+QUxMCi0gICBUQUJMRVM8L2xpdGVyYWw+IGFs c28gYWZmZWN0cyB2aWV3cyBhbmQgZm9yZWlnbiB0YWJsZXMsIGp1c3QgbGlrZSB0aGUKLSAgIHNw ZWNpZmljLW9iamVjdCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gY29tbWFuZC4gIDxsaXRlcmFs PkFMTAorICAgb25seSBmb3IgdGFibGVzLCBzZXF1ZW5jZXMsIGZ1bmN0aW9ucywgcHJvY2VkdXJl cyBhbmQgdmFyaWFibGVzLgorICAgPGxpdGVyYWw+QUxMIFRBQkxFUzwvbGl0ZXJhbD4gYWxzbyBh ZmZlY3RzIHZpZXdzIGFuZCBmb3JlaWduIHRhYmxlcywganVzdAorICAgbGlrZSB0aGUgc3BlY2lm aWMtb2JqZWN0IDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBjb21tYW5kLiAgPGxpdGVyYWw+QUxM CiAgICBGVU5DVElPTlM8L2xpdGVyYWw+IGFsc28gYWZmZWN0cyBhZ2dyZWdhdGUgYW5kIHdpbmRv dyBmdW5jdGlvbnMsIGJ1dCBub3QKICAgIHByb2NlZHVyZXMsIGFnYWluIGp1c3QgbGlrZSB0aGUg c3BlY2lmaWMtb2JqZWN0IDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPgogICAgY29tbWFuZC4gIFVz ZSA8bGl0ZXJhbD5BTEwgUk9VVElORVM8L2xpdGVyYWw+IHRvIGluY2x1ZGUgcHJvY2VkdXJlcy4K QEAgLTUxOCw4ICs1MjQsOCBAQCBHUkFOVCBhZG1pbnMgVE8gam9lOwogICAgPC9wYXJhPgogCiAg ICA8cGFyYT4KLSAgICBQcml2aWxlZ2VzIG9uIGRhdGFiYXNlcywgdGFibGVzcGFjZXMsIHNjaGVt YXMsIGxhbmd1YWdlcywgYW5kCi0gICAgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGFyZQorICAg IFByaXZpbGVnZXMgb24gZGF0YWJhc2VzLCB0YWJsZXNwYWNlcywgc2NoZW1hcywgbGFuZ3VhZ2Vz LCBzZXNzaW9uIHZhcmlhYmxlcworICAgIGFuZCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgYXJl CiAgICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb25zLgog ICAgPC9wYXJhPgogIDwvcmVmc2VjdDE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3Jl dm9rZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbAppbmRleCA4ZGY0OTIyODFh MS4uNzYwZmRkYjdjMjAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbApAQCAtMTMwLDYgKzEzMCwxNCBAQCBS RVZPS0UgWyB7IEFETUlOIHwgSU5IRVJJVCB8IFNFVCB9IE9QVElPTiBGT1IgXQogICAgIFsgR1JB TlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9u PC9yZXBsYWNlYWJsZT4gXQogICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KIAorUkVWT0tFIFsg R1JBTlQgT1BUSU9OIEZPUiBdCisgICAgeyB7IFNFTEVDVCB8IFVQREFURSB9IFssIC4uLl0gfCBB TEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIHsgVkFSSUFCTEUgPHJlcGxhY2VhYmxlPnZhcmlh YmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCisgICAgICAgfCBBTEwgVkFSSUFCTEVTIElO IFNDSEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxh Y2VhYmxlPiBbLCAuLi5dIH0KKyAgICBGUk9NIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXQor ICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVj aWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQorICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKwog PHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZp Y2F0aW9uPC9yZXBsYWNlYWJsZT4gY2FuIGJlOjwvcGhyYXNlPgogCiAgICAgWyBHUk9VUCBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvYWNsY2hrLmMKaW5kZXggMDBlMzYzMGUwZWMuLjkzYzEwYmVlYmU5IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNs Y2hrLmMKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5 cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2V4dGVuc2lvbi5oIgpAQCAtMjkwLDYgKzI5MSw5IEBAIHJlc3RyaWN0X2Fu ZF9jaGVja19ncmFudChib29sIGlzX2dyYW50LCBBY2xNb2RlIGF2YWlsX2dvcHRpb25zLCBib29s IGFsbF9wcml2cywKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJCXdob2xlX21hc2sg PSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNU X1ZBUklBQkxFOgorCQkJd2hvbGVfbWFzayA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJ YnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0 eXBlOiAlZCIsIG9ianR5cGUpOwogCQkJLyogbm90IHJlYWNoZWQsIGJ1dCBrZWVwIGNvbXBpbGVy IHF1aWV0ICovCkBAIC01MzQsNiArNTM4LDEwIEBAIEV4ZWN1dGVHcmFudFN0bXQoR3JhbnRTdG10 ICpzdG10KQogCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNM OwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMg Zm9yIHBhcmFtZXRlciIpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJ YWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWVycm9ybXNnID0g Z2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBzZXNzaW9uIHZhcmlh YmxlIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6 ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgc3RtdC0+b2JqdHlwZSk7CkBA IC02MzksNiArNjQ3LDkgQEAgRXhlY0dyYW50U3RtdF9vaWRzKEludGVybmFsR3JhbnQgKmlzdG10 KQogCQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgogCQkJRXhlY0dyYW50X1BhcmFtZXRlcihp c3RtdCk7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlFeGVjR3JhbnRf Y29tbW9uKGlzdG10LCBWYXJpYWJsZVJlbGF0aW9uSWQsIEFDTF9BTExfUklHSFRTX1ZBUklBQkxF LCBOVUxMKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2du aXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBpc3RtdC0+b2JqdHlwZSk7 CkBAIC03NzMsNiArNzg0LDE4IEBAIG9iamVjdE5hbWVzVG9PaWRzKE9iamVjdFR5cGUgb2JqdHlw ZSwgTGlzdCAqb2JqbmFtZXMsIGJvb2wgaXNfZ3JhbnQpCiAJCQkJCW9iamVjdHMgPSBsYXBwZW5k X29pZChvYmplY3RzLCBwYXJhbWV0ZXJJZCk7CiAJCQl9CiAJCQlicmVhazsKKworCQljYXNlIE9C SkVDVF9WQVJJQUJMRToKKwkJCWZvcmVhY2hfbm9kZShSYW5nZVZhciwgdmFydmFyLCBvYmpuYW1l cykKKwkJCXsKKwkJCQlPaWQJCQlyZWxPaWQ7CisKKwkJCQlyZWxPaWQgPSBMb29rdXBWYXJpYWJs ZSh2YXJ2YXItPnNjaGVtYW5hbWUsCisJCQkJCQkJCQkJdmFydmFyLT5yZWxuYW1lLAorCQkJCQkJ CQkJCWZhbHNlKTsKKwkJCQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywgcmVsT2lkKTsK KwkJCX0KKwkJCWJyZWFrOwogCX0KIAogCXJldHVybiBvYmplY3RzOwpAQCAtODU5LDYgKzg4Miwz MiBAQCBvYmplY3RzSW5TY2hlbWFUb09pZHMoT2JqZWN0VHlwZSBvYmp0eXBlLCBMaXN0ICpuc3Bu YW1lcykKIAkJCQkJdGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOwogCQkJCX0KIAkJ CQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCXsKKwkJCQkJU2NhbktleURh dGEga2V5OworCQkJCQlSZWxhdGlvbglyZWw7CisJCQkJCVRhYmxlU2NhbkRlc2Mgc2NhbjsKKwkJ CQkJSGVhcFR1cGxlCXR1cGxlOworCisJCQkJCVNjYW5LZXlJbml0KCZrZXksCisJCQkJCQkJCUFu dW1fcGdfdmFyaWFibGVfdmFybmFtZXNwYWNlLAorCQkJCQkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1i ZXIsIEZfT0lERVEsCisJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKwor CQkJCQlyZWwgPSB0YWJsZV9vcGVuKFZhcmlhYmxlUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2Nr KTsKKwkJCQkJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9jYXRhbG9nKHJlbCwgMSwgJmtleSk7CisK KwkJCQkJd2hpbGUgKCh0dXBsZSA9IGhlYXBfZ2V0bmV4dChzY2FuLCBGb3J3YXJkU2NhbkRpcmVj dGlvbikpICE9IE5VTEwpCisJCQkJCXsKKwkJCQkJCU9pZAkJCW9pZCA9ICgoRm9ybV9wZ19wcm9j KSBHRVRTVFJVQ1QodHVwbGUpKS0+b2lkOworCisJCQkJCQlvYmplY3RzID0gbGFwcGVuZF9vaWQo b2JqZWN0cywgb2lkKTsKKwkJCQkJfQorCisJCQkJCXRhYmxlX2VuZHNjYW4oc2Nhbik7CisJCQkJ CXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQl9CisJCQkJYnJlYWs7CiAJ CQlkZWZhdWx0OgogCQkJCS8qIHNob3VsZCBub3QgaGFwcGVuICovCiAJCQkJZWxvZyhFUlJPUiwg InVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLApAQCAtMTAyMiw2ICsxMDcxLDEw IEBAIEV4ZWNBbHRlckRlZmF1bHRQcml2aWxlZ2VzU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIEFs dGVyRGVmYXVsdFByaXZpbGVnZXNTdG10ICpzCiAJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExf UklHSFRTX0xBUkdFT0JKRUNUOwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQg cHJpdmlsZWdlIHR5cGUgJXMgZm9yIGxhcmdlIG9iamVjdCIpOwogCQkJYnJlYWs7CisJCWNhc2Ug T0JKRUNUX1ZBUklBQkxFOgorCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19WQVJJ QUJMRTsKKwkJCWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBl ICVzIGZvciBzZXNzaW9uIHZhcmlhYmxlIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVs b2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGlu dCkgYWN0aW9uLT5vYmp0eXBlKTsKQEAgLTEyMjIsNiArMTI3NSwxMSBAQCBTZXREZWZhdWx0QUNM KEludGVybmFsRGVmYXVsdEFDTCAqaWFjbHMpCiAJCQlpZiAoaWFjbHMtPmFsbF9wcml2cyAmJiB0 aGlzX3ByaXZpbGVnZXMgPT0gQUNMX05PX1JJR0hUUykKIAkJCQl0aGlzX3ByaXZpbGVnZXMgPSBB Q0xfQUxMX1JJR0hUU19MQVJHRU9CSkVDVDsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJ QUJMRToKKwkJCW9ianR5cGUgPSBERUZBQ0xPQkpfVkFSSUFCTEU7CisJCQlpZiAoaWFjbHMtPmFs bF9wcml2cyAmJiB0aGlzX3ByaXZpbGVnZXMgPT0gQUNMX05PX1JJR0hUUykKKwkJCQl0aGlzX3By aXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOwogCiAJCWRlZmF1 bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsCkBAIC0x NDY5LDYgKzE1MjcsOSBAQCBSZW1vdmVSb2xlRnJvbU9iamVjdEFDTChPaWQgcm9sZWlkLCBPaWQg Y2xhc3NpZCwgT2lkIG9iamlkKQogCQkJY2FzZSBERUZBQ0xPQkpfTEFSR0VPQkpFQ1Q6CiAJCQkJ aWFjbHMub2JqdHlwZSA9IE9CSkVDVF9MQVJHRU9CSkVDVDsKIAkJCQlicmVhazsKKwkJCWNhc2Ug REVGQUNMT0JKX1ZBUklBQkxFOgorCQkJCWlhY2xzLm9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7 CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIFNob3VsZG4ndCBnZXQgaGVyZSAqLwog CQkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIGRlZmF1bHQgQUNMIHR5cGU6ICVkIiwKQEAgLTE1 MjksNiArMTU5MCw5IEBAIFJlbW92ZVJvbGVGcm9tT2JqZWN0QUNMKE9pZCByb2xlaWQsIE9pZCBj bGFzc2lkLCBPaWQgb2JqaWQpCiAJCQljYXNlIFBhcmFtZXRlckFjbFJlbGF0aW9uSWQ6CiAJCQkJ aXN0bXQub2JqdHlwZSA9IE9CSkVDVF9QQVJBTUVURVJfQUNMOwogCQkJCWJyZWFrOworCQkJY2Fz ZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQkJaXN0bXQub2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJM RTsKKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQg b2JqZWN0IGNsYXNzICV1IiwgY2xhc3NpZCk7CiAJCQkJYnJlYWs7CkBAIC0yNzYyLDYgKzI4MjYs OSBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUs CiAJCQkJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBlcm1p c3Npb24gZGVuaWVkIGZvciB0eXBlICVzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpF Q1RfVkFSSUFCTEU6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBlcm1pc3Npb24gZGVuaWVk IGZvciBzZXNzaW9uIHZhcmlhYmxlICVzIik7CisJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpF Q1RfVklFVzoKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9y IHZpZXcgJXMiKTsKIAkJCQkJCWJyZWFrOwpAQCAtMjc4NCw3ICsyODUxLDYgQEAgYWNsY2hlY2tf ZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9C SkVDVF9UU1BBUlNFUjoKIAkJCQkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJCQkJY2FzZSBP QkpFQ1RfVVNFUl9NQVBQSU5HOgotCQkJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCQkJCWVs b2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgdHlwZTogJWQiLCBvYmp0eXBlKTsKIAkJCQl9 CiAKQEAgLTMwMjUsNiArMzA5MSw4IEBAIHBnX2FjbG1hc2soT2JqZWN0VHlwZSBvYmp0eXBlLCBP aWQgb2JqZWN0X29pZCwgQXR0ck51bWJlciBhdHRudW0sIE9pZCByb2xlaWQsCiAJCQlyZXR1cm4g QUNMX05PX1JJR0hUUzsKIAkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCXJldHVybiBvYmplY3RfYWNs bWFzayhUeXBlUmVsYXRpb25JZCwgb2JqZWN0X29pZCwgcm9sZWlkLCBtYXNrLCBob3cpOworCQlj YXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXJldHVybiBvYmplY3RfYWNsbWFzayhWYXJpYWJsZVJl bGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVpZCwgbWFzaywgaG93KTsKIAkJZGVmYXVsdDoKIAkJ CWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwKIAkJCQkgKGludCkg b2JqdHlwZSk7CkBAIC00Mjg4LDYgKzQzNTYsMTAgQEAgZ2V0X3VzZXJfZGVmYXVsdF9hY2woT2Jq ZWN0VHlwZSBvYmp0eXBlLCBPaWQgb3duZXJJZCwgT2lkIG5zcF9vaWQpCiAJCQlkZWZhY2xvYmp0 eXBlID0gREVGQUNMT0JKX0xBUkdFT0JKRUNUOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBPQkpFQ1Rf VkFSSUFCTEU6CisJCQlkZWZhY2xvYmp0eXBlID0gREVGQUNMT0JKX1ZBUklBQkxFOworCQkJYnJl YWs7CisKIAkJZGVmYXVsdDoKIAkJCXJldHVybiBOVUxMOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmpl Y3RhZGRyZXNzLmMKaW5kZXggYWMxZjhhNGRiM2IuLjMyY2QwNzhjMTYyIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYworKysgYi9zcmMvYmFja2VuZC9jYXRh bG9nL29iamVjdGFkZHJlc3MuYwpAQCAtMjAyOSwxNyArMjAyOSwyMSBAQCBnZXRfb2JqZWN0X2Fk ZHJlc3NfZGVmYWNsKExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQljYXNlIERFRkFD TE9CSl9MQVJHRU9CSkVDVDoKIAkJCW9ianR5cGVfc3RyID0gImxhcmdlIG9iamVjdHMiOwogCQkJ YnJlYWs7CisJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJb2JqdHlwZV9zdHIgPSAidmFy aWFibGVzIjsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCiAJCQkJCSBlcnJtc2co InVucmVjb2duaXplZCBkZWZhdWx0IEFDTCBvYmplY3QgdHlwZSBcIiVjXCIiLCBvYmp0eXBlKSwK LQkJCQkJIGVycmhpbnQoIlZhbGlkIG9iamVjdCB0eXBlcyBhcmUgXCIlY1wiLCBcIiVjXCIsIFwi JWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIi4iLAorCQkJCQkgZXJyaGludCgiVmFsaWQgb2Jq ZWN0IHR5cGVzIGFyZSBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIl Y1wiLCBcIiVjXCIuIiwKIAkJCQkJCQkgREVGQUNMT0JKX1JFTEFUSU9OLAogCQkJCQkJCSBERUZB Q0xPQkpfU0VRVUVOQ0UsCiAJCQkJCQkJIERFRkFDTE9CSl9GVU5DVElPTiwKIAkJCQkJCQkgREVG QUNMT0JKX1RZUEUsCiAJCQkJCQkJIERFRkFDTE9CSl9OQU1FU1BBQ0UsCi0JCQkJCQkJIERFRkFD TE9CSl9MQVJHRU9CSkVDVCkpKTsKKwkJCQkJCQkgREVGQUNMT0JKX0xBUkdFT0JKRUNULAorCQkJ CQkJCSBERUZBQ0xPQkpfVkFSSUFCTEUpKSk7CiAJfQogCiAJLyoKQEAgLTM5MjEsNiArMzkyNSwx NiBAQCBnZXRPYmplY3REZXNjcmlwdGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJv b2wgbWlzc2luZ19vaykKIAkJCQkJCQkJCQkgXygiZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5ldyBs YXJnZSBvYmplY3RzIGJlbG9uZ2luZyB0byByb2xlICVzIiksCiAJCQkJCQkJCQkJIHJvbGVuYW1l KTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCQkJCWlm IChuc3BuYW1lKQorCQkJCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwKKwkJCQkJCQkJCQkJ IF8oImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2Vzc2lvbiB2YXJpYWJsZXMgYmVsb25naW5n IHRvIHJvbGUgJXMgaW4gc2NoZW1hICVzIiksCisJCQkJCQkJCQkJCSByb2xlbmFtZSwgbnNwbmFt ZSk7CisJCQkJCQllbHNlCisJCQkJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLAorCQkJCQkJ CQkJCQkgXygiZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5ldyBzZXNzaW9uIHZhcmlhYmxlcyBiZWxv bmdpbmcgdG8gcm9sZSAlcyIpLAorCQkJCQkJCQkJCQkgcm9sZW5hbWUpOworCQkJCQkJYnJlYWs7 CiAJCQkJCWRlZmF1bHQ6CiAJCQkJCQkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAkJCQkJCWlm IChuc3BuYW1lKQpAQCAtNTg1MSw2ICs1ODY1LDEwIEBAIGdldE9iamVjdElkZW50aXR5UGFydHMo Y29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmlu ZygmYnVmZmVyLAogCQkJCQkJCQkJCQkgICAiIG9uIGxhcmdlIG9iamVjdHMiKTsKIAkJCQkJCWJy ZWFrOworCQkJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCQkJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoJmJ1ZmZlciwKKwkJCQkJCQkJCQkJICAgIiBvbiBzZXNzaW9uIHZhcmlhYmxlcyIp OworCQkJCQkJYnJlYWs7CiAJCQkJfQogCiAJCQkJaWYgKG9iam5hbWUpCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmMKaW5kZXggYmQ2YTI5YTc5ZTUuLmQ4ZWRlNGZhOGM4IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ192YXJpYWJsZS5jCkBAIC0zOCw2ICszOCw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBj aGFyICp2YXJOYW1lLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCiAJCQkJYm9vbCBpZl9ub3RfZXhp c3RzKQogeworCUFjbAkJICAgKnZhcmFjbDsKIAlOYW1lRGF0YQl2YXJuYW1lOwogCWJvb2wJCW51 bGxzW05hdHRzX3BnX3ZhcmlhYmxlXTsKIAlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3ZhcmlhYmxl XTsKQEAgLTk3LDcgKzk4LDEyIEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1l LAogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm93bmVyIC0gMV0gPSBPYmplY3RJZEdldERh dHVtKHZhck93bmVyKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAx XSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKIAotCW51bGxzW0FudW1fcGdfdmFy aWFibGVfdmFyYWNsIC0gMV0gPSB0cnVlOworCXZhcmFjbCA9IGdldF91c2VyX2RlZmF1bHRfYWNs KE9CSkVDVF9WQVJJQUJMRSwgdmFyT3duZXIsCisJCQkJCQkJCSAgdmFyTmFtZXNwYWNlKTsKKwlp ZiAodmFyYWNsICE9IE5VTEwpCisJCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFd ID0gUG9pbnRlckdldERhdHVtKHZhcmFjbCk7CisJZWxzZQorCQludWxsc1tBbnVtX3BnX3Zhcmlh YmxlX3ZhcmFjbCAtIDFdID0gdHJ1ZTsKIAogCXR1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJl bCk7CiAKQEAgLTEzMSw2ICsxMzcsOSBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFy TmFtZSwKIAkvKiBkZXBlbmRlbmN5IG9uIG93bmVyICovCiAJcmVjb3JkRGVwZW5kZW5jeU9uT3du ZXIoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgdmFyT3duZXIpOwogCisJLyogZGVwZW5kZW5j aWVzIG9uIHJvbGVzIG1lbnRpb25lZCBpbiBkZWZhdWx0IEFDTCAqLworCXJlY29yZERlcGVuZGVu Y3lPbk5ld0FjbChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCB2YXJPd25lciwgdmFyYWNs KTsKKwogCS8qIGRlcGVuZGVuY3kgb24gZXh0ZW5zaW9uICovCiAJcmVjb3JkRGVwZW5kZW5jeU9u Q3VycmVudEV4dGVuc2lvbigmbXlzZWxmLCBmYWxzZSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGNlZTFi Yjc4ZjdiLi5hMGQxOWUyOTVjOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC03OTEsNyArNzkxLDcgQEAgc3Rh dGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFs aWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlVTkxJU1RFTiBVTkxPR0dFRCBVTlRJTCBVUERBVEUgVVNF UiBVU0lORwogCiAJVkFDVVVNIFZBTElEIFZBTElEQVRFIFZBTElEQVRPUiBWQUxVRV9QIFZBTFVF UyBWQVJDSEFSIFZBUklBRElDIFZBUklBQkxFCi0JVkFSWUlORyBWRVJCT1NFIFZFUlNJT05fUCBW SUVXIFZJRVdTIFZJUlRVQUwgVk9MQVRJTEUKKwlWQVJJQUJMRVMgVkFSWUlORyBWRVJCT1NFIFZF UlNJT05fUCBWSUVXIFZJRVdTIFZJUlRVQUwgVk9MQVRJTEUKIAogCVdIRU4gV0hFUkUgV0hJVEVT UEFDRV9QIFdJTkRPVyBXSVRIIFdJVEhJTiBXSVRIT1VUIFdPUksgV1JBUFBFUiBXUklURQogCkBA IC04MDY2LDYgKzgwNjYsMTQgQEAgcHJpdmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQy OwogCQkJCQkkJCA9IG47CiAJCQkJfQorCQkJfCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZV9saXN0 CisJCQkJeworCQkJCQlQcml2VGFyZ2V0ICpuID0gKFByaXZUYXJnZXQgKikgcGFsbG9jKHNpemVv ZihQcml2VGFyZ2V0KSk7CisJCQkJCW4tPnRhcmd0eXBlID0gQUNMX1RBUkdFVF9PQkpFQ1Q7CisJ CQkJCW4tPm9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9ianMgPSAkMjsKKwkJ CQkJJCQgPSBuOworCQkJCX0KIAkJCXwgQUxMIFRBQkxFUyBJTl9QIFNDSEVNQSBuYW1lX2xpc3QK IAkJCQl7CiAJCQkJCVByaXZUYXJnZXQgKm4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9m KFByaXZUYXJnZXQpKTsKQEAgLTgxMTEsNiArODExOSwxNCBAQCBwcml2aWxlZ2VfdGFyZ2V0Ogog CQkJCQluLT5vYmpzID0gJDU7CiAJCQkJCSQkID0gbjsKIAkJCQl9CisJCQl8IEFMTCBWQVJJQUJM RVMgSU5fUCBTQ0hFTUEgbmFtZV9saXN0CisJCQkJeworCQkJCQlQcml2VGFyZ2V0ICpuID0gKFBy aXZUYXJnZXQgKikgcGFsbG9jKHNpemVvZihQcml2VGFyZ2V0KSk7CisJCQkJCW4tPnRhcmd0eXBl ID0gQUNMX1RBUkdFVF9BTExfSU5fU0NIRU1BOworCQkJCQluLT5vYmp0eXBlID0gT0JKRUNUX1ZB UklBQkxFOworCQkJCQluLT5vYmpzID0gJDU7CisJCQkJCSQkID0gbjsKKwkJCQl9CiAJCTsKIAog CkBAIC04MzA5LDYgKzgzMjUsNyBAQCBkZWZhY2xfcHJpdmlsZWdlX3RhcmdldDoKIAkJCXwgVFlQ RVNfUAkJeyAkJCA9IE9CSkVDVF9UWVBFOyB9CiAJCQl8IFNDSEVNQVMJCXsgJCQgPSBPQkpFQ1Rf U0NIRU1BOyB9CiAJCQl8IExBUkdFX1AgT0JKRUNUU19QCXsgJCQgPSBPQkpFQ1RfTEFSR0VPQkpF Q1Q7IH0KKwkJCXwgVkFSSUFCTEVTCQl7ICQkID0gT0JKRUNUX1ZBUklBQkxFOyB9CiAJCTsKIAog CkBAIC0xODE5MCw2ICsxODIwNyw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgVkFMSURB VE9SCiAJCQl8IFZBTFVFX1AKIAkJCXwgVkFSSUFCTEUKKwkJCXwgVkFSSUFCTEVTCiAJCQl8IFZB UllJTkcKIAkJCXwgVkVSU0lPTl9QCiAJCQl8IFZJRVcKQEAgLTE4ODQ3LDYgKzE4ODY1LDcgQEAg YmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBWQUxVRVMKIAkJCXwgVkFSQ0hBUgogCQkJfCBWQVJJ QUJMRQorCQkJfCBWQVJJQUJMRVMKIAkJCXwgVkFSSUFESUMKIAkJCXwgVkVSQk9TRQogCQkJfCBW RVJTSU9OX1AKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9hY2wuYwppbmRleCBmYmNkNjRhMjYwOS4uOTgyODM4MmI5MDAgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvYWNsLmMKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3By b2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvcHJvY2xhbmcuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgi CiAjaW5jbHVkZSAiY29tbW9uL2hhc2hmbi5oIgpAQCAtMTI4LDYgKzEyOSw4IEBAIHN0YXRpYyBB Y2xNb2RlIGNvbnZlcnRfdHlwZV9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4dCk7CiBz dGF0aWMgQWNsTW9kZSBjb252ZXJ0X3BhcmFtZXRlcl9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3Rl eHQpOwogc3RhdGljIEFjbE1vZGUgY29udmVydF9sYXJnZW9iamVjdF9wcml2X3N0cmluZyh0ZXh0 ICpwcml2X3R5cGVfdGV4dCk7CiBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X3JvbGVfcHJpdl9zdHJp bmcodGV4dCAqcHJpdl90eXBlX3RleHQpOworc3RhdGljIE9pZAljb252ZXJ0X3Nlc3Npb25fdmFy aWFibGVfbmFtZSh0ZXh0ICp2YXJuYW1lKTsKK3N0YXRpYyBBY2xNb2RlIGNvbnZlcnRfc2Vzc2lv bl92YXJpYWJsZV9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4dCk7CiBzdGF0aWMgQWNs UmVzdWx0IHBnX3JvbGVfYWNsY2hlY2soT2lkIHJvbGVfb2lkLCBPaWQgcm9sZWlkLCBBY2xNb2Rl IG1vZGUpOwogCiBzdGF0aWMgdm9pZCBSb2xlTWVtYmVyc2hpcENhY2hlQ2FsbGJhY2soRGF0dW0g YXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSk7CkBAIC04NjcsNiArODcwLDEwIEBA IGFjbGRlZmF1bHQoT2JqZWN0VHlwZSBvYmp0eXBlLCBPaWQgb3duZXJJZCkKIAkJCXdvcmxkX2Rl ZmF1bHQgPSBBQ0xfTk9fUklHSFRTOwogCQkJb3duZXJfZGVmYXVsdCA9IEFDTF9BTExfUklHSFRT X1BBUkFNRVRFUl9BQ0w7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQl3 b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsKKwkJCW93bmVyX2RlZmF1bHQgPSBBQ0xfQUxM X1JJR0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwg InVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLCAoaW50KSBvYmp0eXBlKTsKIAkJCXdvcmxk X2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCkBAIC05 NjQsNiArOTcxLDkgQEAgYWNsZGVmYXVsdF9zcWwoUEdfRlVOQ1RJT05fQVJHUykKIAkJY2FzZSAn VCc6CiAJCQlvYmp0eXBlID0gT0JKRUNUX1RZUEU7CiAJCQlicmVhazsKKwkJY2FzZSAnVic6CisJ CQlvYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQll bG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlIGFiYnJldmlhdGlvbjogJWMiLCBv Ymp0eXBlYyk7CiAJfQpAQCAtNTAzMiw2ICs1MDQyLDIxNyBAQCBwZ19yb2xlX2FjbGNoZWNrKE9p ZCByb2xlX29pZCwgT2lkIHJvbGVpZCwgQWNsTW9kZSBtb2RlKQogCXJldHVybiBBQ0xDSEVDS19O T19QUklWOwogfQogCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIHZhcmlh bnRzCisgKgkJVGhlc2UgYXJlIGFsbCBuYW1lZCAiaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlIiBhdCB0aGUgU1FMIGxldmVsLgorICoJCVRoZXkgdGFrZSB2YXJpb3VzIGNvbWJpbmF0aW9u cyBvZiB2YXJpYWJsZSBuYW1lLCB2YXJpYWJsZSBPSUQsCisgKgkJdXNlciBuYW1lLCB1c2VyIE9J RCwgb3IgaW1wbGljaXQgdXNlciA9IGN1cnJlbnRfdXNlci4KKyAqCisgKgkJVGhlIHJlc3VsdCBp cyBhIGJvb2xlYW4gdmFsdWU6IHRydWUgaWYgdXNlciBoYXMgdGhlIGluZGljYXRlZAorICoJCXBy aXZpbGVnZSwgZmFsc2UgaWYgbm90LCBvciBOVUxMIGlmIHNlc3Npb24gdmFyaWFibGUgZG9lc24n dAorICoJCWV4aXN0cy4KKyAqLworCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlX25hbWVfbmFtZQorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIHNlc3Npb24gdmFy aWFibGUgZ2l2ZW4KKyAqCQluYW1lIHVzZXJuYW1lLCB0ZXh0IHNlc3Npb24gdmFyaWFibGUgbmFt ZSwgYW5kIHRleHQgcHJpdiBuYW1lLgorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlX25hbWVfbmFtZShQR19GVU5DVElPTl9BUkdTKQoreworCU5hbWUJCXJvbGVuYW1l ID0gUEdfR0VUQVJHX05BTUUoMCk7CisJdGV4dAkgICAqdmFybmFtZSA9IFBHX0dFVEFSR19URVhU X1BQKDEpOworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMik7 CisJT2lkCQkJcm9sZWlkOworCU9pZAkJCXZhcmlkOworCUFjbE1vZGUJCW1vZGU7CisJQWNsUmVz dWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFsc2U7CisKKwlyb2xlaWQgPSBn ZXRfcm9sZV9vaWRfb3JfcHVibGljKE5hbWVTdHIoKnJvbGVuYW1lKSk7CisJbW9kZSA9IGNvbnZl cnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisJdmFyaWQg PSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJuYW1lKTsKKworCWFjbHJlc3VsdCA9 IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJ CXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19taXNzaW5nKTsKKworCWlmIChpc19taXNzaW5n KQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJOX0JPT0woYWNscmVzdWx0ID09IEFD TENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9u YW1lCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2YXJpYWJsZSBnaXZl bgorICoJCXRleHQgc2Vzc2lvbiB2YXJpYWJsZSBhbmQgdGV4dCBwcml2IG5hbWUuCisgKgkJY3Vy cmVudF91c2VyIGlzIGFzc3VtZWQKKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZV9uYW1lKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJdGV4dAkgICAqdmFybmFtZSA9IFBH X0dFVEFSR19URVhUX1BQKDApOworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJH X1RFWFRfUFAoMSk7CisJT2lkCQkJcm9sZWlkOworCU9pZAkJCXZhcmlkOworCUFjbE1vZGUJCW1v ZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFsc2U7CisK Kwlyb2xlaWQgPSBHZXRVc2VySWQoKTsKKwltb2RlID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxl X3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKwl2YXJpZCA9IGNvbnZlcnRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lKHZhcm5hbWUpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4 dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJ CQkJCQkJJmlzX21pc3NpbmcpOworCisJUEdfUkVUVVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENI RUNLX09LKTsKK30KKworLyoKKyAqIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1l X2lkCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2YXJpYWJsZSBnaXZl bgorICoJCW5hbWUgdXNlbmFtZSwgc2Vzc2lvbiB2YXJpYWJsZSBvaWQsIGFuZCB0ZXh0IHByaXYg bmFtZS4KKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lX2lk KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJTmFtZQkJdXNlcm5hbWUgPSBQR19HRVRBUkdfTkFNRSgw KTsKKwlPaWQJCQl2YXJpZCA9IFBHX0dFVEFSR19PSUQoMSk7CisJdGV4dAkgICAqcHJpdl90eXBl X3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlPaWQJCQlyb2xlaWQ7CisJQWNsTW9kZQkJ bW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsK KworCXJvbGVpZCA9IGdldF9yb2xlX29pZF9vcl9wdWJsaWMoTmFtZVN0cigqdXNlcm5hbWUpKTsK Kwltb2RlID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZfdHlwZV90 ZXh0KTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVSZWxhdGlv bklkLCB2YXJpZCwKKwkJCQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19taXNzaW5n KTsKKworCWlmIChpc19taXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJO X0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZV9pZAorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIHNl c3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQlzZXNzaW9uIHZhcmlhYmxlIG9pZCwgYW5kIHRleHQg cHJpdiBuYW1lLgorICoJCWN1cnJlbnRfdXNlciBpcyBhc3N1bWVkCisgKi8KK0RhdHVtCitoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJ CQl2YXJpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJdGV4dAkgICAqcHJpdl90eXBlX3RleHQgPSBQ R19HRVRBUkdfVEVYVF9QUCgxKTsKKwlPaWQJCQlyb2xlaWQ7CisJQWNsTW9kZQkJbW9kZTsKKwlB Y2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKworCXJvbGVp ZCA9IEdldFVzZXJJZCgpOworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9z dHJpbmcocHJpdl90eXBlX3RleHQpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4 dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJ CQkJCQkJJmlzX21pc3NpbmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxM KCk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisv KgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkX25hbWUKKyAqCQlDaGVjayB1 c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJcm9sZWlkLCB0 ZXh0IHNlc3Npb24gdmFyaWFibGUgbmFtZSwgYW5kIHRleHQgcHJpdiBuYW1lLgorICovCitEYXR1 bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkX25hbWUoUEdfRlVOQ1RJT05fQVJH UykKK3sKKwlPaWQJCQlyb2xlaWQgPSBQR19HRVRBUkdfT0lEKDApOworCXRleHQJICAgKnZhcm5h bWUgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4dCA9IFBH X0dFVEFSR19URVhUX1BQKDIpOworCU9pZAkJCXZhcmlkOworCUFjbE1vZGUJCW1vZGU7CisJQWNs UmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFsc2U7CisKKwltb2RlID0g Y29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKwl2 YXJpZCA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcm5hbWUpOworCisJYWNscmVz dWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJ CQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJaWYgKGlzX21p c3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQg PT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlX2lkX2lkCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2YXJpYWJs ZSBnaXZlbgorICoJCXJvbGVpZCwgc2Vzc2lvbiB2YXJpYWJsZSBvaWQsIGFuZCB0ZXh0IHByaXYg bmFtZS4KKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZF9pZChQ R19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCXJvbGVpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJ T2lkCQkJdmFyaWQgPSBQR19HRVRBUkdfT0lEKDEpOworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0 ID0gUEdfR0VUQVJHX1RFWFRfUFAoMik7CisJQWNsTW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNs cmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKworCW1vZGUgPSBjb252ZXJ0X3Nl c3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOworCisJYWNscmVzdWx0 ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJ CQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJaWYgKGlzX21pc3Np bmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0g QUNMQ0hFQ0tfT0spOworfQorCisvKgorICogR2l2ZW4gYSBzZXNzaW9uIHZhcmlhYmxlIG5hbWUg ZXhwcmVzc2VkIGFzIGEgc3RyaW5nLCBsb29rIGl0IHVwIGFuZCByZXR1cm4KKyAqIE9pZAorICov CitzdGF0aWMgT2lkCitjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh0ZXh0ICp2YXJuYW1l KQoreworCXJldHVybiBMb29rdXBWYXJpYWJsZUZyb21OYW1lTGlzdCh0ZXh0VG9RdWFsaWZpZWRO YW1lTGlzdCh2YXJuYW1lKSwgdHJ1ZSk7Cit9CisKKy8qCisgKiBjb252ZXJ0X3ZhcmlhYmxlX3By aXZfc3RyaW5nCisgKgkJQ29udmVydCB0ZXh0IHN0cmluZyB0byBBY2xNb2RlIHZhbHVlLgorICov CitzdGF0aWMgQWNsTW9kZQorY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHRl eHQgKnByaXZfdHlwZV90ZXh0KQoreworCXN0YXRpYyBjb25zdCBwcml2X21hcCBzZXNzaW9uX3Zh cmlhYmxlX3ByaXZfbWFwW10gPSB7CisJCXsiU0VMRUNUIiwgQUNMX1NFTEVDVH0sCisJCXsiU0VM RUNUIFdJVEggR1JBTlQgT1BUSU9OIiwgQUNMX0dSQU5UX09QVElPTl9GT1IoQUNMX1NFTEVDVCl9 LAorCQl7IlVQREFURSIsIEFDTF9VUERBVEV9LAorCQl7IlVQREFURSBXSVRIIEdSQU5UIE9QVElP TiIsIEFDTF9HUkFOVF9PUFRJT05fRk9SKEFDTF9VUERBVEUpfSwKKwkJe05VTEwsIDB9CisJfTsK KworCXJldHVybiBjb252ZXJ0X2FueV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCwgc2Vzc2lv bl92YXJpYWJsZV9wcml2X21hcCk7Cit9CiAKIC8qCiAgKiBpbml0aWFsaXphdGlvbiBmdW5jdGlv biAoY2FsbGVkIGJ5IEluaXRQb3N0Z3JlcykKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfZGVmYXVsdF9hY2wuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wu aAppbmRleCBjZTZlNTA5OGVhZi4uMDg3ZDM1Yjk0M2QgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Rl ZmF1bHRfYWNsLmgKQEAgLTY5LDYgKzY5LDcgQEAgTUFLRV9TWVNDQUNIRShERUZBQ0xST0xFTlNQ T0JKLCBwZ19kZWZhdWx0X2FjbF9yb2xlX25zcF9vYmpfaW5kZXgsIDgpOwogI2RlZmluZSBERUZB Q0xPQkpfVFlQRQkJCSdUJyAvKiB0eXBlICovCiAjZGVmaW5lIERFRkFDTE9CSl9OQU1FU1BBQ0UJ CSduJyAvKiBuYW1lc3BhY2UgKi8KICNkZWZpbmUgREVGQUNMT0JKX0xBUkdFT0JKRUNUCSdMJyAv KiBsYXJnZSBvYmplY3QgKi8KKyNkZWZpbmUgREVGQUNMT0JKX1ZBUklBQkxFCQknVicgLyogdmFy aWFibGUgKi8KIAogI2VuZGlmCQkJCQkJCS8qIEVYUE9TRV9UT19DTElFTlRfQ09ERSAqLwogCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA5MTIxYTM4MmY3Ni4uMWVhM2Y1MTg0MWMgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNTQ3OSw2ICs1NDc5LDI2IEBACiAgIHByb3JldHR5cGUg PT4gJ2Jvb2wnLCBwcm9hcmd0eXBlcyA9PiAnb2lkIG9pZCB0ZXh0JywKICAgcHJvc3JjID0+ICdo YXNfbGFyZ2VvYmplY3RfcHJpdmlsZWdlX2lkX2lkJyB9LAogCit7IG9pZCA9PiAnOTYxMycsIGRl c2NyID0+ICd1c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9uIHZhcmlhYmxlIGJ5IHVzZXJuYW1lLCBz ZXEgbmFtZScsCisgIHByb25hbWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScs IHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVz ID0+ICduYW1lIHRleHQgdGV4dCcsCisgIHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlX25hbWVfbmFtZScgfSwKK3sgb2lkID0+ICc5NjE0JywgZGVzY3IgPT4gJ3VzZXIg cHJpdmlsZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgdXNlcm5hbWUsIHNlcSBvaWQnLAorICBw cm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9 PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAnbmFtZSBvaWQg dGV4dCcsIHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWVfaWQn IH0sCit7IG9pZCA9PiAnOTYxNScsIGRlc2NyID0+ICd1c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9u IHZhcmlhYmxlIGJ5IHVzZXIgb2lkLCBzZXEgbmFtZScsCisgIHByb25hbWUgPT4gJ2hhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9 PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICdvaWQgdGV4dCB0ZXh0JywgcHJvc3JjID0+ICdo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWRfbmFtZScgfSwKK3sgb2lkID0+ICc5NjE2 JywgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgdXNlciBv aWQsIHNlcSBvaWQnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0 eXBlcyA9PiAnb2lkIG9pZCB0ZXh0JywgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2VfaWRfaWQnIH0sCit7IG9pZCA9PiAnOTYxNycsIGRlc2NyID0+ICdjdXJyZW50IHVz ZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgc2VxIG5hbWUnLAorICBwcm9uYW1l ID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycs IHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAndGV4dCB0ZXh0JywgcHJv c3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZScgfSwKK3sgb2lkID0+ ICc5NjE4JywgZGVzY3IgPT4gJ2N1cnJlbnQgdXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJp YWJsZSBieSBzZXEgb2lkJywKKyAgcHJvbmFtZSA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJv YXJndHlwZXMgPT4gJ29pZCB0ZXh0JywgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2VfaWQnIH0sCisKIHsgb2lkID0+ICczMzU1JywgZGVzY3IgPT4gJ0kvTycsCiAgIHBy b25hbWUgPT4gJ3BnX25kaXN0aW5jdF9pbicsIHByb3JldHR5cGUgPT4gJ3BnX25kaXN0aW5jdCcs CiAgIHByb2FyZ3R5cGVzID0+ICdjc3RyaW5nJywgcHJvc3JjID0+ICdwZ19uZGlzdGluY3RfaW4n IH0sCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVk ZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggNWU2ZDNhZmY4YWYuLjdlN2QyNjJiMWJiIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2Vy L2t3bGlzdC5oCkBAIC00ODksNiArNDg5LDcgQEAgUEdfS0VZV09SRCgidmFsdWUiLCBWQUxVRV9Q LCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YWx1ZXMiLCBW QUxVRVMsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJjaGFy IiwgVkFSQ0hBUiwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZh cmlhYmxlIiwgVkFSSUFCTEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tF WVdPUkQoInZhcmlhYmxlcyIsIFZBUklBQkxFUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgidmFyaWFkaWMiLCBWQVJJQURJQywgUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcnlpbmciLCBWQVJZSU5HLCBVTlJFU0VSVkVEX0tF WVdPUkQsIEFTX0xBQkVMKQogUEdfS0VZV09SRCgidmVyYm9zZSIsIFZFUkJPU0UsIFRZUEVfRlVO Q19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGls cy9hY2wuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCmluZGV4IDAxYWU1YjcxOWZkLi41ZTFh OGE4MmU5MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKKysrIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvYWNsLmgKQEAgLTE2OSw2ICsxNjksNyBAQCB0eXBlZGVmIHN0cnVjdCBBcnJh eVR5cGUgQWNsOwogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19TQ0hFTUEJCShBQ0xfVVNBR0V8QUNM X0NSRUFURSkKICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfVEFCTEVTUEFDRQkoQUNMX0NSRUFURSkK ICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfVFlQRQkJCShBQ0xfVVNBR0UpCisjZGVmaW5lIEFDTF9B TExfUklHSFRTX1ZBUklBQkxFCQkoQUNMX1NFTEVDVHxBQ0xfVVBEQVRFKQogCiAvKiBvcGVyYXRp b24gY29kZXMgZm9yIHBnXypfYWNsbWFzayAqLwogdHlwZWRlZiBlbnVtCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2FjbC5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2FjbC5vdXQKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmYyMjE5NTI5OTE2Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19hY2wub3V0 CkBAIC0wLDAgKzEsMzM1IEBACistLSBjaGVjayBhY2Nlc3MgcmlnaHRzIGFuZCBzdXBwb3J0ZWQg QUxURVIKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfYWNsOworQ1JFQVRFIFJPTEUgcmVncmVzc192 YXJpYWJsZV9vd25lcl9hY2w7CitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcl9h Y2w7CitHUkFOVCBBTEwgT04gU0NIRU1BIHN2YXJ0ZXN0X2FjbCBUTyByZWdyZXNzX3ZhcmlhYmxl X293bmVyX2FjbDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgcHVibGljIFRPIHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXJfYWNsOworQUxURVIgREVGQVVMVCBQUklWSUxFR0VTCisgICBGT1IgUk9MRSByZWdy ZXNzX3ZhcmlhYmxlX293bmVyX2FjbAorICAgSU4gU0NIRU1BIHN2YXJ0ZXN0X2FjbAorICAgR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFUyBUTyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcl9hY2w7CitB TFRFUiBERUZBVUxUIFBSSVZJTEVHRVMKKyAgIEZPUiBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXJfYWNsCisgICBJTiBTQ0hFTUEgc3ZhcnRlc3RfYWNsCisgICBHUkFOVCBVUERBVEUgT04gVkFS SUFCTEVTIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyX2FjbDsKKy0tIHNob3VsZCB0byBmYWls CitBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMKKyAgIEZPUiBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXJfYWNsCisgICBJTiBTQ0hFTUEgc3ZhcnRlc3RfYWNsCisgICBHUkFOVCBJTlNFUlQgT04g VkFSSUFCTEVTIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyX2FjbDsKK0VSUk9SOiAgaW52YWxp ZCBwcml2aWxlZ2UgdHlwZSBJTlNFUlQgZm9yIHNlc3Npb24gdmFyaWFibGUKKy0tIHNob3VsZCB0 byBmYWlsCitBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMKKyAgIEZPUiBST0xFIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXJfYWNsCisgICBJTiBTQ0hFTUEgc3ZhcnRlc3RfYWNsCisgICBHUkFOVCBERUxF VEUgT04gVkFSSUFCTEVTIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyX2FjbDsKK0VSUk9SOiAg aW52YWxpZCBwcml2aWxlZ2UgdHlwZSBERUxFVEUgZm9yIHNlc3Npb24gdmFyaWFibGUKKy0tIGNy ZWF0aW5nIHZhcmlhYmxlIHdpdGggZGVmYXVsdCBwcml2aWxlZ2VzCitTRVQgUk9MRSBUTyByZWdy ZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9hY2wuc2Vz dmFyMjAgQVMgaW50OworU0VUIFJPTEUgVE8gREVGQVVMVDsKKy0tIHNob3VsZCBiZSBvay4gc2lu Y2UgQUxURVIgREVGQVVMVCBQUklWSUxFR0VTCistLSBhbGxvdyByZWdyZXNzX3ZhcmlhYmxlX3Jl YWRlcl9hY2wgdG8gaGF2ZSBTRUxFQ1QgcHJpdmlsZWRnZQorU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yZWFkZXJfYWNsJywgJ3N2YXJ0ZXN0 X2FjbC5zZXN2YXIyMCcsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQor CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxl X3JlYWRlcl9hY2wnLCAnc3ZhcnRlc3RfYWNsLnNlc3ZhcjIwJywgJ1VQREFURScpOyAtLSB0Cisg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyB0CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3RfYWNsLnNlc3Zh cjIwOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3RfYWNsOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFi bGVfcmVhZGVyX2FjbDsKKy0tCistLSBiZWdpbiBvZiBjaGVjayBHUkFOVCBXSVRIIEdSQU5UIE9Q VElPTiBhbmQgUkVWT0tFIEdSQU5URUQgQlkKKy0tCitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcmlh YmxlX3IxX2FjbDsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsOworU0VUIFJP TEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitDUkVBVEUgVkFSSUFCTEUgc2VzdmFy MjJfYWNsIEFTIGludDsgICAgICAtLXNlc3ZhcjIyX2FjbCB3aWxsIG93bmVkIGJ5IHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXJfYWNsCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc2VzdmFyMjJfYWNs IFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsIFdJVEggR1JBTlQgT1BUSU9OOworU0VUIFJPTEUg VE8gcmVncmVzc192YXJpYWJsZV9yMV9hY2w7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc2Vz dmFyMjJfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsIFdJVEggR1JBTlQgT1BUSU9OOwor U0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VM RUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnLCAncHVibGljLnNl c3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitS RVZPS0UgQUxMIFBSSVZJTEVHRVMgT04gVkFSSUFCTEUgc2VzdmFyMjJfYWNsIEZST00gcmVncmVz c192YXJpYWJsZV9yMV9hY2wgQ0FTQ0FERTsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wn LCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnLCAncHVi bGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93 KQorCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKKy0tIHNob3VsZCB0 byBmYWlsCitHUkFOVCBJTlNFUlQgT04gVkFSSUFCTEUgc2VzdmFyMjJfYWNsIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfcjJfYWNsOworRVJST1I6ICBpbnZhbGlkIHByaXZpbGVnZSB0eXBlIElOU0VSVCBm b3Igc2Vzc2lvbiB2YXJpYWJsZQorR1JBTlQgREVMRVRFIE9OIFZBUklBQkxFIHNlc3ZhcjIyX2Fj bCBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbDsKK0VSUk9SOiAgaW52YWxpZCBwcml2aWxlZ2Ug dHlwZSBERUxFVEUgZm9yIHNlc3Npb24gdmFyaWFibGUKKy0tIHNob3VsZCBiZSBvaworR1JBTlQg U0VMRUNUIE9OIFZBUklBQkxFIHNlc3ZhcjIyX2FjbCBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyX2Fj bDsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFi bGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnLCAncHVibGljLnNlc3ZhcjIyX2FjbCcsICdTRUxF Q1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitSRVZPS0UgQUxMIE9OIFZBUklB QkxFIHNlc3ZhcjIyX2FjbCBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsIEdSQU5URUQgQlkg cmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNs JywgJ1NFTEVDVCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJywgJ3B1 YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJv dykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJp YWJsZV9vd25lcl9hY2wnLCAncHVibGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAor IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJ QUJMRSBzZXN2YXIyMl9hY2w7CistLQorLS0gZW5kIG9mIGNoZWNrIEdSQU5UIFdJVEggR1JBTlQg T1BUSU9OIGFuZCBSRVZPS0UgR1JBTlRFRCBCWQorLS0KKy0tCistLSBiZWdpbiBvZiB0ZXN0OiBH UkFOVHxSRVZPS0UgU0VMRUNUfFVQREFURSBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQQorLS0K K0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfYWNsOworR1JBTlQgQUxMIE9OIFNDSEVNQSBzdmFydGVz dF9hY2wgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitTRVQgUk9MRSBUTyByZWdyZXNz X3ZhcmlhYmxlX293bmVyX2FjbDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9hY2wuc2VzdmFy MjAgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2FjbC5zZXN2YXIyMSBBUyBpbnQ7 CitHUkFOVCBTRUxFQ1QgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgc3ZhcnRlc3RfYWNsIFRP IHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAnc3ZhcnRlc3RfYWNsLnNlc3ZhcjIw JywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3N2 YXJ0ZXN0X2FjbC5zZXN2YXIyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEg cm93KQorCitSRVZPS0UgU0VMRUNUIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIHN2YXJ0ZXN0 X2FjbCBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsOworU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAnc3ZhcnRlc3RfYWNs LnNlc3ZhcjIwJywgJ1NFTEVDVCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFf YWNsJywgJ3N2YXJ0ZXN0X2FjbC5zZXN2YXIyMScsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgZgorKDEgcm93KQorCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSBzdmFy dGVzdF9hY2wuc2VzdmFyMjA7CitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2FjbC5zZXN2YXIyMTsK K0RST1AgU0NIRU1BIHN2YXJ0ZXN0X2FjbDsKKy0tCistLSBlbmQgb2YgdGVzdDogR1JBTlR8UkVW T0tFIFNFTEVDVHxVUERBVEUgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEKKy0tCistLQorLS0g ZnVuY3Rpb24gaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIGhhdmUgdmFyaW91cyBraW5k IG9mIHNpZ25hdHVyZS4KKy0tIHRoZSBmb2xsb3dpbmcgYXJlIGV4dGVuc2l2ZSB0ZXN0IGZvciBp dC4KKy0tCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK0NSRUFURSBW QVJJQUJMRSBwdWJsaWMuc2VzdmFyMjJfYWNsIEFTIGludDsKK1NFVCBzZWFyY2hfcGF0aCBUTyBw dWJsaWM7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgcHVibGljLnNlc3ZhcjIyX2FjbCBUTyBy ZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbDsKK0dSQU5UIFNFTEVDVCwgVVBEQVRFIE9OIFZBUklBQkxF IHB1YmxpYy5zZXN2YXIyMl9hY2wgVE8gcmVncmVzc192YXJpYWJsZV9yMl9hY2w7CitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcs ICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOworIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93 KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX3IxX2FjbCcsICdwdWJsaWMubm90ZXhpc3RzJywgJ1NFTEVDVCcpIElTIE5VTEw7CisgP2Nv bHVtbj8gCistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zh cmlhYmxlX3IxX2FjbDsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Jl Z3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3Nlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAor IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdzZXN2YXIyMl9hY2wnLCAnVVBEQVRF Jyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnLCAnc2VzdmFyMjJfYWNs JywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJywgJ3Nl c3ZhcjIyX2FjbCcsICdVUERBVEUnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdzZXN2YXIyMl9hY2wnLCAnU0VM RUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSgnc2VzdmFyMjJfYWNsJywgJ1VQREFURScpOyAtLSBmCisgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBvaWQgQVMgdmFyaWQKKyAgRlJPTSBwZ192YXJp YWJsZQorICBXSEVSRSB2YXJuYW1lID0gJ3Nlc3ZhcjIyX2FjbCcgQU5EIHZhcm5hbWVzcGFjZSA9 ICdwdWJsaWMnOjpyZWduYW1lc3BhY2UgXGdzZXQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3Nlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg dAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdzZXN2 YXIyMl9hY2wnLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9h Y2wnLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3Ix X2FjbCcsIDp2YXJpZCwgJ1VQREFURScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVf cjJfYWNsJywgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykK KworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJs ZV9yMl9hY2wnLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93 KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKDp2YXJpZCwgJ1NFTEVD VCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYK KygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVz c192YXJpYWJsZV9yMV9hY2wnOjpyZWdyb2xlLCAnc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAt LSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJzo6cmVncm9sZSwgJ3Nlc3ZhcjIy X2FjbCcsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCc6 OnJlZ3JvbGUsICdzZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQK KygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVz c192YXJpYWJsZV9yMl9hY2wnOjpyZWdyb2xlLCAnc2VzdmFyMjJfYWNsJywgJ1VQREFURScpOyAt LSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJzo6cmVncm9sZSwgOnZhcmlkLCAn U0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnOjpyZWdyb2xl LCA6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxF Q1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2Fj bCc6OnJlZ3JvbGUsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSBy b3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFy aWFibGVfcjJfYWNsJzo6cmVncm9sZSwgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIHQKKyBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHQKKygxIHJvdykKKworLS0KKy0tIGVuZCBvZiBmdW5jdGlvbiBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UgdGVzdHMuCistLQorU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBzZWFy Y2hfcGF0aCBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSBwdWJsaWMuc2VzdmFyMjJfYWNsOwor RFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFy aWFibGVfcjJfYWNsOworUkVWT0tFIEFMTCBPTiBTQ0hFTUEgcHVibGljIEZST00gcmVncmVzc192 YXJpYWJsZV9vd25lcl9hY2w7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rl c3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCAxYmNmNjkwMzFkYS4uZDgwMDBkYTNm ODYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtMTE1LDcgKzExNSw3IEBAIHRl c3Q6IGpzb24ganNvbmIganNvbl9lbmNvZGluZyBqc29ucGF0aCBqc29ucGF0aF9lbmNvZGluZyBq c29uYl9qc29ucGF0aCBzcWxqc29uCiAjIE5COiB0ZW1wLnNxbCBkb2VzIHJlY29ubmVjdHMgd2hp Y2ggdHJhbnNpZW50bHkgdXNlcyAyIGNvbm5lY3Rpb25zLAogIyBzbyBrZWVwIHRoaXMgcGFyYWxs ZWwgZ3JvdXAgdG8gYXQgbW9zdCAxOSB0ZXN0cwogIyAtLS0tLS0tLS0tCi10ZXN0OiBwbGFuY2Fj aGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29u dmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlw ZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdpdGggeG1sIHNlc3Npb25fdmFyaWFibGVzX2RkbAor dGVzdDogcGxhbmNhY2hlIGxpbWl0IHBscGdzcWwgY29weTIgdGVtcCBkb21haW4gcmFuZ2VmdW5j cyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1bmNhdGUgYWx0ZXJfdGFibGUgc2VxdWVuY2UgcG9seW1v cnBoaXNtIHJvd3R5cGVzIHJldHVybmluZyBsYXJnZW9iamVjdCB3aXRoIHhtbCBzZXNzaW9uX3Zh cmlhYmxlc19kZGwgc2Vzc2lvbl92YXJpYWJsZXNfYWNsCiAKICMgLS0tLS0tLS0tLQogIyBBbm90 aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRlc3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19hY2wuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXNfYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uNGIzNjUzY2Q0ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlc19hY2wuc3FsCkBAIC0wLDAgKzEsMTgyIEBACistLSBjaGVjayBh Y2Nlc3MgcmlnaHRzIGFuZCBzdXBwb3J0ZWQgQUxURVIKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Rf YWNsOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitDUkVBVEUgUk9M RSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcl9hY2w7CisKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3Zh cnRlc3RfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworR1JBTlQgQUxMIE9OIFND SEVNQSBwdWJsaWMgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CisKK0FMVEVSIERFRkFV TFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2wKKyAg IElOIFNDSEVNQSBzdmFydGVzdF9hY2wKKyAgIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8g cmVncmVzc192YXJpYWJsZV9yZWFkZXJfYWNsOworCitBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMK KyAgIEZPUiBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsCisgICBJTiBTQ0hFTUEgc3Zh cnRlc3RfYWNsCisgICBHUkFOVCBVUERBVEUgT04gVkFSSUFCTEVTIFRPIHJlZ3Jlc3NfdmFyaWFi bGVfcmVhZGVyX2FjbDsKKworLS0gc2hvdWxkIHRvIGZhaWwKK0FMVEVSIERFRkFVTFQgUFJJVklM RUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2wKKyAgIElOIFNDSEVN QSBzdmFydGVzdF9hY2wKKyAgIEdSQU5UIElOU0VSVCBPTiBWQVJJQUJMRVMgVE8gcmVncmVzc192 YXJpYWJsZV9yZWFkZXJfYWNsOworCistLSBzaG91bGQgdG8gZmFpbAorQUxURVIgREVGQVVMVCBQ UklWSUxFR0VTCisgICBGT1IgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbAorICAgSU4g U0NIRU1BIHN2YXJ0ZXN0X2FjbAorICAgR1JBTlQgREVMRVRFIE9OIFZBUklBQkxFUyBUTyByZWdy ZXNzX3ZhcmlhYmxlX3JlYWRlcl9hY2w7CisKKy0tIGNyZWF0aW5nIHZhcmlhYmxlIHdpdGggZGVm YXVsdCBwcml2aWxlZ2VzCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsK K0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9hY2wuc2VzdmFyMjAgQVMgaW50OworU0VUIFJPTEUg VE8gREVGQVVMVDsKKworLS0gc2hvdWxkIGJlIG9rLiBzaW5jZSBBTFRFUiBERUZBVUxUIFBSSVZJ TEVHRVMKKy0tIGFsbG93IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyX2FjbCB0byBoYXZlIFNFTEVD VCBwcml2aWxlZGdlCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdy ZXNzX3ZhcmlhYmxlX3JlYWRlcl9hY2wnLCAnc3ZhcnRlc3RfYWNsLnNlc3ZhcjIwJywgJ1NFTEVD VCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNz X3ZhcmlhYmxlX3JlYWRlcl9hY2wnLCAnc3ZhcnRlc3RfYWNsLnNlc3ZhcjIwJywgJ1VQREFURScp OyAtLSB0CisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3RfYWNsLnNlc3ZhcjIwOworRFJPUCBTQ0hF TUEgc3ZhcnRlc3RfYWNsOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyX2FjbDsK KworLS0KKy0tIGJlZ2luIG9mIGNoZWNrIEdSQU5UIFdJVEggR1JBTlQgT1BUSU9OIGFuZCBSRVZP S0UgR1JBTlRFRCBCWQorLS0KK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsOwor Q1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMl9hY2w7CisKK1NFVCBST0xFIFRPIHJlZ3Jl c3NfdmFyaWFibGVfb3duZXJfYWNsOworQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjIyX2FjbCBBUyBp bnQ7ICAgICAgLS1zZXN2YXIyMl9hY2wgd2lsbCBvd25lZCBieSByZWdyZXNzX3ZhcmlhYmxlX293 bmVyX2FjbAorCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc2VzdmFyMjJfYWNsIFRPIHJlZ3Jl c3NfdmFyaWFibGVfcjFfYWNsIFdJVEggR1JBTlQgT1BUSU9OOworU0VUIFJPTEUgVE8gcmVncmVz c192YXJpYWJsZV9yMV9hY2w7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc2VzdmFyMjJfYWNs IFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsIFdJVEggR1JBTlQgT1BUSU9OOworU0VUIFJPTEUg VE8gREVGQVVMVDsKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVn cmVzc192YXJpYWJsZV9yMV9hY2wnLCAncHVibGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsg LS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJp YWJsZV9yMl9hY2wnLCAncHVibGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorCitS RVZPS0UgQUxMIFBSSVZJTEVHRVMgT04gVkFSSUFCTEUgc2VzdmFyMjJfYWNsIEZST00gcmVncmVz c192YXJpYWJsZV9yMV9hY2wgQ0FTQ0FERTsKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAncHVibGljLnNlc3ZhcjIyX2Fj bCcsICdTRUxFQ1QnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnLCAncHVibGljLnNlc3ZhcjIyX2FjbCcsICdTRUxF Q1QnKTsgLS0gZgorCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKKwor LS0gc2hvdWxkIHRvIGZhaWwKK0dSQU5UIElOU0VSVCBPTiBWQVJJQUJMRSBzZXN2YXIyMl9hY2wg VE8gcmVncmVzc192YXJpYWJsZV9yMl9hY2w7CitHUkFOVCBERUxFVEUgT04gVkFSSUFCTEUgc2Vz dmFyMjJfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsOworCistLSBzaG91bGQgYmUgb2sK K0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBzZXN2YXIyMl9hY2wgVE8gcmVncmVzc192YXJpYWJs ZV9yMl9hY2w7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0t IGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFi bGVfcjJfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQKKworUkVW T0tFIEFMTCBPTiBWQVJJQUJMRSBzZXN2YXIyMl9hY2wgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3Iy X2FjbCBHUkFOVEVEIEJZIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdw dWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcsICdwdWJsaWMuc2Vz dmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJf YWNsJywgJ1NFTEVDVCcpOyAtLSB0CitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIFZBUklB QkxFIHNlc3ZhcjIyX2FjbDsKKy0tCistLSBlbmQgb2YgY2hlY2sgR1JBTlQgV0lUSCBHUkFOVCBP UFRJT04gYW5kIFJFVk9LRSBHUkFOVEVEIEJZCistLQorCistLQorLS0gYmVnaW4gb2YgdGVzdDog R1JBTlR8UkVWT0tFIFNFTEVDVHxVUERBVEUgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEKKy0t CitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0X2FjbDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3ZhcnRl c3RfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworU0VUIFJPTEUgVE8gcmVncmVz c192YXJpYWJsZV9vd25lcl9hY2w7CisKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9hY2wuc2Vz dmFyMjAgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2FjbC5zZXN2YXIyMSBBUyBp bnQ7CisKK0dSQU5UIFNFTEVDVCBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSBzdmFydGVzdF9h Y2wgVE8gcmVncmVzc192YXJpYWJsZV9yMV9hY2w7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3N2YXJ0ZXN0X2FjbC5z ZXN2YXIyMCcsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAnc3ZhcnRlc3RfYWNsLnNlc3ZhcjIx JywgJ1NFTEVDVCcpOyAtLSB0CisKK1JFVk9LRSBTRUxFQ1QgT04gQUxMIFZBUklBQkxFUyBJTiBT Q0hFTUEgc3ZhcnRlc3RfYWNsIEZST00gcmVncmVzc192YXJpYWJsZV9yMV9hY2w7CisKK1NFTEVD VCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNs JywgJ3N2YXJ0ZXN0X2FjbC5zZXN2YXIyMCcsICdTRUxFQ1QnKTsgLS0gZgorU0VMRUNUIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAnc3Zh cnRlc3RfYWNsLnNlc3ZhcjIxJywgJ1NFTEVDVCcpOyAtLSBmCisKK1NFVCBST0xFIFRPIERFRkFV TFQ7CitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2FjbC5zZXN2YXIyMDsKK0RST1AgVkFSSUFCTEUg c3ZhcnRlc3RfYWNsLnNlc3ZhcjIxOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3RfYWNsOworLS0KKy0t IGVuZCBvZiB0ZXN0OiBHUkFOVHxSRVZPS0UgU0VMRUNUfFVQREFURSBPTiBBTEwgVkFSSUFCTEVT IElOIFNDSEVNQQorLS0KKworLS0KKy0tIGZ1bmN0aW9uIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSBoYXZlIHZhcmlvdXMga2luZCBvZiBzaWduYXR1cmUuCistLSB0aGUgZm9sbG93aW5n IGFyZSBleHRlbnNpdmUgdGVzdCBmb3IgaXQuCistLQorU0VUIFJPTEUgVE8gcmVncmVzc192YXJp YWJsZV9vd25lcl9hY2w7CisKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuc2VzdmFyMjJfYWNsIEFT IGludDsKKworU0VUIHNlYXJjaF9wYXRoIFRPIHB1YmxpYzsKKworR1JBTlQgU0VMRUNUIE9OIFZB UklBQkxFIHB1YmxpYy5zZXN2YXIyMl9hY2wgVE8gcmVncmVzc192YXJpYWJsZV9yMV9hY2w7CitH UkFOVCBTRUxFQ1QsIFVQREFURSBPTiBWQVJJQUJMRSBwdWJsaWMuc2VzdmFyMjJfYWNsIFRPIHJl Z3Jlc3NfdmFyaWFibGVfcjJfYWNsOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywg J1NFTEVDVCcpOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVz c192YXJpYWJsZV9yMV9hY2wnLCAncHVibGljLm5vdGV4aXN0cycsICdTRUxFQ1QnKSBJUyBOVUxM OworCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbDsKKworU0VMRUNUIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAnc2Vz dmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdzZXN2YXIyMl9hY2wnLCAnVVBE QVRFJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjJfYWNsJywgJ3Nlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9h Y2wnLCAnc2VzdmFyMjJfYWNsJywgJ1VQREFURScpOyAtLSB0CisKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Nlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgnc2VzdmFyMjJfYWNsJywgJ1VQREFU RScpOyAtLSBmCisKK1NFTEVDVCBvaWQgQVMgdmFyaWQKKyAgRlJPTSBwZ192YXJpYWJsZQorICBX SEVSRSB2YXJuYW1lID0gJ3Nlc3ZhcjIyX2FjbCcgQU5EIHZhcm5hbWVzcGFjZSA9ICdwdWJsaWMn OjpyZWduYW1lc3BhY2UgXGdzZXQKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSgnc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCdzZXN2YXIyMl9hY2wnLCAnVVBEQVRFJyk7IC0tIGYKKworU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9h Y2wnLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCA6dmFyaWQsICdVUERBVEUnKTsg LS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJp YWJsZV9yMl9hY2wnLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnLCA6dmFyaWQsICdV UERBVEUnKTsgLS0gdAorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKDp2 YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlKDp2YXJpZCwgJ1VQREFURScpOyAtLSBmCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJzo6cmVncm9sZSwgJ3Nlc3ZhcjIy X2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnOjpyZWdyb2xlLCAnc2VzdmFyMjJfYWNsJywg J1VQREFURScpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCc6OnJlZ3JvbGUsICdzZXN2YXIyMl9hY2wnLCAnU0VMRUNU Jyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3Nf dmFyaWFibGVfcjJfYWNsJzo6cmVncm9sZSwgJ3Nlc3ZhcjIyX2FjbCcsICdVUERBVEUnKTsgLS0g dAorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX3IxX2FjbCc6OnJlZ3JvbGUsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCc6OnJl Z3JvbGUsIDp2YXJpZCwgJ1VQREFURScpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCc6OnJlZ3JvbGUsIDp2YXJpZCwg J1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCc6OnJlZ3JvbGUsIDp2YXJpZCwgJ1VQREFURScpOyAtLSB0 CistLQorLS0gZW5kIG9mIGZ1bmN0aW9uIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSB0 ZXN0cy4KKy0tCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgc2VhcmNoX3BhdGggVE8gREVG QVVMVDsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMuc2VzdmFyMjJfYWNsOworCitEUk9QIFJPTEUg cmVncmVzc192YXJpYWJsZV9yMV9hY2w7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMl9h Y2w7CisKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXJfYWNsOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOwotLSAKMi41 MS4xCgo= --0000000000001c96f9064262bb7f Content-Type: text/x-patch; charset="US-ASCII"; name="v20251030-0002-CREATE-DROP-ALTER-VARIABLE.patch" Content-Disposition: attachment; filename="v20251030-0002-CREATE-DROP-ALTER-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhdn0ddo13 RnJvbSBlNWM0YjY4M2ZlNDI1NDczZTViYjI2ZDA1ZjVlZDlmYWU1OWNjNzI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFdlZCwgMjggTWF5IDIwMjUgMTE6MjY6MTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDAy LzE1XSBDUkVBVEUsIERST1AsIEFMVEVSIFZBUklBQkxFCgpJbXBsZW1lbnRhdGlvbiBvZiBjb21t YW5kczoKCiAgICBDUkVBVEUgVkFSSUFCTEUgdmFybmFtZSBBUyB0eXBlCiAgICBEUk9QIFZBUklB QkxFIHZhcm5hbWUKICAgIEFMVEVSIFZBUklBQkxFIHZhcm5hbWUgT1dORVIgVE8KICAgIEFMVEVS IFZBUklBQkxFIHZhcm5hbWUgUkVOQU1FIFRPCiAgICBBTFRFUiBWQVJJQUJMRSB2YXJuYW1lIFNF VCBTQ0hFTUEKCkFMVEVSIGNvbW1hbmQgdXNlcyBhbHJlYWR5IHByZXBhcmVkIGluZnJhc3RydWN0 dXJlIGJhc2VkIG9uIE9iamVjdEFkZHJlc3MgQVBJLApzbyB0aGlzIHBhdGNoIGltcGxlbWVudHMg T2JqZWN0QWRkcmVzcyByZWxhdGVkIGZ1bmN0aW9uYWxpdHkgdG9vLgoKRXZlbnQgdHJpZ2dlcnMg Zm9yIERETCBvdmVyIHNlc3Npb24gdmFyaWFibGVzIGFyZSBzdXBwb3J0ZWQuCi0tLQogZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIxICsrCiBkb2Mvc3Jj L3NnbWwvZ2xvc3Nhcnkuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTUgKysKIGRvYy9zcmMv c2dtbC9wbHBnc3FsLnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICAxNCArKwogZG9jL3NyYy9z Z21sL3JlZi9hbGxmaWxlcy5zZ21sICAgICAgICAgICAgICAgIHwgICAzICsKIGRvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCAgICAgICAgICB8IDE3OCArKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sICAgICAgICAgICAgICAgICB8ICAgMSArCiBk b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbCAgICAgICAgICAgfCAgMTIgKy0KIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8IDE0OSArKysrKysr KysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAgfCAx MTcgKysrKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sICAgICAgICAgICAgICAg ICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAg ICB8ICAgNCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAg fCAgIDYgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyAgICAgICAgICAgICAgIHwg MjA3ICsrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNz LmMgICAgICAgICAgIHwgIDk5ICsrKysrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRl cGVuZC5jICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxl ICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jICAg ICAgICAgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyAg ICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIu YyAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZCAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAg ICAgICB8ICA4OCArKysrKysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAg ICAgICAgICAgIHwgIDQxICsrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMgICAg ICAgICAgICAgICB8ICAxNSArKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAg ICAgICAgICAgIHwgIDg2ICsrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNt ZC5jICAgICAgICAgICAgfCAgMTIgKwogc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAg ICAgICAgICAgICAgIHwgIDIwICsrCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUu YyAgICAgICAgICAgfCAgNjUgKysrKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5o ICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oICAgICAgIHwgIDI0ICsrCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAg ICAgICAgICAgICAgfCAgMTYgKysKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAg ICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCAgICAgICAg ICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggICAgICAgICAg ICAgICAgIHwgICA0ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQg ICAgICB8ICAxNyArKwogLi4uL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQgICAg ICAgIHwgMTYzICsrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3ku c3FsICAgICAgICAgICB8ICAxNCArKwogLi4uL3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz X2RkbC5zcWwgICAgIHwgMTUwICsrKysrKysrKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgMSArCiA0MCBmaWxlcyBjaGFuZ2VkLCAxNTcxIGlu c2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMv c2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2lu Y2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwub3V0CiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNx bAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwu c2dtbAppbmRleCA2NWJjMDcwZDJlNS4uZmE3MTFhMDliYzQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTUzNjIsNiArNTM2 MiwyNyBAQCBFWFBMQUlOIFNFTEVDVCBjb3VudCgqKSBGUk9NIG1lYXN1cmVtZW50IFdIRVJFIGxv Z2RhdGUgJmd0Oz0gREFURSAnMjAwOC0wMS0wMSc7CiAgICA8L3BhcmE+CiAgPC9zZWN0MT4KIAor ICA8c2VjdDEgaWQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyI+CisgICA8dGl0bGU+U2Vzc2lvbiBW YXJpYWJsZXM8L3RpdGxlPgorCisgICA8aW5kZXh0ZXJtIHpvbmU9ImRkbC1zZXNzaW9uLXZhcmlh YmxlcyI+CisgICAgPHByaW1hcnk+U2Vzc2lvbiB2YXJpYWJsZXM8L3ByaW1hcnk+CisgICA8L2lu ZGV4dGVybT4KKworICAgPGluZGV4dGVybT4KKyAgICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxl PC9wcmltYXJ5PgorICAgPC9pbmRleHRlcm0+CisKKyAgIDxwYXJhPgorICAgIFNlc3Npb24gdmFy aWFibGVzIGFyZSBkYXRhYmFzZSBvYmplY3RzIHRoYXQgY2FuIGhvbGQgYSB2YWx1ZS4KKyAgIDwv cGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIHNlc3Npb24gdmFyaWFibGUgaG9sZHMgdmFsdWUg aW4gc2Vzc2lvbiBtZW1vcnkuICBUaGlzIHZhbHVlIGlzIHByaXZhdGUKKyAgICB0byBlYWNoIHNl c3Npb24gYW5kIGlzIHJlbGVhc2VkIHdoZW4gdGhlIHNlc3Npb24gZW5kcy4KKyAgIDwvcGFyYT4K KyAgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iZGRsLW90aGVycyI+CiAgIDx0aXRsZT5PdGhlciBE YXRhYmFzZSBPYmplY3RzPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3Nz YXJ5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCA4NjUxZjBjZGI5MS4u YzM3ZmQ1ZGE1MGIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCkBAIC0xNzExLDYgKzE3MTEsMjEgQEAKICAgIDwv Z2xvc3NkZWY+CiAgIDwvZ2xvc3NlbnRyeT4KIAorICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nhcnkt c2Vzc2lvbi12YXJpYWJsZSI+CisgICA8Z2xvc3N0ZXJtPlNlc3Npb24gdmFyaWFibGU8L2dsb3Nz dGVybT4KKyAgIDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAgICAgQSBwZXJzaXN0ZW50IGRhdGFi YXNlIG9iamVjdCB0aGF0IGhvbGRzIGEgdmFsdWUgaW4gc2Vzc2lvbiBtZW1vcnkuICBUaGlzCisg ICAgIHZhbHVlIGlzIHByaXZhdGUgdG8gZWFjaCBzZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVu IHRoZSBzZXNzaW9uIGVuZHMuCisgICAgIFJlYWQgb3Igd3JpdGUgYWNjZXNzIHRvIHNlc3Npb24g dmFyaWFibGVzIGlzIGNvbnRyb2xsZWQgYnkgcHJpdmlsZWdlcywKKyAgICAgc2ltaWxhciB0byBv dGhlciBkYXRhYmFzZSBvYmplY3RzLgorICAgIDwvcGFyYT4KKyAgICA8cGFyYT4KKyAgICAgRm9y IG1vcmUgaW5mb3JtYXRpb24sIHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJs ZXMiLz4uCisgICAgPC9wYXJhPgorICAgPC9nbG9zc2RlZj4KKyAgPC9nbG9zc2VudHJ5PgorCiAg IDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1zaGFyZWQtbWVtb3J5Ij4KICAgIDxnbG9zc3Rlcm0+ U2hhcmVkIG1lbW9yeTwvZ2xvc3N0ZXJtPgogICAgPGdsb3NzZGVmPgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3BscGdzcWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKaW5kZXgg ZTkzNzQ5MWU2YjguLjFlNGM0M2I4YjYxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGxwZ3Nx bC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKQEAgLTYwMzYsNiArNjAzNiwy MCBAQCAkJCBMQU5HVUFHRSBwbHBnc3FsIFNUUklDVCBJTU1VVEFCTEU7CiA8L3Byb2dyYW1saXN0 aW5nPgogICAgIDwvcGFyYT4KICAgIDwvc2VjdDM+CisKKyAgIDxzZWN0MyBpZD0icGxwZ3NxbC1w b3J0aW5nLXBhY2thZ2UtdmFyaWFibGVzIj4KKyAgICA8dGl0bGU+PGNvbW1hbmQ+UGFja2FnZXMg YW5kIHBhY2thZ2UgdmFyaWFibGVzPC9jb21tYW5kPjwvdGl0bGU+CisKKyAgICA8cGFyYT4KKyAg ICAgVGhlIDxhcHBsaWNhdGlvbj5QTC9wZ1NRTDwvYXBwbGljYXRpb24+IGxhbmd1YWdlIGhhcyBu byBwYWNrYWdlcywgYW5kCisgICAgIHRoZXJlZm9yZSBubyBwYWNrYWdlIHZhcmlhYmxlcyBvciBw YWNrYWdlIGNvbnN0YW50cy4KKyAgICAgWW91IGNhbiBjb25zaWRlciB0cmFuc2xhdGluZyBhbiBP cmFjbGUgcGFja2FnZSBpbnRvIGEgc2NoZW1hIGluCisgICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3Jl U1FMPC9wcm9kdWN0bmFtZT4uICBQYWNrYWdlIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcworICAg ICB3b3VsZCB0aGVuIGJlY29tZSBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMgaW4gdGhhdCBzY2hl bWEsIGFuZCBwYWNrYWdlCisgICAgIHZhcmlhYmxlcyBjb3VsZCBiZSB0cmFuc2xhdGVkIHRvIHNl c3Npb24gdmFyaWFibGVzIGluIHRoYXQgc2NoZW1hLgorICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9 ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIvPikuCisgICAgPC9wYXJhPgorICAgPC9zZWN0Mz4KICAg PC9zZWN0Mj4KIAogICA8c2VjdDIgaWQ9InBscGdzcWwtcG9ydGluZy1hcHBlbmRpeCI+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2FsbGZpbGVzLnNnbWwKaW5kZXggZjViZTYzODg2N2EuLjJmNjdkZTNlMjFiIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9h bGxmaWxlcy5zZ21sCkBAIC00Nyw2ICs0Nyw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNn bWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgYWx0ZXJUeXBlICAg ICAgICAgIFNZU1RFTSAiYWx0ZXJfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVXNlciAgICAg ICAgICBTWVNURU0gImFsdGVyX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBhbHRlclVzZXJNYXBwaW5n ICAgU1lTVEVNICJhbHRlcl91c2VyX21hcHBpbmcuc2dtbCI+Cis8IUVOVElUWSBhbHRlclZhcmlh YmxlICAgICAgU1lTVEVNICJhbHRlcl92YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVmll dyAgICAgICAgICBTWVNURU0gImFsdGVyX3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBhbmFseXplICAg ICAgICAgICAgU1lTVEVNICJhbmFseXplLnNnbWwiPgogPCFFTlRJVFkgYmVnaW4gICAgICAgICAg ICAgIFNZU1RFTSAiYmVnaW4uc2dtbCI+CkBAIC05OSw2ICsxMDAsNyBAQCBDb21wbGV0ZSBsaXN0 IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZ IGNyZWF0ZVR5cGUgICAgICAgICBTWVNURU0gImNyZWF0ZV90eXBlLnNnbWwiPgogPCFFTlRJVFkg Y3JlYXRlVXNlciAgICAgICAgIFNZU1RFTSAiY3JlYXRlX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBj cmVhdGVVc2VyTWFwcGluZyAgU1lTVEVNICJjcmVhdGVfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFF TlRJVFkgY3JlYXRlVmFyaWFibGUgICAgIFNZU1RFTSAiY3JlYXRlX3ZhcmlhYmxlLnNnbWwiPgog PCFFTlRJVFkgY3JlYXRlVmlldyAgICAgICAgIFNZU1RFTSAiY3JlYXRlX3ZpZXcuc2dtbCI+CiA8 IUVOVElUWSBkZWFsbG9jYXRlICAgICAgICAgU1lTVEVNICJkZWFsbG9jYXRlLnNnbWwiPgogPCFF TlRJVFkgZGVjbGFyZSAgICAgICAgICAgIFNZU1RFTSAiZGVjbGFyZS5zZ21sIj4KQEAgLTE0Nyw2 ICsxNDksNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0 aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGRyb3BUeXBlICAgICAgICAgICBTWVNURU0gImRyb3Bf dHlwZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BVc2VyICAgICAgICAgICBTWVNURU0gImRyb3BfdXNl ci5zZ21sIj4KIDwhRU5USVRZIGRyb3BVc2VyTWFwcGluZyAgICBTWVNURU0gImRyb3BfdXNlcl9t YXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgZHJvcFZhcmlhYmxlICAgICAgIFNZU1RFTSAiZHJvcF92 YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BWaWV3ICAgICAgICAgICBTWVNURU0gImRyb3Bf dmlldy5zZ21sIj4KIDwhRU5USVRZIGVuZCAgICAgICAgICAgICAgICBTWVNURU0gImVuZC5zZ21s Ij4KIDwhRU5USVRZIGV4ZWN1dGUgICAgICAgICAgICBTWVNURU0gImV4ZWN1dGUuc2dtbCI+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjk2ZDI1ODY0MjNlCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCkBAIC0wLDAgKzEsMTc4IEBACis8IS0tCitkb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgor LS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWFsdGVydmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9u ZT0ic3FsLWFsdGVydmFyaWFibGUiPgorICA8cHJpbWFyeT5BTFRFUiBWQVJJQUJMRTwvcHJpbWFy eT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Npb24gdmFy aWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+YWx0ZXJpbmc8L3NlY29uZGFyeT4KKyA8L2lu ZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5BTFRFUiBWQVJJQUJMRTwv cmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5m bz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisK KyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+QUxURVIgVkFSSUFCTEU8L3JlZm5hbWU+CisgIDxy ZWZwdXJwb3NlPgorICAgY2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgc2Vzc2lvbiB2YXJpYWJs ZQorICA8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2Pgor PHN5bm9wc2lzPgorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9MRSB8IENVUlJFTlRfVVNF UiB8IFNFU1NJT05fVVNFUiB9CitBTFRFUiBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIgVkFSSUFCTEUgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgU0NIRU1BIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfc2NoZW1hPC9yZXBsYWNlYWJsZT4KKzwv c3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRl c2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5BTFRFUiBWQVJJ QUJMRTwvY29tbWFuZD4gY29tbWFuZCBjaGFuZ2VzIHRoZSBkZWZpbml0aW9uIG9mIGFuCisgICBl eGlzdGluZyBzZXNzaW9uIHZhcmlhYmxlLiBUaGVyZSBhcmUgc2V2ZXJhbCBzdWJmb3JtczoKKwor ICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5P V05FUjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoaXMgZm9ybSBjaGFuZ2VzIHRoZSBvd25lciBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZh cmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5SRU5BTUU8L2xpdGVyYWw+PC90ZXJtPgor ICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gY2hhbmdlcyB0aGUg bmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48 bGl0ZXJhbD5TRVQgU0NIRU1BPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgVGhpcyBmb3JtIG1vdmVzIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGludG8g YW5vdGhlciBzY2hlbWEuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAg IE9ubHkgdGhlIG93bmVyIG9yIGEgc3VwZXJ1c2VyIGlzIGFsbG93ZWQgdG8gYWx0ZXIgYSBzZXNz aW9uIHZhcmlhYmxlLgorICAgSW4gb3JkZXIgdG8gbW92ZSBhIHNlc3Npb24gdmFyaWFibGUgZnJv bSBvbmUgc2NoZW1hIHRvIGFub3RoZXIsIHRoZSB1c2VyCisgICBtdXN0IGFsc28gaGF2ZSB0aGUg PGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhlIG5ldyBzY2hlbWEgKG9y CisgICBiZSBhIHN1cGVydXNlcikuCisKKyAgIEluIG9yZGVyIHRvIG1vdmUgdGhlIHNlc3Npb24g dmFyaWFibGUgb3duZXJzaGlwIGZyb20gb25lIHJvbGUgdG8gYW5vdGhlciwKKyAgIHRoZSB1c2Vy IG11c3QgYWxzbyBiZSBhIGRpcmVjdCBvciBpbmRpcmVjdCBtZW1iZXIgb2YgdGhlIG5ldworICAg b3duaW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlIHRoZSA8bGl0ZXJhbD5DUkVBVEU8 L2xpdGVyYWw+IHByaXZpbGVnZQorICAgb24gdGhlIHNlc3Npb24gdmFyaWFibGUncyBzY2hlbWEg KG9yIGJlIGEgc3VwZXJ1c2VyKS4gVGhlc2UgcmVzdHJpY3Rpb25zCisgICBlbmZvcmNlIHRoYXQg YWx0ZXJpbmcgdGhlIG93bmVyIGRvZXNuJ3QgZG8gYW55dGhpbmcgeW91IGNvdWxkbid0IGRvIGJ5 CisgICBkcm9wcGluZyBhbmQgcmVjcmVhdGluZyB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgPC9w YXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90 aXRsZT4KKworICAgPHBhcmE+CisgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgPHZhcmxpc3RlbnRy eT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBs YWNlYWJsZT48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAg IFRoZSBuYW1lIChwb3NzaWJseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiB0aGUgZXhpc3Rpbmcgc2Vz c2lvbiB2YXJpYWJsZQorICAgICAgICB0byBhbHRlci4KKyAgICAgICA8L3BhcmE+CisgICAgICA8 L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5Pgor ICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVw bGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAg ICBUaGUgdXNlciBuYW1lIG9mIHRoZSBuZXcgb3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUu CisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uZXdfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVt PgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbmV3IG5hbWUgZm9yIHRoZSBzZXNzaW9uIHZh cmlhYmxlLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlz dGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAg PGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbmV3IHNjaGVtYSBmb3IgdGhl IHNlc3Npb24gdmFyaWFibGUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAg ICAgPC92YXJsaXN0ZW50cnk+CisgICAgPC92YXJpYWJsZWxpc3Q+CisgICA8L3BhcmE+CisgIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAg PHBhcmE+CisgICBUbyByZW5hbWUgYSBzZXNzaW9uIHZhcmlhYmxlOgorPHByb2dyYW1saXN0aW5n PgorQUxURVIgVkFSSUFCTEUgZm9vIFJFTkFNRSBUTyBib287Cis8L3Byb2dyYW1saXN0aW5nPgor ICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIG93bmVyIG9mIHRoZSBzZXNz aW9uIHZhcmlhYmxlIDxsaXRlcmFsPmJvbzwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmpvZTwv bGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBib28gT1dORVIgVE8g am9lOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gY2hh bmdlIHRoZSBzY2hlbWEgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+Ym9vPC9saXRl cmFsPiB0bworICAgPGxpdGVyYWw+cHJpdmF0ZTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+ CitBTFRFUiBWQVJJQUJMRSBib28gU0VUIFNDSEVNQSBwcml2YXRlOworPC9wcm9ncmFtbGlzdGlu Zz4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21w YXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFNlc3Npb24gdmFyaWFibGVzIGFuZCB0 aGlzIGNvbW1hbmQgaW4gcGFydGljdWxhciBhcmUgYSBQb3N0Z3JlU1FMIGV4dGVuc2lvbi4KKyAg PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDEgaWQ9InNxbC1hbHRlcnZhcmlhYmxl LXNlZS1hbHNvIj4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0 eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFi bGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJs ZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwvcmVmZW50cnk+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvY29tbWVudC5zZ21sCmluZGV4IDViNDNjNTZiMTMzLi4yMWNkODA4MThmYiAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9jb21tZW50LnNnbWwKQEAgLTY1LDYgKzY1LDcgQEAgQ09NTUVOVCBPTgogICBUUkFOU0ZPUk0g Rk9SIDxyZXBsYWNlYWJsZT50eXBlX25hbWU8L3JlcGxhY2VhYmxlPiBMQU5HVUFHRSA8cmVwbGFj ZWFibGU+bGFuZ19uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBUUklHR0VSIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj50cmlnZ2VyX25hbWU8L3JlcGxhY2VhYmxlPiBPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgVFlQRSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8 CisgIFZBUklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwv cmVwbGFjZWFibGU+IHwKICAgVklFVyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2Jq ZWN0X25hbWU8L3JlcGxhY2VhYmxlPgogfSBJUyB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5zdHJpbmdfbGl0ZXJhbDwvcmVwbGFjZWFibGU+IHwgTlVMTCB9CiAKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfc2NoZW1hLnNnbWwKaW5kZXggZWQ2OTI5OGNjYzYuLmQyYmIyNjUyMDliIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbApAQCAtMTAzLDkgKzEwMywxMCBAQCBDUkVBVEUgU0NI RU1BIElGIE5PVCBFWElTVFMgQVVUSE9SSVpBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cm9sZV9zcAogICAgICAgICBzY2hlbWEuIEN1cnJlbnRseSwgb25seSA8Y29tbWFuZD5D UkVBVEUKICAgICAgICAgVEFCTEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUgVklFVzwvY29t bWFuZD4sIDxjb21tYW5kPkNSRUFURQogICAgICAgICBJTkRFWDwvY29tbWFuZD4sIDxjb21tYW5k PkNSRUFURSBTRVFVRU5DRTwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURQotICAgICAgICBUUklH R0VSPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFyZSBhY2NlcHRlZCBh cyBjbGF1c2VzCi0gICAgICAgIHdpdGhpbiA8Y29tbWFuZD5DUkVBVEUgU0NIRU1BPC9jb21tYW5k Pi4gT3RoZXIga2luZHMgb2Ygb2JqZWN0cyBtYXkKLSAgICAgICAgYmUgY3JlYXRlZCBpbiBzZXBh cmF0ZSBjb21tYW5kcyBhZnRlciB0aGUgc2NoZW1hIGlzIGNyZWF0ZWQuCisgICAgICAgIFRSSUdH RVI8L2NvbW1hbmQ+LCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxjb21tYW5kPkNSRUFU RQorICAgICAgICBWQVJJQUJMRTwvY29tbWFuZD4gYXJlIGFjY2VwdGVkIGFzIGNsYXVzZXMgd2l0 aGluIDxjb21tYW5kPkNSRUFURQorICAgICAgICBTQ0hFTUE8L2NvbW1hbmQ+LiBPdGhlciBraW5k cyBvZiBvYmplY3RzIG1heSBiZSBjcmVhdGVkIGluIHNlcGFyYXRlCisgICAgICAgIGNvbW1hbmRz IGFmdGVyIHRoZSBzY2hlbWEgaXMgY3JlYXRlZC4KICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xp c3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTIxNCw2ICsyMTUsMTEgQEAgQ1JFQVRF IFZJRVcgaG9sbHl3b29kLndpbm5lcnMgQVMKICAgIFRoZSA8bGl0ZXJhbD5JRiBOT1QgRVhJU1RT PC9saXRlcmFsPiBvcHRpb24gaXMgYQogICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1 Y3RuYW1lPiBleHRlbnNpb24uCiAgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFu ZD5DUkVBVEUgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgaXMgYQorICAgPHByb2R1Y3RuYW1l PlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb24uCisgIDwvcGFyYT4KICA8L3JlZnNl Y3QxPgogCiAgPHJlZnNlY3QxPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf dmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZlOTg4ZjJlNDcyCi0tLSAvZGV2 L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMCww ICsxLDE0OSBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAor UG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtY3JlYXRl dmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWNyZWF0ZXZhcmlhYmxlIj4KKyAgPHBy aW1hcnk+Q1JFQVRFIFZBUklBQkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4 dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFy eT5kZWZpbmluZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxy ZWZlbnRyeXRpdGxlPkNSRUFURSBWQVJJQUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51 bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRz PC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+ Q1JFQVRFIFZBUklBQkxFPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5kZWZpbmUgYSBzZXNzaW9u IHZhcmlhYmxlPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rp dj4KKzxzeW5vcHNpcz4KK0NSRUFURSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRF IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBd Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisgPHJlZnNlY3QxPgorICA8dGl0bGU+ RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkNSRUFURSBW QVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBjcmVhdGVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAg IFNlc3Npb24gdmFyaWFibGVzLCBsaWtlIHJlbGF0aW9ucywgZXhpc3Qgd2l0aGluIGEgc2NoZW1h IGFuZCB0aGVpciBhY2Nlc3MgaXMKKyAgIGNvbnRyb2xsZWQgdmlhIHRoZSBjb21tYW5kcyA8Y29t bWFuZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxjb21tYW5kPlJFVk9LRTwvY29tbWFuZD4uCisgIDwv cGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMg bG9jYWwgdG8gdGhlIGN1cnJlbnQgc2Vzc2lvbi4gIFJldHJpZXZpbmcKKyAgIGEgc2Vzc2lvbiB2 YXJpYWJsZSdzIHZhbHVlIHJldHVybnMgTlVMTCwgdW5sZXNzIGl0cyB2YWx1ZSBpcyBzZXQgdG8K KyAgIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24gd2l0aCBhIDxjb21tYW5k PkxFVDwvY29tbWFuZD4gY29tbWFuZC4KKyAgIFRoZSBjb250ZW50IG9mIGEgc2Vzc2lvbiB2YXJp YWJsZSBpcyBub3QgdHJhbnNhY3Rpb25hbC4gVGhpcyBpcyB0aGUgc2FtZSBhcworICAgcmVndWxh ciB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMuCisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSByZXRyaWV2ZWQgYnkgdGhlIDxjb21tYW5kPlNF TEVDVDwvY29tbWFuZD4KKyAgIGNvbW1hbmQuICBUaGVpciB2YWx1ZSBpcyBzZXQgd2l0aCB0aGUg PGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLgorICA8L3BhcmE+CisKKyAgPG5vdGU+Cisg ICA8cGFyYT4KKyAgICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgPHF1b3RlPnNoYWRvd2VkPC9x dW90ZT4gYnkgb3RoZXIgaWRlbnRpZmllcnMuCisgICAgRm9yIGRldGFpbHMsIHNlZSA8eHJlZiBs aW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4uCisgICA8L3BhcmE+CisgIDwvbm90ZT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+ CisKKyAgPHZhcmlhYmxlbGlzdD4KKworICAgPHZhcmxpc3RlbnRyeSAgaWQ9InNxbC1jcmVhdGV2 YXJpYWJsZS1pZi1ub3QtZXhpc3RzIj4KKyAgICA8dGVybT48bGl0ZXJhbD5JRiBOT1QgRVhJU1RT PC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRG8g bm90IHRocm93IGFuIGVycm9yIGlmIHRoZSBuYW1lIGFscmVhZHkgZXhpc3RzLiBBIG5vdGljZSBp cyBpc3N1ZWQgaW4KKyAgICAgIHRoaXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXZhcmlhYmxlLW5hbWUiPgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBzZXNz aW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtZGF0YV90 eXBlIj4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBl PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBkYXRhIHR5cGUg b2YgdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0 aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3Jl YXRldmFyaWFibGUtY29sbGF0ZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+Q09MTEFURSA8cmVwbGFj ZWFibGU+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+Q09MTEFURTwvbGl0ZXJhbD4g Y2xhdXNlIGFzc2lnbnMgYSBjb2xsYXRpb24gdG8gdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxl ICh3aGljaCBtdXN0IGJlIG9mIGEgY29sbGF0YWJsZSBkYXRhIHR5cGUpLiAgSWYgbm90IHNwZWNp ZmllZCwKKyAgICAgIHRoZSBkYXRhIHR5cGUncyBkZWZhdWx0IGNvbGxhdGlvbiBpcyB1c2VkLgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgIDwv dmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Ob3Rl czwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBVc2UgdGhlIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8 L2NvbW1hbmQ+IGNvbW1hbmQgdG8gcmVtb3ZlIGEgc2Vzc2lvbgorICAgdmFyaWFibGUuCisgIDwv cGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3Rp dGxlPgorCisgIDxwYXJhPgorICAgQ3JlYXRlIGFuIGRhdGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0 ZXJhbD52YXIxPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGRhdGU7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBh cmE+CisgICBUaGUgPGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlz IGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgor ICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNv PC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4K KyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9kcm9wX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dt bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWJkYjM1NjBmMGIKLS0t IC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbApAQCAt MCwwICsxLDExNyBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwK K1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWRyb3B2 YXJpYWJsZSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtZHJvcHZhcmlhYmxlIj4KKyAgPHByaW1h cnk+RFJPUCBWQVJJQUJMRTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+ CisgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+cmVt b3Zpbmc8L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50 cnl0aXRsZT5EUk9QIFZBUklBQkxFPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21h bnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1p c2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5EUk9QIFZB UklBQkxFPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5yZW1vdmUgYSBzZXNzaW9uIHZhcmlhYmxl PC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5v cHNpcz4KK0RST1AgVkFSSUFCTEUgWyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gWyBDQVNDQURFIHwgUkVTVFJJQ1Qg XQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+RFJPUCBWQVJJ QUJMRTwvY29tbWFuZD4gcmVtb3ZlcyBhIHNlc3Npb24gdmFyaWFibGUuCisgICBBIHNlc3Npb24g dmFyaWFibGUgY2FuIG9ubHkgYmUgcmVtb3ZlZCBieSBpdHMgb3duZXIgb3IgYSBzdXBlcnVzZXIu CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1l dGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAg PHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgRG8gbm90IHRocm93IGFuIGVycm9yIGlmIHRoZSBzZXNzaW9u IHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0LiBBIG5vdGljZSBpcworICAgICAgaXNzdWVkIGluIHRo aXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAg PHBhcmE+CisgICAgICBUaGUgbmFtZSwgb3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkLCBvZiBh IHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+Q0FT Q0FERTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IEF1dG9tYXRpY2FsbHkgZHJvcCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRoZSBzZXNzaW9uIHZh cmlhYmxlIChzdWNoIGFzCisgICAgICB2aWV3cyksIGFuZCBpbiB0dXJuIGFsbCBvYmplY3RzIHRo YXQgZGVwZW5kIG9uIHRob3NlIG9iamVjdHMKKyAgICAgIChzZWUgPHhyZWYgbGlua2VuZD0iZGRs LWRlcGVuZCIvPikuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0 ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+UkVTVFJJQ1Q8 L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBSZWZ1 c2UgdG8gZHJvcCB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpZiBhbnkgb2JqZWN0cyBkZXBlbmQgb24g aXQuICBUaGlzIGlzCisgICAgICB0aGUgZGVmYXVsdC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0 MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4K KyAgIFRvIHJlbW92ZSB0aGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFs PjoKKworPHByb2dyYW1saXN0aW5nPgorRFJPUCBWQVJJQUJMRSB2YXIxOworPC9wcm9ncmFtbGlz dGluZz48L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBh dGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkRST1AgVkFSSUFC TEU8L2NvbW1hbmQ+IGNvbW1hbmQgaXMgYQorICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3By b2R1Y3RuYW1lPiBleHRlbnNpb24uCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9Imlu bGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9t ZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwv bWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWZl cmVuY2Uuc2dtbAppbmRleCBmZjg1YWNlODNmYy4uMjU1NzhmMzk0NmMgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNn bWwKQEAgLTc1LDYgKzc1LDcgQEAKICAgICZhbHRlclR5cGU7CiAgICAmYWx0ZXJVc2VyOwogICAg JmFsdGVyVXNlck1hcHBpbmc7CisgICAmYWx0ZXJWYXJpYWJsZTsKICAgICZhbHRlclZpZXc7CiAg ICAmYW5hbHl6ZTsKICAgICZiZWdpbjsKQEAgLTEyNyw2ICsxMjgsNyBAQAogICAgJmNyZWF0ZVR5 cGU7CiAgICAmY3JlYXRlVXNlcjsKICAgICZjcmVhdGVVc2VyTWFwcGluZzsKKyAgICZjcmVhdGVW YXJpYWJsZTsKICAgICZjcmVhdGVWaWV3OwogICAgJmRlYWxsb2NhdGU7CiAgICAmZGVjbGFyZTsK QEAgLTE3NSw2ICsxNzcsNyBAQAogICAgJmRyb3BUeXBlOwogICAgJmRyb3BVc2VyOwogICAgJmRy b3BVc2VyTWFwcGluZzsKKyAgICZkcm9wVmFyaWFibGU7CiAgICAmZHJvcFZpZXc7CiAgICAmZW5k OwogICAgJmV4ZWN1dGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5j IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwppbmRleCBjZDEzOWJkNjVhNi4uMDBlMzYz MGUwZWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwpAQCAtMjc4NCw2ICsyNzg0LDcgQEAgYWNsY2hlY2tf ZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9C SkVDVF9UU1BBUlNFUjoKIAkJCQkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJCQkJY2FzZSBP QkpFQ1RfVVNFUl9NQVBQSU5HOgorCQkJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCQkJCWVs b2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgdHlwZTogJWQiLCBvYmp0eXBlKTsKIAkJCQl9 CiAKQEAgLTI4OTEsNiArMjg5Miw5IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIs IE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfVFNESUNUSU9OQVJZOgogCQkJ CQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHRleHQgc2VhcmNoIGRpY3Rp b25hcnkgJXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJ CQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiBzZXNzaW9uIHZhcmlhYmxl ICVzIik7CisJCQkJCQlicmVhazsKIAogCQkJCQkJLyoKIAkJCQkJCSAqIFNwZWNpYWwgY2FzZXM6 IEZvciB0aGVzZSwgdGhlIGVycm9yIG1lc3NhZ2UgdGFsa3MKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5 LmMKaW5kZXggN2RkZWQ2MzRlYjguLjFkNjJlNjNkNGY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVu Y3kuYwpAQCAtNjUsMTIgKzY1LDE0IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0 ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2NvbW1lbnQuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNp bmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXh0 ZW5zaW9uLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcG9saWN5LmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2NoZW1hY21kcy5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3NlY2xhYmVsLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVu Y2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCkBAIC0xNDQ0LDYgKzE0NDYsMTAg QEAgZG9EZWxldGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGludCBmbGFncykKIAkJ CVJlbW92ZVB1YmxpY2F0aW9uQnlJZChvYmplY3QtPm9iamVjdElkKTsKIAkJCWJyZWFrOwogCisJ CWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJRHJvcFZhcmlhYmxlQnlJZChvYmplY3QtPm9i amVjdElkKTsKKwkJCWJyZWFrOworCiAJCWNhc2UgQ2FzdFJlbGF0aW9uSWQ6CiAJCWNhc2UgQ29s bGF0aW9uUmVsYXRpb25JZDoKIAkJY2FzZSBDb252ZXJzaW9uUmVsYXRpb25JZDoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L25hbWVzcGFjZS5jCmluZGV4IGQyMzQ3NGRhNGZiLi5hYjgzN2EzY2I5ZSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L25hbWVzcGFjZS5jCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19w YXJzZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2lu Y2x1ZGUgImNvbW1vbi9oYXNoZm5fdW5zdGFibGUuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCiAj aW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKQEAgLTIyNCw2ICsyMjUsNyBAQCBzdGF0aWMgYm9vbCBU U1BhcnNlcklzVmlzaWJsZUV4dChPaWQgcHJzSWQsIGJvb2wgKmlzX21pc3NpbmcpOwogc3RhdGlj IGJvb2wgVFNEaWN0aW9uYXJ5SXNWaXNpYmxlRXh0KE9pZCBkaWN0SWQsIGJvb2wgKmlzX21pc3Np bmcpOwogc3RhdGljIGJvb2wgVFNUZW1wbGF0ZUlzVmlzaWJsZUV4dChPaWQgdG1wbElkLCBib29s ICppc19taXNzaW5nKTsKIHN0YXRpYyBib29sIFRTQ29uZmlnSXNWaXNpYmxlRXh0KE9pZCBjZmdp ZCwgYm9vbCAqaXNfbWlzc2luZyk7CitzdGF0aWMgYm9vbCBWYXJpYWJsZUlzVmlzaWJsZUV4dChP aWQgdmFyaWQsIGJvb2wgKmlzX21pc3NpbmcpOwogc3RhdGljIHZvaWQgcmVjb21wdXRlTmFtZXNw YWNlUGF0aCh2b2lkKTsKIHN0YXRpYyB2b2lkIEFjY2Vzc1RlbXBUYWJsZU5hbWVzcGFjZShib29s IGZvcmNlKTsKIHN0YXRpYyB2b2lkIEluaXRUZW1wVGFibGVOYW1lc3BhY2Uodm9pZCk7CkBAIC05 ODUsNiArOTg3LDg0IEBAIFJlbGF0aW9uSXNWaXNpYmxlRXh0KE9pZCByZWxpZCwgYm9vbCAqaXNf bWlzc2luZykKIAlyZXR1cm4gdmlzaWJsZTsKIH0KIAorLyoKKyAqIFZhcmlhYmxlSXNWaXNpYmxl CisgKgkJRGV0ZXJtaW5lIHdoZXRoZXIgYSB2YXJpYWJsZSAoaWRlbnRpZmllZCBieSBPSUQpIGlz IHZpc2libGUgaW4gdGhlCisgKgkJY3VycmVudCBzZWFyY2ggcGF0aC4gVmlzaWJsZSBtZWFucyAi d291bGQgYmUgZm91bmQgYnkgc2VhcmNoaW5nCisgKgkJZm9yIHRoZSB1bnF1YWxpZmllZCB2YXJp YWJsZSBuYW1lIi4KKyAqLworYm9vbAorVmFyaWFibGVJc1Zpc2libGUoT2lkIHZhcmlkKQorewor CXJldHVybiBWYXJpYWJsZUlzVmlzaWJsZUV4dCh2YXJpZCwgTlVMTCk7Cit9CisKKy8qCisgKiBW YXJpYWJsZUlzVmlzaWJsZUV4dAorICoJCUFzIGFib3ZlLCBidXQgaWYgdGhlIHZhcmlhYmxlIGlz bid0IGZvdW5kIGFuZCBpc19taXNzaW5nIGlzIG5vdCBOVUxMLAorICoJCXRoZW4gc2V0ICppc19t aXNzaW5nID0gdHJ1ZSBhbmQgcmV0dXJuIGZhbHNlLCBpbnN0ZWFkIG9mIHRocm93aW5nCisgKgkJ YW4gZXJyb3IuIChDYWxsZXIgbXVzdCBpbml0aWFsaXplICppc19taXNzaW5nID0gZmFsc2UuKQor ICovCitzdGF0aWMgYm9vbAorVmFyaWFibGVJc1Zpc2libGVFeHQoT2lkIHZhcmlkLCBib29sICpp c19taXNzaW5nKQoreworCUhlYXBUdXBsZQl2YXJ0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJm b3JtOworCU9pZAkJCXZhcm5hbWVzcGFjZTsKKwlib29sCQl2aXNpYmxlOworCisJdmFydHVwID0g U2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisJ aWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHZhcnR1cCkpCisJeworCQlpZiAoaXNfbWlzc2luZyAhPSBO VUxMKQorCQl7CisJCQkqaXNfbWlzc2luZyA9IHRydWU7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0K KworCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJs ZSAldSIsIHZhcmlkKTsKKwl9CisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJV Q1QodmFydHVwKTsKKworCXJlY29tcHV0ZU5hbWVzcGFjZVBhdGgoKTsKKworCS8qCisJICogUXVp Y2sgY2hlY2s6IGlmIGl0IGFpbid0IGluIHRoZSBwYXRoIGF0IGFsbCwgaXQgYWluJ3QgdmlzaWJs ZS4gV2UgZG9uJ3QKKwkgKiBleHBlY3QgdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgaW4gdGhl IHN5c3RlbSBuYW1lc3BhY2UuCisJICovCisJdmFybmFtZXNwYWNlID0gdmFyZm9ybS0+dmFybmFt ZXNwYWNlOworCWlmICghbGlzdF9tZW1iZXJfb2lkKGFjdGl2ZVNlYXJjaFBhdGgsIHZhcm5hbWVz cGFjZSkpCisJCXZpc2libGUgPSBmYWxzZTsKKwllbHNlCisJeworCQkvKgorCQkgKiBJZiBpdCBp cyBpbiB0aGUgcGF0aCwgaXQgbWlnaHQgc3RpbGwgbm90IGJlIHZpc2libGU7IGl0IGNvdWxkIGJl CisJCSAqIGhpZGRlbiBieSBhbm90aGVyIHZhcmlhYmxlIG9mIHRoZSBzYW1lIG5hbWUgZWFybGll ciBpbiB0aGUgcGF0aC4gU28KKwkJICogd2UgbXVzdCBkbyBhIHNsb3cgY2hlY2sgZm9yIGNvbmZs aWN0aW5nIHJlbGF0aW9ucy4KKwkJICovCisJCWNoYXIJICAgKnZhcm5hbWUgPSBOYW1lU3RyKHZh cmZvcm0tPnZhcm5hbWUpOworCisJCXZpc2libGUgPSBmYWxzZTsKKwkJZm9yZWFjaF9vaWQobmFt ZXNwYWNlSWQsIGFjdGl2ZVNlYXJjaFBhdGgpCisJCXsKKwkJCWlmIChuYW1lc3BhY2VJZCA9PSB2 YXJuYW1lc3BhY2UpCisJCQl7CisJCQkJLyogZm91bmQgaXQgZmlyc3QgaW4gcGF0aCAqLworCQkJ CXZpc2libGUgPSB0cnVlOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKE9pZElzVmFsaWQoZ2V0 X3Zhcm5hbWVfdmFyaWQodmFybmFtZSwgbmFtZXNwYWNlSWQpKSkKKwkJCXsKKwkJCQkvKiBmb3Vu ZCBzb21ldGhpbmcgZWxzZSBmaXJzdCBpbiBwYXRoICovCisJCQkJYnJlYWs7CisJCQl9CisJCX0K Kwl9CisKKwlSZWxlYXNlU3lzQ2FjaGUodmFydHVwKTsKKworCXJldHVybiB2aXNpYmxlOworfQog CiAvKgogICogVHlwZW5hbWVHZXRUeXBpZApAQCAtMzM1OSw2ICszNDM5LDEzMyBAQCBUU0NvbmZp Z0lzVmlzaWJsZUV4dChPaWQgY2ZnaWQsIGJvb2wgKmlzX21pc3NpbmcpCiAJcmV0dXJuIHZpc2li bGU7CiB9CiAKKy8qCisgKiBSZXR1cm5zIG9pZCBvZiBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmll ZCBieSBwb3NzaWJseSBxdWFsaWZpZWQgaWRlbnRpZmllci4KKyAqCisgKiBJZiBub3QgZm91bmQs IHJldHVybnMgSW52YWxpZE9pZCBpZiBtaXNzaW5nX29rLCBlbHNlIHRocm93cyBlcnJvci4KKyAq LworT2lkCitMb29rdXBWYXJpYWJsZShjb25zdCBjaGFyICpuc3BuYW1lLAorCQkJICAgY29uc3Qg Y2hhciAqdmFybmFtZSwKKwkJCSAgIGJvb2wgbWlzc2luZ19vaykKK3sKKwlPaWQJCQl2YXJvaWQg PSBJbnZhbGlkT2lkOworCisJaWYgKG5zcG5hbWUpCisJeworCQlPaWQJCQluYW1lc3BhY2VJZCA9 IExvb2t1cEV4cGxpY2l0TmFtZXNwYWNlKG5zcG5hbWUsIG1pc3Npbmdfb2spOworCisJCS8qIGlm IG5zcG5hbWUgaXMgYSBrbm93biBuYW1lc3BhY2UsIHRoZSB2YXJpYWJsZSBtdXN0IGJlIHRoZXJl ICovCisJCWlmIChPaWRJc1ZhbGlkKG5hbWVzcGFjZUlkKSkKKwkJeworCQkJdmFyb2lkID0gR2V0 U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFNRU5TUCwgQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJ CQkJCQkgUG9pbnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0 dW0obmFtZXNwYWNlSWQpKTsKKwkJfQorCX0KKwllbHNlCisJeworCQkvKiBpdGVyYXRlIG92ZXIg dGhlIHNjaGVtYXMgb24gdGhlIHNlYXJjaF9wYXRoICovCisJCXJlY29tcHV0ZU5hbWVzcGFjZVBh dGgoKTsKKworCQlmb3JlYWNoX29pZChuYW1lc3BhY2VJZCwgYWN0aXZlU2VhcmNoUGF0aCkKKwkJ eworCQkJdmFyb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFNRU5TUCwgQW51bV9wZ192 YXJpYWJsZV9vaWQsCisJCQkJCQkJCQkgUG9pbnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJCQkJ CQkJIE9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKworCQkJaWYgKE9pZElzVmFsaWQo dmFyb2lkKSkKKwkJCQlicmVhazsKKwkJfQorCX0KKworCWlmICghT2lkSXNWYWxpZCh2YXJvaWQp ICYmICFtaXNzaW5nX29rKQorCXsKKwkJaWYgKG5zcG5hbWUpCisJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJz ZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkJbnNwbmFt ZSwgdmFybmFtZSkpKTsKKwkJZWxzZQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUo RVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJs ZSBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJCXZhcm5hbWUpKSk7CisJfQorCisJcmV0 dXJuIHZhcm9pZDsKK30KKworLyoKKyAqIFJldHVybnMgb2lkIG9mIHNlc3Npb24gdmFyaWFibGUg c3BlY2lmaWVkIGJ5IHBvc3NpYmx5IHF1YWxpZmllZCBpZGVudGlmaWVyCisgKgorICogSWYgbm90 IGZvdW5kLCByZXR1cm5zIEludmFsaWRPaWQgaWYgbWlzc2luZ19vaywgZWxzZSB0aHJvd3MgZXJy b3IuCisgKi8KK09pZAorTG9va3VwVmFyaWFibGVGcm9tTmFtZUxpc3QoTGlzdCAqbmFtZXMsCisJ CQkJCQkgICBib29sIG1pc3Npbmdfb2spCit7CisJY2hhcgkgICAqY2F0bmFtZSA9IE5VTEw7CisJ Y2hhcgkgICAqbnNwbmFtZSA9IE5VTEw7CisJY2hhcgkgICAqdmFybmFtZSA9IE5VTEw7CisKKwlz d2l0Y2ggKGxpc3RfbGVuZ3RoKG5hbWVzKSkKKwl7CisJCWNhc2UgMToKKwkJCXZhcm5hbWUgPSBz dHJWYWwobGluaXRpYWwobmFtZXMpKTsKKwkJCWJyZWFrOworCQljYXNlIDI6CisJCQluc3BuYW1l ID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7CisJCQl2YXJuYW1lID0gc3RyVmFsKGxzZWNvbmQo bmFtZXMpKTsKKwkJCWJyZWFrOworCQljYXNlIDM6CisJCQljYXRuYW1lID0gc3RyVmFsKGxpbml0 aWFsKG5hbWVzKSk7CisJCQluc3BuYW1lID0gc3RyVmFsKGxzZWNvbmQobmFtZXMpKTsKKwkJCXZh cm5hbWUgPSBzdHJWYWwobHRoaXJkKG5hbWVzKSk7CisKKwkJCS8qIGNoZWNrIGNhdGFsb2cgbmFt ZSAqLworCQkJaWYgKHN0cmNtcChjYXRuYW1lLCBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNl SWQpKSAhPSAwKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjcm9zcy1kYXRhYmFzZSByZWZl cmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICVzIiwKKwkJCQkJCQkJTmFtZUxpc3RUb1N0cmlu ZyhuYW1lcykpKSk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiaW1wcm9w ZXIgc2Vzc2lvbiB2YXJpYWJsZSBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAlcyIsCisJ CQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQlicmVhazsKKwl9CisKKwlyZXR1 cm4gTG9va3VwVmFyaWFibGUobnNwbmFtZSwgdmFybmFtZSwgbWlzc2luZ19vayk7Cit9CisKKy8q CisgKiBUaGUgaW5wdXQgbGlzdCBjb250YWlucyBuYW1lcyB3aXRoIGluZGlyZWN0aW9uIGV4cHJl c3Npb25zIHVzZWQgYXMgdGhlIGxlZnQKKyAqIHBhcnQgb2YgTEVUIHN0YXRlbWVudC4gVGhlIGZv bGxvd2luZyByb3V0aW5lIHJldHVybnMgYSBuZXcgbGlzdCB3aXRoIG9ubHkKKyAqIGluaXRpYWwg c3RyaW5ncyAobmFtZXMpIC0gd2l0aG91dCBpbmRpcmVjdGlvbiBleHByZXNzaW9ucy4KKyAqLwor TGlzdCAqCitOYW1lc0Zyb21MaXN0KExpc3QgKm5hbWVzKQoreworCUxpc3RDZWxsICAgKmw7CisJ TGlzdAkgICAqcmVzdWx0ID0gTklMOworCisJZm9yZWFjaChsLCBuYW1lcykKKwl7CisJCU5vZGUJ ICAgKm4gPSBsZmlyc3QobCk7CisKKwkJaWYgKElzQShuLCBTdHJpbmcpKQorCQl7CisJCQlyZXN1 bHQgPSBsYXBwZW5kKHJlc3VsdCwgbik7CisJCX0KKwkJZWxzZQorCQkJYnJlYWs7CisJfQorCisJ cmV0dXJuIHJlc3VsdDsKK30KIAogLyoKICAqIERlY29uc3RydWN0UXVhbGlmaWVkTmFtZQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCBjNzViNzEzMWVkNy4uYWMxZjhhNGRiM2Ig MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBAIC02Miw2ICs2Miw3IEBACiAjaW5j bHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlw ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9leHRlbnNp b24uaCIKQEAgLTYzNSw2ICs2MzYsMjAgQEAgc3RhdGljIGNvbnN0IE9iamVjdFByb3BlcnR5VHlw ZSBPYmplY3RQcm9wZXJ0eVtdID0KIAkJT0JKRUNUX1VTRVJfTUFQUElORywKIAkJZmFsc2UKIAl9 LAorCXsKKwkJInNlc3Npb24gdmFyaWFibGUiLAorCQlWYXJpYWJsZVJlbGF0aW9uSWQsCisJCVZh cmlhYmxlT2lkSW5kZXhJZCwKKwkJVkFSSUFCTEVPSUQsCisJCVZBUklBQkxFTkFNRU5TUCwKKwkJ QW51bV9wZ192YXJpYWJsZV9vaWQsCisJCUFudW1fcGdfdmFyaWFibGVfdmFybmFtZSwKKwkJQW51 bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UsCisJCUFudW1fcGdfdmFyaWFibGVfdmFyb3duZXIs CisJCUFudW1fcGdfdmFyaWFibGVfdmFyYWNsLAorCQlPQkpFQ1RfVkFSSUFCTEUsCisJCXRydWUK Kwl9CiB9OwogCiAvKgpAQCAtODMwLDYgKzg0NSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2Jq ZWN0X3R5cGVfbWFwCiAJfSwKIAl7CiAJCSJzdGF0aXN0aWNzIG9iamVjdCIsIE9CSkVDVF9TVEFU SVNUSUNfRVhUCisJfSwKKwl7CisJCSJzZXNzaW9uIHZhcmlhYmxlIiwgT0JKRUNUX1ZBUklBQkxF CiAJfQogfTsKIApAQCAtODU1LDYgKzg3Myw3IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9v YmplY3RfYWRkcmVzc19hdHRyZGVmKE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJCQkJCQkJCWJv b2wgbWlzc2luZ19vayk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJlc3Nf dHlwZShPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCQkJCQkJCSBUeXBlTmFtZSAqdHlwZW5hbWUs IGJvb2wgbWlzc2luZ19vayk7CitzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJl c3NfdmFyaWFibGUoTGlzdCAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9iamVj dEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX29wY2YoT2JqZWN0VHlwZSBvYmp0eXBlLCBMaXN0 ICpvYmplY3QsCiAJCQkJCQkJCQkJCSBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9iamVjdEFk ZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX29wZl9tZW1iZXIoT2JqZWN0VHlwZSBvYmp0eXBlLApA QCAtMTEyNiw2ICsxMTQ1LDkgQEAgZ2V0X29iamVjdF9hZGRyZXNzKE9iamVjdFR5cGUgb2JqdHlw ZSwgTm9kZSAqb2JqZWN0LAogCQkJCQkJCQkJCQkJCQkJIG1pc3Npbmdfb2spOwogCQkJCWFkZHJl c3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJCWJyZWFrOworCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6 CisJCQkJYWRkcmVzcyA9IGdldF9vYmplY3RfYWRkcmVzc192YXJpYWJsZShjYXN0Tm9kZShMaXN0 LCBvYmplY3QpLCBtaXNzaW5nX29rKTsKKwkJCQlicmVhazsKIAkJCQkvKiBubyBkZWZhdWx0LCB0 byBsZXQgY29tcGlsZXIgd2FybiBhYm91dCBtaXNzaW5nIGNhc2UgKi8KIAkJfQogCkBAIC0yMTAx LDYgKzIxMjMsMjQgQEAgdGV4dGFycmF5X3RvX3N0cnZhbHVlbGlzdChBcnJheVR5cGUgKmFycikK IAlyZXR1cm4gbGlzdDsKIH0KIAorLyoKKyAqIEZpbmQgdGhlIE9iamVjdEFkZHJlc3MgZm9yIGEg c2Vzc2lvbiB2YXJpYWJsZQorICovCitzdGF0aWMgT2JqZWN0QWRkcmVzcworZ2V0X29iamVjdF9h ZGRyZXNzX3ZhcmlhYmxlKExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQoreworCU9iamVj dEFkZHJlc3MgYWRkcmVzczsKKwljaGFyCSAgICpuc3BuYW1lID0gTlVMTDsKKwljaGFyCSAgICp2 YXJuYW1lID0gTlVMTDsKKworCU9iamVjdEFkZHJlc3NTZXQoYWRkcmVzcywgVmFyaWFibGVSZWxh dGlvbklkLCBJbnZhbGlkT2lkKTsKKworCURlY29uc3RydWN0UXVhbGlmaWVkTmFtZShvYmplY3Qs ICZuc3BuYW1lLCAmdmFybmFtZSk7CisJYWRkcmVzcy5vYmplY3RJZCA9IExvb2t1cFZhcmlhYmxl KG5zcG5hbWUsIHZhcm5hbWUsIG1pc3Npbmdfb2spOworCisJcmV0dXJuIGFkZHJlc3M7Cit9CisK IC8qCiAgKiBTUUwtY2FsbGFibGUgdmVyc2lvbiBvZiBnZXRfb2JqZWN0X2FkZHJlc3MKICAqLwpA QCAtMjI5NSw2ICsyMzM1LDcgQEAgcGdfZ2V0X29iamVjdF9hZGRyZXNzKFBHX0ZVTkNUSU9OX0FS R1MpCiAJCWNhc2UgT0JKRUNUX1RBQkNPTlNUUkFJTlQ6CiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6 CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCW9i am5vZGUgPSAoTm9kZSAqKSBuYW1lOwogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19N RVRIT0Q6CkBAIC0yNDY2LDYgKzI1MDcsNyBAQCBjaGVja19vYmplY3Rfb3duZXJzaGlwKE9pZCBy b2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwgT2JqZWN0QWRkcmVzcyBhZGRyZXNzLAogCQljYXNl IE9CSkVDVF9TVEFUSVNUSUNfRVhUOgogCQljYXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNh c2UgT0JKRUNUX1RTQ09ORklHVVJBVElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQlp ZiAoIW9iamVjdF9vd25lcmNoZWNrKGFkZHJlc3MuY2xhc3NJZCwgYWRkcmVzcy5vYmplY3RJZCwg cm9sZWlkKSkKIAkJCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIG9ianR5cGUs CiAJCQkJCQkJICAgTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKSk7CkBA IC0zNDk1LDYgKzM1MzcsMzIgQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRk cmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2Fz ZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQl7CisJCQkJY2hhcgkgICAqbnNwbmFtZTsKKwkJCQlI ZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKworCQkJCXR1cCA9 IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9i amVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwKKwkJCQkJ CSBvYmplY3QtPm9iamVjdElkKTsKKworCQkJCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkg R0VUU1RSVUNUKHR1cCk7CisKKwkJCQlpZiAoVmFyaWFibGVJc1Zpc2libGUob2JqZWN0LT5vYmpl Y3RJZCkpCisJCQkJCW5zcG5hbWUgPSBOVUxMOworCQkJCWVsc2UKKwkJCQkJbnNwbmFtZSA9IGdl dF9uYW1lc3BhY2VfbmFtZSh2YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCisJCQkJYXBwZW5kU3Ry aW5nSW5mbygmYnVmZmVyLCBfKCJzZXNzaW9uIHZhcmlhYmxlICVzIiksCisJCQkJCQkJCSBxdW90 ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihuc3BuYW1lLAorCQkJCQkJCQkJCQkJCQkJTmFtZVN0cih2 YXJmb3JtLT52YXJuYW1lKSkpOworCisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJl YWs7CisJCQl9CisKIAkJY2FzZSBUU1BhcnNlclJlbGF0aW9uSWQ6CiAJCQl7CiAJCQkJSGVhcFR1 cGxlCXR1cDsKQEAgLTQ2NjksNiArNDczNywxMCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24o Y29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJ0cmFuc2Zvcm0iKTsKIAkJCWJyZWFrOwogCisJCWNh c2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVy LCAic2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2co RVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1Iiwgb2JqZWN0LT5jbGFzc0lkKTsK IAl9CkBAIC02MDE5LDYgKzYwOTEsMzMgQEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBP YmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFZhcmlhYmxl UmVsYXRpb25JZDoKKwkJCXsKKwkJCQljaGFyCSAgICpzY2hlbWE7CisJCQkJY2hhcgkgICAqdmFy bmFtZTsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsK KworCQkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1 bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJ CQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxl ICV1IiwKKwkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKworCQkJCXZhcmZvcm0gPSAoRm9ybV9w Z192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwkJCQlzY2hlbWEgPSBnZXRfbmFtZXNwYWNl X25hbWVfb3JfdGVtcCh2YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCQkJCXZhcm5hbWUgPSBOYW1l U3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCAi JXMiLAorCQkJCQkJCQkgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIoc2NoZW1hLCB2YXJuYW1l KSk7CisKKwkJCQlpZiAob2JqbmFtZSkKKwkJCQkJKm9iam5hbWUgPSBsaXN0X21ha2UyKHNjaGVt YSwgcHN0cmR1cCh2YXJuYW1lKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQli cmVhazsKKwkJCX0KKwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9i amVjdCBjbGFzczogJXUiLCBvYmplY3QtPmNsYXNzSWQpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hk ZXBlbmQuYwppbmRleCAxNmUzZTVjNzQ1Ny4uNmUzZTg4MTMzMjggMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3NoZGVwZW5kLmMKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX2Rp Y3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3VzZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNs dWRlICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKQEAgLTE3MTQsNiArMTcxNSw3IEBAIHNo ZGVwUmVhc3NpZ25Pd25lZF9Pd25lcihGb3JtX3BnX3NoZGVwZW5kIHNkZXBGb3JtLCBPaWQgbmV3 cm9sZSkKIAkJY2FzZSBEYXRhYmFzZVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNDb25maWdSZWxhdGlv bklkOgogCQljYXNlIFRTRGljdGlvbmFyeVJlbGF0aW9uSWQ6CisJCWNhc2UgVmFyaWFibGVSZWxh dGlvbklkOgogCQkJQWx0ZXJPYmplY3RPd25lcl9pbnRlcm5hbChzZGVwRm9ybS0+Y2xhc3NpZCwK IAkJCQkJCQkJCSAgc2RlcEZvcm0tPm9iamlkLAogCQkJCQkJCQkJICBuZXdyb2xlKTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvTWFrZWZpbGUKaW5kZXggY2IyZmJkYzdjNjAuLmFlZTQwZTdiZDU5IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9N YWtlZmlsZQpAQCAtNTMsNiArNTMsNyBAQCBPQkpTID0gXAogCXNjaGVtYWNtZHMubyBcCiAJc2Vj bGFiZWwubyBcCiAJc2VxdWVuY2UubyBcCisJc2Vzc2lvbl92YXJpYWJsZS5vIFwKIAlzdGF0c2Nt ZHMubyBcCiAJc3Vic2NyaXB0aW9uY21kcy5vIFwKIAl0YWJsZWNtZHMubyBcCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0 ZXIuYwppbmRleCBjYjc1ZTExZmNlZC4uYWFmNjFhNmY2MWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2FsdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwpA QCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfZGljdC5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfdHNfcGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1w bGF0ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21t YW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbGxhdGlvbmNtZHMuaCIKICNpbmNs dWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCkBAIC0xNDAsNiArMTQxLDEwIEBAIHJlcG9ydF9u YW1lc3BhY2VfY29uZmxpY3QoT2lkIGNsYXNzSWQsIGNvbnN0IGNoYXIgKm5hbWUsIE9pZCBuc3BP aWQpCiAJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BPaWQpKTsKIAkJCW1zZ2ZtdCA9IGdldHRleHRf bm9vcCgidGV4dCBzZWFyY2ggY29uZmlndXJhdGlvbiBcIiVzXCIgYWxyZWFkeSBleGlzdHMgaW4g c2NoZW1hIFwiJXNcIiIpOwogCQkJYnJlYWs7CisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgor CQkJQXNzZXJ0KE9pZElzVmFsaWQobnNwT2lkKSk7CisJCQltc2dmbXQgPSBnZXR0ZXh0X25vb3Ao InNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkgZXhpc3RzIGluIHNjaGVtYSBcIiVzXCIi KTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9i amVjdCBjbGFzczogJXUiLCBjbGFzc0lkKTsKIAkJCWJyZWFrOwpAQCAtNDM1LDYgKzQ0MCw3IEBA IEV4ZWNSZW5hbWVTdG10KFJlbmFtZVN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNUX1RTVEVNUExB VEU6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OOgogCQljYXNlIE9CSkVDVF9TVUJTQ1JJUFRJ T046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJewogCQkJCU9iamVjdEFkZHJlc3MgYWRk cmVzczsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwpAQCAtNTc1LDYgKzU4MSw3IEBAIEV4ZWNBbHRl ck9iamVjdFNjaGVtYVN0bXQoQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10LAogCQljYXNlIE9C SkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNhc2UgT0JKRUNUX1RTUEFSU0VSOgogCQljYXNlIE9CSkVD VF9UU1RFTVBMQVRFOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXsKIAkJCQlSZWxhdGlv bgljYXRhbG9nOwogCQkJCU9pZAkJCWNsYXNzSWQ7CkBAIC02NTcsNiArNjY0LDcgQEAgQWx0ZXJP YmplY3ROYW1lc3BhY2Vfb2lkKE9pZCBjbGFzc0lkLCBPaWQgb2JqaWQsIE9pZCBuc3BPaWQsCiAJ CWNhc2UgVFNEaWN0aW9uYXJ5UmVsYXRpb25JZDoKIAkJY2FzZSBUU1RlbXBsYXRlUmVsYXRpb25J ZDoKIAkJY2FzZSBUU0NvbmZpZ1JlbGF0aW9uSWQ6CisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklk OgogCQkJewogCQkJCVJlbGF0aW9uCWNhdGFsb2c7CiAKQEAgLTg4Nyw2ICs4OTUsNyBAQCBFeGVj QWx0ZXJPd25lclN0bXQoQWx0ZXJPd25lclN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNUX1RBQkxF U1BBQ0U6CiAJCWNhc2UgT0JKRUNUX1RTRElDVElPTkFSWToKIAkJY2FzZSBPQkpFQ1RfVFNDT05G SUdVUkFUSU9OOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXsKIAkJCQlPYmplY3RBZGRy ZXNzIGFkZHJlc3M7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRz LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCmluZGV4IGNlYjlhMjI5YjYzLi5l YmI1ODVkYzRhMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCkBAIC00NzYsNiArNDc2LDEwIEBA IGRvZXNfbm90X2V4aXN0X3NraXBwaW5nKE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0 KQogCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwdWJsaWNhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhp c3QsIHNraXBwaW5nIik7CiAJCQluYW1lID0gc3RyVmFsKG9iamVjdCk7CiAJCQlicmVhazsKKwkJ Y2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQltc2cgPSBnZXR0ZXh0X25vb3AoInNlc3Npb24gdmFy aWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZyIpOworCQkJbmFtZSA9IE5hbWVM aXN0VG9TdHJpbmcoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSk7CisJCQlicmVhazsKIAogCQljYXNl IE9CSkVDVF9DT0xVTU46CiAJCWNhc2UgT0JKRUNUX0RBVEFCQVNFOgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXZlbnRfdHJpZ2dlci5jCmluZGV4IGYzNDg2OGRhNWFiLi42YjQ2YWVhZWY1OSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYwpAQCAtMjI4MSw2ICsyMjgxLDggQEAgc3RyaW5naWZ5 X2dyYW50X29ianR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQkJcmV0dXJuICJUQUJMRVNQQUNF IjsKIAkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCXJldHVybiAiVFlQRSI7CisJCWNhc2UgT0JKRUNU X1ZBUklBQkxFOgorCQkJcmV0dXJuICJWQVJJQUJMRSI7CiAJCQkvKiB0aGVzZSBjdXJyZW50bHkg YXJlbid0IHVzZWQgKi8KIAkJY2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoKIAkJY2FzZSBPQkpF Q1RfQUdHUkVHQVRFOgpAQCAtMjM2NCw2ICsyMzY2LDggQEAgc3RyaW5naWZ5X2FkZWZwcml2c19v Ymp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJCXJldHVybiAiVEFCTEVTUEFDRVMiOwogCQlj YXNlIE9CSkVDVF9UWVBFOgogCQkJcmV0dXJuICJUWVBFUyI7CisJCWNhc2UgT0JKRUNUX1ZBUklB QkxFOgorCQkJcmV0dXJuICJWQVJJQUJMRVMiOwogCQkJLyogdGhlc2UgY3VycmVudGx5IGFyZW4n dCB1c2VkICovCiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CiAJCWNhc2UgT0JKRUNUX0FH R1JFR0FURToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQKaW5kZXggZGQ0Y2RlNDFkMzIuLjEwMWM4 ZDc1ZGQxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZAorKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZApAQCAtNDEsNiArNDEsNyBAQCBiYWNr ZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdzY2hlbWFjbWRzLmMnLAogICAnc2VjbGFiZWwuYycs CiAgICdzZXF1ZW5jZS5jJywKKyAgJ3Nlc3Npb25fdmFyaWFibGUuYycsCiAgICdzdGF0c2NtZHMu YycsCiAgICdzdWJzY3JpcHRpb25jbWRzLmMnLAogICAndGFibGVjbWRzLmMnLApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3NlY2xhYmVsLmMKaW5kZXggY2VlNWQ3YmJiOWMuLjU3YjRlNjcxOWMyIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3NlY2xhYmVsLmMKQEAgLTkyLDYgKzkyLDcgQEAgU2VjTGFiZWxTdXBwb3J0c09iamVjdFR5cGUo T2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9UU1BBUlNFUjoKIAkJY2FzZSBPQkpF Q1RfVFNURU1QTEFURToKIAkJY2FzZSBPQkpFQ1RfVVNFUl9NQVBQSU5HOgorCQljYXNlIE9CSkVD VF9WQVJJQUJMRToKIAkJCXJldHVybiBmYWxzZTsKIAogCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uZjY0MWUwMGMxYWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTAsMCArMSw4OCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg KgorICogc2Vzc2lvbl92YXJpYWJsZS5jCisgKgkgIHNlc3Npb24gdmFyaWFibGUgY3JlYXRpb24v bWFuaXB1bGF0aW9uIGNvbW1hbmRzCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2 LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5p YQorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUg InBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNp bmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAibWlzY2FkbWlu LmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRlICJ1dGlscy9idWls dGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorCisvKgorICogQ3JlYXRlcyBh IG5ldyB2YXJpYWJsZQorICoKKyAqIFVzZWQgYnkgQ1JFQVRFIFZBUklBQkxFIGNvbW1hbmQKKyAq LworT2JqZWN0QWRkcmVzcworQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVh dGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKK3sKKwlPaWQJCQluYW1lc3BhY2VpZDsKKwlBY2xSZXN1 bHQJYWNscmVzdWx0OworCU9pZAkJCXR5cGlkOworCWludDMyCQl0eXBtb2Q7CisJT2lkCQkJdmFy b3duZXIgPSBHZXRVc2VySWQoKTsKKwlPaWQJCQljb2xsYXRpb247CisJT2lkCQkJdHlwY29sbGF0 aW9uOworCU9iamVjdEFkZHJlc3MgdmFyaWFibGU7CisKKwluYW1lc3BhY2VpZCA9CisJCVJhbmdl VmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFjZShzdG10LT52YXJpYWJsZSwgTm9Mb2NrLCBO VUxMKTsKKworCXR5cGVuYW1lVHlwZUlkQW5kTW9kKHBzdGF0ZSwgc3RtdC0+dHlwZU5hbWUsICZ0 eXBpZCwgJnR5cG1vZCk7CisKKwkvKiBkaXNhbGxvdyBwc2V1ZG90eXBlcyAqLworCWlmIChnZXRf dHlwdHlwZSh0eXBpZCkgPT0gVFlQVFlQRV9QU0VVRE8pCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygic2Vzc2lv biB2YXJpYWJsZSBjYW5ub3QgYmUgcHNldWRvLXR5cGUgJXMiLAorCQkJCQkJZm9ybWF0X3R5cGVf YmUodHlwaWQpKSkpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFR5cGVSZWxhdGlv bklkLCB0eXBpZCwgR2V0VXNlcklkKCksIEFDTF9VU0FHRSk7CisJaWYgKGFjbHJlc3VsdCAhPSBB Q0xDSEVDS19PSykKKwkJYWNsY2hlY2tfZXJyb3JfdHlwZShhY2xyZXN1bHQsIHR5cGlkKTsKKwor CXR5cGNvbGxhdGlvbiA9IGdldF90eXBjb2xsYXRpb24odHlwaWQpOworCisJaWYgKHN0bXQtPmNv bGxDbGF1c2UpCisJCWNvbGxhdGlvbiA9IExvb2t1cENvbGxhdGlvbihwc3RhdGUsCisJCQkJCQkJ CQlzdG10LT5jb2xsQ2xhdXNlLT5jb2xsbmFtZSwKKwkJCQkJCQkJCXN0bXQtPmNvbGxDbGF1c2Ut PmxvY2F0aW9uKTsKKwllbHNlCisJCWNvbGxhdGlvbiA9IHR5cGNvbGxhdGlvbjsKKworCS8qIGNv bXBsYWluIGlmIENPTExBVEUgaXMgYXBwbGllZCB0byBhbiB1bmNvbGxhdGFibGUgdHlwZSAqLwor CWlmIChPaWRJc1ZhbGlkKGNvbGxhdGlvbikgJiYgIU9pZElzVmFsaWQodHlwY29sbGF0aW9uKSkK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENI KSwKKwkJCQkgZXJybXNnKCJjb2xsYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHR5cGUgJXMi LAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KHBzdGF0ZSwgc3RtdC0+Y29sbENsYXVzZS0+bG9jYXRpb24pKSk7CisKKwl2YXJpYWJsZSA9IGNy ZWF0ZV92YXJpYWJsZShzdG10LT52YXJpYWJsZS0+cmVsbmFtZSwKKwkJCQkJCQkgICBuYW1lc3Bh Y2VpZCwKKwkJCQkJCQkgICB0eXBpZCwKKwkJCQkJCQkgICB0eXBtb2QsCisJCQkJCQkJICAgdmFy b3duZXIsCisJCQkJCQkJICAgY29sbGF0aW9uLAorCQkJCQkJCSAgIHN0bXQtPmlmX25vdF9leGlz dHMpOworCisJZWxvZyhERUJVRzEsICJyZWNvcmQgZm9yIHNlc3Npb24gdmFyaWFibGUgXCIlc1wi IChvaWQ6JWQpIHdhcyBjcmVhdGVkIGluIHBnX3ZhcmlhYmxlIiwKKwkJIHN0bXQtPnZhcmlhYmxl LT5yZWxuYW1lLCB2YXJpYWJsZS5vYmplY3RJZCk7CisKKwlyZXR1cm4gdmFyaWFibGU7Cit9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDVmZDhiNTEzMTJjLi44YTgwNzE2MWE0MyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJjYXRh bG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9y YWdlX3hsb2cuaCIKICNpbmNsdWRlICJjYXRhbG9nL3RvYXN0aW5nLmgiCkBAIC02OTEyLDYgKzY5 MTMsNyBAQCBBVFR5cGVkVGFibGVSZWN1cnNpb24oTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcmVs LCBBbHRlclRhYmxlQ21kICpjbWQsCiAgKiAocG9zc2libHkgbmVzdGVkIHNldmVyYWwgbGV2ZWxz IGRlZXAgaW4gY29tcG9zaXRlIHR5cGVzLCBhcnJheXMsIGV0YyEpLgogICogRXZlbnR1YWxseSwg d2UnZCBsaWtlIHRvIHByb3BhZ2F0ZSB0aGUgY2hlY2sgb3IgcmV3cml0ZSBvcGVyYXRpb24KICAq IGludG8gc3VjaCB0YWJsZXMsIGJ1dCBmb3Igbm93LCBqdXN0IGVycm9yIG91dCBpZiB3ZSBmaW5k IGFueS4KKyAqIEFsc28sIGNoZWNrIGlmICJ0eXBlT2lkIiBpcyB1c2VkIGFzIHR5cGUgb2Ygc29t ZSBzZXNzaW9uIHZhcmlhYmxlLgogICoKICAqIENhbGxlciBzaG91bGQgcHJvdmlkZSBlaXRoZXIg dGhlIGFzc29jaWF0ZWQgcmVsYXRpb24gb2YgYSByb3d0eXBlLAogICogb3IgYSB0eXBlIG5hbWUg KG5vdCBib3RoKSBmb3IgdXNlIGluIHRoZSBlcnJvciBtZXNzYWdlLCBpZiBhbnkuCkBAIC02OTc1 LDYgKzY5NzcsNDUgQEAgZmluZF9jb21wb3NpdGVfdHlwZV9kZXBlbmRlbmNpZXMoT2lkIHR5cGVP aWQsIFJlbGF0aW9uIG9yaWdSZWxhdGlvbiwKIAkJCWNvbnRpbnVlOwogCQl9CiAKKwkJLyogY2hl Y2sgaWYgdGhlIHR5cGUgaXMgdXNlZCBhcyB0eXBlIG9mIHNvbWUgc2Vzc2lvbiB2YXJpYWJsZSAq LworCQlpZiAocGdfZGVwZW5kLT5jbGFzc2lkID09IFZhcmlhYmxlUmVsYXRpb25JZCkKKwkJewor CQkJT2lkCQkJdmFyaWQgPSBwZ19kZXBlbmQtPm9iamlkOworCisJCQlpZiAob3JpZ1R5cGVOYW1l KQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgdHlwZSBcIiVzXCIgYmVj YXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJb3JpZ1R5 cGVOYW1lLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFy aWQpKSkpOworCQkJZWxzZSBpZiAob3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVM S0lORF9DT01QT1NJVEVfVFlQRSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiY2Fubm90IGFs dGVyIHR5cGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBp dCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdSZWxhdGlvbiksCisJCQkJ CQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFy aWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisJCQll bHNlIGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0ZPUkVJR05f VEFCTEUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVS RV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciBmb3JlaWduIHRh YmxlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAor CQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShvcmlnUmVsYXRpb24pLAorCQkJCQkJCQln ZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSks CisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSkpOworCQkJZWxzZSBp ZiAob3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fAor CQkJCQkgb3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9NQVRWSUVXIHx8 CisJCQkJCSBvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElP TkVEX1RBQkxFKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgdGFibGUg XCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJ CQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdSZWxhdGlvbiksCisJCQkJCQkJCWdldF9u YW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJ CQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisKKwkJCWNvbnRpbnVl OworCQl9CisKIAkJLyogRWxzZSwgaWdub3JlIGRlcGVuZGVlcyB0aGF0IGFyZW4ndCByZWxhdGlv bnMgKi8KIAkJaWYgKHBnX2RlcGVuZC0+Y2xhc3NpZCAhPSBSZWxhdGlvblJlbGF0aW9uSWQpCiAJ CQljb250aW51ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmluZGV4IDU5Nzk1ODAxMzlmLi4wODY2 NmZmN2E4YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBAIC01Myw2ICs1Myw3IEBACiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19yYW5nZS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFi bGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy90 YWJsZWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90eXBlY21kcy5oIgpAQCAtMzM5Miw2ICsz MzkzLDIwIEBAIGdldF9yZWxzX3dpdGhfZG9tYWluKE9pZCBkb21haW5PaWQsIExPQ0tNT0RFIGxv Y2ttb2RlKQogCQkJfQogCQkJY29udGludWU7CiAJCX0KKwkJZWxzZSBpZiAocGdfZGVwZW5kLT5j bGFzc2lkID09IFZhcmlhYmxlUmVsYXRpb25JZCkKKwkJeworCQkJLyoKKwkJCSAqIFdlIGNhbm5v dCB0byB2YWxpZGF0ZSBjb25zdHJhaW50IGluc2lkZSBzZXNzaW9uIHZhcmlhYmxlcyBmcm9tCisJ CQkgKiBvdGhlciBzZXNzaW9ucywgc28gYmV0dGVyIHRvIGZhaWwgaWYgdGhlcmUgYXJlIGFueSBz ZXNzaW9uCisJCQkgKiB2YXJpYWJsZSwgdGhhdCB1c2UgdGhpcyBkb21haW4uCisJCQkgKi8KKwkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9S VEVEKSwKKwkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIGRvbWFpbiBcIiVzXCIgYmVjYXVzZSBz ZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQlkb21haW5UeXBlTmFt ZSwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNw YWNlKHBnX2RlcGVuZC0+b2JqaWQpKSwKKwkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHBnX2RlcGVuZC0+b2JqaWQpKSkpOworCQl9CiAKIAkJLyogRWxzZSwgaWdub3JlIGRlcGVuZGVl cyB0aGF0IGFyZW4ndCB1c2VyIGNvbHVtbnMgb2YgcmVsYXRpb25zICovCiAJCS8qICh3ZSBhc3N1 bWUgc3lzdGVtIGNvbHVtbnMgYXJlIG5ldmVyIG9mIGRvbWFpbiB0eXBlcykgKi8KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 CmluZGV4IGE0YjI5YzgyMmU4Li5jZWUxYmI3OGY3YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC01Miw2ICs1 Miw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190cmlnZ2VyLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJncmFtcGFyc2UuaCIKQEAgLTI5MCw4 ICsyOTEsOCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVs bmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQlDb25zdHJhaW50c1NldFN0bXQg Q29weVN0bXQgQ3JlYXRlQXNTdG10IENyZWF0ZUNhc3RTdG10CiAJCUNyZWF0ZURvbWFpblN0bXQg Q3JlYXRlRXh0ZW5zaW9uU3RtdCBDcmVhdGVHcm91cFN0bXQgQ3JlYXRlT3BDbGFzc1N0bXQKIAkJ Q3JlYXRlT3BGYW1pbHlTdG10IEFsdGVyT3BGYW1pbHlTdG10IENyZWF0ZVBMYW5nU3RtdAotCQlD cmVhdGVTY2hlbWFTdG10IENyZWF0ZVNlcVN0bXQgQ3JlYXRlU3RtdCBDcmVhdGVTdGF0c1N0bXQg Q3JlYXRlVGFibGVTcGFjZVN0bXQKLQkJQ3JlYXRlRmR3U3RtdCBDcmVhdGVGb3JlaWduU2VydmVy U3RtdCBDcmVhdGVGb3JlaWduVGFibGVTdG10CisJCUNyZWF0ZVNjaGVtYVN0bXQgQ3JlYXRlU2Vx U3RtdCBDcmVhdGVTZXNzaW9uVmFyU3RtdCBDcmVhdGVTdG10IENyZWF0ZVN0YXRzU3RtdAorCQlD cmVhdGVUYWJsZVNwYWNlU3RtdCBDcmVhdGVGZHdTdG10IENyZWF0ZUZvcmVpZ25TZXJ2ZXJTdG10 IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQKIAkJQ3JlYXRlQXNzZXJ0aW9uU3RtdCBDcmVhdGVUcmFu c2Zvcm1TdG10IENyZWF0ZVRyaWdTdG10IENyZWF0ZUV2ZW50VHJpZ1N0bXQKIAkJQ3JlYXRlVXNl clN0bXQgQ3JlYXRlVXNlck1hcHBpbmdTdG10IENyZWF0ZVJvbGVTdG10IENyZWF0ZVBvbGljeVN0 bXQKIAkJQ3JlYXRlZGJTdG10IERlY2xhcmVDdXJzb3JTdG10IERlZmluZVN0bXQgRGVsZXRlU3Rt dCBEaXNjYXJkU3RtdCBEb1N0bXQKQEAgLTc4OSw4ICs3OTAsOCBAQCBzdGF0aWMgTm9kZSAqbWFr ZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAq cXVlcnkpOwogCVVFU0NBUEUgVU5CT1VOREVEIFVOQ09ORElUSU9OQUwgVU5DT01NSVRURUQgVU5F TkNSWVBURUQgVU5JT04gVU5JUVVFIFVOS05PV04KIAlVTkxJU1RFTiBVTkxPR0dFRCBVTlRJTCBV UERBVEUgVVNFUiBVU0lORwogCi0JVkFDVVVNIFZBTElEIFZBTElEQVRFIFZBTElEQVRPUiBWQUxV RV9QIFZBTFVFUyBWQVJDSEFSIFZBUklBRElDIFZBUllJTkcKLQlWRVJCT1NFIFZFUlNJT05fUCBW SUVXIFZJRVdTIFZJUlRVQUwgVk9MQVRJTEUKKwlWQUNVVU0gVkFMSUQgVkFMSURBVEUgVkFMSURB VE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFSSUFCTEUKKwlWQVJZSU5HIFZF UkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVklSVFVBTCBWT0xBVElMRQogCiAJV0hFTiBXSEVS RSBXSElURVNQQUNFX1AgV0lORE9XIFdJVEggV0lUSElOIFdJVEhPVVQgV09SSyBXUkFQUEVSIFdS SVRFCiAKQEAgLTEwNTYsNiArMTA1Nyw3IEBAIHN0bXQ6CiAJCQl8IENyZWF0ZVBvbGljeVN0bXQK IAkJCXwgQ3JlYXRlUExhbmdTdG10CiAJCQl8IENyZWF0ZVNjaGVtYVN0bXQKKwkJCXwgQ3JlYXRl U2Vzc2lvblZhclN0bXQKIAkJCXwgQ3JlYXRlU2VxU3RtdAogCQkJfCBDcmVhdGVTdG10CiAJCQl8 IENyZWF0ZVN1YnNjcmlwdGlvblN0bXQKQEAgLTE2MzMsNiArMTYzNSw3IEBAIHNjaGVtYV9zdG10 OgogCQkJfCBDcmVhdGVUcmlnU3RtdAogCQkJfCBHcmFudFN0bXQKIAkJCXwgVmlld1N0bXQKKwkJ CXwgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAkJOwogCiAKQEAgLTUzMTUsNiArNTMxOCwzNCBAQCBj cmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgogCQkJCX0KIAkJOwogCisvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKyAqCisgKgkJUVVFUlkgOgorICoJCQkJQ1JFQVRFIFZBUklBQkxFIHZhcm5hbWUgW0FT XSB0eXBlCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitDcmVhdGVTZXNzaW9uVmFyU3Rt dDoKKwkJCUNSRUFURSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0 X2NvbGxhdGVfY2xhdXNlCisJCQkJeworCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1h a2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKKwkJCQkJbi0+dmFyaWFibGUgPSAkMzsKKwkJ CQkJbi0+dHlwZU5hbWUgPSAkNTsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNl ICopICQ2OworCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUg KikgbjsKKwkJCQl9CisJCQl8IENSRUFURSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlm aWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZQorCQkJCXsKKwkJCQkJ Q3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7 CisJCQkJCW4tPnZhcmlhYmxlID0gJDY7CisJCQkJCW4tPnR5cGVOYW1lID0gJDg7CisJCQkJCW4t PmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkOTsKKwkJCQkJbi0+aWZfbm90X2V4aXN0 cyA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKwogLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUgVVBEQVRFIFsgVE8gdmVy c2lvbiBdCkBAIC03MTI2LDYgKzcxNTcsNyBAQCBvYmplY3RfdHlwZV9hbnlfbmFtZToKIAkJCXwg VEVYVF9QIFNFQVJDSCBESUNUSU9OQVJZCQkJCXsgJCQgPSBPQkpFQ1RfVFNESUNUSU9OQVJZOyB9 CiAJCQl8IFRFWFRfUCBTRUFSQ0ggVEVNUExBVEUJCQkJeyAkJCA9IE9CSkVDVF9UU1RFTVBMQVRF OyB9CiAJCQl8IFRFWFRfUCBTRUFSQ0ggQ09ORklHVVJBVElPTgkJCXsgJCQgPSBPQkpFQ1RfVFND T05GSUdVUkFUSU9OOyB9CisJCQl8IFZBUklBQkxFCQkJCQkJCQl7ICQkID0gT0JKRUNUX1ZBUklB QkxFOyB9CiAJCTsKIAogLyoKQEAgLTEwMDYxLDYgKzEwMDkzLDI0IEBAIFJlbmFtZVN0bXQ6IEFM VEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBSRU5BTUUgVE8gbmFtZQogCQkJ CQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJ CQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIFJFTkFNRSBUTyBuYW1lCisJCQkJeworCQkJCQlS ZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CisJCQkJCW4tPnJlbmFtZVR5cGUg PSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQzOworCQkJCQlu LT5uZXduYW1lID0gJDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAo Tm9kZSAqKW47CisJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBJRl9QIEVYSVNUUyBhbnlfbmFt ZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VOb2RlKFJl bmFtZVN0bXQpOworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQlu LT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3bmFtZSA9ICQ4OworCQkJCQluLT5t aXNzaW5nX29rID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQogCQk7CiAKIG9w dF9jb2x1bW46IENPTFVNTgpAQCAtMTA0MjIsNiArMTA0NzIsMjQgQEAgQWx0ZXJPYmplY3RTY2hl bWFTdG10OgogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikg bjsKIAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIFNFVCBTQ0hFTUEgbmFtZQor CQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPYmpl Y3RTY2hlbWFTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJ CQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld3NjaGVtYSA9ICQ2OworCQkJ CQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KKwkJ CXwgQUxURVIgVkFSSUFCTEUgSUZfUCBFWElTVFMgYW55X25hbWUgU0VUIFNDSEVNQSBuYW1lCisJ CQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck9iamVj dFNjaGVtYVN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJ CQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDg7CisJCQkJ CW4tPm1pc3Npbmdfb2sgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCTsK IAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMDcwMyw2ICsxMDc3MSwxNCBAQCBBbHRlck93 bmVyU3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIE9XTkVSIFRP IFJvbGVTcGVjCiAJCQkJCW4tPm5ld293bmVyID0gJDY7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsK IAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIE9XTkVSIFRPIFJvbGVTcGVjCisJ CQkJeworCQkJCQlBbHRlck93bmVyU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT3duZXJTdG10KTsK KwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0g KE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld293bmVyID0gJDY7CisJCQkJCSQkID0gKE5vZGUgKilu OworCQkJCX0KIAkJOwogCiAKQEAgLTE4MTEzLDYgKzE4MTg5LDcgQEAgdW5yZXNlcnZlZF9rZXl3 b3JkOgogCQkJfCBWQUxJREFURQogCQkJfCBWQUxJREFUT1IKIAkJCXwgVkFMVUVfUAorCQkJfCBW QVJJQUJMRQogCQkJfCBWQVJZSU5HCiAJCQl8IFZFUlNJT05fUAogCQkJfCBWSUVXCkBAIC0xODc2 OSw2ICsxODg0Niw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgVkFMVUVfUAogCQkJfCBW QUxVRVMKIAkJCXwgVkFSQ0hBUgorCQkJfCBWQVJJQUJMRQogCQkJfCBWQVJJQURJQwogCQkJfCBW RVJCT1NFCiAJCQl8IFZFUlNJT05fUApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3V0aWxjbWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKaW5kZXgg ZTk2YjM4YTU5ZDUuLjA1OWQ4ZjdmMTgwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdXRpbGNtZC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMK QEAgLTEwNSw2ICsxMDUsNyBAQCB0eXBlZGVmIHN0cnVjdAogCUxpc3QJICAgKmluZGV4ZXM7CQkv KiBDUkVBVEUgSU5ERVggaXRlbXMgKi8KIAlMaXN0CSAgICp0cmlnZ2VyczsJCS8qIENSRUFURSBU UklHR0VSIGl0ZW1zICovCiAJTGlzdAkgICAqZ3JhbnRzOwkJCS8qIEdSQU5UIGl0ZW1zICovCisJ TGlzdAkgICAqdmFyaWFibGVzOwkJLyogQ1JFQVRFIFZBUklBQkxFIGl0ZW1zICovCiB9IENyZWF0 ZVNjaGVtYVN0bXRDb250ZXh0OwogCiAKQEAgLTQxMTIsNiArNDExMyw3IEBAIHRyYW5zZm9ybUNy ZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFyICpzY2hl bWFOYW1lKQogCWN4dC5pbmRleGVzID0gTklMOwogCWN4dC50cmlnZ2VycyA9IE5JTDsKIAljeHQu Z3JhbnRzID0gTklMOworCWN4dC52YXJpYWJsZXMgPSBOSUw7CiAKIAkvKgogCSAqIFJ1biB0aHJv dWdoIGVhY2ggc2NoZW1hIGVsZW1lbnQgaW4gdGhlIHNjaGVtYSBlbGVtZW50IGxpc3QuIFNlcGFy YXRlCkBAIC00MTgwLDYgKzQxODIsMTUgQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1l bnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJCQkJY3h0Lmdy YW50cyA9IGxhcHBlbmQoY3h0LmdyYW50cywgZWxlbWVudCk7CiAJCQkJYnJlYWs7CiAKKwkJCWNh c2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Npb25WYXJT dG10ICplbHAgPSAoQ3JlYXRlU2Vzc2lvblZhclN0bXQgKikgZWxlbWVudDsKKworCQkJCQlzZXRT Y2hlbWFOYW1lKGN4dC5zY2hlbWFuYW1lLCAmZWxwLT52YXJpYWJsZS0+c2NoZW1hbmFtZSk7CisJ CQkJCWN4dC52YXJpYWJsZXMgPSBsYXBwZW5kKGN4dC52YXJpYWJsZXMsIGVsZW1lbnQpOworCQkJ CX0KKwkJCQlicmVhazsKKwogCQkJZGVmYXVsdDoKIAkJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25p emVkIG5vZGUgdHlwZTogJWQiLAogCQkJCQkgKGludCkgbm9kZVRhZyhlbGVtZW50KSk7CkBAIC00 MTkzLDYgKzQyMDQsNyBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoTGlzdCAq c2NoZW1hRWx0cywgY29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAlyZXN1bHQgPSBsaXN0X2NvbmNh dChyZXN1bHQsIGN4dC5pbmRleGVzKTsKIAlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4 dC50cmlnZ2Vycyk7CiAJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQuZ3JhbnRzKTsK KwlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4dC52YXJpYWJsZXMpOwogCiAJcmV0dXJu IHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3Jj L2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXggOTE4ZGI1M2RkNWUuLjFhMGUxMWJhNzAxIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYwpAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL3NjaGVt YWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZWNsYWJlbC5oIgogI2luY2x1ZGUgImNvbW1h bmRzL3NlcXVlbmNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5k cy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCkBAIC0xODIs NiArMTgzLDcgQEAgQ2xhc3NpZnlVdGlsaXR5Q29tbWFuZEFzUmVhZE9ubHkoTm9kZSAqcGFyc2V0 cmVlKQogCQljYXNlIFRfQ3JlYXRlUmFuZ2VTdG10OgogCQljYXNlIFRfQ3JlYXRlUm9sZVN0bXQ6 CiAJCWNhc2UgVF9DcmVhdGVTY2hlbWFTdG10OgorCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0 bXQ6CiAJCWNhc2UgVF9DcmVhdGVTZXFTdG10OgogCQljYXNlIFRfQ3JlYXRlU3RhdHNTdG10Ogog CQljYXNlIFRfQ3JlYXRlU3RtdDoKQEAgLTEzODAsNiArMTM4MiwxMCBAQCBQcm9jZXNzVXRpbGl0 eVNsb3coUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCX0KIAkJCQlicmVhazsKIAorCQkJY2FzZSBU X0NyZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJCWFkZHJlc3MgPSBDcmVhdGVWYXJpYWJsZShwc3Rh dGUsIChDcmVhdGVTZXNzaW9uVmFyU3RtdCAqKSBwYXJzZXRyZWUpOworCQkJCWJyZWFrOworCiAJ CQkJLyoKIAkJCQkgKiAqKioqKioqKioqKioqIG9iamVjdCBjcmVhdGlvbiAvIGRlc3RydWN0aW9u ICoqKioqKioqKioqKioqCiAJCQkJICovCkBAIC0yMzMzLDYgKzIzMzksOSBAQCBBbHRlck9iamVj dFR5cGVDb21tYW5kVGFnKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfU1RBVElT VElDX0VYVDoKIAkJCXRhZyA9IENNRFRBR19BTFRFUl9TVEFUSVNUSUNTOwogCQkJYnJlYWs7CisJ CWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJdGFnID0gQ01EVEFHX0FMVEVSX1ZBUklBQkxFOwor CQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCWJyZWFr OwpAQCAtMjY0MSw2ICsyNjUwLDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUp CiAJCQkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJCQkJdGFnID0gQ01EVEFHX0RST1Bf U1RBVElTVElDUzsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQkJ CXRhZyA9IENNRFRBR19EUk9QX1ZBUklBQkxFOworCQkJCQlicmVhazsKIAkJCQlkZWZhdWx0Ogog CQkJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCX0KQEAgLTMyMTcsNiArMzIyOSwxMCBAQCBD cmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNh c2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCXRhZyA9IENNRFRBR19DUkVBVEVfVkFSSUFC TEU7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJZWxvZyhXQVJOSU5HLCAidW5yZWNvZ25p emVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBub2RlVGFnKHBhcnNldHJlZSkpOwpAQCAt Mzc1MSw2ICszNzY3LDEwIEBAIEdldENvbW1hbmRMb2dMZXZlbChOb2RlICpwYXJzZXRyZWUpCiAJ CQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQlsZXYg PSBMT0dTVE1UX0RETDsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9nKFdBUk5JTkcs ICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVUYWcocGFyc2V0 cmVlKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCmluZGV4IGZhN2NkN2UwNmE3Li4x YzQwMzFlZWEyMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hl LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKQEAgLTQwLDYgKzQw LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5j bHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2lu Y2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCkBAIC0z ODgxLDMgKzM4ODIsNjcgQEAgZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBt aXNzaW5nX29rKQogCiAJcmV0dXJuIHN1Ym5hbWU7CiB9CisKKy8qCQkJCS0tLS0tLS0tLS0gUEdf VkFSSUFCTEUgQ0FDSEUgLS0tLS0tLS0tLQkJCQkgKi8KKworLyoKKyAqIGdldF92YXJuYW1lX3Zh cmlkCisgKgkJR2l2ZW4gbmFtZSBhbmQgbmFtZXNwYWNlIG9mIHZhcmlhYmxlLCBsb29rIHVwIHRo ZSBPSUQuCisgKi8KK09pZAorZ2V0X3Zhcm5hbWVfdmFyaWQoY29uc3QgY2hhciAqdmFybmFtZSwg T2lkIHZhcm5hbWVzcGFjZSkKK3sKKwlyZXR1cm4gR2V0U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFN RU5TUCwgQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJCQkgICBQb2ludGVyR2V0RGF0dW0odmFy bmFtZSksCisJCQkJCQkgICBPYmplY3RJZEdldERhdHVtKHZhcm5hbWVzcGFjZSkpOworfQorCisv KgorICogZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZQorICoJCVJldHVybnMgYSBwYWxsb2MnZCBj b3B5IG9mIHRoZSBuYW1lIG9mIGEgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworY2hhciAq CitnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVw OworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwljaGFyCSAgICp2YXJuYW1lOworCisJdHVw ID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7 CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxv b2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3Jt ID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFybmFtZSA9IHBzdHJk dXAoTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsK KworCXJldHVybiB2YXJuYW1lOworfQorCisvKgorICogZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZXNwYWNlCisgKgkJUmV0dXJucyB0aGUgcGdfbmFtZXNwYWNlIE9JRCBhc3NvY2lhdGVkIHdpdGgg YSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlLgorICovCitPaWQKK2dldF9zZXNzaW9uX3ZhcmlhYmxl X25hbWVzcGFjZShPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3Zhcmlh YmxlIHZhcmZvcm07CisJT2lkCQkJdmFybmFtZXNwYWNlOworCisJdHVwID0gU2VhcmNoU3lzQ2Fj aGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBU dXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9y IHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBH RVRTVFJVQ1QodHVwKTsKKworCXZhcm5hbWVzcGFjZSA9IHZhcmZvcm0tPnZhcm5hbWVzcGFjZTsK KworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIHZhcm5hbWVzcGFjZTsKK30KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IGYxNDIzZjI4YzMyLi5kMTJjM2I5NTdiNyAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL25hbWVzcGFjZS5oCkBAIC0xMTUsNiArMTE1LDggQEAgZXh0ZXJuIE9pZAlUeXBlbmFt ZUdldFR5cGlkKGNvbnN0IGNoYXIgKnR5cG5hbWUpOwogZXh0ZXJuIE9pZAlUeXBlbmFtZUdldFR5 cGlkRXh0ZW5kZWQoY29uc3QgY2hhciAqdHlwbmFtZSwgYm9vbCB0ZW1wX29rKTsKIGV4dGVybiBi b29sIFR5cGVJc1Zpc2libGUoT2lkIHR5cGlkKTsKIAorZXh0ZXJuIGJvb2wgVmFyaWFibGVJc1Zp c2libGUoT2lkIHZhcmlkKTsKKwogZXh0ZXJuIEZ1bmNDYW5kaWRhdGVMaXN0IEZ1bmNuYW1lR2V0 Q2FuZGlkYXRlcyhMaXN0ICpuYW1lcywKIAkJCQkJCQkJCQkJICAgaW50IG5hcmdzLCBMaXN0ICph cmduYW1lcywKIAkJCQkJCQkJCQkJICAgYm9vbCBleHBhbmRfdmFyaWFkaWMsCkBAIC0xODksNiAr MTkxLDEwIEBAIGV4dGVybiBTZWFyY2hQYXRoTWF0Y2hlciAqR2V0U2VhcmNoUGF0aE1hdGNoZXIo TWVtb3J5Q29udGV4dCBjb250ZXh0KTsKIGV4dGVybiBTZWFyY2hQYXRoTWF0Y2hlciAqQ29weVNl YXJjaFBhdGhNYXRjaGVyKFNlYXJjaFBhdGhNYXRjaGVyICpwYXRoKTsKIGV4dGVybiBib29sIFNl YXJjaFBhdGhNYXRjaGVzQ3VycmVudEVudmlyb25tZW50KFNlYXJjaFBhdGhNYXRjaGVyICpwYXRo KTsKIAorZXh0ZXJuIExpc3QgKk5hbWVzRnJvbUxpc3QoTGlzdCAqbmFtZXMpOworZXh0ZXJuIE9p ZAlMb29rdXBWYXJpYWJsZShjb25zdCBjaGFyICpuc3BuYW1lLCBjb25zdCBjaGFyICp2YXJuYW1l LCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIE9pZAlMb29rdXBWYXJpYWJsZUZyb21OYW1lTGlz dChMaXN0ICpuYW1lcywgYm9vbCBtaXNzaW5nX29rKTsKKwogZXh0ZXJuIE9pZAlnZXRfY29sbGF0 aW9uX29pZChMaXN0ICpjb2xsbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0 X2NvbnZlcnNpb25fb2lkKExpc3QgKmNvbm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4g T2lkCUZpbmREZWZhdWx0Q29udmVyc2lvblByb2MoaW50MzIgZm9yX2VuY29kaW5nLCBpbnQzMiB0 b19lbmNvZGluZyk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQ5ZjM2YWM2ODg1Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0wLDAg KzEsMjQgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHNlc3Npb252YXJpYWJsZS5oCisg KgkgIHByb3RvdHlwZXMgZm9yIHNlc3Npb252YXJpYWJsZS5jLgorICoKKyAqCisgKiBQb3J0aW9u cyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQg R3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5p dmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lmbmRlZiBTRVNT SU9OVkFSSUFCTEVfSAorI2RlZmluZSBTRVNTSU9OVkFSSUFCTEVfSAorCisjaW5jbHVkZSAiY2F0 YWxvZy9vYmplY3RhZGRyZXNzLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX25vZGUuaCIKKyNp bmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCisKK2V4dGVybiBPYmplY3RBZGRyZXNzIENyZWF0 ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQp OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBlY2JkZGQxMmUxYi4uNmRkZTAx ZjJjN2IgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTIzNzMsNiArMjM3Myw3IEBAIHR5cGVk ZWYgZW51bSBPYmplY3RUeXBlCiAJT0JKRUNUX1RTVEVNUExBVEUsCiAJT0JKRUNUX1RZUEUsCiAJ T0JKRUNUX1VTRVJfTUFQUElORywKKwlPQkpFQ1RfVkFSSUFCTEUsCiAJT0JKRUNUX1ZJRVcsCiB9 IE9iamVjdFR5cGU7CiAKQEAgLTM1NTUsNiArMzU1NiwyMSBAQCB0eXBlZGVmIHN0cnVjdCBBbHRl clN0YXRzU3RtdAogCWJvb2wJCW1pc3Npbmdfb2s7CQkvKiBza2lwIGVycm9yIGlmIHN0YXRpc3Rp Y3Mgb2JqZWN0IGlzIG1pc3NpbmcgKi8KIH0gQWx0ZXJTdGF0c1N0bXQ7CiAKKworLyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICoJCXtDcmVhdGV8QWx0ZXJ9IFZBUklBQkxFIFN0YXRlbWVudAor ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNz aW9uVmFyU3RtdAoreworCU5vZGVUYWcJCXR5cGU7CisJUmFuZ2VWYXIgICAqdmFyaWFibGU7CQkv KiB0aGUgdmFyaWFibGUgdG8gY3JlYXRlICovCisJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0 aGUgdHlwZSBvZiB2YXJpYWJsZSAqLworCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CisJYm9v bAkJaWZfbm90X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLwor fSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKKworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg KgkJQ3JlYXRlIEZ1bmN0aW9uIFN0YXRlbWVudAogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFy c2VyL2t3bGlzdC5oCmluZGV4IDg0MTgyZWFhYWUyLi41ZTZkM2FmZjhhZiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xp c3QuaApAQCAtNDg4LDYgKzQ4OCw3IEBAIFBHX0tFWVdPUkQoInZhbGlkYXRvciIsIFZBTElEQVRP UiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFsdWUiLCBW QUxVRV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YWx1 ZXMiLCBWQUxVRVMsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2 YXJjaGFyIiwgVkFSQ0hBUiwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdP UkQoInZhcmlhYmxlIiwgVkFSSUFCTEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkK IFBHX0tFWVdPUkQoInZhcmlhZGljIiwgVkFSSUFESUMsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJ5aW5nIiwgVkFSWUlORywgVU5SRVNFUlZFRF9LRVlXT1JE LCBBU19MQUJFTCkKIFBHX0tFWVdPUkQoInZlcmJvc2UiLCBWRVJCT1NFLCBUWVBFX0ZVTkNfTkFN RV9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0 YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCBkMjUwYTcxNGQ1 OS4uZWE4Njk1NGRkZWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5o CisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC02OCw2ICs2OCw3IEBAIFBH X0NNRFRBRyhDTURUQUdfQUxURVJfVFJBTlNGT1JNLCAiQUxURVIgVFJBTlNGT1JNIiwgdHJ1ZSwg ZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9UUklHR0VSLCAiQUxURVIgVFJJ R0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVFlQRSwg IkFMVEVSIFRZUEUiLCB0cnVlLCB0cnVlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJf VVNFUl9NQVBQSU5HLCAiQUxURVIgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQor UEdfQ01EVEFHKENNRFRBR19BTFRFUl9WQVJJQUJMRSwgIkFMVEVSIFZBUklBQkxFIiwgdHJ1ZSwg ZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9WSUVXLCAiQUxURVIgVklFVyIs IHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQU5BTFlaRSwgIkFOQUxZWkUi LCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19CRUdJTiwgIkJFR0lOIiwg ZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAgLTEyMyw2ICsxMjQsNyBAQCBQR19DTURUQUcoQ01EVEFH X0NSRUFURV9UUkFOU0ZPUk0sICJDUkVBVEUgVFJBTlNGT1JNIiwgdHJ1ZSwgZmFsc2UsIGZhbHNl KQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVFJJR0dFUiwgIkNSRUFURSBUUklHR0VSIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVFlQRSwgIkNSRUFURSBU WVBFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVVNFUl9N QVBQSU5HLCAiQ1JFQVRFIFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NN RFRBRyhDTURUQUdfQ1JFQVRFX1ZBUklBQkxFLCAiQ1JFQVRFIFZBUklBQkxFIiwgdHJ1ZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVklFVywgIkNSRUFURSBWSUVXIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ERUFMTE9DQVRFLCAiREVBTExP Q0FURSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RFQUxMT0NBVEVf QUxMLCAiREVBTExPQ0FURSBBTEwiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTc1LDYgKzE3 Nyw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9UUkFOU0ZPUk0sICJEUk9QIFRSQU5TRk9STSIs IHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9UUklHR0VSLCAiRFJP UCBUUklHR0VSIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1RZ UEUsICJEUk9QIFRZUEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RS T1BfVVNFUl9NQVBQSU5HLCAiRFJPUCBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxzZSwgZmFsc2Up CitQR19DTURUQUcoQ01EVEFHX0RST1BfVkFSSUFCTEUsICJEUk9QIFZBUklBQkxFIiwgdHJ1ZSwg ZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1ZJRVcsICJEUk9QIFZJRVciLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0VYRUNVVEUsICJFWEVDVVRFIiwg ZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRVhQTEFJTiwgIkVYUExBSU4i LCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5 c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAppbmRleCA1MGZiMTQ5ZTlh Yy4uMDNjNGM1ODU4MGUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5o CisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCkBAIC0xMzksNiArMTM5LDcgQEAg ZXh0ZXJuIGNoYXIgZ2V0X2Z1bmNfcHJva2luZChPaWQgZnVuY2lkKTsKIGV4dGVybiBib29sIGdl dF9mdW5jX2xlYWtwcm9vZihPaWQgZnVuY2lkKTsKIGV4dGVybiBSZWdQcm9jZWR1cmUgZ2V0X2Z1 bmNfc3VwcG9ydChPaWQgZnVuY2lkKTsKIGV4dGVybiBPaWQJZ2V0X3JlbG5hbWVfcmVsaWQoY29u c3QgY2hhciAqcmVsbmFtZSwgT2lkIHJlbG5hbWVzcGFjZSk7CitleHRlcm4gT2lkCWdldF92YXJu YW1lX3ZhcmlkKGNvbnN0IGNoYXIgKnZhcm5hbWUsIE9pZCB2YXJuYW1lc3BhY2UpOwogZXh0ZXJu IGNoYXIgKmdldF9yZWxfbmFtZShPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmVsX25hbWVz cGFjZShPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmVsX3R5cGVfaWQoT2lkIHJlbGlkKTsK QEAgLTIxMSw2ICsyMTIsOSBAQCBleHRlcm4gY2hhciAqZ2V0X3B1YmxpY2F0aW9uX25hbWUoT2lk IHB1YmlkLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlnZXRfc3Vic2NyaXB0aW9uX29p ZChjb25zdCBjaGFyICpzdWJuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIGNoYXIgKmdl dF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vayk7CiAKK2V4dGVy biBjaGFyICpnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCk7CitleHRlcm4gT2lk CWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShPaWQgdmFyaWQpOworCiAjZGVmaW5lIHR5 cGVfaXNfYXJyYXkodHlwaWQpICAoZ2V0X2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9p ZCkKIC8qIHR5cGVfaXNfYXJyYXlfZG9tYWluIGFjY2VwdHMgYm90aCBwbGFpbiBhcnJheXMgYW5k IGRvbWFpbnMgb3ZlciBhcnJheXMgKi8KICNkZWZpbmUgdHlwZV9pc19hcnJheV9kb21haW4odHlw aWQpICAoZ2V0X2Jhc2VfZWxlbWVudF90eXBlKHR5cGlkKSAhPSBJbnZhbGlkT2lkKQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQKaW5kZXggNzVhMDc4YWRhOWUuLmNkOGU0 NDEyZmE5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3ku b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQKQEAgLTE1 MSwzICsxNTEsMjAgQEAgb3duZXIgb2YgdHlwZSBkZXB0ZXN0X3QKIERST1AgT1dORUQgQlkgcmVn cmVzc19kZXBfdXNlcjIsIHJlZ3Jlc3NfZGVwX3VzZXIwOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVw X3VzZXIyOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIwOworLS0gZGVwZW5kZW5jeSBvbiB0 eXBlCitDUkVBVEUgRE9NQUlOIHZhcmRvbWFpbiBBUyBpbnQ7CitDUkVBVEUgVFlQRSB2YXJ0eXBl IEFTIChhIGludCwgYiBpbnQsIGMgdmFyZG9tYWluKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IHZhcnR5cGU7CistLSBzaG91bGQgZmFpbAorRFJPUCBET01BSU4gdmFyZG9tYWluOworRVJST1I6 ICBjYW5ub3QgZHJvcCB0eXBlIHZhcmRvbWFpbiBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5k IG9uIGl0CitERVRBSUw6ICBjb2x1bW4gYyBvZiBjb21wb3NpdGUgdHlwZSB2YXJ0eXBlIGRlcGVu ZHMgb24gdHlwZSB2YXJkb21haW4KK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9w IHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitEUk9QIFRZUEUgdmFydHlwZTsKK0VSUk9SOiAg Y2Fubm90IGRyb3AgdHlwZSB2YXJ0eXBlIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24g aXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIHR5cGUgdmFydHlw ZQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmpl Y3RzIHRvby4KKy0tIGNsZWFuIHVwCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdmFy dHlwZTsKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uOWM3NTk1ZTlhNDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQKQEAgLTAsMCArMSwx NjMgQEAKK1NFVCBsb2dfc3RhdGVtZW50IFRPIGRkbDsKK0NSRUFURSBWQVJJQUJMRSBkZGx0ZXN0 X3Nlc3ZhcjAxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuZGRsdGVzdF9zZXN2YXIw MiBBUyBpbnQ7CitDUkVBVEUgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsOworQ1JFQVRFIFZBUklBQkxF IHNlc3ZhcnRlc3RfZGRsLmRkbHRlc3Rfc2VzdmFyMDMgQVMgaW50OworU0VMRUNUIHBnX2lkZW50 aWZ5X29iamVjdF9hc19hZGRyZXNzKGNsYXNzaWQsIG9iamlkLCBvYmpzdWJpZCkKKyAgRlJPTSBw Z19nZXRfb2JqZWN0X2FkZHJlc3MoJ3Nlc3Npb24gdmFyaWFibGUnLCAne2RkbHRlc3Rfc2VzdmFy MDF9JywgJ3t9Jyk7CisgICAgICAgICAgICBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcyAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAoInNlc3Npb24gdmFyaWFibGUiLCJ7cHVibGljLGRkbHRlc3Rfc2VzdmFyMDF9 Iix7fSkKKygxIHJvdykKKworU0VMRUNUIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzKGNs YXNzaWQsIG9iamlkLCBvYmpzdWJpZCkKKyAgRlJPTSBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ3Nl c3Npb24gdmFyaWFibGUnLCAne3B1YmxpYyxkZGx0ZXN0X3Nlc3ZhcjAyfScsICd7fScpOworICAg ICAgICAgICAgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKCJzZXNz aW9uIHZhcmlhYmxlIiwie3B1YmxpYyxkZGx0ZXN0X3Nlc3ZhcjAyfSIse30pCisoMSByb3cpCisK K1NFTEVDVCBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcyhjbGFzc2lkLCBvYmppZCwgb2Jq c3ViaWQpCisgIEZST00gcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdzZXNzaW9uIHZhcmlhYmxlJywg J3tzZXN2YXJ0ZXN0X2RkbCxkZGx0ZXN0X3Nlc3ZhcjAzfScsICd7fScpOworICAgICAgICAgICAg ICAgIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICgic2Vzc2lvbiB2YXJpYWJsZSIsIntzZXN2YXJ0ZXN0X2RkbCxkZGx0ZXN0X3Nlc3ZhcjAzfSIs e30pCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwMTsKK0RST1AgVkFS SUFCTEUgcHVibGljLmRkbHRlc3Rfc2VzdmFyMDI7CitDUkVBVEUgVFlQRSBzZXN2YXJ0ZXN0X3R5 cGVfZGRsIEFTIChhIGludCwgYiBpbnQpOworQ1JFQVRFIERPTUFJTiBzZXN2YXJ0ZXN0X2RvbWFp bl9kZGwgQVMgaW50OworQ1JFQVRFIFRBQkxFIHNlc3ZhcnRlc3RfdGFibGVfZGRsIChhIGludCwg YiBpbnQpOworLyogcHJlZml4IGRkbHRlc3RfIHNob3VsZCBub3QgYmUgdXNlZCBldmVyIGluIGFu b3RoZXIgdGVzdHMgKi8KK0NSRUFURSBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA0IEFTIHNlc3Zh cnRlc3RfdHlwZV9kZGw7CitDUkVBVEUgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwNSBBUyBzZXN2 YXJ0ZXN0X2RvbWFpbl9kZGw7CitDUkVBVEUgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwNiBBUyBz ZXN2YXJ0ZXN0X3RhYmxlX2RkbDsKKy0tIGFkZCBuZXcgZmllbGQgdG8gY29tcG9zaXRlIHZhbHVl IGlzIHN1cHBvcnRlZCwKKy0tIGNoYW5nZSB0eXBlIG9mIGZpZWxkIGlzIHByb2hpYml0ZWQKKy0t IHNob3VsZCBiZSBvaworQUxURVIgVFlQRSBzZXN2YXJ0ZXN0X3R5cGVfZGRsIEFERCBBVFRSSUJV VEUgYyBpbnQ7CitBTFRFUiBUQUJMRSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbCBBREQgQ09MVU1OIGMg aW50OworLS0gc2hvdWxkIGZhaWwKK0FMVEVSIFRZUEUgc2VzdmFydGVzdF90eXBlX2RkbCBBTFRF UiBBVFRSSUJVVEUgYiBUWVBFIG51bWVyaWM7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlICJz ZXN2YXJ0ZXN0X3R5cGVfZGRsIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy5kZGx0 ZXN0X3Nlc3ZhcjA0IiB1c2VzIGl0CitBTFRFUiBUQUJMRSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbCBB TFRFUiBDT0xVTU4gYiBUWVBFIG51bWVyaWM7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0YWJsZSAi c2VzdmFydGVzdF90YWJsZV9kZGwiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLmRk bHRlc3Rfc2VzdmFyMDYiIHVzZXMgaXQKK0FMVEVSIERPTUFJTiBzZXN2YXJ0ZXN0X2RvbWFpbl9k ZGwgQUREIENIRUNLKHZhbHVlIDw+IDEwMCk7CitFUlJPUjogIGNhbm5vdCBhbHRlciBkb21haW4g InNlc3ZhcnRlc3RfZG9tYWluX2RkbCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMu ZGRsdGVzdF9zZXN2YXIwNSIgdXNlcyBpdAorLS0gc2hvdWxkIGZhaWwKK0RST1AgVFlQRSBzZXN2 YXJ0ZXN0X3R5cGVfZGRsOworRVJST1I6ICBjYW5ub3QgZHJvcCB0eXBlIHNlc3ZhcnRlc3RfdHlw ZV9kZGwgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lv biB2YXJpYWJsZSBkZGx0ZXN0X3Nlc3ZhcjA0IGRlcGVuZHMgb24gdHlwZSBzZXN2YXJ0ZXN0X3R5 cGVfZGRsCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50 IG9iamVjdHMgdG9vLgorRFJPUCBET01BSU4gc2VzdmFydGVzdF9kb21haW5fZGRsOworRVJST1I6 ICBjYW5ub3QgZHJvcCB0eXBlIHNlc3ZhcnRlc3RfZG9tYWluX2RkbCBiZWNhdXNlIG90aGVyIG9i amVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIGRkbHRlc3Rfc2Vz dmFyMDUgZGVwZW5kcyBvbiB0eXBlIHNlc3ZhcnRlc3RfZG9tYWluX2RkbAorSElOVDogIFVzZSBE Uk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0RST1Ag VEFCTEUgc2VzdmFydGVzdF90YWJsZV9kZGw7CitFUlJPUjogIGNhbm5vdCBkcm9wIHRhYmxlIHNl c3ZhcnRlc3RfdGFibGVfZGRsIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RF VEFJTDogIHNlc3Npb24gdmFyaWFibGUgZGRsdGVzdF9zZXN2YXIwNiBkZXBlbmRzIG9uIHR5cGUg c2VzdmFydGVzdF90YWJsZV9kZGwKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9w IHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCistLSBjaGVjayBldmVudCB0cmlnZ2VyIHN1cHBv cnQKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRf ZHJvcHBlZCgpCitSRVRVUk5TIGV2ZW50X3RyaWdnZXIKK0FTICQkCitERUNMQVJFIHIgcmVjb3Jk OworQkVHSU4KKyAgRk9SIHIgSU4gU0VMRUNUICogZnJvbSBwZ19ldmVudF90cmlnZ2VyX2Ryb3Bw ZWRfb2JqZWN0cygpCisgIExPT1AKKyAgICBJRiByLmNsYXNzaWQgPSAncGdfdmFyaWFibGUnOjpy ZWdjbGFzcyBBTkQKKyAgICAgICByLmFkZHJlc3NfbmFtZXNbMl0gbGlrZSAnZGRsdGVzdF9zZXN2 YXIlJworICAgIFRIRU4KKyAgICAgIFJBSVNFIE5PVElDRQorICAgICAgICAgJ05PUk1BTDogb3Jp Zz0lIG5vcm1hbD0lIGlzdGVtcD0lIHR5cGU9JSBpZGVudGl0eT0lIG5hbWU9JSBhcmdzPSUnLAor ICAgICAgICAgci5vcmlnaW5hbCwgci5ub3JtYWwsIHIuaXNfdGVtcG9yYXJ5LCByLm9iamVjdF90 eXBlLAorICAgICAgICAgci5vYmplY3RfaWRlbnRpdHksIHIuYWRkcmVzc19uYW1lcywgci5hZGRy ZXNzX2FyZ3M7CisgICAgRU5EIElGOworICBFTkQgTE9PUDsKK0VORDsKKyQkIExBTkdVQUdFIHBs cGdzcWw7CitDUkVBVEUgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZlbnRfdHJpZ2dlcl9y ZXBvcnRfZHJvcHBlZCBPTiBzcWxfZHJvcAorICBXSEVOIFRBRyBJTiAoJ0RST1AgVkFSSUFCTEUn LCAnRFJPUCBTQ0hFTUEnKQorICBFWEVDVVRFIFBST0NFRFVSRSBzdmFyX2V2ZW50X3RyaWdnZXJf cmVwb3J0X2Ryb3BwZWQoKTsKK0RST1AgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwNDsKK05PVElD RTogIE5PUk1BTDogb3JpZz10IG5vcm1hbD1mIGlzdGVtcD1mIHR5cGU9c2Vzc2lvbiB2YXJpYWJs ZSBpZGVudGl0eT1wdWJsaWMuZGRsdGVzdF9zZXN2YXIwNCBuYW1lPXtwdWJsaWMsZGRsdGVzdF9z ZXN2YXIwNH0gYXJncz17fQorRFJPUCBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA1OworTk9USUNF OiAgTk9STUFMOiBvcmlnPXQgbm9ybWFsPWYgaXN0ZW1wPWYgdHlwZT1zZXNzaW9uIHZhcmlhYmxl IGlkZW50aXR5PXB1YmxpYy5kZGx0ZXN0X3Nlc3ZhcjA1IG5hbWU9e3B1YmxpYyxkZGx0ZXN0X3Nl c3ZhcjA1fSBhcmdzPXt9CitEUk9QIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDY7CitOT1RJQ0U6 ICBOT1JNQUw6IG9yaWc9dCBub3JtYWw9ZiBpc3RlbXA9ZiB0eXBlPXNlc3Npb24gdmFyaWFibGUg aWRlbnRpdHk9cHVibGljLmRkbHRlc3Rfc2VzdmFyMDYgbmFtZT17cHVibGljLGRkbHRlc3Rfc2Vz dmFyMDZ9IGFyZ3M9e30KKy0tIHNob3VsZCB0byBmYWlsCitEUk9QIFNDSEVNQSBzZXN2YXJ0ZXN0 X2RkbDsKK0VSUk9SOiAgY2Fubm90IGRyb3Agc2NoZW1hIHNlc3ZhcnRlc3RfZGRsIGJlY2F1c2Ug b3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUgc2Vz dmFydGVzdF9kZGwuZGRsdGVzdF9zZXN2YXIwMyBkZXBlbmRzIG9uIHNjaGVtYSBzZXN2YXJ0ZXN0 X2RkbAorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBv YmplY3RzIHRvby4KKy0tIHNob3VsZCBiZSBvaworRFJPUCBTQ0hFTUEgc2VzdmFydGVzdF9kZGwg Q0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzZXN2 YXJ0ZXN0X2RkbC5kZGx0ZXN0X3Nlc3ZhcjAzCitOT1RJQ0U6ICBOT1JNQUw6IG9yaWc9ZiBub3Jt YWw9dCBpc3RlbXA9ZiB0eXBlPXNlc3Npb24gdmFyaWFibGUgaWRlbnRpdHk9c2VzdmFydGVzdF9k ZGwuZGRsdGVzdF9zZXN2YXIwMyBuYW1lPXtzZXN2YXJ0ZXN0X2RkbCxkZGx0ZXN0X3Nlc3ZhcjAz fSBhcmdzPXt9CitEUk9QIEVWRU5UIFRSSUdHRVIgc3Zhcl9yZWdyZXNzX2V2ZW50X3RyaWdnZXJf cmVwb3J0X2Ryb3BwZWQ7CitEUk9QIEZVTkNUSU9OIHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRf ZHJvcHBlZCgpOworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFRZUEUgc2VzdmFydGVzdF90eXBlX2Rk bDsKK0RST1AgRE9NQUlOIHNlc3ZhcnRlc3RfZG9tYWluX2RkbDsKK0RST1AgVEFCTEUgc2VzdmFy dGVzdF90YWJsZV9kZGw7CistLSBjaGVjayBjb21tZW50IG9uIHZhcmlhYmxlCitDUkVBVEUgVkFS SUFCTEUgZGRsdGVzdF9zZXN2YXIwNyBBUyBpbnQ7CitDT01NRU5UIE9OIFZBUklBQkxFIGRkbHRl c3Rfc2VzdmFyMDcgSVMgJ3NvbWUgc2Vzc2lvbiB2YXJpYWJsZSBjb21tZW50JzsKK1NFTEVDVCBw Z19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbihvaWQsICdwZ192YXJpYWJsZScpIEZST00gcGdfdmFy aWFibGUgV0hFUkUgdmFybmFtZSA9ICdkZGx0ZXN0X3Nlc3ZhcjA3JzsKKyAgICAgICAgb2JqX2Rl c2NyaXB0aW9uICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBzb21l IHNlc3Npb24gdmFyaWFibGUgY29tbWVudAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIGRkbHRl c3Rfc2VzdmFyMDc7CitDUkVBVEUgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwOCBBUyBpbnQ7CitB TFRFUiBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA4IFJFTkFNRSBUTyBkZGx0ZXN0X3Nlc3ZhcjA4 X3JlbmFtZWQ7CitDUkVBVEUgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsOworQUxURVIgVkFSSUFCTEUg ZGRsdGVzdF9zZXN2YXIwOF9yZW5hbWVkIFNFVCBTQ0hFTUEgc2VzdmFydGVzdF9kZGw7CitDUkVB VEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2RkbDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEg c2VzdmFydGVzdF9kZGwgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9kZGw7CitTRVQgUk9MRSBU TyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2RkbDsKKy0tIHNob3VsZCBmYWlsCitEUk9QIFZBUklB QkxFIHNlc3ZhcnRlc3RfZGRsLmRkbHRlc3Rfc2VzdmFyMDhfcmVuYW1lZDsKK0VSUk9SOiAgbXVz dCBiZSBvd25lciBvZiBzZXNzaW9uIHZhcmlhYmxlIHNlc3ZhcnRlc3RfZGRsLmRkbHRlc3Rfc2Vz dmFyMDhfcmVuYW1lZAorU0VUIFJPTEUgVE8gREVGQVVMVDsKK0FMVEVSIFZBUklBQkxFIHNlc3Zh cnRlc3RfZGRsLmRkbHRlc3Rfc2VzdmFyMDhfcmVuYW1lZCBPV05FUiBUTyByZWdyZXNzX3Zhcmlh YmxlX293bmVyX2RkbDsKKy0tIHNob3VsZCBmYWlsCitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJs ZV9vd25lcl9kZGw7CitFUlJPUjogIHJvbGUgInJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfZGRsIiBj YW5ub3QgYmUgZHJvcHBlZCBiZWNhdXNlIHNvbWUgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJ TDogIG93bmVyIG9mIHNlc3Npb24gdmFyaWFibGUgc2VzdmFydGVzdF9kZGwuZGRsdGVzdF9zZXN2 YXIwOF9yZW5hbWVkCitwcml2aWxlZ2VzIGZvciBzY2hlbWEgc2VzdmFydGVzdF9kZGwKKy0tIHNo b3VsZCBmYWlsIC0gbm90IG9uIHNlYXJjaCBwYXRoCitEUk9QIFZBUklBQkxFIGRkbHRlc3Rfc2Vz dmFyMDhfcmVuYW1lZDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAiZGRsdGVzdF9zZXN2YXIw OF9yZW5hbWVkIiBkb2VzIG5vdCBleGlzdAorU0VUIFNFQVJDSF9QQVRIIFRPICdzZXN2YXJ0ZXN0 X2RkbCc7CistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwOF9y ZW5hbWVkOworU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBUTyBERUZBVUxU OworRFJPUCBTQ0hFTUEgc2VzdmFydGVzdF9kZGw7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJs ZV9vd25lcl9kZGw7CitTRVQgbG9nX3N0YXRlbWVudCBUTyBERUZBVUxUOworQ1JFQVRFIFZBUklB QkxFIElGIE5PVCBFWElTVFMgZGRsdGVzdF9zZXN2YXIwOSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFC TEUgSUYgTk9UIEVYSVNUUyBkZGx0ZXN0X3Nlc3ZhcjA5IEFTIGludDsKK05PVElDRTogIHNlc3Np b24gdmFyaWFibGUgImRkbHRlc3Rfc2VzdmFyMDkiIGFscmVhZHkgZXhpc3RzLCBza2lwcGluZwor RFJPUCBWQVJJQUJMRSBJRiBFWElTVFMgZGRsdGVzdF9zZXN2YXIwOTsKK0RST1AgVkFSSUFCTEUg SUYgRVhJU1RTIGRkbHRlc3Rfc2VzdmFyMDk7CitOT1RJQ0U6ICBzZXNzaW9uIHZhcmlhYmxlICJk ZGx0ZXN0X3Nlc3ZhcjA5IiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKK0NSRUFURSBTQ0hFTUEg c3ZhcnRlc3QwMV9kZGwgQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjEwIEFTIGludDsKK0NSRUFURSBW QVJJQUJMRSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMSBBUyBpbnQ7CitDUkVBVEUgU0NIRU1BIHN2 YXJ0ZXN0MDJfZGRsIENSRUFURSBWQVJJQUJMRSBzZXN2YXIxMCBBUyBpbnQ7CistLSBzaG91bGQg dG8gZmFpbAorQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0MDFfZGRsLnNlc3ZhcjEwIEFTIGludDsK K0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAic2VzdmFyMTAiIGFscmVhZHkgZXhpc3RzCitBTFRF UiBWQVJJQUJMRSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMSBSRU5BTUUgVE8gc2VzdmFyMTA7CitF UlJPUjogIHNlc3Npb24gdmFyaWFibGUgInNlc3ZhcjEwIiBhbHJlYWR5IGV4aXN0cyBpbiBzY2hl bWEgInN2YXJ0ZXN0MDFfZGRsIgorQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QwMl9kZGwuc2VzdmFy MTAgU0VUIFNDSEVNQSBzdmFydGVzdDAxX2RkbDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAi c2VzdmFyMTAiIGFscmVhZHkgZXhpc3RzIGluIHNjaGVtYSAic3ZhcnRlc3QwMV9kZGwiCitEUk9Q IFNDSEVNQSBzdmFydGVzdDAxX2RkbCBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0 byAyIG90aGVyIG9iamVjdHMKK0RFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJp YWJsZSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMAorZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZh cmlhYmxlIHN2YXJ0ZXN0MDFfZGRsLnNlc3ZhcjExCitEUk9QIFNDSEVNQSBzdmFydGVzdDAyX2Rk bCBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2 YXJ0ZXN0MDJfZGRsLnNlc3ZhcjEwCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFs bGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCBh MGY1ZmFiMGY1ZC4uMWJjZjY5MDMxZGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFy YWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpA QCAtMTE1LDcgKzExNSw3IEBAIHRlc3Q6IGpzb24ganNvbmIganNvbl9lbmNvZGluZyBqc29ucGF0 aCBqc29ucGF0aF9lbmNvZGluZyBqc29uYl9qc29ucGF0aCBzcWxqc29uCiAjIE5COiB0ZW1wLnNx bCBkb2VzIHJlY29ubmVjdHMgd2hpY2ggdHJhbnNpZW50bHkgdXNlcyAyIGNvbm5lY3Rpb25zLAog IyBzbyBrZWVwIHRoaXMgcGFyYWxsZWwgZ3JvdXAgdG8gYXQgbW9zdCAxOSB0ZXN0cwogIyAtLS0t LS0tLS0tCi10ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiBy YW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJsZSBzZXF1ZW5j ZSBwb2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdpdGggeG1sCit0 ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNz IHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9y cGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdpdGggeG1sIHNlc3Npb25fdmFy aWFibGVzX2RkbAogCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJhbGxlbCB0 ZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNxbAppbmRleCA4ZDc0ZWQ3MTIyYy4uNmMx OGI3Zjg0MGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsCkBAIC0xMTQsMyArMTE0 LDE3IEBAIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMjsKIERST1AgT1dORUQgQlkgcmVncmVz c19kZXBfdXNlcjIsIHJlZ3Jlc3NfZGVwX3VzZXIwOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3Vz ZXIyOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIwOworCistLSBkZXBlbmRlbmN5IG9uIHR5 cGUKK0NSRUFURSBET01BSU4gdmFyZG9tYWluIEFTIGludDsKK0NSRUFURSBUWVBFIHZhcnR5cGUg QVMgKGEgaW50LCBiIGludCwgYyB2YXJkb21haW4pOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg dmFydHlwZTsKKworLS0gc2hvdWxkIGZhaWwKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKK0RST1Ag VFlQRSB2YXJ0eXBlOworCistLSBjbGVhbiB1cAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBU WVBFIHZhcnR5cGU7CitEUk9QIERPTUFJTiB2YXJkb21haW47CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uZjg0NDQ2OWVjYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsCkBAIC0wLDAgKzEsMTUwIEBACitT RVQgbG9nX3N0YXRlbWVudCBUTyBkZGw7CisKK0NSRUFURSBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3Zh cjAxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuZGRsdGVzdF9zZXN2YXIwMiBBUyBp bnQ7CitDUkVBVEUgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsOworQ1JFQVRFIFZBUklBQkxFIHNlc3Zh cnRlc3RfZGRsLmRkbHRlc3Rfc2VzdmFyMDMgQVMgaW50OworCitTRUxFQ1QgcGdfaWRlbnRpZnlf b2JqZWN0X2FzX2FkZHJlc3MoY2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKQorICBGUk9NIHBnX2dl dF9vYmplY3RfYWRkcmVzcygnc2Vzc2lvbiB2YXJpYWJsZScsICd7ZGRsdGVzdF9zZXN2YXIwMX0n LCAne30nKTsKKworU0VMRUNUIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzKGNsYXNzaWQs IG9iamlkLCBvYmpzdWJpZCkKKyAgRlJPTSBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ3Nlc3Npb24g dmFyaWFibGUnLCAne3B1YmxpYyxkZGx0ZXN0X3Nlc3ZhcjAyfScsICd7fScpOworCitTRUxFQ1Qg cGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MoY2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKQor ICBGUk9NIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc2Vzc2lvbiB2YXJpYWJsZScsICd7c2VzdmFy dGVzdF9kZGwsZGRsdGVzdF9zZXN2YXIwM30nLCAne30nKTsKKworRFJPUCBWQVJJQUJMRSBkZGx0 ZXN0X3Nlc3ZhcjAxOworRFJPUCBWQVJJQUJMRSBwdWJsaWMuZGRsdGVzdF9zZXN2YXIwMjsKKwor Q1JFQVRFIFRZUEUgc2VzdmFydGVzdF90eXBlX2RkbCBBUyAoYSBpbnQsIGIgaW50KTsKK0NSRUFU RSBET01BSU4gc2VzdmFydGVzdF9kb21haW5fZGRsIEFTIGludDsKK0NSRUFURSBUQUJMRSBzZXN2 YXJ0ZXN0X3RhYmxlX2RkbCAoYSBpbnQsIGIgaW50KTsKKworLyogcHJlZml4IGRkbHRlc3RfIHNo b3VsZCBub3QgYmUgdXNlZCBldmVyIGluIGFub3RoZXIgdGVzdHMgKi8KK0NSRUFURSBWQVJJQUJM RSBkZGx0ZXN0X3Nlc3ZhcjA0IEFTIHNlc3ZhcnRlc3RfdHlwZV9kZGw7CitDUkVBVEUgVkFSSUFC TEUgZGRsdGVzdF9zZXN2YXIwNSBBUyBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGw7CitDUkVBVEUgVkFS SUFCTEUgZGRsdGVzdF9zZXN2YXIwNiBBUyBzZXN2YXJ0ZXN0X3RhYmxlX2RkbDsKKworLS0gYWRk IG5ldyBmaWVsZCB0byBjb21wb3NpdGUgdmFsdWUgaXMgc3VwcG9ydGVkLAorLS0gY2hhbmdlIHR5 cGUgb2YgZmllbGQgaXMgcHJvaGliaXRlZAorCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUg c2VzdmFydGVzdF90eXBlX2RkbCBBREQgQVRUUklCVVRFIGMgaW50OworQUxURVIgVEFCTEUgc2Vz dmFydGVzdF90YWJsZV9kZGwgQUREIENPTFVNTiBjIGludDsKKworLS0gc2hvdWxkIGZhaWwKK0FM VEVSIFRZUEUgc2VzdmFydGVzdF90eXBlX2RkbCBBTFRFUiBBVFRSSUJVVEUgYiBUWVBFIG51bWVy aWM7CitBTFRFUiBUQUJMRSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbCBBTFRFUiBDT0xVTU4gYiBUWVBF IG51bWVyaWM7CitBTFRFUiBET01BSU4gc2VzdmFydGVzdF9kb21haW5fZGRsIEFERCBDSEVDSyh2 YWx1ZSA8PiAxMDApOworCistLSBzaG91bGQgZmFpbAorRFJPUCBUWVBFIHNlc3ZhcnRlc3RfdHlw ZV9kZGw7CitEUk9QIERPTUFJTiBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGw7CitEUk9QIFRBQkxFIHNl c3ZhcnRlc3RfdGFibGVfZGRsOworCistLSBjaGVjayBldmVudCB0cmlnZ2VyIHN1cHBvcnQKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBl ZCgpCitSRVRVUk5TIGV2ZW50X3RyaWdnZXIKK0FTICQkCitERUNMQVJFIHIgcmVjb3JkOworQkVH SU4KKyAgRk9SIHIgSU4gU0VMRUNUICogZnJvbSBwZ19ldmVudF90cmlnZ2VyX2Ryb3BwZWRfb2Jq ZWN0cygpCisgIExPT1AKKyAgICBJRiByLmNsYXNzaWQgPSAncGdfdmFyaWFibGUnOjpyZWdjbGFz cyBBTkQKKyAgICAgICByLmFkZHJlc3NfbmFtZXNbMl0gbGlrZSAnZGRsdGVzdF9zZXN2YXIlJwor ICAgIFRIRU4KKyAgICAgIFJBSVNFIE5PVElDRQorICAgICAgICAgJ05PUk1BTDogb3JpZz0lIG5v cm1hbD0lIGlzdGVtcD0lIHR5cGU9JSBpZGVudGl0eT0lIG5hbWU9JSBhcmdzPSUnLAorICAgICAg ICAgci5vcmlnaW5hbCwgci5ub3JtYWwsIHIuaXNfdGVtcG9yYXJ5LCByLm9iamVjdF90eXBlLAor ICAgICAgICAgci5vYmplY3RfaWRlbnRpdHksIHIuYWRkcmVzc19uYW1lcywgci5hZGRyZXNzX2Fy Z3M7CisgICAgRU5EIElGOworICBFTkQgTE9PUDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7 CisKK0NSRUFURSBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVudF90cmlnZ2VyX3JlcG9y dF9kcm9wcGVkIE9OIHNxbF9kcm9wCisgIFdIRU4gVEFHIElOICgnRFJPUCBWQVJJQUJMRScsICdE Uk9QIFNDSEVNQScpCisgIEVYRUNVVEUgUFJPQ0VEVVJFIHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBv cnRfZHJvcHBlZCgpOworCitEUk9QIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDQ7CitEUk9QIFZB UklBQkxFIGRkbHRlc3Rfc2VzdmFyMDU7CitEUk9QIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDY7 CisKKy0tIHNob3VsZCB0byBmYWlsCitEUk9QIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbDsKKworLS0g c2hvdWxkIGJlIG9rCitEUk9QIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbCBDQVNDQURFOworCitEUk9Q IEVWRU5UIFRSSUdHRVIgc3Zhcl9yZWdyZXNzX2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQ7 CisKK0RST1AgRlVOQ1RJT04gc3Zhcl9ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkKCk7CisK Ky0tIHNob3VsZCBiZSBvaworRFJPUCBUWVBFIHNlc3ZhcnRlc3RfdHlwZV9kZGw7CitEUk9QIERP TUFJTiBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGw7CitEUk9QIFRBQkxFIHNlc3ZhcnRlc3RfdGFibGVf ZGRsOworCistLSBjaGVjayBjb21tZW50IG9uIHZhcmlhYmxlCitDUkVBVEUgVkFSSUFCTEUgZGRs dGVzdF9zZXN2YXIwNyBBUyBpbnQ7CitDT01NRU5UIE9OIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFy MDcgSVMgJ3NvbWUgc2Vzc2lvbiB2YXJpYWJsZSBjb21tZW50JzsKK1NFTEVDVCBwZ19jYXRhbG9n Lm9ial9kZXNjcmlwdGlvbihvaWQsICdwZ192YXJpYWJsZScpIEZST00gcGdfdmFyaWFibGUgV0hF UkUgdmFybmFtZSA9ICdkZGx0ZXN0X3Nlc3ZhcjA3JzsKK0RST1AgVkFSSUFCTEUgZGRsdGVzdF9z ZXN2YXIwNzsKKworQ1JFQVRFIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDggQVMgaW50OworQUxU RVIgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwOCBSRU5BTUUgVE8gZGRsdGVzdF9zZXN2YXIwOF9y ZW5hbWVkOworCitDUkVBVEUgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsOworQUxURVIgVkFSSUFCTEUg ZGRsdGVzdF9zZXN2YXIwOF9yZW5hbWVkIFNFVCBTQ0hFTUEgc2VzdmFydGVzdF9kZGw7CisKK0NS RUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfZGRsOworCitHUkFOVCBBTEwgT04gU0NI RU1BIHNlc3ZhcnRlc3RfZGRsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfZGRsOworCitTRVQg Uk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2RkbDsKKworLS0gc2hvdWxkIGZhaWwKK0RS T1AgVkFSSUFCTEUgc2VzdmFydGVzdF9kZGwuZGRsdGVzdF9zZXN2YXIwOF9yZW5hbWVkOworCitT RVQgUk9MRSBUTyBERUZBVUxUOworCitBTFRFUiBWQVJJQUJMRSBzZXN2YXJ0ZXN0X2RkbC5kZGx0 ZXN0X3Nlc3ZhcjA4X3JlbmFtZWQgT1dORVIgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9kZGw7 CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9kZGw7 CisKKy0tIHNob3VsZCBmYWlsIC0gbm90IG9uIHNlYXJjaCBwYXRoCitEUk9QIFZBUklBQkxFIGRk bHRlc3Rfc2VzdmFyMDhfcmVuYW1lZDsKKworU0VUIFNFQVJDSF9QQVRIIFRPICdzZXN2YXJ0ZXN0 X2RkbCc7CisKKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA4 X3JlbmFtZWQ7CisKK1NFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyBE RUZBVUxUOworCitEUk9QIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbDsKKworRFJPUCBST0xFIHJlZ3Jl c3NfdmFyaWFibGVfb3duZXJfZGRsOworCitTRVQgbG9nX3N0YXRlbWVudCBUTyBERUZBVUxUOwor CitDUkVBVEUgVkFSSUFCTEUgSUYgTk9UIEVYSVNUUyBkZGx0ZXN0X3Nlc3ZhcjA5IEFTIGludDsK K0NSRUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIGRkbHRlc3Rfc2VzdmFyMDkgQVMgaW50Owor RFJPUCBWQVJJQUJMRSBJRiBFWElTVFMgZGRsdGVzdF9zZXN2YXIwOTsKK0RST1AgVkFSSUFCTEUg SUYgRVhJU1RTIGRkbHRlc3Rfc2VzdmFyMDk7CisKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3QwMV9k ZGwgQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjEwIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBzdmFy dGVzdDAxX2RkbC5zZXN2YXIxMSBBUyBpbnQ7CitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0MDJfZGRs IENSRUFURSBWQVJJQUJMRSBzZXN2YXIxMCBBUyBpbnQ7CisKKy0tIHNob3VsZCB0byBmYWlsCitD UkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTAgQVMgaW50OworQUxURVIgVkFS SUFCTEUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTEgUkVOQU1FIFRPIHNlc3ZhcjEwOworQUxURVIg VkFSSUFCTEUgc3ZhcnRlc3QwMl9kZGwuc2VzdmFyMTAgU0VUIFNDSEVNQSBzdmFydGVzdDAxX2Rk bDsKKworRFJPUCBTQ0hFTUEgc3ZhcnRlc3QwMV9kZGwgQ0FTQ0FERTsKK0RST1AgU0NIRU1BIHN2 YXJ0ZXN0MDJfZGRsIENBU0NBREU7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlw ZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGFjZjA5 MGIxY2NmLi5mYzVhMjdjODFmNyAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVk ZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTU2MSw2 ICs1NjEsNyBAQCBDcmVhdGVSb2xlU3RtdAogQ3JlYXRlU2NoZW1hU3RtdAogQ3JlYXRlU2NoZW1h U3RtdENvbnRleHQKIENyZWF0ZVNlcVN0bXQKK0NyZWF0ZVNlc3Npb25WYXJTdG10CiBDcmVhdGVT dGF0c1N0bXQKIENyZWF0ZVN0bXQKIENyZWF0ZVN0bXRDb250ZXh0Ci0tIAoyLjUxLjEKCg== --0000000000001c96f9064262bb7f Content-Type: text/x-patch; charset="US-ASCII"; name="v20251030-0001-introduce-new-class-catalog-pg_variable.patch" Content-Disposition: attachment; filename="v20251030-0001-introduce-new-class-catalog-pg_variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhdn0ddz14 RnJvbSBhMTBhOWEwZTBhYWZhZDdhMzg1MjVjZWRkNTIwMjQxNzZlZDg2ZjkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFdlZCwgMjggTWF5IDIwMjUgMDg6MzA6MjUgKzAyMDAKU3ViamVjdDogW1BBVENIIDAx LzE1XSBpbnRyb2R1Y2UgbmV3IGNsYXNzIChjYXRhbG9nKSBwZ192YXJpYWJsZQoKVGhpcyB0YWJs ZSBob2xkcyBtZXRhZGF0YSBhYm91dCBzZXNzaW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5CmNvbW1h bmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJvcHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUu Ci0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgfCAxMzMgKysrKysr KysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgIHwg ICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQgICAgICAgIHwgICAxICsKIHNy Yy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgIHwgMTY4ICsrKysrKysrKysrKysr KysrKysrKysrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgIHwgICAz ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkICAgICAgICB8ICAgMSArCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICB8ICA5NiArKysrKysrKysrKysrKwog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQgfCAgIDQgKwogc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgfCAgIDIgKwogOSBmaWxlcyBjaGFuZ2VkLCA0 MDggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9i YWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRh bG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggNmM4YTBmMTczYzku LjdjNzlkZGM5YzA5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtMzY5LDYgKzM2OSwxMSBAQAogICAgICAg PGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctdXNlci1tYXBwaW5nIj48c3RydWN0bmFt ZT5wZ191c2VyX21hcHBpbmc8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CiAgICAgICA8ZW50 cnk+bWFwcGluZ3Mgb2YgdXNlcnMgdG8gZm9yZWlnbiBzZXJ2ZXJzPC9lbnRyeT4KICAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBn LXZhcmlhYmxlIj48c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT48L2xpbms+PC9l bnRyeT4KKyAgICAgIDxlbnRyeT5zZXNzaW9uIHZhcmlhYmxlczwvZW50cnk+CisgICAgIDwvcm93 PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KQEAgLTk4MzQsNCArOTgz OSwxMzIgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZn dDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgPC90YWJsZT4KICA8L3NlY3QxPgog CisgPHNlY3QxIGlkPSJjYXRhbG9nLXBnLXZhcmlhYmxlIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1l PnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25lPSJj YXRhbG9nLXBnLXZhcmlhYmxlIj4KKyAgIDxwcmltYXJ5PnBnX3ZhcmlhYmxlPC9wcmltYXJ5Pgor ICA8L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBn X3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPiBzdG9yZXMgaW5mb3JtYXRpb24gYWJvdXQKKyAgIHNlc3Np b24gdmFyaWFibGVzLgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3Ru YW1lPnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAg Y29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3Jp cHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgor CisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgUm93IGlkZW50aWZpZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+dmFydHlwZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAo cmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXR5cGUiPjxzdHJ1Y3RuYW1lPnBn X3R5cGU8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4p CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgT0lEIG9mIHRoZSB2YXJp YWJsZSdzIGRhdGEgdHlwZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjcmVhdGVf bHNuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+cGdfbHNuPC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgTFNOIG9mIHRoZSB0cmFuc2FjdGlvbiB3aGVyZSB0aGUgdmFyaWFi bGUgd2FzIGNyZWF0ZWQuCisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmNyZWF0ZV9sc248L3N0cnVj dGZpZWxkPiBhbmQKKyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gdG9nZXRo ZXIgZm9ybSB0aGUgYWxsLXRpbWUgdW5pcXVlCisgICAgICAgaWRlbnRpZmllciAoPHN0cnVjdGZp ZWxkPm9pZDwvc3RydWN0ZmllbGQ+IGFsb25lIGlzIG5vdCBlbm91Z2gsIHNpbmNlCisgICAgICAg b2JqZWN0IGlkZW50aWZpZXJzIGNhbiBnZXQgcmV1c2VkKS4KKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+dmFybmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxl CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5hbWVzcGFjZTwvc3RydWN0ZmllbGQ+ IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRh bG9nLXBnLW5hbWVzcGFjZSI+PHN0cnVjdG5hbWU+cGdfbmFtZXNwYWNlPC9zdHJ1Y3RuYW1lPjwv bGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgVGhlIE9JRCBvZiB0aGUgbmFtZXNwYWNlIHRoYXQgY29udGFpbnMg dGhpcyB2YXJpYWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJvd25lcjwvc3Ry dWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5r ZW5kPSJjYXRhbG9nLXBnLWF1dGhpZCI+PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1l PjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgT3duZXIgb2YgdGhlIHZhcmlhYmxlCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnZhcnR5cG1vZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFydHlw bW9kPC9zdHJ1Y3RmaWVsZD4gcmVjb3JkcyB0eXBlLXNwZWNpZmljIGRhdGEKKyAgICAgICBzdXBw bGllZCBhdCB2YXJpYWJsZSBjcmVhdGlvbiB0aW1lIChmb3IgZXhhbXBsZSwgdGhlIG1heGltdW0K KyAgICAgICBsZW5ndGggb2YgYSA8dHlwZT52YXJjaGFyPC90eXBlPiBjb2x1bW4pLiAgSXQgaXMg cGFzc2VkIHRvCisgICAgICAgdHlwZS1zcGVjaWZpYyBpbnB1dCBmdW5jdGlvbnMgYW5kIGxlbmd0 aCBjb2VyY2lvbiBmdW5jdGlvbnMuCisgICAgICAgVGhlIHZhbHVlIHdpbGwgZ2VuZXJhbGx5IGJl IC0xIGZvciB0eXBlcyB0aGF0IGRvIG5vdCBuZWVkIDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8L3N0 cnVjdGZpZWxkPi4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyY29sbGF0aW9uPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxp bmtlbmQ9ImNhdGFsb2ctcGctY29sbGF0aW9uIj48c3RydWN0bmFtZT5wZ19jb2xsYXRpb248L3N0 cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgZGVmaW5lZCBjb2xsYXRpb24gb2YgdGhl IHZhcmlhYmxlLCBvciB6ZXJvIGlmIHRoZSB2YXJpYWJsZSBpcworICAgICAgIG5vdCBvZiBhIGNv bGxhdGFibGUgZGF0YSB0eXBlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJhY2w8 L3N0cnVjdGZpZWxkPiA8dHlwZT5hY2xpdGVtW108L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBBY2Nlc3MgcHJpdmlsZWdlczsgc2VlCisgICAgICAgPHhyZWYgbGlu a2VuZD0ic3FsLWdyYW50Ii8+IGFuZAorICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1yZXZva2Ui Lz4KKyAgICAgICBmb3IgZGV0YWlscworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CiA8 L2NoYXB0ZXI+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQppbmRleCBjMDkwMDk0ZWQwOC4uMmMyMGQ2MGRiMTkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9NYWtlZmlsZQpAQCAtNDUsNiArNDUsNyBAQCBPQkpTID0gXAogCXBnX3NoZGVw ZW5kLm8gXAogCXBnX3N1YnNjcmlwdGlvbi5vIFwKIAlwZ190eXBlLm8gXAorCXBnX3ZhcmlhYmxl Lm8gXAogCXN0b3JhZ2UubyBcCiAJdG9hc3RpbmcubwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZApp bmRleCAxOTU4ZWE5MjM4YS4uZWQ0NGM4NzdmY2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZApA QCAtMzIsNiArMzIsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdwZ19zaGRlcGVu ZC5jJywKICAgJ3BnX3N1YnNjcmlwdGlvbi5jJywKICAgJ3BnX3R5cGUuYycsCisgICdwZ192YXJp YWJsZS5jJywKICAgJ3N0b3JhZ2UuYycsCiAgICd0b2FzdGluZy5jJywKICkKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfdmFyaWFibGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmQ2 YTI5YTc5ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Zhcmlh YmxlLmMKQEAgLTAsMCArMSwxNjggQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX3Zh cmlhYmxlLmMKKyAqCQlzZXNzaW9uIHZhcmlhYmxlcworICoKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICog UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9m IENhbGlmb3JuaWEKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJCXNyYy9iYWNrZW5kL2NhdGFs b2cvcGdfdmFyaWFibGUuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRl ICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiYWNjZXNzL2hlYXBhbS5oIgorI2luY2x1ZGUgImNh dGFsb2cvZGVwZW5kZW5jeS5oIgorI2luY2x1ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIKKyNpbmNs dWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNz LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKKyNpbmNs dWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgorI2luY2x1 ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisgKiBDcmVhdGVzIGVudHJ5IGluIHBnX3Zhcmlh YmxlIHRhYmxlCisgKi8KK09iamVjdEFkZHJlc3MKK2NyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFy ICp2YXJOYW1lLAorCQkJCU9pZCB2YXJOYW1lc3BhY2UsCisJCQkJT2lkIHZhclR5cGUsCisJCQkJ aW50MzIgdmFyVHlwbW9kLAorCQkJCU9pZCB2YXJPd25lciwKKwkJCQlPaWQgdmFyQ29sbGF0aW9u LAorCQkJCWJvb2wgaWZfbm90X2V4aXN0cykKK3sKKwlOYW1lRGF0YQl2YXJuYW1lOworCWJvb2wJ CW51bGxzW05hdHRzX3BnX3ZhcmlhYmxlXTsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3Zhcmlh YmxlXTsKKwlSZWxhdGlvbglyZWw7CisJSGVhcFR1cGxlCXR1cDsKKwlUdXBsZURlc2MJdHVwZGVz YzsKKwlPYmplY3RBZGRyZXNzIG15c2VsZiwKKwkJCQlyZWZlcmVuY2VkOworCU9iamVjdEFkZHJl c3NlcyAqYWRkcnM7CisJT2lkCQkJdmFyaWQ7CisKKwlBc3NlcnQodmFyTmFtZSk7CisJQXNzZXJ0 KE9pZElzVmFsaWQodmFyTmFtZXNwYWNlKSk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyVHlwZSkp OworCUFzc2VydChPaWRJc1ZhbGlkKHZhck93bmVyKSk7CisKKwlyZWwgPSB0YWJsZV9vcGVuKFZh cmlhYmxlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkvKgorCSAqIENoZWNrIGZv ciBkdXBsaWNhdGVzLiBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCByZWFsbHkgcHJldmVudAorCSAq IGR1cGxpY2F0ZXMsIGl0J3MgaGVyZSBqdXN0IHRvIHByb3ZpZGUgbmljZXIgZXJyb3IgbWVzc2Fn ZSBpbiBjb21tb24KKwkgKiBjYXNlLiBUaGUgcmVhbCBwcm90ZWN0aW9uIGlzIHRoZSB1bmlxdWUg a2V5IG9uIHRoZSBjYXRhbG9nLgorCSAqLworCWlmIChTZWFyY2hTeXNDYWNoZUV4aXN0czIoVkFS SUFCTEVOQU1FTlNQLAorCQkJCQkJCSAgUG9pbnRlckdldERhdHVtKHZhck5hbWUpLAorCQkJCQkJ CSAgT2JqZWN0SWRHZXREYXR1bSh2YXJOYW1lc3BhY2UpKSkKKwl7CisJCWlmIChpZl9ub3RfZXhp c3RzKQorCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRF X09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkg ZXhpc3RzLCBza2lwcGluZyIsCisJCQkJCQkJdmFyTmFtZSkpKTsKKwkJZWxzZQorCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkJ IGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFkeSBleGlzdHMiLAorCQkJCQkJ CXZhck5hbWUpKSk7CisKKwkJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwor CQlyZXR1cm4gSW52YWxpZE9iamVjdEFkZHJlc3M7CisJfQorCisJbWVtc2V0KHZhbHVlcywgMCwg c2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxscywgZmFsc2UsIHNpemVvZihudWxscykpOwor CisJbmFtZXN0cmNweSgmdmFybmFtZSwgdmFyTmFtZSk7CisKKwl2YXJpZCA9IEdldE5ld09pZFdp dGhJbmRleChyZWwsIFZhcmlhYmxlT2lkSW5kZXhJZCwgQW51bV9wZ192YXJpYWJsZV9vaWQpOwor CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfb2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZh cmlkKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjcmVhdGVfbHNuIC0gMV0gPSBMU05H ZXREYXR1bShHZXRYTG9nSW5zZXJ0UmVjUHRyKCkpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3Zhcm5hbWUgLSAxXSA9IE5hbWVHZXREYXR1bSgmdmFybmFtZSk7CisJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfdmFybmFtZXNwYWNlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck5hbWVzcGFj ZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwZSAtIDFdID0gT2JqZWN0SWRHZXRE YXR1bSh2YXJUeXBlKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAxXSA9 IEludDMyR2V0RGF0dW0odmFyVHlwbW9kKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJv d25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CisJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlv bik7CisKKwludWxsc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFdID0gdHJ1ZTsKKworCXR1 cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbCk7CisKKwl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUo dHVwZGVzYywgdmFsdWVzLCBudWxscyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsK KwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkpOworCisJYWRkcnMgPSBuZXdfb2JqZWN0X2FkZHJl c3NlcygpOworCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFZhcmlhYmxlUmVsYXRpb25JZCwg dmFyaWQpOworCisJLyogZGVwZW5kZW5jeSBvbiBuYW1lc3BhY2UgKi8KKwlPYmplY3RBZGRyZXNz U2V0KHJlZmVyZW5jZWQsIE5hbWVzcGFjZVJlbGF0aW9uSWQsIHZhck5hbWVzcGFjZSk7CisJYWRk X2V4YWN0X29iamVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisKKwkvKiBkZXBlbmRl bmN5IG9uIHVzZWQgdHlwZSAqLworCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgVHlwZVJl bGF0aW9uSWQsIHZhclR5cGUpOworCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNl ZCwgYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiBjb2xsYXRpb24gKi8KKwlpZiAoT2lkSXNW YWxpZCh2YXJDb2xsYXRpb24pICYmCisJCXZhckNvbGxhdGlvbiAhPSBERUZBVUxUX0NPTExBVElP Tl9PSUQpCisJeworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIENvbGxhdGlvblJlbGF0 aW9uSWQsIHZhckNvbGxhdGlvbik7CisJCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJl bmNlZCwgYWRkcnMpOworCX0KKworCXJlY29yZF9vYmplY3RfYWRkcmVzc19kZXBlbmRlbmNpZXMo Jm15c2VsZiwgYWRkcnMsIERFUEVOREVOQ1lfTk9STUFMKTsKKwlmcmVlX29iamVjdF9hZGRyZXNz ZXMoYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiBvd25lciAqLworCXJlY29yZERlcGVuZGVu Y3lPbk93bmVyKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIHZhck93bmVyKTsKKworCS8qIGRl cGVuZGVuY3kgb24gZXh0ZW5zaW9uICovCisJcmVjb3JkRGVwZW5kZW5jeU9uQ3VycmVudEV4dGVu c2lvbigmbXlzZWxmLCBmYWxzZSk7CisKKwloZWFwX2ZyZWV0dXBsZSh0dXApOworCisJLyogcG9z dCBjcmVhdGlvbiBob29rIGZvciBuZXcgZnVuY3Rpb24gKi8KKwlJbnZva2VPYmplY3RQb3N0Q3Jl YXRlSG9vayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwKTsKKworCXRhYmxlX2Nsb3NlKHJl bCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlyZXR1cm4gbXlzZWxmOworfQorCisvKgorICogRHJv cCB2YXJpYWJsZSBieSBPSUQKKyAqLwordm9pZAorRHJvcFZhcmlhYmxlQnlJZChPaWQgdmFyaWQp Cit7CisJUmVsYXRpb24JcmVsOworCUhlYXBUdXBsZQl0dXA7CisKKwlyZWwgPSB0YWJsZV9vcGVu KFZhcmlhYmxlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwl0dXAgPSBTZWFyY2hT eXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICgh SGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxl ZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwlDYXRhbG9nVHVwbGVEZWxldGUocmVsLCAm dHVwLT50X3NlbGYpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwl0YWJsZV9jbG9zZShy ZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9NYWtlZmlsZSBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggMmJiYzc4MDVm ZTMuLmY5ODc2MGRlNjM1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxl CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTgxLDcgKzgxLDggQEAgQ0FU QUxPR19IRUFERVJTIDo9IFwKIAlwZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UuaCBcCiAJcGdfcHVi bGljYXRpb25fcmVsLmggXAogCXBnX3N1YnNjcmlwdGlvbi5oIFwKLQlwZ19zdWJzY3JpcHRpb25f cmVsLmgKKwlwZ19zdWJzY3JpcHRpb25fcmVsLmggXAorCXBnX3ZhcmlhYmxlLmgKIAogR0VORVJB VEVEX0hFQURFUlMgOj0gJChDQVRBTE9HX0hFQURFUlM6JS5oPSVfZC5oKQogCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9t ZXNvbi5idWlsZAppbmRleCBlYzFjZjQ2N2Y2Zi4uODEzOThlZmE3YzkgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9t ZXNvbi5idWlsZApAQCAtNjksNiArNjksNyBAQCBjYXRhbG9nX2hlYWRlcnMgPSBbCiAgICdwZ19w dWJsaWNhdGlvbl9yZWwuaCcsCiAgICdwZ19zdWJzY3JpcHRpb24uaCcsCiAgICdwZ19zdWJzY3Jp cHRpb25fcmVsLmgnLAorICAncGdfdmFyaWFibGUuaCcsCiBdCiAKICMgVGhlIC5kYXQgZmlsZXMg d2UgbmVlZCBjYW4ganVzdCBiZSBsaXN0ZWQgYWxwaGFiZXRpY2FsbHkuCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE1ZjUz MDg5NGM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJs ZS5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX3Zhcmlh YmxlLmgKKyAqCSAgZGVmaW5pdGlvbiBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzeXN0ZW0gY2F0YWxv ZyAocGdfdmFyaWFibGVzKQorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYt MjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlh CisgKgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisgKgorICogTk9URVMK KyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBz Y2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNp Zm5kZWYgUEdfVkFSSUFCTEVfSAorI2RlZmluZSBQR19WQVJJQUJMRV9ICisKKyNpbmNsdWRlICJh Y2Nlc3MveGxvZ2RlZnMuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUg ImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGVf ZC5oIgorI2luY2x1ZGUgInV0aWxzL2FjbC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJ cGdfdmFyaWFibGUgZGVmaW5pdGlvbi4gIGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVm IHN0cnVjdCBGb3JtRGF0YV9wZ192YXJpYWJsZQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitD QVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQoreworCU9pZAkJCW9p ZDsJCQkvKiBvaWQgKi8KKworCS8qIE9JRCBvZiBlbnRyeSBpbiBwZ190eXBlIGZvciB2YXJpYWJs ZSdzIHR5cGUgKi8KKwlPaWQJCQl2YXJ0eXBlIEJLSV9MT09LVVAocGdfdHlwZSk7CisKKwkvKgor CSAqIFVzZWQgZm9yIGlkZW50aXR5IGNoZWNrIFtvaWQsIGNyZWF0ZV9sc25dLgorCSAqCisJICog VGhpcyBjb2x1bW4gb2YgdGhlIDgtYnl0ZSBYbG9nUmVjUHRyIHR5cGUgc2hvdWxkIGJlIGF0IGFu IGFkZHJlc3MgdGhhdAorCSAqIGlzIGRpdmlzaWJsZSBieSA4LCBidXQgYmVmb3JlIGFueSBjb2x1 bW4gb2YgdHlwZSBOYW1lRGF0YS4KKwkgKi8KKwlYTG9nUmVjUHRyCXZhcmNyZWF0ZV9sc247CisK KwkvKiB2YXJpYWJsZSBuYW1lICovCisJTmFtZURhdGEJdmFybmFtZTsKKworCS8qIE9JRCBvZiBu YW1lc3BhY2UgY29udGFpbmluZyB2YXJpYWJsZSBjbGFzcyAqLworCU9pZAkJCXZhcm5hbWVzcGFj ZSBCS0lfTE9PS1VQKHBnX25hbWVzcGFjZSk7CisKKwkvKiB2YXJpYWJsZSBvd25lciAqLworCU9p ZAkJCXZhcm93bmVyIEJLSV9MT09LVVAocGdfYXV0aGlkKTsKKworCS8qIHR5cG1vZCBmb3IgdmFy aWFibGUncyB0eXBlICovCisJaW50MzIJCXZhcnR5cG1vZCBCS0lfREVGQVVMVCgtMSk7CisKKwkv KiB2YXJpYWJsZSBjb2xsYXRpb24gKi8KKwlPaWQJCQl2YXJjb2xsYXRpb24gQktJX0RFRkFVTFQo MCkgQktJX0xPT0tVUF9PUFQocGdfY29sbGF0aW9uKTsKKworCisjaWZkZWYgQ0FUQUxPR19WQVJM RU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KKworCS8qIGFjY2Vz cyBwZXJtaXNzaW9ucyAqLworCWFjbGl0ZW0JCXZhcmFjbFsxXSBCS0lfREVGQVVMVChfbnVsbF8p OworCisjZW5kaWYKK30gRm9ybURhdGFfcGdfdmFyaWFibGU7CisKKy8qIC0tLS0tLS0tLS0tLS0t LS0KKyAqCQlGb3JtX3BnX3ZhcmlhYmxlIGNvcnJlc3BvbmRzIHRvIGEgcG9pbnRlciB0byBhIHR1 cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9mIHRoZSBwZ192YXJpYWJsZSByZWxhdGlvbi4KKyAq IC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBGb3JtRGF0YV9wZ192YXJpYWJsZSAqRm9y bV9wZ192YXJpYWJsZTsKKworREVDTEFSRV9UT0FTVChwZ192YXJpYWJsZSwgOTIyMywgOTIyNCk7 CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVkocGdfdmFyaWFibGVfb2lkX2luZGV4LCA5MjI1 LCBWYXJpYWJsZU9pZEluZGV4SWQsIHBnX3ZhcmlhYmxlLCBidHJlZShvaWQgb2lkX29wcykpOwor REVDTEFSRV9VTklRVUVfSU5ERVgocGdfdmFyaWFibGVfdmFybmFtZV9uc3BfaW5kZXgsIDkyMjYs IFZhcmlhYmxlTmFtZU5zcEluZGV4SWQsIHBnX3ZhcmlhYmxlLCBidHJlZSh2YXJuYW1lIG5hbWVf b3BzLCB2YXJuYW1lc3BhY2Ugb2lkX29wcykpOworCitNQUtFX1NZU0NBQ0hFKFZBUklBQkxFTkFN RU5TUCwgcGdfdmFyaWFibGVfdmFybmFtZV9uc3BfaW5kZXgsIDgpOworTUFLRV9TWVNDQUNIRShW QVJJQUJMRU9JRCwgcGdfdmFyaWFibGVfb2lkX2luZGV4LCA4KTsKKworZXh0ZXJuIE9iamVjdEFk ZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCisJCQkJCQkJCQkgT2lk IHZhck5hbWVzcGFjZSwKKwkJCQkJCQkJCSBPaWQgdmFyVHlwZSwKKwkJCQkJCQkJCSBpbnQzMiB2 YXJUeXBtb2QsCisJCQkJCQkJCQkgT2lkIHZhck93bmVyLAorCQkJCQkJCQkJIE9pZCB2YXJDb2xs YXRpb24sCisJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzKTsKKworZXh0ZXJuIHZvaWQgRHJv cFZhcmlhYmxlQnlJZChPaWQgdmFyaWQpOworCisjZW5kaWYJCQkJCQkJLyogUEdfVkFSSUFCTEVf SCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAppbmRleCAyMTVlYjg5OWJl My4uZDk5NTMzMjE0MDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lk am9pbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CkBA IC0yNjYsMyArMjY2LDcgQEAgTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uIHtzdWJk YmlkfSA9PiBwZ19kYXRhYmFzZSB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0 aW9uIHtzdWJvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19z dWJzY3JpcHRpb25fcmVsIHtzcnN1YmlkfSA9PiBwZ19zdWJzY3JpcHRpb24ge29pZH0KIE5PVElD RTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3NycmVsaWR9ID0+IHBnX2NsYXNzIHtv aWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJsZSB7dmFydHlwZX0gPT4gcGdfdHlwZSB7 b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3Zhcm5hbWVzcGFjZX0gPT4gcGdf bmFtZXNwYWNlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJsZSB7dmFyb3duZXJ9 ID0+IHBnX2F1dGhpZCB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3ZhcmNv bGxhdGlvbn0gPT4gcGdfY29sbGF0aW9uIHtvaWR9CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0Cmlu ZGV4IDAxOGI1OTE5Y2Y2Li5hY2YwOTBiMWNjZiAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK QEAgLTkxMCw2ICs5MTAsNyBAQCBGb3JtRGF0YV9wZ190c19wYXJzZXIKIEZvcm1EYXRhX3BnX3Rz X3RlbXBsYXRlCiBGb3JtRGF0YV9wZ190eXBlCiBGb3JtRGF0YV9wZ191c2VyX21hcHBpbmcKK0Zv cm1EYXRhX3BnX3ZhcmlhYmxlCiBGb3JtRXh0cmFEYXRhX3BnX2F0dHJpYnV0ZQogRm9ybV9wZ19h Z2dyZWdhdGUKIEZvcm1fcGdfYW0KQEAgLTk2OSw2ICs5NzAsNyBAQCBGb3JtX3BnX3RzX3BhcnNl cgogRm9ybV9wZ190c190ZW1wbGF0ZQogRm9ybV9wZ190eXBlCiBGb3JtX3BnX3VzZXJfbWFwcGlu ZworRm9ybV9wZ192YXJpYWJsZQogRm9ybWF0Tm9kZQogRnJlZUJsb2NrTnVtYmVyQXJyYXkKIEZy ZWVMaXN0RGF0YQotLSAKMi41MS4xCgo= --0000000000001c96f9064262bb7f--