Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t3dhk-00DmnC-91 for pgsql-hackers@arkaria.postgresql.org; Wed, 23 Oct 2024 15:55:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1t3dhi-00B6X5-KY for pgsql-hackers@arkaria.postgresql.org; Wed, 23 Oct 2024 15:55:23 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t3dhi-00B6Uw-2d for pgsql-hackers@lists.postgresql.org; Wed, 23 Oct 2024 15:55:22 +0000 Received: from mail-ed1-x536.google.com ([2a00:1450:4864:20::536]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1t3dhg-002aYr-0l for pgsql-hackers@lists.postgresql.org; Wed, 23 Oct 2024 15:55:21 +0000 Received: by mail-ed1-x536.google.com with SMTP id 4fb4d7f45d1cf-5c9ff17eddbso1046057a12.3 for ; Wed, 23 Oct 2024 08:55:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1729698919; x=1730303719; 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=mE/96b3Dc2rLH9YGKUgVJUcnNRqeAdRRPZ0vuBxDtUI=; b=aLfI8ky9dotY3kpXFZ1O4QS037dviNobRLoQJUWvfq51gCTC/5ohvh0jUmtgrwPIdJ 8KEsLN2OJUCf+RvTQIINNiN7Wu0rPMmUlnhkuadA2DRldF6/6AU6OCSSdvFLwnd7okhU QaUuArHXue3Nev8fdYsqfonvbzn2PJHREakqeFOniESxY2Fe863rtX2NnR14YovNd1mL DfvkpG6VuwuNbjUjLmE242BdyuZ9Q0jok2H9N9ZpYENICT8s2jpiQOWnKFHRPXiWqyxB gp65bXPp1hANDHo2hCG6foaQf2BgRwifIWHHlz880EU3WoNoC0vh0c8Ca4/wNthbwRMg q4UA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729698919; x=1730303719; 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=mE/96b3Dc2rLH9YGKUgVJUcnNRqeAdRRPZ0vuBxDtUI=; b=J7jP3CxpyAy1DQNBTVMMuswFEfQA/Qz3yACxo2/3C0pO29I/3ogE7QGCeTr03USPgL jXduJDrBa7NlU6cbwoUi9S+sJ44Q+PQERF7mS94Fa8aivyWxCzy9N5lw1Ugc33mMYgDA ZDWCISPzWmXy+76IV1jZIdGdMl9BEHnJM4fR4of/7odpekLzd+ICvYqxlzBRsDYdfDgI Y/U/8UAjD8V41O8dhztyiYn3YrmGq8wFnjMJ28k2H+F+P+Tsvp4CA3yu+Pu/a1lj/hJs p9jOybwUHQ8OeBS5DT/9fq03Vq4269Ku5C4LjsSgFjnXq5qhuhcbr4TLqKZXHT0UlTEr XcSQ== X-Forwarded-Encrypted: i=1; AJvYcCVLGj9dr+a3zJ1ddZaWLMzSFENJcLDhAOIjDntvD1WP8ZZOCiPjlyvzISMBMt2KvDAJsa/9niV9Jk6Yk8d7@lists.postgresql.org X-Gm-Message-State: AOJu0Yw7h6gKhp/fd8cVivEmayO3HBKTdyukOJEZd8SiNE4vQOsTsxBM /N3ob6WvihQ+VPa7LCoLKPZFDgSYYQ1I1rZRptp4u2N5TQnineunqbl3Dj64Mcw9EtJiQ2IzpBR YH0iVyFKAgqD/Seu0sYistYhDIbjK9jEm X-Google-Smtp-Source: AGHT+IGOHb6LR0QcWp9WyrXd8V7dkAoY5CoNazKAWr3rYqw1HoaBOuYj20IHxjtmnyzoO4OQMfWsyNrA2BNm4Psz598= X-Received: by 2002:a05:6402:350b:b0:5cb:6c39:2492 with SMTP id 4fb4d7f45d1cf-5cb8af7b24bmr1203736a12.4.1729698918730; Wed, 23 Oct 2024 08:55:18 -0700 (PDT) MIME-Version: 1.0 References: <5ecc35f5-1111-47fc-8a02-36d89490a50d@iki.fi> In-Reply-To: From: Maxim Orlov Date: Wed, 23 Oct 2024 18:55:06 +0300 Message-ID: Subject: Re: POC: make mxidoff 64 bits To: Heikki Linnakangas Cc: Alexander Korotkov , wenhui qiu , Postgres hackers Content-Type: multipart/mixed; boundary="0000000000009eaf2c062526e98e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009eaf2c062526e98e Content-Type: multipart/alternative; boundary="0000000000009eaf2a062526e98c" --0000000000009eaf2a062526e98c Content-Type: text/plain; charset="UTF-8" After a bit of thought, I've realized that to be conservative here is the way to go. We can reuse a maximum of existing logic. I mean, we can remove offset wraparound "error logic" and reuse "warning logic". But set the threshold for "warning logic" to a much higher value. For now, I choose 2^32-1. In other world, legit logic, in my view, here would be to trigger autovacuum if the number of offsets (i.e. difference nextOffset - oldestOffset) exceeds 2^32-1. PFA patch set. -- Best regards, Maxim Orlov. --0000000000009eaf2a062526e98c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
After a bit of thought, I've realized that to be = conservative here is the way to go.

We can reuse a maximum of existi= ng logic. I mean, we can remove offset wraparound "error logic" a= nd reuse "warning logic". But set the threshold for "warning= logic" to a much higher value. For now, I choose 2^32-1. In other wor= ld, legit logic, in my view, here would be to trigger autovacuum if the num= ber of offsets (i.e. difference nextOffset - oldestOffset) exceeds 2^32-1. = PFA patch set.

--
Best reg= ards,
Maxim Orlov.
--0000000000009eaf2a062526e98c-- --0000000000009eaf2c062526e98e Content-Type: application/octet-stream; name="v5-0002-Use-64-bit-multixact-offsets.patch" Content-Disposition: attachment; filename="v5-0002-Use-64-bit-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m2m21r4d1 RnJvbSBjY2E2MGE1ZTQ4NzA5MDI1MmRkZGQ1MTVjNzE2MjcyNzg2ODQxYzVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8bS5vcmxvdkBwb3N0Z3Jlc3Byby5ydT4K RGF0ZTogV2VkLCA2IE1hciAyMDI0IDExOjExOjMzICswMzAwClN1YmplY3Q6IFtQQVRDSCB2NSAy LzRdIFVzZSA2NC1iaXQgbXVsdGl4YWN0IG9mZnNldHMuCgpBdXRob3I6IE1heGltIE9ybG92IDxv cmxvdm1nQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhh Y3QuYyB8IDE3MiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvYmluL3BnX3Jlc2V0d2Fs L3BnX3Jlc2V0d2FsLmMgICAgICB8ICAgMiArLQogc3JjL2Jpbi9wZ19yZXNldHdhbC90LzAwMV9i YXNpYy5wbCAgICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9tdWx0aXhhY3QuaCAgICAg ICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS9jLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAg MiArLQogNSBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxNjkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYwppbmRleCBhYjkwOTEyZWQzLi5j NTFlMDNlODMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhh Y3QuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYwpAQCAtOTYs MTQgKzk2LDYgQEAKIC8qCiAgKiBEZWZpbmVzIGZvciBNdWx0aVhhY3RPZmZzZXQgcGFnZSBzaXpl cy4gIEEgcGFnZSBpcyB0aGUgc2FtZSBCTENLU1ogYXMgaXMKICAqIHVzZWQgZXZlcnl3aGVyZSBl bHNlIGluIFBvc3RncmVzLgotICoKLSAqIE5vdGU6IGJlY2F1c2UgTXVsdGlYYWN0T2Zmc2V0cyBh cmUgMzIgYml0cyBhbmQgd3JhcCBhcm91bmQgYXQgMHhGRkZGRkZGRiwKLSAqIE11bHRpWGFjdCBw YWdlIG51bWJlcmluZyBhbHNvIHdyYXBzIGFyb3VuZCBhdAotICogMHhGRkZGRkZGRi9NVUxUSVhB Q1RfT0ZGU0VUU19QRVJfUEFHRSwgYW5kIHNlZ21lbnQgbnVtYmVyaW5nIGF0Ci0gKiAweEZGRkZG RkZGL01VTFRJWEFDVF9PRkZTRVRTX1BFUl9QQUdFL1NMUlVfUEFHRVNfUEVSX1NFR01FTlQuICBX ZSBuZWVkCi0gKiB0YWtlIG5vIGV4cGxpY2l0IG5vdGljZSBvZiB0aGF0IGZhY3QgaW4gdGhpcyBt b2R1bGUsIGV4Y2VwdCB3aGVuIGNvbXBhcmluZwotICogc2VnbWVudCBhbmQgcGFnZSBudW1iZXJz IGluIFRydW5jYXRlTXVsdGlYYWN0IChzZWUKLSAqIE11bHRpWGFjdE9mZnNldFBhZ2VQcmVjZWRl cykuCiAgKi8KIAogLyogV2UgbmVlZCBmb3VyIGJ5dGVzIHBlciBvZmZzZXQgKi8KQEAgLTI3Miw5 ICsyNjQsNiBAQCB0eXBlZGVmIHN0cnVjdCBNdWx0aVhhY3RTdGF0ZURhdGEKIAlNdWx0aVhhY3RJ ZCBtdWx0aVN0b3BMaW1pdDsKIAlNdWx0aVhhY3RJZCBtdWx0aVdyYXBMaW1pdDsKIAotCS8qIHN1 cHBvcnQgZm9yIG1lbWJlcnMgYW50aS13cmFwYXJvdW5kIG1lYXN1cmVzICovCi0JTXVsdGlYYWN0 T2Zmc2V0IG9mZnNldFN0b3BMaW1pdDsJLyoga25vd24gaWYgb2xkZXN0T2Zmc2V0S25vd24gKi8K LQogCS8qCiAJICogVGhpcyBpcyB1c2VkIHRvIHNsZWVwIHVudGlsIGEgbXVsdGl4YWN0IG9mZnNl dCBpcyB3cml0dGVuIHdoZW4gd2Ugd2FudAogCSAqIHRvIGNyZWF0ZSB0aGUgbmV4dCBvbmUuCkBA IC00MDksOCArMzk4LDYgQEAgc3RhdGljIGJvb2wgTXVsdGlYYWN0T2Zmc2V0UHJlY2VkZXMoTXVs dGlYYWN0T2Zmc2V0IG9mZnNldDEsCiAJCQkJCQkJCQlNdWx0aVhhY3RPZmZzZXQgb2Zmc2V0Mik7 CiBzdGF0aWMgdm9pZCBFeHRlbmRNdWx0aVhhY3RPZmZzZXQoTXVsdGlYYWN0SWQgbXVsdGkpOwog c3RhdGljIHZvaWQgRXh0ZW5kTXVsdGlYYWN0TWVtYmVyKE11bHRpWGFjdE9mZnNldCBvZmZzZXQs IGludCBubWVtYmVycyk7Ci1zdGF0aWMgYm9vbCBNdWx0aVhhY3RPZmZzZXRXb3VsZFdyYXAoTXVs dGlYYWN0T2Zmc2V0IGJvdW5kYXJ5LAotCQkJCQkJCQkJIE11bHRpWGFjdE9mZnNldCBzdGFydCwg dWludDMyIGRpc3RhbmNlKTsKIHN0YXRpYyBib29sIFNldE9mZnNldFZhY3V1bUxpbWl0KGJvb2wg aXNfc3RhcnR1cCk7CiBzdGF0aWMgYm9vbCBmaW5kX211bHRpeGFjdF9zdGFydChNdWx0aVhhY3RJ ZCBtdWx0aSwgTXVsdGlYYWN0T2Zmc2V0ICpyZXN1bHQpOwogc3RhdGljIHZvaWQgV3JpdGVNWmVy b1BhZ2VYbG9nUmVjKGludDY0IHBhZ2VubywgdWludDggaW5mbyk7CkBAIC0xMTY0LDc4ICsxMTUx LDYgQEAgR2V0TmV3TXVsdGlYYWN0SWQoaW50IG5tZW1iZXJzLCBNdWx0aVhhY3RPZmZzZXQgKm9m ZnNldCkKIAllbHNlCiAJCSpvZmZzZXQgPSBuZXh0T2Zmc2V0OwogCi0JLyotLS0tLS0tLS0tCi0J ICogUHJvdGVjdCBhZ2FpbnN0IG92ZXJydW4gb2YgdGhlIG1lbWJlcnMgc3BhY2UgYXMgd2VsbCwg d2l0aCB0aGUKLQkgKiBmb2xsb3dpbmcgcnVsZXM6Ci0JICoKLQkgKiBJZiB3ZSdyZSBwYXN0IG9m ZnNldFN0b3BMaW1pdCwgcmVmdXNlIHRvIGdlbmVyYXRlIG1vcmUgbXVsdGlzLgotCSAqIElmIHdl J3JlIGNsb3NlIHRvIG9mZnNldFN0b3BMaW1pdCwgZW1pdCBhIHdhcm5pbmcuCi0JICoKLQkgKiBB cmJpdHJhcmlseSwgd2Ugc3RhcnQgZW1pdHRpbmcgd2FybmluZ3Mgd2hlbiB3ZSdyZSAyMCBzZWdt ZW50cyBvciBsZXNzCi0JICogZnJvbSBvZmZzZXRTdG9wTGltaXQuCi0JICoKLQkgKiBOb3RlIHdl IGhhdmVuJ3QgdXBkYXRlZCB0aGUgc2hhcmVkIHN0YXRlIHlldCwgc28gaWYgd2UgZmFpbCBhdCB0 aGlzCi0JICogcG9pbnQsIHRoZSBtdWx0aXhhY3QgSUQgd2UgZ3JhYmJlZCBjYW4gc3RpbGwgYmUg dXNlZCBieSB0aGUgbmV4dCBndXkuCi0JICoKLQkgKiBOb3RlIHRoYXQgdGhlcmUgaXMgbm8gcG9p bnQgaW4gZm9yY2luZyBhdXRvdmFjdXVtIHJ1bnMgaGVyZTogdGhlCi0JICogbXVsdGl4YWN0IGZy ZWV6ZSBzZXR0aW5ncyB3b3VsZCBoYXZlIHRvIGJlIHJlZHVjZWQgZm9yIHRoYXQgdG8gaGF2ZSBh bnkKLQkgKiBlZmZlY3QuCi0JICotLS0tLS0tLS0tCi0JICovCi0jZGVmaW5lIE9GRlNFVF9XQVJO X1NFR01FTlRTCTIwCi0JaWYgKE11bHRpWGFjdFN0YXRlLT5vbGRlc3RPZmZzZXRLbm93biAmJgot CQlNdWx0aVhhY3RPZmZzZXRXb3VsZFdyYXAoTXVsdGlYYWN0U3RhdGUtPm9mZnNldFN0b3BMaW1p dCwgbmV4dE9mZnNldCwKLQkJCQkJCQkJIG5tZW1iZXJzKSkKLQl7Ci0JCS8qIHNlZSBjb21tZW50 IGluIHRoZSBjb3JyZXNwb25kaW5nIG9mZnNldHMgd3JhcGFyb3VuZCBjYXNlICovCi0JCVNlbmRQ b3N0bWFzdGVyU2lnbmFsKFBNU0lHTkFMX1NUQVJUX0FVVE9WQUNfTEFVTkNIRVIpOwotCi0JCWVy ZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9HUkFNX0xJTUlUX0VYQ0VFREVE KSwKLQkJCQkgZXJybXNnKCJtdWx0aXhhY3QgXCJtZW1iZXJzXCIgbGltaXQgZXhjZWVkZWQiKSwK LQkJCQkgZXJyZGV0YWlsX3BsdXJhbCgiVGhpcyBjb21tYW5kIHdvdWxkIGNyZWF0ZSBhIG11bHRp eGFjdCB3aXRoICV1IG1lbWJlcnMsIGJ1dCB0aGUgcmVtYWluaW5nIHNwYWNlIGlzIG9ubHkgZW5v dWdoIGZvciAldSBtZW1iZXIuIiwKLQkJCQkJCQkJICAiVGhpcyBjb21tYW5kIHdvdWxkIGNyZWF0 ZSBhIG11bHRpeGFjdCB3aXRoICV1IG1lbWJlcnMsIGJ1dCB0aGUgcmVtYWluaW5nIHNwYWNlIGlz IG9ubHkgZW5vdWdoIGZvciAldSBtZW1iZXJzLiIsCi0JCQkJCQkJCSAgTXVsdGlYYWN0U3RhdGUt Pm9mZnNldFN0b3BMaW1pdCAtIG5leHRPZmZzZXQgLSAxLAotCQkJCQkJCQkgIG5tZW1iZXJzLAot CQkJCQkJCQkgIE11bHRpWGFjdFN0YXRlLT5vZmZzZXRTdG9wTGltaXQgLSBuZXh0T2Zmc2V0IC0g MSksCi0JCQkJIGVycmhpbnQoIkV4ZWN1dGUgYSBkYXRhYmFzZS13aWRlIFZBQ1VVTSBpbiBkYXRh YmFzZSB3aXRoIE9JRCAldSB3aXRoIHJlZHVjZWQgXCJ2YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9t aW5fYWdlXCIgYW5kIFwidmFjdXVtX211bHRpeGFjdF9mcmVlemVfdGFibGVfYWdlXCIgc2V0dGlu Z3MuIiwKLQkJCQkJCSBNdWx0aVhhY3RTdGF0ZS0+b2xkZXN0TXVsdGlYYWN0REIpKSk7Ci0JfQot Ci0JLyoKLQkgKiBDaGVjayB3aGV0aGVyIHdlIHNob3VsZCBraWNrIGF1dG92YWN1dW0gaW50byBh Y3Rpb24sIHRvIHByZXZlbnQgbWVtYmVycwotCSAqIHdyYXBhcm91bmQuIE5CIHdlIHVzZSBhIG11 Y2ggbGFyZ2VyIHdpbmRvdyB0byB0cmlnZ2VyIGF1dG92YWN1dW0gdGhhbgotCSAqIGp1c3QgdGhl IHdhcm5pbmcgbGltaXQuIFRoZSB3YXJuaW5nIGlzIGp1c3QgYSBtZWFzdXJlIG9mIGxhc3QgcmVz b3J0IC0KLQkgKiB0aGlzIGlzIGluIGxpbmUgd2l0aCBHZXROZXdUcmFuc2FjdGlvbklkJ3MgYmVo YXZpb3VyLgotCSAqLwotCWlmICghTXVsdGlYYWN0U3RhdGUtPm9sZGVzdE9mZnNldEtub3duIHx8 Ci0JCShNdWx0aVhhY3RTdGF0ZS0+bmV4dE9mZnNldCAtIE11bHRpWGFjdFN0YXRlLT5vbGRlc3RP ZmZzZXQKLQkJID4gTVVMVElYQUNUX01FTUJFUl9TQUZFX1RIUkVTSE9MRCkpCi0JewotCQkvKgot CQkgKiBUbyBhdm9pZCBzd2FtcGluZyB0aGUgcG9zdG1hc3RlciB3aXRoIHNpZ25hbHMsIHdlIGlz c3VlIHRoZSBhdXRvdmFjCi0JCSAqIHJlcXVlc3Qgb25seSB3aGVuIGNyb3NzaW5nIGEgc2VnbWVu dCBib3VuZGFyeS4gV2l0aCBkZWZhdWx0Ci0JCSAqIGNvbXBpbGF0aW9uIHNldHRpbmdzIHRoYXQn cyByb3VnaGx5IGFmdGVyIDUwayBtZW1iZXJzLiAgVGhpcyBzdGlsbAotCQkgKiBnaXZlcyBwbGVu dHkgb2YgY2hhbmNlcyBiZWZvcmUgd2UgZ2V0IGludG8gcmVhbCB0cm91YmxlLgotCQkgKi8KLQkJ aWYgKChNWE9mZnNldFRvTWVtYmVyUGFnZShuZXh0T2Zmc2V0KSAvIFNMUlVfUEFHRVNfUEVSX1NF R01FTlQpICE9Ci0JCQkoTVhPZmZzZXRUb01lbWJlclBhZ2UobmV4dE9mZnNldCArIG5tZW1iZXJz KSAvIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQpKQotCQkJU2VuZFBvc3RtYXN0ZXJTaWduYWwoUE1T SUdOQUxfU1RBUlRfQVVUT1ZBQ19MQVVOQ0hFUik7Ci0JfQotCi0JaWYgKE11bHRpWGFjdFN0YXRl LT5vbGRlc3RPZmZzZXRLbm93biAmJgotCQlNdWx0aVhhY3RPZmZzZXRXb3VsZFdyYXAoTXVsdGlY YWN0U3RhdGUtPm9mZnNldFN0b3BMaW1pdCwKLQkJCQkJCQkJIG5leHRPZmZzZXQsCi0JCQkJCQkJ CSBubWVtYmVycyArIE1VTFRJWEFDVF9NRU1CRVJTX1BFUl9QQUdFICogU0xSVV9QQUdFU19QRVJf U0VHTUVOVCAqIE9GRlNFVF9XQVJOX1NFR01FTlRTKSkKLQkJZXJlcG9ydChXQVJOSU5HLAotCQkJ CShlcnJjb2RlKEVSUkNPREVfUFJPR1JBTV9MSU1JVF9FWENFRURFRCksCi0JCQkJIGVycm1zZ19w bHVyYWwoImRhdGFiYXNlIHdpdGggT0lEICV1IG11c3QgYmUgdmFjdXVtZWQgYmVmb3JlICVkIG1v cmUgbXVsdGl4YWN0IG1lbWJlciBpcyB1c2VkIiwKLQkJCQkJCQkgICAiZGF0YWJhc2Ugd2l0aCBP SUQgJXUgbXVzdCBiZSB2YWN1dW1lZCBiZWZvcmUgJWQgbW9yZSBtdWx0aXhhY3QgbWVtYmVycyBh cmUgdXNlZCIsCi0JCQkJCQkJICAgTXVsdGlYYWN0U3RhdGUtPm9mZnNldFN0b3BMaW1pdCAtIG5l eHRPZmZzZXQgKyBubWVtYmVycywKLQkJCQkJCQkgICBNdWx0aVhhY3RTdGF0ZS0+b2xkZXN0TXVs dGlYYWN0REIsCi0JCQkJCQkJICAgTXVsdGlYYWN0U3RhdGUtPm9mZnNldFN0b3BMaW1pdCAtIG5l eHRPZmZzZXQgKyBubWVtYmVycyksCi0JCQkJIGVycmhpbnQoIkV4ZWN1dGUgYSBkYXRhYmFzZS13 aWRlIFZBQ1VVTSBpbiB0aGF0IGRhdGFiYXNlIHdpdGggcmVkdWNlZCBcInZhY3V1bV9tdWx0aXhh Y3RfZnJlZXplX21pbl9hZ2VcIiBhbmQgXCJ2YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV90YWJsZV9h Z2VcIiBzZXR0aW5ncy4iKSkpOwotCiAJRXh0ZW5kTXVsdGlYYWN0TWVtYmVyKG5leHRPZmZzZXQs IG5tZW1iZXJzKTsKIAogCS8qCkBAIC0xOTc2LDcgKzE4OTEsNyBAQCBNdWx0aVhhY3RTaG1lbUlu aXQodm9pZCkKIAkJCQkgICJwZ19tdWx0aXhhY3Qvb2Zmc2V0cyIsIExXVFJBTkNIRV9NVUxUSVhB Q1RPRkZTRVRfQlVGRkVSLAogCQkJCSAgTFdUUkFOQ0hFX01VTFRJWEFDVE9GRlNFVF9TTFJVLAog CQkJCSAgU1lOQ19IQU5ETEVSX01VTFRJWEFDVF9PRkZTRVQsCi0JCQkJICBmYWxzZSk7CisJCQkJ ICB0cnVlKTsKIAlTbHJ1UGFnZVByZWNlZGVzVW5pdFRlc3RzKE11bHRpWGFjdE9mZnNldEN0bCwg TVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0UpOwogCVNpbXBsZUxydUluaXQoTXVsdGlYYWN0TWVt YmVyQ3RsLAogCQkJCSAgIm11bHRpeGFjdF9tZW1iZXIiLCBtdWx0aXhhY3RfbWVtYmVyX2J1ZmZl cnMsIDAsCkBAIC0yNzIxLDggKzI2MzYsNiBAQCBTZXRPZmZzZXRWYWN1dW1MaW1pdChib29sIGlz X3N0YXJ0dXApCiAJTXVsdGlYYWN0T2Zmc2V0IG5leHRPZmZzZXQ7CiAJYm9vbAkJb2xkZXN0T2Zm c2V0S25vd24gPSBmYWxzZTsKIAlib29sCQlwcmV2T2xkZXN0T2Zmc2V0S25vd247Ci0JTXVsdGlY YWN0T2Zmc2V0IG9mZnNldFN0b3BMaW1pdCA9IDA7Ci0JTXVsdGlYYWN0T2Zmc2V0IHByZXZPZmZz ZXRTdG9wTGltaXQ7CiAKIAkvKgogCSAqIE5COiBIYXZlIHRvIHByZXZlbnQgY29uY3VycmVudCB0 cnVuY2F0aW9uLCB3ZSBtaWdodCBvdGhlcndpc2UgdHJ5IHRvCkBAIC0yNzM3LDcgKzI2NTAsNiBA QCBTZXRPZmZzZXRWYWN1dW1MaW1pdChib29sIGlzX3N0YXJ0dXApCiAJbmV4dE9mZnNldCA9IE11 bHRpWGFjdFN0YXRlLT5uZXh0T2Zmc2V0OwogCXByZXZPbGRlc3RPZmZzZXRLbm93biA9IE11bHRp WGFjdFN0YXRlLT5vbGRlc3RPZmZzZXRLbm93bjsKIAlwcmV2T2xkZXN0T2Zmc2V0ID0gTXVsdGlY YWN0U3RhdGUtPm9sZGVzdE9mZnNldDsKLQlwcmV2T2Zmc2V0U3RvcExpbWl0ID0gTXVsdGlYYWN0 U3RhdGUtPm9mZnNldFN0b3BMaW1pdDsKIAlBc3NlcnQoTXVsdGlYYWN0U3RhdGUtPmZpbmlzaGVk U3RhcnR1cCk7CiAJTFdMb2NrUmVsZWFzZShNdWx0aVhhY3RHZW5Mb2NrKTsKIApAQCAtMjc2OCwx MSArMjY4MCw3IEBAIFNldE9mZnNldFZhY3V1bUxpbWl0KGJvb2wgaXNfc3RhcnR1cCkKIAkJb2xk ZXN0T2Zmc2V0S25vd24gPQogCQkJZmluZF9tdWx0aXhhY3Rfc3RhcnQob2xkZXN0TXVsdGlYYWN0 SWQsICZvbGRlc3RPZmZzZXQpOwogCi0JCWlmIChvbGRlc3RPZmZzZXRLbm93bikKLQkJCWVyZXBv cnQoREVCVUcxLAotCQkJCQkoZXJybXNnX2ludGVybmFsKCJvbGRlc3QgTXVsdGlYYWN0SWQgbWVt YmVyIGlzIGF0IG9mZnNldCAldSIsCi0JCQkJCQkJCQkgb2xkZXN0T2Zmc2V0KSkpOwotCQllbHNl CisJCWlmICghb2xkZXN0T2Zmc2V0S25vd24pCiAJCQllcmVwb3J0KExPRywKIAkJCQkJKGVycm1z ZygiTXVsdGlYYWN0IG1lbWJlciB3cmFwYXJvdW5kIHByb3RlY3Rpb25zIGFyZSBkaXNhYmxlZCBi ZWNhdXNlIG9sZGVzdCBjaGVja3BvaW50ZWQgTXVsdGlYYWN0ICV1IGRvZXMgbm90IGV4aXN0IG9u IGRpc2siLAogCQkJCQkJCW9sZGVzdE11bHRpWGFjdElkKSkpOwpAQCAtMjc4NSwyNCArMjY5Myw3 IEBAIFNldE9mZnNldFZhY3V1bUxpbWl0KGJvb2wgaXNfc3RhcnR1cCkKIAkgKiBvdmVycnVuIG9m IG9sZCBkYXRhIGluIHRoZSBtZW1iZXJzIFNMUlUgYXJlYS4gV2UgY2FuIG9ubHkgZG8gc28gaWYg dGhlCiAJICogb2xkZXN0IG9mZnNldCBpcyBrbm93biB0aG91Z2guCiAJICovCi0JaWYgKG9sZGVz dE9mZnNldEtub3duKQotCXsKLQkJLyogbW92ZSBiYWNrIHRvIHN0YXJ0IG9mIHRoZSBjb3JyZXNw b25kaW5nIHNlZ21lbnQgKi8KLQkJb2Zmc2V0U3RvcExpbWl0ID0gb2xkZXN0T2Zmc2V0IC0gKG9s ZGVzdE9mZnNldCAlCi0JCQkJCQkJCQkJICAoTVVMVElYQUNUX01FTUJFUlNfUEVSX1BBR0UgKiBT TFJVX1BBR0VTX1BFUl9TRUdNRU5UKSk7Ci0KLQkJLyogYWx3YXlzIGxlYXZlIG9uZSBzZWdtZW50 IGJlZm9yZSB0aGUgd3JhcGFyb3VuZCBwb2ludCAqLwotCQlvZmZzZXRTdG9wTGltaXQgLT0gKE1V TFRJWEFDVF9NRU1CRVJTX1BFUl9QQUdFICogU0xSVV9QQUdFU19QRVJfU0VHTUVOVCk7Ci0KLQkJ aWYgKCFwcmV2T2xkZXN0T2Zmc2V0S25vd24gJiYgIWlzX3N0YXJ0dXApCi0JCQllcmVwb3J0KExP RywKLQkJCQkJKGVycm1zZygiTXVsdGlYYWN0IG1lbWJlciB3cmFwYXJvdW5kIHByb3RlY3Rpb25z IGFyZSBub3cgZW5hYmxlZCIpKSk7Ci0KLQkJZXJlcG9ydChERUJVRzEsCi0JCQkJKGVycm1zZ19p bnRlcm5hbCgiTXVsdGlYYWN0IG1lbWJlciBzdG9wIGxpbWl0IGlzIG5vdyAldSBiYXNlZCBvbiBN dWx0aVhhY3QgJXUiLAotCQkJCQkJCQkgb2Zmc2V0U3RvcExpbWl0LCBvbGRlc3RNdWx0aVhhY3RJ ZCkpKTsKLQl9Ci0JZWxzZSBpZiAocHJldk9sZGVzdE9mZnNldEtub3duKQorCWlmIChwcmV2T2xk ZXN0T2Zmc2V0S25vd24pCiAJewogCQkvKgogCQkgKiBJZiB3ZSBmYWlsZWQgdG8gZ2V0IHRoZSBv bGRlc3Qgb2Zmc2V0IHRoaXMgdGltZSwgYnV0IHdlIGhhdmUgYQpAQCAtMjgxMiwxNCArMjcwMywx MiBAQCBTZXRPZmZzZXRWYWN1dW1MaW1pdChib29sIGlzX3N0YXJ0dXApCiAJCSAqLwogCQlvbGRl c3RPZmZzZXQgPSBwcmV2T2xkZXN0T2Zmc2V0OwogCQlvbGRlc3RPZmZzZXRLbm93biA9IHRydWU7 Ci0JCW9mZnNldFN0b3BMaW1pdCA9IHByZXZPZmZzZXRTdG9wTGltaXQ7CiAJfQogCiAJLyogSW5z dGFsbCB0aGUgY29tcHV0ZWQgdmFsdWVzICovCiAJTFdMb2NrQWNxdWlyZShNdWx0aVhhY3RHZW5M b2NrLCBMV19FWENMVVNJVkUpOwogCU11bHRpWGFjdFN0YXRlLT5vbGRlc3RPZmZzZXQgPSBvbGRl c3RPZmZzZXQ7CiAJTXVsdGlYYWN0U3RhdGUtPm9sZGVzdE9mZnNldEtub3duID0gb2xkZXN0T2Zm c2V0S25vd247Ci0JTXVsdGlYYWN0U3RhdGUtPm9mZnNldFN0b3BMaW1pdCA9IG9mZnNldFN0b3BM aW1pdDsKIAlMV0xvY2tSZWxlYXNlKE11bHRpWGFjdEdlbkxvY2spOwogCiAJLyoKQEAgLTI4Mjks NTQgKzI3MTgsNiBAQCBTZXRPZmZzZXRWYWN1dW1MaW1pdChib29sIGlzX3N0YXJ0dXApCiAJCShu ZXh0T2Zmc2V0IC0gb2xkZXN0T2Zmc2V0ID4gTVVMVElYQUNUX01FTUJFUl9TQUZFX1RIUkVTSE9M RCk7CiB9CiAKLS8qCi0gKiBSZXR1cm4gd2hldGhlciBhZGRpbmcgImRpc3RhbmNlIiB0byAic3Rh cnQiIHdvdWxkIG1vdmUgcGFzdCAiYm91bmRhcnkiLgotICoKLSAqIFdlIHVzZSB0aGlzIHRvIGRl dGVybWluZSB3aGV0aGVyIHRoZSBhZGRpdGlvbiBpcyAid3JhcHBpbmcgYXJvdW5kIiB0aGUKLSAq IGJvdW5kYXJ5IHBvaW50LCBoZW5jZSB0aGUgbmFtZS4gIFRoZSByZWFzb24gd2UgZG9uJ3Qgd2Fu dCB0byB1c2UgdGhlIHJlZ3VsYXIKLSAqIDJeMzEtbW9kdWxvIGFyaXRobWV0aWMgaGVyZSBpcyB0 aGF0IHdlIHdhbnQgdG8gYmUgYWJsZSB0byB1c2UgdGhlIHdob2xlIG9mCi0gKiB0aGUgMl4zMi0x IHNwYWNlIGhlcmUsIGFsbG93aW5nIGZvciBtb3JlIG11bHRpeGFjdHMgdGhhbiB3b3VsZCBmaXQK LSAqIG90aGVyd2lzZS4KLSAqLwotc3RhdGljIGJvb2wKLU11bHRpWGFjdE9mZnNldFdvdWxkV3Jh cChNdWx0aVhhY3RPZmZzZXQgYm91bmRhcnksIE11bHRpWGFjdE9mZnNldCBzdGFydCwKLQkJCQkJ CSB1aW50MzIgZGlzdGFuY2UpCi17Ci0JTXVsdGlYYWN0T2Zmc2V0IGZpbmlzaDsKLQotCS8qCi0J ICogTm90ZSB0aGF0IG9mZnNldCBudW1iZXIgMCBpcyBub3QgdXNlZCAoc2VlIEdldE11bHRpWGFj dElkTWVtYmVycyksIHNvCi0JICogaWYgdGhlIGFkZGl0aW9uIHdyYXBzIGFyb3VuZCB0aGUgVUlO VF9NQVggYm91bmRhcnksIHNraXAgdGhhdCB2YWx1ZS4KLQkgKi8KLQlmaW5pc2ggPSBzdGFydCAr IGRpc3RhbmNlOwotCWlmIChmaW5pc2ggPCBzdGFydCkKLQkJZmluaXNoKys7Ci0KLQkvKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0JICogV2hlbiB0aGUgYm91bmRhcnkgaXMgbnVtZXJpY2FsbHkgZ3JlYXRlciB0 aGFuIHRoZSBzdGFydGluZyBwb2ludCwgYW55Ci0JICogdmFsdWUgbnVtZXJpY2FsbHkgYmV0d2Vl biB0aGUgdHdvIGlzIG5vdCB3cmFwcGVkOgotCSAqCi0JICoJPC0tLS1TLS0tLUItLS0tPgotCSAq CVstLS0pCQkJID0gRiB3cmFwcGVkIHBhc3QgQiAoYW5kIFVJTlRfTUFYKQotCSAqCQkgWy0tLSkJ CSA9IEYgbm90IHdyYXBwZWQKLQkgKgkJCSAgWy0tLS1dID0gRiB3cmFwcGVkIHBhc3QgQgotCSAq Ci0JICogV2hlbiB0aGUgYm91bmRhcnkgaXMgbnVtZXJpY2FsbHkgbGVzcyB0aGFuIHRoZSBzdGFy dGluZyBwb2ludCAoaS5lLiB0aGUKLQkgKiBVSU5UX01BWCB3cmFwYXJvdW5kIG9jY3VycyBzb21l d2hlcmUgaW4gYmV0d2VlbikgdGhlbiBhbGwgdmFsdWVzIGluCi0JICogYmV0d2VlbiBhcmUgd3Jh cHBlZDoKLQkgKgotCSAqCTwtLS0tQi0tLS1TLS0tLT4KLQkgKglbLS0tKQkJCSA9IEYgbm90IHdy YXBwZWQgcGFzdCBCIChidXQgd3JhcHBlZCBwYXN0IFVJTlRfTUFYKQotCSAqCQkgWy0tLSkJCSA9 IEYgd3JhcHBlZCBwYXN0IEIgKGFuZCBVSU5UX01BWCkKLQkgKgkJCSAgWy0tLS1dID0gRiBub3Qg d3JhcHBlZAotCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQkgKi8KLQlpZiAoc3RhcnQgPCBib3VuZGFyeSkK LQkJcmV0dXJuIGZpbmlzaCA+PSBib3VuZGFyeSB8fCBmaW5pc2ggPCBzdGFydDsKLQllbHNlCi0J CXJldHVybiBmaW5pc2ggPj0gYm91bmRhcnkgJiYgZmluaXNoIDwgc3RhcnQ7Ci19Ci0KIC8qCiAg KiBGaW5kIHRoZSBzdGFydGluZyBvZmZzZXQgb2YgdGhlIGdpdmVuIE11bHRpWGFjdElkLgogICoK QEAgLTI5OTgsOCArMjgzOSw5IEBAIE11bHRpWGFjdE1lbWJlckZyZWV6ZVRocmVzaG9sZCh2b2lk KQogCSAqIHdlIHRyeSB0byBlbGltaW5hdGUgZnJvbSB0aGUgc3lzdGVtIGlzIGJhc2VkIG9uIGhv dyBmYXIgd2UgYXJlIHBhc3QKIAkgKiBNVUxUSVhBQ1RfTUVNQkVSX1NBRkVfVEhSRVNIT0xELgog CSAqLwotCWZyYWN0aW9uID0gKGRvdWJsZSkgKG1lbWJlcnMgLSBNVUxUSVhBQ1RfTUVNQkVSX1NB RkVfVEhSRVNIT0xEKSAvCi0JCShNVUxUSVhBQ1RfTUVNQkVSX0RBTkdFUl9USFJFU0hPTEQgLSBN VUxUSVhBQ1RfTUVNQkVSX1NBRkVfVEhSRVNIT0xEKTsKKwlmcmFjdGlvbiA9IChkb3VibGUpICht ZW1iZXJzIC0gTVVMVElYQUNUX01FTUJFUl9TQUZFX1RIUkVTSE9MRCk7CisJZnJhY3Rpb24gLz0g KGRvdWJsZSkgKE1VTFRJWEFDVF9NRU1CRVJfREFOR0VSX1RIUkVTSE9MRCAtIE1VTFRJWEFDVF9N RU1CRVJfU0FGRV9USFJFU0hPTEQpOworCiAJdmljdGltX211bHRpeGFjdHMgPSBtdWx0aXhhY3Rz ICogZnJhY3Rpb247CiAKIAkvKiBmcmFjdGlvbiBjb3VsZCBiZSA+IDEuMCwgYnV0IGxvd2VzdCBw b3NzaWJsZSBmcmVlemUgYWdlIGlzIHplcm8gKi8KQEAgLTMzNDUsNyArMzE4Nyw3IEBAIE11bHRp WGFjdElkUHJlY2VkZXNPckVxdWFscyhNdWx0aVhhY3RJZCBtdWx0aTEsIE11bHRpWGFjdElkIG11 bHRpMikKIHN0YXRpYyBib29sCiBNdWx0aVhhY3RPZmZzZXRQcmVjZWRlcyhNdWx0aVhhY3RPZmZz ZXQgb2Zmc2V0MSwgTXVsdGlYYWN0T2Zmc2V0IG9mZnNldDIpCiB7Ci0JaW50MzIJCWRpZmYgPSAo aW50MzIpIChvZmZzZXQxIC0gb2Zmc2V0Mik7CisJaW50NjQJCWRpZmYgPSAoaW50NjQpIChvZmZz ZXQxIC0gb2Zmc2V0Mik7CiAKIAlyZXR1cm4gKGRpZmYgPCAwKTsKIH0KZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYyBiL3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdf cmVzZXR3YWwuYwppbmRleCA5ODVjZDA2ODAyLi4xYWYyY2U0YjkzIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX3Jlc2V0d2FsL3BnX3Jlc2V0d2FsLmMKKysrIGIvc3JjL2Jpbi9wZ19yZXNldHdhbC9w Z19yZXNldHdhbC5jCkBAIC0yNjQsNyArMjY0LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQogCiAJCQljYXNlICdPJzoKIAkJCQllcnJubyA9IDA7Ci0JCQkJc2V0X214b2ZmID0gc3Ry dG91bChvcHRhcmcsICZlbmRwdHIsIDApOworCQkJCXNldF9teG9mZiA9IHN0cnRvdTY0KG9wdGFy ZywgJmVuZHB0ciwgMCk7CiAJCQkJaWYgKGVuZHB0ciA9PSBvcHRhcmcgfHwgKmVuZHB0ciAhPSAn XDAnIHx8IGVycm5vICE9IDApCiAJCQkJewogCQkJCQlwZ19sb2dfZXJyb3IoImludmFsaWQgYXJn dW1lbnQgZm9yIG9wdGlvbiAlcyIsICItTyIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19yZXNl dHdhbC90LzAwMV9iYXNpYy5wbCBiL3NyYy9iaW4vcGdfcmVzZXR3YWwvdC8wMDFfYmFzaWMucGwK aW5kZXggOTgyOWU0ODEwNi4uZjhhOGVlZjQ0ZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19yZXNl dHdhbC90LzAwMV9iYXNpYy5wbAorKysgYi9zcmMvYmluL3BnX3Jlc2V0d2FsL3QvMDAxX2Jhc2lj LnBsCkBAIC0yMDYsNyArMjA2LDcgQEAgcHVzaCBAY21kLAogICBzcHJpbnRmKCIlZCwlZCIsIGhl eCgkZmlsZXNbMF0pID09IDAgPyAzIDogaGV4KCRmaWxlc1swXSksIGhleCgkZmlsZXNbLTFdKSk7 CiAKIEBmaWxlcyA9IGdldF9zbHJ1X2ZpbGVzKCdwZ19tdWx0aXhhY3Qvb2Zmc2V0cycpOwotJG11 bHQgPSAzMiAqICRibGNrc3ogLyA0OworJG11bHQgPSAzMiAqICRibGNrc3ogLyA4OwogIyAtbSBh cmd1bWVudCBpcyAibmV3LG9sZCIKIHB1c2ggQGNtZCwgJy1tJywKICAgc3ByaW50ZigiJWQsJWQi LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL211bHRpeGFjdC5oIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL211bHRpeGFjdC5oCmluZGV4IDdmZmQyNTZjNzQuLjkwNTgzNjM0ZWMgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9tdWx0aXhhY3QuaAorKysgYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvbXVsdGl4YWN0LmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2RlZmluZSBNdWx0aVhhY3RJ ZElzVmFsaWQobXVsdGkpICgobXVsdGkpICE9IEludmFsaWRNdWx0aVhhY3RJZCkKIAotI2RlZmlu ZSBNYXhNdWx0aVhhY3RPZmZzZXQJKChNdWx0aVhhY3RPZmZzZXQpIDB4RkZGRkZGRkYpCisjZGVm aW5lIE1heE11bHRpWGFjdE9mZnNldAlVSU5UNjRDT05TVCgweEZGRkZGRkZGRkZGRkZGRkYpCiAK IC8qCiAgKiBQb3NzaWJsZSBtdWx0aXhhY3QgbG9jayBtb2RlcyAoInN0YXR1cyIpLiAgVGhlIGZp cnN0IGZvdXIgbW9kZXMgYXJlIGZvcgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYy5oIGIvc3Jj L2luY2x1ZGUvYy5oCmluZGV4IDU1ZGVjNzFhNmQuLjU1NmZmZmEzMzMgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2MuaAorKysgYi9zcmMvaW5jbHVkZS9jLmgKQEAgLTY1Miw3ICs2NTIsNyBAQCB0 eXBlZGVmIHVpbnQzMiBTdWJUcmFuc2FjdGlvbklkOwogLyogTXVsdGlYYWN0SWQgbXVzdCBiZSBl cXVpdmFsZW50IHRvIFRyYW5zYWN0aW9uSWQsIHRvIGZpdCBpbiB0X3htYXggKi8KIHR5cGVkZWYg VHJhbnNhY3Rpb25JZCBNdWx0aVhhY3RJZDsKIAotdHlwZWRlZiB1aW50MzIgTXVsdGlYYWN0T2Zm c2V0OwordHlwZWRlZiB1aW50NjQgTXVsdGlYYWN0T2Zmc2V0OwogCiB0eXBlZGVmIHVpbnQzMiBD b21tYW5kSWQ7CiAKLS0gCjIuNDMuMAoK --0000000000009eaf2c062526e98e Content-Type: application/octet-stream; name="v5-0003-Make-pg_upgrade-convert-multixact-offsets.patch" Content-Disposition: attachment; filename="v5-0003-Make-pg_upgrade-convert-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m2m21r4g2 RnJvbSA2ZGE5M2M1ZGI0M2Q1ZjhjMzQwY2M0NWU0N2JjNzM3NTJmMTZjNzJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8bS5vcmxvdkBwb3N0Z3Jlc3Byby5ydT4K RGF0ZTogVHVlLCAxMyBBdWcgMjAyNCAxNDo0NDo1MCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggdjUg My80XSBNYWtlIHBnX3VwZ3JhZGUgY29udmVydCBtdWx0aXhhY3Qgb2Zmc2V0cy4KCkF1dGhvcjog TWF4aW0gT3Jsb3YgPG9ybG92bWdAZ21haWwuY29tPgotLS0KIHNyYy9iaW4vcGdfdXBncmFkZS9N YWtlZmlsZSAgICAgfCAgIDEgKwogc3JjL2Jpbi9wZ191cGdyYWRlL21lc29uLmJ1aWxkICB8ICAg MSArCiBzcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jIHwgIDI5ICsrLQogc3JjL2Jpbi9w Z191cGdyYWRlL3BnX3VwZ3JhZGUuaCB8ICAxMyArLQogc3JjL2Jpbi9wZ191cGdyYWRlL3NlZ3Jl c2l6ZS5jICB8IDM1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNSBmaWxlcyBj aGFuZ2VkLCAzOTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvYmluL3BnX3VwZ3JhZGUvc2VncmVzaXplLmMKCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX3VwZ3JhZGUvTWFrZWZpbGUgYi9zcmMvYmluL3BnX3VwZ3JhZGUvTWFrZWZpbGUKaW5kZXgg ZjgzZDJiNWQzMC4uNzA5MDhkNjNhMyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL01h a2VmaWxlCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9NYWtlZmlsZQpAQCAtMjEsNiArMjEsNyBA QCBPQkpTID0gXAogCWluZm8ubyBcCiAJb3B0aW9uLm8gXAogCXBhcmFsbGVsLm8gXAorCXNlZ3Jl c2l6ZS5vIFwKIAlwZ191cGdyYWRlLm8gXAogCXJlbGZpbGVudW1iZXIubyBcCiAJc2VydmVyLm8g XApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL21lc29uLmJ1aWxkIGIvc3JjL2Jpbi9w Z191cGdyYWRlL21lc29uLmJ1aWxkCmluZGV4IDNkODg0MTk2NzQuLjE2Zjg5OGJhMTQgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9tZXNvbi5idWlsZAorKysgYi9zcmMvYmluL3BnX3Vw Z3JhZGUvbWVzb24uYnVpbGQKQEAgLTEwLDYgKzEwLDcgQEAgcGdfdXBncmFkZV9zb3VyY2VzID0g ZmlsZXMoCiAgICdpbmZvLmMnLAogICAnb3B0aW9uLmMnLAogICAncGFyYWxsZWwuYycsCisgICdz ZWdyZXNpemUuYycsCiAgICdwZ191cGdyYWRlLmMnLAogICAncmVsZmlsZW51bWJlci5jJywKICAg J3NlcnZlci5jJywKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMg Yi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCmluZGV4IDY2MzIzNTgxNmYuLmQ5ZDhk MGVhNzggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMKKysrIGIv c3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYwpAQCAtNzUwLDcgKzc1MCwzMCBAQCBjb3B5 X3hhY3RfeGxvZ194aWQodm9pZCkKIAlpZiAob2xkX2NsdXN0ZXIuY29udHJvbGRhdGEuY2F0X3Zl ciA+PSBNVUxUSVhBQ1RfRk9STUFUQ0hBTkdFX0NBVF9WRVIgJiYKIAkJbmV3X2NsdXN0ZXIuY29u dHJvbGRhdGEuY2F0X3ZlciA+PSBNVUxUSVhBQ1RfRk9STUFUQ0hBTkdFX0NBVF9WRVIpCiAJewot CQljb3B5X3N1YmRpcl9maWxlcygicGdfbXVsdGl4YWN0L29mZnNldHMiLCAicGdfbXVsdGl4YWN0 L29mZnNldHMiKTsKKwkJLyoKKwkJICogSWYgdGhlIG9sZCBzZXJ2ZXIgaXMgYmVmb3JlIHRoZSBN VUxUSVhBQ1RPRkZTRVRfRk9STUFUQ0hBTkdFX0NBVF9WRVIKKwkJICogaXQgbXVzdCBoYXZlIDMy LWJpdCBtdWx0aXhpZCBvZmZzZXRzLCB0aHVzIGl0IHNob3VsZCBiZSBjb252ZXJ0ZWQuCisJCSAq LworCQlpZiAob2xkX2NsdXN0ZXIuY29udHJvbGRhdGEuY2F0X3ZlciA8IE1VTFRJWEFDVE9GRlNF VF9GT1JNQVRDSEFOR0VfQ0FUX1ZFUiAmJgorCQkJbmV3X2NsdXN0ZXIuY29udHJvbGRhdGEuY2F0 X3ZlciA+PSBNVUxUSVhBQ1RPRkZTRVRfRk9STUFUQ0hBTkdFX0NBVF9WRVIpCisJCXsKKwkJCXVp bnQ2NAlvbGRlc3Rfb2Zmc2V0ID0gY29udmVydF9tdWx0aXhhY3Rfb2Zmc2V0cygpOworCisJCQlp ZiAob2xkZXN0X29mZnNldCkKKwkJCXsKKwkJCQl1aW50NjQJbmV4dF9vZmZzZXQgPSBvbGRfY2x1 c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfbnh0bXhvZmY7CisKKwkJCQkvKiBIYW5kbGUgcG9zc2li bGUgd3JhcGFyb3VuZC4gKi8KKwkJCQlpZiAobmV4dF9vZmZzZXQgPCBvbGRlc3Rfb2Zmc2V0KQor CQkJCQluZXh0X29mZnNldCArPSAoKHVpbnQ2NCkgMSA8PCAzMikgLSAxOworCisJCQkJbmV4dF9v ZmZzZXQgLT0gb2xkZXN0X29mZnNldCAtIDE7CisJCQkJb2xkX2NsdXN0ZXIuY29udHJvbGRhdGEu Y2hrcG50X254dG14b2ZmID0gbmV4dF9vZmZzZXQ7CisJCQl9CisJCX0KKwkJZWxzZQorCQkJY29w eV9zdWJkaXJfZmlsZXMoInBnX211bHRpeGFjdC9vZmZzZXRzIiwgInBnX211bHRpeGFjdC9vZmZz ZXRzIik7CisKIAkJY29weV9zdWJkaXJfZmlsZXMoInBnX211bHRpeGFjdC9tZW1iZXJzIiwgInBn X211bHRpeGFjdC9tZW1iZXJzIik7CiAKIAkJcHJlcF9zdGF0dXMoIlNldHRpbmcgbmV4dCBtdWx0 aXhhY3QgSUQgYW5kIG9mZnNldCBmb3IgbmV3IGNsdXN0ZXIiKTsKQEAgLTc2MCw5ICs3ODMsOSBA QCBjb3B5X3hhY3RfeGxvZ194aWQodm9pZCkKIAkJICogY291bnRlcnMgaGVyZSBhbmQgdGhlIG9s ZGVzdCBtdWx0aSBwcmVzZW50IG9uIHN5c3RlbS4KIAkJICovCiAJCWV4ZWNfcHJvZyhVVElMSVRZ X0xPR19GSUxFLCBOVUxMLCB0cnVlLCB0cnVlLAotCQkJCSAgIlwiJXMvcGdfcmVzZXR3YWxcIiAt TyAldSAtbSAldSwldSBcIiVzXCIiLAorCQkJCSAgIlwiJXMvcGdfcmVzZXR3YWxcIiAtTyAlbGx1 IC1tICV1LCV1IFwiJXNcIiIsCiAJCQkJICBuZXdfY2x1c3Rlci5iaW5kaXIsCi0JCQkJICBvbGRf Y2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfbnh0bXhvZmYsCisJCQkJICAodW5zaWduZWQgbG9u ZyBsb25nKSBvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfbnh0bXhvZmYsCiAJCQkJICBv bGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfbnh0bXVsdGksCiAJCQkJICBvbGRfY2x1c3Rl ci5jb250cm9sZGF0YS5jaGtwbnRfb2xkc3RNdWx0aSwKIAkJCQkgIG5ld19jbHVzdGVyLnBnZGF0 YSk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oIGIvc3JjL2Jp bi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaAppbmRleCA1M2Y2OTNjMmQ0Li40ZDY1ZTQxMjVlIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCisrKyBiL3NyYy9iaW4v cGdfdXBncmFkZS9wZ191cGdyYWRlLmgKQEAgLTExNCw2ICsxMTQsMTMgQEAgZXh0ZXJuIGNoYXIg Km91dHB1dF9maWxlc1tdOwogICovCiAjZGVmaW5lIE1VTFRJWEFDVF9GT1JNQVRDSEFOR0VfQ0FU X1ZFUiAyMDEzMDEyMzEKIAorLyoKKyAqIFN3aWN0aCBmcm9tIDMyLWJpdCB0byA2NC1iaXQgZm9y IG11bHRpeGlkIG9mZnNldHMuCisgKgorICogWFhYOiBzaG91bGQgYmUgY2hhbmdlZCB0byB0aGUg YWN0dWFsIENBVEFMT0dfVkVSU0lPTl9OTyBvbiBjb21taXQuCisgKi8KKyNkZWZpbmUgTVVMVElY QUNUT0ZGU0VUX0ZPUk1BVENIQU5HRV9DQVRfVkVSIDIwMjQwOTA0MQorCiAvKgogICogbGFyZ2Ug b2JqZWN0IGNodW5rIHNpemUgYWRkZWQgdG8gcGdfY29udHJvbGRhdGEsCiAgKiBjb21taXQgNWY5 M2MzNzgwNWU3NDg1NDg4NDgwOTE2YjQ1ODVlMDk4ZDNjYzg4MwpAQCAtMjMwLDcgKzIzNyw3IEBA IHR5cGVkZWYgc3RydWN0CiAJdWludDMyCQljaGtwbnRfbnh0ZXBvY2g7CiAJdWludDMyCQljaGtw bnRfbnh0b2lkOwogCXVpbnQzMgkJY2hrcG50X254dG11bHRpOwotCXVpbnQzMgkJY2hrcG50X254 dG14b2ZmOworCXVpbnQ2NAkJY2hrcG50X254dG14b2ZmOwogCXVpbnQzMgkJY2hrcG50X29sZHN0 TXVsdGk7CiAJdWludDMyCQljaGtwbnRfb2xkc3R4aWQ7CiAJdWludDMyCQlhbGlnbjsKQEAgLTUx NSwzICs1MjIsNyBAQCB0eXBlZGVmIHN0cnVjdAogCUZJTEUJICAgKmZpbGU7CiAJY2hhcgkJcGF0 aFtNQVhQR1BBVEhdOwogfSBVcGdyYWRlVGFza1JlcG9ydDsKKworLyogc2VncmVzaXplLmMgKi8K KwordWludDY0CQljb252ZXJ0X211bHRpeGFjdF9vZmZzZXRzKHZvaWQpOwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ191cGdyYWRlL3NlZ3Jlc2l6ZS5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3NlZ3Jl c2l6ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmU0N2MwYTI0MDcK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvc2VncmVzaXplLmMKQEAgLTAs MCArMSwzNTAgQEAKKy8qCisgKglzZWdyZXNpemUuYworICoKKyAqCVNMUlUgc2VnbWVudCByZXNp emUgdXRpbGl0eQorICoKKyAqCUNvcHlyaWdodCAoYykgMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKKyAqCXNyYy9iaW4vcGdfdXBncmFkZS9zZWdyZXNpemUuYworICov CisKKyNpbmNsdWRlICJwb3N0Z3Jlc19mZS5oIgorCisjaW5jbHVkZSAicGdfdXBncmFkZS5oIgor I2luY2x1ZGUgImFjY2Vzcy9tdWx0aXhhY3QuaCIKKworLyogU2VlIHNscnUuaCAqLworI2RlZmlu ZSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UCQkzMgorCisvKgorICogU29tZSBraW5kIG9mIGl0ZXJh dG9yIGFzc29jaWF0ZWQgd2l0aCBhIHBhcnRpY3VsYXIgU0xSVSBzZWdtZW50LiAgVGhlIGlkZWEg aXMKKyAqIHRvIHNwZWNpZnkgdGhlIHNlZ21lbnQgYW5kIHBhZ2UgbnVtYmVyIGFuZCB0aGVuIG1v dmUgdGhyb3VnaCB0aGUgcGFnZXMuCisgKi8KK3R5cGVkZWYgc3RydWN0IFNscnVTZWdTdGF0ZQor eworCWNoYXIJICAgKmRpcjsKKwljaGFyCSAgICpmbjsKKwlGSUxFCSAgICpmaWxlOworCWludDY0 CQlzZWdubzsKKwl1aW50NjQJCXBhZ2VubzsKKwlib29sCQlsZWFkaW5nX2dhcDsKKwlib29sCQls b25nX3NlZ21lbnRfbmFtZXM7Cit9IFNscnVTZWdTdGF0ZTsKKworLyoKKyAqIEdldCBTTFJVIHNl Z21lbiBmaWxlIG5hbWUgZnJvbSBzdGF0ZS4KKyAqCisgKiBOT1RFOiB0aGlzIGZ1bmN0aW9uIHNo b3VsZCBtaXJyb3IgU2xydUZpbGVOYW1lIGNhbGwuCisgKi8KK3N0YXRpYyBpbmxpbmUgY2hhciAq CitTbHJ1RmlsZU5hbWUoU2xydVNlZ1N0YXRlICpzdGF0ZSkKK3sKKwlpZiAoc3RhdGUtPmxvbmdf c2VnbWVudF9uYW1lcykKKwl7CisJCUFzc2VydChzdGF0ZS0+c2Vnbm8gPj0gMCAmJgorCQkJICAg c3RhdGUtPnNlZ25vIDw9IElOVDY0Q09OU1QoMHhGRkZGRkZGRkZGRkZGRkYpKTsKKwkJcmV0dXJu IHBzcHJpbnRmKCIlcy8lMDE1bGxYIiwgc3RhdGUtPmRpciwgKGxvbmcgbG9uZykgc3RhdGUtPnNl Z25vKTsKKwl9CisJZWxzZQorCXsKKwkJQXNzZXJ0KHN0YXRlLT5zZWdubyA+PSAwICYmCisJCQkg ICBzdGF0ZS0+c2Vnbm8gPD0gSU5UNjRDT05TVCgweEZGRkZGRikpOworCQlyZXR1cm4gcHNwcmlu dGYoIiVzLyUwNFgiLCBzdGF0ZS0+ZGlyLCAodW5zaWduZWQgaW50KSBzdGF0ZS0+c2Vnbm8pOwor CX0KK30KKworLyoKKyAqIENyZWF0ZSBTTFJVIHNlZ21lbnQgZmlsZS4KKyAqLworc3RhdGljIHZv aWQKK2NyZWF0ZV9zZWdtZW50KFNscnVTZWdTdGF0ZSAqc3RhdGUpCit7CisJQXNzZXJ0KHN0YXRl LT5mbiA9PSBOVUxMKTsKKwlBc3NlcnQoc3RhdGUtPmZpbGUgPT0gTlVMTCk7CisKKwlzdGF0ZS0+ Zm4gPSBTbHJ1RmlsZU5hbWUoc3RhdGUpOworCXN0YXRlLT5maWxlID0gZm9wZW4oc3RhdGUtPmZu LCAid2IiKTsKKwlpZiAoIXN0YXRlLT5maWxlKQorCQlwZ19mYXRhbCgiY291bGQgbm90IGNyZWF0 ZSBmaWxlIFwiJXNcIjogJW0iLCBzdGF0ZS0+Zm4pOworfQorCisvKgorICogT3BlbiBleGlzdGlu ZyBTTFJVIHNlZ21lbnQgZmlsZS4KKyAqLworc3RhdGljIHZvaWQKK29wZW5fc2VnbWVudChTbHJ1 U2VnU3RhdGUgKnN0YXRlKQoreworCUFzc2VydChzdGF0ZS0+Zm4gPT0gTlVMTCk7CisJQXNzZXJ0 KHN0YXRlLT5maWxlID09IE5VTEwpOworCisJc3RhdGUtPmZuID0gU2xydUZpbGVOYW1lKHN0YXRl KTsKKwlzdGF0ZS0+ZmlsZSA9IGZvcGVuKHN0YXRlLT5mbiwgInJiIik7CisJaWYgKCFzdGF0ZS0+ ZmlsZSkKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiOiAlbSIsIHN0YXRl LT5mbik7Cit9CisKKy8qCisgKiBDbG9zZSBTTFJVIHNlZ21lbnQgZmlsZS4KKyAqLworc3RhdGlj IHZvaWQKK2Nsb3NlX3NlZ21lbnQoU2xydVNlZ1N0YXRlICpzdGF0ZSkKK3sKKwlpZiAoc3RhdGUt PmZpbGUpCisJeworCQlmY2xvc2Uoc3RhdGUtPmZpbGUpOworCQlzdGF0ZS0+ZmlsZSA9IE5VTEw7 CisJfQorCisJaWYgKHN0YXRlLT5mbikKKwl7CisJCXBmcmVlKHN0YXRlLT5mbik7CisJCXN0YXRl LT5mbiA9IE5VTEw7CisJfQorfQorCisvKgorICogUmVhZCBuZXh0IHBhZ2UgZnJvbSB0aGUgb2xk IDMyLWJpdCBvZmZzZXQgc2VnbWVudCBmaWxlLgorICovCitzdGF0aWMgaW50CityZWFkX29sZF9z ZWdtZW50X3BhZ2UoU2xydVNlZ1N0YXRlICpzdGF0ZSwgdm9pZCAqYnVmLCBib29sICplbXB0eSkK K3sKKwlpbnQJCWxlbjsKKworCS8qIE9wZW4gbmV4dCBzZWdtZW50IGZpbGUsIGlmIG5lZWRlZC4g Ki8KKwlpZiAoIXN0YXRlLT5mbikKKwl7CisJCWlmICghc3RhdGUtPnNlZ25vKQorCQkJc3RhdGUt PmxlYWRpbmdfZ2FwID0gdHJ1ZTsKKworCQlvcGVuX3NlZ21lbnQoc3RhdGUpOworCisJCS8qIFNl dCBwb3NpdGlvbiB0byB0aGUgbmVlZGVkIHBhZ2UuICovCisJCWlmIChzdGF0ZS0+cGFnZW5vID4g MCAmJgorCQkJZnNlZWsoc3RhdGUtPmZpbGUsIHN0YXRlLT5wYWdlbm8gKiBCTENLU1osIFNFRUtf U0VUKSkKKwkJeworCQkJY2xvc2Vfc2VnbWVudChzdGF0ZSk7CisJCX0KKwl9CisKKwlpZiAoc3Rh dGUtPmZpbGUpCisJeworCQkvKiBTZWdtZW50IGZpbGUgZG8gZXhpc3RzLCByZWFkIHBhZ2UgZnJv bSBpdC4gKi8KKwkJc3RhdGUtPmxlYWRpbmdfZ2FwID0gZmFsc2U7CisKKwkJbGVuID0gZnJlYWQo YnVmLCBzaXplb2YoY2hhciksIEJMQ0tTWiwgc3RhdGUtPmZpbGUpOworCisJCS8qIEFyZSB3ZSBk b25lIG9yIHdhcyB0aGVyZSBhbiBlcnJvcj8gKi8KKwkJaWYgKGxlbiA8PSAwKQorCQl7CisJCQlp ZiAoZmVycm9yKHN0YXRlLT5maWxlKSkKKwkJCQlwZ19mYXRhbCgiZXJyb3IgcmVhZGluZyBmaWxl IFwiJXNcIjogJW0iLCBzdGF0ZS0+Zm4pOworCisJCQlpZiAoZmVvZihzdGF0ZS0+ZmlsZSkpCisJ CQl7CisJCQkJKmVtcHR5ID0gdHJ1ZTsKKwkJCQlsZW4gPSAtMTsKKworCQkJCWNsb3NlX3NlZ21l bnQoc3RhdGUpOworCQkJfQorCQl9CisJCWVsc2UKKwkJCSplbXB0eSA9IGZhbHNlOworCX0KKwll bHNlIGlmICghc3RhdGUtPmxlYWRpbmdfZ2FwKQorCXsKKwkJLyogV2UgcmVhY2hlZCB0aGUgbGFz dCBzZWdtZW50LiAqLworCQlsZW4gPSAtMTsKKwkJKmVtcHR5ID0gdHJ1ZTsKKwl9CisJZWxzZQor CXsKKwkJLyogU2tpcCBmZXcgZmlyc3Qgc2VnbWVudHMgaWYgdGhleSB3ZXJlIGZyb3plbiBhbmQg cmVtb3ZlZC4gKi8KKwkJbGVuID0gQkxDS1NaOworCQkqZW1wdHkgPSB0cnVlOworCX0KKworCWlm ICgrK3N0YXRlLT5wYWdlbm8gPj0gU0xSVV9QQUdFU19QRVJfU0VHTUVOVCkKKwl7CisJCS8qIFN0 YXJ0IGEgbmV3IHNlZ21lbnQuICovCisJCXN0YXRlLT5zZWdubysrOworCQlzdGF0ZS0+cGFnZW5v ID0gMDsKKworCQljbG9zZV9zZWdtZW50KHN0YXRlKTsKKwl9CisKKwlyZXR1cm4gbGVuOworfQor CisvKgorICogV3JpdGUgbmV4dCBwYWdlIHRvIHRoZSBuZXcgNjQtYml0IG9mZnNldCBzZWdtZW50 IGZpbGUuCisgKi8KK3N0YXRpYyB2b2lkCit3cml0ZV9uZXdfc2VnbWVudF9wYWdlKFNscnVTZWdT dGF0ZSAqc3RhdGUsIHZvaWQgKmJ1ZikKK3sKKwkvKgorCSAqIENyZWF0ZSBhIG5ldyBzZWdtZW50 IGZpbGUgaWYgd2Ugc3RpbGwgZGlkbid0LiAgQ3JlYXRpb24gaXMKKwkgKiBwb3N0cG9uZWQgdW50 aWwgdGhlIGZpcnN0IG5vbi1lbXB0eSBwYWdlIGlzIGZvdW5kLiAgVGhpcyBoZWxwcworCSAqIG5v dCB0byBjcmVhdGUgY29tcGxldGVseSBlbXB0eSBzZWdtZW50cy4KKwkgKi8KKwlpZiAoIXN0YXRl LT5maWxlKQorCXsKKwkJY3JlYXRlX3NlZ21lbnQoc3RhdGUpOworCisJCS8qIFdyaXRlIHplcm9l cyB0byB0aGUgcHJldmlvdXNseSBza2lwcGVkIHByZWZpeC4gKi8KKwkJaWYgKHN0YXRlLT5wYWdl bm8gPiAwKQorCQl7CisJCQljaGFyCQl6ZXJvYnVmW0JMQ0tTWl0gPSB7MH07CisKKwkJCWZvciAo aW50NjQgaSA9IDA7IGkgPCBzdGF0ZS0+cGFnZW5vOyBpKyspCisJCQl7CisJCQkJaWYgKGZ3cml0 ZSh6ZXJvYnVmLCBzaXplb2YoY2hhciksIEJMQ0tTWiwgc3RhdGUtPmZpbGUpICE9IEJMQ0tTWikK KwkJCQkJcGdfZmF0YWwoImNvdWxkIG5vdCB3cml0ZSBmaWxlIFwiJXNcIjogJW0iLCBzdGF0ZS0+ Zm4pOworCQkJfQorCQl9CisJfQorCisJLyogV3JpdGUgcGFnZSB0byB0aGUgbmV3IHNlZ21lbnQg KGlmIGl0IHdhcyBjcmVhdGVkKS4gKi8KKwlpZiAoc3RhdGUtPmZpbGUpCisJeworCQlpZiAoZndy aXRlKGJ1Ziwgc2l6ZW9mKGNoYXIpLCBCTENLU1osIHN0YXRlLT5maWxlKSAhPSBCTENLU1opCisJ CQlwZ19mYXRhbCgiY291bGQgbm90IHdyaXRlIGZpbGUgXCIlc1wiOiAlbSIsIHN0YXRlLT5mbik7 CisJfQorCisJc3RhdGUtPnBhZ2VubysrOworCisJLyoKKwkgKiBEaWQgd2UgcmVhY2ggdGhlIG1h eGltdW0gcGFnZSBudW1iZXI/ICBUaGVuIGNsb3NlIHNlZ21lbnQgZmlsZQorCSAqIGFuZCBjcmVh dGUgYSBuZXcgb25lIG9uIHRoZSBuZXh0IGl0ZXJhdGlvbi4KKwkgKi8KKwlpZiAoc3RhdGUtPnBh Z2VubyA+PSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UKQorCXsKKwkJc3RhdGUtPnNlZ25vKys7CisJ CXN0YXRlLT5wYWdlbm8gPSAwOworCQljbG9zZV9zZWdtZW50KHN0YXRlKTsKKwl9Cit9CisKKy8q CisgKiBDb252ZXJ0IHBnX211bHRpeGFjdC9vZmZzZXRzIHNlZ21lbnRzIGFuZCByZXR1cm4gb2xk ZXN0IG11bHRpIG9mZnNldC4KKyAqLwordWludDY0Citjb252ZXJ0X211bHRpeGFjdF9vZmZzZXRz KHZvaWQpCit7CisJLyogU2VlIG11bHRpeGFjdC5jICovCisjZGVmaW5lIE1VTFRJWEFDVF9PRkZT RVRTX1BFUl9QQUdFX09MRAkoQkxDS1NaIC8gc2l6ZW9mKHVpbnQzMikpCisjZGVmaW5lIE1VTFRJ WEFDVF9PRkZTRVRTX1BFUl9QQUdFCQkoQkxDS1NaIC8gc2l6ZW9mKE11bHRpWGFjdE9mZnNldCkp CisKKwlTbHJ1U2VnU3RhdGUJb2xkc2VnID0gezB9LAorCQkJCQluZXdzZWcgPSB7MH07CisJdWlu dDMyCQkJb2xkYnVmW01VTFRJWEFDVF9PRkZTRVRTX1BFUl9QQUdFX09MRF0gPSB7MH07CisJTXVs dGlYYWN0T2Zmc2V0CW5ld2J1ZltNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRV0gPSB7MH07CisJ LyoKKwkgKiBJdCBpcyBtdWNoIGVhc2llciB0byBkZWFsIHdpdGggbXVsdGkgd3JhcGFyb3VuZCBp biA2NCBiaXRkIGZvcm1hdC4gIFRodXMKKwkgKiB3ZSB1c2UgNjQgYml0cyBmb3IgbXVsdGktdHJh bnNhY3Rpb25zLCBhbHRob3VnaCB0aGV5IHJlbWFpbiAzMiBiaXRzLgorCSAqLworCXVpbnQ2NAkJ CW9sZGVzdF9tdWx0aSA9IG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9vbGRzdE11bHRp LAorCQkJCQluZXh0X211bHRpID0gb2xkX2NsdXN0ZXIuY29udHJvbGRhdGEuY2hrcG50X254dG11 bHRpLAorCQkJCQltdWx0aSwKKwkJCQkJb2xkX2VudHJ5LAorCQkJCQluZXdfZW50cnk7CisJYm9v bAkJCWZvdW5kID0gZmFsc2U7CisJdWludDY0CQkJb2xkZXN0X29mZnNldCA9IDA7CisKKwlwcmVw X3N0YXR1cygiQ29udmVydGluZyBwZ19tdWx0aXhhY3Qvb2Zmc2V0cyB0byA2NC1iaXQiKTsKKwor CW9sZHNlZy5wYWdlbm8gPSBvbGRlc3RfbXVsdGkgLyBNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFH RV9PTEQ7CisJb2xkc2VnLnNlZ25vID0gb2xkc2VnLnBhZ2VubyAvIFNMUlVfUEFHRVNfUEVSX1NF R01FTlQ7CisJb2xkc2VnLnBhZ2VubyAlPSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UOworCW9sZHNl Zy5kaXIgPSBwc3ByaW50ZigiJXMvcGdfbXVsdGl4YWN0L29mZnNldHMiLCBvbGRfY2x1c3Rlci5w Z2RhdGEpOworCW9sZHNlZy5sb25nX3NlZ21lbnRfbmFtZXMgPSBmYWxzZTsJCS8qIG9sZCBmb3Jt YXQgWFhYWCAqLworCisJbmV3c2VnLnBhZ2VubyA9IG9sZGVzdF9tdWx0aSAvIE1VTFRJWEFDVF9P RkZTRVRTX1BFUl9QQUdFOworCW5ld3NlZy5zZWdubyA9IG5ld3NlZy5wYWdlbm8gLyBTTFJVX1BB R0VTX1BFUl9TRUdNRU5UOworCW5ld3NlZy5wYWdlbm8gJT0gU0xSVV9QQUdFU19QRVJfU0VHTUVO VDsKKwluZXdzZWcuZGlyID0gcHNwcmludGYoIiVzL3BnX211bHRpeGFjdC9vZmZzZXRzIiwgbmV3 X2NsdXN0ZXIucGdkYXRhKTsKKwluZXdzZWcubG9uZ19zZWdtZW50X25hbWVzID0gdHJ1ZTsKKwor CW9sZF9lbnRyeSA9IG9sZGVzdF9tdWx0aSAlIE1VTFRJWEFDVF9PRkZTRVRTX1BFUl9QQUdFX09M RDsKKwluZXdfZW50cnkgPSBvbGRlc3RfbXVsdGkgJSBNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFH RTsKKworCWlmIChuZXh0X211bHRpIDwgb2xkZXN0X211bHRpKQorCQluZXh0X211bHRpICs9ICh1 aW50NjQpIDEgPDwgMzI7CQkvKiB3cmFwYXJvdW5kICovCisKKwlmb3IgKG11bHRpID0gb2xkZXN0 X211bHRpOyBtdWx0aSA8IG5leHRfbXVsdGk7IG9sZF9lbnRyeSA9IDApCisJeworCQlpbnQJCQlv bGRsZW47CisJCWJvb2wJCWVtcHR5OworCisJCS8qIEhhbmRsZSBwb3NzaWJsZSBzZWdtZW50IHdy YXBhcm91bmQuICovCisJCWlmIChvbGRzZWcuc2Vnbm8gPiBNYXhNdWx0aVhhY3RJZCAvCisJCQkJ CQkJCU1VTFRJWEFDVF9PRkZTRVRTX1BFUl9QQUdFX09MRCAvCisJCQkJCQkJCVNMUlVfUEFHRVNf UEVSX1NFR01FTlQpCisJCQlvbGRzZWcuc2Vnbm8gPSAwOworCisJCS8qIFJlYWQgb2xkIG9mZnNl dCBzZWdtZW50LiAqLworCQlvbGRsZW4gPSByZWFkX29sZF9zZWdtZW50X3BhZ2UoJm9sZHNlZywg b2xkYnVmLCAmZW1wdHkpOworCQlpZiAob2xkbGVuIDw9IDAgfHwgZW1wdHkpCisJCQlwZ19mYXRh bCgiY2Fubm90IHJlYWQgcGFnZSAlbGx1IGZyb20gZmlsZSBcIiVzXCI6ICVtIiwKKwkJCQkJICh1 bnNpZ25lZCBsb25nIGxvbmcpIG9sZHNlZy5wYWdlbm8sIG9sZHNlZy5mbik7CisKKwkJLyogRmls bCBwb3NzaWJsZSBnYXAuICovCisJCWlmIChvbGRsZW4gPCBCTENLU1opCisJCQltZW1zZXQoKGNo YXIgKikgb2xkYnVmICsgb2xkbGVuLCAwLCBCTENLU1ogLSBvbGRsZW4pOworCisJCS8qIFNhdmUg b2xkZXN0IG11bHRpIG9mZnNldCAqLworCQlpZiAoIWZvdW5kKQorCQl7CisJCQlvbGRlc3Rfb2Zm c2V0ID0gb2xkYnVmW29sZF9lbnRyeV07CisJCQlmb3VuZCA9IHRydWU7CisJCX0KKworCQkvKiAu Li4gc2tpcCB3cmFwcGVkLWFyb3VuZCBpbnZhbGlkIG11bHRpICovCisJCWlmIChtdWx0aSA9PSAo dWludDY0KSAxIDw8IDMyKQorCQl7CisJCQlBc3NlcnQob2xkc2VnLnNlZ25vID09IDApOworCQkJ QXNzZXJ0KG9sZHNlZy5wYWdlbm8gPT0gMSk7CisJCQlBc3NlcnQob2xkX2VudHJ5ID09IDApOwor CisJCQltdWx0aSArPSBGaXJzdE11bHRpWGFjdElkOworCQkJb2xkX2VudHJ5ID0gRmlyc3RNdWx0 aVhhY3RJZDsKKwkJfQorCisJCS8qIENvcHkgZW50cmllcyB0byB0aGUgbmV3IHBhZ2UuICovCisJ CWZvciAoOyBtdWx0aSA8IG5leHRfbXVsdGkgJiYgb2xkX2VudHJ5IDwgTVVMVElYQUNUX09GRlNF VFNfUEVSX1BBR0VfT0xEOworCQkJIG11bHRpKyssIG9sZF9lbnRyeSsrKQorCQl7CisJCQlNdWx0 aVhhY3RPZmZzZXQgb2Zmc2V0ID0gb2xkYnVmW29sZF9lbnRyeV07CisKKwkJCS8qIEhhbmRsZSBw b3NzaWJsZSBvZmZzZXQgd3JhcGFyb3VuZC4gKi8KKwkJCWlmIChvZmZzZXQgPCBvbGRlc3Rfb2Zm c2V0KQorCQkJCW9mZnNldCArPSAoKHVpbnQ2NCkgMSA8PCAzMikgLSAxOworCisJCQkvKiBTdWJ0 cmFjdCBvbGRlc3Rfb2Zmc2V0LCBzbyBuZXcgb2Zmc2V0cyB3aWxsIHN0YXJ0IGZyb20gMS4gKi8K KwkJCW5ld2J1ZltuZXdfZW50cnkrK10gPSBvZmZzZXQgLSBvbGRlc3Rfb2Zmc2V0ICsgMTsKKwkJ CWlmIChuZXdfZW50cnkgPj0gTVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0UpCisJCQl7CisJCQkJ LyogV3JpdGUgYSBuZXcgcGFnZS4gKi8KKwkJCQl3cml0ZV9uZXdfc2VnbWVudF9wYWdlKCZuZXdz ZWcsIG5ld2J1Zik7CisJCQkJbmV3X2VudHJ5ID0gMDsKKwkJCX0KKwkJfQorCX0KKworCS8qIFdy aXRlIHRoZSBsYXN0IGluY29tcGxldGUgcGFnZS4gKi8KKwlpZiAobmV3X2VudHJ5ID4gMCB8fCBv bGRlc3RfbXVsdGkgPT0gbmV4dF9tdWx0aSkKKwl7CisJCW1lbXNldCgmbmV3YnVmW25ld19lbnRy eV0sIDAsCisJCQkgICBzaXplb2YobmV3YnVmWzBdKSAqIChNVUxUSVhBQ1RfT0ZGU0VUU19QRVJf UEFHRSAtIG5ld19lbnRyeSkpOworCQl3cml0ZV9uZXdfc2VnbWVudF9wYWdlKCZuZXdzZWcsIG5l d2J1Zik7CisJfQorCisJLyogUmVsZWFzZSByZXNvdXJjZXMuICovCisJY2xvc2Vfc2VnbWVudCgm b2xkc2VnKTsKKwljbG9zZV9zZWdtZW50KCZuZXdzZWcpOworCisJcGZyZWUob2xkc2VnLmRpcik7 CisJcGZyZWUobmV3c2VnLmRpcik7CisKKwljaGVja19vaygpOworCisJcmV0dXJuIG9sZGVzdF9v ZmZzZXQ7Cit9Ci0tIAoyLjQzLjAKCg== --0000000000009eaf2c062526e98e Content-Type: application/octet-stream; name="v5-0004-Get-rid-of-MultiXactMemberFreezeThreshold-call.patch" Content-Disposition: attachment; filename="v5-0004-Get-rid-of-MultiXactMemberFreezeThreshold-call.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m2m21r4l3 RnJvbSA5NWM0NjEzMDkyZTQ4ODRmYjIxNjI2MjRjNGZiMWRjZjVmOTRjNmY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMjMgT2N0IDIwMjQgMTg6MjM6MzkgKzAzMDAKU3ViamVjdDogW1BBVENIIHY1IDQvNF0g R2V0IHJpZCBvZiBNdWx0aVhhY3RNZW1iZXJGcmVlemVUaHJlc2hvbGQgY2FsbC4KClNpbmNlIE1h eE11bHRpWGFjdE9mZnNldCBhcmUgVUlOVDY0X01BWCBub3csIE1VTFRJWEFDVF9NRU1CRVJfU0FG RV9USFJFU0hPTEQgYW5kCk1VTFRJWEFDVF9NRU1CRVJfREFOR0VSX1RIUkVTSE9MRCB2YWx1ZXMg YXJlIG5vdCBtZWFuaW5nZnVsIGFueSBtb3JlLiBUaHVzLApNdWx0aVhhY3RNZW1iZXJGcmVlemVU aHJlc2hvbGQgaXMgbm90IG5lZWRlZCB0b28uCgpJbnN0ZWFkLCBzd2l0Y2ggdG8gTVVMVElYQUNU X01FTUJFUl9BVVRPVkFDX1RIUkVTSE9MRCAoZXEgMl4zMikgbWVtYmVycwp0aHJlc2hvbGQuIEl0 IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHdlIG5lZWQgdG8gZm9yY2UgYXV0b3ZhY3V1bSBvciBu b3QuCgpBdXRob3I6IE1heGltIE9ybG92IDxvcmxvdm1nQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYyB8IDExNiArKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYyAgICAgICAgICB8ICAgMiArLQog c3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMgICAgfCAgIDQgKy0KIHNyYy9pbmNs dWRlL2FjY2Vzcy9tdWx0aXhhY3QuaCAgICAgICAgIHwgICAxIC0KIDQgZmlsZXMgY2hhbmdlZCwg MTQgaW5zZXJ0aW9ucygrKSwgMTA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0vbXVsdGl4YWN0LmMKaW5kZXggYzUxZTAzZTgzMi4uN2YxMjIxNzMwOSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKQEAgLTIwNCwxMCArMjA0LDEzIEBAIE1YT2Zmc2V0 VG9NZW1iZXJPZmZzZXQoTXVsdGlYYWN0T2Zmc2V0IG9mZnNldCkKIAkJbWVtYmVyX2luX2dyb3Vw ICogc2l6ZW9mKFRyYW5zYWN0aW9uSWQpOwogfQogCi0vKiBNdWx0aXhhY3QgbWVtYmVycyB3cmFw YXJvdW5kIHRocmVzaG9sZHMuICovCi0jZGVmaW5lIE1VTFRJWEFDVF9NRU1CRVJfU0FGRV9USFJF U0hPTEQJCShNYXhNdWx0aVhhY3RPZmZzZXQgLyAyKQotI2RlZmluZSBNVUxUSVhBQ1RfTUVNQkVS X0RBTkdFUl9USFJFU0hPTEQJXAotCShNYXhNdWx0aVhhY3RPZmZzZXQgLSBNYXhNdWx0aVhhY3RP ZmZzZXQgLyA0KQorLyoKKyAqIE11bHRpeGFjdCBtZW1iZXJzIHdhcm5pbmcgdGhyZXNob2xkLgor ICoKKyAqIElmIGRpZmZlcmVuY2UgYmV0dHdlZW4gbmV4dE9mZnNldCBhbmQgb2xkZXN0T2Zmc2V0 IGV4Y2VlZCB0aGlzIHZhbHVlLCB3ZQorICogdHJpZ2dlciBhdXRvdmFjdXVtIGluIG9yZGVyIHRv IHJlbGVhc2UgdGhlIGRpc2sgc3BhY2UgaWYgcG9zc2libGUuCisgKi8KKyNkZWZpbmUgTVVMVElY QUNUX01FTUJFUl9BVVRPVkFDX1RIUkVTSE9MRAkJVUlOVDY0Q09OU1QoMHhGRkZGRkZGRikKIAog c3RhdGljIGlubGluZSBNdWx0aVhhY3RJZAogUHJldmlvdXNNdWx0aVhhY3RJZChNdWx0aVhhY3RJ ZCBtdWx0aSkKQEAgLTI2MTYsMTUgKzI2MTksMTMgQEAgR2V0T2xkZXN0TXVsdGlYYWN0SWQodm9p ZCkKIH0KIAogLyoKLSAqIERldGVybWluZSBob3cgYWdncmVzc2l2ZWx5IHdlIG5lZWQgdG8gdmFj dXVtIGluIG9yZGVyIHRvIHByZXZlbnQgbWVtYmVyCi0gKiB3cmFwYXJvdW5kLgorICogRGV0ZXJt aW5lIGlmIHdlIG5lZWQgdG8gdmFjdXVtIGZvciBtZW1iZXIgb3Igbm90LgogICoKICAqIFRvIGRv IHNvIGRldGVybWluZSB3aGF0J3MgdGhlIG9sZGVzdCBtZW1iZXIgb2Zmc2V0IGFuZCBpbnN0YWxs IHRoZSBsaW1pdAogICogaW5mbyBpbiBNdWx0aVhhY3RTdGF0ZSwgd2hlcmUgaXQgY2FuIGJlIHVz ZWQgdG8gcHJldmVudCBvdmVycnVuIG9mIG9sZCBkYXRhCiAgKiBpbiB0aGUgbWVtYmVycyBTTFJV IGFyZWEuCiAgKgotICogVGhlIHJldHVybiB2YWx1ZSBpcyB0cnVlIGlmIGVtZXJnZW5jeSBhdXRv dmFjdXVtIGlzIHJlcXVpcmVkIGFuZCBmYWxzZQotICogb3RoZXJ3aXNlLgorICogVGhlIHJldHVy biB2YWx1ZSBpcyB0cnVlIGlmIGF1dG92YWN1dW0gaXMgcmVxdWlyZWQgYW5kIGZhbHNlIG90aGVy d2lzZS4KICAqLwogc3RhdGljIGJvb2wKIFNldE9mZnNldFZhY3V1bUxpbWl0KGJvb2wgaXNfc3Rh cnR1cCkKQEAgLTI3MTIsMTAgKzI3MTMsMTAgQEAgU2V0T2Zmc2V0VmFjdXVtTGltaXQoYm9vbCBp c19zdGFydHVwKQogCUxXTG9ja1JlbGVhc2UoTXVsdGlYYWN0R2VuTG9jayk7CiAKIAkvKgotCSAq IERvIHdlIG5lZWQgYW4gZW1lcmdlbmN5IGF1dG92YWN1dW0/CUlmIHdlJ3JlIG5vdCBzdXJlLCBh c3N1bWUgeWVzLgorCSAqIERvIHdlIG5lZWQgYXV0b3ZhY3V1bT8JSWYgd2UncmUgbm90IHN1cmUs IGFzc3VtZSB5ZXMuCiAJICovCiAJcmV0dXJuICFvbGRlc3RPZmZzZXRLbm93biB8fAotCQkobmV4 dE9mZnNldCAtIG9sZGVzdE9mZnNldCA+IE1VTFRJWEFDVF9NRU1CRVJfU0FGRV9USFJFU0hPTEQp OworCQkobmV4dE9mZnNldCAtIG9sZGVzdE9mZnNldCA+IE1VTFRJWEFDVF9NRU1CRVJfQVVUT1ZB Q19USFJFU0hPTEQpOwogfQogCiAvKgpAQCAtMjc2MSwxMDEgKzI3NjIsNiBAQCBmaW5kX211bHRp eGFjdF9zdGFydChNdWx0aVhhY3RJZCBtdWx0aSwgTXVsdGlYYWN0T2Zmc2V0ICpyZXN1bHQpCiAJ cmV0dXJuIHRydWU7CiB9CiAKLS8qCi0gKiBEZXRlcm1pbmUgaG93IG1hbnkgbXVsdGl4YWN0cywg YW5kIGhvdyBtYW55IG11bHRpeGFjdCBtZW1iZXJzLCBjdXJyZW50bHkKLSAqIGV4aXN0LiAgUmV0 dXJuIGZhbHNlIGlmIHVuYWJsZSB0byBkZXRlcm1pbmUuCi0gKi8KLXN0YXRpYyBib29sCi1SZWFk TXVsdGlYYWN0Q291bnRzKHVpbnQzMiAqbXVsdGl4YWN0cywgTXVsdGlYYWN0T2Zmc2V0ICptZW1i ZXJzKQotewotCU11bHRpWGFjdE9mZnNldCBuZXh0T2Zmc2V0OwotCU11bHRpWGFjdE9mZnNldCBv bGRlc3RPZmZzZXQ7Ci0JTXVsdGlYYWN0SWQgb2xkZXN0TXVsdGlYYWN0SWQ7Ci0JTXVsdGlYYWN0 SWQgbmV4dE11bHRpWGFjdElkOwotCWJvb2wJCW9sZGVzdE9mZnNldEtub3duOwotCi0JTFdMb2Nr QWNxdWlyZShNdWx0aVhhY3RHZW5Mb2NrLCBMV19TSEFSRUQpOwotCW5leHRPZmZzZXQgPSBNdWx0 aVhhY3RTdGF0ZS0+bmV4dE9mZnNldDsKLQlvbGRlc3RNdWx0aVhhY3RJZCA9IE11bHRpWGFjdFN0 YXRlLT5vbGRlc3RNdWx0aVhhY3RJZDsKLQluZXh0TXVsdGlYYWN0SWQgPSBNdWx0aVhhY3RTdGF0 ZS0+bmV4dE1YYWN0OwotCW9sZGVzdE9mZnNldCA9IE11bHRpWGFjdFN0YXRlLT5vbGRlc3RPZmZz ZXQ7Ci0Jb2xkZXN0T2Zmc2V0S25vd24gPSBNdWx0aVhhY3RTdGF0ZS0+b2xkZXN0T2Zmc2V0S25v d247Ci0JTFdMb2NrUmVsZWFzZShNdWx0aVhhY3RHZW5Mb2NrKTsKLQotCWlmICghb2xkZXN0T2Zm c2V0S25vd24pCi0JCXJldHVybiBmYWxzZTsKLQotCSptZW1iZXJzID0gbmV4dE9mZnNldCAtIG9s ZGVzdE9mZnNldDsKLQkqbXVsdGl4YWN0cyA9IG5leHRNdWx0aVhhY3RJZCAtIG9sZGVzdE11bHRp WGFjdElkOwotCXJldHVybiB0cnVlOwotfQotCi0vKgotICogTXVsdGl4YWN0IG1lbWJlcnMgY2Fu IGJlIHJlbW92ZWQgb25jZSB0aGUgbXVsdGl4YWN0cyB0aGF0IHJlZmVyIHRvIHRoZW0KLSAqIGFy ZSBvbGRlciB0aGFuIGV2ZXJ5IGRhdG1pbm14aWQuICBhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVl emVfbWF4X2FnZSBhbmQKLSAqIHZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX3RhYmxlX2FnZSB3b3Jr IHRvZ2V0aGVyIHRvIG1ha2Ugc3VyZSB3ZSBuZXZlciBoYXZlCi0gKiB0b28gbWFueSBtdWx0aXhh Y3RzOyB3ZSBob3BlIHRoYXQsIGF0IGxlYXN0IHVuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzLAot ICogdGhpcyB3aWxsIGFsc28gYmUgc3VmZmljaWVudCB0byBrZWVwIHVzIGZyb20gdXNpbmcgdG9v IG1hbnkgb2Zmc2V0cy4KLSAqIEhvd2V2ZXIsIGlmIHRoZSBhdmVyYWdlIG11bHRpeGFjdCBoYXMg bWFueSBtZW1iZXJzLCB3ZSBtaWdodCBleGhhdXN0IHRoZQotICogbWVtYmVycyBzcGFjZSB3aGls ZSBzdGlsbCB1c2luZyBmZXcgZW5vdWdoIG1lbWJlcnMgdGhhdCB0aGVzZSBsaW1pdHMgZmFpbAot ICogdG8gdHJpZ2dlciByZWxtaW5teGlkIGFkdmFuY2VtZW50IGJ5IFZBQ1VVTS4gIEF0IHRoYXQg cG9pbnQsIHdlJ2QgaGF2ZSBubwotICogY2hvaWNlIGJ1dCB0byBzdGFydCBmYWlsaW5nIG11bHRp eGFjdC1jcmVhdGluZyBvcGVyYXRpb25zIHdpdGggYW4gZXJyb3IuCi0gKgotICogVG8gcHJldmVu dCB0aGF0LCBpZiBtb3JlIHRoYW4gYSB0aHJlc2hvbGQgcG9ydGlvbiBvZiB0aGUgbWVtYmVycyBz cGFjZSBpcwotICogdXNlZCwgd2UgZWZmZWN0aXZlbHkgcmVkdWNlIGF1dG92YWN1dW1fbXVsdGl4 YWN0X2ZyZWV6ZV9tYXhfYWdlIGFuZAotICogdG8gYSB2YWx1ZSBqdXN0IGxlc3MgdGhhbiB0aGUg bnVtYmVyIG9mIG11bHRpeGFjdHMgaW4gdXNlLiAgV2UgaG9wZSB0aGF0Ci0gKiB0aGlzIHdpbGwg cXVpY2tseSB0cmlnZ2VyIGF1dG92YWN1dW1pbmcgb24gdGhlIHRhYmxlIG9yIHRhYmxlcyB3aXRo IHRoZQotICogb2xkZXN0IHJlbG1pbm14aWQsIHRodXMgYWxsb3dpbmcgZGF0bWlubXhpZCB2YWx1 ZXMgdG8gYWR2YW5jZSBhbmQgcmVtb3ZpbmcKLSAqIHNvbWUgbWVtYmVycy4KLSAqCi0gKiBBcyB0 aGUgZnJhY3Rpb24gb2YgdGhlIG1lbWJlciBzcGFjZSBjdXJyZW50bHkgaW4gdXNlIGdyb3dzLCB3 ZSBiZWNvbWUKLSAqIG1vcmUgYWdncmVzc2l2ZSBpbiBjbGFtcGluZyB0aGlzIHZhbHVlLiAgVGhh dCBub3Qgb25seSBjYXVzZXMgYXV0b3ZhY3V1bQotICogdG8gcmFtcCB1cCwgYnV0IGFsc28gbWFr ZXMgYW55IG1hbnVhbCB2YWN1dW1zIHRoZSB1c2VyIGlzc3VlcyBtb3JlCi0gKiBhZ2dyZXNzaXZl LiAgVGhpcyBoYXBwZW5zIGJlY2F1c2UgdmFjdXVtX2dldF9jdXRvZmZzKCkgd2lsbCBjbGFtcCB0 aGUKLSAqIGZyZWV6ZSB0YWJsZSBhbmQgdGhlIG1pbmltdW0gZnJlZXplIGFnZSBjdXRvZmZzIGJh c2VkIG9uIHRoZSBlZmZlY3RpdmUKLSAqIGF1dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9tYXhf YWdlIHRoaXMgZnVuY3Rpb24gcmV0dXJucy4gIEluIHRoZSB3b3JzdAotICogY2FzZSwgd2UnbGwg Y2xhaW0gdGhlIGZyZWV6ZV9tYXhfYWdlIHRvIHplcm8sIGFuZCBldmVyeSB2YWN1dW0gb2YgYW55 Ci0gKiB0YWJsZSB3aWxsIGZyZWV6ZSBldmVyeSBtdWx0aXhhY3QuCi0gKi8KLWludAotTXVsdGlY YWN0TWVtYmVyRnJlZXplVGhyZXNob2xkKHZvaWQpCi17Ci0JTXVsdGlYYWN0T2Zmc2V0IG1lbWJl cnM7Ci0JdWludDMyCQltdWx0aXhhY3RzOwotCXVpbnQzMgkJdmljdGltX211bHRpeGFjdHM7Ci0J ZG91YmxlCQlmcmFjdGlvbjsKLQlpbnQJCQlyZXN1bHQ7Ci0KLQkvKiBJZiB3ZSBjYW4ndCBkZXRl cm1pbmUgbWVtYmVyIHNwYWNlIHV0aWxpemF0aW9uLCBhc3N1bWUgdGhlIHdvcnN0LiAqLwotCWlm ICghUmVhZE11bHRpWGFjdENvdW50cygmbXVsdGl4YWN0cywgJm1lbWJlcnMpKQotCQlyZXR1cm4g MDsKLQotCS8qIElmIG1lbWJlciBzcGFjZSB1dGlsaXphdGlvbiBpcyBsb3csIG5vIHNwZWNpYWwg YWN0aW9uIGlzIHJlcXVpcmVkLiAqLwotCWlmIChtZW1iZXJzIDw9IE1VTFRJWEFDVF9NRU1CRVJf U0FGRV9USFJFU0hPTEQpCi0JCXJldHVybiBhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWF4 X2FnZTsKLQotCS8qCi0JICogQ29tcHV0ZSBhIHRhcmdldCBmb3IgcmVsbWlubXhpZCBhZHZhbmNl bWVudC4gIFRoZSBudW1iZXIgb2YgbXVsdGl4YWN0cwotCSAqIHdlIHRyeSB0byBlbGltaW5hdGUg ZnJvbSB0aGUgc3lzdGVtIGlzIGJhc2VkIG9uIGhvdyBmYXIgd2UgYXJlIHBhc3QKLQkgKiBNVUxU SVhBQ1RfTUVNQkVSX1NBRkVfVEhSRVNIT0xELgotCSAqLwotCWZyYWN0aW9uID0gKGRvdWJsZSkg KG1lbWJlcnMgLSBNVUxUSVhBQ1RfTUVNQkVSX1NBRkVfVEhSRVNIT0xEKTsKLQlmcmFjdGlvbiAv PSAoZG91YmxlKSAoTVVMVElYQUNUX01FTUJFUl9EQU5HRVJfVEhSRVNIT0xEIC0gTVVMVElYQUNU X01FTUJFUl9TQUZFX1RIUkVTSE9MRCk7Ci0KLQl2aWN0aW1fbXVsdGl4YWN0cyA9IG11bHRpeGFj dHMgKiBmcmFjdGlvbjsKLQotCS8qIGZyYWN0aW9uIGNvdWxkIGJlID4gMS4wLCBidXQgbG93ZXN0 IHBvc3NpYmxlIGZyZWV6ZSBhZ2UgaXMgemVybyAqLwotCWlmICh2aWN0aW1fbXVsdGl4YWN0cyA+ IG11bHRpeGFjdHMpCi0JCXJldHVybiAwOwotCXJlc3VsdCA9IG11bHRpeGFjdHMgLSB2aWN0aW1f bXVsdGl4YWN0czsKLQotCS8qCi0JICogQ2xhbXAgdG8gYXV0b3ZhY3V1bV9tdWx0aXhhY3RfZnJl ZXplX21heF9hZ2UsIHNvIHRoYXQgd2UgbmV2ZXIgbWFrZQotCSAqIGF1dG92YWN1dW0gbGVzcyBh Z2dyZXNzaXZlIHRoYW4gaXQgd291bGQgb3RoZXJ3aXNlIGJlLgotCSAqLwotCXJldHVybiBNaW4o cmVzdWx0LCBhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZSk7Ci19Ci0KIHR5cGVk ZWYgc3RydWN0IG14dHJ1bmNpbmZvCiB7CiAJaW50NjQJCWVhcmxpZXN0RXhpc3RpbmdQYWdlOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy92YWN1dW0uYwppbmRleCBhYzhmNWQ5YzI1Li5iMDRkODY0MDk1IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy92YWN1dW0uYwpAQCAtMTEzNCw3ICsxMTM0LDcgQEAgdmFjdXVtX2dldF9jdXRvZmZzKFJlbGF0 aW9uIHJlbCwgY29uc3QgVmFjdXVtUGFyYW1zICpwYXJhbXMsCiAJICogbm9ybWFsbHkgYXV0b3Zh Y3V1bV9tdWx0aXhhY3RfZnJlZXplX21heF9hZ2UsIGJ1dCBtYXkgYmUgbGVzcyBpZiB3ZSBhcmUK IAkgKiBzaG9ydCBvZiBtdWx0aXhhY3QgbWVtYmVyIHNwYWNlLgogCSAqLwotCWVmZmVjdGl2ZV9t dWx0aXhhY3RfZnJlZXplX21heF9hZ2UgPSBNdWx0aVhhY3RNZW1iZXJGcmVlemVUaHJlc2hvbGQo KTsKKwllZmZlY3RpdmVfbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlID0gYXV0b3ZhY3V1bV9tdWx0 aXhhY3RfZnJlZXplX21heF9hZ2U7CiAKIAkvKgogCSAqIEFsbW9zdCByZWFkeSB0byBzZXQgZnJl ZXplIG91dHB1dCBwYXJhbWV0ZXJzOyBjaGVjayBpZiBPbGRlc3RYbWluIG9yCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYyBiL3NyYy9iYWNrZW5kL3Bvc3Rt YXN0ZXIvYXV0b3ZhY3V1bS5jCmluZGV4IGRjM2NmODdhYmEuLjE4MGJiN2U5NmUgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCkBAIC0xMTIyLDcgKzExMjIsNyBAQCBkb19zdGFydF93 b3JrZXIodm9pZCkKIAogCS8qIEFsc28gZGV0ZXJtaW5lIHRoZSBvbGRlc3QgZGF0bWlubXhpZCB3 ZSB3aWxsIGNvbnNpZGVyLiAqLwogCXJlY2VudE11bHRpID0gUmVhZE5leHRNdWx0aVhhY3RJZCgp OwotCW11bHRpRm9yY2VMaW1pdCA9IHJlY2VudE11bHRpIC0gTXVsdGlYYWN0TWVtYmVyRnJlZXpl VGhyZXNob2xkKCk7CisJbXVsdGlGb3JjZUxpbWl0ID0gcmVjZW50TXVsdGkgLSBhdXRvdmFjdXVt X211bHRpeGFjdF9mcmVlemVfbWF4X2FnZTsKIAlpZiAobXVsdGlGb3JjZUxpbWl0IDwgRmlyc3RN dWx0aVhhY3RJZCkKIAkJbXVsdGlGb3JjZUxpbWl0IC09IEZpcnN0TXVsdGlYYWN0SWQ7CiAKQEAg LTE5MTUsNyArMTkxNSw3IEBAIGRvX2F1dG92YWN1dW0odm9pZCkKIAkgKiBub3JtYWxseSBhdXRv dmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZSwgYnV0IG1heSBiZSBsZXNzIGlmIHdlIGFy ZQogCSAqIHNob3J0IG9mIG11bHRpeGFjdCBtZW1iZXIgc3BhY2UuCiAJICovCi0JZWZmZWN0aXZl X211bHRpeGFjdF9mcmVlemVfbWF4X2FnZSA9IE11bHRpWGFjdE1lbWJlckZyZWV6ZVRocmVzaG9s ZCgpOworCWVmZmVjdGl2ZV9tdWx0aXhhY3RfZnJlZXplX21heF9hZ2UgPSBhdXRvdmFjdXVtX211 bHRpeGFjdF9mcmVlemVfbWF4X2FnZTsKIAogCS8qCiAJICogRmluZCB0aGUgcGdfZGF0YWJhc2Ug ZW50cnkgYW5kIHNlbGVjdCB0aGUgZGVmYXVsdCBmcmVlemUgYWdlcy4gV2UgdXNlCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4YWN0LmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mv bXVsdGl4YWN0LmgKaW5kZXggOTA1ODM2MzRlYy4uNWFlZmJkZGNlMyAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvYWNjZXNzL211bHRpeGFjdC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9tdWx0 aXhhY3QuaApAQCAtMTQzLDcgKzE0Myw2IEBAIGV4dGVybiB2b2lkIE11bHRpWGFjdFNldE5leHRN WGFjdChNdWx0aVhhY3RJZCBuZXh0TXVsdGksCiBleHRlcm4gdm9pZCBNdWx0aVhhY3RBZHZhbmNl TmV4dE1YYWN0KE11bHRpWGFjdElkIG1pbk11bHRpLAogCQkJCQkJCQkJICBNdWx0aVhhY3RPZmZz ZXQgbWluTXVsdGlPZmZzZXQpOwogZXh0ZXJuIHZvaWQgTXVsdGlYYWN0QWR2YW5jZU9sZGVzdChN dWx0aVhhY3RJZCBvbGRlc3RNdWx0aSwgT2lkIG9sZGVzdE11bHRpREIpOwotZXh0ZXJuIGludAlN dWx0aVhhY3RNZW1iZXJGcmVlemVUaHJlc2hvbGQodm9pZCk7CiAKIGV4dGVybiB2b2lkIG11bHRp eGFjdF90d29waGFzZV9yZWNvdmVyKFRyYW5zYWN0aW9uSWQgeGlkLCB1aW50MTYgaW5mbywKIAkJ CQkJCQkJCSAgIHZvaWQgKnJlY2RhdGEsIHVpbnQzMiBsZW4pOwotLSAKMi40My4wCgo= --0000000000009eaf2c062526e98e Content-Type: application/octet-stream; name="v5-0001-Use-64-bit-format-output-for-multixact-offsets.patch" Content-Disposition: attachment; filename="v5-0001-Use-64-bit-format-output-for-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m2m21r450 RnJvbSA1ZGUwMjFlM2IwMTJkYmY3MWJiNmIyODkzY2Q3Nzg2NDIzNmJmZmNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgNyBBdWcgMjAyNCAxNjozNToyMiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggdjUgMS80XSBV c2UgNjQtYml0IGZvcm1hdCBvdXRwdXQgZm9yIG11bHRpeGFjdCBvZmZzZXRzCgpBdXRob3I6IE1h eGltIE9ybG92IDxvcmxvdm1nQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvcm1n cmRlc2MvbXhhY3RkZXNjLmMgICB8ICA5ICsrKystLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvcm1n cmRlc2MveGxvZ2Rlc2MuYyAgICB8ICA0ICsrLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L211bHRpeGFjdC5jICAgIHwgMjYgKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jIHwgIDUgKysrLS0KIHNyYy9iaW4vcGdfY29u dHJvbGRhdGEvcGdfY29udHJvbGRhdGEuYyAgIHwgIDQgKystLQogc3JjL2Jpbi9wZ19yZXNldHdh bC9wZ19yZXNldHdhbC5jICAgICAgICAgfCAgOCArKystLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDMx IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9ybWdyZGVzYy9teGFjdGRlc2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVz Yy9teGFjdGRlc2MuYwppbmRleCAzZThhZDRkNWVmLi4xYjQ4NmRlMzhjIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvbXhhY3RkZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3JtZ3JkZXNjL214YWN0ZGVzYy5jCkBAIC02NSw4ICs2NSw4IEBAIG11bHRpeGFjdF9k ZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJeGxfbXVsdGl4 YWN0X2NyZWF0ZSAqeGxyZWMgPSAoeGxfbXVsdGl4YWN0X2NyZWF0ZSAqKSByZWM7CiAJCWludAkJ CWk7CiAKLQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIldSBvZmZzZXQgJXUgbm1lbWJlcnMgJWQ6 ICIsIHhscmVjLT5taWQsCi0JCQkJCQkgeGxyZWMtPm1vZmYsIHhscmVjLT5ubWVtYmVycyk7CisJ CWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiJXUgb2Zmc2V0ICVsbHUgbm1lbWJlcnMgJWQ6ICIsIHhs cmVjLT5taWQsCisJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGxyZWMtPm1vZmYsIHhscmVj LT5ubWVtYmVycyk7CiAJCWZvciAoaSA9IDA7IGkgPCB4bHJlYy0+bm1lbWJlcnM7IGkrKykKIAkJ CW91dF9tZW1iZXIoYnVmLCAmeGxyZWMtPm1lbWJlcnNbaV0pOwogCX0KQEAgLTc0LDkgKzc0LDEw IEBAIG11bHRpeGFjdF9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29y ZCkKIAl7CiAJCXhsX211bHRpeGFjdF90cnVuY2F0ZSAqeGxyZWMgPSAoeGxfbXVsdGl4YWN0X3Ry dW5jYXRlICopIHJlYzsKIAotCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIm9mZnNldHMgWyV1LCAl dSksIG1lbWJlcnMgWyV1LCAldSkiLAorCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIm9mZnNldHMg WyV1LCAldSksIG1lbWJlcnMgWyVsbHUsICVsbHUpIiwKIAkJCQkJCSB4bHJlYy0+c3RhcnRUcnVu Y09mZiwgeGxyZWMtPmVuZFRydW5jT2ZmLAotCQkJCQkJIHhscmVjLT5zdGFydFRydW5jTWVtYiwg eGxyZWMtPmVuZFRydW5jTWVtYik7CisJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGxyZWMt PnN0YXJ0VHJ1bmNNZW1iLAorCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHhscmVjLT5lbmRU cnVuY01lbWIpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3Jk ZXNjL3hsb2dkZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MveGxvZ2Rlc2MuYwpp bmRleCAzNjMyOTRkNjIzLi5hYWExOWM4MWM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3Mvcm1ncmRlc2MveGxvZ2Rlc2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2Mv eGxvZ2Rlc2MuYwpAQCAtNjYsNyArNjYsNyBAQCB4bG9nX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhM b2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlDaGVja1BvaW50ICpjaGVja3BvaW50ID0gKENoZWNr UG9pbnQgKikgcmVjOwogCiAJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAicmVkbyAlWC8lWDsgIgot CQkJCQkJICJ0bGkgJXU7IHByZXYgdGxpICV1OyBmcHcgJXM7IHdhbF9sZXZlbCAlczsgeGlkICV1 OiV1OyBvaWQgJXU7IG11bHRpICV1OyBvZmZzZXQgJXU7ICIKKwkJCQkJCSAidGxpICV1OyBwcmV2 IHRsaSAldTsgZnB3ICVzOyB3YWxfbGV2ZWwgJXM7IHhpZCAldToldTsgb2lkICV1OyBtdWx0aSAl dTsgb2Zmc2V0ICVsbHU7ICIKIAkJCQkJCSAib2xkZXN0IHhpZCAldSBpbiBEQiAldTsgb2xkZXN0 IG11bHRpICV1IGluIERCICV1OyAiCiAJCQkJCQkgIm9sZGVzdC9uZXdlc3QgY29tbWl0IHRpbWVz dGFtcCB4aWQ6ICV1LyV1OyAiCiAJCQkJCQkgIm9sZGVzdCBydW5uaW5nIHhpZCAldTsgJXMiLApA QCAtNzksNyArNzksNyBAQCB4bG9nX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0 ZSAqcmVjb3JkKQogCQkJCQkJIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZChjaGVja3BvaW50LT5u ZXh0WGlkKSwKIAkJCQkJCSBjaGVja3BvaW50LT5uZXh0T2lkLAogCQkJCQkJIGNoZWNrcG9pbnQt Pm5leHRNdWx0aSwKLQkJCQkJCSBjaGVja3BvaW50LT5uZXh0TXVsdGlPZmZzZXQsCisJCQkJCQkg KHVuc2lnbmVkIGxvbmcgbG9uZykgY2hlY2twb2ludC0+bmV4dE11bHRpT2Zmc2V0LAogCQkJCQkJ IGNoZWNrcG9pbnQtPm9sZGVzdFhpZCwKIAkJCQkJCSBjaGVja3BvaW50LT5vbGRlc3RYaWREQiwK IAkJCQkJCSBjaGVja3BvaW50LT5vbGRlc3RNdWx0aSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v bXVsdGl4YWN0LmMKaW5kZXggOGMzN2Q3ZWJhNy4uYWI5MDkxMmVkMyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKQEAgLTEyNjQsNyArMTI2NCw4IEBAIEdldE5ld011bHRp WGFjdElkKGludCBubWVtYmVycywgTXVsdGlYYWN0T2Zmc2V0ICpvZmZzZXQpCiAKIAlMV0xvY2tS ZWxlYXNlKE11bHRpWGFjdEdlbkxvY2spOwogCi0JZGVidWdfZWxvZzQoREVCVUcyLCAiR2V0TmV3 OiByZXR1cm5pbmcgJXUgb2Zmc2V0ICV1IiwgcmVzdWx0LCAqb2Zmc2V0KTsKKwlkZWJ1Z19lbG9n NChERUJVRzIsICJHZXROZXc6IHJldHVybmluZyAldSBvZmZzZXQgJWxsdSIsIHJlc3VsdCwKKwkJ CQkodW5zaWduZWQgbG9uZyBsb25nKSAqb2Zmc2V0KTsKIAlyZXR1cm4gcmVzdWx0OwogfQogCkBA IC0yMjkzLDggKzIyOTQsOSBAQCBNdWx0aVhhY3RHZXRDaGVja3B0TXVsdGkoYm9vbCBpc19zaHV0 ZG93biwKIAlMV0xvY2tSZWxlYXNlKE11bHRpWGFjdEdlbkxvY2spOwogCiAJZGVidWdfZWxvZzYo REVCVUcyLAotCQkJCSJNdWx0aVhhY3Q6IGNoZWNrcG9pbnQgaXMgbmV4dE11bHRpICV1LCBuZXh0 T2Zmc2V0ICV1LCBvbGRlc3RNdWx0aSAldSBpbiBEQiAldSIsCi0JCQkJKm5leHRNdWx0aSwgKm5l eHRNdWx0aU9mZnNldCwgKm9sZGVzdE11bHRpLCAqb2xkZXN0TXVsdGlEQik7CisJCQkJIk11bHRp WGFjdDogY2hlY2twb2ludCBpcyBuZXh0TXVsdGkgJXUsIG5leHRPZmZzZXQgJWxsdSwgb2xkZXN0 TXVsdGkgJXUgaW4gREIgJXUiLAorCQkJCSpuZXh0TXVsdGksICh1bnNpZ25lZCBsb25nIGxvbmcp ICpuZXh0TXVsdGlPZmZzZXQsICpvbGRlc3RNdWx0aSwKKwkJCQkqb2xkZXN0TXVsdGlEQik7CiB9 CiAKIC8qCkBAIC0yMzI4LDggKzIzMzAsOCBAQCB2b2lkCiBNdWx0aVhhY3RTZXROZXh0TVhhY3Qo TXVsdGlYYWN0SWQgbmV4dE11bHRpLAogCQkJCQkgIE11bHRpWGFjdE9mZnNldCBuZXh0TXVsdGlP ZmZzZXQpCiB7Ci0JZGVidWdfZWxvZzQoREVCVUcyLCAiTXVsdGlYYWN0OiBzZXR0aW5nIG5leHQg bXVsdGkgdG8gJXUgb2Zmc2V0ICV1IiwKLQkJCQluZXh0TXVsdGksIG5leHRNdWx0aU9mZnNldCk7 CisJZGVidWdfZWxvZzQoREVCVUcyLCAiTXVsdGlYYWN0OiBzZXR0aW5nIG5leHQgbXVsdGkgdG8g JXUgb2Zmc2V0ICVsbHUiLAorCQkJCW5leHRNdWx0aSwgKHVuc2lnbmVkIGxvbmcgbG9uZykgbmV4 dE11bHRpT2Zmc2V0KTsKIAlMV0xvY2tBY3F1aXJlKE11bHRpWGFjdEdlbkxvY2ssIExXX0VYQ0xV U0lWRSk7CiAJTXVsdGlYYWN0U3RhdGUtPm5leHRNWGFjdCA9IG5leHRNdWx0aTsKIAlNdWx0aVhh Y3RTdGF0ZS0+bmV4dE9mZnNldCA9IG5leHRNdWx0aU9mZnNldDsKQEAgLTI1MTksOCArMjUyMSw4 IEBAIE11bHRpWGFjdEFkdmFuY2VOZXh0TVhhY3QoTXVsdGlYYWN0SWQgbWluTXVsdGksCiAJfQog CWlmIChNdWx0aVhhY3RPZmZzZXRQcmVjZWRlcyhNdWx0aVhhY3RTdGF0ZS0+bmV4dE9mZnNldCwg bWluTXVsdGlPZmZzZXQpKQogCXsKLQkJZGVidWdfZWxvZzMoREVCVUcyLCAiTXVsdGlYYWN0OiBz ZXR0aW5nIG5leHQgb2Zmc2V0IHRvICV1IiwKLQkJCQkJbWluTXVsdGlPZmZzZXQpOworCQlkZWJ1 Z19lbG9nMyhERUJVRzIsICJNdWx0aVhhY3Q6IHNldHRpbmcgbmV4dCBvZmZzZXQgdG8gJWxsdSIs CisJCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpIG1pbk11bHRpT2Zmc2V0KTsKIAkJTXVsdGlYYWN0 U3RhdGUtPm5leHRPZmZzZXQgPSBtaW5NdWx0aU9mZnNldDsKIAl9CiAJTFdMb2NrUmVsZWFzZShN dWx0aVhhY3RHZW5Mb2NrKTsKQEAgLTMyMTEsMTEgKzMyMTMsMTIgQEAgVHJ1bmNhdGVNdWx0aVhh Y3QoTXVsdGlYYWN0SWQgbmV3T2xkZXN0TXVsdGksIE9pZCBuZXdPbGRlc3RNdWx0aURCKQogCiAJ ZWxvZyhERUJVRzEsICJwZXJmb3JtaW5nIG11bHRpeGFjdCB0cnVuY2F0aW9uOiAiCiAJCSAib2Zm c2V0cyBbJXUsICV1KSwgb2Zmc2V0cyBzZWdtZW50cyBbJWxseCwgJWxseCksICIKLQkJICJtZW1i ZXJzIFsldSwgJXUpLCBtZW1iZXJzIHNlZ21lbnRzIFslbGx4LCAlbGx4KSIsCisJCSAibWVtYmVy cyBbJWxsdSwgJWxsdSksIG1lbWJlcnMgc2VnbWVudHMgWyVsbHgsICVsbHgpIiwKIAkJIG9sZGVz dE11bHRpLCBuZXdPbGRlc3RNdWx0aSwKIAkJICh1bnNpZ25lZCBsb25nIGxvbmcpIE11bHRpWGFj dElkVG9PZmZzZXRTZWdtZW50KG9sZGVzdE11bHRpKSwKIAkJICh1bnNpZ25lZCBsb25nIGxvbmcp IE11bHRpWGFjdElkVG9PZmZzZXRTZWdtZW50KG5ld09sZGVzdE11bHRpKSwKLQkJIG9sZGVzdE9m ZnNldCwgbmV3T2xkZXN0T2Zmc2V0LAorCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgb2xkZXN0T2Zm c2V0LAorCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgbmV3T2xkZXN0T2Zmc2V0LAogCQkgKHVuc2ln bmVkIGxvbmcgbG9uZykgTVhPZmZzZXRUb01lbWJlclNlZ21lbnQob2xkZXN0T2Zmc2V0KSwKIAkJ ICh1bnNpZ25lZCBsb25nIGxvbmcpIE1YT2Zmc2V0VG9NZW1iZXJTZWdtZW50KG5ld09sZGVzdE9m ZnNldCkpOwogCkBAIC0zNDcxLDExICszNDc0LDEyIEBAIG11bHRpeGFjdF9yZWRvKFhMb2dSZWFk ZXJTdGF0ZSAqcmVjb3JkKQogCiAJCWVsb2coREVCVUcxLCAicmVwbGF5aW5nIG11bHRpeGFjdCB0 cnVuY2F0aW9uOiAiCiAJCQkgIm9mZnNldHMgWyV1LCAldSksIG9mZnNldHMgc2VnbWVudHMgWyVs bHgsICVsbHgpLCAiCi0JCQkgIm1lbWJlcnMgWyV1LCAldSksIG1lbWJlcnMgc2VnbWVudHMgWyVs bHgsICVsbHgpIiwKKwkJCSAibWVtYmVycyBbJWxsdSwgJWxsdSksIG1lbWJlcnMgc2VnbWVudHMg WyVsbHgsICVsbHgpIiwKIAkJCSB4bHJlYy5zdGFydFRydW5jT2ZmLCB4bHJlYy5lbmRUcnVuY09m ZiwKIAkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBNdWx0aVhhY3RJZFRvT2Zmc2V0U2VnbWVudCh4 bHJlYy5zdGFydFRydW5jT2ZmKSwKIAkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBNdWx0aVhhY3RJ ZFRvT2Zmc2V0U2VnbWVudCh4bHJlYy5lbmRUcnVuY09mZiksCi0JCQkgeGxyZWMuc3RhcnRUcnVu Y01lbWIsIHhscmVjLmVuZFRydW5jTWVtYiwKKwkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4bHJl Yy5zdGFydFRydW5jTWVtYiwKKwkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4bHJlYy5lbmRUcnVu Y01lbWIsCiAJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgTVhPZmZzZXRUb01lbWJlclNlZ21lbnQo eGxyZWMuc3RhcnRUcnVuY01lbWIpLAogCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIE1YT2Zmc2V0 VG9NZW1iZXJTZWdtZW50KHhscmVjLmVuZFRydW5jTWVtYikpOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCmluZGV4IDMyMGIxNGFkZDEuLjQ4NDYxMjZlZjkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCkBAIC04NzcsOCArODc3 LDkgQEAgSW5pdFdhbFJlY292ZXJ5KENvbnRyb2xGaWxlRGF0YSAqQ29udHJvbEZpbGUsIGJvb2wg Kndhc1NodXRkb3duX3B0ciwKIAkJCQkJCQkgVTY0RnJvbUZ1bGxUcmFuc2FjdGlvbklkKGNoZWNr UG9pbnQubmV4dFhpZCksCiAJCQkJCQkJIGNoZWNrUG9pbnQubmV4dE9pZCkpKTsKIAllcmVwb3J0 KERFQlVHMSwKLQkJCShlcnJtc2dfaW50ZXJuYWwoIm5leHQgTXVsdGlYYWN0SWQ6ICV1OyBuZXh0 IE11bHRpWGFjdE9mZnNldDogJXUiLAotCQkJCQkJCSBjaGVja1BvaW50Lm5leHRNdWx0aSwgY2hl Y2tQb2ludC5uZXh0TXVsdGlPZmZzZXQpKSk7CisJCQkoZXJybXNnX2ludGVybmFsKCJuZXh0IE11 bHRpWGFjdElkOiAldTsgbmV4dCBNdWx0aVhhY3RPZmZzZXQ6ICVsbHUiLAorCQkJCQkJCSBjaGVj a1BvaW50Lm5leHRNdWx0aSwKKwkJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgY2hlY2tQb2lu dC5uZXh0TXVsdGlPZmZzZXQpKSk7CiAJZXJlcG9ydChERUJVRzEsCiAJCQkoZXJybXNnX2ludGVy bmFsKCJvbGRlc3QgdW5mcm96ZW4gdHJhbnNhY3Rpb24gSUQ6ICV1LCBpbiBkYXRhYmFzZSAldSIs CiAJCQkJCQkJIGNoZWNrUG9pbnQub2xkZXN0WGlkLCBjaGVja1BvaW50Lm9sZGVzdFhpZERCKSkp OwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19jb250cm9sZGF0YS9wZ19jb250cm9sZGF0YS5jIGIv c3JjL2Jpbi9wZ19jb250cm9sZGF0YS9wZ19jb250cm9sZGF0YS5jCmluZGV4IDkzYTA1ZDgwY2Eu LjQzYjY3Mjc1NzAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfY29udHJvbGRhdGEvcGdfY29udHJv bGRhdGEuYworKysgYi9zcmMvYmluL3BnX2NvbnRyb2xkYXRhL3BnX2NvbnRyb2xkYXRhLmMKQEAg LTI1Myw4ICsyNTMsOCBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCSAgIENvbnRy b2xGaWxlLT5jaGVja1BvaW50Q29weS5uZXh0T2lkKTsKIAlwcmludGYoXygiTGF0ZXN0IGNoZWNr cG9pbnQncyBOZXh0TXVsdGlYYWN0SWQ6ICAldVxuIiksCiAJCSAgIENvbnRyb2xGaWxlLT5jaGVj a1BvaW50Q29weS5uZXh0TXVsdGkpOwotCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIE5l eHRNdWx0aU9mZnNldDogICV1XG4iKSwKLQkJICAgQ29udHJvbEZpbGUtPmNoZWNrUG9pbnRDb3B5 Lm5leHRNdWx0aU9mZnNldCk7CisJcHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50J3MgTmV4dE11 bHRpT2Zmc2V0OiAgJWxsdVxuIiksCisJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIENvbnRyb2xG aWxlLT5jaGVja1BvaW50Q29weS5uZXh0TXVsdGlPZmZzZXQpOwogCXByaW50ZihfKCJMYXRlc3Qg Y2hlY2twb2ludCdzIG9sZGVzdFhJRDogICAgICAgICV1XG4iKSwKIAkJICAgQ29udHJvbEZpbGUt PmNoZWNrUG9pbnRDb3B5Lm9sZGVzdFhpZCk7CiAJcHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50 J3Mgb2xkZXN0WElEJ3MgREI6ICAgJXVcbiIpLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19yZXNl dHdhbC9wZ19yZXNldHdhbC5jIGIvc3JjL2Jpbi9wZ19yZXNldHdhbC9wZ19yZXNldHdhbC5jCmlu ZGV4IGU5ZGNiNWE2ZDguLjk4NWNkMDY4MDIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfcmVzZXR3 YWwvcGdfcmVzZXR3YWwuYworKysgYi9zcmMvYmluL3BnX3Jlc2V0d2FsL3BnX3Jlc2V0d2FsLmMK QEAgLTczNyw4ICs3MzcsOCBAQCBQcmludENvbnRyb2xWYWx1ZXMoYm9vbCBndWVzc2VkKQogCQkg ICBDb250cm9sRmlsZS5jaGVja1BvaW50Q29weS5uZXh0T2lkKTsKIAlwcmludGYoXygiTGF0ZXN0 IGNoZWNrcG9pbnQncyBOZXh0TXVsdGlYYWN0SWQ6ICAldVxuIiksCiAJCSAgIENvbnRyb2xGaWxl LmNoZWNrUG9pbnRDb3B5Lm5leHRNdWx0aSk7Ci0JcHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50 J3MgTmV4dE11bHRpT2Zmc2V0OiAgJXVcbiIpLAotCQkgICBDb250cm9sRmlsZS5jaGVja1BvaW50 Q29weS5uZXh0TXVsdGlPZmZzZXQpOworCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIE5l eHRNdWx0aU9mZnNldDogICVsbHVcbiIpLAorCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSBDb250 cm9sRmlsZS5jaGVja1BvaW50Q29weS5uZXh0TXVsdGlPZmZzZXQpOwogCXByaW50ZihfKCJMYXRl c3QgY2hlY2twb2ludCdzIG9sZGVzdFhJRDogICAgICAgICV1XG4iKSwKIAkJICAgQ29udHJvbEZp bGUuY2hlY2tQb2ludENvcHkub2xkZXN0WGlkKTsKIAlwcmludGYoXygiTGF0ZXN0IGNoZWNrcG9p bnQncyBvbGRlc3RYSUQncyBEQjogICAldVxuIiksCkBAIC04MDksOCArODA5LDggQEAgUHJpbnRO ZXdDb250cm9sVmFsdWVzKHZvaWQpCiAKIAlpZiAoc2V0X214b2ZmICE9IC0xKQogCXsKLQkJcHJp bnRmKF8oIk5leHRNdWx0aU9mZnNldDogICAgICAgICAgICAgICAgICAgICAgJXVcbiIpLAotCQkJ ICAgQ29udHJvbEZpbGUuY2hlY2tQb2ludENvcHkubmV4dE11bHRpT2Zmc2V0KTsKKwkJcHJpbnRm KF8oIk5leHRNdWx0aU9mZnNldDogICAgICAgICAgICAgICAgICAgICAgJWxsdVxuIiksCisJCQkg ICAodW5zaWduZWQgbG9uZyBsb25nKSBDb250cm9sRmlsZS5jaGVja1BvaW50Q29weS5uZXh0TXVs dGlPZmZzZXQpOwogCX0KIAogCWlmIChzZXRfb2lkICE9IDApCi0tIAoyLjQzLjAKCg== --0000000000009eaf2c062526e98e--