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 1vpvm7-001Q8U-2Y for pgsql-hackers@arkaria.postgresql.org; Tue, 10 Feb 2026 22:00:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vpvm7-00144n-07 for pgsql-hackers@arkaria.postgresql.org; Tue, 10 Feb 2026 22:00:03 +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.96) (envelope-from ) id 1vpvm6-00144d-1t for pgsql-hackers@lists.postgresql.org; Tue, 10 Feb 2026 22:00:03 +0000 Received: from mail-ed1-x531.google.com ([2a00:1450:4864:20::531]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vpvm5-00000000310-14WY for pgsql-hackers@lists.postgresql.org; Tue, 10 Feb 2026 22:00:03 +0000 Received: by mail-ed1-x531.google.com with SMTP id 4fb4d7f45d1cf-65807298140so2008466a12.2 for ; Tue, 10 Feb 2026 14:00:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1770760799; x=1771365599; darn=lists.postgresql.org; h=in-reply-to:references:to:subject:cc:from:message-id:date :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=rxtf4EuBppOGysosxzr8yQf0ftFlcJDTmiZOEKdu+Xg=; b=iBg2kGacIToHP5bqZcO6EnHR1f6yU3DnaxIxqxJNshyyqL8QssOx4CYCur8fyJA70N 98idLxLLPXOHJiCLOdXCdA4HGtvdpvO0DYUd+xK3MFhyBWY4ruKqYYDWgI9R/QD+hkTJ mFrPdqh1P/bYvM960CwdM+pEuusYygnrTvn1QcQFvWCCfTf/wz2EHLR+C6eKabJVR/Mk 16CkRJ6S7+CtPLnY0UHRAh+Ga9MSK0Pyalrlzv8xFjiuUx8YMKc30nxep10PcKT+5n4y g7hmIzhFtFYa9vcp6VU0zMa0sx//6AtEwFB3rdfqYzI12s1gFleeh/NALFZ3VWDdDyyw cUmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770760799; x=1771365599; h=in-reply-to:references:to:subject:cc:from:message-id:date :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=rxtf4EuBppOGysosxzr8yQf0ftFlcJDTmiZOEKdu+Xg=; b=S0Cxdf50kh6aXTGbt+TqsX5HsKaS2QSWfn1KNTbgoqYM5XFfMhwqJD6Q+hXy9YNJpj msHInPi2oE3gpOLNaX5JJtUgccUGh6hPkzSYYGQeFYlVL2OkE9csxQG+vcBpFRdcb+aa Sjd7yLbkNa4BywEZkv6KxzlOxQJ3V+4avnttNos3MCtqZhaLVt7eboAJwbkyzlbi/xB8 1MKABZuOUPABd/1QHr79frov272HVtOJYGGz4mzceJt6F34QfMaSiMQYWcgb46ZsJESz qIqxDaz/AqS1fmYl90Fel7XOig6u5HjUCwfjh0RmioZe3n/5cu3vpItT+YBiYuBtXXL2 nmfg== X-Gm-Message-State: AOJu0YyZtrB4ckjqiXi9FhZgnX34HA/7Q8GGJZhn0AJ57uu3orQeI4vA pONR1G8TiDuj3vZzg7uAcGoPijMXrvnn40X/1AffbaZF3Gwpe8ryCuJlr+uu+xmfjtE= X-Gm-Gg: AZuq6aKGSSt8itxlNQEvf8ghLErVu/v5IF01KbJQdztL+n1bciEH2nbdxVa7u1N12t/ 5OuEPHKh3axIOHCkcIbqU7JAL4A/AoU1J/3M1R1sclCLfB0/ZVStvY51AX7LreyNhInE3nFDqCO XcbttDE67l4ikadFv1DJVCJkNCiqE9MAeW1V15srnzNXd/CkC9R6gZhzH+q0gy5OzDkqwxhroKQ qw5O4gbrbMEvJCSbczOeZyyd7pM8Vp01vFRA6kgbUQltHCgWWQNouShxQK0c5mfRTsuvdzRzlq7 wiRj+LJmjXTd1CUi5pkwXla6uR5++QSGTgdnT7bJ1pU0OMnxOC/ocD8zubx8bxz5+g+k/FqDmZw GD3m4pahKoLhzZlwXkbaCZfOmlgWhMCjEHkkd1NqYOrfMrft9zJBMF6wMXOIXzvaBE/rw9L55nL cJDyJ7/iGLELX25i1NF7OrohjJkc5KOvWyeuDFee6UCMREtaw= X-Received: by 2002:a05:6402:1ec2:b0:658:1274:3841 with SMTP id 4fb4d7f45d1cf-65984195a78mr7913057a12.21.1770760799169; Tue, 10 Feb 2026 13:59:59 -0800 (PST) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-65a3cf45bc8sm22331a12.26.2026.02.10.13.59.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 10 Feb 2026 13:59:58 -0800 (PST) Content-Type: multipart/mixed; boundary=edeaaf7510f4f356c5821b2133ea38909697a1e9293ab38cf02587c97273 Mime-Version: 1.0 Date: Tue, 10 Feb 2026 22:59:57 +0100 Message-Id: From: "Jelte Fennema-Nio" Cc: "PostgreSQL Hackers" , "Dave Cramer" , "Jacob Champion" , "Heikki Linnakangas" Subject: Re: Add GoAway protocol message for graceful but fast server shutdown/switchover To: "Zsolt Parragi" X-Mailer: aerc 0.20.1-31-gf6db7c329ce0 References: In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --edeaaf7510f4f356c5821b2133ea38909697a1e9293ab38cf02587c97273 Content-Type: multipart/alternative; boundary=0994db86f1443f1392005d5d19b508f06feb72625d47c858115dba3dc3d3 --0994db86f1443f1392005d5d19b508f06feb72625d47c858115dba3dc3d3 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Sun Feb 8, 2026 at 11:03 PM CET, Jelte Fennema-Nio wrote: > Attached is v5 Attached is v6 which fixes a rebase conflict. --0994db86f1443f1392005d5d19b508f06feb72625d47c858115dba3dc3d3-- --edeaaf7510f4f356c5821b2133ea38909697a1e9293ab38cf02587c97273 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=nocfbot.v6-0002-Add-pytest-based-tests-for-GoAway-message.patch Content-Type: text/x-patch; charset=utf-8; name=nocfbot.v6-0002-Add-pytest-based-tests-for-GoAway-message.patch RnJvbSA3ZWJiZjY0Yjg0YmIyZTJjMWM2MDE2YmQ4MDIyYmEzOGEwYzQwYzFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBUaHUsIDIzIE9jdCAyMDI1IDE0OjMxOjUyICswMjAwClN1YmplY3Q6IFtQQVRDSCB2 NiAyLzJdIEFkZCBweXRlc3QgYmFzZWQgdGVzdHMgZm9yIEdvQXdheSBtZXNzYWdlCgpJIHVzZWQg dGhpcyBwYXRjaHNldCBhcyBhIHRyaWFsIGZvciB0aGUgbmV3IHB5dGVzdCBzdWl0ZSB0aGF0IEph Y29iIGlzCnRyeWluZyB0byBpbnRyb2R1Y2UuIEZlZWwgZnJlZSB0byBsb29rIGF0IGl0LCBidXQg SSdkIHNheSBkb24ndCByZXZpZXcKdGhpcyB0ZXN0IGluIGRldGFpbCB1bnRpbCB3ZSBoYXZlIHRo ZSBweXRlc3QgY2hhbmdlcyBtZXJnZWQgb3IgYXQgbGVhc3QKaW4gYSBtb3JlIGFncmVlZCB1cG9u IHN0YXRlLiBUaGlzIHBhdGNoIGlzIGJ1aWx0IG9uIHRvcCBvZiB0aGF0IHYzCnBhdGNoc2V0LiBU aGlzIHRlc3QgaXMgbm90IGFwcGxpZWQgYnkgY2Zib3QuCgpUZXN0aW5nIHRoaXMgYW55IG90aGVy IHdheSBpcyBhY3R1YWxseSBxdWl0ZSBkaWZmaWN1bHQgd2l0aCB0aGUKaW5mcmFzdHJ1Y3R1cmUg d2UgY3VycmVudGx5IGhhdmUgKG9mIGNvdXJzZSBJIGNvdWxkIGNoYW5nZSB0aGF0LCBidXQgSSdk Cm11Y2ggcmF0aGVyIHNwZW5kIHRoYXQgZW5lcmd5L3RpbWUgb24gbWFraW5nIHRoZSBweXRlc3Qg dGVzdCBzdWl0ZSBhCnRoaW5nKToKLSBwZ3JlZ3Jlc3MgYW5kIHBlcmwgdGVzdHMgZG9uJ3Qgd29y ayBiZWNhdXNlIHdlIG5lZWQgdG8gY2FsbCBhIG5ldwogIGxpYnBxIGZ1bmN0aW9uIHRoYXQgaXMg bm90IGV4cG9zZWQgaW4gcHNxbCAoSSBndWVzcyBJIGNvdWxkIGV4cG9zZSBpdAogIHdpdGggc29t ZSBcZ29hd2F5cmVjZWl2ZWQgY29tbWFuZCwgYnV0IGl0IGRvZXNuJ3Qgc2VlbSB2ZXJ5IHVzZWZ1 bCkuCi0gbGlicHFfcGlwZWxpbmUgY2Fubm90IHRlc3QgdGhpcyBiZWNhdXNlIGl0IHdvdWxkIG5l ZWQgdG8gcmVzdGFydAogIHRoZSBQb3N0Z3JlcyBzZXJ2ZXIgYW5kIGFsbCBpdCBoYXMKLS0tCiBz cmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZCAgICAgICAgfCAgMSArCiBzcmMvaW50ZXJm YWNlcy9saWJwcS9weXQvdGVzdF9nb2F3YXkucHkgfCA0NyArKysrKysrKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9weXRlc3QvbGlicHEvX2NvcmUucHkgICAgICAgICAgfCAxOCArKysrKysr KysrCiBzcmMvdGVzdC9weXRlc3QvcHlwZy9maXh0dXJlcy5weSAgICAgICAgfCAyNCArKysrKysr KysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDkwIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvaW50ZXJmYWNlcy9saWJwcS9weXQvdGVzdF9nb2F3YXkucHkKCmRpZmYgLS1naXQg YS9zcmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBx L21lc29uLmJ1aWxkCmluZGV4IDU2NzkwZGQ5MmE5Li45ODNhZjFkNWJlYSAxMDA2NDQKLS0tIGEv c3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQKKysrIGIvc3JjL2ludGVyZmFjZXMvbGli cHEvbWVzb24uYnVpbGQKQEAgLTE2Myw2ICsxNjMsNyBAQCB0ZXN0cyArPSB7CiAgICdweXRlc3Qn OiB7CiAgICAgJ3Rlc3RzJzogWwogICAgICAgJ3B5dC90ZXN0X2xvYWRfYmFsYW5jZS5weScsCisg ICAgICAncHl0L3Rlc3RfZ29hd2F5LnB5JywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEv c3JjL2ludGVyZmFjZXMvbGlicHEvcHl0L3Rlc3RfZ29hd2F5LnB5IGIvc3JjL2ludGVyZmFjZXMv bGlicHEvcHl0L3Rlc3RfZ29hd2F5LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5hMDNiNTMzZjNmNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xp YnBxL3B5dC90ZXN0X2dvYXdheS5weQpAQCAtMCwwICsxLDQ3IEBACisjIENvcHlyaWdodCAoYykg MjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIiIiCitUZXN0cyBm b3IgdGhlIEdvQXdheSBwcm90b2NvbCBtZXNzYWdlIGR1cmluZyBzbWFydCBzaHV0ZG93bi4KKwor VGhlIEdvQXdheSBtZXNzYWdlIGlzIHNlbnQgYnkgdGhlIHNlcnZlciBkdXJpbmcgc21hcnQgc2h1 dGRvd24gdG8gcG9saXRlbHkKK3JlcXVlc3QgdGhhdCBjbGllbnRzIGRpc2Nvbm5lY3Qgd2hlbiBj b252ZW5pZW50LiBUaGUgY29ubmVjdGlvbiByZW1haW5zCitmdW5jdGlvbmFsIGFmdGVyIHJlY2Vp dmluZyB0aGUgbWVzc2FnZS4KKyIiIgorCisKK2RlZiB0ZXN0X2dvYXdheV9zbWFydF9zaHV0ZG93 bihwZywgd2FpdF91bnRpbCk6CisgICAgIiIiCisgICAgVGVzdCB0aGF0IEdvQXdheSBtZXNzYWdl IGlzIHNlbnQgZHVyaW5nIHNtYXJ0IHNodXRkb3duLgorCisgICAgVGhpcyB0ZXN0OgorICAgIDEu IENvbm5lY3RzIHRvIGEgcnVubmluZyBQb3N0Z3JlU1FMIHNlcnZlciB2aWEgVW5peCBzb2NrZXQK KyAgICAyLiBWZXJpZmllcyBHb0F3YXkgaXMgbm90IHJlY2VpdmVkIGluaXRpYWxseQorICAgIDMu IEluaXRpYXRlcyBhIHNtYXJ0IHNodXRkb3duCisgICAgNC4gVmVyaWZpZXMgdGhhdCBHb0F3YXkg aXMgcmVjZWl2ZWQKKyAgICA1LiBWZXJpZmllcyB0aGF0IHF1ZXJpZXMgc3RpbGwgd29yayBhZnRl ciBHb0F3YXkKKyAgICAiIiIKKworICAgICMgQ29ubmVjdCB0byB0aGUgc2VydmVyIHZpYSBVbml4 IHNvY2tldCwgbGlicHEgd2lsbCByZXF1ZXN0IHRoZQorICAgICMgX3BxXy5nb2F3YXkgcHJvdG9j b2wgZXh0ZW5zaW9uCisgICAgY29ubiA9IHBnLmNvbm5lY3QobWF4X3Byb3RvY29sX3ZlcnNpb249 ImxhdGVzdCIpCisKKyAgICAjIEluaXRpYWxseSwgR29Bd2F5IHNob3VsZCBub3QgYmUgcmVjZWl2 ZWQKKyAgICBhc3NlcnQgbm90IGNvbm4uZ29hd2F5X3JlY2VpdmVkKCksICJHb0F3YXkgc2hvdWxk IG5vdCBiZSByZWNlaXZlZCBpbml0aWFsbHkiCisKKyAgICAjIEV4ZWN1dGUgYSBzaW1wbGUgcXVl cnkgdG8gZW5zdXJlIGNvbm5lY3Rpb24gaXMgd29ya2luZworICAgIGNvbm4uc3FsKCJTRUxFQ1Qg MSIpCisKKyAgICBwZy5wZ19jdGwoInN0b3AiLCAiLS1tb2RlIiwgInNtYXJ0IiwgIi0tbm8td2Fp dCIpCisKKyAgICBmb3IgXyBpbiB3YWl0X3VudGlsKCJEaWQgbm90IHJlY2VpdmUgR29Bd2F5IGFm dGVyIHNtYXJ0IHNodXRkb3duIik6CisgICAgICAgICMgQ29uc3VtZSBhbnkgZGF0YSB0aGUgYmFj a2VuZCBtYXkgaGF2ZSBzZW50IChsaWtlIEdvQXdheSkKKyAgICAgICAgYXNzZXJ0IGNvbm4uY29u c3VtZV9pbnB1dCgpCisgICAgICAgIGlmIGNvbm4uZ29hd2F5X3JlY2VpdmVkKCk6CisgICAgICAg ICAgICBicmVhaworCisgICAgIyBDb25uZWN0aW9uIHNob3VsZCBzdGlsbCBiZSBmdW5jdGlvbmFs IGFmdGVyIHJlY2VpdmluZyBHb0F3YXkKKyAgICBjb25uLnNxbCgiU0VMRUNUIDIiKQorICAgIGNv bm4uc3FsKCJTRUxFQ1QgMyIpCisKKyAgICAjIFZlcmlmeSBHb0F3YXkgaXMgc3RpbGwgZmxhZ2dl ZAorICAgIGFzc2VydCBjb25uLmdvYXdheV9yZWNlaXZlZCgpLCAiR29Bd2F5IGZsYWcgc2hvdWxk IHJlbWFpbiBzZXQiCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9weXRlc3QvbGlicHEvX2NvcmUucHkg Yi9zcmMvdGVzdC9weXRlc3QvbGlicHEvX2NvcmUucHkKaW5kZXggMWMwNTliOWI0NDYuLmMxMzc2 ODhhMWFhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9weXRlc3QvbGlicHEvX2NvcmUucHkKKysrIGIv c3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL19jb3JlLnB5CkBAIC0xNDcsNiArMTQ3LDEyIEBAIGRlZiBs b2FkX2xpYnBxX2hhbmRsZShsaWJkaXIsIGJpbmRpcik6CiAgICAgbGliLlBRcmVzdWx0RXJyb3JG aWVsZC5yZXN0eXBlID0gY3R5cGVzLmNfY2hhcl9wCiAgICAgbGliLlBRcmVzdWx0RXJyb3JGaWVs ZC5hcmd0eXBlcyA9IFtfUEdyZXN1bHRfcCwgY3R5cGVzLmNfaW50XQogCisgICAgbGliLlBRZ29B d2F5UmVjZWl2ZWQucmVzdHlwZSA9IGN0eXBlcy5jX2ludAorICAgIGxpYi5QUWdvQXdheVJlY2Vp dmVkLmFyZ3R5cGVzID0gW19QR2Nvbm5fcF0KKworICAgIGxpYi5QUWNvbnN1bWVJbnB1dC5yZXN0 eXBlID0gY3R5cGVzLmNfaW50CisgICAgbGliLlBRY29uc3VtZUlucHV0LmFyZ3R5cGVzID0gW19Q R2Nvbm5fcF0KKwogICAgIHJldHVybiBsaWIKIAogCkBAIC00MTksNiArNDI1LDE4IEBAIGNsYXNz IFBHY29ubihjb250ZXh0bGliLkFic3RyYWN0Q29udGV4dE1hbmFnZXIpOgogICAgICAgICBlbHNl OgogICAgICAgICAgICAgcmVzLnJhaXNlX2Vycm9yKCkKIAorICAgIGRlZiBjb25zdW1lX2lucHV0 KHNlbGYpIC0+IGJvb2w6CisgICAgICAgICIiIgorICAgICAgICBDb25zdW1lcyBhbnkgYXZhaWxh YmxlIGlucHV0IGZyb20gdGhlIHNlcnZlci4gUmV0dXJucyBUcnVlIG9uIHN1Y2Nlc3MuCisgICAg ICAgICIiIgorICAgICAgICByZXR1cm4gYm9vbChzZWxmLl9saWIuUFFjb25zdW1lSW5wdXQoc2Vs Zi5faGFuZGxlKSkKKworICAgIGRlZiBnb2F3YXlfcmVjZWl2ZWQoc2VsZikgLT4gYm9vbDoKKyAg ICAgICAgIiIiCisgICAgICAgIFJldHVybnMgVHJ1ZSBpZiBhIEdvQXdheSBtZXNzYWdlIHdhcyBy ZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gYm9v bChzZWxmLl9saWIuUFFnb0F3YXlSZWNlaXZlZChzZWxmLl9oYW5kbGUpKQorCiAKIGRlZiBjb25u c3RyKG9wdHM6IERpY3Rbc3RyLCBBbnldKSAtPiBzdHI6CiAgICAgIiIiCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9weXRlc3QvcHlwZy9maXh0dXJlcy5weSBiL3NyYy90ZXN0L3B5dGVzdC9weXBnL2Zp eHR1cmVzLnB5CmluZGV4IDhjMGNiNjBkYWE1Li40YWE2YzczMzQ5ZCAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcHl0ZXN0L3B5cGcvZml4dHVyZXMucHkKKysrIGIvc3JjL3Rlc3QvcHl0ZXN0L3B5cGcv Zml4dHVyZXMucHkKQEAgLTU3LDYgKzU3LDMwIEBAIGRlZiByZW1haW5pbmdfdGltZW91dF9tb2R1 bGUoKToKICAgICByZXR1cm4gbGFtYmRhOiBtYXgoZGVhZGxpbmUgLSB0aW1lLm1vbm90b25pYygp LCAwKQogCiAKK0BweXRlc3QuZml4dHVyZQorZGVmIHdhaXRfdW50aWwocmVtYWluaW5nX3RpbWVv dXQpOgorICAgIGRlZiB3YWl0X3VudGlsKGVycm9yX21lc3NhZ2U9IkRpZCBub3QgY29tcGxldGUg aW4gdGltZSIsIHRpbWVvdXQ9Tm9uZSwgaW50ZXJ2YWw9MSk6CisgICAgICAgICIiIgorICAgICAg ICBMb29wIHVudGlsIHRoZSB0aW1lb3V0IGlzIHJlYWNoZWQuIElmIHRoZSB0aW1lb3V0IGlzIHJl YWNoZWQsIHJhaXNlIGFuCisgICAgICAgIGV4Y2VwdGlvbiB3aXRoIHRoZSBnaXZlbiBlcnJvciBt ZXNzYWdlLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgdGltZW91dCBpcyBOb25lOgorICAgICAg ICAgICAgdGltZW91dCA9IHJlbWFpbmluZ190aW1lb3V0KCkKKworICAgICAgICBlbmQgPSB0aW1l LnRpbWUoKSArIHRpbWVvdXQKKyAgICAgICAgcHJpbnRfcHJvZ3Jlc3MgPSB0aW1lb3V0IC8gMTAg PiA0CisgICAgICAgIGxhc3RfcHJpbnRlZF9wcm9ncmVzcyA9IDAKKyAgICAgICAgd2hpbGUgdGlt ZS50aW1lKCkgPCBlbmQ6CisgICAgICAgICAgICBpZiBwcmludF9wcm9ncmVzcyBhbmQgdGltZS50 aW1lKCkgLSBsYXN0X3ByaW50ZWRfcHJvZ3Jlc3MgPiA0OgorICAgICAgICAgICAgICAgIGxhc3Rf cHJpbnRlZF9wcm9ncmVzcyA9IHRpbWUudGltZSgpCisgICAgICAgICAgICAgICAgcHJpbnQoZiJ7 ZXJyb3JfbWVzc2FnZX0gLSB3aWxsIHJldHJ5IikKKyAgICAgICAgICAgIHlpZWxkCisgICAgICAg ICAgICB0aW1lLnNsZWVwKGludGVydmFsKQorICAgICAgICByYWlzZSBUaW1lb3V0RXJyb3IoZXJy b3JfbWVzc2FnZSkKKworICAgIHJldHVybiB3YWl0X3VudGlsCisKKwogQHB5dGVzdC5maXh0dXJl KHNjb3BlPSJzZXNzaW9uIikKIGRlZiBsaWJwcV9oYW5kbGUobGliZGlyLCBiaW5kaXIpOgogICAg ICIiIgotLSAKMi41Mi4wCgo= --edeaaf7510f4f356c5821b2133ea38909697a1e9293ab38cf02587c97273 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v6-0001-Add-GoAway-protocol-message-for-graceful-but-fast.patch Content-Type: text/x-patch; charset=utf-8; name=v6-0001-Add-GoAway-protocol-message-for-graceful-but-fast.patch RnJvbSA0ZWY4NDMyNTUwZmY5ZmVhYzNiM2QzMmEwYWZmYzJkOTQyYzU1YzI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBTdW4sIDE5IE9jdCAyMDI1IDAwOjMwOjQ4ICswMjAwClN1YmplY3Q6IFtQQVRDSCB2 NiAxLzJdIEFkZCBHb0F3YXkgcHJvdG9jb2wgbWVzc2FnZSBmb3IgZ3JhY2VmdWwgYnV0IGZhc3QK IHNlcnZlciBzaHV0ZG93bi9zd2l0Y2hvdmVyCgpUaGlzIGNvbW1pdCBpbnRyb2R1Y2VzIGEgbmV3 IEdvQXdheSBiYWNrZW5kLXRvLWZyb250ZW5kIHByb3RvY29sCm1lc3NhZ2UgKGJ5dGUgJ2cnKSB0 aGF0IHRoZSBzZXJ2ZXIgY2FuIHNlbmQgdG8gdGhlIGNsaWVudCB0byBwb2xpdGVseQpyZXF1ZXN0 IHRoYXQgY2xpZW50IHRvIGRpc2Nvbm5lY3QvcmVjb25uZWN0IHdoZW4gY29udmVuaWVudC4gVGhp cyBtZXNzYWdlIGlzCmFkdmlzb3J5IG9ubHkgLSB0aGUgY29ubmVjdGlvbiByZW1haW5zIGZ1bGx5 IGZ1bmN0aW9uYWwgYW5kIGNsaWVudHMgbWF5CmNvbnRpbnVlIGV4ZWN1dGluZyBxdWVyaWVzIGFu ZCBzdGFydGluZyBuZXcgdHJhbnNhY3Rpb25zLiAiV2hlbgpjb252ZW5pZW50IiBpcyBvYnZpb3Vz bHkgbm90IHZlcnkgd2VsbCBkZWZpbmVkLCBidXQgdGhlIHByaW1hcnkgdGFyZ2V0CmNsaWVudHMg YXJlIGNsaWVudHMgdGhhdCBtYWludGFpbiBhIGNvbm5lY3Rpb24gcG9vbC4gU3VjaCBjbGllbnRz IHNob3VsZApkaXNjb25uZWN0L3JlY29ubmVjdCBhIGNvbm5lY3Rpb24gaW4gdGhlIHBvb2wgd2hl biB0aGVyZSdzIG5vIHVzZXIgb2YKdGhhdCBjb25uZWN0aW9uLiBUaGlzIGlzIHNpbWlsYXIgdG8g aG93IHN1Y2ggY2xpZW50cyBvZnRlbiBjdXJyZW50bHkKcmVtb3ZlIGEgY29ubmVjdGlvbiBmcm9t IHRoZSBwb29sIGFmdGVyIHRoZSBjb25uZWN0aW9uIGhpdHMgYSBtYXhpbXVtCmxpZmV0aW1lIG9m IGUuZy4gMSBob3VyLgoKVGhpcyBuZXcgbWVzc2FnZSBpcyB1c2VkIGJ5IFBvc3RncmVzIGR1cmlu ZyB0aGUgYWxyZWFkeSBleGlzdGluZyAic21hcnQiCnNodXRkb3duIHByb2NlZHVyZSAoaS5lLiB3 aGVuIHBvc3RtYXN0ZXIgcmVjZWl2ZXMgU0lHVEVSTSkuIFdoZW4KUG9zdGdyZXMgaXMgaW4gInNt YXJ0IiBzaHV0ZG93biBtb2RlIGV4aXN0aW5nIGNsaWVudHMgY2FuIGNvbnRpbnVlIHRvCnJ1biBx dWVyaWVzIGFzIHVzdWFsIGJ1dCBuZXcgY29ubmVjdGlvbiBhdHRlbXB0cyBhcmUgcmVqZWN0ZWQu IFRoaXMgbW9kZQppcyBwcmltYXJpbHkgdXNlZnVsIHdoZW4gdHJpZ2dlcmluZyBhIHN3aXRjaG92 ZXIgb2YgYSByZWFkIHJlcGxpY2EuIEEKbG9hZCBiYWxhbmNlciBjYW4gcm91dGUgbmV3IGNvbm5l Y3Rpb25zIG9ubHkgdG8gdGhlIG5ldyByZWFkIHJlcGxpY2EsCndoaWxlIHRoZSBvbGQgbG9hZCBi YWxhbmNlciBrZWVwcyBzZXJ2aW5nIHRoZSBleGlzdGluZyBjb25uZWN0aW9ucyB1bnRpbAp0aGV5 IGRpc2Nvbm5lY3QuIFRoZSBwcm9ibGVtIGlzIHRoYXQgdGhpcyBkcmFpbmluZyBvZiBjb25uZWN0 aW9ucyBjb3VsZApvZnRlbiB0YWtlIGEgbG9uZyB0aW1lLiBFdmVuIHdoZW4gY2xpZW50cyBvbmx5 IHJ1biB2ZXJ5IHNob3J0CnF1ZXJpZXMvdHJhbnNhY3Rpb25zIGJlY2F1c2UgdGhlIHNlc3Npb24g Y2FuIGJlIGtlcHQgb3BlbiBtdWNoIGxvbmdlcgoobWFueSBjb25uZWN0aW9uIHBvb2xzIHVzZSAx IGhvdXIgbWF4IGxpZmV0aW1lIG9mIGEgY29ubmVjdGlvbiBieSBkZWZhdWx0KS4KV2l0aCB0aGUg aW50cm9kdWN0aW9uIG9mIHRoZSBHb0F3YXkgbWVzc2FnZSBQb3N0Z3JlcyBub3cgc2VuZHMgdGhp cwptZXNzYWdlIHRvIGFsbCBjb25uZWN0ZWQgY2xpZW50cyB3aGVuIGl0IGVudGVycyBzbWFydCBz aHV0ZG93biBtb2RlLgpJZiB0aGVzZSBjbGllbnRzIHJlc3BvbmQgdG8gdGhlIG1lc3NhZ2UgYnkg cmVjb25uZWN0aW5nL2Rpc2Nvbm5lY3RpbmcKZWFybGllciB0aGFuIHRoZWlyIG1heGltdW0gY29u bmVjdGlvbiBsaWZldGltZSB0aGUgZHJhaW5pbmcgY2FuIGNvbXBsZXRlCm11Y2ggcXVpY2tlci4g U2ltaWxhciBiZW5lZml0cyB0byBzd2l0Y2hvdmVyIGR1cmF0aW9uIGNhbiBiZSBhY2hpZXZlZApm b3Igb3RoZXIgYXBwbGljYXRpb25zIG9yIHByb3hpZXMgaW1wbGVtZW50aW5nIHRoZSBQb3N0Z3Jl cyBwcm90b2NvbCwKbGlrZSB3aGVuIHN3aXRjaGluZyBvdmVyIGEgY2x1c3RlciBvZiBQZ0JvdW5j ZXIgbWFjaGluZXMgdG8gYSBuZXdlcgp2ZXJzaW9uLgoKQXBwbGljYXRpb25zL2NsaWVudHMgdGhh dCB1c2UgbGlicHEgY2FuIHBlcmlvZGljYWxseSBjaGVjayB0aGUgcmVzdWx0IG9mClBRZ29Bd2F5 UmVjZWl2ZWQoKSBhdCBhbiBpbmFjdGl2ZSB0aW1lIHRvIHNlZSB3aGV0aGVyIHRoZXkgYXJlIGFz a2VkIHRvCnJlY29ubmVjdC4KLS0tCiBkb2Mvc3JjL3NnbWwvbGlicHEuc2dtbCAgICAgICAgICAg ICAgfCA1MiArKysrKysrKysrKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21s ICAgICAgICAgICB8IDcwICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jICB8IDIzICsrKysrKysrKwogc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvcHJvY3NpZ25hbC5jIHwgIDMgKysKIHNyYy9iYWNrZW5kL3Rjb3AvYmFja2VuZF9z dGFydHVwLmMgICB8IDIxICsrKysrKystLQogc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAg ICAgICAgIHwgMzYgKysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmgg ICAgICAgICB8ICA1ICsrCiBzcmMvaW5jbHVkZS9saWJwcS9wcm90b2NvbC5oICAgICAgICAgfCAg MSArCiBzcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaCAgICAgfCAgMyArLQogc3JjL2lu Y2x1ZGUvdGNvcC90Y29wcHJvdC5oICAgICAgICAgIHwgIDEgKwogc3JjL2ludGVyZmFjZXMvbGli cHEvZXhwb3J0cy50eHQgICAgIHwgIDEgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVj dC5jICAgIHwgIDEgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jICAgICAgIHwgMjcg KysrKysrKysrKysKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jICB8IDM2ICsr KysrKysrKysrKy0tCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5oICAgICAgfCAgNSAr Kwogc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmggICAgIHwgIDEgKwogMTYgZmlsZXMg Y2hhbmdlZCwgMjc0IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sIGIvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwKaW5kZXgg MjFlMWJhMzRhNGUuLjlhNjM4NDdjZmViIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbGlicHEu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbApAQCAtMjIzMSw2ICsyMjMxLDE0IEBA IHBvc3RncmVzcWw6Ly8lMkZ2YXIlMkZsaWIlMkZwb3N0Z3Jlc3FsL2RibmFtZQogICAgICAgICBl cXVpdmFsZW50IHRvIHRoZSBsYXRlc3QgcHJvdG9jb2wgdmVyc2lvbiBzdXBwb3J0ZWQgYnkgdGhl IGxpYnBxCiAgICAgICAgIHZlcnNpb24gYmVpbmcgdXNlZCwgd2hpY2ggaXMgY3VycmVudGx5IDxs aXRlcmFsPjMuMjwvbGl0ZXJhbD4uCiAgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+Cisg ICAgICAgIFdoZW4gdXNpbmcgcHJvdG9jb2wgdmVyc2lvbiA8bGl0ZXJhbD4zLjI8L2xpdGVyYWw+ IG9yIGhpZ2hlciwKKyAgICAgICAgPGFwcGxpY2F0aW9uPmxpYnBxPC9hcHBsaWNhdGlvbj4gcmVx dWVzdHMgYWxsIHN1cHBvcnRlZAorICAgICAgICA8bGluayBsaW5rZW5kPSJwcm90b2NvbC1leHRl bnNpb25zIj5wcm90b2NvbCBleHRlbnNpb25zPC9saW5rPgorICAgICAgICBmcm9tIHRoZSBzZXJ2 ZXIsIHN1Y2ggYXMgPGxpdGVyYWw+Z29hd2F5PC9saXRlcmFsPgorICAgICAgICB3aGljaCBlbmFi bGVzIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZ29Bd2F5UmVjZWl2ZWQiLz4uCisgICAgICAgPC9w YXJhPgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKQEAgLTI5ODcs NiArMjk5NSw1MCBAQCBpbnQgUFFzZXJ2ZXJWZXJzaW9uKGNvbnN0IFBHY29ubiAqY29ubik7CiAg ICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICA8dmFybGlzdGVudHJ5 IGlkPSJsaWJwcS1QUWdvQXdheVJlY2VpdmVkIj4KKyAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRZ29B d2F5UmVjZWl2ZWQ8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFnb0F3YXlSZWNlaXZl ZDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxw YXJhPgorICAgICAgIFJldHVybnMgdHJ1ZSBpZiB0aGUgc2VydmVyIGhhcyBzZW50IGEgPGxpdGVy YWw+R29Bd2F5PC9saXRlcmFsPiBtZXNzYWdlLAorICAgICAgIHJlcXVlc3RpbmcgdGhlIGNsaWVu dCB0byBkaXNjb25uZWN0IHdoZW4gY29udmVuaWVudC4KKworPHN5bm9wc2lzPgoraW50IFBRZ29B d2F5UmVjZWl2ZWQoY29uc3QgUEdjb25uICpjb25uKTsKKzwvc3lub3BzaXM+CisgICAgICA8L3Bh cmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSA8bGl0ZXJhbD5Hb0F3YXk8L2xpdGVyYWw+ IG1lc3NhZ2UgaXMgc2VudCBieSB0aGUgc2VydmVyIGR1cmluZyBhCisgICAgICAgc21hcnQgc2h1 dGRvd24gdG8gcG9saXRlbHkgcmVxdWVzdCB0aGF0IGNsaWVudHMgZGlzY29ubmVjdC4gVGhpcyBp cworICAgICAgIGFkdmlzb3J5IG9ubHkgLSB0aGUgY29ubmVjdGlvbiByZW1haW5zIGZ1bGx5IGZ1 bmN0aW9uYWwgYW5kIHF1ZXJpZXMKKyAgICAgICBjYW4gY29udGludWUgdG8gYmUgZXhlY3V0ZWQu IEFwcGxpY2F0aW9ucyBjYW4gY2hvb3NlIHRvIGhvbm9yIHRoZSByZXF1ZXN0CisgICAgICAgYnkg Y2FsbGluZyB0aGlzIGZ1bmN0aW9uIHBlcmlvZGljYWxseSBhbmQgZGlzY29ubmVjdCBncmFjZWZ1 bGx5IHdoZW4KKyAgICAgICBwb3NzaWJsZSwgc3VjaCBhcyBhZnRlciBjb21wbGV0aW5nIHRoZSBj dXJyZW50IHRyYW5zYWN0aW9uLgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAg ICBUaGlzIG1lc3NhZ2UgaXMgb25seSBzZW50IHRvIGNsaWVudHMgdGhhdCByZXF1ZXN0IHRoZQor ICAgICAgIDxsaXRlcmFsPmdvYXdheTwvbGl0ZXJhbD4gcHJvdG9jb2wgZXh0ZW5zaW9uIGluIHRo ZSBzdGFydHVwIG1lc3NhZ2UsCisgICAgICAgd2hpY2ggPGFwcGxpY2F0aW9uPmxpYnBxPC9hcHBs aWNhdGlvbj4gZG9lcyB3aGVuIHVzaW5nIHByb3RvY29sIHZlcnNpb24KKyAgICAgICAzLjIgb3Ig aGlnaGVyIChzZWUgPHhyZWYgbGlua2VuZD0ibGlicHEtY29ubmVjdC1tYXgtcHJvdG9jb2wtdmVy c2lvbiIvPikuCisgICAgICAgVGhlIGZ1bmN0aW9uIHJldHVybnMgMSBpZiB0aGUgPGxpdGVyYWw+ R29Bd2F5PC9saXRlcmFsPiBtZXNzYWdlIHdhcworICAgICAgIHJlY2VpdmVkLCAwIG90aGVyd2lz ZS4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAgICAgPGZ1bmN0aW9uPlBRZ29B d2F5UmVjZWl2ZWQ8L2Z1bmN0aW9uPiBkb2VzIG5vdCBhY3R1YWxseSByZWFkIGRhdGEgZnJvbSB0 aGUKKyAgICAgICBzZXJ2ZXI7IGl0IGp1c3QgcmV0dXJucyBtZXNzYWdlcyBwcmV2aW91c2x5IGFi c29yYmVkIGJ5IGFub3RoZXIKKyAgICAgICA8YXBwbGljYXRpb24+bGlicHE8L2FwcGxpY2F0aW9u PiBmdW5jdGlvbi4gU28gbm9ybWFsbHkgeW91IHdvdWxkIGZpcnN0CisgICAgICAgY2FsbCA8eHJl ZiBsaW5rZW5kPSJsaWJwcS1QUWNvbnN1bWVJbnB1dCIvPiwgdGhlbiBjaGVjaworICAgICAgIDxm dW5jdGlvbj5QUWdvQXdheVJlY2VpdmVkPC9mdW5jdGlvbj4uICBZb3UgY2FuIHVzZQorICAgICAg IDxmdW5jdGlvbj5zZWxlY3QoKTwvZnVuY3Rpb24+IHRvIHdhaXQgZm9yIGRhdGEgdG8gYXJyaXZl IGZyb20gdGhlCisgICAgICAgc2VydmVyLCB0aGVyZWJ5IHVzaW5nIG5vIDxhY3JvbnltPkNQVTwv YWNyb255bT4gcG93ZXIgdW5sZXNzIHRoZXJlIGlzCisgICAgICAgc29tZXRoaW5nIHRvIGRvLiAg KFNlZSA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNvY2tldCIvPiB0byBvYnRhaW4gdGhlIGZpbGUK KyAgICAgICBkZXNjcmlwdG9yIG51bWJlciB0byB1c2Ugd2l0aCA8ZnVuY3Rpb24+c2VsZWN0KCk8 L2Z1bmN0aW9uPi4pCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJs aXN0ZW50cnk+CisKICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUWVycm9yTWVzc2FnZSI+ CiAgICAgIDx0ZXJtPgogICAgICAgPGZ1bmN0aW9uPlBRZXJyb3JNZXNzYWdlPC9mdW5jdGlvbj48 aW5kZXh0ZXJtPjxwcmltYXJ5PlBRZXJyb3JNZXNzYWdlPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcHJv dG9jb2wuc2dtbAppbmRleCA4OWFjNjgwZWZkNS4uZTQzMGEwNjE0ZmMgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21s CkBAIC0zMzUsOCArMzM1LDE0IEBACiAKICAgICAgPHRib2R5PgogICAgICAgPHJvdz4KLSAgICAg ICA8ZW50cnkgbmFtZXN0PSJsYXN0IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+Ci0g ICAgICAgIDxlbXBoYXNpcz4oTm8gc3VwcG9ydGVkIHByb3RvY29sIGV4dGVuc2lvbnMgYXJlIGN1 cnJlbnRseSBkZWZpbmVkLik8L2VtcGhhc2lzPgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5nb2F3 YXk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+MTwvbGl0ZXJhbD48 L2VudHJ5PgorICAgICAgIDxlbnRyeT5Qb3N0Z3JlU1FMIDE5PC9lbnRyeT4KKyAgICAgICA8ZW50 cnk+CisgICAgICAgIEVuYWJsZXMgdGhlIHNlcnZlciB0byBzZW5kCisgICAgICAgIDxsaW5rIGxp bmtlbmQ9InByb3RvY29sLW1lc3NhZ2UtZm9ybWF0cy1Hb0F3YXkiPkdvQXdheTwvbGluaz4KKyAg ICAgICAgbWVzc2FnZXMgdG8gcmVxdWVzdCB0aGUgY2xpZW50IHRvIGRpc2Nvbm5lY3Qgd2hlbiBj b252ZW5pZW50LgorICAgICAgICBTZWUgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wtYXN5bmMiLz4g Zm9yIG1vcmUgZGV0YWlscy4KICAgICAgICA8L2VudHJ5PgogICAgICAgPC9yb3c+CiAgICAgIDwv dGJvZHk+CkBAIC02OTksNiArNzA1LDE3IEBACiAgICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0 aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg IDx0ZXJtPkdvQXdheTwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgVGhlIHNlcnZlciByZXF1ZXN0cyB0aGUgY2xpZW50IHBvbGl0ZWx5IHRvIGNsb3NlIHRo ZSBjb25uZWN0aW9uIGF0IGl0cworICAgICAgICBlYXJsaWVzdCBjb252ZW5pZW50IG1vbWVudC4g U2VlIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWFzeW5jIi8+IGZvcgorICAgICAgICBtb3JlIGRl dGFpbHMuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0 ZW50cnk+CiAgICAgPC92YXJpYWJsZWxpc3Q+CiAgICA8L3BhcmE+CiAKQEAgLTE0NDcsNyArMTQ2 NCw3IEBAIFNFTENUIDEvMDs8IS0tIHRoaXMgdHlwbyBpcyBpbnRlbnRpb25hbCAtLT4KICAgIDwv cGFyYT4KIAogICAgPHBhcmE+Ci0gICAgSXQgaXMgcG9zc2libGUgZm9yIE5vdGljZVJlc3BvbnNl IGFuZCBQYXJhbWV0ZXJTdGF0dXMgbWVzc2FnZXMgdG8gYmUKKyAgICBJdCBpcyBwb3NzaWJsZSBm b3IgTm90aWNlUmVzcG9uc2UsIFBhcmFtZXRlclN0YXR1cyBhbmQgR29Bd2F5IG1lc3NhZ2VzIHRv IGJlCiAgICAgaW50ZXJzcGVyc2VkIGJldHdlZW4gQ29weURhdGEgbWVzc2FnZXM7IGZyb250ZW5k cyBtdXN0IGhhbmRsZSB0aGVzZSBjYXNlcywKICAgICBhbmQgc2hvdWxkIGJlIHByZXBhcmVkIGZv ciBvdGhlciBhc3luY2hyb25vdXMgbWVzc2FnZSB0eXBlcyBhcyB3ZWxsIChzZWUKICAgICA8eHJl ZiBsaW5rZW5kPSJwcm90b2NvbC1hc3luYyIvPikuICBPdGhlcndpc2UsIGFueSBtZXNzYWdlIHR5 cGUgb3RoZXIgdGhhbgpAQCAtMTU1OCw2ICsxNTc1LDI4IEBAIFNFTENUIDEvMDs8IS0tIHRoaXMg dHlwbyBpcyBpbnRlbnRpb25hbCAtLT4KICAgICBwYXJhbWV0ZXJzIHRoYXQgaXQgZG9lcyBub3Qg dW5kZXJzdGFuZCBvciBjYXJlIGFib3V0LgogICAgPC9wYXJhPgogCisgICA8cGFyYT4KKyAgICBB IEdvQXdheSBtZXNzYWdlIGlzIHNlbnQgYnkgdGhlIHNlcnZlciB0byBwb2xpdGVseSByZXF1ZXN0 IHRoZSBjbGllbnQgdG8KKyAgICBkaXNjb25uZWN0IHdoZW4gY29udmVuaWVudCBhbmQgcmVjb25u ZWN0IHdoZW4gdGhlIGNsaWVudCBuZWVkcyBhIGNvbm5lY3Rpb24KKyAgICBhZ2Fpbi4gVGhpcyBp cyBhZHZpc29yeSBvbmx5IC0gdGhlIGNvbm5lY3Rpb24gcmVtYWlucyBmdWxseSBmdW5jdGlvbmFs IGFuZAorICAgIHF1ZXJpZXMgY2FuIGNvbnRpbnVlIHRvIGJlIGV4ZWN1dGVkLiAiV2hlbiBjb252 ZW5pZW50IiBpcyB2ZXJ5IHZhZ3VlbHkKKyAgICBkZWZpbmVkIG9uIHB1cnBvc2UgYmVjYXVzZSBp dCBkZXBlbmRzIG9uIHRoZSBjbGllbnQgYW5kIGFwcGxpY2F0aW9uIHdoZXRoZXIKKyAgICBzdWNo IGEgbW9tZW50IGV2ZW4gZXhpc3RzLiBTbyBjbGllbnRzIGFyZSBhbGxvd2VkIHRvIGNvbXBsZXRl bHkgaWdub3JlIHRoaXMKKyAgICBtZXNzYWdlIGFuZCBkaXNjb25uZWN0IHdoZW5ldmVyIHRoZXkg b3RoZXJ3aXNlIHdvdWxkIGhhdmUuIEFuIGltcG9ydGFudAorICAgIHR5cGUgb2YgY2xpZW50IHRo YXQgY2FuIGFjdHVhbGx5IGhvbm9yIHRoZSByZXF1ZXN0IHRvIGRpc2Nvbm5lY3QgZWFybHkgaXMg YQorICAgIGNsaWVudCB0aGF0IG1haW50YWlucyBhIGNvbm5lY3Rpb24gcG9vbC4gU3VjaCBhIGNs aWVudCBjYW4gaG9ub3IgdGhlCisgICAgcmVxdWVzdCBieSBkaXNjb25uZWN0aW5nIGEgY29ubmVj dGlvbiB0aGF0IGhhcyByZWNlaXZlZCBhIEdvQXdheSBtZXNzYWdlCisgICAgd2hlbiBpdCdzIG5v dCBpbiB1c2UgYnkgYSB1c2VyIG9mIHRoZSBwb29sLiBJdCBpcyBhbGxvd2VkIGZvciBhIHNlcnZl ciB0bworICAgIHNlbmQgbXVsdGlwbGUgR29Bd2F5IG1lc3NhZ2VzIG9uIHRoZSBzYW1lIGNvbm5l Y3Rpb24sIGJ1dCBhbnkgc3Vic2VxdWVudAorICAgIEdvQXdheSBtZXNzYWdlcyBhZnRlciB0aGUg Zmlyc3QgR29Bd2F5IGhhdmUgbm8gZWZmZWN0IG9uIHRoZSBjbGllbnQncworICAgIGJlaGF2aW9y LiBUaGUgR29Bd2F5IG1lc3NhZ2UgaXMgY3VycmVudGx5IHNlbnQgYnkgUG9zdGdyZXMgZHVyaW5n IHRoZQorICAgICJzbWFydCIgc2h1dGRvd24gcHJvY2VkdXJlIChpLmUuIHdoZW4gcG9zdG1hc3Rl ciByZWNlaXZlcworICAgIDxzeXN0ZW1pdGVtPlNJR1RFUk08L3N5c3RlbWl0ZW0+KS4gVGhlIHNl cnZlciBvbmx5IHNlbmRzIHRoZSBHb0F3YXkKKyAgICBtZXNzYWdlIHRvIGNsaWVudHMgdGhhdCBy ZXF1ZXN0IHRoZSA8bGl0ZXJhbD5nb2F3YXk8L2xpdGVyYWw+IHByb3RvY29sCisgICAgZXh0ZW5z aW9uIGJ5IHNldHRpbmcgPGxpdGVyYWw+X3BxXy5nb2F3YXk8L2xpdGVyYWw+IHRvIDxsaXRlcmFs PjE8L2xpdGVyYWw+CisgICAgaW4gdGhlIFN0YXJ0dXBNZXNzYWdlLgorICAgPC9wYXJhPgorCiAg ICA8cGFyYT4KICAgICBJZiBhIGZyb250ZW5kIGlzc3VlcyBhIDxjb21tYW5kPkxJU1RFTjwvY29t bWFuZD4gY29tbWFuZCwgdGhlbiB0aGUKICAgICBiYWNrZW5kIHdpbGwgc2VuZCBhIE5vdGlmaWNh dGlvblJlc3BvbnNlIG1lc3NhZ2UgKG5vdCB0byBiZQpAQCAtNTM0OCw2ICs1Mzg3LDMxIEBAIHBz cWwgImRibmFtZT1wb3N0Z3JlcyByZXBsaWNhdGlvbj1kYXRhYmFzZSIgLWMgIklERU5USUZZX1NZ U1RFTTsiCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlz dGVudHJ5IGlkPSJwcm90b2NvbC1tZXNzYWdlLWZvcm1hdHMtR29Bd2F5Ij4KKyAgICA8dGVybT5H b0F3YXkgKEIpPC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHZhcmlhYmxlbGlzdD4KKyAg ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+Qnl0ZTEoJ2cnKTwvdGVybT4KKyAgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgSWRlbnRpZmllcyB0aGUgbWVz c2FnZSBhcyBhIHBvbGl0ZSByZXF1ZXN0IGZvciB0aGUgY2xpZW50IHRvIGRpc2Nvbm5lY3QuCisg ICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzIoNCk8L3Rlcm0+Cisg ICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIExlbmd0aCBvZiBtZXNz YWdlIGNvbnRlbnRzIGluIGJ5dGVzLCBpbmNsdWRpbmcgc2VsZi4KKyAgICAgICAgPC9wYXJhPgor ICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPC92YXJpYWJs ZWxpc3Q+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlz dGVudHJ5IGlkPSJwcm90b2NvbC1tZXNzYWdlLWZvcm1hdHMtR1NTRU5DUmVxdWVzdCI+CiAgICAg PHRlcm0+R1NTRU5DUmVxdWVzdCAoRik8L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgYi9zcmMvYmFja2VuZC9wb3N0 bWFzdGVyL3Bvc3RtYXN0ZXIuYwppbmRleCBkNjEzM2JmZWJjNi4uN2QyYmM1OTEwYzYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCisrKyBiL3NyYy9iYWNr ZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCkBAIC0yMTM0LDcgKzIxMzQsMzAgQEAgcHJvY2Vz c19wbV9zaHV0ZG93bl9yZXF1ZXN0KHZvaWQpCiAJCQkgKiBsYXRlciBzdGF0ZSwgZG8gbm90IGNo YW5nZSBpdC4KIAkJCSAqLwogCQkJaWYgKHBtU3RhdGUgPT0gUE1fUlVOIHx8IHBtU3RhdGUgPT0g UE1fSE9UX1NUQU5EQlkpCisJCQl7CisJCQkJZGxpc3RfaXRlcglpdGVyOworCiAJCQkJY29ubnNB bGxvd2VkID0gZmFsc2U7CisKKwkJCQkvKgorCQkJCSAqIFNpZ25hbCBhbGwgYmFja2VuZHMgdG8g c2VuZCBhIEdvQXdheSBtZXNzYWdlIHRvIHRoZWlyCisJCQkJICogY2xpZW50cywgdG8gcG9saXRl bHkgcmVxdWVzdCB0aGF0IHRoZXkgZGlzY29ubmVjdC4KKwkJCQkgKi8KKwkJCQlkbGlzdF9mb3Jl YWNoKGl0ZXIsICZBY3RpdmVDaGlsZExpc3QpCisJCQkJeworCQkJCQlQTUNoaWxkICAgICpicCA9 IGRsaXN0X2NvbnRhaW5lcihQTUNoaWxkLCBlbGVtLCBpdGVyLmN1cik7CisKKwkJCQkJLyoKKwkJ CQkJICogT25seSBzaWduYWwgcmVndWxhciBiYWNrZW5kcywgc2luY2UgdGhvc2UgbmVlZCB0byBu b3RpZnkKKwkJCQkJICogdGhlaXIgY2xpZW50cyB1c2luZyBhIEdvQXdheSBtZXNzYWdlLgorCQkJ CQkgKi8KKwkJCQkJaWYgKGJwLT5ia2VuZF90eXBlID09IEJfQkFDS0VORCkKKwkJCQkJeworCQkJ CQkJU2VuZFByb2NTaWduYWwoYnAtPnBpZCwgUFJPQ1NJR19TTUFSVF9TSFVURE9XTiwKKwkJCQkJ CQkJCSAgIElOVkFMSURfUFJPQ19OVU1CRVIpOworCQkJCQl9CisJCQkJfQorCQkJfQogCQkJZWxz ZSBpZiAocG1TdGF0ZSA9PSBQTV9TVEFSVFVQIHx8IHBtU3RhdGUgPT0gUE1fUkVDT1ZFUlkpCiAJ CQl7CiAJCQkJLyogVGhlcmUgc2hvdWxkIGJlIG5vIGNsaWVudHMsIHNvIHByb2NlZWQgdG8gc3Rv cCBjaGlsZHJlbiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3Np Z25hbC5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jCmluZGV4IDVkMzM1 NTk5MjZhLi41MTJhNzA1ZGFjNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMv cHJvY3NpZ25hbC5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYwpA QCAtNjk0LDYgKzY5NCw5IEBAIHByb2NzaWduYWxfc2lndXNyMV9oYW5kbGVyKFNJR05BTF9BUkdT KQogCWlmIChDaGVja1Byb2NTaWduYWwoUFJPQ1NJR19MT0dfTUVNT1JZX0NPTlRFWFQpKQogCQlI YW5kbGVMb2dNZW1vcnlDb250ZXh0SW50ZXJydXB0KCk7CiAKKwlpZiAoQ2hlY2tQcm9jU2lnbmFs KFBST0NTSUdfU01BUlRfU0hVVERPV04pKQorCQlIYW5kbGVTbWFydFNodXRkb3duSW50ZXJydXB0 KCk7CisKIAlpZiAoQ2hlY2tQcm9jU2lnbmFsKFBST0NTSUdfUEFSQUxMRUxfQVBQTFlfTUVTU0FH RSkpCiAJCUhhbmRsZVBhcmFsbGVsQXBwbHlNZXNzYWdlSW50ZXJydXB0KCk7CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3Rjb3AvYmFja2VuZF9zdGFydHVwLmMgYi9zcmMvYmFja2VuZC90Y29w L2JhY2tlbmRfc3RhcnR1cC5jCmluZGV4IGM1MTcxMTU5MjdjLi4xN2FiMDYzYmNhYiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdGNvcC9iYWNrZW5kX3N0YXJ0dXAuYworKysgYi9zcmMvYmFja2Vu ZC90Y29wL2JhY2tlbmRfc3RhcnR1cC5jCkBAIC03NzksMTEgKzc3OSwyNCBAQCBQcm9jZXNzU3Rh cnR1cFBhY2tldChQb3J0ICpwb3J0LCBib29sIHNzbF9kb25lLCBib29sIGdzc19kb25lKQogCQkJ ewogCQkJCS8qCiAJCQkJICogQW55IG9wdGlvbiBiZWdpbm5pbmcgd2l0aCBfcHFfLiBpcyByZXNl cnZlZCBmb3IgdXNlIGFzIGEKLQkJCQkgKiBwcm90b2NvbC1sZXZlbCBvcHRpb24sIGJ1dCBhdCBw cmVzZW50IG5vIHN1Y2ggb3B0aW9ucyBhcmUKLQkJCQkgKiBkZWZpbmVkLgorCQkJCSAqIHByb3Rv Y29sLWxldmVsIG9wdGlvbi4KIAkJCQkgKi8KLQkJCQl1bnJlY29nbml6ZWRfcHJvdG9jb2xfb3B0 aW9ucyA9Ci0JCQkJCWxhcHBlbmQodW5yZWNvZ25pemVkX3Byb3RvY29sX29wdGlvbnMsIHBzdHJk dXAobmFtZXB0cikpOworCQkJCWlmIChzdHJjbXAobmFtZXB0ciwgIl9wcV8uZ29hd2F5IikgPT0g MCkKKwkJCQl7CisJCQkJCS8qIENsaWVudCB3YW50cyB0byByZWNlaXZlIEdvQXdheSBtZXNzYWdl cy4gKi8KKwkJCQkJaWYgKHN0cmNtcCh2YWxwdHIsICIxIikgIT0gMCkKKwkJCQkJCWVyZXBvcnQo RkFUQUwsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfUFJPVE9DT0xfVklPTEFUSU9OKSwKKwkJ CQkJCQkJIGVycm1zZygiaW52YWxpZCB2YWx1ZSBmb3IgcHJvdG9jb2wgb3B0aW9uIFwiJXNcIjog XCIlc1wiIiwKKwkJCQkJCQkJCQluYW1lcHRyLCB2YWxwdHIpLAorCQkJCQkJCQkgZXJyaGludCgi VmFsaWQgdmFsdWVzIGFyZTogXCIxXCIuIikpKTsKKwkJCQkJcG9ydC0+Z29hd2F5X25lZ290aWF0 ZWQgPSB0cnVlOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQl1bnJlY29nbml6ZWRfcHJv dG9jb2xfb3B0aW9ucyA9CisJCQkJCQlsYXBwZW5kKHVucmVjb2duaXplZF9wcm90b2NvbF9vcHRp b25zLCBwc3RyZHVwKG5hbWVwdHIpKTsKKwkJCQl9CiAJCQl9CiAJCQllbHNlCiAJCQl7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgYi9zcmMvYmFja2VuZC90Y29wL3Bv c3RncmVzLmMKaW5kZXggMjFkZTE1OGFkYmIuLjFjYzAwZjIzMzg1IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC90Y29wL3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5j CkBAIC00Miw4ICs0MiwxMCBAQAogI2luY2x1ZGUgImNvbW1vbi9wZ19wcm5nLmgiCiAjaW5jbHVk ZSAiaml0L2ppdC5oIgogI2luY2x1ZGUgImxpYnBxL2xpYnBxLmgiCisjaW5jbHVkZSAibGlicHEv cHFjb21tLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKICNpbmNsdWRlICJsaWJwcS9w cXNpZ25hbC5oIgorI2luY2x1ZGUgImxpYnBxL3Byb3RvY29sLmgiCiAjaW5jbHVkZSAibWIvcGdf d2NoYXIuaCIKICNpbmNsdWRlICJtYi9zdHJpbmdpbmZvX21iLmgiCiAjaW5jbHVkZSAibWlzY2Fk bWluLmgiCkBAIC05Miw2ICs5NCwxNCBAQCBjb25zdCBjaGFyICpkZWJ1Z19xdWVyeV9zdHJpbmc7 IC8qIGNsaWVudC1zdXBwbGllZCBxdWVyeSBzdHJpbmcgKi8KIC8qIE5vdGU6IHdoZXJlVG9TZW5k T3V0cHV0IGlzIGluaXRpYWxpemVkIGZvciB0aGUgYm9vdHN0cmFwL3N0YW5kYWxvbmUgY2FzZSAq LwogQ29tbWFuZERlc3Qgd2hlcmVUb1NlbmRPdXRwdXQgPSBEZXN0RGVidWc7CiAKKy8qCisgKiBU cmFjayB3aGV0aGVyIHdlJ3ZlIGJlZW4gbm90aWZpZWQgb2Ygc21hcnQgc2h1dGRvd24gYW5kIHNl bnQgR29Bd2F5LgorICogU21hcnRTaHV0ZG93blBlbmRpbmcgaXMgc2V0IGJ5IHRoZSBQUk9DU0lH X1NNQVJUX1NIVVRET1dOIHNpZ25hbCBoYW5kbGVyLgorICogR29Bd2F5U2VudCB0cmFja3Mgd2hl dGhlciB3ZSd2ZSBhbHJlYWR5IHNlbnQgdGhlIEdvQXdheSBtZXNzYWdlLgorICovCitzdGF0aWMg dm9sYXRpbGUgc2lnX2F0b21pY190IFNtYXJ0U2h1dGRvd25QZW5kaW5nID0gZmFsc2U7CitzdGF0 aWMgYm9vbCBHb0F3YXlTZW50ID0gZmFsc2U7CisKIC8qIGZsYWcgZm9yIGxvZ2dpbmcgZW5kIG9m IHNlc3Npb24gKi8KIGJvb2wJCUxvZ19kaXNjb25uZWN0aW9ucyA9IGZhbHNlOwogCkBAIC01MDcs NiArNTE3LDIwIEBAIFByb2Nlc3NDbGllbnRSZWFkSW50ZXJydXB0KGJvb2wgYmxvY2tlZCkKIAkJ LyogQ2hlY2sgZm9yIGdlbmVyYWwgaW50ZXJydXB0cyB0aGF0IGFycml2ZWQgYmVmb3JlL3doaWxl IHJlYWRpbmcgKi8KIAkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKIAorCQkvKiBTZW5kIEdvQXdh eSBtZXNzYWdlIGlmIHNtYXJ0IHNodXRkb3duIGlzIHBlbmRpbmcgKi8KKwkJaWYgKFNtYXJ0U2h1 dGRvd25QZW5kaW5nICYmICFHb0F3YXlTZW50ICYmCisJCQl3aGVyZVRvU2VuZE91dHB1dCA9PSBE ZXN0UmVtb3RlICYmCisJCQlNeVByb2NQb3J0ICYmIE15UHJvY1BvcnQtPmdvYXdheV9uZWdvdGlh dGVkKQorCQl7CisJCQlTdHJpbmdJbmZvRGF0YSBidWY7CisKKwkJCXBxX2JlZ2lubWVzc2FnZSgm YnVmLCBQcU1zZ19Hb0F3YXkpOworCQkJcHFfZW5kbWVzc2FnZSgmYnVmKTsKKwkJCXBxX2ZsdXNo KCk7CisKKwkJCUdvQXdheVNlbnQgPSB0cnVlOworCQl9CisKIAkJLyogUHJvY2VzcyBzaW52YWwg Y2F0Y2h1cCBpbnRlcnJ1cHRzLCBpZiBhbnkgKi8KIAkJaWYgKGNhdGNodXBJbnRlcnJ1cHRQZW5k aW5nKQogCQkJUHJvY2Vzc0NhdGNodXBJbnRlcnJ1cHQoKTsKQEAgLTMwNjYsNiArMzA5MCwxOCBA QCBGbG9hdEV4Y2VwdGlvbkhhbmRsZXIoU0lHTkFMX0FSR1MpCiAJCQkJCSAgICJpbnZhbGlkIG9w ZXJhdGlvbiwgc3VjaCBhcyBkaXZpc2lvbiBieSB6ZXJvLiIpKSk7CiB9CiAKKy8qCisgKiBUZWxs IHRoZSBuZXh0IFByb2Nlc3NDbGllbnRSZWFkSW50ZXJydXB0KCkgY2FsbCB0byBzZW5kIGEgR29B d2F5IG1lc3NhZ2UgdG8KKyAqIHRoZSBjbGllbnQuICBSdW5zIGluIGEgU0lHVVNSMSBoYW5kbGVy LgorICovCit2b2lkCitIYW5kbGVTbWFydFNodXRkb3duSW50ZXJydXB0KHZvaWQpCit7CisJU21h cnRTaHV0ZG93blBlbmRpbmcgPSB0cnVlOworCUludGVycnVwdFBlbmRpbmcgPSB0cnVlOworCS8q IGxhdGNoIHdpbGwgYmUgc2V0IGJ5IHByb2NzaWduYWxfc2lndXNyMV9oYW5kbGVyICovCit9CisK IC8qCiAgKiBUZWxsIHRoZSBuZXh0IENIRUNLX0ZPUl9JTlRFUlJVUFRTKCkgdG8gcHJvY2VzcyBy ZWNvdmVyeSBjb25mbGljdHMuICBSdW5zCiAgKiBpbiBhIFNJR1VTUjEgaGFuZGxlci4KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmggYi9zcmMvaW5jbHVkZS9saWJwcS9s aWJwcS1iZS5oCmluZGV4IDkyMWIyZGFhNGZmLi5iODc2OTQxMmM3MiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbGlicHEvbGlicHEtYmUuaAorKysgYi9zcmMvaW5jbHVkZS9saWJwcS9saWJwcS1i ZS5oCkBAIC0yMDIsNiArMjAyLDExIEBAIHR5cGVkZWYgc3RydWN0IFBvcnQKIAl2b2lkCSAgICpn c3M7CiAjZW5kaWYKIAorCS8qCisJICogUHJvdG9jb2wgZXh0ZW5zaW9ucy4KKwkgKi8KKwlib29s CQlnb2F3YXlfbmVnb3RpYXRlZDsJLyogY2xpZW50IHN1cHBvcnRzIEdvQXdheSBtZXNzYWdlICov CisKIAkvKgogCSAqIFNTTCBzdHJ1Y3R1cmVzLgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbGlicHEvcHJvdG9jb2wuaCBiL3NyYy9pbmNsdWRlL2xpYnBxL3Byb3RvY29sLmgKaW5kZXgg ZWFlOGYwZTcyMzguLmZkM2MxOTVkYWEyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9saWJwcS9w cm90b2NvbC5oCisrKyBiL3NyYy9pbmNsdWRlL2xpYnBxL3Byb3RvY29sLmgKQEAgLTUzLDYgKzUz LDcgQEAKICNkZWZpbmUgUHFNc2dfRnVuY3Rpb25DYWxsUmVzcG9uc2UJJ1YnCiAjZGVmaW5lIFBx TXNnX0NvcHlCb3RoUmVzcG9uc2UJCSdXJwogI2RlZmluZSBQcU1zZ19SZWFkeUZvclF1ZXJ5CQkJ J1onCisjZGVmaW5lIFBxTXNnX0dvQXdheQkJCQknZycKICNkZWZpbmUgUHFNc2dfTm9EYXRhCQkJ CSduJwogI2RlZmluZSBQcU1zZ19Qb3J0YWxTdXNwZW5kZWQJCSdzJwogI2RlZmluZSBQcU1zZ19Q YXJhbWV0ZXJEZXNjcmlwdGlvbgkndCcKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uv cHJvY3NpZ25hbC5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmgKaW5kZXggMzQ4 ZmJhNTNhOTMuLmJiYTM4YjkyZjIyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3By b2NzaWduYWwuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaApAQCAtMzks OSArMzksMTAgQEAgdHlwZWRlZiBlbnVtCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVCwJLyog YmFja2VuZCBpcyBibG9ja2luZyByZWNvdmVyeSwgY2hlY2sKIAkJCQkJCQkJICogUEdQUk9DLT5w ZW5kaW5nUmVjb3ZlcnlDb25mbGljdHMgZm9yIHRoZQogCQkJCQkJCQkgKiByZWFzb24gKi8KKwlQ Uk9DU0lHX1NNQVJUX1NIVVRET1dOLAkJLyogbm90aWZ5IGJhY2tlbmQgb2Ygc21hcnQgc2h1dGRv d24gKi8KIH0gUHJvY1NpZ25hbFJlYXNvbjsKIAotI2RlZmluZSBOVU1fUFJPQ1NJR05BTFMgKFBS T0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1QgKyAxKQorI2RlZmluZSBOVU1fUFJPQ1NJR05BTFMgKFBS T0NTSUdfU01BUlRfU0hVVERPV04gKyAxKQogCiB0eXBlZGVmIGVudW0KIHsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3Rjb3AvdGNvcHByb3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvdGNvcHByb3Qu aAppbmRleCA1YmM1YmNmYjIwZC4uNzQ0NzYwOWIzY2YgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3Rjb3AvdGNvcHByb3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL3Rjb3Bwcm90LmgKQEAgLTc0 LDYgKzc0LDcgQEAgZXh0ZXJuIHZvaWQgZGllKFNJR05BTF9BUkdTKTsKIHBnX25vcmV0dXJuIGV4 dGVybiB2b2lkIHF1aWNrZGllKFNJR05BTF9BUkdTKTsKIGV4dGVybiB2b2lkIFN0YXRlbWVudENh bmNlbEhhbmRsZXIoU0lHTkFMX0FSR1MpOwogcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgRmxvYXRF eGNlcHRpb25IYW5kbGVyKFNJR05BTF9BUkdTKTsKK2V4dGVybiB2b2lkIEhhbmRsZVNtYXJ0U2h1 dGRvd25JbnRlcnJ1cHQodm9pZCk7CiBleHRlcm4gdm9pZCBIYW5kbGVSZWNvdmVyeUNvbmZsaWN0 SW50ZXJydXB0KHZvaWQpOwogZXh0ZXJuIHZvaWQgUHJvY2Vzc0NsaWVudFJlYWRJbnRlcnJ1cHQo Ym9vbCBibG9ja2VkKTsKIGV4dGVybiB2b2lkIFByb2Nlc3NDbGllbnRXcml0ZUludGVycnVwdChi b29sIGJsb2NrZWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZXhwb3J0cy50 eHQgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dAppbmRleCBkYmJhZTY0MmQ3Ni4u MzM4NWU2NWMzODkgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0 CisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0CkBAIC0yMTAsMyArMjEwLDQg QEAgUFFnZXRBdXRoRGF0YUhvb2sgICAgICAgICAyMDcKIFBRZGVmYXVsdEF1dGhEYXRhSG9vayAg ICAgMjA4CiBQUWZ1bGxQcm90b2NvbFZlcnNpb24gICAgIDIwOQogYXBwZW5kUFFFeHBCdWZmZXJW QSAgICAgICAyMTAKK1BRZ29Bd2F5UmVjZWl2ZWQgICAgICAgICAgMjExCmRpZmYgLS1naXQgYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9m ZS1jb25uZWN0LmMKaW5kZXggYTBkMmY3NDk4MTEuLmM3NTgwODc0YjVhIDEwMDY0NAotLS0gYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGli cHEvZmUtY29ubmVjdC5jCkBAIC03MDAsNiArNzAwLDcgQEAgcHFEcm9wU2VydmVyRGF0YShQR2Nv bm4gKmNvbm4pCiAJY29ubi0+cGFzc3dvcmRfbmVlZGVkID0gZmFsc2U7CiAJY29ubi0+Z3NzYXBp X3VzZWQgPSBmYWxzZTsKIAljb25uLT53cml0ZV9mYWlsZWQgPSBmYWxzZTsKKwljb25uLT5nb2F3 YXlfcmVjZWl2ZWQgPSBmYWxzZTsKIAlmcmVlKGNvbm4tPndyaXRlX2Vycl9tc2cpOwogCWNvbm4t PndyaXRlX2Vycl9tc2cgPSBOVUxMOwogCWNvbm4tPm9hdXRoX3dhbnRfcmV0cnkgPSBmYWxzZTsK ZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYyBiL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL2ZlLWV4ZWMuYwppbmRleCAyMDNkMzg4YmRiZi4uYmMxZDk1MzI0ZWQgMTAwNjQ0 Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYworKysgYi9zcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1leGVjLmMKQEAgLTI3MDIsNiArMjcwMiwzMyBAQCBQUW5vdGlmaWVzKFBHY29u biAqY29ubikKIAlyZXR1cm4gZXZlbnQ7CiB9CiAKKy8qCisgKiBQUWdvQXdheVJlY2VpdmVkCisg KgkgIHJldHVybnMgMSBpZiBhIEdvQXdheSBtZXNzYWdlIGhhcyBiZWVuIHJlY2VpdmVkIGZyb20g dGhlIHNlcnZlcgorICoJICByZXR1cm5zIDAgaWYgbm90CisgKgorICogTm90ZSB0aGF0IHRoaXMg ZnVuY3Rpb24gZG9lcyBub3QgcmVhZCBhbnkgbmV3IGRhdGEgZnJvbSB0aGUgc29ja2V0OworICog Y2FsbGVyIHNob3VsZCBjYWxsIFBRY29uc3VtZUlucHV0KCkgZmlyc3QgaWYgdGhleSB3YW50IHRv IGVuc3VyZQorICogYWxsIGF2YWlsYWJsZSBkYXRhIGhhcyBiZWVuIHJlYWQuCisgKi8KK2ludAor UFFnb0F3YXlSZWNlaXZlZChQR2Nvbm4gKmNvbm4pCit7CisJaWYgKCFjb25uKQorCQlyZXR1cm4g MDsKKworCWlmIChjb25uLT5nb2F3YXlfcmVjZWl2ZWQpCisJCXJldHVybiAxOworCisJLyoKKwkg KiBQYXJzZSBhbnkgYXZhaWxhYmxlIGRhdGEgdG8gc2VlIGlmIGEgR29Bd2F5IG1lc3NhZ2UgaGFz IGFycml2ZWQuCisJICovCisJcGFyc2VJbnB1dChjb25uKTsKKworCXJldHVybiBjb25uLT5nb2F3 YXlfcmVjZWl2ZWQgPyAxIDogMDsKK30KKworCiAvKgogICogUFFwdXRDb3B5RGF0YSAtIHNlbmQg c29tZSBkYXRhIHRvIHRoZSBiYWNrZW5kIGR1cmluZyBDT1BZIElOIG9yIENPUFkgQk9USAogICoK ZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jIGIvc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMKaW5kZXggOTBiYmIyZWJhMWYuLmQ3NmYxMmM0 ZTYwIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYworKysg Yi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYwpAQCAtMTM0LDggKzEzNCw4IEBA IHBxUGFyc2VJbnB1dDMoUEdjb25uICpjb25uKQogCQl9CiAKIAkJLyoKLQkJICogTk9USUZZIGFu ZCBOT1RJQ0UgbWVzc2FnZXMgY2FuIGhhcHBlbiBpbiBhbnkgc3RhdGU7IGFsd2F5cyBwcm9jZXNz Ci0JCSAqIHRoZW0gcmlnaHQgYXdheS4KKwkJICogTk9USUZZIGFuZCBOT1RJQ0UgYW5kIEdvQXdh eSBtZXNzYWdlcyBjYW4gaGFwcGVuIGluIGFueSBzdGF0ZTsKKwkJICogYWx3YXlzIHByb2Nlc3Mg dGhlbSByaWdodCBhd2F5LgogCQkgKgogCQkgKiBNb3N0IG90aGVyIG1lc3NhZ2VzIHNob3VsZCBv bmx5IGJlIHByb2Nlc3NlZCB3aGlsZSBpbiBCVVNZIHN0YXRlLgogCQkgKiAoSW4gcGFydGljdWxh ciwgaW4gUkVBRFkgc3RhdGUgd2UgaG9sZCBvZmYgZnVydGhlciBwYXJzaW5nIHVudGlsCkBAIC0x NTksNiArMTU5LDEwIEBAIHBxUGFyc2VJbnB1dDMoUEdjb25uICpjb25uKQogCQkJaWYgKHBxR2V0 RXJyb3JOb3RpY2UzKGNvbm4sIGZhbHNlKSkKIAkJCQlyZXR1cm47CiAJCX0KKwkJZWxzZSBpZiAo aWQgPT0gUHFNc2dfR29Bd2F5KQorCQl7CisJCQljb25uLT5nb2F3YXlfcmVjZWl2ZWQgPSB0cnVl OworCQl9CiAJCWVsc2UgaWYgKGNvbm4tPmFzeW5jU3RhdHVzICE9IFBHQVNZTkNfQlVTWSkKIAkJ ewogCQkJLyogSWYgbm90IElETEUgc3RhdGUsIGp1c3Qgd2FpdCAuLi4gKi8KQEAgLTE1MTEsOCAr MTUxNSw3IEBAIHBxR2V0TmVnb3RpYXRlUHJvdG9jb2xWZXJzaW9uMyhQR2Nvbm4gKmNvbm4pCiAJ Y29ubi0+cHZlcnNpb24gPSB0aGVpcl92ZXJzaW9uOwogCiAJLyoKLQkgKiBXZSBkb24ndCBjdXJy ZW50bHkgcmVxdWVzdCBhbnkgcHJvdG9jb2wgZXh0ZW5zaW9ucywgc28gd2UgZG9uJ3QgZXhwZWN0 Ci0JICogdGhlIHNlcnZlciB0byByZXBseSB3aXRoIGFueSBlaXRoZXIuCisJICogUHJvY2VzcyB0 aGUgbGlzdCBvZiB1bnN1cHBvcnRlZCBwcm90b2NvbCBleHRlbnNpb25zLgogCSAqLwogCWZvciAo aW50IGkgPSAwOyBpIDwgbnVtOyBpKyspCiAJewpAQCAtMTUyNSw2ICsxNTI4LDE3IEBAIHBxR2V0 TmVnb3RpYXRlUHJvdG9jb2xWZXJzaW9uMyhQR2Nvbm4gKmNvbm4pCiAJCQlsaWJwcV9hcHBlbmRf Y29ubl9lcnJvcihjb25uLCAicmVjZWl2ZWQgaW52YWxpZCBwcm90b2NvbCBuZWdvdGlhdGlvbiBt ZXNzYWdlOiBzZXJ2ZXIgcmVwb3J0ZWQgdW5zdXBwb3J0ZWQgcGFyYW1ldGVyIG5hbWUgd2l0aG91 dCBhIFwiJXNcIiBwcmVmaXggKFwiJXNcIikiLCAiX3BxXy4iLCBjb25uLT53b3JrQnVmZmVyLmRh dGEpOwogCQkJZ290byBmYWlsdXJlOwogCQl9CisKKwkJLyoKKwkJICogSGFuZGxlIGtub3duIHBy b3RvY29sIGV4dGVuc2lvbnMuIFVua25vd24gZXh0ZW5zaW9ucyB0aGF0IHdlcmUgbm90CisJCSAq IHJlcXVlc3RlZCBieSB1cyBhcmUgYW4gZXJyb3IuCisJCSAqLworCQlpZiAoc3RyY21wKGNvbm4t PndvcmtCdWZmZXIuZGF0YSwgIl9wcV8uZ29hd2F5IikgPT0gMCkKKwkJeworCQkJLyogU2VydmVy IGRvZXNuJ3Qgc3VwcG9ydCBHb0F3YXksIHRoYXQncyBmaW5lICovCisJCQljb250aW51ZTsKKwkJ fQorCiAJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJyZWNlaXZlZCBpbnZhbGlkIHBy b3RvY29sIG5lZ290aWF0aW9uIG1lc3NhZ2U6IHNlcnZlciByZXBvcnRlZCBhbiB1bnN1cHBvcnRl ZCBwYXJhbWV0ZXIgdGhhdCB3YXMgbm90IHJlcXVlc3RlZCAoXCIlc1wiKSIsIGNvbm4tPndvcmtC dWZmZXIuZGF0YSk7CiAJCWdvdG8gZmFpbHVyZTsKIAl9CkBAIC0xODY4LDYgKzE4ODIsOSBAQCBn ZXRDb3B5RGF0YU1lc3NhZ2UoUEdjb25uICpjb25uKQogCQkJCWlmIChnZXRQYXJhbWV0ZXJTdGF0 dXMoY29ubikpCiAJCQkJCXJldHVybiAwOwogCQkJCWJyZWFrOworCQkJY2FzZSBQcU1zZ19Hb0F3 YXk6CisJCQkJY29ubi0+Z29hd2F5X3JlY2VpdmVkID0gdHJ1ZTsKKwkJCQlicmVhazsKIAkJCWNh c2UgUHFNc2dfQ29weURhdGE6CiAJCQkJcmV0dXJuIG1zZ0xlbmd0aDsKIAkJCWNhc2UgUHFNc2df Q29weURvbmU6CkBAIC0yMzYxLDYgKzIzNzgsOSBAQCBwcUZ1bmN0aW9uQ2FsbDMoUEdjb25uICpj b25uLCBPaWQgZm5pZCwKIAkJCQlpZiAoZ2V0UGFyYW1ldGVyU3RhdHVzKGNvbm4pKQogCQkJCQlj b250aW51ZTsKIAkJCQlicmVhazsKKwkJCWNhc2UgUHFNc2dfR29Bd2F5OgorCQkJCWNvbm4tPmdv YXdheV9yZWNlaXZlZCA9IHRydWU7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIFRo ZSBiYWNrZW5kIHZpb2xhdGVzIHRoZSBwcm90b2NvbC4gKi8KIAkJCQlsaWJwcV9hcHBlbmRfY29u bl9lcnJvcihjb25uLCAicHJvdG9jb2wgZXJyb3I6IGlkPTB4JXgiLCBpZCk7CkBAIC0yNDg2LDYg KzI1MDYsMTQgQEAgYnVpbGRfc3RhcnR1cF9wYWNrZXQoY29uc3QgUEdjb25uICpjb25uLCBjaGFy ICpwYWNrZXQsCiAJCX0KIAl9CiAKKwkvKgorCSAqIFJlcXVlc3QgcHJvdG9jb2wgZXh0ZW5zaW9u cy4gT25seSBkbyB0aGlzIGZvciBwcm90b2NvbCB2ZXJzaW9uIDMuMiBhbmQKKwkgKiBsYXRlciwg dG8gYXZvaWQgY29uZnVzaW5nIG9sZCBwcm94aWVzIHRoYXQgZG9uJ3QgdW5kZXJzdGFuZCBfcHFf LioKKwkgKiBvcHRpb25zLgorCSAqLworCWlmIChjb25uLT5wdmVyc2lvbiA+PSBQR19QUk9UT0NP TCgzLCAyKSkKKwkJQUREX1NUQVJUVVBfT1BUSU9OKCJfcHFfLmdvYXdheSIsICIxIik7CisKIAkv KiBBZGQgdHJhaWxpbmcgdGVybWluYXRvciAqLwogCWlmIChwYWNrZXQpCiAJCXBhY2tldFtwYWNr ZXRfbGVuXSA9ICdcMCc7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1m ZS5oIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZmUuaAppbmRleCA5MDVmMmYzM2FiOC4u OTZlZmRjYzUyM2QgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgK KysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZmUuaApAQCAtNjMsNiArNjMsMTAgQEAg ZXh0ZXJuICJDIgogLyogSW5kaWNhdGVzIHByZXNlbmNlIG9mIHRoZSBQUUFVVEhEQVRBX1BST01Q VF9PQVVUSF9ERVZJQ0UgYXV0aGRhdGEgaG9vayAqLwogI2RlZmluZSBMSUJQUV9IQVNfUFJPTVBU X09BVVRIX0RFVklDRSAxCiAKKy8qIEZlYXR1cmVzIGFkZGVkIGluIFBvc3RncmVTUUwgdjE5OiAq LworLyogSW5kaWNhdGVzIHByZXNlbmNlIG9mIFBRZ29Bd2F5UmVjZWl2ZWQgKi8KKyNkZWZpbmUg TElCUFFfSEFTX0dPQVdBWSAxCisKIC8qCiAgKiBPcHRpb24gZmxhZ3MgZm9yIFBRY29weVJlc3Vs dAogICovCkBAIC00MTEsNiArNDE1LDcgQEAgZXh0ZXJuIGNvbnN0IGNoYXIgKlBRcGFyYW1ldGVy U3RhdHVzKGNvbnN0IFBHY29ubiAqY29ubiwKIGV4dGVybiBpbnQJUFFwcm90b2NvbFZlcnNpb24o Y29uc3QgUEdjb25uICpjb25uKTsKIGV4dGVybiBpbnQJUFFmdWxsUHJvdG9jb2xWZXJzaW9uKGNv bnN0IFBHY29ubiAqY29ubik7CiBleHRlcm4gaW50CVBRc2VydmVyVmVyc2lvbihjb25zdCBQR2Nv bm4gKmNvbm4pOworZXh0ZXJuIGludAlQUWdvQXdheVJlY2VpdmVkKFBHY29ubiAqY29ubik7CiBl eHRlcm4gY2hhciAqUFFlcnJvck1lc3NhZ2UoY29uc3QgUEdjb25uICpjb25uKTsKIGV4dGVybiBp bnQJUFFzb2NrZXQoY29uc3QgUEdjb25uICpjb25uKTsKIGV4dGVybiBpbnQJUFFiYWNrZW5kUElE KGNvbnN0IFBHY29ubiAqY29ubik7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9s aWJwcS1pbnQuaCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5oCmluZGV4IGZiNmE3 Y2JmMTVkLi5kMjAyNmE2YTg0OSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGli cHEtaW50LmgKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgKQEAgLTUxMSw2 ICs1MTEsNyBAQCBzdHJ1Y3QgcGdfY29ubgogCWJvb2wJCXNpZ3BpcGVfZmxhZzsJLyogY2FuIHdl IG1hc2sgU0lHUElQRSB2aWEgTVNHX05PU0lHTkFMPyAqLwogCWJvb2wJCXdyaXRlX2ZhaWxlZDsJ LyogaGF2ZSB3ZSBoYWQgYSB3cml0ZSBmYWlsdXJlIG9uIHNvY2s/ICovCiAJY2hhcgkgICAqd3Jp dGVfZXJyX21zZzsJLyogd3JpdGUgZXJyb3IgbWVzc2FnZSwgb3IgTlVMTCBpZiBPT00gKi8KKwli b29sCQlnb2F3YXlfcmVjZWl2ZWQ7CS8qIHRydWUgaWYgc2VydmVyIHNlbnQgR29Bd2F5IG1lc3Nh Z2UgKi8KIAogCWJvb2wJCWF1dGhfcmVxdWlyZWQ7CS8qIHJlcXVpcmUgYW4gYXV0aGVudGljYXRp b24gY2hhbGxlbmdlIGZyb20KIAkJCQkJCQkJICogdGhlIHNlcnZlcj8gKi8KCmJhc2UtY29tbWl0 OiAwZjRjOGQzM2Q0OWRhMDEyYTA0MDc2MTU5YTAwOGM5ZmE4MGJjYzQ3CnByZXJlcXVpc2l0ZS1w YXRjaC1pZDogODczMGUyMGZhYmNjOWIwNjJlYTFjYjk1YjAyODA0ZWUyYTBjN2EyNgpwcmVyZXF1 aXNpdGUtcGF0Y2gtaWQ6IDE5NzRkYWU4ZDRiZWRmMzY3Nzc5NTEzN2MyMjgxZTJlNWRmOGQ5NTUK cHJlcmVxdWlzaXRlLXBhdGNoLWlkOiBkODVmZWQzYjI3MTkzNjRiNWE5MDVkMWFjZTIzMzcxYmU2 ZjNlZDAzCnByZXJlcXVpc2l0ZS1wYXRjaC1pZDogMDYzMGVhZDQ2ZDFiOGM0MDE3N2E1NTRiNzc5 MzQ0NGExY2I1NzgyOQpwcmVyZXF1aXNpdGUtcGF0Y2gtaWQ6IGQ1YmQ5ZDdiYmVmOTY3OTA1MDU4 Y2Q3ODAwN2U0NzY2YjI5ZTc4MzMKLS0gCjIuNTIuMAoK --edeaaf7510f4f356c5821b2133ea38909697a1e9293ab38cf02587c97273--