Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wcPfv-003KRw-0j for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jun 2026 15:38:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wcPfu-001Ucu-0c for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jun 2026 15:38:02 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wcPcp-001RoJ-1p for pgsql-hackers@lists.postgresql.org; Wed, 24 Jun 2026 15:34:51 +0000 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wcPcn-000000002qh-0VQZ for pgsql-hackers@postgresql.org; Wed, 24 Jun 2026 15:34:51 +0000 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-45fd461e4a5so1018204f8f.0 for ; Wed, 24 Jun 2026 08:34:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782315287; x=1782920087; darn=postgresql.org; h=mime-version:subject:references:in-reply-to:message-id:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=ybTTdhEpEIVFhTuoNrSW4dGqq/AXXP3T+w99ohW/x/w=; b=jMWLhFFRW4r/qzPa/niRDkaWjKInU5M+uJm4mLVI+YaIVYYNd6mrYgk58nf0+EIGen 6PlEB5s79z2+YLNhiMXh1HYRqnVIo9qq3x6xE3FgoHxOJXXtNDMdBAwHoQlSL4jP+NaD bUpYQGXYuw92oKU7BzwButf+I6D7MpIwxHClKpAbY0RGI3zADbptehIIXUgpHL5JjRBT XQ6oOK9NFxSMen7viuxdVJOtQURhzV2puXvtn7HdrF4zZN002Nj/C3oyPbkzFolLIcTX RHD9YZO20fzIg33jFFtTAs9bkWzxTxBEDkZsukvOmw3Kb9zmpYiDqAeCYemtkrBTXfnT DrLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782315287; x=1782920087; h=mime-version:subject:references:in-reply-to:message-id:cc:to:from :date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ybTTdhEpEIVFhTuoNrSW4dGqq/AXXP3T+w99ohW/x/w=; b=q3NF/sdI8lpwkz+HwbhtHEor3KxQyXkX77uIxtiWk90htULXwJ1MxG5RT7M4yr7ogO gmWB7MsdZPHwAESfbv+d7Jhu+rerufp82VXdCtxG6AEnBKRM22C6k/mX84NDHZKIWTj2 FiMGBgFheDq6Lw9Keo0+wwwHTN3MxwIfE5845JetKRqdYK8JDPj66TRzNIBaNeJk9/Ii DyevxTSKAnZ/89+7JNyeFEpYbAgLQ+2tpjKX9kzuy0EFI4nckqauBSP/IMxeFuokpFiy 63IORN/lkKKbtwEdguX0jIGUwMWWCj2i4+iuIMFj2e2XBww3VlQJoeIHbA1B0F+Dzqy+ +spg== X-Forwarded-Encrypted: i=1; AHgh+RosyyrSELZJxRO8Z8dfcqjSppaijyU5T4fDatW4qIKSnhSGmAie2z69l40hMSNqZ4dmEqYr8ChiUWjhCubA@postgresql.org X-Gm-Message-State: AOJu0Yz5vnJvcqVe6tK8P8SqI+ggJixr2yLnxQzXDNLcz6L+MSlI5Vr0 owIqc4biwTkPV2WzAPvHVOEMLyWH90vJs10ujuQeNtIzuNHYhWnyFI6H X-Gm-Gg: AfdE7ckT6oPevzTC7roM7S3lBKZsPlJb3K48CRUVvXHVitPE49mzM4WnSSwGp7aAV8z 8vfLAju9nOyiM3xOzsaWoLSHJFbPP4e1CtcehoGBUkBetW2mwmz7150Nl4fpNZUQH72jT+v3VwK sxXYKbGngtyFCoHvA/3O0TTgojN6qqW3aLP2fuKVjiwfkbFnLXMdeaeaQILJqAkafqRxv5Z1tCR xk8DIrGXrOEYBeyiHySkALsuysBvQr5pJMNdan/KqCpIphM51XjNcOVQNdA3u/INeF5Z55mhCZj p/FLY2n51k6OVBRjRrWfT7SQAq+oneJNOvTdESXFiiH3VB/h969x/fNpq3TRbkzshJUqivWUrxe AhElZ3aAV13Llo3RaBZlCOXKHCiC60wwGAlW9ZWhps+8+7YQYe2ZykmEXep4SPBgm+pNRMO14VR +AhOPzA0HEH3cwuVv4Je1R1lrm/KZIw6VIvZu3IYs= X-Received: by 2002:a05:6000:41f7:b0:460:70e6:c7ea with SMTP id ffacd0b85a97d-46ad90f5ca0mr12389715f8f.11.1782315286435; Wed, 24 Jun 2026 08:34:46 -0700 (PDT) Received: from [192.168.1.207] ([109.227.133.120]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-46c1e840f34sm7917212f8f.2.2026.06.24.08.34.45 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 Jun 2026 08:34:45 -0700 (PDT) Date: Wed, 24 Jun 2026 17:34:39 +0200 From: Alexander Nestorov To: Maxime Schoemans Cc: Andrey Borodin , pgsql-hackers mailing list Message-ID: In-Reply-To: <68E31455-03AB-4EAA-A87C-95D95711CC70@enterprisedb.com> References: <36b4f67d-5975-452c-a6b8-b6407f0924ee@Spark> <4B4B0998-7B43-4893-9603-0AF212036690@yandex-team.ru> <18e88767-6c31-402a-887e-37c38b366a6a@Spark> <80ef3b41-1a71-47a4-a320-29e118d7092c@Spark> <68E31455-03AB-4EAA-A87C-95D95711CC70@enterprisedb.com> Subject: Re: [PATCH] btree_gist: add cross-type integer operator support for GiST X-Readdle-Message-ID: aea734bb-fd8d-4642-8972-2a57e5643a03@Spark MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="6a3bf914_34e1218d_5be" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --6a3bf914_34e1218d_5be Content-Type: multipart/alternative; boundary="6a3bf914_2cc921ba_5be" --6a3bf914_2cc921ba_5be Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline Hey Maxime! I squashed your code-related changes on top of 0001, and the test-related changes into 0002. I also moved my test-related changes (Makefile / meson.build) from 0001 to 0002. I squashed the remaining fixes (the InvalidOid and the pgindent; 0005) into 0001 as well, so now we have: - 0001 - code-related changes - 0002 - test-related changes - 0003 - docs changes I also added one more test to 0002 ("Width-sensitivity guard") and added the commit messages. Last but not least, I preserved your changes as co-author in 0001 and 0002. I hope I didn't miss anything! Best regards! --6a3bf914_2cc921ba_5be Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline
Hey Maxime=21

I squashed your code-related changes on top of 0001, and the test-related= changes into 0002.
I also moved my test-related changes (Makefile / meson.build) from 0001 t= o 0002.
I squashed the remaining fixes (the InvalidOid and the pgindent; 0005) in= to 0001 as well, so now we have:

- 0001 - code-related changes
- 0002 - test-related changes
- 0003 - docs changes

I also added one more test to 0002 (=22Width-sensitivity guard=22) and ad= ded the commit messages.
Last but not least, I preserved your changes as co-author in 0001 and 000= 2.

I hope I didn't miss anything=21

Best regards=21
--6a3bf914_2cc921ba_5be-- --6a3bf914_34e1218d_5be Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v5-0001-Implement-cross-type-operators-for-GiST-indexes.patch" RnJvbSAzODAwYmNhM2M2YmUyN2YwMDc3ZTVjYjUyMzJlNTZhZjFiNDBkYzUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgTmVzdG9yb3YgPGFsZXhhbmRlcm5zdEBnbWFp bC5jb20+CkRhdGU6IFRodSwgNCBKdW4gMjAyNiAwMDowNjo1NCArMDIwMApTdWJqZWN0OiBbUEFU Q0hdIEltcGxlbWVudCBjcm9zcy10eXBlIG9wZXJhdG9ycyBmb3IgR2lTVCBpbmRleGVzCgpidHJl ZV9naXN0J3MgR2lTVCBvcGNsYXNzZXMgd2VyZSBzYW1lLXR5cGUgb25seTogdGhlIHBsYW5uZXIg Y291bGQgdXNlCmFuIGluZGV4IG9ubHkgd2hlbiB0aGUgcXVlcnkgdmFsdWUncyB0eXBlIGV4YWN0 bHkgbWF0Y2hlZCB0aGUgaW5kZXhlZApjb2x1bW4uIEEgY29tbW9uIGNhc2UgbGlrZSBhbiBpbnQ4 IGNvbHVtbiBjb21wYXJlZCBhZ2FpbnN0IGFuIGludDQKbGl0ZXJhbCAoV0hFUkUgYmlnaW50X2Nv bCA9IDQyKSB0aGVyZWZvcmUgY291bGQgbm90IHVzZSB0aGUgaW5kZXgKdW5sZXNzIHRoZSBxdWVy eSB3YXMgd3JpdHRlbiB3aXRoIGFuIGV4cGxpY2l0IGNhc3QsIHdoaWNoIGlzIGVhc3kgdG8KZm9y Z2V0IGFuZCB3aGljaCBPUk1zIGFuZCBwYXJhbWV0ZXIgYmluZGluZyByb3V0aW5lbHkgZ2V0IHdy b25nLgoKQWRkIGNyb3NzLXR5cGUgcXVlcnkgb3BlcmF0b3Igc3VwcG9ydCBhbW9uZyB0aGUgaW50 ZWdlciB0cmlvIChpbnQyLAppbnQ0LCBpbnQ4KSB0byB0aGUgZ2lzdF9pbnQyX29wcywgZ2lzdF9p bnQ0X29wcyBhbmQgZ2lzdF9pbnQ4X29wcwpmYW1pbGllcy4gRWFjaCBmYW1pbHkgZ2FpbnMgdGhl IHNpeCBCLXRyZWUgY29tcGFyaXNvbiBzdHJhdGVnaWVzCig8LCA8PSwgPSwgPj0sID4sIDw+KSBh bmQgdGhlIDwtPiBkaXN0YW5jZSBvcGVyYXRvciBhZ2FpbnN0IHRoZSBvdGhlcgp0d28gaW50ZWdl ciB0eXBlcy4KClRoZSBhZGRpdGlvbnMgYXJlIGRlbGliZXJhdGVseSBwZ19hbW9wLW9ubHk6IEdp U1QncyBhbXZhbGlkYXRlIHJlcXVpcmVzCnN1cHBvcnQgZnVuY3Rpb25zIGluIGEgZmFtaWx5IHRv IGhhdmUgbWF0Y2hpbmcgbGVmdC9yaWdodCBpbnB1dCB0eXBlcywKc28gbm8gY3Jvc3MtdHlwZSBj b25zaXN0ZW50L2Rpc3RhbmNlIGZ1bmN0aW9ucyBhcmUgcmVnaXN0ZXJlZC4gSW5zdGVhZAp0aGUg ZXhpc3Rpbmcgc3VwcG9ydCBmdW5jdGlvbnMgZGlzcGF0Y2ggb24gdGhlIG9wZXJhdG9yJ3Mgc3Vi dHlwZSBPSUQuClNhbWUtdHlwZSBxdWVyaWVzIHRha2UgdGhlIG5vcm1hbCBwYXRoOyBjcm9zcy10 eXBlIHF1ZXJpZXMgc2VsZWN0IGEKY29tcGFyaXNvbi9kaXN0YW5jZSBjYWxsYmFjayB0aGF0IHJl YWRzIHRoZSBxdWVyeSBhbmQga2V5IHNpZGVzIGF0IHRoZWlyCm93biB3aWR0aHMsIHNvIG91dC1v Zi1yYW5nZSBxdWVyeSBjb25zdGFudHMgY29tcGFyZSBieSBub3JtYWwgaW50ZWdlcgpzZW1hbnRp Y3Mgd2l0aG91dCBiZWluZyBuYXJyb3dlZCB0byB0aGUgY29sdW1uIHR5cGUuCgpUbyBsZXQgdGhl IGNyb3NzLXR5cGUgcGF0aCByZXVzZSBnYnRfbnVtX2NvbnNpc3RlbnQoKSwgYWxsIGNvbXBhcmlz b24KY2FsbGJhY2tzIGFyZSBub3cgaW52b2tlZCBhcyBmKHF1ZXJ5LCBrZXkpOiBxdWVyeSBvbiB0 aGUgbGVmdCwga2V5IG9uCnRoZSByaWdodDsgb25lIGNhbGwgc2l0ZSB3aG9zZSBvcmRlciBkaWZm ZXJlZCBpcyBub3JtYWxpemVkLiBOb3RlIHRoYXQKdGhlIHN1YnR5cGUgaXMgSW52YWxpZE9pZCBm b3IgZXhjbHVzaW9uLWNvbnN0cmFpbnQgYW5kIHRlbXBvcmFsIFBLL0ZLCmNoZWNrcywgd2hpY2gg aXMgaGFuZGxlZCBhcyB0aGUgc2FtZS10eXBlIGNhc2UuCgpUaGlzIGlzIGV4cG9zZWQgYXMgYnRy ZWVfZ2lzdCB2ZXJzaW9uIDEuMTAuCgpDby1hdXRob3JlZC1ieTogTWF4aW1lIFNjaG9lbWFucyA8 bWF4aW1lLnNjaG9lbWFuc0BlbnRlcnByaXNlZGIuY29tPgotLS0KIGNvbnRyaWIvYnRyZWVfZ2lz dC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAyICstCiBjb250cmliL2J0cmVlX2dpc3Qv YnRyZWVfZ2lzdC0tMS45LS0xLjEwLnNxbCB8IDEzNCArKysrKysrKysrKysrKysrKysrCiBjb250 cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5jb250cm9sICAgICAgICB8ICAgMiArLQogY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX2ludDIuYyAgICAgICAgICAgICAgfCAxMzAgKysrKysrKysrKysr KysrKy0tCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50NC5jICAgICAgICAgICAgICB8IDEz MCArKysrKysrKysrKysrKysrLS0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbnQ4LmMgICAg ICAgICAgICAgIHwgMTMwICsrKysrKysrKysrKysrKystLQogY29udHJpYi9idHJlZV9naXN0L2J0 cmVlX3V0aWxzX251bS5jICAgICAgICAgfCAgMTYgKystCiBjb250cmliL2J0cmVlX2dpc3QvYnRy ZWVfdXRpbHNfbnVtLmggICAgICAgICB8ICAzOSArKysrKy0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9t ZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0ICAgICAgICAgICAgIHwgICAxICsKIDEwIGZpbGVzIGNoYW5nZWQsIDU0NyBpbnNl cnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL2J0 cmVlX2dpc3QvYnRyZWVfZ2lzdC0tMS45LS0xLjEwLnNxbAoKZGlmZiAtLWdpdCBhL2NvbnRyaWIv YnRyZWVfZ2lzdC9NYWtlZmlsZSBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9NYWtlZmlsZQppbmRleCBm YmJiY2E5NTU5OC4uMzgwYzc2NDJmZGUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9N YWtlZmlsZQorKysgYi9jb250cmliL2J0cmVlX2dpc3QvTWFrZWZpbGUKQEAgLTMyLDEzICszMiwx MyBAQCBPQkpTID0gIFwKIEVYVEVOU0lPTiA9IGJ0cmVlX2dpc3QKIERBVEEgPSBidHJlZV9naXN0 LS0xLjAtLTEuMS5zcWwgXAogICAgICAgIGJ0cmVlX2dpc3QtLTEuMS0tMS4yLnNxbCBidHJlZV9n aXN0LS0xLjItLTEuMy5zcWwgXAogICAgICAgIGJ0cmVlX2dpc3QtLTEuMy0tMS40LnNxbCBidHJl ZV9naXN0LS0xLjQtLTEuNS5zcWwgXAogICAgICAgIGJ0cmVlX2dpc3QtLTEuNS0tMS42LnNxbCBi dHJlZV9naXN0LS0xLjYtLTEuNy5zcWwgXAogICAgICAgIGJ0cmVlX2dpc3QtLTEuNy0tMS44LnNx bCBidHJlZV9naXN0LS0xLjgtLTEuOS5zcWwgXAotICAgICAgIGJ0cmVlX2dpc3QtLTEuOS5zcWwK KyAgICAgICBidHJlZV9naXN0LS0xLjkuc3FsIGJ0cmVlX2dpc3QtLTEuOS0tMS4xMC5zcWwKIFBH RklMRURFU0MgPSAiYnRyZWVfZ2lzdCAtIEItdHJlZSBlcXVpdmFsZW50IEdpU1Qgb3BlcmF0b3Ig Y2xhc3NlcyIKIAogUkVHUkVTUyA9IGluaXQgaW50MiBpbnQ0IGludDggZmxvYXQ0IGZsb2F0OCBj YXNoIG9pZCB0aW1lc3RhbXAgdGltZXN0YW1wdHogXAogICAgICAgICB0aW1lIHRpbWV0eiBkYXRl IGludGVydmFsIG1hY2FkZHIgbWFjYWRkcjggaW5ldCBjaWRyIHRleHQgdmFyY2hhciBjaGFyIFwK ICAgICAgICAgYnl0ZWEgYml0IHZhcmJpdCBudW1lcmljIHV1aWQgbm90X2VxdWFsIGVudW0gYm9v bCBwYXJ0aXRpb25zIFwKICAgICAgICAgc3RyYXRudW0gd2l0aG91dF9vdmVybGFwcwpkaWZmIC0t Z2l0IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dpc3QtLTEuOS0tMS4xMC5zcWwgYi9jb250 cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC0tMS45LS0xLjEwLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWNkNTc0NTUwODYKLS0tIC9kZXYvbnVsbAorKysgYi9j b250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC0tMS45LS0xLjEwLnNxbApAQCAtMCwwICsxLDEz NCBAQAorLyogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dpc3QtLTEuOS0tMS4xMC5zcWwgKi8K KworLS0gY29tcGxhaW4gaWYgc2NyaXB0IGlzIHNvdXJjZWQgaW4gcHNxbCwgcmF0aGVyIHRoYW4g dmlhIEFMVEVSIEVYVEVOU0lPTgorXGVjaG8gVXNlICJBTFRFUiBFWFRFTlNJT04gYnRyZWVfZ2lz dCBVUERBVEUgVE8gJzEuMTAnIiB0byBsb2FkIHRoaXMgZmlsZS4gXHF1aXQKKworLS0gQWRkIGNy b3NzLXR5cGUgb3BlcmF0b3Igc3VwcG9ydCBmb3IgdGhlIGludGVnZXIgdHJpbyAoaW50MiwgaW50 NCwgaW50OCkKKy0tIHRvIHRoZSBleGlzdGluZyBHaVNUIG9wZXJhdG9yIGZhbWlsaWVzLgorLS0K Ky0tIEdpU1QncyBhbXZhbGlkYXRlIHJlcXVpcmVzIHN1cHBvcnQgZnVuY3Rpb25zIGluIGEgZmFt aWx5IHRvIGhhdmUgbWF0Y2hpbmcKKy0tIGxlZnQvcmlnaHQgaW5wdXQgdHlwZXMsIHNvIHRoZSBj YXRhbG9nIGFkZGl0aW9ucyBiZWxvdyBhcmUgZGVsaWJlcmF0ZWx5CistLSBwZ19hbW9wLW9ubHku IFRoZSBleGlzdGluZyBjb25zaXN0ZW50L2Rpc3RhbmNlIHN1cHBvcnQgZnVuY3Rpb25zIGRpc3Bh dGNoCistLSBvbiB0aGUgc3VidHlwZSBPSUQ6IHNhbWUtdHlwZSBxdWVyaWVzIHRha2UgdGhlIG5v cm1hbCBwYXRoLCB3aGlsZSBtaXhlZC13aWR0aAorLS0gaW50ZWdlciBxdWVyaWVzIHNlbGVjdCBh IGNyb3NzLXR5cGUgY29tcGFyaXNvbiBjYWxsYmFjayB0aGF0IHJlYWRzIHRoZSBxdWVyeQorLS0g YW5kIGtleSBzaWRlcyBhdCB0aGVpciBvd24gd2lkdGhzIChzZWUgYnRyZWVfaW50ezIsNCw4fS5j KS4KKworQ1JFQVRFIEZVTkNUSU9OIGludDJfaW50NF9kaXN0KGludDIsIGludDQpCitSRVRVUk5T IGludDQKK0FTICdNT0RVTEVfUEFUSE5BTUUnCitMQU5HVUFHRSBDIElNTVVUQUJMRSBTVFJJQ1Qg UEFSQUxMRUwgU0FGRTsKKworQ1JFQVRFIEZVTkNUSU9OIGludDRfaW50Ml9kaXN0KGludDQsIGlu dDIpCitSRVRVUk5TIGludDQKK0FTICdNT0RVTEVfUEFUSE5BTUUnCitMQU5HVUFHRSBDIElNTVVU QUJMRSBTVFJJQ1QgUEFSQUxMRUwgU0FGRTsKKworQ1JFQVRFIEZVTkNUSU9OIGludDJfaW50OF9k aXN0KGludDIsIGludDgpCitSRVRVUk5TIGludDgKK0FTICdNT0RVTEVfUEFUSE5BTUUnCitMQU5H VUFHRSBDIElNTVVUQUJMRSBTVFJJQ1QgUEFSQUxMRUwgU0FGRTsKKworQ1JFQVRFIEZVTkNUSU9O IGludDhfaW50Ml9kaXN0KGludDgsIGludDIpCitSRVRVUk5TIGludDgKK0FTICdNT0RVTEVfUEFU SE5BTUUnCitMQU5HVUFHRSBDIElNTVVUQUJMRSBTVFJJQ1QgUEFSQUxMRUwgU0FGRTsKKworQ1JF QVRFIEZVTkNUSU9OIGludDRfaW50OF9kaXN0KGludDQsIGludDgpCitSRVRVUk5TIGludDgKK0FT ICdNT0RVTEVfUEFUSE5BTUUnCitMQU5HVUFHRSBDIElNTVVUQUJMRSBTVFJJQ1QgUEFSQUxMRUwg U0FGRTsKKworQ1JFQVRFIEZVTkNUSU9OIGludDhfaW50NF9kaXN0KGludDgsIGludDQpCitSRVRV Uk5TIGludDgKK0FTICdNT0RVTEVfUEFUSE5BTUUnCitMQU5HVUFHRSBDIElNTVVUQUJMRSBTVFJJ Q1QgUEFSQUxMRUwgU0FGRTsKKworQ1JFQVRFIE9QRVJBVE9SIDwtPiAoCisJTEVGVEFSRyA9IGlu dDIsCisJUklHSFRBUkcgPSBpbnQ0LAorCVBST0NFRFVSRSA9IGludDJfaW50NF9kaXN0LAorCUNP TU1VVEFUT1IgPSAnPC0+JworKTsKKworQ1JFQVRFIE9QRVJBVE9SIDwtPiAoCisJTEVGVEFSRyA9 IGludDQsCisJUklHSFRBUkcgPSBpbnQyLAorCVBST0NFRFVSRSA9IGludDRfaW50Ml9kaXN0LAor CUNPTU1VVEFUT1IgPSAnPC0+JworKTsKKworQ1JFQVRFIE9QRVJBVE9SIDwtPiAoCisJTEVGVEFS RyA9IGludDIsCisJUklHSFRBUkcgPSBpbnQ4LAorCVBST0NFRFVSRSA9IGludDJfaW50OF9kaXN0 LAorCUNPTU1VVEFUT1IgPSAnPC0+JworKTsKKworQ1JFQVRFIE9QRVJBVE9SIDwtPiAoCisJTEVG VEFSRyA9IGludDgsCisJUklHSFRBUkcgPSBpbnQyLAorCVBST0NFRFVSRSA9IGludDhfaW50Ml9k aXN0LAorCUNPTU1VVEFUT1IgPSAnPC0+JworKTsKKworQ1JFQVRFIE9QRVJBVE9SIDwtPiAoCisJ TEVGVEFSRyA9IGludDQsCisJUklHSFRBUkcgPSBpbnQ4LAorCVBST0NFRFVSRSA9IGludDRfaW50 OF9kaXN0LAorCUNPTU1VVEFUT1IgPSAnPC0+JworKTsKKworQ1JFQVRFIE9QRVJBVE9SIDwtPiAo CisJTEVGVEFSRyA9IGludDgsCisJUklHSFRBUkcgPSBpbnQ0LAorCVBST0NFRFVSRSA9IGludDhf aW50NF9kaXN0LAorCUNPTU1VVEFUT1IgPSAnPC0+JworKTsKKworQUxURVIgT1BFUkFUT1IgRkFN SUxZIGdpc3RfaW50Ml9vcHMgVVNJTkcgZ2lzdCBBREQKKwlPUEVSQVRPUgkxCTwgIChpbnQyLCBp bnQ0KSwKKwlPUEVSQVRPUgkyCTw9IChpbnQyLCBpbnQ0KSwKKwlPUEVSQVRPUgkzCT0gIChpbnQy LCBpbnQ0KSwKKwlPUEVSQVRPUgk0CT49IChpbnQyLCBpbnQ0KSwKKwlPUEVSQVRPUgk1CT4gIChp bnQyLCBpbnQ0KSwKKwlPUEVSQVRPUgk2CTw+IChpbnQyLCBpbnQ0KSwKKwlPUEVSQVRPUgkxNQk8 LT4gKGludDIsIGludDQpIEZPUiBPUkRFUiBCWSBwZ19jYXRhbG9nLmludGVnZXJfb3BzLAorCU9Q RVJBVE9SCTEJPCAgKGludDIsIGludDgpLAorCU9QRVJBVE9SCTIJPD0gKGludDIsIGludDgpLAor CU9QRVJBVE9SCTMJPSAgKGludDIsIGludDgpLAorCU9QRVJBVE9SCTQJPj0gKGludDIsIGludDgp LAorCU9QRVJBVE9SCTUJPiAgKGludDIsIGludDgpLAorCU9QRVJBVE9SCTYJPD4gKGludDIsIGlu dDgpLAorCU9QRVJBVE9SCTE1CTwtPiAoaW50MiwgaW50OCkgRk9SIE9SREVSIEJZIHBnX2NhdGFs b2cuaW50ZWdlcl9vcHM7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2ludDRfb3BzIFVT SU5HIGdpc3QgQURECisJT1BFUkFUT1IJMQk8ICAoaW50NCwgaW50MiksCisJT1BFUkFUT1IJMgk8 PSAoaW50NCwgaW50MiksCisJT1BFUkFUT1IJMwk9ICAoaW50NCwgaW50MiksCisJT1BFUkFUT1IJ NAk+PSAoaW50NCwgaW50MiksCisJT1BFUkFUT1IJNQk+ICAoaW50NCwgaW50MiksCisJT1BFUkFU T1IJNgk8PiAoaW50NCwgaW50MiksCisJT1BFUkFUT1IJMTUJPC0+IChpbnQ0LCBpbnQyKSBGT1Ig T1JERVIgQlkgcGdfY2F0YWxvZy5pbnRlZ2VyX29wcywKKwlPUEVSQVRPUgkxCTwgIChpbnQ0LCBp bnQ4KSwKKwlPUEVSQVRPUgkyCTw9IChpbnQ0LCBpbnQ4KSwKKwlPUEVSQVRPUgkzCT0gIChpbnQ0 LCBpbnQ4KSwKKwlPUEVSQVRPUgk0CT49IChpbnQ0LCBpbnQ4KSwKKwlPUEVSQVRPUgk1CT4gIChp bnQ0LCBpbnQ4KSwKKwlPUEVSQVRPUgk2CTw+IChpbnQ0LCBpbnQ4KSwKKwlPUEVSQVRPUgkxNQk8 LT4gKGludDQsIGludDgpIEZPUiBPUkRFUiBCWSBwZ19jYXRhbG9nLmludGVnZXJfb3BzOworCitB TFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9pbnQ4X29wcyBVU0lORyBnaXN0IEFERAorCU9QRVJB VE9SCTEJPCAgKGludDgsIGludDIpLAorCU9QRVJBVE9SCTIJPD0gKGludDgsIGludDIpLAorCU9Q RVJBVE9SCTMJPSAgKGludDgsIGludDIpLAorCU9QRVJBVE9SCTQJPj0gKGludDgsIGludDIpLAor CU9QRVJBVE9SCTUJPiAgKGludDgsIGludDIpLAorCU9QRVJBVE9SCTYJPD4gKGludDgsIGludDIp LAorCU9QRVJBVE9SCTE1CTwtPiAoaW50OCwgaW50MikgRk9SIE9SREVSIEJZIHBnX2NhdGFsb2cu aW50ZWdlcl9vcHMsCisJT1BFUkFUT1IJMQk8ICAoaW50OCwgaW50NCksCisJT1BFUkFUT1IJMgk8 PSAoaW50OCwgaW50NCksCisJT1BFUkFUT1IJMwk9ICAoaW50OCwgaW50NCksCisJT1BFUkFUT1IJ NAk+PSAoaW50OCwgaW50NCksCisJT1BFUkFUT1IJNQk+ICAoaW50OCwgaW50NCksCisJT1BFUkFU T1IJNgk8PiAoaW50OCwgaW50NCksCisJT1BFUkFUT1IJMTUJPC0+IChpbnQ4LCBpbnQ0KSBGT1Ig T1JERVIgQlkgcGdfY2F0YWxvZy5pbnRlZ2VyX29wczsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRy ZWVfZ2lzdC9idHJlZV9naXN0LmNvbnRyb2wgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lz dC5jb250cm9sCmluZGV4IDY5ZDkzNDFhMGFkLi5lNjA2ZmE2NTUxZCAxMDA2NDQKLS0tIGEvY29u dHJpYi9idHJlZV9naXN0L2J0cmVlX2dpc3QuY29udHJvbAorKysgYi9jb250cmliL2J0cmVlX2dp c3QvYnRyZWVfZ2lzdC5jb250cm9sCkBAIC0xLDYgKzEsNiBAQAogIyBidHJlZV9naXN0IGV4dGVu c2lvbgogY29tbWVudCA9ICdzdXBwb3J0IGZvciBpbmRleGluZyBjb21tb24gZGF0YXR5cGVzIGlu IEdpU1QnCi1kZWZhdWx0X3ZlcnNpb24gPSAnMS45JworZGVmYXVsdF92ZXJzaW9uID0gJzEuMTAn CiBtb2R1bGVfcGF0aG5hbWUgPSAnJGxpYmRpci9idHJlZV9naXN0JwogcmVsb2NhdGFibGUgPSB0 cnVlCiB0cnVzdGVkID0gdHJ1ZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVl X2ludDIuYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbnQyLmMKaW5kZXggY2M0YjMzMTc3 ZTMuLjhkNjQ0NTc5YjIzIDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50 Mi5jCisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbnQyLmMKQEAgLTIsMTIgKzIsMTMg QEAKICAqIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbnQyLmMKICAqLwogI2luY2x1ZGUgInBv c3RncmVzLmgiCiAKICNpbmNsdWRlICJidHJlZV9naXN0LmgiCiAjaW5jbHVkZSAiYnRyZWVfdXRp bHNfbnVtLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY29tbW9u L2ludC5oIgogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogI2luY2x1ZGUgInV0aWxzL3NvcnRzdXBw b3J0LmgiCiAKIHR5cGVkZWYgc3RydWN0IGludDE2a2V5CiB7CkBAIC03MywxMyArNzQsMTIgQEAg Z2J0X2ludDJrZXlfY21wKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIsIEZtZ3JJbmZvICpm bGluZm8pCiBzdGF0aWMgZmxvYXQ4CiBnYnRfaW50Ml9kaXN0KGNvbnN0IHZvaWQgKmEsIGNvbnN0 IHZvaWQgKmIsIEZtZ3JJbmZvICpmbGluZm8pCiB7CiAJcmV0dXJuIEdFVF9GTE9BVF9ESVNUQU5D RShpbnQxNiwgYSwgYik7CiB9CiAKLQogc3RhdGljIGNvbnN0IGdidHJlZV9uaW5mbyB0aW5mbyA9 CiB7CiAJZ2J0X3RfaW50MiwKIAlzaXplb2YoaW50MTYpLAogCTQsCQkJCQkJCS8qIHNpemVvZihn YnRyZWVrZXk0KSAqLwogCWdidF9pbnQyZ3QsCkBAIC04OCwxMiArODgsODAgQEAgc3RhdGljIGNv bnN0IGdidHJlZV9uaW5mbyB0aW5mbyA9CiAJZ2J0X2ludDJsZSwKIAlnYnRfaW50Mmx0LAogCWdi dF9pbnQya2V5X2NtcCwKIAlnYnRfaW50Ml9kaXN0CiB9OwogCisvKgorICogQ3Jvc3MtdHlwZSBH aVNUIGNhbGxiYWNrczogdGhlIGluZGV4ZWQga2V5IGlzIGludDIsIHRoZSBxdWVyeSBpcyBpbnQ0 IG9yCisgKiBpbnQ4LiAgQm90aCByZXVzZSBnYnRfbnVtX2NvbnNpc3RlbnQoKS9nYnRfbnVtX2Rp c3RhbmNlKCkgdmlhIGEgdGluZm8gd2hvc2UKKyAqIGNvbXBhcmlzb24vZGlzdGFuY2UgY2FsbGJh Y2tzIHJlYWQgdGhlIHF1ZXJ5IChsZWZ0KSBhbmQga2V5IChyaWdodCkgc2lkZXMgYXQKKyAqIHRo ZWlyIG93biB3aWR0aHMuICBmX2NtcCBpcyB1bnVzZWQgb24gdGhlc2UgcGF0aHMgYW5kIGxlZnQg TlVMTC4KKyAqLworR0JUX0lOVF9DTVBfRk5TKGdidF9pbnQyX3E0XywgaW50MzIsIGludDE2KQor R0JUX0lOVF9DTVBfRk5TKGdidF9pbnQyX3E4XywgaW50NjQsIGludDE2KQorCitzdGF0aWMgY29u c3QgZ2J0cmVlX25pbmZvIHRpbmZvX3E0ID0KK3sKKwlnYnRfdF9pbnQyLAorCXNpemVvZihpbnQx NiksCisJNCwKKwlnYnRfaW50Ml9xNF9ndCwKKwlnYnRfaW50Ml9xNF9nZSwKKwlnYnRfaW50Ml9x NF9lcSwKKwlnYnRfaW50Ml9xNF9sZSwKKwlnYnRfaW50Ml9xNF9sdCwKKwlOVUxMLAorCWdidF9p bnQyX3E0X2Rpc3QKK307CisKK3N0YXRpYyBjb25zdCBnYnRyZWVfbmluZm8gdGluZm9fcTggPQor eworCWdidF90X2ludDIsCisJc2l6ZW9mKGludDE2KSwKKwk0LAorCWdidF9pbnQyX3E4X2d0LAor CWdidF9pbnQyX3E4X2dlLAorCWdidF9pbnQyX3E4X2VxLAorCWdidF9pbnQyX3E4X2xlLAorCWdi dF9pbnQyX3E4X2x0LAorCU5VTEwsCisJZ2J0X2ludDJfcThfZGlzdAorfTsKKworLyoKKyAqIENy b3NzLXR5cGUgZGlzcGF0Y2ggc2hhcmVkIGJ5IGdidF9pbnQyX2NvbnNpc3RlbnQgYW5kIGdidF9p bnQyX2Rpc3RhbmNlOgorICogc2VsZWN0IHRoZSB0aW5mbyBmb3IgdGhlIHF1ZXJ5IHN1YnR5cGUg YW5kIHJlYWQgdGhlIHF1ZXJ5IHZhbHVlIGF0IGl0cyBvd24KKyAqIHdpZHRoIGludG8gY2FsbGVy LW93bmVkIHN0b3JhZ2UuCisgKi8KK3N0YXRpYyBjb25zdCBnYnRyZWVfbmluZm8gKgorZ2J0X2lu dDJfY3Jvc3N0eXBlKE9pZCBzdWJ0eXBlLCBEYXR1bSBkLCBnYnRfaW50a2V5ICpxLCBjb25zdCB2 b2lkICoqcXApCit7CisJc3dpdGNoIChzdWJ0eXBlKQorCXsKKwkJY2FzZSBJbnZhbGlkT2lkOgkJ Lyogc2FtZS10eXBlOiBleGNsdXNpb24vdGVtcG9yYWwgY29uc3RyYWludAorCQkJCQkJCQkgKiBj aGVja3MgcGFzcyB0aGUgbmF0aXZlIHR5cGUgd2l0aCBzdWJ0eXBlIDAgKi8KKwkJY2FzZSBJTlQy T0lEOgorCQkJcS0+aTIgPSBEYXR1bUdldEludDE2KGQpOworCQkJKnFwID0gJnEtPmkyOworCQkJ cmV0dXJuICZ0aW5mbzsKKwkJY2FzZSBJTlQ0T0lEOgorCQkJcS0+aTQgPSBEYXR1bUdldEludDMy KGQpOworCQkJKnFwID0gJnEtPmk0OworCQkJcmV0dXJuICZ0aW5mb19xNDsKKwkJY2FzZSBJTlQ4 T0lEOgorCQkJcS0+aTggPSBEYXR1bUdldEludDY0KGQpOworCQkJKnFwID0gJnEtPmk4OworCQkJ cmV0dXJuICZ0aW5mb19xODsKKwkJZGVmYXVsdDoKKwkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6 ZWQgc3VidHlwZSAldSBmb3IgYnRyZWVfZ2lzdCBpbnQyIGNyb3NzLXR5cGUgY29tcGFyaXNvbiIs CisJCQkJIHN1YnR5cGUpOworCQkJcmV0dXJuIE5VTEw7CQkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0 ICovCisJfQorfQorCiAKIFBHX0ZVTkNUSU9OX0lORk9fVjEoaW50Ml9kaXN0KTsKIERhdHVtCiBp bnQyX2Rpc3QoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlpbnQxNgkJYSA9IFBHX0dFVEFSR19JTlQx NigwKTsKQEAgLTEwOSwxMiArMTc3LDQ2IEBAIGludDJfZGlzdChQR19GVU5DVElPTl9BUkdTKQog CiAJcmEgPSBhYnMocik7CiAKIAlQR19SRVRVUk5fSU5UMTYocmEpOwogfQogCitQR19GVU5DVElP Tl9JTkZPX1YxKGludDJfaW50NF9kaXN0KTsKK0RhdHVtCitpbnQyX2ludDRfZGlzdChQR19GVU5D VElPTl9BUkdTKQoreworCWludDMyCQlhID0gKGludDMyKSBQR19HRVRBUkdfSU5UMTYoMCk7CisJ aW50MzIJCWIgPSBQR19HRVRBUkdfSU5UMzIoMSk7CisJaW50MzIJCXI7CisKKwlpZiAocGdfc3Vi X3MzMl9vdmVyZmxvdyhhLCBiLCAmcikgfHwKKwkJciA9PSBQR19JTlQzMl9NSU4pCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5H RSksCisJCQkJIGVycm1zZygiaW50ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOworCisJUEdfUkVUVVJO X0lOVDMyKGFicyhyKSk7Cit9CisKK1BHX0ZVTkNUSU9OX0lORk9fVjEoaW50Ml9pbnQ4X2Rpc3Qp OworRGF0dW0KK2ludDJfaW50OF9kaXN0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJaW50NjQJCWEg PSAoaW50NjQpIFBHX0dFVEFSR19JTlQxNigwKTsKKwlpbnQ2NAkJYiA9IFBHX0dFVEFSR19JTlQ2 NCgxKTsKKwlpbnQ2NAkJcjsKKworCWlmIChwZ19zdWJfczY0X292ZXJmbG93KGEsIGIsICZyKSB8 fAorCQlyID09IFBHX0lOVDY0X01JTikKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShF UlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJCQkgZXJybXNnKCJiaWdpbnQg b3V0IG9mIHJhbmdlIikpKTsKKworCVBHX1JFVFVSTl9JTlQ2NChpNjRhYnMocikpOworfQorCiAK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICog R2lTVCBzdXBwb3J0IGZ1bmN0aW9ucwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLwogCiBEYXR1bQpAQCAtMTM0LDQ3ICsyMzYsNTMgQEAgZ2J0X2lu dDJfZmV0Y2goUEdfRlVOQ1RJT05fQVJHUykKIH0KIAogRGF0dW0KIGdidF9pbnQyX2NvbnNpc3Rl bnQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlHSVNURU5UUlkgICplbnRyeSA9IChHSVNURU5UUlkg KikgUEdfR0VUQVJHX1BPSU5URVIoMCk7Ci0JaW50MTYJCXF1ZXJ5ID0gUEdfR0VUQVJHX0lOVDE2 KDEpOworCURhdHVtCQlxdWVyeURhdHVtID0gUEdfR0VUQVJHX0RBVFVNKDEpOwogCVN0cmF0ZWd5 TnVtYmVyIHN0cmF0ZWd5ID0gKFN0cmF0ZWd5TnVtYmVyKSBQR19HRVRBUkdfVUlOVDE2KDIpOwot I2lmZGVmIE5PVF9VU0VECiAJT2lkCQkJc3VidHlwZSA9IFBHX0dFVEFSR19PSUQoMyk7Ci0jZW5k aWYKIAlib29sCSAgICpyZWNoZWNrID0gKGJvb2wgKikgUEdfR0VUQVJHX1BPSU5URVIoNCk7CiAJ aW50MTZLRVkgICAqa2trID0gKGludDE2S0VZICopIERhdHVtR2V0UG9pbnRlcihlbnRyeS0+a2V5 KTsKKwljb25zdCBnYnRyZWVfbmluZm8gKnRpOworCWdidF9pbnRrZXkJcXVlcnk7CisJY29uc3Qg dm9pZCAqcXA7CiAJR0JUX05VTUtFWV9SIGtleTsKIAogCS8qIEFsbCBjYXNlcyBzZXJ2ZWQgYnkg dGhpcyBmdW5jdGlvbiBhcmUgZXhhY3QgKi8KIAkqcmVjaGVjayA9IGZhbHNlOwogCiAJa2V5Lmxv d2VyID0gKEdCVF9OVU1LRVkgKikgJmtray0+bG93ZXI7CiAJa2V5LnVwcGVyID0gKEdCVF9OVU1L RVkgKikgJmtray0+dXBwZXI7CiAKLQlQR19SRVRVUk5fQk9PTChnYnRfbnVtX2NvbnNpc3RlbnQo JmtleSwgJnF1ZXJ5LCAmc3RyYXRlZ3ksCi0JCQkJCQkJCQkgIEdJU1RfTEVBRihlbnRyeSksICZ0 aW5mbywgZmNpbmZvLT5mbGluZm8pKTsKKwl0aSA9IGdidF9pbnQyX2Nyb3NzdHlwZShzdWJ0eXBl LCBxdWVyeURhdHVtLCAmcXVlcnksICZxcCk7CisKKwlQR19SRVRVUk5fQk9PTChnYnRfbnVtX2Nv bnNpc3RlbnQoJmtleSwgcXAsICZzdHJhdGVneSwgR0lTVF9MRUFGKGVudHJ5KSwKKwkJCQkJCQkJ CSAgdGksIGZjaW5mby0+ZmxpbmZvKSk7CiB9CiAKIERhdHVtCiBnYnRfaW50Ml9kaXN0YW5jZShQ R19GVU5DVElPTl9BUkdTKQogewogCUdJU1RFTlRSWSAgKmVudHJ5ID0gKEdJU1RFTlRSWSAqKSBQ R19HRVRBUkdfUE9JTlRFUigwKTsKLQlpbnQxNgkJcXVlcnkgPSBQR19HRVRBUkdfSU5UMTYoMSk7 Ci0jaWZkZWYgTk9UX1VTRUQKKwlEYXR1bQkJcXVlcnlEYXR1bSA9IFBHX0dFVEFSR19EQVRVTSgx KTsKIAlPaWQJCQlzdWJ0eXBlID0gUEdfR0VUQVJHX09JRCgzKTsKLSNlbmRpZgogCWludDE2S0VZ ICAgKmtrayA9IChpbnQxNktFWSAqKSBEYXR1bUdldFBvaW50ZXIoZW50cnktPmtleSk7CisJY29u c3QgZ2J0cmVlX25pbmZvICp0aTsKKwlnYnRfaW50a2V5CXF1ZXJ5OworCWNvbnN0IHZvaWQgKnFw OwogCUdCVF9OVU1LRVlfUiBrZXk7CiAKIAlrZXkubG93ZXIgPSAoR0JUX05VTUtFWSAqKSAma2tr LT5sb3dlcjsKIAlrZXkudXBwZXIgPSAoR0JUX05VTUtFWSAqKSAma2trLT51cHBlcjsKIAotCVBH X1JFVFVSTl9GTE9BVDgoZ2J0X251bV9kaXN0YW5jZSgma2V5LCAmcXVlcnksIEdJU1RfTEVBRihl bnRyeSksCi0JCQkJCQkJCQkgICZ0aW5mbywgZmNpbmZvLT5mbGluZm8pKTsKKwl0aSA9IGdidF9p bnQyX2Nyb3NzdHlwZShzdWJ0eXBlLCBxdWVyeURhdHVtLCAmcXVlcnksICZxcCk7CisKKwlQR19S RVRVUk5fRkxPQVQ4KGdidF9udW1fZGlzdGFuY2UoJmtleSwgcXAsIEdJU1RfTEVBRihlbnRyeSks CisJCQkJCQkJCQkgIHRpLCBmY2luZm8tPmZsaW5mbykpOwogfQogCiBEYXR1bQogZ2J0X2ludDJf dW5pb24oUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlHaXN0RW50cnlWZWN0b3IgKmVudHJ5dmVjID0g KEdpc3RFbnRyeVZlY3RvciAqKSBQR19HRVRBUkdfUE9JTlRFUigwKTsKZGlmZiAtLWdpdCBhL2Nv bnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbnQ0LmMgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVf aW50NC5jCmluZGV4IDQ3NzkwNTc4ZTZiLi4zMjVlZTc4ZjJhYiAxMDA2NDQKLS0tIGEvY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX2ludDQuYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVf aW50NC5jCkBAIC0xLDEyICsxLDEzIEBACiAvKgogICogY29udHJpYi9idHJlZV9naXN0L2J0cmVl X2ludDQuYwogICovCiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKICNpbmNsdWRlICJidHJlZV9naXN0 LmgiCiAjaW5jbHVkZSAiYnRyZWVfdXRpbHNfbnVtLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ190 eXBlLmgiCiAjaW5jbHVkZSAiY29tbW9uL2ludC5oIgogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgog I2luY2x1ZGUgInV0aWxzL3NvcnRzdXBwb3J0LmgiCiAKIHR5cGVkZWYgc3RydWN0IGludDMya2V5 CiB7CkBAIC03MSwxMyArNzIsMTIgQEAgZ2J0X2ludDRrZXlfY21wKGNvbnN0IHZvaWQgKmEsIGNv bnN0IHZvaWQgKmIsIEZtZ3JJbmZvICpmbGluZm8pCiBzdGF0aWMgZmxvYXQ4CiBnYnRfaW50NF9k aXN0KGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIsIEZtZ3JJbmZvICpmbGluZm8pCiB7CiAJ cmV0dXJuIEdFVF9GTE9BVF9ESVNUQU5DRShpbnQzMiwgYSwgYik7CiB9CiAKLQogc3RhdGljIGNv bnN0IGdidHJlZV9uaW5mbyB0aW5mbyA9CiB7CiAJZ2J0X3RfaW50NCwKIAlzaXplb2YoaW50MzIp LAogCTgsCQkJCQkJCS8qIHNpemVvZihnYnRyZWVrZXk4KSAqLwogCWdidF9pbnQ0Z3QsCkBAIC04 NiwxMiArODYsODAgQEAgc3RhdGljIGNvbnN0IGdidHJlZV9uaW5mbyB0aW5mbyA9CiAJZ2J0X2lu dDRsZSwKIAlnYnRfaW50NGx0LAogCWdidF9pbnQ0a2V5X2NtcCwKIAlnYnRfaW50NF9kaXN0CiB9 OwogCisvKgorICogQ3Jvc3MtdHlwZSBHaVNUIGNhbGxiYWNrczogdGhlIGluZGV4ZWQga2V5IGlz IGludDQsIHRoZSBxdWVyeSBpcyBpbnQyIG9yCisgKiBpbnQ4LiAgQm90aCByZXVzZSBnYnRfbnVt X2NvbnNpc3RlbnQoKS9nYnRfbnVtX2Rpc3RhbmNlKCkgdmlhIGEgdGluZm8gd2hvc2UKKyAqIGNv bXBhcmlzb24vZGlzdGFuY2UgY2FsbGJhY2tzIHJlYWQgdGhlIHF1ZXJ5IChsZWZ0KSBhbmQga2V5 IChyaWdodCkgc2lkZXMgYXQKKyAqIHRoZWlyIG93biB3aWR0aHMuICBmX2NtcCBpcyB1bnVzZWQg b24gdGhlc2UgcGF0aHMgYW5kIGxlZnQgTlVMTC4KKyAqLworR0JUX0lOVF9DTVBfRk5TKGdidF9p bnQ0X3EyXywgaW50MTYsIGludDMyKQorR0JUX0lOVF9DTVBfRk5TKGdidF9pbnQ0X3E4XywgaW50 NjQsIGludDMyKQorCitzdGF0aWMgY29uc3QgZ2J0cmVlX25pbmZvIHRpbmZvX3EyID0KK3sKKwln YnRfdF9pbnQ0LAorCXNpemVvZihpbnQzMiksCisJOCwKKwlnYnRfaW50NF9xMl9ndCwKKwlnYnRf aW50NF9xMl9nZSwKKwlnYnRfaW50NF9xMl9lcSwKKwlnYnRfaW50NF9xMl9sZSwKKwlnYnRfaW50 NF9xMl9sdCwKKwlOVUxMLAorCWdidF9pbnQ0X3EyX2Rpc3QKK307CisKK3N0YXRpYyBjb25zdCBn YnRyZWVfbmluZm8gdGluZm9fcTggPQoreworCWdidF90X2ludDQsCisJc2l6ZW9mKGludDMyKSwK Kwk4LAorCWdidF9pbnQ0X3E4X2d0LAorCWdidF9pbnQ0X3E4X2dlLAorCWdidF9pbnQ0X3E4X2Vx LAorCWdidF9pbnQ0X3E4X2xlLAorCWdidF9pbnQ0X3E4X2x0LAorCU5VTEwsCisJZ2J0X2ludDRf cThfZGlzdAorfTsKKworLyoKKyAqIENyb3NzLXR5cGUgZGlzcGF0Y2ggc2hhcmVkIGJ5IGdidF9p bnQ0X2NvbnNpc3RlbnQgYW5kIGdidF9pbnQ0X2Rpc3RhbmNlOgorICogc2VsZWN0IHRoZSB0aW5m byBmb3IgdGhlIHF1ZXJ5IHN1YnR5cGUgYW5kIHJlYWQgdGhlIHF1ZXJ5IHZhbHVlIGF0IGl0cyBv d24KKyAqIHdpZHRoIGludG8gY2FsbGVyLW93bmVkIHN0b3JhZ2UuCisgKi8KK3N0YXRpYyBjb25z dCBnYnRyZWVfbmluZm8gKgorZ2J0X2ludDRfY3Jvc3N0eXBlKE9pZCBzdWJ0eXBlLCBEYXR1bSBk LCBnYnRfaW50a2V5ICpxLCBjb25zdCB2b2lkICoqcXApCit7CisJc3dpdGNoIChzdWJ0eXBlKQor CXsKKwkJY2FzZSBJTlQyT0lEOgorCQkJcS0+aTIgPSBEYXR1bUdldEludDE2KGQpOworCQkJKnFw ID0gJnEtPmkyOworCQkJcmV0dXJuICZ0aW5mb19xMjsKKwkJY2FzZSBJbnZhbGlkT2lkOgkJLyog c2FtZS10eXBlOiBleGNsdXNpb24vdGVtcG9yYWwgY29uc3RyYWludAorCQkJCQkJCQkgKiBjaGVj a3MgcGFzcyB0aGUgbmF0aXZlIHR5cGUgd2l0aCBzdWJ0eXBlIDAgKi8KKwkJY2FzZSBJTlQ0T0lE OgorCQkJcS0+aTQgPSBEYXR1bUdldEludDMyKGQpOworCQkJKnFwID0gJnEtPmk0OworCQkJcmV0 dXJuICZ0aW5mbzsKKwkJY2FzZSBJTlQ4T0lEOgorCQkJcS0+aTggPSBEYXR1bUdldEludDY0KGQp OworCQkJKnFwID0gJnEtPmk4OworCQkJcmV0dXJuICZ0aW5mb19xODsKKwkJZGVmYXVsdDoKKwkJ CWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgc3VidHlwZSAldSBmb3IgYnRyZWVfZ2lzdCBpbnQ0 IGNyb3NzLXR5cGUgY29tcGFyaXNvbiIsCisJCQkJIHN1YnR5cGUpOworCQkJcmV0dXJuIE5VTEw7 CQkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCisJfQorfQorCiAKIFBHX0ZVTkNUSU9OX0lORk9f VjEoaW50NF9kaXN0KTsKIERhdHVtCiBpbnQ0X2Rpc3QoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlp bnQzMgkJYSA9IFBHX0dFVEFSR19JTlQzMigwKTsKQEAgLTEwNywxMiArMTc1LDQ2IEBAIGludDRf ZGlzdChQR19GVU5DVElPTl9BUkdTKQogCiAJcmEgPSBhYnMocik7CiAKIAlQR19SRVRVUk5fSU5U MzIocmEpOwogfQogCitQR19GVU5DVElPTl9JTkZPX1YxKGludDRfaW50Ml9kaXN0KTsKK0RhdHVt CitpbnQ0X2ludDJfZGlzdChQR19GVU5DVElPTl9BUkdTKQoreworCWludDMyCQlhID0gUEdfR0VU QVJHX0lOVDMyKDApOworCWludDMyCQliID0gKGludDMyKSBQR19HRVRBUkdfSU5UMTYoMSk7CisJ aW50MzIJCXI7CisKKwlpZiAocGdfc3ViX3MzMl9vdmVyZmxvdyhhLCBiLCAmcikgfHwKKwkJciA9 PSBQR19JTlQzMl9NSU4pCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9O VU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJIGVycm1zZygiaW50ZWdlciBvdXQgb2Yg cmFuZ2UiKSkpOworCisJUEdfUkVUVVJOX0lOVDMyKGFicyhyKSk7Cit9CisKK1BHX0ZVTkNUSU9O X0lORk9fVjEoaW50NF9pbnQ4X2Rpc3QpOworRGF0dW0KK2ludDRfaW50OF9kaXN0KFBHX0ZVTkNU SU9OX0FSR1MpCit7CisJaW50NjQJCWEgPSAoaW50NjQpIFBHX0dFVEFSR19JTlQzMigwKTsKKwlp bnQ2NAkJYiA9IFBHX0dFVEFSR19JTlQ2NCgxKTsKKwlpbnQ2NAkJcjsKKworCWlmIChwZ19zdWJf czY0X292ZXJmbG93KGEsIGIsICZyKSB8fAorCQlyID09IFBHX0lOVDY0X01JTikKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdF KSwKKwkJCQkgZXJybXNnKCJiaWdpbnQgb3V0IG9mIHJhbmdlIikpKTsKKworCVBHX1JFVFVSTl9J TlQ2NChpNjRhYnMocikpOworfQorCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgogICogR2lTVCBzdXBwb3J0IGZ1bmN0aW9ucwogICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiBEYXR1bQpAQCAt MTMyLDQ3ICsyMzQsNTMgQEAgZ2J0X2ludDRfZmV0Y2goUEdfRlVOQ1RJT05fQVJHUykKIH0KIAog RGF0dW0KIGdidF9pbnQ0X2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlHSVNURU5U UlkgICplbnRyeSA9IChHSVNURU5UUlkgKikgUEdfR0VUQVJHX1BPSU5URVIoMCk7Ci0JaW50MzIJ CXF1ZXJ5ID0gUEdfR0VUQVJHX0lOVDMyKDEpOworCURhdHVtCQlxdWVyeURhdHVtID0gUEdfR0VU QVJHX0RBVFVNKDEpOwogCVN0cmF0ZWd5TnVtYmVyIHN0cmF0ZWd5ID0gKFN0cmF0ZWd5TnVtYmVy KSBQR19HRVRBUkdfVUlOVDE2KDIpOwotI2lmZGVmIE5PVF9VU0VECiAJT2lkCQkJc3VidHlwZSA9 IFBHX0dFVEFSR19PSUQoMyk7Ci0jZW5kaWYKIAlib29sCSAgICpyZWNoZWNrID0gKGJvb2wgKikg UEdfR0VUQVJHX1BPSU5URVIoNCk7CiAJaW50MzJLRVkgICAqa2trID0gKGludDMyS0VZICopIERh dHVtR2V0UG9pbnRlcihlbnRyeS0+a2V5KTsKKwljb25zdCBnYnRyZWVfbmluZm8gKnRpOworCWdi dF9pbnRrZXkJcXVlcnk7CisJY29uc3Qgdm9pZCAqcXA7CiAJR0JUX05VTUtFWV9SIGtleTsKIAog CS8qIEFsbCBjYXNlcyBzZXJ2ZWQgYnkgdGhpcyBmdW5jdGlvbiBhcmUgZXhhY3QgKi8KIAkqcmVj aGVjayA9IGZhbHNlOwogCiAJa2V5Lmxvd2VyID0gKEdCVF9OVU1LRVkgKikgJmtray0+bG93ZXI7 CiAJa2V5LnVwcGVyID0gKEdCVF9OVU1LRVkgKikgJmtray0+dXBwZXI7CiAKLQlQR19SRVRVUk5f Qk9PTChnYnRfbnVtX2NvbnNpc3RlbnQoJmtleSwgJnF1ZXJ5LCAmc3RyYXRlZ3ksCi0JCQkJCQkJ CQkgIEdJU1RfTEVBRihlbnRyeSksICZ0aW5mbywgZmNpbmZvLT5mbGluZm8pKTsKKwl0aSA9IGdi dF9pbnQ0X2Nyb3NzdHlwZShzdWJ0eXBlLCBxdWVyeURhdHVtLCAmcXVlcnksICZxcCk7CisKKwlQ R19SRVRVUk5fQk9PTChnYnRfbnVtX2NvbnNpc3RlbnQoJmtleSwgcXAsICZzdHJhdGVneSwgR0lT VF9MRUFGKGVudHJ5KSwKKwkJCQkJCQkJCSAgdGksIGZjaW5mby0+ZmxpbmZvKSk7CiB9CiAKIERh dHVtCiBnYnRfaW50NF9kaXN0YW5jZShQR19GVU5DVElPTl9BUkdTKQogewogCUdJU1RFTlRSWSAg KmVudHJ5ID0gKEdJU1RFTlRSWSAqKSBQR19HRVRBUkdfUE9JTlRFUigwKTsKLQlpbnQzMgkJcXVl cnkgPSBQR19HRVRBUkdfSU5UMzIoMSk7Ci0jaWZkZWYgTk9UX1VTRUQKKwlEYXR1bQkJcXVlcnlE YXR1bSA9IFBHX0dFVEFSR19EQVRVTSgxKTsKIAlPaWQJCQlzdWJ0eXBlID0gUEdfR0VUQVJHX09J RCgzKTsKLSNlbmRpZgogCWludDMyS0VZICAgKmtrayA9IChpbnQzMktFWSAqKSBEYXR1bUdldFBv aW50ZXIoZW50cnktPmtleSk7CisJY29uc3QgZ2J0cmVlX25pbmZvICp0aTsKKwlnYnRfaW50a2V5 CXF1ZXJ5OworCWNvbnN0IHZvaWQgKnFwOwogCUdCVF9OVU1LRVlfUiBrZXk7CiAKIAlrZXkubG93 ZXIgPSAoR0JUX05VTUtFWSAqKSAma2trLT5sb3dlcjsKIAlrZXkudXBwZXIgPSAoR0JUX05VTUtF WSAqKSAma2trLT51cHBlcjsKIAotCVBHX1JFVFVSTl9GTE9BVDgoZ2J0X251bV9kaXN0YW5jZSgm a2V5LCAmcXVlcnksIEdJU1RfTEVBRihlbnRyeSksCi0JCQkJCQkJCQkgICZ0aW5mbywgZmNpbmZv LT5mbGluZm8pKTsKKwl0aSA9IGdidF9pbnQ0X2Nyb3NzdHlwZShzdWJ0eXBlLCBxdWVyeURhdHVt LCAmcXVlcnksICZxcCk7CisKKwlQR19SRVRVUk5fRkxPQVQ4KGdidF9udW1fZGlzdGFuY2UoJmtl eSwgcXAsIEdJU1RfTEVBRihlbnRyeSksCisJCQkJCQkJCQkgIHRpLCBmY2luZm8tPmZsaW5mbykp OwogfQogCiBEYXR1bQogZ2J0X2ludDRfdW5pb24oUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlHaXN0 RW50cnlWZWN0b3IgKmVudHJ5dmVjID0gKEdpc3RFbnRyeVZlY3RvciAqKSBQR19HRVRBUkdfUE9J TlRFUigwKTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbnQ4LmMgYi9j b250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50OC5jCmluZGV4IGY0ODEyMmM4ZDg0Li42MmMwNjM0 NWU4NyAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2ludDguYworKysgYi9j b250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50OC5jCkBAIC0yLDEyICsyLDEzIEBACiAgKiBjb250 cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50OC5jCiAgKi8KICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgog CiAjaW5jbHVkZSAiYnRyZWVfZ2lzdC5oIgogI2luY2x1ZGUgImJ0cmVlX3V0aWxzX251bS5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKICNp bmNsdWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zb3J0c3VwcG9ydC5oIgogCiB0 eXBlZGVmIHN0cnVjdCBpbnQ2NGtleQogewpAQCAtNzMsMTMgKzc0LDEyIEBAIGdidF9pbnQ4a2V5 X2NtcChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBGbWdySW5mbyAqZmxpbmZvKQogc3Rh dGljIGZsb2F0OAogZ2J0X2ludDhfZGlzdChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBG bWdySW5mbyAqZmxpbmZvKQogewogCXJldHVybiBHRVRfRkxPQVRfRElTVEFOQ0UoaW50NjQsIGEs IGIpOwogfQogCi0KIHN0YXRpYyBjb25zdCBnYnRyZWVfbmluZm8gdGluZm8gPQogewogCWdidF90 X2ludDgsCiAJc2l6ZW9mKGludDY0KSwKIAkxNiwJCQkJCQkJLyogc2l6ZW9mKGdidHJlZWtleTE2 KSAqLwogCWdidF9pbnQ4Z3QsCkBAIC04OCwxMiArODgsODAgQEAgc3RhdGljIGNvbnN0IGdidHJl ZV9uaW5mbyB0aW5mbyA9CiAJZ2J0X2ludDhsZSwKIAlnYnRfaW50OGx0LAogCWdidF9pbnQ4a2V5 X2NtcCwKIAlnYnRfaW50OF9kaXN0CiB9OwogCisvKgorICogQ3Jvc3MtdHlwZSBHaVNUIGNhbGxi YWNrczogdGhlIGluZGV4ZWQga2V5IGlzIGludDgsIHRoZSBxdWVyeSBpcyBpbnQyIG9yCisgKiBp bnQ0LiAgQm90aCByZXVzZSBnYnRfbnVtX2NvbnNpc3RlbnQoKS9nYnRfbnVtX2Rpc3RhbmNlKCkg dmlhIGEgdGluZm8gd2hvc2UKKyAqIGNvbXBhcmlzb24vZGlzdGFuY2UgY2FsbGJhY2tzIHJlYWQg dGhlIHF1ZXJ5IChsZWZ0KSBhbmQga2V5IChyaWdodCkgc2lkZXMgYXQKKyAqIHRoZWlyIG93biB3 aWR0aHMuICBmX2NtcCBpcyB1bnVzZWQgb24gdGhlc2UgcGF0aHMgYW5kIGxlZnQgTlVMTC4KKyAq LworR0JUX0lOVF9DTVBfRk5TKGdidF9pbnQ4X3EyXywgaW50MTYsIGludDY0KQorR0JUX0lOVF9D TVBfRk5TKGdidF9pbnQ4X3E0XywgaW50MzIsIGludDY0KQorCitzdGF0aWMgY29uc3QgZ2J0cmVl X25pbmZvIHRpbmZvX3EyID0KK3sKKwlnYnRfdF9pbnQ4LAorCXNpemVvZihpbnQ2NCksCisJMTYs CisJZ2J0X2ludDhfcTJfZ3QsCisJZ2J0X2ludDhfcTJfZ2UsCisJZ2J0X2ludDhfcTJfZXEsCisJ Z2J0X2ludDhfcTJfbGUsCisJZ2J0X2ludDhfcTJfbHQsCisJTlVMTCwKKwlnYnRfaW50OF9xMl9k aXN0Cit9OworCitzdGF0aWMgY29uc3QgZ2J0cmVlX25pbmZvIHRpbmZvX3E0ID0KK3sKKwlnYnRf dF9pbnQ4LAorCXNpemVvZihpbnQ2NCksCisJMTYsCisJZ2J0X2ludDhfcTRfZ3QsCisJZ2J0X2lu dDhfcTRfZ2UsCisJZ2J0X2ludDhfcTRfZXEsCisJZ2J0X2ludDhfcTRfbGUsCisJZ2J0X2ludDhf cTRfbHQsCisJTlVMTCwKKwlnYnRfaW50OF9xNF9kaXN0Cit9OworCisvKgorICogQ3Jvc3MtdHlw ZSBkaXNwYXRjaCBzaGFyZWQgYnkgZ2J0X2ludDhfY29uc2lzdGVudCBhbmQgZ2J0X2ludDhfZGlz dGFuY2U6CisgKiBzZWxlY3QgdGhlIHRpbmZvIGZvciB0aGUgcXVlcnkgc3VidHlwZSBhbmQgcmVh ZCB0aGUgcXVlcnkgdmFsdWUgYXQgaXRzIG93bgorICogd2lkdGggaW50byBjYWxsZXItb3duZWQg c3RvcmFnZS4KKyAqLworc3RhdGljIGNvbnN0IGdidHJlZV9uaW5mbyAqCitnYnRfaW50OF9jcm9z c3R5cGUoT2lkIHN1YnR5cGUsIERhdHVtIGQsIGdidF9pbnRrZXkgKnEsIGNvbnN0IHZvaWQgKipx cCkKK3sKKwlzd2l0Y2ggKHN1YnR5cGUpCisJeworCQljYXNlIElOVDJPSUQ6CisJCQlxLT5pMiA9 IERhdHVtR2V0SW50MTYoZCk7CisJCQkqcXAgPSAmcS0+aTI7CisJCQlyZXR1cm4gJnRpbmZvX3Ey OworCQljYXNlIElOVDRPSUQ6CisJCQlxLT5pNCA9IERhdHVtR2V0SW50MzIoZCk7CisJCQkqcXAg PSAmcS0+aTQ7CisJCQlyZXR1cm4gJnRpbmZvX3E0OworCQljYXNlIEludmFsaWRPaWQ6CQkvKiBz YW1lLXR5cGU6IGV4Y2x1c2lvbi90ZW1wb3JhbCBjb25zdHJhaW50CisJCQkJCQkJCSAqIGNoZWNr cyBwYXNzIHRoZSBuYXRpdmUgdHlwZSB3aXRoIHN1YnR5cGUgMCAqLworCQljYXNlIElOVDhPSUQ6 CisJCQlxLT5pOCA9IERhdHVtR2V0SW50NjQoZCk7CisJCQkqcXAgPSAmcS0+aTg7CisJCQlyZXR1 cm4gJnRpbmZvOworCQlkZWZhdWx0OgorCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBzdWJ0 eXBlICV1IGZvciBidHJlZV9naXN0IGludDggY3Jvc3MtdHlwZSBjb21wYXJpc29uIiwKKwkJCQkg c3VidHlwZSk7CisJCQlyZXR1cm4gTlVMTDsJCS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KKwl9 Cit9CisKIAogUEdfRlVOQ1RJT05fSU5GT19WMShpbnQ4X2Rpc3QpOwogRGF0dW0KIGludDhfZGlz dChQR19GVU5DVElPTl9BUkdTKQogewogCWludDY0CQlhID0gUEdfR0VUQVJHX0lOVDY0KDApOwpA QCAtMTA5LDEyICsxNzcsNDYgQEAgaW50OF9kaXN0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyYSA9 IGk2NGFicyhyKTsKIAogCVBHX1JFVFVSTl9JTlQ2NChyYSk7CiB9CiAKK1BHX0ZVTkNUSU9OX0lO Rk9fVjEoaW50OF9pbnQyX2Rpc3QpOworRGF0dW0KK2ludDhfaW50Ml9kaXN0KFBHX0ZVTkNUSU9O X0FSR1MpCit7CisJaW50NjQJCWEgPSBQR19HRVRBUkdfSU5UNjQoMCk7CisJaW50NjQJCWIgPSAo aW50NjQpIFBHX0dFVEFSR19JTlQxNigxKTsKKwlpbnQ2NAkJcjsKKworCWlmIChwZ19zdWJfczY0 X292ZXJmbG93KGEsIGIsICZyKSB8fAorCQlyID09IFBHX0lOVDY0X01JTikKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwK KwkJCQkgZXJybXNnKCJiaWdpbnQgb3V0IG9mIHJhbmdlIikpKTsKKworCVBHX1JFVFVSTl9JTlQ2 NChpNjRhYnMocikpOworfQorCitQR19GVU5DVElPTl9JTkZPX1YxKGludDhfaW50NF9kaXN0KTsK K0RhdHVtCitpbnQ4X2ludDRfZGlzdChQR19GVU5DVElPTl9BUkdTKQoreworCWludDY0CQlhID0g UEdfR0VUQVJHX0lOVDY0KDApOworCWludDY0CQliID0gKGludDY0KSBQR19HRVRBUkdfSU5UMzIo MSk7CisJaW50NjQJCXI7CisKKwlpZiAocGdfc3ViX3M2NF9vdmVyZmxvdyhhLCBiLCAmcikgfHwK KwkJciA9PSBQR19JTlQ2NF9NSU4pCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJS Q09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJIGVycm1zZygiYmlnaW50IG91 dCBvZiByYW5nZSIpKSk7CisKKwlQR19SRVRVUk5fSU5UNjQoaTY0YWJzKHIpKTsKK30KKwogCiAv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEdp U1Qgc3VwcG9ydCBmdW5jdGlvbnMKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KIAogRGF0dW0KQEAgLTEzNCw0NyArMjM2LDUzIEBAIGdidF9pbnQ4 X2ZldGNoKFBHX0ZVTkNUSU9OX0FSR1MpCiB9CiAKIERhdHVtCiBnYnRfaW50OF9jb25zaXN0ZW50 KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJR0lTVEVOVFJZICAqZW50cnkgPSAoR0lTVEVOVFJZICop IFBHX0dFVEFSR19QT0lOVEVSKDApOwotCWludDY0CQlxdWVyeSA9IFBHX0dFVEFSR19JTlQ2NCgx KTsKKwlEYXR1bQkJcXVlcnlEYXR1bSA9IFBHX0dFVEFSR19EQVRVTSgxKTsKIAlTdHJhdGVneU51 bWJlciBzdHJhdGVneSA9IChTdHJhdGVneU51bWJlcikgUEdfR0VUQVJHX1VJTlQxNigyKTsKLSNp ZmRlZiBOT1RfVVNFRAogCU9pZAkJCXN1YnR5cGUgPSBQR19HRVRBUkdfT0lEKDMpOwotI2VuZGlm CiAJYm9vbAkgICAqcmVjaGVjayA9IChib29sICopIFBHX0dFVEFSR19QT0lOVEVSKDQpOwogCWlu dDY0S0VZICAgKmtrayA9IChpbnQ2NEtFWSAqKSBEYXR1bUdldFBvaW50ZXIoZW50cnktPmtleSk7 CisJY29uc3QgZ2J0cmVlX25pbmZvICp0aTsKKwlnYnRfaW50a2V5CXF1ZXJ5OworCWNvbnN0IHZv aWQgKnFwOwogCUdCVF9OVU1LRVlfUiBrZXk7CiAKIAkvKiBBbGwgY2FzZXMgc2VydmVkIGJ5IHRo aXMgZnVuY3Rpb24gYXJlIGV4YWN0ICovCiAJKnJlY2hlY2sgPSBmYWxzZTsKIAogCWtleS5sb3dl ciA9IChHQlRfTlVNS0VZICopICZra2stPmxvd2VyOwogCWtleS51cHBlciA9IChHQlRfTlVNS0VZ ICopICZra2stPnVwcGVyOwogCi0JUEdfUkVUVVJOX0JPT0woZ2J0X251bV9jb25zaXN0ZW50KCZr ZXksICZxdWVyeSwgJnN0cmF0ZWd5LAotCQkJCQkJCQkJICBHSVNUX0xFQUYoZW50cnkpLCAmdGlu Zm8sIGZjaW5mby0+ZmxpbmZvKSk7CisJdGkgPSBnYnRfaW50OF9jcm9zc3R5cGUoc3VidHlwZSwg cXVlcnlEYXR1bSwgJnF1ZXJ5LCAmcXApOworCisJUEdfUkVUVVJOX0JPT0woZ2J0X251bV9jb25z aXN0ZW50KCZrZXksIHFwLCAmc3RyYXRlZ3ksIEdJU1RfTEVBRihlbnRyeSksCisJCQkJCQkJCQkg IHRpLCBmY2luZm8tPmZsaW5mbykpOwogfQogCiBEYXR1bQogZ2J0X2ludDhfZGlzdGFuY2UoUEdf RlVOQ1RJT05fQVJHUykKIHsKIAlHSVNURU5UUlkgICplbnRyeSA9IChHSVNURU5UUlkgKikgUEdf R0VUQVJHX1BPSU5URVIoMCk7Ci0JaW50NjQJCXF1ZXJ5ID0gUEdfR0VUQVJHX0lOVDY0KDEpOwot I2lmZGVmIE5PVF9VU0VECisJRGF0dW0JCXF1ZXJ5RGF0dW0gPSBQR19HRVRBUkdfREFUVU0oMSk7 CiAJT2lkCQkJc3VidHlwZSA9IFBHX0dFVEFSR19PSUQoMyk7Ci0jZW5kaWYKIAlpbnQ2NEtFWSAg ICpra2sgPSAoaW50NjRLRVkgKikgRGF0dW1HZXRQb2ludGVyKGVudHJ5LT5rZXkpOworCWNvbnN0 IGdidHJlZV9uaW5mbyAqdGk7CisJZ2J0X2ludGtleQlxdWVyeTsKKwljb25zdCB2b2lkICpxcDsK IAlHQlRfTlVNS0VZX1Iga2V5OwogCiAJa2V5Lmxvd2VyID0gKEdCVF9OVU1LRVkgKikgJmtray0+ bG93ZXI7CiAJa2V5LnVwcGVyID0gKEdCVF9OVU1LRVkgKikgJmtray0+dXBwZXI7CiAKLQlQR19S RVRVUk5fRkxPQVQ4KGdidF9udW1fZGlzdGFuY2UoJmtleSwgJnF1ZXJ5LCBHSVNUX0xFQUYoZW50 cnkpLAotCQkJCQkJCQkJICAmdGluZm8sIGZjaW5mby0+ZmxpbmZvKSk7CisJdGkgPSBnYnRfaW50 OF9jcm9zc3R5cGUoc3VidHlwZSwgcXVlcnlEYXR1bSwgJnF1ZXJ5LCAmcXApOworCisJUEdfUkVU VVJOX0ZMT0FUOChnYnRfbnVtX2Rpc3RhbmNlKCZrZXksIHFwLCBHSVNUX0xFQUYoZW50cnkpLAor CQkJCQkJCQkJICB0aSwgZmNpbmZvLT5mbGluZm8pKTsKIH0KIAogRGF0dW0KIGdidF9pbnQ4X3Vu aW9uKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJR2lzdEVudHJ5VmVjdG9yICplbnRyeXZlYyA9IChH aXN0RW50cnlWZWN0b3IgKikgUEdfR0VUQVJHX1BPSU5URVIoMCk7CmRpZmYgLS1naXQgYS9jb250 cmliL2J0cmVlX2dpc3QvYnRyZWVfdXRpbHNfbnVtLmMgYi9jb250cmliL2J0cmVlX2dpc3QvYnRy ZWVfdXRpbHNfbnVtLmMKaW5kZXggM2FmZmU0YzJjNDYuLjBkNmQ1NzgwNjJhIDEwMDY0NAotLS0g YS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfdXRpbHNfbnVtLmMKKysrIGIvY29udHJpYi9idHJl ZV9naXN0L2J0cmVlX3V0aWxzX251bS5jCkBAIC0yNjYsMTIgKzI2NiwxOCBAQCBnYnRfbnVtX2Nv bnNpc3RlbnQoY29uc3QgR0JUX05VTUtFWV9SICprZXksCiAJCQkJICAgYm9vbCBpc19sZWFmLAog CQkJCSAgIGNvbnN0IGdidHJlZV9uaW5mbyAqdGluZm8sCiAJCQkJICAgRm1nckluZm8gKmZsaW5m bykKIHsKIAlib29sCQlyZXR2YWw7CiAKKwkvKgorCSAqIEV2ZXJ5IGNvbXBhcmlzb24gY2FsbGJh Y2sgaXMgaW52b2tlZCBhcyBmX3h4KHF1ZXJ5LCBrZXkpOiB0aGUgcXVlcnkKKwkgKiB2YWx1ZSBp cyBhbHdheXMgdGhlIGxlZnQgYXJndW1lbnQgYW5kIHRoZSBpbmRleGVkIGtleSBib3VuZCB0aGUg cmlnaHQuCisJICogVGhlIGludGVnZXIgb3BjbGFzc2VzIHJlbHkgb24gdGhpcyBmaXhlZCBvcmRl ciBzbyB0aGVpciBjcm9zcy10eXBlCisJICogY2FsbGJhY2tzIGNhbiByZWFkIGVhY2ggc2lkZSBh dCBpdHMgb3duIHdpZHRoLgorCSAqLwogCXN3aXRjaCAoKnN0cmF0ZWd5KQogCXsKIAkJY2FzZSBC VExlc3NFcXVhbFN0cmF0ZWd5TnVtYmVyOgogCQkJcmV0dmFsID0gdGluZm8tPmZfZ2UocXVlcnks IGtleS0+bG93ZXIsIGZsaW5mbyk7CiAJCQlicmVhazsKIAkJY2FzZSBCVExlc3NTdHJhdGVneU51 bWJlcjoKQEAgLTI4MSwxMyArMjg3LDEzIEBAIGdidF9udW1fY29uc2lzdGVudChjb25zdCBHQlRf TlVNS0VZX1IgKmtleSwKIAkJCQlyZXR2YWwgPSB0aW5mby0+Zl9nZShxdWVyeSwga2V5LT5sb3dl ciwgZmxpbmZvKTsKIAkJCWJyZWFrOwogCQljYXNlIEJURXF1YWxTdHJhdGVneU51bWJlcjoKIAkJ CWlmIChpc19sZWFmKQogCQkJCXJldHZhbCA9IHRpbmZvLT5mX2VxKHF1ZXJ5LCBrZXktPmxvd2Vy LCBmbGluZm8pOwogCQkJZWxzZQotCQkJCXJldHZhbCA9ICh0aW5mby0+Zl9sZShrZXktPmxvd2Vy LCBxdWVyeSwgZmxpbmZvKSAmJgorCQkJCXJldHZhbCA9ICh0aW5mby0+Zl9nZShxdWVyeSwga2V5 LT5sb3dlciwgZmxpbmZvKSAmJgogCQkJCQkJICB0aW5mby0+Zl9sZShxdWVyeSwga2V5LT51cHBl ciwgZmxpbmZvKSk7CiAJCQlicmVhazsKIAkJY2FzZSBCVEdyZWF0ZXJTdHJhdGVneU51bWJlcjoK IAkJCWlmIChpc19sZWFmKQogCQkJCXJldHZhbCA9IHRpbmZvLT5mX2x0KHF1ZXJ5LCBrZXktPnVw cGVyLCBmbGluZm8pOwogCQkJZWxzZQpAQCAtMzA0LDEzICszMTAsMTIgQEAgZ2J0X251bV9jb25z aXN0ZW50KGNvbnN0IEdCVF9OVU1LRVlfUiAqa2V5LAogCQkJcmV0dmFsID0gZmFsc2U7CiAJfQog CiAJcmV0dXJuIHJldHZhbDsKIH0KIAotCiAvKgogICogVGhlIEdpU1QgZGlzdGFuY2UgbWV0aG9k IChmb3IgS05OLUdpc3QpCiAgKi8KIAogZmxvYXQ4CiBnYnRfbnVtX2Rpc3RhbmNlKGNvbnN0IEdC VF9OVU1LRVlfUiAqa2V5LApAQCAtMzIxLDEyICszMjYsMTkgQEAgZ2J0X251bV9kaXN0YW5jZShj b25zdCBHQlRfTlVNS0VZX1IgKmtleSwKIHsKIAlmbG9hdDgJCXJldHZhbDsKIAogCWlmICh0aW5m by0+Zl9kaXN0ID09IE5VTEwpCiAJCWVsb2coRVJST1IsICJLTk4gc2VhcmNoIGlzIG5vdCBzdXBw b3J0ZWQgZm9yIGJ0cmVlX2dpc3QgdHlwZSAlZCIsCiAJCQkgKGludCkgdGluZm8tPnQpOworCisJ LyoKKwkgKiBBcyBpbiBnYnRfbnVtX2NvbnNpc3RlbnQoKSwgZXZlcnkgY2FsbGJhY2sgaXMgaW52 b2tlZCBhcyBmX3h4KHF1ZXJ5LCBrZXkpOgorCSAqIHRoZSBxdWVyeSB2YWx1ZSBpcyB0aGUgbGVm dCBhcmd1bWVudCBhbmQgdGhlIGluZGV4ZWQga2V5IGJvdW5kIHRoZSByaWdodC4KKwkgKiBUaGUg aW50ZWdlciBvcGNsYXNzZXMnIGNyb3NzLXR5cGUgY2FsbGJhY2tzIHJlYWQgZWFjaCBzaWRlIGF0 IGl0cyBvd24KKwkgKiB3aWR0aCwgc28ga2VlcCB0aGlzIGFyZ3VtZW50IG9yZGVyIGlmIHlvdSBl dmVyIHRvdWNoIHRoZSBjYWxscyBiZWxvdy4KKwkgKi8KIAlpZiAodGluZm8tPmZfbGUocXVlcnks IGtleS0+bG93ZXIsIGZsaW5mbykpCiAJCXJldHZhbCA9IHRpbmZvLT5mX2Rpc3QocXVlcnksIGtl eS0+bG93ZXIsIGZsaW5mbyk7CiAJZWxzZSBpZiAodGluZm8tPmZfZ2UocXVlcnksIGtleS0+dXBw ZXIsIGZsaW5mbykpCiAJCXJldHZhbCA9IHRpbmZvLT5mX2Rpc3QocXVlcnksIGtleS0+dXBwZXIs IGZsaW5mbyk7CiAJZWxzZQogCQlyZXR2YWwgPSAwLjA7CmRpZmYgLS1naXQgYS9jb250cmliL2J0 cmVlX2dpc3QvYnRyZWVfdXRpbHNfbnVtLmggYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfdXRp bHNfbnVtLmgKaW5kZXggNTNlNDc3ZDhiMWUuLjIxN2IzNjJjMTY5IDEwMDY0NAotLS0gYS9jb250 cmliL2J0cmVlX2dpc3QvYnRyZWVfdXRpbHNfbnVtLmgKKysrIGIvY29udHJpYi9idHJlZV9naXN0 L2J0cmVlX3V0aWxzX251bS5oCkBAIC0yNCwxMiArMjQsMjQgQEAgdHlwZWRlZiBzdHJ1Y3QKIHR5 cGVkZWYgc3RydWN0CiB7CiAJaW50CQkJaTsKIAlHQlRfTlVNS0VZICp0OwogfSBOc3J0OwogCisv KgorICogUXVlcnktdmFsdWUgc3RvcmFnZSBmb3IgdGhlIGludGVnZXIgb3BjbGFzc2VzJyBjcm9z cy10eXBlIHBhdGguICBUaGUgY2FsbGVyCisgKiBvd25zIG9uZSBvZiB0aGVzZSBhbmQgcGFzc2Vz IGl0cyBhZGRyZXNzIHRvIHRoZSBwZXItdHlwZSBjcm9zcy10eXBlIGhlbHBlciwKKyAqIHdoaWNo IGZpbGxzIHRoZSByaWdodCB3aWR0aCBhbmQgcG9pbnRzIHRoZSBxdWVyeSBwb2ludGVyIGF0IGl0 LgorICovCit0eXBlZGVmIHVuaW9uCit7CisJaW50MTYJCWkyOworCWludDMyCQlpNDsKKwlpbnQ2 NAkJaTg7Cit9IGdidF9pbnRrZXk7CisKIAogLyogdHlwZSBkZXNjcmlwdGlvbiAqLwogCiB0eXBl ZGVmIHN0cnVjdAogewogCkBAIC04MywxMyArOTUsMzggQEAgdHlwZWRlZiBzdHJ1Y3QKICAqLwog I2RlZmluZSBJTlRFUlZBTF9UT19TRUMoaXZwKSBcCiAJKCgoZG91YmxlKSAoaXZwKS0+dGltZSkg LyAoKGRvdWJsZSkgVVNFQ1NfUEVSX1NFQykgKyBcCiAJIChpdnApLT5kYXkgKiAoMjQuMCAqIFNF Q1NfUEVSX0hPVVIpICsgXAogCSAoaXZwKS0+bW9udGggKiAoMzAuMCAqIFNFQ1NfUEVSX0RBWSkp CiAKLSNkZWZpbmUgR0VUX0ZMT0FUX0RJU1RBTkNFKHQsIGFyZzEsIGFyZzIpCWZhYnMoICgoZmxv YXQ4KSAqKChjb25zdCB0ICopIChhcmcxKSkpIC0gKChmbG9hdDgpICooKGNvbnN0IHQgKikgKGFy ZzIpKSkgKQorI2RlZmluZSBHRVRfRkxPQVRfRElTVEFOQ0UyKHQxLCB0MiwgYXJnMSwgYXJnMikJ ZmFicyggKChmbG9hdDgpICooKGNvbnN0IHQxICopIChhcmcxKSkpIC0gKChmbG9hdDgpICooKGNv bnN0IHQyICopIChhcmcyKSkpICkKKyNkZWZpbmUgR0VUX0ZMT0FUX0RJU1RBTkNFKHQsIGFyZzEs IGFyZzIpCUdFVF9GTE9BVF9ESVNUQU5DRTIodCwgdCwgKGFyZzEpLCAoYXJnMikpCisKKy8qCisg KiBHZW5lcmF0ZSB0aGUgY29tcGFyaXNvbi9kaXN0YW5jZSBjYWxsYmFja3MgZm9yIGEgZ2J0cmVl X25pbmZvIHdob3NlIHF1ZXJ5CisgKiBhbmQga2V5IHNpZGVzIG1heSBiZSBkaWZmZXJlbnQgKGlu dGVnZXIpIHR5cGVzLiAgZ2J0X251bV9jb25zaXN0ZW50KCkgYW5kCisgKiBnYnRfbnVtX2Rpc3Rh bmNlKCkgYWx3YXlzIGludm9rZSB0aGUgY2FsbGJhY2tzIGFzIGZfeHgocXVlcnksIGtleSksIHNv IHRoZQorICogZmlyc3QgYXJndW1lbnQgaGFzIHRoZSBxdWVyeSB0eXBlIFFUICh0aGUgb3BlcmF0 b3IncyByaWdodC1oYW5kIHN1YnR5cGUpIGFuZAorICogdGhlIHNlY29uZCBoYXMgdGhlIGluZGV4 ZWQga2V5IHR5cGUgS1QuICBJbnRlZ2VyIHdpZGVuaW5nIGlzIHZhbHVlLXByZXNlcnZpbmcsCisg KiBzbyB0aGUgY29tcGFyaXNvbnMgbmVlZCBubyBleHBsaWNpdCBjYXN0OyB0aGUgZGlzdGFuY2Ug d2lkZW5zIHRvIGZsb2F0OCB0bworICogYXZvaWQgb3ZlcmZsb3cgaW4gdGhlIHN1YnRyYWN0aW9u LiAgSW52b2tlZCB3aXRoIFFUID09IEtUIHRoaXMgYWxzbyBnZW5lcmF0ZXMKKyAqIHRoZSBvcmRp bmFyeSBzYW1lLXR5cGUgY2FsbGJhY2tzLgorICovCisjZGVmaW5lIEdCVF9JTlRfQ01QX0ZOUyhw cmVmaXgsIFFULCBLVCkgXAorc3RhdGljIGJvb2wgcHJlZml4IyNndChjb25zdCB2b2lkICphLCBj b25zdCB2b2lkICpiLCBGbWdySW5mbyAqZmxpbmZvKSBcCit7IHJldHVybiAqKChjb25zdCBRVCAq KSBhKSA+ICooKGNvbnN0IEtUICopIGIpOyB9IFwKK3N0YXRpYyBib29sIHByZWZpeCMjZ2UoY29u c3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYiwgRm1nckluZm8gKmZsaW5mbykgXAoreyByZXR1cm4g KigoY29uc3QgUVQgKikgYSkgPj0gKigoY29uc3QgS1QgKikgYik7IH0gXAorc3RhdGljIGJvb2wg cHJlZml4IyNlcShjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBGbWdySW5mbyAqZmxpbmZv KSBcCit7IHJldHVybiAqKChjb25zdCBRVCAqKSBhKSA9PSAqKChjb25zdCBLVCAqKSBiKTsgfSBc CitzdGF0aWMgYm9vbCBwcmVmaXgjI2xlKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIsIEZt Z3JJbmZvICpmbGluZm8pIFwKK3sgcmV0dXJuICooKGNvbnN0IFFUICopIGEpIDw9ICooKGNvbnN0 IEtUICopIGIpOyB9IFwKK3N0YXRpYyBib29sIHByZWZpeCMjbHQoY29uc3Qgdm9pZCAqYSwgY29u c3Qgdm9pZCAqYiwgRm1nckluZm8gKmZsaW5mbykgXAoreyByZXR1cm4gKigoY29uc3QgUVQgKikg YSkgPCAqKChjb25zdCBLVCAqKSBiKTsgfSBcCitzdGF0aWMgZmxvYXQ4IHByZWZpeCMjZGlzdChj b25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBGbWdySW5mbyAqZmxpbmZvKSBcCit7IHJldHVy biBHRVRfRkxPQVRfRElTVEFOQ0UyKFFULCBLVCwgYSwgYik7IH0KIAogCiBleHRlcm4gSW50ZXJ2 YWwgKmFic19pbnRlcnZhbChJbnRlcnZhbCAqYSk7CiAKIGV4dGVybiBib29sIGdidF9udW1fY29u c2lzdGVudChjb25zdCBHQlRfTlVNS0VZX1IgKmtleSwgY29uc3Qgdm9pZCAqcXVlcnksCiAJCQkJ CQkJICAgY29uc3QgU3RyYXRlZ3lOdW1iZXIgKnN0cmF0ZWd5LCBib29sIGlzX2xlYWYsCmRpZmYg LS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvbWVzb24uYnVpbGQgYi9jb250cmliL2J0cmVlX2dp c3QvbWVzb24uYnVpbGQKaW5kZXggMmIxYTU0NjMyODkuLjQzYmExMzBlOGU0IDEwMDY0NAotLS0g YS9jb250cmliL2J0cmVlX2dpc3QvbWVzb24uYnVpbGQKKysrIGIvY29udHJpYi9idHJlZV9naXN0 L21lc29uLmJ1aWxkCkBAIC00OSwxMiArNDksMTMgQEAgaW5zdGFsbF9kYXRhKAogICAnYnRyZWVf Z2lzdC0tMS40LS0xLjUuc3FsJywKICAgJ2J0cmVlX2dpc3QtLTEuNS0tMS42LnNxbCcsCiAgICdi dHJlZV9naXN0LS0xLjYtLTEuNy5zcWwnLAogICAnYnRyZWVfZ2lzdC0tMS43LS0xLjguc3FsJywK ICAgJ2J0cmVlX2dpc3QtLTEuOC0tMS45LnNxbCcsCiAgICdidHJlZV9naXN0LS0xLjkuc3FsJywK KyAgJ2J0cmVlX2dpc3QtLTEuOS0tMS4xMC5zcWwnLAogICBrd2FyZ3M6IGNvbnRyaWJfZGF0YV9h cmdzLAogKQogCiB0ZXN0cyArPSB7CiAgICduYW1lJzogJ2J0cmVlX2dpc3QnLAogICAnc2QnOiBt ZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXgg YzVkYjZjYTY3MDUuLmUyOWY3NmI2ZmViIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAt MzgwOCwxMiArMzgwOCwxMyBAQCBmbG9hdGluZ19kZWNpbWFsXzMyCiBmbG9hdGluZ19kZWNpbWFs XzY0CiBmbWdyX2hvb2tfdHlwZQogZm9yZWlnbl9nbG9iX2N4dAogZm9yZWlnbl9sb2NfY3h0CiBm cmVlZnVuYwogZnNlY190CitnYnRfaW50a2V5CiBnYnRfdnNydF9hcmcKIGdidHJlZV9uaW5mbwog Z2J0cmVlX3ZpbmZvCiBnZW5lcmF0ZV9zZXJpZXNfZmN0eAogZ2VuZXJhdGVfc2VyaWVzX251bWVy aWNfZmN0eAogZ2VuZXJhdGVfc2VyaWVzX3RpbWVzdGFtcF9mY3R4Ci0tIAoyLjUxLjAKCg== --6a3bf914_34e1218d_5be Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v5-0002-Add-tests-for-cross-type-operators-for-GiST-indexes.patch" RnJvbSBiZGNlNDBlOGE3NWVlYTRmMWRmNzc4Mzc2MDQyZGJjZjgyNDZkM2E0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgTmVzdG9yb3YgPGFsZXhhbmRlcm5zdEBnbWFp bC5jb20+CkRhdGU6IFRodSwgNCBKdW4gMjAyNiAwMDowODoyNyArMDIwMApTdWJqZWN0OiBbUEFU Q0hdIEFkZCB0ZXN0cyBmb3IgY3Jvc3MtdHlwZSBvcGVyYXRvcnMgZm9yIEdpU1QgaW5kZXhlcwoK QWRkIGEgbmV3IGludF9jcm9zc3R5cGUgcmVncmVzc2lvbiB0ZXN0IHRoYXQgZHJpdmVzIHRoZSBj cm9zcy10eXBlCmNvbXBhcmlzb24gYW5kIDwtPiBkaXN0YW5jZSBvcGVyYXRvcnMgZm9yIGV2ZXJ5 IGludDIvaW50NC9pbnQ4CmNvbWJpbmF0aW9uIHRocm91Z2ggdGhlIGluZGV4ICh3aXRoIHNlcXNj YW4gYW5kIGJpdG1hcHNjYW4gZGlzYWJsZWQpLApwbHVzIGEgbXVsdGktY29sdW1uIGluZGV4LCBx dWVyeSBjb25zdGFudHMgb3V0c2lkZSB0aGUgaW5kZXhlZCBjb2x1bW4ncwpyYW5nZSwgYW5kIHRo ZSBzdGFuZGFsb25lIGRpc3RhbmNlIGZ1bmN0aW9ucyBpbmNsdWRpbmcgdGhlaXIKb3ZlcmZsb3ct ZGV0ZWN0aW9uIHBhdGhzLgoKSW5jbHVkZSBhIHdpZHRoLXNlbnNpdGl2aXR5IGd1YXJkOiB0aGUg Y29uc3RhbnRzIGFyZSBjaG9zZW4gc28gdGhlaXIgbG93CjE2IGJpdHMgY29sbGlkZSB3aXRoIGEg dmFsdWUgcHJlc2VudCBpbiB0aGUgZGF0YSwgc28gdGhhdCByZWFkaW5nIGVpdGhlcgpzaWRlIGF0 IHRoZSB3cm9uZyB3aWR0aCAoYSBkaXNwYXRjaCBlbnRyeSByZXR1cm5pbmcgdGhlIHdyb25nLXdp ZHRoCmNhbGxiYWNrLCBhIHRydW5jYXRlZCBrZXksIG9yIHRoZSBxdWVyeS9rZXkgYXJndW1lbnRz IHN3YXBwZWQgaW4KZ2J0X251bV9jb25zaXN0ZW50KCkvZ2J0X251bV9kaXN0YW5jZSgpKSBjaGFu Z2VzIHRoZSByZXN1bHQgYW5kIGZhaWxzCnRoZSB0ZXN0LgoKQWxzbyBhc3NlcnQgdGhhdCB0aGUg b3BlcmF0b3IgZmFtaWxpZXMgY29udGFpbiBubyBjcm9zcy10eXBlIHN1cHBvcnQKZnVuY3Rpb25z LCBtYXRjaGluZyB0aGUgcGdfYW1vcC1vbmx5IGRlc2lnbi4KCkNvLWF1dGhvcmVkLWJ5OiBNYXhp bWUgU2Nob2VtYW5zIDxtYXhpbWUuc2Nob2VtYW5zQGVudGVycHJpc2VkYi5jb20+Ci0tLQogY29u dHJpYi9idHJlZV9naXN0L01ha2VmaWxlICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBjb250 cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvaW50X2Nyb3NzdHlwZS5vdXQgfCA1NzcgKysrKysrKysr KysrKysrKysrCiBjb250cmliL2J0cmVlX2dpc3QvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAg fCAgIDEgKwogY29udHJpYi9idHJlZV9naXN0L3NxbC9pbnRfY3Jvc3N0eXBlLnNxbCAgICAgIHwg MjMwICsrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgODA5IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvaW50 X2Nyb3NzdHlwZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL2J0cmVlX2dpc3Qvc3Fs L2ludF9jcm9zc3R5cGUuc3FsCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L01ha2Vm aWxlIGIvY29udHJpYi9idHJlZV9naXN0L01ha2VmaWxlCmluZGV4IDM4MGM3NjQyZmRlLi4xZDA2 NjhkOTdhYiAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJlZV9naXN0L01ha2VmaWxlCisrKyBiL2Nv bnRyaWIvYnRyZWVfZ2lzdC9NYWtlZmlsZQpAQCAtMzgsMTMgKzM4LDEzIEBAIERBVEEgPSBidHJl ZV9naXN0LS0xLjAtLTEuMS5zcWwgXAogICAgICAgIGJ0cmVlX2dpc3QtLTEuOS5zcWwgYnRyZWVf Z2lzdC0tMS45LS0xLjEwLnNxbAogUEdGSUxFREVTQyA9ICJidHJlZV9naXN0IC0gQi10cmVlIGVx dWl2YWxlbnQgR2lTVCBvcGVyYXRvciBjbGFzc2VzIgogCiBSRUdSRVNTID0gaW5pdCBpbnQyIGlu dDQgaW50OCBmbG9hdDQgZmxvYXQ4IGNhc2ggb2lkIHRpbWVzdGFtcCB0aW1lc3RhbXB0eiBcCiAg ICAgICAgIHRpbWUgdGltZXR6IGRhdGUgaW50ZXJ2YWwgbWFjYWRkciBtYWNhZGRyOCBpbmV0IGNp ZHIgdGV4dCB2YXJjaGFyIGNoYXIgXAogICAgICAgICBieXRlYSBiaXQgdmFyYml0IG51bWVyaWMg dXVpZCBub3RfZXF1YWwgZW51bSBib29sIHBhcnRpdGlvbnMgXAotICAgICAgICBzdHJhdG51bSB3 aXRob3V0X292ZXJsYXBzCisgICAgICAgIHN0cmF0bnVtIGludF9jcm9zc3R5cGUgd2l0aG91dF9v dmVybGFwcwogCiBTSExJQl9MSU5LICs9ICQoZmlsdGVyIC1sbSwgJChMSUJTKSkKIAogaWZkZWYg VVNFX1BHWFMKIFBHX0NPTkZJRyA9IHBnX2NvbmZpZwogUEdYUyA6PSAkKHNoZWxsICQoUEdfQ09O RklHKSAtLXBneHMpCmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvaW50 X2Nyb3NzdHlwZS5vdXQgYi9jb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvaW50X2Nyb3NzdHlw ZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI4OTFhYmRmMjVl Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVkL2ludF9jcm9z c3R5cGUub3V0CkBAIC0wLDAgKzEsNTc3IEBACistLSBDcm9zcy10eXBlIG9wZXJhdG9yIHN1cHBv cnQgZm9yIGludDIvaW50NC9pbnQ4IGluIEdpU1QuCistLQorLS0gVmVyaWZpZXMgdGhhdCAoYSkg dGhlIGNyb3NzLXR5cGUgQi10cmVlLXN0eWxlIG9wZXJhdG9ycyByZWdpc3RlcmVkIGluCistLSBn aXN0X2ludHsyLDQsOH1fb3BzIG1hdGNoIHRoZSByZXN1bHRzIG9mIHNlcXNjYW5zIHVzaW5nIHRo ZSBzYW1lIG9wZXJhdG9yCistLSBleHByZXNzaW9ucywgKGIpIHRoZSBLTk4gPC0+IG9wZXJhdG9y IHdvcmtzIGFjcm9zcyB0eXBlcyBhbmQgdXNlcyB0aGUKKy0tIGluZGV4LCBhbmQgKGMpIHZhbHVl cyBvdXRzaWRlIHRoZSBzbWFsbGVyIHN1YnR5cGUncyByYW5nZSBhcmUgaGFuZGxlZAorLS0gYWNj b3JkaW5nIHRvIG5vcm1hbCBjb21wYXJpc29uIHNlbWFudGljcywgd2l0aG91dCBuYXJyb3dpbmcg b3IgZXJyb3JpbmcuCistLQorLS0gVGhlIGludGVnZXIgY3Jvc3MtdHlwZSBzdXBwb3J0IGlzIGhh bmRsZWQgaW5zaWRlIHRoZSBleGlzdGluZworLS0gY29uc2lzdGVudC9kaXN0YW5jZSBzdXBwb3J0 IGZ1bmN0aW9ucyAod2hpY2ggZGlzcGF0Y2ggb24gdGhlIHN1YnR5cGUgT0lEKSwKKy0tIHNvIHRo ZSBvcGVyYXRvciBmYW1pbGllcyBtdXN0IG5vdCBjb250YWluIGFueSBjcm9zcy10eXBlIChkaWZm ZXJlbnQKKy0tIGxlZnQvcmlnaHQgaW5wdXQgdHlwZSkgc3VwcG9ydC1mdW5jdGlvbiBlbnRyaWVz LgorLS0KK1NFTEVDVCBvcGYub3BmbmFtZSBBUyBvcGZhbWlseSwKKyAgICAgICBhbXByb2MuYW1w cm9jbGVmdHR5cGU6OnJlZ3R5cGUgQVMgbGVmdHR5cGUsCisgICAgICAgYW1wcm9jLmFtcHJvY3Jp Z2h0dHlwZTo6cmVndHlwZSBBUyByaWdodHR5cGUsCisgICAgICAgYW1wcm9jLmFtcHJvY251bSBB UyBwcm9jbnVtLAorICAgICAgIGFtcHJvYy5hbXByb2M6OnJlZ3Byb2MgQVMgcHJvYworRlJPTSBw Z19hbXByb2MgYW1wcm9jCisgICAgIEpPSU4gcGdfb3BmYW1pbHkgb3BmIE9OIG9wZi5vaWQgPSBh bXByb2MuYW1wcm9jZmFtaWx5CisgICAgIEpPSU4gcGdfYW0gYW0gT04gYW0ub2lkID0gb3BmLm9w Zm1ldGhvZAorV0hFUkUgYW0uYW1uYW1lID0gJ2dpc3QnCisgIEFORCBvcGYub3BmbmFtZSBJTiAo J2dpc3RfaW50Ml9vcHMnLCAnZ2lzdF9pbnQ0X29wcycsICdnaXN0X2ludDhfb3BzJykKKyAgQU5E IGFtcHJvYy5hbXByb2NsZWZ0dHlwZSA8PiBhbXByb2MuYW1wcm9jcmlnaHR0eXBlCitPUkRFUiBC WSBvcGYub3BmbmFtZSwKKyAgICAgICAgIGFtcHJvYy5hbXByb2NsZWZ0dHlwZTo6cmVndHlwZTo6 dGV4dCwKKyAgICAgICAgIGFtcHJvYy5hbXByb2NyaWdodHR5cGU6OnJlZ3R5cGU6OnRleHQsCisg ICAgICAgICBhbXByb2MuYW1wcm9jbnVtLAorICAgICAgICAgYW1wcm9jLmFtcHJvYzo6cmVncHJv Yzo6dGV4dDsKKyBvcGZhbWlseSB8IGxlZnR0eXBlIHwgcmlnaHR0eXBlIHwgcHJvY251bSB8IHBy b2MgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLQor KDAgcm93cykKKworQ1JFQVRFIFRBQkxFIGN0X2kyIChhIGludDIpOworQ1JFQVRFIFRBQkxFIGN0 X2k0IChhIGludDQpOworQ1JFQVRFIFRBQkxFIGN0X2k4IChhIGludDgpOworSU5TRVJUIElOVE8g Y3RfaTIgU0VMRUNUIGc6OmludDIgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoLTEwMCwgMTAwKSBnOwor SU5TRVJUIElOVE8gY3RfaTQgU0VMRUNUIGcgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoLTEwMCwgMTAw KSBnOworSU5TRVJUIElOVE8gY3RfaTggU0VMRUNUIGc6OmludDggRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoLTEwMCwgMTAwKSBnOworLS0gQWRkIHNvbWUgdmFsdWVzIHRoYXQgYXJlIHJlcHJlc2VudGFi bGUgb25seSBpbiB3aWRlciB0eXBlcywgdG8gZXhlcmNpc2UKKy0tIHRoZSBwYXRoIHdoZXJlIHRo ZSBjcm9zcy10eXBlIHF1ZXJ5IGNvbnN0YW50IGlzIG91dCBvZiByYW5nZSBvZiB0aGUga2V5Cist LSB0eXBlLgorSU5TRVJUIElOVE8gY3RfaTQgVkFMVUVTICgxMDAwMDApLCAoLTEwMDAwMCk7CitJ TlNFUlQgSU5UTyBjdF9pOCBWQUxVRVMgKDUwMDAwMDAwMDApLCAoLTUwMDAwMDAwMDApOworQ1JF QVRFIElOREVYIGN0X2kyX2lkeCBPTiBjdF9pMiBVU0lORyBnaXN0IChhKTsKK0NSRUFURSBJTkRF WCBjdF9pNF9pZHggT04gY3RfaTQgVVNJTkcgZ2lzdCAoYSk7CitDUkVBVEUgSU5ERVggY3RfaThf aWR4IE9OIGN0X2k4IFVTSU5HIGdpc3QgKGEpOworQU5BTFlaRSBjdF9pMjsKK0FOQUxZWkUgY3Rf aTQ7CitBTkFMWVpFIGN0X2k4OworU0VUIGVuYWJsZV9zZXFzY2FuID0gb2ZmOworU0VUIGVuYWJs ZV9iaXRtYXBzY2FuID0gb2ZmOworLS0gaW50MiBrZXkgeCBpbnQ0IHF1ZXJ5CitTRUxFQ1QgY291 bnQoKikgRlJPTSBjdF9pMiBXSEVSRSBhIDwgIDUwOjppbnQ0OworIGNvdW50IAorLS0tLS0tLQor ICAgMTUwCisoMSByb3cpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X2kyIFdIRVJFIGEgPD0g NTA6OmludDQ7CisgY291bnQgCistLS0tLS0tCisgICAxNTEKKygxIHJvdykKKworU0VMRUNUIGNv dW50KCopIEZST00gY3RfaTIgV0hFUkUgYSA9ICA1MDo6aW50NDsKKyBjb3VudCAKKy0tLS0tLS0K KyAgICAgMQorKDEgcm93KQorCitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9pMiBXSEVSRSBhID49 IDUwOjppbnQ0OworIGNvdW50IAorLS0tLS0tLQorICAgIDUxCisoMSByb3cpCisKK1NFTEVDVCBj b3VudCgqKSBGUk9NIGN0X2kyIFdIRVJFIGEgPiAgNTA6OmludDQ7CisgY291bnQgCistLS0tLS0t CisgICAgNTAKKygxIHJvdykKKworU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTIgV0hFUkUgYSA8 PiA1MDo6aW50NDsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDIwMAorKDEgcm93KQorCistLSBxdWVy eSBvdXQgb2YgaW50MiByYW5nZTogbWF0Y2hlcyBub3RoaW5nIGZvciA9LCBldmVyeXRoaW5nIGZv ciA8PgorU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTIgV0hFUkUgYSA9ICAxMDAwMDA6OmludDQ7 CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworU0VMRUNUIGNvdW50KCopIEZS T00gY3RfaTIgV0hFUkUgYSA8PiAxMDAwMDA6OmludDQ7CisgY291bnQgCistLS0tLS0tCisgICAy MDEKKygxIHJvdykKKworU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTIgV0hFUkUgYSA8ICAxMDAw MDA6OmludDQ7CisgY291bnQgCistLS0tLS0tCisgICAyMDEKKygxIHJvdykKKworU0VMRUNUIGNv dW50KCopIEZST00gY3RfaTIgV0hFUkUgYSA+ICAxMDAwMDA6OmludDQ7CisgY291bnQgCistLS0t LS0tCisgICAgIDAKKygxIHJvdykKKworLS0gaW50MiBrZXkgeCBpbnQ4IHF1ZXJ5CitTRUxFQ1Qg Y291bnQoKikgRlJPTSBjdF9pMiBXSEVSRSBhIDwgIDUwOjppbnQ4OworIGNvdW50IAorLS0tLS0t LQorICAgMTUwCisoMSByb3cpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X2kyIFdIRVJFIGEg PD0gNTA6OmludDg7CisgY291bnQgCistLS0tLS0tCisgICAxNTEKKygxIHJvdykKKworU0VMRUNU IGNvdW50KCopIEZST00gY3RfaTIgV0hFUkUgYSA9ICA1MDo6aW50ODsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMQorKDEgcm93KQorCitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9pMiBXSEVSRSBh ID49IDUwOjppbnQ4OworIGNvdW50IAorLS0tLS0tLQorICAgIDUxCisoMSByb3cpCisKK1NFTEVD VCBjb3VudCgqKSBGUk9NIGN0X2kyIFdIRVJFIGEgPiAgNTA6OmludDg7CisgY291bnQgCistLS0t LS0tCisgICAgNTAKKygxIHJvdykKKworU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTIgV0hFUkUg YSA8PiA1MDo6aW50ODsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDIwMAorKDEgcm93KQorCitTRUxF Q1QgY291bnQoKikgRlJPTSBjdF9pMiBXSEVSRSBhID0gIDUwMDAwMDAwMDA6OmludDg7CisgY291 bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworU0VMRUNUIGNvdW50KCopIEZST00gY3Rf aTIgV0hFUkUgYSA8ICA1MDAwMDAwMDAwOjppbnQ4OworIGNvdW50IAorLS0tLS0tLQorICAgMjAx CisoMSByb3cpCisKKy0tIGludDQga2V5IHggaW50MiBxdWVyeQorU0VMRUNUIGNvdW50KCopIEZS T00gY3RfaTQgV0hFUkUgYSA8ICA1MDo6aW50MjsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDE1MQor KDEgcm93KQorCitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9pNCBXSEVSRSBhIDw9IDUwOjppbnQy OworIGNvdW50IAorLS0tLS0tLQorICAgMTUyCisoMSByb3cpCisKK1NFTEVDVCBjb3VudCgqKSBG Uk9NIGN0X2k0IFdIRVJFIGEgPSAgNTA6OmludDI7CisgY291bnQgCistLS0tLS0tCisgICAgIDEK KygxIHJvdykKKworU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTQgV0hFUkUgYSA+PSA1MDo6aW50 MjsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICA1MgorKDEgcm93KQorCitTRUxFQ1QgY291bnQoKikg RlJPTSBjdF9pNCBXSEVSRSBhID4gIDUwOjppbnQyOworIGNvdW50IAorLS0tLS0tLQorICAgIDUx CisoMSByb3cpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X2k0IFdIRVJFIGEgPD4gNTA6Omlu dDI7CisgY291bnQgCistLS0tLS0tCisgICAyMDIKKygxIHJvdykKKworLS0gaW50NCBrZXkgeCBp bnQ4IHF1ZXJ5CitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9pNCBXSEVSRSBhIDwgIDUwOjppbnQ4 OworIGNvdW50IAorLS0tLS0tLQorICAgMTUxCisoMSByb3cpCisKK1NFTEVDVCBjb3VudCgqKSBG Uk9NIGN0X2k0IFdIRVJFIGEgPD0gNTA6OmludDg7CisgY291bnQgCistLS0tLS0tCisgICAxNTIK KygxIHJvdykKKworU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTQgV0hFUkUgYSA9ICA1MDo6aW50 ODsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMQorKDEgcm93KQorCitTRUxFQ1QgY291bnQoKikg RlJPTSBjdF9pNCBXSEVSRSBhID49IDUwOjppbnQ4OworIGNvdW50IAorLS0tLS0tLQorICAgIDUy CisoMSByb3cpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X2k0IFdIRVJFIGEgPiAgNTA6Omlu dDg7CisgY291bnQgCistLS0tLS0tCisgICAgNTEKKygxIHJvdykKKworU0VMRUNUIGNvdW50KCop IEZST00gY3RfaTQgV0hFUkUgYSA8PiA1MDo6aW50ODsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDIw MgorKDEgcm93KQorCitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9pNCBXSEVSRSBhID0gIDUwMDAw MDAwMDA6OmludDg7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworU0VMRUNU IGNvdW50KCopIEZST00gY3RfaTQgV0hFUkUgYSA8ICA1MDAwMDAwMDAwOjppbnQ4OworIGNvdW50 IAorLS0tLS0tLQorICAgMjAzCisoMSByb3cpCisKKy0tIGludDgga2V5IHggaW50MiBxdWVyeQor U0VMRUNUIGNvdW50KCopIEZST00gY3RfaTggV0hFUkUgYSA8ICA1MDo6aW50MjsKKyBjb3VudCAK Ky0tLS0tLS0KKyAgIDE1MQorKDEgcm93KQorCitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9pOCBX SEVSRSBhIDw9IDUwOjppbnQyOworIGNvdW50IAorLS0tLS0tLQorICAgMTUyCisoMSByb3cpCisK K1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X2k4IFdIRVJFIGEgPSAgNTA6OmludDI7CisgY291bnQg CistLS0tLS0tCisgICAgIDEKKygxIHJvdykKKworU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTgg V0hFUkUgYSA+PSA1MDo6aW50MjsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICA1MgorKDEgcm93KQor CitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9pOCBXSEVSRSBhID4gIDUwOjppbnQyOworIGNvdW50 IAorLS0tLS0tLQorICAgIDUxCisoMSByb3cpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X2k4 IFdIRVJFIGEgPD4gNTA6OmludDI7CisgY291bnQgCistLS0tLS0tCisgICAyMDIKKygxIHJvdykK KworLS0gaW50OCBrZXkgeCBpbnQ0IHF1ZXJ5CitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9pOCBX SEVSRSBhIDwgIDUwOjppbnQ0OworIGNvdW50IAorLS0tLS0tLQorICAgMTUxCisoMSByb3cpCisK K1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X2k4IFdIRVJFIGEgPD0gNTA6OmludDQ7CisgY291bnQg CistLS0tLS0tCisgICAxNTIKKygxIHJvdykKKworU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTgg V0hFUkUgYSA9ICA1MDo6aW50NDsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMQorKDEgcm93KQor CitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9pOCBXSEVSRSBhID49IDUwOjppbnQ0OworIGNvdW50 IAorLS0tLS0tLQorICAgIDUyCisoMSByb3cpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X2k4 IFdIRVJFIGEgPiAgNTA6OmludDQ7CisgY291bnQgCistLS0tLS0tCisgICAgNTEKKygxIHJvdykK KworU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTggV0hFUkUgYSA8PiA1MDo6aW50NDsKKyBjb3Vu dCAKKy0tLS0tLS0KKyAgIDIwMgorKDEgcm93KQorCistLSBDb25maXJtIHRoZSBpbmRleCBpcyBh Y3R1YWxseSB1c2VkIGZvciBhIGNyb3NzLXR5cGUgcHJlZGljYXRlLgorRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTQgV0hFUkUgYSA9IDUwOjppbnQ4OworICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgY3RfaTRfaWR4IG9uIGN0X2k0CisgICAgICAgICBJbmRl eCBDb25kOiAoYSA9ICc1MCc6OmJpZ2ludCkKKygzIHJvd3MpCisKKy0tIENyb3NzLXR5cGUgS05O OiBpbnQ0IGtleSBvcmRlcmVkIGJ5IGludDIgLyBpbnQ4IHF1ZXJpZXMuCitFWFBMQUlOIChDT1NU UyBPRkYpCitTRUxFQ1QgYSBGUk9NIGN0X2k0IE9SREVSIEJZIGEgPC0+ICctMTAwJzo6aW50MiBM SU1JVCAzOworICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBMaW1p dAorICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyBjdF9pNF9pZHggb24gY3RfaTQKKyAgICAg ICAgIE9yZGVyIEJ5OiAoYSA8LT4gJy0xMDAnOjpzbWFsbGludCkKKygzIHJvd3MpCisKK1NFTEVD VCBhIEZST00gY3RfaTQgT1JERVIgQlkgYSA8LT4gJy0xMDAnOjppbnQyIExJTUlUIDM7CisgIGEg ICAKKy0tLS0tLQorIC0xMDAKKyAgLTk5CisgIC05OAorKDMgcm93cykKKworRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIGEgRlJPTSBjdF9pNCBPUkRFUiBCWSBhIDwtPiAnLTEwMCc6OmludDgg TElNSVQgMzsKKyAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgTGlt aXQKKyAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgY3RfaTRfaWR4IG9uIGN0X2k0CisgICAg ICAgICBPcmRlciBCeTogKGEgPC0+ICctMTAwJzo6YmlnaW50KQorKDMgcm93cykKKworU0VMRUNU IGEgRlJPTSBjdF9pNCBPUkRFUiBCWSBhIDwtPiAnLTEwMCc6OmludDggTElNSVQgMzsKKyAgYSAg IAorLS0tLS0tCisgLTEwMAorICAtOTkKKyAgLTk4CisoMyByb3dzKQorCistLSBDcm9zcy10eXBl IEtOTjogaW50MiBrZXkgb3JkZXJlZCBieSBpbnQ0IC8gaW50OCBxdWVyaWVzLgorU0VMRUNUIGEg RlJPTSBjdF9pMiBPUkRFUiBCWSBhIDwtPiAnLTEwMCc6OmludDQgTElNSVQgMzsKKyAgYSAgIAor LS0tLS0tCisgLTEwMAorICAtOTkKKyAgLTk4CisoMyByb3dzKQorCitTRUxFQ1QgYSBGUk9NIGN0 X2kyIE9SREVSIEJZIGEgPC0+ICctMTAwJzo6aW50OCBMSU1JVCAzOworICBhICAgCistLS0tLS0K KyAtMTAwCisgIC05OQorICAtOTgKKygzIHJvd3MpCisKKy0tIENyb3NzLXR5cGUgS05OOiBpbnQ4 IGtleSBvcmRlcmVkIGJ5IGludDIgLyBpbnQ0IHF1ZXJpZXMuCitTRUxFQ1QgYSBGUk9NIGN0X2k4 IE9SREVSIEJZIGEgPC0+ICctMTAwJzo6aW50MiBMSU1JVCAzOworICBhICAgCistLS0tLS0KKyAt MTAwCisgIC05OQorICAtOTgKKygzIHJvd3MpCisKK1NFTEVDVCBhIEZST00gY3RfaTggT1JERVIg QlkgYSA8LT4gJy0xMDAnOjppbnQ0IExJTUlUIDM7CisgIGEgICAKKy0tLS0tLQorIC0xMDAKKyAg LTk5CisgIC05OAorKDMgcm93cykKKworLS0gQ29tYmluZWQ6IGNyb3NzLXR5cGUgV0hFUkUgKyBj cm9zcy10eXBlIE9SREVSIEJZIG9uIHRoZSBzYW1lIGluZGV4LgorRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIGEgRlJPTSBjdF9pNCBXSEVSRSBhIDwgODA6OmludDggT1JERVIgQlkgYSA8LT4g Jy0xMDAnOjppbnQ4IExJTUlUIDM7CisgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIExpbWl0CisgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIGN0X2k0X2lkeCBv biBjdF9pNAorICAgICAgICAgSW5kZXggQ29uZDogKGEgPCAnODAnOjpiaWdpbnQpCisgICAgICAg ICBPcmRlciBCeTogKGEgPC0+ICctMTAwJzo6YmlnaW50KQorKDQgcm93cykKKworU0VMRUNUIGEg RlJPTSBjdF9pNCBXSEVSRSBhIDwgODA6OmludDggT1JERVIgQlkgYSA8LT4gJy0xMDAnOjppbnQ4 IExJTUlUIDM7CisgIGEgICAKKy0tLS0tLQorIC0xMDAKKyAgLTk5CisgIC05OAorKDMgcm93cykK KworLS0gU3RhbmRhbG9uZSBkaXN0YW5jZS1mdW5jdGlvbiBzbW9rZSB0ZXN0cyAobm90IGdvaW5n IHRocm91Z2ggdGhlIGluZGV4KSwKKy0tIGluY2x1ZGluZyB0aGUgb3ZlcmZsb3ctZGV0ZWN0aW9u IHBhdGhzLgorU0VMRUNUIGludDJfaW50NF9kaXN0KDM6OmludDIsIDEwOjppbnQ0KTsKKyBpbnQy X2ludDRfZGlzdCAKKy0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgNworKDEgcm93KQor CitTRUxFQ1QgaW50NF9pbnQyX2Rpc3QoLTU6OmludDQsIDU6OmludDIpOworIGludDRfaW50Ml9k aXN0IAorLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgIDEwCisoMSByb3cpCisKK1NFTEVD VCBpbnQyX2ludDhfZGlzdCgzOjppbnQyLCAxMDo6aW50OCk7CisgaW50Ml9pbnQ4X2Rpc3QgCist LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIDcKKygxIHJvdykKKworU0VMRUNUIGludDhf aW50Ml9kaXN0KDEwMDo6aW50OCwgLTU6OmludDIpOworIGludDhfaW50Ml9kaXN0IAorLS0tLS0t LS0tLS0tLS0tLQorICAgICAgICAgICAgMTA1CisoMSByb3cpCisKK1NFTEVDVCBpbnQ0X2ludDhf ZGlzdCgxMDA6OmludDQsIDUwMDAwMDAwMDA6OmludDgpOworIGludDRfaW50OF9kaXN0IAorLS0t LS0tLS0tLS0tLS0tLQorICAgICA0OTk5OTk5OTAwCisoMSByb3cpCisKK1NFTEVDVCBpbnQ4X2lu dDRfZGlzdCg1MDAwMDAwMDAwOjppbnQ4LCAxMDA6OmludDQpOworIGludDhfaW50NF9kaXN0IAor LS0tLS0tLS0tLS0tLS0tLQorICAgICA0OTk5OTk5OTAwCisoMSByb3cpCisKKy0tIE92ZXJmbG93 IGRldGVjdGlvbjogSU5UMzJfTUlOIGRpc3RhbmNlIGZyb20gYSBwb3NpdGl2ZSBpbnQyIGNhbid0 IGZpdAorLS0gaW4gaW50MzIsIHNob3VsZCBlcnJvci4KK1NFTEVDVCBpbnQyX2ludDRfZGlzdCgx OjppbnQyLCAtMjE0NzQ4MzY0ODo6aW50NCk7CitFUlJPUjogIGludGVnZXIgb3V0IG9mIHJhbmdl CistLSBMaWtld2lzZSBJTlQ2NF9NSU4gZGlzdGFuY2UgZnJvbSBhIHBvc2l0aXZlIGludDQgY2Fu J3QgZml0IGluIGludDY0LgorU0VMRUNUIGludDRfaW50OF9kaXN0KDE6OmludDQsIC05MjIzMzcy MDM2ODU0Nzc1ODA4OjppbnQ4KTsKK0VSUk9SOiAgYmlnaW50IG91dCBvZiByYW5nZQorLS0KKy0t IE11bHRpLWNvbHVtbiBHaVNUIGluZGV4IHdpdGggbWl4ZWQtdHlwZSBwcmVkaWNhdGVzLiBUaGlz IGlzIHRoZQorLS0gb3JpZ2luYWwgbW90aXZhdGluZyBjYXNlOiB3aXRob3V0IGNyb3NzLXR5cGUg b3BlcmF0b3Igc3VwcG9ydCB0aGUKKy0tIHBsYW5uZXIgY2FuIG9ubHkgdXNlIG9uZSBjb2x1bW4g YXMgYW4gSW5kZXggQ29uZCBhbmQgYXBwbGllcyB0aGUKKy0tIG90aGVyKHMpIGFzIGEgRmlsdGVy IHBvc3Qtc2Nhbi4gSGVyZSBib3RoIGNvbHVtbnMgc2hvdWxkIGFwcGVhciBhcworLS0gSW5kZXgg Q29uZC4KKy0tCitDUkVBVEUgVEFCTEUgY3RfbXVsdGkgKGEgaW50NCwgYiBpbnQ4KTsKK0lOU0VS VCBJTlRPIGN0X211bHRpCisgICAgU0VMRUNUIGcsIChnICogMik6OmludDggRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoLTUwLCA1MCkgZzsKK0NSRUFURSBJTkRFWCBjdF9tdWx0aV9pZHggT04gY3RfbXVs dGkgVVNJTkcgZ2lzdCAoYSwgYik7CitBTkFMWVpFIGN0X211bHRpOworRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIGNvdW50KCopIEZST00gY3RfbXVsdGkgV0hFUkUgYSA9IDI1OjppbnQ4IEFO RCBiID0gNTA6OmludDQ7CisgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5n IGN0X211bHRpX2lkeCBvbiBjdF9tdWx0aQorICAgICAgICAgSW5kZXggQ29uZDogKChhID0gJzI1 Jzo6YmlnaW50KSBBTkQgKGIgPSA1MCkpCisoMyByb3dzKQorCitTRUxFQ1QgY291bnQoKikgRlJP TSBjdF9tdWx0aSBXSEVSRSBhID0gMjU6OmludDggQU5EIGIgPSA1MDo6aW50NDsKKyBjb3VudCAK Ky0tLS0tLS0KKyAgICAgMQorKDEgcm93KQorCistLSBNaXhlZCBjcm9zcy10eXBlIHJhbmdlcyBh Y3Jvc3MgYm90aCBjb2x1bW5zLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCop IEZST00gY3RfbXVsdGkgV0hFUkUgYSA8IDEwOjppbnQ4IEFORCBiID4gMDo6aW50MjsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5n IGN0X211bHRpX2lkeCBvbiBjdF9tdWx0aQorICAgICAgICAgSW5kZXggQ29uZDogKChhIDwgJzEw Jzo6YmlnaW50KSBBTkQgKGIgPiAnMCc6OnNtYWxsaW50KSkKKygzIHJvd3MpCisKK1NFTEVDVCBj b3VudCgqKSBGUk9NIGN0X211bHRpIFdIRVJFIGEgPCAxMDo6aW50OCBBTkQgYiA+IDA6OmludDI7 CisgY291bnQgCistLS0tLS0tCisgICAgIDkKKygxIHJvdykKKworRFJPUCBUQUJMRSBjdF9tdWx0 aTsKKy0tCistLSBXaWR0aC1zZW5zaXRpdml0eSBndWFyZCAoaW50MTYgdnMgaW50MzIpLgorLS0K Ky0tIFRoZSBjcm9zcy10eXBlIGNhbGxiYWNrcyBtdXN0IHJlYWQgZWFjaCBzaWRlIGF0IGl0cyBP V04gd2lkdGg6IHRoZSBxdWVyeSBhdAorLS0gdGhlIHN1YnR5cGUgd2lkdGggYW5kIHRoZSBrZXkg YXQgdGhlIGluZGV4ZWQtY29sdW1uIHdpZHRoLCBuZXZlciBuYXJyb3dpbmcKKy0tIG9uZSB0byB0 aGUgb3RoZXIuIFRoZXNlIGNhc2VzIGFyZSBjb25zdHJ1Y3RlZCBzbyB0aGF0IHJlYWRpbmcgZWl0 aGVyIHNpZGUgYXQKKy0tIHRoZSB3cm9uZyB3aWR0aCBjaGFuZ2VzIHRoZSBhbnN3ZXIgLS0gYSBk aXNwYXRjaCBlbnRyeSByZXR1cm5pbmcgdGhlCistLSB3cm9uZy13aWR0aCB0aW5mbywgYW4gaW50 NCBrZXkgdHJ1bmNhdGVkIHRvIGludDE2LCBvciB0aGUgcXVlcnkva2V5IGFyZ3VtZW50cworLS0g YmVpbmcgc3dhcHBlZCBpbiBnYnRfbnVtX2NvbnNpc3RlbnQoKS9nYnRfbnVtX2Rpc3RhbmNlKCkg d291bGQgYWxsIGZsaXAgdGhlCistLSByZXN1bHQsIGJlY2F1c2UgZWFjaCB3aWRlIGNvbnN0YW50 IHNoYXJlcyBpdHMgbG93IDE2IGJpdHMgd2l0aCBhIHZhbHVlIHByZXNlbnQKKy0tIGluIHRoZSBk YXRhLiBlbmFibGVfc2Vxc2Nhbi9iaXRtYXBzY2FuIGFyZSBhbHJlYWR5IG9mZiwgc28gdGhlIEdp U1QKKy0tIGNvbnNpc3RlbnQvZGlzdGFuY2UgcGF0aCBpcyBleGVyY2lzZWQuCistLQorQ1JFQVRF IFRBQkxFIGN0X3c0IChrIGludDQpOworSU5TRVJUIElOVE8gY3RfdzQgVkFMVUVTICgxKSwgKDY1 NTM4KTsJCS0tIDY1NTM4ID0gMHgxMDAwMiwgbG93IDE2IGJpdHMgPSAyCitDUkVBVEUgSU5ERVgg Y3RfdzRfaWR4IE9OIGN0X3c0IFVTSU5HIGdpc3QgKGspOworQU5BTFlaRSBjdF93NDsKKy0tIGlu dDQga2V5IHZzIGludDIgcXVlcnk6IDY1NTM4IG11c3QgY29tcGFyZSBhcyA2NTUzOCwgbm90IGFz IDIuCistLSBjb3JyZWN0OiB7NjU1Mzh9OyBhbiBpbnQ0IGtleSB0cnVuY2F0ZWQgdG8gaW50MTYg KDY1NTM4IC0+IDIpIHdvdWxkIGdpdmUge30uCitTRUxFQ1QgayBGUk9NIGN0X3c0IFdIRVJFIGsg PiAxMDAwOjppbnQyIE9SREVSIEJZIGs7CisgICBrICAgCistLS0tLS0tCisgNjU1MzgKKygxIHJv dykKKworLS0gY29ycmVjdDoge30gKG5vIGtleSBlcXVhbHMgMik7IGEgdHJ1bmNhdGVkIGtleSAo NjU1MzggLT4gMikgd291bGQgbWF0Y2guCitTRUxFQ1QgayBGUk9NIGN0X3c0IFdIRVJFIGsgPSAy OjppbnQyIE9SREVSIEJZIGs7CisgayAKKy0tLQorKDAgcm93cykKKworLS0gS05OOiBuZWFyZXN0 IHRvIDIgaXMgMSAoZGlzdGFuY2UgMSkuIGVuYWJsZV9zb3J0PW9mZiBzdGVlcnMgdGhlIHBsYW5u ZXIgdG8KKy0tIHRoZSBHaVNUIEtOTiBkaXN0YW5jZSBwYXRoIHJhdGhlciB0aGFuIGEgU29ydCBv biB0aGUgb3BlcmF0b3IuIEEgdHJ1bmNhdGVkCistLSBrZXkgKDY1NTM4IC0+IDIsIGRpc3RhbmNl IDApIHdvdWxkIHdyb25nbHkgc29ydCA2NTUzOCBmaXJzdC4gKFdlIGFzc2VydCB0aGUKKy0tIHJl c3VsdCwgbm90IHRoZSBwbGFuIHNoYXBlLCB0byBzdGF5IHBvcnRhYmxlIGFjcm9zcyB2aXNpYmls aXR5LW1hcCBzdGF0ZS4pCitTRVQgZW5hYmxlX3NvcnQgPSBvZmY7CitTRUxFQ1QgayBGUk9NIGN0 X3c0IE9SREVSIEJZIGsgPC0+IDI6OmludDIgTElNSVQgMTsKKyBrIAorLS0tCisgMQorKDEgcm93 KQorCitSRVNFVCBlbmFibGVfc29ydDsKK0NSRUFURSBUQUJMRSBjdF93MiAoayBpbnQyKTsKK0lO U0VSVCBJTlRPIGN0X3cyIFZBTFVFUyAoMSksICg1MCk7CitDUkVBVEUgSU5ERVggY3RfdzJfaWR4 IE9OIGN0X3cyIFVTSU5HIGdpc3QgKGspOworQU5BTFlaRSBjdF93MjsKKy0tIGludDIga2V5IHZz IGludDQgcXVlcnk6IDY1NTM3IG11c3QgY29tcGFyZSBhcyA2NTUzNywgbm90IGFzIDEgKDB4MTAw MDEpLgorLS0gY29ycmVjdDogMDsgYW4gaW50NCBxdWVyeSB0cnVuY2F0ZWQgdG8gaW50MTYgKDY1 NTM3IC0+IDEpIHdvdWxkIG1hdGNoIGs9MS4KK1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X3cyIFdI RVJFIGsgPSA2NTUzNzo6aW50NDsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQor CistLSBjb3JyZWN0OiAwOyBhIHRydW5jYXRlZCBxdWVyeSAoNjU1MzcgLT4gMSkgd291bGQgbWF0 Y2ggaz01MC4KK1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X3cyIFdIRVJFIGsgPiA2NTUzNzo6aW50 NDsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitEUk9QIFRBQkxFIGN0X3c0 OworRFJPUCBUQUJMRSBjdF93MjsKK0RST1AgVEFCTEUgY3RfaTI7CitEUk9QIFRBQkxFIGN0X2k0 OworRFJPUCBUQUJMRSBjdF9pODsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9tZXNv bi5idWlsZCBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9tZXNvbi5idWlsZAppbmRleCA0M2JhMTMwZThl NC4uYzY0MGNiN2Q4ZDIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9tZXNvbi5idWls ZAorKysgYi9jb250cmliL2J0cmVlX2dpc3QvbWVzb24uYnVpbGQKQEAgLTkwLDEwICs5MCwxMSBA QCB0ZXN0cyArPSB7CiAgICAgICAndXVpZCcsCiAgICAgICAnbm90X2VxdWFsJywKICAgICAgICdl bnVtJywKICAgICAgICdib29sJywKICAgICAgICdwYXJ0aXRpb25zJywKICAgICAgICdzdHJhdG51 bScsCisgICAgICAnaW50X2Nyb3NzdHlwZScsCiAgICAgICAnd2l0aG91dF9vdmVybGFwcycsCiAg ICAgXSwKICAgfSwKIH0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9zcWwvaW50X2Ny b3NzdHlwZS5zcWwgYi9jb250cmliL2J0cmVlX2dpc3Qvc3FsL2ludF9jcm9zc3R5cGUuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YTM4OGE2Yjk5YgotLS0gL2Rl di9udWxsCisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9zcWwvaW50X2Nyb3NzdHlwZS5zcWwKQEAg LTAsMCArMSwyMzAgQEAKKy0tIENyb3NzLXR5cGUgb3BlcmF0b3Igc3VwcG9ydCBmb3IgaW50Mi9p bnQ0L2ludDggaW4gR2lTVC4KKy0tCistLSBWZXJpZmllcyB0aGF0IChhKSB0aGUgY3Jvc3MtdHlw ZSBCLXRyZWUtc3R5bGUgb3BlcmF0b3JzIHJlZ2lzdGVyZWQgaW4KKy0tIGdpc3RfaW50ezIsNCw4 fV9vcHMgbWF0Y2ggdGhlIHJlc3VsdHMgb2Ygc2Vxc2NhbnMgdXNpbmcgdGhlIHNhbWUgb3BlcmF0 b3IKKy0tIGV4cHJlc3Npb25zLCAoYikgdGhlIEtOTiA8LT4gb3BlcmF0b3Igd29ya3MgYWNyb3Nz IHR5cGVzIGFuZCB1c2VzIHRoZQorLS0gaW5kZXgsIGFuZCAoYykgdmFsdWVzIG91dHNpZGUgdGhl IHNtYWxsZXIgc3VidHlwZSdzIHJhbmdlIGFyZSBoYW5kbGVkCistLSBhY2NvcmRpbmcgdG8gbm9y bWFsIGNvbXBhcmlzb24gc2VtYW50aWNzLCB3aXRob3V0IG5hcnJvd2luZyBvciBlcnJvcmluZy4K KworLS0KKy0tIFRoZSBpbnRlZ2VyIGNyb3NzLXR5cGUgc3VwcG9ydCBpcyBoYW5kbGVkIGluc2lk ZSB0aGUgZXhpc3RpbmcKKy0tIGNvbnNpc3RlbnQvZGlzdGFuY2Ugc3VwcG9ydCBmdW5jdGlvbnMg KHdoaWNoIGRpc3BhdGNoIG9uIHRoZSBzdWJ0eXBlIE9JRCksCistLSBzbyB0aGUgb3BlcmF0b3Ig ZmFtaWxpZXMgbXVzdCBub3QgY29udGFpbiBhbnkgY3Jvc3MtdHlwZSAoZGlmZmVyZW50CistLSBs ZWZ0L3JpZ2h0IGlucHV0IHR5cGUpIHN1cHBvcnQtZnVuY3Rpb24gZW50cmllcy4KKy0tCitTRUxF Q1Qgb3BmLm9wZm5hbWUgQVMgb3BmYW1pbHksCisgICAgICAgYW1wcm9jLmFtcHJvY2xlZnR0eXBl OjpyZWd0eXBlIEFTIGxlZnR0eXBlLAorICAgICAgIGFtcHJvYy5hbXByb2NyaWdodHR5cGU6OnJl Z3R5cGUgQVMgcmlnaHR0eXBlLAorICAgICAgIGFtcHJvYy5hbXByb2NudW0gQVMgcHJvY251bSwK KyAgICAgICBhbXByb2MuYW1wcm9jOjpyZWdwcm9jIEFTIHByb2MKK0ZST00gcGdfYW1wcm9jIGFt cHJvYworICAgICBKT0lOIHBnX29wZmFtaWx5IG9wZiBPTiBvcGYub2lkID0gYW1wcm9jLmFtcHJv Y2ZhbWlseQorICAgICBKT0lOIHBnX2FtIGFtIE9OIGFtLm9pZCA9IG9wZi5vcGZtZXRob2QKK1dI RVJFIGFtLmFtbmFtZSA9ICdnaXN0JworICBBTkQgb3BmLm9wZm5hbWUgSU4gKCdnaXN0X2ludDJf b3BzJywgJ2dpc3RfaW50NF9vcHMnLCAnZ2lzdF9pbnQ4X29wcycpCisgIEFORCBhbXByb2MuYW1w cm9jbGVmdHR5cGUgPD4gYW1wcm9jLmFtcHJvY3JpZ2h0dHlwZQorT1JERVIgQlkgb3BmLm9wZm5h bWUsCisgICAgICAgICBhbXByb2MuYW1wcm9jbGVmdHR5cGU6OnJlZ3R5cGU6OnRleHQsCisgICAg ICAgICBhbXByb2MuYW1wcm9jcmlnaHR0eXBlOjpyZWd0eXBlOjp0ZXh0LAorICAgICAgICAgYW1w cm9jLmFtcHJvY251bSwKKyAgICAgICAgIGFtcHJvYy5hbXByb2M6OnJlZ3Byb2M6OnRleHQ7CisK K0NSRUFURSBUQUJMRSBjdF9pMiAoYSBpbnQyKTsKK0NSRUFURSBUQUJMRSBjdF9pNCAoYSBpbnQ0 KTsKK0NSRUFURSBUQUJMRSBjdF9pOCAoYSBpbnQ4KTsKKworSU5TRVJUIElOVE8gY3RfaTIgU0VM RUNUIGc6OmludDIgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoLTEwMCwgMTAwKSBnOworSU5TRVJUIElO VE8gY3RfaTQgU0VMRUNUIGcgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoLTEwMCwgMTAwKSBnOworSU5T RVJUIElOVE8gY3RfaTggU0VMRUNUIGc6OmludDggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoLTEwMCwg MTAwKSBnOworCistLSBBZGQgc29tZSB2YWx1ZXMgdGhhdCBhcmUgcmVwcmVzZW50YWJsZSBvbmx5 IGluIHdpZGVyIHR5cGVzLCB0byBleGVyY2lzZQorLS0gdGhlIHBhdGggd2hlcmUgdGhlIGNyb3Nz LXR5cGUgcXVlcnkgY29uc3RhbnQgaXMgb3V0IG9mIHJhbmdlIG9mIHRoZSBrZXkKKy0tIHR5cGUu CitJTlNFUlQgSU5UTyBjdF9pNCBWQUxVRVMgKDEwMDAwMCksICgtMTAwMDAwKTsKK0lOU0VSVCBJ TlRPIGN0X2k4IFZBTFVFUyAoNTAwMDAwMDAwMCksICgtNTAwMDAwMDAwMCk7CisKK0NSRUFURSBJ TkRFWCBjdF9pMl9pZHggT04gY3RfaTIgVVNJTkcgZ2lzdCAoYSk7CitDUkVBVEUgSU5ERVggY3Rf aTRfaWR4IE9OIGN0X2k0IFVTSU5HIGdpc3QgKGEpOworQ1JFQVRFIElOREVYIGN0X2k4X2lkeCBP TiBjdF9pOCBVU0lORyBnaXN0IChhKTsKKworQU5BTFlaRSBjdF9pMjsKK0FOQUxZWkUgY3RfaTQ7 CitBTkFMWVpFIGN0X2k4OworCitTRVQgZW5hYmxlX3NlcXNjYW4gPSBvZmY7CitTRVQgZW5hYmxl X2JpdG1hcHNjYW4gPSBvZmY7CisKKy0tIGludDIga2V5IHggaW50NCBxdWVyeQorU0VMRUNUIGNv dW50KCopIEZST00gY3RfaTIgV0hFUkUgYSA8ICA1MDo6aW50NDsKK1NFTEVDVCBjb3VudCgqKSBG Uk9NIGN0X2kyIFdIRVJFIGEgPD0gNTA6OmludDQ7CitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9p MiBXSEVSRSBhID0gIDUwOjppbnQ0OworU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTIgV0hFUkUg YSA+PSA1MDo6aW50NDsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X2kyIFdIRVJFIGEgPiAgNTA6 OmludDQ7CitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9pMiBXSEVSRSBhIDw+IDUwOjppbnQ0Owor CistLSBxdWVyeSBvdXQgb2YgaW50MiByYW5nZTogbWF0Y2hlcyBub3RoaW5nIGZvciA9LCBldmVy eXRoaW5nIGZvciA8PgorU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTIgV0hFUkUgYSA9ICAxMDAw MDA6OmludDQ7CitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9pMiBXSEVSRSBhIDw+IDEwMDAwMDo6 aW50NDsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X2kyIFdIRVJFIGEgPCAgMTAwMDAwOjppbnQ0 OworU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTIgV0hFUkUgYSA+ICAxMDAwMDA6OmludDQ7CisK Ky0tIGludDIga2V5IHggaW50OCBxdWVyeQorU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTIgV0hF UkUgYSA8ICA1MDo6aW50ODsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X2kyIFdIRVJFIGEgPD0g NTA6OmludDg7CitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9pMiBXSEVSRSBhID0gIDUwOjppbnQ4 OworU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTIgV0hFUkUgYSA+PSA1MDo6aW50ODsKK1NFTEVD VCBjb3VudCgqKSBGUk9NIGN0X2kyIFdIRVJFIGEgPiAgNTA6OmludDg7CitTRUxFQ1QgY291bnQo KikgRlJPTSBjdF9pMiBXSEVSRSBhIDw+IDUwOjppbnQ4OworU0VMRUNUIGNvdW50KCopIEZST00g Y3RfaTIgV0hFUkUgYSA9ICA1MDAwMDAwMDAwOjppbnQ4OworU0VMRUNUIGNvdW50KCopIEZST00g Y3RfaTIgV0hFUkUgYSA8ICA1MDAwMDAwMDAwOjppbnQ4OworCistLSBpbnQ0IGtleSB4IGludDIg cXVlcnkKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X2k0IFdIRVJFIGEgPCAgNTA6OmludDI7CitT RUxFQ1QgY291bnQoKikgRlJPTSBjdF9pNCBXSEVSRSBhIDw9IDUwOjppbnQyOworU0VMRUNUIGNv dW50KCopIEZST00gY3RfaTQgV0hFUkUgYSA9ICA1MDo6aW50MjsKK1NFTEVDVCBjb3VudCgqKSBG Uk9NIGN0X2k0IFdIRVJFIGEgPj0gNTA6OmludDI7CitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9p NCBXSEVSRSBhID4gIDUwOjppbnQyOworU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTQgV0hFUkUg YSA8PiA1MDo6aW50MjsKKworLS0gaW50NCBrZXkgeCBpbnQ4IHF1ZXJ5CitTRUxFQ1QgY291bnQo KikgRlJPTSBjdF9pNCBXSEVSRSBhIDwgIDUwOjppbnQ4OworU0VMRUNUIGNvdW50KCopIEZST00g Y3RfaTQgV0hFUkUgYSA8PSA1MDo6aW50ODsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X2k0IFdI RVJFIGEgPSAgNTA6OmludDg7CitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9pNCBXSEVSRSBhID49 IDUwOjppbnQ4OworU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTQgV0hFUkUgYSA+ICA1MDo6aW50 ODsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X2k0IFdIRVJFIGEgPD4gNTA6OmludDg7CitTRUxF Q1QgY291bnQoKikgRlJPTSBjdF9pNCBXSEVSRSBhID0gIDUwMDAwMDAwMDA6OmludDg7CitTRUxF Q1QgY291bnQoKikgRlJPTSBjdF9pNCBXSEVSRSBhIDwgIDUwMDAwMDAwMDA6OmludDg7CisKKy0t IGludDgga2V5IHggaW50MiBxdWVyeQorU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTggV0hFUkUg YSA8ICA1MDo6aW50MjsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X2k4IFdIRVJFIGEgPD0gNTA6 OmludDI7CitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9pOCBXSEVSRSBhID0gIDUwOjppbnQyOwor U0VMRUNUIGNvdW50KCopIEZST00gY3RfaTggV0hFUkUgYSA+PSA1MDo6aW50MjsKK1NFTEVDVCBj b3VudCgqKSBGUk9NIGN0X2k4IFdIRVJFIGEgPiAgNTA6OmludDI7CitTRUxFQ1QgY291bnQoKikg RlJPTSBjdF9pOCBXSEVSRSBhIDw+IDUwOjppbnQyOworCistLSBpbnQ4IGtleSB4IGludDQgcXVl cnkKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X2k4IFdIRVJFIGEgPCAgNTA6OmludDQ7CitTRUxF Q1QgY291bnQoKikgRlJPTSBjdF9pOCBXSEVSRSBhIDw9IDUwOjppbnQ0OworU0VMRUNUIGNvdW50 KCopIEZST00gY3RfaTggV0hFUkUgYSA9ICA1MDo6aW50NDsKK1NFTEVDVCBjb3VudCgqKSBGUk9N IGN0X2k4IFdIRVJFIGEgPj0gNTA6OmludDQ7CitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9pOCBX SEVSRSBhID4gIDUwOjppbnQ0OworU0VMRUNUIGNvdW50KCopIEZST00gY3RfaTggV0hFUkUgYSA8 PiA1MDo6aW50NDsKKworLS0gQ29uZmlybSB0aGUgaW5kZXggaXMgYWN0dWFsbHkgdXNlZCBmb3Ig YSBjcm9zcy10eXBlIHByZWRpY2F0ZS4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3Vu dCgqKSBGUk9NIGN0X2k0IFdIRVJFIGEgPSA1MDo6aW50ODsKKworLS0gQ3Jvc3MtdHlwZSBLTk46 IGludDQga2V5IG9yZGVyZWQgYnkgaW50MiAvIGludDggcXVlcmllcy4KK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBhIEZST00gY3RfaTQgT1JERVIgQlkgYSA8LT4gJy0xMDAnOjppbnQyIExJ TUlUIDM7CitTRUxFQ1QgYSBGUk9NIGN0X2k0IE9SREVSIEJZIGEgPC0+ICctMTAwJzo6aW50MiBM SU1JVCAzOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgYSBGUk9NIGN0X2k0IE9SREVS IEJZIGEgPC0+ICctMTAwJzo6aW50OCBMSU1JVCAzOworU0VMRUNUIGEgRlJPTSBjdF9pNCBPUkRF UiBCWSBhIDwtPiAnLTEwMCc6OmludDggTElNSVQgMzsKKworLS0gQ3Jvc3MtdHlwZSBLTk46IGlu dDIga2V5IG9yZGVyZWQgYnkgaW50NCAvIGludDggcXVlcmllcy4KK1NFTEVDVCBhIEZST00gY3Rf aTIgT1JERVIgQlkgYSA8LT4gJy0xMDAnOjppbnQ0IExJTUlUIDM7CitTRUxFQ1QgYSBGUk9NIGN0 X2kyIE9SREVSIEJZIGEgPC0+ICctMTAwJzo6aW50OCBMSU1JVCAzOworCistLSBDcm9zcy10eXBl IEtOTjogaW50OCBrZXkgb3JkZXJlZCBieSBpbnQyIC8gaW50NCBxdWVyaWVzLgorU0VMRUNUIGEg RlJPTSBjdF9pOCBPUkRFUiBCWSBhIDwtPiAnLTEwMCc6OmludDIgTElNSVQgMzsKK1NFTEVDVCBh IEZST00gY3RfaTggT1JERVIgQlkgYSA8LT4gJy0xMDAnOjppbnQ0IExJTUlUIDM7CisKKy0tIENv bWJpbmVkOiBjcm9zcy10eXBlIFdIRVJFICsgY3Jvc3MtdHlwZSBPUkRFUiBCWSBvbiB0aGUgc2Ft ZSBpbmRleC4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBhIEZST00gY3RfaTQgV0hFUkUg YSA8IDgwOjppbnQ4IE9SREVSIEJZIGEgPC0+ICctMTAwJzo6aW50OCBMSU1JVCAzOworU0VMRUNU IGEgRlJPTSBjdF9pNCBXSEVSRSBhIDwgODA6OmludDggT1JERVIgQlkgYSA8LT4gJy0xMDAnOjpp bnQ4IExJTUlUIDM7CisKKy0tIFN0YW5kYWxvbmUgZGlzdGFuY2UtZnVuY3Rpb24gc21va2UgdGVz dHMgKG5vdCBnb2luZyB0aHJvdWdoIHRoZSBpbmRleCksCistLSBpbmNsdWRpbmcgdGhlIG92ZXJm bG93LWRldGVjdGlvbiBwYXRocy4KK1NFTEVDVCBpbnQyX2ludDRfZGlzdCgzOjppbnQyLCAxMDo6 aW50NCk7CitTRUxFQ1QgaW50NF9pbnQyX2Rpc3QoLTU6OmludDQsIDU6OmludDIpOworU0VMRUNU IGludDJfaW50OF9kaXN0KDM6OmludDIsIDEwOjppbnQ4KTsKK1NFTEVDVCBpbnQ4X2ludDJfZGlz dCgxMDA6OmludDgsIC01OjppbnQyKTsKK1NFTEVDVCBpbnQ0X2ludDhfZGlzdCgxMDA6OmludDQs IDUwMDAwMDAwMDA6OmludDgpOworU0VMRUNUIGludDhfaW50NF9kaXN0KDUwMDAwMDAwMDA6Omlu dDgsIDEwMDo6aW50NCk7CisKKy0tIE92ZXJmbG93IGRldGVjdGlvbjogSU5UMzJfTUlOIGRpc3Rh bmNlIGZyb20gYSBwb3NpdGl2ZSBpbnQyIGNhbid0IGZpdAorLS0gaW4gaW50MzIsIHNob3VsZCBl cnJvci4KK1NFTEVDVCBpbnQyX2ludDRfZGlzdCgxOjppbnQyLCAtMjE0NzQ4MzY0ODo6aW50NCk7 CistLSBMaWtld2lzZSBJTlQ2NF9NSU4gZGlzdGFuY2UgZnJvbSBhIHBvc2l0aXZlIGludDQgY2Fu J3QgZml0IGluIGludDY0LgorU0VMRUNUIGludDRfaW50OF9kaXN0KDE6OmludDQsIC05MjIzMzcy MDM2ODU0Nzc1ODA4OjppbnQ4KTsKKworLS0KKy0tIE11bHRpLWNvbHVtbiBHaVNUIGluZGV4IHdp dGggbWl4ZWQtdHlwZSBwcmVkaWNhdGVzLiBUaGlzIGlzIHRoZQorLS0gb3JpZ2luYWwgbW90aXZh dGluZyBjYXNlOiB3aXRob3V0IGNyb3NzLXR5cGUgb3BlcmF0b3Igc3VwcG9ydCB0aGUKKy0tIHBs YW5uZXIgY2FuIG9ubHkgdXNlIG9uZSBjb2x1bW4gYXMgYW4gSW5kZXggQ29uZCBhbmQgYXBwbGll cyB0aGUKKy0tIG90aGVyKHMpIGFzIGEgRmlsdGVyIHBvc3Qtc2Nhbi4gSGVyZSBib3RoIGNvbHVt bnMgc2hvdWxkIGFwcGVhciBhcworLS0gSW5kZXggQ29uZC4KKy0tCitDUkVBVEUgVEFCTEUgY3Rf bXVsdGkgKGEgaW50NCwgYiBpbnQ4KTsKK0lOU0VSVCBJTlRPIGN0X211bHRpCisgICAgU0VMRUNU IGcsIChnICogMik6OmludDggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoLTUwLCA1MCkgZzsKK0NSRUFU RSBJTkRFWCBjdF9tdWx0aV9pZHggT04gY3RfbXVsdGkgVVNJTkcgZ2lzdCAoYSwgYik7CitBTkFM WVpFIGN0X211bHRpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgRlJP TSBjdF9tdWx0aSBXSEVSRSBhID0gMjU6OmludDggQU5EIGIgPSA1MDo6aW50NDsKKworU0VMRUNU IGNvdW50KCopIEZST00gY3RfbXVsdGkgV0hFUkUgYSA9IDI1OjppbnQ4IEFORCBiID0gNTA6Omlu dDQ7CisKKy0tIE1peGVkIGNyb3NzLXR5cGUgcmFuZ2VzIGFjcm9zcyBib3RoIGNvbHVtbnMuCitF WFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9tdWx0aSBXSEVSRSBh IDwgMTA6OmludDggQU5EIGIgPiAwOjppbnQyOworCitTRUxFQ1QgY291bnQoKikgRlJPTSBjdF9t dWx0aSBXSEVSRSBhIDwgMTA6OmludDggQU5EIGIgPiAwOjppbnQyOworCitEUk9QIFRBQkxFIGN0 X211bHRpOworCistLQorLS0gV2lkdGgtc2Vuc2l0aXZpdHkgZ3VhcmQgKGludDE2IHZzIGludDMy KS4KKy0tCistLSBUaGUgY3Jvc3MtdHlwZSBjYWxsYmFja3MgbXVzdCByZWFkIGVhY2ggc2lkZSBh dCBpdHMgT1dOIHdpZHRoOiB0aGUgcXVlcnkgYXQKKy0tIHRoZSBzdWJ0eXBlIHdpZHRoIGFuZCB0 aGUga2V5IGF0IHRoZSBpbmRleGVkLWNvbHVtbiB3aWR0aCwgbmV2ZXIgbmFycm93aW5nCistLSBv bmUgdG8gdGhlIG90aGVyLiBUaGVzZSBjYXNlcyBhcmUgY29uc3RydWN0ZWQgc28gdGhhdCByZWFk aW5nIGVpdGhlciBzaWRlIGF0CistLSB0aGUgd3Jvbmcgd2lkdGggY2hhbmdlcyB0aGUgYW5zd2Vy IC0tIGEgZGlzcGF0Y2ggZW50cnkgcmV0dXJuaW5nIHRoZQorLS0gd3Jvbmctd2lkdGggdGluZm8s IGFuIGludDQga2V5IHRydW5jYXRlZCB0byBpbnQxNiwgb3IgdGhlIHF1ZXJ5L2tleSBhcmd1bWVu dHMKKy0tIGJlaW5nIHN3YXBwZWQgaW4gZ2J0X251bV9jb25zaXN0ZW50KCkvZ2J0X251bV9kaXN0 YW5jZSgpIHdvdWxkIGFsbCBmbGlwIHRoZQorLS0gcmVzdWx0LCBiZWNhdXNlIGVhY2ggd2lkZSBj b25zdGFudCBzaGFyZXMgaXRzIGxvdyAxNiBiaXRzIHdpdGggYSB2YWx1ZSBwcmVzZW50CistLSBp biB0aGUgZGF0YS4gZW5hYmxlX3NlcXNjYW4vYml0bWFwc2NhbiBhcmUgYWxyZWFkeSBvZmYsIHNv IHRoZSBHaVNUCistLSBjb25zaXN0ZW50L2Rpc3RhbmNlIHBhdGggaXMgZXhlcmNpc2VkLgorLS0K K0NSRUFURSBUQUJMRSBjdF93NCAoayBpbnQ0KTsKK0lOU0VSVCBJTlRPIGN0X3c0IFZBTFVFUyAo MSksICg2NTUzOCk7CQktLSA2NTUzOCA9IDB4MTAwMDIsIGxvdyAxNiBiaXRzID0gMgorQ1JFQVRF IElOREVYIGN0X3c0X2lkeCBPTiBjdF93NCBVU0lORyBnaXN0IChrKTsKK0FOQUxZWkUgY3RfdzQ7 CisKKy0tIGludDQga2V5IHZzIGludDIgcXVlcnk6IDY1NTM4IG11c3QgY29tcGFyZSBhcyA2NTUz OCwgbm90IGFzIDIuCistLSBjb3JyZWN0OiB7NjU1Mzh9OyBhbiBpbnQ0IGtleSB0cnVuY2F0ZWQg dG8gaW50MTYgKDY1NTM4IC0+IDIpIHdvdWxkIGdpdmUge30uCitTRUxFQ1QgayBGUk9NIGN0X3c0 IFdIRVJFIGsgPiAxMDAwOjppbnQyIE9SREVSIEJZIGs7CistLSBjb3JyZWN0OiB7fSAobm8ga2V5 IGVxdWFscyAyKTsgYSB0cnVuY2F0ZWQga2V5ICg2NTUzOCAtPiAyKSB3b3VsZCBtYXRjaC4KK1NF TEVDVCBrIEZST00gY3RfdzQgV0hFUkUgayA9IDI6OmludDIgT1JERVIgQlkgazsKKworLS0gS05O OiBuZWFyZXN0IHRvIDIgaXMgMSAoZGlzdGFuY2UgMSkuIGVuYWJsZV9zb3J0PW9mZiBzdGVlcnMg dGhlIHBsYW5uZXIgdG8KKy0tIHRoZSBHaVNUIEtOTiBkaXN0YW5jZSBwYXRoIHJhdGhlciB0aGFu IGEgU29ydCBvbiB0aGUgb3BlcmF0b3IuIEEgdHJ1bmNhdGVkCistLSBrZXkgKDY1NTM4IC0+IDIs IGRpc3RhbmNlIDApIHdvdWxkIHdyb25nbHkgc29ydCA2NTUzOCBmaXJzdC4gKFdlIGFzc2VydCB0 aGUKKy0tIHJlc3VsdCwgbm90IHRoZSBwbGFuIHNoYXBlLCB0byBzdGF5IHBvcnRhYmxlIGFjcm9z cyB2aXNpYmlsaXR5LW1hcCBzdGF0ZS4pCitTRVQgZW5hYmxlX3NvcnQgPSBvZmY7CitTRUxFQ1Qg ayBGUk9NIGN0X3c0IE9SREVSIEJZIGsgPC0+IDI6OmludDIgTElNSVQgMTsKK1JFU0VUIGVuYWJs ZV9zb3J0OworCitDUkVBVEUgVEFCTEUgY3RfdzIgKGsgaW50Mik7CitJTlNFUlQgSU5UTyBjdF93 MiBWQUxVRVMgKDEpLCAoNTApOworQ1JFQVRFIElOREVYIGN0X3cyX2lkeCBPTiBjdF93MiBVU0lO RyBnaXN0IChrKTsKK0FOQUxZWkUgY3RfdzI7CisKKy0tIGludDIga2V5IHZzIGludDQgcXVlcnk6 IDY1NTM3IG11c3QgY29tcGFyZSBhcyA2NTUzNywgbm90IGFzIDEgKDB4MTAwMDEpLgorLS0gY29y cmVjdDogMDsgYW4gaW50NCBxdWVyeSB0cnVuY2F0ZWQgdG8gaW50MTYgKDY1NTM3IC0+IDEpIHdv dWxkIG1hdGNoIGs9MS4KK1NFTEVDVCBjb3VudCgqKSBGUk9NIGN0X3cyIFdIRVJFIGsgPSA2NTUz Nzo6aW50NDsKKy0tIGNvcnJlY3Q6IDA7IGEgdHJ1bmNhdGVkIHF1ZXJ5ICg2NTUzNyAtPiAxKSB3 b3VsZCBtYXRjaCBrPTUwLgorU0VMRUNUIGNvdW50KCopIEZST00gY3RfdzIgV0hFUkUgayA+IDY1 NTM3OjppbnQ0OworCitEUk9QIFRBQkxFIGN0X3c0OworRFJPUCBUQUJMRSBjdF93MjsKKworRFJP UCBUQUJMRSBjdF9pMjsKK0RST1AgVEFCTEUgY3RfaTQ7CitEUk9QIFRBQkxFIGN0X2k4OwotLSAK Mi41MS4wCgo= --6a3bf914_34e1218d_5be Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="=?utf-8?Q?v5-0003-doc-Document-cross-type-operator-support-in-btree=5Fgi.patch?=" RnJvbSBlZmU2NGM4ZDFmZmJjMDcyOWRlODUwYzc5YTQ3YzlkMWNlNjJkNTRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgTmVzdG9yb3YgPGFsZXhhbmRlcm5zdEBnbWFp bC5jb20+CkRhdGU6IFRodSwgNCBKdW4gMjAyNiAwMDowOTowOCArMDIwMApTdWJqZWN0OiBbUEFU Q0hdIGRvYzogRG9jdW1lbnQgY3Jvc3MtdHlwZSBvcGVyYXRvciBzdXBwb3J0IGluIGJ0cmVlX2dp c3QKCk5vdGUgdGhhdCBhcyBvZiBidHJlZV9naXN0IDEuMTAgdGhlIGludDIsIGludDQgYW5kIGlu dDggb3BlcmF0b3IKY2xhc3NlcyBhY2NlcHQgY3Jvc3MtdHlwZSBxdWVyeSBvcGVyYXRvcnMgKHRo ZSBCLXRyZWUgY29tcGFyaXNvbgpvcGVyYXRvcnMgYW5kIHRoZSA8LT4gZGlzdGFuY2Ugb3BlcmF0 b3IpIGFnYWluc3QgdGhlIG90aGVyIHR3bwppbnRlZ2VyIHR5cGVzIHdpdGhvdXQgYW4gZXhwbGlj aXQgY2FzdCwgYW5kIHRoYXQgb3V0LW9mLXJhbmdlIHF1ZXJ5CmNvbnN0YW50cyBhcmUgY29tcGFy ZWQgYnkgbm9ybWFsIGludGVnZXIgc2VtYW50aWNzLgoKQWxzbyBkb2N1bWVudCB0aGF0IHRoZSBp bnRlZ2VyIDwtPiBkaXN0YW5jZSBpcyBjb21wdXRlZCBpbiBmbG9hdDgsIHNvCmZvciBpbnQ4IGRp c3RhbmNlcyBiZXlvbmQgMl41MyB0aGUgcmVzdWx0IGxvc2VzIHByZWNpc2lvbiBhbmQgbWF5CnJl b3JkZXIgbmVhcmx5LWVxdWlkaXN0YW50IG1hdGNoZXM7IGl0IG5ldmVyIGNoYW5nZXMgd2hpY2gg cm93cyBtYXRjaC4KLS0tCiBkb2Mvc3JjL3NnbWwvYnRyZWUtZ2lzdC5zZ21sIHwgMjQgKysrKysr KysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9idHJlZS1naXN0LnNnbWwgYi9kb2Mvc3JjL3NnbWwvYnRy ZWUtZ2lzdC5zZ21sCmluZGV4IGNjMDllYzgzNzMzLi4xYjFkY2U3MDdjZiAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2J0cmVlLWdpc3Quc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvYnRyZWUtZ2lz dC5zZ21sCkBAIC00OSwxMiArNDksMzYgQEAKICAgPHR5cGU+ZmxvYXQ4PC90eXBlPiwgPHR5cGU+ dGltZXN0YW1wIHdpdGggdGltZSB6b25lPC90eXBlPiwKICAgPHR5cGU+dGltZXN0YW1wIHdpdGhv dXQgdGltZSB6b25lPC90eXBlPiwKICAgPHR5cGU+dGltZSB3aXRob3V0IHRpbWUgem9uZTwvdHlw ZT4sIDx0eXBlPmRhdGU8L3R5cGU+LCA8dHlwZT5pbnRlcnZhbDwvdHlwZT4sCiAgIDx0eXBlPm9p ZDwvdHlwZT4sIGFuZCA8dHlwZT5tb25leTwvdHlwZT4uCiAgPC9wYXJhPgogCisgPHBhcmE+Cisg IEFzIG9mIHZlcnNpb24gMS4xMCwgdGhlIG9wZXJhdG9yIGNsYXNzZXMgZm9yIDx0eXBlPmludDI8 L3R5cGU+LAorICA8dHlwZT5pbnQ0PC90eXBlPiBhbmQgPHR5cGU+aW50ODwvdHlwZT4gYWRkaXRp b25hbGx5IHN1cHBvcnQgY3Jvc3MtdHlwZQorICBxdWVyeSBvcGVyYXRvcnMuIEFuIGluZGV4IG9u IGFueSBvbmUgb2YgdGhlc2UgaW50ZWdlciB0eXBlcyBjYW4gYmUgdXNlZAorICB3aXRoIGEgQi10 cmVlLXN0eWxlIGNvbXBhcmlzb24gKDxsaXRlcmFsPiZsdDs8L2xpdGVyYWw+LAorICA8bGl0ZXJh bD4mbHQ7PTwvbGl0ZXJhbD4sIDxsaXRlcmFsPj08L2xpdGVyYWw+LCA8bGl0ZXJhbD4mZ3Q7PTwv bGl0ZXJhbD4sCisgIDxsaXRlcmFsPiZndDs8L2xpdGVyYWw+LCA8bGl0ZXJhbD4mbHQ7Jmd0Ozwv bGl0ZXJhbD4pIG9yIHdpdGggdGhlCisgIGRpc3RhbmNlIG9wZXJhdG9yICg8bGl0ZXJhbD4mbHQ7 LSZndDs8L2xpdGVyYWw+KSBhZ2FpbnN0IGEgdmFsdWUgb2YgYW55CisgIG9mIHRoZSBvdGhlciB0 d28gaW50ZWdlciB0eXBlcywgd2l0aG91dCBhbiBleHBsaWNpdCBjYXN0LiBRdWVyeQorICBjb25z dGFudHMgb3V0c2lkZSB0aGUgaW5kZXhlZCBjb2x1bW4ncyByYW5nZSBhcmUgY29tcGFyZWQgYWNj b3JkaW5nIHRvCisgIG5vcm1hbCBpbnRlZ2VyIGNvbXBhcmlzb24gc2VtYW50aWNzLCB3aXRob3V0 IG5hcnJvd2luZyB0aGUgcXVlcnkgdmFsdWUKKyAgdG8gdGhlIGNvbHVtbiB0eXBlIGZpcnN0Lgor IDwvcGFyYT4KKworIDxwYXJhPgorICBUaGUgaW50ZWdlciBkaXN0YW5jZSBvcGVyYXRvciAoPGxp dGVyYWw+Jmx0Oy0mZ3Q7PC9saXRlcmFsPikgdXNlZCBmb3IKKyAgbmVhcmVzdC1uZWlnaGJvciAo PGxpdGVyYWw+T1JERVIgQlk8L2xpdGVyYWw+KSBzZWFyY2hlcyBjb21wdXRlcyB0aGUKKyAgZGlz dGFuY2UgaW4gPHR5cGU+ZmxvYXQ4PC90eXBlPi4gRm9yIDx0eXBlPmludDg8L3R5cGU+IHZhbHVl cyB3aG9zZQorICBkaXN0YW5jZSBmcm9tIHRoZSBxdWVyeSBleGNlZWRzIDJeNTMsIHRoZSByZXN1 bHQgbG9zZXMgcHJlY2lzaW9uIGFuZAorICBtYXkgcmVvcmRlciByZXN1bHRzIHRoYXQgYXJlIG5l YXJseSBlcXVpZGlzdGFudDsgaXQgbmV2ZXIgY2hhbmdlcyB3aGljaAorICByb3dzIG1hdGNoLiBU aGlzIGFwcGxpZXMgZXF1YWxseSB0byBzYW1lLXR5cGUgYW5kIGNyb3NzLXR5cGUKKyAgPHR5cGU+ aW50ODwvdHlwZT4gZGlzdGFuY2Ugc2VhcmNoZXMuCisgPC9wYXJhPgorCiAgPHBhcmE+CiAgIEJ5 IGRlZmF1bHQgPGZpbGVuYW1lPmJ0cmVlX2dpc3Q8L2ZpbGVuYW1lPiBidWlsZHMgPGFjcm9ueW0+ R2lTVDwvYWNyb255bT4gaW5kZXggd2l0aAogICA8ZnVuY3Rpb24+c29ydHN1cHBvcnQ8L2Z1bmN0 aW9uPiBpbiA8Zmlyc3R0ZXJtPnNvcnRlZDwvZmlyc3R0ZXJtPiBtb2RlLiBUaGlzIHVzdWFsbHkg cmVzdWx0cyBpbgogICBtdWNoIGZhc3RlciBpbmRleCBidWlsdCBzcGVlZC4gSXQgaXMgc3RpbGwg cG9zc2libGUgdG8gcmV2ZXJ0IHRvIGJ1ZmZlcmVkIGJ1aWx0IHN0cmF0ZWd5CiAgIGJ5IHVzaW5n IHRoZSA8bGl0ZXJhbD5idWZmZXJpbmc8L2xpdGVyYWw+IHBhcmFtZXRlciB3aGVuIGNyZWF0aW5n IHRoZSBpbmRleC4KICA8L3BhcmE+Ci0tIAoyLjUxLjAKCg== --6a3bf914_34e1218d_5be--