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 1ubJdq-00Ge78-MA for pgsql-hackers@arkaria.postgresql.org; Mon, 14 Jul 2025 13:54:51 +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 1ubJdo-008F3L-Q6 for pgsql-hackers@arkaria.postgresql.org; Mon, 14 Jul 2025 13:54:49 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ubJdn-008F3D-Vt for pgsql-hackers@lists.postgresql.org; Mon, 14 Jul 2025 13:54:49 +0000 Received: from mail-qt1-x82f.google.com ([2607:f8b0:4864:20::82f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1ubJdm-007FBV-16 for pgsql-hackers@lists.postgresql.org; Mon, 14 Jul 2025 13:54:47 +0000 Received: by mail-qt1-x82f.google.com with SMTP id d75a77b69052e-4ab752e0b76so1474031cf.3 for ; Mon, 14 Jul 2025 06:54:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752501285; x=1753106085; 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=RNXxIDgJa7TzdZv+jGn3+LFEOwynsMVrkRnuvkaPkE0=; b=Ga+cvSiQ6uItfX31maVG9Khmy9XVXxwYsl5goy5B9v5VwkXqUHYRrXK5Hm/tzwpcRu IEgLWea0GcarKWs6aCWeISNiN+9b94ZjkLfD1qAN2/jhb5wk+DcL+ep5P8ATiau3uP2Y /XboqX65O5pJiT0dD/GfdjV16tvtQQuO3WAykkVhe/y1Bf8Do8gW4WQcNFuYp4Ti5jln KE+K+YqD6ztOcVqDbHESFVoe+jRTaaSibcuobtcuXrIDTC+sKZHMmTyBS62uKiyPQWUe csmaj8nQayF1RqFTmr3NFxLIUDMgQCyaQDtZiVov+OgQJObdYgjKXdDWIjOqu6iVtWB3 y+Mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752501285; x=1753106085; 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=RNXxIDgJa7TzdZv+jGn3+LFEOwynsMVrkRnuvkaPkE0=; b=mh/ZRxnp2jOYYHNmK1BDtT576HlwhjWvfZSeV+Y7YoPLxd0Ee53Nk0Av043bTD2dZH 8hr8CUmtEM4L+KPMyRIXLo4h+L0qY4eSg8z0CwzQCxFAnVyFbO4zeYwo/Xnn8z8rTJJL OH9UNivbEOY6LLCL0xmkLMDlDD+xOP1iWIsl9TW48NZW5haEFMcpyPw0O/t/x2RB7LpS Xsn7f2pcfMWPirFTyJYFGOUGJFp26HzpR8XU1TlbzGkiU01O1dcseIZfn1BJAXtjYug/ U++NF9rJfHTshOw/1lMsoA5ZKfxNCZE8226EznMjGkeHtmMjEb9nfOMLy2qP1hkBXZTy lsRw== X-Forwarded-Encrypted: i=1; AJvYcCW3jK6xW6bVRQS7LmjlxA7tjp4ZR1Zb7jjLgSDWLGEblhKqF2LFwS400G4QplYvXABqu90hinBEqk3HRFCM@lists.postgresql.org X-Gm-Message-State: AOJu0Yy2lyaHIUXPT0IBWL4/ZXPqd8PszXuJRgDFUnFH5K7+5GrETo9C YolGZ119u+Kdh/s6/Drf3uYUoFvahplocAqhjNg2Vdycf7CH8/8pGlB6zsy96VHiyouG1oeACDA OuldNh09mEAaUf5kWDYwL1YJL+p6qKRg= X-Gm-Gg: ASbGncutC4rlovauA2AkORoSM3uLRyLfZ6Z3vm1QEmNNh3U7GW28TEMFjWzY+ziJy0I bpQkYtqL+gWnCSxvPCRVO21vbxmT6N5FKTK0Pd/mi6/kiNUD8vG/siiMjZY7EnLniToPtLhyw/Q 4wrkS4L8mVq4Y25u4oIPysb70yMCF/3Fs3ifM0XGdFBjAS5wz+2OpO96jiGovHgD3SZD2qbjxSH pLUZOM+PlV81aQQ X-Google-Smtp-Source: AGHT+IGgv4jFlDjg/jphW/Ajq0xJRxuwdH7FgRWcVSFIp7eYSoW7g6HMUx4VkDwSzwV+TgWywMGkkIuB+A5qrYQHHFk= X-Received: by 2002:ac8:5755:0:b0:4a9:e326:2789 with SMTP id d75a77b69052e-4aa35e22e00mr81496031cf.7.1752501284878; Mon, 14 Jul 2025 06:54:44 -0700 (PDT) MIME-Version: 1.0 References: <4535f3aa-3220-4760-b1f5-2bc91f248e03@iki.fi> <2bc58592-9d74-4af0-bdd1-1a88e8683f7c@iki.fi> <36531c0e-292c-409d-bbc7-a252cf6e910a@iki.fi> In-Reply-To: From: Maxim Orlov Date: Mon, 14 Jul 2025 16:54:33 +0300 X-Gm-Features: Ac12FXzT-ZVa3XgL2pwh_Zv7cHfMKn3zJwUwrb_IYU-zar044fYSWVMZV4SiA2g Message-ID: Subject: Re: POC: make mxidoff 64 bits To: Ashutosh Bapat Cc: wenhui qiu , Heikki Linnakangas , Alexander Korotkov , Postgres hackers Content-Type: multipart/mixed; boundary="0000000000008e206d0639e4003e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000008e206d0639e4003e Content-Type: multipart/alternative; boundary="0000000000008e206c0639e4003c" --0000000000008e206c0639e4003c Content-Type: text/plain; charset="UTF-8" Yet another rebase @ f5a987c0e5 -- Best regards, Maxim Orlov. --0000000000008e206c0639e4003c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Yet another rebase @=C2=A0f5a987c0e5

--
Best regards,
Maxim Orlov= .
--0000000000008e206c0639e4003c-- --0000000000008e206d0639e4003e Content-Type: application/octet-stream; name="v16-0001-Use-64-bit-format-output-for-multixact-offsets.patch" Content-Disposition: attachment; filename="v16-0001-Use-64-bit-format-output-for-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_md35zdx40 RnJvbSA5ZmFhMjAxYzI1MTQyMGQ4OWRhZTJkMDI4NGZhNTc0YWNmZTdmZGM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgNyBBdWcgMjAyNCAxNjozNToyMiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggdjE2IDEvN10g VXNlIDY0LWJpdCBmb3JtYXQgb3V0cHV0IGZvciBtdWx0aXhhY3Qgb2Zmc2V0cwoKQXV0aG9yOiBN YXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3Jt Z3JkZXNjL214YWN0ZGVzYy5jICAgfCAgNCArKy0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRl c2MveGxvZ2Rlc2MuYyAgICB8ICAyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0 aXhhY3QuYyAgICB8IDEzICsrKysrKystLS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L3hsb2dyZWNvdmVyeS5jIHwgIDIgKy0KIHNyYy9iaW4vcGdfY29udHJvbGRhdGEvcGdfY29udHJv bGRhdGEuYyAgIHwgIDIgKy0KIHNyYy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYyAgICAg ICAgIHwgIDQgKystLQogNiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAxMyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvbXhhY3Rk ZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvbXhhY3RkZXNjLmMKaW5kZXggM2Nh MDU4MmRiMy4uMDUyZGQwYTRjZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3Jk ZXNjL214YWN0ZGVzYy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9teGFjdGRl c2MuYwpAQCAtNjUsNyArNjUsNyBAQCBtdWx0aXhhY3RfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExv Z1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCXhsX211bHRpeGFjdF9jcmVhdGUgKnhscmVjID0gKHhs X211bHRpeGFjdF9jcmVhdGUgKikgcmVjOwogCQlpbnQJCQlpOwogCi0JCWFwcGVuZFN0cmluZ0lu Zm8oYnVmLCAiJXUgb2Zmc2V0ICV1IG5tZW1iZXJzICVkOiAiLCB4bHJlYy0+bWlkLAorCQlhcHBl bmRTdHJpbmdJbmZvKGJ1ZiwgIiV1IG9mZnNldCAlIiBQUkl1NjQgIiBubWVtYmVycyAlZDogIiwg eGxyZWMtPm1pZCwKIAkJCQkJCSB4bHJlYy0+bW9mZiwgeGxyZWMtPm5tZW1iZXJzKTsKIAkJZm9y IChpID0gMDsgaSA8IHhscmVjLT5ubWVtYmVyczsgaSsrKQogCQkJb3V0X21lbWJlcihidWYsICZ4 bHJlYy0+bWVtYmVyc1tpXSk7CkBAIC03NCw3ICs3NCw3IEBAIG11bHRpeGFjdF9kZXNjKFN0cmlu Z0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAl7CiAJCXhsX211bHRpeGFjdF90 cnVuY2F0ZSAqeGxyZWMgPSAoeGxfbXVsdGl4YWN0X3RydW5jYXRlICopIHJlYzsKIAotCQlhcHBl bmRTdHJpbmdJbmZvKGJ1ZiwgIm9mZnNldHMgWyV1LCAldSksIG1lbWJlcnMgWyV1LCAldSkiLAor CQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIm9mZnNldHMgWyV1LCAldSksIG1lbWJlcnMgWyUiIFBS SXU2NCAiLCAlIiBQUkl1NjQgIikiLAogCQkJCQkJIHhscmVjLT5zdGFydFRydW5jT2ZmLCB4bHJl Yy0+ZW5kVHJ1bmNPZmYsCiAJCQkJCQkgeGxyZWMtPnN0YXJ0VHJ1bmNNZW1iLCB4bHJlYy0+ZW5k VHJ1bmNNZW1iKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2Mv eGxvZ2Rlc2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy94bG9nZGVzYy5jCmluZGV4 IGNkNmMyYTJmNjUuLjQ0MTAzNGY1OTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9y bWdyZGVzYy94bG9nZGVzYy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy94bG9n ZGVzYy5jCkBAIC02Niw3ICs2Niw3IEBAIHhsb2dfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1Jl YWRlclN0YXRlICpyZWNvcmQpCiAJCUNoZWNrUG9pbnQgKmNoZWNrcG9pbnQgPSAoQ2hlY2tQb2lu dCAqKSByZWM7CiAKIAkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJyZWRvICVYLyUwOFg7ICIKLQkJ CQkJCSAidGxpICV1OyBwcmV2IHRsaSAldTsgZnB3ICVzOyB3YWxfbGV2ZWwgJXM7IHhpZCAldTol dTsgb2lkICV1OyBtdWx0aSAldTsgb2Zmc2V0ICV1OyAiCisJCQkJCQkgInRsaSAldTsgcHJldiB0 bGkgJXU7IGZwdyAlczsgd2FsX2xldmVsICVzOyB4aWQgJXU6JXU7IG9pZCAldTsgbXVsdGkgJXU7 IG9mZnNldCAlIiBQUkl1NjQgIjsgIgogCQkJCQkJICJvbGRlc3QgeGlkICV1IGluIERCICV1OyBv bGRlc3QgbXVsdGkgJXUgaW4gREIgJXU7ICIKIAkJCQkJCSAib2xkZXN0L25ld2VzdCBjb21taXQg dGltZXN0YW1wIHhpZDogJXUvJXU7ICIKIAkJCQkJCSAib2xkZXN0IHJ1bm5pbmcgeGlkICV1OyAl cyIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jCmluZGV4IDNjYjA5YzNkNTku LjNhMWZiNDc0NmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRp eGFjdC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jCkBAIC0x MjYxLDcgKzEyNjEsOCBAQCBHZXROZXdNdWx0aVhhY3RJZChpbnQgbm1lbWJlcnMsIE11bHRpWGFj dE9mZnNldCAqb2Zmc2V0KQogCiAJTFdMb2NrUmVsZWFzZShNdWx0aVhhY3RHZW5Mb2NrKTsKIAot CWRlYnVnX2Vsb2c0KERFQlVHMiwgIkdldE5ldzogcmV0dXJuaW5nICV1IG9mZnNldCAldSIsIHJl c3VsdCwgKm9mZnNldCk7CisJZGVidWdfZWxvZzQoREVCVUcyLCAiR2V0TmV3OiByZXR1cm5pbmcg JXUgb2Zmc2V0ICUiIFBSSXU2NCwgcmVzdWx0LAorCQkJCSpvZmZzZXQpOwogCXJldHVybiByZXN1 bHQ7CiB9CiAKQEAgLTIyMjksNyArMjIzMCw3IEBAIE11bHRpWGFjdEdldENoZWNrcHRNdWx0aShi b29sIGlzX3NodXRkb3duLAogCUxXTG9ja1JlbGVhc2UoTXVsdGlYYWN0R2VuTG9jayk7CiAKIAlk ZWJ1Z19lbG9nNihERUJVRzIsCi0JCQkJIk11bHRpWGFjdDogY2hlY2twb2ludCBpcyBuZXh0TXVs dGkgJXUsIG5leHRPZmZzZXQgJXUsIG9sZGVzdE11bHRpICV1IGluIERCICV1IiwKKwkJCQkiTXVs dGlYYWN0OiBjaGVja3BvaW50IGlzIG5leHRNdWx0aSAldSwgbmV4dE9mZnNldCAlIiBQUkl1NjQg Iiwgb2xkZXN0TXVsdGkgJXUgaW4gREIgJXUiLAogCQkJCSpuZXh0TXVsdGksICpuZXh0TXVsdGlP ZmZzZXQsICpvbGRlc3RNdWx0aSwgKm9sZGVzdE11bHRpREIpOwogfQogCkBAIC0yMjY0LDcgKzIy NjUsNyBAQCB2b2lkCiBNdWx0aVhhY3RTZXROZXh0TVhhY3QoTXVsdGlYYWN0SWQgbmV4dE11bHRp LAogCQkJCQkgIE11bHRpWGFjdE9mZnNldCBuZXh0TXVsdGlPZmZzZXQpCiB7Ci0JZGVidWdfZWxv ZzQoREVCVUcyLCAiTXVsdGlYYWN0OiBzZXR0aW5nIG5leHQgbXVsdGkgdG8gJXUgb2Zmc2V0ICV1 IiwKKwlkZWJ1Z19lbG9nNChERUJVRzIsICJNdWx0aVhhY3Q6IHNldHRpbmcgbmV4dCBtdWx0aSB0 byAldSBvZmZzZXQgJSIgUFJJdTY0LAogCQkJCW5leHRNdWx0aSwgbmV4dE11bHRpT2Zmc2V0KTsK IAlMV0xvY2tBY3F1aXJlKE11bHRpWGFjdEdlbkxvY2ssIExXX0VYQ0xVU0lWRSk7CiAJTXVsdGlY YWN0U3RhdGUtPm5leHRNWGFjdCA9IG5leHRNdWx0aTsKQEAgLTI0NTUsNyArMjQ1Niw3IEBAIE11 bHRpWGFjdEFkdmFuY2VOZXh0TVhhY3QoTXVsdGlYYWN0SWQgbWluTXVsdGksCiAJfQogCWlmIChN dWx0aVhhY3RPZmZzZXRQcmVjZWRlcyhNdWx0aVhhY3RTdGF0ZS0+bmV4dE9mZnNldCwgbWluTXVs dGlPZmZzZXQpKQogCXsKLQkJZGVidWdfZWxvZzMoREVCVUcyLCAiTXVsdGlYYWN0OiBzZXR0aW5n IG5leHQgb2Zmc2V0IHRvICV1IiwKKwkJZGVidWdfZWxvZzMoREVCVUcyLCAiTXVsdGlYYWN0OiBz ZXR0aW5nIG5leHQgb2Zmc2V0IHRvICUiIFBSSVU2NCwKIAkJCQkJbWluTXVsdGlPZmZzZXQpOwog CQlNdWx0aVhhY3RTdGF0ZS0+bmV4dE9mZnNldCA9IG1pbk11bHRpT2Zmc2V0OwogCX0KQEAgLTMx NTEsNyArMzE1Miw3IEBAIFRydW5jYXRlTXVsdGlYYWN0KE11bHRpWGFjdElkIG5ld09sZGVzdE11 bHRpLCBPaWQgbmV3T2xkZXN0TXVsdGlEQikKIAogCWVsb2coREVCVUcxLCAicGVyZm9ybWluZyBt dWx0aXhhY3QgdHJ1bmNhdGlvbjogIgogCQkgIm9mZnNldHMgWyV1LCAldSksIG9mZnNldHMgc2Vn bWVudHMgWyUiIFBSSXg2NCAiLCAlIiBQUkl4NjQgIiksICIKLQkJICJtZW1iZXJzIFsldSwgJXUp LCBtZW1iZXJzIHNlZ21lbnRzIFslIiBQUkl4NjQgIiwgJSIgUFJJeDY0ICIpIiwKKwkJICJtZW1i ZXJzIFslIiBQUkl1NjQgIiwgJSIgUFJJdTY0ICIpLCBtZW1iZXJzIHNlZ21lbnRzIFslIiBQUkl4 NjQgIiwgJSIgUFJJeDY0ICIpIiwKIAkJIG9sZGVzdE11bHRpLCBuZXdPbGRlc3RNdWx0aSwKIAkJ IE11bHRpWGFjdElkVG9PZmZzZXRTZWdtZW50KG9sZGVzdE11bHRpKSwKIAkJIE11bHRpWGFjdElk VG9PZmZzZXRTZWdtZW50KG5ld09sZGVzdE11bHRpKSwKQEAgLTMzNzksNyArMzM4MCw3IEBAIG11 bHRpeGFjdF9yZWRvKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCWVsb2coREVCVUcxLCAi cmVwbGF5aW5nIG11bHRpeGFjdCB0cnVuY2F0aW9uOiAiCiAJCQkgIm9mZnNldHMgWyV1LCAldSks IG9mZnNldHMgc2VnbWVudHMgWyUiIFBSSXg2NCAiLCAlIiBQUkl4NjQgIiksICIKLQkJCSAibWVt YmVycyBbJXUsICV1KSwgbWVtYmVycyBzZWdtZW50cyBbJSIgUFJJeDY0ICIsICUiIFBSSXg2NCAi KSIsCisJCQkgIm1lbWJlcnMgWyUiIFBSSXU2NCAiLCAlIiBQUkl1NjQgIiksIG1lbWJlcnMgc2Vn bWVudHMgWyUiIFBSSXg2NCAiLCAlIiBQUkl4NjQgIikiLAogCQkJIHhscmVjLnN0YXJ0VHJ1bmNP ZmYsIHhscmVjLmVuZFRydW5jT2ZmLAogCQkJIE11bHRpWGFjdElkVG9PZmZzZXRTZWdtZW50KHhs cmVjLnN0YXJ0VHJ1bmNPZmYpLAogCQkJIE11bHRpWGFjdElkVG9PZmZzZXRTZWdtZW50KHhscmVj LmVuZFRydW5jT2ZmKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hs b2dyZWNvdmVyeS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMK aW5kZXggMjM4NzhiMmRkOS4uNTFkZDUyZjEyNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0veGxvZ3JlY292ZXJ5LmMKQEAgLTg4NCw3ICs4ODQsNyBAQCBJbml0V2FsUmVjb3ZlcnkoQ29u dHJvbEZpbGVEYXRhICpDb250cm9sRmlsZSwgYm9vbCAqd2FzU2h1dGRvd25fcHRyLAogCQkJCQkJ CSBVNjRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY2hlY2tQb2ludC5uZXh0WGlkKSwKIAkJCQkJCQkg Y2hlY2tQb2ludC5uZXh0T2lkKSkpOwogCWVyZXBvcnQoREVCVUcxLAotCQkJKGVycm1zZ19pbnRl cm5hbCgibmV4dCBNdWx0aVhhY3RJZDogJXU7IG5leHQgTXVsdGlYYWN0T2Zmc2V0OiAldSIsCisJ CQkoZXJybXNnX2ludGVybmFsKCJuZXh0IE11bHRpWGFjdElkOiAldTsgbmV4dCBNdWx0aVhhY3RP ZmZzZXQ6ICUiIFBSSXU2NCwKIAkJCQkJCQkgY2hlY2tQb2ludC5uZXh0TXVsdGksIGNoZWNrUG9p bnQubmV4dE11bHRpT2Zmc2V0KSkpOwogCWVyZXBvcnQoREVCVUcxLAogCQkJKGVycm1zZ19pbnRl cm5hbCgib2xkZXN0IHVuZnJvemVuIHRyYW5zYWN0aW9uIElEOiAldSwgaW4gZGF0YWJhc2UgJXUi LApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19jb250cm9sZGF0YS9wZ19jb250cm9sZGF0YS5jIGIv c3JjL2Jpbi9wZ19jb250cm9sZGF0YS9wZ19jb250cm9sZGF0YS5jCmluZGV4IDEwZGUwNThjZTku LjUyOTUxMDhhZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfY29udHJvbGRhdGEvcGdfY29udHJv bGRhdGEuYworKysgYi9zcmMvYmluL3BnX2NvbnRyb2xkYXRhL3BnX2NvbnRyb2xkYXRhLmMKQEAg LTI2NCw3ICsyNjQsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCSAgIENvbnRy b2xGaWxlLT5jaGVja1BvaW50Q29weS5uZXh0T2lkKTsKIAlwcmludGYoXygiTGF0ZXN0IGNoZWNr cG9pbnQncyBOZXh0TXVsdGlYYWN0SWQ6ICAldVxuIiksCiAJCSAgIENvbnRyb2xGaWxlLT5jaGVj a1BvaW50Q29weS5uZXh0TXVsdGkpOwotCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIE5l eHRNdWx0aU9mZnNldDogICV1XG4iKSwKKwlwcmludGYoXygiTGF0ZXN0IGNoZWNrcG9pbnQncyBO ZXh0TXVsdGlPZmZzZXQ6ICAlIiBQUkl1NjQgIlxuIiksCiAJCSAgIENvbnRyb2xGaWxlLT5jaGVj a1BvaW50Q29weS5uZXh0TXVsdGlPZmZzZXQpOwogCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2lu dCdzIG9sZGVzdFhJRDogICAgICAgICV1XG4iKSwKIAkJICAgQ29udHJvbEZpbGUtPmNoZWNrUG9p bnRDb3B5Lm9sZGVzdFhpZCk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3Jlc2V0d2FsL3BnX3Jl c2V0d2FsLmMgYi9zcmMvYmluL3BnX3Jlc2V0d2FsL3BnX3Jlc2V0d2FsLmMKaW5kZXggZTg3NmYz NWYzOC4uZGYyZDhmMzdjZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19yZXNldHdhbC9wZ19yZXNl dHdhbC5jCisrKyBiL3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYwpAQCAtNzU5LDcg Kzc1OSw3IEBAIFByaW50Q29udHJvbFZhbHVlcyhib29sIGd1ZXNzZWQpCiAJCSAgIENvbnRyb2xG aWxlLmNoZWNrUG9pbnRDb3B5Lm5leHRPaWQpOwogCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2lu dCdzIE5leHRNdWx0aVhhY3RJZDogICV1XG4iKSwKIAkJICAgQ29udHJvbEZpbGUuY2hlY2tQb2lu dENvcHkubmV4dE11bHRpKTsKLQlwcmludGYoXygiTGF0ZXN0IGNoZWNrcG9pbnQncyBOZXh0TXVs dGlPZmZzZXQ6ICAldVxuIiksCisJcHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50J3MgTmV4dE11 bHRpT2Zmc2V0OiAgJSIgUFJJdTY0ICJcbiIpLAogCQkgICBDb250cm9sRmlsZS5jaGVja1BvaW50 Q29weS5uZXh0TXVsdGlPZmZzZXQpOwogCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIG9s ZGVzdFhJRDogICAgICAgICV1XG4iKSwKIAkJICAgQ29udHJvbEZpbGUuY2hlY2tQb2ludENvcHku b2xkZXN0WGlkKTsKQEAgLTgzMyw3ICs4MzMsNyBAQCBQcmludE5ld0NvbnRyb2xWYWx1ZXModm9p ZCkKIAogCWlmIChzZXRfbXhvZmYgIT0gLTEpCiAJewotCQlwcmludGYoXygiTmV4dE11bHRpT2Zm c2V0OiAgICAgICAgICAgICAgICAgICAgICAldVxuIiksCisJCXByaW50ZihfKCJOZXh0TXVsdGlP ZmZzZXQ6ICAgICAgICAgICAgICAgICAgICAgICUiIFBSSXU2NCAiXG4iKSwKIAkJCSAgIENvbnRy b2xGaWxlLmNoZWNrUG9pbnRDb3B5Lm5leHRNdWx0aU9mZnNldCk7CiAJfQogCi0tIAoyLjQ5LjAK Cg== --0000000000008e206d0639e4003e Content-Type: application/octet-stream; name="v16-0002-Use-64-bit-multixact-offsets.patch" Content-Disposition: attachment; filename="v16-0002-Use-64-bit-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_md35zdxk1 RnJvbSBjOGQ5Y2NhZmM4NDdjZGM2ZTAyZmExNGIyYWY0ZGNmNmY4YjY2MWRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8bS5vcmxvdkBwb3N0Z3Jlc3Byby5ydT4K RGF0ZTogV2VkLCA2IE1hciAyMDI0IDExOjExOjMzICswMzAwClN1YmplY3Q6IFtQQVRDSCB2MTYg Mi83XSBVc2UgNjQtYml0IG11bHRpeGFjdCBvZmZzZXRzLgoKQXV0aG9yOiBNYXhpbSBPcmxvdiA8 b3Jsb3ZtZ0BnbWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4 YWN0LmMgfCAxNzAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL2Jpbi9wZ19yZXNldHdh bC9wZ19yZXNldHdhbC5jICAgICAgfCAgIDIgKy0KIHNyYy9iaW4vcGdfcmVzZXR3YWwvdC8wMDFf YmFzaWMucGwgICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4YWN0LmggICAg ICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvYy5oICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDIgKy0KIDUgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMTY4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jIGIv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKaW5kZXggM2ExZmI0NzQ2Yy4u ZTYyY2I1MjNkNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4 YWN0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKQEAgLTk2 LDE0ICs5Niw2IEBACiAvKgogICogRGVmaW5lcyBmb3IgTXVsdGlYYWN0T2Zmc2V0IHBhZ2Ugc2l6 ZXMuICBBIHBhZ2UgaXMgdGhlIHNhbWUgQkxDS1NaIGFzIGlzCiAgKiB1c2VkIGV2ZXJ5d2hlcmUg ZWxzZSBpbiBQb3N0Z3Jlcy4KLSAqCi0gKiBOb3RlOiBiZWNhdXNlIE11bHRpWGFjdE9mZnNldHMg YXJlIDMyIGJpdHMgYW5kIHdyYXAgYXJvdW5kIGF0IDB4RkZGRkZGRkYsCi0gKiBNdWx0aVhhY3Qg cGFnZSBudW1iZXJpbmcgYWxzbyB3cmFwcyBhcm91bmQgYXQKLSAqIDB4RkZGRkZGRkYvTVVMVElY QUNUX09GRlNFVFNfUEVSX1BBR0UsIGFuZCBzZWdtZW50IG51bWJlcmluZyBhdAotICogMHhGRkZG RkZGRi9NVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRS9TTFJVX1BBR0VTX1BFUl9TRUdNRU5ULiAg V2UgbmVlZAotICogdGFrZSBubyBleHBsaWNpdCBub3RpY2Ugb2YgdGhhdCBmYWN0IGluIHRoaXMg bW9kdWxlLCBleGNlcHQgd2hlbiBjb21wYXJpbmcKLSAqIHNlZ21lbnQgYW5kIHBhZ2UgbnVtYmVy cyBpbiBUcnVuY2F0ZU11bHRpWGFjdCAoc2VlCi0gKiBNdWx0aVhhY3RPZmZzZXRQYWdlUHJlY2Vk ZXMpLgogICovCiAKIC8qIFdlIG5lZWQgZm91ciBieXRlcyBwZXIgb2Zmc2V0ICovCkBAIC0yNzIs OSArMjY0LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgTXVsdGlYYWN0U3RhdGVEYXRhCiAJTXVsdGlYYWN0 SWQgbXVsdGlTdG9wTGltaXQ7CiAJTXVsdGlYYWN0SWQgbXVsdGlXcmFwTGltaXQ7CiAKLQkvKiBz dXBwb3J0IGZvciBtZW1iZXJzIGFudGktd3JhcGFyb3VuZCBtZWFzdXJlcyAqLwotCU11bHRpWGFj dE9mZnNldCBvZmZzZXRTdG9wTGltaXQ7CS8qIGtub3duIGlmIG9sZGVzdE9mZnNldEtub3duICov Ci0KIAkvKgogCSAqIFRoaXMgaXMgdXNlZCB0byBzbGVlcCB1bnRpbCBhIG11bHRpeGFjdCBvZmZz ZXQgaXMgd3JpdHRlbiB3aGVuIHdlIHdhbnQKIAkgKiB0byBjcmVhdGUgdGhlIG5leHQgb25lLgpA QCAtNDA3LDggKzM5Niw2IEBAIHN0YXRpYyBib29sIE11bHRpWGFjdE9mZnNldFByZWNlZGVzKE11 bHRpWGFjdE9mZnNldCBvZmZzZXQxLAogCQkJCQkJCQkJTXVsdGlYYWN0T2Zmc2V0IG9mZnNldDIp Owogc3RhdGljIHZvaWQgRXh0ZW5kTXVsdGlYYWN0T2Zmc2V0KE11bHRpWGFjdElkIG11bHRpKTsK IHN0YXRpYyB2b2lkIEV4dGVuZE11bHRpWGFjdE1lbWJlcihNdWx0aVhhY3RPZmZzZXQgb2Zmc2V0 LCBpbnQgbm1lbWJlcnMpOwotc3RhdGljIGJvb2wgTXVsdGlYYWN0T2Zmc2V0V291bGRXcmFwKE11 bHRpWGFjdE9mZnNldCBib3VuZGFyeSwKLQkJCQkJCQkJCSBNdWx0aVhhY3RPZmZzZXQgc3RhcnQs IHVpbnQzMiBkaXN0YW5jZSk7CiBzdGF0aWMgYm9vbCBTZXRPZmZzZXRWYWN1dW1MaW1pdChib29s IGlzX3N0YXJ0dXApOwogc3RhdGljIGJvb2wgZmluZF9tdWx0aXhhY3Rfc3RhcnQoTXVsdGlYYWN0 SWQgbXVsdGksIE11bHRpWGFjdE9mZnNldCAqcmVzdWx0KTsKIHN0YXRpYyB2b2lkIFdyaXRlTVRy dW5jYXRlWGxvZ1JlYyhPaWQgb2xkZXN0TXVsdGlEQiwKQEAgLTExNjEsNzggKzExNDgsNiBAQCBH ZXROZXdNdWx0aVhhY3RJZChpbnQgbm1lbWJlcnMsIE11bHRpWGFjdE9mZnNldCAqb2Zmc2V0KQog CWVsc2UKIAkJKm9mZnNldCA9IG5leHRPZmZzZXQ7CiAKLQkvKi0tLS0tLS0tLS0KLQkgKiBQcm90 ZWN0IGFnYWluc3Qgb3ZlcnJ1biBvZiB0aGUgbWVtYmVycyBzcGFjZSBhcyB3ZWxsLCB3aXRoIHRo ZQotCSAqIGZvbGxvd2luZyBydWxlczoKLQkgKgotCSAqIElmIHdlJ3JlIHBhc3Qgb2Zmc2V0U3Rv cExpbWl0LCByZWZ1c2UgdG8gZ2VuZXJhdGUgbW9yZSBtdWx0aXMuCi0JICogSWYgd2UncmUgY2xv c2UgdG8gb2Zmc2V0U3RvcExpbWl0LCBlbWl0IGEgd2FybmluZy4KLQkgKgotCSAqIEFyYml0cmFy aWx5LCB3ZSBzdGFydCBlbWl0dGluZyB3YXJuaW5ncyB3aGVuIHdlJ3JlIDIwIHNlZ21lbnRzIG9y IGxlc3MKLQkgKiBmcm9tIG9mZnNldFN0b3BMaW1pdC4KLQkgKgotCSAqIE5vdGUgd2UgaGF2ZW4n dCB1cGRhdGVkIHRoZSBzaGFyZWQgc3RhdGUgeWV0LCBzbyBpZiB3ZSBmYWlsIGF0IHRoaXMKLQkg KiBwb2ludCwgdGhlIG11bHRpeGFjdCBJRCB3ZSBncmFiYmVkIGNhbiBzdGlsbCBiZSB1c2VkIGJ5 IHRoZSBuZXh0IGd1eS4KLQkgKgotCSAqIE5vdGUgdGhhdCB0aGVyZSBpcyBubyBwb2ludCBpbiBm b3JjaW5nIGF1dG92YWN1dW0gcnVucyBoZXJlOiB0aGUKLQkgKiBtdWx0aXhhY3QgZnJlZXplIHNl dHRpbmdzIHdvdWxkIGhhdmUgdG8gYmUgcmVkdWNlZCBmb3IgdGhhdCB0byBoYXZlIGFueQotCSAq IGVmZmVjdC4KLQkgKi0tLS0tLS0tLS0KLQkgKi8KLSNkZWZpbmUgT0ZGU0VUX1dBUk5fU0VHTUVO VFMJMjAKLQlpZiAoTXVsdGlYYWN0U3RhdGUtPm9sZGVzdE9mZnNldEtub3duICYmCi0JCU11bHRp WGFjdE9mZnNldFdvdWxkV3JhcChNdWx0aVhhY3RTdGF0ZS0+b2Zmc2V0U3RvcExpbWl0LCBuZXh0 T2Zmc2V0LAotCQkJCQkJCQkgbm1lbWJlcnMpKQotCXsKLQkJLyogc2VlIGNvbW1lbnQgaW4gdGhl IGNvcnJlc3BvbmRpbmcgb2Zmc2V0cyB3cmFwYXJvdW5kIGNhc2UgKi8KLQkJU2VuZFBvc3RtYXN0 ZXJTaWduYWwoUE1TSUdOQUxfU1RBUlRfQVVUT1ZBQ19MQVVOQ0hFUik7Ci0KLQkJZXJlcG9ydChF UlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX1BST0dSQU1fTElNSVRfRVhDRUVERUQpLAotCQkJ CSBlcnJtc2coIm11bHRpeGFjdCBcIm1lbWJlcnNcIiBsaW1pdCBleGNlZWRlZCIpLAotCQkJCSBl cnJkZXRhaWxfcGx1cmFsKCJUaGlzIGNvbW1hbmQgd291bGQgY3JlYXRlIGEgbXVsdGl4YWN0IHdp dGggJXUgbWVtYmVycywgYnV0IHRoZSByZW1haW5pbmcgc3BhY2UgaXMgb25seSBlbm91Z2ggZm9y ICV1IG1lbWJlci4iLAotCQkJCQkJCQkgICJUaGlzIGNvbW1hbmQgd291bGQgY3JlYXRlIGEgbXVs dGl4YWN0IHdpdGggJXUgbWVtYmVycywgYnV0IHRoZSByZW1haW5pbmcgc3BhY2UgaXMgb25seSBl bm91Z2ggZm9yICV1IG1lbWJlcnMuIiwKLQkJCQkJCQkJICBNdWx0aVhhY3RTdGF0ZS0+b2Zmc2V0 U3RvcExpbWl0IC0gbmV4dE9mZnNldCAtIDEsCi0JCQkJCQkJCSAgbm1lbWJlcnMsCi0JCQkJCQkJ CSAgTXVsdGlYYWN0U3RhdGUtPm9mZnNldFN0b3BMaW1pdCAtIG5leHRPZmZzZXQgLSAxKSwKLQkJ CQkgZXJyaGludCgiRXhlY3V0ZSBhIGRhdGFiYXNlLXdpZGUgVkFDVVVNIGluIGRhdGFiYXNlIHdp dGggT0lEICV1IHdpdGggcmVkdWNlZCBcInZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX21pbl9hZ2Vc IiBhbmQgXCJ2YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV90YWJsZV9hZ2VcIiBzZXR0aW5ncy4iLAot CQkJCQkJIE11bHRpWGFjdFN0YXRlLT5vbGRlc3RNdWx0aVhhY3REQikpKTsKLQl9Ci0KLQkvKgot CSAqIENoZWNrIHdoZXRoZXIgd2Ugc2hvdWxkIGtpY2sgYXV0b3ZhY3V1bSBpbnRvIGFjdGlvbiwg dG8gcHJldmVudCBtZW1iZXJzCi0JICogd3JhcGFyb3VuZC4gTkIgd2UgdXNlIGEgbXVjaCBsYXJn ZXIgd2luZG93IHRvIHRyaWdnZXIgYXV0b3ZhY3V1bSB0aGFuCi0JICoganVzdCB0aGUgd2Fybmlu ZyBsaW1pdC4gVGhlIHdhcm5pbmcgaXMganVzdCBhIG1lYXN1cmUgb2YgbGFzdCByZXNvcnQgLQot CSAqIHRoaXMgaXMgaW4gbGluZSB3aXRoIEdldE5ld1RyYW5zYWN0aW9uSWQncyBiZWhhdmlvdXIu Ci0JICovCi0JaWYgKCFNdWx0aVhhY3RTdGF0ZS0+b2xkZXN0T2Zmc2V0S25vd24gfHwKLQkJKE11 bHRpWGFjdFN0YXRlLT5uZXh0T2Zmc2V0IC0gTXVsdGlYYWN0U3RhdGUtPm9sZGVzdE9mZnNldAot CQkgPiBNVUxUSVhBQ1RfTUVNQkVSX1NBRkVfVEhSRVNIT0xEKSkKLQl7Ci0JCS8qCi0JCSAqIFRv IGF2b2lkIHN3YW1waW5nIHRoZSBwb3N0bWFzdGVyIHdpdGggc2lnbmFscywgd2UgaXNzdWUgdGhl IGF1dG92YWMKLQkJICogcmVxdWVzdCBvbmx5IHdoZW4gY3Jvc3NpbmcgYSBzZWdtZW50IGJvdW5k YXJ5LiBXaXRoIGRlZmF1bHQKLQkJICogY29tcGlsYXRpb24gc2V0dGluZ3MgdGhhdCdzIHJvdWdo bHkgYWZ0ZXIgNTBrIG1lbWJlcnMuICBUaGlzIHN0aWxsCi0JCSAqIGdpdmVzIHBsZW50eSBvZiBj aGFuY2VzIGJlZm9yZSB3ZSBnZXQgaW50byByZWFsIHRyb3VibGUuCi0JCSAqLwotCQlpZiAoKE1Y T2Zmc2V0VG9NZW1iZXJQYWdlKG5leHRPZmZzZXQpIC8gU0xSVV9QQUdFU19QRVJfU0VHTUVOVCkg IT0KLQkJCShNWE9mZnNldFRvTWVtYmVyUGFnZShuZXh0T2Zmc2V0ICsgbm1lbWJlcnMpIC8gU0xS VV9QQUdFU19QRVJfU0VHTUVOVCkpCi0JCQlTZW5kUG9zdG1hc3RlclNpZ25hbChQTVNJR05BTF9T VEFSVF9BVVRPVkFDX0xBVU5DSEVSKTsKLQl9Ci0KLQlpZiAoTXVsdGlYYWN0U3RhdGUtPm9sZGVz dE9mZnNldEtub3duICYmCi0JCU11bHRpWGFjdE9mZnNldFdvdWxkV3JhcChNdWx0aVhhY3RTdGF0 ZS0+b2Zmc2V0U3RvcExpbWl0LAotCQkJCQkJCQkgbmV4dE9mZnNldCwKLQkJCQkJCQkJIG5tZW1i ZXJzICsgTVVMVElYQUNUX01FTUJFUlNfUEVSX1BBR0UgKiBTTFJVX1BBR0VTX1BFUl9TRUdNRU5U ICogT0ZGU0VUX1dBUk5fU0VHTUVOVFMpKQotCQllcmVwb3J0KFdBUk5JTkcsCi0JCQkJKGVycmNv ZGUoRVJSQ09ERV9QUk9HUkFNX0xJTUlUX0VYQ0VFREVEKSwKLQkJCQkgZXJybXNnX3BsdXJhbCgi ZGF0YWJhc2Ugd2l0aCBPSUQgJXUgbXVzdCBiZSB2YWN1dW1lZCBiZWZvcmUgJWQgbW9yZSBtdWx0 aXhhY3QgbWVtYmVyIGlzIHVzZWQiLAotCQkJCQkJCSAgICJkYXRhYmFzZSB3aXRoIE9JRCAldSBt dXN0IGJlIHZhY3V1bWVkIGJlZm9yZSAlZCBtb3JlIG11bHRpeGFjdCBtZW1iZXJzIGFyZSB1c2Vk IiwKLQkJCQkJCQkgICBNdWx0aVhhY3RTdGF0ZS0+b2Zmc2V0U3RvcExpbWl0IC0gbmV4dE9mZnNl dCArIG5tZW1iZXJzLAotCQkJCQkJCSAgIE11bHRpWGFjdFN0YXRlLT5vbGRlc3RNdWx0aVhhY3RE QiwKLQkJCQkJCQkgICBNdWx0aVhhY3RTdGF0ZS0+b2Zmc2V0U3RvcExpbWl0IC0gbmV4dE9mZnNl dCArIG5tZW1iZXJzKSwKLQkJCQkgZXJyaGludCgiRXhlY3V0ZSBhIGRhdGFiYXNlLXdpZGUgVkFD VVVNIGluIHRoYXQgZGF0YWJhc2Ugd2l0aCByZWR1Y2VkIFwidmFjdXVtX211bHRpeGFjdF9mcmVl emVfbWluX2FnZVwiIGFuZCBcInZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX3RhYmxlX2FnZVwiIHNl dHRpbmdzLiIpKSk7Ci0KIAlFeHRlbmRNdWx0aVhhY3RNZW1iZXIobmV4dE9mZnNldCwgbm1lbWJl cnMpOwogCiAJLyoKQEAgLTI2NjAsOCArMjU3NSw2IEBAIFNldE9mZnNldFZhY3V1bUxpbWl0KGJv b2wgaXNfc3RhcnR1cCkKIAlNdWx0aVhhY3RPZmZzZXQgbmV4dE9mZnNldDsKIAlib29sCQlvbGRl c3RPZmZzZXRLbm93biA9IGZhbHNlOwogCWJvb2wJCXByZXZPbGRlc3RPZmZzZXRLbm93bjsKLQlN dWx0aVhhY3RPZmZzZXQgb2Zmc2V0U3RvcExpbWl0ID0gMDsKLQlNdWx0aVhhY3RPZmZzZXQgcHJl dk9mZnNldFN0b3BMaW1pdDsKIAogCS8qCiAJICogTkI6IEhhdmUgdG8gcHJldmVudCBjb25jdXJy ZW50IHRydW5jYXRpb24sIHdlIG1pZ2h0IG90aGVyd2lzZSB0cnkgdG8KQEAgLTI2NzYsNyArMjU4 OSw2IEBAIFNldE9mZnNldFZhY3V1bUxpbWl0KGJvb2wgaXNfc3RhcnR1cCkKIAluZXh0T2Zmc2V0 ID0gTXVsdGlYYWN0U3RhdGUtPm5leHRPZmZzZXQ7CiAJcHJldk9sZGVzdE9mZnNldEtub3duID0g TXVsdGlYYWN0U3RhdGUtPm9sZGVzdE9mZnNldEtub3duOwogCXByZXZPbGRlc3RPZmZzZXQgPSBN dWx0aVhhY3RTdGF0ZS0+b2xkZXN0T2Zmc2V0OwotCXByZXZPZmZzZXRTdG9wTGltaXQgPSBNdWx0 aVhhY3RTdGF0ZS0+b2Zmc2V0U3RvcExpbWl0OwogCUFzc2VydChNdWx0aVhhY3RTdGF0ZS0+Zmlu aXNoZWRTdGFydHVwKTsKIAlMV0xvY2tSZWxlYXNlKE11bHRpWGFjdEdlbkxvY2spOwogCkBAIC0y NzA3LDExICsyNjE5LDcgQEAgU2V0T2Zmc2V0VmFjdXVtTGltaXQoYm9vbCBpc19zdGFydHVwKQog CQlvbGRlc3RPZmZzZXRLbm93biA9CiAJCQlmaW5kX211bHRpeGFjdF9zdGFydChvbGRlc3RNdWx0 aVhhY3RJZCwgJm9sZGVzdE9mZnNldCk7CiAKLQkJaWYgKG9sZGVzdE9mZnNldEtub3duKQotCQkJ ZXJlcG9ydChERUJVRzEsCi0JCQkJCShlcnJtc2dfaW50ZXJuYWwoIm9sZGVzdCBNdWx0aVhhY3RJ ZCBtZW1iZXIgaXMgYXQgb2Zmc2V0ICV1IiwKLQkJCQkJCQkJCSBvbGRlc3RPZmZzZXQpKSk7Ci0J CWVsc2UKKwkJaWYgKCFvbGRlc3RPZmZzZXRLbm93bikKIAkJCWVyZXBvcnQoTE9HLAogCQkJCQko ZXJybXNnKCJNdWx0aVhhY3QgbWVtYmVyIHdyYXBhcm91bmQgcHJvdGVjdGlvbnMgYXJlIGRpc2Fi bGVkIGJlY2F1c2Ugb2xkZXN0IGNoZWNrcG9pbnRlZCBNdWx0aVhhY3QgJXUgZG9lcyBub3QgZXhp c3Qgb24gZGlzayIsCiAJCQkJCQkJb2xkZXN0TXVsdGlYYWN0SWQpKSk7CkBAIC0yNzI0LDI0ICsy NjMyLDcgQEAgU2V0T2Zmc2V0VmFjdXVtTGltaXQoYm9vbCBpc19zdGFydHVwKQogCSAqIG92ZXJy dW4gb2Ygb2xkIGRhdGEgaW4gdGhlIG1lbWJlcnMgU0xSVSBhcmVhLiBXZSBjYW4gb25seSBkbyBz byBpZiB0aGUKIAkgKiBvbGRlc3Qgb2Zmc2V0IGlzIGtub3duIHRob3VnaC4KIAkgKi8KLQlpZiAo b2xkZXN0T2Zmc2V0S25vd24pCi0JewotCQkvKiBtb3ZlIGJhY2sgdG8gc3RhcnQgb2YgdGhlIGNv cnJlc3BvbmRpbmcgc2VnbWVudCAqLwotCQlvZmZzZXRTdG9wTGltaXQgPSBvbGRlc3RPZmZzZXQg LSAob2xkZXN0T2Zmc2V0ICUKLQkJCQkJCQkJCQkgIChNVUxUSVhBQ1RfTUVNQkVSU19QRVJfUEFH RSAqIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQpKTsKLQotCQkvKiBhbHdheXMgbGVhdmUgb25lIHNl Z21lbnQgYmVmb3JlIHRoZSB3cmFwYXJvdW5kIHBvaW50ICovCi0JCW9mZnNldFN0b3BMaW1pdCAt PSAoTVVMVElYQUNUX01FTUJFUlNfUEVSX1BBR0UgKiBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UKTsK LQotCQlpZiAoIXByZXZPbGRlc3RPZmZzZXRLbm93biAmJiAhaXNfc3RhcnR1cCkKLQkJCWVyZXBv cnQoTE9HLAotCQkJCQkoZXJybXNnKCJNdWx0aVhhY3QgbWVtYmVyIHdyYXBhcm91bmQgcHJvdGVj dGlvbnMgYXJlIG5vdyBlbmFibGVkIikpKTsKLQotCQllcmVwb3J0KERFQlVHMSwKLQkJCQkoZXJy bXNnX2ludGVybmFsKCJNdWx0aVhhY3QgbWVtYmVyIHN0b3AgbGltaXQgaXMgbm93ICV1IGJhc2Vk IG9uIE11bHRpWGFjdCAldSIsCi0JCQkJCQkJCSBvZmZzZXRTdG9wTGltaXQsIG9sZGVzdE11bHRp WGFjdElkKSkpOwotCX0KLQllbHNlIGlmIChwcmV2T2xkZXN0T2Zmc2V0S25vd24pCisJaWYgKHBy ZXZPbGRlc3RPZmZzZXRLbm93bikKIAl7CiAJCS8qCiAJCSAqIElmIHdlIGZhaWxlZCB0byBnZXQg dGhlIG9sZGVzdCBvZmZzZXQgdGhpcyB0aW1lLCBidXQgd2UgaGF2ZSBhCkBAIC0yNzUxLDE0ICsy NjQyLDEyIEBAIFNldE9mZnNldFZhY3V1bUxpbWl0KGJvb2wgaXNfc3RhcnR1cCkKIAkJICovCiAJ CW9sZGVzdE9mZnNldCA9IHByZXZPbGRlc3RPZmZzZXQ7CiAJCW9sZGVzdE9mZnNldEtub3duID0g dHJ1ZTsKLQkJb2Zmc2V0U3RvcExpbWl0ID0gcHJldk9mZnNldFN0b3BMaW1pdDsKIAl9CiAKIAkv KiBJbnN0YWxsIHRoZSBjb21wdXRlZCB2YWx1ZXMgKi8KIAlMV0xvY2tBY3F1aXJlKE11bHRpWGFj dEdlbkxvY2ssIExXX0VYQ0xVU0lWRSk7CiAJTXVsdGlYYWN0U3RhdGUtPm9sZGVzdE9mZnNldCA9 IG9sZGVzdE9mZnNldDsKIAlNdWx0aVhhY3RTdGF0ZS0+b2xkZXN0T2Zmc2V0S25vd24gPSBvbGRl c3RPZmZzZXRLbm93bjsKLQlNdWx0aVhhY3RTdGF0ZS0+b2Zmc2V0U3RvcExpbWl0ID0gb2Zmc2V0 U3RvcExpbWl0OwogCUxXTG9ja1JlbGVhc2UoTXVsdGlYYWN0R2VuTG9jayk7CiAKIAkvKgpAQCAt Mjc2OCw1NCArMjY1Nyw2IEBAIFNldE9mZnNldFZhY3V1bUxpbWl0KGJvb2wgaXNfc3RhcnR1cCkK IAkJKG5leHRPZmZzZXQgLSBvbGRlc3RPZmZzZXQgPiBNVUxUSVhBQ1RfTUVNQkVSX1NBRkVfVEhS RVNIT0xEKTsKIH0KIAotLyoKLSAqIFJldHVybiB3aGV0aGVyIGFkZGluZyAiZGlzdGFuY2UiIHRv ICJzdGFydCIgd291bGQgbW92ZSBwYXN0ICJib3VuZGFyeSIuCi0gKgotICogV2UgdXNlIHRoaXMg dG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGFkZGl0aW9uIGlzICJ3cmFwcGluZyBhcm91bmQiIHRo ZQotICogYm91bmRhcnkgcG9pbnQsIGhlbmNlIHRoZSBuYW1lLiAgVGhlIHJlYXNvbiB3ZSBkb24n dCB3YW50IHRvIHVzZSB0aGUgcmVndWxhcgotICogMl4zMS1tb2R1bG8gYXJpdGhtZXRpYyBoZXJl IGlzIHRoYXQgd2Ugd2FudCB0byBiZSBhYmxlIHRvIHVzZSB0aGUgd2hvbGUgb2YKLSAqIHRoZSAy XjMyLTEgc3BhY2UgaGVyZSwgYWxsb3dpbmcgZm9yIG1vcmUgbXVsdGl4YWN0cyB0aGFuIHdvdWxk IGZpdAotICogb3RoZXJ3aXNlLgotICovCi1zdGF0aWMgYm9vbAotTXVsdGlYYWN0T2Zmc2V0V291 bGRXcmFwKE11bHRpWGFjdE9mZnNldCBib3VuZGFyeSwgTXVsdGlYYWN0T2Zmc2V0IHN0YXJ0LAot CQkJCQkJIHVpbnQzMiBkaXN0YW5jZSkKLXsKLQlNdWx0aVhhY3RPZmZzZXQgZmluaXNoOwotCi0J LyoKLQkgKiBOb3RlIHRoYXQgb2Zmc2V0IG51bWJlciAwIGlzIG5vdCB1c2VkIChzZWUgR2V0TXVs dGlYYWN0SWRNZW1iZXJzKSwgc28KLQkgKiBpZiB0aGUgYWRkaXRpb24gd3JhcHMgYXJvdW5kIHRo ZSBVSU5UX01BWCBib3VuZGFyeSwgc2tpcCB0aGF0IHZhbHVlLgotCSAqLwotCWZpbmlzaCA9IHN0 YXJ0ICsgZGlzdGFuY2U7Ci0JaWYgKGZpbmlzaCA8IHN0YXJ0KQotCQlmaW5pc2grKzsKLQotCS8q LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLQkgKiBXaGVuIHRoZSBib3VuZGFyeSBpcyBudW1lcmljYWxseSBncmVh dGVyIHRoYW4gdGhlIHN0YXJ0aW5nIHBvaW50LCBhbnkKLQkgKiB2YWx1ZSBudW1lcmljYWxseSBi ZXR3ZWVuIHRoZSB0d28gaXMgbm90IHdyYXBwZWQ6Ci0JICoKLQkgKgk8LS0tLVMtLS0tQi0tLS0+ Ci0JICoJWy0tLSkJCQkgPSBGIHdyYXBwZWQgcGFzdCBCIChhbmQgVUlOVF9NQVgpCi0JICoJCSBb LS0tKQkJID0gRiBub3Qgd3JhcHBlZAotCSAqCQkJICBbLS0tLV0gPSBGIHdyYXBwZWQgcGFzdCBC Ci0JICoKLQkgKiBXaGVuIHRoZSBib3VuZGFyeSBpcyBudW1lcmljYWxseSBsZXNzIHRoYW4gdGhl IHN0YXJ0aW5nIHBvaW50IChpLmUuIHRoZQotCSAqIFVJTlRfTUFYIHdyYXBhcm91bmQgb2NjdXJz IHNvbWV3aGVyZSBpbiBiZXR3ZWVuKSB0aGVuIGFsbCB2YWx1ZXMgaW4KLQkgKiBiZXR3ZWVuIGFy ZSB3cmFwcGVkOgotCSAqCi0JICoJPC0tLS1CLS0tLVMtLS0tPgotCSAqCVstLS0pCQkJID0gRiBu b3Qgd3JhcHBlZCBwYXN0IEIgKGJ1dCB3cmFwcGVkIHBhc3QgVUlOVF9NQVgpCi0JICoJCSBbLS0t KQkJID0gRiB3cmFwcGVkIHBhc3QgQiAoYW5kIFVJTlRfTUFYKQotCSAqCQkJICBbLS0tLV0gPSBG IG5vdCB3cmFwcGVkCi0JICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCSAqLwotCWlmIChzdGFydCA8IGJvdW5k YXJ5KQotCQlyZXR1cm4gZmluaXNoID49IGJvdW5kYXJ5IHx8IGZpbmlzaCA8IHN0YXJ0OwotCWVs c2UKLQkJcmV0dXJuIGZpbmlzaCA+PSBib3VuZGFyeSAmJiBmaW5pc2ggPCBzdGFydDsKLX0KLQog LyoKICAqIEZpbmQgdGhlIHN0YXJ0aW5nIG9mZnNldCBvZiB0aGUgZ2l2ZW4gTXVsdGlYYWN0SWQu CiAgKgpAQCAtMjkzNyw4ICsyNzc4LDkgQEAgTXVsdGlYYWN0TWVtYmVyRnJlZXplVGhyZXNob2xk KHZvaWQpCiAJICogd2UgdHJ5IHRvIGVsaW1pbmF0ZSBmcm9tIHRoZSBzeXN0ZW0gaXMgYmFzZWQg b24gaG93IGZhciB3ZSBhcmUgcGFzdAogCSAqIE1VTFRJWEFDVF9NRU1CRVJfU0FGRV9USFJFU0hP TEQuCiAJICovCi0JZnJhY3Rpb24gPSAoZG91YmxlKSAobWVtYmVycyAtIE1VTFRJWEFDVF9NRU1C RVJfU0FGRV9USFJFU0hPTEQpIC8KLQkJKE1VTFRJWEFDVF9NRU1CRVJfREFOR0VSX1RIUkVTSE9M RCAtIE1VTFRJWEFDVF9NRU1CRVJfU0FGRV9USFJFU0hPTEQpOworCWZyYWN0aW9uID0gKGRvdWJs ZSkgKG1lbWJlcnMgLSBNVUxUSVhBQ1RfTUVNQkVSX1NBRkVfVEhSRVNIT0xEKTsKKwlmcmFjdGlv biAvPSAoZG91YmxlKSAoTVVMVElYQUNUX01FTUJFUl9EQU5HRVJfVEhSRVNIT0xEIC0gTVVMVElY QUNUX01FTUJFUl9TQUZFX1RIUkVTSE9MRCk7CisKIAl2aWN0aW1fbXVsdGl4YWN0cyA9IG11bHRp eGFjdHMgKiBmcmFjdGlvbjsKIAogCS8qIGZyYWN0aW9uIGNvdWxkIGJlID4gMS4wLCBidXQgbG93 ZXN0IHBvc3NpYmxlIGZyZWV6ZSBhZ2UgaXMgemVybyAqLwpAQCAtMzI4Myw3ICszMTI1LDcgQEAg TXVsdGlYYWN0SWRQcmVjZWRlc09yRXF1YWxzKE11bHRpWGFjdElkIG11bHRpMSwgTXVsdGlYYWN0 SWQgbXVsdGkyKQogc3RhdGljIGJvb2wKIE11bHRpWGFjdE9mZnNldFByZWNlZGVzKE11bHRpWGFj dE9mZnNldCBvZmZzZXQxLCBNdWx0aVhhY3RPZmZzZXQgb2Zmc2V0MikKIHsKLQlpbnQzMgkJZGlm ZiA9IChpbnQzMikgKG9mZnNldDEgLSBvZmZzZXQyKTsKKwlpbnQ2NAkJZGlmZiA9IChpbnQ2NCkg KG9mZnNldDEgLSBvZmZzZXQyKTsKIAogCXJldHVybiAoZGlmZiA8IDApOwogfQpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19yZXNldHdhbC9wZ19yZXNldHdhbC5jIGIvc3JjL2Jpbi9wZ19yZXNldHdh bC9wZ19yZXNldHdhbC5jCmluZGV4IGRmMmQ4ZjM3Y2YuLjkyNTIxNjAyODAgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYworKysgYi9zcmMvYmluL3BnX3Jlc2V0 d2FsL3BnX3Jlc2V0d2FsLmMKQEAgLTI2Niw3ICsyNjYsNyBAQCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCiAKIAkJCWNhc2UgJ08nOgogCQkJCWVycm5vID0gMDsKLQkJCQlzZXRfbXhvZmYg PSBzdHJ0b3VsKG9wdGFyZywgJmVuZHB0ciwgMCk7CisJCQkJc2V0X214b2ZmID0gc3RydG91NjQo b3B0YXJnLCAmZW5kcHRyLCAwKTsKIAkJCQlpZiAoZW5kcHRyID09IG9wdGFyZyB8fCAqZW5kcHRy ICE9ICdcMCcgfHwgZXJybm8gIT0gMCkKIAkJCQl7CiAJCQkJCXBnX2xvZ19lcnJvcigiaW52YWxp ZCBhcmd1bWVudCBmb3Igb3B0aW9uICVzIiwgIi1PIik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X3Jlc2V0d2FsL3QvMDAxX2Jhc2ljLnBsIGIvc3JjL2Jpbi9wZ19yZXNldHdhbC90LzAwMV9iYXNp Yy5wbAppbmRleCBkNmJiYmQwY2VkLi5jYzg5ZTA3NjRhIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X3Jlc2V0d2FsL3QvMDAxX2Jhc2ljLnBsCisrKyBiL3NyYy9iaW4vcGdfcmVzZXR3YWwvdC8wMDFf YmFzaWMucGwKQEAgLTIxMyw3ICsyMTMsNyBAQCBwdXNoIEBjbWQsCiAgIHNwcmludGYoIiVkLCVk IiwgaGV4KCRmaWxlc1swXSkgPT0gMCA/IDMgOiBoZXgoJGZpbGVzWzBdKSwgaGV4KCRmaWxlc1st MV0pKTsKIAogQGZpbGVzID0gZ2V0X3NscnVfZmlsZXMoJ3BnX211bHRpeGFjdC9vZmZzZXRzJyk7 Ci0kbXVsdCA9IDMyICogJGJsY2tzeiAvIDQ7CiskbXVsdCA9IDMyICogJGJsY2tzeiAvIDg7CiAj IC0tbXVsdGl4YWN0LWlkcyBhcmd1bWVudCBpcyAibmV3LG9sZCIKIHB1c2ggQGNtZCwKICAgJy0t bXVsdGl4YWN0LWlkcycgPT4gc3ByaW50ZigiJWQsJWQiLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvYWNjZXNzL211bHRpeGFjdC5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL211bHRpeGFjdC5oCmlu ZGV4IGI4NzZlOThmNDYuLmYxNDNlMWQxMTYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9tdWx0aXhhY3QuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4YWN0LmgKQEAgLTI4 LDcgKzI4LDcgQEAKIAogI2RlZmluZSBNdWx0aVhhY3RJZElzVmFsaWQobXVsdGkpICgobXVsdGkp ICE9IEludmFsaWRNdWx0aVhhY3RJZCkKIAotI2RlZmluZSBNYXhNdWx0aVhhY3RPZmZzZXQJKChN dWx0aVhhY3RPZmZzZXQpIDB4RkZGRkZGRkYpCisjZGVmaW5lIE1heE11bHRpWGFjdE9mZnNldAlV SU5UNjRDT05TVCgweEZGRkZGRkZGRkZGRkZGRkYpCiAKIC8qCiAgKiBQb3NzaWJsZSBtdWx0aXhh Y3QgbG9jayBtb2RlcyAoInN0YXR1cyIpLiAgVGhlIGZpcnN0IGZvdXIgbW9kZXMgYXJlIGZvcgpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYy5oIGIvc3JjL2luY2x1ZGUvYy5oCmluZGV4IDA0ZmQy MzU3N2QuLmVmYTZlMDk5ZjggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2MuaAorKysgYi9zcmMv aW5jbHVkZS9jLmgKQEAgLTYxMyw3ICs2MTMsNyBAQCB0eXBlZGVmIHVpbnQzMiBTdWJUcmFuc2Fj dGlvbklkOwogLyogTXVsdGlYYWN0SWQgbXVzdCBiZSBlcXVpdmFsZW50IHRvIFRyYW5zYWN0aW9u SWQsIHRvIGZpdCBpbiB0X3htYXggKi8KIHR5cGVkZWYgVHJhbnNhY3Rpb25JZCBNdWx0aVhhY3RJ ZDsKIAotdHlwZWRlZiB1aW50MzIgTXVsdGlYYWN0T2Zmc2V0OwordHlwZWRlZiB1aW50NjQgTXVs dGlYYWN0T2Zmc2V0OwogCiB0eXBlZGVmIHVpbnQzMiBDb21tYW5kSWQ7CiAKLS0gCjIuNDkuMAoK --0000000000008e206d0639e4003e Content-Type: application/octet-stream; name="v16-0004-Get-rid-of-MultiXactMemberFreezeThreshold-call.patch" Content-Disposition: attachment; filename="v16-0004-Get-rid-of-MultiXactMemberFreezeThreshold-call.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_md35zdxr3 RnJvbSBiYWUzMzI5ZjU5ZGM5OTg4MTdmMThhMzk1ZGE0YzgxMTk5MjM1MjlkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMjMgT2N0IDIwMjQgMTg6MjM6MzkgKzAzMDAKU3ViamVjdDogW1BBVENIIHYxNiA0Lzdd IEdldCByaWQgb2YgTXVsdGlYYWN0TWVtYmVyRnJlZXplVGhyZXNob2xkIGNhbGwuCgpTaW5jZSBN YXhNdWx0aVhhY3RPZmZzZXQgYXJlIFVJTlQ2NF9NQVggbm93LCBNVUxUSVhBQ1RfTUVNQkVSX1NB RkVfVEhSRVNIT0xEIGFuZApNVUxUSVhBQ1RfTUVNQkVSX0RBTkdFUl9USFJFU0hPTEQgdmFsdWVz IGFyZSBub3QgbWVhbmluZ2Z1bCBhbnkgbW9yZS4gVGh1cywKTXVsdGlYYWN0TWVtYmVyRnJlZXpl VGhyZXNob2xkIGlzIG5vdCBuZWVkZWQgdG9vLgoKSW5zdGVhZCwgc3dpdGNoIHRvIE1VTFRJWEFD VF9NRU1CRVJfQVVUT1ZBQ19USFJFU0hPTEQgKGVxIDJeMzIpIG1lbWJlcnMKdGhyZXNob2xkLiBJ dCBpcyB1c2VkIHRvIGRldGVybWluZSBpZiB3ZSBuZWVkIHRvIGZvcmNlIGF1dG92YWN1dW0gb3Ig bm90LgoKQXV0aG9yOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+Ci0tLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMgfCAxMTcgKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMgICAgICAgICAgfCAgIDIgKy0K IHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jICAgIHwgICA0ICstCiBzcmMvaW5j bHVkZS9hY2Nlc3MvbXVsdGl4YWN0LmggICAgICAgICB8ICAgMSAtCiA0IGZpbGVzIGNoYW5nZWQs IDE1IGluc2VydGlvbnMoKyksIDEwOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL211bHRpeGFjdC5jCmluZGV4IGU2MmNiNTIzZDQuLjZlN2EwOTk2MTcgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jCkBAIC0yMDQsMTAgKzIwNCwxNCBAQCBNWE9mZnNl dFRvTWVtYmVyT2Zmc2V0KE11bHRpWGFjdE9mZnNldCBvZmZzZXQpCiAJCW1lbWJlcl9pbl9ncm91 cCAqIHNpemVvZihUcmFuc2FjdGlvbklkKTsKIH0KIAotLyogTXVsdGl4YWN0IG1lbWJlcnMgd3Jh cGFyb3VuZCB0aHJlc2hvbGRzLiAqLwotI2RlZmluZSBNVUxUSVhBQ1RfTUVNQkVSX1NBRkVfVEhS RVNIT0xECQkoTWF4TXVsdGlYYWN0T2Zmc2V0IC8gMikKLSNkZWZpbmUgTVVMVElYQUNUX01FTUJF Ul9EQU5HRVJfVEhSRVNIT0xECVwKLQkoTWF4TXVsdGlYYWN0T2Zmc2V0IC0gTWF4TXVsdGlYYWN0 T2Zmc2V0IC8gNCkKKy8qCisgKiBNdWx0aXhhY3QgbWVtYmVycyB3YXJuaW5nIHRocmVzaG9sZC4K KyAqCisgKiBJZiBkaWZmZXJlbmNlIGJldHR3ZWVuIG5leHRPZmZzZXQgYW5kIG9sZGVzdE9mZnNl dCBleGNlZWQgdGhpcyB2YWx1ZSwgd2UKKyAqIHRyaWdnZXIgYXV0b3ZhY3V1bWluIG9yZGVyIHRv IHJlbGVhc2UgdGhlIGRpc2sgc3BhY2UsIHJlZHVjZSB0YWJsZSBibG9hdCBpZgorICogcG9zc2li bGUuCisgKi8KKyNkZWZpbmUgTVVMVElYQUNUX01FTUJFUl9BVVRPVkFDX1RIUkVTSE9MRAkJVUlO VDY0Q09OU1QoMHhGRkZGRkZGRikKIAogc3RhdGljIGlubGluZSBNdWx0aVhhY3RJZAogUHJldmlv dXNNdWx0aVhhY3RJZChNdWx0aVhhY3RJZCBtdWx0aSkKQEAgLTI1NTUsMTUgKzI1NTksMTMgQEAg R2V0T2xkZXN0TXVsdGlYYWN0SWQodm9pZCkKIH0KIAogLyoKLSAqIERldGVybWluZSBob3cgYWdn cmVzc2l2ZWx5IHdlIG5lZWQgdG8gdmFjdXVtIGluIG9yZGVyIHRvIHByZXZlbnQgbWVtYmVyCi0g KiB3cmFwYXJvdW5kLgorICogRGV0ZXJtaW5lIGlmIHdlIG5lZWQgdG8gdmFjdXVtIGZvciBtZW1i ZXIgb3Igbm90LgogICoKICAqIFRvIGRvIHNvIGRldGVybWluZSB3aGF0J3MgdGhlIG9sZGVzdCBt ZW1iZXIgb2Zmc2V0IGFuZCBpbnN0YWxsIHRoZSBsaW1pdAogICogaW5mbyBpbiBNdWx0aVhhY3RT dGF0ZSwgd2hlcmUgaXQgY2FuIGJlIHVzZWQgdG8gcHJldmVudCBvdmVycnVuIG9mIG9sZCBkYXRh CiAgKiBpbiB0aGUgbWVtYmVycyBTTFJVIGFyZWEuCiAgKgotICogVGhlIHJldHVybiB2YWx1ZSBp cyB0cnVlIGlmIGVtZXJnZW5jeSBhdXRvdmFjdXVtIGlzIHJlcXVpcmVkIGFuZCBmYWxzZQotICog b3RoZXJ3aXNlLgorICogVGhlIHJldHVybiB2YWx1ZSBpcyB0cnVlIGlmIGF1dG92YWN1dW0gaXMg cmVxdWlyZWQgYW5kIGZhbHNlIG90aGVyd2lzZS4KICAqLwogc3RhdGljIGJvb2wKIFNldE9mZnNl dFZhY3V1bUxpbWl0KGJvb2wgaXNfc3RhcnR1cCkKQEAgLTI2NTEsMTAgKzI2NTMsMTAgQEAgU2V0 T2Zmc2V0VmFjdXVtTGltaXQoYm9vbCBpc19zdGFydHVwKQogCUxXTG9ja1JlbGVhc2UoTXVsdGlY YWN0R2VuTG9jayk7CiAKIAkvKgotCSAqIERvIHdlIG5lZWQgYW4gZW1lcmdlbmN5IGF1dG92YWN1 dW0/CUlmIHdlJ3JlIG5vdCBzdXJlLCBhc3N1bWUgeWVzLgorCSAqIERvIHdlIG5lZWQgYXV0b3Zh Y3V1bT8JSWYgd2UncmUgbm90IHN1cmUsIGFzc3VtZSB5ZXMuCiAJICovCiAJcmV0dXJuICFvbGRl c3RPZmZzZXRLbm93biB8fAotCQkobmV4dE9mZnNldCAtIG9sZGVzdE9mZnNldCA+IE1VTFRJWEFD VF9NRU1CRVJfU0FGRV9USFJFU0hPTEQpOworCQkobmV4dE9mZnNldCAtIG9sZGVzdE9mZnNldCA+ IE1VTFRJWEFDVF9NRU1CRVJfQVVUT1ZBQ19USFJFU0hPTEQpOwogfQogCiAvKgpAQCAtMjcwMCwx MDEgKzI3MDIsNiBAQCBmaW5kX211bHRpeGFjdF9zdGFydChNdWx0aVhhY3RJZCBtdWx0aSwgTXVs dGlYYWN0T2Zmc2V0ICpyZXN1bHQpCiAJcmV0dXJuIHRydWU7CiB9CiAKLS8qCi0gKiBEZXRlcm1p bmUgaG93IG1hbnkgbXVsdGl4YWN0cywgYW5kIGhvdyBtYW55IG11bHRpeGFjdCBtZW1iZXJzLCBj dXJyZW50bHkKLSAqIGV4aXN0LiAgUmV0dXJuIGZhbHNlIGlmIHVuYWJsZSB0byBkZXRlcm1pbmUu Ci0gKi8KLXN0YXRpYyBib29sCi1SZWFkTXVsdGlYYWN0Q291bnRzKHVpbnQzMiAqbXVsdGl4YWN0 cywgTXVsdGlYYWN0T2Zmc2V0ICptZW1iZXJzKQotewotCU11bHRpWGFjdE9mZnNldCBuZXh0T2Zm c2V0OwotCU11bHRpWGFjdE9mZnNldCBvbGRlc3RPZmZzZXQ7Ci0JTXVsdGlYYWN0SWQgb2xkZXN0 TXVsdGlYYWN0SWQ7Ci0JTXVsdGlYYWN0SWQgbmV4dE11bHRpWGFjdElkOwotCWJvb2wJCW9sZGVz dE9mZnNldEtub3duOwotCi0JTFdMb2NrQWNxdWlyZShNdWx0aVhhY3RHZW5Mb2NrLCBMV19TSEFS RUQpOwotCW5leHRPZmZzZXQgPSBNdWx0aVhhY3RTdGF0ZS0+bmV4dE9mZnNldDsKLQlvbGRlc3RN dWx0aVhhY3RJZCA9IE11bHRpWGFjdFN0YXRlLT5vbGRlc3RNdWx0aVhhY3RJZDsKLQluZXh0TXVs dGlYYWN0SWQgPSBNdWx0aVhhY3RTdGF0ZS0+bmV4dE1YYWN0OwotCW9sZGVzdE9mZnNldCA9IE11 bHRpWGFjdFN0YXRlLT5vbGRlc3RPZmZzZXQ7Ci0Jb2xkZXN0T2Zmc2V0S25vd24gPSBNdWx0aVhh Y3RTdGF0ZS0+b2xkZXN0T2Zmc2V0S25vd247Ci0JTFdMb2NrUmVsZWFzZShNdWx0aVhhY3RHZW5M b2NrKTsKLQotCWlmICghb2xkZXN0T2Zmc2V0S25vd24pCi0JCXJldHVybiBmYWxzZTsKLQotCSpt ZW1iZXJzID0gbmV4dE9mZnNldCAtIG9sZGVzdE9mZnNldDsKLQkqbXVsdGl4YWN0cyA9IG5leHRN dWx0aVhhY3RJZCAtIG9sZGVzdE11bHRpWGFjdElkOwotCXJldHVybiB0cnVlOwotfQotCi0vKgot ICogTXVsdGl4YWN0IG1lbWJlcnMgY2FuIGJlIHJlbW92ZWQgb25jZSB0aGUgbXVsdGl4YWN0cyB0 aGF0IHJlZmVyIHRvIHRoZW0KLSAqIGFyZSBvbGRlciB0aGFuIGV2ZXJ5IGRhdG1pbm14aWQuICBh dXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZSBhbmQKLSAqIHZhY3V1bV9tdWx0aXhh Y3RfZnJlZXplX3RhYmxlX2FnZSB3b3JrIHRvZ2V0aGVyIHRvIG1ha2Ugc3VyZSB3ZSBuZXZlciBo YXZlCi0gKiB0b28gbWFueSBtdWx0aXhhY3RzOyB3ZSBob3BlIHRoYXQsIGF0IGxlYXN0IHVuZGVy IG5vcm1hbCBjaXJjdW1zdGFuY2VzLAotICogdGhpcyB3aWxsIGFsc28gYmUgc3VmZmljaWVudCB0 byBrZWVwIHVzIGZyb20gdXNpbmcgdG9vIG1hbnkgb2Zmc2V0cy4KLSAqIEhvd2V2ZXIsIGlmIHRo ZSBhdmVyYWdlIG11bHRpeGFjdCBoYXMgbWFueSBtZW1iZXJzLCB3ZSBtaWdodCBleGhhdXN0IHRo ZQotICogbWVtYmVycyBzcGFjZSB3aGlsZSBzdGlsbCB1c2luZyBmZXcgZW5vdWdoIG1lbWJlcnMg dGhhdCB0aGVzZSBsaW1pdHMgZmFpbAotICogdG8gdHJpZ2dlciByZWxtaW5teGlkIGFkdmFuY2Vt ZW50IGJ5IFZBQ1VVTS4gIEF0IHRoYXQgcG9pbnQsIHdlJ2QgaGF2ZSBubwotICogY2hvaWNlIGJ1 dCB0byBzdGFydCBmYWlsaW5nIG11bHRpeGFjdC1jcmVhdGluZyBvcGVyYXRpb25zIHdpdGggYW4g ZXJyb3IuCi0gKgotICogVG8gcHJldmVudCB0aGF0LCBpZiBtb3JlIHRoYW4gYSB0aHJlc2hvbGQg cG9ydGlvbiBvZiB0aGUgbWVtYmVycyBzcGFjZSBpcwotICogdXNlZCwgd2UgZWZmZWN0aXZlbHkg cmVkdWNlIGF1dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlIGFuZAotICogdG8gYSB2 YWx1ZSBqdXN0IGxlc3MgdGhhbiB0aGUgbnVtYmVyIG9mIG11bHRpeGFjdHMgaW4gdXNlLiAgV2Ug aG9wZSB0aGF0Ci0gKiB0aGlzIHdpbGwgcXVpY2tseSB0cmlnZ2VyIGF1dG92YWN1dW1pbmcgb24g dGhlIHRhYmxlIG9yIHRhYmxlcyB3aXRoIHRoZQotICogb2xkZXN0IHJlbG1pbm14aWQsIHRodXMg YWxsb3dpbmcgZGF0bWlubXhpZCB2YWx1ZXMgdG8gYWR2YW5jZSBhbmQgcmVtb3ZpbmcKLSAqIHNv bWUgbWVtYmVycy4KLSAqCi0gKiBBcyB0aGUgZnJhY3Rpb24gb2YgdGhlIG1lbWJlciBzcGFjZSBj dXJyZW50bHkgaW4gdXNlIGdyb3dzLCB3ZSBiZWNvbWUKLSAqIG1vcmUgYWdncmVzc2l2ZSBpbiBj bGFtcGluZyB0aGlzIHZhbHVlLiAgVGhhdCBub3Qgb25seSBjYXVzZXMgYXV0b3ZhY3V1bQotICog dG8gcmFtcCB1cCwgYnV0IGFsc28gbWFrZXMgYW55IG1hbnVhbCB2YWN1dW1zIHRoZSB1c2VyIGlz c3VlcyBtb3JlCi0gKiBhZ2dyZXNzaXZlLiAgVGhpcyBoYXBwZW5zIGJlY2F1c2UgdmFjdXVtX2dl dF9jdXRvZmZzKCkgd2lsbCBjbGFtcCB0aGUKLSAqIGZyZWV6ZSB0YWJsZSBhbmQgdGhlIG1pbmlt dW0gZnJlZXplIGFnZSBjdXRvZmZzIGJhc2VkIG9uIHRoZSBlZmZlY3RpdmUKLSAqIGF1dG92YWN1 dW1fbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlIHRoaXMgZnVuY3Rpb24gcmV0dXJucy4gIEluIHRo ZSB3b3JzdAotICogY2FzZSwgd2UnbGwgY2xhaW0gdGhlIGZyZWV6ZV9tYXhfYWdlIHRvIHplcm8s IGFuZCBldmVyeSB2YWN1dW0gb2YgYW55Ci0gKiB0YWJsZSB3aWxsIGZyZWV6ZSBldmVyeSBtdWx0 aXhhY3QuCi0gKi8KLWludAotTXVsdGlYYWN0TWVtYmVyRnJlZXplVGhyZXNob2xkKHZvaWQpCi17 Ci0JTXVsdGlYYWN0T2Zmc2V0IG1lbWJlcnM7Ci0JdWludDMyCQltdWx0aXhhY3RzOwotCXVpbnQz MgkJdmljdGltX211bHRpeGFjdHM7Ci0JZG91YmxlCQlmcmFjdGlvbjsKLQlpbnQJCQlyZXN1bHQ7 Ci0KLQkvKiBJZiB3ZSBjYW4ndCBkZXRlcm1pbmUgbWVtYmVyIHNwYWNlIHV0aWxpemF0aW9uLCBh c3N1bWUgdGhlIHdvcnN0LiAqLwotCWlmICghUmVhZE11bHRpWGFjdENvdW50cygmbXVsdGl4YWN0 cywgJm1lbWJlcnMpKQotCQlyZXR1cm4gMDsKLQotCS8qIElmIG1lbWJlciBzcGFjZSB1dGlsaXph dGlvbiBpcyBsb3csIG5vIHNwZWNpYWwgYWN0aW9uIGlzIHJlcXVpcmVkLiAqLwotCWlmIChtZW1i ZXJzIDw9IE1VTFRJWEFDVF9NRU1CRVJfU0FGRV9USFJFU0hPTEQpCi0JCXJldHVybiBhdXRvdmFj dXVtX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZTsKLQotCS8qCi0JICogQ29tcHV0ZSBhIHRhcmdl dCBmb3IgcmVsbWlubXhpZCBhZHZhbmNlbWVudC4gIFRoZSBudW1iZXIgb2YgbXVsdGl4YWN0cwot CSAqIHdlIHRyeSB0byBlbGltaW5hdGUgZnJvbSB0aGUgc3lzdGVtIGlzIGJhc2VkIG9uIGhvdyBm YXIgd2UgYXJlIHBhc3QKLQkgKiBNVUxUSVhBQ1RfTUVNQkVSX1NBRkVfVEhSRVNIT0xELgotCSAq LwotCWZyYWN0aW9uID0gKGRvdWJsZSkgKG1lbWJlcnMgLSBNVUxUSVhBQ1RfTUVNQkVSX1NBRkVf VEhSRVNIT0xEKTsKLQlmcmFjdGlvbiAvPSAoZG91YmxlKSAoTVVMVElYQUNUX01FTUJFUl9EQU5H RVJfVEhSRVNIT0xEIC0gTVVMVElYQUNUX01FTUJFUl9TQUZFX1RIUkVTSE9MRCk7Ci0KLQl2aWN0 aW1fbXVsdGl4YWN0cyA9IG11bHRpeGFjdHMgKiBmcmFjdGlvbjsKLQotCS8qIGZyYWN0aW9uIGNv dWxkIGJlID4gMS4wLCBidXQgbG93ZXN0IHBvc3NpYmxlIGZyZWV6ZSBhZ2UgaXMgemVybyAqLwot CWlmICh2aWN0aW1fbXVsdGl4YWN0cyA+IG11bHRpeGFjdHMpCi0JCXJldHVybiAwOwotCXJlc3Vs dCA9IG11bHRpeGFjdHMgLSB2aWN0aW1fbXVsdGl4YWN0czsKLQotCS8qCi0JICogQ2xhbXAgdG8g YXV0b3ZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX21heF9hZ2UsIHNvIHRoYXQgd2UgbmV2ZXIgbWFr ZQotCSAqIGF1dG92YWN1dW0gbGVzcyBhZ2dyZXNzaXZlIHRoYW4gaXQgd291bGQgb3RoZXJ3aXNl IGJlLgotCSAqLwotCXJldHVybiBNaW4ocmVzdWx0LCBhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVl emVfbWF4X2FnZSk7Ci19Ci0KIHR5cGVkZWYgc3RydWN0IG14dHJ1bmNpbmZvCiB7CiAJaW50NjQJ CWVhcmxpZXN0RXhpc3RpbmdQYWdlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dmFjdXVtLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYwppbmRleCA3MzNlZjQwYWU3 Li44ZjUwOTI2NzBiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYwpAQCAtMTE1Myw3ICsxMTUzLDcgQEAg dmFjdXVtX2dldF9jdXRvZmZzKFJlbGF0aW9uIHJlbCwgY29uc3QgVmFjdXVtUGFyYW1zIHBhcmFt cywKIAkgKiBub3JtYWxseSBhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZSwgYnV0 IG1heSBiZSBsZXNzIGlmIHdlIGFyZQogCSAqIHNob3J0IG9mIG11bHRpeGFjdCBtZW1iZXIgc3Bh Y2UuCiAJICovCi0JZWZmZWN0aXZlX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZSA9IE11bHRpWGFj dE1lbWJlckZyZWV6ZVRocmVzaG9sZCgpOworCWVmZmVjdGl2ZV9tdWx0aXhhY3RfZnJlZXplX21h eF9hZ2UgPSBhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZTsKIAogCS8qCiAJICog QWxtb3N0IHJlYWR5IHRvIHNldCBmcmVlemUgb3V0cHV0IHBhcmFtZXRlcnM7IGNoZWNrIGlmIE9s ZGVzdFhtaW4gb3IKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1 bS5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKaW5kZXggOTQ3NDA5NWYy Ny4uOTM3OWNkNmI4YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFj dXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKQEAgLTExMzcs NyArMTEzNyw3IEBAIGRvX3N0YXJ0X3dvcmtlcih2b2lkKQogCiAJLyogQWxzbyBkZXRlcm1pbmUg dGhlIG9sZGVzdCBkYXRtaW5teGlkIHdlIHdpbGwgY29uc2lkZXIuICovCiAJcmVjZW50TXVsdGkg PSBSZWFkTmV4dE11bHRpWGFjdElkKCk7Ci0JbXVsdGlGb3JjZUxpbWl0ID0gcmVjZW50TXVsdGkg LSBNdWx0aVhhY3RNZW1iZXJGcmVlemVUaHJlc2hvbGQoKTsKKwltdWx0aUZvcmNlTGltaXQgPSBy ZWNlbnRNdWx0aSAtIGF1dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlOwogCWlmICht dWx0aUZvcmNlTGltaXQgPCBGaXJzdE11bHRpWGFjdElkKQogCQltdWx0aUZvcmNlTGltaXQgLT0g Rmlyc3RNdWx0aVhhY3RJZDsKIApAQCAtMTkyNSw3ICsxOTI1LDcgQEAgZG9fYXV0b3ZhY3V1bSh2 b2lkKQogCSAqIG5vcm1hbGx5IGF1dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlLCBi dXQgbWF5IGJlIGxlc3MgaWYgd2UgYXJlCiAJICogc2hvcnQgb2YgbXVsdGl4YWN0IG1lbWJlciBz cGFjZS4KIAkgKi8KLQllZmZlY3RpdmVfbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlID0gTXVsdGlY YWN0TWVtYmVyRnJlZXplVGhyZXNob2xkKCk7CisJZWZmZWN0aXZlX211bHRpeGFjdF9mcmVlemVf bWF4X2FnZSA9IGF1dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlOwogCiAJLyoKIAkg KiBGaW5kIHRoZSBwZ19kYXRhYmFzZSBlbnRyeSBhbmQgc2VsZWN0IHRoZSBkZWZhdWx0IGZyZWV6 ZSBhZ2VzLiBXZSB1c2UKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9tdWx0aXhhY3Qu aCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9tdWx0aXhhY3QuaAppbmRleCBmMTQzZTFkMTE2Li4wZDY5 OTgzMWYxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4YWN0LmgKKysrIGIv c3JjL2luY2x1ZGUvYWNjZXNzL211bHRpeGFjdC5oCkBAIC0xNDQsNyArMTQ0LDYgQEAgZXh0ZXJu IHZvaWQgTXVsdGlYYWN0U2V0TmV4dE1YYWN0KE11bHRpWGFjdElkIG5leHRNdWx0aSwKIGV4dGVy biB2b2lkIE11bHRpWGFjdEFkdmFuY2VOZXh0TVhhY3QoTXVsdGlYYWN0SWQgbWluTXVsdGksCiAJ CQkJCQkJCQkgIE11bHRpWGFjdE9mZnNldCBtaW5NdWx0aU9mZnNldCk7CiBleHRlcm4gdm9pZCBN dWx0aVhhY3RBZHZhbmNlT2xkZXN0KE11bHRpWGFjdElkIG9sZGVzdE11bHRpLCBPaWQgb2xkZXN0 TXVsdGlEQik7Ci1leHRlcm4gaW50CU11bHRpWGFjdE1lbWJlckZyZWV6ZVRocmVzaG9sZCh2b2lk KTsKIAogZXh0ZXJuIHZvaWQgbXVsdGl4YWN0X3R3b3BoYXNlX3JlY292ZXIoRnVsbFRyYW5zYWN0 aW9uSWQgZnhpZCwgdWludDE2IGluZm8sCiAJCQkJCQkJCQkgICB2b2lkICpyZWNkYXRhLCB1aW50 MzIgbGVuKTsKLS0gCjIuNDkuMAoK --0000000000008e206d0639e4003e Content-Type: application/octet-stream; name="v16-0005-TEST-initdb-option-to-initialize-cluster-with-no.patch" Content-Disposition: attachment; filename="v16-0005-TEST-initdb-option-to-initialize-cluster-with-no.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_md35zdxu4 RnJvbSAzZWRjYjcxZjIxYTY1NWQxNjk0OWRlM2NiMjNhN2Y2ZDU0MDJjNjA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8bS5vcmxvdkBwb3N0Z3Jlc3Byby5ydT4K RGF0ZTogV2VkLCA0IE1heSAyMDIyIDE1OjUzOjM2ICswMzAwClN1YmplY3Q6IFtQQVRDSCB2MTYg NS83XSBURVNUOiBpbml0ZGIgb3B0aW9uIHRvIGluaXRpYWxpemUgY2x1c3RlciB3aXRoCiBub24t c3RhbmRhcmQgeGlkL214aWQvbXhvZmYKClRvIGRhdGUgdGVzdGluZyBkYXRhYmFzZSBjbHVzdGVy IHdyYXBhcnVuZCB3YXMgbm90IGVhc3kgYXMgaW5pdGRiIGhhcyBhbHdheXMKaW5pdGVkIGl0IHdp dGggZGVmYXVsdCB4aWQvbXhpZC9teG9mZi4gVGhlIG9wdGlvbiB0byBzcGVjaWZ5IGFueSB2YWxp ZAp4aWQvbXhpZC9teG9mZiBhdCBjbHVzdGVyIHN0YXJ0dXAgd2lsbCBtYWtlIHRoZXNlIHRoaW5n cyBlYXNpZXIuCgpBdXRob3I6IE1heGltIE9ybG92IDxvcmxvdm1nQGdtYWlsLmNvbT4KQXV0aG9y OiBQYXZlbCBCb3Jpc292IDxwYXNoa2luLmVsZmVAZ21haWwuY29tPgpBdXRob3I6IFN2ZXRsYW5h IERlcmV2eWFua28gPHMuZGVyZXZ5YW5rb0Bwb3N0Z3Jlc3Byby5ydT4KRGlzY3Vzc2lvbjogaHR0 cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0L0NBQ0clM0RlemFhNHZxWWpK MTZ5b3hncnBhLSUzRGdYbmYwVnYzRXk5YmpHclJSRk4yWXlXRlElNDBtYWlsLmdtYWlsLmNvbQot LS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYyAgICAgIHwgICA2ICsrCiBzcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYyB8ICAxMCArKysKIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMgIHwgICA2ICsrCiBzcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9nLmMgICAgICB8ICAxNSArKy0tCiBzcmMvYmFja2VuZC9ib290c3RyYXAvYm9v dHN0cmFwLmMgICAgICB8ICA1MCArKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL21haW4vbWFpbi5j ICAgICAgICAgICAgICAgIHwgICA2ICsrCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0 ZXIuYyAgICB8ICAxNCArKystCiBzcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgICAgICAgICAg ICB8ICA1MyArKysrKysrKysrKy0KIHNyYy9iaW4vaW5pdGRiL2luaXRkYi5jICAgICAgICAgICAg ICAgIHwgMTA3ICsrKysrKysrKysrKysrKysrKysrKysrKy0KIHNyYy9iaW4vaW5pdGRiL3QvMDAx X2luaXRkYi5wbCAgICAgICAgIHwgIDYwICsrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9hY2Nl c3MveGxvZy5oICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9jLmggICAgICAgICAg ICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NsYXNzLmggICAg ICAgICB8ICAgMiArLQogMTMgZmlsZXMgY2hhbmdlZCwgMzI0IGluc2VydGlvbnMoKyksIDEyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYwppbmRleCBlODBmYmUxMDljLi5i ZmY2OTI2YmY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jbG9nLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xvZy5jCkBAIC04MzAsOCArODMwLDE0 IEBAIGNoZWNrX3RyYW5zYWN0aW9uX2J1ZmZlcnMoaW50ICpuZXd2YWwsIHZvaWQgKipleHRyYSwg R3VjU291cmNlIHNvdXJjZSkKIHZvaWQKIEJvb3RTdHJhcENMT0codm9pZCkKIHsKKwlpbnQ2NAlw YWdlbm87CisKIAkvKiBaZXJvIHRoZSBpbml0aWFsIHBhZ2UgYW5kIGZsdXNoIGl0IHRvIGRpc2sg Ki8KIAlTaW1wbGVMcnVaZXJvQW5kV3JpdGVQYWdlKFhhY3RDdGwsIDApOworCisJcGFnZW5vID0g VHJhbnNhY3Rpb25JZFRvUGFnZShYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoVHJhbnNhbVZhcmlh Ymxlcy0+bmV4dFhpZCkpOworCWlmIChwYWdlbm8pCisJCVNpbXBsZUxydVplcm9BbmRXcml0ZVBh Z2UoWGFjdEN0bCwgcGFnZW5vKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL211bHRpeGFjdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVs dGl4YWN0LmMKaW5kZXggNmU3YTA5OTYxNy4uOWI2ZWVlZTFjOSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0vbXVsdGl4YWN0LmMKQEAgLTE5NTAsOSArMTk1MCwxOSBAQCBjaGVja19tdWx0aXhh Y3RfbWVtYmVyX2J1ZmZlcnMoaW50ICpuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNv dXJjZSkKIHZvaWQKIEJvb3RTdHJhcE11bHRpWGFjdCh2b2lkKQogeworCWludDY0CXBhZ2VubzsK KwogCS8qIFplcm8gdGhlIGluaXRpYWwgcGFnZXMgYW5kIGZsdXNoIHRoZW0gdG8gZGlzayAqLwog CVNpbXBsZUxydVplcm9BbmRXcml0ZVBhZ2UoTXVsdGlYYWN0T2Zmc2V0Q3RsLCAwKTsKIAlTaW1w bGVMcnVaZXJvQW5kV3JpdGVQYWdlKE11bHRpWGFjdE1lbWJlckN0bCwgMCk7CisKKwlwYWdlbm8g PSBNdWx0aVhhY3RJZFRvT2Zmc2V0UGFnZShNdWx0aVhhY3RTdGF0ZS0+bmV4dE1YYWN0KTsKKwlp ZiAocGFnZW5vKQorCQlTaW1wbGVMcnVaZXJvQW5kV3JpdGVQYWdlKE11bHRpWGFjdE9mZnNldEN0 bCwgcGFnZW5vKTsKKworCXBhZ2VubyA9IE1YT2Zmc2V0VG9NZW1iZXJQYWdlKE11bHRpWGFjdFN0 YXRlLT5uZXh0T2Zmc2V0KTsKKwlpZiAocGFnZW5vKQorCQlTaW1wbGVMcnVaZXJvQW5kV3JpdGVQ YWdlKE11bHRpWGFjdE1lbWJlckN0bCwgcGFnZW5vKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS9zdWJ0cmFucy5jCmluZGV4IDA5YWFjZTllMDkuLmU3M2UwYzNhMGYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0vc3VidHJhbnMuYwpAQCAtMjY4LDggKzI2OCwxNCBAQCBjaGVja19z dWJ0cmFuc19idWZmZXJzKGludCAqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3Vy Y2UpCiB2b2lkCiBCb290U3RyYXBTVUJUUkFOUyh2b2lkKQogeworCWludDY0CXBhZ2VubzsKKwog CS8qIFplcm8gdGhlIGluaXRpYWwgcGFnZSBhbmQgZmx1c2ggaXQgdG8gZGlzayAqLwogCVNpbXBs ZUxydVplcm9BbmRXcml0ZVBhZ2UoU3ViVHJhbnNDdGwsIDApOworCisJcGFnZW5vID0gVHJhbnNh Y3Rpb25JZFRvUGFnZShYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoVHJhbnNhbVZhcmlhYmxlcy0+ bmV4dFhpZCkpOworCWlmIChwYWdlbm8pCisJCVNpbXBsZUxydVplcm9BbmRXcml0ZVBhZ2UoU3Vi VHJhbnNDdGwsIHBhZ2Vubyk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKaW5k ZXggYThjYzY0MDJkNi4uZDc1ZjMzMjU0OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpA QCAtMTM2LDYgKzEzNiwxMCBAQCBpbnQJCQltYXhfc2xvdF93YWxfa2VlcF9zaXplX21iID0gLTE7 CiBpbnQJCQl3YWxfZGVjb2RlX2J1ZmZlcl9zaXplID0gNTEyICogMTAyNDsKIGJvb2wJCXRyYWNr X3dhbF9pb190aW1pbmcgPSBmYWxzZTsKIAorVHJhbnNhY3Rpb25JZAkJc3RhcnRfeGlkID0gRmly c3ROb3JtYWxUcmFuc2FjdGlvbklkOworTXVsdGlYYWN0SWQJCQlzdGFydF9teGlkID0gRmlyc3RN dWx0aVhhY3RJZDsKK011bHRpWGFjdE9mZnNldAkJc3RhcnRfbXhvZmYgPSAwOworCiAjaWZkZWYg V0FMX0RFQlVHCiBib29sCQlYTE9HX0RFQlVHID0gZmFsc2U7CiAjZW5kaWYKQEAgLTUyNjUsMTMg KzUyNjksMTQgQEAgQm9vdFN0cmFwWExPRyh1aW50MzIgZGF0YV9jaGVja3N1bV92ZXJzaW9uKQog CWNoZWNrUG9pbnQuZnVsbFBhZ2VXcml0ZXMgPSBmdWxsUGFnZVdyaXRlczsKIAljaGVja1BvaW50 LndhbF9sZXZlbCA9IHdhbF9sZXZlbDsKIAljaGVja1BvaW50Lm5leHRYaWQgPQotCQlGdWxsVHJh bnNhY3Rpb25JZEZyb21FcG9jaEFuZFhpZCgwLCBGaXJzdE5vcm1hbFRyYW5zYWN0aW9uSWQpOwor CQlGdWxsVHJhbnNhY3Rpb25JZEZyb21FcG9jaEFuZFhpZCgwLCBNYXgoRmlyc3ROb3JtYWxUcmFu c2FjdGlvbklkLAorCQkJCQkJCQkJCQkJc3RhcnRfeGlkKSk7CiAJY2hlY2tQb2ludC5uZXh0T2lk ID0gRmlyc3RHZW5ia2lPYmplY3RJZDsKLQljaGVja1BvaW50Lm5leHRNdWx0aSA9IEZpcnN0TXVs dGlYYWN0SWQ7Ci0JY2hlY2tQb2ludC5uZXh0TXVsdGlPZmZzZXQgPSAwOwotCWNoZWNrUG9pbnQu b2xkZXN0WGlkID0gRmlyc3ROb3JtYWxUcmFuc2FjdGlvbklkOworCWNoZWNrUG9pbnQubmV4dE11 bHRpID0gTWF4KEZpcnN0TXVsdGlYYWN0SWQsIHN0YXJ0X214aWQpOworCWNoZWNrUG9pbnQubmV4 dE11bHRpT2Zmc2V0ID0gc3RhcnRfbXhvZmY7CisJY2hlY2tQb2ludC5vbGRlc3RYaWQgPSBYaWRG cm9tRnVsbFRyYW5zYWN0aW9uSWQoY2hlY2tQb2ludC5uZXh0WGlkKTsKIAljaGVja1BvaW50Lm9s ZGVzdFhpZERCID0gVGVtcGxhdGUxRGJPaWQ7Ci0JY2hlY2tQb2ludC5vbGRlc3RNdWx0aSA9IEZp cnN0TXVsdGlYYWN0SWQ7CisJY2hlY2tQb2ludC5vbGRlc3RNdWx0aSA9IGNoZWNrUG9pbnQubmV4 dE11bHRpOwogCWNoZWNrUG9pbnQub2xkZXN0TXVsdGlEQiA9IFRlbXBsYXRlMURiT2lkOwogCWNo ZWNrUG9pbnQub2xkZXN0Q29tbWl0VHNYaWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIAljaGVj a1BvaW50Lm5ld2VzdENvbW1pdFRzWGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9ib290c3RyYXAvYm9vdHN0cmFwLmMgYi9zcmMvYmFja2VuZC9ib290 c3RyYXAvYm9vdHN0cmFwLmMKaW5kZXggZmM4NjM4YzFiNi4uNTFmYzExMDZmZSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYm9vdHN0cmFwL2Jvb3RzdHJhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2Jv b3RzdHJhcC9ib290c3RyYXAuYwpAQCAtMjIwLDcgKzIyMCw3IEBAIEJvb3RzdHJhcE1vZGVNYWlu KGludCBhcmdjLCBjaGFyICphcmd2W10sIGJvb2wgY2hlY2tfb25seSkKIAlhcmd2Kys7CiAJYXJn Yy0tOwogCi0Jd2hpbGUgKChmbGFnID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJCOmM6ZDpEOkZrcjpY Oi06IikpICE9IC0xKQorCXdoaWxlICgoZmxhZyA9IGdldG9wdChhcmdjLCBhcmd2LCAiQjpjOmQ6 RDpGa206bzpyOlg6eDotOiIpKSAhPSAtMSkKIAl7CiAJCXN3aXRjaCAoZmxhZykKIAkJewpAQCAt Mjg4LDEyICsyODgsNjAgQEAgQm9vdHN0cmFwTW9kZU1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb XSwgYm9vbCBjaGVja19vbmx5KQogCQkJY2FzZSAnayc6CiAJCQkJYm9vdHN0cmFwX2RhdGFfY2hl Y2tzdW1fdmVyc2lvbiA9IFBHX0RBVEFfQ0hFQ0tTVU1fVkVSU0lPTjsKIAkJCQlicmVhazsKKwkJ CWNhc2UgJ20nOgorCQkJCXsKKwkJCQkJY2hhcgkgICAqZW5kcHRyOworCisJCQkJCWVycm5vID0g MDsKKwkJCQkJc3RhcnRfbXhpZCA9IHN0cnRvdTY0KG9wdGFyZywgJmVuZHB0ciwgMCk7CisKKwkJ CQkJaWYgKGVuZHB0ciA9PSBvcHRhcmcgfHwgKmVuZHB0ciAhPSAnXDAnIHx8IGVycm5vICE9IDAg fHwKKwkJCQkJCSFTdGFydE11bHRpWGFjdElkSXNWYWxpZChzdGFydF9teGlkKSkKKwkJCQkJewor CQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJS T1IpLAorCQkJCQkJCQkgZXJybXNnKCJpbnZhbGlkIGluaXRpYWwgZGF0YWJhc2UgY2x1c3RlciBt dWx0aXhhY3QgaWQiKSkpOworCQkJCQl9CisJCQkJfQorCQkJCWJyZWFrOworCQkJY2FzZSAnbyc6 CisJCQkJeworCQkJCQljaGFyCSAgICplbmRwdHI7CisKKwkJCQkJZXJybm8gPSAwOworCQkJCQlz dGFydF9teG9mZiA9IHN0cnRvdTY0KG9wdGFyZywgJmVuZHB0ciwgMCk7CisKKwkJCQkJaWYgKGVu ZHB0ciA9PSBvcHRhcmcgfHwgKmVuZHB0ciAhPSAnXDAnIHx8IGVycm5vICE9IDAgfHwKKwkJCQkJ CSFTdGFydE11bHRpWGFjdE9mZnNldElzVmFsaWQoc3RhcnRfbXhvZmYpKQorCQkJCQl7CisJCQkJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiks CisJCQkJCQkJCSBlcnJtc2coImludmFsaWQgaW5pdGlhbCBkYXRhYmFzZSBjbHVzdGVyIG11bHRp eGFjdCBvZmZzZXQiKSkpOworCQkJCQl9CisJCQkJfQorCQkJCWJyZWFrOwogCQkJY2FzZSAncic6 CiAJCQkJc3RybGNweShPdXRwdXRGaWxlTmFtZSwgb3B0YXJnLCBNQVhQR1BBVEgpOwogCQkJCWJy ZWFrOwogCQkJY2FzZSAnWCc6CiAJCQkJU2V0Q29uZmlnT3B0aW9uKCJ3YWxfc2VnbWVudF9zaXpl Iiwgb3B0YXJnLCBQR0NfSU5URVJOQUwsIFBHQ19TX0RZTkFNSUNfREVGQVVMVCk7CiAJCQkJYnJl YWs7CisJCQljYXNlICd4JzoKKwkJCQl7CisJCQkJCWNoYXIJICAgKmVuZHB0cjsKKworCQkJCQll cnJubyA9IDA7CisJCQkJCXN0YXJ0X3hpZCA9IHN0cnRvdTY0KG9wdGFyZywgJmVuZHB0ciwgMCk7 CisKKwkJCQkJaWYgKGVuZHB0ciA9PSBvcHRhcmcgfHwgKmVuZHB0ciAhPSAnXDAnIHx8IGVycm5v ICE9IDAgfHwKKwkJCQkJCSFTdGFydFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHN0YXJ0X3hpZCkpCisJ CQkJCXsKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lO VEFYX0VSUk9SKSwKKwkJCQkJCQkJIGVycm1zZygiaW52YWxpZCBpbml0aWFsIGRhdGFiYXNlIGNs dXN0ZXIgeGlkIHZhbHVlIikpKTsKKwkJCQkJfQorCQkJCX0KKwkJCQlicmVhazsKIAkJCWRlZmF1 bHQ6CiAJCQkJd3JpdGVfc3RkZXJyKCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZvcm1h dGlvbi5cbiIsCiAJCQkJCQkJIHByb2duYW1lKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL21h aW4vbWFpbi5jIGIvc3JjL2JhY2tlbmQvbWFpbi9tYWluLmMKaW5kZXggN2Q2M2NmOTRhNi4uMGEw ZWUxNjIyMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbWFpbi9tYWluLmMKKysrIGIvc3JjL2Jh Y2tlbmQvbWFpbi9tYWluLmMKQEAgLTQyMywxMiArNDIzLDE4IEBAIGhlbHAoY29uc3QgY2hhciAq cHJvZ25hbWUpCiAJcHJpbnRmKF8oIiAgLUUgICAgICAgICAgICAgICAgIGVjaG8gc3RhdGVtZW50 IGJlZm9yZSBleGVjdXRpb25cbiIpKTsKIAlwcmludGYoXygiICAtaiAgICAgICAgICAgICAgICAg ZG8gbm90IHVzZSBuZXdsaW5lIGFzIGludGVyYWN0aXZlIHF1ZXJ5IGRlbGltaXRlclxuIikpOwog CXByaW50ZihfKCIgIC1yIEZJTEVOQU1FICAgICAgICBzZW5kIHN0ZG91dCBhbmQgc3RkZXJyIHRv IGdpdmVuIGZpbGVcbiIpKTsKKwlwcmludGYoXygiICAtbSBTVEFSVF9NWElEICAgICAgc2V0IGlu aXRpYWwgZGF0YWJhc2UgY2x1c3RlciBtdWx0aXhhY3QgaWRcbiIpKTsKKwlwcmludGYoXygiICAt byBTVEFSVF9NWE9GRiAgICAgc2V0IGluaXRpYWwgZGF0YWJhc2UgY2x1c3RlciBtdWx0aXhhY3Qg b2Zmc2V0XG4iKSk7CisJcHJpbnRmKF8oIiAgLXggU1RBUlRfWElEICAgICAgIHNldCBpbml0aWFs IGRhdGFiYXNlIGNsdXN0ZXIgeGlkXG4iKSk7CiAKIAlwcmludGYoXygiXG5PcHRpb25zIGZvciBi b290c3RyYXBwaW5nIG1vZGU6XG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1ib290ICAgICAgICAgICAg IHNlbGVjdHMgYm9vdHN0cmFwcGluZyBtb2RlIChtdXN0IGJlIGZpcnN0IGFyZ3VtZW50KVxuIikp OwogCXByaW50ZihfKCIgIC0tY2hlY2sgICAgICAgICAgICBzZWxlY3RzIGNoZWNrIG1vZGUgKG11 c3QgYmUgZmlyc3QgYXJndW1lbnQpXG4iKSk7CiAJcHJpbnRmKF8oIiAgREJOQU1FICAgICAgICAg ICAgIGRhdGFiYXNlIG5hbWUgKG1hbmRhdG9yeSBhcmd1bWVudCBpbiBib290c3RyYXBwaW5nIG1v ZGUpXG4iKSk7CiAJcHJpbnRmKF8oIiAgLXIgRklMRU5BTUUgICAgICAgIHNlbmQgc3Rkb3V0IGFu ZCBzdGRlcnIgdG8gZ2l2ZW4gZmlsZVxuIikpOworCXByaW50ZihfKCIgIC1tIFNUQVJUX01YSUQg ICAgICBzZXQgaW5pdGlhbCBkYXRhYmFzZSBjbHVzdGVyIG11bHRpeGFjdCBpZFxuIikpOworCXBy aW50ZihfKCIgIC1vIFNUQVJUX01YT0ZGICAgICBzZXQgaW5pdGlhbCBkYXRhYmFzZSBjbHVzdGVy IG11bHRpeGFjdCBvZmZzZXRcbiIpKTsKKwlwcmludGYoXygiICAteCBTVEFSVF9YSUQgICAgICAg c2V0IGluaXRpYWwgZGF0YWJhc2UgY2x1c3RlciB4aWRcbiIpKTsKIAogCXByaW50ZihfKCJcblBs ZWFzZSByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgY29tcGxldGUgbGlzdCBvZiBydW4t dGltZVxuIgogCQkJICJjb25maWd1cmF0aW9uIHNldHRpbmdzIGFuZCBob3cgdG8gc2V0IHRoZW0g b24gdGhlIGNvbW1hbmQgbGluZSBvciBpblxuIgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9z dG1hc3Rlci9wb3N0bWFzdGVyLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIu YwppbmRleCA0OTBmN2NlMzY2Li5iNDE5MTVkZWVkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w b3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3Rt YXN0ZXIuYwpAQCAtNTk1LDcgKzU5NSw3IEBAIFBvc3RtYXN0ZXJNYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCiAJICogdGNvcC9wb3N0Z3Jlcy5jICh0aGUgb3B0aW9uIHNldHMgc2hvdWxkIG5v dCBjb25mbGljdCkgYW5kIHdpdGggdGhlCiAJICogY29tbW9uIGhlbHAoKSBmdW5jdGlvbiBpbiBt YWluL21haW4uYy4KIAkgKi8KLQl3aGlsZSAoKG9wdCA9IGdldG9wdChhcmdjLCBhcmd2LCAiQjpi QzpjOkQ6ZDpFZUZmOmg6aWprOmxOOk9QcDpyOlM6c1R0Olc6LToiKSkgIT0gLTEpCisJd2hpbGUg KChvcHQgPSBnZXRvcHQoYXJnYywgYXJndiwgIkI6YkM6YzpEOmQ6RWVGZjpoOmlqazpsbTpOOk9v OlBwOnI6UzpzVHQ6Vzp4Oi06IikpICE9IC0xKQogCXsKIAkJc3dpdGNoIChvcHQpCiAJCXsKQEAg LTcwNSwxMCArNzA1LDE4IEBAIFBvc3RtYXN0ZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10p CiAJCQkJU2V0Q29uZmlnT3B0aW9uKCJtYXhfY29ubmVjdGlvbnMiLCBvcHRhcmcsIFBHQ19QT1NU TUFTVEVSLCBQR0NfU19BUkdWKTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSAnbSc6CisJCQkJLyog b25seSB1c2VkIGJ5IHNpbmdsZS11c2VyIGJhY2tlbmQgKi8KKwkJCQlicmVhazsKKwogCQkJY2Fz ZSAnTyc6CiAJCQkJU2V0Q29uZmlnT3B0aW9uKCJhbGxvd19zeXN0ZW1fdGFibGVfbW9kcyIsICJ0 cnVlIiwgUEdDX1BPU1RNQVNURVIsIFBHQ19TX0FSR1YpOwogCQkJCWJyZWFrOwogCisJCQljYXNl ICdvJzoKKwkJCQkvKiBvbmx5IHVzZWQgYnkgc2luZ2xlLXVzZXIgYmFja2VuZCAqLworCQkJCWJy ZWFrOworCiAJCQljYXNlICdQJzoKIAkJCQlTZXRDb25maWdPcHRpb24oImlnbm9yZV9zeXN0ZW1f aW5kZXhlcyIsICJ0cnVlIiwgUEdDX1BPU1RNQVNURVIsIFBHQ19TX0FSR1YpOwogCQkJCWJyZWFr OwpAQCAtNzU5LDYgKzc2NywxMCBAQCBQb3N0bWFzdGVyTWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQogCQkJCVNldENvbmZpZ09wdGlvbigicG9zdF9hdXRoX2RlbGF5Iiwgb3B0YXJnLCBQR0Nf UE9TVE1BU1RFUiwgUEdDX1NfQVJHVik7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgJ3gnOgorCQkJ CS8qIG9ubHkgdXNlZCBieSBzaW5nbGUtdXNlciBiYWNrZW5kICovCisJCQkJYnJlYWs7CisKIAkJ CWRlZmF1bHQ6CiAJCQkJd3JpdGVfc3RkZXJyKCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBp bmZvcm1hdGlvbi5cbiIsCiAJCQkJCQkJIHByb2duYW1lKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRleCAy ZjhjM2Q1ZjkxLi5iNGE4MzEzMGUzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3Bvc3Rn cmVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCkBAIC0zODI2LDcgKzM4MjYs NyBAQCBwcm9jZXNzX3Bvc3RncmVzX3N3aXRjaGVzKGludCBhcmdjLCBjaGFyICphcmd2W10sIEd1 Y0NvbnRleHQgY3R4LAogCSAqIHBvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jICh0aGUgb3B0aW9uIHNl dHMgc2hvdWxkIG5vdCBjb25mbGljdCkgYW5kIHdpdGgKIAkgKiB0aGUgY29tbW9uIGhlbHAoKSBm dW5jdGlvbiBpbiBtYWluL21haW4uYy4KIAkgKi8KLQl3aGlsZSAoKGZsYWcgPSBnZXRvcHQoYXJn YywgYXJndiwgIkI6YkM6YzpEOmQ6RWVGZjpoOmlqazpsTjpuT1BwOnI6UzpzVHQ6djpXOi06Iikp ICE9IC0xKQorCXdoaWxlICgoZmxhZyA9IGdldG9wdChhcmdjLCBhcmd2LCAiQjpiQzpjOkQ6ZDpF ZUZmOmg6aWprOmxtOk46bk9vOlBwOnI6UzpzVHQ6djpXOng6LToiKSkgIT0gLTEpCiAJewogCQlz d2l0Y2ggKGZsYWcpCiAJCXsKQEAgLTM5MzEsNiArMzkzMSwyMyBAQCBwcm9jZXNzX3Bvc3RncmVz X3N3aXRjaGVzKGludCBhcmdjLCBjaGFyICphcmd2W10sIEd1Y0NvbnRleHQgY3R4LAogCQkJCVNl dENvbmZpZ09wdGlvbigic3NsIiwgInRydWUiLCBjdHgsIGd1Y3NvdXJjZSk7CiAJCQkJYnJlYWs7 CiAKKwkJCWNhc2UgJ20nOgorCQkJCXsKKwkJCQkJY2hhcgkgICAqZW5kcHRyOworCisJCQkJCWVy cm5vID0gMDsKKwkJCQkJc3RhcnRfbXhpZCA9IHN0cnRvdTY0KG9wdGFyZywgJmVuZHB0ciwgMCk7 CisKKwkJCQkJaWYgKGVuZHB0ciA9PSBvcHRhcmcgfHwgKmVuZHB0ciAhPSAnXDAnIHx8IGVycm5v ICE9IDAgfHwKKwkJCQkJCSFTdGFydE11bHRpWGFjdElkSXNWYWxpZChzdGFydF9teGlkKSkKKwkJ CQkJeworCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5U QVhfRVJST1IpLAorCQkJCQkJCQkgZXJybXNnKCJpbnZhbGlkIGluaXRpYWwgZGF0YWJhc2UgY2x1 c3RlciBtdWx0aXhhY3QgaWQiKSkpOworCQkJCQl9CisJCQkJfQorCQkJCWJyZWFrOworCiAJCQlj YXNlICdOJzoKIAkJCQlTZXRDb25maWdPcHRpb24oIm1heF9jb25uZWN0aW9ucyIsIG9wdGFyZywg Y3R4LCBndWNzb3VyY2UpOwogCQkJCWJyZWFrOwpAQCAtMzk0Myw2ICszOTYwLDIzIEBAIHByb2Nl c3NfcG9zdGdyZXNfc3dpdGNoZXMoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgR3VjQ29udGV4dCBj dHgsCiAJCQkJU2V0Q29uZmlnT3B0aW9uKCJhbGxvd19zeXN0ZW1fdGFibGVfbW9kcyIsICJ0cnVl IiwgY3R4LCBndWNzb3VyY2UpOwogCQkJCWJyZWFrOwogCisJCQljYXNlICdvJzoKKwkJCQl7CisJ CQkJCWNoYXIJICAgKmVuZHB0cjsKKworCQkJCQllcnJubyA9IDA7CisJCQkJCXN0YXJ0X214b2Zm ID0gc3RydG91NjQob3B0YXJnLCAmZW5kcHRyLCAwKTsKKworCQkJCQlpZiAoZW5kcHRyID09IG9w dGFyZyB8fCAqZW5kcHRyICE9ICdcMCcgfHwgZXJybm8gIT0gMCB8fAorCQkJCQkJIVN0YXJ0TXVs dGlYYWN0T2Zmc2V0SXNWYWxpZChzdGFydF9teG9mZikpCisJCQkJCXsKKwkJCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkJ IGVycm1zZygiaW52YWxpZCBpbml0aWFsIGRhdGFiYXNlIGNsdXN0ZXIgbXVsdGl4YWN0IG9mZnNl dCIpKSk7CisJCQkJCX0KKwkJCQl9CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgJ1AnOgogCQkJCVNl dENvbmZpZ09wdGlvbigiaWdub3JlX3N5c3RlbV9pbmRleGVzIiwgInRydWUiLCBjdHgsIGd1Y3Nv dXJjZSk7CiAJCQkJYnJlYWs7CkBAIC0zOTk3LDYgKzQwMzEsMjMgQEAgcHJvY2Vzc19wb3N0Z3Jl c19zd2l0Y2hlcyhpbnQgYXJnYywgY2hhciAqYXJndltdLCBHdWNDb250ZXh0IGN0eCwKIAkJCQlT ZXRDb25maWdPcHRpb24oInBvc3RfYXV0aF9kZWxheSIsIG9wdGFyZywgY3R4LCBndWNzb3VyY2Up OwogCQkJCWJyZWFrOwogCisJCQljYXNlICd4JzoKKwkJCQl7CisJCQkJCWNoYXIJICAgKmVuZHB0 cjsKKworCQkJCQllcnJubyA9IDA7CisJCQkJCXN0YXJ0X3hpZCA9IHN0cnRvdTY0KG9wdGFyZywg JmVuZHB0ciwgMCk7CisKKwkJCQkJaWYgKGVuZHB0ciA9PSBvcHRhcmcgfHwgKmVuZHB0ciAhPSAn XDAnIHx8IGVycm5vICE9IDAgfHwKKwkJCQkJCSFTdGFydFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHN0 YXJ0X3hpZCkpCisJCQkJCXsKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCShlcnJjb2Rl KEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkJIGVycm1zZygiaW52YWxpZCBpbml0aWFs IGRhdGFiYXNlIGNsdXN0ZXIgeGlkIikpKTsKKwkJCQkJfQorCQkJCX0KKwkJCQlicmVhazsKKwog CQkJZGVmYXVsdDoKIAkJCQllcnJzKys7CiAJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmlu L2luaXRkYi9pbml0ZGIuYyBiL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCmluZGV4IDYyYmJkMDhk OWYuLmM2MWIxMmRlOWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCisrKyBi L3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCkBAIC0xNjksNiArMTY5LDkgQEAgc3RhdGljIGNoYXIg Knhsb2dfZGlyID0gTlVMTDsKIHN0YXRpYyBpbnQJd2FsX3NlZ21lbnRfc2l6ZV9tYiA9IChERUZB VUxUX1hMT0dfU0VHX1NJWkUpIC8gKDEwMjQgKiAxMDI0KTsKIHN0YXRpYyBEYXRhRGlyU3luY01l dGhvZCBzeW5jX21ldGhvZCA9IERBVEFfRElSX1NZTkNfTUVUSE9EX0ZTWU5DOwogc3RhdGljIGJv b2wgc3luY19kYXRhX2ZpbGVzID0gdHJ1ZTsKK3N0YXRpYyBUcmFuc2FjdGlvbklkIHN0YXJ0X3hp ZCA9IDA7CitzdGF0aWMgTXVsdGlYYWN0SWQgc3RhcnRfbXhpZCA9IDA7CitzdGF0aWMgTXVsdGlY YWN0T2Zmc2V0IHN0YXJ0X214b2ZmID0gMDsKIAogCiAvKiBpbnRlcm5hbCB2YXJzICovCkBAIC0x NTg2LDYgKzE1ODksMTEgQEAgYm9vdHN0cmFwX3RlbXBsYXRlMSh2b2lkKQogCWJraV9saW5lcyA9 IHJlcGxhY2VfdG9rZW4oYmtpX2xpbmVzLCAiUE9TVEdSRVMiLAogCQkJCQkJCSAgZXNjYXBlX3F1 b3Rlc19ia2kodXNlcm5hbWUpKTsKIAorCS8qIHJlbGZyb3plbnhpZCBtdXN0IG5vdCBiZSBsZXNz IHRoYW4gRmlyc3ROb3JtYWxUcmFuc2FjdGlvbklkICovCisJc3ByaW50ZihidWYsICIldSIsIE1h eChzdGFydF94aWQsIDMpKTsKKwlia2lfbGluZXMgPSByZXBsYWNlX3Rva2VuKGJraV9saW5lcywg IlJFQ0VOVFhNSU4iLAorCQkJCQkJCSAgYnVmKTsKKwogCWJraV9saW5lcyA9IHJlcGxhY2VfdG9r ZW4oYmtpX2xpbmVzLCAiRU5DT0RJTkciLAogCQkJCQkJCSAgZW5jb2RpbmdpZF90b19zdHJpbmco ZW5jb2RpbmdpZCkpOwogCkBAIC0xNjExLDYgKzE2MTksOSBAQCBib290c3RyYXBfdGVtcGxhdGUx KHZvaWQpCiAKIAlwcmludGZQUUV4cEJ1ZmZlcigmY21kLCAiXCIlc1wiIC0tYm9vdCAlcyAlcyIs IGJhY2tlbmRfZXhlYywgYm9vdF9vcHRpb25zLCBleHRyYV9vcHRpb25zKTsKIAlhcHBlbmRQUUV4 cEJ1ZmZlcigmY21kLCAiIC1YICVkIiwgd2FsX3NlZ21lbnRfc2l6ZV9tYiAqICgxMDI0ICogMTAy NCkpOworCWFwcGVuZFBRRXhwQnVmZmVyKCZjbWQsICIgLW0gJXUiLCBzdGFydF9teGlkKTsKKwlh cHBlbmRQUUV4cEJ1ZmZlcigmY21kLCAiIC1vICUiIFBSSXU2NCwgc3RhcnRfbXhvZmYpOworCWFw cGVuZFBRRXhwQnVmZmVyKCZjbWQsICIgLXggJXUiLCBzdGFydF94aWQpOwogCWlmIChkYXRhX2No ZWNrc3VtcykKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmNtZCwgIiAtayIpOwogCWlmIChkZWJ1 ZykKQEAgLTI1NTIsMTMgKzI1NjMsMjEgQEAgdXNhZ2UoY29uc3QgY2hhciAqcHJvZ25hbWUpCiAJ cHJpbnRmKF8oIiAgLWQsIC0tZGVidWcgICAgICAgICAgICAgICBnZW5lcmF0ZSBsb3RzIG9mIGRl YnVnZ2luZyBvdXRwdXRcbiIpKTsKIAlwcmludGYoXygiICAgICAgLS1kaXNjYXJkLWNhY2hlcyAg ICAgIHNldCBkZWJ1Z19kaXNjYXJkX2NhY2hlcz0xXG4iKSk7CiAJcHJpbnRmKF8oIiAgLUwgRElS RUNUT1JZICAgICAgICAgICAgICB3aGVyZSB0byBmaW5kIHRoZSBpbnB1dCBmaWxlc1xuIikpOwor CXByaW50ZihfKCIgIC1tLCAtLW11bHRpeGFjdC1pZD1TVEFSVF9NWElEXG4iCisJCQkgIiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXQgaW5pdGlhbCBkYXRhYmFzZSBjbHVzdGVyIG11bHRp eGFjdCBpZFxuIgorCQkJICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4IHZhbHVlIGlz IDJeNjItMVxuIikpOwogCXByaW50ZihfKCIgIC1uLCAtLW5vLWNsZWFuICAgICAgICAgICAgZG8g bm90IGNsZWFuIHVwIGFmdGVyIGVycm9yc1xuIikpOwogCXByaW50ZihfKCIgIC1OLCAtLW5vLXN5 bmMgICAgICAgICAgICAgZG8gbm90IHdhaXQgZm9yIGNoYW5nZXMgdG8gYmUgd3JpdHRlbiBzYWZl bHkgdG8gZGlza1xuIikpOwogCXByaW50ZihfKCIgICAgICAtLW5vLXN5bmMtZGF0YS1maWxlcyAg ZG8gbm90IHN5bmMgZmlsZXMgd2l0aGluIGRhdGFiYXNlIGRpcmVjdG9yaWVzXG4iKSk7CiAJcHJp bnRmKF8oIiAgICAgIC0tbm8taW5zdHJ1Y3Rpb25zICAgICBkbyBub3QgcHJpbnQgaW5zdHJ1Y3Rp b25zIGZvciBuZXh0IHN0ZXBzXG4iKSk7CisJcHJpbnRmKF8oIiAgLW8sIC0tbXVsdGl4YWN0LW9m ZnNldD1TVEFSVF9NWE9GRlxuIgorCQkJICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0 IGluaXRpYWwgZGF0YWJhc2UgY2x1c3RlciBtdWx0aXhhY3Qgb2Zmc2V0XG4iCisJCQkgIiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtYXggdmFsdWUgaXMgMl42Mi0xXG4iKSk7CiAJcHJpbnRm KF8oIiAgLXMsIC0tc2hvdyAgICAgICAgICAgICAgICBzaG93IGludGVybmFsIHNldHRpbmdzLCB0 aGVuIGV4aXRcbiIpKTsKIAlwcmludGYoXygiICAgICAgLS1zeW5jLW1ldGhvZD1NRVRIT0QgIHNl dCBtZXRob2QgZm9yIHN5bmNpbmcgZmlsZXMgdG8gZGlza1xuIikpOwogCXByaW50ZihfKCIgIC1T LCAtLXN5bmMtb25seSAgICAgICAgICAgb25seSBzeW5jIGRhdGFiYXNlIGZpbGVzIHRvIGRpc2ss IHRoZW4gZXhpdFxuIikpOworCXByaW50ZihfKCIgIC14LCAtLXhpZD1TVEFSVF9YSUQgICAgICAg c2V0IGluaXRpYWwgZGF0YWJhc2UgY2x1c3RlciB4aWRcbiIKKwkJCSAiICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1heCB2YWx1ZSBpcyAyXjYyLTFcbiIpKTsKIAlwcmludGYoXygiXG5PdGhl ciBvcHRpb25zOlxuIikpOwogCXByaW50ZihfKCIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAg b3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb24sIHRoZW4gZXhpdFxuIikpOwogCXByaW50ZihfKCIg IC0/LCAtLWhlbHAgICAgICAgICAgICAgICAgc2hvdyB0aGlzIGhlbHAsIHRoZW4gZXhpdFxuIikp OwpAQCAtMzA5Myw2ICszMTEyLDE4IEBAIGluaXRpYWxpemVfZGF0YV9kaXJlY3Rvcnkodm9pZCkK IAkvKiBOb3cgY3JlYXRlIGFsbCB0aGUgdGV4dCBjb25maWcgZmlsZXMgKi8KIAlzZXR1cF9jb25m aWcoKTsKIAorCWlmIChzdGFydF9teGlkICE9IDApCisJCXByaW50ZihfKCJzZWxlY3RpbmcgaW5p dGlhbCBtdWx0aXhhY3QgaWQgLi4uICV1XG4iKSwKKwkJCQkgc3RhcnRfbXhpZCk7CisKKwlpZiAo c3RhcnRfbXhvZmYgIT0gMCkKKwkJcHJpbnRmKF8oInNlbGVjdGluZyBpbml0aWFsIG11bHRpeGFj dCBvZmZzZXQgLi4uICUiIFBSSXU2NCAiXG4iKSwKKwkJCQkgc3RhcnRfbXhvZmYpOworCisJaWYg KHN0YXJ0X3hpZCAhPSAwKQorCQlwcmludGYoXygic2VsZWN0aW5nIGluaXRpYWwgeGlkIC4uLiAl dVxuIiksCisJCQkJIHN0YXJ0X3hpZCk7CisKIAkvKiBCb290c3RyYXAgdGVtcGxhdGUxICovCiAJ Ym9vdHN0cmFwX3RlbXBsYXRlMSgpOwogCkBAIC0zMTA5LDggKzMxNDAsMTIgQEAgaW5pdGlhbGl6 ZV9kYXRhX2RpcmVjdG9yeSh2b2lkKQogCWZmbHVzaChzdGRvdXQpOwogCiAJaW5pdFBRRXhwQnVm ZmVyKCZjbWQpOwotCXByaW50ZlBRRXhwQnVmZmVyKCZjbWQsICJcIiVzXCIgJXMgJXMgdGVtcGxh dGUxID4lcyIsCi0JCQkJCSAgYmFja2VuZF9leGVjLCBiYWNrZW5kX29wdGlvbnMsIGV4dHJhX29w dGlvbnMsIERFVk5VTEwpOworCXByaW50ZlBRRXhwQnVmZmVyKCZjbWQsICJcIiVzXCIgJXMgJXMi LAorCQkJCQkgIGJhY2tlbmRfZXhlYywgYmFja2VuZF9vcHRpb25zLCBleHRyYV9vcHRpb25zKTsK KwlhcHBlbmRQUUV4cEJ1ZmZlcigmY21kLCAiIC1tICV1Iiwgc3RhcnRfbXhpZCk7CisJYXBwZW5k UFFFeHBCdWZmZXIoJmNtZCwgIiAtbyAlIiBQUkl1NjQsIHN0YXJ0X214b2ZmKTsKKwlhcHBlbmRQ UUV4cEJ1ZmZlcigmY21kLCAiIC14ICV1Iiwgc3RhcnRfeGlkKTsKKwlhcHBlbmRQUUV4cEJ1ZmZl cigmY21kLCAiIHRlbXBsYXRlMSA+JXMiLCBERVZOVUxMKTsKIAogCVBHX0NNRF9PUEVOKGNtZC5k YXRhKTsKIApAQCAtMzE5OCw2ICszMjMzLDkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltd KQogCQl7InN5bmMtbWV0aG9kIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDE5fSwKIAkJeyJu by1kYXRhLWNoZWNrc3VtcyIsIG5vX2FyZ3VtZW50LCBOVUxMLCAyMH0sCiAJCXsibm8tc3luYy1k YXRhLWZpbGVzIiwgbm9fYXJndW1lbnQsIE5VTEwsIDIxfSwKKwkJeyJ4aWQiLCByZXF1aXJlZF9h cmd1bWVudCwgTlVMTCwgJ3gnfSwKKwkJeyJtdWx0aXhhY3QtaWQiLCByZXF1aXJlZF9hcmd1bWVu dCwgTlVMTCwgJ20nfSwKKwkJeyJtdWx0aXhhY3Qtb2Zmc2V0IiwgcmVxdWlyZWRfYXJndW1lbnQs IE5VTEwsICdvJ30sCiAJCXtOVUxMLCAwLCBOVUxMLCAwfQogCX07CiAKQEAgLTMyMzksNyArMzI3 Nyw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAogCS8qIHByb2Nlc3MgY29tbWFu ZC1saW5lIG9wdGlvbnMgKi8KIAotCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3Ys ICJBOmM6ZEQ6RTpna0w6bk5zU1Q6VTpXWDoiLAorCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFy Z2MsIGFyZ3YsICJBOmM6ZEQ6RTpna0w6bTpuTm86c1NUOlU6V3g6WDoiLAogCQkJCQkJCWxvbmdf b3B0aW9ucywgJm9wdGlvbl9pbmRleCkpICE9IC0xKQogCXsKIAkJc3dpdGNoIChjKQpAQCAtMzI5 Nyw2ICszMzM1LDMwIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJCQlkZWJ1ZyA9 IHRydWU7CiAJCQkJcHJpbnRmKF8oIlJ1bm5pbmcgaW4gZGVidWcgbW9kZS5cbiIpKTsKIAkJCQli cmVhazsKKwkJCWNhc2UgJ20nOgorCQkJCXsKKwkJCQkJY2hhcgkgICAqZW5kcHRyOworCisJCQkJ CWVycm5vID0gMDsKKwkJCQkJc3RhcnRfbXhpZCA9IHN0cnRvdTY0KG9wdGFyZywgJmVuZHB0ciwg MCk7CisKKwkJCQkJaWYgKGVuZHB0ciA9PSBvcHRhcmcgfHwgKmVuZHB0ciAhPSAnXDAnIHx8IGVy cm5vICE9IDAgfHwKKwkJCQkJCSFTdGFydE11bHRpWGFjdElkSXNWYWxpZChzdGFydF9teGlkKSkK KwkJCQkJeworCQkJCQkJcGdfbG9nX2Vycm9yKCJpbnZhbGlkIGluaXRpYWwgZGF0YWJhc2UgY2x1 c3RlciBtdWx0aXhhY3QgaWQiKTsKKwkJCQkJCWV4aXQoMSk7CisJCQkJCX0KKwkJCQkJZWxzZSBp ZiAoc3RhcnRfbXhpZCA8IDEpIC8qIEZpcnN0TXVsdGlYYWN0SWQgKi8KKwkJCQkJeworCQkJCQkJ LyoKKwkJCQkJCSAqIFdlIGF2b2lkIG14aWQgdG8gYmUgc2lsZW50bHkgc2V0IHRvCisJCQkJCQkg KiBGaXJzdE11bHRpWGFjdElkLCB0aG91Z2ggaXQgZG9lcyBub3QgaGFybS4KKwkJCQkJCSAqLwor CQkJCQkJcGdfbG9nX2Vycm9yKCJtdWx0aXhhY3QgaWQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAw Iik7CisJCQkJCQlleGl0KDEpOworCQkJCQl9CisJCQkJfQorCQkJCWJyZWFrOwogCQkJY2FzZSAn bic6CiAJCQkJbm9jbGVhbiA9IHRydWU7CiAJCQkJcHJpbnRmKF8oIlJ1bm5pbmcgaW4gbm8tY2xl YW4gbW9kZS4gIE1pc3Rha2VzIHdpbGwgbm90IGJlIGNsZWFuZWQgdXAuXG4iKSk7CkBAIC0zMzA0 LDYgKzMzNjYsMjEgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkJY2FzZSAnTic6 CiAJCQkJZG9fc3luYyA9IGZhbHNlOwogCQkJCWJyZWFrOworCQkJY2FzZSAnbyc6CisJCQkJewor CQkJCQljaGFyCSAgICplbmRwdHI7CisKKwkJCQkJZXJybm8gPSAwOworCQkJCQlzdGFydF9teG9m ZiA9IHN0cnRvdTY0KG9wdGFyZywgJmVuZHB0ciwgMCk7CisKKwkJCQkJaWYgKGVuZHB0ciA9PSBv cHRhcmcgfHwgKmVuZHB0ciAhPSAnXDAnIHx8IGVycm5vICE9IDAgfHwKKwkJCQkJCSFTdGFydE11 bHRpWGFjdE9mZnNldElzVmFsaWQoc3RhcnRfbXhvZmYpKQorCQkJCQl7CisJCQkJCQlwZ19sb2df ZXJyb3IoImludmFsaWQgaW5pdGlhbCBkYXRhYmFzZSBjbHVzdGVyIG11bHRpeGFjdCBvZmZzZXQi KTsKKwkJCQkJCWV4aXQoMSk7CisJCQkJCX0KKwkJCQl9CisJCQkJYnJlYWs7CiAJCQljYXNlICdT JzoKIAkJCQlzeW5jX29ubHkgPSB0cnVlOwogCQkJCWJyZWFrOwpAQCAtMzM5NSw2ICszNDcyLDMw IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJCWNhc2UgMjE6CiAJCQkJc3luY19k YXRhX2ZpbGVzID0gZmFsc2U7CiAJCQkJYnJlYWs7CisJCQljYXNlICd4JzoKKwkJCQl7CisJCQkJ CWNoYXIJICAgKmVuZHB0cjsKKworCQkJCQllcnJubyA9IDA7CisJCQkJCXN0YXJ0X3hpZCA9IHN0 cnRvdTY0KG9wdGFyZywgJmVuZHB0ciwgMCk7CisKKwkJCQkJaWYgKGVuZHB0ciA9PSBvcHRhcmcg fHwgKmVuZHB0ciAhPSAnXDAnIHx8IGVycm5vICE9IDAgfHwKKwkJCQkJCSFTdGFydFRyYW5zYWN0 aW9uSWRJc1ZhbGlkKHN0YXJ0X3hpZCkpCisJCQkJCXsKKwkJCQkJCXBnX2xvZ19lcnJvcigiaW52 YWxpZCB2YWx1ZSBmb3IgaW5pdGlhbCBkYXRhYmFzZSBjbHVzdGVyIHhpZCIpOworCQkJCQkJZXhp dCgxKTsKKwkJCQkJfQorCQkJCQllbHNlIGlmIChzdGFydF94aWQgPCAzKSAvKiBGaXJzdE5vcm1h bFRyYW5zYWN0aW9uSWQgKi8KKwkJCQkJeworCQkJCQkJLyoKKwkJCQkJCSAqIFdlIGF2b2lkIHhp ZCB0byBiZSBzaWxlbnRseSBzZXQgdG8KKwkJCQkJCSAqIEZpcnN0Tm9ybWFsVHJhbnNhY3Rpb25J ZCwgdGhvdWdoIGl0IGRvZXMgbm90IGhhcm0uCisJCQkJCQkgKi8KKwkJCQkJCXBnX2xvZ19lcnJv cigieGlkIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMiIpOworCQkJCQkJZXhpdCgxKTsKKwkJCQkJ fQorCQkJCX0KKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJLyogZ2V0b3B0X2xvbmcgYWxy ZWFkeSBlbWl0dGVkIGEgY29tcGxhaW50ICovCiAJCQkJcGdfbG9nX2Vycm9yX2hpbnQoIlRyeSBc IiVzIC0taGVscFwiIGZvciBtb3JlIGluZm9ybWF0aW9uLiIsIHByb2duYW1lKTsKZGlmZiAtLWdp dCBhL3NyYy9iaW4vaW5pdGRiL3QvMDAxX2luaXRkYi5wbCBiL3NyYy9iaW4vaW5pdGRiL3QvMDAx X2luaXRkYi5wbAppbmRleCBiN2VmN2VkOGQwLi4xYzJlMTY3MTEwIDEwMDY0NAotLS0gYS9zcmMv YmluL2luaXRkYi90LzAwMV9pbml0ZGIucGwKKysrIGIvc3JjL2Jpbi9pbml0ZGIvdC8wMDFfaW5p dGRiLnBsCkBAIC0zMzEsNCArMzMxLDY0IEBAIGNvbW1hbmRfZmFpbHMoCiAJWyAncGdfY2hlY2tz dW1zJywgJy0tcGdkYXRhJyA9PiAkZGF0YWRpcl9ub2NoZWNrc3VtcyBdLAogCSJwZ19jaGVja3N1 bXMgZmFpbHMgd2l0aCBkYXRhIGNoZWNrc3VtIGRpc2FibGVkIik7CiAKKyMgU2V0IG5vbi1zdGFu ZGFyZCBpbml0aWFsIG14aWQvbXhvZmYveGlkLgorY29tbWFuZF9mYWlsc19saWtlKAorCVsgJ2lu aXRkYicsICctbScsICdzZXZlbicsICRkYXRhZGlyIF0sCisJcXIvaW5pdGRiOiBlcnJvcjogaW52 YWxpZCBpbml0aWFsIGRhdGFiYXNlIGNsdXN0ZXIgbXVsdGl4YWN0IGlkLywKKwknZmFpbHMgZm9y IGludmFsaWQgaW5pdGlhbCBkYXRhYmFzZSBjbHVzdGVyIG11bHRpeGFjdCBpZCcpOworY29tbWFu ZF9mYWlsc19saWtlKAorCVsgJ2luaXRkYicsICctbycsICdzZXZlbicsICRkYXRhZGlyIF0sCisJ cXIvaW5pdGRiOiBlcnJvcjogaW52YWxpZCBpbml0aWFsIGRhdGFiYXNlIGNsdXN0ZXIgbXVsdGl4 YWN0IG9mZnNldC8sCisJJ2ZhaWxzIGZvciBpbnZhbGlkIGluaXRpYWwgZGF0YWJhc2UgY2x1c3Rl ciBtdWx0aXhhY3Qgb2Zmc2V0Jyk7Citjb21tYW5kX2ZhaWxzX2xpa2UoCisJWyAnaW5pdGRiJywg Jy14JywgJ3NldmVuJywgJGRhdGFkaXIgXSwKKwlxci9pbml0ZGI6IGVycm9yOiBpbnZhbGlkIHZh bHVlIGZvciBpbml0aWFsIGRhdGFiYXNlIGNsdXN0ZXIgeGlkLywKKwknZmFpbHMgZm9yIGludmFs aWQgaW5pdGlhbCBkYXRhYmFzZSBjbHVzdGVyIHhpZCcpOworCitjb21tYW5kX2NoZWNrc19hbGwo CisJWyAnaW5pdGRiJywgJy1tJywgJzY1NTM1JywgIiR0ZW1wZGlyL2RhdGEtbTY1NTM1IiBdLAor CTAsCisJW3FyL3NlbGVjdGluZyBpbml0aWFsIG11bHRpeGFjdCBpZCAuLi4gNjU1MzUvXSwKKwlb XSwKKwknc2VsZWN0aW5nIGluaXRpYWwgbXVsdGl4YWN0IGlkJyk7Citjb21tYW5kX2NoZWNrc19h bGwoCisJWyAnaW5pdGRiJywgJy1vJywgJzY1NTM1JywgIiR0ZW1wZGlyL2RhdGEtbzY1NTM1IiBd LAorCTAsCisJW3FyL3NlbGVjdGluZyBpbml0aWFsIG11bHRpeGFjdCBvZmZzZXQgLi4uIDY1NTM1 L10sCisJW10sCisJJ3NlbGVjdGluZyBpbml0aWFsIG11bHRpeGFjdCBvZmZzZXQnKTsKK2NvbW1h bmRfY2hlY2tzX2FsbCgKKwlbICdpbml0ZGInLCAnLXgnLCAnNjU1MzUnLCAiJHRlbXBkaXIvZGF0 YS14NjU1MzUiIF0sCisJMCwKKwlbcXIvc2VsZWN0aW5nIGluaXRpYWwgeGlkIC4uLiA2NTUzNS9d LAorCVtdLAorCSdzZWxlY3RpbmcgaW5pdGlhbCB4aWQnKTsKKworIyBTZXR1cCBuZXcgY2x1c3Rl ciB3aXRoIGdpdmVuIG14aWQvbXhvZmYveGlkLgorbXkgJG5vZGU7CitteSAkcmVzdWx0OworCisk bm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygndGVzdC1teGlkJyk7Ciskbm9k ZS0+aW5pdChleHRyYSA9PiBbJy1tJywgJzE2Nzc3MjE1J10pOyAjIDB4RkZGRkZGCiskbm9kZS0+ c3RhcnQ7CiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIG5l eHRfbXVsdGl4YWN0X2lkIEZST00gcGdfY29udHJvbF9jaGVja3BvaW50KCk7Iik7CitvaygkcmVz dWx0ID49IDE2Nzc3MjE1LCAnc2V0dXAgY2x1c3RlciB3aXRoIGdpdmVuIG14aWQnKTsKKyRub2Rl LT5zdG9wOworCiskbm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygndGVzdC1t eG9mZicpOworJG5vZGUtPmluaXQoZXh0cmEgPT4gWyctbycsICcxNjc3NzIxNSddKTsgIyAweEZG RkZGRgorJG5vZGUtPnN0YXJ0OworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgIlNFTEVDVCBuZXh0X211bHRpX29mZnNldCBGUk9NIHBnX2NvbnRyb2xfY2hlY2twb2ludCgp OyIpOworb2soJHJlc3VsdCA+PSAxNjc3NzIxNSwgJ3NldHVwIGNsdXN0ZXIgd2l0aCBnaXZlbiBt eG9mZicpOworJG5vZGUtPnN0b3A7CisKKyRub2RlID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rl ci0+bmV3KCd0ZXN0LXhpZCcpOworJG5vZGUtPmluaXQoZXh0cmEgPT4gWycteCcsICcxNjc3NzIx NSddKTsgIyAweEZGRkZGRgorJG5vZGUtPnN0YXJ0OworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgIlNFTEVDVCB0eGlkX2N1cnJlbnQoKTsiKTsKK29rKCRyZXN1bHQgPj0g MTY3NzcyMTUsICdzZXR1cCBjbHVzdGVyIHdpdGggZ2l2ZW4geGlkIC0gY2hlY2sgMScpOworJHJl c3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBvbGRlc3RfeGlkIEZS T00gcGdfY29udHJvbF9jaGVja3BvaW50KCk7Iik7CitvaygkcmVzdWx0ID49IDE2Nzc3MjE1LCAn c2V0dXAgY2x1c3RlciB3aXRoIGdpdmVuIHhpZCAtIGNoZWNrIDInKTsKKyRub2RlLT5zdG9wOwor CiBkb25lX3Rlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgg Yi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCmluZGV4IGQzMTMwOTljMDIuLjIzYjhkZDAzNzUg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUv YWNjZXNzL3hsb2cuaApAQCAtOTQsNiArOTQsOSBAQCB0eXBlZGVmIGVudW0gUmVjb3ZlcnlTdGF0 ZQogfSBSZWNvdmVyeVN0YXRlOwogCiBleHRlcm4gUEdETExJTVBPUlQgaW50IHdhbF9sZXZlbDsK K2V4dGVybiBQR0RMTElNUE9SVCBUcmFuc2FjdGlvbklkIHN0YXJ0X3hpZDsKK2V4dGVybiBQR0RM TElNUE9SVCBNdWx0aVhhY3RJZCBzdGFydF9teGlkOworZXh0ZXJuIFBHRExMSU1QT1JUIE11bHRp WGFjdE9mZnNldCBzdGFydF9teG9mZjsKIAogLyogSXMgV0FMIGFyY2hpdmluZyBlbmFibGVkIChh bHdheXMgb3Igb25seSB3aGlsZSBzZXJ2ZXIgaXMgcnVubmluZyBub3JtYWxseSk/ICovCiAjZGVm aW5lIFhMb2dBcmNoaXZpbmdBY3RpdmUoKSBcCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jLmgg Yi9zcmMvaW5jbHVkZS9jLmgKaW5kZXggZWZhNmUwOTlmOC4uZmY0ZTQ2YzM2MyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvYy5oCisrKyBiL3NyYy9pbmNsdWRlL2MuaApAQCAtNjE3LDYgKzYxNywx MCBAQCB0eXBlZGVmIHVpbnQ2NCBNdWx0aVhhY3RPZmZzZXQ7CiAKIHR5cGVkZWYgdWludDMyIENv bW1hbmRJZDsKIAorI2RlZmluZSBTdGFydFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHhpZCkJCQkoKHhp ZCkgPD0gMHhGRkZGRkZGRikKKyNkZWZpbmUgU3RhcnRNdWx0aVhhY3RJZElzVmFsaWQobXhpZCkJ CQkoKG14aWQpIDw9IDB4RkZGRkZGRkYpCisjZGVmaW5lIFN0YXJ0TXVsdGlYYWN0T2Zmc2V0SXNW YWxpZChvZmZzZXQpCQkoKG9mZnNldCkgPD0gMHhGRkZGRkZGRikKKwogI2RlZmluZSBGaXJzdENv bW1hbmRJZAkoKENvbW1hbmRJZCkgMCkKICNkZWZpbmUgSW52YWxpZENvbW1hbmRJZAkofihDb21t YW5kSWQpMCkKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jbGFzcy5oIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jbGFzcy5oCmluZGV4IDA3ZDE4MmRhNzkuLjA2ZTk5Njk4 NjIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2xhc3MuaAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2NsYXNzLmgKQEAgLTEyNiw3ICsxMjYsNyBAQCBDQVRBTE9HKHBn X2NsYXNzLDEyNTksUmVsYXRpb25SZWxhdGlvbklkKSBCS0lfQk9PVFNUUkFQIEJLSV9ST1dUWVBF X09JRCg4MyxSZWxhdAogCU9pZAkJCXJlbHJld3JpdGUgQktJX0RFRkFVTFQoMCkgQktJX0xPT0tV UF9PUFQocGdfY2xhc3MpOwogCiAJLyogYWxsIFhpZHMgPCB0aGlzIGFyZSBmcm96ZW4gaW4gdGhp cyByZWwgKi8KLQlUcmFuc2FjdGlvbklkIHJlbGZyb3plbnhpZCBCS0lfREVGQVVMVCgzKTsJLyog Rmlyc3ROb3JtYWxUcmFuc2FjdGlvbklkICovCisJVHJhbnNhY3Rpb25JZCByZWxmcm96ZW54aWQg QktJX0RFRkFVTFQoUkVDRU5UWE1JTik7CS8qIEZpcnN0Tm9ybWFsVHJhbnNhY3Rpb25JZCAqLwog CiAJLyogYWxsIG11bHRpeGFjdHMgaW4gdGhpcyByZWwgYXJlID49IHRoaXM7IGl0IGlzIHJlYWxs eSBhIE11bHRpWGFjdElkICovCiAJVHJhbnNhY3Rpb25JZCByZWxtaW5teGlkIEJLSV9ERUZBVUxU KDEpOwkvKiBGaXJzdE11bHRpWGFjdElkICovCi0tIAoyLjQ5LjAKCg== --0000000000008e206d0639e4003e Content-Type: application/octet-stream; name="v16-0003-Make-pg_upgrade-convert-multixact-offsets.patch" Content-Disposition: attachment; filename="v16-0003-Make-pg_upgrade-convert-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_md35zdxo2 RnJvbSA1NDAwOGMyNGQ5ODAzNGUyNzJmZWQ0NWY0NTlmNmFiNzAwMTIxM2M3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8bS5vcmxvdkBwb3N0Z3Jlc3Byby5ydT4K RGF0ZTogVHVlLCAxMyBBdWcgMjAyNCAxNDo0NDo1MCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggdjE2 IDMvN10gTWFrZSBwZ191cGdyYWRlIGNvbnZlcnQgbXVsdGl4YWN0IG9mZnNldHMuCgpBdXRob3I6 IE1heGltIE9ybG92IDxvcmxvdm1nQGdtYWlsLmNvbT4KQXV0aG9yOiBZdXJhIFNva29sb3YgPHku c29rb2xvdkBwb3N0Z3Jlc3Byby5ydT4KLS0tCiBzcmMvYmluL3BnX3VwZ3JhZGUvTWFrZWZpbGUg ICAgIHwgICAxICsKIHNyYy9iaW4vcGdfdXBncmFkZS9tZXNvbi5idWlsZCAgfCAgIDEgKwogc3Jj L2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYyB8ICA0MCArKy0KIHNyYy9iaW4vcGdfdXBncmFk ZS9wZ191cGdyYWRlLmggfCAgMTQgKy0KIHNyYy9iaW4vcGdfdXBncmFkZS9zZWdyZXNpemUuYyAg fCA1MjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwg NTc5IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L2Jpbi9wZ191cGdyYWRlL3NlZ3Jlc2l6ZS5jCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdy YWRlL01ha2VmaWxlIGIvc3JjL2Jpbi9wZ191cGdyYWRlL01ha2VmaWxlCmluZGV4IGY4M2QyYjVk MzAuLjcwOTA4ZDYzYTMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9NYWtlZmlsZQor KysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvTWFrZWZpbGUKQEAgLTIxLDYgKzIxLDcgQEAgT0JKUyA9 IFwKIAlpbmZvLm8gXAogCW9wdGlvbi5vIFwKIAlwYXJhbGxlbC5vIFwKKwlzZWdyZXNpemUubyBc CiAJcGdfdXBncmFkZS5vIFwKIAlyZWxmaWxlbnVtYmVyLm8gXAogCXNlcnZlci5vIFwKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9tZXNvbi5idWlsZCBiL3NyYy9iaW4vcGdfdXBncmFk ZS9tZXNvbi5idWlsZAppbmRleCBhYzk5MmYwZDE0Li5hOGIxZDc3YzJkIDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX3VwZ3JhZGUvbWVzb24uYnVpbGQKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL21l c29uLmJ1aWxkCkBAIC0xMCw2ICsxMCw3IEBAIHBnX3VwZ3JhZGVfc291cmNlcyA9IGZpbGVzKAog ICAnaW5mby5jJywKICAgJ29wdGlvbi5jJywKICAgJ3BhcmFsbGVsLmMnLAorICAnc2VncmVzaXpl LmMnLAogICAncGdfdXBncmFkZS5jJywKICAgJ3JlbGZpbGVudW1iZXIuYycsCiAgICdzZXJ2ZXIu YycsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jIGIvc3JjL2Jp bi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYwppbmRleCA1MzZlNDlkMjYxLi43ZmFlMTczMDE2IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCisrKyBiL3NyYy9iaW4v cGdfdXBncmFkZS9wZ191cGdyYWRlLmMKQEAgLTc5Myw4ICs3OTMsNDIgQEAgY29weV94YWN0X3hs b2dfeGlkKHZvaWQpCiAJaWYgKG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNhdF92ZXIgPj0gTVVM VElYQUNUX0ZPUk1BVENIQU5HRV9DQVRfVkVSICYmCiAJCW5ld19jbHVzdGVyLmNvbnRyb2xkYXRh LmNhdF92ZXIgPj0gTVVMVElYQUNUX0ZPUk1BVENIQU5HRV9DQVRfVkVSKQogCXsKLQkJY29weV9z dWJkaXJfZmlsZXMoInBnX211bHRpeGFjdC9vZmZzZXRzIiwgInBnX211bHRpeGFjdC9vZmZzZXRz Iik7Ci0JCWNvcHlfc3ViZGlyX2ZpbGVzKCJwZ19tdWx0aXhhY3QvbWVtYmVycyIsICJwZ19tdWx0 aXhhY3QvbWVtYmVycyIpOworCQkvKgorCQkgKiBJZiB0aGUgb2xkIHNlcnZlciBpcyBiZWZvcmUg dGhlIE1VTFRJWEFDVE9GRlNFVF9GT1JNQVRDSEFOR0VfQ0FUX1ZFUgorCQkgKiBpdCBtdXN0IGhh dmUgMzItYml0IG11bHRpeGlkIG9mZnNldHMsIHRodXMgaXQgc2hvdWxkIGJlIGNvbnZlcnRlZC4K KwkJICovCisJCWlmIChvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jYXRfdmVyIDwgTVVMVElYQUNU T0ZGU0VUX0ZPUk1BVENIQU5HRV9DQVRfVkVSICYmCisJCQluZXdfY2x1c3Rlci5jb250cm9sZGF0 YS5jYXRfdmVyID49IE1VTFRJWEFDVE9GRlNFVF9GT1JNQVRDSEFOR0VfQ0FUX1ZFUikKKwkJewor CQkJTXVsdGlYYWN0T2Zmc2V0CQlvbGRlc3Rfb2Zmc2V0LAorCQkJCQkJCQluZXh0X29mZnNldDsK KworCQkJcmVtb3ZlX25ld19zdWJkaXIoInBnX211bHRpeGFjdC9vZmZzZXRzIiwgZmFsc2UpOwor CQkJcHJlcF9zdGF0dXMoIkNvbnZlcnRpbmcgcGdfbXVsdGl4YWN0L29mZnNldHMgdG8gNjQtYml0 Iik7CisJCQlvbGRlc3Rfb2Zmc2V0ID0gY29udmVydF9tdWx0aXhhY3Rfb2Zmc2V0cygpOworCQkJ Y2hlY2tfb2soKTsKKworCQkJcmVtb3ZlX25ld19zdWJkaXIoInBnX211bHRpeGFjdC9tZW1iZXJz IiwgZmFsc2UpOworCQkJcHJlcF9zdGF0dXMoIkNvbnZlcnRpbmcgcGdfbXVsdGl4YWN0L21lbWJl cnMiKTsKKwkJCWNvbnZlcnRfbXVsdGl4YWN0X21lbWJlcnMob2xkZXN0X29mZnNldCk7CisJCQlj aGVja19vaygpOworCisJCQluZXh0X29mZnNldCA9IG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNo a3BudF9ueHRteG9mZjsKKwkJCWlmIChvbGRlc3Rfb2Zmc2V0KQorCQkJeworCQkJCWlmIChuZXh0 X29mZnNldCA8IG9sZGVzdF9vZmZzZXQpCisJCQkJCW5leHRfb2Zmc2V0ICs9ICgoTXVsdGlYYWN0 T2Zmc2V0KSAxIDw8IDMyKSAtIDE7CisKKwkJCQluZXh0X29mZnNldCAtPSBvbGRlc3Rfb2Zmc2V0 IC0gMTsKKworCQkJCW9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9ueHRteG9mZiA9IG5l eHRfb2Zmc2V0OworCQkJfQorCQl9CisJCWVsc2UKKwkJeworCQkJY29weV9zdWJkaXJfZmlsZXMo InBnX211bHRpeGFjdC9vZmZzZXRzIiwgInBnX211bHRpeGFjdC9vZmZzZXRzIik7CisJCQljb3B5 X3N1YmRpcl9maWxlcygicGdfbXVsdGl4YWN0L21lbWJlcnMiLCAicGdfbXVsdGl4YWN0L21lbWJl cnMiKTsKKwkJfQogCiAJCXByZXBfc3RhdHVzKCJTZXR0aW5nIG5leHQgbXVsdGl4YWN0IElEIGFu ZCBvZmZzZXQgZm9yIG5ldyBjbHVzdGVyIik7CiAKQEAgLTgwMyw3ICs4MzcsNyBAQCBjb3B5X3hh Y3RfeGxvZ194aWQodm9pZCkKIAkJICogY291bnRlcnMgaGVyZSBhbmQgdGhlIG9sZGVzdCBtdWx0 aSBwcmVzZW50IG9uIHN5c3RlbS4KIAkJICovCiAJCWV4ZWNfcHJvZyhVVElMSVRZX0xPR19GSUxF LCBOVUxMLCB0cnVlLCB0cnVlLAotCQkJCSAgIlwiJXMvcGdfcmVzZXR3YWxcIiAtTyAldSAtbSAl dSwldSBcIiVzXCIiLAorCQkJCSAgIlwiJXMvcGdfcmVzZXR3YWxcIiAtTyAlIiBQUkl1NjQgIiAt bSAldSwldSBcIiVzXCIiLAogCQkJCSAgbmV3X2NsdXN0ZXIuYmluZGlyLAogCQkJCSAgb2xkX2Ns dXN0ZXIuY29udHJvbGRhdGEuY2hrcG50X254dG14b2ZmLAogCQkJCSAgb2xkX2NsdXN0ZXIuY29u dHJvbGRhdGEuY2hrcG50X254dG11bHRpLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRl L3BnX3VwZ3JhZGUuaCBiL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgKaW5kZXggNjlj OTY1YmI3ZC4uMmQ0ZjFkMzllNSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3Vw Z3JhZGUuaAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCkBAIC0xMTQsNiAr MTE0LDEzIEBAIGV4dGVybiBjaGFyICpvdXRwdXRfZmlsZXNbXTsKICAqLwogI2RlZmluZSBNVUxU SVhBQ1RfRk9STUFUQ0hBTkdFX0NBVF9WRVIgMjAxMzAxMjMxCiAKKy8qCisgKiBTd2ljdGggZnJv bSAzMi1iaXQgdG8gNjQtYml0IGZvciBtdWx0aXhpZCBvZmZzZXRzLgorICoKKyAqIFhYWDogc2hv dWxkIGJlIGNoYW5nZWQgdG8gdGhlIGFjdHVhbCBDQVRBTE9HX1ZFUlNJT05fTk8gb24gY29tbWl0 LgorICovCisjZGVmaW5lIE1VTFRJWEFDVE9GRlNFVF9GT1JNQVRDSEFOR0VfQ0FUX1ZFUiAyMDI0 MDkwNDEKKwogLyoKICAqIGxhcmdlIG9iamVjdCBjaHVuayBzaXplIGFkZGVkIHRvIHBnX2NvbnRy b2xkYXRhLAogICogY29tbWl0IDVmOTNjMzc4MDVlNzQ4NTQ4ODQ4MDkxNmI0NTg1ZTA5OGQzY2M4 ODMKQEAgLTIzNSw3ICsyNDIsNyBAQCB0eXBlZGVmIHN0cnVjdAogCXVpbnQzMgkJY2hrcG50X254 dGVwb2NoOwogCXVpbnQzMgkJY2hrcG50X254dG9pZDsKIAl1aW50MzIJCWNoa3BudF9ueHRtdWx0 aTsKLQl1aW50MzIJCWNoa3BudF9ueHRteG9mZjsKKwl1aW50NjQJCWNoa3BudF9ueHRteG9mZjsK IAl1aW50MzIJCWNoa3BudF9vbGRzdE11bHRpOwogCXVpbnQzMgkJY2hrcG50X29sZHN0eGlkOwog CXVpbnQzMgkJYWxpZ247CkBAIC01MjYsMyArNTMzLDggQEAgdHlwZWRlZiBzdHJ1Y3QKIAlGSUxF CSAgICpmaWxlOwogCWNoYXIJCXBhdGhbTUFYUEdQQVRIXTsKIH0gVXBncmFkZVRhc2tSZXBvcnQ7 CisKKy8qIHNlZ3Jlc2l6ZS5jICovCisKK011bHRpWGFjdE9mZnNldAkJY29udmVydF9tdWx0aXhh Y3Rfb2Zmc2V0cyh2b2lkKTsKK3ZvaWQJCQkJY29udmVydF9tdWx0aXhhY3RfbWVtYmVycyhNdWx0 aVhhY3RPZmZzZXQgb2xkZXN0X29mZnNldCk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3Jh ZGUvc2VncmVzaXplLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUvc2VncmVzaXplLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uN2Y4MGQwNjUyYQotLS0gL2Rldi9udWxsCisr KyBiL3NyYy9iaW4vcGdfdXBncmFkZS9zZWdyZXNpemUuYwpAQCAtMCwwICsxLDUyNyBAQAorLyoK KyAqCXNlZ3Jlc2l6ZS5jCisgKgorICoJU0xSVSBzZWdtZW50IHJlc2l6ZSB1dGlsaXR5CisgKgor ICoJQ29weXJpZ2h0IChjKSAyMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91 cAorICoJc3JjL2Jpbi9wZ191cGdyYWRlL3NlZ3Jlc2l6ZS5jCisgKi8KKworI2luY2x1ZGUgInBv c3RncmVzX2ZlLmgiCisKKyNpbmNsdWRlICJwZ191cGdyYWRlLmgiCisjaW5jbHVkZSAiYWNjZXNz L211bHRpeGFjdC5oIgorCisvKiBTZWUgc2xydS5oICovCisjZGVmaW5lIFNMUlVfUEFHRVNfUEVS X1NFR01FTlQJCTMyCisKKy8qCisgKiBTb21lIGtpbmQgb2YgaXRlcmF0b3IgYXNzb2NpYXRlZCB3 aXRoIGEgcGFydGljdWxhciBTTFJVIHNlZ21lbnQuICBUaGUgaWRlYSBpcworICogdG8gc3BlY2lm eSB0aGUgc2VnbWVudCBhbmQgcGFnZSBudW1iZXIgYW5kIHRoZW4gbW92ZSB0aHJvdWdoIHRoZSBw YWdlcy4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgU2xydVNlZ1N0YXRlCit7CisJY2hhcgkgICAqZGly OworCWNoYXIJICAgKmZuOworCUZJTEUJICAgKmZpbGU7CisJaW50NjQJCXNlZ25vOworCXVpbnQ2 NAkJcGFnZW5vOworCWJvb2wJCWxlYWRpbmdfZ2FwOworfSBTbHJ1U2VnU3RhdGU7CisKKy8qCisg KiBNaXJyb3JzIHRoZSBTbHJ1RmlsZU5hbWUgZnJvbSBzbHJ1LmMKKyAqLworc3RhdGljIGlubGlu ZSBjaGFyICoKK1NscnVGaWxlTmFtZShTbHJ1U2VnU3RhdGUgKnN0YXRlKQoreworCUFzc2VydChz dGF0ZS0+c2Vnbm8gPj0gMCAmJiBzdGF0ZS0+c2Vnbm8gPD0gSU5UNjRDT05TVCgweEZGRkZGRikp OworCXJldHVybiBwc3ByaW50ZigiJXMvJTA0WCIsIHN0YXRlLT5kaXIsICh1bnNpZ25lZCBpbnQp IHN0YXRlLT5zZWdubyk7Cit9CisKKy8qCisgKiBDcmVhdGUgbmV3IFNMUlUgc2VnbWVudCBmaWxl LgorICovCitzdGF0aWMgdm9pZAorY3JlYXRlX3NlZ21lbnQoU2xydVNlZ1N0YXRlICpzdGF0ZSkK K3sKKwlBc3NlcnQoc3RhdGUtPmZuID09IE5VTEwpOworCUFzc2VydChzdGF0ZS0+ZmlsZSA9PSBO VUxMKTsKKworCXN0YXRlLT5mbiA9IFNscnVGaWxlTmFtZShzdGF0ZSk7CisJc3RhdGUtPmZpbGUg PSBmb3BlbihzdGF0ZS0+Zm4sICJ3YiIpOworCWlmICghc3RhdGUtPmZpbGUpCisJCXBnX2ZhdGFs KCJjb3VsZCBub3QgY3JlYXRlIGZpbGUgXCIlc1wiOiAlbSIsIHN0YXRlLT5mbik7Cit9CisKKy8q CisgKiBPcGVuIGV4aXN0aW5nIFNMUlUgc2VnbWVudCBmaWxlLgorICovCitzdGF0aWMgdm9pZAor b3Blbl9zZWdtZW50KFNscnVTZWdTdGF0ZSAqc3RhdGUpCit7CisJQXNzZXJ0KHN0YXRlLT5mbiA9 PSBOVUxMKTsKKwlBc3NlcnQoc3RhdGUtPmZpbGUgPT0gTlVMTCk7CisKKwlzdGF0ZS0+Zm4gPSBT bHJ1RmlsZU5hbWUoc3RhdGUpOworCXN0YXRlLT5maWxlID0gZm9wZW4oc3RhdGUtPmZuLCAicmIi KTsKKwlpZiAoIXN0YXRlLT5maWxlKQorCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gZmlsZSBc IiVzXCI6ICVtIiwgc3RhdGUtPmZuKTsKK30KKworLyoKKyAqIENsb3NlIFNMUlUgc2VnbWVudCBm aWxlLgorICovCitzdGF0aWMgdm9pZAorY2xvc2Vfc2VnbWVudChTbHJ1U2VnU3RhdGUgKnN0YXRl KQoreworCWlmIChzdGF0ZS0+ZmlsZSkKKwl7CisJCWZjbG9zZShzdGF0ZS0+ZmlsZSk7CisJCXN0 YXRlLT5maWxlID0gTlVMTDsKKwl9CisKKwlpZiAoc3RhdGUtPmZuKQorCXsKKwkJcGZyZWUoc3Rh dGUtPmZuKTsKKwkJc3RhdGUtPmZuID0gTlVMTDsKKwl9Cit9CisKKy8qCisgKiBSZWFkIG5leHQg cGFnZSBmcm9tIHRoZSBvbGQgMzItYml0IG9mZnNldCBzZWdtZW50IGZpbGUuCisgKi8KK3N0YXRp YyBpbnQKK3JlYWRfb2xkX3NlZ21lbnRfcGFnZShTbHJ1U2VnU3RhdGUgKnN0YXRlLCB2b2lkICpi dWYsIGJvb2wgKmVtcHR5KQoreworCWludAkJbGVuOworCisJLyogT3BlbiBuZXh0IHNlZ21lbnQg ZmlsZSwgaWYgbmVlZGVkLiAqLworCWlmICghc3RhdGUtPmZuKQorCXsKKwkJaWYgKCFzdGF0ZS0+ c2Vnbm8pCisJCQlzdGF0ZS0+bGVhZGluZ19nYXAgPSB0cnVlOworCisJCW9wZW5fc2VnbWVudChz dGF0ZSk7CisKKwkJLyogU2V0IHBvc2l0aW9uIHRvIHRoZSBuZWVkZWQgcGFnZS4gKi8KKwkJaWYg KHN0YXRlLT5wYWdlbm8gPiAwICYmCisJCQlmc2VlayhzdGF0ZS0+ZmlsZSwgc3RhdGUtPnBhZ2Vu byAqIEJMQ0tTWiwgU0VFS19TRVQpKQorCQl7CisJCQljbG9zZV9zZWdtZW50KHN0YXRlKTsKKwkJ fQorCX0KKworCWlmIChzdGF0ZS0+ZmlsZSkKKwl7CisJCS8qIFNlZ21lbnQgZmlsZSBkbyBleGlz dHMsIHJlYWQgcGFnZSBmcm9tIGl0LiAqLworCQlzdGF0ZS0+bGVhZGluZ19nYXAgPSBmYWxzZTsK KworCQlsZW4gPSBmcmVhZChidWYsIHNpemVvZihjaGFyKSwgQkxDS1NaLCBzdGF0ZS0+ZmlsZSk7 CisKKwkJLyogQXJlIHdlIGRvbmUgb3Igd2FzIHRoZXJlIGFuIGVycm9yPyAqLworCQlpZiAobGVu IDw9IDApCisJCXsKKwkJCWlmIChmZXJyb3Ioc3RhdGUtPmZpbGUpKQorCQkJCXBnX2ZhdGFsKCJl cnJvciByZWFkaW5nIGZpbGUgXCIlc1wiOiAlbSIsIHN0YXRlLT5mbik7CisKKwkJCWlmIChmZW9m KHN0YXRlLT5maWxlKSkKKwkJCXsKKwkJCQkqZW1wdHkgPSB0cnVlOworCQkJCWxlbiA9IC0xOwor CisJCQkJY2xvc2Vfc2VnbWVudChzdGF0ZSk7CisJCQl9CisJCX0KKwkJZWxzZQorCQkJKmVtcHR5 ID0gZmFsc2U7CisJfQorCWVsc2UgaWYgKCFzdGF0ZS0+bGVhZGluZ19nYXApCisJeworCQkvKiBX ZSByZWFjaGVkIHRoZSBsYXN0IHNlZ21lbnQuICovCisJCWxlbiA9IC0xOworCQkqZW1wdHkgPSB0 cnVlOworCX0KKwllbHNlCisJeworCQkvKiBTa2lwIGZldyBmaXJzdCBzZWdtZW50cyBpZiB0aGV5 IHdlcmUgZnJvemVuIGFuZCByZW1vdmVkLiAqLworCQlsZW4gPSBCTENLU1o7CisJCSplbXB0eSA9 IHRydWU7CisJfQorCisJaWYgKCsrc3RhdGUtPnBhZ2VubyA+PSBTTFJVX1BBR0VTX1BFUl9TRUdN RU5UKQorCXsKKwkJLyogU3RhcnQgYSBuZXcgc2VnbWVudC4gKi8KKwkJc3RhdGUtPnNlZ25vKys7 CisJCXN0YXRlLT5wYWdlbm8gPSAwOworCisJCWNsb3NlX3NlZ21lbnQoc3RhdGUpOworCX0KKwor CXJldHVybiBsZW47Cit9CisKKy8qCisgKiBXcml0ZSBuZXh0IHBhZ2UgdG8gdGhlIG5ldyA2NC1i aXQgb2Zmc2V0IHNlZ21lbnQgZmlsZS4KKyAqLworc3RhdGljIHZvaWQKK3dyaXRlX25ld19zZWdt ZW50X3BhZ2UoU2xydVNlZ1N0YXRlICpzdGF0ZSwgdm9pZCAqYnVmKQoreworCS8qCisJICogQ3Jl YXRlIGEgbmV3IHNlZ21lbnQgZmlsZSBpZiB3ZSBzdGlsbCBkaWRuJ3QuICBDcmVhdGlvbiBpcwor CSAqIHBvc3Rwb25lZCB1bnRpbCB0aGUgZmlyc3Qgbm9uLWVtcHR5IHBhZ2UgaXMgZm91bmQuICBU aGlzIGhlbHBzCisJICogbm90IHRvIGNyZWF0ZSBjb21wbGV0ZWx5IGVtcHR5IHNlZ21lbnRzLgor CSAqLworCWlmICghc3RhdGUtPmZpbGUpCisJeworCQljcmVhdGVfc2VnbWVudChzdGF0ZSk7CisK KwkJLyogV3JpdGUgemVyb2VzIHRvIHRoZSBwcmV2aW91c2x5IHNraXBwZWQgcHJlZml4LiAqLwor CQlpZiAoc3RhdGUtPnBhZ2VubyA+IDApCisJCXsKKwkJCWNoYXIJCXplcm9idWZbQkxDS1NaXSA9 IHswfTsKKworCQkJZm9yIChpbnQ2NCBpID0gMDsgaSA8IHN0YXRlLT5wYWdlbm87IGkrKykKKwkJ CXsKKwkJCQlpZiAoZndyaXRlKHplcm9idWYsIHNpemVvZihjaGFyKSwgQkxDS1NaLCBzdGF0ZS0+ ZmlsZSkgIT0gQkxDS1NaKQorCQkJCQlwZ19mYXRhbCgiY291bGQgbm90IHdyaXRlIGZpbGUgXCIl c1wiOiAlbSIsIHN0YXRlLT5mbik7CisJCQl9CisJCX0KKwl9CisKKwkvKiBXcml0ZSBwYWdlIHRv IHRoZSBuZXcgc2VnbWVudCAoaWYgaXQgd2FzIGNyZWF0ZWQpLiAqLworCWlmIChzdGF0ZS0+Zmls ZSkKKwl7CisJCWlmIChmd3JpdGUoYnVmLCBzaXplb2YoY2hhciksIEJMQ0tTWiwgc3RhdGUtPmZp bGUpICE9IEJMQ0tTWikKKwkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgd3JpdGUgZmlsZSBcIiVzXCI6 ICVtIiwgc3RhdGUtPmZuKTsKKwl9CisKKwkvKgorCSAqIERpZCB3ZSByZWFjaCB0aGUgbWF4aW11 bSBwYWdlIG51bWJlcj8gIFRoZW4gY2xvc2Ugc2VnbWVudCBmaWxlCisJICogYW5kIGNyZWF0ZSBh IG5ldyBvbmUgb24gdGhlIG5leHQgaXRlcmF0aW9uLgorCSAqLworCWlmICgrK3N0YXRlLT5wYWdl bm8gPj0gU0xSVV9QQUdFU19QRVJfU0VHTUVOVCkKKwl7CisJCS8qIFN0YXJ0IGEgbmV3IHNlZ21l bnQuICovCisJCXN0YXRlLT5zZWdubysrOworCQlzdGF0ZS0+cGFnZW5vID0gMDsKKworCQljbG9z ZV9zZWdtZW50KHN0YXRlKTsKKwl9Cit9CisKK3R5cGVkZWYgdWludDMyIE11bHRpWGFjdE9mZnNl dE9sZDsKKworI2RlZmluZSBNYXhNdWx0aVhhY3RPZmZzZXRPbGQJKChNdWx0aVhhY3RPZmZzZXRP bGQpIDB4RkZGRkZGRkYpCisKKyNkZWZpbmUgTVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0VfT0xE IChCTENLU1ogLyBzaXplb2YoTXVsdGlYYWN0T2Zmc2V0T2xkKSkKKyNkZWZpbmUgTVVMVElYQUNU X09GRlNFVFNfUEVSX1BBR0VfTkVXIChCTENLU1ogLyBzaXplb2YoTXVsdGlYYWN0T2Zmc2V0KSkK KworLyoKKyAqIENvbnZlcnQgcGdfbXVsdGl4YWN0L29mZnNldHMgc2VnbWVudHMgYW5kIHJldHVy biBvbGRlc3QgbXVsdGkgb2Zmc2V0LgorICovCitNdWx0aVhhY3RPZmZzZXQKK2NvbnZlcnRfbXVs dGl4YWN0X29mZnNldHModm9pZCkKK3sKKwlTbHJ1U2VnU3RhdGUJCW9sZHNlZyA9IHswfSwKKwkJ CQkJCW5ld3NlZyA9IHswfTsKKwlNdWx0aVhhY3RPZmZzZXRPbGQJb2xkYnVmW01VTFRJWEFDVF9P RkZTRVRTX1BFUl9QQUdFX09MRF0gPSB7MH07CisJTXVsdGlYYWN0T2Zmc2V0CQluZXdidWZbTVVM VElYQUNUX09GRlNFVFNfUEVSX1BBR0VfTkVXXSA9IHswfSwKKwkJCQkJCW9sZGVzdF9vZmZzZXQg PSAwOworCXVpbnQ2NAkJCQlvbGRlc3RfbXVsdGkgPSBvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5j aGtwbnRfb2xkc3RNdWx0aSwKKwkJCQkJCW5leHRfbXVsdGkgPSBvbGRfY2x1c3Rlci5jb250cm9s ZGF0YS5jaGtwbnRfbnh0bXVsdGksCisJCQkJCQltdWx0aSwKKwkJCQkJCW9sZF9lbnRyeSwKKwkJ CQkJCW5ld19lbnRyeTsKKwlib29sCQkJCW9sZGVzdF9vZmZzZXRfa25vd24gPSBmYWxzZTsKKwor CW9sZHNlZy5kaXIgPSBwc3ByaW50ZigiJXMvcGdfbXVsdGl4YWN0L29mZnNldHMiLCBvbGRfY2x1 c3Rlci5wZ2RhdGEpOworCW5ld3NlZy5kaXIgPSBwc3ByaW50ZigiJXMvcGdfbXVsdGl4YWN0L29m ZnNldHMiLCBuZXdfY2x1c3Rlci5wZ2RhdGEpOworCisJb2xkX2VudHJ5ID0gb2xkZXN0X211bHRp ICUgTVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0VfT0xEOworCW9sZHNlZy5wYWdlbm8gPSBvbGRl c3RfbXVsdGkgLyBNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRV9PTEQ7CisJb2xkc2VnLnNlZ25v ID0gb2xkc2VnLnBhZ2VubyAvIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQ7CisJb2xkc2VnLnBhZ2Vu byAlPSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UOworCisJbmV3X2VudHJ5ID0gb2xkZXN0X211bHRp ICUgTVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0VfTkVXOworCW5ld3NlZy5wYWdlbm8gPSBvbGRl c3RfbXVsdGkgLyBNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRV9ORVc7CisJbmV3c2VnLnNlZ25v ID0gbmV3c2VnLnBhZ2VubyAvIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQ7CisJbmV3c2VnLnBhZ2Vu byAlPSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UOworCisJaWYgKG5leHRfbXVsdGkgPCBvbGRlc3Rf bXVsdGkpCisJCW5leHRfbXVsdGkgKz0gKHVpbnQ2NCkgMSA8PCAzMjsJLyogd3JhcGFyb3VuZCAq LworCisJLyogQ29weSBtdWx0aSBvZmZzZXRzIHJlYWRpbmcgb25seSBuZWVkZWQgc2VnbWVudCBw YWdlcyAqLworCWZvciAobXVsdGkgPSBvbGRlc3RfbXVsdGk7IG11bHRpIDwgbmV4dF9tdWx0aTsg b2xkX2VudHJ5ID0gMCkKKwl7CisJCWludAkJb2xkbGVuOworCQlib29sCWVtcHR5OworCisJCS8q IEhhbmRsZSBwb3NzaWJsZSBzZWdtZW50IHdyYXBhcm91bmQgKi8KKyNkZWZpbmUgT0xEX09GRlNF VF9TRUdOT19NQVgJXAorCShNYXhNdWx0aVhhY3RJZCAvIE1VTFRJWEFDVF9PRkZTRVRTX1BFUl9Q QUdFX09MRCAvIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQpCisJCWlmIChvbGRzZWcuc2Vnbm8gPiBP TERfT0ZGU0VUX1NFR05PX01BWCkKKwkJeworCQkJb2xkc2VnLnNlZ25vID0gMDsKKwkJCW9sZHNl Zy5wYWdlbm8gPSAwOworCQl9CisKKwkJb2xkbGVuID0gcmVhZF9vbGRfc2VnbWVudF9wYWdlKCZv bGRzZWcsIG9sZGJ1ZiwgJmVtcHR5KTsKKwkJaWYgKGVtcHR5IHx8IG9sZGxlbiAhPSBCTENLU1op CisJCQlwZ19mYXRhbCgiY2Fubm90IHJlYWQgcGFnZSAlIiBQUkl1NjQgIiBmcm9tIGZpbGUgXCIl c1wiOiAlbSIsCisJCQkJCSBvbGRzZWcucGFnZW5vLCBvbGRzZWcuZm4pOworCisJCS8qIFNhdmUg b2xkZXN0IG11bHRpIG9mZnNldCAqLworCQlpZiAoIW9sZGVzdF9vZmZzZXRfa25vd24pCisJCXsK KwkJCW9sZGVzdF9vZmZzZXQgPSBvbGRidWZbb2xkX2VudHJ5XTsKKwkJCW9sZGVzdF9vZmZzZXRf a25vd24gPSB0cnVlOworCQl9CisKKwkJLyogU2tpcCB3cmFwcGVkLWFyb3VuZCBpbnZhbGlkIE11 bHRpWGFjdElkcyAqLworCQlpZiAobXVsdGkgPT0gKHVpbnQ2NCkgMSA8PCAzMikKKwkJeworCQkJ QXNzZXJ0KG9sZHNlZy5zZWdubyA9PSAwKTsKKwkJCUFzc2VydChvbGRzZWcucGFnZW5vID09IDEp OworCQkJQXNzZXJ0KG9sZF9lbnRyeSA9PSAwKTsKKwkJCUFzc2VydChuZXdfZW50cnkgPT0gMCk7 CisKKwkJCW11bHRpICs9IEZpcnN0TXVsdGlYYWN0SWQ7CisJCQlvbGRfZW50cnkgPSBGaXJzdE11 bHRpWGFjdElkOworCQkJbmV3X2VudHJ5ID0gRmlyc3RNdWx0aVhhY3RJZDsKKwkJfQorCisJCS8q IENvcHkgZW50cmllcyB0byB0aGUgbmV3IHBhZ2UgKi8KKwkJZm9yICg7IG11bHRpIDwgbmV4dF9t dWx0aSAmJiBvbGRfZW50cnkgPCBNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRV9PTEQ7CisJCQkg bXVsdGkrKywgb2xkX2VudHJ5KyspCisJCXsKKwkJCU11bHRpWGFjdE9mZnNldCBvZmZzZXQgPSBv bGRidWZbb2xkX2VudHJ5XTsKKworCQkJLyogSGFuZGxlIHBvc3NpYmxlIG9mZnNldCB3cmFwYXJv dW5kICgxIGJlY29tZXMgMl4zMikgKi8KKwkJCWlmIChvZmZzZXQgPCBvbGRlc3Rfb2Zmc2V0KQor CQkJCW9mZnNldCArPSAoKHVpbnQ2NCkgMSA8PCAzMikgLSAxOworCisJCQkvKiBTdWJ0cmFjdCBv bGRlc3Rfb2Zmc2V0LCBzbyBuZXcgb2Zmc2V0cyB3aWxsIHN0YXJ0IGZyb20gMSAqLworCQkJbmV3 YnVmW25ld19lbnRyeSsrXSA9IG9mZnNldCAtIG9sZGVzdF9vZmZzZXQgKyAxOworCisJCQlpZiAo bmV3X2VudHJ5ID49IE1VTFRJWEFDVF9PRkZTRVRTX1BFUl9QQUdFX05FVykKKwkJCXsKKwkJCQkv KiBIYW5kbGUgcG9zc2libGUgc2VnbWVudCB3cmFwYXJvdW5kICovCisjZGVmaW5lIE5FV19PRkZT RVRfU0VHTk9fTUFYCVwKKwkoTWF4TXVsdGlYYWN0SWQgLyBNVUxUSVhBQ1RfT0ZGU0VUU19QRVJf UEFHRV9ORVcgLyBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UKQorCQkJCWlmIChuZXdzZWcuc2Vnbm8g PiBORVdfT0ZGU0VUX1NFR05PX01BWCkKKwkJCQl7CisJCQkJCW5ld3NlZy5zZWdubyA9IDA7CisJ CQkJCW5ld3NlZy5wYWdlbm8gPSAwOworCQkJCX0KKworCQkJCS8qIFdyaXRlIG5ldyBwYWdlICov CisJCQkJd3JpdGVfbmV3X3NlZ21lbnRfcGFnZSgmbmV3c2VnLCBuZXdidWYpOworCQkJCW5ld19l bnRyeSA9IDA7CisJCQl9CisJCX0KKwl9CisKKwkvKiBXcml0ZSB0aGUgbGFzdCBpbmNvbXBsZXRl IHBhZ2UgKi8KKwlpZiAobmV3X2VudHJ5ID4gMCB8fCBvbGRlc3RfbXVsdGkgPT0gbmV4dF9tdWx0 aSkKKwl7CisJCW1lbXNldCgmbmV3YnVmW25ld19lbnRyeV0sIDAsCisJCQkgICBzaXplb2YobmV3 YnVmWzBdKSAqIChNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRV9ORVcgLSBuZXdfZW50cnkpKTsK KwkJd3JpdGVfbmV3X3NlZ21lbnRfcGFnZSgmbmV3c2VnLCBuZXdidWYpOworCX0KKworCS8qIFVz ZSBuZXh0X29mZnNldCBhcyBvbGRlc3Rfb2Zmc2V0LCBpZiBvbGRlc3RfbXVsdGkgPT0gbmV4dF9t dWx0aSAqLworCWlmICghb2xkZXN0X29mZnNldF9rbm93bikKKwl7CisJCUFzc2VydChvbGRlc3Rf bXVsdGkgPT0gbmV4dF9tdWx0aSk7CisJCW9sZGVzdF9vZmZzZXQgPSAoTXVsdGlYYWN0T2Zmc2V0 KSBvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfbnh0bXhvZmY7CisJfQorCisJLyogUmVs ZWFzZSByZXNvdXJjZXMgKi8KKwljbG9zZV9zZWdtZW50KCZvbGRzZWcpOworCWNsb3NlX3NlZ21l bnQoJm5ld3NlZyk7CisKKwlwZnJlZShvbGRzZWcuZGlyKTsKKwlwZnJlZShuZXdzZWcuZGlyKTsK KworCXJldHVybiBvbGRlc3Rfb2Zmc2V0OworfQorCisjZGVmaW5lIE1YQUNUX01FTUJFUlNfRkxB R19CWVRFUwkJCTEKKworI2RlZmluZSBNVUxUSVhBQ1RfTUVNQkVSU19QRVJfR1JPVVAJCQk0Cisj ZGVmaW5lIE1VTFRJWEFDVF9NRU1CRVJHUk9VUF9TSVpFCQkJXAorCShNVUxUSVhBQ1RfTUVNQkVS U19QRVJfR1JPVVAgKiAoc2l6ZW9mKFRyYW5zYWN0aW9uSWQpICsgTVhBQ1RfTUVNQkVSU19GTEFH X0JZVEVTKSkKKyNkZWZpbmUgTVVMVElYQUNUX01FTUJFUkdST1VQU19QRVJfUEFHRQkJXAorCShC TENLU1ogLyBNVUxUSVhBQ1RfTUVNQkVSR1JPVVBfU0laRSkKKworI2RlZmluZSBNVUxUSVhBQ1Rf TUVNQkVSU19QRVJfUEFHRQkJCQlcCisJKE1VTFRJWEFDVF9NRU1CRVJTX1BFUl9HUk9VUCAqIE1V TFRJWEFDVF9NRU1CRVJHUk9VUFNfUEVSX1BBR0UpCisjZGVmaW5lIE1VTFRJWEFDVF9NRU1CRVJf RkxBR19CWVRFU19QRVJfR1JPVVAJXAorCShNWEFDVF9NRU1CRVJTX0ZMQUdfQllURVMgKiBNVUxU SVhBQ1RfTUVNQkVSU19QRVJfR1JPVVApCisKK3R5cGVkZWYgc3RydWN0IE11bHRpWGFjdE1lbWJl cnNDdHgKK3sKKwlTbHJ1U2VnU3RhdGUJc2VnOworCWNoYXIJCQlidWZbQkxDS1NaXTsKKwlpbnQJ CQkJZ3JvdXA7CisJaW50CQkJCW1lbWJlcjsKKwljaGFyCQkgICAqZmxhZzsKKwlUcmFuc2FjdGlv bklkICAqeGlkOworfSBNdWx0aVhhY3RNZW1iZXJzQ3R4OworCitzdGF0aWMgdm9pZAorTXVsdGlY YWN0TWVtYmVyc0N0eEluaXQoTXVsdGlYYWN0TWVtYmVyc0N0eCAqY3R4KQoreworCWN0eC0+c2Vn LmRpciA9IHBzcHJpbnRmKCIlcy9wZ19tdWx0aXhhY3QvbWVtYmVycyIsIG5ld19jbHVzdGVyLnBn ZGF0YSk7CisKKwljdHgtPmdyb3VwID0gMDsKKwljdHgtPm1lbWJlciA9IDE7CQkvKiBza2lwIGlu dmFsaWQgemVybyBvZmZzZXQgKi8KKworCWN0eC0+ZmxhZyA9IChjaGFyICopIGN0eC0+YnVmICsg Y3R4LT5ncm91cCAqIE1VTFRJWEFDVF9NRU1CRVJHUk9VUF9TSVpFOworCWN0eC0+eGlkID0gKFRy YW5zYWN0aW9uSWQgKikoY3R4LT5mbGFnICsgTVhBQ1RfTUVNQkVSU19GTEFHX0JZVEVTICogTVVM VElYQUNUX01FTUJFUlNfUEVSX0dST1VQKTsKKworCWN0eC0+ZmxhZyArPSBjdHgtPm1lbWJlcjsK KwljdHgtPnhpZCArPSBjdHgtPm1lbWJlcjsKK30KKworc3RhdGljIHZvaWQKK011bHRpWGFjdE1l bWJlcnNDdHhBZGQoTXVsdGlYYWN0TWVtYmVyc0N0eCAqY3R4LCBjaGFyIGZsYWcsIFRyYW5zYWN0 aW9uSWQgeGlkKQoreworCS8qIENvcHkgbWVtYmVyJ3MgeGlkIGFuZCBmbGFncyB0byB0aGUgbmV3 IHBhZ2UgKi8KKwkqY3R4LT5mbGFnKysgPSBmbGFnOworCSpjdHgtPnhpZCsrID0geGlkOworCisJ aWYgKCsrY3R4LT5tZW1iZXIgPCBNVUxUSVhBQ1RfTUVNQkVSU19QRVJfR1JPVVApCisJCXJldHVy bjsKKworCS8qIFN0YXJ0IG5leHQgbWVtYmVyIGdyb3VwICovCisJY3R4LT5tZW1iZXIgPSAwOwor CisJaWYgKCsrY3R4LT5ncm91cCA+PSBNVUxUSVhBQ1RfTUVNQkVSR1JPVVBTX1BFUl9QQUdFKQor CXsKKwkJLyogV3JpdGUgY3VycmVudCBwYWdlIGFuZCBzdGFydCBuZXcgKi8KKwkJd3JpdGVfbmV3 X3NlZ21lbnRfcGFnZSgmY3R4LT5zZWcsIGN0eC0+YnVmKTsKKworCQljdHgtPmdyb3VwID0gMDsK KwkJbWVtc2V0KGN0eC0+YnVmLCAwLCBCTENLU1opOworCX0KKworCWN0eC0+ZmxhZyA9IChjaGFy ICopIGN0eC0+YnVmICsgY3R4LT5ncm91cCAqIE1VTFRJWEFDVF9NRU1CRVJHUk9VUF9TSVpFOwor CWN0eC0+eGlkID0gKFRyYW5zYWN0aW9uSWQgKikoY3R4LT5mbGFnICsgTVhBQ1RfTUVNQkVSU19G TEFHX0JZVEVTICogTVVMVElYQUNUX01FTUJFUlNfUEVSX0dST1VQKTsKK30KKworc3RhdGljIHZv aWQKK011bHRpWGFjdE1lbWJlcnNDdHhGaW5pdChNdWx0aVhhY3RNZW1iZXJzQ3R4ICpjdHgpCit7 CisJaWYgKGN0eC0+ZmxhZyA+IChjaGFyICopIGN0eC0+YnVmKQorCQl3cml0ZV9uZXdfc2VnbWVu dF9wYWdlKCZjdHgtPnNlZywgY3R4LT5idWYpOworCisJY2xvc2Vfc2VnbWVudCgmY3R4LT5zZWcp OworCisJcGZyZWUoY3R4LT5zZWcuZGlyKTsKK30KKworLyoKKyAqIENvbnZlcnQgcGdfbXVsdGl4 YWN0L21lbWJlcnMgc2VnbWVudHMsIG9mZnNldHMgd2lsbCBzdGFydCBmcm9tIDEuCisgKgorICov Cit2b2lkCitjb252ZXJ0X211bHRpeGFjdF9tZW1iZXJzKE11bHRpWGFjdE9mZnNldCBvbGRlc3Rf b2Zmc2V0KQoreworCU11bHRpWGFjdE9mZnNldAkJCW5leHRfb2Zmc2V0LAorCQkJCQkJCW9mZnNl dDsKKwlTbHJ1U2VnU3RhdGUJCQlvbGRzZWcgPSB7MH07CisJY2hhcgkJCQkJb2xkYnVmW0JMQ0tT Wl0gPSB7MH07CisJaW50CQkJCQkJb2xkaWR4OworCU11bHRpWGFjdE1lbWJlcnNDdHgJCW5ld2N0 eCA9IHswfTsKKworCW9sZHNlZy5kaXIgPSBwc3ByaW50ZigiJXMvcGdfbXVsdGl4YWN0L21lbWJl cnMiLCBvbGRfY2x1c3Rlci5wZ2RhdGEpOworCisJbmV4dF9vZmZzZXQgPSAoTXVsdGlYYWN0T2Zm c2V0KSBvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfbnh0bXhvZmY7CisJaWYgKG5leHRf b2Zmc2V0IDwgb2xkZXN0X29mZnNldCkKKwkJbmV4dF9vZmZzZXQgKz0gKCh1aW50NjQpIDEgPDwg MzIpIC0gMTsKKworCS8qIEluaXRpYWxpemUgdGhlIG9sZCBzdGFydGluZyBwb3NpdGlvbiAqLwor CW9sZHNlZy5wYWdlbm8gPSBvbGRlc3Rfb2Zmc2V0IC8gTVVMVElYQUNUX01FTUJFUlNfUEVSX1BB R0U7CisJb2xkc2VnLnNlZ25vID0gb2xkc2VnLnBhZ2VubyAvIFNMUlVfUEFHRVNfUEVSX1NFR01F TlQ7CisJb2xkc2VnLnBhZ2VubyAlPSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UOworCisJLyogSW5p dGlhbGl6ZSBuZXcgc3RhcnRpbmcgcG9zaXRpb24gKi8KKwlNdWx0aVhhY3RNZW1iZXJzQ3R4SW5p dCgmbmV3Y3R4KTsKKworCS8qIEl0ZXJhdGUgdGhyb3VnaCB0aGUgb3JpZ2luYWwgZGlyZWN0b3J5 ICovCisJb2xkaWR4ID0gb2xkZXN0X29mZnNldCAlIE1VTFRJWEFDVF9NRU1CRVJTX1BFUl9QQUdF OworCWZvciAob2Zmc2V0ID0gb2xkZXN0X29mZnNldDsgb2Zmc2V0IDwgbmV4dF9vZmZzZXQ7KQor CXsKKwkJYm9vbAllbXB0eTsKKwkJaW50CQlvbGRsZW47CisJCWludAkJbmdyb3VwczsKKwkJaW50 CQlvbGRncm91cDsKKwkJaW50CQlvbGRtZW1iZXI7CisKKwkJb2xkbGVuID0gcmVhZF9vbGRfc2Vn bWVudF9wYWdlKCZvbGRzZWcsIG9sZGJ1ZiwgJmVtcHR5KTsKKwkJaWYgKGVtcHR5IHx8IG9sZGxl biAhPSBCTENLU1opCisJCQlwZ19mYXRhbCgiY2Fubm90IHJlYWQgcGFnZSAlIiBQUkl1NjQgIiBm cm9tIGZpbGUgXCIlc1wiOiAlbSIsCisJCQkJCSBvbGRzZWcucGFnZW5vLCBvbGRzZWcuZm4pOwor CisJCS8qIEl0ZXJhdGUgdGhyb3VnaCB0aGUgb2xkIG1lbWJlciBncm91cHMgKi8KKwkJbmdyb3Vw cyA9IG9sZGxlbiAvIE1VTFRJWEFDVF9NRU1CRVJHUk9VUF9TSVpFOworCQlvbGRtZW1iZXIgPSBv bGRpZHggJSBNVUxUSVhBQ1RfTUVNQkVSU19QRVJfR1JPVVA7CisJCW9sZGdyb3VwID0gb2xkaWR4 IC8gTVVMVElYQUNUX01FTUJFUlNfUEVSX0dST1VQOworCQl3aGlsZSAob2xkZ3JvdXAgPCBuZ3Jv dXBzICYmIG9mZnNldCA8IG5leHRfb2Zmc2V0KQorCQl7CisJCQljaGFyCQkgICAqb2xkZmxhZzsK KwkJCVRyYW5zYWN0aW9uSWQgICpvbGR4aWQ7CisJCQlpbnQJCQkJaTsKKworCQkJb2xkZmxhZyA9 IChjaGFyICopIG9sZGJ1ZiArIG9sZGdyb3VwICogTVVMVElYQUNUX01FTUJFUkdST1VQX1NJWkU7 CisJCQlvbGR4aWQgPSAoVHJhbnNhY3Rpb25JZCAqKShvbGRmbGFnICsgTVVMVElYQUNUX01FTUJF Ul9GTEFHX0JZVEVTX1BFUl9HUk9VUCk7CisKKwkJCW9sZHhpZCArPSBvbGRtZW1iZXI7CisJCQlv bGRmbGFnICs9IG9sZG1lbWJlcjsKKworCQkJLyogSXRlcmF0ZSB0aHJvdWdoIHRoZSBvbGQgbWVt YmVycyAqLworCQkJZm9yIChpID0gb2xkbWVtYmVyOworCQkJCSBpIDwgTVVMVElYQUNUX01FTUJF UlNfUEVSX0dST1VQICYmIG9mZnNldCA8IG5leHRfb2Zmc2V0OworCQkJCSBpKyspCisJCQl7CisJ CQkJTXVsdGlYYWN0TWVtYmVyc0N0eEFkZCgmbmV3Y3R4LCAqb2xkZmxhZysrLCAqb2xkeGlkKysp OworCisJCQkJaWYgKCsrb2Zmc2V0ID09ICh1aW50NjQpIDEgPDwgMzIpCisJCQkJeworCQkJCQlB c3NlcnQoaSA9PSBNYXhNdWx0aVhhY3RPZmZzZXRPbGQgJSBNVUxUSVhBQ1RfTUVNQkVSU19QRVJf R1JPVVApOworCQkJCQlnb3RvIHdyYXBhcm91bmQ7CisJCQkJfQorCQkJfQorCisJCQlvbGRncm91 cCsrOworCQkJb2xkbWVtYmVyID0gMDsKKwkJfQorCisJCW9sZGlkeCA9IDA7CisKKwkJY29udGlu dWU7CisKK3dyYXBhcm91bmQ6CisjZGVmaW5lIFNFR05PX01BWAlNYXhNdWx0aVhhY3RPZmZzZXRP bGQgLyBNVUxUSVhBQ1RfTUVNQkVSU19QRVJfUEFHRSAvIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQK KyNkZWZpbmUgUEFHRU5PX01BWAlNYXhNdWx0aVhhY3RPZmZzZXRPbGQgLyBNVUxUSVhBQ1RfTUVN QkVSU19QRVJfUEFHRSAlIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQKKwkJQXNzZXJ0KChvbGRzZWcu c2Vnbm8gPT0gU0VHTk9fTUFYICYmIG9sZHNlZy5wYWdlbm8gPT0gUEFHRU5PX01BWCArIDEpIHx8 CisJCQkgICAob2xkc2VnLnNlZ25vID09IFNFR05PX01BWCArIDEgJiYgb2xkc2VnLnBhZ2VubyA9 PSAwKSk7CisKKwkJLyogU3dpdGNoIHRvIHNlZ21lbnQgMDAwMCAqLworCQljbG9zZV9zZWdtZW50 KCZvbGRzZWcpOworCQlvbGRzZWcuc2Vnbm8gPSAwOworCQlvbGRzZWcucGFnZW5vID0gMDsKKwor CQkvKiBza2lwIGludmFsaWQgemVybyBtdWx0aSBvZmZzZXQgKi8KKwkJb2xkaWR4ID0gMTsKKwl9 CisKKwlNdWx0aVhhY3RNZW1iZXJzQ3R4RmluaXQoJm5ld2N0eCk7CisKKwkvKiBSZWxlYXNlIHJl c291cmNlcyAqLworCWNsb3NlX3NlZ21lbnQoJm9sZHNlZyk7CisKKwlwZnJlZShvbGRzZWcuZGly KTsKK30KLS0gCjIuNDkuMAoK --0000000000008e206d0639e4003e Content-Type: application/octet-stream; name="v16-0007-TEST-bump-catver.patch" Content-Disposition: attachment; filename="v16-0007-TEST-bump-catver.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_md35zdy06 RnJvbSA4NzdjNzZjZWYxZGIzMzFiZDg3ODJmOTJmNjMyMjRmMzE3ZDdkZjE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMTMgTm92IDIwMjQgMTY6MzQ6MzQgKzAzMDAKU3ViamVjdDogW1BBVENIIHYxNiA3Lzdd IFRFU1Q6IGJ1bXAgY2F0dmVyCgotLS0KIHNyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgg IHwgMiArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXR2ZXJzaW9uLmggfCAyICstCiAyIGZpbGVz IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3Vw Z3JhZGUuaAppbmRleCBlOWM1ZDMxNzdmLi5jYTRmY2JmNjZjIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdy YWRlLmgKQEAgLTExOSw3ICsxMTksNyBAQCBleHRlcm4gY2hhciAqb3V0cHV0X2ZpbGVzW107CiAg KgogICogWFhYOiBzaG91bGQgYmUgY2hhbmdlZCB0byB0aGUgYWN0dWFsIENBVEFMT0dfVkVSU0lP Tl9OTyBvbiBjb21taXQuCiAgKi8KLSNkZWZpbmUgTVVMVElYQUNUT0ZGU0VUX0ZPUk1BVENIQU5H RV9DQVRfVkVSIDIwMjUwNDA5MgorI2RlZmluZSBNVUxUSVhBQ1RPRkZTRVRfRk9STUFUQ0hBTkdF X0NBVF9WRVIgMjAyNTA2MzAyCiAKIC8qCiAgKiBsYXJnZSBvYmplY3QgY2h1bmsgc2l6ZSBhZGRl ZCB0byBwZ19jb250cm9sZGF0YSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0 dmVyc2lvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXR2ZXJzaW9uLmgKaW5kZXggZmY5ZmZk OWQ0Ny4uNjYzMWEzMDA4YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXR2ZXJz aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXR2ZXJzaW9uLmgKQEAgLTU3LDYgKzU3 LDYgQEAKICAqLwogCiAvKgkJCQkJCQl5eXl5bW1kZE4gKi8KLSNkZWZpbmUgQ0FUQUxPR19WRVJT SU9OX05PCTIwMjUwNjMwMQorI2RlZmluZSBDQVRBTE9HX1ZFUlNJT05fTk8JMjAyNTA2MzAyCiAK ICNlbmRpZgotLSAKMi40OS4wCgo= --0000000000008e206d0639e4003e Content-Type: application/octet-stream; name="v16-0006-TEST-add-src-bin-pg_upgrade-t-006_offset.pl.patch" Content-Disposition: attachment; filename="v16-0006-TEST-add-src-bin-pg_upgrade-t-006_offset.pl.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_md35zdxx5 RnJvbSA1Njg2YTQzNGM0N2JmMTM0OGQyM2M4YzkxOGE0ZTE1MDE3YTcwNjVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFR1ZSwgMTkgTm92IDIwMjQgMTc6MDg6MTAgKzAzMDAKU3ViamVjdDogW1BBVENIIHYxNiA2Lzdd IFRFU1Q6IGFkZCBzcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDZfb2Zmc2V0LnBsCgotLS0KIHNyYy9i aW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmggICAgfCAgIDIgKy0KIHNyYy9iaW4vcGdfdXBncmFk ZS90LzAwNl9vZmZzZXQucGwgfCA1NjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIg ZmlsZXMgY2hhbmdlZCwgNTYzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDZfb2Zmc2V0LnBsCgpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaCBiL3NyYy9iaW4vcGdfdXBncmFkZS9w Z191cGdyYWRlLmgKaW5kZXggMmQ0ZjFkMzllNS4uZTljNWQzMTc3ZiAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdf dXBncmFkZS5oCkBAIC0xMTksNyArMTE5LDcgQEAgZXh0ZXJuIGNoYXIgKm91dHB1dF9maWxlc1td OwogICoKICAqIFhYWDogc2hvdWxkIGJlIGNoYW5nZWQgdG8gdGhlIGFjdHVhbCBDQVRBTE9HX1ZF UlNJT05fTk8gb24gY29tbWl0LgogICovCi0jZGVmaW5lIE1VTFRJWEFDVE9GRlNFVF9GT1JNQVRD SEFOR0VfQ0FUX1ZFUiAyMDI0MDkwNDEKKyNkZWZpbmUgTVVMVElYQUNUT0ZGU0VUX0ZPUk1BVENI QU5HRV9DQVRfVkVSIDIwMjUwNDA5MgogCiAvKgogICogbGFyZ2Ugb2JqZWN0IGNodW5rIHNpemUg YWRkZWQgdG8gcGdfY29udHJvbGRhdGEsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUv dC8wMDZfb2Zmc2V0LnBsIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDA2X29mZnNldC5wbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5mNWRjNzMzYTMwCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDA2X29mZnNldC5wbApAQCAtMCwwICsxLDU2 MiBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50 IEdyb3VwCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3MgRkFUQUwgPT4gJ2FsbCc7CisKK3Vz ZSBGaWxlOjpGaW5kIHF3KGZpbmQpOworCit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsK K3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0OjpNb3JlOworCisjIFRoaXMg cGFpciBvZiBjYWxscyB3aWxsIGNyZWF0ZSBzaWduaWZpY2FudGx5IG1vcmUgbWVtYmVyIHNlZ21l bnRzIHRoYW4gb2Zmc2V0CisjIHNlZ21lbnRzLgorc3ViIHByZXAKK3sKKwlteSAkbm9kZSA9IHNo aWZ0OworCW15ICR0YmwgPSBzaGlmdDsKKworCSRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkJIkNSRUFURSBUQUJMRSAke3RibH0gKEkgSU5UIFBSSU1BUlkgS0VZLCBOX1VQREFURUQgSU5U KSAiIC4KKwkJIiAgICAgICBXSVRIIChBVVRPVkFDVVVNX0VOQUJMRUQ9RkFMU0UpOyIgLgorCQki SU5TRVJUIElOVE8gJHt0Ymx9IFNFTEVDVCBHLCAwIEZST00gR0VORVJBVEVfU0VSSUVTKDEsIDUw KSBHOyIpOworfQorCitzdWIgZmlsbAoreworCW15ICRub2RlID0gc2hpZnQ7CisJbXkgJHRibCA9 IHNoaWZ0OworCisJbXkgJG5jbGllbnRzID0gNTA7CisJbXkgJHVwZGF0ZV9ldmVyeSA9IDkwOwor CW15IEBjb25uZWN0aW9ucyA9ICgpOworCisJZm9yICgwLi4kbmNsaWVudHMpCisJeworCQlteSAk Y29ubiA9ICRub2RlLT5iYWNrZ3JvdW5kX3BzcWwoJ3Bvc3RncmVzJyk7CisJCSRjb25uLT5xdWVy eV9zYWZlKCJCRUdJTiIpOworCisJCXB1c2goQGNvbm5lY3Rpb25zLCAkY29ubik7CisJfQorCisJ Zm9yIChteSAkaSA9IDA7ICRpIDwgMjAwMDA7ICRpKyspCisJeworCQlteSAkY29ubiA9ICRjb25u ZWN0aW9uc1skaSAlICRuY2xpZW50c107CisKKwkJJGNvbm4tPnF1ZXJ5X3NhZmUoIkNPTU1JVDsi KTsKKwkJJGNvbm4tPnF1ZXJ5X3NhZmUoIkJFR0lOIik7CisKKwkJaWYgKCRpICUgJHVwZGF0ZV9l dmVyeSA9PSAwKQorCQl7CisJCQkkY29ubi0+cXVlcnlfc2FmZSgKKwkJCQkiVVBEQVRFICR7dGJs fSBTRVQgIiAuCisJCQkJIk5fVVBEQVRFRCA9IE5fVVBEQVRFRCArIDEgIiAuCisJCQkJIldIRVJF IEkgPSAke2l9ICUgNTAiKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCSRjb25uLT5xdWVyeV9zYWZl KAorCQkJCSJTRUxFQ1QgKiBGUk9NICR7dGJsfSBGT1IgS0VZIFNIQVJFIik7CisJCX0KKwl9CisK Kwlmb3IgbXkgJGNvbm4gKEBjb25uZWN0aW9ucykKKwl7CisJCSRjb25uLT5xdWl0KCk7CisJfQor fQorCisjIFRoaXMgcGFpciBvZiBjYWxscyB3aWxsIGNyZWF0ZSBtb3JlIG9yIGxlc3MgdGhlIHNh bWUgYW1vdW50IG9mIG1lbWJzZXJzIGFuZAorIyBvZmZzZXRzIHNlZ21lbnRzLgorc3ViIHByZXAy Cit7CisJbXkgJG5vZGUgPSBzaGlmdDsKKwlteSAkdGJsID0gc2hpZnQ7CisKKwkkbm9kZS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJCSJDUkVBVEUgVEFCTEUgJHt0Ymx9KEJBUiBJTlQgUFJJTUFS WSBLRVksIEJBWiBJTlQpOyAiIC4KKwkJIkNSRUFURSBPUiBSRVBMQUNFIFBST0NFRFVSRSBNWElE RklMTEVSKE5fU1RFUFMgSU5UIERFRkFVTFQgMTAwMCkgIiAuCisJCSJMQU5HVUFHRSBQTFBHU1FM ICIgLgorCQkiQVMgXCRcJCAiIC4KKwkJIkJFR0lOICIgLgorCQkiCUZPUiBJIElOIDEuLk5fU1RF UFMgTE9PUCAiIC4KKwkJIgkJVVBEQVRFICR7dGJsfSBTRVQgQkFaID0gUkFORE9NKDEsIDEwMDAp ICIgLgorCQkiCQlXSEVSRSBCQVIgSU4gKFNFTEVDVCBCQVIgRlJPTSAke3RibH0gIiAuCisJCSIJ CQkJCQlUQUJMRVNBTVBMRSBCRVJOT1VMTEkoODApKTsgIiAuCisJCSIJCUNPTU1JVDsgIiAuCisJ CSIJRU5EIExPT1A7ICIgLgorCQkiRU5EOyBcJFwkOyAiIC4KKwkJIklOU0VSVCBJTlRPICR7dGJs fSAoQkFSLCBCQVopICIgLgorCQkiU0VMRUNUIElELCBJRCBGUk9NIEdFTkVSQVRFX1NFUklFUygx LCAxMDI0KSBJRDsiKTsKK30KKworc3ViIGZpbGwyCit7CisJbXkgJG5vZGUgPSBzaGlmdDsKKwlt eSAkdGJsID0gc2hpZnQ7CisJbXkgJHNjYWxlID0gc2hpZnQgLy8gMTsKKworCSRub2RlLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkJIkJFR0lOOyAiIC4KKwkJIlNFTEVDVCAqIEZST00gJHt0Ymx9 IEZPUiBLRVkgU0hBUkU7ICIgLgorCQkiUFJFUEFSRSBUUkFOU0FDVElPTiAnQSc7ICIgLgorCQki Q0FMTCBNWElERklMTEVSKCgzNjUgKiAke3NjYWxlfSk6OmludCk7ICIgLgorCQkiQ09NTUlUIFBS RVBBUkVEICdBJzsiKTsKK30KKworCisjIGdlbmVyYXRlIGFyb3VuZCAyIG9mZnNldCBzZWdtZW50 cyBhbmQgNTUgbWVtYmVyIHNlZ21lbnRzCitzdWIgbXhpZF9nZW4xCit7CisJbXkgJG5vZGUgPSBz aGlmdDsKKwlteSAkdGJsID0gc2hpZnQ7CisKKwlwcmVwKCRub2RlLCAkdGJsKTsKKwlmaWxsKCRu b2RlLCAkdGJsKTsKKworCSRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcShDSEVDS1BPSU5U KSk7Cit9CisKKyMgZ2VuZXJhdGUgYXJvdW5kIDEwIG9mZnNldCBzZWdtZW50cyBhbmQgMTIgbWVt YmVyIHNlZ21lbnRzCitzdWIgbXhpZF9nZW4yCit7CisJbXkgJG5vZGUgPSBzaGlmdDsKKwlteSAk dGJsID0gc2hpZnQ7CisJbXkgJHNjYWxlID0gc2hpZnQgLy8gMTsKKworCXByZXAyKCRub2RlLCAk dGJsKTsKKwlmaWxsMigkbm9kZSwgJHRibCwgJHNjYWxlKTsKKworCSRub2RlLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgcShDSEVDS1BPSU5UKSk7Cit9CisKKyMgRmV0Y2ggbGF0ZXN0IG11bHRpeGFj dCBjaGVja3BvaW50IHZhbHVlcy4KK3N1YiBtdWx0aV9ib3VuZHMKK3sKKwlteSAoJG5vZGUpID0g QF87CisJbXkgJHBhdGggPSAkbm9kZS0+Y29uZmlnX2RhdGEoJy0tYmluZGlyJyk7CisJbXkgKCRz dGRvdXQsICRzdGRlcnIpID0gcnVuX2NvbW1hbmQoWworCQkJCQkJCQkJJHBhdGggLiAnL3BnX2Nv bnRyb2xkYXRhJywKKwkJCQkJCQkJCSRub2RlLT5kYXRhX2RpcgorCQkJCQkJCQldKTsKKwlteSBA Y29udHJvbF9kYXRhID0gc3BsaXQoIlxuIiwgJHN0ZG91dCk7CisJbXkgJG5leHQgPSB1bmRlZjsK KwlteSAkb2xkZXN0ID0gdW5kZWY7CisJbXkgJG5leHRfb2Zmc2V0ID0gdW5kZWY7CisKKwlmb3Jl YWNoIChAY29udHJvbF9kYXRhKQorCXsKKwkJaWYgKCRfID1+IC9eTGF0ZXN0IGNoZWNrcG9pbnQn cyBOZXh0TXVsdGlYYWN0SWQ6XHMqKC4qKSQvbWcpCisJCXsKKwkJCSRuZXh0ID0gJDE7CisJCQlw cmludCAiPj4+IEAgbm9kZSAiLiAkbm9kZS0+bmFtZSAuICIsICIgLiAkXyAuICJcbiI7CisJCX0K KworCQlpZiAoJF8gPX4gL15MYXRlc3QgY2hlY2twb2ludCdzIG9sZGVzdE11bHRpWGlkOlxzKigu KikkL21nKQorCQl7CisJCQkkb2xkZXN0ID0gJDE7CisJCQlwcmludCAiPj4+IEAgbm9kZSAiLiAk bm9kZS0+bmFtZSAuICIsICIgLiAkXyAuICJcbiI7CisJCX0KKworCQlpZiAoJF8gPX4gL15MYXRl c3QgY2hlY2twb2ludCdzIE5leHRNdWx0aU9mZnNldDpccyooLiopJC9tZykKKwkJeworCQkJJG5l eHRfb2Zmc2V0ID0gJDE7CisJCQlwcmludCAiPj4+IEAgbm9kZSAiLiAkbm9kZS0+bmFtZSAuICIs ICIgLiAkXyAuICJcbiI7CisJCX0KKworCQlpZiAoZGVmaW5lZCgkb2xkZXN0KSAmJiBkZWZpbmVk KCRuZXh0KSAmJiBkZWZpbmVkKCRuZXh0X29mZnNldCkpCisJCXsKKwkJCWxhc3Q7CisJCX0KKwl9 CisKKwlkaWUgIkxhdGVzdCBjaGVja3BvaW50J3MgTmV4dE11bHRpWGFjdElkIG5vdCBmb3VuZCBp biBjb250cm9sIGZpbGUhXG4iCisJdW5sZXNzIGRlZmluZWQoJG5leHQpOworCisJZGllICJMYXRl c3QgY2hlY2twb2ludCdzIG9sZGVzdE11bHRpWGlkIG5vdCBmb3VuZCBpbiBjb250cm9sIGZpbGUh XG4iCisJdW5sZXNzIGRlZmluZWQoJG9sZGVzdCk7CisKKwlkaWUgIkxhdGVzdCBjaGVja3BvaW50 J3MgTmV4dE11bHRpT2Zmc2V0IG5vdCBmb3VuZCBpbiBjb250cm9sIGZpbGUhXG4iCisJdW5sZXNz IGRlZmluZWQoJG5leHRfb2Zmc2V0KTsKKworCXJldHVybiAoJG9sZGVzdCwgJG5leHQsICRuZXh0 X29mZnNldCk7Cit9CisKKyMgQ3JlYXRlIG5vZGUgZnJvbSBleGlzdGluZyBiaW5zLgorc3ViIGNy ZWF0ZV9uZXdfbm9kZQoreworCW15ICgkbmFtZSwgJXBhcmFtcykgPSBAXzsKKworCWNyZWF0ZV9u b2RlKDAsIEBfKTsKK30KKworIyBDcmVhdGUgbm9kZSBmcm9tIEVOViBvbGRpbnN0YWxsCitzdWIg Y3JlYXRlX29sZF9ub2RlCit7CisJbXkgKCRuYW1lLCAlcGFyYW1zKSA9IEBfOworCisJaWYgKCFk ZWZpbmVkKCRFTlZ7b2xkaW5zdGFsbH0pKQorCXsKKwkJZGllICJvbGRpbnN0YWxsIGlzIG5vdCBk ZWZpbmVkIjsKKwl9CisKKwljcmVhdGVfbm9kZSgxLCBAXyk7Cit9CisKK3N1YiBjcmVhdGVfbm9k ZQoreworCW15ICgkaW5zdGFsbF9wYXRoX2Zyb21fZW52LCAkbmFtZSwgJXBhcmFtcykgPSBAXzsK KwlteSAkc2NhbGUgPSBkZWZpbmVkICRwYXJhbXN7c2NhbGV9ID8gJHBhcmFtc3tzY2FsZX0gOiAx OworCW15ICRtdWx0aSA9IGRlZmluZWQgJHBhcmFtc3ttdWx0aX0gPyAkcGFyYW1ze211bHRpfSA6 IHVuZGVmOworCW15ICRvZmZzZXQgPSBkZWZpbmVkICRwYXJhbXN7b2Zmc2V0fSA/ICRwYXJhbXN7 b2Zmc2V0fSA6IHVuZGVmOworCisJbXkgJG5vZGUgPQorCQkkaW5zdGFsbF9wYXRoX2Zyb21fZW52 ID8KKwkJCVBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygkbmFtZSwKKwkJCQkJaW5zdGFs bF9wYXRoID0+ICRFTlZ7b2xkaW5zdGFsbH0pIDoKKwkJCVBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0 ZXItPm5ldygkbmFtZSk7CisKKwkkbm9kZS0+aW5pdChmb3JjZV9pbml0ZGIgPT4gMSwKKwkJZXh0 cmEgPT4gWworCQkJJG11bHRpID8gKCctbScsICRtdWx0aSkgOiAoKSwKKwkJCSRvZmZzZXQgPyAo Jy1vJywgJG9mZnNldCkgOiAoKSwKKwkJXSk7CisKKwkjIEZpeHVwIE1PWCBwYXRjaCBxdWlyawor CWlmICgkbXVsdGkpCisJeworCQl1bmxpbmsgJG5vZGUtPmRhdGFfZGlyIC4gJy9wZ19tdWx0aXhh Y3Qvb2Zmc2V0cy8wMDAwJzsKKwl9CisJaWYgKCRvZmZzZXQpCisJeworCQl1bmxpbmsgJG5vZGUt PmRhdGFfZGlyIC4gJy9wZ19tdWx0aXhhY3QvbWVtYmVycy8wMDAwJzsKKwl9CisKKwkkbm9kZS0+ YXBwZW5kX2NvbmYoJ2ZzeW5jJywgJ29mZicpOworCSRub2RlLT5hcHBlbmRfY29uZigncG9zdGdy ZXNxbC5jb25mJywgJ21heF9wcmVwYXJlZF90cmFuc2FjdGlvbnMgPSAyJyk7CisKKwkkbm9kZS0+ c3RhcnQoKTsKKwlteGlkX2dlbjIoJG5vZGUsICdGT08nLCAkc2NhbGUpOworCW14aWRfZ2VuMSgk bm9kZSwgJ0JBUicsICRzY2FsZSk7CisJJG5vZGUtPnJlc3RhcnQoKTsKKwkkbm9kZS0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsIHEoU0VMRUNUICogRlJPTSBGT08pKTsJCSMganVzdCBpbiBjYXNlLi4u CisJJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKFNFTEVDVCAqIEZST00gQkFSKSk7CisJ JG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKENIRUNLUE9JTlQpKTsKKwkkbm9kZS0+c3Rv cCgpOworCisJcmV0dXJuICRub2RlOworfQorCitzdWIgZG9fdXBncmFkZQoreworCW15ICgkb2xk bm9kZSwgJG5ld25vZGUpID0gQF87CisKKwljb21tYW5kX29rKAorCQlbCisJCQkncGdfdXBncmFk ZScsICctLW5vLXN5bmMnLAorCQkJJy1kJywgJG9sZG5vZGUtPmRhdGFfZGlyLAorCQkJJy1EJywg JG5ld25vZGUtPmRhdGFfZGlyLAorCQkJJy1iJywgJG9sZG5vZGUtPmNvbmZpZ19kYXRhKCctLWJp bmRpcicpLAorCQkJJy1CJywgJG5ld25vZGUtPmNvbmZpZ19kYXRhKCctLWJpbmRpcicpLAorCQkJ Jy1zJywgJG5ld25vZGUtPmhvc3QsCisJCQknLXAnLCAkb2xkbm9kZS0+cG9ydCwKKwkJCSctUCcs ICRuZXdub2RlLT5wb3J0LAorCQkJJy0tY2hlY2snCisJCV0sCisJCSdydW4gb2YgcGdfdXBncmFk ZScpOworCisJY29tbWFuZF9vaygKKwkJWworCQkJJ3BnX3VwZ3JhZGUnLCAnLS1uby1zeW5jJywK KwkJCSctZCcsICRvbGRub2RlLT5kYXRhX2RpciwKKwkJCSctRCcsICRuZXdub2RlLT5kYXRhX2Rp ciwKKwkJCSctYicsICRvbGRub2RlLT5jb25maWdfZGF0YSgnLS1iaW5kaXInKSwKKwkJCSctQics ICRuZXdub2RlLT5jb25maWdfZGF0YSgnLS1iaW5kaXInKSwKKwkJCSctcycsICRuZXdub2RlLT5o b3N0LAorCQkJJy1wJywgJG9sZG5vZGUtPnBvcnQsCisJCQknLVAnLCAkbmV3bm9kZS0+cG9ydCwK KwkJCSctLWNvcHknCisJCV0sCisJCSdydW4gb2YgcGdfdXBncmFkZScpOworCisJJG9sZG5vZGUt PnN0YXJ0KCk7CisJJG5ld25vZGUtPnN0YXJ0KCk7CisKKwlteSAkb2xkZm9vID0gJG9sZG5vZGUt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKFNFTEVDVCAqIEZST00gRk9PKSk7CisJbXkgJG5ld2Zv byA9ICRuZXdub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcShTRUxFQ1QgKiBGUk9NIEZPTykp OworCWlzKCRvbGRmb28sICRuZXdmb28sICJzZWxlY3QgZm9vIGVxIik7CisKKwlteSAkb2xkYmFy ID0gJG9sZG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKFNFTEVDVCAqIEZST00gQkFSKSk7 CisJbXkgJG5ld2JhciA9ICRuZXdub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcShTRUxFQ1Qg KiBGUk9NIEJBUikpOworCWlzKCRvbGRiYXIsICRuZXdiYXIsICJzZWxlY3QgYmFyIGVxIik7CisK Kwkkb2xkbm9kZS0+c3RvcCgpOworCSRuZXdub2RlLT5zdG9wKCk7CisKKwltdWx0aV9ib3VuZHMo JG9sZG5vZGUpOworCW11bHRpX2JvdW5kcygkbmV3bm9kZSk7Cit9CisKK215IEBURVNUUyA9ICgK KwkjIHRlc3RzIHdpdGhvdXQgRU5WIG9sZGluc3RhbGwKKwkjMCwgMSwgMiwgMywgNCwgNSwgNiwK KwkjIHRlc3RzIHdpdGggInJlYWwiIHBnX3VwZ3JhZGUKKwkjMTAwLCAxMDEsIDEwMiwgMTAzLCAx MDQsIDEwNSwgMTA2LAorCSMgc2VsZiB1cGdyYWRlCisJMTAwMCwKKyk7CisKKyMgPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKyMgQmFzaWMgc2FuaXR5IHRlc3RzIG9uIGEgTkVXIGJpbgorIyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorCisjIHN0YXJ0cyBmcm9tIHRoZSB6ZXJvCitTS0lQOgoreworCW15ICRU RVNUX05PID0gMDsKKwlza2lwICJkbyBub3QgdGVzdCBjYXNlICRURVNUX05PIiwgMQorCQl1bmxl c3MgKCBncmVwKCAvXiRURVNUX05PJC8sIEBURVNUUyApICk7CisKKwlteSAkbm9kZSA9IGNyZWF0 ZV9uZXdfbm9kZSgnc2ltcGxlX21vJywKKwkJCQkJCXNjYWxlID0+IDEpOworCW11bHRpX2JvdW5k cygkbm9kZSk7CisJb2soMSwgIlRFU1QgJFRFU1RfTk8gUEFTU0VEIik7Cit9CisKKyMgbXVsdGkg c3RhcnRzIGZyb20gdGhlIHZhbHVlCitTS0lQOgoreworCW15ICRURVNUX05PID0gMTsKKwlza2lw ICJkbyBub3QgdGVzdCBjYXNlICRURVNUX05PIiwgMQorCQl1bmxlc3MgKCBncmVwKCAvXiRURVNU X05PJC8sIEBURVNUUyApICk7CisKKwlteSAkbm9kZSA9IGNyZWF0ZV9uZXdfbm9kZSgnc2ltcGxl X01vJywKKwkJCQkJCXNjYWxlID0+IDEuMTUsCisJCQkJCQltdWx0aSA9PiAnMHgxMjM0MDAnKTsK KwltdWx0aV9ib3VuZHMoJG5vZGUpOworCW9rKDEsICJURVNUICRURVNUX05PIFBBU1NFRCIpOwor fQorCisjIG9mZnNldHMgc3RhcnRzIGZyb20gdGhlIHZhbHVlCitTS0lQOgoreworCW15ICRURVNU X05PID0gMjsKKwlza2lwICJkbyBub3QgdGVzdCBjYXNlICRURVNUX05PIiwgMQorCQl1bmxlc3Mg KCBncmVwKCAvXiRURVNUX05PJC8sIEBURVNUUyApICk7CisKKwlteSAkbm9kZSA9IGNyZWF0ZV9u ZXdfbm9kZSgnc2ltcGxlX21PJywKKwkJCQkJCXNjYWxlID0+IDEuMTUsCisJCQkJCQlvZmZzZXQg PT4gJzB4NDMyMTAwJyk7CisJbXVsdGlfYm91bmRzKCRub2RlKTsKKwlvaygxLCAiVEVTVCAkVEVT VF9OTyBQQVNTRUQiKTsKK30KKworIyBtdWx0aSBhbmQgb2Zmc2V0cyBzdGFydHMgZnJvbSB0aGUg dmFsdWUKK1NLSVA6Cit7CisJbXkgJFRFU1RfTk8gPSAzOworCXNraXAgImRvIG5vdCB0ZXN0IGNh c2UgJFRFU1RfTk8iLCAxCisJCXVubGVzcyAoIGdyZXAoIC9eJFRFU1RfTk8kLywgQFRFU1RTICkg KTsKKworCW15ICRub2RlID0gY3JlYXRlX25ld19ub2RlKCdzaW1wbGVfTU8nLAorCQkJCQkJc2Nh bGUgPT4gMS4xNSwKKwkJCQkJCW11bHRpID0+ICcweERFQUQwMCcsIG9mZnNldCA9PiAnMHhCRUVG MDAnKTsKKwltdWx0aV9ib3VuZHMoJG5vZGUpOworCW9rKDEsICJURVNUICRURVNUX05PIFBBU1NF RCIpOworfQorCisjIG11bHRpIHN0YXJ0cyBmcm9tIHRoZSB2YWx1ZSwgbXVsdGkgd3JhcAorU0tJ UDoKK3sKKwlteSAkVEVTVF9OTyA9IDQ7CisJc2tpcCAiZG8gbm90IHRlc3QgY2FzZSAkVEVTVF9O TyIsIDEKKwkJdW5sZXNzICggZ3JlcCggL14kVEVTVF9OTyQvLCBAVEVTVFMgKSApOworCisJbXkg JG5vZGUgPSBjcmVhdGVfbmV3X25vZGUoJ3NpbXBsZV9Nb193cmFwJywKKwkJCQkJCXNjYWxlID0+ IDEuMTUsCisJCQkJCQltdWx0aSA9PiAnMHhGRkZGNzAwMCcpOworCW11bHRpX2JvdW5kcygkbm9k ZSk7CisJb2soMSwgIlRFU1QgJFRFU1RfTk8gUEFTU0VEIik7Cit9CisKKyMgb2Zmc2V0cyBzdGFy dHMgZnJvbSB0aGUgdmFsdWUsIG9mZnNldHMgd3JhcAorU0tJUDoKK3sKKwlteSAkVEVTVF9OTyA9 IDU7CisJc2tpcCAiZG8gbm90IHRlc3QgY2FzZSAkVEVTVF9OTyIsIDEKKwkJdW5sZXNzICggZ3Jl cCggL14kVEVTVF9OTyQvLCBAVEVTVFMgKSApOworCisJbXkgJG5vZGUgPSBjcmVhdGVfbmV3X25v ZGUoJ3NpbXBsZV9tT193cmFwJywKKwkJCQkJCXNjYWxlID0+IDEuMTUsCisJCQkJCQlvZmZzZXQg PT4gJzB4RkZGRkZDMDAnKTsKKwltdWx0aV9ib3VuZHMoJG5vZGUpOworCW9rKDEsICJURVNUICRU RVNUX05PIFBBU1NFRCIpOworfQorCisjIG11bHRpIHN0YXJ0cyBmcm9tIHRoZSB2YWx1ZSwgb2Zm c2V0cyBzdGFydHMgZnJvbSB0aGUgdmFsdWUsCisjIG11bHRpIHdyYXAsIG9mZnNldHMgd3JhcAor U0tJUDoKK3sKKwlteSAkVEVTVF9OTyA9IDY7CisJc2tpcCAiZG8gbm90IHRlc3QgY2FzZSAkVEVT VF9OTyIsIDEKKwkJdW5sZXNzICggZ3JlcCggL14kVEVTVF9OTyQvLCBAVEVTVFMgKSApOworCisJ bXkgJG5vZGUgPSBjcmVhdGVfbmV3X25vZGUoJ3NpbXBsZV9NT193cmFwJywKKwkJCQkJCXNjYWxl ID0+IDEuMTUsCisJCQkJCQltdWx0aSA9PiAnMHhGRkZGNzAwMCcsIG9mZnNldCA9PiAnMHhGRkZG RkMwMCcpOworCW11bHRpX2JvdW5kcygkbm9kZSk7CisJb2soMSwgIlRFU1QgJFRFU1RfTk8gUEFT U0VEIik7Cit9CisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgcGdfdXBnYXJkZSB0ZXN0cwor IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorCisjIHN0YXJ0cyBmcm9tIHRoZSB6ZXJvCitTS0lQOgor eworCW15ICRURVNUX05PID0gMTAwOworCXNraXAgImRvIG5vdCB0ZXN0IGNhc2UgJFRFU1RfTk8i LCAxCisJCXVubGVzcyAoIGdyZXAoIC9eJFRFU1RfTk8kLywgQFRFU1RTICkgKTsKKworCW15ICRk Ym5hbWUgPSAnbW8nOworCW15ICRvbGRub2RlID0gY3JlYXRlX29sZF9ub2RlKCJvbGRfJGRibmFt ZSIsCisJCQkJCQlzY2FsZSA9PiAxKTsKKwlteSAkbmV3bm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6 OkNsdXN0ZXItPm5ldygibmV3XyRkYm5hbWUiKTsKKwkkbmV3bm9kZS0+aW5pdCgpOworCisJZG9f dXBncmFkZSgkb2xkbm9kZSwgJG5ld25vZGUpOworCW9rKDEsICJURVNUICRURVNUX05PIFBBU1NF RCIpOworfQorCisjIG11bHRpIHN0YXJ0cyBmcm9tIHRoZSB2YWx1ZQorU0tJUDoKK3sKKwlteSAk VEVTVF9OTyA9IDEwMTsKKwlza2lwICJkbyBub3QgdGVzdCBjYXNlICRURVNUX05PIiwgMQorCQl1 bmxlc3MgKCBncmVwKCAvXiRURVNUX05PJC8sIEBURVNUUyApICk7CisKKwlteSAkZGJuYW1lID0g J01vJzsKKwlteSAkb2xkbm9kZSA9IGNyZWF0ZV9vbGRfbm9kZSgib2xkXyRkYm5hbWUiLAorCQkJ CQkJc2NhbGUgPT4gMS4yLAorCQkJCQkJbXVsdGkgPT4gJzB4MTIzNDAwJyk7CisJbXkgJG5ld25v ZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoIm5ld18kZGJuYW1lIik7CisJJG5l d25vZGUtPmluaXQoKTsKKworCWRvX3VwZ3JhZGUoJG9sZG5vZGUsICRuZXdub2RlKTsKKwlvaygx LCAiVEVTVCAkVEVTVF9OTyBQQVNTRUQiKTsKK30KKworIyBvZmZzZXRzIHN0YXJ0cyBmcm9tIHRo ZSB2YWx1ZQorU0tJUDoKK3sKKwlteSAkVEVTVF9OTyA9IDEwMjsKKwlza2lwICJkbyBub3QgdGVz dCBjYXNlICRURVNUX05PIiwgMQorCQl1bmxlc3MgKCBncmVwKCAvXiRURVNUX05PJC8sIEBURVNU UyApICk7CisKKwlteSAkZGJuYW1lID0gJ21PJzsKKwlteSAkb2xkbm9kZSA9IGNyZWF0ZV9vbGRf bm9kZSgib2xkXyRkYm5hbWUiLAorCQkJCQkJc2NhbGUgPT4gMS4yLAorCQkJCQkJb2Zmc2V0ID0+ ICcweDQzMjEwMCcpOworCW15ICRuZXdub2RlID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+ bmV3KCJuZXdfJGRibmFtZSIpOworCSRuZXdub2RlLT5pbml0KCk7CisKKwlkb191cGdyYWRlKCRv bGRub2RlLCAkbmV3bm9kZSk7CisJb2soMSwgIlRFU1QgJFRFU1RfTk8gUEFTU0VEIik7Cit9CisK KyMgbXVsdGkgYW5kIG9mZnNldHMgc3RhcnRzIGZyb20gdGhlIHZhbHVlCitTS0lQOgoreworCW15 ICRURVNUX05PID0gMTAzOworCXNraXAgImRvIG5vdCB0ZXN0IGNhc2UgJFRFU1RfTk8iLCAxCisJ CXVubGVzcyAoIGdyZXAoIC9eJFRFU1RfTk8kLywgQFRFU1RTICkgKTsKKworCW15ICRkYm5hbWUg PSAnTU8nOworCW15ICRvbGRub2RlID0gY3JlYXRlX29sZF9ub2RlKCJvbGRfJGRibmFtZSIsCisJ CQkJCQlzY2FsZSA9PiAxLjIsCisJCQkJCQltdWx0aSA9PiAnMHhERUFEMDAnLCBvZmZzZXQgPT4g JzB4QkVFRjAwJyk7CisJbXkgJG5ld25vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5u ZXcoIm5ld18kZGJuYW1lIik7CisJJG5ld25vZGUtPmluaXQoKTsKKworCWRvX3VwZ3JhZGUoJG9s ZG5vZGUsICRuZXdub2RlKTsKKwlvaygxLCAiVEVTVCAkVEVTVF9OTyBQQVNTRUQiKTsKK30KKwor IyBtdWx0aSBzdGFydHMgZnJvbSB0aGUgdmFsdWUsIG11bHRpIHdyYXAKK1NLSVA6Cit7CisJbXkg JFRFU1RfTk8gPSAxMDQ7CisJc2tpcCAiZG8gbm90IHRlc3QgY2FzZSAkVEVTVF9OTyIsIDEKKwkJ dW5sZXNzICggZ3JlcCggL14kVEVTVF9OTyQvLCBAVEVTVFMgKSApOworCisJbXkgJGRibmFtZSA9 ICdNb193cmFwJzsKKwlteSAkb2xkbm9kZSA9IGNyZWF0ZV9vbGRfbm9kZSgib2xkXyRkYm5hbWUi LAorCQkJCQkJc2NhbGUgPT4gMS4yLAorCQkJCQkJbXVsdGkgPT4gJzB4RkZGRjcwMDAnKTsKKwlt eSAkbmV3bm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygibmV3XyRkYm5hbWUi KTsKKwkkbmV3bm9kZS0+aW5pdCgpOworCisJZG9fdXBncmFkZSgkb2xkbm9kZSwgJG5ld25vZGUp OworCW9rKDEsICJURVNUICRURVNUX05PIFBBU1NFRCIpOworfQorCisjIG9mZnNldHMgc3RhcnRz IGZyb20gdGhlIHZhbHVlLCBvZmZzZXRzIHdyYXAKK1NLSVA6Cit7CisJbXkgJFRFU1RfTk8gPSAx MDU7CisJc2tpcCAiZG8gbm90IHRlc3QgY2FzZSAkVEVTVF9OTyIsIDEKKwkJdW5sZXNzICggZ3Jl cCggL14kVEVTVF9OTyQvLCBAVEVTVFMgKSApOworCisJbXkgJGRibmFtZSA9ICdtT193cmFwJzsK KwlteSAkb2xkbm9kZSA9IGNyZWF0ZV9vbGRfbm9kZSgib2xkXyRkYm5hbWUiLAorCQkJCQkJc2Nh bGUgPT4gMS4yLAorCQkJCQkJb2Zmc2V0ID0+ICcweEZGRkZGQzAwJyk7CisJbXkgJG5ld25vZGUg PSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoIm5ld18kZGJuYW1lIik7CisJJG5ld25v ZGUtPmluaXQoKTsKKworCWRvX3VwZ3JhZGUoJG9sZG5vZGUsICRuZXdub2RlKTsKKwlvaygxLCAi VEVTVCAkVEVTVF9OTyBQQVNTRUQiKTsKK30KKworIyBtdWx0aSBzdGFydHMgZnJvbSB0aGUgdmFs dWUsIG9mZnNldHMgc3RhcnRzIGZyb20gdGhlIHZhbHVlLAorIyBtdWx0aSB3cmFwLCBvZmZzZXRz IHdyYXAKK1NLSVA6Cit7CisJbXkgJFRFU1RfTk8gPSAxMDY7CisJc2tpcCAiZG8gbm90IHRlc3Qg Y2FzZSAkVEVTVF9OTyIsIDEKKwkJdW5sZXNzICggZ3JlcCggL14kVEVTVF9OTyQvLCBAVEVTVFMg KSApOworCisJbXkgJGRibmFtZSA9ICdNT193cmFwJzsKKwlteSAkb2xkbm9kZSA9IGNyZWF0ZV9v bGRfbm9kZSgib2xkXyRkYm5hbWUiLAorCQkJCQkJc2NhbGUgPT4gMS4yLAorCQkJCQkJbXVsdGkg PT4gJzB4RkZGRjcwMDAnLCBvZmZzZXQgPT4gJzB4RkZGRkZDMDAnKTsKKwlteSAkbmV3bm9kZSA9 IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygibmV3XyRkYm5hbWUiKTsKKwkkbmV3bm9k ZS0+aW5pdCgpOworCisJZG9fdXBncmFkZSgkb2xkbm9kZSwgJG5ld25vZGUpOworCW9rKDEsICJU RVNUICRURVNUX05PIFBBU1NFRCIpOworfQorCisjID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIFNl bGYgdXBncmFkZQorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIHN0YXJ0cyBmcm9tIHRoZSB6 ZXJvCitTS0lQOgoreworCW15ICRURVNUX05PID0gMTAwMDsKKwlza2lwICJkbyBub3QgdGVzdCBj YXNlICRURVNUX05PIiwgMQorCQl1bmxlc3MgKCBncmVwKCAvXiRURVNUX05PJC8sIEBURVNUUyAp ICk7CisKKwlteSAkZGJuYW1lID0gJ3NlbGZfdXBncmFkZSc7CisJbXkgJG9sZG5vZGUgPSBjcmVh dGVfbmV3X25vZGUoIm9sZF8kZGJuYW1lIiwKKwkJCQkJCXNjYWxlID0+IDEpOworCW15ICRuZXdu b2RlID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCJuZXdfJGRibmFtZSIpOworCSRu ZXdub2RlLT5pbml0KCk7CisKKwlkb191cGdyYWRlKCRvbGRub2RlLCAkbmV3bm9kZSk7CisJb2so MSwgIlRFU1QgJFRFU1RfTk8gUEFTU0VEIik7Cit9CisKK2RvbmVfdGVzdGluZygpOwotLSAKMi40 OS4wCgo= --0000000000008e206d0639e4003e--