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.96) (envelope-from ) id 1vZFkC-006jrk-08 for pgsql-hackers@arkaria.postgresql.org; Fri, 26 Dec 2025 21:53:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vZFk9-00A9XM-0F for pgsql-hackers@arkaria.postgresql.org; Fri, 26 Dec 2025 21:53:05 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vZFk8-00A9XD-0o for pgsql-hackers@lists.postgresql.org; Fri, 26 Dec 2025 21:53:05 +0000 Received: from mail-dl1-x122b.google.com ([2607:f8b0:4864:20::122b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vZFk4-002laL-35 for pgsql-hackers@postgresql.org; Fri, 26 Dec 2025 21:53:03 +0000 Received: by mail-dl1-x122b.google.com with SMTP id a92af1059eb24-11beb0a7bd6so11495480c88.1 for ; Fri, 26 Dec 2025 13:53:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1766785980; x=1767390780; darn=postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=k4Tlm9BDTlpshX45tMdwVgtJihMrhKrdhbPfwcfflQ8=; b=G2MFDkMuNwnTxNWyCC5038N/9afcUfOQOoC+pjTcC4/EyoFLp0q4kXY+ao/PLjavhh 3sm3UezgKWVe239sIDAP7ZYrwEhjHE0PYq3uUTvzv/+IdHmm6uaqeKQ0CRBKm44DcRQn 28WTRgQ0jCMCXot/xdP7DAwugypgUz4BjiNv+TjOPCQV9Lj1trjd09xu8zRBLBhOaRIv V0njh82IxSgF5zYRAautA7La7ceq8FGM3tQsxR+nhWOUtTExq7Vg60M1riVjl3Fyk0tM /HJlI6k5iRIN9yc8qQWfPXmwka4w3ReM2IUtUOyUBtKijcNmSoRZn8CcTKJX4DCOn3Qa rm8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766785980; x=1767390780; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=k4Tlm9BDTlpshX45tMdwVgtJihMrhKrdhbPfwcfflQ8=; b=PXemglCt0UxXQmI+dYuvp5p7dqofDhYdjpiiVqRkNN2CtiuhJ44DCXBdLBp0cVCok7 jTkKEnKlUWf9b4cUCk+8M4sMiS1MJKfc04shkDj+gYcHqlU6w9CtZxRM5fKltI9/szdJ enI5nE/ybxZhDyPeEBSDoJfKJTijOkun/WWj4PJWO3bf01AszSyf9QgdoxT6JoWODYBg YVcx3VmQysqhhRamC05WI7Mx5+0REhhZQm6///QoKmtT3brFt3NwzcyeR1OCqW4sd4Pm zIvXcDDnx+ksPEJft62KvGANwS90vNqtCO9uWaSaB0h193R3O8HAWTE+vbSpYFoMqs1l /bAw== X-Forwarded-Encrypted: i=1; AJvYcCWRkkcOMUFl6SpsaoOhmmt9LYafC61kemq47AFJ9EpP7tb3bnGKkJe3se2fMiC+HgptfaRHTsWd2L5euZD3@postgresql.org X-Gm-Message-State: AOJu0YyY2tyK9SFhzBsmPyZqfNMZJBqej5MUhQTHPU7f1X4kgt9Xu0TF KYgciPpLOmztn/3ABTr0288MPn6mGTyvuZD9Mxh4chYO8DxchYWbqvShnO1QmYP6qg== X-Gm-Gg: AY/fxX5BQ7fFfuRTmEiWp3wrncQ75cp1/KxesVhDce0BP4d+IEendggtOk7UAhCT5NG rNClV7mBxVm5Y/SGFJXD0kg/XgV7Jioa9uvmg2G+vQ2P9zDZXUoNj8XpAcw01dsaQXhP5V5Ekb3 PeysU7OE5L+z2hxRB8AiL0gqGnMgFK0CHzxAKU6i44jj8wwR8ys9xFACDrABc8KDmQj+XRll3bX lPdsXJCvVp5/guRKSYMIvGTDKcTiNOXbV02DeuaM3xFq1pMeQDqsDKuPHed5NtcGst0GRQae2iv XN42Lfr3xXhxmbiGAIxcY5H6YVCbM+zbLOUKPVH0FdxkU+ThPqrwuSySRy+qpJ75uEvxrP4X0Cl 7vj5cF4AsI5Kbb2VvhchEC2TNw0GtLHXfLsxB7xefrwbbd+3PB7TjXXnBnMkZAdfn0lTit6NfY0 nm9cUEnIG4LeVpl5bP08ghDgt9SnN3rI3miuD39bp4tSunZiqEmuAvTg== X-Google-Smtp-Source: AGHT+IHtqWetI1zkq9CsVN+H+HWe9FQxb8P561ic3MXAkJCFMVPmb+Bv1K1JZrEHZ0qG+gqvEPKOSw== X-Received: by 2002:a05:7301:77c3:b0:2ac:2f90:8e03 with SMTP id 5a478bee46e88-2b04cb15827mr17697293eec.7.1766785979543; Fri, 26 Dec 2025 13:52:59 -0800 (PST) Received: from jeff-ws-bridge.lan (c-24-7-19-3.hsd1.ca.comcast.net. [24.7.19.3]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b06a046e99sm61743675eec.6.2025.12.26.13.52.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Dec 2025 13:52:58 -0800 (PST) Message-ID: <7a5df376fffb273430aec9e89f88c31d52dcf295.camel@j-davis.com> Subject: Re: [18] CREATE SUBSCRIPTION ... SERVER From: Jeff Davis To: Shlok Kyal Cc: Ashutosh Bapat , Bharath Rupireddy , Joe Conway , pgsql-hackers@postgresql.org Date: Fri, 26 Dec 2025 13:52:57 -0800 In-Reply-To: References: <149ff9264db27cdf724b65709fbbaee4bf316835.camel@j-davis.com> <830a2bc6cbbb2e6e01c6c0d9f31f320822e10603.camel@j-davis.com> <433d0845248e86c0317d9d396926182cfe157340.camel@j-davis.com> <05ae37abb207cd6bf6b126780024692d91402b0b.camel@j-davis.com> <93392ffa941ab0d436e19e0ab5d04d0e42c02d3f.camel@j-davis.com> <26be917cb07b6aa3ef5dd15f6b59d1b375ece6e8.camel@j-davis.com> <55201bd916e748acfc754c8f95880dae8e4e5ed0.camel@j-davis.com> <2a89b14a2b1622bffb8b137ca1f9ab7866f2d2b9.camel@j-davis.com> <61831790a0a937038f78ce09f8dd4cef7de7456a.camel@j-davis.com> <0910b47040406c1d24ec0150dafb5bae6b910ed7.camel@j-davis.com> <7338f22c4534322a08ab6ce9f879e2e308eb5e5d.camel@j-davis.com> <34fd5885b8245d1014f4426ea22af61229d42e3e.camel@j-davis.com> Content-Type: multipart/mixed; boundary="=-8785MtkWScxXvRwcfshE" User-Agent: Evolution 3.52.3-0ubuntu1.1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-8785MtkWScxXvRwcfshE Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, 2025-04-02 at 17:58 +0530, Shlok Kyal wrote: > I reviewed the patch and I have a comment: >=20 > If version is >=3D18, the query will have 'suboriginremotelsn', > 'subenabled', 'subfailover' twice. Thank you. Fixed and rebased. Note that this patch will require a postgres_fdw version bump. Regards, Jeff Davis --=-8785MtkWScxXvRwcfshE Content-Disposition: attachment; filename="v15-0001-CREATE-SUSBCRIPTION-.-SERVER.patch" Content-Type: text/x-patch; name="v15-0001-CREATE-SUSBCRIPTION-.-SERVER.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA5ZWRkMTZjODYxNzdjZmMxMDBjNjVlNjRhYzViNzc5Njg3M2UzNDM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDIgSmFuIDIwMjQgMTM6NDI6NDggLTA4MDAKU3ViamVjdDogW1BBVENIIHYxNV0gQ1JFQVRF IFNVU0JDUklQVElPTiAuLi4gU0VSVkVSLgoKQWxsb3cgc3BlY2lmeWluZyBhIGZvcmVpZ24gc2Vy dmVyIGZvciBDUkVBVEUgU1VCU0NSSVBUSU9OLCByYXRoZXIgdGhhbgphIHJhdyBjb25uZWN0aW9u IHN0cmluZyB3aXRoIENPTk5FQ1RJT04uCgpVc2luZyBhIGZvcmVpZ24gc2VydmVyIGFzIGEgbGF5 ZXIgb2YgaW5kaXJlY3Rpb24gaW1wcm92ZXMgbWFuYWdlbWVudApvZiBtdWx0aXBsZSBzdWJzY3Jp cHRpb25zIHRvIHRoZSBzYW1lIHNlcnZlci4gSXQgYWxzbyBwcm92aWRlcwppbnRlZ3JhdGlvbiB3 aXRoIHVzZXIgbWFwcGluZ3MgaW4gY2FzZSBkaWZmZXJlbnQgc3Vic2NyaXB0aW9ucyBoYXZlCmRp ZmZlcmVudCBvd25lcnMgb3IgYSBzdWJzY3JpcHRpb24gY2hhbmdlcyBvd25lcnMuCgpSZXZpZXdl ZC1ieTogQXNodXRvc2ggQmFwYXQgPGFzaHV0b3NoLmJhcGF0Lm9zc0BnbWFpbC5jb20+ClJldmll d2VkLWJ5OiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+CkRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vNjE4MzE3OTBhMGE5MzcwMzhmNzhjZTA5ZjhkZDRjZWY3ZGU3 NDU2YS5jYW1lbEBqLWRhdmlzLmNvbQotLS0KIGNvbnRyaWIvcG9zdGdyZXNfZmR3L01ha2VmaWxl ICAgICAgICAgICAgICAgICB8ICAgMiArCiBjb250cmliL3Bvc3RncmVzX2Zkdy9jb25uZWN0aW9u LmMgICAgICAgICAgICAgfCAgNzMgKysrKysrKysKIC4uLi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQv cG9zdGdyZXNfZmR3Lm91dCAgICB8ICAgOCArCiBjb250cmliL3Bvc3RncmVzX2Zkdy9tZXNvbi5i dWlsZCAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHct LTEuMS0tMS4yLnNxbCAgIHwgICA4ICsKIGNvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jl c19mZHcuc3FsICAgICB8ICAgNyArCiBjb250cmliL3Bvc3RncmVzX2Zkdy90LzAxMF9zdWJzY3Jp cHRpb24ucGwgICAgfCAgNzEgKysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2Ny aXB0aW9uLnNnbWwgICAgICB8ICAxOCArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2Ny aXB0aW9uLnNnbWwgICAgIHwgIDExICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlw dGlvbi5jICAgICAgICAgfCAgMzggKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZm9yZWlnbmNt ZHMuYyAgICAgICAgICAgIHwgIDU4ICsrKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2Ny aXB0aW9uY21kcy5jICAgICAgIHwgMTY2ICsrKysrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQv Zm9yZWlnbi9mb3JlaWduLmMgICAgICAgICAgICAgICAgIHwgIDY2ICsrKysrKysKIHNyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAyMiArKysKIHNyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgICAgICB8ICAxNiArLQogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDI5ICsrLQogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iaW4vcHNx bC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19mb3JlaWduX2RhdGFfd3JhcHBlci5oIHwgICAzICsKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggICAgICAgICB8ICAgNyArLQogc3JjL2luY2x1ZGUvZm9y ZWlnbi9mb3JlaWduLmggICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL29pZGpvaW5zLm91dCAgICAgICAgfCAgIDEgKwogMjMgZmlsZXMgY2hhbmdlZCwgNTgx IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbnRy aWIvcG9zdGdyZXNfZmR3L3QvMDEwX3N1YnNjcmlwdGlvbi5wbAoKZGlmZiAtLWdpdCBhL2NvbnRy aWIvcG9zdGdyZXNfZmR3L01ha2VmaWxlIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvTWFrZWZpbGUK aW5kZXggOGVhZjRkMjYzYjYuLmNhZjUwYzQ0YWYxIDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3Rn cmVzX2Zkdy9NYWtlZmlsZQorKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9NYWtlZmlsZQpAQCAt MjEsNiArMjEsOCBAQCBJU09MQVRJT04gPSBldmFsX3BsYW5fcXVhbAogSVNPTEFUSU9OX09QVFMg PSAtLWxvYWQtZXh0ZW5zaW9uPXBvc3RncmVzX2ZkdwogVEFQX1RFU1RTID0gMQogCitUQVBfVEVT VFMgPSAxCisKIGlmZGVmIFVTRV9QR1hTCiBQR19DT05GSUcgPSBwZ19jb25maWcKIFBHWFMgOj0g JChzaGVsbCAkKFBHX0NPTkZJRykgLS1wZ3hzKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jl c19mZHcvY29ubmVjdGlvbi5jIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvY29ubmVjdGlvbi5jCmlu ZGV4IDk1M2MyZTBhYjgyLi5kYTdjYzZlNDY1OSAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jl c19mZHcvY29ubmVjdGlvbi5jCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2Nvbm5lY3Rpb24u YwpAQCAtMTMyLDYgKzEzMiw3IEBAIFBHX0ZVTkNUSU9OX0lORk9fVjEocG9zdGdyZXNfZmR3X2dl dF9jb25uZWN0aW9ucyk7CiBQR19GVU5DVElPTl9JTkZPX1YxKHBvc3RncmVzX2Zkd19nZXRfY29u bmVjdGlvbnNfMV8yKTsKIFBHX0ZVTkNUSU9OX0lORk9fVjEocG9zdGdyZXNfZmR3X2Rpc2Nvbm5l Y3QpOwogUEdfRlVOQ1RJT05fSU5GT19WMShwb3N0Z3Jlc19mZHdfZGlzY29ubmVjdF9hbGwpOwor UEdfRlVOQ1RJT05fSU5GT19WMShwb3N0Z3Jlc19mZHdfY29ubmVjdGlvbik7CiAKIC8qIHByb3Rv dHlwZXMgb2YgcHJpdmF0ZSBmdW5jdGlvbnMgKi8KIHN0YXRpYyB2b2lkIG1ha2VfbmV3X2Nvbm5l Y3Rpb24oQ29ubkNhY2hlRW50cnkgKmVudHJ5LCBVc2VyTWFwcGluZyAqdXNlcik7CkBAIC0yMzA4 LDYgKzIzMDksNzggQEAgcG9zdGdyZXNfZmR3X2dldF9jb25uZWN0aW9uc19pbnRlcm5hbChGdW5j dGlvbkNhbGxJbmZvIGZjaW5mbywKIAl9CiB9CiAKKy8qCisgKiBWYWx1ZXMgaW4gY29ubmVjdGlv biBzdHJpbmdzIG11c3QgYmUgZW5jbG9zZWQgaW4gc2luZ2xlIHF1b3Rlcy4gU2luZ2xlCisgKiBx dW90ZXMgYW5kIGJhY2tzbGFzaGVzIG11c3QgYmUgZXNjYXBlZCB3aXRoIGJhY2tzbGFzaC4gTkI6 IHRoZXNlIHJ1bGVzIGFyZQorICogZGlmZmVyZW50IGZyb20gdGhlIHJ1bGVzIGZvciBlc2NhcGlu ZyBhIFNRTCBsaXRlcmFsLgorICovCitzdGF0aWMgdm9pZAorYXBwZW5kRXNjYXBlZFZhbHVlKFN0 cmluZ0luZm8gc3RyLCBjb25zdCBjaGFyICp2YWwpCit7CisJYXBwZW5kU3RyaW5nSW5mb0NoYXIo c3RyLCAnXCcnKTsKKwlmb3IgKGludCBpID0gMDsgdmFsW2ldICE9ICdcMCc7IGkrKykKKwl7CisJ CWlmICh2YWxbaV0gPT0gJ1xcJyB8fCB2YWxbaV0gPT0gJ1wnJykKKwkJCWFwcGVuZFN0cmluZ0lu Zm9DaGFyKHN0ciwgJ1xcJyk7CisJCWFwcGVuZFN0cmluZ0luZm9DaGFyKHN0ciwgdmFsW2ldKTsK Kwl9CisJYXBwZW5kU3RyaW5nSW5mb0NoYXIoc3RyLCAnXCcnKTsKK30KKworRGF0dW0KK3Bvc3Rn cmVzX2Zkd19jb25uZWN0aW9uKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJdXNlcmlkID0g UEdfR0VUQVJHX09JRCgwKTsKKwlPaWQJCQlzZXJ2ZXJpZCA9IFBHX0dFVEFSR19PSUQoMSk7CisJ Rm9yZWlnblNlcnZlciAqc2VydmVyID0gR2V0Rm9yZWlnblNlcnZlcihzZXJ2ZXJpZCk7CisJVXNl ck1hcHBpbmcgKnVzZXIgPSBHZXRVc2VyTWFwcGluZyh1c2VyaWQsIHNlcnZlcmlkKTsKKwlTdHJp bmdJbmZvRGF0YSBzdHI7CisJY29uc3QgY2hhciAqKmtleXdvcmRzOworCWNvbnN0IGNoYXIgKip2 YWx1ZXM7CisJaW50CQkJbjsKKworCS8qCisJICogQ29uc3RydWN0IGNvbm5lY3Rpb24gcGFyYW1z IGZyb20gZ2VuZXJpYyBvcHRpb25zIG9mIEZvcmVpZ25TZXJ2ZXIgYW5kCisJICogVXNlck1hcHBp bmcuICAoU29tZSBvZiB0aGVtIG1pZ2h0IG5vdCBiZSBsaWJwcSBvcHRpb25zLCBpbiB3aGljaCBj YXNlCisJICogd2UnbGwganVzdCB3YXN0ZSBhIGZldyBhcnJheSBzbG90cy4pICBBZGQgNCBleHRy YSBzbG90cyBmb3IKKwkgKiBhcHBsaWNhdGlvbl9uYW1lLCBmYWxsYmFja19hcHBsaWNhdGlvbl9u YW1lLCBjbGllbnRfZW5jb2RpbmcsIGVuZAorCSAqIG1hcmtlci4KKwkgKi8KKwluID0gbGlzdF9s ZW5ndGgoc2VydmVyLT5vcHRpb25zKSArIGxpc3RfbGVuZ3RoKHVzZXItPm9wdGlvbnMpICsgNDsK KwlrZXl3b3JkcyA9IChjb25zdCBjaGFyICoqKSBwYWxsb2MobiAqIHNpemVvZihjaGFyICopKTsK Kwl2YWx1ZXMgPSAoY29uc3QgY2hhciAqKikgcGFsbG9jKG4gKiBzaXplb2YoY2hhciAqKSk7CisK KwluID0gMDsKKwluICs9IEV4dHJhY3RDb25uZWN0aW9uT3B0aW9ucyhzZXJ2ZXItPm9wdGlvbnMs CisJCQkJCQkJCSAga2V5d29yZHMgKyBuLCB2YWx1ZXMgKyBuKTsKKwluICs9IEV4dHJhY3RDb25u ZWN0aW9uT3B0aW9ucyh1c2VyLT5vcHRpb25zLAorCQkJCQkJCQkgIGtleXdvcmRzICsgbiwgdmFs dWVzICsgbik7CisKKwkvKiBTZXQgY2xpZW50X2VuY29kaW5nIHNvIHRoYXQgbGlicHEgY2FuIGNv bnZlcnQgZW5jb2RpbmcgcHJvcGVybHkuICovCisJa2V5d29yZHNbbl0gPSAiY2xpZW50X2VuY29k aW5nIjsKKwl2YWx1ZXNbbl0gPSBHZXREYXRhYmFzZUVuY29kaW5nTmFtZSgpOworCW4rKzsKKwor CWtleXdvcmRzW25dID0gdmFsdWVzW25dID0gTlVMTDsKKworCS8qIHZlcmlmeSB0aGUgc2V0IG9m IGNvbm5lY3Rpb24gcGFyYW1ldGVycyAqLworCWNoZWNrX2Nvbm5fcGFyYW1zKGtleXdvcmRzLCB2 YWx1ZXMsIHVzZXIpOworCisJaW5pdFN0cmluZ0luZm8oJnN0cik7CisJZm9yIChpbnQgaSA9IDA7 IGkgPCBuOyBpKyspCisJeworCQljaGFyCSAgICpzZXAgPSAiIjsKKworCQlhcHBlbmRTdHJpbmdJ bmZvKCZzdHIsICIlcyVzID0gIiwgc2VwLCBrZXl3b3Jkc1tpXSk7CisJCWFwcGVuZEVzY2FwZWRW YWx1ZSgmc3RyLCB2YWx1ZXNbaV0pOworCQlzZXAgPSAiICI7CisJfQorCisJcGZyZWUoa2V5d29y ZHMpOworCXBmcmVlKHZhbHVlcyk7CisJUEdfUkVUVVJOX1RFWFRfUChjc3RyaW5nX3RvX3RleHQo c3RyLmRhdGEpKTsKK30KKwogLyoKICAqIExpc3QgYWN0aXZlIGZvcmVpZ24gc2VydmVyIGNvbm5l Y3Rpb25zLgogICoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bv c3RncmVzX2Zkdy5vdXQgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19m ZHcub3V0CmluZGV4IDQ4ZTMxODViMjI3Li4wMjhmZTgwYzhhNyAxMDA2NDQKLS0tIGEvY29udHJp Yi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysgYi9jb250cmliL3Bv c3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC0yNTUsNiArMjU1LDE0IEBA IFNFTEVDVCBjMywgYzQgRlJPTSBmdDEgT1JERVIgQlkgYzMsIGMxIExJTUlUIDE7ICAtLSBzaG91 bGQgd29yayBhZ2FpbgogQU5BTFlaRSBmdDE7CiBBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MiBPUFRJ T05TICh1c2VfcmVtb3RlX2VzdGltYXRlICd0cnVlJyk7CiAtLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSB0ZXN0 IHN1YnNjcmlwdGlvbgorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNz X3BnZmR3X3N1YnNjcmlwdGlvbiBTRVJWRVIgdGVzdHNlcnZlcjEKKyAgUFVCTElDQVRJT04gcHVi MSBXSVRIIChzbG90X25hbWUgPSBOT05FLCBjb25uZWN0ID0gZmFsc2UpOworV0FSTklORzogIHN1 YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBp bml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNh dGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3Jp cHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNz X3BnZmR3X3N1YnNjcmlwdGlvbjsKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIHRlc3QgZXJyb3IgY2FzZSBm b3IgY3JlYXRlIHB1YmxpY2F0aW9uIG9uIGZvcmVpZ24gdGFibGUKIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIENS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2Z0YmwgRk9SIFRBQkxFIGZ0MTsgIC0tIHNob3VsZCBm YWlsCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9tZXNvbi5idWlsZCBiL2NvbnRy aWIvcG9zdGdyZXNfZmR3L21lc29uLmJ1aWxkCmluZGV4IGFhYzg5ZmZkZGU4Li4yOTE1M2VlYWY5 ZiAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvbWVzb24uYnVpbGQKKysrIGIvY29u dHJpYi9wb3N0Z3Jlc19mZHcvbWVzb24uYnVpbGQKQEAgLTUwLDYgKzUwLDcgQEAgdGVzdHMgKz0g ewogICAndGFwJzogewogICAgICd0ZXN0cyc6IFsKICAgICAgICd0LzAwMV9hdXRoX3NjcmFtLnBs JywKKyAgICAgICd0LzAxMF9zdWJzY3JpcHRpb24ucGwnLAogICAgIF0sCiAgIH0sCiB9CmRpZmYg LS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHctLTEuMS0tMS4yLnNxbCBi L2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy0tMS4xLS0xLjIuc3FsCmluZGV4IDUx MWEzZTVjMmVmLi4yZGRhYjllZmUwZCAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcv cG9zdGdyZXNfZmR3LS0xLjEtLTEuMi5zcWwKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9z dGdyZXNfZmR3LS0xLjEtLTEuMi5zcWwKQEAgLTE2LDMgKzE2LDExIEBAIENSRUFURSBGVU5DVElP TiBwb3N0Z3Jlc19mZHdfZ2V0X2Nvbm5lY3Rpb25zICgKIFJFVFVSTlMgU0VUT0YgcmVjb3JkCiBB UyAnTU9EVUxFX1BBVEhOQU1FJywgJ3Bvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlvbnNfMV8yJwog TEFOR1VBR0UgQyBTVFJJQ1QgUEFSQUxMRUwgUkVTVFJJQ1RFRDsKKworLS0gdGFrZXMgaW50ZXJu YWwgcGFyYW1ldGVyIHRvIHByZXZlbnQgY2FsbGluZyBmcm9tIFNRTAorQ1JFQVRFIEZVTkNUSU9O IHBvc3RncmVzX2Zkd19jb25uZWN0aW9uKG9pZCwgb2lkLCBpbnRlcm5hbCkKK1JFVFVSTlMgdGV4 dAorQVMgJ01PRFVMRV9QQVRITkFNRScKK0xBTkdVQUdFIEMgU1RSSUNUOworCitBTFRFUiBGT1JF SUdOIERBVEEgV1JBUFBFUiBwb3N0Z3Jlc19mZHcgQ09OTkVDVElPTiBwb3N0Z3Jlc19mZHdfY29u bmVjdGlvbjsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19m ZHcuc3FsIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKaW5kZXgg OWE4ZjllMjgxMzUuLjYwNDQwYjMzN2Q2IDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zk dy9zcWwvcG9zdGdyZXNfZmR3LnNxbAorKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9z dGdyZXNfZmR3LnNxbApAQCAtMjQ0LDYgKzI0NCwxMyBAQCBTRUxFQ1QgYzMsIGM0IEZST00gZnQx IE9SREVSIEJZIGMzLCBjMSBMSU1JVCAxOyAgLS0gc2hvdWxkIHdvcmsgYWdhaW4KIEFOQUxZWkUg ZnQxOwogQUxURVIgRk9SRUlHTiBUQUJMRSBmdDIgT1BUSU9OUyAodXNlX3JlbW90ZV9lc3RpbWF0 ZSAndHJ1ZScpOwogCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSB0ZXN0IHN1YnNjcmlwdGlvbgorLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3BnZmR3X3N1YnNjcmlwdGlvbiBT RVJWRVIgdGVzdHNlcnZlcjEKKyAgUFVCTElDQVRJT04gcHViMSBXSVRIIChzbG90X25hbWUgPSBO T05FLCBjb25uZWN0ID0gZmFsc2UpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19wZ2Zkd19z dWJzY3JpcHRpb247CisKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIHRlc3QgZXJyb3IgY2FzZSBmb3IgY3Jl YXRlIHB1YmxpY2F0aW9uIG9uIGZvcmVpZ24gdGFibGUKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdp dCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3QvMDEwX3N1YnNjcmlwdGlvbi5wbCBiL2NvbnRyaWIv cG9zdGdyZXNfZmR3L3QvMDEwX3N1YnNjcmlwdGlvbi5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uYTM5ZThmZGJiYTQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmli L3Bvc3RncmVzX2Zkdy90LzAxMF9zdWJzY3JpcHRpb24ucGwKQEAgLTAsMCArMSw3MSBAQAorCisj IENvcHlyaWdodCAoYykgMjAyMS0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorCisjIEJhc2ljIGxvZ2ljYWwgcmVwbGljYXRpb24gdGVzdAordXNlIHN0cmljdDsKK3Vz ZSB3YXJuaW5ncyBGQVRBTCA9PiAnYWxsJzsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVy OwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKKyMgSW5p dGlhbGl6ZSBwdWJsaXNoZXIgbm9kZQorbXkgJG5vZGVfcHVibGlzaGVyID0gUG9zdGdyZVNRTDo6 VGVzdDo6Q2x1c3Rlci0+bmV3KCdwdWJsaXNoZXInKTsKKyRub2RlX3B1Ymxpc2hlci0+aW5pdChh bGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9wdWJsaXNoZXItPnN0YXJ0Owor CisjIENyZWF0ZSBzdWJzY3JpYmVyIG5vZGUKK215ICRub2RlX3N1YnNjcmliZXIgPSBQb3N0Z3Jl U1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3N1YnNjcmliZXInKTsKKyRub2RlX3N1YnNjcmliZXIt PmluaXQ7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdGFydDsKKworIyBDcmVhdGUgc29tZSBwcmVleGlz dGluZyBjb250ZW50IG9uIHB1Ymxpc2hlcgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRhYl9pbnMgQVMgU0VMRUNUIGEsIGEgKyAxIGFzIGIg RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAyKSBBUyBhIik7CisKKyMgUmVwbGljYXRlIHRoZSBj aGFuZ2VzIHdpdGhvdXQgY29sdW1ucworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgIkNSRUFURSBUQUJMRSB0YWJfbm9fY29sKCkiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRhYl9ub19jb2wgZGVmYXVsdCBWQUxV RVMiKTsKKworIyBTZXR1cCBzdHJ1Y3R1cmUgb24gc3Vic2NyaWJlcgorJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUgRVhURU5TSU9OIHBvc3RncmVzX2ZkdyIp OworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUgVEFCTEUg dGFiX2lucyAoYSBpbnQsIGIgaW50KSIpOworCisjIFNldHVwIGxvZ2ljYWwgcmVwbGljYXRpb24K K215ICRwdWJsaXNoZXJfY29ubnN0ciA9ICRub2RlX3B1Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJu YW1lPXBvc3RncmVzJzsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJD UkVBVEUgUFVCTElDQVRJT04gdGFwX3B1YiBGT1IgVEFCTEUgdGFiX2lucyIpOworCitteSAkcHVi bGlzaGVyX2hvc3QgPSAkbm9kZV9wdWJsaXNoZXItPmhvc3Q7CitteSAkcHVibGlzaGVyX3BvcnQg PSAkbm9kZV9wdWJsaXNoZXItPnBvcnQ7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiQ1JFQVRFIFNFUlZFUiB0YXBfc2VydmVyIEZPUkVJR04gREFUQSBXUkFQUEVS IHBvc3RncmVzX2ZkdyBPUFRJT05TIChob3N0ICckcHVibGlzaGVyX2hvc3QnLCBwb3J0ICckcHVi bGlzaGVyX3BvcnQnLCBkYm5hbWUgJ3Bvc3RncmVzJykiCispOworCiskbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgUFVCTElD IFNFUlZFUiB0YXBfc2VydmVyIgorKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIkNSRUFURSBGT1JFSUdOIFRBQkxFIGZfdGFiX2lucyAoYSBpbnQsIGIgaW50 KSBTRVJWRVIgdGFwX3NlcnZlciBPUFRJT05TKHRhYmxlX25hbWUgJ3RhYl9pbnMnKSIKKyk7Cisk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQ VElPTiB0YXBfc3ViIFNFUlZFUiB0YXBfc2VydmVyIFBVQkxJQ0FUSU9OIHRhcF9wdWIgV0lUSCAo cGFzc3dvcmRfcmVxdWlyZWQ9ZmFsc2UpIgorKTsKKworIyBXYWl0IGZvciBpbml0aWFsIHRhYmxl IHN5bmMgdG8gZmluaXNoCiskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25f c3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViJyk7CisKK215ICRyZXN1bHQgPQorICAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBGUk9N IChTRUxFQ1QgZi5iID0gbC5iIGFzIG1hdGNoIEZST00gdGFiX2lucyBsLCBmX3RhYl9pbnMgZiBX SEVSRSBsLmEgPSBmLmEpIFdIRVJFIG1hdGNoIik7CitpcygkcmVzdWx0LCBxcSgxMDAyKSwgJ2No ZWNrIGluaXRpYWwgZGF0YSB3YXMgY29waWVkIHRvIHN1YnNjcmliZXInKTsKKworJG5vZGVfcHVi bGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGFiX2lucyBTRUxF Q1QgYSwgYSArIDEgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMTAwMywxMDUwKSBhIik7CisKKyRub2Rl X3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1YicpOworCiskcmVzdWx0ID0KKyAg JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikg RlJPTSAoU0VMRUNUIGYuYiA9IGwuYiBhcyBtYXRjaCBGUk9NIHRhYl9pbnMgbCwgZl90YWJfaW5z IGYgV0hFUkUgbC5hID0gZi5hKSBXSEVSRSBtYXRjaCIpOworaXMoJHJlc3VsdCwgcXEoMTA1MCks ICdjaGVjayBpbml0aWFsIGRhdGEgd2FzIGNvcGllZCB0byBzdWJzY3JpYmVyJyk7CisKK2RvbmVf dGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRp b24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwKaW5kZXgg MjdjMDY0MzlmNGYuLjYzNjMwNzYwNWUxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Fs dGVyX3N1YnNjcmlwdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2Ny aXB0aW9uLnNnbWwKQEAgLTIxLDYgKzIxLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAK ICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+CitBTFRFUiBTVUJTQ1JJUFRJT04gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVJWRVIgPHJlcGxh Y2VhYmxlPnNlcnZlcm5hbWU8L3JlcGxhY2VhYmxlPgogQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQ09OTkVDVElPTiAn PHJlcGxhY2VhYmxlPmNvbm5pbmZvPC9yZXBsYWNlYWJsZT4nCiBBTFRFUiBTVUJTQ1JJUFRJT04g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgUFVC TElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX25hbWU8 L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsgV0lUSCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5wdWJsaWNhdGlvbl9vcHRpb248L3JlcGxhY2VhYmxlPiBbPSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPl0gWywgLi4uIF0gKSBdCiBBTFRFUiBT VUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBBREQgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1Ymxp Y2F0aW9uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsgV0lUSCAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9vcHRpb248L3JlcGxhY2VhYmxlPiBbPSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPl0gWywgLi4uIF0g KSBdCkBAIC0xMDIsMTMgKzEwMywyNCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPAogICAgIDwv bGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3Fs LWFsdGVyc3Vic2NyaXB0aW9uLXBhcmFtcy1zZXJ2ZXIiPgorICAgIDx0ZXJtPjxsaXRlcmFsPlNF UlZFUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2VydmVybmFtZTwvcmVwbGFjZWFi bGU+PC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg VGhpcyBjbGF1c2UgcmVwbGFjZXMgdGhlIGZvcmVpZ24gc2VydmVyIG9yIGNvbm5lY3Rpb24gc3Ry aW5nIG9yaWdpbmFsbHkKKyAgICAgIHNldCBieSA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vi c2NyaXB0aW9uIi8+IHdpdGggdGhlIGZvcmVpZ24gc2VydmVyCisgICAgICA8cmVwbGFjZWFibGU+ c2VydmVybmFtZTwvcmVwbGFjZWFibGU+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtYWx0ZXJzdWJz Y3JpcHRpb24tcGFyYW1zLWNvbm5lY3Rpb24iPgogICAgIDx0ZXJtPjxsaXRlcmFsPkNPTk5FQ1RJ T04gJzxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25uaW5mbzwvcmVwbGFjZWFibGU+ JzwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KLSAgICAgIFRo aXMgY2xhdXNlIHJlcGxhY2VzIHRoZSBjb25uZWN0aW9uIHN0cmluZyBvcmlnaW5hbGx5IHNldCBi eQotICAgICAgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbiIvPi4gIFNlZSB0 aGVyZSBmb3IgbW9yZQotICAgICAgaW5mb3JtYXRpb24uCisgICAgICBUaGlzIGNsYXVzZSByZXBs YWNlcyB0aGUgZm9yZWlnbiBzZXJ2ZXIgb3IgY29ubmVjdGlvbiBzdHJpbmcgb3JpZ2luYWxseQor ICAgICAgc2V0IGJ5IDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24iLz4gd2l0 aCB0aGUgY29ubmVjdGlvbgorICAgICAgc3RyaW5nIDxyZXBsYWNlYWJsZT5jb25uaW5mbzwvcmVw bGFjZWFibGU+LgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVu dHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbAppbmRleCAxOTdi ZTBjNmY2Yi4uMGI3NzcyYTI5NGYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3N1YnNjcmlwdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlw dGlvbi5zZ21sCkBAIC0yMiw3ICsyMiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxy ZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KIENSRUFURSBTVUJTQ1JJUFRJT04gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN1YnNjcmlwdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4KLSAg ICBDT05ORUNUSU9OICc8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29ubmluZm88L3Jl cGxhY2VhYmxlPicKKyAgICB7IFNFUlZFUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ c2VydmVybmFtZTwvcmVwbGFjZWFibGU+IHwgQ09OTkVDVElPTiAnPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmNvbm5pbmZvPC9yZXBsYWNlYWJsZT4nIH0KICAgICBQVUJMSUNBVElPTiA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fbmFtZTwvcmVwbGFjZWFi bGU+IFssIC4uLl0KICAgICBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ c3Vic2NyaXB0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApIF0KIDwvc3lub3Bz aXM+CkBAIC03Nyw2ICs3NywxNSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5zdWJzY3JpcHRpb25fbmFtZTwvcmVwbGFjZWFibAogICAgIDwvbGlz dGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNy ZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtc2VydmVyIj4KKyAgICA8dGVybT48bGl0ZXJhbD5TRVJW RVIgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlcnZlcm5hbWU8L3JlcGxhY2VhYmxl PjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEEg Zm9yZWlnbiBzZXJ2ZXIgdG8gdXNlIGZvciB0aGUgY29ubmVjdGlvbi4KKyAgICAgPC9wYXJhPgor ICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBp ZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtY29ubmVjdGlvbiI+CiAgICAgPHRlcm0+ PGxpdGVyYWw+Q09OTkVDVElPTiAnPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbm5p bmZvPC9yZXBsYWNlYWJsZT4nPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYwppbmRleCBhZDZmYmQ3N2ZmZC4uMjEyNzVmNTAy OWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYwpAQCAtMTksMTEgKzE5LDE0 IEBACiAjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgogI2luY2x1ZGUgImFjY2Vzcy90 YWJsZWFtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9pbmRleGluZy5oIgorI2luY2x1ZGUgImNhdGFs b2cvcGdfZm9yZWlnbl9zZXJ2ZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlv bi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImZvcmVpZ24vZm9yZWlnbi5oIgogI2luY2x1 ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInV0 aWxzL2FjbC5oIgogI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVp bHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgpAQCAtNjksNyArNzIsNyBAQCBH ZXRQdWJsaWNhdGlvbnNTdHIoTGlzdCAqcHVibGljYXRpb25zLCBTdHJpbmdJbmZvIGRlc3QsIGJv b2wgcXVvdGVfbGl0ZXJhbCkKICAqIEZldGNoIHRoZSBzdWJzY3JpcHRpb24gZnJvbSB0aGUgc3lz Y2FjaGUuCiAgKi8KIFN1YnNjcmlwdGlvbiAqCi1HZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBi b29sIG1pc3Npbmdfb2spCitHZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBib29sIG1pc3Npbmdf b2ssIGJvb2wgYWNsY2hlY2spCiB7CiAJSGVhcFR1cGxlCXR1cDsKIAlTdWJzY3JpcHRpb24gKnN1 YjsKQEAgLTEwOCwxMCArMTExLDM1IEBAIEdldFN1YnNjcmlwdGlvbihPaWQgc3ViaWQsIGJvb2wg bWlzc2luZ19vaykKIAlzdWItPnJldGVudGlvbmFjdGl2ZSA9IHN1YmZvcm0tPnN1YnJldGVudGlv bmFjdGl2ZTsKIAogCS8qIEdldCBjb25uaW5mbyAqLwotCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRy Tm90TnVsbChTVUJTQ1JJUFRJT05PSUQsCi0JCQkJCQkJCSAgIHR1cCwKLQkJCQkJCQkJICAgQW51 bV9wZ19zdWJzY3JpcHRpb25fc3ViY29ubmluZm8pOwotCXN1Yi0+Y29ubmluZm8gPSBUZXh0RGF0 dW1HZXRDU3RyaW5nKGRhdHVtKTsKKwlpZiAoT2lkSXNWYWxpZChzdWJmb3JtLT5zdWJzZXJ2ZXIp KQorCXsKKwkJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKworCQkvKiByZWNoZWNrIEFDTCBpZiByZXF1 ZXN0ZWQgKi8KKwkJaWYgKGFjbGNoZWNrKQorCQl7CisJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNs Y2hlY2soRm9yZWlnblNlcnZlclJlbGF0aW9uSWQsCisJCQkJCQkJCQkJc3ViZm9ybS0+c3Vic2Vy dmVyLAorCQkJCQkJCQkJCXN1YmZvcm0tPnN1Ym93bmVyLCBBQ0xfVVNBR0UpOworCisJCQlpZiAo YWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJy Y29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCQkJIGVycm1zZygic3Vi c2NyaXB0aW9uIG93bmVyIFwiJXNcIiBkb2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gb24gZm9yZWln biBzZXJ2ZXIgXCIlc1wiIiwKKwkJCQkJCQkJR2V0VXNlck5hbWVGcm9tSWQoc3ViZm9ybS0+c3Vi b3duZXIsIGZhbHNlKSwKKwkJCQkJCQkJRm9yZWlnblNlcnZlck5hbWUoc3ViZm9ybS0+c3Vic2Vy dmVyKSkpKTsKKwkJfQorCisJCXN1Yi0+Y29ubmluZm8gPSBGb3JlaWduU2VydmVyQ29ubmVjdGlv blN0cmluZyhzdWJmb3JtLT5zdWJvd25lciwKKwkJCQkJCQkJCQkJCQkgIHN1YmZvcm0tPnN1YnNl cnZlcik7CisJfQorCWVsc2UKKwl7CisJCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChT VUJTQ1JJUFRJT05PSUQsCisJCQkJCQkJCQkgICB0dXAsCisJCQkJCQkJCQkgICBBbnVtX3BnX3N1 YnNjcmlwdGlvbl9zdWJjb25uaW5mbyk7CisJCXN1Yi0+Y29ubmluZm8gPSBUZXh0RGF0dW1HZXRD U3RyaW5nKGRhdHVtKTsKKwl9CiAKIAkvKiBHZXQgc2xvdG5hbWUgKi8KIAlkYXR1bSA9IFN5c0Nh Y2hlR2V0QXR0cihTVUJTQ1JJUFRJT05PSUQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9mb3JlaWduY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZm9yZWlnbmNtZHMuYwpp bmRleCA1MzYwNjVkYzUxNS4uZTM4MTIwNjEzYWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2ZvcmVpZ25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZm9yZWlnbmNt ZHMuYwpAQCAtNTIyLDIxICs1MjIsNTMgQEAgbG9va3VwX2Zkd192YWxpZGF0b3JfZnVuYyhEZWZF bGVtICp2YWxpZGF0b3IpCiAJLyogdmFsaWRhdG9yJ3MgcmV0dXJuIHZhbHVlIGlzIGlnbm9yZWQs IHNvIHdlIGRvbid0IGNoZWNrIHRoZSB0eXBlICovCiB9CiAKKy8qCisgKiBDb252ZXJ0IGEgY29u bmVjdGlvbiBzdHJpbmcgZnVuY3Rpb24gbmFtZSBwYXNzZWQgZnJvbSB0aGUgcGFyc2VyIHRvIGFu IE9pZC4KKyAqLworc3RhdGljIE9pZAorbG9va3VwX2Zkd19jb25uZWN0aW9uX2Z1bmMoRGVmRWxl bSAqY29ubmVjdGlvbikKK3sKKwlPaWQJCQljb25uZWN0aW9uT2lkOworCU9pZAkJCWZ1bmNhcmd0 eXBlc1szXTsKKworCWlmIChjb25uZWN0aW9uID09IE5VTEwgfHwgY29ubmVjdGlvbi0+YXJnID09 IE5VTEwpCisJCXJldHVybiBJbnZhbGlkT2lkOworCisJLyogY29ubmVjdGlvbiBzdHJpbmcgZnVu Y3Rpb25zIHRha2UgdXNlciBvaWQsIHNlcnZlciBvaWQgKi8KKwlmdW5jYXJndHlwZXNbMF0gPSBP SURPSUQ7CisJZnVuY2FyZ3R5cGVzWzFdID0gT0lET0lEOworCWZ1bmNhcmd0eXBlc1syXSA9IElO VEVSTkFMT0lEOworCisJY29ubmVjdGlvbk9pZCA9IExvb2t1cEZ1bmNOYW1lKChMaXN0ICopIGNv bm5lY3Rpb24tPmFyZywgMywgZnVuY2FyZ3R5cGVzLCBmYWxzZSk7CisKKwkvKiBjaGVjayB0aGF0 IGNvbm5lY3Rpb24gc3RyaW5nIGZ1bmN0aW9uIGhhcyBjb3JyZWN0IHJldHVybiB0eXBlICovCisJ aWYgKGdldF9mdW5jX3JldHR5cGUoY29ubmVjdGlvbk9pZCkgIT0gVEVYVE9JRCkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkg ZXJybXNnKCJmdW5jdGlvbiAlcyBtdXN0IHJldHVybiB0eXBlICVzIiwKKwkJCQkJCU5hbWVMaXN0 VG9TdHJpbmcoKExpc3QgKikgY29ubmVjdGlvbi0+YXJnKSwgInRleHQiKSkpOworCisJcmV0dXJu IGNvbm5lY3Rpb25PaWQ7Cit9CisKIC8qCiAgKiBQcm9jZXNzIGZ1bmN0aW9uIG9wdGlvbnMgb2Yg Q1JFQVRFL0FMVEVSIEZEVwogICovCiBzdGF0aWMgdm9pZAogcGFyc2VfZnVuY19vcHRpb25zKFBh cnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZnVuY19vcHRpb25zLAogCQkJCSAgIGJvb2wgKmhhbmRs ZXJfZ2l2ZW4sIE9pZCAqZmR3aGFuZGxlciwKLQkJCQkgICBib29sICp2YWxpZGF0b3JfZ2l2ZW4s IE9pZCAqZmR3dmFsaWRhdG9yKQorCQkJCSAgIGJvb2wgKnZhbGlkYXRvcl9naXZlbiwgT2lkICpm ZHd2YWxpZGF0b3IsCisJCQkJICAgYm9vbCAqY29ubmVjdGlvbl9naXZlbiwgT2lkICpmZHdjb25u ZWN0aW9uKQogewogCUxpc3RDZWxsICAgKmNlbGw7CiAKIAkqaGFuZGxlcl9naXZlbiA9IGZhbHNl OwogCSp2YWxpZGF0b3JfZ2l2ZW4gPSBmYWxzZTsKKwkqY29ubmVjdGlvbl9naXZlbiA9IGZhbHNl OwogCS8qIHJldHVybiBJbnZhbGlkT2lkIGlmIG5vdCBnaXZlbiAqLwogCSpmZHdoYW5kbGVyID0g SW52YWxpZE9pZDsKIAkqZmR3dmFsaWRhdG9yID0gSW52YWxpZE9pZDsKKwkqZmR3Y29ubmVjdGlv biA9IEludmFsaWRPaWQ7CiAKIAlmb3JlYWNoKGNlbGwsIGZ1bmNfb3B0aW9ucykKIAl7CkBAIC01 NTYsNiArNTg4LDEzIEBAIHBhcnNlX2Z1bmNfb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExp c3QgKmZ1bmNfb3B0aW9ucywKIAkJCSp2YWxpZGF0b3JfZ2l2ZW4gPSB0cnVlOwogCQkJKmZkd3Zh bGlkYXRvciA9IGxvb2t1cF9mZHdfdmFsaWRhdG9yX2Z1bmMoZGVmKTsKIAkJfQorCQllbHNlIGlm IChzdHJjbXAoZGVmLT5kZWZuYW1lLCAiY29ubmVjdGlvbiIpID09IDApCisJCXsKKwkJCWlmICgq Y29ubmVjdGlvbl9naXZlbikKKwkJCQllcnJvckNvbmZsaWN0aW5nRGVmRWxlbShkZWYsIHBzdGF0 ZSk7CisJCQkqY29ubmVjdGlvbl9naXZlbiA9IHRydWU7CisJCQkqZmR3Y29ubmVjdGlvbiA9IGxv b2t1cF9mZHdfY29ubmVjdGlvbl9mdW5jKGRlZik7CisJCX0KIAkJZWxzZQogCQkJZWxvZyhFUlJP UiwgIm9wdGlvbiBcIiVzXCIgbm90IHJlY29nbml6ZWQiLAogCQkJCSBkZWYtPmRlZm5hbWUpOwpA QCAtNTc1LDggKzYxNCwxMCBAQCBDcmVhdGVGb3JlaWduRGF0YVdyYXBwZXIoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDcmVhdGVGZHdTdG10ICpzdG10KQogCU9pZAkJCWZkd0lkOwogCWJvb2wJCWhhbmRs ZXJfZ2l2ZW47CiAJYm9vbAkJdmFsaWRhdG9yX2dpdmVuOworCWJvb2wJCWNvbm5lY3Rpb25fZ2l2 ZW47CiAJT2lkCQkJZmR3aGFuZGxlcjsKIAlPaWQJCQlmZHd2YWxpZGF0b3I7CisJT2lkCQkJZmR3 Y29ubmVjdGlvbjsKIAlEYXR1bQkJZmR3b3B0aW9uczsKIAlPaWQJCQlvd25lcklkOwogCU9iamVj dEFkZHJlc3MgbXlzZWxmOwpAQCAtNjIwLDEwICs2NjEsMTIgQEAgQ3JlYXRlRm9yZWlnbkRhdGFX cmFwcGVyKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlRmR3U3RtdCAqc3RtdCkKIAkvKiBMb29r dXAgaGFuZGxlciBhbmQgdmFsaWRhdG9yIGZ1bmN0aW9ucywgaWYgZ2l2ZW4gKi8KIAlwYXJzZV9m dW5jX29wdGlvbnMocHN0YXRlLCBzdG10LT5mdW5jX29wdGlvbnMsCiAJCQkJCSAgICZoYW5kbGVy X2dpdmVuLCAmZmR3aGFuZGxlciwKLQkJCQkJICAgJnZhbGlkYXRvcl9naXZlbiwgJmZkd3ZhbGlk YXRvcik7CisJCQkJCSAgICZ2YWxpZGF0b3JfZ2l2ZW4sICZmZHd2YWxpZGF0b3IsCisJCQkJCSAg ICZjb25uZWN0aW9uX2dpdmVuLCAmZmR3Y29ubmVjdGlvbik7CiAKIAl2YWx1ZXNbQW51bV9wZ19m b3JlaWduX2RhdGFfd3JhcHBlcl9mZHdoYW5kbGVyIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGZk d2hhbmRsZXIpOwogCXZhbHVlc1tBbnVtX3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVyX2Zkd3ZhbGlk YXRvciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShmZHd2YWxpZGF0b3IpOworCXZhbHVlc1tBbnVt X3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVyX2Zkd2Nvbm5lY3Rpb24gLSAxXSA9IE9iamVjdElkR2V0 RGF0dW0oZmR3Y29ubmVjdGlvbik7CiAKIAludWxsc1tBbnVtX3BnX2ZvcmVpZ25fZGF0YV93cmFw cGVyX2Zkd2FjbCAtIDFdID0gdHJ1ZTsKIApAQCAtNjk1LDggKzczOCwxMCBAQCBBbHRlckZvcmVp Z25EYXRhV3JhcHBlcihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyRmR3U3RtdCAqc3RtdCkKIAlE YXR1bQkJZGF0dW07CiAJYm9vbAkJaGFuZGxlcl9naXZlbjsKIAlib29sCQl2YWxpZGF0b3JfZ2l2 ZW47CisJYm9vbAkJY29ubmVjdGlvbl9naXZlbjsKIAlPaWQJCQlmZHdoYW5kbGVyOwogCU9pZAkJ CWZkd3ZhbGlkYXRvcjsKKwlPaWQJCQlmZHdjb25uZWN0aW9uOwogCU9iamVjdEFkZHJlc3MgbXlz ZWxmOwogCiAJcmVsID0gdGFibGVfb3BlbihGb3JlaWduRGF0YVdyYXBwZXJSZWxhdGlvbklkLCBS b3dFeGNsdXNpdmVMb2NrKTsKQEAgLTcyNiw3ICs3NzEsOCBAQCBBbHRlckZvcmVpZ25EYXRhV3Jh cHBlcihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyRmR3U3RtdCAqc3RtdCkKIAogCXBhcnNlX2Z1 bmNfb3B0aW9ucyhwc3RhdGUsIHN0bXQtPmZ1bmNfb3B0aW9ucywKIAkJCQkJICAgJmhhbmRsZXJf Z2l2ZW4sICZmZHdoYW5kbGVyLAotCQkJCQkgICAmdmFsaWRhdG9yX2dpdmVuLCAmZmR3dmFsaWRh dG9yKTsKKwkJCQkJICAgJnZhbGlkYXRvcl9naXZlbiwgJmZkd3ZhbGlkYXRvciwKKwkJCQkJICAg JmNvbm5lY3Rpb25fZ2l2ZW4sICZmZHdjb25uZWN0aW9uKTsKIAogCWlmIChoYW5kbGVyX2dpdmVu KQogCXsKQEAgLTc2NCw2ICs4MTAsMTIgQEAgQWx0ZXJGb3JlaWduRGF0YVdyYXBwZXIoUGFyc2VT dGF0ZSAqcHN0YXRlLCBBbHRlckZkd1N0bXQgKnN0bXQpCiAJCWZkd3ZhbGlkYXRvciA9IGZkd0Zv cm0tPmZkd3ZhbGlkYXRvcjsKIAl9CiAKKwlpZiAoY29ubmVjdGlvbl9naXZlbikKKwl7CisJCXJl cGxfdmFsW0FudW1fcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXJfZmR3Y29ubmVjdGlvbiAtIDFdID0g T2JqZWN0SWRHZXREYXR1bShmZHdjb25uZWN0aW9uKTsKKwkJcmVwbF9yZXBsW0FudW1fcGdfZm9y ZWlnbl9kYXRhX3dyYXBwZXJfZmR3Y29ubmVjdGlvbiAtIDFdID0gdHJ1ZTsKKwl9CisKIAkvKgog CSAqIElmIG9wdGlvbnMgc3BlY2lmaWVkLCB2YWxpZGF0ZSBhbmQgdXBkYXRlLgogCSAqLwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCmluZGV4IDRlZmQ0Njg1YWJjLi41Mzk1 YzE1OGVhNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21k cy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwpAQCAtMjcs MTMgKzI3LDE2IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19hdXRoaWRfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2Vf ZC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfZm9yZWlnbl9zZXJ2ZXIuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0 aW9uX3JlbC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFs b2cvcGdfdXNlcl9tYXBwaW5nLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNj cmlwdGlvbmNtZHMuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgorI2luY2x1ZGUg ImZvcmVpZ24vZm9yZWlnbi5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5v ZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgInBnc3RhdC5oIgpAQCAtNTkzLDYgKzU5Niw3IEBA IENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlv blN0bXQgKnN0bXQsCiAJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19zdWJzY3JpcHRpb25dOwogCU9p ZAkJCW93bmVyID0gR2V0VXNlcklkKCk7CiAJSGVhcFR1cGxlCXR1cDsKKwlPaWQJCQlzZXJ2ZXJp ZDsKIAljaGFyCSAgICpjb25uaW5mbzsKIAljaGFyCQlvcmlnaW5uYW1lW05BTUVEQVRBTEVOXTsK IAlMaXN0CSAgICpwdWJsaWNhdGlvbnM7CkBAIC02OTUsMTUgKzY5OSw0MCBAQCBDcmVhdGVTdWJz Y3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10 LAogCWlmIChvcHRzLnN5bmNocm9ub3VzX2NvbW1pdCA9PSBOVUxMKQogCQlvcHRzLnN5bmNocm9u b3VzX2NvbW1pdCA9ICJvZmYiOwogCi0JY29ubmluZm8gPSBzdG10LT5jb25uaW5mbzsKLQlwdWJs aWNhdGlvbnMgPSBzdG10LT5wdWJsaWNhdGlvbjsKLQogCS8qIExvYWQgdGhlIGxpYnJhcnkgcHJv dmlkaW5nIHVzIGxpYnBxIGNhbGxzLiAqLwogCWxvYWRfZmlsZSgibGlicHF3YWxyZWNlaXZlciIs IGZhbHNlKTsKIAorCWlmIChzdG10LT5zZXJ2ZXJuYW1lKQorCXsKKwkJRm9yZWlnblNlcnZlciAq c2VydmVyOworCisJCUFzc2VydCghc3RtdC0+Y29ubmluZm8pOworCQljb25uaW5mbyA9IE5VTEw7 CisKKwkJc2VydmVyID0gR2V0Rm9yZWlnblNlcnZlckJ5TmFtZShzdG10LT5zZXJ2ZXJuYW1lLCBm YWxzZSk7CisJCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhGb3JlaWduU2VydmVyUmVsYXRp b25JZCwgc2VydmVyLT5zZXJ2ZXJpZCwgb3duZXIsIEFDTF9VU0FHRSk7CisJCWlmIChhY2xyZXN1 bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9G T1JFSUdOX1NFUlZFUiwgc2VydmVyLT5zZXJ2ZXJuYW1lKTsKKworCQkvKiBtYWtlIHN1cmUgYSB1 c2VyIG1hcHBpbmcgZXhpc3RzICovCisJCUdldFVzZXJNYXBwaW5nKG93bmVyLCBzZXJ2ZXItPnNl cnZlcmlkKTsKKworCQlzZXJ2ZXJpZCA9IHNlcnZlci0+c2VydmVyaWQ7CisJCWNvbm5pbmZvID0g Rm9yZWlnblNlcnZlckNvbm5lY3Rpb25TdHJpbmcob3duZXIsIHNlcnZlcmlkKTsKKwl9CisJZWxz ZQorCXsKKwkJQXNzZXJ0KHN0bXQtPmNvbm5pbmZvKTsKKworCQlzZXJ2ZXJpZCA9IEludmFsaWRP aWQ7CisJCWNvbm5pbmZvID0gc3RtdC0+Y29ubmluZm87CisJfQorCiAJLyogQ2hlY2sgdGhlIGNv bm5lY3Rpb24gaW5mbyBzdHJpbmcuICovCiAJd2FscmN2X2NoZWNrX2Nvbm5pbmZvKGNvbm5pbmZv LCBvcHRzLnBhc3N3b3JkcmVxdWlyZWQgJiYgIXN1cGVydXNlcigpKTsKIAorCXB1YmxpY2F0aW9u cyA9IHN0bXQtPnB1YmxpY2F0aW9uOworCiAJLyogRXZlcnl0aGluZyBvaywgZm9ybSBhIG5ldyB0 dXBsZS4gKi8KIAltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CiAJbWVtc2V0KG51 bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CkBAIC03MzUsNiArNzY0LDEyIEBAIENyZWF0ZVN1 YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0 bXQsCiAJCUludDMyR2V0RGF0dW0ob3B0cy5yZXRhaW5kZWFkdHVwbGVzKTsKIAl2YWx1ZXNbQW51 bV9wZ19zdWJzY3JpcHRpb25fc3ViY29ubmluZm8gLSAxXSA9CiAJCUNTdHJpbmdHZXRUZXh0RGF0 dW0oY29ubmluZm8pOworCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJzZXJ2ZXIgLSAx XSA9IHNlcnZlcmlkOworCWlmICghT2lkSXNWYWxpZChzZXJ2ZXJpZCkpCisJCXZhbHVlc1tBbnVt X3BnX3N1YnNjcmlwdGlvbl9zdWJjb25uaW5mbyAtIDFdID0KKwkJCUNTdHJpbmdHZXRUZXh0RGF0 dW0oY29ubmluZm8pOworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29u bmluZm8gLSAxXSA9IHRydWU7CiAJaWYgKG9wdHMuc2xvdF9uYW1lKQogCQl2YWx1ZXNbQW51bV9w Z19zdWJzY3JpcHRpb25fc3Vic2xvdG5hbWUgLSAxXSA9CiAJCQlEaXJlY3RGdW5jdGlvbkNhbGwx KG5hbWVpbiwgQ1N0cmluZ0dldERhdHVtKG9wdHMuc2xvdF9uYW1lKSk7CkBAIC03NTUsNiArNzkw LDE4IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNj cmlwdGlvblN0bXQgKnN0bXQsCiAKIAlyZWNvcmREZXBlbmRlbmN5T25Pd25lcihTdWJzY3JpcHRp b25SZWxhdGlvbklkLCBzdWJpZCwgb3duZXIpOwogCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYs IFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkKTsKKworCWlmIChzdG10LT5zZXJ2ZXJuYW1l KQorCXsKKwkJT2JqZWN0QWRkcmVzcyByZWZlcmVuY2VkOworCisJCUFzc2VydChPaWRJc1ZhbGlk KHNlcnZlcmlkKSk7CisKKwkJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBGb3JlaWduU2Vy dmVyUmVsYXRpb25JZCwgc2VydmVyaWQpOworCQlyZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwg JnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsKKwl9CisKIAkvKgogCSAqIEEgcmVwbGlj YXRpb24gb3JpZ2luIGlzIGN1cnJlbnRseSBjcmVhdGVkIGZvciBhbGwgc3Vic2NyaXB0aW9ucywK IAkgKiBpbmNsdWRpbmcgdGhvc2UgdGhhdCBvbmx5IGNvbnRhaW4gc2VxdWVuY2VzIG9yIGFyZSBv dGhlcndpc2UgZW1wdHkuCkBAIC05MDgsOCArOTU1LDYgQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAlpZiAob3B0 cy5lbmFibGVkIHx8IG9wdHMucmV0YWluZGVhZHR1cGxlcykKIAkJQXBwbHlMYXVuY2hlcldha2V1 cEF0Q29tbWl0KCk7CiAKLQlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgU3Vic2NyaXB0aW9uUmVs YXRpb25JZCwgc3ViaWQpOwotCiAJSW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soU3Vic2NyaXB0 aW9uUmVsYXRpb25JZCwgc3ViaWQsIDApOwogCiAJcmV0dXJuIG15c2VsZjsKQEAgLTEzNzMsNyAr MTQxOCwxNCBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vi c2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVS LCBPQkpFQ1RfU1VCU0NSSVBUSU9OLAogCQkJCQkgICBzdG10LT5zdWJuYW1lKTsKIAotCXN1YiA9 IEdldFN1YnNjcmlwdGlvbihzdWJpZCwgZmFsc2UpOworCS8qCisJICogU2tpcCBBQ0wgY2hlY2tz IG9uIHRoZSBzdWJzY3JpcHRpb24ncyBmb3JlaWduIHNlcnZlciwgaWYgYW55LiBJZgorCSAqIGNo YW5naW5nIHRoZSBzZXJ2ZXIgKG9yIHJlcGxhY2luZyBpdCB3aXRoIGEgcmF3IGNvbm5lY3Rpb24p LCB0aGVuIHRoZQorCSAqIG9sZCBvbmUgd2lsbCBiZSByZW1vdmVkIGFueXdheS4gSWYgY2hhbmdp bmcgc29tZXRoaW5nIHVucmVsYXRlZCwKKwkgKiB0aGVyZSdzIG5vIG5lZWQgdG8gZG8gYW4gYWRk aXRpb25hbCBBQ0wgY2hlY2sgaGVyZTsgdGhhdCB3aWxsIGJlIGRvbmUKKwkgKiBieSB0aGUgc3Vi c2NyaXB0aW9uIHdvcmtlciBhbnl3YXkuCisJICovCisJc3ViID0gR2V0U3Vic2NyaXB0aW9uKHN1 YmlkLCBmYWxzZSwgZmFsc2UpOwogCiAJcmV0YWluX2RlYWRfdHVwbGVzID0gc3ViLT5yZXRhaW5k ZWFkdHVwbGVzOwogCW9yaWdpbiA9IHN1Yi0+b3JpZ2luOwpAQCAtMTM5OCw2ICsxNDUwLDggQEAg QWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0 bXQgKnN0bXQsCiAJbWVtc2V0KG51bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CiAJbWVtc2V0 KHJlcGxhY2VzLCBmYWxzZSwgc2l6ZW9mKHJlcGxhY2VzKSk7CiAKKwlPYmplY3RBZGRyZXNzU2V0 KG15c2VsZiwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQpOworCiAJc3dpdGNoIChzdG10 LT5raW5kKQogCXsKIAkJY2FzZSBBTFRFUl9TVUJTQ1JJUFRJT05fT1BUSU9OUzoKQEAgLTE3MDgs NyArMTc2Miw3OSBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVy U3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIEFMVEVS X1NVQlNDUklQVElPTl9TRVJWRVI6CisJCQl7CisJCQkJRm9yZWlnblNlcnZlciAqbmV3X3NlcnZl cjsKKwkJCQlPYmplY3RBZGRyZXNzIHJlZmVyZW5jZWQ7CisJCQkJQWNsUmVzdWx0CWFjbHJlc3Vs dDsKKwkJCQljaGFyCSAgICpjb25uaW5mbzsKKworCQkJCS8qCisJCQkJICogUmVtb3ZlIHdoYXQg d2FzIHRoZXJlIGJlZm9yZSwgZWl0aGVyIGFub3RoZXIgZm9yZWlnbiBzZXJ2ZXIKKwkJCQkgKiBv ciBhIGNvbm5lY3Rpb24gc3RyaW5nLgorCQkJCSAqLworCQkJCWlmIChmb3JtLT5zdWJzZXJ2ZXIp CisJCQkJeworCQkJCQlkZWxldGVEZXBlbmRlbmN5UmVjb3Jkc0ZvclNwZWNpZmljKFN1YnNjcmlw dGlvblJlbGF0aW9uSWQsIGZvcm0tPm9pZCwKKwkJCQkJCQkJCQkJCQkgICBERVBFTkRFTkNZX05P Uk1BTCwKKwkJCQkJCQkJCQkJCQkgICBGb3JlaWduU2VydmVyUmVsYXRpb25JZCwgZm9ybS0+c3Vi c2VydmVyKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJbnVsbHNbQW51bV9wZ19zdWJz Y3JpcHRpb25fc3ViY29ubmluZm8gLSAxXSA9IHRydWU7CisJCQkJCXJlcGxhY2VzW0FudW1fcGdf c3Vic2NyaXB0aW9uX3N1YmNvbm5pbmZvIC0gMV0gPSB0cnVlOworCQkJCX0KKworCQkJCS8qCisJ CQkJICogRmluZCB0aGUgbmV3IHNlcnZlciBhbmQgdXNlciBtYXBwaW5nLiBDaGVjayBBQ0wgb2Yg c2VydmVyCisJCQkJICogYmFzZWQgb24gY3VycmVudCB1c2VyIElELCBidXQgZmluZCB0aGUgdXNl ciBtYXBwaW5nIGJhc2VkCisJCQkJICogb24gdGhlIHN1YnNjcmlwdGlvbiBvd25lci4KKwkJCQkg Ki8KKwkJCQluZXdfc2VydmVyID0gR2V0Rm9yZWlnblNlcnZlckJ5TmFtZShzdG10LT5zZXJ2ZXJu YW1lLCBmYWxzZSk7CisJCQkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKEZvcmVpZ25TZXJ2 ZXJSZWxhdGlvbklkLAorCQkJCQkJCQkJCQluZXdfc2VydmVyLT5zZXJ2ZXJpZCwKKwkJCQkJCQkJ CQkJZm9ybS0+c3Vib3duZXIsIEFDTF9VU0FHRSk7CisJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xD SEVDS19PSykKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lO U1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCQkJCSBlcnJtc2coInN1YnNjcmlwdGlvbiBvd25l ciBcIiVzXCIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9uIG9uIGZvcmVpZ24gc2VydmVyIFwiJXNc IiIsCisJCQkJCQkJCQlHZXRVc2VyTmFtZUZyb21JZChmb3JtLT5zdWJvd25lciwgZmFsc2UpLAor CQkJCQkJCQkJRm9yZWlnblNlcnZlck5hbWUobmV3X3NlcnZlci0+c2VydmVyaWQpKSkpOworCisJ CQkJLyogbWFrZSBzdXJlIGEgdXNlciBtYXBwaW5nIGV4aXN0cyAqLworCQkJCUdldFVzZXJNYXBw aW5nKGZvcm0tPnN1Ym93bmVyLCBuZXdfc2VydmVyLT5zZXJ2ZXJpZCk7CisKKwkJCQljb25uaW5m byA9IEZvcmVpZ25TZXJ2ZXJDb25uZWN0aW9uU3RyaW5nKGZvcm0tPnN1Ym93bmVyLAorCQkJCQkJ CQkJCQkJCQkgbmV3X3NlcnZlci0+c2VydmVyaWQpOworCisJCQkJLyogTG9hZCB0aGUgbGlicmFy eSBwcm92aWRpbmcgdXMgbGlicHEgY2FsbHMuICovCisJCQkJbG9hZF9maWxlKCJsaWJwcXdhbHJl Y2VpdmVyIiwgZmFsc2UpOworCQkJCS8qIENoZWNrIHRoZSBjb25uZWN0aW9uIGluZm8gc3RyaW5n LiAqLworCQkJCXdhbHJjdl9jaGVja19jb25uaW5mbyhjb25uaW5mbywKKwkJCQkJCQkJCSAgc3Vi LT5wYXNzd29yZHJlcXVpcmVkICYmICFzdWItPm93bmVyc3VwZXJ1c2VyKTsKKworCQkJCXZhbHVl c1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJzZXJ2ZXIgLSAxXSA9IG5ld19zZXJ2ZXItPnNlcnZl cmlkOworCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YnNlcnZlciAtIDFdID0g dHJ1ZTsKKworCQkJCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgRm9yZWlnblNlcnZlclJl bGF0aW9uSWQsIG5ld19zZXJ2ZXItPnNlcnZlcmlkKTsKKwkJCQlyZWNvcmREZXBlbmRlbmN5T24o Jm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsKKworCQkJCXVwZGF0ZV90 dXBsZSA9IHRydWU7CisJCQl9CisJCQlicmVhazsKKwogCQljYXNlIEFMVEVSX1NVQlNDUklQVElP Tl9DT05ORUNUSU9OOgorCQkJLyogcmVtb3ZlIHJlZmVyZW5jZSB0byBmb3JlaWduIHNlcnZlciBh bmQgZGVwZW5kZW5jaWVzLCBpZiBwcmVzZW50ICovCisJCQlpZiAoZm9ybS0+c3Vic2VydmVyKQor CQkJeworCQkJCWRlbGV0ZURlcGVuZGVuY3lSZWNvcmRzRm9yU3BlY2lmaWMoU3Vic2NyaXB0aW9u UmVsYXRpb25JZCwgZm9ybS0+b2lkLAorCQkJCQkJCQkJCQkJICAgREVQRU5ERU5DWV9OT1JNQUws CisJCQkJCQkJCQkJCQkgICBGb3JlaWduU2VydmVyUmVsYXRpb25JZCwgZm9ybS0+c3Vic2VydmVy KTsKKworCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJzZXJ2ZXIgLSAxXSA9IElu dmFsaWRPaWQ7CisJCQkJcmVwbGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vic2VydmVyIC0g MV0gPSB0cnVlOworCQkJfQorCiAJCQkvKiBMb2FkIHRoZSBsaWJyYXJ5IHByb3ZpZGluZyB1cyBs aWJwcSBjYWxscy4gKi8KIAkJCWxvYWRfZmlsZSgibGlicHF3YWxyZWNlaXZlciIsIGZhbHNlKTsK IAkJCS8qIENoZWNrIHRoZSBjb25uZWN0aW9uIGluZm8gc3RyaW5nLiAqLwpAQCAtMTk5Myw4ICsy MTE5LDYgQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNj cmlwdGlvblN0bXQgKnN0bXQsCiAKIAl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2sp OwogCi0JT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1 YmlkKTsKLQogCUludm9rZU9iamVjdFBvc3RBbHRlckhvb2soU3Vic2NyaXB0aW9uUmVsYXRpb25J ZCwgc3ViaWQsIDApOwogCiAJLyogV2FrZSB1cCByZWxhdGVkIHJlcGxpY2F0aW9uIHdvcmtlcnMg dG8gaGFuZGxlIHRoaXMgY2hhbmdlIHF1aWNrbHkuICovCkBAIC0yMDgxLDkgKzIyMDUsMjggQEAg RHJvcFN1YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExl dmVsKQogCXN1Ym5hbWUgPSBwc3RyZHVwKE5hbWVTdHIoKkRhdHVtR2V0TmFtZShkYXR1bSkpKTsK IAogCS8qIEdldCBjb25uaW5mbyAqLwotCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChT VUJTQ1JJUFRJT05PSUQsIHR1cCwKLQkJCQkJCQkJICAgQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vi Y29ubmluZm8pOwotCWNvbm5pbmZvID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisJaWYg KE9pZElzVmFsaWQoZm9ybS0+c3Vic2VydmVyKSkKKwl7CisJCUFjbFJlc3VsdAlhY2xyZXN1bHQ7 CisKKwkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKEZvcmVpZ25TZXJ2ZXJSZWxhdGlvbklk LCBmb3JtLT5zdWJzZXJ2ZXIsCisJCQkJCQkJCQlmb3JtLT5zdWJvd25lciwgQUNMX1VTQUdFKTsK KwkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJCSBlcnJtc2co InN1YnNjcmlwdGlvbiBvd25lciBcIiVzXCIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9uIG9uIGZv cmVpZ24gc2VydmVyIFwiJXNcIiIsCisJCQkJCQkJR2V0VXNlck5hbWVGcm9tSWQoZm9ybS0+c3Vi b3duZXIsIGZhbHNlKSwKKwkJCQkJCQlGb3JlaWduU2VydmVyTmFtZShmb3JtLT5zdWJzZXJ2ZXIp KSkpOworCisJCWNvbm5pbmZvID0gRm9yZWlnblNlcnZlckNvbm5lY3Rpb25TdHJpbmcoZm9ybS0+ c3Vib3duZXIsCisJCQkJCQkJCQkJCQkgZm9ybS0+c3Vic2VydmVyKTsKKwl9CisJZWxzZQorCXsK KwkJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKFNVQlNDUklQVElPTk9JRCwgdHVwLAor CQkJCQkJCQkJICAgQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29ubmluZm8pOworCQljb25uaW5m byA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOworCX0KIAogCS8qIEdldCBzbG90bmFtZSAq LwogCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFNVQlNDUklQVElPTk9JRCwgdHVwLApAQCAtMjE4 Miw2ICsyMzI1LDcgQEAgRHJvcFN1YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9uU3RtdCAqc3Rt dCwgYm9vbCBpc1RvcExldmVsKQogCX0KIAogCS8qIENsZWFuIHVwIGRlcGVuZGVuY2llcyAqLwor CWRlbGV0ZURlcGVuZGVuY3lSZWNvcmRzRm9yKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1Ymlk LCBmYWxzZSk7CiAJZGVsZXRlU2hhcmVkRGVwZW5kZW5jeVJlY29yZHNGb3IoU3Vic2NyaXB0aW9u UmVsYXRpb25JZCwgc3ViaWQsIDApOwogCiAJLyogUmVtb3ZlIGFueSBhc3NvY2lhdGVkIHJlbGF0 aW9uIHN5bmNocm9uaXphdGlvbiBzdGF0ZXMuICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9m b3JlaWduL2ZvcmVpZ24uYyBiL3NyYy9iYWNrZW5kL2ZvcmVpZ24vZm9yZWlnbi5jCmluZGV4IGZh M2Y0Yzc1MjQ3Li5hMmJmYmI1NmIxZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZm9yZWlnbi9m b3JlaWduLmMKKysrIGIvc3JjL2JhY2tlbmQvZm9yZWlnbi9mb3JlaWduLmMKQEAgLTcyLDYgKzcy LDcgQEAgR2V0Rm9yZWlnbkRhdGFXcmFwcGVyRXh0ZW5kZWQoT2lkIGZkd2lkLCBiaXRzMTYgZmxh Z3MpCiAJZmR3LT5mZHduYW1lID0gcHN0cmR1cChOYW1lU3RyKGZkd2Zvcm0tPmZkd25hbWUpKTsK IAlmZHctPmZkd2hhbmRsZXIgPSBmZHdmb3JtLT5mZHdoYW5kbGVyOwogCWZkdy0+ZmR3dmFsaWRh dG9yID0gZmR3Zm9ybS0+ZmR3dmFsaWRhdG9yOworCWZkdy0+ZmR3Y29ubmVjdGlvbiA9IGZkd2Zv cm0tPmZkd2Nvbm5lY3Rpb247CiAKIAkvKiBFeHRyYWN0IHRoZSBmZHdvcHRpb25zICovCiAJZGF0 dW0gPSBTeXNDYWNoZUdldEF0dHIoRk9SRUlHTkRBVEFXUkFQUEVST0lELApAQCAtMTc2LDYgKzE3 NywzMSBAQCBHZXRGb3JlaWduU2VydmVyRXh0ZW5kZWQoT2lkIHNlcnZlcmlkLCBiaXRzMTYgZmxh Z3MpCiB9CiAKIAorLyoKKyAqIEZvcmVpZ25TZXJ2ZXJOYW1lIC0gZ2V0IG5hbWUgb2YgZm9yZWln biBzZXJ2ZXIuCisgKi8KK2NoYXIgKgorRm9yZWlnblNlcnZlck5hbWUoT2lkIHNlcnZlcmlkKQor eworCUZvcm1fcGdfZm9yZWlnbl9zZXJ2ZXIgc2VydmVyZm9ybTsKKwljaGFyCSAgICpzZXJ2ZXJu YW1lOworCUhlYXBUdXBsZQl0cDsKKworCXRwID0gU2VhcmNoU3lzQ2FjaGUxKEZPUkVJR05TRVJW RVJPSUQsIE9iamVjdElkR2V0RGF0dW0oc2VydmVyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNW YWxpZCh0cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBmb3JlaWdu IHNlcnZlciAldSIsIHNlcnZlcmlkKTsKKworCXNlcnZlcmZvcm0gPSAoRm9ybV9wZ19mb3JlaWdu X3NlcnZlcikgR0VUU1RSVUNUKHRwKTsKKworCXNlcnZlcm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIo c2VydmVyZm9ybS0+c3J2bmFtZSkpOworCisJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKworCXJldHVy biBzZXJ2ZXJuYW1lOworfQorCisKIC8qCiAgKiBHZXRGb3JlaWduU2VydmVyQnlOYW1lIC0gbG9v ayB1cCB0aGUgZm9yZWlnbiBzZXJ2ZXIgZGVmaW5pdGlvbiBieSBuYW1lLgogICovCkBAIC0xOTEs NiArMjE3LDQ2IEBAIEdldEZvcmVpZ25TZXJ2ZXJCeU5hbWUoY29uc3QgY2hhciAqc3J2bmFtZSwg Ym9vbCBtaXNzaW5nX29rKQogfQogCiAKKy8qCisgKiBSZXRyaWV2ZSBjb25uZWN0aW9uIHN0cmlu ZyBmcm9tIHNlcnZlcidzIEZEVy4KKyAqLworY2hhciAqCitGb3JlaWduU2VydmVyQ29ubmVjdGlv blN0cmluZyhPaWQgdXNlcmlkLCBPaWQgc2VydmVyaWQpCit7CisJc3RhdGljIE1lbW9yeUNvbnRl eHQgdGVtcENvbnRleHQgPSBOVUxMOworCU1lbW9yeUNvbnRleHQgb2xkY3h0OworCUZvcmVpZ25T ZXJ2ZXIgKnNlcnZlcjsKKwlGb3JlaWduRGF0YVdyYXBwZXIgKmZkdzsKKwlEYXR1bQkJY29ubmVj dGlvbl9kYXR1bTsKKwl0ZXh0CSAgICpjb25uZWN0aW9uX3RleHQ7CisJY2hhcgkgICAqcmVzdWx0 OworCisJaWYgKHRlbXBDb250ZXh0ID09IE5VTEwpCisJeworCQl0ZW1wQ29udGV4dCA9IEFsbG9j U2V0Q29udGV4dENyZWF0ZShDdXJyZW50TWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJCQkJInRlbXAg Y29udGV4dCIsCisJCQkJCQkJCQkJCUFMTE9DU0VUX0RFRkFVTFRfU0laRVMpOworCX0KKworCW9s ZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyh0ZW1wQ29udGV4dCk7CisKKwlzZXJ2ZXIgPSBH ZXRGb3JlaWduU2VydmVyKHNlcnZlcmlkKTsKKwlmZHcgPSBHZXRGb3JlaWduRGF0YVdyYXBwZXIo c2VydmVyLT5mZHdpZCk7CisJY29ubmVjdGlvbl9kYXR1bSA9IE9pZEZ1bmN0aW9uQ2FsbDIoZmR3 LT5mZHdjb25uZWN0aW9uLAorCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0odXNlcmlkKSwKKwkJ CQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHNlcnZlcmlkKSk7CisJY29ubmVjdGlvbl90ZXh0ID0g RGF0dW1HZXRUZXh0UFAoY29ubmVjdGlvbl9kYXR1bSk7CisKKwlNZW1vcnlDb250ZXh0U3dpdGNo VG8ob2xkY3h0KTsKKworCXJlc3VsdCA9IHRleHRfdG9fY3N0cmluZyhjb25uZWN0aW9uX3RleHQp OworCisJTWVtb3J5Q29udGV4dFJlc2V0KHRlbXBDb250ZXh0KTsKKworCXJldHVybiByZXN1bHQ7 Cit9CisKKwogLyoKICAqIEdldFVzZXJNYXBwaW5nIC0gbG9vayB1cCB0aGUgdXNlciBtYXBwaW5n LgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CmluZGV4IDI4ZjRlMTFlMzBmLi5hYzEzYTA4NGNjZSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC01NTgwLDYgKzU1ODAsOCBAQCBmZHdfb3B0aW9uOgogCQkJfCBOTyBIQU5ETEVSCQkJ CQkJeyAkJCA9IG1ha2VEZWZFbGVtKCJoYW5kbGVyIiwgTlVMTCwgQDEpOyB9CiAJCQl8IFZBTElE QVRPUiBoYW5kbGVyX25hbWUJCQl7ICQkID0gbWFrZURlZkVsZW0oInZhbGlkYXRvciIsIChOb2Rl ICopICQyLCBAMSk7IH0KIAkJCXwgTk8gVkFMSURBVE9SCQkJCQkJeyAkJCA9IG1ha2VEZWZFbGVt KCJ2YWxpZGF0b3IiLCBOVUxMLCBAMSk7IH0KKwkJCXwgQ09OTkVDVElPTiBoYW5kbGVyX25hbWUJ CQl7ICQkID0gbWFrZURlZkVsZW0oImNvbm5lY3Rpb24iLCAoTm9kZSAqKSAkMiwgQDEpOyB9CisJ CQl8IE5PIENPTk5FQ1RJT04JCQkJCQl7ICQkID0gbWFrZURlZkVsZW0oImNvbm5lY3Rpb24iLCBO VUxMLCBAMSk7IH0KIAkJOwogCiBmZHdfb3B0aW9uczoKQEAgLTExMDI1LDYgKzExMDI3LDE2IEBA IENyZWF0ZVN1YnNjcmlwdGlvblN0bXQ6CiAJCQkJCW4tPm9wdGlvbnMgPSAkODsKIAkJCQkJJCQg PSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQ1JFQVRFIFNVQlNDUklQVElPTiBuYW1lIFNFUlZF UiBuYW1lIFBVQkxJQ0FUSU9OIG5hbWVfbGlzdCBvcHRfZGVmaW5pdGlvbgorCQkJCXsKKwkJCQkJ Q3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqbiA9CisJCQkJCQltYWtlTm9kZShDcmVhdGVTdWJzY3Jp cHRpb25TdG10KTsKKwkJCQkJbi0+c3VibmFtZSA9ICQzOworCQkJCQluLT5zZXJ2ZXJuYW1lID0g JDU7CisJCQkJCW4tPnB1YmxpY2F0aW9uID0gJDc7CisJCQkJCW4tPm9wdGlvbnMgPSAkODsKKwkJ CQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJOwogCiAvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK QEAgLTExMDU0LDYgKzExMDY2LDE2IEBAIEFsdGVyU3Vic2NyaXB0aW9uU3RtdDoKIAkJCQkJbi0+ Y29ubmluZm8gPSAkNTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIg U1VCU0NSSVBUSU9OIG5hbWUgU0VSVkVSIG5hbWUKKwkJCQl7CisJCQkJCUFsdGVyU3Vic2NyaXB0 aW9uU3RtdCAqbiA9CisJCQkJCQltYWtlTm9kZShBbHRlclN1YnNjcmlwdGlvblN0bXQpOworCisJ CQkJCW4tPmtpbmQgPSBBTFRFUl9TVUJTQ1JJUFRJT05fU0VSVkVSOworCQkJCQluLT5zdWJuYW1l ID0gJDM7CisJCQkJCW4tPnNlcnZlcm5hbWUgPSAkNTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOwor CQkJCX0KIAkJCXwgQUxURVIgU1VCU0NSSVBUSU9OIG5hbWUgUkVGUkVTSCBQVUJMSUNBVElPTiBv cHRfZGVmaW5pdGlvbgogCQkJCXsKIAkJCQkJQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpuID0KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCmluZGV4IDcxODQwOGJiNTk5Li43 NWQ0Yzk0YmU4NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93 b3JrZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCkBA IC01MDU1LDcgKzUwNTUsNyBAQCBtYXliZV9yZXJlYWRfc3Vic2NyaXB0aW9uKHZvaWQpCiAJLyog RW5zdXJlIGFsbG9jYXRpb25zIGluIHBlcm1hbmVudCBjb250ZXh0LiAqLwogCW9sZGN0eCA9IE1l bW9yeUNvbnRleHRTd2l0Y2hUbyhBcHBseUNvbnRleHQpOwogCi0JbmV3c3ViID0gR2V0U3Vic2Ny aXB0aW9uKE15TG9naWNhbFJlcFdvcmtlci0+c3ViaWQsIHRydWUpOworCW5ld3N1YiA9IEdldFN1 YnNjcmlwdGlvbihNeUxvZ2ljYWxSZXBXb3JrZXItPnN1YmlkLCB0cnVlLCB0cnVlKTsKIAogCS8q CiAJICogRXhpdCBpZiB0aGUgc3Vic2NyaXB0aW9uIHdhcyByZW1vdmVkLiBUaGlzIG5vcm1hbGx5 IHNob3VsZCBub3QgaGFwcGVuCkBAIC01MTYxLDcgKzUxNjEsOSBAQCBtYXliZV9yZXJlYWRfc3Vi c2NyaXB0aW9uKHZvaWQpCiB9CiAKIC8qCi0gKiBDYWxsYmFjayBmcm9tIHN1YnNjcmlwdGlvbiBz eXNjYWNoZSBpbnZhbGlkYXRpb24uCisgKiBDYWxsYmFjayBmcm9tIHN1YnNjcmlwdGlvbiBzeXNj YWNoZSBpbnZhbGlkYXRpb24uIEFsc28gbmVlZGVkIGZvciBzZXJ2ZXIgb3IKKyAqIHVzZXIgbWFw cGluZyBpbnZhbGlkYXRpb24sIHdoaWNoIGNhbiBjaGFuZ2UgdGhlIGNvbm5lY3Rpb24gaW5mb3Jt YXRpb24gZm9yCisgKiBzdWJzY3JpcHRpb25zIHRoYXQgY29ubmVjdCB1c2luZyBhIHNlcnZlciBv YmplY3QuCiAgKi8KIHN0YXRpYyB2b2lkCiBzdWJzY3JpcHRpb25fY2hhbmdlX2NiKERhdHVtIGFy ZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCkBAIC01NzY3LDcgKzU3NjksNyBAQCBJ bml0aWFsaXplTG9nUmVwV29ya2VyKHZvaWQpCiAJICovCiAJTG9ja1NoYXJlZE9iamVjdChTdWJz Y3JpcHRpb25SZWxhdGlvbklkLCBNeUxvZ2ljYWxSZXBXb3JrZXItPnN1YmlkLCAwLAogCQkJCQkg QWNjZXNzU2hhcmVMb2NrKTsKLQlNeVN1YnNjcmlwdGlvbiA9IEdldFN1YnNjcmlwdGlvbihNeUxv Z2ljYWxSZXBXb3JrZXItPnN1YmlkLCB0cnVlKTsKKwlNeVN1YnNjcmlwdGlvbiA9IEdldFN1YnNj cmlwdGlvbihNeUxvZ2ljYWxSZXBXb3JrZXItPnN1YmlkLCB0cnVlLCB0cnVlKTsKIAlpZiAoIU15 U3Vic2NyaXB0aW9uKQogCXsKIAkJZXJlcG9ydChMT0csCkBAIC01ODI5LDYgKzU4MzEsMTQgQEAg SW5pdGlhbGl6ZUxvZ1JlcFdvcmtlcih2b2lkKQogCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxi YWNrKFNVQlNDUklQVElPTk9JRCwKIAkJCQkJCQkJICBzdWJzY3JpcHRpb25fY2hhbmdlX2NiLAog CQkJCQkJCQkgIChEYXR1bSkgMCk7CisJLyogS2VlcCB1cyBpbmZvcm1lZCBhYm91dCBzdWJzY3Jp cHRpb24gY2hhbmdlcy4gKi8KKwlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhGT1JFSUdO U0VSVkVST0lELAorCQkJCQkJCQkgIHN1YnNjcmlwdGlvbl9jaGFuZ2VfY2IsCisJCQkJCQkJCSAg KERhdHVtKSAwKTsKKwkvKiBLZWVwIHVzIGluZm9ybWVkIGFib3V0IHN1YnNjcmlwdGlvbiBjaGFu Z2VzLiAqLworCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKFVTRVJNQVBQSU5HT0lELAor CQkJCQkJCQkgIHN1YnNjcmlwdGlvbl9jaGFuZ2VfY2IsCisJCQkJCQkJCSAgKERhdHVtKSAwKTsK IAogCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEFVVEhPSUQsCiAJCQkJCQkJCSAgc3Vi c2NyaXB0aW9uX2NoYW5nZV9jYiwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDI3ZjZiZTNmMGY4Li4zZmE0MTk0 YTAwNCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jCkBAIC01MTIwLDYgKzUxMjAsNyBAQCBnZXRTdWJzY3JpcHRpb25z KEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV9zdWJkaXNhYmxlb25lcnI7CiAJaW50CQkJaV9zdWJw YXNzd29yZHJlcXVpcmVkOwogCWludAkJCWlfc3VicnVuYXNvd25lcjsKKwlpbnQJCQlpX3N1YnNl cnZlcm5hbWU7CiAJaW50CQkJaV9zdWJjb25uaW5mbzsKIAlpbnQJCQlpX3N1YnNsb3RuYW1lOwog CWludAkJCWlfc3Vic3luY2NvbW1pdDsKQEAgLTUyMTYsMTYgKzUyMTcsMjMgQEAgZ2V0U3Vic2Ny aXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTkw MDAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKLQkJCQkJCQkgIiBzLnN1Ym1heHJl dGVudGlvblxuIik7CisJCQkJCQkJICIgcy5zdWJtYXhyZXRlbnRpb24sXG4iKTsKIAllbHNlCiAJ CWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAotCQkJCQkJICAiIDAgQVMgc3VibWF4cmV0ZW50aW9u XG4iKTsKKwkJCQkJCSAgIiAwIEFTIHN1Ym1heHJldGVudGlvbixcbiIpOworCisJaWYgKGRvcHQt PmJpbmFyeV91cGdyYWRlICYmIGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTgwMDAwKQorCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBmcy5zcnZuYW1lIEFTIHN1YnNlcnZlcm5hbWVcbiIp OworCWVsc2UKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgTlVMTCBBUyBzdWJzZXJ2 ZXJuYW1lXG4iKTsKIAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAogCQkJCQkJICJGUk9N IHBnX3N1YnNjcmlwdGlvbiBzXG4iKTsKIAogCWlmIChkb3B0LT5iaW5hcnlfdXBncmFkZSAmJiBm b3V0LT5yZW1vdGVWZXJzaW9uID49IDE3MDAwMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVl cnksCisJCQkJCQkJICJMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19mb3JlaWduX3NlcnZlciBmcyBc biIKKwkJCQkJCQkgIiAgICBPTiBmcy5vaWQgPSBzLnN1YnNlcnZlciBcbiIKIAkJCQkJCQkgIkxF RlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JlcGxpY2F0aW9uX29yaWdpbl9zdGF0dXMgbyBcbiIKIAkJ CQkJCQkgIiAgICBPTiBvLmV4dGVybmFsX2lkID0gJ3BnXycgfHwgcy5vaWQ6OnRleHQgXG4iKTsK IApAQCAtNTI1NSw2ICs1MjYzLDcgQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQog CWlfc3ViZmFpbG92ZXIgPSBQUWZudW1iZXIocmVzLCAic3ViZmFpbG92ZXIiKTsKIAlpX3N1YnJl dGFpbmRlYWR0dXBsZXMgPSBQUWZudW1iZXIocmVzLCAic3VicmV0YWluZGVhZHR1cGxlcyIpOwog CWlfc3VibWF4cmV0ZW50aW9uID0gUFFmbnVtYmVyKHJlcywgInN1Ym1heHJldGVudGlvbiIpOwor CWlfc3Vic2VydmVybmFtZSA9IFBRZm51bWJlcihyZXMsICJzdWJzZXJ2ZXJuYW1lIik7CiAJaV9z dWJjb25uaW5mbyA9IFBRZm51bWJlcihyZXMsICJzdWJjb25uaW5mbyIpOwogCWlfc3Vic2xvdG5h bWUgPSBQUWZudW1iZXIocmVzLCAic3Vic2xvdG5hbWUiKTsKIAlpX3N1YnN5bmNjb21taXQgPSBQ UWZudW1iZXIocmVzLCAic3Vic3luY2NvbW1pdCIpOwpAQCAtNTI3Niw2ICs1Mjg1LDEwIEBAIGdl dFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAogCQlzdWJpbmZvW2ldLnN1YmVuYWJsZWQg PQogCQkJKHN0cmNtcChQUWdldHZhbHVlKHJlcywgaSwgaV9zdWJlbmFibGVkKSwgInQiKSA9PSAw KTsKKwkJaWYgKFBRZ2V0aXNudWxsKHJlcywgaSwgaV9zdWJzZXJ2ZXJuYW1lKSkKKwkJCXN1Ymlu Zm9baV0uc3Vic2VydmVybmFtZSA9IE5VTEw7CisJCWVsc2UKKwkJCXN1YmluZm9baV0uc3Vic2Vy dmVybmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9zdWJzZXJ2ZXJuYW1lKSk7 CiAJCXN1YmluZm9baV0uc3ViYmluYXJ5ID0KIAkJCShzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIGks IGlfc3ViYmluYXJ5KSwgInQiKSA9PSAwKTsKIAkJc3ViaW5mb1tpXS5zdWJzdHJlYW0gPSAqKFBR Z2V0dmFsdWUocmVzLCBpLCBpX3N1YnN0cmVhbSkpOwpAQCAtNTUwMiw5ICs1NTE1LDE3IEBAIGR1 bXBTdWJzY3JpcHRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgU3Vic2NyaXB0aW9uSW5mbyAqc3Vi aW5mbykKIAlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBTVUJTQ1JJUFRJT04gJXM7XG4i LAogCQkJCQkgIHFzdWJuYW1lKTsKIAotCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRF IFNVQlNDUklQVElPTiAlcyBDT05ORUNUSU9OICIsCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnks ICJDUkVBVEUgU1VCU0NSSVBUSU9OICVzICIsCiAJCQkJCSAgcXN1Ym5hbWUpOwotCWFwcGVuZFN0 cmluZ0xpdGVyYWxBSChxdWVyeSwgc3ViaW5mby0+c3ViY29ubmluZm8sIGZvdXQpOworCWlmIChz dWJpbmZvLT5zdWJzZXJ2ZXJuYW1lKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJT RVJWRVIgJXMiLCBmbXRJZChzdWJpbmZvLT5zdWJzZXJ2ZXJuYW1lKSk7CisJfQorCWVsc2UKKwl7 CisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ09OTkVDVElPTiAiKTsKKwkJYXBwZW5kU3Ry aW5nTGl0ZXJhbEFIKHF1ZXJ5LCBzdWJpbmZvLT5zdWJjb25uaW5mbywgZm91dCk7CisJfQogCiAJ LyogQnVpbGQgbGlzdCBvZiBxdW90ZWQgcHVibGljYXRpb25zIGFuZCBhcHBlbmQgdGhlbSB0byBx dWVyeS4gKi8KIAlpZiAoIXBhcnNlUEdBcnJheShzdWJpbmZvLT5zdWJwdWJsaWNhdGlvbnMsICZw dWJuYW1lcywgJm5wdWJuYW1lcykpCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA3MmEwMGUxYmMyMC4uYzcyMGE5 Njk3YTMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzE5LDYgKzcxOSw3IEBAIHR5cGVkZWYgc3RydWN0IF9T dWJzY3JpcHRpb25JbmZvCiAJYm9vbAkJc3ViZmFpbG92ZXI7CiAJYm9vbAkJc3VicmV0YWluZGVh ZHR1cGxlczsKIAlpbnQJCQlzdWJtYXhyZXRlbnRpb247CisJY2hhcgkgICAqc3Vic2VydmVybmFt ZTsKIAljaGFyCSAgICpzdWJjb25uaW5mbzsKIAljaGFyCSAgICpzdWJzbG90bmFtZTsKIAljaGFy CSAgICpzdWJzeW5jY29tbWl0OwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDc1YTEwMWM2YWI1 Li5hYmI2MTI0YWJiYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMzgzOSw3ICszODM5LDcg QEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAKIC8qIENSRUFURSBTVUJT Q1JJUFRJT04gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiU1VCU0NSSVBUSU9OIiwg TWF0Y2hBbnkpKQotCQlDT01QTEVURV9XSVRIKCJDT05ORUNUSU9OIik7CisJCUNPTVBMRVRFX1dJ VEgoIlNFUlZFUiIsICJDT05ORUNUSU9OIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwg IlNVQlNDUklQVElPTiIsIE1hdGNoQW55LCAiQ09OTkVDVElPTiIsIE1hdGNoQW55KSkKIAkJQ09N UExFVEVfV0lUSCgiUFVCTElDQVRJT04iKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAi U1VCU0NSSVBUSU9OIiwgTWF0Y2hBbnksICJDT05ORUNUSU9OIiwKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIuaCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIuaAppbmRleCBkMDNhYjVhNGYyOC4uMjllYWJh NDY3YjYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZm9yZWlnbl9kYXRhX3dy YXBwZXIuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVy LmgKQEAgLTM2LDYgKzM2LDkgQEAgQ0FUQUxPRyhwZ19mb3JlaWduX2RhdGFfd3JhcHBlciwyMzI4 LEZvcmVpZ25EYXRhV3JhcHBlclJlbGF0aW9uSWQpCiAJT2lkCQkJZmR3dmFsaWRhdG9yIEJLSV9M T09LVVBfT1BUKHBnX3Byb2MpOwkvKiBvcHRpb24gdmFsaWRhdGlvbgogCQkJCQkJCQkJCQkJCQkg KiBmdW5jdGlvbiwgb3IgMCBpZgogCQkJCQkJCQkJCQkJCQkgKiBub25lICovCisJT2lkCQkJZmR3 Y29ubmVjdGlvbiBCS0lfTE9PS1VQX09QVChwZ19wcm9jKTsJLyogY29ubmVjdGlvbiBzdHJpbmcK KwkJCQkJCQkJCQkJCQkJICogZnVuY3Rpb24sIG9yIDAgaWYKKwkJCQkJCQkJCQkJCQkJICogbm9u ZSAqLwogCiAjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRz IHN0YXJ0IGhlcmUgKi8KIAlhY2xpdGVtCQlmZHdhY2xbMV07CQkvKiBhY2Nlc3MgcGVybWlzc2lv bnMgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCmluZGV4IDU1Y2I5YjFlZWZh Li5kMjM3YTkzMmViYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3Jp cHRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCkBAIC05 MCw5ICs5MCwxMSBAQCBDQVRBTE9HKHBnX3N1YnNjcmlwdGlvbiw2MTAwLFN1YnNjcmlwdGlvblJl bGF0aW9uSWQpIEJLSV9TSEFSRURfUkVMQVRJT04gQktJX1JPVwogCQkJCQkJCQkJICogZXhjZWVk ZWQgbWF4X3JldGVudGlvbl9kdXJhdGlvbiwgd2hlbgogCQkJCQkJCQkJICogZGVmaW5lZCAqLwog CisJT2lkCQkJc3Vic2VydmVyOwkJLyogU2V0IGlmIGNvbm5lY3Rpbmcgd2l0aCBzZXJ2ZXIgKi8K KwogI2lmZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFy dCBoZXJlICovCiAJLyogQ29ubmVjdGlvbiBzdHJpbmcgdG8gdGhlIHB1Ymxpc2hlciAqLwotCXRl eHQJCXN1YmNvbm5pbmZvIEJLSV9GT1JDRV9OT1RfTlVMTDsKKwl0ZXh0CQlzdWJjb25uaW5mbzsJ LyogU2V0IGlmIGNvbm5lY3Rpbmcgd2l0aCBjb25uZWN0aW9uIHN0cmluZyAqLwogCiAJLyogU2xv dCBuYW1lIG9uIHB1Ymxpc2hlciAqLwogCU5hbWVEYXRhCXN1YnNsb3RuYW1lIEJLSV9GT1JDRV9O VUxMOwpAQCAtMTk5LDcgKzIwMSw4IEBAIHR5cGVkZWYgc3RydWN0IFN1YnNjcmlwdGlvbgogCiAj ZW5kaWYJCQkJCQkJLyogRVhQT1NFX1RPX0NMSUVOVF9DT0RFICovCiAKLWV4dGVybiBTdWJzY3Jp cHRpb24gKkdldFN1YnNjcmlwdGlvbihPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vayk7CitleHRl cm4gU3Vic2NyaXB0aW9uICpHZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBib29sIG1pc3Npbmdf b2ssCisJCQkJCQkJCQkgYm9vbCBhY2xjaGVjayk7CiBleHRlcm4gdm9pZCBGcmVlU3Vic2NyaXB0 aW9uKFN1YnNjcmlwdGlvbiAqc3ViKTsKIGV4dGVybiB2b2lkIERpc2FibGVTdWJzY3JpcHRpb24o T2lkIHN1YmlkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZm9yZWlnbi9mb3JlaWduLmgg Yi9zcmMvaW5jbHVkZS9mb3JlaWduL2ZvcmVpZ24uaAppbmRleCA3ZTlkZWNkMjUzNy4uYTdlNmNm MDIyNmEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2ZvcmVpZ24vZm9yZWlnbi5oCisrKyBiL3Ny Yy9pbmNsdWRlL2ZvcmVpZ24vZm9yZWlnbi5oCkBAIC0yOCw2ICsyOCw3IEBAIHR5cGVkZWYgc3Ry dWN0IEZvcmVpZ25EYXRhV3JhcHBlcgogCWNoYXIJICAgKmZkd25hbWU7CQkvKiBOYW1lIG9mIHRo ZSBGRFcgKi8KIAlPaWQJCQlmZHdoYW5kbGVyOwkJLyogT2lkIG9mIGhhbmRsZXIgZnVuY3Rpb24s IG9yIDAgKi8KIAlPaWQJCQlmZHd2YWxpZGF0b3I7CS8qIE9pZCBvZiB2YWxpZGF0b3IgZnVuY3Rp b24sIG9yIDAgKi8KKwlPaWQJCQlmZHdjb25uZWN0aW9uOwkvKiBPaWQgb2YgY29ubmVjdGlvbiBz dHJpbmcgZnVuY3Rpb24sIG9yIDAgKi8KIAlMaXN0CSAgICpvcHRpb25zOwkJLyogZmR3b3B0aW9u cyBhcyBEZWZFbGVtIGxpc3QgKi8KIH0gRm9yZWlnbkRhdGFXcmFwcGVyOwogCkBAIC02NSwxMCAr NjYsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgRm9yZWlnblRhYmxlCiAKIAogZXh0ZXJuIEZvcmVpZ25T ZXJ2ZXIgKkdldEZvcmVpZ25TZXJ2ZXIoT2lkIHNlcnZlcmlkKTsKK2V4dGVybiBjaGFyICpGb3Jl aWduU2VydmVyTmFtZShPaWQgc2VydmVyaWQpOwogZXh0ZXJuIEZvcmVpZ25TZXJ2ZXIgKkdldEZv cmVpZ25TZXJ2ZXJFeHRlbmRlZChPaWQgc2VydmVyaWQsCiAJCQkJCQkJCQkJCSAgIGJpdHMxNiBm bGFncyk7CiBleHRlcm4gRm9yZWlnblNlcnZlciAqR2V0Rm9yZWlnblNlcnZlckJ5TmFtZShjb25z dCBjaGFyICpzcnZuYW1lLAogCQkJCQkJCQkJCQkgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBj aGFyICpGb3JlaWduU2VydmVyQ29ubmVjdGlvblN0cmluZyhPaWQgdXNlcmlkLCBPaWQgc2VydmVy aWQpOwogZXh0ZXJuIFVzZXJNYXBwaW5nICpHZXRVc2VyTWFwcGluZyhPaWQgdXNlcmlkLCBPaWQg c2VydmVyaWQpOwogZXh0ZXJuIEZvcmVpZ25EYXRhV3JhcHBlciAqR2V0Rm9yZWlnbkRhdGFXcmFw cGVyKE9pZCBmZHdpZCk7CiBleHRlcm4gRm9yZWlnbkRhdGFXcmFwcGVyICpHZXRGb3JlaWduRGF0 YVdyYXBwZXJFeHRlbmRlZChPaWQgZmR3aWQsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggYmM3 YWRiYTRhMGYuLjk3MjlmNWIzZjY4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC00Mzc3LDYg KzQzNzcsNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTdWJzY3JpcHRpb25TdG10CiB7CiAJTm9k ZVRhZwkJdHlwZTsKIAljaGFyCSAgICpzdWJuYW1lOwkJLyogTmFtZSBvZiB0aGUgc3Vic2NyaXB0 aW9uICovCisJY2hhcgkgICAqc2VydmVybmFtZTsJCS8qIFNlcnZlciBuYW1lIG9mIHB1Ymxpc2hl ciAqLwogCWNoYXIJICAgKmNvbm5pbmZvOwkJLyogQ29ubmVjdGlvbiBzdHJpbmcgdG8gcHVibGlz aGVyICovCiAJTGlzdAkgICAqcHVibGljYXRpb247CS8qIE9uZSBvciBtb3JlIHB1YmxpY2F0aW9u IHRvIHN1YnNjcmliZSB0byAqLwogCUxpc3QJICAgKm9wdGlvbnM7CQkvKiBMaXN0IG9mIERlZkVs ZW0gbm9kZXMgKi8KQEAgLTQzODUsNiArNDM4Niw3IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVN1 YnNjcmlwdGlvblN0bXQKIHR5cGVkZWYgZW51bSBBbHRlclN1YnNjcmlwdGlvblR5cGUKIHsKIAlB TFRFUl9TVUJTQ1JJUFRJT05fT1BUSU9OUywKKwlBTFRFUl9TVUJTQ1JJUFRJT05fU0VSVkVSLAog CUFMVEVSX1NVQlNDUklQVElPTl9DT05ORUNUSU9OLAogCUFMVEVSX1NVQlNDUklQVElPTl9TRVRf UFVCTElDQVRJT04sCiAJQUxURVJfU1VCU0NSSVBUSU9OX0FERF9QVUJMSUNBVElPTiwKQEAgLTQ0 MDAsNiArNDQwMiw3IEBAIHR5cGVkZWYgc3RydWN0IEFsdGVyU3Vic2NyaXB0aW9uU3RtdAogCU5v ZGVUYWcJCXR5cGU7CiAJQWx0ZXJTdWJzY3JpcHRpb25UeXBlIGtpbmQ7IC8qIEFMVEVSX1NVQlND UklQVElPTl9PUFRJT05TLCBldGMgKi8KIAljaGFyCSAgICpzdWJuYW1lOwkJLyogTmFtZSBvZiB0 aGUgc3Vic2NyaXB0aW9uICovCisJY2hhcgkgICAqc2VydmVybmFtZTsJCS8qIFNlcnZlciBuYW1l IG9mIHB1Ymxpc2hlciAqLwogCWNoYXIJICAgKmNvbm5pbmZvOwkJLyogQ29ubmVjdGlvbiBzdHJp bmcgdG8gcHVibGlzaGVyICovCiAJTGlzdAkgICAqcHVibGljYXRpb247CS8qIE9uZSBvciBtb3Jl IHB1YmxpY2F0aW9uIHRvIHN1YnNjcmliZSB0byAqLwogCUxpc3QJICAgKm9wdGlvbnM7CQkvKiBM aXN0IG9mIERlZkVsZW0gbm9kZXMgKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvb2lkam9pbnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5v dXQKaW5kZXggMjE1ZWI4OTliZTMuLjU5YzY0MTI2YmRjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL29pZGpvaW5zLm91dApAQCAtMjI0LDYgKzIyNCw3IEBAIE5PVElDRTogIGNoZWNraW5nIHBn X2V4dGVuc2lvbiB7ZXh0Y29uZmlnfSA9PiBwZ19jbGFzcyB7b2lkfQogTk9USUNFOiAgY2hlY2tp bmcgcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIge2Zkd293bmVyfSA9PiBwZ19hdXRoaWQge29pZH0K IE5PVElDRTogIGNoZWNraW5nIHBnX2ZvcmVpZ25fZGF0YV93cmFwcGVyIHtmZHdoYW5kbGVyfSA9 PiBwZ19wcm9jIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19mb3JlaWduX2RhdGFfd3JhcHBl ciB7ZmR3dmFsaWRhdG9yfSA9PiBwZ19wcm9jIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19m b3JlaWduX2RhdGFfd3JhcHBlciB7ZmR3Y29ubmVjdGlvbn0gPT4gcGdfcHJvYyB7b2lkfQogTk9U SUNFOiAgY2hlY2tpbmcgcGdfZm9yZWlnbl9zZXJ2ZXIge3Nydm93bmVyfSA9PiBwZ19hdXRoaWQg e29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX2ZvcmVpZ25fc2VydmVyIHtzcnZmZHd9ID0+IHBn X2ZvcmVpZ25fZGF0YV93cmFwcGVyIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ191c2VyX21h cHBpbmcge3VtdXNlcn0gPT4gcGdfYXV0aGlkIHtvaWR9Ci0tIAoyLjQzLjAKCg== --=-8785MtkWScxXvRwcfshE--