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 1rXlFQ-00CVXB-D7 for pgsql-hackers@arkaria.postgresql.org; Wed, 07 Feb 2024 16:58:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rXlFO-00C9jM-VD for pgsql-hackers@arkaria.postgresql.org; Wed, 07 Feb 2024 16:58:06 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rXlFO-00C9jE-2W for pgsql-hackers@lists.postgresql.org; Wed, 07 Feb 2024 16:58:06 +0000 Received: from mail-lj1-x231.google.com ([2a00:1450:4864:20::231]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rXlFK-005ZV7-Ln for pgsql-hackers@postgresql.org; Wed, 07 Feb 2024 16:58:04 +0000 Received: by mail-lj1-x231.google.com with SMTP id 38308e7fff4ca-2d0a4e1789cso9868481fa.3 for ; Wed, 07 Feb 2024 08:58:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crunchydata.com; s=google; t=1707325080; x=1707929880; darn=postgresql.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=gPguS6HL7dkdLN8nAA5JDekFi8CFu2pBGTYPhksUfc8=; b=GGGSIk1ZFv6jqTFe1P6t8mEF4NGaEvdfTwXlaTvEszChpkbYZCTWtYzWrxPWBEzeSH 7DUYoOj6Bl7ivovcuDtUmE+BXHQDuFADfXhEozsv0pg/tim2lVwWbt7fAgpoawqFDvwY 6SqOEmb+Q20PGEW3mYLebynGK8FtuTx9XgB3zyMRqDJsu+JJC8KoqITRJyWqEQ2ezs+f rvqD0A8liYqlrJ3/8nXZd6ri6McGtvHg21HperIktTD8B5fcJFSD9T2UeTlWe5FONv1j jOWFwX/kpHLQjPYEKS3V9WTFAIxlJOiW9rmo2U66ye1hT+/FssvHhR7pLKjKTezcvS3H QFcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707325080; x=1707929880; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=gPguS6HL7dkdLN8nAA5JDekFi8CFu2pBGTYPhksUfc8=; b=d14NtbF654/eJ9x293rjbnXi+Bgi3PjhhhvyjvlDQSUt9C15nOEJx+YWzcS1NCSgh9 H9TXfI5avuu85KlhvS2giad04sPK8C0gaaNMB3YZdxbXJSoBcxDnjnJfeiZ6rIjH+k5q QsVVOyB6EO+EsMTpPpu5MVpN9Xsbi0k2VXciZrCS4Fy15tv/RnrDQlocr17Mbc1fJ6Kr pBi5okoxyKceYhXLJRsKUlWwd9F5Rm5QGPN9ppb/DFNIYlIeH1qTpRDg9YwG1kfpY1/b cEv/cdOiX91y8EcfFNpKAwjMCfK+4lPve1vNXFBC2m/clHiqtzEzjqam5ncLpRKDTqmf v3tA== X-Gm-Message-State: AOJu0Yx7HitwzudWCgSkr97t1PwEvSAwLvEy/Yniypgx45VnHbXPJC8T 7BUuN+a9+7FVX11wlORq0UOSNYX+E53DNPNfmdaSd0zw+z0k/o7df7WJUx4404FCb1Tild0TeqF qgY5KAw+jy/HdXa7IaXqGn36n+UCZwGSbc++THS4Ix2meLzdlATM= X-Google-Smtp-Source: AGHT+IEuPt8QTkmb4ie69eol7cnvuuN8P5mTUY+6/YGCAtzvJFO3gJx7Vp3s8Yp36jnHikLNdIHiqm49vMvql+g5UKA= X-Received: by 2002:a2e:bc29:0:b0:2d0:cb23:c71b with SMTP id b41-20020a2ebc29000000b002d0cb23c71bmr1842337ljf.38.1707325080451; Wed, 07 Feb 2024 08:58:00 -0800 (PST) MIME-Version: 1.0 From: David Christensen Date: Wed, 7 Feb 2024 10:57:48 -0600 Message-ID: Subject: Constant Splitting/Refactoring To: PostgreSQL-development Cc: Stephen Frost , peter@eisentraut.org Content-Type: multipart/mixed; boundary="000000000000f048080610cd981a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f048080610cd981a Content-Type: multipart/alternative; boundary="000000000000f048060610cd9818" --000000000000f048060610cd9818 Content-Type: text/plain; charset="UTF-8" As part of the reserved page space/page features[1] work, there is a need to convert some of the existing constants into variables, since the size of those will no longer be fixed at compile time. At FOSDEM, there was some interest expressed about seeing what a cleanup patch like that would look like. Enclosed is a series of cleanup patches for HEAD. This splits each of the 4 constants that care about page size into Cluster-specific and -Limit variants, the first intended to become a variable in time, and the second being the maximum value such a variable may take (largely used for static allocations). Since these patches define these symbols to have the same values they previously had, there are no changes in functionality. These were largely mechanical changes, and as such we should perhaps consider making the same changes to back-branches to make it so context lines and the like would be the same, simplifying maintainer's efforts when applying code in back branches that touch similar areas. The script I have to make these changes is simple, and could be run against the back branches with only the comments surrounding Calc() pieces needing to be adjusted once. These were based on HEAD as a few minutes ago, 902900b308f, and pass all tests. Thanks, David [1] https://commitfest.postgresql.org/47/3986/ --000000000000f048060610cd9818 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
As part of the reserved page space/page features[1] work, = there is a need to convert some of the existing constants into variables, s= ince the size of those will no longer=C2=A0be fixed at compile time.=C2=A0 = At FOSDEM, there was some interest expressed about seeing what a cleanup pa= tch like that would look like.

Enclosed is a series of c= leanup patches for HEAD.=C2=A0 This splits each of the 4 constants that car= e about page size into Cluster-specific and -Limit variants, the first inte= nded to become a variable in time, and the second being the maximum=C2=A0va= lue such a variable=C2=A0may take (largely used for static allocations).

Since these patches define these symbols to have the= same values they=C2=A0previously had, there are no changes in functionalit= y.=C2=A0 These were largely mechanical changes, and as such we should perha= ps consider making the same changes to back-branches to make it so context = lines and the like would be the same, simplifying maintainer's efforts = when applying code in back branches that touch similar areas.
The script I have to make these changes is simple, and could be= run against the back branches with only the comments surrounding Calc() pi= eces needing to be adjusted once.

These were based= on HEAD as a few minutes ago,=C2=A0902900b308f, and pass all tests.
<= div>Thanks,

David

--000000000000f048060610cd9818-- --000000000000f048080610cd981a Content-Type: application/octet-stream; name="v1-0002-Split-MaxHeapTupleSize-into-runtime-and-max-value.patch" Content-Disposition: attachment; filename="v1-0002-Split-MaxHeapTupleSize-into-runtime-and-max-value.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lsc180ab1 RnJvbSAxZTM4N2RiY2Y0NWQyYzJhZGNlN2VjNjk3ZjBlOTU5ZTgwZWYyM2I3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBDaHJpc3RlbnNlbiA8ZGF2aWQuY2hyaXN0ZW5zZW5A Y3J1bmNoeWRhdGEuY29tPgpEYXRlOiBXZWQsIDcgRmViIDIwMjQgMTA6NDk6MzEgLTA1MDAKU3Vi amVjdDogW1BBVENIIHYxIDIvNF0gU3BsaXQgTWF4SGVhcFR1cGxlU2l6ZSBpbnRvIHJ1bnRpbWUg YW5kIG1heCB2YWx1ZXMKCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgICAg ICAgICAgICAgIHwgMTIgKysrKystLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGlvLmMg ICAgICAgICAgICAgICAgIHwgIDYgKystLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Jld3Jp dGVoZWFwLmMgICAgICAgICB8ICA0ICsrLS0KIC4uLi9yZXBsaWNhdGlvbi9sb2dpY2FsL3Jlb3Jk ZXJidWZmZXIuYyAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9zdG9yYWdlL2ZyZWVzcGFjZS9m cmVlc3BhY2UuYyAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXB0b2FzdC5oICAg ICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9odHVwX2RldGFpbHMuaCAg ICAgICAgICAgICB8IDIyICsrKysrKysrKysrKysrLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvaW5zZXJ0Lm91dCAgICAgICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9p bnNlcnQuc3FsICAgICAgICAgICAgICAgfCAgMiArLQogOSBmaWxlcyBjaGFuZ2VkLCAzMiBpbnNl cnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmluZGV4 IGY3NDBkNDIyNWUuLmRjYmI5MjY5MTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC05 MjMxLDcgKzkyMzEsNyBAQCBoZWFwX3hsb2dfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3Jk KQogCXVuaW9uCiAJewogCQlIZWFwVHVwbGVIZWFkZXJEYXRhIGhkcjsKLQkJY2hhcgkJZGF0YVtN YXhIZWFwVHVwbGVTaXplXTsKKwkJY2hhcgkJZGF0YVtNYXhIZWFwVHVwbGVTaXplTGltaXRdOwog CX0JCQl0YnVmOwogCUhlYXBUdXBsZUhlYWRlciBodHVwOwogCXhsX2hlYXBfaGVhZGVyIHhsaGRy OwpAQCAtOTI4Nyw3ICs5Mjg3LDcgQEAgaGVhcF94bG9nX2luc2VydChYTG9nUmVhZGVyU3RhdGUg KnJlY29yZCkKIAkJZGF0YSA9IFhMb2dSZWNHZXRCbG9ja0RhdGEocmVjb3JkLCAwLCAmZGF0YWxl bik7CiAKIAkJbmV3bGVuID0gZGF0YWxlbiAtIFNpemVPZkhlYXBIZWFkZXI7Ci0JCUFzc2VydChk YXRhbGVuID4gU2l6ZU9mSGVhcEhlYWRlciAmJiBuZXdsZW4gPD0gTWF4SGVhcFR1cGxlU2l6ZSk7 CisJCUFzc2VydChkYXRhbGVuID4gU2l6ZU9mSGVhcEhlYWRlciAmJiBuZXdsZW4gPD0gQ2x1c3Rl ck1heEhlYXBUdXBsZVNpemUpOwogCQltZW1jcHkoKGNoYXIgKikgJnhsaGRyLCBkYXRhLCBTaXpl T2ZIZWFwSGVhZGVyKTsKIAkJZGF0YSArPSBTaXplT2ZIZWFwSGVhZGVyOwogCkBAIC05MzUzLDcg KzkzNTMsNyBAQCBoZWFwX3hsb2dfbXVsdGlfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3Jk KQogCXVuaW9uCiAJewogCQlIZWFwVHVwbGVIZWFkZXJEYXRhIGhkcjsKLQkJY2hhcgkJZGF0YVtN YXhIZWFwVHVwbGVTaXplXTsKKwkJY2hhcgkJZGF0YVtNYXhIZWFwVHVwbGVTaXplTGltaXRdOwog CX0JCQl0YnVmOwogCUhlYXBUdXBsZUhlYWRlciBodHVwOwogCXVpbnQzMgkJbmV3bGVuOwpAQCAt OTQzMSw3ICs5NDMxLDcgQEAgaGVhcF94bG9nX211bHRpX2luc2VydChYTG9nUmVhZGVyU3RhdGUg KnJlY29yZCkKIAkJCXR1cGRhdGEgPSAoKGNoYXIgKikgeGxoZHIpICsgU2l6ZU9mTXVsdGlJbnNl cnRUdXBsZTsKIAogCQkJbmV3bGVuID0geGxoZHItPmRhdGFsZW47Ci0JCQlBc3NlcnQobmV3bGVu IDw9IE1heEhlYXBUdXBsZVNpemUpOworCQkJQXNzZXJ0KG5ld2xlbiA8PSBDbHVzdGVyTWF4SGVh cFR1cGxlU2l6ZSk7CiAJCQlodHVwID0gJnRidWYuaGRyOwogCQkJTWVtU2V0KChjaGFyICopIGh0 dXAsIDAsIFNpemVvZkhlYXBUdXBsZUhlYWRlcik7CiAJCQkvKiBQRzczRk9STUFUOiBnZXQgYml0 bWFwIFsrIHBhZGRpbmddIFsrIG9pZF0gKyBkYXRhICovCkBAIC05NTEwLDcgKzk1MTAsNyBAQCBo ZWFwX3hsb2dfdXBkYXRlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkLCBib29sIGhvdF91cGRhdGUp CiAJdW5pb24KIAl7CiAJCUhlYXBUdXBsZUhlYWRlckRhdGEgaGRyOwotCQljaGFyCQlkYXRhW01h eEhlYXBUdXBsZVNpemVdOworCQljaGFyCQlkYXRhW01heEhlYXBUdXBsZVNpemVMaW1pdF07CiAJ fQkJCXRidWY7CiAJeGxfaGVhcF9oZWFkZXIgeGxoZHI7CiAJdWludDMyCQluZXdsZW47CkBAIC05 NjY2LDcgKzk2NjYsNyBAQCBoZWFwX3hsb2dfdXBkYXRlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3Jk LCBib29sIGhvdF91cGRhdGUpCiAJCXJlY2RhdGEgKz0gU2l6ZU9mSGVhcEhlYWRlcjsKIAogCQl0 dXBsZW4gPSByZWNkYXRhX2VuZCAtIHJlY2RhdGE7Ci0JCUFzc2VydCh0dXBsZW4gPD0gTWF4SGVh cFR1cGxlU2l6ZSk7CisJCUFzc2VydCh0dXBsZW4gPD0gQ2x1c3Rlck1heEhlYXBUdXBsZVNpemUp OwogCiAJCWh0dXAgPSAmdGJ1Zi5oZHI7CiAJCU1lbVNldCgoY2hhciAqKSBodHVwLCAwLCBTaXpl b2ZIZWFwVHVwbGVIZWFkZXIpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv aGlvLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oaW8uYwppbmRleCA1OGYwYTM4NGM4Li4z ZTM5NjM1MDNiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oaW8uYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oaW8uYwpAQCAtNTMwLDExICs1MzAsMTEgQEAgUmVs YXRpb25HZXRCdWZmZXJGb3JUdXBsZShSZWxhdGlvbiByZWxhdGlvbiwgU2l6ZSBsZW4sCiAJLyoK IAkgKiBJZiB3ZSdyZSBnb25uYSBmYWlsIGZvciBvdmVyc2l6ZSB0dXBsZSwgZG8gaXQgcmlnaHQg YXdheQogCSAqLwotCWlmIChsZW4gPiBNYXhIZWFwVHVwbGVTaXplKQorCWlmIChsZW4gPiBDbHVz dGVyTWF4SGVhcFR1cGxlU2l6ZSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJD T0RFX1BST0dSQU1fTElNSVRfRVhDRUVERUQpLAogCQkJCSBlcnJtc2coInJvdyBpcyB0b28gYmln OiBzaXplICV6dSwgbWF4aW11bSBzaXplICV6dSIsCi0JCQkJCQlsZW4sIE1heEhlYXBUdXBsZVNp emUpKSk7CisJCQkJCQlsZW4sIENsdXN0ZXJNYXhIZWFwVHVwbGVTaXplKSkpOwogCiAJLyogQ29t cHV0ZSBkZXNpcmVkIGV4dHJhIGZyZWVzcGFjZSBkdWUgdG8gZmlsbGZhY3RvciBvcHRpb24gKi8K IAlzYXZlRnJlZVNwYWNlID0gUmVsYXRpb25HZXRUYXJnZXRQYWdlRnJlZVNwYWNlKHJlbGF0aW9u LApAQCAtNTQ2LDcgKzU0Niw3IEBAIFJlbGF0aW9uR2V0QnVmZmVyRm9yVHVwbGUoUmVsYXRpb24g cmVsYXRpb24sIFNpemUgbGVuLAogCSAqIHNvbWV3aGF0IGFyYml0cmFyeSwgYnV0IGl0IHNob3Vs ZCBwcmV2ZW50IG1vc3QgdW5uZWNlc3NhcnkgcmVsYXRpb24KIAkgKiBleHRlbnNpb25zIHdoaWxl IGluc2VydGluZyBsYXJnZSB0dXBsZXMgaW50byBsb3ctZmlsbGZhY3RvciB0YWJsZXMuCiAJICov Ci0JbmVhcmx5RW1wdHlGcmVlU3BhY2UgPSBNYXhIZWFwVHVwbGVTaXplIC0KKwluZWFybHlFbXB0 eUZyZWVTcGFjZSA9IENsdXN0ZXJNYXhIZWFwVHVwbGVTaXplIC0KIAkJKENsdXN0ZXJNYXhIZWFw VHVwbGVzUGVyUGFnZSAvIDggKiBzaXplb2YoSXRlbUlkRGF0YSkpOwogCWlmIChsZW4gKyBzYXZl RnJlZVNwYWNlID4gbmVhcmx5RW1wdHlGcmVlU3BhY2UpCiAJCXRhcmdldEZyZWVTcGFjZSA9IE1h eChsZW4sIG5lYXJseUVtcHR5RnJlZVNwYWNlKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3Jld3JpdGVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9yZXdyaXRl aGVhcC5jCmluZGV4IDM0MTA3MzIzZmYuLjc1ZTBkMWZmZTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3Jld3JpdGVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvcmV3cml0ZWhlYXAuYwpAQCAtNjUzLDExICs2NTMsMTEgQEAgcmF3X2hlYXBfaW5zZXJ0KFJl d3JpdGVTdGF0ZSBzdGF0ZSwgSGVhcFR1cGxlIHR1cCkKIAkvKgogCSAqIElmIHdlJ3JlIGdvbm5h IGZhaWwgZm9yIG92ZXJzaXplIHR1cGxlLCBkbyBpdCByaWdodCBhd2F5CiAJICovCi0JaWYgKGxl biA+IE1heEhlYXBUdXBsZVNpemUpCisJaWYgKGxlbiA+IENsdXN0ZXJNYXhIZWFwVHVwbGVTaXpl KQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfUFJPR1JBTV9MSU1JVF9F WENFRURFRCksCiAJCQkJIGVycm1zZygicm93IGlzIHRvbyBiaWc6IHNpemUgJXp1LCBtYXhpbXVt IHNpemUgJXp1IiwKLQkJCQkJCWxlbiwgTWF4SGVhcFR1cGxlU2l6ZSkpKTsKKwkJCQkJCWxlbiwg Q2x1c3Rlck1heEhlYXBUdXBsZVNpemUpKSk7CiAKIAkvKiBDb21wdXRlIGRlc2lyZWQgZXh0cmEg ZnJlZXNwYWNlIGR1ZSB0byBmaWxsZmFjdG9yIG9wdGlvbiAqLwogCXNhdmVGcmVlU3BhY2UgPSBS ZWxhdGlvbkdldFRhcmdldFBhZ2VGcmVlU3BhY2Uoc3RhdGUtPnJzX25ld19yZWwsCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Jlb3JkZXJidWZmZXIuYyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVvcmRlcmJ1ZmZlci5jCmluZGV4IGJiZjA5 NjYxODIuLjA3NDQxZDYzMGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvcmVvcmRlcmJ1ZmZlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvcmVvcmRlcmJ1ZmZlci5jCkBAIC00ODc5LDcgKzQ4NzksNyBAQCBSZW9yZGVyQnVmZmVyVG9h c3RSZXBsYWNlKFJlb3JkZXJCdWZmZXIgKnJiLCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAJICog dGhlIHR1cGxlYnVmIGJlY2F1c2UgYXR0cnNbXSB3aWxsIHBvaW50IGJhY2sgaW50byB0aGUgY3Vy cmVudCBjb250ZW50LgogCSAqLwogCXRtcGh0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoZGVzYywgYXR0 cnMsIGlzbnVsbCk7Ci0JQXNzZXJ0KG5ld3R1cC0+dF9sZW4gPD0gTWF4SGVhcFR1cGxlU2l6ZSk7 CisJQXNzZXJ0KG5ld3R1cC0+dF9sZW4gPD0gQ2x1c3Rlck1heEhlYXBUdXBsZVNpemUpOwogCUFz c2VydChuZXd0dXAtPnRfZGF0YSA9PSAoSGVhcFR1cGxlSGVhZGVyKSAoKGNoYXIgKikgbmV3dHVw ICsgSEVBUFRVUExFU0laRSkpOwogCiAJbWVtY3B5KG5ld3R1cC0+dF9kYXRhLCB0bXBodHVwLT50 X2RhdGEsIHRtcGh0dXAtPnRfbGVuKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv ZnJlZXNwYWNlL2ZyZWVzcGFjZS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9mcmVlc3BhY2UvZnJl ZXNwYWNlLmMKaW5kZXggMTVlM2EwNzM0MS4uZjMxZWRhZGFiZiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9mcmVlc3BhY2UvZnJlZXNwYWNlLmMKKysrIGIvc3JjL2JhY2tlbmQvc3Rv cmFnZS9mcmVlc3BhY2UvZnJlZXNwYWNlLmMKQEAgLTYzLDcgKzYzLDcgQEAKICAqLwogI2RlZmlu ZSBGU01fQ0FURUdPUklFUwkyNTYKICNkZWZpbmUgRlNNX0NBVF9TVEVQCShCTENLU1ogLyBGU01f Q0FURUdPUklFUykKLSNkZWZpbmUgTWF4RlNNUmVxdWVzdFNpemUJTWF4SGVhcFR1cGxlU2l6ZQor I2RlZmluZSBNYXhGU01SZXF1ZXN0U2l6ZQlDbHVzdGVyTWF4SGVhcFR1cGxlU2l6ZQogCiAvKgog ICogRGVwdGggb2YgdGhlIG9uLWRpc2sgdHJlZS4gV2UgbmVlZCB0byBiZSBhYmxlIHRvIGFkZHJl c3MgMl4zMi0xIGJsb2NrcywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwdG9h c3QuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwdG9hc3QuaAppbmRleCBjMzc2ZGZmNDhkLi42 ZmU4MzZmN2QxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcHRvYXN0LmgKKysr IGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXB0b2FzdC5oCkBAIC02NSw3ICs2NSw3IEBACiAgKiBj b21wcmVzcyBpdCAod2UgY2FuJ3QgbW92ZSBpdCBvdXQtb2YtbGluZSwgaG93ZXZlcikuICBOb3Rl IHRoYXQgdGhpcwogICogbnVtYmVyIGlzIHBlci1kYXR1bSwgbm90IHBlci10dXBsZSwgZm9yIHNp bXBsaWNpdHkgaW4gaW5kZXhfZm9ybV90dXBsZSgpLgogICovCi0jZGVmaW5lIFRPQVNUX0lOREVY X1RBUkdFVAkJKE1heEhlYXBUdXBsZVNpemUgLyAxNikKKyNkZWZpbmUgVE9BU1RfSU5ERVhfVEFS R0VUCQkoQ2x1c3Rlck1heEhlYXBUdXBsZVNpemUgLyAxNikKIAogLyoKICAqIFdoZW4gd2Ugc3Rv cmUgYW4gb3ZlcnNpemUgZGF0dW0gZXh0ZXJuYWxseSwgd2UgZGl2aWRlIGl0IGludG8gY2h1bmtz CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaHR1cF9kZXRhaWxzLmggYi9zcmMvaW5j bHVkZS9hY2Nlc3MvaHR1cF9kZXRhaWxzLmgKaW5kZXggN2EzNWJhZjRiMS4uYmI1Yzc0NmI5OCAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2h0dXBfZGV0YWlscy5oCisrKyBiL3NyYy9p bmNsdWRlL2FjY2Vzcy9odHVwX2RldGFpbHMuaApAQCAtNTUwLDE3ICs1NTAsMjcgQEAgU3RhdGlj QXNzZXJ0RGVjbChNYXhPZmZzZXROdW1iZXIgPCBTcGVjVG9rZW5PZmZzZXROdW1iZXIsCiAjZGVm aW5lIEJJVE1BUExFTihOQVRUUykJKCgoaW50KShOQVRUUykgKyA3KSAvIDgpCiAKIC8qCi0gKiBN YXhIZWFwVHVwbGVTaXplIGlzIHRoZSBtYXhpbXVtIGFsbG93ZWQgc2l6ZSBvZiBhIGhlYXAgdHVw bGUsIGluY2x1ZGluZwotICogaGVhZGVyIGFuZCBNQVhBTElHTiBhbGlnbm1lbnQgcGFkZGluZy4g IEJhc2ljYWxseSBpdCdzIEJMQ0tTWiBtaW51cyB0aGUKLSAqIG90aGVyIHN0dWZmIHRoYXQgaGFz IHRvIGJlIG9uIGEgZGlzayBwYWdlLiAgU2luY2UgaGVhcCBwYWdlcyB1c2Ugbm8KLSAqICJzcGVj aWFsIHNwYWNlIiwgdGhlcmUncyBubyBkZWR1Y3Rpb24gZm9yIHRoYXQuCisgKiBDbHVzdGVyTWF4 SGVhcFR1cGxlU2l6ZSBpcyBhIGNsdXN0ZXItc3BlY2lmaWMgbWF4aW11bSBhbGxvd2VkIHNpemUg b2YgYQorICogaGVhcCB0dXBsZSwgaW5jbHVkaW5nIGhlYWRlciBhbmQgTUFYQUxJR04gYWxpZ25t ZW50IHBhZGRpbmcuICBCYXNpY2FsbHkKKyAqIGl0J3MgQkxDS1NaIG1pbnVzIHRoZSBvdGhlciBz dHVmZiB0aGF0IGhhcyB0byBiZSBvbiBhIGRpc2sgcGFnZS4gIFNpbmNlCisgKiBoZWFwIHBhZ2Vz IHVzZSBubyAic3BlY2lhbCBzcGFjZSIsIHRoZXJlJ3Mgbm8gZGVkdWN0aW9uIGZvciB0aGF0Lgor ICoKKyAqIE1heEhlYXBUdXBsZXNTaXplTGltaXQgaXMgdGhlIGxhcmdlc3QgdmFsdWUgdGhhdCBD bHVzdGVyTWF4SGVhcFR1cGxlU2l6ZQorICogY291bGQgYmUuICBXaGlsZSB0aGVzZSBjdXJyZW50 bHkgZXZhbHVhdGUgdG8gdGhlIHNhbWUgdmFsdWUsIHRoZXNlIGFyZQorICogYmVpbmcgc3BsaXQg b3V0IHNvIENsdXN0ZXJNYXhIZWFwVHVwbGVTaXplIGNhbiBiZWNvbWUgYSB2YXJpYWJsZQorICog aW5zdGVhZCBvZiBhIGNvbnN0YW50LgorICoKKyAqIFRoZSBDYWxjTWF4SGVhcFR1cGxlU2l6ZSgp IG1hY3JvIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBhcHByb3ByaWF0ZQorICogdmFsdWVzLCBn aXZlbiB0aGUgdXNhYmxlIHBhZ2Ugc3BhY2Ugb24gYSBnaXZlbiBwYWdlLgogICoKICAqIE5PVEU6 IHdlIGFsbG93IGZvciB0aGUgSXRlbUlkIHRoYXQgbXVzdCBwb2ludCB0byB0aGUgdHVwbGUsIGVu c3VyaW5nIHRoYXQKICAqIGFuIG90aGVyd2lzZS1lbXB0eSBwYWdlIGNhbiBpbmRlZWQgaG9sZCBh IHR1cGxlIG9mIHRoaXMgc2l6ZS4gIEJlY2F1c2UKICAqIEl0ZW1JZHMgYW5kIHR1cGxlcyBoYXZl IGRpZmZlcmVudCBhbGlnbm1lbnQgcmVxdWlyZW1lbnRzLCBkb24ndCBhc3N1bWUgdGhhdAotICog eW91IGNhbiwgc2F5LCBmaXQgMiB0dXBsZXMgb2Ygc2l6ZSBNYXhIZWFwVHVwbGVTaXplLzIgb24g dGhlIHNhbWUgcGFnZS4KKyAqIHlvdSBjYW4sIHNheSwgZml0IDIgdHVwbGVzIG9mIHNpemUgQ2x1 c3Rlck1heEhlYXBUdXBsZVNpemUvMiBvbiB0aGUgc2FtZSBwYWdlLgogICovCi0jZGVmaW5lIE1h eEhlYXBUdXBsZVNpemUgIChCTENLU1ogLSBNQVhBTElHTihTaXplT2ZQYWdlSGVhZGVyRGF0YSAr IHNpemVvZihJdGVtSWREYXRhKSkpCisjZGVmaW5lIENhbGNNYXhIZWFwVHVwbGVTaXplKHNpemUp ICAoc2l6ZSAtIHNpemVvZihJdGVtSWREYXRhKSkKKyNkZWZpbmUgQ2x1c3Rlck1heEhlYXBUdXBs ZVNpemUgQ2FsY01heEhlYXBUdXBsZVNpemUoQkxDS1NaIC0gU2l6ZU9mUGFnZUhlYWRlckRhdGEp CisjZGVmaW5lIE1heEhlYXBUdXBsZVNpemVMaW1pdCBDYWxjTWF4SGVhcFR1cGxlU2l6ZShCTENL U1ogLSBTaXplT2ZQYWdlSGVhZGVyRGF0YSkKICNkZWZpbmUgTWluSGVhcFR1cGxlU2l6ZSAgTUFY QUxJR04oU2l6ZW9mSGVhcFR1cGxlSGVhZGVyKQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9pbnNlcnQub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9p bnNlcnQub3V0CmluZGV4IGRkNDM1NGZjN2QuLmVlYmYzYzZkNGQgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW5zZXJ0Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2luc2VydC5vdXQKQEAgLTg2LDcgKzg2LDcgQEAgZHJvcCB0YWJsZSBpbnNlcnR0ZXN0 OwogLS0KIENSRUFURSBUQUJMRSBsYXJnZV90dXBsZV90ZXN0IChhIGludCwgYiB0ZXh0KSBXSVRI IChmaWxsZmFjdG9yID0gMTApOwogQUxURVIgVEFCTEUgbGFyZ2VfdHVwbGVfdGVzdCBBTFRFUiBD T0xVTU4gYiBTRVQgU1RPUkFHRSBwbGFpbjsKLS0tIGNyZWF0ZSBwYWdlIHcvIGZyZWUgc3BhY2Ug aW4gcmFuZ2UgW25lYXJseUVtcHR5RnJlZVNwYWNlLCBNYXhIZWFwVHVwbGVTaXplKQorLS0gY3Jl YXRlIHBhZ2Ugdy8gZnJlZSBzcGFjZSBpbiByYW5nZSBbbmVhcmx5RW1wdHlGcmVlU3BhY2UsIENs dXN0ZXJNYXhIZWFwVHVwbGVTaXplKQogSU5TRVJUIElOVE8gbGFyZ2VfdHVwbGVfdGVzdCAoc2Vs ZWN0IDEsIE5VTEwpOwogLS0gc2hvdWxkIHN0aWxsIGZpdCBvbiB0aGUgcGFnZQogSU5TRVJUIElO VE8gbGFyZ2VfdHVwbGVfdGVzdCAoc2VsZWN0IDIsIHJlcGVhdCgnYScsIDEwMDApKTsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2luc2VydC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9pbnNlcnQuc3FsCmluZGV4IGJkY2ZmZDAzMTQuLjUzZjQ2ZTc5NjAgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2luc2VydC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvaW5zZXJ0LnNxbApAQCAtNDMsNyArNDMsNyBAQCBkcm9wIHRhYmxlIGluc2VydHRlc3Q7CiBD UkVBVEUgVEFCTEUgbGFyZ2VfdHVwbGVfdGVzdCAoYSBpbnQsIGIgdGV4dCkgV0lUSCAoZmlsbGZh Y3RvciA9IDEwKTsKIEFMVEVSIFRBQkxFIGxhcmdlX3R1cGxlX3Rlc3QgQUxURVIgQ09MVU1OIGIg U0VUIFNUT1JBR0UgcGxhaW47CiAKLS0tIGNyZWF0ZSBwYWdlIHcvIGZyZWUgc3BhY2UgaW4gcmFu Z2UgW25lYXJseUVtcHR5RnJlZVNwYWNlLCBNYXhIZWFwVHVwbGVTaXplKQorLS0gY3JlYXRlIHBh Z2Ugdy8gZnJlZSBzcGFjZSBpbiByYW5nZSBbbmVhcmx5RW1wdHlGcmVlU3BhY2UsIENsdXN0ZXJN YXhIZWFwVHVwbGVTaXplKQogSU5TRVJUIElOVE8gbGFyZ2VfdHVwbGVfdGVzdCAoc2VsZWN0IDEs IE5VTEwpOwogCiAtLSBzaG91bGQgc3RpbGwgZml0IG9uIHRoZSBwYWdlCi0tIAoyLjQwLjEKCg== --000000000000f048080610cd981a Content-Type: application/octet-stream; name="v1-0001-Split-MaxHeapTuplesPerPage-into-runtime-and-max-v.patch" Content-Disposition: attachment; filename="v1-0001-Split-MaxHeapTuplesPerPage-into-runtime-and-max-v.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lsc1809y0 RnJvbSA1YzgzYTYzYjBmYzNkOTZmNzgzMGE1MTIzYWJkOGE3YmJkMzIzYjlkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBDaHJpc3RlbnNlbiA8ZGF2aWQuY2hyaXN0ZW5zZW5A Y3J1bmNoeWRhdGEuY29tPgpEYXRlOiBXZWQsIDcgRmViIDIwMjQgMTA6NDk6MzEgLTA1MDAKU3Vi amVjdDogW1BBVENIIHYxIDEvNF0gU3BsaXQgTWF4SGVhcFR1cGxlc1BlclBhZ2UgaW50byBydW50 aW1lIGFuZCBtYXggdmFsdWVzCgotLS0KIGNvbnRyaWIvcGdfc3VyZ2VyeS9oZWFwX3N1cmdlcnku YyAgICAgICAgICAgICB8ICA0ICstLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9ibG9v bS5jICAgICAgICAgIHwgIDggKysrLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX21p bm1heF9tdWx0aS5jICAgfCAgOCArKystLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2lucG9z dGluZ2xpc3QuYyAgICAgICB8ICA2ICsrLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9SRUFE TUUuSE9UICAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt LmMgICAgICAgICAgICAgIHwgIDYgKystLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBh bV9oYW5kbGVyLmMgICAgICB8ICA4ICsrKy0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGlv LmMgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5l aGVhcC5jICAgICAgICAgICB8IDIyICsrKysrKysrLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3ZhY3V1bWxhenkuYyAgICAgICAgICB8IDIyICsrKysrKysrLS0tLS0tLS0KIHNyYy9i YWNrZW5kL25vZGVzL3RpZGJpdG1hcC5jICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFj a2VuZC9zdG9yYWdlL3BhZ2UvYnVmcGFnZS5jICAgICAgICAgICAgfCAxOCArKysrKystLS0tLS0t CiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2luYmxvY2suaCAgICAgICAgICAgICAgICAgfCAgMiArLQog c3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oICAgICAgICAgICAgICAgICAgIHwgIDYgKystLS0K IHNyYy9pbmNsdWRlL2FjY2Vzcy9odHVwX2RldGFpbHMuaCAgICAgICAgICAgICB8IDI2ICsrKysr KysrKysrKysrLS0tLS0KIC4uLi90ZXN0X2dpbnBvc3RpbmdsaXN0L3Rlc3RfZ2lucG9zdGluZ2xp c3QuYyB8ICA2ICsrLS0tCiAxNiBmaWxlcyBjaGFuZ2VkLCA4MSBpbnNlcnRpb25zKCspLCA2NyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N1cmdlcnkvaGVhcF9zdXJnZXJ5 LmMgYi9jb250cmliL3BnX3N1cmdlcnkvaGVhcF9zdXJnZXJ5LmMKaW5kZXggMzdkZmZlM2Y3ZC4u ODZhZmYyNDk0ZSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdXJnZXJ5L2hlYXBfc3VyZ2VyeS5j CisrKyBiL2NvbnRyaWIvcGdfc3VyZ2VyeS9oZWFwX3N1cmdlcnkuYwpAQCAtODksNyArODksNyBA QCBoZWFwX2ZvcmNlX2NvbW1vbihGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgSGVhcFR1cGxlRm9y Y2VPcHRpb24gaGVhcF9mb3JjZV9vcHQpCiAJUmVsYXRpb24JcmVsOwogCU9mZnNldE51bWJlciBj dXJyX3N0YXJ0X3B0ciwKIAkJCQluZXh0X3N0YXJ0X3B0cjsKLQlib29sCQlpbmNsdWRlX3RoaXNf dGlkW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKKwlib29sCQlpbmNsdWRlX3RoaXNfdGlkW01heEhl YXBUdXBsZXNQZXJQYWdlTGltaXRdOwogCiAJaWYgKFJlY292ZXJ5SW5Qcm9ncmVzcygpKQogCQll cmVwb3J0KEVSUk9SLApAQCAtMjI1LDcgKzIyNSw3IEBAIGhlYXBfZm9yY2VfY29tbW9uKEZ1bmN0 aW9uQ2FsbEluZm8gZmNpbmZvLCBIZWFwVHVwbGVGb3JjZU9wdGlvbiBoZWFwX2ZvcmNlX29wdCkK IAkJCX0KIAogCQkJLyogTWFyayBpdCBmb3IgcHJvY2Vzc2luZy4gKi8KLQkJCUFzc2VydChvZmZu byA8IE1heEhlYXBUdXBsZXNQZXJQYWdlKTsKKwkJCUFzc2VydChvZmZubyA8IENsdXN0ZXJNYXhI ZWFwVHVwbGVzUGVyUGFnZSk7CiAJCQlpbmNsdWRlX3RoaXNfdGlkW29mZm5vXSA9IHRydWU7CiAJ CX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9ibG9vbS5jIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9ibG9vbS5jCmluZGV4IDEzYzFlNjgxZjMuLjY1 MmE2N2YzNTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fYmxvb20u YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX2Jsb29tLmMKQEAgLTE2Niw3ICsx NjYsNyBAQCB0eXBlZGVmIHN0cnVjdCBCbG9vbU9wdGlvbnMKICAqIG9uIHRoZSBmYWN0IHRoYXQg dGhlIGZpbHRlciBoZWFkZXIgaXMgfjIwQiBhbG9uZSwgd2hpY2ggaXMgYWJvdXQKICAqIHRoZSBz YW1lIGFzIHRoZSBmaWx0ZXIgYml0bWFwIGZvciAxNiBkaXN0aW5jdCBpdGVtcyB3aXRoIDElIGZh bHNlCiAgKiBwb3NpdGl2ZSByYXRlLiBTbyBieSBhbGxvd2luZyBsb3dlciB2YWx1ZXMgd2UnZCBu b3QgZ2FpbiBtdWNoLiBJbgotICogYW55IGNhc2UsIHRoZSBtaW4gc2hvdWxkIG5vdCBiZSBsYXJn ZXIgdGhhbiBNYXhIZWFwVHVwbGVzUGVyUGFnZQorICogYW55IGNhc2UsIHRoZSBtaW4gc2hvdWxk IG5vdCBiZSBsYXJnZXIgdGhhbiBDbHVzdGVyTWF4SGVhcFR1cGxlc1BlclBhZ2UKICAqICh+Mjkw KSwgd2hpY2ggaXMgdGhlIHRoZW9yZXRpY2FsIG1heGltdW0gZm9yIHNpbmdsZS1wYWdlIHJhbmdl cy4KICAqLwogI2RlZmluZQkJQkxPT01fTUlOX05ESVNUSU5DVF9QRVJfUkFOR0UJCTE2CkBAIC00 NzgsNyArNDc4LDcgQEAgYnJpbl9ibG9vbV9vcGNpbmZvKFBHX0ZVTkNUSU9OX0FSR1MpCiAgKgog ICogQWRqdXN0IHRoZSBuZGlzdGluY3QgdmFsdWUgYmFzZWQgb24gdGhlIHBhZ2VzUGVyUmFuZ2Ug dmFsdWUuIEZpcnN0LAogICogaWYgaXQncyBuZWdhdGl2ZSwgaXQncyBhc3N1bWVkIHRvIGJlIHJl bGF0aXZlIHRvIG1heGltdW0gbnVtYmVyIG9mCi0gKiB0dXBsZXMgaW4gdGhlIHJhbmdlIChhc3N1 bWluZyBlYWNoIHBhZ2UgZ2V0cyBNYXhIZWFwVHVwbGVzUGVyUGFnZQorICogdHVwbGVzIGluIHRo ZSByYW5nZSAoYXNzdW1pbmcgZWFjaCBwYWdlIGdldHMgQ2x1c3Rlck1heEhlYXBUdXBsZXNQZXJQ YWdlCiAgKiB0dXBsZXMsIHdoaWNoIGlzIGxpa2VseSBhIHNpZ25pZmljYW50IG92ZXItZXN0aW1h dGUpLiBXZSBhbHNvIGNsYW1wCiAgKiB0aGUgdmFsdWUsIG5vdCB0byBvdmVyLXNpemUgdGhlIGJs b29tIGZpbHRlciB1bm5lY2Vzc2FyaWx5LgogICoKQEAgLTQ5Myw3ICs0OTMsNyBAQCBicmluX2Js b29tX29wY2luZm8oUEdfRlVOQ1RJT05fQVJHUykKICAqIHNlZW1zIGJldHRlciB0byByZWx5IG9u IHRoZSB1cHBlciBlc3RpbWF0ZS4KICAqCiAgKiBYWFggV2UgbWlnaHQgYWxzbyBjYWxjdWxhdGUg YSBiZXR0ZXIgZXN0aW1hdGUgb2Ygcm93cyBwZXIgQlJJTiByYW5nZSwKLSAqIGluc3RlYWQgb2Yg dXNpbmcgTWF4SGVhcFR1cGxlc1BlclBhZ2UgKHdoaWNoIHByb2JhYmx5IHByb2R1Y2VzIHZhbHVl cworICogaW5zdGVhZCBvZiB1c2luZyBDbHVzdGVyTWF4SGVhcFR1cGxlc1BlclBhZ2UgKHdoaWNo IHByb2JhYmx5IHByb2R1Y2VzIHZhbHVlcwogICogbXVjaCBoaWdoZXIgdGhhbiByZWFsaXR5KS4K ICAqLwogc3RhdGljIGludApAQCAtNTA4LDcgKzUwOCw3IEBAIGJyaW5fYmxvb21fZ2V0X25kaXN0 aW5jdChCcmluRGVzYyAqYmRlc2MsIEJsb29tT3B0aW9ucyAqb3B0cykKIAogCUFzc2VydChCbG9j a051bWJlcklzVmFsaWQocGFnZXNQZXJSYW5nZSkpOwogCi0JbWF4dHVwbGVzID0gTWF4SGVhcFR1 cGxlc1BlclBhZ2UgKiBwYWdlc1BlclJhbmdlOworCW1heHR1cGxlcyA9IENsdXN0ZXJNYXhIZWFw VHVwbGVzUGVyUGFnZSAqIHBhZ2VzUGVyUmFuZ2U7CiAKIAkvKgogCSAqIFNpbWlsYXJseSB0byBu X2Rpc3RpbmN0LCBuZWdhdGl2ZSB2YWx1ZXMgYXJlIHJlbGF0aXZlIC0gaW4gdGhpcyBjYXNlIHRv CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX21pbm1heF9tdWx0aS5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9taW5tYXhfbXVsdGkuYwppbmRleCAzZmZh YWQzZTQyLi45MDE2NzYxMjJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9i cmluX21pbm1heF9tdWx0aS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fbWlu bWF4X211bHRpLmMKQEAgLTIwMDcsMTAgKzIwMDcsMTAgQEAgYnJpbl9taW5tYXhfbXVsdGlfZGlz dGFuY2VfdGlkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJICogV2UgdXNlIHRoZSBuby1jaGVjayB2YXJp YW50cyBoZXJlLCBiZWNhdXNlIHVzZXItc3VwcGxpZWQgdmFsdWVzIG1heQogCSAqIGhhdmUgKGlw X3Bvc2lkID09IDApLiBTZWUgSXRlbVBvaW50ZXJDb21wYXJlLgogCSAqLwotCWRhMSA9IEl0ZW1Q b2ludGVyR2V0QmxvY2tOdW1iZXJOb0NoZWNrKHBhMSkgKiBNYXhIZWFwVHVwbGVzUGVyUGFnZSAr CisJZGExID0gSXRlbVBvaW50ZXJHZXRCbG9ja051bWJlck5vQ2hlY2socGExKSAqIENsdXN0ZXJN YXhIZWFwVHVwbGVzUGVyUGFnZSArCiAJCUl0ZW1Qb2ludGVyR2V0T2Zmc2V0TnVtYmVyTm9DaGVj ayhwYTEpOwogCi0JZGEyID0gSXRlbVBvaW50ZXJHZXRCbG9ja051bWJlck5vQ2hlY2socGEyKSAq IE1heEhlYXBUdXBsZXNQZXJQYWdlICsKKwlkYTIgPSBJdGVtUG9pbnRlckdldEJsb2NrTnVtYmVy Tm9DaGVjayhwYTIpICogQ2x1c3Rlck1heEhlYXBUdXBsZXNQZXJQYWdlICsKIAkJSXRlbVBvaW50 ZXJHZXRPZmZzZXROdW1iZXJOb0NoZWNrKHBhMik7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KGRhMiAt IGRhMSk7CkBAIC0yNDYxLDcgKzI0NjEsNyBAQCBicmluX21pbm1heF9tdWx0aV9hZGRfdmFsdWUo UEdfRlVOQ1RJT05fQVJHUykKIAkJICogbXVjaCBsb3dlciwgYnV0IG1laC4KIAkJICovCiAJCW1h eHZhbHVlcyA9IE1pbih0YXJnZXRfbWF4dmFsdWVzICogTUlOTUFYX0JVRkZFUl9GQUNUT1IsCi0J CQkJCQlNYXhIZWFwVHVwbGVzUGVyUGFnZSAqIHBhZ2VzUGVyUmFuZ2UpOworCQkJCQkJQ2x1c3Rl ck1heEhlYXBUdXBsZXNQZXJQYWdlICogcGFnZXNQZXJSYW5nZSk7CiAKIAkJLyogYnV0IGFsd2F5 cyBhdCBsZWFzdCB0aGUgb3JpZ2luYWwgdmFsdWUgKi8KIAkJbWF4dmFsdWVzID0gTWF4KG1heHZh bHVlcywgdGFyZ2V0X21heHZhbHVlcyk7CkBAIC0yNTA3LDcgKzI1MDcsNyBAQCBicmluX21pbm1h eF9tdWx0aV9hZGRfdmFsdWUoUEdfRlVOQ1RJT05fQVJHUykKIAkJICogbXVjaCBsb3dlciwgYnV0 IG1laC4KIAkJICovCiAJCW1heHZhbHVlcyA9IE1pbihzZXJpYWxpemVkLT5tYXh2YWx1ZXMgKiBN SU5NQVhfQlVGRkVSX0ZBQ1RPUiwKLQkJCQkJCU1heEhlYXBUdXBsZXNQZXJQYWdlICogcGFnZXNQ ZXJSYW5nZSk7CisJCQkJCQlDbHVzdGVyTWF4SGVhcFR1cGxlc1BlclBhZ2UgKiBwYWdlc1BlclJh bmdlKTsKIAogCQkvKiBidXQgYWx3YXlzIGF0IGxlYXN0IHRoZSBvcmlnaW5hbCB2YWx1ZSAqLwog CQltYXh2YWx1ZXMgPSBNYXgobWF4dmFsdWVzLCBzZXJpYWxpemVkLT5tYXh2YWx1ZXMpOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5wb3N0aW5nbGlzdC5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2dpbi9naW5wb3N0aW5nbGlzdC5jCmluZGV4IDcwOGY5ZjQ5ZWMuLjhhYTBm MTdiZjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2lucG9zdGluZ2xpc3Qu YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnBvc3RpbmdsaXN0LmMKQEAgLTI2LDcg KzI2LDcgQEAKICAqIGxvd2VzdCAzMiBiaXRzIGFyZSB0aGUgYmxvY2sgbnVtYmVyLiBUaGF0IGxl YXZlcyAyMSBiaXRzIHVudXNlZCwgaS5lLgogICogb25seSA0MyBsb3cgYml0cyBhcmUgdXNlZC4K ICAqCi0gKiAxMSBiaXRzIGlzIGVub3VnaCBmb3IgdGhlIG9mZnNldCBudW1iZXIsIGJlY2F1c2Ug TWF4SGVhcFR1cGxlc1BlclBhZ2UgPAorICogMTEgYml0cyBpcyBlbm91Z2ggZm9yIHRoZSBvZmZz ZXQgbnVtYmVyLCBiZWNhdXNlIENsdXN0ZXJNYXhIZWFwVHVwbGVzUGVyUGFnZSA8CiAgKiAyXjEx IG9uIGFsbCBzdXBwb3J0ZWQgYmxvY2sgc2l6ZXMuIFdlIGFyZSBmcnVnYWwgd2l0aCB0aGUgYml0 cywgYmVjYXVzZQogICogc21hbGxlciBpbnRlZ2VycyB1c2UgZmV3ZXIgYnl0ZXMgaW4gdGhlIHZh cmJ5dGUgZW5jb2RpbmcsIHNhdmluZyBkaXNrCiAgKiBzcGFjZS4gKElmIHdlIGdldCBhIG5ldyB0 YWJsZSBBTSBpbiB0aGUgZnV0dXJlIHRoYXQgd2FudHMgdG8gdXNlIHRoZSBmdWxsCkBAIC03NCw5 ICs3NCw5IEBACiAvKgogICogSG93IG1hbnkgYml0cyBkbyB5b3UgbmVlZCB0byBlbmNvZGUgb2Zm c2V0IG51bWJlcj8gT2Zmc2V0TnVtYmVyIGlzIGEgMTYtYml0CiAgKiBpbnRlZ2VyLCBidXQgeW91 IGNhbid0IGZpdCB0aGF0IG1hbnkgaXRlbXMgb24gYSBwYWdlLiAxMSBvdWdodCB0byBiZSBtb3Jl Ci0gKiB0aGFuIGVub3VnaC4gSXQncyB0ZW1wdGluZyB0byBkZXJpdmUgdGhpcyBmcm9tIE1heEhl YXBUdXBsZXNQZXJQYWdlLCBhbmQKKyAqIHRoYW4gZW5vdWdoLiBJdCdzIHRlbXB0aW5nIHRvIGRl cml2ZSB0aGlzIGZyb20gQ2x1c3Rlck1heEhlYXBUdXBsZXNQZXJQYWdlLCBhbmQKICAqIHVzZSB0 aGUgbWluaW11bSBudW1iZXIgb2YgYml0cywgYnV0IHRoYXQgd291bGQgcmVxdWlyZSBjaGFuZ2lu ZyB0aGUgb24tZGlzawotICogZm9ybWF0IGlmIE1heEhlYXBUdXBsZXNQZXJQYWdlIGNoYW5nZXMu IEJldHRlciB0byBsZWF2ZSBzb21lIHNsYWNrLgorICogZm9ybWF0IGlmIENsdXN0ZXJNYXhIZWFw VHVwbGVzUGVyUGFnZSBjaGFuZ2VzLiBCZXR0ZXIgdG8gbGVhdmUgc29tZSBzbGFjay4KICAqLwog I2RlZmluZSBNYXhIZWFwVHVwbGVzUGVyUGFnZUJpdHMJCTExCiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL1JFQURNRS5IT1QgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9S RUFETUUuSE9UCmluZGV4IDc0ZTQwN2YzNzUuLmUyODZlMWRlYzMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL1JFQURNRS5IT1QKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvUkVBRE1FLkhPVApAQCAtMjY0LDcgKzI2NCw3IEBAIG9mIGxpbmUgcG9pbnRlciBibG9hdDog d2UgbWlnaHQgZW5kIHVwIHdpdGggaHVnZSBudW1iZXJzIG9mIGxpbmUgcG9pbnRlcnMKIGFuZCBq dXN0IGEgZmV3IGFjdHVhbCB0dXBsZXMgb24gYSBwYWdlLiAgVG8gbGltaXQgdGhlIGRhbWFnZSBp biB0aGUgd29yc3QKIGNhc2UsIGFuZCB0byBrZWVwIHZhcmlvdXMgd29yayBhcnJheXMgYXMgd2Vs bCBhcyB0aGUgYml0bWFwcyBpbiBiaXRtYXAKIHNjYW5zIHJlYXNvbmFibHkgc2l6ZWQsIHRoZSBt YXhpbXVtIG51bWJlciBvZiBsaW5lIHBvaW50ZXJzIHBlciBwYWdlCi1pcyBhcmJpdHJhcmlseSBj YXBwZWQgYXQgTWF4SGVhcFR1cGxlc1BlclBhZ2UgKHRoZSBtb3N0IHR1cGxlcyB0aGF0CitpcyBh cmJpdHJhcmlseSBjYXBwZWQgYXQgQ2x1c3Rlck1heEhlYXBUdXBsZXNQZXJQYWdlICh0aGUgbW9z dCB0dXBsZXMgdGhhdAogY291bGQgZml0IHdpdGhvdXQgSE9UIHBydW5pbmcpLgogCiBFZmZlY3Rp dmVseSwgc3BhY2UgcmVjbGFtYXRpb24gaGFwcGVucyBkdXJpbmcgdHVwbGUgcmV0cmlldmFsIHdo ZW4gdGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmluZGV4IDcwNzQ2MGE1MzYuLmY3NDBkNDIy NWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC00NzgsNyArNDc4LDcgQEAgaGVhcGdl dHBhZ2UoVGFibGVTY2FuRGVzYyBzc2NhbiwgQmxvY2tOdW1iZXIgYmxvY2spCiAKIAlMb2NrQnVm ZmVyKGJ1ZmZlciwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKIAotCUFzc2VydChudHVwIDw9IE1heEhl YXBUdXBsZXNQZXJQYWdlKTsKKwlBc3NlcnQobnR1cCA8PSBDbHVzdGVyTWF4SGVhcFR1cGxlc1Bl clBhZ2UpOwogCXNjYW4tPnJzX250dXBsZXMgPSBudHVwOwogfQogCkBAIC02NzUwLDggKzY3NTAs OCBAQCBoZWFwX2ZyZWV6ZV9leGVjdXRlX3ByZXBhcmVkKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1 ZmZlciwKIAkvKiBOb3cgV0FMLWxvZyBmcmVlemluZyBpZiBuZWNlc3NhcnkgKi8KIAlpZiAoUmVs YXRpb25OZWVkc1dBTChyZWwpKQogCXsKLQkJeGxfaGVhcF9mcmVlemVfcGxhbiBwbGFuc1tNYXhI ZWFwVHVwbGVzUGVyUGFnZV07Ci0JCU9mZnNldE51bWJlciBvZmZzZXRzW01heEhlYXBUdXBsZXNQ ZXJQYWdlXTsKKwkJeGxfaGVhcF9mcmVlemVfcGxhbiBwbGFuc1tNYXhIZWFwVHVwbGVzUGVyUGFn ZUxpbWl0XTsKKwkJT2Zmc2V0TnVtYmVyIG9mZnNldHNbTWF4SGVhcFR1cGxlc1BlclBhZ2VMaW1p dF07CiAJCWludAkJCW5wbGFuczsKIAkJeGxfaGVhcF9mcmVlemVfcGFnZSB4bHJlYzsKIAkJWExv Z1JlY1B0cglyZWNwdHI7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFw YW1faGFuZGxlci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwpp bmRleCBkMTVhMDJiMmJlLi41OGZjMGRkNjE4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hl YXBhbV9oYW5kbGVyLmMKQEAgLTExOTEsNyArMTE5MSw3IEBAIGhlYXBhbV9pbmRleF9idWlsZF9y YW5nZV9zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAlUcmFuc2FjdGlvbklkIE9sZGVzdFht aW47CiAJQmxvY2tOdW1iZXIgcHJldmlvdXNfYmxrbm8gPSBJbnZhbGlkQmxvY2tOdW1iZXI7CiAJ QmxvY2tOdW1iZXIgcm9vdF9ibGtubyA9IEludmFsaWRCbG9ja051bWJlcjsKLQlPZmZzZXROdW1i ZXIgcm9vdF9vZmZzZXRzW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKKwlPZmZzZXROdW1iZXIgcm9v dF9vZmZzZXRzW01heEhlYXBUdXBsZXNQZXJQYWdlTGltaXRdOwogCiAJLyoKIAkgKiBzYW5pdHkg Y2hlY2tzCkBAIC0xNzU0LDggKzE3NTQsOCBAQCBoZWFwYW1faW5kZXhfdmFsaWRhdGVfc2NhbihS ZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJRVN0YXRlCSAgICplc3RhdGU7CiAJRXhwckNvbnRleHQg KmVjb250ZXh0OwogCUJsb2NrTnVtYmVyIHJvb3RfYmxrbm8gPSBJbnZhbGlkQmxvY2tOdW1iZXI7 Ci0JT2Zmc2V0TnVtYmVyIHJvb3Rfb2Zmc2V0c1tNYXhIZWFwVHVwbGVzUGVyUGFnZV07Ci0JYm9v bAkJaW5faW5kZXhbTWF4SGVhcFR1cGxlc1BlclBhZ2VdOworCU9mZnNldE51bWJlciByb290X29m ZnNldHNbTWF4SGVhcFR1cGxlc1BlclBhZ2VMaW1pdF07CisJYm9vbAkJaW5faW5kZXhbTWF4SGVh cFR1cGxlc1BlclBhZ2VMaW1pdF07CiAJQmxvY2tOdW1iZXIgcHJldmlvdXNfYmxrbm8gPSBJbnZh bGlkQmxvY2tOdW1iZXI7CiAKIAkvKiBzdGF0ZSB2YXJpYWJsZXMgZm9yIHRoZSBtZXJnZSAqLwpA QCAtMjIyMCw3ICsyMjIwLDcgQEAgaGVhcGFtX3NjYW5fYml0bWFwX25leHRfYmxvY2soVGFibGVT Y2FuRGVzYyBzY2FuLAogCiAJTG9ja0J1ZmZlcihidWZmZXIsIEJVRkZFUl9MT0NLX1VOTE9DSyk7 CiAKLQlBc3NlcnQobnR1cCA8PSBNYXhIZWFwVHVwbGVzUGVyUGFnZSk7CisJQXNzZXJ0KG50dXAg PD0gQ2x1c3Rlck1heEhlYXBUdXBsZXNQZXJQYWdlKTsKIAloc2Nhbi0+cnNfbnR1cGxlcyA9IG50 dXA7CiAKIAlyZXR1cm4gbnR1cCA+IDA7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9oaW8uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hpby5jCmluZGV4IGM3MjQ4ZDdj NjguLjU4ZjBhMzg0YzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hpby5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hpby5jCkBAIC01NDcsNyArNTQ3LDcgQEAg UmVsYXRpb25HZXRCdWZmZXJGb3JUdXBsZShSZWxhdGlvbiByZWxhdGlvbiwgU2l6ZSBsZW4sCiAJ ICogZXh0ZW5zaW9ucyB3aGlsZSBpbnNlcnRpbmcgbGFyZ2UgdHVwbGVzIGludG8gbG93LWZpbGxm YWN0b3IgdGFibGVzLgogCSAqLwogCW5lYXJseUVtcHR5RnJlZVNwYWNlID0gTWF4SGVhcFR1cGxl U2l6ZSAtCi0JCShNYXhIZWFwVHVwbGVzUGVyUGFnZSAvIDggKiBzaXplb2YoSXRlbUlkRGF0YSkp OworCQkoQ2x1c3Rlck1heEhlYXBUdXBsZXNQZXJQYWdlIC8gOCAqIHNpemVvZihJdGVtSWREYXRh KSk7CiAJaWYgKGxlbiArIHNhdmVGcmVlU3BhY2UgPiBuZWFybHlFbXB0eUZyZWVTcGFjZSkKIAkJ dGFyZ2V0RnJlZVNwYWNlID0gTWF4KGxlbiwgbmVhcmx5RW1wdHlGcmVlU3BhY2UpOwogCWVsc2UK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggNTkxNzYzMzU2Ny4uNDA3M2IwZGIz NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTQ0LDE3ICs0NCwxNyBAQCB0 eXBlZGVmIHN0cnVjdAogCWludAkJCW5kZWFkOwogCWludAkJCW51bnVzZWQ7CiAJLyogYXJyYXlz IHRoYXQgYWNjdW11bGF0ZSBpbmRleGVzIG9mIGl0ZW1zIHRvIGJlIGNoYW5nZWQgKi8KLQlPZmZz ZXROdW1iZXIgcmVkaXJlY3RlZFtNYXhIZWFwVHVwbGVzUGVyUGFnZSAqIDJdOwotCU9mZnNldE51 bWJlciBub3dkZWFkW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKLQlPZmZzZXROdW1iZXIgbm93dW51 c2VkW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKKwlPZmZzZXROdW1iZXIgcmVkaXJlY3RlZFtNYXhI ZWFwVHVwbGVzUGVyUGFnZUxpbWl0ICogMl07CisJT2Zmc2V0TnVtYmVyIG5vd2RlYWRbTWF4SGVh cFR1cGxlc1BlclBhZ2VMaW1pdF07CisJT2Zmc2V0TnVtYmVyIG5vd3VudXNlZFtNYXhIZWFwVHVw bGVzUGVyUGFnZUxpbWl0XTsKIAogCS8qCiAJICogbWFya2VkW2ldIGlzIHRydWUgaWYgaXRlbSBp IGlzIGVudGVyZWQgaW4gb25lIG9mIHRoZSBhYm92ZSBhcnJheXMuCiAJICoKLQkgKiBUaGlzIG5l ZWRzIHRvIGJlIE1heEhlYXBUdXBsZXNQZXJQYWdlICsgMSBsb25nIGFzIEZpcnN0T2Zmc2V0TnVt YmVyIGlzCisJICogVGhpcyBuZWVkcyB0byBiZSBDbHVzdGVyTWF4SGVhcFR1cGxlc1BlclBhZ2Ug KyAxIGxvbmcgYXMgRmlyc3RPZmZzZXROdW1iZXIgaXMKIAkgKiAxLiBPdGhlcndpc2UgZXZlcnkg YWNjZXNzIHdvdWxkIG5lZWQgdG8gc3VidHJhY3QgMS4KIAkgKi8KLQlib29sCQltYXJrZWRbTWF4 SGVhcFR1cGxlc1BlclBhZ2UgKyAxXTsKKwlib29sCQltYXJrZWRbTWF4SGVhcFR1cGxlc1BlclBh Z2VMaW1pdCArIDFdOwogfSBQcnVuZVN0YXRlOwogCiAvKiBMb2NhbCBmdW5jdGlvbnMgKi8KQEAg LTQ5Niw3ICs0OTYsNyBAQCBoZWFwX3BydW5lX2NoYWluKEJ1ZmZlciBidWZmZXIsIE9mZnNldE51 bWJlciByb290b2ZmbnVtLAogCU9mZnNldE51bWJlciBsYXRlc3RkZWFkID0gSW52YWxpZE9mZnNl dE51bWJlciwKIAkJCQltYXhvZmYgPSBQYWdlR2V0TWF4T2Zmc2V0TnVtYmVyKGRwKSwKIAkJCQlv ZmZudW07Ci0JT2Zmc2V0TnVtYmVyIGNoYWluaXRlbXNbTWF4SGVhcFR1cGxlc1BlclBhZ2VdOwor CU9mZnNldE51bWJlciBjaGFpbml0ZW1zW01heEhlYXBUdXBsZXNQZXJQYWdlTGltaXRdOwogCWlu dAkJCW5jaGFpbiA9IDAsCiAJCQkJaTsKIApAQCAtNzc3LDcgKzc3Nyw3IEBAIHN0YXRpYyB2b2lk CiBoZWFwX3BydW5lX3JlY29yZF9yZWRpcmVjdChQcnVuZVN0YXRlICpwcnN0YXRlLAogCQkJCQkJ ICAgT2Zmc2V0TnVtYmVyIG9mZm51bSwgT2Zmc2V0TnVtYmVyIHJkb2ZmbnVtKQogewotCUFzc2Vy dChwcnN0YXRlLT5ucmVkaXJlY3RlZCA8IE1heEhlYXBUdXBsZXNQZXJQYWdlKTsKKwlBc3NlcnQo cHJzdGF0ZS0+bnJlZGlyZWN0ZWQgPCBDbHVzdGVyTWF4SGVhcFR1cGxlc1BlclBhZ2UpOwogCXBy c3RhdGUtPnJlZGlyZWN0ZWRbcHJzdGF0ZS0+bnJlZGlyZWN0ZWQgKiAyXSA9IG9mZm51bTsKIAlw cnN0YXRlLT5yZWRpcmVjdGVkW3Byc3RhdGUtPm5yZWRpcmVjdGVkICogMiArIDFdID0gcmRvZmZu dW07CiAJcHJzdGF0ZS0+bnJlZGlyZWN0ZWQrKzsKQEAgLTc5MSw3ICs3OTEsNyBAQCBoZWFwX3By dW5lX3JlY29yZF9yZWRpcmVjdChQcnVuZVN0YXRlICpwcnN0YXRlLAogc3RhdGljIHZvaWQKIGhl YXBfcHJ1bmVfcmVjb3JkX2RlYWQoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9m Zm51bSkKIHsKLQlBc3NlcnQocHJzdGF0ZS0+bmRlYWQgPCBNYXhIZWFwVHVwbGVzUGVyUGFnZSk7 CisJQXNzZXJ0KHByc3RhdGUtPm5kZWFkIDwgQ2x1c3Rlck1heEhlYXBUdXBsZXNQZXJQYWdlKTsK IAlwcnN0YXRlLT5ub3dkZWFkW3Byc3RhdGUtPm5kZWFkXSA9IG9mZm51bTsKIAlwcnN0YXRlLT5u ZGVhZCsrOwogCUFzc2VydCghcHJzdGF0ZS0+bWFya2VkW29mZm51bV0pOwpAQCAtODIzLDcgKzgy Myw3IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX2RlYWRfb3JfdW51c2VkKFBydW5lU3RhdGUgKnByc3Rh dGUsIE9mZnNldE51bWJlciBvZmZudW0pCiBzdGF0aWMgdm9pZAogaGVhcF9wcnVuZV9yZWNvcmRf dW51c2VkKFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJlciBvZmZudW0pCiB7Ci0JQXNz ZXJ0KHByc3RhdGUtPm51bnVzZWQgPCBNYXhIZWFwVHVwbGVzUGVyUGFnZSk7CisJQXNzZXJ0KHBy c3RhdGUtPm51bnVzZWQgPCBDbHVzdGVyTWF4SGVhcFR1cGxlc1BlclBhZ2UpOwogCXByc3RhdGUt Pm5vd3VudXNlZFtwcnN0YXRlLT5udW51c2VkXSA9IG9mZm51bTsKIAlwcnN0YXRlLT5udW51c2Vk Kys7CiAJQXNzZXJ0KCFwcnN0YXRlLT5tYXJrZWRbb2ZmbnVtXSk7CkBAIC0xMDM2LDcgKzEwMzYs NyBAQCBwYWdlX3ZlcmlmeV9yZWRpcmVjdHMoUGFnZSBwYWdlKQogICogSWYgaXRlbSBrIGlzIHBh cnQgb2YgYSBIT1QtY2hhaW4gd2l0aCByb290IGF0IGl0ZW0gaiwgdGhlbiB3ZSBzZXQKICAqIHJv b3Rfb2Zmc2V0c1trIC0gMV0gPSBqLgogICoKLSAqIFRoZSBwYXNzZWQtaW4gcm9vdF9vZmZzZXRz IGFycmF5IG11c3QgaGF2ZSBNYXhIZWFwVHVwbGVzUGVyUGFnZSBlbnRyaWVzLgorICogVGhlIHBh c3NlZC1pbiByb290X29mZnNldHMgYXJyYXkgbXVzdCBoYXZlIENsdXN0ZXJNYXhIZWFwVHVwbGVz UGVyUGFnZSBlbnRyaWVzLgogICogVW51c2VkIGVudHJpZXMgYXJlIGZpbGxlZCB3aXRoIEludmFs aWRPZmZzZXROdW1iZXIgKHplcm8pLgogICoKICAqIFRoZSBmdW5jdGlvbiBtdXN0IGJlIGNhbGxl ZCB3aXRoIGF0IGxlYXN0IHNoYXJlIGxvY2sgb24gdGhlIGJ1ZmZlciwgdG8KQEAgLTEwNTMsNyAr MTA1Myw3IEBAIGhlYXBfZ2V0X3Jvb3RfdHVwbGVzKFBhZ2UgcGFnZSwgT2Zmc2V0TnVtYmVyICpy b290X29mZnNldHMpCiAJCQkJbWF4b2ZmOwogCiAJTWVtU2V0KHJvb3Rfb2Zmc2V0cywgSW52YWxp ZE9mZnNldE51bWJlciwKLQkJICAgTWF4SGVhcFR1cGxlc1BlclBhZ2UgKiBzaXplb2YoT2Zmc2V0 TnVtYmVyKSk7CisJCSAgIENsdXN0ZXJNYXhIZWFwVHVwbGVzUGVyUGFnZSAqIHNpemVvZihPZmZz ZXROdW1iZXIpKTsKIAogCW1heG9mZiA9IFBhZ2VHZXRNYXhPZmZzZXROdW1iZXIocGFnZSk7CiAJ Zm9yIChvZmZudW0gPSBGaXJzdE9mZnNldE51bWJlcjsgb2ZmbnVtIDw9IG1heG9mZjsgb2ZmbnVt ID0gT2Zmc2V0TnVtYmVyTmV4dChvZmZudW0pKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6 eS5jCmluZGV4IGZhNTY0ODA4MDguLmNkMjM0ZjI5MTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMKQEAgLTg5Myw4ICs4OTMsOCBAQCBsYXp5X3NjYW5faGVhcChMVlJlbFN0YXRl ICp2YWNyZWwpCiAJCSAqIGRlYWRfaXRlbXMgVElEcywgcGF1c2UgYW5kIGRvIGEgY3ljbGUgb2Yg dmFjdXVtaW5nIGJlZm9yZSB3ZSB0YWNrbGUKIAkJICogdGhpcyBwYWdlLgogCQkgKi8KLQkJQXNz ZXJ0KGRlYWRfaXRlbXMtPm1heF9pdGVtcyA+PSBNYXhIZWFwVHVwbGVzUGVyUGFnZSk7Ci0JCWlm IChkZWFkX2l0ZW1zLT5tYXhfaXRlbXMgLSBkZWFkX2l0ZW1zLT5udW1faXRlbXMgPCBNYXhIZWFw VHVwbGVzUGVyUGFnZSkKKwkJQXNzZXJ0KGRlYWRfaXRlbXMtPm1heF9pdGVtcyA+PSBDbHVzdGVy TWF4SGVhcFR1cGxlc1BlclBhZ2UpOworCQlpZiAoZGVhZF9pdGVtcy0+bWF4X2l0ZW1zIC0gZGVh ZF9pdGVtcy0+bnVtX2l0ZW1zIDwgQ2x1c3Rlck1heEhlYXBUdXBsZXNQZXJQYWdlKQogCQl7CiAJ CQkvKgogCQkJICogQmVmb3JlIGJlZ2lubmluZyBpbmRleCB2YWN1dW1pbmcsIHdlIHJlbGVhc2Ug YW55IHBpbiB3ZSBtYXkKQEAgLTEzNzYsOCArMTM3Niw4IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJl bFN0YXRlICp2YWNyZWwsCiAJCQkJYWxsX2Zyb3plbjsKIAlUcmFuc2FjdGlvbklkIHZpc2liaWxp dHlfY3V0b2ZmX3hpZDsKIAlpbnQ2NAkJZnBpX2JlZm9yZSA9IHBnV2FsVXNhZ2Uud2FsX2ZwaTsK LQlPZmZzZXROdW1iZXIgZGVhZG9mZnNldHNbTWF4SGVhcFR1cGxlc1BlclBhZ2VdOwotCUhlYXBU dXBsZUZyZWV6ZSBmcm96ZW5bTWF4SGVhcFR1cGxlc1BlclBhZ2VdOworCU9mZnNldE51bWJlciBk ZWFkb2Zmc2V0c1tNYXhIZWFwVHVwbGVzUGVyUGFnZUxpbWl0XTsKKwlIZWFwVHVwbGVGcmVlemUg ZnJvemVuW01heEhlYXBUdXBsZXNQZXJQYWdlTGltaXRdOwogCiAJQXNzZXJ0KEJ1ZmZlckdldEJs b2NrTnVtYmVyKGJ1ZikgPT0gYmxrbm8pOwogCkBAIC0xOTA1LDcgKzE5MDUsNyBAQCBsYXp5X3Nj YW5fbm9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJSGVhcFR1cGxlSGVhZGVyIHR1cGxlaGVh ZGVyOwogCVRyYW5zYWN0aW9uSWQgTm9GcmVlemVQYWdlUmVsZnJvemVuWGlkID0gdmFjcmVsLT5O ZXdSZWxmcm96ZW5YaWQ7CiAJTXVsdGlYYWN0SWQgTm9GcmVlemVQYWdlUmVsbWluTXhpZCA9IHZh Y3JlbC0+TmV3UmVsbWluTXhpZDsKLQlPZmZzZXROdW1iZXIgZGVhZG9mZnNldHNbTWF4SGVhcFR1 cGxlc1BlclBhZ2VdOworCU9mZnNldE51bWJlciBkZWFkb2Zmc2V0c1tNYXhIZWFwVHVwbGVzUGVy UGFnZUxpbWl0XTsKIAogCUFzc2VydChCdWZmZXJHZXRCbG9ja051bWJlcihidWYpID09IGJsa25v KTsKIApAQCAtMjQ0OSw3ICsyNDQ5LDcgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3Rh dGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiB7CiAJVmFjRGVh ZEl0ZW1zICpkZWFkX2l0ZW1zID0gdmFjcmVsLT5kZWFkX2l0ZW1zOwogCVBhZ2UJCXBhZ2UgPSBC dWZmZXJHZXRQYWdlKGJ1ZmZlcik7Ci0JT2Zmc2V0TnVtYmVyIHVudXNlZFtNYXhIZWFwVHVwbGVz UGVyUGFnZV07CisJT2Zmc2V0TnVtYmVyIHVudXNlZFtNYXhIZWFwVHVwbGVzUGVyUGFnZUxpbWl0 XTsKIAlpbnQJCQludW51c2VkID0gMDsKIAlUcmFuc2FjdGlvbklkIHZpc2liaWxpdHlfY3V0b2Zm X3hpZDsKIAlib29sCQlhbGxfZnJvemVuOwpAQCAtMzEwMCwxNiArMzEwMCwxNiBAQCBkZWFkX2l0 ZW1zX21heF9pdGVtcyhMVlJlbFN0YXRlICp2YWNyZWwpCiAJCW1heF9pdGVtcyA9IE1pbihtYXhf aXRlbXMsIE1BWERFQURJVEVNUyhNYXhBbGxvY1NpemUpKTsKIAogCQkvKiBjdXJpb3VzIGNvZGlu ZyBoZXJlIHRvIGVuc3VyZSB0aGUgbXVsdGlwbGljYXRpb24gY2FuJ3Qgb3ZlcmZsb3cgKi8KLQkJ aWYgKChCbG9ja051bWJlcikgKG1heF9pdGVtcyAvIE1heEhlYXBUdXBsZXNQZXJQYWdlKSA+IHJl bF9wYWdlcykKLQkJCW1heF9pdGVtcyA9IHJlbF9wYWdlcyAqIE1heEhlYXBUdXBsZXNQZXJQYWdl OworCQlpZiAoKEJsb2NrTnVtYmVyKSAobWF4X2l0ZW1zIC8gQ2x1c3Rlck1heEhlYXBUdXBsZXNQ ZXJQYWdlKSA+IHJlbF9wYWdlcykKKwkJCW1heF9pdGVtcyA9IHJlbF9wYWdlcyAqIENsdXN0ZXJN YXhIZWFwVHVwbGVzUGVyUGFnZTsKIAogCQkvKiBzdGF5IHNhbmUgaWYgc21hbGwgbWFpbnRlbmFu Y2Vfd29ya19tZW0gKi8KLQkJbWF4X2l0ZW1zID0gTWF4KG1heF9pdGVtcywgTWF4SGVhcFR1cGxl c1BlclBhZ2UpOworCQltYXhfaXRlbXMgPSBNYXgobWF4X2l0ZW1zLCBDbHVzdGVyTWF4SGVhcFR1 cGxlc1BlclBhZ2UpOwogCX0KIAllbHNlCiAJewogCQkvKiBPbmUtcGFzcyBjYXNlIG9ubHkgc3Rv cmVzIGEgc2luZ2xlIGhlYXAgcGFnZSdzIFRJRHMgYXQgYSB0aW1lICovCi0JCW1heF9pdGVtcyA9 IE1heEhlYXBUdXBsZXNQZXJQYWdlOworCQltYXhfaXRlbXMgPSBDbHVzdGVyTWF4SGVhcFR1cGxl c1BlclBhZ2U7CiAJfQogCiAJcmV0dXJuIChpbnQpIG1heF9pdGVtczsKQEAgLTMxMjksNyArMzEy OSw3IEBAIGRlYWRfaXRlbXNfYWxsb2MoTFZSZWxTdGF0ZSAqdmFjcmVsLCBpbnQgbndvcmtlcnMp CiAJaW50CQkJbWF4X2l0ZW1zOwogCiAJbWF4X2l0ZW1zID0gZGVhZF9pdGVtc19tYXhfaXRlbXMo dmFjcmVsKTsKLQlBc3NlcnQobWF4X2l0ZW1zID49IE1heEhlYXBUdXBsZXNQZXJQYWdlKTsKKwlB c3NlcnQobWF4X2l0ZW1zID49IENsdXN0ZXJNYXhIZWFwVHVwbGVzUGVyUGFnZSk7CiAKIAkvKgog CSAqIEluaXRpYWxpemUgc3RhdGUgZm9yIGEgcGFyYWxsZWwgdmFjdXVtLiAgQXMgb2Ygbm93LCBv bmx5IG9uZSB3b3JrZXIgY2FuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy90aWRiaXRt YXAuYyBiL3NyYy9iYWNrZW5kL25vZGVzL3RpZGJpdG1hcC5jCmluZGV4IDBmNDg1MDA2NWYuLmQw MmRkZWRmYTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL3RpZGJpdG1hcC5jCisrKyBi L3NyYy9iYWNrZW5kL25vZGVzL3RpZGJpdG1hcC5jCkBAIC01Myw3ICs1Myw3IEBACiAgKiB0aGUg cGVyLXBhZ2UgYml0bWFwcyB2YXJpYWJsZSBzaXplLiAgV2UganVzdCBsZWdpc2xhdGUgdGhhdCB0 aGUgc2l6ZQogICogaXMgdGhpczoKICAqLwotI2RlZmluZSBNQVhfVFVQTEVTX1BFUl9QQUdFICBN YXhIZWFwVHVwbGVzUGVyUGFnZQorI2RlZmluZSBNQVhfVFVQTEVTX1BFUl9QQUdFICBDbHVzdGVy TWF4SGVhcFR1cGxlc1BlclBhZ2UKIAogLyoKICAqIFdoZW4gd2UgaGF2ZSB0byBzd2l0Y2ggb3Zl ciB0byBsb3NzeSBzdG9yYWdlLCB3ZSB1c2UgYSBkYXRhIHN0cnVjdHVyZQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvc3RvcmFnZS9wYWdlL2J1ZnBhZ2UuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv cGFnZS9idWZwYWdlLmMKaW5kZXggYmU2ZjFmNjJkMi4uZjc4ZWZjZTlhZCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvc3RvcmFnZS9wYWdlL2J1ZnBhZ2UuYworKysgYi9zcmMvYmFja2VuZC9zdG9y YWdlL3BhZ2UvYnVmcGFnZS5jCkBAIC0xODYsNyArMTg2LDcgQEAgUGFnZUlzVmVyaWZpZWRFeHRl bmRlZChQYWdlIHBhZ2UsIEJsb2NrTnVtYmVyIGJsa25vLCBpbnQgZmxhZ3MpCiAgKglvbmUgdGhh dCBpcyBib3RoIHVudXNlZCBhbmQgZGVhbGxvY2F0ZWQuCiAgKgogICoJSWYgZmxhZyBQQUlfSVNf SEVBUCBpcyBzZXQsIHdlIGVuZm9yY2UgdGhhdCB0aGVyZSBjYW4ndCBiZSBtb3JlIHRoYW4KLSAq CU1heEhlYXBUdXBsZXNQZXJQYWdlIGxpbmUgcG9pbnRlcnMgb24gdGhlIHBhZ2UuCisgKglDbHVz dGVyTWF4SGVhcFR1cGxlc1BlclBhZ2UgbGluZSBwb2ludGVycyBvbiB0aGUgcGFnZS4KICAqCiAg KgkhISEgRVJFUE9SVChFUlJPUikgSVMgRElTQUxMT1dFRCBIRVJFICEhIQogICovCkBAIC0yOTUs OSArMjk1LDkgQEAgUGFnZUFkZEl0ZW1FeHRlbmRlZChQYWdlIHBhZ2UsCiAJfQogCiAJLyogUmVq ZWN0IHBsYWNpbmcgaXRlbXMgYmV5b25kIGhlYXAgYm91bmRhcnksIGlmIGhlYXAgKi8KLQlpZiAo KGZsYWdzICYgUEFJX0lTX0hFQVApICE9IDAgJiYgb2Zmc2V0TnVtYmVyID4gTWF4SGVhcFR1cGxl c1BlclBhZ2UpCisJaWYgKChmbGFncyAmIFBBSV9JU19IRUFQKSAhPSAwICYmIG9mZnNldE51bWJl ciA+IENsdXN0ZXJNYXhIZWFwVHVwbGVzUGVyUGFnZSkKIAl7Ci0JCWVsb2coV0FSTklORywgImNh bid0IHB1dCBtb3JlIHRoYW4gTWF4SGVhcFR1cGxlc1BlclBhZ2UgaXRlbXMgaW4gYSBoZWFwIHBh Z2UiKTsKKwkJZWxvZyhXQVJOSU5HLCAiY2FuJ3QgcHV0IG1vcmUgdGhhbiBDbHVzdGVyTWF4SGVh cFR1cGxlc1BlclBhZ2UgaXRlbXMgaW4gYSBoZWFwIHBhZ2UiKTsKIAkJcmV0dXJuIEludmFsaWRP ZmZzZXROdW1iZXI7CiAJfQogCkBAIC03MDIsNyArNzAyLDcgQEAgUGFnZVJlcGFpckZyYWdtZW50 YXRpb24oUGFnZSBwYWdlKQogCU9mZnNldAkJcGRfdXBwZXIgPSAoKFBhZ2VIZWFkZXIpIHBhZ2Up LT5wZF91cHBlcjsKIAlPZmZzZXQJCXBkX3NwZWNpYWwgPSAoKFBhZ2VIZWFkZXIpIHBhZ2UpLT5w ZF9zcGVjaWFsOwogCU9mZnNldAkJbGFzdF9vZmZzZXQ7Ci0JaXRlbUlkQ29tcGFjdERhdGEgaXRl bWlkYmFzZVtNYXhIZWFwVHVwbGVzUGVyUGFnZV07CisJaXRlbUlkQ29tcGFjdERhdGEgaXRlbWlk YmFzZVtNYXhIZWFwVHVwbGVzUGVyUGFnZUxpbWl0XTsKIAlpdGVtSWRDb21wYWN0IGl0ZW1pZHB0 cjsKIAlJdGVtSWQJCWxwOwogCWludAkJCW5saW5lLApAQCAtOTc5LDEyICs5NzksMTIgQEAgUGFn ZUdldEV4YWN0RnJlZVNwYWNlKFBhZ2UgcGFnZSkKICAqCQlyZWR1Y2VkIGJ5IHRoZSBzcGFjZSBu ZWVkZWQgZm9yIGEgbmV3IGxpbmUgcG9pbnRlci4KICAqCiAgKiBUaGUgZGlmZmVyZW5jZSBiZXR3 ZWVuIHRoaXMgYW5kIFBhZ2VHZXRGcmVlU3BhY2UgaXMgdGhhdCB0aGlzIHdpbGwgcmV0dXJuCi0g KiB6ZXJvIGlmIHRoZXJlIGFyZSBhbHJlYWR5IE1heEhlYXBUdXBsZXNQZXJQYWdlIGxpbmUgcG9p bnRlcnMgaW4gdGhlIHBhZ2UKKyAqIHplcm8gaWYgdGhlcmUgYXJlIGFscmVhZHkgQ2x1c3Rlck1h eEhlYXBUdXBsZXNQZXJQYWdlIGxpbmUgcG9pbnRlcnMgaW4gdGhlIHBhZ2UKICAqIGFuZCBub25l IGFyZSBmcmVlLiAgV2UgdXNlIHRoaXMgdG8gZW5mb3JjZSB0aGF0IG5vIG1vcmUgdGhhbgotICog TWF4SGVhcFR1cGxlc1BlclBhZ2UgbGluZSBwb2ludGVycyBhcmUgY3JlYXRlZCBvbiBhIGhlYXAg cGFnZS4gIChBbHRob3VnaAorICogQ2x1c3Rlck1heEhlYXBUdXBsZXNQZXJQYWdlIGxpbmUgcG9p bnRlcnMgYXJlIGNyZWF0ZWQgb24gYSBoZWFwIHBhZ2UuICAoQWx0aG91Z2gKICAqIG5vIG1vcmUg dHVwbGVzIHRoYW4gdGhhdCBjb3VsZCBmaXQgYW55d2F5LCBpbiB0aGUgcHJlc2VuY2Ugb2YgcmVk aXJlY3RlZAogICogb3IgZGVhZCBsaW5lIHBvaW50ZXJzIGl0J2QgYmUgcG9zc2libGUgdG8gaGF2 ZSB0b28gbWFueSBsaW5lIHBvaW50ZXJzLgotICogVG8gYXZvaWQgYnJlYWtpbmcgY29kZSB0aGF0 IGFzc3VtZXMgTWF4SGVhcFR1cGxlc1BlclBhZ2UgaXMgYSBoYXJkIGxpbWl0CisgKiBUbyBhdm9p ZCBicmVha2luZyBjb2RlIHRoYXQgYXNzdW1lcyBDbHVzdGVyTWF4SGVhcFR1cGxlc1BlclBhZ2Ug aXMgYSBoYXJkIGxpbWl0CiAgKiBvbiB0aGUgbnVtYmVyIG9mIGxpbmUgcG9pbnRlcnMsIHdlIG1h a2UgdGhpcyBleHRyYSBjaGVjay4pCiAgKi8KIFNpemUKQEAgLTk5OSwxMCArOTk5LDEwIEBAIFBh Z2VHZXRIZWFwRnJlZVNwYWNlKFBhZ2UgcGFnZSkKIAkJCQkJbmxpbmU7CiAKIAkJLyoKLQkJICog QXJlIHRoZXJlIGFscmVhZHkgTWF4SGVhcFR1cGxlc1BlclBhZ2UgbGluZSBwb2ludGVycyBpbiB0 aGUgcGFnZT8KKwkJICogQXJlIHRoZXJlIGFscmVhZHkgQ2x1c3Rlck1heEhlYXBUdXBsZXNQZXJQ YWdlIGxpbmUgcG9pbnRlcnMgaW4gdGhlIHBhZ2U/CiAJCSAqLwogCQlubGluZSA9IFBhZ2VHZXRN YXhPZmZzZXROdW1iZXIocGFnZSk7Ci0JCWlmIChubGluZSA+PSBNYXhIZWFwVHVwbGVzUGVyUGFn ZSkKKwkJaWYgKG5saW5lID49IENsdXN0ZXJNYXhIZWFwVHVwbGVzUGVyUGFnZSkKIAkJewogCQkJ aWYgKFBhZ2VIYXNGcmVlTGluZVBvaW50ZXJzKHBhZ2UpKQogCQkJewpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvYWNjZXNzL2dpbmJsb2NrLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2luYmxvY2su aAppbmRleCBiM2I3ZGFhMDQ5Li5jNTVkMTFiZTY0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9h Y2Nlc3MvZ2luYmxvY2suaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2luYmxvY2suaApAQCAt MTYyLDcgKzE2Miw3IEBAIGV4dGVybiBib29sIEdpblBhZ2VJc1JlY3ljbGFibGUoUGFnZSBwYWdl KTsKICAqCQkJCXBvaW50ZXJzIGZvciB0aGF0IHBhZ2UKICAqIE5vdGUgdGhhdCB0aGVzZSBhcmUg YWxsIGRpc3Rpbmd1aXNoYWJsZSBmcm9tIGFuICJpbnZhbGlkIiBpdGVtIHBvaW50ZXIKICAqICh3 aGljaCBpcyBJbnZhbGlkQmxvY2tOdW1iZXIvMCkgYXMgd2VsbCBhcyBmcm9tIGFsbCBub3JtYWwg aXRlbQotICogcG9pbnRlcnMgKHdoaWNoIGhhdmUgaXRlbSBudW1iZXJzIGluIHRoZSByYW5nZSAx Li5NYXhIZWFwVHVwbGVzUGVyUGFnZSkuCisgKiBwb2ludGVycyAod2hpY2ggaGF2ZSBpdGVtIG51 bWJlcnMgaW4gdGhlIHJhbmdlIDEuLkNsdXN0ZXJNYXhIZWFwVHVwbGVzUGVyUGFnZSkuCiAgKi8K ICNkZWZpbmUgSXRlbVBvaW50ZXJTZXRNaW4ocCkgIFwKIAlJdGVtUG9pbnRlclNldCgocCksIChC bG9ja051bWJlcikwLCAoT2Zmc2V0TnVtYmVyKTApCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9h Y2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKaW5kZXggNGIxMzNm Njg1OS4uMzIxN2Q3MmY5OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5o CisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtNzUsNyArNzUsNyBAQCB0eXBl ZGVmIHN0cnVjdCBIZWFwU2NhbkRlc2NEYXRhCiAJLyogdGhlc2UgZmllbGRzIG9ubHkgdXNlZCBp biBwYWdlLWF0LWEtdGltZSBtb2RlIGFuZCBmb3IgYml0bWFwIHNjYW5zICovCiAJaW50CQkJcnNf Y2luZGV4OwkJLyogY3VycmVudCB0dXBsZSdzIGluZGV4IGluIHZpc3R1cGxlcyAqLwogCWludAkJ CXJzX250dXBsZXM7CQkvKiBudW1iZXIgb2YgdmlzaWJsZSB0dXBsZXMgb24gcGFnZSAqLwotCU9m ZnNldE51bWJlciByc192aXN0dXBsZXNbTWF4SGVhcFR1cGxlc1BlclBhZ2VdOwkvKiB0aGVpciBv ZmZzZXRzICovCisJT2Zmc2V0TnVtYmVyIHJzX3Zpc3R1cGxlc1tNYXhIZWFwVHVwbGVzUGVyUGFn ZUxpbWl0XTsJLyogdGhlaXIgb2Zmc2V0cyAqLwogfQkJCUhlYXBTY2FuRGVzY0RhdGE7CiB0eXBl ZGVmIHN0cnVjdCBIZWFwU2NhbkRlc2NEYXRhICpIZWFwU2NhbkRlc2M7CiAKQEAgLTIwNSwxMCAr MjA1LDEwIEBAIHR5cGVkZWYgc3RydWN0IFBydW5lUmVzdWx0CiAJICogVGhpcyBpcyBvZiB0eXBl IGludDhbXSwgaW5zdGVhZCBvZiBIVFNWX1Jlc3VsdFtdLCBzbyB3ZSBjYW4gdXNlIC0xIHRvCiAJ ICogaW5kaWNhdGUgbm8gdmlzaWJpbGl0eSBoYXMgYmVlbiBjb21wdXRlZCwgZS5nLiBmb3IgTFBf REVBRCBpdGVtcy4KIAkgKgotCSAqIFRoaXMgbmVlZHMgdG8gYmUgTWF4SGVhcFR1cGxlc1BlclBh Z2UgKyAxIGxvbmcgYXMgRmlyc3RPZmZzZXROdW1iZXIgaXMKKwkgKiBUaGlzIG5lZWRzIHRvIGJl IENsdXN0ZXJNYXhIZWFwVHVwbGVzUGVyUGFnZSArIDEgbG9uZyBhcyBGaXJzdE9mZnNldE51bWJl ciBpcwogCSAqIDEuIE90aGVyd2lzZSBldmVyeSBhY2Nlc3Mgd291bGQgbmVlZCB0byBzdWJ0cmFj dCAxLgogCSAqLwotCWludDgJCWh0c3ZbTWF4SGVhcFR1cGxlc1BlclBhZ2UgKyAxXTsKKwlpbnQ4 CQlodHN2W01heEhlYXBUdXBsZXNQZXJQYWdlTGltaXQgKyAxXTsKIH0gUHJ1bmVSZXN1bHQ7CiAK IC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaHR1cF9kZXRhaWxzLmggYi9zcmMv aW5jbHVkZS9hY2Nlc3MvaHR1cF9kZXRhaWxzLmgKaW5kZXggNWUzOGVmODY5Ni4uN2EzNWJhZjRi MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2h0dXBfZGV0YWlscy5oCisrKyBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9odHVwX2RldGFpbHMuaApAQCAtNTY0LDE5ICs1NjQsMzMgQEAgU3Rh dGljQXNzZXJ0RGVjbChNYXhPZmZzZXROdW1iZXIgPCBTcGVjVG9rZW5PZmZzZXROdW1iZXIsCiAj ZGVmaW5lIE1pbkhlYXBUdXBsZVNpemUgIE1BWEFMSUdOKFNpemVvZkhlYXBUdXBsZUhlYWRlcikK IAogLyoKLSAqIE1heEhlYXBUdXBsZXNQZXJQYWdlIGlzIGFuIHVwcGVyIGJvdW5kIG9uIHRoZSBu dW1iZXIgb2YgdHVwbGVzIHRoYXQgY2FuCi0gKiBmaXQgb24gb25lIGhlYXAgcGFnZS4gIChOb3Rl IHRoYXQgaW5kZXhlcyBjb3VsZCBoYXZlIG1vcmUsIGJlY2F1c2UgdGhleQotICogdXNlIGEgc21h bGxlciB0dXBsZSBoZWFkZXIuKSAgV2UgYXJyaXZlIGF0IHRoZSBkaXZpc29yIGJlY2F1c2UgZWFj aCB0dXBsZQotICogbXVzdCBiZSBtYXhhbGlnbmVkLCBhbmQgaXQgbXVzdCBoYXZlIGFuIGFzc29j aWF0ZWQgbGluZSBwb2ludGVyLgorICogQ2x1c3Rlck1heEhlYXBUdXBsZXNQZXJQYWdlIGlzIGEg Y2x1c3Rlci1zcGVjaWZpYyB1cHBlciBib3VuZCBvbiB0aGUgbnVtYmVyCisgKiBvZiB0dXBsZXMg dGhhdCBjYW4gZml0IG9uIG9uZSBoZWFwIHBhZ2UuICAoTm90ZSB0aGF0IGluZGV4ZXMgY291bGQg aGF2ZQorICogbW9yZSwgYmVjYXVzZSB0aGV5IHVzZSBhIHNtYWxsZXIgdHVwbGUgaGVhZGVyLikg IFdlIGFycml2ZSBhdCB0aGUgZGl2aXNvcgorICogYmVjYXVzZSBlYWNoIHR1cGxlIG11c3QgYmUg bWF4YWxpZ25lZCwgYW5kIGl0IG11c3QgaGF2ZSBhbiBhc3NvY2lhdGVkIGxpbmUKKyAqIHBvaW50 ZXIuCisgKgorICogTWF4SGVhcFR1cGxlc1BlclBhZ2VMaW1pdCBpcyB0aGUgbGFyZ2VzdCB2YWx1 ZSB0aGF0CisgKiBDbHVzdGVyTWF4SGVhcFR1cGxlc1BlclBhZ2UgY291bGQgYmUuICBXaGlsZSB0 aGVzZSBjdXJyZW50bHkgZXZhbHVhdGUgdG8KKyAqIHRoZSBzYW1lIHZhbHVlLCB0aGVzZSBhcmUg YmVpbmcgc3BsaXQgb3V0IHNvIENsdXN0ZXJNYXhIZWFwVHVwbGVzUGVyUGFnZQorICogY2FuIGJl Y29tZSBhIHZhcmlhYmxlIGluc3RlYWQgb2YgYSBjb25zdGFudC4KKyAqCisgKiBUaGUgQ2FsY01h eEhlYXBUdXBsZXNQZXJQYWdlKCkgbWFjcm8gaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGFwcHJv cHJpYXRlCisgKiB2YWx1ZXMsIGdpdmVuIHRoZSB1c2FibGUgcGFnZSBzcGFjZSBvbiBhIGdpdmVu IHBhZ2UuCisgKgorICogVGhlIG9sZCBNYXhIZWFwVHVwbGVzUGVyUGFnZSBzeW1ib2wgaGFzIGJl ZW4gcmVtb3ZlZDsgc3RhdGljIGFsbG9jYXRpb25zCisgKiBzaG91bGQgdXNlIHRoZSBNYXhIZWFw VHVwbGVzUGVyUGFnZUxpbWl0IGNvbnN0YW50LCB3aGlsZSBydW50aW1lIGNvZGUKKyAqIHNob3Vs ZCB1c2UgQ2x1c3Rlck1heEhlYXBUdXBsZXNQZXJQYWdlLgogICoKICAqIE5vdGU6IHdpdGggSE9U LCB0aGVyZSBjb3VsZCB0aGVvcmV0aWNhbGx5IGJlIG1vcmUgbGluZSBwb2ludGVycyAobm90IGFj dHVhbAogICogdHVwbGVzKSB0aGFuIHRoaXMgb24gYSBoZWFwIHBhZ2UuICBIb3dldmVyIHdlIGNv bnN0cmFpbiB0aGUgbnVtYmVyIG9mIGxpbmUKICAqIHBvaW50ZXJzIHRvIHRoaXMgYW55d2F5LCB0 byBhdm9pZCBleGNlc3NpdmUgbGluZS1wb2ludGVyIGJsb2F0IGFuZCBub3QKICAqIHJlcXVpcmUg aW5jcmVhc2VzIGluIHRoZSBzaXplIG9mIHdvcmsgYXJyYXlzLgogICovCi0jZGVmaW5lIE1heEhl YXBUdXBsZXNQZXJQYWdlCVwKLQkoKGludCkgKChCTENLU1ogLSBTaXplT2ZQYWdlSGVhZGVyRGF0 YSkgLyBcCisjZGVmaW5lIENhbGNNYXhIZWFwVHVwbGVzUGVyUGFnZShzaXplKQkoKGludCkgKChz aXplKSAvIFwKIAkJCShNQVhBTElHTihTaXplb2ZIZWFwVHVwbGVIZWFkZXIpICsgc2l6ZW9mKEl0 ZW1JZERhdGEpKSkpCisjZGVmaW5lIENsdXN0ZXJNYXhIZWFwVHVwbGVzUGVyUGFnZSBDYWxjTWF4 SGVhcFR1cGxlc1BlclBhZ2UoQkxDS1NaIC0gU2l6ZU9mUGFnZUhlYWRlckRhdGEpCisjZGVmaW5l IE1heEhlYXBUdXBsZXNQZXJQYWdlTGltaXQgQ2FsY01heEhlYXBUdXBsZXNQZXJQYWdlKEJMQ0tT WiAtIFNpemVPZlBhZ2VIZWFkZXJEYXRhKQogCiAvKgogICogTWF4QXR0clNpemUgaXMgYSBzb21l d2hhdCBhcmJpdHJhcnkgdXBwZXIgbGltaXQgb24gdGhlIGRlY2xhcmVkIHNpemUgb2YKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9naW5wb3N0aW5nbGlzdC90ZXN0X2dpbnBvc3Rp bmdsaXN0LmMgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZ2lucG9zdGluZ2xpc3QvdGVzdF9naW5w b3N0aW5nbGlzdC5jCmluZGV4IDA0MjE1Y2FkZDkuLmY3OWRiYzJiZGQgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L21vZHVsZXMvdGVzdF9naW5wb3N0aW5nbGlzdC90ZXN0X2dpbnBvc3RpbmdsaXN0LmMK KysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2dpbnBvc3RpbmdsaXN0L3Rlc3RfZ2lucG9zdGlu Z2xpc3QuYwpAQCAtODgsOSArODgsOSBAQCBEYXR1bQogdGVzdF9naW5wb3N0aW5nbGlzdChQR19G VU5DVElPTl9BUkdTKQogewogCXRlc3RfaXRlbXB0cl9wYWlyKDAsIDIsIDE0KTsKLQl0ZXN0X2l0 ZW1wdHJfcGFpcigwLCBNYXhIZWFwVHVwbGVzUGVyUGFnZSwgMTQpOwotCXRlc3RfaXRlbXB0cl9w YWlyKE1heEJsb2NrTnVtYmVyLCBNYXhIZWFwVHVwbGVzUGVyUGFnZSwgMTQpOwotCXRlc3RfaXRl bXB0cl9wYWlyKE1heEJsb2NrTnVtYmVyLCBNYXhIZWFwVHVwbGVzUGVyUGFnZSwgMTYpOworCXRl c3RfaXRlbXB0cl9wYWlyKDAsIENsdXN0ZXJNYXhIZWFwVHVwbGVzUGVyUGFnZSwgMTQpOworCXRl c3RfaXRlbXB0cl9wYWlyKE1heEJsb2NrTnVtYmVyLCBDbHVzdGVyTWF4SGVhcFR1cGxlc1BlclBh Z2UsIDE0KTsKKwl0ZXN0X2l0ZW1wdHJfcGFpcihNYXhCbG9ja051bWJlciwgQ2x1c3Rlck1heEhl YXBUdXBsZXNQZXJQYWdlLCAxNik7CiAKIAlQR19SRVRVUk5fVk9JRCgpOwogfQotLSAKMi40MC4x Cgo= --000000000000f048080610cd981a Content-Type: application/octet-stream; name="v1-0004-Split-MaxTIDsPerBTreePage-into-runtime-and-max-va.patch" Content-Disposition: attachment; filename="v1-0004-Split-MaxTIDsPerBTreePage-into-runtime-and-max-va.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lsc180ag3 RnJvbSAwMDI3ZGNlYzcwNWQ5MjY3ZDc2MzlkNDgyNTg3Mjg3YzU0ODBlNTgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBDaHJpc3RlbnNlbiA8ZGF2aWQuY2hyaXN0ZW5zZW5A Y3J1bmNoeWRhdGEuY29tPgpEYXRlOiBXZWQsIDcgRmViIDIwMjQgMTA6NDk6MzEgLTA1MDAKU3Vi amVjdDogW1BBVENIIHYxIDQvNF0gU3BsaXQgTWF4VElEc1BlckJUcmVlUGFnZSBpbnRvIHJ1bnRp bWUgYW5kIG1heCB2YWx1ZXMKCi0tLQogY29udHJpYi9hbWNoZWNrL3ZlcmlmeV9uYnRyZWUuYyAg ICAgICB8ICA0ICsrLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0ZGVkdXAuYyAgfCAg NCArKy0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idGluc2VydC5jIHwgIDQgKystLQog c3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRyZWUuYyAgICB8ICA0ICsrLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c2VhcmNoLmMgfCAgOCArKysrLS0tLQogc3JjL2luY2x1ZGUv YWNjZXNzL25idHJlZS5oICAgICAgICAgICB8IDI0ICsrKysrKysrKysrKysrKysrKy0tLS0tLQog NiBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9jb250cmliL2FtY2hlY2svdmVyaWZ5X25idHJlZS5jIGIvY29udHJpYi9hbWNoZWNr L3ZlcmlmeV9uYnRyZWUuYwppbmRleCA3YTIwYTk2N2FkLi42MDMyNDc4MGRmIDEwMDY0NAotLS0g YS9jb250cmliL2FtY2hlY2svdmVyaWZ5X25idHJlZS5jCisrKyBiL2NvbnRyaWIvYW1jaGVjay92 ZXJpZnlfbmJ0cmVlLmMKQEAgLTUzMywxMiArNTMzLDEyIEBAIGJ0X2NoZWNrX2V2ZXJ5X2xldmVs KFJlbGF0aW9uIHJlbCwgUmVsYXRpb24gaGVhcHJlbCwgYm9vbCBoZWFwa2V5c3BhY2UsCiAJCS8q CiAJCSAqIFNpemUgQmxvb20gZmlsdGVyIGJhc2VkIG9uIGVzdGltYXRlZCBudW1iZXIgb2YgdHVw bGVzIGluIGluZGV4LAogCQkgKiB3aGlsZSBjb25zZXJ2YXRpdmVseSBhc3N1bWluZyB0aGF0IGVh Y2ggYmxvY2sgbXVzdCBjb250YWluIGF0IGxlYXN0Ci0JCSAqIE1heFRJRHNQZXJCVHJlZVBhZ2Ug LyAzICJwbGFpbiIgdHVwbGVzIC0tIHNlZQorCQkgKiBDbHVzdGVyTWF4VElEc1BlckJUcmVlUGFn ZSAvIDMgInBsYWluIiB0dXBsZXMgLS0gc2VlCiAJCSAqIGJ0X3Bvc3RpbmdfcGxhaW5fdHVwbGUo KSBmb3IgZGVmaW5pdGlvbiwgYW5kIGRldGFpbHMgb2YgaG93IHBvc3RpbmcKIAkJICogbGlzdCB0 dXBsZXMgYXJlIGhhbmRsZWQuCiAJCSAqLwogCQl0b3RhbF9wYWdlcyA9IFJlbGF0aW9uR2V0TnVt YmVyT2ZCbG9ja3MocmVsKTsKLQkJdG90YWxfZWxlbXMgPSBNYXgodG90YWxfcGFnZXMgKiAoTWF4 VElEc1BlckJUcmVlUGFnZSAvIDMpLAorCQl0b3RhbF9lbGVtcyA9IE1heCh0b3RhbF9wYWdlcyAq IChDbHVzdGVyTWF4VElEc1BlckJUcmVlUGFnZSAvIDMpLAogCQkJCQkJICAoaW50NjQpIHN0YXRl LT5yZWwtPnJkX3JlbC0+cmVsdHVwbGVzKTsKIAkJLyogR2VuZXJhdGUgYSByYW5kb20gc2VlZCB0 byBhdm9pZCByZXBldGl0aW9uICovCiAJCXNlZWQgPSBwZ19wcm5nX3VpbnQ2NCgmcGdfZ2xvYmFs X3Bybmdfc3RhdGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRk ZWR1cC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRkZWR1cC5jCmluZGV4IDQ1NmQ4 NmI1MWMuLmM4YWY2Y2JjMmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv bmJ0ZGVkdXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idGRlZHVwLmMKQEAg LTM1NSw4ICszNTUsOCBAQCBfYnRfYm90dG9tdXBkZWxfcGFzcyhSZWxhdGlvbiByZWwsIEJ1ZmZl ciBidWYsIFJlbGF0aW9uIGhlYXBSZWwsCiAJZGVsc3RhdGUuYm90dG9tdXAgPSB0cnVlOwogCWRl bHN0YXRlLmJvdHRvbXVwZnJlZXNwYWNlID0gTWF4KEJMQ0tTWiAvIDE2LCBuZXdpdGVtc3opOwog CWRlbHN0YXRlLm5kZWx0aWRzID0gMDsKLQlkZWxzdGF0ZS5kZWx0aWRzID0gcGFsbG9jKE1heFRJ RHNQZXJCVHJlZVBhZ2UgKiBzaXplb2YoVE1fSW5kZXhEZWxldGUpKTsKLQlkZWxzdGF0ZS5zdGF0 dXMgPSBwYWxsb2MoTWF4VElEc1BlckJUcmVlUGFnZSAqIHNpemVvZihUTV9JbmRleFN0YXR1cykp OworCWRlbHN0YXRlLmRlbHRpZHMgPSBwYWxsb2MoQ2x1c3Rlck1heFRJRHNQZXJCVHJlZVBhZ2Ug KiBzaXplb2YoVE1fSW5kZXhEZWxldGUpKTsKKwlkZWxzdGF0ZS5zdGF0dXMgPSBwYWxsb2MoQ2x1 c3Rlck1heFRJRHNQZXJCVHJlZVBhZ2UgKiBzaXplb2YoVE1fSW5kZXhTdGF0dXMpKTsKIAogCW1p bm9mZiA9IFBfRklSU1REQVRBS0VZKG9wYXF1ZSk7CiAJbWF4b2ZmID0gUGFnZUdldE1heE9mZnNl dE51bWJlcihwYWdlKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 aW5zZXJ0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idGluc2VydC5jCmluZGV4IDQ2 NzRlNTI2N2EuLmNjYzI0NTQ4MDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRy ZWUvbmJ0aW5zZXJ0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRpbnNlcnQu YwpAQCAtMjgyOSw4ICsyODI5LDggQEAgX2J0X3NpbXBsZWRlbF9wYXNzKFJlbGF0aW9uIHJlbCwg QnVmZmVyIGJ1ZmZlciwgUmVsYXRpb24gaGVhcFJlbCwKIAlkZWxzdGF0ZS5ib3R0b211cCA9IGZh bHNlOwogCWRlbHN0YXRlLmJvdHRvbXVwZnJlZXNwYWNlID0gMDsKIAlkZWxzdGF0ZS5uZGVsdGlk cyA9IDA7Ci0JZGVsc3RhdGUuZGVsdGlkcyA9IHBhbGxvYyhNYXhUSURzUGVyQlRyZWVQYWdlICog c2l6ZW9mKFRNX0luZGV4RGVsZXRlKSk7Ci0JZGVsc3RhdGUuc3RhdHVzID0gcGFsbG9jKE1heFRJ RHNQZXJCVHJlZVBhZ2UgKiBzaXplb2YoVE1fSW5kZXhTdGF0dXMpKTsKKwlkZWxzdGF0ZS5kZWx0 aWRzID0gcGFsbG9jKENsdXN0ZXJNYXhUSURzUGVyQlRyZWVQYWdlICogc2l6ZW9mKFRNX0luZGV4 RGVsZXRlKSk7CisJZGVsc3RhdGUuc3RhdHVzID0gcGFsbG9jKENsdXN0ZXJNYXhUSURzUGVyQlRy ZWVQYWdlICogc2l6ZW9mKFRNX0luZGV4U3RhdHVzKSk7CiAKIAlmb3IgKG9mZm51bSA9IG1pbm9m ZjsKIAkJIG9mZm51bSA8PSBtYXhvZmY7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv bmJ0cmVlL25idHJlZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRyZWUuYwppbmRl eCAyYTRmOTkwNTgzLi41MjBlNTJlZTEyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv bmJ0cmVlL25idHJlZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cmVlLmMK QEAgLTI2Myw4ICsyNjMsOCBAQCBidGdldHR1cGxlKEluZGV4U2NhbkRlc2Mgc2NhbiwgU2NhbkRp cmVjdGlvbiBkaXIpCiAJCQkJICovCiAJCQkJaWYgKHNvLT5raWxsZWRJdGVtcyA9PSBOVUxMKQog CQkJCQlzby0+a2lsbGVkSXRlbXMgPSAoaW50ICopCi0JCQkJCQlwYWxsb2MoTWF4VElEc1BlckJU cmVlUGFnZSAqIHNpemVvZihpbnQpKTsKLQkJCQlpZiAoc28tPm51bUtpbGxlZCA8IE1heFRJRHNQ ZXJCVHJlZVBhZ2UpCisJCQkJCQlwYWxsb2MoQ2x1c3Rlck1heFRJRHNQZXJCVHJlZVBhZ2UgKiBz aXplb2YoaW50KSk7CisJCQkJaWYgKHNvLT5udW1LaWxsZWQgPCBDbHVzdGVyTWF4VElEc1BlckJU cmVlUGFnZSkKIAkJCQkJc28tPmtpbGxlZEl0ZW1zW3NvLT5udW1LaWxsZWQrK10gPSBzby0+Y3Vy clBvcy5pdGVtSW5kZXg7CiAJCQl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9u YnRyZWUvbmJ0c2VhcmNoLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNlYXJjaC5j CmluZGV4IDYzZWU5YmEyMjUuLjQ5MjVhY2U0NzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0c2VhcmNoLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9u YnRzZWFyY2guYwpAQCAtMTcyNiw3ICsxNzI2LDcgQEAgX2J0X3JlYWRwYWdlKEluZGV4U2NhbkRl c2Mgc2NhbiwgU2NhbkRpcmVjdGlvbiBkaXIsIE9mZnNldE51bWJlciBvZmZudW0sCiAJCWlmICgh Y29udGludWVzY2FuKQogCQkJc28tPmN1cnJQb3MubW9yZVJpZ2h0ID0gZmFsc2U7CiAKLQkJQXNz ZXJ0KGl0ZW1JbmRleCA8PSBNYXhUSURzUGVyQlRyZWVQYWdlKTsKKwkJQXNzZXJ0KGl0ZW1JbmRl eCA8PSBDbHVzdGVyTWF4VElEc1BlckJUcmVlUGFnZSk7CiAJCXNvLT5jdXJyUG9zLmZpcnN0SXRl bSA9IDA7CiAJCXNvLT5jdXJyUG9zLmxhc3RJdGVtID0gaXRlbUluZGV4IC0gMTsKIAkJc28tPmN1 cnJQb3MuaXRlbUluZGV4ID0gMDsKQEAgLTE3MzQsNyArMTczNCw3IEBAIF9idF9yZWFkcGFnZShJ bmRleFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rpb24gZGlyLCBPZmZzZXROdW1iZXIgb2ZmbnVt LAogCWVsc2UKIAl7CiAJCS8qIGxvYWQgaXRlbXNbXSBpbiBkZXNjZW5kaW5nIG9yZGVyICovCi0J CWl0ZW1JbmRleCA9IE1heFRJRHNQZXJCVHJlZVBhZ2U7CisJCWl0ZW1JbmRleCA9IENsdXN0ZXJN YXhUSURzUGVyQlRyZWVQYWdlOwogCiAJCW9mZm51bSA9IE1pbihvZmZudW0sIG1heG9mZik7CiAK QEAgLTE4MzYsOCArMTgzNiw4IEBAIF9idF9yZWFkcGFnZShJbmRleFNjYW5EZXNjIHNjYW4sIFNj YW5EaXJlY3Rpb24gZGlyLCBPZmZzZXROdW1iZXIgb2ZmbnVtLAogCiAJCUFzc2VydChpdGVtSW5k ZXggPj0gMCk7CiAJCXNvLT5jdXJyUG9zLmZpcnN0SXRlbSA9IGl0ZW1JbmRleDsKLQkJc28tPmN1 cnJQb3MubGFzdEl0ZW0gPSBNYXhUSURzUGVyQlRyZWVQYWdlIC0gMTsKLQkJc28tPmN1cnJQb3Mu aXRlbUluZGV4ID0gTWF4VElEc1BlckJUcmVlUGFnZSAtIDE7CisJCXNvLT5jdXJyUG9zLmxhc3RJ dGVtID0gQ2x1c3Rlck1heFRJRHNQZXJCVHJlZVBhZ2UgLSAxOworCQlzby0+Y3VyclBvcy5pdGVt SW5kZXggPSBDbHVzdGVyTWF4VElEc1BlckJUcmVlUGFnZSAtIDE7CiAJfQogCiAJcmV0dXJuIChz by0+Y3VyclBvcy5maXJzdEl0ZW0gPD0gc28tPmN1cnJQb3MubGFzdEl0ZW0pOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvYWNjZXNzL25idHJlZS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL25idHJl ZS5oCmluZGV4IDY3NmZhNWUwYTkuLjU2ODY0NmExNDYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2FjY2Vzcy9uYnRyZWUuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvbmJ0cmVlLmgKQEAgLTE3 Miw5ICsxNzIsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgQlRNZXRhUGFnZURhdGEKIAkJCQkgICBNQVhB TElHTihzaXplb2YoQlRQYWdlT3BhcXVlRGF0YSkpKSAvIDMpCiAKIC8qCi0gKiBNYXhUSURzUGVy QlRyZWVQYWdlIGlzIGFuIHVwcGVyIGJvdW5kIG9uIHRoZSBudW1iZXIgb2YgaGVhcCBUSURzIHR1 cGxlcwotICogdGhhdCBtYXkgYmUgc3RvcmVkIG9uIGEgYnRyZWUgbGVhZiBwYWdlLiAgSXQgaXMg dXNlZCB0byBzaXplIHRoZQotICogcGVyLXBhZ2UgdGVtcG9yYXJ5IGJ1ZmZlcnMuCisgKiBDbHVz dGVyTWF4VElEc1BlckJUcmVlUGFnZSBpcyBhIGNsdXN0ZXItc3BlY2lmaWMgdXBwZXIgYm91bmQg b24gdGhlIG51bWJlcgorICogb2YgaGVhcCBUSURzIHR1cGxlcyB0aGF0IG1heSBiZSBzdG9yZWQg b24gYSBidHJlZSBsZWFmIHBhZ2UuICBJdCBpcyB1c2VkIHRvCisgKiBzaXplIHRoZSBwZXItcGFn ZSB0ZW1wb3JhcnkgYnVmZmVycy4KKyAqCisgKiBNYXhUSURzUGVyQlRyZWVQYWdlTGltaXQgaXMg dGhlIGxhcmdlc3QgdmFsdWUgdGhhdAorICogQ2x1c3Rlck1heFRJRHNQZXJCVHJlZVBhZ2UgY291 bGQgYmUuICBXaGlsZSB0aGVzZSBjdXJyZW50bHkgZXZhbHVhdGUgdG8gdGhlCisgKiBzYW1lIHZh bHVlLCB0aGVzZSBhcmUgYmVpbmcgc3BsaXQgb3V0IHNvIENsdXN0ZXJNYXhUSURzUGVyQlRyZWVQ YWdlIGNhbgorICogYmVjb21lIGEgdmFyaWFibGUgaW5zdGVhZCBvZiBhIGNvbnN0YW50LgorICoK KyAqIFRoZSBDYWxjTWF4VElEc1BlckJUcmVlUGFnZSgpIG1hY3JvIGlzIHVzZWQgdG8gZGV0ZXJt aW5lIHRoZSBhcHByb3ByaWF0ZQorICogdmFsdWVzLCBnaXZlbiB0aGUgdXNhYmxlIHBhZ2Ugc3Bh Y2Ugb24gYSBnaXZlbiBwYWdlLgogICoKICAqIE5vdGU6IHdlIGRvbid0IGJvdGhlciBjb25zaWRl cmluZyBwZXItdHVwbGUgb3ZlcmhlYWRzIGhlcmUgdG8ga2VlcAogICogdGhpbmdzIHNpbXBsZSAo dmFsdWUgaXMgYmFzZWQgb24gaG93IG1hbnkgZWxlbWVudHMgYSBzaW5nbGUgYXJyYXkgb2YKQEAg LTE4Miw5ICsxOTAsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgQlRNZXRhUGFnZURhdGEKICAqIHNwZWNp YWwgYXJlYSkuICBUaGUgdmFsdWUgaXMgc2xpZ2h0bHkgaGlnaGVyIChpLmUuIG1vcmUgY29uc2Vy dmF0aXZlKQogICogdGhhbiBuZWNlc3NhcnkgYXMgYSByZXN1bHQsIHdoaWNoIGlzIGNvbnNpZGVy ZWQgYWNjZXB0YWJsZS4KICAqLwotI2RlZmluZSBNYXhUSURzUGVyQlRyZWVQYWdlIFwKLQkoaW50 KSAoKEJMQ0tTWiAtIFNpemVPZlBhZ2VIZWFkZXJEYXRhIC0gc2l6ZW9mKEJUUGFnZU9wYXF1ZURh dGEpKSAvIFwKKyNkZWZpbmUgQ2FsY01heFRJRHNQZXJCVHJlZVBhZ2Uoc2l6ZSkgXAorCShpbnQp ICgoKHNpemUpIC0gc2l6ZW9mKEJUUGFnZU9wYXF1ZURhdGEpKSAvCVwKIAkJICAgc2l6ZW9mKEl0 ZW1Qb2ludGVyRGF0YSkpCisjZGVmaW5lIENsdXN0ZXJNYXhUSURzUGVyQlRyZWVQYWdlIFwKKwlD YWxjTWF4VElEc1BlckJUcmVlUGFnZShCTENLU1ogLSBTaXplT2ZQYWdlSGVhZGVyRGF0YSkKKyNk ZWZpbmUgTWF4VElEc1BlckJUcmVlUGFnZUxpbWl0IFwKKwlDYWxjTWF4VElEc1BlckJUcmVlUGFn ZShCTENLU1ogLSBTaXplT2ZQYWdlSGVhZGVyRGF0YSkKIAogLyoKICAqIFRoZSBsZWFmLXBhZ2Ug ZmlsbGZhY3RvciBkZWZhdWx0cyB0byA5MCUgYnV0IGlzIHVzZXItYWRqdXN0YWJsZS4KQEAgLTk4 Miw3ICs5OTQsNyBAQCB0eXBlZGVmIHN0cnVjdCBCVFNjYW5Qb3NEYXRhCiAJaW50CQkJbGFzdEl0 ZW07CQkvKiBsYXN0IHZhbGlkIGluZGV4IGluIGl0ZW1zW10gKi8KIAlpbnQJCQlpdGVtSW5kZXg7 CQkvKiBjdXJyZW50IGluZGV4IGluIGl0ZW1zW10gKi8KIAotCUJUU2NhblBvc0l0ZW0gaXRlbXNb TWF4VElEc1BlckJUcmVlUGFnZV07CS8qIE1VU1QgQkUgTEFTVCAqLworCUJUU2NhblBvc0l0ZW0g aXRlbXNbTWF4VElEc1BlckJUcmVlUGFnZUxpbWl0XTsJLyogTVVTVCBCRSBMQVNUICovCiB9IEJU U2NhblBvc0RhdGE7CiAKIHR5cGVkZWYgQlRTY2FuUG9zRGF0YSAqQlRTY2FuUG9zOwotLSAKMi40 MC4xCgo= --000000000000f048080610cd981a Content-Type: application/octet-stream; name="v1-0003-Split-MaxIndexTuplesPerPage-into-runtime-and-max-.patch" Content-Disposition: attachment; filename="v1-0003-Split-MaxIndexTuplesPerPage-into-runtime-and-max-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lsc180ae2 RnJvbSA5N2M1ZDE1ZDI5YzhkMzJlNzhiYzMyODg1OGIyM2UwNjRmYjI5YTEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBDaHJpc3RlbnNlbiA8ZGF2aWQuY2hyaXN0ZW5zZW5A Y3J1bmNoeWRhdGEuY29tPgpEYXRlOiBXZWQsIDcgRmViIDIwMjQgMTA6NDk6MzEgLTA1MDAKU3Vi amVjdDogW1BBVENIIHYxIDMvNF0gU3BsaXQgTWF4SW5kZXhUdXBsZXNQZXJQYWdlIGludG8gcnVu dGltZSBhbmQgbWF4CiB2YWx1ZXMKCi0tLQogY29udHJpYi9hbWNoZWNrL3ZlcmlmeV9uYnRyZWUu YyAgICAgICAgIHwgIDYgKysrLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0LmMgICAg ICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGdldC5jICAgICAgIHwg IDggKysrKy0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2guYyAgICAgICAgICB8ICA0 ICsrLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hvdmZsLmMgICAgICB8ICA2ICsrKy0t LQogc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHBhZ2UuYyAgICAgIHwgIDQgKystLQogc3Jj L2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHNlYXJjaC5jICAgIHwgMTAgKysrKystLS0tLQogc3Jj L2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRpbnNlcnQuYyAgIHwgIDIgKy0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5jICAgICB8ICA4ICsrKystLS0tCiBzcmMvYmFja2VuZC9h Y2Nlc3MvbmJ0cmVlL25idHJlZS5jICAgICAgfCAgNCArKy0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mv bmJ0cmVlL25idHhsb2cuYyAgICAgfCAgNCArKy0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0 L3NwZ2RvaW5zZXJ0LmMgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGdzY2Fu LmMgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMgICB8 IDIyICsrKysrKysrKysrLS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvcGFnZS9idWZw YWdlLmMgICAgICB8ICA2ICsrKy0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hhc2guaCAgICAgICAg ICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9pdHVwLmggICAgICAgICAgICAgICB8 IDIzICsrKysrKysrKysrKysrKystLS0tLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvbmJ0cmVlLmgg ICAgICAgICAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ2lzdF9wcml2YXRlLmgg ICAgIHwgMTIgKysrKysrLS0tLS0tCiAxOSBmaWxlcyBjaGFuZ2VkLCA2OSBpbnNlcnRpb25zKCsp LCA2MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2FtY2hlY2svdmVyaWZ5X25i dHJlZS5jIGIvY29udHJpYi9hbWNoZWNrL3ZlcmlmeV9uYnRyZWUuYwppbmRleCA5MWNhYTUzZGQ4 Li43YTIwYTk2N2FkIDEwMDY0NAotLS0gYS9jb250cmliL2FtY2hlY2svdmVyaWZ5X25idHJlZS5j CisrKyBiL2NvbnRyaWIvYW1jaGVjay92ZXJpZnlfbmJ0cmVlLmMKQEAgLTM0NDYsMTIgKzM0NDYs MTIgQEAgcGFsbG9jX2J0cmVlX3BhZ2UoQnRyZWVDaGVja1N0YXRlICpzdGF0ZSwgQmxvY2tOdW1i ZXIgYmxvY2tudW0pCiAJICogdG8gbW92ZSBsZWZ0LCBpbiB0aGUgY2FzZSBvZiBiYWNrd2FyZCBp bmRleCBzY2FucykuCiAJICovCiAJbWF4b2Zmc2V0ID0gUGFnZUdldE1heE9mZnNldE51bWJlcihw YWdlKTsKLQlpZiAobWF4b2Zmc2V0ID4gTWF4SW5kZXhUdXBsZXNQZXJQYWdlKQorCWlmIChtYXhv ZmZzZXQgPiBDbHVzdGVyTWF4SW5kZXhUdXBsZXNQZXJQYWdlKQogCQllcmVwb3J0KEVSUk9SLAog CQkJCShlcnJjb2RlKEVSUkNPREVfSU5ERVhfQ09SUlVQVEVEKSwKLQkJCQkgZXJybXNnKCJOdW1i ZXIgb2YgaXRlbXMgb24gYmxvY2sgJXUgb2YgaW5kZXggXCIlc1wiIGV4Y2VlZHMgTWF4SW5kZXhU dXBsZXNQZXJQYWdlICgldSkiLAorCQkJCSBlcnJtc2coIk51bWJlciBvZiBpdGVtcyBvbiBibG9j ayAldSBvZiBpbmRleCBcIiVzXCIgZXhjZWVkcyBDbHVzdGVyTWF4SW5kZXhUdXBsZXNQZXJQYWdl ICgldSkiLAogCQkJCQkJYmxvY2tudW0sIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHN0YXRlLT5y ZWwpLAotCQkJCQkJTWF4SW5kZXhUdXBsZXNQZXJQYWdlKSkpOworCQkJCQkJQ2x1c3Rlck1heElu ZGV4VHVwbGVzUGVyUGFnZSkpKTsKIAogCWlmICghUF9JU0xFQUYob3BhcXVlKSAmJiAhUF9JU0RF TEVURUQob3BhcXVlKSAmJiBtYXhvZmZzZXQgPCBQX0ZJUlNUREFUQUtFWShvcGFxdWUpKQogCQll cmVwb3J0KEVSUk9SLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5jCmluZGV4IDk0M2FlOTEwMTkuLjA0OTYy YjEwODIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3QuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0LmMKQEAgLTE2NjQsNyArMTY2NCw3IEBAIGZyZWVH SVNUc3RhdGUoR0lTVFNUQVRFICpnaXN0c3RhdGUpCiBzdGF0aWMgdm9pZAogZ2lzdHBydW5lcGFn ZShSZWxhdGlvbiByZWwsIFBhZ2UgcGFnZSwgQnVmZmVyIGJ1ZmZlciwgUmVsYXRpb24gaGVhcFJl bCkKIHsKLQlPZmZzZXROdW1iZXIgZGVsZXRhYmxlW01heEluZGV4VHVwbGVzUGVyUGFnZV07CisJ T2Zmc2V0TnVtYmVyIGRlbGV0YWJsZVtNYXhJbmRleFR1cGxlc1BlclBhZ2VMaW1pdF07CiAJaW50 CQkJbmRlbGV0YWJsZSA9IDA7CiAJT2Zmc2V0TnVtYmVyIG9mZm51bSwKIAkJCQltYXhvZmY7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0Z2V0LmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvZ2lzdC9naXN0Z2V0LmMKaW5kZXggZDVjOGFlODE2Ni4uMWNhYTA3MjU4MSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGdldC5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9naXN0L2dpc3RnZXQuYwpAQCAtNjU5LDEyICs2NTksMTIgQEAgZ2lzdGdldHR1 cGxlKEluZGV4U2NhbkRlc2Mgc2NhbiwgU2NhbkRpcmVjdGlvbiBkaXIpCiAJCQkJCQkJTWVtb3J5 Q29udGV4dFN3aXRjaFRvKHNvLT5naXN0c3RhdGUtPnNjYW5DeHQpOwogCiAJCQkJCQlzby0+a2ls bGVkSXRlbXMgPQotCQkJCQkJCShPZmZzZXROdW1iZXIgKikgcGFsbG9jKE1heEluZGV4VHVwbGVz UGVyUGFnZQorCQkJCQkJCShPZmZzZXROdW1iZXIgKikgcGFsbG9jKENsdXN0ZXJNYXhJbmRleFR1 cGxlc1BlclBhZ2UKIAkJCQkJCQkJCQkJCQkqIHNpemVvZihPZmZzZXROdW1iZXIpKTsKIAogCQkJ CQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZEN4dCk7CiAJCQkJCX0KLQkJCQkJaWYgKHNvLT5u dW1LaWxsZWQgPCBNYXhJbmRleFR1cGxlc1BlclBhZ2UpCisJCQkJCWlmIChzby0+bnVtS2lsbGVk IDwgQ2x1c3Rlck1heEluZGV4VHVwbGVzUGVyUGFnZSkKIAkJCQkJCXNvLT5raWxsZWRJdGVtc1tz by0+bnVtS2lsbGVkKytdID0KIAkJCQkJCQlzby0+cGFnZURhdGFbc28tPmN1clBhZ2VEYXRhIC0g MV0ub2ZmbnVtOwogCQkJCX0KQEAgLTY5NiwxMiArNjk2LDEyIEBAIGdpc3RnZXR0dXBsZShJbmRl eFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rpb24gZGlyKQogCQkJCQkJTWVtb3J5Q29udGV4dFN3 aXRjaFRvKHNvLT5naXN0c3RhdGUtPnNjYW5DeHQpOwogCiAJCQkJCXNvLT5raWxsZWRJdGVtcyA9 Ci0JCQkJCQkoT2Zmc2V0TnVtYmVyICopIHBhbGxvYyhNYXhJbmRleFR1cGxlc1BlclBhZ2UKKwkJ CQkJCShPZmZzZXROdW1iZXIgKikgcGFsbG9jKENsdXN0ZXJNYXhJbmRleFR1cGxlc1BlclBhZ2UK IAkJCQkJCQkJCQkJCSogc2l6ZW9mKE9mZnNldE51bWJlcikpOwogCiAJCQkJCU1lbW9yeUNvbnRl eHRTd2l0Y2hUbyhvbGRDeHQpOwogCQkJCX0KLQkJCQlpZiAoc28tPm51bUtpbGxlZCA8IE1heElu ZGV4VHVwbGVzUGVyUGFnZSkKKwkJCQlpZiAoc28tPm51bUtpbGxlZCA8IENsdXN0ZXJNYXhJbmRl eFR1cGxlc1BlclBhZ2UpCiAJCQkJCXNvLT5raWxsZWRJdGVtc1tzby0+bnVtS2lsbGVkKytdID0K IAkJCQkJCXNvLT5wYWdlRGF0YVtzby0+Y3VyUGFnZURhdGEgLSAxXS5vZmZudW07CiAJCQl9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGFzaC9oYXNoLmMKaW5kZXggZmE1YjU5YTE1MC4uM2Y2NmIyNTcwYSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9oYXNoL2hhc2guYwpAQCAtMzEyLDkgKzMxMiw5IEBAIGhhc2hnZXR0dXBsZShJbmRleFNjYW5E ZXNjIHNjYW4sIFNjYW5EaXJlY3Rpb24gZGlyKQogCQkJICovCiAJCQlpZiAoc28tPmtpbGxlZEl0 ZW1zID09IE5VTEwpCiAJCQkJc28tPmtpbGxlZEl0ZW1zID0gKGludCAqKQotCQkJCQlwYWxsb2Mo TWF4SW5kZXhUdXBsZXNQZXJQYWdlICogc2l6ZW9mKGludCkpOworCQkJCQlwYWxsb2MoQ2x1c3Rl ck1heEluZGV4VHVwbGVzUGVyUGFnZSAqIHNpemVvZihpbnQpKTsKIAotCQkJaWYgKHNvLT5udW1L aWxsZWQgPCBNYXhJbmRleFR1cGxlc1BlclBhZ2UpCisJCQlpZiAoc28tPm51bUtpbGxlZCA8IENs dXN0ZXJNYXhJbmRleFR1cGxlc1BlclBhZ2UpCiAJCQkJc28tPmtpbGxlZEl0ZW1zW3NvLT5udW1L aWxsZWQrK10gPSBzby0+Y3VyclBvcy5pdGVtSW5kZXg7CiAJCX0KIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaG92ZmwuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNo L2hhc2hvdmZsLmMKaW5kZXggYzI4MGFlODg1ZS4uZWMzYTFhODM1NiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaG92ZmwuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGFzaC9oYXNob3ZmbC5jCkBAIC05MDMsOSArOTAzLDkgQEAgX2hhc2hfc3F1ZWV6ZWJ1Y2tldChS ZWxhdGlvbiByZWwsCiAJCU9mZnNldE51bWJlciByb2ZmbnVtOwogCQlPZmZzZXROdW1iZXIgbWF4 cm9mZm51bTsKIAkJT2Zmc2V0TnVtYmVyIGRlbGV0YWJsZVtNYXhPZmZzZXROdW1iZXJdOwotCQlJ bmRleFR1cGxlCWl0dXBzW01heEluZGV4VHVwbGVzUGVyUGFnZV07Ci0JCVNpemUJCXR1cHNfc2l6 ZVtNYXhJbmRleFR1cGxlc1BlclBhZ2VdOwotCQlPZmZzZXROdW1iZXIgaXR1cF9vZmZzZXRzW01h eEluZGV4VHVwbGVzUGVyUGFnZV07CisJCUluZGV4VHVwbGUJaXR1cHNbTWF4SW5kZXhUdXBsZXNQ ZXJQYWdlTGltaXRdOworCQlTaXplCQl0dXBzX3NpemVbTWF4SW5kZXhUdXBsZXNQZXJQYWdlTGlt aXRdOworCQlPZmZzZXROdW1iZXIgaXR1cF9vZmZzZXRzW01heEluZGV4VHVwbGVzUGVyUGFnZUxp bWl0XTsKIAkJdWludDE2CQluZGVsZXRhYmxlID0gMDsKIAkJdWludDE2CQluaXR1cHMgPSAwOwog CQlTaXplCQlhbGxfdHVwc19zaXplID0gMDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oYXNoL2hhc2hwYWdlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNocGFnZS5jCmlu ZGV4IDY5YjA3YjE0NTMuLjE2NTAzOTMxZjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oYXNoL2hhc2hwYWdlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHBhZ2Uu YwpAQCAtMTA4Nyw4ICsxMDg3LDggQEAgX2hhc2hfc3BsaXRidWNrZXQoUmVsYXRpb24gcmVsLAog CVBhZ2UJCW5wYWdlOwogCUhhc2hQYWdlT3BhcXVlIG9vcGFxdWU7CiAJSGFzaFBhZ2VPcGFxdWUg bm9wYXF1ZTsKLQlPZmZzZXROdW1iZXIgaXR1cF9vZmZzZXRzW01heEluZGV4VHVwbGVzUGVyUGFn ZV07Ci0JSW5kZXhUdXBsZQlpdHVwc1tNYXhJbmRleFR1cGxlc1BlclBhZ2VdOworCU9mZnNldE51 bWJlciBpdHVwX29mZnNldHNbTWF4SW5kZXhUdXBsZXNQZXJQYWdlTGltaXRdOworCUluZGV4VHVw bGUJaXR1cHNbTWF4SW5kZXhUdXBsZXNQZXJQYWdlTGltaXRdOwogCVNpemUJCWFsbF90dXBzX3Np emUgPSAwOwogCWludAkJCWk7CiAJdWludDE2CQluaXR1cHMgPSAwOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHNlYXJjaC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hh c2gvaGFzaHNlYXJjaC5jCmluZGV4IDhkZTNlYWI0OTguLmQwMzM5NTBmNzEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hzZWFyY2guYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGFzaC9oYXNoc2VhcmNoLmMKQEAgLTUzMiw3ICs1MzIsNyBAQCBfaGFzaF9yZWFkcGFn ZShJbmRleFNjYW5EZXNjIHNjYW4sIEJ1ZmZlciAqYnVmUCwgU2NhbkRpcmVjdGlvbiBkaXIpCiAK IAkJCWl0ZW1JbmRleCA9IF9oYXNoX2xvYWRfcXVhbGlmaWVkX2l0ZW1zKHNjYW4sIHBhZ2UsIG9m Zm51bSwgZGlyKTsKIAotCQkJaWYgKGl0ZW1JbmRleCAhPSBNYXhJbmRleFR1cGxlc1BlclBhZ2Up CisJCQlpZiAoaXRlbUluZGV4ICE9IENsdXN0ZXJNYXhJbmRleFR1cGxlc1BlclBhZ2UpCiAJCQkJ YnJlYWs7CiAKIAkJCS8qCkBAIC01NzEsOCArNTcxLDggQEAgX2hhc2hfcmVhZHBhZ2UoSW5kZXhT Y2FuRGVzYyBzY2FuLCBCdWZmZXIgKmJ1ZlAsIFNjYW5EaXJlY3Rpb24gZGlyKQogCQl9CiAKIAkJ c28tPmN1cnJQb3MuZmlyc3RJdGVtID0gaXRlbUluZGV4OwotCQlzby0+Y3VyclBvcy5sYXN0SXRl bSA9IE1heEluZGV4VHVwbGVzUGVyUGFnZSAtIDE7Ci0JCXNvLT5jdXJyUG9zLml0ZW1JbmRleCA9 IE1heEluZGV4VHVwbGVzUGVyUGFnZSAtIDE7CisJCXNvLT5jdXJyUG9zLmxhc3RJdGVtID0gQ2x1 c3Rlck1heEluZGV4VHVwbGVzUGVyUGFnZSAtIDE7CisJCXNvLT5jdXJyUG9zLml0ZW1JbmRleCA9 IENsdXN0ZXJNYXhJbmRleFR1cGxlc1BlclBhZ2UgLSAxOwogCX0KIAogCWlmIChzby0+Y3VyclBv cy5idWYgPT0gc28tPmhhc2hzb19idWNrZXRfYnVmIHx8CkBAIC02NTIsMTMgKzY1MiwxMyBAQCBf aGFzaF9sb2FkX3F1YWxpZmllZF9pdGVtcyhJbmRleFNjYW5EZXNjIHNjYW4sIFBhZ2UgcGFnZSwK IAkJCW9mZm51bSA9IE9mZnNldE51bWJlck5leHQob2ZmbnVtKTsKIAkJfQogCi0JCUFzc2VydChp dGVtSW5kZXggPD0gTWF4SW5kZXhUdXBsZXNQZXJQYWdlKTsKKwkJQXNzZXJ0KGl0ZW1JbmRleCA8 PSBDbHVzdGVyTWF4SW5kZXhUdXBsZXNQZXJQYWdlKTsKIAkJcmV0dXJuIGl0ZW1JbmRleDsKIAl9 CiAJZWxzZQogCXsKIAkJLyogbG9hZCBpdGVtc1tdIGluIGRlc2NlbmRpbmcgb3JkZXIgKi8KLQkJ aXRlbUluZGV4ID0gTWF4SW5kZXhUdXBsZXNQZXJQYWdlOworCQlpdGVtSW5kZXggPSBDbHVzdGVy TWF4SW5kZXhUdXBsZXNQZXJQYWdlOwogCiAJCXdoaWxlIChvZmZudW0gPj0gRmlyc3RPZmZzZXRO dW1iZXIpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0aW5z ZXJ0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idGluc2VydC5jCmluZGV4IDcwOWVk ZDFjMTcuLjQ2NzRlNTI2N2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv bmJ0aW5zZXJ0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRpbnNlcnQuYwpA QCAtMjY4NSw3ICsyNjg1LDcgQEAgX2J0X2RlbGV0ZV9vcl9kZWR1cF9vbmVfcGFnZShSZWxhdGlv biByZWwsIFJlbGF0aW9uIGhlYXBSZWwsCiAJCQkJCQkJIGJvb2wgc2ltcGxlb25seSwgYm9vbCBj aGVja2luZ3VuaXF1ZSwKIAkJCQkJCQkgYm9vbCB1bmlxdWVkdXAsIGJvb2wgaW5kZXhVbmNoYW5n ZWQpCiB7Ci0JT2Zmc2V0TnVtYmVyIGRlbGV0YWJsZVtNYXhJbmRleFR1cGxlc1BlclBhZ2VdOwor CU9mZnNldE51bWJlciBkZWxldGFibGVbTWF4SW5kZXhUdXBsZXNQZXJQYWdlTGltaXRdOwogCWlu dAkJCW5kZWxldGFibGUgPSAwOwogCU9mZnNldE51bWJlciBvZmZudW0sCiAJCQkJbWlub2ZmLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRwYWdlLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvbmJ0cmVlL25idHBhZ2UuYwppbmRleCA1NjdiYWRlOWY0Li5mYjI0YWE0ZjU2 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHBhZ2UuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHBhZ2UuYwpAQCAtMTE2MCw3ICsxMTYwLDcgQEAg X2J0X2RlbGl0ZW1zX3ZhY3V1bShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJYm9vbAkJbmVl ZHN3YWwgPSBSZWxhdGlvbk5lZWRzV0FMKHJlbCk7CiAJY2hhcgkgICAqdXBkYXRlZGJ1ZiA9IE5V TEw7CiAJU2l6ZQkJdXBkYXRlZGJ1ZmxlbiA9IDA7Ci0JT2Zmc2V0TnVtYmVyIHVwZGF0ZWRvZmZz ZXRzW01heEluZGV4VHVwbGVzUGVyUGFnZV07CisJT2Zmc2V0TnVtYmVyIHVwZGF0ZWRvZmZzZXRz W01heEluZGV4VHVwbGVzUGVyUGFnZUxpbWl0XTsKIAogCS8qIFNob3VsZG4ndCBiZSBjYWxsZWQg dW5sZXNzIHRoZXJlJ3Mgc29tZXRoaW5nIHRvIGRvICovCiAJQXNzZXJ0KG5kZWxldGFibGUgPiAw IHx8IG51cGRhdGFibGUgPiAwKTsKQEAgLTEyOTEsNyArMTI5MSw3IEBAIF9idF9kZWxpdGVtc19k ZWxldGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCWJvb2wJCW5lZWRzd2FsID0gUmVsYXRp b25OZWVkc1dBTChyZWwpOwogCWNoYXIJICAgKnVwZGF0ZWRidWYgPSBOVUxMOwogCVNpemUJCXVw ZGF0ZWRidWZsZW4gPSAwOwotCU9mZnNldE51bWJlciB1cGRhdGVkb2Zmc2V0c1tNYXhJbmRleFR1 cGxlc1BlclBhZ2VdOworCU9mZnNldE51bWJlciB1cGRhdGVkb2Zmc2V0c1tNYXhJbmRleFR1cGxl c1BlclBhZ2VMaW1pdF07CiAKIAkvKiBTaG91bGRuJ3QgYmUgY2FsbGVkIHVubGVzcyB0aGVyZSdz IHNvbWV0aGluZyB0byBkbyAqLwogCUFzc2VydChuZGVsZXRhYmxlID4gMCB8fCBudXBkYXRhYmxl ID4gMCk7CkBAIC0xNTI0LDggKzE1MjQsOCBAQCBfYnRfZGVsaXRlbXNfZGVsZXRlX2NoZWNrKFJl bGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwgUmVsYXRpb24gaGVhcFJlbCwKIAlPZmZzZXROdW1iZXIg cG9zdGluZ2lkeG9mZm51bSA9IEludmFsaWRPZmZzZXROdW1iZXI7CiAJaW50CQkJbmRlbGV0YWJs ZSA9IDAsCiAJCQkJbnVwZGF0YWJsZSA9IDA7Ci0JT2Zmc2V0TnVtYmVyIGRlbGV0YWJsZVtNYXhJ bmRleFR1cGxlc1BlclBhZ2VdOwotCUJUVmFjdXVtUG9zdGluZyB1cGRhdGFibGVbTWF4SW5kZXhU dXBsZXNQZXJQYWdlXTsKKwlPZmZzZXROdW1iZXIgZGVsZXRhYmxlW01heEluZGV4VHVwbGVzUGVy UGFnZUxpbWl0XTsKKwlCVFZhY3V1bVBvc3RpbmcgdXBkYXRhYmxlW01heEluZGV4VHVwbGVzUGVy UGFnZUxpbWl0XTsKIAogCS8qIFVzZSB0YWJsZWFtIGludGVyZmFjZSB0byBkZXRlcm1pbmUgd2hp Y2ggdHVwbGVzIHRvIGRlbGV0ZSBmaXJzdCAqLwogCXNuYXBzaG90Q29uZmxpY3RIb3Jpem9uID0g dGFibGVfaW5kZXhfZGVsZXRlX3R1cGxlcyhoZWFwUmVsLCBkZWxzdGF0ZSk7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHJlZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L25idHJlZS9uYnRyZWUuYwppbmRleCA2OTZkNzljMDg1Li4yYTRmOTkwNTgzIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHJlZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0cmVlLmMKQEAgLTExNTksOSArMTE1OSw5IEBAIGJhY2t0cmFjazoKIAl9 CiAJZWxzZSBpZiAoUF9JU0xFQUYob3BhcXVlKSkKIAl7Ci0JCU9mZnNldE51bWJlciBkZWxldGFi bGVbTWF4SW5kZXhUdXBsZXNQZXJQYWdlXTsKKwkJT2Zmc2V0TnVtYmVyIGRlbGV0YWJsZVtNYXhJ bmRleFR1cGxlc1BlclBhZ2VMaW1pdF07CiAJCWludAkJCW5kZWxldGFibGU7Ci0JCUJUVmFjdXVt UG9zdGluZyB1cGRhdGFibGVbTWF4SW5kZXhUdXBsZXNQZXJQYWdlXTsKKwkJQlRWYWN1dW1Qb3N0 aW5nIHVwZGF0YWJsZVtNYXhJbmRleFR1cGxlc1BlclBhZ2VMaW1pdF07CiAJCWludAkJCW51cGRh dGFibGU7CiAJCU9mZnNldE51bWJlciBvZmZudW0sCiAJCQkJCW1pbm9mZiwKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L25idHJlZS9uYnR4bG9nLmMKaW5kZXggZjY4M2MyMTA1Ni4uOWFiNTUwNzVhOSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR4bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL25idHJlZS9uYnR4bG9nLmMKQEAgLTQwLDggKzQwLDggQEAgX2J0X3Jlc3RvcmVfcGFn ZShQYWdlIHBhZ2UsIGNoYXIgKmZyb20sIGludCBsZW4pCiAJSW5kZXhUdXBsZURhdGEgaXR1cGRh dGE7CiAJU2l6ZQkJaXRlbXN6OwogCWNoYXIJICAgKmVuZCA9IGZyb20gKyBsZW47Ci0JSXRlbQkJ aXRlbXNbTWF4SW5kZXhUdXBsZXNQZXJQYWdlXTsKLQl1aW50MTYJCWl0ZW1zaXplc1tNYXhJbmRl eFR1cGxlc1BlclBhZ2VdOworCUl0ZW0JCWl0ZW1zW01heEluZGV4VHVwbGVzUGVyUGFnZUxpbWl0 XTsKKwl1aW50MTYJCWl0ZW1zaXplc1tNYXhJbmRleFR1cGxlc1BlclBhZ2VMaW1pdF07CiAJaW50 CQkJaTsKIAlpbnQJCQluaXRlbXM7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9z cGdpc3Qvc3BnZG9pbnNlcnQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BnZG9pbnNl cnQuYwppbmRleCBiYjA2M2M4NThkLi4zY2JlMWUyZTUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3Mvc3BnaXN0L3NwZ2RvaW5zZXJ0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3Nw Z2lzdC9zcGdkb2luc2VydC5jCkBAIC0xMzUsNyArMTM1LDcgQEAgc3BnUGFnZUluZGV4TXVsdGlE ZWxldGUoU3BHaXN0U3RhdGUgKnN0YXRlLCBQYWdlIHBhZ2UsCiAJCQkJCQlCbG9ja051bWJlciBi bGtubywgT2Zmc2V0TnVtYmVyIG9mZm51bSkKIHsKIAlPZmZzZXROdW1iZXIgZmlyc3RJdGVtOwot CU9mZnNldE51bWJlciBzb3J0ZWRub3NbTWF4SW5kZXhUdXBsZXNQZXJQYWdlXTsKKwlPZmZzZXRO dW1iZXIgc29ydGVkbm9zW01heEluZGV4VHVwbGVzUGVyUGFnZUxpbWl0XTsKIAlTcEdpc3REZWFk VHVwbGUgdHVwbGUgPSBOVUxMOwogCWludAkJCWk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9zcGdpc3Qvc3Bnc2Nhbi5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGdz Y2FuLmMKaW5kZXggMDMyOTNhNzgxNi4uNTY5MGZjNDk4MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL3NwZ2lzdC9zcGdzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lz dC9zcGdzY2FuLmMKQEAgLTk2MSw3ICs5NjEsNyBAQCBzdG9yZUdldHR1cGxlKFNwR2lzdFNjYW5P cGFxdWUgc28sIEl0ZW1Qb2ludGVyIGhlYXBQdHIsCiAJCQkgIFNwR2lzdExlYWZUdXBsZSBsZWFm VHVwbGUsIGJvb2wgcmVjaGVjaywKIAkJCSAgYm9vbCByZWNoZWNrRGlzdGFuY2VzLCBkb3VibGUg Km5vbk51bGxEaXN0YW5jZXMpCiB7Ci0JQXNzZXJ0KHNvLT5uUHRycyA8IE1heEluZGV4VHVwbGVz UGVyUGFnZSk7CisJQXNzZXJ0KHNvLT5uUHRycyA8IENsdXN0ZXJNYXhJbmRleFR1cGxlc1BlclBh Z2UpOwogCXNvLT5oZWFwUHRyc1tzby0+blB0cnNdID0gKmhlYXBQdHI7CiAJc28tPnJlY2hlY2tb c28tPm5QdHJzXSA9IHJlY2hlY2s7CiAJc28tPnJlY2hlY2tEaXN0YW5jZXNbc28tPm5QdHJzXSA9 IHJlY2hlY2tEaXN0YW5jZXM7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0 L3NwZ3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYwppbmRl eCBmZjgyYjk3ZGQ4Li4xZDU0N2Q1NWQwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv c3BnaXN0L3NwZ3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFj dXVtLmMKQEAgLTEyOCwxNCArMTI4LDE0IEBAIHZhY3V1bUxlYWZQYWdlKHNwZ0J1bGtEZWxldGVT dGF0ZSAqYmRzLCBSZWxhdGlvbiBpbmRleCwgQnVmZmVyIGJ1ZmZlciwKIHsKIAlQYWdlCQlwYWdl ID0gQnVmZmVyR2V0UGFnZShidWZmZXIpOwogCXNwZ3hsb2dWYWN1dW1MZWFmIHhscmVjOwotCU9m ZnNldE51bWJlciB0b0RlYWRbTWF4SW5kZXhUdXBsZXNQZXJQYWdlXTsKLQlPZmZzZXROdW1iZXIg dG9QbGFjZWhvbGRlcltNYXhJbmRleFR1cGxlc1BlclBhZ2VdOwotCU9mZnNldE51bWJlciBtb3Zl U3JjW01heEluZGV4VHVwbGVzUGVyUGFnZV07Ci0JT2Zmc2V0TnVtYmVyIG1vdmVEZXN0W01heElu ZGV4VHVwbGVzUGVyUGFnZV07Ci0JT2Zmc2V0TnVtYmVyIGNoYWluU3JjW01heEluZGV4VHVwbGVz UGVyUGFnZV07Ci0JT2Zmc2V0TnVtYmVyIGNoYWluRGVzdFtNYXhJbmRleFR1cGxlc1BlclBhZ2Vd OwotCU9mZnNldE51bWJlciBwcmVkZWNlc3NvcltNYXhJbmRleFR1cGxlc1BlclBhZ2UgKyAxXTsK LQlib29sCQlkZWxldGFibGVbTWF4SW5kZXhUdXBsZXNQZXJQYWdlICsgMV07CisJT2Zmc2V0TnVt YmVyIHRvRGVhZFtNYXhJbmRleFR1cGxlc1BlclBhZ2VMaW1pdF07CisJT2Zmc2V0TnVtYmVyIHRv UGxhY2Vob2xkZXJbTWF4SW5kZXhUdXBsZXNQZXJQYWdlTGltaXRdOworCU9mZnNldE51bWJlciBt b3ZlU3JjW01heEluZGV4VHVwbGVzUGVyUGFnZUxpbWl0XTsKKwlPZmZzZXROdW1iZXIgbW92ZURl c3RbTWF4SW5kZXhUdXBsZXNQZXJQYWdlTGltaXRdOworCU9mZnNldE51bWJlciBjaGFpblNyY1tN YXhJbmRleFR1cGxlc1BlclBhZ2VMaW1pdF07CisJT2Zmc2V0TnVtYmVyIGNoYWluRGVzdFtNYXhJ bmRleFR1cGxlc1BlclBhZ2VMaW1pdF07CisJT2Zmc2V0TnVtYmVyIHByZWRlY2Vzc29yW01heElu ZGV4VHVwbGVzUGVyUGFnZUxpbWl0ICsgMV07CisJYm9vbAkJZGVsZXRhYmxlW01heEluZGV4VHVw bGVzUGVyUGFnZUxpbWl0ICsgMV07CiAJaW50CQkJbkRlbGV0YWJsZTsKIAlPZmZzZXROdW1iZXIg aSwKIAkJCQltYXggPSBQYWdlR2V0TWF4T2Zmc2V0TnVtYmVyKHBhZ2UpOwpAQCAtNDA4LDcgKzQw OCw3IEBAIHZhY3V1bUxlYWZSb290KHNwZ0J1bGtEZWxldGVTdGF0ZSAqYmRzLCBSZWxhdGlvbiBp bmRleCwgQnVmZmVyIGJ1ZmZlcikKIHsKIAlQYWdlCQlwYWdlID0gQnVmZmVyR2V0UGFnZShidWZm ZXIpOwogCXNwZ3hsb2dWYWN1dW1Sb290IHhscmVjOwotCU9mZnNldE51bWJlciB0b0RlbGV0ZVtN YXhJbmRleFR1cGxlc1BlclBhZ2VdOworCU9mZnNldE51bWJlciB0b0RlbGV0ZVtNYXhJbmRleFR1 cGxlc1BlclBhZ2VMaW1pdF07CiAJT2Zmc2V0TnVtYmVyIGksCiAJCQkJbWF4ID0gUGFnZUdldE1h eE9mZnNldE51bWJlcihwYWdlKTsKIApAQCAtNDk4LDggKzQ5OCw4IEBAIHZhY3V1bVJlZGlyZWN0 QW5kUGxhY2Vob2xkZXIoUmVsYXRpb24gaW5kZXgsIFJlbGF0aW9uIGhlYXByZWwsIEJ1ZmZlciBi dWZmZXIpCiAJCQkJZmlyc3RQbGFjZWhvbGRlciA9IEludmFsaWRPZmZzZXROdW1iZXI7CiAJYm9v bAkJaGFzTm9uUGxhY2Vob2xkZXIgPSBmYWxzZTsKIAlib29sCQloYXNVcGRhdGUgPSBmYWxzZTsK LQlPZmZzZXROdW1iZXIgaXRlbVRvUGxhY2Vob2xkZXJbTWF4SW5kZXhUdXBsZXNQZXJQYWdlXTsK LQlPZmZzZXROdW1iZXIgaXRlbW5vc1tNYXhJbmRleFR1cGxlc1BlclBhZ2VdOworCU9mZnNldE51 bWJlciBpdGVtVG9QbGFjZWhvbGRlcltNYXhJbmRleFR1cGxlc1BlclBhZ2VMaW1pdF07CisJT2Zm c2V0TnVtYmVyIGl0ZW1ub3NbTWF4SW5kZXhUdXBsZXNQZXJQYWdlTGltaXRdOwogCXNwZ3hsb2dW YWN1dW1SZWRpcmVjdCB4bHJlYzsKIAlHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdDsKIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9wYWdlL2J1ZnBhZ2UuYyBiL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvcGFnZS9idWZwYWdlLmMKaW5kZXggZjc4ZWZjZTlhZC4uYmMzN2VhZTlmMiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9wYWdlL2J1ZnBhZ2UuYworKysgYi9zcmMvYmFja2Vu ZC9zdG9yYWdlL3BhZ2UvYnVmcGFnZS5jCkBAIC0xMTY1LDggKzExNjUsOCBAQCBQYWdlSW5kZXhN dWx0aURlbGV0ZShQYWdlIHBhZ2UsIE9mZnNldE51bWJlciAqaXRlbW5vcywgaW50IG5pdGVtcykK IAlPZmZzZXQJCXBkX3VwcGVyID0gcGhkci0+cGRfdXBwZXI7CiAJT2Zmc2V0CQlwZF9zcGVjaWFs ID0gcGhkci0+cGRfc3BlY2lhbDsKIAlPZmZzZXQJCWxhc3Rfb2Zmc2V0OwotCWl0ZW1JZENvbXBh Y3REYXRhIGl0ZW1pZGJhc2VbTWF4SW5kZXhUdXBsZXNQZXJQYWdlXTsKLQlJdGVtSWREYXRhCW5l d2l0ZW1pZHNbTWF4SW5kZXhUdXBsZXNQZXJQYWdlXTsKKwlpdGVtSWRDb21wYWN0RGF0YSBpdGVt aWRiYXNlW01heEluZGV4VHVwbGVzUGVyUGFnZUxpbWl0XTsKKwlJdGVtSWREYXRhCW5ld2l0ZW1p ZHNbTWF4SW5kZXhUdXBsZXNQZXJQYWdlTGltaXRdOwogCWl0ZW1JZENvbXBhY3QgaXRlbWlkcHRy OwogCUl0ZW1JZAkJbHA7CiAJaW50CQkJbmxpbmUsCkBAIC0xMTc4LDcgKzExNzgsNyBAQCBQYWdl SW5kZXhNdWx0aURlbGV0ZShQYWdlIHBhZ2UsIE9mZnNldE51bWJlciAqaXRlbW5vcywgaW50IG5p dGVtcykKIAlPZmZzZXROdW1iZXIgb2ZmbnVtOwogCWJvb2wJCXByZXNvcnRlZCA9IHRydWU7CS8q IEZvciBub3cgKi8KIAotCUFzc2VydChuaXRlbXMgPD0gTWF4SW5kZXhUdXBsZXNQZXJQYWdlKTsK KwlBc3NlcnQobml0ZW1zIDw9IENsdXN0ZXJNYXhJbmRleFR1cGxlc1BlclBhZ2UpOwogCiAJLyoK IAkgKiBJZiB0aGVyZSBhcmVuJ3QgdmVyeSBtYW55IGl0ZW1zIHRvIGRlbGV0ZSwgdGhlbiByZXRh aWwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oYXNoLmggYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvaGFzaC5oCmluZGV4IDljN2Q4MTUyNWIuLmI3OTc4NzJiZDQgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9oYXNoLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hhc2guaApA QCAtMTI0LDcgKzEyNCw3IEBAIHR5cGVkZWYgc3RydWN0IEhhc2hTY2FuUG9zRGF0YQogCWludAkJ CWxhc3RJdGVtOwkJLyogbGFzdCB2YWxpZCBpbmRleCBpbiBpdGVtc1tdICovCiAJaW50CQkJaXRl bUluZGV4OwkJLyogY3VycmVudCBpbmRleCBpbiBpdGVtc1tdICovCiAKLQlIYXNoU2NhblBvc0l0 ZW0gaXRlbXNbTWF4SW5kZXhUdXBsZXNQZXJQYWdlXTsJLyogTVVTVCBCRSBMQVNUICovCisJSGFz aFNjYW5Qb3NJdGVtIGl0ZW1zW01heEluZGV4VHVwbGVzUGVyUGFnZUxpbWl0XTsJLyogTVVTVCBC RSBMQVNUICovCiB9IEhhc2hTY2FuUG9zRGF0YTsKIAogI2RlZmluZSBIYXNoU2NhblBvc0lzUGlu bmVkKHNjYW5wb3MpIFwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9pdHVwLmggYi9z cmMvaW5jbHVkZS9hY2Nlc3MvaXR1cC5oCmluZGV4IDk0ODg1NzUxZTUuLjYxZmE4ZmY1MzggMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9pdHVwLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNj ZXNzL2l0dXAuaApAQCAtMTQ4LDExICsxNDgsMTkgQEAgaW5kZXhfZ2V0YXR0cihJbmRleFR1cGxl IHR1cCwgaW50IGF0dG51bSwgVHVwbGVEZXNjIHR1cGxlRGVzYywgYm9vbCAqaXNudWxsKQogI2Vu ZGlmCiAKIC8qCi0gKiBNYXhJbmRleFR1cGxlc1BlclBhZ2UgaXMgYW4gdXBwZXIgYm91bmQgb24g dGhlIG51bWJlciBvZiB0dXBsZXMgdGhhdCBjYW4KLSAqIGZpdCBvbiBvbmUgaW5kZXggcGFnZS4g IEFuIGluZGV4IHR1cGxlIG11c3QgaGF2ZSBlaXRoZXIgZGF0YSBvciBhIG51bGwKLSAqIGJpdG1h cCwgc28gd2UgY2FuIHNhZmVseSBhc3N1bWUgaXQncyBhdCBsZWFzdCAxIGJ5dGUgYmlnZ2VyIHRo YW4gYSBiYXJlCi0gKiBJbmRleFR1cGxlRGF0YSBzdHJ1Y3QuICBXZSBhcnJpdmUgYXQgdGhlIGRp dmlzb3IgYmVjYXVzZSBlYWNoIHR1cGxlCi0gKiBtdXN0IGJlIG1heGFsaWduZWQsIGFuZCBpdCBt dXN0IGhhdmUgYW4gYXNzb2NpYXRlZCBsaW5lIHBvaW50ZXIuCisgKiBDbHVzdGVyTWF4SW5kZXhU dXBsZXNQZXJQYWdlIGlzIGEgY2x1c3Rlci1zcGVjaWZpYyB1cHBlciBib3VuZCBvbiB0aGUKKyAq IG51bWJlciBvZiB0dXBsZXMgdGhhdCBjYW4gZml0IG9uIG9uZSBpbmRleCBwYWdlLiAgQW4gaW5k ZXggdHVwbGUgbXVzdCBoYXZlCisgKiBlaXRoZXIgZGF0YSBvciBhIG51bGwgYml0bWFwLCBzbyB3 ZSBjYW4gc2FmZWx5IGFzc3VtZSBpdCdzIGF0IGxlYXN0IDEgYnl0ZQorICogYmlnZ2VyIHRoYW4g YSBiYXJlIEluZGV4VHVwbGVEYXRhIHN0cnVjdC4gIFdlIGFycml2ZSBhdCB0aGUgZGl2aXNvciBi ZWNhdXNlCisgKiBlYWNoIHR1cGxlIG11c3QgYmUgbWF4YWxpZ25lZCwgYW5kIGl0IG11c3QgaGF2 ZSBhbiBhc3NvY2lhdGVkIGxpbmUgcG9pbnRlci4KKyAqCisgKiBNYXhJbmRleFR1cGxlc1BlclBh Z2VMaW1pdCBpcyB0aGUgbGFyZ2VzdCB2YWx1ZSB0aGF0CisgKiBDbHVzdGVyTWF4SW5kZXhUdXBs ZXNQZXJQYWdlIGNvdWxkIGJlLiAgV2hpbGUgdGhlc2UgY3VycmVudGx5IGV2YWx1YXRlIHRvCisg KiB0aGUgc2FtZSB2YWx1ZSwgdGhlc2UgYXJlIGJlaW5nIHNwbGl0IG91dCBzbyBDbHVzdGVyTWF4 SW5kZXhUdXBsZXNQZXJQYWdlCisgKiBjYW4gYmVjb21lIGEgdmFyaWFibGUgaW5zdGVhZCBvZiBh IGNvbnN0YW50LgorICoKKyAqIFRoZSBDYWxjTWF4SW5kZXhUdXBsZXNQZXJQYWdlKCkgbWFjcm8g aXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGFwcHJvcHJpYXRlCisgKiB2YWx1ZXMsIGdpdmVuIHRo ZSB1c2FibGUgcGFnZSBzcGFjZSBvbiBhIGdpdmVuIHBhZ2UuCiAgKgogICogVG8gYmUgaW5kZXgt dHlwZS1pbmRlcGVuZGVudCwgdGhpcyBkb2VzIG5vdCBhY2NvdW50IGZvciBhbnkgc3BlY2lhbCBz cGFjZQogICogb24gdGhlIHBhZ2UsIGFuZCBpcyB0aHVzIGNvbnNlcnZhdGl2ZS4KQEAgLTE2Myw4 ICsxNzEsOSBAQCBpbmRleF9nZXRhdHRyKEluZGV4VHVwbGUgdHVwLCBpbnQgYXR0bnVtLCBUdXBs ZURlc2MgdHVwbGVEZXNjLCBib29sICppc251bGwpCiAgKiBlc3RpbWF0ZWQgaGVyZSwgc2VlbWlu Z2x5IGFsbG93aW5nIG9uZSBtb3JlIHR1cGxlIHRoYW4gZXN0aW1hdGVkIGhlcmUuCiAgKiBCdXQg c3VjaCBhIHBhZ2UgYWx3YXlzIGhhcyBhdCBsZWFzdCBNQVhBTElHTiBzcGVjaWFsIHNwYWNlLCBz byB3ZSdyZSBzYWZlLgogICovCi0jZGVmaW5lIE1heEluZGV4VHVwbGVzUGVyUGFnZQlcCi0JKChp bnQpICgoQkxDS1NaIC0gU2l6ZU9mUGFnZUhlYWRlckRhdGEpIC8gXAorI2RlZmluZSBDYWxjTWF4 SW5kZXhUdXBsZXNQZXJQYWdlKHNpemUpCSgoaW50KSAoKHNpemUpIC8gXAogCQkJKE1BWEFMSUdO KHNpemVvZihJbmRleFR1cGxlRGF0YSkgKyAxKSArIHNpemVvZihJdGVtSWREYXRhKSkpKQorI2Rl ZmluZSBDbHVzdGVyTWF4SW5kZXhUdXBsZXNQZXJQYWdlIENhbGNNYXhJbmRleFR1cGxlc1BlclBh Z2UoQkxDS1NaIC0gU2l6ZU9mUGFnZUhlYWRlckRhdGEpCisjZGVmaW5lIE1heEluZGV4VHVwbGVz UGVyUGFnZUxpbWl0IENhbGNNYXhJbmRleFR1cGxlc1BlclBhZ2UoQkxDS1NaIC0gU2l6ZU9mUGFn ZUhlYWRlckRhdGEpCiAKICNlbmRpZgkJCQkJCQkvKiBJVFVQX0ggKi8KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9uYnRyZWUuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnRyZWUuaApp bmRleCA2ZWIxNjIwNTJlLi42NzZmYTVlMGE5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nl c3MvbmJ0cmVlLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL25idHJlZS5oCkBAIC04ODcsNyAr ODg3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQlREZWR1cFN0YXRlRGF0YQogCSAqIGFyZSBpbXBsaWNp dGx5IHVuY2hhbmdlZCBieSBkZWR1cGxpY2F0aW9uIHBhc3MpLgogCSAqLwogCWludAkJCW5pbnRl cnZhbHM7CQkvKiBjdXJyZW50IG51bWJlciBvZiBpbnRlcnZhbHMgaW4gYXJyYXkgKi8KLQlCVERl ZHVwSW50ZXJ2YWwgaW50ZXJ2YWxzW01heEluZGV4VHVwbGVzUGVyUGFnZV07CisJQlREZWR1cElu dGVydmFsIGludGVydmFsc1tNYXhJbmRleFR1cGxlc1BlclBhZ2VMaW1pdF07CiB9IEJURGVkdXBT dGF0ZURhdGE7CiAKIHR5cGVkZWYgQlREZWR1cFN0YXRlRGF0YSAqQlREZWR1cFN0YXRlOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ2lzdF9wcml2YXRlLmggYi9zcmMvaW5jbHVk ZS9hY2Nlc3Mvc3BnaXN0X3ByaXZhdGUuaAppbmRleCAyZTljNzU3YjMwLi5kOGNhMmI3ZTBmIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3BnaXN0X3ByaXZhdGUuaAorKysgYi9zcmMv aW5jbHVkZS9hY2Nlc3Mvc3BnaXN0X3ByaXZhdGUuaApAQCAtMjI2LDE3ICsyMjYsMTcgQEAgdHlw ZWRlZiBzdHJ1Y3QgU3BHaXN0U2Nhbk9wYXF1ZURhdGEKIAlUdXBsZURlc2MJcmVjb25UdXBEZXNj OwkvKiBpZiBzbywgZGVzY3JpcHRvciBmb3IgcmVjb25zdHJ1Y3RlZCB0dXBsZXMgKi8KIAlpbnQJ CQluUHRyczsJCQkvKiBudW1iZXIgb2YgVElEcyBmb3VuZCBvbiBjdXJyZW50IHBhZ2UgKi8KIAlp bnQJCQlpUHRyOwkJCS8qIGluZGV4IGZvciBzY2FubmluZyB0aHJvdWdoIHNhbWUgKi8KLQlJdGVt UG9pbnRlckRhdGEgaGVhcFB0cnNbTWF4SW5kZXhUdXBsZXNQZXJQYWdlXTsJLyogVElEcyBmcm9t IGN1ciBwYWdlICovCi0JYm9vbAkJcmVjaGVja1tNYXhJbmRleFR1cGxlc1BlclBhZ2VdOyAvKiB0 aGVpciByZWNoZWNrIGZsYWdzICovCi0JYm9vbAkJcmVjaGVja0Rpc3RhbmNlc1tNYXhJbmRleFR1 cGxlc1BlclBhZ2VdOwkvKiBkaXN0YW5jZSByZWNoZWNrCisJSXRlbVBvaW50ZXJEYXRhIGhlYXBQ dHJzW01heEluZGV4VHVwbGVzUGVyUGFnZUxpbWl0XTsJLyogVElEcyBmcm9tIGN1ciBwYWdlICov CisJYm9vbAkJcmVjaGVja1tNYXhJbmRleFR1cGxlc1BlclBhZ2VMaW1pdF07IC8qIHRoZWlyIHJl Y2hlY2sgZmxhZ3MgKi8KKwlib29sCQlyZWNoZWNrRGlzdGFuY2VzW01heEluZGV4VHVwbGVzUGVy UGFnZUxpbWl0XTsJLyogZGlzdGFuY2UgcmVjaGVjawogCQkJCQkJCQkJCQkJCQkJICogZmxhZ3Mg Ki8KLQlIZWFwVHVwbGUJcmVjb25UdXBzW01heEluZGV4VHVwbGVzUGVyUGFnZV07CS8qIHJlY29u c3RydWN0ZWQgdHVwbGVzICovCisJSGVhcFR1cGxlCXJlY29uVHVwc1tNYXhJbmRleFR1cGxlc1Bl clBhZ2VMaW1pdF07CS8qIHJlY29uc3RydWN0ZWQgdHVwbGVzICovCiAKIAkvKiBkaXN0YW5jZXMg KGZvciByZWNoZWNrKSAqLwotCUluZGV4T3JkZXJCeURpc3RhbmNlICpkaXN0YW5jZXNbTWF4SW5k ZXhUdXBsZXNQZXJQYWdlXTsKKwlJbmRleE9yZGVyQnlEaXN0YW5jZSAqZGlzdGFuY2VzW01heElu ZGV4VHVwbGVzUGVyUGFnZUxpbWl0XTsKIAogCS8qCi0JICogTm90ZTogdXNpbmcgTWF4SW5kZXhU dXBsZXNQZXJQYWdlIGFib3ZlIGlzIGEgYml0IGhva2V5IHNpbmNlCisJICogTm90ZTogdXNpbmcg Q2x1c3Rlck1heEluZGV4VHVwbGVzUGVyUGFnZSBhYm92ZSBpcyBhIGJpdCBob2tleSBzaW5jZQog CSAqIFNwR2lzdExlYWZUdXBsZXMgYXJlbid0IGV4YWN0bHkgSW5kZXhUdXBsZXM7IGhvd2V2ZXIs IHRoZXkgYXJlIGxhcmdlciwKIAkgKiBzbyB0aGlzIGlzIHNhZmUuCiAJICovCi0tIAoyLjQwLjEK Cg== --000000000000f048080610cd981a--