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 1viW9G-008ZVL-1j for pgsql-hackers@arkaria.postgresql.org; Wed, 21 Jan 2026 11:13:19 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1viW9F-006ffz-2K for pgsql-hackers@arkaria.postgresql.org; Wed, 21 Jan 2026 11:13:18 +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 1viW9F-006ffr-18 for pgsql-hackers@lists.postgresql.org; Wed, 21 Jan 2026 11:13:17 +0000 Received: from mail-qt1-x844.google.com ([2607:f8b0:4864:20::844]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1viW9D-001hnS-1C for pgsql-hackers@lists.postgresql.org; Wed, 21 Jan 2026 11:13:17 +0000 Received: by mail-qt1-x844.google.com with SMTP id d75a77b69052e-50143fe869fso70899471cf.1 for ; Wed, 21 Jan 2026 03:13:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1768993994; cv=none; d=google.com; s=arc-20240605; b=LFJ7dwPVRwCAoPJyS2U5yCelFpbcnjOs2ebpIv1XRrp3MNsXLs/OR1ODr8nL/Dyhnb vfoF94gNaJg4QQjDPrnFzvEGAONMRn0y/dBDsRP+prKK3Lj9gKTWyTTDGrGcatvm4L4s 3NpUgR326CkGFaEm7tFW9eOShf5GgdbbUmvCSmCCuQAochoQS4Sg1SSHGeX17v/gGv4h tjMVx2E999J0vq5yKUC+nTeBiP3sx0dep0fYfEIB72ZpW7XGRQ9IqeXcHzAY/LKT7MAE XoANudYndMpkUHmNgjatU1kjscAfQba47FjmdNu2I2tiUHWp3SnZyGLP8aZeEWSfcAAv l7eA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=xBhe3cc4fhaq55D62NpwxApg4CIV58izh5bKo0rMLmE=; fh=eWeIWnSkds52YDlesc4eeQxUQvIlkSKaLyQqUNiyBks=; b=f8iCjxV6byW3d1X99pU5PkLWip+rYX+6O6w1WLAF1eoHDRPlHeCjLC1Hs0ilMavLOs gxf3jjJhz9BR0kdjfEJ5+w5AxttEXjt1FdpWSQ+UjBsRldUhBijgjKS7y9VC1ZHmyMKl YYcY6BEldnrof/lCf0P8cKwhrH8KPUaQZTPS+7Y8foEnekBVxopyPeiOkHheUpTkIj5E eDRjjRPkLG9yFQbVHSy5pTS13FT4x16wrPhumThWKfnT8rKIVDrVAHhQC8hKjm16qmwZ M2v6CtLO9Fc+zIlrWbHpYjGn2hQp4Eq25y8eYPtvW6Z0YR+jZFcUNb6SlrTqrVHAliSf 3c2Q==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768993994; x=1769598794; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=xBhe3cc4fhaq55D62NpwxApg4CIV58izh5bKo0rMLmE=; b=IgcZTR0bmBeTCV4rebUzS7usdeo8rJwolnCQiNwtzcJHCRRvAjwwXxw2esN68KOSmw WML0zuhliNi0eLCezqHLPdUIeux++nZJNXFwPB+ZPCfoIZmLscTa3G8J4cefPt/8tXBG YPY00lVOyt/EPGQIbex9ndZVt3K7i7uDx/Z+9IU9Z7rK3MYyACPfCjmdixiiJiqe3TN/ g6O8bN/wBJuzexsyKn8azu04K2TKjofdh2bWoq3pM6MgT8e9g45JYJf2SF+499wChS0w dRUEGrOdIrj4SH+FXU4vjA0dZx6CoYG9+dauWCOSSSUgqEisonTx/mrurXj5XzoiEimU eWkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768993994; x=1769598794; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=xBhe3cc4fhaq55D62NpwxApg4CIV58izh5bKo0rMLmE=; b=CtlLa6hnbM3ogjiedN7hQ+V8IhSuGnbi8eBBeVNuw8QAjjgwuuQYrgmgmk2aig7f6X AsdpQ02cJ3fpQMhszdo1QnGsYOMIhcNcfgBYysiBhkNMFS20jo+gj+xcTQ2+Hdar7D25 diS1k0Fbi9HNyrW4aAR1gwy9KkVKirixH6acq8bMAZIzIldImtiiIWREh8B33Qlj8fE2 vwEcnDFDqM48KaVL72kwfBrRfVkAGSImKqmp1r+FAu5qgoavZh3tff1vTVX5XSv/oKld 3+JHSPAqMF0c8cnqbdhpXI+PRABjXNmr3BHnlbqJHUGGQLFIePP5lxUzoU4D2ABW5QaM 9zpA== X-Forwarded-Encrypted: i=1; AJvYcCXjULUtJHv9cQ6vJxxg+WqgPNFEnKUeF4k4ylPnmSb5HvDMnZwmUhHCgt3tH6kZhT8iu8udMwNS71PAT3A8@lists.postgresql.org X-Gm-Message-State: AOJu0YxT5cz3pREnNFLay1SlFFkykvY1XwUeg77/SW3uJKevtbwx6KNv 5GISPjsWFhXU1Y7Z8ALknCiqon9jLut6IL4cwHvW8ZytIBud5Y6saBD6wWnIyC2FQGiLq91EX3b 5LAUURdQCJGWpxsmeal3G7JWX6Ee/864= X-Gm-Gg: AZuq6aJ56kGlueY3Ppt5Z7hZzErVgUEY5Xk9raEGVmZPnltxQN8Lmy6sO97LnxxKkDS fwKNhjE+rbTcD7IiU8ZIUZrKNuA/9EDpBVvtRARPUtb/hahlvm0BdOqwzPkaDKjd2XvaBbwbdu4 xcaxvFIwaZg8+hPtUO5QFCyp/RYmbCE4iNgWQjd7KN5r119LxfKvD38nGZRwFkcTL7nCraPQojd uPgO287xfOjnTV/uy2OcRl+KoDqC81A6ht8VfsruVgO88LYYckmd55ZuvokhZ+mv1G0b6dHgVsL qHRWEkn8Wwq2Iu+6jQwvClM+Mplryqz6Xgvnz15grgpftS+0DvFe6oDOiV9GzmyrvHrFSDZF7Xl VOzG0JYjy7LRR/Di/1Y+IOY/WIg== X-Received: by 2002:ac8:5f49:0:b0:502:a3b:f367 with SMTP id d75a77b69052e-502a16b31f7mr252197351cf.51.1768993993622; Wed, 21 Jan 2026 03:13:13 -0800 (PST) MIME-Version: 1.0 References: <20250911054220.3784-1-root@ip-172-31-36-228.ec2.internal> <0be1b7b05726652ea0d83e8f72fd4cfe@postgrespro.ru> In-Reply-To: <0be1b7b05726652ea0d83e8f72fd4cfe@postgrespro.ru> From: John Naylor Date: Wed, 21 Jan 2026 18:13:02 +0700 X-Gm-Features: AZwV_QjANb5Qn30CSot-d0LqL3nuzWQ9nyl2TBLENgKxjaB5QARcEl9byGnuHac Message-ID: Subject: Re: Proposal for enabling auto-vectorization for checksum calculations To: Oleg Tselebrovskiy Cc: Andrew Kim , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="0000000000009a3c710648e402d3" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009a3c710648e402d3 Content-Type: text/plain; charset="UTF-8" Attached is v11 to fix headerscheck, per CI. -- John Naylor Amazon Web Services --0000000000009a3c710648e402d3 Content-Type: application/x-patch; name="v11-0003-Enable-autovectorizing-pg_checksum_block-with-AV.patch" Content-Disposition: attachment; filename="v11-0003-Enable-autovectorizing-pg_checksum_block-with-AV.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mknww8510 RnJvbSA1ZjYwZTQ0NTdmYTZlNjdiMmQxODY4OTVhNGYzZTEwYWM4Nzk4OWVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE5heWxvciA8am9obi5uYXlsb3JAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IFRodSwgOCBKYW4gMjAyNiAxODozMDoyMCArMDcwMApTdWJqZWN0OiBbUEFUQ0gg djExIDMvM10gRW5hYmxlIGF1dG92ZWN0b3JpemluZyBwZ19jaGVja3N1bV9ibG9jayB3aXRoIEFW WDIKIHJ1bnRpbWUgZGV0ZWN0aW9uCgpXZSBhbHJlYWR5IHJlbHkgb24gYXV0b3ZlY3Rvcml6YXRp b24gZm9yIGNvbXB1dGluZyBwYWdlIGNoZWNrc3VtcywKYnV0IG9uIHg4NiB3ZSBjYW4gZ2V0IGFi b3V0IHR3aWNlIHRoZSBwZXJmb3JtYW5jZSBieSBhbm5vdGF0aW5nCnBnX2NoZWNrc3VtX2Jsb2Nr KCkgd2l0aCBmdW5jdGlvbiB0YXJnZXQgYXR0cmlidXRlcyBmb3IgQVZYMiwKd2hpY2ggdXNlcyAy NTYtYml0IHJlZ2lzdGVycy4KCldJUDogUnVudGltZSBkZXRlY3Rpb24gaXMgb2theSBjaGVja3N1 bS5jIGZvciBub3csIGJ1dCBpdCdkIGJlIGJldHRlcgp0byByZWZhY3RvciBmZWF0dXJlIGRldGVj dGlvbiBhdCBzb21lIHBvaW50IHNvIGl0J3MgbW9yZSBjZW50cmFsaXplZC4KCkNvLWF1dGhvcmVk LWJ5OiBNYXR0aGV3IFN0ZXJyZXR0IDxtYXR0aGV3c3RlcnJldHQyQGdtYWlsLmNvbT4KQ28tYXV0 aG9yZWQtYnk6IEFuZHJldyBLaW0gPGFuZHJldy5raW1AaW50ZWwuY29tPgpSZXZpZXdlZC1ieTog T2xlZyBUc2VsZWJyb3Zza2l5IDxvLnRzZWxlYnJvdnNraXlAcG9zdGdyZXNwcm8ucnU+CkRpc2N1 c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0ElMkJ2QTg1XzVHVHUlMkJISG5pU2J2dlAlMkI4 azMlM0R4Wk8lM0RXRTg0TlB3aUt5eHp0cXZwZlozUSU0MG1haWwuZ21haWwuY29tCkRpc2N1c3Np b246IGh0dHBzOi8vcG9zdGdyLmVzL20vMjAyNTA5MTEwNTQyMjAuMzc4NC0xLXJvb3QlNDBpcC0x NzItMzEtMzYtMjI4LmVjMi5pbnRlcm5hbAotLS0KIGNvbmZpZy9jLWNvbXBpbGVyLm00ICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAyNiArKysrCiBjb25maWd1cmUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgNTIgKysrKysrKysKIGNvbmZpZ3VyZS5hYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArKwogbWVzb24uYnVpbGQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMwICsrKysrCiBzcmMvYmFja2VuZC9zdG9yYWdl L3BhZ2UvY2hlY2tzdW0uYyAgICAgICAgICAgfCAxMTIgKysrKysrKysrKysrKysrKystCiBzcmMv aW5jbHVkZS9wZ19jb25maWcuaC5pbiAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2lu Y2x1ZGUvc3RvcmFnZS9jaGVja3N1bV9ibG9ja19pbnRlcm5hbC5oIHwgIDQyICsrKysrKysKIHNy Yy9pbmNsdWRlL3N0b3JhZ2UvY2hlY2tzdW1faW1wbC5oICAgICAgICAgICB8ICA0OCArKystLS0t LQogc3JjL3Rvb2xzL3BnaW5jbHVkZS9oZWFkZXJzY2hlY2sgICAgICAgICAgICAgIHwgICAyICsK IDkgZmlsZXMgY2hhbmdlZCwgMjkwIGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL3N0b3JhZ2UvY2hlY2tzdW1fYmxvY2tfaW50ZXJu YWwuaAoKZGlmZiAtLWdpdCBhL2NvbmZpZy9jLWNvbXBpbGVyLm00IGIvY29uZmlnL2MtY29tcGls ZXIubTQKaW5kZXggMTUwOWRiZmEyYWIuLjFmM2UzMWZjMmQzIDEwMDY0NAotLS0gYS9jb25maWcv Yy1jb21waWxlci5tNAorKysgYi9jb25maWcvYy1jb21waWxlci5tNApAQCAtNjEzLDYgKzYxMywz MiBAQCBmaQogdW5kZWZpbmUoW0FjX2NhY2hldmFyXSlkbmwKIF0pIyBQR0FDX1NTRTQyX0NSQzMy X0lOVFJJTlNJQ1MKIAorIyBQR0FDX0FWWDJfU1VQUE9SVAorIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyMgQ2hlY2sgaWYgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIEFWWDIgdGFyZ2V0IGF0 dHJpYnV0ZS4KKyMgVGhpcyBpcyB1c2VkIGZvciBvcHRpbWl6ZWQgY2hlY2tzdW0gY2FsY3VsYXRp b25zIHdpdGggcnVudGltZSBkZXRlY3Rpb24uCisjCisjIElmIEFWWDIgdGFyZ2V0IGF0dHJpYnV0 ZSBpcyBzdXBwb3J0ZWQsIHNldHMgcGdhY19hdngyX3N1cHBvcnQuCitBQ19ERUZVTihbUEdBQ19B VlgyX1NVUFBPUlRdLAorW2RlZmluZShbQWNfY2FjaGV2YXJdLCBbQVNfVFJfU0goW3BnYWNfY3Zf YXZ4Ml9zdXBwb3J0XSldKWRubAorQUNfQ0FDSEVfQ0hFQ0soW2ZvciBBVlgyIHRhcmdldCBhdHRy aWJ1dGUgc3VwcG9ydF0sIFtBY19jYWNoZXZhcl0sCitbQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xB TkdfUFJPR1JBTShbI2luY2x1ZGUgPHN0ZGludC5oPgorICAgICNpZiBkZWZpbmVkKF9faGFzX2F0 dHJpYnV0ZSkgJiYgX19oYXNfYXR0cmlidXRlICh0YXJnZXQpCisgICAgX19hdHRyaWJ1dGVfXygo dGFyZ2V0KCJhdngyIikpKQorICAgIHN0YXRpYyBpbnQgYXZ4Ml90ZXN0KHZvaWQpCisgICAgewor ICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgICNlbmRpZl0sCisgIFtyZXR1cm4gYXZ4Ml90ZXN0 KCk7XSldLAorICBbQWNfY2FjaGV2YXI9eWVzXSwKKyAgW0FjX2NhY2hldmFyPW5vXSldKQoraWYg dGVzdCB4IiRBY19jYWNoZXZhciIgPSB4InllcyI7IHRoZW4KKyAgcGdhY19hdngyX3N1cHBvcnQ9 eWVzCitmaQordW5kZWZpbmUoW0FjX2NhY2hldmFyXSlkbmwKK10pIyBQR0FDX0FWWDJfU1VQUE9S VAorCiAjIFBHQUNfQVZYNTEyX1BDTE1VTF9JTlRSSU5TSUNTCiAjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIyBDaGVjayBpZiB0aGUgY29tcGlsZXIgc3VwcG9ydHMgQVZYLTUxMiBjYXJy eWxlc3MgbXVsdGlwbGljYXRpb24KZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQpp bmRleCAwNGVlYjFhNzQxYy4uNzJjOTM1YzVkODMgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysg Yi9jb25maWd1cmUKQEAgLTE3NjgwLDYgKzE3NjgwLDU4IEBAICRhc19lY2hvICIjZGVmaW5lIEhB VkVfWFNBVkVfSU5UUklOU0lDUyAxIiA+PmNvbmZkZWZzLmgKIAogZmkKIAorIyBDaGVjayBmb3Ig QVZYMiB0YXJnZXQgYW5kIGludHJpbnNpYyBzdXBwb3J0CisjCitpZiB0ZXN0IHgiJGhvc3RfY3B1 IiA9IHgieDg2XzY0IjsgdGhlbgorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGNoZWNraW5nIGZvciBBVlgyIHN1cHBvcnQiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yIEFWWDIgc3VwcG9ydC4uLiAiID4mNjsgfQoraWYgJHtwZ2FjX2N2X2F2eDJfc3VwcG9y dCs6fSBmYWxzZTsgdGhlbiA6CisgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisg IGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxpbW1pbnRyaW4uaD4KKyAgICAjaW5jbHVkZSA8c3RkaW50 Lmg+CisgICAgI2lmIGRlZmluZWQoX19oYXNfYXR0cmlidXRlKSAmJiBfX2hhc19hdHRyaWJ1dGUg KHRhcmdldCkKKyAgICBfX2F0dHJpYnV0ZV9fKCh0YXJnZXQoImF2eDIiKSkpCisgICAgI2VuZGlm CisgICAgc3RhdGljIGludCBhdngyX3Rlc3Qodm9pZCkKKyAgICB7CisgICAgICBjb25zdCBjaGFy IGJ1ZltzaXplb2YoX19tMjU2aSldOworICAgICAgX19tMjU2aSBhY2N1bSA9IF9tbTI1Nl9sb2Fk dV9zaTI1NigoY29uc3QgX19tMjU2aSAqKSBidWYpOworCSAgYWNjdW0gPSBfbW0yNTZfYWRkX2Vw aTMyKGFjY3VtLCBhY2N1bSk7CisgICAgICBpbnQgcmVzdWx0ID0gX21tMjU2X2V4dHJhY3RfZXBp MzIoYWNjdW0sIDApOworICAgICAgcmV0dXJuIChpbnQpIHJlc3VsdDsKKyAgICB9CitpbnQKK21h aW4gKCkKK3sKK3JldHVybiBhdngyX3Rlc3QoKTsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VP RgoraWYgYWNfZm5fY190cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgorICBwZ2FjX2N2X2F2eDJf c3VwcG9ydD15ZXMKK2Vsc2UKKyAgcGdhY19jdl9hdngyX3N1cHBvcnQ9bm8KK2ZpCitybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICBjb25mdGVzdCRhY19l eGVleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiAkcGdhY19jdl9hdngyX3N1cHBvcnQiID4mNQorJGFzX2VjaG8g IiRwZ2FjX2N2X2F2eDJfc3VwcG9ydCIgPiY2OyB9CitpZiB0ZXN0IHgiJHBnYWNfY3ZfYXZ4Ml9z dXBwb3J0IiA9IHgieWVzIjsgdGhlbgorICBwZ2FjX2F2eDJfc3VwcG9ydD15ZXMKK2ZpCisKKyAg aWYgdGVzdCB4IiRwZ2FjX2F2eDJfc3VwcG9ydCIgPSB4InllcyI7IHRoZW4KKworJGFzX2VjaG8g IiNkZWZpbmUgVVNFX0FWWDJfV0lUSF9SVU5USU1FX0NIRUNLIDEiID4+Y29uZmRlZnMuaAorCisg IGZpCitmaQorCiAjIENoZWNrIGZvciBBVlgtNTEyIHBvcGNvdW50IGludHJpbnNpY3MKICMKIGlm IHRlc3QgeCIkaG9zdF9jcHUiID0geCJ4ODZfNjQiOyB0aGVuCmRpZmYgLS1naXQgYS9jb25maWd1 cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggMTNjNzUxNzBmN2EuLmMyMTgwMTExMDQ0IDEwMDY0 NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0yMDg5LDYgKzIwODks MTUgQEAgZWxzZQogICBmaQogZmkKIAorIyBDaGVjayBmb3IgQVZYMiB0YXJnZXQgYW5kIGludHJp bnNpYyBzdXBwb3J0CisjCitpZiB0ZXN0IHgiJGhvc3RfY3B1IiA9IHgieDg2XzY0IjsgdGhlbgor ICBQR0FDX0FWWDJfU1VQUE9SVCgpCisgIGlmIHRlc3QgeCIkcGdhY19hdngyX3N1cHBvcnQiID0g eCJ5ZXMiOyB0aGVuCisgICAgQUNfREVGSU5FKFVTRV9BVlgyX1dJVEhfUlVOVElNRV9DSEVDSywg MSwgW0RlZmluZSB0byAxIHRvIHVzZSBBVlgyIGluc3RydWN0aW9ucyB3aXRoIGEgcnVudGltZSBj aGVjay5dKQorICBmaQorZmkKKwogIyBDaGVjayBmb3IgWFNBVkUgaW50cmluc2ljcwogIwogUEdB Q19YU0FWRV9JTlRSSU5TSUNTKCkKZGlmZiAtLWdpdCBhL21lc29uLmJ1aWxkIGIvbWVzb24uYnVp bGQKaW5kZXggNmQzMDRmMzJmYjAuLjYxNjIwY2JlMzdhIDEwMDY0NAotLS0gYS9tZXNvbi5idWls ZAorKysgYi9tZXNvbi5idWlsZApAQCAtMjM0OCw2ICsyMzQ4LDM2IEBAIGludCBtYWluKHZvaWQp CiBlbmRpZgogCiAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIyBDaGVjayBmb3IgdGhlIGF2YWlsYWJpbGl0eSBvZiBBVlgy IHN1cHBvcnQKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCitpZiBob3N0X2NwdSA9PSAneDg2XzY0JworCisgIHByb2cgPSAn JycKKyNpbmNsdWRlIDxpbW1pbnRyaW4uaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpZiBkZWZp bmVkKF9faGFzX2F0dHJpYnV0ZSkgJiYgX19oYXNfYXR0cmlidXRlICh0YXJnZXQpCitfX2F0dHJp YnV0ZV9fKCh0YXJnZXQoImF2eDIiKSkpCisjZW5kaWYKK3N0YXRpYyBpbnQgYXZ4Ml90ZXN0KHZv aWQpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBtYWluKHZvaWQpCit7CisgICAgcmV0dXJu IGF2eDJfdGVzdCgpOworfQorJycnCisKKyAgaWYgY2MubGlua3MocHJvZywgbmFtZTogJ0FWWDIg c3VwcG9ydCcsIGFyZ3M6IHRlc3RfY19hcmdzKQorICAgIGNkYXRhLnNldCgnVVNFX0FWWDJfV0lU SF9SVU5USU1FX0NIRUNLJywgMSkKKyAgZW5kaWYKKworZW5kaWYKKworCiAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgQ2hl Y2sgZm9yIHRoZSBhdmFpbGFiaWxpdHkgb2YgQVZYLTUxMiBwb3Bjb3VudCBpbnRyaW5zaWNzLgog IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL3BhZ2UvY2hlY2tzdW0uYyBi L3NyYy9iYWNrZW5kL3N0b3JhZ2UvcGFnZS9jaGVja3N1bS5jCmluZGV4IDg3MTY2NTFjOGI1Li41 NWViZTk4ODQxMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9wYWdlL2NoZWNrc3Vt LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9wYWdlL2NoZWNrc3VtLmMKQEAgLTEzLDEwICsx MywxMjAgQEAKICAqLwogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKKyNpZiBkZWZpbmVkKEhBVkVf X0dFVF9DUFVJRCkgfHwgZGVmaW5lZChIQVZFX19HRVRfQ1BVSURfQ09VTlQpCisjaW5jbHVkZSA8 Y3B1aWQuaD4KKyNlbmRpZgorCisjaWYgZGVmaW5lZChIQVZFX19DUFVJRCkgfHwgZGVmaW5lZChI QVZFX19DUFVJREVYKQorI2luY2x1ZGUgPGludHJpbi5oPgorI2VuZGlmCisKKyNpZmRlZiBIQVZF X1hTQVZFX0lOVFJJTlNJQ1MKKyNpbmNsdWRlIDxpbW1pbnRyaW4uaD4KKyNlbmRpZgorCiAjaW5j bHVkZSAic3RvcmFnZS9jaGVja3N1bS5oIgorCiAvKgogICogVGhlIGFjdHVhbCBjb2RlIGlzIGlu IHN0b3JhZ2UvY2hlY2tzdW1faW1wbC5oLiAgVGhpcyBpcyBkb25lIHNvIHRoYXQKICAqIGV4dGVy bmFsIHByb2dyYW1zIGNhbiBpbmNvcnBvcmF0ZSB0aGUgY2hlY2tzdW0gY29kZSBieSAjaW5jbHVk ZSdpbmcKLSAqIHRoYXQgZmlsZSBmcm9tIHRoZSBleHBvcnRlZCBQb3N0Z3JlcyBoZWFkZXJzLiAg KENvbXBhcmUgb3VyIENSQyBjb2RlLikKKyAqIHRoYXQgZmlsZSBmcm9tIHRoZSBleHBvcnRlZCBQ b3N0Z3JlcyBoZWFkZXJzLiAgKENvbXBhcmUgb3VyIGxlZ2FjeQorICogQ1JDIGNvZGUgaW4gcGdf Y3JjLmguKQorICogVGhlIFBHX0NIRUNLU1VNX0lOVEVSTkFMIHN5bWJvbCBhbGxvd3MgY29yZSB0 byB1c2UgaGFyZHdhcmUtc3BlY2lmaWMKKyAqIGNvZGluZyB3aXRob3V0IGFmZmVjdGluZyBleHRl cm5hbCBwcm9ncmFtcy4KICAqLworI2RlZmluZSBQR19DSEVDS1NVTV9JTlRFUk5BTAogI2luY2x1 ZGUgInN0b3JhZ2UvY2hlY2tzdW1faW1wbC5oIgkvKiBJV1lVIHByYWdtYToga2VlcCAqLworCisK Ky8qIFdJUDogdGhlIGZlYXR1cmUgZGV0ZWN0aW9uIHNob3VsZCBnbyBpbiBzcmMvcG9ydCAqLwor CisvKgorICogRG9lcyBDUFVJRCBzYXkgdGhlcmUncyBzdXBwb3J0IGZvciBYU0FWRSBpbnN0cnVj dGlvbnM/CisgKi8KK3N0YXRpYyBpbmxpbmUgYm9vbAoreHNhdmVfYXZhaWxhYmxlKHZvaWQpCit7 CisJdW5zaWduZWQgaW50IGV4eFs0XSA9IHswLCAwLCAwLCAwfTsKKworI2lmIGRlZmluZWQoSEFW RV9fR0VUX0NQVUlEKQorCV9fZ2V0X2NwdWlkKDEsICZleHhbMF0sICZleHhbMV0sICZleHhbMl0s ICZleHhbM10pOworI2VsaWYgZGVmaW5lZChIQVZFX19DUFVJRCkKKwlfX2NwdWlkKGV4eCwgMSk7 CisjZW5kaWYKKwlyZXR1cm4gKGV4eFsyXSAmICgxIDw8IDI3KSkgIT0gMDsJLyogb3N4c2F2ZSAq LworfQorCisvKgorICogRG9lcyBYR0VUQlYgc2F5IHRoZSBZTU0gcmVnaXN0ZXJzIGFyZSBlbmFi bGVkPworICoKKyAqIE5COiBDYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHZlcmlmeWluZyB0aGF0 IHhzYXZlX2F2YWlsYWJsZSgpIHJldHVybnMgdHJ1ZQorICogYmVmb3JlIGNhbGxpbmcgdGhpcy4K KyAqLworI2lmZGVmIEhBVkVfWFNBVkVfSU5UUklOU0lDUworcGdfYXR0cmlidXRlX3RhcmdldCgi eHNhdmUiKQorI2VuZGlmCitzdGF0aWMgaW5saW5lIGJvb2wKK3ltbV9yZWdzX2F2YWlsYWJsZSh2 b2lkKQoreworI2lmZGVmIEhBVkVfWFNBVkVfSU5UUklOU0lDUworCXJldHVybiAoX3hnZXRidigw KSAmIDB4MDYpID09IDB4MDY7CisjZWxzZQorCXJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCisv KgorICogQ2hlY2sgZm9yIEFWWDIgc3VwcG9ydCB1c2luZyBDUFVJRCBkZXRlY3Rpb24KKyAqLwor c3RhdGljIGlubGluZSBib29sCithdngyX2F2YWlsYWJsZSh2b2lkKQoreworCXVuc2lnbmVkIGlu dCBleHhbNF0gPSB7MCwgMCwgMCwgMH07CisKKyNpZiBkZWZpbmVkKEhBVkVfX0dFVF9DUFVJRF9D T1VOVCkKKwlfX2dldF9jcHVpZF9jb3VudCg3LCAwLCAmZXh4WzBdLCAmZXh4WzFdLCAmZXh4WzJd LCAmZXh4WzNdKTsKKyNlbGlmIGRlZmluZWQoSEFWRV9fQ1BVSURFWCkKKwlfX2NwdWlkZXgoZXh4 LCA3LCAwKTsKKyNlbmRpZgorCisJcmV0dXJuIChleHhbMV0gJiAoMSA8PCA1KSkgIT0gMDsJLyog YXZ4MiAqLworfQorCitzdGF0aWMgdWludDMyCitwZ19jaGVja3N1bV9ibG9ja19mYWxsYmFjayhj b25zdCBQR0NoZWNrc3VtbWFibGVQYWdlICpwYWdlKQoreworI2luY2x1ZGUgInN0b3JhZ2UvY2hl Y2tzdW1fYmxvY2tfaW50ZXJuYWwuaCIKK30KKworLyoKKyAqIEFWWDItb3B0aW1pemVkIGJsb2Nr IGNoZWNrc3VtIGFsZ29yaXRobS4KKyAqLworI2lmZGVmIFVTRV9BVlgyX1dJVEhfUlVOVElNRV9D SEVDSworcGdfYXR0cmlidXRlX3RhcmdldCgiYXZ4MiIpCitzdGF0aWMgdWludDMyCitwZ19jaGVj a3N1bV9ibG9ja19hdngyKGNvbnN0IFBHQ2hlY2tzdW1tYWJsZVBhZ2UgKnBhZ2UpCit7CisjaW5j bHVkZSAic3RvcmFnZS9jaGVja3N1bV9ibG9ja19pbnRlcm5hbC5oIgorfQorI2VuZGlmCQkJCQkJ CS8qIFVTRV9BVlgyX1dJVEhfUlVOVElNRV9DSEVDSyAqLworCisvKgorICogQ2hvb3NlIHRoZSBi ZXN0IGF2YWlsYWJsZSBjaGVja3N1bSBpbXBsZW1lbnRhdGlvbi4KKyAqLworc3RhdGljIHVpbnQz MgorcGdfY2hlY2tzdW1fY2hvb3NlKGNvbnN0IFBHQ2hlY2tzdW1tYWJsZVBhZ2UgKnBhZ2UpCit7 CisjaWZkZWYgVVNFX0FWWDJfV0lUSF9SVU5USU1FX0NIRUNLCisJaWYgKHhzYXZlX2F2YWlsYWJs ZSgpICYmCisJCXltbV9yZWdzX2F2YWlsYWJsZSgpICYmCisJCWF2eDJfYXZhaWxhYmxlKCkpCisJ CXBnX2NoZWNrc3VtX2Jsb2NrID0gcGdfY2hlY2tzdW1fYmxvY2tfYXZ4MjsKKwllbHNlCisjZW5k aWYKKwkJcGdfY2hlY2tzdW1fYmxvY2sgPSBwZ19jaGVja3N1bV9ibG9ja19mYWxsYmFjazsKKwor CXJldHVybiBwZ19jaGVja3N1bV9ibG9jayhwYWdlKTsKK30KKworc3RhdGljIHVpbnQzMiAoKnBn X2NoZWNrc3VtX2Jsb2NrKSAoY29uc3QgUEdDaGVja3N1bW1hYmxlUGFnZSAqcGFnZSkgPSBwZ19j aGVja3N1bV9jaG9vc2U7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ19jb25maWcuaC5pbiBi L3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluCmluZGV4IDMzOTI2OGRjOGVmLi4xZTQzZTliMmJj NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4KKysrIGIvc3JjL2luY2x1 ZGUvcGdfY29uZmlnLmguaW4KQEAgLTY2NSw2ICs2NjUsOSBAQAogLyogRGVmaW5lIHRvIDEgdG8g dXNlIEFWWC01MTIgQ1JDIGFsZ29yaXRobXMgd2l0aCBhIHJ1bnRpbWUgY2hlY2suICovCiAjdW5k ZWYgVVNFX0FWWDUxMl9DUkMzMkNfV0lUSF9SVU5USU1FX0NIRUNLCiAKKy8qIERlZmluZSB0byAx IHRvIHVzZSBBVlgyIGluc3RydWN0aW9ucyB3aXRoIGEgcnVudGltZSBjaGVjay4gKi8KKyN1bmRl ZiBVU0VfQVZYMl9XSVRIX1JVTlRJTUVfQ0hFQ0sKKwogLyogRGVmaW5lIHRvIDEgdG8gdXNlIEFW WC01MTIgcG9wY291bnQgaW5zdHJ1Y3Rpb25zIHdpdGggYSBydW50aW1lIGNoZWNrLiAqLwogI3Vu ZGVmIFVTRV9BVlg1MTJfUE9QQ05UX1dJVEhfUlVOVElNRV9DSEVDSwogCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9zdG9yYWdlL2NoZWNrc3VtX2Jsb2NrX2ludGVybmFsLmggYi9zcmMvaW5jbHVk ZS9zdG9yYWdlL2NoZWNrc3VtX2Jsb2NrX2ludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmI0ZTY5ODdkNmI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2lu Y2x1ZGUvc3RvcmFnZS9jaGVja3N1bV9ibG9ja19pbnRlcm5hbC5oCkBAIC0wLDAgKzEsNDIgQEAK Ky8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGNoZWNrc3VtX2Jsb2NrX2ludGVybmFsLmgKKyAq CSAgQ29yZSBhbGdvcml0aG0gZm9yIHBhZ2UgY2hlY2tzdW1zICwgc2VtaSBwcml2YXRlIHRvIGNo ZWNrc3VtX2ltcGwuaAorICoJICBhbmQgY2hlY2tzdW0uYy4KKyAqCisgKiBQb3J0aW9ucyBDb3B5 cmlnaHQgKGMpIDE5OTYtMjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAK KyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0 eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvc3RvcmFnZS9jaGVja3N1bV9ibG9j a19pbnRlcm5hbC5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworLyogdGhlcmUgaXMg ZGVsaWJlcmF0ZWx5IG5vdCBhbiAjaWZuZGVmIENIRUNLU1VNX0JMT0NLX0lOVEVSTkFMX0ggaGVy ZSAqLworCit1aW50MzIJCXN1bXNbTl9TVU1TXTsKK3VpbnQzMgkJcmVzdWx0ID0gMDsKK3VpbnQz MgkJaSwKKwkJCWo7CisKKy8qIGVuc3VyZSB0aGF0IHRoZSBzaXplIGlzIGNvbXBhdGlibGUgd2l0 aCB0aGUgYWxnb3JpdGhtICovCitBc3NlcnQoc2l6ZW9mKFBHQ2hlY2tzdW1tYWJsZVBhZ2UpID09 IEJMQ0tTWik7CisKKy8qIGluaXRpYWxpemUgcGFydGlhbCBjaGVja3N1bXMgdG8gdGhlaXIgY29y cmVzcG9uZGluZyBvZmZzZXRzICovCittZW1jcHkoc3VtcywgY2hlY2tzdW1CYXNlT2Zmc2V0cywg c2l6ZW9mKGNoZWNrc3VtQmFzZU9mZnNldHMpKTsKKworLyogbWFpbiBjaGVja3N1bSBjYWxjdWxh dGlvbiAqLworZm9yIChpID0gMDsgaSA8ICh1aW50MzIpIChCTENLU1ogLyAoc2l6ZW9mKHVpbnQz MikgKiBOX1NVTVMpKTsgaSsrKQorCWZvciAoaiA9IDA7IGogPCBOX1NVTVM7IGorKykKKwkJQ0hF Q0tTVU1fQ09NUChzdW1zW2pdLCBwYWdlLT5kYXRhW2ldW2pdKTsKKworLyogZmluYWxseSBhZGQg aW4gdHdvIHJvdW5kcyBvZiB6ZXJvZXMgZm9yIGFkZGl0aW9uYWwgbWl4aW5nICovCitmb3IgKGkg PSAwOyBpIDwgMjsgaSsrKQorCWZvciAoaiA9IDA7IGogPCBOX1NVTVM7IGorKykKKwkJQ0hFQ0tT VU1fQ09NUChzdW1zW2pdLCAwKTsKKworLyogeG9yIGZvbGQgcGFydGlhbCBjaGVja3N1bXMgdG9n ZXRoZXIgKi8KK2ZvciAoaSA9IDA7IGkgPCBOX1NVTVM7IGkrKykKKwlyZXN1bHQgXj0gc3Vtc1tp XTsKKworcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvY2hl Y2tzdW1faW1wbC5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9jaGVja3N1bV9pbXBsLmgKaW5kZXgg NWMyZGNiYzYzZTcuLjhhMzA4ZTQyM2MzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdl L2NoZWNrc3VtX2ltcGwuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL2NoZWNrc3VtX2ltcGwu aApAQCAtNzMsMTEgKzczLDEwIEBACiAgKiAyZS0xNiBmYWxzZSBwb3NpdGl2ZSByYXRlIHdpdGhp biBtYXJnaW4gb2YgZXJyb3IuCiAgKgogICogVmVjdG9yaXphdGlvbiBvZiB0aGUgYWxnb3JpdGht IHJlcXVpcmVzIDMyYml0IHggMzJiaXQgLT4gMzJiaXQgaW50ZWdlcgotICogbXVsdGlwbGljYXRp b24gaW5zdHJ1Y3Rpb24uIEFzIG9mIDIwMTMgdGhlIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24g aXMKLSAqIGF2YWlsYWJsZSBvbiB4ODYgU1NFNC4xIGV4dGVuc2lvbnMgKHBtdWxsZCkgYW5kIEFS TSBORU9OICh2bXVsLmkzMikuCi0gKiBWZWN0b3JpemF0aW9uIHJlcXVpcmVzIGEgY29tcGlsZXIg dG8gZG8gdGhlIHZlY3Rvcml6YXRpb24gZm9yIHVzLiBGb3IgcmVjZW50Ci0gKiBHQ0MgdmVyc2lv bnMgdGhlIGZsYWdzIC1tc3NlNC4xIC1mdW5yb2xsLWxvb3BzIC1mdHJlZS12ZWN0b3JpemUgYXJl IGVub3VnaAotICogdG8gYWNoaWV2ZSB2ZWN0b3JpemF0aW9uLgorICogbXVsdGlwbGljYXRpb24g aW5zdHJ1Y3Rpb24uIEV4YW1wbGVzIGluY2x1ZGUgeDg2IEFWWDIgZXh0ZW5zaW9ucyAodnBtdWxs ZCkKKyAqIGFuZCBBUk0gTkVPTiAodm11bC5pMzIpLiBGb3Igc2ltcGxpY2l0eSB3ZSByZWx5IG9u IHRoZSBjb21waWxlciB0byBkbyB0aGUKKyAqIHZlY3Rvcml6YXRpb24gZm9yIHVzLiBGb3IgR0ND IGFuZCBjbGFuZyB0aGUgZmxhZ3MgLWZ1bnJvbGwtbG9vcHMKKyAqIC1mdHJlZS12ZWN0b3JpemUg YXJlIGVub3VnaCB0byBhY2hpZXZlIHZlY3Rvcml6YXRpb24uCiAgKgogICogVGhlIG9wdGltYWwg YW1vdW50IG9mIHBhcmFsbGVsaXNtIHRvIHVzZSBkZXBlbmRzIG9uIENQVSBzcGVjaWZpYyBpbnN0 cnVjdGlvbgogICogbGF0ZW5jeSwgU0lNRCBpbnN0cnVjdGlvbiB3aWR0aCwgdGhyb3VnaHB1dCBh bmQgdGhlIGFtb3VudCBvZiByZWdpc3RlcnMKQEAgLTg5LDggKzg4LDkgQEAKICAqCiAgKiBUaGUg cGFyYWxsZWxpc20gbnVtYmVyIDMyIHdhcyBjaG9zZW4gYmFzZWQgb24gdGhlIGZhY3QgdGhhdCBp dCBpcyB0aGUKICAqIGxhcmdlc3Qgc3RhdGUgdGhhdCBmaXRzIGludG8gYXJjaGl0ZWN0dXJhbGx5 IHZpc2libGUgeDg2IFNTRSByZWdpc3RlcnMgd2hpbGUKLSAqIGxlYXZpbmcgc29tZSBmcmVlIHJl Z2lzdGVycyBmb3IgaW50ZXJtZWRpYXRlIHZhbHVlcy4gRm9yIGZ1dHVyZSBwcm9jZXNzb3JzCi0g KiB3aXRoIDI1NmJpdCB2ZWN0b3IgcmVnaXN0ZXJzIHRoaXMgd2lsbCBsZWF2ZSBzb21lIHBlcmZv cm1hbmNlIG9uIHRoZSB0YWJsZS4KKyAqIGxlYXZpbmcgc29tZSBmcmVlIHJlZ2lzdGVycyBmb3Ig aW50ZXJtZWRpYXRlIHZhbHVlcy4gRm9yIHByb2Nlc3NvcnMKKyAqIHdpdGggMjU2Yml0IHZlY3Rv ciByZWdpc3RlcnMgdGhpcyBsZWF2ZXMgc29tZSBwZXJmb3JtYW5jZSBvbiB0aGUgdGFibGUuCisg KgogICogV2hlbiB2ZWN0b3JpemF0aW9uIGlzIG5vdCBhdmFpbGFibGUgaXQgbWlnaHQgYmUgYmVu ZWZpY2lhbCB0byByZXN0cnVjdHVyZQogICogdGhlIGNvbXB1dGF0aW9uIHRvIGNhbGN1bGF0ZSBh IHN1YnNldCBvZiB0aGUgY29sdW1ucyBhdCBhIHRpbWUgYW5kIHBlcmZvcm0KICAqIG11bHRpcGxl IHBhc3NlcyB0byBhdm9pZCByZWdpc3RlciBzcGlsbGluZy4gVGhpcyBvcHRpbWl6YXRpb24gb3Bw b3J0dW5pdHkKQEAgLTEzOCw2ICsxMzgsOSBAQCBkbyB7IFwKIAkoY2hlY2tzdW0pID0gX190bXAg KiBGTlZfUFJJTUUgXiAoX190bXAgPj4gMTcpOyBcCiB9IHdoaWxlICgwKQogCisvKiBQcm92aWRl IGEgc3RhdGljIGRlZmluaXRpb24gZm9yIGV4dGVybmFsIHByb2dyYW1zICovCisjaWZuZGVmIFBH X0NIRUNLU1VNX0lOVEVSTkFMCisKIC8qCiAgKiBCbG9jayBjaGVja3N1bSBhbGdvcml0aG0uICBU aGUgcGFnZSBtdXN0IGJlIGFkZXF1YXRlbHkgYWxpZ25lZAogICogKGF0IGxlYXN0IG9uIDQtYnl0 ZSBib3VuZGFyeSkuCkBAIC0xNDUsMzQgKzE0OCwxMyBAQCBkbyB7IFwKIHN0YXRpYyB1aW50MzIK IHBnX2NoZWNrc3VtX2Jsb2NrKGNvbnN0IFBHQ2hlY2tzdW1tYWJsZVBhZ2UgKnBhZ2UpCiB7Ci0J dWludDMyCQlzdW1zW05fU1VNU107Ci0JdWludDMyCQlyZXN1bHQgPSAwOwotCXVpbnQzMgkJaSwK LQkJCQlqOwotCi0JLyogZW5zdXJlIHRoYXQgdGhlIHNpemUgaXMgY29tcGF0aWJsZSB3aXRoIHRo ZSBhbGdvcml0aG0gKi8KLQlBc3NlcnQoc2l6ZW9mKFBHQ2hlY2tzdW1tYWJsZVBhZ2UpID09IEJM Q0tTWik7Ci0KLQkvKiBpbml0aWFsaXplIHBhcnRpYWwgY2hlY2tzdW1zIHRvIHRoZWlyIGNvcnJl c3BvbmRpbmcgb2Zmc2V0cyAqLwotCW1lbWNweShzdW1zLCBjaGVja3N1bUJhc2VPZmZzZXRzLCBz aXplb2YoY2hlY2tzdW1CYXNlT2Zmc2V0cykpOwotCi0JLyogbWFpbiBjaGVja3N1bSBjYWxjdWxh dGlvbiAqLwotCWZvciAoaSA9IDA7IGkgPCAodWludDMyKSAoQkxDS1NaIC8gKHNpemVvZih1aW50 MzIpICogTl9TVU1TKSk7IGkrKykKLQkJZm9yIChqID0gMDsgaiA8IE5fU1VNUzsgaisrKQotCQkJ Q0hFQ0tTVU1fQ09NUChzdW1zW2pdLCBwYWdlLT5kYXRhW2ldW2pdKTsKLQotCS8qIGZpbmFsbHkg YWRkIGluIHR3byByb3VuZHMgb2YgemVyb2VzIGZvciBhZGRpdGlvbmFsIG1peGluZyAqLwotCWZv ciAoaSA9IDA7IGkgPCAyOyBpKyspCi0JCWZvciAoaiA9IDA7IGogPCBOX1NVTVM7IGorKykKLQkJ CUNIRUNLU1VNX0NPTVAoc3Vtc1tqXSwgMCk7Ci0KLQkvKiB4b3IgZm9sZCBwYXJ0aWFsIGNoZWNr c3VtcyB0b2dldGhlciAqLwotCWZvciAoaSA9IDA7IGkgPCBOX1NVTVM7IGkrKykKLQkJcmVzdWx0 IF49IHN1bXNbaV07Ci0KLQlyZXR1cm4gcmVzdWx0OworI2luY2x1ZGUgInN0b3JhZ2UvY2hlY2tz dW1fYmxvY2tfaW50ZXJuYWwuaCIKIH0KIAorI2Vsc2UKK3N0YXRpYyB1aW50MzIgKCpwZ19jaGVj a3N1bV9ibG9jaykgKGNvbnN0IFBHQ2hlY2tzdW1tYWJsZVBhZ2UgKnBhZ2UpOworI2VuZGlmCisK IC8qCiAgKiBDb21wdXRlIHRoZSBjaGVja3N1bSBmb3IgYSBQb3N0Z3JlcyBwYWdlLgogICoKZGlm ZiAtLWdpdCBhL3NyYy90b29scy9wZ2luY2x1ZGUvaGVhZGVyc2NoZWNrIGIvc3JjL3Rvb2xzL3Bn aW5jbHVkZS9oZWFkZXJzY2hlY2sKaW5kZXggN2E2NzU1OTkxYmIuLjU2OWU3NDliMjVhIDEwMDc1 NQotLS0gYS9zcmMvdG9vbHMvcGdpbmNsdWRlL2hlYWRlcnNjaGVjaworKysgYi9zcmMvdG9vbHMv cGdpbmNsdWRlL2hlYWRlcnNjaGVjawpAQCAtMTU0LDYgKzE1NCw4IEBAIGRvCiAJdGVzdCAiJGYi ID0gc3JjL2luY2x1ZGUvY2F0YWxvZy9zeXNjYWNoZV9pZHMuaCAmJiBjb250aW51ZQogCXRlc3Qg IiRmIiA9IHNyYy9pbmNsdWRlL2NhdGFsb2cvc3lzY2FjaGVfaW5mby5oICYmIGNvbnRpbnVlCiAK Kwl0ZXN0ICIkZiIgPSBzcmMvaW5jbHVkZS9zdG9yYWdlL2NoZWNrc3VtX2Jsb2NrX2ludGVybmFs LmggJiYgY29udGludWUKKwogCSMgV2UgY2FuJ3QgbWFrZSB0aGVzZSBCaXNvbiBvdXRwdXQgZmls ZXMgY29tcGlsYWJsZSBzdGFuZGFsb25lCiAJIyB3aXRob3V0IHVzaW5nICIlY29kZSByZXF1aXJl Iiwgd2hpY2ggb2xkIEJpc29uIHZlcnNpb25zIGxhY2suCiAJIyBwYXJzZXIvZ3JhbS5oIHdpbGwg YmUgaW5jbHVkZWQgYnkgcGFyc2VyL2dyYW1wYXJzZS5oIGFueXdheS4KLS0gCjIuNTIuMAoK --0000000000009a3c710648e402d3 Content-Type: application/x-patch; name="v11-0002-Adjust-benchmark-to-use-core-checksum.patch" Content-Disposition: attachment; filename="v11-0002-Adjust-benchmark-to-use-core-checksum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mknww85g1 RnJvbSBiNmEzYWJhOGY5NTY4Njg0Y2YyMmFmNDI1ODRiZWM2NWI2MTcwNjY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE5heWxvciA8am9obi5uYXlsb3JAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IEZyaSwgOSBKYW4gMjAyNiAxNzowNzozNyArMDcwMApTdWJqZWN0OiBbUEFUQ0gg djExIDIvM10gQWRqdXN0IGJlbmNobWFyayB0byB1c2UgY29yZSBjaGVja3N1bQoKWFhYIG5vdCBm b3IgY29tbWl0Ci0tLQogY29udHJpYi9wZ19jaGVja3N1bV9iZW5jaC9wZ19jaGVja3N1bV9iZW5j aC5jIHwgMTUgKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCsp LCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gv cGdfY2hlY2tzdW1fYmVuY2guYyBiL2NvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gvcGdfY2hlY2tz dW1fYmVuY2guYwppbmRleCBkYzIwMzk1YTU5MC4uNjFkYTY2NGU3MjMgMTAwNjQ0Ci0tLSBhL2Nv bnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gvcGdfY2hlY2tzdW1fYmVuY2guYworKysgYi9jb250cmli L3BnX2NoZWNrc3VtX2JlbmNoL3BnX2NoZWNrc3VtX2JlbmNoLmMKQEAgLTEsNyArMSw2IEBACiAj aW5jbHVkZSAicG9zdGdyZXMuaCIKICNpbmNsdWRlICJmbWdyLmgiCi0jaW5jbHVkZSAicG9ydC9j aGVja3N1bS5oIgotI2luY2x1ZGUgInBvcnQvY2hlY2tzdW1faW1wbC5oIgorI2luY2x1ZGUgInN0 b3JhZ2UvY2hlY2tzdW0uaCIKIAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8YXNzZXJ0 Lmg+CkBAIC0xNSwyMyArMTQsMjMgQEAgRGF0dW0KIGRyaXZlX3BnX2NoZWNrc3VtKFBHX0ZVTkNU SU9OX0FSR1MpCiB7CiAJaW50CQkJcGFnZV9jb3VudCA9IFBHX0dFVEFSR19JTlQzMigwKTsKLQlQ R0NoZWNrc3VtbWFibGVQYWdlICpwYWdlczsKKwljaGFyICpwYWdlczsKIAlpbnQJCQlpOwogCXNp emVfdAkJajsKIAotCXBhZ2VzID0gcGFsbG9jKHBhZ2VfY291bnQgKiBzaXplb2YoUEdDaGVja3N1 bW1hYmxlUGFnZSkpOworCXBhZ2VzID0gcGFsbG9jKHBhZ2VfY291bnQgKiBCTENLU1opOwogCXNy YW5kKDApOwotCWZvciAoaiA9IDA7IGogPCBwYWdlX2NvdW50ICogc2l6ZW9mKFBHQ2hlY2tzdW1t YWJsZVBhZ2UpOyBqKyspCisJZm9yIChqID0gMDsgaiA8IHBhZ2VfY291bnQgKiBCTENLU1o7IGor KykKIAl7Ci0JCWNoYXIJICAgKmJ5dGVfcHRyID0gKGNoYXIgKikgcGFnZXM7CisJCWNoYXIJICAg KmJ5dGVfcHRyID0gIHBhZ2VzOwogCiAJCWJ5dGVfcHRyW2pdID0gcmFuZCgpICUgMjU2OwogCX0K IAogCWZvciAoaSA9IDA7IGkgPCBSRVBFQVRTOyBpKyspCiAJewotCQljb25zdCBQR0NoZWNrc3Vt bWFibGVQYWdlICp0ZXN0X3BhZ2UgPSBwYWdlcyArIChpICUgcGFnZV9jb3VudCk7Ci0JCXZvbGF0 aWxlIHVpbnQzMiByZXN1bHQgPSBwZ19jaGVja3N1bV9ibG9ja19jaG9vc2UoKGNvbnN0IGNoYXIg KikgdGVzdF9wYWdlKTsKKwkJY2hhciAqdGVzdF9wYWdlID0gcGFnZXMgKyAoaSAlIHBhZ2VfY291 bnQpOworCQl2b2xhdGlsZSB1aW50MzIgcmVzdWx0ID0gcGdfY2hlY2tzdW1fcGFnZSgoY2hhciAq KSB0ZXN0X3BhZ2UsIDApOwogCiAJCSh2b2lkKSByZXN1bHQ7CiAJfQotLSAKMi41Mi4wCgo= --0000000000009a3c710648e402d3 Content-Type: application/x-patch; name="v11-0001-Benchmark-code-for-postgres-checksums.patch" Content-Disposition: attachment; filename="v11-0001-Benchmark-code-for-postgres-checksums.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mknww85l2 RnJvbSA5N2EyNGI2ZGE4ZmRkYWFhZmMyZWQ0MzRkYWJmMTRhNTNiZDZlZWNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgS2ltIDxhbmRyZXcua2ltQGludGVsLmNvbT4KRGF0 ZTogV2VkLCA1IE5vdiAyMDI1IDE0OjM3OjI5IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MTEgMS8z XSBCZW5jaG1hcmsgY29kZSBmb3IgcG9zdGdyZXMgY2hlY2tzdW1zCgpBZGQgcGdfY2hlY2tzdW1f YmVuY2ggZXh0ZW5zaW9uIGZvciBwZXJmb3JtYW5jZSB0ZXN0aW5nIG9mIGNoZWNrc3VtCmltcGxl bWVudGF0aW9ucyB3aXRoIEFWWDIgb3B0aW1pemF0aW9uLgoKWFhYIG5vdCBmb3IgY29tbWl0Ci0t LQogY29udHJpYi9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwog Y29udHJpYi9wZ19jaGVja3N1bV9iZW5jaC9tZXNvbi5idWlsZCAgICAgICAgIHwgMjMgKysrKysr KysrKwogLi4uL3BnX2NoZWNrc3VtX2JlbmNoLS0xLjAuc3FsICAgICAgICAgICAgICAgIHwgIDgg KysrKwogY29udHJpYi9wZ19jaGVja3N1bV9iZW5jaC9wZ19jaGVja3N1bV9iZW5jaC5jIHwgNDIg KysrKysrKysrKysrKysrKysrKwogLi4uL3BnX2NoZWNrc3VtX2JlbmNoLmNvbnRyb2wgICAgICAg ICAgICAgICAgIHwgIDQgKysKIC4uLi9zcWwvcGdfY2hlY2tzdW1fYmVuY2guc3FsICAgICAgICAg ICAgICAgICB8IDE3ICsrKysrKysrCiA2IGZpbGVzIGNoYW5nZWQsIDk1IGluc2VydGlvbnMoKykK IGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3BnX2NoZWNrc3VtX2JlbmNoL21lc29uLmJ1aWxk CiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9wZ19jaGVja3N1bV9iZW5jaC9wZ19jaGVja3N1 bV9iZW5jaC0tMS4wLnNxbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbnRyaWIvcGdfY2hlY2tzdW1f YmVuY2gvcGdfY2hlY2tzdW1fYmVuY2guYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbnRyaWIvcGdf Y2hlY2tzdW1fYmVuY2gvcGdfY2hlY2tzdW1fYmVuY2guY29udHJvbAogY3JlYXRlIG1vZGUgMTAw NjQ0IGNvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gvc3FsL3BnX2NoZWNrc3VtX2JlbmNoLnNxbAoK ZGlmZiAtLWdpdCBhL2NvbnRyaWIvbWVzb24uYnVpbGQgYi9jb250cmliL21lc29uLmJ1aWxkCmlu ZGV4IGRlZjEzMjU3Y2JlLi45OGZlNDdiNWI5YiAxMDA2NDQKLS0tIGEvY29udHJpYi9tZXNvbi5i dWlsZAorKysgYi9jb250cmliL21lc29uLmJ1aWxkCkBAIC0xMiw2ICsxMiw3IEBAIGNvbnRyaWJf ZG9jX2FyZ3MgPSB7CiAgICdpbnN0YWxsX2Rpcic6IGNvbnRyaWJfZG9jX2RpciwKIH0KIAorc3Vi ZGlyKCdwZ19jaGVja3N1bV9iZW5jaCcpCiBzdWJkaXIoJ2FtY2hlY2snKQogc3ViZGlyKCdhdXRo X2RlbGF5JykKIHN1YmRpcignYXV0b19leHBsYWluJykKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdf Y2hlY2tzdW1fYmVuY2gvbWVzb24uYnVpbGQgYi9jb250cmliL3BnX2NoZWNrc3VtX2JlbmNoL21l c29uLmJ1aWxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zMmNjZDll ZmEwZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gvbWVzb24u YnVpbGQKQEAgLTAsMCArMSwyMyBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjItMjAyNSwgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworcGdfY2hlY2tzdW1fYmVuY2hfc291cmNl cyA9IGZpbGVzKAorICAncGdfY2hlY2tzdW1fYmVuY2guYycsCispCisKK2lmIGhvc3Rfc3lzdGVt ID09ICd3aW5kb3dzJworICBwZ19jaGVja3N1bV9iZW5jaF9zb3VyY2VzICs9IHJjX2xpYl9nZW4u cHJvY2Vzcyh3aW4zMnZlcl9yYywgZXh0cmFfYXJnczogWworICAgICctLU5BTUUnLCAncGdfY2hl Y2tzdW1fYmVuY2gnLAorICAgICctLUZJTEVERVNDJywgJ3BnX2NoZWNrc3VtX2JlbmNoJyxdKQor ZW5kaWYKKworcGdfY2hlY2tzdW1fYmVuY2ggPSBzaGFyZWRfbW9kdWxlKCdwZ19jaGVja3N1bV9i ZW5jaCcsCisgIHBnX2NoZWNrc3VtX2JlbmNoX3NvdXJjZXMsCisgIGt3YXJnczogY29udHJpYl9t b2RfYXJncywKKykKK2NvbnRyaWJfdGFyZ2V0cyArPSBwZ19jaGVja3N1bV9iZW5jaAorCitpbnN0 YWxsX2RhdGEoCisgICdwZ19jaGVja3N1bV9iZW5jaC0tMS4wLnNxbCcsCisgICdwZ19jaGVja3N1 bV9iZW5jaC5jb250cm9sJywKKyAga3dhcmdzOiBjb250cmliX2RhdGFfYXJncywKKykKZGlmZiAt LWdpdCBhL2NvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gvcGdfY2hlY2tzdW1fYmVuY2gtLTEuMC5z cWwgYi9jb250cmliL3BnX2NoZWNrc3VtX2JlbmNoL3BnX2NoZWNrc3VtX2JlbmNoLS0xLjAuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ZjEzY2JlM2M1ZQotLS0g L2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gvcGdfY2hlY2tzdW1fYmVu Y2gtLTEuMC5zcWwKQEAgLTAsMCArMSw4IEBACisvKiBjb250cmliL3BnX2NoZWNrc3VtX2JlbmNo L3BnX2NoZWNrc3VtX2JlbmNoLS0xLjAuc3FsICovCisKKy0tIGNvbXBsYWluIGlmIHNjcmlwdCBp cyBzb3VyY2VkIGluIHBzcWwsIHJhdGhlciB0aGFuIHZpYSBDUkVBVEUgRVhURU5TSU9OCistLSBc ZWNobyBVc2UgIkNSRUFURSBFWFRFTlNJT04gcGdfY2hlY2tzdW1fYmVuY2giIHRvIGxvYWQgdGhp cyBmaWxlLiBccXVpdAorCitDUkVBVEUgRlVOQ1RJT04gZHJpdmVfcGdfY2hlY2tzdW0ocGFnZV9j b3VudCBpbnQpCisJUkVUVVJOUyBwZ19jYXRhbG9nLnZvaWQKKwlBUyAnTU9EVUxFX1BBVEhOQU1F JyBMQU5HVUFHRSBDOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19jaGVja3N1bV9iZW5jaC9wZ19j aGVja3N1bV9iZW5jaC5jIGIvY29udHJpYi9wZ19jaGVja3N1bV9iZW5jaC9wZ19jaGVja3N1bV9i ZW5jaC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kYzIwMzk1YTU5 MAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gvcGdfY2hlY2tz dW1fYmVuY2guYwpAQCAtMCwwICsxLDQyIEBACisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKyNpbmNs dWRlICJmbWdyLmgiCisjaW5jbHVkZSAicG9ydC9jaGVja3N1bS5oIgorI2luY2x1ZGUgInBvcnQv Y2hlY2tzdW1faW1wbC5oIgorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxhc3NlcnQu aD4KKworUEdfTU9EVUxFX01BR0lDOworCisjZGVmaW5lIFJFUEVBVFMgMTAwMDAwMAorCitQR19G VU5DVElPTl9JTkZPX1YxKGRyaXZlX3BnX2NoZWNrc3VtKTsKK0RhdHVtCitkcml2ZV9wZ19jaGVj a3N1bShQR19GVU5DVElPTl9BUkdTKQoreworCWludAkJCXBhZ2VfY291bnQgPSBQR19HRVRBUkdf SU5UMzIoMCk7CisJUEdDaGVja3N1bW1hYmxlUGFnZSAqcGFnZXM7CisJaW50CQkJaTsKKwlzaXpl X3QJCWo7CisKKwlwYWdlcyA9IHBhbGxvYyhwYWdlX2NvdW50ICogc2l6ZW9mKFBHQ2hlY2tzdW1t YWJsZVBhZ2UpKTsKKwlzcmFuZCgwKTsKKwlmb3IgKGogPSAwOyBqIDwgcGFnZV9jb3VudCAqIHNp emVvZihQR0NoZWNrc3VtbWFibGVQYWdlKTsgaisrKQorCXsKKwkJY2hhcgkgICAqYnl0ZV9wdHIg PSAoY2hhciAqKSBwYWdlczsKKworCQlieXRlX3B0cltqXSA9IHJhbmQoKSAlIDI1NjsKKwl9CisK Kwlmb3IgKGkgPSAwOyBpIDwgUkVQRUFUUzsgaSsrKQorCXsKKwkJY29uc3QgUEdDaGVja3N1bW1h YmxlUGFnZSAqdGVzdF9wYWdlID0gcGFnZXMgKyAoaSAlIHBhZ2VfY291bnQpOworCQl2b2xhdGls ZSB1aW50MzIgcmVzdWx0ID0gcGdfY2hlY2tzdW1fYmxvY2tfY2hvb3NlKChjb25zdCBjaGFyICop IHRlc3RfcGFnZSk7CisKKwkJKHZvaWQpIHJlc3VsdDsKKwl9CisKKwlwZnJlZSgodm9pZCAqKSBw YWdlcyk7CisKKwlQR19SRVRVUk5fVk9JRCgpOworfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19j aGVja3N1bV9iZW5jaC9wZ19jaGVja3N1bV9iZW5jaC5jb250cm9sIGIvY29udHJpYi9wZ19jaGVj a3N1bV9iZW5jaC9wZ19jaGVja3N1bV9iZW5jaC5jb250cm9sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi40YTRlMmM5MzYzYwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRy aWIvcGdfY2hlY2tzdW1fYmVuY2gvcGdfY2hlY2tzdW1fYmVuY2guY29udHJvbApAQCAtMCwwICsx LDQgQEAKK2NvbW1lbnQgPSAncGdfY2hlY2tzdW0gYmVuY2htYXJrJworZGVmYXVsdF92ZXJzaW9u ID0gJzEuMCcKK21vZHVsZV9wYXRobmFtZSA9ICckbGliZGlyL3BnX2NoZWNrc3VtX2JlbmNoJwor cmVsb2NhdGFibGUgPSB0cnVlCmRpZmYgLS1naXQgYS9jb250cmliL3BnX2NoZWNrc3VtX2JlbmNo L3NxbC9wZ19jaGVja3N1bV9iZW5jaC5zcWwgYi9jb250cmliL3BnX2NoZWNrc3VtX2JlbmNoL3Nx bC9wZ19jaGVja3N1bV9iZW5jaC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjRiMzQ3Njk5OTUzCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wZ19jaGVja3N1 bV9iZW5jaC9zcWwvcGdfY2hlY2tzdW1fYmVuY2guc3FsCkBAIC0wLDAgKzEsMTcgQEAKK0NSRUFU RSBFWFRFTlNJT04gcGdfY2hlY2tzdW1fYmVuY2g7CisKK1NFTEVDVCBkcml2ZV9wZ19jaGVja3N1 bSgtMSk7CisKK1x0aW1pbmcgb24KKworU0VMRUNUIGRyaXZlX3BnX2NoZWNrc3VtKDEpOworU0VM RUNUIGRyaXZlX3BnX2NoZWNrc3VtKDIpOworU0VMRUNUIGRyaXZlX3BnX2NoZWNrc3VtKDQpOwor U0VMRUNUIGRyaXZlX3BnX2NoZWNrc3VtKDgpOworU0VMRUNUIGRyaXZlX3BnX2NoZWNrc3VtKDE2 KTsKK1NFTEVDVCBkcml2ZV9wZ19jaGVja3N1bSgzMik7CitTRUxFQ1QgZHJpdmVfcGdfY2hlY2tz dW0oNjQpOworU0VMRUNUIGRyaXZlX3BnX2NoZWNrc3VtKDEyOCk7CitTRUxFQ1QgZHJpdmVfcGdf Y2hlY2tzdW0oMjU2KTsKK1NFTEVDVCBkcml2ZV9wZ19jaGVja3N1bSg1MTIpOworU0VMRUNUIGRy aXZlX3BnX2NoZWNrc3VtKDEwMjQpOwotLSAKMi41Mi4wCgo= --0000000000009a3c710648e402d3--