Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tYgdP-00D58i-Aj for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Jan 2025 07:19:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tYgdN-00A4CY-Nn for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Jan 2025 07:19:14 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tYgdM-00A47p-Nq for pgsql-hackers@lists.postgresql.org; Fri, 17 Jan 2025 07:19:13 +0000 Received: from mail-yb1-xb34.google.com ([2607:f8b0:4864:20::b34]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tYgdB-000twA-05 for pgsql-hackers@lists.postgresql.org; Fri, 17 Jan 2025 07:19:12 +0000 Received: by mail-yb1-xb34.google.com with SMTP id 3f1490d57ef6-e455bf1f4d3so2556668276.2 for ; Thu, 16 Jan 2025 23:19:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737098339; x=1737703139; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Bi7Q9njq2dQ86Rkdgzi7IZ5l8NMaKXi1tKnXAPsd1Co=; b=DoNPyhbjxjiLxksIfZ0diczgCtgX0unJUowyLFIZUcd3eFgR/cDM78qieMYfvopTnz M7hTc9syVkd0QrOVkV6CrgkacLmjLqITRn9gjPJTExidTtbDo5ZbzfI790yGwpHr+y4h KYAWgTu+9OxiD46TQxKvkSsK3XpeGaZpypyDoxLfyZdmMIpUZehX4JF8zZN0nYTsoRZ2 Izc7EJfTfb0saOlhl91kT8T6vqncFGU3XpNtOJbk52gZjdpPVditb5IptxL+nFBX2Psd 3ntRDLHzqvt3fqrU9po5jcWy6O5OKZmHLfW/PWhiacRO9r9wzKWVDkjxJNQxcQRGOTSh FP6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737098339; x=1737703139; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Bi7Q9njq2dQ86Rkdgzi7IZ5l8NMaKXi1tKnXAPsd1Co=; b=ZulqzBlu23G33ExbEOX6/7zMY36DbLY476hSXVU+CEcNnI5678fq6vs3KQYO3uV5Mp 3vL1qdhZfkm7nyu1bLO01/bgtCIcSK50JPlZNVSHVXmm0lE/L2VGfdI5Haiw7+/RlfYD HsqOYz4cNi6LselkDXHAWnY2wcFkTL+Yg42W+DbYjqvF8X543h9UbOANI7WWLPyRQE3R aiVvL+Mqta2yVaHyrPWnG0z4ykzxd19QrwVAM3CMTkmtOWViSnhYAhUk8FOf/qvSoZFA KytMiRLPtQRlvQoemQNo+qnAoiQF1Gf2EVFHx8QbYIVzndsiABe/gTYN3Sp0/zqvVK64 7KyQ== X-Forwarded-Encrypted: i=1; AJvYcCUwsUEJIFklZ77I52PmG9a2Z/GXyxmXcqfxHL7w4O+E6DqrTFwBs9fwTMgAS94mX1xnJ8sD1AnGONxe244P@lists.postgresql.org X-Gm-Message-State: AOJu0YyfDOWYtXlP3qFq5Pb46Ql1kJPbzSa48xpes7m42cFzhJ8ctFFF AQH8mB0wxjlZzpT8Qbu1izbsMGsk3z0pGvqiTGL0Wp7Js74nPeGkk9uBwi/7gR56Kvl7XnOd0OR t3ypOVowZLZY3ruj+VZ/ZA0f5vOQ= X-Gm-Gg: ASbGncv79Q9J1ScVWINi/vssNqhF2xXwRlfK0JvBrq06c7zEqrrWH33CDDKvrrZ/FgA A/Dk1ad2ibfUE69E8YsQdqdnHTf8VBlqZZzCKxgaXHLagTTeG/dkpdwhxiVubOtaZW8ze4LI= X-Google-Smtp-Source: AGHT+IHbdz4Q+pQmRStCV/zhrDj/QFrb44IV+69oMkzL/y0Sdr41FeHcPonYSvnsfISFCs4/woXnbbFu1woZmc8zqVc= X-Received: by 2002:a05:6902:1241:b0:e57:2e8f:b682 with SMTP id 3f1490d57ef6-e57b106ef3emr988330276.22.1737098339182; Thu, 16 Jan 2025 23:18:59 -0800 (PST) MIME-Version: 1.0 References: <3chredgnjcmccym2kczawfih226b4ac6co7p6z4jeofevrcosi@mrsxkx2x2c65> <20241120201313.t4wbhld4ktgielaf@erthalion.local> In-Reply-To: From: Pavel Stehule Date: Fri, 17 Jan 2025 08:18:20 +0100 X-Gm-Features: AbW1kvZk90zpd2kSa4A_JETGSlB-r_iokItymN03lywGjLyVOKctKSZn44KjxXI Message-ID: Subject: Re: Re: proposal: schema variables To: jian he Cc: Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000736d0d062be1b970" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000736d0d062be1b970 Content-Type: multipart/alternative; boundary="000000000000736d0b062be1b96e" --000000000000736d0b062be1b96e Content-Type: text/plain; charset="UTF-8" Hi fix oid collision Regards Pavel --000000000000736d0b062be1b96e Content-Type: text/html; charset="UTF-8"
Hi

fix oid collision

Regards

Pavel

--000000000000736d0b062be1b96e-- --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0020-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Disposition: attachment; filename="v20250117-0020-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8jo2 RnJvbSAzNzkzOWRjNTNjODQ1N2ZmNWExNzJhYzJmMDExMWVkYTk1MTUyZGQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNToxMDozOSArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MjAvMjJdIHRoaXMgcGF0Y2ggY2hhbmdlcyBlcnJvciBtZXNzYWdlICJjb2x1bW4gZG9lc24ndCBl eGlzdCIKIHRvIG1lc3NhZ2UgImNvbHVtbiBvciB2YXJpYWJsZSBkb2Vzbid0IGV4aXN0IgoKVGhl IGVycm9yIG1lc3NhZ2Ugd2lsbCBiZSBtb3JlIGNvcnJlY3QuIFRvZGF5LCBtaXNzaW5nIFBML3Bn U1FMIHZhcmlhYmxlIGNhbiBiZSByZXBvcnRlZC4gVGhlIGNoYW5nZSBoYXMKaW1wYWN0IG9uIGxv dCBvZiByZWdyZXNzIHRlc3RzIG5vdCBkaXJlY3RseSByZWxhdGVkIHRvIHNlc3Npb24gdmFyaWFi bGVzLCBhbmQgdGhlbiBpdCBpcyBkaXN0cmlidXRlZCBhcyBzZXBhcmF0ZSBwYXRjaAotLS0KIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICAyICstCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyAgICAgICAgICAgfCAyNCArKysrKysrKysr Ky0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAgICAgICAgICAgIHwgIDgg KysrLS0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmggICAgICAgICAgICAgICB8ICAy ICsrCiBzcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQgfCAgMiAr LQogLi4uL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91dCAgIHwgIDQgKy0t CiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQgfCAgMiArLQog c3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF9xdWVyaWVzLm91dCAgICAgICAgIHwgMTIgKysrLS0t LQogLi4uL2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgIDQgKy0t CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dCAgICAgfCAzMiArKysr KysrKystLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCAgICAg ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcnJvcnMub3V0ICAgICAg ICAgIHwgIDggKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgICAgICAg ICAgICB8IDEyICsrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91 dCAgICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3kub3V0 ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dCAgICAg ICAgIHwgMTIgKysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAg ICAgICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAg ICAgICB8ICAyICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQg ICAgfCAgNiArKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQg ICAgfCAgNCArLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0ICAgICAgICAg ICB8ICAyICstCiAyMSBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCAxNThhNjdiZTUyLi43YzRhNTg0ZjBm IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTUyNiw3ICs1MjYsNyBAQCB0cmFuc2Zvcm1J bmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKICAqIHBy aW50ZWQuICBXaGVuIHdlIGFyZSBpbiBhbiBleHByZXNzaW9uIHdoZXJlIHNlc3Npb24gdmFyaWFi bGVzIGNhbm5vdCBiZQogICogdXNlZCwgd2UgcmFpc2UgdGhlIGZpcnN0IGZvcm0gb2YgZXJyb3Ig bWVzc2FnZS4KICAqLwotc3RhdGljIGJvb2wKK2Jvb2wKIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lv bl92YXJpYWJsZXMoUGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKIHsKIAlib29sCQlyZXN1bHQg PSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggNTBjYmQwZmJiYy4u ZjIwM2VhMjZkZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9u LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKQEAgLTI3LDYgKzI3 LDcgQEAKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJub2Rlcy9ub2Rl RnVuY3MuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfZW5yLmgiCisjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX2V4cHIuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKICNpbmNs dWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXRyZWUuaCIK QEAgLTM3NTEsNiArMzc1MiwxOSBAQCBlcnJvck1pc3NpbmdSVEUoUGFyc2VTdGF0ZSAqcHN0YXRl LCBSYW5nZVZhciAqcmVsYXRpb24pCiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHJl bGF0aW9uLT5sb2NhdGlvbikpKTsKIH0KIAorLyoKKyAqIHNldCBtZXNzYWdlICJjb2x1bW4gZG9l cyBub3QgZXhpc3QiIG9yICJjb2x1bW4gb3IgdmFyaWFibGUgZG9lcyBub3QgZXhpc3QiCisgKiBp biBkZXBlbmRlbmN5IGlmIGV4cHJlc3Npb24gY29udGV4dCBhbGxvd3Mgc2Vzc2lvbiB2YXJpYWJs ZXMuCisgKi8KK3N0YXRpYyBpbnQKK2NvbHVtbl9vcl92YXJpYWJsZV9kb2VzX25vdF9leGlzdHMo UGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBjaGFyICpjb2xuYW1lKQoreworCWlmIChleHByX2tp bmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpKQorCQlyZXR1 cm4gZXJybXNnKCJjb2x1bW4gb3IgdmFyaWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29s bmFtZSk7CisJZWxzZQorCQlyZXR1cm4gZXJybXNnKCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4 aXN0IiwgY29sbmFtZSk7Cit9CisKIC8qCiAgKiBHZW5lcmF0ZSBhIHN1aXRhYmxlIGVycm9yIGFi b3V0IGEgbWlzc2luZyBjb2x1bW4uCiAgKgpAQCAtMzc4NSw3ICszNzk5LDcgQEAgZXJyb3JNaXNz aW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfQ09MVU1OKSwKIAkJCQkJIHJlbG5hbWUgPwogCQkJCQkgZXJybXNnKCJjb2x1bW4gJXMu JXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xuYW1lKSA6Ci0JCQkJCSBlcnJtc2coImNv bHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkJIGNvbHVtbl9vcl92 YXJpYWJsZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkJIGVycmRldGFp bCgiVGhlcmUgYXJlIGNvbHVtbnMgbmFtZWQgXCIlc1wiLCBidXQgdGhleSBhcmUgaW4gdGFibGVz IHRoYXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LiIs CiAJCQkJCQkJICAgY29sbmFtZSksCiAJCQkJCSAhcmVsbmFtZSA/IGVycmhpbnQoIlRyeSB1c2lu ZyBhIHRhYmxlLXF1YWxpZmllZCBuYW1lLiIpIDogMCwKQEAgLTM3OTUsNyArMzgwOSw3IEBAIGVy cm9yTWlzc2luZ0NvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9VTkRFRklORURfQ09MVU1OKSwKIAkJCQkgcmVsbmFtZSA/CiAJCQkJIGVycm1zZygiY29sdW1u ICVzLiVzIGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCSBlcnJtc2co ImNvbHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkgY29sdW1uX29y X3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCSBlcnJkZXRh aWwoIlRoZXJlIGlzIGEgY29sdW1uIG5hbWVkIFwiJXNcIiBpbiB0YWJsZSBcIiVzXCIsIGJ1dCBp dCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuIiwKIAkJ CQkJCSAgIGNvbG5hbWUsIHN0YXRlLT5yZXhhY3QxLT5lcmVmLT5hbGlhc25hbWUpLAogCQkJCSBy dGVfdmlzaWJsZV9pZl9sYXRlcmFsKHBzdGF0ZSwgc3RhdGUtPnJleGFjdDEpID8KQEAgLTM4MTMs MTQgKzM4MjcsMTQgQEAgZXJyb3JNaXNzaW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ CQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKIAkJCQkJIHJlbG5hbWUgPwog CQkJCQkgZXJybXNnKCJjb2x1bW4gJXMuJXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xu YW1lKSA6Ci0JCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xu YW1lKSwKKwkJCQkJIGNvbHVtbl9vcl92YXJpYWJsZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBj b2xuYW1lKSwKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwog CQkvKiBIYW5kbGUgY2FzZSB3aGVyZSB3ZSBoYXZlIGEgc2luZ2xlIGFsdGVybmF0aXZlIHNwZWxs aW5nIHRvIG9mZmVyICovCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9V TkRFRklORURfQ09MVU1OKSwKIAkJCQkgcmVsbmFtZSA/CiAJCQkJIGVycm1zZygiY29sdW1uICVz LiVzIGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCSBlcnJtc2coImNv bHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkgY29sdW1uX29yX3Zh cmlhYmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCSBlcnJoaW50KCJQ ZXJoYXBzIHlvdSBtZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiBcIiVzLiVzXCIuIiwKIAkJ CQkJCSBzdGF0ZS0+cmZpcnN0LT5lcmVmLT5hbGlhc25hbWUsCiAJCQkJCQkgc3RyVmFsKGxpc3Rf bnRoKHN0YXRlLT5yZmlyc3QtPmVyZWYtPmNvbG5hbWVzLApAQCAtMzgzNCw3ICszODQ4LDcgQEAg ZXJyb3JNaXNzaW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkoZXJyY29kZShFUlJD T0RFX1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCSByZWxuYW1lID8KIAkJCQkgZXJybXNnKCJjb2x1 bW4gJXMuJXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xuYW1lKSA6Ci0JCQkJIGVycm1z ZygiY29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpLAorCQkJCSBjb2x1bW5f b3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSksCiAJCQkJIGVycmhp bnQoIlBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uIFwiJXMuJXNcIiBv ciB0aGUgY29sdW1uIFwiJXMuJXNcIi4iLAogCQkJCQkJIHN0YXRlLT5yZmlyc3QtPmVyZWYtPmFs aWFzbmFtZSwKIAkJCQkJCSBzdHJWYWwobGlzdF9udGgoc3RhdGUtPnJmaXJzdC0+ZXJlZi0+Y29s bmFtZXMsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKaW5kZXggY2YwMWJmZjY1YS4uMmE1Mjc4 ODdhOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpAQCAtNzc5LDcgKzc3OSw5IEBAIHRy YW5zZm9ybUFzc2lnbm1lbnRJbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQlpZiAo IXR5cHJlbGlkKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RB VEFUWVBFX01JU01BVENIKSwKLQkJCQkJCSBlcnJtc2coImNhbm5vdCBhc3NpZ24gdG8gZmllbGQg XCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBub3QgYSBjb21w b3NpdGUgdHlwZSIsCisJCQkJCQkgZXJybXNnKGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJp YWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkgPworCQkJCQkJCQkgImNhbm5vdCBhc3NpZ24gdG8g ZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSBcIiVzXCIgYmVjYXVzZSBpdHMgdHlw ZSAlcyBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIgOgorCQkJCQkJCQkgImNhbm5vdCBhc3NpZ24g dG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBu b3QgYSBjb21wb3NpdGUgdHlwZSIsCiAJCQkJCQkJCXN0clZhbChuKSwgdGFyZ2V0TmFtZSwKIAkJ CQkJCQkJZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZUlkKSksCiAJCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CkBAIC03ODgsNyArNzkwLDkgQEAgdHJhbnNmb3Jt QXNzaWdubWVudEluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCWlmIChhdHRudW0g PT0gSW52YWxpZEF0dHJOdW1iZXIpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJjb2Rl KEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCi0JCQkJCQkgZXJybXNnKCJjYW5ub3QgYXNzaWdu IHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3Vj aCBjb2x1bW4gaW4gZGF0YSB0eXBlICVzIiwKKwkJCQkJCSBlcnJtc2coZXhwcl9raW5kX2FsbG93 c19zZXNzaW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSA/CisJCQkJCQkJCSAiY2Fu bm90IGFzc2lnbiB0byBmaWVsZCBcIiVzXCIgb2YgY29sdW1uIG9yIHZhcmlhYmxlIFwiJXNcIiBi ZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSAlcyIgOgorCQkJCQkJ CQkgImNhbm5vdCBhc3NpZ24gdG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVz ZSB0aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgJXMiLAogCQkJCQkJCQlzdHJW YWwobiksIHRhcmdldE5hbWUsCiAJCQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGVJZCkp LAogCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9leHByLmgKaW5kZXggNWJkZTQzNzU4ZC4uNzFlYzIxM2Y4OCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfZXhwci5oCkBAIC0yNCw0ICsyNCw2IEBAIGV4dGVybiBOb2RlICp0cmFuc2Zvcm1FeHBy KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgUGFyc2VFeHByS2luZCBleHByS2luCiAK IGV4dGVybiBjb25zdCBjaGFyICpQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJL aW5kKTsKIAorZXh0ZXJuIGJvb2wgZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhQ YXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKTsKKwogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX0VYUFJf SCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJy YXkub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXkub3V0Cmlu ZGV4IGFkNjBlMGU4YmUuLmMxYWI5ZmQ3ZWQgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9leHBlY3RlZC9wbHBnc3FsX2FycmF5Lm91dAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhw ZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQKQEAgLTQxLDcgKzQxLDcgQEAgTk9USUNFOiAgYSA9IHsi KCwxMSkifSwgYVsxXS5pID0gMTEKIC0tIHBlcmhhcHMgdGhpcyBvdWdodCB0byB3b3JrLCBidXQg Zm9yIG5vdyBpdCBkb2Vzbid0OgogZG8gJCQgZGVjbGFyZSBhIGNvbXBsZXhbXTsKIGJlZ2luIGFb MToyXS5pIDo9IGFycmF5WzExLDEyXTsgcmFpc2Ugbm90aWNlICdhID0gJScsIGE7IGVuZCQkOwot RVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJpIiBvZiBjb2x1bW4gImEiIGJlY2F1c2Ug aXRzIHR5cGUgY29tcGxleFtdIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlCitFUlJPUjogIGNhbm5v dCBhc3NpZ24gdG8gZmllbGQgImkiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgYmVjYXVzZSBp dHMgdHlwZSBjb21wbGV4W10gaXMgbm90IGEgY29tcG9zaXRlIHR5cGUKIExJTkUgMTogYVsxOjJd LmkgOj0gYXJyYXlbMTEsMTJdCiAgICAgICAgIF4KIFFVRVJZOiAgYVsxOjJdLmkgOj0gYXJyYXlb MTEsMTJdCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9y ZWNvcmQub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91 dAppbmRleCA2OTc0YzhmNGE0Li4zOTcwYWM3MjFjIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9yZWNvcmQub3V0CisrKyBiL3NyYy9wbC9wbHBnc3FsL3Ny Yy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQKQEAgLTEzNSw3ICsxMzUsNyBAQCBFUlJPUjog IHJlY29yZCAiYyIgaGFzIG5vIGZpZWxkICJ4IgogQ09OVEVYVDogIFBML3BnU1FMIGFzc2lnbm1l bnQgImMueC5xMSA9IDEiCiBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5l IDEgYXQgYXNzaWdubWVudAogZG8gJCQgZGVjbGFyZSBjIG5lc3RlZF9pbnQ4czsgYmVnaW4gYy5j Mi54ID0gMTsgZW5kICQkOwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBj b2x1bW4gImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3 b19pbnQ4cworRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3Ig dmFyaWFibGUgImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBl IHR3b19pbnQ4cwogTElORSAxOiBjLmMyLnggPSAxCiAgICAgICAgIF4KIFFVRVJZOiAgYy5jMi54 ID0gMQpAQCAtMTU3LDcgKzE1Nyw3IEBAIEVSUk9SOiAgcmVjb3JkICJjIiBoYXMgbm8gZmllbGQg IngiCiBDT05URVhUOiAgUEwvcGdTUUwgYXNzaWdubWVudCAiYi5jLngucTEgPSAxIgogUEwvcGdT UUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IGFzc2lnbm1lbnQKIGRvICQk IDw8Yj4+IGRlY2xhcmUgYyBuZXN0ZWRfaW50OHM7IGJlZ2luIGIuYy5jMi54ID0gMTsgZW5kICQk OwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gImIiIGJlY2F1 c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3b19pbnQ4cworRVJST1I6 ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgImIiIGJl Y2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3b19pbnQ4cwogTElO RSAxOiBiLmMuYzIueCA9IDEKICAgICAgICAgXgogUVVFUlk6ICBiLmMuYzIueCA9IDEKZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFi bGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJp YWJsZS5vdXQKaW5kZXggZWNhYzY0ZmNmYi4uOGJkMmIzOThiZCAxMDA2NDQKLS0tIGEvc3JjL3Bs L3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIv c3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQK QEAgLTIzMiw3ICsyMzIsNyBAQCBTRVQgUk9MRSBUTyBERUZBVUxUOwogU0VUIFJPTEUgVE8gcmVn cmVzc192YXJfZXhlY19yb2xlOwogLS0gc2hvdWxkIGZhaWwsIGJ1dCBub3QgY3Jhc2gKIFNFTEVD VCB2YXJfcmVhZF9mdW5jKCk7Ci1FUlJPUjogIGNvbHVtbiAicGxwZ3NxbF9zdl92YXIxIiBkb2Vz IG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInBscGdzcWxfc3ZfdmFyMSIg ZG9lcyBub3QgZXhpc3QKIExJTkUgMTogcGxwZ3NxbF9zdl92YXIxCiAgICAgICAgIF4KIFFVRVJZ OiAgcGxwZ3NxbF9zdl92YXIxCmRpZmYgLS1naXQgYS9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNs X3F1ZXJpZXMub3V0IGIvc3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF9xdWVyaWVzLm91dAppbmRl eCAzNWNjNmU2MmFhLi40OTdjZDM4MTg5IDEwMDY0NAotLS0gYS9zcmMvcGwvdGNsL2V4cGVjdGVk L3BsdGNsX3F1ZXJpZXMub3V0CisrKyBiL3NyYy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfcXVlcmll cy5vdXQKQEAgLTQ1MCwxMiArNDUwLDEyIEBAIENPTlRFWFQ6ICB3aGlsZSBleGVjdXRpbmcKICJf X1BMVGNsX3Byb2NfdGNsX2V2YWxfdGV4dCBzcGlfcHJlcGFyZVwgYVwgXCJiXCBce1wiIgogaW4g UEwvVGNsIGZ1bmN0aW9uIHRjbF9ldmFsKHRleHQpCiBzZWxlY3QgdGNsX2Vycm9yX2hhbmRsaW5n X3Rlc3QoJHRjbCRzcGlfcHJlcGFyZSAic2VsZWN0IG1vbyIgW10kdGNsJCk7Ci0gICAgICAgdGNs X2Vycm9yX2hhbmRsaW5nX3Rlc3QgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSBTUUxTVEFURTogNDI3MDMgICAgICAgICAgICAgICAgICAgICArCi0gY29u ZGl0aW9uOiB1bmRlZmluZWRfY29sdW1uICAgICAgICAgKwotIGN1cnNvcl9wb3NpdGlvbjogOCAg ICAgICAgICAgICAgICAgICsKLSBtZXNzYWdlOiBjb2x1bW4gIm1vbyIgZG9lcyBub3QgZXhpc3Qr CisgICAgICAgICAgICAgdGNsX2Vycm9yX2hhbmRsaW5nX3Rlc3QgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTUUxTVEFU RTogNDI3MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgY29uZGl0aW9uOiB1 bmRlZmluZWRfY29sdW1uICAgICAgICAgICAgICAgICAgICAgKworIGN1cnNvcl9wb3NpdGlvbjog OCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyBtZXNzYWdlOiBjb2x1bW4gb3IgdmFy aWFibGUgIm1vbyIgZG9lcyBub3QgZXhpc3QrCiAgc3RhdGVtZW50OiBzZWxlY3QgbW9vCiAoMSBy b3cpCiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZh cmlhYmxlLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxl Lm91dAppbmRleCBlOWEyNTRiY2QxLi5kODg0OGQ1NTVjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9p c29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvaXNv bGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC0xMCw3ICsxMCw3IEBAIHRl c3QKIAogc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOwogc3RlcCB2YWw6IFNFTEVDVCBt eXZhcjsKLUVSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29s dW1uIG9yIHZhcmlhYmxlICJteXZhciIgZG9lcyBub3QgZXhpc3QKIAogc3RhcnRpbmcgcGVybXV0 YXRpb246IGxldCB2YWwgczEgZHJvcCB2YWwgc3IxCiBzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rl c3QnOwpAQCAtMjMsNyArMjMsNyBAQCB0ZXN0CiBzdGVwIHMxOiBCRUdJTjsKIHN0ZXAgZHJvcDog RFJPUCBWQVJJQUJMRSBteXZhcjsKIHN0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7Ci1FUlJPUjogIGNv bHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAi bXl2YXIiIGRvZXMgbm90IGV4aXN0CiBzdGVwIHNyMTogUk9MTEJBQ0s7CiAKIHN0YXJ0aW5nIHBl cm11dGF0aW9uOiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0CmluZGV4IGRkOGNkZWMyOTAuLjdmYmJlYTMyZmYg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0CkBAIC0xMjk4LDE5 ICsxMjk4LDE5IEBAIHNlbGVjdCAqIGZyb20gYXRhY2MxOwogKDEgcm93KQogCiBzZWxlY3QgKiBm cm9tIGF0YWNjMSBvcmRlciBieSBhOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTog c2VsZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgYTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgogc2VsZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgIi4uLi4uLi4u cGcuZHJvcHBlZC4xLi4uLi4uLi4iOwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBl ZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAi Li4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2Vs ZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4i Li4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAqIGZy b20gYXRhY2MxIGdyb3VwIGJ5IGE7Ci1FUlJPUjogIGNvbHVtbiAiYSIgZG9lcyBub3QgZXhpc3QK K0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBz ZWxlY3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSBhOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSAiLi4uLi4uLi5w Zy5kcm9wcGVkLjEuLi4uLi4uLiI7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVk LjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIu Li4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxl Y3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIu Li4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogc2VsZWN0IGF0YWNj MS4qIGZyb20gYXRhY2MxOwpAQCAtMTMyMCw3ICsxMzIwLDcgQEAgc2VsZWN0IGF0YWNjMS4qIGZy b20gYXRhY2MxOwogKDEgcm93KQogCiBzZWxlY3QgYSBmcm9tIGF0YWNjMTsKLUVSUk9SOiAgY29s dW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGRv ZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBhIGZyb20gYXRhY2MxOwogICAgICAgICAgICAg ICAgXgogc2VsZWN0IGF0YWNjMS5hIGZyb20gYXRhY2MxOwpAQCAtMTMzNCwxNSArMTMzNCwxNSBA QCBzZWxlY3QgYixjLGQgZnJvbSBhdGFjYzE7CiAoMSByb3cpCiAKIHNlbGVjdCBhLGIsYyxkIGZy b20gYXRhY2MxOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNv bHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGEsYixj LGQgZnJvbSBhdGFjYzE7CiAgICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSB3 aGVyZSBhID0gMTsKLUVSUk9SOiAgY29sdW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgImEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAqIGZy b20gYXRhY2MxIHdoZXJlIGEgPSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCiBzZWxlY3QgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwot RVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4u Li4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICIuLi4uLi4uLnBnLmRyb3BwZWQu MS4uLi4uLi4uIiBmcm9tIGF0YWNjMTsKICAgICAgICAgICAgICAgIF4KIHNlbGVjdCBhdGFjYzEu Ii4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwpAQCAtMTM1MCwxMSAr MTM1MCwxMSBAQCBFUlJPUjogIGNvbHVtbiBhdGFjYzEuLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4u Li4uLiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgYXRhY2MxLiIuLi4uLi4uLnBnLmRy b3BwZWQuMS4uLi4uLi4uIiBmcm9tIGF0YWNjMTsKICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAi Li4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIsYixjLGQgZnJvbSBhdGFjYzE7Ci1FUlJPUjog IGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VS Uk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBk b2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4u Li4iLGIsYyxkIGZyb20gYXRhY2MxOwogICAgICAgICAgICAgICAgXgogc2VsZWN0ICogZnJvbSBh dGFjYzEgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gMTsKLUVSUk9SOiAg Y29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAorRVJS T1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRv ZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIHdoZXJlICIuLi4uLi4u LnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IC4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCiAtLSBVUERBVEVzCkBAIC0xMzYzLDcgKzEzNjMsNyBAQCBFUlJPUjogIGNvbHVt biAiYSIgb2YgcmVsYXRpb24gImF0YWNjMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogdXBkYXRl IGF0YWNjMSBzZXQgYSA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHVwZGF0ZSBh dGFjYzEgc2V0IGIgPSAyIHdoZXJlIGEgPSAzOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJ TkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgYiA9IDIgd2hlcmUgYSA9IDM7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHVwZGF0ZSBhdGFjYzEgc2V0ICIuLi4uLi4uLnBn LmRyb3BwZWQuMS4uLi4uLi4uIiA9IDM7CkBAIC0xMzcxLDcgKzEzNzEsNyBAQCBFUlJPUjogIGNv bHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgb2YgcmVsYXRpb24gImF0YWNjMSIg ZG9lcyBub3QgZXhpcwogTElORSAxOiB1cGRhdGUgYXRhY2MxIHNldCAiLi4uLi4uLi5wZy5kcm9w cGVkLjEuLi4uLi4uLiIgPSAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICBeCiB1cGRhdGUg YXRhY2MxIHNldCBiID0gMiB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAz OwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEu Li4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgYiA9IDIg d2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iLi4uCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIElOU0VSVHMKQEAgLTE0MTksMTEgKzE0MTksMTEg QEAgTElORSAxOiBpbnNlcnQgaW50byBhdGFjYzEgKCIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4u Li4uIixiLGMsZCkgdmEuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBERUxF VEVzCiBkZWxldGUgZnJvbSBhdGFjYzEgd2hlcmUgYSA9IDM7Ci1FUlJPUjogIGNvbHVtbiAiYSIg ZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBl eGlzdAogTElORSAxOiBkZWxldGUgZnJvbSBhdGFjYzEgd2hlcmUgYSA9IDM7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCiBkZWxldGUgZnJvbSBhdGFjYzEgd2hlcmUgIi4uLi4u Li4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gMzsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBn LmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFy aWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBMSU5F IDE6IGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4u LiIgPSAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogZGVsZXRlIGZyb20g YXRhY2MxOwpAQCAtMTcxNiw3ICsxNzE2LDcgQEAgc2VsZWN0IGYxIGZyb20gYzE7CiAKIGFsdGVy IHRhYmxlIGMxIGRyb3AgY29sdW1uIGYxOwogc2VsZWN0IGYxIGZyb20gYzE7Ci1FUlJPUjogIGNv bHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEi IGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSBmcm9tIGMxOwogICAgICAgICAgICAg ICAgXgogSElOVDogIFBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJj MS5mMiIuCkBAIC0xNzMwLDcgKzE3MzAsNyBAQCBFUlJPUjogIGNhbm5vdCBkcm9wIGluaGVyaXRl ZCBjb2x1bW4gImYxIgogYWx0ZXIgdGFibGUgcDEgZHJvcCBjb2x1bW4gZjE7CiAtLSBjMS5mMSBp cyBkcm9wcGVkIG5vdywgc2luY2UgdGhlcmUgaXMgbm8gbG9jYWwgZGVmaW5pdGlvbiBmb3IgaXQK IHNlbGVjdCBmMSBmcm9tIGMxOwotRVJST1I6ICBjb2x1bW4gImYxIiBkb2VzIG5vdCBleGlzdAor RVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBz ZWxlY3QgZjEgZnJvbSBjMTsKICAgICAgICAgICAgICAgIF4KIEhJTlQ6ICBQZXJoYXBzIHlvdSBt ZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiAiYzEuZjIiLgpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2NvcHkyLm91dAppbmRleCA2NGVhMzNhZWFlLi42ODc0ZjVhZTBkIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2NvcHkyLm91dApAQCAtMTYwLDcgKzE2MCw3IEBAIExJTkUgMTogQ09QWSB4IFRPIHN0 ZG91dCBXSEVSRSBhID0gMTsKIENPUFkgeCBmcm9tIHN0ZGluIFdIRVJFIGEgPSA1MDAwNDsKIENP UFkgeCBmcm9tIHN0ZGluIFdIRVJFIGEgPiA2MDAwMzsKIENPUFkgeCBmcm9tIHN0ZGluIFdIRVJF IGYgPiA2MDAwMzsKLUVSUk9SOiAgY29sdW1uICJmIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgImYiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IENPUFkgeCBmcm9t IHN0ZGluIFdIRVJFIGYgPiA2MDAwMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgogQ09QWSB4IGZyb20gc3RkaW4gV0hFUkUgYSA9IG1heCh4LmIpOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcnJvcnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9lcnJvcnMub3V0CmluZGV4IDhjNTI3NDc0ZGEuLmU1M2FlNDUxZGYgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2Vycm9ycy5vdXQKQEAgLTI3LDcgKzI3LDcgQEAgTElORSAxOiBzZWxlY3Qg KiBmcm9tIG5vbmVzdWNoOwogICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBuYW1lIGlu IHRhcmdldCBsaXN0CiBzZWxlY3Qgbm9uZXN1Y2ggZnJvbSBwZ19kYXRhYmFzZTsKLUVSUk9SOiAg Y29sdW1uICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlh YmxlICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IG5vbmVzdWNoIGZy b20gcGdfZGF0YWJhc2U7CiAgICAgICAgICAgICAgICBeCiAtLSBlbXB0eSBkaXN0aW5jdCBsaXN0 IGlzbid0IE9LCkBAIC0zNywxNyArMzcsMTcgQEAgTElORSAxOiBzZWxlY3QgZGlzdGluY3QgZnJv bSBwZ19kYXRhYmFzZTsKICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBhdHRyaWJ1 dGUgbmFtZSBvbiBsaHMgb2Ygb3BlcmF0b3IKIHNlbGVjdCAqIGZyb20gcGdfZGF0YWJhc2Ugd2hl cmUgbm9uZXN1Y2ggPSBwZ19kYXRhYmFzZS5kYXRuYW1lOwotRVJST1I6ICBjb2x1bW4gIm5vbmVz dWNoIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIm5vbmVzdWNo IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJl IG5vbmVzdWNoID0gcGdfZGF0YWJhc2UuZGF0bmEuLi4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCiAtLSBiYWQgYXR0cmlidXRlIG5hbWUgb24gcmhzIG9mIG9wZXJh dG9yCiBzZWxlY3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJlIHBnX2RhdGFiYXNlLmRhdG5hbWUg PSBub25lc3VjaDsKLUVSUk9SOiAgY29sdW1uICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKK0VS Uk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKIExJTkUg MTogLi4uZWN0ICogZnJvbSBwZ19kYXRhYmFzZSB3aGVyZSBwZ19kYXRhYmFzZS5kYXRuYW1lID0g bm9uZXN1Y2g7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBhdHRyaWJ1dGUgbmFtZSBpbiBzZWxlY3QgZGlzdGlu Y3Qgb24KIHNlbGVjdCBkaXN0aW5jdCBvbiAoZm9vYmFyKSAqIGZyb20gcGdfZGF0YWJhc2U7Ci1F UlJPUjogIGNvbHVtbiAiZm9vYmFyIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3Ig dmFyaWFibGUgImZvb2JhciIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGRpc3RpbmN0 IG9uIChmb29iYXIpICogZnJvbSBwZ19kYXRhYmFzZTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCiAtLSBncm91cGluZyB3aXRoIEZPUiBVUERBVEUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pv aW4ub3V0CmluZGV4IDA3OWZjZjQ2ZjAuLmE2ZTcxMDVhY2MgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9qb2luLm91dApAQCAtNjM5NywxMyArNjM5NywxMyBAQCBMSU5FIDE6IHNlbGVjdCB0Mi51dW5p cXVlMSBmcm9tCiBISU5UOiAgUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1 bW4gInQyLnVuaXF1ZTEiLgogc2VsZWN0IHV1bmlxdWUxIGZyb20KICAgdGVuazEgdDEgam9pbiB0 ZW5rMiB0MiBvbiB0MS50d28gPSB0Mi50d287IC0tIGVycm9yLCBzdWdnZXN0IGJvdGggYXQgb25j ZQotRVJST1I6ICBjb2x1bW4gInV1bmlxdWUxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1 bW4gb3IgdmFyaWFibGUgInV1bmlxdWUxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3Qg dXVuaXF1ZTEgZnJvbQogICAgICAgICAgICAgICAgXgogSElOVDogIFBlcmhhcHMgeW91IG1lYW50 IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJ0MS51bmlxdWUxIiBvciB0aGUgY29sdW1uICJ0Mi51 bmlxdWUxIi4KIHNlbGVjdCBjdGlkIGZyb20KICAgdGVuazEgdDEgam9pbiB0ZW5rMiB0MiBvbiB0 MS50d28gPSB0Mi50d287IC0tIGVycm9yLCBuZWVkIHF1YWxpZmljYXRpb24KLUVSUk9SOiAgY29s dW1uICJjdGlkIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImN0 aWQiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBjdGlkIGZyb20KICAgICAgICAgICAg ICAgIF4KIERFVEFJTDogIFRoZXJlIGFyZSBjb2x1bW5zIG5hbWVkICJjdGlkIiwgYnV0IHRoZXkg YXJlIGluIHRhYmxlcyB0aGF0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9m IHRoZSBxdWVyeS4KQEAgLTc1MDAsNyArNzUwMCw3IEBAIGxhdGVyYWwgKHNlbGVjdCAqIGZyb20g aW50OF90YmwgdDEsCiAKIC0tIHRlc3Qgc29tZSBlcnJvciBjYXNlcyB3aGVyZSBMQVRFUkFMIHNo b3VsZCBoYXZlIGJlZW4gdXNlZCBidXQgd2Fzbid0CiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJs IGEsIChzZWxlY3QgZjEgYXMgZykgc3M7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5F IDE6IHNlbGVjdCBmMSxnIGZyb20gaW50NF90YmwgYSwgKHNlbGVjdCBmMSBhcyBnKSBzczsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRo ZXJlIGlzIGEgY29sdW1uIG5hbWVkICJmMSIgaW4gdGFibGUgImEiLCBidXQgaXQgY2Fubm90IGJl IHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAtNzUxMiw3ICs3NTEy LDcgQEAgTElORSAxOiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEsIChzZWxlY3QgYS5mMSBh cyBnKSBzczsKIERFVEFJTDogIFRoZXJlIGlzIGFuIGVudHJ5IGZvciB0YWJsZSAiYSIsIGJ1dCBp dCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuCiBISU5U OiAgVG8gcmVmZXJlbmNlIHRoYXQgdGFibGUsIHlvdSBtdXN0IG1hcmsgdGhpcyBzdWJxdWVyeSB3 aXRoIExBVEVSQUwuCiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEgY3Jvc3Mgam9pbiAoc2Vs ZWN0IGYxIGFzIGcpIHNzOwotRVJST1I6ICBjb2x1bW4gImYxIiBkb2VzIG5vdCBleGlzdAorRVJS T1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxl Y3QgZjEsZyBmcm9tIGludDRfdGJsIGEgY3Jvc3Mgam9pbiAoc2VsZWN0IGYxIGFzIGcpIHNzOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K IERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVkICJmMSIgaW4gdGFibGUgImEiLCBidXQg aXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAt NzU0OSw3ICs3NTQ5LDcgQEAgTElORSAxOiBzZWxlY3QgMSBmcm9tIHRlbmsxIGEsIGxhdGVyYWwg KHNlbGVjdCBtYXgoYS51bmlxdWUxKSBmcm9tIGkuLi4KIGNyZWF0ZSB0ZW1wIHRhYmxlIHh4MSBh cyBzZWxlY3QgZjEgYXMgeDEsIC1mMSBhcyB4MiBmcm9tIGludDRfdGJsOwogLS0gZXJyb3IsIGNh bid0IGRvIHRoaXM6CiB1cGRhdGUgeHgxIHNldCB4MiA9IGYxIGZyb20gKHNlbGVjdCAqIGZyb20g aW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7Ci1FUlJPUjogIGNvbHVtbiAieDEiIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAieDEiIGRvZXMgbm90IGV4aXN0CiBM SU5FIDE6IC4uLiBzZXQgeDIgPSBmMSBmcm9tIChzZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJl IGYxID0geDEpIHNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVk ICJ4MSIgaW4gdGFibGUgInh4MSIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRo aXMgcGFydCBvZiB0aGUgcXVlcnkuCkBAIC03NTY5LDcgKzc1NjksNyBAQCB1cGRhdGUgeHgxIHNl dCB4MiA9IGYxIGZyb20geHgxLCBsYXRlcmFsIChzZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJl IGYxID0geDEpCiBFUlJPUjogIHRhYmxlIG5hbWUgInh4MSIgc3BlY2lmaWVkIG1vcmUgdGhhbiBv bmNlCiAtLSBhbHNvIGVycm9yczoKIGRlbGV0ZSBmcm9tIHh4MSB1c2luZyAoc2VsZWN0ICogZnJv bSBpbnQ0X3RibCB3aGVyZSBmMSA9IHgxKSBzczsKLUVSUk9SOiAgY29sdW1uICJ4MSIgZG9lcyBu b3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4MSIgZG9lcyBub3QgZXhpc3QK IExJTkUgMTogLi4udGUgZnJvbSB4eDEgdXNpbmcgKHNlbGVjdCAqIGZyb20gaW50NF90Ymwgd2hl cmUgZjEgPSB4MSkgc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFt ZWQgIngxIiBpbiB0YWJsZSAieHgxIiwgYnV0IGl0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20g dGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvbmFtZXNwYWNlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNl Lm91dAppbmRleCBkYmJkYTcyZDM5Li5kOTg3OTNmOTJhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9uYW1lc3BhY2Uub3V0CkBAIC0yMyw3ICsyMyw3IEBAIEJFR0lOOwogU0VUIHNlYXJjaF9w YXRoIHRvIHB1YmxpYywgdGVzdF9uc19zY2hlbWFfMTsKIENSRUFURSBTQ0hFTUEgdGVzdF9uc19z Y2hlbWFfMgogICAgICAgIENSRUFURSBWSUVXIGFiY192aWV3IEFTIFNFTEVDVCBjIEZST00gYWJj OwotRVJST1I6ICBjb2x1bW4gImMiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2 YXJpYWJsZSAiYyIgZG9lcyBub3QgZXhpc3QKIExJTkUgMjogICAgICAgIENSRUFURSBWSUVXIGFi Y192aWV3IEFTIFNFTEVDVCBjIEZST00gYWJjOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KIENPTU1JVDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251 bWVyb2xvZ3kub3V0CmluZGV4IDllMjMxNjZmZWQuLjY3MjAxMmUxNDYgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dApAQCAtMzE0LDcgKzMxNCw3IEBAIE5PVElDRTog IGkgPSAxMDAyCiBOT1RJQ0U6ICBpID0gMTAwMwogLS0gZXJyb3IgY2FzZXMKIFNFTEVDVCBfMTAw OwotRVJST1I6ICBjb2x1bW4gIl8xMDAiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBv ciB2YXJpYWJsZSAiXzEwMCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogU0VMRUNUIF8xMDA7CiAg ICAgICAgICAgICAgICBeCiBTRUxFQ1QgMTAwXzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BscGdz cWwub3V0CmluZGV4IDBhNjk0NTU4MWIuLjVjNTk5YmEzMTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wbHBnc3FsLm91dApAQCAtMjU5OCw3ICsyNTk4LDcgQEAgZW5kOyAkJCBsYW5ndWFnZSBw bHBnc3FsOwogLS0gc2hvdWxkIGZhaWw6IFNRTFNUQVRFIGFuZCBTUUxFUlJNIGFyZSBvbmx5IGlu IGRlZmluZWQgRVhDRVBUSU9OCiAtLSBibG9ja3MKIHNlbGVjdCBleGNwdF90ZXN0MSgpOwotRVJS T1I6ICBjb2x1bW4gInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3Ig dmFyaWFibGUgInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzcWxzdGF0ZQogICAg ICAgICBeCiBRVUVSWTogIHNxbHN0YXRlCkBAIC0yNjEzLDcgKzI2MTMsNyBAQCBiZWdpbgogZW5k OyAkJCBsYW5ndWFnZSBwbHBnc3FsOwogLS0gc2hvdWxkIGZhaWwKIHNlbGVjdCBleGNwdF90ZXN0 MigpOwotRVJST1I6ICBjb2x1bW4gInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzcWxz dGF0ZQogICAgICAgICBeCiBRVUVSWTogIHNxbHN0YXRlCkBAIC00Njc1LDcgKzQ2NzUsNyBAQCBC RUdJTgogICAgICAgICBSQUlTRSBOT1RJQ0UgJyUsICUnLCByLnJvb21ubywgci5jb21tZW50Owog ICAgIEVORCBMT09QOwogRU5EJCQ7Ci1FUlJPUjogIGNvbHVtbiAiZm9vIiBkb2VzIG5vdCBleGlz dAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImZvbyIgZG9lcyBub3QgZXhpc3QKIExJTkUg MTogU0VMRUNUIHJ0cmltKHJvb21ubykgQVMgcm9vbW5vLCBmb28gRlJPTSBSb29tIE9SREVSIEJZ IHJvb21uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogUVVF Ulk6ICBTRUxFQ1QgcnRyaW0ocm9vbW5vKSBBUyByb29tbm8sIGZvbyBGUk9NIFJvb20gT1JERVIg Qlkgcm9vbW5vCkBAIC00NzE3LDcgKzQ3MTcsNyBAQCBiZWdpbgogICByYWlzZSBub3RpY2UgJ3gg PSAlJywgeDsKIGVuZDsKICQkOwotRVJST1I6ICBjb2x1bW4gIngiIGRvZXMgbm90IGV4aXN0CitF UlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAieCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogeCAr IDEKICAgICAgICAgXgogUVVFUlk6ICB4ICsgMQpAQCAtNDcyOSw3ICs0NzI5LDcgQEAgYmVnaW4K ICAgcmFpc2Ugbm90aWNlICd4ID0gJSwgeSA9ICUnLCB4LCB5OwogZW5kOwogJCQ7Ci1FUlJPUjog IGNvbHVtbiAieCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4 IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiB4ICsgMQogICAgICAgICBeCiBRVUVSWTogIHggKyAx CkBAIC01NzY5LDcgKzU3NjksNyBAQCBBTFRFUiBUQUJMRSBhbHRlcl90YWJsZV91bmRlcl90cmFu c2l0aW9uX3RhYmxlcwogICBEUk9QIGNvbHVtbiBuYW1lOwogVVBEQVRFIGFsdGVyX3RhYmxlX3Vu ZGVyX3RyYW5zaXRpb25fdGFibGVzCiAgIFNFVCBpZCA9IGlkOwotRVJST1I6ICBjb2x1bW4gIm5h bWUiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAibmFtZSIgZG9l cyBub3QgZXhpc3QKIExJTkUgMTogKFNFTEVDVCBzdHJpbmdfYWdnKGlkIHx8ICc9JyB8fCBuYW1l LCAnLCcpIEZST00gZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CiBRVUVSWTogIChTRUxFQ1Qgc3RyaW5nX2FnZyhpZCB8fCAnPScgfHwgbmFtZSwgJywnKSBGUk9N IGQpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCAxZmIzYWMzMTQ1Li45M2UxMGI0 YzdlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTIxNCw3ICsyMTQsNyBAQCBz ZWxlY3QgJDE6OmludCBhcyBjb2wgXGJpbmQgMSBcZyBcYmluZCAyIFxnCiAtLSBlcnJvcnMKIC0t IHBhcnNlIGVycm9yCiBTRUxFQ1QgZm9vIFxiaW5kIFxnCi1FUlJPUjogIGNvbHVtbiAiZm9vIiBk b2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImZvbyIgZG9lcyBub3Qg ZXhpc3QKIExJTkUgMTogU0VMRUNUIGZvbyAKICAgICAgICAgICAgICAgIF4KIC0tIHRjb3AgZXJy b3IKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggODU2YTgzNDljNS4uMzE4OGY5 ZDg0YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTExOTEsNyArMTE5MSw3 IEBAIGRyb3AgcnVsZSBydWxlc19mb29ydWxlIG9uIHJ1bGVzX2ZvbzsKIC0tIHRoaXMgc2hvdWxk IGZhaWwgYmVjYXVzZSBmMSBpcyBub3QgZXhwb3NlZCBmb3IgdW5xdWFsaWZpZWQgcmVmZXJlbmNl OgogY3JlYXRlIHJ1bGUgcnVsZXNfZm9vcnVsZSBhcyBvbiBpbnNlcnQgdG8gcnVsZXNfZm9vIHdo ZXJlIGYxIDwgMTAwCiBkbyBpbnN0ZWFkIGluc2VydCBpbnRvIHJ1bGVzX2ZvbzIgdmFsdWVzIChm MSk7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBv ciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDI6IGRvIGluc3RlYWQgaW5zZXJ0 IGludG8gcnVsZXNfZm9vMiB2YWx1ZXMgKGYxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgYXJlIGNvbHVtbnMgbmFt ZWQgImYxIiwgYnV0IHRoZXkgYXJlIGluIHRhYmxlcyB0aGF0IGNhbm5vdCBiZSByZWZlcmVuY2Vk IGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggNzYzOGUxYTQ3Ny4uNTY1ZmI1ZGE2ZSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQK QEAgLTgxMSw3ICs4MTEsNyBAQCBFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGRvZXNu J3QgZXhpc3QKIExJTkUgMTogTEVUIHZhcjEgPSBwaSgpOwogICAgICAgICAgICAgXgogU0VMRUNU IHZhcjE7Ci1FUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29s dW1uIG9yIHZhcmlhYmxlICJ2YXIxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgdmFy MTsKICAgICAgICAgICAgICAgIF4KIC0tIHNob3VsZCBiZSBvawpAQCAtMTAzMCw3ICsxMDMwLDcg QEAgU0VMRUNUIHYxOwogCiAtLSBzaG91bGQgZmFpbCwgYXR0cmlidXRlIGRvZXNuJ3QgZXhpc3QK IExFVCB2MS54ID0gMTA7Ci1FUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9mIGNv bHVtbiAidjEiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHQx CitFUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9mIGNvbHVtbiBvciB2YXJpYWJs ZSAidjEiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHQxCiBM SU5FIDE6IExFVCB2MS54ID0gMTA7CiAgICAgICAgICAgICBeCiAtLSBzaG91bGQgZmFpbCwgZG9u J3QgYWxsb3cgbXVsdGkgY29sdW1uIHF1ZXJ5CkBAIC0xNzUwLDcgKzE3NTAsNyBAQCBCRUdJTjsK IERST1AgVkFSSUFCTEUgdmFyMTsKIC0tIHNob3VsZCBmYWlsCiBTRUxFQ1QgdmFyMTsKLUVSUk9S OiAgY29sdW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFi bGUgInZhcjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCB2YXIxOwogICAgICAgICAg ICAgICAgXgogUk9MTEJBQ0s7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3RyYW5zYWN0aW9ucy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0aW9u cy5vdXQKaW5kZXggN2Y1NzU3ZTg5Yy4uYjA1YjE2ZDk0YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvdHJhbnNhY3Rpb25zLm91dApAQCAtMjU2LDcgKzI1Niw3IEBAIFNFTEVDVCAqIEZS T00gdHJhbnNfYmFyYmF6OwktLSBzaG91bGQgaGF2ZSAxCiBCRUdJTjsKIAlTQVZFUE9JTlQgb25l OwogCQlTRUxFQ1QgdHJhbnNfZm9vOwotRVJST1I6ICBjb2x1bW4gInRyYW5zX2ZvbyIgZG9lcyBu b3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ0cmFuc19mb28iIGRvZXMgbm90 IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCB0cmFuc19mb287CiAgICAgICAgICAgICAgICBeCiAJUk9M TEJBQ0sgVE8gU0FWRVBPSU5UIG9uZTsKQEAgLTMwNSw3ICszMDUsNyBAQCBCRUdJTjsKIAlTQVZF UE9JTlQgb25lOwogCQlJTlNFUlQgSU5UTyBzYXZlcG9pbnRzIFZBTFVFUyAoNSk7CiAJCVNFTEVD VCB0cmFuc19mb287Ci1FUlJPUjogIGNvbHVtbiAidHJhbnNfZm9vIiBkb2VzIG5vdCBleGlzdAor RVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKIExJ TkUgMTogU0VMRUNUIHRyYW5zX2ZvbzsKICAgICAgICAgICAgICAgIF4KIENPTU1JVDsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC91bmlvbi5vdXQKaW5kZXggY2FhOGZlNzBhMC4uMWQzNDQ3ZTg0ZCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91bmlvbi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC91bmlvbi5vdXQKQEAgLTkzOSw3ICs5MzksNyBAQCBPUkRFUiBC WSBxMixxMTsKIAogLS0gVGhpcyBzaG91bGQgZmFpbCwgYmVjYXVzZSBxMiBpc24ndCBhIG5hbWUg b2YgYW4gRVhDRVBUIG91dHB1dCBjb2x1bW4KIFNFTEVDVCBxMSBGUk9NIGludDhfdGJsIEVYQ0VQ VCBTRUxFQ1QgcTIgRlJPTSBpbnQ4X3RibCBPUkRFUiBCWSBxMiBMSU1JVCAxOwotRVJST1I6ICBj b2x1bW4gInEyIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInEy IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiAuLi4gaW50OF90YmwgRVhDRVBUIFNFTEVDVCBxMiBG Uk9NIGludDhfdGJsIE9SREVSIEJZIHEyIExJTUlUIDEuLi4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRBSUw6ICBUaGVy ZSBpcyBhIGNvbHVtbiBuYW1lZCAicTIiIGluIHRhYmxlICIqU0VMRUNUKiAyIiwgYnV0IGl0IGNh bm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KLS0gCjIuNDgu MAoK --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0022-pg_restore-A-variable.patch" Content-Disposition: attachment; filename="v20250117-0022-pg_restore-A-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8ij0 RnJvbSA5NzYwMDBlMWI2OWQ2M2IzODVkNmNkMTUzNzgxYmNlY2NlM2EyM2EyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjEgSnVsIDIwMjQgMTc6MDQ6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDIy LzIyXSBwZ19yZXN0b3JlIC1BLCAtLXZhcmlhYmxlCgpwb3NzaWJpbGl0eSB0byByZXN0b3JlIHNl c3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IG5hbWUKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3Bn X3Jlc3RvcmUuc2dtbCB8IDExICsrKysrKysrKysrCiBzcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9y ZS5jICAgICB8ICA5ICsrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3Jl LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbAppbmRleCBiOGIyN2UxNzE5 Li43YTNhNGVhYmUyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbApAQCAtMTA2LDYgKzEwNiwx NyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwv dmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48b3B0aW9u Pi1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3ZhcmlhYmxlPC9yZXBs YWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgICA8dGVybT48b3B0aW9uPi0tdmFyaWFibGU9 PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8L3JlcGxhY2Vh YmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgUmVzdG9yZSBhIG5hbWVkIHNlc3Npb24gdmFyaWFibGUgb25seS4gIE11bHRpcGxlIHNl c3Npb24gdmFyaWFibGVzIG1heQorICAgICAgICBiZSBzcGVjaWZpZWQgd2l0aCBtdWx0aXBsZSA8 b3B0aW9uPi1BPC9vcHRpb24+IHN3aXRjaGVzLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlz dGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnk+CiAgICAg ICA8dGVybT48b3B0aW9uPi1jPC9vcHRpb24+PC90ZXJtPgogICAgICAgPHRlcm0+PG9wdGlvbj4t LWNsZWFuPC9vcHRpb24+PC90ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jl c3RvcmUuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKaW5kZXggODhhZTM5ZDkzOC4u NTIxODBjOTdkOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYworKysg Yi9zcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jCkBAIC0xMDYsNiArMTA2LDcgQEAgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXsidHJpZ2dlciIsIDEsIE5VTEwsICdUJ30sCiAJCXsi dXNlLWxpc3QiLCAxLCBOVUxMLCAnTCd9LAogCQl7InVzZXJuYW1lIiwgMSwgTlVMTCwgJ1UnfSwK KwkJeyJ2YXJpYWJsZSIsIDEsIE5VTEwsICdBJ30sCiAJCXsidmVyYm9zZSIsIDAsIE5VTEwsICd2 J30sCiAJCXsic2luZ2xlLXRyYW5zYWN0aW9uIiwgMCwgTlVMTCwgJzEnfSwKIApAQCAtMTU2LDcg KzE1Nyw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl9CiAJfQogCi0Jd2hpbGUg KChjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgImFjQ2Q6ZWY6RjpoOkk6ajpsTDpuOk46T3A6 UDpSc1M6dDpUOlU6dndXeDEiLAorCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3Ys ICJBOmFjQ2Q6ZWY6RjpoOkk6ajpsTDpuOk46T3A6UDpSc1M6dDpUOlU6dndXeDEiLAogCQkJCQkJ CWNtZG9wdHMsIE5VTEwpKSAhPSAtMSkKIAl7CiAJCXN3aXRjaCAoYykKQEAgLTE2NCw2ICsxNjUs MTEgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQljYXNlICdhJzoJCQkvKiBEdW1w IGRhdGEgb25seSAqLwogCQkJCWRhdGFfb25seSA9IHRydWU7CiAJCQkJYnJlYWs7CisJCQljYXNl ICdBJzoJCQkvKiB2QXJpYWJsZSAqLworCQkJCW9wdHMtPnNlbFR5cGVzID0gMTsKKwkJCQlvcHRz LT5zZWxWYXJpYWJsZSA9IDE7CisJCQkJc2ltcGxlX3N0cmluZ19saXN0X2FwcGVuZCgmb3B0cy0+ dmFyaWFibGVOYW1lcywgb3B0YXJnKTsKKwkJCQlicmVhazsKIAkJCWNhc2UgJ2MnOgkJCS8qIGNs ZWFuIChpLmUuLCBkcm9wKSBzY2hlbWEgcHJpb3IgdG8gY3JlYXRlICovCiAJCQkJb3B0cy0+ZHJv cFNjaGVtYSA9IDE7CiAJCQkJYnJlYWs7CkBAIC00NjgsNiArNDc0LDcgQEAgdXNhZ2UoY29uc3Qg Y2hhciAqcHJvZ25hbWUpCiAKIAlwcmludGYoXygiXG5PcHRpb25zIGNvbnRyb2xsaW5nIHRoZSBy ZXN0b3JlOlxuIikpOwogCXByaW50ZihfKCIgIC1hLCAtLWRhdGEtb25seSAgICAgICAgICAgICAg cmVzdG9yZSBvbmx5IHRoZSBkYXRhLCBubyBzY2hlbWFcbiIpKTsKKwlwcmludGYoXygiICAtQSwg LS12YXJpYWJsZT1OQU1FICAgICAgICAgIHJlc3RvcmUgbmFtZWQgc2Vzc2lvbiB2YXJpYWJsZVxu IikpOwogCXByaW50ZihfKCIgIC1jLCAtLWNsZWFuICAgICAgICAgICAgICAgICAgY2xlYW4gKGRy b3ApIGRhdGFiYXNlIG9iamVjdHMgYmVmb3JlIHJlY3JlYXRpbmdcbiIpKTsKIAlwcmludGYoXygi ICAtQywgLS1jcmVhdGUgICAgICAgICAgICAgICAgIGNyZWF0ZSB0aGUgdGFyZ2V0IGRhdGFiYXNl XG4iKSk7CiAJcHJpbnRmKF8oIiAgLWUsIC0tZXhpdC1vbi1lcnJvciAgICAgICAgICBleGl0IG9u IGVycm9yLCBkZWZhdWx0IGlzIHRvIGNvbnRpbnVlXG4iKSk7Ci0tIAoyLjQ4LjAKCg== --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0021-transactional-variables.patch" Content-Disposition: attachment; filename="v20250117-0021-transactional-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8jc1 RnJvbSAxMDllMWFhNDVhNzZiY2NiYzBmMzVlNTNlNmNjYmZlYmEzMzU0MDZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNToxMTozMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MjEvMjJdIHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzCgpUaGlzIGNvbW1pdCBpbXBsZW1lbnRzIHRy YW5zYWN0aW9uYWwgdmFyaWFibGVzLiBUaGUgY29udGVudCBvZiB0cmFuc2FjdGlvbmFsCnNlc3Np b24gdmFyaWFibGVzIGlzIHNlbnNpdGl2ZSB0byB0cmFuc2FjdGlvbnMgYW5kIHN1YnRyYW5zYWN0 aW9ucy4gQW55CnRyYW5zYWN0aW9uYWwgdmFyaWFibGUgaG9sZHMgYSBoaXN0b3J5IG9mIHZhbHVl cyBuZWNlc3NhcnkgZm9yIHJldmVydC4gVGhpcyBoaXN0b3J5CmlzIGNsZWFuZWQgKHB1cmdlZCkg d2hlbiBhKSB3ZSByZWFkIHRoZSB2YXJpYWJsZSwgYikgd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMg ZmluaXNoZWQuCgpXZSBkb24ndCB0cnkgdG8gcHVyZ2UsIHdoZW4gdGhlIGxhc3QgbW9kaWZpY2F0 aW9uIG9mIGEgdmFyaWFibGUgaXMgZnJvbQpjdXJyZW50IHN1YnRyYW5zYWN0aW9uLCBvciB3aGVu IHB1cmdlIHdhcyBwcm9jZXNzZWQgaW4gY3VycmVudCBzdWJ0cmFuc2FjdGlvbi4KClRoaXMgcGF0 Y2ggaXMgYmFzZWQgb24gbXkgd29yayBmcm9tIEZlYiAyMDIwIGFuZCBpdCBpcyByZWxhdGVkIHRv IGRpc2N1c3Npb24KYWJvdXQgZmVhdHVyZXMgcmVsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcy4g Tm93LCB3aGVuIHRoZSBhbGwgZmVhdHVyZXMgYXJlCnNlcGFyYXRlZCB0byBpc29sYXRlZCBwYXRj aGVzIEkgY2FuIHJldml0YWxpemUgdGhpcyBwYXRjaCwgYmVjYXVzZSBpdCBkb2Vzbid0CmluY3Jl YXNlIGNvbXBsZXhpdHkgb2YgYmFzaWMgcGF0Y2hlcy4KClVubGlrZSBvdGhlciBwYXRjaGVzLCB0 aGlzIHBhdGNoIGlzIHdpdGhvdXQgYW55IHJldmlldyBhdCB0aGlzIG1vbWVudCAoRmViIDIwMjQp LApidXQgdGhlIGZlYXR1cmUgc2hvdWxkIGJlIGZ1bGx5IGZ1bmN0aW9uYWwgZm9yIHBlb3BsZSB3 aG8gYXJlIGludGVyZXN0ZWQgYWJvdXQKdGhpcyBmZWF0dXJlIChmb3IgdGVzdGluZykuCi0tLQog ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDEyICsKIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAxMCArLQogc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDMwMSArKysrKysrKysr KysrKysrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8 ICA1MCArLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8 ICAxMCArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwg ICAxICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICAz NiArKysKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAg NCArLQogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICA1 ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAgMyAr CiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAgICAgICB8ICAzNiArLS0KIC4u Li9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDEwMCArKysrKysK IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA1OCArKysr CiAxNiBmaWxlcyBjaGFuZ2VkLCA1ODcgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCA3MTFjYzQwZDJlLi5lNGMxZDYwYTA1IDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApA QCAtOTg2OCw2ICs5ODY4LDE4IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVy YXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3Bh cmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48c3Ry dWN0ZmllbGQ+dmFyaXN0cmFuc2FjdDwvc3RydWN0ZmllbGQ+PC9lbnRyeT4KKyAgICAgIDxlbnRy eT48dHlwZT5ib29sZWFuPC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+PC9lbnRyeT4KKyAg ICAgIDxlbnRyeT4KKyAgICAgICBUcnVlLCB3aGVuIHRoZSB2YXJpYWJsZSBpcyA8cXVvdGU+dHJh bnNhY3Rpb25hbDwvcXVvdGU+LiBJbiB0aGUgY2FzZQorICAgICAgIG9mIGEgdHJhbnNhY3Rpb24g cm9sbGJhY2ssIHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzIGFyZSByZXNldCB0byB0aGUKKyAgICAg ICB2YWx1ZSB0aGV5IGhhZCB3aGVuIHRoZSB0cmFuc2FjdGlvbiBzdGFydGVkLiBUaGUgZGVmYXVs dCB2YWx1ZSBpcworICAgICAgIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPi4KKyAgICAgIDwvZW50 cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgogICAgICAgIDxz dHJ1Y3RmaWVsZD52YXJlb3hhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyPC90eXBlPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKaW5kZXggM2MzZTZkNTViNi4uMWFhZGQz Njc3ZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0yNiw3ICsyNiw3 IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9w c2lzPgotQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBbIElNTVVUQUJMRSBdIFZBUklB QkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRh X3R5cGU8L3JlcGxhY2VhYmxlPiBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KK0NSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVN UCB9IF0gWyB7IFRSQU5TQUNUSU9OQUwgfCBUUkFOU0FDVElPTiB9IF0gWyBJTU1VVEFCTEUgXSBW QVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBOT1QgTlVMTCBdIFsgREVG QVVMVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNl YWJsZT4gXSBbIHsgT04gQ09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBd CiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CkBAIC00Nyw2ICs0NywxNCBAQCBDUkVB VEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFsgSU1NVVRBQkxFIF0gVkFSSUFCTEUgWyBJRiBO T1QgRVhJU1RTIF0gPHJlcGxhYwogICAgc2FtZSBhcyByZWd1bGFyIHZhcmlhYmxlcyBpbiBwcm9j ZWR1cmFsIGxhbmd1YWdlcy4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgV2hlbiBhIHNjaGVt YSB2YXJpYWJsZSBpcyBjcmVhdGVkIHdpdGggYQorICAgPGNvbW1hbmQ+Q1JFQVRFIFRSQU5TQUNU SU9OQUwgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQsIHRoZSB2YXJpYWJsZXMKKyAgIGNvbnRl bnQgY2hhbmdlcyBhcmUgdHJhbnNhY3Rpb25hbDogaW4gY2FzZSBvZiByb2xsYmFjaywgdGhleSBh cmUgcmVzZXQgdG8KKyAgIHRoZWlyIHZhbHVlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRyYW5z YWN0aW9uIG9yIHRoZSBsYXRlc3Qgc3VidHJhbnNhY3Rpb24uCisgICBUaGUgdmFyaWFibGUgY29u dGVudCBpcyBvbmx5IGhvbGQgaW4gbWVtb3J5LCBhbmQgdGh1cyBpcyBub3QgcGVyc2lzdGVudC4K KyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHJldHJpZXZl ZCBieSB0aGUgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPgogICAgY29tbWFuZC4gIFRoZWlyIHZh bHVlIGlzIHNldCB3aXRoIHRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMKaW5kZXggMGI2MDkzYTAwYi4uZmE0OWU3MjMzZCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtNDIsNiArNDIsNyBAQCBzdGF0aWMgT2JqZWN0QWRk cmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQkJCQkJCSBib29s IGlmX25vdF9leGlzdHMsCiAJCQkJCQkJCQkgYm9vbCBub3RfbnVsbCwKIAkJCQkJCQkJCSBib29s IGlzX2ltbXV0YWJsZSwKKwkJCQkJCQkJCSBib29sIGlzX3RyYW5zYWN0LAogCQkJCQkJCQkJIE5v ZGUgKnZhckRlZmV4cHIsCiAJCQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RF bmRBY3Rpb24pOwogCkBAIC01OSw2ICs2MCw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFy ICp2YXJOYW1lLAogCQkJCWJvb2wgaWZfbm90X2V4aXN0cywKIAkJCQlib29sIG5vdF9udWxsLAog CQkJCWJvb2wgaXNfaW1tdXRhYmxlLAorCQkJCWJvb2wgaXNfdHJhbnNhY3QsCiAJCQkJTm9kZSAq dmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFjdGlvbikK IHsKQEAgLTEyMyw2ICsxMjUsNyBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFt ZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElk R2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJub3Ru dWxsIC0gMV0gPSBCb29sR2V0RGF0dW0obm90X251bGwpOwogCXZhbHVlc1tBbnVtX3BnX3Zhcmlh YmxlX3ZhcmlzaW1tdXRhYmxlIC0gMV0gPSBCb29sR2V0RGF0dW0oaXNfaW1tdXRhYmxlKTsKKwl2 YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc3RyYW5zYWN0IC0gMV0gPSBCb29sR2V0RGF0dW0o aXNfdHJhbnNhY3QpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnhhY3RlbmRhY3Rpb24g LSAxXSA9IENoYXJHZXREYXR1bSh2YXJYYWN0RW5kQWN0aW9uKTsKIAogCWlmICh2YXJEZWZleHBy KQpAQCAtMjY3LDYgKzI3MCw3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwg Q3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0 cywKIAkJCQkJCQkgICBzdG10LT5ub3RfbnVsbCwKIAkJCQkJCQkgICBzdG10LT5pc19pbW11dGFi bGUsCisJCQkJCQkJICAgc3RtdC0+aXNfdHJhbnNhY3QsCiAJCQkJCQkJICAgY29va2VkX2RlZmF1 bHQsCiAJCQkJCQkJICAgc3RtdC0+WGFjdEVuZEFjdGlvbik7CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCAyNTU1OTc1MTk3Li5lYTYzYTQwZjZmIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC01NSw2ICs1NSwxOSBAQCB0eXBl ZGVmIHN0cnVjdCBTVmFyaWFibGVYQWN0RHJvcEl0ZW0KIGludAkJc2Vzc2lvbl92YXJpYWJsZXNf dXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgPQogCQkJCQkJCQlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZF TkNFX0NPTlRFWFRfR1VBUkRfTk9ORTsKIAorLyoKKyAqIFVzZWQgZm9yIHRyYW5zYWN0aW9uYWwg dmFyaWFibGVzLiBIb2xkcyBwcmV2IHZlcnNpb24uCisgKi8KK3R5cGVkZWYgc3RydWN0IFByZXZW YWx1ZQoreworCURhdHVtCQl2YWx1ZTsKKwlib29sCQlpc251bGw7CisKKwlTdWJUcmFuc2FjdGlv bklkIG1vZGlmeV9zdWJpZDsKKworCXN0cnVjdCBQcmV2VmFsdWUgKnByZXZfdmFsdWU7Cit9IFBy ZXZWYWx1ZTsKKwogLyoKICAqIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0 b3JlZCBpbiB0aGUgYmFja2VuZCdzIHByaXZhdGUgbWVtb3J5CiAgKiBpbiB0aGUgZGVkaWNhdGVk IG1lbW9yeSBjb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaW4gYmluYXJ5IGZvcm1hdC4K QEAgLTc2LDYgKzg5LDI1IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAlib29sCQlp c251bGw7CiAJRGF0dW0JCXZhbHVlOwogCisJLyoKKwkgKiBXZSBkb24ndCBuZWVkIHN0YWNrIHZl cnNpb25zIG1vZGlmaWVkIGluIHNhbWUgc3VidHJhbnNhY3Rpb24uCisJICogVXNlZCBieSB0cmFu c2FjdGlvbmFsIHZhcmlhYmxlcyBvbmx5LiBUaGUgdmFsdWUgb2YgdHJhbnNhY3Rpb25hbAorCSAq IHZhcmlhYmxlIGNhbiBiZSByZXR1cm5lZCBpbW1lZGlhdGVseSB3aGVuIG1vZGlmeV9zdWJpZCBp cyBzYW1lCisJICogbGlrZSBjdXJyZW50IHN1YmlkLgorCSAqLworCVN1YlRyYW5zYWN0aW9uSWQg bW9kaWZ5X3N1YmlkOworCisJLyoKKwkgKiBXaGVuIHRoZSBtb2RpZnlfc3ViaWQgaXMgZGlmZmVy ZW50IHRoYW4gY3VycmVudCBzdWJpZCwgdGhlbgorCSAqIHdlIG5lZWQgdG8gcmVjaGVjayB2ZXJz aW9ucyBhbmQgdGhyb3cgdmVyc2lvbnMgcmVsYXRlZCB0bworCSAqIHJldmVydGVkIHRyYW5zYWN0 aW9ucy4gV2hlbiBwdXJnZV9zdWJpZCBpcyBzYW1lIGxpa2UgY3VycmVudCBzdWJpZAorCSAqIHdl IGNhbiByZXR1cm4gdGhlIHZhbHVlIG9mIHRyYW5zYWN0aW9uIHZhcmlhYmxlIHdpdGhvdXQgdGhp cworCSAqIHJlY2hlY2suCisJICovCisJU3ViVHJhbnNhY3Rpb25JZCBwdXJnZV9zdWJpZDsKKwor CVByZXZWYWx1ZSAgKnByZXZfdmFsdWU7CisKIAlPaWQJCQl0eXBpZDsKIAlpbnQxNgkJdHlwbGVu OwogCWJvb2wJCXR5cGJ5dmFsOwpAQCAtOTQsNiArMTI2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU1Zh cmlhYmxlRGF0YQogCiAJYm9vbAkJbm90X251bGw7CiAJYm9vbAkJaXNfaW1tdXRhYmxlOworCWJv b2wJCWlzX3RyYW5zYWN0OwogCiAJYm9vbAkJcmVzZXRfYXRfZW94OwogCkBAIC0xMzMsNiArMTY2 LDkgQEAgc3RhdGljIGJvb2wgbmVlZHNfdmFsaWRhdGlvbiA9IGZhbHNlOwogICovCiBzdGF0aWMg Ym9vbCBoYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKIAor LyogdHJ1ZSwgd2hlbiB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcyB3YXMgbW9kaWZpZWQgKi8KK3N0 YXRpYyBib29sIGhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxlcyA9IGZhbHNlOwor CiAvKgogICogVGhlIGNvbnRlbnQgb2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3Qg cmVtb3ZlZCBpbW1lZGlhdGVseS4gIElmCiAgKiBwb3NzaWJsZSwgd2UgZG8gdGhhdCBhdCB0aGUg ZW5kIG9mIHRoZSB0cmFuc2FjdGlvbi4gIEJ1dCB3ZSBjYW5ub3QgZG8gdGhhdApAQCAtMTQ4LDYg KzE4NCw3IEBAIHN0YXRpYyBMaXN0ICp4YWN0X2Ryb3BfaXRlbXMgPSBOSUw7CiAKIHN0YXRpYyB2 b2lkIHJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCk7CiBzdGF0 aWMgdm9pZCB1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCk7 CitzdGF0aWMgYm9vbCBwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyKTsKIAog LyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlv bi4KQEAgLTMwMCw4ICszMzcsMjUgQEAgdW5yZWdpc3Rlcl9zZXNzaW9uX3ZhcmlhYmxlX3hhY3Rf ZHJvcChPaWQgdmFyaWQpCiAgKiBSZWxlYXNlIHN0b3JlZCB2YWx1ZSwgZnJlZSBtZW1vcnkKICAq Lwogc3RhdGljIHZvaWQKLWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3Zh cikKK2ZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhciwgYm9vbCBkZWVw X2ZyZWUpCiB7CisJaWYgKGRlZXBfZnJlZSkKKwl7CisJCVByZXZWYWx1ZSAqcHJldl92YWx1ZSA9 IHN2YXItPnByZXZfdmFsdWU7CisJCVByZXZWYWx1ZSAqbmV4dF92YWx1ZTsKKworCQl3aGlsZSAo cHJldl92YWx1ZSkKKwkJeworCQkJaWYgKCFzdmFyLT50eXBieXZhbCkKKwkJCQlwZnJlZShEYXR1 bUdldFBvaW50ZXIocHJldl92YWx1ZS0+dmFsdWUpKTsKKworCQkJbmV4dF92YWx1ZSA9IHByZXZf dmFsdWUtPnByZXZfdmFsdWU7CisJCQlwZnJlZShwcmV2X3ZhbHVlKTsKKworCQkJcHJldl92YWx1 ZSA9IG5leHRfdmFsdWU7CisJCX0KKwl9CisKIAkvKiBjbGVhbiB0aGUgY3VycmVudCB2YWx1ZSAq LwogCWlmICghc3Zhci0+aXNudWxsKQogCXsKQEAgLTM5OCw3ICs0NTIsNyBAQCByZW1vdmVfaW52 YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhib29sIGF0RU9YKQogCQkJewogCQkJCU9pZAkJCXZhcmlk ID0gc3Zhci0+dmFyaWQ7CiAKLQkJCQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7 CisJCQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIHRydWUpOwogCQkJCWhhc2hf c2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKIAkJCQlzdmFy ID0gTlVMTDsKIAkJCX0KQEAgLTQzNCw2ICs0ODgsOTQgQEAgcmVtb3ZlX3Nlc3Npb25fdmFyaWFi bGVzX3dpdGhfcmVzZXRfYXRfZW94KHZvaWQpCiAJaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhf cmVzZXRfYXRfZW94ID0gZmFsc2U7CiB9CiAKKy8qCisgKiByZW1vdmUgcHJldiB2YWx1ZXMgYXQg ZW94CisgKi8KK3N0YXRpYyB2b2lkCityZW1vdmVfcHJldl92YWx1ZXNfYXRfZW94KGJvb2wgaXND b21taXQpCit7CisJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwlTVmFyaWFibGUJc3ZhcjsKKwor CWlmICghc2Vzc2lvbnZhcnMpCisJCXJldHVybjsKKworCS8qIGxlYXZlIHF1Y2tseSwgd2hlbiB0 aGVyZSBhcmUgbm90IHRoYXQgdmFyaWFibGVzICovCisJaWYgKCFoYXNfbW9kaWZpZWRfdHJhbnNh Y3Rpb25hbF92YXJpYWJsZXMpCisJCXJldHVybjsKKworCWhhc2hfc2VxX2luaXQoJnN0YXR1cywg c2Vzc2lvbnZhcnMpOworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJj aCgmc3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmIChzdmFyLT5pc190cmFuc2FjdCAmJiBzdmFy LT5tb2RpZnlfc3ViaWQgIT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJCXsKKwkJCWlmIChp c0NvbW1pdCkKKwkJCXsKKwkJCQlpZiAocHVyZ2Vfc2Vzc2lvbl92YXJpYWJsZShzdmFyKSkKKwkJ CQl7CisJCQkJCVByZXZWYWx1ZSAqcHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFsdWU7CisKKwkJ CQkJd2hpbGUgKHByZXZfdmFsdWUpCisJCQkJCXsKKwkJCQkJCVByZXZWYWx1ZSAqY3VycmVudF9w diA9IHByZXZfdmFsdWU7CisKKwkJCQkJCWlmICghc3Zhci0+dHlwYnl2YWwgJiYgIWN1cnJlbnRf cHYtPmlzbnVsbCkKKwkJCQkJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoY3VycmVudF9wdi0+dmFs dWUpKTsKKworCQkJCQkJcHJldl92YWx1ZSA9IGN1cnJlbnRfcHYtPnByZXZfdmFsdWU7CisJCQkJ CQlwZnJlZShjdXJyZW50X3B2KTsKKwkJCQkJfQorCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJ CQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnN2YXItPnZhcmlkLCBIQVNIX1JFTU9WRSwgTlVM TCk7CisJCQkJCXN2YXIgPSBOVUxMOworCQkJCX0KKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlQ cmV2VmFsdWUgKnByZXZfdmFsdWUgPSBzdmFyLT5wcmV2X3ZhbHVlOworCisJCQkJd2hpbGUgKHBy ZXZfdmFsdWUpCisJCQkJeworCQkJCQlQcmV2VmFsdWUgKmN1cnJlbnRfcHYgPSBwcmV2X3ZhbHVl OworCisJCQkJCWlmIChjdXJyZW50X3B2LT5tb2RpZnlfc3ViaWQgPT0gSW52YWxpZFN1YlRyYW5z YWN0aW9uSWQpCisJCQkJCQlicmVhazsKKworCQkJCQlpZiAoIXN2YXItPnR5cGJ5dmFsICYmICFj dXJyZW50X3B2LT5pc251bGwpCisJCQkJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoY3VycmVudF9w di0+dmFsdWUpKTsKKworCQkJCQlwcmV2X3ZhbHVlID0gY3VycmVudF9wdi0+cHJldl92YWx1ZTsK KwkJCQkJcGZyZWUoY3VycmVudF9wdik7CisJCQkJfQorCisJCQkJaWYgKHByZXZfdmFsdWUpCisJ CQkJeworCQkJCQlzdmFyLT52YWx1ZSA9IHByZXZfdmFsdWUtPnZhbHVlOworCQkJCQlzdmFyLT5p c251bGwgPSBwcmV2X3ZhbHVlLT5pc251bGw7CisKKwkJCQkJcGZyZWUocHJldl92YWx1ZSk7CisJ CQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmc3Zh ci0+dmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwkJCQkJc3ZhciA9IE5VTEw7CisJCQkJfQor CQkJfQorCisJCQkvKiB3aGVuIHN2YXIgaXMgc3RpbGwgdmFsaWQgKG5vdCByZW1vdmVkIGZyb20g c2Vzc2lvbnZhcnMgKi8KKwkJCWlmIChzdmFyKQorCQkJeworCQkJCXN2YXItPm1vZGlmeV9zdWJp ZCA9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkOworCQkJCXN2YXItPnByZXZfdmFsdWUgPSBOVUxM OworCQkJfQorCQl9CisJfQorCisJaGFzX21vZGlmaWVkX3RyYW5zYWN0aW9uYWxfdmFyaWFibGVz ID0gZmFsc2U7Cit9CisKIC8qCiAgICogUGVyZm9ybSBPTiBDT01NSVQgRFJPUCBmb3IgdGVtcG9y YXJ5IHNlc3Npb24gdmFyaWFibGVzLAogICAqIGFuZCByZW1vdmUgYWxsIGRyb3BwZWQgdmFyaWFi bGVzIGZyb20gbWVtb3J5LgpAQCAtNDgxLDYgKzYyMyw4IEBAIEF0UHJlRU9YYWN0X1Nlc3Npb25W YXJpYWJsZXMoYm9vbCBpc0NvbW1pdCkKIAkJcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJs ZXModHJ1ZSk7CiAJfQogCisJcmVtb3ZlX3ByZXZfdmFsdWVzX2F0X2VveChpc0NvbW1pdCk7CisK IAkvKgogCSAqIFdlIGhhdmUgdG8gY2xlYW4geGFjdF9kcm9wX2l0ZW1zLiBBbGwgcmVsYXRlZCB2 YXJpYWJsZXMgYXJlIGRyb3BwZWQKIAkgKiBub3csIG9yIGxvc3QgaW5zaWRlIGFib3J0ZWQgdHJh bnNhY3Rpb24uCkBAIC02MjYsNiArNzcwLDcgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFy aWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCiAJc3Zhci0+bm90X251bGwg PSB2YXJmb3JtLT52YXJub3RudWxsOwogCXN2YXItPmlzX2ltbXV0YWJsZSA9IHZhcmZvcm0tPnZh cmlzaW1tdXRhYmxlOworCXN2YXItPmlzX3RyYW5zYWN0ID0gdmFyZm9ybS0+dmFyaXN0cmFuc2Fj dDsKIAogCXN2YXItPmlzX2RvbWFpbiA9IChnZXRfdHlwdHlwZSh2YXJmb3JtLT52YXJ0eXBlKSA9 PSBUWVBUWVBFX0RPTUFJTik7CiAJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKQEAg LTY1MSw2ICs3OTYsMTcgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3Zhciwg T2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCXN2YXItPmlzbnVsbCA9IHRydWU7CiAJc3Zhci0+ dmFsdWUgPSAoRGF0dW0pIDA7CiAKKwlpZiAoc3Zhci0+aXNfdHJhbnNhY3QpCisJeworCQlzdmFy LT5tb2RpZnlfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOworCQloYXNfbW9k aWZpZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMgPSB0cnVlOworCX0KKwllbHNlCisJCXN2YXIt Pm1vZGlmeV9zdWJpZCA9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkOworCisJc3Zhci0+cHVyZ2Vf c3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKwlzdmFyLT5wcmV2X3ZhbHVlID0gTlVM TDsKKwogCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKIAogCXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5 c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKQEAgLTY4NCw2ICs4NDAsNjkgQEAgc2V0dXBf c2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRl KQogCVJlbGVhc2VTeXNDYWNoZSh0dXApOwogfQogCisvKgorICogVHJ5IHRvIHJlbW92ZSBhbGwg cHJldmlvdXMgdmVyc2lvbnMgcmVsYXRlZCB0byByZXZlcnRlZCB0cmFuc2FjdGlvbnMuCisgKiBS ZXR1cm5zIHRydWUsIHdoZW4gdmFsaWQgdmVyc2lvbiB3YXMgZm91bmQuCisgKi8KK3N0YXRpYyBi b29sCitwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyKQoreworCVN1YlRyYW5z YWN0aW9uSWQgY3VycmVudF9zdWJpZDsKKwlQcmV2VmFsdWUJICAgKnByZXZfdmFsdWU7CisJYm9v bAkJCWZvdW5kID0gdHJ1ZTsKKworCUFzc2VydChzdmFyLT5pc190cmFuc2FjdCk7CisKKwlpZiAo c3Zhci0+bW9kaWZ5X3N1YmlkID09IEludmFsaWRTdWJUcmFuc2FjdGlvbklkKQorCQlyZXR1cm4g dHJ1ZTsKKworCWN1cnJlbnRfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOwor CisJaWYgKHN2YXItPm1vZGlmeV9zdWJpZCA9PSBjdXJyZW50X3N1YmlkKQorCQlyZXR1cm4gdHJ1 ZTsKKworCWlmIChzdmFyLT5wdXJnZV9zdWJpZCA9PSBjdXJyZW50X3N1YmlkKQorCQlyZXR1cm4g dHJ1ZTsKKworCWlmIChTdWJUcmFuc2FjdGlvbklzQWN0aXZlKHN2YXItPm1vZGlmeV9zdWJpZCkp CisJeworCQlzdmFyLT5wdXJnZV9zdWJpZCA9IGN1cnJlbnRfc3ViaWQ7CisJCXJldHVybiB0cnVl OworCX0KKworCXByZXZfdmFsdWUgPSBzdmFyLT5wcmV2X3ZhbHVlOworCisJd2hpbGUgKHByZXZf dmFsdWUpCisJeworCQlQcmV2VmFsdWUgKmN1cnJlbnRfcHYgPSBwcmV2X3ZhbHVlOworCisJCWlm IChjdXJyZW50X3B2LT5tb2RpZnlfc3ViaWQgPT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQgfHwK KwkJCVN1YlRyYW5zYWN0aW9uSXNBY3RpdmUoY3VycmVudF9wdi0+bW9kaWZ5X3N1YmlkKSkKKwkJ eworCQkJc3Zhci0+dmFsdWUgPSBjdXJyZW50X3B2LT52YWx1ZTsKKwkJCXN2YXItPmlzbnVsbCA9 IGN1cnJlbnRfcHYtPmlzbnVsbDsKKwkJCXN2YXItPm1vZGlmeV9zdWJpZCA9IGN1cnJlbnRfcHYt Pm1vZGlmeV9zdWJpZDsKKworCQkJcHJldl92YWx1ZSA9IGN1cnJlbnRfcHYtPnByZXZfdmFsdWU7 CisJCQlwZnJlZShjdXJyZW50X3B2KTsKKworCQkJZm91bmQgPSB0cnVlOworCQkJYnJlYWs7CisJ CX0KKworCQlpZiAoIXN2YXItPnR5cGJ5dmFsICYmICFjdXJyZW50X3B2LT5pc251bGwpCisJCQlw ZnJlZShEYXR1bUdldFBvaW50ZXIoY3VycmVudF9wdi0+dmFsdWUpKTsKKworCQlwcmV2X3ZhbHVl ID0gY3VycmVudF9wdi0+cHJldl92YWx1ZTsKKwkJcGZyZWUoY3VycmVudF9wdik7CisJfQorCisJ c3Zhci0+cHJldl92YWx1ZSA9IHByZXZfdmFsdWU7CisJc3Zhci0+cHVyZ2Vfc3ViaWQgPSBjdXJy ZW50X3N1YmlkOworCisJcmV0dXJuIGZvdW5kOworfQorCiAvKgogICogQXNzaWduIGEgbmV3IHZh bHVlIHRvIHRoZSBzZXNzaW9uIHZhcmlhYmxlLiAgSXQgaXMgY29waWVkIHRvCiAgKiBTVmFyaWFi bGVNZW1vcnlDb250ZXh0IGlmIG5lY2Vzc2FyeS4KQEAgLTY5Niw2ICs5MTUsMTAgQEAgc2V0X3Nl c3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkK IAlEYXR1bQkJbmV3dmFsOwogCVNWYXJpYWJsZURhdGEgbG9jc3ZhciwKIAkJCSAgICpfc3ZhcjsK KwlTdWJUcmFuc2FjdGlvbklkIGN1cnJlbnRfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rp b25JZCgpOworCVN1YlRyYW5zYWN0aW9uSWQgcHJldl9wdXJnZV9zdWJpZCA9IEludmFsaWRTdWJU cmFuc2FjdGlvbklkOworCWJvb2wJCXNhdmVfcHJldl92YWx1ZTsKKwlQcmV2VmFsdWUgICpwcmV2 X3ZhbHVlOwogCiAJQXNzZXJ0KHN2YXIpOwogCUFzc2VydCghaXNudWxsIHx8IHZhbHVlID09IChE YXR1bSkgMCk7CkBAIC03MzEsNiArOTU0LDIxIEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJp YWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAJZWxzZQogCQlfc3ZhciA9IHN2 YXI7CiAKKwlpZiAoX3N2YXItPmlzX3RyYW5zYWN0ICYmIF9zdmFyLT5jcmVhdGVfbHNuID09IHN2 YXItPmNyZWF0ZV9sc24pCisJeworCQlBc3NlcnQoc3Zhci0+dHlwaWQgPT0gX3N2YXItPnR5cGlk KTsKKwkJQXNzZXJ0KHN2YXItPnR5cGJ5dmFsID09IF9zdmFyLT50eXBieXZhbCk7CisJCUFzc2Vy dChzdmFyLT50eXBsZW4gPT0gX3N2YXItPnR5cGxlbik7CisKKwkJc2F2ZV9wcmV2X3ZhbHVlID0g c3Zhci0+bW9kaWZ5X3N1YmlkICE9IGN1cnJlbnRfc3ViaWQ7CisJCXByZXZfdmFsdWUgPSBzdmFy LT5wcmV2X3ZhbHVlOworCX0KKwllbHNlCisJeworCQlzYXZlX3ByZXZfdmFsdWUgPSBmYWxzZTsK KwkJcHJldl92YWx1ZSA9IE5VTEw7CisJfQorCiAJaWYgKCFpc251bGwpCiAJewogCQlNZW1vcnlD b250ZXh0IG9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhTVmFyaWFibGVNZW1vcnlDb250 ZXh0KTsKQEAgLTc0Miw3ICs5ODAsMzcgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxl IHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAllbHNlCiAJCW5ld3ZhbCA9IHZhbHVl OwogCi0JZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCWlmIChzYXZlX3ByZXZf dmFsdWUpCisJeworCQl2b2xhdGlsZSBQcmV2VmFsdWUgKm5ld19wcmV2X3ZhbHVlOworCisJCVBH X1RSWSgpOworCQl7CisJCQluZXdfcHJldl92YWx1ZSA9IE1lbW9yeUNvbnRleHRBbGxvYyhTVmFy aWFibGVNZW1vcnlDb250ZXh0LAorCQkJCQkJCQkJCQkJc2l6ZW9mKFByZXZWYWx1ZSkpOworCQl9 CisJCVBHX0NBVENIKCk7CisJCXsKKwkJCS8qIHJlbGVhc2UgbWVtIGZyb20gcGVyc2lzdGVudCBj b250ZW50ICovCisJCQlpZiAobmV3dmFsICE9IHZhbHVlKQorCQkJCXBmcmVlKERhdHVtR2V0UG9p bnRlcihuZXd2YWwpKTsKKwkJCVBHX1JFX1RIUk9XKCk7CisJCX0KKwkJUEdfRU5EX1RSWSgpOwor CisJCW5ld19wcmV2X3ZhbHVlLT52YWx1ZSA9IHN2YXItPnZhbHVlOworCQluZXdfcHJldl92YWx1 ZS0+aXNudWxsID0gc3Zhci0+aXNudWxsOworCQluZXdfcHJldl92YWx1ZS0+bW9kaWZ5X3N1Ymlk ID0gc3Zhci0+bW9kaWZ5X3N1YmlkOworCQluZXdfcHJldl92YWx1ZS0+cHJldl92YWx1ZSA9IHBy ZXZfdmFsdWU7CisKKwkJcHJldl92YWx1ZSA9IChQcmV2VmFsdWUgKikgbmV3X3ByZXZfdmFsdWU7 CisJCXByZXZfcHVyZ2Vfc3ViaWQgPSBzdmFyLT5wdXJnZV9zdWJpZDsKKworCQloYXNfbW9kaWZp ZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMgPSB0cnVlOworCisJfQorCWVsc2UKKwkJZnJlZV9z ZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIHByZXZfdmFsdWUgPT0gTlVMTCk7CiAKIAllbG9n KERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBuZXcgdmFs dWUiLAogCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFj ZShzdmFyLT52YXJpZCkpLApAQCAtNzU1LDYgKzEwMjMsOSBAQCBzZXRfc2Vzc2lvbl92YXJpYWJs ZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCiAJc3Zhci0+dmFs dWUgPSBuZXd2YWw7CiAJc3Zhci0+aXNudWxsID0gaXNudWxsOworCXN2YXItPm1vZGlmeV9zdWJp ZCA9IGN1cnJlbnRfc3ViaWQ7CisJc3Zhci0+cHVyZ2Vfc3ViaWQgPSBwcmV2X3B1cmdlX3N1Ymlk OworCXN2YXItPnByZXZfdmFsdWUgPSBwcmV2X3ZhbHVlOwogCiAJLyogZG9uJ3QgYWxsb3cgbW9y ZSBjaGFuZ2VzIG9mIHZhbHVlIHdoZW4gdmFyaWFibGUgaXMgSU1NVVRBQkxFICovCiAJaWYgKHN2 YXItPmlzX2ltbXV0YWJsZSkKQEAgLTg1Niw2ICsxMTI3LDggQEAgZ2V0X3Nlc3Npb25fdmFyaWFi bGUoT2lkIHZhcmlkKQogCWVsc2UKIAkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKIAorcmVpbml0 OgorCiAJLyoKIAkgKiBGb3JjZSBzZXR1cCBmb3Igbm90IHlldCBpbml0aWFsaXplZCB2YXJpYWJs ZXMgb3IgdmFyaWFibGVzIHRoYXQgY2Fubm90CiAJICogYmUgdmFsaWRhdGVkLgpAQCAtODg4LDYg KzExNjEsMjggQEAgZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZhcmlkKQogCQkJIHZhcmlkKTsK IAl9CiAKKwkvKgorCSAqIFRyYW5zYWN0aW9uYWwgdmFyaWFibGVzIHNob3VsZCBiZSBwdXJnZWQg YmVmb3JlIChyZW1vdmUKKwkgKiB2ZXJzaW9ucyBjcmVhdGVkIGJ5IHBvc3NpYmx5IHJldmVydGVk IHN1YnRyYW5zYWN0aW9ucykuCisJICovCisJaWYgKHN2YXItPmlzX3RyYW5zYWN0ICYmCisJCXN2 YXItPm1vZGlmeV9zdWJpZCAhPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpICYmCisJCXN2 YXItPm1vZGlmeV9zdWJpZCAhPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCkKKwl7CisJCWlmICgh cHVyZ2Vfc2Vzc2lvbl92YXJpYWJsZShzdmFyKSkKKwkJeworCQkJLyogZm9yY2UgcmVpbml0ICov CisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCisJCQkvKgorCQkJICogSW4gbmV4dCBpdGVy YXRpb24gbW9kaWZ5X3N1YmlkIHNob3VsZCBiZQorCQkJICogSW52YWxpZFN1YlRyYW5zYWN0aW9u SWQgb3IgY3VycmVudCBzdWJpZCwKKwkJCSAqIHNvIHRoZXJlIGlzIG5vdCByaXNrIG9mIGluZmlu aXR5IGN5Y2xlLgorCQkJICovCisJCQlnb3RvIHJlaW5pdDsKKwkJfQorCX0KKwogCS8qIGVuc3Vy ZSB0aGUgcmV0dXJuZWQgZGF0YSBpcyBzdGlsbCBvZiB0aGUgY29ycmVjdCBkb21haW4gKi8KIAlp ZiAoc3Zhci0+aXNfZG9tYWluKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDUxN2Y2MzgwN2EuLmNjNWQ3 ZTAyZTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNjc1LDcgKzY3NSw3IEBAIHN0YXRpYyBOb2RlICptYWtl UmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpx dWVyeSk7CiAJCQkJanNvbl9vYmplY3RfY29uc3RydWN0b3JfbnVsbF9jbGF1c2Vfb3B0CiAJCQkJ anNvbl9hcnJheV9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVzZV9vcHQKIAotJXR5cGUgPGJvb2xlYW4+ CQlPcHROb3ROdWxsIE9wdEltbXV0YWJsZQorJXR5cGUgPGJvb2xlYW4+CQlPcHROb3ROdWxsIE9w dEltbXV0YWJsZSBPcHRUcmFuc2FjdGlvbmFsCiAKIC8qCiAgKiBOb24ta2V5d29yZCB0b2tlbiB0 eXBlcy4gIFRoZXNlIGFyZSBoYXJkLXdpcmVkIGludG8gdGhlICJmbGV4IiBsZXhlci4KQEAgLTc4 MCw3ICs3ODAsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAq cmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVNVQlNDUklQVElPTiBTVUJT VFJJTkcgU1VQUE9SVCBTWU1NRVRSSUMgU1lTSUQgU1lTVEVNX1AgU1lTVEVNX1VTRVIKIAogCVRB QkxFIFRBQkxFUyBUQUJMRVNBTVBMRSBUQUJMRVNQQUNFIFRBUkdFVCBURU1QIFRFTVBMQVRFIFRF TVBPUkFSWSBURVhUX1AgVEhFTgotCVRJRVMgVElNRSBUSU1FU1RBTVAgVE8gVFJBSUxJTkcgVFJB TlNBQ1RJT04gVFJBTlNGT1JNCisJVElFUyBUSU1FIFRJTUVTVEFNUCBUTyBUUkFJTElORyBUUkFO U0FDVElPTiBUUkFOU0FDVElPTkFMIFRSQU5TRk9STQogCVRSRUFUIFRSSUdHRVIgVFJJTSBUUlVF X1AKIAlUUlVOQ0FURSBUUlVTVEVEIFRZUEVfUCBUWVBFU19QCiAKQEAgLTUyNjcsMzEgKzUyNjcs MzMgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K IAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0VGVtcCBPcHRJbW11dGFibGUg VkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVz ZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KKwkJ CUNSRUFURSBPcHRUZW1wIE9wdFRyYW5zYWN0aW9uYWwgT3B0SW1tdXRhYmxlIFZBUklBQkxFIHF1 YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0Tm90TnVs bCBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlD cmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsK LQkJCQkJJDUtPnJlbHBlcnNpc3RlbmNlID0gJDI7Ci0JCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQz OwotCQkJCQluLT52YXJpYWJsZSA9ICQ1OwotCQkJCQluLT50eXBlTmFtZSA9ICQ3OwotCQkJCQlu LT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDg7Ci0JCQkJCW4tPm5vdF9udWxsID0g JDk7Ci0JCQkJCW4tPmRlZmV4cHIgPSAkMTA7Ci0JCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTE7 CisJCQkJCSQ2LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOworCQkJCQluLT5pc19pbW11dGFibGUgPSAk NDsKKwkJCQkJbi0+aXNfdHJhbnNhY3QgPSAkMzsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNjsKKwkJ CQkJbi0+dHlwZU5hbWUgPSAkODsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNl ICopICQ5OworCQkJCQluLT5ub3RfbnVsbCA9ICQxMDsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxMTsK KwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZh bHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgT3B0VGVtcCBP cHRJbW11dGFibGUgVkFSSUFCTEUgSUZfUCBOT1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9h cyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0Tm90TnVsbCBPcHRTZXNzaW9uVmFyRGVm RXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBPcHRUZW1wIE9wdFRyYW5zYWN0 aW9uYWwgT3B0SW1tdXRhYmxlIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFt ZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lv blZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lv blZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCSQ4LT5y ZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT5pc19pbW11dGFibGUgPSAkMzsKLQkJCQkJbi0+ dmFyaWFibGUgPSAkODsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkMTA7Ci0JCQkJCW4tPmNvbGxDbGF1 c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkMTE7Ci0JCQkJCW4tPm5vdF9udWxsID0gJDEyOwotCQkJ CQluLT5kZWZleHByID0gJDEzOwotCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDE0OworCQkJCQkk OS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1tdXRhYmxlID0gJDQ7CisJCQkJ CW4tPmlzX3RyYW5zYWN0ID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDk7CisJCQkJCW4tPnR5 cGVOYW1lID0gJDExOworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDEy OworCQkJCQluLT5ub3RfbnVsbCA9ICQxMzsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxNDsKKwkJCQkJ bi0+WGFjdEVuZEFjdGlvbiA9ICQxNTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CiAJ CQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC01MzE5LDYgKzUzMjEsMTIgQEAgT3B0SW1t dXRhYmxlOiBJTU1VVEFCTEUJCQkJCQkJCXsgJCQgPSB0cnVlOyB9CiAJCQl8IC8qIEVNUFRZICov CQkJCQkJCXsgJCQgPSBmYWxzZTsgfQogCQk7CiAKK09wdFRyYW5zYWN0aW9uYWw6CisJCQlUUkFO U0FDVElPTgkJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgVFJBTlNBQ1RJT05BTAkJCQkJCQl7 ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJ OworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFtZSBV UERBVEUgWyBUTyB2ZXJzaW9uIF0KQEAgLTE4MTY3LDYgKzE4MTc1LDcgQEAgdW5yZXNlcnZlZF9r ZXl3b3JkOgogCQkJfCBURVhUX1AKIAkJCXwgVElFUwogCQkJfCBUUkFOU0FDVElPTgorCQkJfCBU UkFOU0FDVElPTkFMCiAJCQl8IFRSQU5TRk9STQogCQkJfCBUUklHR0VSCiAJCQl8IFRSVU5DQVRF CkBAIC0xODgxNiw2ICsxODgyNSw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgVElNRVNU QU1QCiAJCQl8IFRSQUlMSU5HCiAJCQl8IFRSQU5TQUNUSU9OCisJCQl8IFRSQU5TQUNUSU9OQUwK IAkJCXwgVFJBTlNGT1JNCiAJCQl8IFRSRUFUCiAJCQl8IFRSSUdHRVIKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4 IGI0YzYxZGExODguLjQ2ZmIyOGMxYzggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTQ0Miw2ICs1NDQyLDcg QEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV92YXJjb2xsYXRpb247CiAJ aW50CQkJaV92YXJub3RudWxsOwogCWludAkJCWlfdmFyaXNpbW11dGFibGU7CisJaW50CQkJaV92 YXJpc3RyYW5zYWN0OwogCWludAkJCWlfdmFyYWNsOwogCWludAkJCWlfYWNsZGVmYXVsdDsKIAlp bnQJCQlpLApAQCAtNTQ2Niw2ICs1NDY3LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQp CiAJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFyY29sbGF0aW9uLFxuIgogCQkJCQkgICIgICAgICAg di52YXJub3RudWxsLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJpc2ltbXV0YWJsZSxcbiIKKwkJ CQkJICAiICAgICAgIHYudmFyaXN0cmFuc2FjdCxcbiIKIAkJCQkJICAiICAgICAgIHBnX2NhdGFs b2cucGdfZ2V0X2V4cHIodi52YXJkZWZleHByLDApIGFzIHZhcmRlZmV4cHIsXG4iCiAJCQkJCSAg IiAgICAgICB2LnZhcm93bmVyLCB2LnZhcmFjbCxcbiIKIAkJCQkJICAiICAgICAgIGFjbGRlZmF1 bHQoJ1YnLCB2LnZhcm93bmVyKSBBUyBhY2xkZWZhdWx0XG4iCkBAIC01NDg4LDYgKzU0OTAsNyBA QCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJl cihyZXMsICJ2YXJjb2xsYXRpb24iKTsKIAlpX3Zhcm5vdG51bGwgPSBQUWZudW1iZXIocmVzLCAi dmFybm90bnVsbCIpOwogCWlfdmFyaXNpbW11dGFibGUgPSBQUWZudW1iZXIocmVzLCAidmFyaXNp bW11dGFibGUiKTsKKwlpX3ZhcmlzdHJhbnNhY3QgPSBQUWZudW1iZXIocmVzLCAidmFyaXN0cmFu c2FjdCIpOwogCiAJaV92YXJvd25lciA9IFBRZm51bWJlcihyZXMsICJ2YXJvd25lciIpOwogCWlf dmFyYWNsID0gUFFmbnVtYmVyKHJlcywgInZhcmFjbCIpOwpAQCAtNTUxNiw2ICs1NTE5LDcgQEAg Z2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCXZhcmluZm9baV0udmFyY29sbGF0aW9uID0g YXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlvbikpOwogCQl2YXJpbmZvW2ld LnZhcm5vdG51bGwgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm5vdG51bGwpKSA9PSAndCc7 CiAJCXZhcmluZm9baV0udmFyaXNpbW11dGFibGUgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zh cmlzaW1tdXRhYmxlKSkgPT0gJ3QnOworCQl2YXJpbmZvW2ldLnZhcmlzdHJhbnNhY3QgPSAqKFBR Z2V0dmFsdWUocmVzLCBpLCBpX3ZhcmlzdHJhbnNhY3QpKSA9PSAndCc7CiAKIAkJdmFyaW5mb1tp XS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wpKTsKIAkJ dmFyaW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGks IGlfYWNsZGVmYXVsdCkpOwpAQCAtNTU2Myw2ICs1NTY3LDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hp dmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAljb25zdCBjaGFyICp2YXJk ZWZleHByOwogCWNvbnN0IGNoYXIgKnZhcnhhY3RlbmRhY3Rpb247CiAJY29uc3QgY2hhciAqdmFy aXNpbW11dGFibGU7CisJY29uc3QgY2hhciAqdmFyaXN0cmFuc2FjdDsKIAlPaWQJCQl2YXJjb2xs YXRpb247CiAJYm9vbAkJdmFybm90bnVsbDsKIApAQCAtNTU4MCwxMiArNTU4NSwxMyBAQCBkdW1w VmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCXZh cmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKIAl2YXJub3RudWxsID0gdmFyaW5m by0+dmFybm90bnVsbDsKIAl2YXJpc2ltbXV0YWJsZSA9IHZhcmluZm8tPnZhcmlzaW1tdXRhYmxl ID8gIklNTVVUQUJMRSAiIDogIiI7CisJdmFyaXN0cmFuc2FjdCA9IHZhcmluZm8tPnZhcmlzdHJh bnNhY3QgPyAiVFJBTlNBQ1RJT05BTCAiIDogIiI7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxx LCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCiAJCQkJCSAgcXVhbHZhcm5hbWUpOwogCi0JYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgJXNWQVJJQUJMRSAlcyBBUyAlcyIsCi0JCQkJCSAg dmFyaXNpbW11dGFibGUsIHF1YWx2YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKwlhcHBlbmRQUUV4cEJ1 ZmZlcihxdWVyeSwgIkNSRUFURSAlcyVzVkFSSUFCTEUgJXMgQVMgJXMiLAorCQkJCQkgIHZhcmlz dHJhbnNhY3QsIHZhcmlzaW1tdXRhYmxlLCBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CiAKIAlp ZiAoT2lkSXNWYWxpZCh2YXJjb2xsYXRpb24pKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDA1NjI0OTdm MzQuLmYzZTk4MjNjOGMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzI3LDYgKzcyNyw3IEBAIHR5cGVkZWYg c3RydWN0IF9WYXJpYWJsZUluZm8KIAljb25zdCBjaGFyICpyb2xuYW1lOwkJLyogbmFtZSBvZiBv d25lciwgb3IgZW1wdHkgc3RyaW5nICovCiAJYm9vbAkJdmFybm90bnVsbDsKIAlib29sCQl2YXJp c2ltbXV0YWJsZTsKKwlib29sCQl2YXJpc3RyYW5zYWN0OwogfSBWYXJpYWJsZUluZm87CiAKIC8q CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4v cGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDFiYmE2OGU2YWUuLjAzNDQwYTQyMzAgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4v cGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC00MDc3LDYgKzQwNzcsNDIgQEAgbXkgJXRlc3Rz ID0gKAogCQl9LAogCX0sCiAKKwknQ1JFQVRFIFRSQU5TQUNUSU9OQUwgVkFSSUFCTEUgdGVzdF92 YXJpYWJsZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdD UkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3Fs ICAgPT4gJ0NSRUFURSBUUkFOU0FDVElPTkFMIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTgg QVMgaW50ZWdlcicsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBUUkFOU0FDVElPTkFM IFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTggQVMgaW50ZWdlcjtcRS94bSwKKwkJbGlrZSA9 PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rp b25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90 ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0s CisJfSwKKworCSdDUkVBVEUgVFJBTlNBQ1RJT05BTCBJTU1VVEFCTEUgVkFSSUFCTEUgdGVzdF92 YXJpYWJsZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdD UkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3Fs ICAgPT4gJ0NSRUFURSBUUkFOU0FDVElPTkFMIElNTVVUQUJMRSBWQVJJQUJMRSBkdW1wX3Rlc3Qu dmFyaWFibGU5IEFTIGludGVnZXInLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVFJB TlNBQ1RJT05BTCBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlOSBBUyBpbnRl Z2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3Nj aGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4g eworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3Vy ZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBWSUVXIHRlc3RfdmlldycgPT4g ewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVXIGR1 bXBfdGVzdC50ZXN0X3ZpZXcKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggY2U5N2FlMGFkMy4uODdmMDU3YWM4OCAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKQEAgLTUyNzEsNyArNTI3MSw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0 dGVybiwgYm9vbCB2ZXJib3NlKQogCVBRRXhwQnVmZmVyRGF0YSBidWY7CiAJUEdyZXN1bHQgICAq cmVzOwogCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7Ci0Jc3RhdGljIGNvbnN0IGJv b2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRpYyBj b25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZX07CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7CkBAIC01Mjk0LDYgKzUyOTQs NyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJ CQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCIs XG4iCiAJCQkJCSAgIiAgTk9UIHYudmFybm90bnVsbCBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAg Tk9UIHYudmFyaXNpbW11dGFibGUgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHYudmFyaXN0cmFu c2FjdCBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2LnZh cmRlZmV4cHIsIDApIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVuZGFj dGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4iCkBA IC01MzA2LDYgKzUzMDcsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJv b2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCiAJCQkJCSAgZ2V0dGV4 dF9ub29wKCJOdWxsYWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiTXV0YWJsZSIpLAorCQkJ CQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgi RGVmYXVsdCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9u IikpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggZDY4MzhhZTNjMS4uZDM0N2IyZDI3ZSAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTMwNSw2ICsxMzA1LDggQEAgc3RhdGljIGNvbnN0 IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJCQkJCQkJCQkJCQkJCQkJ CQkJICogVEFCTEUgLi4uICovCiAJeyJURVhUIFNFQVJDSCIsIE5VTEwsIE5VTEwsIE5VTEx9LAog CXsiVFJBTlNGT1JNIiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fQUxURVJ9LAor CXsiVFJBTlNBQ1RJT05BTCIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5HX05PX0RST1Ag fCBUSElOR19OT19BTFRFUn0sIC8qIGZvciBDUkVBVEUgVFJBTlNBQ1RJT05BTAorCQkJCQkJCQkJ CQkJCQkJCQkJCQkqIFZBUklBQkxFIC4uLiAqLwogCXsiVFJJR0dFUiIsICJTRUxFQ1QgdGduYW1l IEZST00gcGdfY2F0YWxvZy5wZ190cmlnZ2VyIFdIRVJFIHRnbmFtZSBMSUtFICclcycgQU5EIE5P VCB0Z2lzaW50ZXJuYWwifSwKIAl7IlRZUEUiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rf b2ZfZGF0YXR5cGVzfSwKIAl7IlVOSVFVRSIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5H X05PX0RST1AgfCBUSElOR19OT19BTFRFUn0sIC8qIGZvciBDUkVBVEUgVU5JUVVFCkBAIC0zOTYy LDggKzM5NjQsMTEgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJfQog LyogQ1JFQVRFIFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBz byB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+ IHdpdGggQVMgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiVFJBTlNBQ1RJT058VFJB TlNBQ1RJT05BTCIpKQorCQlDT01QTEVURV9XSVRIKCJJTU1VVEFCTEUiLCAiVkFSSUFCTEUiKTsK IAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8 CiAJCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVNUE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkp IHx8CisJCQkgVGFpbE1hdGNoZXMoIlRSQU5TQUNUSU9OfFRSQU5TQUNUSU9OQUwiLCAiVkFSSUFC TEUiLCBNYXRjaEFueSkgfHwKIAkJCSBUYWlsTWF0Y2hlcygiSU1NVVRBQkxFIiwgIlZBUklBQkxF IiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJBUyIpOwogCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUu aAppbmRleCBjZjIxZTA0MjZhLi40NTRiYjI5NzA5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJs ZS5oCkBAIC02Miw2ICs2Miw5IEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJl bGF0aW9uSWQpCiAJLyogZG9uJ3QgYWxsb3cgY2hhbmdlcyAqLwogCWJvb2wJCXZhcmlzaW1tdXRh YmxlIEJLSV9ERUZBVUxUKGYpOwogCisJLyogc3VwcG9ydHMgdHJhbnNhY3Rpb25zICovCisJYm9v bAkJdmFyaXN0cmFuc2FjdCBCS0lfREVGQVVMVChmKTsKKwogCS8qIGFjdGlvbiBvbiB0cmFuc2Fj dGlvbiBlbmQgKi8KIAljaGFyCQl2YXJ4YWN0ZW5kYWN0aW9uIEJLSV9ERUZBVUxUKG4pOwogCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggOTUyZjgzNzU3NC4uYzVkNTkwZTU3OSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaApAQCAtMzUzOCw2ICszNTM4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRl U2Vzc2lvblZhclN0bXQKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0 IGFscmVhZHkgZXhpc3RzICovCiAJYm9vbAkJbm90X251bGw7CQkvKiBkaXNhbGxvdyBudWxscyAq LwogCWJvb2wJCWlzX2ltbXV0YWJsZTsJLyogZG9uJ3QgYWxsb3cgY2hhbmdlcyAqLworCWJvb2wJ CWlzX3RyYW5zYWN0OwkvKiBzdXBwb3J0cyB0cmFuc2FjdGlvbnMgKi8KIAlOb2RlCSAgICpkZWZl eHByOwkJLyogZGVmYXVsdCBleHByZXNzaW9uICovCiAJY2hhcgkJWGFjdEVuZEFjdGlvbjsJLyog b24gdHJhbnNhY3Rpb24gZW5kIGFjdGlvbiAqLwogfSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNl ci9rd2xpc3QuaAppbmRleCA2ZDg3NGFhZGIzLi45MDhmMzc1NzkwIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o CkBAIC00NTYsNiArNDU2LDcgQEAgUEdfS0VZV09SRCgidGltZXN0YW1wIiwgVElNRVNUQU1QLCBD T0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidG8iLCBUTywgUkVTRVJW RURfS0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ0cmFpbGluZyIsIFRSQUlMSU5HLCBS RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJhbnNhY3Rpb24iLCBU UkFOU0FDVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgi dHJhbnNhY3Rpb25hbCIsIFRSQU5TQUNUSU9OQUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKIFBHX0tFWVdPUkQoInRyYW5zZm9ybSIsIFRSQU5TRk9STSwgVU5SRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJlYXQiLCBUUkVBVCwgQ09MX05BTUVfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRyaWdnZXIiLCBUUklHR0VSLCBVTlJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRl eCA5M2UxMGI0YzdlLi4xOTMzMDI1ODU3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQK QEAgLTYwMjAsMjAgKzYwMjAsMjAgQEAgQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25l cjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBD b2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwg RGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwg RGVzY3JpcHRpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8 IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAg IFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxh YmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCiAo MSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKIENPTU1F TlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CiBcZFYrIHZhcjEKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVt YSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIg ICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAg ICAgIHwgICBEZXNjcmlwdGlvbiAgICAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCi0g cHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192 YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFi bGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCi0gICAgICAgIHwgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNz X3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAg ICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJh bnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMg ICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFy eWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQg ICAgICAgfCBmICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNv bWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdy ZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAog RFJPUCBWQVJJQUJMRSB2YXIxOwpAQCAtNjUwMSw5ICs2NTAxLDkgQEAgTGlzdCBvZiBzY2hlbWFz CiAoMCByb3dzKQogCiBcZFYgIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8 IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQg fCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxh dGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1 bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4s IGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02Njc2LDkgKzY2NzYs OSBAQCBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2guZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0 ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYg Im5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwg VHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8 IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0 aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVs dCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2Fpbiwg YnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9u cy4KQEAgLTY4MTUsOSArNjgxNSw5IEBAIExpc3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxhdGVzCiAo MCByb3dzKQogCiBcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlh YmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZh cmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxs YWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0t LS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2No ZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJs ZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAor LS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRv dHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDU2NWZiNWRhNmUuLjAyN2I1MDAyMjMgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBA IC0yNTkxLDMgKzI1OTEsMTAzIEBAIFNFTEVDVCB2YXIxOwogTEVUIHZhcjEgPSAzMDsKIEVSUk9S OiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQog RFJPUCBWQVJJQUJMRSB2YXIxOworLS0gdGVzdCB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcworQ1JF QVRFIFRSQU5TQUNUSU9OIFZBUklBQkxFIHR2IEFTIGludCBERUZBVUxUIDA7CitCRUdJTjsKKyAg TEVUIHR2ID0gMTAwOworICBTRUxFQ1QgdHY7CisgdHYgIAorLS0tLS0KKyAxMDAKKygxIHJvdykK KworUk9MTEJBQ0s7CitTRUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDAKKygxIHJvdykKKworTEVU IHR2ID0gMTAwOworQkVHSU47CisgIExFVCB0diA9IDEwMDA7CitDT01NSVQ7CitTRUxFQ1QgdHY7 CisgIHR2ICAKKy0tLS0tLQorIDEwMDAKKygxIHJvdykKKworQkVHSU47CisgIExFVCB0diA9IDA7 CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMAorKDEgcm93KQorCitST0xMQkFDSzsKK1NF TEVDVCB0djsKKyAgdHYgIAorLS0tLS0tCisgMTAwMAorKDEgcm93KQorCistLSB0ZXN0IHN1YnRy YW5zYWN0aW9ucworQkVHSU47CisgIExFVCB0diA9IDE7CitTQVZFUE9JTlQgeDE7CisgIExFVCB0 diA9IDI7CitTQVZFUE9JTlQgeDI7CisgIExFVCB0diA9IDM7CitST0xMQkFDSyBUTyB4MjsKKyAg U0VMRUNUIHR2OworIHR2IAorLS0tLQorICAyCisoMSByb3cpCisKKyAgTEVUIHR2ID0gMTA7CitS T0xMQkFDSyBUTyB4MTsKKyAgU0VMRUNUIHR2OworIHR2IAorLS0tLQorICAxCisoMSByb3cpCisK K1JPTExCQUNLOworU0VMRUNUIHR2OworICB0diAgCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisK K0JFR0lOOworICBMRVQgdHYgPSAxOworU0FWRVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FW RVBPSU5UIHgyOworICBMRVQgdHYgPSAzOworUk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsK KyB0diAKKy0tLS0KKyAgMgorKDEgcm93KQorCisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8g eDE7CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMQorKDEgcm93KQorCitDT01NSVQ7CitT RUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDEKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB0djsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCA4YTEyMmFl YjFlLi42MTkxMTE3ZTA4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsCkBAIC0xODA4LDMgKzE4MDgsNjEgQEAgU0VMRUNUIHZhcjE7CiBMRVQgdmFyMSA9IDMw OwogCiBEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHRlc3QgdHJhbnNhY3Rpb25hbCB2YXJpYWJs ZXMKK0NSRUFURSBUUkFOU0FDVElPTiBWQVJJQUJMRSB0diBBUyBpbnQgREVGQVVMVCAwOworCitC RUdJTjsKKyAgTEVUIHR2ID0gMTAwOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VMRUNU IHR2OworCitMRVQgdHYgPSAxMDA7CitCRUdJTjsKKyAgTEVUIHR2ID0gMTAwMDsKK0NPTU1JVDsK KworU0VMRUNUIHR2OworCitCRUdJTjsKKyAgTEVUIHR2ID0gMDsKKyAgU0VMRUNUIHR2OworUk9M TEJBQ0s7CisKK1NFTEVDVCB0djsKKworLS0gdGVzdCBzdWJ0cmFuc2FjdGlvbnMKKworQkVHSU47 CisgIExFVCB0diA9IDE7CitTQVZFUE9JTlQgeDE7CisgIExFVCB0diA9IDI7CitTQVZFUE9JTlQg eDI7CisgIExFVCB0diA9IDM7CitST0xMQkFDSyBUTyB4MjsKKyAgU0VMRUNUIHR2OworICBMRVQg dHYgPSAxMDsKK1JPTExCQUNLIFRPIHgxOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VM RUNUIHR2OworCitCRUdJTjsKKyAgTEVUIHR2ID0gMTsKK1NBVkVQT0lOVCB4MTsKKyAgTEVUIHR2 ID0gMjsKK1NBVkVQT0lOVCB4MjsKKyAgTEVUIHR2ID0gMzsKK1JPTExCQUNLIFRPIHgyOworICBT RUxFQ1QgdHY7CisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7CisgIFNFTEVDVCB0djsK K0NPTU1JVDsKKworU0VMRUNUIHR2OworCitEUk9QIFZBUklBQkxFIHR2OwotLSAKMi40OC4wCgo= --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0019-expression-with-session-variables-can-be-inlined.patch" Content-Disposition: attachment; filename="v20250117-0019-expression-with-session-variables-can-be-inlined.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8k53 RnJvbSBlMzUzZjZjZjhmZWEwZWE0MTE1Nzc1ODMwN2M3MmJhMmM1ZGJmZTA5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMjA6MzU6MzggKzAxMDAKU3ViamVjdDogW1BBVENIIDE5 LzIyXSBleHByZXNzaW9uIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGlubGluZWQKClRo ZXJlIGlzIG5vdCBhbiByZWFzb24gd2h5IHNlc3Npb24gdmFyaWFibGVzIHNob3VsZCB0byBibG9j ayBpbmxpbmluZy4KKG9mIFNRTCBmdW5jdGlvbnMpLiBJIGNhbiBpbWFnaW5lIHNvbWUgdXNlIGNh c2VzIGxpa2Ugd3JhcHBpbmcsIGFuZAppbmxpbmluZyBzaWduaWZpY2FudGx5IHJlZHVjZXMgYW4g b3ZlcmhlYWQgb2YgU1FMIGZ1bmN0aW9ucy4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMgICAgICAgICAgfCAzNyArKysrKysrKysrKysrKy0tLS0tCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNyArKy0tCiAyIGZpbGVzIGNo YW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwppbmRleCAxNzUzOTBjNmMyLi4wZWI1MmZhMjA4IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKKysrIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCkBAIC00NzQ0LDggKzQ3NDQsNyBAQCBpbmxpbmVfZnVu Y3Rpb24oT2lkIGZ1bmNpZCwgT2lkIHJlc3VsdF90eXBlLCBPaWQgcmVzdWx0X2NvbGxpZCwKIAkJ cXVlcnl0cmVlLT5saW1pdE9mZnNldCB8fAogCQlxdWVyeXRyZWUtPmxpbWl0Q291bnQgfHwKIAkJ cXVlcnl0cmVlLT5zZXRPcGVyYXRpb25zIHx8Ci0JCShsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRh cmdldExpc3QpICE9IDEpIHx8Ci0JCXF1ZXJ5dHJlZS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKKwkJ KGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+dGFyZ2V0TGlzdCkgIT0gMSkpCiAJCWdvdG8gZmFpbDsK IAogCS8qIElmIHRoZSBmdW5jdGlvbiByZXN1bHQgaXMgY29tcG9zaXRlLCByZXNvbHZlIGl0ICov CkBAIC00OTQ5LDIxICs0OTQ4LDM5IEBAIHN1YnN0aXR1dGVfYWN0dWFsX3BhcmFtZXRlcnNfbXV0 YXRvcihOb2RlICpub2RlLAogewogCWlmIChub2RlID09IE5VTEwpCiAJCXJldHVybiBOVUxMOwor CisKKwkvKgorCSAqIFNRTCBmdW5jdGlvbnMgY2FuIGNvbnRhaW4gdHdvIGRpZmZlcmVudCBraW5k IG9mIHBhcmFtcy4gVGhlIG5vZGVzIHdpdGgKKwkgKiBwYXJhbWtpbmQgUEFSQU1fRVhURVJOIGFy ZSByZWxhdGVkIHRvIGZ1bmN0aW9uJ3MgYXJndW1lbnRzIChhbmQgc2hvdWxkCisJICogYmUgcmVw bGFjZWQgaW4gdGhpcyBzdGVwKSwgYmVjYXVzZSB0aGlzIGlzIGhvdyB3ZSBhcHBseSB0aGUgZnVu Y3Rpb24ncworCSAqIGFyZ3VtZW50cyBmb3IgYW4gZXhwcmVzc2lvbi4KKwkgKgorCSAqIFRoZSBu b2RlcyB3aXRoIHBhcmFta2luZCBQQVJBTV9WQVJJQUJMRSBhcmUgcmVsYXRlZCB0byB1c2FnZSBv ZiBzZXNzaW9uCisJICogdmFyaWFibGVzLiBUaGUgdmFsdWVzIG9mIHNlc3Npb24gdmFyaWFibGVz IGFyZSBub3QgcGFzc2VkIHRvIGV4cHJlc3Npb24KKwkgKiBieSBleHByZXNzaW9uIGFyZ3VtZW50 cywgc28gaXQgc2hvdWxkIG5vdCBiZSByZXBsYWNlZCBoZXJlIGJ5CisJICogZnVuY3Rpb24ncyBh cmd1bWVudHMuCisJICovCiAJaWYgKElzQShub2RlLCBQYXJhbSkpCiAJewogCQlQYXJhbQkgICAq cGFyYW0gPSAoUGFyYW0gKikgbm9kZTsKIAotCQlpZiAocGFyYW0tPnBhcmFta2luZCAhPSBQQVJB TV9FWFRFUk4pCisJCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX0VYVEVSTiAmJgorCQkJ cGFyYW0tPnBhcmFta2luZCAhPSBQQVJBTV9WQVJJQUJMRSkKIAkJCWVsb2coRVJST1IsICJ1bmV4 cGVjdGVkIHBhcmFta2luZDogJWQiLCAoaW50KSBwYXJhbS0+cGFyYW1raW5kKTsKLQkJaWYgKHBh cmFtLT5wYXJhbWlkIDw9IDAgfHwgcGFyYW0tPnBhcmFtaWQgPiBjb250ZXh0LT5uYXJncykKLQkJ CWVsb2coRVJST1IsICJpbnZhbGlkIHBhcmFtaWQ6ICVkIiwgcGFyYW0tPnBhcmFtaWQpOwogCi0J CS8qIENvdW50IHVzYWdlIG9mIHBhcmFtZXRlciAqLwotCQljb250ZXh0LT51c2Vjb3VudHNbcGFy YW0tPnBhcmFtaWQgLSAxXSsrOworCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9FWFRF Uk4pCisJCXsKKwkJCWlmIChwYXJhbS0+cGFyYW1pZCA8PSAwIHx8IHBhcmFtLT5wYXJhbWlkID4g Y29udGV4dC0+bmFyZ3MpCisJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgcGFyYW1pZDogJWQiLCBw YXJhbS0+cGFyYW1pZCk7CiAKLQkJLyogU2VsZWN0IHRoZSBhcHByb3ByaWF0ZSBhY3R1YWwgYXJn IGFuZCByZXBsYWNlIHRoZSBQYXJhbSB3aXRoIGl0ICovCi0JCS8qIFdlIGRvbid0IG5lZWQgdG8g Y29weSBhdCB0aGlzIHRpbWUgKGl0J2xsIGdldCBkb25lIGxhdGVyKSAqLwotCQlyZXR1cm4gbGlz dF9udGgoY29udGV4dC0+YXJncywgcGFyYW0tPnBhcmFtaWQgLSAxKTsKKwkJCS8qIENvdW50IHVz YWdlIG9mIHBhcmFtZXRlciAqLworCQkJY29udGV4dC0+dXNlY291bnRzW3BhcmFtLT5wYXJhbWlk IC0gMV0rKzsKKworCQkJLyogU2VsZWN0IHRoZSBhcHByb3ByaWF0ZSBhY3R1YWwgYXJnIGFuZCBy ZXBsYWNlIHRoZSBQYXJhbSB3aXRoIGl0ICovCisJCQkvKiBXZSBkb24ndCBuZWVkIHRvIGNvcHkg YXQgdGhpcyB0aW1lIChpdCdsbCBnZXQgZG9uZSBsYXRlcikgKi8KKwkJCXJldHVybiBsaXN0X250 aChjb250ZXh0LT5hcmdzLCBwYXJhbS0+cGFyYW1pZCAtIDEpOworCQl9CiAJfQogCXJldHVybiBl eHByZXNzaW9uX3RyZWVfbXV0YXRvcihub2RlLCBzdWJzdGl0dXRlX2FjdHVhbF9wYXJhbWV0ZXJz X211dGF0b3IsIGNvbnRleHQpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dAppbmRleCA3MDg2MzBhZTJhLi43NjM4ZTFhNDc3IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNDgw LDcgKzQ4MCw2IEBAIFNFTEVDVCB2YXIxOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBTRUxFQ1Qgc3FsZngoMjApOwogRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCi1DT05URVhUOiAgU1FMIGZ1bmN0 aW9uICJzcWxmeCIgc3RhdGVtZW50IDEKIFNFTEVDVCBwbHBnc3FsZngoMjApOwogRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBDT05URVhUOiAgUEwv cGdTUUwgZnVuY3Rpb24gcGxwZ3NxbGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KQEAgLTU4 NywxMCArNTg2LDEwIEBAIFNFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKIAogLS0gaW5s aW5pbmcgaXMgYmxvY2tlZAogRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBTRUxFQ1Qgc3Fs ZngxKHNxbGZ4MignSGVsbG8nKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgUmVzdWx0Ci0gICBPdXRwdXQ6IHNxbGZ4MShzcWxmeDIoJ0hlbGxvJzo6Y2hhcmFj dGVyIHZhcnlpbmcpKQorICAgT3V0cHV0OiAoKHZhcjEgfHwgJywgJzo6dGV4dCkgfHwgKCh2YXIy IHx8ICcsICc6OnRleHQpIHx8ICdIZWxsbyc6OnRleHQpKQogKDIgcm93cykKIAogRFJPUCBGVU5D VElPTiBzcWxmeDEodmFyY2hhcik7Ci0tIAoyLjQ4LjAKCg== --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0018-plpgsql-implementation-for-LET-statement.patch" Content-Disposition: attachment; filename="v20250117-0018-plpgsql-implementation-for-LET-statement.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8kh4 RnJvbSAyZmJjMTFlMGRiNjZmNzNkYTI1OTM4YmFkYzY0OTIxMzJjMzdkNDNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDg6NTY6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE4 LzIyXSBwbHBnc3FsIGltcGxlbWVudGF0aW9uIGZvciBMRVQgc3RhdGVtZW50CgpQTHBnU1FMIGFs bG93cyB0byBjYWxsIGV4cHJlc3Npb24gZXhlY3V0b3IgZGlyZWN0bHkgKGZvciBzaW1wbGUgZXhw cmVzc2lvbikuClRoaXMgcG9zc2liaWxpdHkgc3Ryb25nbHkgcmVkdWNlcyBvdmVyaGVhZCByZWxh dGVkIHRvIGV4ZWN1dGlvbi4gUmVpbXBsZW1lbnRhdGlvbgpvZiBMRVQgc3RhdGVtZW50IChpbnNp ZGUgUExwZ1NRTCkgYWxsb3dzIHRvIHVzZSB0aGlzIHBvc3NpYmlsaXR5LCBhbmQgc3Ryb25nbHkK aW5jcmVhc2UgcGVyZm9ybWFuY2U6CgpDUkVBVEUgVkFSSUFCTEUgc3ZhciBpbnQ7CgpETyAkJApC RUdJTgogIEZPUiBpIElOIDEuLjEwMDAwCiAgTE9PUAogICAgTEVUIHN2YXIgPSBpOwogIEVORCBM T09QOwpFTkQ7CiQkOwoKRnJvbSAxMjBtcyB0byA4bXMgKHdpdGggYXNzZXJ0aW9ucykgKHRoaXMg aXMgYmVzdCBjYXNlLCBidXQgd2l0aG91dCBpdCwgdGhlIExFVCBzdGF0ZW1lbnQKY2FuIGJlIGJv dHRsZSBuZWNrKS4KCkFuIGFsdGVybmF0aXZlIGNhbiBiZSByZWltcGxlbWVudGF0aW9uIG9mIExF VCBzdGF0ZW1lbnQgaW5zaWRlIGV4cHJlc3Npb24KZXhlY3V0b3IsIGFuZCB0aGVuIFNRTCBMRVQg Y29tbWFuZCBjYW4gYmUgZXhlY3V0ZWQgaW4gc2ltcGxlIGV4cHJlc3Npb24KZXhlY3V0aW9uLCBi dXQgdGhpcyBpbmNyZWFzZSBhbiBjb21wbGV4aXR5IG9mIGV4ZWN1dG9yLCBidXQgc3RpbGwgdGhl CmJlbmVmaXRzIGlzIG9ubHkgaW5zaWRlIHBscGdzcWwsIHNvIGl0IGlzIGJldHRlciB0byB0aGlz IG9wdGltaXphdGlvbgppbnNpZGUgcGxwZ3NxbC4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAxNiArKysrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L3NwaS5jICAgICAgICAgICAgICAgICAgICB8ICAzICsKIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFs eXplLmMgICAgICAgICAgICAgICAgICB8IDEyICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl ci5jICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o ICAgICAgICAgICAgICAgIHwgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oICAgICAg ICAgICAgICAgICAgIHwgIDQgKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAgICAg ICAgICAgICAgICB8IDU2ICsrKysrKysrKysrKysrKysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9w bF9mdW5jcy5jICAgICAgICAgICAgICAgICB8IDI0ICsrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9z cmMvcGxfZ3JhbS55ICAgICAgICAgICAgICAgICAgfCAyOSArKysrKysrKystCiBzcmMvcGwvcGxw Z3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmggICAgICAgfCAgMSArCiBzcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaCAgICAgfCAgMSArCiBzcmMvcGwvcGxwZ3NxbC9z cmMvcGxwZ3NxbC5oICAgICAgICAgICAgICAgICAgfCAxMiArKysrCiAuLi4vcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNiArLQogc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgIDEgKwogMTYgZmlsZXMgY2hhbmdlZCwgMTcy IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5jCmluZGV4IDIxMGQ1NWI5ZTQuLjI1NTU5NzUxOTcgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTk1Niw2ICs5NTYsMjIgQEAgU2V0U2Vzc2lv blZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQogCXNldF9zZXNz aW9uX3ZhcmlhYmxlKHN2YXIsIHZhbHVlLCBpc051bGwpOwogfQogCisvKgorICogV3JhcHBlciBh cm91bmQgU2V0U2Vzc2lvblZhcmlhYmxlIHdpdGggcGVybWlzc2lvbiBjaGVja3MuCisgKi8KK3Zv aWQKK1NldFNlc3Npb25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKE9pZCB2YXJpZCwgRGF0dW0g dmFsdWUsIGJvb2wgaXNOdWxsKQoreworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkvKiBpcyB0 aGUgY2FsbGVyIGFsbG93ZWQgdG8gdXBkYXRlIHRoZSBzZXNzaW9uIHZhcmlhYmxlPyAqLworCWFj bHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCBHZXRV c2VySWQoKSwgQUNMX1VQREFURSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJ YWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsIGdldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWUodmFyaWQpKTsKKworCVNldFNlc3Npb25WYXJpYWJsZSh2YXJpZCwgdmFsdWUs IGlzTnVsbCk7Cit9CisKIC8qCiAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUgc3RvcmVk IGluIGEgdmFyaWFibGUuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3Nw aS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKaW5kZXggNGNlNmJjNWYyOS4uZTUyZDhj YzEzYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivc3BpLmMKQEAgLTI5OTksNiArMjk5OSw5IEBAIF9TUElfZXJyb3JfY2Fs bGJhY2sodm9pZCAqYXJnKQogCQkJY2FzZSBSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04zOgogCQkJ CWVycmNvbnRleHQoIlBML3BnU1FMIGFzc2lnbm1lbnQgXCIlc1wiIiwgcXVlcnkpOwogCQkJCWJy ZWFrOworCQkJY2FzZSBSQVdfUEFSU0VfUExQR1NRTF9MRVQ6CisJCQkJZXJyY29udGV4dCgiTEVU IHN0YXRlbWVudCBcIiVzXCIiLCBxdWVyeSk7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJ CWVycmNvbnRleHQoIlNRTCBzdGF0ZW1lbnQgXCIlc1wiIiwgcXVlcnkpOwogCQkJCWJyZWFrOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9hbmFseXplLmMKaW5kZXggNDZhMjJmZjVjOS4uMmRlMGQyM2M4ZSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jCkBAIC0yMDEyLDYgKzIwMTIsMTggQEAgdHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0YXRl ICpwc3RhdGUsIExldFN0bXQgKnN0bXQpCiAKIAlzdG10LT5xdWVyeSA9IChOb2RlICopIHF1ZXJ5 OwogCisJLyoKKwkgKiBJbnNpZGUgUEwvcGdTUUwgd2UgZG9uJ3Qgd2FudCB0byBleGVjdXRlIExF VCBzdGF0ZW1lbnQgYXMgdXRpbGl0eQorCSAqIGNvbW1hbmQsIGJlY2F1c2UgaXQgZGlzYWxsb3cg dG8gZXhlY3V0ZSBleHByZXNzaW9uIGFzIHNpbXBsZQorCSAqIGV4cHJlc3Npb24uIFNvIGZvciBQ TC9wZ1NRTCB3ZSBoYXZlIGV4dHJhIHBhdGgsIGFuZCB3ZSByZXR1cm4gU0VMRUNULgorCSAqIFRo ZW4gaXQgY2FuIGJlIGV4ZWN1dGVkIGJ5IGV4ZWNfZXZhbF9leHByLiBSZXN1bHQgaXMgZGlycmVj dGx5IGFzc2lnbmVkCisJICogdG8gdGFyZ2V0IHNlc3Npb24gdmFyaWFibGUgaW5zaWRlIFBML3Bn U1FMIExFVCBzdGF0ZW1lbnQgaGFuZGxlci4gVGhpcworCSAqIGlzIGV4dHJhIGNvZGUsIGV4dHJh IHBhdGgsIGJ1dCBwb3NzaWJpbGl0eSB0byBnZXQgZmFzdGVyIGV4ZWN1dGlvbiBpcworCSAqIHRv byBhdHRyYWN0aXZlLgorCSAqLworCWlmIChzdG10LT5wbHBnc3FsX21vZGUpCisJCXJldHVybiBx dWVyeTsKKwogCS8qIHJlcHJlc2VudCB0aGUgY29tbWFuZCBhcyBhIHV0aWxpdHkgUXVlcnkgKi8K IAlyZXN1bHQgPSBtYWtlTm9kZShRdWVyeSk7CiAJcmVzdWx0LT5jb21tYW5kVHlwZSA9IENNRF9V VElMSVRZOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggOWVlMDAyYzI5NC4uNTE3ZjYzODA3YSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC04MjQsNiArODI0LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2Vs ZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0b2tlbgkJ TU9ERV9QTFBHU1FMX0FTU0lHTjEKICV0b2tlbgkJTU9ERV9QTFBHU1FMX0FTU0lHTjIKICV0b2tl bgkJTU9ERV9QTFBHU1FMX0FTU0lHTjMKKyV0b2tlbgkJTU9ERV9QTFBHU1FMX0xFVAogCiAKIC8q IFByZWNlZGVuY2U6IGxvd2VzdCB0byBoaWdoZXN0ICovCkBAIC05NTUsNiArOTU2LDEzIEBAIHBh cnNlX3RvcGxldmVsOgogCQkJCXBnX3l5Z2V0X2V4dHJhKHl5c2Nhbm5lciktPnBhcnNldHJlZSA9 CiAJCQkJCWxpc3RfbWFrZTEobWFrZVJhd1N0bXQoKE5vZGUgKikgbiwgQDIpKTsKIAkJCX0KKwkJ CXwgTU9ERV9QTFBHU1FMX0xFVCBMZXRTdG10CisJCQl7CisJCQkJTGV0U3RtdCAqbiA9IChMZXRT dG10ICopICQyOworCQkJCW4tPnBscGdzcWxfbW9kZSA9IHRydWU7CisJCQkJcGdfeXlnZXRfZXh0 cmEoeXlzY2FubmVyKS0+cGFyc2V0cmVlID0KKwkJCQkJbGlzdF9tYWtlMShtYWtlUmF3U3RtdCgo Tm9kZSAqKSBuLCAwKSk7CisJCQl9CiAJCTsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZXIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYwppbmRleCAzM2Ew NDA1MDZiLi44ODcyMTJhZWZkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vy LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlci5jCkBAIC02Miw2ICs2Miw3IEBAIHJh d19wYXJzZXIoY29uc3QgY2hhciAqc3RyLCBSYXdQYXJzZU1vZGUgbW9kZSkKIAkJCVtSQVdfUEFS U0VfUExQR1NRTF9BU1NJR04xXSA9IE1PREVfUExQR1NRTF9BU1NJR04xLAogCQkJW1JBV19QQVJT RV9QTFBHU1FMX0FTU0lHTjJdID0gTU9ERV9QTFBHU1FMX0FTU0lHTjIsCiAJCQlbUkFXX1BBUlNF X1BMUEdTUUxfQVNTSUdOM10gPSBNT0RFX1BMUEdTUUxfQVNTSUdOMywKKwkJCVtSQVdfUEFSU0Vf UExQR1NRTF9MRVRdID0gTU9ERV9QTFBHU1FMX0xFVCwKIAkJfTsKIAogCQl5eWV4dHJhLmhhdmVf bG9va2FoZWFkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApp bmRleCAzODYzMzBjNjljLi5jYzc1ZWY3ZTE2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oCkBAIC0yOCw2ICsyOCw3IEBAIGV4dGVybiB2b2lkIEF0RU9TdWJYYWN0X1Nl c3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwgU3ViVHJhbnNhY3Rpb25JZCBteVN1YmlkCiAJ CQkJCQkJCQkJIFN1YlRyYW5zYWN0aW9uSWQgcGFyZW50U3ViaWQpOwogCiBleHRlcm4gdm9pZCBT ZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwor ZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFNlY3VyaXR5Q2hlY2soT2lkIHZhcmlk LCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwogZXh0ZXJuIERhdHVtIEdldFNlc3Npb25WYXJp YWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZh cmlhYmxlV2l0aFR5cGVpZChPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkICp0eXBpZCk7CiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBkZmI0NzdiOTVmLi45NTJmODM3NTc0IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCkBAIC0yMTY4LDYgKzIxNjgsOCBAQCB0eXBlZGVmIHN0cnVjdCBMZXRT dG10CiAJTm9kZVRhZwkJdHlwZTsKIAlMaXN0CSAgICp0YXJnZXQ7CQkJLyogdGFyZ2V0IHZhcmlh YmxlICovCiAJTm9kZQkgICAqcXVlcnk7CQkJLyogc291cmNlIGV4cHJlc3Npb24gKi8KKwlib29s CQlwbHBnc3FsX21vZGU7CS8qIHRydWUsIHdoZW4gY29tbWFuZCB3aWxsIGJlIGV4ZWN1dGVkCisJ CQkJCQkJCSAqIChwYXJzZWQpIGJ5IHBscGdzcWwgcnVudGltZSAqLwogCVBhcnNlTG9jCWxvY2F0 aW9uOwogfSBMZXRTdG10OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vy LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VyLmgKaW5kZXggMzUwMTk2Y2Q2NC4uYzhkNWU4 ZGJmOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oCisrKyBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZXIuaApAQCAtMzMsNiArMzMsOSBAQAogICogUkFXX1BBUlNFX1BM UEdTUUxfQVNTSUdObjogcGFyc2UgYSBQTC9wZ1NRTCBhc3NpZ25tZW50IHN0YXRlbWVudCwKICAq IGFuZCByZXR1cm4gYSBvbmUtZWxlbWVudCBMaXN0IGNvbnRhaW5pbmcgYSBSYXdTdG10IG5vZGUu ICAibiIKICAqIGdpdmVzIHRoZSBudW1iZXIgb2YgZG90dGVkIG5hbWVzIGNvbXByaXNpbmcgdGhl IHRhcmdldCBDb2x1bW5SZWYuCisgKgorICogUkFXX1BBUlNFX1BMUEdTUUxfTEVUOiBwYXJzZSBh IExFVCBzdGF0ZW1lbnQsIGFuZCByZXR1cm4gYQorICogb25lLWVsZW1lbnQgTGlzdCBjb250YWlu aW5nIGEgUmF3U3RtdCBub2RlLgogICovCiB0eXBlZGVmIGVudW0KIHsKQEAgLTQyLDYgKzQ1LDcg QEAgdHlwZWRlZiBlbnVtCiAJUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMSwKIAlSQVdfUEFSU0Vf UExQR1NRTF9BU1NJR04yLAogCVJBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjMsCisJUkFXX1BBUlNF X1BMUEdTUUxfTEVULAogfSBSYXdQYXJzZU1vZGU7CiAKIC8qIFZhbHVlcyBmb3IgdGhlIGJhY2tz bGFzaF9xdW90ZSBHVUMgKi8KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IGU1YjBkYTA0ZTMuLjJiOTJm YjVlZWEgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImFj Y2Vzcy90dXBjb252ZXJ0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Iv c3BpLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVjZWl2ZXIuaCIKQEAgLTMyMyw2ICsz MjQsOCBAQCBzdGF0aWMgaW50CWV4ZWNfc3RtdF9jb21taXQoUExwZ1NRTF9leGVjc3RhdGUgKmVz dGF0ZSwKIAkJCQkJCQkgUExwZ1NRTF9zdG10X2NvbW1pdCAqc3RtdCk7CiBzdGF0aWMgaW50CWV4 ZWNfc3RtdF9yb2xsYmFjayhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCSAgIFBM cGdTUUxfc3RtdF9yb2xsYmFjayAqc3RtdCk7CitzdGF0aWMgaW50CWV4ZWNfc3RtdF9sZXQoUExw Z1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKKwkJCQkJCSAgUExwZ1NRTF9zdG10X2xldCAqbGV0KTsK IAogc3RhdGljIHZvaWQgcGxwZ3NxbF9lc3RhdGVfc2V0dXAoUExwZ1NRTF9leGVjc3RhdGUgKmVz dGF0ZSwKIAkJCQkJCQkJIFBMcGdTUUxfZnVuY3Rpb24gKmZ1bmMsCkBAIC0yMTE2LDYgKzIxMTks MTAgQEAgZXhlY19zdG10cyhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBMaXN0ICpzdG10cykK IAkJCQlyYyA9IGV4ZWNfc3RtdF9yb2xsYmFjayhlc3RhdGUsIChQTHBnU1FMX3N0bXRfcm9sbGJh Y2sgKikgc3RtdCk7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJ CQlyYyA9IGV4ZWNfc3RtdF9sZXQoZXN0YXRlLCAoUExwZ1NRTF9zdG10X2xldCAqKSBzdG10KTsK KwkJCQlicmVhazsKKwogCQkJZGVmYXVsdDoKIAkJCQkvKiBwb2ludCBlcnJfc3RtdCB0byBwYXJl bnQsIHNpbmNlIHRoaXMgb25lIHNlZW1zIGNvcnJ1cHQgKi8KIAkJCQllc3RhdGUtPmVycl9zdG10 ID0gc2F2ZV9lc3RtdDsKQEAgLTQ5OTksNiArNTAwNiw1NSBAQCBleGVjX3N0bXRfcm9sbGJhY2so UExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwgUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KQog CXJldHVybiBQTFBHU1FMX1JDX09LOwogfQogCisvKiAtLS0tLS0tLS0tCisgKiBleGVjX3N0bXRf bGV0CQkJRXZhbHVhdGUgYW4gZXhwcmVzc2lvbiBhbmQKKyAqCQkJCQlwdXQgdGhlIHJlc3VsdCBp bnRvIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqIC0tLS0tLS0tLS0KKyAqLworc3RhdGljIGludAor ZXhlY19zdG10X2xldChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBQTHBnU1FMX3N0bXRfbGV0 ICpzdG10KQoreworCWJvb2wJCWlzTnVsbDsKKwlPaWQJCQl2YWx0eXBlOworCWludDMyCQl2YWx0 eXBtb2Q7CisJRGF0dW0JCXZhbHVlOworCU9pZAkJCXZhcmlkOworCisJTGlzdAkgICAqcGxhbnNv dXJjZXM7CisJQ2FjaGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZTsKKworCXZhbHVlID0gZXhlY19l dmFsX2V4cHIoZXN0YXRlLAorCQkJCQkJICAgc3RtdC0+ZXhwciwKKwkJCQkJCSAgICZpc051bGws CisJCQkJCQkgICAmdmFsdHlwZSwKKwkJCQkJCSAgICZ2YWx0eXBtb2QpOworCisJLyoKKwkgKiBP aWQgb2YgdGFyZ2V0IHNlc3Npb24gdmFyaWFibGUgaXMgc3RvcmVkIGluIFF1ZXJ5IHN0cnVjdHVy ZS4gSXQgaXMKKwkgKiBzYWZlciB0byByZWFkIHRoaXMgdmFsdWUgZGlyZWN0bHkgZnJvbSB0aGUg cGxhbiB0aGFuIHRvIGhvbGQgdGhpcyB2YWx1ZQorCSAqIGluIHRoZSBwbHBnc3FsIGNvbnRleHQs IGJlY2F1c2UgaXQncyBub3QgbmVjZXNzYXJ5IHRvIGhhbmRsZQorCSAqIGludmFsaWRhdGlvbiBv ZiB0aGUgY2FjaGVkIHZhbHVlLiBOZXh0IG9wZXJhdGlvbnMgYXJlIHJlYWQgb25seSB3aXRob3V0 CisJICogYW55IGFsbG9jYXRpb25zLCBzbyB3ZSBjYW4gZXhwZWN0IHRoYXQgcmV0cmlldmluZyB2 YXJpZCBmcm9tIFF1ZXJ5CisJICogc2hvdWxkIGJlIGZhc3QuCisJICovCisJcGxhbnNvdXJjZXMg PSBTUElfcGxhbl9nZXRfcGxhbl9zb3VyY2VzKHN0bXQtPmV4cHItPnBsYW4pOworCWlmIChsaXN0 X2xlbmd0aChwbGFuc291cmNlcykgIT0gMSkKKwkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgbGVu Z3RoIG9mIHBsYW5zb3VyY2VzIG9mIHF1ZXJ5IGZvciBMRVQgc3RhdGVtZW50Iik7CisKKwlwbGFu c291cmNlID0gKENhY2hlZFBsYW5Tb3VyY2UgKikgbGluaXRpYWwocGxhbnNvdXJjZXMpOworCWlm IChsaXN0X2xlbmd0aChwbGFuc291cmNlLT5xdWVyeV9saXN0KSAhPSAxKQorCQllbG9nKEVSUk9S LCAidW5leHBlY3RlZCBsZW5ndGggb2YgcGxhbnNvdXJjZSBvZiBxdWVyeSBmb3IgTEVUIHN0YXRl bWVudCIpOworCisJdmFyaWQgPSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCBwbGFuc291cmNlLT5xdWVy eV9saXN0KS0+cmVzdWx0VmFyaWFibGU7CisJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJZWxv ZyhFUlJPUiwgIm9pZCBvZiB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdmFsaWQiKTsK KworCVNldFNlc3Npb25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKHZhcmlkLCB2YWx1ZSwgaXNO dWxsKTsKKwlleGVjX2V2YWxfY2xlYW51cChlc3RhdGUpOworCisJcmV0dXJuIFBMUEdTUUxfUkNf T0s7Cit9CisKIC8qIC0tLS0tLS0tLS0KICAqIGV4ZWNfYXNzaWduX2V4cHIJCQlQdXQgYW4gZXhw cmVzc2lvbidzIHJlc3VsdCBpbnRvIGEgdmFyaWFibGUuCiAgKiAtLS0tLS0tLS0tCmRpZmYgLS1n aXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9w bF9mdW5jcy5jCmluZGV4IDhjODI3ZmU1Y2MuLmY3NDhkZjA0OGMgMTAwNjQ0Ci0tLSBhL3NyYy9w bC9wbHBnc3FsL3NyYy9wbF9mdW5jcy5jCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9mdW5j cy5jCkBAIC0yODgsNiArMjg4LDggQEAgcGxwZ3NxbF9zdG10X3R5cGVuYW1lKFBMcGdTUUxfc3Rt dCAqc3RtdCkKIAkJCXJldHVybiAiQ09NTUlUIjsKIAkJY2FzZSBQTFBHU1FMX1NUTVRfUk9MTEJB Q0s6CiAJCQlyZXR1cm4gIlJPTExCQUNLIjsKKwkJY2FzZSBQTFBHU1FMX1NUTVRfTEVUOgorCQkJ cmV0dXJuICJMRVQiOwogCX0KIAogCXJldHVybiAidW5rbm93biI7CkBAIC0zNzAsNiArMzcyLDcg QEAgc3RhdGljIHZvaWQgZnJlZV9wZXJmb3JtKFBMcGdTUUxfc3RtdF9wZXJmb3JtICpzdG10KTsK IHN0YXRpYyB2b2lkIGZyZWVfY2FsbChQTHBnU1FMX3N0bXRfY2FsbCAqc3RtdCk7CiBzdGF0aWMg dm9pZCBmcmVlX2NvbW1pdChQTHBnU1FMX3N0bXRfY29tbWl0ICpzdG10KTsKIHN0YXRpYyB2b2lk IGZyZWVfcm9sbGJhY2soUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KTsKK3N0YXRpYyB2b2lk IGZyZWVfbGV0KFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpOwogc3RhdGljIHZvaWQgZnJlZV9leHBy KFBMcGdTUUxfZXhwciAqZXhwcik7CiAKIApAQCAtNDU5LDYgKzQ2Miw5IEBAIGZyZWVfc3RtdChQ THBnU1FMX3N0bXQgKnN0bXQpCiAJCWNhc2UgUExQR1NRTF9TVE1UX1JPTExCQUNLOgogCQkJZnJl ZV9yb2xsYmFjaygoUExwZ1NRTF9zdG10X3JvbGxiYWNrICopIHN0bXQpOwogCQkJYnJlYWs7CisJ CWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJCWZyZWVfbGV0KChQTHBnU1FMX3N0bXRfbGV0ICop IHN0bXQpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25p emVkIGNtZF90eXBlOiAlZCIsIHN0bXQtPmNtZF90eXBlKTsKIAkJCWJyZWFrOwpAQCAtNzEzLDYg KzcxOSwxMiBAQCBmcmVlX2dldGRpYWcoUExwZ1NRTF9zdG10X2dldGRpYWcgKnN0bXQpCiB7CiB9 CiAKK3N0YXRpYyB2b2lkCitmcmVlX2xldChQTHBnU1FMX3N0bXRfbGV0ICpzdG10KQoreworCWZy ZWVfZXhwcihzdG10LT5leHByKTsKK30KKwogc3RhdGljIHZvaWQKIGZyZWVfZXhwcihQTHBnU1FM X2V4cHIgKmV4cHIpCiB7CkBAIC04MTUsNiArODI3LDcgQEAgc3RhdGljIHZvaWQgZHVtcF9wZXJm b3JtKFBMcGdTUUxfc3RtdF9wZXJmb3JtICpzdG10KTsKIHN0YXRpYyB2b2lkIGR1bXBfY2FsbChQ THBnU1FMX3N0bXRfY2FsbCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBkdW1wX2NvbW1pdChQTHBnU1FM X3N0bXRfY29tbWl0ICpzdG10KTsKIHN0YXRpYyB2b2lkIGR1bXBfcm9sbGJhY2soUExwZ1NRTF9z dG10X3JvbGxiYWNrICpzdG10KTsKK3N0YXRpYyB2b2lkIGR1bXBfbGV0KFBMcGdTUUxfc3RtdF9s ZXQgKnN0bXQpOwogc3RhdGljIHZvaWQgZHVtcF9leHByKFBMcGdTUUxfZXhwciAqZXhwcik7CiAK IApAQCAtOTE0LDYgKzkyNyw5IEBAIGR1bXBfc3RtdChQTHBnU1FMX3N0bXQgKnN0bXQpCiAJCWNh c2UgUExQR1NRTF9TVE1UX1JPTExCQUNLOgogCQkJZHVtcF9yb2xsYmFjaygoUExwZ1NRTF9zdG10 X3JvbGxiYWNrICopIHN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoK KwkJCWR1bXBfbGV0KChQTHBnU1FMX3N0bXRfbGV0ICopIHN0bXQpOworCQkJYnJlYWs7CiAJCWRl ZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIGNtZF90eXBlOiAlZCIsIHN0bXQt PmNtZF90eXBlKTsKIAkJCWJyZWFrOwpAQCAtMTU5MCw2ICsxNjA2LDE0IEBAIGR1bXBfZ2V0ZGlh ZyhQTHBnU1FMX3N0bXRfZ2V0ZGlhZyAqc3RtdCkKIAlwcmludGYoIlxuIik7CiB9CiAKK3N0YXRp YyB2b2lkCitkdW1wX2xldChQTHBnU1FMX3N0bXRfbGV0ICpzdG10KQoreworCWR1bXBfaW5kKCk7 CisJZHVtcF9leHByKHN0bXQtPmV4cHIpOworCXByaW50ZigiXG4iKTsKK30KKwogc3RhdGljIHZv aWQKIGR1bXBfZXhwcihQTHBnU1FMX2V4cHIgKmV4cHIpCiB7CmRpZmYgLS1naXQgYS9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfZ3JhbS55IGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueQppbmRl eCAwNjNlZDgxZjA1Li4zZmU3MGVjMmY2IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZ3JhbS55CisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkKQEAgLTIwNSw3ICsy MDUsNyBAQCBzdGF0aWMJdm9pZAkJCWNoZWNrX3JhaXNlX3BhcmFtZXRlcnMoUExwZ1NRTF9zdG10 X3JhaXNlICpzdG10KTsKICV0eXBlIDxzdG10PglzdG10X3JldHVybiBzdG10X3JhaXNlIHN0bXRf YXNzZXJ0IHN0bXRfZXhlY3NxbAogJXR5cGUgPHN0bXQ+CXN0bXRfZHluZXhlY3V0ZSBzdG10X2Zv ciBzdG10X3BlcmZvcm0gc3RtdF9jYWxsIHN0bXRfZ2V0ZGlhZwogJXR5cGUgPHN0bXQ+CXN0bXRf b3BlbiBzdG10X2ZldGNoIHN0bXRfbW92ZSBzdG10X2Nsb3NlIHN0bXRfbnVsbAotJXR5cGUgPHN0 bXQ+CXN0bXRfY29tbWl0IHN0bXRfcm9sbGJhY2sKKyV0eXBlIDxzdG10PglzdG10X2NvbW1pdCBz dG10X3JvbGxiYWNrIHN0bXRfbGV0CiAldHlwZSA8c3RtdD4Jc3RtdF9jYXNlIHN0bXRfZm9yZWFj aF9hCiAKICV0eXBlIDxsaXN0Pglwcm9jX2V4Y2VwdGlvbnMKQEAgLTMxMiw2ICszMTIsNyBAQCBz dGF0aWMJdm9pZAkJCWNoZWNrX3JhaXNlX3BhcmFtZXRlcnMoUExwZ1NRTF9zdG10X3JhaXNlICpz dG10KTsKICV0b2tlbiA8a2V5d29yZD4JS19JTlRPCiAldG9rZW4gPGtleXdvcmQ+CUtfSVMKICV0 b2tlbiA8a2V5d29yZD4JS19MQVNUCisldG9rZW4gPGtleXdvcmQ+CUtfTEVUCiAldG9rZW4gPGtl eXdvcmQ+CUtfTE9HCiAldG9rZW4gPGtleXdvcmQ+CUtfTE9PUAogJXRva2VuIDxrZXl3b3JkPglL X01FUkdFCkBAIC04ODIsNiArODgzLDggQEAgcHJvY19zdG10CQk6IHBsX2Jsb2NrICc7JwogCQkJ CQkJeyAkJCA9ICQxOyB9CiAJCQkJfCBzdG10X3JvbGxiYWNrCiAJCQkJCQl7ICQkID0gJDE7IH0K KwkJCQl8IHN0bXRfbGV0CisJCQkJCQl7ICQkID0gJDE7IH0KIAkJCQk7CiAKIHN0bXRfcGVyZm9y bQk6IEtfUEVSRk9STQpAQCAtMTAwMCw2ICsxMDAzLDMwIEBAIHN0bXRfYXNzaWduCQk6IFRfREFU VU0KIAkJCQkJfQogCQkJCTsKIAorc3RtdF9sZXQJCTogS19MRVQKKwkJCQkJeworCQkJCQkJUExw Z1NRTF9zdG10X2xldCAqbmV3OworCQkJCQkJUmF3UGFyc2VNb2RlIHBtb2RlOworCisJCQkJCQlw bW9kZSA9IFJBV19QQVJTRV9QTFBHU1FMX0xFVDsKKworCQkJCQkJbmV3ID0gcGFsbG9jMChzaXpl b2YoUExwZ1NRTF9zdG10X2xldCkpOworCQkJCQkJbmV3LT5jbWRfdHlwZSA9IFBMUEdTUUxfU1RN VF9MRVQ7CisJCQkJCQluZXctPmxpbmVubyAgID0gcGxwZ3NxbF9sb2NhdGlvbl90b19saW5lbm8o QDEsIHl5c2Nhbm5lcik7CisJCQkJCQluZXctPnN0bXRpZCA9ICsrcGxwZ3NxbF9jdXJyX2NvbXBp bGUtPm5zdGF0ZW1lbnRzOworCisJCQkJCQkvKiBwdXNoIGJhY2sgdGhlIGhlYWQgbmFtZSB0byBp bmNsdWRlIGl0IGluIHRoZSBzdG10ICovCisJCQkJCQlwbHBnc3FsX3B1c2hfYmFja190b2tlbihL X0xFVCwgJnl5bHZhbCwgJnl5bGxvYywgeXlzY2FubmVyKTsKKwkJCQkJCW5ldy0+ZXhwciA9IHJl YWRfc3FsX2NvbnN0cnVjdCgnOycsIDAsIDAsICI7IiwKKwkJCQkJCQkJCQkJCQkgICBwbW9kZSwK KwkJCQkJCQkJCQkJCQkgICBmYWxzZSwgdHJ1ZSwKKwkJCQkJCQkJCQkJCQkgICBOVUxMLCBOVUxM LAorCQkJCQkJCQkJCQkJCSAgICZ5eWx2YWwsICZ5eWxsb2MsIHl5c2Nhbm5lcik7CisKKwkJCQkJ CSQkID0gKFBMcGdTUUxfc3RtdCAqKW5ldzsKKwkJCQkJfQorCQkJCTsKKwogc3RtdF9nZXRkaWFn CTogS19HRVQgZ2V0ZGlhZ19hcmVhX29wdCBLX0RJQUdOT1NUSUNTIGdldGRpYWdfbGlzdCAnOycK IAkJCQkJewogCQkJCQkJUExwZ1NRTF9zdG10X2dldGRpYWcgKm5ldzsKZGlmZiAtLWdpdCBhL3Ny Yy9wbC9wbHBnc3FsL3NyYy9wbF9yZXNlcnZlZF9rd2xpc3QuaCBiL3NyYy9wbC9wbHBnc3FsL3Ny Yy9wbF9yZXNlcnZlZF9rd2xpc3QuaAppbmRleCBjZTdiMGM5ZDMzLi5lMjY2YmQxY2M0IDEwMDY0 NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmgKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL3BsX3Jlc2VydmVkX2t3bGlzdC5oCkBAIC00MCw2ICs0MCw3IEBAIFBH X0tFWVdPUkQoImZyb20iLCBLX0ZST00pCiBQR19LRVlXT1JEKCJpZiIsIEtfSUYpCiBQR19LRVlX T1JEKCJpbiIsIEtfSU4pCiBQR19LRVlXT1JEKCJpbnRvIiwgS19JTlRPKQorUEdfS0VZV09SRCgi bGV0IiwgS19MRVQpCiBQR19LRVlXT1JEKCJsb29wIiwgS19MT09QKQogUEdfS0VZV09SRCgibm90 IiwgS19OT1QpCiBQR19LRVlXT1JEKCJudWxsIiwgS19OVUxMKQpkaWZmIC0tZ2l0IGEvc3JjL3Bs L3BscGdzcWwvc3JjL3BsX3VucmVzZXJ2ZWRfa3dsaXN0LmggYi9zcmMvcGwvcGxwZ3NxbC9zcmMv cGxfdW5yZXNlcnZlZF9rd2xpc3QuaAppbmRleCA5OGY5OWVjNDcwLi5lZDE0ZmQ4NmMzIDEwMDY0 NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaAorKysgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaApAQCAtNjksNiArNjksNyBA QCBQR19LRVlXT1JEKCJpbmZvIiwgS19JTkZPKQogUEdfS0VZV09SRCgiaW5zZXJ0IiwgS19JTlNF UlQpCiBQR19LRVlXT1JEKCJpcyIsIEtfSVMpCiBQR19LRVlXT1JEKCJsYXN0IiwgS19MQVNUKQor UEdfS0VZV09SRCgibGV0IiwgS19MRVQpCiBQR19LRVlXT1JEKCJsb2ciLCBLX0xPRykKIFBHX0tF WVdPUkQoIm1lcmdlIiwgS19NRVJHRSkKIFBHX0tFWVdPUkQoIm1lc3NhZ2UiLCBLX01FU1NBR0Up CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3NxbC5oIGIvc3JjL3BsL3BscGdz cWwvc3JjL3BscGdzcWwuaAppbmRleCBjM2NlNDE2MWEzLi45Yjc3YWYzNzM3IDEwMDY0NAotLS0g YS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3NxbC5oCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9w bHBnc3FsLmgKQEAgLTEyOCw2ICsxMjgsNyBAQCB0eXBlZGVmIGVudW0gUExwZ1NRTF9zdG10X3R5 cGUKIAlQTFBHU1FMX1NUTVRfQ0FMTCwKIAlQTFBHU1FMX1NUTVRfQ09NTUlULAogCVBMUEdTUUxf U1RNVF9ST0xMQkFDSywKKwlQTFBHU1FMX1NUTVRfTEVULAogfSBQTHBnU1FMX3N0bXRfdHlwZTsK IAogLyoKQEAgLTUyMCw2ICs1MjEsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgUExwZ1NRTF9zdG10X2Fz c2lnbgogCVBMcGdTUUxfZXhwciAqZXhwcjsKIH0gUExwZ1NRTF9zdG10X2Fzc2lnbjsKIAorLyoK KyAqIExldCBzdGF0ZW1lbnQKKyAqLwordHlwZWRlZiBzdHJ1Y3QgUExwZ1NRTF9zdG10X2xldAor eworCVBMcGdTUUxfc3RtdF90eXBlIGNtZF90eXBlOworCWludAkJCWxpbmVubzsKKwl1bnNpZ25l ZCBpbnQgc3RtdGlkOworCVBMcGdTUUxfZXhwciAqZXhwcjsKK30gUExwZ1NRTF9zdG10X2xldDsK KwogLyoKICAqIFBFUkZPUk0gc3RhdGVtZW50CiAgKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggZjc3ZjNiODA2Ni4uNzA4NjMwYWUy YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQKQEAgLTExMjksOCArMTEyOSw3IEBAIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNl c3Npb24gdmFyaWFibGUgdmFyMQogQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9j b2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQogRE8gJCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEu YSArIDEwOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZh cmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJMRVQgdmFyMS5hID0gdmFyMS5h ICsgMTAiCi1QTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgU1FM IHN0YXRlbWVudAorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2Nr IGxpbmUgMSBhdCBMRVQKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBHUkFOVCBTRUxFQ1QgT04gVkFS SUFCTEUgdmFyMSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CiBTRVQgUk9MRSBUTyByZWdyZXNz X3Zhcl90ZXN0X3JvbGU7CkBAIC0xMTc0LDggKzExNzMsNyBAQCBFUlJPUjogIHBlcm1pc3Npb24g ZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKIENPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5j dGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKIERPICQkIEJFR0lOIExFVCB2 YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBm b3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCi1DT05URVhUOiAgU1FMIHN0YXRlbWVudCAiTEVUIHZh cjEuYSA9IHZhcjEuYSArIDEwIgotUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sg bGluZSAxIGF0IFNRTCBzdGF0ZW1lbnQKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxp bmVfY29kZV9ibG9jayBsaW5lIDEgYXQgTEVUCiBTRVQgUk9MRSBUTyBERUZBVUxUOwogRFJPUCBW QVJJQUJMRSB2YXIxOwogRFJPUCBUQUJMRSB2YXJ0ZXN0dGFiOwpkaWZmIC0tZ2l0IGEvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdAppbmRleCA2NmUwNWI2YmIxLi40ZjMwNDEwNDViIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMv cGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdApAQCAtMTg5Nyw2ICsxODk3LDcgQEAgUExwZ1NRTF9zdG10X2ZvcnEKIFBMcGdTUUxfc3Rt dF9mb3JzCiBQTHBnU1FMX3N0bXRfZ2V0ZGlhZwogUExwZ1NRTF9zdG10X2lmCitQTHBnU1FMX3N0 bXRfbGV0CiBQTHBnU1FMX3N0bXRfbG9vcAogUExwZ1NRTF9zdG10X29wZW4KIFBMcGdTUUxfc3Rt dF9wZXJmb3JtCi0tIAoyLjQ4LjAKCg== --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0017-allow-parallel-execution-queries-with-session-variab.patch" Content-Disposition: attachment; filename="v20250117-0017-allow-parallel-execution-queries-with-session-variab.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8kr5 RnJvbSBhZDYxMzU1ODQ3NDkxYWFiN2VhMGNmMTFiYmE3NWM0MjQwZWNjNzZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowODoxNyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTcvMjJdIGFsbG93IHBhcmFsbGVsIGV4ZWN1dGlvbiBxdWVyaWVzIHdpdGggc2Vzc2lvbiB2YXJp YWJsZXMKCi0tLQogZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgICA2IC0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8 ICAyMyArKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8 ICAyMCArKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jICAgICAgICAgICB8 IDE0NyArKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVz ZXMuYyAgICAgICAgICB8ICAxOCArLS0KIHNyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMgICAgICAg ICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmggICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaCAgICAg ICAgICAgICAgIHwgICA0ICsKIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAg ICAgICAgICB8ICAgMSArCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgICAgfCAgMTIgKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDIwNiBpbnNlcnRpb25zKCspLCAyOSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCmluZGV4IDY4M2RlZGU2YWQuLjFjZTlhYmY4NmYgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9w YXJhbGxlbC5zZ21sCkBAIC01MTUsMTIgKzUxNSw2IEBAIEVYUExBSU4gU0VMRUNUICogRlJPTSBw Z2JlbmNoX2FjY291bnRzIFdIRVJFIGZpbGxlciBMSUtFICcleCUnOwogICAgICAgICBQbGFuIG5v ZGVzIHRoYXQgcmVmZXJlbmNlIGEgY29ycmVsYXRlZCA8bGl0ZXJhbD5TdWJQbGFuPC9saXRlcmFs Pi4KICAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgotCi0gICAgPGxpc3RpdGVtPgotICAg ICAgPHBhcmE+Ci0gICAgICAgIFBsYW4gbm9kZXMgdGhhdCB1c2UgYSBzZXNzaW9uIHZhcmlhYmxl LgotICAgICAgPC9wYXJhPgotICAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0PgogCiAg PHNlY3QyIGlkPSJwYXJhbGxlbC1sYWJlbGluZyI+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmMKaW5kZXggNGYyODRjYzNhOC4uMjEwZDU1YjllNCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtOTk5LDYgKzk5OSwyOSBAQCBHZXRTZXNzaW9u VmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwpCiAJcmV0dXJuIGNvcHlfc2Vzc2lvbl92 YXJpYWJsZV92YWx1ZShzdmFyLCBpc051bGwpOwogfQogCisvKgorICogUmV0dXJucyBhIGNvcHkg b2YgdGhlIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIChpbiB0aGUgY3VycmVudCBtZW1v cnkKKyAqIGNvbnRleHQpIHBsdXMgdHlwaWQgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuIFRoZSBj YWxsZXIgaXMgcmVzcG9uc2libGUgZm9yCisgKiBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqLworRGF0 dW0KK0dldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlaWQoT2lkIHZhcmlkLCBib29sICppc051bGws IE9pZCAqdHlwaWQpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gZ2V0X3Nlc3Npb25f dmFyaWFibGUodmFyaWQpOworCisJKnR5cGlkID0gc3Zhci0+dHlwaWQ7CisKKwkvKgorCSAqIEFs dGhvdWdoICJzdmFyIiBpcyBmcmVzaGx5IHZhbGlkYXRlZCBpbiB0aGlzIHBvaW50LCBzdmFyLT5p c192YWxpZCBjYW4KKwkgKiBiZSBmYWxzZSwgaWYgYW4gaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2Fz IHByb2Nlc3NlZCBkdXJpbmcgdGhlIGRvbWFpbiBjaGVjay4KKwkgKiBCdXQgdGhlIHZhcmlhYmxl IGFuZCBhbGwgaXRzIGRlcGVuZGVuY2llcyBhcmUgbG9ja2VkIG5vdywgc28gd2UgZG9uJ3QgbmVl ZAorCSAqIHRvIHJlcGVhdCB0aGUgdmFsaWRhdGlvbi4KKwkgKi8KKwlyZXR1cm4gY29weV9zZXNz aW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIGlzTnVsbCk7Cit9CisKIC8qCiAgKiBBc3NpZ24gdGhl IHJlc3VsdCBvZiB0aGUgZXZhbHVhdGVkIGV4cHJlc3Npb24gdG8gdGhlIHNlc3Npb24gdmFyaWFi bGUKICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggOTkwM2IzNjhiOS4uNjczYWVjOGY5 ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC0yMTAsNyArMjEwLDE5IEBAIHN0YW5kYXJk X0V4ZWN1dG9yU3RhcnQoUXVlcnlEZXNjICpxdWVyeURlc2MsIGludCBlZmxhZ3MpCiAJICogICAg YmUgY2hhbmdlZCBpbnNpZGUgcXVlcnkgZXhlY3V0aW9uIHRpbWUsIGFuZCB0aGVuIGEgcmVmZXJl bmNlIHRvCiAJICogICAgcHJldmlvdXNseSByZXR1cm5lZCB2YWx1ZSBjYW4gYmUgY29ycnVwdGVk KS4KIAkgKi8KLQlpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykK KwlpZiAocXVlcnlEZXNjLT5udW1fc2Vzc2lvbl92YXJpYWJsZXMgPiAwKQorCXsKKwkJLyoKKwkJ ICogV2hlbiBhIHBhcmFsbGVsIHF1ZXJ5IG5lZWRzIHRvIGFjY2VzcyBxdWVyeSBwYXJhbWV0ZXJz IChpbmNsdWRpbmcKKwkJICogcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlcyksIHRoZW4gcmVsYXRl ZCBzZXNzaW9uIHZhcmlhYmxlcyBhcmUKKwkJICogcmVzdG9yZWQgKGRlc2VyaWFsaXplZCkgaW4g cXVlcnlEZXNjIGFscmVhZHkuIFNvIGp1c3QgcHVzaCBwb2ludGVyCisJCSAqIG9mIHRoaXMgYXJy YXkgdG8gZXhlY3V0b3IncyBlc3RhdGUuCisJCSAqLworCQlBc3NlcnQoSXNQYXJhbGxlbFdvcmtl cigpKTsKKwkJZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlcyA9IHF1ZXJ5RGVzYy0+c2Vzc2lv bl92YXJpYWJsZXM7CisJCWVzdGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gcXVlcnlE ZXNjLT5udW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJfQorCWVsc2UgaWYgKHF1ZXJ5RGVzYy0+cGxh bm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpCiAJewogCQlpbnQJCQluU2Vzc2lvblZhcmlhYmxl czsKIAkJaW50CQkJaSA9IDA7CkBAIC0yNDksOSArMjYxLDkgQEAgc3RhbmRhcmRfRXhlY3V0b3JT dGFydChRdWVyeURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAkJCQkJCQkJICAgZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOwogCQkJfQogCi0JCQllc3RhdGUtPmVzX3Nlc3Np b25fdmFyaWFibGVzW2ldLnZhbHVlID0KLQkJCQlHZXRTZXNzaW9uVmFyaWFibGUodmFyaWQsCi0J CQkJCQkJCSAgICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldLmlzbnVsbCk7CisJCQll c3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldLnZhbHVlID0gR2V0U2Vzc2lvblZhcmlhYmxl V2l0aFR5cGVpZCh2YXJpZCwKKwkJCQkJCQkJCQkJCSAgICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFy aWFibGVzW2ldLmlzbnVsbCwKKwkJCQkJCQkJCQkJCSAgICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFy aWFibGVzW2ldLnR5cGlkKTsKIAogCQkJaSsrOwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJh bGxlbC5jCmluZGV4IGZmNGQ5ZGQxYmIuLjgzZTAzOTFhNDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNQYXJhbGxlbC5jCkBAIC0xMiw4ICsxMiw5IEBACiAgKiB3b3JrZXJzIGFuZCBlbnN1cmluZyB0 aGF0IHRoZWlyIHN0YXRlIGdlbmVyYWxseSBtYXRjaGVzIHRoYXQgb2YgdGhlCiAgKiBsZWFkZXI7 IHNlZSBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9SRUFETUUucGFyYWxsZWwgZm9yIGRldGFp bHMuCiAgKiBIb3dldmVyLCB3ZSBtdXN0IHNhdmUgYW5kIHJlc3RvcmUgcmVsZXZhbnQgZXhlY3V0 b3Igc3RhdGUsIHN1Y2ggYXMKLSAqIGFueSBQYXJhbUxpc3RJbmZvIGFzc29jaWF0ZWQgd2l0aCB0 aGUgcXVlcnksIGJ1ZmZlci9XQUwgdXNhZ2UgaW5mbywgYW5kCi0gKiB0aGUgYWN0dWFsIHBsYW4g dG8gYmUgcGFzc2VkIGRvd24gdG8gdGhlIHdvcmtlci4KKyAqIGFueSBQYXJhbUxpc3RJbmZvIGFz c29jaWF0ZWQgd2l0aCB0aGUgcXVlcnksIGJ1ZmZlci9XQUwgdXNhZ2UgaW5mbywKKyAqIHNlc3Np b24gdmFyaWFibGVzIGJ1ZmZlciwgYW5kIHRoZSBhY3R1YWwgcGxhbiB0byBiZSBwYXNzZWQgZG93 biB0bworICogdGhlIHdvcmtlci4KICAqCiAgKiBJREVOVElGSUNBVElPTgogICoJICBzcmMvYmFj a2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAtNjQsNiArNjUsNyBAQAogI2RlZmluZSBQ QVJBTExFTF9LRVlfUVVFUllfVEVYVAkJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDA4KQog I2RlZmluZSBQQVJBTExFTF9LRVlfSklUX0lOU1RSVU1FTlRBVElPTiBVSU5UNjRDT05TVCgweEUw MDAwMDAwMDAwMDAwMDkpCiAjZGVmaW5lIFBBUkFMTEVMX0tFWV9XQUxfVVNBR0UJCQlVSU5UNjRD T05TVCgweEUwMDAwMDAwMDAwMDAwMEEpCisjZGVmaW5lIFBBUkFMTEVMX0tFWV9TRVNTSU9OX1ZB UklBQkxFUwlVSU5UNjRDT05TVCgweEUwMDAwMDAwMDAwMDAwMEIpCiAKICNkZWZpbmUgUEFSQUxM RUxfVFVQTEVfUVVFVUVfU0laRQkJNjU1MzYKIApAQCAtMTM4LDYgKzE0MCwxMiBAQCBzdGF0aWMg Ym9vbCBFeGVjUGFyYWxsZWxSZXRyaWV2ZUluc3RydW1lbnRhdGlvbihQbGFuU3RhdGUgKnBsYW5z dGF0ZSwKIC8qIEhlbHBlciBmdW5jdGlvbiB0aGF0IHJ1bnMgaW4gdGhlIHBhcmFsbGVsIHdvcmtl ci4gKi8KIHN0YXRpYyBEZXN0UmVjZWl2ZXIgKkV4ZWNQYXJhbGxlbEdldFJlY2VpdmVyKGRzbV9z ZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYyk7CiAKKy8qIEhlbHBlciBmdW5jdGlvbnMgdGhhdCBj YW4gcGFzcyB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgKi8KK3N0YXRpYyBTaXplIEVzdGlt YXRlU2Vzc2lvblZhcmlhYmxlcyhFU3RhdGUgKmVzdGF0ZSk7CitzdGF0aWMgdm9pZCBTZXJpYWxp emVTZXNzaW9uVmFyaWFibGVzKEVTdGF0ZSAqZXN0YXRlLCBjaGFyICoqc3RhcnRfYWRkcmVzcyk7 CitzdGF0aWMgU2Vzc2lvblZhcmlhYmxlVmFsdWUgKlJlc3RvcmVTZXNzaW9uVmFyaWFibGVzKGNo YXIgKipzdGFydF9hZGRyZXNzLAorCQkJCQkJCQkJCQkJCSBpbnQgKm51bV9zZXNzaW9uX3Zhcmlh Ymxlcyk7CisKIC8qCiAgKiBDcmVhdGUgYSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRo ZSBwbGFuIHRvIGJlIHNlbnQgdG8gZWFjaCB3b3JrZXIuCiAgKi8KQEAgLTU5Niw2ICs2MDQsNyBA QCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgRVN0YXRlICplc3Rh dGUsCiAJY2hhcgkgICAqcHN0bXRfZGF0YTsKIAljaGFyCSAgICpwc3RtdF9zcGFjZTsKIAljaGFy CSAgICpwYXJhbWxpc3RpbmZvX3NwYWNlOworCWNoYXIJICAgKnNlc3Npb25fdmFyaWFibGVzX3Nw YWNlOwogCUJ1ZmZlclVzYWdlICpidWZ1c2FnZV9zcGFjZTsKIAlXYWxVc2FnZSAgICp3YWx1c2Fn ZV9zcGFjZTsKIAlTaGFyZWRFeGVjdXRvckluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudGF0aW9u ID0gTlVMTDsKQEAgLTYwNSw2ICs2MTQsNyBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3Rh dGUgKnBsYW5zdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJaW50CQkJaW5zdHJ1bWVudGF0aW9uX2xl biA9IDA7CiAJaW50CQkJaml0X2luc3RydW1lbnRhdGlvbl9sZW4gPSAwOwogCWludAkJCWluc3Ry dW1lbnRfb2Zmc2V0ID0gMDsKKwlpbnQJCQlzZXNzaW9uX3ZhcmlhYmxlc19sZW4gPSAwOwogCVNp emUJCWRzYV9taW5zaXplID0gZHNhX21pbmltdW1fc2l6ZSgpOwogCWNoYXIJICAgKnF1ZXJ5X3N0 cmluZzsKIAlpbnQJCQlxdWVyeV9sZW47CkBAIC02NjAsNiArNjcwLDExIEBAIEV4ZWNJbml0UGFy YWxsZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAlzaG1fdG9j X2VzdGltYXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0b3IsIHBhcmFtbGlzdGluZm9fbGVuKTsKIAlz aG1fdG9jX2VzdGltYXRlX2tleXMoJnBjeHQtPmVzdGltYXRvciwgMSk7CiAKKwkvKiBFc3RpbWF0 ZSBzcGFjZSBmb3Igc2VyaWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4gKi8KKwlzZXNzaW9uX3Zh cmlhYmxlc19sZW4gPSBFc3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMoZXN0YXRlKTsKKwlzaG1fdG9j X2VzdGltYXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0b3IsIHNlc3Npb25fdmFyaWFibGVzX2xlbik7 CisJc2htX3RvY19lc3RpbWF0ZV9rZXlzKCZwY3h0LT5lc3RpbWF0b3IsIDEpOworCiAJLyoKIAkg KiBFc3RpbWF0ZSBzcGFjZSBmb3IgQnVmZmVyVXNhZ2UuCiAJICoKQEAgLTc2MSw2ICs3NzYsMTEg QEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0 YXRlLAogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZX1BBUkFNTElTVElO Rk8sIHBhcmFtbGlzdGluZm9fc3BhY2UpOwogCVNlcmlhbGl6ZVBhcmFtTGlzdChlc3RhdGUtPmVz X3BhcmFtX2xpc3RfaW5mbywgJnBhcmFtbGlzdGluZm9fc3BhY2UpOwogCisJLyogU3RvcmUgc2Vy aWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4gKi8KKwlzZXNzaW9uX3ZhcmlhYmxlc19zcGFjZSA9 IHNobV90b2NfYWxsb2NhdGUocGN4dC0+dG9jLCBzZXNzaW9uX3ZhcmlhYmxlc19sZW4pOworCXNo bV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZX1NFU1NJT05fVkFSSUFCTEVTLCBz ZXNzaW9uX3ZhcmlhYmxlc19zcGFjZSk7CisJU2VyaWFsaXplU2Vzc2lvblZhcmlhYmxlcyhlc3Rh dGUsICZzZXNzaW9uX3ZhcmlhYmxlc19zcGFjZSk7CisKIAkvKiBBbGxvY2F0ZSBzcGFjZSBmb3Ig ZWFjaCB3b3JrZXIncyBCdWZmZXJVc2FnZTsgbm8gbmVlZCB0byBpbml0aWFsaXplLiAqLwogCWJ1 ZnVzYWdlX3NwYWNlID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsCiAJCQkJCQkJCQkgIG11 bF9zaXplKHNpemVvZihCdWZmZXJVc2FnZSksIHBjeHQtPm53b3JrZXJzKSk7CkBAIC0xNDExLDYg KzE0MzEsNyBAQCBQYXJhbGxlbFF1ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0 b2MpCiAJU2hhcmVkSml0SW5zdHJ1bWVudGF0aW9uICpqaXRfaW5zdHJ1bWVudGF0aW9uOwogCWlu dAkJCWluc3RydW1lbnRfb3B0aW9ucyA9IDA7CiAJdm9pZAkgICAqYXJlYV9zcGFjZTsKKwljaGFy CSAgICpzZXNzaW9udmFyaWFibGVfc3BhY2U7CiAJZHNhX2FyZWEgICAqYXJlYTsKIAlQYXJhbGxl bFdvcmtlckNvbnRleHQgcHdjeHQ7CiAKQEAgLTE0MzYsNiArMTQ1NywxNCBAQCBQYXJhbGxlbFF1 ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJYXJlYV9zcGFjZSA9IHNo bV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX0RTQSwgZmFsc2UpOwogCWFyZWEgPSBkc2Ff YXR0YWNoX2luX3BsYWNlKGFyZWFfc3BhY2UsIHNlZyk7CiAKKwkvKiBSZWNvbnN0cnVjdCBzZXNz aW9uIHZhcmlhYmxlcy4gKi8KKwlzZXNzaW9udmFyaWFibGVfc3BhY2UgPSBzaG1fdG9jX2xvb2t1 cCh0b2MsCisJCQkJCQkJCQkJICAgUEFSQUxMRUxfS0VZX1NFU1NJT05fVkFSSUFCTEVTLAorCQkJ CQkJCQkJCSAgIGZhbHNlKTsKKwlxdWVyeURlc2MtPnNlc3Npb25fdmFyaWFibGVzID0KKwkJUmVz dG9yZVNlc3Npb25WYXJpYWJsZXMoJnNlc3Npb252YXJpYWJsZV9zcGFjZSwKKwkJCQkJCQkJJnF1 ZXJ5RGVzYy0+bnVtX3Nlc3Npb25fdmFyaWFibGVzKTsKKwogCS8qIFN0YXJ0IHVwIHRoZSBleGVj dXRvciAqLwogCXF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPmppdEZsYWdzID0gZnBlcy0+aml0X2Zs YWdzOwogCUV4ZWN1dG9yU3RhcnQocXVlcnlEZXNjLCBmcGVzLT5lZmxhZ3MpOwpAQCAtMTUwMywz ICsxNTMyLDExNyBAQCBQYXJhbGxlbFF1ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9j ICp0b2MpCiAJRnJlZVF1ZXJ5RGVzYyhxdWVyeURlc2MpOwogCXJlY2VpdmVyLT5yRGVzdHJveShy ZWNlaXZlcik7CiB9CisKKy8qCisgKiBFc3RpbWF0ZSB0aGUgYW1vdW50IG9mIHNwYWNlIHJlcXVp cmVkIHRvIHNlcmlhbGl6ZSBhIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK3N0YXRpYyBTaXplCitF c3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMoRVN0YXRlICplc3RhdGUpCit7CisJaW50CQkJaTsKKwlT aXplCQlzeiA9IHNpemVvZihpbnQpOworCisJaWYgKGVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJs ZXMgPT0gTlVMTCkKKwkJcmV0dXJuIHN6OworCisJZm9yIChpID0gMDsgaSA8IGVzdGF0ZS0+ZXNf bnVtX3Nlc3Npb25fdmFyaWFibGVzOyBpKyspCisJeworCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAq c3ZhcnZhbDsKKwkJT2lkCQkJdHlwZU9pZDsKKwkJaW50MTYJCXR5cExlbjsKKwkJYm9vbAkJdHlw QnlWYWw7CisKKwkJc3ZhcnZhbCA9ICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldOwor CisJCXR5cGVPaWQgPSBzdmFydmFsLT50eXBpZDsKKworCQlzeiA9IGFkZF9zaXplKHN6LCBzaXpl b2YoT2lkKSk7IC8qIHNwYWNlIGZvciB0eXBlIE9JRCAqLworCisJCS8qIHNwYWNlIGZvciBkYXR1 bS9pc251bGwgKi8KKwkJQXNzZXJ0KE9pZElzVmFsaWQodHlwZU9pZCkpOworCQlnZXRfdHlwbGVu Ynl2YWwodHlwZU9pZCwgJnR5cExlbiwgJnR5cEJ5VmFsKTsKKworCQlzeiA9IGFkZF9zaXplKHN6 LAorCQkJCQkgIGRhdHVtRXN0aW1hdGVTcGFjZShzdmFydmFsLT52YWx1ZSwgc3ZhcnZhbC0+aXNu dWxsLCB0eXBCeVZhbCwgdHlwTGVuKSk7CisJfQorCisJcmV0dXJuIHN6OworfQorCisvKgorICog U2VyaWFsaXplIGEgc2Vzc2lvbiB2YXJpYWJsZXMgYnVmZmVyIGludG8gY2FsbGVyLXByb3ZpZGVk IHN0b3JhZ2UuCisgKgorICogV2Ugd3JpdGUgdGhlIG51bWJlciBvZiBwYXJhbWV0ZXJzIGZpcnN0 LCBhcyBhIDQtYnl0ZSBpbnRlZ2VyLCBhbmQgdGhlbgorICogd3JpdGUgZGV0YWlscyBmb3IgZWFj aCBwYXJhbWV0ZXIgaW4gdHVybi4gIFRoZSBkZXRhaWxzIGZvciBlYWNoIHBhcmFtZXRlcgorICog Y29uc2lzdCBvZiBhIDQtYnl0ZSB0eXBlIE9JRCwgYW5kIHRoZW4gdGhlIGRhdHVtIGFzIHNlcmlh bGl6ZWQgYnkKKyAqIGRhdHVtU2VyaWFsaXplKCkuICBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxl IGZvciBlbnN1cmluZyB0aGF0IHRoZXJlIGlzCisgKiBlbm91Z2ggc3RvcmFnZSB0byBzdG9yZSB0 aGUgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgd2lsbCBiZSB3cml0dGVuOyB1c2UKKyAqIEVzdGltYXRl U2Vzc2lvblZhcmlhYmxlcyB0byBmaW5kIG91dCBob3cgbWFueSB3aWxsIGJlIG5lZWRlZC4KKyAq ICpzdGFydF9hZGRyZXNzIGlzIHVwZGF0ZWQgdG8gcG9pbnQgdG8gdGhlIGJ5dGUgaW1tZWRpYXRl bHkgZm9sbG93aW5nIHRob3NlCisgKiB3cml0dGVuLgorICoKKyAqIFJlc3RvcmVTZXNzaW9uVmFy aWFibGVzIGNhbiBiZSB1c2VkIHRvIHJlY3JlYXRlIGEgc2Vzc2lvbiB2YXJpYWJsZSBidWZmZXIK KyAqIGJhc2VkIG9uIHRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uOworICovCitzdGF0aWMg dm9pZAorU2VyaWFsaXplU2Vzc2lvblZhcmlhYmxlcyhFU3RhdGUgKmVzdGF0ZSwgY2hhciAqKnN0 YXJ0X2FkZHJlc3MpCit7CisJaW50CQkJbnBhcmFtczsKKwlpbnQJCQlpOworCisJLyogV3JpdGUg bnVtYmVyIG9mIHBhcmFtZXRlcnMuICovCisJbnBhcmFtcyA9IGVzdGF0ZS0+ZXNfbnVtX3Nlc3Np b25fdmFyaWFibGVzOworCW1lbWNweSgqc3RhcnRfYWRkcmVzcywgJm5wYXJhbXMsIHNpemVvZihp bnQpKTsKKwkqc3RhcnRfYWRkcmVzcyArPSBzaXplb2YoaW50KTsKKworCS8qIFdyaXRlIGVhY2gg cGFyYW1ldGVyIGluIHR1cm4uICovCisJZm9yIChpID0gMDsgaSA8IG5wYXJhbXM7IGkrKykKKwl7 CisJCVNlc3Npb25WYXJpYWJsZVZhbHVlICpzdmFydmFsOworCQlPaWQJCQl0eXBlT2lkOworCQlp bnQxNgkJdHlwTGVuOworCQlib29sCQl0eXBCeVZhbDsKKworCQlzdmFydmFsID0gJmVzdGF0ZS0+ ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV07CisJCXR5cGVPaWQgPSBzdmFydmFsLT50eXBpZDsKKwor CQkvKiBXcml0ZSB0eXBlIE9JRC4gKi8KKwkJbWVtY3B5KCpzdGFydF9hZGRyZXNzLCAmdHlwZU9p ZCwgc2l6ZW9mKE9pZCkpOworCQkqc3RhcnRfYWRkcmVzcyArPSBzaXplb2YoT2lkKTsKKworCQlB c3NlcnQoT2lkSXNWYWxpZCh0eXBlT2lkKSk7CisJCWdldF90eXBsZW5ieXZhbCh0eXBlT2lkLCAm dHlwTGVuLCAmdHlwQnlWYWwpOworCisJCWRhdHVtU2VyaWFsaXplKHN2YXJ2YWwtPnZhbHVlLCBz dmFydmFsLT5pc251bGwsIHR5cEJ5VmFsLCB0eXBMZW4sCisJCQkJCSAgIHN0YXJ0X2FkZHJlc3Mp OworCX0KK30KKworc3RhdGljIFNlc3Npb25WYXJpYWJsZVZhbHVlICoKK1Jlc3RvcmVTZXNzaW9u VmFyaWFibGVzKGNoYXIgKipzdGFydF9hZGRyZXNzLCBpbnQgKm51bV9zZXNzaW9uX3ZhcmlhYmxl cykKK3sKKwlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqc2Vzc2lvbl92YXJpYWJsZXM7CisJaW50CQkJ aTsKKwlpbnQJCQlucGFyYW1zOworCisJbWVtY3B5KCZucGFyYW1zLCAqc3RhcnRfYWRkcmVzcywg c2l6ZW9mKGludCkpOworCSpzdGFydF9hZGRyZXNzICs9IHNpemVvZihpbnQpOworCisJKm51bV9z ZXNzaW9uX3ZhcmlhYmxlcyA9IG5wYXJhbXM7CisJc2Vzc2lvbl92YXJpYWJsZXMgPSAoU2Vzc2lv blZhcmlhYmxlVmFsdWUgKikKKwkJcGFsbG9jKG5wYXJhbXMgKiBzaXplb2YoU2Vzc2lvblZhcmlh YmxlVmFsdWUpKTsKKworCWZvciAoaSA9IDA7IGkgPCBucGFyYW1zOyBpKyspCisJeworCQlTZXNz aW9uVmFyaWFibGVWYWx1ZSAqc3ZhcnZhbCA9ICZzZXNzaW9uX3ZhcmlhYmxlc1tpXTsKKworCQkv KiBSZWFkIHR5cGUgT0lELiAqLworCQltZW1jcHkoJnN2YXJ2YWwtPnR5cGlkLCAqc3RhcnRfYWRk cmVzcywgc2l6ZW9mKE9pZCkpOworCQkqc3RhcnRfYWRkcmVzcyArPSBzaXplb2YoT2lkKTsKKwor CQkvKiBSZWFkIGRhdHVtL2lzbnVsbC4gKi8KKwkJc3ZhcnZhbC0+dmFsdWUgPSBkYXR1bVJlc3Rv cmUoc3RhcnRfYWRkcmVzcywgJnN2YXJ2YWwtPmlzbnVsbCk7CisJfQorCisJcmV0dXJuIHNlc3Np b25fdmFyaWFibGVzOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwv Y2xhdXNlcy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCmluZGV4IGY2 MDgyOGY4NjIuLjE3NTM5MGM2YzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91 dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMK QEAgLTkyMywyNSArOTIzLDE5IEBAIG1heF9wYXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5v ZGUsIG1heF9wYXJhbGxlbF9oYXphcmRfY29udGV4dCAqY29udGV4dCkKIAogCS8qCiAJICogV2Ug Y2FuJ3QgcGFzcyBQYXJhbXMgdG8gd29ya2VycyBhdCB0aGUgbW9tZW50IGVpdGhlciwgc28gdGhl eSBhcmUgYWxzbwotCSAqIHBhcmFsbGVsLXJlc3RyaWN0ZWQsIHVubGVzcyB0aGV5IGFyZSBQQVJB TV9FWFRFUk4gUGFyYW1zIG9yIGFyZQotCSAqIFBBUkFNX0VYRUMgUGFyYW1zIGxpc3RlZCBpbiBz YWZlX3BhcmFtX2lkcywgbWVhbmluZyB0aGV5IGNvdWxkIGJlCi0JICogZWl0aGVyIGdlbmVyYXRl ZCB3aXRoaW4gd29ya2VycyBvciBjYW4gYmUgY29tcHV0ZWQgYnkgdGhlIGxlYWRlciBhbmQKLQkg KiB0aGVuIHRoZWlyIHZhbHVlIGNhbiBiZSBwYXNzZWQgdG8gd29ya2Vycy4KKwkgKiBwYXJhbGxl bC1yZXN0cmljdGVkLCB1bmxlc3MgdGhleSBhcmUgUEFSQU1fRVhURVJOIG9yIFBBUkFNX1ZBUklB QkxFCisJICogUGFyYW1zIG9yIGFyZSBQQVJBTV9FWEVDIFBhcmFtcyBsaXN0ZWQgaW4gc2FmZV9w YXJhbV9pZHMsIG1lYW5pbmcgdGhleQorCSAqIGNvdWxkIGJlIGVpdGhlciBnZW5lcmF0ZWQgd2l0 aGluIHdvcmtlcnMgb3IgY2FuIGJlIGNvbXB1dGVkIGJ5IHRoZQorCSAqIGxlYWRlciBhbmQgdGhl biB0aGVpciB2YWx1ZSBjYW4gYmUgcGFzc2VkIHRvIHdvcmtlcnMuCiAJICovCiAJZWxzZSBpZiAo SXNBKG5vZGUsIFBhcmFtKSkKIAl7CiAJCVBhcmFtCSAgICpwYXJhbSA9IChQYXJhbSAqKSBub2Rl OwogCi0JCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTikKKwkJaWYgKHBhcmFt LT5wYXJhbWtpbmQgPT0gUEFSQU1fRVhURVJOIHx8CisJCQlwYXJhbS0+cGFyYW1raW5kID09IFBB UkFNX1ZBUklBQkxFKQogCQkJcmV0dXJuIGZhbHNlOwogCi0JCS8qIHdlIGRvbid0IHN1cHBvcnQg cGFzc2luZyBzZXNzaW9uIHZhcmlhYmxlcyB0byB3b3JrZXJzICovCi0JCWlmIChwYXJhbS0+cGFy YW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQotCQl7Ci0JCQlpZiAobWF4X3BhcmFsbGVsX2hhemFy ZF90ZXN0KFBST1BBUkFMTEVMX1JFU1RSSUNURUQsIGNvbnRleHQpKQotCQkJCXJldHVybiB0cnVl OwotCQl9Ci0KIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhFQyB8fAogCQkJIWxp c3RfbWVtYmVyX2ludChjb250ZXh0LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0tPnBhcmFtaWQpKQog CQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3BxdWVyeS5jIGIvc3JjL2JhY2tlbmQv dGNvcC9wcXVlcnkuYwppbmRleCA2ZjIyNDk2MzA1Li42ZjliZDdjOGIwIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC90Y29wL3BxdWVyeS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMK QEAgLTg2LDYgKzg2LDkgQEAgQ3JlYXRlUXVlcnlEZXNjKFBsYW5uZWRTdG10ICpwbGFubmVkc3Rt dCwKIAlxZC0+cXVlcnlFbnYgPSBxdWVyeUVudjsKIAlxZC0+aW5zdHJ1bWVudF9vcHRpb25zID0g aW5zdHJ1bWVudF9vcHRpb25zOwkvKiBpbnN0cnVtZW50YXRpb24gd2FudGVkPyAqLwogCisJcWQt Pm51bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IDA7CisJcWQtPnNlc3Npb25fdmFyaWFibGVzID0gTlVM TDsKKwogCS8qIG51bGwgdGhlc2UgZmllbGRzIHVudGlsIHNldCBieSBFeGVjdXRvclN0YXJ0ICov CiAJcWQtPnR1cERlc2MgPSBOVUxMOwogCXFkLT5lc3RhdGUgPSBOVUxMOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IDc3NGIzOWYyZjkuLjM4NjMzMGM2OWMgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTI5LDYgKzI5LDcgQEAg ZXh0ZXJuIHZvaWQgQXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0LCBT dWJUcmFuc2FjdGlvbklkIG15U3ViaWQKIAogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxl KE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiBEYXR1bSBHZXRT ZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwpOworZXh0ZXJuIERhdHVtIEdl dFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlaWQoT2lkIHZhcmlkLCBib29sICppc051bGwsIE9pZCAq dHlwaWQpOwogCiBleHRlcm4gdm9pZCBFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUs IExldFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAogCQkJCQkJICAgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYsIFF1ZXJ5Q29tcGxldGlvbiAqcWMpOwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNk ZXNjLmgKaW5kZXggODZkYjNkYzhkMC4uNGUwZmEzZWE0MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjZGVz Yy5oCkBAIC01MSw2ICs1MSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBRdWVyeURlc2MKIAkvKiBUaGlz IGZpZWxkIGlzIHNldCBieSBFeGVjdXRlUGxhbiAqLwogCWJvb2wJCWFscmVhZHlfZXhlY3V0ZWQ7 CS8qIHRydWUgaWYgcHJldmlvdXNseSBleGVjdXRlZCAqLwogCisJLyogcmVmZXJlbmNlIHRvIHNl c3Npb24gdmFyaWFibGVzIGJ1ZmZlciAqLworCWludAkJCW51bV9zZXNzaW9uX3ZhcmlhYmxlczsK KwlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqc2Vzc2lvbl92YXJpYWJsZXM7CisKIAkvKiBUaGlzIGlz IGFsd2F5cyBzZXQgTlVMTCBieSB0aGUgY29yZSBzeXN0ZW0sIGJ1dCBwbHVnaW5zIGNhbiBjaGFu Z2UgaXQgKi8KIAlzdHJ1Y3QgSW5zdHJ1bWVudGF0aW9uICp0b3RhbHRpbWU7CS8qIHRvdGFsIHRp bWUgc3BlbnQgaW4gRXhlY3V0b3JSdW4gKi8KIH0gUXVlcnlEZXNjOwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMu aAppbmRleCBhM2Q5OGJlNmI1Li4yYWZiYTZhMmFmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9u b2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAt NjM5LDYgKzYzOSw3IEBAIHR5cGVkZWYgc3RydWN0IEFzeW5jUmVxdWVzdAogICovCiB0eXBlZGVm IHN0cnVjdCBTZXNzaW9uVmFyaWFibGVWYWx1ZQogeworCU9pZAkJCXR5cGlkOwogCWJvb2wJCWlz bnVsbDsKIAlEYXR1bQkJdmFsdWU7CiB9IFNlc3Npb25WYXJpYWJsZVZhbHVlOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCBiNWFiMDU4 NDBhLi5mNzdmM2I4MDY2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dApAQCAtMTI4NCwxMiArMTI4NCwxNCBAQCBTRUxFQ1QgY291bnQoKikg RlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CiAKIC0tIHBhcmFsbGVsIGV4ZWN1dGlv biBpcyBub3Qgc3VwcG9ydGVkIHlldAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQo KikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87Ci0gICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFnZ3JlZ2F0ZQotICAgLT4gIFNlcSBT Y2FuIG9uIHN2YXJfdGVzdAotICAgICAgICAgRmlsdGVyOiAoKGEgJSAxMCkgPSB6ZXJvKQotKDMg cm93cykKKyAgIC0+ICBHYXRoZXIKKyAgICAgICAgIFdvcmtlcnMgUGxhbm5lZDogMgorICAgICAg ICAgLT4gIFBhcmFsbGVsIFNlcSBTY2FuIG9uIHN2YXJfdGVzdAorICAgICAgICAgICAgICAgRmls dGVyOiAoKGEgJSAxMCkgPSB6ZXJvKQorKDUgcm93cykKIAogTEVUIHplcm8gPSAoU0VMRUNUIGNv dW50KCopIEZST00gc3Zhcl90ZXN0KTsKIC0tIHJlc3VsdCBzaG91bGQgYmUgMTAwMAotLSAKMi40 OC4wCgo= --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0016-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Disposition: attachment; filename="v20250117-0016-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8ky6 RnJvbSBmZWMyYTA3YzRhMWYyNjA4NjJjMzQ4ZWJiNDZhZjQ1YzA4ZDEwYmRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNzowMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTYvMjJdIGFsbG93IHJlYWQgYW4gdmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBkaXJlY3RseSBm cm9tCiBleHByZXNzaW9uIGV4ZWN1dG9yCgpUaGUgZXhwcmVzc2lvbiBleGVjdXRvciBjYW4gYmUg Y2FsbGVkIGRpcmVjdGx5IChub3QgaW5zaWRlIHF1ZXJ5IGV4ZWN1dG9yKQp3aGVuIGV4cHJlc3Np b24gaXMgZXZhbHVhdGVkIGFzIHNpbXBsZSBleHByZXNzaW9uIGluIHBscGdzcWwgb3Igd2hlbiBl eHByZXNzaW9uCmlzIGFuIGFyZ3VtZW50IG9mIENBTEwgb3IgRVhFQ1VURSBzdGF0ZW1lbnRzLiBG b3IgdGhlc2UgY2FzZXMgd2UgbmVlZCB0byBhbGxvdyBkaXJlY3QKYWNjZXNzIHRvIGNvbnRlbnQg b2Ygc2Vzc2lvbiB2YXJpYWJsZXMgZnJvbSBleGVjdXRvci4gV2UgY2FuIGRvIGl0LCBiZWNhdXNl CndlIGtub3cgc28gdGhlIGV4cHJlc3Npb24gaXMgbm90IGV2YWx1YXRlZCB1bmRlciBxdWVyeSBh bmQgY2Fubm90IGJlCmV2YWx1YXRlZCBpbnNpZGUgcGFyYWxsZWwgd29ya2VyLgoKVGhpcyBwYXRj aCBlbmFibGVzIHNlc3Npb24gdmFyaWFibGVzIGZvciBzaW1wbGUgZXhwcmVzc2lvbiBldmFsdWF0 aW9uLgoKVGhpcyBwYXRjaCBlbmFibGVzIHVzYWdlIHNlc3Npb24gdmFyaWFibGVzIGluIGFyZ3Vt ZW50cyBvZiBDQUxMIHN0bXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jICAg ICAgICAgICAgICAgIHwgMTAgLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAg ICAgICAgICAgICAgfCA4NSArKysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9leGVjdXRv ci9leGVjRXhwckludGVycC5jICAgICAgICAgfCAxNCArKysKIHNyYy9iYWNrZW5kL2ppdC9sbHZt L2xsdm1qaXRfZXhwci5jICAgICAgICAgICB8ICA2ICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jICAgICAgICAgICAgICAgICAgfCAxMCAtLS0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4 ZWNFeHByLmggICAgICAgICAgICAgICB8IDExICsrLQogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3Fs X3Nlc3Npb25fdmFyaWFibGUub3V0IHwgIDMgKy0KIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMgICAgICAgICAgICAgICAgICB8ICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQgICAgfCA0MSArKysrLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDEyICstLQogMTAgZmlsZXMgY2hhbmdlZCwgMTI1IGlu c2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwppbmRleCA0 ZWEyYmZlYTRlLi43MGYwMzA5OTk5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9w cmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCkBAIC0zMzgsMTYg KzMzOCw2IEBAIEV2YWx1YXRlUGFyYW1zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUHJlcGFyZWRTdGF0 ZW1lbnQgKnBzdG10LCBMaXN0ICpwYXJhbXMsCiAJCWkrKzsKIAl9CiAKLQkvKgotCSAqIFRoZSBh cmd1bWVudHMgb2YgRVhFQ1VURSBhcmUgZXZhbHVhdGVkIGJ5IGEgZGlyZWN0IGV4cHJlc3Npb24K LQkgKiBleGVjdXRvciBjYWxsLiAgVGhpcyBtb2RlIGRvZXNuJ3Qgc3VwcG9ydCBzZXNzaW9uIHZh cmlhYmxlcyB5ZXQuCi0JICogSXQgd2lsbCBiZSBlbmFibGVkIGxhdGVyLgotCSAqLwotCWlmIChw c3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJy Y29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJIGVycm1zZygic2Vzc2lv biB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpKSk7Ci0KIAkvKiBQcmVw YXJlIHRoZSBleHByZXNzaW9ucyBmb3IgZXhlY3V0aW9uICovCiAJZXhwcnN0YXRlcyA9IEV4ZWNQ cmVwYXJlRXhwckxpc3QocGFyYW1zLCBlc3RhdGUpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpp bmRleCA1NGVmY2RlYzQ0Li5jZjVkMDFlYjEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAg LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRlICJl eGVjdXRvci9ub2RlU3VicGxhbi5oIgpAQCAtMTA1OCwyMiArMTA1OSw3NCBAQCBFeGVjSW5pdEV4 cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAkJCQkJCQkJZXNfbnVtX3Nlc3Np b25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVzX251bV9zZXNzaW9uX3Zhcmlh YmxlczsKIAkJCQkJCQl9CiAKLQkJCQkJCQlBc3NlcnQoZXNfc2Vzc2lvbl92YXJpYWJsZXMpOwot Ci0JCQkJCQkJLyogcGFyYW1ldGVyIHNhbml0eSBjaGVja3MgKi8KLQkJCQkJCQlpZiAocGFyYW0t PnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzKQotCQkJCQkJCQllbG9nKEVSUk9S LCAicGFyYW1pZCBvZiBQQVJBTV9WQVJJQUJMRSBwYXJhbSBpcyBvdXQgb2YgcmFuZ2UiKTsKLQot CQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJhbS0+cGFyYW1pZF07Ci0KLQkJ CQkJCQkvKgotCQkJCQkJCSAqIEluIHRoaXMgY2FzZSwgcGFzcyB0aGUgdmFsdWUgbGlrZSBhCi0J CQkJCQkJICogY29uc3RhbnQuCi0JCQkJCQkJICovCi0JCQkJCQkJc2NyYXRjaC5vcGNvZGUgPSBF RU9QX0NPTlNUOwotCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC52YWx1ZSA9IHZhci0+dmFsdWU7 Ci0JCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLmlzbnVsbCA9IHZhci0+aXNudWxsOwotCQkJCQkJ CUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNoKTsKKwkJCQkJCQlpZiAoZXNfc2Vzc2lv bl92YXJpYWJsZXMpCisJCQkJCQkJeworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBUaGlzIHBhdGgg aXMgdXNlZCB3aGVuIGV4cHJlc3Npb24gaXMKKwkJCQkJCQkJICogZXZhbHVhdGVkIGluc2lkZSBx dWVyeSBldmFsdWF0aW9uLiBGb3IKKwkJCQkJCQkJICogZW5zdXJpbmcgb2YgaW1tdXRhYmlsaXR5 IG9mIHNlc3Npb24gdmFyaWFibGUKKwkJCQkJCQkJICogaW5zaWRlIHF1ZXJ5IHdlIHVzZSBzcGVj aWFsIGJ1ZmZlciB3aXRoIGNvcHkKKwkJCQkJCQkJICogb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxl cy4gVGhpcyBtZXRob2QgaGVscHMKKwkJCQkJCQkJICogd2l0aCBwYXJhbGxlbCBleGVjdXRpb24g dG9vLgorCQkJCQkJCQkgKi8KKworCQkJCQkJCQkvKiBwYXJhbWV0ZXIgc2FuaXR5IGNoZWNrcyAq LworCQkJCQkJCQlpZiAocGFyYW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVz KQorCQkJCQkJCQkJZWxvZyhFUlJPUiwgInBhcmFtaWQgb2YgUEFSQU1fVkFSSUFCTEUgcGFyYW0g aXMgb3V0IG9mIHJhbmdlIik7CisKKwkJCQkJCQkJdmFyID0gJmVzX3Nlc3Npb25fdmFyaWFibGVz W3BhcmFtLT5wYXJhbWlkXTsKKworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBJbiB0aGlzIGNhc2Us IHBhc3MgdGhlIHZhbHVlIGxpa2UgYQorCQkJCQkJCQkgKiBjb25zdGFudC4KKwkJCQkJCQkJICov CisJCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsKKwkJCQkJCQkJc2NyYXRjaC5k LmNvbnN0dmFsLnZhbHVlID0gdmFyLT52YWx1ZTsKKwkJCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFs LmlzbnVsbCA9IHZhci0+aXNudWxsOworCQkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAm c2NyYXRjaCk7CisJCQkJCQkJfQorCQkJCQkJCWVsc2UKKwkJCQkJCQl7CisJCQkJCQkJCU9pZAkJ CXZhcmlkID0gcGFyYW0tPnBhcmFtdmFyaWQ7CisKKwkJCQkJCQkJQXNzZXJ0KCFJc1BhcmFsbGVs V29ya2VyKCkpOworCisJCQkJCQkJCS8qCisJCQkJCQkJCSAqIEluIHNvbWUgY2FzZXMgKHBscGdz cWwncyBzaW1wbGUgZXhwcmVzc2lvbgorCQkJCQkJCQkgKiBldmFsdWF0aW9uIG9yIGV2YWx1YXRp b24gb2YgQ0FMTCBhcmd1bWVudHMpLAorCQkJCQkJCQkgKiB0aGUgZXhwcmVzc2lvbiBleGVjdXRv ciBpcyBjYWxsZWQgZGlyZWN0bHkuCisJCQkJCQkJCSAqIFdlIGNhbiBhbGxvdyBkaXJlY3QgYWNj ZXNzIHRvIHNlc3Npb24KKwkJCQkJCQkJICogdmFyaWFibGVzIChjb3B5IG9ubHkpLCBiZWNhdXNl IHdlIGtub3csIHNvCisJCQkJCQkJCSAqIG91dHNpZGUgaXMgbm90IGFueSBxdWVyeSAoYW5kIGV4 cHJlc3Npb24KKwkJCQkJCQkJICogY2Fubm90IGJlIGV4ZWN1dGVkIHBhcmFsbGVsKS4KKwkJCQkJ CQkJICoKKwkJCQkJCQkJICogSW4gdGhpcyBjYXNlIHdlIHNob3VsZCB0byBkbyBhY2xjaGVjaywK KwkJCQkJCQkJICogYmVjYXVzZSB1c3VhbCBhY2xjaGVjayBmcm9tCisJCQkJCQkJCSAqIHN0YW5k YXJkX0V4ZWN1dG9yU3RhcnQgaXMgbm90IGV4ZWN1dGVkIGluCisJCQkJCQkJCSAqIHRoaXMgY2Fz ZS4gRm9ydHVuYXRlbHkgaXQgaXMganVzdCBvbmNlIHBlcgorCQkJCQkJCQkgKiB0cmFuc2FjdGlv bi4KKwkJCQkJCQkJICoKKwkJCQkJCQkJICogRG9uJ3QgZG8gcGVybWlzc2lvbiBjaGVjaywgd2hl biB2YXJpYWJsZSBpcworCQkJCQkJCQkgKiB1c2VkIGxpa2UgYmFzZSBub2RlIGZvciBhc3NpZ25t ZW50IGluZGlyZWN0aW9uLgorCQkJCQkJCQkgKi8KKwkJCQkJCQkJaWYgKCFwYXJhbS0+cGFyYW1i YXNlbm9kZSkKKwkJCQkJCQkJeworCQkJCQkJCQkJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKworCQkJ CQkJCQkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKAorCQkJCQkJCQkJCQkJCSAgVmFyaWFi bGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJCQkgIEdldFVzZXJJZCgpLCBBQ0xfU0VM RUNUKTsKKworCQkJCQkJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQkJCQkJ CQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsCisJCQkJCQkJCQkJCQkJICAgT0JKRUNUX1ZBUklB QkxFLAorCQkJCQkJCQkJCQkJCSAgIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsK KwkJCQkJCQkJfQorCisJCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9QQVJBTV9WQVJJQUJM RTsKKwkJCQkJCQkJc2NyYXRjaC5kLnZwYXJhbS52YXJpZCA9IHZhcmlkOworCQkJCQkJCQlFeHBy RXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQkJfQogCQkJCQkJfQogCQkJCQkJ YnJlYWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJw LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCmluZGV4IDExMjdlNmYx MWUuLjNmNWYxZWEzMWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy SW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAt NTksNiArNTksNyBAQAogI2luY2x1ZGUgImFjY2Vzcy9oZWFwdG9hc3QuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgorI2luY2x1 ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVj RXhwci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL25vZGVTdWJwbGFuLmgiCiAjaW5jbHVkZSAiZnVu Y2FwaS5oIgpAQCAtNTIyLDYgKzUyMyw3IEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3Rh dGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkmJkNBU0VfRUVPUF9Q QVJBTV9FWEVDLAogCQkmJkNBU0VfRUVPUF9QQVJBTV9FWFRFUk4sCiAJCSYmQ0FTRV9FRU9QX1BB UkFNX0NBTExCQUNLLAorCQkmJkNBU0VfRUVPUF9QQVJBTV9WQVJJQUJMRSwKIAkJJiZDQVNFX0VF T1BfUEFSQU1fU0VULAogCQkmJkNBU0VfRUVPUF9DQVNFX1RFU1RWQUwsCiAJCSYmQ0FTRV9FRU9Q X01BS0VfUkVBRE9OTFksCkBAIC0xMjY0LDYgKzEyNjYsMTggQEAgRXhlY0ludGVycEV4cHIoRXhw clN0YXRlICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LCBib29sICppc251bGwpCiAJCQlF RU9fTkVYVCgpOwogCQl9CiAKKwkJRUVPX0NBU0UoRUVPUF9QQVJBTV9WQVJJQUJMRSkKKwkJewor CQkJLyoKKwkJCSAqIERpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSAod2l0aG91dCBi dWZmZXJpbmcpLiBCZWNhdXNlCisJCQkgKiByZXR1cm5lZCB2YWx1ZSBjYW4gYmUgdXNlZCAod2l0 aG91dCBhbiBhc3NpZ25lbWVudCkgYWZ0ZXIgdGhlCisJCQkgKiByZWZlcmVuY2VkIHNlc3Npb24g dmFyaWFibGVzIGlzIHVwZGF0ZWQsIHdlIGhhdmUgdG8gdXNlIGFuIGNvcHkKKwkJCSAqIG9mIHN0 b3JlZCB2YWx1ZSBldmVyeSB0aW1lLgorCQkJICovCisJCQkqb3AtPnJlc3ZhbHVlID0gR2V0U2Vz c2lvblZhcmlhYmxlKG9wLT5kLnZwYXJhbS52YXJpZCwgb3AtPnJlc251bGwpOworCQkJRUVPX05F WFQoKTsKKwkJfQorCiAJCUVFT19DQVNFKEVFT1BfUEFSQU1fU0VUKQogCQl7CiAJCQkvKiBvdXQg b2YgbGluZSwgdW5saWtlbHkgdG8gbWF0dGVyIHBlcmZvcm1hbmNlLXdpc2UgKi8KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jIGIvc3JjL2JhY2tlbmQvaml0 L2xsdm0vbGx2bWppdF9leHByLmMKaW5kZXggYzFjZjM0ZjEwMy4uZTg1YzdhNzhjYyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKKysrIGIvc3JjL2JhY2tl bmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKQEAgLTEyMDgsNiArMTIwOCwxMiBAQCBsbHZtX2Nv bXBpbGVfZXhwcihFeHByU3RhdGUgKnN0YXRlKQogCQkJCQlicmVhazsKIAkJCQl9CiAKKwkJCWNh c2UgRUVPUF9QQVJBTV9WQVJJQUJMRToKKwkJCQlidWlsZF9FdmFsWEZ1bmMoYiwgbW9kLCAiRXhl Y0V2YWxQYXJhbVZhcmlhYmxlIiwKKwkJCQkJCQkJdl9zdGF0ZSwgb3AsIHZfZWNvbnRleHQpOwor CQkJCUxMVk1CdWlsZEJyKGIsIG9wYmxvY2tzW29wbm8gKyAxXSk7CisJCQkJYnJlYWs7CisKIAkJ CWNhc2UgRUVPUF9QQVJBTV9TRVQ6CiAJCQkJYnVpbGRfRXZhbFhGdW5jKGIsIG1vZCwgIkV4ZWNF dmFsUGFyYW1TZXQiLAogCQkJCQkJCQl2X3N0YXRlLCBvcCwgdl9lY29udGV4dCk7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2Fu YWx5emUuYwppbmRleCBjMGMzYWJkN2EwLi40NmEyMmZmNWM5IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMK QEAgLTM1NzEsMTYgKzM1NzEsNiBAQCB0cmFuc2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3Rh dGUsIENhbGxTdG10ICpzdG10KQogCQkJCQkJCSB0cnVlLAogCQkJCQkJCSBzdG10LT5mdW5jY2Fs bC0+bG9jYXRpb24pOwogCi0JLyoKLQkgKiBUaGUgYXJndW1lbnRzIG9mIENBTEwgc3RhdGVtZW50 IGFyZSBldmFsdWF0ZWQgYnkgYSBkaXJlY3QgZXhwcmVzc2lvbgotCSAqIGV4ZWN1dG9yIGNhbGwu ICBUaGlzIHBhdGggaXMgdW5zdXBwb3J0ZWQgeWV0LCBzbyBibG9jayBpdC4gIEl0IHdpbGwgYmUK LQkgKiBlbmFibGVkIGxhdGVyLgotCSAqLwotCWlmIChwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlh YmxlcykKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCi0JCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNl ZCBhcyBhbiBhcmd1bWVudCIpKSk7Ci0KIAlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwg bm9kZSk7CiAKIAlmZXhwciA9IGNhc3ROb2RlKEZ1bmNFeHByLCBub2RlKTsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9l eGVjRXhwci5oCmluZGV4IDUzNzFlMzQ0ZWMuLmUzMmE5YTkzMmEgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y0V4cHIuaApAQCAtMTY0LDEwICsxNjQsMTEgQEAgdHlwZWRlZiBlbnVtIEV4cHJFdmFsT3AKIAlF RU9QX0JPT0xURVNUX0lTX0ZBTFNFLAogCUVFT1BfQk9PTFRFU1RfSVNfTk9UX0ZBTFNFLAogCi0J LyogZXZhbHVhdGUgUEFSQU1fRVhFQy9FWFRFUk4gcGFyYW1ldGVycyAqLworCS8qIGV2YWx1YXRl IFBBUkFNX0VYRUMvRVhURVJOL1ZBUklBQkxFIHBhcmFtZXRlcnMgKi8KIAlFRU9QX1BBUkFNX0VY RUMsCiAJRUVPUF9QQVJBTV9FWFRFUk4sCiAJRUVPUF9QQVJBTV9DQUxMQkFDSywKKwlFRU9QX1BB UkFNX1ZBUklBQkxFLAogCS8qIHNldCBQQVJBTV9FWEVDIHZhbHVlICovCiAJRUVPUF9QQVJBTV9T RVQsCiAKQEAgLTQyNyw2ICs0MjgsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgRXhwckV2YWxTdGVwCiAJ CQlPaWQJCQlwYXJhbXR5cGU7CS8qIE9JRCBvZiBwYXJhbWV0ZXIncyBkYXRhdHlwZSAqLwogCQl9 CQkJY3BhcmFtOwogCisJCS8qIGZvciBFRU9QX1BBUkFNX1ZBUklBQkxFICovCisJCXN0cnVjdAor CQl7CisJCQlPaWQJCQl2YXJpZDsJCS8qIE9JRCBvZiBhc3NpZ25lZCB2YXJpYWJsZSAqLworCQl9 CQkJdnBhcmFtOworCiAJCS8qIGZvciBFRU9QX0NBU0VfVEVTVFZBTC9ET01BSU5fVEVTVFZBTCAq LwogCQlzdHJ1Y3QKIAkJewpAQCAtODQ5LDYgKzg1Niw4IEBAIGV4dGVybiB2b2lkIEV4ZWNFdmFs UGFyYW1TZXQoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKIAkJCQkJCQkgRXhw ckNvbnRleHQgKmVjb250ZXh0KTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsUGFyYW1FeHRlcm4oRXhw clN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKIAkJCQkJCQkJRXhwckNvbnRleHQgKmVj b250ZXh0KTsKK2V4dGVybiB2b2lkIEV4ZWNFdmFsUGFyYW1WYXJpYWJsZShFeHByU3RhdGUgKnN0 YXRlLCBFeHByRXZhbFN0ZXAgKm9wLAorCQkJCQkJCQkgIEV4cHJDb250ZXh0ICplY29udGV4dCk7 CiBleHRlcm4gdm9pZCBFeGVjRXZhbENvZXJjZVZpYUlPU2FmZShFeHByU3RhdGUgKnN0YXRlLCBF eHByRXZhbFN0ZXAgKm9wKTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsU1FMVmFsdWVGdW5jdGlvbihF eHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFs Q3VycmVudE9mRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFi bGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJp YWJsZS5vdXQKaW5kZXggYTY1MjNmN2FmZS4uZWNhYzY0ZmNmYiAxMDA2NDQKLS0tIGEvc3JjL3Bs L3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIv c3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQK QEAgLTIxMSw4ICsyMTEsNyBAQCBTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CiAt LSBzaG91bGQgZmFpbAogU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKIEVSUk9SOiAgcGVybWlzc2lv biBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgcGxwZ3NxbF9zdl92YXIxCi1DT05URVhUOiAg UEwvcGdTUUwgZXhwcmVzc2lvbiAicGxwZ3NxbF9zdl92YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24g dmFyX3JlYWRfZnVuYygpIGxpbmUgMyBhdCBSQUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0 aW9uIHZhcl9yZWFkX2Z1bmMoKSBsaW5lIDMgYXQgUkFJU0UKIFNFVCBST0xFIFRPIERFRkFVTFQ7 CiBTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOwogR1JBTlQgU0VMRUNUIE9OIFZB UklBQkxFIHBscGdzcWxfc3ZfdmFyMSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZXhlYy5jCmluZGV4IDNmOTAxY2Q4ZmMuLmU1YjBkYTA0ZTMgMTAwNjQ0Ci0tLSBhL3NyYy9w bC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMu YwpAQCAtODA5OSw4ICs4MDk5LDcgQEAgZXhlY19pc19zaW1wbGVfcXVlcnkoUExwZ1NRTF9leHBy ICpleHByKQogCQlxdWVyeS0+c29ydENsYXVzZSB8fAogCQlxdWVyeS0+bGltaXRPZmZzZXQgfHwK IAkJcXVlcnktPmxpbWl0Q291bnQgfHwKLQkJcXVlcnktPnNldE9wZXJhdGlvbnMgfHwKLQkJcXVl cnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCisJCXF1ZXJ5LT5zZXRPcGVyYXRpb25zKQogCQlyZXR1 cm4gZmFsc2U7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dAppbmRleCAwOWJiNGIyZmIyLi5iNWFiMDU4NDBhIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNDgzLDggKzQ4 Myw3IEBAIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFy MQogQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAic3FsZngiIHN0YXRlbWVudCAxCiBTRUxFQ1QgcGxw Z3NxbGZ4KDIwKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgdmFyMQotQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gIiQxICsgdmFyMSIKLVBML3Bn U1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBsaW5lIDEgYXQgUkVUVVJOCitDT05URVhU OiAgUEwvcGdTUUwgZnVuY3Rpb24gcGxwZ3NxbGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4K IC0tIHNob3VsZCBiZSBvawogU0VMRUNUIHNxbGZ4X3NkKDIwKTsKICBzcWxmeF9zZCAKQEAgLTc4 MCwyNyArNzc5LDI4IEBAICQkOwogTk9USUNFOiAgcmVzdWx0IGFycmF5OiB7MSwyLDMsNCw1LDYs Nyw4LDksMTB9CiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIFZBUklBQkxFIHZhcjI7Ci0tLSBD QUxMIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAotLS0gcmVxdWlyZXMgZGlyZWN0IGFj Y2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorLS0gQ0FM TCBzdGF0ZW1lbnQgaXMgc3VwcG9ydGVkCiBDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CitMRVQgdiA9 IDE7CiBDUkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9USUNF ICclJywgYXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKLS0tIHNob3VsZCBub3QgY3Jhc2gg KGJ1dCBpcyBub3Qgc3VwcG9ydGVkIHlldCkKKy0tIHNob3VsZCB0byB3b3JrCiBDQUxMIHAodik7 Ci1FUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQK K05PVElDRTogIDEKIERPICQkIEJFR0lOIENBTEwgcCh2KTsgRU5EICQkOwotRVJST1I6ICBzZXNz aW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50Ci1DT05URVhUOiAgU1FM IHN0YXRlbWVudCAiQ0FMTCBwKHYpIgotUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxv Y2sgbGluZSAxIGF0IENBTEwKK05PVElDRTogIDEKIERST1AgUFJPQ0VEVVJFIHAoaW50KTsKIERS T1AgVkFSSUFCTEUgdjsKLS0tIEVYRUNVVEUgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0 Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHBy ZXNzaW9uIGV4ZWN1dG9yCistLSBFWEVDVVRFIHN0YXRlbWVudAogQ1JFQVRFIFZBUklBQkxFIHYg aW50OwogTEVUIHYgPSAyMDsKIFBSRVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7Ci0tLSBz aG91bGQgZmFpbAorLS0gc2hvdWxkIGJlIG9rCiBFWEVDVVRFIHB0ZXN0KHYpOwotRVJST1I6ICBz ZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CisgP2NvbHVtbj8g CistLS0tLS0tLS0tCisgICAgICAgMjAKKygxIHJvdykKKwogREVBTExPQ0FURSBwdGVzdDsKIERS T1AgVkFSSUFCTEUgdjsKIC0tIHRlc3Qgc2VhcmNoIHBhdGgKQEAgLTExMjMsMTIgKzExMjMsMTAg QEAgTEVUIHZhcjEuYSA9IChTRUxFQ1QgKiBGUk9NIChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJ0 ZXN0dGFiIFdIRVJFIHhjb2wgPSB2YXIxLmEKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9y IHNlc3Npb24gdmFyaWFibGUgdmFyMQogRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFy MTsgRU5EICQkOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJs ZSB2YXIxCi1DT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMSIKLVBML3BnU1FMIGZ1 bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQorQ09OVEVYVDogIFBML3Bn U1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQogRE8gJCQgQkVH SU4gUkFJU0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24g ZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBQTC9wZ1NRTCBleHBy ZXNzaW9uICJ2YXIxLmEiCi1QTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5l IDEgYXQgUkFJU0UKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9j ayBsaW5lIDEgYXQgUkFJU0UKIERPICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsg RU5EICQkOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2 YXIxCiBDT05URVhUOiAgU1FMIHN0YXRlbWVudCAiTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwIgpA QCAtMTE3MCwxMiArMTE2OCwxMCBAQCBMRVQgdmFyMS5hID0gKFNFTEVDVCAqIEZST00gKFNFTEVD VCBjb3VudCgqKSBGUk9NIHZhcnRlc3R0YWIgV0hFUkUgeGNvbCA9IHZhcjEuYQogRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBETyAkJCBCRUdJTiBS QUlTRSBOT1RJQ0UgJyUnLCB2YXIxOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVk IGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9u ICJ2YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJB SVNFCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAx IGF0IFJBSVNFCiBETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxLmE7IEVORCAkJDsK IEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQotQ09O VEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInZhcjEuYSIKLVBML3BnU1FMIGZ1bmN0aW9uIGlu bGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0 aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQogRE8gJCQgQkVHSU4gTEVUIHZh cjEuYSA9IHZhcjEuYSArIDEwOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKIENPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJMRVQgdmFy MS5hID0gdmFyMS5hICsgMTAiCkBAIC0yMDgwLDggKzIwNzYsNyBAQCAkJDsKIEVSUk9SOiAgc2Vz c2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIG5vdCB1c2VkIGluc2lkZSB2YXJpYWJsZSBm ZW5jZQogREVUQUlMOiAgVGhlcmUgaXMgYSByaXNrIG9mIHVud2FudGVkIHVzYWdlIG9mIHNlc3Np b24gdmFyaWFibGUuCiBISU5UOiAgVXNlIHZhcmlhYmxlIGZlbmNlICJWQVJJQUJMRSh2YXJuYW1l KSBmb3IgYWNjZXNzIHRvIHZhcmlhYmxlIi4KLUNPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9u ICJ2YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSA0IGF0IFJB SVNFCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSA0 IGF0IFJBSVNFCiAtLSBzaG91bGQgYmUgb2sKIFNFTEVDVCBWQVJJQUJMRSh2YXIxKSwgVkFSSUFC TEUodmFyMSk7CiAgdmFyMSB8IHZhcjEgCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKaW5kZXggYjgzZjJhNmJiYi4uOGExMjJhZWIxZSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtNTQ4LDEzICs1NDgsMTQgQEAgJCQ7 CiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIFZBUklBQkxFIHZhcjI7CiAKLS0tIENBTEwgc3Rh dGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRv IHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCistLSBDQUxMIHN0YXRl bWVudCBpcyBzdXBwb3J0ZWQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKIAorTEVUIHYgPSAxOwor CiBDUkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9USUNFICcl JywgYXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKIAotLS0gc2hvdWxkIG5vdCBjcmFzaCAo YnV0IGlzIG5vdCBzdXBwb3J0ZWQgeWV0KQorLS0gc2hvdWxkIHRvIHdvcmsKIENBTEwgcCh2KTsK IAogRE8gJCQgQkVHSU4gQ0FMTCBwKHYpOyBFTkQgJCQ7CkBAIC01NjIsMTMgKzU2MywxMiBAQCBE TyAkJCBCRUdJTiBDQUxMIHAodik7IEVORCAkJDsKIERST1AgUFJPQ0VEVVJFIHAoaW50KTsKIERS T1AgVkFSSUFCTEUgdjsKIAotLS0gRVhFQ1VURSBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5 ZXQKLS0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4 cHJlc3Npb24gZXhlY3V0b3IKKy0tIEVYRUNVVEUgc3RhdGVtZW50CiBDUkVBVEUgVkFSSUFCTEUg diBpbnQ7CiBMRVQgdiA9IDIwOwogUFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAkMTsKIAot LS0gc2hvdWxkIGZhaWwKKy0tIHNob3VsZCBiZSBvawogRVhFQ1VURSBwdGVzdCh2KTsKIAogREVB TExPQ0FURSBwdGVzdDsKLS0gCjIuNDguMAoK --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0015-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Disposition: attachment; filename="v20250117-0015-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8l87 RnJvbSBhYWQxNDYxZDM3NTM4YmQ2Mjk3ZTRiNDUyMTc4OGE3ZmVjNmQzN2FkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNTowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTUvMjJdIEltcGxlbWVudGF0aW9uIG9mIE5PVCBOVUxMIGFuZCBJTU1VVEFCTEUgY2xhdXNlcwoK QWxtb3N0IHRyaXZpYWwgcGF0Y2ggLSBwc3FsLCBwZ19kdW1wIHN1cHBvcnQKLS0tCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysrCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIGRvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAzMiArKystCiBzcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDY5ICsrKysrKysrLQogc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDQxICsrKy0tCiBz cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAgMTkgKystCiBz cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgIDM2ICsrKysrCiBz cmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIHNy Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAxMiArLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAgMzYgKystLS0KIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDE0NSArKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8 IDEyMiArKysrKysrKysrKysrKysKIDE2IGZpbGVzIGNoYW5nZWQsIDUxOCBpbnNlcnRpb25zKCsp LCA0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDUxZjUxODJjMTcuLjcxMWNjNDBk MmUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05ODUxLDYgKzk4NTEsMjYgQEAgU0NSQU0tU0hBLTI1NiQ8 cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFj ZWFibGU+JmwKIAogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+dmFybm90bnVsbDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUcnVlIGlmIHRoZSBzZXNzaW9uIHZhcmlhYmxl IGRvZXNuJ3QgYWxsb3cgbnVsbCB2YWx1ZXMuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGZhbHNlLgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJpc2ltbXV0YWJsZTwvc3RydWN0ZmllbGQ+ IDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBUcnVlIGlmIHRoZSB2YXJpYWJsZSBpcyA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFi bGUtaW1tdXRhYmxlIj5pbW11dGFibGU8L2xpbms+IChjYW5ub3QgYmUgbW9kaWZpZWQpLgorICAg ICAgIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGZhbHNlLgorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD52YXJlb3hhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyPC90eXBlPgogICAgICAg IDxzdHJ1Y3RmaWVsZD52YXJ4YWN0ZW5kYWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hhcjwv dHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3BscGdzcWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKaW5kZXggYmZiZmY5 YWI3NC4uZTcwNGUwNWE5OSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCkBAIC02MDQ0LDcgKzYwNDQsOCBAQCAkJCBM QU5HVUFHRSBwbHBnc3FsIFNUUklDVCBJTU1VVEFCTEU7CiAgICAgIFlvdSBjYW4gY29uc2lkZXIg dHJhbnNsYXRpbmcgYW4gT3JhY2xlIHBhY2thZ2UgaW50byBhIHNjaGVtYSBpbgogICAgICA8cHJv ZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LiAgUGFja2FnZSBmdW5jdGlvbnMgYW5k IHByb2NlZHVyZXMKICAgICAgd291bGQgdGhlbiBiZWNvbWUgZnVuY3Rpb25zIGFuZCBwcm9jZWR1 cmVzIGluIHRoYXQgc2NoZW1hLCBhbmQgcGFja2FnZQotICAgICB2YXJpYWJsZXMgY291bGQgYmUg dHJhbnNsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGF0IHNjaGVtYS4KKyAgICAgdmFy aWFibGVzIGNvdWxkIGJlIHRyYW5zbGF0ZWQgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgb3IgaW1tdXRh YmxlIHNlc3Npb24KKyAgICAgdmFyaWFibGVzIGluIHRoYXQgc2NoZW1hLgogICAgICAoc2VlIDx4 cmVmIGxpbmtlbmQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIvPikuCiAgICAgPC9wYXJhPgogICAg PC9zZWN0Mz4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IGU0ZDg4NTFj Y2IuLjNjM2U2ZDU1YjYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAt MjYsOCArMjYsOCBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rp dj4KIDxzeW5vcHNpcz4KLUNSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUg WyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlw ZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQotICAgIFsgREVGQVVMVCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4gXSBbIHsgT04gQ09NTUlU IERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCitDUkVBVEUgWyB7IFRFTVBPUkFS WSB8IFRFTVAgfSBdIFsgSU1NVVRBQkxFIF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgQ09M TEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJs ZT4gXQorICAgIFsgTk9UIE5VTEwgXSBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1JVCBEUk9QIHwg T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lz ZGl2PgogIDxyZWZzZWN0MT4KQEAgLTY1LDYgKzY1LDIyIEBAIENSRUFURSBbIHsgVEVNUE9SQVJZ IHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwCiAKICAgPHZhcmlhYmxlbGlzdD4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXZhcmlhYmxlLWltbXV0YWJsZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+SU1NVVRBQkxFPC9saXRl cmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGFzc2ln bmVkIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBub3QgYmUgY2hhbmdlZC4KKyAg ICAgIE9ubHkgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgZG9lc24ndCBoYXZlIGEgZGVmYXVsdCB2 YWx1ZSwgYSBzaW5nbGUKKyAgICAgIGluaXRpYWxpemF0aW9uIGlzIGFsbG93ZWQgdXNpbmcgdGhl IDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gT25jZQorICAgICAgZG9uZSwgbm8gZnVy dGhlciBjaGFuZ2UgaXMgYWxsb3dlZCB1bnRpbCBlbmQgb2YgdHJhbnNhY3Rpb24KKyAgICAgIGlm IHRoZSBzZXNzaW9uIHZhcmlhYmxlIHdhcyBjcmVhdGVkIHdpdGggY2xhdXNlIDxsaXRlcmFsPk9O IFRSQU5TQUNUSU9OCisgICAgICBFTkQgUkVTRVQ8L2xpdGVyYWw+LCBvciB1bnRpbCByZXNldCBv ZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMgYnkKKyAgICAgIDxjb21tYW5kPkRJU0NBUkQgVkFSSUFC TEVTPC9jb21tYW5kPiwgb3IgdW50aWwgcmVzZXQgb2YgYWxsIHNlc3Npb24KKyAgICAgIG9iamVj dHMgYnkgY29tbWFuZCA8Y29tbWFuZD5ESVNDQVJEIEFMTDwvY29tbWFuZD4uCisgICAgIDwvcGFy YT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50 cnkgIGlkPSJzcWwtY3JlYXRldmFyaWFibGUtaWYtbm90LWV4aXN0cyI+CiAgICAgPHRlcm0+PGxp dGVyYWw+SUYgTk9UIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpAQCAt MTA1LDYgKzEyMSwxOCBAQCBDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxF IFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icAogICAgIDwvbGlzdGl0ZW0+ CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZh cmlhYmxlLW5vdC1udWxsIj4KKyAgICA8dGVybT48bGl0ZXJhbD5OT1QgTlVMTDwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0ZXJhbD5O T1QgTlVMTDwvbGl0ZXJhbD4gY2xhdXNlIGZvcmJpZHMgc2V0dGluZyB0aGUgc2Vzc2lvbgorICAg ICAgdmFyaWFibGUgdG8gYSBudWxsIHZhbHVlLiBBIHNlc3Npb24gdmFyaWFibGUgY3JlYXRlZCBh cyBOT1QgTlVMTAorICAgICAgc2hvdWxkIG5vdCB0byBoYXZlIGEgZGVjbGFyZWQgZGVmYXVsdCB2 YWx1ZSwgYW5kIGlmIHRoZSB2YXJpYWJsZQorICAgICAgaGFzIG5vdCBhc3NpZ25lZCB2YWx1ZSwg dGhlbiB0aGUgcmVhZGluZyBvZiB0aGlzIHZhcmlhYmxlIGZhaWxzLgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5IGlk PSJzcWwtY3JlYXRldmFyaWFibGUtZGVmYXVsdCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+REVGQVVM VCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJt PgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFy aWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCA4ZmJhNGNj NDkzLi4wYjYwOTNhMDBiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Zhcmlh YmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCkBAIC00MCw2ICs0 MCw4IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2 YXJOYW1lLAogCQkJCQkJCQkJIE9pZCB2YXJPd25lciwKIAkJCQkJCQkJCSBPaWQgdmFyQ29sbGF0 aW9uLAogCQkJCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQkJCQkJCSBib29sIG5vdF9u dWxsLAorCQkJCQkJCQkJIGJvb2wgaXNfaW1tdXRhYmxlLAogCQkJCQkJCQkJIE5vZGUgKnZhckRl ZmV4cHIsCiAJCQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24p OwogCkBAIC01NSw2ICs1Nyw4IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1l LAogCQkJCU9pZCB2YXJPd25lciwKIAkJCQlPaWQgdmFyQ29sbGF0aW9uLAogCQkJCWJvb2wgaWZf bm90X2V4aXN0cywKKwkJCQlib29sIG5vdF9udWxsLAorCQkJCWJvb2wgaXNfaW1tdXRhYmxlLAog CQkJCU5vZGUgKnZhckRlZmV4cHIsCiAJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RF bmRBY3Rpb24pCiB7CkBAIC0xMTcsNiArMTIxLDggQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNo YXIgKnZhck5hbWUsCiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwbW9kIC0gMV0gPSBJ bnQzMkdldERhdHVtKHZhclR5cG1vZCk7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyb3du ZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyT3duZXIpOwogCXZhbHVlc1tBbnVtX3BnX3Zh cmlhYmxlX3ZhcmNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJDb2xsYXRpb24p OworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5vdG51bGwgLSAxXSA9IEJvb2xHZXREYXR1 bShub3RfbnVsbCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyaXNpbW11dGFibGUgLSAx XSA9IEJvb2xHZXREYXR1bShpc19pbW11dGFibGUpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcnhhY3RlbmRhY3Rpb24gLSAxXSA9IENoYXJHZXREYXR1bSh2YXJYYWN0RW5kQWN0aW9uKTsK IAogCWlmICh2YXJEZWZleHByKQpAQCAtMjU5LDYgKzI2NSw4IEBAIENyZWF0ZVZhcmlhYmxlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAg dmFyb3duZXIsCiAJCQkJCQkJICAgY29sbGF0aW9uLAogCQkJCQkJCSAgIHN0bXQtPmlmX25vdF9l eGlzdHMsCisJCQkJCQkJICAgc3RtdC0+bm90X251bGwsCisJCQkJCQkJICAgc3RtdC0+aXNfaW1t dXRhYmxlLAogCQkJCQkJCSAgIGNvb2tlZF9kZWZhdWx0LAogCQkJCQkJCSAgIHN0bXQtPlhhY3RF bmRBY3Rpb24pOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXgg ZDI3YjNkNjM3Ni4uNGYyODRjYzNhOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtOTIsNiArOTIsOSBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJ dm9pZAkgICAqZG9tYWluX2NoZWNrX2V4dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5f Y2hlY2tfZXh0cmFfbHhpZDsKIAorCWJvb2wJCW5vdF9udWxsOworCWJvb2wJCWlzX2ltbXV0YWJs ZTsKKwogCWJvb2wJCXJlc2V0X2F0X2VveDsKIAogCS8qCkBAIC0xMTAsNiArMTEzLDkgQEAgdHlw ZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQogCWJvb2wJCWlzX3ZhbGlkOwogCiAJdWludDMyCQlo YXNodmFsdWU7CQkvKiB1c2VkIGZvciBwYWlyaW5nIHNpbnZhbCBtZXNzYWdlICovCisKKwkvKiB0 cnVlLCB3aGVuIHRoZSB2YWx1ZSBpcyBhbHJlYWR5IHNldCwgYW5kIGNhbm5vdCBiZSBjaGFuZ2Vk IG1vcmUgKi8KKwlib29sCQlwcm90ZWN0X3ZhbHVlOwogfSBTVmFyaWFibGVEYXRhOwogCiB0eXBl ZGVmIFNWYXJpYWJsZURhdGEgKlNWYXJpYWJsZTsKQEAgLTU3MSw2ICs1NzcsMjMgQEAgZXZhbF9h c3NpZ25fZGVmZXhwcihTVmFyaWFibGUgc3ZhciwgSGVhcFR1cGxlIHR1cCkKIAogCQkJTWVtb3J5 Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CiAJCX0KKwkJZWxzZQorCQl7CisJCQkvKgorCQkJICog UmFpc2UgYW4gZXJyb3IgaWYgdGhpcyBpcyBhIE5PVCBOVUxMIHZhcmlhYmxlIGJ1dCB0aGUgcmVz dWx0IG9mCisJCQkgKiBERUZBVUxUIGV4cHJlc3Npb24gaXMgTlVMTC4KKwkJCSAqLworCQkJaWYg KHN2YXItPm5vdF9udWxsKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJD T0RFX05VTExfVkFMVUVfTk9UX0FMTE9XRUQpLAorCQkJCQkJIGVycm1zZygibnVsbCB2YWx1ZSBp cyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIiLAor CQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNl KHN2YXItPnZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+ dmFyaWQpKSwKKwkJCQkJCSBlcnJkZXRhaWwoIlRoZSByZXN1bHQgb2YgREVGQVVMVCBleHByZXNz aW9uIGlzIE5VTEwuIikpKTsKKwkJfQorCisJCWlmIChzdmFyLT5pc19pbW11dGFibGUpCisJCQlz dmFyLT5wcm90ZWN0X3ZhbHVlID0gdHJ1ZTsKIAogCQlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUp OwogCX0KQEAgLTYwMSw2ICs2MjQsOSBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJs ZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAKIAlnZXRfdHlwbGVuYnl2YWwoc3Zh ci0+dHlwaWQsICZzdmFyLT50eXBsZW4sICZzdmFyLT50eXBieXZhbCk7CiAKKwlzdmFyLT5ub3Rf bnVsbCA9IHZhcmZvcm0tPnZhcm5vdG51bGw7CisJc3Zhci0+aXNfaW1tdXRhYmxlID0gdmFyZm9y bS0+dmFyaXNpbW11dGFibGU7CisKIAlzdmFyLT5pc19kb21haW4gPSAoZ2V0X3R5cHR5cGUodmFy Zm9ybS0+dmFydHlwZSkgPT0gVFlQVFlQRV9ET01BSU4pOwogCXN2YXItPmRvbWFpbl9jaGVja19l eHRyYSA9IE5VTEw7CiAJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQgPSBJbnZhbGlkTG9j YWxUcmFuc2FjdGlvbklkOwpAQCAtNjMwLDkgKzY1NiwzMSBAQCBzZXR1cF9zZXNzaW9uX3Zhcmlh YmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAJc3Zhci0+aGFz aHZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxFT0lELAogCQkJCQkJCQkJCQlP YmplY3RJZEdldERhdHVtKHZhcmlkKSk7CiAKLQlpZiAoIWlzX3dyaXRlKQorCXN2YXItPnByb3Rl Y3RfdmFsdWUgPSBmYWxzZTsKKworCS8qCisJICogV2hlbiB0aGUgdmFyaWFibGUgaXMgbWFya2Vk IGFzIElNTVVUQUJMRSwgd2UgcHJlZmVyIHRvIGV2YWx1YXRlCisJICogcG9zc2libGUgREVGQVVM VCBiZWZvcmUgd3JpdGUgb3AuIEluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIHByb3RlY3QKKwkgKiBk ZWZhdWx0IHZhbHVlIGFnYWluc3QgYW55IG92ZXJ3cml0ZS4KKwkgKi8KKwlpZiAoIWlzX3dyaXRl IHx8CisJCXN2YXItPmlzX2ltbXV0YWJsZSkKKwl7CiAJCWV2YWxfYXNzaWduX2RlZmV4cHIoc3Zh ciwgdHVwKTsKIAorCQkvKgorCQkgKiBSYWlzZSBhbiBlcnJvciBpZiB0aGlzIGlzIGEgTk9UIE5V TEwgdmFyaWFibGUgd2l0aG91dCBkZWZhdWx0CisJCSAqIGV4cHJlc3Npb24uCisJCSAqLworCQlp ZiAoc3Zhci0+aXNudWxsICYmIHN2YXItPm5vdF9udWxsKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKKwkJCQkJIGVycm1z ZygibnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIiLAorCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHZhcmlkKSksCisJCQkJCSBlcnJkZXRhaWwoIlRoZSBzZXNzaW9uIHZhcmlhYmxlIHdhcyBub3Qg aW5pdGlhbGl6ZWQgeWV0LiIpKSk7CisJfQorCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CiB9CiAK QEAgLTY1Miw2ICs3MDAsMjEgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIs IERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAlBc3NlcnQoc3Zhcik7CiAJQXNzZXJ0KCFpc251 bGwgfHwgdmFsdWUgPT0gKERhdHVtKSAwKTsKIAorCWlmIChzdmFyLT5wcm90ZWN0X3ZhbHVlKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRVJST1JfSU5fQVNTSUdOTUVO VCksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgaXMgZGVjbGFyZWQg SU1NVVRBQkxFIiwKKwkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWUoc3Zhci0+dmFyaWQpKSkpOworCisJLyogZG9uJ3QgYWxsb3cgYXNzaWdubWVudCBvZiBudWxs IHRvIE5PVCBOVUxMIHZhcmlhYmxlICovCisJaWYgKGlzbnVsbCAmJiBzdmFyLT5ub3RfbnVsbCkK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX05VTExfVkFMVUVfTk9UX0FM TE9XRUQpLAorCQkJCSBlcnJtc2coIm51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBO VUxMIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCWdldF9uYW1lc3BhY2VfbmFt ZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJCQkJCWdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFyaWQpKSkpOworCiAJLyoKIAkgKiBVc2Ug dHlwYnl2YWwsIHR5cGJ5bGVuIGZyb20gc2Vzc2lvbiB2YXJpYWJsZSBvbmx5IHdoZW4gdGhleSBh cmUKIAkgKiB0cnVzdHdvcnRoeSAodGhlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdhcyBub3QgYWNj ZXB0ZWQgZm9yIHRoaXMKQEAgLTY5Miw2ICs3NTUsMTAgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUo U1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAogCXN2YXItPnZhbHVl ID0gbmV3dmFsOwogCXN2YXItPmlzbnVsbCA9IGlzbnVsbDsKKworCS8qIGRvbid0IGFsbG93IG1v cmUgY2hhbmdlcyBvZiB2YWx1ZSB3aGVuIHZhcmlhYmxlIGlzIElNTVVUQUJMRSAqLworCWlmIChz dmFyLT5pc19pbW11dGFibGUpCisJCXN2YXItPnByb3RlY3RfdmFsdWUgPSB0cnVlOwogfQogCiAv KgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKaW5kZXggZGJkNmJiMTMwYS4uOWVlMDAyYzI5NCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC02NzUsNiArNjc1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQlqc29uX29iamVj dF9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVzZV9vcHQKIAkJCQlqc29uX2FycmF5X2NvbnN0cnVjdG9y X251bGxfY2xhdXNlX29wdAogCisldHlwZSA8Ym9vbGVhbj4JCU9wdE5vdE51bGwgT3B0SW1tdXRh YmxlCiAKIC8qCiAgKiBOb24ta2V5d29yZCB0b2tlbiB0eXBlcy4gIFRoZXNlIGFyZSBoYXJkLXdp cmVkIGludG8gdGhlICJmbGV4IiBsZXhlci4KQEAgLTUyNTgsMjcgKzUyNTksMzEgQEAgY3JlYXRl X2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogQ3JlYXRlU2Vz c2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBv cHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25WYXJEZWZFeHByIFhh Y3RFbmRBY3Rpb25PcHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIE9wdEltbXV0YWJsZSBWQVJJQUJM RSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5v dE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJ CQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3Rt dCk7Ci0JCQkJCSQ0LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT52YXJpYWJsZSA9ICQ0 OwotCQkJCQluLT50eXBlTmFtZSA9ICQ2OwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVD bGF1c2UgKikgJDc7Ci0JCQkJCW4tPmRlZmV4cHIgPSAkODsKLQkJCQkJbi0+WGFjdEVuZEFjdGlv biA9ICQ5OworCQkJCQkkNS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1tdXRh YmxlID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDU7CisJCQkJCW4tPnR5cGVOYW1lID0gJDc7 CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkODsKKwkJCQkJbi0+bm90 X251bGwgPSAkOTsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxMDsKKwkJCQkJbi0+WGFjdEVuZEFjdGlv biA9ICQxMTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2Rl ICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBJRl9QIE5PVCBFWElT VFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHRT ZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBPcHRUZW1w IE9wdEltbXV0YWJsZSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0 X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJE ZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJT dG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJCQkkNy0+cmVscGVy c2lzdGVuY2UgPSAkMjsKLQkJCQkJbi0+dmFyaWFibGUgPSAkNzsKLQkJCQkJbi0+dHlwZU5hbWUg PSAkOTsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMDsKLQkJCQkJ bi0+ZGVmZXhwciA9ICQxMTsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsKKwkJCQkJJDgt PnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQzOworCQkJCQlu LT52YXJpYWJsZSA9ICQ4OworCQkJCQluLT50eXBlTmFtZSA9ICQxMDsKKwkJCQkJbi0+Y29sbENs YXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMTsKKwkJCQkJbi0+bm90X251bGwgPSAkMTI7CisJ CQkJCW4tPmRlZmV4cHIgPSAkMTM7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTQ7CiAJCQkJ CW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQpA QCAtNTI5OCw2ICs1MzAzLDE0IEBAIFhhY3RFbmRBY3Rpb25PcHRpb246ICBPTiBDT01NSVQgRFJP UAkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9EUk9QOyB9CiAJCTsKIAogCitPcHROb3ROdWxs OiBOT1QgTlVMTF9QCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBUWSAqLwkJCQkJ CQl7ICQkID0gZmFsc2U7IH0KKwkJOworCitPcHRJbW11dGFibGU6IElNTVVUQUJMRQkJCQkJCQkJ eyAkJCA9IHRydWU7IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZhbHNlOyB9CisJ CTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUg VVBEQVRFIFsgVE8gdmVyc2lvbiBdCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBhNmMzM2QyZWRlLi5iNGM2MWRh MTg4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMKQEAgLTU0NDAsNiArNTQ0MCw4IEBAIGdldFZhcmlhYmxlcyhBcmNo aXZlICpmb3V0KQogCWludAkJCWlfdmFyeGFjdGVuZGFjdGlvbjsKIAlpbnQJCQlpX3Zhcm93bmVy OwogCWludAkJCWlfdmFyY29sbGF0aW9uOworCWludAkJCWlfdmFybm90bnVsbDsKKwlpbnQJCQlp X3ZhcmlzaW1tdXRhYmxlOwogCWludAkJCWlfdmFyYWNsOwogCWludAkJCWlfYWNsZGVmYXVsdDsK IAlpbnQJCQlpLApAQCAtNTQ2Miw2ICs1NDY0LDggQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZv dXQpCiAJCQkJCSAgIiAgICAgICAgICAgIFRIRU4gdi52YXJjb2xsYXRpb25cbiIKIAkJCQkJICAi ICAgICAgICAgICAgRUxTRSAwXG4iCiAJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFyY29sbGF0aW9u LFxuIgorCQkJCQkgICIgICAgICAgdi52YXJub3RudWxsLFxuIgorCQkJCQkgICIgICAgICAgdi52 YXJpc2ltbXV0YWJsZSxcbiIKIAkJCQkJICAiICAgICAgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIo di52YXJkZWZleHByLDApIGFzIHZhcmRlZmV4cHIsXG4iCiAJCQkJCSAgIiAgICAgICB2LnZhcm93 bmVyLCB2LnZhcmFjbCxcbiIKIAkJCQkJICAiICAgICAgIGFjbGRlZmF1bHQoJ1YnLCB2LnZhcm93 bmVyKSBBUyBhY2xkZWZhdWx0XG4iCkBAIC01NDgyLDYgKzU0ODYsOCBAQCBnZXRWYXJpYWJsZXMo QXJjaGl2ZSAqZm91dCkKIAlpX3ZhcmRlZmV4cHIgPSBQUWZudW1iZXIocmVzLCAidmFyZGVmZXhw ciIpOwogCWlfdmFyeGFjdGVuZGFjdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJ4YWN0ZW5kYWN0 aW9uIik7CiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9uIik7 CisJaV92YXJub3RudWxsID0gUFFmbnVtYmVyKHJlcywgInZhcm5vdG51bGwiKTsKKwlpX3Zhcmlz aW1tdXRhYmxlID0gUFFmbnVtYmVyKHJlcywgInZhcmlzaW1tdXRhYmxlIik7CiAKIAlpX3Zhcm93 bmVyID0gUFFmbnVtYmVyKHJlcywgInZhcm93bmVyIik7CiAJaV92YXJhY2wgPSBQUWZudW1iZXIo cmVzLCAidmFyYWNsIik7CkBAIC01NTA4LDYgKzU1MTQsOCBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2 ZSAqZm91dCkKIAkJCXBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ4YWN0ZW5kYWN0 aW9uKSk7CiAKIAkJdmFyaW5mb1tpXS52YXJjb2xsYXRpb24gPSBhdG9vaWQoUFFnZXR2YWx1ZShy ZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CisJCXZhcmluZm9baV0udmFybm90bnVsbCA9ICooUFFn ZXR2YWx1ZShyZXMsIGksIGlfdmFybm90bnVsbCkpID09ICd0JzsKKwkJdmFyaW5mb1tpXS52YXJp c2ltbXV0YWJsZSA9ICooUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyaXNpbW11dGFibGUpKSA9PSAn dCc7CiAKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywg aSwgaV92YXJhY2wpKTsKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfYWNsZGVmYXVsdCkpOwpAQCAtNTU1NCw3ICs1NTYyLDkgQEAg ZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykK IAljb25zdCBjaGFyICp2YXJ0eXBuYW1lOwogCWNvbnN0IGNoYXIgKnZhcmRlZmV4cHI7CiAJY29u c3QgY2hhciAqdmFyeGFjdGVuZGFjdGlvbjsKKwljb25zdCBjaGFyICp2YXJpc2ltbXV0YWJsZTsK IAlPaWQJCQl2YXJjb2xsYXRpb247CisJYm9vbAkJdmFybm90bnVsbDsKIAogCS8qIHNraXAgaWYg bm90IHRvIGJlIGR1bXBlZCAqLwogCWlmICghdmFyaW5mby0+ZG9iai5kdW1wIHx8ICFkb3B0LT5k dW1wU2NoZW1hKQpAQCAtNTU2OCwxMiArNTU3OCwxNCBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAq Zm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCXZhcmRlZmV4cHIgPSB2YXJpbmZv LT52YXJkZWZleHByOwogCXZhcnhhY3RlbmRhY3Rpb24gPSB2YXJpbmZvLT52YXJ4YWN0ZW5kYWN0 aW9uOwogCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKKwl2YXJub3RudWxs ID0gdmFyaW5mby0+dmFybm90bnVsbDsKKwl2YXJpc2ltbXV0YWJsZSA9IHZhcmluZm8tPnZhcmlz aW1tdXRhYmxlID8gIklNTVVUQUJMRSAiIDogIiI7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxx LCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCiAJCQkJCSAgcXVhbHZhcm5hbWUpOwogCi0JYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgVkFSSUFCTEUgJXMgQVMgJXMiLAotCQkJCQkgIHF1 YWx2YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFU RSAlc1ZBUklBQkxFICVzIEFTICVzIiwKKwkJCQkJICB2YXJpc2ltbXV0YWJsZSwgcXVhbHZhcm5h bWUsIHZhcnR5cG5hbWUpOwogCiAJaWYgKE9pZElzVmFsaWQodmFyY29sbGF0aW9uKSkKIAl7CkBA IC01NTg1LDYgKzU1OTcsOSBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFy aWFibGVJbmZvICp2YXJpbmZvKQogCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkp OwogCX0KIAorCWlmICh2YXJub3RudWxsKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBO T1QgTlVMTCIpOworCiAJaWYgKHZhcmRlZmV4cHIpCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5 LCAiIERFRkFVTFQgJXMiLAogCQkJCQkJICB2YXJkZWZleHByKTsKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDI2 MTM3MDBlMTkuLjA1NjI0OTdmMzQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzI1LDYgKzcyNSw4IEBAIHR5 cGVkZWYgc3RydWN0IF9WYXJpYWJsZUluZm8KIAljaGFyCSAgICppbml0cnZhcmFjbDsKIAlPaWQJ CQl2YXJjb2xsYXRpb247CiAJY29uc3QgY2hhciAqcm9sbmFtZTsJCS8qIG5hbWUgb2Ygb3duZXIs IG9yIGVtcHR5IHN0cmluZyAqLworCWJvb2wJCXZhcm5vdG51bGw7CisJYm9vbAkJdmFyaXNpbW11 dGFibGU7CiB9IFZhcmlhYmxlSW5mbzsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5k ZXggZmNmNjg5NjZiMC4uMWJiYTY4ZTZhZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAg LTQwNDEsNiArNDA0MSw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUg SU1NVVRBQkxFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+ IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9v cmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxF IGR1bXBfdGVzdC52YXJpYWJsZTUgQVMgaW50ZWdlcicsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlc UUNSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlNSBBUyBpbnRlZ2Vy O1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVt YV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4gewor CQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1l bnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCisJJ0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdGVz dF92YXJpYWJsZSBOT1QgTlVMTCBERUZBVUxUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAor CQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIg PT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSBkdW1w X3Rlc3QudmFyaWFibGU3IEFTIGludGVnZXIgTk9UIE5VTEwgREVGQVVMVCAxMCcsCisJCXJlZ2V4 cCA9PiBxci9eCisJCQlcUUNSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlh YmxlNyBBUyBpbnRlZ2VyIE5PVCBOVUxMIERFRkFVTFQgMTA7XEUveG0sCisJCWxpa2UgPT4gewor CQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3By ZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9z Y2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0s CisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwK IAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVtcF90ZXN0LnRlc3RfdmlldwpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpp bmRleCAyNDZlMGY1OTE2Li5jZTk3YWUwYWQzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNTI3MSw3ICs1MjcxLDcg QEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJUFFF eHBCdWZmZXJEYXRhIGJ1ZjsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9w dCA9IHBzZXQucG9wdDsKLQlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0g e2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQogCXsKQEAgLTUy OTIsNiArNTI5Miw4IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2 ZXJib3NlKQogCQkJCQkgICIgIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdf Y29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSBidFxuIgogCQkJCQkgICIgICBXSEVSRSBj Lm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5vaWQgPSB2LnZhcnR5cGUgQU5EIHYudmFyY29s bGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIHBnX2Nh dGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAi ICBOT1Qgdi52YXJub3RudWxsIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBOT1Qgdi52YXJpc2lt bXV0YWJsZSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2 LnZhcmRlZmV4cHIsIDApIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVu ZGFjdGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4i CkBAIC01MzAyLDYgKzUzMDQsOCBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4s IGJvb2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwKIAkJCQkJICBnZXR0 ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKKwkJ CQkJICBnZXR0ZXh0X25vb3AoIk51bGxhYmxlIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJNdXRh YmxlIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZWZhdWx0IiksCiAJCQkJCSAgZ2V0dGV4dF9u b29wKCJUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24iKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpp bmRleCAyNDlmNjE4NzhkLi5kNjgzOGFlM2MxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0x MjczLDYgKzEyNzMsOCBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9j cmVhdGVbXSA9IHsKIAl7IkZPUkVJR04gVEFCTEUiLCBOVUxMLCBOVUxMLCBOVUxMfSwKIAl7IkZV TkNUSU9OIiwgTlVMTCwgTlVMTCwgUXVlcnlfZm9yX2xpc3Rfb2ZfZnVuY3Rpb25zfSwKIAl7IkdS T1VQIiwgUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXN9LAorCXsiSU1NVVRBQkxFIFZBUklBQkxFIiwg TlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fRFJPUCB8IFRISU5HX05PX0FMVEVSfSwg LyogZm9yIENSRUFURSBJTU1VVEFCTEUKKwkJCQkJCQkJCQkJCQkJCQkJCQkJCSAqIFZBUklBQkxF IC4uLiAqLwogCXsiSU5ERVgiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfaW5kZXhl c30sCiAJeyJMQU5HVUFHRSIsIFF1ZXJ5X2Zvcl9saXN0X29mX2xhbmd1YWdlc30sCiAJeyJMQVJH RSBPQkpFQ1QiLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBUSElOR19OT19DUkVBVEUgfCBUSElO R19OT19EUk9QfSwKQEAgLTM2MDgsNyArMzYxMCw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGlu dCBwYXR0ZXJuX2lkLAogLyogQ1JFQVRFIFRBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVB VEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFRF TVAvVEVNUE9SQVJZIiB3aXRoIHRoZSBwb3NzaWJsZSB0ZW1wIG9iamVjdHMgKi8KIAllbHNlIGlm IChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlRFTVB8VEVNUE9SQVJZIikpCi0JCUNPTVBMRVRFX1dJ VEgoIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxFIiwgIlZJRVciKTsKKwkJQ09NUExFVEVf V0lUSCgiSU1NVVRBQkxFIFZBUklBQkxFIiwgIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxF IiwKKwkJCQkJICAiVklFVyIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUgVU5MT0dHRUQiIHdpdGgg VEFCTEUgb3IgU0VRVUVOQ0UgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlVO TE9HR0VEIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIiwgIlNFUVVFTkNFIik7CkBAIC0zOTYw LDcgKzM5NjMsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIC8qIENS RUFURSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNl IFRhaWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRo IEFTICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNo QW55KSB8fAotCQkJIFRhaWxNYXRjaGVzKCJURU1QfFRFTVBPUkFSWSIsICJWQVJJQUJMRSIsIE1h dGNoQW55KSkKKwkJCSBUYWlsTWF0Y2hlcygiVEVNUHxURU1QT1JBUlkiLCAiVkFSSUFCTEUiLCBN YXRjaEFueSkgfHwKKwkJCSBUYWlsTWF0Y2hlcygiSU1NVVRBQkxFIiwgIlZBUklBQkxFIiwgTWF0 Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJBUyIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJW QVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKIAkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxF IDxuYW1lPiB3aXRoIEFTIHR5cGVzICovCkBAIC00NjIwLDYgKzQ2MjQsMTAgQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkZST00i LCAiU0VSVkVSIiwgTWF0Y2hBbnksICJJTlRPIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRI KCJPUFRJT05TICgiKTsKIAorLyogSU1NVVRBQkxFIC0tIGNhbiBiZSBleHBlbmQgdG8gSU1NVVRB QkxFIFZBUklBQkxFICovCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJJTU1VVEFC TEUiKSkKKwkJQ09NUExFVEVfV0lUSCgiVkFSSUFCTEUiKTsKKwogLyogSU5TRVJUIC0tLSBjYW4g YmUgaW5zaWRlIEVYUExBSU4sIFJVTEUsIGV0YyAqLwogCS8qIENvbXBsZXRlIE5PVCBNQVRDSEVE IFRIRU4gSU5TRVJUICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIk5PVCIsICJNQVRDSEVEIiwg IlRIRU4iLCAiSU5TRVJUIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zh cmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggMDlkZDQ0 YTQ0ZS4uY2YyMWUwNDI2YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJp YWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNTYsNiAr NTYsMTIgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkv KiB0eXBtb2QgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLwogCWludDMyCQl2YXJ0eXBtb2QgQktJX0RF RkFVTFQoLTEpOwogCisJLyogZG9uJ3QgYWxsb3cgTlVMTCAqLworCWJvb2wJCXZhcm5vdG51bGwg QktJX0RFRkFVTFQoZik7CisKKwkvKiBkb24ndCBhbGxvdyBjaGFuZ2VzICovCisJYm9vbAkJdmFy aXNpbW11dGFibGUgQktJX0RFRkFVTFQoZik7CisKIAkvKiBhY3Rpb24gb24gdHJhbnNhY3Rpb24g ZW5kICovCiAJY2hhcgkJdmFyeGFjdGVuZGFjdGlvbiBCS0lfREVGQVVMVChuKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCmluZGV4IGUzNTkyNjYzMzQuLmRmYjQ3N2I5NWYgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKQEAgLTM1MzQsNiArMzUzNCw4IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVNlc3Np b25WYXJTdG10CiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0aGUgdHlwZSBvZiB2YXJpYWJs ZSAqLwogCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CiAJYm9vbAkJaWZfbm90X2V4aXN0czsJ LyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLworCWJvb2wJCW5vdF9udWxsOwkJ LyogZGlzYWxsb3cgbnVsbHMgKi8KKwlib29sCQlpc19pbW11dGFibGU7CS8qIGRvbid0IGFsbG93 IGNoYW5nZXMgKi8KIAlOb2RlCSAgICpkZWZleHByOwkJLyogZGVmYXVsdCBleHByZXNzaW9uICov CiAJY2hhcgkJWGFjdEVuZEFjdGlvbjsJLyogb24gdHJhbnNhY3Rpb24gZW5kIGFjdGlvbiAqLwog fSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CmluZGV4 IDkxODA5NTBlODQuLjFmYjNhYzMxNDUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApA QCAtNjAyMCwyMCArNjAyMCwyMCBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVy OwogU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwg ICAgICAgICBPd25lciAgICAgICAgICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rp b24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAg ICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24g fCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8 IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRp b24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JBTlQg U0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJMRSB2 YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAg ICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgRGVmYXVsdCB8IFRyYW5z YWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAg ICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZh cjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXIgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJs ZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgotICAg ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVn cmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1l IHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAg IHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAg RGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8 IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVy K3wgc29tZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAg fCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJs ZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFC TEUgdmFyMTsKQEAgLTY1MDEsOSArNjUwMSw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykK IAogXGRWICJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBP d25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8 IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24g CistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQog CiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY2 NzYsOSArNjY3Niw5IEBAIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQg bmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhCiBcZHkgIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRv byBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJp Z2dlciIKIFxkViAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8 IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBh Y3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUg fCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFu c2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFz ZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY4MTUsOSArNjgxNSw5IEBA IExpc3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxhdGVzCiAoMCByb3dzKQogCiBcZFYgcmVncmVzc2lv bi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBD b2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0t LS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRp b24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFs IGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0 ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCBmYTk2MzA0MDAyLi4wOWJiNGIyZmIyIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAt MjQ1MiwzICsyNDUyLDE0OCBAQCBTRUxFQ1QgdmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxOwog RFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CistLSB0ZXN0IE5PVCBOVUxMCistLSBzaG91bGQg YmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTDsKKy0tIHNob3VsZCB0 byBmYWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBm b3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiCitERVRBSUw6ICBUaGUg c2Vzc2lvbiB2YXJpYWJsZSB3YXMgbm90IGluaXRpYWxpemVkIHlldC4KKy0tc2hvdWxkIGJlIG9r CitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygx IHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCAwOworLS1zaG91bGQgYmUgb2sKK1NF TEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBi ZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEw CisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2 YXIxID0gTlVMTDsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5V TEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiCitEUk9QIFZBUklBQkxFIHZhcjE7Cist LSB0ZXN0IE5PVCBOVUxMCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkK K1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4gTlVMTDsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVM VCB2YXJ0ZXN0X2Z4KCk7CistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIHZhcjE7CitFUlJPUjog IG51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Npb24gdmFyaWFibGUg InB1YmxpYy52YXIxIgorREVUQUlMOiAgVGhlIHJlc3VsdCBvZiBERUZBVUxUIGV4cHJlc3Npb24g aXMgTlVMTC4KK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9 IDEwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworQ1JF QVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAor QkVHSU4KKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworRElTQ0FSRCBW QVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgICAwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gdmFy dGVzdF9meCgpOworLS0gdGVzdCBJTU1VVEJMRQorQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2 YXIxIEFTIGludDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0t LQorICAgICAKKygxIHJvdykKKworLS0gZmlyc3Qgd3JpdGUgc2hvdWxkIG9rCistLSBzaG91bGQg YmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VS Uk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJM RQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7Cist LSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAi cHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRElTQ0FSRCBWQVJJQUJMRVM7Cist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAgCisoMSBy b3cpCisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBOVUxMOworLS0gc2hvdWxkIGZhaWwK K0xFVCB2YXIxID0gMjA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBp cyBkZWNsYXJlZCBJTU1VVEFCTEUKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBJTU1VVEFC TEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgREVGQVVMVCAxMDsKKy0tIGRvbid0IGFsbG93IGNoYW5n ZSB3aGVuIHZhcmlhYmxlIGhhcyBERUZBVUxUIHZhbHVlCistLSBzaG91bGQgdG8gZmFpbAorTEVU IHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRl Y2xhcmVkIElNTVVUQUJMRQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK1NF TEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKKy0tIHNob3VsZCBm YWlsCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFy MSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBzaG91bGQg YmUgb2sKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBJTlQgTk9UIE5VTEwgREVG QVVMVCAxMDsKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDEwOworRVJST1I6ICBzZXNz aW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitMRVQgdmFy MSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFy ZWQgSU1NVVRBQkxFCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0t LS0KKyAgIDEwCisoMSByb3cpCisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDMwOwor RVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRB QkxFCitEUk9QIFZBUklBQkxFIHZhcjE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKaW5kZXggZjY2OTViOGQ3OS4uYjgzZjJhNmJiYiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMTY4NiwzICsxNjg2LDEyNSBAQCBT RUxFQ1QgdmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxOwogRFJPUCBGVU5DVElPTiB2YXJ0ZXN0 X2Z4KCk7CisKKy0tIHRlc3QgTk9UIE5VTEwKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgaW50IE5PVCBOVUxMOworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXIx OworCistLXNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIxOworCitEUk9Q IFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgaW50IE5PVCBOVUxMIERFRkFVTFQgMDsKKworLS1zaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIx OworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CitTRUxFQ1QgdmFyMTsKKworRElT Q0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IE5VTEw7CisK K0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gdGVzdCBOT1QgTlVMTAorQ1JFQVRFIE9SIFJFUExB Q0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkVU VVJOIE5VTEw7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCB2YXJ0ZXN0X2Z4KCk7CisKKy0tIHNob3VsZCB0 byBmYWlsCitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBi ZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIxOworCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4g MDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9Q IEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKKworLS0gdGVzdCBJTU1VVEJMRQorQ1JFQVRFIElNTVVU QUJMRSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFy MTsKKy0tIGZpcnN0IHdyaXRlIHNob3VsZCBvaworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9 IDEwOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RJU0NBUkQgVkFSSUFCTEVT OworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVU IHZhcjEgPSAyMDsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIHZhcjE7CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gTlVMTDsKKy0tIHNob3VsZCBm YWlsCitMRVQgdmFyMSA9IDIwOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKK0NSRUFURSBJTU1V VEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgREVGQVVMVCAxMDsKKworLS0gZG9uJ3QgYWxsb3cg Y2hhbmdlIHdoZW4gdmFyaWFibGUgaGFzIERFRkFVTFQgdmFsdWUKKy0tIHNob3VsZCB0byBmYWls CitMRVQgdmFyMSA9IDIwOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9r CitTRUxFQ1QgdmFyMTsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworCitEUk9QIFZB UklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJM RSB2YXIxIEFTIElOVCBOT1QgTlVMTCBERUZBVUxUIDEwOworCistLSBzaG91bGQgdG8gZmFpbAor TEVUIHZhcjEgPSAxMDsKK0xFVCB2YXIxID0gMjA7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IHZhcjE7CisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDMwOworCitEUk9QIFZBUklB QkxFIHZhcjE7Ci0tIAoyLjQ4LjAKCg== --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0014-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Disposition: attachment; filename="v20250117-0014-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8le8 RnJvbSA2MjZhMTYyNGUwYWEyM2FhNGE4MmY5ZmI2YzA4YzM5NzIzOTg1ZWZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMzo1MyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTQvMjJdIEltcGxlbWVudGF0aW9uIG9mIERFRkFVTFQgY2xhdXNlIC0gZGVmYXVsdCBleHByZXNz aW9ucwogZm9yIHNlc3Npb24gdmFyaWFibGVzCgpXaGVuIHRoZSBldmFsdWF0aW9uIG9mIGRlZmF1 bHQgZXhwcmVzc2lvbiBmYWlscywgd2UgcmVtb3ZlIHJlbGF0ZWQgZW50cnkgZnJvbSBzZXNzaW9u dmFycwpoYXNoIHRhYmxlLiBUaGVuIHNlc3Npb252YXJzIGNhbiBjb250YWluIG9ubHkgc3VjZXNz ZnVsbHkgaW5pdGlhbGl6ZWQgdmFsdWVzLiBUaGVuIHdlIGRvbid0Cm5lZWQgc3BlY2lhbCBmbGFn IGZvciBiYWRseSBpbml0aWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4KLS0tCiBkb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgOCArKwogZG9jL3NyYy9zZ21s L2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKystLQogZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgMjEgKysrLS0KIGRvYy9zcmMvc2dt bC9yZWYvZGlzY2FyZC5zZ21sICAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAyNyArKysrKysKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDg3ICsrKysrKysrKysrKysrKysr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDE1ICsr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAyICsK IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICA0ICsKIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKwogc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMzYgKysrKysrKysKIHNyYy9i aW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgMyArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAzNiArKysrLS0tLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNjMgKysrKysrKysrKysrKysKIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDQ4ICsrKysrKysr KysKIDIwIGZpbGVzIGNoYW5nZWQsIDM1MCBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCmluZGV4IDdkMWNiYmE0ZDkuLjUxZjUxODJjMTcgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CkBAIC05ODgzLDYgKzk4ODMsMTQgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0 ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwv cGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+dmFyZGVmZXhwcjwvc3RydWN0ZmllbGQ+IDx0eXBlPnBnX25v ZGVfdHJlZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBp bnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmFyaWFibGUgZGVmYXVsdCB2YWx1ZQorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91 cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9z cmMvc2dtbC9kZGwuc2dtbAppbmRleCAxNDMzZjAzM2Q3Li5iNjBkOTc0OTZjIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01 MzgwLDE0ICs1MzgwLDE0IEBAIFNFTEVDVCBjdXJyZW50X3VzZXJfaWQ7CiAKICAgIDxwYXJhPgog ICAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1cnJl bnQgc2Vzc2lvbi4gUmV0cmlldmluZwotICAgIGEgdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIGEg PGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4sIHVubGVzcyBpdHMgdmFsdWUgaGFzCi0gICAgYmVlbiBz ZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB1c2luZyB0aGUKLSAg ICA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUg bm90IHRyYW5zYWN0aW9uYWw6Ci0gICAgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUgdmFsdWUgb2Yg YSBzZXNzaW9uIHZhcmlhYmxlIGluIGEgdHJhbnNhY3Rpb24gd29uJ3QKLSAgICBiZSB1bmRvbmUg aWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0IGxpa2UgdmFyaWFibGVzIGlu Ci0gICAgcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNlbHZl cyBjYW4gYmUgcGVyc2lzdGVudAotICAgIG9yIHRlbXBvcmFyeSwgYnV0IHRoZWlyIHZhbHVlcyBh cmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlCi0gICAgY29udGVudCBv ZiB0ZW1wb3JhcnkgdGFibGVzKS4KKyAgICBhIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBhIDxs aXRlcmFsPk5VTEw8L2xpdGVyYWw+IG9yIGEgZGVmYXVsdCB2YWx1ZSwKKyAgICB1bmxlc3MgaXRz IHZhbHVlIGhhcyAgYmVlbiBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vz c2lvbgorICAgIHVzaW5nIHRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNz aW9uIHZhcmlhYmxlcyBhcmUgbm90CisgICAgdHJhbnNhY3Rpb25hbDogYW55IGNoYW5nZXMgbWFk ZSB0byB0aGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGluCisgICAgYSB0cmFuc2FjdGlv biB3b24ndCBiZSB1bmRvbmUgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0 IGxpa2UKKyAgICB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2 YXJpYWJsZXMgdGhlbXNlbHZlcyBjYW4gYmUKKyAgICBwZXJzaXN0ZW50IG9yIHRlbXBvcmFyeSwg YnV0IHRoZWlyIHZhbHVlcyBhcmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQKKyAgICAo bGlrZSB0aGUgY29udGVudCBvZiB0ZW1wb3JhcnkgdGFibGVzKS4KICAgIDwvcGFyYT4KIAogICAg PHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCBjODlhNjVmYjU1 Li5lNGQ4ODUxY2NiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJs ZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI3 LDcgKzI3LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2Pgog PHN5bm9wc2lzPgogQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElG IE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9y ZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xs YXRpb248L3JlcGxhY2VhYmxlPiBdCi0gICAgWyB7IE9OIENPTU1JVCBEUk9QIHwgT04gVFJBTlNB Q1RJT04gRU5EIFJFU0VUIH0gXQorICAgIFsgREVGQVVMVCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4gXSBbIHsgT04gQ09NTUlUIERST1Ag fCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3Bz aXNkaXY+CiAgPHJlZnNlY3QxPgpAQCAtNDEsMTAgKzQxLDEwIEBAIENSRUFURSBbIHsgVEVNUE9S QVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwCiAKICAgPHBhcmE+CiAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlz IGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uICBSZXRyaWV2aW5nCi0gICBhIHNlc3Npb24g dmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIE5VTEwsIHVubGVzcyBpdHMgdmFsdWUgaXMgc2V0IHRv Ci0gICBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHdpdGggYSA8Y29tbWFu ZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuCi0gICBUaGUgY29udGVudCBvZiBhIHNlc3Npb24gdmFy aWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuIFRoaXMgaXMgdGhlIHNhbWUgYXMKLSAgIHJlZ3Vs YXIgdmFyaWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgorICAgYSBzZXNzaW9uIHZhcmlh YmxlJ3MgdmFsdWUgcmV0dXJucyBOVUxMIG9yIGEgZGVmYXVsdCB2YWx1ZSwgdW5sZXNzIGl0cyB2 YWx1ZQorICAgaXMgc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24g d2l0aCBhIDxjb21tYW5kPkxFVDwvY29tbWFuZD4KKyAgIGNvbW1hbmQuICBUaGUgY29udGVudCBv ZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuICBUaGlzIGlzIHRoZQor ICAgc2FtZSBhcyByZWd1bGFyIHZhcmlhYmxlcyBpbiBwcm9jZWR1cmFsIGxhbmd1YWdlcy4KICAg PC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtMTA1LDYgKzEwNSwxNyBAQCBDUkVBVEUgWyB7IFRFTVBP UkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icAogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxp c3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWRlZmF1bHQiPgorICAgIDx0ZXJtPjxsaXRl cmFsPkRFRkFVTFQgPHJlcGxhY2VhYmxlPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+PC9saXRl cmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIDxsaXRl cmFsPkRFRkFVTFQ8L2xpdGVyYWw+IGNsYXVzZSBjYW4gYmUgdXNlZCB0byBhc3NpZ24gYSBkZWZh dWx0CisgICAgICB2YWx1ZSB0byBhIHNlc3Npb24gdmFyaWFibGUuIFRoaXMgZXhwcmVzc2lvbiBp cyBldmFsdWF0ZWQgd2hlbiB0aGUgc2Vzc2lvbgorICAgICAgdmFyaWFibGUgaXMgZmlyc3QgYWNj ZXNzZWQgZm9yIHJlYWRpbmcgYW5kIGhhZCBub3QgeWV0IGJlZW4gYXNzaWduZWQgYSB2YWx1ZS4K KyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAg PHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLW9uLWNvbW1pdC1kcm9wIj4KICAg ICA8dGVybT48bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxp c3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbAppbmRleCA2MWI5NjdmOWM5Li42YjBjYjk1MDM0IDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2Rpc2NhcmQuc2dtbApAQCAtNzEsNyArNzEsOCBAQCBESVNDQVJEIHsgQUxMIHwgUExB TlMgfCBTRVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIHwgVkFSSUFCTEVTIH0KICAgICA8bGlz dGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgUmVzZXRzIHRoZSB2YWx1ZSBvZiBhbGwgc2Vzc2lv biB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUKLSAgICAgIGlzIGxhdGVyIHJldXNlZCwgaXQgaXMg cmUtaW5pdGlhbGl6ZWQgdG8gPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4uCisgICAgICBpcyBsYXRl ciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRvIGVpdGhlcgorICAgICAgPGxpdGVyYWw+ TlVMTDwvbGl0ZXJhbD4gb3IgaXRzIGRlZmF1bHQgdmFsdWUuCiAgICAgIDwvcGFyYT4KICAgICA8 L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMK aW5kZXggMDBjOTBlYTZmZC4uOGZiYTRjYzQ5MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUu YwpAQCAtMjQsNiArMjQsOSBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNp bmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWlu LmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2NvZXJjZS5oIgorI2luY2x1ZGUgInBhcnNlci9w YXJzZV9jb2xsYXRlLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2V4cHIuaCIKICNpbmNsdWRl ICJwYXJzZXIvcGFyc2VfdHlwZS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5j bHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCkBAIC0zNyw2ICs0MCw3IEBAIHN0YXRpYyBPYmplY3RB ZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCQkJCQkJCQkJIE9p ZCB2YXJPd25lciwKIAkJCQkJCQkJCSBPaWQgdmFyQ29sbGF0aW9uLAogCQkJCQkJCQkJIGJvb2wg aWZfbm90X2V4aXN0cywKKwkJCQkJCQkJCSBOb2RlICp2YXJEZWZleHByLAogCQkJCQkJCQkJIFZh cmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKTsKIAogCkBAIC01MSw2ICs1NSw3 IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCQkJCU9pZCB2YXJPd25l ciwKIAkJCQlPaWQgdmFyQ29sbGF0aW9uLAogCQkJCWJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQlO b2RlICp2YXJEZWZleHByLAogCQkJCVZhcmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0 aW9uKQogewogCUFjbAkJICAgKnZhcmFjbDsKQEAgLTExNCw2ICsxMTksMTEgQEAgY3JlYXRlX3Zh cmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFy Y29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CiAJdmFsdWVz W0FudW1fcGdfdmFyaWFibGVfdmFyeGFjdGVuZGFjdGlvbiAtIDFdID0gQ2hhckdldERhdHVtKHZh clhhY3RFbmRBY3Rpb24pOwogCisJaWYgKHZhckRlZmV4cHIpCisJCXZhbHVlc1tBbnVtX3BnX3Zh cmlhYmxlX3ZhcmRlZmV4cHIgLSAxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0obm9kZVRvU3RyaW5n KHZhckRlZmV4cHIpKTsKKwllbHNlCisJCW51bGxzW0FudW1fcGdfdmFyaWFibGVfdmFyZGVmZXhw ciAtIDFdID0gdHJ1ZTsKKwogCXZhcmFjbCA9IGdldF91c2VyX2RlZmF1bHRfYWNsKE9CSkVDVF9W QVJJQUJMRSwgdmFyT3duZXIsCiAJCQkJCQkJCSAgdmFyTmFtZXNwYWNlKTsKIAlpZiAodmFyYWNs ICE9IE5VTEwpCkBAIC0xNTAsNiArMTYwLDExIEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFy ICp2YXJOYW1lLAogCXJlY29yZF9vYmplY3RfYWRkcmVzc19kZXBlbmRlbmNpZXMoJm15c2VsZiwg YWRkcnMsIERFUEVOREVOQ1lfTk9STUFMKTsKIAlmcmVlX29iamVjdF9hZGRyZXNzZXMoYWRkcnMp OwogCisJLyogZGVwZW5kZW5jeSBvbiBkZWZhdWx0IGV4cHIgKi8KKwlpZiAodmFyRGVmZXhwcikK KwkJcmVjb3JkRGVwZW5kZW5jeU9uRXhwcigmbXlzZWxmLCAoTm9kZSAqKSB2YXJEZWZleHByLAor CQkJCQkJCSAgIE5JTCwgREVQRU5ERU5DWV9OT1JNQUwpOworCiAJLyogZGVwZW5kZW5jeSBvbiBv d25lciAqLwogCXJlY29yZERlcGVuZGVuY3lPbk93bmVyKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFy aWQsIHZhck93bmVyKTsKIApAQCAtMTg1LDYgKzIwMCw3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJT2lkCQkJY29sbGF0 aW9uOwogCU9pZAkJCXR5cGNvbGxhdGlvbjsKIAlPYmplY3RBZGRyZXNzIHZhcmlhYmxlOworCU5v ZGUJICAgKmNvb2tlZF9kZWZhdWx0ID0gTlVMTDsKIAogCS8qIGNoZWNrIGNvbnNpc3RlbmN5IG9m IGFyZ3VtZW50cyAqLwogCWlmIChzdG10LT5YYWN0RW5kQWN0aW9uID09IFZBUklBQkxFX1hBQ1RF TkRfRFJPUApAQCAtMjI2LDYgKzI0MiwxNiBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpw c3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJZm9ybWF0X3R5cGVfYmUo dHlwaWQpKSwKIAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+Y29sbENsYXVz ZS0+bG9jYXRpb24pKSk7CiAKKwlpZiAoc3RtdC0+ZGVmZXhwcikKKwl7CisJCWNvb2tlZF9kZWZh dWx0ID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIHN0bXQtPmRlZmV4cHIsCisJCQkJCQkJCQkgICBF WFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVCk7CisKKwkJY29va2VkX2RlZmF1bHQgPSBjb2VyY2Vf dG9fc3BlY2lmaWNfdHlwZShwc3RhdGUsCisJCQkJCQkJCQkJCQkgY29va2VkX2RlZmF1bHQsIHR5 cGlkLCAiREVGQVVMVCIpOworCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgY29va2Vk X2RlZmF1bHQpOworCX0KKwogCXZhcmlhYmxlID0gY3JlYXRlX3ZhcmlhYmxlKHN0bXQtPnZhcmlh YmxlLT5yZWxuYW1lLAogCQkJCQkJCSAgIG5hbWVzcGFjZWlkLAogCQkJCQkJCSAgIHR5cGlkLApA QCAtMjMzLDYgKzI1OSw3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3Jl YXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAgdmFyb3duZXIsCiAJCQkJCQkJICAg Y29sbGF0aW9uLAogCQkJCQkJCSAgIHN0bXQtPmlmX25vdF9leGlzdHMsCisJCQkJCQkJICAgY29v a2VkX2RlZmF1bHQsCiAJCQkJCQkJICAgc3RtdC0+WGFjdEVuZEFjdGlvbik7CiAKIAllbG9nKERF QlVHMSwgInJlY29yZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgKG9pZDolZCkgd2FzIGNy ZWF0ZWQgaW4gcGdfdmFyaWFibGUiLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCmluZGV4IDQ1ZTQzMWE1NDYuLmQyN2IzZDYzNzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJleGVjdXRvci9z dmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJtaXNj YWRtaW4uaCIKKyNpbmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCiAjaW5jbHVkZSAicmV3 cml0ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1 ZGUgInN0b3JhZ2UvcHJvYy5oIgpAQCAtNTE4LDExICs1MTksNjggQEAgQXRFT1N1YlhhY3RfU2Vz c2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0LAogCX0KIH0KIAorLyoKKyAqIGV2YWx1YXRlIGFu IGV4cHJlc3Npb24KKyAqLworc3RhdGljIHZvaWQKK2V2YWxfYXNzaWduX2RlZmV4cHIoU1Zhcmlh YmxlIHN2YXIsIEhlYXBUdXBsZSB0dXApCit7CisJRGF0dW0JCWRlZmV4cHJfdmFsdWU7CisJYm9v bAkJaXNudWxsOworCisJQXNzZXJ0KHN2YXIpOworCUFzc2VydChzdmFyLT5pc192YWxpZCk7CisJ QXNzZXJ0KEhlYXBUdXBsZUlzVmFsaWQodHVwKSk7CisKKwlkZWZleHByX3ZhbHVlID0gU3lzQ2Fj aGVHZXRBdHRyKFZBUklBQkxFT0lELAorCQkJCQkJCQkJdHVwLAorCQkJCQkJCQkJQW51bV9wZ192 YXJpYWJsZV92YXJkZWZleHByLAorCQkJCQkJCQkJJmlzbnVsbCk7CisKKwlpZiAoIWlzbnVsbCkK Kwl7CisJCUVTdGF0ZQkgICAqZXN0YXRlOworCQlFeHByU3RhdGUgICpkZWZleHByczsKKwkJRXhw cgkgICAqZGVmZXhwcjsKKwkJY2hhcgkgICAqZGVmZXhwcl9zdHI7CisJCURhdHVtCQl2YWx1ZTsK KwkJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisKKwkJZXN0YXRlID0gQ3JlYXRlRXhlY3V0b3JTdGF0 ZSgpOworCisJCWRlZmV4cHJfc3RyID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkZWZleHByX3ZhbHVl KTsKKwkJZGVmZXhwciA9IChFeHByICopIHN0cmluZ1RvTm9kZShkZWZleHByX3N0cik7CisKKwkJ b2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVzdGF0ZS0+ZXNfcXVlcnlfY3h0KTsKKwor CQlkZWZleHByID0gZXhwcmVzc2lvbl9wbGFubmVyKChFeHByICopIGRlZmV4cHIpOworCQlkZWZl eHBycyA9IEV4ZWNJbml0RXhwcihkZWZleHByLCBOVUxMKTsKKworCQl2YWx1ZSA9IEV4ZWNFdmFs RXhwclN3aXRjaENvbnRleHQoZGVmZXhwcnMsCisJCQkJCQkJCQkJICBHZXRQZXJUdXBsZUV4cHJD b250ZXh0KGVzdGF0ZSksCisJCQkJCQkJCQkJICAmaXNudWxsKTsKKworCQlNZW1vcnlDb250ZXh0 U3dpdGNoVG8ob2xkY3h0KTsKKworCQlpZiAoIWlzbnVsbCkKKwkJeworCQkJb2xkY3h0ID0gTWVt b3J5Q29udGV4dFN3aXRjaFRvKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOworCisJCQlzdmFyLT52 YWx1ZSA9IGRhdHVtQ29weSh2YWx1ZSwgc3Zhci0+dHlwYnl2YWwsIHN2YXItPnR5cGxlbik7CisJ CQlzdmFyLT5pc251bGwgPSBmYWxzZTsKKworCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4 dCk7CisJCX0KKworCQlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUpOworCX0KK30KKwogLyoKICAq IEluaXRpYWxpemUgYXR0cmlidXRlcyBjYWNoZWQgaW4gInN2YXIiCiAgKi8KIHN0YXRpYyB2b2lk Ci1zZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCitzZXR1 cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3Jp dGUpCiB7CiAJSGVhcFR1cGxlCXR1cDsKIAlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CkBAIC01 NzIsNiArNjMwLDkgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lk IHZhcmlkKQogCXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJM RU9JRCwKIAkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwogCisJaWYgKCFpc193 cml0ZSkKKwkJZXZhbF9hc3NpZ25fZGVmZXhwcihzdmFyLCB0dXApOworCiAJUmVsZWFzZVN5c0Nh Y2hlKHR1cCk7CiB9CiAKQEAgLTYwMSw3ICs2NjIsNyBAQCBzZXRfc2Vzc2lvbl92YXJpYWJsZShT VmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCSAqLwogCWlmICghc3Zh ci0+aXNfdmFsaWQpCiAJewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKCZsb2NzdmFyLCBzdmFy LT52YXJpZCk7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoJmxvY3N2YXIsIHN2YXItPnZhcmlk LCBmYWxzZSk7CiAJCV9zdmFyID0gJmxvY3N2YXI7CiAJfQogCWVsc2UKQEAgLTczNCw3ICs3OTUs MjUgQEAgZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZhcmlkKQogCSAqLwogCWlmICghc3Zhci0+ aXNfdmFsaWQpCiAJewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkKTsKKwkJ LyogaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gdXNlIGRlZmV4cCBpZiBpdCBpcyBkZWZpbmVkICov CisJCVBHX1RSWSgpOworCQl7CisJCQkvKgorCQkJICogSW4gdGhpcyBjYXNlLCB0aGUgc2V0dXAg Y2FuIGV4ZWN1dGUgZGVmYXVsdCBleHByZXNzaW9uLiBXaGVuCisJCQkgKiB0aGUgZXhlY3V0aW9u IG9mIGRlZmF1bHQgZXhwcmVzc2lvbiBmYWlscywgdGhlbiB3ZSBuZWVkIHRvCisJCQkgKiByZW1v dmUgZW50cnkgZnJvbSBzZXNzaW9uIHZhcnMuCisJCQkgKi8KKwkJCXNldHVwX3Nlc3Npb25fdmFy aWFibGUoc3ZhciwgdmFyaWQsIGZhbHNlKTsKKwkJfQorCQlQR19DQVRDSCgpOworCQl7CisJCQkv KiB0aGlzIGVudHJ5IGNhbm5vdCBiZSB2YWxpZCwgcmVtb3ZlIGZyb20gc2Vzc2lvbnZhcnMgKi8K KwkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsK KworCQkJLyogcHJvcGFnYXRlIHRoZSBlcnJvciAqLworCQkJUEdfUkVfVEhST1coKTsKKwkJfQor CQlQR19FTkRfVFJZKCk7CiAKIAkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwiJXMu JXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4gbWVtb3J5IChlbWl0dGVkIGJ5IFJF QUQpIiwKIAkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNw YWNlKHZhcmlkKSksCkBAIC03OTgsNyArODc3LDcgQEAgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2 YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQogCiAJaWYgKCFmb3VuZCkKIAl7Ci0JCXNl dHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOworCQlzZXR1cF9zZXNzaW9uX3Zhcmlh YmxlKHN2YXIsIHZhcmlkLCB0cnVlKTsKIAogCQllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFi bGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBtZW1vcnkgKGVtaXR0 ZWQgYnkgV1JJVEUpIiwKIAkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA4Y2I1YjQ3YzRjLi5k YmQ2YmIxMzBhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTY0NSw2ICs2NDUsNyBAQCBzdGF0aWMgTm9kZSAq bWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9k ZSAqcXVlcnkpOwogJXR5cGUgPHBhcnRib3VuZHNwZWM+IFBhcnRpdGlvbkJvdW5kU3BlYwogJXR5 cGUgPGxpc3Q+CQloYXNoX3BhcnRib3VuZAogJXR5cGUgPGRlZmVsdD4JCWhhc2hfcGFydGJvdW5k X2VsZW0KKyV0eXBlIDxub2RlPgkJT3B0U2Vzc2lvblZhckRlZkV4cHIKIAogJXR5cGUgPG5vZGU+ CWpzb25fZm9ybWF0X2NsYXVzZQogCQkJCWpzb25fZm9ybWF0X2NsYXVzZV9vcHQKQEAgLTUyNTcs MzAgKzUyNTgsMzYgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KIAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0VGVtcCBWQVJJ QUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIFhh Y3RFbmRBY3Rpb25PcHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIFZBUklBQkxFIHF1YWxpZmllZF9u YW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0U2Vzc2lvblZhckRlZkV4 cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQg Km4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7CiAJCQkJCSQ0LT5yZWxwZXJzaXN0 ZW5jZSA9ICQyOwogCQkJCQluLT52YXJpYWJsZSA9ICQ0OwogCQkJCQluLT50eXBlTmFtZSA9ICQ2 OwogCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDc7Ci0JCQkJCW4tPlhh Y3RFbmRBY3Rpb24gPSAkODsKKwkJCQkJbi0+ZGVmZXhwciA9ICQ4OworCQkJCQluLT5YYWN0RW5k QWN0aW9uID0gJDk7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KLQkJCXwgQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgSUZfUCBOT1Qg RVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2Ug WGFjdEVuZEFjdGlvbk9wdGlvbgorCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBJRl9QIE5P VCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVz ZSBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlD cmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsK IAkJCQkJJDctPnJlbHBlcnNpc3RlbmNlID0gJDI7CiAJCQkJCW4tPnZhcmlhYmxlID0gJDc7CiAJ CQkJCW4tPnR5cGVOYW1lID0gJDk7CiAJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVz ZSAqKSAkMTA7Ci0JCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTE7CisJCQkJCW4tPmRlZmV4cHIg PSAkMTE7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTI7CiAJCQkJCW4tPmlmX25vdF9leGlz dHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQogCQk7CiAKK09wdFNlc3Np b25WYXJEZWZFeHByOiBERUZBVUxUIGJfZXhwcgkJCQkJeyAkJCA9ICQyOyB9CisJCQl8IC8qIEVN UFRZICovCQkJCQkJCXsgJCQgPSBOVUxMOyB9CisJCTsKKwogLyoKICAqIFRlbXBvcmFyeSBzZXNz aW9uIHZhcmlhYmxlcyBjYW4gYmUgZHJvcHBlZCBvbiBzdWNjZXNzZnVsCiAgKiB0cmFuc2FjdGlv biBlbmQgbGlrZSB0YWJsZXMuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf YWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5kZXggNDczN2IwNGQxNy4u NTRiNzY1YzhlYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNDg4LDYgKzQ4OCw3IEBAIGNo ZWNrX2FnZ2xldmVsc19hbmRfY29uc3RyYWludHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpl eHByKQogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNl IEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9E RUZBVUxUOgogCiAJCQlpZiAoaXNBZ2cpCiAJCQkJZXJyID0gXygiYWdncmVnYXRlIGZ1bmN0aW9u cyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwpAQCAtOTM3LDYgKzkz OCw3IEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93 RnVuYyAqd2Z1bmMsCiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6 CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZB UklBQkxFX0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJ3aW5kb3cgZnVuY3Rpb25zIGFyZSBub3QgYWxs b3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25zIik7CiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJ TkRfSU5ERVhfRVhQUkVTU0lPTjoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IGRkMDNiMWYx NGQuLjE1OGE2N2JlNTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNTg4LDYgKzU4OCw3 IEBAIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMoUGFyc2VFeHByS2luZCBwX2V4 cHJfa2luZCkKIAkJY2FzZSBFWFBSX0tJTkRfSk9JTl9VU0lORzoKIAkJY2FzZSBFWFBSX0tJTkRf Q1lDTEVfTUFSSzoKIAkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJY2FzZSBFWFBS X0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCXJlc3VsdCA9IGZhbHNlOwogCQkJYnJlYWs7CiAJ fQpAQCAtNjczLDYgKzY3NCw3IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3Rh dGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJY2Fz ZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKIAkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoK KwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCS8qIG9rYXkgKi8KIAkJCWJy ZWFrOwogCkBAIC0yMTQ2LDYgKzIxNDgsNyBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUg KnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9D T0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2Fz ZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCWVyciA9IF8oImNhbm5vdCB1c2Ugc3Vi cXVlcnkgaW4gREVGQVVMVCBleHByZXNzaW9uIik7CiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJ TkRfSU5ERVhfRVhQUkVTU0lPTjoKQEAgLTM1MDgsNiArMzUxMSw3IEBAIFBhcnNlRXhwcktpbmRO YW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCQlyZXR1cm4gIkNIRUNLIjsKIAkJY2FzZSBF WFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFV TFQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJCQlyZXR1cm4gIkRFRkFV TFQiOwogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgogCQkJcmV0dXJuICJpbmRl eCBleHByZXNzaW9uIjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5j LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCmluZGV4IGRjMjVmNmRjZDAuLmQ5 ZjE1YzI2MTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpAQCAtMjYyMCw2ICsyNjIwLDcgQEAg Y2hlY2tfc3JmX2NhbGxfcGxhY2VtZW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbGFzdF9z cmYsIGludCBsb2NhdGlvbikKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVG QVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJ TkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCWVyciA9IF8oInNldC1yZXR1cm5pbmcgZnVuY3Rpb25z IGFyZSBub3QgYWxsb3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25zIik7CiAJCQlicmVhazsKIAkJ Y2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGYyZjM3Nzlj NjcuLmE2YzMzZDJlZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTQzNiw2ICs1NDM2LDcgQEAgZ2V0VmFy aWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV92YXJuYW1lc3BhY2U7CiAJaW50CQkJaV92 YXJ0eXBlOwogCWludAkJCWlfdmFydHlwbmFtZTsKKwlpbnQJCQlpX3ZhcmRlZmV4cHI7CiAJaW50 CQkJaV92YXJ4YWN0ZW5kYWN0aW9uOwogCWludAkJCWlfdmFyb3duZXI7CiAJaW50CQkJaV92YXJj b2xsYXRpb247CkBAIC01NDYxLDYgKzU0NjIsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91 dCkKIAkJCQkJICAiICAgICAgICAgICAgVEhFTiB2LnZhcmNvbGxhdGlvblxuIgogCQkJCQkgICIg ICAgICAgICAgICBFTFNFIDBcbiIKIAkJCQkJICAiICAgICAgIEVORCBBUyB2YXJjb2xsYXRpb24s XG4iCisJCQkJCSAgIiAgICAgICBwZ19jYXRhbG9nLnBnX2dldF9leHByKHYudmFyZGVmZXhwciww KSBhcyB2YXJkZWZleHByLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJvd25lciwgdi52YXJhY2ws XG4iCiAJCQkJCSAgIiAgICAgICBhY2xkZWZhdWx0KCdWJywgdi52YXJvd25lcikgQVMgYWNsZGVm YXVsdFxuIgogCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfdmFyaWFibGUgdlxuIgpAQCAtNTQ3 Nyw2ICs1NDc5LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaV92YXJuYW1lc3Bh Y2UgPSBQUWZudW1iZXIocmVzLCAidmFybmFtZXNwYWNlIik7CiAJaV92YXJ0eXBlID0gUFFmbnVt YmVyKHJlcywgInZhcnR5cGUiKTsKIAlpX3ZhcnR5cG5hbWUgPSBQUWZudW1iZXIocmVzLCAidmFy dHlwbmFtZSIpOworCWlfdmFyZGVmZXhwciA9IFBRZm51bWJlcihyZXMsICJ2YXJkZWZleHByIik7 CiAJaV92YXJ4YWN0ZW5kYWN0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcnhhY3RlbmRhY3Rpb24i KTsKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKIApA QCAtNTUxMiw2ICs1NTE1LDExIEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCQl2YXJp bmZvW2ldLmRhY2wuaW5pdHByaXZzID0gTlVMTDsKIAkJdmFyaW5mb1tpXS5yb2xuYW1lID0gZ2V0 Um9sZU5hbWUoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyb3duZXIpKTsKIAorCQlpZiAoUFFnZXRp c251bGwocmVzLCBpLCBpX3ZhcmRlZmV4cHIpKQorCQkJdmFyaW5mb1tpXS52YXJkZWZleHByID0g TlVMTDsKKwkJZWxzZQorCQkJdmFyaW5mb1tpXS52YXJkZWZleHByID0gcGdfc3RyZHVwKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3ZhcmRlZmV4cHIpKTsKKwogCQkvKiBkbyBub3QgdHJ5IHRvIGR1bXAg QUNMIGlmIG5vIEFDTCBleGlzdHMgKi8KIAkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGlfdmFy YWNsKSkKIAkJCXZhcmluZm9baV0uZG9iai5jb21wb25lbnRzIHw9IERVTVBfQ09NUE9ORU5UX0FD TDsKQEAgLTU1NDQsNiArNTU1Miw3IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25z dCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJUFFFeHBCdWZmZXIgcXVlcnk7CiAJY2hhcgkgICAq cXVhbHZhcm5hbWU7CiAJY29uc3QgY2hhciAqdmFydHlwbmFtZTsKKwljb25zdCBjaGFyICp2YXJk ZWZleHByOwogCWNvbnN0IGNoYXIgKnZhcnhhY3RlbmRhY3Rpb247CiAJT2lkCQkJdmFyY29sbGF0 aW9uOwogCkBAIC01NTU2LDYgKzU1NjUsNyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwg Y29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCiAJcXVhbHZhcm5hbWUgPSBwZ19zdHJkdXAo Zm10UXVhbGlmaWVkRHVtcGFibGUodmFyaW5mbykpOwogCXZhcnR5cG5hbWUgPSB2YXJpbmZvLT52 YXJ0eXBuYW1lOworCXZhcmRlZmV4cHIgPSB2YXJpbmZvLT52YXJkZWZleHByOwogCXZhcnhhY3Rl bmRhY3Rpb24gPSB2YXJpbmZvLT52YXJ4YWN0ZW5kYWN0aW9uOwogCXZhcmNvbGxhdGlvbiA9IHZh cmluZm8tPnZhcmNvbGxhdGlvbjsKIApAQCAtNTU3NSw2ICs1NTg1LDEwIEBAIGR1bXBWYXJpYWJs ZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJCQkJCQkJICBm bXRRdWFsaWZpZWREdW1wYWJsZShjb2xsKSk7CiAJfQogCisJaWYgKHZhcmRlZmV4cHIpCisJCWFw cGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIERFRkFVTFQgJXMiLAorCQkJCQkJICB2YXJkZWZleHBy KTsKKwogCWlmIChzdHJjbXAodmFyeGFjdGVuZGFjdGlvbiwgInIiKSA9PSAwKQogCQlhcHBlbmRQ UUV4cEJ1ZmZlcihxdWVyeSwgIiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQiKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmgKaW5kZXggYTlhYzcwZDc2MS4uMjYxMzcwMGUxOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC03MTcsNiAr NzE3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1ZhcmlhYmxlSW5mbwogCUR1bXBhYmxlQWNsIGRhY2w7 CiAJT2lkCQkJdmFydHlwZTsKIAljaGFyCSAgICp2YXJ0eXBuYW1lOworCWNoYXIJICAgKnZhcmRl ZmV4cHI7CiAJY2hhcgkgICAqdmFyeGFjdGVuZGFjdGlvbjsKIAljaGFyCSAgICp2YXJhY2w7CiAJ Y2hhcgkgICAqcnZhcmFjbDsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19k dW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggN2IwY2MyYzVk OS4uZmNmNjg5NjZiMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTQwMDUsNiArNDAw NSw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUgVkFSSUFCTEUgdGVz dF92YXJpYWJsZSBERUZBVUxUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9h bGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJ CWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTMgQVMg aW50ZWdlciBERUZBVUxUIDEwOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBWQVJJ QUJMRSBkdW1wX3Rlc3QudmFyaWFibGUzIEFTIGludGVnZXIgREVGQVVMVCAxMDtcRS94bSwKKwkJ bGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJ CXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVf ZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEs CisJCX0sCisJfSwKKworCSdDUkVBVEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZSBERUZBVUxUIE9O IFRSQU5TQUNUSU9OIEVORCBSRVNFVCcgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0 Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYx LAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU0 IEFTIGludGVnZXIgREVGQVVMVCAxMCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQnLAorCQlyZWdl eHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlNCBBUyBp bnRlZ2VyIERFRkFVTFQgMTAgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUO1xFL3htLAorCQlsaWtl ID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2Vj dGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1w X3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJ fSwKKwl9LAorCiAJJ0NSRUFURSBWSUVXIHRlc3RfdmlldycgPT4gewogCQljcmVhdGVfb3JkZXIg PT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKaW5kZXggNzdjZDhkNDBkZS4uMjQ2ZTBmNTkxNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUyNzEsNyAr NTI3MSw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3Nl KQogCVBRRXhwQnVmZmVyRGF0YSBidWY7CiAJUEdyZXN1bHQgICAqcmVzOwogCXByaW50UXVlcnlP cHQgbXlvcHQgPSBwc2V0LnBvcHQ7Ci0Jc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVt bnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07 CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7CkBAIC01MjkyLDYgKzUyOTIsNyBA QCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJ ICAiICAoU0VMRUNUIGMuY29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBw Z19jYXRhbG9nLnBnX3R5cGUgYnRcbiIKIAkJCQkJICAiICAgV0hFUkUgYy5vaWQgPSB2LnZhcmNv bGxhdGlvbiBBTkQgYnQub2lkID0gdi52YXJ0eXBlIEFORCB2LnZhcmNvbGxhdGlvbiA8PiBidC50 eXBjb2xsYXRpb24pIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91 c2VyYnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5w Z19nZXRfZXhwcih2LnZhcmRlZmV4cHIsIDApIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNF IHYudmFyeGFjdGVuZGFjdGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09N TUlUIERST1AnXG4iCiAJCQkJCSAgIiAgICBXSEVOICdyJyBUSEVOICdPTiBUUkFOU0FDVElPTiBF TkQgUkVTRVQnXG4iCkBAIC01MzAxLDYgKzUzMDIsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNo YXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwK IAkJCQkJICBnZXR0ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgi T3duZXIiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIkRlZmF1bHQiKSwKIAkJCQkJICBnZXR0ZXh0 X25vb3AoIlRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiIpKTsKIAogCWlmICh2ZXJib3NlKQpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oCmluZGV4IDAwOGYyZWU3YzEuLjA5ZGQ0NGE0NGUgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAgLTY4LDYgKzY4LDkgQEAgQ0FUQUxPRyhwZ192YXJp YWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkvKiBhY2Nlc3MgcGVybWlzc2lvbnMgKi8K IAlhY2xpdGVtCQl2YXJhY2xbMV0gQktJX0RFRkFVTFQoX251bGxfKTsKIAorCS8qIGxpc3Qgb2Yg ZXhwcmVzc2lvbiB0cmVlcyBmb3IgdmFyaWFibGUgZGVmYXVsdCAoTlVMTCBpZiBub25lKSAqLwor CXBnX25vZGVfdHJlZSB2YXJkZWZleHByIEJLSV9ERUZBVUxUKF9udWxsXyk7CisKICNlbmRpZgog fSBGb3JtRGF0YV9wZ192YXJpYWJsZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDYwOThl MGQ3YWYuLmUzNTkyNjYzMzQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM1MzQsNiArMzUz NCw3IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJVHlwZU5hbWUgICAq dHlwZU5hbWU7CQkvKiB0aGUgdHlwZSBvZiB2YXJpYWJsZSAqLwogCUNvbGxhdGVDbGF1c2UgKmNv bGxDbGF1c2U7CiAJYm9vbAkJaWZfbm90X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJl YWR5IGV4aXN0cyAqLworCU5vZGUJICAgKmRlZmV4cHI7CQkvKiBkZWZhdWx0IGV4cHJlc3Npb24g Ki8KIAljaGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBvbiB0cmFuc2FjdGlvbiBlbmQgYWN0aW9uICov CiB9IENyZWF0ZVNlc3Npb25WYXJTdG10OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2Vfbm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCAw YjdiNjlhNDE1Li42YjU1Y2M4MzA4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTg0LDYg Kzg0LDcgQEAgdHlwZWRlZiBlbnVtIFBhcnNlRXhwcktpbmQKIAlFWFBSX0tJTkRfQ1lDTEVfTUFS SywJCS8qIGN5Y2xlIG1hcmsgdmFsdWUgKi8KIAlFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVCwJLyog UEwvcGdTUUwgYXNzaWdubWVudCB0YXJnZXQgKi8KIAlFWFBSX0tJTkRfTEVUX1RBUkdFVCwJCS8q IExFVCB0YXJnZXQgKi8KKwlFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVCwgLyogZGVmYXVsdCB2 YWx1ZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAqLwogfSBQYXJzZUV4cHJLaW5kOwogCiAKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BzcWwub3V0CmluZGV4IGMzN2QxOWI2N2UuLjkxODA5NTBlODQgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApAQCAtNjAyMCwyMCArNjAyMCwyMCBAQCBDUkVBVEUg Uk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJs ZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CiBc ZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBl ICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBUcmFuc2FjdGlv bmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAotLS0tLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAg ICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEg fCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAg ICAgICAgIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2 aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1 YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFy aWFibGVfb3duZXIgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEg VE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9u JzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2No ZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25l ciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFj Y2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCi0tLS0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCi0gcHVi bGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KLSAgICAg ICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJs ZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8 IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rp b25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAg ICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8 IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8 ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293 bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCisgICAgICAg IHwgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNz X3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogRFJP UCBWQVJJQUJMRSB2YXIxOwpAQCAtNjUwMSw5ICs2NTAxLDkgQEAgTGlzdCBvZiBzY2hlbWFzCiAo MCByb3dzKQogCiBcZFYgIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24g fCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFt ZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVu ZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2Fpbiwg YnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY2NzYsOSArNjY3Niw5 IEBAIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRl ZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIFxkViAi bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9u IHwgT3duZXIgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5h bWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4s IGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlv bnMuCkBAIC02ODE1LDkgKzY4MTUsOSBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwog KDAgcm93cykKIAogXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJp YWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hl bWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQg YWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVy IHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5k IGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDQ5NjdkZWM4MWEuLmZhOTYzMDQwMDIg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CkBAIC0yMzg5LDMgKzIzODksNjYgQEAgU0VMRUNUIHZhcjEgSVMgTlVMTDsKICgxIHJvdykKIAog RFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9m eCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICd2YXJ0ZXN0X2Z4 IGV4ZWN1dGVkJzsKKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IERFRkFVTFQgdmFydGVzdF9meCgpOworLS0gdmFydGVz dF9meCBzaG91bGQgYmUgcHJvdGVjdGVkIGJ5IGRlcCwgc2hvdWxkIGZhaWwKK0RST1AgRlVOQ1RJ T04gdmFydGVzdF9meCgpOworRVJST1I6ICBjYW5ub3QgZHJvcCBmdW5jdGlvbiB2YXJ0ZXN0X2Z4 KCkgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2 YXJpYWJsZSB2YXIxIGRlcGVuZHMgb24gZnVuY3Rpb24gdmFydGVzdF9meCgpCitISU5UOiAgVXNl IERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKK05PVElDRTogIHZhcnRlc3RfZnggZXhlY3V0ZWQK KyB2YXIxIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCistLSB0aGUgZGVmZXhwciBzaG91bGQg YmUgZXZhbHVhdGVkIG9ubHkgb25jZQorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAg IDAKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CistLSBpbiB0aGlzIGNhc2UsIHRoZSBk ZWZleHByIHNob3VsZCBub3QgYmUgZXZhbHVhdGVkCitMRVQgdmFyMSA9IDEwMDsKK1NFTEVDVCB2 YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVT OworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBB UyAkJAorQkVHSU4KKyAgUkFJU0UgRVhDRVBUSU9OICd2YXJ0ZXN0X2Z4IGlzIGV4ZWN1dGluZyc7 CisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKy0tIHNob3VsZCB0byBm YWlsLCBidXQgbm90IHRvIGNyYXNoCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgdmFydGVzdF9meCBp cyBleGVjdXRpbmcKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiB2YXJ0ZXN0X2Z4KCkgbGlu ZSAzIGF0IFJBSVNFCistLSBhZ2FpbgorU0VMRUNUIHZhcjE7CitFUlJPUjogIHZhcnRlc3RfZngg aXMgZXhlY3V0aW5nCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gdmFydGVzdF9meCgpIGxp bmUgMyBhdCBSQUlTRQorLS0gYnV0IHdlIGNhbiB3cml0ZQorTEVUIHZhcjEgPSAxMDA7CitTRUxF Q1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxF IHZhcjE7CitEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCAyNDE3NTFhMjVhLi5mNjY5NWI4ZDc5IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xNjM4LDMgKzE2 MzgsNTEgQEAgUk9MTEJBQ0s7CiBTRUxFQ1QgdmFyMSBJUyBOVUxMOwogCiBEUk9QIFZBUklBQkxF IHZhcjE7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJO UyBpbnQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAndmFydGVzdF9meCBleGVjdXRlZCc7 CisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgaW50IERFRkFVTFQgdmFydGVzdF9meCgpOworCistLSB2YXJ0ZXN0X2Z4IHNo b3VsZCBiZSBwcm90ZWN0ZWQgYnkgZGVwLCBzaG91bGQgZmFpbAorRFJPUCBGVU5DVElPTiB2YXJ0 ZXN0X2Z4KCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0tIHRoZSBkZWZl eHByIHNob3VsZCBiZSBldmFsdWF0ZWQgb25seSBvbmNlCitTRUxFQ1QgdmFyMTsKKworRElTQ0FS RCBWQVJJQUJMRVM7CisKKy0tIGluIHRoaXMgY2FzZSwgdGhlIGRlZmV4cHIgc2hvdWxkIG5vdCBi ZSBldmFsdWF0ZWQKK0xFVCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFS SUFCTEVTOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVS TlMgaW50IEFTICQkCitCRUdJTgorICBSQUlTRSBFWENFUFRJT04gJ3ZhcnRlc3RfZnggaXMgZXhl Y3V0aW5nJzsKKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCistLSBz aG91bGQgdG8gZmFpbCwgYnV0IG5vdCB0byBjcmFzaAorU0VMRUNUIHZhcjE7CisKKy0tIGFnYWlu CitTRUxFQ1QgdmFyMTsKKworLS0gYnV0IHdlIGNhbiB3cml0ZQorTEVUIHZhcjEgPSAxMDA7CitT RUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0 X2Z4KCk7Ci0tIAoyLjQ4LjAKCg== --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0013-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Disposition: attachment; filename="v20250117-0013-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8lp9 RnJvbSA3YTg4YTA4MzMxYWRjODI5MjNjMjA0ZWYzOWE3NzE5ODZjZWQwM2VkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMjoxMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTMvMjJdIEltcGxlbWVudGF0aW9uIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCBjbGF1c2UKClRo aXMgaXMgc2ltcGxlIHBhdGNoIC0ganVzdCBhZGQgc3BlY2lhbCBmbGFnIHRvIHNlc3Npb24gdmFy aWFibGUgbWVtb3J5IGVudHJ5LgpUaGUgZW50cmllcyB3aXRoIGFjdGl2ZSB0aGlzIGZsYWcgYXJl IHJlbW92ZWQgZnJvbSBzZXNzaW9udmFycyBoYXNoIHRhYmxlCmF0IHRyYW5zYWN0aW9uIGVuZC4g VGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIHN5bm9ueW1zIGZvciAiQ09NTUlUIFJPTExCQUNLIgpi dXQgdGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIG1vcmUgaWxsdXN0cmF0aXZlIGFuZCBsZXNzIGNv bmZ1c2luZyB0aGVuICJDT01NSVQgUk9MTEJBQ0siLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAxMyArKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgNTEgKysrKysrKysrKysrKysrKysrKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMTggKysrKysrKwogc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgIDEgKwogLi4uL2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgIDQgKy0KIC4uLi9pc29sYXRpb24vc3Bl Y3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA0ICstCiAuLi4vcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAzNCArKysrKysrKysrKysrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMCArKysrKysrKwogMTMgZmls ZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bAppbmRleCA2Y2E4ZTBiMmZiLi43ZDFjYmJhNGQ5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTg1NSw3 ICs5ODU1LDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3Vu dCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT4KICAgICAg IDxwYXJhPgogICAgICAgIEFjdGlvbiBwZXJmb3JtZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgot ICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0gbm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRl cmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0g bm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLAorICAg ICAgIDxsaXRlcmFsPnI8L2xpdGVyYWw+ID0gcmVzZXQgdGhlIHZhcmlhYmxlIHRvIGl0cyBkZWZh dWx0IHZhbHVlLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCBhODhlMDE3NWJlLi5jODlhNjVmYjU1IDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI3LDcgKzI3LDcgQEAgUG9z dGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JF QVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBD T0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2Vh YmxlPiBdCi0gICAgWyBPTiBDT01NSVQgRFJPUCBdCisgICAgWyB7IE9OIENPTU1JVCBEUk9QIHwg T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lz ZGl2PgogIDxyZWZzZWN0MT4KQEAgLTExNyw2ICsxMTcsMTcgQEAgQ1JFQVRFIFsgeyBURU1QT1JB UlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xh c3M9InAKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0 ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1vbi10cmFuc2FjdGlvbi1lbmQtcmVzZXQiPgor ICAgIDx0ZXJtPjxsaXRlcmFsPk9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDwvbGl0ZXJhbD48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0ZXJhbD5PTiBU UkFOU0FDVElPTiBFTkQgUkVTRVQ8L2xpdGVyYWw+IGNsYXVzZSBjYXVzZXMgdGhlIHNlc3Npb24K KyAgICAgIHZhcmlhYmxlIHRvIGJlIHJlc2V0IHRvIGl0cyBkZWZhdWx0IHZhbHVlIHdoZW4gdGhl IHRyYW5zYWN0aW9uIGlzIGNvbW1pdHRlZAorICAgICAgb3Igcm9sbGVkIGJhY2suCisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgPC92YXJpYWJs ZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCmluZGV4IGE2YmJlY2Y0ZTIuLjQ1ZTQzMWE1NDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTkxLDYgKzkxLDggQEAgdHlwZWRlZiBzdHJ1Y3QgU1Zhcmlh YmxlRGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5zYWN0aW9u SWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlyZXNldF9hdF9lb3g7CisKIAkv KgogCSAqIFRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCBvZiB0aGUgbGFzdCB0cmFuc2Fj dGlvbiB0aGF0IGRyb3BwZWQgdGhlCiAJICogdmFyaWFibGUsIGlmIGFueS4gIFdlIG5lZWQgdGhp cyBpbmZvcm1hdGlvbiB0byBhdm9pZCBmcmVlaW5nIG1lbW9yeSBmb3IKQEAgLTExOCw2ICsxMjAs MTIgQEAgc3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9IE5VTEw7 CiAvKiBiZWNvbWVzIHRydWUgd2hlbiB3ZSByZWNlaXZlIGEgc2ludmFsIG1lc3NhZ2UgKi8KIHN0 YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKIAorLyoKKyAqIHRydWUsIHdoZW4g c29tZSB1c2VkIHNlc3Npb24gdmFyaWFibGUgaGFzIE9OIENPTU1JVCBEUk9QCisgKiBvciBPTiBU UkFOU0FDVElPTiBFTkQgUkVTRVQgY2xhdXNlcworICovCitzdGF0aWMgYm9vbCBoYXNfc2Vzc2lv bl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKKwogLyoKICAqIFRoZSBjb250 ZW50IG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgbm90IHJlbW92ZWQgaW1tZWRpYXRl bHkuICBJZgogICogcG9zc2libGUsIHdlIGRvIHRoYXQgYXQgdGhlIGVuZCBvZiB0aGUgdHJhbnNh Y3Rpb24uICBCdXQgd2UgY2Fubm90IGRvIHRoYXQKQEAgLTM5Myw2ICs0MDEsMzIgQEAgcmVtb3Zl X2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoYm9vbCBhdEVPWCkKIAl9CiB9CiAKKy8qCisgKiBy ZW1vdmUgZW50cmllcyBtYXJrZWQgYXMgInJlc2V0X2F0X2VveCIKKyAqLworc3RhdGljIHZvaWQK K3JlbW92ZV9zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCh2b2lkKQoreworCUhB U0hfU0VRX1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlpZiAoIXNlc3Npb252 YXJzKQorCQlyZXR1cm47CisKKwkvKiBsZWF2ZSBxdWNrbHksIHdoZW4gdGhlcmUgYXJlIG5vdCB0 aGF0IHZhcmlhYmxlcyAqLworCWlmICghaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhfcmVzZXRf YXRfZW94KQorCQlyZXR1cm47CisKKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJz KTsKKwl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykp ICE9IE5VTEwpCisJeworCQlpZiAoc3Zhci0+cmVzZXRfYXRfZW94KQorCQkJaGFzaF9zZWFyY2go c2Vzc2lvbnZhcnMsICZzdmFyLT52YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCX0KKworCWhh c19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCA9IGZhbHNlOworfQorCiAvKgog ICAqIFBlcmZvcm0gT04gQ09NTUlUIERST1AgZm9yIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxl cywKICAgKiBhbmQgcmVtb3ZlIGFsbCBkcm9wcGVkIHZhcmlhYmxlcyBmcm9tIG1lbW9yeS4KQEAg LTQwMCw2ICs0MzQsOCBAQCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhib29sIGF0 RU9YKQogdm9pZAogQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0KQog eworCXJlbW92ZV9zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCgpOworCiAJaWYg KGlzQ29tbWl0KQogCXsKIAkJaWYgKHhhY3RfZHJvcF9pdGVtcykKQEAgLTUxMSw2ICs1NDcsMjEg QEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkKQogCXN2 YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CiAJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJh X2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisJLyoKKwkgKiBXZSBkb24ndCBu ZWVkIHRvIGV4cGxpY2l0bHkgcmVzZXQgdmFyaWFibGVzIG1hcmtlZCBPTiBDT01NSVQgRFJPUC4g SXQKKwkgKiBjYW4gYmUgZG9uZSBieSBzaW52YWwgbWVzc2FnZSBwcm9jZXNzaW5nLiBCdXQgdGhp cyBwcm9jZXNzaW5nIGNhbiBiZQorCSAqIHBvc3Rwb25lZCBkdWUgYWJvcnRlZCB0cmFuc2FjdGlv bi4gT24gc2Vjb25kIGhhbmQgdGhlcmUgaXMgbm90IGEKKwkgKiByZWFzb24sIHdoeSBkb24ndCBk byBpdCBhdCB0cmFuc2FjdGlvbiBlbmQgaW1tZWRpYXRlbHkuCisJICovCisJaWYgKHZhcmZvcm0t PnZhcnhhY3RlbmRhY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9SRVNFVCB8fAorCQl2YXJmb3Jt LT52YXJ4YWN0ZW5kYWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRfRFJPUCkKKwl7CisJCXN2YXIt PnJlc2V0X2F0X2VveCA9IHRydWU7CisJCWhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0 X2F0X2VveCA9IHRydWU7CisJfQorCWVsc2UKKwkJc3Zhci0+cmVzZXRfYXRfZW94ID0gZmFsc2U7 CisKIAlzdmFyLT5kcm9wX2x4aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIAogCXN2YXItPmlz bnVsbCA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA2OGYwYjE0Mzk1Li44Y2I1YjQ3YzRjIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKQEAgLTUyODYsNiArNTI4Niw3IEBAIENyZWF0ZVNlc3Npb25WYXJTdG10OgogICog dHJhbnNhY3Rpb24gZW5kIGxpa2UgdGFibGVzLgogICovCiBYYWN0RW5kQWN0aW9uT3B0aW9uOiAg T04gQ09NTUlUIERST1AJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfRFJPUDsgfQorCQkJfCBP TiBUUkFOU0FDVElPTiBFTkRfUCBSRVNFVAkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX1JFU0VU OyB9CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfTk9PUDsg fQogCQk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDllMzJjNDc4NDEuLmYyZjM3NzljNjcgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYwpAQCAtNTQzNiw2ICs1NDM2LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJ aW50CQkJaV92YXJuYW1lc3BhY2U7CiAJaW50CQkJaV92YXJ0eXBlOwogCWludAkJCWlfdmFydHlw bmFtZTsKKwlpbnQJCQlpX3ZhcnhhY3RlbmRhY3Rpb247CiAJaW50CQkJaV92YXJvd25lcjsKIAlp bnQJCQlpX3ZhcmNvbGxhdGlvbjsKIAlpbnQJCQlpX3ZhcmFjbDsKQEAgLTU0NTMsNiArNTQ1NCw3 IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCS8qIGdldCB0aGUgdmFyaWFibGVzIGlu IGN1cnJlbnQgZGF0YWJhc2UgKi8KIAlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKIAkJCQkJICAi U0VMRUNUIHYudGFibGVvaWQsIHYub2lkLCB2LnZhcm5hbWUsXG4iCisJCQkJCSAgIiAgICAgICB2 LnZhcnhhY3RlbmRhY3Rpb24sXG4iCiAJCQkJCSAgIiAgICAgICB2LnZhcm5hbWVzcGFjZSwgdi52 YXJ0eXBlLFxuIgogCQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5 cGUsIHYudmFydHlwbW9kKSBhcyB2YXJ0eXBuYW1lLFxuIgogCQkJCQkgICIgICAgICAgQ0FTRSBX SEVOIHYudmFyY29sbGF0aW9uIDw+IHQudHlwY29sbGF0aW9uICIKQEAgLTU0NzUsNiArNTQ3Nyw3 IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWlfdmFybmFtZXNwYWNlID0gUFFmbnVt YmVyKHJlcywgInZhcm5hbWVzcGFjZSIpOwogCWlfdmFydHlwZSA9IFBRZm51bWJlcihyZXMsICJ2 YXJ0eXBlIik7CiAJaV92YXJ0eXBuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cG5hbWUiKTsK KwlpX3ZhcnhhY3RlbmRhY3Rpb24gPSBQUWZudW1iZXIocmVzLCAidmFyeGFjdGVuZGFjdGlvbiIp OwogCWlfdmFyY29sbGF0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcmNvbGxhdGlvbiIpOwogCiAJ aV92YXJvd25lciA9IFBRZm51bWJlcihyZXMsICJ2YXJvd25lciIpOwpAQCAtNTQ5OCw2ICs1NTAx LDkgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAKIAkJdmFyaW5mb1tpXS52YXJ0eXBl ID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnR5cGUpKTsKIAkJdmFyaW5mb1tpXS52 YXJ0eXBuYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnR5cG5hbWUpKTsK KwkJdmFyaW5mb1tpXS52YXJ4YWN0ZW5kYWN0aW9uID0KKwkJCXBnX3N0cmR1cChQUWdldHZhbHVl KHJlcywgaSwgaV92YXJ4YWN0ZW5kYWN0aW9uKSk7CisKIAkJdmFyaW5mb1tpXS52YXJjb2xsYXRp b24gPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CiAKIAkJdmFy aW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wp KTsKQEAgLTU1MzgsNiArNTU0NCw3IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25z dCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJUFFFeHBCdWZmZXIgcXVlcnk7CiAJY2hhcgkgICAq cXVhbHZhcm5hbWU7CiAJY29uc3QgY2hhciAqdmFydHlwbmFtZTsKKwljb25zdCBjaGFyICp2YXJ4 YWN0ZW5kYWN0aW9uOwogCU9pZAkJCXZhcmNvbGxhdGlvbjsKIAogCS8qIHNraXAgaWYgbm90IHRv IGJlIGR1bXBlZCAqLwpAQCAtNTU0OSw2ICs1NTU2LDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUg KmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAogCXF1YWx2YXJuYW1lID0gcGdf c3RyZHVwKGZtdFF1YWxpZmllZER1bXBhYmxlKHZhcmluZm8pKTsKIAl2YXJ0eXBuYW1lID0gdmFy aW5mby0+dmFydHlwbmFtZTsKKwl2YXJ4YWN0ZW5kYWN0aW9uID0gdmFyaW5mby0+dmFyeGFjdGVu ZGFjdGlvbjsKIAl2YXJjb2xsYXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CiAKIAlhcHBl bmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCkBAIC01NTY3LDYgKzU1 NzUsOSBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2 YXJpbmZvKQogCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkpOwogCX0KIAorCWlm IChzdHJjbXAodmFyeGFjdGVuZGFjdGlvbiwgInIiKSA9PSAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZl cihxdWVyeSwgIiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQiKTsKKwogCWFwcGVuZFBRRXhwQnVm ZmVyKHF1ZXJ5LCAiO1xuIik7CiAKIAlpZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01Q T05FTlRfREVGSU5JVElPTikKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgg Yi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDhhNjJiNWI0MTIuLmE5YWM3MGQ3NjEg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaApAQCAtNzE3LDYgKzcxNyw3IEBAIHR5cGVkZWYgc3RydWN0IF9WYXJpYWJs ZUluZm8KIAlEdW1wYWJsZUFjbCBkYWNsOwogCU9pZAkJCXZhcnR5cGU7CiAJY2hhcgkgICAqdmFy dHlwbmFtZTsKKwljaGFyCSAgICp2YXJ4YWN0ZW5kYWN0aW9uOwogCWNoYXIJICAgKnZhcmFjbDsK IAljaGFyCSAgICpydmFyYWNsOwogCWNoYXIJICAgKmluaXR2YXJhY2w7CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCmluZGV4IDY0MjNlN2I5ZDIuLjdiMGNjMmM1ZDkgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCkBAIC0zOTg3LDYgKzM5ODcsMjQgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0s CiAKKwknQ1JFQVRFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUgT04gVFJBTlNBQ1RJT04gRU5EIFJF U0VUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFU RSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9 PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTIgQVMgaW50ZWdlciBPTiBUUkFO U0FDVElPTiBFTkQgUkVTRVQ7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklB QkxFIGR1bXBfdGVzdC52YXJpYWJsZTIgQVMgaW50ZWdlciBPTiBUUkFOU0FDVElPTiBFTkQgUkVT RVQ7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2No ZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7 CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJl bWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7 CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVt cF90ZXN0LnRlc3RfdmlldwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBiZGI1YzNhMjM5Li43N2NkOGQ0MGRlIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3Jp YmUuYwpAQCAtNTI5NCw2ICs1Mjk0LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0 ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQo di52YXJvd25lcikgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENBU0Ugdi52YXJ4YWN0ZW5kYWN0 aW9uXG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdcbiIKKwkJ CQkJICAiICAgIFdIRU4gJ3InIFRIRU4gJ09OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCdcbiIKIAkJ CQkJICAiICBFTkQgYXMgXCIlc1wiXG4iLAogCQkJCQkgIGdldHRleHRfbm9vcCgiU2NoZW1hIiks CiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgK aW5kZXggMGZjNjcyYmMyYi4uMDA4ZjJlZTdjMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUu aApAQCAtNzUsNiArNzUsNyBAQCB0eXBlZGVmIGVudW0gVmFyaWFibGVYYWN0RW5kQWN0aW9uCiB7 CiAJVkFSSUFCTEVfWEFDVEVORF9OT09QID0gJ24nLAkvKiBOT09QICovCiAJVkFSSUFCTEVfWEFD VEVORF9EUk9QID0gJ2QnLAkvKiBPTiBDT01NSVQgRFJPUCAqLworCVZBUklBQkxFX1hBQ1RFTkRf UkVTRVQgPSAncicsCS8qIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCAqLwogfQkJCVZhcmlhYmxl WGFjdEVuZEFjdGlvbjsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0IGIvc3JjL3Rlc3QvaXNv bGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CmluZGV4IGE2MDk3OTdkYzUuLmU5 YTI1NGJjZDEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9u LXZhcmlhYmxlLm91dAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12 YXJpYWJsZS5vdXQKQEAgLTg2LDExICs4NiwxMiBAQCBteXZhcgogCiBzdGVwIHNyMTogUk9MTEJB Q0s7CiAKLXN0YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgb19jX2QgY3JlYXRl NCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RhcnRpbmcgcGVy bXV0YXRpb246IGNyZWF0ZTMgbGV0MyBzMyBvX2NfZCBvX2VveF9yIGNyZWF0ZTQgbGV0NCBkcm9w NCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgY2xlYW4gc3RhdGUKIHN0ZXAgY3JlYXRlMzogQ1JF QVRFIFZBUklBQkxFIG15dmFyMyBBUyB0ZXh0Owogc3RlcCBsZXQzOiBMRVQgbXl2YXIzID0gJ3Rl c3QnOwogc3RlcCBzMzogQkVHSU47CiBzdGVwIG9fY19kOiBDUkVBVEUgVEVNUCBWQVJJQUJMRSBt eXZhcl9vX2NfZCBBUyB0ZXh0IE9OIENPTU1JVCBEUk9QOworc3RlcCBvX2VveF9yOiBDUkVBVEUg VkFSSUFCTEUgbXl2YXJfb19lb3hfciBBUyB0ZXh0IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsg TEVUIG15dmFyX29fZW94X3IgPSAndGVzdCc7CiBzdGVwIGNyZWF0ZTQ6IENSRUFURSBWQVJJQUJM RSBteXZhcjQgQVMgdGV4dDsKIHN0ZXAgbGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0JzsKIHN0ZXAg ZHJvcDQ6IERST1AgVkFSSUFCTEUgbXl2YXI0OwpAQCAtMTAzLDYgKzEwNCw3IEBAIHQKIAogc3Rl cCBkaXNjYXJkOiBESVNDQVJEIFZBUklBQkxFUzsKIHN0ZXAgc2MzOiBDT01NSVQ7CitzdGVwIGNs ZWFuOiBEUk9QIFZBUklBQkxFIG15dmFyX29fZW94X3I7CiBzdGVwIHN0YXRlOiBTRUxFQ1QgdmFy bmFtZSBGUk9NIHBnX3ZhcmlhYmxlOwogdmFybmFtZQogLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYyBiL3NyYy90ZXN0L2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKaW5kZXggNDVlNjVkNDA4NS4uNWQw ODljOGE0ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFy aWFibGUuc3BlYworKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJs ZS5zcGVjCkBAIC0yNSwxMiArMjUsMTQgQEAgc2Vzc2lvbiBzMwogc3RlcCBzMwkJCXsgQkVHSU47 IH0KIHN0ZXAgbGV0MwkJeyBMRVQgbXl2YXIzID0gJ3Rlc3QnOyB9CiBzdGVwIG9fY19kCQl7IENS RUFURSBURU1QIFZBUklBQkxFIG15dmFyX29fY19kIEFTIHRleHQgT04gQ09NTUlUIERST1A7IH0K K3N0ZXAgb19lb3hfcgl7IENSRUFURSBWQVJJQUJMRSBteXZhcl9vX2VveF9yIEFTIHRleHQgT04g VFJBTlNBQ1RJT04gRU5EIFJFU0VUOyBMRVQgbXl2YXJfb19lb3hfciA9ICd0ZXN0JzsgfQogc3Rl cCBjcmVhdGU0CXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0OyB9CiBzdGVwIGxldDQJ CXsgTEVUIG15dmFyNCA9ICd0ZXN0JzsgfQogc3RlcCBkcm9wNAkJeyBEUk9QIFZBUklBQkxFIG15 dmFyNDsgfQogc3RlcCBpbnZhbDMJCXsgU0VMRUNUIENPVU5UKCopID49IDAgRlJPTSBwZ19mb3Jl aWduX3RhYmxlOyB9CiBzdGVwIGRpc2NhcmQJeyBESVNDQVJEIFZBUklBQkxFUzsgfQogc3RlcCBz YzMJCXsgQ09NTUlUOyB9CitzdGVwIGNsZWFuCQl7IERST1AgVkFSSUFCTEUgbXl2YXJfb19lb3hf cjsgfQogc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3ZhcmlhYmxlOyB9CiAK IHNlc3Npb24gczQKQEAgLTQ4LDQgKzUwLDQgQEAgcGVybXV0YXRpb24gbGV0IHZhbCBkYmcgZHJv cCBjcmVhdGUgZGJnIHZhbAogIyBjYWxsaW5nIHRoZSBkYmcgc3RlcCBhZnRlciB0aGUgY29uY3Vy cmVudCBkcm9wCiBwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFs IHNyMQogIyB0ZXN0IGZvciBESVNDQVJEIEFMTCB3aGVuIGFsbCBpbnRlcm5hbCBxdWV1ZXMgaGF2 ZSBhY3Rpb25zIHJlZ2lzdGVyZWQKLXBlcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBvX2NfZCBj cmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCitwZXJtdXRh dGlvbiBjcmVhdGUzIGxldDMgczMgb19jX2Qgb19lb3hfciBjcmVhdGU0IGxldDQgZHJvcDQgZHJv cDMgaW52YWwzIGRpc2NhcmQgc2MzIGNsZWFuIHN0YXRlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDE0ZGI5MWY5MGEuLjQ5NjdkZWM4 MWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0CkBAIC0yMzU1LDMgKzIzNTUsMzcgQEAgU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKICAgICAgMAogKDEgcm93KQogCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUOworQkVHSU47CisgIExFVCB2YXIxID0gMTAw OworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitDT01N SVQ7CistLSBzaG91bGQgYmUgTlVMTDsKK1NFTEVDVCB2YXIxIElTIE5VTEw7CisgP2NvbHVtbj8g CistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitCRUdJTjsKKyAgTEVUIHZhcjEgPSAxMDA7Cisg IFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK1JPTExCQUNL OworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxIElTIE5VTEw7CisgP2NvbHVtbj8gCist LS0tLS0tLS0tCisgdAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggNjhkY2I3MWYxNy4uMjQxNzUx YTI1YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAt MTYxOCwzICsxNjE4LDIzIEBAIENPTU1JVDsKIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Zhcmlh YmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CiAtLSBzaG91bGQgYmUgemVybwogU0VMRUNUIGNv dW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgaW50IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsKKworQkVHSU47CisgIExFVCB2YXIx ID0gMTAwOworICBTRUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIE5VTEw7CitT RUxFQ1QgdmFyMSBJUyBOVUxMOworCitCRUdJTjsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVD VCB2YXIxOworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMSBJUyBO VUxMOworCitEUk9QIFZBUklBQkxFIHZhcjE7Ci0tIAoyLjQ4LjAKCg== --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0012-implementation-of-temporary-session-variables.patch" Content-Disposition: attachment; filename="v20250117-0012-implementation-of-temporary-session-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8lw10 RnJvbSBkZjFmMTY4ODZhNzhhODI4ZGQ1ZmQwMjk0NzNkYzRkNTA1ZWNjNTEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMDoyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTIvMjJdIGltcGxlbWVudGF0aW9uIG9mIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcwoKVGhl IHRlbXBvcmFyeSB2YXJpYWJsZXMgYXJlIGNyZWF0ZWQgaW5zaWRlIHRlbXAgc2NoZW1hIGFuZCB0 aGV5IGFyZSBkcm9wcGVkIGJ5IGRyb3BwaW5nCnRoaXMgc2NoZW1hLiBGb3IgY29uc2lzdGVuY3kg d2l0aCB0ZW1wIHRhYmxlcywgdGhlIENSRUFURSBURU1QIFZBUklBQkxFIGNvbW1hbmQgc3VwcG9y dHMKT04gQ09NTUlUIERST1AgY2xhdXNlLiBUaGUgdGVtcG9yYXJ5IHZhcmlhYmxlcyB3aXRoIHRo aXMgY2xhdXNlIGFyZSBjb2xsZWN0ZWQgaW4geGFjdF9kcm9wX2l0ZW1zCmxpc3QuIFRoaXMgbGlz dCBzaG91bGQgYmUgY2FyZWZ1bGx5IG1haW50YWluZWQgYW5kIGNhbiBjb250YWluIG9ubHkgdmFs aWQgZW50cmllcyAobm90CnlldCBkcm9wcGVkKS4gRnJvbSB0aGlzIHJlYXNvbnMgbm93IHRoZSBz dWJjb21taXQgYW5kIHN1YmFib3J0aW5nIGhhdmUgdG8gYmUgaGFuZGxlZC4KLS0tCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTAgKwogZG9jL3NyYy9z Z21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgMTUgKy0KIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hhY3QuYyAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgMjcgKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAyMTggKysrKysrKysrKysrKysrKyst CiBzcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICAgICAgICAgICAgICB8ICAgNCArLQog c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDMwICsrLQog c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgIDIyICstCiBz cmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIHNy Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAgNSArLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9p bmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgNiArLQogc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmggICAgICAgICAgIHwgICAyICstCiAuLi4vaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAgIDMgKy0KIC4uLi9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICAgMyArLQogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICstLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTIwICsrKysrKysrKysKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA2NiArKysrKysKIHNy Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgMSArCiAyMyBm aWxlcyBjaGFuZ2VkLCA1NDQgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAppbmRleCAxMTA0ZDAwMzdmLi42Y2E4ZTBiMmZiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTg0 OSw2ICs5ODQ5LDE2IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24g Y291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3BhcmE+PC9l bnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPnZhcnhhY3RlbmRhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgQWN0aW9uIHBlcmZvcm1l ZCBhdCBlbmQgb2YgdHJhbnNhY3Rpb246CisgICAgICAgPGxpdGVyYWw+bjwvbGl0ZXJhbD4gPSBu byBhY3Rpb24sIDxsaXRlcmFsPmQ8L2xpdGVyYWw+ID0gZHJvcCB0aGUgdmFyaWFibGUuCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnZhcmNvbGxhdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBl Pm9pZDwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMv c2dtbC9kZGwuc2dtbAppbmRleCA1YzU4MWVlMTQzLi4xNDMzZjAzM2Q3IDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01Mzg1 LDkgKzUzODUsOSBAQCBTRUxFQ1QgY3VycmVudF91c2VyX2lkOwogICAgIDxjb21tYW5kPkxFVDwv Y29tbWFuZD4gY29tbWFuZC4gIFNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgdHJhbnNhY3Rpb25h bDoKICAgICBhbnkgY2hhbmdlcyBtYWRlIHRvIHRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFi bGUgaW4gYSB0cmFuc2FjdGlvbiB3b24ndAogICAgIGJlIHVuZG9uZSBpZiB0aGUgdHJhbnNhY3Rp b24gaXMgcm9sbGVkIGJhY2sgKGp1c3QgbGlrZSB2YXJpYWJsZXMgaW4KLSAgICBwcm9jZWR1cmFs IGxhbmd1YWdlcykuICBTZXNzaW9uIHZhcmlhYmxlcyB0aGVtc2VsdmVzIGFyZSBwZXJzaXN0ZW50 LCBidXQKLSAgICB0aGVpciB2YWx1ZXMgYXJlIG5laXRoZXIgcGVyc2lzdGVudCBub3Igc2hhcmVk IChsaWtlIHRoZSBjb250ZW50IG9mCi0gICAgdGVtcG9yYXJ5IHRhYmxlcykuCisgICAgcHJvY2Vk dXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNlbHZlcyBjYW4gYmUgcGVy c2lzdGVudAorICAgIG9yIHRlbXBvcmFyeSwgYnV0IHRoZWlyIHZhbHVlcyBhcmUgbmVpdGhlciBw ZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlCisgICAgY29udGVudCBvZiB0ZW1wb3Jhcnkg dGFibGVzKS4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFy aWFibGUuc2dtbAppbmRleCBjZDlmZjYzOTc1Li5hODhlMDE3NWJlIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI2LDcgKzI2LDggQEAgUG9zdGdyZVNRTCBkb2N1bWVu dGF0aW9uCiAKICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1DUkVBVEUgVkFSSUFCTEUg WyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlw ZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0g XSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCisgICAgWyBPTiBDT01NSVQgRFJP UCBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAgPHJlZnNlY3QxPgpAQCAtMTA0 LDYgKzEwNSwxOCBAQCBDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYgogICAgIDwvbGlzdGl0ZW0+CiAg ICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlh YmxlLW9uLWNvbW1pdC1kcm9wIj4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwv bGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8 bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwvbGl0ZXJhbD4gY2xhdXNlIHNwZWNpZmllcyB0aGUgYmVo YXZpb3VyIG9mIGEKKyAgICAgIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlIGF0IHRyYW5zYWN0 aW9uIGNvbW1pdC4gV2l0aCB0aGlzIGNsYXVzZSwgdGhlCisgICAgICBzZXNzaW9uIHZhcmlhYmxl IGlzIGRyb3BwZWQgYXQgY29tbWl0IHRpbWUuIFRoZSBjbGF1c2UgaXMgb25seSBhbGxvd2VkCisg ICAgICBmb3IgdGVtcG9yYXJ5IHZhcmlhYmxlcy4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICA8L3ZhcmlhYmxlbGlzdD4KICA8L3JlZnNlY3Qx PgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKaW5kZXggZDMzMWFiOTBkNy4uNjE2ODQxNWY4 YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1 ZGUgImNhdGFsb2cvcGdfZW51bS5oIgogI2luY2x1ZGUgImNhdGFsb2cvc3RvcmFnZS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1h bmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21tb24vcGdfcHJuZy5oIgpAQCAtMjMxNiw2ICsy MzE3LDkgQEAgQ29tbWl0VHJhbnNhY3Rpb24odm9pZCkKIAkgKi8KIAlzbWdyRG9QZW5kaW5nU3lu Y3ModHJ1ZSwgaXNfcGFyYWxsZWxfd29ya2VyKTsKIAorCS8qIHJlbW92ZSB2YWx1ZXMgb2YgZHJv cHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBmcm9tIG1lbW9yeSAqLworCUF0UHJlRU9YYWN0X1Nlc3Np b25WYXJpYWJsZXModHJ1ZSk7CisKIAkvKiBjbG9zZSBsYXJnZSBvYmplY3RzIGJlZm9yZSBsb3dl ci1sZXZlbCBjbGVhbnVwICovCiAJQXRFT1hhY3RfTGFyZ2VPYmplY3QodHJ1ZSk7CiAKQEAgLTI5 MTIsNiArMjkxNiw3IEBAIEFib3J0VHJhbnNhY3Rpb24odm9pZCkKIAlBdEFib3J0X1BvcnRhbHMo KTsKIAlzbWdyRG9QZW5kaW5nU3luY3MoZmFsc2UsIGlzX3BhcmFsbGVsX3dvcmtlcik7CiAJQXRF T1hhY3RfTGFyZ2VPYmplY3QoZmFsc2UpOworCUF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMo ZmFsc2UpOwogCUF0QWJvcnRfTm90aWZ5KCk7CiAJQXRFT1hhY3RfUmVsYXRpb25NYXAoZmFsc2Us IGlzX3BhcmFsbGVsX3dvcmtlcik7CiAJQXRBYm9ydF9Ud29waGFzZSgpOwpAQCAtNTE3Nyw2ICs1 MTgyLDggQEAgQ29tbWl0U3ViVHJhbnNhY3Rpb24odm9pZCkKIAlBdEVPU3ViWGFjdF9TUEkodHJ1 ZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJQXRFT1N1YlhhY3Rfb25fY29tbWl0X2FjdGlvbnMo dHJ1ZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwKIAkJCQkJCQkJICBzLT5wYXJlbnQtPnN1YlRyYW5z YWN0aW9uSWQpOworCUF0RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXModHJ1ZSwgcy0+c3ViVHJh bnNhY3Rpb25JZCwKKwkJCQkJCQkJIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJQXRF T1N1YlhhY3RfTmFtZXNwYWNlKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJCQkJCQkgIHMt PnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJQXRFT1N1YlhhY3RfRmlsZXModHJ1ZSwgcy0+ c3ViVHJhbnNhY3Rpb25JZCwKQEAgLTUzNDIsNiArNTM0OSw4IEBAIEFib3J0U3ViVHJhbnNhY3Rp b24odm9pZCkKIAkJQXRFT1N1YlhhY3RfU1BJKGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkKTsK IAkJQXRFT1N1YlhhY3Rfb25fY29tbWl0X2FjdGlvbnMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9u SWQsCiAJCQkJCQkJCQkgIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CisJCUF0RU9TdWJY YWN0X1Nlc3Npb25WYXJpYWJsZXMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCisJCQkJCQkJ CQkgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKIAkJQXRFT1N1YlhhY3RfTmFtZXNwYWNl KGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkLAogCQkJCQkJCSAgcy0+cGFyZW50LT5zdWJUcmFu c2FjdGlvbklkKTsKIAkJQXRFT1N1YlhhY3RfRmlsZXMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9u SWQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKaW5kZXggZDY3MmQyYTljYi4uMDBjOTBlYTZm ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMzYsNyArMzYsOCBAQCBzdGF0aWMg T2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQkJ CQkJCSBpbnQzMiB2YXJUeXBtb2QsCiAJCQkJCQkJCQkgT2lkIHZhck93bmVyLAogCQkJCQkJCQkJ IE9pZCB2YXJDb2xsYXRpb24sCi0JCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzKTsKKwkJCQkJ CQkJCSBib29sIGlmX25vdF9leGlzdHMsCisJCQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9u IHZhclhhY3RFbmRBY3Rpb24pOwogCiAKIC8qCkBAIC00OSw3ICs1MCw4IEBAIGNyZWF0ZV92YXJp YWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCQkJCWludDMyIHZhclR5cG1vZCwKIAkJCQlPaWQg dmFyT3duZXIsCiAJCQkJT2lkIHZhckNvbGxhdGlvbiwKLQkJCQlib29sIGlmX25vdF9leGlzdHMp CisJCQkJYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCVZhcmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJY YWN0RW5kQWN0aW9uKQogewogCUFjbAkJICAgKnZhcmFjbDsKIAlOYW1lRGF0YQl2YXJuYW1lOwpA QCAtMTEwLDYgKzExMiw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAog CXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnR5cG1vZCAtIDFdID0gSW50MzJHZXREYXR1bSh2 YXJUeXBtb2QpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm93bmVyIC0gMV0gPSBPYmpl Y3RJZEdldERhdHVtKHZhck93bmVyKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xs YXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKKwl2YWx1ZXNbQW51 bV9wZ192YXJpYWJsZV92YXJ4YWN0ZW5kYWN0aW9uIC0gMV0gPSBDaGFyR2V0RGF0dW0odmFyWGFj dEVuZEFjdGlvbik7CiAKIAl2YXJhY2wgPSBnZXRfdXNlcl9kZWZhdWx0X2FjbChPQkpFQ1RfVkFS SUFCTEUsIHZhck93bmVyLAogCQkJCQkJCQkgIHZhck5hbWVzcGFjZSk7CkBAIC0xODMsNiArMTg2 LDEzIEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZh clN0bXQgKnN0bXQpCiAJT2lkCQkJdHlwY29sbGF0aW9uOwogCU9iamVjdEFkZHJlc3MgdmFyaWFi bGU7CiAKKwkvKiBjaGVjayBjb25zaXN0ZW5jeSBvZiBhcmd1bWVudHMgKi8KKwlpZiAoc3RtdC0+ WGFjdEVuZEFjdGlvbiA9PSBWQVJJQUJMRV9YQUNURU5EX0RST1AKKwkJJiYgc3RtdC0+dmFyaWFi bGUtPnJlbHBlcnNpc3RlbmNlICE9IFJFTFBFUlNJU1RFTkNFX1RFTVApCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJ CQkgZXJybXNnKCJPTiBDT01NSVQgRFJPUCBjYW4gb25seSBiZSB1c2VkIG9uIHRlbXBvcmFyeSB2 YXJpYWJsZXMiKSkpOworCiAJbmFtZXNwYWNlaWQgPQogCQlSYW5nZVZhckdldEFuZENoZWNrQ3Jl YXRpb25OYW1lc3BhY2Uoc3RtdC0+dmFyaWFibGUsIE5vTG9jaywgTlVMTCk7CiAKQEAgLTIyMiwx MSArMjMyLDE3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vz c2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAgdHlwbW9kLAogCQkJCQkJCSAgIHZhcm93bmVy LAogCQkJCQkJCSAgIGNvbGxhdGlvbiwKLQkJCQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzKTsK KwkJCQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzLAorCQkJCQkJCSAgIHN0bXQtPlhhY3RFbmRB Y3Rpb24pOwogCiAJZWxvZyhERUJVRzEsICJyZWNvcmQgZm9yIHNlc3Npb24gdmFyaWFibGUgXCIl c1wiIChvaWQ6JWQpIHdhcyBjcmVhdGVkIGluIHBnX3ZhcmlhYmxlIiwKIAkJIHN0bXQtPnZhcmlh YmxlLT5yZWxuYW1lLCB2YXJpYWJsZS5vYmplY3RJZCk7CiAKKwkvKiB3ZSB3YW50IFNlc3Npb25W YXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNzIHRvIHNlZSB0aGUgY2F0YWxvZyBjaGFuZ2VzLiAqLwor CUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CisKKwlTZXNzaW9uVmFyaWFibGVDcmVhdGVQb3N0 cHJvY2Vzcyh2YXJpYWJsZS5vYmplY3RJZCwgc3RtdC0+WGFjdEVuZEFjdGlvbik7CisKIAlyZXR1 cm4gdmFyaWFibGU7CiB9CiAKQEAgLTIzOSw2ICsyNTUsNyBAQCBEcm9wVmFyaWFibGVCeUlkKE9p ZCB2YXJpZCkKIHsKIAlSZWxhdGlvbglyZWw7CiAJSGVhcFR1cGxlCXR1cDsKKwljaGFyCQlYYWN0 RW5kQWN0aW9uOwogCiAJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIFJvd0V4 Y2x1c2l2ZUxvY2spOwogCkBAIC0yNDcsNiArMjY0LDggQEAgRHJvcFZhcmlhYmxlQnlJZChPaWQg dmFyaWQpCiAJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCiAJCWVsb2coRVJST1IsICJjYWNo ZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsKIAorCVhhY3RFbmRBY3Rp b24gPSAoKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApKS0+dmFyeGFjdGVuZGFjdGlv bjsKKwogCUNhdGFsb2dUdXBsZURlbGV0ZShyZWwsICZ0dXAtPnRfc2VsZik7CiAKIAlSZWxlYXNl U3lzQ2FjaGUodHVwKTsKQEAgLTI1NCw1ICsyNzMsNSBAQCBEcm9wVmFyaWFibGVCeUlkKE9pZCB2 YXJpZCkKIAl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCiAJLyogZG8gdGhl IG5lY2Vzc2FyeSBjbGVhbnVwIGluIGxvY2FsIG1lbW9yeSwgaWYgbmVlZGVkICovCi0JU2Vzc2lv blZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKHZhcmlkKTsKKwlTZXNzaW9uVmFyaWFibGVEcm9wUG9z dHByb2Nlc3ModmFyaWQsIFhhY3RFbmRBY3Rpb24pOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5jCmluZGV4IDdjMTU5ODYwYjQuLmE2YmJlY2Y0ZTIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTE2LDYgKzE2LDggQEAKIAogI2luY2x1 ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvZGVwZW5kZW5jeS5oIgorI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNl LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4 ZWN1dG9yL3NwaS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCkBA IC0zMiw2ICszNCwxOSBAQAogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1 dGlscy9zeXNjYWNoZS5oIgogCit0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVYQWN0RHJvcEl0ZW0K K3sKKwlPaWQJCQl2YXJpZDsJCQkvKiB2YXJpZCBvZiBzZXNzaW9uIHZhcmlhYmxlICovCisKKwkv KgorCSAqIGNyZWF0aW5nX3N1YmlkIGlzIHRoZSBJRCBvZiB0aGUgY3JlYXRpbmcgc3VieGFjdC4g SWYgdGhlIGFjdGlvbiB3YXMKKwkgKiB1bnJlZ2lzdGVyZWQgZHVyaW5nIHRoZSBjdXJyZW50IHRy YW5zYWN0aW9uLCBkZWxldGluZ19zdWJpZCBpcyB0aGUgSUQKKwkgKiBvZiB0aGUgZGVsZXRpbmcg c3VieGFjdCwgb3RoZXJ3aXNlIEludmFsaWRTdWJUcmFuc2FjdGlvbklkLgorCSAqLworCVN1YlRy YW5zYWN0aW9uSWQgY3JlYXRpbmdfc3ViaWQ7CisJU3ViVHJhbnNhY3Rpb25JZCBkZWxldGluZ19z dWJpZDsKK30gU1ZhcmlhYmxlWEFjdERyb3BJdGVtOworCiAvKgogICogVGhlIHNlc3Npb24gdmFy aWFibGVzIHVzZSBmZW5jZSBjb250ZXh0IGFsbG93IHRvIHNwZWNpZnkKICAqIHRoZSBjb250ZXh0 cyB3aGVyZSB1c2luZyBzZXNzaW9uIHZhcmlhYmxlIGZlbmNlcyBhcmUgcmVxdWlyZWQuCkBAIC0x MDQsMTMgKzExOSwyMSBAQCBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250 ZXh0ID0gTlVMTDsKIHN0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKIAogLyoK LSAqIFRoZSBjb250ZW50IG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgbm90IHJlbW92 ZWQgaW1tZWRpYXRlbHkuICBXZSBkbwotICogdGhhdCBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvbiB0 aGF0IHJlYWRzIG9yIHdyaXRlcyBhIHNlc3Npb24gdmFyaWFibGUuCi0gKiAidmFsaWRhdGVkX2x4 aWQiIHN0b3JlcyB0aGUgdHJhbnNhY3Rpb24gdGhhdCBwZXJmb3JtZWQgc2FpZCB2YWxpZGF0aW9u LCBzbwotICogdGhhdCB3ZSBjYW4gYXZvaWQgcmVwZWF0aW5nIHRoZSBlZmZvcnQuCisgKiBUaGUg Y29udGVudCBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVk aWF0ZWx5LiAgSWYKKyAqIHBvc3NpYmxlLCB3ZSBkbyB0aGF0IGF0IHRoZSBlbmQgb2YgdGhlIHRy YW5zYWN0aW9uLiAgQnV0IHdlIGNhbm5vdCBkbyB0aGF0CisgKiBpZiB0aGUgdHJhbnNhY3Rpb24g YWJvcnRlZCwgYmVjYXVzZSB3ZSBsb3N0IGFjY2VzcyB0byB0aGUgc3lzdGVtIGNhdGFsb2cuCisg KiBJbiB0aGF0IGNhc2UsIHdlIGNsZWFuIHVwIGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uIHRoYXQg cmVhZHMgb3Igd3JpdGVzIGEKKyAqIHNlc3Npb24gdmFyaWFibGUuICAidmFsaWRhdGVkX2x4aWQi IHN0b3JlcyB0aGUgdHJhbnNhY3Rpb24gdGhhdCBwZXJmb3JtZWQKKyAqIHNhaWQgdmFsaWRhdGlv biwgc28gdGhhdCB3ZSBjYW4gYXZvaWQgcmVwZWF0aW5nIHRoZSBlZmZvcnQuCiAgKi8KIHN0YXRp YyBMb2NhbFRyYW5zYWN0aW9uSWQgdmFsaWRhdGVkX2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2Fj dGlvbklkOwogCisvKiBsaXN0IGhvbGRzIGZpZWxkcyBvZiBTVmFyaWFibGVYQWN0RHJvcEl0ZW0g dHlwZSAqLworc3RhdGljIExpc3QgKnhhY3RfZHJvcF9pdGVtcyA9IE5JTDsKKworc3RhdGljIHZv aWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKK3N0YXRp YyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsK KwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRh dGlvbi4KICAqLwpAQCAtMTQ3LDE2ICsxNzAsNDUgQEAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJh Y2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKIAl9CiB9CiAKKy8q CisgKiBEbyB0aGUgbmVjZXNzYXJ5IHdvcmsgdG8gc2V0dXAgbG9jYWwgbWVtb3J5IG1hbmFnZW1l bnQgb2YgYSBuZXcKKyAqIHZhcmlhYmxlLgorICoKKyAqIENhbGxlciBzaG91bGQgYWxyZWFkeSBo YXZlIGNyZWF0ZWQgdGhlIG5lY2Vzc2FyeSBlbnRyeSBpbiBjYXRhbG9nCisgKiBhbmQgbWFkZSB0 aGVtIHZpc2libGUuCisgKi8KK3ZvaWQKK1Nlc3Npb25WYXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNz KE9pZCB2YXJpZCwgY2hhciBYYWN0RW5kQWN0aW9uKQoreworCS8qCisJICogRm9yIHRlbXBvcmFy eSB2YXJpYWJsZXMsIHdlIG5lZWQgdG8gY3JlYXRlIGEgbmV3IGVuZCBvZiB4YWN0IGFjdGlvbiB0 bworCSAqIGVuc3VyZSBkZWxldGlvbiBmcm9tIGNhdGFsb2cuCisJICovCisJaWYgKFhhY3RFbmRB Y3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QKQorCXsKKwkJQXNzZXJ0KGlzVGVtcE5hbWVz cGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSk7CisKKwkJcmVnaXN0 ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AodmFyaWQpOworCX0KK30KKwogLyoKICAqIEhh bmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNsZWFudXAgZm9yIGEgRFJPUCBWQVJJQUJMRSBjb21tYW5k LgogICoKICAqIENhbGxlciBzaG91bGQgdGFrZSBjYXJlIG9mIHJlbW92aW5nIHRoZSBwZ192YXJp YWJsZSBlbnRyeSBmaXJzdC4KICAqLwogdm9pZAotU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9j ZXNzKE9pZCB2YXJpZCkKK1Nlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQs IGNoYXIgWGFjdEVuZEFjdGlvbikKIHsKIAlBc3NlcnQoTG9jYWxUcmFuc2FjdGlvbklkSXNWYWxp ZChNeVByb2MtPnZ4aWQubHhpZCkpOwogCisJaWYgKFhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVf WEFDVEVORF9EUk9QKQorCXsKKwkJQXNzZXJ0KGlzVGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSk7CisKKwkJdW5yZWdpc3Rlcl9zZXNzaW9uX3Zhcmlh YmxlX3hhY3RfZHJvcCh2YXJpZCk7CisJfQorCiAJaWYgKHNlc3Npb252YXJzKQogCXsKIAkJYm9v bAkJZm91bmQ7CkBAIC0xNzgsNiArMjMwLDU3IEBAIFNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJv Y2VzcyhPaWQgdmFyaWQpCiAJfQogfQogCisvKgorICogUmVnaXN0cmF0aW9uIG9mIGFjdGlvbnMg dG8gYmUgZXhlY3V0ZWQgb24gc2Vzc2lvbiB2YXJpYWJsZXMgYXQgdHJhbnNhY3Rpb24KKyAqIGVu ZCB0aW1lLiBXZSB3YW50IHRvIGRyb3AgdGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzIHdpdGgg Y2xhdXNlIE9OIENPTU1JVAorICogRFJPUC4KKyAqLworCisvKgorICogUmVnaXN0ZXIgYSBzZXNz aW9uIHZhcmlhYmxlIHhhY3QgYWN0aW9uLgorICovCitzdGF0aWMgdm9pZAorcmVnaXN0ZXJfc2Vz c2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKQoreworCVNWYXJpYWJsZVhBY3REcm9w SXRlbSAqeGFjdF9haTsKKwlNZW1vcnlDb250ZXh0IG9sZGN4dDsKKworCW9sZGN4dCA9IE1lbW9y eUNvbnRleHRTd2l0Y2hUbyhDYWNoZU1lbW9yeUNvbnRleHQpOworCisJeGFjdF9haSA9IChTVmFy aWFibGVYQWN0RHJvcEl0ZW0gKikKKwkJcGFsbG9jKHNpemVvZihTVmFyaWFibGVYQWN0RHJvcEl0 ZW0pKTsKKworCXhhY3RfYWktPnZhcmlkID0gdmFyaWQ7CisKKwl4YWN0X2FpLT5jcmVhdGluZ19z dWJpZCA9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlvbklkKCk7CisJeGFjdF9haS0+ZGVsZXRpbmdf c3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKworCXhhY3RfZHJvcF9pdGVtcyA9IGxj b25zKHhhY3RfYWksIHhhY3RfZHJvcF9pdGVtcyk7CisKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8o b2xkY3h0KTsKK30KKworLyoKKyAqIFVucmVnaXN0ZXIgYW4gaWQgb2YgYSBnaXZlbiBzZXNzaW9u IHZhcmlhYmxlIGZyb20gZHJvcCBsaXN0LiBJbiB0aGlzCisgKiBtb21lbnQsIHRoZSBhY3Rpb24g aXMganVzdCBtYXJrZWQgYXMgZGVsZXRlZCBieSBzZXR0aW5nIGRlbGV0aW5nX3N1YmlkLiBUaGUK KyAqIGNhbGxpbmcgZXZlbiBtaWdodCBiZSByb2xsYmFja2VkLCBpbiB3aGljaCBjYXNlIHdlIHNo b3VsZCBub3QgbG9zZSB0aGlzCisgKiBhY3Rpb24uCisgKi8KK3N0YXRpYyB2b2lkCit1bnJlZ2lz dGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCkKK3sKKwlMaXN0Q2VsbCAg ICpsOworCisJZm9yZWFjaChsLCB4YWN0X2Ryb3BfaXRlbXMpCisJeworCQlTVmFyaWFibGVYQWN0 RHJvcEl0ZW0gKnhhY3RfYWkgPQorCQkJKFNWYXJpYWJsZVhBY3REcm9wSXRlbSAqKSBsZmlyc3Qo bCk7CisKKwkJaWYgKHhhY3RfYWktPnZhcmlkID09IHZhcmlkKQorCQkJeGFjdF9haS0+ZGVsZXRp bmdfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOworCX0KK30KKwogLyoKICAq IFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1lbW9yeQogICovCkBAIC0yMzAsOSArMzMzLDEx IEBAIGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoU1ZhcmlhYmxlIHN2YXIpCiAvKgogICogQ2hl Y2sgYWxsIHBvdGVudGlhbGx5IGludmFsaWQgc2Vzc2lvbiB2YXJpYWJsZSBkYXRhIGluIGxvY2Fs IG1lbW9yeSBhbmQgZnJlZQogICogdGhlIG1lbW9yeSBmb3IgYWxsIGludmFsaWQgb25lcy4gIFRo aXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSBhbnkgcmVhZCBvcgotICogd3JpdGUgb2YgYSBz ZXNzaW9uIHZhcmlhYmxlLiAgRnJlZWluZyBvZiBhIHZhcmlhYmxlJ3MgbWVtb3J5IGlzIHBvc3Rw b25lZCBpZgotICogdGhlIHZhcmlhYmxlIGhhcyBiZWVuIGRyb3BwZWQgYnkgdGhlIGN1cnJlbnQg dHJhbnNhY3Rpb24sIHNpbmNlIHRoYXQKLSAqIG9wZXJhdGlvbiBjb3VsZCBzdGlsbCBiZSByb2xs ZWQgYmFjay4KKyAqIHdyaXRlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBvciB3aGVuIHRoZSB0cmFu c2FjdGlvbiBlbmRzLiAgQXQgdGhlIGVuZCBvZiBhCisgKiB0cmFuc2FjdGlvbiAoYXRFT1ggaXMg dHJ1ZSkgd2UgY2FuIGRpc2NhcmQgYWxsIGludmFsaWQgdmFyaWFibGVzLiAgSW5zaWRlIGEKKyAq IHRyYW5zYWN0aW9uIChhdEVPWCBpcyBmYWxzZSkgd2UgcG9zdHBvbmUgZnJlZWluZyBhIHZhcmlh YmxlJ3MgbWVtb3J5IGlmIHRoZQorICogdmFyaWFibGUgaGFzIGJlZW4gZHJvcHBlZCBieSB0aGUg Y3VycmVudCB0cmFuc2FjdGlvbiwgc2luY2UgdGhhdCBvcGVyYXRpb24KKyAqIGNvdWxkIHN0aWxs IGJlIHJvbGxlZCBiYWNrLgogICoKICAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgcmVjZWl2ZSBh IGNhY2hlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdoaWxlCiAgKiByZW1vdmVfaW52YWxpZF9zZXNz aW9uX3ZhcmlhYmxlcygpIGlzIGV4ZWN1dGluZywgc28gd2UgY2Fubm90IGd1YXJhbnRlZSB0aGF0 CkBAIC0yNDAsNyArMzQ1LDcgQEAgaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChTVmFyaWFibGUg c3ZhcikKICAqIGRvbmUuICBIb3dldmVyLCB3ZSBjYW4gZ3VhcmFudGVlIHRoYXQgYWxsIGVudHJp ZXMgZ2V0IGNoZWNrZWQgb25jZS4KICAqLwogc3RhdGljIHZvaWQKLXJlbW92ZV9pbnZhbGlkX3Nl c3Npb25fdmFyaWFibGVzKHZvaWQpCityZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhi b29sIGF0RU9YKQogewogCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CiAJU1ZhcmlhYmxlCXN2YXI7 CkBAIC0yNjcsNyArMzcyLDcgQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXModm9p ZCkKIAl7CiAJCWlmICghc3Zhci0+aXNfdmFsaWQpCiAJCXsKLQkJCWlmIChzdmFyLT5kcm9wX2x4 aWQgPT0gTXlQcm9jLT52eGlkLmx4aWQpCisJCQlpZiAoIWF0RU9YICYmIHN2YXItPmRyb3BfbHhp ZCA9PSBNeVByb2MtPnZ4aWQubHhpZCkKIAkJCXsKIAkJCQkvKiB0cnkgYWdhaW4gaW4gdGhlIG5l eHQgdHJhbnNhY3Rpb24gKi8KIAkJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1ZTsKQEAgLTI4OCw2 ICszOTMsOTUgQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXModm9pZCkKIAl9CiB9 CiAKKy8qCisgICogUGVyZm9ybSBPTiBDT01NSVQgRFJPUCBmb3IgdGVtcG9yYXJ5IHNlc3Npb24g dmFyaWFibGVzLAorICAqIGFuZCByZW1vdmUgYWxsIGRyb3BwZWQgdmFyaWFibGVzIGZyb20gbWVt b3J5LgorICovCit2b2lkCitBdFByZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJvb2wgaXNDb21t aXQpCit7CisJaWYgKGlzQ29tbWl0KQorCXsKKwkJaWYgKHhhY3RfZHJvcF9pdGVtcykKKwkJewor CQkJTGlzdENlbGwgICAqbDsKKworCQkJZm9yZWFjaChsLCB4YWN0X2Ryb3BfaXRlbXMpCisJCQl7 CisJCQkJU1ZhcmlhYmxlWEFjdERyb3BJdGVtICp4YWN0X2FpID0KKwkJCQkJKFNWYXJpYWJsZVhB Y3REcm9wSXRlbSAqKSBsZmlyc3QobCk7CisKKwkJCQkvKiBpdGVyYXRlIG9ubHkgb3ZlciBlbnRy aWVzIHRoYXQgYXJlIHN0aWxsIHBlbmRpbmcgKi8KKwkJCQlpZiAoeGFjdF9haS0+ZGVsZXRpbmdf c3ViaWQgPT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJCQkJeworCQkJCQlPYmplY3RBZGRy ZXNzIG9iamVjdDsKKworCQkJCQlvYmplY3QuY2xhc3NJZCA9IFZhcmlhYmxlUmVsYXRpb25JZDsK KwkJCQkJb2JqZWN0Lm9iamVjdElkID0geGFjdF9haS0+dmFyaWQ7CisJCQkJCW9iamVjdC5vYmpl Y3RTdWJJZCA9IDA7CisKKwkJCQkJLyoKKwkJCQkJICogU2luY2UgdGhpcyBpcyBhbiBhdXRvbWF0 aWMgZHJvcCwgcmF0aGVyIHRoYW4gb25lCisJCQkJCSAqIGRpcmVjdGx5IGluaXRpYXRlZCBieSB0 aGUgdXNlciwgd2UgcGFzcyB0aGUKKwkJCQkJICogUEVSRk9STV9ERUxFVElPTl9JTlRFUk5BTCBm bGFnLgorCQkJCQkgKi8KKwkJCQkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIChvaWQ6 JXUpIHdpbGwgYmUgZGVsZXRlZCAoZm9yY2VkIGJ5IE9OIENPTU1JVCBEUk9QIGNsYXVzZSkiLAor CQkJCQkJIHhhY3RfYWktPnZhcmlkKTsKKworCQkJCQlwZXJmb3JtRGVsZXRpb24oJm9iamVjdCwg RFJPUF9DQVNDQURFLAorCQkJCQkJCQkJUEVSRk9STV9ERUxFVElPTl9JTlRFUk5BTCB8CisJCQkJ CQkJCQlQRVJGT1JNX0RFTEVUSU9OX1FVSUVUTFkpOworCQkJCX0KKwkJCX0KKwkJfQorCisJCXJl bW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKHRydWUpOworCX0KKworCS8qCisJICogV2Ug aGF2ZSB0byBjbGVhbiB4YWN0X2Ryb3BfaXRlbXMuIEFsbCByZWxhdGVkIHZhcmlhYmxlcyBhcmUg ZHJvcHBlZAorCSAqIG5vdywgb3IgbG9zdCBpbnNpZGUgYWJvcnRlZCB0cmFuc2FjdGlvbi4KKwkg Ki8KKwlsaXN0X2ZyZWVfZGVlcCh4YWN0X2Ryb3BfaXRlbXMpOworCXhhY3RfZHJvcF9pdGVtcyA9 IE5VTEw7Cit9CisKKy8qCisgKiBQb3N0LXN1YmNvbW1pdCBvciBwb3N0LXN1YmFib3J0IGNsZWFu dXAgb2YgeGFjdCBkcm9wIGxpc3QuCisgKgorICogRHVyaW5nIHN1YmFib3J0LCB3ZSBjYW4gaW1t ZWRpYXRlbHkgcmVtb3ZlIGVudHJpZXMgY3JlYXRlZCBkdXJpbmcgdGhpcworICogc3VidHJhbnNh Y3Rpb24uIER1cmluZyBzdWJjb21taXQsIGp1c3QgdHJhbnNmZXIgZW50cmllcyBtYXJrZWQgZHVy aW5nCisgKiB0aGlzIHN1YnRyYW5zYWN0aW9uIGFzIGJlaW5nIHRoZSBwYXJlbnQncyByZXNwb25z aWJpbGl0eS4KKyAqLwordm9pZAorQXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlz Q29tbWl0LAorCQkJCQkJCSBTdWJUcmFuc2FjdGlvbklkIG15U3ViaWQsCisJCQkJCQkJIFN1YlRy YW5zYWN0aW9uSWQgcGFyZW50U3ViaWQpCit7CisJTGlzdENlbGwgICAqY3VyX2l0ZW07CisKKwlm b3JlYWNoKGN1cl9pdGVtLCB4YWN0X2Ryb3BfaXRlbXMpCisJeworCQlTVmFyaWFibGVYQWN0RHJv cEl0ZW0gKnhhY3RfYWkgPQorCQkJKFNWYXJpYWJsZVhBY3REcm9wSXRlbSAqKSBsZmlyc3QoY3Vy X2l0ZW0pOworCisJCWlmICghaXNDb21taXQgJiYgeGFjdF9haS0+Y3JlYXRpbmdfc3ViaWQgPT0g bXlTdWJpZCkKKwkJeworCQkJLyogY3VyX2l0ZW0gbXVzdCBiZSByZW1vdmVkICovCisJCQl4YWN0 X2Ryb3BfaXRlbXMgPSBmb3JlYWNoX2RlbGV0ZV9jdXJyZW50KHhhY3RfZHJvcF9pdGVtcywgY3Vy X2l0ZW0pOworCQkJcGZyZWUoeGFjdF9haSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBjdXJf aXRlbSBtdXN0IGJlIHByZXNlcnZlZCAqLworCQkJaWYgKHhhY3RfYWktPmNyZWF0aW5nX3N1Ymlk ID09IG15U3ViaWQpCisJCQkJeGFjdF9haS0+Y3JlYXRpbmdfc3ViaWQgPSBwYXJlbnRTdWJpZDsK KwkJCWlmICh4YWN0X2FpLT5kZWxldGluZ19zdWJpZCA9PSBteVN1YmlkKQorCQkJCXhhY3RfYWkt PmRlbGV0aW5nX3N1YmlkID0gaXNDb21taXQgPyBwYXJlbnRTdWJpZCA6IEludmFsaWRTdWJUcmFu c2FjdGlvbklkOworCQl9CisJfQorfQorCiAvKgogICogSW5pdGlhbGl6ZSBhdHRyaWJ1dGVzIGNh Y2hlZCBpbiAic3ZhciIKICAqLwpAQCAtNDQ2LDcgKzY0MCw3IEBAIGdldF9zZXNzaW9uX3Zhcmlh YmxlKE9pZCB2YXJpZCkKIAkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCiAJ ewogCQkvKiBmcmVlIHRoZSBtZW1vcnkgZnJvbSBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzICov Ci0JCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCk7CisJCXJlbW92ZV9pbnZhbGlk X3Nlc3Npb25fdmFyaWFibGVzKGZhbHNlKTsKIAogCQkvKiBkb24ndCByZXBlYXQgdGhlIGFib3Zl IHN0ZXAgaW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gKi8KIAkJdmFsaWRhdGVkX2x4aWQgPSBNeVBy b2MtPnZ4aWQubHhpZDsKQEAgLTU0Miw3ICs3MzYsNyBAQCBTZXRTZXNzaW9uVmFyaWFibGUoT2lk IHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCiAJCXZhbGlkYXRlZF9seGlkICE9IE15 UHJvYy0+dnhpZC5seGlkKQogCXsKIAkJLyogZnJlZSB0aGUgbWVtb3J5IGZyb20gZHJvcHBlZCBz ZXNzaW9uIHZhcmlhYmxlcyAqLwotCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygp OworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhmYWxzZSk7CiAKIAkJLyogZG9u J3QgcmVwZWF0IHRoZSBhYm92ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uICovCiAJCXZh bGlkYXRlZF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy92aWV3LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMKaW5kZXggNmYw MzAxNTU1ZS4uNmJlZjlhMjYxMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmll dy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYwpAQCAtNDg0LDcgKzQ4NCw3IEBA IERlZmluZVZpZXcoVmlld1N0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCSAq LwogCXZpZXcgPSBjb3B5T2JqZWN0KHN0bXQtPnZpZXcpOwkvKiBkb24ndCBjb3JydXB0IG9yaWdp bmFsIGNvbW1hbmQgKi8KIAlpZiAodmlldy0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVO Q0VfUEVSTUFORU5UCi0JCSYmIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbih2aWV3UGFyc2UpKQor CQkmJiBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KHZpZXdQYXJzZSkpCiAJewogCQl2aWV3LT5yZWxw ZXJzaXN0ZW5jZSA9IFJFTFBFUlNJU1RFTkNFX1RFTVA7CiAJCWVyZXBvcnQoTk9USUNFLApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9hbmFseXplLmMKaW5kZXggNzI1ZjY3OGUyZi4uYzBjM2FiZDdhMCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6 ZS5jCkBAIC0zNDkxLDEwICszNDkxLDEwIEBAIHRyYW5zZm9ybUNyZWF0ZVRhYmxlQXNTdG10KFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlVGFibGVBc1N0bXQgKnN0bXQpCiAJCSAqIGNyZWF0aW9u IHF1ZXJ5LiBJdCB3b3VsZCBiZSBoYXJkIHRvIHJlZnJlc2ggZGF0YSBvciBpbmNyZW1lbnRhbGx5 CiAJCSAqIG1haW50YWluIGl0IGlmIGEgc291cmNlIGRpc2FwcGVhcmVkLgogCQkgKi8KLQkJaWYg KGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbihxdWVyeSkpCisJCWlmIChpc1F1ZXJ5VXNpbmdUZW1w T2JqZWN0KHF1ZXJ5KSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVf RkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJIGVycm1zZygibWF0ZXJpYWxpemVkIHZpZXdz IG11c3Qgbm90IHVzZSB0ZW1wb3JhcnkgdGFibGVzIG9yIHZpZXdzIikpKTsKKwkJCQkJIGVycm1z ZygibWF0ZXJpYWxpemVkIHZpZXdzIG11c3Qgbm90IHVzZSB0ZW1wb3JhcnkgdGFibGVzLCB2aWV3 cyBvciBzZXNzaW9uIHZhcmlhYmxlcyIpKSk7CiAKIAkJLyoKIAkJICogQSBtYXRlcmlhbGl6ZWQg dmlldyB3b3VsZCBlaXRoZXIgbmVlZCB0byBzYXZlIHBhcmFtZXRlcnMgZm9yIHVzZSBpbgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKaW5kZXggYzhmMzc4YjUzNS4uNjhmMGIxNDM5NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC00NzMs NiArNDczLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJl bG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxpdmFsPgkgT3B0VGVt cAogJXR5cGUgPGl2YWw+CSBPcHROb0xvZwogJXR5cGUgPG9uY29tbWl0PiBPbkNvbW1pdE9wdGlv bgorJXR5cGUgPGl2YWw+CSBYYWN0RW5kQWN0aW9uT3B0aW9uCiAKICV0eXBlIDxpdmFsPglmb3Jf bG9ja2luZ19zdHJlbmd0aAogJXR5cGUgPG5vZGU+CWZvcl9sb2NraW5nX2l0ZW0KQEAgLTUyNTYs MjYgKzUyNTcsMzkgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KIAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgVkFSSUFCTEUgcXVh bGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZQorCQkJQ1JFQVRF IE9wdFRlbXAgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xs YXRlX2NsYXVzZSBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVTZXNzaW9u VmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKLQkJCQkJbi0+dmFy aWFibGUgPSAkMzsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkNTsKLQkJCQkJbi0+Y29sbENsYXVzZSA9 IChDb2xsYXRlQ2xhdXNlICopICQ2OworCQkJCQkkNC0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJ CQkJbi0+dmFyaWFibGUgPSAkNDsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkNjsKKwkJCQkJbi0+Y29s bENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ3OworCQkJCQluLT5YYWN0RW5kQWN0aW9uID0g JDg7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBu OwogCQkJCX0KLQkJCXwgQ1JFQVRFIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRf bmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlCisJCQl8IENSRUFURSBPcHRU ZW1wIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5h bWUgb3B0X2NvbGxhdGVfY2xhdXNlIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNy ZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwot CQkJCQluLT52YXJpYWJsZSA9ICQ2OwotCQkJCQluLT50eXBlTmFtZSA9ICQ4OwotCQkJCQluLT5j b2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDk7CisJCQkJCSQ3LT5yZWxwZXJzaXN0ZW5j ZSA9ICQyOworCQkJCQluLT52YXJpYWJsZSA9ICQ3OworCQkJCQluLT50eXBlTmFtZSA9ICQ5Owor CQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDEwOworCQkJCQluLT5YYWN0 RW5kQWN0aW9uID0gJDExOwogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQg PSAoTm9kZSAqKSBuOwogCQkJCX0KIAkJOwogCisvKgorICogVGVtcG9yYXJ5IHNlc3Npb24gdmFy aWFibGVzIGNhbiBiZSBkcm9wcGVkIG9uIHN1Y2Nlc3NmdWwKKyAqIHRyYW5zYWN0aW9uIGVuZCBs aWtlIHRhYmxlcy4KKyAqLworWGFjdEVuZEFjdGlvbk9wdGlvbjogIE9OIENPTU1JVCBEUk9QCQkJ CXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX0RST1A7IH0KKwkJCXwgLypFTVBUWSovCQkJCQkJCQl7 ICQkID0gVkFSSUFCTEVfWEFDVEVORF9OT09QOyB9CisJCTsKKworCiAvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFtZSBVUERBVEUgWyBUTyB2ZXJzaW9uIF0K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggNjc5YmY2NDBjNi4uNTBjYmQwZmJi YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKQEAgLTEwMyw3ICsxMDMsNyBAQCBz dGF0aWMgdm9pZCBleHBhbmRUdXBsZURlc2MoVHVwbGVEZXNjIHR1cGRlc2MsIEFsaWFzICplcmVm LAogc3RhdGljIGludAlzcGVjaWFsQXR0TnVtKGNvbnN0IGNoYXIgKmF0dG5hbWUpOwogc3RhdGlj IGJvb2wgcnRlX3Zpc2libGVfaWZfbGF0ZXJhbChQYXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlVGJs RW50cnkgKnJ0ZSk7CiBzdGF0aWMgYm9vbCBydGVfdmlzaWJsZV9pZl9xdWFsaWZpZWQoUGFyc2VT dGF0ZSAqcHN0YXRlLCBSYW5nZVRibEVudHJ5ICpydGUpOwotc3RhdGljIGJvb2wgaXNRdWVyeVVz aW5nVGVtcFJlbGF0aW9uX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KTsKK3N0YXRp YyBib29sIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Rfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNv bnRleHQpOwogCiAKIC8qCkBAIC0zOTE3LDEzICszOTE3LDEzIEBAIHJ0ZV92aXNpYmxlX2lmX3F1 YWxpZmllZChQYXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlVGJsRW50cnkgKnJ0ZSkKICAqIHRoZSBx dWVyeSBpcyBhIHRlbXBvcmFyeSByZWxhdGlvbiAodGFibGUsIHZpZXcsIG9yIG1hdGVyaWFsaXpl ZCB2aWV3KS4KICAqLwogYm9vbAotaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uKFF1ZXJ5ICpxdWVy eSkKK2lzUXVlcnlVc2luZ1RlbXBPYmplY3QoUXVlcnkgKnF1ZXJ5KQogewotCXJldHVybiBpc1F1 ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyKChOb2RlICopIHF1ZXJ5LCBOVUxMKTsKKwlyZXR1 cm4gaXNRdWVyeVVzaW5nVGVtcE9iamVjdF93YWxrZXIoKE5vZGUgKikgcXVlcnksIE5VTEwpOwog fQogCiBzdGF0aWMgYm9vbAotaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uX3dhbGtlcihOb2RlICpu b2RlLCB2b2lkICpjb250ZXh0KQoraXNRdWVyeVVzaW5nVGVtcE9iamVjdF93YWxrZXIoTm9kZSAq bm9kZSwgdm9pZCAqY29udGV4dCkKIHsKIAlpZiAobm9kZSA9PSBOVUxMKQogCQlyZXR1cm4gZmFs c2U7CkBAIC0zOTQ5LDEzICszOTQ5LDIzIEBAIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxr ZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKIAkJfQogCiAJCXJldHVybiBxdWVyeV90cmVl X3dhbGtlcihxdWVyeSwKLQkJCQkJCQkJIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxrZXIs CisJCQkJCQkJCSBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0X3dhbGtlciwKIAkJCQkJCQkJIGNvbnRl eHQsCiAJCQkJCQkJCSBRVFdfSUdOT1JFX0pPSU5BTElBU0VTKTsKIAl9CisJZWxzZSBpZiAoSXNB KG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAgICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJ aWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJeworCQkJaWYgKGlzQW55VGVt cE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UocC0+cGFyYW12YXJpZCkp KQorCQkJCXJldHVybiB0cnVlOworCQl9CisJfQogCiAJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93 YWxrZXIobm9kZSwKLQkJCQkJCQkJICBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyLAor CQkJCQkJCQkgIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Rfd2Fsa2VyLAogCQkJCQkJCQkgIGNvbnRl eHQpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4v cHNxbC9kZXNjcmliZS5jCmluZGV4IDA1NzQ3YzRkNzYuLmJkYjVjM2EyMzkgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBA IC01MjcxLDcgKzUyNzEsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJv b2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlw cmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5z bGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKIAog CWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQogCXsKQEAgLTUyOTEsMTIgKzUyOTEsMTYgQEAg bGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAg IiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5cGUsIHYudmFydHlwbW9kKSBhcyBcIiVz XCIsXG4iCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19j b2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4iCiAJCQkJCSAgIiAgIFdIRVJFIGMu b2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52YXJjb2xs YXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCi0JCQkJCSAgIiAgcGdfY2F0 YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiXG4iLAorCQkJCQkgICIg IHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIixcbiIKKwkJ CQkJICAiICBDQVNFIHYudmFyeGFjdGVuZGFjdGlvblxuIgorCQkJCQkgICIgICAgV0hFTiAnZCcg VEhFTiAnT04gQ09NTUlUIERST1AnXG4iCisJCQkJCSAgIiAgRU5EIGFzIFwiJXNcIlxuIiwKIAkJ CQkJICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIp LAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiQ29s bGF0aW9uIiksCi0JCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpKTsKKwkJCQkJICBnZXR0ZXh0 X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJUcmFuc2FjdGlvbmFsIGVuZCBh Y3Rpb24iKSk7CiAKIAlpZiAodmVyYm9zZSkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXgg ZTNjODMwNTI3ZS4uMjQ5ZjYxODc4ZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMzYwOCw3 ICszNjA4LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAvKiBDUkVB VEUgVEFCTEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWls TWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlICJDUkVBVEUgVEVNUC9URU1QT1JBUlkiIHdpdGggdGhl IHBvc3NpYmxlIHRlbXAgb2JqZWN0cyAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUi LCAiVEVNUHxURU1QT1JBUlkiKSkKLQkJQ09NUExFVEVfV0lUSCgiU0VRVUVOQ0UiLCAiVEFCTEUi LCAiVklFVyIpOworCQlDT01QTEVURV9XSVRIKCJTRVFVRU5DRSIsICJUQUJMRSIsICJWQVJJQUJM RSIsICJWSUVXIik7CiAJLyogQ29tcGxldGUgIkNSRUFURSBVTkxPR0dFRCIgd2l0aCBUQUJMRSBv ciBTRVFVRU5DRSAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVU5MT0dHRUQi KSkKIAkJQ09NUExFVEVfV0lUSCgiVEFCTEUiLCAiU0VRVUVOQ0UiKTsKQEAgLTM5NTksNyArMzk1 OSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCX0KIC8qIENSRUFU RSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRh aWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFT ICovCi0JZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNoQW55 KSkKKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkp IHx8CisJCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVNUE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hB bnkpKQogCQlDT01QTEVURV9XSVRIKCJBUyIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJ QUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKIAkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxu YW1lPiB3aXRoIEFTIHR5cGVzICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggNWI0 NWJlNWFmYS4uMGZjNjcyYmMyYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192 YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNTYs NiArNTYsOSBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQog CS8qIHR5cG1vZCBmb3IgdmFyaWFibGUncyB0eXBlICovCiAJaW50MzIJCXZhcnR5cG1vZCBCS0lf REVGQVVMVCgtMSk7CiAKKwkvKiBhY3Rpb24gb24gdHJhbnNhY3Rpb24gZW5kICovCisJY2hhcgkJ dmFyeGFjdGVuZGFjdGlvbiBCS0lfREVGQVVMVChuKTsKKwogCS8qIHZhcmlhYmxlIGNvbGxhdGlv biAqLwogCU9pZAkJCXZhcmNvbGxhdGlvbiBCS0lfREVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChw Z19jb2xsYXRpb24pOwogCkBAIC02OCw2ICs3MSwxMiBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDky MjIsVmFyaWFibGVSZWxhdGlvbklkKQogI2VuZGlmCiB9IEZvcm1EYXRhX3BnX3ZhcmlhYmxlOwog Cit0eXBlZGVmIGVudW0gVmFyaWFibGVYYWN0RW5kQWN0aW9uCit7CisJVkFSSUFCTEVfWEFDVEVO RF9OT09QID0gJ24nLAkvKiBOT09QICovCisJVkFSSUFCTEVfWEFDVEVORF9EUk9QID0gJ2QnLAkv KiBPTiBDT01NSVQgRFJPUCAqLworfQkJCVZhcmlhYmxlWGFjdEVuZEFjdGlvbjsKKwogLyogLS0t LS0tLS0tLS0tLS0tLQogICoJCUZvcm1fcGdfdmFyaWFibGUgY29ycmVzcG9uZHMgdG8gYSBwb2lu dGVyIHRvIGEgdHVwbGUgd2l0aAogICoJCXRoZSBmb3JtYXQgb2YgdGhlIHBnX3ZhcmlhYmxlIHJl bGF0aW9uLgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IGU1OGE1 YTAxMTAuLjc3NGIzOWYyZjkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgKQEAgLTIxLDcgKzIxLDExIEBACiAjaW5jbHVkZSAidGNvcC9jbWR0YWcuaCIKICNpbmNsdWRl ICJ1dGlscy9xdWVyeWVudmlyb25tZW50LmgiCiAKLWV4dGVybiB2b2lkIFNlc3Npb25WYXJpYWJs ZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpOworZXh0ZXJuIHZvaWQgU2Vzc2lvblZhcmlhYmxl Q3JlYXRlUG9zdHByb2Nlc3MoT2lkIHZhcmlkLCBjaGFyIFhhY3RFbmRBY3Rpb24pOworZXh0ZXJu IHZvaWQgU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwgY2hhciBYYWN0 RW5kQWN0aW9uKTsKK2V4dGVybiB2b2lkIEF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9v bCBpc0NvbW1pdCk7CitleHRlcm4gdm9pZCBBdEVPU3ViWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJv b2wgaXNDb21taXQsIFN1YlRyYW5zYWN0aW9uSWQgbXlTdWJpZCwKKwkJCQkJCQkJCQkgU3ViVHJh bnNhY3Rpb25JZCBwYXJlbnRTdWJpZCk7CiAKIGV4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJs ZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0 U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsKTsKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAppbmRleCBlMzU4ZWFhMTBjLi42MDk4ZTBkN2FmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CkBAIC0zNTM0LDYgKzM1MzQsNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNzaW9uVmFyU3Rt dAogCVR5cGVOYW1lICAgKnR5cGVOYW1lOwkJLyogdGhlIHR5cGUgb2YgdmFyaWFibGUgKi8KIAlD b2xsYXRlQ2xhdXNlICpjb2xsQ2xhdXNlOwogCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRvIG5v dGhpbmcgaWYgaXQgYWxyZWFkeSBleGlzdHMgKi8KKwljaGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBv biB0cmFuc2FjdGlvbiBlbmQgYWN0aW9uICovCiB9IENyZWF0ZVNlc3Npb25WYXJTdG10OwogCiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggOWUwMGQ1YWYwYS4uMjYzYTdmMzE0YSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMv cHJpbW5vZGVzLmgKQEAgLTUxLDcgKzUxLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgQWxpYXMKIAlMaXN0 CSAgICpjb2xuYW1lczsJCS8qIG9wdGlvbmFsIGxpc3Qgb2YgY29sdW1uIGFsaWFzZXMgKi8KIH0g QWxpYXM7CiAKLS8qIFdoYXQgdG8gZG8gYXQgY29tbWl0IHRpbWUgZm9yIHRlbXBvcmFyeSByZWxh dGlvbnMgKi8KKy8qCisgKiBXaGF0IHRvIGRvIGF0IGNvbW1pdCB0aW1lIGZvciB0ZW1wb3Jhcnkg cmVsYXRpb25zIG9yIHNlc3Npb24gdmFyaWFibGVzLgorICovCiB0eXBlZGVmIGVudW0gT25Db21t aXRBY3Rpb24KIHsKIAlPTkNPTU1JVF9OT09QLAkJCQkvKiBObyBPTiBDT01NSVQgY2xhdXNlIChk byBub3RoaW5nKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0 aW9uLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaAppbmRleCAzZWNlNWNk NGVlLi4zNTI5YmZhNWIzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVs YXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaApAQCAtMTI3 LDYgKzEyNyw2IEBAIGV4dGVybiBpbnQJYXR0bmFtZUF0dE51bShSZWxhdGlvbiByZCwgY29uc3Qg Y2hhciAqYXR0bmFtZSwgYm9vbCBzeXNDb2xPSyk7CiBleHRlcm4gY29uc3QgTmFtZURhdGEgKmF0 dG51bUF0dE5hbWUoUmVsYXRpb24gcmQsIGludCBhdHRpZCk7CiBleHRlcm4gT2lkCWF0dG51bVR5 cGVJZChSZWxhdGlvbiByZCwgaW50IGF0dGlkKTsKIGV4dGVybiBPaWQJYXR0bnVtQ29sbGF0aW9u SWQoUmVsYXRpb24gcmQsIGludCBhdHRpZCk7Ci1leHRlcm4gYm9vbCBpc1F1ZXJ5VXNpbmdUZW1w UmVsYXRpb24oUXVlcnkgKnF1ZXJ5KTsKK2V4dGVybiBib29sIGlzUXVlcnlVc2luZ1RlbXBPYmpl Y3QoUXVlcnkgKnF1ZXJ5KTsKIAogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX1JFTEFUSU9OX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxl Lm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApp bmRleCAwYTU1NzlkYzdjLi5hNjA5Nzk3ZGM1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRp b24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9u L2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC04NiwxMCArODYsMTEgQEAgbXl2YXIK IAogc3RlcCBzcjE6IFJPTExCQUNLOwogCi1zdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBs ZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUK K3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgb19jX2QgY3JlYXRlNCBsZXQ0 IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQogc3RlcCBjcmVhdGUzOiBDUkVB VEUgVkFSSUFCTEUgbXl2YXIzIEFTIHRleHQ7CiBzdGVwIGxldDM6IExFVCBteXZhcjMgPSAndGVz dCc7CiBzdGVwIHMzOiBCRUdJTjsKK3N0ZXAgb19jX2Q6IENSRUFURSBURU1QIFZBUklBQkxFIG15 dmFyX29fY19kIEFTIHRleHQgT04gQ09NTUlUIERST1A7CiBzdGVwIGNyZWF0ZTQ6IENSRUFURSBW QVJJQUJMRSBteXZhcjQgQVMgdGV4dDsKIHN0ZXAgbGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0JzsK IHN0ZXAgZHJvcDQ6IERST1AgVkFSSUFCTEUgbXl2YXI0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv aXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYyBiL3NyYy90ZXN0L2lzb2xhdGlv bi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKaW5kZXggYzg2NGZlZTQwMC4uNDVlNjVkNDA4 NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUu c3BlYworKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVj CkBAIC0yNCw2ICsyNCw3IEBAIHN0ZXAgY3JlYXRlCQl7IENSRUFURSBWQVJJQUJMRSBteXZhciBB UyB0ZXh0OyB9CiBzZXNzaW9uIHMzCiBzdGVwIHMzCQkJeyBCRUdJTjsgfQogc3RlcCBsZXQzCQl7 IExFVCBteXZhcjMgPSAndGVzdCc7IH0KK3N0ZXAgb19jX2QJCXsgQ1JFQVRFIFRFTVAgVkFSSUFC TEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQgRFJPUDsgfQogc3RlcCBjcmVhdGU0CXsg Q1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0OyB9CiBzdGVwIGxldDQJCXsgTEVUIG15dmFy NCA9ICd0ZXN0JzsgfQogc3RlcCBkcm9wNAkJeyBEUk9QIFZBUklBQkxFIG15dmFyNDsgfQpAQCAt NDcsNCArNDgsNCBAQCBwZXJtdXRhdGlvbiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFs CiAjIGNhbGxpbmcgdGhlIGRiZyBzdGVwIGFmdGVyIHRoZSBjb25jdXJyZW50IGRyb3AKIHBlcm11 dGF0aW9uIGxldCB2YWwgczEgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwgc3IxCiAjIHRlc3QgZm9y IERJU0NBUkQgQUxMIHdoZW4gYWxsIGludGVybmFsIHF1ZXVlcyBoYXZlIGFjdGlvbnMgcmVnaXN0 ZXJlZAotcGVybXV0YXRpb24gY3JlYXRlMyBsZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9w MyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3Blcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBv X2NfZCBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCAwYjE3N2Q0ZDc2Li5jMzdkMTliNjdlIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTYwMjAsMjAgKzYwMjAsMjAgQEAgQ1JF QVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMi OwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwg Q29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IEFjY2VzcyBwcml2aWxlZ2VzIHwg RGVzY3JpcHRpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwg cmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24g fCAgICAgICAgIE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNj ZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJs aWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3Zhcmlh YmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg fCAKICgxIHJvdykKIAogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOwog Q09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKIFxkVisgdmFy MQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAg ICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCAgICAgICAgICAgICAg ICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAot LS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIg dmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCByZWdyZXNzX3Zh cmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9u Ci0gICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAg ICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2No ZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25l ciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFj Y2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCistLS0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVi bGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAg ICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJs ZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFC TEUgdmFyMTsKQEAgLTY1MDEsOSArNjUwMSw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykK IAogXGRWICJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMK LSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAotLS0tLS0tLS0rLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBP d25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykK IAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02 Njc2LDkgKzY2NzYsOSBAQCBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVk IG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YQogXGR5ICJuby5zdWNoLnNj aGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0 b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRy aWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24g fCBPd25lciAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUg fCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCist LS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50IGRhdGFi YXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjgxNSw5ICs2ODE1LDkg QEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXMKICgwIHJvd3MpCiAKIFxkViByZWdyZXNz aW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIg Ci0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8 IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0r LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBk b3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCAxMWYyMDQyNmQzLi4xNGRiOTFmOTBhIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApA QCAtMjIzNSwzICsyMjM1LDEyMyBAQCBTRUxFQ1QgdmFyMTsKIAogREVBTExPQ0FURSBwMTsKIERS T1AgVkFSSUFCTEUgdmFyMTsKKy0tIHRlbXBvcmFyeSB2YXJpYWJsZXMKK0NSRUFURSBURU1QIFZB UklBQkxFIHZhcjEgQVMgaW50OworLS0gdGhpcyB2aWV3IHNob3VsZCBiZSB0ZW1wb3JhcnkKK0NS RUFURSBWSUVXIHZhcl90ZXN0X3ZpZXcgQVMgU0VMRUNUIHZhcjE7CitOT1RJQ0U6ICB2aWV3ICJ2 YXJfdGVzdF92aWV3IiB3aWxsIGJlIGEgdGVtcG9yYXJ5IHZpZXcKK0RST1AgVkFSSUFCTEUgdmFy MSBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB2aWV3IHZhcl90ZXN0X3ZpZXcK K0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJP UDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAg MTAwCisoMSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0t LS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAw CisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBP TiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEg CistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIHplcm8K K1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7 CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8K K1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCist LS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxF IHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBW QVJJQUJMRSB2YXIxOworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0t LS0tCisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAK KygxIHJvdykKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9O IENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOwor Uk9MTEJBQ0s7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFy aWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAor KDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vz c2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitC RUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7 CisgIExFVCB2YXIxID0gMTAwOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFy MTsKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAg MTAwCisoMSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0t LS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAw CisoMSByb3cpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApp bmRleCBiODQxZDU5ZmQ4Li42OGRjYjcxZjE3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMzEyLDYgKzEzMTIsNyBAQCBCRUdJTjsKICAgRFJPUCBW QVJJQUJMRSB2YXIxOwogICBTRUxFQ1QgdmFyMjsKIFJPTExCQUNLOworCiAtLSBzaG91bGQgYmUg b2sKIFNFTEVDVCB2YXIxOwogCkBAIC0xNTUyLDMgKzE1NTMsNjggQEAgU0VMRUNUIHZhcjE7CiAK IERFQUxMT0NBVEUgcDE7CiBEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHRlbXBvcmFyeSB2YXJp YWJsZXMKK0NSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50OworLS0gdGhpcyB2aWV3IHNo b3VsZCBiZSB0ZW1wb3JhcnkKK0NSRUFURSBWSUVXIHZhcl90ZXN0X3ZpZXcgQVMgU0VMRUNUIHZh cjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMSBDQVNDQURFOworCitCRUdJTjsKKyAgQ1JFQVRFIFRF TVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAw OworICBTRUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91 bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsK KworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBE Uk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CitST0xMQkFDSzsKKworLS0g c2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZh cm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00g cGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxF IHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBW QVJJQUJMRSB2YXIxOworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50 KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBi ZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitC RUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7 CisgIExFVCB2YXIxID0gMTAwOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitST0xMQkFDSzsKKwor LS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJF IHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklB QkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0FW RVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFJPTExCQUNLIFRPIHMxOworICBT RUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUg emVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKZGlmZiAt LWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggM2YwZWZiYjlkZS4uNjZlMDViNmJiMSAxMDA2NDQKLS0t IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKQEAgLTI4MTQsNiArMjgxNCw3IEBAIFN1cHBvcnRSZXF1ZXN0V0Z1 bmNNb25vdG9uaWMKIFNWYXJpYWJsZQogU1ZhcmlhYmxlRGF0YQogU1ZhcmlhYmxlU3RhdGUKK1NW YXJpYWJsZVhBY3REcm9wSXRlbQogU3luCiBTeW5jT3BzCiBTeW5jUmVwQ29uZmlnRGF0YQotLSAK Mi40OC4wCgo= --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0011-PREPARE-LET-support.patch" Content-Disposition: attachment; filename="v20250117-0011-PREPARE-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8m511 RnJvbSA3Zjg5Njk1NTUzMzc2Yjk0YjE3ZTViYTA2MDE5OTVlZDdkY2ViOWU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMDk6NDQ6NTggKzAxMDAKU3ViamVjdDogW1BBVENIIDEx LzIyXSBQUkVQQVJFIExFVCBzdXBwb3J0CgpJbiBjdXJyZW50IGNvZGUgYmFzZSBpdCByZXF1aXJl cyBqdXN0IHNtYWxsIGNoYW5nZXMgaW4gcGFyc2VyLiBJdCBpcyBuaWNlCnRvIGhhdmUgdG8gaGF2 ZSBwb3NzaWJpbGl0eSB0byB1c2UgcHJlcGFyZWQgTEVUIHN0YXRlbWVudHMgbWFpbmx5IGR1ZSBy ZWR1Y3Rpb24Kb2Ygc2VjdXJpdHkgcmlza3MgKFNRTCBpbmplY3Rpb24pLCBhbmQgaW1wbGVtZW50 YXRpb24gaXMgYWxtb3N0IGNoZWFwLgoKRXhwbGljaXQgcHJlcGFyaW5nIGlzIG5vdCBuZWNlc3Np dHkgZm9yIHN1cHBvcnQgb2YgTEVUIHN0YXRlbWVudHMgaW4gUEwsIGJlY2F1c2UKUEwgdXNlcyBT UEkgZm9yIHF1ZXJ5IGV4ZWN1dGlvbiwgYnV0IGl0IGlzIG5pY2UgdG8gaGF2ZSB0aGlzIHBvc3Np YmlsaXR5IChjb21wbGV0ZW5lZXMsIC4uLikKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUu c2dtbCAgICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUu YyAgICAgICAgICAgICAgICB8ICA3ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMg ICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgODEgKysrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNTcgKysrKysrKysrKysrKwogNiBmaWxlcyBj aGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHJlcGFyZS5z Z21sCmluZGV4IDhlZTk0MzlmNjEuLjQ1ZDcyYjFkNTIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvcHJlcGFyZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcHJlcGFyZS5zZ21sCkBA IC0xMTYsOCArMTE2LDggQEAgUFJFUEFSRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3MKICAgICA8bGlzdGl0ZW0+ CiAgICAgIDxwYXJhPgogICAgICAgQW55IDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4sIDxjb21t YW5kPklOU0VSVDwvY29tbWFuZD4sIDxjb21tYW5kPlVQREFURTwvY29tbWFuZD4sCi0gICAgICA8 Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4sIG9yIDxj b21tYW5kPlZBTFVFUzwvY29tbWFuZD4KLSAgICAgIHN0YXRlbWVudC4KKyAgICAgIDxjb21tYW5k PkRFTEVURTwvY29tbWFuZD4sIDxjb21tYW5kPk1FUkdFPC9jb21tYW5kPiwgPGNvbW1hbmQ+VkFM VUVTPC9jb21tYW5kPiwKKyAgICAgIG9yIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gc3RhdGVtZW50 LgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKaW5kZXggYmNkZjkyNzVhYy4uYzhmMzc4YjUzNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xMjE5 MSw3ICsxMjE5MSw4IEBAIFByZXBhcmFibGVTdG10OgogCQkJfCBJbnNlcnRTdG10CiAJCQl8IFVw ZGF0ZVN0bXQKIAkJCXwgRGVsZXRlU3RtdAotCQkJfCBNZXJnZVN0bXQJCQkJCQkvKiBieSBkZWZh dWx0IGFsbCBhcmUgJCQ9JDEgKi8KKwkJCXwgTWVyZ2VTdG10CisJCQl8IExldFN0bXQJCQkJCQkv KiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8KIAkJOwogCiAvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9jdGUuYwppbmRleCA3OTY3MzYyMWM5Li5jNjI3NjFlNGVhIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2N0ZS5jCkBAIC0xMjYsNiArMTI2LDEzIEBAIHRyYW5zZm9ybVdpdGhDbGF1 c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlKQogCQlDb21tb25U YWJsZUV4cHIgKmN0ZSA9IChDb21tb25UYWJsZUV4cHIgKikgbGZpcnN0KGxjKTsKIAkJTGlzdENl bGwgICAqcmVzdDsKIAorCQkvKiBMRVQgaXMgYWxsb3dlZCBieSBwYXJzZXIsIGJ1dCBub3Qgc3Vw cG9ydGVkLiBSZWplY3QgZm9yIG5vdyAqLworCQlpZiAoSXNBKGN0ZS0+Y3RlcXVlcnksIExldFN0 bXQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiTEVUIG5vdCBzdXBwb3J0ZWQgaW4gV0lUSCBxdWVy eSIpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjdGUtPmxvY2F0aW9uKSk7CisK IAkJZm9yX2VhY2hfY2VsbChyZXN0LCB3aXRoQ2xhdXNlLT5jdGVzLCBsbmV4dCh3aXRoQ2xhdXNl LT5jdGVzLCBsYykpCiAJCXsKIAkJCUNvbW1vblRhYmxlRXhwciAqY3RlMiA9IChDb21tb25UYWJs ZUV4cHIgKikgbGZpcnN0KHJlc3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IGQ3OGNlZjM2 YWQuLmUzYzgzMDUyN2UgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4u YworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTQ2NjAsOSArNDY2MCw5 IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVsc2UgaWYgKFRhaWxN YXRjaGVzKCJWQUxVRVMiKSAmJiAhVGFpbE1hdGNoZXMoIkRFRkFVTFQiLCAiVkFMVUVTIikpCiAJ CUNPTVBMRVRFX1dJVEgoIigiKTsKIAotLyogTEVUICovCisvKiBMRVQsIEVYUExBSU4gTEVULCBQ UkVQQVJFIExFVCAqLwogCS8qIElmIHByZXYuIHdvcmQgaXMgTEVUIHN1Z2dlc3QgYSBsaXN0IG9m IHZhcmlhYmxlcyAqLwotCWVsc2UgaWYgKE1hdGNoZXMoIkxFVCIpKQorCWVsc2UgaWYgKFRhaWxN YXRjaGVzKCJMRVQiKSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xp c3Rfb2ZfdmFyaWFibGVzKTsKIAkvKiBDb21wbGV0ZSBMRVQgPHZhcmlhYmxlPiB3aXRoICI9IiAq LwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJMRVQiLCBNYXRjaEFueSkpCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDc3YTY2NTY0ZWMu LjExZjIwNDI2ZDMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0CkBAIC05NDAsOSArOTQwLDkgQEAgRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIy OwogLS0gdGhlIExFVCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGRpc2FsbG93ZWQgaW4gQ1RFCiBDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CiBXSVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBTRUxF Q1QgKiBGUk9NIHg7Ci1FUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJMRVQiCitFUlJP UjogIExFVCBub3Qgc3VwcG9ydGVkIGluIFdJVEggcXVlcnkKIExJTkUgMTogV0lUSCB4IEFTIChM RVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OwotICAgICAgICAgICAgICAgICAgIF4KKyAg ICAgICAgICAgICBeCiAtLSBzaG91bGQgYmUgb2sKIExFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVz KDEsIDEpOwogLS0gc2hvdWxkIGZhaWwKQEAgLTIxNTYsNSArMjE1Niw4MiBAQCBTRUxFQ1QgdmFy MTsKICAgIDEwCiAoMSByb3cpCiAKK1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2VfZ2VuZXJp Y19wbGFuOworUFJFUEFSRSBwMSBBUyBMRVQgdmFyMSA9IChTRUxFQ1QgY291bnQoKikgRlJPTSB2 YXJfdGFiX3Rlc3RfdGFibGUpOworTEVUIHZhcjEgPSBOVUxMOworRVhQTEFJTiAoQ09TVFMgT0ZG KSBFWEVDVVRFIHAxOworICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNF VCBTRVNTSU9OIFZBUklBQkxFCisgUmVzdWx0CisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dy ZWdhdGUKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZhcl90YWJfdGVzdF90YWJsZQorKDUg cm93cykKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgICAgCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFla RSwgU1VNTUFSWSBPRkYsIEJVRkZFUlMgT0ZGKSBFWEVDVVRFIHAxOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgU0VUIFNFU1NJT04gVkFSSUFCTEUKKyBSZXN1bHQgKGFjdHVhbCBy b3dzPTEgbG9vcHM9MSkKKyAgIEluaXRQbGFuIDEKKyAgICAgLT4gIEFnZ3JlZ2F0ZSAoYWN0dWFs IHJvd3M9MSBsb29wcz0xKQorICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdmFyX3RhYl90ZXN0 X3RhYmxlIChhY3R1YWwgcm93cz0xMCBsb29wcz0xKQorKDUgcm93cykKKworLS0gc2hvdWxkIGJl IDEwCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitTRVQg cGxhbl9jYWNoZV9tb2RlIFRPIERFRkFVTFQ7CitERUFMTE9DQVRFIHAxOwogRFJPUCBWQVJJQUJM RSB2YXIxOwogRFJPUCBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFibGU7CitDUkVBVEUgVkFSSUFCTEUg dmFyMSBudW1lcmljOworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47 CitQUkVQQVJFIHAxKG51bWVyaWMpIEFTIExFVCB2YXIxID0gJDE7CitQUkVQQVJFIHAyIEFTIFNF TEVDVCB2YXIxOworRVhFQ1VURSBwMShwaSgpICsgMTAwKTsKK0VYRUNVVEUgcDI7CisgICAgICB2 YXIxICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0KKyAxMDMuMTQxNTkyNjUzNTkKKygxIHJvdykK KworLS0gcHJlcGFyZWQgcGxhbiBjYWNoZSBpbnZhbGlkYXRpb24gdGVzdAorRFJPUCBWQVJJQUJM RSB2YXIxOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgbnVtZXJpYzsKKy0tIHNob3VsZCBiZSBOVUxM CitFWEVDVVRFIHAyOworIHZhcjEgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKK0RFQUxMT0NB VEUgcDE7CitERUFMTE9DQVRFIHAyOworRFJPUCBWQVJJQUJMRSB2YXIxOworU0VUIHBsYW5fY2Fj aGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1l cmljW107CitQUkVQQVJFIHAxKGludCwgbnVtZXJpYykgQVMgTEVUIHZhcjFbJDFdID0gJDI7CitM RVQgdmFyMSA9ICd7fSc6Om51bWVyaWNbXTsKK0VYRUNVVEUgcDEoMSwgMTAuMik7CitFWEVDVVRF IHAxKDIsIDEwLjMpOworU0VMRUNUIHZhcjE7CisgICAgdmFyMSAgICAgCistLS0tLS0tLS0tLS0t CisgezEwLjIsMTAuM30KKygxIHJvdykKKworREVBTExPQ0FURSBwMTsKK0RST1AgVkFSSUFCTEUg dmFyMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCAy NmVjOGQ4OTIxLi5iODQxZDU5ZmQ4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z ZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsCkBAIC0xNDkzLDUgKzE0OTMsNjIgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGLCBU SU1JTkcgT0ZGLCBBTkFMWVpFLCBTVU1NQVJZIE9GRiwgQlVGRkVSUyBPRkYpIExFVCB2YXIxID0g KFMKIC0tIHNob3VsZCBiZSAxMAogU0VMRUNUIHZhcjE7CiAKK1NFVCBwbGFuX2NhY2hlX21vZGUg VE8gZm9yY2VfZ2VuZXJpY19wbGFuOworCitQUkVQQVJFIHAxIEFTIExFVCB2YXIxID0gKFNFTEVD VCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90YWJsZSk7CisKK0xFVCB2YXIxID0gTlVMTDsK KworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHAxOworCistLSBzaG91bGQgYmUgTlVMTAor U0VMRUNUIHZhcjE7CisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFlaRSwg U1VNTUFSWSBPRkYsIEJVRkZFUlMgT0ZGKSBFWEVDVVRFIHAxOworCistLSBzaG91bGQgYmUgMTAK K1NFTEVDVCB2YXIxOworCitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIERFRkFVTFQ7CisKK0RFQUxM T0NBVEUgcDE7CisKIERST1AgVkFSSUFCTEUgdmFyMTsKIERST1AgVEFCTEUgdmFyX3RhYl90ZXN0 X3RhYmxlOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworCitTRVQgcGxhbl9jYWNo ZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworUFJFUEFSRSBwMShudW1lcmljKSBBUyBM RVQgdmFyMSA9ICQxOworUFJFUEFSRSBwMiBBUyBTRUxFQ1QgdmFyMTsKKworRVhFQ1VURSBwMShw aSgpICsgMTAwKTsKK0VYRUNVVEUgcDI7CisKKy0tIHByZXBhcmVkIHBsYW4gY2FjaGUgaW52YWxp ZGF0aW9uIHRlc3QKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51 bWVyaWM7CisKKy0tIHNob3VsZCBiZSBOVUxMCitFWEVDVVRFIHAyOworCitERUFMTE9DQVRFIHAx OworREVBTExPQ0FURSBwMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitTRVQgcGxhbl9jYWNo ZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgbnVt ZXJpY1tdOworCitQUkVQQVJFIHAxKGludCwgbnVtZXJpYykgQVMgTEVUIHZhcjFbJDFdID0gJDI7 CisKK0xFVCB2YXIxID0gJ3t9Jzo6bnVtZXJpY1tdOworRVhFQ1VURSBwMSgxLCAxMC4yKTsKK0VY RUNVVEUgcDEoMiwgMTAuMyk7CisKK1NFTEVDVCB2YXIxOworCitERUFMTE9DQVRFIHAxOworRFJP UCBWQVJJQUJMRSB2YXIxOwotLSAKMi40OC4wCgo= --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0010-EXPLAIN-LET-support.patch" Content-Disposition: attachment; filename="v20250117-0010-EXPLAIN-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8mb12 RnJvbSAyNDJkYjdjMmQxYjYzMTFkMDg1NTM1MTQ5NTM2NGM0OWQxODE2ZmNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTg6Mjg6MDcgKzAyMDAKU3ViamVjdDogW1BBVENIIDEw LzIyXSBFWFBMQUlOIExFVCBzdXBwb3J0CgpFbmhhbmNpbmcgRXhwbGFpbk9uZVBsYW4gaXMgbmVj ZXNzYXJ5IHRvIGJlIEVYUExBSU4gQU5BTFlaRSBMRVQgZnVsbHkgd29ya2FibGUuCkluIHRoaXMg Y2FzZSB3ZSB3YW50IHRvIGJlIHJlc3VsdCBvZiBxdWVyeSBvciBleHByZXNzaW9uIHdyaXR0ZW4g dG8gdGFyZ2V0IHZhcmlhYmxlLgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sICAg ICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgICAg ICAgICAgICAgICAgfCAzMSArKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJl cGFyZS5jICAgICAgICAgICAgICAgIHwgIDUgKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 ICAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFp bi5oICAgICAgICAgICAgICAgIHwgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dCAgICB8IDQwICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDIxICsrKysrKysrKysKIDcgZmlsZXMg Y2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5z Z21sCmluZGV4IDYzNjFhMTRlNjUuLjQyOTI2MTViNDQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvZXhwbGFpbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCkBA IC05OCw3ICs5OCw4IEBAIEVYUExBSU4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSA8cmVwCiAgICAgPGNvbW1hbmQ+SU5T RVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKICAgICA8Y29tbWFuZD5E RUxFVEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4sCiAgICAgPGNvbW1hbmQ+ Q1JFQVRFIFRBQkxFIEFTPC9jb21tYW5kPiwKLSAgICBvciA8Y29tbWFuZD5FWEVDVVRFPC9jb21t YW5kPiBzdGF0ZW1lbnQKKyAgICA8Y29tbWFuZD5FWEVDVVRFPC9jb21tYW5kPiwKKyAgICBvciA8 Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IHN0YXRlbWVudAogICAgIHdpdGhvdXQgbGV0dGluZyB0aGUg Y29tbWFuZCBhZmZlY3QgeW91ciBkYXRhLCB1c2UgdGhpcyBhcHByb2FjaDoKIDxwcm9ncmFtbGlz dGluZz4KIEJFR0lOOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IGMyNGU2NmY4MmUuLmE2MDhm ODFlZjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYworKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNsdWRl ICJjb21tYW5kcy9jcmVhdGVhcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3ByZXBhcmUuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVS ZWNlaXZlci5oIgogI2luY2x1ZGUgImZvcmVpZ24vZmR3YXBpLmgiCiAjaW5jbHVkZSAiaml0L2pp dC5oIgogI2luY2x1ZGUgImxpYnBxL3BxZm9ybWF0LmgiCkBAIC01MTksOCArNTIwLDkgQEAgc3Rh bmRhcmRfRXhwbGFpbk9uZVF1ZXJ5KFF1ZXJ5ICpxdWVyeSwgaW50IGN1cnNvck9wdGlvbnMsCiAJ fQogCiAJLyogcnVuIGl0IChpZiBuZWVkZWQpIGFuZCBwcm9kdWNlIG91dHB1dCAqLwotCUV4cGxh aW5PbmVQbGFuKHBsYW4sIGludG8sIGVzLCBxdWVyeVN0cmluZywgcGFyYW1zLCBxdWVyeUVudiwK LQkJCQkgICAmcGxhbmR1cmF0aW9uLCAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNhZ2UgOiBOVUxMKSwK KwlFeHBsYWluT25lUGxhbihwbGFuLCBpbnRvLCBxdWVyeS0+cmVzdWx0VmFyaWFibGUsIGVzLCBx dWVyeVN0cmluZywKKwkJCQkgICBwYXJhbXMsIHF1ZXJ5RW52LCAmcGxhbmR1cmF0aW9uLAorCQkJ CSAgIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAogCQkJCSAgIGVzLT5tZW1vcnkg PyAmbWVtX2NvdW50ZXJzIDogTlVMTCk7CiB9CiAKQEAgLTYxOCw2ICs2MjAsMjUgQEAgRXhwbGFp bk9uZVV0aWxpdHkoTm9kZSAqdXRpbGl0eVN0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5T dGF0ZSAqZXMsCiAJCWVsc2UKIAkJCUV4cGxhaW5EdW1teUdyb3VwKCJOb3RpZnkiLCBOVUxMLCBl cyk7CiAJfQorCWVsc2UgaWYgKElzQSh1dGlsaXR5U3RtdCwgTGV0U3RtdCkpCisJeworCQlMZXRT dG10ICAgICpsZXRzdG10ID0gKExldFN0bXQgKikgdXRpbGl0eVN0bXQ7CisJCUxpc3QJICAgKnJl d3JpdHRlbjsKKwkJUXVlcnkJICAgKnF1ZXJ5OworCisJCWlmIChlcy0+Zm9ybWF0ID09IEVYUExB SU5fRk9STUFUX1RFWFQpCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGVzLT5zdHIsICJTRVQg U0VTU0lPTiBWQVJJQUJMRVxuIik7CisJCWVsc2UKKwkJCUV4cGxhaW5EdW1teUdyb3VwKCJTZXQg U2Vzc2lvbiBWYXJpYWJsZSIsIE5VTEwsIGVzKTsKKworCQlyZXdyaXR0ZW4gPSBRdWVyeVJld3Jp dGUoY2FzdE5vZGUoUXVlcnksIGNvcHlPYmplY3QobGV0c3RtdC0+cXVlcnkpKSk7CisKKwkJQXNz ZXJ0KGxpc3RfbGVuZ3RoKHJld3JpdHRlbikgPT0gMSk7CisJCXF1ZXJ5ID0gbGluaXRpYWxfbm9k ZShRdWVyeSwgcmV3cml0dGVuKTsKKwkJRXhwbGFpbk9uZVF1ZXJ5KHF1ZXJ5LAorCQkJCQkJQ1VS U09SX09QVF9QQVJBTExFTF9PSywgTlVMTCwgZXMsCisJCQkJCQlwc3RhdGUsIHBhcmFtcyk7CisJ fQogCWVsc2UKIAl7CiAJCWlmIChlcy0+Zm9ybWF0ID09IEVYUExBSU5fRk9STUFUX1RFWFQpCkBA IC02NDEsOCArNjYyLDggQEAgRXhwbGFpbk9uZVV0aWxpdHkoTm9kZSAqdXRpbGl0eVN0bXQsIElu dG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAgKiB0byBjYWxsIGl0LgogICovCiB2 b2lkCi1FeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsIEludG9DbGF1c2Ug KmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCi0JCQkgICBjb25zdCBjaGFyICpxdWVyeVN0cmluZywg UGFyYW1MaXN0SW5mbyBwYXJhbXMsCitFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5l ZHN0bXQsIEludG9DbGF1c2UgKmludG8sIE9pZCB0YXJnZXR2YXIsCisJCQkgICBFeHBsYWluU3Rh dGUgKmVzLCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCiAJ CQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgY29uc3QgaW5zdHJfdGltZSAqcGxhbmR1 cmF0aW9uLAogCQkJICAgY29uc3QgQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLAogCQkJICAgY29uc3Qg TWVtb3J5Q29udGV4dENvdW50ZXJzICptZW1fY291bnRlcnMpCkBAIC02OTEsNiArNzEyLDggQEAg RXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRv LCBFeHBsYWluU3RhdGUgKmVzLAogCSAqLwogCWlmIChpbnRvKQogCQlkZXN0ID0gQ3JlYXRlSW50 b1JlbERlc3RSZWNlaXZlcihpbnRvKTsKKwllbHNlIGlmIChPaWRJc1ZhbGlkKHRhcmdldHZhcikp CisJCWRlc3QgPSBDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcih0YXJnZXR2YXIpOwogCWVsc2Ug aWYgKGVzLT5zZXJpYWxpemUgIT0gRVhQTEFJTl9TRVJJQUxJWkVfTk9ORSkKIAkJZGVzdCA9IENy ZWF0ZUV4cGxhaW5TZXJpYWxpemVEZXN0UmVjZWl2ZXIoZXMpOwogCWVsc2UKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3By ZXBhcmUuYwppbmRleCA5MDJiMDIyZjljLi40ZWEyYmZlYTRlIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFy ZS5jCkBAIC02NjQsOCArNjY0LDkgQEAgRXhwbGFpbkV4ZWN1dGVRdWVyeShFeGVjdXRlU3RtdCAq ZXhlY3N0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJCVBsYW5uZWRT dG10ICpwc3RtdCA9IGxmaXJzdF9ub2RlKFBsYW5uZWRTdG10LCBwKTsKIAogCQlpZiAocHN0bXQt PmNvbW1hbmRUeXBlICE9IENNRF9VVElMSVRZKQotCQkJRXhwbGFpbk9uZVBsYW4ocHN0bXQsIGlu dG8sIGVzLCBxdWVyeV9zdHJpbmcsIHBhcmFtTEksIHBzdGF0ZS0+cF9xdWVyeUVudiwKLQkJCQkJ CSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAorCQkJ RXhwbGFpbk9uZVBsYW4ocHN0bXQsIGludG8sIEludmFsaWRPaWQsIGVzLCBxdWVyeV9zdHJpbmcs IHBhcmFtTEksCisJCQkJCQkgICBwc3RhdGUtPnBfcXVlcnlFbnYsICZwbGFuZHVyYXRpb24sCisJ CQkJCQkgICAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNhZ2UgOiBOVUxMKSwKIAkJCQkJCSAgIGVzLT5t ZW1vcnkgPyAmbWVtX2NvdW50ZXJzIDogTlVMTCk7CiAJCWVsc2UKIAkJCUV4cGxhaW5PbmVVdGls aXR5KHBzdG10LT51dGlsaXR5U3RtdCwgaW50bywgZXMsIHBzdGF0ZSwgcGFyYW1MSSk7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQppbmRleCBhNDFlMmNkMTM4Li5iY2RmOTI3NWFjIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTEyMTYw LDcgKzEyMTYwLDggQEAgRXhwbGFpbmFibGVTdG10OgogCQkJfCBDcmVhdGVBc1N0bXQKIAkJCXwg Q3JlYXRlTWF0Vmlld1N0bXQKIAkJCXwgUmVmcmVzaE1hdFZpZXdTdG10Ci0JCQl8IEV4ZWN1dGVT dG10CQkJCQkvKiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8KKwkJCXwgRXhlY3V0ZVN0bXQK KwkJCXwgTGV0U3RtdAkJCQkJCS8qIGJ5IGRlZmF1bHQgYWxsIGFyZSAkJD0kMSAqLwogCQk7CiAK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv ZXhwbGFpbi5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oCmluZGV4IGVhNzQxOTk1 MWYuLmRlMjFmZTk3ZDAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4u aAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHBsYWluLmgKQEAgLTEwMyw3ICsxMDMsOCBA QCBleHRlcm4gdm9pZCBFeHBsYWluT25lVXRpbGl0eShOb2RlICp1dGlsaXR5U3RtdCwgSW50b0Ns YXVzZSAqaW50bywKIAkJCQkJCQkgIEV4cGxhaW5TdGF0ZSAqZXMsIFBhcnNlU3RhdGUgKnBzdGF0 ZSwKIAkJCQkJCQkgIFBhcmFtTGlzdEluZm8gcGFyYW1zKTsKIAotZXh0ZXJuIHZvaWQgRXhwbGFp bk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRvLAorZXh0 ZXJuIHZvaWQgRXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LAorCQkJCQkJ ICAgSW50b0NsYXVzZSAqaW50bywgT2lkIHRhcmdldHZhciwKIAkJCQkJCSAgIEV4cGxhaW5TdGF0 ZSAqZXMsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCQkJCQkJICAgUGFyYW1MaXN0SW5mbyBw YXJhbXMsIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LAogCQkJCQkJICAgY29uc3QgaW5zdHJf dGltZSAqcGxhbmR1cmF0aW9uLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dAppbmRleCA5MGVlYzI3YTQzLi43N2E2NjU2NGVjIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMjExOCwz ICsyMTE4LDQzIEBAIE5PVElDRTogIDIwIHQKIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVu Y2VfY29udGV4dF9ndWFyZCBUTyBERUZBVUxUOwogRFJPUCBWQVJJQUJMRSB2YXIxOwogRFJPUCBU QUJMRSB2YXJ0ZXN0X3RhYjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBiaWdpbnQ7CitDUkVBVEUg VEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlKGEgaW50KTsKK0lOU0VSVCBJTlRPIHZhcl90YWJfdGVz dF90YWJsZSBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKK1ZBQ1VVTSBBTkFM WVpFIHZhcl90YWJfdGVzdF90YWJsZTsKK0VYUExBSU4gKENPU1RTIE9GRikgTEVUIHZhcjEgPSAo U0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKyAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdAor ICAgSW5pdFBsYW4gMQorICAgICAtPiAgQWdncmVnYXRlCisgICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiB2YXJfdGFiX3Rlc3RfdGFibGUKKyg1IHJvd3MpCisKKy0tIHNob3VsZCBiZSBOVUxMCitT RUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCitFWFBMQUlOIChD T1NUUyBPRkYsIFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGLCBCVUZGRVJTIE9GRikg TEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZBUklBQkxFCisgUmVz dWx0IChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dy ZWdhdGUgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHZhcl90YWJfdGVzdF90YWJsZSAoYWN0dWFsIHJvd3M9MTAgbG9vcHM9MSkKKyg1IHJvd3MpCisK Ky0tIHNob3VsZCBiZSAxMAorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygx IHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFi bGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggMzMw YjBlNThmOC4uMjZlYzhkODkyMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbApAQCAtMTQ3NCwzICsxNDc0LDI0IEBAIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc191 c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyBERUZBVUxUOwogCiBEUk9QIFZBUklBQkxFIHZhcjE7 CiBEUk9QIFRBQkxFIHZhcnRlc3RfdGFiMTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgYmlnaW50 OworCitDUkVBVEUgVEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlKGEgaW50KTsKKworSU5TRVJUIElO VE8gdmFyX3RhYl90ZXN0X3RhYmxlIFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAp OworCitWQUNVVU0gQU5BTFlaRSB2YXJfdGFiX3Rlc3RfdGFibGU7CisKK0VYUExBSU4gKENPU1RT IE9GRikgTEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxl KTsKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOworCitFWFBMQUlOIChDT1NUUyBP RkYsIFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGLCBCVUZGRVJTIE9GRikgTEVUIHZh cjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworLS0gc2hv dWxkIGJlIDEwCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJM RSB2YXJfdGFiX3Rlc3RfdGFibGU7Ci0tIAoyLjQ4LjAKCg== --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0009-dynamic-check-of-usage-of-session-variable-fences.patch" Content-Disposition: attachment; filename="v20250117-0009-dynamic-check-of-usage-of-session-variable-fences.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8mk13 RnJvbSA1NmIyOWIzYjkyMGVlMTY5YzU1MWRhZjQyMDI5OTIyYmJiM2RkNjA5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTMgRGVjIDIwMjQgMDY6Mjg6NDUgKzAxMDAKU3ViamVjdDogW1BBVENIIDA5 LzIyXSBkeW5hbWljIGNoZWNrIG9mIHVzYWdlIG9mIHNlc3Npb24gdmFyaWFibGUgZmVuY2VzCgpU aGlzIHBhdGNoIGFsbG93cyB0byBzcGVjaWZ5IGR5bmFtaWMgY29udGV4dCB3aGVyZSBmZW5jaW5n Cm9mIHNlc3Npb24gdmFyaWFibGVzIGlzIHJlcXVpcmVkLiBQb3NzaWJsZSBjb250ZXh0cyBhcmUK bm9uZSwgbm9zcGkgb3IgYWxsLiBXaXRoIHRoaXMgY2hlY2sgaXMgcG9zc2libGUgdG8gZm9yY2UK dmFyaWFibGUgZmVuY2luZyBvdXRzaWRlIHN0b3JlZCBwcm9jZWR1cmVzLgotLS0KIGRvYy9zcmMv c2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDU2ICsrKysrKysrKysrKwog ZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDMzICsrKysrKysK IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICA0ICsKIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jICAgICAgICAgICAgICAgICAgICB8ICA4ICsrCiBzcmMv YmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAgICAgfCAxOSArKysrCiBzcmMv YmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgfCAgMSArCiBzcmMvaW5j bHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAxNiArKysrCiBzcmMvaW5j bHVkZS9leGVjdXRvci9zcGkuaCAgICAgICAgICAgICAgICAgICAgfCAgMSArCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCA5MCArKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCA3MyAr KysrKysrKysrKysrKysKIDExIGZpbGVzIGNoYW5nZWQsIDMwMyBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IGVmOGY5YjVmNWQuLmRiODU3YjFmZGEgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwKQEAgLTEwOTAzLDYgKzEwOTAzLDYyIEBAIERFVEFJTDogIFNlc3Npb24gdmFyaWFibGVzIGNh biBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByCiAgICAg ICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5 IGlkPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLWNvbnRleHQtZ3VhcmQiIHhyZWZs YWJlbD0ic2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQiPgorICAgICAg PHRlcm0+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQ8 L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKKyAgICAgIDxpbmRleHRlcm0+CisgICAg ICAgPHByaW1hcnk+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRf Z3VhcmQ8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAg PC9pbmRleHRlcm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFy YT4KKyAgICAgICBXaGVuIG9uLCBhbiBlcnJvciBpcyByYWlzZWQgd2hlbiBhIHNlc3Npb24gdmFy aWFibGUgaWRlbnRpZmllciBpcyB1c2VkCisgICAgICAgaW5zaWRlIGEgcXVlcnkgd2l0aG91dCB2 YXJpYWJsZSBmZW5jZSBpbiBjaG9vc2VkIGNvbnRleHQuIFRoZSBkZWZhdWx0CisgICAgICAgaXMg PGxpdGVyYWw+bm9uZTwvbGl0ZXJhbD4uIFRoZSBlcnJvciBpcyByYWlzZWQgb25seSB3aGVuIHZh cmlhYmxlIGlzCisgICAgICAgdXNlZCBpbiBwbGFjZXMsIHdoZXJlIGFuIGNvbGxpc2lvbnMgd2l0 aCBjb2x1bW4gbmFtZXMgaXMgcG9zc2libGUgKGFuZAorICAgICAgIHdoZW4gdmFyaWFibGUgZmVu Y2VzIGFyZSBwb3NzaWJsZSkuIFRoZSBhbGxvd2VkIHZhbHVlcyBvZgorICAgICAgIDx2YXJuYW1l PnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkPC92YXJuYW1lPiBhcmUK KyAgICAgICA8bGl0ZXJhbD5ub25lPC9saXRlcmFsPiAoYWxsb3cgdXNpbmcgc2Vzc2lvbiB2YXJp YWJsZXMgd2l0aG91dAorICAgICAgIHZhcmlhYmxlJ3MgZmVuY2VzIGFsd2F5cyksIDxsaXRlcmFs PmFsbDwvbGl0ZXJhbD4gKHJlcXVpcmVzIHZhcmlhYmxlCisgICAgICAgZmVuY2luZyBldmVyeXdo ZXJlKSwgYW5kIDxsaXRlcmFsPm5vc3BpPC9saXRlcmFsPiAocmVxdWlyZXMgdmFyaWFibGUKKyAg ICAgICBmZW5jaW5nIG91dHNpZGUgU1BJIGNvbnRleHRzIChvdXRzaWRlIHN0b3JlZCBwcm9jZWR1 cmVzKS4KKzxwcm9ncmFtbGlzdGluZz4KK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vf Y29udGV4dF9ndWFyZCBUTyAnbm9zcGknOworQ1JFQVRFIFZBUklBQkxFIGEgaW50OworCitMRVQg YSA9IDEwOworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnYSA9ICUnLCBhOworRU5EOwor JCQ7CisKK1NFTEVDVCBhOworU0VMRUNUIFZBUklBQkxFKHMpOworPC9wcm9ncmFtbGlzdGluZz4K KworPHNjcmVlbj4KK05PVElDRTogIGEgPSAxMAorCitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUg InB1YmxpYy5hIiBpcyBub3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UKK0RFVEFJTDogIFRo ZXJlIGlzIGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlLgorSElO VDogIFVzZSB2YXJpYWJsZSBmZW5jZSAiVkFSSUFCTEUodmFybmFtZSkgZm9yIGFjY2VzcyB0byB2 YXJpYWJsZSIuCisKK1NFTEVDVCB2YXJpYWJsZShhKTsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93 KQorPC9zY3JlZW4+CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFdo ZW4geW91IGFmcmFpZCBhYm91dCB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlcywg c2V0CisgICAgICAgIHRoaXMgZmVhdHVyZSB0byA8bGl0ZXJhbD5hbGw8L2xpdGVyYWw+IG9yIG1p bmltYWx5IHRvCisgICAgICAgIDxsaXRlcmFsPm5vc3BpPC9saXRlcmFsPi4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFy bGlzdGVudHJ5IGlkPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLXdhcm5pbmctZ3Vh cmQiIHhyZWZsYWJlbD0ic2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQi PgogICAgICAgPHRlcm0+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5p bmdfZ3VhcmQ8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKICAgICAgIDxpbmRleHRl cm0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRs LnNnbWwKaW5kZXggYTU2NjQ2MDRlNi4uNWM1ODFlZTE0MyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTQ0Miw3ICs1NDQy LDggQEAgU0VMRUNUIFZBUklBQkxFKGN1cnJlbnRfdXNlcl9pZCk7CiAgICBXaGVuIHRoZXJlIGlz IGEgcmlzayBvZiBwb3NzaWJsZSBjb2xsaXNpb25zIGJldHdlZW4gdmFyaWFibGUgaWRlbnRpZmll cnMKICAgIGFuZCBjb2x1bW4gbmFtZXMsIHRoZW4gdXNpbmcgdmFyaWFibGUgZmVuY2Ugc3ludGF4 IGNhbiBiZSByZWNvbW1lbmRlZC4KICAgIFVzYWdlIHNlc3Npb24gdmFyaWFibGUgd2l0aG91dCB2 YXJpYWJsZSBmZW5jZSBjYW4gYmUgZGV0ZWN0ZWQgYnkKLSAgIHdhcm5pbmcgPHhyZWYgbGlua2Vu ZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLXVzZS1mZW5jZS13YXJuaW5nLWd1YXJkIi8+LgorICAg d2FybmluZyA8eHJlZiBsaW5rZW5kPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLXdh cm5pbmctZ3VhcmQiLz4KKyAgIG9yIGJ5IGNoZWNrIDx4cmVmIGxpbmtlbmQ9Imd1Yy1zZXNzaW9u LXZhcmlhYmxlcy11c2UtZmVuY2UtY29udGV4dC1ndWFyZCIvPi4KICAgPC9wYXJhPgogICA8L3Nl Y3QxPgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggNGEyOWVk NmUwYy4uN2MxNTk4NjBiNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu YwpAQCAtMTcsNiArMTcsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zcGkuaCIKICNpbmNsdWRlICJleGVjdXRvci9zdmFy aWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJtaXNjYWRt aW4uaCIKQEAgLTMxLDYgKzMyLDEzIEBACiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgogI2lu Y2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKKy8qCisgKiBUaGUgc2Vzc2lvbiB2YXJpYWJsZXMg dXNlIGZlbmNlIGNvbnRleHQgYWxsb3cgdG8gc3BlY2lmeQorICogdGhlIGNvbnRleHRzIHdoZXJl IHVzaW5nIHNlc3Npb24gdmFyaWFibGUgZmVuY2VzIGFyZSByZXF1aXJlZC4KKyAqLworaW50CQlz ZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCA9CisJCQkJCQkJCVNFU1NJ T05WQVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9OT05FOworCiAvKgogICogVGhlIHZh bHVlcyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHRoZSBiYWNrZW5kJ3MgcHJp dmF0ZSBtZW1vcnkKICAqIGluIHRoZSBkZWRpY2F0ZWQgbWVtb3J5IGNvbnRleHQgU1ZhcmlhYmxl TWVtb3J5Q29udGV4dCBpbiBiaW5hcnkgZm9ybWF0LgpAQCAtNzkwLDMgKzc5OCwyOCBAQCBSZXNl dFNlc3Npb25WYXJpYWJsZXModm9pZCkKIAlpZiAoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCAhPSBO VUxMKQogCQlNZW1vcnlDb250ZXh0UmVzZXQoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7CiB9CisK Ky8qCisgKiBSYWlzZSBlcnJvciB3aGVuIHVuZmVuY2VkIHZhcmlhYmxlIGlzIHVzZWQgaW4gd3Jv bmcgY29udGV4dC4KKyAqIFRoaXMgY2hlY2sgYWxsb3dzIHRvIGZvcmNlIHNlc3Npb24gdmFyaWFi bGUgZmVuY2luZyBvdXRzaWRlCisgKiBzdG9yZWQgcHJvY2VkdXJlcyBlbnZpcm9ubWVudC4KKyAq Lwordm9pZAorU2Vzc2lvblZhcmlhYmxlc1VzZUZlbmNlQ29udGV4dENoZWNrKE9pZCB2YXJpZCwg Ym9vbCBpc19mZW5jZWQpCit7CisJaWYgKGlzX2ZlbmNlZCkKKwkJcmV0dXJuOworCisJaWYgKCgo c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgPT0KKwkJCVNFU1NJT05W QVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9BTEwpICYmICFpc19mZW5jZWQpIHx8CisJ CSgoc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgPT0KKwkJCVNFU1NJ T05WQVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9OT1NQSSkgJiYKKwkJCQkhU1BJX2lu c2lkZV9zcGlfY29udGV4dCgpKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJD T0RFX0lOVkFMSURfQ09MVU1OX1JFRkVSRU5DRSksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJp YWJsZSBcIiVzLiVzXCIgaXMgbm90IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlIiwKKwkJCQkg Z2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkp LAorCQkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSksCisJCQkJIGVycmRldGFp bCgiVGhlcmUgaXMgYSByaXNrIG9mIHVud2FudGVkIHVzYWdlIG9mIHNlc3Npb24gdmFyaWFibGUu IiksCisJCQkJIGVycmhpbnQoIlVzZSB2YXJpYWJsZSBmZW5jZSBcIlZBUklBQkxFKHZhcm5hbWUp IGZvciBhY2Nlc3MgdG8gdmFyaWFibGVcIi4iKSkpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMK aW5kZXggMDFlNmViMzUxNS4uNTRlZmNkZWM0NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBA IC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNp bmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Iv ZXhlY0V4cHIuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlU3VicGxhbi5oIgogI2luY2x1ZGUg ImZ1bmNhcGkuaCIKQEAgLTEwNDgsNiArMTA0OSw5IEBAIEV4ZWNJbml0RXhwclJlYyhFeHByICpu b2RlLCBFeHByU3RhdGUgKnN0YXRlLAogCQkJCQkJCVNlc3Npb25WYXJpYWJsZVZhbHVlICplc19z ZXNzaW9uX3ZhcmlhYmxlcyA9IE5VTEw7CiAJCQkJCQkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnZh cjsKIAorCQkJCQkJCVNlc3Npb25WYXJpYWJsZXNVc2VGZW5jZUNvbnRleHRDaGVjayhwYXJhbS0+ cGFyYW12YXJpZCwKKwkJCQkJCQkJCQkJCQkJCQkgcGFyYW0tPnBhcmFtdmFyZmVuY2VkKTsKKwog CQkJCQkJCWlmIChzdGF0ZS0+cGFyZW50ICYmIHN0YXRlLT5wYXJlbnQtPnN0YXRlKQogCQkJCQkJ CXsKIAkJCQkJCQkJZXNfc2Vzc2lvbl92YXJpYWJsZXMgPSBzdGF0ZS0+cGFyZW50LT5zdGF0ZS0+ ZXNfc2Vzc2lvbl92YXJpYWJsZXM7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9z cGkuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCmluZGV4IGVjYjJlNGNjYWEuLjRjZTZi YzVmMjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL3NwaS5jCkBAIC01OTAsNiArNTkwLDE0IEBAIFNQSV9pbnNpZGVfbm9u YXRvbWljX2NvbnRleHQodm9pZCkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAorLyoKKyAqIEFyZSB3ZSBl eGVjdXRlZCBpbnNpZGUgYSBTUEk/CisgKi8KK2Jvb2wKK1NQSV9pbnNpZGVfc3BpX2NvbnRleHQo dm9pZCkKK3sKKwlyZXR1cm4gKF9TUElfY3VycmVudCAhPSBOVUxMKTsKK30KIAogLyogUGFyc2Us IHBsYW4sIGFuZCBleGVjdXRlIGEgcXVlcnkgc3RyaW5nICovCiBpbnQKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9ndWNfdGFibGVzLmMKaW5kZXggZTM2ZGUxZGJmMC4uMmUzZjFmZWE4YiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJjYXRhbG9n L3N0b3JhZ2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hc3luYy5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2V2ZW50X3RyaWdnZXIuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNvbW1hbmRz L3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy91c2VyLmgiCkBAIC00MjMsNiArNDI0LDEz IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50cnkgZGVidWdfbG9naWNhbF9y ZXBsaWNhdGlvbl9zdHJlYW1pbmdfb3B0aW9uCiAJe05VTEwsIDAsIGZhbHNlfQogfTsKIAorc3Rh dGljIGNvbnN0IHN0cnVjdCBjb25maWdfZW51bV9lbnRyeSBzZXNzaW9uX3ZhcmlhYmxlc191c2Vf ZmVuY2VfY29udGV4dF9ndWFyZF9vcHRpb25zW10gPSB7CisJeyJub25lIiwgU0VTU0lPTlZBUklB QkxFX1VTRV9GRU5DRV9DT05URVhUX0dVQVJEX05PTkUsIGZhbHNlfSwKKwl7ImFsbCIsIFNFU1NJ T05WQVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9BTEwsIGZhbHNlfSwKKwl7Im5vc3Bp IiwgU0VTU0lPTlZBUklBQkxFX1VTRV9GRU5DRV9DT05URVhUX0dVQVJEX05PU1BJLCBmYWxzZX0s CisJe05VTEwsIDAsIGZhbHNlfQorfTsKKwogU3RhdGljQXNzZXJ0RGVjbChsZW5ndGhvZihzc2xf cHJvdG9jb2xfdmVyc2lvbnNfaW5mbykgPT0gKFBHX1RMUzFfM19WRVJTSU9OICsgMiksCiAJCQkJ ICJhcnJheSBsZW5ndGggbWlzbWF0Y2giKTsKIApAQCAtNTI1NCw2ICs1MjYyLDE3IEBAIHN0cnVj dCBjb25maWdfZW51bSBDb25maWd1cmVOYW1lc0VudW1bXSA9CiAJCU5VTEwsIE5VTEwsIE5VTEwK IAl9LAogCisJeworCQl7InNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJk IiwgUEdDX1VTRVJTRVQsIENMSUVOVF9DT05OX1NUQVRFTUVOVCwKKwkJCWdldHRleHRfbm9vcCgi Q2hvb3NlcyB0aGUgY29udGV4dCB3aGVyZSBzZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNl ZCBpbnNpZGUgZmVuY2UuIiksCisJCQlOVUxMCisJCX0sCisJCSZzZXNzaW9uX3ZhcmlhYmxlc191 c2VfZmVuY2VfY29udGV4dF9ndWFyZCwKKwkJU0VTU0lPTlZBUklBQkxFX1VTRV9GRU5DRV9DT05U RVhUX0dVQVJEX05PTkUsIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJk X29wdGlvbnMsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAorCisKIAkvKiBFbmQtb2YtbGlzdCBt YXJrZXIgKi8KIAl7CiAJCXtOVUxMLCAwLCAwLCBOVUxMLCBOVUxMfSwgTlVMTCwgMCwgTlVMTCwg TlVMTCwgTlVMTCwgTlVMTApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0 Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNv bmYuc2FtcGxlCmluZGV4IGY2ZjBjYzA0NDguLjg1NDViNGE1MDIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQorKysgYi9zcmMvYmFja2Vu ZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKQEAgLTcyOSw2ICs3MjksNyBAQCBh dXRvdmFjdXVtX3dvcmtlcl9zbG90cyA9IDE2CSMgYXV0b3ZhY3V1bSB3b3JrZXIgc2xvdHMgdG8g YWxsb2NhdGUKICNzZXNzaW9uX3JlcGxpY2F0aW9uX3JvbGUgPSAnb3JpZ2luJwogI3Nlc3Npb25f dmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nID0gb2ZmCiAjc2Vzc2lvbl92YXJpYWJsZXNfdXNl X2ZlbmNlX3dhcm5pbmdfZ3VhcmQgPSBvZmYKKyNzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vf Y29udGV4dF9ndWFyZCA9ICdub25lJwogI3N0YXRlbWVudF90aW1lb3V0ID0gMAkJCQkjIGluIG1p bGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZAogI3RyYW5zYWN0aW9uX3RpbWVvdXQgPSAwCQkJIyBp biBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKICNsb2NrX3RpbWVvdXQgPSAwCQkJCSMgaW4g bWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmgKaW5kZXggZDNjYzc5YjU2MC4uZTU4YTVhMDExMCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMzAsNSArMzAsMjEgQEAgZXh0ZXJuIHZvaWQgRXhl Y3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpzdG10LCBQYXJhbUxpc3RJ bmZvIHBhcmEKIAkJCQkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LCBRdWVyeUNvbXBs ZXRpb24gKnFjKTsKIAogZXh0ZXJuIHZvaWQgUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpOwor ZXh0ZXJuIHZvaWQgU2Vzc2lvblZhcmlhYmxlc1VzZUZlbmNlQ29udGV4dENoZWNrKE9pZCB2YXJp ZCwgYm9vbCBpc19mZW5jZWQpOworCisvKgorICogU3BlY2lmeSB0aGUgZHluYW1pYyBjb250ZXh0 IHdoZXJlIHZhcmlhYmxlIGZlbmNlIGlzIHJlcXVpcmVkCisgKi8KK3R5cGVkZWYgZW51bSBTZXNz aW9uVmFyaWFibGVzVXNlRmVuY2VDb250ZXh0R3VhcmQKK3sKKwkvKiBEaXNhYmxlIGZlbmNlIHVz YWdlIGNvbnRleHQgZ3VhcmQgKi8KKwlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRf R1VBUkRfTk9ORSwKKwkvKiBFbmFibGUgZmVuY2UgdXNhZ2UgY29udGV4dCBndWFyZCBldmVyeXdo ZXJlICovCisJU0VTU0lPTlZBUklBQkxFX1VTRV9GRU5DRV9DT05URVhUX0dVQVJEX0FMTCwKKwkv KiBFbmFibGUgZmVuY2UgdXNhZ2UgY29udGV4dCBndWFyZCB3aGVuIFNQSSBpcyBub3QgdXNlZCAq LworCVNFU1NJT05WQVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9OT1NQSSwKK30gU2Vz c2lvblZhcmlhYmxlc1VzZUZlbmNlQ29udGV4dEd1YXJkOworCitleHRlcm4gUEdETExJTVBPUlQg aW50IHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkOwogCiAjZW5kaWYK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3NwaS5oIGIvc3JjL2luY2x1ZGUvZXhl Y3V0b3Ivc3BpLmgKaW5kZXggZDA2NGQxYTliNy4uNDY5MGE5NWYzOSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvZXhlY3V0b3Ivc3BpLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3BpLmgK QEAgLTIwMyw1ICsyMDMsNiBAQCBleHRlcm4gdm9pZCBTUElfcm9sbGJhY2tfYW5kX2NoYWluKHZv aWQpOwogZXh0ZXJuIHZvaWQgQXRFT1hhY3RfU1BJKGJvb2wgaXNDb21taXQpOwogZXh0ZXJuIHZv aWQgQXRFT1N1YlhhY3RfU1BJKGJvb2wgaXNDb21taXQsIFN1YlRyYW5zYWN0aW9uSWQgbXlTdWJp ZCk7CiBleHRlcm4gYm9vbCBTUElfaW5zaWRlX25vbmF0b21pY19jb250ZXh0KHZvaWQpOworZXh0 ZXJuIGJvb2wgU1BJX2luc2lkZV9zcGlfY29udGV4dCh2b2lkKTsKIAogI2VuZGlmCQkJCQkJCS8q IFNQSV9IICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXMub3V0CmluZGV4IDlhYzA4YTE0ZTAuLjkwZWVjMjdhNDMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0yMDI4LDMgKzIwMjgsOTMg QEAgRFJPUCBTQ0hFTUEgdGVzdHZhcjsKIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlf d2FybmluZyBUTyBERUZBVUxUOwogU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJu aW5nX2d1YXJkIFRPIERFRkFVTFQ7CiBTRVQgc2VhcmNoX3BhdGggVE8gREVGQVVMVDsKKy0tIHRl c3Qgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBUQUJMRSB2YXJ0ZXN0X3RhYjEoYSBpbnQpOworTEVU IHZhcjEgPSAyMDsKK0lOU0VSVCBJTlRPIHZhcnRlc3RfdGFiMSBWQUxVRVMoMjApOworU0VUIHNl c3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkIFRPICdub25lJzsKKy0tIHNo b3VsZCBiZSBvaworU0VMRUNUIHZhcjEsIFZBUklBQkxFKHZhcjEpOworIHZhcjEgfCB2YXIxIAor LS0tLS0tKy0tLS0tLQorICAgMjAgfCAgIDIwCisoMSByb3cpCisKK0RPICQkCitERUNMQVJFIHQg aW50OworQkVHSU4KKyAgU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IHZhcjEg SU5UTyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIHZhcjEsIHZhcjEgPSB0OworICBTRUxFQ1Qg YSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gVkFSSUFCTEUodmFyMSkgSU5UTyB0OworICBS QUlTRSBOT1RJQ0UgJyUgJScsIFZBUklBQkxFKHZhcjEpLCBWQVJJQUJMRSh2YXIxKSA9IHQ7CitF TkQ7CiskJDsKK05PVElDRTogIDIwIHQKK05PVElDRTogIDIwIHQKK1NFVCBzZXNzaW9uX3Zhcmlh Ymxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyAnYWxsJzsKKy0tIHNob3VsZCBmYWlsCitT RUxFQ1QgdmFyMSwgVkFSSUFCTEUodmFyMSk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1 YmxpYy52YXIxIiBpcyBub3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UKK0RFVEFJTDogIFRo ZXJlIGlzIGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlLgorSElO VDogIFVzZSB2YXJpYWJsZSBmZW5jZSAiVkFSSUFCTEUodmFybmFtZSkgZm9yIGFjY2VzcyB0byB2 YXJpYWJsZSIuCistLSBzaG91bGQgZmFpbAorRE8gJCQKK0RFQ0xBUkUgdCBpbnQ7CitCRUdJTgor ICBTRUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gdmFyMSBJTlRPIHQ7CitFTkQ7 CiskJDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIG5vdCB1c2Vk IGluc2lkZSB2YXJpYWJsZSBmZW5jZQorREVUQUlMOiAgVGhlcmUgaXMgYSByaXNrIG9mIHVud2Fu dGVkIHVzYWdlIG9mIHNlc3Npb24gdmFyaWFibGUuCitISU5UOiAgVXNlIHZhcmlhYmxlIGZlbmNl ICJWQVJJQUJMRSh2YXJuYW1lKSBmb3IgYWNjZXNzIHRvIHZhcmlhYmxlIi4KK0NPTlRFWFQ6ICBT UUwgc3RhdGVtZW50ICJTRUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gdmFyMSIK K1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgNCBhdCBTUUwgc3RhdGVt ZW50CistLSBzaG91bGQgZmFpbAorRE8gJCQKK0RFQ0xBUkUgdCBpbnQgREVGQVVMVCAyMDsKK0JF R0lOCisgIFJBSVNFIE5PVElDRSAnJSAlJywgdmFyMSwgdmFyMSA9IHQ7CitFTkQ7CiskJDsKK0VS Uk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIG5vdCB1c2VkIGluc2lkZSB2 YXJpYWJsZSBmZW5jZQorREVUQUlMOiAgVGhlcmUgaXMgYSByaXNrIG9mIHVud2FudGVkIHVzYWdl IG9mIHNlc3Npb24gdmFyaWFibGUuCitISU5UOiAgVXNlIHZhcmlhYmxlIGZlbmNlICJWQVJJQUJM RSh2YXJuYW1lKSBmb3IgYWNjZXNzIHRvIHZhcmlhYmxlIi4KK0NPTlRFWFQ6ICBQTC9wZ1NRTCBl eHByZXNzaW9uICJ2YXIxIgorUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGlu ZSA0IGF0IFJBSVNFCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJMRSh2YXIxKSwgVkFS SUFCTEUodmFyMSk7CisgdmFyMSB8IHZhcjEgCistLS0tLS0rLS0tLS0tCisgICAyMCB8ICAgMjAK KygxIHJvdykKKworRE8gJCQKK0RFQ0xBUkUgdCBpbnQ7CitCRUdJTgorICBTRUxFQ1QgYSBGUk9N IHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gVkFSSUFCTEUodmFyMSkgSU5UTyB0OworICBSQUlTRSBO T1RJQ0UgJyUgJScsIFZBUklBQkxFKHZhcjEpLCBWQVJJQUJMRSh2YXIxKSA9IHQ7CitFTkQ7Cisk JDsKK05PVElDRTogIDIwIHQKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4 dF9ndWFyZCBUTyAnbm9zcGknOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxLCBWQVJJQUJM RSh2YXIxKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIG5vdCB1 c2VkIGluc2lkZSB2YXJpYWJsZSBmZW5jZQorREVUQUlMOiAgVGhlcmUgaXMgYSByaXNrIG9mIHVu d2FudGVkIHVzYWdlIG9mIHNlc3Npb24gdmFyaWFibGUuCitISU5UOiAgVXNlIHZhcmlhYmxlIGZl bmNlICJWQVJJQUJMRSh2YXJuYW1lKSBmb3IgYWNjZXNzIHRvIHZhcmlhYmxlIi4KKy0tIHNob3Vs ZCBiZSBvaworRE8gJCQKK0RFQ0xBUkUgdCBpbnQ7CitCRUdJTgorICBTRUxFQ1QgYSBGUk9NIHZh cnRlc3RfdGFiMSBXSEVSRSBhID0gdmFyMSBJTlRPIHQ7CisgIFJBSVNFIE5PVElDRSAnJSAlJywg dmFyMSwgdmFyMSA9IHQ7CisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90YWIxIFdIRVJFIGEgPSBW QVJJQUJMRSh2YXIxKSBJTlRPIHQ7CisgIFJBSVNFIE5PVElDRSAnJSAlJywgVkFSSUFCTEUodmFy MSksIFZBUklBQkxFKHZhcjEpID0gdDsKK0VORDsKKyQkOworTk9USUNFOiAgMjAgdAorTk9USUNF OiAgMjAgdAorU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkIFRP IERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRBQkxFIHZhcnRlc3RfdGFiMTsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBjNTQyMDE4 M2Q5Li4zMzBiMGU1OGY4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsCkBAIC0xNDAxLDMgKzE0MDEsNzYgQEAgRFJPUCBTQ0hFTUEgdGVzdHZhcjsKIFNFVCBz ZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBERUZBVUxUOwogU0VUIHNlc3Np b25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkIFRPIERFRkFVTFQ7CiBTRVQgc2Vh cmNoX3BhdGggVE8gREVGQVVMVDsKKworLS0gdGVzdCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVu Y2VfY29udGV4dF9ndWFyZAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFRB QkxFIHZhcnRlc3RfdGFiMShhIGludCk7CisKK0xFVCB2YXIxID0gMjA7CitJTlNFUlQgSU5UTyB2 YXJ0ZXN0X3RhYjEgVkFMVUVTKDIwKTsKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5j ZV9jb250ZXh0X2d1YXJkIFRPICdub25lJzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFy MSwgVkFSSUFCTEUodmFyMSk7CitETyAkJAorREVDTEFSRSB0IGludDsKK0JFR0lOCisgIFNFTEVD VCBhIEZST00gdmFydGVzdF90YWIxIFdIRVJFIGEgPSB2YXIxIElOVE8gdDsKKyAgUkFJU0UgTk9U SUNFICclICUnLCB2YXIxLCB2YXIxID0gdDsKKyAgU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEg V0hFUkUgYSA9IFZBUklBQkxFKHZhcjEpIElOVE8gdDsKKyAgUkFJU0UgTk9USUNFICclICUnLCBW QVJJQUJMRSh2YXIxKSwgVkFSSUFCTEUodmFyMSkgPSB0OworRU5EOworJCQ7CisKK1NFVCBzZXNz aW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyAnYWxsJzsKKworLS0gc2hv dWxkIGZhaWwKK1NFTEVDVCB2YXIxLCBWQVJJQUJMRSh2YXIxKTsKKworLS0gc2hvdWxkIGZhaWwK K0RPICQkCitERUNMQVJFIHQgaW50OworQkVHSU4KKyAgU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3Rh YjEgV0hFUkUgYSA9IHZhcjEgSU5UTyB0OworRU5EOworJCQ7CisKKy0tIHNob3VsZCBmYWlsCitE TyAkJAorREVDTEFSRSB0IGludCBERUZBVUxUIDIwOworQkVHSU4KKyAgUkFJU0UgTk9USUNFICcl ICUnLCB2YXIxLCB2YXIxID0gdDsKK0VORDsKKyQkOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVD VCBWQVJJQUJMRSh2YXIxKSwgVkFSSUFCTEUodmFyMSk7CitETyAkJAorREVDTEFSRSB0IGludDsK K0JFR0lOCisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90YWIxIFdIRVJFIGEgPSBWQVJJQUJMRSh2 YXIxKSBJTlRPIHQ7CisgIFJBSVNFIE5PVElDRSAnJSAlJywgVkFSSUFCTEUodmFyMSksIFZBUklB QkxFKHZhcjEpID0gdDsKK0VORDsKKyQkOworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX2NvbnRleHRfZ3VhcmQgVE8gJ25vc3BpJzsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2 YXIxLCBWQVJJQUJMRSh2YXIxKTsKKworLS0gc2hvdWxkIGJlIG9rCitETyAkJAorREVDTEFSRSB0 IGludDsKK0JFR0lOCisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90YWIxIFdIRVJFIGEgPSB2YXIx IElOVE8gdDsKKyAgUkFJU0UgTk9USUNFICclICUnLCB2YXIxLCB2YXIxID0gdDsKKyAgU0VMRUNU IGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IFZBUklBQkxFKHZhcjEpIElOVE8gdDsKKyAg UkFJU0UgTk9USUNFICclICUnLCBWQVJJQUJMRSh2YXIxKSwgVkFSSUFCTEUodmFyMSkgPSB0Owor RU5EOworJCQ7CisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFy ZCBUTyBERUZBVUxUOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRBQkxFIHZhcnRlc3Rf dGFiMTsKLS0gCjIuNDguMAoK --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Disposition: attachment; filename="v20250117-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8n114 RnJvbSBjYzRhOGE4NjI2ZWQ0MTA4ZmI0ZjY0MmVlMmEzMDdhODJjMjA2ZWYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMTkgTm92IDIwMjQgMDg6MTQ6NTMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4 LzIyXSB2YXJpYWJsZSBmZW5jZSBzeW50YXggc3VwcG9ydCBhbmQgdmFyaWFibGUgZmVuY2UgdXNh Z2UKIGd1YXJkIHN1cHBvcnQKCnRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNvbmNlcHQgb2YgdmFy aWFibGUgZmVuY2UgLSBzeW50YXggZm9yIHZhcmlhYmxlCnJlZmVyZW5jZSBgVkFSSUFCTEUodmFy bmFtZSlgIHRoYXQgaXMgbm90IGluIGNvbGxpc2lvbiB3aXRoIGNvbHVtbiByZWZlcmVuY2UuCldo ZW4gdmFyaWFibGUgZmVuY2UgdXNhZ2UgZ3VhcmQgd2FybmluZyBpcyBhY3RpdmUsIHRoZW4gdXNh Z2UgdmFyaWFibGUKd2l0aG91dCB2YXJpYWJsZSBmZW5jZSBpbiB0aGUgY2FzZSwgd2hlcmUgdGhl cmUgY2FuIGJlIGNvbHVtbiByZWZlcmVuY2VzLAp0aGUgdGhlIHdhcm5pbmcgaXMgcmFpc2VkLgoK aW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB2YXJpYWJsZSBmZW5jZQotLS0KIGRvYy9zcmMvc2dt bC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDY1ICsrKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKysK IHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICA2ICsrCiBz cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAyOCArKysrKyst CiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCA3NCArKysr KysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgICAgICAg ICAgICAgfCAgNyArKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAg ICAgIHwgMTIgKystCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAg ICAgfCAgOSArKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBs ZSB8ICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8 IDEwICsrKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwg IDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCAgICAgICAgICAgICAgIHwgIDEg KwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNTkgKysr KysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwg ICAgfCA0MSArKysrKysrKysrCiAxNCBmaWxlcyBjaGFuZ2VkLCAzMjMgaW5zZXJ0aW9ucygrKSwg NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9k b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggYmQ5MzEwNGI3My4uZWY4ZjliNWY1ZCAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25m aWcuc2dtbApAQCAtMTA5MDMsNiArMTA5MDMsNzEgQEAgREVUQUlMOiAgU2Vzc2lvbiB2YXJpYWJs ZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUncyB2YXJpYWJsZXMgYW5kIHIK ICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0 ZW50cnkgaWQ9Imd1Yy1zZXNzaW9uLXZhcmlhYmxlcy11c2UtZmVuY2Utd2FybmluZy1ndWFyZCIg eHJlZmxhYmVsPSJzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCI+Cisg ICAgICA8dGVybT48dmFybmFtZT5zZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19n dWFyZDwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4K KyAgICAgICA8cHJpbWFyeT48dmFybmFtZT5zZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2Fy bmluZ19ndWFyZDwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+Cisg ICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAg IDxwYXJhPgorICAgICAgIFdoZW4gb24sIGEgd2FybmluZyBpcyByYWlzZWQgd2hlbiBhIHNlc3Np b24gdmFyaWFibGUgaWRlbnRpZmllciBpcyB1c2VkCisgICAgICAgaW5zaWRlIGEgcXVlcnkgd2l0 aG91dCB2YXJpYWJsZSBmZW5jZS4gVGhlIGRlZmF1bHQgaXMgPGxpdGVyYWw+b2ZmPC9saXRlcmFs Pi4KKyAgICAgICBUaGUgd2FybmluZyBpcyByYWlzZWQgb25seSB3aGVuIHZhcmlhYmxlIGlzIHVz ZWQgaW4gcGxhY2VzLCB3aGVyZSBhbgorICAgICAgIGNvbGxpc2lvbnMgd2l0aCBjb2x1bW4gbmFt ZXMgaXMgcG9zc2libGUuCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVEFCTEUgZm9vKGEgaW50 KTsKK0lOU0VSVCBJTlRPIGZvbyBWQUxVRVMoMTApOworQ1JFQVRFIFZBUklBQkxFIGIgaW50Owor TEVUIGIgPSAxMDA7CitTRUxFQ1QgYSwgYiBGUk9NIGZvbzsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisK KzxzY3JlZW4+CisgYSAgfCAgYiAgCistLS0tKy0tLS0tCisgMTAgfCAxMDAKKygxIHJvdykKKzwv c2NyZWVuPgorCis8cHJvZ3JhbWxpc3Rpbmc+CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX3dhcm5pbmdfZ3VhcmQgVE8gb247CitTRUxFQ1QgYSwgYiBGUk9NIGZvbzsKKzwvcHJvZ3Jh bWxpc3Rpbmc+CisKKzxzY3JlZW4+CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYiIgaXMg bm90IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlCitMSU5FIDE6IFNFTEVDVCBhLCBiIEZST00g Zm9vOworICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgVGhlIGNvbGxpc2lvbiBvZiBzZXNz aW9uIHZhcmlhYmxlJyBuYW1lcyBhbmQgY29sdW1uIG5hbWVzIGlzIHBvc3NpYmxlLgorIGEgIHwg IGIgIAorLS0tLSstLS0tLQorIDEwIHwgMTAwCisoMSByb3cpCis8L3NjcmVlbj4KKworPHByb2dy YW1saXN0aW5nPgorU0VMRUNUIGEsIFZBUklBQkxFKGIpIEZST00gZm9vOworPC9wcm9ncmFtbGlz dGluZz4KKworPHNjcmVlbj4KKyBhICB8ICBiICAKKy0tLS0rLS0tLS0KKyAxMCB8IDEwMAorKDEg cm93KQorPC9zY3JlZW4+CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAg IFRoaXMgZmVhdHVyZSBjYW4gc2lnbmlmaWNhbnRseSBpbmNyZWFzZSBsb2cgc2l6ZSwgc28gaXQn cyBkaXNhYmxlZCBieQorICAgICAgICBkZWZhdWx0LiBVbmxlc3MgYW5vdGhlciBjb2xsaXNpb24g cmVzb2x1dGlvbiB0ZWNobmlxdWUgaXMgdXNlZAorICAgICAgICAoZGVkaWNhdGVkIHNjaGVtYSBv ciB1c2luZyBwcmVmaXhlcyBsaWtlIDxsaXRlcmFsPl88L2xpdGVyYWw+KSwKKyAgICAgICAgdGhl IHVzZSBvZiB2YXJpYWJsZSBmZW5jZSBzeW50YXggaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQsIGFu ZCB0aGlzCisgICAgICAgIHdhcm5pbmcgc2hvdWxkIGJlIGVuYWJsZWQuCisgICAgICAgPC9wYXJh PgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxp c3RlbnRyeSBpZD0iZ3VjLXN0YW5kYXJkLWNvbmZvcm1pbmctc3RyaW5ncyIgeHJlZmxhYmVsPSJz dGFuZGFyZF9jb25mb3JtaW5nX3N0cmluZ3MiPgogICAgICAgPHRlcm0+PHZhcm5hbWU+c3RhbmRh cmRfY29uZm9ybWluZ19zdHJpbmdzPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCiAg ICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PnN0cmluZ3M8L3ByaW1hcnk+PHNlY29uZGFyeT5zdGFu ZGFyZCBjb25mb3JtaW5nPC9zZWNvbmRhcnk+PC9pbmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggMWRlZTBhYzI4 ZC4uYTU2NjQ2MDRlNiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTQyOSw2ICs1NDI5LDIxIEBAIFNFTEVDVCBuYW1lIEZS T00gZm9vOwogICAgIDxsaXRlcmFsPnNjaGVtYS52YXJpYWJsZTwvbGl0ZXJhbD4uIEl0IGlzIHN0 cm9uZ2x5IHJlY29tbWVuZGVkIHRvIHJlbmFtZQogICAgIHNoYWRvd2VkIHZhcmlhYmxlcyBvciB1 c2UgcXVhbGlmaWVkIG5hbWVzIGFsd2F5cy4KICAgIDwvcGFyYT4KKworICAgPHBhcmE+PGZpcnN0 dGVybT5WYXJpYWJsZSBmZW5jZTwvZmlyc3R0ZXJtPiBpcyBzcGVjaWFsIHN5bnRheCBmb3Igc2Vz c2lvbgorICAgIHZhcmlhYmxlIGlkZW50aWZpZXIuIE9ubHkgbmFtZSBvciBxdWFsaWZpZWQgbmFt ZSBjYW4gYmUgdXNlZCBpbnNpZGUgdGhlCisgICAgdmFyaWFibGUgZmVuY2UsIGFuZCB0aGlzIG5h bWUgaXMgdXNlZCBhcyBvbmx5IHNlc3Npb24gdmFyaWFibGUgaWRlbnRpZmllci4KKzxwcm9ncmFt bGlzdGluZz4KK1NFTEVDVCBWQVJJQUJMRShjdXJyZW50X3VzZXJfaWQpOworPC9wcm9ncmFtbGlz dGluZz4KKyAgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFdoZW4gdGhlcmUgaXMgYSByaXNrIG9m IHBvc3NpYmxlIGNvbGxpc2lvbnMgYmV0d2VlbiB2YXJpYWJsZSBpZGVudGlmaWVycworICAgYW5k IGNvbHVtbiBuYW1lcywgdGhlbiB1c2luZyB2YXJpYWJsZSBmZW5jZSBzeW50YXggY2FuIGJlIHJl Y29tbWVuZGVkLgorICAgVXNhZ2Ugc2Vzc2lvbiB2YXJpYWJsZSB3aXRob3V0IHZhcmlhYmxlIGZl bmNlIGNhbiBiZSBkZXRlY3RlZCBieQorICAgd2FybmluZyA8eHJlZiBsaW5rZW5kPSJndWMtc2Vz c2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLXdhcm5pbmctZ3VhcmQiLz4uCisgIDwvcGFyYT4KICAg PC9zZWN0MT4KIAogIDxzZWN0MSBpZD0iZGRsLW90aGVycyI+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmlu ZGV4IGQ4ZmMzZDlmYTYuLjU3NTM2NWVlZmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0xNjcz LDYgKzE2NzMsOSBAQCBleHByTG9jYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX1Bh cmFtUmVmOgogCQkJbG9jID0gKChjb25zdCBQYXJhbVJlZiAqKSBleHByKS0+bG9jYXRpb247CiAJ CQlicmVhazsKKwkJY2FzZSBUX1ZhcmlhYmxlRmVuY2U6CisJCQlsb2MgPSAoKGNvbnN0IFZhcmlh YmxlRmVuY2UgKikgZXhwciktPmxvY2F0aW9uOworCQkJYnJlYWs7CiAJCWNhc2UgVF9BX0NvbnN0 OgogCQkJbG9jID0gKChjb25zdCBBX0NvbnN0ICopIGV4cHIpLT5sb2NhdGlvbjsKIAkJCWJyZWFr OwpAQCAtNDcxNSw2ICs0NzE4LDkgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChO b2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRf VmFyaWFibGVGZW5jZToKKwkJCS8qIHdlIGFzc3VtZSB0aGUgZmllbGRzIGNvbnRhaW4gbm90aGlu ZyBpbnRlcmVzdGluZyAqLworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAi dW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBub2RlVGFnKG5vZGUpKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CmluZGV4IDhmNGMzMDIwYWUuLmE0MWUyY2QxMzggMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAt NTI1LDcgKzUyNSw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFy ICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8bm9kZT4JZGVm X2FyZyBjb2x1bW5FbGVtIHdoZXJlX2NsYXVzZSB3aGVyZV9vcl9jdXJyZW50X2NsYXVzZQogCQkJ CWFfZXhwciBiX2V4cHIgY19leHByIEFleHByQ29uc3QgaW5kaXJlY3Rpb25fZWwgb3B0X3NsaWNl X2JvdW5kCiAJCQkJY29sdW1ucmVmIGluX2V4cHIgaGF2aW5nX2NsYXVzZSBmdW5jX3RhYmxlIHht bHRhYmxlIGFycmF5X2V4cHIKLQkJCQlPcHRXaGVyZUNsYXVzZSBvcGVyYXRvcl9kZWZfYXJnCisJ CQkJT3B0V2hlcmVDbGF1c2Ugb3BlcmF0b3JfZGVmX2FyZyB2YXJpYWJsZV9mZW5jZQogJXR5cGUg PGxpc3Q+CW9wdF9jb2x1bW5fYW5kX3BlcmlvZF9saXN0CiAldHlwZSA8bGlzdD4Jcm93c2Zyb21f aXRlbSByb3dzZnJvbV9saXN0IG9wdF9jb2xfZGVmX2xpc3QKICV0eXBlIDxib29sZWFuPiBvcHRf b3JkaW5hbGl0eSBvcHRfd2l0aG91dF9vdmVybGFwcwpAQCAtODgyLDcgKzg4Miw3IEBAIHN0YXRp YyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlh c2VzLCBOb2RlICpxdWVyeSk7CiAgKi8KICVub25hc3NvYwlVTkJPVU5ERUQgTkVTVEVEIC8qIGlk ZWFsbHkgd291bGQgaGF2ZSBzYW1lIHByZWNlZGVuY2UgYXMgSURFTlQgKi8KICVub25hc3NvYwlJ REVOVCBQQVJUSVRJT04gUkFOR0UgUk9XUyBHUk9VUFMgUFJFQ0VESU5HIEZPTExPV0lORyBDVUJF IFJPTExVUAotCQkJU0VUIEtFWVMgT0JKRUNUX1AgU0NBTEFSIFZBTFVFX1AgV0lUSCBXSVRIT1VU IFBBVEgKKwkJCVNFVCBLRVlTIE9CSkVDVF9QIFNDQUxBUiBWQUxVRV9QIFdJVEggV0lUSE9VVCBQ QVRIIFZBUklBQkxFCiAlbGVmdAkJT3AgT1BFUkFUT1IJCS8qIG11bHRpLWNoYXJhY3RlciBvcHMg YW5kIHVzZXItZGVmaW5lZCBvcGVyYXRvcnMgKi8KICVsZWZ0CQknKycgJy0nCiAlbGVmdAkJJyon ICcvJyAnJScKQEAgLTE1NjYxLDYgKzE1NjYxLDE5IEBAIGNfZXhwcjoJCWNvbHVtbnJlZgkJCQkJ CQkJeyAkJCA9ICQxOyB9CiAJCQkJCWVsc2UKIAkJCQkJCSQkID0gJDI7CiAJCQkJfQorCQkJfCB2 YXJpYWJsZV9mZW5jZSBvcHRfaW5kaXJlY3Rpb24KKwkJCQl7CisJCQkJCWlmICgkMikKKwkJCQkJ eworCQkJCQkJQV9JbmRpcmVjdGlvbiAqbiA9IG1ha2VOb2RlKEFfSW5kaXJlY3Rpb24pOworCisJ CQkJCQluLT5hcmcgPSAoTm9kZSAqKSAkMTsKKwkJCQkJCW4tPmluZGlyZWN0aW9uID0gY2hlY2tf aW5kaXJlY3Rpb24oJDIsIHl5c2Nhbm5lcik7CisJCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJ CX0KKwkJCQkJZWxzZQorCQkJCQkJJCQgPSAkMTsKKwkJCQl9CiAJCQl8IGNhc2VfZXhwcgogCQkJ CXsgJCQgPSAkMTsgfQogCQkJfCBmdW5jX2V4cHIKQEAgLTE3MDQ3LDYgKzE3MDYwLDE3IEBAIGNh c2VfYXJnOglhX2V4cHIJCQkJCQkJCQl7ICQkID0gJDE7IH0KIAkJCXwgLypFTVBUWSovCQkJCQkJ CQl7ICQkID0gTlVMTDsgfQogCQk7CiAKK3ZhcmlhYmxlX2ZlbmNlOgorCQkJVkFSSUFCTEUgJygn IGFueV9uYW1lICcpJworCQkJCXsKKwkJCQkJVmFyaWFibGVGZW5jZSAqdmYgPSBtYWtlTm9kZShW YXJpYWJsZUZlbmNlKTsKKworCQkJCQl2Zi0+dmFybmFtZSA9ICQzOworCQkJCQl2Zi0+bG9jYXRp b24gPSBAMzsKKwkJCQkJJCQgPSAoTm9kZSAqKSB2ZjsKKwkJCQl9CisJCTsKKwogY29sdW1ucmVm OglDb2xJZAogCQkJCXsKIAkJCQkJJCQgPSBtYWtlQ29sdW1uUmVmKCQxLCBOSUwsIEAxLCB5eXNj YW5uZXIpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggNjNmMTczMmY2OS4uZGQwM2IxZjE0 ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC00Niw2ICs0Niw3IEBACiAvKiBHVUMgcGFy YW1ldGVycyAqLwogYm9vbAkJVHJhbnNmb3JtX251bGxfZXF1YWxzID0gZmFsc2U7CiBib29sCQlz ZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IGZhbHNlOworYm9vbAkJc2Vzc2lv bl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgPSBmYWxzZTsKIAogCiBzdGF0aWMg Tm9kZSAqdHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHBy KTsKQEAgLTgxLDYgKzgyLDcgQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybVdob2xlUm93UmVmKFBh cnNlU3RhdGUgKnBzdGF0ZSwKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCk7CiBzdGF0aWMgTm9kZSAqdHJhbnNm b3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMpOwogc3RhdGljIE5v ZGUgKnRyYW5zZm9ybUNvbGxhdGVDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2xsYXRlQ2xh dXNlICpjKTsKK3N0YXRpYyBOb2RlICp0cmFuc2Zvcm1WYXJpYWJsZUZlbmNlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgVmFyaWFibGVGZW5jZSAqdmYpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUpzb25P YmplY3RDb25zdHJ1Y3RvcihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCUpzb25PYmpl Y3RDb25zdHJ1Y3RvciAqY3Rvcik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNvbkFycmF5Q29u c3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLApAQCAtMTEyLDcgKzExNCw3IEBAIHN0YXRpYyBO b2RlICptYWtlX251bGx0ZXN0X2Zyb21fZGlzdGluY3QoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJ CQkJCQkJCSBBX0V4cHIgKmRpc3RpbmN0YSwgTm9kZSAqYXJnKTsKIHN0YXRpYyBOb2RlICptYWtl UGFyYW1TZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJICBPaWQg dmFyaWQsIE9pZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAotCQkJCQkJCQkJICBj aGFyICphdHRybmFtZSwgaW50IGxvY2F0aW9uKTsKKwkJCQkJCQkJCSAgY2hhciAqYXR0cm5hbWUs IGJvb2wgZmVuY2VkLCBpbnQgbG9jYXRpb24pOwogCiAKIC8qCkBAIC0zNzcsNiArMzc5LDEwIEBA IHRyYW5zZm9ybUV4cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJ CXJlc3VsdCA9IHRyYW5zZm9ybUpzb25GdW5jRXhwcihwc3RhdGUsIChKc29uRnVuY0V4cHIgKikg ZXhwcik7CiAJCQlicmVhazsKIAorCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJCXJlc3VsdCA9 IHRyYW5zZm9ybVZhcmlhYmxlRmVuY2UocHN0YXRlLCAoVmFyaWFibGVGZW5jZSAqKSBleHByKTsK KwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkvKiBzaG91bGQgbm90IHJlYWNoIGhlcmUgKi8K IAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsIChpbnQpIG5vZGVU YWcoZXhwcikpOwpAQCAtMTAyOCw3ICsxMDM0LDIwIEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJz ZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAogCQkJCW5vZGUgPSBtYWtlUGFyYW1T ZXNzaW9uVmFyaWFibGUocHN0YXRlLAogCQkJCQkJCQkJCQkJdmFyaWQsIHR5cGlkLCB0eXBtb2Qs IGNvbGxpZCwKLQkJCQkJCQkJCQkJCWF0dHJuYW1lLCBjcmVmLT5sb2NhdGlvbik7CisJCQkJCQkJ CQkJCQlhdHRybmFtZSwgZmFsc2UsIGNyZWYtPmxvY2F0aW9uKTsKKworCQkJCS8qCisJCQkJICog VGhlIHZhcmlhYmxlIGlzIG5vdCBpbnNpZGUgdmFyaWFibGUncyBmZW5jZSwgc28gcmFpc2Ugd2Fy bmluZworCQkJCSAqIHdoZW4gdmFyaWFibGUgZmVuY2UgZ3VhcmQgaXMgYWN0aXZlIGFuZCB0aGUg cXVlcnkgaGFzIEZST00KKwkJCQkgKiBjbGF1c2UuCisJCQkJICovCisJCQkJaWYgKHNlc3Npb25f dmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkICYmIHBzdGF0ZS0+cF9ydGFibGUpCisJ CQkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19D T0xVTU4pLAorCQkJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGlzIG5vdCB1 c2VkIGluc2lkZSB2YXJpYWJsZSBmZW5jZSIsCisJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKGNy ZWYtPmZpZWxkcykpLAorCQkJCQkJCSBlcnJkZXRhaWwoIlRoZSBjb2xsaXNpb24gb2Ygc2Vzc2lv biB2YXJpYWJsZScgbmFtZXMgYW5kIGNvbHVtbiBuYW1lcyBpcyBwb3NzaWJsZS4iKSwKKwkJCQkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKSk7CiAJCQl9CiAJ CX0KIAl9CkBAIC0xMDcxLDcgKzEwOTAsNyBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiBzdGF0aWMgTm9kZSAqCiBtYWtlUGFyYW1TZXNz aW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJIE9pZCB2YXJpZCwgT2lkIHR5 cGlkLCBpbnQzMiB0eXBtb2QsIE9pZCBjb2xsaWQsCi0JCQkJCQkgY2hhciAqYXR0cm5hbWUsIGlu dCBsb2NhdGlvbikKKwkJCQkJCSBjaGFyICphdHRybmFtZSwgYm9vbCBmZW5jZWQsIGludCBsb2Nh dGlvbikKIHsKIAlQYXJhbQkgICAqcGFyYW07CiAKQEAgLTEwNzksNiArMTA5OCw3IEBAIG1ha2VQ YXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCiAKIAlwYXJhbS0+cGFyYW1r aW5kID0gUEFSQU1fVkFSSUFCTEU7CiAJcGFyYW0tPnBhcmFtdmFyaWQgPSB2YXJpZDsKKwlwYXJh bS0+cGFyYW12YXJmZW5jZWQgPSBmZW5jZWQ7CiAJcGFyYW0tPnBhcmFtdHlwZSA9IHR5cGlkOwog CXBhcmFtLT5wYXJhbXR5cG1vZCA9IHR5cG1vZDsKIAlwYXJhbS0+cGFyYW1jb2xsaWQgPSBjb2xs aWQ7CkBAIC0xMTU3LDYgKzExNzcsNTQgQEAgdHJhbnNmb3JtUGFyYW1SZWYoUGFyc2VTdGF0ZSAq cHN0YXRlLCBQYXJhbVJlZiAqcHJlZikKIAlyZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgTm9k ZSAqCit0cmFuc2Zvcm1WYXJpYWJsZUZlbmNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgVmFyaWFibGVG ZW5jZSAqdmYpCit7CisJTm9kZQkgICAqcmVzdWx0OworCU9pZAkJCXZhcmlkID0gSW52YWxpZE9p ZDsKKwljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7CisJYm9vbAkJbm90X3VuaXF1ZTsKKworCS8q IFZhcmlhYmxlRmVuY2UgY2FuIGJlIHVzZWQgb25seSBpbiBjb250ZXh0IHdoZW4gdmFyaWFibGVz IGFyZSBzdXBwb3J0ZWQgKi8KKwlpZiAoIWV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJs ZXMocHN0YXRlLT5wX2V4cHJfa2luZCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29kZShF UlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlh YmxlIHJlZmVyZW5jZSBpcyBub3Qgc3VwcG9ydGVkIGhlcmUiKSwKKwkJCSBwYXJzZXJfZXJycG9z aXRpb24ocHN0YXRlLCB2Zi0+bG9jYXRpb24pKSk7CisKKwkvKiB0YWtlcyBhbiBBY2Nlc3NTaGFy ZUxvY2sgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KKwl2YXJpZCA9IElkZW50aWZ5VmFyaWFi bGUodmYtPnZhcm5hbWUsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNlKTsKKworCWlmIChu b3RfdW5pcXVlKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdV T1VTX1BBUkFNRVRFUiksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2Ug XCIlc1wiIGlzIGFtYmlndW91cyIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKHZmLT52YXJuYW1l KSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHZmLT5sb2NhdGlvbikpKTsKKwor CWlmIChPaWRJc1ZhbGlkKHZhcmlkKSkKKwl7CisJCU9pZAkJCXR5cGlkOworCQlpbnQzMgkJdHlw bW9kOworCQlPaWQJCQljb2xsaWQ7CisKKwkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBt b2RfY29sbGlkKHZhcmlkLCAmdHlwaWQsICZ0eXBtb2QsCisJCQkJCQkJCQkJCQkmY29sbGlkKTsK KworCQlyZXN1bHQgPSBtYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUocHN0YXRlLAorCQkJCQkJCQkJ CXZhcmlkLCB0eXBpZCwgdHlwbW9kLCBjb2xsaWQsCisJCQkJCQkJCQkJYXR0cm5hbWUsIHRydWUs IHZmLT5sb2NhdGlvbik7CisJfQorCWVsc2UKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFi bGUgXCIlc1wiIGRvZXNuJ3QgZXhpc3QiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyh2Zi0+dmFy bmFtZSkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCB2Zi0+bG9jYXRpb24pKSk7 CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKiBUZXN0IHdoZXRoZXIgYW4gYV9leHByIGlzIGEg cGxhaW4gTlVMTCBjb25zdGFudCBvciBub3QgKi8KIHN0YXRpYyBib29sCiBleHBySXNOdWxsQ29u c3RhbnQoTm9kZSAqYXJnKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Rh cmdldC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCmluZGV4IDRhYmEwZDlk NGQuLmNmMDFiZmY2NWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTIwMzQsNiAr MjAzNCwxMyBAQCBGaWd1cmVDb2xuYW1lSW50ZXJuYWwoTm9kZSAqbm9kZSwgY2hhciAqKm5hbWUp CiAJCQkJCQkgKGludCkgKChKc29uRnVuY0V4cHIgKikgbm9kZSktPm9wKTsKIAkJCX0KIAkJCWJy ZWFrOworCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJCXsKKwkJCQkvKiByZXR1cm4gbGFzdCBm aWVsZCBuYW1lICovCisJCQkJKm5hbWUgPSBzdHJWYWwobGxhc3QoKChWYXJpYWJsZUZlbmNlICop IG5vZGUpLT52YXJuYW1lKSk7CisJCQkJcmV0dXJuIDI7CisJCQl9CisJCQlicmVhazsKIAkJZGVm YXVsdDoKIAkJCWJyZWFrOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9y dWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCA3NDE3 MDU0YzM4Li4xMDZmODJiOGJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVs ZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC04Njgy LDggKzg2ODIsMTYgQEAgZ2V0X3BhcmFtZXRlcihQYXJhbSAqcGFyYW0sIGRlcGFyc2VfY29udGV4 dCAqY29udGV4dCkKIAkvKiB0cmFuc2xhdGUgcGFyYW12YXJpZCB0byBzZXNzaW9uIHZhcmlhYmxl IG5hbWUgKi8KIAlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKIAl7Ci0J CWFwcGVuZFN0cmluZ0luZm8oY29udGV4dC0+YnVmLCAiJXMiLAotCQkJCQkJIGdlbmVyYXRlX3Nl c3Npb25fdmFyaWFibGVfbmFtZShwYXJhbS0+cGFyYW12YXJpZCkpOworCQlpZiAocGFyYW0tPnBh cmFtdmFyZmVuY2VkKQorCQl7CisJCQlhcHBlbmRTdHJpbmdJbmZvKGNvbnRleHQtPmJ1ZiwgIlZB UklBQkxFKCVzKSIsCisJCQkJCQkJIGdlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFtZShwYXJh bS0+cGFyYW12YXJpZCkpOworCQl9CisJCWVsc2UKKwkJeworCQkJYXBwZW5kU3RyaW5nSW5mbyhj b250ZXh0LT5idWYsICIlcyIsCisJCQkJCQkJIGdlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFt ZShwYXJhbS0+cGFyYW12YXJpZCkpOworCQl9CiAJCXJldHVybjsKIAl9CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv bWlzYy9ndWNfdGFibGVzLmMKaW5kZXggMDBhZDk4NzlhNC4uZTM2ZGUxZGJmMCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE2MTUsNiArMTYxNSwxNSBAQCBzdHJ1Y3QgY29u ZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQlmYWxzZSwKIAkJTlVMTCwgTlVMTCwg TlVMTAogCX0sCisJeworCQl7InNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1 YXJkIiwgUEdDX1VTRVJTRVQsIENMSUVOVF9DT05OX1NUQVRFTUVOVCwKKwkJCWdldHRleHRfbm9v cCgiUmFpc2UgYSB3YXJuaW5nIHdoZW4gdmFyaWFibGUgaXMgbm90IHVzZWQgaW5zaWRlIHZhcmlh YmxlIGZlbmNlLiIpLAorCQkJTlVMTAorCQl9LAorCQkmc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX3dhcm5pbmdfZ3VhcmQsCisJCWZhbHNlLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKIAl7 CiAJCXsiZGVmYXVsdF90cmFuc2FjdGlvbl9yZWFkX29ubHkiLCBQR0NfVVNFUlNFVCwgQ0xJRU5U X0NPTk5fU1RBVEVNRU5ULAogCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBkZWZhdWx0IHJlYWQt b25seSBzdGF0dXMgb2YgbmV3IHRyYW5zYWN0aW9ucy4iKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCA2ODZhZDExMDM4Li5mNmYwY2MwNDQ4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1w bGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBA IC03MjgsNiArNzI4LDcgQEAgYXV0b3ZhY3V1bV93b3JrZXJfc2xvdHMgPSAxNgkjIGF1dG92YWN1 dW0gd29ya2VyIHNsb3RzIHRvIGFsbG9jYXRlCiAjZGVmYXVsdF90cmFuc2FjdGlvbl9kZWZlcnJh YmxlID0gb2ZmCiAjc2Vzc2lvbl9yZXBsaWNhdGlvbl9yb2xlID0gJ29yaWdpbicKICNzZXNzaW9u X3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IG9mZgorI3Nlc3Npb25fdmFyaWFibGVzX3Vz ZV9mZW5jZV93YXJuaW5nX2d1YXJkID0gb2ZmCiAjc3RhdGVtZW50X3RpbWVvdXQgPSAwCQkJCSMg aW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAjdHJhbnNhY3Rpb25fdGltZW91dCA9IDAJ CQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZAogI2xvY2tfdGltZW91dCA9IDAJCQkJ IyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRl eCA0ZDI5ZjJiMjRmLi5lMzU4ZWFhMTBjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0zMjEs NiArMzIxLDE2IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFtUmVmCiAJUGFyc2VMb2MJbG9jYXRpb247 CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogfSBQYXJhbVJlZjsKIAor LyoKKyAqIFZhcmlhYmxlRmVuY2UgLSBlbnN1cmUgc28gZmllbGRzIHdpbGwgYmUgaW50ZXJwcmV0 dGVkIGFzIGEgdmFyaWFibGUKKyAqLwordHlwZWRlZiBzdHJ1Y3QgVmFyaWFibGVGZW5jZQorewor CU5vZGVUYWcJCXR5cGU7CisJTGlzdAkgICAqdmFybmFtZTsJCS8qIHZhcmlhYmxlIG5hbWUgKFN0 cmluZyBub2RlcykgKi8KKwlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBv ciAtMSBpZiB1bmtub3duICovCit9IFZhcmlhYmxlRmVuY2U7CisKIC8qCiAgKiBBX0V4cHIgLSBp bmZpeCwgcHJlZml4LCBhbmQgcG9zdGZpeCBleHByZXNzaW9ucwogICovCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oCmluZGV4IDdmZDljOGUyZjAuLjllMDBkNWFmMGEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBA IC00MTAsNiArNDEwLDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KIAkgKiBwYXJhbSBpcyB1c2Vk IGp1c3QgZm9yIGV4ZWN1dGlvbiBvZiBVUERBVEUgb3BlcmF0aW9uLgogCSAqLwogCWJvb2wJCXBh cmFtYmFzZW5vZGU7CisJLyogdHJ1ZSB3aGVuIHZhcmlhYmxlIGlzIHVzZWQgaW5zaWRlIGFuIGZl bmNlICovCisJYm9vbAkJcGFyYW12YXJmZW5jZWQ7CiAJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0x IGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlsb2NhdGlvbjsKIH0gUGFyYW07CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX2V4cHIuaAppbmRleCBkMjIwOTA3MDE4Li41YmRlNDM3NThkIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9leHByLmgKQEAgLTE4LDYgKzE4LDcgQEAKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4g UEdETExJTVBPUlQgYm9vbCBUcmFuc2Zvcm1fbnVsbF9lcXVhbHM7CiBleHRlcm4gUEdETExJTVBP UlQgYm9vbCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzsKK2V4dGVybiBQR0RM TElNUE9SVCBib29sIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkOwog CiBleHRlcm4gTm9kZSAqdHJhbnNmb3JtRXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4 cHIsIFBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDdjMzUwYWQ1ZWYuLjlhYzA4YTE0ZTAg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CkBAIC0xOTY5LDMgKzE5NjksNjIgQEAgU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93 YXJuaW5nIFRPIG9mZjsKIERST1AgVEFCTEUgcHVibGljLnh4dGFiOwogRFJPUCBTQ0hFTUEgeHh0 YWIgQ0FTQ0FERTsKIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSB4 eHRhYi5hdmFyCistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1 YXJkCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CitTRVQg c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgVE8gb247CitDUkVBVEUg U0NIRU1BIHRlc3R2YXI7CitTRVQgc2VhcmNoX3BhdGggVE8gJ3Rlc3R2YXInOworQ1JFQVRFIFZB UklBQkxFIGEgQVMgaW50OworTEVUIGEgPSAxMDsKK0NSRUFURSBUQUJMRSB0ZXN0X3RhYmxlKGEg aW50LCBiIGludCk7CitJTlNFUlQgSU5UTyB0ZXN0X3RhYmxlIFZBTFVFUygyMCwgMjApOworLS0g bm8gd2FybmluZworU0VMRUNUIGE7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworLS0gd2Fy bmluZyB2YXJpYWJsZSBpcyBzaGFkb3dlZAorU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxlOwor V0FSTklORzogIHNlc3Npb24gdmFyaWFibGUgImEiIGlzIHNoYWRvd2VkCitMSU5FIDE6IFNFTEVD VCBhLCBiIEZST00gdGVzdF90YWJsZTsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFNlc3Np b24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFi bGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4KKyBhICB8IGIg IAorLS0tLSstLS0tCisgMjAgfCAyMAorKDEgcm93KQorCistLSBubyB3YXJuaW5nCitTRUxFQ1Qg dmFyaWFibGUoYSkgRlJPTSB0ZXN0X3RhYmxlOworIGEgIAorLS0tLQorIDEwCisoMSByb3cpCisK K0FMVEVSIFRBQkxFIHRlc3RfdGFibGUgRFJPUCBDT0xVTU4gYTsKKy0tIHdhcm5pbmcgLSB2YXJp YWJsZSBmZW5jZSBpcyBub3QgdXNlZAorU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxlOworV0FS TklORzogIHNlc3Npb24gdmFyaWFibGUgImEiIGlzIG5vdCB1c2VkIGluc2lkZSB2YXJpYWJsZSBm ZW5jZQorTElORSAxOiBTRUxFQ1QgYSwgYiBGUk9NIHRlc3RfdGFibGU7CisgICAgICAgICAgICAg ICBeCitERVRBSUw6ICBUaGUgY29sbGlzaW9uIG9mIHNlc3Npb24gdmFyaWFibGUnIG5hbWVzIGFu ZCBjb2x1bW4gbmFtZXMgaXMgcG9zc2libGUuCisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwg MjAKKygxIHJvdykKKworLS0gbm8gd2FybmluZworU0VMRUNUIHZhcmlhYmxlKGEpLCBiIEZST00g dGVzdF90YWJsZTsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEgcm93KQorCitE Uk9QIFZBUklBQkxFIGE7CitEUk9QIFRBQkxFIHRlc3RfdGFibGU7CitEUk9QIFNDSEVNQSB0ZXN0 dmFyOworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIERFRkFVTFQ7 CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgVE8gREVGQVVM VDsKK1NFVCBzZWFyY2hfcGF0aCBUTyBERUZBVUxUOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IDY4YmU0MTViZjIuLmM1NDIwMTgzZDkgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTEzNjAsMyArMTM2MCw0 NCBAQCBTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogCiBE Uk9QIFRBQkxFIHB1YmxpYy54eHRhYjsKIERST1AgU0NIRU1BIHh4dGFiIENBU0NBREU7CisKKy0t IHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQKK1NFVCBzZXNz aW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKK1NFVCBzZXNzaW9uX3Zhcmlh Ymxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCBUTyBvbjsKKworQ1JFQVRFIFNDSEVNQSB0ZXN0 dmFyOworCitTRVQgc2VhcmNoX3BhdGggVE8gJ3Rlc3R2YXInOworCitDUkVBVEUgVkFSSUFCTEUg YSBBUyBpbnQ7CitMRVQgYSA9IDEwOworCitDUkVBVEUgVEFCTEUgdGVzdF90YWJsZShhIGludCwg YiBpbnQpOworCitJTlNFUlQgSU5UTyB0ZXN0X3RhYmxlIFZBTFVFUygyMCwgMjApOworCistLSBu byB3YXJuaW5nCitTRUxFQ1QgYTsKKworLS0gd2FybmluZyB2YXJpYWJsZSBpcyBzaGFkb3dlZAor U0VMRUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxlOworCistLSBubyB3YXJuaW5nCitTRUxFQ1QgdmFy aWFibGUoYSkgRlJPTSB0ZXN0X3RhYmxlOworCitBTFRFUiBUQUJMRSB0ZXN0X3RhYmxlIERST1Ag Q09MVU1OIGE7CisKKy0tIHdhcm5pbmcgLSB2YXJpYWJsZSBmZW5jZSBpcyBub3QgdXNlZAorU0VM RUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxlOworCistLSBubyB3YXJuaW5nCitTRUxFQ1QgdmFyaWFi bGUoYSksIGIgRlJPTSB0ZXN0X3RhYmxlOworCitEUk9QIFZBUklBQkxFIGE7CitEUk9QIFRBQkxF IHRlc3RfdGFibGU7CisKK0RST1AgU0NIRU1BIHRlc3R2YXI7CisKK1NFVCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBERUZBVUxUOworU0VUIHNlc3Npb25fdmFyaWFibGVz X3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkIFRPIERFRkFVTFQ7CitTRVQgc2VhcmNoX3BhdGggVE8g REVGQVVMVDsKLS0gCjIuNDguMAoK --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0007-GUC-session_variables_ambiguity_warning.patch" Content-Disposition: attachment; filename="v20250117-0007-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8nb15 RnJvbSBjNDQ2ZTcyMGZlZmYwNjQ1YTI3YWU2NzBlZDI4NzQzYTdmZGZkM2VjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTc6NTU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA3 LzIyXSBHVUMgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcKCkluc2lkZSBhbiBx dWVyeSB0aGUgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkLiBUaGlzIGJlaGF2aW91 ciBpcyBieSBkZXNpZ24sCmJlY2F1c2UgdGhpcyBlbnN1cmluZyBzbyBuZXcgdmFyaWFibGVzIGRv ZXNuJ3QgYnJlYWsgZXhpc3RpbmcgcXVlcmllcy4gQnV0IHRoaXMKYmVoYXZpb3VyIGNhbiBiZSBj b25mdXNpbmcsIGJlY2F1c2Ugc2hhZG93aW5nIGlzIHF1aWV0LgoKV2hlbiBuZXcgR1VDIHNlc3Np b25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIGlzIG9uLCB0aGVuIHRoZSB3YXJuaW5nCmlz IGRpc3BsYXllZCwgd2hlbiBzb21lIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIHVzZWQsIGJ1dCBp dCBpcyBub3QgdXNlZApkdWUgc2hhZG93aW5nLiBUaGlzIGZlYXR1cmUgc2hvdWxkIHRvIGhlbHAg d2l0aCBpbnZlc3RpZ2F0aW9uIG9mIHVuZXhwZWN0ZWQKYmVoYXZpb3VyLgoKTm90ZTogUExwZ1NR TCBoYXMgYW4gb3B0aW9uIHRoYXQgY29udHJvbHMgcHJpb3JpdHkgb2YgaWRlbnRpZmllcidzIHNw YWNlcwooU1FMIG9yIFBMcGdTUUwpLiBEZWZhdWx0IGJlaGF2aW91ciBkb2Vzbid0IGFsbG93cyBj b2xsaXNpb25zLiBJIGJlbGlldmUKdGhpcyBkZWZhdWx0IGlzIHRoZSBiZXN0LiBJIGNhbm5vdCB0 byBpbXBsZW1lbnQgc2ltaWxhciB2ZXJ5IHN0cmljdApiZWhhdmlvdXIgdG8gc2Vzc2lvbiB2YXJp YWJsZXMsIGJlY2F1c2Ugb25lIHVuaGFwcHkgbmFtZWQgc2Vzc2lvbiB2YXJpYWJsZQpjYW4gYnJl YWtzIGFuIGFwcGxpY2F0aW9ucy4gVGhlIHByb2JsZW1zIHJlbGF0ZWQgdG8gYmFkbHkgbmFtZWQg UExwZ1NRTCdzCnZhcmlibGUgaXMgbGltaXR0ZWQganVzdCB0byBvbmx5IG9uZSByb3V0aW5lLgot LS0KIGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDYwICsr KysrKysrKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAg ICAgICAgICB8IDExICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAg ICAgICAgICB8IDQ5ICsrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMgICAgICAgICAgIHwgIDkgKysrCiBzcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUgfCAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5o ICAgICAgICAgICAgICAgfCAgMSArCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5vdXQgfCAzMyArKysrKysrKysrCiAuLi4vc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25f dmFyaWFibGUuc3FsICAgICAgfCAyOSArKysrKysrKysKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dCAgICB8IDI2ICsrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyNiArKysrKysrKwogMTAgZmlsZXMgY2hhbmdl ZCwgMjQxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IGE4ODY2 MjkyZDQuLmJkOTMxMDRiNzMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKQEAgLTEwODQzLDYgKzEwODQzLDY2IEBAIGR5 bmFtaWNfbGlicmFyeV9wYXRoID0gJ0M6XHRvb2xzXHBvc3RncmVzcWw7SDpcbXlfcHJvamVjdFxs aWI7JGxpYmRpcicKICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisg ICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1zZXNzaW9uLXZhcmlhYmxlcy1hbWJpZ3VpdHktd2Fy bmluZyIgeHJlZmxhYmVsPSJzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyI+Cisg ICAgICA8dGVybT48dmFybmFtZT5zZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzwv dmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAg ICA8cHJpbWFyeT48dmFybmFtZT5zZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzwv dmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICA8L2luZGV4 dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgV2hlbiBvbiwgYSB3YXJuaW5nIGlzIHJhaXNlZCB3aGVuIGFueSBpZGVudGlmaWVyIGlu IGEgcXVlcnkgY291bGQgYmUKKyAgICAgICAgdXNlZCBhcyBib3RoIGEgY29sdW1uIGlkZW50aWZp ZXIsIHJvdXRpbmUgdmFyaWFibGUgb3IgYSBzZXNzaW9uCisgICAgICAgIHZhcmlhYmxlIGlkZW50 aWZpZXIuIFRoZSBkZWZhdWx0IGlzIDxsaXRlcmFsPm9mZjwvbGl0ZXJhbD4uCisgICAgICAgPC9w YXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hh ZG93ZWQgYnkgY29sdW1uIHJlZmVyZW5jZXMgaW4gYSBxdWVyeSwgdGhpcworICAgICAgICBpcyBh biBleHBlY3RlZCBiZWhhdmlvci4gIFByZXZpb3VzbHkgd29ya2luZyBxdWVyaWVzIHNob3VsZG4n dCBlcnJvciBvdXQKKyAgICAgICAgYnkgY3JlYXRpbmcgYW55IHNlc3Npb24gdmFyaWFibGUsIHNv IHNlc3Npb24gdmFyaWFibGVzIGFyZSBhbHdheXMgc2hhZG93ZWQKKyAgICAgICAgaWYgYW4gaWRl bnRpZmllciBpcyBhbWJpZ3VvdXMuICBWYXJpYWJsZXMgc2hvdWxkIGJlIHJlZmVyZW5jZWQgdXNp bmcKKyAgICAgICAgYW51bmFtYmlndW91cyBpZGVudGlmaWVyIHdpdGhvdXQgYW55IHBvc3NpYmls aXR5IGZvciBhIGNvbGxpc2lvbiB3aXRoCisgICAgICAgIGlkZW50aWZpZXIgb2Ygb3RoZXIgZGF0 YWJhc2Ugb2JqZWN0cyAoY29sdW1uIG5hbWVzIG9yIHJlY29yZCBmaWVsZHMgbmFtZXMpLgorICAg ICAgICBUaGUgd2FybmluZyBtZXNzYWdlcyBlbWl0dGVkIHdoZW4gZW5hYmxpbmcgPHZhcm5hbWU+ c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmc8L3Zhcm5hbWU+CisgICAgICAgIGNh biBoZWxwIGZpbmRpbmcgc3VjaCBpZGVudGlmaWVyIGNvbGxpc2lvbi4KKzxwcm9ncmFtbGlzdGlu Zz4KK0NSRUFURSBUQUJMRSBmb28oYSBpbnQpOworSU5TRVJUIElOVE8gZm9vIFZBTFVFUygxMCk7 CitDUkVBVEUgVkFSSUFCTEUgYSBpbnQ7CitMRVQgYSA9IDEwMDsKK1NFTEVDVCBhIEZST00gZm9v OworPC9wcm9ncmFtbGlzdGluZz4KKworPHNjcmVlbj4KKyBhCistLS0tCisgMTAKKygxIHJvdykK Kzwvc2NyZWVuPgorCis8cHJvZ3JhbWxpc3Rpbmc+CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1i aWd1aXR5X3dhcm5pbmcgVE8gb247CitTRUxFQ1QgYSBGUk9NIGZvbzsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisKKzxzY3JlZW4+CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYSIgaXMgc2hhZG93 ZWQKK0xJTkUgMTogU0VMRUNUIGEgRlJPTSBmb287CisgICAgICAgICAgICAgICBeCitERVRBSUw6 ICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdz IHZhcmlhYmxlcyBhbmQgcm91dGluZSdzIGFyZ3VtZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUuCisg YQorLS0tLQorIDEwCisoMSByb3cpCis8L3NjcmVlbj4KKyAgICAgICA8L3BhcmE+CisgICAgICAg PHBhcmE+CisgICAgICAgIFRoaXMgZmVhdHVyZSBjYW4gc2lnbmlmaWNhbnRseSBpbmNyZWFzZSBs b2cgc2l6ZSwgc28gaXQncyBkaXNhYmxlZCBieQorICAgICAgICBkZWZhdWx0LiAgRm9yIHRlc3Rp bmcgb3IgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzIGl0J3MgcmVjb21tZW5kZWQgdG8KKyAgICAg ICAgZW5hYmxlIGl0IGlmIHlvdSB1c2Ugc2Vzc2lvbiB2YXJpYWJsZXMuCisgICAgICAgPC9wYXJh PgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxp c3RlbnRyeSBpZD0iZ3VjLXN0YW5kYXJkLWNvbmZvcm1pbmctc3RyaW5ncyIgeHJlZmxhYmVsPSJz dGFuZGFyZF9jb25mb3JtaW5nX3N0cmluZ3MiPgogICAgICAgPHRlcm0+PHZhcm5hbWU+c3RhbmRh cmRfY29uZm9ybWluZ19zdHJpbmdzPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCiAg ICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PnN0cmluZ3M8L3ByaW1hcnk+PHNlY29uZGFyeT5zdGFu ZGFyZCBjb25mb3JtaW5nPC9zZWNvbmRhcnk+PC9pbmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggMzdkMmZhMDFj Yi4uMWRlZTBhYzI4ZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTQxOCw2ICs1NDE4LDE3IEBAIFNFTEVDVCBuYW1lIEZS T00gZm9vOwogIEFsaWNlCiA8L3Byb2dyYW1saXN0aW5nPgogICAgPC9wYXJhPgorCisgICA8cGFy YT4KKyAgICBXaGVuIGEgcXVlcnkgY29udGFpbnMgaWRlbnRpZmllcnMgb3IgcXVhbGlmaWVkIGlk ZW50aWZpZXJzIHRoYXQgY291bGQgYmUKKyAgICB1c2VkIGFzIGJvdGggYSBzZXNzaW9uIHZhcmlh YmxlIGlkZW50aWZpZXJzIGFuZCBhcyBjb2x1bW4gaWRlbnRpZmllciwKKyAgICB0aGVuIHRoZSBj b2x1bW4gaWRlbnRpZmllciBpcyBwcmVmZXJyZWQgZXZlcnkgdGltZS4gIFdhcm5pbmdzIGNhbiBi ZQorICAgIGVtaXR0ZWQgd2hlbiB0aGlzIHNpdHVhdGlvbiBoYXBwZW5zIGJ5IGVuYWJsaW5nIGNv bmZpZ3VyYXRpb24gcGFyYW1ldGVyIDx4cmVmCisgICAgbGlua2VuZD0iZ3VjLXNlc3Npb24tdmFy aWFibGVzLWFtYmlndWl0eS13YXJuaW5nIi8+LiBVc2VyIGNhbiBleHBsaWNpdGx5CisgICAgcXVh bGlmeSB0aGUgc291cmNlIG9iamVjdCBieSBzeW50YXggPGxpdGVyYWw+dGFibGUuY29sdW1uPC9s aXRlcmFsPiBvcgorICAgIDxsaXRlcmFsPnNjaGVtYS52YXJpYWJsZTwvbGl0ZXJhbD4uIEl0IGlz IHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvIHJlbmFtZQorICAgIHNoYWRvd2VkIHZhcmlhYmxlcyBv ciB1c2UgcXVhbGlmaWVkIG5hbWVzIGFsd2F5cy4KKyAgIDwvcGFyYT4KICAgPC9zZWN0MT4KIAog IDxzZWN0MSBpZD0iZGRsLW90aGVycyI+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCA0ZjIw OGM3ZWZkLi42M2YxNzMyZjY5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTQ1LDYgKzQ1 LDcgQEAKIAogLyogR1VDIHBhcmFtZXRlcnMgKi8KIGJvb2wJCVRyYW5zZm9ybV9udWxsX2VxdWFs cyA9IGZhbHNlOworYm9vbAkJc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgPSBm YWxzZTsKIAogCiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VTdGF0ZSAq cHN0YXRlLCBOb2RlICpleHByKTsKQEAgLTk2MCwxMSArOTYxLDUxIEBAIHRyYW5zZm9ybUNvbHVt blJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJICoKIAkJICogU0VM RUNUIGZvby5hLCBmb28uYiwgZm9vLmMgRlJPTSBmb287CiAJCSAqCi0JCSAqIEhvd2V2ZXIsIHRo YXQgaXMgdmVyeSBjb25mdXNpbmcsIHNvIHdlIGRpc2FsbG93IGl0LiAgV2UgZG9uJ3QgdHJ5IHRv Ci0JCSAqIGlkZW50aWZ5IGEgdmFyaWFibGUgaWYgd2Uga25vdyB0aGF0IGl0IHdvdWxkIGJlIHNo YWRvd2VkLgotCQkgKiAtLS0tLQorCQkgKiBIb3dldmVyLCB0aGF0IGlzIHZlcnkgY29uZnVzaW5n LCBzbyB3ZSBkaXNhbGxvdyBpdC4KKwkJICoKKwkJICogV2hlbiBzZXNzaW9uX3ZhcmlhYmxlc19h bWJpZ3VpdHlfd2FybmluZyBpcyByZXF1ZXN0ZWQsIHRoZW4gd2UKKwkJICogbmVlZCB0byBpZGVu dGlmeSBhIHZhcmlhYmxlIGFsdGhvdWdoIHdlIGtub3csIHNvIHRoaXMgdmFyaWFibGUKKwkJICog d291bGQgYmUgc2hhZG93ZWQuCiAJCSAqLwotCQlpZiAoIW5vZGUgJiYgIShyZWxuYW1lICYmIGNy ZXJyID09IENSRVJSX05PX0NPTFVNTikpCisJCWlmIChub2RlIHx8IChyZWxuYW1lICYmIGNyZXJy ID09IENSRVJSX05PX0NPTFVNTikpCisJCXsKKwkJCS8qCisJCQkgKiBJbiB0aGlzIHBhdGggd2Ug anVzdCB0cnkgKGlmIGl0IGlzIHdhbnRlZCkgZGV0ZWN0IGlmIHNlc3Npb24KKwkJCSAqIHZhcmlh YmxlIGlzIHNoYWRvd2VkLgorCQkJICovCisJCQlpZiAoc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1 aXR5X3dhcm5pbmcpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBUaGUgQWNjZXNzU2hhcmVMb2NrIGlz IGNyZWF0ZWQgb24gcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlLgorCQkJCSAqIFRoZSBsb2NrIHdp bGwgYmUga2VwdCBmb3IgdGhlIHdob2xlIHRyYW5zYWN0aW9uLgorCQkJCSAqLworCQkJCXZhcmlk ID0gSWRlbnRpZnlWYXJpYWJsZShjcmVmLT5maWVsZHMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUs IHRydWUpOworCisJCQkJaWYgKE9pZElzVmFsaWQodmFyaWQpKQorCQkJCXsKKwkJCQkJLyogdGhp cyBwYXRoIHdpbGwgZW5kaW5nIGJ5IFdBUk5JTkcuIFVubG9jayB2YXJpYWJsZSBmaXJzdCAqLwor CQkJCQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCBB Y2Nlc3NTaGFyZUxvY2spOworCisJCQkJCWlmIChub2RlKQorCQkJCQkJZXJlcG9ydChXQVJOSU5H LAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19DT0xVTU4pLAorCQkJCQkJCQkg ZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBpcyBzaGFkb3dlZCIsCisJCQkJCQkJCQkJ TmFtZUxpc3RUb1N0cmluZyhjcmVmLT5maWVsZHMpKSwKKwkJCQkJCQkJIGVycmRldGFpbCgiU2Vz c2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUncyB2YXJp YWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBuYW1lLiIpLAorCQkJ CQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKSk7CisJCQkJ CWVsc2UKKwkJCQkJCS8qIHNlc3Npb24gdmFyaWFibGUgaXMgc2hhZG93ZWQgYnkgUlRFICovCisJ CQkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdVT1VT X0NPTFVNTiksCisJCQkJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGlz IHNoYWRvd2VkIiwKKwkJCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZSh2YXJpZCkpLAorCQkJCQkJCQkgZXJyZGV0YWlsKCJTZXNzaW9uIHZhcmlhYmxlcyBjYW4g YmUgc2hhZG93ZWQgYnkgdGFibGVzIG9yIHRhYmxlJ3MgYWxpYXNlcyB3aXRoIHRoZSBzYW1lIG5h bWUuIiksCisJCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjcmVmLT5sb2NhdGlv bikpKTsKKwkJCQl9CisJCQl9CisJCX0KKwkJZWxzZQogCQl7CiAJCQkvKiB0YWtlcyBhbiBBY2Nl c3NTaGFyZUxvY2sgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KIAkJCXZhcmlkID0gSWRlbnRp ZnlWYXJpYWJsZShjcmVmLT5maWVsZHMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNlKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggMzhjYjllOTcwZC4uMDBhZDk4Nzlh NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE2MDYsNiArMTYwNiwxNSBA QCBzdHJ1Y3QgY29uZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQlmYWxzZSwKIAkJ TlVMTCwgTlVMTCwgTlVMTAogCX0sCisJeworCQl7InNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0 eV93YXJuaW5nIiwgUEdDX1VTRVJTRVQsIENMSUVOVF9DT05OX1NUQVRFTUVOVCwKKwkJCWdldHRl eHRfbm9vcCgiUmFpc2UgYSB3YXJuaW5nIHdoZW4gcmVmZXJlbmNlIHRvIGEgc2Vzc2lvbiB2YXJp YWJsZSBpcyBhbWJpZ3VvdXMuIiksCisJCQlOVUxMCisJCX0sCisJCSZzZXNzaW9uX3ZhcmlhYmxl c19hbWJpZ3VpdHlfd2FybmluZywKKwkJZmFsc2UsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAog CXsKIAkJeyJkZWZhdWx0X3RyYW5zYWN0aW9uX3JlYWRfb25seSIsIFBHQ19VU0VSU0VULCBDTElF TlRfQ09OTl9TVEFURU1FTlQsCiAJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIGRlZmF1bHQgcmVh ZC1vbmx5IHN0YXR1cyBvZiBuZXcgdHJhbnNhY3Rpb25zLiIpLApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IDA3OWVmYTFiYWEuLjY4NmFkMTEw MzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNh bXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUK QEAgLTcyNyw2ICs3MjcsNyBAQCBhdXRvdmFjdXVtX3dvcmtlcl9zbG90cyA9IDE2CSMgYXV0b3Zh Y3V1bSB3b3JrZXIgc2xvdHMgdG8gYWxsb2NhdGUKICNkZWZhdWx0X3RyYW5zYWN0aW9uX3JlYWRf b25seSA9IG9mZgogI2RlZmF1bHRfdHJhbnNhY3Rpb25fZGVmZXJyYWJsZSA9IG9mZgogI3Nlc3Np b25fcmVwbGljYXRpb25fcm9sZSA9ICdvcmlnaW4nCisjc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1 aXR5X3dhcm5pbmcgPSBvZmYKICNzdGF0ZW1lbnRfdGltZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNl Y29uZHMsIDAgaXMgZGlzYWJsZWQKICN0cmFuc2FjdGlvbl90aW1lb3V0ID0gMAkJCSMgaW4gbWls bGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAjbG9ja190aW1lb3V0ID0gMAkJCQkjIGluIG1pbGxp c2Vjb25kcywgMCBpcyBkaXNhYmxlZApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKaW5kZXggZWZiYWZm OGU3MS4uZDIyMDkwNzAxOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4 cHIuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCkBAIC0xNyw2ICsxNyw3 IEBACiAKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBUcmFu c2Zvcm1fbnVsbF9lcXVhbHM7CitleHRlcm4gUEdETExJTVBPUlQgYm9vbCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZzsKIAogZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUV4cHIoUGFy c2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKTsKIApk aWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5vdXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9u X3ZhcmlhYmxlLm91dAppbmRleCBhYjc3OTkwMDU5Li5hNjUyM2Y3YWZlIDEwMDY0NAotLS0gYS9z cmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dAor KysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxl Lm91dApAQCAtMzU0LDYgKzM1NCwzOSBAQCAkJDsKIE5PVElDRTogIHNlc3Npb24gdmFyaWFibGUg aXMgMTAwCiBOT1RJQ0U6ICBwbHBnc3FsIHZhcmlhYmxlIGlzIDEwMDAKIE5PVElDRTogIHZhcmlh YmxlIGlzIDEwMDAKKy0tIGFnYWludCB3aXRoIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93 YXJuaW5nKG9uKQorU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9u OworRE8gJCQKKzw8bXlibG9jaz4+CitERUNMQVJFIHBscGdzcWxfc3ZfdmFyMSBpbnQ7CitCRUdJ TgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTAwOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRo b3V0IHdhcm5pbmcKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gc2hvdWxkIGJl IG9rIHdpdGhvdXQgd2FybmluZworICAtLSBwcmludCAxMDA7CisgIFJBSVNFIE5PVElDRSAnc2Vz c2lvbiB2YXJpYWJsZSBpcyAlJywgcHVibGljLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBzaG91 bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNF ICdwbHBnc3FsIHZhcmlhYmxlIGlzICUnLCBteWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAt LSBzaG91bGQgdG8gcHJpbnQgcGxwZ3NxbCB2YXJpYWJsZSB3aXRoIHdhcm5pbmcKKyAgLS0gcHJp bnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3ZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjE7 CitFTkQ7CiskJDsKK05PVElDRTogIHNlc3Npb24gdmFyaWFibGUgaXMgMTAwCitOT1RJQ0U6ICBw bHBnc3FsIHZhcmlhYmxlIGlzIDEwMDAKK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJwbHBn c3FsX3N2X3ZhcjEiIGlzIHNoYWRvd2VkCitMSU5FIDE6IHBscGdzcWxfc3ZfdmFyMQorICAgICAg ICBeCitERVRBSUw6ICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1u cywgcm91dGluZSdzIHZhcmlhYmxlcyBhbmQgcm91dGluZSdzIGFyZ3VtZW50cyB3aXRoIHRoZSBz YW1lIG5hbWUuCitRVUVSWTogIHBscGdzcWxfc3ZfdmFyMQorTk9USUNFOiAgdmFyaWFibGUgaXMg MTAwMAorU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9mZjsKIERS T1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwogLS0gdGhlIHZhbHVlIHNob3VsZCBub3QgYmUg Y29ycnVwdGVkCiBDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92IHRleHQ7CmRpZmYgLS1naXQg YS9zcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKaW5kZXgg YTNjYzI2NGNmMy4uOWI4ZTkwZTgxZiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3Nx bC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9z cWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApAQCAtMjYwLDYgKzI2MCwzNSBAQCBCRUdJ TgogRU5EOwogJCQ7CiAKKy0tIGFnYWludCB3aXRoIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0 eV93YXJuaW5nKG9uKQorCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcg VE8gb247CisKK0RPICQkCis8PG15YmxvY2s+PgorREVDTEFSRSBwbHBnc3FsX3N2X3ZhcjEgaW50 OworQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwMDsKKworICAtLSBzaG91bGQgYmUg b2sgd2l0aG91dCB3YXJuaW5nCisgIHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHNo b3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwOworICBSQUlTRSBOT1RJ Q0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3ZhcjE7CisKKyAg LS0gc2hvdWxkIGJlIG9rIHdpdGhvdXQgd2FybmluZworICAtLSBwcmludCAxMDAwCisgIFJBSVNF IE5PVElDRSAncGxwZ3NxbCB2YXJpYWJsZSBpcyAlJywgbXlibG9jay5wbHBnc3FsX3N2X3ZhcjE7 CisKKyAgLS0gc2hvdWxkIHRvIHByaW50IHBscGdzcWwgdmFyaWFibGUgd2l0aCB3YXJuaW5nCisg IC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9z dl92YXIxOworRU5EOworJCQ7CisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2Fy bmluZyBUTyBvZmY7CisKIERST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwogCiAtLSB0aGUg dmFsdWUgc2hvdWxkIG5vdCBiZSBjb3JydXB0ZWQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggMjc4M2NhYTg0NC4uN2MzNTBhZDVlZiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQK QEAgLTE1MjQsNiArMTUyNCw5IEBAIENSRUFURSBUQUJMRSB2YXJ0ZXN0X2ZvbyhhIGludCwgYiBp bnQpOwogSU5TRVJUIElOVE8gdmFydGVzdF9mb28gVkFMVUVTKDEwLDIwKSwgKDMwLDQwKTsKIENS RUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnRlc3RfZm9vOwogTEVUIHZhcjEgPSAoMTAwLDIwMCk7 CistLSBubyB2YXJpYWJsZSBpcyBzaGFkb3dlZCBoZXJlCistLSBubyB3YXJuaW5nIGV4cGVjdGVk CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CiAtLSBzaG91 bGQgdG8gZmFpbAogU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRlc3RfZm9vOwogRVJST1I6ICBtaXNz aW5nIEZST00tY2xhdXNlIGVudHJ5IGZvciB0YWJsZSAidmFyMSIKQEAgLTE1NDksNiArMTU1Miw3 IEBAIFNFTEVDVCBjb3VudCh2YXIxLiopIEZST00gdmFydGVzdF9mb28gdmFyMTsKICAgICAgMgog KDEgcm93KQogCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2Zm OwogU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CiBEUk9QIFNDSEVNQSB2YXJ0ZXN0IENBU0NB REU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIgb2JqZWN0cwpAQCAtMTk0Mywz ICsxOTQ3LDI1IEBAIFNFTEVDVCB2YXIxOwogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjEs IHZhcjI7CistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCitDUkVB VEUgU0NIRU1BIHh4dGFiOworQ1JFQVRFIFZBUklBQkxFIHh4dGFiLmF2YXIgaW50OworQ1JFQVRF IFRBQkxFIHB1YmxpYy54eHRhYihhdmFyIGludCk7CitJTlNFUlQgSU5UTyBwdWJsaWMueHh0YWIg VkFMVUVTKDEpOworTEVUIHh4dGFiLmF2YXIgPSAyMDsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19h bWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKy0tLSBzaG91bGQgdG8gcmFpc2Ugd2FybmluZywgc2hv dyAxCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsKK1dBUk5JTkc6ICBzZXNz aW9uIHZhcmlhYmxlICJ4eHRhYi5hdmFyIiBpcyBzaGFkb3dlZAorTElORSAxOiBTRUxFQ1QgeHh0 YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFNl c3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFy aWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4KKyBhdmFy IAorLS0tLS0tCisgICAgMQorKDEgcm93KQorCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1 aXR5X3dhcm5pbmcgVE8gb2ZmOworRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CitEUk9QIFNDSEVN QSB4eHRhYiBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlh YmxlIHh4dGFiLmF2YXIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bAppbmRleCBhNjI0YWI4YjY3Li42OGJlNDE1YmYyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMDc5LDYgKzEwNzksMTAgQEAgSU5TRVJUIElOVE8g dmFydGVzdF9mb28gVkFMVUVTKDEwLDIwKSwgKDMwLDQwKTsKIENSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHZhcnRlc3RfZm9vOwogTEVUIHZhcjEgPSAoMTAwLDIwMCk7CiAKKy0tIG5vIHZhcmlhYmxl IGlzIHNoYWRvd2VkIGhlcmUKKy0tIG5vIHdhcm5pbmcgZXhwZWN0ZWQKK1NFVCBzZXNzaW9uX3Zh cmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKwogLS0gc2hvdWxkIHRvIGZhaWwKIFNF TEVDVCB2YXIxLiogRlJPTSB2YXJ0ZXN0X2ZvbzsKIApAQCAtMTA5MSw2ICsxMDk1LDggQEAgU0VM RUNUIGNvdW50KHZhcjEuKikgRlJPTSB2YXJ0ZXN0X2ZvbzsKIC0tIHNob3VsZCBiZSBvawogU0VM RUNUIGNvdW50KHZhcjEuKikgRlJPTSB2YXJ0ZXN0X2ZvbyB2YXIxOwogCitTRVQgc2Vzc2lvbl92 YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOworCiBTRVQgU0VBUkNIX1BBVEggVE8g REVGQVVMVDsKIERST1AgU0NIRU1BIHZhcnRlc3QgQ0FTQ0FERTsKIApAQCAtMTMzNCwzICsxMzQw LDIzIEBAIEJFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOwogU0VMRUNUIHZhcjE7 CiAKIERST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKKworLS0gdGVzdCBzZXNzaW9uX3ZhcmlhYmxl c19hbWJpZ3VpdHlfd2FybmluZworQ1JFQVRFIFNDSEVNQSB4eHRhYjsKKworQ1JFQVRFIFZBUklB QkxFIHh4dGFiLmF2YXIgaW50OworCitDUkVBVEUgVEFCTEUgcHVibGljLnh4dGFiKGF2YXIgaW50 KTsKKworSU5TRVJUIElOVE8gcHVibGljLnh4dGFiIFZBTFVFUygxKTsKKworTEVUIHh4dGFiLmF2 YXIgPSAyMDsKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9u OworLS0tIHNob3VsZCB0byByYWlzZSB3YXJuaW5nLCBzaG93IDEKK1NFTEVDVCB4eHRhYi5hdmFy IEZST00gcHVibGljLnh4dGFiOworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmcgVE8gb2ZmOworCitEUk9QIFRBQkxFIHB1YmxpYy54eHRhYjsKK0RST1AgU0NIRU1BIHh4 dGFiIENBU0NBREU7Ci0tIAoyLjQ4LjAKCg== --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0006-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20250117-0006-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8nj16 RnJvbSAzYTQ4ODUwZmYyYTZlMzBjN2I3ODMzY2IyZTg5ZGFkNzVjYjNhYWIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNDowNjowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDYvMjJdIHBscGdzcWwgdGVzdHMKCi0tLQogc3JjL3BsL3BscGdzcWwvc3JjL01ha2VmaWxlICAg ICAgICAgICAgICAgICAgIHwgICAzICstCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lv bl92YXJpYWJsZS5vdXQgfCAzODIgKysrKysrKysrKysrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9z cmMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL3NyYy9zcWwvcGxwZ3Nx bF9zZXNzaW9uX3ZhcmlhYmxlLnNxbCAgICAgIHwgMjg5ICsrKysrKysrKysrKysKIDQgZmlsZXMg Y2hhbmdlZCwgNjc0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxl Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9z ZXNzaW9uX3ZhcmlhYmxlLnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtl ZmlsZSBiL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZQppbmRleCA2M2NiOTZmYWUzLi5iYmNh ZTI3ZDQyIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL01ha2VmaWxlCkBAIC0zNSw3ICszNSw4IEBAIFJFR1JFU1NfT1BUUyA9 IC0tZGJuYW1lPSQoUExfVEVTVERCKQogUkVHUkVTUyA9IHBscGdzcWxfYXJyYXkgcGxwZ3NxbF9j YWNoZSBwbHBnc3FsX2NhbGwgcGxwZ3NxbF9jb250cm9sIFwKIAlwbHBnc3FsX2NvcHkgcGxwZ3Nx bF9kb21haW4gcGxwZ3NxbF9taXNjIFwKIAlwbHBnc3FsX3JlY29yZCBwbHBnc3FsX3NpbXBsZSBw bHBnc3FsX3RyYW5zYWN0aW9uIFwKLQlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdz cWxfdmFycHJvcHMKKwlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdzcWxfdmFycHJv cHMgXAorCXBscGdzcWxfc2Vzc2lvbl92YXJpYWJsZQogCiAjIHdoZXJlIHRvIGZpbmQgZ2VuX2tl eXdvcmRsaXN0LnBsIGFuZCBzdWJzaWRpYXJ5IGZpbGVzCiBUT09MU0RJUiA9ICQodG9wX3NyY2Rp cikvc3JjL3Rvb2xzCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxw Z3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLmFiNzc5OTAwNTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dApAQCAtMCwwICsxLDM4MiBA QAorLS0gdGVzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxf c3ZfdmFyIEFTIG51bWVyaWM7CitMRVQgcGxwZ3NxbF9zdl92YXIgPSBwaSgpOworLS0gcGFzc2lu ZyBwYXJhbWV0ZXJzIHRvIERPIGJsb2NrCitETyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICd2 YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjsKK0VORDsKKyQk OworTk9USUNFOiAgdmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAzLjE0MTU5MjY1MzU4OTc5 CistLSBwYXNzaW5nIG91dHB1dCBmcm9tIERPIGJsb2NrOworRE8gJCQKK0JFR0lOCisgIExFVCBw bHBnc3FsX3N2X3ZhciA9IDIgKiBwaSgpOworRU5ECiskJDsKK1NFTEVDVCBwbHBnc3FsX3N2X3Zh ciBBUyAicGlfbXVsdGlwbHlfMiI7CisgIHBpX211bHRpcGx5XzIgICAKKy0tLS0tLS0tLS0tLS0t LS0tLQorIDYuMjgzMTg1MzA3MTc5NTkKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBwbHBnc3Fs X3N2X3ZhcjsKKy0tIHRlc3QgYWNjZXNzIGZyb20gUEwvcGdTUUwKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBB UyBudW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMyBBUyB2YXJjaGFyOwor Q1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gd3JpdGVyX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFT ICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTA7CisgIExFVCBwbHBnc3FsX3N2 X3ZhcjIgPSBwaSgpOworICAtLSB2ZXJ5IGxvbmcgdmFsdWUKKyAgTEVUIHBscGdzcWxfc3ZfdmFy MyA9IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEwMDAwKSk7CitFTkQ7CiskJCBMQU5HVUFH RSBwbHBnc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdXBkYXRlcl9mdW5jKCkKK1JF VFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IHBscGdzcWxf c3ZfdmFyMSArIDEwMDsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IHBscGdzcWxfc3ZfdmFyMiAr IDEwMDAwMDAwMDAwMDsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBnc3FsX3N2X3Zh cjMgPSBwbHBnc3FsX3N2X3ZhcjMgfHwgZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDAp KTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElP TiByZWFkZXJfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAndmFyMSA9ICUnLCBwbHBnc3FsX3N2X3ZhcjE7CisgIFJBSVNFIE5PVElDRSAndmFyMiA9ICUn LCBwbHBnc3FsX3N2X3ZhcjI7CisgIFJBSVNFIE5PVElDRSAnbGVuZ3RoIG9mIHZhcjMgPSAlJywg bGVuZ3RoKHBscGdzcWxfc3ZfdmFyMyk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0g ZXhlY3V0ZSBpbiBhIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFTEVDVCB3cml0ZXJfZnVuYygpOwor IHdyaXRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVhZGVy X2Z1bmMoKTsKK05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAgdmFyMiA9IDMuMTQxNTkyNjUz NTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIKKyByZWFkZXJfZnVuYyAKKy0t LS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworIHVwZGF0 ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVu YygpOworTk9USUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4x NDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorIHJlYWRlcl9m dW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitFTkQ7CistLSBleGVjdXRlIG91dHNp ZGUgb2YgYSB0cmFuc2FjdGlvbgorU0VMRUNUIHdyaXRlcl9mdW5jKCk7Cisgd3JpdGVyX2Z1bmMg CistLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVuYygpOworTk9U SUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0gMy4xNDE1OTI2NTM1ODk3OQorTk9USUNF OiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorIHJlYWRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQor IAorKDEgcm93KQorCitTRUxFQ1QgdXBkYXRlcl9mdW5jKCk7CisgdXBkYXRlcl9mdW5jIAorLS0t LS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CitOT1RJQ0U6 ICB2YXIxID0gMTEwCitOT1RJQ0U6ICB2YXIyID0gMTAwMDAwMDAwMDAzLjE0MTU5MjY1MzU4OTc5 CitOT1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDIwMDA0CisgcmVhZGVyX2Z1bmMgCistLS0tLS0t LS0tLS0tCisgCisoMSByb3cpCisKKy0tIGV4ZWN1dGUgaW5zaWRlIGEgUEwvcGdTUUwgYmxvY2sK K0RPICQkCitCRUdJTgorICBQRVJGT1JNIHdyaXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVy X2Z1bmMoKTsKKyAgUEVSRk9STSB1cGRhdGVyX2Z1bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVu YygpOworRU5EOworJCQ7CitOT1RJQ0U6ICB2YXIxID0gMTAKK05PVElDRTogIHZhcjIgPSAzLjE0 MTU5MjY1MzU4OTc5CitOT1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDEwMDAyCitOT1RJQ0U6ICB2 YXIxID0gMTEwCitOT1RJQ0U6ICB2YXIyID0gMTAwMDAwMDAwMDAzLjE0MTU5MjY1MzU4OTc5CitO T1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDIwMDA0CistLSBwbGFuIGNhY2hlcyBzaG91bGQgYmUg Y29ycmVjdGx5IGludmFsaWRhdGVkCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwgcGxw Z3NxbF9zdl92YXIyLCBwbHBnc3FsX3N2X3ZhcjM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJp YzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMgQVMgdmFyY2hhcjsKKy0tIHNob3Vs ZCB3b3JrIGFnYWluCitETyAkJAorQkVHSU4KKyAgUEVSRk9STSB3cml0ZXJfZnVuYygpOworICBQ RVJGT1JNIHJlYWRlcl9mdW5jKCk7CisgIFBFUkZPUk0gdXBkYXRlcl9mdW5jKCk7CisgIFBFUkZP Uk0gcmVhZGVyX2Z1bmMoKTsKK0VORDsKKyQkOworTk9USUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6 ICB2YXIyID0gMy4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAw MgorTk9USUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1 OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorRFJPUCBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworRFJP UCBGVU5DVElPTiB3cml0ZXJfZnVuYzsKK0RST1AgRlVOQ1RJT04gcmVhZGVyX2Z1bmM7CitEUk9Q IEZVTkNUSU9OIHVwZGF0ZXJfZnVuYzsKKy0tIGFub3RoZXIgY2hlY2sgb2YgY29ycmVjdCBwbGFu IGNhY2hlIGludmFsaWRhdGlvbgorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBp bnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIGludFtdOworQ1JFQVRFIE9S IFJFUExBQ0UgRlVOQ1RJT04gdGVzdF9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorREVDTEFS RSB2IGludFtdIERFRkFVTFQgJ3t9JzsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAx OworICB2W3BscGdzcWxfc3ZfdmFyMV0gPSAxMDA7CisgIFJBSVNFIE5PVElDRSAnJScsIHY7Cisg IExFVCBwbHBnc3FsX3N2X3ZhcjIgPSB2OworICBMRVQgcGxwZ3NxbF9zdl92YXIyW3BscGdzcWxf c3ZfdmFyMV0gPSAtMTsKKyAgUkFJU0UgTk9USUNFICclJywgcGxwZ3NxbF9zdl92YXIyOworRU5E OworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCB0ZXN0X2Z1bmMoKTsKK05PVElDRTogIHsx MDB9CitOT1RJQ0U6ICB7LTF9CisgdGVzdF9mdW5jIAorLS0tLS0tLS0tLS0KKyAKKygxIHJvdykK KworRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsKK0NSRUFU RSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyMiBBUyBpbnRbXTsKK1NFTEVDVCB0ZXN0X2Z1bmMoKTsKK05PVElDRTogIHsxMDB9 CitOT1RJQ0U6ICB7LTF9CisgdGVzdF9mdW5jIAorLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwor RFJPUCBGVU5DVElPTiB0ZXN0X2Z1bmMoKTsKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx LCBwbHBnc3FsX3N2X3ZhcjI7CistLSBjaGVjayBzZWN1cmUgYWNjZXNzCitDUkVBVEUgUk9MRSBy ZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfcmVhZGVyX3Jv bGU7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CitHUkFOVCBBTEwgT04gU0NI RU1BIHB1YmxpYyBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlLCByZWdyZXNzX3Zhcl9yZWFkZXJf cm9sZSwgcmVncmVzc192YXJfZXhlY19yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3du ZXJfcm9sZTsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworTEVUIHBs cGdzcWxfc3ZfdmFyMSA9IDEwOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRPIHJl Z3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFyX3Jl YWRfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJScs IHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWwgU0VDVVJJVFkgREVG SU5FUjsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVj X3JvbGU7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKK0VSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgcGxwZ3NxbF9zdl92YXIxCitD T05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAicGxwZ3NxbF9zdl92YXIxIgorUEwvcGdTUUwg ZnVuY3Rpb24gdmFyX3JlYWRfZnVuYygpIGxpbmUgMyBhdCBSQUlTRQorU0VUIFJPTEUgVE8gREVG QVVMVDsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitHUkFOVCBTRUxFQ1Qg T04gVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIFRPIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlOwor U0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsK Ky0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKK05PVElDRTogIDEwCisg dmFyX3JlYWRfZnVuYyAKKy0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRVQgUk9MRSBU TyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKy0tIHNob3VsZCBmYWlsLCBidXQgbm90IGNyYXNoCitT RUxFQ1QgdmFyX3JlYWRfZnVuYygpOworRVJST1I6ICBjb2x1bW4gInBscGdzcWxfc3ZfdmFyMSIg ZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogcGxwZ3NxbF9zdl92YXIxCisgICAgICAgIF4KK1FVRVJZ OiAgcGxwZ3NxbF9zdl92YXIxCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gdmFyX3JlYWRf ZnVuYygpIGxpbmUgMyBhdCBSQUlTRQorU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgRlVOQ1RJ T04gdmFyX3JlYWRfZnVuYzsKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jl c3NfdmFyX293bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlLCByZWdyZXNzX3Zhcl9l eGVjX3JvbGU7CitEUk9QIFJPTEUgcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0RST1AgUk9MRSBy ZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9leGVjX3JvbGU7 CistLSByZXR1cm5zIHVwZGF0ZWQgdmFsdWUKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjEgQVMgaW50OworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9pbnQoaW50KQor UkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBDT0FMRVND RShwbHBnc3FsX3N2X3ZhcjEgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIxOwor RU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKKyBpbmNf dmFyX2ludCAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMQorKDEgcm93KQorCitTRUxFQ1Qg aW5jX3Zhcl9pbnQoMSk7CisgaW5jX3Zhcl9pbnQgCistLS0tLS0tLS0tLS0tCisgICAgICAgICAg IDIKKygxIHJvdykKKworU0VMRUNUIGluY192YXJfaW50KDEpOworIGluY192YXJfaW50IAorLS0t LS0tLS0tLS0tLQorICAgICAgICAgICAzCisoMSByb3cpCisKK1NFTEVDVCBpbmNfdmFyX2ludCgx KSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKyBpbmNfdmFyX2ludCAKKy0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgNAorICAgICAgICAgICA1CisgICAgICAgICAgIDYKKyAgICAgICAgICAg NworICAgICAgICAgICA4CisgICAgICAgICAgIDkKKyAgICAgICAgICAxMAorICAgICAgICAgIDEx CisgICAgICAgICAgMTIKKyAgICAgICAgICAxMworKDEwIHJvd3MpCisKK0NSRUFURSBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKK0xFVCBwbHBnc3FsX3N2X3ZhcjIgPSAwLjA7 CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBpbmNfdmFyX251bShudW1lcmljKQorUkVUVVJO UyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBDT0FMRVNDRShwbHBn c3FsX3N2X3ZhcjIgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIyOworRU5EOwor JCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworIGluY192YXJf bnVtIAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAxCisoMSByb3cpCisKK1NFTEVDVCBpbmNf dmFyX251bSgxLjApOworIGluY192YXJfbnVtIAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAy CisoMSByb3cpCisKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworIGluY192YXJfbnVtIAorLS0t LS0tLS0tLS0tLQorICAgICAgICAgICAzCisoMSByb3cpCisKK1NFTEVDVCBpbmNfdmFyX251bSgx LjApIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworIGluY192YXJfbnVtIAorLS0tLS0tLS0t LS0tLQorICAgICAgICAgICA0CisgICAgICAgICAgIDUKKyAgICAgICAgICAgNgorICAgICAgICAg ICA3CisgICAgICAgICAgIDgKKyAgICAgICAgICAgOQorICAgICAgICAgIDEwCisgICAgICAgICAg MTEKKyAgICAgICAgICAxMgorICAgICAgICAgIDEzCisoMTAgcm93cykKKworRFJPUCBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsKK0RST1AgRlVOQ1RJT04gaW5jX3Zh cl9pbnQ7CitEUk9QIEZVTkNUSU9OIGluY192YXJfbnVtOworLS0gcGxwZ3NxbCB2YXJpYWJsZXMg YXJlIHByZWZlcnJlZCBhZ2FpbnN0IHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0RPICQkCis8PG15YmxvY2s+PgorREVDTEFSRSBwbHBn c3FsX3N2X3ZhcjEgaW50OworQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwMDsKKwor ICBwbHBnc3FsX3N2X3ZhcjEgOj0gMTAwMDsKKworICAtLSBwcmludCAxMDA7CisgIFJBSVNFIE5P VElDRSAnc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcHVibGljLnBscGdzcWxfc3ZfdmFyMTsKKwor ICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2YXJpYWJsZSBpcyAlJywg bXlibG9jay5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJ Q0UgJ3ZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJDsKK05PVElDRTog IHNlc3Npb24gdmFyaWFibGUgaXMgMTAwCitOT1RJQ0U6ICBwbHBnc3FsIHZhcmlhYmxlIGlzIDEw MDAKK05PVElDRTogIHZhcmlhYmxlIGlzIDEwMDAKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIxOworLS0gdGhlIHZhbHVlIHNob3VsZCBub3QgYmUgY29ycnVwdGVkCitDUkVBVEUgVkFSSUFC TEUgcGxwZ3NxbF9zdl92IHRleHQ7CitMRVQgcGxwZ3NxbF9zdl92ID0gJ2FiYyc7CitDUkVBVEUg RlVOQ1RJT04gZmZ1bmMoKQorUkVUVVJOUyB0ZXh0IEFTICQkCitCRUdJTgorICBSRVRVUk4gZ2Z1 bmMocGxwZ3NxbF9zdl92KTsKK0VORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBGVU5D VElPTiBnZnVuYyh0IHRleHQpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBn c3FsX3N2X3YgPSAnQk9PTSEnOworICBSRVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdz cWw7CitzZWxlY3QgZmZ1bmMoKTsKKyBmZnVuYyAKKy0tLS0tLS0KKyBhYmMKKygxIHJvdykKKwor RFJPUCBGVU5DVElPTiBmZnVuYygpOworRFJPUCBGVU5DVElPTiBnZnVuYyh0ZXh0KTsKK0RST1Ag VkFSSUFCTEUgcGxwZ3NxbF9zdl92OwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL21l c29uLmJ1aWxkIGIvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCmluZGV4IDMzYzQ5YWMy NWQuLjFkMDFkMWMyNjIgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWls ZAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKQEAgLTg4LDYgKzg4LDcgQEAg dGVzdHMgKz0gewogICAgICAgJ3BscGdzcWxfdHJhcCcsCiAgICAgICAncGxwZ3NxbF90cmlnZ2Vy JywKICAgICAgICdwbHBnc3FsX3ZhcnByb3BzJywKKyAgICAgICdwbHBnc3FsX3Nlc3Npb25fdmFy aWFibGUnLAogICAgIF0sCiAgIH0sCiB9CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMv c3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvc3Fs L3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uYTNjYzI2NGNmMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApAQCAtMCwwICsxLDI4OSBAQAor LS0gdGVzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyIEFTIG51bWVyaWM7CisKK0xFVCBwbHBnc3FsX3N2X3ZhciA9IHBpKCk7CisKKy0tIHBhc3Np bmcgcGFyYW1ldGVycyB0byBETyBibG9jaworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAn dmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXI7CitFTkQ7Cisk JDsKKworLS0gcGFzc2luZyBvdXRwdXQgZnJvbSBETyBibG9jazsKK0RPICQkCitCRUdJTgorICBM RVQgcGxwZ3NxbF9zdl92YXIgPSAyICogcGkoKTsKK0VORAorJCQ7CisKK1NFTEVDVCBwbHBnc3Fs X3N2X3ZhciBBUyAicGlfbXVsdGlwbHlfMiI7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXI7CisKKy0tIHRlc3QgYWNjZXNzIGZyb20gUEwvcGdTUUwKK0NSRUFURSBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBBUyBu dW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMyBBUyB2YXJjaGFyOworCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMg JCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKKyAgTEVUIHBscGdzcWxfc3Zf dmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92YXIz ID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdVQUdF IHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYygpCitS RVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBwbHBnc3Fs X3N2X3ZhcjEgKyAxMDA7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBwbHBnc3FsX3N2X3ZhcjIg KyAxMDAwMDAwMDAwMDA7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92 YXIzID0gcGxwZ3NxbF9zdl92YXIzIHx8IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEwMDAw KSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCisKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0Ug Tk9USUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAgUkFJU0UgTk9USUNFICd2YXIy ID0gJScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNFICdsZW5ndGggb2YgdmFyMyA9 ICUnLCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7 CisKKy0tIGV4ZWN1dGUgaW4gYSB0cmFuc2FjdGlvbgorQkVHSU47CitTRUxFQ1Qgd3JpdGVyX2Z1 bmMoKTsKK1NFTEVDVCByZWFkZXJfZnVuYygpOworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworU0VM RUNUIHJlYWRlcl9mdW5jKCk7CitFTkQ7CisKKy0tIGV4ZWN1dGUgb3V0c2lkZSBvZiBhIHRyYW5z YWN0aW9uCitTRUxFQ1Qgd3JpdGVyX2Z1bmMoKTsKK1NFTEVDVCByZWFkZXJfZnVuYygpOworU0VM RUNUIHVwZGF0ZXJfZnVuYygpOworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CisKKy0tIGV4ZWN1dGUg aW5zaWRlIGEgUEwvcGdTUUwgYmxvY2sKK0RPICQkCitCRUdJTgorICBQRVJGT1JNIHdyaXRlcl9m dW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKKyAgUEVSRk9STSB1cGRhdGVyX2Z1bmMo KTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworRU5EOworJCQ7CisKKy0tIHBsYW4gY2FjaGVz IHNob3VsZCBiZSBjb3JyZWN0bHkgaW52YWxpZGF0ZWQKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsKKworQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIyIEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNo YXI7CisKKy0tIHNob3VsZCB3b3JrIGFnYWluCitETyAkJAorQkVHSU4KKyAgUEVSRk9STSB3cml0 ZXJfZnVuYygpOworICBQRVJGT1JNIHJlYWRlcl9mdW5jKCk7CisgIFBFUkZPUk0gdXBkYXRlcl9m dW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKK0VORDsKKyQkOworCitEUk9QIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyLCBwbHBnc3FsX3N2X3ZhcjM7CisK K0RST1AgRlVOQ1RJT04gd3JpdGVyX2Z1bmM7CitEUk9QIEZVTkNUSU9OIHJlYWRlcl9mdW5jOwor RFJPUCBGVU5DVElPTiB1cGRhdGVyX2Z1bmM7CisKKy0tIGFub3RoZXIgY2hlY2sgb2YgY29ycmVj dCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbgorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIGludFtdOworCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB0ZXN0X2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQk CitERUNMQVJFIHYgaW50W10gREVGQVVMVCAne30nOworQkVHSU4KKyAgTEVUIHBscGdzcWxfc3Zf dmFyMSA9IDE7CisgIHZbcGxwZ3NxbF9zdl92YXIxXSA9IDEwMDsKKyAgUkFJU0UgTk9USUNFICcl JywgdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IHY7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjJb cGxwZ3NxbF9zdl92YXIxXSA9IC0xOworICBSQUlTRSBOT1RJQ0UgJyUnLCBwbHBnc3FsX3N2X3Zh cjI7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1QgdGVzdF9mdW5jKCk7CisK K0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CisKK0NSRUFU RSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyMiBBUyBpbnRbXTsKKworU0VMRUNUIHRlc3RfZnVuYygpOworCitEUk9QIEZVTkNU SU9OIHRlc3RfZnVuYygpOworCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3Nx bF9zdl92YXIyOworCistLSBjaGVjayBzZWN1cmUgYWNjZXNzCitDUkVBVEUgUk9MRSByZWdyZXNz X3Zhcl9vd25lcl9yb2xlOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CitD UkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKK0dSQU5UIEFMTCBPTiBTQ0hFTUEg cHVibGljIFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xl LCByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVy X3JvbGU7CisKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworTEVUIHBs cGdzcWxfc3ZfdmFyMSA9IDEwOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBU TyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04g dmFyX3JlYWRfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAnJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWwgU0VDVVJJ VFkgREVGSU5FUjsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJPTEUgVE8gcmVncmVz c192YXJfZXhlY19yb2xlOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcl9yZWFkX2Z1bmMo KTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3du ZXJfcm9sZTsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgVE8gcmVn cmVzc192YXJfcmVhZGVyX3JvbGU7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xF IFRPIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFy X3JlYWRfZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdy ZXNzX3Zhcl9vd25lcl9yb2xlOworCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKKwor U0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xl OworCistLSBzaG91bGQgZmFpbCwgYnV0IG5vdCBjcmFzaAorU0VMRUNUIHZhcl9yZWFkX2Z1bmMo KTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworRFJPUCBGVU5DVElPTiB2YXJfcmVhZF9mdW5j OworCitSRVZPS0UgQUxMIE9OIFNDSEVNQSBwdWJsaWMgRlJPTSByZWdyZXNzX3Zhcl9vd25lcl9y b2xlLCByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZSwgcmVncmVzc192YXJfZXhlY19yb2xlOworCitE Uk9QIFJPTEUgcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9y ZWFkZXJfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKKy0tIHJldHVy bnMgdXBkYXRlZCB2YWx1ZQorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7 CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfaW50KGludCkKK1JFVFVSTlMg aW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gQ09BTEVTQ0UocGxwZ3Nx bF9zdl92YXIxICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQk IExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKK1NFTEVDVCBpbmNf dmFyX2ludCgxKTsKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKKworU0VMRUNUIGluY192YXJfaW50 KDEpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIyIEFTIG51bWVyaWM7CisKK0xFVCBwbHBnc3FsX3N2X3ZhcjIgPSAwLjA7CisKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfbnVtKG51bWVyaWMpCitSRVRVUk5TIGlu dCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IENPQUxFU0NFKHBscGdzcWxf c3ZfdmFyMiArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2X3ZhcjI7CitFTkQ7CiskJCBM QU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKK1NFTEVDVCBpbmNf dmFyX251bSgxLjApOworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisKK1NFTEVDVCBpbmNfdmFy X251bSgxLjApIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworCitEUk9QIFZBUklBQkxFIHBs cGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyOworCitEUk9QIEZVTkNUSU9OIGluY192YXJf aW50OworRFJPUCBGVU5DVElPTiBpbmNfdmFyX251bTsKKworLS0gcGxwZ3NxbCB2YXJpYWJsZXMg YXJlIHByZWZlcnJlZCBhZ2FpbnN0IHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxIEFTIGludDsKKworRE8gJCQKKzw8bXlibG9jaz4+CitERUNMQVJFIHBs cGdzcWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTAwOwor CisgIHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHByaW50IDEwMDsKKyAgUkFJU0Ug Tk9USUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIxOwor CisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZhcmlhYmxlIGlzICUn LCBteWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5P VElDRSAndmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkOworCitEUk9Q IFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKKworLS0gdGhlIHZhbHVlIHNob3VsZCBub3QgYmUg Y29ycnVwdGVkCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92IHRleHQ7CitMRVQgcGxwZ3Nx bF9zdl92ID0gJ2FiYyc7CisKK0NSRUFURSBGVU5DVElPTiBmZnVuYygpCitSRVRVUk5TIHRleHQg QVMgJCQKK0JFR0lOCisgIFJFVFVSTiBnZnVuYyhwbHBnc3FsX3N2X3YpOworRU5ECiskJCBMQU5H VUFHRSBwbHBnc3FsOworCitDUkVBVEUgRlVOQ1RJT04gZ2Z1bmModCB0ZXh0KQorUkVUVVJOUyB0 ZXh0IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92ID0gJ0JPT00hJzsKKyAgUkVUVVJO IHQ7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitzZWxlY3QgZmZ1bmMoKTsKKworRFJP UCBGVU5DVElPTiBmZnVuYygpOworRFJPUCBGVU5DVElPTiBnZnVuYyh0ZXh0KTsKKworRFJPUCBW QVJJQUJMRSBwbHBnc3FsX3N2X3Y7Ci0tIAoyLjQ4LjAKCg== --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20250117-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8nr17 RnJvbSAyMTI4NWMzNDYzYzMwNTY3NzA2ODQ5ZDYzZmM0OTA0ZTFiM2MwMGUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAwOTozMToyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDUvMjJdIG1lbW9yeSBjbGVhbmluZyBhZnRlciBEUk9QIFZBUklBQkxFCgpBY2NlcHRpbmcgYSBz aW52YWwgbWVzc2FnZSBpbnZhbGlkYXRlcyBlbnRyaWVzIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhh c2ggdGFibGUuClRoZXNlIGVudHJpZXMgYXJlIHZhbGlkYXRlZCBiZWZvcmUgYW55IHJlYWQgb3Ig d3JpdGUgb3BlcmF0aW9ucyBvbiBzZXNzaW9uIHZhcmlhYmxlcy4KV2hlbiB0aGUgZW50cnkgY2Fu bm90IGJlIHZhbGlkYXRlZCwgaXQgaXMgcmVtb3ZlZC4gIFJlbW92YWwgd2lsbCBiZSBkZWxheWVk IHdoZW4KdGhlIHZhcmlhYmxlIHdhcyBkcm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9u LCB3aGljaCBjb3VsZCBzdGlsbCBiZSByb2xsZWQgYmFjay4KLS0tCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE1MyArKysrKysrKysrKy0KIHNyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMiArCiAuLi4vaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAxMTAgKysrKysrKysrCiBzcmMv dGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlICAgICAgICAgfCAgIDEgKwogLi4uL2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgIDUwICsrKysKIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDIxNyArKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8 IDEyMCArKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDY1NSBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9zZXNzaW9uLXZhcmlhYmxlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKaW5kZXggYmI0NDVlOTQzNC4uZDY3MmQyYTljYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFi bGUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5j bHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKQEAgLTIzMCw3ICsyMzEsOCBAQCBDcmVhdGVWYXJpYWJs ZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogfQogCiAv KgotICogRHJvcCB2YXJpYWJsZSBieSBPSUQKKyAqIERyb3AgdmFyaWFibGUgYnkgT0lELCBhbmQg cmVnaXN0ZXIgdGhlIG5lZWRlZCBzZXNzaW9uIHZhcmlhYmxlCisgKiBjbGVhbnVwLgogICovCiB2 b2lkCiBEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkKQEAgLTI1MCw0ICsyNTIsNyBAQCBEcm9w VmFyaWFibGVCeUlkKE9pZCB2YXJpZCkKIAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIAogCXRhYmxl X2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkvKiBkbyB0aGUgbmVjZXNzYXJ5IGNs ZWFudXAgaW4gbG9jYWwgbWVtb3J5LCBpZiBuZWVkZWQgKi8KKwlTZXNzaW9uVmFyaWFibGVEcm9w UG9zdHByb2Nlc3ModmFyaWQpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCmluZGV4IGE2MjFjYmUzMzIuLjRhMjllZDZlMGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTE0LDYgKzE0LDcgQEAKICAqLwogI2luY2x1ZGUgInBvc3Rn cmVzLmgiCiAKKyNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKQEAgLTY3LDYgKzY4LDE0IEBAIHR5 cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAl2b2lkCSAgICpkb21haW5fY2hlY2tfZXh0cmE7 CiAJTG9jYWxUcmFuc2FjdGlvbklkIGRvbWFpbl9jaGVja19leHRyYV9seGlkOwogCisJLyoKKwkg KiBUb3AgbGV2ZWwgbG9jYWwgdHJhbnNhY3Rpb24gaWQgb2YgdGhlIGxhc3QgdHJhbnNhY3Rpb24g dGhhdCBkcm9wcGVkIHRoZQorCSAqIHZhcmlhYmxlLCBpZiBhbnkuICBXZSBuZWVkIHRoaXMgaW5m b3JtYXRpb24gdG8gYXZvaWQgZnJlZWluZyBtZW1vcnkgZm9yCisJICogdmFyaWFibGVzIGRyb3Bw ZWQgYnkgdGhlIGxvY2FsIGJhY2tlbmQsIGluIGNhc2UgdGhlIG9wZXJhdGlvbiBpcyByb2xsZWQK KwkgKiBiYWNrLgorCSAqLworCUxvY2FsVHJhbnNhY3Rpb25JZCBkcm9wX2x4aWQ7CisKIAkvKgog CSAqIFN0b3JlZCB2YWx1ZSBhbmQgdHlwZSBkZXNjcmlwdGlvbiBjYW4gYmUgb3V0ZGF0ZWQgd2hl biB3ZSByZWNlaXZlIGEKIAkgKiBzaW52YWwgbWVzc2FnZS4gIFdlIHRoZW4gaGF2ZSB0byBjaGVj ayBpZiB0aGUgc3RvcmVkIGRhdGEgYXJlIHN0aWxsCkBAIC04Myw2ICs5MiwxNyBAQCBzdGF0aWMg SFRBQiAqc2Vzc2lvbnZhcnMgPSBOVUxMOwkvKiBoYXNoIHRhYmxlIGZvciBzZXNzaW9uIHZhcmlh YmxlcyAqLwogCiBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0g TlVMTDsKIAorLyogYmVjb21lcyB0cnVlIHdoZW4gd2UgcmVjZWl2ZSBhIHNpbnZhbCBtZXNzYWdl ICovCitzdGF0aWMgYm9vbCBuZWVkc192YWxpZGF0aW9uID0gZmFsc2U7CisKKy8qCisgKiBUaGUg Y29udGVudCBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVk aWF0ZWx5LiAgV2UgZG8KKyAqIHRoYXQgaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24gdGhhdCByZWFk cyBvciB3cml0ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgorICogInZhbGlkYXRlZF9seGlkIiBzdG9y ZXMgdGhlIHRyYW5zYWN0aW9uIHRoYXQgcGVyZm9ybWVkIHNhaWQgdmFsaWRhdGlvbiwgc28KKyAq IHRoYXQgd2UgY2FuIGF2b2lkIHJlcGVhdGluZyB0aGUgZWZmb3J0LgorICovCitzdGF0aWMgTG9j YWxUcmFuc2FjdGlvbklkIHZhbGlkYXRlZF9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25J ZDsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFs aWRhdGlvbi4KICAqLwpAQCAtMTE0LDYgKzEzNCwzOCBAQCBwZ192YXJpYWJsZV9jYWNoZV9jYWxs YmFjayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKQogCQlpZiAoaGFz aHZhbHVlID09IDAgfHwgc3Zhci0+aGFzaHZhbHVlID09IGhhc2h2YWx1ZSkKIAkJewogCQkJc3Zh ci0+aXNfdmFsaWQgPSBmYWxzZTsKKwkJCW5lZWRzX3ZhbGlkYXRpb24gPSB0cnVlOworCQl9CisJ fQorfQorCisvKgorICogSGFuZGxlIHRoZSBsb2NhbCBtZW1vcnkgY2xlYW51cCBmb3IgYSBEUk9Q IFZBUklBQkxFIGNvbW1hbmQuCisgKgorICogQ2FsbGVyIHNob3VsZCB0YWtlIGNhcmUgb2YgcmVt b3ZpbmcgdGhlIHBnX3ZhcmlhYmxlIGVudHJ5IGZpcnN0LgorICovCit2b2lkCitTZXNzaW9uVmFy aWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkKQoreworCUFzc2VydChMb2NhbFRyYW5zYWN0 aW9uSWRJc1ZhbGlkKE15UHJvYy0+dnhpZC5seGlkKSk7CisKKwlpZiAoc2Vzc2lvbnZhcnMpCisJ eworCQlib29sCQlmb3VuZDsKKwkJU1ZhcmlhYmxlCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3Nl YXJjaChzZXNzaW9udmFycywgJnZhcmlkLAorCQkJCQkJCQkJCQkJICAgSEFTSF9GSU5ELCAmZm91 bmQpOworCisJCWlmIChmb3VuZCkKKwkJeworCQkJLyoKKwkJCSAqIFNhdmUgdGhlIGN1cnJlbnQg dG9wIGxldmVsIGxvY2FsIHRyYW5zYWN0aW9uIGlkIHRvIG1ha2Ugc3VyZSB3ZQorCQkJICogd29u J3QgYXV0b21hdGljYWxseSByZW1vdmUgdGhlIGxvY2FsIHZhcmlhYmxlIHN0b3JhZ2UgaW4KKwkJ CSAqIHZhbGlkYXRlX2FsbF9zZXNzaW9uX3ZhcmlhYmxlcygpIHdoZW4gdGhlIGludmFsaWRhdGlv biBtZXNzYWdlCisJCQkgKiBmcm9tIERST1AgVkFSSUFCTEUgYXJyaXZlcy4gIEFmdGVyIGFsbCwg dGhlIHRyYW5zYWN0aW9uIGNvdWxkCisJCQkgKiBzdGlsbCBiZSByb2xsZWQgYmFjay4KKwkJCSAq LworCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKwkJCXN2YXItPmRyb3BfbHhpZCA9IE15UHJv Yy0+dnhpZC5seGlkOwogCQl9CiAJfQogfQpAQCAtMTY3LDYgKzIxOSw2NyBAQCBpc19zZXNzaW9u X3ZhcmlhYmxlX3ZhbGlkKFNWYXJpYWJsZSBzdmFyKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8q CisgKiBDaGVjayBhbGwgcG90ZW50aWFsbHkgaW52YWxpZCBzZXNzaW9uIHZhcmlhYmxlIGRhdGEg aW4gbG9jYWwgbWVtb3J5IGFuZCBmcmVlCisgKiB0aGUgbWVtb3J5IGZvciBhbGwgaW52YWxpZCBv bmVzLiAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYmVmb3JlIGFueSByZWFkIG9yCisgKiB3cml0 ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUuICBGcmVlaW5nIG9mIGEgdmFyaWFibGUncyBtZW1vcnkg aXMgcG9zdHBvbmVkIGlmCisgKiB0aGUgdmFyaWFibGUgaGFzIGJlZW4gZHJvcHBlZCBieSB0aGUg Y3VycmVudCB0cmFuc2FjdGlvbiwgc2luY2UgdGhhdAorICogb3BlcmF0aW9uIGNvdWxkIHN0aWxs IGJlIHJvbGxlZCBiYWNrLgorICoKKyAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgcmVjZWl2ZSBh IGNhY2hlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdoaWxlCisgKiByZW1vdmVfaW52YWxpZF9zZXNz aW9uX3ZhcmlhYmxlcygpIGlzIGV4ZWN1dGluZywgc28gd2UgY2Fubm90IGd1YXJhbnRlZSB0aGF0 CisgKiBhbGwgZW50cmllcyBpbiAic2Vzc2lvbnZhcnMiIHdpbGwgYmUgc2V0IHRvICJpc192YWxp ZCIgYWZ0ZXIgdGhlIGZ1bmN0aW9uIGlzCisgKiBkb25lLiAgSG93ZXZlciwgd2UgY2FuIGd1YXJh bnRlZSB0aGF0IGFsbCBlbnRyaWVzIGdldCBjaGVja2VkIG9uY2UuCisgKi8KK3N0YXRpYyB2b2lk CityZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh2b2lkKQoreworCUhBU0hfU0VRX1NU QVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwkvKgorCSAqIFRoZSB2YWxpZGF0aW9u IHJlcXVpcmVzIHN5c3RlbSBjYXRhbG9nIGFjY2Vzcywgc28gdGhlIHNlc3Npb24gc3RhdGUKKwkg KiBzaG91bGQgYmUgImluIHRyYW5zYWN0aW9uIi4KKwkgKi8KKwlBc3NlcnQoSXNUcmFuc2FjdGlv blN0YXRlKCkpOworCisJaWYgKCFuZWVkc192YWxpZGF0aW9uIHx8ICFzZXNzaW9udmFycykKKwkJ cmV0dXJuOworCisJLyoKKwkgKiBSZXNldCB0aGUgZmxhZyBiZWZvcmUgd2Ugc3RhcnQgdGhlIHZh bGlkYXRpb24uICBJdCBjYW4gYmUgc2V0IGFnYWluCisJICogYnkgY29uY3VycmVudGx5IGluY29t aW5nIHNpbnZhbCBtZXNzYWdlcy4KKwkgKi8KKwluZWVkc192YWxpZGF0aW9uID0gZmFsc2U7CisK KwllbG9nKERFQlVHMSwgImVmZmVjdGl2ZSBjYWxsIG9mIHZhbGlkYXRlX2FsbF9zZXNzaW9uX3Zh cmlhYmxlcygpIik7CisKKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKwl3 aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5V TEwpCisJeworCQlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCQl7CisJCQlpZiAoc3Zhci0+ZHJvcF9s eGlkID09IE15UHJvYy0+dnhpZC5seGlkKQorCQkJeworCQkJCS8qIHRyeSBhZ2FpbiBpbiB0aGUg bmV4dCB0cmFuc2FjdGlvbiAqLworCQkJCW5lZWRzX3ZhbGlkYXRpb24gPSB0cnVlOworCQkJCWNv bnRpbnVlOworCQkJfQorCisJCQlpZiAoIWlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3Zhcikp CisJCQl7CisJCQkJT2lkCQkJdmFyaWQgPSBzdmFyLT52YXJpZDsKKworCQkJCWZyZWVfc2Vzc2lv bl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZh cmlkLCBIQVNIX1JFTU9WRSwgTlVMTCk7CisJCQkJc3ZhciA9IE5VTEw7CisJCQl9CisJCQllbHNl CisJCQkJc3Zhci0+aXNfdmFsaWQgPSB0cnVlOworCQl9CisJfQorfQorCiAvKgogICogSW5pdGlh bGl6ZSBhdHRyaWJ1dGVzIGNhY2hlZCBpbiAic3ZhciIKICAqLwpAQCAtMTk2LDYgKzMwOSw4IEBA IHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKIAlzdmFy LT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9s eGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKIAorCXN2YXItPmRyb3BfbHhpZCA9IElu dmFsaWRUcmFuc2FjdGlvbklkOworCiAJc3Zhci0+aXNudWxsID0gdHJ1ZTsKIAlzdmFyLT52YWx1 ZSA9IChEYXR1bSkgMDsKIApAQCAtMzE5LDIyICs0MzQsNDIgQEAgZ2V0X3Nlc3Npb25fdmFyaWFi bGUoT2lkIHZhcmlkKQogCWlmICghc2Vzc2lvbnZhcnMpCiAJCWNyZWF0ZV9zZXNzaW9udmFyc19o YXNodGFibGVzKCk7CiAKKwlpZiAodmFsaWRhdGVkX2x4aWQgPT0gSW52YWxpZExvY2FsVHJhbnNh Y3Rpb25JZCB8fAorCQl2YWxpZGF0ZWRfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkKKwl7CisJ CS8qIGZyZWUgdGhlIG1lbW9yeSBmcm9tIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwkJ cmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworCQkvKiBkb24ndCByZXBlYXQg dGhlIGFib3ZlIHN0ZXAgaW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gKi8KKwkJdmFsaWRhdGVkX2x4 aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKKwl9CisKIAlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9z ZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKIAkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5k KTsKIAogCWlmIChmb3VuZCkKIAl7CisJCS8qCisJCSAqIFRoZSBzZXNzaW9uIHZhcmlhYmxlIGNv dWxkIGhhdmUgYmVlbiBkcm9wcGVkIGJ5IGEgRFJPUCBWQVJJQUJMRQorCQkgKiBzdGF0ZW1lbnQg aW4gYSBzdWJ0cmFuc2FjdGlvbiB0aGF0IHdhcyBsYXRlciByb2xsZWQgYmFjaywgd2hpY2gKKwkJ ICogbWVhbnMgdGhhdCB3ZSBtYXkgaGF2ZSB0byB3b3JrIHdpdGggdGhlIGRhdGEgb2YgYSB2YXJp YWJsZSBtYXJrZWQKKwkJICogYXMgaW52YWxpZC4KKwkJICovCiAJCWlmICghc3Zhci0+aXNfdmFs aWQpCiAJCXsKIAkJCS8qCi0JCQkgKiBJZiB0aGVyZSB3YXMgYW4gaW52YWxpZGF0aW9uIG1lc3Nh Z2UsIHRoZSB2YXJpYWJsZSBtaWdodCBzdGlsbCBiZQotCQkJICogdmFsaWQsIGJ1dCB3ZSBoYXZl IHRvIGNoZWNrIHdpdGggdGhlIHN5c3RlbSBjYXRhbG9nLgorCQkJICogV2UgaGF2ZSB0byBjaGVj ayB0aGUgc3lzdGVtIGNhdGFsb2cgdG8gc2VlIGlmIHRoZSB2YXJpYWJsZSBpcworCQkJICogc3Rp bGwgdmFsaWQsIGV2ZW4gaWYgYW4gaW52YWxpZGF0aW9uIG1lc3NhZ2Ugc2V0IGl0IHRvIGludmFs aWQuCisJCQkgKgorCQkJICogVGhlIHZhcmlhYmxlIG11c3QgYmUgdmFsaWRhdGVkIGJlZm9yZSBp dCBpcyBhY2Nlc3NlZC4gIFRoZSBvaWQKKwkJCSAqIHNob3VsZCBiZSB2YWxpZCwgYmVjYXVzZSB0 aGUgcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlIGlzIGFscmVhZHkKKwkJCSAqIGxvY2tlZCwgYW5k IHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCkgd291bGQgcmVtb3ZlCisJCQkgKiB2 YXJpYWJsZXMgZHJvcHBlZCBieSBvdGhlciB0cmFuc2FjdGlvbnMuCiAJCQkgKi8KIAkJCWlmIChp c19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKHN2YXIpKQogCQkJCXN2YXItPmlzX3ZhbGlkID0gdHJ1 ZTsKIAkJCWVsc2UKLQkJCQkvKiBpZiB0aGUgdmFsdWUgY2Fubm90IGJlIHZhbGlkYXRlZCwgd2Ug aGF2ZSB0byBkaXNjYXJkIGl0ICovCi0JCQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2 YXIpOworCQkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIHN0YXRlIG9mIHNlc3Npb24gdmFyaWFi bGUgJXUiLCB2YXJpZCk7CiAJCX0KIAl9CiAJZWxzZQpAQCAtMzk1LDYgKzUzMCwxNiBAQCBTZXRT ZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCiAJaWYg KCFzZXNzaW9udmFycykKIAkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKIAorCWlm ICh2YWxpZGF0ZWRfbHhpZCA9PSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkIHx8CisJCXZhbGlk YXRlZF9seGlkICE9IE15UHJvYy0+dnhpZC5seGlkKQorCXsKKwkJLyogZnJlZSB0aGUgbWVtb3J5 IGZyb20gZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCQlyZW1vdmVfaW52YWxpZF9zZXNz aW9uX3ZhcmlhYmxlcygpOworCisJCS8qIGRvbid0IHJlcGVhdCB0aGUgYWJvdmUgc3RlcCBpbiB0 aGUgc2FtZSB0cmFuc2FjdGlvbiAqLworCQl2YWxpZGF0ZWRfbHhpZCA9IE15UHJvYy0+dnhpZC5s eGlkOworCX0KKwogCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywg JnZhcmlkLAogCQkJCQkJCQkgICBIQVNIX0VOVEVSLCAmZm91bmQpOwogCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggYThjYTQzYzg3YS4uZDNjYzc5YjU2MCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjEsNiArMjEsOCBAQAog I2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZpcm9ubWVu dC5oIgogCitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZh cmlkKTsKKwogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0g dmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGUoT2lk IHZhcmlkLCBib29sICppc051bGwpOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24v ZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0 ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMC4uMGE1NTc5ZGM3YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApAQCAtMCwwICsxLDExMCBAQAorUGFyc2VkIHRl c3Qgc3BlYyB3aXRoIDQgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwg ZHJvcCB2YWwKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZhbDogU0VMRUNU IG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIGRyb3A6IERST1Ag VkFSSUFCTEUgbXl2YXI7CitzdGVwIHZhbDogU0VMRUNUIG15dmFyOworRVJST1I6ICBjb2x1bW4g Im15dmFyIiBkb2VzIG5vdCBleGlzdAorCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBz MSBkcm9wIHZhbCBzcjEKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZhbDog U0VMRUNUIG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIHMxOiBC RUdJTjsKK3N0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKK3N0ZXAgdmFsOiBTRUxFQ1Qg bXl2YXI7CitFUlJPUjogIGNvbHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CitzdGVwIHNyMTog Uk9MTEJBQ0s7CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0 ZSBkYmcgdmFsCitzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVD VCBteXZhcjsKK215dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBkYmc6IFNFTEVD VCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworc2No ZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSstLS0tLSstLS0tLS0tCitwdWJsaWN8bXl2YXJ8ZiAg ICAgIAorKDEgcm93KQorCitzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7CitzdGVwIGNy ZWF0ZTogQ1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIHRleHQ7CitzdGVwIGRiZzogU0VMRUNUIHNj aGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CitzY2hlbWF8 bmFtZXxyZW1vdmVkCistLS0tLS0rLS0tLSstLS0tLS0tCisgICAgICB8ICAgIHx0ICAgICAgCiso MSByb3cpCisKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KKyAgICAgCiso MSByb3cpCisKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgczEgZGJnIGRyb3AgY3Jl YXRlIGRiZyB2YWwgc3IxCitzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6 IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBzMTog QkVHSU47CitzdGVwIGRiZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CitzY2hlbWF8bmFtZSB8cmVtb3ZlZAorLS0tLS0tKy0tLS0tKy0t LS0tLS0KK3B1YmxpY3xteXZhcnxmICAgICAgCisoMSByb3cpCisKK3N0ZXAgZHJvcDogRFJPUCBW QVJJQUJMRSBteXZhcjsKK3N0ZXAgY3JlYXRlOiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4 dDsKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0rLS0tLS0rLS0tLS0t LQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCB2YWw6IFNFTEVDVCBteXZh cjsKK215dmFyCistLS0tLQorICAgICAKKygxIHJvdykKKworc3RlcCBzcjE6IFJPTExCQUNLOwor CitzdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9w NCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3N0ZXAgY3JlYXRlMzogQ1JFQVRFIFZB UklBQkxFIG15dmFyMyBBUyB0ZXh0Oworc3RlcCBsZXQzOiBMRVQgbXl2YXIzID0gJ3Rlc3QnOwor c3RlcCBzMzogQkVHSU47CitzdGVwIGNyZWF0ZTQ6IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMg dGV4dDsKK3N0ZXAgbGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0JzsKK3N0ZXAgZHJvcDQ6IERST1Ag VkFSSUFCTEUgbXl2YXI0Oworc3RlcCBkcm9wMzogRFJPUCBWQVJJQUJMRSBteXZhcjM7CitzdGVw IGludmFsMzogU0VMRUNUIENPVU5UKCopID49IDAgRlJPTSBwZ19mb3JlaWduX3RhYmxlOworP2Nv bHVtbj8KKy0tLS0tLS0tCit0ICAgICAgIAorKDEgcm93KQorCitzdGVwIGRpc2NhcmQ6IERJU0NB UkQgVkFSSUFCTEVTOworc3RlcCBzYzM6IENPTU1JVDsKK3N0ZXAgc3RhdGU6IFNFTEVDVCB2YXJu YW1lIEZST00gcGdfdmFyaWFibGU7Cit2YXJuYW1lCistLS0tLS0tCitteXZhciAgCisoMSByb3cp CisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUgYi9z cmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCmluZGV4IDE0MzEwOWFhNGQuLjc0 NTM2ODVkMDQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1 bGUKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZQpAQCAtMTE1LDMg KzExNSw0IEBAIHRlc3Q6IHNlcmlhbGl6YWJsZS1wYXJhbGxlbC0yCiB0ZXN0OiBzZXJpYWxpemFi bGUtcGFyYWxsZWwtMwogdGVzdDogbWF0dmlldy13cml0ZS1za2V3CiB0ZXN0OiBsb2NrLW5vd2Fp dAordGVzdDogc2Vzc2lvbi12YXJpYWJsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9u L3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9z ZXNzaW9uLXZhcmlhYmxlLnNwZWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MC4uYzg2NGZlZTQwMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVj cy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKQEAgLTAsMCArMSw1MCBAQAorIyBUZXN0IHNlc3Npb24g dmFyaWFibGVzIG1lbW9yeSBjbGVhbnVwIGZvciBzaW52YWwKKworc2V0dXAKK3sKKyAgICBDUkVB VEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK30KKwordGVhcmRvd24KK3sKKyAgICBEUk9QIFZB UklBQkxFIElGIEVYSVNUUyBteXZhcjsKK30KKworc2Vzc2lvbiBzMQorc3RlcCBzMQkJeyBCRUdJ TjsgfQorc3RlcCBsZXQJeyBMRVQgbXl2YXIgPSAndGVzdCc7IH0KK3N0ZXAgdmFsCXsgU0VMRUNU IG15dmFyOyB9CitzdGVwIGRiZwl7IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOyB9CitzdGVwIHNyMQl7IFJPTExCQUNLOyB9CisKK3Nlc3Np b24gczIKK3N0ZXAgZHJvcAkJeyBEUk9QIFZBUklBQkxFIG15dmFyOyB9CitzdGVwIGNyZWF0ZQkJ eyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsgfQorCitzZXNzaW9uIHMzCitzdGVwIHMz CQkJeyBCRUdJTjsgfQorc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVzdCc7IH0KK3N0ZXAg Y3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQorc3RlcCBsZXQ0CQl7 IExFVCBteXZhcjQgPSAndGVzdCc7IH0KK3N0ZXAgZHJvcDQJCXsgRFJPUCBWQVJJQUJMRSBteXZh cjQ7IH0KK3N0ZXAgaW52YWwzCQl7IFNFTEVDVCBDT1VOVCgqKSA+PSAwIEZST00gcGdfZm9yZWln bl90YWJsZTsgfQorc3RlcCBkaXNjYXJkCXsgRElTQ0FSRCBWQVJJQUJMRVM7IH0KK3N0ZXAgc2Mz CQl7IENPTU1JVDsgfQorc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3Zhcmlh YmxlOyB9CisKK3Nlc3Npb24gczQKK3N0ZXAgY3JlYXRlMwl7IENSRUFURSBWQVJJQUJMRSBteXZh cjMgQVMgdGV4dDsgfQorc3RlcCBkcm9wMwkJeyBEUk9QIFZBUklBQkxFIG15dmFyMzsgfQorCisj IENvbmN1cnJlbnQgZHJvcCBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBsZWFkIHRvIGFuIGVy cm9yCitwZXJtdXRhdGlvbiBsZXQgdmFsIGRyb3AgdmFsCisjIFNhbWUsIGJ1dCB3aXRoIGFuIGV4 cGxpY2l0IHRyYW5zYWN0aW9uCitwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQor IyBDb25jdXJyZW50IGRyb3AvY3JlYXRlIG9mIGEga25vd24gdmFyaWFibGUgc2hvdWxkIGxlYWQg dG8gZW1wdHkgdmFyaWFibGUKK3Blcm11dGF0aW9uIGxldCB2YWwgZGJnIGRyb3AgY3JlYXRlIGRi ZyB2YWwKKyMgQ29uY3VycmVudCBkcm9wL2NyZWF0ZSBvZiBhIGtub3duIHZhcmlhYmxlIHNob3Vs ZCBsZWFkIHRvIGVtcHR5IHZhcmlhYmxlCisjIFdlIG5lZWQgYSB0cmFuc2FjdGlvbiB0byBtYWtl IHN1cmUgdGhhdCB3ZSB3b24ndCBhY2NlcHQgaW52YWxpZGF0aW9uIHdoZW4KKyMgY2FsbGluZyB0 aGUgZGJnIHN0ZXAgYWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAorcGVybXV0YXRpb24gbGV0IHZh bCBzMSBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKKyMgdGVzdCBmb3IgRElTQ0FSRCBBTEwg d2hlbiBhbGwgaW50ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3RlcmVkCitwZXJtdXRh dGlvbiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNj YXJkIHNjMyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzLm91dAppbmRleCA3OWFjNDA3NjhmLi4yNzgzY2FhODQ0IDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTcyNiwzICsxNzI2 LDIyMCBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwogICAg ICAwCiAoMSByb3cpCiAKKy0tIGRyb3BwZWQgdmFyaWFibGVzIHNob3VsZCBiZSByZW1vdmVkIGZy b20gbWVtb3J5IGJlZm9yZSB0aGUgbmV4dCB1c2FnZQorLS0gb2YgYW55IHNlc3Npb24gdmFyaWFi bGUgaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24KK0xFVCB2YXIxID0gJ0Fob2onOworU0VMRUNUIG5h bWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3Zhcmlh YmxlcygpOworIG5hbWUgfCAgICAgIHR5cG5hbWUgICAgICB8IGNhbl9zZWxlY3QgfCBjYW5fdXBk YXRlIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IHQgICAgICAgICAgfCB0CisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikg RlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworIGNvdW50IAor LS0tLS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHRoZSBjb250ZW50IG9mIHRoZSB2YWx1ZSBz aG91bGQgYmUgcHJlc2VydmVkIHdoZW4gYSB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBieSBhbiBh Ym9ydGVkIHRyYW5zYWN0aW9uCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVU IHZhcjEgPSAnQWhvaic7CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHNob3VsZCBm YWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgY29sdW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAor TElORSAxOiBTRUxFQ1QgdmFyMTsKKyAgICAgICAgICAgICAgIF4KK1JPTExCQUNLOworLS0gc2hv dWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgQWhvagorKDEgcm93KQor CistLSBhbm90aGVyIHRlc3QKK0JFR0lOOworRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50OworTEVUIHZhcjEgPSAxMDA7CistLSBzaG91bGQgYmUgb2ssIHJl c3VsdCAxMDAKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisK K1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgJ0Fob2onCitTRUxFQ1QgdmFyMTsK KyB2YXIxIAorLS0tLS0tCisgQWhvagorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7Cist LSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93 KQorCitCRUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworICBMRVQgdmFyMSA9 IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKwor ICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CisgbmFtZSB8IHR5cG5hbWUgfCBjYW5fc2VsZWN0IHwgY2FuX3Vw ZGF0ZSAKKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHZhcjEg fCBpbnRlZ2VyIHwgdCAgICAgICAgICB8IHQKKygxIHJvdykKKworICBEUk9QIFZBUklBQkxFIHZh cjE7CitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdf c2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKyBjb3VudCAKKy0tLS0tLS0K KyAgICAgMAorKDEgcm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50 OworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAx MDAKKygxIHJvdykKKworICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3Vw ZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgbmFtZSB8IHR5cG5hbWUgfCBjYW5f c2VsZWN0IHwgY2FuX3VwZGF0ZSAKKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIHZhcjEgfCBpbnRlZ2VyIHwgdCAgICAgICAgICB8IHQKKygxIHJvdykKKworICBE Uk9QIFZBUklBQkxFIHZhcjE7CitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNv dW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKyBj b3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOworTEVU IHZhcjIgPSAwOworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIx OworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFi bGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworICBS T0xMQkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZBUklBQkxFIHZhcjE7Cisg IFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgUk9MTEJB Q0sgVE8gczI7CitDT01NSVQ7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEg CistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERS T1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhl ciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAw CisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNBVkVQT0lOVCBzMjsKKyAgRFJPUCBW QVJJQUJMRSB2YXIxOworICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEg cm93KQorCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAK Ky0tLS0tLQorICAgMTAKKygxIHJvdykKKworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJP UCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVy IHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAK KygxIHJvdykKKworICBTQVZFUE9JTlQgczI7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNo aW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0t LS0tCisgICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMxOworICAtLSBmb3JjZSBjbGVh bmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7 CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworQ09NTUlUOworLS0gc2hvdWxkIGJl IG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCistLSBy ZXBlYXRlZCBhYm9ydGVkIHRyYW5zYWN0aW9uCitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBS T0xMQkFDSzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworQkVHSU47IERS T1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIx OworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMSwg dmFyMjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCAy OTU0NzU5YWFlLi5hNjI0YWI4YjY3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z ZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsCkBAIC0xMjE0LDMgKzEyMTQsMTIzIEBAIERJU0NBUkQgVkFSSUFCTEVTOwog CiAtLSBzaG91bGQgYmUgemVybyBhZ2FpbgogU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKKworLS0gZHJvcHBlZCB2YXJpYWJsZXMgc2hvdWxkIGJlIHJlbW92ZWQg ZnJvbSBtZW1vcnkgYmVmb3JlIHRoZSBuZXh0IHVzYWdlCistLSBvZiBhbnkgc2Vzc2lvbiB2YXJp YWJsZSBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvbgorCitMRVQgdmFyMSA9ICdBaG9qJzsKK1NFTEVD VCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92 YXJpYWJsZXMoKTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJlbW92 ZWQ7CisKKy0tIHRoZSBjb250ZW50IG9mIHRoZSB2YWx1ZSBzaG91bGQgYmUgcHJlc2VydmVkIHdo ZW4gYSB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBieSBhbiBhYm9ydGVkIHRyYW5zYWN0aW9uCitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZhcjEgPSAnQWhvaic7CitCRUdJ TjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxOwor CitST0xMQkFDSzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gYW5vdGhl ciB0ZXN0CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGludDsKK0xFVCB2YXIxID0gMTAwOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgMTAwCitT RUxFQ1QgdmFyMTsKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgJ0Fob2onCitT RUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBzaG91bGQgYmUgemVybwor U0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVt b3ZlZDsKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZh cjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3Nl bGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgIERST1AgVkFS SUFCTEUgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJlbW92ZWQ7CisKK0JFR0lO OworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisgIExFVCB2YXIxID0gMTAwOworICBT RUxFQ1QgdmFyMTsKKyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRh dGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitD T01NSVQ7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNz aW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOwor TEVUIHZhcjIgPSAwOworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2 YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFy aWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7 CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMy OworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworQkVHSU47CisgIFNB VkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBi eSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJP TExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAg U0VMRUNUIHZhcjI7CitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisK K0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9y Y2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVD VCB2YXIyOworCisgIFNBVkVQT0lOVCBzMjsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hp bmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworICBST0xMQkFDSyBU TyBzMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZh cmlhYmxlCisgIFNFTEVDVCB2YXIyOworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qg dmFyMTsKKworLS0gcmVwZWF0ZWQgYWJvcnRlZCB0cmFuc2FjdGlvbgorQkVHSU47IERST1AgVkFS SUFCTEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFD SzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworCistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7Ci0tIAoyLjQ4LjAK Cg== --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0004-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20250117-0004-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8ny18 RnJvbSBkZWViMWMxYWViMDVlYjc3OWYzOTg0MzFhNGEzMzM4N2I4ODEyNDIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTQ6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0 LzIyXSBESVNDQVJEIFZBUklBQkxFUwoKSW1wbGVtZW50YXRpb24gb2YgRElTQ0FSRCBWQVJJQUJM RVMgY29tbWFuZHMgYnkgcmVtb3ZpbmcgaGFzaCB0YWJsZSB3aXRoIHNlc3Npb24gdmFyaWFibGVz CmFuZCByZXNldHRpbmcgcmVsYXRlZCBtZW1vcnkgY29udGV4dC4KLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAxMyArKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMjggKysrKysrKystCiBzcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKwogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dCAgICB8IDYzICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDM2ICsrKysrKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAxNTggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGlz Y2FyZC5zZ21sCmluZGV4IGJmNDRjNTIzY2EuLjYxYjk2N2Y5YzkgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5z Z21sCkBAIC0yMSw3ICsyMSw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5 bm9wc2lzZGl2PgogPHN5bm9wc2lzPgotRElTQ0FSRCB7IEFMTCB8IFBMQU5TIHwgU0VRVUVOQ0VT IHwgVEVNUE9SQVJZIHwgVEVNUCB9CitESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFVRU5DRVMg fCBURU1QT1JBUlkgfCBURU1QIHwgVkFSSUFCTEVTIH0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5v cHNpc2Rpdj4KIApAQCAtNjYsNiArNjYsMTYgQEAgRElTQ0FSRCB7IEFMTCB8IFBMQU5TIHwgU0VR VUVOQ0VTIHwgVEVNUE9SQVJZIHwgVEVNUCB9CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlz dGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlZBUklBQkxF UzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFJl c2V0cyB0aGUgdmFsdWUgb2YgYWxsIHNlc3Npb24gdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxlCisg ICAgICBpcyBsYXRlciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRvIDxsaXRlcmFsPk5V TEw8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPlRFTVBPUkFS WTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+VEVNUDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3Rp dGVtPgpAQCAtOTMsNiArMTAzLDcgQEAgU0VMRUNUIHBnX2Fkdmlzb3J5X3VubG9ja19hbGwoKTsK IERJU0NBUkQgUExBTlM7CiBESVNDQVJEIFRFTVA7CiBESVNDQVJEIFNFUVVFTkNFUzsKK0RJU0NB UkQgVkFSSUFCTEVTOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAgICAgPC9saXN0aXRlbT4K ICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlz Y2FyZC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCmluZGV4IDgxMzM5YTc1YTUu LjU5MDRhNmM0OTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Rpc2NhcmQuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNp bmNsdWRlICJjb21tYW5kcy9hc3luYy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Rpc2NhcmQuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9wcmVwYXJlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCiAjaW5jbHVkZSAi dXRpbHMvZ3VjLmgiCiAjaW5jbHVkZSAidXRpbHMvcG9ydGFsLmgiCkBAIC00OCw2ICs0OSwxMCBA QCBEaXNjYXJkQ29tbWFuZChEaXNjYXJkU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCQkJ UmVzZXRUZW1wVGFibGVOYW1lc3BhY2UoKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgRElTQ0FSRF9W QVJJQUJMRVM6CisJCQlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsKKwkJCWJyZWFrOworCiAJCWRl ZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIERJU0NBUkQgdGFyZ2V0OiAlZCIs IHN0bXQtPnRhcmdldCk7CiAJfQpAQCAtNzUsNCArODAsNSBAQCBEaXNjYXJkQWxsKGJvb2wgaXNU b3BMZXZlbCkKIAlSZXNldFBsYW5DYWNoZSgpOwogCVJlc2V0VGVtcFRhYmxlTmFtZXNwYWNlKCk7 CiAJUmVzZXRTZXF1ZW5jZUNhY2hlcygpOworCVJlc2V0U2Vzc2lvblZhcmlhYmxlcygpOwogfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDgyNTVmMzYwZDIuLmE2 MjFjYmUzMzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTk0 LDcgKzk0LDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNh Y2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVHMSwgInBnX3ZhcmlhYmxlX2Nh Y2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKIAotCUFzc2VydChzZXNz aW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgb2Ygc2Vzc2lvbiB2YXJp YWJsZXMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAqIHJlY2VpdmluZyBhbiBpbnZh bGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBWQVJJQUJMRVMgXQorCSAqIGRl c3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLworCWlmICghc2Vzc2lvbnZhcnMp CisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBub3Qgc3BlY2lmaWVk LCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAtNjE5LDMgKzYyNSwyMyBAQCBw Z19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmV0dXJuIChEYXR1bSkg MDsKIH0KKworLyoKKyAqIEZhc3QgZHJvcCBvZiB0aGUgY29tcGxldGUgY29udGVudCBvZiB0aGUg c2Vzc2lvbiB2YXJpYWJsZXMgaGFzaCB0YWJsZSwgYW5kCisgKiBjbGVhbnVwIG9mIGFueSBsaXN0 IHRoYXQgd291bGRuJ3QgYmUgcmVsZXZhbnQgYW55bW9yZS4KKyAqIFRoaXMgaXMgdXNlZCBieSB0 aGUgRElTQ0FSRCBWQVJJQUJMRVMgKGFuZCBESVNDQVJEIEFMTCkgY29tbWFuZC4KKyAqLwordm9p ZAorUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpCit7CisJLyogZGVzdHJveSBoYXNoIHRhYmxl IGFuZCByZXNldCByZWxhdGVkIG1lbW9yeSBjb250ZXh0ICovCisJaWYgKHNlc3Npb252YXJzKQor CXsKKwkJaGFzaF9kZXN0cm95KHNlc3Npb252YXJzKTsKKwkJc2Vzc2lvbnZhcnMgPSBOVUxMOwor CX0KKworCS8qIHJlbGVhc2UgbWVtb3J5IGFsbG9jYXRlZCBieSBzZXNzaW9uIHZhcmlhYmxlcyAq LworCWlmIChTVmFyaWFibGVNZW1vcnlDb250ZXh0ICE9IE5VTEwpCisJCU1lbW9yeUNvbnRleHRS ZXNldChTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDE2ZGE1MjNm NmIuLjhmNGMzMDIwYWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjA4NCw3ICsyMDg0LDEzIEBAIERpc2Nh cmRTdG10OgogCQkJCQluLT50YXJnZXQgPSBESVNDQVJEX1NFUVVFTkNFUzsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgRElTQ0FSRCBWQVJJQUJMRVMKKwkJCQl7CisJCQkJCURp c2NhcmRTdG10ICpuID0gbWFrZU5vZGUoRGlzY2FyZFN0bXQpOwogCisJCQkJCW4tPnRhcmdldCA9 IERJU0NBUkRfVkFSSUFCTEVTOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQk7CiAK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYwppbmRleCA3YTUwOGEzNjQ0Li42ZTRkMjMxMGY1IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHku YwpAQCAtMjk2Miw2ICsyOTYyLDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUp CiAJCQkJY2FzZSBESVNDQVJEX1NFUVVFTkNFUzoKIAkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRf U0VRVUVOQ0VTOwogCQkJCQlicmVhazsKKwkJCQljYXNlIERJU0NBUkRfVkFSSUFCTEVTOgorCQkJ CQl0YWcgPSBDTURUQUdfRElTQ0FSRF9WQVJJQUJMRVM7CisJCQkJCWJyZWFrOwogCQkJCWRlZmF1 bHQ6CiAJCQkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CmluZGV4IGFjYmY1MWVmMmUuLmQ3OGNlZjM2YWQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAg LTQxMTMsNyArNDExMyw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAog CiAvKiBESVNDQVJEICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRElTQ0FSRCIpKQotCQlDT01QTEVU RV9XSVRIKCJBTEwiLCAiUExBTlMiLCAiU0VRVUVOQ0VTIiwgIlRFTVAiKTsKKwkJQ09NUExFVEVf V0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIsICJURU1QIiwgIlZBUklBQkxFUyIpOwog CiAvKiBETyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRPIikpCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggMjM5MWI5YWQ0NC4uYThjYTQzYzg3YSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjcsNCArMjcsNiBAQCBleHRlcm4g RGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsKTsKIGV4dGVy biB2b2lkIEV4ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwg UGFyYW1MaXN0SW5mbyBwYXJhbXMsCiAJCQkJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVu diwgUXVlcnlDb21wbGV0aW9uICpxYyk7CiAKK2V4dGVybiB2b2lkIFJlc2V0U2Vzc2lvblZhcmlh Ymxlcyh2b2lkKTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggYjM3N2VlMDk1 Ny4uNGQyOWYyYjI0ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDAzNSw2ICs0MDM1LDcg QEAgdHlwZWRlZiBlbnVtIERpc2NhcmRNb2RlCiAJRElTQ0FSRF9QTEFOUywKIAlESVNDQVJEX1NF UVVFTkNFUywKIAlESVNDQVJEX1RFTVAsCisJRElTQ0FSRF9WQVJJQUJMRVMsCiB9IERpc2NhcmRN b2RlOwogCiB0eXBlZGVmIHN0cnVjdCBEaXNjYXJkU3RtdApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRl eCAyMjA4MmMzMDAwLi5iZWYwYWMyNTMzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2Nt ZHRhZ2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAtMTM1LDYg KzEzNSw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9BTEwsICJESVNDQVJEIEFMTCIsIGZh bHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfUExBTlMsICJESVND QVJEIFBMQU5TIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FS RF9TRVFVRU5DRVMsICJESVNDQVJEIFNFUVVFTkNFUyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0RJU0NBUkRfVEVNUCwgIkRJU0NBUkQgVEVNUCIsIGZhbHNlLCBmYWxz ZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfVkFSSUFCTEVTLCAiRElTQ0FSRCBW QVJJQUJMRVMiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ETywgIkRP IiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9BQ0NFU1NfTUVU SE9ELCAiRFJPUCBBQ0NFU1MgTUVUSE9EIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19EUk9QX0FHR1JFR0FURSwgIkRST1AgQUdHUkVHQVRFIiwgdHJ1ZSwgZmFsc2UsIGZh bHNlKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAppbmRleCBmMjI0NjcxODZlLi43OWFjNDA3NjhmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTY2MywzICsxNjYzLDY2IEBAIERS T1AgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iOwogRFJPUCBWQVJJQUJMRSA6IkRCTkFN RSIuOiJEQk5BTUUiLjoiREJOQU1FIjsKIERST1AgU0NIRU1BIDoiREJOQU1FIjsKIFJFU0VUIHNl YXJjaF9wYXRoOworLS0gbWVtb3J5IGNsZWFuaW5nIGJ5IERJU0NBUkQgY29tbWFuZAorQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKK0xFVCB2YXIxID0gJ0hlbGxvJzsKK1NFTEVDVCB2 YXIxOworIHZhcjEgIAorLS0tLS0tLQorIEhlbGxvCisoMSByb3cpCisKK0RJU0NBUkQgQUxMOwor U0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIAorKDEgcm93KQorCitMRVQgdmFyMSA9ICdB SE9KJzsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyBBSE9KCisoMSByb3cpCisKK0RJ U0NBUkQgVkFSSUFCTEVTOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIAorKDEgcm93 KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBpbml0aWFsIHRlc3Qgb2YgZGVidWcgcGdfc2Vz c2lvbl92YXJpYWJsZXMgZnVuY3Rpb24KKy0tIHNob3VsZCBiZSB6ZXJvIG5vdworRElTQ0FSRCBW QVJJQUJMRVM7CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwor IGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHZhcmNoYXI7CistLSBzaG91bGQgYmUgemVybyBzdGlsbAorU0VMRUNUIGNvdW50KCopIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEg cm93KQorCitMRVQgdmFyMSA9ICdBSE9KJzsKK1NFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2Vs ZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwgICAg ICB0eXBuYW1lICAgICAgfCBjYW5fc2VsZWN0IHwgY2FuX3VwZGF0ZSAKKy0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwgY2hhcmFjdGVy IHZhcnlpbmcgfCB0ICAgICAgICAgIHwgdAorKDEgcm93KQorCitESVNDQVJEIFZBUklBQkxFUzsK Ky0tIHNob3VsZCBiZSB6ZXJvIGFnYWluCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9u X3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBlNzIzNjBkNTI1Li4y OTU0NzU5YWFlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs CkBAIC0xMTc4LDMgKzExNzgsMzkgQEAgRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUi LjoiREJOQU1FIjsKIERST1AgU0NIRU1BIDoiREJOQU1FIjsKIAogUkVTRVQgc2VhcmNoX3BhdGg7 CisKKy0tIG1lbW9yeSBjbGVhbmluZyBieSBESVNDQVJEIGNvbW1hbmQKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIHZhcmNoYXI7CitMRVQgdmFyMSA9ICdIZWxsbyc7CitTRUxFQ1QgdmFyMTsKKwor RElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFyMTsKKworTEVUIHZhcjEgPSAnQUhPSic7CitTRUxFQ1Qg dmFyMTsKKworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJM RSB2YXIxOworCistLSBpbml0aWFsIHRlc3Qgb2YgZGVidWcgcGdfc2Vzc2lvbl92YXJpYWJsZXMg ZnVuY3Rpb24KKy0tIHNob3VsZCBiZSB6ZXJvIG5vdworRElTQ0FSRCBWQVJJQUJMRVM7CisKK1NF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIHZhcmNoYXI7CisKKy0tIHNob3VsZCBiZSB6ZXJvIHN0aWxsCitTRUxFQ1Qg Y291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitMRVQgdmFyMSA9ICdBSE9K JzsKKworU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxk IGJlIHplcm8gYWdhaW4KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCk7Ci0tIAoyLjQ4LjAKCg== --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Disposition: attachment; filename="v20250117-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8o920 RnJvbSA2NjU4NDM1ZTBjODI0Yjc0M2UzNWJjMmExM2EwM2UzZjFkM2Y5Y2VkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MjJdIFN0b3JhZ2UgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCBTUUwgaW50ZXJmYWNlCgpTZXNz aW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGEgZGVkaWNhdGVk IGhhc2ggdGFibGUuClRoZXkgYXJlIHNldCBieSB0aGUgTEVUIGNvbW1hbmQgYW5kIHJlYWQgYnkg dGhlIFNFTEVDVCBjb21tYW5kLgpUaGUgYWNjZXNzIHJpZ2h0cyBzaG91bGQgYmUgY2hlY2tlZC4K ClRoZSBpZGVudGlmaWVycyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgYWx3YXlzIGJlIHNo YWRvd2VkIGJ5IHBvc3NpYmxlCmNvbHVtbiBpZGVudGlmaWVyczogd2UgZG9uJ3Qgd2FudCB0byBi cmVhayBhbiBhcHBsaWNhdGlvbiBieSBjcmVhdGluZyBzb21lCmJhZGx5IG5hbWVkIHNlc3Npb24g dmFyaWFibGUuCgpUaGUgbGltaXRzIG9mIHRoaXMgcGF0Y2ggKHNvbHZlZCBieSBvdGhlciBwYXRj aGVzKToKCi0gc2Vzc2lvbiB2YXJpYWJsZXMgYmxvY2sgcGFyYWxsZWwgZXhlY3V0aW9uCi0gc2Vz c2lvbiB2YXJpYWJsZXMgYmxvY2tzIHNpbXBsZSBleHByZXNzaW9uIGV2YWx1YXRpb24gKGluIHBs cGdzcWwpCi0gU1FMIGZ1bmN0aW9ucyB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgaW5s aW5lZAotIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgKHVzYWdlIG9mIGRpcmVjdCBh Y2Nlc3MgdG8gZXhwcmVzcyBleGVjdXRvcikKLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkICh1c2FnZSBvZiBkaXJlY3QgYWNjZXNzIHRvIGV4cHJlc3MgZXhlY3V0b3IpCi0gbWVt b3J5IHVzZWQgYnkgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVsZWFzZWQKCklt cGxlbWVudGF0aW9ucyBvZiBFWFBMQUlOIExFVCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cwph cmUgaW4gc2VwYXJhdGUgcGF0Y2hlcyAoZm9yIGJldHRlciByZWFkYWJpbGl0eSkKLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsKIGRvYy9z cmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNjEgKwogZG9jL3Ny Yy9zZ21sL2Z1bmMuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogZG9jL3Ny Yy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNSArLQogZG9jL3Ny Yy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNiArCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsKIGRvYy9zcmMv c2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgIDEgKwogZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sICAgICAgICAgIHwgICAgMSArCiBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgICA1ICstCiBkb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAgfCAgICAxICsKIGRvYy9zcmMvc2dt bC9yZWYvbGV0LnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICAgOTYgKysKIGRvYy9zcmMvc2dt bC9yZWZlcmVuY2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQv Y2F0YWxvZy9kZXBlbmRlbmN5LmMgICAgICAgICAgICAgIHwgICAgNSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL25hbWVzcGFjZS5jICAgICAgICAgICAgICAgfCAgMjg5ICsrKysKIHNyYy9iYWNrZW5k L2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYyAgICAgICAgICAgICAgICB8ICAgMTAgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDUyOSArKysrKysrCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICAgMzIgKwogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgICA2NiArCiBzcmMvYmFja2VuZC9l eGVjdXRvci9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMgICAgICB8ICAxNzIgKysrCiBzcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgIDEwICsKIHNyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3BsYW5uZXIuYyAgICAgICAgICB8ICAgMzYgKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vc2V0cmVmcy5jICAgICAgICAgIHwgIDE1NiArKy0KIHNyYy9iYWNrZW5kL29w dGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jICAgICB8ICAgIDMgKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3V0aWwvY2xhdXNlcy5jICAgICAgICAgIHwgICAzMyArLQogc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgIDI3MiArKystCiBzcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgIDM5ICstCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfYWdnLmMgICAgICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICAyMjMgKystCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9tZXJnZS5jICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvdGNv cC9kZXN0LmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArCiBzcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsKIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAgICB8ICAgNDYgKwogc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgICA0MSArLQogc3JjL2JhY2tlbmQvdXRpbHMv Zm1nci9mbWdyLmMgICAgICAgICAgICAgICAgIHwgICAxMCArLQogc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICAxMiArLQogc3JjL2luY2x1ZGUvY2F0YWxv Zy9uYW1lc3BhY2UuaCAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMzAgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3Iv c3ZhcmlhYmxlUmVjZWl2ZXIuaCAgICAgIHwgICAyMiArCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVj bm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDE0ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMTcgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5v ZGVzLmggICAgICAgICAgICAgICAgIHwgICAxNCArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9k ZXMuaCAgICAgICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oICAgICAgICAgICAgICAgICB8ICAgMTQgKwogc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5t YWluLmggICAgICAgICAgICAgIHwgICAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0Lmgg ICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2Rl LmggICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0Lmgg ICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS90Y29wL2Rlc3QuaCAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAg ICAgICAgICAgICAgICB8ICAgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzLm91dCAgICB8IDEyMzIgKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA4ODMgKysrKysrKysrKysrCiBzcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgICA1ICsKIDU5IGZpbGVz IGNoYW5nZWQsIDQ0NjcgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAppbmRleCA3Nzc0MTlkYzdjLi4xMTA0ZDAwMzdmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTc5 NCw2ICs5Nzk0LDE5IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24g Y291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3BhcmE+PC9l bnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPnZhcmNyZWF0ZV9sc248L3N0cnVjdGZpZWxkPiA8dHlwZT5wZ19sc248L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBMU04gb2YgdGhlIHRyYW5z YWN0aW9uIHdoZXJlIHRoZSB2YXJpYWJsZSB3YXMgY3JlYXRlZC4KKyAgICAgICA8c3RydWN0Zmll bGQ+dmFyY3JlYXRlX2xzbjwvc3RydWN0ZmllbGQ+IGFuZAorICAgICAgIDxzdHJ1Y3RmaWVsZD5v aWQ8L3N0cnVjdGZpZWxkPiB0b2dldGhlciBmb3JtIHRoZSBhbGwtdGltZSB1bmlxdWUKKyAgICAg ICBpZGVudGlmaWVyICg8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gYWxvbmUgaXMgbm90 IGVub3VnaCwgc2luY2UKKyAgICAgICBvYmplY3QgaWRlbnRpZmllcnMgY2FuIGdldCByZXVzZWQp LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+bmFtZTwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9z cmMvc2dtbC9kZGwuc2dtbAppbmRleCA0Zjc5YzY3NmMzLi4zN2QyZmEwMWNiIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01 MzU3LDYgKzUzNTcsNjcgQEAgRVhQTEFJTiBTRUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVu dCBXSEVSRSBsb2dkYXRlICZndDs9IERBVEUgJzIwMDgtMDEtMDEnOwogICAgIFRoZSBzZXNzaW9u IHZhcmlhYmxlIGhvbGRzIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcyB2YWx1ZSBpcyBw cml2YXRlCiAgICAgdG8gZWFjaCBzZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVuIHRoZSBzZXNz aW9uIGVuZHMuCiAgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSB2YWx1ZSBvZiBhIHNl c3Npb24gdmFyaWFibGUgaXMgc2V0IHdpdGggdGhlIFNRTCBzdGF0ZW1lbnQKKyAgICA8Y29tbWFu ZD5MRVQ8L2NvbW1hbmQ+LiAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUg cmV0cmlldmVkCisgICAgd2l0aCB0aGUgU1FMIHN0YXRlbWVudCA8Y29tbWFuZD5TRUxFQ1Q8L2Nv bW1hbmQ+LgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsK K0xFVCB2YXIxID0gY3VycmVudF9kYXRlOworU0VMRUNUIHZhcjE7Cis8L3Byb2dyYW1saXN0aW5n PgorCisgICAgb3IKKworPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5j dXJyZW50X3VzZXJfaWQgQVMgaW50ZWdlcjsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwdWJs aWMuY3VycmVudF91c2VyX2lkIFRPIFBVQkxJQzsKK0xFVCBjdXJyZW50X3VzZXJfaWQgPSAoU0VM RUNUIGlkIEZST00gdXNlcnMgV0hFUkUgdXNlbmFtZSA9IHNlc3Npb25fdXNlcik7CitTRUxFQ1Qg Y3VycmVudF91c2VyX2lkOworPC9wcm9ncmFtbGlzdGluZz4KKyAgIDwvcGFyYT4KKworICAgPHBh cmE+CisgICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2NhbCB0byB0aGUg Y3VycmVudCBzZXNzaW9uLiBSZXRyaWV2aW5nCisgICAgYSB2YXJpYWJsZSdzIHZhbHVlIHJldHVy bnMgYSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiwgdW5sZXNzIGl0cyB2YWx1ZSBoYXMKKyAgICBi ZWVuIHNldCB0byBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHVzaW5nIHRo ZQorICAgIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gIFNlc3Npb24gdmFyaWFibGVz IGFyZSBub3QgdHJhbnNhY3Rpb25hbDoKKyAgICBhbnkgY2hhbmdlcyBtYWRlIHRvIHRoZSB2YWx1 ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaW4gYSB0cmFuc2FjdGlvbiB3b24ndAorICAgIGJlIHVu ZG9uZSBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgcm9sbGVkIGJhY2sgKGp1c3QgbGlrZSB2YXJpYWJs ZXMgaW4KKyAgICBwcm9jZWR1cmFsIGxhbmd1YWdlcykuICBTZXNzaW9uIHZhcmlhYmxlcyB0aGVt c2VsdmVzIGFyZSBwZXJzaXN0ZW50LCBidXQKKyAgICB0aGVpciB2YWx1ZXMgYXJlIG5laXRoZXIg cGVyc2lzdGVudCBub3Igc2hhcmVkIChsaWtlIHRoZSBjb250ZW50IG9mCisgICAgdGVtcG9yYXJ5 IHRhYmxlcykuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEluc2lkZSBhIHF1ZXJ5IG9y IGFuIGV4cHJlc3Npb24sIGEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUKKyAgICA8cXVvdGU+c2hh ZG93ZWQ8L3F1b3RlPiBieSBhIGNvbHVtbiB3aXRoIHRoZSBzYW1lIG5hbWUuICBTaW1pbGFybHks IHRoZQorICAgIG5hbWUgb2YgYSBmdW5jdGlvbiBvciBwcm9jZWR1cmUgYXJndW1lbnQgb3IgYSBQ TC9wZ1NRTCB2YXJpYWJsZSAoc2VlCisgICAgPHhyZWYgbGlua2VuZD0icGxwZ3NxbC1kZWNsYXJh dGlvbnMiLz4pIGNhbiBzaGFkb3cgYSBzZXNzaW9uIHZhcmlhYmxlCisgICAgaW4gdGhlIHJvdXRp bmUncyBib2R5LiAgU3VjaCBjb2xsaXNpb25zIG9mIGlkZW50aWZpZXJzIGNhbiBiZSByZXNvbHZl ZAorICAgIGJ5IHVzaW5nIHF1YWxpZmllZCBpZGVudGlmaWVyczogU2Vzc2lvbiB2YXJpYWJsZXMg Y2FuIGJlIHF1YWxpZmllZCB3aXRoCisgICAgdGhlIHNjaGVtYSBuYW1lLCBjb2x1bW5zIGNhbiB1 c2UgdGFibGUgYWxpYXNlcywgcm91dGluZSB2YXJpYWJsZXMgY2FuIHVzZQorICAgIGJsb2NrIGxh YmVscywgYW5kIHJvdXRpbmUgYXJndW1lbnRzIGNhbiB1c2UgdGhlIHJvdXRpbmUgbmFtZS4KKzxw cm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSBuYW1lIEFTIHRleHQ7CitMRVQgbmFtZSA9 ICdKb2huJzsKKworQ1JFQVRFIFRBQkxFIGZvbyhuYW1lIHRleHQpOworSU5TRVJUIElOVE8gZm9v IFZBTFVFUygnQWxpY2UnKTsKKworLS0gdmFyaWFibGUgbmFtZSBpcyBzaGFkb3dlZAorU0VMRUNU IG5hbWUgRlJPTSBmb287IAorPC9wcm9ncmFtbGlzdGluZz4KKworICAgd2hpY2ggcmV0dXJuczoK KworPHByb2dyYW1saXN0aW5nPgorIG5hbWUgIAorLS0tLS0tLQorIEFsaWNlCis8L3Byb2dyYW1s aXN0aW5nPgorICAgPC9wYXJhPgogICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJkZGwtb3RoZXJz Ij4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVu Yy5zZ21sCmluZGV4IDNmNWQ4Yzk3N2QuLjljYTJkN2M0OWMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMjU1NDQsOCAr MjU1NDQsOCBAQCBTRUxFQ1QgaGFzX2Z1bmN0aW9uX3ByaXZpbGVnZSgnam9ldXNlcicsICdteWZ1 bmMoaW50LCB0ZXh0KScsICdleGVjdXRlJyk7CiAgICAgICAgICd0JyBmb3IgPGxpdGVyYWw+VEFC TEVTUEFDRTwvbGl0ZXJhbD4sCiAgICAgICAgICdGJyBmb3IgPGxpdGVyYWw+Rk9SRUlHTiBEQVRB IFdSQVBQRVI8L2xpdGVyYWw+LAogICAgICAgICAnUycgZm9yIDxsaXRlcmFsPkZPUkVJR04gU0VS VkVSPC9saXRlcmFsPiwKLSAgICAgICAgb3IKLSAgICAgICAgJ1QnIGZvciA8bGl0ZXJhbD5UWVBF PC9saXRlcmFsPiBvciA8bGl0ZXJhbD5ET01BSU48L2xpdGVyYWw+LgorICAgICAgICAnVCcgZm9y IDxsaXRlcmFsPlRZUEU8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPkRPTUFJTjwvbGl0ZXJhbD4gb3IK KyAgICAgICAgJ1YnIGZvciA8bGl0ZXJhbD5TRVNTSU9OIFZBUklBQkxFPC9saXRlcmFsPi4KICAg ICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgIDwvcm93PgogCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvZ2xvc3Nhcnkuc2dtbCBiL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCmluZGV4IGQw Y2I1Mzc2M2EuLjdiYzNmYzNiYjAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCkBAIC0xNjcwLDggKzE2NzAsOSBA QAogICAgIDxwYXJhPgogICAgICBBIHBlcnNpc3RlbnQgZGF0YWJhc2Ugb2JqZWN0IHRoYXQgaG9s ZHMgYSB2YWx1ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMKICAgICAgdmFsdWUgaXMgcHJpdmF0 ZSB0byBlYWNoIHNlc3Npb24gYW5kIGlzIHJlbGVhc2VkIHdoZW4gdGhlIHNlc3Npb24gZW5kcy4K LSAgICAgUmVhZCBvciB3cml0ZSBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgaXMgY29udHJv bGxlZCBieSBwcml2aWxlZ2VzLAotICAgICBzaW1pbGFyIHRvIG90aGVyIGRhdGFiYXNlIG9iamVj dHMuCisgICAgIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGlzIG51 bGwuICBSZWFkIG9yIHdyaXRlIGFjY2VzcworICAgICB0byBzZXNzaW9uIHZhcmlhYmxlcyBpcyBj b250cm9sbGVkIGJ5IHByaXZpbGVnZXMsIHNpbWlsYXIgdG8gb3RoZXIgZGF0YWJhc2UKKyAgICAg b2JqZWN0cy4KICAgICA8L3BhcmE+CiAgICAgPHBhcmE+CiAgICAgIEZvciBtb3JlIGluZm9ybWF0 aW9uLCBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+LgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwu c2dtbAppbmRleCAxY2U5YWJmODZmLi42ODNkZWRlNmFkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcGFyYWxsZWwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbApAQCAtNTE1 LDYgKzUxNSwxMiBAQCBFWFBMQUlOIFNFTEVDVCAqIEZST00gcGdiZW5jaF9hY2NvdW50cyBXSEVS RSBmaWxsZXIgTElLRSAnJXglJzsKICAgICAgICAgUGxhbiBub2RlcyB0aGF0IHJlZmVyZW5jZSBh IGNvcnJlbGF0ZWQgPGxpdGVyYWw+U3ViUGxhbjwvbGl0ZXJhbD4uCiAgICAgICA8L3BhcmE+CiAg ICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgICBQ bGFuIG5vZGVzIHRoYXQgdXNlIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgogICA8L2l0ZW1pemVkbGlzdD4KIAogIDxzZWN0MiBpZD0icGFyYWxsZWwt bGFiZWxpbmciPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbCBiL2RvYy9z cmMvc2dtbC9wbHBnc3FsLnNnbWwKaW5kZXggNzhlNDk4MzEzOS4uYmZiZmY5YWI3NCAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcGxwZ3Nx bC5zZ21sCkBAIC02MDM0LDYgKzYwMzQsMjAgQEAgJCQgTEFOR1VBR0UgcGxwZ3NxbCBTVFJJQ1Qg SU1NVVRBQkxFOwogPC9wcm9ncmFtbGlzdGluZz4KICAgICA8L3BhcmE+CiAgICA8L3NlY3QzPgor CisgICA8c2VjdDMgaWQ9InBscGdzcWwtcG9ydGluZy1wYWNrYWdlLXZhcmlhYmxlcyI+CisgICAg PHRpdGxlPjxjb21tYW5kPlBhY2thZ2VzIGFuZCBwYWNrYWdlIHZhcmlhYmxlczwvY29tbWFuZD48 L3RpdGxlPgorCisgICAgPHBhcmE+CisgICAgIFRoZSA8YXBwbGljYXRpb24+UEwvcGdTUUw8L2Fw cGxpY2F0aW9uPiBsYW5ndWFnZSBoYXMgbm8gcGFja2FnZXMsIGFuZAorICAgICB0aGVyZWZvcmUg bm8gcGFja2FnZSB2YXJpYWJsZXMgb3IgcGFja2FnZSBjb25zdGFudHMuCisgICAgIFlvdSBjYW4g Y29uc2lkZXIgdHJhbnNsYXRpbmcgYW4gT3JhY2xlIHBhY2thZ2UgaW50byBhIHNjaGVtYSBpbgor ICAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LiAgUGFja2FnZSBmdW5j dGlvbnMgYW5kIHByb2NlZHVyZXMKKyAgICAgd291bGQgdGhlbiBiZWNvbWUgZnVuY3Rpb25zIGFu ZCBwcm9jZWR1cmVzIGluIHRoYXQgc2NoZW1hLCBhbmQgcGFja2FnZQorICAgICB2YXJpYWJsZXMg Y291bGQgYmUgdHJhbnNsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGF0IHNjaGVtYS4K KyAgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4pLgorICAg IDwvcGFyYT4KKyAgIDwvc2VjdDM+CiAgIDwvc2VjdDI+CiAKICAgPHNlY3QyIGlkPSJwbHBnc3Fs LXBvcnRpbmctYXBwZW5kaXgiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxl cy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCmluZGV4IDJmNjdkZTNlMjEu LmNjM2JkNWFiNTQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTE1OCw2ICsxNTgsNyBAQCBD b21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9y eS4KIDwhRU5USVRZIGdyYW50ICAgICAgICAgICAgICBTWVNURU0gImdyYW50LnNnbWwiPgogPCFF TlRJVFkgaW1wb3J0Rm9yZWlnblNjaGVtYSBTWVNURU0gImltcG9ydF9mb3JlaWduX3NjaGVtYS5z Z21sIj4KIDwhRU5USVRZIGluc2VydCAgICAgICAgICAgICBTWVNURU0gImluc2VydC5zZ21sIj4K KzwhRU5USVRZIGxldCAgICAgICAgICAgICAgICBTWVNURU0gImxldC5zZ21sIj4KIDwhRU5USVRZ IGxpc3RlbiAgICAgICAgICAgICBTWVNURU0gImxpc3Rlbi5zZ21sIj4KIDwhRU5USVRZIGxvYWQg ICAgICAgICAgICAgICBTWVNURU0gImxvYWQuc2dtbCI+CiA8IUVOVElUWSBsb2NrICAgICAgICAg ICAgICAgU1lTVEVNICJsb2NrLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9h bHRlcl92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21s CmluZGV4IDk2ZDI1ODY0MjMuLjIyMWE2OTk0NjkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Zhcmlh YmxlLnNnbWwKQEAgLTE3Myw2ICsxNzMsNyBAQCBBTFRFUiBWQVJJQUJMRSBib28gU0VUIFNDSEVN QSBwcml2YXRlOwogICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgogICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KICAgIDxtZW1iZXI+PHhy ZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwvc2ltcGxlbGlzdD4KICA8L3JlZnNl Y3QxPgogPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zh cmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4 IDZlOTg4ZjJlNDcuLmNkOWZmNjM5NzUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUu c2dtbApAQCAtMTIwLDkgKzEyMCwxMSBAQCBDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYgogICA8dGl0 bGU+RXhhbXBsZXM8L3RpdGxlPgogCiAgIDxwYXJhPgotICAgQ3JlYXRlIGFuIGRhdGUgc2Vzc2lv biB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFsPjoKKyAgIENyZWF0ZSBhIHNlc3Npb24g dmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD4gb2YgZGF0YSB0eXBlIGRhdGU6CiA8cHJv Z3JhbWxpc3Rpbmc+CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBkYXRlOworTEVUIHZhcjEgPSBj dXJyZW50X2RhdGU7CitTRUxFQ1QgdmFyMTsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgIDwvcGFyYT4K IApAQCAtMTQzLDYgKzE0NSw3IEBAIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRhdGU7CiAgIDxz aW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1h bHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1k cm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxl dCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2Ryb3BfdmFyaWFibGUuc2dtbAppbmRleCA1YmRiMzU2MGYwLi42Nzk4OGI1ZmNkIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbApAQCAtMTExLDYgKzExMSw3IEBAIERST1AgVkFSSUFC TEUgdmFyMTsKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KICAgIDxtZW1iZXI+PHhyZWYg bGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KICAgIDxtZW1iZXI+PHhyZWYg bGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1sZXQiLz48L21lbWJlcj4KICAgPC9zaW1wbGVsaXN0PgogIDwvcmVmc2Vj dDE+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2xldC5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjAw ZjliZWE5MWYKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sCkBA IC0wLDAgKzEsOTYgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKK1Bvc3RncmVT UUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWxldCI+CisgPGluZGV4 dGVybSB6b25lPSJzcWwtbGV0Ij4KKyAgPHByaW1hcnk+TEVUPC9wcmltYXJ5PgorIDwvaW5kZXh0 ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFy eT4KKyAgPHNlY29uZGFyeT5jaGFuZ2luZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisg PHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkxFVDwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZv bG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1l bnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5h bWU+TEVUPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5jaGFuZ2UgYSBzZXNzaW9uIHZhcmlhYmxl J3MgdmFsdWU8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2 PgorPHN5bm9wc2lzPgorTEVUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9u X3ZhcmlhYmxlPC9yZXBsYWNlYWJsZT4gPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ c3FsX2V4cHJlc3Npb248L3JlcGxhY2VhYmxlPgorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lz ZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxw YXJhPgorICAgVGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZCBhc3NpZ25zIGEgdmFs dWUgdG8gdGhlIHNwZWNpZmllZCBzZXNzaW9uCisgICB2YXJpYWJsZS4KKyAgPC9wYXJhPgorCisg PC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgor CisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3ZhcmlhYmxlPC9yZXBsYWNlYWJsZT48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBz ZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFy bGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5zcWxfZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAg IDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBBbiBhcmJpdHJhcnkgU1FMIGV4cHJlc3Np b24uICBUaGUgcmVzdWx0IG11c3QgYmUgb2YgYSBkYXRhIHR5cGUgdGhhdCBjYW4KKyAgICAgIGJl IGNhc3QgdG8gdGhlIHR5cGUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgaW4gYW4gYXNzaWdubWVu dC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+ RXhhbXBsZXM8L3RpdGxlPgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIG15dmFy IEFTIGludGVnZXI7CitMRVQgbXl2YXIgPSAxMDsKK0xFVCBteXZhciA9IChTRUxFQ1Qgc3VtKHZh bCkgRlJPTSB0YWIpOworPC9wcm9ncmFtbGlzdGluZz4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUg PGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBpcyBhIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9k dWN0bmFtZT4KKyAgIGV4dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVm c2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0i aW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48 L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+ PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48 L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZmVy ZW5jZS5zZ21sCmluZGV4IDI1NTc4ZjM5NDYuLjEzZTRhZGM1ZGYgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwK QEAgLTE4Niw2ICsxODYsNyBAQAogICAgJmdyYW50OwogICAgJmltcG9ydEZvcmVpZ25TY2hlbWE7 CiAgICAmaW5zZXJ0OworICAgJmxldDsKICAgICZsaXN0ZW47CiAgICAmbG9hZDsKICAgICZsb2Nr OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwppbmRleCA5ZTBmNjQ4Yjc0Li45MGM5ZThiYjI1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtMTg2NCw2ICsxODY0LDExIEBAIGZpbmRfZXhw cl9yZWZlcmVuY2VzX3dhbGtlcihOb2RlICpub2RlLAogCXsKIAkJUGFyYW0JICAgKnBhcmFtID0g KFBhcmFtICopIG5vZGU7CiAKKwkJLyogYSB2YXJpYWJsZSBwYXJhbWV0ZXIgZGVwZW5kcyBvbiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9W QVJJQUJMRSkKKwkJCWFkZF9vYmplY3RfYWRkcmVzcyhWYXJpYWJsZVJlbGF0aW9uSWQsIHBhcmFt LT5wYXJhbXZhcmlkLCAwLAorCQkJCQkJCSAgIGNvbnRleHQtPmFkZHJzKTsKKwogCQkvKiBBIHBh cmFtZXRlciBtdXN0IGRlcGVuZCBvbiB0aGUgcGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KIAkJYWRk X29iamVjdF9hZGRyZXNzKFR5cGVSZWxhdGlvbklkLCBwYXJhbS0+cGFyYW10eXBlLCAwLAogCQkJ CQkJICAgY29udGV4dC0+YWRkcnMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggNDMwN2Nh ZDE1Yy4uYmVhZmVlMmEzNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3Bh Y2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC0zNDk3LDYgKzM0 OTcsMjk1IEBAIE5hbWVzRnJvbUxpc3QoTGlzdCAqbmFtZXMpCiAJcmV0dXJuIHJlc3VsdDsKIH0K IAorLyogLS0tLS0KKyAqIElkZW50aWZ5VmFyaWFibGUgLSB0cnkgdG8gZmluZCBhIHZhcmlhYmxl IGZyb20gYSBsaXN0IG9mIGlkZW50aWZpZXJzCisgKgorICogUmV0dXJucyB0aGUgT0lEIG9mIHRo ZSB2YXJpYWJsZSBmb3VuZCwgb3IgSW52YWxpZE9pZC4KKyAqCisgKiAibmFtZXMiIGlzIGEgbGlz dCBvZiB1cCB0byBmb3VyIGlkZW50aWZpZXJzOyBwb3NzaWJsZSBtZWFuaW5ncyBhcmU6CisgKiAt IHZhcmlhYmxlICAoc2VhcmNoZWQgb24gdGhlIHNlYXJjaF9wYXRoKQorICogLSBzY2hlbWEudmFy aWFibGUKKyAqIC0gdmFyaWFibGUuYXR0cmlidXRlICAoc2VhcmNoZWQgb24gdGhlIHNlYXJjaF9w YXRoKQorICogLSBzY2hlbWEudmFyaWFibGUuYXR0cmlidXRlCisgKiAtIGRhdGFiYXNlLnNjaGVt YS52YXJpYWJsZQorICogLSBkYXRhYmFzZS5zY2hlbWEudmFyaWFibGUuYXR0cmlidXRlCisgKgor ICogSWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSB3YXkgdG8gaWRlbnRpZnkgYSB2YXJpYWJsZSwg Im5vdF91bmlxdWUiIHdpbGwgYmUKKyAqIHNldCB0byB0cnVlLgorICoKKyAqIFVubGVzcyAibm9l cnJvciIgaXMgdHJ1ZSwgYW4gZXJyb3IgaXMgcmFpc2VkIGlmIHRoZXJlIGFyZSBtb3JlIHRoYW4g Zm91cgorICogIGlkZW50aWZpZXJzIGluIHRoZSBsaXN0LCBvciBpZiB0aGUgbmFtZWQgZGF0YWJh c2UgaXMgbm90IHRoZSBjdXJyZW50IG9uZS4KKyAqIFRoaXMgaXMgdXNlZnVsIGlmIHdlIHdhbnQg dG8gaWRlbnRpZnkgYSBzaGFkb3dlZCB2YXJpYWJsZS4KKyAqCisgKiBJZiBhbiBhdHRyaWJ1dGUg aXMgaWRlbnRpZmllZCwgaXQgaXMgc3RvcmVkIGluICJhdHRybmFtZSIsIG90aGVyd2lzZSB0aGUK KyAqIHBhcmFtZXRlciBpcyBzZXQgdG8gTlVMTC4KKyAqCisgKiBUaGUgaWRlbnRpZmllZCBzZXNz aW9uIHZhcmlhYmxlIHdpbGwgYmUgbG9ja2VkIHdpdGggYW4gQWNjZXNzU2hhcmVMb2NrLgorICog LS0tLS0KKyAqLworT2lkCitJZGVudGlmeVZhcmlhYmxlKExpc3QgKm5hbWVzLCBjaGFyICoqYXR0 cm5hbWUsIGJvb2wgKm5vdF91bmlxdWUsIGJvb2wgbm9lcnJvcikKK3sKKwlPaWQJCQl2YXJpZCA9 IEludmFsaWRPaWQ7CisJT2lkCQkJb2xkX3ZhcmlkID0gSW52YWxpZE9pZDsKKwl1aW50NjQJCWlu dmFsX2NvdW50OworCWJvb2wJCXJldHJ5ID0gZmFsc2U7CisKKwkvKgorCSAqIERETCBvcGVyYXRp b25zIGNhbiBjaGFuZ2UgdGhlIHJlc3VsdHMgb2YgYSBuYW1lIGxvb2t1cC4gIFNpbmNlIGFsbCBz dWNoCisJICogb3BlcmF0aW9ucyB3aWxsIGdlbmVyYXRlIGludmFsaWRhdGlvbiBtZXNzYWdlcywg d2Uga2VlcCB0cmFjayBvZgorCSAqIHdoZXRoZXIgYW55IHN1Y2ggbWVzc2FnZXMgc2hvdyB1cCB3 aGlsZSB3ZSdyZSBwZXJmb3JtaW5nIHRoZSBvcGVyYXRpb24sCisJICogYW5kIHJldHJ5IHVudGls IGVpdGhlciAoMSkgbm8gbW9yZSBpbnZhbGlkYXRpb24gbWVzc2FnZXMgc2hvdyB1cCBvciAoMikK KwkgKiB0aGUgYW5zd2VyIGRvZXNuJ3QgY2hhbmdlLgorCSAqLworCWZvciAoOzspCisJeworCQlO b2RlCSAgICpmaWVsZDEgPSBOVUxMOworCQlOb2RlCSAgICpmaWVsZDIgPSBOVUxMOworCQlOb2Rl CSAgICpmaWVsZDMgPSBOVUxMOworCQlOb2RlCSAgICpmaWVsZDQgPSBOVUxMOworCQljaGFyCSAg ICphID0gTlVMTDsKKwkJY2hhcgkgICAqYiA9IE5VTEw7CisJCWNoYXIJICAgKmMgPSBOVUxMOwor CQljaGFyCSAgICpkID0gTlVMTDsKKwkJT2lkCQkJdmFyb2lkX3dpdGhvdXRfYXR0ciA9IEludmFs aWRPaWQ7CisJCU9pZAkJCXZhcm9pZF93aXRoX2F0dHIgPSBJbnZhbGlkT2lkOworCisJCSpub3Rf dW5pcXVlID0gZmFsc2U7CisJCSphdHRybmFtZSA9IE5VTEw7CisJCXZhcmlkID0gSW52YWxpZE9p ZDsKKworCQlpbnZhbF9jb3VudCA9IFNoYXJlZEludmFsaWRNZXNzYWdlQ291bnRlcjsKKworCQlz d2l0Y2ggKGxpc3RfbGVuZ3RoKG5hbWVzKSkKKwkJeworCQkJY2FzZSAxOgorCQkJCWZpZWxkMSA9 IGxpbml0aWFsKG5hbWVzKTsKKworCQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKwor CQkJCXZhcmlkID0gTG9va3VwVmFyaWFibGUoTlVMTCwgc3RyVmFsKGZpZWxkMSksIHRydWUpOwor CQkJCWJyZWFrOworCisJCQljYXNlIDI6CisJCQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMpOwor CQkJCWZpZWxkMiA9IGxzZWNvbmQobmFtZXMpOworCisJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0 cmluZykpOworCQkJCWEgPSBzdHJWYWwoZmllbGQxKTsKKworCQkJCWlmIChJc0EoZmllbGQyLCBT dHJpbmcpKQorCQkJCXsKKwkJCQkJLyogd2hlbiBib3RoIGZpZWxkcyBhcmUgb2Ygc3RyaW5nIHR5 cGUgKi8KKwkJCQkJYiA9IHN0clZhbChmaWVsZDIpOworCisJCQkJCS8qCisJCQkJCSAqIGEuYiBj YW4gbWVhbiAic2NoZW1hIi4idmFyaWFibGUiIG9yCisJCQkJCSAqICJ2YXJpYWJsZSIuImF0dHJp YnV0ZSIuICBDaGVjayBib3RoIHZhcmlhbnRzLCBhbmQKKwkJCQkJICogcmV0dXJucyBJbnZhbGlk T2lkIHdpdGggbm90X3VuaXF1ZSBmbGFnLCB3aGVuIGJvdGgKKwkJCQkJICogaW50ZXJwcmV0YXRp b25zIGFyZSBwb3NzaWJsZS4KKwkJCQkJICovCisJCQkJCXZhcm9pZF93aXRob3V0X2F0dHIgPSBM b29rdXBWYXJpYWJsZShhLCBiLCB0cnVlKTsKKwkJCQkJdmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1 cFZhcmlhYmxlKE5VTEwsIGEsIHRydWUpOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQkv KiB0aGUgbGFzdCBmaWVsZCBvZiBsaXN0IGNhbiBiZSBzdGFyIHRvbyAqLworCQkJCQlBc3NlcnQo SXNBKGZpZWxkMiwgQV9TdGFyKSk7CisKKwkJCQkJLyoKKwkJCQkJICogVGhlIHN5bnRheCBpZGVu dC4qIGlzIHVzZWQgb25seSBieSByZWxhdGlvbiBhbGlhc2VzLAorCQkJCQkgKiBhbmQgdGhlbiB0 aGlzIGlkZW50aWZpZXIgY2Fubm90IGJlIGEgcmVmZXJlbmNlIHRvCisJCQkJCSAqIHNlc3Npb24g dmFyaWFibGUuCisJCQkJCSAqLworCQkJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJCQl9CisKKwkJ CQlpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSAmJiBPaWRJc1ZhbGlkKHZhcm9p ZF93aXRoX2F0dHIpKQorCQkJCXsKKwkJCQkJKm5vdF91bmlxdWUgPSB0cnVlOworCQkJCQl2YXJp ZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJfQorCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQo dmFyb2lkX3dpdGhvdXRfYXR0cikpCisJCQkJeworCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0 X2F0dHI7CisJCQkJfQorCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikp CisJCQkJeworCQkJCQkqYXR0cm5hbWUgPSBiOworCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRoX2F0 dHI7CisJCQkJfQorCQkJCWJyZWFrOworCisJCQljYXNlIDM6CisJCQkJeworCQkJCQlib29sCQlm aWVsZDFfaXNfY2F0YWxvZyA9IGZhbHNlOworCisJCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVz KTsKKwkJCQkJZmllbGQyID0gbHNlY29uZChuYW1lcyk7CisJCQkJCWZpZWxkMyA9IGx0aGlyZChu YW1lcyk7CisKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCQlBc3NlcnQo SXNBKGZpZWxkMiwgU3RyaW5nKSk7CisKKwkJCQkJYSA9IHN0clZhbChmaWVsZDEpOworCQkJCQli ID0gc3RyVmFsKGZpZWxkMik7CisKKwkJCQkJaWYgKElzQShmaWVsZDMsIFN0cmluZykpCisJCQkJ CXsKKwkJCQkJCWMgPSBzdHJWYWwoZmllbGQzKTsKKworCQkJCQkJLyoKKwkJCQkJCSAqIGEuYi5j IGNhbiBtZWFuIGNhdGFsb2cuc2NoZW1hLnZhcmlhYmxlIG9yCisJCQkJCQkgKiBzY2hlbWEudmFy aWFibGUuYXR0cmlidXRlLgorCQkJCQkJICoKKwkJCQkJCSAqIENoZWNrIGJvdGggdmFyaWFudHMs IGFuZCBzZXQgbm90X3VuaXF1ZSBmbGFnLCB3aGVuCisJCQkJCQkgKiBib3RoIGludGVycHJldGF0 aW9ucyBhcmUgcG9zc2libGUuCisJCQkJCQkgKgorCQkJCQkJICogV2hlbiB0aGlyZCBub2RlIGlz IHN0YXIsIG9ubHkgcG9zc2libGUKKwkJCQkJCSAqIGludGVycHJldGF0aW9uIGlzIHNjaGVtYS52 YXJpYWJsZS4qLCBidXQgdGhpcworCQkJCQkJICogcGF0dGVybiBpcyBub3Qgc3VwcG9ydGVkIG5v dy4KKwkJCQkJCSAqLworCQkJCQkJdmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGEs IGIsIHRydWUpOworCisJCQkJCQkvKgorCQkJCQkJICogY2hlY2sgcGF0dGVybiBjYXRhbG9nLnNj aGVtYS52YXJpYWJsZSBvbmx5IHdoZW4KKwkJCQkJCSAqIHRoZXJlIGlzIHBvc3NpYmlsaXR5IHRv IHN1Y2Nlc3MuCisJCQkJCQkgKi8KKwkJCQkJCWlmIChzdHJjbXAoYSwgZ2V0X2RhdGFiYXNlX25h bWUoTXlEYXRhYmFzZUlkKSkgPT0gMCkKKwkJCQkJCXsKKwkJCQkJCQlmaWVsZDFfaXNfY2F0YWxv ZyA9IHRydWU7CisJCQkJCQkJdmFyb2lkX3dpdGhvdXRfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGIs IGMsIHRydWUpOworCQkJCQkJfQorCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJQXNz ZXJ0KElzQShmaWVsZDMsIEFfU3RhcikpOworCQkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJ CX0KKworCQkJCQlpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSAmJiBPaWRJc1Zh bGlkKHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCQl7CisJCQkJCQkqbm90X3VuaXF1ZSA9IHRydWU7 CisJCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJCX0KKwkJCQkJZWxzZSBp ZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSkKKwkJCQkJeworCQkJCQkJdmFyaWQg PSB2YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCQl9CisJCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQo dmFyb2lkX3dpdGhfYXR0cikpCisJCQkJCXsKKwkJCQkJCSphdHRybmFtZSA9IGM7CisJCQkJCQl2 YXJpZCA9IHZhcm9pZF93aXRoX2F0dHI7CisJCQkJCX0KKworCQkJCQkvKgorCQkJCQkgKiBXaGVu IHdlIGRpZG4ndCBmaW5kIHZhcmlhYmxlLCB3ZSBjYW4gKHdoZW4gaXQgaXMKKwkJCQkJICogYWxs b3dlZCkgcmFpc2UgY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlIGVycm9yLgorCQkJCQkgKi8KKwkJ CQkJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSAmJiAhbm9lcnJvciAmJiAhZmllbGQxX2lzX2NhdGFs b2cpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNlIHJlZmVy ZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogJXMiLAorCQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJp bmcobmFtZXMpKSkpOworCQkJCX0KKwkJCQlicmVhazsKKworCQkJY2FzZSA0OgorCQkJCXsKKwkJ CQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMpOworCQkJCQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVz KTsKKwkJCQkJZmllbGQzID0gbHRoaXJkKG5hbWVzKTsKKwkJCQkJZmllbGQ0ID0gbGZvdXJ0aChu YW1lcyk7CisKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCQlBc3NlcnQo SXNBKGZpZWxkMiwgU3RyaW5nKSk7CisJCQkJCUFzc2VydChJc0EoZmllbGQzLCBTdHJpbmcpKTsK KworCQkJCQlhID0gc3RyVmFsKGZpZWxkMSk7CisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsKKwkJ CQkJYyA9IHN0clZhbChmaWVsZDMpOworCisJCQkJCS8qCisJCQkJCSAqIEluIHRoaXMgY2FzZSwg ImEiIGlzIHVzZWQgYXMgY2F0YWxvZyBuYW1lIC0gY2hlY2sgaXQuCisJCQkJCSAqLworCQkJCQlp ZiAoc3RyY21wKGEsIGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpICE9IDApCisJCQkJ CXsKKwkJCQkJCWlmICghbm9lcnJvcikKKwkJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJ KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCQkJIGVycm1z ZygiY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAlcyIsCisJ CQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOworCQkJCQl9CisKKwkJCQkJaWYg KElzQShmaWVsZDQsIFN0cmluZykpCisJCQkJCXsKKwkJCQkJCWQgPSBzdHJWYWwoZmllbGQ0KTsK KwkJCQkJfQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCUFzc2VydChJc0EoZmllbGQ0LCBBX1N0 YXIpKTsKKwkJCQkJCXJldHVybiBJbnZhbGlkT2lkOworCQkJCQl9CisKKwkJCQkJKmF0dHJuYW1l ID0gZDsKKwkJCQkJdmFyaWQgPSBMb29rdXBWYXJpYWJsZShiLCBjLCB0cnVlKTsKKwkJCQl9CisJ CQkJYnJlYWs7CisKKwkJCWRlZmF1bHQ6CisJCQkJaWYgKCFub2Vycm9yKQorCQkJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkg ZXJybXNnKCJpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTog JXMiLAorCQkJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQkJcmV0dXJuIElu dmFsaWRPaWQ7CisJCX0KKworCQkvKgorCQkgKiBJZiwgdXBvbiByZXRyeSwgd2UgZ2V0IGJhY2sg dGhlIHNhbWUgT0lEIHdlIGRpZCBsYXN0IHRpbWUsIHRoZW4gdGhlCisJCSAqIGludmFsaWRhdGlv biBtZXNzYWdlcyB3ZSBwcm9jZXNzZWQgZGlkIG5vdCBjaGFuZ2UgdGhlIGZpbmFsIGFuc3dlci4K KwkJICogU28gd2UncmUgZG9uZS4KKwkJICoKKwkJICogSWYgd2UgZ290IGEgZGlmZmVyZW50IE9J RCwgd2UndmUgbG9ja2VkIHRoZSB2YXJpYWJsZSB0aGF0IHVzZWQgdG8KKwkJICogaGF2ZSB0aGlz IG5hbWUgcmF0aGVyIHRoYW4gdGhlIG9uZSB0aGF0IGRvZXMgbm93LiAgU28gcmVsZWFzZSB0aGUK KwkJICogbG9jay4KKwkJICovCisJCWlmIChyZXRyeSkKKwkJeworCQkJaWYgKG9sZF92YXJpZCA9 PSB2YXJpZCkKKwkJCQlicmVhazsKKworCQkJaWYgKE9pZElzVmFsaWQob2xkX3ZhcmlkKSkKKwkJ CQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIG9sZF92YXJpZCwgMCwg QWNjZXNzU2hhcmVMb2NrKTsKKwkJfQorCisJCS8qCisJCSAqIExvY2sgdGhlIHZhcmlhYmxlLiAg VGhpcyB3aWxsIGFsc28gYWNjZXB0IGFueSBwZW5kaW5nIGludmFsaWRhdGlvbgorCQkgKiBtZXNz YWdlcy4gIElmIHdlIGdvdCBiYWNrIEludmFsaWRPaWQsIGluZGljYXRpbmcgbm90IGZvdW5kLCB0 aGVuCisJCSAqIHRoZXJlJ3Mgbm90aGluZyB0byBsb2NrLCBidXQgd2UgYWNjZXB0IGludmFsaWRh dGlvbiBtZXNzYWdlcworCQkgKiBhbnl3YXksIHRvIGZsdXNoIGFueSBuZWdhdGl2ZSBjYXRjYWNo ZSBlbnRyaWVzIHRoYXQgbWF5IGJlCisJCSAqIGxpbmdlcmluZy4KKwkJICovCisJCWlmICghT2lk SXNWYWxpZCh2YXJpZCkpCisJCQlBY2NlcHRJbnZhbGlkYXRpb25NZXNzYWdlcygpOworCQllbHNl CisJCQlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNj ZXNzU2hhcmVMb2NrKTsKKworCQkvKgorCQkgKiBJZiBubyBpbnZhbGlkYXRpb24gbWVzc2FnZSB3 ZXJlIHByb2Nlc3NlZCwgd2UncmUgZG9uZSEKKwkJICovCisJCWlmIChpbnZhbF9jb3VudCA9PSBT aGFyZWRJbnZhbGlkTWVzc2FnZUNvdW50ZXIpCisJCQlicmVhazsKKworCQlyZXRyeSA9IHRydWU7 CisJCW9sZF92YXJpZCA9IHZhcmlkOworCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJfQorCisJcmV0 dXJuIHZhcmlkOworfQorCiAvKgogICogRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lCiAgKgkJR2l2 ZW4gYSBwb3NzaWJseS1xdWFsaWZpZWQgbmFtZSBleHByZXNzZWQgYXMgYSBsaXN0IG9mIFN0cmlu ZyBub2RlcywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCAyOWQ5NjdhMmQ1Li5iYjQ0 NWU5NDM0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCkBAIC0yNiw2ICsyNiw3IEBACiAj aW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5o IgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3BnX2xzbi5o IgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGNy ZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLApAQCAtMTAxLDYgKzEwMiw3IEBAIGNy ZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCXZhcmlkID0gR2V0TmV3T2lkV2l0 aEluZGV4KHJlbCwgVmFyaWFibGVPaWRJbmRleElkLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCk7CiAK IAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFy aWQpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmNyZWF0ZV9sc24gLSAxXSA9IExTTkdl dERhdHVtKEdldFhMb2dJbnNlcnRSZWNQdHIoKSk7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVf dmFybmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZ2YXJuYW1lKTsKIAl2YWx1ZXNbQW51bV9wZ192 YXJpYWJsZV92YXJuYW1lc3BhY2UgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyTmFtZXNwYWNl KTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBlIC0gMV0gPSBPYmplY3RJZEdldERh dHVtKHZhclR5cGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQppbmRleCA0OGY3MzQ4ZjkxLi4xY2ZhZWNh NTFlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQorKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQpAQCAtNTAsNiArNTAsNyBAQCBPQkpTID0gXAogCXNj aGVtYWNtZHMubyBcCiAJc2VjbGFiZWwubyBcCiAJc2VxdWVuY2UubyBcCisJc2Vzc2lvbl92YXJp YWJsZS5vIFwKIAlzdGF0c2NtZHMubyBcCiAJc3Vic2NyaXB0aW9uY21kcy5vIFwKIAl0YWJsZWNt ZHMubyBcCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZCBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCmluZGV4IGVmMGQ0MDdhMzguLmNlMTYxOWUz MDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCisrKyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCkBAIC0zOCw2ICszOCw3IEBAIGJhY2tlbmRf c291cmNlcyArPSBmaWxlcygKICAgJ3NjaGVtYWNtZHMuYycsCiAgICdzZWNsYWJlbC5jJywKICAg J3NlcXVlbmNlLmMnLAorICAnc2Vzc2lvbl92YXJpYWJsZS5jJywKICAgJ3N0YXRzY21kcy5jJywK ICAgJ3N1YnNjcmlwdGlvbmNtZHMuYycsCiAgICd0YWJsZWNtZHMuYycsCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVw YXJlLmMKaW5kZXggODk4OWMwYzg4Mi4uOTAyYjAyMmY5YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUu YwpAQCAtMzM4LDYgKzMzOCwxNiBAQCBFdmFsdWF0ZVBhcmFtcyhQYXJzZVN0YXRlICpwc3RhdGUs IFByZXBhcmVkU3RhdGVtZW50ICpwc3RtdCwgTGlzdCAqcGFyYW1zLAogCQlpKys7CiAJfQogCisJ LyoKKwkgKiBUaGUgYXJndW1lbnRzIG9mIEVYRUNVVEUgYXJlIGV2YWx1YXRlZCBieSBhIGRpcmVj dCBleHByZXNzaW9uCisJICogZXhlY3V0b3IgY2FsbC4gIFRoaXMgbW9kZSBkb2Vzbid0IHN1cHBv cnQgc2Vzc2lvbiB2YXJpYWJsZXMgeWV0LgorCSAqIEl0IHdpbGwgYmUgZW5hYmxlZCBsYXRlci4K KwkgKi8KKwlpZiAocHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMpCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBl cnJtc2coInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQiKSkp OworCiAJLyogUHJlcGFyZSB0aGUgZXhwcmVzc2lvbnMgZm9yIGV4ZWN1dGlvbiAqLwogCWV4cHJz dGF0ZXMgPSBFeGVjUHJlcGFyZUV4cHJMaXN0KHBhcmFtcywgZXN0YXRlKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLjI0NTZhMzQ1MmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTAsMCArMSw1MjkgQEAKKy8qLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICoKKyAqIHNlc3Npb25fdmFyaWFibGUuYworICoJICBzZXNzaW9uIHZhcmlhYmxlIGNy ZWF0aW9uL21hbmlwdWxhdGlvbiBjb21tYW5kcworICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENh bGlmb3JuaWEKKyAqCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNp bmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgor I2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKKyNpbmNsdWRlICJleGVjdXRv ci9zdmFyaWFibGVSZWNlaXZlci5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKKyNpbmNsdWRlICJt aXNjYWRtaW4uaCIKKyNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCisjaW5jbHVk ZSAic3RvcmFnZS9sbWdyLmgiCisjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCisjaW5jbHVkZSAi dGNvcC90Y29wcHJvdC5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAi dXRpbHMvZGF0dW0uaCIKKyNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgorI2luY2x1ZGUgInV0aWxz L2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGls cy9zeXNjYWNoZS5oIgorCisvKgorICogVGhlIHZhbHVlcyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBh cmUgc3RvcmVkIGluIHRoZSBiYWNrZW5kJ3MgcHJpdmF0ZSBtZW1vcnkKKyAqIGluIHRoZSBkZWRp Y2F0ZWQgbWVtb3J5IGNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpbiBiaW5hcnkgZm9y bWF0LgorICogVGhleSBhcmUgc3RvcmVkIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhhc2ggdGFibGUs IHdob3NlIGtleSBpcyB0aGUgT0lEIG9mIHRoZQorICogdmFyaWFibGUuICBIb3dldmVyLCB0aGUg T0lEIGlzIG5vdCBnb29kIGVub3VnaCB0byBpZGVudGlmeSBhIHNlc3Npb24KKyAqIHZhcmlhYmxl OiBjb25jdXJyZW50IHNlc3Npb25zIGNvdWxkIGRyb3AgdGhlIHNlc3Npb24gdmFyaWFibGUgYW5k IGNyZWF0ZSBhCisgKiBuZXcgb25lLCB3aGljaCBjb3VsZCBiZSBhc3NpZ25lZCB0aGUgc2FtZSBP SUQuICBUbyBlbnN1cmUgdGhhdCB0aGUgdmFsdWVzCisgKiBzdG9yZWQgaW4gbWVtb3J5IGFuZCB0 aGUgY2F0YWxvZyBkZWZpbml0aW9uIG1hdGNoLCB3ZSBhbHNvIGtlZXAgdHJhY2sgb2YKKyAqIHRo ZSAiY3JlYXRlX2xzbiIuICBCZWZvcmUgYW55IGFjY2VzcyB0byB0aGUgdmFyaWFibGUgdmFsdWVz LCB3ZSBuZWVkIHRvCisgKiBjaGVjayBpZiB0aGUgTFNOIHN0b3JlZCBpbiBtZW1vcnkgbWF0Y2hl cyB0aGUgTFNOIGluIHRoZSBjYXRhbG9nLiAgSWYgdGhlcmUKKyAqIGlzIGEgbWlzbWF0Y2ggYmV0 d2VlbiB0aGUgTFNOcywgb3IgaWYgdGhlIE9JRCBpcyBub3QgcHJlc2VudCBpbiBwZ192YXJpYWJs ZQorICogYXQgYWxsLCB0aGUgdmFsdWUgc3RvcmVkIGluIG1lbW9yeSBpcyByZWxlYXNlZC4KKyAq LwordHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQoreworCU9pZAkJCXZhcmlkOwkJCS8qIHBn X3ZhcmlhYmxlIE9JRCBvZiB0aGUgdmFyaWFibGUgKGhhc2gga2V5KSAqLworCVhMb2dSZWNQdHIJ Y3JlYXRlX2xzbjsKKworCWJvb2wJCWlzbnVsbDsKKwlEYXR1bQkJdmFsdWU7CisKKwlPaWQJCQl0 eXBpZDsKKwlpbnQxNgkJdHlwbGVuOworCWJvb2wJCXR5cGJ5dmFsOworCisJYm9vbAkJaXNfZG9t YWluOworCisJLyoKKwkgKiBkb21haW5fY2hlY2tfZXh0cmEgaG9sZHMgY2FjaGVkIGRvbWFpbiBt ZXRhZGF0YS4gIFRoaXMgImV4dHJhIiBpcworCSAqIHVzdWFsbHkgc3RvcmVkIGluIGZuX21jeHQu ICBXZSBkbyBub3QgaGF2ZSBhY2Nlc3MgdG8gdGhhdCBtZW1vcnkgY29udGV4dAorCSAqIGZvciBz ZXNzaW9uIHZhcmlhYmxlcywgYnV0IHdlIGNhbiB1c2UgVG9wVHJhbnNhY3Rpb25Db250ZXh0IGlu c3RlYWQuCisJICogQSBmcmVzaCB2YWx1ZSBpcyBmb3JjZWQgd2hlbiB3ZSBkZXRlY3Qgd2UgYXJl IGluIGEgZGlmZmVyZW50IHRyYW5zYWN0aW9uCisJICogKHRoZSBsb2NhbCB0cmFuc2FjdGlvbiBJ RCBkaWZmZXJzIGZyb20gZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQpLgorCSAqLworCXZvaWQJICAg KmRvbWFpbl9jaGVja19leHRyYTsKKwlMb2NhbFRyYW5zYWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4 dHJhX2x4aWQ7CisKKwkvKgorCSAqIFN0b3JlZCB2YWx1ZSBhbmQgdHlwZSBkZXNjcmlwdGlvbiBj YW4gYmUgb3V0ZGF0ZWQgd2hlbiB3ZSByZWNlaXZlIGEKKwkgKiBzaW52YWwgbWVzc2FnZS4gIFdl IHRoZW4gaGF2ZSB0byBjaGVjayBpZiB0aGUgc3RvcmVkIGRhdGEgYXJlIHN0aWxsCisJICogdHJ1 c3R3b3J0aHkuCisJICovCisJYm9vbAkJaXNfdmFsaWQ7CisKKwl1aW50MzIJCWhhc2h2YWx1ZTsJ CS8qIHVzZWQgZm9yIHBhaXJpbmcgc2ludmFsIG1lc3NhZ2UgKi8KK30gU1ZhcmlhYmxlRGF0YTsK KwordHlwZWRlZiBTVmFyaWFibGVEYXRhICpTVmFyaWFibGU7CisKK3N0YXRpYyBIVEFCICpzZXNz aW9udmFycyA9IE5VTEw7CS8qIGhhc2ggdGFibGUgZm9yIHNlc3Npb24gdmFyaWFibGVzICovCisK K3N0YXRpYyBNZW1vcnlDb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgPSBOVUxMOworCisv KgorICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHNlc3Npb24gdmFyaWFibGUgaW52YWxpZGF0aW9u LgorICovCitzdGF0aWMgdm9pZAorcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJn LCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKK3sKKwlIQVNIX1NFUV9TVEFUVVMgc3Rh dHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJZWxvZyhERUJVRzEsICJwZ192YXJpYWJsZV9jYWNo ZV9jYWxsYmFjayAldSAldSIsIGNhY2hlaWQsIGhhc2h2YWx1ZSk7CisKKwlBc3NlcnQoc2Vzc2lv bnZhcnMpOworCisJLyoKKwkgKiBJZiB0aGUgaGFzaHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQsIHdl IGhhdmUgdG8gcmVjaGVjayBhbGwgY3VycmVudGx5CisJICogdXNlZCBzZXNzaW9uIHZhcmlhYmxl cy4gIFNpbmNlIHdlIGNhbid0IHRlbGwgdGhlIGV4YWN0IHNlc3Npb24gdmFyaWFibGUKKwkgKiBm cm9tIGl0cyBoYXNodmFsdWUsIHdlIGhhdmUgdG8gaXRlcmF0ZSBvdmVyIGFsbCBpdGVtcyBpbiB0 aGUgaGFzaCBidWNrZXQuCisJICovCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFy cyk7CisKKwl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1 cykpICE9IE5VTEwpCisJeworCQlpZiAoaGFzaHZhbHVlID09IDAgfHwgc3Zhci0+aGFzaHZhbHVl ID09IGhhc2h2YWx1ZSkKKwkJeworCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKwkJfQorCX0K K30KKworLyoKKyAqIFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1lbW9yeQorICovCitzdGF0 aWMgdm9pZAorZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBzdmFyKQorewor CS8qIGNsZWFuIHRoZSBjdXJyZW50IHZhbHVlICovCisJaWYgKCFzdmFyLT5pc251bGwpCisJewor CQlpZiAoIXN2YXItPnR5cGJ5dmFsKQorCQkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKHN2YXItPnZh bHVlKSk7CisKKwkJc3Zhci0+aXNudWxsID0gdHJ1ZTsKKwl9CisKKwlzdmFyLT52YWx1ZSA9IChE YXR1bSkgMDsKK30KKworLyoKKyAqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBlbnRyeSBpbiBwZ192 YXJpYWJsZSBpcyBjb25zaXN0ZW50IHdpdGggdGhlIGdpdmVuCisgKiBzZXNzaW9uIHZhcmlhYmxl LgorICovCitzdGF0aWMgYm9vbAoraXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChTVmFyaWFibGUg c3ZhcikKK3sKKwlIZWFwVHVwbGUJdHA7CisJYm9vbAkJcmVzdWx0ID0gZmFsc2U7CisKKwlBc3Nl cnQoT2lkSXNWYWxpZChzdmFyLT52YXJpZCkpOworCisJdHAgPSBTZWFyY2hTeXNDYWNoZTEoVkFS SUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCWlmIChIZWFwVHVw bGVJc1ZhbGlkKHRwKSkKKwl7CisJCS8qCisJCSAqIFRoZSBPSUQgYWxvbmUgaXMgbm90IGVub3Vn aCBhcyBhbiB1bmlxdWUgaWRlbnRpZmllciwgYmVjYXVzZSBPSUQKKwkJICogdmFsdWVzIGdldCBy ZWN5Y2xlZCwgYW5kIGEgbmV3IHNlc3Npb24gdmFyaWFibGUgY291bGQgaGF2ZSBnb3QKKwkJICog dGhlIHNhbWUgT0lELiAgV2UgZG8gYSBzZWNvbmQgY2hlY2sgYWdhaW5zdCB0aGUgNjQtYml0IExT TiB3aGVuCisJCSAqIHRoZSB2YXJpYWJsZSB3YXMgY3JlYXRlZC4KKwkJICovCisJCWlmIChzdmFy LT5jcmVhdGVfbHNuID09ICgoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHRwKSktPnZhcmNy ZWF0ZV9sc24pCisJCQlyZXN1bHQgPSB0cnVlOworCisJCVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJ fQorCisJcmV0dXJuIHJlc3VsdDsKK30KKworLyoKKyAqIEluaXRpYWxpemUgYXR0cmlidXRlcyBj YWNoZWQgaW4gInN2YXIiCisgKi8KK3N0YXRpYyB2b2lkCitzZXR1cF9zZXNzaW9uX3ZhcmlhYmxl KFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3Bn X3ZhcmlhYmxlIHZhcmZvcm07CisKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkpOworCisJdHVw ID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7 CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxv b2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3Jt ID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJc3Zhci0+dmFyaWQgPSB2 YXJpZDsKKwlzdmFyLT5jcmVhdGVfbHNuID0gdmFyZm9ybS0+dmFyY3JlYXRlX2xzbjsKKworCXN2 YXItPnR5cGlkID0gdmFyZm9ybS0+dmFydHlwZTsKKworCWdldF90eXBsZW5ieXZhbChzdmFyLT50 eXBpZCwgJnN2YXItPnR5cGxlbiwgJnN2YXItPnR5cGJ5dmFsKTsKKworCXN2YXItPmlzX2RvbWFp biA9IChnZXRfdHlwdHlwZSh2YXJmb3JtLT52YXJ0eXBlKSA9PSBUWVBUWVBFX0RPTUFJTik7CisJ c3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKKwlzdmFyLT5kb21haW5fY2hlY2tfZXh0 cmFfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CisKKwlzdmFyLT5pc251bGwgPSB0 cnVlOworCXN2YXItPnZhbHVlID0gKERhdHVtKSAwOworCisJc3Zhci0+aXNfdmFsaWQgPSB0cnVl OworCisJc3Zhci0+aGFzaHZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxFT0lE LAorCQkJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlSZWxlYXNlU3lzQ2Fj aGUodHVwKTsKK30KKworLyoKKyAqIEFzc2lnbiBhIG5ldyB2YWx1ZSB0byB0aGUgc2Vzc2lvbiB2 YXJpYWJsZS4gIEl0IGlzIGNvcGllZCB0bworICogU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpZiBu ZWNlc3NhcnkuCisgKgorICogSWYgYW55IGVycm9yIGhhcHBlbnMsIHRoZSBleGlzdGluZyB2YWx1 ZSB3b24ndCBiZSBtb2RpZmllZC4KKyAqLworc3RhdGljIHZvaWQKK3NldF9zZXNzaW9uX3Zhcmlh YmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCit7CisJRGF0dW0J CW5ld3ZhbDsKKwlTVmFyaWFibGVEYXRhIGxvY3N2YXIsCisJCQkgICAqX3N2YXI7CisKKwlBc3Nl cnQoc3Zhcik7CisJQXNzZXJ0KCFpc251bGwgfHwgdmFsdWUgPT0gKERhdHVtKSAwKTsKKworCS8q CisJICogVXNlIHR5cGJ5dmFsLCB0eXBieWxlbiBmcm9tIHNlc3Npb24gdmFyaWFibGUgb25seSB3 aGVuIHRoZXkgYXJlCisJICogdHJ1c3R3b3J0aHkgKHRoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3 YXMgbm90IGFjY2VwdGVkIGZvciB0aGlzCisJICogdmFyaWFibGUpLiAgSWYgdGhlIHZhcmlhYmxl IG1pZ2h0IGJlIGludmFsaWQsIGZvcmNlIHNldHVwLgorCSAqCisJICogRG8gbm90IG92ZXJ3cml0 ZSB0aGUgcGFzc2VkIHNlc3Npb24gdmFyaWFibGUgdW50aWwgd2UgY2FuIGJlIGNlcnRhaW4KKwkg KiB0aGF0IG5vIGVycm9yIGNhbiBiZSB0aHJvd24uCisJICovCisJaWYgKCFzdmFyLT5pc192YWxp ZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoJmxvY3N2YXIsIHN2YXItPnZhcmlkKTsK KwkJX3N2YXIgPSAmbG9jc3ZhcjsKKwl9CisJZWxzZQorCQlfc3ZhciA9IHN2YXI7CisKKwlpZiAo IWlzbnVsbCkKKwl7CisJCU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRj aFRvKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOworCisJCW5ld3ZhbCA9IGRhdHVtQ29weSh2YWx1 ZSwgX3N2YXItPnR5cGJ5dmFsLCBfc3Zhci0+dHlwbGVuKTsKKworCQlNZW1vcnlDb250ZXh0U3dp dGNoVG8ob2xkY3h0KTsKKwl9CisJZWxzZQorCQluZXd2YWwgPSB2YWx1ZTsKKworCWZyZWVfc2Vz c2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKworCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJp YWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIG5ldyB2YWx1ZSIsCisJCSBnZXRfbmFtZXNwYWNl X25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCSBn ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSwKKwkJIHN2YXItPnZhcmlkKTsK KworCS8qIG5vIG1vcmUgZXJyb3IgZXhwZWN0ZWQsIHNvIHdlIGNhbiBvdmVyd3JpdGUgdGhlIG9s ZCB2YXJpYWJsZSBub3cgKi8KKwlpZiAoc3ZhciAhPSBfc3ZhcikKKwkJbWVtY3B5KHN2YXIsIF9z dmFyLCBzaXplb2YoU1ZhcmlhYmxlRGF0YSkpOworCisJc3Zhci0+dmFsdWUgPSBuZXd2YWw7CisJ c3Zhci0+aXNudWxsID0gaXNudWxsOworfQorCisvKgorICogQ3JlYXRlIHRoZSBoYXNoIHRhYmxl IGZvciBzdG9yaW5nIHNlc3Npb24gdmFyaWFibGVzLgorICovCitzdGF0aWMgdm9pZAorY3JlYXRl X3Nlc3Npb252YXJzX2hhc2h0YWJsZXModm9pZCkKK3sKKwlIQVNIQ1RMCQl2YXJzX2N0bDsKKwor CUFzc2VydCghc2Vzc2lvbnZhcnMpOworCisJaWYgKCFTVmFyaWFibGVNZW1vcnlDb250ZXh0KQor CXsKKwkJLyogcmVhZCBzaW52YWwgbWVzc2FnZXMgKi8KKwkJQ2FjaGVSZWdpc3RlclN5c2NhY2hl Q2FsbGJhY2soVkFSSUFCTEVPSUQsCisJCQkJCQkJCQkgIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxi YWNrLAorCQkJCQkJCQkJICAoRGF0dW0pIDApOworCisJCS8qIHdlIG5lZWQgb3VyIG93biBsb25n LWxpdmVkIG1lbW9yeSBjb250ZXh0ICovCisJCVNWYXJpYWJsZU1lbW9yeUNvbnRleHQgPQorCQkJ QWxsb2NTZXRDb250ZXh0Q3JlYXRlKFRvcE1lbW9yeUNvbnRleHQsCisJCQkJCQkJCSAgInNlc3Np b24gdmFyaWFibGVzIiwKKwkJCQkJCQkJICBBTExPQ1NFVF9TVEFSVF9TTUFMTF9TSVpFUyk7CisJ fQorCisJbWVtc2V0KCZ2YXJzX2N0bCwgMCwgc2l6ZW9mKHZhcnNfY3RsKSk7CisJdmFyc19jdGwu a2V5c2l6ZSA9IHNpemVvZihPaWQpOworCXZhcnNfY3RsLmVudHJ5c2l6ZSA9IHNpemVvZihTVmFy aWFibGVEYXRhKTsKKwl2YXJzX2N0bC5oY3h0ID0gU1ZhcmlhYmxlTWVtb3J5Q29udGV4dDsKKwor CXNlc3Npb252YXJzID0gaGFzaF9jcmVhdGUoIlNlc3Npb24gdmFyaWFibGVzIiwgNjQsICZ2YXJz X2N0bCwKKwkJCQkJCQkgIEhBU0hfRUxFTSB8IEhBU0hfQkxPQlMgfCBIQVNIX0NPTlRFWFQpOwor fQorCisvKgorICogU2VhcmNoIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGUgaGFzaCB0YWJsZSBn aXZlbiBpdHMgT0lELiAgSWYgaXQKKyAqIGRvZXNuJ3QgZXhpc3QsIHRoZW4gaW5zZXJ0IGl0IHRo ZXJlLgorICoKKyAqIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGRvaW5nIHBlcm1pc3Np b24gY2hlY2tzLgorICoKKyAqIEFzIGEgc2lkZSBlZmZlY3QsIHRoaXMgZnVuY3Rpb24gYWNxdWly ZXMgYSBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlCisgKiBzZXNzaW9uIHZhcmlhYmxlIHVudGlsIHRo ZSBlbmQgb2YgdGhlIHRyYW5zYWN0aW9uLgorICovCitzdGF0aWMgU1ZhcmlhYmxlCitnZXRfc2Vz c2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisJYm9vbAkJZm91 bmQ7CisKKwkvKiBwcm90ZWN0IHRoZSB1c2VkIHNlc3Npb24gdmFyaWFibGUgYWdhaW5zdCBEUk9Q ICovCisJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAsIEFj Y2Vzc1NoYXJlTG9jayk7CisKKwlpZiAoIXNlc3Npb252YXJzKQorCQljcmVhdGVfc2Vzc2lvbnZh cnNfaGFzaHRhYmxlcygpOworCisJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNlc3Np b252YXJzLCAmdmFyaWQsCisJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3VuZCk7CisKKwlpZiAo Zm91bmQpCisJeworCQlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCQl7CisJCQkvKgorCQkJICogSWYg dGhlcmUgd2FzIGFuIGludmFsaWRhdGlvbiBtZXNzYWdlLCB0aGUgdmFyaWFibGUgbWlnaHQgc3Rp bGwgYmUKKwkJCSAqIHZhbGlkLCBidXQgd2UgaGF2ZSB0byBjaGVjayB3aXRoIHRoZSBzeXN0ZW0g Y2F0YWxvZy4KKwkJCSAqLworCQkJaWYgKGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3Zhcikp CisJCQkJc3Zhci0+aXNfdmFsaWQgPSB0cnVlOworCQkJZWxzZQorCQkJCS8qIGlmIHRoZSB2YWx1 ZSBjYW5ub3QgYmUgdmFsaWRhdGVkLCB3ZSBoYXZlIHRvIGRpc2NhcmQgaXQgKi8KKwkJCQlmcmVl X3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisJCX0KKwl9CisJZWxzZQorCQlzdmFyLT5p c192YWxpZCA9IGZhbHNlOworCisJLyoKKwkgKiBGb3JjZSBzZXR1cCBmb3Igbm90IHlldCBpbml0 aWFsaXplZCB2YXJpYWJsZXMgb3IgdmFyaWFibGVzIHRoYXQgY2Fubm90CisJICogYmUgdmFsaWRh dGVkLgorCSAqLworCWlmICghc3Zhci0+aXNfdmFsaWQpCisJeworCQlzZXR1cF9zZXNzaW9uX3Zh cmlhYmxlKHN2YXIsIHZhcmlkKTsKKworCQllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUg XCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBtZW1vcnkgKGVtaXR0ZWQg YnkgUkVBRCkiLAorCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lc3BhY2UodmFyaWQpKSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSwK KwkJCSB2YXJpZCk7CisJfQorCisJLyogZW5zdXJlIHRoZSByZXR1cm5lZCBkYXRhIGlzIHN0aWxs IG9mIHRoZSBjb3JyZWN0IGRvbWFpbiAqLworCWlmIChzdmFyLT5pc19kb21haW4pCisJeworCQkv KgorCQkgKiBTdG9yZSAiZXh0cmEiIGZvciBkb21haW5fY2hlY2soKSBpbiBUb3BUcmFuc2FjdGlv bkNvbnRleHQuICBXaGVuIHdlCisJCSAqIGFyZSBpbiBhIG5ldyB0cmFuc2FjdGlvbiwgZG9tYWlu X2NoZWNrX2V4dHJhIGNhY2hlIGlzIG5vdCB2YWxpZCBhbnkKKwkJICogbW9yZS4KKwkJICovCisJ CWlmIChzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkK KwkJCXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CisKKwkJZG9tYWluX2NoZWNrKHN2 YXItPnZhbHVlLCBzdmFyLT5pc251bGwsCisJCQkJCSBzdmFyLT50eXBpZCwgJnN2YXItPmRvbWFp bl9jaGVja19leHRyYSwKKwkJCQkJIFRvcFRyYW5zYWN0aW9uQ29udGV4dCk7CisKKwkJc3Zhci0+ ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKKwl9CisKKwlyZXR1 cm4gc3ZhcjsKK30KKworLyoKKyAqIFN0b3JlIHRoZSBnaXZlbiB2YWx1ZSBpbiBhIHNlc3Npb24g dmFyaWFibGUgaW4gdGhlIGNhY2hlLgorICoKKyAqIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUg Zm9yIGRvaW5nIHBlcm1pc3Npb24gY2hlY2tzLgorICoKKyAqIEFzIGEgc2lkZSBlZmZlY3QsIHRo aXMgZnVuY3Rpb24gYWNxdWlyZXMgYSBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlIHNlc3Npb24KKyAq IHZhcmlhYmxlIHVudGlsIHRoZSBlbmQgb2YgdGhlIHRyYW5zYWN0aW9uLgorICovCit2b2lkCitT ZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCit7 CisJU1ZhcmlhYmxlCXN2YXI7CisJYm9vbAkJZm91bmQ7CisKKwkvKiBwcm90ZWN0IHVzZWQgc2Vz c2lvbiB2YXJpYWJsZSBhZ2FpbnN0IERST1AgKi8KKwlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFi bGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCWlmICghc2Vzc2lv bnZhcnMpCisJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CisKKwlzdmFyID0gKFNW YXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJICAgSEFT SF9FTlRFUiwgJmZvdW5kKTsKKworCWlmICghZm91bmQpCisJeworCQlzZXR1cF9zZXNzaW9uX3Zh cmlhYmxlKHN2YXIsIHZhcmlkKTsKKworCQllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUg XCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBtZW1vcnkgKGVtaXR0ZWQg YnkgV1JJVEUpIiwKKwkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShz dmFyLT52YXJpZCksCisJCQkgdmFyaWQpOworCX0KKworCS8qIGlmIHRoaXMgZmFpbHMsIGl0IHdv bid0IGNoYW5nZSB0aGUgc3RvcmVkIHZhbHVlICovCisJc2V0X3Nlc3Npb25fdmFyaWFibGUoc3Zh ciwgdmFsdWUsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFs dWUgc3RvcmVkIGluIGEgdmFyaWFibGUuCisgKi8KK3N0YXRpYyBpbmxpbmUgRGF0dW0KK2NvcHlf c2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhciwgYm9vbCAqaXNOdWxsKQorewor CURhdHVtCQl2YWx1ZTsKKworCS8qIGZvcmNlIGNvcHkgb2Ygbm9uIE5VTEwgdmFsdWUgKi8KKwlp ZiAoIXN2YXItPmlzbnVsbCkKKwl7CisJCXZhbHVlID0gZGF0dW1Db3B5KHN2YXItPnZhbHVlLCBz dmFyLT50eXBieXZhbCwgc3Zhci0+dHlwbGVuKTsKKwkJKmlzTnVsbCA9IGZhbHNlOworCX0KKwll bHNlCisJeworCQl2YWx1ZSA9IChEYXR1bSkgMDsKKwkJKmlzTnVsbCA9IHRydWU7CisJfQorCisJ cmV0dXJuIHZhbHVlOworfQorCisvKgorICogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHZhbHVlIG9m IHRoZSBzZXNzaW9uIHZhcmlhYmxlIChpbiB0aGUgY3VycmVudCBtZW1vcnkKKyAqIGNvbnRleHQp LiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgcGVybWlzc2lvbiBjaGVja3MuCisgKi8K K0RhdHVtCitHZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwpCit7CisJ U1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gZ2V0X3Nlc3Npb25fdmFyaWFibGUodmFyaWQpOwor CisJLyoKKwkgKiBBbHRob3VnaCAic3ZhciIgaXMgZnJlc2hseSB2YWxpZGF0ZWQgaW4gdGhpcyBw b2ludCwgc3Zhci0+aXNfdmFsaWQgY2FuCisJICogYmUgZmFsc2UsIGlmIGFuIGludmFsaWRhdGlv biBtZXNzYWdlIHdhcyBwcm9jZXNzZWQgZHVyaW5nIHRoZSBkb21haW4gY2hlY2suCisJICogQnV0 IHRoZSB2YXJpYWJsZSBhbmQgYWxsIGl0cyBkZXBlbmRlbmNpZXMgYXJlIGxvY2tlZCBub3csIHNv IHdlIGRvbid0IG5lZWQKKwkgKiB0byByZXBlYXQgdGhlIHZhbGlkYXRpb24uCisJICovCisJcmV0 dXJuIGNvcHlfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyLCBpc051bGwpOworfQorCisvKgor ICogQXNzaWduIHRoZSByZXN1bHQgb2YgdGhlIGV2YWx1YXRlZCBleHByZXNzaW9uIHRvIHRoZSBz ZXNzaW9uIHZhcmlhYmxlCisgKi8KK3ZvaWQKK0V4ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwKKwkJCSAgIExldFN0bXQgKnN0bXQsCisJCQkgICBQYXJhbUxpc3RJbmZvIHBhcmFtcywK KwkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LAorCQkJICAgUXVlcnlDb21wbGV0aW9u ICpxYykKK3sKKwlRdWVyeQkgICAqcXVlcnkgPSBjYXN0Tm9kZShRdWVyeSwgc3RtdC0+cXVlcnkp OworCUxpc3QJICAgKnJld3JpdHRlbjsKKwlEZXN0UmVjZWl2ZXIgKmRlc3Q7CisJQWNsUmVzdWx0 CWFjbHJlc3VsdDsKKwlQbGFubmVkU3RtdCAqcGxhbjsKKwlRdWVyeURlc2MgICpxdWVyeURlc2M7 CisJT2lkCQkJdmFyaWQgPSBxdWVyeS0+cmVzdWx0VmFyaWFibGU7CisKKwlBc3NlcnQoT2lkSXNW YWxpZCh2YXJpZCkpOworCisJLyogZG8gd2UgaGF2ZSBwZXJtaXNzaW9uIHRvIHdyaXRlIHRvIHRo ZSBzZXNzaW9uIHZhcmlhYmxlPyAqLworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhWYXJp YWJsZVJlbGF0aW9uSWQsIHZhcmlkLCBHZXRVc2VySWQoKSwgQUNMX1VQREFURSk7CisJaWYgKGFj bHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpF Q1RfVkFSSUFCTEUsIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsKKworCS8qIGNy ZWF0ZSBhIGRlc3QgcmVjZWl2ZXIgZm9yIExFVCAqLworCWRlc3QgPSBDcmVhdGVWYXJpYWJsZURl c3RSZWNlaXZlcih2YXJpZCk7CisKKwkvKiBydW4gdGhlIHF1ZXJ5IHJld3JpdGVyICovCisJcXVl cnkgPSBjb3B5T2JqZWN0KHF1ZXJ5KTsKKworCXJld3JpdHRlbiA9IFF1ZXJ5UmV3cml0ZShxdWVy eSk7CisKKwlBc3NlcnQobGlzdF9sZW5ndGgocmV3cml0dGVuKSA9PSAxKTsKKworCXF1ZXJ5ID0g bGluaXRpYWxfbm9kZShRdWVyeSwgcmV3cml0dGVuKTsKKwlBc3NlcnQocXVlcnktPmNvbW1hbmRU eXBlID09IENNRF9TRUxFQ1QpOworCisJLyogcGxhbiB0aGUgcXVlcnkgKi8KKwlwbGFuID0gcGdf cGxhbl9xdWVyeShxdWVyeSwgcHN0YXRlLT5wX3NvdXJjZXRleHQsCisJCQkJCQkgQ1VSU09SX09Q VF9QQVJBTExFTF9PSywgcGFyYW1zKTsKKworCS8qCisJICogVXNlIGEgc25hcHNob3Qgd2l0aCBh biB1cGRhdGVkIGNvbW1hbmQgSUQgdG8gZW5zdXJlIHRoaXMgcXVlcnkgc2VlcyB0aGUKKwkgKiBy ZXN1bHRzIG9mIGFueSBwcmV2aW91c2x5IGV4ZWN1dGVkIHF1ZXJpZXMuICAoVGhpcyBjb3VsZCBv bmx5IG1hdHRlciBpZgorCSAqIHRoZSBwbGFubmVyIGV4ZWN1dGVkIGFuIGFsbGVnZWRseS1zdGFi bGUgZnVuY3Rpb24gdGhhdCBjaGFuZ2VkIHRoZQorCSAqIGRhdGFiYXNlIGNvbnRlbnRzLCBidXQg bGV0J3MgZG8gaXQgYW55d2F5IHRvIGJlIHBhcmFsbGVsIHRvIHRoZSBFWFBMQUlOCisJICogY29k ZSBwYXRoLikKKwkgKi8KKwlQdXNoQ29waWVkU25hcHNob3QoR2V0QWN0aXZlU25hcHNob3QoKSk7 CisJVXBkYXRlQWN0aXZlU25hcHNob3RDb21tYW5kSWQoKTsKKworCS8qIGNyZWF0ZSBhIFF1ZXJ5 RGVzYywgcmVkaXJlY3Rpbmcgb3V0cHV0IHRvIG91ciB0dXBsZSByZWNlaXZlciAqLworCXF1ZXJ5 RGVzYyA9IENyZWF0ZVF1ZXJ5RGVzYyhwbGFuLCBwc3RhdGUtPnBfc291cmNldGV4dCwKKwkJCQkJ CQkJR2V0QWN0aXZlU25hcHNob3QoKSwgSW52YWxpZFNuYXBzaG90LAorCQkJCQkJCQlkZXN0LCBw YXJhbXMsIHF1ZXJ5RW52LCAwKTsKKworCS8qIGNhbGwgRXhlY3V0b3JTdGFydCB0byBwcmVwYXJl IHRoZSBwbGFuIGZvciBleGVjdXRpb24gKi8KKwlFeGVjdXRvclN0YXJ0KHF1ZXJ5RGVzYywgMCk7 CisKKwkvKgorCSAqIFJ1biB0aGUgcGxhbiB0byBjb21wbGV0aW9uLiAgVGhlIHJlc3VsdCBzaG91 bGQgYmUgb25seSBvbmUgcm93LiAgVG8KKwkgKiBjaGVjayBpZiB0aGVyZSBhcmUgdG9vIG1hbnkg cmVzdWx0IHJvd3MsIHdlIHRyeSB0byBmZXRjaCB0d28uCisJICovCisJRXhlY3V0b3JSdW4ocXVl cnlEZXNjLCBGb3J3YXJkU2NhbkRpcmVjdGlvbiwgMkwpOworCisJLyogc2F2ZSB0aGUgcm93Y291 bnQgaWYgd2UncmUgZ2l2ZW4gYSBRdWVyeUNvbXBsZXRpb24gdG8gZmlsbCAqLworCWlmIChxYykK KwkJU2V0UXVlcnlDb21wbGV0aW9uKHFjLCBDTURUQUdfTEVULCBxdWVyeURlc2MtPmVzdGF0ZS0+ ZXNfcHJvY2Vzc2VkKTsKKworCS8qIGFuZCBjbGVhbiB1cCAqLworCUV4ZWN1dG9yRmluaXNoKHF1 ZXJ5RGVzYyk7CisJRXhlY3V0b3JFbmQocXVlcnlEZXNjKTsKKworCUZyZWVRdWVyeURlc2MocXVl cnlEZXNjKTsKKworCVBvcEFjdGl2ZVNuYXBzaG90KCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlCmlu ZGV4IDExMTE4ZDBjZTAuLjcxMjQ4YTM0ZjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlCkBAIC03Niw2 ICs3Niw3IEBAIE9CSlMgPSBcCiAJbm9kZVdpbmRvd0FnZy5vIFwKIAlub2RlV29ya3RhYmxlc2Nh bi5vIFwKIAlzcGkubyBcCisJc3ZhcmlhYmxlUmVjZWl2ZXIubyBcCiAJdHF1ZXVlLm8gXAogCXRz dG9yZVJlY2VpdmVyLm8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXggOGYyOGRhNGJmOS4u MDFlNmViMzUxNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBAIC0xMDQxLDYgKzEwNDEsMzgg QEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJCQlz Y3JhdGNoLmQucGFyYW0ucGFyYW10eXBlID0gcGFyYW0tPnBhcmFtdHlwZTsKIAkJCQkJCUV4cHJF dmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNoKTsKIAkJCQkJCWJyZWFrOworCisJCQkJCWNhc2Ug UEFSQU1fVkFSSUFCTEU6CisJCQkJCQl7CisJCQkJCQkJaW50CQkJZXNfbnVtX3Nlc3Npb25fdmFy aWFibGVzID0gMDsKKwkJCQkJCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqZXNfc2Vzc2lvbl92YXJp YWJsZXMgPSBOVUxMOworCQkJCQkJCVNlc3Npb25WYXJpYWJsZVZhbHVlICp2YXI7CisKKwkJCQkJ CQlpZiAoc3RhdGUtPnBhcmVudCAmJiBzdGF0ZS0+cGFyZW50LT5zdGF0ZSkKKwkJCQkJCQl7CisJ CQkJCQkJCWVzX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVzX3Nl c3Npb25fdmFyaWFibGVzOworCQkJCQkJCQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBzdGF0 ZS0+cGFyZW50LT5zdGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOworCQkJCQkJCX0KKwor CQkJCQkJCUFzc2VydChlc19zZXNzaW9uX3ZhcmlhYmxlcyk7CisKKwkJCQkJCQkvKiBwYXJhbWV0 ZXIgc2FuaXR5IGNoZWNrcyAqLworCQkJCQkJCWlmIChwYXJhbS0+cGFyYW1pZCA+PSBlc19udW1f c2Vzc2lvbl92YXJpYWJsZXMpCisJCQkJCQkJCWVsb2coRVJST1IsICJwYXJhbWlkIG9mIFBBUkFN X1ZBUklBQkxFIHBhcmFtIGlzIG91dCBvZiByYW5nZSIpOworCisJCQkJCQkJdmFyID0gJmVzX3Nl c3Npb25fdmFyaWFibGVzW3BhcmFtLT5wYXJhbWlkXTsKKworCQkJCQkJCS8qCisJCQkJCQkJICog SW4gdGhpcyBjYXNlLCBwYXNzIHRoZSB2YWx1ZSBsaWtlIGEKKwkJCQkJCQkgKiBjb25zdGFudC4K KwkJCQkJCQkgKi8KKwkJCQkJCQlzY3JhdGNoLm9wY29kZSA9IEVFT1BfQ09OU1Q7CisJCQkJCQkJ c2NyYXRjaC5kLmNvbnN0dmFsLnZhbHVlID0gdmFyLT52YWx1ZTsKKwkJCQkJCQlzY3JhdGNoLmQu Y29uc3R2YWwuaXNudWxsID0gdmFyLT5pc251bGw7CisJCQkJCQkJRXhwckV2YWxQdXNoU3RlcChz dGF0ZSwgJnNjcmF0Y2gpOworCQkJCQkJfQorCQkJCQkJYnJlYWs7CisKIAkJCQkJY2FzZSBQQVJB TV9FWFRFUk46CiAKIAkJCQkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCBmYjhkYmEz YWIyLi45OTAzYjM2OGI5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFp bi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKQEAgLTQzLDcgKzQzLDkg QEAKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wYXJ0aXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3Bn X3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvbWF0dmlldy5oIgorI2luY2x1ZGUgImNv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgi CiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2Rl U3VicGxhbi5oIgpAQCAtMTkzLDYgKzE5NSw3MCBAQCBzdGFuZGFyZF9FeGVjdXRvclN0YXJ0KFF1 ZXJ5RGVzYyAqcXVlcnlEZXNjLCBpbnQgZWZsYWdzKQogCUFzc2VydChxdWVyeURlc2MtPnNvdXJj ZVRleHQgIT0gTlVMTCk7CiAJZXN0YXRlLT5lc19zb3VyY2VUZXh0ID0gcXVlcnlEZXNjLT5zb3Vy Y2VUZXh0OwogCisJLyoKKwkgKiBUaGUgZXhlY3V0b3IgZG9lc24ndCB3b3JrIHdpdGggc2Vzc2lv biB2YXJpYWJsZXMgZGlyZWN0bHkuIFZhbHVlcyBvZgorCSAqIHJlbGF0ZWQgc2Vzc2lvbiB2YXJp YWJsZXMgYXJlIGNvcGllZCB0byBhIGRlZGljYXRlZCBhcnJheSwgYW5kIHRoaXMgYXJyYXkKKwkg KiBpcyBwYXNzZWQgdG8gdGhlIGV4ZWN1dG9yLiBUaGlzIGFycmF5IGlzIHN0YWJsZSAic25hcHNo b3QiIG9mIHZhbHVlcyBvZgorCSAqIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZXJlIGFyZSB0 aHJlZSBiZW5lZml0cyBvZiB0aGlzIHN0cmF0ZWd5OgorCSAqCisJICogLSBjb25zaXN0ZW5jeSB3 aXRoIGV4dGVybmFsIHBhcmFtZXRlcnMgYW5kIHBscGdzcWwgdmFyaWFibGVzLAorCSAqCisJICog LSBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgcGFyYWxsZWwgc2FmZSwKKwkgKgorCSAqIC0gd2Ug ZG9uJ3QgbmVlZCBtYWtlIGZyZXNoIGNvcHkgZm9yIGFueSByZWFkIG9mIHNlc3Npb24gdmFyaWFi bGUKKwkgKiAgICAodGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgaW50ZXJuYWxseSB0aGUg c2Vzc2lvbiB2YXJpYWJsZSBjYW4KKwkgKiAgICBiZSBjaGFuZ2VkIGluc2lkZSBxdWVyeSBleGVj dXRpb24gdGltZSwgYW5kIHRoZW4gYSByZWZlcmVuY2UgdG8KKwkgKiAgICBwcmV2aW91c2x5IHJl dHVybmVkIHZhbHVlIGNhbiBiZSBjb3JydXB0ZWQpLgorCSAqLworCWlmIChxdWVyeURlc2MtPnBs YW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQorCXsKKwkJaW50CQkJblNlc3Npb25WYXJpYWJs ZXM7CisJCWludAkJCWkgPSAwOworCisJCS8qCisJCSAqIEluIHRoaXMgY2FzZSwgdGhlIHF1ZXJ5 IHVzZXMgc2Vzc2lvbiB2YXJpYWJsZXMsIGJ1dCB3ZSBoYXZlIHRvCisJCSAqIHByZXBhcmUgdGhl IGFycmF5IHdpdGggcGFzc2VkIHZhbHVlcyAob2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcykKKwkJ ICogZmlyc3QuCisJCSAqLworCQlBc3NlcnQoIUlzUGFyYWxsZWxXb3JrZXIoKSk7CisJCW5TZXNz aW9uVmFyaWFibGVzID0gbGlzdF9sZW5ndGgocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lv blZhcmlhYmxlcyk7CisKKwkJLyogY3JlYXRlIHRoZSBhcnJheSB1c2VkIGZvciBwYXNzaW5nIHZh bHVlcyBvZiB1c2VkIHNlc3Npb24gdmFyaWFibGVzICovCisJCWVzdGF0ZS0+ZXNfc2Vzc2lvbl92 YXJpYWJsZXMgPSAoU2Vzc2lvblZhcmlhYmxlVmFsdWUgKikKKwkJCXBhbGxvYyhuU2Vzc2lvblZh cmlhYmxlcyAqIHNpemVvZihTZXNzaW9uVmFyaWFibGVWYWx1ZSkpOworCisJCS8qIGZpbGwgdGhl IGFycmF5ICovCisJCWZvcmVhY2hfb2lkKHZhcmlkLCBxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5z ZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQkvKgorCQkJICogUGVybWlzc2lvbiBjaGVjayBzaG91 bGQgYmUgZXhlY3V0ZWQgb24gYWxsIGV4cGxpY2l0bHkgdXNlZAorCQkJICogdmFyaWFibGVzIGlu IHRoZSBxdWVyeS4gRm9yIGltcGxpY2l0bHkgdXNlZCB2YXJpYWJsZQorCQkJICogKGxpa2UgYmFz ZSBub2RlIG9mIGFzc2lnbm1lbnQgaW5kaXJlY3QpIHdlIGNhbm5vdCBkbyBwZXJtaXNzaW9uCisJ CQkgKiBjaGVjaywgYmVjYXVzZSB3ZSBuZWVkIHJlYWQgdGhlIHZhbHVlIChhbmQgdXNlciBjYW4g aGF2ZQorCQkJICogb25seSBVUERBVEUgdmFyaWFibGUpLiBJbiB0aGlzIGNhc2UgdGhlIHBlcm1p c3Npb24gY2hlY2sKKwkJCSAqIGlzIGV4ZWN1dGVkIGluIHdyaXRlIHRpbWUuCisJCQkgKi8KKwkJ CWlmICh2YXJpZCAhPSBxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5leGNsU2VsZWN0UGVybUNoZWNr VmFyaWQpCisJCQl7CisJCQkJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKworCQkJCWFjbHJlc3VsdCA9 IG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJCQlH ZXRVc2VySWQoKSwgQUNMX1NFTEVDVCk7CisJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19P SykKKwkJCQkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsCisJCQkJ CQkJCSAgIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsKKwkJCX0KKworCQkJZXN0 YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXS52YWx1ZSA9CisJCQkJR2V0U2Vzc2lvblZhcmlh YmxlKHZhcmlkLAorCQkJCQkJCQkgICAmZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXS5p c251bGwpOworCisJCQlpKys7CisJCX0KKworCQllc3RhdGUtPmVzX251bV9zZXNzaW9uX3Zhcmlh YmxlcyA9IG5TZXNzaW9uVmFyaWFibGVzOworCX0KKwogCS8qCiAJICogRmlsbCBpbiB0aGUgcXVl cnkgZW52aXJvbm1lbnQsIGlmIGFueSwgZnJvbSBxdWVyeURlc2MuCiAJICovCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L21lc29uLmJ1aWxkCmluZGV4IDJjZWE0MWY4NzcuLjQ5MTA5MmZjYzQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L21lc29uLmJ1aWxkCkBAIC02NCw2ICs2NCw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygK ICAgJ25vZGVXaW5kb3dBZ2cuYycsCiAgICdub2RlV29ya3RhYmxlc2Nhbi5jJywKICAgJ3NwaS5j JywKKyAgJ3N2YXJpYWJsZVJlY2VpdmVyLmMnLAogICAndHF1ZXVlLmMnLAogICAndHN0b3JlUmVj ZWl2ZXIuYycsCiApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVS ZWNlaXZlci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5jNjE2M2ZiMzZmCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwpAQCAtMCww ICsxLDE3MiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc3ZhcmlhYmxlUmVjZWl2ZXIu YworICoJICBBbiBpbXBsZW1lbnRhdGlvbiBvZiBEZXN0UmVjZWl2ZXIgdGhhdCBzdG9yZXMgdGhl IHJlc3VsdCB2YWx1ZSBpbgorICoJICBhIHNlc3Npb24gdmFyaWFibGUuCisgKgorICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50 IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVu aXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIK KworI2luY2x1ZGUgImFjY2Vzcy9kZXRvYXN0LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJp YWJsZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKKyNpbmNsdWRl ICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbG9jay5o IgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hl LmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworLyoKKyAqIFRoaXMgRGVzdFJlY2Vp dmVyIGlzIHVzZWQgYnkgdGhlIExFVCBjb21tYW5kIGZvciBzdG9yaW5nIHRoZSByZXN1bHQgdG8g YQorICogc2Vzc2lvbiB2YXJpYWJsZS4gIFRoZSByZXN1bHQgaGFzIHRvIGhhdmUgb25seSBvbmUg dHVwbGUgd2l0aCBvbmx5IG9uZQorICogbm9uLWRlbGV0ZWQgYXR0cmlidXRlLiAgVGhlIHJvdyBj b3VudGVyIChmaWVsZCAicm93cyIpIGlzIGluY3JlbWVudGVkCisgKiBhZnRlciByZWNlaXZpbmcg YSByb3csIGFuZCBhbiBlcnJvciBpcyByYWlzZWQgd2hlbiB0aGVyZSBhcmUgbm8gcm93cyBvcgor ICogdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgcmVjZWl2ZWQgcm93cy4gIEEgcmVjZWl2ZWQgdHVw bGUgY2Fubm90IHRvIGhhdmUKKyAqIGRlbGV0ZWQgYXR0cmlidXRlcy4gIFRoZSB2YWx1ZSBpcyBk ZXRvYXN0ZWQgYmVmb3JlIHN0b3JpbmcgaXQgaW4gdGhlCisgKiBzZXNzaW9uIHZhcmlhYmxlLgor ICovCit0eXBlZGVmIHN0cnVjdAoreworCURlc3RSZWNlaXZlciBwdWI7CisJT2lkCQkJdmFyaWQ7 CisJYm9vbAkJbmVlZF9kZXRvYXN0OwkJLyogZG8gd2UgbmVlZCB0byBkZXRvYXN0IHRoZSBhdHRy aWJ1dGU/ICovCisJaW50CQkJcm93czsJCQkJLyogcm93IGNvdW50ZXIgKi8KK30gU1ZhcmlhYmxl U3RhdGU7CisKKy8qCisgKiBQcmVwYXJlIHRvIHJlY2VpdmUgdHVwbGVzIGZyb20gZXhlY3V0b3Iu CisgKi8KK3N0YXRpYyB2b2lkCitzdmFyaWFibGVTdGFydHVwUmVjZWl2ZXIoRGVzdFJlY2VpdmVy ICpzZWxmLCBpbnQgb3BlcmF0aW9uLCBUdXBsZURlc2MgdHlwZWluZm8pCit7CisJU1ZhcmlhYmxl U3RhdGUgKm15U3RhdGUgPSAoU1ZhcmlhYmxlU3RhdGUgKikgc2VsZjsKKwlMT0NLVEFHCQlsb2Nr dGFnIFBHX1VTRURfRk9SX0FTU0VSVFNfT05MWTsKKwlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyOwor CU9pZAkJCXR5cGlkIFBHX1VTRURfRk9SX0FTU0VSVFNfT05MWTsKKwlPaWQJCQljb2xsaWQgUEdf VVNFRF9GT1JfQVNTRVJUU19PTkxZOworCWludDMyCQl0eXBtb2QgUEdfVVNFRF9GT1JfQVNTRVJU U19PTkxZOworCisJQXNzZXJ0KG15U3RhdGUtPnB1Yi5teWRlc3QgPT0gRGVzdFZhcmlhYmxlKTsK KwlBc3NlcnQoT2lkSXNWYWxpZChteVN0YXRlLT52YXJpZCkpOworCUFzc2VydChTZWFyY2hTeXND YWNoZUV4aXN0czEoVkFSSUFCTEVPSUQsIG15U3RhdGUtPnZhcmlkKSk7CisJQXNzZXJ0KHR5cGVp bmZvLT5uYXR0cyA9PSAxKTsKKworI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKworCVNFVF9M T0NLVEFHX09CSkVDVChsb2NrdGFnLAorCQkJCQkgICBNeURhdGFiYXNlSWQsCisJCQkJCSAgIFZh cmlhYmxlUmVsYXRpb25JZCwKKwkJCQkJICAgbXlTdGF0ZS0+dmFyaWQsCisJCQkJCSAgIDApOwor CisJQXNzZXJ0KExvY2tIZWxkQnlNZSgmbG9ja3RhZywgQWNjZXNzU2hhcmVMb2NrLCBmYWxzZSkp OworCisjZW5kaWYKKworCWF0dHIgPSBUdXBsZURlc2NBdHRyKHR5cGVpbmZvLCAwKTsKKworCUFz c2VydCghYXR0ci0+YXR0aXNkcm9wcGVkKTsKKworI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcK KworCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZChteVN0YXRlLT52YXJp ZCwKKwkJCQkJCQkJCQkJJnR5cGlkLAorCQkJCQkJCQkJCQkmdHlwbW9kLAorCQkJCQkJCQkJCQkm Y29sbGlkKTsKKworCUFzc2VydChhdHRyLT5hdHR0eXBpZCA9PSB0eXBpZCk7CisJQXNzZXJ0KGF0 dHItPmF0dHR5cG1vZCA8IDAgfHwgYXR0ci0+YXR0dHlwbW9kID09IHR5cG1vZCk7CisKKyNlbmRp ZgorCisJbXlTdGF0ZS0+bmVlZF9kZXRvYXN0ID0gYXR0ci0+YXR0bGVuID09IC0xOworCW15U3Rh dGUtPnJvd3MgPSAwOworfQorCisvKgorICogUmVjZWl2ZSBhIHR1cGxlIGZyb20gdGhlIGV4ZWN1 dG9yIGFuZCBzdG9yZSBpdCBpbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworc3RhdGljIGJv b2wKK3N2YXJpYWJsZVJlY2VpdmVTbG90KFR1cGxlVGFibGVTbG90ICpzbG90LCBEZXN0UmVjZWl2 ZXIgKnNlbGYpCit7CisJU1ZhcmlhYmxlU3RhdGUgKm15U3RhdGUgPSAoU1ZhcmlhYmxlU3RhdGUg Kikgc2VsZjsKKwlEYXR1bQkJdmFsdWU7CisJYm9vbAkJaXNudWxsOworCWJvb2wJCWZyZWV2YWwg PSBmYWxzZTsKKworCS8qIG1ha2Ugc3VyZSB0aGUgdHVwbGUgaXMgZnVsbHkgZGVjb25zdHJ1Y3Rl ZCAqLworCXNsb3RfZ2V0YWxsYXR0cnMoc2xvdCk7CisKKwl2YWx1ZSA9IHNsb3QtPnR0c192YWx1 ZXNbMF07CisJaXNudWxsID0gc2xvdC0+dHRzX2lzbnVsbFswXTsKKworCWlmIChteVN0YXRlLT5u ZWVkX2RldG9hc3QgJiYgIWlzbnVsbCAmJiBWQVJBVFRfSVNfRVhURVJOQUwoRGF0dW1HZXRQb2lu dGVyKHZhbHVlKSkpCisJeworCQl2YWx1ZSA9IFBvaW50ZXJHZXREYXR1bShkZXRvYXN0X2V4dGVy bmFsX2F0dHIoKHN0cnVjdCB2YXJsZW5hICopCisJCQkJCQkJCQkJCQkJICBEYXR1bUdldFBvaW50 ZXIodmFsdWUpKSk7CisJCWZyZWV2YWwgPSB0cnVlOworCX0KKworCW15U3RhdGUtPnJvd3MgKz0g MTsKKworCWlmIChteVN0YXRlLT5yb3dzID4gMSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX1RPT19NQU5ZX1JPV1MpLAorCQkJCSBlcnJtc2coImV4cHJlc3Npb24gcmV0 dXJuZWQgbW9yZSB0aGFuIG9uZSByb3ciKSkpOworCisJU2V0U2Vzc2lvblZhcmlhYmxlKG15U3Rh dGUtPnZhcmlkLCB2YWx1ZSwgaXNudWxsKTsKKworCWlmIChmcmVldmFsKQorCQlwZnJlZShEYXR1 bUdldFBvaW50ZXIodmFsdWUpKTsKKworCXJldHVybiB0cnVlOworfQorCisvKgorICogQ2xlYW4g dXAgYXQgZW5kIG9mIHRoZSBleGVjdXRvciBydW4KKyAqLworc3RhdGljIHZvaWQKK3N2YXJpYWJs ZVNodXRkb3duUmVjZWl2ZXIoRGVzdFJlY2VpdmVyICpzZWxmKQoreworCWlmICgoKFNWYXJpYWJs ZVN0YXRlICopIHNlbGYpLT5yb3dzID09IDApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9OT19EQVRBX0ZPVU5EKSwKKwkJCQkgZXJybXNnKCJleHByZXNzaW9uIHJldHVy bmVkIG5vIHJvd3MiKSkpOworfQorCisvKgorICogRGVzdHJveSB0aGUgcmVjZWl2ZXIgd2hlbiB3 ZSBhcmUgZG9uZSB3aXRoIGl0CisgKi8KK3N0YXRpYyB2b2lkCitzdmFyaWFibGVEZXN0cm95UmVj ZWl2ZXIoRGVzdFJlY2VpdmVyICpzZWxmKQoreworCXBmcmVlKHNlbGYpOworfQorCisvKgorICog SW5pdGlhbGx5IGNyZWF0ZSBhIERlc3RSZWNlaXZlciBvYmplY3QuCisgKi8KK0Rlc3RSZWNlaXZl ciAqCitDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcihPaWQgdmFyaWQpCit7CisJU1ZhcmlhYmxl U3RhdGUgKnNlbGYgPSAoU1ZhcmlhYmxlU3RhdGUgKikgcGFsbG9jMChzaXplb2YoU1ZhcmlhYmxl U3RhdGUpKTsKKworCXNlbGYtPnB1Yi5yZWNlaXZlU2xvdCA9IHN2YXJpYWJsZVJlY2VpdmVTbG90 OworCXNlbGYtPnB1Yi5yU3RhcnR1cCA9IHN2YXJpYWJsZVN0YXJ0dXBSZWNlaXZlcjsKKwlzZWxm LT5wdWIuclNodXRkb3duID0gc3ZhcmlhYmxlU2h1dGRvd25SZWNlaXZlcjsKKwlzZWxmLT5wdWIu ckRlc3Ryb3kgPSBzdmFyaWFibGVEZXN0cm95UmVjZWl2ZXI7CisJc2VsZi0+cHViLm15ZGVzdCA9 IERlc3RWYXJpYWJsZTsKKworCXNlbGYtPnZhcmlkID0gdmFyaWQ7CisKKwlyZXR1cm4gKERlc3RS ZWNlaXZlciAqKSBzZWxmOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1 bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCA3YmM4MjM1MDdmLi5k OGZjM2Q5ZmE2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysg Yi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtNDM3NSw2ICs0Mzc1LDE2IEBAIHJh d19leHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRy dWU7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQl7CisJCQkJTGV0U3Rt dCAgICAqc3RtdCA9IChMZXRTdG10ICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhzdG10LT50YXJn ZXQpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzdG10LT5xdWVyeSkpCisJCQkJ CXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6CiAJ CQl7CiAJCQkJUExBc3NpZ25TdG10ICpzdG10ID0gKFBMQXNzaWduU3RtdCAqKSBub2RlOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmluZGV4IDY4MDNlZGQwODUuLmRjNTc5Mjg3MTAg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYworKysgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKQEAgLTMzMyw2ICszMzMsMjEgQEAg c3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywg aW50IGN1cnNvck9wdGlvbnMsCiAJZ2xvYi0+bGFzdFBsYW5Ob2RlSWQgPSAwOwogCWdsb2ItPnRy YW5zaWVudFBsYW4gPSBmYWxzZTsKIAlnbG9iLT5kZXBlbmRzT25Sb2xlID0gZmFsc2U7CisJZ2xv Yi0+c2Vzc2lvblZhcmlhYmxlcyA9IE5JTDsKKworCS8qCisJICogVGhlIChzZXNzaW9uKSByZXN1 bHQgdmFyaWFibGUgc2hvdWxkIGJlIHN0b3JlZCB0byBnbG9iYWwsIGJlY2F1c2UKKwkgKiBpdCBp cyBub3Qgc2V0IGluIHN1YnF1ZXJ5LiAgV2hlbiB0aGlzIHZhcmlhYmxlIGlzIHVzZWQgb3RoZXIg dGhhbgorCSAqIGluIGJhc2Ugbm9kZSBvZiBhc3NpZ25tZW50IGluZGlyZWN0aW9uLCB3ZSBuZWVk IHRvIGNoZWNrIHRoZSBhY2Nlc3MKKwkgKiByaWdodHMgKGFuZCB0aGVuIHdlIG5lZWQgdG8gZGV0 ZWN0IHRoaXMgc2l0dWF0aW9uKS4gVGhlIHZhcmlhYmxlIHVzZWQKKwkgKiBsaWtlIGJhc2Ugbm9k ZSBjYW5ub3QgYmUgZGlmZmVyZW50IHRoYW4gdGFyZ2V0IChyZXN1bHQpIHZhcmlhYmxlLgorCSAq IEJlY2F1c2Ugd2Uga25vdyB0aGUgcmVzdWx0IHZhcmlhYmxlIGJlZm9yZSBwbGFubmVyIGludm9j YXRpb24sIHdlCisJICogY2FuIHNpbXBseSBzZWFyY2ggb2YgdXNhZ2UganVzdCB0aGlzIHZhcmlh YmxlLCBhbmQgd2UgZG9uJ3QgbmVlZCB0bworCSAqIHRvIHdhaXQgdW50aWwgdGhlIGVuZCBvZiBw bGFubmluZyB3aGVuIHdlIGtub3cgYmFzZW5vZGVTZXNzaW9uVmFyaWQuCisJICovCisJZ2xvYi0+ cmVzdWx0VmFyaWFibGUgPSBwYXJzZS0+cmVzdWx0VmFyaWFibGU7CisJZ2xvYi0+YmFzZW5vZGVT ZXNzaW9uVmFyaWQgPSBJbnZhbGlkT2lkOworCWdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhclNlbGVj dENoZWNrID0gZmFsc2U7CiAKIAkvKgogCSAqIEFzc2VzcyB3aGV0aGVyIGl0J3MgZmVhc2libGUg dG8gdXNlIHBhcmFsbGVsIG1vZGUgZm9yIHRoaXMgcXVlcnkuIFdlCkBAIC01NjcsNiArNTgyLDIw IEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJp bmcsIGludCBjdXJzb3JPcHRpb25zLAogCXJlc3VsdC0+cGFyYW1FeGVjVHlwZXMgPSBnbG9iLT5w YXJhbUV4ZWNUeXBlczsKIAkvKiB1dGlsaXR5U3RtdCBzaG91bGQgYmUgbnVsbCwgYnV0IHdlIG1p Z2h0IGFzIHdlbGwgY29weSBpdCAqLwogCXJlc3VsdC0+dXRpbGl0eVN0bXQgPSBwYXJzZS0+dXRp bGl0eVN0bXQ7CisKKwlyZXN1bHQtPnNlc3Npb25WYXJpYWJsZXMgPSBnbG9iLT5zZXNzaW9uVmFy aWFibGVzOworCisJLyoKKwkgKiBUaGUgc2Vzc2lvbiB2YXJpYWJsZSB1c2VkIChhbmQgb25seSB1 c2VkKSBsaWtlIGJhc2Ugbm9kZQorCSAqIGZvciBhc3NpZ25lbW50IGluZGlyZWN0aW9uIHNob3Vs ZCBiZSBleGNsdWRlZCBmcm9tIHBlcm1pc3Npb24KKwkgKiBjaGVjay4KKwkgKi8KKwlpZiAoT2lk SXNWYWxpZChnbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCkgJiYKKwkJKCFnbG9iLT5iYXNlbm9k ZVNlc3Npb25WYXJTZWxlY3RDaGVjaykpCisJCXJlc3VsdC0+ZXhjbFNlbGVjdFBlcm1DaGVja1Zh cmlkID0gZ2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQ7CisJZWxzZQorCQlyZXN1bHQtPmV4Y2xT ZWxlY3RQZXJtQ2hlY2tWYXJpZCA9IEludmFsaWRPaWQ7CisKIAlyZXN1bHQtPnN0bXRfbG9jYXRp b24gPSBwYXJzZS0+c3RtdF9sb2NhdGlvbjsKIAlyZXN1bHQtPnN0bXRfbGVuID0gcGFyc2UtPnN0 bXRfbGVuOwogCkBAIC03MzcsNiArNzY2LDEzIEBAIHN1YnF1ZXJ5X3BsYW5uZXIoUGxhbm5lckds b2JhbCAqZ2xvYiwgUXVlcnkgKnBhcnNlLCBQbGFubmVySW5mbyAqcGFyZW50X3Jvb3QsCiAJICov CiAJcHVsbF91cF9zdWJxdWVyaWVzKHJvb3QpOwogCisJLyoKKwkgKiBDaGVjayBpZiBzb21lIHN1 YnF1ZXJ5IHVzZXMgYSBzZXNzaW9uIHZhcmlhYmxlLiAgVGhlIGZsYWcKKwkgKiBoYXNTZXNzaW9u VmFyaWFibGVzIHNob3VsZCBiZSB0cnVlIGlmIHRoZSBxdWVyeSBvciBzb21lIHN1YnF1ZXJ5IHVz ZXMgYQorCSAqIHNlc3Npb24gdmFyaWFibGUuCisJICovCisJcHVsbF91cF9oYXNfc2Vzc2lvbl92 YXJpYWJsZXMocm9vdCk7CisKIAkvKgogCSAqIElmIHRoaXMgaXMgYSBzaW1wbGUgVU5JT04gQUxM IHF1ZXJ5LCBmbGF0dGVuIGl0IGludG8gYW4gYXBwZW5kcmVsLiBXZQogCSAqIGRvIHRoaXMgbm93 IGJlY2F1c2UgaXQgcmVxdWlyZXMgYXBwbHlpbmcgcHVsbF91cF9zdWJxdWVyaWVzIHRvIHRoZSBs ZWFmCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKaW5kZXggMWU3YjdiYzZmZi4uODA1 YzZjY2IxNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5j CisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwpAQCAtMjEwLDYgKzIx MCw5IEBAIHN0YXRpYyBMaXN0ICpzZXRfcmV0dXJuaW5nX2NsYXVzZV9yZWZlcmVuY2VzKFBsYW5u ZXJJbmZvICpyb290LAogc3RhdGljIExpc3QgKnNldF93aW5kb3dhZ2dfcnVuY29uZGl0aW9uX3Jl ZmVyZW5jZXMoUGxhbm5lckluZm8gKnJvb3QsCiAJCQkJCQkJCQkJCQkgICBMaXN0ICpydW5jb25k aXRpb24sCiAJCQkJCQkJCQkJCQkgICBQbGFuICpwbGFuKTsKK3N0YXRpYyBib29sIHB1bGxfdXBf aGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlcihOb2RlICpub2RlLAorCQkJCQkJCQkJCQkJIFBs YW5uZXJJbmZvICpyb290KTsKK3N0YXRpYyB2b2lkIHJlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVu ZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB2YXJpZCk7CiAKIAogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCkBAIC0xMzA5LDYgKzEzMTIsNTAgQEAgc2V0X3BsYW5fcmVmcyhQbGFubmVySW5mbyAq cm9vdCwgUGxhbiAqcGxhbiwgaW50IHJ0b2Zmc2V0KQogCXJldHVybiBwbGFuOwogfQogCisvKgor ICogU2VhcmNoIHVzYWdlIG9mIHNlc3Npb24gdmFyaWFibGVzIGluIHN1YnF1ZXJpZXMKKyAqLwor dm9pZAorcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXMoUGxhbm5lckluZm8gKnJvb3QpCit7 CisJUXVlcnkJICAgKnF1ZXJ5ID0gcm9vdC0+cGFyc2U7CisKKwlpZiAocXVlcnktPmhhc1Nlc3Np b25WYXJpYWJsZXMpCisJeworCQlyb290LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsKKwl9 CisJZWxzZQorCXsKKwkJKHZvaWQpIHF1ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5LAorCQkJCQkJCQkg cHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkgKHZvaWQgKikg cm9vdCwgMCk7CisJfQorfQorCitzdGF0aWMgYm9vbAorcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJp YWJsZXNfd2Fsa2VyKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpyb290KQoreworCWlmIChub2Rl ID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKwlpZiAoSXNBKG5vZGUsIFF1ZXJ5KSkKKwl7CisJ CVF1ZXJ5CSAgICpxdWVyeSA9IChRdWVyeSAqKSBub2RlOworCisJCWlmIChxdWVyeS0+aGFzU2Vz c2lvblZhcmlhYmxlcykKKwkJeworCQkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7 CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKworCQkvKiByZWN1cnNlIGludG8gc3Vic2VsZWN0cyAq LworCQlyZXR1cm4gcXVlcnlfdHJlZV93YWxrZXIoKFF1ZXJ5ICopIG5vZGUsCisJCQkJCQkJCSBw dWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIsCisJCQkJCQkJCSAodm9pZCAqKSBy b290LCAwKTsKKwl9CisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgcHVsbF91 cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkgICh2b2lkICopIHJvb3Qp OworfQorCiAvKgogICogc2V0X2luZGV4b25seXNjYW5fcmVmZXJlbmNlcwogICoJCURvIHNldF9w bGFuX3JlZmVyZW5jZXMgcHJvY2Vzc2luZyBvbiBhbiBJbmRleE9ubHlTY2FuCkBAIC0xOTY5LDgg KzIwMTYsOSBAQCBjb3B5VmFyKFZhciAqdmFyKQogICogVGhpcyBpcyBjb2RlIHRoYXQgaXMgY29t bW9uIHRvIGFsbCB2YXJpYW50cyBvZiBleHByZXNzaW9uLWZpeGluZy4KICAqIFdlIG11c3QgbG9v ayB1cCBvcGVyYXRvciBvcGNvZGUgaW5mbyBmb3IgT3BFeHByIGFuZCByZWxhdGVkIG5vZGVzLAog ICogYWRkIE9JRHMgZnJvbSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmdsb2ItPnJl bGF0aW9uT2lkcywgYW5kCi0gKiBhZGQgUGxhbkludmFsSXRlbXMgZm9yIHVzZXItZGVmaW5lZCBm dW5jdGlvbnMgaW50byByb290LT5nbG9iLT5pbnZhbEl0ZW1zLgotICogV2UgYWxzbyBmaWxsIGlu IGNvbHVtbiBpbmRleCBsaXN0cyBmb3IgR1JPVVBJTkcoKSBleHByZXNzaW9ucy4KKyAqIGFkZCBQ bGFuSW52YWxJdGVtcyBmb3IgdXNlci1kZWZpbmVkIGZ1bmN0aW9ucyBhbmQgc2Vzc2lvbiB2YXJp YWJsZXMgaW50bworICogcm9vdC0+Z2xvYi0+aW52YWxJdGVtcy4gIFdlIGFsc28gZmlsbCBpbiBj b2x1bW4gaW5kZXggbGlzdHMgZm9yIEdST1VQSU5HKCkKKyAqIGV4cHJlc3Npb25zLgogICoKICAq IFdlIGFzc3VtZSBpdCdzIG9rYXkgdG8gdXBkYXRlIG9wY29kZSBpbmZvIGluLXBsYWNlLiAgU28g dGhpcyBjb3VsZCBwb3NzaWJseQogICogc2NyaWJibGUgb24gdGhlIHBsYW5uZXIncyBpbnB1dCBk YXRhIHN0cnVjdHVyZXMsIGJ1dCBpdCdzIE9LLgpAQCAtMjA2MCw2ICsyMTA4LDEzIEBAIGZpeF9l eHByX2NvbW1vbihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSkKIAkJCQlnLT5jb2xzID0g Y29sczsKIAkJfQogCX0KKwllbHNlIGlmIChJc0Eobm9kZSwgUGFyYW0pKQorCXsKKwkJUGFyYW0J ICAgKnAgPSAoUGFyYW0gKikgbm9kZTsKKworCQlpZiAocC0+cGFyYW1raW5kID09IFBBUkFNX1ZB UklBQkxFKQorCQkJcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5jeShyb290LCBwLT5wYXJh bXZhcmlkKTsKKwl9CiB9CiAKIC8qCkBAIC0yMDY5LDYgKzIxMjQsMTAgQEAgZml4X2V4cHJfY29t bW9uKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpub2RlKQogICogSWYgaXQncyBhIFBBUkFNX01V TFRJRVhQUiwgcmVwbGFjZSBpdCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBQYXJhbSBmcm9tCiAgKiBy b290LT5tdWx0aWV4cHJfcGFyYW1zOyBvdGhlcndpc2Ugbm8gY2hhbmdlIGlzIG5lZWRlZC4KICAq IEp1c3QgZm9yIHBhcmFub2lhJ3Mgc2FrZSwgd2UgbWFrZSBhIGNvcHkgb2YgdGhlIG5vZGUgaW4g ZWl0aGVyIGNhc2UuCisgKgorICogSWYgaXQncyBhIFBBUkFNX1ZBUklBQkxFLCB0aGVuIHdlIGNv bGxlY3QgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyBpbgorICogdGhlIGxpc3Qgcm9vdC0+Z2xvYi0+ c2Vzc2lvblZhcmlhYmxlLiAgQWxzbywgYXNzaWduIHRoZSBwYXJhbWV0ZXIncworICogInBhcmFt aWQiIHRvIHRoZSBwYXJhbWV0ZXIncyBwb3NpdGlvbiBpbiB0aGF0IGxpc3QuCiAgKi8KIHN0YXRp YyBOb2RlICoKIGZpeF9wYXJhbV9ub2RlKFBsYW5uZXJJbmZvICpyb290LCBQYXJhbSAqcCkKQEAg LTIwODcsNiArMjE0Niw2MiBAQCBmaXhfcGFyYW1fbm9kZShQbGFubmVySW5mbyAqcm9vdCwgUGFy YW0gKnApCiAJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBQQVJBTV9NVUxUSUVYUFIgSUQ6ICVk IiwgcC0+cGFyYW1pZCk7CiAJCXJldHVybiBjb3B5T2JqZWN0KGxpc3RfbnRoKHBhcmFtcywgY29s bm8gLSAxKSk7CiAJfQorCisJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwl7 CisJCWludAkJCW4gPSAwOworCQlib29sCQlmb3VuZCA9IGZhbHNlOworCisJCS8qIHdlIHdpbGwg bW9kaWZ5IG9iamVjdCAqLworCQlwID0gKFBhcmFtICopIGNvcHlPYmplY3QocCk7CisKKwkJLyoK KwkJICogTm93LCB3ZSBjYW4gYWN0dWFsaXplIGxpc3Qgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMsIGFu ZCB3ZSBjYW4KKwkJICogY29tcGxldGUgcGFyYW1pZCBwYXJhbWV0ZXIuCisJCSAqLworCQlmb3Jl YWNoX29pZCh2YXJpZCwgcm9vdC0+Z2xvYi0+c2Vzc2lvblZhcmlhYmxlcykKKwkJeworCQkJaWYg KHZhcmlkID09IHAtPnBhcmFtdmFyaWQpCisJCQl7CisJCQkJcC0+cGFyYW1pZCA9IG47CisJCQkJ Zm91bmQgPSB0cnVlOworCQkJCWJyZWFrOworCQkJfQorCQkJbiArPSAxOworCQl9CisKKwkJaWYg KCFmb3VuZCkKKwkJeworCQkJcm9vdC0+Z2xvYi0+c2Vzc2lvblZhcmlhYmxlcyA9IGxhcHBlbmRf b2lkKHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMsCisJCQkJCQkJCQkJCQkJICAgcC0+cGFy YW12YXJpZCk7CisJCQlwLT5wYXJhbWlkID0gbjsKKwkJfQorCisJCS8qCisJCSAqIFdlIGRvIFNF TEVDVCBwZXJtaXNzaW9uIGNoZWNrIG9mIGFsbCB2YXJpYWJsZXMgdXNlZCBieQorCQkgKiB0aGUg cXVlcnkgZXhjbHVkaW5nIHRoZSB2YXJpYWJsZSB0aGF0IGlzIHVzZWQgb25seSBhcyBiYXNlIG5v ZGUKKwkJICogb2YgYXNzaWdubWVudCBpbmRpcmVjdGlvbi4gVGhlIHZhcmlhYmxlIGlkIGFzc2ln bmVkIHRvIHRoaXMgcGFyYW0KKwkJICogc2hvdWxkIGJlIHNhbWUgbGlrZSByZXN1bHRWYXJpYWJs ZSBpZCwgYW5kIHRoaXMgcGFyYW0gc2hvdWxkIGJlCisJCSAqIHVzZWQgb25seSBvbmNlIGluIHF1 ZXJ5LiBXaGVuIHRoZSB2YXJpYWJsZSBpcyByZWZlcmVuY2VkIGJ5IGFueQorCQkgKiBvdGhlciBw YXJhbSwgd2Ugc2hvdWxkIHRvIGRvIFNFTEVDVCBwZXJtaXNzaW9uIGNoZWNrIGZvciB0aGlzIHZh cmlhYmxlCisJCSAqIHRvby4KKwkJICovCisJCWlmIChwLT5wYXJhbWJhc2Vub2RlKQorCQl7CisJ CQlBc3NlcnQoIU9pZElzVmFsaWQocm9vdC0+Z2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQpKTsK KwkJCUFzc2VydChyb290LT5nbG9iLT5yZXN1bHRWYXJpYWJsZSA9PSBwLT5wYXJhbXZhcmlkKTsK KworCQkJcm9vdC0+Z2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQgPSBwLT5wYXJhbXZhcmlkOwor CQl9CisJCWVsc2UKKwkJeworCQkJaWYgKHAtPnBhcmFtdmFyaWQgPT0gcm9vdC0+Z2xvYi0+cmVz dWx0VmFyaWFibGUpCisJCQkJcm9vdC0+Z2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyU2VsZWN0Q2hl Y2sgPSB0cnVlOworCQl9CisKKwkJcmV0dXJuIChOb2RlICopIHA7CisJfQorCiAJcmV0dXJuIChO b2RlICopIGNvcHlPYmplY3QocCk7CiB9CiAKQEAgLTIxNDgsNyArMjI2MywxMCBAQCBmaXhfYWx0 ZXJuYXRpdmVfc3VicGxhbihQbGFubmVySW5mbyAqcm9vdCwgQWx0ZXJuYXRpdmVTdWJQbGFuICph c3BsYW4sCiAgKiByZXBsYWNpbmcgQWdncmVmIG5vZGVzIHRoYXQgc2hvdWxkIGJlIHJlcGxhY2Vk IGJ5IGluaXRwbGFuIG91dHB1dCBQYXJhbXMsCiAgKiBjaG9vc2luZyB0aGUgYmVzdCBpbXBsZW1l bnRhdGlvbiBmb3IgQWx0ZXJuYXRpdmVTdWJQbGFucywKICAqIGxvb2tpbmcgdXAgb3BlcmF0b3Ig b3Bjb2RlIGluZm8gZm9yIE9wRXhwciBhbmQgcmVsYXRlZCBub2RlcywKLSAqIGFuZCBhZGRpbmcg T0lEcyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25P aWRzLgorICogYWRkaW5nIE9JRHMgZnJvbSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3Qt Pmdsb2ItPnJlbGF0aW9uT2lkcywKKyAqIGFzc2lnbmluZyBwYXJhbXZhcmlkIHRvIFBBUkFNX1ZB UklBQkxFIHBhcmFtcywgYW5kIGNvbGxlY3RpbmcgdGhlCisgKiBPSURzIG9mIHNlc3Npb24gdmFy aWFibGVzIGluIHRoZSByb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzIGxpc3QKKyAqIChwYXJh bXZhcmlkIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGlzIGxp c3QpLgogICoKICAqICdub2RlJzogdGhlIGV4cHJlc3Npb24gdG8gYmUgbW9kaWZpZWQKICAqICdy dG9mZnNldCc6IGhvdyBtdWNoIHRvIGluY3JlbWVudCB2YXJub3MgYnkKQEAgLTIxNzAsNyArMjI4 OCw4IEBAIGZpeF9zY2FuX2V4cHIoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUsIGludCBy dG9mZnNldCwgZG91YmxlIG51bV9leGVjKQogCQlyb290LT5tdWx0aWV4cHJfcGFyYW1zICE9IE5J TCB8fAogCQlyb290LT5nbG9iLT5sYXN0UEhJZCAhPSAwIHx8CiAJCXJvb3QtPm1pbm1heF9hZ2dz ICE9IE5JTCB8fAotCQlyb290LT5oYXNBbHRlcm5hdGl2ZVN1YlBsYW5zKQorCQlyb290LT5oYXNB bHRlcm5hdGl2ZVN1YlBsYW5zIHx8CisJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJewog CQlyZXR1cm4gZml4X3NjYW5fZXhwcl9tdXRhdG9yKG5vZGUsICZjb250ZXh0KTsKIAl9CkBAIC0z NTYzLDYgKzM2ODIsMjUgQEAgcmVjb3JkX3BsYW5fdHlwZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZv ICpyb290LCBPaWQgdHlwaWQpCiAJfQogfQogCisvKgorICogUmVjb3JkIGRlcGVuZGVuY3kgb24g YSBzZXNzaW9uIHZhcmlhYmxlLiAgVGhlIHZhcmlhYmxlIGNhbiBiZSB1c2VkIGFzIGEKKyAqIHNl c3Npb24gdmFyaWFibGUgaW4gYW4gZXhwcmVzc2lvbiBsaXN0LCBvciBhcyB0aGUgdGFyZ2V0IG9m IGEgTEVUIHN0YXRlbWVudC4KKyAqLworc3RhdGljIHZvaWQKK3JlY29yZF9wbGFuX3ZhcmlhYmxl X2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB2YXJpZCkKK3sKKwlQbGFuSW52YWxJ dGVtICppbnZhbF9pdGVtID0gbWFrZU5vZGUoUGxhbkludmFsSXRlbSk7CisKKwkvKiBwYXJhbWlk IGlzIHN0aWxsIHNlc3Npb24gdmFyaWFibGUgaWQgKi8KKwlpbnZhbF9pdGVtLT5jYWNoZUlkID0g VkFSSUFCTEVPSUQ7CisJaW52YWxfaXRlbS0+aGFzaFZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFs dWUxKFZBUklBQkxFT0lELAorCQkJCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7 CisKKwkvKiBhcHBlbmQgdGhpcyB2YXJpYWJsZSB0byBnbG9iYWwsIHJlZ2lzdGVyIGRlcGVuZGVu Y3kgKi8KKwlyb290LT5nbG9iLT5pbnZhbEl0ZW1zID0gbGFwcGVuZChyb290LT5nbG9iLT5pbnZh bEl0ZW1zLAorCQkJCQkJCQkJIGludmFsX2l0ZW0pOworfQorCiAvKgogICogZXh0cmFjdF9xdWVy eV9kZXBlbmRlbmNpZXMKICAqCQlHaXZlbiBhIHJld3JpdHRlbiwgYnV0IG5vdCB5ZXQgcGxhbm5l ZCwgcXVlcnkgb3IgcXVlcmllcwpAQCAtMzY0OCw5ICszNzg2LDkgQEAgZXh0cmFjdF9xdWVyeV9k ZXBlbmRlbmNpZXNfd2Fsa2VyKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCQkJ fQogCiAJCQkvKgotCQkJICogSWdub3JlIG90aGVyIHV0aWxpdHkgc3RhdGVtZW50cywgZXhjZXB0 IHRob3NlIChzdWNoIGFzIEVYUExBSU4pCi0JCQkgKiB0aGF0IGNvbnRhaW4gYSBwYXJzZWQtYnV0 LW5vdC1wbGFubmVkIHF1ZXJ5LiAgRm9yIHRob3NlLCB3ZQotCQkJICoganVzdCBuZWVkIHRvIHRy YW5zZmVyIG91ciBhdHRlbnRpb24gdG8gdGhlIGNvbnRhaW5lZCBxdWVyeS4KKwkJCSAqIElnbm9y ZSBvdGhlciB1dGlsaXR5IHN0YXRlbWVudHMsIGV4Y2VwdCB0aG9zZSAoc3VjaCBhcyBFWFBMQUlO CisJCQkgKiBvciBMRVQpIHRoYXQgY29udGFpbiBhIHBhcnNlZC1idXQtbm90LXBsYW5uZWQgcXVl cnkuICBGb3IgdGhvc2UsCisJCQkgKiB3ZSBqdXN0IG5lZWQgdG8gdHJhbnNmZXIgb3VyIGF0dGVu dGlvbiB0byB0aGUgY29udGFpbmVkIHF1ZXJ5LgogCQkJICovCiAJCQlxdWVyeSA9IFV0aWxpdHlD b250YWluc1F1ZXJ5KHF1ZXJ5LT51dGlsaXR5U3RtdCk7CiAJCQlpZiAocXVlcnkgPT0gTlVMTCkK QEAgLTM2NzMsNiArMzgxMSwxMCBAQCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIo Tm9kZSAqbm9kZSwgUGxhbm5lckluZm8gKmNvbnRleHQpCiAJCQkJCWxhcHBlbmRfb2lkKGNvbnRl eHQtPmdsb2ItPnJlbGF0aW9uT2lkcywgcnRlLT5yZWxpZCk7CiAJCX0KIAorCQkvKiByZWNvcmQg ZGVwZW5kZW5jeSBvbiB0aGUgdGFyZ2V0IHZhcmlhYmxlIG9mIGEgTEVUIGNvbW1hbmQgKi8KKwkJ aWYgKE9pZElzVmFsaWQocXVlcnktPnJlc3VsdFZhcmlhYmxlKSkKKwkJCXJlY29yZF9wbGFuX3Zh cmlhYmxlX2RlcGVuZGVuY3koY29udGV4dCwgcXVlcnktPnJlc3VsdFZhcmlhYmxlKTsKKwogCQkv KiBBbmQgcmVjdXJzZSBpbnRvIHRoZSBxdWVyeSdzIHN1YmV4cHJlc3Npb25zICovCiAJCXJldHVy biBxdWVyeV90cmVlX3dhbGtlcihxdWVyeSwgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fs a2VyLAogCQkJCQkJCQkgY29udGV4dCwgMCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3By ZXBqb2ludHJlZS5jCmluZGV4IDVkOTIyNWU5OTAuLjcxNDc5Y2ViMWIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCisrKyBiL3NyYy9iYWNrZW5k L29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCkBAIC0xNDMyLDYgKzE0MzIsOSBAQCBwdWxs X3VwX3NpbXBsZV9zdWJxdWVyeShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqanRub2RlLCBSYW5n ZVRibEVudHJ5ICpydGUsCiAJLyogSWYgc3VicXVlcnkgaGFkIGFueSBSTFMgY29uZGl0aW9ucywg bm93IG1haW4gcXVlcnkgZG9lcyB0b28gKi8KIAlwYXJzZS0+aGFzUm93U2VjdXJpdHkgfD0gc3Vi cXVlcnktPmhhc1Jvd1NlY3VyaXR5OwogCisJLyogaWYgdGhlIHN1YnF1ZXJ5IGhhZCBzZXNzaW9u IHZhcmlhYmxlcywgdGhlIG1haW4gcXVlcnkgZG9lcyB0b28gKi8KKwlwYXJzZS0+aGFzU2Vzc2lv blZhcmlhYmxlcyB8PSBzdWJxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlczsKKwogCS8qCiAJICog c3VicXVlcnkgd29uJ3QgYmUgcHVsbGVkIHVwIGlmIGl0IGhhc0FnZ3MsIGhhc1dpbmRvd0Z1bmNz LCBvcgogCSAqIGhhc1RhcmdldFNSRnMsIHNvIG5vIHdvcmsgbmVlZGVkIG9uIHRob3NlIGZsYWdz CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMgYi9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKaW5kZXggNDNkZmVjZmI0Ny4uZjYwODI4 Zjg2MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisr KyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwpAQCAtMjQsNiArMjQsNyBA QAogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNp bmNsdWRlICJleGVjdXRvci9mdW5jdGlvbnMuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC05 MzQsNiArOTM1LDEzIEBAIG1heF9wYXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5vZGUsIG1h eF9wYXJhbGxlbF9oYXphcmRfY29udGV4dCAqY29udGV4dCkKIAkJaWYgKHBhcmFtLT5wYXJhbWtp bmQgPT0gUEFSQU1fRVhURVJOKQogCQkJcmV0dXJuIGZhbHNlOwogCisJCS8qIHdlIGRvbid0IHN1 cHBvcnQgcGFzc2luZyBzZXNzaW9uIHZhcmlhYmxlcyB0byB3b3JrZXJzICovCisJCWlmIChwYXJh bS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQl7CisJCQlpZiAobWF4X3BhcmFsbGVs X2hhemFyZF90ZXN0KFBST1BBUkFMTEVMX1JFU1RSSUNURUQsIGNvbnRleHQpKQorCQkJCXJldHVy biB0cnVlOworCQl9CisKIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhFQyB8fAog CQkJIWxpc3RfbWVtYmVyX2ludChjb250ZXh0LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0tPnBhcmFt aWQpKQogCQl7CkBAIC0yMzg5LDYgKzIzOTcsNyBAQCBjb252ZXJ0X3Nhb3BfdG9faGFzaGVkX3Nh b3Bfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAgKgkgIHZhbHVlIG9mIHRoZSBQ YXJhbS4KICAqIDIuIEZvbGQgc3RhYmxlLCBhcyB3ZWxsIGFzIGltbXV0YWJsZSwgZnVuY3Rpb25z IHRvIGNvbnN0YW50cy4KICAqIDMuIFJlZHVjZSBQbGFjZUhvbGRlclZhciBub2RlcyB0byB0aGVp ciBjb250YWluZWQgZXhwcmVzc2lvbnMuCisgKiA0LiBDdXJyZW50IHZhbHVlIG9mIHNlc3Npb24g dmFyaWFibGUgY2FuIGJlIHVzZWQgZm9yIGVzdGltYXRpb24gdG9vLgogICotLS0tLS0tLS0tLS0t LS0tLS0tLQogICovCiBOb2RlICoKQEAgLTI1MTUsNiArMjUyNCwyNyBAQCBldmFsX2NvbnN0X2V4 cHJlc3Npb25zX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJCQkJCX0KIAkJCQkJfQogCQkJCX0KKwkJ CQllbHNlIGlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFICYmCisJCQkJCQkg Y29udGV4dC0+ZXN0aW1hdGUpCisJCQkJeworCQkJCQlpbnQxNgkJdHlwTGVuOworCQkJCQlib29s CQl0eXBCeVZhbDsKKwkJCQkJRGF0dW0JCXB2YWw7CisJCQkJCWJvb2wJCWlzbnVsbDsKKworCQkJ CQlnZXRfdHlwbGVuYnl2YWwocGFyYW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCSZ0eXBMZW4sICZ0 eXBCeVZhbCk7CisKKwkJCQkJcHZhbCA9IEdldFNlc3Npb25WYXJpYWJsZShwYXJhbS0+cGFyYW12 YXJpZCwgJmlzbnVsbCk7CisKKwkJCQkJcmV0dXJuIChOb2RlICopIG1ha2VDb25zdChwYXJhbS0+ cGFyYW10eXBlLAorCQkJCQkJCQkJCQkgIHBhcmFtLT5wYXJhbXR5cG1vZCwKKwkJCQkJCQkJCQkJ ICBwYXJhbS0+cGFyYW1jb2xsaWQsCisJCQkJCQkJCQkJCSAgKGludCkgdHlwTGVuLAorCQkJCQkJ CQkJCQkgIHB2YWwsCisJCQkJCQkJCQkJCSAgaXNudWxsLAorCQkJCQkJCQkJCQkgIHR5cEJ5VmFs KTsKKwkJCQl9CiAKIAkJCQkvKgogCQkJCSAqIE5vdCByZXBsYWNlYWJsZSwgc28ganVzdCBjb3B5 IHRoZSBQYXJhbSAobm8gbmVlZCB0bwpAQCAtNDcyMCw3ICs0NzUwLDggQEAgaW5saW5lX2Z1bmN0 aW9uKE9pZCBmdW5jaWQsIE9pZCByZXN1bHRfdHlwZSwgT2lkIHJlc3VsdF9jb2xsaWQsCiAJCXF1 ZXJ5dHJlZS0+bGltaXRPZmZzZXQgfHwKIAkJcXVlcnl0cmVlLT5saW1pdENvdW50IHx8CiAJCXF1 ZXJ5dHJlZS0+c2V0T3BlcmF0aW9ucyB8fAotCQlsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRhcmdl dExpc3QpICE9IDEpCisJCShsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRhcmdldExpc3QpICE9IDEp IHx8CisJCXF1ZXJ5dHJlZS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAkJZ290byBmYWlsOwogCiAJ LyogSWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBjb21wb3NpdGUsIHJlc29sdmUgaXQgKi8KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJz ZXIvYW5hbHl6ZS5jCmluZGV4IDc2ZjU4YjNhY2EuLjcyNWY2NzhlMmYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5 emUuYwpAQCAtMjUsOSArMjUsMTIgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVk ZSAiYWNjZXNzL3N5c2F0dHIuaCIKKyNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZy ZW0uaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAi bWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9k ZXMvbm9kZUZ1bmNzLmgiCkBAIC01MSw2ICs1NCw3IEBACiAjaW5jbHVkZSAidXRpbHMvYmFja2Vu ZF9zdGF0dXMuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxz L2d1Yy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3Jl bC5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKQEAgLTgzLDYgKzg3LDggQEAgc3Rh dGljIFF1ZXJ5ICp0cmFuc2Zvcm1DcmVhdGVUYWJsZUFzU3RtdChQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQkJCQkJCQkJIENyZWF0ZVRhYmxlQXNTdG10ICpzdG10KTsKIHN0YXRpYyBRdWVyeSAqdHJh bnNmb3JtQ2FsbFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQlDYWxsU3RtdCAqc3Rt dCk7CitzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAor CQkJCQkJCSAgIExldFN0bXQgKnN0bXQpOwogc3RhdGljIHZvaWQgdHJhbnNmb3JtTG9ja2luZ0Ns YXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIFF1ZXJ5ICpxcnksCiAJCQkJCQkJCSAgIExvY2tpbmdD bGF1c2UgKmxjLCBib29sIHB1c2hlZERvd24pOwogI2lmZGVmIERFQlVHX05PREVfVEVTVFNfRU5B QkxFRApAQCAtNDE0LDYgKzQyMCw3IEBAIHRyYW5zZm9ybVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpwYXJzZVRyZWUpCiAJCQljYXNlIFRfVXBkYXRlU3RtdDoKIAkJCWNhc2UgVF9EZWxl dGVTdG10OgogCQkJY2FzZSBUX01lcmdlU3RtdDoKKwkJCWNhc2UgVF9MZXRTdG10OgogCQkJCSh2 b2lkKSB0ZXN0X3Jhd19leHByZXNzaW9uX2NvdmVyYWdlKHBhcnNlVHJlZSwgTlVMTCk7CiAJCQkJ YnJlYWs7CiAJCQlkZWZhdWx0OgpAQCAtNDkzLDYgKzUwMCwxMSBAQCB0cmFuc2Zvcm1TdG10KFBh cnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqcGFyc2VUcmVlKQogCQkJCQkJCQkJICAgKENhbGxTdG10 ICopIHBhcnNlVHJlZSk7CiAJCQlicmVhazsKIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXJlc3Vs dCA9IHRyYW5zZm9ybUxldFN0bXQocHN0YXRlLAorCQkJCQkJCQkJICAoTGV0U3RtdCAqKSBwYXJz ZVRyZWUpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAogCQkJLyoKQEAgLTU0NSw2ICs1NTcs NyBAQCBzdG10X3JlcXVpcmVzX3BhcnNlX2FuYWx5c2lzKFJhd1N0bXQgKnBhcnNlVHJlZSkKIAkJ Y2FzZSBUX1NlbGVjdFN0bXQ6CiAJCWNhc2UgVF9SZXR1cm5TdG10OgogCQljYXNlIFRfUExBc3Np Z25TdG10OgorCQljYXNlIFRfTGV0U3RtdDoKIAkJCXJlc3VsdCA9IHRydWU7CiAJCQlicmVhazsK IApAQCAtNjUzLDYgKzY2Niw3IEBAIHRyYW5zZm9ybURlbGV0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBEZWxldGVTdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBf aGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1Rhcmdl dFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNz aW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25f cXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTEwNzgsNiArMTA5Miw3IEBAIHRy YW5zZm9ybUluc2VydFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBJbnNlcnRTdG10ICpzdG10KQog CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5o YXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxcnktPmhhc1Nlc3Npb25WYXJp YWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9j b2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMTU0Myw2ICsxNTU4LDcgQEAgdHJhbnNmb3Jt U2VsZWN0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQpCiAJcXJ5LT5o YXNXaW5kb3dGdW5jcyA9IHBzdGF0ZS0+cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1Rhcmdl dFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUt PnBfaGFzQWdnczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vz c2lvblZhcmlhYmxlczsKIAogCWZvcmVhY2gobCwgc3RtdC0+bG9ja2luZ0NsYXVzZSkKIAl7CkBA IC0xNzY5LDEyICsxNzg1LDI0MSBAQCB0cmFuc2Zvcm1WYWx1ZXNDbGF1c2UoUGFyc2VTdGF0ZSAq cHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCXFyeS0+am9pbnRyZWUgPSBtYWtlRnJvbUV4cHIo cHN0YXRlLT5wX2pvaW5saXN0LCBOVUxMKTsKIAogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUt PnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hh c1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFy eSk7CiAKIAlyZXR1cm4gcXJ5OwogfQogCisvKgorICogdHJhbnNmb3JtTGV0U3RtdCAtCisgKgkg IHRyYW5zZm9ybSBhbiBMZXQgU3RhdGVtZW50CisgKi8KK3N0YXRpYyBRdWVyeSAqCit0cmFuc2Zv cm1MZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCkKK3sKKwlRdWVyeQkg ICAqcXVlcnk7CisJUXVlcnkJICAgKnJlc3VsdDsKKwlMaXN0CSAgICpleHByTGlzdCA9IE5JTDsK KwlMaXN0CSAgICpleHByTGlzdENvZXIgPSBOSUw7CisJTGlzdENlbGwgICAqbGM7CisJTGlzdENl bGwgICAqaW5kaXJlY3Rpb25faGVhZCA9IE5VTEw7CisJUXVlcnkJICAgKnNlbGVjdFF1ZXJ5Owor CU9pZAkJCXZhcmlkOworCWNoYXIJICAgKmF0dHJuYW1lID0gTlVMTDsKKwlib29sCQlub3RfdW5p cXVlOworCWJvb2wJCWlzX3Jvd3R5cGU7CisJT2lkCQkJdHlwaWQ7CisJaW50MzIJCXR5cG1vZDsK KwlPaWQJCQljb2xsaWQ7CisJTGlzdAkgICAqbmFtZXMgPSBOVUxMOworCWludAkJCWluZGlyZWN0 aW9uX3N0YXJ0OworCWludAkJCWkgPSAwOworCisJLyogdGhlcmUgY2FuJ3QgYmUgYW55IG91dGVy IFdJVEggdG8gd29ycnkgYWJvdXQgKi8KKwlBc3NlcnQocHN0YXRlLT5wX2N0ZW5hbWVzcGFjZSA9 PSBOSUwpOworCisJbmFtZXMgPSBOYW1lc0Zyb21MaXN0KHN0bXQtPnRhcmdldCk7CisKKwkvKiBs b2NrcyB0aGUgdmFyaWFibGUgd2l0aCBhbiBBY2Nlc3NTaGFyZUxvY2sgKi8KKwl2YXJpZCA9IElk ZW50aWZ5VmFyaWFibGUobmFtZXMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNlKTsKKwlp ZiAobm90X3VuaXF1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0FN QklHVU9VU19QQVJBTUVURVIpLAorCQkJCSBlcnJtc2coInRhcmdldCBcIiVzXCIgb2YgTEVUIGNv bW1hbmQgaXMgYW1iaWd1b3VzIiwKKwkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSwKKwkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+bG9jYXRpb24pKSk7CisKKwlpZiAo IU9pZElzVmFsaWQodmFyaWQpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVz XCIgZG9lc24ndCBleGlzdCIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSksCisJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0aW9uKSkpOworCisJLyoKKwkg KiBDYWxjdWxhdGUgc3RhcnQgb2YgcG9zc2libGUgcG9zaXRpb24gb2YgYW4gaW5kaXJlY3Rpb24g aW4gbGlzdCwgYW5kCisJICogd2hlbiBpdCBpcyBpbnNpZGUgdGhlIGxpc3QsIHN0b3JlIHBvaW50 ZXIgb24gZmlyc3Qgbm9kZSBvZiBpbmRpcmVjdGlvbi4KKwkgKi8KKwlpbmRpcmVjdGlvbl9zdGFy dCA9IGxpc3RfbGVuZ3RoKG5hbWVzKSAtIChhdHRybmFtZSA/IDEgOiAwKTsKKwlpZiAobGlzdF9s ZW5ndGgoc3RtdC0+dGFyZ2V0KSA+IGluZGlyZWN0aW9uX3N0YXJ0KQorCQlpbmRpcmVjdGlvbl9o ZWFkID0gbGlzdF9udGhfY2VsbChzdG10LT50YXJnZXQsIGluZGlyZWN0aW9uX3N0YXJ0KTsKKwor CWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZCh2YXJpZCwgJnR5cGlkLCAm dHlwbW9kLCAmY29sbGlkKTsKKworCWlzX3Jvd3R5cGUgPSB0eXBlX2lzX3Jvd3R5cGUodHlwaWQp OworCisJaWYgKGF0dHJuYW1lICYmICFpc19yb3d0eXBlKQorCQllcmVwb3J0KEVSUk9SLAorCQkJ CShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCSBlcnJtc2coImNhbm5v dCBhc3NpZ24gdG8gZmllbGQgXCIlc1wiIG9mIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGJl Y2F1c2UgaXRzIHR5cGUgJXMgaXMgbm90IGEgY29tcG9zaXRlIHR5cGUiLAorCQkJCQkJYXR0cm5h bWUsCisJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNw YWNlKHZhcmlkKSksCisJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSwKKwkJ CQkJCWZvcm1hdF90eXBlX2JlKHR5cGlkKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3Rh dGUsIHN0bXQtPmxvY2F0aW9uKSkpOworCisJcHN0YXRlLT5wX2V4cHJfa2luZCA9IEVYUFJfS0lO RF9MRVRfVEFSR0VUOworCisJLyogd2UgbmVlZCB0byBwb3N0cG9uZSBjb252ZXJzaW9uIG9mICJ1 bmtub3duIiB0byB0ZXh0ICovCisJcHN0YXRlLT5wX3Jlc29sdmVfdW5rbm93bnMgPSBmYWxzZTsK KworCXNlbGVjdFF1ZXJ5ID0gdHJhbnNmb3JtU3RtdChwc3RhdGUsIHN0bXQtPnF1ZXJ5KTsKKwor CS8qIHRoZSBncmFtbWFyIHNob3VsZCBoYXZlIHByb2R1Y2VkIGEgU0VMRUNUICovCisJQXNzZXJ0 KElzQShzZWxlY3RRdWVyeSwgUXVlcnkpICYmIHNlbGVjdFF1ZXJ5LT5jb21tYW5kVHlwZSA9PSBD TURfU0VMRUNUKTsKKworCS8qCisJICogR2VuZXJhdGUgYW4gZXhwcmVzc2lvbiBsaXN0IGZvciB0 aGUgTEVUIHRoYXQgc2VsZWN0cyBhbGwgdGhlIG5vbi1yZXNqdW5rCisJICogY29sdW1ucyBmcm9t IHRoZSBzdWJxdWVyeS4KKwkgKi8KKwlleHByTGlzdCA9IE5JTDsKKwlmb3JlYWNoX25vZGUoVGFy Z2V0RW50cnksIHRsZSwgc2VsZWN0UXVlcnktPnRhcmdldExpc3QpCisJeworCQlpZiAodGxlLT5y ZXNqdW5rKQorCQkJY29udGludWU7CisKKwkJZXhwckxpc3QgPSBsYXBwZW5kKGV4cHJMaXN0LCB0 bGUtPmV4cHIpOworCX0KKworCS8qIGRvbid0IGFsbG93IG11bHRpY29sdW1uIHJlc3VsdCAqLwor CWlmIChsaXN0X2xlbmd0aChleHByTGlzdCkgIT0gMSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJIGVycm1zZ19wbHVyYWwoImFzc2ln bm1lbnQgZXhwcmVzc2lvbiByZXR1cm5lZCAlZCBjb2x1bW4iLAorCQkJCQkJCSAgICJhc3NpZ25t ZW50IGV4cHJlc3Npb24gcmV0dXJuZWQgJWQgY29sdW1ucyIsCisJCQkJCQkJICAgbGlzdF9sZW5n dGgoZXhwckxpc3QpLAorCQkJCQkJCSAgIGxpc3RfbGVuZ3RoKGV4cHJMaXN0KSksCisJCQkJIHBh cnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsCisJCQkJCQkJCQlleHByTG9jYXRpb24oKE5vZGUgKikg ZXhwckxpc3QpKSkpOworCisJZXhwckxpc3RDb2VyID0gTklMOworCisJZm9yZWFjaChsYywgZXhw ckxpc3QpCisJeworCQlFeHByCSAgICpleHByID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKKwkJRXhw cgkgICAqY29lcmNlZF9leHByOworCQlPaWQJCQlleHBydHlwaWQ7CisKKwkJLyogbm93IHdlIGNh biByZWFkIHRoZSB0eXBlIG9mIHRoZSBleHByZXNzaW9uICovCisJCWV4cHJ0eXBpZCA9IGV4cHJU eXBlKChOb2RlICopIGV4cHIpOworCisJCWlmIChpbmRpcmVjdGlvbl9oZWFkKQorCQl7CisJCQli b29sCQl0YXJnZXRJc0FycmF5OworCQkJY2hhcgkgICAqdGFyZ2V0TmFtZTsKKwkJCVBhcmFtCSAg ICpwYXJhbTsKKworCQkJdGFyZ2V0TmFtZSA9IGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFy aWQpOworCQkJdGFyZ2V0SXNBcnJheSA9IE9pZElzVmFsaWQoZ2V0X2VsZW1lbnRfdHlwZSh0eXBp ZCkpOworCisJCQlwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisKKwkJCXBh cmFtID0gbWFrZU5vZGUoUGFyYW0pOworCQkJcGFyYW0tPnBhcmFta2luZCA9IFBBUkFNX1ZBUklB QkxFOworCQkJcGFyYW0tPnBhcmFtdmFyaWQgPSB2YXJpZDsKKwkJCXBhcmFtLT5wYXJhbXR5cGUg PSB0eXBpZDsKKwkJCXBhcmFtLT5wYXJhbXR5cG1vZCA9IHR5cG1vZDsKKworCQkJLyoKKwkJCSAq IFRoZSBwYXJhbWV0ZXIgdXNlZCBhcyBiYXNlbm9kZSBoYXMgdG8gaGF2ZSBzcGVjaWFsCisJCQkg KiBtYXJrLCBiZWNhdXNlIHJlcXVpcmVzIHNwZWNpYWwgYWNjZXNzIHdoZW4gd2UgZG8KKwkJCSAq IFNFTEVDVCBhY2Nlc3MgY2hlY2suCisJCQkgKi8KKwkJCXBhcmFtLT5wYXJhbWJhc2Vub2RlID0g dHJ1ZTsKKworCQkJY29lcmNlZF9leHByID0gKEV4cHIgKikKKwkJCQl0cmFuc2Zvcm1Bc3NpZ25t ZW50SW5kaXJlY3Rpb24ocHN0YXRlLAorCQkJCQkJCQkJCQkgICAoTm9kZSAqKSBwYXJhbSwKKwkJ CQkJCQkJCQkJICAgdGFyZ2V0TmFtZSwKKwkJCQkJCQkJCQkJICAgdGFyZ2V0SXNBcnJheSwKKwkJ CQkJCQkJCQkJICAgdHlwaWQsCisJCQkJCQkJCQkJCSAgIHR5cG1vZCwKKwkJCQkJCQkJCQkJICAg SW52YWxpZE9pZCwKKwkJCQkJCQkJCQkJICAgc3RtdC0+dGFyZ2V0LAorCQkJCQkJCQkJCQkgICBp bmRpcmVjdGlvbl9oZWFkLAorCQkJCQkJCQkJCQkgICAoTm9kZSAqKSBleHByLAorCQkJCQkJCQkJ CQkgICBDT0VSQ0lPTl9BU1NJR05NRU5ULAorCQkJCQkJCQkJCQkgICBzdG10LT5sb2NhdGlvbik7 CisJCX0KKwkJZWxzZQorCQkJY29lcmNlZF9leHByID0gKEV4cHIgKikKKwkJCQljb2VyY2VfdG9f dGFyZ2V0X3R5cGUocHN0YXRlLAorCQkJCQkJCQkJICAoTm9kZSAqKSBleHByLAorCQkJCQkJCQkJ ICBleHBydHlwaWQsCisJCQkJCQkJCQkgIHR5cGlkLCB0eXBtb2QsCisJCQkJCQkJCQkgIENPRVJD SU9OX0FTU0lHTk1FTlQsCisJCQkJCQkJCQkgIENPRVJDRV9JTVBMSUNJVF9DQVNULAorCQkJCQkJ CQkJICBzdG10LT5sb2NhdGlvbik7CisKKwkJaWYgKGNvZXJjZWRfZXhwciA9PSBOVUxMKQorCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCks CisJCQkJCSBlcnJtc2coInZhcmlhYmxlIFwiJXMuJXNcIiBpcyBvZiB0eXBlICVzLCBidXQgZXhw cmVzc2lvbiBpcyBvZiB0eXBlICVzIiwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZSh2YXJpZCksCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpLAorCQkJCQkJ CWZvcm1hdF90eXBlX2JlKGV4cHJ0eXBpZCkpLAorCQkJCQkgZXJyaGludCgiWW91IHdpbGwgbmVl ZCB0byByZXdyaXRlIG9yIGNhc3QgdGhlIGV4cHJlc3Npb24uIiksCisJCQkJCSBwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oKE5vZGUgKikgZXhwcikpKSk7CisKKwkJZXhw ckxpc3RDb2VyID0gbGFwcGVuZChleHByTGlzdENvZXIsIGNvZXJjZWRfZXhwcik7CisJfQorCisJ LyogZ2VuZXJhdGUgcXVlcnkncyB0YXJnZXQgbGlzdCB1c2luZyB0aGUgY29tcHV0ZWQgbGlzdCBv ZiBleHByZXNzaW9ucyAqLworCXF1ZXJ5ID0gbWFrZU5vZGUoUXVlcnkpOworCXF1ZXJ5LT5jb21t YW5kVHlwZSA9IENNRF9TRUxFQ1Q7CisKKwlmb3JlYWNoKGxjLCBleHByTGlzdENvZXIpCisJewor CQlFeHByCSAgICpleHByID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKKwkJVGFyZ2V0RW50cnkgKnRs ZTsKKworCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnkoZXhwciwKKwkJCQkJCQkgIGkgKyAxLAorCQkJ CQkJCSAgRmlndXJlQ29sbmFtZSgoTm9kZSAqKSBleHByKSwKKwkJCQkJCQkgIGZhbHNlKTsKKwkJ cXVlcnktPnRhcmdldExpc3QgPSBsYXBwZW5kKHF1ZXJ5LT50YXJnZXRMaXN0LCB0bGUpOworCX0K KworCS8qIGRvbmUgYnVpbGRpbmcgdGhlIHJhbmdlIHRhYmxlIGFuZCBqb2ludHJlZSAqLworCXF1 ZXJ5LT5ydGFibGUgPSBwc3RhdGUtPnBfcnRhYmxlOworCXF1ZXJ5LT5qb2ludHJlZSA9IG1ha2VG cm9tRXhwcihwc3RhdGUtPnBfam9pbmxpc3QsIE5VTEwpOworCisJcXVlcnktPmhhc1RhcmdldFNS RnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKKwlxdWVyeS0+aGFzU3ViTGlua3MgPSBwc3Rh dGUtPnBfaGFzU3ViTGlua3M7CisJcXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUt PnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKKworCS8qIHRoaXMgaXMgdG9wLWxldmVsIHF1ZXJ5ICov CisJcXVlcnktPmNhblNldFRhZyA9IHRydWU7CisKKwkvKgorCSAqIFNhdmUgdGFyZ2V0IHNlc3Np b24gdmFyaWFibGUgSUQuIEl0IGlzIHVzZWQgbGF0ZXIgZm9yCisJICogYWNxdWlyaW5nIGFuIEFj Y2Vzc1NoYXJlTG9jayBvbiB0YXJnZXQgdmFyaWFibGUsIHNldHRpbmcKKwkgKiBwbGFuIGRlcGVu ZGVuY3kgYW5kIGZpbmFsbHkgZm9yIGNyZWF0aW5nIFZhcmlhYmxlRGVzdFJlY2VpdmVyLgorCSAq LworCXF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSA9IHZhcmlkOworCisJYXNzaWduX3F1ZXJ5X2NvbGxh dGlvbnMocHN0YXRlLCBxdWVyeSk7CisKKwkvKgorCSAqIFRoZSBxdWVyeSBpcyBleGVjdXRlZCBh cyB1dGlsaXR5IGNvbW1hbmQgYnkgbmVzdGVkIGV4ZWN1dG9yIGNhbGwuCisJICogQXNzaWduZWQg cXVlcnlJZCBpcyByZXF1aXJlZCBpbiB0aGlzIGNhc2UuCisJICovCisJaWYgKElzUXVlcnlJZEVu YWJsZWQoKSkKKwkJSnVtYmxlUXVlcnkocXVlcnkpOworCisJc3RtdC0+cXVlcnkgPSAoTm9kZSAq KSBxdWVyeTsKKworCS8qIHJlcHJlc2VudCB0aGUgY29tbWFuZCBhcyBhIHV0aWxpdHkgUXVlcnkg Ki8KKwlyZXN1bHQgPSBtYWtlTm9kZShRdWVyeSk7CisJcmVzdWx0LT5jb21tYW5kVHlwZSA9IENN RF9VVElMSVRZOworCXJlc3VsdC0+dXRpbGl0eVN0bXQgPSAoTm9kZSAqKSBzdG10OworCisJcmV0 dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIHRyYW5zZm9ybVNldE9wZXJhdGlvblN0bXQgLQogICoJ ICB0cmFuc2Zvcm1zIGEgc2V0LW9wZXJhdGlvbnMgdHJlZQpAQCAtMjAyMCw2ICsyMjY1LDcgQEAg dHJhbnNmb3JtU2V0T3BlcmF0aW9uU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQg KnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBzdGF0ZS0+cF9oYXNXaW5kb3dGdW5jczsK IAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhh c0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBw c3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWZvcmVhY2gobCwgbG9ja2luZ0NsYXVz ZSkKIAl7CkBAIC0yNDk1LDYgKzI3NDEsNyBAQCB0cmFuc2Zvcm1SZXR1cm5TdG10KFBhcnNlU3Rh dGUgKnBzdGF0ZSwgUmV0dXJuU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0 YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9o YXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+ aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJ YXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0yNTYyLDYgKzI4MDks NyBAQCB0cmFuc2Zvcm1VcGRhdGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVXBkYXRlU3RtdCAq c3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwog CXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNz aW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25f cXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTI4NTIsOSArMzEwMCwxNSBAQCB0 cmFuc2Zvcm1QTEFzc2lnblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQTEFzc2lnblN0bXQgKnN0 bXQpCiAJLyoKIAkgKiBUcmFuc2Zvcm0gdGhlIHRhcmdldCByZWZlcmVuY2UuICBUeXBpY2FsbHkg d2Ugd2lsbCBnZXQgYmFjayBhIFBhcmFtCiAJICogbm9kZSwgYnV0IHRoZXJlJ3Mgbm8gcmVhc29u IHRvIGJlIHRvbyBwaWNreSBhYm91dCBpdHMgdHlwZS4KKwkgKgorCSAqIFNlc3Npb24gdmFyaWFi bGVzIHNob3VsZCBub3QgYmUgdXNlZCBhcyB0YXJnZXQgb2YgYSBQTC9wZ1NRTCBhc3NpZ24KKwkg KiBzdGF0ZW1lbnQuICBTbyB3ZSBzaG91bGQgdXNlIGEgZGVkaWNhdGVkIGV4cHJlc3Npb24ga2lu ZCBhbmQgZGlzYWxsb3cKKwkgKiBzZXNzaW9uIHZhcmlhYmxlcyB0aGVyZS4gIFRoZSBkZWRpY2F0 ZWQgY29udGV4dCBhbGxvd3MgdG8gZWxpbWluYXRlCisJICogdW5kZXNpcmFibGUgd2FybmluZ3Mg YWJvdXQgdGhlIHBvc3NpYmlsaXR5IG9mIGEgdGFyZ2V0IFBML3BnU1FMIHZhcmlhYmxlCisJICog c2hhZG93aW5nIGEgc2Vzc2lvbiB2YXJpYWJsZS4KIAkgKi8KIAl0YXJnZXQgPSB0cmFuc2Zvcm1F eHByKHBzdGF0ZSwgKE5vZGUgKikgY3JlZiwKLQkJCQkJCSAgIEVYUFJfS0lORF9VUERBVEVfVEFS R0VUKTsKKwkJCQkJCSAgIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUKTsKIAl0YXJnZXR0eXBlID0g ZXhwclR5cGUodGFyZ2V0KTsKIAl0YXJnZXR0eXBtb2QgPSBleHByVHlwbW9kKHRhcmdldCk7CiAJ dGFyZ2V0Y29sbGF0aW9uID0gZXhwckNvbGxhdGlvbih0YXJnZXQpOwpAQCAtMjg5Niw2ICszMTUw LDEwIEBAIHRyYW5zZm9ybVBMQXNzaWduU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFBMQXNzaWdu U3RtdCAqc3RtdCkKIAkgKi8KIAl0eXBlX2lkID0gZXhwclR5cGUoKE5vZGUgKikgdGxlLT5leHBy KTsKIAorCS8qCisJICogRm9yIGluZGlyZWN0aW9uIHByb2Nlc3NpbmcgYW5kIGFkZGl0aW9uYWwg Y2FzdHMgd2UgY2FuIHVzZSBleHByX2tpbmQKKwkgKiBFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVC4K KwkgKi8KIAlwc3RhdGUtPnBfZXhwcl9raW5kID0gRVhQUl9LSU5EX1VQREFURV9UQVJHRVQ7CiAK IAlpZiAoaW5kaXJlY3Rpb24pCkBAIC0zMDM4LDYgKzMyOTYsOCBAQCB0cmFuc2Zvcm1QTEFzc2ln blN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQTEFzc2lnblN0bXQgKnN0bXQpCiAJCQkJCQkJICAg KExvY2tpbmdDbGF1c2UgKikgbGZpcnN0KGwpLCBmYWxzZSk7CiAJfQogCisJcXJ5LT5oYXNTZXNz aW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CisKIAlhc3NpZ25f cXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKIAkvKiB0aGlzIG11c3QgYmUgZG9uZSBh ZnRlciBjb2xsYXRpb25zLCBmb3IgcmVsaWFibGUgY29tcGFyaXNvbiBvZiBleHBycyAqLwpAQCAt MzMxMSw2ICszNTcxLDE2IEBAIHRyYW5zZm9ybUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwg Q2FsbFN0bXQgKnN0bXQpCiAJCQkJCQkJIHRydWUsCiAJCQkJCQkJIHN0bXQtPmZ1bmNjYWxsLT5s b2NhdGlvbik7CiAKKwkvKgorCSAqIFRoZSBhcmd1bWVudHMgb2YgQ0FMTCBzdGF0ZW1lbnQgYXJl IGV2YWx1YXRlZCBieSBhIGRpcmVjdCBleHByZXNzaW9uCisJICogZXhlY3V0b3IgY2FsbC4gIFRo aXMgcGF0aCBpcyB1bnN1cHBvcnRlZCB5ZXQsIHNvIGJsb2NrIGl0LiAgSXQgd2lsbCBiZQorCSAq IGVuYWJsZWQgbGF0ZXIuCisJICovCisJaWYgKHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVz KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKKwkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFz IGFuIGFyZ3VtZW50IikpKTsKKwogCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCBub2Rl KTsKIAogCWZleHByID0gY2FzdE5vZGUoRnVuY0V4cHIsIG5vZGUpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXgg YTU5ODJjNmVmNC4uMTZkYTUyM2Y2YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0yOTcsNyArMjk3LDcgQEAg c3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3Qg KmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJRHJvcFRyYW5zZm9ybVN0bXQKIAkJRHJvcFVzZXJN YXBwaW5nU3RtdCBFeHBsYWluU3RtdCBGZXRjaFN0bXQKIAkJR3JhbnRTdG10IEdyYW50Um9sZVN0 bXQgSW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQgSW5kZXhTdG10IEluc2VydFN0bXQKLQkJTGlzdGVu U3RtdCBMb2FkU3RtdCBMb2NrU3RtdCBNZXJnZVN0bXQgTm90aWZ5U3RtdCBFeHBsYWluYWJsZVN0 bXQgUHJlcGFyYWJsZVN0bXQKKwkJTGV0U3RtdCBMaXN0ZW5TdG10IExvYWRTdG10IExvY2tTdG10 IE1lcmdlU3RtdCBOb3RpZnlTdG10IEV4cGxhaW5hYmxlU3RtdCBQcmVwYXJhYmxlU3RtdAogCQlD cmVhdGVGdW5jdGlvblN0bXQgQWx0ZXJGdW5jdGlvblN0bXQgUmVpbmRleFN0bXQgUmVtb3ZlQWdn clN0bXQKIAkJUmVtb3ZlRnVuY1N0bXQgUmVtb3ZlT3BlclN0bXQgUmVuYW1lU3RtdCBSZXR1cm5T dG10IFJldm9rZVN0bXQgUmV2b2tlUm9sZVN0bXQKIAkJUnVsZUFjdGlvblN0bXQgUnVsZUFjdGlv blN0bXRPckVtcHR5IFJ1bGVTdG10CkBAIC03NDIsNyArNzQyLDcgQEAgc3RhdGljIE5vZGUgKm1h a2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUg KnF1ZXJ5KTsKIAlLRUVQIEtFWSBLRVlTCiAKIAlMQUJFTCBMQU5HVUFHRSBMQVJHRV9QIExBU1Rf UCBMQVRFUkFMX1AKLQlMRUFESU5HIExFQUtQUk9PRiBMRUFTVCBMRUZUIExFVkVMIExJS0UgTElN SVQgTElTVEVOIExPQUQgTE9DQUwKKwlMRUFESU5HIExFQUtQUk9PRiBMRUFTVCBMRUZUIExFVCBM RVZFTCBMSUtFIExJTUlUIExJU1RFTiBMT0FEIExPQ0FMCiAJTE9DQUxUSU1FIExPQ0FMVElNRVNU QU1QIExPQ0FUSU9OIExPQ0tfUCBMT0NLRUQgTE9HR0VECiAKIAlNQVBQSU5HIE1BVENIIE1BVENI RUQgTUFURVJJQUxJWkVEIE1BWFZBTFVFIE1FUkdFIE1FUkdFX0FDVElPTiBNRVRIT0QKQEAgLTEw ODksNiArMTA4OSw3IEBAIHN0bXQ6CiAJCQl8IEltcG9ydEZvcmVpZ25TY2hlbWFTdG10CiAJCQl8 IEluZGV4U3RtdAogCQkJfCBJbnNlcnRTdG10CisJCQl8IExldFN0bXQKIAkJCXwgTGlzdGVuU3Rt dAogCQkJfCBSZWZyZXNoTWF0Vmlld1N0bXQKIAkJCXwgTG9hZFN0bXQKQEAgLTEyODM4LDYgKzEy ODM5LDM4IEBAIG9wdF9ob2xkOiAvKiBFTVBUWSAqLwkJCQkJCXsgJCQgPSAwOyB9CiAJCQl8IFdJ VEhPVVQgSE9MRAkJCQkJeyAkJCA9IDA7IH0KIAkJOwogCisvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK KyAqCisgKgkJUVVFUlk6CisgKgkJCQlMRVQgU1RBVEVNRU5UCisgKgorICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLworTGV0U3RtdDoJTEVUIENvbElkIG9wdF9pbmRpcmVjdGlvbiAnPScgYV9leHByCisJ CQkJeworCQkJCQlMZXRTdG10CSAgICpuID0gbWFrZU5vZGUoTGV0U3RtdCk7CisJCQkJCVNlbGVj dFN0bXQgKnNlbGVjdDsKKwkJCQkJUmVzVGFyZ2V0ICAqcmVzOworCisJCQkJCW4tPnRhcmdldCA9 IGxjb25zKG1ha2VTdHJpbmcoJDIpLAorCQkJCQkJCQkJICBjaGVja19pbmRpcmVjdGlvbigkMywg eXlzY2FubmVyKSk7CisKKwkJCQkJc2VsZWN0ID0gbWFrZU5vZGUoU2VsZWN0U3RtdCk7CisJCQkJ CXJlcyA9IG1ha2VOb2RlKFJlc1RhcmdldCk7CisKKwkJCQkJLyogY3JlYXRlIHRhcmdldCBsaXN0 IGZvciBpbXBsaWNpdCBxdWVyeSAqLworCQkJCQlyZXMtPm5hbWUgPSBOVUxMOworCQkJCQlyZXMt PmluZGlyZWN0aW9uID0gTklMOworCQkJCQlyZXMtPnZhbCA9IChOb2RlICopICQ1OworCQkJCQly ZXMtPmxvY2F0aW9uID0gQDU7CisKKwkJCQkJc2VsZWN0LT50YXJnZXRMaXN0ID0gbGlzdF9tYWtl MShyZXMpOworCQkJCQluLT5xdWVyeSA9IChOb2RlICopIHNlbGVjdDsKKworCQkJCQluLT5sb2Nh dGlvbiA9IEAyOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQk7CisKIC8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgogICoKICAqCQlRVUVSWToKQEAgLTE3OTA5LDYgKzE3OTQyLDcgQEAgdW5y ZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBMQVJHRV9QCiAJCQl8IExBU1RfUAogCQkJfCBMRUFLUFJP T0YKKwkJCXwgTEVUCiAJCQl8IExFVkVMCiAJCQl8IExJU1RFTgogCQkJfCBMT0FECkBAIC0xODUy MSw2ICsxODU1NSw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgTEVBS1BST09GCiAJCQl8 IExFQVNUCiAJCQl8IExFRlQKKwkJCXwgTEVUCiAJCQl8IExFVkVMCiAJCQl8IExJS0UKIAkJCXwg TElTVEVOCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5kZXggOWU1NjdmM2NjNC4uNDczN2IwNGQxNyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNTgwLDYgKzU4MCwxMSBAQCBjaGVja19hZ2dsZXZl bHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJCWVy cmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdF VDoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCWVycmtpbmQgPSB0cnVlOworCQkJ YnJlYWs7CisKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6 IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKIAkJCSAqIGNvbXBpbGVyIHdpbGwgd2FybiBpZiB3ZSBh ZGQgYSBuZXcgUGFyc2VFeHByS2luZCB3aXRob3V0CkBAIC05NzAsNiArOTc1LDEwIEBAIHRyYW5z Zm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93RnVuYyAqd2Z1bmMs CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJCWJy ZWFrOworCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9M RVRfVEFSR0VUOgorCQkJZXJya2luZCA9IHRydWU7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAq IFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRo ZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggYmFkMWRmNzMyZS4uNGYyMDhjN2VmZCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC0xNyw2ICsxNyw3IEBACiAKICNpbmNsdWRlICJjYXRh bG9nL3BnX2FnZ3JlZ2F0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRz LmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgi CkBAIC0zMywxMSArMzQsMTMgQEAKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIK ICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdGFyZ2V0LmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNl X3R5cGUuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9idWls dGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2RhdGUuaCIKICNpbmNsdWRlICJ1dGlscy9mbWdyb2lk cy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVz dGFtcC5oIgorI2luY2x1ZGUgInV0aWxzL3R5cGNhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMveG1s LmgiCiAKIC8qIEdVQyBwYXJhbWV0ZXJzICovCkBAIC0xMDYsNiArMTA5LDkgQEAgc3RhdGljIEV4 cHIgKm1ha2VfZGlzdGluY3Rfb3AoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpvcG5hbWUsCiAJ CQkJCQkJICBOb2RlICpsdHJlZSwgTm9kZSAqcnRyZWUsIGludCBsb2NhdGlvbik7CiBzdGF0aWMg Tm9kZSAqbWFrZV9udWxsdGVzdF9mcm9tX2Rpc3RpbmN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ CQkJCQkJCQkgQV9FeHByICpkaXN0aW5jdGEsIE5vZGUgKmFyZyk7CitzdGF0aWMgTm9kZSAqbWFr ZVBhcmFtU2Vzc2lvblZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJCQkJCSAgT2lk IHZhcmlkLCBPaWQgdHlwaWQsIGludDMyIHR5cG1vZCwgT2lkIGNvbGxpZCwKKwkJCQkJCQkJCSAg Y2hhciAqYXR0cm5hbWUsIGludCBsb2NhdGlvbik7CiAKIAogLyoKQEAgLTQ5OSw2ICs1MDUsODkg QEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9u ICppbmQpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUg Z2l2ZW4gZXhwcmVzc2lvbiBraW5kIGlzIHZhbGlkIGZvciBzZXNzaW9uIHZhcmlhYmxlcy4KKyAq IFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSB1c2VkIGV2ZXJ5d2hlcmUgd2hlcmUgZXh0ZXJuYWwg cGFyYW1ldGVycyBjYW4gYmUKKyAqIHVzZWQuICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IGFs bG93ZWQgaW4gRERMIGNvbW1hbmRzIG9yIGluIGNvbnN0cmFpbnRzLgorICoKKyAqIEFuIGlkZW50 aWZpZXIgY2FuIGJlIHBhcnNlZCBhcyBhIHNlc3Npb24gdmFyaWFibGUgb25seSBmb3IgZXhwcmVz c2lvbiBraW5kcworICogd2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGFsbG93ZWQuICBUaGlz IGlzIHRoZSBwcmltYXJ5IHVzYWdlIG9mIHRoaXMKKyAqIGZ1bmN0aW9uLgorICoKKyAqIFRoZSBz ZWNvbmQgdXNhZ2Ugb2YgdGhpcyBmdW5jdGlvbiBpcyB0byBkZWNpZGUgd2hldGhlciBhICJjb2x1 bW4gZG9lcyBub3QKKyAqIGV4aXN0IiBvciBhICJjb2x1bW4gb3IgdmFyaWFibGUgZG9lcyBub3Qg ZXhpc3QiIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIGJlCisgKiBwcmludGVkLiAgV2hlbiB3ZSBhcmUg aW4gYW4gZXhwcmVzc2lvbiB3aGVyZSBzZXNzaW9uIHZhcmlhYmxlcyBjYW5ub3QgYmUKKyAqIHVz ZWQsIHdlIHJhaXNlIHRoZSBmaXJzdCBmb3JtIG9mIGVycm9yIG1lc3NhZ2UuCisgKi8KK3N0YXRp YyBib29sCitleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKFBhcnNlRXhwcktpbmQg cF9leHByX2tpbmQpCit7CisJYm9vbAkJcmVzdWx0ID0gZmFsc2U7CisKKwlzd2l0Y2ggKHBfZXhw cl9raW5kKQorCXsKKwkJY2FzZSBFWFBSX0tJTkRfTk9ORToKKwkJCUFzc2VydChmYWxzZSk7CQkv KiBjYW4ndCBoYXBwZW4gKi8KKwkJCXJldHVybiBmYWxzZTsKKworCQkvKiBzZXNzaW9uIHZhcmlh YmxlcyBhbGxvd2VkICovCisJCWNhc2UgRVhQUl9LSU5EX09USEVSOgorCQljYXNlIEVYUFJfS0lO RF9KT0lOX09OOgorCQljYXNlIEVYUFJfS0lORF9GUk9NX1NVQlNFTEVDVDoKKwkJY2FzZSBFWFBS X0tJTkRfRlJPTV9GVU5DVElPTjoKKwkJY2FzZSBFWFBSX0tJTkRfV0hFUkU6CisJCWNhc2UgRVhQ Ul9LSU5EX0hBVklORzoKKwkJY2FzZSBFWFBSX0tJTkRfRklMVEVSOgorCQljYXNlIEVYUFJfS0lO RF9XSU5ET1dfUEFSVElUSU9OOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfT1JERVI6CisJCWNh c2UgRVhQUl9LSU5EX1dJTkRPV19GUkFNRV9SQU5HRToKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9X X0ZSQU1FX1JPV1M6CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19GUkFNRV9HUk9VUFM6CisJCWNh c2UgRVhQUl9LSU5EX1NFTEVDVF9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX0lOU0VSVF9UQVJH RVQ6CisJCWNhc2UgRVhQUl9LSU5EX1VQREFURV9TT1VSQ0U6CisJCWNhc2UgRVhQUl9LSU5EX1VQ REFURV9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX01FUkdFX1dIRU46CisJCWNhc2UgRVhQUl9L SU5EX01FUkdFX1JFVFVSTklORzoKKwkJY2FzZSBFWFBSX0tJTkRfR1JPVVBfQlk6CisJCWNhc2Ug RVhQUl9LSU5EX09SREVSX0JZOgorCQljYXNlIEVYUFJfS0lORF9ESVNUSU5DVF9PTjoKKwkJY2Fz ZSBFWFBSX0tJTkRfTElNSVQ6CisJCWNhc2UgRVhQUl9LSU5EX09GRlNFVDoKKwkJY2FzZSBFWFBS X0tJTkRfUkVUVVJOSU5HOgorCQljYXNlIEVYUFJfS0lORF9WQUxVRVM6CisJCWNhc2UgRVhQUl9L SU5EX1ZBTFVFU19TSU5HTEU6CisJCWNhc2UgRVhQUl9LSU5EX0FMVEVSX0NPTF9UUkFOU0ZPUk06 CisJCWNhc2UgRVhQUl9LSU5EX0VYRUNVVEVfUEFSQU1FVEVSOgorCQljYXNlIEVYUFJfS0lORF9Q T0xJQ1k6CisJCWNhc2UgRVhQUl9LSU5EX0NBTExfQVJHVU1FTlQ6CisJCWNhc2UgRVhQUl9LSU5E X0NPUFlfV0hFUkU6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQlyZXN1bHQgPSB0 cnVlOworCQkJYnJlYWs7CisKKwkJLyogc2Vzc2lvbiB2YXJpYWJsZXMgbm90IGFsbG93ZWQgKi8K KwkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVDoKKwkJY2FzZSBFWFBSX0tJTkRfRE9N QUlOX0NIRUNLOgorCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKKwkJY2FzZSBFWFBS X0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lP TjoKKwkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfUFJFRElDQVRFOgorCQljYXNlIEVYUFJfS0lORF9T VEFUU19FWFBSRVNTSU9OOgorCQljYXNlIEVYUFJfS0lORF9UUklHR0VSX1dIRU46CisJCWNhc2Ug RVhQUl9LSU5EX1BBUlRJVElPTl9CT1VORDoKKwkJY2FzZSBFWFBSX0tJTkRfUEFSVElUSU9OX0VY UFJFU1NJT046CisJCWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU46CisJCWNhc2UgRVhQ Ul9LSU5EX0pPSU5fVVNJTkc6CisJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2Ug RVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCQlyZXN1bHQgPSBmYWxzZTsKKwkJCWJyZWFrOwor CX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiBUcmFuc2Zvcm0gYSBDb2x1bW5SZWYu CiAgKgpAQCAtNTc1LDYgKzY2NCw4IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpw c3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJTkRfQ09QWV9XSEVSRToKIAkJ Y2FzZSBFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTjoKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVf TUFSSzoKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRf TEVUX1RBUkdFVDoKIAkJCS8qIG9rYXkgKi8KIAkJCWJyZWFrOwogCkBAIC04NDcsOCArOTM4LDYx IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3Jl ZikKIAl9CiAKIAkvKgotCSAqIFRocm93IGVycm9yIGlmIG5vIHRyYW5zbGF0aW9uIGZvdW5kLgor CSAqIFRoZXJlIGFyZSBjb250ZXh0cyB3aGVyZSBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IGFs bG93ZWQuICBXZSBkb24ndAorCSAqIG5lZWQgdG8gaWRlbnRpZnkgc2Vzc2lvbiB2YXJpYWJsZXMg aW4gc3VjaCBhIGNvbnRleHQsIGJ1dCBpZGVudGlmeWluZworCSAqIHRoZW0gYWxsb3dzIHVzIHRv IHJhaXNlIG1lYW5pbmdmdWwgZXJyb3IgbWVzc2FnZXMgbGlrZSAieW91IGNhbm5vdCB1c2UKKwkg KiBzZXNzaW9uIHZhcmlhYmxlcyBoZXJlIi4KIAkgKi8KKwlpZiAoZXhwcl9raW5kX2FsbG93c19z ZXNzaW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSkKKwl7CisJCU9pZAkJCXZhcmlk ID0gSW52YWxpZE9pZDsKKwkJY2hhcgkgICAqYXR0cm5hbWUgPSBOVUxMOworCQlib29sCQlub3Rf dW5pcXVlOworCisJCS8qIC0tLS0tCisJCSAqIFNlc3Npb24gdmFyaWFibGVzIGFyZSBzaGFkb3dl ZCBieSBjb2x1bW5zLCByb3V0aW5lIHZhcmlhYmxlcyBvcgorCQkgKiByb3V0aW5lIGFyZ3VtZW50 cy4gIFdlIGNlcnRhaW5seSBkb24ndCB3YW50IHRvIHVzZSBhIHNlc3Npb24gdmFyaWFibGUKKwkJ ICogd2hlbiBpdCBpcyBleGFjdGx5IHNoYWRvd2VkLCBidXQgYSBSVEUgbGlrZSB0aGlzIGlzIGNv bmNlaXZhYmxlOgorCQkgKgorCQkgKiBDUkVBVEUgVFlQRSB0IEFTIChjIGludCk7CisJCSAqIENS RUFURSBWQVJJQUJMRSBmb28gQVMgdDsKKwkJICogQ1JFQVRFIFRBQkxFIGZvbyhhIGludCwgYiBp bnQpOworCQkgKgorCQkgKiBTRUxFQ1QgZm9vLmEsIGZvby5iLCBmb28uYyBGUk9NIGZvbzsKKwkJ ICoKKwkJICogSG93ZXZlciwgdGhhdCBpcyB2ZXJ5IGNvbmZ1c2luZywgc28gd2UgZGlzYWxsb3cg aXQuICBXZSBkb24ndCB0cnkgdG8KKwkJICogaWRlbnRpZnkgYSB2YXJpYWJsZSBpZiB3ZSBrbm93 IHRoYXQgaXQgd291bGQgYmUgc2hhZG93ZWQuCisJCSAqIC0tLS0tCisJCSAqLworCQlpZiAoIW5v ZGUgJiYgIShyZWxuYW1lICYmIGNyZXJyID09IENSRVJSX05PX0NPTFVNTikpCisJCXsKKwkJCS8q IHRha2VzIGFuIEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCQkJ dmFyaWQgPSBJZGVudGlmeVZhcmlhYmxlKGNyZWYtPmZpZWxkcywgJmF0dHJuYW1lLCAmbm90X3Vu aXF1ZSwgZmFsc2UpOworCisJCQlpZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJCQl7CisJCQkJT2lk CQkJdHlwaWQ7CisJCQkJaW50MzIJCXR5cG1vZDsKKwkJCQlPaWQJCQljb2xsaWQ7CisKKwkJCQlp ZiAobm90X3VuaXF1ZSkKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJD T0RFX0FNQklHVU9VU19QQVJBTUVURVIpLAorCQkJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFi bGUgcmVmZXJlbmNlIFwiJXNcIiBpcyBhbWJpZ3VvdXMiLAorCQkJCQkJCQkJTmFtZUxpc3RUb1N0 cmluZyhjcmVmLT5maWVsZHMpKSwKKwkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg Y3JlZi0+bG9jYXRpb24pKSk7CisKKwkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1v ZF9jb2xsaWQodmFyaWQsICZ0eXBpZCwgJnR5cG1vZCwKKwkJCQkJCQkJCQkJCQkJJmNvbGxpZCk7 CisKKwkJCQlub2RlID0gbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKHBzdGF0ZSwKKwkJCQkJCQkJ CQkJCXZhcmlkLCB0eXBpZCwgdHlwbW9kLCBjb2xsaWQsCisJCQkJCQkJCQkJCQlhdHRybmFtZSwg Y3JlZi0+bG9jYXRpb24pOworCQkJfQorCQl9CisJfQorCisJLyogdGhyb3cgYW4gZXJyb3IgaWYg bm8gdHJhbnNsYXRpb24gd2FzIGZvdW5kICovCiAJaWYgKG5vZGUgPT0gTlVMTCkKIAl7CiAJCXN3 aXRjaCAoY3JlcnIpCkBAIC04ODAsNiArMTAyNCw3NSBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFy c2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJcmV0dXJuIG5vZGU7CiB9CiAKKy8q CisgKiBHZW5lcmF0ZSBwYXJhbSB2YXJpYWJsZSBmb3IgcmVmZXJlbmNlIHRvIHNlc3Npb24gdmFy aWFibGUKKyAqLworc3RhdGljIE5vZGUgKgorbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKFBhcnNl U3RhdGUgKnBzdGF0ZSwKKwkJCQkJCSBPaWQgdmFyaWQsIE9pZCB0eXBpZCwgaW50MzIgdHlwbW9k LCBPaWQgY29sbGlkLAorCQkJCQkJIGNoYXIgKmF0dHJuYW1lLCBpbnQgbG9jYXRpb24pCit7CisJ UGFyYW0JICAgKnBhcmFtOworCisJcGFyYW0gPSBtYWtlTm9kZShQYXJhbSk7CisKKwlwYXJhbS0+ cGFyYW1raW5kID0gUEFSQU1fVkFSSUFCTEU7CisJcGFyYW0tPnBhcmFtdmFyaWQgPSB2YXJpZDsK KwlwYXJhbS0+cGFyYW10eXBlID0gdHlwaWQ7CisJcGFyYW0tPnBhcmFtdHlwbW9kID0gdHlwbW9k OworCXBhcmFtLT5wYXJhbWNvbGxpZCA9IGNvbGxpZDsKKworCXBzdGF0ZS0+cF9oYXNTZXNzaW9u VmFyaWFibGVzID0gdHJ1ZTsKKworCWlmIChhdHRybmFtZSAhPSBOVUxMKQorCXsKKwkJVHVwbGVE ZXNjCXR1cGRlc2M7CisJCWludAkJCWk7CisKKwkJdHVwZGVzYyA9IGxvb2t1cF9yb3d0eXBlX3R1 cGRlc2Nfbm9lcnJvcih0eXBpZCwgdHlwbW9kLCB0cnVlKTsKKwkJaWYgKCF0dXBkZXNjKQorCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSks CisJCQkJCSBlcnJtc2coInZhcmlhYmxlIFwiJXMuJXNcIiBpcyBvZiB0eXBlIFwiJXNcIiwgd2hp Y2ggaXMgbm90IGEgY29tcG9zaXRlIHR5cGUiLAorCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShn ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQlnZXRfc2Vzc2lv bl92YXJpYWJsZV9uYW1lKHZhcmlkKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAor CQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CisKKwkJZm9yIChp ID0gMDsgaSA8IHR1cGRlc2MtPm5hdHRzOyBpKyspCisJCXsKKwkJCUZvcm1fcGdfYXR0cmlidXRl IGF0dCA9IFR1cGxlRGVzY0F0dHIodHVwZGVzYywgaSk7CisKKwkJCWlmIChzdHJjbXAoYXR0cm5h bWUsIE5hbWVTdHIoYXR0LT5hdHRuYW1lKSkgPT0gMCAmJgorCQkJCSFhdHQtPmF0dGlzZHJvcHBl ZCkKKwkJCXsKKwkJCQkvKiBzdWNjZXNzLCBzbyBnZW5lcmF0ZSBhIEZpZWxkU2VsZWN0IGV4cHJl c3Npb24gKi8KKwkJCQlGaWVsZFNlbGVjdCAqZnNlbGVjdCA9IG1ha2VOb2RlKEZpZWxkU2VsZWN0 KTsKKworCQkJCWZzZWxlY3QtPmFyZyA9IChFeHByICopIHBhcmFtOworCQkJCWZzZWxlY3QtPmZp ZWxkbnVtID0gaSArIDE7CisJCQkJZnNlbGVjdC0+cmVzdWx0dHlwZSA9IGF0dC0+YXR0dHlwaWQ7 CisJCQkJZnNlbGVjdC0+cmVzdWx0dHlwbW9kID0gYXR0LT5hdHR0eXBtb2Q7CisJCQkJLyogc2F2 ZSBhdHRyaWJ1dGUncyBjb2xsYXRpb24gZm9yIHBhcnNlX2NvbGxhdGUuYyAqLworCQkJCWZzZWxl Y3QtPnJlc3VsdGNvbGxpZCA9IGF0dC0+YXR0Y29sbGF0aW9uOworCisJCQkJUmVsZWFzZVR1cGxl RGVzYyh0dXBkZXNjKTsKKwkJCQlyZXR1cm4gKE5vZGUgKikgZnNlbGVjdDsKKwkJCX0KKwkJfQor CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1O KSwKKwkJCQkgZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgY29sdW1uIFwiJXNcIiBpbiB2YXJp YWJsZSBcIiVzLiVzXCIiLAorCQkJCQkJYXR0cm5hbWUsCisJCQkJCQlnZXRfbmFtZXNwYWNlX25h bWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQlnZXRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3Rh dGUsIGxvY2F0aW9uKSkpOworCX0KKworCXJldHVybiAoTm9kZSAqKSBwYXJhbTsKK30KKwogc3Rh dGljIE5vZGUgKgogdHJhbnNmb3JtUGFyYW1SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJl ZiAqcHJlZikKIHsKQEAgLTE4MTUsNiArMjAyOCw3IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VT dGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKQogCQljYXNlIEVYUFJfS0lORF9WQUxVRVM6 CiAJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFU19TSU5HTEU6CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xF X01BUks6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CiAJCQkvKiBva2F5ICovCiAJCQli cmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVDoKQEAgLTE4NTgsNiArMjA3 Miw5IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJs aW5rKQogCQljYXNlIEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OOgogCQkJZXJyID0gXygiY2Fu bm90IHVzZSBzdWJxdWVyeSBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9uIik7CiAJCQli cmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJCWVyciA9IF8oImNhbm5v dCB1c2Ugc3VicXVlcnkgYXMgdGFyZ2V0IG9mIGFzc2lnbiBzdGF0ZW1lbnQiKTsKKwkJCWJyZWFr OwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNl IGhlcmUsIHNvIHRoYXQgdGhlCkBAIC0zMjA3LDYgKzM0MjQsMTAgQEAgUGFyc2VFeHByS2luZE5h bWUoUGFyc2VFeHByS2luZCBleHByS2luZCkKIAkJCXJldHVybiAiR0VORVJBVEVEIEFTIjsKIAkJ Y2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJCXJldHVybiAiQ1lDTEUiOworCQljYXNlIEVY UFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQkJcmV0dXJuICJBU1NJR04iOworCQljYXNlIEVYUFJf S0lORF9MRVRfVEFSR0VUOgorCQkJcmV0dXJuICJMRVQiOwogCiAJCQkvKgogCQkJICogVGhlcmUg aXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2Z1bmMuYwppbmRleCA1ODNiYmJmMjMyLi5kYzI1ZjZkY2QwIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9mdW5jLmMKQEAgLTI2NTYsNiArMjY1Niw4IEBAIGNoZWNrX3NyZl9jYWxsX3BsYWNl bWVudChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxhc3Rfc3JmLCBpbnQgbG9jYXRpb24pCiAJ CQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gY29s dW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMiKTsKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lO RF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVY UFJfS0lORF9MRVRfVEFSR0VUOgogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfbWVyZ2UuYwppbmRleCA1MWQ3NzAzZWZmLi4yNDRlZmNkZGYzIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYworKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfbWVyZ2UuYwpAQCAtNDA1LDYgKzQwNSw3IEBAIHRyYW5zZm9ybU1lcmdlU3Rt dChQYXJzZVN0YXRlICpwc3RhdGUsIE1lcmdlU3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0 U1JGcyA9IGZhbHNlOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7 CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJs ZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jIGIvc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMKaW5k ZXggYjQ0ZjkwNzIyOC4uNDQ2YzcxOTUzYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC9k ZXN0LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMKQEAgLTM4LDYgKzM4LDcgQEAKICNp bmNsdWRlICJleGVjdXRvci9mdW5jdGlvbnMuaCIKICNpbmNsdWRlICJleGVjdXRvci90cXVldWUu aCIKICNpbmNsdWRlICJleGVjdXRvci90c3RvcmVSZWNlaXZlci5oIgorI2luY2x1ZGUgImV4ZWN1 dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAibGlicHEvbGlicHEuaCIKICNpbmNs dWRlICJsaWJwcS9wcWZvcm1hdC5oIgogCkBAIC0xNTUsNiArMTU2LDkgQEAgQ3JlYXRlRGVzdFJl Y2VpdmVyKENvbW1hbmREZXN0IGRlc3QpCiAKIAkJY2FzZSBEZXN0RXhwbGFpblNlcmlhbGl6ZToK IAkJCXJldHVybiBDcmVhdGVFeHBsYWluU2VyaWFsaXplRGVzdFJlY2VpdmVyKE5VTEwpOworCisJ CWNhc2UgRGVzdFZhcmlhYmxlOgorCQkJcmV0dXJuIENyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVy KEludmFsaWRPaWQpOwogCX0KIAogCS8qIHNob3VsZCBuZXZlciBnZXQgaGVyZSAqLwpAQCAtMTkx LDYgKzE5NSw3IEBAIEVuZENvbW1hbmQoY29uc3QgUXVlcnlDb21wbGV0aW9uICpxYywgQ29tbWFu ZERlc3QgZGVzdCwgYm9vbCBmb3JjZV91bmRlY29yYXRlZF9vCiAJCWNhc2UgRGVzdFRyYW5zaWVu dFJlbDoKIAkJY2FzZSBEZXN0VHVwbGVRdWV1ZToKIAkJY2FzZSBEZXN0RXhwbGFpblNlcmlhbGl6 ZToKKwkJY2FzZSBEZXN0VmFyaWFibGU6CiAJCQlicmVhazsKIAl9CiB9CkBAIC0yMzcsNiArMjQy LDcgQEAgTnVsbENvbW1hbmQoQ29tbWFuZERlc3QgZGVzdCkKIAkJY2FzZSBEZXN0VHJhbnNpZW50 UmVsOgogCQljYXNlIERlc3RUdXBsZVF1ZXVlOgogCQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXpl OgorCQljYXNlIERlc3RWYXJpYWJsZToKIAkJCWJyZWFrOwogCX0KIH0KQEAgLTI4MSw2ICsyODcs NyBAQCBSZWFkeUZvclF1ZXJ5KENvbW1hbmREZXN0IGRlc3QpCiAJCWNhc2UgRGVzdFRyYW5zaWVu dFJlbDoKIAkJY2FzZSBEZXN0VHVwbGVRdWV1ZToKIAkJY2FzZSBEZXN0RXhwbGFpblNlcmlhbGl6 ZToKKwkJY2FzZSBEZXN0VmFyaWFibGU6CiAJCQlicmVhazsKIAl9CiB9CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmlu ZGV4IDk5YTUxODc3ZDMuLjdhNTA4YTM2NDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3Av dXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC00OSw2ICs0OSw3 IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvc2NoZW1hY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRz L3NlY2xhYmVsLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKKyNpbmNsdWRlICJj b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc3Vic2NyaXB0 aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNv bW1hbmRzL3RhYmxlc3BhY2UuaCIKQEAgLTIzNSw2ICsyMzYsNyBAQCBDbGFzc2lmeVV0aWxpdHlD b21tYW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAKIAkJY2FzZSBUX0NhbGxTdG10Ogog CQljYXNlIFRfRG9TdG10OgorCQljYXNlIFRfTGV0U3RtdDoKIAkJCXsKIAkJCQkvKgogCQkJCSAq IENvbW1hbmRzIGluc2lkZSB0aGUgRE8gYmxvY2sgb3IgdGhlIGNhbGxlZCBwcm9jZWR1cmUgbWln aHQKQEAgLTEwNjcsNiArMTA2OSwxMSBAQCBzdGFuZGFyZF9Qcm9jZXNzVXRpbGl0eShQbGFubmVk U3RtdCAqcHN0bXQsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlF eGVjdXRlTGV0U3RtdChwc3RhdGUsIChMZXRTdG10ICopIHBhcnNldHJlZSwgcGFyYW1zLAorCQkJ CQkJICAgcXVlcnlFbnYsIHFjKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkvKiBBbGwg b3RoZXIgc3RhdGVtZW50IHR5cGVzIGhhdmUgZXZlbnQgdHJpZ2dlciBzdXBwb3J0ICovCiAJCQlQ cm9jZXNzVXRpbGl0eVNsb3cocHN0YXRlLCBwc3RtdCwgcXVlcnlTdHJpbmcsCkBAIC0yMjA2LDYg KzIyMTMsMTAgQEAgVXRpbGl0eUNvbnRhaW5zUXVlcnkoTm9kZSAqcGFyc2V0cmVlKQogCQkJCXJl dHVybiBVdGlsaXR5Q29udGFpbnNRdWVyeShxcnktPnV0aWxpdHlTdG10KTsKIAkJCXJldHVybiBx cnk7CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlxcnkgPSBjYXN0Tm9kZShRdWVyeSwgKChMZXRT dG10ICopIHBhcnNldHJlZSktPnF1ZXJ5KTsKKwkJCXJldHVybiBxcnk7CisKIAkJZGVmYXVsdDoK IAkJCXJldHVybiBOVUxMOwogCX0KQEAgLTI0MDQsNiArMjQxNSwxMCBAQCBDcmVhdGVDb21tYW5k VGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCXRhZyA9IENNRFRBR19TRUxFQ1Q7CiAJCQlicmVhazsK IAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXRhZyA9IENNRFRBR19MRVQ7CisJCQlicmVhazsKKwog CQkJLyogdXRpbGl0eSBzdGF0ZW1lbnRzIC0tLSBzYW1lIHdoZXRoZXIgcmF3IG9yIGNvb2tlZCAq LwogCQljYXNlIFRfVHJhbnNhY3Rpb25TdG10OgogCQkJewpAQCAtMzI4OSw2ICszMzA0LDcgQEAg R2V0Q29tbWFuZExvZ0xldmVsKE5vZGUgKnBhcnNldHJlZSkKIAkJCWJyZWFrOwogCiAJCWNhc2Ug VF9QTEFzc2lnblN0bXQ6CisJCWNhc2UgVF9MZXRTdG10OgogCQkJbGV2ID0gTE9HU1RNVF9BTEw7 CiAJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGls cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDU0ZGFkOTc1NTUu Ljc0MTcwNTRjMzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTM3LDYgKzM3LDcg QEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N0YXRpc3RpY19leHQuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3RyaWdnZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNvbW1vbi9rZXl3b3Jk cy5oIgpAQCAtNTMxLDYgKzUzMiw3IEBAIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9mdW5jdGlvbl9u YW1lKE9pZCBmdW5jaWQsIGludCBuYXJncywKIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9vcGVyYXRv cl9uYW1lKE9pZCBvcGVyaWQsIE9pZCBhcmcxLCBPaWQgYXJnMik7CiBzdGF0aWMgdm9pZCBhZGRf Y2FzdF90byhTdHJpbmdJbmZvIGJ1ZiwgT2lkIHR5cGlkKTsKIHN0YXRpYyBjaGFyICpnZW5lcmF0 ZV9xdWFsaWZpZWRfdHlwZV9uYW1lKE9pZCB0eXBpZCk7CitzdGF0aWMgY2hhciAqZ2VuZXJhdGVf c2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCk7CiBzdGF0aWMgdGV4dCAqc3RyaW5nX3Rv X3RleHQoY2hhciAqc3RyKTsKIHN0YXRpYyBjaGFyICpmbGF0dGVuX3JlbG9wdGlvbnMoT2lkIHJl bGlkKTsKIHN0YXRpYyB2b2lkIGdldF9yZWxvcHRpb25zKFN0cmluZ0luZm8gYnVmLCBEYXR1bSBy ZWxvcHRpb25zKTsKQEAgLTg2NzcsNiArODY3OSwxNCBAQCBnZXRfcGFyYW1ldGVyKFBhcmFtICpw YXJhbSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KQogCQlyZXR1cm47CiAJfQogCisJLyogdHJh bnNsYXRlIHBhcmFtdmFyaWQgdG8gc2Vzc2lvbiB2YXJpYWJsZSBuYW1lICovCisJaWYgKHBhcmFt LT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJeworCQlhcHBlbmRTdHJpbmdJbmZvKGNv bnRleHQtPmJ1ZiwgIiVzIiwKKwkJCQkJCSBnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUo cGFyYW0tPnBhcmFtdmFyaWQpKTsKKwkJcmV0dXJuOworCX0KKwogCS8qCiAJICogQWx0ZXJuYXRp dmVseSwgbWF5YmUgaXQncyBhIHN1YnBsYW4gb3V0cHV0LCB3aGljaCB3ZSBwcmludCBhcyBhCiAJ ICogcmVmZXJlbmNlIHRvIHRoZSBzdWJwbGFuLiAgKFdlIGNvdWxkIGRyaWxsIGRvd24gaW50byB0 aGUgc3VicGxhbiBhbmQKQEAgLTEzNDc3LDYgKzEzNDg3LDQyIEBAIGdlbmVyYXRlX2NvbGxhdGlv bl9uYW1lKE9pZCBjb2xsaWQpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIGdlbmVyYXRl X3Nlc3Npb25fdmFyaWFibGVfbmFtZQorICoJCUNvbXB1dGUgdGhlIG5hbWUgdG8gZGlzcGxheSBm b3IgYSBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBPSUQKKyAqCisgKiBUaGUgcmVzdWx0 IGluY2x1ZGVzIGFsbCBuZWNlc3NhcnkgcXVvdGluZyBhbmQgc2NoZW1hLXByZWZpeGluZy4KKyAq Lworc3RhdGljIGNoYXIgKgorZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJp ZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwljaGFy CSAgICp2YXJuYW1lOworCWNoYXIJICAgKm5zcG5hbWU7CisJY2hhcgkgICAqcmVzdWx0OworCisJ dHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlk KSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hl IGxvb2t1cCBmYWlsZWQgZm9yIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChG b3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXZhcm5hbWUgPSBOYW1lU3RyKHZh cmZvcm0tPnZhcm5hbWUpOworCisJaWYgKCFWYXJpYWJsZUlzVmlzaWJsZSh2YXJpZCkpCisJCW5z cG5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWVfb3JfdGVtcCh2YXJmb3JtLT52YXJuYW1lc3BhY2Up OworCWVsc2UKKwkJbnNwbmFtZSA9IE5VTEw7CisKKwlyZXN1bHQgPSBxdW90ZV9xdWFsaWZpZWRf aWRlbnRpZmllcihuc3BuYW1lLCB2YXJuYW1lKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOwor CisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIEdpdmVuIGEgQyBzdHJpbmcsIHByb2R1Y2Ug YSBURVhUIGRhdHVtLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3Bs YW5jYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKaW5kZXggNTVk YjhmNTM3MC4uNjMyYzQzOGE3YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv cGxhbmNhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKQEAg LTU4LDYgKzU4LDcgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNp bmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKQEAgLTE2Miw2ICsxNjMsNyBAQCBJbml0UGxhbkNh Y2hlKHZvaWQpCiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soQU1PUE9QSUQsIFBsYW5D YWNoZVN5c0NhbGxiYWNrLCAoRGF0dW0pIDApOwogCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxi YWNrKEZPUkVJR05TRVJWRVJPSUQsIFBsYW5DYWNoZVN5c0NhbGxiYWNrLCAoRGF0dW0pIDApOwog CUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEZPUkVJR05EQVRBV1JBUFBFUk9JRCwgUGxh bkNhY2hlU3lzQ2FsbGJhY2ssIChEYXR1bSkgMCk7CisJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2Fs bGJhY2soVkFSSUFCTEVPSUQsIFBsYW5DYWNoZU9iamVjdENhbGxiYWNrLCAoRGF0dW0pIDApOwog fQogCiAvKgpAQCAtMTkwMywxNyArMTkwNSwzMiBAQCBTY2FuUXVlcnlGb3JMb2NrcyhRdWVyeSAq cGFyc2V0cmVlLCBib29sIGFjcXVpcmUpCiAKIAkvKgogCSAqIFJlY3Vyc2UgaW50byBzdWJsaW5r IHN1YnF1ZXJpZXMsIHRvby4gIEJ1dCB3ZSBhbHJlYWR5IGRpZCB0aGUgb25lcyBpbgotCSAqIHRo ZSBydGFibGUgYW5kIGN0ZUxpc3QuCisJICogdGhlIHJ0YWJsZSBhbmQgY3RlTGlzdC4gIFdlIG5l ZWQgdG8gZm9yY2UgYSByZWN1cnNpdmUgY2FsbCBmb3Igc2Vzc2lvbgorCSAqIHZhcmlhYmxlcyB0 b28sIHRvIGZpbmQgYW5kIGxvY2sgdmFyaWFibGVzIHVzZWQgaW4gdGhlIHF1ZXJ5IChzZWUKKwkg KiBTY2FuUXVlcnlXYWxrZXIpLgogCSAqLwotCWlmIChwYXJzZXRyZWUtPmhhc1N1YkxpbmtzKQor CWlmIChwYXJzZXRyZWUtPmhhc1N1YkxpbmtzIHx8CisJCXBhcnNldHJlZS0+aGFzU2Vzc2lvblZh cmlhYmxlcykKIAl7CiAJCXF1ZXJ5X3RyZWVfd2Fsa2VyKHBhcnNldHJlZSwgU2NhblF1ZXJ5V2Fs a2VyLCAmYWNxdWlyZSwKIAkJCQkJCSAgUVRXX0lHTk9SRV9SQ19TVUJRVUVSSUVTKTsKIAl9CisK KwkvKiBwcm9jZXNzIHNlc3Npb24gdmFyaWFibGVzICovCisJaWYgKE9pZElzVmFsaWQocGFyc2V0 cmVlLT5yZXN1bHRWYXJpYWJsZSkpCisJeworCQlpZiAoYWNxdWlyZSkKKwkJCUxvY2tEYXRhYmFz ZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHBhcnNldHJlZS0+cmVzdWx0VmFyaWFibGUsCisJ CQkJCQkJICAgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJZWxzZQorCQkJVW5sb2NrRGF0YWJhc2VP YmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlLAorCQkJ CQkJCQkgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwl9CiB9CiAKIC8qCi0gKiBXYWxrZXIgdG8gZmlu ZCBzdWJsaW5rIHN1YnF1ZXJpZXMgZm9yIFNjYW5RdWVyeUZvckxvY2tzCisgKiBXYWxrZXIgdG8g ZmluZCBzdWJsaW5rIHN1YnF1ZXJpZXMgb3IgcmVmZXJlbmNlZCBzZXNzaW9uIHZhcmlhYmxlcwor ICogZm9yIFNjYW5RdWVyeUZvckxvY2tzCiAgKi8KIHN0YXRpYyBib29sCiBTY2FuUXVlcnlXYWxr ZXIoTm9kZSAqbm9kZSwgYm9vbCAqYWNxdWlyZSkKQEAgLTE5MjgsNiArMTk0NSwyMCBAQCBTY2Fu UXVlcnlXYWxrZXIoTm9kZSAqbm9kZSwgYm9vbCAqYWNxdWlyZSkKIAkJU2NhblF1ZXJ5Rm9yTG9j a3MoY2FzdE5vZGUoUXVlcnksIHN1Yi0+c3Vic2VsZWN0KSwgKmFjcXVpcmUpOwogCQkvKiBGYWxs IHRocm91Z2ggdG8gcHJvY2VzcyBsZWZ0aGFuZCBhcmdzIG9mIFN1YkxpbmsgKi8KIAl9CisJZWxz ZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAgICpwID0gKFBhcmFtICopIG5v ZGU7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJeworCQkJaWYg KGFjcXVpcmUpCisJCQkJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgcC0+ cGFyYW12YXJpZCwKKwkJCQkJCQkJICAgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCWVsc2UKKwkJ CQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHAtPnBhcmFtdmFyaWQs CisJCQkJCQkJCQkgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJfQorCX0KIAogCS8qCiAJICogRG8g Tk9UIHJlY3Vyc2UgaW50byBRdWVyeSBub2RlcywgYmVjYXVzZSBTY2FuUXVlcnlGb3JMb2NrcyBh bHJlYWR5CkBAIC0yMDU4LDcgKzIwODksOSBAQCBQbGFuQ2FjaGVSZWxDYWxsYmFjayhEYXR1bSBh cmcsIE9pZCByZWxpZCkKIAogLyoKICAqIFBsYW5DYWNoZU9iamVjdENhbGxiYWNrCi0gKgkJU3lz Y2FjaGUgaW52YWwgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIFBST0NPSUQgYW5kIFRZUEVPSUQgY2Fj aGVzCisgKgkJU3lzY2FjaGUgaW52YWwgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIFRZUEVPSUQsIFBS T0NPSUQsIE5BTUVTUEFDRU9JRCwKKyAqCQlPUEVST0lELCBBTU9QT1BJRCwgRk9SRUlHTlNFUlZF Uk9JRCwgRk9SRUlHTkRBVEFXUkFQUEVST0lEIGFuZAorICoJCVZBUklBQkxFT0lEIGNhY2hlcy4K ICAqCiAgKiBJbnZhbGlkYXRlIGFsbCBwbGFucyBtZW50aW9uaW5nIHRoZSBvYmplY3Qgd2l0aCB0 aGUgc3BlY2lmaWVkIGhhc2ggdmFsdWUsCiAgKiBvciBhbGwgcGxhbnMgbWVudGlvbmluZyBhbnkg bWVtYmVyIG9mIHRoaXMgY2FjaGUgaWYgaGFzaHZhbHVlID09IDAuCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5j CmluZGV4IGFhODlhZThmZTEuLjI3NjkxMDk3ODkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2ZtZ3IvZm1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCkBAIC0y MDI2LDkgKzIwMjYsMTMgQEAgZ2V0X2NhbGxfZXhwcl9hcmdfc3RhYmxlKE5vZGUgKmV4cHIsIGlu dCBhcmdudW0pCiAJICovCiAJaWYgKElzQShhcmcsIENvbnN0KSkKIAkJcmV0dXJuIHRydWU7Ci0J aWYgKElzQShhcmcsIFBhcmFtKSAmJgotCQkoKFBhcmFtICopIGFyZyktPnBhcmFta2luZCA9PSBQ QVJBTV9FWFRFUk4pCi0JCXJldHVybiB0cnVlOworCWlmIChJc0EoYXJnLCBQYXJhbSkpCisJewor CQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBhcmc7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQ QVJBTV9FWFRFUk4gfHwgcC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJcmV0dXJu IHRydWU7CisJfQogCiAJcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4 IDZlZWJmYzZhNWYuLmFjYmY1MWVmMmUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTEyMTQs OCArMTIxNCw4IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBzcWxfY29tbWFuZHNbXSA9IHsK IAkiQUJPUlQiLCAiQUxURVIiLCAiQU5BTFlaRSIsICJCRUdJTiIsICJDQUxMIiwgIkNIRUNLUE9J TlQiLCAiQ0xPU0UiLCAiQ0xVU1RFUiIsCiAJIkNPTU1FTlQiLCAiQ09NTUlUIiwgIkNPUFkiLCAi Q1JFQVRFIiwgIkRFQUxMT0NBVEUiLCAiREVDTEFSRSIsCiAJIkRFTEVURSBGUk9NIiwgIkRJU0NB UkQiLCAiRE8iLCAiRFJPUCIsICJFTkQiLCAiRVhFQ1VURSIsICJFWFBMQUlOIiwKLQkiRkVUQ0gi LCAiR1JBTlQiLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1BIiwgIklOU0VSVCBJTlRPIiwgIkxJU1RF TiIsICJMT0FEIiwgIkxPQ0siLAotCSJNRVJHRSBJTlRPIiwgIk1PVkUiLCAiTk9USUZZIiwgIlBS RVBBUkUiLAorCSJGRVRDSCIsICJHUkFOVCIsICJJTVBPUlQgRk9SRUlHTiBTQ0hFTUEiLCAiSU5T RVJUIElOVE8iLCAiTEVUIiwKKwkiTElTVEVOIiwgIkxPQUQiLCAiTE9DSyIsICJNRVJHRSBJTlRP IiwgIk1PVkUiLCAiTk9USUZZIiwgIlBSRVBBUkUiLAogCSJSRUFTU0lHTiIsICJSRUZSRVNIIE1B VEVSSUFMSVpFRCBWSUVXIiwgIlJFSU5ERVgiLCAiUkVMRUFTRSIsCiAJIlJFU0VUIiwgIlJFVk9L RSIsICJST0xMQkFDSyIsCiAJIlNBVkVQT0lOVCIsICJTRUNVUklUWSBMQUJFTCIsICJTRUxFQ1Qi LCAiU0VUIiwgIlNIT1ciLCAiU1RBUlQiLApAQCAtNDY2MCw2ICs0NjYwLDE0IEBAIG1hdGNoX3By ZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQUxV RVMiKSAmJiAhVGFpbE1hdGNoZXMoIkRFRkFVTFQiLCAiVkFMVUVTIikpCiAJCUNPTVBMRVRFX1dJ VEgoIigiKTsKIAorLyogTEVUICovCisJLyogSWYgcHJldi4gd29yZCBpcyBMRVQgc3VnZ2VzdCBh IGxpc3Qgb2YgdmFyaWFibGVzICovCisJZWxzZSBpZiAoTWF0Y2hlcygiTEVUIikpCisJCUNPTVBM RVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CisJLyog Q29tcGxldGUgTEVUIDx2YXJpYWJsZT4gd2l0aCAiPSIgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hl cygiTEVUIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCI9Iik7CisKIC8qIExPQ0sgKi8K IAkvKiBDb21wbGV0ZSBMT0NLIFtUQUJMRV0gW09OTFldIHdpdGggYSBsaXN0IG9mIHRhYmxlcyAq LwogCWVsc2UgaWYgKE1hdGNoZXMoIkxPQ0siKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvbmFtZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4 IGJkYWMwYzEzYmUuLjUwNjBiOGM5NDkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv bmFtZXNwYWNlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaApAQCAtMTc0 LDYgKzE3NCw3IEBAIGV4dGVybiBib29sIFNlYXJjaFBhdGhNYXRjaGVzQ3VycmVudEVudmlyb25t ZW50KFNlYXJjaFBhdGhNYXRjaGVyICpwYXRoKTsKIGV4dGVybiBMaXN0ICpOYW1lc0Zyb21MaXN0 KExpc3QgKm5hbWVzKTsKIGV4dGVybiBPaWQJTG9va3VwVmFyaWFibGUoY29uc3QgY2hhciAqbnNw bmFtZSwgY29uc3QgY2hhciAqdmFybmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJ TG9va3VwVmFyaWFibGVGcm9tTmFtZUxpc3QoTGlzdCAqbmFtZXMsIGJvb2wgbWlzc2luZ19vayk7 CitleHRlcm4gT2lkCUlkZW50aWZ5VmFyaWFibGUoTGlzdCAqbmFtZXMsIGNoYXIgKiphdHRybmFt ZSwgYm9vbCAqbm90X3VuaXF1ZSwgYm9vbCBub2Vycm9yKTsKIAogZXh0ZXJuIE9pZAlnZXRfY29s bGF0aW9uX29pZChMaXN0ICpjb2xsbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJ Z2V0X2NvbnZlcnNpb25fb2lkKExpc3QgKmNvbm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggM2QzYzZlYjI0Yi4uNWI0NWJlNWFmYSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtMTgsNiArMTgsNyBAQAogI2lmbmRlZiBQR19WQVJJ QUJMRV9ICiAjZGVmaW5lIFBHX1ZBUklBQkxFX0gKIAorI2luY2x1ZGUgImFjY2Vzcy94bG9nZGVm cy5oIgogI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9vYmpl Y3RhZGRyZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZV9kLmgiCkBAIC0zNSw2 ICszNiwxNCBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQog CS8qIE9JRCBvZiBlbnRyeSBpbiBwZ190eXBlIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KIAlPaWQJ CQl2YXJ0eXBlIEJLSV9MT09LVVAocGdfdHlwZSk7CiAKKwkvKgorCSAqIFVzZWQgZm9yIGlkZW50 aXR5IGNoZWNrIFtvaWQsIGNyZWF0ZV9sc25dLgorCSAqCisJICogVGhpcyBjb2x1bW4gb2YgdGhl IDgtYnl0ZSBYbG9nUmVjUHRyIHR5cGUgc2hvdWxkIGJlIGF0IGFuIGFkZHJlc3MgdGhhdAorCSAq IGlzIGRpdmlzaWJsZSBieSA4LCBidXQgYmVmb3JlIGFueSBjb2x1bW4gb2YgdHlwZSBOYW1lRGF0 YS4KKwkgKi8KKwlYTG9nUmVjUHRyCXZhcmNyZWF0ZV9sc247CisKIAkvKiB2YXJpYWJsZSBuYW1l ICovCiAJTmFtZURhdGEJdmFybmFtZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjIzOTFiOWFkNDQK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgKQEAgLTAsMCArMSwzMCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc2Vzc2lvbnZh cmlhYmxlLmgKKyAqCSAgcHJvdG90eXBlcyBmb3Igc2Vzc2lvbnZhcmlhYmxlLmMuCisgKgorICoK KyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBE ZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRz IG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisj aWZuZGVmIFNFU1NJT05WQVJJQUJMRV9ICisjZGVmaW5lIFNFU1NJT05WQVJJQUJMRV9ICisKKyNp bmNsdWRlICJub2Rlcy9wYXJhbXMuaCIKKyNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCisj aW5jbHVkZSAicGFyc2VyL3BhcnNlX25vZGUuaCIKKyNpbmNsdWRlICJ0Y29wL2NtZHRhZy5oIgor I2luY2x1ZGUgInV0aWxzL3F1ZXJ5ZW52aXJvbm1lbnQuaCIKKworZXh0ZXJuIHZvaWQgU2V0U2Vz c2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKK2V4dGVy biBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwpOworCitl eHRlcm4gdm9pZCBFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0 bXQsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorCQkJCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVl cnlFbnYsIFF1ZXJ5Q29tcGxldGlvbiAqcWMpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmggYi9zcmMvaW5jbHVkZS9leGVjdXRv ci9zdmFyaWFibGVSZWNlaXZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAuLmRiNDRkOGI5NGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9z dmFyaWFibGVSZWNlaXZlci5oCkBAIC0wLDAgKzEsMjIgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICoKKyAqIHN2YXJpYWJsZVJlY2VpdmVyLmgKKyAqCSAgcHJvdG90eXBlcyBmb3Igc3ZhcmlhYmxl UmVjZWl2ZXIuYworICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwg UG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgor ICogc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaAorICoKKyAqLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYgU1ZBUklBQkxFX1JFQ0VJVkVSX0gKKyNkZWZpbmUg U1ZBUklBQkxFX1JFQ0VJVkVSX0gKKworI2luY2x1ZGUgInRjb3AvZGVzdC5oIgorCitleHRlcm4g RGVzdFJlY2VpdmVyICpDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcihPaWQgdmFyaWQpOworCisj ZW5kaWYJCQkJCQkJLyogU1ZBUklBQkxFX1JFQ0VJVkVSX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgK aW5kZXggZDBmMmRjYTU5Mi4uYTNkOThiZTZiNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9k ZXMvZXhlY25vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTYz Myw2ICs2MzMsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QgQXN5bmNSZXF1ZXN0CiAJCQkJCQkJCSAqIHR1 cGxlcykgKi8KIH0gQXN5bmNSZXF1ZXN0OwogCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKiBTZXNz aW9uVmFyaWFibGVWYWx1ZQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVj dCBTZXNzaW9uVmFyaWFibGVWYWx1ZQoreworCWJvb2wJCWlzbnVsbDsKKwlEYXR1bQkJdmFsdWU7 Cit9IFNlc3Npb25WYXJpYWJsZVZhbHVlOworCiAvKiAtLS0tLS0tLS0tLS0tLS0tCiAgKgkgIEVT dGF0ZSBpbmZvcm1hdGlvbgogICoKQEAgLTY4NSw2ICs2OTUsMTAgQEAgdHlwZWRlZiBzdHJ1Y3Qg RVN0YXRlCiAJUGFyYW1MaXN0SW5mbyBlc19wYXJhbV9saXN0X2luZm87CS8qIHZhbHVlcyBvZiBl eHRlcm5hbCBwYXJhbXMgKi8KIAlQYXJhbUV4ZWNEYXRhICplc19wYXJhbV9leGVjX3ZhbHM7CS8q IHZhbHVlcyBvZiBpbnRlcm5hbCBwYXJhbXMgKi8KIAorCS8qIFNlc3Npb24gdmFyaWFibGVzIGlu Zm86ICovCisJaW50CQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOwkJLyogbnVtYmVyIG9mIHVz ZWQgdmFyaWFibGVzICovCisJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKmVzX3Nlc3Npb25fdmFyaWFi bGVzOwkvKiBhcnJheSBvZiBjb3BpZXMgb2YgdmFsdWVzICovCisKIAlRdWVyeUVudmlyb25tZW50 ICplc19xdWVyeUVudjsJLyogcXVlcnkgZW52aXJvbm1lbnQgKi8KIAogCS8qIE90aGVyIHdvcmtp bmcgc3RhdGU6ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggNTFiYTI5YmJhZS4uYjM3N2Vl MDk1NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMTQyLDYgKzE0Miw5IEBAIHR5cGVkZWYg c3RydWN0IFF1ZXJ5CiAJICovCiAJaW50CQkJcmVzdWx0UmVsYXRpb24gcGdfbm9kZV9hdHRyKHF1 ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCisJLyogdGFyZ2V0IHZhcmlhYmxlIG9mIExFVCBzdGF0ZW1l bnQgKi8KKwlPaWQJCQlyZXN1bHRWYXJpYWJsZTsKKwogCS8qIGhhcyBhZ2dyZWdhdGVzIGluIHRs aXN0IG9yIGhhdmluZ1F1YWwgKi8KIAlib29sCQloYXNBZ2dzIHBnX25vZGVfYXR0cihxdWVyeV9q dW1ibGVfaWdub3JlKTsKIAkvKiBoYXMgd2luZG93IGZ1bmN0aW9ucyBpbiB0bGlzdCAqLwpAQCAt MTYyLDYgKzE2NSw4IEBAIHR5cGVkZWYgc3RydWN0IFF1ZXJ5CiAJYm9vbAkJaGFzUm93U2VjdXJp dHkgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIHBhcnNlciBoYXMgYWRk ZWQgYW4gUlRFX0dST1VQIFJURSAqLwogCWJvb2wJCWhhc0dyb3VwUlRFIHBnX25vZGVfYXR0cihx dWVyeV9qdW1ibGVfaWdub3JlKTsKKwkvKiB1c2VzIHNlc3Npb24gdmFyaWFibGVzICovCisJYm9v bAkJaGFzU2Vzc2lvblZhcmlhYmxlcyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7 CiAJLyogaXMgYSBSRVRVUk4gc3RhdGVtZW50ICovCiAJYm9vbAkJaXNSZXR1cm4gcGdfbm9kZV9h dHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCkBAIC0yMTQ0LDYgKzIxNDksMTggQEAgdHlwZWRl ZiBzdHJ1Y3QgTWVyZ2VTdG10CiAJUGFyc2VMb2MJc3RtdF9sZW47CQkvKiBsZW5ndGggaW4gYnl0 ZXM7IDAgbWVhbnMgInJlc3Qgb2Ygc3RyaW5nIiAqLwogfSBNZXJnZVN0bXQ7CiAKKy8qIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqCQlMZXQgU3RhdGVtZW50CisgKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IExldFN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOwor CUxpc3QJICAgKnRhcmdldDsJCQkvKiB0YXJnZXQgdmFyaWFibGUgKi8KKwlOb2RlCSAgICpxdWVy eTsJCQkvKiBzb3VyY2UgZXhwcmVzc2lvbiAqLworCVBhcnNlTG9jCWxvY2F0aW9uOworfSBMZXRT dG10OworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJU2VsZWN0IFN0YXRlbWVudAog ICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGF0aG5vZGVzLmgKaW5kZXggNTRlZTE3Njk3ZS4uNjY2OWQwNGRhZCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGF0aG5vZGVzLmgKQEAgLTE2Myw2ICsxNjMsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5l ckdsb2JhbAogCiAJLyogcGFydGl0aW9uIGRlc2NyaXB0b3JzICovCiAJUGFydGl0aW9uRGlyZWN0 b3J5IHBhcnRpdGlvbl9kaXJlY3RvcnkgcGdfbm9kZV9hdHRyKHJlYWRfd3JpdGVfaWdub3JlKTsK KworCS8qIGxpc3Qgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCUxpc3QJICAgKnNlc3Np b25WYXJpYWJsZXM7CisKKwkvKiBPaWQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSB1c2VkIGxpa2UgdGFy Z2V0IG9mIExFVCBjb21tYW5kICovCisJT2lkCQkJcmVzdWx0VmFyaWFibGU7CisKKwkvKiBvaWQg b2Ygc2Vzc2lvbiB2YXJpYWJsZSB1c2VkIGxpa2UgYmFzZSBub2RlIGZvciBhc3NpZ25tZW50IGlu ZGlyZWN0aW9uICovCisJT2lkCQkJYmFzZW5vZGVTZXNzaW9uVmFyaWQ7CisKKwkvKiB0cnVlLCBp ZiB3ZSBkbyBTRUxFQ1QgcGVybWlzc2lvbiBjaGVjayBvbiBiYXNlbm9kZVNlc3Npb25WYXJpZCAq LworCWJvb2wJCWJhc2Vub2RlU2Vzc2lvblZhclNlbGVjdENoZWNrOwogfSBQbGFubmVyR2xvYmFs OwogCiAvKiBtYWNybyBmb3IgZmV0Y2hpbmcgdGhlIFBsYW4gYXNzb2NpYXRlZCB3aXRoIGEgU3Vi UGxhbiBub2RlICovCkBAIC01MDgsNiArNTIwLDggQEAgc3RydWN0IFBsYW5uZXJJbmZvCiAJYm9v bAkJcGxhY2Vob2xkZXJzRnJvemVuOwogCS8qIHRydWUgaWYgcGxhbm5pbmcgYSByZWN1cnNpdmUg V0lUSCBpdGVtICovCiAJYm9vbAkJaGFzUmVjdXJzaW9uOworCS8qIHRydWUgaWYgc2Vzc2lvbiB2 YXJpYWJsZXMgd2VyZSB1c2VkICovCisJYm9vbAkJaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCS8q CiAJICogVGhlIHJhbmdldGFibGUgaW5kZXggZm9yIHRoZSBSVEVfR1JPVVAgUlRFLCBvciAwIGlm IHRoZXJlIGlzIG5vCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCmluZGV4IDllMTljZGQyODQuLjQzYTI1Nzk1 MjQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBAIC05NCw2ICs5NCwxNSBAQCB0eXBlZGVmIHN0cnVj dCBQbGFubmVkU3RtdAogCiAJTm9kZQkgICAqdXRpbGl0eVN0bXQ7CS8qIG5vbi1udWxsIGlmIHRo aXMgaXMgdXRpbGl0eSBzdG10ICovCiAKKwlMaXN0CSAgICpzZXNzaW9uVmFyaWFibGVzOwkvKiBP SURzIGZvciBQQVJBTV9WQVJJQUJMRSBQYXJhbXMgKi8KKworCS8qCisJICogVGhlIG9pZCBvZiBz ZXNzaW9uIHZhcmlhYmxlIGV4ZWNsdWRlZCBmcm9tIHBlcm1pc3Npb24gY2hlY2suCisJICogVGhp cyBzZXNzaW9uIHZhcmlhYmxlIGlzIHVzZWQgYXMgYmFzZSBub2RlIG9mIGFzc2lnbm1lbnQgaW5k aXJlY3Rpb24KKwkgKiAoYW5kIGl0IGlzIHVzZWQgb25seSB0aGVyZSkuCisJICovCisJaW50CQkJ ZXhjbFNlbGVjdFBlcm1DaGVja1ZhcmlkOworCiAJLyogc3RhdGVtZW50IGxvY2F0aW9uIGluIHNv dXJjZSBzdHJpbmcgKGNvcGllZCBmcm9tIFF1ZXJ5KSAqLwogCVBhcnNlTG9jCXN0bXRfbG9jYXRp b247CS8qIHN0YXJ0IGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJc3Rt dF9sZW47CQkvKiBsZW5ndGggaW4gYnl0ZXM7IDAgbWVhbnMgInJlc3Qgb2Ygc3RyaW5nIiAqLwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9u b2Rlcy9wcmltbm9kZXMuaAppbmRleCA1OWU3YmIyNmJiLi43ZmQ5YzhlMmYwIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9w cmltbm9kZXMuaApAQCAtMzc3LDYgKzM3Nyw5IEBAIHR5cGVkZWYgc3RydWN0IENvbnN0CiAgKgkJ CQlvZiB0aGUgYHBhcmFtaWQnIGZpZWxkIGNvbnRhaW4gdGhlIFN1YkxpbmsncyBzdWJMaW5rSWQs IGFuZAogICoJCQkJdGhlIGxvdy1vcmRlciAxNiBiaXRzIGNvbnRhaW4gdGhlIGNvbHVtbiBudW1i ZXIuICAoVGhpcyB0eXBlCiAgKgkJCQlvZiBQYXJhbSBpcyBhbHNvIGNvbnZlcnRlZCB0byBQQVJB TV9FWEVDIGR1cmluZyBwbGFubmluZy4pCisgKgorICoJCVBBUkFNX1ZBUklBQkxFOiAgVGhlIHBh cmFtZXRlciBpcyBhIHJlZmVyZW5jZSB0byBhIHNlc3Npb24gdmFyaWFibGUKKyAqCQkJCShwYXJh bXZhcmlkIGhvbGRzIHRoZSB2YXJpYWJsZSdzIE9JRCkuCiAgKi8KIHR5cGVkZWYgZW51bSBQYXJh bUtpbmQKIHsKQEAgLTM4NCw2ICszODcsNyBAQCB0eXBlZGVmIGVudW0gUGFyYW1LaW5kCiAJUEFS QU1fRVhFQywKIAlQQVJBTV9TVUJMSU5LLAogCVBBUkFNX01VTFRJRVhQUiwKKwlQQVJBTV9WQVJJ QUJMRSwKIH0gUGFyYW1LaW5kOwogCiB0eXBlZGVmIHN0cnVjdCBQYXJhbQpAQCAtMzk2LDYgKzQw MCwxNiBAQCB0eXBlZGVmIHN0cnVjdCBQYXJhbQogCWludDMyCQlwYXJhbXR5cG1vZCBwZ19ub2Rl X2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogT0lEIG9mIGNvbGxhdGlvbiwgb3IgSW52 YWxpZE9pZCBpZiBub25lICovCiAJT2lkCQkJcGFyYW1jb2xsaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5 X2p1bWJsZV9pZ25vcmUpOworCS8qIE9JRCBvZiBzZXNzaW9uIHZhcmlhYmxlIGlmIGl0IGlzIHVz ZWQgKi8KKwlPaWQJCQlwYXJhbXZhcmlkIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3Jl KTsKKworCS8qCisJICogdHJ1ZSBpZiBwYXJhbSBpcyB1c2VkIGFzIGJhc2Ugbm9kZSBvZiBhc3Np Z25tZW50IGluZGlyZWN0aW9uCisJICogKHdoZW4gdGFyZ2V0IG9mIExFVCBzdGF0ZW1lbnQgaXMg YW4gYXJyYXkgZmllbGQgb3IgYW4gcmVjb3JkIGZpZWxkKS4KKwkgKiBGb3IgdGhpcyBwYXJhbSB3 ZSBkbyBub3QgY2hlY2sgU0VMRUNUIGFjY2VzcyByaWdodCwgYmVjYXVzZSB0aGlzCisJICogcGFy YW0gaXMgdXNlZCBqdXN0IGZvciBleGVjdXRpb24gb2YgVVBEQVRFIG9wZXJhdGlvbi4KKwkgKi8K Kwlib29sCQlwYXJhbWJhc2Vub2RlOwogCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtu b3duICovCiAJUGFyc2VMb2MJbG9jYXRpb247CiB9IFBhcmFtOwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmggYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1h aW4uaAppbmRleCBmZWUzMzc4YmJlLi5lODU1MTMyMGQxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9vcHRpbWl6ZXIvcGxhbm1haW4uaAorKysgYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1h aW4uaApAQCAtMTI1LDQgKzEyNSw2IEBAIGV4dGVybiB2b2lkIHJlY29yZF9wbGFuX2Z1bmN0aW9u X2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCBmdW5jaWQpOwogZXh0ZXJuIHZvaWQg cmVjb3JkX3BsYW5fdHlwZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdHlwaWQp OwogZXh0ZXJuIGJvb2wgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2VyKE5vZGUgKm5v ZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KTsKIAorZXh0ZXJuIHZvaWQgcHVsbF91cF9oYXNfc2Vz c2lvbl92YXJpYWJsZXMoUGxhbm5lckluZm8gKnJvb3QpOworCiAjZW5kaWYJCQkJCQkJLyogUExB Tk1BSU5fSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IGQwYzFjNDNmNWIuLjZkODc0YWFkYjMgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmgKQEAgLTI1Nyw2ICsyNTcsNyBAQCBQR19LRVlXT1JEKCJsZWFkaW5nIiwg TEVBRElORywgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlYWtw cm9vZiIsIExFQUtQUk9PRiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgibGVhc3QiLCBMRUFTVCwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tF WVdPUkQoImxlZnQiLCBMRUZULCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQor UEdfS0VZV09SRCgibGV0IiwgTEVULCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJsZXZlbCIsIExFVkVMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJsaWtlIiwgTElLRSwgVFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9M QUJFTCkKIFBHX0tFWVdPUkQoImxpbWl0IiwgTElNSVQsIFJFU0VSVkVEX0tFWVdPUkQsIEFTX0xB QkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggOTk0Mjg0MDE5Zi4uMGI3YjY5YTQxNSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBAIC04Miw2ICs4Miw4IEBAIHR5cGVkZWYgZW51bSBQ YXJzZUV4cHJLaW5kCiAJRVhQUl9LSU5EX0NPUFlfV0hFUkUsCQkvKiBXSEVSRSBjb25kaXRpb24g aW4gQ09QWSBGUk9NICovCiAJRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU4sIC8qIGdlbmVyYXRp b24gZXhwcmVzc2lvbiBmb3IgYSBjb2x1bW4gKi8KIAlFWFBSX0tJTkRfQ1lDTEVfTUFSSywJCS8q IGN5Y2xlIG1hcmsgdmFsdWUgKi8KKwlFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVCwJLyogUEwvcGdT UUwgYXNzaWdubWVudCB0YXJnZXQgKi8KKwlFWFBSX0tJTkRfTEVUX1RBUkdFVCwJCS8qIExFVCB0 YXJnZXQgKi8KIH0gUGFyc2VFeHByS2luZDsKIAogCkBAIC0yNDQsNiArMjQ2LDcgQEAgc3RydWN0 IFBhcnNlU3RhdGUKIAlib29sCQlwX2hhc1RhcmdldFNSRnM7CiAJYm9vbAkJcF9oYXNTdWJMaW5r czsKIAlib29sCQlwX2hhc01vZGlmeWluZ0NURTsKKwlib29sCQlwX2hhc1Nlc3Npb25WYXJpYWJs ZXM7CiAKIAlOb2RlCSAgICpwX2xhc3Rfc3JmOwkJLyogbW9zdCByZWNlbnQgc2V0LXJldHVybmlu ZyBmdW5jL29wIGZvdW5kICovCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5kZXggZWE4Njk1NGRkZS4u MjIwODJjMzAwMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKKysr IGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAgLTE4Niw2ICsxODYsNyBAQCBQR19D TURUQUcoQ01EVEFHX0dSQU5ULCAiR1JBTlQiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURU QUcoQ01EVEFHX0dSQU5UX1JPTEUsICJHUkFOVCBST0xFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkK IFBHX0NNRFRBRyhDTURUQUdfSU1QT1JUX0ZPUkVJR05fU0NIRU1BLCAiSU1QT1JUIEZPUkVJR04g U0NIRU1BIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19JTlNFUlQsICJJ TlNFUlQiLCBmYWxzZSwgZmFsc2UsIHRydWUpCitQR19DTURUQUcoQ01EVEFHX0xFVCwgIkxFVCIs IGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0xJU1RFTiwgIkxJU1RFTiIs IGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0xPQUQsICJMT0FEIiwgZmFs c2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfTE9DS19UQUJMRSwgIkxPQ0sgVEFC TEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9k ZXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaAppbmRleCAwMGMwOTJlM2Q3Li42Y2UzZWEw ZTYxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaAorKysgYi9zcmMvaW5jbHVk ZS90Y29wL2Rlc3QuaApAQCAtOTcsNiArOTcsNyBAQCB0eXBlZGVmIGVudW0KIAlEZXN0VHJhbnNp ZW50UmVsLAkJCS8qIHJlc3VsdHMgc2VudCB0byB0cmFuc2llbnQgcmVsYXRpb24gKi8KIAlEZXN0 VHVwbGVRdWV1ZSwJCQkJLyogcmVzdWx0cyBzZW50IHRvIHR1cGxlIHF1ZXVlICovCiAJRGVzdEV4 cGxhaW5TZXJpYWxpemUsCQkvKiByZXN1bHRzIGFyZSBzZXJpYWxpemVkIGFuZCBkaXNjYXJkZWQg Ki8KKwlEZXN0VmFyaWFibGUsCQkJCS8qIHJlc3VsdHMgc2VudCB0byBzZXNzaW9uIHZhcmlhYmxl ICovCiB9IENvbW1hbmREZXN0OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMu YwppbmRleCBlNWIwZGEwNGUzLi4zZjkwMWNkOGZjIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfZXhlYy5jCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKQEAgLTgw OTksNyArODA5OSw4IEBAIGV4ZWNfaXNfc2ltcGxlX3F1ZXJ5KFBMcGdTUUxfZXhwciAqZXhwcikK IAkJcXVlcnktPnNvcnRDbGF1c2UgfHwKIAkJcXVlcnktPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5 LT5saW1pdENvdW50IHx8Ci0JCXF1ZXJ5LT5zZXRPcGVyYXRpb25zKQorCQlxdWVyeS0+c2V0T3Bl cmF0aW9ucyB8fAorCQlxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAkJcmV0dXJuIGZhbHNl OwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKaW5kZXggYzM2NjYwY2U2ZC4uZjIyNDY3MTg2ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTQzMSwzICs0MzEsMTIzNSBA QCBEUk9QIFZBUklBQkxFIHB1YmxpYy52YXIxOwogRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf cjE7CiBEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMjsKIERST1AgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX293bmVyOworLS0gY2hlY2sgYWNjZXNzIHJpZ2h0cworQ1JFQVRFIFJPTEUgcmVncmVz c19ub293bmVyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIE9SIFJFUExB Q0UgRlVOQ1RJT04gc3FsZngoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUICQxICsgdmFy MSAkJCBMQU5HVUFHRSBzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeF9zZChp bnQpCitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEgKyB2YXIxICQkIExBTkdVQUdFIHNxbCBT RUNVUklUWSBERUZJTkVSOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4KGlu dCkKK1JFVFVSTlMgaW50IEFTICQkIEJFR0lOIFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5H VUFHRSBwbHBnc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGlu dCkKK1JFVFVSTlMgaW50IEFTICQkIEJFR0lOIFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5H VUFHRSBwbHBnc3FsIFNFQ1VSSVRZIERFRklORVI7CitMRVQgdmFyMSA9IDEwOworLS0gc2hvdWxk IGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitT RUxFQ1Qgc3FsZngoMjApOworIHNxbGZ4IAorLS0tLS0tLQorICAgIDMwCisoMSByb3cpCisKK1NF TEVDVCBzcWxmeF9zZCgyMCk7Cisgc3FsZnhfc2QgCistLS0tLS0tLS0tCisgICAgICAgMzAKKygx IHJvdykKKworU0VMRUNUIHBscGdzcWxmeCgyMCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0K KyAgICAgICAgMzAKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7CisgcGxwZ3Nx bGZ4X3NkIAorLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMzAKKygxIHJvdykKKworLS0gc2hv dWxkIGZhaWwKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfbm9vd25lcjsKK1NFTEVDVCB2YXIxOworRVJS T1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitTRUxFQ1Qg c3FsZngoMjApOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJs ZSB2YXIxCitDT05URVhUOiAgU1FMIGZ1bmN0aW9uICJzcWxmeCIgc3RhdGVtZW50IDEKK1NFTEVD VCBwbHBnc3FsZngoMjApOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2 YXJpYWJsZSB2YXIxCitDT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAiJDEgKyB2YXIxIgor UEwvcGdTUUwgZnVuY3Rpb24gcGxwZ3NxbGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KKy0t IHNob3VsZCBiZSBvaworU0VMRUNUIHNxbGZ4X3NkKDIwKTsKKyBzcWxmeF9zZCAKKy0tLS0tLS0t LS0KKyAgICAgICAzMAorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4X3NkKDIwKTsKKyBwbHBn c3FsZnhfc2QgCistLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAzMAorKDEgcm93KQorCitTRVQg Uk9MRSBUTyBERUZBVUxUOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVz c19ub293bmVyOworLS0gc2hvdWxkIGJlIG9rCitTRVQgUk9MRSBUTyByZWdyZXNzX25vb3duZXI7 CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitTRUxFQ1Qg c3FsZngoMjApOworIHNxbGZ4IAorLS0tLS0tLQorICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBw bHBnc3FsZngoMjApOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICAgIDMwCisoMSBy b3cpCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIEZV TkNUSU9OIHNxbGZ4KGludCk7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeChpbnQpOworRFJPUCBG VU5DVElPTiBzcWxmeF9zZChpbnQpOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZnhfc2QoaW50KTsK K0RST1AgUk9MRSByZWdyZXNzX25vb3duZXI7CistLSB1c2UgdmFyaWFibGVzIGluc2lkZSB2aWV3 cworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKKy0tIHVzZSB2YXJpYWJsZXMgaW4g dmlld3MKK0NSRUFURSBWSUVXIHRlc3RfdmlldyBBUyBTRUxFQ1QgQ09BTEVTQ0UodmFyMSArIHYs IDApIEFTIHJlc3VsdCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDIpIGcodik7CitTRUxFQ1QgKiBG Uk9NIHRlc3RfdmlldzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAgMAorICAgICAgMAorKDIg cm93cykKKworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVz dWx0IAorLS0tLS0tLS0KKyAgIDQuMTQKKyAgIDUuMTQKKygyIHJvd3MpCisKKy0tIHN0YXJ0IGEg bmV3IHNlc3Npb24KK1xjCitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKKyByZXN1bHQgCistLS0t LS0tLQorICAgICAgMAorICAgICAgMAorKDIgcm93cykKKworTEVUIHZhcjEgPSAzLjE0OworU0VM RUNUICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgIDQuMTQKKyAgIDUu MTQKKygyIHJvd3MpCisKKy0tIHNob3VsZCBmYWlsLCBkZXBlbmRlbmN5CitEUk9QIFZBUklBQkxF IHZhcjE7CitFUlJPUjogIGNhbm5vdCBkcm9wIHNlc3Npb24gdmFyaWFibGUgdmFyMSBiZWNhdXNl IG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICB2aWV3IHRlc3RfdmlldyBkZXBl bmRzIG9uIHNlc3Npb24gdmFyaWFibGUgdmFyMQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURF IHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0tIHNob3VsZCBiZSBvaworRFJP UCBWQVJJQUJMRSB2YXIxIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHZpZXcg dGVzdF92aWV3CitDUkVBVEUgVkFSSUFCTEUgdmFyMSB0ZXh0OworQ1JFQVRFIFZBUklBQkxFIHZh cjIgdGV4dDsKKy0tIHVzZSB2YXJpYWJsZXMgaW4gU1FMIGZ1bmN0aW9ucworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VM RUNUIHZhcjEgfHwgJywgJyB8fCAkMSAkJCBMQU5HVUFHRSBzcWw7CitDUkVBVEUgT1IgUkVQTEFD RSBGVU5DVElPTiBzcWxmeDIoIHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNU IHZhcjIgfHwgJywgJyB8fCAkMSAkJCBMQU5HVUFHRSBzcWw7CitMRVQgdmFyMSA9ICdzdHIxJzsK K0xFVCB2YXIyID0gJ3N0cjInOworU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOworICAg ICAgc3FsZngxICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLQorIHN0cjEsIHN0cjIsIEhlbGxv CisoMSByb3cpCisKKy0tIGlubGluaW5nIGlzIGJsb2NrZWQKK0VYUExBSU4gKENPU1RTIE9GRiwg VkVSQk9TRSkgU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOworICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBSZXN1bHQKKyAgIE91dHB1 dDogc3FsZngxKHNxbGZ4MignSGVsbG8nOjpjaGFyYWN0ZXIgdmFyeWluZykpCisoMiByb3dzKQor CitEUk9QIEZVTkNUSU9OIHNxbGZ4MSh2YXJjaGFyKTsKK0RST1AgRlVOQ1RJT04gc3FsZngyKHZh cmNoYXIpOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworLS0gYWNj ZXNzIGZyb20gY2FjaGVkIHBsYW5zIHNob3VsZCB3b3JrCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBudW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgbnVtZXJpYzsKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeCgpCitSRVRVUk5TIG51bWVyaWMgQVMgJCQgQkVHSU4g UkVUVVJOIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIE9SIFJFUExBQ0Ug RlVOQ1RJT04gcGxwZ3NxbGZ4MihudW1lcmljKQorUkVUVVJOUyB2b2lkIEFTICQkIEJFR0lOIExF VCB2YXIyID0gJDE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworU0VUIHBsYW5fY2FjaGVfbW9k ZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgcGxwZ3Nx bGZ4KCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgIDMuMTQKKygxIHJvdykKKwor TEVUIHZhcjEgPSAzLjE0ICogMjsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKyBwbHBnc3FsZnggCist LS0tLS0tLS0tLQorICAgICAgNi4yOAorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4MigxMC4w KTsKKyBwbHBnc3FsZngyIAorLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB2YXIy OworIHZhcjIgCistLS0tLS0KKyAxMC4wCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsK K0RST1AgVkFSSUFCTEUgdmFyMjsKKy0tIGRlcGVuZGVuY3kgKHBsYW4gaW52YWxpZGF0aW9uKSBz aG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJ QUJMRSB2YXIyIEFTIG51bWVyaWM7CitMRVQgdmFyMSA9IDMuMTQgKiAzOworU0VMRUNUIHBscGdz cWxmeCgpOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICA5LjQyCisoMSByb3cpCisK K0xFVCB2YXIxID0gMy4xNCAqIDQ7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisgcGxwZ3NxbGZ4IAor LS0tLS0tLS0tLS0KKyAgICAgMTIuNTYKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeDIoMTAu MCk7CisgcGxwZ3NxbGZ4MiAKKy0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgdmFy MjsKKyB2YXIyIAorLS0tLS0tCisgMTAuMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7 CitEUk9QIFZBUklBQkxFIHZhcjI7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeCgpOworRFJPUCBG VU5DVElPTiBwbHBnc3FsZngyKCk7CitFUlJPUjogIGZ1bmN0aW9uIHBscGdzcWxmeDIoKSBkb2Vz IG5vdCBleGlzdAorLS0gZGVwZW5kZW5jeSBvbiBjb2x1bW4gdHlwZQorQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50OworQ1JFQVRFIFRBQkxFIHRlc3R2YXIoYSBpbnQsIGIgaW50LCBjIGludCk7 CitJTlNFUlQgSU5UTyB0ZXN0dmFyIFZBTFVFUygxMCwyMCwzMCk7CitBTFRFUiBUQUJMRSB0ZXN0 dmFyIERST1AgQ09MVU1OIGE7CitBTFRFUiBUQUJMRSB0ZXN0dmFyIERST1AgQ09MVU1OIGI7CitD UkVBVEUgRlVOQ1RJT04gcGxwZ3NxbGZ4MygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisg IExFVCB2YXIxID0gKFNFTEVDVCAqIEZST00gdGVzdHZhcik7CisgIFJBSVNFIE5PVElDRSAnJScs IHZhcjE7CitFTkQKKyQkIExBTkdVQUdFIHBscGdzcWw7CistLSBzaG91bGQgYmUgb2sKK1NFTEVD VCBwbHBnc3FsZngzKCk7CitOT1RJQ0U6ICAzMAorIHBscGdzcWxmeDMgCistLS0tLS0tLS0tLS0K KyAKKygxIHJvdykKKworQUxURVIgVEFCTEUgdGVzdHZhciBBTFRFUiBDT0xVTU4gYyBUWVBFIG51 bWVyaWM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBwbHBnc3FsZngzKCk7CitOT1RJQ0U6ICAz MAorIHBscGdzcWxmeDMgCistLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworRFJPUCBGVU5DVElP TiBwbHBnc3FsZngzKCk7CitEUk9QIFRBQkxFIHRlc3R2YXI7CitEUk9QIFZBUklBQkxFIHZhcjE7 CitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIERFRkFVTFQ7CistLSByZXBlYXRlZCBleGVjdXRpb24g c2hvdWxkIG5vdCBjcmFzaAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgaW50OworQ1JFQVRFIFRBQkxF IHRlc3R2YXIoYSBpbnQpOworSU5TRVJUIElOVE8gdGVzdHZhciBWQUxVRVMoMSk7CitETyAkJAor QkVHSU4KKyAgTEVUIHZhcjEgPSAwOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVU IHZhcjEgPSAoU0VMRUNUIGEgRlJPTSB0ZXN0dmFyKTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5P VElDRSAnJScsIHZhcjE7CitFTkQ7CiskJDsKK05PVElDRTogIDEKK0RPICQkCitCRUdJTgorICBM RVQgdmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IChT RUxFQ1QgYSArIHZhcjEgRlJPTSB0ZXN0dmFyKTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElD RSAnJScsIHZhcjE7CitFTkQ7CiskJDsKK05PVElDRTogIDEwCitETyAkJAorQkVHSU4KKyAgTEVU IHZhcjEgPSAwOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSAoU0VM RUNUIGEgRlJPTSB0ZXN0dmFyKSArIHZhcjE7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0Ug JyUnLCB2YXIxOworRU5EOworJCQ7CitOT1RJQ0U6ICAxMAorRE8gJCQKK0JFR0lOCisgIExFVCB2 YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gaTsKKyAg RU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQ7CiskJDsKK05PVElDRTog IDEwCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAwOworICBGT1IgaSBJTiAxLi4xMAorICBM T09QCisgICAgTEVUIHZhcjEgPSBpICsgdmFyMTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElD RSAnJScsIHZhcjE7CitFTkQ7CiskJDsKK05PVElDRTogIDU1CitEUk9QIFZBUklBQkxFIHZhcjE7 CitEUk9QIFRBQkxFIHRlc3R2YXI7CistLSB1c2FnZSBMRVQgc3RhdGVtZW50IGluIHBscGdzcWwg c2hvdWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIGludDsKK0NSRUFURSBWQVJJQUJMRSB2 YXIyIG51bWVyaWNbXTsKK0RPICQkCitCRUdJTgorICBMRVQgdmFyMiA9ICd7fSc6OmludFtdOwor ICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSBpOworICAgIExFVCB2YXIy W3ZhcjFdID0gaTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAncmVzdWx0IGFycmF5OiAl JywgdmFyMjsKK0VORDsKKyQkOworTk9USUNFOiAgcmVzdWx0IGFycmF5OiB7MSwyLDMsNCw1LDYs Nyw4LDksMTB9CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CistLSBD QUxMIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAorLS0gcmVxdWlyZXMgZGlyZWN0IGFj Y2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JFQVRF IFZBUklBQkxFIHYgaW50OworQ1JFQVRFIFBST0NFRFVSRSBwKGFyZyBpbnQpIEFTICQkIEJFR0lO IFJBSVNFIE5PVElDRSAnJScsIGFyZzsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CistLSBzaG91 bGQgbm90IGNyYXNoIChidXQgaXMgbm90IHN1cHBvcnRlZCB5ZXQpCitDQUxMIHAodik7CitFUlJP UjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKK0RPICQk IEJFR0lOIENBTEwgcCh2KTsgRU5EICQkOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5v dCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CitDT05URVhUOiAgU1FMIHN0YXRlbWVudCAiQ0FMTCBw KHYpIgorUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IENBTEwK K0RST1AgUFJPQ0VEVVJFIHAoaW50KTsKK0RST1AgVkFSSUFCTEUgdjsKKy0tIEVYRUNVVEUgc3Rh dGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRv IHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFSSUFC TEUgdiBpbnQ7CitMRVQgdiA9IDIwOworUFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAkMTsK Ky0tIHNob3VsZCBmYWlsCitFWEVDVVRFIHB0ZXN0KHYpOworRVJST1I6ICBzZXNzaW9uIHZhcmlh YmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CitERUFMTE9DQVRFIHB0ZXN0OworRFJP UCBWQVJJQUJMRSB2OworLS0gdGVzdCBzZWFyY2ggcGF0aAorQ1JFQVRFIFNDSEVNQSBzdmFydGVz dDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIG51bWVyaWM7CistLSBzaG91bGQg ZmFpbAorTEVUIHZhcjEgPSBwaSgpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIxIiBk b2Vzbid0IGV4aXN0CitMSU5FIDE6IExFVCB2YXIxID0gcGkoKTsKKyAgICAgICAgICAgIF4KK1NF TEVDVCB2YXIxOworRVJST1I6ICBjb2x1bW4gInZhcjEiIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6 IFNFTEVDVCB2YXIxOworICAgICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJlIG9rCitMRVQgc3Zh cnRlc3QudmFyMSA9IHBpKCk7CitTRUxFQ1Qgc3ZhcnRlc3QudmFyMTsKKyAgICAgICB2YXIxICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tCisgMy4xNDE1OTI2NTM1ODk3OQorKDEgcm93KQorCitT RVQgc2VhcmNoX3BhdGggVE8gc3ZhcnRlc3Q7CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0g cGkoKSArIDEwOworU0VMRUNUIHZhcjE7CisgICAgICAgdmFyMSAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLQorIDEzLjE0MTU5MjY1MzU4OTgKKygxIHJvdykKKworUkVTRVQgc2VhcmNoX3BhdGg7 CitEUk9QIFNDSEVNQSBzdmFydGVzdCBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0 byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0LnZhcjEKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IHRleHQ7CistLSB2YXJpYWJsZXMgY2FuIGJlIHVwZGF0ZWQgdW5kZXIgUk8gdHJhbnNhY3Rpb24K K0JFR0lOOworU0VUIFRSQU5TQUNUSU9OIFJFQUQgT05MWTsKK0xFVCB2YXIxID0gJ2hlbGxvJzsK K0NPTU1JVDsKK1NFTEVDVCB2YXIxOworIHZhcjEgIAorLS0tLS0tLQorIGhlbGxvCisoMSByb3cp CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHRlc3Qgb2YgZG9tYWlucworQ1JFQVRFIERPTUFJ TiBpbnRfZG9tYWluIEFTIGludCBOT1QgTlVMTCBDSEVDSyAoVkFMVUUgPiAxMDApOworQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgaW50X2RvbWFpbjsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFy MTsKK0VSUk9SOiAgZG9tYWluIGludF9kb21haW4gZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMK Ky0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDAwOworU0VMRUNUIHZhcjE7CisgdmFyMSAK Ky0tLS0tLQorIDEwMDAKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMTA7 CitFUlJPUjogIHZhbHVlIGZvciBkb21haW4gaW50X2RvbWFpbiB2aW9sYXRlcyBjaGVjayBjb25z dHJhaW50ICJpbnRfZG9tYWluX2NoZWNrIgorLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gTlVM TDsKK0VSUk9SOiAgZG9tYWluIGludF9kb21haW4gZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMK Ky0tIG5vdGUgLSBkb21haW4gZGVmYXVsdHMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0IChsaWtlIFBM cGdTUUwpCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIERPTUFJTiBpbnRfZG9tYWluOworLS0g dGhlIGV4cHJlc3Npb24gc2hvdWxkIHJlbWFpbiAidW5rbm93biIKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGludDRtdWx0aXJhbmdlW107CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gTlVM TDsKK0xFVCB2YXIxID0gJ3sie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOwor TEVUIHZhcjFbMl0gPSAne1s1LDgpLFsxMiwxMDApfSc7CitTRUxFQ1QgdmFyMTsKKyAgICAgICAg ICAgICAgICAgIHZhcjEgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyB7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTAwKX0i fQorKDEgcm93KQorCistLUl0IHNob3VsZCB3b3JrIGluIHBscGdzcWwgdG9vCitETyAkJAorQkVH SU4KKyAgTEVUIHZhcjEgPSBOVUxMOworICBMRVQgdmFyMSA9ICd7IntbMiw4KSxbMTEsMTQpfSIs IntbNSw4KSxbMTIsMTQpfSJ9JzsKKyAgTEVUIHZhcjFbMl0gPSAne1s1LDgpLFsxMiwxMDApfSc7 CisKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAgeyJ7WzIs OCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDEwMCl9In0KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NS RUFURSBTQ0hFTUEgc3ZhcnRlc3QgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IENSRUFURSBU QUJMRSBmb28oYSBpbnQpOworTEVUIHN2YXJ0ZXN0LnZhcjEgPSAxMDA7CitTRUxFQ1Qgc3ZhcnRl c3QudmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitTRVQgc2VhcmNoX3Bh dGggdG8gcHVibGljLCBzdmFydGVzdDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAg MTAwCisoMSByb3cpCisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0IENBU0NBREU7CitOT1RJQ0U6ICBk cm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIgb2JqZWN0cworREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0 byB0YWJsZSBmb28KK2Ryb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnRbXTsK K0xFVCB2YXIxID0gMjsKK0xFVCB2YXIyID0gJ3t9Jzo6aW50W107CitMRVQgdmFyMlt2YXIxXSA9 IDA7CitTRUxFQ1QgdmFyMjsKKyAgIHZhcjIgICAgCistLS0tLS0tLS0tLQorIFsyOjJdPXswfQor KDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnRbXTsKK0xFVCB2YXIxID0gMjsK K0xFVCB2YXIyID0gJ3t9Jzo6aW50W107CitTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisg e30KKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOworLS0gdGhlIExFVCBzdGF0 ZW1lbnQgc2hvdWxkIGJlIGRpc2FsbG93ZWQgaW4gQ1RFCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQ7CitXSVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9NIHg7CitFUlJP UjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJMRVQiCitMSU5FIDE6IFdJVEggeCBBUyAoTEVU IHZhcjEgPSAxMDApIFNFTEVDVCAqIEZST00geDsKKyAgICAgICAgICAgICAgICAgICBeCistLSBz aG91bGQgYmUgb2sKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDEpOworLS0gc2hvdWxk IGZhaWwKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDIpOworRVJST1I6ICBleHByZXNz aW9uIHJldHVybmVkIG1vcmUgdGhhbiBvbmUgcm93CitMRVQgdmFyMSA9IGdlbmVyYXRlX3Nlcmll cygxLCAwKTsKK0VSUk9SOiAgZXhwcmVzc2lvbiByZXR1cm5lZCBubyByb3dzCitEUk9QIFZBUklB QkxFIHZhcjE7CistLSBjb21wb3NpdGUgdmFyaWFibGVzCitDUkVBVEUgVFlQRSBzdl94eXogQVMg KHggaW50LCB5IGludCwgeiBudW1lcmljKDEwLDIpKTsKK0NSRUFURSBWQVJJQUJMRSB2MSBBUyBz dl94eXo7CitDUkVBVEUgVkFSSUFCTEUgdjIgQVMgc3ZfeHl6OworTEVUIHYxID0gKDEsIDIsIDMu MTQpOworTEVUIHYyID0gKDEwLCAyMCwgMy4xNCAqIDEwKTsKKy0tIHNob3VsZCB3b3JrIHRvbyAt IHRoZXJlIGFyZSBwcmVwYXJlZCBjYXN0cworTEVUIHYxID0gKDEsIDIsIDMpOworU0VMRUNUIHYx OworICAgICB2MSAgICAgCistLS0tLS0tLS0tLS0KKyAoMSwyLDMuMDApCisoMSByb3cpCisKK1NF TEVDVCB2MjsKKyAgICAgIHYyICAgICAgIAorLS0tLS0tLS0tLS0tLS0tCisgKDEwLDIwLDMxLjQw KQorKDEgcm93KQorCitTRUxFQ1QgKHYxKS4qOworIHggfCB5IHwgIHogICAKKy0tLSstLS0rLS0t LS0tCisgMSB8IDIgfCAzLjAwCisoMSByb3cpCisKK1NFTEVDVCAodjIpLio7CisgeCAgfCB5ICB8 ICAgeiAgIAorLS0tLSstLS0tKy0tLS0tLS0KKyAxMCB8IDIwIHwgMzEuNDAKKygxIHJvdykKKwor U0VMRUNUIHYxLnggKyB2MS56OworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorICAgICA0LjAwCiso MSByb3cpCisKK1NFTEVDVCB2Mi54ICsgdjIuejsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAg ICA0MS40MAorKDEgcm93KQorCistLSBhY2Nlc3MgdG8gY29tcG9zaXRlIGZpZWxkcyBzaG91bGQg YmUgc2FmZSB0b28KK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK1NFVCBST0xF IFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdjIueDsK K0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdjIKK1NFVCBS T0xFIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHYxOworRFJPUCBWQVJJQUJMRSB2MjsKK0RS T1AgVFlQRSBzdl94eXo7CitEUk9QIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOworLS0gc2hv dWxkIGZhaWwsIHdyb25nIGlkZW50aWZpZXIKK0xFVCBub2RiLm5vc2NoZW1hLm5vdmFyLm5vZmll bGQubm9zdWJmaWVsZCA9IDEwOworRVJST1I6ICBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9v IG1hbnkgZG90dGVkIG5hbWVzKTogbm9kYi5ub3NjaGVtYS5ub3Zhci5ub2ZpZWxkLm5vc3ViZmll bGQKK0xFVCBub2RiLm5vc2NoZW1hLm5vdmFyLm5vZmllbGQgPSAxMDsKK0VSUk9SOiAgY3Jvc3Mt ZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiBub2RiLm5vc2NoZW1hLm5v dmFyLm5vZmllbGQKK0xFVCBub2RiLm5vc2NoZW1hLm5vdmFyID0gMTA7CitFUlJPUjogIGNyb3Nz LWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogbm9kYi5ub3NjaGVtYS5u b3ZhcgorQ1JFQVRFIFRZUEUgdDEgQVMgKGEgaW50LCBiIG51bWVyaWMsIGMgdGV4dCk7CitDUkVB VEUgVkFSSUFCTEUgdjEgQVMgdDE7CitMRVQgdjEgPSAoMSwgcGkoKSwgJ2hlbGxvJyk7CitTRUxF Q1QgdjE7CisgICAgICAgICAgICAgdjEgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKDEsMy4xNDE1OTI2NTM1ODk3OSxoZWxsbykKKygxIHJvdykKKworTEVUIHYx LmIgPSAxMC4yMjIyOworU0VMRUNUIHYxOworICAgICAgICB2MSAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLQorICgxLDEwLjIyMjIsaGVsbG8pCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWls LCBhdHRyaWJ1dGUgZG9lc24ndCBleGlzdAorTEVUIHYxLnggPSAxMDsKK0VSUk9SOiAgY2Fubm90 IGFzc2lnbiB0byBmaWVsZCAieCIgb2YgY29sdW1uICJ2MSIgYmVjYXVzZSB0aGVyZSBpcyBubyBz dWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgdDEKK0xJTkUgMTogTEVUIHYxLnggPSAxMDsKKyAgICAg ICAgICAgIF4KKy0tIHNob3VsZCBmYWlsLCBkb24ndCBhbGxvdyBtdWx0aSBjb2x1bW4gcXVlcnkK K0xFVCB2MSA9IChOVUxMOjp0MSkuKjsKK0VSUk9SOiAgYXNzaWdubWVudCBleHByZXNzaW9uIHJl dHVybmVkIDMgY29sdW1ucworTElORSAxOiBMRVQgdjEgPSAoTlVMTDo6dDEpLio7CisgICAgICAg ICAgICAgICAgICBeCistLSBhbGxvdyBEUk9QIG9yIEFERCBBVFRSSUJVVEUgb24gY29tcG9zaXRl IHR5cGVzCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgRFJPUCBBVFRSSUJVVEUgYzsK K1NFTEVDVCB2MTsKKyAgICAgdjEgICAgICAKKy0tLS0tLS0tLS0tLS0KKyAoMSwxMC4yMjIyKQor KDEgcm93KQorCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgQUREIEFUVFJJQlVURSBj IGludDsKK1NFTEVDVCB2MTsKKyAgICAgIHYxICAgICAgCistLS0tLS0tLS0tLS0tLQorICgxLDEw LjIyMjIsKQorKDEgcm93KQorCitMRVQgdjEgPSAoMTAsIDEwLjMsIDIwKTsKK1NFTEVDVCB2MTsK KyAgICAgIHYxICAgICAgCistLS0tLS0tLS0tLS0tLQorICgxMCwxMC4zLDIwKQorKDEgcm93KQor CistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgRFJPUCBBVFRSSUJVVEUgYjsKK1NFTEVD VCB2MTsKKyAgIHYxICAgIAorLS0tLS0tLS0tCisgKDEwLDIwKQorKDEgcm93KQorCistLSBzaG91 bGQgZmFpbCwgZGlzYWxsb3cgZGF0YSB0eXBlIGNoYW5nZQorQUxURVIgVFlQRSB0MSBBTFRFUiBB VFRSSUJVVEUgYyBUWVBFIGludDsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHR5cGUgInQxIiBiZWNh dXNlIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52MSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2 MTsKK0RST1AgVFlQRSB0MTsKKy0tIHRoZSB0YWJsZSB0eXBlIGNhbiBiZSB1c2VkIGFzIGNvbXBv c2l0ZSB0eXBlIHRvbworQ1JFQVRFIFRBQkxFIHN2YXJfdGVzdChhIGludCwgYiBudW1lcmljLCBj IGRhdGUpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgc3Zhcl90ZXN0OworTEVUIHZhcjEgPSAo MTAsIHBpKCksICcyMDIzLTA1LTI2Jyk7CitTRUxFQ1QgdmFyMTsKKyAgICAgICAgICAgICAgIHZh cjEgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAo MTAsMy4xNDE1OTI2NTM1ODk3OSwwNS0yNi0yMDIzKQorKDEgcm93KQorCistLSBzaG91bGQgZmFp bCBkdWUgZGVwZW5kZW5jeQorQUxURVIgVEFCTEUgc3Zhcl90ZXN0IEFMVEVSIENPTFVNTiBhIFRZ UEUgdGV4dDsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHRhYmxlICJzdmFyX3Rlc3QiIGJlY2F1c2Ug c2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIHVzZXMgaXQKKy0tIHNob3VsZCBmYWlsCitE Uk9QIFRBQkxFIHN2YXJfdGVzdDsKK0VSUk9SOiAgY2Fubm90IGRyb3AgdGFibGUgc3Zhcl90ZXN0 IGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFy aWFibGUgdmFyMSBkZXBlbmRzIG9uIHR5cGUgc3Zhcl90ZXN0CitISU5UOiAgVXNlIERST1AgLi4u IENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorRFJPUCBWQVJJQUJM RSB2YXIxOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CitDUkVBVEUgVFlQRSB2YXJ0ZXN0X3QxIEFT IChhIGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFydGVzdF90MTsKK0NS RUFURSBUQUJMRSB2YXJ0ZXN0dGFiICh4Y29sIGludCk7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zh cl90ZXN0X3JvbGU7CitHUkFOVCBVUERBVEUgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3Zh cl90ZXN0X3JvbGU7CitHUkFOVCBTRUxFQ1QgT04gVEFCTEUgdmFydGVzdHRhYiBUTyByZWdyZXNz X3Zhcl90ZXN0X3JvbGU7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CistLSBz aG91bGQgYmUgb2sKK0xFVCB2YXIxID0gKDEwLCAyMCk7CitMRVQgdmFyMS5hID0gMzA7CitETyAk JAorQkVHSU4KKyAgTEVUIHZhcjEgPSAoMTAwLCAxMDApOworICBMRVQgdmFyMS5hID0gMTAwMDsK K0VORDsKKyQkOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxLmE7CitFUlJPUjogIHBlcm1p c3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK1NFTEVDVCB2YXIxOworRVJS T1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitMRVQgdmFy MS5hID0gdmFyMS5hICsgMTA7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9u IHZhcmlhYmxlIHZhcjEKK0xFVCB2YXIxLmEgPSAoU0VMRUNUICogRlJPTSAoU0VMRUNUIGNvdW50 KCopIEZST00gdmFydGVzdHRhYiBXSEVSRSB4Y29sID0gdmFyMS5hICsgMTApKTsKK0VSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorRE8gJCQgQkVHSU4g UkFJU0UgTk9USUNFICclJywgdmFyMTsgRU5EICQkOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmll ZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lv biAidmFyMSIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBS QUlTRQorRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CitFUlJP UjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6 ICBQTC9wZ1NRTCBleHByZXNzaW9uICJ2YXIxLmEiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVf Y29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKK0RPICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIx LmEgKyAxMDsgRU5EICQkOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2 YXJpYWJsZSB2YXIxCitDT05URVhUOiAgU1FMIHN0YXRlbWVudCAiTEVUIHZhcjEuYSA9IHZhcjEu YSArIDEwIgorUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFNR TCBzdGF0ZW1lbnQKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFC TEUgdmFyMSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zh cl90ZXN0X3JvbGU7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxLmE7CisgIGEgICAKKy0t LS0tLQorIDEwMDAKKygxIHJvdykKKworU0VMRUNUIHZhcjE7CisgICAgdmFyMSAgICAKKy0tLS0t LS0tLS0tLQorICgxMDAwLDEwMCkKKygxIHJvdykKKworTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEw OworTEVUIHZhcjEuYSA9IChTRUxFQ1QgKiBGUk9NIChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJ0 ZXN0dGFiIFdIRVJFIHhjb2wgPSB2YXIxLmEgKyAxMCkpOworRE8gJCQgQkVHSU4gUkFJU0UgTk9U SUNFICclJywgdmFyMTsgRU5EICQkOworTk9USUNFOiAgKDAsMTAwKQorRE8gJCQgQkVHSU4gUkFJ U0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CitOT1RJQ0U6ICAwCitETyAkJCBCRUdJTiBM RVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitS RVZPS0UgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgRlJPTSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7 CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CistLSBzaG91bGQgZmFpbCBhZ2Fp bgorU0VMRUNUIHZhcjEuYTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24g dmFyaWFibGUgdmFyMQorU0VMRUNUIHZhcjE7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0xFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsKK0VSUk9S OiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorTEVUIHZhcjEu YSA9IChTRUxFQ1QgKiBGUk9NIChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJ0ZXN0dGFiIFdIRVJF IHhjb2wgPSB2YXIxLmEgKyAxMCkpOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vz c2lvbiB2YXJpYWJsZSB2YXIxCitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOyBF TkQgJCQ7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZh cjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9uICJ2YXIxIgorUEwvcGdTUUwgZnVuY3Rp b24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJBSVNFCitETyAkJCBCRUdJTiBSQUlTRSBO T1RJQ0UgJyUnLCB2YXIxLmE7IEVORCAkJDsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9y IHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInZh cjEuYSIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlT RQorRE8gJCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOyBFTkQgJCQ7CitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6ICBT UUwgc3RhdGVtZW50ICJMRVQgdmFyMS5hID0gdmFyMS5hICsgMTAiCitQTC9wZ1NRTCBmdW5jdGlv biBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgU1FMIHN0YXRlbWVudAorU0VUIFJPTEUgVE8g REVGQVVMVDsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgdmFydGVzdHRhYjsKK0RS T1AgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitEUk9QIFRZUEUgdmFydGVzdF90MTsKK0NS RUFURSBUWVBFIHZhcnRlc3RfdDEgQVMgKGEgaW50LCBiIGludCk7CitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyB0ZXh0OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgdmFydGVzdF90MTsKKy0tIHNo b3VsZCBmYWlsCitTRUxFQ1QgdmFyMS5hOworRVJST1I6ICB2YXJpYWJsZSAicHVibGljLnZhcjEi IGlzIG9mIHR5cGUgInRleHQiLCB3aGljaCBpcyBub3QgYSBjb21wb3NpdGUgdHlwZQorTElORSAx OiBTRUxFQ1QgdmFyMS5hOworICAgICAgICAgICAgICAgXgorU0VMRUNUIHZhcjIuYzsKK0VSUk9S OiAgY291bGQgbm90IGlkZW50aWZ5IGNvbHVtbiAiYyIgaW4gdmFyaWFibGUgInB1YmxpYy52YXIy IgorTElORSAxOiBTRUxFQ1QgdmFyMi5jOworICAgICAgICAgICAgICAgXgorRFJPUCBWQVJJQUJM RSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworRFJPUCBUWVBFIHZhcnRlc3RfdDE7CitDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitMRVQgdmFyMSA9IDE7CitMRVQgdmFyMSA9ICcxJzsK K0xFVCB2YXIxID0gMTAuMTsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9ICcxJzo6anNvbmI7 CitFUlJPUjogIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgb2YgdHlwZSBpbnRlZ2VyLCBidXQg ZXhwcmVzc2lvbiBpcyBvZiB0eXBlIGpzb25iCitMSU5FIDE6IExFVCB2YXIxID0gJzEnOjpqc29u YjsKKyAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgWW91IHdpbGwgbmVlZCB0byByZXdyaXRl IG9yIGNhc3QgdGhlIGV4cHJlc3Npb24uCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gJzEn Ojpqc29uYjo6aW50OworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxLnggPSAxMDsKK0VSUk9SOiAg Y2Fubm90IGFzc2lnbiB0byBmaWVsZCAieCIgb2Ygc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZh cjEiIGJlY2F1c2UgaXRzIHR5cGUgaW50ZWdlciBpcyBub3QgYSBjb21wb3NpdGUgdHlwZQorTElO RSAxOiBMRVQgdmFyMS54ID0gMTA7CisgICAgICAgICAgICBeCitEUk9QIFZBUklBQkxFIHZhcjE7 CitDUkVBVEUgU0NIRU1BIHZhcnRlc3Q7CitDUkVBVEUgVFlQRSB2YXJ0ZXN0dHlwZSBBUyAodmFy dGVzdCBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZhcnRlc3QudmFydGVzdCBBUyB2YXJ0ZXN0dHlw ZTsKK1NFVCBTRUFSQ0hfUEFUSCBUTyB2YXJ0ZXN0OworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXJ0 ZXN0LnZhcnRlc3QgPSAxOworRVJST1I6ICB0YXJnZXQgInZhcnRlc3QudmFydGVzdCIgb2YgTEVU IGNvbW1hbmQgaXMgYW1iaWd1b3VzCitMSU5FIDE6IExFVCB2YXJ0ZXN0LnZhcnRlc3QgPSAxOwor ICAgICAgICAgICAgXgorRFJPUCBWQVJJQUJMRSB2YXJ0ZXN0LnZhcnRlc3Q7CitEUk9QIFRZUEUg dmFydGVzdHR5cGU7CitFUlJPUjogIHR5cGUgInZhcnRlc3R0eXBlIiBkb2VzIG5vdCBleGlzdAor RFJPUCBTQ0hFTUEgdmFydGVzdDsKK1NFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOworLS0gYXJy YXlzIGFyZSBzdXBwb3J0ZWQKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWNbXTsKK0xF VCB2YXIxID0gQVJSQVlbMS4xLDIuMV07CitMRVQgdmFyMVsxXSA9IDEwLjE7CitTRUxFQ1QgdmFy MTsKKyAgICB2YXIxICAgIAorLS0tLS0tLS0tLS0tCisgezEwLjEsMi4xfQorKDEgcm93KQorCist LSBMRVQgdGFyZ2V0IGRvZXNuJ3QgYWxsb3cgc3JmLCBzaG91bGQgZmFpbAorTEVUIHZhcjFbZ2Vu ZXJhdGVfc2VyaWVzKDEsMyldID0gMTAwOworRVJST1I6ICBzZXQtcmV0dXJuaW5nIGZ1bmN0aW9u cyBhcmUgbm90IGFsbG93ZWQgaW4gTEVUCitMSU5FIDE6IExFVCB2YXIxW2dlbmVyYXRlX3Nlcmll cygxLDMpXSA9IDEwMDsKKyAgICAgICAgICAgICAgICAgXgorRFJPUCBWQVJJQUJMRSB2YXIxOwor LS0gYXJyYXlzIGluc2lkZSBjb21wb3NpdGUKK0NSRUFURSBUWVBFIHQxIEFTIChhIG51bWVyaWMs IGIgbnVtZXJpY1tdKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHQxOworTEVUIHZhcjEgPSAo MTAuMSwgQVJSQVlbMC4wLCAwLjBdKTsKK0xFVCB2YXIxLmEgPSAxMC4yOworU0VMRUNUIHZhcjE7 CisgICAgICAgIHZhcjEgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMTAuMiwiezAu MCwwLjB9IikKKygxIHJvdykKKworTEVUIHZhcjEuYlsxXSA9IDEwLjM7CitTRUxFQ1QgdmFyMTsK KyAgICAgICAgdmFyMSAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEwLjIsInsx MC4zLDAuMH0iKQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdDE7 CistLSBFbmNvdXJhZ2UgdXNlIG9mIHBhcmFsbGVsIHBsYW5zCitTRVQgcGFyYWxsZWxfc2V0dXBf Y29zdCA9IDA7CitTRVQgcGFyYWxsZWxfdHVwbGVfY29zdCA9IDA7CitTRVQgbWluX3BhcmFsbGVs X3RhYmxlX3NjYW5fc2l6ZSA9IDA7CitTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhl ciA9IDI7CistLSB0ZXN0IG9uIHF1ZXJ5IHdpdGggd29ya2VycworQ1JFQVRFIFRBQkxFIHN2YXJf dGVzdChhIGludCk7CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3QgU0VMRUNUICogRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwxMDAwKTsKK0FOQUxZWkUgc3Zhcl90ZXN0OworQ1JFQVRFIFZBUklBQkxFIHpl cm8gaW50OworTEVUIHplcm8gPSAwOworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAKK1NFTEVDVCBj b3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsKKyBjb3VudCAKKy0tLS0t LS0KKyAgIDEwMAorKDEgcm93KQorCistLSBwYXJhbGxlbCBleGVjdXRpb24gaXMgbm90IHN1cHBv cnRlZCB5ZXQKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90 ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAt PiAgU2VxIFNjYW4gb24gc3Zhcl90ZXN0CisgICAgICAgICBGaWx0ZXI6ICgoYSAlIDEwKSA9IHpl cm8pCisoMyByb3dzKQorCitMRVQgemVybyA9IChTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rl c3QpOworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAwCitTRUxFQ1QgemVybzsKKyB6ZXJvIAorLS0t LS0tCisgMTAwMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHplcm87CitEUk9QIFRBQkxFIHN2 YXJfdGVzdDsKK1JFU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3Q7CitSRVNFVCBwYXJhbGxlbF90dXBs ZV9jb3N0OworUkVTRVQgbWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZTsKK1JFU0VUIG1heF9w YXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXI7CistLSB0aGUgcmVzdWx0IG9mIHZpZXcgc2hvdWxk IGJlIHNhbWUgaW4gcGFyYWxsZWwgbW9kZSB0b28KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGlu dDsKK0xFVCB2YXIxID0gMTA7CitDUkVBVEUgVklFVyB2YXIxdmlldyBBUyBTRUxFQ1QgQ09BTEVT Q0UodmFyMSwgMCkgQVMgcmVzdWx0OworU0VMRUNUICogRlJPTSB2YXIxdmlldzsKKyByZXN1bHQg CistLS0tLS0tLQorICAgICAxMAorKDEgcm93KQorCitTRVQgZGVidWdfcGFyYWxsZWxfcXVlcnkg VE8gb247CitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAg IDEwCisoMSByb3cpCisKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSBUTyBvZmY7CitEUk9QIFZJ RVcgdmFyMXZpZXc7CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyaWQg aW50OworQ1JFQVRFIFRBQkxFIHN2YXJfdGVzdChpZCBpbnQsIHYgaW50KTsKK0xFVCB2YXJpZCA9 IDE7CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3QgVkFMVUVTKHZhcmlkLCAxMDApOworU0VMRUNUICog RlJPTSBzdmFyX3Rlc3Q7CisgaWQgfCAgdiAgCistLS0tKy0tLS0tCisgIDEgfCAxMDAKKygxIHJv dykKKworVVBEQVRFIHN2YXJfdGVzdCBTRVQgdiA9IDIwMCBXSEVSRSBpZCA9IHZhcmlkOworU0VM RUNUICogRlJPTSBzdmFyX3Rlc3Q7CisgaWQgfCAgdiAgCistLS0tKy0tLS0tCisgIDEgfCAyMDAK KygxIHJvdykKKworREVMRVRFIEZST00gc3Zhcl90ZXN0IFdIRVJFIGlkID0gdmFyaWQ7CitTRUxF Q1QgKiBGUk9NIHN2YXJfdGVzdDsKKyBpZCB8IHYgCistLS0tKy0tLQorKDAgcm93cykKKworRFJP UCBUQUJMRSBzdmFyX3Rlc3Q7CitEUk9QIFZBUklBQkxFIHZhcmlkOworLS0gdmlzaWJpbGl0eSBj aGVjaworLS0gdmFyaWFibGVzIHNob3VsZCBiZSBzaGFkb3dlZCBhbHdheXMKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIHRleHQ7CitTRUxFQ1QgdmFyMS5yZWxuYW1lIEZST00gcGdfY2xhc3MgdmFy MSBXSEVSRSB2YXIxLnJlbG5hbWUgPSAncGdfY2xhc3MnOworIHJlbG5hbWUgIAorLS0tLS0tLS0t LQorIHBnX2NsYXNzCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBUQUJM RSB4eHRhYihhdmFyIGludCk7CitJTlNFUlQgSU5UTyB4eHRhYiBWQUxVRVMoMzMzKTsKK0NSRUFU RSBUWVBFIHh4dHlwZSBBUyAoYXZhciBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHh4dGFiIEFTIHh4 dHlwZTsKK0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygxMCk7CistLSBpdCBpcyBhbWJpZ3VvdXMs IGJ1dCBjb2x1bW5zIGFyZSBwcmVmZXJyZWQKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00geHh0YWI7 CisgYXZhciAKKy0tLS0tLQorICAzMzMKKyAgIDEwCisoMiByb3dzKQorCistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCBhdmFyIEZST00geHh0YWI7CisgYXZhciAKKy0tLS0tLQorICAzMzMKKyAgIDEw CisoMiByb3dzKQorCitDUkVBVEUgVkFSSUFCTEUgcHVibGljLmF2YXIgQVMgaW50OworLS0gc2hv dWxkIGJlIG9rLCBzZWUgdGhlIHRhYmxlCitTRUxFQ1QgYXZhciBGUk9NIHh4dGFiOworIGF2YXIg CistLS0tLS0KKyAgMzMzCisgICAxMAorKDIgcm93cykKKworLS0gc2hvdWxkIGJlIG9rCitTRUxF Q1QgcHVibGljLmF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgICAgIAorICAgICAK KygyIHJvd3MpCisKK0RST1AgVkFSSUFCTEUgeHh0YWI7CitTRUxFQ1QgeHh0YWIuYXZhciBGUk9N IHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAgMzMzCisgICAxMAorKDIgcm93cykKKworRFJPUCBW QVJJQUJMRSBwdWJsaWMuYXZhcjsKK0RST1AgVFlQRSB4eHR5cGU7CitEUk9QIFRBQkxFIHh4dGFi OworLS0gVGhlIHZhcmlhYmxlIGNhbiBiZSBzaGFkb3dlZCBieSB0YWJsZSBvciBieSBhbGlhcwor Q1JFQVRFIFRZUEUgcHVibGljLnN2YXJfdHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIGludCk7CitD UkVBVEUgVkFSSUFCTEUgcHVibGljLnN2YXIgQVMgcHVibGljLnN2YXJfdHlwZTsKK0NSRUFURSBU QUJMRSBwdWJsaWMuc3ZhcihhIGludCwgYiBpbnQpOworSU5TRVJUIElOVE8gcHVibGljLnN2YXIg VkFMVUVTKDEwLCAyMCk7CitMRVQgcHVibGljLnN2YXIgPSAoMTAwLCAyMDAsIDMwMCk7CistLSBz aG91bGQgYmUgb2sKKy0tIHNob3cgdGFibGUKK1NFTEVDVCAqIEZST00gcHVibGljLnN2YXI7Cisg YSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKygxIHJvdykKKworU0VMRUNUIHN2YXIuYSBG Uk9NIHB1YmxpYy5zdmFyOworIGEgIAorLS0tLQorIDEwCisoMSByb3cpCisKK1NFTEVDVCBzdmFy LiogRlJPTSBwdWJsaWMuc3ZhcjsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEg cm93KQorCistLSBzaG93IHZhcmlhYmxlCitTRUxFQ1QgcHVibGljLnN2YXI7CisgICAgIHN2YXIg ICAgICAKKy0tLS0tLS0tLS0tLS0tLQorICgxMDAsMjAwLDMwMCkKKygxIHJvdykKKworU0VMRUNU IHB1YmxpYy5zdmFyLmM7CisgIGMgIAorLS0tLS0KKyAzMDAKKygxIHJvdykKKworU0VMRUNUIChw dWJsaWMuc3ZhcikuKjsKKyAgYSAgfCAgYiAgfCAgYyAgCistLS0tLSstLS0tLSstLS0tLQorIDEw MCB8IDIwMCB8IDMwMAorKDEgcm93KQorCistLSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQsIHJh aXNlIGVycm9yCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworRVJST1I6 ICBjb2x1bW4gc3Zhci5jIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCBwdWJsaWMuc3Zh ci5jIEZST00gcHVibGljLnN2YXI7CisgICAgICAgICAgICAgICBeCistLSBjYW4gYmUgZml4ZWQg YnkgYWxpYXMKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXIgeDsKKyAgYyAg CistLS0tLQorIDMwMAorKDEgcm93KQorCitTRUxFQ1Qgc3Zhci5hIEZST00gcHVibGljLnN2YXI7 CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworU0VMRUNUIHN2YXIuKiBGUk9NIHB1YmxpYy5z dmFyOworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAxMCB8IDIwCisoMSByb3cpCisKKy0tIHNob3cg dmFyaWFibGUKK1NFTEVDVCBwdWJsaWMuc3ZhcjsKKyAgICAgc3ZhciAgICAgIAorLS0tLS0tLS0t LS0tLS0tCisgKDEwMCwyMDAsMzAwKQorKDEgcm93KQorCitTRUxFQ1QgcHVibGljLnN2YXIuYzsK KyAgYyAgCistLS0tLQorIDMwMAorKDEgcm93KQorCitTRUxFQ1QgKHB1YmxpYy5zdmFyKS4qOwor ICBhICB8ICBiICB8ICBjICAKKy0tLS0tKy0tLS0tKy0tLS0tCisgMTAwIHwgMjAwIHwgMzAwCiso MSByb3cpCisKKy0tIHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFpc2UgZXJyb3IKK1NFTEVD VCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CitFUlJPUjogIGNvbHVtbiBzdmFyLmMg ZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMu c3ZhcjsKKyAgICAgICAgICAgICAgIF4KKy0tIGNhbiBiZSBmaXhlZCBieSBhbGlhcworU0VMRUNU IHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4OworICBjICAKKy0tLS0tCisgMzAwCiso MSByb3cpCisKK0RST1AgVkFSSUFCTEUgcHVibGljLnN2YXI7CitEUk9QIFRBQkxFIHB1YmxpYy5z dmFyOworRFJPUCBUWVBFIHB1YmxpYy5zdmFyX3R5cGU7CistLSBUaGUgc2VxdWVuY2UgaWRlbnQu KiBjYW5ub3QgYmUgdXNlZCBieSByZWZlcmVuY2UgdG8gc2Vzc2lvbiB2YXJpYWJsZSwKKy0tIGFu ZCBpbiB0aGlzIGNhc2UsIHRoZXJlIGlzIG5vdCBjb2xsaXNpb24KK0NSRUFURSBTQ0hFTUEgdmFy dGVzdDsKK1NFVCBTRUFSQ0hfUEFUSCBUTyB2YXJ0ZXN0OworQ1JFQVRFIFRBQkxFIHZhcnRlc3Rf Zm9vKGEgaW50LCBiIGludCk7CitJTlNFUlQgSU5UTyB2YXJ0ZXN0X2ZvbyBWQUxVRVMoMTAsMjAp LCAoMzAsNDApOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFydGVzdF9mb287CitMRVQgdmFy MSA9ICgxMDAsMjAwKTsKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyMS4qIEZST00gdmFy dGVzdF9mb287CitFUlJPUjogIG1pc3NpbmcgRlJPTS1jbGF1c2UgZW50cnkgZm9yIHRhYmxlICJ2 YXIxIgorTElORSAxOiBTRUxFQ1QgdmFyMS4qIEZST00gdmFydGVzdF9mb287CisgICAgICAgICAg ICAgICBeCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxLiogRlJPTSB2YXJ0ZXN0X2ZvbyB2 YXIxOworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAxMCB8IDIwCisgMzAgfCA0MAorKDIgcm93cykK KworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCBjb3VudCh2YXIxLiopIEZST00gdmFydGVzdF9m b287CitFUlJPUjogIG1pc3NpbmcgRlJPTS1jbGF1c2UgZW50cnkgZm9yIHRhYmxlICJ2YXIxIgor TElORSAxOiBTRUxFQ1QgY291bnQodmFyMS4qKSBGUk9NIHZhcnRlc3RfZm9vOworICAgICAgICAg ICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgY291bnQodmFyMS4qKSBGUk9N IHZhcnRlc3RfZm9vIHZhcjE7CisgY291bnQgCistLS0tLS0tCisgICAgIDIKKygxIHJvdykKKwor U0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CitEUk9QIFNDSEVNQSB2YXJ0ZXN0IENBU0NBREU7 CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIgb2JqZWN0cworREVUQUlMOiAgZHJv cCBjYXNjYWRlcyB0byB0YWJsZSB2YXJ0ZXN0LnZhcnRlc3RfZm9vCitkcm9wIGNhc2NhZGVzIHRv IHNlc3Npb24gdmFyaWFibGUgdmFydGVzdC52YXIxCitDUkVBVEUgVFlQRSBhYiBBUyAoYSBpbnRl Z2VyLCBiIGludGVnZXIpOworQ1JFQVRFIFZBUklBQkxFIHZfYWIgQVMgYWI7CitDUkVBVEUgVEFC TEUgdl9hYiAoYSBpbnRlZ2VyLCBiIGludGVnZXIpOworSU5TRVJUIElOVE8gdl9hYiBWQUxVRVMo MTAsMjApOworLS0gd2Ugc2hvdWxkIHNlZSB0YWJsZQorU0VMRUNUIHZfYWIuYSBGUk9NIHZfYWI7 CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworQ1JFQVRFIFNDSEVNQSB2X2FiOworQ1JFQVRF IFZBUklBQkxFIHZfYWIuYSBBUyBpbnRlZ2VyOworLS0gd2Ugc2hvdWxkIHNlZSB0YWJsZQorU0VM RUNUIHZfYWIuYSBGUk9NIHZfYWI7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworRFJPUCBW QVJJQUJMRSB2X2FiOworRFJPUCBUQUJMRSB2X2FiOworRFJPUCBUWVBFIGFiOworRFJPUCBWQVJJ QUJMRSB2X2FiLmE7CitEUk9QIFNDSEVNQSB2X2FiOworQ1JFQVRFIFRZUEUgdF9hbV90eXBlIEFT IChiIGludCk7CitDUkVBVEUgU0NIRU1BIHh4eF9hbTsKK1NFVCBzZWFyY2hfcGF0aCBUTyBwdWJs aWM7CitDUkVBVEUgVkFSSUFCTEUgeHh4X2FtIEFTIHRfYW1fdHlwZTsKK0xFVCB4eHhfYW0gPSBS T1coMTApOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgeHh4X2FtOworIHh4eF9hbSAKKy0tLS0t LS0tCisgKDEwKQorKDEgcm93KQorCitDUkVBVEUgVkFSSUFCTEUgeHh4X2FtLmIgQVMgaW50Owor TEVUIDoiREJOQU1FIi54eHhfYW0uYiA9IDIwOworLS0gc2hvdWxkIGJlIHN0aWxsIG9rCitTRUxF Q1QgeHh4X2FtOworIHh4eF9hbSAKKy0tLS0tLS0tCisgKDEwKQorKDEgcm93KQorCistLSBzaG91 bGQgZmFpbCwgdGhlIHJlZmVyZW5jZSBzaG91bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1QgeHh4X2Ft LmI7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgcmVmZXJlbmNlICJ4eHhfYW0uYiIgaXMgYW1i aWd1b3VzCitMSU5FIDE6IFNFTEVDVCB4eHhfYW0uYjsKKyAgICAgICAgICAgICAgIF4KKy0tIGVu aGFuY2VkIHJlZmVyZW5jZXMgc2hvdWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLnh4eF9hbS5iOwor IGIgIAorLS0tLQorIDEwCisoMSByb3cpCisKK1NFTEVDVCA6IkRCTkFNRSIueHh4X2FtLmI7Cisg YiAgCistLS0tCisgMjAKKygxIHJvdykKKworQ1JFQVRFIFRBQkxFIHh4eF9hbShiICBpbnQpOwor SU5TRVJUIElOVE8geHh4X2FtIFZBTFVFUygxMCk7CistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitT RUxFQ1QgeHh4X2FtLmIgRlJPTSB4eHhfYW07CisgYiAgCistLS0tCisgMTAKKygxIHJvdykKKwor U0VMRUNUIHguYiBGUk9NIHh4eF9hbSB4OworIGIgIAorLS0tLQorIDEwCisoMSByb3cpCisKK0RS T1AgVEFCTEUgeHh4X2FtOworRFJPUCBWQVJJQUJMRSBwdWJsaWMueHh4X2FtOworRFJPUCBWQVJJ QUJMRSB4eHhfYW0uYjsKK0RST1AgU0NIRU1BIHh4eF9hbTsKK0NSRUFURSBTQ0hFTUEgOiJEQk5B TUUiOworQ1JFQVRFIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiIEFTIHRf YW1fdHlwZTsKK0NSRUFURSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmIgQVMgaW50Owor U0VUIHNlYXJjaF9wYXRoIFRPIDoiREJOQU1FIjsKKy0tIHNob3VsZCBiZSBhbWJpZ3VvdXMKK1NF TEVDVCA6IkRCTkFNRSIuYjsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgInJl Z3Jlc3Npb24uYiIgaXMgYW1iaWd1b3VzCitMSU5FIDE6IFNFTEVDVCAicmVncmVzc2lvbiIuYjsK KyAgICAgICAgICAgICAgIF4KKy0tIHNob3VsZCBiZSBhbWJpZ3VvdXMgdG9vCitTRUxFQ1QgOiJE Qk5BTUUiLjoiREJOQU1FIi5iOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSAi cmVncmVzc2lvbi5yZWdyZXNzaW9uLmIiIGlzIGFtYmlndW91cworTElORSAxOiBTRUxFQ1QgInJl Z3Jlc3Npb24iLiJyZWdyZXNzaW9uIi5iOworICAgICAgICAgICAgICAgXgorQ1JFQVRFIFRBQkxF IDoiREJOQU1FIihiIGludCk7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCA6IkRCTkFNRSIuYiBG Uk9NIDoiREJOQU1FIjsKKyBiIAorLS0tCisoMCByb3dzKQorCitEUk9QIFRBQkxFIDoiREJOQU1F IjsKK0RST1AgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iOworRFJPUCBWQVJJQUJMRSA6 IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIjsKK0RST1AgU0NIRU1BIDoiREJOQU1FIjsKK1JF U0VUIHNlYXJjaF9wYXRoOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCmluZGV4IGVlYjBmOTRjYTMuLmU3MjM2MGQ1MjUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTI5NSwzICsyOTUsODg2IEBAIERST1AgUk9MRSBy ZWdyZXNzX3ZhcmlhYmxlX3IxOwogRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CiAKIERS T1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCistLSBjaGVjayBhY2Nlc3MgcmlnaHRz CitDUkVBVEUgUk9MRSByZWdyZXNzX25vb3duZXI7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IGludDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngoaW50KQorUkVUVVJOUyBp bnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBzcWw7CisKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHNxbGZ4X3NkKGludCkKK1JFVFVSTlMgaW50IEFTICQkIFNFTEVDVCAk MSArIHZhcjEgJCQgTEFOR1VBR0Ugc3FsIFNFQ1VSSVRZIERFRklORVI7CisKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBCRUdJTiBS RVRVUk4gJDEgKyB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGludCkKK1JFVFVSTlMgaW50IEFTICQkIEJFR0lO IFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZIERFRklO RVI7CisKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworU0VM RUNUIHNxbGZ4KDIwKTsKK1NFTEVDVCBzcWxmeF9zZCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4KDIw KTsKK1NFTEVDVCBwbHBnc3FsZnhfc2QoMjApOworCistLSBzaG91bGQgZmFpbAorU0VUIFJPTEUg VE8gcmVncmVzc19ub293bmVyOworCitTRUxFQ1QgdmFyMTsKK1NFTEVDVCBzcWxmeCgyMCk7CitT RUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qgc3FsZnhfc2Qo MjApOworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitH UkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX25vb3duZXI7CisKKy0tIHNo b3VsZCBiZSBvaworU0VUIFJPTEUgVE8gcmVncmVzc19ub293bmVyOworCitTRUxFQ1QgdmFyMTsK K1NFTEVDVCBzcWxmeCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKKworU0VUIFJPTEUgVE8g REVGQVVMVDsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gc3FsZngoaW50KTsK K0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4KGludCk7CitEUk9QIEZVTkNUSU9OIHNxbGZ4X3NkKGlu dCk7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeF9zZChpbnQpOworCitEUk9QIFJPTEUgcmVncmVz c19ub293bmVyOworCistLSB1c2UgdmFyaWFibGVzIGluc2lkZSB2aWV3cworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgbnVtZXJpYzsKKworLS0gdXNlIHZhcmlhYmxlcyBpbiB2aWV3cworQ1JFQVRF IFZJRVcgdGVzdF92aWV3IEFTIFNFTEVDVCBDT0FMRVNDRSh2YXIxICsgdiwgMCkgQVMgcmVzdWx0 IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMikgZyh2KTsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3 OworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisKKy0tIHN0YXJ0 IGEgbmV3IHNlc3Npb24KK1xjCisKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworTEVUIHZhcjEg PSAzLjE0OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisKKy0tIHNob3VsZCBmYWlsLCBkZXBl bmRlbmN5CitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJ QUJMRSB2YXIxIENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIHRleHQ7CitDUkVBVEUg VkFSSUFCTEUgdmFyMiB0ZXh0OworCistLSB1c2UgdmFyaWFibGVzIGluIFNRTCBmdW5jdGlvbnMK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4MSh2YXJjaGFyKQorUkVUVVJOUyB2YXJj aGFyIEFTICQkIFNFTEVDVCB2YXIxIHx8ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeDIoIHZhcmNoYXIpCitSRVRVUk5TIHZhcmNo YXIgQVMgJCQgU0VMRUNUIHZhcjIgfHwgJywgJyB8fCAkMSAkJCBMQU5HVUFHRSBzcWw7CisKK0xF VCB2YXIxID0gJ3N0cjEnOworTEVUIHZhcjIgPSAnc3RyMic7CisKK1NFTEVDVCBzcWxmeDEoc3Fs ZngyKCdIZWxsbycpKTsKKworLS0gaW5saW5pbmcgaXMgYmxvY2tlZAorRVhQTEFJTiAoQ09TVFMg T0ZGLCBWRVJCT1NFKSBTRUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVsbG8nKSk7CisKK0RST1AgRlVO Q1RJT04gc3FsZngxKHZhcmNoYXIpOworRFJPUCBGVU5DVElPTiBzcWxmeDIodmFyY2hhcik7CitE Uk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CisKKy0tIGFjY2VzcyBmcm9t IGNhY2hlZCBwbGFucyBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJp YzsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIG51bWVyaWM7CisKK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHBscGdzcWxmeCgpCitSRVRVUk5TIG51bWVyaWMgQVMgJCQgQkVHSU4gUkVUVVJO IHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiBwbHBnc3FsZngyKG51bWVyaWMpCitSRVRVUk5TIHZvaWQgQVMgJCQgQkVHSU4gTEVUIHZh cjIgPSAkMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFVCBwbGFuX2NhY2hlX21vZGUg VE8gZm9yY2VfZ2VuZXJpY19wbGFuOworCitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgcGxwZ3Nx bGZ4KCk7CitMRVQgdmFyMSA9IDMuMTQgKiAyOworU0VMRUNUIHBscGdzcWxmeCgpOworCitTRUxF Q1QgcGxwZ3NxbGZ4MigxMC4wKTsKK1NFTEVDVCB2YXIyOworCitEUk9QIFZBUklBQkxFIHZhcjE7 CitEUk9QIFZBUklBQkxFIHZhcjI7CisKKy0tIGRlcGVuZGVuY3kgKHBsYW4gaW52YWxpZGF0aW9u KSBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKK0NSRUFURSBW QVJJQUJMRSB2YXIyIEFTIG51bWVyaWM7CisKK0xFVCB2YXIxID0gMy4xNCAqIDM7CitTRUxFQ1Qg cGxwZ3NxbGZ4KCk7CitMRVQgdmFyMSA9IDMuMTQgKiA0OworU0VMRUNUIHBscGdzcWxmeCgpOwor CitTRUxFQ1QgcGxwZ3NxbGZ4MigxMC4wKTsKK1NFTEVDVCB2YXIyOworCitEUk9QIFZBUklBQkxF IHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeCgpOwor RFJPUCBGVU5DVElPTiBwbHBnc3FsZngyKCk7CisKKy0tIGRlcGVuZGVuY3kgb24gY29sdW1uIHR5 cGUKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBUQUJMRSB0ZXN0dmFyKGEg aW50LCBiIGludCwgYyBpbnQpOworSU5TRVJUIElOVE8gdGVzdHZhciBWQUxVRVMoMTAsMjAsMzAp OworCitBTFRFUiBUQUJMRSB0ZXN0dmFyIERST1AgQ09MVU1OIGE7CitBTFRFUiBUQUJMRSB0ZXN0 dmFyIERST1AgQ09MVU1OIGI7CisKK0NSRUFURSBGVU5DVElPTiBwbHBnc3FsZngzKCkKK1JFVFVS TlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAoU0VMRUNUICogRlJPTSB0ZXN0dmFy KTsKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsK KworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgcGxwZ3NxbGZ4MygpOworCitBTFRFUiBUQUJMRSB0 ZXN0dmFyIEFMVEVSIENPTFVNTiBjIFRZUEUgbnVtZXJpYzsKKworLS0gc2hvdWxkIGJlIG9rCitT RUxFQ1QgcGxwZ3NxbGZ4MygpOworCitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeDMoKTsKK0RST1Ag VEFCTEUgdGVzdHZhcjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworU0VUIHBsYW5fY2FjaGVfbW9k ZSBUTyBERUZBVUxUOworCistLSByZXBlYXRlZCBleGVjdXRpb24gc2hvdWxkIG5vdCBjcmFzaAor Q1JFQVRFIFZBUklBQkxFIHZhcjEgaW50OworQ1JFQVRFIFRBQkxFIHRlc3R2YXIoYSBpbnQpOwor SU5TRVJUIElOVE8gdGVzdHZhciBWQUxVRVMoMSk7CisKK0RPICQkCitCRUdJTgorICBMRVQgdmFy MSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IChTRUxFQ1Qg YSBGUk9NIHRlc3R2YXIpOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsK K0VORDsKKyQkOworCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAwOworICBGT1IgaSBJTiAx Li4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSAoU0VMRUNUIGEgKyB2YXIxIEZST00gdGVzdHZh cik7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CisK K0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AK KyAgICBMRVQgdmFyMSA9IChTRUxFQ1QgYSBGUk9NIHRlc3R2YXIpICsgdmFyMTsKKyAgRU5EIExP T1A7CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQ7CiskJDsKKworRE8gJCQKK0JFR0lO CisgIExFVCB2YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIx ID0gaTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQ7CiskJDsK KworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9P UAorICAgIExFVCB2YXIxID0gaSArIHZhcjE7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0Ug JyUnLCB2YXIxOworRU5EOworJCQ7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUg dGVzdHZhcjsKKworLS0gdXNhZ2UgTEVUIHN0YXRlbWVudCBpbiBwbHBnc3FsIHNob3VsZCB3b3Jr CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBudW1lcmlj W107CisKK0RPICQkCitCRUdJTgorICBMRVQgdmFyMiA9ICd7fSc6OmludFtdOworICBGT1IgaSBJ TiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSBpOworICAgIExFVCB2YXIyW3ZhcjFdID0g aTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAncmVzdWx0IGFycmF5OiAlJywgdmFyMjsK K0VORDsKKyQkOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CisK Ky0tIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0CistLSByZXF1aXJlcyBkaXJl Y3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCitD UkVBVEUgVkFSSUFCTEUgdiBpbnQ7CisKK0NSRUFURSBQUk9DRURVUkUgcChhcmcgaW50KSBBUyAk JCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOwor CistLSBzaG91bGQgbm90IGNyYXNoIChidXQgaXMgbm90IHN1cHBvcnRlZCB5ZXQpCitDQUxMIHAo dik7CisKK0RPICQkIEJFR0lOIENBTEwgcCh2KTsgRU5EICQkOworCitEUk9QIFBST0NFRFVSRSBw KGludCk7CitEUk9QIFZBUklBQkxFIHY7CisKKy0tIEVYRUNVVEUgc3RhdGVtZW50IGlzIG5vdCBz dXBwb3J0ZWQgeWV0CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFi bGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CitMRVQg diA9IDIwOworUFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAkMTsKKworLS0gc2hvdWxkIGZh aWwKK0VYRUNVVEUgcHRlc3Qodik7CisKK0RFQUxMT0NBVEUgcHRlc3Q7CitEUk9QIFZBUklBQkxF IHY7CisKKy0tIHRlc3Qgc2VhcmNoIHBhdGgKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7CitDUkVB VEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBudW1lcmljOworCistLSBzaG91bGQgZmFpbAor TEVUIHZhcjEgPSBwaSgpOworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHN2 YXJ0ZXN0LnZhcjEgPSBwaSgpOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7CisKK1NFVCBzZWFyY2hf cGF0aCBUTyBzdmFydGVzdDsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IHBpKCkgKyAx MDsKK1NFTEVDVCB2YXIxOworCitSRVNFVCBzZWFyY2hfcGF0aDsKK0RST1AgU0NIRU1BIHN2YXJ0 ZXN0IENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7CisKKy0tIHZhcmlh YmxlcyBjYW4gYmUgdXBkYXRlZCB1bmRlciBSTyB0cmFuc2FjdGlvbgorQkVHSU47CitTRVQgVFJB TlNBQ1RJT04gUkVBRCBPTkxZOworTEVUIHZhcjEgPSAnaGVsbG8nOworQ09NTUlUOworCitTRUxF Q1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSB0ZXN0IG9mIGRvbWFpbnMKK0NS RUFURSBET01BSU4gaW50X2RvbWFpbiBBUyBpbnQgTk9UIE5VTEwgQ0hFQ0sgKFZBTFVFID4gMTAw KTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludF9kb21haW47CisKKy0tIHNob3VsZCBmYWls CitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwMDA7CitTRUxF Q1QgdmFyMTsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMTA7CisKKy0tIHNob3VsZCBm YWlsCitMRVQgdmFyMSA9IE5VTEw7CisKKy0tIG5vdGUgLSBkb21haW4gZGVmYXVsdHMgYXJlIG5v dCBzdXBwb3J0ZWQgeWV0IChsaWtlIFBMcGdTUUwpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RS T1AgRE9NQUlOIGludF9kb21haW47CisKKy0tIHRoZSBleHByZXNzaW9uIHNob3VsZCByZW1haW4g InVua25vd24iCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ0bXVsdGlyYW5nZVtdOworLS0g c2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IE5VTEw7CitMRVQgdmFyMSA9ICd7IntbMiw4KSxbMTEs MTQpfSIsIntbNSw4KSxbMTIsMTQpfSJ9JzsKK0xFVCB2YXIxWzJdID0gJ3tbNSw4KSxbMTIsMTAw KX0nOworU0VMRUNUIHZhcjE7CisKKy0tSXQgc2hvdWxkIHdvcmsgaW4gcGxwZ3NxbCB0b28KK0RP ICQkCitCRUdJTgorICBMRVQgdmFyMSA9IE5VTEw7CisgIExFVCB2YXIxID0gJ3sie1syLDgpLFsx MSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworICBMRVQgdmFyMVsyXSA9ICd7WzUsOCksWzEy LDEwMCl9JzsKKworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CisKK0RST1Ag VkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdCBDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBpbnQgQ1JFQVRFIFRBQkxFIGZvbyhhIGludCk7CitMRVQgc3ZhcnRlc3QudmFyMSA9 IDEwMDsKK1NFTEVDVCBzdmFydGVzdC52YXIxOworCitTRVQgc2VhcmNoX3BhdGggdG8gcHVibGlj LCBzdmFydGVzdDsKKworU0VMRUNUIHZhcjE7CisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0IENBU0NB REU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIy IEFTIGludFtdOworCitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtdOworCitM RVQgdmFyMlt2YXIxXSA9IDA7CisKK1NFTEVDVCB2YXIyOworCitEUk9QIFZBUklBQkxFIHZhcjEs IHZhcjI7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2 YXIyIEFTIGludFtdOworCitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtdOwor CitTRUxFQ1QgdmFyMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOworCistLSB0aGUgTEVU IHN0YXRlbWVudCBzaG91bGQgYmUgZGlzYWxsb3dlZCBpbiBDVEUKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGludDsKK1dJVEggeCBBUyAoTEVUIHZhcjEgPSAxMDApIFNFTEVDVCAqIEZST00geDsK KworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAxKTsKKwor LS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDIpOworTEVUIHZh cjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMCk7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0g Y29tcG9zaXRlIHZhcmlhYmxlcworQ1JFQVRFIFRZUEUgc3ZfeHl6IEFTICh4IGludCwgeSBpbnQs IHogbnVtZXJpYygxMCwyKSk7CisKK0NSRUFURSBWQVJJQUJMRSB2MSBBUyBzdl94eXo7CitDUkVB VEUgVkFSSUFCTEUgdjIgQVMgc3ZfeHl6OworCitMRVQgdjEgPSAoMSwgMiwgMy4xNCk7CitMRVQg djIgPSAoMTAsIDIwLCAzLjE0ICogMTApOworCistLSBzaG91bGQgd29yayB0b28gLSB0aGVyZSBh cmUgcHJlcGFyZWQgY2FzdHMKK0xFVCB2MSA9ICgxLCAyLCAzKTsKKworU0VMRUNUIHYxOworU0VM RUNUIHYyOworU0VMRUNUICh2MSkuKjsKK1NFTEVDVCAodjIpLio7CisKK1NFTEVDVCB2MS54ICsg djEuejsKK1NFTEVDVCB2Mi54ICsgdjIuejsKKworLS0gYWNjZXNzIHRvIGNvbXBvc2l0ZSBmaWVs ZHMgc2hvdWxkIGJlIHNhZmUgdG9vCitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7 CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworLS0gc2hvdWxkIGZhaWwK K1NFTEVDVCB2Mi54OworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIFZBUklBQkxFIHYx OworRFJPUCBWQVJJQUJMRSB2MjsKK0RST1AgVFlQRSBzdl94eXo7CitEUk9QIFJPTEUgcmVncmVz c192YXJfdGVzdF9yb2xlOworCistLSBzaG91bGQgZmFpbCwgd3JvbmcgaWRlbnRpZmllcgorTEVU IG5vZGIubm9zY2hlbWEubm92YXIubm9maWVsZC5ub3N1YmZpZWxkID0gMTA7CitMRVQgbm9kYi5u b3NjaGVtYS5ub3Zhci5ub2ZpZWxkID0gMTA7CitMRVQgbm9kYi5ub3NjaGVtYS5ub3ZhciA9IDEw OworCitDUkVBVEUgVFlQRSB0MSBBUyAoYSBpbnQsIGIgbnVtZXJpYywgYyB0ZXh0KTsKKworQ1JF QVRFIFZBUklBQkxFIHYxIEFTIHQxOworTEVUIHYxID0gKDEsIHBpKCksICdoZWxsbycpOworU0VM RUNUIHYxOworTEVUIHYxLmIgPSAxMC4yMjIyOworU0VMRUNUIHYxOworCistLSBzaG91bGQgZmFp bCwgYXR0cmlidXRlIGRvZXNuJ3QgZXhpc3QKK0xFVCB2MS54ID0gMTA7CisKKy0tIHNob3VsZCBm YWlsLCBkb24ndCBhbGxvdyBtdWx0aSBjb2x1bW4gcXVlcnkKK0xFVCB2MSA9IChOVUxMOjp0MSku KjsKKworLS0gYWxsb3cgRFJPUCBvciBBREQgQVRUUklCVVRFIG9uIGNvbXBvc2l0ZSB0eXBlcwor LS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGM7CitTRUxFQ1Qg djE7CisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQgQVRUUklCVVRFIGMgaW50 OworU0VMRUNUIHYxOworCitMRVQgdjEgPSAoMTAsIDEwLjMsIDIwKTsKK1NFTEVDVCB2MTsKKwor LS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGI7CitTRUxFQ1Qg djE7CisKKy0tIHNob3VsZCBmYWlsLCBkaXNhbGxvdyBkYXRhIHR5cGUgY2hhbmdlCitBTFRFUiBU WVBFIHQxIEFMVEVSIEFUVFJJQlVURSBjIFRZUEUgaW50OworCitEUk9QIFZBUklBQkxFIHYxOwor RFJPUCBUWVBFIHQxOworCistLSB0aGUgdGFibGUgdHlwZSBjYW4gYmUgdXNlZCBhcyBjb21wb3Np dGUgdHlwZSB0b28KK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBpbnQsIGIgbnVtZXJpYywgYyBk YXRlKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHN2YXJfdGVzdDsKKworTEVUIHZhcjEgPSAo MTAsIHBpKCksICcyMDIzLTA1LTI2Jyk7CitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIGZhaWwg ZHVlIGRlcGVuZGVuY3kKK0FMVEVSIFRBQkxFIHN2YXJfdGVzdCBBTFRFUiBDT0xVTU4gYSBUWVBF IHRleHQ7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKKworRFJPUCBW QVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CisKK0NSRUFURSBUWVBFIHZhcnRl c3RfdDEgQVMgKGEgaW50LCBiIGludCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJ0ZXN0 X3QxOworQ1JFQVRFIFRBQkxFIHZhcnRlc3R0YWIgKHhjb2wgaW50KTsKKworQ1JFQVRFIFJPTEUg cmVncmVzc192YXJfdGVzdF9yb2xlOworCitHUkFOVCBVUERBVEUgT04gVkFSSUFCTEUgdmFyMSBU TyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitHUkFOVCBTRUxFQ1QgT04gVEFCTEUgdmFydGVzdHRh YiBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rl c3Rfcm9sZTsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9ICgxMCwgMjApOworTEVUIHZh cjEuYSA9IDMwOworCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAoMTAwLCAxMDApOworICBM RVQgdmFyMS5hID0gMTAwMDsKK0VORDsKKyQkOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZh cjEuYTsKK1NFTEVDVCB2YXIxOworTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOworTEVUIHZhcjEu YSA9IChTRUxFQ1QgKiBGUk9NIChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJ0ZXN0dGFiIFdIRVJF IHhjb2wgPSB2YXIxLmEgKyAxMCkpOworCitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2 YXIxOyBFTkQgJCQ7CitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxLmE7IEVORCAk JDsKK0RPICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOworCitTRVQg Uk9MRSBUTyBERUZBVUxUOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVz c192YXJfdGVzdF9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworCist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxLmE7CitTRUxFQ1QgdmFyMTsKK0xFVCB2YXIxLmEg PSB2YXIxLmEgKyAxMDsKK0xFVCB2YXIxLmEgPSAoU0VMRUNUICogRlJPTSAoU0VMRUNUIGNvdW50 KCopIEZST00gdmFydGVzdHRhYiBXSEVSRSB4Y29sID0gdmFyMS5hICsgMTApKTsKKworRE8gJCQg QkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMTsgRU5EICQkOworRE8gJCQgQkVHSU4gUkFJU0Ug Tk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CitETyAkJCBCRUdJTiBMRVQgdmFyMS5hID0gdmFy MS5hICsgMTA7IEVORCAkJDsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1JFVk9LRSBTRUxFQ1Qg T04gVkFSSUFCTEUgdmFyMSBGUk9NIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworLS0gc2hvdWxkIGZhaWwgYWdhaW4KK1NFTEVDVCB2 YXIxLmE7CitTRUxFQ1QgdmFyMTsKK0xFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsKK0xFVCB2YXIx LmEgPSAoU0VMRUNUICogRlJPTSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFydGVzdHRhYiBXSEVS RSB4Y29sID0gdmFyMS5hICsgMTApKTsKKworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywg dmFyMTsgRU5EICQkOworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQg JCQ7CitETyAkJCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKKworU0VU IFJPTEUgVE8gREVGQVVMVDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJ0 ZXN0dGFiOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK0RST1AgVFlQRSB2YXJ0 ZXN0X3QxOworCitDUkVBVEUgVFlQRSB2YXJ0ZXN0X3QxIEFTIChhIGludCwgYiBpbnQpOworCitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXh0OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgdmFy dGVzdF90MTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxLmE7CitTRUxFQ1QgdmFyMi5j OworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CitEUk9QIFRZUEUg dmFydGVzdF90MTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworCitMRVQgdmFyMSA9 IDE7CitMRVQgdmFyMSA9ICcxJzsKK0xFVCB2YXIxID0gMTAuMTsKKworLS0gc2hvdWxkIGZhaWwK K0xFVCB2YXIxID0gJzEnOjpqc29uYjsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9ICcx Jzo6anNvbmI6OmludDsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxLnggPSAxMDsKKworRFJP UCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgU0NIRU1BIHZhcnRlc3Q7CitDUkVBVEUgVFlQRSB2 YXJ0ZXN0dHlwZSBBUyAodmFydGVzdCBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZhcnRlc3QudmFy dGVzdCBBUyB2YXJ0ZXN0dHlwZTsKK1NFVCBTRUFSQ0hfUEFUSCBUTyB2YXJ0ZXN0OworCistLSBz aG91bGQgZmFpbAorTEVUIHZhcnRlc3QudmFydGVzdCA9IDE7CisKK0RST1AgVkFSSUFCTEUgdmFy dGVzdC52YXJ0ZXN0OworRFJPUCBUWVBFIHZhcnRlc3R0eXBlOworRFJPUCBTQ0hFTUEgdmFydGVz dDsKK1NFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOworCistLSBhcnJheXMgYXJlIHN1cHBvcnRl ZAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpY1tdOworTEVUIHZhcjEgPSBBUlJBWVsx LjEsMi4xXTsKK0xFVCB2YXIxWzFdID0gMTAuMTsKK1NFTEVDVCB2YXIxOworCistLSBMRVQgdGFy Z2V0IGRvZXNuJ3QgYWxsb3cgc3JmLCBzaG91bGQgZmFpbAorTEVUIHZhcjFbZ2VuZXJhdGVfc2Vy aWVzKDEsMyldID0gMTAwOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIGFycmF5cyBpbnNp ZGUgY29tcG9zaXRlCitDUkVBVEUgVFlQRSB0MSBBUyAoYSBudW1lcmljLCBiIG51bWVyaWNbXSk7 CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0MTsKK0xFVCB2YXIxID0gKDEwLjEsIEFSUkFZWzAu MCwgMC4wXSk7CitMRVQgdmFyMS5hID0gMTAuMjsKK1NFTEVDVCB2YXIxOworTEVUIHZhcjEuYlsx XSA9IDEwLjM7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBF IHQxOworCistLSBFbmNvdXJhZ2UgdXNlIG9mIHBhcmFsbGVsIHBsYW5zCitTRVQgcGFyYWxsZWxf c2V0dXBfY29zdCA9IDA7CitTRVQgcGFyYWxsZWxfdHVwbGVfY29zdCA9IDA7CitTRVQgbWluX3Bh cmFsbGVsX3RhYmxlX3NjYW5fc2l6ZSA9IDA7CitTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVy X2dhdGhlciA9IDI7CisKKy0tIHRlc3Qgb24gcXVlcnkgd2l0aCB3b3JrZXJzCitDUkVBVEUgVEFC TEUgc3Zhcl90ZXN0KGEgaW50KTsKK0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBTRUxFQ1QgKiBGUk9N IGdlbmVyYXRlX3NlcmllcygxLDEwMDApOworQU5BTFlaRSBzdmFyX3Rlc3Q7CitDUkVBVEUgVkFS SUFCTEUgemVybyBpbnQ7CitMRVQgemVybyA9IDA7CisKKy0tIHJlc3VsdCBzaG91bGQgYmUgMTAw CitTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CisKKy0t IHBhcmFsbGVsIGV4ZWN1dGlvbiBpcyBub3Qgc3VwcG9ydGVkIHlldAorRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CisK K0xFVCB6ZXJvID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCk7CisKKy0tIHJlc3Vs dCBzaG91bGQgYmUgMTAwMAorU0VMRUNUIHplcm87CisKK0RST1AgVkFSSUFCTEUgemVybzsKK0RS T1AgVEFCTEUgc3Zhcl90ZXN0OworCitSRVNFVCBwYXJhbGxlbF9zZXR1cF9jb3N0OworUkVTRVQg cGFyYWxsZWxfdHVwbGVfY29zdDsKK1JFU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemU7 CitSRVNFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyOworCistLSB0aGUgcmVzdWx0 IG9mIHZpZXcgc2hvdWxkIGJlIHNhbWUgaW4gcGFyYWxsZWwgbW9kZSB0b28KK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTA7CisKK0NSRUFURSBWSUVXIHZhcjF2aWV3 IEFTIFNFTEVDVCBDT0FMRVNDRSh2YXIxLCAwKSBBUyByZXN1bHQ7CisKK1NFTEVDVCAqIEZST00g dmFyMXZpZXc7CisKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSBUTyBvbjsKKworU0VMRUNUICog RlJPTSB2YXIxdmlldzsKKworU0VUIGRlYnVnX3BhcmFsbGVsX3F1ZXJ5IFRPIG9mZjsKKworRFJP UCBWSUVXIHZhcjF2aWV3OworRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgVkFSSUFCTEUg dmFyaWQgaW50OworQ1JFQVRFIFRBQkxFIHN2YXJfdGVzdChpZCBpbnQsIHYgaW50KTsKKworTEVU IHZhcmlkID0gMTsKK0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBWQUxVRVModmFyaWQsIDEwMCk7CitT RUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKK1VQREFURSBzdmFyX3Rlc3QgU0VUIHYgPSAyMDAgV0hF UkUgaWQgPSB2YXJpZDsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworREVMRVRFIEZST00gc3Zh cl90ZXN0IFdIRVJFIGlkID0gdmFyaWQ7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKKworRFJP UCBUQUJMRSBzdmFyX3Rlc3Q7CitEUk9QIFZBUklBQkxFIHZhcmlkOworCistLSB2aXNpYmlsaXR5 IGNoZWNrCistLSB2YXJpYWJsZXMgc2hvdWxkIGJlIHNoYWRvd2VkIGFsd2F5cworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgdGV4dDsKK1NFTEVDVCB2YXIxLnJlbG5hbWUgRlJPTSBwZ19jbGFzcyB2 YXIxIFdIRVJFIHZhcjEucmVsbmFtZSA9ICdwZ19jbGFzcyc7CisKK0RST1AgVkFSSUFCTEUgdmFy MTsKKworQ1JFQVRFIFRBQkxFIHh4dGFiKGF2YXIgaW50KTsKKworSU5TRVJUIElOVE8geHh0YWIg VkFMVUVTKDMzMyk7CisKK0NSRUFURSBUWVBFIHh4dHlwZSBBUyAoYXZhciBpbnQpOworCitDUkVB VEUgVkFSSUFCTEUgeHh0YWIgQVMgeHh0eXBlOworCitJTlNFUlQgSU5UTyB4eHRhYiBWQUxVRVMo MTApOworCistLSBpdCBpcyBhbWJpZ3VvdXMsIGJ1dCBjb2x1bW5zIGFyZSBwcmVmZXJyZWQKK1NF TEVDVCB4eHRhYi5hdmFyIEZST00geHh0YWI7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIGF2 YXIgRlJPTSB4eHRhYjsKKworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5hdmFyIEFTIGludDsKKwor LS0gc2hvdWxkIGJlIG9rLCBzZWUgdGhlIHRhYmxlCitTRUxFQ1QgYXZhciBGUk9NIHh4dGFiOwor CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBwdWJsaWMuYXZhciBGUk9NIHh4dGFiOworCitEUk9Q IFZBUklBQkxFIHh4dGFiOworCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOworCitEUk9Q IFZBUklBQkxFIHB1YmxpYy5hdmFyOworCitEUk9QIFRZUEUgeHh0eXBlOworCitEUk9QIFRBQkxF IHh4dGFiOworCistLSBUaGUgdmFyaWFibGUgY2FuIGJlIHNoYWRvd2VkIGJ5IHRhYmxlIG9yIGJ5 IGFsaWFzCitDUkVBVEUgVFlQRSBwdWJsaWMuc3Zhcl90eXBlIEFTIChhIGludCwgYiBpbnQsIGMg aW50KTsKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuc3ZhciBBUyBwdWJsaWMuc3Zhcl90eXBlOwor CitDUkVBVEUgVEFCTEUgcHVibGljLnN2YXIoYSBpbnQsIGIgaW50KTsKKworSU5TRVJUIElOVE8g cHVibGljLnN2YXIgVkFMVUVTKDEwLCAyMCk7CisKK0xFVCBwdWJsaWMuc3ZhciA9ICgxMDAsIDIw MCwgMzAwKTsKKworLS0gc2hvdWxkIGJlIG9rCistLSBzaG93IHRhYmxlCitTRUxFQ1QgKiBGUk9N IHB1YmxpYy5zdmFyOworU0VMRUNUIHN2YXIuYSBGUk9NIHB1YmxpYy5zdmFyOworU0VMRUNUIHN2 YXIuKiBGUk9NIHB1YmxpYy5zdmFyOworCistLSBzaG93IHZhcmlhYmxlCitTRUxFQ1QgcHVibGlj LnN2YXI7CitTRUxFQ1QgcHVibGljLnN2YXIuYzsKK1NFTEVDVCAocHVibGljLnN2YXIpLio7CisK Ky0tIHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFpc2UgZXJyb3IKK1NFTEVDVCBwdWJsaWMu c3Zhci5jIEZST00gcHVibGljLnN2YXI7CisKKy0tIGNhbiBiZSBmaXhlZCBieSBhbGlhcworU0VM RUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4OworCitTRUxFQ1Qgc3Zhci5hIEZS T00gcHVibGljLnN2YXI7CitTRUxFQ1Qgc3Zhci4qIEZST00gcHVibGljLnN2YXI7CisKKy0tIHNo b3cgdmFyaWFibGUKK1NFTEVDVCBwdWJsaWMuc3ZhcjsKK1NFTEVDVCBwdWJsaWMuc3Zhci5jOwor U0VMRUNUIChwdWJsaWMuc3ZhcikuKjsKKworLS0gdGhlIHZhcmlhYmxlIGlzIHNoYWRvd2VkLCBy YWlzZSBlcnJvcgorU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKKworLS0g Y2FuIGJlIGZpeGVkIGJ5IGFsaWFzCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5z dmFyIHg7CisKK0RST1AgVkFSSUFCTEUgcHVibGljLnN2YXI7CitEUk9QIFRBQkxFIHB1YmxpYy5z dmFyOworRFJPUCBUWVBFIHB1YmxpYy5zdmFyX3R5cGU7CisKKy0tIFRoZSBzZXF1ZW5jZSBpZGVu dC4qIGNhbm5vdCBiZSB1c2VkIGJ5IHJlZmVyZW5jZSB0byBzZXNzaW9uIHZhcmlhYmxlLAorLS0g YW5kIGluIHRoaXMgY2FzZSwgdGhlcmUgaXMgbm90IGNvbGxpc2lvbgorQ1JFQVRFIFNDSEVNQSB2 YXJ0ZXN0OworU0VUIFNFQVJDSF9QQVRIIFRPIHZhcnRlc3Q7CitDUkVBVEUgVEFCTEUgdmFydGVz dF9mb28oYSBpbnQsIGIgaW50KTsKK0lOU0VSVCBJTlRPIHZhcnRlc3RfZm9vIFZBTFVFUygxMCwy MCksICgzMCw0MCk7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnRlc3RfZm9vOworTEVU IHZhcjEgPSAoMTAwLDIwMCk7CisKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyMS4qIEZS T00gdmFydGVzdF9mb287CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjEuKiBGUk9NIHZh cnRlc3RfZm9vIHZhcjE7CisKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgY291bnQodmFyMS4q KSBGUk9NIHZhcnRlc3RfZm9vOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBjb3VudCh2YXIx LiopIEZST00gdmFydGVzdF9mb28gdmFyMTsKKworU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7 CitEUk9QIFNDSEVNQSB2YXJ0ZXN0IENBU0NBREU7CisKK0NSRUFURSBUWVBFIGFiIEFTIChhIGlu dGVnZXIsIGIgaW50ZWdlcik7CisKK0NSRUFURSBWQVJJQUJMRSB2X2FiIEFTIGFiOworCitDUkVB VEUgVEFCTEUgdl9hYiAoYSBpbnRlZ2VyLCBiIGludGVnZXIpOworSU5TRVJUIElOVE8gdl9hYiBW QUxVRVMoMTAsMjApOworCistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZS T00gdl9hYjsKKworQ1JFQVRFIFNDSEVNQSB2X2FiOworCitDUkVBVEUgVkFSSUFCTEUgdl9hYi5h IEFTIGludGVnZXI7CisKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVDVCB2X2FiLmEgRlJP TSB2X2FiOworCitEUk9QIFZBUklBQkxFIHZfYWI7CitEUk9QIFRBQkxFIHZfYWI7CitEUk9QIFRZ UEUgYWI7CitEUk9QIFZBUklBQkxFIHZfYWIuYTsKK0RST1AgU0NIRU1BIHZfYWI7CisKK0NSRUFU RSBUWVBFIHRfYW1fdHlwZSBBUyAoYiBpbnQpOworQ1JFQVRFIFNDSEVNQSB4eHhfYW07CisKK1NF VCBzZWFyY2hfcGF0aCBUTyBwdWJsaWM7CisKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0gQVMgdF9h bV90eXBlOworTEVUIHh4eF9hbSA9IFJPVygxMCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IHh4eF9hbTsKKworQ1JFQVRFIFZBUklBQkxFIHh4eF9hbS5iIEFTIGludDsKK0xFVCA6IkRCTkFN RSIueHh4X2FtLmIgPSAyMDsKKworLS0gc2hvdWxkIGJlIHN0aWxsIG9rCitTRUxFQ1QgeHh4X2Ft OworCistLSBzaG91bGQgZmFpbCwgdGhlIHJlZmVyZW5jZSBzaG91bGQgYmUgYW1iaWd1b3VzCitT RUxFQ1QgeHh4X2FtLmI7CisKKy0tIGVuaGFuY2VkIHJlZmVyZW5jZXMgc2hvdWxkIGJlIG9rCitT RUxFQ1QgcHVibGljLnh4eF9hbS5iOworU0VMRUNUIDoiREJOQU1FIi54eHhfYW0uYjsKKworQ1JF QVRFIFRBQkxFIHh4eF9hbShiICBpbnQpOworSU5TRVJUIElOVE8geHh4X2FtIFZBTFVFUygxMCk7 CisKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVDVCB4eHhfYW0uYiBGUk9NIHh4eF9hbTsK K1NFTEVDVCB4LmIgRlJPTSB4eHhfYW0geDsKKworRFJPUCBUQUJMRSB4eHhfYW07CitEUk9QIFZB UklBQkxFIHB1YmxpYy54eHhfYW07CitEUk9QIFZBUklBQkxFIHh4eF9hbS5iOworRFJPUCBTQ0hF TUEgeHh4X2FtOworCitDUkVBVEUgU0NIRU1BIDoiREJOQU1FIjsKKworQ1JFQVRFIFZBUklBQkxF IDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiIEFTIHRfYW1fdHlwZTsKK0NSRUFURSBWQVJJ QUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmIgQVMgaW50OworCitTRVQgc2VhcmNoX3BhdGggVE8g OiJEQk5BTUUiOworCistLSBzaG91bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1QgOiJEQk5BTUUiLmI7 CisKKy0tIHNob3VsZCBiZSBhbWJpZ3VvdXMgdG9vCitTRUxFQ1QgOiJEQk5BTUUiLjoiREJOQU1F Ii5iOworCitDUkVBVEUgVEFCTEUgOiJEQk5BTUUiKGIgaW50KTsKKworLS0gc2hvdWxkIGJlIG9r CitTRUxFQ1QgOiJEQk5BTUUiLmIgRlJPTSA6IkRCTkFNRSI7CisKK0RST1AgVEFCTEUgOiJEQk5B TUUiOworCitEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuYjsKK0RST1AgVkFSSUFC TEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSI7CitEUk9QIFNDSEVNQSA6IkRCTkFNRSI7 CisKK1JFU0VUIHNlYXJjaF9wYXRoOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCBjNTU5 NGM0M2U2Li4zZjBlZmJiOWRlIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTUwNCw2 ICsxNTA0LDcgQEAgTGFyZ2VPYmplY3REZXNjCiBMYXRjaAogTGF1bmNoZXJMYXN0U3RhcnRUaW1l c0VudHJ5CiBMZXJwRnVuYworTGV0U3RtdAogTGV4RGVzY3IKIExleGVtZUVudHJ5CiBMZXhlbWVI YXNoS2V5CkBAIC0yNjE2LDYgKzI2MTcsNyBAQCBTZXJpYWxpemVkVHJhbnNhY3Rpb25TdGF0ZQog U2Vzc2lvbgogU2Vzc2lvbkJhY2t1cFN0YXRlCiBTZXNzaW9uRW5kVHlwZQorU2Vzc2lvblZhcmlh YmxlVmFsdWUKIFNldENvbnN0cmFpbnRTdGF0ZQogU2V0Q29uc3RyYWludFN0YXRlRGF0YQogU2V0 Q29uc3RyYWludFRyaWdnZXJEYXRhCkBAIC0yODA5LDYgKzI4MTEsOSBAQCBTdXBwb3J0UmVxdWVz dFJvd3MKIFN1cHBvcnRSZXF1ZXN0U2VsZWN0aXZpdHkKIFN1cHBvcnRSZXF1ZXN0U2ltcGxpZnkK IFN1cHBvcnRSZXF1ZXN0V0Z1bmNNb25vdG9uaWMKK1NWYXJpYWJsZQorU1ZhcmlhYmxlRGF0YQor U1ZhcmlhYmxlU3RhdGUKIFN5bgogU3luY09wcwogU3luY1JlcENvbmZpZ0RhdGEKLS0gCjIuNDgu MAoK --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20250117-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8o419 RnJvbSA2YjU1MzkwMzY5ODAwYzI1ZGNkMmQxYTg2ZDdkNTc1NjhlMDA3OGYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAz LzIyXSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgIDggKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDI0 NTZhMzQ1MmIuLjgyNTVmMzYwZDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKQEAgLTUyNywzICs1MjcsOTUgQEAgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLAogCiAJUG9wQWN0aXZlU25hcHNob3QoKTsKIH0KKworLyoKKyAqIHBnX3Nlc3Npb25fdmFy aWFibGVzIC0gZGVzaWduZWQgZm9yIHRlc3RpbmcKKyAqCisgKiBUaGlzIGlzIGEgZnVuY3Rpb24g ZGVzaWduZWQgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZy4gIEl0IHJldHVybnMgdGhlCisgKiBj b250ZW50IG9mIHNlc3Npb24gdmFyaWFibGVzIGFzLWlzLCBhbmQgY2FuIHRoZXJlZm9yZSBkaXNw bGF5IGRhdGEgYWJvdXQKKyAqIHNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9wcGVkLCBi dXQgZm9yIHdoaWNoIHRoaXMgYmFja2VuZCBkaWRuJ3QKKyAqIHByb2Nlc3MgdGhlIHNoYXJlZCBp bnZhbGlkYXRpb25zIHlldC4KKyAqLworRGF0dW0KK3BnX3Nlc3Npb25fdmFyaWFibGVzKFBHX0ZV TkNUSU9OX0FSR1MpCit7CisjZGVmaW5lIE5VTV9QR19TRVNTSU9OX1ZBUklBQkxFU19BVFRTIDgK KworCUluaXRNYXRlcmlhbGl6ZWRTUkYoZmNpbmZvLCAwKTsKKworCWlmIChzZXNzaW9udmFycykK Kwl7CisJCVJldHVyblNldEluZm8gKnJzaW5mbyA9IChSZXR1cm5TZXRJbmZvICopIGZjaW5mby0+ cmVzdWx0aW5mbzsKKwkJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwkJU1ZhcmlhYmxlCXN2YXI7 CisKKwkJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisKKwkJd2hpbGUgKChz dmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCQl7 CisJCQlEYXR1bQkJdmFsdWVzW05VTV9QR19TRVNTSU9OX1ZBUklBQkxFU19BVFRTXTsKKwkJCWJv b2wJCW51bGxzW05VTV9QR19TRVNTSU9OX1ZBUklBQkxFU19BVFRTXTsKKwkJCUhlYXBUdXBsZQl0 cDsKKwkJCWJvb2wJCXZhcl9pc192YWxpZCA9IGZhbHNlOworCisJCQltZW1zZXQodmFsdWVzLCAw LCBzaXplb2YodmFsdWVzKSk7CisJCQltZW1zZXQobnVsbHMsIDAsIHNpemVvZihudWxscykpOwor CisJCQl2YWx1ZXNbMF0gPSBPYmplY3RJZEdldERhdHVtKHN2YXItPnZhcmlkKTsKKwkJCXZhbHVl c1szXSA9IE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dHlwaWQpOworCisJCQkvKgorCQkJICogSXQg aXMgcG9zc2libGUgdGhhdCB0aGUgdmFyaWFibGUgaGFzIGJlZW4gZHJvcHBlZCBmcm9tIHRoZQor CQkJICogY2F0YWxvZywgYnV0IG5vdCB5ZXQgcHVyZ2VkIGZyb20gdGhlIGhhc2ggdGFibGUuCisJ CQkgKi8KKwkJCXRwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERh dHVtKHN2YXItPnZhcmlkKSk7CisKKwkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCXsK KwkJCQlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RS VUNUKHRwKTsKKworCQkJCS8qCisJCQkJICogSXQgaXMgYWxzbyBwb3NzaWJsZSB0aGF0IGEgdmFy aWFibGUgaGFzIGJlZW4gZHJvcHBlZCBhbmQKKwkJCQkgKiBzb21lb25lIGNyZWF0ZWQgYSBuZXcg dmFyaWFibGUgd2l0aCB0aGUgc2FtZSBvYmplY3QgSUQuICBVc2UKKwkJCQkgKiB0aGUgY2F0YWxv ZyBpbmZvcm1hdGlvbiBvbmx5IGlmIHRoYXQgaXMgbm90IHRoZSBjYXNlLgorCQkJCSAqLworCQkJ CWlmIChzdmFyLT5jcmVhdGVfbHNuID09IHZhcmZvcm0tPnZhcmNyZWF0ZV9sc24pCisJCQkJewor CQkJCQl2YWx1ZXNbMV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKAorCQkJCQkJCQkJCQkJCWdldF9u YW1lc3BhY2VfbmFtZSh2YXJmb3JtLT52YXJuYW1lc3BhY2UpKTsKKworCQkJCQl2YWx1ZXNbMl0g PSBDU3RyaW5nR2V0VGV4dERhdHVtKE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSkpOworCQkJCQl2 YWx1ZXNbNF0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKGZvcm1hdF90eXBlX2JlKHN2YXItPnR5cGlk KSk7CisJCQkJCXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bShmYWxzZSk7CisKKwkJCQkJdmFsdWVz WzZdID0gQm9vbEdldERhdHVtKAorCQkJCQkJCQkJCQkgb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxl UmVsYXRpb25JZCwgc3Zhci0+dmFyaWQsCisJCQkJCQkJCQkJCQkJCQkgR2V0VXNlcklkKCksIEFD TF9TRUxFQ1QpID09IEFDTENIRUNLX09LKTsKKworCQkJCQl2YWx1ZXNbN10gPSBCb29sR2V0RGF0 dW0oCisJCQkJCQkJCQkJCSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCBzdmFy LT52YXJpZCwKKwkJCQkJCQkJCQkJCQkJCSBHZXRVc2VySWQoKSwgQUNMX1VQREFURSkgPT0gQUNM Q0hFQ0tfT0spOworCisJCQkJCXZhcl9pc192YWxpZCA9IHRydWU7CisJCQkJfQorCisJCQkJUmVs ZWFzZVN5c0NhY2hlKHRwKTsKKwkJCX0KKworCQkJLyogaWYgdGhlcmUgaXMgbm8gbWF0Y2hpbmcg Y2F0YWxvZyBlbnRyeSwgcmV0dXJuIG51bGwgdmFsdWVzICovCisJCQlpZiAoIXZhcl9pc192YWxp ZCkKKwkJCXsKKwkJCQludWxsc1sxXSA9IHRydWU7CisJCQkJbnVsbHNbMl0gPSB0cnVlOworCQkJ CW51bGxzWzRdID0gdHJ1ZTsKKwkJCQl2YWx1ZXNbNV0gPSBCb29sR2V0RGF0dW0odHJ1ZSk7CisJ CQkJbnVsbHNbNl0gPSB0cnVlOworCQkJCW51bGxzWzddID0gdHJ1ZTsKKwkJCX0KKworCQkJdHVw bGVzdG9yZV9wdXR2YWx1ZXMocnNpbmZvLT5zZXRSZXN1bHQsIHJzaW5mby0+c2V0RGVzYywgdmFs dWVzLCBudWxscyk7CisJCX0KKwl9CisKKwlyZXR1cm4gKERhdHVtKSAwOworfQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKaW5kZXggYjdmMDQyMDZmMi4uMmQ3Y2JjZTlhYyAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0CkBAIC0xMjQ1OCw0ICsxMjQ1OCwxMiBAQAogICBwcm9hcmd0eXBlcyA9PiAnaW50 NCcsCiAgIHByb3NyYyA9PiAnZ2lzdF9zdHJhdG51bV9jb21tb24nIH0sCiAKKyMgU2Vzc2lvbiB2 YXJpYWJsZXMgc3VwcG9ydAoreyBvaWQgPT4gJzg0ODgnLCBkZXNjciA9PiAnbGlzdCBvZiB1c2Vk IHNlc3Npb24gdmFyaWFibGVzJywKKyAgcHJvbmFtZSA9PiAncGdfc2Vzc2lvbl92YXJpYWJsZXMn LCBwcm9yb3dzID0+ICcxMDAwJywgcHJvcmV0c2V0ID0+ICd0JywKKyAgcHJvdm9sYXRpbGUgPT4g J3MnLCBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcsCisgIHByb2Fy Z3R5cGVzID0+ICcnLCBwcm9hbGxhcmd0eXBlcyA9PiAne29pZCx0ZXh0LHRleHQsb2lkLHRleHQs Ym9vbCxib29sLGJvb2x9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG99JywK KyAgcHJvYXJnbmFtZXMgPT4gJ3t2YXJpZCxzY2hlbWEsbmFtZSx0eXBpZCx0eXBuYW1lLHJlbW92 ZWQsY2FuX3NlbGVjdCxjYW5fdXBkYXRlfScsCisgIHByb3NyYyA9PiAncGdfc2Vzc2lvbl92YXJp YWJsZXMnIH0sCiBdCi0tIAoyLjQ4LjAKCg== --000000000000736d0d062be1b970 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250117-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Disposition: attachment; filename="v20250117-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m60fc8oh21 RnJvbSAwMTJmMmU2ODQ0NDc5OGY2MjMxN2ZkMWVlMjllM2VhYTgzMzFiOWJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAx LzIyXSBFbmhhbmNpbmcgY2F0YWxvZyBmb3Igc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcyBhbmQK IHJlbGF0ZWQgc3VwcG9ydAoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBzeXN0ZW0gY2F0YWxv ZyB0YWJsZSBwZ192YXJpYWJsZS4gVGhpcyB0YWJsZSBob2xkcyBtZXRhZGF0YSBhYm91dApzZXNz aW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGNvbW1hbmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJv cHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUuCkJvdGggY29tbWFuZHMgYXJlIGltcGxlbWVu dGVkIGJ5IHRoaXMgcGF0Y2guIFBvc3NpYmlsaXR5IHRvIGNoYW5nZSBvd25lciwgc2NoZW1hIG9y IHJlbmFtZS4KCkFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgY29udHJvbGxlZCBi eSBTRUxFQ1Qgb3IgVVBEQVRFIHJpZ2h0cy4gQm90aCByaWdodHMgYXJlCmludHJvZHVjZWQgYnkg dGhpcyBwYXRjaCB0b28uCgpUaGlzIHBhdGNoIGVuaGFuY2luZyBwZ19kdW1wIGFuZCBwc3FsIHRv IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZSBjaGFuZ2VzIGFyZSByZWxhdGVkCnRvIHN5 c3RlbSBjYXRhbG9nLgoKVGhpcyBwYXRjaCBpcyBub3Qgc2hvcnQsIGJ1dCB0aGUgY29kZSBpcyBz aW1wbGUuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgMTIzICsrKystCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgNDAgKy0KIGRvYy9zcmMvc2dtbC9mdW5jLnNnbWwgICAgICAgICAgICAgICAgICAgICAg ICB8ICAzMiArKwogZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAg IHwgIDE1ICsKIGRvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8 ICAgMyArCiAuLi4vc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwgICAgfCAg MjcgKy0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCAgICAgICAgICB8IDE3 OCArKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAgICAgICAgICAg fCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwgICAgICAgICAgIHwg IDEyICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAx NDkgKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAg fCAxMTcgKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbCAgICAgICAgICAgICAgICAg ICB8ICAyMCArLQogZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAg IHwgIDEzICsKIGRvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwgICAgICAgICAgICAgICAgICB8 ICAgOCArCiBkb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAg IDMgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAgICB8ICA3NyAr KysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAgfCAgIDYg Kwogc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAxICsK IHNyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICAgICB8IDIyMSArKysr KysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jICAgICAgICAgICB8IDEy MSArKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jICAgICAgICAgICAgIHwg ICAyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8IDI1 MSArKysrKysrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jICAgICAgICAgICAgICAg ICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyAgICAgICAgICAgICAg IHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYyAgICAgICAgICB8 ICAgNCArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jICAgICAgICAgICAgICAgfCAg IDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgIDQx ICsrCiBzcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jICAgICAgICAgICAgICAgfCAgMTUg Kwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgMTA1ICsr KystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgMTIg Kwogc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDIwICsK IHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyAgICAgICAgICAgICAgICAgICB8IDIyMSArKysr KysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jICAgICAgICAgICB8IDEx MyArKysrKwogc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jICAgICAgICAgICAgICAgICAgICAgIHwg ICAzICsKIHNyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYyAgICAgICAgICAgICAgICAgICB8ICAg NiArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmggICAgICAgICAgICAgICAgICAgfCAgIDIg Kwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jICAgICAgICAgIHwgICA5ICsK IHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE5NSArKysr KysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDE5 ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAgICAgICAgICB8ICAgNiAr CiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAgNjQgKysr CiBzcmMvYmluL3BzcWwvY29tbWFuZC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwog c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTAwICsrKy0K IHNyYy9iaW4vcHNxbC9kZXNjcmliZS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBz cmMvYmluL3BzcWwvaGVscC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDQzICstCiBzcmMv aW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9p bmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5j bHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAyMyArCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgODEgKysrKwogc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDE2ICsKIHNyYy9pbmNsdWRlL3Bh cnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS90Y29w L2NtZHRhZ2xpc3QuaCAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvdXRpbHMv YWNsLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xz eXNjYWNoZS5oICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2RlcGVuZGVuY3kub3V0ICAgICAgfCAgMTcgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9vaWRqb2lucy5vdXQgICAgICAgIHwgICA0ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHNxbC5vdXQgICAgICAgICAgICB8ICA1MCArKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0ICAgIHwgNDMzICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9kZXBlbmRlbmN5LnNxbCAgICAgICAgICAgfCAgMTQgKwogc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHNxbC5zcWwgICAgICAgICAgICAgICAgIHwgIDIxICsKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDI5NyArKysrKysrKysrKysKIHNyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgNCArCiA2NyBmaWxlcyBj aGFuZ2VkLCAzMzcxIGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUg MTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCBkMzAzNmM1YmE5Li43Nzc0MTlkYzdjIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApA QCAtMzY5LDYgKzM2OSwxMSBAQAogICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ct cGctdXNlci1tYXBwaW5nIj48c3RydWN0bmFtZT5wZ191c2VyX21hcHBpbmc8L3N0cnVjdG5hbWU+ PC9saW5rPjwvZW50cnk+CiAgICAgICA8ZW50cnk+bWFwcGluZ3Mgb2YgdXNlcnMgdG8gZm9yZWln biBzZXJ2ZXJzPC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXZhcmlhYmxlIj48c3RydWN0bmFtZT5wZ192YXJp YWJsZTwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5zZXNzaW9uIHZh cmlhYmxlczwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4K ICAgPC90YWJsZT4KQEAgLTMzMzgsNyArMzM0Myw4IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2Vh YmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZs CiAgICAgICAgPGxpdGVyYWw+UzwvbGl0ZXJhbD4gPSBzZXF1ZW5jZSwKICAgICAgICA8bGl0ZXJh bD5mPC9saXRlcmFsPiA9IGZ1bmN0aW9uLAogICAgICAgIDxsaXRlcmFsPlQ8L2xpdGVyYWw+ID0g dHlwZSwKLSAgICAgICA8bGl0ZXJhbD5uPC9saXRlcmFsPiA9IHNjaGVtYQorICAgICAgIDxsaXRl cmFsPm48L2xpdGVyYWw+ID0gc2NoZW1hLAorICAgICAgIDxsaXRlcmFsPlY8L2xpdGVyYWw+ID0g c2Vzc2lvbiB2YXJpYWJsZQogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCkBA IC05NzQyLDQgKzk3NDgsMTE5IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVy YXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgIDwvdGFibGU+ CiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgIDx0aXRs ZT48c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRl eHRlcm0gem9uZT0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgICA8cHJpbWFyeT5wZ192YXJpYWJs ZTwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8 c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT4gc3RvcmVzIGluZm9ybWF0aW9uIGFi b3V0CisgICBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0 aXRsZT48c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+ CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+Cisg ICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcnR5cGU8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5 cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy10eXBlIj48 c3RydWN0bmFtZT5wZ190eXBlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwv c3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIE9J RCBvZiB0aGUgdmFyaWFibGUncyBkYXRhIHR5cGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+dmFybmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5hbWVzcGFjZTwvc3RydWN0ZmllbGQ+IDx0eXBl Pm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBn LW5hbWVzcGFjZSI+PHN0cnVjdG5hbWU+cGdfbmFtZXNwYWNlPC9zdHJ1Y3RuYW1lPjwvbGluaz4u PHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgVGhlIE9JRCBvZiB0aGUgbmFtZXNwYWNlIHRoYXQgY29udGFpbnMgdGhpcyB2 YXJpYWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJvd25lcjwvc3RydWN0Zmll bGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJj YXRhbG9nLXBnLWF1dGhpZCI+PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1lPjwvbGlu az4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgT3duZXIgb2YgdGhlIHZhcmlhYmxlCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPnZhcnR5cG1vZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFydHlwbW9kPC9z dHJ1Y3RmaWVsZD4gcmVjb3JkcyB0eXBlLXNwZWNpZmljIGRhdGEKKyAgICAgICBzdXBwbGllZCBh dCB2YXJpYWJsZSBjcmVhdGlvbiB0aW1lIChmb3IgZXhhbXBsZSwgdGhlIG1heGltdW0KKyAgICAg ICBsZW5ndGggb2YgYSA8dHlwZT52YXJjaGFyPC90eXBlPiBjb2x1bW4pLiAgSXQgaXMgcGFzc2Vk IHRvCisgICAgICAgdHlwZS1zcGVjaWZpYyBpbnB1dCBmdW5jdGlvbnMgYW5kIGxlbmd0aCBjb2Vy Y2lvbiBmdW5jdGlvbnMuCisgICAgICAgVGhlIHZhbHVlIHdpbGwgZ2VuZXJhbGx5IGJlIC0xIGZv ciB0eXBlcyB0aGF0IGRvIG5vdCBuZWVkIDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8L3N0cnVjdGZp ZWxkPi4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyY29sbGF0aW9uPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9 ImNhdGFsb2ctcGctY29sbGF0aW9uIj48c3RydWN0bmFtZT5wZ19jb2xsYXRpb248L3N0cnVjdG5h bWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgZGVmaW5lZCBjb2xsYXRpb24gb2YgdGhlIHZhcmlh YmxlLCBvciB6ZXJvIGlmIHRoZSB2YXJpYWJsZSBpcworICAgICAgIG5vdCBvZiBhIGNvbGxhdGFi bGUgZGF0YSB0eXBlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJhY2w8L3N0cnVj dGZpZWxkPiA8dHlwZT5hY2xpdGVtW108L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBBY2Nlc3MgcHJpdmlsZWdlczsgc2VlCisgICAgICAgPHhyZWYgbGlua2VuZD0i c3FsLWdyYW50Ii8+IGFuZAorICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1yZXZva2UiLz4KKyAg ICAgICBmb3IgZGV0YWlscworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CiA8L2NoYXB0 ZXI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRs LnNnbWwKaW5kZXggZGVhMDRkNjRkYi4uNGY3OWM2NzZjMyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtMTk5Myw2ICsxOTkz LDcgQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAgICAgICBGb3Igc2Vx dWVuY2VzLCB0aGlzIHByaXZpbGVnZSBhbHNvIGFsbG93cyB1c2Ugb2YgdGhlCiAgICAgICAgPGZ1 bmN0aW9uPmN1cnJ2YWw8L2Z1bmN0aW9uPiBmdW5jdGlvbi4KICAgICAgICBGb3IgbGFyZ2Ugb2Jq ZWN0cywgdGhpcyBwcml2aWxlZ2UgYWxsb3dzIHRoZSBvYmplY3QgdG8gYmUgcmVhZC4KKyAgICAg ICBGb3Igc2Vzc2lvbiB2YXJpYWJsZXMsIHRoaXMgIHByaXZpbGVnZSBhbGxvd3MgdGhlIG9iamVj dCB0byBiZSByZWFkLgogICAgICAgPC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFy bGlzdGVudHJ5PgpAQCAtMjAyOCw2ICsyMDI5LDggQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBG Uk9NIFBVQkxJQzsKICAgICAgICA8ZnVuY3Rpb24+c2V0dmFsPC9mdW5jdGlvbj4gZnVuY3Rpb25z LgogICAgICAgIEZvciBsYXJnZSBvYmplY3RzLCB0aGlzIHByaXZpbGVnZSBhbGxvd3Mgd3JpdGlu ZyBvciB0cnVuY2F0aW5nIHRoZQogICAgICAgIG9iamVjdC4KKyAgICAgICBGb3Igc2Vzc2lvbiB2 YXJpYWJsZXMsIHRoaXMgcHJpdmlsZWdlIGFsbG93cyB0byBzZXQgYSB2YWx1ZSB0byB0aGUKKyAg ICAgICBvYmplY3QuCiAgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJs aXN0ZW50cnk+CkBAIC0yMjcxLDcgKzIyNzQsOCBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZS T00gUFVCTElDOwogICAgICAgIDxsaXRlcmFsPkxBUkdFIE9CSkVDVDwvbGl0ZXJhbD4sCiAgICAg ICAgPGxpdGVyYWw+U0VRVUVOQ0U8L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPlRBQkxFPC9s aXRlcmFsPiAoYW5kIHRhYmxlLWxpa2Ugb2JqZWN0cyksCi0gICAgICAgdGFibGUgY29sdW1uCisg ICAgICAgdGFibGUgY29sdW1uLAorICAgICAgIDxsaXRlcmFsPlNFU1NJT04gVkFSSUFCTEU8L2xp dGVyYWw+CiAgICAgICA8L2VudHJ5PgogICAgICA8L3Jvdz4KICAgICAgPHJvdz4KQEAgLTIyODYs NyArMjI5MCw4IEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJMSUM7CiAgICAgICAg PGxpdGVyYWw+TEFSR0UgT0JKRUNUPC9saXRlcmFsPiwKICAgICAgICA8bGl0ZXJhbD5TRVFVRU5D RTwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVyYWw+VEFCTEU8L2xpdGVyYWw+LAotICAgICAgIHRh YmxlIGNvbHVtbgorICAgICAgIHRhYmxlIGNvbHVtbiwKKyAgICAgICA8bGl0ZXJhbD5TRVNTSU9O IFZBUklBQkxFPC9saXRlcmFsPgogICAgICAgPC9lbnRyeT4KICAgICAgPC9yb3c+CiAgICAgIDxy b3c+CkBAIC0yNDczLDYgKzI0NzgsMTIgQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBV QkxJQzsKICAgICAgIDxlbnRyeT48bGl0ZXJhbD5VPC9saXRlcmFsPjwvZW50cnk+CiAgICAgICA8 ZW50cnk+PGxpdGVyYWw+XGRUKzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICA8L3Jvdz4KKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5TRVNTSU9OIFZBUklBQkxFPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cnc8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAg IDxlbnRyeT48bGl0ZXJhbD5ub25lPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxp dGVyYWw+XGRWKzwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8L3Rib2R5Pgog ICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CkBAIC01MzIzLDYgKzUzMzQsMzEgQEAgRVhQTEFJTiBT RUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVudCBXSEVSRSBsb2dkYXRlICZndDs9IERBVEUg JzIwMDgtMDEtMDEnOwogICAgPC9wYXJhPgogIDwvc2VjdDE+CiAKKyAgPHNlY3QxIGlkPSJkZGwt c2Vzc2lvbi12YXJpYWJsZXMiPgorICAgPHRpdGxlPlNlc3Npb24gVmFyaWFibGVzPC90aXRsZT4K KworICAgPGluZGV4dGVybSB6b25lPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiPgorICAgIDxwcmlt YXJ5PlNlc3Npb24gdmFyaWFibGVzPC9wcmltYXJ5PgorICAgPC9pbmRleHRlcm0+CisKKyAgIDxp bmRleHRlcm0+CisgICAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgIDwv aW5kZXh0ZXJtPgorCisgICA8cGFyYT4KKyAgICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgZGF0YWJh c2Ugb2JqZWN0cyB0aGF0IGNhbiBob2xkIGEgdmFsdWUuCisgICAgU2Vzc2lvbiB2YXJpYWJsZXMs IGxpa2UgcmVsYXRpb25zLCBleGlzdCB3aXRoaW4gYSBzY2hlbWEgYW5kIHRoZWlyIGFjY2Vzcwor ICAgIGlzIGNvbnRyb2xsZWQgdmlhIDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhbmQgPGNvbW1h bmQ+UkVWT0tFPC9jb21tYW5kPgorICAgIGNvbW1hbmRzLiAgQSBzZXNzaW9uIHZhcmlhYmxlIGNh biBiZSBjcmVhdGVkIGJ5IHRoZSA8Y29tbWFuZD5DUkVBVEUKKyAgICBWQVJJQUJMRTwvY29tbWFu ZD4gY29tbWFuZC4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIHNlc3Npb24gdmFy aWFibGUgaG9sZHMgdmFsdWUgaW4gc2Vzc2lvbiBtZW1vcnkuICBUaGlzIHZhbHVlIGlzIHByaXZh dGUKKyAgICB0byBlYWNoIHNlc3Npb24gYW5kIGlzIHJlbGVhc2VkIHdoZW4gdGhlIHNlc3Npb24g ZW5kcy4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iZGRsLW90aGVycyI+ CiAgIDx0aXRsZT5PdGhlciBEYXRhYmFzZSBPYmplY3RzPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKaW5kZXggNDcz NzBlNTgxYS4uM2Y1ZDhjOTc3ZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0yNTI4Niw2ICsyNTI4NiwyNSBAQCBTRUxF Q1QgaGFzX2Z1bmN0aW9uX3ByaXZpbGVnZSgnam9ldXNlcicsICdteWZ1bmMoaW50LCB0ZXh0KScs ICdleGVjdXRlJyk7CiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KIAorICAg ICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1h cnk+aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlPC9wcmltYXJ5PgorICAgICAgICA8L2lu ZGV4dGVybT4KKyAgICAgICAgPGZ1bmN0aW9uPmhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZTwvZnVuY3Rpb24+ICgKKyAgICAgICAgICA8b3B0aW9uYWw+IDxwYXJhbWV0ZXI+dXNlcjwvcGFy YW1ldGVyPiA8dHlwZT5uYW1lPC90eXBlPiBvciA8dHlwZT5vaWQ8L3R5cGU+LCA8L29wdGlvbmFs PgorICAgICAgICAgIDxwYXJhbWV0ZXI+c2Vzc2lvbl92YXJpYWJsZTwvcGFyYW1ldGVyPiA8dHlw ZT50ZXh0PC90eXBlPiBvciA8dHlwZT5vaWQ8L3R5cGU+LAorICAgICAgICAgIDxwYXJhbWV0ZXI+ cHJpdmlsZWdlPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ICkKKyAgICAgICAgPHJldHVy bnZhbHVlPmJvb2xlYW48L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFy YT4KKyAgICAgICAgRG9lcyB1c2VyIGhhdmUgcHJpdmlsZWdlIGZvciBzZXNzaW9uIHZhcmlhYmxl PworICAgICAgICBBbGxvd2FibGUgcHJpdmlsZWdlIHR5cGVzIGFyZQorICAgICAgICA8bGl0ZXJh bD5TRUxFQ1Q8L2xpdGVyYWw+LCBhbmQKKyAgICAgICAgPGxpdGVyYWw+VVBEQVRFPC9saXRlcmFs Pi4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCiAgICAgICA8cm93Pgog ICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3Np Z25hdHVyZSI+CiAgICAgICAgIDxpbmRleHRlcm0+CkBAIC0yNTc5NCw2ICsyNTgxMywxOSBAQCBT RUxFQ1QgcmVsbmFtZSBGUk9NIHBnX2NsYXNzIFdIRVJFIHBnX3RhYmxlX2lzX3Zpc2libGUob2lk KTsKICAgICAgICAgSXMgdHlwZSAob3IgZG9tYWluKSB2aXNpYmxlIGluIHNlYXJjaCBwYXRoPwog ICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAg ICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0 dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5PnBnX3ZhcmlhYmxl X2lzX3Zpc2libGU8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgICA8ZnVu Y3Rpb24+cGdfdmFyaWFibGVfaXNfdmlzaWJsZTwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj52YXJp YWJsZTwvcGFyYW1ldGVyPiA8dHlwZT5vaWQ8L3R5cGU+ICkKKyAgICAgICAgPHJldHVybnZhbHVl PmJvb2xlYW48L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgSXMgc2Vzc2lvbiB2YXJpYWJsZSB2aXNpYmxlIGluIHNlYXJjaCBwYXRoPworICAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+CiAgICAgIDwvdGJvZHk+CiAgICAgPC90Z3Jv dXA+CiAgICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwg Yi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCBmNTRmMjVjMWM2Li5kMGNiNTM3NjNh IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvZ2xvc3Nhcnkuc2dtbApAQCAtMTY2NCw2ICsxNjY0LDIxIEBACiAgICA8L2dsb3NzZGVmPgog ICA8L2dsb3NzZW50cnk+CiAKKyAgPGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LXNlc3Npb24tdmFy aWFibGUiPgorICAgPGdsb3NzdGVybT5TZXNzaW9uIHZhcmlhYmxlPC9nbG9zc3Rlcm0+CisgICA8 Z2xvc3NkZWY+CisgICAgPHBhcmE+CisgICAgIEEgcGVyc2lzdGVudCBkYXRhYmFzZSBvYmplY3Qg dGhhdCBob2xkcyBhIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcworICAgICB2YWx1ZSBp cyBwcml2YXRlIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUgc2Vzc2lv biBlbmRzLgorICAgICBSZWFkIG9yIHdyaXRlIGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBp cyBjb250cm9sbGVkIGJ5IHByaXZpbGVnZXMsCisgICAgIHNpbWlsYXIgdG8gb3RoZXIgZGF0YWJh c2Ugb2JqZWN0cy4KKyAgICA8L3BhcmE+CisgICAgPHBhcmE+CisgICAgIEZvciBtb3JlIGluZm9y bWF0aW9uLCBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+LgorICAg IDwvcGFyYT4KKyAgIDwvZ2xvc3NkZWY+CisgIDwvZ2xvc3NlbnRyeT4KKwogICA8Z2xvc3NlbnRy eSBpZD0iZ2xvc3Nhcnktc2hhcmVkLW1lbW9yeSI+CiAgICA8Z2xvc3N0ZXJtPlNoYXJlZCBtZW1v cnk8L2dsb3NzdGVybT4KICAgIDxnbG9zc2RlZj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvYWxsZmlsZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAppbmRleCBm NWJlNjM4ODY3Li4yZjY3ZGUzZTIxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZp bGVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC00Nyw2ICs0 Nyw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMg ZGlyZWN0b3J5LgogPCFFTlRJVFkgYWx0ZXJUeXBlICAgICAgICAgIFNZU1RFTSAiYWx0ZXJfdHlw ZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVXNlciAgICAgICAgICBTWVNURU0gImFsdGVyX3VzZXIu c2dtbCI+CiA8IUVOVElUWSBhbHRlclVzZXJNYXBwaW5nICAgU1lTVEVNICJhbHRlcl91c2VyX21h cHBpbmcuc2dtbCI+Cis8IUVOVElUWSBhbHRlclZhcmlhYmxlICAgICAgU1lTVEVNICJhbHRlcl92 YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVmlldyAgICAgICAgICBTWVNURU0gImFsdGVy X3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBhbmFseXplICAgICAgICAgICAgU1lTVEVNICJhbmFseXpl LnNnbWwiPgogPCFFTlRJVFkgYmVnaW4gICAgICAgICAgICAgIFNZU1RFTSAiYmVnaW4uc2dtbCI+ CkBAIC05OSw2ICsxMDAsNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBm aWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGNyZWF0ZVR5cGUgICAgICAgICBTWVNU RU0gImNyZWF0ZV90eXBlLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVXNlciAgICAgICAgIFNZU1RF TSAiY3JlYXRlX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVVc2VyTWFwcGluZyAgU1lTVEVN ICJjcmVhdGVfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgY3JlYXRlVmFyaWFibGUgICAg IFNZU1RFTSAiY3JlYXRlX3ZhcmlhYmxlLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVmlldyAgICAg ICAgIFNZU1RFTSAiY3JlYXRlX3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBkZWFsbG9jYXRlICAgICAg ICAgU1lTVEVNICJkZWFsbG9jYXRlLnNnbWwiPgogPCFFTlRJVFkgZGVjbGFyZSAgICAgICAgICAg IFNZU1RFTSAiZGVjbGFyZS5zZ21sIj4KQEAgLTE0Nyw2ICsxNDksNyBAQCBDb21wbGV0ZSBsaXN0 IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZ IGRyb3BUeXBlICAgICAgICAgICBTWVNURU0gImRyb3BfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGRy b3BVc2VyICAgICAgICAgICBTWVNURU0gImRyb3BfdXNlci5zZ21sIj4KIDwhRU5USVRZIGRyb3BV c2VyTWFwcGluZyAgICBTWVNURU0gImRyb3BfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkg ZHJvcFZhcmlhYmxlICAgICAgIFNZU1RFTSAiZHJvcF92YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZ IGRyb3BWaWV3ICAgICAgICAgICBTWVNURU0gImRyb3Bfdmlldy5zZ21sIj4KIDwhRU5USVRZIGVu ZCAgICAgICAgICAgICAgICBTWVNURU0gImVuZC5zZ21sIj4KIDwhRU5USVRZIGV4ZWN1dGUgICAg ICAgICAgICBTWVNURU0gImV4ZWN1dGUuc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbAppbmRleCA4OWFhY2VjNGZhLi5hNTg1MmQzMjU2IDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwKQEAg LTUxLDYgKzUxLDExIEBAIEdSQU5UIHsgeyBVU0FHRSB8IENSRUFURSB9CiAgICAgT04gU0NIRU1B UwogICAgIFRPIHsgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xl X25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElP TiBdCiAKK0dSQU5UIHsgeyBTRUxFQ1QgfCBVUERBVEUgfQorICAgIFssIC4uLl0gfCBBTEwgWyBQ UklWSUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFUworICAgIFRPIHsgWyBHUk9VUCBdIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJ QyB9IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisKIFJFVk9LRSBbIEdSQU5UIE9QVElP TiBGT1IgXQogICAgIHsgeyBTRUxFQ1QgfCBJTlNFUlQgfCBVUERBVEUgfCBERUxFVEUgfCBUUlVO Q0FURSB8IFJFRkVSRU5DRVMgfCBUUklHR0VSIHwgTUFJTlRBSU4gfQogICAgIFssIC4uLl0gfCBB TEwgWyBQUklWSUxFR0VTIF0gfQpAQCAtODMsNiArODgsMTIgQEAgUkVWT0tFIFsgR1JBTlQgT1BU SU9OIEZPUiBdCiAgICAgT04gU0NIRU1BUwogICAgIEZST00geyBbIEdST1VQIF0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0g WywgLi4uXQogICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKworUkVWT0tFIFsgR1JBTlQgT1BU SU9OIEZPUiBdCisgICAgeyB7IFNFTEVDVCB8IFVQREFURSB9IFssIC4uLl0gfCBBTEwgWyBQUklW SUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFUworICAgIEZST00geyBbIEdST1VQIF0gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElD IH0gWywgLi4uXQorICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KIDwvc3lub3BzaXM+CiAgPC9y ZWZzeW5vcHNpc2Rpdj4KIApAQCAtMTE3LDE0ICsxMjgsMTQgQEAgUkVWT0tFIFsgR1JBTlQgT1BU SU9OIEZPUiBdCiAgIDxwYXJhPgogICAgQ3VycmVudGx5LAogICAgb25seSB0aGUgcHJpdmlsZWdl cyBmb3Igc2NoZW1hcywgdGFibGVzIChpbmNsdWRpbmcgdmlld3MgYW5kIGZvcmVpZ24KLSAgIHRh YmxlcyksIHNlcXVlbmNlcywgZnVuY3Rpb25zLCBhbmQgdHlwZXMgKGluY2x1ZGluZyBkb21haW5z KSBjYW4gYmUKLSAgIGFsdGVyZWQuICBGb3IgdGhpcyBjb21tYW5kLCBmdW5jdGlvbnMgaW5jbHVk ZSBhZ2dyZWdhdGVzIGFuZCBwcm9jZWR1cmVzLgotICAgVGhlIHdvcmRzIDxsaXRlcmFsPkZVTkNU SU9OUzwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBhcmUKLSAgIGVx dWl2YWxlbnQgaW4gdGhpcyBjb21tYW5kLiAgKDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBp cyBwcmVmZXJyZWQKLSAgIGdvaW5nIGZvcndhcmQgYXMgdGhlIHN0YW5kYXJkIHRlcm0gZm9yIGZ1 bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyB0YWtlbgotICAgdG9nZXRoZXIuICBJbiBlYXJsaWVyIFBv c3RncmVTUUwgcmVsZWFzZXMsIG9ubHkgdGhlCi0gICB3b3JkIDxsaXRlcmFsPkZVTkNUSU9OUzwv bGl0ZXJhbD4gd2FzIGFsbG93ZWQuICBJdCBpcyBub3QgcG9zc2libGUgdG8gc2V0Ci0gICBkZWZh dWx0IHByaXZpbGVnZXMgZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBzZXBhcmF0ZWx5LikK KyAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVuY3Rpb25zLCB0eXBlcyAoaW5jbHVkaW5nIGRvbWFp bnMpLCBhbmQgc2Vzc2lvbgorICAgdmFyaWFibGVzIGNhbiBiZSBhbHRlcmVkLiAgRm9yIHRoaXMg Y29tbWFuZCwgZnVuY3Rpb25zIGluY2x1ZGUgYWdncmVnYXRlcworICAgYW5kIHByb2NlZHVyZXMu ICBUaGUgd29yZHMgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiBhbmQKKyAgIDxsaXRlcmFs PlJPVVRJTkVTPC9saXRlcmFsPiBhcmUgZXF1aXZhbGVudCBpbiB0aGlzIGNvbW1hbmQuCisgICAo PGxpdGVyYWw+Uk9VVElORVM8L2xpdGVyYWw+IGlzIHByZWZlcnJlZCBnb2luZyBmb3J3YXJkIGFz IHRoZSBzdGFuZGFyZAorICAgdGVybSBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHRha2Vu IHRvZ2V0aGVyLiAgSW4gZWFybGllciBQb3N0Z3JlU1FMCisgICByZWxlYXNlcywgb25seSB0aGUg d29yZCA8bGl0ZXJhbD5GVU5DVElPTlM8L2xpdGVyYWw+IHdhcyBhbGxvd2VkLiAgSXQgaXMgbm90 CisgICBwb3NzaWJsZSB0byBzZXQgZGVmYXVsdCBwcml2aWxlZ2VzIGZvciBmdW5jdGlvbnMgYW5k IHByb2NlZHVyZXMgc2VwYXJhdGVseS4pCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi45NmQyNTg2NDIzCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl92YXJpYWJsZS5zZ21sCkBAIC0wLDAgKzEsMTc4IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxy ZWZlbnRyeSBpZD0ic3FsLWFsdGVydmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWFs dGVydmFyaWFibGUiPgorICA8cHJpbWFyeT5BTFRFUiBWQVJJQUJMRTwvcHJpbWFyeT4KKyA8L2lu ZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3By aW1hcnk+CisgIDxzZWNvbmRhcnk+YWx0ZXJpbmc8L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4K KworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5BTFRFUiBWQVJJQUJMRTwvcmVmZW50cnl0 aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBM YW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFt ZWRpdj4KKyAgPHJlZm5hbWU+QUxURVIgVkFSSUFCTEU8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3Nl PgorICAgY2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZQorICA8L3Jl ZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lz PgorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdf b3duZXI8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9MRSB8IENVUlJFTlRfVVNFUiB8IFNFU1NJ T05fVVNFUiB9CitBTFRFUiBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgU0NIRU1BIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfc2NoZW1hPC9yZXBsYWNlYWJsZT4KKzwvc3lub3BzaXM+ CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9u PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5BTFRFUiBWQVJJQUJMRTwvY29t bWFuZD4gY29tbWFuZCBjaGFuZ2VzIHRoZSBkZWZpbml0aW9uIG9mIGFuCisgICBleGlzdGluZyBz ZXNzaW9uIHZhcmlhYmxlLiBUaGVyZSBhcmUgc2V2ZXJhbCBzdWJmb3JtczoKKworICA8dmFyaWFi bGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5PV05FUjwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9y bSBjaGFuZ2VzIHRoZSBvd25lciBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRy eT4KKyAgICA8dGVybT48bGl0ZXJhbD5SRU5BTUU8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gY2hhbmdlcyB0aGUgbmFtZSBvZiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5T RVQgU0NIRU1BPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgVGhpcyBmb3JtIG1vdmVzIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGludG8gYW5vdGhlciBz Y2hlbWEuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgPC92YXJpYWJsZWxpc3Q+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIE9ubHkgdGhl IG93bmVyIG9yIGEgc3VwZXJ1c2VyIGlzIGFsbG93ZWQgdG8gYWx0ZXIgYSBzZXNzaW9uIHZhcmlh YmxlLgorICAgSW4gb3JkZXIgdG8gbW92ZSBhIHNlc3Npb24gdmFyaWFibGUgZnJvbSBvbmUgc2No ZW1hIHRvIGFub3RoZXIsIHRoZSB1c2VyCisgICBtdXN0IGFsc28gaGF2ZSB0aGUgPGxpdGVyYWw+ Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhlIG5ldyBzY2hlbWEgKG9yCisgICBiZSBh IHN1cGVydXNlcikuCisKKyAgIEluIG9yZGVyIHRvIG1vdmUgdGhlIHNlc3Npb24gdmFyaWFibGUg b3duZXJzaGlwIGZyb20gb25lIHJvbGUgdG8gYW5vdGhlciwKKyAgIHRoZSB1c2VyIG11c3QgYWxz byBiZSBhIGRpcmVjdCBvciBpbmRpcmVjdCBtZW1iZXIgb2YgdGhlIG5ldworICAgb3duaW5nIHJv bGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlIHRoZSA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+ IHByaXZpbGVnZQorICAgb24gdGhlIHNlc3Npb24gdmFyaWFibGUncyBzY2hlbWEgKG9yIGJlIGEg c3VwZXJ1c2VyKS4gVGhlc2UgcmVzdHJpY3Rpb25zCisgICBlbmZvcmNlIHRoYXQgYWx0ZXJpbmcg dGhlIG93bmVyIGRvZXNuJ3QgZG8gYW55dGhpbmcgeW91IGNvdWxkbid0IGRvIGJ5CisgICBkcm9w cGluZyBhbmQgcmVjcmVhdGluZyB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgPC9wYXJhPgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKwor ICAgPHBhcmE+CisgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg IDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBuYW1l IChwb3NzaWJseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiB0aGUgZXhpc3Rpbmcgc2Vzc2lvbiB2YXJp YWJsZQorICAgICAgICB0byBhbHRlci4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVt PgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRl cm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+ PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgdXNl ciBuYW1lIG9mIHRoZSBuZXcgb3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgICAg PC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uZXdfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAg IDxwYXJhPgorICAgICAgICBUaGUgbmV3IG5hbWUgZm9yIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgor ICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5Pgor CisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVt PgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbmV3IHNjaGVtYSBmb3IgdGhlIHNlc3Npb24g dmFyaWFibGUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJs aXN0ZW50cnk+CisgICAgPC92YXJpYWJsZWxpc3Q+CisgICA8L3BhcmE+CisgIDwvcmVmc2VjdDE+ CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+Cisg ICBUbyByZW5hbWUgYSBzZXNzaW9uIHZhcmlhYmxlOgorPHByb2dyYW1saXN0aW5nPgorQUxURVIg VkFSSUFCTEUgZm9vIFJFTkFNRSBUTyBib287Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+ CisKKyAgPHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIG93bmVyIG9mIHRoZSBzZXNzaW9uIHZhcmlh YmxlIDxsaXRlcmFsPmJvbzwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmpvZTwvbGl0ZXJhbD46 Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBib28gT1dORVIgVE8gam9lOworPC9w cm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gY2hhbmdlIHRoZSBz Y2hlbWEgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+Ym9vPC9saXRlcmFsPiB0bwor ICAgPGxpdGVyYWw+cHJpdmF0ZTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBW QVJJQUJMRSBib28gU0VUIFNDSEVNQSBwcml2YXRlOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9w YXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5 PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFNlc3Npb24gdmFyaWFibGVzIGFuZCB0aGlzIGNvbW1h bmQgaW4gcGFydGljdWxhciBhcmUgYSBQb3N0Z3JlU1FMIGV4dGVuc2lvbi4KKyAgPC9wYXJhPgor IDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDEgaWQ9InNxbC1hbHRlcnZhcmlhYmxlLXNlZS1hbHNv Ij4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxp bmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21l bWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVt YmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwvcmVmZW50cnk+CmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY29t bWVudC5zZ21sCmluZGV4IDViNDNjNTZiMTMuLjIxY2Q4MDgxOGYgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5z Z21sCkBAIC02NSw2ICs2NSw3IEBAIENPTU1FTlQgT04KICAgVFJBTlNGT1JNIEZPUiA8cmVwbGFj ZWFibGU+dHlwZV9uYW1lPC9yZXBsYWNlYWJsZT4gTEFOR1VBR0UgPHJlcGxhY2VhYmxlPmxhbmdf bmFtZTwvcmVwbGFjZWFibGU+IHwKICAgVFJJR0dFUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+dHJpZ2dlcl9uYW1lPC9yZXBsYWNlYWJsZT4gT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFRZUEUgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAorICBWQVJJQUJM RSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxl PiB8CiAgIFZJRVcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9y ZXBsYWNlYWJsZT4KIH0gSVMgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3RyaW5n X2xpdGVyYWw8L3JlcGxhY2VhYmxlPiB8IE5VTEwgfQogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVt YS5zZ21sCmluZGV4IGVkNjkyOThjY2MuLmQyYmIyNjUyMDkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3NjaGVtYS5zZ21sCkBAIC0xMDMsOSArMTAzLDEwIEBAIENSRUFURSBTQ0hFTUEgSUYgTk9UIEVY SVNUUyBBVVRIT1JJWkFUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3Nw CiAgICAgICAgIHNjaGVtYS4gQ3VycmVudGx5LCBvbmx5IDxjb21tYW5kPkNSRUFURQogICAgICAg ICBUQUJMRTwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURSBWSUVXPC9jb21tYW5kPiwgPGNvbW1h bmQ+Q1JFQVRFCiAgICAgICAgIElOREVYPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFIFNFUVVF TkNFPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFCi0gICAgICAgIFRSSUdHRVI8L2NvbW1hbmQ+ IGFuZCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYXJlIGFjY2VwdGVkIGFzIGNsYXVzZXMKLSAg ICAgICAgd2l0aGluIDxjb21tYW5kPkNSRUFURSBTQ0hFTUE8L2NvbW1hbmQ+LiBPdGhlciBraW5k cyBvZiBvYmplY3RzIG1heQotICAgICAgICBiZSBjcmVhdGVkIGluIHNlcGFyYXRlIGNvbW1hbmRz IGFmdGVyIHRoZSBzY2hlbWEgaXMgY3JlYXRlZC4KKyAgICAgICAgVFJJR0dFUjwvY29tbWFuZD4s IDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+Q1JFQVRFCisgICAgICAgIFZB UklBQkxFPC9jb21tYW5kPiBhcmUgYWNjZXB0ZWQgYXMgY2xhdXNlcyB3aXRoaW4gPGNvbW1hbmQ+ Q1JFQVRFCisgICAgICAgIFNDSEVNQTwvY29tbWFuZD4uIE90aGVyIGtpbmRzIG9mIG9iamVjdHMg bWF5IGJlIGNyZWF0ZWQgaW4gc2VwYXJhdGUKKyAgICAgICAgY29tbWFuZHMgYWZ0ZXIgdGhlIHNj aGVtYSBpcyBjcmVhdGVkLgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAg IDwvdmFybGlzdGVudHJ5PgpAQCAtMjE0LDYgKzIxNSwxMSBAQCBDUkVBVEUgVklFVyBob2xseXdv b2Qud2lubmVycyBBUwogICAgVGhlIDxsaXRlcmFsPklGIE5PVCBFWElTVFM8L2xpdGVyYWw+IG9w dGlvbiBpcyBhCiAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVu c2lvbi4KICAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkNSRUFURSBWQVJJ QUJMRTwvY29tbWFuZD4gY29tbWFuZCBpcyBhCisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwv cHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4KKyAgPC9wYXJhPgogIDwvcmVmc2VjdDE+CiAKICA8cmVm c2VjdDE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwLi42ZTk4OGYyZTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMCwwICsxLDE0OSBAQAorPCEt LQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorUG9zdGdyZVNRTCBkb2N1 bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUiPgorIDxp bmRleHRlcm0gem9uZT0ic3FsLWNyZWF0ZXZhcmlhYmxlIj4KKyAgPHByaW1hcnk+Q1JFQVRFIFZB UklBQkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1h cnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFyeT5kZWZpbmluZzwvc2Vj b25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkNS RUFURSBWQVJJQUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+ CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4K KyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+Q1JFQVRFIFZBUklBQkxF PC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5kZWZpbmUgYSBzZXNzaW9uIHZhcmlhYmxlPC9yZWZw dXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4K K0NSRUFURSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCis8L3N5bm9wc2lzPgor IDwvcmVmc3lub3BzaXNkaXY+CisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3Rp dGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkNSRUFURSBWQVJJQUJMRTwvY29tbWFu ZD4gY29tbWFuZCBjcmVhdGVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgIFNlc3Npb24gdmFyaWFi bGVzLCBsaWtlIHJlbGF0aW9ucywgZXhpc3Qgd2l0aGluIGEgc2NoZW1hIGFuZCB0aGVpciBhY2Nl c3MgaXMKKyAgIGNvbnRyb2xsZWQgdmlhIHRoZSBjb21tYW5kcyA8Y29tbWFuZD5HUkFOVDwvY29t bWFuZD4gYW5kIDxjb21tYW5kPlJFVk9LRTwvY29tbWFuZD4uCisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1 cnJlbnQgc2Vzc2lvbi4gIFJldHJpZXZpbmcKKyAgIGEgc2Vzc2lvbiB2YXJpYWJsZSdzIHZhbHVl IHJldHVybnMgTlVMTCwgdW5sZXNzIGl0cyB2YWx1ZSBpcyBzZXQgdG8KKyAgIHNvbWV0aGluZyBl bHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24gd2l0aCBhIDxjb21tYW5kPkxFVDwvY29tbWFuZD4g Y29tbWFuZC4KKyAgIFRoZSBjb250ZW50IG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdHJh bnNhY3Rpb25hbC4gVGhpcyBpcyB0aGUgc2FtZSBhcworICAgcmVndWxhciB2YXJpYWJsZXMgaW4g cHJvY2VkdXJhbCBsYW5ndWFnZXMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFNlc3Npb24g dmFyaWFibGVzIGFyZSByZXRyaWV2ZWQgYnkgdGhlIDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4K KyAgIGNvbW1hbmQuICBUaGVpciB2YWx1ZSBpcyBzZXQgd2l0aCB0aGUgPGNvbW1hbmQ+TEVUPC9j b21tYW5kPiBjb21tYW5kLgorICA8L3BhcmE+CisKKyAgPG5vdGU+CisgICA8cGFyYT4KKyAgICBT ZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgPHF1b3RlPnNoYWRvd2VkPC9xdW90ZT4gYnkgb3RoZXIg aWRlbnRpZmllcnMuCisgICAgRm9yIGRldGFpbHMsIHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vz c2lvbi12YXJpYWJsZXMiLz4uCisgICA8L3BhcmE+CisgIDwvbm90ZT4KKyA8L3JlZnNlY3QxPgor CisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxl bGlzdD4KKworICAgPHZhcmxpc3RlbnRyeSAgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1pZi1ub3Qt ZXhpc3RzIj4KKyAgICA8dGVybT48bGl0ZXJhbD5JRiBOT1QgRVhJU1RTPC9saXRlcmFsPjwvdGVy bT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRG8gbm90IHRocm93IGFuIGVy cm9yIGlmIHRoZSBuYW1lIGFscmVhZHkgZXhpc3RzLiBBIG5vdGljZSBpcyBpc3N1ZWQgaW4KKyAg ICAgIHRoaXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxp c3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLW5hbWUi PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1l LCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8 dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtZGF0YV90eXBlIj4KKyAgICA8dGVy bT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lLCBvcHRp b25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBkYXRhIHR5cGUgb2YgdGhlIHNlc3Npb24K KyAgICAgIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFy bGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtY29s bGF0ZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+Q09MTEFURSA8cmVwbGFjZWFibGU+Y29sbGF0aW9u PC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBUaGUgPGxpdGVyYWw+Q09MTEFURTwvbGl0ZXJhbD4gY2xhdXNlIGFzc2lnbnMg YSBjb2xsYXRpb24gdG8gdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlICh3aGljaCBtdXN0IGJl IG9mIGEgY29sbGF0YWJsZSBkYXRhIHR5cGUpLiAgSWYgbm90IHNwZWNpZmllZCwKKyAgICAgIHRo ZSBkYXRhIHR5cGUncyBkZWZhdWx0IGNvbGxhdGlvbiBpcyB1c2VkLgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgIDwvdmFyaWFibGVsaXN0Pgor IDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Ob3RlczwvdGl0bGU+CisKKyAg PHBhcmE+CisgICBVc2UgdGhlIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1h bmQgdG8gcmVtb3ZlIGEgc2Vzc2lvbgorICAgdmFyaWFibGUuCisgIDwvcGFyYT4KKyA8L3JlZnNl Y3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJh PgorICAgQ3JlYXRlIGFuIGRhdGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRl cmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRhdGU7Cis8 L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3Qx PgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNv bW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlzIGEKKyAgIDxwcm9kdWN0 bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9y ZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8 c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwt YWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwt ZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgor Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxl LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41YmRiMzU2MGYwCi0tLSAvZGV2L251bGwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKQEAgLTAsMCArMSwxMTcgQEAKKzwh LS0KK2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3Vt ZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1kcm9wdmFyaWFibGUiPgorIDxpbmRl eHRlcm0gem9uZT0ic3FsLWRyb3B2YXJpYWJsZSI+CisgIDxwcmltYXJ5PkRST1AgVkFSSUFCTEU8 L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNz aW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PnJlbW92aW5nPC9zZWNvbmRhcnk+ CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBWQVJJ QUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZt aXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1l dGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBWQVJJQUJMRTwvcmVmbmFtZT4K KyAgPHJlZnB1cnBvc2U+cmVtb3ZlIGEgc2Vzc2lvbiB2YXJpYWJsZTwvcmVmcHVycG9zZT4KKyA8 L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitEUk9QIFZBUklB QkxFIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBbLCAuLi5dIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKzwvc3lub3BzaXM+Cisg PC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90 aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IHJl bW92ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgQSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBvbmx5 IGJlIHJlbW92ZWQgYnkgaXRzIG93bmVyIG9yIGEgc3VwZXJ1c2VyLgorICA8L3BhcmE+CisgPC9y ZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisg IDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPklG IEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBkb2VzIG5v dCBleGlzdC4gQSBub3RpY2UgaXMKKyAgICAgIGlzc3VlZCBpbiB0aGlzIGNhc2UuCisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0 ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhl IG5hbWUsIG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgYSBzZXNzaW9uIHZhcmlhYmxl LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisg ICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkNBU0NBREU8L2xpdGVyYWw+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBBdXRvbWF0aWNhbGx5IGRy b3Agb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAoc3VjaCBhcwor ICAgICAgdmlld3MpLCBhbmQgaW4gdHVybiBhbGwgb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aG9z ZSBvYmplY3RzCisgICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1kZXBlbmQiLz4pLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFy bGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlJFU1RSSUNUPC9saXRlcmFsPjwvdGVybT4K KyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgUmVmdXNlIHRvIGRyb3AgdGhlIHNl c3Npb24gdmFyaWFibGUgaWYgYW55IG9iamVjdHMgZGVwZW5kIG9uIGl0LiAgVGhpcyBpcworICAg ICAgdGhlIGRlZmF1bHQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUbyByZW1vdmUgdGhl IHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46CisKKzxwcm9ncmFtbGlz dGluZz4KK0RST1AgVkFSSUFCTEUgdmFyMTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4K KworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5EUk9QIFZBUklBQkxFPC9jb21tYW5kPiBjb21t YW5kIGlzIGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5z aW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNl ZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJl cj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJl cj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1w bGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2dyYW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKaW5kZXgg OTk5ZjY1N2Q1Yy4uYzExODYwZmEyMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9ncmFu dC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbApAQCAtMTAxLDYgKzEwMSwx MiBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBs YWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICAgIFsgV0lUSCB7IEFETUlOIHwgSU5IRVJJ VCB8IFNFVCB9IHsgT1BUSU9OIHwgVFJVRSB8IEZBTFNFIH0gXQogICAgIFsgR1JBTlRFRCBCWSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNl YWJsZT4gXQogCitHUkFOVCB7IFNFTEVDVCB8IFVQREFURSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9 CisgICAgT04geyBWQVJJQUJMRSA8cmVwbGFjZWFibGU+dmFyaWFibGVfbmFtZTwvcmVwbGFjZWFi bGU+IFssIC4uLl0KKyAgICAgICB8IEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gfQor ICAgIFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248 L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJT04gXQorICAgIFsgR1JBTlRF RCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9y ZXBsYWNlYWJsZT4gXQorCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBjYW4gYmU6PC9waHJhc2U+CiAK ICAgICBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwv cmVwbGFjZWFibGU+CkBAIC0xMTksOCArMTI1LDggQEAgR1JBTlQgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gVE8gPHJlcGxhY2UK ICAgIHRoYXQgZ3JhbnRzIHByaXZpbGVnZXMgb24gYSBkYXRhYmFzZSBvYmplY3QgKHRhYmxlLCBj b2x1bW4sIHZpZXcsCiAgICBmb3JlaWduIHRhYmxlLCBzZXF1ZW5jZSwgZGF0YWJhc2UsIGZvcmVp Z24tZGF0YSB3cmFwcGVyLCBmb3JlaWduIHNlcnZlciwKICAgIGZ1bmN0aW9uLCBwcm9jZWR1cmUs IHByb2NlZHVyYWwgbGFuZ3VhZ2UsIGxhcmdlIG9iamVjdCwgY29uZmlndXJhdGlvbgotICAgcGFy YW1ldGVyLCBzY2hlbWEsIHRhYmxlc3BhY2UsIG9yIHR5cGUpLCBhbmQgb25lIHRoYXQgZ3JhbnRz Ci0gICBtZW1iZXJzaGlwIGluIGEgcm9sZS4gIFRoZXNlIHZhcmlhbnRzIGFyZSBzaW1pbGFyIGlu IG1hbnkgd2F5cywgYnV0CisgICBwYXJhbWV0ZXIsIHNjaGVtYSwgc2Vzc2lvbiB2YXJpYWJsZSwg dGFibGVzcGFjZSwgb3IgdHlwZSksIGFuZCBvbmUgdGhhdAorICAgZ3JhbnRzIG1lbWJlcnNoaXAg aW4gYSByb2xlLiAgVGhlc2UgdmFyaWFudHMgYXJlIHNpbWlsYXIgaW4gbWFueSB3YXlzLCBidXQK ICAgIHRoZXkgYXJlIGRpZmZlcmVudCBlbm91Z2ggdG8gYmUgZGVzY3JpYmVkIHNlcGFyYXRlbHku CiAgIDwvcGFyYT4KIApAQCAtMjM2LDkgKzI0Miw5IEBAIEdSQU5UIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFRPIDxyZXBsYWNl CiAgIDxwYXJhPgogICAgVGhlcmUgaXMgYWxzbyBhbiBvcHRpb24gdG8gZ3JhbnQgcHJpdmlsZWdl cyBvbiBhbGwgb2JqZWN0cyBvZiB0aGUgc2FtZQogICAgdHlwZSB3aXRoaW4gb25lIG9yIG1vcmUg c2NoZW1hcy4gIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBjdXJyZW50bHkgc3VwcG9ydGVkCi0gICBv bmx5IGZvciB0YWJsZXMsIHNlcXVlbmNlcywgZnVuY3Rpb25zLCBhbmQgcHJvY2VkdXJlcy4gIDxs aXRlcmFsPkFMTAotICAgVEFCTEVTPC9saXRlcmFsPiBhbHNvIGFmZmVjdHMgdmlld3MgYW5kIGZv cmVpZ24gdGFibGVzLCBqdXN0IGxpa2UgdGhlCi0gICBzcGVjaWZpYy1vYmplY3QgPGNvbW1hbmQ+ R1JBTlQ8L2NvbW1hbmQ+IGNvbW1hbmQuICA8bGl0ZXJhbD5BTEwKKyAgIG9ubHkgZm9yIHRhYmxl cywgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIHByb2NlZHVyZXMgYW5kIHZhcmlhYmxlcy4KKyAgIDxs aXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVyYWw+IGFsc28gYWZmZWN0cyB2aWV3cyBhbmQgZm9yZWln biB0YWJsZXMsIGp1c3QKKyAgIGxpa2UgdGhlIHNwZWNpZmljLW9iamVjdCA8Y29tbWFuZD5HUkFO VDwvY29tbWFuZD4gY29tbWFuZC4gIDxsaXRlcmFsPkFMTAogICAgRlVOQ1RJT05TPC9saXRlcmFs PiBhbHNvIGFmZmVjdHMgYWdncmVnYXRlIGFuZCB3aW5kb3cgZnVuY3Rpb25zLCBidXQgbm90CiAg ICBwcm9jZWR1cmVzLCBhZ2FpbiBqdXN0IGxpa2UgdGhlIHNwZWNpZmljLW9iamVjdCA8Y29tbWFu ZD5HUkFOVDwvY29tbWFuZD4KICAgIGNvbW1hbmQuICBVc2UgPGxpdGVyYWw+QUxMIFJPVVRJTkVT PC9saXRlcmFsPiB0byBpbmNsdWRlIHByb2NlZHVyZXMuCkBAIC01MTgsOCArNTI0LDggQEAgR1JB TlQgYWRtaW5zIFRPIGpvZTsKICAgIDwvcGFyYT4KIAogICAgPHBhcmE+Ci0gICAgUHJpdmlsZWdl cyBvbiBkYXRhYmFzZXMsIHRhYmxlc3BhY2VzLCBzY2hlbWFzLCBsYW5ndWFnZXMsIGFuZAotICAg IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBhcmUKKyAgICBQcml2aWxlZ2VzIG9uIGRhdGFiYXNl cywgdGFibGVzcGFjZXMsIHNjaGVtYXMsIGxhbmd1YWdlcywgc2Vzc2lvbiB2YXJpYWJsZXMKKyAg ICBhbmQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGFyZQogICAgIDxwcm9kdWN0bmFtZT5Qb3N0 Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9ucy4KICAgIDwvcGFyYT4KICA8L3JlZnNlY3Qx PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9wc3FsLXJlZi5zZ21sCmluZGV4IGYzMDQ0ZmFjMWYuLmRhOWVmMDFkZGUgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL3BzcWwtcmVmLnNnbWwKQEAgLTIxMzQsNiArMjEzNCwxOSBAQCBTRUxFQ1QgJDEgXHBhcnNl IHN0bXQxCiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAg ICAgPHZhcmxpc3RlbnRyeSBpZD0iYXBwLXBzcWwtbWV0YS1jb21tYW5kLWR2Ij4KKyAgICAgICAg PHRlcm0+PGxpdGVyYWw+XGRWWytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMi PjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xp bms+IF08L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJh PgorICAgICAgICBMaXN0cyBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgICAgICAgSWYgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48L3JlcGxhY2VhYmxlPiBpcworICAgICAgICBz cGVjaWZpZWQsIG9ubHkgc2Vzc2lvbiB2YXJpYWJsZXMgd2hvc2UgbmFtZXMgbWF0Y2ggdGhlIHBh dHRlcm4gYXJlIGxpc3RlZC4KKyAgICAgICAgSWYgdGhlIGZvcm0gPGxpdGVyYWw+XGRWKzwvbGl0 ZXJhbD4gaXMgdXNlZCwgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICAgICAgICBhYm91dCBlYWNo IHZhcmlhYmxlIGlzIHNob3duLCBsaWtlICBhY2Nlc3MgcHJpdmlsZWdlcyBhbmQgZGVzY3JpcHRp b24uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlz dGVudHJ5PgorCiAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJhcHAtcHNxbC1tZXRhLWNvbW1hbmQt ZHUiPgogICAgICAgICA8dGVybT48bGl0ZXJhbD5cZHVbU3grXSBbIDxsaW5rIGxpbmtlbmQ9ImFw cC1wc3FsLXBhdHRlcm5zIj48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwv cmVwbGFjZWFibGU+PC9saW5rPiBdPC9saXRlcmFsPjwvdGVybT4KICAgICAgICAgPGxpc3RpdGVt PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvcmV2b2tlLnNnbWwKaW5kZXggOGRmNDkyMjgxYS4uNzYwZmRkYjdjMiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3Jl dm9rZS5zZ21sCkBAIC0xMzAsNiArMTMwLDE0IEBAIFJFVk9LRSBbIHsgQURNSU4gfCBJTkhFUklU IHwgU0VUIH0gT1BUSU9OIEZPUiBdCiAgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBD QVNDQURFIHwgUkVTVFJJQ1QgXQogCitSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KKyAgICB7 IHsgU0VMRUNUIHwgVVBEQVRFIH0gWywgLi4uXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAg T04geyBWQVJJQUJMRSA8cmVwbGFjZWFibGU+dmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFss IC4uLl0KKyAgICAgICB8IEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gfQorICAgIEZS T00geyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9y ZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dCisgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBd CisgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQorCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBjYW4g YmU6PC9waHJhc2U+CiAKICAgICBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm ZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKaW5kZXggZmY4NWFjZTgz Zi4uMjU1NzhmMzk0NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbApAQCAtNzUsNiArNzUsNyBAQAogICAgJmFs dGVyVHlwZTsKICAgICZhbHRlclVzZXI7CiAgICAmYWx0ZXJVc2VyTWFwcGluZzsKKyAgICZhbHRl clZhcmlhYmxlOwogICAgJmFsdGVyVmlldzsKICAgICZhbmFseXplOwogICAgJmJlZ2luOwpAQCAt MTI3LDYgKzEyOCw3IEBACiAgICAmY3JlYXRlVHlwZTsKICAgICZjcmVhdGVVc2VyOwogICAgJmNy ZWF0ZVVzZXJNYXBwaW5nOworICAgJmNyZWF0ZVZhcmlhYmxlOwogICAgJmNyZWF0ZVZpZXc7CiAg ICAmZGVhbGxvY2F0ZTsKICAgICZkZWNsYXJlOwpAQCAtMTc1LDYgKzE3Nyw3IEBACiAgICAmZHJv cFR5cGU7CiAgICAmZHJvcFVzZXI7CiAgICAmZHJvcFVzZXJNYXBwaW5nOworICAgJmRyb3BWYXJp YWJsZTsKICAgICZkcm9wVmlldzsKICAgICZlbmQ7CiAgICAmZXhlY3V0ZTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2Vm aWxlCmluZGV4IGMwOTAwOTRlZDAuLjJjMjBkNjBkYjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQpAQCAt NDUsNiArNDUsNyBAQCBPQkpTID0gXAogCXBnX3NoZGVwZW5kLm8gXAogCXBnX3N1YnNjcmlwdGlv bi5vIFwKIAlwZ190eXBlLm8gXAorCXBnX3ZhcmlhYmxlLm8gXAogCXN0b3JhZ2UubyBcCiAJdG9h c3RpbmcubwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwppbmRleCAwMmE3NTRjYzMwLi4xZThjZTc1MmI5IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisrKyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvYWNsY2hrLmMKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5o IgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKQEAgLTI5MSw2ICsyOTIsOSBA QCByZXN0cmljdF9hbmRfY2hlY2tfZ3JhbnQoYm9vbCBpc19ncmFudCwgQWNsTW9kZSBhdmFpbF9n b3B0aW9ucywgYm9vbCBhbGxfcHJpdnMsCiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJ CQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJyZWFrOwor CQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJR0hUU19W QVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2du aXplZCBvYmplY3QgdHlwZTogJWQiLCBvYmp0eXBlKTsKIAkJCS8qIG5vdCByZWFjaGVkLCBidXQg a2VlcCBjb21waWxlciBxdWlldCAqLwpAQCAtNTM1LDYgKzUzOSwxMCBAQCBFeGVjdXRlR3JhbnRT dG10KEdyYW50U3RtdCAqc3RtdCkKIAkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNf UEFSQU1FVEVSX0FDTDsKIAkJCWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZp bGVnZSB0eXBlICVzIGZvciBwYXJhbWV0ZXIiKTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9W QVJJQUJMRToKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJ CQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9S LCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJIChpbnQpIHN0bXQt Pm9ianR5cGUpOwpAQCAtNjQwLDYgKzY0OCw5IEBAIEV4ZWNHcmFudFN0bXRfb2lkcyhJbnRlcm5h bEdyYW50ICppc3RtdCkKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJCUV4ZWNHcmFu dF9QYXJhbWV0ZXIoaXN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgor CQkJRXhlY0dyYW50X2NvbW1vbihpc3RtdCwgVmFyaWFibGVSZWxhdGlvbklkLCBBQ0xfQUxMX1JJ R0hUU19WQVJJQUJMRSwgTlVMTCk7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJS T1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgaXN0 bXQtPm9ianR5cGUpOwpAQCAtNzYwLDYgKzc3MSwxOCBAQCBvYmplY3ROYW1lc1RvT2lkcyhPYmpl Y3RUeXBlIG9ianR5cGUsIExpc3QgKm9iam5hbWVzLCBib29sIGlzX2dyYW50KQogCQkJCQlvYmpl Y3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywgcGFyYW1ldGVySWQpOwogCQkJfQogCQkJYnJlYWs7 CisKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlmb3JlYWNoX25vZGUoUmFuZ2VWYXIsIHZh cnZhciwgb2JqbmFtZXMpCisJCQl7CisJCQkJT2lkCQkJcmVsT2lkOworCisJCQkJcmVsT2lkID0g TG9va3VwVmFyaWFibGUodmFydmFyLT5zY2hlbWFuYW1lLAorCQkJCQkJCQkJCXZhcnZhci0+cmVs bmFtZSwKKwkJCQkJCQkJCQlmYWxzZSk7CisJCQkJb2JqZWN0cyA9IGxhcHBlbmRfb2lkKG9iamVj dHMsIHJlbE9pZCk7CisJCQl9CisJCQlicmVhazsKIAl9CiAKIAlyZXR1cm4gb2JqZWN0czsKQEAg LTg0Niw2ICs4NjksMzIgQEAgb2JqZWN0c0luU2NoZW1hVG9PaWRzKE9iamVjdFR5cGUgb2JqdHlw ZSwgTGlzdCAqbnNwbmFtZXMpCiAJCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2Nr KTsKIAkJCQl9CiAJCQkJYnJlYWs7CisJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCQl7CisJ CQkJCVNjYW5LZXlEYXRhIGtleTsKKwkJCQkJUmVsYXRpb24JcmVsOworCQkJCQlUYWJsZVNjYW5E ZXNjIHNjYW47CisJCQkJCUhlYXBUdXBsZQl0dXBsZTsKKworCQkJCQlTY2FuS2V5SW5pdCgma2V5 LAorCQkJCQkJCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVzcGFjZSwKKwkJCQkJCQkJQlRFcXVh bFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKG5hbWVz cGFjZUlkKSk7CisKKwkJCQkJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIEFj Y2Vzc1NoYXJlTG9jayk7CisJCQkJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fY2F0YWxvZyhyZWws IDEsICZrZXkpOworCisJCQkJCXdoaWxlICgodHVwbGUgPSBoZWFwX2dldG5leHQoc2NhbiwgRm9y d2FyZFNjYW5EaXJlY3Rpb24pKSAhPSBOVUxMKQorCQkJCQl7CisJCQkJCQlPaWQJCQlvaWQgPSAo KEZvcm1fcGdfcHJvYykgR0VUU1RSVUNUKHR1cGxlKSktPm9pZDsKKworCQkJCQkJb2JqZWN0cyA9 IGxhcHBlbmRfb2lkKG9iamVjdHMsIG9pZCk7CisJCQkJCX0KKworCQkJCQl0YWJsZV9lbmRzY2Fu KHNjYW4pOworCQkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJfQor CQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBzaG91bGQgbm90IGhhcHBlbiAqLwogCQkJ CWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKQEAgLTEw MDUsNiArMTA1NCwxMCBAQCBFeGVjQWx0ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBbHRlckRlZmF1bHRQcml2aWxlZ2VzU3RtdCAqcwogCQkJYWxsX3ByaXZpbGVn ZXMgPSBBQ0xfQUxMX1JJR0hUU19TQ0hFTUE7CiAJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgi aW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Igc2NoZW1hIik7CiAJCQlicmVhazsKKwkJY2Fz ZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZB UklBQkxFOworCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5 cGUgJXMgZm9yIHNlc3Npb24gdmFyaWFibGUiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJ ZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAo aW50KSBhY3Rpb24tPm9ianR5cGUpOwpAQCAtMTE5Niw2ICsxMjQ5LDEyIEBAIFNldERlZmF1bHRB Q0woSW50ZXJuYWxEZWZhdWx0QUNMICppYWNscykKIAkJCQl0aGlzX3ByaXZpbGVnZXMgPSBBQ0xf QUxMX1JJR0hUU19TQ0hFTUE7CiAJCQlicmVhazsKIAorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToK KwkJCW9ianR5cGUgPSBERUZBQ0xPQkpfVkFSSUFCTEU7CisJCQlpZiAoaWFjbHMtPmFsbF9wcml2 cyAmJiB0aGlzX3ByaXZpbGVnZXMgPT0gQUNMX05PX1JJR0hUUykKKwkJCQl0aGlzX3ByaXZpbGVn ZXMgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJ CQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsCiAJCQkJIChpbnQp IGlhY2xzLT5vYmp0eXBlKTsKQEAgLTE0MzksNiArMTQ5OCw5IEBAIFJlbW92ZVJvbGVGcm9tT2Jq ZWN0QUNMKE9pZCByb2xlaWQsIE9pZCBjbGFzc2lkLCBPaWQgb2JqaWQpCiAJCQljYXNlIERFRkFD TE9CSl9OQU1FU1BBQ0U6CiAJCQkJaWFjbHMub2JqdHlwZSA9IE9CSkVDVF9TQ0hFTUE7CiAJCQkJ YnJlYWs7CisJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCQlpYWNscy5vYmp0eXBlID0g T0JKRUNUX1ZBUklBQkxFOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBTaG91bGRu J3QgZ2V0IGhlcmUgKi8KIAkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBkZWZhdWx0IEFDTCB0 eXBlOiAlZCIsCkBAIC0xNDk5LDYgKzE1NjEsOSBAQCBSZW1vdmVSb2xlRnJvbU9iamVjdEFDTChP aWQgcm9sZWlkLCBPaWQgY2xhc3NpZCwgT2lkIG9iamlkKQogCQkJY2FzZSBQYXJhbWV0ZXJBY2xS ZWxhdGlvbklkOgogCQkJCWlzdG10Lm9ianR5cGUgPSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDsKIAkJ CQlicmVhazsKKwkJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJCWlzdG10Lm9ianR5cGUg PSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCWVsb2coRVJS T1IsICJ1bmV4cGVjdGVkIG9iamVjdCBjbGFzcyAldSIsIGNsYXNzaWQpOwogCQkJCWJyZWFrOwpA QCAtMjczMiw2ICsyNzk3LDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2Jq ZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJCQkJbXNnID0gZ2V0 dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgdHlwZSAlcyIpOwogCQkJCQkJYnJlYWs7 CisJCQkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAlcyIpOworCQkJCQkJYnJlYWs7 CiAJCQkJCWNhc2UgT0JKRUNUX1ZJRVc6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBlcm1p c3Npb24gZGVuaWVkIGZvciB2aWV3ICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTI4NDMsNiArMjkx MSw5IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlw ZSwKIAkJCQkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVz dCBiZSBvd25lciBvZiB0eXBlICVzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1Rf VkFSSUFCTEU6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2Ygc2Vz c2lvbiB2YXJpYWJsZSAlcyIpOworCQkJCQkJYnJlYWs7CiAJCQkJCWNhc2UgT0JKRUNUX1ZJRVc6 CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2YgdmlldyAlcyIpOwog CQkJCQkJYnJlYWs7CkBAIC0yOTkxLDYgKzMwNjIsOCBAQCBwZ19hY2xtYXNrKE9iamVjdFR5cGUg b2JqdHlwZSwgT2lkIG9iamVjdF9vaWQsIEF0dHJOdW1iZXIgYXR0bnVtLCBPaWQgcm9sZWlkLAog CQkJcmV0dXJuIEFDTF9OT19SSUdIVFM7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1cm4g b2JqZWN0X2FjbG1hc2soVHlwZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVpZCwgbWFzaywg aG93KTsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gb2JqZWN0X2FjbG1hc2so VmFyaWFibGVSZWxhdGlvbklkLCBvYmplY3Rfb2lkLCByb2xlaWQsIG1hc2ssIGhvdyk7CiAJCWRl ZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsCiAJ CQkJIChpbnQpIG9ianR5cGUpOwpAQCAtNDI1MCw2ICs0MzIzLDEwIEBAIGdldF91c2VyX2RlZmF1 bHRfYWNsKE9iamVjdFR5cGUgb2JqdHlwZSwgT2lkIG93bmVySWQsIE9pZCBuc3Bfb2lkKQogCQkJ ZGVmYWNsb2JqdHlwZSA9IERFRkFDTE9CSl9OQU1FU1BBQ0U7CiAJCQlicmVhazsKIAorCQljYXNl IE9CSkVDVF9WQVJJQUJMRToKKwkJCWRlZmFjbG9ianR5cGUgPSBERUZBQ0xPQkpfVkFSSUFCTEU7 CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJcmV0dXJuIE5VTEw7CiAJfQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L2RlcGVuZGVuY3kuYwppbmRleCAxODMxNmEzOTY4Li45ZTBmNjQ4Yjc0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L2RlcGVuZGVuY3kuYwpAQCAtNjUsMTIgKzY1LDE0IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 c190ZW1wbGF0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5o IgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbW1lbnQuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZy ZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvZXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcG9saWN5LmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2NoZW1h Y21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlY2xhYmVsLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvc2VxdWVuY2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCkBAIC0xNDQ0LDYg KzE0NDYsMTAgQEAgZG9EZWxldGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGludCBm bGFncykKIAkJCVJlbW92ZVB1YmxpY2F0aW9uQnlJZChvYmplY3QtPm9iamVjdElkKTsKIAkJCWJy ZWFrOwogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJRHJvcFZhcmlhYmxlQnlJZChv YmplY3QtPm9iamVjdElkKTsKKwkJCWJyZWFrOworCiAJCWNhc2UgQ2FzdFJlbGF0aW9uSWQ6CiAJ CWNhc2UgQ29sbGF0aW9uUmVsYXRpb25JZDoKIAkJY2FzZSBDb252ZXJzaW9uUmVsYXRpb25JZDoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL21lc29uLmJ1aWxkCmluZGV4IDE5NThlYTkyMzguLmVkNDRjODc3ZmMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9tZXNvbi5idWlsZApAQCAtMzIsNiArMzIsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0g ZmlsZXMoCiAgICdwZ19zaGRlcGVuZC5jJywKICAgJ3BnX3N1YnNjcmlwdGlvbi5jJywKICAgJ3Bn X3R5cGUuYycsCisgICdwZ192YXJpYWJsZS5jJywKICAgJ3N0b3JhZ2UuYycsCiAgICd0b2FzdGlu Zy5jJywKICkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9z cmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IGQ5N2Q2MzJhN2UuLjQzMDdjYWQx NWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHNfcGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0 ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAi Y29tbW9uL2hhc2hmbl91bnN0YWJsZS5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTIyNSw2 ICsyMjYsNyBAQCBzdGF0aWMgYm9vbCBUU1BhcnNlcklzVmlzaWJsZUV4dChPaWQgcHJzSWQsIGJv b2wgKmlzX21pc3NpbmcpOwogc3RhdGljIGJvb2wgVFNEaWN0aW9uYXJ5SXNWaXNpYmxlRXh0KE9p ZCBkaWN0SWQsIGJvb2wgKmlzX21pc3NpbmcpOwogc3RhdGljIGJvb2wgVFNUZW1wbGF0ZUlzVmlz aWJsZUV4dChPaWQgdG1wbElkLCBib29sICppc19taXNzaW5nKTsKIHN0YXRpYyBib29sIFRTQ29u ZmlnSXNWaXNpYmxlRXh0KE9pZCBjZmdpZCwgYm9vbCAqaXNfbWlzc2luZyk7CitzdGF0aWMgYm9v bCBWYXJpYWJsZUlzVmlzaWJsZUV4dChPaWQgdmFyaWQsIGJvb2wgKmlzX21pc3NpbmcpOwogc3Rh dGljIHZvaWQgcmVjb21wdXRlTmFtZXNwYWNlUGF0aCh2b2lkKTsKIHN0YXRpYyB2b2lkIEFjY2Vz c1RlbXBUYWJsZU5hbWVzcGFjZShib29sIGZvcmNlKTsKIHN0YXRpYyB2b2lkIEluaXRUZW1wVGFi bGVOYW1lc3BhY2Uodm9pZCk7CkBAIC05ODYsNiArOTg4LDg0IEBAIFJlbGF0aW9uSXNWaXNpYmxl RXh0KE9pZCByZWxpZCwgYm9vbCAqaXNfbWlzc2luZykKIAlyZXR1cm4gdmlzaWJsZTsKIH0KIAor LyoKKyAqIFZhcmlhYmxlSXNWaXNpYmxlCisgKgkJRGV0ZXJtaW5lIHdoZXRoZXIgYSB2YXJpYWJs ZSAoaWRlbnRpZmllZCBieSBPSUQpIGlzIHZpc2libGUgaW4gdGhlCisgKgkJY3VycmVudCBzZWFy Y2ggcGF0aC4gVmlzaWJsZSBtZWFucyAid291bGQgYmUgZm91bmQgYnkgc2VhcmNoaW5nCisgKgkJ Zm9yIHRoZSB1bnF1YWxpZmllZCB2YXJpYWJsZSBuYW1lIi4KKyAqLworYm9vbAorVmFyaWFibGVJ c1Zpc2libGUoT2lkIHZhcmlkKQoreworCXJldHVybiBWYXJpYWJsZUlzVmlzaWJsZUV4dCh2YXJp ZCwgTlVMTCk7Cit9CisKKy8qCisgKiBWYXJpYWJsZUlzVmlzaWJsZUV4dAorICoJCUFzIGFib3Zl LCBidXQgaWYgdGhlIHZhcmlhYmxlIGlzbid0IGZvdW5kIGFuZCBpc19taXNzaW5nIGlzIG5vdCBO VUxMLAorICoJCXRoZW4gc2V0ICppc19taXNzaW5nID0gdHJ1ZSBhbmQgcmV0dXJuIGZhbHNlLCBp bnN0ZWFkIG9mIHRocm93aW5nCisgKgkJYW4gZXJyb3IuIChDYWxsZXIgbXVzdCBpbml0aWFsaXpl ICppc19taXNzaW5nID0gZmFsc2UuKQorICovCitzdGF0aWMgYm9vbAorVmFyaWFibGVJc1Zpc2li bGVFeHQoT2lkIHZhcmlkLCBib29sICppc19taXNzaW5nKQoreworCUhlYXBUdXBsZQl2YXJ0dXA7 CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCU9pZAkJCXZhcm5hbWVzcGFjZTsKKwlib29s CQl2aXNpYmxlOworCisJdmFydHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmpl Y3RJZEdldERhdHVtKHZhcmlkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHZhcnR1cCkpCisJ eworCQlpZiAoaXNfbWlzc2luZyAhPSBOVUxMKQorCQl7CisJCQkqaXNfbWlzc2luZyA9IHRydWU7 CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKworCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZh aWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKwl9CisJdmFyZm9ybSA9IChG b3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodmFydHVwKTsKKworCXJlY29tcHV0ZU5hbWVzcGFj ZVBhdGgoKTsKKworCS8qCisJICogUXVpY2sgY2hlY2s6IGlmIGl0IGFpbid0IGluIHRoZSBwYXRo IGF0IGFsbCwgaXQgYWluJ3QgdmlzaWJsZS4gV2UKKwkgKiBkb24ndCBleHBlY3QgdXNhZ2Ugb2Yg c2Vzc2lvbiB2YXJpYWJsZXMgaW4gdGhlIHN5c3RlbSBuYW1lc3BhY2UuCisJICovCisJdmFybmFt ZXNwYWNlID0gdmFyZm9ybS0+dmFybmFtZXNwYWNlOworCWlmICghbGlzdF9tZW1iZXJfb2lkKGFj dGl2ZVNlYXJjaFBhdGgsIHZhcm5hbWVzcGFjZSkpCisJCXZpc2libGUgPSBmYWxzZTsKKwllbHNl CisJeworCQkvKgorCQkgKiBJZiBpdCBpcyBpbiB0aGUgcGF0aCwgaXQgbWlnaHQgc3RpbGwgbm90 IGJlIHZpc2libGU7IGl0IGNvdWxkIGJlCisJCSAqIGhpZGRlbiBieSBhbm90aGVyIHZhcmlhYmxl IG9mIHRoZSBzYW1lIG5hbWUgZWFybGllciBpbiB0aGUgcGF0aC4gU28KKwkJICogd2UgbXVzdCBk byBhIHNsb3cgY2hlY2sgZm9yIGNvbmZsaWN0aW5nIHJlbGF0aW9ucy4KKwkJICovCisJCWNoYXIJ ICAgKnZhcm5hbWUgPSBOYW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCisJCXZpc2libGUgPSBm YWxzZTsKKwkJZm9yZWFjaF9vaWQobmFtZXNwYWNlSWQsIGFjdGl2ZVNlYXJjaFBhdGgpCisJCXsK KwkJCWlmIChuYW1lc3BhY2VJZCA9PSB2YXJuYW1lc3BhY2UpCisJCQl7CisJCQkJLyogZm91bmQg aXQgZmlyc3QgaW4gcGF0aCAqLworCQkJCXZpc2libGUgPSB0cnVlOworCQkJCWJyZWFrOworCQkJ fQorCQkJaWYgKE9pZElzVmFsaWQoZ2V0X3Zhcm5hbWVfdmFyaWQodmFybmFtZSwgbmFtZXNwYWNl SWQpKSkKKwkJCXsKKwkJCQkvKiBmb3VuZCBzb21ldGhpbmcgZWxzZSBmaXJzdCBpbiBwYXRoICov CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9CisKKwlSZWxlYXNlU3lzQ2FjaGUodmFydHVwKTsK KworCXJldHVybiB2aXNpYmxlOworfQogCiAvKgogICogVHlwZW5hbWVHZXRUeXBpZApAQCAtMzI4 OSw2ICszMzY5LDEzMyBAQCBUU0NvbmZpZ0lzVmlzaWJsZUV4dChPaWQgY2ZnaWQsIGJvb2wgKmlz X21pc3NpbmcpCiAJcmV0dXJuIHZpc2libGU7CiB9CiAKKy8qCisgKiBSZXR1cm5zIG9pZCBvZiBz ZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBwb3NzaWJseSBxdWFsaWZpZWQgaWRlbnRpZmll ci4KKyAqCisgKiBJZiBub3QgZm91bmQsIHJldHVybnMgSW52YWxpZE9pZCBpZiBtaXNzaW5nX29r LCBlbHNlIHRocm93cyBlcnJvci4KKyAqLworT2lkCitMb29rdXBWYXJpYWJsZShjb25zdCBjaGFy ICpuc3BuYW1lLAorCQkJICAgY29uc3QgY2hhciAqdmFybmFtZSwKKwkJCSAgIGJvb2wgbWlzc2lu Z19vaykKK3sKKwlPaWQJCQl2YXJvaWQgPSBJbnZhbGlkT2lkOworCisJaWYgKG5zcG5hbWUpCisJ eworCQlPaWQgbmFtZXNwYWNlSWQgPSBMb29rdXBFeHBsaWNpdE5hbWVzcGFjZShuc3BuYW1lLCBt aXNzaW5nX29rKTsKKworCQkvKiBpZiBuc3BuYW1lIGlzIGEga25vd24gbmFtZXNwYWNlLCB0aGUg dmFyaWFibGUgbXVzdCBiZSB0aGVyZSAqLworCQlpZiAoT2lkSXNWYWxpZChuYW1lc3BhY2VJZCkp CisJCXsKKwkJCXZhcm9pZCA9IEdldFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVOU1AsIEFudW1f cGdfdmFyaWFibGVfb2lkLAorCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bSh2YXJuYW1lKSwKKwkJ CQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7CisJCX0KKwl9CisJZWxzZQor CXsKKwkJLyogaXRlcmF0ZSBvdmVyIHRoZSBzY2hlbWFzIG9uIHRoZSBzZWFyY2hfcGF0aCAqLwor CQlyZWNvbXB1dGVOYW1lc3BhY2VQYXRoKCk7CisKKwkJZm9yZWFjaF9vaWQobmFtZXNwYWNlSWQs IGFjdGl2ZVNlYXJjaFBhdGgpCisJCXsKKwkJCXZhcm9pZCA9IEdldFN5c0NhY2hlT2lkMihWQVJJ QUJMRU5BTUVOU1AsIEFudW1fcGdfdmFyaWFibGVfb2lkLAorCQkJCQkJCQkJIFBvaW50ZXJHZXRE YXR1bSh2YXJuYW1lKSwKKwkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7 CisKKwkJCWlmIChPaWRJc1ZhbGlkKHZhcm9pZCkpCisJCQkJYnJlYWs7CisJCX0KKwl9CisKKwlp ZiAoIU9pZElzVmFsaWQodmFyb2lkKSAmJiAhbWlzc2luZ19vaykKKwl7CisJCWlmIChuc3BuYW1l KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JK RUNUKSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgZG9lcyBub3Qg ZXhpc3QiLAorCQkJCQkJCW5zcG5hbWUsIHZhcm5hbWUpKSk7CisJCWVsc2UKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCSBl cnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQl2 YXJuYW1lKSkpOworCX0KKworCXJldHVybiB2YXJvaWQ7Cit9CisKKy8qCisgKiBSZXR1cm5zIG9p ZCBvZiBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBwb3NzaWJseSBxdWFsaWZpZWQgaWRl bnRpZmllcgorICoKKyAqIElmIG5vdCBmb3VuZCwgcmV0dXJucyBJbnZhbGlkT2lkIGlmIG1pc3Np bmdfb2ssIGVsc2UgdGhyb3dzIGVycm9yLgorICovCitPaWQKK0xvb2t1cFZhcmlhYmxlRnJvbU5h bWVMaXN0KExpc3QgKm5hbWVzLAorCQkJCQkJICAgYm9vbCBtaXNzaW5nX29rKQoreworCWNoYXIJ ICAgKmNhdG5hbWUgPSBOVUxMOworCWNoYXIJICAgKm5zcG5hbWUgPSBOVUxMOworCWNoYXIJICAg KnZhcm5hbWUgPSBOVUxMOworCisJc3dpdGNoIChsaXN0X2xlbmd0aChuYW1lcykpCisJeworCQlj YXNlIDE6CisJCQl2YXJuYW1lID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7CisJCQlicmVhazsK KwkJY2FzZSAyOgorCQkJbnNwbmFtZSA9IHN0clZhbChsaW5pdGlhbChuYW1lcykpOworCQkJdmFy bmFtZSA9IHN0clZhbChsc2Vjb25kKG5hbWVzKSk7CisJCQlicmVhazsKKwkJY2FzZSAzOgorCQkJ Y2F0bmFtZSA9IHN0clZhbChsaW5pdGlhbChuYW1lcykpOworCQkJbnNwbmFtZSA9IHN0clZhbChs c2Vjb25kKG5hbWVzKSk7CisJCQl2YXJuYW1lID0gc3RyVmFsKGx0aGlyZChuYW1lcykpOworCisJ CQkvKiBjaGVjayBjYXRhbG9nIG5hbWUgKi8KKwkJCWlmIChzdHJjbXAoY2F0bmFtZSwgZ2V0X2Rh dGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSkgIT0gMCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1z ZygiY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAlcyIsCisJ CQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6 CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiks CisJCQkJCSBlcnJtc2coImltcHJvcGVyIHNlc3Npb24gdmFyaWFibGUgbmFtZSAodG9vIG1hbnkg ZG90dGVkIG5hbWVzKTogJXMiLAorCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOwor CQkJYnJlYWs7CisJfQorCisJcmV0dXJuIExvb2t1cFZhcmlhYmxlKG5zcG5hbWUsIHZhcm5hbWUs IG1pc3Npbmdfb2spOworfQorCisvKgorICogVGhlIGlucHV0IGxpc3QgY29udGFpbnMgbmFtZXMg d2l0aCBpbmRpcmVjdGlvbiBleHByZXNzaW9ucyB1c2VkIGFzIHRoZSBsZWZ0CisgKiBwYXJ0IG9m IExFVCBzdGF0ZW1lbnQuIFRoZSBmb2xsb3dpbmcgcm91dGluZSByZXR1cm5zIGEgbmV3IGxpc3Qg d2l0aCBvbmx5CisgKiBpbml0aWFsIHN0cmluZ3MgKG5hbWVzKSAtIHdpdGhvdXQgaW5kaXJlY3Rp b24gZXhwcmVzc2lvbnMuCisgKi8KK0xpc3QgKgorTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcykK K3sKKwlMaXN0Q2VsbCAgICpsOworCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKworCWZvcmVhY2go bCwgbmFtZXMpCisJeworCQlOb2RlCSAgICpuID0gbGZpcnN0KGwpOworCisJCWlmIChJc0Eobiwg U3RyaW5nKSkKKwkJeworCQkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG4pOworCQl9CisJCWVs c2UKKwkJCWJyZWFrOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CiAKIC8qCiAgKiBEZWNvbnN0 cnVjdFF1YWxpZmllZE5hbWUKQEAgLTUwODUsMyArNTI5MiwxNyBAQCBwZ19pc19vdGhlcl90ZW1w X3NjaGVtYShQR19GVU5DVElPTl9BUkdTKQogCiAJUEdfUkVUVVJOX0JPT0woaXNPdGhlclRlbXBO YW1lc3BhY2Uob2lkKSk7CiB9CisKK0RhdHVtCitwZ192YXJpYWJsZV9pc192aXNpYmxlKFBHX0ZV TkNUSU9OX0FSR1MpCit7CisJT2lkCQkJb2lkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlib29sCQly ZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2luZyA9IGZhbHNlOworCisJcmVzdWx0ID0gVmFyaWFibGVJ c1Zpc2libGVFeHQob2lkLCAmaXNfbWlzc2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdf UkVUVVJOX05VTEwoKTsKKwlQR19SRVRVUk5fQk9PTChyZXN1bHQpOworfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L29iamVjdGFkZHJlc3MuYwppbmRleCBkOGViOGQzZGVhLi40YTQ2NGRmZWE3IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL29iamVjdGFkZHJlc3MuYwpAQCAtNjIsNiArNjIsNyBAQAogI2luY2x1ZGUgImNhdGFs b2cvcGdfdHNfdGVtcGxhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3VzZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFy aWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgpAQCAt NjM2LDYgKzYzNywyMCBAQCBzdGF0aWMgY29uc3QgT2JqZWN0UHJvcGVydHlUeXBlIE9iamVjdFBy b3BlcnR5W10gPQogCQlPQkpFQ1RfVVNFUl9NQVBQSU5HLAogCQlmYWxzZQogCX0sCisJeworCQki c2Vzc2lvbiB2YXJpYWJsZSIsCisJCVZhcmlhYmxlUmVsYXRpb25JZCwKKwkJVmFyaWFibGVPaWRJ bmRleElkLAorCQlWQVJJQUJMRU9JRCwKKwkJVkFSSUFCTEVOQU1FTlNQLAorCQlBbnVtX3BnX3Zh cmlhYmxlX29pZCwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJuYW1lLAorCQlBbnVtX3BnX3Zhcmlh YmxlX3Zhcm5hbWVzcGFjZSwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJvd25lciwKKwkJQW51bV9w Z192YXJpYWJsZV92YXJhY2wsCisJCU9CSkVDVF9WQVJJQUJMRSwKKwkJdHJ1ZQorCX0KIH07CiAK IC8qCkBAIC04MzEsNiArODQ2LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvYmplY3RfdHlwZV9t YXAKIAl9LAogCXsKIAkJInN0YXRpc3RpY3Mgb2JqZWN0IiwgT0JKRUNUX1NUQVRJU1RJQ19FWFQK Kwl9LAorCXsKKwkJInNlc3Npb24gdmFyaWFibGUiLCBPQkpFQ1RfVkFSSUFCTEUKIAl9CiB9Owog CkBAIC04NTYsNiArODc0LDcgQEAgc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRy ZXNzX2F0dHJkZWYoT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQkJCQkJCQkJYm9vbCBtaXNzaW5n X29rKTsKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc190eXBlKE9iamVj dFR5cGUgb2JqdHlwZSwKIAkJCQkJCQkJCQkJIFR5cGVOYW1lICp0eXBlbmFtZSwgYm9vbCBtaXNz aW5nX29rKTsKK3N0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc192YXJpYWJs ZShMaXN0ICpvYmplY3QsIGJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBn ZXRfb2JqZWN0X2FkZHJlc3Nfb3BjZihPYmplY3RUeXBlIG9ianR5cGUsIExpc3QgKm9iamVjdCwK IAkJCQkJCQkJCQkJIGJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRf b2JqZWN0X2FkZHJlc3Nfb3BmX21lbWJlcihPYmplY3RUeXBlIG9ianR5cGUsCkBAIC0xMTI3LDYg KzExNDYsOSBAQCBnZXRfb2JqZWN0X2FkZHJlc3MoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpv YmplY3QsCiAJCQkJCQkJCQkJCQkJCQkgbWlzc2luZ19vayk7CiAJCQkJYWRkcmVzcy5vYmplY3RT dWJJZCA9IDA7CiAJCQkJYnJlYWs7CisJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCQlhZGRy ZXNzID0gZ2V0X29iamVjdF9hZGRyZXNzX3ZhcmlhYmxlKGNhc3ROb2RlKExpc3QsIG9iamVjdCks IG1pc3Npbmdfb2spOworCQkJCWJyZWFrOwogCQkJCS8qIG5vIGRlZmF1bHQsIHRvIGxldCBjb21w aWxlciB3YXJuIGFib3V0IG1pc3NpbmcgY2FzZSAqLwogCQl9CiAKQEAgLTIwMDUsMTYgKzIwMjcs MjAgQEAgZ2V0X29iamVjdF9hZGRyZXNzX2RlZmFjbChMaXN0ICpvYmplY3QsIGJvb2wgbWlzc2lu Z19vaykKIAkJY2FzZSBERUZBQ0xPQkpfTkFNRVNQQUNFOgogCQkJb2JqdHlwZV9zdHIgPSAic2No ZW1hcyI7CiAJCQlicmVhazsKKwkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQlvYmp0eXBl X3N0ciA9ICJ2YXJpYWJsZXMiOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllcmVwb3J0KEVS Uk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJ CQkJIGVycm1zZygidW5yZWNvZ25pemVkIGRlZmF1bHQgQUNMIG9iamVjdCB0eXBlIFwiJWNcIiIs IG9ianR5cGUpLAotCQkJCQkgZXJyaGludCgiVmFsaWQgb2JqZWN0IHR5cGVzIGFyZSBcIiVjXCIs IFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIi4iLAorCQkJCQkgZXJyaGludCgiVmFsaWQg b2JqZWN0IHR5cGVzIGFyZSBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwg XCIlY1wiLiIsCiAJCQkJCQkJIERFRkFDTE9CSl9SRUxBVElPTiwKIAkJCQkJCQkgREVGQUNMT0JK X1NFUVVFTkNFLAogCQkJCQkJCSBERUZBQ0xPQkpfRlVOQ1RJT04sCiAJCQkJCQkJIERFRkFDTE9C Sl9UWVBFLAotCQkJCQkJCSBERUZBQ0xPQkpfTkFNRVNQQUNFKSkpOworCQkJCQkJCSBERUZBQ0xP QkpfTkFNRVNQQUNFLAorCQkJCQkJCSBERUZBQ0xPQkpfVkFSSUFCTEUpKSk7CiAJfQogCiAJLyoK QEAgLTIwOTgsNiArMjEyNCwyNCBAQCB0ZXh0YXJyYXlfdG9fc3RydmFsdWVsaXN0KEFycmF5VHlw ZSAqYXJyKQogCXJldHVybiBsaXN0OwogfQogCisvKgorICogRmluZCB0aGUgT2JqZWN0QWRkcmVz cyBmb3IgYSBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyBPYmplY3RBZGRyZXNzCitnZXRf b2JqZWN0X2FkZHJlc3NfdmFyaWFibGUoTGlzdCAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCit7 CisJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOworCWNoYXIJICAgKm5zcG5hbWUgPSBOVUxMOworCWNo YXIJICAgKnZhcm5hbWUgPSBOVUxMOworCisJT2JqZWN0QWRkcmVzc1NldChhZGRyZXNzLCBWYXJp YWJsZVJlbGF0aW9uSWQsIEludmFsaWRPaWQpOworCisJRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1l KG9iamVjdCwgJm5zcG5hbWUsICZ2YXJuYW1lKTsKKwlhZGRyZXNzLm9iamVjdElkID0gTG9va3Vw VmFyaWFibGUobnNwbmFtZSwgdmFybmFtZSwgbWlzc2luZ19vayk7CisKKwlyZXR1cm4gYWRkcmVz czsKK30KKwogLyoKICAqIFNRTC1jYWxsYWJsZSB2ZXJzaW9uIG9mIGdldF9vYmplY3RfYWRkcmVz cwogICovCkBAIC0yMjkyLDYgKzIzMzYsNyBAQCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoUEdfRlVO Q1RJT05fQVJHUykKIAkJY2FzZSBPQkpFQ1RfVEFCQ09OU1RSQUlOVDoKIAkJY2FzZSBPQkpFQ1Rf T1BDTEFTUzoKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxF OgogCQkJb2Jqbm9kZSA9IChOb2RlICopIG5hbWU7CiAJCQlicmVhazsKIAkJY2FzZSBPQkpFQ1Rf QUNDRVNTX01FVEhPRDoKQEAgLTI0NjMsNiArMjUwOCw3IEBAIGNoZWNrX29iamVjdF9vd25lcnNo aXAoT2lkIHJvbGVpZCwgT2JqZWN0VHlwZSBvYmp0eXBlLCBPYmplY3RBZGRyZXNzIGFkZHJlc3Ms CiAJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCWNhc2UgT0JKRUNUX1RTRElDVElPTkFS WToKIAkJY2FzZSBPQkpFQ1RfVFNDT05GSUdVUkFUSU9OOgorCQljYXNlIE9CSkVDVF9WQVJJQUJM RToKIAkJCWlmICghb2JqZWN0X293bmVyY2hlY2soYWRkcmVzcy5jbGFzc0lkLCBhZGRyZXNzLm9i amVjdElkLCByb2xlaWQpKQogCQkJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwg b2JqdHlwZSwKIAkJCQkJCQkgICBOYW1lTGlzdFRvU3RyaW5nKGNhc3ROb2RlKExpc3QsIG9iamVj dCkpKTsKQEAgLTM0OTIsNiArMzUzOCwzMiBAQCBnZXRPYmplY3REZXNjcmlwdGlvbihjb25zdCBP YmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCQlicmVhazsKIAkJCX0K IAorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCXsKKwkJCQljaGFyCSAgICpuc3BuYW1l OworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCisJ CQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKG9i amVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJCQkJ ZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUi LAorCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCisJCQkJdmFyZm9ybSA9IChGb3JtX3BnX3Zh cmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCQkJCWlmIChWYXJpYWJsZUlzVmlzaWJsZShvYmpl Y3QtPm9iamVjdElkKSkKKwkJCQkJbnNwbmFtZSA9IE5VTEw7CisJCQkJZWxzZQorCQkJCQluc3Bu YW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSk7CisKKwkJCQlh cHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsIF8oInNlc3Npb24gdmFyaWFibGUgJXMiKSwKKwkJCQkJ CQkJIHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKG5zcG5hbWUsCisJCQkJCQkJCQkJCQkJCQlO YW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsK KwkJCQlicmVhazsKKwkJCX0KKwogCQljYXNlIFRTUGFyc2VyUmVsYXRpb25JZDoKIAkJCXsKIAkJ CQlIZWFwVHVwbGUJdHVwOwpAQCAtMzg0NCw2ICszOTE2LDE2IEBAIGdldE9iamVjdERlc2NyaXB0 aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJCQkJ CQkJCSBfKCJkZWZhdWx0IHByaXZpbGVnZXMgb24gbmV3IHNjaGVtYXMgYmVsb25naW5nIHRvIHJv bGUgJXMiKSwKIAkJCQkJCQkJCQkgcm9sZW5hbWUpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2Ug REVGQUNMT0JKX1ZBUklBQkxFOgorCQkJCQkJaWYgKG5zcG5hbWUpCisJCQkJCQkJYXBwZW5kU3Ry aW5nSW5mbygmYnVmZmVyLAorCQkJCQkJCQkJCQkgXygiZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5l dyBzZXNzaW9uIHZhcmlhYmxlcyBiZWxvbmdpbmcgdG8gcm9sZSAlcyBpbiBzY2hlbWEgJXMiKSwK KwkJCQkJCQkJCQkJIHJvbGVuYW1lLCBuc3BuYW1lKTsKKwkJCQkJCWVsc2UKKwkJCQkJCQlhcHBl bmRTdHJpbmdJbmZvKCZidWZmZXIsCisJCQkJCQkJCQkJCSBfKCJkZWZhdWx0IHByaXZpbGVnZXMg b24gbmV3IHNlc3Npb24gdmFyaWFibGVzIGJlbG9uZ2luZyB0byByb2xlICVzIiksCisJCQkJCQkJ CQkJCSByb2xlbmFtZSk7CisJCQkJCQlicmVhazsKIAkJCQkJZGVmYXVsdDoKIAkJCQkJCS8qIHNo b3VsZG4ndCBnZXQgaGVyZSAqLwogCQkJCQkJaWYgKG5zcG5hbWUpCkBAIC00NjYwLDYgKzQ3NDIs MTAgQEAgZ2V0T2JqZWN0VHlwZURlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVj dCwgYm9vbCBtaXNzaW5nX29rKQogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAi dHJhbnNmb3JtIik7CiAJCQlicmVhazsKIAorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJ CWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgInNlc3Npb24gdmFyaWFibGUiKTsKKwkJ CWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0 IGNsYXNzOiAldSIsIG9iamVjdC0+Y2xhc3NJZCk7CiAJfQpAQCAtNTc2Niw2ICs1ODUyLDEwIEBA IGdldE9iamVjdElkZW50aXR5UGFydHMoY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJ CQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLAogCQkJCQkJCQkJCQkgICAiIG9uIHNj aGVtYXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJ CQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwKKwkJCQkJCQkJCQkJICAgIiBvbiBz ZXNzaW9uIHZhcmlhYmxlcyIpOworCQkJCQkJYnJlYWs7CiAJCQkJfQogCiAJCQkJaWYgKG9iam5h bWUpCkBAIC02MDA2LDYgKzYwOTYsMzMgQEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBP YmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFZhcmlhYmxl UmVsYXRpb25JZDoKKwkJCXsKKwkJCQljaGFyCSAgICpzY2hlbWE7CisJCQkJY2hhcgkgICAqdmFy bmFtZTsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsK KworCQkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1 bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJ CQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxl ICV1IiwKKwkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKworCQkJCXZhcmZvcm0gPSAoRm9ybV9w Z192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwkJCQlzY2hlbWEgPSBnZXRfbmFtZXNwYWNl X25hbWVfb3JfdGVtcCh2YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCQkJCXZhcm5hbWUgPSBOYW1l U3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCAi JXMiLAorCQkJCQkJCQkgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIoc2NoZW1hLCB2YXJuYW1l KSk7CisKKwkJCQlpZiAob2JqbmFtZSkKKwkJCQkJKm9iam5hbWUgPSBsaXN0X21ha2UyKHNjaGVt YSwgcHN0cmR1cCh2YXJuYW1lKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQli cmVhazsKKwkJCX0KKwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9i amVjdCBjbGFzczogJXUiLCBvYmplY3QtPmNsYXNzSWQpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hk ZXBlbmQuYwppbmRleCA1MzYxOTEyODRlLi5jNmZkMWZhMDc0IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3NoZGVwZW5kLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19z aGRlcGVuZC5jCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19kaWN0 LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ191 c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCkBAIC0xNzE0LDYgKzE3MTUsNyBAQCBzaGRlcFJl YXNzaWduT3duZWRfT3duZXIoRm9ybV9wZ19zaGRlcGVuZCBzZGVwRm9ybSwgT2lkIG5ld3JvbGUp CiAJCWNhc2UgRGF0YWJhc2VSZWxhdGlvbklkOgogCQljYXNlIFRTQ29uZmlnUmVsYXRpb25JZDoK IAkJY2FzZSBUU0RpY3Rpb25hcnlSZWxhdGlvbklkOgorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25J ZDoKIAkJCUFsdGVyT2JqZWN0T3duZXJfaW50ZXJuYWwoc2RlcEZvcm0tPmNsYXNzaWQsCiAJCQkJ CQkJCQkgIHNkZXBGb3JtLT5vYmppZCwKIAkJCQkJCQkJCSAgbmV3cm9sZSk7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX3ZhcmlhYmxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMjlk OTY3YTJkNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFi bGUuYwpAQCAtMCwwICsxLDI1MSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfdmFy aWFibGUuYworICoJCXNlc3Npb24gdmFyaWFibGVzCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0 IChjKSAxOTk2LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2Yg Q2FsaWZvcm5pYQorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkJc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ192YXJpYWJsZS5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUg InBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvaGVhcGFtLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9kZXBlbmRlbmN5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9pbmRleGluZy5oIgorI2luY2x1 ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3Mu aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cv cGdfbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2luY2x1 ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCisjaW5jbHVk ZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNs dWRlICJ1dGlscy9zeXNjYWNoZS5oIgorCitzdGF0aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFy aWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKKwkJCQkJCQkJCSBPaWQgdmFyTmFtZXNwYWNlLAor CQkJCQkJCQkJIE9pZCB2YXJUeXBlLAorCQkJCQkJCQkJIGludDMyIHZhclR5cG1vZCwKKwkJCQkJ CQkJCSBPaWQgdmFyT3duZXIsCisJCQkJCQkJCQkgT2lkIHZhckNvbGxhdGlvbiwKKwkJCQkJCQkJ CSBib29sIGlmX25vdF9leGlzdHMpOworCisKKy8qCisgKiBDcmVhdGVzIGVudHJ5IGluIHBnX3Zh cmlhYmxlIHRhYmxlCisgKi8KK3N0YXRpYyBPYmplY3RBZGRyZXNzCitjcmVhdGVfdmFyaWFibGUo Y29uc3QgY2hhciAqdmFyTmFtZSwKKwkJCQlPaWQgdmFyTmFtZXNwYWNlLAorCQkJCU9pZCB2YXJU eXBlLAorCQkJCWludDMyIHZhclR5cG1vZCwKKwkJCQlPaWQgdmFyT3duZXIsCisJCQkJT2lkIHZh ckNvbGxhdGlvbiwKKwkJCQlib29sIGlmX25vdF9leGlzdHMpCit7CisJQWNsCQkgICAqdmFyYWNs OworCU5hbWVEYXRhCXZhcm5hbWU7CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdfdmFyaWFibGVdOwor CURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfdmFyaWFibGVdOworCVJlbGF0aW9uCXJlbDsKKwlIZWFw VHVwbGUJdHVwOworCVR1cGxlRGVzYwl0dXBkZXNjOworCU9iamVjdEFkZHJlc3MgbXlzZWxmLAor CQkJCXJlZmVyZW5jZWQ7CisJT2JqZWN0QWRkcmVzc2VzICphZGRyczsKKwlPaWQJCQl2YXJpZDsK KworCUFzc2VydCh2YXJOYW1lKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJOYW1lc3BhY2UpKTsK KwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJUeXBlKSk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyT3du ZXIpKTsKKworCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklkLCBSb3dFeGNsdXNp dmVMb2NrKTsKKworCS8qCisJICogQ2hlY2sgZm9yIGR1cGxpY2F0ZXMuIE5vdGUgdGhhdCB0aGlz IGRvZXMgbm90IHJlYWxseSBwcmV2ZW50CisJICogZHVwbGljYXRlcywgaXQncyBoZXJlIGp1c3Qg dG8gcHJvdmlkZSBuaWNlciBlcnJvciBtZXNzYWdlIGluIGNvbW1vbgorCSAqIGNhc2UuIFRoZSBy ZWFsIHByb3RlY3Rpb24gaXMgdGhlIHVuaXF1ZSBrZXkgb24gdGhlIGNhdGFsb2cuCisJICovCisJ aWYgKFNlYXJjaFN5c0NhY2hlRXhpc3RzMihWQVJJQUJMRU5BTUVOU1AsCisJCQkJCQkJICBQb2lu dGVyR2V0RGF0dW0odmFyTmFtZSksCisJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHZhck5hbWVz cGFjZSkpKQorCXsKKwkJaWYgKGlmX25vdF9leGlzdHMpCisJCQllcmVwb3J0KE5PVElDRSwKKwkJ CQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygic2Vz c2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFkeSBleGlzdHMsIHNraXBwaW5nIiwKKwkJCQkJCQl2 YXJOYW1lKSkpOworCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwi JXNcIiBhbHJlYWR5IGV4aXN0cyIsCisJCQkJCQkJdmFyTmFtZSkpKTsKKworCQl0YWJsZV9jbG9z ZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJCXJldHVybiBJbnZhbGlkT2JqZWN0QWRkcmVz czsKKwl9CisKKwltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CisJbWVtc2V0KG51 bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CisKKwluYW1lc3RyY3B5KCZ2YXJuYW1lLCB2YXJO YW1lKTsKKworCXZhcmlkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgVmFyaWFibGVPaWRJbmRl eElkLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCk7CisKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV9v aWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyaWQpOworCXZhbHVlc1tBbnVtX3BnX3Zhcmlh YmxlX3Zhcm5hbWUgLSAxXSA9IE5hbWVHZXREYXR1bSgmdmFybmFtZSk7CisJdmFsdWVzW0FudW1f cGdfdmFyaWFibGVfdmFybmFtZXNwYWNlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck5hbWVz cGFjZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwZSAtIDFdID0gT2JqZWN0SWRH ZXREYXR1bSh2YXJUeXBlKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAx XSA9IEludDMyR2V0RGF0dW0odmFyVHlwbW9kKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CisJdmFsdWVzW0FudW1f cGdfdmFyaWFibGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxh dGlvbik7CisKKwl2YXJhY2wgPSBnZXRfdXNlcl9kZWZhdWx0X2FjbChPQkpFQ1RfVkFSSUFCTEUs IHZhck93bmVyLAorCQkJCQkJCQkgIHZhck5hbWVzcGFjZSk7CisJaWYgKHZhcmFjbCAhPSBOVUxM KQorCQl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJhY2wgLSAxXSA9IFBvaW50ZXJHZXREYXR1 bSh2YXJhY2wpOworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ192YXJpYWJsZV92YXJhY2wgLSAxXSA9 IHRydWU7CisKKwl0dXBkZXNjID0gUmVsYXRpb25HZXREZXNjcihyZWwpOworCisJdHVwID0gaGVh cF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUluc2Vy dChyZWwsIHR1cCk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyaWQpKTsKKworCWFkZHJzID0gbmV3 X29iamVjdF9hZGRyZXNzZXMoKTsKKworCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBWYXJpYWJs ZVJlbGF0aW9uSWQsIHZhcmlkKTsKKworCS8qIGRlcGVuZGVuY3kgb24gbmFtZXNwYWNlICovCisJ T2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBOYW1lc3BhY2VSZWxhdGlvbklkLCB2YXJOYW1l c3BhY2UpOworCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOwor CisJLyogZGVwZW5kZW5jeSBvbiB1c2VkIHR5cGUgKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVy ZW5jZWQsIFR5cGVSZWxhdGlvbklkLCB2YXJUeXBlKTsKKwlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJl c3MoJnJlZmVyZW5jZWQsIGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gY29sbGF0aW9uICov CisJaWYgKE9pZElzVmFsaWQodmFyQ29sbGF0aW9uKSAmJgorCQl2YXJDb2xsYXRpb24gIT0gREVG QVVMVF9DT0xMQVRJT05fT0lEKQorCXsKKwkJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBD b2xsYXRpb25SZWxhdGlvbklkLCB2YXJDb2xsYXRpb24pOworCQlhZGRfZXhhY3Rfb2JqZWN0X2Fk ZHJlc3MoJnJlZmVyZW5jZWQsIGFkZHJzKTsKKwl9CisKKwlyZWNvcmRfb2JqZWN0X2FkZHJlc3Nf ZGVwZW5kZW5jaWVzKCZteXNlbGYsIGFkZHJzLCBERVBFTkRFTkNZX05PUk1BTCk7CisJZnJlZV9v YmplY3RfYWRkcmVzc2VzKGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gb3duZXIgKi8KKwly ZWNvcmREZXBlbmRlbmN5T25Pd25lcihWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCB2YXJPd25l cik7CisKKwkvKiBkZXBlbmRlbmNpZXMgb24gcm9sZXMgbWVudGlvbmVkIGluIGRlZmF1bHQgQUNM ICovCisJcmVjb3JkRGVwZW5kZW5jeU9uTmV3QWNsKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQs IDAsIHZhck93bmVyLCB2YXJhY2wpOworCisJLyogZGVwZW5kZW5jeSBvbiBleHRlbnNpb24gKi8K KwlyZWNvcmREZXBlbmRlbmN5T25DdXJyZW50RXh0ZW5zaW9uKCZteXNlbGYsIGZhbHNlKTsKKwor CWhlYXBfZnJlZXR1cGxlKHR1cCk7CisKKwkvKiBwb3N0IGNyZWF0aW9uIGhvb2sgZm9yIG5ldyBm dW5jdGlvbiAqLworCUludm9rZU9iamVjdFBvc3RDcmVhdGVIb29rKFZhcmlhYmxlUmVsYXRpb25J ZCwgdmFyaWQsIDApOworCisJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwor CXJldHVybiBteXNlbGY7Cit9CisKKy8qCisgKiBDcmVhdGVzIGEgbmV3IHZhcmlhYmxlCisgKgor ICogVXNlZCBieSBDUkVBVEUgVkFSSUFCTEUgY29tbWFuZAorICovCitPYmplY3RBZGRyZXNzCitD cmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpz dG10KQoreworCU9pZAkJCW5hbWVzcGFjZWlkOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJT2lk CQkJdHlwaWQ7CisJaW50MzIJCXR5cG1vZDsKKwlPaWQJCQl2YXJvd25lciA9IEdldFVzZXJJZCgp OworCU9pZAkJCWNvbGxhdGlvbjsKKwlPaWQJCQl0eXBjb2xsYXRpb247CisJT2JqZWN0QWRkcmVz cyB2YXJpYWJsZTsKKworCW5hbWVzcGFjZWlkID0KKwkJUmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0 aW9uTmFtZXNwYWNlKHN0bXQtPnZhcmlhYmxlLCBOb0xvY2ssIE5VTEwpOworCisJdHlwZW5hbWVU eXBlSWRBbmRNb2QocHN0YXRlLCBzdG10LT50eXBlTmFtZSwgJnR5cGlkLCAmdHlwbW9kKTsKKwor CS8qIGRpc2FsbG93IHBzZXVkb3R5cGVzICovCisJaWYgKGdldF90eXB0eXBlKHR5cGlkKSA9PSBU WVBUWVBFX1BTRVVETykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dS T05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBi ZSBwc2V1ZG8tdHlwZSAlcyIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpKSk7CisKKwlh Y2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVHlwZVJlbGF0aW9uSWQsIHR5cGlkLCBHZXRVc2Vy SWQoKSwgQUNMX1VTQUdFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xj aGVja19lcnJvcl90eXBlKGFjbHJlc3VsdCwgdHlwaWQpOworCisJdHlwY29sbGF0aW9uID0gZ2V0 X3R5cGNvbGxhdGlvbih0eXBpZCk7CisKKwlpZiAoc3RtdC0+Y29sbENsYXVzZSkKKwkJY29sbGF0 aW9uID0gTG9va3VwQ29sbGF0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCXN0bXQtPmNvbGxDbGF1c2Ut PmNvbGxuYW1lLAorCQkJCQkJCQkJc3RtdC0+Y29sbENsYXVzZS0+bG9jYXRpb24pOworCWVsc2UK KwkJY29sbGF0aW9uID0gdHlwY29sbGF0aW9uOworCisJLyogY29tcGxhaW4gaWYgQ09MTEFURSBp cyBhcHBsaWVkIHRvIGFuIHVuY29sbGF0YWJsZSB0eXBlICovCisJaWYgKE9pZElzVmFsaWQoY29s bGF0aW9uKSAmJiAhT2lkSXNWYWxpZCh0eXBjb2xsYXRpb24pKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCSBlcnJtc2coImNv bGxhdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdHlwZSAlcyIsCisJCQkJCQlmb3JtYXRfdHlw ZV9iZSh0eXBpZCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5jb2xs Q2xhdXNlLT5sb2NhdGlvbikpKTsKKworCXZhcmlhYmxlID0gY3JlYXRlX3ZhcmlhYmxlKHN0bXQt PnZhcmlhYmxlLT5yZWxuYW1lLAorCQkJCQkJCSAgIG5hbWVzcGFjZWlkLAorCQkJCQkJCSAgIHR5 cGlkLAorCQkJCQkJCSAgIHR5cG1vZCwKKwkJCQkJCQkgICB2YXJvd25lciwKKwkJCQkJCQkgICBj b2xsYXRpb24sCisJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cyk7CisKKwllbG9nKERFQlVH MSwgInJlY29yZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgKG9pZDolZCkgd2FzIGNyZWF0 ZWQgaW4gcGdfdmFyaWFibGUiLAorCQkgc3RtdC0+dmFyaWFibGUtPnJlbG5hbWUsIHZhcmlhYmxl Lm9iamVjdElkKTsKKworCXJldHVybiB2YXJpYWJsZTsKK30KKworLyoKKyAqIERyb3AgdmFyaWFi bGUgYnkgT0lECisgKi8KK3ZvaWQKK0Ryb3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKQoreworCVJl bGF0aW9uCXJlbDsKKwlIZWFwVHVwbGUJdHVwOworCisJcmVsID0gdGFibGVfb3BlbihWYXJpYWJs ZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUx KFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBs ZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHZh cmlhYmxlICV1IiwgdmFyaWQpOworCisJQ2F0YWxvZ1R1cGxlRGVsZXRlKHJlbCwgJnR1cC0+dF9z ZWxmKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJdGFibGVfY2xvc2UocmVsLCBSb3dF eGNsdXNpdmVMb2NrKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVy LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCmluZGV4IDc4YzFkNGUxYjguLjY3MTUz Y2Q4YjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgImNh dGFsb2cvcGdfdHNfZGljdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfcGFyc2VyLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2NvbGxhdGlvbmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCkBA IC0xNDAsNiArMTQxLDEwIEBAIHJlcG9ydF9uYW1lc3BhY2VfY29uZmxpY3QoT2lkIGNsYXNzSWQs IGNvbnN0IGNoYXIgKm5hbWUsIE9pZCBuc3BPaWQpCiAJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BP aWQpKTsKIAkJCW1zZ2ZtdCA9IGdldHRleHRfbm9vcCgidGV4dCBzZWFyY2ggY29uZmlndXJhdGlv biBcIiVzXCIgYWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hIFwiJXNcIiIpOwogCQkJYnJlYWs7CisJ CWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJQXNzZXJ0KE9pZElzVmFsaWQobnNwT2lkKSk7 CisJCQltc2dmbXQgPSBnZXR0ZXh0X25vb3AoInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVh ZHkgZXhpc3RzIGluIHNjaGVtYSBcIiVzXCIiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJ ZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9iamVjdCBjbGFzczogJXUiLCBjbGFzc0lkKTsKIAkJ CWJyZWFrOwpAQCAtNDE5LDYgKzQyNCw3IEBAIEV4ZWNSZW5hbWVTdG10KFJlbmFtZVN0bXQgKnN0 bXQpCiAJCWNhc2UgT0JKRUNUX1RTVEVNUExBVEU6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9O OgogCQljYXNlIE9CSkVDVF9TVUJTQ1JJUFRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgog CQkJewogCQkJCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwpA QCAtNTU5LDYgKzU2NSw3IEBAIEV4ZWNBbHRlck9iamVjdFNjaGVtYVN0bXQoQWx0ZXJPYmplY3RT Y2hlbWFTdG10ICpzdG10LAogCQljYXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNhc2UgT0JK RUNUX1RTUEFSU0VSOgogCQljYXNlIE9CSkVDVF9UU1RFTVBMQVRFOgorCQljYXNlIE9CSkVDVF9W QVJJQUJMRToKIAkJCXsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwogCQkJCU9pZAkJCWNsYXNzSWQ7 CkBAIC02NDEsNiArNjQ4LDcgQEAgQWx0ZXJPYmplY3ROYW1lc3BhY2Vfb2lkKE9pZCBjbGFzc0lk LCBPaWQgb2JqaWQsIE9pZCBuc3BPaWQsCiAJCWNhc2UgVFNEaWN0aW9uYXJ5UmVsYXRpb25JZDoK IAkJY2FzZSBUU1RlbXBsYXRlUmVsYXRpb25JZDoKIAkJY2FzZSBUU0NvbmZpZ1JlbGF0aW9uSWQ6 CisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgogCQkJewogCQkJCVJlbGF0aW9uCWNhdGFsb2c7 CiAKQEAgLTg3MSw2ICs4NzksNyBAQCBFeGVjQWx0ZXJPd25lclN0bXQoQWx0ZXJPd25lclN0bXQg KnN0bXQpCiAJCWNhc2UgT0JKRUNUX1RBQkxFU1BBQ0U6CiAJCWNhc2UgT0JKRUNUX1RTRElDVElP TkFSWToKIAkJY2FzZSBPQkpFQ1RfVFNDT05GSUdVUkFUSU9OOgorCQljYXNlIE9CSkVDVF9WQVJJ QUJMRToKIAkJCXsKIAkJCQlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9w Y21kcy5jCmluZGV4IGNlYjlhMjI5YjYuLmViYjU4NWRjNGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNt ZHMuYwpAQCAtNDc2LDYgKzQ3NiwxMCBAQCBkb2VzX25vdF9leGlzdF9za2lwcGluZyhPYmplY3RU eXBlIG9ianR5cGUsIE5vZGUgKm9iamVjdCkKIAkJCW1zZyA9IGdldHRleHRfbm9vcCgicHVibGlj YXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZyIpOwogCQkJbmFtZSA9IHN0clZh bChvYmplY3QpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJbXNnID0g Z2V0dGV4dF9ub29wKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tp cHBpbmciKTsKKwkJCW5hbWUgPSBOYW1lTGlzdFRvU3RyaW5nKGNhc3ROb2RlKExpc3QsIG9iamVj dCkpOworCQkJYnJlYWs7CiAKIAkJY2FzZSBPQkpFQ1RfQ09MVU1OOgogCQljYXNlIE9CSkVDVF9E QVRBQkFTRToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYwppbmRleCBlZGMyYzk4OGUy Li4xODM5YzFmODJjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmln Z2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCkBAIC0yMTQ5 LDYgKzIxNDksOCBAQCBzdHJpbmdpZnlfZ3JhbnRfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUp CiAJCQlyZXR1cm4gIlRBQkxFU1BBQ0UiOwogCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJcmV0dXJu ICJUWVBFIjsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gIlZBUklBQkxFIjsK IAkJCS8qIHRoZXNlIGN1cnJlbnRseSBhcmVuJ3QgdXNlZCAqLwogCQljYXNlIE9CSkVDVF9BQ0NF U1NfTUVUSE9EOgogCQljYXNlIE9CSkVDVF9BR0dSRUdBVEU6CkBAIC0yMjMyLDYgKzIyMzQsOCBA QCBzdHJpbmdpZnlfYWRlZnByaXZzX29ianR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQkJcmV0 dXJuICJUQUJMRVNQQUNFUyI7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1cm4gIlRZUEVT IjsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gIlZBUklBQkxFUyI7CiAJCQkv KiB0aGVzZSBjdXJyZW50bHkgYXJlbid0IHVzZWQgKi8KIAkJY2FzZSBPQkpFQ1RfQUNDRVNTX01F VEhPRDoKIAkJY2FzZSBPQkpFQ1RfQUdHUkVHQVRFOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2VjbGFiZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKaW5k ZXggY2VlNWQ3YmJiOS4uNTdiNGU2NzE5YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2VjbGFiZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCkBAIC05 Miw2ICs5Miw3IEBAIFNlY0xhYmVsU3VwcG9ydHNPYmplY3RUeXBlKE9iamVjdFR5cGUgb2JqdHlw ZSkKIAkJY2FzZSBPQkpFQ1RfVFNQQVJTRVI6CiAJCWNhc2UgT0JKRUNUX1RTVEVNUExBVEU6CiAJ CWNhc2UgT0JKRUNUX1VTRVJfTUFQUElORzoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQly ZXR1cm4gZmFsc2U7CiAKIAkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IGQyNDIw YTk1NTguLmZiYzQzNmUwNGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC01Miw2ICs1 Miw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ190cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvc3RvcmFnZS5oIgog I2luY2x1ZGUgImNhdGFsb2cvc3RvcmFnZV94bG9nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy90b2Fz dGluZy5oIgpAQCAtNjgwNCw2ICs2ODA1LDcgQEAgQVRUeXBlZFRhYmxlUmVjdXJzaW9uKExpc3Qg Kip3cXVldWUsIFJlbGF0aW9uIHJlbCwgQWx0ZXJUYWJsZUNtZCAqY21kLAogICogKHBvc3NpYmx5 IG5lc3RlZCBzZXZlcmFsIGxldmVscyBkZWVwIGluIGNvbXBvc2l0ZSB0eXBlcywgYXJyYXlzLCBl dGMhKS4KICAqIEV2ZW50dWFsbHksIHdlJ2QgbGlrZSB0byBwcm9wYWdhdGUgdGhlIGNoZWNrIG9y IHJld3JpdGUgb3BlcmF0aW9uCiAgKiBpbnRvIHN1Y2ggdGFibGVzLCBidXQgZm9yIG5vdywganVz dCBlcnJvciBvdXQgaWYgd2UgZmluZCBhbnkuCisgKiBBbHNvLCBjaGVjayBpZiAidHlwZU9pZCIg aXMgdXNlZCBhcyB0eXBlIG9mIHNvbWUgc2Vzc2lvbiB2YXJpYWJsZS4KICAqCiAgKiBDYWxsZXIg c2hvdWxkIHByb3ZpZGUgZWl0aGVyIHRoZSBhc3NvY2lhdGVkIHJlbGF0aW9uIG9mIGEgcm93dHlw ZSwKICAqIG9yIGEgdHlwZSBuYW1lIChub3QgYm90aCkgZm9yIHVzZSBpbiB0aGUgZXJyb3IgbWVz c2FnZSwgaWYgYW55LgpAQCAtNjg2Nyw2ICs2ODY5LDQ1IEBAIGZpbmRfY29tcG9zaXRlX3R5cGVf ZGVwZW5kZW5jaWVzKE9pZCB0eXBlT2lkLCBSZWxhdGlvbiBvcmlnUmVsYXRpb24sCiAJCQljb250 aW51ZTsKIAkJfQogCisJCS8qIGNoZWNrIGlmIHRoZSB0eXBlIGlzIHVzZWQgYXMgdHlwZSBvZiBz b21lIHNlc3Npb24gdmFyaWFibGUgKi8KKwkJaWYgKHBnX2RlcGVuZC0+Y2xhc3NpZCA9PSBWYXJp YWJsZVJlbGF0aW9uSWQpCisJCXsKKwkJCU9pZAkJCXZhcmlkID0gcGdfZGVwZW5kLT5vYmppZDsK KworCQkJaWYgKG9yaWdUeXBlTmFtZSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiY2Fubm90 IGFsdGVyIHR5cGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNl cyBpdCIsCisJCQkJCQkJCW9yaWdUeXBlTmFtZSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1l KGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSkpKTsKKwkJCWVsc2UgaWYgKG9yaWdSZWxhdGlvbi0+ cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfQ09NUE9TSVRFX1RZUEUpCisJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJ CQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciB0eXBlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFy aWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFt ZShvcmlnUmVsYXRpb24pLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxl X25hbWUodmFyaWQpKSkpOworCQkJZWxzZSBpZiAob3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtp bmQgPT0gUkVMS0lORF9GT1JFSUdOX1RBQkxFKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQko ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJj YW5ub3QgYWx0ZXIgZm9yZWlnbiB0YWJsZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxl IFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUob3Jp Z1JlbGF0aW9uKSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3Zhcmlh YmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHZhcmlkKSkpKTsKKwkJCWVsc2UgaWYgKG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kID09 IFJFTEtJTkRfUkVMQVRJT04gfHwKKwkJCQkJIG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5k ID09IFJFTEtJTkRfTUFUVklFVyB8fAorCQkJCQkgb3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtp bmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1z ZygiY2Fubm90IGFsdGVyIHRhYmxlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIl cy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShvcmlnUmVs YXRpb24pLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFy aWQpKSkpOworCisJCQljb250aW51ZTsKKwkJfQorCiAJCS8qIEVsc2UsIGlnbm9yZSBkZXBlbmRl ZXMgdGhhdCBhcmVuJ3QgcmVsYXRpb25zICovCiAJCWlmIChwZ19kZXBlbmQtPmNsYXNzaWQgIT0g UmVsYXRpb25SZWxhdGlvbklkKQogCQkJY29udGludWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy90eXBlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwpp bmRleCAzY2IzY2ExY2NhLi40NzNkOThmZjA2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy90eXBlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKQEAg LTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3JhbmdlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3R5cGVj bWRzLmgiCkBAIC0zMzY5LDYgKzMzNzAsMjAgQEAgZ2V0X3JlbHNfd2l0aF9kb21haW4oT2lkIGRv bWFpbk9pZCwgTE9DS01PREUgbG9ja21vZGUpCiAJCQl9CiAJCQljb250aW51ZTsKIAkJfQorCQll bHNlIGlmIChwZ19kZXBlbmQtPmNsYXNzaWQgPT0gVmFyaWFibGVSZWxhdGlvbklkKQorCQl7CisJ CQkvKgorCQkJICogV2UgY2Fubm90IHRvIHZhbGlkYXRlIGNvbnN0cmFpbnQgaW5zaWRlIHNlc3Np b24gdmFyaWFibGVzCisJCQkgKiBmcm9tIG90aGVyIHNlc3Npb25zLCBzbyBiZXR0ZXIgdG8gZmFp bCBpZiB0aGVyZSBhcmUgYW55CisJCQkgKiBzZXNzaW9uIHZhcmlhYmxlLCB0aGF0IHVzZSB0aGlz IGRvbWFpbi4KKwkJCSAqLworCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgZG9t YWluIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAor CQkJCQkJCQlkb21haW5UeXBlTmFtZSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShwZ19kZXBlbmQtPm9iamlkKSksCisJCQkJCQkJCWdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUocGdfZGVwZW5kLT5vYmppZCkpKSk7CisJCX0KIAogCQkv KiBFbHNlLCBpZ25vcmUgZGVwZW5kZWVzIHRoYXQgYXJlbid0IHVzZXIgY29sdW1ucyBvZiByZWxh dGlvbnMgKi8KIAkJLyogKHdlIGFzc3VtZSBzeXN0ZW0gY29sdW1ucyBhcmUgbmV2ZXIgb2YgZG9t YWluIHR5cGVzKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggZDdmOWMwMGM0MC4uYTU5ODJjNmVmNCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2Uu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190cmln Z2VyLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJn cmFtcGFyc2UuaCIKQEAgLTI4NSw4ICsyODYsOCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog CQlDb25zdHJhaW50c1NldFN0bXQgQ29weVN0bXQgQ3JlYXRlQXNTdG10IENyZWF0ZUNhc3RTdG10 CiAJCUNyZWF0ZURvbWFpblN0bXQgQ3JlYXRlRXh0ZW5zaW9uU3RtdCBDcmVhdGVHcm91cFN0bXQg Q3JlYXRlT3BDbGFzc1N0bXQKIAkJQ3JlYXRlT3BGYW1pbHlTdG10IEFsdGVyT3BGYW1pbHlTdG10 IENyZWF0ZVBMYW5nU3RtdAotCQlDcmVhdGVTY2hlbWFTdG10IENyZWF0ZVNlcVN0bXQgQ3JlYXRl U3RtdCBDcmVhdGVTdGF0c1N0bXQgQ3JlYXRlVGFibGVTcGFjZVN0bXQKLQkJQ3JlYXRlRmR3U3Rt dCBDcmVhdGVGb3JlaWduU2VydmVyU3RtdCBDcmVhdGVGb3JlaWduVGFibGVTdG10CisJCUNyZWF0 ZVNjaGVtYVN0bXQgQ3JlYXRlU2VxU3RtdCBDcmVhdGVTZXNzaW9uVmFyU3RtdCBDcmVhdGVTdG10 IENyZWF0ZVN0YXRzU3RtdAorCQlDcmVhdGVUYWJsZVNwYWNlU3RtdCBDcmVhdGVGZHdTdG10IENy ZWF0ZUZvcmVpZ25TZXJ2ZXJTdG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQKIAkJQ3JlYXRlQXNz ZXJ0aW9uU3RtdCBDcmVhdGVUcmFuc2Zvcm1TdG10IENyZWF0ZVRyaWdTdG10IENyZWF0ZUV2ZW50 VHJpZ1N0bXQKIAkJQ3JlYXRlVXNlclN0bXQgQ3JlYXRlVXNlck1hcHBpbmdTdG10IENyZWF0ZVJv bGVTdG10IENyZWF0ZVBvbGljeVN0bXQKIAkJQ3JlYXRlZGJTdG10IERlY2xhcmVDdXJzb3JTdG10 IERlZmluZVN0bXQgRGVsZXRlU3RtdCBEaXNjYXJkU3RtdCBEb1N0bXQKQEAgLTc4Myw4ICs3ODQs OCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwg TGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVVFU0NBUEUgVU5CT1VOREVEIFVOQ09ORElU SU9OQUwgVU5DT01NSVRURUQgVU5FTkNSWVBURUQgVU5JT04gVU5JUVVFIFVOS05PV04KIAlVTkxJ U1RFTiBVTkxPR0dFRCBVTlRJTCBVUERBVEUgVVNFUiBVU0lORwogCi0JVkFDVVVNIFZBTElEIFZB TElEQVRFIFZBTElEQVRPUiBWQUxVRV9QIFZBTFVFUyBWQVJDSEFSIFZBUklBRElDIFZBUllJTkcK LQlWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJRVdTIFZPTEFUSUxFCisJVkFDVVVNIFZBTElEIFZB TElEQVRFIFZBTElEQVRPUiBWQUxVRV9QIFZBTFVFUyBWQVJDSEFSIFZBUklBQkxFIFZBUklBQkxF UworCVZBUklBRElDIFZBUllJTkcgVkVSQk9TRSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWT0xBVElM RQogCiAJV0hFTiBXSEVSRSBXSElURVNQQUNFX1AgV0lORE9XIFdJVEggV0lUSElOIFdJVEhPVVQg V09SSyBXUkFQUEVSIFdSSVRFCiAKQEAgLTEwNTAsNiArMTA1MSw3IEBAIHN0bXQ6CiAJCQl8IENy ZWF0ZVBvbGljeVN0bXQKIAkJCXwgQ3JlYXRlUExhbmdTdG10CiAJCQl8IENyZWF0ZVNjaGVtYVN0 bXQKKwkJCXwgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAkJCXwgQ3JlYXRlU2VxU3RtdAogCQkJfCBD cmVhdGVTdG10CiAJCQl8IENyZWF0ZVN1YnNjcmlwdGlvblN0bXQKQEAgLTE1OTIsNiArMTU5NCw3 IEBAIHNjaGVtYV9zdG10OgogCQkJfCBDcmVhdGVUcmlnU3RtdAogCQkJfCBHcmFudFN0bXQKIAkJ CXwgVmlld1N0bXQKKwkJCXwgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAkJOwogCiAKQEAgLTUyMzgs NiArNTI0MSwzNCBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgogCQkJCX0KIAkJOwogCisv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKKyAqCisgKgkJUVVFUlkgOgorICoJCQkJQ1JFQVRFIFZBUklB QkxFIHZhcm5hbWUgW0FTXSB0eXBlCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitDcmVh dGVTZXNzaW9uVmFyU3RtdDoKKwkJCUNSRUFURSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRf YXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlCisJCQkJeworCQkJCQlDcmVhdGVTZXNzaW9u VmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKKwkJCQkJbi0+dmFy aWFibGUgPSAkMzsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkNTsKKwkJCQkJbi0+Y29sbENsYXVzZSA9 IChDb2xsYXRlQ2xhdXNlICopICQ2OworCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7CisJ CQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IENSRUFURSBWQVJJQUJMRSBJRl9QIE5P VCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVz ZQorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVT ZXNzaW9uVmFyU3RtdCk7CisJCQkJCW4tPnZhcmlhYmxlID0gJDY7CisJCQkJCW4tPnR5cGVOYW1l ID0gJDg7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkOTsKKwkJCQkJ bi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJ CTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUg VVBEQVRFIFsgVE8gdmVyc2lvbiBdCkBAIC03MDI5LDYgKzcwNjAsNyBAQCBvYmplY3RfdHlwZV9h bnlfbmFtZToKIAkJCXwgVEVYVF9QIFNFQVJDSCBESUNUSU9OQVJZCQkJCXsgJCQgPSBPQkpFQ1Rf VFNESUNUSU9OQVJZOyB9CiAJCQl8IFRFWFRfUCBTRUFSQ0ggVEVNUExBVEUJCQkJeyAkJCA9IE9C SkVDVF9UU1RFTVBMQVRFOyB9CiAJCQl8IFRFWFRfUCBTRUFSQ0ggQ09ORklHVVJBVElPTgkJCXsg JCQgPSBPQkpFQ1RfVFNDT05GSUdVUkFUSU9OOyB9CisJCQl8IFZBUklBQkxFCQkJCQkJCQl7ICQk ID0gT0JKRUNUX1ZBUklBQkxFOyB9CiAJCTsKIAogLyoKQEAgLTc5MDUsNiArNzkzNywxNCBAQCBw cml2aWxlZ2VfdGFyZ2V0OgogCQkJCQluLT5vYmpzID0gJDI7CiAJCQkJCSQkID0gbjsKIAkJCQl9 CisJCQl8IFZBUklBQkxFIHF1YWxpZmllZF9uYW1lX2xpc3QKKwkJCQl7CisJCQkJCVByaXZUYXJn ZXQgKm4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJnZXQpKTsKKwkJCQkJ bi0+dGFyZ3R5cGUgPSBBQ0xfVEFSR0VUX09CSkVDVDsKKwkJCQkJbi0+b2JqdHlwZSA9IE9CSkVD VF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqcyA9ICQyOworCQkJCQkkJCA9IG47CisJCQkJfQogCQkJ fCBBTEwgVEFCTEVTIElOX1AgU0NIRU1BIG5hbWVfbGlzdAogCQkJCXsKIAkJCQkJUHJpdlRhcmdl dCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOwpAQCAtNzk1 MCw2ICs3OTkwLDE0IEBAIHByaXZpbGVnZV90YXJnZXQ6CiAJCQkJCW4tPm9ianMgPSAkNTsKIAkJ CQkJJCQgPSBuOwogCQkJCX0KKwkJCXwgQUxMIFZBUklBQkxFUyBJTl9QIFNDSEVNQSBuYW1lX2xp c3QKKwkJCQl7CisJCQkJCVByaXZUYXJnZXQgKm4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6 ZW9mKFByaXZUYXJnZXQpKTsKKwkJCQkJbi0+dGFyZ3R5cGUgPSBBQ0xfVEFSR0VUX0FMTF9JTl9T Q0hFTUE7CisJCQkJCW4tPm9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9ianMg PSAkNTsKKwkJCQkJJCQgPSBuOworCQkJCX0KIAkJOwogCiAKQEAgLTgxNDcsNiArODE5NSw3IEBA IGRlZmFjbF9wcml2aWxlZ2VfdGFyZ2V0OgogCQkJfCBTRVFVRU5DRVMJCXsgJCQgPSBPQkpFQ1Rf U0VRVUVOQ0U7IH0KIAkJCXwgVFlQRVNfUAkJeyAkJCA9IE9CSkVDVF9UWVBFOyB9CiAJCQl8IFND SEVNQVMJCXsgJCQgPSBPQkpFQ1RfU0NIRU1BOyB9CisJCQl8IFZBUklBQkxFUwkJeyAkJCA9IE9C SkVDVF9WQVJJQUJMRTsgfQogCQk7CiAKIApAQCAtOTkzNSw2ICs5OTg0LDI0IEBAIFJlbmFtZVN0 bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBSRU5BTUUgVE8gbmFt ZQogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJ CQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIFJFTkFNRSBUTyBuYW1lCisJCQkJewor CQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CisJCQkJCW4tPnJlbmFt ZVR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQzOwor CQkJCQluLT5uZXduYW1lID0gJDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJ JCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBJRl9QIEVYSVNUUyBh bnlfbmFtZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VO b2RlKFJlbmFtZVN0bXQpOworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX1ZBUklBQkxFOwor CQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3bmFtZSA9ICQ4OworCQkJ CQluLT5taXNzaW5nX29rID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQogCQk7 CiAKIG9wdF9jb2x1bW46IENPTFVNTgpAQCAtMTAyOTYsNiArMTAzNjMsMjQgQEAgQWx0ZXJPYmpl Y3RTY2hlbWFTdG10OgogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5v ZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIFNFVCBTQ0hFTUEg bmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5vZGUoQWx0 ZXJPYmplY3RTY2hlbWFTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9WQVJJQUJM RTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld3NjaGVtYSA9ICQ2 OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJ CX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgSUZfUCBFWElTVFMgYW55X25hbWUgU0VUIFNDSEVNQSBu YW1lCisJCQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShBbHRl ck9iamVjdFNjaGVtYVN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxF OworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDg7 CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9 CiAJCTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMDU3Nyw2ICsxMDY2MiwxNCBAQCBB bHRlck93bmVyU3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIE9X TkVSIFRPIFJvbGVTcGVjCiAJCQkJCW4tPm5ld293bmVyID0gJDY7CiAJCQkJCSQkID0gKE5vZGUg KikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIE9XTkVSIFRPIFJvbGVT cGVjCisJCQkJeworCQkJCQlBbHRlck93bmVyU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT3duZXJT dG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2Jq ZWN0ID0gKE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld293bmVyID0gJDY7CisJCQkJCSQkID0gKE5v ZGUgKiluOworCQkJCX0KIAkJOwogCiAKQEAgLTE3OTg2LDYgKzE4MDc5LDggQEAgdW5yZXNlcnZl ZF9rZXl3b3JkOgogCQkJfCBWQUxJREFURQogCQkJfCBWQUxJREFUT1IKIAkJCXwgVkFMVUVfUAor CQkJfCBWQVJJQUJMRQorCQkJfCBWQVJJQUJMRVMKIAkJCXwgVkFSWUlORwogCQkJfCBWRVJTSU9O X1AKIAkJCXwgVklFVwpAQCAtMTg2NDAsNiArMTg3MzUsOCBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6 CiAJCQl8IFZBTFVFX1AKIAkJCXwgVkFMVUVTCiAJCQl8IFZBUkNIQVIKKwkJCXwgVkFSSUFCTEUK KwkJCXwgVkFSSUFCTEVTCiAJCQl8IFZBUklBRElDCiAJCQl8IFZFUkJPU0UKIAkJCXwgVkVSU0lP Tl9QCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCBjYTAyOGQyYTY2Li40N2IyOWMx ZWRiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKQEAgLTEwNSw2ICsxMDUsNyBAQCB0 eXBlZGVmIHN0cnVjdAogCUxpc3QJICAgKmluZGV4ZXM7CQkvKiBDUkVBVEUgSU5ERVggaXRlbXMg Ki8KIAlMaXN0CSAgICp0cmlnZ2VyczsJCS8qIENSRUFURSBUUklHR0VSIGl0ZW1zICovCiAJTGlz dAkgICAqZ3JhbnRzOwkJCS8qIEdSQU5UIGl0ZW1zICovCisJTGlzdAkgICAqdmFyaWFibGVzOwkJ LyogQ1JFQVRFIFZBUklBQkxFIGl0ZW1zICovCiB9IENyZWF0ZVNjaGVtYVN0bXRDb250ZXh0Owog CiAKQEAgLTQwODYsNiArNDA4Nyw3IEBAIHRyYW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50 cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFyICpzY2hlbWFOYW1lKQogCWN4dC5pbmRleGVz ID0gTklMOwogCWN4dC50cmlnZ2VycyA9IE5JTDsKIAljeHQuZ3JhbnRzID0gTklMOworCWN4dC52 YXJpYWJsZXMgPSBOSUw7CiAKIAkvKgogCSAqIFJ1biB0aHJvdWdoIGVhY2ggc2NoZW1hIGVsZW1l bnQgaW4gdGhlIHNjaGVtYSBlbGVtZW50IGxpc3QuIFNlcGFyYXRlCkBAIC00MTU0LDYgKzQxNTYs MTUgQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVtYUVsdHMs IGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJCQkJY3h0LmdyYW50cyA9IGxhcHBlbmQoY3h0Lmdy YW50cywgZWxlbWVudCk7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFy U3RtdDoKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICplbHAgPSAoQ3JlYXRlU2Vz c2lvblZhclN0bXQgKikgZWxlbWVudDsKKworCQkJCQlzZXRTY2hlbWFOYW1lKGN4dC5zY2hlbWFu YW1lLCAmZWxwLT52YXJpYWJsZS0+c2NoZW1hbmFtZSk7CisJCQkJCWN4dC52YXJpYWJsZXMgPSBs YXBwZW5kKGN4dC52YXJpYWJsZXMsIGVsZW1lbnQpOworCQkJCX0KKwkJCQlicmVhazsKKwogCQkJ ZGVmYXVsdDoKIAkJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAog CQkJCQkgKGludCkgbm9kZVRhZyhlbGVtZW50KSk7CkBAIC00MTY3LDYgKzQxNzgsNyBAQCB0cmFu c2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoTGlzdCAqc2NoZW1hRWx0cywgY29uc3QgY2hh ciAqc2NoZW1hTmFtZSkKIAlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4dC5pbmRleGVz KTsKIAlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4dC50cmlnZ2Vycyk7CiAJcmVzdWx0 ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQuZ3JhbnRzKTsKKwlyZXN1bHQgPSBsaXN0X2NvbmNh dChyZXN1bHQsIGN4dC52YXJpYWJsZXMpOwogCiAJcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5 LmMKaW5kZXggMjVmZTNkNTgwMS4uOTlhNTE4NzdkMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTIzLDYg KzIzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19pbmhlcml0cy5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3RvYXN0aW5nLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hc3luYy5o IgpAQCAtMTgyLDYgKzE4Myw3IEBAIENsYXNzaWZ5VXRpbGl0eUNvbW1hbmRBc1JlYWRPbmx5KE5v ZGUgKnBhcnNldHJlZSkKIAkJY2FzZSBUX0NyZWF0ZVJhbmdlU3RtdDoKIAkJY2FzZSBUX0NyZWF0 ZVJvbGVTdG10OgogCQljYXNlIFRfQ3JlYXRlU2NoZW1hU3RtdDoKKwkJY2FzZSBUX0NyZWF0ZVNl c3Npb25WYXJTdG10OgogCQljYXNlIFRfQ3JlYXRlU2VxU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVN0 YXRzU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVN0bXQ6CkBAIC0xMzg5LDYgKzEzOTEsMTAgQEAgUHJv Y2Vzc1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQl9CiAJCQkJYnJlYWs7CiAK KwkJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCQlhZGRyZXNzID0gQ3JlYXRlVmFy aWFibGUocHN0YXRlLCAoQ3JlYXRlU2Vzc2lvblZhclN0bXQgKikgcGFyc2V0cmVlKTsKKwkJCQli cmVhazsKKwogCQkJCS8qCiAJCQkJICogKioqKioqKioqKioqKiBvYmplY3QgY3JlYXRpb24gLyBk ZXN0cnVjdGlvbiAqKioqKioqKioqKioqKgogCQkJCSAqLwpAQCAtMjM0MSw2ICsyMzQ3LDkgQEAg QWx0ZXJPYmplY3RUeXBlQ29tbWFuZFRhZyhPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JK RUNUX1NUQVRJU1RJQ19FWFQ6CiAJCQl0YWcgPSBDTURUQUdfQUxURVJfU1RBVElTVElDUzsKIAkJ CWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXRhZyA9IENNRFRBR19BTFRFUl9W QVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJdGFnID0gQ01EVEFHX1VOS05PV047 CiAJCQlicmVhazsKQEAgLTI2NDksNiArMjY1OCw5IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAq cGFyc2V0cmVlKQogCQkJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCQkJCXRhZyA9IENN RFRBR19EUk9QX1NUQVRJU1RJQ1M7CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNUX1ZBUklB QkxFOgorCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9WQVJJQUJMRTsKKwkJCQkJYnJlYWs7CiAJCQkJ ZGVmYXVsdDoKIAkJCQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJCQl9CkBAIC0zMjI1LDYgKzMy MzcsMTAgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl9CiAJCQlicmVh azsKIAorCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQl0YWcgPSBDTURUQUdfQ1JF QVRFX1ZBUklBQkxFOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coV0FSTklORywg InVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkgKGludCkgbm9kZVRhZyhwYXJzZXRy ZWUpKTsKQEAgLTM3NTksNiArMzc3NSwxMCBAQCBHZXRDb21tYW5kTG9nTGV2ZWwoTm9kZSAqcGFy c2V0cmVlKQogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10 OgorCQkJbGV2ID0gTE9HU1RNVF9EREw7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJZWxv ZyhXQVJOSU5HLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBub2Rl VGFnKHBhcnNldHJlZSkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCmluZGV4IDZhNzY1NTBhNWUuLjM3N2RlMGI3 YzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvYWNsLmMKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJjYXRhbG9n L3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Byb2Ns YW5nLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVzcGFjZS5oIgpAQCAtMTI5LDYgKzEzMCw4 IEBAIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRfdHlwZV9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3R5 cGVfdGV4dCk7CiBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X3BhcmFtZXRlcl9wcml2X3N0cmluZyh0 ZXh0ICpwcml2X3RleHQpOwogc3RhdGljIEFjbE1vZGUgY29udmVydF9sYXJnZW9iamVjdF9wcml2 X3N0cmluZyh0ZXh0ICpwcml2X3RleHQpOwogc3RhdGljIEFjbE1vZGUgY29udmVydF9yb2xlX3By aXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KTsKK3N0YXRpYyBPaWQJY29udmVydF9zZXNz aW9uX3ZhcmlhYmxlX25hbWUodGV4dCAqdmFybmFtZSk7CitzdGF0aWMgQWNsTW9kZSBjb252ZXJ0 X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcodGV4dCAqcHJpdl90eXBlX3RleHQpOwogc3Rh dGljIEFjbFJlc3VsdCBwZ19yb2xlX2FjbGNoZWNrKE9pZCByb2xlX29pZCwgT2lkIHJvbGVpZCwg QWNsTW9kZSBtb2RlKTsKIAogc3RhdGljIHZvaWQgUm9sZU1lbWJlcnNoaXBDYWNoZUNhbGxiYWNr KERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpOwpAQCAtODUxLDYgKzg1 NCwxMCBAQCBhY2xkZWZhdWx0KE9iamVjdFR5cGUgb2JqdHlwZSwgT2lkIG93bmVySWQpCiAJCQl3 b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsKIAkJCW93bmVyX2RlZmF1bHQgPSBBQ0xfQUxM X1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxF OgorCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CisJCQlvd25lcl9kZWZhdWx0ID0g QUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2co RVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwgKGludCkgb2JqdHlwZSk7CiAJ CQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsJLyoga2VlcCBjb21waWxlciBxdWlldCAq LwpAQCAtOTQ4LDYgKzk1NSw5IEBAIGFjbGRlZmF1bHRfc3FsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ CWNhc2UgJ1QnOgogCQkJb2JqdHlwZSA9IE9CSkVDVF9UWVBFOwogCQkJYnJlYWs7CisJCWNhc2Ug J1YnOgorCQkJb2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0 OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZSBhYmJyZXZpYXRpb246 ICVjIiwgb2JqdHlwZWMpOwogCX0KQEAgLTUwMTYsNiArNTAyNiwyMTcgQEAgcGdfcm9sZV9hY2xj aGVjayhPaWQgcm9sZV9vaWQsIE9pZCByb2xlaWQsIEFjbE1vZGUgbW9kZSkKIAlyZXR1cm4gQUNM Q0hFQ0tfTk9fUFJJVjsKIH0KIAorLyoKKyAqIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSB2YXJpYW50cworICoJCVRoZXNlIGFyZSBhbGwgbmFtZWQgImhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSIgYXQgdGhlIFNRTCBsZXZlbC4KKyAqCQlUaGV5IHRha2UgdmFyaW91cyBjb21i aW5hdGlvbnMgb2YgdmFyaWFibGUgbmFtZSwgdmFyaWFibGUgT0lELAorICoJCXVzZXIgbmFtZSwg dXNlciBPSUQsIG9yIGltcGxpY2l0IHVzZXIgPSBjdXJyZW50X3VzZXIuCisgKgorICoJCVRoZSBy ZXN1bHQgaXMgYSBib29sZWFuIHZhbHVlOiB0cnVlIGlmIHVzZXIgaGFzIHRoZSBpbmRpY2F0ZWQK KyAqCQlwcml2aWxlZ2UsIGZhbHNlIGlmIG5vdCwgb3IgTlVMTCBpZiBzZXNzaW9uIHZhcmlhYmxl IGRvZXNuJ3QKKyAqCQlleGlzdHMuCisgKi8KKworLyoKKyAqIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZV9uYW1lX25hbWUKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBzZXNz aW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJbmFtZSB1c2VybmFtZSwgdGV4dCBzZXNzaW9uIHZhcmlh YmxlIG5hbWUsIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZV9uYW1lX25hbWUoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlOYW1lCQly b2xlbmFtZSA9IFBHX0dFVEFSR19OQU1FKDApOworCXRleHQJICAgKnZhcm5hbWUgPSBQR19HRVRB UkdfVEVYVF9QUCgxKTsKKwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhU X1BQKDIpOworCU9pZAkJCXJvbGVpZDsKKwlPaWQJCQl2YXJpZDsKKwlBY2xNb2RlCQltb2RlOwor CUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2luZyA9IGZhbHNlOworCisJcm9s ZWlkID0gZ2V0X3JvbGVfb2lkX29yX3B1YmxpYyhOYW1lU3RyKCpyb2xlbmFtZSkpOworCW1vZGUg PSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOwor CXZhcmlkID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFybmFtZSk7CisKKwlhY2xy ZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJ CQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlpZiAoaXNf bWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3Vs dCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2VfbmFtZQorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIHNlc3Npb24gdmFyaWFi bGUgZ2l2ZW4KKyAqCQl0ZXh0IHNlc3Npb24gdmFyaWFibGUgYW5kIHRleHQgcHJpdiBuYW1lLgor ICoJCWN1cnJlbnRfdXNlciBpcyBhc3N1bWVkCisgKi8KK0RhdHVtCitoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2VfbmFtZShQR19GVU5DVElPTl9BUkdTKQoreworCXRleHQJICAgKnZhcm5h bWUgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKKwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4dCA9IFBH X0dFVEFSR19URVhUX1BQKDEpOworCU9pZAkJCXJvbGVpZDsKKwlPaWQJCQl2YXJpZDsKKwlBY2xN b2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2luZyA9IGZh bHNlOworCisJcm9sZWlkID0gR2V0VXNlcklkKCk7CisJbW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92 YXJpYWJsZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisJdmFyaWQgPSBjb252ZXJ0X3Nl c3Npb25fdmFyaWFibGVfbmFtZSh2YXJuYW1lKTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xj aGVja19leHQoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCXJvbGVpZCwgbW9k ZSwKKwkJCQkJCQkJCSZpc19taXNzaW5nKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9 PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2VfbmFtZV9pZAorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIHNlc3Npb24gdmFyaWFi bGUgZ2l2ZW4KKyAqCQluYW1lIHVzZW5hbWUsIHNlc3Npb24gdmFyaWFibGUgb2lkLCBhbmQgdGV4 dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Vf bmFtZV9pZChQR19GVU5DVElPTl9BUkdTKQoreworCU5hbWUJCXVzZXJuYW1lID0gUEdfR0VUQVJH X05BTUUoMCk7CisJT2lkCQkJdmFyaWQgPSBQR19HRVRBUkdfT0lEKDEpOworCXRleHQJICAgKnBy aXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMik7CisJT2lkCQkJcm9sZWlkOworCUFj bE1vZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0g ZmFsc2U7CisKKwlyb2xlaWQgPSBnZXRfcm9sZV9vaWRfb3JfcHVibGljKE5hbWVTdHIoKnVzZXJu YW1lKSk7CisJbW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyhwcml2 X3R5cGVfdGV4dCk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZhcmlhYmxl UmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJCQkmaXNf bWlzc2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBH X1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWQKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMg b24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJc2Vzc2lvbiB2YXJpYWJsZSBvaWQsIGFu ZCB0ZXh0IHByaXYgbmFtZS4KKyAqCQljdXJyZW50X3VzZXIgaXMgYXNzdW1lZAorICovCitEYXR1 bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkKFBHX0ZVTkNUSU9OX0FSR1MpCit7 CisJT2lkCQkJdmFyaWQgPSBQR19HRVRBUkdfT0lEKDApOworCXRleHQJICAgKnByaXZfdHlwZV90 ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJT2lkCQkJcm9sZWlkOworCUFjbE1vZGUJCW1v ZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFsc2U7CisK Kwlyb2xlaWQgPSBHZXRVc2VySWQoKTsKKwltb2RlID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxl X3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xj aGVja19leHQoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCXJvbGVpZCwgbW9k ZSwKKwkJCQkJCQkJCSZpc19taXNzaW5nKTsKKworCWlmIChpc19taXNzaW5nKQorCQlQR19SRVRV Uk5fTlVMTCgpOworCisJUEdfUkVUVVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsK K30KKworLyoKKyAqIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZF9uYW1lCisgKgkJ Q2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2YXJpYWJsZSBnaXZlbgorICoJCXJv bGVpZCwgdGV4dCBzZXNzaW9uIHZhcmlhYmxlIG5hbWUsIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAq LworRGF0dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZF9uYW1lKFBHX0ZVTkNU SU9OX0FSR1MpCit7CisJT2lkCQkJcm9sZWlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwl0ZXh0CSAg ICp2YXJuYW1lID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJdGV4dAkgICAqcHJpdl90eXBlX3Rl eHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlPaWQJCQl2YXJpZDsKKwlBY2xNb2RlCQltb2Rl OworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2luZyA9IGZhbHNlOworCisJ bW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4 dCk7CisJdmFyaWQgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJuYW1lKTsKKwor CWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJp ZCwKKwkJCQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19taXNzaW5nKTsKKworCWlm IChpc19taXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJOX0JPT0woYWNs cmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZV9pZF9pZAorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIHNlc3Npb24g dmFyaWFibGUgZ2l2ZW4KKyAqCQlyb2xlaWQsIHNlc3Npb24gdmFyaWFibGUgb2lkLCBhbmQgdGV4 dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Vf aWRfaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlyb2xlaWQgPSBQR19HRVRBUkdfT0lE KDApOworCU9pZAkJCXZhcmlkID0gUEdfR0VUQVJHX09JRCgxKTsKKwl0ZXh0CSAgICpwcml2X3R5 cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCUFjbE1vZGUJCW1vZGU7CisJQWNsUmVz dWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFsc2U7CisKKwltb2RlID0gY29u dmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKworCWFj bHJlc3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwK KwkJCQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19taXNzaW5nKTsKKworCWlmIChp c19taXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJOX0JPT0woYWNscmVz dWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIEdpdmVuIGEgc2Vzc2lvbiB2YXJpYWJs ZSBuYW1lIGV4cHJlc3NlZCBhcyBhIHN0cmluZywgbG9vayBpdCB1cCBhbmQgcmV0dXJuCisgKiBP aWQKKyAqLworc3RhdGljIE9pZAorY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodGV4dCAq dmFybmFtZSkKK3sKKwlyZXR1cm4gTG9va3VwVmFyaWFibGVGcm9tTmFtZUxpc3QodGV4dFRvUXVh bGlmaWVkTmFtZUxpc3QodmFybmFtZSksIHRydWUpOworfQorCisvKgorICogY29udmVydF92YXJp YWJsZV9wcml2X3N0cmluZworICoJCUNvbnZlcnQgdGV4dCBzdHJpbmcgdG8gQWNsTW9kZSB2YWx1 ZS4KKyAqLworc3RhdGljIEFjbE1vZGUKK2NvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0 cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4dCkKK3sKKwlzdGF0aWMgY29uc3QgcHJpdl9tYXAgc2Vz c2lvbl92YXJpYWJsZV9wcml2X21hcFtdID0geworCQl7IlNFTEVDVCIsIEFDTF9TRUxFQ1R9LAor CQl7IlNFTEVDVCBXSVRIIEdSQU5UIE9QVElPTiIsIEFDTF9HUkFOVF9PUFRJT05fRk9SKEFDTF9T RUxFQ1QpfSwKKwkJeyJVUERBVEUiLCBBQ0xfVVBEQVRFfSwKKwkJeyJVUERBVEUgV0lUSCBHUkFO VCBPUFRJT04iLCBBQ0xfR1JBTlRfT1BUSU9OX0ZPUihBQ0xfVVBEQVRFKX0sCisJCXtOVUxMLCAw fQorCX07CisKKwlyZXR1cm4gY29udmVydF9hbnlfcHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQs IHNlc3Npb25fdmFyaWFibGVfcHJpdl9tYXApOworfQogCiAvKgogICogaW5pdGlhbGl6YXRpb24g ZnVuY3Rpb24gKGNhbGxlZCBieSBJbml0UG9zdGdyZXMpCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNj YWNoZS5jCmluZGV4IDdhOWFmMDNjOTYuLjFjMTU5YjY2MDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L2xzeXNjYWNoZS5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJz Y3JpcHRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyYW5zZm9ybS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNp bmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNs dWRlICJ1dGlscy9hcnJheS5oIgpAQCAtMzcxNCwzICszNzE1LDExNSBAQCBnZXRfc3Vic2NyaXB0 aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spCiAKIAlyZXR1cm4gc3VibmFtZTsK IH0KKworLyoJCQkJLS0tLS0tLS0tLSBQR19WQVJJQUJMRSBDQUNIRSAtLS0tLS0tLS0tCQkJCSAq LworCisvKgorICogZ2V0X3Zhcm5hbWVfdmFyaWQKKyAqCQlHaXZlbiBuYW1lIGFuZCBuYW1lc3Bh Y2Ugb2YgdmFyaWFibGUsIGxvb2sgdXAgdGhlIE9JRC4KKyAqLworT2lkCitnZXRfdmFybmFtZV92 YXJpZChjb25zdCBjaGFyICp2YXJuYW1lLCBPaWQgdmFybmFtZXNwYWNlKQoreworCXJldHVybiBH ZXRTeXNDYWNoZU9pZDIoVkFSSUFCTEVOQU1FTlNQLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCwKKwkJ CQkJCSAgIFBvaW50ZXJHZXREYXR1bSh2YXJuYW1lKSwKKwkJCQkJCSAgIE9iamVjdElkR2V0RGF0 dW0odmFybmFtZXNwYWNlKSk7Cit9CisKKy8qCisgKiBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l CisgKgkJUmV0dXJucyBhIHBhbGxvYydkIGNvcHkgb2YgdGhlIG5hbWUgb2YgYSBnaXZlbiBzZXNz aW9uIHZhcmlhYmxlLgorICovCitjaGFyICoKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lk IHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOwor CWNoYXIJICAgKnZhcm5hbWU7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQs IE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXAp KQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJs ZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNU KHR1cCk7CisKKwl2YXJuYW1lID0gcHN0cmR1cChOYW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpKTsK KworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIHZhcm5hbWU7Cit9CisKKy8qCisg KiBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UKKyAqCQlSZXR1cm5zIHRoZSBwZ19uYW1l c3BhY2UgT0lEIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIHNlc3Npb24gdmFyaWFibGUuCisgKi8K K09pZAorZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKE9pZCB2YXJpZCkKK3sKKwlIZWFw VHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwlPaWQJCQl2YXJuYW1lc3Bh Y2U7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0 dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJm b3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFybmFtZXNwYWNl ID0gdmFyZm9ybS0+dmFybmFtZXNwYWNlOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwly ZXR1cm4gdmFybmFtZXNwYWNlOworfQorCisvKgorICogUmV0dXJucyB0aGUgdHlwZSBvZiB0aGUg Z2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworT2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV90 eXBlKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFy Zm9ybTsKKwlPaWQJCQl2YXJ0eXBlOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxF T0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQo dHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFy aWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNU UlVDVCh0dXApOworCisJdmFydHlwZSA9IHZhcmZvcm0tPnZhcnR5cGU7CisKKwlSZWxlYXNlU3lz Q2FjaGUodHVwKTsKKworCXJldHVybiB2YXJ0eXBlOworfQorCisvKgorICogUmV0dXJucyB0aGUg dHlwZSwgdHlwbW9kIGFuZCBjb2xsaWQgb2YgdGhlIGdpdmVuIHNlc3Npb24gdmFyaWFibGUuCisg Ki8KK3ZvaWQKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZChPaWQgdmFy aWQsIE9pZCAqdHlwaWQsIGludDMyICp0eXBtb2QsCisJCQkJCQkJCQkJT2lkICpjb2xsaWQpCit7 CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisKKwl0dXAgPSBT ZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKwor CWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3Vw IGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAo Rm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwkqdHlwaWQgPSB2YXJmb3JtLT52 YXJ0eXBlOworCSp0eXBtb2QgPSB2YXJmb3JtLT52YXJ0eXBtb2Q7CisJKmNvbGxpZCA9IHZhcmZv cm0tPnZhcmNvbGxhdGlvbjsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworfQpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCmlu ZGV4IDU2YjZjMzY4YWMuLmJhNmIxOWRjOWEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9j b21tb24uYworKysgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKQEAgLTI0Niw2ICsyNDYsOSBA QCBnZXRTY2hlbWFEYXRhKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzUHRyKQogCXBnX2xv Z19pbmZvKCJyZWFkaW5nIHN1YnNjcmlwdGlvbiBtZW1iZXJzaGlwIG9mIHRhYmxlcyIpOwogCWdl dFN1YnNjcmlwdGlvblRhYmxlcyhmb3V0KTsKIAorCXBnX2xvZ19pbmZvKCJyZWFkaW5nIHZhcmlh YmxlcyIpOworCWdldFZhcmlhYmxlcyhmb3V0KTsKKwogCWZyZWUoaW5oaW5mbyk7CQkJCS8qIG5v dCBuZWVkZWQgYW55IGxvbmdlciAqLwogCiAJKm51bVRhYmxlc1B0ciA9IG51bVRhYmxlczsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYyBiL3NyYy9iaW4vcGdfZHVtcC9k dW1wdXRpbHMuYwppbmRleCA1YWU3N2Y3NjM2Li41MTYxZWU3ODBlIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX2R1bXAvZHVtcHV0aWxzLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5j CkBAIC01MTEsNiArNTExLDEyIEBAIGRvIHsgXAogCQlDT05WRVJUX1BSSVYoJ3InLCAiU0VMRUNU Iik7CiAJCUNPTlZFUlRfUFJJVigndycsICJVUERBVEUiKTsKIAl9CisJZWxzZSBpZiAoc3RyY21w KHR5cGUsICJWQVJJQUJMRSIpID09IDAgfHwKKwkJCSBzdHJjbXAodHlwZSwgIlZBUklBQkxFUyIp ID09IDApCisJeworCQlDT05WRVJUX1BSSVYoJ3InLCAiU0VMRUNUIik7CisJCUNPTlZFUlRfUFJJ VigndycsICJVUERBVEUiKTsKKwl9CiAJZWxzZQogCQlhYm9ydCgpOwogCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgK aW5kZXggZjBmMTliYjBiMi4uNDRlZWQwM2EyZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2JhY2t1cC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaApAQCAtMTMyLDEy ICsxMzIsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgX3Jlc3RvcmVPcHRpb25zCiAJaW50CQkJc2VsRnVu Y3Rpb247CiAJaW50CQkJc2VsVHJpZ2dlcjsKIAlpbnQJCQlzZWxUYWJsZTsKKwlpbnQJCQlzZWxW YXJpYWJsZTsKIAlTaW1wbGVTdHJpbmdMaXN0IGluZGV4TmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlz dCBmdW5jdGlvbk5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3Qgc2NoZW1hTmFtZXM7CiAJU2ltcGxl U3RyaW5nTGlzdCBzY2hlbWFFeGNsdWRlTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCB0cmlnZ2Vy TmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCB0YWJsZU5hbWVzOworCVNpbXBsZVN0cmluZ0xpc3Qg dmFyaWFibGVOYW1lczsKIAogCWludAkJCXVzZURCOwogCUNvbm5QYXJhbXMJY3BhcmFtczsJCS8q IHBhcmFtZXRlcnMgdG8gdXNlIGlmIHVzZURCICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hp dmVyLmMKaW5kZXggNzA3YTNmYzg0NC4uYWZhYmU1ZmU0OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w Z19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXBfYXJjaGl2ZXIuYwpAQCAtMzEwMiw2ICszMTAyLDE0IEBAIF90b2NFbnRyeVJlcXVpcmVkKFRv Y0VudHJ5ICp0ZSwgdGVTZWN0aW9uIGN1clNlY3Rpb24sIEFyY2hpdmVIYW5kbGUgKkFIKQogCQkJ CQkhc2ltcGxlX3N0cmluZ19saXN0X21lbWJlcigmcm9wdC0+dHJpZ2dlck5hbWVzLCB0ZS0+dGFn KSkKIAkJCQkJcmV0dXJuIDA7CiAJCQl9CisJCQllbHNlIGlmIChzdHJjbXAodGUtPmRlc2MsICJW QVJJQUJMRSIpID09IDApCisJCQl7CisJCQkJaWYgKCFyb3B0LT5zZWxWYXJpYWJsZSkKKwkJCQkJ cmV0dXJuIDA7CisJCQkJaWYgKHJvcHQtPnZhcmlhYmxlTmFtZXMuaGVhZCAhPSBOVUxMICYmCisJ CQkJCSFzaW1wbGVfc3RyaW5nX2xpc3RfbWVtYmVyKCZyb3B0LT52YXJpYWJsZU5hbWVzLCB0ZS0+ dGFnKSkKKwkJCQkJcmV0dXJuIDA7CisJCQl9CiAJCQllbHNlCiAJCQkJcmV0dXJuIDA7CiAJCX0K QEAgLTM2NTEsNiArMzY1OSw3IEBAIF9nZXRPYmplY3REZXNjcmlwdGlvbihQUUV4cEJ1ZmZlciBi dWYsIGNvbnN0IFRvY0VudHJ5ICp0ZSkKIAkJc3RyY21wKHR5cGUsICJURVhUIFNFQVJDSCBESUNU SU9OQVJZIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlRFWFQgU0VBUkNIIENPTkZJR1VSQVRJ T04iKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVFlQRSIpID09IDAgfHwKKwkJc3RyY21wKHR5 cGUsICJWQVJJQUJMRSIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJWSUVXIikgPT0gMCB8fAog CS8qIG5vbi1zY2hlbWEtc3BlY2lmaWVkIG9iamVjdHMgKi8KIAkJc3RyY21wKHR5cGUsICJEQVRB QkFTRSIpID09IDAgfHwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDhmNzNhNWRmOTUuLjllMzJjNDc4NDEgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYwpAQCAtMzYzLDYgKzM2Myw3IEBAIHN0YXRpYyB2b2lkIGR1bXBQdWJsaWNhdGlv bihBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvbkluZm8gKnB1YmluZm8pOwogc3RhdGlj IHZvaWQgZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRp b25SZWxJbmZvICpwdWJyaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wU3Vic2NyaXB0aW9uKEFyY2hp dmUgKmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlvbkluZm8gKnN1YmluZm8pOwogc3RhdGljIHZvaWQg ZHVtcFN1YnNjcmlwdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YlJlbEluZm8gKnN1 YnJpbmZvKTsKK3N0YXRpYyB2b2lkIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBW YXJpYWJsZUluZm8gKnZhcmluZm8pOwogc3RhdGljIHZvaWQgZHVtcERhdGFiYXNlKEFyY2hpdmUg KmZvdXQpOwogc3RhdGljIHZvaWQgZHVtcERhdGFiYXNlQ29uZmlnKEFyY2hpdmUgKkFILCBQUUV4 cEJ1ZmZlciBvdXRidWYsCiAJCQkJCQkJICAgY29uc3QgY2hhciAqZGJuYW1lLCBPaWQgZGJvaWQp OwpAQCAtNTQxOSw2ICs1NDIwLDE5MCBAQCBnZXRfbmV4dF9wb3NzaWJsZV9mcmVlX3BnX3R5cGVf b2lkKEFyY2hpdmUgKmZvdXQsIFBRRXhwQnVmZmVyIHVwZ3JhZGVfcXVlcnkpCiAJcmV0dXJuIG5l eHRfcG9zc2libGVfZnJlZV9vaWQ7CiB9CiAKKy8qCisgKiBnZXRWYXJpYWJsZXMKKyAqCSAgZ2V0 IGluZm9ybWF0aW9uIGFib3V0IHZhcmlhYmxlcworICovCit2b2lkCitnZXRWYXJpYWJsZXMoQXJj aGl2ZSAqZm91dCkKK3sKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwlQR3Jlc3VsdCAgICpyZXM7CisJ VmFyaWFibGVJbmZvICp2YXJpbmZvOworCWludAkJCWlfdGFibGVvaWQ7CisJaW50CQkJaV9vaWQ7 CisJaW50CQkJaV92YXJuYW1lOworCWludAkJCWlfdmFybmFtZXNwYWNlOworCWludAkJCWlfdmFy dHlwZTsKKwlpbnQJCQlpX3ZhcnR5cG5hbWU7CisJaW50CQkJaV92YXJvd25lcjsKKwlpbnQJCQlp X3ZhcmNvbGxhdGlvbjsKKwlpbnQJCQlpX3ZhcmFjbDsKKwlpbnQJCQlpX2FjbGRlZmF1bHQ7CisJ aW50CQkJaSwKKwkJCQludHVwczsKKworCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uIDwgMTgwMDAw KQorCQlyZXR1cm47CisKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlyZXNldFBR RXhwQnVmZmVyKHF1ZXJ5KTsKKworCS8qIGdldCB0aGUgdmFyaWFibGVzIGluIGN1cnJlbnQgZGF0 YWJhc2UgKi8KKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJICAiU0VMRUNUIHYudGFi bGVvaWQsIHYub2lkLCB2LnZhcm5hbWUsXG4iCisJCQkJCSAgIiAgICAgICB2LnZhcm5hbWVzcGFj ZSwgdi52YXJ0eXBlLFxuIgorCQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2 LnZhcnR5cGUsIHYudmFydHlwbW9kKSBhcyB2YXJ0eXBuYW1lLFxuIgorCQkJCQkgICIgICAgICAg Q0FTRSBXSEVOIHYudmFyY29sbGF0aW9uIDw+IHQudHlwY29sbGF0aW9uICIKKwkJCQkJICAiICAg ICAgICAgICAgVEhFTiB2LnZhcmNvbGxhdGlvblxuIgorCQkJCQkgICIgICAgICAgICAgICBFTFNF IDBcbiIKKwkJCQkJICAiICAgICAgIEVORCBBUyB2YXJjb2xsYXRpb24sXG4iCisJCQkJCSAgIiAg ICAgICB2LnZhcm93bmVyLCB2LnZhcmFjbCxcbiIKKwkJCQkJICAiICAgICAgIGFjbGRlZmF1bHQo J1YnLCB2LnZhcm93bmVyKSBBUyBhY2xkZWZhdWx0XG4iCisJCQkJCSAgIkZST00gcGdfY2F0YWxv Zy5wZ192YXJpYWJsZSB2XG4iCisJCQkJCSAgIkpPSU4gcGdfY2F0YWxvZy5wZ190eXBlIHQgIgor CQkJCQkgICJPTiAodi52YXJ0eXBlID0gdC5vaWQpIik7CisKKwlyZXMgPSBFeGVjdXRlU3FsUXVl cnkoZm91dCwgcXVlcnktPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CisKKwludHVwcyA9IFBRbnR1 cGxlcyhyZXMpOworCisJaV90YWJsZW9pZCA9IFBRZm51bWJlcihyZXMsICJ0YWJsZW9pZCIpOwor CWlfb2lkID0gUFFmbnVtYmVyKHJlcywgIm9pZCIpOworCWlfdmFybmFtZSA9IFBRZm51bWJlcihy ZXMsICJ2YXJuYW1lIik7CisJaV92YXJuYW1lc3BhY2UgPSBQUWZudW1iZXIocmVzLCAidmFybmFt ZXNwYWNlIik7CisJaV92YXJ0eXBlID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cGUiKTsKKwlpX3Zh cnR5cG5hbWUgPSBQUWZudW1iZXIocmVzLCAidmFydHlwbmFtZSIpOworCWlfdmFyY29sbGF0aW9u ID0gUFFmbnVtYmVyKHJlcywgInZhcmNvbGxhdGlvbiIpOworCisJaV92YXJvd25lciA9IFBRZm51 bWJlcihyZXMsICJ2YXJvd25lciIpOworCWlfdmFyYWNsID0gUFFmbnVtYmVyKHJlcywgInZhcmFj bCIpOworCWlfYWNsZGVmYXVsdCA9IFBRZm51bWJlcihyZXMsICJhY2xkZWZhdWx0Iik7CisKKwl2 YXJpbmZvID0gcGdfbWFsbG9jKG50dXBzICogc2l6ZW9mKFZhcmlhYmxlSW5mbykpOworCisJZm9y IChpID0gMDsgaSA8IG50dXBzOyBpKyspCisJeworCQlUeXBlSW5mbyAgICp2dHlwZTsKKworCQl2 YXJpbmZvW2ldLmRvYmoub2JqVHlwZSA9IERPX1ZBUklBQkxFOworCQl2YXJpbmZvW2ldLmRvYmou Y2F0SWQudGFibGVvaWQgPQorCQkJYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3RhYmxlb2lk KSk7CisJCXZhcmluZm9baV0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMs IGksIGlfb2lkKSk7CisJCUFzc2lnbkR1bXBJZCgmdmFyaW5mb1tpXS5kb2JqKTsKKwkJdmFyaW5m b1tpXS5kb2JqLm5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFybmFtZSkp OworCQl2YXJpbmZvW2ldLmRvYmoubmFtZXNwYWNlID0KKwkJCWZpbmROYW1lc3BhY2UoYXRvb2lk KFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm5hbWVzcGFjZSkpKTsKKworCQl2YXJpbmZvW2ldLnZh cnR5cGUgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFydHlwZSkpOworCQl2YXJpbmZv W2ldLnZhcnR5cG5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFydHlwbmFt ZSkpOworCQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlvbiA9IGF0b29pZChQUWdldHZhbHVlKHJlcywg aSwgaV92YXJjb2xsYXRpb24pKTsKKworCQl2YXJpbmZvW2ldLmRhY2wuYWNsID0gcGdfc3RyZHVw KFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmFjbCkpOworCQl2YXJpbmZvW2ldLmRhY2wuYWNsZGVm YXVsdCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9hY2xkZWZhdWx0KSk7CisJCXZh cmluZm9baV0uZGFjbC5wcml2dHlwZSA9IDA7CisJCXZhcmluZm9baV0uZGFjbC5pbml0cHJpdnMg PSBOVUxMOworCQl2YXJpbmZvW2ldLnJvbG5hbWUgPSBnZXRSb2xlTmFtZShQUWdldHZhbHVlKHJl cywgaSwgaV92YXJvd25lcikpOworCisJCS8qIGRvIG5vdCB0cnkgdG8gZHVtcCBBQ0wgaWYgbm8g QUNMIGV4aXN0cyAqLworCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgaSwgaV92YXJhY2wpKQorCQkJ dmFyaW5mb1tpXS5kb2JqLmNvbXBvbmVudHMgfD0gRFVNUF9DT01QT05FTlRfQUNMOworCisJCWlm IChzdHJsZW4odmFyaW5mb1tpXS5yb2xuYW1lKSA9PSAwKQorCQkJcGdfbG9nX3dhcm5pbmcoIm93 bmVyIG9mIHZhcmlhYmxlIFwiJXNcIiBhcHBlYXJzIHRvIGJlIGludmFsaWQiLAorCQkJCQkJICAg dmFyaW5mb1tpXS5kb2JqLm5hbWUpOworCisJCS8qIGRlY2lkZSB3aGV0aGVyIHdlIHdhbnQgdG8g ZHVtcCBpdCAqLworCQlzZWxlY3REdW1wYWJsZU9iamVjdCgmKHZhcmluZm9baV0uZG9iaiksIGZv dXQpOworCisJCXZ0eXBlID0gZmluZFR5cGVCeU9pZCh2YXJpbmZvW2ldLnZhcnR5cGUpOworCQlh ZGRPYmplY3REZXBlbmRlbmN5KCZ2YXJpbmZvW2ldLmRvYmosIHZ0eXBlLT5kb2JqLmR1bXBJZCk7 CisJfQorCVBRY2xlYXIocmVzKTsKKworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7Cit9CisK Ky8qCisgKiBkdW1wVmFyaWFibGUKKyAqCSAgZHVtcCB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgZ2l2 ZW4gc2Vzc2lvbiB2YXJpYWJsZQorICovCitzdGF0aWMgdm9pZAorZHVtcFZhcmlhYmxlKEFyY2hp dmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKK3sKKwlEdW1wT3B0aW9ucyAq ZG9wdCA9IGZvdXQtPmRvcHQ7CisKKwlQUUV4cEJ1ZmZlciBkZWxxOworCVBRRXhwQnVmZmVyIHF1 ZXJ5OworCWNoYXIJICAgKnF1YWx2YXJuYW1lOworCWNvbnN0IGNoYXIgKnZhcnR5cG5hbWU7CisJ T2lkCQkJdmFyY29sbGF0aW9uOworCisJLyogc2tpcCBpZiBub3QgdG8gYmUgZHVtcGVkICovCisJ aWYgKCF2YXJpbmZvLT5kb2JqLmR1bXAgfHwgIWRvcHQtPmR1bXBTY2hlbWEpCisJCXJldHVybjsK KworCWRlbHEgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCXF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZm ZXIoKTsKKworCXF1YWx2YXJuYW1lID0gcGdfc3RyZHVwKGZtdFF1YWxpZmllZER1bXBhYmxlKHZh cmluZm8pKTsKKwl2YXJ0eXBuYW1lID0gdmFyaW5mby0+dmFydHlwbmFtZTsKKwl2YXJjb2xsYXRp b24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAi RFJPUCBWQVJJQUJMRSAlcztcbiIsCisJCQkJCSAgcXVhbHZhcm5hbWUpOworCisJYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksICJDUkVBVEUgVkFSSUFCTEUgJXMgQVMgJXMiLAorCQkJCQkgIHF1YWx2 YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKworCWlmIChPaWRJc1ZhbGlkKHZhcmNvbGxhdGlvbikpCisJ eworCQlDb2xsSW5mbyAgICpjb2xsOworCisJCWNvbGwgPSBmaW5kQ29sbGF0aW9uQnlPaWQodmFy Y29sbGF0aW9uKTsKKwkJaWYgKGNvbGwpCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBD T0xMQVRFICVzIiwKKwkJCQkJCQkgIGZtdFF1YWxpZmllZER1bXBhYmxlKGNvbGwpKTsKKwl9CisK KwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIjtcbiIpOworCisJaWYgKHZhcmluZm8tPmRvYmou ZHVtcCAmIERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04pCisJCUFyY2hpdmVFbnRyeShmb3V0LCB2 YXJpbmZvLT5kb2JqLmNhdElkLCB2YXJpbmZvLT5kb2JqLmR1bXBJZCwKKwkJCQkJIEFSQ0hJVkVf T1BUUygudGFnID0gdmFyaW5mby0+ZG9iai5uYW1lLAorCQkJCQkJCQkgIC5uYW1lc3BhY2UgPSB2 YXJpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLAorCQkJCQkJCQkgIC5vd25lciA9IHZh cmluZm8tPnJvbG5hbWUsCisJCQkJCQkJCSAgLmRlc2NyaXB0aW9uID0gIlZBUklBQkxFIiwKKwkJ CQkJCQkJICAuc2VjdGlvbiA9IFNFQ1RJT05fUFJFX0RBVEEsCisJCQkJCQkJCSAgLmNyZWF0ZVN0 bXQgPSBxdWVyeS0+ZGF0YSwKKwkJCQkJCQkJICAuZHJvcFN0bXQgPSBkZWxxLT5kYXRhKSk7CisK KwkvKiBkdW1wIGNvbW1lbnQgaWYgYW55ICovCisJaWYgKHZhcmluZm8tPmRvYmouZHVtcCAmIERV TVBfQ09NUE9ORU5UX0NPTU1FTlQpCisJCWR1bXBDb21tZW50KGZvdXQsICJWQVJJQUJMRSIsIHF1 YWx2YXJuYW1lLAorCQkJCQlOVUxMLCB2YXJpbmZvLT5yb2xuYW1lLAorCQkJCQl2YXJpbmZvLT5k b2JqLmNhdElkLCAwLCB2YXJpbmZvLT5kb2JqLmR1bXBJZCk7CisKKwkvKiBkdW1wIEFDTCBpZiBh bnkgKi8KKwlpZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfQUNMKQorCXsK KwkJY2hhcgkgICAqcXZhcm5hbWUgPSBwZ19zdHJkdXAoZm10SWQodmFyaW5mby0+ZG9iai5uYW1l KSk7CisKKwkJZHVtcEFDTChmb3V0LCB2YXJpbmZvLT5kb2JqLmR1bXBJZCwgSW52YWxpZER1bXBJ ZCwgIlZBUklBQkxFIiwKKwkJCQlxdmFybmFtZSwgTlVMTCwKKwkJCQl2YXJpbmZvLT5kb2JqLm5h bWVzcGFjZS0+ZG9iai5uYW1lLCBOVUxMLCB2YXJpbmZvLT5yb2xuYW1lLAorCQkJCSZ2YXJpbmZv LT5kYWNsKTsKKworCQlmcmVlKHF2YXJuYW1lKTsKKwl9CisKKwlkZXN0cm95UFFFeHBCdWZmZXIo ZGVscSk7CisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsKKworCWZyZWUocXVhbHZhcm5hbWUp OworfQorCiBzdGF0aWMgdm9pZAogYmluYXJ5X3VwZ3JhZGVfc2V0X3R5cGVfb2lkc19ieV90eXBl X29pZChBcmNoaXZlICpmb3V0LAogCQkJCQkJCQkJCSBQUUV4cEJ1ZmZlciB1cGdyYWRlX2J1ZmZl ciwKQEAgLTEwMTQ1LDcgKzEwMzMwLDggQEAgZ2V0QWRkaXRpb25hbEFDTHMoQXJjaGl2ZSAqZm91 dCkKIAkJCQkJZG9iai0+b2JqVHlwZSA9PSBET19UQUJMRSB8fAogCQkJCQlkb2JqLT5vYmpUeXBl ID09IERPX1BST0NMQU5HIHx8CiAJCQkJCWRvYmotPm9ialR5cGUgPT0gRE9fRkRXIHx8Ci0JCQkJ CWRvYmotPm9ialR5cGUgPT0gRE9fRk9SRUlHTl9TRVJWRVIpCisJCQkJCWRvYmotPm9ialR5cGUg PT0gRE9fRk9SRUlHTl9TRVJWRVIgfHwKKwkJCQkJZG9iai0+b2JqVHlwZSA9PSBET19WQVJJQUJM RSkKIAkJCQl7CiAJCQkJCUR1bXBhYmxlT2JqZWN0V2l0aEFjbCAqZGFvYmogPSAoRHVtcGFibGVP YmplY3RXaXRoQWNsICopIGRvYmo7CiAKQEAgLTEwNzQ0LDYgKzEwOTMwLDkgQEAgZHVtcER1bXBh YmxlT2JqZWN0KEFyY2hpdmUgKmZvdXQsIER1bXBhYmxlT2JqZWN0ICpkb2JqKQogCQljYXNlIERP X1NVQlNDUklQVElPTl9SRUw6CiAJCQlkdW1wU3Vic2NyaXB0aW9uVGFibGUoZm91dCwgKGNvbnN0 IFN1YlJlbEluZm8gKikgZG9iaik7CiAJCQlicmVhazsKKwkJY2FzZSBET19WQVJJQUJMRToKKwkJ CWR1bXBWYXJpYWJsZShmb3V0LCAoVmFyaWFibGVJbmZvICopIGRvYmopOworCQkJYnJlYWs7CiAJ CWNhc2UgRE9fUFJFX0RBVEFfQk9VTkRBUlk6CiAJCWNhc2UgRE9fUE9TVF9EQVRBX0JPVU5EQVJZ OgogCQkJLyogbmV2ZXIgZHVtcGVkLCBub3RoaW5nIHRvIGRvICovCkBAIC0xNTE5NSw2ICsxNTM4 NCw5IEBAIGR1bXBEZWZhdWx0QUNMKEFyY2hpdmUgKmZvdXQsIGNvbnN0IERlZmF1bHRBQ0xJbmZv ICpkYWNsaW5mbykKIAkJY2FzZSBERUZBQ0xPQkpfTkFNRVNQQUNFOgogCQkJdHlwZSA9ICJTQ0hF TUFTIjsKIAkJCWJyZWFrOworCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCXR5cGUgPSAi VkFSSUFCTEVTIjsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJLyogc2hvdWxkbid0IGdldCBo ZXJlICovCiAJCQlwZ19mYXRhbCgidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlIGluIGRlZmF1bHQg cHJpdmlsZWdlczogJWQiLApAQCAtMTg5MTQsNiArMTkxMDYsNyBAQCBhZGRCb3VuZGFyeURlcGVu ZGVuY2llcyhEdW1wYWJsZU9iamVjdCAqKmRvYmpzLCBpbnQgbnVtT2JqcywKIAkJCWNhc2UgRE9f Q09OVkVSU0lPTjoKIAkJCWNhc2UgRE9fVEFCTEU6CiAJCQljYXNlIERPX1RBQkxFX0FUVEFDSDoK KwkJCWNhc2UgRE9fVkFSSUFCTEU6CiAJCQljYXNlIERPX0FUVFJERUY6CiAJCQljYXNlIERPX1BS T0NMQU5HOgogCQkJY2FzZSBET19DQVNUOgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggZjYyYjU2NGVkMS4uOGE2 MmI1YjQxMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC01Miw2ICs1Miw3IEBAIHR5cGVkZWYgZW51bQogCURP X1RBQkxFLAogCURPX1RBQkxFX0FUVEFDSCwKIAlET19BVFRSREVGLAorCURPX1ZBUklBQkxFLAog CURPX0lOREVYLAogCURPX0lOREVYX0FUVEFDSCwKIAlET19TVEFUU0VYVCwKQEAgLTcwNyw2ICs3 MDgsMjMgQEAgdHlwZWRlZiBzdHJ1Y3QgX1N1YlJlbEluZm8KIAljaGFyCSAgICpzcnN1YmxzbjsK IH0gU3ViUmVsSW5mbzsKIAorLyoKKyAqIFRoZSBWYXJpYWJsZUluZm8gc3RydWN0IGlzIHVzZWQg dG8gcmVwcmVzZW50IHNlc3Npb24gdmFyaWFibGVzCisgKi8KK3R5cGVkZWYgc3RydWN0IF9WYXJp YWJsZUluZm8KK3sKKwlEdW1wYWJsZU9iamVjdCBkb2JqOworCUR1bXBhYmxlQWNsIGRhY2w7CisJ T2lkCQkJdmFydHlwZTsKKwljaGFyCSAgICp2YXJ0eXBuYW1lOworCWNoYXIJICAgKnZhcmFjbDsK KwljaGFyCSAgICpydmFyYWNsOworCWNoYXIJICAgKmluaXR2YXJhY2w7CisJY2hhcgkgICAqaW5p dHJ2YXJhY2w7CisJT2lkCQkJdmFyY29sbGF0aW9uOworCWNvbnN0IGNoYXIgKnJvbG5hbWU7CQkv KiBuYW1lIG9mIG93bmVyLCBvciBlbXB0eSBzdHJpbmcgKi8KK30gVmFyaWFibGVJbmZvOworCiAv KgogICoJY29tbW9uIHV0aWxpdHkgZnVuY3Rpb25zCiAgKi8KQEAgLTc5MCw1ICs4MDgsNiBAQCBl eHRlcm4gdm9pZCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8g dGJsaW5mb1tdLAogCQkJCQkJCQkgaW50IG51bVRhYmxlcyk7CiBleHRlcm4gdm9pZCBnZXRTdWJz Y3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpOwogZXh0ZXJuIHZvaWQgZ2V0U3Vic2NyaXB0aW9uVGFi bGVzKEFyY2hpdmUgKmZvdXQpOworZXh0ZXJuIHZvaWQgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZv dXQpOwogCiAjZW5kaWYJCQkJCQkJLyogUEdfRFVNUF9IICovCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMK aW5kZXggZGM5YTI4OTI0Yi4uODQyOTczZjExMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXBfc29ydC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpAQCAt NzcsNiArNzcsNyBAQCBlbnVtIGRiT2JqZWN0VHlwZVByaW9yaXRpZXMKIAlQUklPX0RVTU1ZX1RZ UEUsCiAJUFJJT19BVFRSREVGLAogCVBSSU9fTEFSR0VfT0JKRUNULAorCVBSSU9fVkFSSUFCTEUs CiAJUFJJT19QUkVfREFUQV9CT1VOREFSWSwJCS8qIGJvdW5kYXJ5ISAqLwogCVBSSU9fVEFCTEVf REFUQSwKIAlQUklPX1NFUVVFTkNFX1NFVCwKQEAgLTExOCw2ICsxMTksNyBAQCBzdGF0aWMgY29u c3QgaW50IGRiT2JqZWN0VHlwZVByaW9yaXR5W10gPQogCVtET19UQUJMRV0gPSBQUklPX1RBQkxF LAogCVtET19UQUJMRV9BVFRBQ0hdID0gUFJJT19UQUJMRV9BVFRBQ0gsCiAJW0RPX0FUVFJERUZd ID0gUFJJT19BVFRSREVGLAorCVtET19WQVJJQUJMRV0gPSBQUklPX1ZBUklBQkxFLAogCVtET19J TkRFWF0gPSBQUklPX0lOREVYLAogCVtET19JTkRFWF9BVFRBQ0hdID0gUFJJT19JTkRFWF9BVFRB Q0gsCiAJW0RPX1NUQVRTRVhUXSA9IFBSSU9fU1RBVFNFWFQsCkBAIC0xNTAwLDYgKzE1MDIsMTAg QEAgZGVzY3JpYmVEdW1wYWJsZU9iamVjdChEdW1wYWJsZU9iamVjdCAqb2JqLCBjaGFyICpidWYs IGludCBidWZzaXplKQogCQkJCQkgIlBPU1QtREFUQSBCT1VOREFSWSAgKElEICVkKSIsCiAJCQkJ CSBvYmotPmR1bXBJZCk7CiAJCQlyZXR1cm47CisJCWNhc2UgRE9fVkFSSUFCTEU6CisJCQlzbnBy aW50ZihidWYsIGJ1ZnNpemUsCisJCQkJCSAiVkFSSUFCTEUgJXMgIChJRCAlZCBPSUQgJXUpIiwK KwkJCQkJIG9iai0+bmFtZSwgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKIAl9CiAJLyog c2hvdWxkbid0IGdldCBoZXJlICovCiAJc25wcmludGYoYnVmLCBidWZzaXplLApkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8w MDJfcGdfZHVtcC5wbAppbmRleCBiZjY1ZDQ0Yjk0Li42NDIzZTdiOWQyIDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8w MDJfcGdfZHVtcC5wbApAQCAtNzg5LDYgKzc4OSwxNiBAQCBteSAldGVzdHMgPSAoCiAJCXVubGlr ZSA9PiB7IG5vX3ByaXZzID0+IDEsIH0sCiAJICB9LAogCisJJ0FMVEVSIERFRkFVTFQgUFJJVklM RUdFUyBGT1IgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIEdSQU5UIFNFTEVDVCBPTiBWQVJJ QUJMRVMgVE8gUFVCTElDJworCSAgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTYsCisJCWNyZWF0 ZV9zcWwgICA9PiAnQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfZHVt cF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFUyBUTyBQVUJMSUM7JywKKwkJcmVn ZXhwID0+IHFyL14KKwkJCVxRQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jl c3NfZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFUyBUTyBQVUJMSUM7XEUv eG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAor CQl1bmxpa2UgPT4geyBub19wcml2cyA9PiAxLCB9LAorCSAgfSwKKwogCSdBTFRFUiBST0xFIHJl Z3Jlc3NfZHVtcF90ZXN0X3JvbGUnID0+IHsKIAkJcmVnZXhwID0+IHFyL14KIAkJCVxRQUxURVIg Uk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIFdJVEggXEUKQEAgLTE2NzQsNiArMTY4NCwyMyBA QCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDT01NRU5UIE9OIFZBUklBQkxFIGR1bXBf dGVzdC52YXJpYWJsZTEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDcxLAorCQljcmVhdGVfc3Fs ICAgPT4gJ0NPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMQorCQkJCQkgICBJ UyBcJ2NvbW1lbnQgb24gdmFyaWFibGVcJzsnLAorCQlyZWdleHAgPT4KKwkJICBxci9eXFFDT01N RU5UIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgSVMgJ2NvbW1lbnQgb24gdmFyaWFi bGUnO1xFL20sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2No ZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhICAgICA9PiAxLAorCQl9LAorCQl1bmxpa2Ug PT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVh c3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NPUFkgdGVzdF90YWJsZScgPT4gewog CQljcmVhdGVfb3JkZXIgPT4gNCwKIAkJY3JlYXRlX3NxbCA9PiAnSU5TRVJUIElOVE8gZHVtcF90 ZXN0LnRlc3RfdGFibGUgKGNvbDEpICcKQEAgLTM5NDIsNiArMzk2OSwyNCBAQCBteSAldGVzdHMg PSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZScgPT4gewor CQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1h bmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBW QVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIEFTIGludGVnZXI7JywKKwkJcmVnZXhwID0+IHFy L14KKwkJCVxRQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgQVMgaW50ZWdlcjtc RS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFf cnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJ CWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50 ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0ZXN0X3ZpZXcnID0+IHsKIAkJ Y3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdDUkVBVEUgVklFVyBkdW1wX3Rl c3QudGVzdF92aWV3CkBAIC00NDA0LDYgKzQ0NDksMjUgQEAgbXkgJXRlc3RzID0gKAogCQlsaWtl ID0+IHt9LAogCX0sCiAKKwknR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJp YWJsZTEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDczLAorCQljcmVhdGVfc3FsID0+CisJCSAg J0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIFRPIHJlZ3Jlc3Nf ZHVtcF90ZXN0X3JvbGU7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRR1JBTlQgU0VMRUNUIE9O IFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgVE8gcmVncmVzc19kdW1wX3Rlc3Rfcm9sZTtc RQorCQkJL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3Nj aGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4g eworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlub19wcml2cyAgICAgICAg ICAgICAgICAgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAor CX0sCisKIAknUkVGUkVTSCBNQVRFUklBTElaRUQgVklFVyBtYXR2aWV3JyA9PiB7CiAJCXJlZ2V4 cCA9PiBxci9eXFFSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIGR1bXBfdGVzdC5tYXR2aWV3O1xF L20sCiAJCWxpa2UgPT4KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMgYi9zcmMv YmluL3BzcWwvY29tbWFuZC5jCmluZGV4IDYxMzU4MzE0NWUuLjgwMWMwMWM0NTAgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwpA QCAtMTA5Nyw2ICsxMDk3LDkgQEAgZXhlY19jb21tYW5kX2QoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0 YXRlLCBib29sIGFjdGl2ZV9icmFuY2gsIGNvbnN0IGNoYXIgKmNtZCkKIAkJCQkJCWJyZWFrOwog CQkJCX0KIAkJCQlicmVhazsKKwkJCWNhc2UgJ1YnOgkJCS8qIFZhcmlhYmxlcyAqLworCQkJCXN1 Y2Nlc3MgPSBsaXN0VmFyaWFibGVzKHBhdHRlcm4sIHNob3dfdmVyYm9zZSk7CisJCQkJYnJlYWs7 CiAJCQljYXNlICd4JzoJCQkvKiBFeHRlbnNpb25zICovCiAJCQkJaWYgKHNob3dfdmVyYm9zZSkK IAkJCQkJc3VjY2VzcyA9IGxpc3RFeHRlbnNpb25Db250ZW50cyhwYXR0ZXJuKTsKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5k ZXggMmVmOTk5NzFhYy4uMDU3NDdjNGQ3NiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTEyMjEsNyArMTIyMSw3IEBA IGxpc3REZWZhdWx0QUNMcyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCXByaW50ZlBRRXhwQnVmZmVy KCZidWYsCiAJCQkJCSAgIlNFTEVDVCBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZChkLmRlZmFj bHJvbGUpIEFTIFwiJXNcIixcbiIKIAkJCQkJICAiICBuLm5zcG5hbWUgQVMgXCIlc1wiLFxuIgot CQkJCQkgICIgIENBU0UgZC5kZWZhY2xvYmp0eXBlIFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAn JWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgV0hF TiAnJWMnIFRIRU4gJyVzJyBFTkQgQVMgXCIlc1wiLFxuIgorCQkJCQkgICIgIENBU0UgZC5kZWZh Y2xvYmp0eXBlIFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICcl YycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVO ICclYycgVEhFTiAnJXMnIEVORCBBUyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgIiwKIAkJCQkJICBn ZXR0ZXh0X25vb3AoIk93bmVyIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hlbWEiKSwKQEAg LTEyMzUsNiArMTIzNSw4IEBAIGxpc3REZWZhdWx0QUNMcyhjb25zdCBjaGFyICpwYXR0ZXJuKQog CQkJCQkgIGdldHRleHRfbm9vcCgidHlwZSIpLAogCQkJCQkgIERFRkFDTE9CSl9OQU1FU1BBQ0Us CiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJzY2hlbWEiKSwKKwkJCQkJICBERUZBQ0xPQkpfVkFSSUFC TEUsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJzZXNzaW9uIHZhcmlhYmxlIiksCiAJCQkJCSAgZ2V0 dGV4dF9ub29wKCJUeXBlIikpOwogCiAJcHJpbnRBQ0xDb2x1bW4oJmJ1ZiwgImQuZGVmYWNsYWNs Iik7CkBAIC01MjU4LDYgKzUyNjAsMTAyIEBAIGVycm9yX3JldHVybjoKIAlyZXR1cm4gZmFsc2U7 CiB9CiAKKy8qCisgKiBcZFYKKyAqCisgKiBsaXN0VmFyaWFibGVzKCkKKyAqLworYm9vbAorbGlz dFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCit7CisJUFFFeHBC dWZmZXJEYXRhIGJ1ZjsKKwlQR3Jlc3VsdCAgICpyZXM7CisJcHJpbnRRdWVyeU9wdCBteW9wdCA9 IHBzZXQucG9wdDsKKwlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2Zh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKworCWlmIChw c2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQorCXsKKwkJY2hhcgkJc3ZlcmJ1ZlszMl07CisKKwkJcGdf bG9nX2Vycm9yKCJUaGUgc2VydmVyICh2ZXJzaW9uICVzKSBkb2VzIG5vdCBzdXBwb3J0IHNlc3Np b24gdmFyaWFibGVzLiIsCisJCQkJCSBmb3JtYXRQR1ZlcnNpb25OdW1iZXIocHNldC5zdmVyc2lv biwgZmFsc2UsCisJCQkJCQkJCQkJICAgc3ZlcmJ1Ziwgc2l6ZW9mKHN2ZXJidWYpKSk7CisJCXJl dHVybiB0cnVlOworCX0KKworCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKKworCXByaW50ZlBRRXhw QnVmZmVyKCZidWYsCisJCQkJCSAgIlNFTEVDVCBuLm5zcG5hbWUgYXMgXCIlc1wiLFxuIgorCQkJ CQkgICIgIHYudmFybmFtZSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5mb3Jt YXRfdHlwZSh2LnZhcnR5cGUsIHYudmFydHlwbW9kKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAg KFNFTEVDVCBjLmNvbGxuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0 YWxvZy5wZ190eXBlIGJ0XG4iCisJCQkJCSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xsYXRp b24gQU5EIGJ0Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlwY29s bGF0aW9uKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5 aWQodi52YXJvd25lcikgYXMgXCIlc1wiXG4iLAorCQkJCQkgIGdldHRleHRfbm9vcCgiU2NoZW1h IiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJU eXBlIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb2xsYXRpb24iKSwKKwkJCQkJICBnZXR0ZXh0 X25vb3AoIk93bmVyIikpOworCisJaWYgKHZlcmJvc2UpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZl clN0cigmYnVmLCAiLFxuICAiKTsKKwkJcHJpbnRBQ0xDb2x1bW4oJmJ1ZiwgInYudmFyYWNsIik7 CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIsXG4gIHBnX2NhdGFsb2cub2Jq X2Rlc2NyaXB0aW9uKHYub2lkLCAncGdfdmFyaWFibGUnKSBBUyBcIiVzXCIiLAorCQkJCQkJICBn ZXR0ZXh0X25vb3AoIkRlc2NyaXB0aW9uIikpOworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsCisJCQkJCQkgIlxuRlJPTSBwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlIHYiCisJCQkJCQkg IlxuICAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9IHYu dmFybmFtZXNwYWNlIik7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiXG5XSEVSRSB0 cnVlXG4iKTsKKwlpZiAoIXBhdHRlcm4pCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIg ICAgICBBTkQgbi5uc3BuYW1lIDw+ICdwZ19jYXRhbG9nJ1xuIgorCQkJCQkJCSAiICAgICAgQU5E IG4ubnNwbmFtZSA8PiAnaW5mb3JtYXRpb25fc2NoZW1hJ1xuIik7CisKKwlpZiAoIXZhbGlkYXRl U1FMTmFtZVBhdHRlcm4oJmJ1ZiwgcGF0dGVybiwgdHJ1ZSwgZmFsc2UsCisJCQkJCQkJCSJuLm5z cG5hbWUiLCAidi52YXJuYW1lIiwgTlVMTCwKKwkJCQkJCQkJInBnX2NhdGFsb2cucGdfdmFyaWFi bGVfaXNfdmlzaWJsZSh2Lm9pZCkiLAorCQkJCQkJCQlOVUxMLCAzKSkKKwkJcmV0dXJuIGZhbHNl OworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVSIEJZIDEsMjsiKTsKKworCXJl cyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJaWYgKCFy ZXMpCisJCXJldHVybiBmYWxzZTsKKworCS8qCisJICogTW9zdCBmdW5jdGlvbnMgaW4gdGhpcyBm aWxlIGFyZSBjb250ZW50IHRvIHByaW50IGFuIGVtcHR5IHRhYmxlIHdoZW4KKwkgKiB0aGVyZSBh cmUgbm8gbWF0Y2hpbmcgb2JqZWN0cy4gIFdlIGludGVudGlvbmFsbHkgZGV2aWF0ZSBmcm9tIHRo YXQKKwkgKiBoZXJlLCBidXQgb25seSBpbiAhcXVpZXQgbW9kZSwgZm9yIGhpc3RvcmljYWwgcmVh c29ucy4KKwkgKi8KKwlpZiAoUFFudHVwbGVzKHJlcykgPT0gMCAmJiAhcHNldC5xdWlldCkKKwl7 CisJCWlmIChwYXR0ZXJuKQorCQkJcGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHNlc3Np b24gdmFyaWFibGUgbmFtZWQgXCIlc1wiLiIsCisJCQkJCQkgcGF0dGVybik7CisJCWVsc2UKKwkJ CXBnX2xvZ19lcnJvcigiRGlkIG5vdCBmaW5kIGFueSBzZXNzaW9uIHZhcmlhYmxlcy4iKTsKKwl9 CisJZWxzZQorCXsKKwkJbXlvcHQubnVsbFByaW50ID0gTlVMTDsKKwkJbXlvcHQudGl0bGUgPSBf KCJMaXN0IG9mIHZhcmlhYmxlcyIpOworCQlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsK KwkJbXlvcHQudHJhbnNsYXRlX2NvbHVtbnMgPSB0cmFuc2xhdGVfY29sdW1uczsKKwkJbXlvcHQu bl90cmFuc2xhdGVfY29sdW1ucyA9IGxlbmd0aG9mKHRyYW5zbGF0ZV9jb2x1bW5zKTsKKworCQlw cmludFF1ZXJ5KHJlcywgJm15b3B0LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9nZmls ZSk7CisJfQorCisJUFFjbGVhcihyZXMpOworCXJldHVybiB0cnVlOworfQogCiAvKgogICogXGRG cApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmggYi9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuaAppbmRleCAxOGVjYWE2MDk0Li41NWNlZDRhYWI3IDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuaAorKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaApAQCAtMTQ5LDQg KzE0OSw3IEBAIGV4dGVybiBib29sIGxpc3RPcEZhbWlseUZ1bmN0aW9ucyhjb25zdCBjaGFyICph Y2Nlc3NfbWV0aG9kX3BhdHRlcm4sCiAvKiBcZGwgb3IgXGxvX2xpc3QgKi8KIGV4dGVybiBib29s IGxpc3RMYXJnZU9iamVjdHMoYm9vbCB2ZXJib3NlKTsKIAorLyogXGRWICovCitleHRlcm4gYm9v bCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmFyYm9zZSk7CisKICNl bmRpZgkJCQkJCQkvKiBERVNDUklCRV9IICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvaGVs cC5jIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwppbmRleCBkYThlMWFkZTVkLi45YTAyYTA5ODZkIDEw MDY0NAotLS0gYS9zcmMvYmluL3BzcWwvaGVscC5jCisrKyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMK QEAgLTI2Niw2ICsyNjYsNyBAQCBzbGFzaFVzYWdlKHVuc2lnbmVkIHNob3J0IGludCBwYWdlcikK IAlIRUxQMCgiICBcXGRUW1N4K10gW1BBVFRFUk5dICAgICBsaXN0IGRhdGEgdHlwZXNcbiIpOwog CUhFTFAwKCIgIFxcZHVbU3grXSBbUEFUVEVSTl0gICAgIGxpc3Qgcm9sZXNcbiIpOwogCUhFTFAw KCIgIFxcZHZbU3grXSBbUEFUVEVSTl0gICAgIGxpc3Qgdmlld3NcbiIpOworCUhFTFAwKCIgIFxc ZFZbeCtdICBbUEFUVEVSTl0gICAgIGxpc3Qgc2Vzc2lvbiB2YXJpYWJsZXNcbiIpOwogCUhFTFAw KCIgIFxcZHhbeCtdICBbUEFUVEVSTl0gICAgIGxpc3QgZXh0ZW5zaW9uc1xuIik7CiAJSEVMUDAo IiAgXFxkWFt4XSAgIFtQQVRURVJOXSAgICAgbGlzdCBleHRlbmRlZCBzdGF0aXN0aWNzXG4iKTsK IAlIRUxQMCgiICBcXGR5W3grXSAgW1BBVFRFUk5dICAgICBsaXN0IGV2ZW50IHRyaWdnZXJzXG4i KTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCA4MWNiZjEwYWEyLi42ZWViZmM2YTVmIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jCkBAIC05NzAsNiArOTcwLDEzIEBAIHN0YXRpYyBjb25zdCBTY2hl bWFRdWVyeSBRdWVyeV9mb3JfdHJpZ2dlcl9vZl90YWJsZSA9IHsKIAkucmVmbmFtZXNwYWNlID0g ImMxLnJlbG5hbWVzcGFjZSIsCiB9OwogCitzdGF0aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVlcnlf Zm9yX2xpc3Rfb2ZfdmFyaWFibGVzID0geworCS5taW5fc2VydmVyX3ZlcnNpb24gPSAxODAwMDAs CisJLmNhdG5hbWUgPSAicGdfY2F0YWxvZy5wZ192YXJpYWJsZSB2IiwKKwkudmlzY29uZGl0aW9u ID0gInBnX2NhdGFsb2cucGdfdmFyaWFibGVfaXNfdmlzaWJsZSh2Lm9pZCkiLAorCS5uYW1lc3Bh Y2UgPSAidi52YXJuYW1lc3BhY2UiLAorCS5yZXN1bHQgPSAidi52YXJuYW1lIiwKK307CiAKIC8q CiAgKiBRdWVyaWVzIHRvIGdldCBsaXN0cyBvZiBuYW1lcyBvZiB2YXJpb3VzIGtpbmRzIG9mIHRo aW5ncywgcG9zc2libHkKQEAgLTEzMDQsNiArMTMxMSw3IEBAIHN0YXRpYyBjb25zdCBwZ3NxbF90 aGluZ190IHdvcmRzX2FmdGVyX2NyZWF0ZVtdID0gewogCQkJCQkJCQkJCQkJCQkJCQkJCSAqIFRB QkxFIC4uLiAqLwogCXsiVVNFUiIsIFF1ZXJ5X2Zvcl9saXN0X29mX3JvbGVzLCBOVUxMLCBOVUxM LCBLZXl3b3Jkc19mb3JfdXNlcl90aGluZ30sCiAJeyJVU0VSIE1BUFBJTkcgRk9SIiwgTlVMTCwg TlVMTCwgTlVMTH0sCisJeyJWQVJJQUJMRSIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9v Zl92YXJpYWJsZXN9LAogCXsiVklFVyIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl92 aWV3c30sCiAJe05VTEx9CQkJCQkJLyogZW5kIG9mIGxpc3QgKi8KIH07CkBAIC0xODY1LDcgKzE4 NzMsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQg ZW5kKQogCQkiXFxkRiIsICJcXGRGZCIsICJcXGRGcCIsICJcXGRGdCIsICJcXGRnIiwgIlxcZGki LCAiXFxkbCIsICJcXGRMIiwKIAkJIlxcZG0iLCAiXFxkbiIsICJcXGRvIiwgIlxcZE8iLCAiXFxk cCIsICJcXGRQIiwgIlxcZFBpIiwgIlxcZFB0IiwKIAkJIlxcZHJkcyIsICJcXGRyZyIsICJcXGRS cyIsICJcXGRScCIsICJcXGRzIiwKLQkJIlxcZHQiLCAiXFxkVCIsICJcXGR2IiwgIlxcZHUiLCAi XFxkeCIsICJcXGRYIiwgIlxcZHkiLAorCQkiXFxkdCIsICJcXGRUIiwgIlxcZHYiLCAiXFxkdSIs ICJcXGR4IiwgIlxcZFgiLCAiXFxkeSIsICJcXGRWIiwKIAkJIlxcZWNobyIsICJcXGVkaXQiLCAi XFxlZiIsICJcXGVsaWYiLCAiXFxlbHNlIiwgIlxcZW5jb2RpbmciLAogCQkiXFxlbmRpZiIsICJc XGVycnZlcmJvc2UiLCAiXFxldiIsCiAJCSJcXGYiLApAQCAtMjU1Niw2ICsyNTY0LDkgQEAgbWF0 Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQkJCQkJCQkJICAiQUxMIik7CiAJ ZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiU1lTVEVNIiwgIlNFVCIsIE1hdGNoQW55KSkKIAkJ Q09NUExFVEVfV0lUSCgiVE8iKTsKKwkvKiBBTFRFUiBWQVJJQUJMRSA8bmFtZT4gKi8KKwllbHNl IGlmIChNYXRjaGVzKCJBTFRFUiIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVf V0lUSCgiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlNFVCBTQ0hFTUEiKTsKIAkvKiBBTFRFUiBW SUVXIDxuYW1lPiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlZJRVciLCBNYXRjaEFu eSkpCiAJCUNPTVBMRVRFX1dJVEgoIkFMVEVSIENPTFVNTiIsICJPV05FUiBUTyIsICJSRU5BTUUi LCAiUkVTRVQiLCAiU0VUIik7CkBAIC0zMTM2LDcgKzMxNDcsNyBAQCBtYXRjaF9wcmV2aW91c193 b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJICAiUk9VVElORSIsICJSVUxFIiwgIlNDSEVNQSIs ICJTRVFVRU5DRSIsICJTRVJWRVIiLAogCQkJCQkgICJTVEFUSVNUSUNTIiwgIlNVQlNDUklQVElP TiIsICJUQUJMRSIsCiAJCQkJCSAgIlRBQkxFU1BBQ0UiLCAiVEVYVCBTRUFSQ0giLCAiVFJBTlNG T1JNIEZPUiIsCi0JCQkJCSAgIlRSSUdHRVIiLCAiVFlQRSIsICJWSUVXIik7CisJCQkJCSAgIlRS SUdHRVIiLCAiVFlQRSIsICJWQVJJQUJMRSIsICJWSUVXIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygi Q09NTUVOVCIsICJPTiIsICJBQ0NFU1MiLCAiTUVUSE9EIikpCiAJCUNPTVBMRVRFX1dJVEhfUVVF UlkoUXVlcnlfZm9yX2xpc3Rfb2ZfYWNjZXNzX21ldGhvZHMpOwogCWVsc2UgaWYgKE1hdGNoZXMo IkNPTU1FTlQiLCAiT04iLCAiQ09OU1RSQUlOVCIpKQpAQCAtMzk0Niw2ICszOTU3LDEzIEBAIG1h dGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQllbHNlIGlmIChUYWlsTWF0Y2hl cygiPSIsIE1hdGNoQW55RXhjZXB0KCIqKSIpKSkKIAkJCUNPTVBMRVRFX1dJVEgoIiwiLCAiKSIp OwogCX0KKy8qIENSRUFURSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFND SEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCisJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxF IDxuYW1lPiB3aXRoIEFTICovCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJ QUJMRSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiQVMiKTsKKwllbHNlIGlmIChUYWls TWF0Y2hlcygiVkFSSUFCTEUiLCBNYXRjaEFueSwgIkFTIikpCisJCS8qIENvbXBsZXRlIENSRUFU RSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyB0eXBlcyAqLworCQlDT01QTEVURV9XSVRIX1NDSEVN QV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9kYXRhdHlwZXMpOwogCiAvKiBDUkVBVEUgVklFVyAt LS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICov CiAJLyogQ29tcGxldGUgQ1JFQVRFIFsgT1IgUkVQTEFDRSBdIFZJRVcgPG5hbWU+IHdpdGggQVMg b3IgV0lUSCAqLwpAQCAtNDIyMyw2ICs0MjQxLDEyIEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGlu dCBwYXR0ZXJuX2lkLAogCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiVFJBTlNGT1JNIiwgIkZP UiIsIE1hdGNoQW55LCAiTEFOR1VBR0UiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIkNB U0NBREUiLCAiUkVTVFJJQ1QiKTsKIAorCS8qIERST1AgVkFSSUFCTEUgKi8KKwllbHNlIGlmIChN YXRjaGVzKCJEUk9QIiwgIlZBUklBQkxFIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZ KFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CisJZWxzZSBpZiAoTWF0Y2hlcygiRFJPUCIs ICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiQ0FTQ0FERSIsICJSRVNU UklDVCIpOworCiAvKiBFWEVDVVRFICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRVhFQ1VURSIpKQog CQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ByZXBhcmVkX3N0YXRlbWVu dHMpOwpAQCAtNDQyNCw3ICs0NDQ4LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRl cm5faWQsCiAJCSAqIG9iamVjdHMgc3VwcG9ydGVkLgogCQkgKi8KIAkJaWYgKEhlYWRNYXRjaGVz KCJBTFRFUiIsICJERUZBVUxUIiwgIlBSSVZJTEVHRVMiKSkKLQkJCUNPTVBMRVRFX1dJVEgoIlRB QkxFUyIsICJTRVFVRU5DRVMiLCAiRlVOQ1RJT05TIiwgIlBST0NFRFVSRVMiLCAiUk9VVElORVMi LCAiVFlQRVMiLCAiU0NIRU1BUyIpOworCQkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIiwgIlNFUVVF TkNFUyIsICJGVU5DVElPTlMiLCAiUFJPQ0VEVVJFUyIsICJST1VUSU5FUyIsICJUWVBFUyIsICJT Q0hFTUFTIiwgIlZBUklBQkxFUyIpOwogCQllbHNlCiAJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9R VUVSWV9QTFVTKFF1ZXJ5X2Zvcl9saXN0X29mX2dyYW50YWJsZXMsCiAJCQkJCQkJCQkJCSJBTEwg RlVOQ1RJT05TIElOIFNDSEVNQSIsCkBAIC00NDMyLDYgKzQ0NTYsNyBAQCBtYXRjaF9wcmV2aW91 c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJCQkJCQkJIkFMTCBST1VUSU5FUyBJTiBTQ0hF TUEiLAogCQkJCQkJCQkJCQkiQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQki QUxMIFRBQkxFUyBJTiBTQ0hFTUEiLAorCQkJCQkJCQkJCQkiQUxMIFZBUklBQkxFUyBJTiBTQ0hF TUEiLAogCQkJCQkJCQkJCQkiREFUQUJBU0UiLAogCQkJCQkJCQkJCQkiRE9NQUlOIiwKIAkJCQkJ CQkJCQkJIkZPUkVJR04gREFUQSBXUkFQUEVSIiwKQEAgLTQ0NDYsNyArNDQ3MSw4IEBAIG1hdGNo X3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkJCQkJCQkiU0VRVUVOQ0UiLAog CQkJCQkJCQkJCQkiVEFCTEUiLAogCQkJCQkJCQkJCQkiVEFCTEVTUEFDRSIsCi0JCQkJCQkJCQkJ CSJUWVBFIik7CisJCQkJCQkJCQkJCSJUWVBFIiwKKwkJCQkJCQkJCQkJIlZBUklBQkxFIik7CiAJ fQogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVHxSRVZPS0UiLCBNYXRjaEFueSwgIk9OIiwg IkFMTCIpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlJFVk9LRSIsICJHUkFOVCIsICJPUFRJT04iLCAi Rk9SIiwgTWF0Y2hBbnksICJPTiIsICJBTEwiKSkKQEAgLTQ0NTQsNyArNDQ4MCw4IEBAIG1hdGNo X3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkgICJQUk9DRURVUkVTIElOIFND SEVNQSIsCiAJCQkJCSAgIlJPVVRJTkVTIElOIFNDSEVNQSIsCiAJCQkJCSAgIlNFUVVFTkNFUyBJ TiBTQ0hFTUEiLAotCQkJCQkgICJUQUJMRVMgSU4gU0NIRU1BIik7CisJCQkJCSAgIlRBQkxFUyBJ TiBTQ0hFTUEiLAorCQkJCQkgICJWQVJJQUJMRVMgSU4gU0NIRU1BIik7CiAJZWxzZSBpZiAoVGFp bE1hdGNoZXMoIkdSQU5UfFJFVk9LRSIsIE1hdGNoQW55LCAiT04iLCAiRk9SRUlHTiIpIHx8CiAJ CQkgVGFpbE1hdGNoZXMoIlJFVk9LRSIsICJHUkFOVCIsICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hB bnksICJPTiIsICJGT1JFSUdOIikpCiAJCUNPTVBMRVRFX1dJVEgoIkRBVEEgV1JBUFBFUiIsICJT RVJWRVIiKTsKQEAgLTQ0OTAsNiArNDUxNyw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCQkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJs ZXNwYWNlcyk7CiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJUWVBFIikpCiAJCQlDT01QTEVURV9X SVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9kYXRhdHlwZXMpOworCQllbHNlIGlm IChUYWlsTWF0Y2hlcygiVkFSSUFCTEUiKSkKKwkJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZ KFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJH UkFOVCIsIE1hdGNoQW55LCBNYXRjaEFueSwgTWF0Y2hBbnkpKQogCQkJQ09NUExFVEVfV0lUSCgi VE8iKTsKIAkJZWxzZQpAQCAtNDc5Miw3ICs0ODIxLDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMo aW50IHBhdHRlcm5faWQsCiAKIC8qIFBSRVBBUkUgeHggQVMgKi8KIAllbHNlIGlmIChNYXRjaGVz KCJQUkVQQVJFIiwgTWF0Y2hBbnksICJBUyIpKQotCQlDT01QTEVURV9XSVRIKCJTRUxFQ1QiLCAi VVBEQVRFIiwgIklOU0VSVCBJTlRPIiwgIkRFTEVURSBGUk9NIik7CisJCUNPTVBMRVRFX1dJVEgo IlNFTEVDVCIsICJVUERBVEUiLCAiSU5TRVJUIElOVE8iLCAiREVMRVRFIEZST00iLCAiTEVUIik7 CiAKIC8qCiAgKiBQUkVQQVJFIFRSQU5TQUNUSU9OIGlzIG1pc3Npbmcgb24gcHVycG9zZS4gSXQn cyBpbnRlbmRlZCBmb3IgdHJhbnNhY3Rpb24KQEAgLTUyNzQsNiArNTMwMyw4IEBAIG1hdGNoX3By ZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5 X2Zvcl9saXN0X29mX3JvbGVzKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGR2KiIpKQog CQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92aWV3cyk7CisJ ZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkVioiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFf UVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hl c0NTKCJcXGR4KiIpKQogCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2V4 dGVuc2lvbnMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZFgqIikpCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtl ZmlsZQppbmRleCAyYmJjNzgwNWZlLi5mOTg3NjBkZTYzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL01ha2VmaWxlCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKQEAg LTgxLDcgKzgxLDggQEAgQ0FUQUxPR19IRUFERVJTIDo9IFwKIAlwZ19wdWJsaWNhdGlvbl9uYW1l c3BhY2UuaCBcCiAJcGdfcHVibGljYXRpb25fcmVsLmggXAogCXBnX3N1YnNjcmlwdGlvbi5oIFwK LQlwZ19zdWJzY3JpcHRpb25fcmVsLmgKKwlwZ19zdWJzY3JpcHRpb25fcmVsLmggXAorCXBnX3Zh cmlhYmxlLmgKIAogR0VORVJBVEVEX0hFQURFUlMgOj0gJChDQVRBTE9HX0hFQURFUlM6JS5oPSVf ZC5oKQogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAppbmRleCBlYzFjZjQ2N2Y2Li44MTM5OGVmYTdj IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKQEAgLTY5LDYgKzY5LDcgQEAgY2F0YWxvZ19oZWFk ZXJzID0gWwogICAncGdfcHVibGljYXRpb25fcmVsLmgnLAogICAncGdfc3Vic2NyaXB0aW9uLmgn LAogICAncGdfc3Vic2NyaXB0aW9uX3JlbC5oJywKKyAgJ3BnX3ZhcmlhYmxlLmgnLAogXQogCiAj IFRoZSAuZGF0IGZpbGVzIHdlIG5lZWQgY2FuIGp1c3QgYmUgbGlzdGVkIGFscGhhYmV0aWNhbGx5 LgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKaW5kZXggOGM3Y2NjNjlhMy4uYmRhYzBjMTNiZSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC05Nyw2ICs5Nyw4IEBAIGV4dGVybiBPaWQJVHlwZW5h bWVHZXRUeXBpZChjb25zdCBjaGFyICp0eXBuYW1lKTsKIGV4dGVybiBPaWQJVHlwZW5hbWVHZXRU eXBpZEV4dGVuZGVkKGNvbnN0IGNoYXIgKnR5cG5hbWUsIGJvb2wgdGVtcF9vayk7CiBleHRlcm4g Ym9vbCBUeXBlSXNWaXNpYmxlKE9pZCB0eXBpZCk7CiAKK2V4dGVybiBib29sIFZhcmlhYmxlSXNW aXNpYmxlKE9pZCB2YXJpZCk7CisKIGV4dGVybiBGdW5jQ2FuZGlkYXRlTGlzdCBGdW5jbmFtZUdl dENhbmRpZGF0ZXMoTGlzdCAqbmFtZXMsCiAJCQkJCQkJCQkJCSAgIGludCBuYXJncywgTGlzdCAq YXJnbmFtZXMsCiAJCQkJCQkJCQkJCSAgIGJvb2wgZXhwYW5kX3ZhcmlhZGljLApAQCAtMTY5LDYg KzE3MSwxMCBAQCBleHRlcm4gU2VhcmNoUGF0aE1hdGNoZXIgKkdldFNlYXJjaFBhdGhNYXRjaGVy KE1lbW9yeUNvbnRleHQgY29udGV4dCk7CiBleHRlcm4gU2VhcmNoUGF0aE1hdGNoZXIgKkNvcHlT ZWFyY2hQYXRoTWF0Y2hlcihTZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiBleHRlcm4gYm9vbCBT ZWFyY2hQYXRoTWF0Y2hlc0N1cnJlbnRFbnZpcm9ubWVudChTZWFyY2hQYXRoTWF0Y2hlciAqcGF0 aCk7CiAKK2V4dGVybiBMaXN0ICpOYW1lc0Zyb21MaXN0KExpc3QgKm5hbWVzKTsKK2V4dGVybiBP aWQJTG9va3VwVmFyaWFibGUoY29uc3QgY2hhciAqbnNwbmFtZSwgY29uc3QgY2hhciAqdmFybmFt ZSwgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBPaWQJTG9va3VwVmFyaWFibGVGcm9tTmFtZUxp c3QoTGlzdCAqbmFtZXMsIGJvb2wgbWlzc2luZ19vayk7CisKIGV4dGVybiBPaWQJZ2V0X2NvbGxh dGlvbl9vaWQoTGlzdCAqY29sbG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdl dF9jb252ZXJzaW9uX29pZChMaXN0ICpjb25uYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJu IE9pZAlGaW5kRGVmYXVsdENvbnZlcnNpb25Qcm9jKGludDMyIGZvcl9lbmNvZGluZywgaW50MzIg dG9fZW5jb2RpbmcpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0 X2FjbC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCmluZGV4IDcyODAy NGIxZmEuLjVmOTQ0MjRhNjggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVm YXVsdF9hY2wuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmgKQEAg LTY4LDYgKzY4LDcgQEAgTUFLRV9TWVNDQUNIRShERUZBQ0xST0xFTlNQT0JKLCBwZ19kZWZhdWx0 X2FjbF9yb2xlX25zcF9vYmpfaW5kZXgsIDgpOwogI2RlZmluZSBERUZBQ0xPQkpfRlVOQ1RJT04J CSdmJyAvKiBmdW5jdGlvbiAqLwogI2RlZmluZSBERUZBQ0xPQkpfVFlQRQkJCSdUJyAvKiB0eXBl ICovCiAjZGVmaW5lIERFRkFDTE9CSl9OQU1FU1BBQ0UJCSduJyAvKiBuYW1lc3BhY2UgKi8KKyNk ZWZpbmUgREVGQUNMT0JKX1ZBUklBQkxFCQknVicgLyogdmFyaWFibGUgKi8KIAogI2VuZGlmCQkJ CQkJCS8qIEVYUE9TRV9UT19DTElFTlRfQ09ERSAqLwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApp bmRleCAxODU2MDc1NWQyLi5iN2YwNDIwNmYyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAg LTUzOTUsNiArNTM5NSwyNiBAQAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlwZXMg PT4gJ29pZCBvaWQgdGV4dCcsCiAgIHByb3NyYyA9PiAnaGFzX2xhcmdlb2JqZWN0X3ByaXZpbGVn ZV9pZF9pZCcgfSwKIAoreyBvaWQgPT4gJzk2MTMnLCBkZXNjciA9PiAndXNlciBwcml2aWxlZ2Ug b24gc2Vzc2lvbiB2YXJpYWJsZSBieSB1c2VybmFtZSwgc2VxIG5hbWUnLAorICBwcm9uYW1lID0+ ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHBy b3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAnbmFtZSB0ZXh0IHRleHQnLAor ICBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lX25hbWUnIH0s Cit7IG9pZCA9PiAnOTYxNCcsIGRlc2NyID0+ICd1c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9uIHZh cmlhYmxlIGJ5IHVzZXJuYW1lLCBzZXEgb2lkJywKKyAgcHJvbmFtZSA9PiAnaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdi b29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ25hbWUgb2lkIHRleHQnLCBwcm9zcmMgPT4gJ2hhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lX2lkJyB9LAoreyBvaWQgPT4gJzk2MTUnLCBk ZXNjciA9PiAndXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSB1c2VyIG9pZCwg c2VxIG5hbWUnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Un LCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBl cyA9PiAnb2lkIHRleHQgdGV4dCcsIHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlX2lkX25hbWUnIH0sCit7IG9pZCA9PiAnOTYxNicsIGRlc2NyID0+ICd1c2VyIHByaXZp bGVnZSBvbiBzZXNzaW9uIHZhcmlhYmxlIGJ5IHVzZXIgb2lkLCBzZXEgb2lkJywKKyAgcHJvbmFt ZSA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3Mn LCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ29pZCBvaWQgdGV4dCcs IHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkX2lkJyB9LAoreyBv aWQgPT4gJzk2MTcnLCBkZXNjciA9PiAnY3VycmVudCB1c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9u IHZhcmlhYmxlIGJ5IHNlcSBuYW1lJywKKyAgcHJvbmFtZSA9PiAnaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdib29sJywK KyAgcHJvYXJndHlwZXMgPT4gJ3RleHQgdGV4dCcsIHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlX25hbWUnIH0sCit7IG9pZCA9PiAnOTYxOCcsIGRlc2NyID0+ICdjdXJy ZW50IHVzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgc2VxIG9pZCcsCisgIHBy b25hbWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICdvaWQgdGV4dCcs IHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkJyB9LAorCiB7IG9p ZCA9PiAnMzM1NScsIGRlc2NyID0+ICdJL08nLAogICBwcm9uYW1lID0+ICdwZ19uZGlzdGluY3Rf aW4nLCBwcm9yZXR0eXBlID0+ICdwZ19uZGlzdGluY3QnLAogICBwcm9hcmd0eXBlcyA9PiAnY3N0 cmluZycsIHByb3NyYyA9PiAncGdfbmRpc3RpbmN0X2luJyB9LApAQCAtNjU3OSw2ICs2NTk5LDkg QEAKICAgcHJvbmFtZSA9PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnLCBwcm9jb3N0ID0+ICcx MCcsIHByb3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5 cGVzID0+ICdvaWQnLAogICBwcm9zcmMgPT4gJ3BnX2NvbGxhdGlvbl9pc192aXNpYmxlJyB9LAor eyBvaWQgPT4gJzk5OTknLCBkZXNjciA9PiAnaXMgc2Vzc2lvbiB2YXJpYWJsZSB2aXNpYmxlIGlu IHNlYXJjaCBwYXRoPycsCisgIHByb25hbWUgPT4gJ3BnX3ZhcmlhYmxlX2lzX3Zpc2libGUnLCBw cm9jb3N0ID0+ICcxMCcsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcmV0dHlwZSA9PiAnYm9v bCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLCBwcm9zcmMgPT4gJ3BnX3ZhcmlhYmxlX2lzX3Zpc2li bGUnIH0sCiAKIHsgb2lkID0+ICcyODU0JywgZGVzY3IgPT4gJ2dldCBPSUQgb2YgY3VycmVudCBz ZXNzaW9uXCdzIHRlbXAgc2NoZW1hLCBpZiBhbnknLAogICBwcm9uYW1lID0+ICdwZ19teV90ZW1w X3NjaGVtYScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3InLApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ192YXJpYWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu LjNkM2M2ZWIyNGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zh cmlhYmxlLmgKQEAgLTAsMCArMSw4MSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdf dmFyaWFibGUuaAorICoJICBkZWZpbml0aW9uIG9mIHNlc3Npb24gdmFyaWFibGVzIHN5c3RlbSBj YXRhbG9nIChwZ192YXJpYWJsZXMpCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlm b3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKyAqCisgKiBO T1RFUworICoJICBUaGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFuZCBkZXJp dmVzIHNjaGVtYQorICoJICBpbmZvcm1hdGlvbi4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq LworI2lmbmRlZiBQR19WQVJJQUJMRV9ICisjZGVmaW5lIFBHX1ZBUklBQkxFX0gKKworI2luY2x1 ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZV9kLmgiCisjaW5jbHVkZSAidXRpbHMvYWNs LmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlwZ192YXJpYWJsZSBkZWZpbml0aW9uLiAg Y3BwIHR1cm5zIHRoaXMgaW50bworICoJCXR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX3Zhcmlh YmxlCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFMT0cocGdfdmFyaWFibGUsOTIyMixW YXJpYWJsZVJlbGF0aW9uSWQpCit7CisJT2lkCQkJb2lkOwkJCS8qIG9pZCAqLworCisJLyogT0lE IG9mIGVudHJ5IGluIHBnX3R5cGUgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLworCU9pZAkJCXZhcnR5 cGUgQktJX0xPT0tVUChwZ190eXBlKTsKKworCS8qIHZhcmlhYmxlIG5hbWUgKi8KKwlOYW1lRGF0 YQl2YXJuYW1lOworCisJLyogT0lEIG9mIG5hbWVzcGFjZSBjb250YWluaW5nIHZhcmlhYmxlIGNs YXNzICovCisJT2lkCQkJdmFybmFtZXNwYWNlIEJLSV9MT09LVVAocGdfbmFtZXNwYWNlKTsKKwor CS8qIHZhcmlhYmxlIG93bmVyICovCisJT2lkCQkJdmFyb3duZXIgQktJX0xPT0tVUChwZ19hdXRo aWQpOworCisJLyogdHlwbW9kIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KKwlpbnQzMgkJdmFydHlw bW9kIEJLSV9ERUZBVUxUKC0xKTsKKworCS8qIHZhcmlhYmxlIGNvbGxhdGlvbiAqLworCU9pZAkJ CXZhcmNvbGxhdGlvbiBCS0lfREVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChwZ19jb2xsYXRpb24p OworCisKKyNpZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMg c3RhcnQgaGVyZSAqLworCisJLyogYWNjZXNzIHBlcm1pc3Npb25zICovCisJYWNsaXRlbQkJdmFy YWNsWzFdIEJLSV9ERUZBVUxUKF9udWxsXyk7CisKKyNlbmRpZgorfSBGb3JtRGF0YV9wZ192YXJp YWJsZTsKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCUZvcm1fcGdfdmFyaWFibGUgY29ycmVz cG9uZHMgdG8gYSBwb2ludGVyIHRvIGEgdHVwbGUgd2l0aAorICoJCXRoZSBmb3JtYXQgb2YgdGhl IHBnX3ZhcmlhYmxlIHJlbGF0aW9uLgorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVm IEZvcm1EYXRhX3BnX3ZhcmlhYmxlICpGb3JtX3BnX3ZhcmlhYmxlOworCitERUNMQVJFX1RPQVNU KHBnX3ZhcmlhYmxlLCA5MjIzLCA5MjI0KTsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShw Z192YXJpYWJsZV9vaWRfaW5kZXgsIDkyMjUsIFZhcmlhYmxlT2lkSW5kZXhJZCwgcGdfdmFyaWFi bGUsIGJ0cmVlKG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ192YXJpYWJs ZV92YXJuYW1lX25zcF9pbmRleCwgOTIyNiwgVmFyaWFibGVOYW1lTnNwSW5kZXhJZCwgcGdfdmFy aWFibGUsIGJ0cmVlKHZhcm5hbWUgbmFtZV9vcHMsIHZhcm5hbWVzcGFjZSBvaWRfb3BzKSk7CisK K2V4dGVybiBPYmplY3RBZGRyZXNzIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwK KwkJCQkJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KTsKK2V4dGVybiB2b2lkIERyb3BW YXJpYWJsZUJ5SWQoT2lkIHZhcmlkKTsKKworTUFLRV9TWVNDQUNIRShWQVJJQUJMRU5BTUVOU1As IHBnX3ZhcmlhYmxlX3Zhcm5hbWVfbnNwX2luZGV4LCA4KTsKK01BS0VfU1lTQ0FDSEUoVkFSSUFC TEVPSUQsIHBnX3ZhcmlhYmxlX29pZF9pbmRleCwgOCk7CisKKyNlbmRpZgkJCQkJCQkvKiBQR19W QVJJQUJMRV9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggZmZlMTU1ZWUyMC4uNTFiYTI5 YmJhZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMjM2MCw2ICsyMzYwLDcgQEAgdHlwZWRl ZiBlbnVtIE9iamVjdFR5cGUKIAlPQkpFQ1RfVFNURU1QTEFURSwKIAlPQkpFQ1RfVFlQRSwKIAlP QkpFQ1RfVVNFUl9NQVBQSU5HLAorCU9CSkVDVF9WQVJJQUJMRSwKIAlPQkpFQ1RfVklFVywKIH0g T2JqZWN0VHlwZTsKIApAQCAtMzQ5NCw2ICszNDk1LDIxIEBAIHR5cGVkZWYgc3RydWN0IEFsdGVy U3RhdHNTdG10CiAJYm9vbAkJbWlzc2luZ19vazsJCS8qIHNraXAgZXJyb3IgaWYgc3RhdGlzdGlj cyBvYmplY3QgaXMgbWlzc2luZyAqLwogfSBBbHRlclN0YXRzU3RtdDsKIAorCisvKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKgkJe0NyZWF0ZXxBbHRlcn0gVkFSSUFCTEUgU3RhdGVtZW50Cisg KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IENyZWF0ZVNlc3Np b25WYXJTdG10Cit7CisJTm9kZVRhZwkJdHlwZTsKKwlSYW5nZVZhciAgICp2YXJpYWJsZTsJCS8q IHRoZSB2YXJpYWJsZSB0byBjcmVhdGUgKi8KKwlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRo ZSB0eXBlIG9mIHZhcmlhYmxlICovCisJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsKKwlib29s CQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICovCit9 IENyZWF0ZVNlc3Npb25WYXJTdG10OworCisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAq CQlDcmVhdGUgRnVuY3Rpb24gU3RhdGVtZW50CiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJz ZXIva3dsaXN0LmgKaW5kZXggY2YyOTE3YWQwNy4uZDBjMWM0M2Y1YiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aApAQCAtNDg1LDYgKzQ4NSw4IEBAIFBHX0tFWVdPUkQoInZhbGlkYXRvciIsIFZBTElEQVRPUiwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFsdWUiLCBWQUxV RV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YWx1ZXMi LCBWQUxVRVMsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJj aGFyIiwgVkFSQ0hBUiwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQo InZhcmlhYmxlIiwgVkFSSUFCTEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BH X0tFWVdPUkQoInZhcmlhYmxlcyIsIFZBUklBQkxFUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgidmFyaWFkaWMiLCBWQVJJQURJQywgUkVTRVJWRURfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcnlpbmciLCBWQVJZSU5HLCBVTlJFU0VSVkVE X0tFWVdPUkQsIEFTX0xBQkVMKQogUEdfS0VZV09SRCgidmVyYm9zZSIsIFZFUkJPU0UsIFRZUEVf RlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90 Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4IGQy NTBhNzE0ZDUuLmVhODY5NTRkZGUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC02OCw2ICs2OCw3 IEBAIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVFJBTlNGT1JNLCAiQUxURVIgVFJBTlNGT1JNIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9UUklHR0VSLCAiQUxU RVIgVFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJf VFlQRSwgIkFMVEVSIFRZUEUiLCB0cnVlLCB0cnVlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf QUxURVJfVVNFUl9NQVBQSU5HLCAiQUxURVIgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2UsIGZh bHNlKQorUEdfQ01EVEFHKENNRFRBR19BTFRFUl9WQVJJQUJMRSwgIkFMVEVSIFZBUklBQkxFIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9WSUVXLCAiQUxURVIg VklFVyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQU5BTFlaRSwgIkFO QUxZWkUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19CRUdJTiwgIkJF R0lOIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAgLTEyMyw2ICsxMjQsNyBAQCBQR19DTURUQUco Q01EVEFHX0NSRUFURV9UUkFOU0ZPUk0sICJDUkVBVEUgVFJBTlNGT1JNIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVFJJR0dFUiwgIkNSRUFURSBUUklHR0VS IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVFlQRSwgIkNS RUFURSBUWVBFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVf VVNFUl9NQVBQSU5HLCAiQ1JFQVRFIFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNlLCBmYWxzZSkK K1BHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1ZBUklBQkxFLCAiQ1JFQVRFIFZBUklBQkxFIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVklFVywgIkNSRUFURSBW SUVXIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ERUFMTE9DQVRFLCAi REVBTExPQ0FURSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RFQUxM T0NBVEVfQUxMLCAiREVBTExPQ0FURSBBTEwiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTc1 LDYgKzE3Nyw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9UUkFOU0ZPUk0sICJEUk9QIFRSQU5T Rk9STSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9UUklHR0VS LCAiRFJPUCBUUklHR0VSIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19E Uk9QX1RZUEUsICJEUk9QIFRZUEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0RST1BfVVNFUl9NQVBQSU5HLCAiRFJPUCBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RST1BfVkFSSUFCTEUsICJEUk9QIFZBUklBQkxFIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1ZJRVcsICJEUk9QIFZJ RVciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0VYRUNVVEUsICJFWEVD VVRFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRVhQTEFJTiwgIkVY UExBSU4iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRp bHMvYWNsLmggYi9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAppbmRleCAwMWFlNWI3MTlmLi41ZTFh OGE4MmU5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAorKysgYi9zcmMvaW5j bHVkZS91dGlscy9hY2wuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHR5cGVkZWYgc3RydWN0IEFycmF5 VHlwZSBBY2w7CiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1NDSEVNQQkJKEFDTF9VU0FHRXxBQ0xf Q1JFQVRFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19UQUJMRVNQQUNFCShBQ0xfQ1JFQVRFKQog I2RlZmluZSBBQ0xfQUxMX1JJR0hUU19UWVBFCQkJKEFDTF9VU0FHRSkKKyNkZWZpbmUgQUNMX0FM TF9SSUdIVFNfVkFSSUFCTEUJCShBQ0xfU0VMRUNUfEFDTF9VUERBVEUpCiAKIC8qIG9wZXJhdGlv biBjb2RlcyBmb3IgcGdfKl9hY2xtYXNrICovCiB0eXBlZGVmIGVudW0KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hl LmgKaW5kZXggYjIzZGViOTY2Mi4uNTNjNGQ1ODg2ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv dXRpbHMvbHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAg LTEzNCw2ICsxMzQsNyBAQCBleHRlcm4gY2hhciBnZXRfZnVuY19wcm9raW5kKE9pZCBmdW5jaWQp OwogZXh0ZXJuIGJvb2wgZ2V0X2Z1bmNfbGVha3Byb29mKE9pZCBmdW5jaWQpOwogZXh0ZXJuIFJl Z1Byb2NlZHVyZSBnZXRfZnVuY19zdXBwb3J0KE9pZCBmdW5jaWQpOwogZXh0ZXJuIE9pZAlnZXRf cmVsbmFtZV9yZWxpZChjb25zdCBjaGFyICpyZWxuYW1lLCBPaWQgcmVsbmFtZXNwYWNlKTsKK2V4 dGVybiBPaWQJZ2V0X3Zhcm5hbWVfdmFyaWQoY29uc3QgY2hhciAqdmFybmFtZSwgT2lkIHZhcm5h bWVzcGFjZSk7CiBleHRlcm4gY2hhciAqZ2V0X3JlbF9uYW1lKE9pZCByZWxpZCk7CiBleHRlcm4g T2lkCWdldF9yZWxfbmFtZXNwYWNlKE9pZCByZWxpZCk7CiBleHRlcm4gT2lkCWdldF9yZWxfdHlw ZV9pZChPaWQgcmVsaWQpOwpAQCAtMjA2LDYgKzIwNywxNCBAQCBleHRlcm4gY2hhciAqZ2V0X3B1 YmxpY2F0aW9uX25hbWUoT2lkIHB1YmlkLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAln ZXRfc3Vic2NyaXB0aW9uX29pZChjb25zdCBjaGFyICpzdWJuYW1lLCBib29sIG1pc3Npbmdfb2sp OwogZXh0ZXJuIGNoYXIgKmdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQsIGJvb2wgbWlz c2luZ19vayk7CiAKK2V4dGVybiBjaGFyICpnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2 YXJpZCk7CitleHRlcm4gT2lkCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShPaWQgdmFy aWQpOworZXh0ZXJuIE9pZAlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlKE9pZCB2YXJpZCk7Citl eHRlcm4gdm9pZCBnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQoT2lkIHZh cmlkLAorCQkJCQkJCQkJCQkJCU9pZCAqdHlwaWQsCisJCQkJCQkJCQkJCQkJaW50MzIgKnR5cG1v ZCwKKwkJCQkJCQkJCQkJCQlPaWQgKmNvbGxpZCk7CisKICNkZWZpbmUgdHlwZV9pc19hcnJheSh0 eXBpZCkgIChnZXRfZWxlbWVudF90eXBlKHR5cGlkKSAhPSBJbnZhbGlkT2lkKQogLyogdHlwZV9p c19hcnJheV9kb21haW4gYWNjZXB0cyBib3RoIHBsYWluIGFycmF5cyBhbmQgZG9tYWlucyBvdmVy IGFycmF5cyAqLwogI2RlZmluZSB0eXBlX2lzX2FycmF5X2RvbWFpbih0eXBpZCkgIChnZXRfYmFz ZV9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRPaWQpCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9kZXBlbmRlbmN5Lm91dAppbmRleCA3NGQ5ZmYyOTk4Li5jMzM2ZjY3YTU5IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQKQEAgLTE1MSwzICsxNTEsMjAgQEAg b3duZXIgb2YgdHlwZSBkZXB0ZXN0X3QKIERST1AgT1dORUQgQlkgcmVncmVzc19kZXBfdXNlcjIs IHJlZ3Jlc3NfZGVwX3VzZXIwOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIyOwogRFJPUCBV U0VSIHJlZ3Jlc3NfZGVwX3VzZXIwOworLS0gZGVwZW5kZW5jeSBvbiB0eXBlCitDUkVBVEUgRE9N QUlOIHZhcmRvbWFpbiBBUyBpbnQ7CitDUkVBVEUgVFlQRSB2YXJ0eXBlIEFTIChhIGludCwgYiBp bnQsIGMgdmFyZG9tYWluKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnR5cGU7CistLSBz aG91bGQgZmFpbAorRFJPUCBET01BSU4gdmFyZG9tYWluOworRVJST1I6ICBjYW5ub3QgZHJvcCB0 eXBlIHZhcmRvbWFpbiBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6 ICBjb2x1bW4gYyBvZiBjb21wb3NpdGUgdHlwZSB2YXJ0eXBlIGRlcGVuZHMgb24gdHlwZSB2YXJk b21haW4KK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQg b2JqZWN0cyB0b28uCitEUk9QIFRZUEUgdmFydHlwZTsKK0VSUk9SOiAgY2Fubm90IGRyb3AgdHlw ZSB2YXJ0eXBlIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHNl c3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIHR5cGUgdmFydHlwZQorSElOVDogIFVzZSBE Uk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0tIGNs ZWFuIHVwCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdmFydHlwZTsKK0RST1AgRE9N QUlOIHZhcmRvbWFpbjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lk am9pbnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKaW5kZXgg MjE1ZWI4OTliZS4uZDk5NTMzMjE0MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9vaWRqb2lucy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lu cy5vdXQKQEAgLTI2NiwzICsyNjYsNyBAQCBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRp b24ge3N1YmRiaWR9ID0+IHBnX2RhdGFiYXNlIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19z dWJzY3JpcHRpb24ge3N1Ym93bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KIE5PVElDRTogIGNoZWNr aW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3Nyc3ViaWR9ID0+IHBnX3N1YnNjcmlwdGlvbiB7b2lk fQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uX3JlbCB7c3JyZWxpZH0gPT4gcGdf Y2xhc3Mge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2YXJ0eXBlfSA9PiBw Z190eXBlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJsZSB7dmFybmFtZXNwYWNl fSA9PiBwZ19uYW1lc3BhY2Uge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2 YXJvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJs ZSB7dmFyY29sbGF0aW9ufSA9PiBwZ19jb2xsYXRpb24ge29pZH0KZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3BzcWwub3V0CmluZGV4IGU2ZjdiOTAxM2QuLjBiMTc3ZDRkNzYgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wc3FsLm91dApAQCAtNjAxNSw2ICs2MDE1LDMwIEBAIENPTU1JVDsKICMgZmluYWwgT05f RVJST1JfUk9MTEJBQ0s6IG9mZgogRFJPUCBUQUJMRSBibGE7CiBEUk9QIEZVTkNUSU9OIHBzcWxf ZXJyb3I7CistLSBzZXNzaW9uIHZhcmlhYmxlIHRlc3QKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsKK1xkVisgdmFyMQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwor IFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAg T3duZXIgICAgICAgICAgfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZh cjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXIgfCAgICAgICAgICAgICAgICAgICB8IAorKDEgcm93KQorCitHUkFOVCBTRUxFQ1QgT04gVkFS SUFCTEUgdmFyMSBUTyBQVUJMSUM7CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUg ZGVzY3JpcHRpb24nOworXGRWKyB2YXIxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1h IHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAg ICAgICAgICB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAg ICB8ICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVi bGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lciB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9v d25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJp YWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisoMSByb3cpCisKK0RST1AgVkFS SUFCTEUgdmFyMTsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFJPTEUgcmVncmVzc192YXJp YWJsZV9vd25lcjsKIC0tIGNoZWNrIGRlc2NyaWJpbmcgaW52YWxpZCBtdWx0aXBhcnQgbmFtZXMK IFxkQSByZWdyZXNzaW9uLmhlYXAKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBk b3R0ZWQgbmFtZXMpOiByZWdyZXNzaW9uLmhlYXAKQEAgLTYyMzYsNiArNjI2MCwxMiBAQCBjcm9z cy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IG5vbmVzdWNoLnB1Ymxp Yy5mdW5jX2RlcHNfc3RhdAogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRl ZCBuYW1lcyk6IHJlZ3Jlc3Npb24ubXlldnQKIFxkeSBub25lc3VjaC5teWV2dAogaW1wcm9wZXIg cXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6IG5vbmVzdWNoLm15ZXZ0Citc ZFYgaG9zdC5yZWdyZXNzaW9uLnB1YmxpYy52YXIKK2ltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0 b28gbWFueSBkb3R0ZWQgbmFtZXMpOiBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgorXGRWIHJl Z3Jlc3Npb258bXlkYi5wdWJsaWMudmFyCitjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBu b3QgaW1wbGVtZW50ZWQ6IHJlZ3Jlc3Npb258bXlkYi5wdWJsaWMudmFyCitcZFYgbm9uZXN1Y2gu cHVibGljLnZhcgorY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVk OiBub25lc3VjaC5wdWJsaWMudmFyCiAtLSBjaGVjayB0aGF0IGRvdHMgd2l0aGluIHF1b3RlZCBu YW1lIHNlZ21lbnRzIGFyZSBub3QgY291bnRlZAogXGRBICJuby5zdWNoLmFjY2Vzcy5tZXRob2Qi CiBMaXN0IG9mIGFjY2VzcyBtZXRob2RzCkBAIC02NDcwLDYgKzY1MDAsMTIgQEAgTGlzdCBvZiBz Y2hlbWFzCiAtLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LQogKDAgcm93cykKIAorXGRWICJuby5zdWNoLnZhcmlhYmxlIgorICAgICAgICAgICAgTGlzdCBv ZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAor LS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisoMCByb3dzKQorCiAt LSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkQSAibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCiBpbXByb3BlciBxdWFsaWZpZWQg bmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5h Y2Nlc3MubWV0aG9kIgpAQCAtNjYzOSw2ICs2Njc1LDEyIEBAIGltcHJvcGVyIHF1YWxpZmllZCBu YW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmlu c3RhCiAKIFxkeSAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBpbXBy b3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2gudmFyaWFibGUiCisgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5h bWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3MpCisKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50 IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0IHJlZ3Jlc3Np b24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKICAgICAgIExpc3Qg b2YgcmVsYXRpb25zCkBAIC02NzcyLDYgKzY4MTQsMTIgQEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0 ZW1wbGF0ZXMKIC0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0rLS0tLS0KICgwIHJvd3MpCiAKK1xkViByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVt YSIuIm5vLnN1Y2gudmFyaWFibGUiCisgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNj aGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCistLS0tLS0tLSstLS0tLS0r LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3MpCisKIC0tIGFnYWluLCBidXQgd2l0 aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQg Im5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRp b24iCiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5z dWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgpA QCAtNjgxOSw2ICs2ODY3LDggQEAgY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGlt cGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW0KIGNyb3NzLWRhdGFi YXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZGF0YS50eXBlIgogXGRYICJuby5zdWNoLmRhdGFiYXNl Ii4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCiBjcm9zcy1k YXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNl Ii4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYgIm5v LnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCitjcm9z cy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFi YXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogLS0gY2hlY2sgXGRyZyBh bmQgXGR1CiBDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUwOwogQ1JFQVRFIFJPTEUgcmVncmVz c19kdV9yb2xlMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYzM2NjYwY2U2 ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0CkBAIC0wLDAgKzEsNDMzIEBACitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcmlh YmxlX293bmVyOworU0VUIGxvZ19zdGF0ZW1lbnQgVE8gZGRsOworLS0gc2hvdWxkIGJlIG9rCitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CistLSBzaG91bGQgZmFpbCwgcHNldWRvdHlwZXMg YXJlIG5vdCBhbGxvd2VkCitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBhbnllbGVtZW50OworRVJS T1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSBwc2V1ZG8tdHlwZSBhbnllbGVtZW50Cist LSBzaG91bGQgYmUgb2ssIGRvIG5vdGhpbmcKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIHZhcjI7 CitOT1RJQ0U6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIyIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBp bmcKKy0tIGRvIG5vdGhpbmcKK0NSRUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIHZhcjEgQVMg aW50OworTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMSIgYWxyZWFkeSBleGlzdHMsIHNr aXBwaW5nCistLSBzaG91bGQgZmFpbAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworRVJS T1I6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIxIiBhbHJlYWR5IGV4aXN0cworLS0gc2hvdWxkIGJl IG9rCitEUk9QIFZBUklBQkxFIElGIEVYSVNUUyB2YXIxOworLS0gdGhlIHZhcmlhYmxlIGNhbiB1 c2UgY29tcG9zaXRlIHR5cGVzCitDUkVBVEUgVEFCTEUgdDEgKGEgaW50LCBiIGludCk7CitDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyB0MTsKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRBQkxFIHQxOwor RVJST1I6ICBjYW5ub3QgZHJvcCB0YWJsZSB0MSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5k IG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiB0eXBlIHQx CitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVj dHMgdG9vLgorLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUQUJMRSB0MSBBREQgQ09MVU1OIGMgaW50 OworLS0gc2hvdWxkIGZhaWwKK0FMVEVSIFRBQkxFIHQxIEFMVEVSIENPTFVNTiBiIFRZUEUgbnVt ZXJpYzsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHRhYmxlICJ0MSIgYmVjYXVzZSBzZXNzaW9uIHZh cmlhYmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBU QUJMRSB0MTsKK0NSRUFURSBUWVBFIHQxIEFTIChhIGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdDE7CistLSBzaG91bGQgZmFpbAorRFJPUCBUWVBFIHQxOworRVJST1I6ICBj YW5ub3QgZHJvcCB0eXBlIHQxIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RF VEFJTDogIHNlc3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIHR5cGUgdDEKK0hJTlQ6ICBV c2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCist LSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgQUREIEFUVFJJQlVURSBjIGludDsKKy0tIHNo b3VsZCBmYWlsCitBTFRFUiBUWVBFIHQxIEFMVEVSIEFUVFJJQlVURSBiICBUWVBFIG51bWVyaWM7 CitFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlICJ0MSIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxl ICJwdWJsaWMudmFyMSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHQx OworU0VUIGxvZ19zdGF0ZW1lbnQgVE8gZGVmYXVsdDsKK0NSRUFURSBET01BSU4gdGVzdHZhcl9k b21haW4gQVMgaW50OworQ1JFQVRFIFRZUEUgdGVzdHZhcl90eXBlIEFTIChhIHRlc3R2YXJfZG9t YWluKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRlc3R2YXJfZG9tYWluOworLS0gc2hvdWxk IGZhaWwKK0FMVEVSIERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBREQgQ0hFQ0sodmFsdWUgPD4gMTAw KTsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIGRvbWFpbiAidGVzdHZhcl9kb21haW4iIGJlY2F1c2Ug c2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIHVzZXMgaXQKK0RST1AgVkFSSUFCTEUgdmFy MTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRlc3R2YXJfdHlwZTsKKy0tIHNob3VsZCBmYWls CitBTFRFUiBET01BSU4gdGVzdHZhcl9kb21haW4gQUREIENIRUNLKHZhbHVlIDw+IDEwMCk7CitF UlJPUjogIGNhbm5vdCBhbHRlciB0eXBlICJ0ZXN0dmFyX2RvbWFpbiIgYmVjYXVzZSBzZXNzaW9u IHZhcmlhYmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2YXIxOworLS0g c2hvdWxkIGJlIG9rCitBTFRFUiBET01BSU4gdGVzdHZhcl9kb21haW4gQUREIENIRUNLKHZhbHVl IDw+IDEwMCk7CitEUk9QIFRZUEUgdGVzdHZhcl90eXBlOworRFJPUCBUWVBFIHRlc3R2YXJfZG9t YWluOworLS0gY2hlY2sgZXZlbnQgdHJpZ2dlciBzdXBwb3J0CitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiBzdmFyX2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQoKQorUkVUVVJOUyBldmVu dF90cmlnZ2VyCitBUyAkJAorREVDTEFSRSByIHJlY29yZDsKK0JFR0lOCisgIEZPUiByIElOIFNF TEVDVCAqIGZyb20gcGdfZXZlbnRfdHJpZ2dlcl9kcm9wcGVkX29iamVjdHMoKQorICBMT09QCisg ICAgQ09OVElOVUUgV0hFTiBOT1Qgci5ub3JtYWwgQU5EIE5PVCByLm9yaWdpbmFsOworCisgICAg UkFJU0UgTk9USUNFCisgICAgICAgJ05PUk1BTDogb3JpZz0lIG5vcm1hbD0lIGlzdGVtcD0lIHR5 cGU9JSBpZGVudGl0eT0lIG5hbWU9JSBhcmdzPSUnLAorICAgICAgIHIub3JpZ2luYWwsIHIubm9y bWFsLCByLmlzX3RlbXBvcmFyeSwgci5vYmplY3RfdHlwZSwKKyAgICAgICByLm9iamVjdF9pZGVu dGl0eSwgci5hZGRyZXNzX25hbWVzLCByLmFkZHJlc3NfYXJnczsKKyAgRU5EIExPT1A7CitFTkQ7 CiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIEVWRU5UIFRSSUdHRVIgc3Zhcl9yZWdyZXNz X2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQgT04gc3FsX2Ryb3AKKyAgV0hFTiBUQUcgSU4g KCdEUk9QIFZBUklBQkxFJykKKyAgRVhFQ1VURSBQUk9DRURVUkUgc3Zhcl9ldmVudF90cmlnZ2Vy X3JlcG9ydF9kcm9wcGVkKCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitEUk9QIFZB UklBQkxFIHZhcjE7CitOT1RJQ0U6ICBOT1JNQUw6IG9yaWc9dCBub3JtYWw9ZiBpc3RlbXA9ZiB0 eXBlPXNlc3Npb24gdmFyaWFibGUgaWRlbnRpdHk9cHVibGljLnZhcjEgbmFtZT17cHVibGljLHZh cjF9IGFyZ3M9e30KK0RST1AgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZlbnRfdHJpZ2dl cl9yZXBvcnRfZHJvcHBlZDsKKy0tIGNoZWNrIGNvbW1lbnQgb24gdmFyaWFibGUKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludDsKK0NPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSB2 YXJpYWJsZSBjb21tZW50JzsKK1NFTEVDVCBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbihvaWQs ICdwZ192YXJpYWJsZScpIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsK KyAgICBvYmpfZGVzY3JpcHRpb24gICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHNvbWUg dmFyaWFibGUgY29tbWVudAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBjaGVj ayB0aGUgb2JqZWN0IGFkZHJlc3Mgb2YgYWxsIHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgU0NI RU1BIHZhcnRlc3QxOworQ1JFQVRFIFNDSEVNQSB2YXJ0ZXN0MjsKK0NSRUFURSBWQVJJQUJMRSB2 YXJ0ZXN0MS5zdmFydGVzdF92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXJ0ZXN0Mi5z dmFydGVzdF92YXIxIEFTIGludDsKK1NFTEVDVAorICBlLnZhcm5hbWUsCisgIHBnX2Rlc2NyaWJl X29iamVjdCgncGdfdmFyaWFibGUnOjpyZWdjbGFzcywgZS5vaWQsIDApIGFzIGRlc2NyLAorICBi LnR5cGUsIGIub2JqZWN0X25hbWVzLCBiLm9iamVjdF9hcmdzLAorICBwZ19pZGVudGlmeV9vYmpl Y3QoYS5jbGFzc2lkLCBhLm9iamlkLCBhLm9ianN1YmlkKSBhcyBpZGVudAorRlJPTSBwZ192YXJp YWJsZSBhcyBlLAorICBMQVRFUkFMIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzKCdwZ192 YXJpYWJsZSc6OnJlZ2NsYXNzLCBlLm9pZCwgMCkgYXMgYiwKKyAgTEFURVJBTCBwZ19nZXRfb2Jq ZWN0X2FkZHJlc3MoYi50eXBlLCBiLm9iamVjdF9uYW1lcywgYi5vYmplY3RfYXJncykgYXMgYQor V0hFUkUgZS52YXJuYW1lIExJS0UgJ3N2YXJ0ZXN0X3ZhciUnOworICAgIHZhcm5hbWUgICAgfCAg ICAgICAgICAgICAgICAgIGRlc2NyICAgICAgICAgICAgICAgICAgfCAgICAgICB0eXBlICAgICAg IHwgICAgICAgb2JqZWN0X25hbWVzICAgICAgIHwgb2JqZWN0X2FyZ3MgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZGVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBzdmFydGVzdF92YXIxIHwgc2Vzc2lvbiB2YXJpYWJsZSB2YXJ0ZXN0 MS5zdmFydGVzdF92YXIxIHwgc2Vzc2lvbiB2YXJpYWJsZSB8IHt2YXJ0ZXN0MSxzdmFydGVzdF92 YXIxfSB8IHt9ICAgICAgICAgIHwgKCJzZXNzaW9uIHZhcmlhYmxlIix2YXJ0ZXN0MSxzdmFydGVz dF92YXIxLHZhcnRlc3QxLnN2YXJ0ZXN0X3ZhcjEpCisgc3ZhcnRlc3RfdmFyMSB8IHNlc3Npb24g dmFyaWFibGUgdmFydGVzdDIuc3ZhcnRlc3RfdmFyMSB8IHNlc3Npb24gdmFyaWFibGUgfCB7dmFy dGVzdDIsc3ZhcnRlc3RfdmFyMX0gfCB7fSAgICAgICAgICB8ICgic2Vzc2lvbiB2YXJpYWJsZSIs dmFydGVzdDIsc3ZhcnRlc3RfdmFyMSx2YXJ0ZXN0Mi5zdmFydGVzdF92YXIxKQorKDIgcm93cykK KworRFJPUCBTQ0hFTUEgdmFydGVzdDEgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMg dG8gc2Vzc2lvbiB2YXJpYWJsZSB2YXJ0ZXN0MS5zdmFydGVzdF92YXIxCitEUk9QIFNDSEVNQSB2 YXJ0ZXN0MiBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlh YmxlIHZhcnRlc3QyLnN2YXJ0ZXN0X3ZhcjEKKy0tIGNoZWNrIGFjY2VzcyByaWdodHMgYW5kIHN1 cHBvcnRlZCBBTFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5UIEFMTCBPTiBTQ0hF TUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSBz dmFydGVzdC52YXIxIEFTIGludDsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVy OworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgVE8gcmVncmVzc192YXJp YWJsZV9yZWFkZXI7CitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgRlJPTSBy ZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgT1dO RVIgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0LnZh cjEgUkVOQU1FIFRPIHZhcnh4OworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyeHggU0VUIFND SEVNQSBwdWJsaWM7CitEUk9QIFZBUklBQkxFIHB1YmxpYy52YXJ4eDsKK0FMVEVSIERFRkFVTFQg UFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcgorICAgSU4gU0NI RU1BIHN2YXJ0ZXN0CisgICBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIHJlZ3Jlc3NfdmFy aWFibGVfcmVhZGVyOworLS0gY3JlYXRpbmcgdmFyaWFibGUgd2l0aCBkZWZhdWx0IHByaXZpbGVn ZXMKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUg c3ZhcnRlc3QudmFyMSBBUyBpbnQ7CitTRVQgUk9MRSBUTyBERUZBVUxUOworLS0gc2hvdWxkIGJl IG9rLiBzaW5jZSBBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMKKy0tIGFsbG93IHJlZ3Jlc3NfdmFy aWFibGVfcmVhZGVyIHRvIGhhdmUgU0VMRUNUIHByaXZpbGVkZ2UKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyJywgJ3N2YXJ0ZXN0 LnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Ug CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworRFJPUCBW QVJJQUJMRSBzdmFydGVzdC52YXIxOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3Q7CitEUk9QIFJPTEUg cmVncmVzc192YXJpYWJsZV9yZWFkZXI7CistLQorLS0gYmVnaW4gb2YgY2hlY2sgR1JBTlQgV0lU SCBHUkFOVCBPUFRJT04gYW5kIFJFVk9LRSBHUkFOVEVEIEJZCistLQorQ1JFQVRFIFJPTEUgcmVn cmVzc192YXJpYWJsZV9yMTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CitTRVQg Uk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg aW50OyAgICAgIC0tdmFyMSB3aWxsIG93bmVkIGJ5IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIKK0dS QU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjEgV0lUSCBH UkFOVCBPUFRJT047CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxOworR1JBTlQgU0VM RUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMiBXSVRIIEdSQU5UIE9Q VElPTjsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcp OyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAncHVibGljLnZhcjEnLCAnU0VM RUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworUkVWT0tFIEFMTCBQUklWSUxF R0VTIE9OIFZBUklBQkxFIHZhcjEgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IxIENBU0NBREU7CitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3Ix JywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cp CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFi bGVfcjInLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygx IHJvdykKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0dSQU5UIFNFTEVD VCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CitTRUxFQ1QgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52 YXIxJywgJ1NFTEVDVCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAncHVi bGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworUkVW T0tFIEFMTCBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVncmVzc192YXJpYWJsZV9yMiBHUkFOVEVE IEJZIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcp OyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAncHVibGljLnZhcjEnLCAnU0VM RUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9vd25lcicsICdwdWJsaWMudmFy MScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRVQgUk9MRSBU TyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0KKy0tIGVuZCBvZiBjaGVjayBHUkFO VCBXSVRIIEdSQU5UIE9QVElPTiBhbmQgUkVWT0tFIEdSQU5URUQgQlkKKy0tCistLQorLS0gYmVn aW4gb2YgdGVzdDogR1JBTlR8UkVWT0tFIFNFTEVDVHxVUERBVEUgT04gQUxMIFZBUklBQkxFUyBJ TiBTQ0hFTUEKKy0tCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworR1JBTlQgQUxMIE9OIFNDSEVN QSBzdmFydGVzdCBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworU0VUIFJPTEUgVE8gcmVncmVz c192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsK K0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIyIEFTIGludDsKK0dSQU5UIFNFTEVDVCBPTiBB TEwgVkFSSUFCTEVTIElOIFNDSEVNQSBzdmFydGVzdCBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxOwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MScsICdzdmFydGVzdC52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSBy b3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFy aWFibGVfcjEnLCAnc3ZhcnRlc3QudmFyMicsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg dAorKDEgcm93KQorCitSRVZPS0UgU0VMRUNUIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIHN2 YXJ0ZXN0IEZST00gcmVncmVzc192YXJpYWJsZV9yMTsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAnc3ZhcnRlc3QudmFyMScsICdT RUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3N2YXJ0ZXN0LnZh cjInLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VUIFJPTEUg VE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKK0RST1AgVkFSSUFCTEUg c3ZhcnRlc3QudmFyMjsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0OworLS0KKy0tIGVuZCBvZiB0ZXN0 OiBHUkFOVHxSRVZPS0UgU0VMRUNUfFVQREFURSBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQQor LS0KKy0tCistLSBmdW5jdGlvbiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgaGF2ZSB2 YXJpb3VzIGtpbmQgb2Ygc2lnbmF0dXJlLgorLS0gdGhlIGZvbGxvd2luZyBhcmUgZXh0ZW5zaXZl IHRlc3QgZm9yIGl0LgorLS0KK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitD UkVBVEUgVkFSSUFCTEUgcHVibGljLnZhcjEgQVMgaW50OworU0VUIHNlYXJjaF9wYXRoIFRPIHB1 YmxpYzsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwdWJsaWMudmFyMSBUTyByZWdyZXNzX3Zh cmlhYmxlX3IxOworR1JBTlQgU0VMRUNULCBVUERBVEUgT04gVkFSSUFCTEUgcHVibGljLnZhcjEg VE8gcmVncmVzc192YXJpYWJsZV9yMjsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7Cisg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLm5vdGV4aXN0cycsICdTRUxFQ1Qn KSBJUyBOVUxMOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VUIFJP TEUgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAndmFyMScsICdTRUxFQ1QnKTsgLS0gdAor IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIGYKKyBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAndmFyMScsICdVUERBVEUnKTsgLS0gdAorIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl KCd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVD VCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIGYK KyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIG9pZCBBUyB2YXJpZAorICBGUk9NIHBn X3ZhcmlhYmxlCisgIFdIRVJFIHZhcm5hbWUgPSAndmFyMScgQU5EIHZhcm5hbWVzcGFjZSA9ICdw dWJsaWMnOjpyZWduYW1lc3BhY2UgXGdzZXQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykK KworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFyMScsICdVUERBVEUn KTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgOnZhcmlkLCAnU0VMRUNUJyk7 IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsIDp2YXJpZCwgJ1VQREFURScpOyAt LSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0g dAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIHQK KyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSg6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQor CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKDp2YXJpZCwgJ1VQREFURScp OyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xlLCAndmFyMScsICdT RUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgJ3Zh cjEnLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6OnJlZ3Jv bGUsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjIn OjpyZWdyb2xlLCAndmFyMScsICdVUERBVEUnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93 KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX3IxJzo6cmVncm9sZSwgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQK KygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVz c192YXJpYWJsZV9yMSc6OnJlZ3JvbGUsIDp2YXJpZCwgJ1VQREFURScpOyAtLSBmCisgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Uo J3JlZ3Jlc3NfdmFyaWFibGVfcjInOjpyZWdyb2xlLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAor IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJzo6cmVncm9sZSwgOnZhcmlkLCAnVVBEQVRFJyk7 IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworLS0KKy0tIGVuZCBvZiBmdW5jdGlvbiBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgdGVzdHMuCistLQorU0VUIFJPTEUgVE8gREVG QVVMVDsKK1NFVCBzZWFyY2hfcGF0aCBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSBwdWJsaWMu dmFyMTsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IxOworRFJPUCBST0xFIHJlZ3Jlc3Nf dmFyaWFibGVfcjI7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNz L3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IDFlZGQ5ZTQ1ZWIuLjdmNGY3NGVlZWEgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtMTExLDcgKzExMSw3IEBAIHRlc3Q6IGpzb24ganNv bmIganNvbl9lbmNvZGluZyBqc29ucGF0aCBqc29ucGF0aF9lbmNvZGluZyBqc29uYl9qc29ucGF0 aCBzcWxqc29uCiAjIE5COiB0ZW1wLnNxbCBkb2VzIGEgcmVjb25uZWN0IHdoaWNoIHRyYW5zaWVu dGx5IHVzZXMgMiBjb25uZWN0aW9ucywKICMgc28ga2VlcCB0aGlzIHBhcmFsbGVsIGdyb3VwIHRv IGF0IG1vc3QgMTkgdGVzdHMKICMgLS0tLS0tLS0tLQotdGVzdDogcGxhbmNhY2hlIGxpbWl0IHBs cGdzcWwgY29weTIgdGVtcCBkb21haW4gcmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1 bmNhdGUgYWx0ZXJfdGFibGUgc2VxdWVuY2UgcG9seW1vcnBoaXNtIHJvd3R5cGVzIHJldHVybmlu ZyBsYXJnZW9iamVjdCB3aXRoIHhtbAordGVzdDogcGxhbmNhY2hlIGxpbWl0IHBscGdzcWwgY29w eTIgdGVtcCBkb21haW4gcmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1bmNhdGUgYWx0 ZXJfdGFibGUgc2VxdWVuY2UgcG9seW1vcnBoaXNtIHJvd3R5cGVzIHJldHVybmluZyBsYXJnZW9i amVjdCB3aXRoIHhtbCBzZXNzaW9uX3ZhcmlhYmxlcwogCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhl ciBncm91cCBvZiBwYXJhbGxlbCB0ZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvZGVwZW5kZW5jeS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNxbApp bmRleCA4ZDc0ZWQ3MTIyLi42YzE4YjdmODQwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9kZXBlbmRlbmN5LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5 LnNxbApAQCAtMTE0LDMgKzExNCwxNyBAQCBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjI7CiBE Uk9QIE9XTkVEIEJZIHJlZ3Jlc3NfZGVwX3VzZXIyLCByZWdyZXNzX2RlcF91c2VyMDsKIERST1Ag VVNFUiByZWdyZXNzX2RlcF91c2VyMjsKIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMDsKKwor LS0gZGVwZW5kZW5jeSBvbiB0eXBlCitDUkVBVEUgRE9NQUlOIHZhcmRvbWFpbiBBUyBpbnQ7CitD UkVBVEUgVFlQRSB2YXJ0eXBlIEFTIChhIGludCwgYiBpbnQsIGMgdmFyZG9tYWluKTsKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIHZhcnR5cGU7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIERPTUFJ TiB2YXJkb21haW47CitEUk9QIFRZUEUgdmFydHlwZTsKKworLS0gY2xlYW4gdXAKK0RST1AgVkFS SUFCTEUgdmFyMTsKK0RST1AgVFlQRSB2YXJ0eXBlOworRFJPUCBET01BSU4gdmFyZG9tYWluOwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9wc3FsLnNxbAppbmRleCBjNTgzMDhjZTE0Li4yOWQ4Y2FhN2JhIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9wc3FsLnNxbApAQCAtMTYzNiw2ICsxNjM2LDE5IEBAIENPTU1JVDsKIERST1AgVEFCTEUgYmxh OwogRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogCistLSBzZXNzaW9uIHZhcmlhYmxlIHRlc3QK K0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRVQgUk9MRSBUTyByZWdyZXNz X3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRF ICJDIjsKK1xkVisgdmFyMQorR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElD OworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKK1xkVisg dmFyMQorRFJPUCBWQVJJQUJMRSB2YXIxOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBS T0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisKIC0tIGNoZWNrIGRlc2NyaWJpbmcgaW52YWxp ZCBtdWx0aXBhcnQgbmFtZXMKIFxkQSByZWdyZXNzaW9uLmhlYXAKIFxkQSBub25lc3VjaC5oZWFw CkBAIC0xNzQ3LDYgKzE3NjAsOSBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZFggbm9u ZXN1Y2gucHVibGljLmZ1bmNfZGVwc19zdGF0CiBcZHkgcmVncmVzc2lvbi5teWV2dAogXGR5IG5v bmVzdWNoLm15ZXZ0CitcZFYgaG9zdC5yZWdyZXNzaW9uLnB1YmxpYy52YXIKK1xkViByZWdyZXNz aW9ufG15ZGIucHVibGljLnZhcgorXGRWIG5vbmVzdWNoLnB1YmxpYy52YXIKIAogLS0gY2hlY2sg dGhhdCBkb3RzIHdpdGhpbiBxdW90ZWQgbmFtZSBzZWdtZW50cyBhcmUgbm90IGNvdW50ZWQKIFxk QSAibm8uc3VjaC5hY2Nlc3MubWV0aG9kIgpAQCAtMTc4OCw2ICsxODA0LDggQEAgRFJPUCBGVU5D VElPTiBwc3FsX2Vycm9yOwogXGR4ICJuby5zdWNoLmluc3RhbGxlZC5leHRlbnNpb24iCiBcZFgg Im5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKIFxkeSAibm8uc3VjaC5ldmVudC50cmlnZ2Vy IgorXGRWICJuby5zdWNoLnZhcmlhYmxlIgorCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQg c2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGRBICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guYWNj ZXNzLm1ldGhvZCIKQEAgLTE4MjgsNiArMTg0Niw3IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJv cjsKIFxkeCAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhbGxlZC5leHRlbnNpb24iCiBc ZFggIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgogXGR5ICJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKK1xkViAibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRh YmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCByZWdyZXNzaW9uLiJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCkBAIC0xODUyLDYgKzE4NzEs NyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZFAgcmVncmVzc2lvbi4ibm8uc3VjaC5z Y2hlbWEiLiJuby5zdWNoLnBhcnRpdGlvbmVkLnJlbGF0aW9uIgogXGRUIHJlZ3Jlc3Npb24uIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBcZFggcmVncmVzc2lvbi4ibm8uc3Vj aC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYgcmVncmVzc2lvbi4i bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBhZ2FpbiwgYnV0IHdpdGgg ZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0ICJu by5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9u IgpAQCAtMTg3Nyw2ICsxODk3LDcgQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGRQICJu by5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnBhcnRpdGlvbmVkLnJl bGF0aW9uIgogXGRUICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNo LmRhdGEudHlwZSIKIFxkWCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgorXGRWICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3Vj aC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBjaGVjayBcZHJnIGFuZCBcZHUKIENS RUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZWVi MGY5NGNhMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzLnNxbApAQCAtMCwwICsxLDI5NyBAQAorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJp YWJsZV9vd25lcjsKKworU0VUIGxvZ19zdGF0ZW1lbnQgVE8gZGRsOworCistLSBzaG91bGQgYmUg b2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKworLS0gc2hvdWxkIGZhaWwsIHBzZXVk b3R5cGVzIGFyZSBub3QgYWxsb3dlZAorQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgYW55ZWxlbWVu dDsKKworLS0gc2hvdWxkIGJlIG9rLCBkbyBub3RoaW5nCitEUk9QIFZBUklBQkxFIElGIEVYSVNU UyB2YXIyOworCistLSBkbyBub3RoaW5nCitDUkVBVEUgVkFSSUFCTEUgSUYgTk9UIEVYSVNUUyB2 YXIxIEFTIGludDsKKworLS0gc2hvdWxkIGZhaWwKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGlu dDsKKworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxFIElGIEVYSVNUUyB2YXIxOworCist LSB0aGUgdmFyaWFibGUgY2FuIHVzZSBjb21wb3NpdGUgdHlwZXMKK0NSRUFURSBUQUJMRSB0MSAo YSBpbnQsIGIgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHQxOworCistLSBzaG91bGQg ZmFpbAorRFJPUCBUQUJMRSB0MTsKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUQUJMRSB0MSBB REQgQ09MVU1OIGMgaW50OworCistLSBzaG91bGQgZmFpbAorQUxURVIgVEFCTEUgdDEgQUxURVIg Q09MVU1OIGIgVFlQRSBudW1lcmljOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRBQkxF IHQxOworCitDUkVBVEUgVFlQRSB0MSBBUyAoYSBpbnQsIGIgaW50KTsKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIHQxOworCistLSBzaG91bGQgZmFpbAorRFJPUCBUWVBFIHQxOworCistLSBzaG91 bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgQUREIEFUVFJJQlVURSBjIGludDsKKworLS0gc2hvdWxk IGZhaWwKK0FMVEVSIFRZUEUgdDEgQUxURVIgQVRUUklCVVRFIGIgIFRZUEUgbnVtZXJpYzsKKwor RFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHQxOworCitTRVQgbG9nX3N0YXRlbWVudCBU TyBkZWZhdWx0OworCitDUkVBVEUgRE9NQUlOIHRlc3R2YXJfZG9tYWluIEFTIGludDsKK0NSRUFU RSBUWVBFIHRlc3R2YXJfdHlwZSBBUyAoYSB0ZXN0dmFyX2RvbWFpbik7CisKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIHRlc3R2YXJfZG9tYWluOworCistLSBzaG91bGQgZmFpbAorQUxURVIgRE9N QUlOIHRlc3R2YXJfZG9tYWluIEFERCBDSEVDSyh2YWx1ZSA8PiAxMDApOworCitEUk9QIFZBUklB QkxFIHZhcjE7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRlc3R2YXJfdHlwZTsKKworLS0g c2hvdWxkIGZhaWwKK0FMVEVSIERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBREQgQ0hFQ0sodmFsdWUg PD4gMTAwKTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBzaG91bGQgYmUgb2sKK0FMVEVS IERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBREQgQ0hFQ0sodmFsdWUgPD4gMTAwKTsKKworRFJPUCBU WVBFIHRlc3R2YXJfdHlwZTsKK0RST1AgVFlQRSB0ZXN0dmFyX2RvbWFpbjsKKworLS0gY2hlY2sg ZXZlbnQgdHJpZ2dlciBzdXBwb3J0CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFyX2V2 ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQoKQorUkVUVVJOUyBldmVudF90cmlnZ2VyCitBUyAk JAorREVDTEFSRSByIHJlY29yZDsKK0JFR0lOCisgIEZPUiByIElOIFNFTEVDVCAqIGZyb20gcGdf ZXZlbnRfdHJpZ2dlcl9kcm9wcGVkX29iamVjdHMoKQorICBMT09QCisgICAgQ09OVElOVUUgV0hF TiBOT1Qgci5ub3JtYWwgQU5EIE5PVCByLm9yaWdpbmFsOworCisgICAgUkFJU0UgTk9USUNFCisg ICAgICAgJ05PUk1BTDogb3JpZz0lIG5vcm1hbD0lIGlzdGVtcD0lIHR5cGU9JSBpZGVudGl0eT0l IG5hbWU9JSBhcmdzPSUnLAorICAgICAgIHIub3JpZ2luYWwsIHIubm9ybWFsLCByLmlzX3RlbXBv cmFyeSwgci5vYmplY3RfdHlwZSwKKyAgICAgICByLm9iamVjdF9pZGVudGl0eSwgci5hZGRyZXNz X25hbWVzLCByLmFkZHJlc3NfYXJnczsKKyAgRU5EIExPT1A7CitFTkQ7CiskJCBMQU5HVUFHRSBw bHBnc3FsOworCitDUkVBVEUgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZlbnRfdHJpZ2dl cl9yZXBvcnRfZHJvcHBlZCBPTiBzcWxfZHJvcAorICBXSEVOIFRBRyBJTiAoJ0RST1AgVkFSSUFC TEUnKQorICBFWEVDVVRFIFBST0NFRFVSRSBzdmFyX2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3Bw ZWQoKTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworRFJPUCBWQVJJQUJMRSB2YXIx OworCitEUk9QIEVWRU5UIFRSSUdHRVIgc3Zhcl9yZWdyZXNzX2V2ZW50X3RyaWdnZXJfcmVwb3J0 X2Ryb3BwZWQ7CisKKy0tIGNoZWNrIGNvbW1lbnQgb24gdmFyaWFibGUKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIGludDsKK0NPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSB2YXJpYWJs ZSBjb21tZW50JzsKK1NFTEVDVCBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbihvaWQsICdwZ192 YXJpYWJsZScpIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKworRFJP UCBWQVJJQUJMRSB2YXIxOworCistLSBjaGVjayB0aGUgb2JqZWN0IGFkZHJlc3Mgb2YgYWxsIHNl c3Npb24gdmFyaWFibGVzCitDUkVBVEUgU0NIRU1BIHZhcnRlc3QxOworQ1JFQVRFIFNDSEVNQSB2 YXJ0ZXN0MjsKK0NSRUFURSBWQVJJQUJMRSB2YXJ0ZXN0MS5zdmFydGVzdF92YXIxIEFTIGludDsK K0NSRUFURSBWQVJJQUJMRSB2YXJ0ZXN0Mi5zdmFydGVzdF92YXIxIEFTIGludDsKKworU0VMRUNU CisgIGUudmFybmFtZSwKKyAgcGdfZGVzY3JpYmVfb2JqZWN0KCdwZ192YXJpYWJsZSc6OnJlZ2Ns YXNzLCBlLm9pZCwgMCkgYXMgZGVzY3IsCisgIGIudHlwZSwgYi5vYmplY3RfbmFtZXMsIGIub2Jq ZWN0X2FyZ3MsCisgIHBnX2lkZW50aWZ5X29iamVjdChhLmNsYXNzaWQsIGEub2JqaWQsIGEub2Jq c3ViaWQpIGFzIGlkZW50CitGUk9NIHBnX3ZhcmlhYmxlIGFzIGUsCisgIExBVEVSQUwgcGdfaWRl bnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MoJ3BnX3ZhcmlhYmxlJzo6cmVnY2xhc3MsIGUub2lkLCAw KSBhcyBiLAorICBMQVRFUkFMIHBnX2dldF9vYmplY3RfYWRkcmVzcyhiLnR5cGUsIGIub2JqZWN0 X25hbWVzLCBiLm9iamVjdF9hcmdzKSBhcyBhCitXSEVSRSBlLnZhcm5hbWUgTElLRSAnc3ZhcnRl c3RfdmFyJSc7CisKK0RST1AgU0NIRU1BIHZhcnRlc3QxIENBU0NBREU7CitEUk9QIFNDSEVNQSB2 YXJ0ZXN0MiBDQVNDQURFOworCistLSBjaGVjayBhY2Nlc3MgcmlnaHRzIGFuZCBzdXBwb3J0ZWQg QUxURVIKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7CitHUkFOVCBBTEwgT04gU0NIRU1BIHN2YXJ0 ZXN0IFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVz dC52YXIxIEFTIGludDsKKworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CisK K0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIFRPIHJlZ3Jlc3NfdmFyaWFi bGVfcmVhZGVyOworUkVWT0tFIEFMTCBPTiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEZST00gcmVn cmVzc192YXJpYWJsZV9yZWFkZXI7CisKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgT1dO RVIgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0LnZh cjEgUkVOQU1FIFRPIHZhcnh4OworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyeHggU0VUIFND SEVNQSBwdWJsaWM7CisKK0RST1AgVkFSSUFCTEUgcHVibGljLnZhcnh4OworCitBTFRFUiBERUZB VUxUIFBSSVZJTEVHRVMKKyAgIEZPUiBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIKKyAgIElO IFNDSEVNQSBzdmFydGVzdAorICAgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFUyBUTyByZWdyZXNz X3ZhcmlhYmxlX3JlYWRlcjsKKworLS0gY3JlYXRpbmcgdmFyaWFibGUgd2l0aCBkZWZhdWx0IHBy aXZpbGVnZXMKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFS SUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CitTRVQgUk9MRSBUTyBERUZBVUxUOworCistLSBz aG91bGQgYmUgb2suIHNpbmNlIEFMVEVSIERFRkFVTFQgUFJJVklMRUdFUworLS0gYWxsb3cgcmVn cmVzc192YXJpYWJsZV9yZWFkZXIgdG8gaGF2ZSBTRUxFQ1QgcHJpdmlsZWRnZQorU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yZWFkZXInLCAn c3ZhcnRlc3QudmFyMScsICdTRUxFQ1QnKTsgLS0gdAorCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0 LnZhcjE7CitEUk9QIFNDSEVNQSBzdmFydGVzdDsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxl X3JlYWRlcjsKKworLS0KKy0tIGJlZ2luIG9mIGNoZWNrIEdSQU5UIFdJVEggR1JBTlQgT1BUSU9O IGFuZCBSRVZPS0UgR1JBTlRFRCBCWQorLS0KK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf cjE7CitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IyOworCitTRVQgUk9MRSBUTyByZWdy ZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OyAgICAgIC0t dmFyMSB3aWxsIG93bmVkIGJ5IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIKKworR1JBTlQgU0VMRUNU IE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMSBXSVRIIEdSQU5UIE9QVElP TjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitHUkFOVCBTRUxFQ1QgT04gVkFS SUFCTEUgdmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyIFdJVEggR1JBTlQgT1BUSU9OOworU0VU IFJPTEUgVE8gREVGQVVMVDsKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSgncmVncmVzc192YXJpYWJsZV9yMScsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsgLS0gdAor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MicsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsgLS0gdAorCitSRVZPS0UgQUxMIFBSSVZJTEVH RVMgT04gVkFSSUFCTEUgdmFyMSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjEgQ0FTQ0FERTsKKwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MScsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICdwdWJsaWMudmFyMScsICdT RUxFQ1QnKTsgLS0gZgorCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMjsKKworU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScs ICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICdwdWJsaWMudmFyMScsICdTRUxF Q1QnKTsgLS0gdAorCitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHZhcjEgRlJPTSByZWdyZXNzX3Zh cmlhYmxlX3IyIEdSQU5URUQgQlkgcmVncmVzc192YXJpYWJsZV9vd25lcjsKKworU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdwdWJs aWMudmFyMScsICdTRUxFQ1QnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsg LS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJp YWJsZV9vd25lcicsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsgLS0gdAorU0VUIFJPTEUgVE8g REVGQVVMVDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0KKy0tIGVuZCBvZiBjaGVjayBHUkFO VCBXSVRIIEdSQU5UIE9QVElPTiBhbmQgUkVWT0tFIEdSQU5URUQgQlkKKy0tCisKKy0tCistLSBi ZWdpbiBvZiB0ZXN0OiBHUkFOVHxSRVZPS0UgU0VMRUNUfFVQREFURSBPTiBBTEwgVkFSSUFCTEVT IElOIFNDSEVNQQorLS0KK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7CitHUkFOVCBBTEwgT04gU0NI RU1BIHN2YXJ0ZXN0IFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRVQgUk9MRSBUTyByZWdy ZXNzX3ZhcmlhYmxlX293bmVyOworCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBp bnQ7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMiBBUyBpbnQ7CisKK0dSQU5UIFNFTEVD VCBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSBzdmFydGVzdCBUTyByZWdyZXNzX3ZhcmlhYmxl X3IxOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IxJywgJ3N2YXJ0ZXN0LnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAnc3ZhcnRl c3QudmFyMicsICdTRUxFQ1QnKTsgLS0gdAorCitSRVZPS0UgU0VMRUNUIE9OIEFMTCBWQVJJQUJM RVMgSU4gU0NIRU1BIHN2YXJ0ZXN0IEZST00gcmVncmVzc192YXJpYWJsZV9yMTsKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdz dmFydGVzdC52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3N2YXJ0ZXN0LnZhcjInLCAnU0VM RUNUJyk7IC0tIGYKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgc3ZhcnRl c3QudmFyMTsKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMjsKK0RST1AgU0NIRU1BIHN2YXJ0 ZXN0OworLS0KKy0tIGVuZCBvZiB0ZXN0OiBHUkFOVHxSRVZPS0UgU0VMRUNUfFVQREFURSBPTiBB TEwgVkFSSUFCTEVTIElOIFNDSEVNQQorLS0KKworLS0KKy0tIGZ1bmN0aW9uIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSBoYXZlIHZhcmlvdXMga2luZCBvZiBzaWduYXR1cmUuCistLSB0 aGUgZm9sbG93aW5nIGFyZSBleHRlbnNpdmUgdGVzdCBmb3IgaXQuCistLQorU0VUIFJPTEUgVE8g cmVncmVzc192YXJpYWJsZV9vd25lcjsKKworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy52YXIxIEFT IGludDsKKworU0VUIHNlYXJjaF9wYXRoIFRPIHB1YmxpYzsKKworR1JBTlQgU0VMRUNUIE9OIFZB UklBQkxFIHB1YmxpYy52YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitHUkFOVCBTRUxFQ1Qs IFVQREFURSBPTiBWQVJJQUJMRSBwdWJsaWMudmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyOwor CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxl X3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdwdWJsaWMubm90ZXhpc3RzJywg J1NFTEVDVCcpIElTIE5VTEw7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CisK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVf cjEnLCAndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICd2YXIxJywgJ1VQREFURScpOyAtLSBm CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxl X3IyJywgJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAndmFyMScsICdVUERBVEUnKTsgLS0g dAorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCd2YXIxJywgJ1NFTEVD VCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCd2YXIxJywg J1VQREFURScpOyAtLSBmCisKK1NFTEVDVCBvaWQgQVMgdmFyaWQKKyAgRlJPTSBwZ192YXJpYWJs ZQorICBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnIEFORCB2YXJuYW1lc3BhY2UgPSAncHVibGljJzo6 cmVnbmFtZXNwYWNlIFxnc2V0CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UoJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIGYKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsIDp2YXJpZCwgJ1NFTEVDVCcp OyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IxJywgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCA6dmFyaWQsICdTRUxFQ1Qn KTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192 YXJpYWJsZV9yMicsIDp2YXJpZCwgJ1VQREFURScpOyAtLSB0CisKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKKworU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMSc6 OnJlZ3JvbGUsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgJ3ZhcjEnLCAn VVBEQVRFJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Jl Z3Jlc3NfdmFyaWFibGVfcjInOjpyZWdyb2xlLCAndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6 OnJlZ3JvbGUsICd2YXIxJywgJ1VQREFURScpOyAtLSB0CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xlLCA6dmFyaWQs ICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgn cmVncmVzc192YXJpYWJsZV9yMSc6OnJlZ3JvbGUsIDp2YXJpZCwgJ1VQREFURScpOyAtLSBmCitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3Iy Jzo6cmVncm9sZSwgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInOjpyZWdyb2xlLCA6dmFyaWQs ICdVUERBVEUnKTsgLS0gdAorLS0KKy0tIGVuZCBvZiBmdW5jdGlvbiBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UgdGVzdHMuCistLQorCitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIHNl YXJjaF9wYXRoIFRPIERFRkFVTFQ7CisKK0RST1AgVkFSSUFCTEUgcHVibGljLnZhcjE7CisKK0RS T1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IxOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf cjI7CisKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdAppbmRleCBkMDM5MjFhNDgyLi5jNTU5NGM0M2U2IDEwMDY0NAotLS0gYS9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdApAQCAtNTQwLDYgKzU0MCw3IEBAIENyZWF0ZVJvbGVTdG10CiBDcmVhdGVTY2hlbWFT dG10CiBDcmVhdGVTY2hlbWFTdG10Q29udGV4dAogQ3JlYXRlU2VxU3RtdAorQ3JlYXRlU2Vzc2lv blZhclN0bXQKIENyZWF0ZVN0YXRzU3RtdAogQ3JlYXRlU3RtdAogQ3JlYXRlU3RtdENvbnRleHQK QEAgLTg4MCw2ICs4ODEsNyBAQCBGb3JtRGF0YV9wZ190c19wYXJzZXIKIEZvcm1EYXRhX3BnX3Rz X3RlbXBsYXRlCiBGb3JtRGF0YV9wZ190eXBlCiBGb3JtRGF0YV9wZ191c2VyX21hcHBpbmcKK0Zv cm1EYXRhX3BnX3ZhcmlhYmxlCiBGb3JtRXh0cmFEYXRhX3BnX2F0dHJpYnV0ZQogRm9ybV9wZ19h Z2dyZWdhdGUKIEZvcm1fcGdfYW0KQEAgLTkzOSw2ICs5NDEsNyBAQCBGb3JtX3BnX3RzX3BhcnNl cgogRm9ybV9wZ190c190ZW1wbGF0ZQogRm9ybV9wZ190eXBlCiBGb3JtX3BnX3VzZXJfbWFwcGlu ZworRm9ybV9wZ192YXJpYWJsZQogRm9ybWF0Tm9kZQogRnJlZUJsb2NrTnVtYmVyQXJyYXkKIEZy ZWVMaXN0RGF0YQpAQCAtMzA5OCw2ICszMTAxLDcgQEAgVmFyU3RyaW5nCiBWYXJTdHJpbmdTb3J0 U3VwcG9ydAogVmFyaWFibGUKIFZhcmlhYmxlQXNzaWduSG9vaworVmFyaWFibGVJbmZvCiBWYXJp YWJsZVNldEtpbmQKIFZhcmlhYmxlU2V0U3RtdAogVmFyaWFibGVTaG93U3RtdAotLSAKMi40OC4w Cgo= --000000000000736d0d062be1b970--