Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pjSlv-0002EA-5Z for pgsql-hackers@arkaria.postgresql.org; Mon, 03 Apr 2023 22:35:31 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pjSlt-0006y2-VT for pgsql-hackers@arkaria.postgresql.org; Mon, 03 Apr 2023 22:35:29 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pjSlt-0006xj-4w for pgsql-hackers@lists.postgresql.org; Mon, 03 Apr 2023 22:35:29 +0000 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pjSlk-0000R8-Kj for pgsql-hackers@postgresql.org; Mon, 03 Apr 2023 22:35:27 +0000 Received: by mail-pl1-x636.google.com with SMTP id kc4so29489628plb.10 for ; Mon, 03 Apr 2023 15:35:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680561319; x=1683153319; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=AcPA407GdhEEeqHxjKfyUu+ghT+L8JeAL5d/tbVp+Jw=; b=bIdw0dW32TXjyWAaO7pVX3oroZhYnkHlxdWc5CQfD9WVB+1mhzxz+FqjdYyyqrSFW0 gf3ogkdWysdRqxJ9K+kc824T2Q1CcHcK3i2+VeRitAPXCoUBwhqj0UmW9hX3iM5OPL+W 3kbpXxHDrQVll/14i7MXlcLsg7cYHcIDF5FV9AtiOnEQXGrNqrwJ2XwQWr4GtXdQI0Hh ldiShO4O4Su+NVU75Ci0Te5f8wygUSWCaZ8wB+XQUcPcFFQtwBuA5oyX5t08uBhS1Xp5 eLa/BJ0jWm7lJmhLd8BMMuqWQsSagW78A1jCeEjTvUV+zA2YP8F1E/wBCe33pvfOG4MF x2Tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680561319; x=1683153319; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=AcPA407GdhEEeqHxjKfyUu+ghT+L8JeAL5d/tbVp+Jw=; b=E770fUnPqbATnP/+R7rw5hL4r/MQX9R2Bd0L0FQLK0mr+xfxnp3fRQzUCXIwpJ27m+ 9Sxw0NodawoHPSiZtVEQM3xIgS0ufNbCSnxcR7BqidK1XNYaMJjUqlnZOMZKnfBUJAZY EUnHH/0P9v5ddLSWFUEKo8Hr3qtcC9Xhq7hqFWWtqH0pwXlJbc0PpoPHn7rHGzokOZWi uKCZZotELtpWE+DbGRnXT4RzbdbLEPjvf9eowmjM2jG6MtxRbuNnJOq8eR44DIvvhL56 SNgztU64lo+5+yxk+xNc9NBXUb8t+NVWJkg3Ei+H59Pc4+eB4N67zgdFWpM4v/U7EUew iqtQ== X-Gm-Message-State: AAQBX9dlbmRvv2azCZdKb2dzRziNCXbx21j4UVAW9aLqO1aaDMjTBKKm Yysx+CVBRrWdXmkmcWnzlTazEPZ4woi5yduqn58= X-Google-Smtp-Source: AKy350aJnVY+2H1q/VzcorUzbl69RiIh85qxHcLp6v231ItZWhmPH7Xxux6ENIzXtxUX7cT1t2shWHzE2FUOwtNn48c= X-Received: by 2002:a17:90b:f18:b0:240:c40:f325 with SMTP id br24-20020a17090b0f1800b002400c40f325mr181130pjb.4.1680561319235; Mon, 03 Apr 2023 15:35:19 -0700 (PDT) MIME-Version: 1.0 References: <20230329.132155.629765142788133576.horikyota.ntt@gmail.com> <20230329.173456.1185961934810139447.horikyota.ntt@gmail.com> <935191FB-083B-4060-89FC-466F61FAA391@yesql.se> <1252075.1680547394@sss.pgh.pa.us> <20230403190837.qubpnwugfe2k2g46@awork3.anarazel.de> In-Reply-To: <20230403190837.qubpnwugfe2k2g46@awork3.anarazel.de> From: Melanie Plageman Date: Mon, 3 Apr 2023 18:35:07 -0400 Message-ID: Subject: Re: Should vacuum process config file reload more often To: Andres Freund Cc: Tom Lane , Masahiko Sawada , Daniel Gustafsson , Kyotaro Horiguchi , PostgreSQL Hackers , amit.kapila16@gmail.com Content-Type: multipart/mixed; boundary="00000000000075b7bf05f8762c12" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000075b7bf05f8762c12 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Apr 3, 2023 at 3:08=E2=80=AFPM Andres Freund w= rote: > On 2023-04-03 14:43:14 -0400, Tom Lane wrote: > > Melanie Plageman writes: > > > v13 attached with requested updates. > > > > I'm afraid I'd not been paying any attention to this discussion, > > but better late than never. I'm okay with letting autovacuum > > processes reload config files more often than now. However, > > I object to allowing ProcessConfigFile to be called from within > > commands in a normal user backend. The existing semantics are > > that user backends respond to SIGHUP only at the start of processing > > a user command, and I'm uncomfortable with suddenly deciding that > > that can work differently if the command happens to be VACUUM. > > It seems unprincipled and perhaps actively unsafe. > > I think it should be ok in commands like VACUUM that already internally s= tart > their own transactions, and thus require to be run outside of a transacti= on > and at the toplevel. I share your concerns about allowing config reload i= n > arbitrary places. While we might want to go there, it would require a lot= more > analysis. As an alternative for your consideration, attached v14 set implements the config file reload for autovacuum only (in 0003) and then enables it for VACUUM and ANALYZE not in a nested transaction command (in 0004). Previously I had the commits in the reverse order for ease of review (to separate changes to worker limit balancing logic from config reload code). - Melanie --00000000000075b7bf05f8762c12 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0003-Autovacuum-refreshes-cost-based-delay-params-mor.patch" Content-Disposition: attachment; filename="v14-0003-Autovacuum-refreshes-cost-based-delay-params-mor.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lg1eclje2 RnJvbSAxNzgxZGQ3MTc0ZDVkNmVhYWViNGJkMDIwMjkyMTJmM2MyM2Q0ZGJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI1IE1hciAyMDIzIDE0OjE0OjU1IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMy80XSBBdXRvdmFjdXVtIHJlZnJlc2hlcyBjb3N0LWJhc2VkIGRlbGF5IHBhcmFt cyBtb3JlCiBvZnRlbgoKQWxsb3cgYXV0b3ZhY3V1bSB0byByZWxvYWQgdGhlIGNvbmZpZyBmaWxl IG1vcmUgb2Z0ZW4gc28gdGhhdCBjb3N0LWJhc2VkCmRlbGF5IHBhcmFtZXRlcnMgY2FuIHRha2Ug ZWZmZWN0IHdoaWxlIFZBQ1VVTWluZyBhIHJlbGF0aW9uLiBQcmV2aW91c2x5CmF1dG92YWN1dW0g d29ya2VycyBvbmx5IHJlbG9hZGVkIHRoZSBjb25maWcgZmlsZSBvbmNlIHBlciByZWxhdGlvbgp2 YWN1dW1lZCwgc28gY29uZmlnIGNoYW5nZXMgY291bGQgbm90IHRha2UgZWZmZWN0IHVudGlsIGJl Z2lubmluZyB0bwp2YWN1dW0gdGhlIG5leHQgdGFibGUuCgpOb3csIGNoZWNrIGlmIGEgcmVsb2Fk IGlzIHBlbmRpbmcgcm91Z2hseSBvbmNlIHBlciBibG9jaywgd2hlbiBjaGVja2luZwppZiB3ZSBu ZWVkIHRvIGRlbGF5LgoKSW4gb3JkZXIgZm9yIGF1dG92YWN1dW0gd29ya2VycyB0byBzYWZlbHkg dXBkYXRlIHRoZWlyIG93biBjb3N0IGRlbGF5CmFuZCBjb3N0IGxpbWl0IHBhcmFtZXRlcnMgd2l0 aG91dCBpbXBhY3RpbmcgcGVyZm9ybWFuY2UsIHdlIGhhZCB0bwpyZXRoaW5rIHdoZW4gYW5kIGhv dyB0aGVzZSB2YWx1ZXMgd2VyZSBhY2Nlc3NlZC4KClByZXZpb3VzbHksIGFuIGF1dG92YWN1dW0g d29ya2VyJ3Mgd2lfY29zdF9saW1pdCB3YXMgc2V0IG9ubHkgYXQgdGhlCmJlZ2lubmluZyBvZiB2 YWN1dW1pbmcgYSB0YWJsZSwgYWZ0ZXIgcmVsb2FkaW5nIHRoZSBjb25maWcgZmlsZS4KVGhlcmVm b3JlLCBhdCB0aGUgdGltZSB0aGF0IGF1dG92YWNfYmFsYW5jZV9jb3N0KCkgaXMgY2FsbGVkLCB3 b3JrZXJzCnZhY3V1bWluZyB0YWJsZXMgd2l0aCBubyB0YWJsZSBvcHRpb25zIGNvdWxkIHN0aWxs IGhhdmUgZGlmZmVyZW50IHZhbHVlcwpmb3IgdGhlaXIgd2lfY29zdF9saW1pdF9iYXNlIGFuZCB3 aV9jb3N0X2RlbGF5LgoKTm93IHRoYXQgdGhlIGNvc3QgcGFyYW1ldGVycyBjYW4gYmUgdXBkYXRl ZCB3aGlsZSB2YWN1dW1pbmcgYSB0YWJsZSwKd29ya2VycyB3aWxsICh3aXRoaW4gc29tZSBtYXJn aW4gb2YgZXJyb3IpIGhhdmUgbm8gcmVhc29uIHRvIGhhdmUKZGlmZmVyZW50IHZhbHVlcyBmb3Ig Y29zdCBsaW1pdCBhbmQgY29zdCBkZWxheSAoaW4gdGhlIGFic2VuY2Ugb2YgdGFibGUKb3B0aW9u cykuIFRoaXMgcmVtb3ZlcyB0aGUgcmF0aW9uYWxlIGZvciBrZWVwaW5nIGNvc3QgbGltaXQgYW5k IGNvc3QKZGVsYXkgaW4gc2hhcmVkIG1lbW9yeS4gQmFsYW5jaW5nIHRoZSBjb3N0IGxpbWl0IHJl cXVpcmVzIG9ubHkgdGhlCm51bWJlciBvZiBhY3RpdmUgYXV0b3ZhY3V1bSB3b3JrZXJzIHZhY3V1 bWluZyBhIHRhYmxlIHdpdGggbm8gY29zdC1iYXNlZAp0YWJsZSBvcHRpb25zLgoKUmV2aWV3ZWQt Ynk6IE1hc2FoaWtvIFNhd2FkYSA8c2F3YWRhLm1zaGtAZ21haWwuY29tPgpSZXZpZXdlZC1ieTog S3lvdGFybyBIb3JpZ3VjaGkgPGhvcmlreW90YS5udHRAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBo dHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL2ZsYXQvQ0FBS1J1X1puZ3pxbkVP RGM3TG1TMU5IMDRLdDZZOWh1U2p6NXBwNyUyQkRYaHJqREEwZ3clNDBtYWlsLmdtYWlsLmNvbQot LS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jICAgICAgIHwgIDQ0ICsrKystCiBzcmMv YmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYyB8IDI1MyArKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCAgICAgICB8ICAgMSArCiAz IGZpbGVzIGNoYW5nZWQsIDE4MCBpbnNlcnRpb25zKCspLCAxMTggZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy92YWN1dW0uYwppbmRleCA5NmRmNWUyOTIwLi5hNTFhM2Y3OGEwIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92 YWN1dW0uYwpAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1ZGUg InBvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvYmd3b3JrZXJf aW50ZXJuYWxzLmgiCisjaW5jbHVkZSAicG9zdG1hc3Rlci9pbnRlcnJ1cHQuaCIKICNpbmNsdWRl ICJzdG9yYWdlL2J1Zm1nci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1ZGUg InN0b3JhZ2UvcG1zaWduYWwuaCIKQEAgLTUxMCw5ICs1MTEsOSBAQCB2YWN1dW0oTGlzdCAqcmVs YXRpb25zLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAl7CiAJCUxpc3RDZWxsICAgKmN1cjsKIAot CQlWYWN1dW1VcGRhdGVDb3N0cygpOwogCQlpbl92YWN1dW0gPSB0cnVlOwotCQlWYWN1dW1Db3N0 QWN0aXZlID0gKFZhY3V1bUNvc3REZWxheSA+IDApOworCQlWYWN1dW1GYWlsc2FmZUFjdGl2ZSA9 IGZhbHNlOworCQlWYWN1dW1VcGRhdGVDb3N0cygpOwogCQlWYWN1dW1Db3N0QmFsYW5jZSA9IDA7 CiAJCVZhY3V1bVBhZ2VIaXQgPSAwOwogCQlWYWN1dW1QYWdlTWlzcyA9IDA7CkBAIC01NjYsMTIg KzU2NywyMCBAQCB2YWN1dW0oTGlzdCAqcmVsYXRpb25zLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywK IAkJCQkJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKIAkJCQl9CiAJCQl9CisKKwkJCS8qCisJ CQkgKiBFbnN1cmUgVmFjdXVtRmFpbHNhZmVBY3RpdmUgaGFzIGJlZW4gcmVzZXQgYmVmb3JlIHZh Y3V1bWluZyB0aGUKKwkJCSAqIG5leHQgcmVsYXRpb24gcmVsYXRpb24uCisJCQkgKi8KKwkJCVZh Y3V1bUZhaWxzYWZlQWN0aXZlID0gZmFsc2U7CiAJCX0KIAl9CiAJUEdfRklOQUxMWSgpOwogCXsK IAkJaW5fdmFjdXVtID0gZmFsc2U7CiAJCVZhY3V1bUNvc3RBY3RpdmUgPSBmYWxzZTsKKwkJVmFj dXVtRmFpbHNhZmVBY3RpdmUgPSBmYWxzZTsKKwkJVmFjdXVtQ29zdEJhbGFuY2UgPSAwOwogCX0K IAlQR19FTkRfVFJZKCk7CiAKQEAgLTIyMzgsNyArMjI0NywyNyBAQCB2YWN1dW1fZGVsYXlfcG9p bnQodm9pZCkKIAkvKiBBbHdheXMgY2hlY2sgZm9yIGludGVycnVwdHMgKi8KIAlDSEVDS19GT1Jf SU5URVJSVVBUUygpOwogCi0JaWYgKCFWYWN1dW1Db3N0QWN0aXZlIHx8IEludGVycnVwdFBlbmRp bmcpCisJaWYgKEludGVycnVwdFBlbmRpbmcgfHwKKwkJKCFWYWN1dW1Db3N0QWN0aXZlICYmICFD b25maWdSZWxvYWRQZW5kaW5nKSkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBSZWxvYWQgdGhlIGNv bmZpZ3VyYXRpb24gZmlsZSBpZiByZXF1ZXN0ZWQuIFRoaXMgYWxsb3dzIGNoYW5nZXMgdG8KKwkg KiBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0IGFuZCBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0 X2RlbGF5IHRvIHRha2UKKwkgKiBlZmZlY3Qgd2hpbGUgYSB0YWJsZSBpcyBiZWluZyB2YWN1dW1l ZCBvciBhbmFseXplZC4KKwkgKi8KKwlpZiAoQ29uZmlnUmVsb2FkUGVuZGluZyAmJiBJc0F1dG9W YWN1dW1Xb3JrZXJQcm9jZXNzKCkpCisJeworCQlDb25maWdSZWxvYWRQZW5kaW5nID0gZmFsc2U7 CisJCVByb2Nlc3NDb25maWdGaWxlKFBHQ19TSUdIVVApOworCQlWYWN1dW1VcGRhdGVDb3N0cygp OworCX0KKworCS8qCisJICogSWYgd2UgZGlzYWJsZWQgY29zdC1iYXNlZCBkZWxheXMgYWZ0ZXIg cmVsb2FkaW5nIHRoZSBjb25maWcgZmlsZSwKKwkgKiByZXR1cm4uCisJICovCisJaWYgKCFWYWN1 dW1Db3N0QWN0aXZlKQogCQlyZXR1cm47CiAKIAkvKgpAQCAtMjI3MSw3ICsyMzAwLDE0IEBAIHZh Y3V1bV9kZWxheV9wb2ludCh2b2lkKQogCiAJCVZhY3V1bUNvc3RCYWxhbmNlID0gMDsKIAotCQlW YWN1dW1VcGRhdGVDb3N0cygpOworCQkvKgorCQkgKiBCYWxhbmNlIGFuZCB1cGRhdGUgbGltaXQg dmFsdWVzIGZvciBhdXRvdmFjdXVtIHdvcmtlcnMuIFdlIG11c3QKKwkJICogYWx3YXlzIGRvIHRo aXMgaW4gY2FzZSB0aGUgYXV0b3ZhY3V1bSBsYXVuY2hlciBvciBhbm90aGVyCisJCSAqIGF1dG92 YWN1dW0gd29ya2VyIGhhcyByZWNhbGN1bGF0ZWQgdGhlIG51bWJlciBvZiB3b3JrZXJzIGFjcm9z cworCQkgKiB3aGljaCB3ZSBtdXN0IGJhbGFuY2UgdGhlIGxpbWl0LiBUaGlzIGlzIGRvbmUgYnkg dGhlIGxhdW5jaGVyIHdoZW4KKwkJICogbGF1bmNoaW5nIGEgbmV3IHdvcmtlciBhbmQgYnkgd29y a2VycyBiZWZvcmUgdmFjdXVtaW5nIGVhY2ggdGFibGUuCisJCSAqLworCQlBdXRvVmFjdXVtVXBk YXRlTGltaXQoKTsKIAogCQkvKiBNaWdodCBoYXZlIGdvdHRlbiBhbiBpbnRlcnJ1cHQgd2hpbGUg c2xlZXBpbmcgKi8KIAkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9h dXRvdmFjdXVtLmMKaW5kZXggZTBjNTY4ZmRhZi4uOGNiOWJlZTRlYiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1h c3Rlci9hdXRvdmFjdXVtLmMKQEAgLTEzOSw2ICsxMzksOSBAQCBpbnQJCQlMb2dfYXV0b3ZhY3V1 bV9taW5fZHVyYXRpb24gPSA2MDAwMDA7CiBzdGF0aWMgYm9vbCBhbV9hdXRvdmFjdXVtX2xhdW5j aGVyID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBhbV9hdXRvdmFjdXVtX3dvcmtlciA9IGZhbHNlOwog CitzdGF0aWMgZG91YmxlIGF2X3JlbG9wdF9jb3N0X2RlbGF5ID0gLTE7CitzdGF0aWMgaW50CWF2 X3JlbG9wdF9jb3N0X2xpbWl0ID0gMDsKKwogLyogRmxhZ3Mgc2V0IGJ5IHNpZ25hbCBoYW5kbGVy cyAqLwogc3RhdGljIHZvbGF0aWxlIHNpZ19hdG9taWNfdCBnb3RfU0lHVVNSMiA9IGZhbHNlOwog CkBAIC0xODksOCArMTkyLDggQEAgdHlwZWRlZiBzdHJ1Y3QgYXV0b3ZhY190YWJsZQogewogCU9p ZAkJCWF0X3JlbGlkOwogCVZhY3V1bVBhcmFtcyBhdF9wYXJhbXM7Ci0JZG91YmxlCQlhdF92YWN1 dW1fY29zdF9kZWxheTsKLQlpbnQJCQlhdF92YWN1dW1fY29zdF9saW1pdDsKKwlkb3VibGUJCWF0 X3JlbG9wdF92YWNfY29zdF9kZWxheTsKKwlpbnQJCQlhdF9yZWxvcHRfdmFjX2Nvc3RfbGltaXQ7 CiAJYm9vbAkJYXRfZG9iYWxhbmNlOwogCWJvb2wJCWF0X3NoYXJlZHJlbDsKIAljaGFyCSAgICph dF9yZWxuYW1lOwpAQCAtMjA5LDcgKzIxMiw3IEBAIHR5cGVkZWYgc3RydWN0IGF1dG92YWNfdGFi bGUKICAqIHdpX3NoYXJlZHJlbCBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0YWJsZSBpcyBtYXJr ZWQgcmVsaXNzaGFyZWQKICAqIHdpX3Byb2MJCXBvaW50ZXIgdG8gUEdQUk9DIG9mIHRoZSBydW5u aW5nIHdvcmtlciwgTlVMTCBpZiBub3Qgc3RhcnRlZAogICogd2lfbGF1bmNodGltZSBUaW1lIGF0 IHdoaWNoIHRoaXMgd29ya2VyIHdhcyBsYXVuY2hlZAotICogd2lfY29zdF8qCVZhY3V1bSBjb3N0 LWJhc2VkIGRlbGF5IHBhcmFtZXRlcnMgY3VycmVudCBpbiB0aGlzIHdvcmtlcgorICogd2lfZG9i YWxhbmNlIFdoZXRoZXIgdGhpcyB3b3JrZXIgc2hvdWxkIGJlIGluY2x1ZGVkIGluIGJhbGFuY2Ug Y2FsY3VsYXRpb25zCiAgKgogICogQWxsIGZpZWxkcyBhcmUgcHJvdGVjdGVkIGJ5IEF1dG92YWN1 dW1Mb2NrLCBleGNlcHQgZm9yIHdpX3RhYmxlb2lkIGFuZAogICogd2lfc2hhcmVkcmVsIHdoaWNo IGFyZSBwcm90ZWN0ZWQgYnkgQXV0b3ZhY3V1bVNjaGVkdWxlTG9jayAobm90ZSB0aGVzZQpAQCAt MjIzLDExICsyMjYsOCBAQCB0eXBlZGVmIHN0cnVjdCBXb3JrZXJJbmZvRGF0YQogCU9pZAkJCXdp X3RhYmxlb2lkOwogCVBHUFJPQwkgICAqd2lfcHJvYzsKIAlUaW1lc3RhbXBUeiB3aV9sYXVuY2h0 aW1lOwotCWJvb2wJCXdpX2RvYmFsYW5jZTsKKwlwZ19hdG9taWNfZmxhZyB3aV9kb2JhbGFuY2U7 CiAJYm9vbAkJd2lfc2hhcmVkcmVsOwotCWRvdWJsZQkJd2lfY29zdF9kZWxheTsKLQlpbnQJCQl3 aV9jb3N0X2xpbWl0OwotCWludAkJCXdpX2Nvc3RfbGltaXRfYmFzZTsKIH0gV29ya2VySW5mb0Rh dGE7CiAKIHR5cGVkZWYgc3RydWN0IFdvcmtlckluZm9EYXRhICpXb3JrZXJJbmZvOwpAQCAtMjcz LDYgKzI3Myw4IEBAIHR5cGVkZWYgc3RydWN0IEF1dG9WYWN1dW1Xb3JrSXRlbQogICogYXZfc3Rh cnRpbmdXb3JrZXIgcG9pbnRlciB0byBXb3JrZXJJbmZvIGN1cnJlbnRseSBiZWluZyBzdGFydGVk IChjbGVhcmVkIGJ5CiAgKgkJCQkJdGhlIHdvcmtlciBpdHNlbGYgYXMgc29vbiBhcyBpdCdzIHVw IGFuZCBydW5uaW5nKQogICogYXZfd29ya0l0ZW1zCQl3b3JrIGl0ZW0gYXJyYXkKKyAqIGF2X253 b3JrZXJzRm9yQmFsYW5jZSB0aGUgbnVtYmVyIG9mIGF1dG92YWN1dW0gd29ya2VycyB0byB1c2Ug d2hlbgorICogCQkJCQljYWxjdWxhdGluZyB0aGUgcGVyIHdvcmtlciBjb3N0IGxpbWl0CiAgKgog ICogVGhpcyBzdHJ1Y3QgaXMgcHJvdGVjdGVkIGJ5IEF1dG92YWN1dW1Mb2NrLCBleGNlcHQgZm9y IGF2X3NpZ25hbCBhbmQgcGFydHMKICAqIG9mIHRoZSB3b3JrZXIgbGlzdCAoc2VlIGFib3ZlKS4K QEAgLTI4Niw2ICsyODgsNyBAQCB0eXBlZGVmIHN0cnVjdAogCWRsaXN0X2hlYWQJYXZfcnVubmlu Z1dvcmtlcnM7CiAJV29ya2VySW5mbwlhdl9zdGFydGluZ1dvcmtlcjsKIAlBdXRvVmFjdXVtV29y a0l0ZW0gYXZfd29ya0l0ZW1zW05VTV9XT1JLSVRFTVNdOworCXBnX2F0b21pY191aW50MzIgYXZf bndvcmtlcnNGb3JCYWxhbmNlOwogfSBBdXRvVmFjdXVtU2htZW1TdHJ1Y3Q7CiAKIHN0YXRpYyBB dXRvVmFjdXVtU2htZW1TdHJ1Y3QgKkF1dG9WYWN1dW1TaG1lbTsKQEAgLTMxOSw3ICszMjIsNyBA QCBzdGF0aWMgdm9pZCBsYXVuY2hfd29ya2VyKFRpbWVzdGFtcFR6IG5vdyk7CiBzdGF0aWMgTGlz dCAqZ2V0X2RhdGFiYXNlX2xpc3Qodm9pZCk7CiBzdGF0aWMgdm9pZCByZWJ1aWxkX2RhdGFiYXNl X2xpc3QoT2lkIG5ld2RiKTsKIHN0YXRpYyBpbnQJZGJfY29tcGFyYXRvcihjb25zdCB2b2lkICph LCBjb25zdCB2b2lkICpiKTsKLXN0YXRpYyB2b2lkIGF1dG92YWNfYmFsYW5jZV9jb3N0KHZvaWQp Oworc3RhdGljIHZvaWQgYXV0b3ZhY19yZWNhbGN1bGF0ZV93b3JrZXJzX2Zvcl9iYWxhbmNlKHZv aWQpOwogCiBzdGF0aWMgdm9pZCBkb19hdXRvdmFjdXVtKHZvaWQpOwogc3RhdGljIHZvaWQgRnJl ZVdvcmtlckluZm8oaW50IGNvZGUsIERhdHVtIGFyZyk7CkBAIC02NzAsNyArNjczLDcgQEAgQXV0 b1ZhY0xhdW5jaGVyTWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkJewogCQkJCUxXTG9j a0FjcXVpcmUoQXV0b3ZhY3V1bUxvY2ssIExXX0VYQ0xVU0lWRSk7CiAJCQkJQXV0b1ZhY3V1bVNo bWVtLT5hdl9zaWduYWxbQXV0b1ZhY1JlYmFsYW5jZV0gPSBmYWxzZTsKLQkJCQlhdXRvdmFjX2Jh bGFuY2VfY29zdCgpOworCQkJCWF1dG92YWNfcmVjYWxjdWxhdGVfd29ya2Vyc19mb3JfYmFsYW5j ZSgpOwogCQkJCUxXTG9ja1JlbGVhc2UoQXV0b3ZhY3V1bUxvY2spOwogCQkJfQogCkBAIC04MjAs OCArODIzLDggQEAgSGFuZGxlQXV0b1ZhY0xhdW5jaGVySW50ZXJydXB0cyh2b2lkKQogCQkJQXV0 b1ZhY0xhdW5jaGVyU2h1dGRvd24oKTsKIAogCQkvKiByZWJhbGFuY2UgaW4gY2FzZSB0aGUgZGVm YXVsdCBjb3N0IHBhcmFtZXRlcnMgY2hhbmdlZCAqLwotCQlMV0xvY2tBY3F1aXJlKEF1dG92YWN1 dW1Mb2NrLCBMV19FWENMVVNJVkUpOwotCQlhdXRvdmFjX2JhbGFuY2VfY29zdCgpOworCQlMV0xv Y2tBY3F1aXJlKEF1dG92YWN1dW1Mb2NrLCBMV19TSEFSRUQpOworCQlhdXRvdmFjX3JlY2FsY3Vs YXRlX3dvcmtlcnNfZm9yX2JhbGFuY2UoKTsKIAkJTFdMb2NrUmVsZWFzZShBdXRvdmFjdXVtTG9j ayk7CiAKIAkJLyogcmVidWlsZCB0aGUgbGlzdCBpbiBjYXNlIHRoZSBuYXB0aW1lIGNoYW5nZWQg Ki8KQEAgLTE3NTUsMTAgKzE3NTgsNyBAQCBGcmVlV29ya2VySW5mbyhpbnQgY29kZSwgRGF0dW0g YXJnKQogCQlNeVdvcmtlckluZm8tPndpX3NoYXJlZHJlbCA9IGZhbHNlOwogCQlNeVdvcmtlcklu Zm8tPndpX3Byb2MgPSBOVUxMOwogCQlNeVdvcmtlckluZm8tPndpX2xhdW5jaHRpbWUgPSAwOwot CQlNeVdvcmtlckluZm8tPndpX2RvYmFsYW5jZSA9IGZhbHNlOwotCQlNeVdvcmtlckluZm8tPndp X2Nvc3RfZGVsYXkgPSAwOwotCQlNeVdvcmtlckluZm8tPndpX2Nvc3RfbGltaXQgPSAwOwotCQlN eVdvcmtlckluZm8tPndpX2Nvc3RfbGltaXRfYmFzZSA9IDA7CisJCXBnX2F0b21pY19jbGVhcl9m bGFnKCZNeVdvcmtlckluZm8tPndpX2RvYmFsYW5jZSk7CiAJCWRsaXN0X3B1c2hfaGVhZCgmQXV0 b1ZhY3V1bVNobWVtLT5hdl9mcmVlV29ya2VycywKIAkJCQkJCSZNeVdvcmtlckluZm8tPndpX2xp bmtzKTsKIAkJLyogbm90IG1pbmUgYW55bW9yZSAqLwpAQCAtMTc4Nyw5NyArMTc4NywxMTkgQEAg VmFjdXVtVXBkYXRlQ29zdHModm9pZCkKIAogCWlmIChhbV9hdXRvdmFjdXVtX3dvcmtlcikKIAl7 Ci0JCVZhY3V1bUNvc3REZWxheSA9IE15V29ya2VySW5mby0+d2lfY29zdF9kZWxheTsKLQkJVmFj dXVtQ29zdExpbWl0ID0gTXlXb3JrZXJJbmZvLT53aV9jb3N0X2xpbWl0OworCQlpZiAoYXZfcmVs b3B0X2Nvc3RfZGVsYXkgPj0gMCkKKwkJCVZhY3V1bUNvc3REZWxheSA9IGF2X3JlbG9wdF9jb3N0 X2RlbGF5OworCQllbHNlIGlmIChhdXRvdmFjdXVtX3ZhY19jb3N0X2RlbGF5ID49IDApCisJCQlW YWN1dW1Db3N0RGVsYXkgPSBhdXRvdmFjdXVtX3ZhY19jb3N0X2RlbGF5OworCQllbHNlCisJCQkv KiBmYWxsIGJhY2sgdG8gdmFjdXVtX2Nvc3RfZGVsYXkgKi8KKwkJCVZhY3V1bUNvc3REZWxheSA9 IHZhY3V1bV9jb3N0X2RlbGF5OworCisJCUF1dG9WYWN1dW1VcGRhdGVMaW1pdCgpOwogCX0KIAll bHNlCiAJewogCQkvKiBNdXN0IGJlIGV4cGxpY2l0IFZBQ1VVTSBvciBBTkFMWVpFICovCi0JCVZh Y3V1bUNvc3RMaW1pdCA9IHZhY3V1bV9jb3N0X2xpbWl0OwogCQlWYWN1dW1Db3N0RGVsYXkgPSB2 YWN1dW1fY29zdF9kZWxheTsKKwkJVmFjdXVtQ29zdExpbWl0ID0gdmFjdXVtX2Nvc3RfbGltaXQ7 CisJfQorCisJLyoKKwkgKiBJZiBjb25maWd1cmF0aW9uIGNoYW5nZXMgYXJlIGFsbG93ZWQgdG8g aW1wYWN0IFZhY3V1bUNvc3RBY3RpdmUsIG1ha2UKKwkgKiBzdXJlIGl0IGlzIHVwZGF0ZWQuCisJ ICovCisJaWYgKFZhY3V1bUZhaWxzYWZlQWN0aXZlKQorCXsKKwkJQXNzZXJ0KCFWYWN1dW1Db3N0 QWN0aXZlKTsKKwkJcmV0dXJuOworCX0KKworCWlmIChWYWN1dW1Db3N0RGVsYXkgPiAwKQorCQlW YWN1dW1Db3N0QWN0aXZlID0gdHJ1ZTsKKwllbHNlCisJeworCQlWYWN1dW1Db3N0QWN0aXZlID0g ZmFsc2U7CisJCVZhY3V1bUNvc3RCYWxhbmNlID0gMDsKIAl9CiB9CiAKIC8qCi0gKiBhdXRvdmFj X2JhbGFuY2VfY29zdAotICoJCVJlY2FsY3VsYXRlIHRoZSBjb3N0IGxpbWl0IHNldHRpbmcgZm9y IGVhY2ggYWN0aXZlIHdvcmtlci4KLSAqCi0gKiBDYWxsZXIgbXVzdCBob2xkIHRoZSBBdXRvdmFj dXVtTG9jayBpbiBleGNsdXNpdmUgbW9kZS4KLSAqLwotc3RhdGljIHZvaWQKLWF1dG92YWNfYmFs YW5jZV9jb3N0KHZvaWQpCisqIFVwZGF0ZSBWYWN1dW1Db3N0TGltaXQgd2l0aCB0aGUgY29ycmVj dCB2YWx1ZSBmb3IgYW4gYXV0b3ZhY3V1bSB3b3JrZXIsIGdpdmVuCisqIHRoZSB2YWx1ZSBvZiBv dGhlciByZWxldmFudCBjb3N0IGxpbWl0IHBhcmFtZXRlcnMgYW5kIHRoZSBudW1iZXIgb2Ygd29y a2VycworKiBhY3Jvc3Mgd2hpY2ggdGhlIGxpbWl0IG11c3QgYmUgYmFsYW5jZWQuIEF1dG92YWN1 dW0gd29ya2VycyBtdXN0IGNhbGwgdGhpcworKiByZWd1bGFybHkgaW4gY2FzZSBhdl9ud29ya2Vy c19mb3JfYmFsYW5jZSBoYXMgYmVlbiB1cGRhdGVkIGJ5IGFub3RoZXIgd29ya2VyCisqIG9yIGJ5 IHRoZSBhdXRvdmFjdXVtIGxhdW5jaGVyLiBUaGV5IG11c3QgYWxzbyBjYWxsIGl0IGFmdGVyIGEg Y29uZmlnIHJlbG9hZC4KKyovCit2b2lkCitBdXRvVmFjdXVtVXBkYXRlTGltaXQodm9pZCkKIHsK KwlpZiAoIWFtX2F1dG92YWN1dW1fd29ya2VyKQorCQlyZXR1cm47CisKIAkvKgotCSAqIFRoZSBp ZGVhIGhlcmUgaXMgdGhhdCB3ZSByYXRpb24gb3V0IEkvTyBlcXVhbGx5LiAgVGhlIGFtb3VudCBv ZiBJL08KLQkgKiB0aGF0IGEgd29ya2VyIGNhbiBjb25zdW1lIGlzIGRldGVybWluZWQgYnkgY29z dF9saW1pdC9jb3N0X2RlbGF5LCBzbyB3ZQotCSAqIHRyeSB0byBlcXVhbGl6ZSB0aG9zZSByYXRp b3MgcmF0aGVyIHRoYW4gdGhlIHJhdyBsaW1pdCBzZXR0aW5ncy4KLQkgKgogCSAqIG5vdGU6IGlu IGNvc3RfbGltaXQsIHplcm8gYWxzbyBtZWFucyB1c2UgdmFsdWUgZnJvbSBlbHNld2hlcmUsIGJl Y2F1c2UKIAkgKiB6ZXJvIGlzIG5vdCBhIHZhbGlkIHZhbHVlLgogCSAqLwotCWludAkJCXZhY19j b3N0X2xpbWl0ID0gKGF1dG92YWN1dW1fdmFjX2Nvc3RfbGltaXQgPiAwID8KLQkJCQkJCQkJICBh dXRvdmFjdXVtX3ZhY19jb3N0X2xpbWl0IDogdmFjdXVtX2Nvc3RfbGltaXQpOwotCWRvdWJsZQkJ dmFjX2Nvc3RfZGVsYXkgPSAoYXV0b3ZhY3V1bV92YWNfY29zdF9kZWxheSA+PSAwID8KLQkJCQkJ CQkJICBhdXRvdmFjdXVtX3ZhY19jb3N0X2RlbGF5IDogdmFjdXVtX2Nvc3RfZGVsYXkpOwotCWRv dWJsZQkJY29zdF90b3RhbDsKLQlkb3VibGUJCWNvc3RfYXZhaWw7Ci0JZGxpc3RfaXRlcglpdGVy OwotCi0JLyogbm90IHNldD8gbm90aGluZyB0byBkbyAqLwotCWlmICh2YWNfY29zdF9saW1pdCA8 PSAwIHx8IHZhY19jb3N0X2RlbGF5IDw9IDApCi0JCXJldHVybjsKIAotCS8qIGNhbGN1bGF0ZSB0 aGUgdG90YWwgYmFzZSBjb3N0IGxpbWl0IG9mIHBhcnRpY2lwYXRpbmcgYWN0aXZlIHdvcmtlcnMg Ki8KLQljb3N0X3RvdGFsID0gMC4wOwotCWRsaXN0X2ZvcmVhY2goaXRlciwgJkF1dG9WYWN1dW1T aG1lbS0+YXZfcnVubmluZ1dvcmtlcnMpCisJaWYgKGF2X3JlbG9wdF9jb3N0X2xpbWl0ID4gMCkK KwkJVmFjdXVtQ29zdExpbWl0ID0gYXZfcmVsb3B0X2Nvc3RfbGltaXQ7CisJZWxzZQogCXsKLQkJ V29ya2VySW5mbwl3b3JrZXIgPSBkbGlzdF9jb250YWluZXIoV29ya2VySW5mb0RhdGEsIHdpX2xp bmtzLCBpdGVyLmN1cik7CisJCWludAkJCW53b3JrZXJzX2Zvcl9iYWxhbmNlOworCisJCWlmIChh dXRvdmFjdXVtX3ZhY19jb3N0X2xpbWl0ID4gMCkKKwkJCVZhY3V1bUNvc3RMaW1pdCA9IGF1dG92 YWN1dW1fdmFjX2Nvc3RfbGltaXQ7CisJCWVsc2UKKwkJCVZhY3V1bUNvc3RMaW1pdCA9IHZhY3V1 bV9jb3N0X2xpbWl0OworCisJCS8qIE9ubHkgYmFsYW5jZSBsaW1pdCBpZiBubyB0YWJsZSBvcHRp b25zIHNwZWNpZmllZCAqLworCQlpZiAocGdfYXRvbWljX3VubG9ja2VkX3Rlc3RfZmxhZygmTXlX b3JrZXJJbmZvLT53aV9kb2JhbGFuY2UpKQorCQkJcmV0dXJuOwogCi0JCWlmICh3b3JrZXItPndp X3Byb2MgIT0gTlVMTCAmJgotCQkJd29ya2VyLT53aV9kb2JhbGFuY2UgJiYKLQkJCXdvcmtlci0+ d2lfY29zdF9saW1pdF9iYXNlID4gMCAmJiB3b3JrZXItPndpX2Nvc3RfZGVsYXkgPiAwKQotCQkJ Y29zdF90b3RhbCArPQotCQkJCShkb3VibGUpIHdvcmtlci0+d2lfY29zdF9saW1pdF9iYXNlIC8g d29ya2VyLT53aV9jb3N0X2RlbGF5OworCQlBc3NlcnQoVmFjdXVtQ29zdExpbWl0ID4gMCk7CisK KwkJbndvcmtlcnNfZm9yX2JhbGFuY2UgPSBwZ19hdG9taWNfcmVhZF91MzIoCisJCQkJCQkJCSZB dXRvVmFjdXVtU2htZW0tPmF2X253b3JrZXJzRm9yQmFsYW5jZSk7CisKKwkJLyogVGhlcmUgaXMg YXQgbGVhc3QgMSBhdXRvdmFjIHdvcmtlciAodGhpcyB3b3JrZXIpLiAqLworCQlBc3NlcnQobndv cmtlcnNfZm9yX2JhbGFuY2UgPiAwKTsKKworCQlWYWN1dW1Db3N0TGltaXQgPSBNYXgoVmFjdXVt Q29zdExpbWl0IC8gbndvcmtlcnNfZm9yX2JhbGFuY2UsIDEpOwogCX0KK30KIAotCS8qIHRoZXJl IGFyZSBubyBjb3N0IGxpbWl0cyAtLSBub3RoaW5nIHRvIGRvICovCi0JaWYgKGNvc3RfdG90YWwg PD0gMCkKLQkJcmV0dXJuOworLyoKKyAqIGF1dG92YWNfcmVjYWxjdWxhdGVfd29ya2Vyc19mb3Jf YmFsYW5jZQorICoJCVJlY2FsY3VsYXRlIHRoZSBudW1iZXIgb2Ygd29ya2VycyB0byBjb25zaWRl ciwgZ2l2ZW4gdGFibGUgb3B0aW9ucyBhbmQKKyAqCQl0aGUgY3VycmVudCBudW1iZXIgb2YgYWN0 aXZlIHdvcmtlcnMuCisgKgorICogQ2FsbGVyIG11c3QgaG9sZCB0aGUgQXV0b3ZhY3V1bUxvY2sg aW4gYXQgbGVhc3Qgc2hhcmVkIG1vZGUgdG8gYWNjZXNzCisgKiB3b3JrZXItPndpX3Byb2MuCisg Ki8KK3N0YXRpYyB2b2lkCithdXRvdmFjX3JlY2FsY3VsYXRlX3dvcmtlcnNfZm9yX2JhbGFuY2Uo dm9pZCkKK3sKKwlkbGlzdF9pdGVyCWl0ZXI7CisJaW50CQkJb3JpZ19ud29ya2Vyc19mb3JfYmFs YW5jZTsKKwlpbnQJCQlud29ya2Vyc19mb3JfYmFsYW5jZSA9IDA7CisKKwlvcmlnX253b3JrZXJz X2Zvcl9iYWxhbmNlID0KKwkJcGdfYXRvbWljX3JlYWRfdTMyKCZBdXRvVmFjdXVtU2htZW0tPmF2 X253b3JrZXJzRm9yQmFsYW5jZSk7CiAKLQkvKgotCSAqIEFkanVzdCBjb3N0IGxpbWl0IG9mIGVh Y2ggYWN0aXZlIHdvcmtlciB0byBiYWxhbmNlIHRoZSB0b3RhbCBvZiBjb3N0Ci0JICogbGltaXQg dG8gYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdC4KLQkgKi8KLQljb3N0X2F2YWlsID0gKGRv dWJsZSkgdmFjX2Nvc3RfbGltaXQgLyB2YWNfY29zdF9kZWxheTsKIAlkbGlzdF9mb3JlYWNoKGl0 ZXIsICZBdXRvVmFjdXVtU2htZW0tPmF2X3J1bm5pbmdXb3JrZXJzKQogCXsKIAkJV29ya2VySW5m bwl3b3JrZXIgPSBkbGlzdF9jb250YWluZXIoV29ya2VySW5mb0RhdGEsIHdpX2xpbmtzLCBpdGVy LmN1cik7CiAKLQkJaWYgKHdvcmtlci0+d2lfcHJvYyAhPSBOVUxMICYmCi0JCQl3b3JrZXItPndp X2RvYmFsYW5jZSAmJgotCQkJd29ya2VyLT53aV9jb3N0X2xpbWl0X2Jhc2UgPiAwICYmIHdvcmtl ci0+d2lfY29zdF9kZWxheSA+IDApCi0JCXsKLQkJCWludAkJCWxpbWl0ID0gKGludCkKLQkJCShj b3N0X2F2YWlsICogd29ya2VyLT53aV9jb3N0X2xpbWl0X2Jhc2UgLyBjb3N0X3RvdGFsKTsKLQot CQkJLyoKLQkJCSAqIFdlIHB1dCBhIGxvd2VyIGJvdW5kIG9mIDEgb24gdGhlIGNvc3RfbGltaXQs IHRvIGF2b2lkIGRpdmlzaW9uLQotCQkJICogYnktemVybyBpbiB0aGUgdmFjdXVtIGNvZGUuICBB bHNvLCBpbiBjYXNlIG9mIHJvdW5kb2ZmIHRyb3VibGUKLQkJCSAqIGluIHRoZXNlIGNhbGN1bGF0 aW9ucywgbGV0J3MgYmUgc3VyZSB3ZSBkb24ndCBldmVyIHNldAotCQkJICogY29zdF9saW1pdCB0 byBtb3JlIHRoYW4gdGhlIGJhc2UgdmFsdWUuCi0JCQkgKi8KLQkJCXdvcmtlci0+d2lfY29zdF9s aW1pdCA9IE1heChNaW4obGltaXQsCi0JCQkJCQkJCQkJCXdvcmtlci0+d2lfY29zdF9saW1pdF9i YXNlKSwKLQkJCQkJCQkJCQkxKTsKLQkJfQorCQlpZiAod29ya2VyLT53aV9wcm9jID09IE5VTEwg fHwKKwkJCXBnX2F0b21pY191bmxvY2tlZF90ZXN0X2ZsYWcoJndvcmtlci0+d2lfZG9iYWxhbmNl KSkKKwkJCWNvbnRpbnVlOwogCi0JCWlmICh3b3JrZXItPndpX3Byb2MgIT0gTlVMTCkKLQkJCWVs b2coREVCVUcyLCAiYXV0b3ZhY19iYWxhbmNlX2Nvc3QocGlkPSVkIGRiPSV1LCByZWw9JXUsIGRv YmFsYW5jZT0lcyBjb3N0X2xpbWl0PSVkLCBjb3N0X2xpbWl0X2Jhc2U9JWQsIGNvc3RfZGVsYXk9 JWcpIiwKLQkJCQkgd29ya2VyLT53aV9wcm9jLT5waWQsIHdvcmtlci0+d2lfZGJvaWQsIHdvcmtl ci0+d2lfdGFibGVvaWQsCi0JCQkJIHdvcmtlci0+d2lfZG9iYWxhbmNlID8gInllcyIgOiAibm8i LAotCQkJCSB3b3JrZXItPndpX2Nvc3RfbGltaXQsIHdvcmtlci0+d2lfY29zdF9saW1pdF9iYXNl LAotCQkJCSB3b3JrZXItPndpX2Nvc3RfZGVsYXkpOworCQlud29ya2Vyc19mb3JfYmFsYW5jZSsr OwogCX0KKworCWlmIChud29ya2Vyc19mb3JfYmFsYW5jZSAhPSBvcmlnX253b3JrZXJzX2Zvcl9i YWxhbmNlKQorCQlwZ19hdG9taWNfd3JpdGVfdTMyKCZBdXRvVmFjdXVtU2htZW0tPmF2X253b3Jr ZXJzRm9yQmFsYW5jZSwKKwkJCQkJCQlud29ya2Vyc19mb3JfYmFsYW5jZSk7CiB9CiAKIC8qCkBA IC0yNDI1LDIzICsyNDQ3LDMxIEBAIGRvX2F1dG92YWN1dW0odm9pZCkKIAkJCWNvbnRpbnVlOwog CQl9CiAKLQkJLyogTXVzdCBob2xkIEF1dG92YWN1dW1Mb2NrIHdoaWxlIG11Y2tpbmcgd2l0aCBj b3N0IGJhbGFuY2UgaW5mbyAqLwotCQlMV0xvY2tBY3F1aXJlKEF1dG92YWN1dW1Mb2NrLCBMV19F WENMVVNJVkUpOwogCi0JCS8qIGFkdmVydGlzZSBteSBjb3N0IGRlbGF5IHBhcmFtZXRlcnMgZm9y IHRoZSBiYWxhbmNpbmcgYWxnb3JpdGhtICovCi0JCU15V29ya2VySW5mby0+d2lfZG9iYWxhbmNl ID0gdGFiLT5hdF9kb2JhbGFuY2U7Ci0JCU15V29ya2VySW5mby0+d2lfY29zdF9kZWxheSA9IHRh Yi0+YXRfdmFjdXVtX2Nvc3RfZGVsYXk7Ci0JCU15V29ya2VySW5mby0+d2lfY29zdF9saW1pdCA9 IHRhYi0+YXRfdmFjdXVtX2Nvc3RfbGltaXQ7Ci0JCU15V29ya2VySW5mby0+d2lfY29zdF9saW1p dF9iYXNlID0gdGFiLT5hdF92YWN1dW1fY29zdF9saW1pdDsKKwkJLyoKKwkJICogU2F2ZSB0aGUg Y29zdC1yZWxhdGVkIHRhYmxlIG9wdGlvbnMgaW4gZ2xvYmFsIHZhcmlhYmxlcyBmb3IKKwkJICog cmVmZXJlbmNlIHdoZW4gdXBkYXRpbmcgVmFjdXVtQ29zdExpbWl0IGFuZCBWYWN1dW1Db3N0RGVs YXkgZHVyaW5nCisJCSAqIHZhY3V1bWluZyB0aGlzIHRhYmxlLgorCQkgKi8KKwkJYXZfcmVsb3B0 X2Nvc3RfbGltaXQgPSB0YWItPmF0X3JlbG9wdF92YWNfY29zdF9saW1pdDsKKwkJYXZfcmVsb3B0 X2Nvc3RfZGVsYXkgPSB0YWItPmF0X3JlbG9wdF92YWNfY29zdF9kZWxheTsKIAotCQkvKiBkbyBh IGJhbGFuY2UgKi8KLQkJYXV0b3ZhY19iYWxhbmNlX2Nvc3QoKTsKKwkJaWYgKHRhYi0+YXRfZG9i YWxhbmNlKQorCQkJcGdfYXRvbWljX3Rlc3Rfc2V0X2ZsYWcoJk15V29ya2VySW5mby0+d2lfZG9i YWxhbmNlKTsKKwkJZWxzZQorCQkJcGdfYXRvbWljX2NsZWFyX2ZsYWcoJk15V29ya2VySW5mby0+ d2lfZG9iYWxhbmNlKTsKIAotCQkvKiBzZXQgdGhlIGFjdGl2ZSBjb3N0IHBhcmFtZXRlcnMgZnJv bSB0aGUgcmVzdWx0IG9mIHRoYXQgKi8KKwkJTFdMb2NrQWNxdWlyZShBdXRvdmFjdXVtTG9jaywg TFdfU0hBUkVEKTsKKwkJYXV0b3ZhY19yZWNhbGN1bGF0ZV93b3JrZXJzX2Zvcl9iYWxhbmNlKCk7 CisJCUxXTG9ja1JlbGVhc2UoQXV0b3ZhY3V1bUxvY2spOworCisJCS8qCisJCSAqIFdlIHdhaXQg dW50aWwgdGhpcyBwb2ludCB0byB1cGRhdGUgY29zdCBkZWxheSBhbmQgY29zdCBsaW1pdAorCQkg KiB2YWx1ZXMsIGV2ZW4gdGhvdWdoIHdlIHJlbG9hZGVkIHRoZSBjb25maWd1cmF0aW9uIGZpbGUg YWJvdmUsIHNvCisJCSAqIHRoYXQgd2UgY2FuIHRha2UgaW50byBhY2NvdW50IHRoZSBjb3N0LXJl bGF0ZWQgdGFibGUgb3B0aW9ucy4KKwkJICovCiAJCVZhY3V1bVVwZGF0ZUNvc3RzKCk7CiAKLQkJ LyogZG9uZSAqLwotCQlMV0xvY2tSZWxlYXNlKEF1dG92YWN1dW1Mb2NrKTsKIAogCQkvKiBjbGVh biB1cCBtZW1vcnkgYmVmb3JlIGVhY2ggaXRlcmF0aW9uICovCiAJCU1lbW9yeUNvbnRleHRSZXNl dEFuZERlbGV0ZUNoaWxkcmVuKFBvcnRhbENvbnRleHQpOwpAQCAtMjUyNiwxMCArMjU1NiwxMCBA QCBkZWxldGVkOgogCiAJCS8qCiAJCSAqIFJlbW92ZSBteSBpbmZvIGZyb20gc2hhcmVkIG1lbW9y eS4gIFdlIGNvdWxkLCBidXQgaW50ZW50aW9uYWxseQotCQkgKiBkb24ndCwgY2xlYXIgd2lfY29z dF9saW1pdCBhbmQgZnJpZW5kcyAtLS0gdGhpcyBpcyBvbiB0aGUKLQkJICogYXNzdW1wdGlvbiB0 aGF0IHdlIHByb2JhYmx5IGhhdmUgbW9yZSB0byBkbyB3aXRoIHNpbWlsYXIgY29zdAotCQkgKiBz ZXR0aW5ncywgc28gd2UgZG9uJ3Qgd2FudCB0byBnaXZlIHVwIG91ciBzaGFyZSBvZiBJL08gZm9y IGEgdmVyeQotCQkgKiBzaG9ydCBpbnRlcnZhbCBhbmQgdGhlcmVieSB0aHJhc2ggdGhlIGdsb2Jh bCBiYWxhbmNlLgorCQkgKiBkb24ndCwgdW5zZXQgd2lfZG9iYWxhbmNlIG9uIHRoZSBhc3N1bXB0 aW9uIHRoYXQgd2UgYXJlIG1vcmUgbGlrZWx5CisJCSAqIHRoYW4gbm90IHRvIHZhY3V1bSBhIHRh YmxlIHdpdGggbm8gdGFibGUgb3B0aW9ucyBuZXh0LCBzbyB3ZSBkb24ndAorCQkgKiB3YW50IHRv IGdpdmUgdXAgb3VyIHNoYXJlIG9mIEkvTyBmb3IgYSB2ZXJ5IHNob3J0IGludGVydmFsIGFuZAor CQkgKiB0aGVyZWJ5IHRocmFzaCB0aGUgZ2xvYmFsIGJhbGFuY2UuCiAJCSAqLwogCQlMV0xvY2tB Y3F1aXJlKEF1dG92YWN1dW1TY2hlZHVsZUxvY2ssIExXX0VYQ0xVU0lWRSk7CiAJCU15V29ya2Vy SW5mby0+d2lfdGFibGVvaWQgPSBJbnZhbGlkT2lkOwpAQCAtMjU2Niw2ICsyNTk2LDcgQEAgZGVs ZXRlZDoKIAkJewogCQkJQ29uZmlnUmVsb2FkUGVuZGluZyA9IGZhbHNlOwogCQkJUHJvY2Vzc0Nv bmZpZ0ZpbGUoUEdDX1NJR0hVUCk7CisJCQlWYWN1dW1VcGRhdGVDb3N0cygpOwogCQl9CiAKIAkJ TFdMb2NrQWNxdWlyZShBdXRvdmFjdXVtTG9jaywgTFdfRVhDTFVTSVZFKTsKQEAgLTI4MDEsOCAr MjgzMiw2IEBAIHRhYmxlX3JlY2hlY2tfYXV0b3ZhYyhPaWQgcmVsaWQsIEhUQUIgKnRhYmxlX3Rv YXN0X21hcCwKIAkJaW50CQkJZnJlZXplX3RhYmxlX2FnZTsKIAkJaW50CQkJbXVsdGl4YWN0X2Zy ZWV6ZV9taW5fYWdlOwogCQlpbnQJCQltdWx0aXhhY3RfZnJlZXplX3RhYmxlX2FnZTsKLQkJaW50 CQkJdmFjX2Nvc3RfbGltaXQ7Ci0JCWRvdWJsZQkJdmFjX2Nvc3RfZGVsYXk7CiAJCWludAkJCWxv Z19taW5fZHVyYXRpb247CiAKIAkJLyoKQEAgLTI4MTIsMjAgKzI4NDEsNiBAQCB0YWJsZV9yZWNo ZWNrX2F1dG92YWMoT2lkIHJlbGlkLCBIVEFCICp0YWJsZV90b2FzdF9tYXAsCiAJCSAqIGRlZmF1 bHRzLCBhdXRvdmFjdXVtJ3Mgb3duIGZpcnN0IGFuZCBwbGFpbiB2YWN1dW0gc2Vjb25kLgogCQkg Ki8KIAotCQkvKiAtMSBpbiBhdXRvdmFjIHNldHRpbmcgbWVhbnMgdXNlIHBsYWluIHZhY3V1bV9j b3N0X2RlbGF5ICovCi0JCXZhY19jb3N0X2RlbGF5ID0gKGF2b3B0cyAmJiBhdm9wdHMtPnZhY3V1 bV9jb3N0X2RlbGF5ID49IDApCi0JCQk/IGF2b3B0cy0+dmFjdXVtX2Nvc3RfZGVsYXkKLQkJCTog KGF1dG92YWN1dW1fdmFjX2Nvc3RfZGVsYXkgPj0gMCkKLQkJCT8gYXV0b3ZhY3V1bV92YWNfY29z dF9kZWxheQotCQkJOiB2YWN1dW1fY29zdF9kZWxheTsKLQotCQkvKiAwIG9yIC0xIGluIGF1dG92 YWMgc2V0dGluZyBtZWFucyB1c2UgcGxhaW4gdmFjdXVtX2Nvc3RfbGltaXQgKi8KLQkJdmFjX2Nv c3RfbGltaXQgPSAoYXZvcHRzICYmIGF2b3B0cy0+dmFjdXVtX2Nvc3RfbGltaXQgPiAwKQotCQkJ PyBhdm9wdHMtPnZhY3V1bV9jb3N0X2xpbWl0Ci0JCQk6IChhdXRvdmFjdXVtX3ZhY19jb3N0X2xp bWl0ID4gMCkKLQkJCT8gYXV0b3ZhY3V1bV92YWNfY29zdF9saW1pdAotCQkJOiB2YWN1dW1fY29z dF9saW1pdDsKLQogCQkvKiAtMSBpbiBhdXRvdmFjIHNldHRpbmcgbWVhbnMgdXNlIGxvZ19hdXRv dmFjdXVtX21pbl9kdXJhdGlvbiAqLwogCQlsb2dfbWluX2R1cmF0aW9uID0gKGF2b3B0cyAmJiBh dm9wdHMtPmxvZ19taW5fZHVyYXRpb24gPj0gMCkKIAkJCT8gYXZvcHRzLT5sb2dfbWluX2R1cmF0 aW9uCkBAIC0yODgxLDggKzI4OTYsMTAgQEAgdGFibGVfcmVjaGVja19hdXRvdmFjKE9pZCByZWxp ZCwgSFRBQiAqdGFibGVfdG9hc3RfbWFwLAogCQl0YWItPmF0X3BhcmFtcy5tdWx0aXhhY3RfZnJl ZXplX3RhYmxlX2FnZSA9IG11bHRpeGFjdF9mcmVlemVfdGFibGVfYWdlOwogCQl0YWItPmF0X3Bh cmFtcy5pc193cmFwYXJvdW5kID0gd3JhcGFyb3VuZDsKIAkJdGFiLT5hdF9wYXJhbXMubG9nX21p bl9kdXJhdGlvbiA9IGxvZ19taW5fZHVyYXRpb247Ci0JCXRhYi0+YXRfdmFjdXVtX2Nvc3RfbGlt aXQgPSB2YWNfY29zdF9saW1pdDsKLQkJdGFiLT5hdF92YWN1dW1fY29zdF9kZWxheSA9IHZhY19j b3N0X2RlbGF5OworCQl0YWItPmF0X3JlbG9wdF92YWNfY29zdF9saW1pdCA9IGF2b3B0cyA/CisJ CQlhdm9wdHMtPnZhY3V1bV9jb3N0X2xpbWl0IDogMDsKKwkJdGFiLT5hdF9yZWxvcHRfdmFjX2Nv c3RfZGVsYXkgPSBhdm9wdHMgPworCQkJYXZvcHRzLT52YWN1dW1fY29zdF9kZWxheSA6IC0xOwog CQl0YWItPmF0X3JlbG5hbWUgPSBOVUxMOwogCQl0YWItPmF0X25zcG5hbWUgPSBOVUxMOwogCQl0 YWItPmF0X2RhdG5hbWUgPSBOVUxMOwpAQCAtMzM3NCwxMCArMzM5MSwxOCBAQCBBdXRvVmFjdXVt U2htZW1Jbml0KHZvaWQpCiAJCXdvcmtlciA9IChXb3JrZXJJbmZvKSAoKGNoYXIgKikgQXV0b1Zh Y3V1bVNobWVtICsKIAkJCQkJCQkgICBNQVhBTElHTihzaXplb2YoQXV0b1ZhY3V1bVNobWVtU3Ry dWN0KSkpOwogCisKIAkJLyogaW5pdGlhbGl6ZSB0aGUgV29ya2VySW5mbyBmcmVlIGxpc3QgKi8K IAkJZm9yIChpID0gMDsgaSA8IGF1dG92YWN1dW1fbWF4X3dvcmtlcnM7IGkrKykKKwkJewogCQkJ ZGxpc3RfcHVzaF9oZWFkKCZBdXRvVmFjdXVtU2htZW0tPmF2X2ZyZWVXb3JrZXJzLAogCQkJCQkJ CSZ3b3JrZXJbaV0ud2lfbGlua3MpOworCisJCQlwZ19hdG9taWNfaW5pdF9mbGFnKCZ3b3JrZXJb aV0ud2lfZG9iYWxhbmNlKTsKKwkJfQorCisJCXBnX2F0b21pY19pbml0X3UzMigmQXV0b1ZhY3V1 bVNobWVtLT5hdl9ud29ya2Vyc0ZvckJhbGFuY2UsIDApOworCiAJfQogCWVsc2UKIAkJQXNzZXJ0 KGZvdW5kKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oIGIvc3Jj L2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKaW5kZXggYTYyZGQyZTc4MS4uNmIyODYwMzdjYSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKKysrIGIvc3JjL2luY2x1 ZGUvY29tbWFuZHMvdmFjdXVtLmgKQEAgLTM1MSw2ICszNTEsNyBAQCBleHRlcm4gSW5kZXhCdWxr RGVsZXRlUmVzdWx0ICp2YWNfY2xlYW51cF9vbmVfaW5kZXgoSW5kZXhWYWN1dW1JbmZvICppdmlu Zm8sCiBleHRlcm4gU2l6ZSB2YWNfbWF4X2l0ZW1zX3RvX2FsbG9jX3NpemUoaW50IG1heF9pdGVt cyk7CiAKIC8qIEluIHBvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jICovCitleHRlcm4gdm9pZCBBdXRv VmFjdXVtVXBkYXRlTGltaXQodm9pZCk7CiBleHRlcm4gdm9pZCBWYWN1dW1VcGRhdGVDb3N0cyh2 b2lkKTsKIAogLyogaW4gY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyAqLwotLSAKMi4zNy4yCgo= --00000000000075b7bf05f8762c12 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0004-VACUUM-reloads-config-file-more-often.patch" Content-Disposition: attachment; filename="v14-0004-VACUUM-reloads-config-file-more-often.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lg1ecljf3 RnJvbSA0Y2Q5MzE3Y2RlYzljMzBlOTdiZWUzMGIxOTRjNzU0NTVjMGFmYzk5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDMgQXByIDIwMjMgMTc6NDg6MjIgLTA0MDAKU3ViamVjdDogW1BB VENIIHYxNCA0LzRdIFZBQ1VVTSByZWxvYWRzIGNvbmZpZyBmaWxlIG1vcmUgb2Z0ZW4KCkEgcHJl dmlvdXMgY29tbWl0IGFsbG93ZWQgYXV0b3ZhY3V1bSB3b3JrZXJzIHRvIHJlbG9hZCB0aGUgY29u ZmlndXJhdGlvbgpmaWxlIG1vcmUgb2Z0ZW4uIE5vdywgZW5hYmxlIHRoaXMgYmVoYXZpb3IgZm9y IFZBQ1VVTSBhbmQgQU5BTFlaRSwgd2hlbgpub3QgbmVzdGVkIGluIGEgdHJhbnNhY3Rpb24gY29t bWFuZC4KCk5vdGUgdGhhdCwgZm9yIG5vdywgdGhpcyBvbmx5IGFwcGxpZXMgdG8gdGhlIHByaW1h cnkgVkFDVVVNIHN0YWdlIGFuZApub3QgdG8gcGFyYWxsZWwgdmFjdXVtIHdvcmtlcnMgdmFjdXVt aW5nIGluZGV4ZXMuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMgfCAxMiArKysr KysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy92YWN1dW0uYwppbmRleCBhNTFhM2Y3OGEwLi4zYzQyNmVkNTAxIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy92YWN1dW0uYwpAQCAtODQsNiArODQsNyBAQCBpbnQJCQl2YWN1dW1fY29zdF9saW1pdDsK ICAqLwogaW50CQkJVmFjdXVtQ29zdExpbWl0ID0gMDsKIGRvdWJsZQkJVmFjdXVtQ29zdERlbGF5 ID0gLTE7CitzdGF0aWMgYm9vbCB2YWN1dW1fY2FuX3JlbG9hZF9jb25maWcgPSBmYWxzZTsKIAog LyoKICAqIFZhY3V1bUZhaWxzYWZlQWN0aXZlIGlzIGEgZGVmaW5lZCBhcyBhIGdsb2JhbCBzbyB0 aGF0IHdlIGNhbiBkZXRlcm1pbmUKQEAgLTM1NSw2ICszNTYsOCBAQCB2YWN1dW0oTGlzdCAqcmVs YXRpb25zLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAllbHNlCiAJCWluX291dGVyX3hhY3QgPSBJ c0luVHJhbnNhY3Rpb25CbG9jayhpc1RvcExldmVsKTsKIAorCXZhY3V1bV9jYW5fcmVsb2FkX2Nv bmZpZyA9ICFpbl9vdXRlcl94YWN0OworCiAJLyoKIAkgKiBDaGVjayBmb3IgYW5kIGRpc2FsbG93 IHJlY3Vyc2l2ZSBjYWxscy4gIFRoaXMgY291bGQgaGFwcGVuIHdoZW4gVkFDVVVNCiAJICogRlVM TCBvciBBTkFMWVpFIGNhbGxzIGEgaG9zdGlsZSBpbmRleCBleHByZXNzaW9uIHRoYXQgaXRzZWxm IGNhbGxzCkBAIC01ODEsNiArNTg0LDcgQEAgdmFjdXVtKExpc3QgKnJlbGF0aW9ucywgVmFjdXVt UGFyYW1zICpwYXJhbXMsCiAJCVZhY3V1bUNvc3RBY3RpdmUgPSBmYWxzZTsKIAkJVmFjdXVtRmFp bHNhZmVBY3RpdmUgPSBmYWxzZTsKIAkJVmFjdXVtQ29zdEJhbGFuY2UgPSAwOworCQl2YWN1dW1f Y2FuX3JlbG9hZF9jb25maWcgPSBmYWxzZTsKIAl9CiAJUEdfRU5EX1RSWSgpOwogCkBAIC0yMjUz LDEwICsyMjU3LDEyIEBAIHZhY3V1bV9kZWxheV9wb2ludCh2b2lkKQogCiAJLyoKIAkgKiBSZWxv YWQgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpZiByZXF1ZXN0ZWQuIFRoaXMgYWxsb3dzIGNoYW5n ZXMgdG8KLQkgKiBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0IGFuZCBhdXRvdmFjdXVtX3Zh Y3V1bV9jb3N0X2RlbGF5IHRvIHRha2UKLQkgKiBlZmZlY3Qgd2hpbGUgYSB0YWJsZSBpcyBiZWlu ZyB2YWN1dW1lZCBvciBhbmFseXplZC4KKwkgKiBbYXV0b3ZhY3V1bV9ddmFjdXVtX2Nvc3RfbGlt aXQgYW5kIFthdXRvdmFjdXVtfV92YWN1dW1fY29zdF9kZWxheSB0bworCSAqIHRha2UgZWZmZWN0 IHdoaWxlIGEgdGFibGUgaXMgYmVpbmcgdmFjdXVtZWQgb3IgYW5hbHl6ZWQuIEFuYWx5emUgc2hv dWxkCisJICogbm90IHJlbG9hZCBjb25maWd1cmF0aW9uIGZpbGUgaWYgaXQgaXMgaW4gYW4gb3V0 ZXIgdHJhbnNhY3Rpb24sIGFzIHdlCisJICogY3VycmVudGx5IG9ubHkgYWxsb3cgY29uZmlndXJh dGlvbiByZWxvYWQgd2hlbiBpbiB0b3AtbGV2ZWwgc3RhdGVtZW50cy4KIAkgKi8KLQlpZiAoQ29u ZmlnUmVsb2FkUGVuZGluZyAmJiBJc0F1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCkpCisJaWYgKENv bmZpZ1JlbG9hZFBlbmRpbmcgJiYgdmFjdXVtX2Nhbl9yZWxvYWRfY29uZmlnKQogCXsKIAkJQ29u ZmlnUmVsb2FkUGVuZGluZyA9IGZhbHNlOwogCQlQcm9jZXNzQ29uZmlnRmlsZShQR0NfU0lHSFVQ KTsKLS0gCjIuMzcuMgoK --00000000000075b7bf05f8762c12 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0002-Separate-vacuum-cost-variables-from-gucs.patch" Content-Disposition: attachment; filename="v14-0002-Separate-vacuum-cost-variables-from-gucs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lg1eclje1 RnJvbSA3ZWUyMDliZWU1YzA5NjYwMWVkM2FkNzZlZTRhYjljZWQzNDBlM2QzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDMgQXByIDIwMjMgMTE6MjI6MTggLTA0MDAKU3ViamVjdDogW1BB VENIIHYxNCAyLzRdIFNlcGFyYXRlIHZhY3V1bSBjb3N0IHZhcmlhYmxlcyBmcm9tIGd1Y3MKClZh Y3V1bSBjb2RlIHJ1biBib3RoIGJ5IGF1dG92YWN1dW0gd29ya2VycyBhbmQgYSBiYWNrZW5kIGRv aW5nClZBQ1VVTS9BTkFMWVpFIHByZXZpb3VzbHkgdXNlZCBWYWN1dW1Db3N0TGltaXQgYW5kIFZh Y3V1bUNvc3REZWxheSB3aGljaAp3ZXJlIHRoZSBnbG9iYWwgdmFyaWFibGVzIGZvciB0aGUgZ3Vj cyB2YWN1dW1fY29zdF9saW1pdCBhbmQKdmFjdXVtX2Nvc3RfZGVsYXkuIEF1dG92YWN1dW0gd29y a2VycyBuZWVkZWQgdG8gb3ZlcnJpZGUgdGhlc2UgdmFyaWFibGVzCndpdGggdGhlaXIgb3duIHZh bHVlcywgZGVyaXZlZCBmcm9tIGF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQgYW5kCmF1dG92 YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXkgYW5kIHdvcmtlciBjb3N0IGxpbWl0IGJhbGFuY2luZyBs b2dpYy4gVGhpcwpsZWQgdG8gY29uZnVzaW5nIGNvZGUgd2hpY2gsIGluIHNvbWUgY2FzZXMsIGJv dGggZGVyaXZlZCBhbmQgc2V0IGEgbmV3CnZhbHVlIG9mIFZhY3V1bUNvc3RMaW1pdCBmcm9tIFZh Y3V1bUNvc3RMaW1pdC4KCkluIHByZXBhcmF0aW9uIGZvciByZWZyZXNoaW5nIHRoZXNlIGd1YyB2 YWx1ZXMgbW9yZSBvZnRlbiwgc2VwYXJhdGUKdGhlc2UgdmFyaWFibGVzIGZyb20gdGhlIGd1Y3Mg dGhlbXNlbHZlcyBhbmQgYWRkIGEgZnVuY3Rpb24gdG8gdXBkYXRlCnRoZSBnbG9iYWwgdmFyaWFi bGVzIHVzaW5nIHRoZSBndWNzIGFuZCBleGlzdGluZyBsb2dpYy4KClJldmlld2VkLWJ5OiBNYXNh aGlrbyBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly93 d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0L0NBQUtSdV9abmd6cW5FT0RjN0xtUzFO SDA0S3Q2WTlodVNqejVwcDclMkJEWGhyakRBMGd3JTQwbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMv YmFja2VuZC9jb21tYW5kcy92YWN1dW0uYyAgICAgICAgIHwgMTYgKysrKysrKystLQogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyB8ICAzICstCiBzcmMvYmFja2VuZC9wb3N0 bWFzdGVyL2F1dG92YWN1dW0uYyAgIHwgNDMgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiBz cmMvYmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYyAgICAgIHwgIDIgLS0KIHNyYy9iYWNrZW5k L3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jICAgfCAgNCArLS0KIHNyYy9pbmNsdWRlL2NvbW1hbmRz L3ZhY3V1bS5oICAgICAgICAgfCAgNyArKysrKwogc3JjL2luY2x1ZGUvbWlzY2FkbWluLmggICAg ICAgICAgICAgICB8ICAyIC0tCiBzcmMvaW5jbHVkZS9wb3N0bWFzdGVyL2F1dG92YWN1dW0uaCAg IHwgIDMgLS0KIDggZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy92YWN1dW0uYwppbmRleCA5NzI0ZmJjZTQ2Li45NmRmNWUyOTIwIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy92YWN1dW0uYwpAQCAtNzEsNiArNzEsMTggQEAgaW50CQkJdmFjdXVtX211bHRpeGFj dF9mcmVlemVfbWluX2FnZTsKIGludAkJCXZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX3RhYmxlX2Fn ZTsKIGludAkJCXZhY3V1bV9mYWlsc2FmZV9hZ2U7CiBpbnQJCQl2YWN1dW1fbXVsdGl4YWN0X2Zh aWxzYWZlX2FnZTsKK2RvdWJsZQkJdmFjdXVtX2Nvc3RfZGVsYXk7CitpbnQJCQl2YWN1dW1fY29z dF9saW1pdDsKKworLyoKKyAqIFZhcmlhYmxlcyBmb3IgY29zdC1iYXNlZCB2YWN1dW0gZGVsYXku IFRoZSBkZWZhdWx0cyBkaWZmZXIgYmV0d2VlbgorICogYXV0b3ZhY3V1bSBhbmQgdmFjdXVtLiBU aGVzZSBzaG91bGQgYmUgb3ZlcnJpZGRlbiB3aXRoIHRoZSBhcHByb3ByaWF0ZSBHVUMKKyAqIHZh bHVlIGluIHZhY3V1bSBjb2RlLgorICogVE9ETzogc2hvdWxkIFZhY3V1bUNvc3RMaW1pdCBhbmQg VmFjdXVtQ29zdERlbGF5IGJlIGluaXRpYWxpemVkIHRvIHZhbGlkIG9yCisgKiBpbnZhbGlkIHZh bHVlcz8KKyAqLworaW50CQkJVmFjdXVtQ29zdExpbWl0ID0gMDsKK2RvdWJsZQkJVmFjdXVtQ29z dERlbGF5ID0gLTE7CiAKIC8qCiAgKiBWYWN1dW1GYWlsc2FmZUFjdGl2ZSBpcyBhIGRlZmluZWQg YXMgYSBnbG9iYWwgc28gdGhhdCB3ZSBjYW4gZGV0ZXJtaW5lCkBAIC00OTgsNiArNTEwLDcgQEAg dmFjdXVtKExpc3QgKnJlbGF0aW9ucywgVmFjdXVtUGFyYW1zICpwYXJhbXMsCiAJewogCQlMaXN0 Q2VsbCAgICpjdXI7CiAKKwkJVmFjdXVtVXBkYXRlQ29zdHMoKTsKIAkJaW5fdmFjdXVtID0gdHJ1 ZTsKIAkJVmFjdXVtQ29zdEFjdGl2ZSA9IChWYWN1dW1Db3N0RGVsYXkgPiAwKTsKIAkJVmFjdXVt Q29zdEJhbGFuY2UgPSAwOwpAQCAtMjI1OCw4ICsyMjcxLDcgQEAgdmFjdXVtX2RlbGF5X3BvaW50 KHZvaWQpCiAKIAkJVmFjdXVtQ29zdEJhbGFuY2UgPSAwOwogCi0JCS8qIHVwZGF0ZSBiYWxhbmNl IHZhbHVlcyBmb3Igd29ya2VycyAqLwotCQlBdXRvVmFjdXVtVXBkYXRlRGVsYXkoKTsKKwkJVmFj dXVtVXBkYXRlQ29zdHMoKTsKIAogCQkvKiBNaWdodCBoYXZlIGdvdHRlbiBhbiBpbnRlcnJ1cHQg d2hpbGUgc2xlZXBpbmcgKi8KIAkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy92YWN1dW1wYXJhbGxlbC5jCmluZGV4IDU2MzExN2E4ZjYuLmQzNDY4MzhjZmMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpAQCAtOTk1LDggKzk5NSw5IEBAIHBhcmFs bGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAkJCQkJCQkJ CQkJCSBmYWxzZSk7CiAKIAkvKiBTZXQgY29zdC1iYXNlZCB2YWN1dW0gZGVsYXkgKi8KLQlWYWN1 dW1Db3N0QWN0aXZlID0gKFZhY3V1bUNvc3REZWxheSA+IDApOwogCVZhY3V1bUNvc3RCYWxhbmNl ID0gMDsKKwlWYWN1dW1VcGRhdGVDb3N0cygpOworCVZhY3V1bUNvc3RBY3RpdmUgPSAoVmFjdXVt Q29zdERlbGF5ID4gMCk7CiAJVmFjdXVtUGFnZUhpdCA9IDA7CiAJVmFjdXVtUGFnZU1pc3MgPSAw OwogCVZhY3V1bVBhZ2VEaXJ0eSA9IDA7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFz dGVyL2F1dG92YWN1dW0uYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCmlu ZGV4IDU4NWQyODE0OGMuLmUwYzU2OGZkYWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3Rt YXN0ZXIvYXV0b3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1 bS5jCkBAIC0xNzc0LDE3ICsxNzc0LDI4IEBAIEZyZWVXb3JrZXJJbmZvKGludCBjb2RlLCBEYXR1 bSBhcmcpCiB9CiAKIC8qCi0gKiBVcGRhdGUgdGhlIGNvc3QtYmFzZWQgZGVsYXkgcGFyYW1ldGVy cywgc28gdGhhdCBtdWx0aXBsZSB3b3JrZXJzIGNvbnN1bWUKLSAqIGVhY2ggYSBmcmFjdGlvbiBv ZiB0aGUgdG90YWwgYXZhaWxhYmxlIEkvTy4KKyAqIFVwZGF0ZSB2YWN1dW0gY29zdC1iYXNlZCBk ZWxheS1yZWxhdGVkIHBhcmFtZXRlcnMgZm9yIGF1dG92YWN1dW0gd29ya2VycyBhbmQKKyAqIGJh Y2tlbmRzIGV4ZWN1dGluZyBWQUNVVU0gb3IgQU5BTFlaRSB1c2luZyB0aGUgdmFsdWUgb2YgcmVs ZXZhbnQgZ3VjcyBhbmQKKyAqIGdsb2JhbCBzdGF0ZS4gVGhpcyBtdXN0IGJlIGNhbGxlZCBkdXJp bmcgc2V0dXAgZm9yIHZhY3V1bSBhbmQgYWZ0ZXIgZXZlcnkKKyAqIGNvbmZpZyByZWxvYWQgdG8g ZW5zdXJlIHVwLXRvLWRhdGUgdmFsdWVzLgogICovCiB2b2lkCi1BdXRvVmFjdXVtVXBkYXRlRGVs YXkodm9pZCkKK1ZhY3V1bVVwZGF0ZUNvc3RzKHZvaWQpCiB7Ci0JaWYgKE15V29ya2VySW5mbykK KwlpZiAoYW1fYXV0b3ZhY3V1bV9sYXVuY2hlcikKKwkJcmV0dXJuOworCisJaWYgKGFtX2F1dG92 YWN1dW1fd29ya2VyKQogCXsKIAkJVmFjdXVtQ29zdERlbGF5ID0gTXlXb3JrZXJJbmZvLT53aV9j b3N0X2RlbGF5OwogCQlWYWN1dW1Db3N0TGltaXQgPSBNeVdvcmtlckluZm8tPndpX2Nvc3RfbGlt aXQ7CiAJfQorCWVsc2UKKwl7CisJCS8qIE11c3QgYmUgZXhwbGljaXQgVkFDVVVNIG9yIEFOQUxZ WkUgKi8KKwkJVmFjdXVtQ29zdExpbWl0ID0gdmFjdXVtX2Nvc3RfbGltaXQ7CisJCVZhY3V1bUNv c3REZWxheSA9IHZhY3V1bV9jb3N0X2RlbGF5OworCX0KIH0KIAogLyoKQEAgLTE4MDUsOSArMTgx Niw5IEBAIGF1dG92YWNfYmFsYW5jZV9jb3N0KHZvaWQpCiAJICogemVybyBpcyBub3QgYSB2YWxp ZCB2YWx1ZS4KIAkgKi8KIAlpbnQJCQl2YWNfY29zdF9saW1pdCA9IChhdXRvdmFjdXVtX3ZhY19j b3N0X2xpbWl0ID4gMCA/Ci0JCQkJCQkJCSAgYXV0b3ZhY3V1bV92YWNfY29zdF9saW1pdCA6IFZh Y3V1bUNvc3RMaW1pdCk7CisJCQkJCQkJCSAgYXV0b3ZhY3V1bV92YWNfY29zdF9saW1pdCA6IHZh Y3V1bV9jb3N0X2xpbWl0KTsKIAlkb3VibGUJCXZhY19jb3N0X2RlbGF5ID0gKGF1dG92YWN1dW1f dmFjX2Nvc3RfZGVsYXkgPj0gMCA/Ci0JCQkJCQkJCSAgYXV0b3ZhY3V1bV92YWNfY29zdF9kZWxh eSA6IFZhY3V1bUNvc3REZWxheSk7CisJCQkJCQkJCSAgYXV0b3ZhY3V1bV92YWNfY29zdF9kZWxh eSA6IHZhY3V1bV9jb3N0X2RlbGF5KTsKIAlkb3VibGUJCWNvc3RfdG90YWw7CiAJZG91YmxlCQlj b3N0X2F2YWlsOwogCWRsaXN0X2l0ZXIJaXRlcjsKQEAgLTIzMTIsOCArMjMyMyw2IEBAIGRvX2F1 dG92YWN1dW0odm9pZCkKIAkJYXV0b3ZhY190YWJsZSAqdGFiOwogCQlib29sCQlpc3NoYXJlZDsK IAkJYm9vbAkJc2tpcGl0OwotCQlkb3VibGUJCXN0ZFZhY3V1bUNvc3REZWxheTsKLQkJaW50CQkJ c3RkVmFjdXVtQ29zdExpbWl0OwogCQlkbGlzdF9pdGVyCWl0ZXI7CiAKIAkJQ0hFQ0tfRk9SX0lO VEVSUlVQVFMoKTsKQEAgLTI0MTYsMTQgKzI0MjUsNiBAQCBkb19hdXRvdmFjdXVtKHZvaWQpCiAJ CQljb250aW51ZTsKIAkJfQogCi0JCS8qCi0JCSAqIFJlbWVtYmVyIHRoZSBwcmV2YWlsaW5nIHZh bHVlcyBvZiB0aGUgdmFjdXVtIGNvc3QgR1VDcy4gIFdlIGhhdmUgdG8KLQkJICogcmVzdG9yZSB0 aGVzZSBhdCB0aGUgYm90dG9tIG9mIHRoZSBsb29wLCBlbHNlIHdlJ2xsIGNvbXB1dGUgd3JvbmcK LQkJICogdmFsdWVzIGluIHRoZSBuZXh0IGl0ZXJhdGlvbiBvZiBhdXRvdmFjX2JhbGFuY2VfY29z dCgpLgotCQkgKi8KLQkJc3RkVmFjdXVtQ29zdERlbGF5ID0gVmFjdXVtQ29zdERlbGF5OwotCQlz dGRWYWN1dW1Db3N0TGltaXQgPSBWYWN1dW1Db3N0TGltaXQ7Ci0KIAkJLyogTXVzdCBob2xkIEF1 dG92YWN1dW1Mb2NrIHdoaWxlIG11Y2tpbmcgd2l0aCBjb3N0IGJhbGFuY2UgaW5mbyAqLwogCQlM V0xvY2tBY3F1aXJlKEF1dG92YWN1dW1Mb2NrLCBMV19FWENMVVNJVkUpOwogCkBAIC0yNDM3LDcg KzI0MzgsNyBAQCBkb19hdXRvdmFjdXVtKHZvaWQpCiAJCWF1dG92YWNfYmFsYW5jZV9jb3N0KCk7 CiAKIAkJLyogc2V0IHRoZSBhY3RpdmUgY29zdCBwYXJhbWV0ZXJzIGZyb20gdGhlIHJlc3VsdCBv ZiB0aGF0ICovCi0JCUF1dG9WYWN1dW1VcGRhdGVEZWxheSgpOworCQlWYWN1dW1VcGRhdGVDb3N0 cygpOwogCiAJCS8qIGRvbmUgKi8KIAkJTFdMb2NrUmVsZWFzZShBdXRvdmFjdXVtTG9jayk7CkBA IC0yNTM0LDEwICsyNTM1LDYgQEAgZGVsZXRlZDoKIAkJTXlXb3JrZXJJbmZvLT53aV90YWJsZW9p ZCA9IEludmFsaWRPaWQ7CiAJCU15V29ya2VySW5mby0+d2lfc2hhcmVkcmVsID0gZmFsc2U7CiAJ CUxXTG9ja1JlbGVhc2UoQXV0b3ZhY3V1bVNjaGVkdWxlTG9jayk7Ci0KLQkJLyogcmVzdG9yZSB2 YWN1dW0gY29zdCBHVUNzIGZvciB0aGUgbmV4dCBpdGVyYXRpb24gKi8KLQkJVmFjdXVtQ29zdERl bGF5ID0gc3RkVmFjdXVtQ29zdERlbGF5OwotCQlWYWN1dW1Db3N0TGltaXQgPSBzdGRWYWN1dW1D b3N0TGltaXQ7CiAJfQogCiAJLyoKQEAgLTI4MjAsMTQgKzI4MTcsMTQgQEAgdGFibGVfcmVjaGVj a19hdXRvdmFjKE9pZCByZWxpZCwgSFRBQiAqdGFibGVfdG9hc3RfbWFwLAogCQkJPyBhdm9wdHMt PnZhY3V1bV9jb3N0X2RlbGF5CiAJCQk6IChhdXRvdmFjdXVtX3ZhY19jb3N0X2RlbGF5ID49IDAp CiAJCQk/IGF1dG92YWN1dW1fdmFjX2Nvc3RfZGVsYXkKLQkJCTogVmFjdXVtQ29zdERlbGF5Owor CQkJOiB2YWN1dW1fY29zdF9kZWxheTsKIAogCQkvKiAwIG9yIC0xIGluIGF1dG92YWMgc2V0dGlu ZyBtZWFucyB1c2UgcGxhaW4gdmFjdXVtX2Nvc3RfbGltaXQgKi8KIAkJdmFjX2Nvc3RfbGltaXQg PSAoYXZvcHRzICYmIGF2b3B0cy0+dmFjdXVtX2Nvc3RfbGltaXQgPiAwKQogCQkJPyBhdm9wdHMt PnZhY3V1bV9jb3N0X2xpbWl0CiAJCQk6IChhdXRvdmFjdXVtX3ZhY19jb3N0X2xpbWl0ID4gMCkK IAkJCT8gYXV0b3ZhY3V1bV92YWNfY29zdF9saW1pdAotCQkJOiBWYWN1dW1Db3N0TGltaXQ7CisJ CQk6IHZhY3V1bV9jb3N0X2xpbWl0OwogCiAJCS8qIC0xIGluIGF1dG92YWMgc2V0dGluZyBtZWFu cyB1c2UgbG9nX2F1dG92YWN1dW1fbWluX2R1cmF0aW9uICovCiAJCWxvZ19taW5fZHVyYXRpb24g PSAoYXZvcHRzICYmIGF2b3B0cy0+bG9nX21pbl9kdXJhdGlvbiA+PSAwKQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9nbG9iYWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9pbml0 L2dsb2JhbHMuYwppbmRleCAxYjFkODE0MjU0Li44ZTViMDY1ZThmIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9pbml0 L2dsb2JhbHMuYwpAQCAtMTQyLDggKzE0Miw2IEBAIGludAkJCU1heEJhY2tlbmRzID0gMDsKIGlu dAkJCVZhY3V1bUNvc3RQYWdlSGl0ID0gMTsJLyogR1VDIHBhcmFtZXRlcnMgZm9yIHZhY3V1bSAq LwogaW50CQkJVmFjdXVtQ29zdFBhZ2VNaXNzID0gMjsKIGludAkJCVZhY3V1bUNvc3RQYWdlRGly dHkgPSAyMDsKLWludAkJCVZhY3V1bUNvc3RMaW1pdCA9IDIwMDsKLWRvdWJsZQkJVmFjdXVtQ29z dERlbGF5ID0gMDsKIAogaW50NjQJCVZhY3V1bVBhZ2VIaXQgPSAwOwogaW50NjQJCVZhY3V1bVBh Z2VNaXNzID0gMDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxl cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggODA2MjU4OWVm ZC4uNzdkYjFhMTQ2YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFi bGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTI0MDks NyArMjQwOSw3IEBAIHN0cnVjdCBjb25maWdfaW50IENvbmZpZ3VyZU5hbWVzSW50W10gPQogCQkJ Z2V0dGV4dF9ub29wKCJWYWN1dW0gY29zdCBhbW91bnQgYXZhaWxhYmxlIGJlZm9yZSBuYXBwaW5n LiIpLAogCQkJTlVMTAogCQl9LAotCQkmVmFjdXVtQ29zdExpbWl0LAorCQkmdmFjdXVtX2Nvc3Rf bGltaXQsCiAJCTIwMCwgMSwgMTAwMDAsCiAJCU5VTEwsIE5VTEwsIE5VTEwKIAl9LApAQCAtMzcw MSw3ICszNzAxLDcgQEAgc3RydWN0IGNvbmZpZ19yZWFsIENvbmZpZ3VyZU5hbWVzUmVhbFtdID0K IAkJCU5VTEwsCiAJCQlHVUNfVU5JVF9NUwogCQl9LAotCQkmVmFjdXVtQ29zdERlbGF5LAorCQkm dmFjdXVtX2Nvc3RfZGVsYXksCiAJCTAsIDAsIDEwMCwKIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0s CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCBiL3NyYy9pbmNsdWRl L2NvbW1hbmRzL3ZhY3V1bS5oCmluZGV4IDdiOGVlMjE3ODguLmE2MmRkMmU3ODEgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3ZhY3V1bS5oCkBAIC0zMDAsNiArMzAwLDggQEAgZXh0ZXJuIFBHRExMSU1QT1JUIGludCB2 YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9taW5fYWdlOwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCB2 YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV90YWJsZV9hZ2U7CiBleHRlcm4gUEdETExJTVBPUlQgaW50 IHZhY3V1bV9mYWlsc2FmZV9hZ2U7CiBleHRlcm4gUEdETExJTVBPUlQgaW50IHZhY3V1bV9tdWx0 aXhhY3RfZmFpbHNhZmVfYWdlOworZXh0ZXJuIFBHRExMSU1QT1JUIGRvdWJsZSB2YWN1dW1fY29z dF9kZWxheTsKK2V4dGVybiBQR0RMTElNUE9SVCBpbnQgdmFjdXVtX2Nvc3RfbGltaXQ7CiAKIC8q IFZhcmlhYmxlcyBmb3IgY29zdC1iYXNlZCBwYXJhbGxlbCB2YWN1dW0gKi8KIGV4dGVybiBQR0RM TElNUE9SVCBwZ19hdG9taWNfdWludDMyICpWYWN1dW1TaGFyZWRDb3N0QmFsYW5jZTsKQEAgLTMw Nyw2ICszMDksOCBAQCBleHRlcm4gUEdETExJTVBPUlQgcGdfYXRvbWljX3VpbnQzMiAqVmFjdXVt QWN0aXZlTldvcmtlcnM7CiBleHRlcm4gUEdETExJTVBPUlQgaW50IFZhY3V1bUNvc3RCYWxhbmNl TG9jYWw7CiAKIGV4dGVybiBib29sIFZhY3V1bUZhaWxzYWZlQWN0aXZlOworZXh0ZXJuIGludAlW YWN1dW1Db3N0TGltaXQ7CitleHRlcm4gZG91YmxlIFZhY3V1bUNvc3REZWxheTsKIAogLyogaW4g Y29tbWFuZHMvdmFjdXVtLmMgKi8KIGV4dGVybiB2b2lkIEV4ZWNWYWN1dW0oUGFyc2VTdGF0ZSAq cHN0YXRlLCBWYWN1dW1TdG10ICp2YWNzdG10LCBib29sIGlzVG9wTGV2ZWwpOwpAQCAtMzQ2LDYg KzM1MCw5IEBAIGV4dGVybiBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKnZhY19jbGVhbnVwX29uZV9p bmRleChJbmRleFZhY3V1bUluZm8gKml2aW5mbywKIAkJCQkJCQkJCQkJCQlJbmRleEJ1bGtEZWxl dGVSZXN1bHQgKmlzdGF0KTsKIGV4dGVybiBTaXplIHZhY19tYXhfaXRlbXNfdG9fYWxsb2Nfc2l6 ZShpbnQgbWF4X2l0ZW1zKTsKIAorLyogSW4gcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMgKi8KK2V4 dGVybiB2b2lkIFZhY3V1bVVwZGF0ZUNvc3RzKHZvaWQpOworCiAvKiBpbiBjb21tYW5kcy92YWN1 dW1wYXJhbGxlbC5jICovCiBleHRlcm4gUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcGFyYWxsZWxfdmFj dXVtX2luaXQoUmVsYXRpb24gcmVsLCBSZWxhdGlvbiAqaW5kcmVscywKIAkJCQkJCQkJCQkJCSBp bnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVkX3dvcmtlcnMsCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9taXNjYWRtaW4uaCBiL3NyYy9pbmNsdWRlL21pc2NhZG1pbi5oCmluZGV4IDA2YTg2Zjlh YzEuLjY2ZGIxYjJjNjkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL21pc2NhZG1pbi5oCisrKyBi L3NyYy9pbmNsdWRlL21pc2NhZG1pbi5oCkBAIC0yNjYsOCArMjY2LDYgQEAgZXh0ZXJuIFBHRExM SU1QT1JUIGludCBtYXhfcGFyYWxsZWxfbWFpbnRlbmFuY2Vfd29ya2VyczsKIGV4dGVybiBQR0RM TElNUE9SVCBpbnQgVmFjdXVtQ29zdFBhZ2VIaXQ7CiBleHRlcm4gUEdETExJTVBPUlQgaW50IFZh Y3V1bUNvc3RQYWdlTWlzczsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgVmFjdXVtQ29zdFBhZ2VE aXJ0eTsKLWV4dGVybiBQR0RMTElNUE9SVCBpbnQgVmFjdXVtQ29zdExpbWl0OwotZXh0ZXJuIFBH RExMSU1QT1JUIGRvdWJsZSBWYWN1dW1Db3N0RGVsYXk7CiAKIGV4dGVybiBQR0RMTElNUE9SVCBp bnQ2NCBWYWN1dW1QYWdlSGl0OwogZXh0ZXJuIFBHRExMSU1QT1JUIGludDY0IFZhY3V1bVBhZ2VN aXNzOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmggYi9z cmMvaW5jbHVkZS9wb3N0bWFzdGVyL2F1dG92YWN1dW0uaAppbmRleCBjMTQwMzcxYjUxLi42NWFm ZDFlYTFlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL2F1dG92YWN1dW0uaAor KysgYi9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL2F1dG92YWN1dW0uaApAQCAtNjMsOSArNjMsNiBA QCBleHRlcm4gaW50CVN0YXJ0QXV0b1ZhY1dvcmtlcih2b2lkKTsKIC8qIGNhbGxlZCBmcm9tIHBv c3RtYXN0ZXIgd2hlbiBhIHdvcmtlciBjb3VsZCBub3QgYmUgZm9ya2VkICovCiBleHRlcm4gdm9p ZCBBdXRvVmFjV29ya2VyRmFpbGVkKHZvaWQpOwogCi0vKiBhdXRvdmFjdXVtIGNvc3QtZGVsYXkg YmFsYW5jZXIgKi8KLWV4dGVybiB2b2lkIEF1dG9WYWN1dW1VcGRhdGVEZWxheSh2b2lkKTsKLQog I2lmZGVmIEVYRUNfQkFDS0VORAogZXh0ZXJuIHZvaWQgQXV0b1ZhY0xhdW5jaGVyTWFpbihpbnQg YXJnYywgY2hhciAqYXJndltdKSBwZ19hdHRyaWJ1dGVfbm9yZXR1cm4oKTsKIGV4dGVybiB2b2lk IEF1dG9WYWNXb3JrZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHBnX2F0dHJpYnV0ZV9u b3JldHVybigpOwotLSAKMi4zNy4yCgo= --00000000000075b7bf05f8762c12 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0001-Make-vacuum-s-failsafe_active-a-global.patch" Content-Disposition: attachment; filename="v14-0001-Make-vacuum-s-failsafe_active-a-global.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lg1eclj80 RnJvbSA0NzkyZmYxNWY2YWIyY2U1Mjc2M2RkNjFhMmYzNzRkZWU5NDhhOWNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDMxIE1hciAyMDIzIDEwOjM4OjM5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMS80XSBNYWtlIHZhY3V1bSdzIGZhaWxzYWZlX2FjdGl2ZSBhIGdsb2JhbAoKV2hp bGUgdmFjdXVtaW5nIGEgdGFibGUgaW4gZmFpbHNhZmUgbW9kZSwgVmFjdXVtQ29zdEFjdGl2ZSBz aG91bGQgbm90IGJlCnJlLWVuYWJsZWQuIFRoaXMgY3VycmVudGx5IGlzbid0IGEgcHJvYmxlbSBi ZWNhdXNlIHZhY3V1bSBjb3N0CnBhcmFtZXRlcnMgYXJlIG9ubHkgcmVmcmVzaGVkIGluIGJldHdl ZW4gdmFjdXVtaW5nIHRhYmxlcyBhbmQgZmFpbHNhZmUKc3RhdHVzIGlzIHJlc2V0IGZvciBldmVy eSB0YWJsZS4gSW4gcHJlcGFyYXRpb24gZm9yIGFsbG93aW5nIHZhY3V1bSBjb3N0CnBhcmFtZXRl cnMgdG8gYmUgdXBkYXRlZCBtb3JlIGZyZXF1ZW50bHksIGVsZXZhdGUKTFZSZWxTdGF0ZS0+ZmFp bHNhZmVfYWN0aXZlIHRvIGEgZ2xvYmFsLCBWYWN1dW1GYWlsc2FmZUFjdGl2ZSwgd2hpY2gKd2ls bCBiZSBjaGVja2VkIHdoZW4gZGV0ZXJtaW5pbmcgd2hldGhlciBvciBub3QgdG8gcmUtZW5hYmxl IHZhY3V1bQpjb3N0LXJlbGF0ZWQgZGVsYXlzLgoKUmV2aWV3ZWQtYnk6IE1hc2FoaWtvIFNhd2Fk YSA8c2F3YWRhLm1zaGtAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3d3dy5wb3N0Z3Jl c3FsLm9yZy9tZXNzYWdlLWlkL2ZsYXQvQ0FBS1J1X1puZ3pxbkVPRGM3TG1TMU5IMDRLdDZZOWh1 U2p6NXBwNyUyQkRYaHJqREEwZ3clNDBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyB8IDE2ICsrKysrKystLS0tLS0tLS0KIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3ZhY3V1bS5jICAgICAgICB8ICA5ICsrKysrKysrKwogc3JjL2luY2x1ZGUvY29t bWFuZHMvdmFjdXVtLmggICAgICAgIHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRp b25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpp bmRleCA2MzkxNzlhYTQ2Li4yYmE4NWJkM2Q2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jCkBAIC0xNTMsOCArMTUzLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgTFZSZWxTdGF0ZQogCWJv b2wJCWFnZ3Jlc3NpdmU7CiAJLyogVXNlIHZpc2liaWxpdHkgbWFwIHRvIHNraXA/IChkaXNhYmxl ZCBieSBESVNBQkxFX1BBR0VfU0tJUFBJTkcpICovCiAJYm9vbAkJc2tpcHdpdGh2bTsKLQkvKiBX cmFwYXJvdW5kIGZhaWxzYWZlIGhhcyBiZWVuIHRyaWdnZXJlZD8gKi8KLQlib29sCQlmYWlsc2Fm ZV9hY3RpdmU7CiAJLyogQ29uc2lkZXIgaW5kZXggdmFjdXVtaW5nIGJ5cGFzcyBvcHRpbWl6YXRp b24/ICovCiAJYm9vbAkJY29uc2lkZXJfYnlwYXNzX29wdGltaXphdGlvbjsKIApAQCAtMzkxLDcg KzM4OSw3IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIFZhY3V1bVBhcmFtcyAqcGFy YW1zLAogCUFzc2VydChwYXJhbXMtPmluZGV4X2NsZWFudXAgIT0gVkFDT1BUVkFMVUVfVU5TUEVD SUZJRUQpOwogCUFzc2VydChwYXJhbXMtPnRydW5jYXRlICE9IFZBQ09QVFZBTFVFX1VOU1BFQ0lG SUVEICYmCiAJCSAgIHBhcmFtcy0+dHJ1bmNhdGUgIT0gVkFDT1BUVkFMVUVfQVVUTyk7Ci0JdmFj cmVsLT5mYWlsc2FmZV9hY3RpdmUgPSBmYWxzZTsKKwlWYWN1dW1GYWlsc2FmZUFjdGl2ZSA9IGZh bHNlOwogCXZhY3JlbC0+Y29uc2lkZXJfYnlwYXNzX29wdGltaXphdGlvbiA9IHRydWU7CiAJdmFj cmVsLT5kb19pbmRleF92YWN1dW1pbmcgPSB0cnVlOwogCXZhY3JlbC0+ZG9faW5kZXhfY2xlYW51 cCA9IHRydWU7CkBAIC03MDksNyArNzA3LDcgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJl bCwgVmFjdXVtUGFyYW1zICpwYXJhbXMsCiAJCQl9CiAJCQllbHNlCiAJCQl7Ci0JCQkJaWYgKCF2 YWNyZWwtPmZhaWxzYWZlX2FjdGl2ZSkKKwkJCQlpZiAoIVZhY3V1bUZhaWxzYWZlQWN0aXZlKQog CQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWYsIF8oImluZGV4IHNjYW4gYnlwYXNzZWQ6 ICIpKTsKIAkJCQllbHNlCiAJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZiwgXygiaW5k ZXggc2NhbiBieXBhc3NlZCBieSBmYWlsc2FmZTogIikpOwpAQCAtMjI5Myw3ICsyMjkxLDcgQEAg bGF6eV92YWN1dW0oTFZSZWxTdGF0ZSAqdmFjcmVsKQogCQkgKiB2YWN1dW1pbmcgb3IgaGVhcCB2 YWN1dW1pbmcuICBUaGlzIFZBQ1VVTSBvcGVyYXRpb24gd29uJ3QgZW5kIHVwCiAJCSAqIGJhY2sg aGVyZSBhZ2Fpbi4KIAkJICovCi0JCUFzc2VydCh2YWNyZWwtPmZhaWxzYWZlX2FjdGl2ZSk7CisJ CUFzc2VydChWYWN1dW1GYWlsc2FmZUFjdGl2ZSk7CiAJfQogCiAJLyoKQEAgLTIzNzQsNyArMjM3 Miw3IEBAIGxhenlfdmFjdXVtX2FsbF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCkKIAkgKi8K IAlBc3NlcnQodmFjcmVsLT5udW1faW5kZXhfc2NhbnMgPiAwIHx8CiAJCSAgIHZhY3JlbC0+ZGVh ZF9pdGVtcy0+bnVtX2l0ZW1zID09IHZhY3JlbC0+bHBkZWFkX2l0ZW1zKTsKLQlBc3NlcnQoYWxs aW5kZXhlcyB8fCB2YWNyZWwtPmZhaWxzYWZlX2FjdGl2ZSk7CisJQXNzZXJ0KGFsbGluZGV4ZXMg fHwgVmFjdXVtRmFpbHNhZmVBY3RpdmUpOwogCiAJLyoKIAkgKiBJbmNyZWFzZSBhbmQgcmVwb3J0 IHRoZSBudW1iZXIgb2YgaW5kZXggc2NhbnMuCkBAIC0yNjE2LDEyICsyNjE0LDEyIEBAIHN0YXRp YyBib29sCiBsYXp5X2NoZWNrX3dyYXBhcm91bmRfZmFpbHNhZmUoTFZSZWxTdGF0ZSAqdmFjcmVs KQogewogCS8qIERvbid0IHdhcm4gbW9yZSB0aGFuIG9uY2UgcGVyIFZBQ1VVTSAqLwotCWlmICh2 YWNyZWwtPmZhaWxzYWZlX2FjdGl2ZSkKKwlpZiAoVmFjdXVtRmFpbHNhZmVBY3RpdmUpCiAJCXJl dHVybiB0cnVlOwogCiAJaWYgKHVubGlrZWx5KHZhY3V1bV94aWRfZmFpbHNhZmVfY2hlY2soJnZh Y3JlbC0+Y3V0b2ZmcykpKQogCXsKLQkJdmFjcmVsLT5mYWlsc2FmZV9hY3RpdmUgPSB0cnVlOwor CQlWYWN1dW1GYWlsc2FmZUFjdGl2ZSA9IHRydWU7CiAKIAkJLyoKIAkJICogQWJhbmRvbiB1c2Ug b2YgYSBidWZmZXIgYWNjZXNzIHN0cmF0ZWd5IHRvIGFsbG93IHVzZSBvZiBhbGwgb2YKQEAgLTI4 MjAsNyArMjgxOCw3IEBAIHNob3VsZF9hdHRlbXB0X3RydW5jYXRpb24oTFZSZWxTdGF0ZSAqdmFj cmVsKQogewogCUJsb2NrTnVtYmVyIHBvc3NpYmx5X2ZyZWVhYmxlOwogCi0JaWYgKCF2YWNyZWwt PmRvX3JlbF90cnVuY2F0ZSB8fCB2YWNyZWwtPmZhaWxzYWZlX2FjdGl2ZSB8fAorCWlmICghdmFj cmVsLT5kb19yZWxfdHJ1bmNhdGUgfHwgVmFjdXVtRmFpbHNhZmVBY3RpdmUgfHwKIAkJb2xkX3Nu YXBzaG90X3RocmVzaG9sZCA+PSAwKQogCQlyZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVt LmMKaW5kZXggZGE4NTMzMGVmNC4uOTcyNGZiY2U0NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKQEAg LTcyLDYgKzcyLDE1IEBAIGludAkJCXZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX3RhYmxlX2FnZTsK IGludAkJCXZhY3V1bV9mYWlsc2FmZV9hZ2U7CiBpbnQJCQl2YWN1dW1fbXVsdGl4YWN0X2ZhaWxz YWZlX2FnZTsKIAorLyoKKyAqIFZhY3V1bUZhaWxzYWZlQWN0aXZlIGlzIGEgZGVmaW5lZCBhcyBh IGdsb2JhbCBzbyB0aGF0IHdlIGNhbiBkZXRlcm1pbmUKKyAqIHdoZXRoZXIgb3Igbm90IHRvIHJl LWVuYWJsZSBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSB3aGVuIHZhY3V1bWluZyBhIHRhYmxlLgor ICogSWYgZmFpbHNhZmUgbW9kZSBoYXMgYmVlbiBlbmdhZ2VkLCB3ZSB3aWxsIG5vdCByZS1lbmFi bGUgY29zdC1iYXNlZCBkZWxheQorICogZm9yIHRoZSB0YWJsZSB1bnRpbCBhZnRlciB2YWN1dW1p bmcgaGFzIGNvbXBsZXRlZCwgcmVnYXJkbGVzcyBvZiBvdGhlcgorICogc2V0dGluZ3MuCisgKi8K K2Jvb2wJCVZhY3V1bUZhaWxzYWZlQWN0aXZlID0gZmFsc2U7CisKIC8qCiAgKiBWYXJpYWJsZXMg Zm9yIGNvc3QtYmFzZWQgcGFyYWxsZWwgdmFjdXVtLiAgU2VlIGNvbW1lbnRzIGF0b3AKICAqIGNv bXB1dGVfcGFyYWxsZWxfZGVsYXkgdG8gdW5kZXJzdGFuZCBob3cgaXQgd29ya3MuCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L3ZhY3V1bS5oCmluZGV4IGJkZmQ5NmNmZWMuLjdiOGVlMjE3ODggMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1 bS5oCkBAIC0zMDYsNiArMzA2LDcgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIHBnX2F0b21pY191aW50 MzIgKlZhY3V1bVNoYXJlZENvc3RCYWxhbmNlOwogZXh0ZXJuIFBHRExMSU1QT1JUIHBnX2F0b21p Y191aW50MzIgKlZhY3V1bUFjdGl2ZU5Xb3JrZXJzOwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBW YWN1dW1Db3N0QmFsYW5jZUxvY2FsOwogCitleHRlcm4gYm9vbCBWYWN1dW1GYWlsc2FmZUFjdGl2 ZTsKIAogLyogaW4gY29tbWFuZHMvdmFjdXVtLmMgKi8KIGV4dGVybiB2b2lkIEV4ZWNWYWN1dW0o UGFyc2VTdGF0ZSAqcHN0YXRlLCBWYWN1dW1TdG10ICp2YWNzdG10LCBib29sIGlzVG9wTGV2ZWwp OwotLSAKMi4zNy4yCgo= --00000000000075b7bf05f8762c12--