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 1slTc2-0081D7-VR for pgsql-hackers@arkaria.postgresql.org; Tue, 03 Sep 2024 13:30:28 +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 1slTc2-00BoZm-1p for pgsql-hackers@arkaria.postgresql.org; Tue, 03 Sep 2024 13:30:26 +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 1slTc1-00BoZd-Jy for pgsql-hackers@lists.postgresql.org; Tue, 03 Sep 2024 13:30:25 +0000 Received: from mail-ej1-x632.google.com ([2a00:1450:4864:20::632]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1slTbz-000SoZ-AW for pgsql-hackers@lists.postgresql.org; Tue, 03 Sep 2024 13:30:25 +0000 Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-a86a1abc05eso29816366b.0 for ; Tue, 03 Sep 2024 06:30:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725370222; x=1725975022; 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=d30iGbypVe8XRvlUGHHVWDiyXUzWaKWduSoiEyQMIV0=; b=Y5RzYLn6bxfxmM1BvmD9z7z3R9GEdGubFJhjrzj2GnZNW5uh6aW1vvwJtP47tVZUjp x0nk1lj/izkLgDMUhp5yVAMVp3pJrKk7h6dKNvHfXqG4ddp0UMLoawEnv174Ba9qBLKF i58B/XY8lu3K9orcdVrMc6IJntnJFkLZLgp9tpBcMX7TlWGQ8t1pqZh5toLYSQ4VR2bR z1aTEsHFIQ0XBxCLIuAP3b6EK1/AOXKXIw3FU/q93Evq8TmH5c4HuCuHIuSjaSghSz27 d5CjwLBjIiHXJzab4gGzn9pEX0ChS55xKmXgw9CHjRSvMwau48LzNfdFCb2Zn/wnYXT4 FMPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725370222; x=1725975022; 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=d30iGbypVe8XRvlUGHHVWDiyXUzWaKWduSoiEyQMIV0=; b=ch/eYQVqGMI7Q/k9E0XSttSF8HKgP/IkAC2CyG02cdKQ+alo6qOdtwxERqUMf/Nkkb Cxpy9lAwGFpHsgWMqx7n8fCjVsRaxAUm32oBWRgR+P7NLZlH7dF9KBqMtu8syAanOEHc UgELoFyU0cT5W93pgEP0N3nvnY04BnthHZWj4RCbtccuKZiTTmjZ6xz1VFeux82xB1XS e1b+ibwDFRG4VYjpGaEDur6nzUZ8GC1BqoQb7tBsQaILCHFIwbW1WPR/9M2SXN96u6S2 P3mSR3C3O5EVAp7LBgAjR7skvhXPkYILrUgHTJUrNSZU1onLUqn9ahJhhHxUZS+svkNI gCdQ== X-Forwarded-Encrypted: i=1; AJvYcCUOU5zh4eKnzFwt4dIFUWmTO9MR3gzn1gifOolwL93WS56XeKQDlJU2lcXvAdPkW4BQ8a+6rv0Ovsz/kykQ@lists.postgresql.org X-Gm-Message-State: AOJu0Yz2OCHknudgfSkIGspIjXBJWmNtg7vGAS/fbOfrt6NwRLzuNDh4 fUxpAzPouTm5B47k9Gi34phFHt3UXZcaynzgTMLt24VTwBaiDruShS+K0X5hp066M4dQJBPhOKT UndHXYPe0I+xyoB1aSHCKQYZaHeQ= X-Google-Smtp-Source: AGHT+IHwJlmP3lARgKFmAicSjHFg9+rpCtGXdcsPCDqw505AirFEOECnw++nY5nuam2vYut+OEwXZI0SGOdO7u5d0TE= X-Received: by 2002:a17:907:7e91:b0:a80:f63e:159b with SMTP id a640c23a62f3a-a89a30b5b14mr603996266b.0.1725370221696; Tue, 03 Sep 2024 06:30:21 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Maxim Orlov Date: Tue, 3 Sep 2024 16:30:10 +0300 Message-ID: Subject: Re: POC: make mxidoff 64 bits To: wenhui qiu Cc: Heikki Linnakangas , Postgres hackers Content-Type: multipart/mixed; boundary="0000000000002bcabb0621370f04" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000002bcabb0621370f04 Content-Type: multipart/alternative; boundary="0000000000002bcab90621370f02" --0000000000002bcab90621370f02 Content-Type: text/plain; charset="UTF-8" Here is rebase. Apparently I'll have to do it often, since the CATALOG_VERSION_NO changed in the patch. -- Best regards, Maxim Orlov. --0000000000002bcab90621370f02 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Here is rebase.=C2=A0 Apparently I'll have to do it often, since the=C2=A0<= /span>CATALOG_VERSION_NO changed in the = patch.

--
=
Best regards,
Maxim Orlov.
--0000000000002bcab90621370f02-- --0000000000002bcabb0621370f04 Content-Type: application/octet-stream; name="v2-0001-Use-64-bit-format-output-for-multixact-offsets.patch" Content-Disposition: attachment; filename="v2-0001-Use-64-bit-format-output-for-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0mgt7rp0 RnJvbSAyMjhhMjE1MzJiYjQ0MWZlNTgyYTY2Yjc0MDQ5NjJjZTViZjRiMThiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgNyBBdWcgMjAyNCAxNjozNToyMiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggdjIgMS8zXSBV 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 cy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCmluZGV4IDE3ODQ5MWY2ZjUuLjBjNTk4MGE0MzYgMTAw 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 dGlPZmZzZXQpOwogCX0KIAogCWlmIChzZXRfb2lkICE9IDApCi0tIAoyLjQ1LjIKCg== --0000000000002bcabb0621370f04 Content-Type: application/octet-stream; name="v2-0003-Make-pg_upgrade-convert-multixact-offsets.patch" Content-Disposition: attachment; filename="v2-0003-Make-pg_upgrade-convert-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0mgt7sg2 RnJvbSBhMDY1NTc0MzU1OTc4NjhjYzY1NGRlMjg5OWI2Y2Q2MThmZWQ2NDFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8bS5vcmxvdkBwb3N0Z3Jlc3Byby5ydT4K RGF0ZTogVHVlLCAxMyBBdWcgMjAyNCAxNDo0NDo1MCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggdjIg My8zXSBNYWtlIHBnX3VwZ3JhZGUgY29udmVydCBtdWx0aXhhY3Qgb2Zmc2V0cy4KCkF1dGhvcjog TWF4aW0gT3Jsb3YgPG9ybG92bWdAZ21haWwuY29tPgotLS0KIHNyYy9iaW4vcGdfdXBncmFkZS9N YWtlZmlsZSAgICAgIHwgICAxICsKIHNyYy9iaW4vcGdfdXBncmFkZS9tZXNvbi5idWlsZCAgIHwg ICAxICsKIHNyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMgIHwgIDI5ICsrLQogc3JjL2Jp bi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaCAgfCAgMTMgKy0KIHNyYy9iaW4vcGdfdXBncmFkZS9z ZWdyZXNpemUuYyAgIHwgMzUwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9p bmNsdWRlL2NhdGFsb2cvY2F0dmVyc2lvbi5oIHwgICAyICstCiA2IGZpbGVzIGNoYW5nZWQsIDM5 MSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9i aW4vcGdfdXBncmFkZS9zZWdyZXNpemUuYwoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFk ZS9NYWtlZmlsZSBiL3NyYy9iaW4vcGdfdXBncmFkZS9NYWtlZmlsZQppbmRleCBiZGU5MWUyYmVi Li4wMzA4MTY1OTZmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvTWFrZWZpbGUKKysr IGIvc3JjL2Jpbi9wZ191cGdyYWRlL01ha2VmaWxlCkBAIC0yMSw2ICsyMSw3IEBAIE9CSlMgPSBc CiAJaW5mby5vIFwKIAlvcHRpb24ubyBcCiAJcGFyYWxsZWwubyBcCisJc2VncmVzaXplLm8gXAog CXBnX3VwZ3JhZGUubyBcCiAJcmVsZmlsZW51bWJlci5vIFwKIAlzZXJ2ZXIubyBcCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvbWVzb24uYnVpbGQgYi9zcmMvYmluL3BnX3VwZ3JhZGUv bWVzb24uYnVpbGQKaW5kZXggOTgyNWZhMzMwNS4uMmQ5ZjdlNmI2NSAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ191cGdyYWRlL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9tZXNv bi5idWlsZApAQCAtMTAsNiArMTAsNyBAQCBwZ191cGdyYWRlX3NvdXJjZXMgPSBmaWxlcygKICAg J2luZm8uYycsCiAgICdvcHRpb24uYycsCiAgICdwYXJhbGxlbC5jJywKKyAgJ3NlZ3Jlc2l6ZS5j JywKICAgJ3BnX3VwZ3JhZGUuYycsCiAgICdyZWxmaWxlbnVtYmVyLmMnLAogICAnc2VydmVyLmMn LApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYyBiL3NyYy9iaW4v cGdfdXBncmFkZS9wZ191cGdyYWRlLmMKaW5kZXggNjYzMjM1ODE2Zi4uZDlkOGQwZWE3OCAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYworKysgYi9zcmMvYmluL3Bn X3VwZ3JhZGUvcGdfdXBncmFkZS5jCkBAIC03NTAsNyArNzUwLDMwIEBAIGNvcHlfeGFjdF94bG9n X3hpZCh2b2lkKQogCWlmIChvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jYXRfdmVyID49IE1VTFRJ WEFDVF9GT1JNQVRDSEFOR0VfQ0FUX1ZFUiAmJgogCQluZXdfY2x1c3Rlci5jb250cm9sZGF0YS5j YXRfdmVyID49IE1VTFRJWEFDVF9GT1JNQVRDSEFOR0VfQ0FUX1ZFUikKIAl7Ci0JCWNvcHlfc3Vi ZGlyX2ZpbGVzKCJwZ19tdWx0aXhhY3Qvb2Zmc2V0cyIsICJwZ19tdWx0aXhhY3Qvb2Zmc2V0cyIp OworCQkvKgorCQkgKiBJZiB0aGUgb2xkIHNlcnZlciBpcyBiZWZvcmUgdGhlIE1VTFRJWEFDVE9G RlNFVF9GT1JNQVRDSEFOR0VfQ0FUX1ZFUgorCQkgKiBpdCBtdXN0IGhhdmUgMzItYml0IG11bHRp eGlkIG9mZnNldHMsIHRodXMgaXQgc2hvdWxkIGJlIGNvbnZlcnRlZC4KKwkJICovCisJCWlmIChv bGRfY2x1c3Rlci5jb250cm9sZGF0YS5jYXRfdmVyIDwgTVVMVElYQUNUT0ZGU0VUX0ZPUk1BVENI QU5HRV9DQVRfVkVSICYmCisJCQluZXdfY2x1c3Rlci5jb250cm9sZGF0YS5jYXRfdmVyID49IE1V TFRJWEFDVE9GRlNFVF9GT1JNQVRDSEFOR0VfQ0FUX1ZFUikKKwkJeworCQkJdWludDY0CW9sZGVz dF9vZmZzZXQgPSBjb252ZXJ0X211bHRpeGFjdF9vZmZzZXRzKCk7CisKKwkJCWlmIChvbGRlc3Rf b2Zmc2V0KQorCQkJeworCQkJCXVpbnQ2NAluZXh0X29mZnNldCA9IG9sZF9jbHVzdGVyLmNvbnRy b2xkYXRhLmNoa3BudF9ueHRteG9mZjsKKworCQkJCS8qIEhhbmRsZSBwb3NzaWJsZSB3cmFwYXJv dW5kLiAqLworCQkJCWlmIChuZXh0X29mZnNldCA8IG9sZGVzdF9vZmZzZXQpCisJCQkJCW5leHRf b2Zmc2V0ICs9ICgodWludDY0KSAxIDw8IDMyKSAtIDE7CisKKwkJCQluZXh0X29mZnNldCAtPSBv bGRlc3Rfb2Zmc2V0IC0gMTsKKwkJCQlvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfbnh0 bXhvZmYgPSBuZXh0X29mZnNldDsKKwkJCX0KKwkJfQorCQllbHNlCisJCQljb3B5X3N1YmRpcl9m aWxlcygicGdfbXVsdGl4YWN0L29mZnNldHMiLCAicGdfbXVsdGl4YWN0L29mZnNldHMiKTsKKwog CQljb3B5X3N1YmRpcl9maWxlcygicGdfbXVsdGl4YWN0L21lbWJlcnMiLCAicGdfbXVsdGl4YWN0 L21lbWJlcnMiKTsKIAogCQlwcmVwX3N0YXR1cygiU2V0dGluZyBuZXh0IG11bHRpeGFjdCBJRCBh bmQgb2Zmc2V0IGZvciBuZXcgY2x1c3RlciIpOwpAQCAtNzYwLDkgKzc4Myw5IEBAIGNvcHlfeGFj dF94bG9nX3hpZCh2b2lkKQogCQkgKiBjb3VudGVycyBoZXJlIGFuZCB0aGUgb2xkZXN0IG11bHRp IHByZXNlbnQgb24gc3lzdGVtLgogCQkgKi8KIAkJZXhlY19wcm9nKFVUSUxJVFlfTE9HX0ZJTEUs IE5VTEwsIHRydWUsIHRydWUsCi0JCQkJICAiXCIlcy9wZ19yZXNldHdhbFwiIC1PICV1IC1tICV1 LCV1IFwiJXNcIiIsCisJCQkJICAiXCIlcy9wZ19yZXNldHdhbFwiIC1PICVsbHUgLW0gJXUsJXUg XCIlc1wiIiwKIAkJCQkgIG5ld19jbHVzdGVyLmJpbmRpciwKLQkJCQkgIG9sZF9jbHVzdGVyLmNv bnRyb2xkYXRhLmNoa3BudF9ueHRteG9mZiwKKwkJCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpIG9s ZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9ueHRteG9mZiwKIAkJCQkgIG9sZF9jbHVzdGVy LmNvbnRyb2xkYXRhLmNoa3BudF9ueHRtdWx0aSwKIAkJCQkgIG9sZF9jbHVzdGVyLmNvbnRyb2xk YXRhLmNoa3BudF9vbGRzdE11bHRpLAogCQkJCSAgbmV3X2NsdXN0ZXIucGdkYXRhKTsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmggYi9zcmMvYmluL3BnX3VwZ3Jh ZGUvcGdfdXBncmFkZS5oCmluZGV4IGNkYjZlMmI3NTkuLjQ0NWI0NmU1YmQgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRl L3BnX3VwZ3JhZGUuaApAQCAtMTE0LDYgKzExNCwxMyBAQCBleHRlcm4gY2hhciAqb3V0cHV0X2Zp bGVzW107CiAgKi8KICNkZWZpbmUgTVVMVElYQUNUX0ZPUk1BVENIQU5HRV9DQVRfVkVSIDIwMTMw MTIzMQogCisvKgorICogU3dpY3RoIGZyb20gMzItYml0IHRvIDY0LWJpdCBmb3IgbXVsdGl4aWQg b2Zmc2V0cy4KKyAqCisgKiBYWFg6IHNob3VsZCBiZSBjaGFuZ2VkIHRvIHRoZSBhY3R1YWwgQ0FU QUxPR19WRVJTSU9OX05PIG9uIGNvbW1pdC4KKyAqLworI2RlZmluZSBNVUxUSVhBQ1RPRkZTRVRf Rk9STUFUQ0hBTkdFX0NBVF9WRVIgMjAyNDA4MzAyCisKIC8qCiAgKiBsYXJnZSBvYmplY3QgY2h1 bmsgc2l6ZSBhZGRlZCB0byBwZ19jb250cm9sZGF0YSwKICAqIGNvbW1pdCA1ZjkzYzM3ODA1ZTc0 ODU0ODg0ODA5MTZiNDU4NWUwOThkM2NjODgzCkBAIC0yMzAsNyArMjM3LDcgQEAgdHlwZWRlZiBz dHJ1Y3QKIAl1aW50MzIJCWNoa3BudF9ueHRlcG9jaDsKIAl1aW50MzIJCWNoa3BudF9ueHRvaWQ7 CiAJdWludDMyCQljaGtwbnRfbnh0bXVsdGk7Ci0JdWludDMyCQljaGtwbnRfbnh0bXhvZmY7CisJ dWludDY0CQljaGtwbnRfbnh0bXhvZmY7CiAJdWludDMyCQljaGtwbnRfb2xkc3RNdWx0aTsKIAl1 aW50MzIJCWNoa3BudF9vbGRzdHhpZDsKIAl1aW50MzIJCWFsaWduOwpAQCAtNDk0LDMgKzUwMSw3 IEBAIHZvaWQJCXBhcmFsbGVsX3RyYW5zZmVyX2FsbF9uZXdfZGJzKERiSW5mb0FyciAqb2xkX2Ri X2FyciwgRGJJbmZvQXJyICpuZXdfZGJfYXJyCiAJCQkJCQkJCQkJICBjaGFyICpvbGRfcGdkYXRh LCBjaGFyICpuZXdfcGdkYXRhLAogCQkJCQkJCQkJCSAgY2hhciAqb2xkX3RhYmxlc3BhY2UpOwog Ym9vbAkJcmVhcF9jaGlsZChib29sIHdhaXRfZm9yX2NoaWxkKTsKKworLyogc2VncmVzaXplLmMg Ki8KKwordWludDY0CQljb252ZXJ0X211bHRpeGFjdF9vZmZzZXRzKHZvaWQpOwpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3NlZ3Jlc2l6ZS5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3Nl Z3Jlc2l6ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmU0N2MwYTI0 MDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvc2VncmVzaXplLmMKQEAg LTAsMCArMSwzNTAgQEAKKy8qCisgKglzZWdyZXNpemUuYworICoKKyAqCVNMUlUgc2VnbWVudCBy ZXNpemUgdXRpbGl0eQorICoKKyAqCUNvcHlyaWdodCAoYykgMjAyNCwgUG9zdGdyZVNRTCBHbG9i YWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCXNyYy9iaW4vcGdfdXBncmFkZS9zZWdyZXNpemUuYwor ICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlc19mZS5oIgorCisjaW5jbHVkZSAicGdfdXBncmFkZS5o IgorI2luY2x1ZGUgImFjY2Vzcy9tdWx0aXhhY3QuaCIKKworLyogU2VlIHNscnUuaCAqLworI2Rl ZmluZSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UCQkzMgorCisvKgorICogU29tZSBraW5kIG9mIGl0 ZXJhdG9yIGFzc29jaWF0ZWQgd2l0aCBhIHBhcnRpY3VsYXIgU0xSVSBzZWdtZW50LiAgVGhlIGlk ZWEgaXMKKyAqIHRvIHNwZWNpZnkgdGhlIHNlZ21lbnQgYW5kIHBhZ2UgbnVtYmVyIGFuZCB0aGVu IG1vdmUgdGhyb3VnaCB0aGUgcGFnZXMuCisgKi8KK3R5cGVkZWYgc3RydWN0IFNscnVTZWdTdGF0 ZQoreworCWNoYXIJICAgKmRpcjsKKwljaGFyCSAgICpmbjsKKwlGSUxFCSAgICpmaWxlOworCWlu dDY0CQlzZWdubzsKKwl1aW50NjQJCXBhZ2VubzsKKwlib29sCQlsZWFkaW5nX2dhcDsKKwlib29s CQlsb25nX3NlZ21lbnRfbmFtZXM7Cit9IFNscnVTZWdTdGF0ZTsKKworLyoKKyAqIEdldCBTTFJV IHNlZ21lbiBmaWxlIG5hbWUgZnJvbSBzdGF0ZS4KKyAqCisgKiBOT1RFOiB0aGlzIGZ1bmN0aW9u IHNob3VsZCBtaXJyb3IgU2xydUZpbGVOYW1lIGNhbGwuCisgKi8KK3N0YXRpYyBpbmxpbmUgY2hh ciAqCitTbHJ1RmlsZU5hbWUoU2xydVNlZ1N0YXRlICpzdGF0ZSkKK3sKKwlpZiAoc3RhdGUtPmxv bmdfc2VnbWVudF9uYW1lcykKKwl7CisJCUFzc2VydChzdGF0ZS0+c2Vnbm8gPj0gMCAmJgorCQkJ ICAgc3RhdGUtPnNlZ25vIDw9IElOVDY0Q09OU1QoMHhGRkZGRkZGRkZGRkZGRkYpKTsKKwkJcmV0 dXJuIHBzcHJpbnRmKCIlcy8lMDE1bGxYIiwgc3RhdGUtPmRpciwgKGxvbmcgbG9uZykgc3RhdGUt PnNlZ25vKTsKKwl9CisJZWxzZQorCXsKKwkJQXNzZXJ0KHN0YXRlLT5zZWdubyA+PSAwICYmCisJ CQkgICBzdGF0ZS0+c2Vnbm8gPD0gSU5UNjRDT05TVCgweEZGRkZGRikpOworCQlyZXR1cm4gcHNw cmludGYoIiVzLyUwNFgiLCBzdGF0ZS0+ZGlyLCAodW5zaWduZWQgaW50KSBzdGF0ZS0+c2Vnbm8p OworCX0KK30KKworLyoKKyAqIENyZWF0ZSBTTFJVIHNlZ21lbnQgZmlsZS4KKyAqLworc3RhdGlj IHZvaWQKK2NyZWF0ZV9zZWdtZW50KFNscnVTZWdTdGF0ZSAqc3RhdGUpCit7CisJQXNzZXJ0KHN0 YXRlLT5mbiA9PSBOVUxMKTsKKwlBc3NlcnQoc3RhdGUtPmZpbGUgPT0gTlVMTCk7CisKKwlzdGF0 ZS0+Zm4gPSBTbHJ1RmlsZU5hbWUoc3RhdGUpOworCXN0YXRlLT5maWxlID0gZm9wZW4oc3RhdGUt PmZuLCAid2IiKTsKKwlpZiAoIXN0YXRlLT5maWxlKQorCQlwZ19mYXRhbCgiY291bGQgbm90IGNy ZWF0ZSBmaWxlIFwiJXNcIjogJW0iLCBzdGF0ZS0+Zm4pOworfQorCisvKgorICogT3BlbiBleGlz dGluZyBTTFJVIHNlZ21lbnQgZmlsZS4KKyAqLworc3RhdGljIHZvaWQKK29wZW5fc2VnbWVudChT bHJ1U2VnU3RhdGUgKnN0YXRlKQoreworCUFzc2VydChzdGF0ZS0+Zm4gPT0gTlVMTCk7CisJQXNz ZXJ0KHN0YXRlLT5maWxlID09IE5VTEwpOworCisJc3RhdGUtPmZuID0gU2xydUZpbGVOYW1lKHN0 YXRlKTsKKwlzdGF0ZS0+ZmlsZSA9IGZvcGVuKHN0YXRlLT5mbiwgInJiIik7CisJaWYgKCFzdGF0 ZS0+ZmlsZSkKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiOiAlbSIsIHN0 YXRlLT5mbik7Cit9CisKKy8qCisgKiBDbG9zZSBTTFJVIHNlZ21lbnQgZmlsZS4KKyAqLworc3Rh dGljIHZvaWQKK2Nsb3NlX3NlZ21lbnQoU2xydVNlZ1N0YXRlICpzdGF0ZSkKK3sKKwlpZiAoc3Rh dGUtPmZpbGUpCisJeworCQlmY2xvc2Uoc3RhdGUtPmZpbGUpOworCQlzdGF0ZS0+ZmlsZSA9IE5V TEw7CisJfQorCisJaWYgKHN0YXRlLT5mbikKKwl7CisJCXBmcmVlKHN0YXRlLT5mbik7CisJCXN0 YXRlLT5mbiA9IE5VTEw7CisJfQorfQorCisvKgorICogUmVhZCBuZXh0IHBhZ2UgZnJvbSB0aGUg b2xkIDMyLWJpdCBvZmZzZXQgc2VnbWVudCBmaWxlLgorICovCitzdGF0aWMgaW50CityZWFkX29s ZF9zZWdtZW50X3BhZ2UoU2xydVNlZ1N0YXRlICpzdGF0ZSwgdm9pZCAqYnVmLCBib29sICplbXB0 eSkKK3sKKwlpbnQJCWxlbjsKKworCS8qIE9wZW4gbmV4dCBzZWdtZW50IGZpbGUsIGlmIG5lZWRl ZC4gKi8KKwlpZiAoIXN0YXRlLT5mbikKKwl7CisJCWlmICghc3RhdGUtPnNlZ25vKQorCQkJc3Rh dGUtPmxlYWRpbmdfZ2FwID0gdHJ1ZTsKKworCQlvcGVuX3NlZ21lbnQoc3RhdGUpOworCisJCS8q IFNldCBwb3NpdGlvbiB0byB0aGUgbmVlZGVkIHBhZ2UuICovCisJCWlmIChzdGF0ZS0+cGFnZW5v ID4gMCAmJgorCQkJZnNlZWsoc3RhdGUtPmZpbGUsIHN0YXRlLT5wYWdlbm8gKiBCTENLU1osIFNF RUtfU0VUKSkKKwkJeworCQkJY2xvc2Vfc2VnbWVudChzdGF0ZSk7CisJCX0KKwl9CisKKwlpZiAo c3RhdGUtPmZpbGUpCisJeworCQkvKiBTZWdtZW50IGZpbGUgZG8gZXhpc3RzLCByZWFkIHBhZ2Ug ZnJvbSBpdC4gKi8KKwkJc3RhdGUtPmxlYWRpbmdfZ2FwID0gZmFsc2U7CisKKwkJbGVuID0gZnJl YWQoYnVmLCBzaXplb2YoY2hhciksIEJMQ0tTWiwgc3RhdGUtPmZpbGUpOworCisJCS8qIEFyZSB3 ZSBkb25lIG9yIHdhcyB0aGVyZSBhbiBlcnJvcj8gKi8KKwkJaWYgKGxlbiA8PSAwKQorCQl7CisJ CQlpZiAoZmVycm9yKHN0YXRlLT5maWxlKSkKKwkJCQlwZ19mYXRhbCgiZXJyb3IgcmVhZGluZyBm aWxlIFwiJXNcIjogJW0iLCBzdGF0ZS0+Zm4pOworCisJCQlpZiAoZmVvZihzdGF0ZS0+ZmlsZSkp CisJCQl7CisJCQkJKmVtcHR5ID0gdHJ1ZTsKKwkJCQlsZW4gPSAtMTsKKworCQkJCWNsb3NlX3Nl Z21lbnQoc3RhdGUpOworCQkJfQorCQl9CisJCWVsc2UKKwkJCSplbXB0eSA9IGZhbHNlOworCX0K KwllbHNlIGlmICghc3RhdGUtPmxlYWRpbmdfZ2FwKQorCXsKKwkJLyogV2UgcmVhY2hlZCB0aGUg bGFzdCBzZWdtZW50LiAqLworCQlsZW4gPSAtMTsKKwkJKmVtcHR5ID0gdHJ1ZTsKKwl9CisJZWxz ZQorCXsKKwkJLyogU2tpcCBmZXcgZmlyc3Qgc2VnbWVudHMgaWYgdGhleSB3ZXJlIGZyb3plbiBh bmQgcmVtb3ZlZC4gKi8KKwkJbGVuID0gQkxDS1NaOworCQkqZW1wdHkgPSB0cnVlOworCX0KKwor CWlmICgrK3N0YXRlLT5wYWdlbm8gPj0gU0xSVV9QQUdFU19QRVJfU0VHTUVOVCkKKwl7CisJCS8q IFN0YXJ0IGEgbmV3IHNlZ21lbnQuICovCisJCXN0YXRlLT5zZWdubysrOworCQlzdGF0ZS0+cGFn ZW5vID0gMDsKKworCQljbG9zZV9zZWdtZW50KHN0YXRlKTsKKwl9CisKKwlyZXR1cm4gbGVuOwor fQorCisvKgorICogV3JpdGUgbmV4dCBwYWdlIHRvIHRoZSBuZXcgNjQtYml0IG9mZnNldCBzZWdt ZW50IGZpbGUuCisgKi8KK3N0YXRpYyB2b2lkCit3cml0ZV9uZXdfc2VnbWVudF9wYWdlKFNscnVT ZWdTdGF0ZSAqc3RhdGUsIHZvaWQgKmJ1ZikKK3sKKwkvKgorCSAqIENyZWF0ZSBhIG5ldyBzZWdt ZW50IGZpbGUgaWYgd2Ugc3RpbGwgZGlkbid0LiAgQ3JlYXRpb24gaXMKKwkgKiBwb3N0cG9uZWQg dW50aWwgdGhlIGZpcnN0IG5vbi1lbXB0eSBwYWdlIGlzIGZvdW5kLiAgVGhpcyBoZWxwcworCSAq IG5vdCB0byBjcmVhdGUgY29tcGxldGVseSBlbXB0eSBzZWdtZW50cy4KKwkgKi8KKwlpZiAoIXN0 YXRlLT5maWxlKQorCXsKKwkJY3JlYXRlX3NlZ21lbnQoc3RhdGUpOworCisJCS8qIFdyaXRlIHpl cm9lcyB0byB0aGUgcHJldmlvdXNseSBza2lwcGVkIHByZWZpeC4gKi8KKwkJaWYgKHN0YXRlLT5w YWdlbm8gPiAwKQorCQl7CisJCQljaGFyCQl6ZXJvYnVmW0JMQ0tTWl0gPSB7MH07CisKKwkJCWZv ciAoaW50NjQgaSA9IDA7IGkgPCBzdGF0ZS0+cGFnZW5vOyBpKyspCisJCQl7CisJCQkJaWYgKGZ3 cml0ZSh6ZXJvYnVmLCBzaXplb2YoY2hhciksIEJMQ0tTWiwgc3RhdGUtPmZpbGUpICE9IEJMQ0tT WikKKwkJCQkJcGdfZmF0YWwoImNvdWxkIG5vdCB3cml0ZSBmaWxlIFwiJXNcIjogJW0iLCBzdGF0 ZS0+Zm4pOworCQkJfQorCQl9CisJfQorCisJLyogV3JpdGUgcGFnZSB0byB0aGUgbmV3IHNlZ21l bnQgKGlmIGl0IHdhcyBjcmVhdGVkKS4gKi8KKwlpZiAoc3RhdGUtPmZpbGUpCisJeworCQlpZiAo ZndyaXRlKGJ1Ziwgc2l6ZW9mKGNoYXIpLCBCTENLU1osIHN0YXRlLT5maWxlKSAhPSBCTENLU1op CisJCQlwZ19mYXRhbCgiY291bGQgbm90IHdyaXRlIGZpbGUgXCIlc1wiOiAlbSIsIHN0YXRlLT5m bik7CisJfQorCisJc3RhdGUtPnBhZ2VubysrOworCisJLyoKKwkgKiBEaWQgd2UgcmVhY2ggdGhl IG1heGltdW0gcGFnZSBudW1iZXI/ICBUaGVuIGNsb3NlIHNlZ21lbnQgZmlsZQorCSAqIGFuZCBj cmVhdGUgYSBuZXcgb25lIG9uIHRoZSBuZXh0IGl0ZXJhdGlvbi4KKwkgKi8KKwlpZiAoc3RhdGUt PnBhZ2VubyA+PSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UKQorCXsKKwkJc3RhdGUtPnNlZ25vKys7 CisJCXN0YXRlLT5wYWdlbm8gPSAwOworCQljbG9zZV9zZWdtZW50KHN0YXRlKTsKKwl9Cit9CisK Ky8qCisgKiBDb252ZXJ0IHBnX211bHRpeGFjdC9vZmZzZXRzIHNlZ21lbnRzIGFuZCByZXR1cm4g b2xkZXN0IG11bHRpIG9mZnNldC4KKyAqLwordWludDY0Citjb252ZXJ0X211bHRpeGFjdF9vZmZz ZXRzKHZvaWQpCit7CisJLyogU2VlIG11bHRpeGFjdC5jICovCisjZGVmaW5lIE1VTFRJWEFDVF9P RkZTRVRTX1BFUl9QQUdFX09MRAkoQkxDS1NaIC8gc2l6ZW9mKHVpbnQzMikpCisjZGVmaW5lIE1V TFRJWEFDVF9PRkZTRVRTX1BFUl9QQUdFCQkoQkxDS1NaIC8gc2l6ZW9mKE11bHRpWGFjdE9mZnNl dCkpCisKKwlTbHJ1U2VnU3RhdGUJb2xkc2VnID0gezB9LAorCQkJCQluZXdzZWcgPSB7MH07CisJ dWludDMyCQkJb2xkYnVmW01VTFRJWEFDVF9PRkZTRVRTX1BFUl9QQUdFX09MRF0gPSB7MH07CisJ TXVsdGlYYWN0T2Zmc2V0CW5ld2J1ZltNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRV0gPSB7MH07 CisJLyoKKwkgKiBJdCBpcyBtdWNoIGVhc2llciB0byBkZWFsIHdpdGggbXVsdGkgd3JhcGFyb3Vu ZCBpbiA2NCBiaXRkIGZvcm1hdC4gIFRodXMKKwkgKiB3ZSB1c2UgNjQgYml0cyBmb3IgbXVsdGkt dHJhbnNhY3Rpb25zLCBhbHRob3VnaCB0aGV5IHJlbWFpbiAzMiBiaXRzLgorCSAqLworCXVpbnQ2 NAkJCW9sZGVzdF9tdWx0aSA9IG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9vbGRzdE11 bHRpLAorCQkJCQluZXh0X211bHRpID0gb2xkX2NsdXN0ZXIuY29udHJvbGRhdGEuY2hrcG50X254 dG11bHRpLAorCQkJCQltdWx0aSwKKwkJCQkJb2xkX2VudHJ5LAorCQkJCQluZXdfZW50cnk7CisJ Ym9vbAkJCWZvdW5kID0gZmFsc2U7CisJdWludDY0CQkJb2xkZXN0X29mZnNldCA9IDA7CisKKwlw cmVwX3N0YXR1cygiQ29udmVydGluZyBwZ19tdWx0aXhhY3Qvb2Zmc2V0cyB0byA2NC1iaXQiKTsK KworCW9sZHNlZy5wYWdlbm8gPSBvbGRlc3RfbXVsdGkgLyBNVUxUSVhBQ1RfT0ZGU0VUU19QRVJf UEFHRV9PTEQ7CisJb2xkc2VnLnNlZ25vID0gb2xkc2VnLnBhZ2VubyAvIFNMUlVfUEFHRVNfUEVS X1NFR01FTlQ7CisJb2xkc2VnLnBhZ2VubyAlPSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UOworCW9s ZHNlZy5kaXIgPSBwc3ByaW50ZigiJXMvcGdfbXVsdGl4YWN0L29mZnNldHMiLCBvbGRfY2x1c3Rl ci5wZ2RhdGEpOworCW9sZHNlZy5sb25nX3NlZ21lbnRfbmFtZXMgPSBmYWxzZTsJCS8qIG9sZCBm b3JtYXQgWFhYWCAqLworCisJbmV3c2VnLnBhZ2VubyA9IG9sZGVzdF9tdWx0aSAvIE1VTFRJWEFD VF9PRkZTRVRTX1BFUl9QQUdFOworCW5ld3NlZy5zZWdubyA9IG5ld3NlZy5wYWdlbm8gLyBTTFJV X1BBR0VTX1BFUl9TRUdNRU5UOworCW5ld3NlZy5wYWdlbm8gJT0gU0xSVV9QQUdFU19QRVJfU0VH TUVOVDsKKwluZXdzZWcuZGlyID0gcHNwcmludGYoIiVzL3BnX211bHRpeGFjdC9vZmZzZXRzIiwg bmV3X2NsdXN0ZXIucGdkYXRhKTsKKwluZXdzZWcubG9uZ19zZWdtZW50X25hbWVzID0gdHJ1ZTsK KworCW9sZF9lbnRyeSA9IG9sZGVzdF9tdWx0aSAlIE1VTFRJWEFDVF9PRkZTRVRTX1BFUl9QQUdF X09MRDsKKwluZXdfZW50cnkgPSBvbGRlc3RfbXVsdGkgJSBNVUxUSVhBQ1RfT0ZGU0VUU19QRVJf UEFHRTsKKworCWlmIChuZXh0X211bHRpIDwgb2xkZXN0X211bHRpKQorCQluZXh0X211bHRpICs9 ICh1aW50NjQpIDEgPDwgMzI7CQkvKiB3cmFwYXJvdW5kICovCisKKwlmb3IgKG11bHRpID0gb2xk ZXN0X211bHRpOyBtdWx0aSA8IG5leHRfbXVsdGk7IG9sZF9lbnRyeSA9IDApCisJeworCQlpbnQJ CQlvbGRsZW47CisJCWJvb2wJCWVtcHR5OworCisJCS8qIEhhbmRsZSBwb3NzaWJsZSBzZWdtZW50 IHdyYXBhcm91bmQuICovCisJCWlmIChvbGRzZWcuc2Vnbm8gPiBNYXhNdWx0aVhhY3RJZCAvCisJ CQkJCQkJCU1VTFRJWEFDVF9PRkZTRVRTX1BFUl9QQUdFX09MRCAvCisJCQkJCQkJCVNMUlVfUEFH RVNfUEVSX1NFR01FTlQpCisJCQlvbGRzZWcuc2Vnbm8gPSAwOworCisJCS8qIFJlYWQgb2xkIG9m ZnNldCBzZWdtZW50LiAqLworCQlvbGRsZW4gPSByZWFkX29sZF9zZWdtZW50X3BhZ2UoJm9sZHNl Zywgb2xkYnVmLCAmZW1wdHkpOworCQlpZiAob2xkbGVuIDw9IDAgfHwgZW1wdHkpCisJCQlwZ19m YXRhbCgiY2Fubm90IHJlYWQgcGFnZSAlbGx1IGZyb20gZmlsZSBcIiVzXCI6ICVtIiwKKwkJCQkJ ICh1bnNpZ25lZCBsb25nIGxvbmcpIG9sZHNlZy5wYWdlbm8sIG9sZHNlZy5mbik7CisKKwkJLyog RmlsbCBwb3NzaWJsZSBnYXAuICovCisJCWlmIChvbGRsZW4gPCBCTENLU1opCisJCQltZW1zZXQo KGNoYXIgKikgb2xkYnVmICsgb2xkbGVuLCAwLCBCTENLU1ogLSBvbGRsZW4pOworCisJCS8qIFNh dmUgb2xkZXN0IG11bHRpIG9mZnNldCAqLworCQlpZiAoIWZvdW5kKQorCQl7CisJCQlvbGRlc3Rf b2Zmc2V0ID0gb2xkYnVmW29sZF9lbnRyeV07CisJCQlmb3VuZCA9IHRydWU7CisJCX0KKworCQkv KiAuLi4gc2tpcCB3cmFwcGVkLWFyb3VuZCBpbnZhbGlkIG11bHRpICovCisJCWlmIChtdWx0aSA9 PSAodWludDY0KSAxIDw8IDMyKQorCQl7CisJCQlBc3NlcnQob2xkc2VnLnNlZ25vID09IDApOwor CQkJQXNzZXJ0KG9sZHNlZy5wYWdlbm8gPT0gMSk7CisJCQlBc3NlcnQob2xkX2VudHJ5ID09IDAp OworCisJCQltdWx0aSArPSBGaXJzdE11bHRpWGFjdElkOworCQkJb2xkX2VudHJ5ID0gRmlyc3RN dWx0aVhhY3RJZDsKKwkJfQorCisJCS8qIENvcHkgZW50cmllcyB0byB0aGUgbmV3IHBhZ2UuICov CisJCWZvciAoOyBtdWx0aSA8IG5leHRfbXVsdGkgJiYgb2xkX2VudHJ5IDwgTVVMVElYQUNUX09G RlNFVFNfUEVSX1BBR0VfT0xEOworCQkJIG11bHRpKyssIG9sZF9lbnRyeSsrKQorCQl7CisJCQlN dWx0aVhhY3RPZmZzZXQgb2Zmc2V0ID0gb2xkYnVmW29sZF9lbnRyeV07CisKKwkJCS8qIEhhbmRs ZSBwb3NzaWJsZSBvZmZzZXQgd3JhcGFyb3VuZC4gKi8KKwkJCWlmIChvZmZzZXQgPCBvbGRlc3Rf b2Zmc2V0KQorCQkJCW9mZnNldCArPSAoKHVpbnQ2NCkgMSA8PCAzMikgLSAxOworCisJCQkvKiBT dWJ0cmFjdCBvbGRlc3Rfb2Zmc2V0LCBzbyBuZXcgb2Zmc2V0cyB3aWxsIHN0YXJ0IGZyb20gMS4g Ki8KKwkJCW5ld2J1ZltuZXdfZW50cnkrK10gPSBvZmZzZXQgLSBvbGRlc3Rfb2Zmc2V0ICsgMTsK KwkJCWlmIChuZXdfZW50cnkgPj0gTVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0UpCisJCQl7CisJ CQkJLyogV3JpdGUgYSBuZXcgcGFnZS4gKi8KKwkJCQl3cml0ZV9uZXdfc2VnbWVudF9wYWdlKCZu ZXdzZWcsIG5ld2J1Zik7CisJCQkJbmV3X2VudHJ5ID0gMDsKKwkJCX0KKwkJfQorCX0KKworCS8q IFdyaXRlIHRoZSBsYXN0IGluY29tcGxldGUgcGFnZS4gKi8KKwlpZiAobmV3X2VudHJ5ID4gMCB8 fCBvbGRlc3RfbXVsdGkgPT0gbmV4dF9tdWx0aSkKKwl7CisJCW1lbXNldCgmbmV3YnVmW25ld19l bnRyeV0sIDAsCisJCQkgICBzaXplb2YobmV3YnVmWzBdKSAqIChNVUxUSVhBQ1RfT0ZGU0VUU19Q RVJfUEFHRSAtIG5ld19lbnRyeSkpOworCQl3cml0ZV9uZXdfc2VnbWVudF9wYWdlKCZuZXdzZWcs IG5ld2J1Zik7CisJfQorCisJLyogUmVsZWFzZSByZXNvdXJjZXMuICovCisJY2xvc2Vfc2VnbWVu dCgmb2xkc2VnKTsKKwljbG9zZV9zZWdtZW50KCZuZXdzZWcpOworCisJcGZyZWUob2xkc2VnLmRp cik7CisJcGZyZWUobmV3c2VnLmRpcik7CisKKwljaGVja19vaygpOworCisJcmV0dXJuIG9sZGVz dF9vZmZzZXQ7Cit9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdHZlcnNpb24u aCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0dmVyc2lvbi5oCmluZGV4IDE5ODBkNDkyYzMuLjdi MWNkMjJkMWEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0dmVyc2lvbi5oCisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0dmVyc2lvbi5oCkBAIC01Nyw2ICs1Nyw2IEBACiAg Ki8KIAogLyoJCQkJCQkJeXl5eW1tZGROICovCi0jZGVmaW5lIENBVEFMT0dfVkVSU0lPTl9OTwky MDI0MDgzMDEKKyNkZWZpbmUgQ0FUQUxPR19WRVJTSU9OX05PCTIwMjQwODMwMgogCiAjZW5kaWYK LS0gCjIuNDUuMgoK --0000000000002bcabb0621370f04 Content-Type: application/octet-stream; name="v2-0002-Use-64-bit-multixact-offsets.patch" Content-Disposition: attachment; filename="v2-0002-Use-64-bit-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0mgt7sb1 RnJvbSAzYWZkNDgzYzFhMmE1MDVlMTQ2MDNkYTc1OWFkY2VmZDcxMzBmZmY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8bS5vcmxvdkBwb3N0Z3Jlc3Byby5ydT4K RGF0ZTogV2VkLCA2IE1hciAyMDI0IDExOjExOjMzICswMzAwClN1YmplY3Q6IFtQQVRDSCB2MiAy LzNdIFVzZSA2NC1iaXQgbXVsdGl4YWN0IG9mZnNldHMuCgpBdXRob3I6IE1heGltIE9ybG92IDxv 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 L2luY2x1ZGUvYy5oCmluZGV4IGRjMTg0MTM0NmMuLmNjZmI4MmI0NzggMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2MuaAorKysgYi9zcmMvaW5jbHVkZS9jLmgKQEAgLTY2MSw3ICs2NjEsNyBAQCB0 eXBlZGVmIHVpbnQzMiBTdWJUcmFuc2FjdGlvbklkOwogLyogTXVsdGlYYWN0SWQgbXVzdCBiZSBl cXVpdmFsZW50IHRvIFRyYW5zYWN0aW9uSWQsIHRvIGZpdCBpbiB0X3htYXggKi8KIHR5cGVkZWYg VHJhbnNhY3Rpb25JZCBNdWx0aVhhY3RJZDsKIAotdHlwZWRlZiB1aW50MzIgTXVsdGlYYWN0T2Zm c2V0OwordHlwZWRlZiB1aW50NjQgTXVsdGlYYWN0T2Zmc2V0OwogCiB0eXBlZGVmIHVpbnQzMiBD b21tYW5kSWQ7CiAKLS0gCjIuNDUuMgoK --0000000000002bcabb0621370f04--