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 1vGvuK-008KVe-W2 for pgsql-hackers@arkaria.postgresql.org; Thu, 06 Nov 2025 09:03:52 +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 1vGvuJ-006Tsm-Tr for pgsql-hackers@arkaria.postgresql.org; Thu, 06 Nov 2025 09:03:50 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vGvuJ-006Tse-Et for pgsql-hackers@lists.postgresql.org; Thu, 06 Nov 2025 09:03:50 +0000 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vGvuF-006HHd-1l for pgsql-hackers@lists.postgresql.org; Thu, 06 Nov 2025 09:03:50 +0000 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-2956d816c10so10380785ad.1 for ; Thu, 06 Nov 2025 01:03:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1762419825; x=1763024625; 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=08Pjj+ZrXEvGnq9I4l94dV7dWNs6HxlijYV4g2mt9qk=; b=LmeBFpjKzpAhki/Gf+dVJtn+PhaSfnlGgCy1YbPzYrX97luNF9QR1WzBJ3xzM75IF3 YhBNsGRoUuGZJSRCQZLC26KMcFxBOPbtEnBvtMQ6fXEt/ImZn0fo5m0kJqdtJk3Y/gn1 aeFdM2xsTihhMsQGotgGi4IMwKk93uXfN6xZVp7cAXVCFpEceZyCin4h9YZEiMCf+C/N qH6PTMr73ZfiJg1tUaKCt3ki8c5qsUK6/HDF6h4rorTrd1kKY1T0S0ArylKsNE4qb9oN 2me2zHAXDfq5NPcqNRyh3QRtJkL0baYjxn17D7ubDlOmKFAmBDOYjnfi7WGcfGZ8CIfw S6KQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762419825; x=1763024625; 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=08Pjj+ZrXEvGnq9I4l94dV7dWNs6HxlijYV4g2mt9qk=; b=Vy6bsgnLEF2CJJhoc9afcAQkvRcuY/MI/SDR9cggrycVbBIMKJA+fADoJqvAQVgXiF UNiU8/nMfL0CIZ9xfo4eXDI7EANuf5GI2WPDEmClv4Y3PXcb5CwngjiHQ5mxONUoTkuW TLgXBDA9QG6foEJWj1dejfeYgQ8h6l0T6bofKIA1OmMaUodnaWoa+G9vQjEbZwmiO/cF eaG1Ds4ApddPipBbX921Z1FlZ6sg4I+NiynDp/KjCcusmJR/Xvnxf2eN5u3Icb1D7493 K408Nm7P+kS1E9uN2NEvYMpceEzYfKky7mVlvj3JEBQygdku4ENiEisNsCyfoXtsLmcA kV5w== X-Gm-Message-State: AOJu0Yy8RK8atufLw/R517VqXzgz+5TsKVfx0VKLXICnQydqVlnA1os2 SMo4IsmbGG+2p1gUzjktDvIZTtaBVvbe+On0rsKl9u2E559E/sNaLzTdyYgX37726I71SZchika EE4rSv2V4F05SQOY/CRYLTNMXm+AmHUI= X-Gm-Gg: ASbGnct5pE24VSM5/bteEH+b/Cibju4kXE2TED83+Bvuvj41QLwRrzSV1LmMH8Gp5pI Znv1ZUgdsj13KAIQmmE/kUQS6D/Rbjex0BauNaoWpdirptsrAH7fox8GMzfOh0XAGIteCNhmcaW K+JSHHuYH/hA2CEwvlhdM48v1kEsnvpbtptCeVrsgIbWcgOaODPCTzHSo5QPZRm4mvwBj/2PSyl TyduT2lUWFyy1jjrXtoUk8NyfXoQA0R+wBaymIvlnPL56vR71yF1ZajfskzAzs= X-Google-Smtp-Source: AGHT+IG52t9q0s/xlNNo3vsqVK7ULXWiig8V5O5s0DlofjkKhX8omPkrs2YEggAKCxg3XNFy26D6+/81145w492WPyI= X-Received: by 2002:a17:902:e841:b0:295:25d4:ff3f with SMTP id d9443c01a7336-2962adb1a92mr93124455ad.42.1762419824900; Thu, 06 Nov 2025 01:03:44 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Amul Sul Date: Thu, 6 Nov 2025 14:33:05 +0530 X-Gm-Features: AWmQ_blgoQ-fEQ9GQQ1z_X7mnfY7vKyC5devvnFkdBDSuUcNp_xiGdCRLNN0pvI Message-ID: Subject: Re: pg_waldump: support decoding of WAL inside tarfile To: Robert Haas Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000009bde480642e9577c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009bde480642e9577c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Oct 20, 2025 at 8:05=E2=80=AFPM Robert Haas = wrote: > > On Thu, Oct 16, 2025 at 7:49=E2=80=AFAM Amul Sul wrot= e: > > > So, if we put the reordering logic outside the streamer, we=E2=80=99d > > sometimes be receiving buffers containing mixed data from two WAL > > files. The caller would then need to correctly identify WAL file > > boundaries within those buffers. This would require passing extra > > metadata -- like segment numbers for the WAL files in the buffer, plus > > start and end offsets of those segments within the buffer. While not > > impossible, it feels a bit hacky and I'm unsure if that=E2=80=99s the b= est > > approach. > > I agree that we need that kind of metadata, but I don't see why our > need for it depends on where we do the reordering. That is, if we do > the reordering above the astreamer layer, we need to keep track of the > origin of each chunk of WAL bytes, and if we do the reordering within > the astreamer layer, we still need to keep track of the origin of the > WAL bytes. Doing the ordering properly requires that tracking, but it > doesn't say anything about where that tracking has to be performed. > > I think it might be better if we didn't write to the astreamer's > buffer at all. For example, suppose we create a struct that looks > approximately like this: > > struct ChunkOfDecodedWAL > { > XLogSegNo segno; // could also be XLogRecPtr start_lsn or char > *walfilename or whatever > StringInfoData buffer; > char *spillfilename; // or whatever we use to identify the temporary= files > bool already_removed; > // potentially other metadata > }; > > Then, create a hash table and key it on the segno whatever. Have the > astreamer write to the hash table: when it gets a chunk of WAL, it > looks up or creates the relevant hash table entry and appends the data > to the buffer. At any convenient point in the code, you can decide to > write the data from the buffer to a spill file, after which you > resetStringInfo() on the buffer and populate the spill file name. When > you've used up the data, you remove the spill file and set the > already_removed flag. > > I think this could also help with the error reporting stuff. When you > get to the end of the file, you'll know all the files you saw and how > much data you read from each of them. So you could possibly do > something like > > ERROR: LSN %08X/%08X not found in archive "\%s\" > DETAIL: WAL segment %s is not present in the archive > -or > DETAIL: WAL segment %s was expected to be %u bytes, but was only %u bytes > -or- > DETAIL: whatever else can go wrong > > The point is that every file you've ever seen has a hash table entry, > and in that hash table entry you can store everything about that file > that you need to know, whether that's the file data, the disk file > that contains the file data, the fact that we already threw the data > away, or any other fact that you can imagine wanting to know. > > Said differently, the astreamer buffer is not really a great place to > write data. It exists because when we're just forwarding data from one > astreamer to the next, we will often need to buffer a small amount of > data to avoid terrible performance. However, it's only there to be > used when we don't have something better. I don't think any astreamer > that is intended to be the last one in the chain currently writes to > the buffer -- they write to the output file, or whatever, because > using an in-memory buffer as your final output destination is not a > real good plan. > Make sense, I implemented this approach in the attached version, but with a different structure name and a slightly different error message. In the error output using the WAL file name instead of the LSN. This is because the LSN at that point may differ from the user-provided one (it might have been adjusted to the start of a WAL page by xlogreader). This follows the same style used in the routine that reads the WAL file. The LSN values (user provided) are only used in error messages generated at the very beginning, specifically in the main() function of pg_waldump. I have also restructured the code by moving most of the tar file reading logic out of pg_waldump.c into astreamer_waldump.c, which has now been renamed to archive_waldump.c. Kindly have a look at the attached version. Thank you ! Regards, Amul --0000000000009bde480642e9577c Content-Type: application/x-patch; name="v5-0001-Refactor-pg_waldump-Move-some-declarations-to-new.patch" Content-Disposition: attachment; filename="v5-0001-Refactor-pg_waldump-Move-some-declarations-to-new.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhn6j6040 RnJvbSA5YmZlZDE1Nzk3YmNlY2YxNWU4MjhkMmI0OGY2NGNhZWFkMzZlOWJiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFR1 ZSwgMjQgSnVuIDIwMjUgMTE6MzM6MjAgKzA1MzAKU3ViamVjdDogW1BBVENIIHY1IDEvOF0gUmVm YWN0b3I6IHBnX3dhbGR1bXA6IE1vdmUgc29tZSBkZWNsYXJhdGlvbnMgdG8gbmV3CiBwZ193YWxk dW1wLmgKClRoaXMgY2hhbmdlIHByZXBhcmVzIGZvciBhIHNlY29uZCBzb3VyY2UgZmlsZSBpbiB0 aGlzIGRpcmVjdG9yeSB0bwpzdXBwb3J0IHJlYWRpbmcgV0FMIGZyb20gdGFyIGZpbGVzLiBDb21t b24gc3RydWN0dXJlcywgZGVjbGFyYXRpb25zLAphbmQgZnVuY3Rpb25zIGFyZSBiZWluZyBleHBv cnRlZCB0aHJvdWdoIHRoaXMgaW5jbHVkZSBmaWxlIHNvCnRoZXkgY2FuIGJlIHVzZWQgaW4gYm90 aCBmaWxlcy4KLS0tCiBzcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jIHwgMTEgKystLS0t LS0tLS0KIHNyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmggfCAyNyArKysrKysrKysrKysr KysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgOSBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVt cC5oCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYyBiL3NyYy9i aW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKaW5kZXggMTNkM2VjMmY1YmUuLmE0OWIyZmQ5NmM3 IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jCisrKyBiL3NyYy9i aW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJj b21tb24vbG9nZ2luZy5oIgogI2luY2x1ZGUgImNvbW1vbi9yZWxwYXRoLmgiCiAjaW5jbHVkZSAi Z2V0b3B0X2xvbmcuaCIKKyNpbmNsdWRlICJwZ193YWxkdW1wLmgiCiAjaW5jbHVkZSAicm1ncmRl c2MuaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1ZnBhZ2UuaCIKIApAQCAtMzksMTkgKzQwLDExIEBA CiAKIHN0YXRpYyBjb25zdCBjaGFyICpwcm9nbmFtZTsKIAotc3RhdGljIGludAlXYWxTZWdTejsK K2ludAkJCVdhbFNlZ1N6ID0gREVGQVVMVF9YTE9HX1NFR19TSVpFOwogc3RhdGljIHZvbGF0aWxl IHNpZ19hdG9taWNfdCB0aW1lX3RvX3N0b3AgPSBmYWxzZTsKIAogc3RhdGljIGNvbnN0IFJlbEZp bGVMb2NhdG9yIGVtcHR5UmVsRmlsZUxvY2F0b3IgPSB7MCwgMCwgMH07CiAKLXR5cGVkZWYgc3Ry dWN0IFhMb2dEdW1wUHJpdmF0ZQotewotCVRpbWVMaW5lSUQJdGltZWxpbmU7Ci0JWExvZ1JlY1B0 cglzdGFydHB0cjsKLQlYTG9nUmVjUHRyCWVuZHB0cjsKLQlib29sCQllbmRwdHJfcmVhY2hlZDsK LX0gWExvZ0R1bXBQcml2YXRlOwotCiB0eXBlZGVmIHN0cnVjdCBYTG9nRHVtcENvbmZpZwogewog CS8qIGRpc3BsYXkgb3B0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3Bn X3dhbGR1bXAuaCBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjllNjJiNjRlYWQ1Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaApAQCAtMCwwICsxLDI3IEBACisvKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ193YWxkdW1wLmggLSBkZWNvZGUgYW5kIGRpc3BsYXkg V0FMCisgKgorICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERl dmVsb3BtZW50IEdyb3VwCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCQkgIHNyYy9iaW4vcGdf d2FsZHVtcC9wZ193YWxkdW1wLmgKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZuZGVmIFBH X1dBTERVTVBfSAorI2RlZmluZSBQR19XQUxEVU1QX0gKKworI2luY2x1ZGUgImFjY2Vzcy94bG9n ZGVmcy5oIgorCitleHRlcm4gaW50CVdhbFNlZ1N6OworCisvKiBDb250YWlucyB0aGUgbmVjZXNz YXJ5IGluZm9ybWF0aW9uIHRvIGRyaXZlIFdBTCBkZWNvZGluZyAqLwordHlwZWRlZiBzdHJ1Y3Qg WExvZ0R1bXBQcml2YXRlCit7CisJVGltZUxpbmVJRAl0aW1lbGluZTsKKwlYTG9nUmVjUHRyCXN0 YXJ0cHRyOworCVhMb2dSZWNQdHIJZW5kcHRyOworCWJvb2wJCWVuZHB0cl9yZWFjaGVkOworfSBY TG9nRHVtcFByaXZhdGU7CisKKyNlbmRpZgkJLyogZW5kIG9mIFBHX1dBTERVTVBfSCAqLwotLSAK Mi40Ny4xCgo= --0000000000009bde480642e9577c Content-Type: application/x-patch; name="v5-0002-Refactor-pg_waldump-Separate-logic-used-to-calcul.patch" Content-Disposition: attachment; filename="v5-0002-Refactor-pg_waldump-Separate-logic-used-to-calcul.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhn6j9mg1 RnJvbSA4MzBkY2I5YzlmOThkZTNiZmM2ZDBiMTlkNTY4NjVlZDFlMTc1ODYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMjYgSnVuIDIwMjUgMTE6NDI6NTMgKzA1MzAKU3ViamVjdDogW1BBVENIIHY1IDIvOF0gUmVm YWN0b3I6IHBnX3dhbGR1bXA6IFNlcGFyYXRlIGxvZ2ljIHVzZWQgdG8gY2FsY3VsYXRlCiB0aGUg cmVxdWlyZWQgcmVhZCBzaXplLgoKVGhpcyByZWZhY3RvcmluZyBwcmVwYXJlcyB0aGUgY29kZWJh c2UgZm9yIGFuIHVwY29taW5nIHBhdGNoIHRoYXQgd2lsbApzdXBwb3J0IHJlYWRpbmcgV0FMIGZy b20gdGFyIGZpbGVzLiBUaGUgbG9naWMgZm9yIGNhbGN1bGF0aW5nIHRoZQpyZXF1aXJlZCByZWFk IHNpemUgaGFzIGJlZW4gdXBkYXRlZCB0byBoYW5kbGUgYm90aCBub3JtYWwgV0FMIGZpbGVzCmFu ZCBXQUwgZmlsZXMgbG9jYXRlZCBpbnNpZGUgYSB0YXIgYXJjaGl2ZS4KLS0tCiBzcmMvYmluL3Bn X3dhbGR1bXAvcGdfd2FsZHVtcC5jIHwgMzkgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYyBiL3NyYy9iaW4vcGdf d2FsZHVtcC9wZ193YWxkdW1wLmMKaW5kZXggYTQ5YjJmZDk2YzcuLjhkMGNkOWU3MTU2IDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdf d2FsZHVtcC9wZ193YWxkdW1wLmMKQEAgLTMyNiw2ICszMjYsMjkgQEAgaWRlbnRpZnlfdGFyZ2V0 X2RpcmVjdG9yeShjaGFyICpkaXJlY3RvcnksIGNoYXIgKmZuYW1lKQogCXJldHVybiBOVUxMOwkJ CQkvKiBub3QgcmVhY2hlZCAqLwogfQogCisvKiBSZXR1cm5zIHRoZSBzaXplIGluIGJ5dGVzIG9m IHRoZSBkYXRhIHRvIGJlIHJlYWQuICovCitzdGF0aWMgaW5saW5lIGludAorcmVxdWlyZWRfcmVh ZF9sZW4oWExvZ0R1bXBQcml2YXRlICpwcml2YXRlLCBYTG9nUmVjUHRyIHRhcmdldFBhZ2VQdHIs CisJCQkJICBpbnQgcmVxTGVuKQoreworCWludAkJCWNvdW50ID0gWExPR19CTENLU1o7CisKKwlp ZiAocHJpdmF0ZS0+ZW5kcHRyICE9IEludmFsaWRYTG9nUmVjUHRyKQorCXsKKwkJaWYgKHRhcmdl dFBhZ2VQdHIgKyBYTE9HX0JMQ0tTWiA8PSBwcml2YXRlLT5lbmRwdHIpCisJCQljb3VudCA9IFhM T0dfQkxDS1NaOworCQllbHNlIGlmICh0YXJnZXRQYWdlUHRyICsgcmVxTGVuIDw9IHByaXZhdGUt PmVuZHB0cikKKwkJCWNvdW50ID0gcHJpdmF0ZS0+ZW5kcHRyIC0gdGFyZ2V0UGFnZVB0cjsKKwkJ ZWxzZQorCQl7CisJCQlwcml2YXRlLT5lbmRwdHJfcmVhY2hlZCA9IHRydWU7CisJCQlyZXR1cm4g LTE7CisJCX0KKwl9CisKKwlyZXR1cm4gY291bnQ7Cit9CisKIC8qIHBnX3dhbGR1bXAncyBYTG9n UmVhZGVyUm91dGluZS0+c2VnbWVudF9vcGVuIGNhbGxiYWNrICovCiBzdGF0aWMgdm9pZAogV0FM RHVtcE9wZW5TZWdtZW50KFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUsIFhMb2dTZWdObyBuZXh0U2Vn Tm8sCkBAIC0zODMsMjEgKzQwNiwxMSBAQCBXQUxEdW1wUmVhZFBhZ2UoWExvZ1JlYWRlclN0YXRl ICpzdGF0ZSwgWExvZ1JlY1B0ciB0YXJnZXRQYWdlUHRyLCBpbnQgcmVxTGVuLAogCQkJCVhMb2dS ZWNQdHIgdGFyZ2V0UHRyLCBjaGFyICpyZWFkQnVmZikKIHsKIAlYTG9nRHVtcFByaXZhdGUgKnBy aXZhdGUgPSBzdGF0ZS0+cHJpdmF0ZV9kYXRhOwotCWludAkJCWNvdW50ID0gWExPR19CTENLU1o7 CisJaW50CQkJY291bnQgPSByZXF1aXJlZF9yZWFkX2xlbihwcml2YXRlLCB0YXJnZXRQYWdlUHRy LCByZXFMZW4pOwogCVdBTFJlYWRFcnJvciBlcnJpbmZvOwogCi0JaWYgKHByaXZhdGUtPmVuZHB0 ciAhPSBJbnZhbGlkWExvZ1JlY1B0cikKLQl7Ci0JCWlmICh0YXJnZXRQYWdlUHRyICsgWExPR19C TENLU1ogPD0gcHJpdmF0ZS0+ZW5kcHRyKQotCQkJY291bnQgPSBYTE9HX0JMQ0tTWjsKLQkJZWxz ZSBpZiAodGFyZ2V0UGFnZVB0ciArIHJlcUxlbiA8PSBwcml2YXRlLT5lbmRwdHIpCi0JCQljb3Vu dCA9IHByaXZhdGUtPmVuZHB0ciAtIHRhcmdldFBhZ2VQdHI7Ci0JCWVsc2UKLQkJewotCQkJcHJp dmF0ZS0+ZW5kcHRyX3JlYWNoZWQgPSB0cnVlOwotCQkJcmV0dXJuIC0xOwotCQl9Ci0JfQorCWlm IChwcml2YXRlLT5lbmRwdHJfcmVhY2hlZCkKKwkJcmV0dXJuIC0xOwogCiAJaWYgKCFXQUxSZWFk KHN0YXRlLCByZWFkQnVmZiwgdGFyZ2V0UGFnZVB0ciwgY291bnQsIHByaXZhdGUtPnRpbWVsaW5l LAogCQkJCSAmZXJyaW5mbykpCi0tIAoyLjQ3LjEKCg== --0000000000009bde480642e9577c Content-Type: application/x-patch; name="v5-0003-Refactor-pg_waldump-Restructure-TAP-tests.patch" Content-Disposition: attachment; filename="v5-0003-Refactor-pg_waldump-Restructure-TAP-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhn6jdb32 RnJvbSBmZGYyM2MyNDNiYzIxY2VmZDA2MmQyYjQ5NjA0NjA3MjI4MDViYmVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgMzAgSnVsIDIwMjUgMTI6NDM6MzAgKzA1MzAKU3ViamVjdDogW1BBVENIIHY1IDMvOF0gUmVm YWN0b3I6IHBnX3dhbGR1bXA6IFJlc3RydWN0dXJlIFRBUCB0ZXN0cy4KClJlc3RydWN0dXJlZCBz b21lIHRlc3RzIHRvIHJ1biBpbnNpZGUgYSBsb29wLCBmYWNpbGl0YXRpbmcgdGhlaXIKcmUtZXhl Y3V0aW9uIGZvciBkZWNvZGluZyBXQUwgZnJvbSB0YXIgYXJjaGl2ZXMuCi0tLQogc3JjL2Jpbi9w Z193YWxkdW1wL3QvMDAxX2Jhc2ljLnBsIHwgMTIzICsrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbCBiL3NyYy9iaW4v cGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbAppbmRleCBmMjZkNzVlMDFjZi4uMWI3MTJlOGQ3NGQg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbAorKysgYi9zcmMv YmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMucGwKQEAgLTE5OCwyOCArMTk4LDYgQEAgY29tbWFu ZF9saWtlKAogCV0sCiAJcXIvLi8sCiAJJ3J1bnMgd2l0aCBzdGFydCBhbmQgZW5kIHNlZ21lbnQg c3BlY2lmaWVkJyk7Ci1jb21tYW5kX2ZhaWxzX2xpa2UoCi0JWyAncGdfd2FsZHVtcCcsICctLXBh dGgnID0+ICRub2RlLT5kYXRhX2RpciBdLAotCXFyL2Vycm9yOiBubyBzdGFydCBXQUwgbG9jYXRp b24gZ2l2ZW4vLAotCSdwYXRoIG9wdGlvbiByZXF1aXJlcyBzdGFydCBsb2NhdGlvbicpOwotY29t bWFuZF9saWtlKAotCVsKLQkJJ3BnX3dhbGR1bXAnLAotCQknLS1wYXRoJyA9PiAkbm9kZS0+ZGF0 YV9kaXIsCi0JCSctLXN0YXJ0JyA9PiAkc3RhcnRfbHNuLAotCQknLS1lbmQnID0+ICRlbmRfbHNu LAotCV0sCi0JcXIvLi8sCi0JJ3J1bnMgd2l0aCBwYXRoIG9wdGlvbiBhbmQgc3RhcnQgYW5kIGVu ZCBsb2NhdGlvbnMnKTsKLWNvbW1hbmRfZmFpbHNfbGlrZSgKLQlbCi0JCSdwZ193YWxkdW1wJywK LQkJJy0tcGF0aCcgPT4gJG5vZGUtPmRhdGFfZGlyLAotCQknLS1zdGFydCcgPT4gJHN0YXJ0X2xz biwKLQldLAotCXFyL2Vycm9yOiBlcnJvciBpbiBXQUwgcmVjb3JkIGF0LywKLQknZmFsbGluZyBv ZmYgdGhlIGVuZCBvZiB0aGUgV0FMIHJlc3VsdHMgaW4gYW4gZXJyb3InKTsKLQogY29tbWFuZF9s aWtlKAogCVsKIAkJJ3BnX3dhbGR1bXAnLCAnLS1xdWlldCcsCkBAIC0yMjcsMTUgKzIwNSw2IEBA IGNvbW1hbmRfbGlrZSgKIAldLAogCXFyL14kLywKIAknbm8gb3V0cHV0IHdpdGggLS1xdWlldCBv cHRpb24nKTsKLWNvbW1hbmRfZmFpbHNfbGlrZSgKLQlbCi0JCSdwZ193YWxkdW1wJywgJy0tcXVp ZXQnLAotCQknLS1wYXRoJyA9PiAkbm9kZS0+ZGF0YV9kaXIsCi0JCSctLXN0YXJ0JyA9PiAkc3Rh cnRfbHNuCi0JXSwKLQlxci9lcnJvcjogZXJyb3IgaW4gV0FMIHJlY29yZCBhdC8sCi0JJ2Vycm9y cyBhcmUgc2hvd24gd2l0aCAtLXF1aWV0Jyk7Ci0KIAogIyBUZXN0IGZvcjogRGlzcGxheSBhIG1l c3NhZ2UgdGhhdCB3ZSdyZSBza2lwcGluZyBkYXRhIGlmIGBmcm9tYAogIyB3YXNuJ3QgYSBwb2lu dGVyIHRvIHRoZSBzdGFydCBvZiBhIHJlY29yZC4KQEAgLTI3Miw3ICsyNDEsNiBAQCBzdWIgdGVz dF9wZ193YWxkdW1wCiAKIAlteSAkcmVzdWx0ID0gSVBDOjpSdW46OnJ1biBbCiAJCSdwZ193YWxk dW1wJywKLQkJJy0tcGF0aCcgPT4gJG5vZGUtPmRhdGFfZGlyLAogCQknLS1zdGFydCcgPT4gJHN0 YXJ0X2xzbiwKIAkJJy0tZW5kJyA9PiAkZW5kX2xzbiwKIAkJQG9wdHMKQEAgLTI4OCwzOCArMjU2 LDgxIEBAIHN1YiB0ZXN0X3BnX3dhbGR1bXAKIAogbXkgQGxpbmVzOwogCi1AbGluZXMgPSB0ZXN0 X3BnX3dhbGR1bXA7Ci1pcyhncmVwKCEvXnJtZ3I6IFx3LywgQGxpbmVzKSwgMCwgJ2FsbCBvdXRw dXQgbGluZXMgYXJlIHJtZ3IgbGluZXMnKTsKK215IEBzY2VuYXJpbyA9ICgKKwl7CisJCSdwYXRo JyA9PiAkbm9kZS0+ZGF0YV9kaXIKKwl9KTsKIAotQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCct LWxpbWl0JyA9PiA2KTsKLWlzKEBsaW5lcywgNiwgJ2xpbWl0IG9wdGlvbiBvYnNlcnZlZCcpOwor Zm9yIG15ICRzY2VuYXJpbyAoQHNjZW5hcmlvKQoreworCW15ICRwYXRoID0gJHNjZW5hcmlvLT57 J3BhdGgnfTsKIAotQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLWZ1bGxwYWdlJyk7Ci1pcyhn cmVwKCEvXnJtZ3I6LipcYkZQV1xiLywgQGxpbmVzKSwgMCwgJ2FsbCBvdXRwdXQgbGluZXMgYXJl IEZQVycpOworCVNLSVA6CisJeworCQljb21tYW5kX2ZhaWxzX2xpa2UoCisJCQlbICdwZ193YWxk dW1wJywgJy0tcGF0aCcgPT4gJHBhdGggXSwKKwkJCXFyL2Vycm9yOiBubyBzdGFydCBXQUwgbG9j YXRpb24gZ2l2ZW4vLAorCQkJJ3BhdGggb3B0aW9uIHJlcXVpcmVzIHN0YXJ0IGxvY2F0aW9uJyk7 CisJCWNvbW1hbmRfbGlrZSgKKwkJCVsKKwkJCQkncGdfd2FsZHVtcCcsCisJCQkJJy0tcGF0aCcg PT4gJHBhdGgsCisJCQkJJy0tc3RhcnQnID0+ICRzdGFydF9sc24sCisJCQkJJy0tZW5kJyA9PiAk ZW5kX2xzbiwKKwkJCV0sCisJCQlxci8uLywKKwkJCSdydW5zIHdpdGggcGF0aCBvcHRpb24gYW5k IHN0YXJ0IGFuZCBlbmQgbG9jYXRpb25zJyk7CisJCWNvbW1hbmRfZmFpbHNfbGlrZSgKKwkJCVsK KwkJCQkncGdfd2FsZHVtcCcsCisJCQkJJy0tcGF0aCcgPT4gJHBhdGgsCisJCQkJJy0tc3RhcnQn ID0+ICRzdGFydF9sc24sCisJCQldLAorCQkJcXIvZXJyb3I6IGVycm9yIGluIFdBTCByZWNvcmQg YXQvLAorCQkJJ2ZhbGxpbmcgb2ZmIHRoZSBlbmQgb2YgdGhlIFdBTCByZXN1bHRzIGluIGFuIGVy cm9yJyk7CiAKLUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1zdGF0cycpOwotbGlrZSgkbGlu ZXNbMF0sIHFyL1dBTCBzdGF0aXN0aWNzLywgInN0YXRpc3RpY3Mgb24gc3Rkb3V0Iik7Ci1pcyhn cmVwKC9ecm1ncjovLCBAbGluZXMpLCAwLCAnbm8gcm1nciBsaW5lcyBvdXRwdXQnKTsKKwkJY29t bWFuZF9mYWlsc19saWtlKAorCQkJWworCQkJCSdwZ193YWxkdW1wJywgJy0tcXVpZXQnLAorCQkJ CSctLXBhdGgnID0+ICRwYXRoLAorCQkJCSctLXN0YXJ0JyA9PiAkc3RhcnRfbHNuCisJCQldLAor CQkJcXIvZXJyb3I6IGVycm9yIGluIFdBTCByZWNvcmQgYXQvLAorCQkJJ2Vycm9ycyBhcmUgc2hv d24gd2l0aCAtLXF1aWV0Jyk7CiAKLUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1zdGF0cz1y ZWNvcmQnKTsKLWxpa2UoJGxpbmVzWzBdLCBxci9XQUwgc3RhdGlzdGljcy8sICJzdGF0aXN0aWNz IG9uIHN0ZG91dCIpOwotaXMoZ3JlcCgvXnJtZ3I6LywgQGxpbmVzKSwgMCwgJ25vIHJtZ3IgbGlu ZXMgb3V0cHV0Jyk7CisJCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1wYXRoJyA9PiAkcGF0 aCk7CisJCWlzKGdyZXAoIS9ecm1ncjogXHcvLCBAbGluZXMpLCAwLCAnYWxsIG91dHB1dCBsaW5l cyBhcmUgcm1nciBsaW5lcycpOwogCi1AbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tcm1ncicg PT4gJ0J0cmVlJyk7Ci1pcyhncmVwKCEvXnJtZ3I6IEJ0cmVlLywgQGxpbmVzKSwgMCwgJ29ubHkg QnRyZWUgbGluZXMnKTsKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRw YXRoLCAnLS1saW1pdCcgPT4gNik7CisJCWlzKEBsaW5lcywgNiwgJ2xpbWl0IG9wdGlvbiBvYnNl cnZlZCcpOwogCi1AbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tZm9yaycgPT4gJ2luaXQnKTsK LWlzKGdyZXAoIS9mb3JrIGluaXQvLCBAbGluZXMpLCAwLCAnb25seSBpbml0IGZvcmsgbGluZXMn KTsKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1mdWxs cGFnZScpOworCQlpcyhncmVwKCEvXnJtZ3I6LipcYkZQV1xiLywgQGxpbmVzKSwgMCwgJ2FsbCBv dXRwdXQgbGluZXMgYXJlIEZQVycpOwogCi1AbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoCi0JJy0t cmVsYXRpb24nID0+ICIkZGVmYXVsdF90c19vaWQvJHBvc3RncmVzX2RiX29pZC8kcmVsX3QxX29p ZCIpOwotaXMoZ3JlcCghL3JlbCAkZGVmYXVsdF90c19vaWRcLyRwb3N0Z3Jlc19kYl9vaWRcLyRy ZWxfdDFfb2lkLywgQGxpbmVzKSwKLQkwLCAnb25seSBsaW5lcyBmb3Igc2VsZWN0ZWQgcmVsYXRp b24nKTsKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1z dGF0cycpOworCQlsaWtlKCRsaW5lc1swXSwgcXIvV0FMIHN0YXRpc3RpY3MvLCAic3RhdGlzdGlj cyBvbiBzdGRvdXQiKTsKKwkJaXMoZ3JlcCgvXnJtZ3I6LywgQGxpbmVzKSwgMCwgJ25vIHJtZ3Ig bGluZXMgb3V0cHV0Jyk7CiAKLUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgKLQknLS1yZWxhdGlv bicgPT4gIiRkZWZhdWx0X3RzX29pZC8kcG9zdGdyZXNfZGJfb2lkLyRyZWxfaTFhX29pZCIsCi0J Jy0tYmxvY2snID0+IDEpOwotaXMoZ3JlcCghL1xiYmxrIDFcYi8sIEBsaW5lcyksIDAsICdvbmx5 IGxpbmVzIGZvciBzZWxlY3RlZCBibG9jaycpOworCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAo Jy0tcGF0aCcgPT4gJHBhdGgsICctLXN0YXRzPXJlY29yZCcpOworCQlsaWtlKCRsaW5lc1swXSwg cXIvV0FMIHN0YXRpc3RpY3MvLCAic3RhdGlzdGljcyBvbiBzdGRvdXQiKTsKKwkJaXMoZ3JlcCgv XnJtZ3I6LywgQGxpbmVzKSwgMCwgJ25vIHJtZ3IgbGluZXMgb3V0cHV0Jyk7CiAKKwkJQGxpbmVz ID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1ybWdyJyA9PiAnQnRyZWUn KTsKKwkJaXMoZ3JlcCghL15ybWdyOiBCdHJlZS8sIEBsaW5lcyksIDAsICdvbmx5IEJ0cmVlIGxp bmVzJyk7CisKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAn LS1mb3JrJyA9PiAnaW5pdCcpOworCQlpcyhncmVwKCEvZm9yayBpbml0LywgQGxpbmVzKSwgMCwg J29ubHkgaW5pdCBmb3JrIGxpbmVzJyk7CisKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCct LXBhdGgnID0+ICRwYXRoLAorCQkJJy0tcmVsYXRpb24nID0+ICIkZGVmYXVsdF90c19vaWQvJHBv c3RncmVzX2RiX29pZC8kcmVsX3QxX29pZCIpOworCQlpcyhncmVwKCEvcmVsICRkZWZhdWx0X3Rz X29pZFwvJHBvc3RncmVzX2RiX29pZFwvJHJlbF90MV9vaWQvLCBAbGluZXMpLAorCQkJMCwgJ29u bHkgbGluZXMgZm9yIHNlbGVjdGVkIHJlbGF0aW9uJyk7CisKKwkJQGxpbmVzID0gdGVzdF9wZ193 YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLAorCQkJJy0tcmVsYXRpb24nID0+ICIkZGVmYXVsdF90 c19vaWQvJHBvc3RncmVzX2RiX29pZC8kcmVsX2kxYV9vaWQiLAorCQkJJy0tYmxvY2snID0+IDEp OworCQlpcyhncmVwKCEvXGJibGsgMVxiLywgQGxpbmVzKSwgMCwgJ29ubHkgbGluZXMgZm9yIHNl bGVjdGVkIGJsb2NrJyk7CisJfQorfQogCiBkb25lX3Rlc3RpbmcoKTsKLS0gCjIuNDcuMQoK --0000000000009bde480642e9577c Content-Type: application/x-patch; name="v5-0004-pg_waldump-Add-support-for-archived-WAL-decoding.patch" Content-Disposition: attachment; filename="v5-0004-pg_waldump-Add-support-for-archived-WAL-decoding.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhn6ji213 RnJvbSA3ODdmYzNjOTQ0MzFkZWRjYzBkMzdkM2Q2ZDkzMjliNjJlNGQwMGM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgNSBOb3YgMjAyNSAxNTo0MDozNiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjUgNC84XSBwZ193 YWxkdW1wOiBBZGQgc3VwcG9ydCBmb3IgYXJjaGl2ZWQgV0FMIGRlY29kaW5nLgoKcGdfd2FsZHVt cCBjYW4gbm93IGFjY2VwdCB0aGUgcGF0aCB0byBhIHRhciBhcmNoaXZlIGNvbnRhaW5pbmcgV0FM CmZpbGVzIGFuZCBkZWNvZGUgdGhlbS4gVGhpcyBmZWF0dXJlIHdhcyBhZGRlZCBwcmltYXJpbHkg Zm9yCnBnX3ZlcmlmeWJhY2t1cCwgd2hpY2ggcHJldmlvdXNseSBkaXNhYmxlZCBXQUwgcGFyc2lu ZyBmb3IKdGFyLWZvcm1hdHRlZCBiYWNrdXBzLgoKTm90ZSB0aGF0IHRoaXMgcGF0Y2ggcmVxdWly ZXMgdGhhdCB0aGUgV0FMIGZpbGVzIHdpdGhpbiB0aGUgYXJjaGl2ZSBiZQppbiBzZXF1ZW50aWFs IG9yZGVyOyBhbiBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIG90aGVyd2lzZS4gVGhlIG5leHQKcGF0 Y2ggaXMgcGxhbm5lZCB0byByZW1vdmUgdGhpcyByZXN0cmljdGlvbi4KLS0tCiBkb2Mvc3JjL3Nn bWwvcmVmL3BnX3dhbGR1bXAuc2dtbCAgICAgfCAgIDggKy0KIHNyYy9iaW4vcGdfd2FsZHVtcC9N YWtlZmlsZSAgICAgICAgICB8ICAgNyArLQogc3JjL2Jpbi9wZ193YWxkdW1wL2FyY2hpdmVfd2Fs ZHVtcC5jIHwgNTc3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2Jpbi9wZ193YWxk dW1wL21lc29uLmJ1aWxkICAgICAgIHwgICA0ICstCiBzcmMvYmluL3BnX3dhbGR1bXAvcGdfd2Fs ZHVtcC5jICAgICAgfCAyMjIgKysrKysrKystLS0KIHNyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxk dW1wLmggICAgICB8ICAzNiArLQogc3JjL2Jpbi9wZ193YWxkdW1wL3QvMDAxX2Jhc2ljLnBsICAg IHwgIDg0ICsrKy0KIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICB8ICAgMyAr CiA4IGZpbGVzIGNoYW5nZWQsIDg2MyBpbnNlcnRpb25zKCspLCA3OCBkZWxldGlvbnMoLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmluL3BnX3dhbGR1bXAvYXJjaGl2ZV93YWxkdW1wLmMKCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3dhbGR1bXAuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvcGdfd2FsZHVtcC5zZ21sCmluZGV4IGNlMjNhZGQ1NTc3Li5kMDA0YmIwZjY3ZSAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wZ193YWxkdW1wLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi9wZ193YWxkdW1wLnNnbWwKQEAgLTE0MSwxMyArMTQxLDE3IEBAIFBvc3RncmVTUUwg ZG9jdW1lbnRhdGlvbgogICAgICAgPHRlcm0+PG9wdGlvbj4tLXBhdGg9PHJlcGxhY2VhYmxlPnBh dGg8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KICAgICAgIDxsaXN0aXRlbT4KICAgICAg ICA8cGFyYT4KLSAgICAgICAgU3BlY2lmaWVzIGEgZGlyZWN0b3J5IHRvIHNlYXJjaCBmb3IgV0FM IHNlZ21lbnQgZmlsZXMgb3IgYQotICAgICAgICBkaXJlY3Rvcnkgd2l0aCBhIDxsaXRlcmFsPnBn X3dhbDwvbGl0ZXJhbD4gc3ViZGlyZWN0b3J5IHRoYXQKKyAgICAgICAgU3BlY2lmaWVzIGEgdGFy IGFyY2hpdmUgb3IgYSBkaXJlY3RvcnkgdG8gc2VhcmNoIGZvciBXQUwgc2VnbWVudCBmaWxlcwor ICAgICAgICBvciBhIGRpcmVjdG9yeSB3aXRoIGEgPGxpdGVyYWw+cGdfd2FsPC9saXRlcmFsPiBz dWJkaXJlY3RvcnkgdGhhdAogICAgICAgICBjb250YWlucyBzdWNoIGZpbGVzLiAgVGhlIGRlZmF1 bHQgaXMgdG8gc2VhcmNoIGluIHRoZSBjdXJyZW50CiAgICAgICAgIGRpcmVjdG9yeSwgdGhlIDxs aXRlcmFsPnBnX3dhbDwvbGl0ZXJhbD4gc3ViZGlyZWN0b3J5IG9mIHRoZQogICAgICAgICBjdXJy ZW50IGRpcmVjdG9yeSwgYW5kIHRoZSA8bGl0ZXJhbD5wZ193YWw8L2xpdGVyYWw+IHN1YmRpcmVj dG9yeQogICAgICAgICBvZiA8ZW52YXI+UEdEQVRBPC9lbnZhcj4uCiAgICAgICAgPC9wYXJhPgor ICAgICAgIDxwYXJhPgorICAgICAgICBJZiBhIHRhciBhcmNoaXZlIGlzIHByb3ZpZGVkLCBpdHMg V0FMIHNlZ21lbnQgZmlsZXMgbXVzdCBiZSBpbgorICAgICAgICBzZXF1ZW50aWFsIG9yZGVyOyBv dGhlcndpc2UsIGFuIGVycm9yIHdpbGwgYmUgcmVwb3J0ZWQuCisgICAgICAgPC9wYXJhPgogICAg ICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfd2FsZHVtcC9NYWtlZmlsZSBiL3NyYy9iaW4vcGdfd2FsZHVtcC9NYWtlZmlsZQppbmRl eCA0YzFlZTY0OTUwMS4uMDVhYzU3NjNhNTcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVt cC9NYWtlZmlsZQorKysgYi9zcmMvYmluL3BnX3dhbGR1bXAvTWFrZWZpbGUKQEAgLTMsNiArMyw5 IEBACiBQR0ZJTEVERVNDID0gInBnX3dhbGR1bXAgLSBkZWNvZGUgYW5kIGRpc3BsYXkgV0FMIgog UEdBUFBJQ09OPXdpbjMyCiAKKyMgbWFrZSB0aGVzZSBhdmFpbGFibGUgdG8gVEFQIHRlc3Qgc2Ny aXB0cworZXhwb3J0IFRBUgorCiBzdWJkaXIgPSBzcmMvYmluL3BnX3dhbGR1bXAKIHRvcF9idWls ZGRpciA9IC4uLy4uLy4uCiBpbmNsdWRlICQodG9wX2J1aWxkZGlyKS9zcmMvTWFrZWZpbGUuZ2xv YmFsCkBAIC0xMiwxMSArMTUsMTMgQEAgT0JKUyA9IFwKIAkkKFdJTjMyUkVTKSBcCiAJY29tcGF0 Lm8gXAogCXBnX3dhbGR1bXAubyBcCisJYXJjaGl2ZV93YWxkdW1wLm8gXAogCXJtZ3JkZXNjLm8g XAogCXhsb2dyZWFkZXIubyBcCiAJeGxvZ3N0YXRzLm8KIAotb3ZlcnJpZGUgQ1BQRkxBR1MgOj0g LURGUk9OVEVORCAkKENQUEZMQUdTKQorb3ZlcnJpZGUgQ1BQRkxBR1MgOj0gLURGUk9OVEVORCAt SSQobGlicHFfc3JjZGlyKSAkKENQUEZMQUdTKQorTERGTEFHU19JTlRFUk5BTCArPSAtTCQodG9w X2J1aWxkZGlyKS9zcmMvZmVfdXRpbHMgLWxwZ2ZldXRpbHMKIAogUk1HUkRFU0NTT1VSQ0VTID0g JChzb3J0ICQobm90ZGlyICQod2lsZGNhcmQgJCh0b3Bfc3JjZGlyKS9zcmMvYmFja2VuZC9hY2Nl c3Mvcm1ncmRlc2MvKmRlc2MqLmMpKSkKIFJNR1JERVNDT0JKUyA9ICQocGF0c3Vic3QgJS5jLCUu bywkKFJNR1JERVNDU09VUkNFUykpCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbGR1bXAvYXJj aGl2ZV93YWxkdW1wLmMgYi9zcmMvYmluL3BnX3dhbGR1bXAvYXJjaGl2ZV93YWxkdW1wLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU2MTllMjlkNWQ0Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjL2Jpbi9wZ193YWxkdW1wL2FyY2hpdmVfd2FsZHVtcC5jCkBAIC0wLDAg KzEsNTc3IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBhcmNoaXZlX3dhbGR1bXAuYwor ICoJCUEgZ2VuZXJpYyBmYWNpbGl0eSBmb3IgcmVhZGluZyBXQUwgZGF0YSBmcm9tIHRhciBhcmNo aXZlcyB2aWEgYXJjaGl2ZQorICoJCXN0cmVhbWVyLgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKiBJ REVOVElGSUNBVElPTgorICoJCXNyYy9iaW4vcGdfd2FsZHVtcC9hcmNoaXZlX3dhbGR1bXAuYwor ICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlc19mZS5oIgor CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlICJhY2Nlc3MveGxvZ19pbnRlcm5hbC5o IgorI2luY2x1ZGUgImNvbW1vbi9oYXNoZm4uaCIKKyNpbmNsdWRlICJjb21tb24vbG9nZ2luZy5o IgorI2luY2x1ZGUgImZlX3V0aWxzL3NpbXBsZV9saXN0LmgiCisjaW5jbHVkZSAicGdfd2FsZHVt cC5oIgorCisvKgorICogSG93IG1hbnkgYnl0ZXMgc2hvdWxkIHdlIHRyeSB0byByZWFkIGZyb20g YSBmaWxlIGF0IG9uY2U/CisgKi8KKyNkZWZpbmUgUkVBRF9DSFVOS19TSVpFCQkJCSgxMjggKiAx MDI0KQorCisvKiBTdHJ1Y3R1cmUgZm9yIHN0b3JpbmcgdGhlIFdBTCBzZWdtZW50IGRhdGEgZnJv bSB0aGUgYXJjaGl2ZSAqLwordHlwZWRlZiBzdHJ1Y3QgQXJjaGl2ZWRXQUxFbnRyeQoreworCXVp bnQzMgkJc3RhdHVzOwkJCS8qIGhhc2ggc3RhdHVzICovCisJWExvZ1NlZ05vCXNlZ25vOwkJCS8q IGhhc2gga2V5OiBXQUwgc2VnbWVudCBudW1iZXIgKi8KKwlUaW1lTGluZUlECXRpbWVsaW5lOwkJ LyogdGltZWxpbmUgb2YgdGhpcyB3YWwgZmlsZSAqLworCisJU3RyaW5nSW5mb0RhdGEgYnVmOwor CWJvb2wJCXRtcHNlZ19leGlzdHM7CS8qIHNwaWxsIGZpbGUgZXhpc3RzPyAqLworCisJaW50CQkJ dG90YWxfcmVhZDsJCS8qIHRvdGFsIHJlYWQgb2YgdGhpcyBXQUwgc2VnbWVudCwgaW5jbHVkaW5n CisJCQkJCQkJCSAqIGJ1ZmZlcmVkIGFuZCB0ZW1wb3JhcmlseSB3cml0dGVuIGRhdGEgKi8KK30g QXJjaGl2ZWRXQUxFbnRyeTsKKworI2RlZmluZSBTSF9QUkVGSVgJCQkJQXJjaGl2ZWRXQUwKKyNk ZWZpbmUgU0hfRUxFTUVOVF9UWVBFCQkJQXJjaGl2ZWRXQUxFbnRyeQorI2RlZmluZSBTSF9LRVlf VFlQRQkJCQlYTG9nU2VnTm8KKyNkZWZpbmUgU0hfS0VZCQkJCQlzZWdubworI2RlZmluZSBTSF9I QVNIX0tFWSh0Yiwga2V5KQltdXJtdXJoYXNoNjQoKHVpbnQ2NCkga2V5KQorI2RlZmluZSBTSF9F UVVBTCh0YiwgYSwgYikJCShhID09IGIpCisjZGVmaW5lIFNIX0dFVF9IQVNIKHRiLCBhKQkJYS0+ aGFzaAorI2RlZmluZSBTSF9TQ09QRQkJCQlzdGF0aWMgaW5saW5lCisjZGVmaW5lIFNIX1JBV19B TExPQ0FUT1IJCXBnX21hbGxvYzAKKyNkZWZpbmUgU0hfREVDTEFSRQorI2RlZmluZSBTSF9ERUZJ TkUKKyNpbmNsdWRlICJsaWIvc2ltcGxlaGFzaC5oIgorCitzdGF0aWMgQXJjaGl2ZWRXQUxfaGFz aCAqQXJjaGl2ZWRXQUxfSFRBQiA9IE5VTEw7CisKK3R5cGVkZWYgc3RydWN0IGFzdHJlYW1lcl93 YWxkdW1wCit7CisJYXN0cmVhbWVyCWJhc2U7CisJWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5m bzsKK30gYXN0cmVhbWVyX3dhbGR1bXA7CisKK3N0YXRpYyBpbnQJcmVhZF9hcmNoaXZlX2ZpbGUo WExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbywgU2l6ZSBjb3VudCk7CitzdGF0aWMgQXJjaGl2 ZWRXQUxFbnRyeSAqZ2V0X2FyY2hpdmVfd2FsX2VudHJ5KFhMb2dTZWdObyBzZWdubywKKwkJCQkJ CQkJCQkJICAgWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbyk7CisKK3N0YXRpYyBhc3RyZWFt ZXIgKmFzdHJlYW1lcl93YWxkdW1wX25ldyhYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvKTsK K3N0YXRpYyB2b2lkIGFzdHJlYW1lcl93YWxkdW1wX2NvbnRlbnQoYXN0cmVhbWVyICpzdHJlYW1l ciwKKwkJCQkJCQkJCSAgYXN0cmVhbWVyX21lbWJlciAqbWVtYmVyLAorCQkJCQkJCQkJICBjb25z dCBjaGFyICpkYXRhLCBpbnQgbGVuLAorCQkJCQkJCQkJICBhc3RyZWFtZXJfYXJjaGl2ZV9jb250 ZXh0IGNvbnRleHQpOworc3RhdGljIHZvaWQgYXN0cmVhbWVyX3dhbGR1bXBfZmluYWxpemUoYXN0 cmVhbWVyICpzdHJlYW1lcik7CitzdGF0aWMgdm9pZCBhc3RyZWFtZXJfd2FsZHVtcF9mcmVlKGFz dHJlYW1lciAqc3RyZWFtZXIpOworCitzdGF0aWMgYm9vbCBtZW1iZXJfaXNfd2FsX2ZpbGUoYXN0 cmVhbWVyX3dhbGR1bXAgKm15c3RyZWFtZXIsCisJCQkJCQkJICAgYXN0cmVhbWVyX21lbWJlciAq bWVtYmVyLAorCQkJCQkJCSAgIFhMb2dTZWdObyAqY3VyU2VnTm8sCisJCQkJCQkJICAgVGltZUxp bmVJRCAqY3VyVGltZWxpbmUpOworCitzdGF0aWMgY29uc3QgYXN0cmVhbWVyX29wcyBhc3RyZWFt ZXJfd2FsZHVtcF9vcHMgPSB7CisJLmNvbnRlbnQgPSBhc3RyZWFtZXJfd2FsZHVtcF9jb250ZW50 LAorCS5maW5hbGl6ZSA9IGFzdHJlYW1lcl93YWxkdW1wX2ZpbmFsaXplLAorCS5mcmVlID0gYXN0 cmVhbWVyX3dhbGR1bXBfZnJlZQorfTsKKworLyoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2 ZW4gZmlsZSBpcyBhIHRhciBhcmNoaXZlIGFuZCBvdXRwdXRzIGl0cyBjb21wcmVzc2lvbgorICog YWxnb3JpdGhtLgorICovCitib29sCitpc19hcmNoaXZlX2ZpbGUoY29uc3QgY2hhciAqZm5hbWUs IHBnX2NvbXByZXNzX2FsZ29yaXRobSAqY29tcHJlc3Npb24pCit7CisJaW50CQkJZm5hbWVfbGVu ID0gc3RybGVuKGZuYW1lKTsKKwlwZ19jb21wcmVzc19hbGdvcml0aG0gY29tcHJlc3NfYWxnbzsK KworCS8qIE5vdywgY2hlY2sgdGhlIGNvbXByZXNzaW9uIHR5cGUgb2YgdGhlIHRhciAqLworCWlm IChmbmFtZV9sZW4gPiA0ICYmCisJCXN0cmNtcChmbmFtZSArIGZuYW1lX2xlbiAtIDQsICIudGFy IikgPT0gMCkKKwkJY29tcHJlc3NfYWxnbyA9IFBHX0NPTVBSRVNTSU9OX05PTkU7CisJZWxzZSBp ZiAoZm5hbWVfbGVuID4gNCAmJgorCQkJIHN0cmNtcChmbmFtZSArIGZuYW1lX2xlbiAtIDQsICIu dGd6IikgPT0gMCkKKwkJY29tcHJlc3NfYWxnbyA9IFBHX0NPTVBSRVNTSU9OX0daSVA7CisJZWxz ZSBpZiAoZm5hbWVfbGVuID4gNyAmJgorCQkJIHN0cmNtcChmbmFtZSArIGZuYW1lX2xlbiAtIDcs ICIudGFyLmd6IikgPT0gMCkKKwkJY29tcHJlc3NfYWxnbyA9IFBHX0NPTVBSRVNTSU9OX0daSVA7 CisJZWxzZSBpZiAoZm5hbWVfbGVuID4gOCAmJgorCQkJIHN0cmNtcChmbmFtZSArIGZuYW1lX2xl biAtIDgsICIudGFyLmx6NCIpID09IDApCisJCWNvbXByZXNzX2FsZ28gPSBQR19DT01QUkVTU0lP Tl9MWjQ7CisJZWxzZSBpZiAoZm5hbWVfbGVuID4gOCAmJgorCQkJIHN0cmNtcChmbmFtZSArIGZu YW1lX2xlbiAtIDgsICIudGFyLnpzdCIpID09IDApCisJCWNvbXByZXNzX2FsZ28gPSBQR19DT01Q UkVTU0lPTl9aU1REOworCWVsc2UKKwkJcmV0dXJuIGZhbHNlOworCisJKmNvbXByZXNzaW9uID0g Y29tcHJlc3NfYWxnbzsKKworCXJldHVybiB0cnVlOworfQorCisvKgorICogSW5pdGlhbGl6ZXMg dGhlIHRhciBhcmNoaXZlIHJlYWRlciB0byByZWFkIFdBTCBmaWxlcyBmcm9tIHRoZSBhcmNoaXZl LAorICogY3JlYXRlcyBhIGhhc2ggdGFibGUgdG8gc3RvcmUgdGhlbSwgcGVyZm9ybXMgcXVpY2sg ZXhpc3RlbmNlIGNoZWNrcyBmb3IgV0FMCisgKiBlbnRyaWVzIGluIHRoZSBhcmNoaXZlIGFuZCBy ZXRyaWV2ZXMgdGhlIFdBTCBzZWdtZW50IHNpemUsIGFuZCBzZXRzIHVwCisgKiBmaWx0ZXJpbmcg Y3JpdGVyaWEgZm9yIHJlbGV2YW50IGVudHJpZXMuCisgKi8KK3ZvaWQKK2luaXRfYXJjaGl2ZV9y ZWFkZXIoWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbywgY29uc3QgY2hhciAqd2FsZGlyLAor CQkJCQlwZ19jb21wcmVzc19hbGdvcml0aG0gY29tcHJlc3Npb24pCit7CisJaW50CQkJZmQ7CisJ YXN0cmVhbWVyICAqc3RyZWFtZXI7CisJQXJjaGl2ZWRXQUxFbnRyeSAqZW50cnkgPSBOVUxMOwor CVhMb2dMb25nUGFnZUhlYWRlciBsb25naGRyOworCisJLyogT3BlbiB0YXIgYXJjaGl2ZSBhbmQg c3RvcmUgaXRzIGZpbGUgZGVzY3JpcHRvciAqLworCWZkID0gb3Blbl9maWxlX2luX2RpcmVjdG9y eSh3YWxkaXIsIHByaXZhdGVJbmZvLT5hcmNoaXZlX25hbWUpOworCisJaWYgKGZkIDwgMCkKKwkJ cGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiIiwgcHJpdmF0ZUluZm8tPmFyY2hp dmVfbmFtZSk7CisKKwlwcml2YXRlSW5mby0+YXJjaGl2ZV9mZCA9IGZkOworCisJc3RyZWFtZXIg PSBhc3RyZWFtZXJfd2FsZHVtcF9uZXcocHJpdmF0ZUluZm8pOworCisJLyogQmVmb3JlIHRoYXQg d2UgbXVzdCBwYXJzZSB0aGUgdGFyIGFyY2hpdmUuICovCisJc3RyZWFtZXIgPSBhc3RyZWFtZXJf dGFyX3BhcnNlcl9uZXcoc3RyZWFtZXIpOworCisJLyogQmVmb3JlIHRoYXQgd2UgbXVzdCBkZWNv bXByZXNzLCBpZiBhcmNoaXZlIGlzIGNvbXByZXNzZWQuICovCisJaWYgKGNvbXByZXNzaW9uID09 IFBHX0NPTVBSRVNTSU9OX0daSVApCisJCXN0cmVhbWVyID0gYXN0cmVhbWVyX2d6aXBfZGVjb21w cmVzc29yX25ldyhzdHJlYW1lcik7CisJZWxzZSBpZiAoY29tcHJlc3Npb24gPT0gUEdfQ09NUFJF U1NJT05fTFo0KQorCQlzdHJlYW1lciA9IGFzdHJlYW1lcl9sejRfZGVjb21wcmVzc29yX25ldyhz dHJlYW1lcik7CisJZWxzZSBpZiAoY29tcHJlc3Npb24gPT0gUEdfQ09NUFJFU1NJT05fWlNURCkK KwkJc3RyZWFtZXIgPSBhc3RyZWFtZXJfenN0ZF9kZWNvbXByZXNzb3JfbmV3KHN0cmVhbWVyKTsK KworCXByaXZhdGVJbmZvLT5hcmNoaXZlX3N0cmVhbWVyID0gc3RyZWFtZXI7CisKKwkvKiBIYXNo IHRhYmxlIHN0b3JpbmcgV0FMIGVudHJpZXMgcmVhZCBmcm9tIHRoZSBhcmNoaXZlICovCisJQXJj aGl2ZWRXQUxfSFRBQiA9IEFyY2hpdmVkV0FMX2NyZWF0ZSgxNiwgTlVMTCk7CisKKwkvKgorCSAq IFZlcmlmeSB0aGF0IHRoZSBhcmNoaXZlIGNvbnRhaW5zIHZhbGlkIFdBTCBmaWxlcyBhbmQgZmV0 Y2ggV0FMIHNlZ21lbnQKKwkgKiBzaXplCisJICovCisJd2hpbGUgKGVudHJ5ID09IE5VTEwgfHwg ZW50cnktPmJ1Zi5sZW4gPCBYTE9HX0JMQ0tTWikKKwl7CisJCWlmIChyZWFkX2FyY2hpdmVfZmls ZShwcml2YXRlSW5mbywgWExPR19CTENLU1opID09IDApCisJCQlwZ19mYXRhbCgiY291bGQgbm90 IGZpbmQgV0FMIGluIFwiJXNcIiBhcmNoaXZlIiwKKwkJCQkJIHByaXZhdGVJbmZvLT5hcmNoaXZl X25hbWUpOworCisJCWVudHJ5ID0gcHJpdmF0ZUluZm8tPmN1cl93YWw7CisJfQorCisJLyogU2V0 IFdhbFNlZ1N6IGlmIFdBTCBkYXRhIGlzIHN1Y2Nlc3NmdWxseSByZWFkICovCisJbG9uZ2hkciA9 IChYTG9nTG9uZ1BhZ2VIZWFkZXIpIGVudHJ5LT5idWYuZGF0YTsKKworCVdhbFNlZ1N6ID0gbG9u Z2hkci0+eGxwX3NlZ19zaXplOworCisJaWYgKCFJc1ZhbGlkV2FsU2VnU2l6ZShXYWxTZWdTeikp CisJeworCQlwZ19sb2dfZXJyb3IobmdldHRleHQoImludmFsaWQgV0FMIHNlZ21lbnQgc2l6ZSBp biBXQUwgZmlsZSBmcm9tIGFyY2hpdmUgXCIlc1wiICglZCBieXRlKSIsCisJCQkJCQkJICAiaW52 YWxpZCBXQUwgc2VnbWVudCBzaXplIGluIFdBTCBmaWxlIGZyb20gYXJjaGl2ZSBcIiVzXCIgKCVk IGJ5dGVzKSIsCisJCQkJCQkJICBXYWxTZWdTeiksCisJCQkJCSBwcml2YXRlSW5mby0+YXJjaGl2 ZV9uYW1lLCBXYWxTZWdTeik7CisJCXBnX2xvZ19lcnJvcl9kZXRhaWwoIlRoZSBXQUwgc2VnbWVu dCBzaXplIG11c3QgYmUgYSBwb3dlciBvZiB0d28gYmV0d2VlbiAxIE1CIGFuZCAxIEdCLiIpOwor CQlleGl0KDEpOworCX0KKworCS8qCisJICogV2l0aCB0aGUgV0FMIHNlZ21lbnQgc2l6ZSBhdmFp bGFibGUsIHdlIGNhbiBub3cgaW5pdGlhbGl6ZSB0aGUKKwkgKiBkZXBlbmRlbnQgc3RhcnQgYW5k IGVuZCBzZWdtZW50IG51bWJlcnMuCisJICovCisJWExCeXRlVG9TZWcocHJpdmF0ZUluZm8tPnN0 YXJ0cHRyLCBwcml2YXRlSW5mby0+c3RhcnRTZWdObywgV2FsU2VnU3opOworCVhMQnl0ZVRvU2Vn KHByaXZhdGVJbmZvLT5lbmRwdHIsIHByaXZhdGVJbmZvLT5lbmRTZWdObywgV2FsU2VnU3opOwor fQorCisvKgorICogUmVsZWFzZSB0aGUgYXJjaGl2ZSBzdHJlYW1lciBjaGFpbiBhbmQgY2xvc2Ug dGhlIGFyY2hpdmUgZmlsZS4KKyAqLwordm9pZAorZnJlZV9hcmNoaXZlX3JlYWRlcihYTG9nRHVt cFByaXZhdGUgKnByaXZhdGVJbmZvKQoreworCS8qCisJICogTkI6IE5vcm1hbGx5LCBhc3RyZWFt ZXJfZmluYWxpemUoKSBpcyBjYWxsZWQgYmVmb3JlIGFzdHJlYW1lcl9mcmVlKCkgdG8KKwkgKiBm bHVzaCBhbnkgcmVtYWluaW5nIGJ1ZmZlcmVkIGRhdGEgb3IgdG8gZW5zdXJlIHRoZSBlbmQgb2Yg dGhlIHRhcgorCSAqIGFyY2hpdmUgaXMgcmVhY2hlZC4gSG93ZXZlciwgd2hlbiBkZWNvZGluZyBh IFdBTCBmaWxlLCBvbmNlIHdlIGhpdCB0aGUKKwkgKiBlbmQgTFNOLCBhbnkgcmVtYWluaW5nIFdB TCBkYXRhIGluIHRoZSBidWZmZXIgb3IgdGhlIHRhciBhcmNoaXZlJ3MKKwkgKiB1bnJlYWNoZWQg ZW5kIGNhbiBiZSBzYWZlbHkgaWdub3JlZC4KKwkgKi8KKwlhc3RyZWFtZXJfZnJlZShwcml2YXRl SW5mby0+YXJjaGl2ZV9zdHJlYW1lcik7CisKKwkvKiBDbG9zZSB0aGUgZmlsZS4gKi8KKwlpZiAo Y2xvc2UocHJpdmF0ZUluZm8tPmFyY2hpdmVfZmQpICE9IDApCisJCXBnX2xvZ19lcnJvcigiY291 bGQgbm90IGNsb3NlIGZpbGUgXCIlc1wiOiAlbSIsCisJCQkJCSBwcml2YXRlSW5mby0+YXJjaGl2 ZV9uYW1lKTsKK30KKworLyoKKyAqIENvcGllcyBXQUwgZGF0YSBmcm9tIGFzdHJlYW1lciB0byBy ZWFkQnVmZjsgaWYgdW5hdmFpbGFibGUsIGZldGNoZXMgbW9yZQorICogZnJvbSB0aGUgdGFyIGFy Y2hpdmUgdmlhIGFzdHJlYW1lci4KKyAqLworaW50CityZWFkX2FyY2hpdmVfd2FsX3BhZ2UoWExv Z0R1bXBQcml2YXRlICpwcml2YXRlSW5mbywgWExvZ1JlY1B0ciB0YXJnZXRQYWdlUHRyLAorCQkJ CQkgIFNpemUgY291bnQsIGNoYXIgKnJlYWRCdWZmKQoreworCWNoYXIJICAgKnAgPSByZWFkQnVm ZjsKKwlTaXplCQluYnl0ZXMgPSBjb3VudDsKKwlYTG9nUmVjUHRyCXJlY3B0ciA9IHRhcmdldFBh Z2VQdHI7CisJWExvZ1NlZ05vCXNlZ25vOworCUFyY2hpdmVkV0FMRW50cnkgKmVudHJ5OworCisJ WExCeXRlVG9TZWcodGFyZ2V0UGFnZVB0ciwgc2Vnbm8sIFdhbFNlZ1N6KTsKKwllbnRyeSA9IGdl dF9hcmNoaXZlX3dhbF9lbnRyeShzZWdubywgcHJpdmF0ZUluZm8pOworCisJd2hpbGUgKG5ieXRl cyA+IDApCisJeworCQljaGFyCSAgICpidWYgPSBlbnRyeS0+YnVmLmRhdGE7CisJCWludAkJCWxl biA9IGVudHJ5LT5idWYubGVuOworCisJCS8qIFdBTCByZWNvcmQgcmFuZ2UgdGhhdCB0aGUgYnVm ZmVyIGNvbnRhaW5zICovCisJCVhMb2dSZWNQdHIJZW5kUHRyOworCQlYTG9nUmVjUHRyCXN0YXJ0 UHRyOworCisJCVhMb2dTZWdOb09mZnNldFRvUmVjUHRyKGVudHJ5LT5zZWdubywgZW50cnktPnRv dGFsX3JlYWQsCisJCQkJCQkJCVdhbFNlZ1N6LCBlbmRQdHIpOworCQlzdGFydFB0ciA9IGVuZFB0 ciAtIGxlbjsKKworCQlBc3NlcnQoKGVuZFB0ciAtIHN0YXJ0UHRyKSA9PSBsZW4pOworCisJCS8q CisJCSAqIHBnX3dhbGR1bXAgbmV2ZXIgYXNrIHRoZSBzYW1lIFdBTCBieXRlcyBtb3JlIHRoYW4g b25jZSwgc28gaWYgd2UncmUKKwkJICogbm93IGJlaW5nIGFza2VkIGZvciBkYXRhIGJleW9uZCB0 aGUgZW5kIG9mIHdoYXQgd2UndmUgYWxyZWFkeSByZWFkLAorCQkgKiB0aGF0IG1lYW5zIG5vbmUg b2YgdGhlIGRhdGEgd2UgY3VycmVudGx5IGhhdmUgaW4gdGhlIGJ1ZmZlciB3aWxsCisJCSAqIGV2 ZXIgYmUgY29uc3VsdGVkIGFnYWluLiBTbywgd2UgY2FuIGRpc2NhcmQgdGhlIGV4aXN0aW5nIGJ1 ZmZlcgorCQkgKiBjb250ZW50cyBhbmQgc3RhcnQgb3Zlci4KKwkJICovCisJCWlmIChyZWNwdHIg Pj0gZW5kUHRyKQorCQl7CisJCQlsZW4gPSAwOworCisJCQkvKiBEaXNjYXJkIHRoZSBidWZmZXJl ZCBkYXRhICovCisJCQlyZXNldFN0cmluZ0luZm8oJmVudHJ5LT5idWYpOworCQl9CisKKwkJaWYg KGxlbiA+IDAgJiYgcmVjcHRyID4gc3RhcnRQdHIpCisJCXsKKwkJCWludAkJCXNraXBCeXRlcyA9 IDA7CisKKwkJCS8qCisJCQkgKiBUaGUgcmVxdWlyZWQgb2Zmc2V0IGlzIG5vdCBhdCB0aGUgc3Rh cnQgb2YgdGhlIGJ1ZmZlciwgc28gc2tpcAorCQkJICogYnl0ZXMgdW50aWwgcmVhY2hpbmcgdGhl IGRlc2lyZWQgb2Zmc2V0IG9mIHRoZSB0YXJnZXQgcGFnZS4KKwkJCSAqLworCQkJc2tpcEJ5dGVz ID0gcmVjcHRyIC0gc3RhcnRQdHI7CisKKwkJCWJ1ZiArPSBza2lwQnl0ZXM7CisJCQlsZW4gLT0g c2tpcEJ5dGVzOworCQl9CisKKwkJaWYgKGxlbiA+IDApCisJCXsKKwkJCWludAkJCXJlYWRCeXRl cyA9IGxlbiA+PSBuYnl0ZXMgPyBuYnl0ZXMgOiBsZW47CisKKwkJCS8qIEVuc3VyZSByZWFkaW5n IGNvcnJlY3QgV0FMIHJlY29yZCAqLworCQkJQXNzZXJ0KHJlY3B0ciA+PSBzdGFydFB0ciAmJiBy ZWNwdHIgPCBlbmRQdHIpOworCisJCQltZW1jcHkocCwgYnVmLCByZWFkQnl0ZXMpOworCisJCQkv KiBVcGRhdGUgc3RhdGUgZm9yIHJlYWQgKi8KKwkJCW5ieXRlcyAtPSByZWFkQnl0ZXM7CisJCQlw ICs9IHJlYWRCeXRlczsKKwkJCXJlY3B0ciArPSByZWFkQnl0ZXM7CisJCX0KKwkJZWxzZQorCQl7 CisJCQkvKgorCQkJICogRmV0Y2ggbW9yZSBkYXRhOyByYWlzZSBhbiBlcnJvciBpZiBpdCdzIG5v dCB0aGUgY3VycmVudCBzZWdtZW50CisJCQkgKiBiZWluZyByZWFkIGJ5IHRoZSBhcmNoaXZlIHN0 cmVhbWVyIG9yIGlmIHJlYWRpbmcgb2YgdGhlCisJCQkgKiBhcmNoaXZlZCBmaWxlIGhhcyBmaW5p c2hlZC4KKwkJCSAqLworCQkJaWYgKHByaXZhdGVJbmZvLT5jdXJfd2FsICE9IGVudHJ5IHx8CisJ CQkJcmVhZF9hcmNoaXZlX2ZpbGUocHJpdmF0ZUluZm8sIFJFQURfQ0hVTktfU0laRSkgPT0gMCkK KwkJCXsKKwkJCQljaGFyCQlmbmFtZVtNQVhGTkFNRUxFTl07CisKKwkJCQlYTG9nRmlsZU5hbWUo Zm5hbWUsIHByaXZhdGVJbmZvLT50aW1lbGluZSwgZW50cnktPnNlZ25vLAorCQkJCQkJCSBXYWxT ZWdTeik7CisJCQkJcGdfZmF0YWwoImNvdWxkIG5vdCByZWFkIGZpbGUgXCIlc1wiIGZyb20gYXJj aGl2ZSBcIiVzXCI6IHJlYWQgJWxsZCBvZiAlbGxkIiwKKwkJCQkJCSBmbmFtZSwgcHJpdmF0ZUlu Zm8tPmFyY2hpdmVfbmFtZSwKKwkJCQkJCSAobG9uZyBsb25nIGludCkgY291bnQgLSBuYnl0ZXMs CisJCQkJCQkgKGxvbmcgbG9uZyBpbnQpIG5ieXRlcyk7CisJCQl9CisJCX0KKwl9CisKKwkvKgor CSAqIFNob3VsZCBoYXZlIGVpdGhlciBoYXZlIHN1Y2Nlc3NmdWxseSByZWFkIGFsbCB0aGUgcmVx dWVzdGVkIGJ5dGVzIG9yCisJICogcmVwb3J0ZWQgYSBmYWlsdXJlIGJlZm9yZSB0aGlzIHBvaW50 LgorCSAqLworCUFzc2VydChuYnl0ZXMgPT0gMCk7CisKKwkvKgorCSAqIE5COiBXZSByZXR1cm4g dGhlIGZpeGVkIHZhbHVlIHByb3ZpZGVkIGFzIGlucHV0LiBBbHRob3VnaCB3ZSBjb3VsZAorCSAq IHJldHVybiBhIGJvb2xlYW4gc2luY2Ugd2UgZWl0aGVyIHN1Y2Nlc3NmdWxseSByZWFkIHRoZSBX QUwgcGFnZSBvcgorCSAqIHJhaXNlIGFuIGVycm9yLCBidXQgdGhlIGNhbGxlciBleHBlY3RzIHRo aXMgdmFsdWUgdG8gYmUgcmV0dXJuZWQuIFRoZQorCSAqIHJvdXRpbmUgdGhhdCByZWFkcyBXQUwg cGFnZXMgZnJvbSB0aGUgcGh5c2ljYWwgV0FMIGZpbGUgZm9sbG93cyB0aGUKKwkgKiBzYW1lIGNv bnZlbnRpb24uCisJICovCisJcmV0dXJuIGNvdW50OworfQorCisvKgorICogUmVhZHMgdGhlIGFy Y2hpdmUgZmlsZSBhbmQgcGFzc2VzIGl0IHRvIHRoZSBhcmNoaXZlIHN0cmVhbWVyIGZvcgorICog ZGVjb21wcmVzc2lvbi4KKyAqLworc3RhdGljIGludAorcmVhZF9hcmNoaXZlX2ZpbGUoWExvZ0R1 bXBQcml2YXRlICpwcml2YXRlSW5mbywgU2l6ZSBjb3VudCkKK3sKKwlpbnQJCQlyYzsKKwljaGFy CSAgICpidWZmZXI7CisKKwlidWZmZXIgPSBwZ19tYWxsb2MoUkVBRF9DSFVOS19TSVpFICogc2l6 ZW9mKHVpbnQ4KSk7CisKKwlyYyA9IHJlYWQocHJpdmF0ZUluZm8tPmFyY2hpdmVfZmQsIGJ1ZmZl ciwgY291bnQpOworCWlmIChyYyA8IDApCisJCXBnX2ZhdGFsKCJjb3VsZCBub3QgcmVhZCBmaWxl IFwiJXNcIjogJW0iLAorCQkJCSBwcml2YXRlSW5mby0+YXJjaGl2ZV9uYW1lKTsKKworCS8qCisJ ICogRGVjb21wcmVzcyAoaWYgcmVxdWlyZWQpLCBhbmQgdGhlbiBwYXJzZSB0aGUgcHJldmlvdXNs eSByZWFkIGNvbnRlbnRzCisJICogb2YgdGhlIHRhciBmaWxlLgorCSAqLworCWlmIChyYyA+IDAp CisJCWFzdHJlYW1lcl9jb250ZW50KHByaXZhdGVJbmZvLT5hcmNoaXZlX3N0cmVhbWVyLCBOVUxM LAorCQkJCQkJICBidWZmZXIsIHJjLCBBU1RSRUFNRVJfVU5LTk9XTik7CisJcGdfZnJlZShidWZm ZXIpOworCisJcmV0dXJuIHJjOworfQorCisvKgorICogUmV0dXJucyB0aGUgYXJjaGl2ZWQgV0FM IGVudHJ5IGZyb20gdGhlIGhhc2ggdGFibGUgaWYgaXQgZXhpc3RzLiBPdGhlcndpc2UsCisgKiBp dCBpbnZva2VzIHRoZSByb3V0aW5lIHRvIHJlYWQgdGhlIGFyY2hpdmVkIGZpbGUgYW5kIHJldHJp ZXZlIHRoZSBlbnRyeSBpZgorICogaXQgaXMgbm90IGFscmVhZHkgaW4gaGFzaCB0YWJsZS4KKyAq Lworc3RhdGljIEFyY2hpdmVkV0FMRW50cnkgKgorZ2V0X2FyY2hpdmVfd2FsX2VudHJ5KFhMb2dT ZWdObyBzZWdubywgWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbykKK3sKKwlBcmNoaXZlZFdB TEVudHJ5ICplbnRyeSA9IE5VTEw7CisJY2hhcgkJZm5hbWVbTUFYRk5BTUVMRU5dOworCisJLyog U2VhcmNoIGhhc2ggdGFibGUgKi8KKwllbnRyeSA9IEFyY2hpdmVkV0FMX2xvb2t1cChBcmNoaXZl ZFdBTF9IVEFCLCBzZWdubyk7CisKKwlpZiAoZW50cnkgIT0gTlVMTCkKKwkJcmV0dXJuIGVudHJ5 OworCisJLyogTmVlZGVkIFdBTCB5ZXQgdG8gYmUgZGVjb2RlZCBmcm9tIGFyY2hpdmUsIGRvIHRo ZSBzYW1lICovCisJd2hpbGUgKDEpCisJeworCQllbnRyeSA9IHByaXZhdGVJbmZvLT5jdXJfd2Fs OworCisJCS8qIEZldGNoIG1vcmUgZGF0YSAqLworCQlpZiAoZW50cnkgPT0gTlVMTCB8fCBlbnRy eS0+YnVmLmxlbiA9PSAwKQorCQl7CisJCQlpZiAocmVhZF9hcmNoaXZlX2ZpbGUocHJpdmF0ZUlu Zm8sIFJFQURfQ0hVTktfU0laRSkgPT0gMCkKKwkJCQlicmVhazsJCQkvKiBhcmNoaXZlIGZpbGUg ZW5kZWQgKi8KKwkJfQorCisJCS8qCisJCSAqIEVpdGhlciwgaGVyZSBmb3IgdGhlIGZpcnN0IHRp bWUsIG9yIHRoZSBhcmNoaXZlZCBzdHJlYW1lciBpcworCQkgKiByZWFkaW5nIGEgbm9uLVdBTCBm aWxlIG9yIGFuIGlycmVsZXZhbnQgV0FMIGZpbGUuCisJCSAqLworCQlpZiAoZW50cnkgPT0gTlVM TCkKKwkJCWNvbnRpbnVlOworCisJCS8qIEZvdW5kIHRoZSByZXF1aXJlZCBlbnRyeSAqLworCQlp ZiAoZW50cnktPnNlZ25vID09IHNlZ25vKQorCQkJcmV0dXJuIGVudHJ5OworCisJCS8qCisJCSAq IElnbm9yZSBpZiB0aGUgdGltZWxpbmUgaXMgZGlmZmVyZW50IG9yIHRoZSBjdXJyZW50IHNlZ21l bnQgaXMgbm90CisJCSAqIHRoZSBkZXNpcmVkIG9uZS4KKwkJICovCisJCWlmIChwcml2YXRlSW5m by0+dGltZWxpbmUgIT0gZW50cnktPnRpbWVsaW5lIHx8CisJCQlwcml2YXRlSW5mby0+c3RhcnRT ZWdObyA+IGVudHJ5LT5zZWdubyB8fAorCQkJcHJpdmF0ZUluZm8tPmVuZFNlZ05vIDwgZW50cnkt PnNlZ25vKQorCQl7CisJCQlwcml2YXRlSW5mby0+Y3VyX3dhbCA9IE5VTEw7CisJCQljb250aW51 ZTsKKwkJfQorCisJCS8qIFdBTCBzZWdtZW50cyBtdXN0IGJlIGFyY2hpdmVkIGluIG9yZGVyICov CisJCXBnX2xvZ19lcnJvcigiV0FMIGZpbGVzIGFyZSBub3QgYXJjaGl2ZWQgaW4gc2VxdWVudGlh bCBvcmRlciIpOworCQlwZ19sb2dfZXJyb3JfZGV0YWlsKCJFeHBlY3Rpbmcgc2VnbWVudCBudW1i ZXIgIiBVSU5UNjRfRk9STUFUICIgYnV0IGZvdW5kICIgVUlOVDY0X0ZPUk1BVCAiLiIsCisJCQkJ CQkJc2Vnbm8sIGVudHJ5LT5zZWdubyk7CisJCWV4aXQoMSk7CisJfQorCisJLyogUmVxdWVzdGVk IFdBTCBzZWdtZW50IG5vdCBmb3VuZCAqLworCVhMb2dGaWxlTmFtZShmbmFtZSwgcHJpdmF0ZUlu Zm8tPnRpbWVsaW5lLCBzZWdubywgV2FsU2VnU3opOworCXBnX2ZhdGFsKCJjb3VsZCBub3QgZmlu ZCBmaWxlIFwiJXNcIiBpbiBhcmNoaXZlIiwgZm5hbWUpOworfQorCisvKgorICogQ3JlYXRlIGFu IGFzdHJlYW1lciB0aGF0IGNhbiByZWFkIFdBTCBmcm9tIHRhciBmaWxlLgorICovCitzdGF0aWMg YXN0cmVhbWVyICoKK2FzdHJlYW1lcl93YWxkdW1wX25ldyhYTG9nRHVtcFByaXZhdGUgKnByaXZh dGVJbmZvKQoreworCWFzdHJlYW1lcl93YWxkdW1wICpzdHJlYW1lcjsKKworCXN0cmVhbWVyID0g cGFsbG9jMChzaXplb2YoYXN0cmVhbWVyX3dhbGR1bXApKTsKKwkqKChjb25zdCBhc3RyZWFtZXJf b3BzICoqKSAmc3RyZWFtZXItPmJhc2UuYmJzX29wcykgPQorCQkmYXN0cmVhbWVyX3dhbGR1bXBf b3BzOworCisJc3RyZWFtZXItPnByaXZhdGVJbmZvID0gcHJpdmF0ZUluZm87CisKKwlyZXR1cm4g JnN0cmVhbWVyLT5iYXNlOworfQorCisvKgorICogTWFpbiBlbnRyeSBwb2ludCBvZiB0aGUgYXJj aGl2ZSBzdHJlYW1lciBmb3IgcmVhZGluZyBXQUwgZGF0YSBmcm9tIGEgdGFyCisgKiBmaWxlLiBJ ZiBhIG1lbWJlciBpcyBpZGVudGlmaWVkIGFzIGEgdmFsaWQgV0FMIGZpbGUsIGEgaGFzaCBlbnRy eSBpcyBjcmVhdGVkCisgKiBmb3IgaXQsIGFuZCBpdHMgY29udGVudHMgYXJlIGNvcGllZCBpbnRv IHRoYXQgZW50cnkncyBidWZmZXIsIG1ha2luZyB0aGVtCisgKiBhY2Nlc3NpYmxlIHRvIHRoZSBk ZWNvZGluZyByb3V0aW5lLgorICovCitzdGF0aWMgdm9pZAorYXN0cmVhbWVyX3dhbGR1bXBfY29u dGVudChhc3RyZWFtZXIgKnN0cmVhbWVyLCBhc3RyZWFtZXJfbWVtYmVyICptZW1iZXIsCisJCQkJ CQkgIGNvbnN0IGNoYXIgKmRhdGEsIGludCBsZW4sCisJCQkJCQkgIGFzdHJlYW1lcl9hcmNoaXZl X2NvbnRleHQgY29udGV4dCkKK3sKKwlhc3RyZWFtZXJfd2FsZHVtcCAqbXlzdHJlYW1lciA9IChh c3RyZWFtZXJfd2FsZHVtcCAqKSBzdHJlYW1lcjsKKwlYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJ bmZvID0gbXlzdHJlYW1lci0+cHJpdmF0ZUluZm87CisKKwlBc3NlcnQoY29udGV4dCAhPSBBU1RS RUFNRVJfVU5LTk9XTik7CisKKwlzd2l0Y2ggKGNvbnRleHQpCisJeworCQljYXNlIEFTVFJFQU1F Ul9NRU1CRVJfSEVBREVSOgorCQkJeworCQkJCVhMb2dTZWdObwlzZWdubzsKKwkJCQlUaW1lTGlu ZUlECXRpbWVsaW5lOworCQkJCUFyY2hpdmVkV0FMRW50cnkgKmVudHJ5OworCQkJCWJvb2wJCWZv dW5kOworCisJCQkJcGdfbG9nX2RlYnVnKCJwZ193YWxkdW1wOiByZWFkaW5nIFwiJXNcIiIsIG1l bWJlci0+cGF0aG5hbWUpOworCisJCQkJaWYgKCFtZW1iZXJfaXNfd2FsX2ZpbGUobXlzdHJlYW1l ciwgbWVtYmVyLAorCQkJCQkJCQkJCSZzZWdubywgJnRpbWVsaW5lKSkKKwkJCQkJYnJlYWs7CisK KwkJCQllbnRyeSA9IEFyY2hpdmVkV0FMX2luc2VydChBcmNoaXZlZFdBTF9IVEFCLCBzZWdubywg JmZvdW5kKTsKKworCQkJCS8qCisJCQkJICogU2hvdWxkbid0IGhhcHBlbiwgYnV0IGlmIGl0IGRv ZXMsIHNpbXBseSBpZ25vcmUgdGhlCisJCQkJICogZHVwbGljYXRlIFdBTCBmaWxlLgorCQkJCSAq LworCQkJCWlmIChmb3VuZCkKKwkJCQl7CisJCQkJCXBnX2xvZ193YXJuaW5nKCJpZ25vcmluZyBk dXBsaWNhdGUgV0FMIGZpbGUgZm91bmQgaW4gYXJjaGl2ZTogXCIlc1wiIiwKKwkJCQkJCQkJICAg bWVtYmVyLT5wYXRobmFtZSk7CisJCQkJCWJyZWFrOworCQkJCX0KKworCQkJCWluaXRTdHJpbmdJ bmZvKCZlbnRyeS0+YnVmKTsKKwkJCQllbnRyeS0+dGltZWxpbmUgPSB0aW1lbGluZTsKKwkJCQll bnRyeS0+dG90YWxfcmVhZCA9IDA7CisKKwkJCQlwcml2YXRlSW5mby0+Y3VyX3dhbCA9IGVudHJ5 OworCQkJfQorCQkJYnJlYWs7CisKKwkJY2FzZSBBU1RSRUFNRVJfTUVNQkVSX0NPTlRFTlRTOgor CQkJaWYgKHByaXZhdGVJbmZvLT5jdXJfd2FsKQorCQkJeworCQkJCWFwcGVuZEJpbmFyeVN0cmlu Z0luZm8oJnByaXZhdGVJbmZvLT5jdXJfd2FsLT5idWYsIGRhdGEsIGxlbik7CisJCQkJcHJpdmF0 ZUluZm8tPmN1cl93YWwtPnRvdGFsX3JlYWQgKz0gbGVuOworCQkJfQorCQkJYnJlYWs7CisKKwkJ Y2FzZSBBU1RSRUFNRVJfTUVNQkVSX1RSQUlMRVI6CisJCQlwcml2YXRlSW5mby0+Y3VyX3dhbCA9 IE5VTEw7CisJCQlicmVhazsKKworCQljYXNlIEFTVFJFQU1FUl9BUkNISVZFX1RSQUlMRVI6CisJ CQlicmVhazsKKworCQlkZWZhdWx0OgorCQkJLyogU2hvdWxkbid0IGhhcHBlbi4gKi8KKwkJCXBn X2ZhdGFsKCJ1bmV4cGVjdGVkIHN0YXRlIHdoaWxlIHBhcnNpbmcgdGFyIGZpbGUiKTsKKwl9Cit9 CisKKy8qCisgKiBFbmQtb2Ytc3RyZWFtIHByb2Nlc3NpbmcgZm9yIGEgYXN0cmVhbWVyX3dhbGR1 bXAgc3RyZWFtLgorICovCitzdGF0aWMgdm9pZAorYXN0cmVhbWVyX3dhbGR1bXBfZmluYWxpemUo YXN0cmVhbWVyICpzdHJlYW1lcikKK3sKKwlBc3NlcnQoc3RyZWFtZXItPmJic19uZXh0ID09IE5V TEwpOworfQorCisvKgorICogRnJlZSBtZW1vcnkgYXNzb2NpYXRlZCB3aXRoIGEgYXN0cmVhbWVy X3dhbGR1bXAgc3RyZWFtLgorICovCitzdGF0aWMgdm9pZAorYXN0cmVhbWVyX3dhbGR1bXBfZnJl ZShhc3RyZWFtZXIgKnN0cmVhbWVyKQoreworCUFzc2VydChzdHJlYW1lci0+YmJzX25leHQgPT0g TlVMTCk7CisJcGZyZWUoc3RyZWFtZXIpOworfQorCisvKgorICogUmV0dXJucyB0cnVlIGlmIHRo ZSBhcmNoaXZlIG1lbWJlciBuYW1lIG1hdGNoZXMgdGhlIFdBTCBuYW1pbmcgZm9ybWF0LiBJZgor ICogc3VjY2Vzc2Z1bCwgaXQgYWxzbyBvdXRwdXRzIHRoZSBXQUwgc2VnbWVudCBudW1iZXIsIGFu ZCB0aW1lbGluZS4KKyAqLworc3RhdGljIGJvb2wKK21lbWJlcl9pc193YWxfZmlsZShhc3RyZWFt ZXJfd2FsZHVtcCAqbXlzdHJlYW1lciwgYXN0cmVhbWVyX21lbWJlciAqbWVtYmVyLAorCQkJCSAg IFhMb2dTZWdObyAqY3VyU2VnTm8sIFRpbWVMaW5lSUQgKmN1clRpbWVsaW5lKQoreworCWludAkJ CXBhdGhsZW47CisJWExvZ1NlZ05vCXNlZ05vOworCVRpbWVMaW5lSUQJdGltZWxpbmU7CisJY2hh cgkgICAqZm5hbWU7CisKKwkvKiBXZSBhcmUgb25seSBpbnRlcmVzdGVkIGluIG5vcm1hbCBmaWxl cy4gKi8KKwlpZiAobWVtYmVyLT5pc19kaXJlY3RvcnkgfHwgbWVtYmVyLT5pc19saW5rKQorCQly ZXR1cm4gZmFsc2U7CisKKwlwYXRobGVuID0gc3RybGVuKG1lbWJlci0+cGF0aG5hbWUpOworCWlm IChwYXRobGVuIDwgWExPR19GTkFNRV9MRU4pCisJCXJldHVybiBmYWxzZTsKKworCS8qIFdBTCBm aWxlIGNvdWxkIGJlIHdpdGggZnVsbCBwYXRoICovCisJZm5hbWUgPSBtZW1iZXItPnBhdGhuYW1l ICsgKHBhdGhsZW4gLSBYTE9HX0ZOQU1FX0xFTik7CisJaWYgKCFJc1hMb2dGaWxlTmFtZShmbmFt ZSkpCisJCXJldHVybiBmYWxzZTsKKworCS8qCisJICogWFhYOiBPbiBzb21lIHN5c3RlbXMgKGUu Zy4sIE9wZW5CU0QpLCB0aGUgdGFyIHV0aWxpdHkgaW5jbHVkZXMKKwkgKiBQYXhIZWFkZXJzIHdo ZW4gY3JlYXRpbmcgYW4gYXJjaGl2ZS4gVGhlc2UgYXJlIHNwZWNpYWwgZW50cmllcyB0aGF0CisJ ICogc3RvcmUgZXh0ZW5kZWQgbWV0YWRhdGEgZm9yIHRoZSBmaWxlIGVudHJ5IGltbWVkaWF0ZWx5 IGZvbGxvd2luZyB0aGVtLAorCSAqIGFuZCB0aGV5IHNoYXJlIHRoZSBleGFjdCBzYW1lIG5hbWUg YXMgdGhhdCBmaWxlLgorCSAqLworCWlmIChzdHJzdHIobWVtYmVyLT5wYXRobmFtZSwgIlBheEhl YWRlcnMuIikpCisJCXJldHVybiBmYWxzZTsKKworCS8qIFBhcnNlIHBvc2l0aW9uIGZyb20gZmls ZSAqLworCVhMb2dGcm9tRmlsZU5hbWUoZm5hbWUsICZ0aW1lbGluZSwgJnNlZ05vLCBXYWxTZWdT eik7CisKKwkqY3VyU2VnTm8gPSBzZWdObzsKKwkqY3VyVGltZWxpbmUgPSB0aW1lbGluZTsKKwor CXJldHVybiB0cnVlOworfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL21lc29uLmJ1 aWxkIGIvc3JjL2Jpbi9wZ193YWxkdW1wL21lc29uLmJ1aWxkCmluZGV4IDkzN2UwZDY4ODQxLi5k YTAwNzQ2NTg3YyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ193YWxkdW1wL21lc29uLmJ1aWxkCisr KyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9tZXNvbi5idWlsZApAQCAtMyw2ICszLDcgQEAKIHBnX3dh bGR1bXBfc291cmNlcyA9IGZpbGVzKAogICAnY29tcGF0LmMnLAogICAncGdfd2FsZHVtcC5jJywK KyAgJ2FyY2hpdmVfd2FsZHVtcC5jJywKICAgJ3JtZ3JkZXNjLmMnLAogKQogCkBAIC0xOCw3ICsx OSw3IEBAIGVuZGlmCiAKIHBnX3dhbGR1bXAgPSBleGVjdXRhYmxlKCdwZ193YWxkdW1wJywKICAg cGdfd2FsZHVtcF9zb3VyY2VzLAotICBkZXBlbmRlbmNpZXM6IFtmcm9udGVuZF9jb2RlLCBsejQs IHpzdGRdLAorICBkZXBlbmRlbmNpZXM6IFtmcm9udGVuZF9jb2RlLCBsejQsIHpzdGQsIGxpYnBx XSwKICAgY19hcmdzOiBbJy1ERlJPTlRFTkQnXSwgIyBuZWVkZWQgZm9yIHhsb2dyZWFkZXIgZXQg YWwKICAga3dhcmdzOiBkZWZhdWx0X2Jpbl9hcmdzLAogKQpAQCAtMjksNiArMzAsNyBAQCB0ZXN0 cyArPSB7CiAgICdzZCc6IG1lc29uLmN1cnJlbnRfc291cmNlX2RpcigpLAogICAnYmQnOiBtZXNv bi5jdXJyZW50X2J1aWxkX2RpcigpLAogICAndGFwJzogeworICAgICdlbnYnOiB7J1RBUic6IHRh ci5mb3VuZCgpID8gdGFyLmZ1bGxfcGF0aCgpIDogJyd9LAogICAgICd0ZXN0cyc6IFsKICAgICAg ICd0LzAwMV9iYXNpYy5wbCcsCiAgICAgICAndC8wMDJfc2F2ZV9mdWxscGFnZS5wbCcsCmRpZmYg LS1naXQgYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jIGIvc3JjL2Jpbi9wZ193YWxk dW1wL3BnX3dhbGR1bXAuYwppbmRleCA4ZDBjZDllNzE1Ni4uOGE4MzhmMTZiYTIgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ193YWxk dW1wL3BnX3dhbGR1bXAuYwpAQCAtMTc3LDcgKzE3Nyw3IEBAIHNwbGl0X3BhdGgoY29uc3QgY2hh ciAqcGF0aCwgY2hhciAqKmRpciwgY2hhciAqKmZuYW1lKQogICoKICAqIHJldHVybiBhIHJlYWQg b25seSBmZAogICovCi1zdGF0aWMgaW50CitpbnQKIG9wZW5fZmlsZV9pbl9kaXJlY3RvcnkoY29u c3QgY2hhciAqZGlyZWN0b3J5LCBjb25zdCBjaGFyICpmbmFtZSkKIHsKIAlpbnQJCQlmZCA9IC0x OwpAQCAtNDM2LDYgKzQzNiw0NCBAQCBXQUxEdW1wUmVhZFBhZ2UoWExvZ1JlYWRlclN0YXRlICpz dGF0ZSwgWExvZ1JlY1B0ciB0YXJnZXRQYWdlUHRyLCBpbnQgcmVxTGVuLAogCXJldHVybiBjb3Vu dDsKIH0KIAorLyoKKyAqIHBnX3dhbGR1bXAncyBYTG9nUmVhZGVyUm91dGluZS0+c2VnbWVudF9v cGVuIGNhbGxiYWNrIHRvIHN1cHBvcnQgZHVtcGluZyBXQUwKKyAqIGZpbGVzIGZyb20gdGFyIGFy Y2hpdmVzLgorICovCitzdGF0aWMgdm9pZAorVGFyV0FMRHVtcE9wZW5TZWdtZW50KFhMb2dSZWFk ZXJTdGF0ZSAqc3RhdGUsIFhMb2dTZWdObyBuZXh0U2VnTm8sCisJCQkJCSAgVGltZUxpbmVJRCAq dGxpX3ApCit7CisJLyogTm8gYWN0aW9uIG5lZWRlZCAqLworfQorCisvKgorICogcGdfd2FsZHVt cCdzIFhMb2dSZWFkZXJSb3V0aW5lLT5zZWdtZW50X2Nsb3NlIGNhbGxiYWNrLgorICovCitzdGF0 aWMgdm9pZAorVGFyV0FMRHVtcENsb3NlU2VnbWVudChYTG9nUmVhZGVyU3RhdGUgKnN0YXRlKQor eworCS8qIE5vIGFjdGlvbiBuZWVkZWQgKi8KK30KKworLyoKKyAqIHBnX3dhbGR1bXAncyBYTG9n UmVhZGVyUm91dGluZS0+cGFnZV9yZWFkIGNhbGxiYWNrIHRvIHN1cHBvcnQgZHVtcGluZyBXQUwK KyAqIGZpbGVzIGZyb20gdGFyIGFyY2hpdmVzLgorICovCitzdGF0aWMgaW50CitUYXJXQUxEdW1w UmVhZFBhZ2UoWExvZ1JlYWRlclN0YXRlICpzdGF0ZSwgWExvZ1JlY1B0ciB0YXJnZXRQYWdlUHRy LCBpbnQgcmVxTGVuLAorCQkJCSAgIFhMb2dSZWNQdHIgdGFyZ2V0UHRyLCBjaGFyICpyZWFkQnVm ZikKK3sKKwlYTG9nRHVtcFByaXZhdGUgKnByaXZhdGUgPSBzdGF0ZS0+cHJpdmF0ZV9kYXRhOwor CWludAkJCWNvdW50ID0gcmVxdWlyZWRfcmVhZF9sZW4ocHJpdmF0ZSwgdGFyZ2V0UGFnZVB0ciwg cmVxTGVuKTsKKworCWlmIChwcml2YXRlLT5lbmRwdHJfcmVhY2hlZCkKKwkJcmV0dXJuIC0xOwor CisJLyogUmVhZCB0aGUgV0FMIHBhZ2UgZnJvbSB0aGUgYXJjaGl2ZSBzdHJlYW1lciAqLworCXJl dHVybiByZWFkX2FyY2hpdmVfd2FsX3BhZ2UocHJpdmF0ZSwgdGFyZ2V0UGFnZVB0ciwgY291bnQs IHJlYWRCdWZmKTsKK30KKwogLyoKICAqIEJvb2xlYW4gdG8gcmV0dXJuIHdoZXRoZXIgdGhlIGdp dmVuIFdBTCByZWNvcmQgbWF0Y2hlcyBhIHNwZWNpZmljIHJlbGF0aW9uCiAgKiBhbmQgb3B0aW9u YWxseSBibG9jay4KQEAgLTc3Myw4ICs4MTEsOCBAQCB1c2FnZSh2b2lkKQogCXByaW50ZihfKCIg IC1GLCAtLWZvcms9Rk9SSyAgICAgICAgb25seSBzaG93IHJlY29yZHMgdGhhdCBtb2RpZnkgYmxv Y2tzIGluIGZvcmsgRk9SSztcbiIKIAkJCSAiICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlk IG5hbWVzIGFyZSBtYWluLCBmc20sIHZtLCBpbml0XG4iKSk7CiAJcHJpbnRmKF8oIiAgLW4sIC0t bGltaXQ9TiAgICAgICAgICBudW1iZXIgb2YgcmVjb3JkcyB0byBkaXNwbGF5XG4iKSk7Ci0JcHJp bnRmKF8oIiAgLXAsIC0tcGF0aD1QQVRIICAgICAgICBkaXJlY3RvcnkgaW4gd2hpY2ggdG8gZmlu ZCBXQUwgc2VnbWVudCBmaWxlcyBvciBhXG4iCi0JCQkgIiAgICAgICAgICAgICAgICAgICAgICAg ICBkaXJlY3Rvcnkgd2l0aCBhIC4vcGdfd2FsIHRoYXQgY29udGFpbnMgc3VjaCBmaWxlc1xuIgor CXByaW50ZihfKCIgIC1wLCAtLXBhdGg9UEFUSCAgICAgICAgdGFyIGFyY2hpdmUgb3IgYSBkaXJl Y3RvcnkgaW4gd2hpY2ggdG8gZmluZCBXQUwgc2VnbWVudCBmaWxlcyBvclxuIgorCQkJICIgICAg ICAgICAgICAgICAgICAgICAgICAgYSBkaXJlY3Rvcnkgd2l0aCBhIC4vcGdfd2FsIHRoYXQgY29u dGFpbnMgc3VjaCBmaWxlc1xuIgogCQkJICIgICAgICAgICAgICAgICAgICAgICAgICAgKGRlZmF1 bHQ6IGN1cnJlbnQgZGlyZWN0b3J5LCAuL3BnX3dhbCwgJFBHREFUQS9wZ193YWwpXG4iKSk7CiAJ cHJpbnRmKF8oIiAgLXEsIC0tcXVpZXQgICAgICAgICAgICBkbyBub3QgcHJpbnQgYW55IG91dHB1 dCwgZXhjZXB0IGZvciBlcnJvcnNcbiIpKTsKIAlwcmludGYoXygiICAtciwgLS1ybWdyPVJNR1Ig ICAgICAgIG9ubHkgc2hvdyByZWNvcmRzIGdlbmVyYXRlZCBieSByZXNvdXJjZSBtYW5hZ2VyIFJN R1I7XG4iCkBAIC04MDYsNyArODQ0LDEwIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQog CVhMb2dSZWNvcmQgKnJlY29yZDsKIAlYTG9nUmVjUHRyCWZpcnN0X3JlY29yZDsKIAljaGFyCSAg ICp3YWxkaXIgPSBOVUxMOworCWNoYXIJICAgKndhbHBhdGggPSBOVUxMOwogCWNoYXIJICAgKmVy cm9ybXNnOworCWJvb2wJCWlzX2FyY2hpdmUgPSBmYWxzZTsKKwlwZ19jb21wcmVzc19hbGdvcml0 aG0gY29tcHJlc3Npb247CiAKIAlzdGF0aWMgc3RydWN0IG9wdGlvbiBsb25nX29wdGlvbnNbXSA9 IHsKIAkJeyJia3AtZGV0YWlscyIsIG5vX2FyZ3VtZW50LCBOVUxMLCAnYid9LApAQCAtOTM4LDcg Kzk3OSw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJCX0KIAkJCQlicmVhazsK IAkJCWNhc2UgJ3AnOgotCQkJCXdhbGRpciA9IHBnX3N0cmR1cChvcHRhcmcpOworCQkJCXdhbHBh dGggPSBwZ19zdHJkdXAob3B0YXJnKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgJ3EnOgogCQkJCWNv bmZpZy5xdWlldCA9IHRydWU7CkBAIC0xMTAyLDEwICsxMTQzLDI3IEBAIG1haW4oaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQogCQlnb3RvIGJhZF9hcmd1bWVudDsKIAl9CiAKLQlpZiAod2FsZGlyICE9 IE5VTEwpCisJaWYgKHdhbHBhdGggIT0gTlVMTCkKIAl7CisJCS8qIHZhbGlkYXRlIHBhdGggcG9p bnRzIHRvIHRhciBhcmNoaXZlICovCisJCWlmIChpc19hcmNoaXZlX2ZpbGUod2FscGF0aCwgJmNv bXByZXNzaW9uKSkKKwkJeworCQkJY2hhcgkgICAqZm5hbWUgPSBOVUxMOworCisJCQlzcGxpdF9w YXRoKHdhbHBhdGgsICZ3YWxkaXIsICZmbmFtZSk7CisKKwkJCS8qCisJCQkgKiBBIE5VTEwgV0FM IGRpcmVjdG9yeSBpbmRpY2F0ZXMgdGhhdCB0aGUgYXJjaGl2ZSBmaWxlIGlzIGxvY2F0ZWQKKwkJ CSAqIGluIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IG9mIHRoZSBwZ193YWxkdW1wIGV4 ZWN1dGlvbgorCQkJICovCisJCQlpZiAod2FsZGlyID09IE5VTEwpCisJCQkJd2FsZGlyID0gcGdf c3RyZHVwKCIuIik7CisKKwkJCXByaXZhdGUuYXJjaGl2ZV9uYW1lID0gZm5hbWU7CisJCQlpc19h cmNoaXZlID0gdHJ1ZTsKKwkJfQogCQkvKiB2YWxpZGF0ZSBwYXRoIHBvaW50cyB0byBkaXJlY3Rv cnkgKi8KLQkJaWYgKCF2ZXJpZnlfZGlyZWN0b3J5KHdhbGRpcikpCisJCWVsc2UgaWYgKCF2ZXJp ZnlfZGlyZWN0b3J5KHdhbHBhdGgpKQogCQl7CiAJCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBv cGVuIGRpcmVjdG9yeSBcIiVzXCI6ICVtIiwgd2FsZGlyKTsKIAkJCWdvdG8gYmFkX2FyZ3VtZW50 OwpAQCAtMTEyMyw0NiArMTE4MSwzNiBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJ aW50CQkJZmQ7CiAJCVhMb2dTZWdObwlzZWdubzsKIAorCQkvKgorCQkgKiBJZiBhIHRhciBhcmNo aXZlIGlzIHBhc3NlZCB1c2luZyB0aGUgLS1wYXRoIG9wdGlvbiwgYWxsIG90aGVyCisJCSAqIGFy Z3VtZW50cyBiZWNvbWUgdW5uZWNlc3NhcnkuCisJCSAqLworCQlpZiAoaXNfYXJjaGl2ZSkKKwkJ eworCQkJcGdfbG9nX2Vycm9yKCJ1bm5lY2Vzc2FyeSBjb21tYW5kLWxpbmUgYXJndW1lbnRzIHNw ZWNpZmllZCB3aXRoIHRhciBhcmNoaXZlIChmaXJzdCBpcyBcIiVzXCIpIiwKKwkJCQkJCSBhcmd2 W29wdGluZF0pOworCQkJZ290byBiYWRfYXJndW1lbnQ7CisJCX0KKwogCQlzcGxpdF9wYXRoKGFy Z3Zbb3B0aW5kXSwgJmRpcmVjdG9yeSwgJmZuYW1lKTsKIAotCQlpZiAod2FsZGlyID09IE5VTEwg JiYgZGlyZWN0b3J5ICE9IE5VTEwpCisJCWlmICh3YWxwYXRoID09IE5VTEwgJiYgZGlyZWN0b3J5 ICE9IE5VTEwpCiAJCXsKLQkJCXdhbGRpciA9IGRpcmVjdG9yeTsKKwkJCXdhbHBhdGggPSBkaXJl Y3Rvcnk7CiAKLQkJCWlmICghdmVyaWZ5X2RpcmVjdG9yeSh3YWxkaXIpKQorCQkJaWYgKCF2ZXJp ZnlfZGlyZWN0b3J5KHdhbHBhdGgpKQogCQkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBkaXJl Y3RvcnkgXCIlc1wiOiAlbSIsIHdhbGRpcik7CiAJCX0KIAotCQl3YWxkaXIgPSBpZGVudGlmeV90 YXJnZXRfZGlyZWN0b3J5KHdhbGRpciwgZm5hbWUpOwotCQlmZCA9IG9wZW5fZmlsZV9pbl9kaXJl Y3Rvcnkod2FsZGlyLCBmbmFtZSk7Ci0JCWlmIChmZCA8IDApCi0JCQlwZ19mYXRhbCgiY291bGQg bm90IG9wZW4gZmlsZSBcIiVzXCIiLCBmbmFtZSk7Ci0JCWNsb3NlKGZkKTsKLQotCQkvKiBwYXJz ZSBwb3NpdGlvbiBmcm9tIGZpbGUgKi8KLQkJWExvZ0Zyb21GaWxlTmFtZShmbmFtZSwgJnByaXZh dGUudGltZWxpbmUsICZzZWdubywgV2FsU2VnU3opOwotCi0JCWlmIChYTG9nUmVjUHRySXNJbnZh bGlkKHByaXZhdGUuc3RhcnRwdHIpKQotCQkJWExvZ1NlZ05vT2Zmc2V0VG9SZWNQdHIoc2Vnbm8s IDAsIFdhbFNlZ1N6LCBwcml2YXRlLnN0YXJ0cHRyKTsKLQkJZWxzZSBpZiAoIVhMQnl0ZUluU2Vn KHByaXZhdGUuc3RhcnRwdHIsIHNlZ25vLCBXYWxTZWdTeikpCisJCWlmIChmbmFtZSAhPSBOVUxM ICYmIGlzX2FyY2hpdmVfZmlsZShmbmFtZSwgJmNvbXByZXNzaW9uKSkKIAkJewotCQkJcGdfbG9n X2Vycm9yKCJzdGFydCBXQUwgbG9jYXRpb24gJVgvJTA4WCBpcyBub3QgaW5zaWRlIGZpbGUgXCIl c1wiIiwKLQkJCQkJCSBMU05fRk9STUFUX0FSR1MocHJpdmF0ZS5zdGFydHB0ciksCi0JCQkJCQkg Zm5hbWUpOwotCQkJZ290byBiYWRfYXJndW1lbnQ7CisJCQl3YWxkaXIgPSB3YWxwYXRoID8gcGdf c3RyZHVwKHdhbHBhdGgpIDogcGdfc3RyZHVwKCIuIik7CisJCQlwcml2YXRlLmFyY2hpdmVfbmFt ZSA9IGZuYW1lOworCQkJaXNfYXJjaGl2ZSA9IHRydWU7CiAJCX0KLQotCQkvKiBubyBzZWNvbmQg ZmlsZSBzcGVjaWZpZWQsIHNldCBlbmQgcG9zaXRpb24gKi8KLQkJaWYgKCEob3B0aW5kICsgMSA8 IGFyZ2MpICYmIFhMb2dSZWNQdHJJc0ludmFsaWQocHJpdmF0ZS5lbmRwdHIpKQotCQkJWExvZ1Nl Z05vT2Zmc2V0VG9SZWNQdHIoc2Vnbm8gKyAxLCAwLCBXYWxTZWdTeiwgcHJpdmF0ZS5lbmRwdHIp OwotCi0JCS8qIHBhcnNlIEVORFNFRyBpZiBwYXNzZWQgKi8KLQkJaWYgKG9wdGluZCArIDEgPCBh cmdjKQorCQllbHNlCiAJCXsKLQkJCVhMb2dTZWdObwllbmRzZWdubzsKLQotCQkJLyogaWdub3Jl IGRpcmVjdG9yeSwgYWxyZWFkeSBoYXZlIHRoYXQgKi8KLQkJCXNwbGl0X3BhdGgoYXJndltvcHRp bmQgKyAxXSwgJmRpcmVjdG9yeSwgJmZuYW1lKTsKKwkJCXdhbGRpciA9IGlkZW50aWZ5X3Rhcmdl dF9kaXJlY3Rvcnkod2FscGF0aCwgZm5hbWUpOwogCiAJCQlmZCA9IG9wZW5fZmlsZV9pbl9kaXJl Y3Rvcnkod2FsZGlyLCBmbmFtZSk7CiAJCQlpZiAoZmQgPCAwKQpAQCAtMTE3MCwzMiArMTIxOCw2 MyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCWNsb3NlKGZkKTsKIAogCQkJLyog cGFyc2UgcG9zaXRpb24gZnJvbSBmaWxlICovCi0JCQlYTG9nRnJvbUZpbGVOYW1lKGZuYW1lLCAm cHJpdmF0ZS50aW1lbGluZSwgJmVuZHNlZ25vLCBXYWxTZWdTeik7CisJCQlYTG9nRnJvbUZpbGVO YW1lKGZuYW1lLCAmcHJpdmF0ZS50aW1lbGluZSwgJnNlZ25vLCBXYWxTZWdTeik7CiAKLQkJCWlm IChlbmRzZWdubyA8IHNlZ25vKQotCQkJCXBnX2ZhdGFsKCJFTkRTRUcgJXMgaXMgYmVmb3JlIFNU QVJUU0VHICVzIiwKLQkJCQkJCSBhcmd2W29wdGluZCArIDFdLCBhcmd2W29wdGluZF0pOworCQkJ aWYgKFhMb2dSZWNQdHJJc0ludmFsaWQocHJpdmF0ZS5zdGFydHB0cikpCisJCQkJWExvZ1NlZ05v T2Zmc2V0VG9SZWNQdHIoc2Vnbm8sIDAsIFdhbFNlZ1N6LCBwcml2YXRlLnN0YXJ0cHRyKTsKKwkJ CWVsc2UgaWYgKCFYTEJ5dGVJblNlZyhwcml2YXRlLnN0YXJ0cHRyLCBzZWdubywgV2FsU2VnU3op KQorCQkJeworCQkJCXBnX2xvZ19lcnJvcigic3RhcnQgV0FMIGxvY2F0aW9uICVYLyUwOFggaXMg bm90IGluc2lkZSBmaWxlIFwiJXNcIiIsCisJCQkJCQkJIExTTl9GT1JNQVRfQVJHUyhwcml2YXRl LnN0YXJ0cHRyKSwKKwkJCQkJCQkgZm5hbWUpOworCQkJCWdvdG8gYmFkX2FyZ3VtZW50OworCQkJ fQogCi0JCQlpZiAoWExvZ1JlY1B0cklzSW52YWxpZChwcml2YXRlLmVuZHB0cikpCi0JCQkJWExv Z1NlZ05vT2Zmc2V0VG9SZWNQdHIoZW5kc2Vnbm8gKyAxLCAwLCBXYWxTZWdTeiwKLQkJCQkJCQkJ CQlwcml2YXRlLmVuZHB0cik7CisJCQkvKiBubyBzZWNvbmQgZmlsZSBzcGVjaWZpZWQsIHNldCBl bmQgcG9zaXRpb24gKi8KKwkJCWlmICghKG9wdGluZCArIDEgPCBhcmdjKSAmJiBYTG9nUmVjUHRy SXNJbnZhbGlkKHByaXZhdGUuZW5kcHRyKSkKKwkJCQlYTG9nU2VnTm9PZmZzZXRUb1JlY1B0cihz ZWdubyArIDEsIDAsIFdhbFNlZ1N6LCBwcml2YXRlLmVuZHB0cik7CiAKLQkJCS8qIHNldCBzZWdu byB0byBlbmRzZWdubyBmb3IgY2hlY2sgb2YgLS1lbmQgKi8KLQkJCXNlZ25vID0gZW5kc2Vnbm87 Ci0JCX0KKwkJCS8qIHBhcnNlIEVORFNFRyBpZiBwYXNzZWQgKi8KKwkJCWlmIChvcHRpbmQgKyAx IDwgYXJnYykKKwkJCXsKKwkJCQlYTG9nU2VnTm8JZW5kc2Vnbm87CiAKKwkJCQkvKiBpZ25vcmUg ZGlyZWN0b3J5LCBhbHJlYWR5IGhhdmUgdGhhdCAqLworCQkJCXNwbGl0X3BhdGgoYXJndltvcHRp bmQgKyAxXSwgJmRpcmVjdG9yeSwgJmZuYW1lKTsKIAotCQlpZiAoIVhMQnl0ZUluU2VnKHByaXZh dGUuZW5kcHRyLCBzZWdubywgV2FsU2VnU3opICYmCi0JCQlwcml2YXRlLmVuZHB0ciAhPSAoc2Vn bm8gKyAxKSAqIFdhbFNlZ1N6KQotCQl7Ci0JCQlwZ19sb2dfZXJyb3IoImVuZCBXQUwgbG9jYXRp b24gJVgvJTA4WCBpcyBub3QgaW5zaWRlIGZpbGUgXCIlc1wiIiwKLQkJCQkJCSBMU05fRk9STUFU X0FSR1MocHJpdmF0ZS5lbmRwdHIpLAotCQkJCQkJIGFyZ3ZbYXJnYyAtIDFdKTsKLQkJCWdvdG8g YmFkX2FyZ3VtZW50OworCQkJCWZkID0gb3Blbl9maWxlX2luX2RpcmVjdG9yeSh3YWxkaXIsIGZu YW1lKTsKKwkJCQlpZiAoZmQgPCAwKQorCQkJCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gZmls ZSBcIiVzXCIiLCBmbmFtZSk7CisJCQkJY2xvc2UoZmQpOworCisJCQkJLyogcGFyc2UgcG9zaXRp b24gZnJvbSBmaWxlICovCisJCQkJWExvZ0Zyb21GaWxlTmFtZShmbmFtZSwgJnByaXZhdGUudGlt ZWxpbmUsICZlbmRzZWdubywgV2FsU2VnU3opOworCisJCQkJaWYgKGVuZHNlZ25vIDwgc2Vnbm8p CisJCQkJCXBnX2ZhdGFsKCJFTkRTRUcgJXMgaXMgYmVmb3JlIFNUQVJUU0VHICVzIiwKKwkJCQkJ CQkgYXJndltvcHRpbmQgKyAxXSwgYXJndltvcHRpbmRdKTsKKworCQkJCWlmIChYTG9nUmVjUHRy SXNJbnZhbGlkKHByaXZhdGUuZW5kcHRyKSkKKwkJCQkJWExvZ1NlZ05vT2Zmc2V0VG9SZWNQdHIo ZW5kc2Vnbm8gKyAxLCAwLCBXYWxTZWdTeiwKKwkJCQkJCQkJCQkJcHJpdmF0ZS5lbmRwdHIpOwor CisJCQkJLyogc2V0IHNlZ25vIHRvIGVuZHNlZ25vIGZvciBjaGVjayBvZiAtLWVuZCAqLworCQkJ CXNlZ25vID0gZW5kc2Vnbm87CisJCQl9CisKKworCQkJaWYgKCFYTEJ5dGVJblNlZyhwcml2YXRl LmVuZHB0ciwgc2Vnbm8sIFdhbFNlZ1N6KSAmJgorCQkJCXByaXZhdGUuZW5kcHRyICE9IChzZWdu byArIDEpICogV2FsU2VnU3opCisJCQl7CisJCQkJcGdfbG9nX2Vycm9yKCJlbmQgV0FMIGxvY2F0 aW9uICVYLyUwOFggaXMgbm90IGluc2lkZSBmaWxlIFwiJXNcIiIsCisJCQkJCQkJIExTTl9GT1JN QVRfQVJHUyhwcml2YXRlLmVuZHB0ciksCisJCQkJCQkJIGFyZ3ZbYXJnYyAtIDFdKTsKKwkJCQln b3RvIGJhZF9hcmd1bWVudDsKKwkJCX0KIAkJfQogCX0KLQllbHNlCi0JCXdhbGRpciA9IGlkZW50 aWZ5X3RhcmdldF9kaXJlY3Rvcnkod2FsZGlyLCBOVUxMKTsKKwllbHNlIGlmICghaXNfYXJjaGl2 ZSkKKwkJd2FsZGlyID0gaWRlbnRpZnlfdGFyZ2V0X2RpcmVjdG9yeSh3YWxwYXRoLCBOVUxMKTsK IAogCS8qIHdlIGRvbid0IGtub3cgd2hhdCB0byBwcmludCAqLwogCWlmIChYTG9nUmVjUHRySXNJ bnZhbGlkKHByaXZhdGUuc3RhcnRwdHIpKQpAQCAtMTIwNywxMiArMTI4NiwzMCBAQCBtYWluKGlu dCBhcmdjLCBjaGFyICoqYXJndikKIAkvKiBkb25lIHdpdGggYXJndW1lbnQgcGFyc2luZywgZG8g dGhlIGFjdHVhbCB3b3JrICovCiAKIAkvKiB3ZSBoYXZlIGV2ZXJ5dGhpbmcgd2UgbmVlZCwgc3Rh cnQgcmVhZGluZyAqLwotCXhsb2dyZWFkZXJfc3RhdGUgPQotCQlYTG9nUmVhZGVyQWxsb2NhdGUo V2FsU2VnU3osIHdhbGRpciwKLQkJCQkJCSAgIFhMX1JPVVRJTkUoLnBhZ2VfcmVhZCA9IFdBTER1 bXBSZWFkUGFnZSwKLQkJCQkJCQkJCSAgLnNlZ21lbnRfb3BlbiA9IFdBTER1bXBPcGVuU2VnbWVu dCwKLQkJCQkJCQkJCSAgLnNlZ21lbnRfY2xvc2UgPSBXQUxEdW1wQ2xvc2VTZWdtZW50KSwKLQkJ CQkJCSAgICZwcml2YXRlKTsKKwlpZiAoaXNfYXJjaGl2ZSkKKwl7CisJCS8qIFNldCB1cCBmb3Ig cmVhZGluZyB0YXIgZmlsZSAqLworCQlpbml0X2FyY2hpdmVfcmVhZGVyKCZwcml2YXRlLCB3YWxk aXIsIGNvbXByZXNzaW9uKTsKKworCQkvKiBSb3V0aW5lIHRvIGRlY29kZSBXQUwgZmlsZXMgaW4g dGFyIGFyY2hpdmUgKi8KKwkJeGxvZ3JlYWRlcl9zdGF0ZSA9CisJCQlYTG9nUmVhZGVyQWxsb2Nh dGUoV2FsU2VnU3osIHdhbGRpciwKKwkJCQkJCQkgICBYTF9ST1VUSU5FKC5wYWdlX3JlYWQgPSBU YXJXQUxEdW1wUmVhZFBhZ2UsCisJCQkJCQkJCQkJICAuc2VnbWVudF9vcGVuID0gVGFyV0FMRHVt cE9wZW5TZWdtZW50LAorCQkJCQkJCQkJCSAgLnNlZ21lbnRfY2xvc2UgPSBUYXJXQUxEdW1wQ2xv c2VTZWdtZW50KSwKKwkJCQkJCQkgICAmcHJpdmF0ZSk7CisJfQorCWVsc2UKKwl7CisJCS8qIFJv dXRpbmUgdG8gZGVjb2RlIFdBTCBmaWxlcyAqLworCQl4bG9ncmVhZGVyX3N0YXRlID0KKwkJCVhM b2dSZWFkZXJBbGxvY2F0ZShXYWxTZWdTeiwgd2FsZGlyLAorCQkJCQkJCSAgIFhMX1JPVVRJTkUo LnBhZ2VfcmVhZCA9IFdBTER1bXBSZWFkUGFnZSwKKwkJCQkJCQkJCQkgIC5zZWdtZW50X29wZW4g PSBXQUxEdW1wT3BlblNlZ21lbnQsCisJCQkJCQkJCQkJICAuc2VnbWVudF9jbG9zZSA9IFdBTER1 bXBDbG9zZVNlZ21lbnQpLAorCQkJCQkJCSAgICZwcml2YXRlKTsKKwl9CisKIAlpZiAoIXhsb2dy ZWFkZXJfc3RhdGUpCiAJCXBnX2ZhdGFsKCJvdXQgb2YgbWVtb3J5IHdoaWxlIGFsbG9jYXRpbmcg YSBXQUwgcmVhZGluZyBwcm9jZXNzb3IiKTsKIApAQCAtMTMyMSw2ICsxNDE4LDkgQEAgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKIAlYTG9nUmVhZGVyRnJlZSh4bG9ncmVhZGVyX3N0YXRl KTsKIAorCWlmIChpc19hcmNoaXZlKQorCQlmcmVlX2FyY2hpdmVfcmVhZGVyKCZwcml2YXRlKTsK KwogCXJldHVybiBFWElUX1NVQ0NFU1M7CiAKIGJhZF9hcmd1bWVudDoKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmggYi9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2Fs ZHVtcC5oCmluZGV4IDllNjJiNjRlYWQ1Li41NDc1OGMzNTQ4YSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaAorKysgYi9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2Fs ZHVtcC5oCkBAIC0xMiw5ICsxMiwxMyBAQAogI2RlZmluZSBQR19XQUxEVU1QX0gKIAogI2luY2x1 ZGUgImFjY2Vzcy94bG9nZGVmcy5oIgorI2luY2x1ZGUgImZlX3V0aWxzL2FzdHJlYW1lci5oIgog CiBleHRlcm4gaW50CVdhbFNlZ1N6OwogCisvKiBGb3J3YXJkIGRlY2xhcmF0aW9uICovCitzdHJ1 Y3QgQXJjaGl2ZWRXQUxFbnRyeTsKKwogLyogQ29udGFpbnMgdGhlIG5lY2Vzc2FyeSBpbmZvcm1h dGlvbiB0byBkcml2ZSBXQUwgZGVjb2RpbmcgKi8KIHR5cGVkZWYgc3RydWN0IFhMb2dEdW1wUHJp dmF0ZQogewpAQCAtMjIsNiArMjYsMzYgQEAgdHlwZWRlZiBzdHJ1Y3QgWExvZ0R1bXBQcml2YXRl CiAJWExvZ1JlY1B0cglzdGFydHB0cjsKIAlYTG9nUmVjUHRyCWVuZHB0cjsKIAlib29sCQllbmRw dHJfcmVhY2hlZDsKKworCS8qIEZpZWxkcyByZXF1aXJlZCB0byByZWFkIFdBTCBmcm9tIGFyY2hp dmUgKi8KKwljaGFyCSAgICphcmNoaXZlX25hbWU7CS8qIFRhciBhcmNoaXZlIG5hbWUgKi8KKwlp bnQJCQlhcmNoaXZlX2ZkOwkJLyogRmlsZSBkZXNjcmlwdG9yIGZvciB0aGUgb3BlbiB0YXIgZmls ZSAqLworCisJYXN0cmVhbWVyICAqYXJjaGl2ZV9zdHJlYW1lcjsKKworCS8qIFdoYXQgdGhlIGFy Y2hpdmUgc3RyZWFtZXIgaXMgY3VycmVudGx5IHJlYWRpbmcgKi8KKwlzdHJ1Y3QgQXJjaGl2ZWRX QUxFbnRyeSAqY3VyX3dhbDsKKworCS8qCisJICogQWx0aG91Z2ggdGhlc2UgdmFsdWVzIGNhbiBi ZSBlYXNpbHkgZGVyaXZlZCBmcm9tIHN0YXJ0cHRyIGFuZCBlbmRwdHIsCisJICogZG9pbmcgc28g cmVwZWF0ZWRseSBmb3IgZWFjaCBhcmNoaXZlZCBtZW1iZXIgd291bGQgYmUgaW5lZmZpY2llbnQs IGFzCisJICogaXQgd291bGQgaW52b2x2ZSByZWNhbGN1bGF0aW5nIGFuZCBmaWx0ZXJpbmcgb3V0 IGlycmVsZXZhbnQgV0FMCisJICogc2VnbWVudHMuCisJICovCisJWExvZ1NlZ05vCXN0YXJ0U2Vn Tm87CisJWExvZ1NlZ05vCWVuZFNlZ05vOwogfSBYTG9nRHVtcFByaXZhdGU7CiAKLSNlbmRpZgkJ LyogZW5kIG9mIFBHX1dBTERVTVBfSCAqLworZXh0ZXJuIGludAlvcGVuX2ZpbGVfaW5fZGlyZWN0 b3J5KGNvbnN0IGNoYXIgKmRpcmVjdG9yeSwgY29uc3QgY2hhciAqZm5hbWUpOworCitleHRlcm4g Ym9vbCBpc19hcmNoaXZlX2ZpbGUoY29uc3QgY2hhciAqZm5hbWUsCisJCQkJCQkJcGdfY29tcHJl c3NfYWxnb3JpdGhtICpjb21wcmVzc2lvbik7CitleHRlcm4gdm9pZCBpbml0X2FyY2hpdmVfcmVh ZGVyKFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUluZm8sCisJCQkJCQkJCWNvbnN0IGNoYXIgKndh bGRpciwKKwkJCQkJCQkJcGdfY29tcHJlc3NfYWxnb3JpdGhtIGNvbXByZXNzaW9uKTsKK2V4dGVy biB2b2lkIGZyZWVfYXJjaGl2ZV9yZWFkZXIoWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbyk7 CitleHRlcm4gaW50CXJlYWRfYXJjaGl2ZV93YWxfcGFnZShYTG9nRHVtcFByaXZhdGUgKnByaXZh dGVJbmZvLAorCQkJCQkJCQkgIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwKKwkJCQkJCQkJICBT aXplIGNvdW50LCBjaGFyICpyZWFkQnVmZik7CisKKyNlbmRpZgkJCQkJCQkvKiBlbmQgb2YgUEdf V0FMRFVNUF9IICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMu cGwgYi9zcmMvYmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMucGwKaW5kZXggMWI3MTJlOGQ3NGQu LjQ0MzEyNmE5Y2U2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMu cGwKKysrIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3QvMDAxX2Jhc2ljLnBsCkBAIC0zLDEwICszLDEz IEBACiAKIHVzZSBzdHJpY3Q7CiB1c2Ugd2FybmluZ3MgRkFUQUwgPT4gJ2FsbCc7Cit1c2UgQ3dk OwogdXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7CiB1c2UgUG9zdGdyZVNRTDo6VGVzdDo6 VXRpbHM7CiB1c2UgVGVzdDo6TW9yZTsKIAorbXkgJHRhciA9ICRFTlZ7VEFSfTsKKwogcHJvZ3Jh bV9oZWxwX29rKCdwZ193YWxkdW1wJyk7CiBwcm9ncmFtX3ZlcnNpb25fb2soJ3BnX3dhbGR1bXAn KTsKIHByb2dyYW1fb3B0aW9uc19oYW5kbGluZ19vaygncGdfd2FsZHVtcCcpOwpAQCAtMjM1LDcg KzIzOCw3IEBAIGNvbW1hbmRfbGlrZSgKIHN1YiB0ZXN0X3BnX3dhbGR1bXAKIHsKIAlsb2NhbCAk VGVzdDo6QnVpbGRlcjo6TGV2ZWwgPSAkVGVzdDo6QnVpbGRlcjo6TGV2ZWwgKyAxOwotCW15IEBv cHRzID0gQF87CisJbXkgKCRwYXRoLCBAb3B0cykgPSBAXzsKIAogCW15ICgkc3Rkb3V0LCAkc3Rk ZXJyKTsKIApAQCAtMjQzLDYgKzI0Niw3IEBAIHN1YiB0ZXN0X3BnX3dhbGR1bXAKIAkJJ3BnX3dh bGR1bXAnLAogCQknLS1zdGFydCcgPT4gJHN0YXJ0X2xzbiwKIAkJJy0tZW5kJyA9PiAkZW5kX2xz biwKKwkJJy0tcGF0aCcgPT4gJHBhdGgsCiAJCUBvcHRzCiAJICBdLAogCSAgJz4nID0+IFwkc3Rk b3V0LApAQCAtMjU0LDExICsyNTgsNTAgQEAgc3ViIHRlc3RfcGdfd2FsZHVtcAogCXJldHVybiBA bGluZXM7CiB9CiAKLW15IEBsaW5lczsKKyMgQ3JlYXRlIGEgdGFyIGFyY2hpdmUsIHNvcnRpbmcg dGhlIGZpbGUgb3JkZXIKK3N1YiBnZW5lcmF0ZV9hcmNoaXZlCit7CisJbXkgKCRhcmNoaXZlLCAk ZGlyZWN0b3J5LCAkY29tcHJlc3Npb25fZmxhZ3MpID0gQF87CisKKwlteSBAZmlsZXM7CisJb3Bl bmRpciBteSAkZGgsICRkaXJlY3Rvcnkgb3IgZGllICJvcGVuZGlyOiAkISI7CisJd2hpbGUgKG15 ICRlbnRyeSA9IHJlYWRkaXIgJGRoKSB7CisJCSMgU2tpcCAnLicgYW5kICcuLicKKwkJbmV4dCBp ZiAkZW50cnkgZXEgJy4nIHx8ICRlbnRyeSBlcSAnLi4nOworCQlwdXNoIEBmaWxlcywgJGVudHJ5 OworCX0KKwljbG9zZWRpciAkZGg7CisKKwlAZmlsZXMgPSBzb3J0IEBmaWxlczsKKworCSMgbW92 ZSBpbnRvIHRoZSBXQUwgZGlyZWN0b3J5IGJlZm9yZSBhcmNoaXZpbmcgZmlsZXMKKwlteSAkY3dk ID0gZ2V0Y3dkOworCWNoZGlyKCRkaXJlY3RvcnkpIHx8IGRpZSAiY2hkaXI6ICQhIjsKKwljb21t YW5kX29rKFskdGFyLCAkY29tcHJlc3Npb25fZmxhZ3MsICRhcmNoaXZlLCBAZmlsZXNdKTsKKwlj aGRpcigkY3dkKSB8fCBkaWUgImNoZGlyOiAkISI7Cit9CisKK215ICR0bXBfZGlyID0gUG9zdGdy ZVNRTDo6VGVzdDo6VXRpbHM6OnRlbXBkaXJfc2hvcnQoKTsKIAogbXkgQHNjZW5hcmlvID0gKAog CXsKLQkJJ3BhdGgnID0+ICRub2RlLT5kYXRhX2RpcgorCQkncGF0aCcgPT4gJG5vZGUtPmRhdGFf ZGlyLAorCQknaXNfYXJjaGl2ZScgPT4gMCwKKwkJJ2VuYWJsZWQnID0+IDEKKwl9LAorCXsKKwkJ J3BhdGgnID0+ICIkdG1wX2Rpci9wZ193YWwudGFyIiwKKwkJJ2NvbXByZXNzaW9uX21ldGhvZCcg PT4gJ25vbmUnLAorCQknY29tcHJlc3Npb25fZmxhZ3MnID0+ICctY2YnLAorCQknaXNfYXJjaGl2 ZScgPT4gMSwKKwkJJ2VuYWJsZWQnID0+IDEKKwl9LAorCXsKKwkJJ3BhdGgnID0+ICIkdG1wX2Rp ci9wZ193YWwudGFyLmd6IiwKKwkJJ2NvbXByZXNzaW9uX21ldGhvZCcgPT4gJ2d6aXAnLAorCQkn Y29tcHJlc3Npb25fZmxhZ3MnID0+ICctY3pmJywKKwkJJ2lzX2FyY2hpdmUnID0+IDEsCisJCSdl bmFibGVkJyA9PiBjaGVja19wZ19jb25maWcoIiNkZWZpbmUgSEFWRV9MSUJaIDEiKQogCX0pOwog CiBmb3IgbXkgJHNjZW5hcmlvIChAc2NlbmFyaW8pCkBAIC0yNjcsNiArMzEwLDE5IEBAIGZvciBt eSAkc2NlbmFyaW8gKEBzY2VuYXJpbykKIAogCVNLSVA6CiAJeworCQlza2lwICJ0YXIgY29tbWFu ZCBpcyBub3QgYXZhaWxhYmxlIiwgMworCQkgIGlmICFkZWZpbmVkICR0YXI7CisJCXNraXAgIiRz Y2VuYXJpby0+eydjb21wcmVzc2lvbl9tZXRob2QnfSBjb21wcmVzc2lvbiBub3Qgc3VwcG9ydGVk IGJ5IHRoaXMgYnVpbGQiLCAzCisJCSAgaWYgISRzY2VuYXJpby0+eydlbmFibGVkJ30gJiYgJHNj ZW5hcmlvLT57J2lzX2FyY2hpdmUnfTsKKworCQkgICMgY3JlYXRlIHBnX3dhbCBhcmNoaXZlCisJ CSAgaWYgKCRzY2VuYXJpby0+eydpc19hcmNoaXZlJ30pCisJCSAgeworCQkJICBnZW5lcmF0ZV9h cmNoaXZlKCRwYXRoLAorCQkJCSAgJG5vZGUtPmRhdGFfZGlyIC4gJy9wZ193YWwnLAorCQkJCSAg JHNjZW5hcmlvLT57J2NvbXByZXNzaW9uX2ZsYWdzJ30pOworCQkgIH0KKwogCQljb21tYW5kX2Zh aWxzX2xpa2UoCiAJCQlbICdwZ193YWxkdW1wJywgJy0tcGF0aCcgPT4gJHBhdGggXSwKIAkJCXFy L2Vycm9yOiBubyBzdGFydCBXQUwgbG9jYXRpb24gZ2l2ZW4vLApAQCAtMjk4LDM4ICszNTQsNDIg QEAgZm9yIG15ICRzY2VuYXJpbyAoQHNjZW5hcmlvKQogCQkJcXIvZXJyb3I6IGVycm9yIGluIFdB TCByZWNvcmQgYXQvLAogCQkJJ2Vycm9ycyBhcmUgc2hvd24gd2l0aCAtLXF1aWV0Jyk7CiAKLQkJ QGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoKTsKKwkJbXkgQGxpbmVz OworCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJHBhdGgpOwogCQlpcyhncmVwKCEvXnJtZ3I6 IFx3LywgQGxpbmVzKSwgMCwgJ2FsbCBvdXRwdXQgbGluZXMgYXJlIHJtZ3IgbGluZXMnKTsKIAot CQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tcGF0aCcgPT4gJHBhdGgsICctLWxpbWl0JyA9 PiA2KTsKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCRwYXRoLCAnLS1saW1pdCcgPT4gNik7 CiAJCWlzKEBsaW5lcywgNiwgJ2xpbWl0IG9wdGlvbiBvYnNlcnZlZCcpOwogCi0JCUBsaW5lcyA9 IHRlc3RfcGdfd2FsZHVtcCgnLS1wYXRoJyA9PiAkcGF0aCwgJy0tZnVsbHBhZ2UnKTsKKwkJQGxp bmVzID0gdGVzdF9wZ193YWxkdW1wKCRwYXRoLCAnLS1mdWxscGFnZScpOwogCQlpcyhncmVwKCEv XnJtZ3I6LipcYkZQV1xiLywgQGxpbmVzKSwgMCwgJ2FsbCBvdXRwdXQgbGluZXMgYXJlIEZQVycp OwogCi0JCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1wYXRoJyA9PiAkcGF0aCwgJy0tc3Rh dHMnKTsKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCRwYXRoLCAnLS1zdGF0cycpOwogCQls aWtlKCRsaW5lc1swXSwgcXIvV0FMIHN0YXRpc3RpY3MvLCAic3RhdGlzdGljcyBvbiBzdGRvdXQi KTsKIAkJaXMoZ3JlcCgvXnJtZ3I6LywgQGxpbmVzKSwgMCwgJ25vIHJtZ3IgbGluZXMgb3V0cHV0 Jyk7CiAKLQkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1z dGF0cz1yZWNvcmQnKTsKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCRwYXRoLCAnLS1zdGF0 cz1yZWNvcmQnKTsKIAkJbGlrZSgkbGluZXNbMF0sIHFyL1dBTCBzdGF0aXN0aWNzLywgInN0YXRp c3RpY3Mgb24gc3Rkb3V0Iik7CiAJCWlzKGdyZXAoL15ybWdyOi8sIEBsaW5lcyksIDAsICdubyBy bWdyIGxpbmVzIG91dHB1dCcpOwogCi0JCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1wYXRo JyA9PiAkcGF0aCwgJy0tcm1ncicgPT4gJ0J0cmVlJyk7CisJCUBsaW5lcyA9IHRlc3RfcGdfd2Fs ZHVtcCgkcGF0aCwgJy0tcm1ncicgPT4gJ0J0cmVlJyk7CiAJCWlzKGdyZXAoIS9ecm1ncjogQnRy ZWUvLCBAbGluZXMpLCAwLCAnb25seSBCdHJlZSBsaW5lcycpOwogCi0JCUBsaW5lcyA9IHRlc3Rf cGdfd2FsZHVtcCgnLS1wYXRoJyA9PiAkcGF0aCwgJy0tZm9yaycgPT4gJ2luaXQnKTsKKwkJQGxp bmVzID0gdGVzdF9wZ193YWxkdW1wKCRwYXRoLCAnLS1mb3JrJyA9PiAnaW5pdCcpOwogCQlpcyhn cmVwKCEvZm9yayBpbml0LywgQGxpbmVzKSwgMCwgJ29ubHkgaW5pdCBmb3JrIGxpbmVzJyk7CiAK LQkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLAorCQlAbGluZXMg PSB0ZXN0X3BnX3dhbGR1bXAoJHBhdGgsCiAJCQknLS1yZWxhdGlvbicgPT4gIiRkZWZhdWx0X3Rz X29pZC8kcG9zdGdyZXNfZGJfb2lkLyRyZWxfdDFfb2lkIik7CiAJCWlzKGdyZXAoIS9yZWwgJGRl ZmF1bHRfdHNfb2lkXC8kcG9zdGdyZXNfZGJfb2lkXC8kcmVsX3QxX29pZC8sIEBsaW5lcyksCiAJ CQkwLCAnb25seSBsaW5lcyBmb3Igc2VsZWN0ZWQgcmVsYXRpb24nKTsKIAotCQlAbGluZXMgPSB0 ZXN0X3BnX3dhbGR1bXAoJy0tcGF0aCcgPT4gJHBhdGgsCisJCUBsaW5lcyA9IHRlc3RfcGdfd2Fs ZHVtcCgkcGF0aCwKIAkJCSctLXJlbGF0aW9uJyA9PiAiJGRlZmF1bHRfdHNfb2lkLyRwb3N0Z3Jl c19kYl9vaWQvJHJlbF9pMWFfb2lkIiwKIAkJCSctLWJsb2NrJyA9PiAxKTsKIAkJaXMoZ3JlcCgh L1xiYmxrIDFcYi8sIEBsaW5lcyksIDAsICdvbmx5IGxpbmVzIGZvciBzZWxlY3RlZCBibG9jaycp OworCisJCSMgQ2xlYW51cC4KKwkJdW5saW5rICRwYXRoIGlmICRzY2VuYXJpby0+eydpc19hcmNo aXZlJ307CiAJfQogfQogCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGJiNGUxYjM3MDA1 Li5kZTJhZDQyYmNhYiAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTEzOSw2ICsxMzks OCBAQCBBcmNoaXZlT3B0cwogQXJjaGl2ZVNodXRkb3duQ0IKIEFyY2hpdmVTdGFydHVwQ0IKIEFy Y2hpdmVTdHJlYW1TdGF0ZQorQXJjaGl2ZWRXQUxFbnRyeQorQXJjaGl2ZWRXQUxfaGFzaAogQXJj aGl2ZXJPdXRwdXQKIEFyY2hpdmVyU3RhZ2UKIEFycmF5QW5hbHl6ZUV4dHJhRGF0YQpAQCAtMzQ1 Myw2ICszNDU1LDcgQEAgYXN0cmVhbWVyX3JlY292ZXJ5X2luamVjdG9yCiBhc3RyZWFtZXJfdGFy X2FyY2hpdmVyCiBhc3RyZWFtZXJfdGFyX3BhcnNlcgogYXN0cmVhbWVyX3ZlcmlmeQorYXN0cmVh bWVyX3dhbGR1bXAKIGFzdHJlYW1lcl96c3RkX2ZyYW1lCiBhdXRoX3Bhc3N3b3JkX2hvb2tfdHlw CiBhdXRvdmFjX3RhYmxlCi0tIAoyLjQ3LjEKCg== --0000000000009bde480642e9577c Content-Type: application/x-patch; name="v5-0005-pg_waldump-Remove-the-restriction-on-the-order-of.patch" Content-Disposition: attachment; filename="v5-0005-pg_waldump-Remove-the-restriction-on-the-order-of.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhn6jltj4 RnJvbSA4NjYyMjVlMjBmMTM4OWI5NGUyNWM0MDMxNGI1ODMzMmQ3ZTBhNmM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgNiBOb3YgMjAyNSAxMzo0ODozMyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjUgNS84XSBwZ193 YWxkdW1wOiBSZW1vdmUgdGhlIHJlc3RyaWN0aW9uIG9uIHRoZSBvcmRlciBvZgogYXJjaGl2ZWQg V0FMIGZpbGVzLgoKV2l0aCBwcmV2aW91cyBwYXRjaCwgcGdfd2FsZHVtcCB3b3VsZCBzdG9wIGRl Y29kaW5nIGlmIFdBTCBmaWxlcyB3ZXJlCm5vdCBpbiB0aGUgcmVxdWlyZWQgc2VxdWVuY2UuIFdp dGggdGhpcyBwYXRjaCwgZGVjb2Rpbmcgd2lsbCBub3cKY29udGludWUuICBBbnkgV0FMIGZpbGUg dGhhdCBpcyBvdXQgb2Ygb3JkZXIgd2lsbCBiZSB3cml0dGVuIHRvIGEKdGVtcG9yYXJ5IGxvY2F0 aW9uLCBmcm9tIHdoaWNoIGl0IHdpbGwgYmUgcmVhZCBsYXRlci4gT25jZSBhIHRlbXBvcmFyeQpm aWxlIGhhcyBiZWVuIHJlYWQsIGl0IHdpbGwgYmUgcmVtb3ZlZC4KLS0tCiBzcmMvYmluL3BnX3dh bGR1bXAvYXJjaGl2ZV93YWxkdW1wLmMgfCAyMDcgKysrKysrKysrKysrKysrKysrKysrKysrKy0t CiBzcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jICAgICAgfCAgNDEgKysrKystCiBzcmMv YmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5oICAgICAgfCAgIDQgKwogc3JjL2Jpbi9wZ193YWxk dW1wL3QvMDAxX2Jhc2ljLnBsICAgIHwgICAzICstCiA0IGZpbGVzIGNoYW5nZWQsIDI0MyBpbnNl cnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbGR1 bXAvYXJjaGl2ZV93YWxkdW1wLmMgYi9zcmMvYmluL3BnX3dhbGR1bXAvYXJjaGl2ZV93YWxkdW1w LmMKaW5kZXggZTYxOWUyOWQ1ZDQuLjRhMjgwYjU4ZWMyIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X3dhbGR1bXAvYXJjaGl2ZV93YWxkdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ193YWxkdW1wL2FyY2hp dmVfd2FsZHVtcC5jCkBAIC0xNyw2ICsxNyw3IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAKICNp bmNsdWRlICJhY2Nlc3MveGxvZ19pbnRlcm5hbC5oIgorI2luY2x1ZGUgImNvbW1vbi9maWxlX3Bl cm0uaCIKICNpbmNsdWRlICJjb21tb24vaGFzaGZuLmgiCiAjaW5jbHVkZSAiY29tbW9uL2xvZ2dp bmcuaCIKICNpbmNsdWRlICJmZV91dGlscy9zaW1wbGVfbGlzdC5oIgpAQCAtMjcsNiArMjgsMTEg QEAKICAqLwogI2RlZmluZSBSRUFEX0NIVU5LX1NJWkUJCQkJKDEyOCAqIDEwMjQpCiAKKyNkZWZp bmUgVEVNUF9GSUxFX1BSRUZJWCAid2FsZHVtcC50bXAiCisKKy8qIFRlbXBvcmFyeSBleHBvcnRl ZCBXQUwgZmlsZSBkaXJlY3RvcnkgKi8KK3N0YXRpYyBjaGFyICpUbXBXYWxTZWdEaXIgPSBOVUxM OworCiAvKiBTdHJ1Y3R1cmUgZm9yIHN0b3JpbmcgdGhlIFdBTCBzZWdtZW50IGRhdGEgZnJvbSB0 aGUgYXJjaGl2ZSAqLwogdHlwZWRlZiBzdHJ1Y3QgQXJjaGl2ZWRXQUxFbnRyeQogewpAQCAtNjUs NiArNzEsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgYXN0cmVhbWVyX3dhbGR1bXAKIHN0YXRpYyBpbnQJ cmVhZF9hcmNoaXZlX2ZpbGUoWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbywgU2l6ZSBjb3Vu dCk7CiBzdGF0aWMgQXJjaGl2ZWRXQUxFbnRyeSAqZ2V0X2FyY2hpdmVfd2FsX2VudHJ5KFhMb2dT ZWdObyBzZWdubywKIAkJCQkJCQkJCQkJICAgWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbyk7 CitzdGF0aWMgdm9pZCBzZXR1cF90bXBzZWdfZGlyKGNvbnN0IGNoYXIgKndhbGRpcik7CitzdGF0 aWMgdm9pZCBjbGVhbnVwX3RtcHNlZ19kaXJfYXRleGl0KHZvaWQpOworCitzdGF0aWMgRklMRSAq cHJlcGFyZV90bXBfd3JpdGUoWExvZ1NlZ05vIHNlZ25vKTsKK3N0YXRpYyB2b2lkIHBlcmZvcm1f dG1wX3dyaXRlKFhMb2dTZWdObyBzZWdubywgU3RyaW5nSW5mbyBidWYsIEZJTEUgKmZpbGUpOwog CiBzdGF0aWMgYXN0cmVhbWVyICphc3RyZWFtZXJfd2FsZHVtcF9uZXcoWExvZ0R1bXBQcml2YXRl ICpwcml2YXRlSW5mbyk7CiBzdGF0aWMgdm9pZCBhc3RyZWFtZXJfd2FsZHVtcF9jb250ZW50KGFz dHJlYW1lciAqc3RyZWFtZXIsCkBAIC0xMjAsMTAgKzEzMSwxMSBAQCBpc19hcmNoaXZlX2ZpbGUo Y29uc3QgY2hhciAqZm5hbWUsIHBnX2NvbXByZXNzX2FsZ29yaXRobSAqY29tcHJlc3Npb24pCiB9 CiAKIC8qCi0gKiBJbml0aWFsaXplcyB0aGUgdGFyIGFyY2hpdmUgcmVhZGVyIHRvIHJlYWQgV0FM IGZpbGVzIGZyb20gdGhlIGFyY2hpdmUsCi0gKiBjcmVhdGVzIGEgaGFzaCB0YWJsZSB0byBzdG9y ZSB0aGVtLCBwZXJmb3JtcyBxdWljayBleGlzdGVuY2UgY2hlY2tzIGZvciBXQUwKLSAqIGVudHJp ZXMgaW4gdGhlIGFyY2hpdmUgYW5kIHJldHJpZXZlcyB0aGUgV0FMIHNlZ21lbnQgc2l6ZSwgYW5k IHNldHMgdXAKLSAqIGZpbHRlcmluZyBjcml0ZXJpYSBmb3IgcmVsZXZhbnQgZW50cmllcy4KKyAq IEluaXRpYWxpemVzIHRoZSB0YXIgYXJjaGl2ZSByZWFkZXIsIGNyZWF0ZXMgYSBoYXNoIHRhYmxl IGZvciBXQUwgZW50cmllcywKKyAqIGNoZWNrcyBmb3IgZXhpc3RpbmcgdmFsaWQgV0FMIHNlZ21l bnRzIGluIHRoZSBhcmNoaXZlIGZpbGUgYW5kIHJldHJpZXZlcyB0aGUKKyAqIHNlZ21lbnQgc2l6 ZSwgYW5kIHNldHMgdXAgZmlsdGVycyBmb3IgcmVsZXZhbnQgZW50cmllcy4gSXQgYWxzbyBjb25m aWd1cmVzIGEKKyAqIHRlbXBvcmFyeSBkaXJlY3RvcnkgZm9yIG91dC1vZi1vcmRlciBXQUwgZGF0 YSBhbmQgcmVnaXN0ZXJzIGFuIGV4aXQgY2FsbGJhY2sKKyAqIHRvIGNsZWFuIHVwIHRlbXBvcmFy eSBmaWxlcy4KICAqLwogdm9pZAogaW5pdF9hcmNoaXZlX3JlYWRlcihYTG9nRHVtcFByaXZhdGUg KnByaXZhdGVJbmZvLCBjb25zdCBjaGFyICp3YWxkaXIsCkBAIC0xOTQsNiArMjA2LDEzIEBAIGlu aXRfYXJjaGl2ZV9yZWFkZXIoWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbywgY29uc3QgY2hh ciAqd2FsZGlyLAogCSAqLwogCVhMQnl0ZVRvU2VnKHByaXZhdGVJbmZvLT5zdGFydHB0ciwgcHJp dmF0ZUluZm8tPnN0YXJ0U2VnTm8sIFdhbFNlZ1N6KTsKIAlYTEJ5dGVUb1NlZyhwcml2YXRlSW5m by0+ZW5kcHRyLCBwcml2YXRlSW5mby0+ZW5kU2VnTm8sIFdhbFNlZ1N6KTsKKworCS8qCisJICog U2V0dXAgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0byBzdG9yZSBXQUwgc2VnbWVudHMgYW5kIHNldCB1 cCBhbiBleGl0CisJICogY2FsbGJhY2sgdG8gcmVtb3ZlIGl0IHVwb24gY29tcGxldGlvbi4KKwkg Ki8KKwlzZXR1cF90bXBzZWdfZGlyKHdhbGRpcik7CisJYXRleGl0KGNsZWFudXBfdG1wc2VnX2Rp cl9hdGV4aXQpOwogfQogCiAvKgpAQCAtMzYyLDEzICszODEsMTYgQEAgcmVhZF9hcmNoaXZlX2Zp bGUoWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbywgU2l6ZSBjb3VudCkKIC8qCiAgKiBSZXR1 cm5zIHRoZSBhcmNoaXZlZCBXQUwgZW50cnkgZnJvbSB0aGUgaGFzaCB0YWJsZSBpZiBpdCBleGlz dHMuIE90aGVyd2lzZSwKICAqIGl0IGludm9rZXMgdGhlIHJvdXRpbmUgdG8gcmVhZCB0aGUgYXJj aGl2ZWQgZmlsZSBhbmQgcmV0cmlldmUgdGhlIGVudHJ5IGlmCi0gKiBpdCBpcyBub3QgYWxyZWFk eSBpbiBoYXNoIHRhYmxlLgorICogaXQgaXMgbm90IGFscmVhZHkgcHJlc2VudCBpbiB0aGUgaGFz aCB0YWJsZS4gSWYgdGhlIGFyY2hpdmUgc3RyZWFtZXIgaGFwcGVucworICogdG8gYmUgcmVhZGlu ZyBhIFdBTCBmcm9tIGFyY2hpdmUgZmlsZSB0aGF0IGlzIG5vdCBjdXJyZW50bHkgbmVlZGVkLCB0 aGF0IFdBTAorICogZGF0YSBpcyB3cml0dGVuIHRvIGEgdGVtcG9yYXJ5IGZpbGUuCiAgKi8KIHN0 YXRpYyBBcmNoaXZlZFdBTEVudHJ5ICoKIGdldF9hcmNoaXZlX3dhbF9lbnRyeShYTG9nU2VnTm8g c2Vnbm8sIFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUluZm8pCiB7CiAJQXJjaGl2ZWRXQUxFbnRy eSAqZW50cnkgPSBOVUxMOwogCWNoYXIJCWZuYW1lW01BWEZOQU1FTEVOXTsKKwlGSUxFCSAgICp3 cml0ZV9mcCA9IE5VTEw7CiAKIAkvKiBTZWFyY2ggaGFzaCB0YWJsZSAqLwogCWVudHJ5ID0gQXJj aGl2ZWRXQUxfbG9va3VwKEFyY2hpdmVkV0FMX0hUQUIsIHNlZ25vKTsKQEAgLTQxMSwxMSArNDMz LDMyIEBAIGdldF9hcmNoaXZlX3dhbF9lbnRyeShYTG9nU2VnTm8gc2Vnbm8sIFhMb2dEdW1wUHJp dmF0ZSAqcHJpdmF0ZUluZm8pCiAJCQljb250aW51ZTsKIAkJfQogCi0JCS8qIFdBTCBzZWdtZW50 cyBtdXN0IGJlIGFyY2hpdmVkIGluIG9yZGVyICovCi0JCXBnX2xvZ19lcnJvcigiV0FMIGZpbGVz IGFyZSBub3QgYXJjaGl2ZWQgaW4gc2VxdWVudGlhbCBvcmRlciIpOwotCQlwZ19sb2dfZXJyb3Jf ZGV0YWlsKCJFeHBlY3Rpbmcgc2VnbWVudCBudW1iZXIgIiBVSU5UNjRfRk9STUFUICIgYnV0IGZv dW5kICIgVUlOVDY0X0ZPUk1BVCAiLiIsCi0JCQkJCQkJc2Vnbm8sIGVudHJ5LT5zZWdubyk7Ci0J CWV4aXQoMSk7CisJCS8qCisJCSAqIEFyY2hpdmUgc3RyZWFtZXIgaXMgY3VycmVudGx5IHJlYWRp bmcgYSBmaWxlIHRoYXQgaXNuJ3QgdGhlIG9uZQorCQkgKiBhc2tlZCBmb3IsIGJ1dCBpdCdzIHJl cXVpcmVkIGZvciBhIGZ1dHVyZSBmZWF0dXJlLiBJdCBzaG91bGQgYmUKKwkJICogd3JpdHRlbiB0 byBhIHRlbXBvcmFyeSBsb2NhdGlvbiBmb3IgcmV0cmlldmFsIHdoZW4gbmVlZGVkLgorCQkgKi8K KworCQkvKiBDcmVhdGUgYSB0ZW1wb3JhcnkgZmlsZSBpZiBvbmUgZG9lcyBub3QgYWxyZWFkeSBl eGlzdCAqLworCQlpZiAoIWVudHJ5LT50bXBzZWdfZXhpc3RzKQorCQl7CisJCQl3cml0ZV9mcCA9 IHByZXBhcmVfdG1wX3dyaXRlKGVudHJ5LT5zZWdubyk7CisJCQllbnRyeS0+dG1wc2VnX2V4aXN0 cyA9IHRydWU7CisJCX0KKworCQkvKiBGbHVzaCBkYXRhIGZyb20gdGhlIGJ1ZmZlciB0byB0aGUg ZmlsZSAqLworCQlwZXJmb3JtX3RtcF93cml0ZShlbnRyeS0+c2Vnbm8sICZlbnRyeS0+YnVmLCB3 cml0ZV9mcCk7CisJCXJlc2V0U3RyaW5nSW5mbygmZW50cnktPmJ1Zik7CisKKwkJLyoKKwkJICog VGhlIGNoYW5nZSBpbiB0aGUgY3VycmVudCBzZWdtZW50IGVudHJ5IGluZGljYXRlcyB0aGF0IHRo ZSByZWFkaW5nCisJCSAqIG9mIHRoaXMgZmlsZSBoYXMgZW5kZWQuCisJCSAqLworCQlpZiAoZW50 cnkgIT0gcHJpdmF0ZUluZm8tPmN1cl93YWwgJiYgd3JpdGVfZnAgIT0gTlVMTCkKKwkJeworCQkJ ZmNsb3NlKHdyaXRlX2ZwKTsKKwkJCXdyaXRlX2ZwID0gTlVMTDsKKwkJfQogCX0KIAogCS8qIFJl cXVlc3RlZCBXQUwgc2VnbWVudCBub3QgZm91bmQgKi8KQEAgLTQyMyw2ICs0NjYsMTUwIEBAIGdl dF9hcmNoaXZlX3dhbF9lbnRyeShYTG9nU2VnTm8gc2Vnbm8sIFhMb2dEdW1wUHJpdmF0ZSAqcHJp dmF0ZUluZm8pCiAJcGdfZmF0YWwoImNvdWxkIG5vdCBmaW5kIGZpbGUgXCIlc1wiIGluIGFyY2hp dmUiLCBmbmFtZSk7CiB9CiAKKy8qCisgKiBTZXQgdXAgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHRv IHRlbXBvcmFyaWx5IHN0b3JlIFdBTCBzZWdtZW50cy4KKyAqLworc3RhdGljIHZvaWQKK3NldHVw X3RtcHNlZ19kaXIoY29uc3QgY2hhciAqd2FsZGlyKQoreworCS8qCisJICogVXNlIHRoZSBkaXJl Y3Rvcnkgc3BlY2lmaWVkIGJ5IHRoZSBURU1ESVIgZW52aXJvbm1lbnQgdmFyaWFibGUuIElmIGl0 J3MKKwkgKiBub3Qgc2V0LCB1c2UgdGhlIHByb3ZpZGVkIFdBTCBkaXJlY3RvcnkgdG8gZXh0cmFj dCBXQUwgZmlsZQorCSAqIHRlbXBvcmFyaWx5LgorCSAqLworCVRtcFdhbFNlZ0RpciA9IGdldGVu digiVE1QRElSIikgPworCQlwZ19zdHJkdXAoZ2V0ZW52KCJUTVBESVIiKSkgOiBwZ19zdHJkdXAo d2FsZGlyKTsKKwljYW5vbmljYWxpemVfcGF0aChUbXBXYWxTZWdEaXIpOworfQorCisvKgorICog UmVtb3ZlcyB0aGUgdGVtcG9yYXJpbHkgc3RvcmUgV0FMIHNlZ21lbnRzLCBpZiBhbnksIGF0IGV4 aXRpbmcuCisgKi8KK3N0YXRpYyB2b2lkCitjbGVhbnVwX3RtcHNlZ19kaXJfYXRleGl0KHZvaWQp Cit7CisJQXJjaGl2ZWRXQUxfaXRlcmF0b3IgaXQ7CisJQXJjaGl2ZWRXQUxFbnRyeSAqZW50cnk7 CisKKwlBcmNoaXZlZFdBTF9zdGFydF9pdGVyYXRlKEFyY2hpdmVkV0FMX0hUQUIsICZpdCk7CisJ d2hpbGUgKChlbnRyeSA9IEFyY2hpdmVkV0FMX2l0ZXJhdGUoQXJjaGl2ZWRXQUxfSFRBQiwgJml0 KSkgIT0gTlVMTCkKKwl7CisJCWlmIChlbnRyeS0+dG1wc2VnX2V4aXN0cykKKwkJeworCQkJcmVt b3ZlX3RtcF93YWxzZWcoZW50cnktPnNlZ25vLCBmYWxzZSk7CisJCQllbnRyeS0+dG1wc2VnX2V4 aXN0cyA9IGZhbHNlOworCQl9CisJfQorfQorCisvKgorICogR2VuZXJhdGUgdGhlIHRlbXBvcmFy eSBXQUwgZmlsZSBwYXRoLgorICoKKyAqIE5vdGUgdGhhdCB0aGUgY2FsbGVyIGlzIHJlc3BvbnNp YmxlIHRvIHBmcmVlIGl0LgorICovCitjaGFyICoKK2dldF90bXBfd2Fsc2VnX3BhdGgoWExvZ1Nl Z05vIHNlZ25vKQoreworCWNoYXIJICAgKmZwYXRoID0gKGNoYXIgKikgcGFsbG9jKE1BWFBHUEFU SCk7CisKKwlzbnByaW50ZihmcGF0aCwgTUFYUEdQQVRILCAiJXMvJXMuJTA4WCUwOFgiLAorCQkJ IFRtcFdhbFNlZ0RpciwKKwkJCSBURU1QX0ZJTEVfUFJFRklYLAorCQkJICh1aW50MzIpIChzZWdu byAvIFhMb2dTZWdtZW50c1BlclhMb2dJZChXYWxTZWdTeikpLAorCQkJICh1aW50MzIpIChzZWdu byAlIFhMb2dTZWdtZW50c1BlclhMb2dJZChXYWxTZWdTeikpKTsKKworCXJldHVybiBmcGF0aDsK K30KKworLyoKKyAqIFJvdXRpbmUgdG8gY2hlY2sgd2hldGhlciBhIHRlbXBvcmFyeSBmaWxlIGV4 aXN0cyBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgV0FMCisgKiBzZWdtZW50IG51bWJlci4KKyAqLwor Ym9vbAordG1wX3dhbHNlZ19leGlzdHMoWExvZ1NlZ05vIHNlZ25vKQoreworCUFyY2hpdmVkV0FM RW50cnkgKmVudHJ5OworCisJZW50cnkgPSBBcmNoaXZlZFdBTF9sb29rdXAoQXJjaGl2ZWRXQUxf SFRBQiwgc2Vnbm8pOworCisJaWYgKGVudHJ5ID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKwor CXJldHVybiBlbnRyeS0+dG1wc2VnX2V4aXN0czsKK30KKworLyoKKyAqIENyZWF0ZSBhbiBlbXB0 eSBwbGFjZWhvbGRlciBmaWxlIGFuZCByZXR1cm4gaXRzIGhhbmRsZS4KKyAqLworc3RhdGljIEZJ TEUgKgorcHJlcGFyZV90bXBfd3JpdGUoWExvZ1NlZ05vIHNlZ25vKQoreworCUZJTEUJICAgKmZp bGU7CisJY2hhcgkgICAqZnBhdGg7CisKKwlmcGF0aCA9IGdldF90bXBfd2Fsc2VnX3BhdGgoc2Vn bm8pOworCisJLyogQ3JlYXRlIGFuIGVtcHR5IHBsYWNlaG9sZGVyICovCisJZmlsZSA9IGZvcGVu KGZwYXRoLCBQR19CSU5BUllfVyk7CisJaWYgKGZpbGUgPT0gTlVMTCkKKwkJcGdfZmF0YWwoImNv dWxkIG5vdCBjcmVhdGUgZmlsZSBcIiVzXCI6ICVtIiwgZnBhdGgpOworCisjaWZuZGVmIFdJTjMy CisJaWYgKGNobW9kKGZwYXRoLCBwZ19maWxlX2NyZWF0ZV9tb2RlKSkKKwkJcGdfZmF0YWwoImNv dWxkIG5vdCBzZXQgcGVybWlzc2lvbnMgb24gZmlsZSBcIiVzXCI6ICVtIiwKKwkJCQkgZnBhdGgp OworI2VuZGlmCisKKwlwZ19sb2dfZGVidWcoInRlbXBvcmFyaWx5IGV4cG9ydGluZyBmaWxlIFwi JXNcIiIsIGZwYXRoKTsKKwlwZnJlZShmcGF0aCk7CisKKwlyZXR1cm4gZmlsZTsKK30KKworLyoK KyAqIFdyaXRlIGJ1ZmZlciBkYXRhIHRvIHRoZSBnaXZlbiBmaWxlIGhhbmRsZS4KKyAqLworc3Rh dGljIHZvaWQKK3BlcmZvcm1fdG1wX3dyaXRlKFhMb2dTZWdObyBzZWdubywgU3RyaW5nSW5mbyBi dWYsIEZJTEUgKmZpbGUpCit7CisJQXNzZXJ0KGZpbGUpOworCisJZXJybm8gPSAwOworCWlmIChi dWYtPmxlbiA+IDAgJiYgZndyaXRlKGJ1Zi0+ZGF0YSwgYnVmLT5sZW4sIDEsIGZpbGUpICE9IDEp CisJeworCQkvKgorCQkgKiBJZiB3cml0ZSBkaWRuJ3Qgc2V0IGVycm5vLCBhc3N1bWUgcHJvYmxl bSBpcyBubyBkaXNrIHNwYWNlCisJCSAqLworCQlpZiAoZXJybm8gPT0gMCkKKwkJCWVycm5vID0g RU5PU1BDOworCQlwZ19mYXRhbCgiY291bGQgbm90IHdyaXRlIHRvIGZpbGUgXCIlc1wiOiAlbSIs CisJCQkJIGdldF90bXBfd2Fsc2VnX3BhdGgoc2Vnbm8pKTsKKwl9Cit9CisKKy8qCisgKiBSZW1v dmUgdGVtcG9yYXJ5IGZpbGUKKyAqLwordm9pZAorcmVtb3ZlX3RtcF93YWxzZWcoWExvZ1NlZ05v IHNlZ25vLCBib29sIHVwZGF0ZV9lbnRyeSkKK3sKKwljaGFyCSAgICpmcGF0aCA9IGdldF90bXBf d2Fsc2VnX3BhdGgoc2Vnbm8pOworCisJaWYgKHVubGluayhmcGF0aCkgPT0gMCkKKwkJcGdfbG9n X2RlYnVnKCJyZW1vdmVkIGZpbGUgXCIlc1wiIiwgZnBhdGgpOworCXBmcmVlKGZwYXRoKTsKKwor CS8qIFVwZGF0ZSBlbnRyeSBpZiByZXF1ZXN0ZWQgKi8KKwlpZiAodXBkYXRlX2VudHJ5KQorCXsK KwkJQXJjaGl2ZWRXQUxFbnRyeSAqZW50cnk7CisKKwkJZW50cnkgPSBBcmNoaXZlZFdBTF9sb29r dXAoQXJjaGl2ZWRXQUxfSFRBQiwgc2Vnbm8pOworCQlBc3NlcnQoZW50cnkgIT0gTlVMTCk7CisJ CWVudHJ5LT50bXBzZWdfZXhpc3RzID0gZmFsc2U7CisJfQorfQorCiAvKgogICogQ3JlYXRlIGFu IGFzdHJlYW1lciB0aGF0IGNhbiByZWFkIFdBTCBmcm9tIHRhciBmaWxlLgogICovCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jIGIvc3JjL2Jpbi9wZ193YWxkdW1w L3BnX3dhbGR1bXAuYwppbmRleCA4YTgzOGYxNmJhMi4uOGFjYjc4MDk2NDUgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ193YWxkdW1w L3BnX3dhbGR1bXAuYwpAQCAtNDY2LDExICs0NjYsNTAgQEAgVGFyV0FMRHVtcFJlYWRQYWdlKFhM b2dSZWFkZXJTdGF0ZSAqc3RhdGUsIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwgaW50IHJlcUxl biwKIHsKIAlYTG9nRHVtcFByaXZhdGUgKnByaXZhdGUgPSBzdGF0ZS0+cHJpdmF0ZV9kYXRhOwog CWludAkJCWNvdW50ID0gcmVxdWlyZWRfcmVhZF9sZW4ocHJpdmF0ZSwgdGFyZ2V0UGFnZVB0ciwg cmVxTGVuKTsKKwlYTG9nU2VnTm8JbmV4dFNlZ05vOwogCiAJaWYgKHByaXZhdGUtPmVuZHB0cl9y ZWFjaGVkKQogCQlyZXR1cm4gLTE7CiAKLQkvKiBSZWFkIHRoZSBXQUwgcGFnZSBmcm9tIHRoZSBh cmNoaXZlIHN0cmVhbWVyICovCisJLyoKKwkgKiBJZiB0aGUgdGFyZ2V0IHBhZ2UgaXMgaW4gYSBk aWZmZXJlbnQgc2VnbWVudCwgZmlyc3QgY2hlY2sgZm9yIHRoZSBXQUwKKwkgKiBzZWdtZW50J3Mg cGh5c2ljYWwgZXhpc3RlbmNlIGluIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LgorCSAqLworCW5l eHRTZWdObyA9IHN0YXRlLT5zZWcud3Nfc2Vnbm87CisJaWYgKCFYTEJ5dGVJblNlZyh0YXJnZXRQ YWdlUHRyLCBuZXh0U2VnTm8sIFdhbFNlZ1N6KSkKKwl7CisJCWlmIChzdGF0ZS0+c2VnLndzX2Zp bGUgPj0gMCkKKwkJeworCQkJY2xvc2Uoc3RhdGUtPnNlZy53c19maWxlKTsKKwkJCXN0YXRlLT5z ZWcud3NfZmlsZSA9IC0xOworCisJCQkvKiBSZW1vdmUgdGhpcyBmaWxlLCBhcyBpdCBpcyBubyBs b25nZXIgbmVlZGVkLiAqLworCQkJcmVtb3ZlX3RtcF93YWxzZWcobmV4dFNlZ05vLCB0cnVlKTsK KwkJfQorCisJCVhMQnl0ZVRvU2VnKHRhcmdldFBhZ2VQdHIsIG5leHRTZWdObywgV2FsU2VnU3op OworCQlzdGF0ZS0+c2VnLndzX3RsaSA9IHByaXZhdGUtPnRpbWVsaW5lOworCQlzdGF0ZS0+c2Vn LndzX3NlZ25vID0gbmV4dFNlZ05vOworCisJCS8qCisJCSAqIElmIHRoZSBuZXh0IHNlZ21lbnQg ZXhpc3RzLCBvcGVuIGl0IGFuZCBjb250aW51ZSByZWFkaW5nIGZyb20gdGhlcmUKKwkJICovCisJ CWlmICh0bXBfd2Fsc2VnX2V4aXN0cyhuZXh0U2VnTm8pKQorCQl7CisJCQljaGFyCSAgICpmcGF0 aDsKKworCQkJZnBhdGggPSBnZXRfdG1wX3dhbHNlZ19wYXRoKG5leHRTZWdObyk7CisJCQlzdGF0 ZS0+c2VnLndzX2ZpbGUgPSBvcGVuKGZwYXRoLCBPX1JET05MWSB8IFBHX0JJTkFSWSwgMCk7CisJ CQlwZnJlZShmcGF0aCk7CisJCX0KKwl9CisKKwkvKiBDb250aW51ZSByZWFkaW5nIGZyb20gdGhl IG9wZW4gV0FMIHNlZ21lbnQsIGlmIGFueSAqLworCWlmIChzdGF0ZS0+c2VnLndzX2ZpbGUgPj0g MCkKKwkJcmV0dXJuIFdBTER1bXBSZWFkUGFnZShzdGF0ZSwgdGFyZ2V0UGFnZVB0ciwgY291bnQs IHRhcmdldFB0ciwKKwkJCQkJCQkgICByZWFkQnVmZik7CisKKwkvKiBPdGhlcndpc2UsIHJlYWQg dGhlIFdBTCBwYWdlIGZyb20gdGhlIGFyY2hpdmUgc3RyZWFtZXIgKi8KIAlyZXR1cm4gcmVhZF9h cmNoaXZlX3dhbF9wYWdlKHByaXZhdGUsIHRhcmdldFBhZ2VQdHIsIGNvdW50LCByZWFkQnVmZik7 CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmggYi9zcmMv YmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5oCmluZGV4IDU0NzU4YzM1NDhhLi41YzFmYjFlMDgw YSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaAorKysgYi9zcmMv YmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5oCkBAIC01OCw0ICs1OCw4IEBAIGV4dGVybiBpbnQJ cmVhZF9hcmNoaXZlX3dhbF9wYWdlKFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUluZm8sCiAJCQkJ CQkJCSAgWExvZ1JlY1B0ciB0YXJnZXRQYWdlUHRyLAogCQkJCQkJCQkgIFNpemUgY291bnQsIGNo YXIgKnJlYWRCdWZmKTsKIAorZXh0ZXJuIGNoYXIgKmdldF90bXBfd2Fsc2VnX3BhdGgoWExvZ1Nl Z05vIHNlZ25vKTsKK2V4dGVybiBib29sIHRtcF93YWxzZWdfZXhpc3RzKFhMb2dTZWdObyBzZWdu byk7CitleHRlcm4gdm9pZCByZW1vdmVfdG1wX3dhbHNlZyhYTG9nU2VnTm8gc2Vnbm8sIGJvb2wg dXBkYXRlX2VudHJ5KTsKKwogI2VuZGlmCQkJCQkJCS8qIGVuZCBvZiBQR19XQUxEVU1QX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbCBiL3NyYy9iaW4v cGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbAppbmRleCA0NDMxMjZhOWNlNi4uZDVmYTFmNmQyOGQg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbAorKysgYi9zcmMv YmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMucGwKQEAgLTcsNiArNyw3IEBAIHVzZSBDd2Q7CiB1 c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKIHVzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGls czsKIHVzZSBUZXN0OjpNb3JlOwordXNlIExpc3Q6OlV0aWwgcXcoc2h1ZmZsZSk7CiAKIG15ICR0 YXIgPSAkRU5We1RBUn07CiAKQEAgLTI3Miw3ICsyNzMsNyBAQCBzdWIgZ2VuZXJhdGVfYXJjaGl2 ZQogCX0KIAljbG9zZWRpciAkZGg7CiAKLQlAZmlsZXMgPSBzb3J0IEBmaWxlczsKKwlAZmlsZXMg PSBzaHVmZmxlIEBmaWxlczsKIAogCSMgbW92ZSBpbnRvIHRoZSBXQUwgZGlyZWN0b3J5IGJlZm9y ZSBhcmNoaXZpbmcgZmlsZXMKIAlteSAkY3dkID0gZ2V0Y3dkOwotLSAKMi40Ny4xCgo= --0000000000009bde480642e9577c Content-Type: application/x-patch; name="v5-0006-pg_verifybackup-Delay-default-WAL-directory-prepa.patch" Content-Disposition: attachment; filename="v5-0006-pg_verifybackup-Delay-default-WAL-directory-prepa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhn6jqgj5 RnJvbSBmNzUwZjVmZWNlODdhOWY2NDIyMjUwNjVhNTQwYWQ0YTJkMjA5NDk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgMTYgSnVsIDIwMjUgMTQ6NDc6NDMgKzA1MzAKU3ViamVjdDogW1BBVENIIHY1IDYvOF0gcGdf dmVyaWZ5YmFja3VwOiBEZWxheSBkZWZhdWx0IFdBTCBkaXJlY3RvcnkKIHByZXBhcmF0aW9uLgoK V2UgYXJlIG5vdCBzdXJlIHdoZXRoZXIgdG8gcGFyc2UgV0FMIGZyb20gYSBkaXJlY3Rvcnkgb3Ig YW4gYXJjaGl2ZQp1bnRpbCB0aGUgYmFja3VwIGZvcm1hdCBpcyBrbm93bi4gVGhlcmVmb3JlLCB3 ZSBkZWxheSBwcmVwYXJpbmcgdGhlCmRlZmF1bHQgV0FMIGRpcmVjdG9yeSB1bnRpbCB0aGUgcG9p bnQgb2YgcGFyc2luZy4gVGhpcyBkZWxheSBpcwpoYXJtbGVzcywgYXMgdGhlIFdBTCBkaXJlY3Rv cnkgaXMgbm90IHVzZWQgZWxzZXdoZXJlLgotLS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Bn X3ZlcmlmeWJhY2t1cC5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1 cC9wZ192ZXJpZnliYWNrdXAuYyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJh Y2t1cC5jCmluZGV4IDVlNmMxM2JiOTIxLi4zMWViYzE1ODFmYiAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKKysrIGIvc3JjL2Jpbi9wZ192ZXJp ZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKQEAgLTI4NSwxMCArMjg1LDYgQEAgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAJCW1hbmlmZXN0X3BhdGggPSBwc3ByaW50ZigiJXMvYmFja3Vw X21hbmlmZXN0IiwKIAkJCQkJCQkJIGNvbnRleHQuYmFja3VwX2RpcmVjdG9yeSk7CiAKLQkvKiBC eSBkZWZhdWx0LCBsb29rIGZvciB0aGUgV0FMIGluIHRoZSBiYWNrdXAgZGlyZWN0b3J5LCB0b28u ICovCi0JaWYgKHdhbF9kaXJlY3RvcnkgPT0gTlVMTCkKLQkJd2FsX2RpcmVjdG9yeSA9IHBzcHJp bnRmKCIlcy9wZ193YWwiLCBjb250ZXh0LmJhY2t1cF9kaXJlY3RvcnkpOwotCiAJLyoKIAkgKiBU cnkgdG8gcmVhZCB0aGUgbWFuaWZlc3QuIFdlIHRyZWF0IGFueSBlcnJvcnMgZW5jb3VudGVyZWQg d2hpbGUgcGFyc2luZwogCSAqIHRoZSBtYW5pZmVzdCBhcyBmYXRhbDsgdGhlcmUgZG9lc24ndCBz ZWVtIHRvIGJlIG11Y2ggcG9pbnQgaW4gdHJ5aW5nIHRvCkBAIC0zNjgsNiArMzY0LDEwIEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCWlmIChjb250ZXh0LmZvcm1hdCA9PSAncCcgJiYg IWNvbnRleHQuc2tpcF9jaGVja3N1bXMpCiAJCXZlcmlmeV9iYWNrdXBfY2hlY2tzdW1zKCZjb250 ZXh0KTsKIAorCS8qIEJ5IGRlZmF1bHQsIGxvb2sgZm9yIHRoZSBXQUwgaW4gdGhlIGJhY2t1cCBk aXJlY3RvcnksIHRvby4gKi8KKwlpZiAod2FsX2RpcmVjdG9yeSA9PSBOVUxMKQorCQl3YWxfZGly ZWN0b3J5ID0gcHNwcmludGYoIiVzL3BnX3dhbCIsIGNvbnRleHQuYmFja3VwX2RpcmVjdG9yeSk7 CisKIAkvKgogCSAqIFRyeSB0byBwYXJzZSB0aGUgcmVxdWlyZWQgcmFuZ2VzIG9mIFdBTCByZWNv cmRzLCB1bmxlc3Mgd2Ugd2VyZSB0b2xkCiAJICogbm90IHRvIGRvIHNvLgotLSAKMi40Ny4xCgo= --0000000000009bde480642e9577c Content-Type: application/x-patch; name="v5-0007-pg_verifybackup-Rename-the-wal-directory-switch-t.patch" Content-Disposition: attachment; filename="v5-0007-pg_verifybackup-Rename-the-wal-directory-switch-t.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhn6juqj6 RnJvbSAzMzI5OWRhZjE3MTM3YmRlZDc1NmFlZGJlMTIyMjMyY2M0ZWNjMjQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMjQgSnVsIDIwMjUgMTY6Mzc6NDMgKzA1MzAKU3ViamVjdDogW1BBVENIIHY1IDcvOF0gcGdf dmVyaWZ5YmFja3VwOiBSZW5hbWUgdGhlIHdhbC1kaXJlY3Rvcnkgc3dpdGNoIHRvCiB3YWwtcGF0 aAoKV2l0aCBwcmV2aW91cyBwYXRjaGVzIHRvIHBnX3dhbGR1bXAgY2FuIG5vdyBkZWNvZGUgV0FM IGRpcmVjdGx5IGZyb20KdGFyIGZpbGVzLiAgVGhpcyBtZWFucyB5b3UnbGwgYmUgYWJsZSB0byBz cGVjaWZ5IGEgdGFyIGFyY2hpdmUgcGF0aAppbnN0ZWFkIG9mIGEgdHJhZGl0aW9uYWwgV0FMIGRp cmVjdG9yeS4KClRvIGtlZXAgdGhpbmdzIGNvbnNpc3RlbnQgYW5kIG1vcmUgdmVyc2F0aWxlLCB3 ZSBzaG91bGQgYWxzbwpnZW5lcmFsaXplIHRoZSBpbnB1dCBzd2l0Y2ggZm9yIHBnX3ZlcmlmeWJh Y2t1cC4gSXQgc2hvdWxkIGFjY2VwdAplaXRoZXIgYSBkaXJlY3Rvcnkgb3IgYSB0YXIgZmlsZSBw YXRoIHRoYXQgY29udGFpbnMgV0FMcy4gVGhpcyBjaGFuZ2UKd2lsbCBhbHNvIGFsaWduaW5nIGl0 IHdpdGggdGhlIGV4aXN0aW5nIG1hbmlmZXN0LXBhdGggc3dpdGNoIG5hbWluZy4KLS0tCiBkb2Mv c3JjL3NnbWwvcmVmL3BnX3ZlcmlmeWJhY2t1cC5zZ21sICAgICB8ICAyICstCiBzcmMvYmluL3Bn X3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYyB8IDIyICsrKysrKysrKysrLS0tLS0tLS0t LS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2RlLnBvICAgICAgICAgIHwgIDQgKystLQog c3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZWwucG8gICAgICAgICAgfCAgNCArKy0tCiBzcmMv YmluL3BnX3ZlcmlmeWJhY2t1cC9wby9lcy5wbyAgICAgICAgICB8ICA0ICsrLS0KIHNyYy9iaW4v cGdfdmVyaWZ5YmFja3VwL3BvL2ZyLnBvICAgICAgICAgIHwgIDQgKystLQogc3JjL2Jpbi9wZ192 ZXJpZnliYWNrdXAvcG8vaXQucG8gICAgICAgICAgfCAgNCArKy0tCiBzcmMvYmluL3BnX3Zlcmlm eWJhY2t1cC9wby9qYS5wbyAgICAgICAgICB8ICA0ICsrLS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFj a3VwL3BvL2thLnBvICAgICAgICAgIHwgIDQgKystLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAv cG8va28ucG8gICAgICAgICAgfCAgNCArKy0tCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9y dS5wbyAgICAgICAgICB8ICA0ICsrLS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL3N2LnBv ICAgICAgICAgIHwgIDQgKystLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vdWsucG8gICAg ICAgICAgfCAgNCArKy0tCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby96aF9DTi5wbyAgICAg ICB8ICA0ICsrLS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL3poX1RXLnBvICAgICAgIHwg IDQgKystLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDdfd2FsLnBsICAgICAgfCAgNCAr Ky0tCiAxNiBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3ZlcmlmeWJhY2t1cC5zZ21sIGIvZG9j L3NyYy9zZ21sL3JlZi9wZ192ZXJpZnliYWNrdXAuc2dtbAppbmRleCA2MWMxMjk3NWU0YS4uZTli OGJmZDUxYjEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3VwLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ192ZXJpZnliYWNrdXAuc2dtbApAQCAtMjYxLDcg KzI2MSw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgICAgIDx2YXJsaXN0ZW50cnk+ CiAgICAgICA8dGVybT48b3B0aW9uPi13IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w YXRoPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+Ci0gICAgICA8dGVybT48b3B0aW9uPi0t d2FsLWRpcmVjdG9yeT08cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0aDwvcmVwbGFj ZWFibGU+PC9vcHRpb24+PC90ZXJtPgorICAgICAgPHRlcm0+PG9wdGlvbj4tLXdhbC1wYXRoPTxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXRoPC9yZXBsYWNlYWJsZT48L29wdGlvbj48 L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIFRyeSB0byBw YXJzZSBXQUwgZmlsZXMgc3RvcmVkIGluIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5LCByYXRoZXIg dGhhbgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3Vw LmMgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYwppbmRleCAzMWVi YzE1ODFmYi4uMWVlNDAwMTk5ZGEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3BnX3ZlcmlmeWJhY2t1cC5jCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3Zlcmlm eWJhY2t1cC5jCkBAIC05Myw3ICs5Myw3IEBAIHN0YXRpYyB2b2lkIHZlcmlmeV9maWxlX2NoZWNr c3VtKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsCiAJCQkJCQkJCSB1aW50OCAqYnVmZmVyKTsK IHN0YXRpYyB2b2lkIHBhcnNlX3JlcXVpcmVkX3dhbCh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0 LAogCQkJCQkJCSAgIGNoYXIgKnBnX3dhbGR1bXBfcGF0aCwKLQkJCQkJCQkgICBjaGFyICp3YWxf ZGlyZWN0b3J5KTsKKwkJCQkJCQkgICBjaGFyICp3YWxfcGF0aCk7CiBzdGF0aWMgYXN0cmVhbWVy ICpjcmVhdGVfYXJjaGl2ZV92ZXJpZmllcih2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LAogCQkJ CQkJCQkJCSAgY2hhciAqYXJjaGl2ZV9uYW1lLAogCQkJCQkJCQkJCSAgT2lkIHRibHNwY19vaWQs CkBAIC0xMjYsNyArMTI2LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXsicHJv Z3Jlc3MiLCBub19hcmd1bWVudCwgTlVMTCwgJ1AnfSwKIAkJeyJxdWlldCIsIG5vX2FyZ3VtZW50 LCBOVUxMLCAncSd9LAogCQl7InNraXAtY2hlY2tzdW1zIiwgbm9fYXJndW1lbnQsIE5VTEwsICdz J30sCi0JCXsid2FsLWRpcmVjdG9yeSIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAndyd9LAor CQl7IndhbC1wYXRoIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICd3J30sCiAJCXtOVUxMLCAw LCBOVUxMLCAwfQogCX07CiAKQEAgLTEzNSw3ICsxMzUsNyBAQCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikKIAljaGFyCSAgICptYW5pZmVzdF9wYXRoID0gTlVMTDsKIAlib29sCQlub19wYXJz ZV93YWwgPSBmYWxzZTsKIAlib29sCQlxdWlldCA9IGZhbHNlOwotCWNoYXIJICAgKndhbF9kaXJl Y3RvcnkgPSBOVUxMOworCWNoYXIJICAgKndhbF9wYXRoID0gTlVMTDsKIAljaGFyCSAgICpwZ193 YWxkdW1wX3BhdGggPSBOVUxMOwogCURJUgkJICAgKmRpcjsKIApAQCAtMjIxLDggKzIyMSw4IEBA IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJCWNvbnRleHQuc2tpcF9jaGVja3N1bXMg PSB0cnVlOwogCQkJCWJyZWFrOwogCQkJY2FzZSAndyc6Ci0JCQkJd2FsX2RpcmVjdG9yeSA9IHBz dHJkdXAob3B0YXJnKTsKLQkJCQljYW5vbmljYWxpemVfcGF0aCh3YWxfZGlyZWN0b3J5KTsKKwkJ CQl3YWxfcGF0aCA9IHBzdHJkdXAob3B0YXJnKTsKKwkJCQljYW5vbmljYWxpemVfcGF0aCh3YWxf cGF0aCk7CiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIGdldG9wdF9sb25nIGFscmVh ZHkgZW1pdHRlZCBhIGNvbXBsYWludCAqLwpAQCAtMzY1LDE1ICszNjUsMTUgQEAgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAJCXZlcmlmeV9iYWNrdXBfY2hlY2tzdW1zKCZjb250ZXh0KTsK IAogCS8qIEJ5IGRlZmF1bHQsIGxvb2sgZm9yIHRoZSBXQUwgaW4gdGhlIGJhY2t1cCBkaXJlY3Rv cnksIHRvby4gKi8KLQlpZiAod2FsX2RpcmVjdG9yeSA9PSBOVUxMKQotCQl3YWxfZGlyZWN0b3J5 ID0gcHNwcmludGYoIiVzL3BnX3dhbCIsIGNvbnRleHQuYmFja3VwX2RpcmVjdG9yeSk7CisJaWYg KHdhbF9wYXRoID09IE5VTEwpCisJCXdhbF9wYXRoID0gcHNwcmludGYoIiVzL3BnX3dhbCIsIGNv bnRleHQuYmFja3VwX2RpcmVjdG9yeSk7CiAKIAkvKgogCSAqIFRyeSB0byBwYXJzZSB0aGUgcmVx dWlyZWQgcmFuZ2VzIG9mIFdBTCByZWNvcmRzLCB1bmxlc3Mgd2Ugd2VyZSB0b2xkCiAJICogbm90 IHRvIGRvIHNvLgogCSAqLwogCWlmICghbm9fcGFyc2Vfd2FsKQotCQlwYXJzZV9yZXF1aXJlZF93 YWwoJmNvbnRleHQsIHBnX3dhbGR1bXBfcGF0aCwgd2FsX2RpcmVjdG9yeSk7CisJCXBhcnNlX3Jl cXVpcmVkX3dhbCgmY29udGV4dCwgcGdfd2FsZHVtcF9wYXRoLCB3YWxfcGF0aCk7CiAKIAkvKgog CSAqIElmIGV2ZXJ5dGhpbmcgbG9va3MgT0ssIHRlbGwgdGhlIHVzZXIgdGhpcywgdW5sZXNzIHdl IHdlcmUgYXNrZWQgdG8KQEAgLTExOTgsNyArMTE5OCw3IEBAIHZlcmlmeV9maWxlX2NoZWNrc3Vt KHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsIG1hbmlmZXN0X2ZpbGUgKm0sCiAgKi8KIHN0YXRp YyB2b2lkCiBwYXJzZV9yZXF1aXJlZF93YWwodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgY2hh ciAqcGdfd2FsZHVtcF9wYXRoLAotCQkJCSAgIGNoYXIgKndhbF9kaXJlY3RvcnkpCisJCQkJICAg Y2hhciAqd2FsX3BhdGgpCiB7CiAJbWFuaWZlc3RfZGF0YSAqbWFuaWZlc3QgPSBjb250ZXh0LT5t YW5pZmVzdDsKIAltYW5pZmVzdF93YWxfcmFuZ2UgKnRoaXNfd2FsX3JhbmdlID0gbWFuaWZlc3Qt PmZpcnN0X3dhbF9yYW5nZTsKQEAgLTEyMDgsNyArMTIwOCw3IEBAIHBhcnNlX3JlcXVpcmVkX3dh bCh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBjaGFyICpwZ193YWxkdW1wX3BhdGgsCiAJCWNo YXIJICAgKnBnX3dhbGR1bXBfY21kOwogCiAJCXBnX3dhbGR1bXBfY21kID0gcHNwcmludGYoIlwi JXNcIiAtLXF1aWV0IC0tcGF0aD1cIiVzXCIgLS10aW1lbGluZT0ldSAtLXN0YXJ0PSVYLyUwOFgg LS1lbmQ9JVgvJTA4WFxuIiwKLQkJCQkJCQkJICBwZ193YWxkdW1wX3BhdGgsIHdhbF9kaXJlY3Rv cnksIHRoaXNfd2FsX3JhbmdlLT50bGksCisJCQkJCQkJCSAgcGdfd2FsZHVtcF9wYXRoLCB3YWxf cGF0aCwgdGhpc193YWxfcmFuZ2UtPnRsaSwKIAkJCQkJCQkJICBMU05fRk9STUFUX0FSR1ModGhp c193YWxfcmFuZ2UtPnN0YXJ0X2xzbiksCiAJCQkJCQkJCSAgTFNOX0ZPUk1BVF9BUkdTKHRoaXNf d2FsX3JhbmdlLT5lbmRfbHNuKSk7CiAJCWZmbHVzaChOVUxMKTsKQEAgLTEzNzYsNyArMTM3Niw3 IEBAIHVzYWdlKHZvaWQpCiAJcHJpbnRmKF8oIiAgLVAsIC0tcHJvZ3Jlc3MgICAgICAgICAgICAg IHNob3cgcHJvZ3Jlc3MgaW5mb3JtYXRpb25cbiIpKTsKIAlwcmludGYoXygiICAtcSwgLS1xdWll dCAgICAgICAgICAgICAgICAgZG8gbm90IHByaW50IGFueSBvdXRwdXQsIGV4Y2VwdCBmb3IgZXJy b3JzXG4iKSk7CiAJcHJpbnRmKF8oIiAgLXMsIC0tc2tpcC1jaGVja3N1bXMgICAgICAgIHNraXAg Y2hlY2tzdW0gdmVyaWZpY2F0aW9uXG4iKSk7Ci0JcHJpbnRmKF8oIiAgLXcsIC0td2FsLWRpcmVj dG9yeT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iKSk7CisJcHJp bnRmKF8oIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICAgICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBm b3IgV0FMIGZpbGVzXG4iKSk7CiAJcHJpbnRmKF8oIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAg ICAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uLCB0aGVuIGV4aXRcbiIpKTsKIAlwcmludGYo XygiICAtPywgLS1oZWxwICAgICAgICAgICAgICAgICAgc2hvdyB0aGlzIGhlbHAsIHRoZW4gZXhp dFxuIikpOwogCXByaW50ZihfKCJcblJlcG9ydCBidWdzIHRvIDwlcz4uXG4iKSwgUEFDS0FHRV9C VUdSRVBPUlQpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZGUucG8g Yi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9kZS5wbwppbmRleCBhOWUyNDkzMTEwMC4uOWI1 Y2Q1ODk4Y2YgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2RlLnBvCisr KyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2RlLnBvCkBAIC03ODUsOCArNzg1LDggQEAg bXNnc3RyICIgIC1zLCAtLXNraXAtY2hlY2tzdW1zICAgICAgICDDnGJlcnByw7xmdW5nIGRlciBQ csO8ZnN1bW1lbiDDvGJlcnNwcmluZ2UKIAogIzogcGdfdmVyaWZ5YmFja3VwLmM6MTM3OQogIywg Yy1mb3JtYXQKLW1zZ2lkICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9UEFUSCAgICB1c2Ugc3BlY2lm aWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgotbXNnc3RyICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9 UEZBRCAgICBhbmdlZ2ViZW5lbiBQZmFkIGbDvHIgV0FMLURhdGVpZW4gdmVyd2VuZGVuXG4iCitt c2dpZCAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FM IGZpbGVzXG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBhdGg9UEZBRCAgICBhbmdlZ2ViZW5lbiBQ ZmFkIGbDvHIgV0FMLURhdGVpZW4gdmVyd2VuZGVuXG4iCiAKICM6IHBnX3ZlcmlmeWJhY2t1cC5j OjEzODAKICMsIGMtZm9ybWF0CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9w by9lbC5wbyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2VsLnBvCmluZGV4IDNlM2YyMGM2 N2M1Li44MTQ0MmY1MWMxNyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8v ZWwucG8KKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZWwucG8KQEAgLTQ5NCw4ICs0 OTQsOCBAQCBtc2dzdHIgIiAgLXMsIC0tc2tpcC1jaGVja3N1bXMgICAgICAgIM+AzrHPgc6szrrO sc68z4jOtSDPhM63zr0gzrXPgM6xzrvOrs64zrXPhQogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5 OTIKICMsIGMtZm9ybWF0Ci1tc2dpZCAiICAtdywgLS13YWwtZGlyZWN0b3J5PVBBVEggICAgdXNl IHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIKLW1zZ3N0ciAiICAtdywgLS13YWwtZGly ZWN0b3J5PVBBVEggICAgz4fPgc63z4POuc68zr/PgM6/zq/Ot8+DzrUgz4TOt869IM66zrHOuM6/ z4HOuc+DzrzOrc69zrcgzrTOuc6xzrTPgc6/zrzOriDOs865zrEgzrHPgc+HzrXOr86xIFdBTFxu IgorbXNnaWQgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9y IFdBTCBmaWxlc1xuIgorbXNnc3RyICIgIC13LCAtLXdhbC1wYXRoPVBBVEggICAgz4fPgc63z4PO uc68zr/PgM6/zq/Ot8+DzrUgz4TOt869IM66zrHOuM6/z4HOuc+DzrzOrc69zrcgzrTOuc6xzrTP gc6/zrzOriDOs865zrEgzrHPgc+HzrXOr86xIFdBTFxuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAu Yzo5OTMKICMsIGMtZm9ybWF0CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9w by9lcy5wbyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2VzLnBvCmluZGV4IDBjYjk1OGYz NDQ4Li43ZjcyOWZhMzViYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8v ZXMucG8KKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZXMucG8KQEAgLTQ5NSw4ICs0 OTUsOCBAQCBtc2dzdHIgIiAgLXMsIC0tc2tpcC1jaGVja3N1bXMgICAgICAgIG9taXRpciBsYSB2 ZXJpZmljYWNpw7NuIGRlIGxhIHN1bWEgZGUgY29tcAogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5 OTIKICMsIGMtZm9ybWF0Ci1tc2dpZCAiICAtdywgLS13YWwtZGlyZWN0b3J5PVBBVEggICAgdXNl IHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIKLW1zZ3N0ciAiICAtdywgLS13YWwtZGly ZWN0b3J5PVBBVEggICAgdXRpbGl6YXIgbGEgcnV0YSBlc3BlY2lmaWNhZGEgcGFyYSBsb3MgYXJj aGl2b3MgV0FMXG4iCittc2dpZCAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVzZSBzcGVjaWZp ZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAg ICB1dGlsaXphciBsYSBydXRhIGVzcGVjaWZpY2FkYSBwYXJhIGxvcyBhcmNoaXZvcyBXQUxcbiIK IAogIzogcGdfdmVyaWZ5YmFja3VwLmM6OTkzCiAjLCBjLWZvcm1hdApkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZnIucG8gYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9w by9mci5wbwppbmRleCBkYThjNzJmNjQyNy4uMDk5Mzc5NjZmYTcgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfdmVyaWZ5YmFja3VwL3BvL2ZyLnBvCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3BvL2ZyLnBvCkBAIC00OTgsOCArNDk4LDggQEAgbXNnc3RyICIgIC1zLCAtLXNraXAtY2hlY2tz dW1zICAgICAgICBpZ25vcmUgbGEgdsOpcmlmaWNhdGlvbiBkZXMgc29tbWVzIGRlIGNvbnQKIAog IzogcGdfdmVyaWZ5YmFja3VwLmM6OTkyCiAjLCBjLWZvcm1hdAotbXNnaWQgIiAgLXcsIC0td2Fs LWRpcmVjdG9yeT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCi1t c2dzdHIgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1DSEVNSU4gIHV0aWxpc2UgbGUgY2hlbWluIHNw w6ljaWZpw6kgcG91ciBsZXMgZmljaGllcnMgV0FMXG4iCittc2dpZCAiICAtdywgLS13YWwtcGF0 aD1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCittc2dzdHIgIiAg LXcsIC0td2FsLXBhdGg9Q0hFTUlOICB1dGlsaXNlIGxlIGNoZW1pbiBzcMOpY2lmacOpIHBvdXIg bGVzIGZpY2hpZXJzIFdBTFxuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5OTMKICMsIGMtZm9y bWF0CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9pdC5wbyBiL3NyYy9i aW4vcGdfdmVyaWZ5YmFja3VwL3BvL2l0LnBvCmluZGV4IDMxN2IwYjcxZTdmLi40ZGE2OGQwMDc0 ZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vaXQucG8KKysrIGIvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vaXQucG8KQEAgLTQ3Miw4ICs0NzIsOCBAQCBtc2dzdHIg IiAgLXMsIC0tc2tpcC1jaGVja3N1bXMgICAgICAgICBzYWx0YSBsYSB2ZXJpZmljYSBkZWwgY2hl Y2tzdW1cbiIKIAogIzogcGdfdmVyaWZ5YmFja3VwLmM6OTExCiAjLCBjLWZvcm1hdAotbXNnaWQg IiAgLXcsIC0td2FsLWRpcmVjdG9yeT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FM IGZpbGVzXG4iCi1tc2dzdHIgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1QQVRIICAgICB1c2EgaWwg cGVyY29yc28gc3BlY2lmaWNhdG8gcGVyIGkgZmlsZSBXQUxcbiIKK21zZ2lkICIgIC13LCAtLXdh bC1wYXRoPVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIKK21zZ3N0 ciAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgICB1c2EgaWwgcGVyY29yc28gc3BlY2lmaWNhdG8g cGVyIGkgZmlsZSBXQUxcbiIKIAogIzogcGdfdmVyaWZ5YmFja3VwLmM6OTEyCiAjLCBjLWZvcm1h dApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vamEucG8gYi9zcmMvYmlu L3BnX3ZlcmlmeWJhY2t1cC9wby9qYS5wbwppbmRleCBjOTEwZmIyMzZjYy4uYTk0ODk1OWI1NGYg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2phLnBvCisrKyBiL3NyYy9i aW4vcGdfdmVyaWZ5YmFja3VwL3BvL2phLnBvCkBAIC02NzIsOCArNjcyLDggQEAgbXNnc3RyICIg IC1zLCAtLXNraXAtY2hlY2tzdW1zICAgICAgICDjg4Hjgqfjg4Pjgq/jgrXjg6DmpJzoqLzjgpLj grnjgq3jg4Pjg5dcbiIKIAogIzogcGdfdmVyaWZ5YmFja3VwLmM6MTM3OQogIywgYy1mb3JtYXQK LW1zZ2lkICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGgg Zm9yIFdBTCBmaWxlc1xuIgotbXNnc3RyICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9UEFUSCAgICBX QUzjg5XjgqHjgqTjg6vjgavmjIflrprjgZfjgZ/jg5HjgrnjgpLkvb/nlKjjgZnjgotcbiIKK21z Z2lkICIgIC13LCAtLXdhbC1wYXRoPVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwg ZmlsZXNcbiIKK21zZ3N0ciAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIFdBTOODleOCoeOCpOOD q+OBq+aMh+WumuOBl+OBn+ODkeOCueOCkuS9v+eUqOOBmeOCi1xuIgogCiAjOiBwZ192ZXJpZnli YWNrdXAuYzoxMzgwCiAjLCBjLWZvcm1hdApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnli YWNrdXAvcG8va2EucG8gYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9rYS5wbwppbmRleCA5 ODI3NTE5ODRjNy4uZWYyNzk5MzE2YTggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFj a3VwL3BvL2thLnBvCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2thLnBvCkBAIC03 ODQsOCArNzg0LDggQEAgbXNnc3RyICIgIC1zLCAtLXNraXAtY2hlY2tzdW1zICAgICAgICDhg6Hh g5Dhg5nhg53hg5zhg6Lhg6Dhg53hg5rhg50g4YOv4YOQ4YObCiAKICM6IHBnX3ZlcmlmeWJhY2t1 cC5jOjEzNzkKICMsIGMtZm9ybWF0Ci1tc2dpZCAiICAtdywgLS13YWwtZGlyZWN0b3J5PVBBVEgg ICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIKLW1zZ3N0ciAiICAtdywgLS13 YWwtZGlyZWN0b3J5PeGDkeGDmOGDmuGDmOGDmeGDmCAgICBXQUwg4YOk4YOQ4YOY4YOa4YOU4YOR 4YOY4YOh4YOX4YOV4YOY4YOhIOGDm+GDmOGDl+GDmOGDl+GDlOGDkeGDo+GDmuGDmCDhg5Hhg5jh g5rhg5jhg5nhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOQXG4iCittc2dpZCAi ICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVz XG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBhdGg94YOR4YOY4YOa4YOY4YOZ4YOYICAgIFdBTCDh g6Thg5Dhg5jhg5rhg5Thg5Hhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOb4YOY4YOX4YOY4YOX4YOU4YOR 4YOj4YOa4YOYIOGDkeGDmOGDmuGDmOGDmeGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Th g5Hhg5BcbiIKIAogIzogcGdfdmVyaWZ5YmFja3VwLmM6MTM4MAogIywgYy1mb3JtYXQKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2tvLnBvIGIvc3JjL2Jpbi9wZ192ZXJp ZnliYWNrdXAvcG8va28ucG8KaW5kZXggYWNkYzNkYTVlMDIuLmVhZjkxZWYxZTk4IDEwMDY0NAot LS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9rby5wbworKysgYi9zcmMvYmluL3BnX3Zl cmlmeWJhY2t1cC9wby9rby5wbwpAQCAtNTAxLDggKzUwMSw4IEBAIG1zZ3N0ciAiICAtcywgLS1z a2lwLWNoZWNrc3VtcyAgICAgICAg7LK07YGs7ISsIOqygOyCrCDqsbTrhIjrnIBcbiIKIAogIzog cGdfdmVyaWZ5YmFja3VwLmM6OTkyCiAjLCBjLWZvcm1hdAotbXNnaWQgIiAgLXcsIC0td2FsLWRp cmVjdG9yeT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCi1tc2dz dHIgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT3qsr3roZwgICAgV0FMIO2MjOydvOydtCDsnojripQg 6rK966GcIOyngOyglVxuIgorbXNnaWQgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICB1c2Ugc3Bl Y2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgorbXNnc3RyICIgIC13LCAtLXdhbC1wYXRoPeqy veuhnCAgICBXQUwg7YyM7J287J20IOyeiOuKlCDqsr3roZwg7KeA7KCVXG4iCiAKICM6IHBnX3Zl cmlmeWJhY2t1cC5jOjk5MwogIywgYy1mb3JtYXQKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVy aWZ5YmFja3VwL3BvL3J1LnBvIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vcnUucG8KaW5k ZXggNjQwMDVmZWVkZmQuLjdmYjBlNWFiMWY2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Zlcmlm eWJhY2t1cC9wby9ydS5wbworKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9ydS5wbwpA QCAtNTA3LDkgKzUwNyw5IEBAIG1zZ3N0ciAiICAtcywgLS1za2lwLWNoZWNrc3VtcyAgICAgICAg 0L/RgNC+0L/Rg9GB0YLQuNGC0Ywg0L/RgNC+0LLQtdGA0LrRgyDQutC+CiAKICM6IHBnX3Zlcmlm eWJhY2t1cC5jOjk5MgogIywgYy1mb3JtYXQKLW1zZ2lkICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9 UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgorbXNnaWQgIiAgLXcs IC0td2FsLXBhdGg9UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgog bXNnc3RyICIiCi0iICAtdywgLS13YWwtZGlyZWN0b3J5PdCf0KPQotCsICAgINC40YHQv9C+0LvR jNC30L7QstCw0YLRjCDQt9Cw0LTQsNC90L3Ri9C5INC/0YPRgtGMINC6INGE0LDQudC70LDQvCBX QUxcbiIKKyIgIC13LCAtLXdhbC1wYXRoPdCf0KPQotCsICAgINC40YHQv9C+0LvRjNC30L7QstCw 0YLRjCDQt9Cw0LTQsNC90L3Ri9C5INC/0YPRgtGMINC6INGE0LDQudC70LDQvCBXQUxcbiIKIAog IzogcGdfdmVyaWZ5YmFja3VwLmM6OTkzCiAjLCBjLWZvcm1hdApkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ192ZXJpZnliYWNrdXAvcG8vc3YucG8gYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9z di5wbwppbmRleCAxNzI0MGZlZWI1Yy4uOTcxMjU4MzhlOGMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfdmVyaWZ5YmFja3VwL3BvL3N2LnBvCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Bv L3N2LnBvCkBAIC00OTIsOCArNDkyLDggQEAgbXNnc3RyICIgIC1zLCAtLXNraXAtY2hlY2tzdW1z ICAgICAgICBob3BwYSDDtnZlciB2ZXJpZmllcmluZyBhdiBrb250cm9sbHN1bW1vclwKIAogIzog cGdfdmVyaWZ5YmFja3VwLmM6OTkyCiAjLCBjLWZvcm1hdAotbXNnaWQgIiAgLXcsIC0td2FsLWRp cmVjdG9yeT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCi1tc2dz dHIgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1Tw5ZLVsOERyAgYW52w6RuZCBkZW5uYSBzw7ZrdsOk ZyB0aWxsIFdBTC1maWxlclxuIgorbXNnaWQgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICB1c2Ug c3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgorbXNnc3RyICIgIC13LCAtLXdhbC1wYXRo PVPDlktWw4RHICBhbnbDpG5kIGRlbm5hIHPDtmt2w6RnIHRpbGwgV0FMLWZpbGVyXG4iCiAKICM6 IHBnX3ZlcmlmeWJhY2t1cC5jOjk5MwogIywgYy1mb3JtYXQKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfdmVyaWZ5YmFja3VwL3BvL3VrLnBvIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vdWsu cG8KaW5kZXggMDM0Yjk3NjQyMzIuLjYzZjgwNDFhYjM4IDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X3ZlcmlmeWJhY2t1cC9wby91ay5wbworKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby91 ay5wbwpAQCAtNDg0LDggKzQ4NCw4IEBAIG1zZ3N0ciAiICAtcywgLS1za2lwLWNoZWNrc3VtcyDQ vdC1INC/0LXRgNC10LLRltGA0Y/RgtC4INC60L7QvdGC0YDQvtC70YzQvdGWINGBCiAKICM6IHBn X3ZlcmlmeWJhY2t1cC5jOjk5MgogIywgYy1mb3JtYXQKLW1zZ2lkICIgIC13LCAtLXdhbC1kaXJl Y3Rvcnk9UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgotbXNnc3Ry ICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9UEFUSCDQstC40LrQvtGA0LjRgdGC0L7QstGD0LLQsNGC 0Lgg0LLQutCw0LfQsNC90LjQuSDRiNC70Y/RhSDQtNC70Y8g0YTQsNC50LvRltCyIFdBTFxuIgor bXNnaWQgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdB TCBmaWxlc1xuIgorbXNnc3RyICIgIC13LCAtLXdhbC1wYXRoPVBBVEgg0LLQuNC60L7RgNC40YHR gtC+0LLRg9Cy0LDRgtC4INCy0LrQsNC30LDQvdC40Lkg0YjQu9GP0YUg0LTQu9GPINGE0LDQudC7 0ZbQsiBXQUxcbiIKIAogIzogcGdfdmVyaWZ5YmFja3VwLmM6OTkzCiAjLCBjLWZvcm1hdApkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vemhfQ04ucG8gYi9zcmMvYmluL3Bn X3ZlcmlmeWJhY2t1cC9wby96aF9DTi5wbwppbmRleCBiN2Q5N2M4OTc2ZC4uZmI2ZmNhZThiODIg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL3poX0NOLnBvCisrKyBiL3Ny Yy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL3poX0NOLnBvCkBAIC00NjUsOCArNDY1LDggQEAgbXNn c3RyICIgIC1zLCAtLXNraXAtY2hlY2tzdW1zICAgICAgICDot7Pov4fmoKHpqozlkozpqozor4Fc biIKIAogIzogcGdfdmVyaWZ5YmFja3VwLmM6OTE5CiAjLCBjLWZvcm1hdAotbXNnaWQgIiAgLXcs IC0td2FsLWRpcmVjdG9yeT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVz XG4iCi1tc2dzdHIgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1QQVRIICAgIOWvuVdBTOaWh+S7tuS9 v+eUqOaMh+Wumui3r+W+hFxuIgorbXNnaWQgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICB1c2Ug c3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgorbXNnc3RyICIgIC13LCAtLXdhbC1wYXRo PVBBVEggICAg5a+5V0FM5paH5Lu25L2/55So5oyH5a6a6Lev5b6EXG4iCiAKICM6IHBnX3Zlcmlm eWJhY2t1cC5jOjkyMAogIywgYy1mb3JtYXQKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5 YmFja3VwL3BvL3poX1RXLnBvIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vemhfVFcucG8K aW5kZXggYzFiNzEwYjBhMzYuLjU2OGY5NzJiMGJiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Zl cmlmeWJhY2t1cC9wby96aF9UVy5wbworKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby96 aF9UVy5wbwpAQCAtNTU1LDggKzU1NSw4IEBAIG1zZ3N0ciAiICAtcywgLS1za2lwLWNoZWNrc3Vt cyAgICAgICAg6Lez6YGO5qqi5p+l56K86amX6K2JXG4iCiAKICM6IHBnX3ZlcmlmeWJhY2t1cC5j Ojk5MgogIywgYy1mb3JtYXQKLW1zZ2lkICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9UEFUSCAgICB1 c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgotbXNnc3RyICIgIC13LCAtLXdhbC1k aXJlY3Rvcnk9UEFUSCAgICDnlKjmjIflrprnmoTot6/lvpHlrZjmlL4gV0FMIOaqlFxuIgorbXNn aWQgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBm aWxlc1xuIgorbXNnc3RyICIgIC13LCAtLXdhbC1wYXRoPVBBVEggICAg55So5oyH5a6a55qE6Lev 5b6R5a2Y5pS+IFdBTCDmqpRcbiIKIAogIzogcGdfdmVyaWZ5YmFja3VwLmM6OTkzCiAjLCBjLWZv cm1hdApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDdfd2FsLnBsIGIv c3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDdfd2FsLnBsCmluZGV4IGJhYmM0ZjBhODZiLi5i MDdmODA3MTliMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDdfd2Fs LnBsCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDA3X3dhbC5wbApAQCAtNDIsMTAg KzQyLDEwIEBAIGNvbW1hbmRfb2soWyAncGdfdmVyaWZ5YmFja3VwJywgJy0tbm8tcGFyc2Utd2Fs JywgJGJhY2t1cF9wYXRoIF0sCiBjb21tYW5kX29rKAogCVsKIAkJJ3BnX3ZlcmlmeWJhY2t1cCcs Ci0JCSctLXdhbC1kaXJlY3RvcnknID0+ICRyZWxvY2F0ZWRfcGdfd2FsLAorCQknLS13YWwtcGF0 aCcgPT4gJHJlbG9jYXRlZF9wZ193YWwsCiAJCSRiYWNrdXBfcGF0aAogCV0sCi0JJy0td2FsLWRp cmVjdG9yeSBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IFdBTCBkaXJlY3RvcnknKTsKKwknLS13YWwt cGF0aCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IFdBTCBkaXJlY3RvcnknKTsKIAogIyBNb3ZlIGRp cmVjdG9yeSBiYWNrIHRvIG9yaWdpbmFsIGxvY2F0aW9uLgogcmVuYW1lKCRyZWxvY2F0ZWRfcGdf d2FsLCAkb3JpZ2luYWxfcGdfd2FsKSB8fCBkaWUgInJlbmFtZSBwZ193YWwgYmFjazogJCEiOwot LSAKMi40Ny4xCgo= --0000000000009bde480642e9577c Content-Type: application/x-patch; name="v5-0008-pg_verifybackup-enabled-WAL-parsing-for-tar-forma.patch" Content-Disposition: attachment; filename="v5-0008-pg_verifybackup-enabled-WAL-parsing-for-tar-forma.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhn6jyy37 RnJvbSAyNDk4ZjMxNTM4OGZjOGExYTg0MGEyYjg4M2JjYTEwN2IwMTEzYzBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMTcgSnVsIDIwMjUgMTY6Mzk6MzYgKzA1MzAKU3ViamVjdDogW1BBVENIIHY1IDgvOF0gcGdf dmVyaWZ5YmFja3VwOiBlbmFibGVkIFdBTCBwYXJzaW5nIGZvciB0YXItZm9ybWF0CiBiYWNrdXAK Ck5vdyB0aGF0IHBnX3dhbGR1bXAgc3VwcG9ydHMgZGVjb2RpbmcgZnJvbSB0YXIgYXJjaGl2ZXMs IHdlIHNob3VsZApsZXZlcmFnZSB0aGlzIGZ1bmN0aW9uYWxpdHkgdG8gcmVtb3ZlIHRoZSBwcmV2 aW91cyByZXN0cmljdGlvbiBvbiBXQUwKcGFyc2luZyBmb3IgdGFyLWJhY2tlZCBmb3JtYXRzLgot LS0KIGRvYy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3VwLnNnbWwgICAgICAgICB8ICA1ICst CiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYyAgICAgfCA2NiArKysr KysrKysrKysrLS0tLS0tCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwMl9hbGdvcml0aG0u cGwgICAgfCAgNCAtLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDNfY29ycnVwdGlvbi5w bCAgIHwgIDQgKy0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDA4X3VudGFyLnBsICAgICAg ICB8ICA1ICstCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAxMF9jbGllbnRfdW50YXIucGwg fCAgNSArLQogNiBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3ZlcmlmeWJhY2t1cC5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9wZ192ZXJpZnliYWNrdXAuc2dtbAppbmRleCBlOWI4YmZkNTFiMS4u MTZiNTBiNWE0ZGYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3Vw LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ192ZXJpZnliYWNrdXAuc2dtbApAQCAtMzYs MTAgKzM2LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICA8bGl0ZXJhbD5iYWNrdXBf bWFuaWZlc3Q8L2xpdGVyYWw+IGdlbmVyYXRlZCBieSB0aGUgc2VydmVyIGF0IHRoZSB0aW1lCiAg ICBvZiB0aGUgYmFja3VwLiBUaGUgYmFja3VwIG1heSBiZSBzdG9yZWQgZWl0aGVyIGluIHRoZSAi cGxhaW4iIG9yIHRoZSAidGFyIgogICAgZm9ybWF0OyB0aGlzIGluY2x1ZGVzIHRhci1mb3JtYXQg YmFja3VwcyBjb21wcmVzc2VkIHdpdGggYW55IGFsZ29yaXRobQotICAgc3VwcG9ydGVkIGJ5IDxh cHBsaWNhdGlvbj5wZ19iYXNlYmFja3VwPC9hcHBsaWNhdGlvbj4uIEhvd2V2ZXIsIGF0IHByZXNl bnQsCi0gICA8bGl0ZXJhbD5XQUw8L2xpdGVyYWw+IHZlcmlmaWNhdGlvbiBpcyBzdXBwb3J0ZWQg b25seSBmb3IgcGxhaW4tZm9ybWF0Ci0gICBiYWNrdXBzLiBUaGVyZWZvcmUsIGlmIHRoZSBiYWNr dXAgaXMgc3RvcmVkIGluIHRhci1mb3JtYXQsIHRoZQotICAgPGxpdGVyYWw+LW4sIC0tbm8tcGFy c2Utd2FsPC9saXRlcmFsPiBvcHRpb24gc2hvdWxkIGJlIHVzZWQuCisgICBzdXBwb3J0ZWQgYnkg PGFwcGxpY2F0aW9uPnBnX2Jhc2ViYWNrdXA8L2FwcGxpY2F0aW9uPi4KICAgPC9wYXJhPgogCiAg IDxwYXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFj a3VwLmMgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYwppbmRleCAx ZWU0MDAxOTlkYS4uNGJmZTZmZGZmMTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFj a3VwL3BnX3ZlcmlmeWJhY2t1cC5jCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3Zl cmlmeWJhY2t1cC5jCkBAIC03NCw3ICs3NCw5IEBAIHBnX25vcmV0dXJuIHN0YXRpYyB2b2lkIHJl cG9ydF9tYW5pZmVzdF9lcnJvcihKc29uTWFuaWZlc3RQYXJzZUNvbnRleHQgKmNvbnRleHQsCiAJ CQkJCQkJCQkJCSAgY29uc3QgY2hhciAqZm10LC4uLikKIAkJCXBnX2F0dHJpYnV0ZV9wcmludGYo MiwgMyk7CiAKLXN0YXRpYyB2b2lkIHZlcmlmeV90YXJfYmFja3VwKHZlcmlmaWVyX2NvbnRleHQg KmNvbnRleHQsIERJUiAqZGlyKTsKK3N0YXRpYyB2b2lkIHZlcmlmeV90YXJfYmFja3VwKHZlcmlm aWVyX2NvbnRleHQgKmNvbnRleHQsIERJUiAqZGlyLAorCQkJCQkJCSAgY2hhciAqKmJhc2VfYXJj aGl2ZV9wYXRoLAorCQkJCQkJCSAgY2hhciAqKndhbF9hcmNoaXZlX3BhdGgpOwogc3RhdGljIHZv aWQgdmVyaWZ5X3BsYWluX2JhY2t1cF9kaXJlY3RvcnkodmVyaWZpZXJfY29udGV4dCAqY29udGV4 dCwKIAkJCQkJCQkJCQkgIGNoYXIgKnJlbHBhdGgsIGNoYXIgKmZ1bGxwYXRoLAogCQkJCQkJCQkJ CSAgRElSICpkaXIpOwpAQCAtODMsNyArODUsOSBAQCBzdGF0aWMgdm9pZCB2ZXJpZnlfcGxhaW5f YmFja3VwX2ZpbGUodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgY2hhciAqcmVscGF0aCwKIHN0 YXRpYyB2b2lkIHZlcmlmeV9jb250cm9sX2ZpbGUoY29uc3QgY2hhciAqY29udHJvbHBhdGgsCiAJ CQkJCQkJCXVpbnQ2NCBtYW5pZmVzdF9zeXN0ZW1faWRlbnRpZmllcik7CiBzdGF0aWMgdm9pZCBw cmVjaGVja190YXJfYmFja3VwX2ZpbGUodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgY2hhciAq cmVscGF0aCwKLQkJCQkJCQkJCSBjaGFyICpmdWxscGF0aCwgU2ltcGxlUHRyTGlzdCAqdGFyZmls ZXMpOworCQkJCQkJCQkJIGNoYXIgKmZ1bGxwYXRoLCBTaW1wbGVQdHJMaXN0ICp0YXJmaWxlcywK KwkJCQkJCQkJCSBjaGFyICoqYmFzZV9hcmNoaXZlX3BhdGgsCisJCQkJCQkJCQkgY2hhciAqKndh bF9hcmNoaXZlX3BhdGgpOwogc3RhdGljIHZvaWQgdmVyaWZ5X3Rhcl9maWxlKHZlcmlmaWVyX2Nv bnRleHQgKmNvbnRleHQsIGNoYXIgKnJlbHBhdGgsCiAJCQkJCQkJY2hhciAqZnVsbHBhdGgsIGFz dHJlYW1lciAqc3RyZWFtZXIpOwogc3RhdGljIHZvaWQgcmVwb3J0X2V4dHJhX2JhY2t1cF9maWxl cyh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0KTsKQEAgLTEzNiw2ICsxNDAsOCBAQCBtYWluKGlu dCBhcmdjLCBjaGFyICoqYXJndikKIAlib29sCQlub19wYXJzZV93YWwgPSBmYWxzZTsKIAlib29s CQlxdWlldCA9IGZhbHNlOwogCWNoYXIJICAgKndhbF9wYXRoID0gTlVMTDsKKwljaGFyCSAgICpi YXNlX2FyY2hpdmVfcGF0aCA9IE5VTEw7CisJY2hhcgkgICAqd2FsX2FyY2hpdmVfcGF0aCA9IE5V TEw7CiAJY2hhcgkgICAqcGdfd2FsZHVtcF9wYXRoID0gTlVMTDsKIAlESVIJCSAgICpkaXI7CiAK QEAgLTMyNywxNyArMzMzLDYgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXBmcmVl KHBhdGgpOwogCX0KIAotCS8qCi0JICogWFhYOiBJbiB0aGUgZnV0dXJlLCB3ZSBzaG91bGQgY29u c2lkZXIgZW5oYW5jaW5nIHBnX3dhbGR1bXAgdG8gcmVhZCBXQUwKLQkgKiBmaWxlcyBmcm9tIGFu IGFyY2hpdmUuCi0JICovCi0JaWYgKCFub19wYXJzZV93YWwgJiYgY29udGV4dC5mb3JtYXQgPT0g J3QnKQotCXsKLQkJcGdfbG9nX2Vycm9yKCJwZ193YWxkdW1wIGNhbm5vdCByZWFkIHRhciBmaWxl cyIpOwotCQlwZ19sb2dfZXJyb3JfaGludCgiWW91IG11c3QgdXNlIC1uLy0tbm8tcGFyc2Utd2Fs IHdoZW4gdmVyaWZ5aW5nIGEgdGFyLWZvcm1hdCBiYWNrdXAuIik7Ci0JCWV4aXQoMSk7Ci0JfQot CiAJLyoKIAkgKiBQZXJmb3JtIHRoZSBhcHByb3ByaWF0ZSB0eXBlIG9mIHZlcmlmaWNhdGlvbiBh cHByb3ByaWF0ZSBiYXNlZCBvbiB0aGUKIAkgKiBiYWNrdXAgZm9ybWF0LiBUaGlzIHdpbGwgY2xv c2UgJ2RpcicuCkBAIC0zNDYsNyArMzQxLDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CiAJCXZlcmlmeV9wbGFpbl9iYWNrdXBfZGlyZWN0b3J5KCZjb250ZXh0LCBOVUxMLCBjb250ZXh0 LmJhY2t1cF9kaXJlY3RvcnksCiAJCQkJCQkJCQkgIGRpcik7CiAJZWxzZQotCQl2ZXJpZnlfdGFy X2JhY2t1cCgmY29udGV4dCwgZGlyKTsKKwkJdmVyaWZ5X3Rhcl9iYWNrdXAoJmNvbnRleHQsIGRp ciwgJmJhc2VfYXJjaGl2ZV9wYXRoLCAmd2FsX2FyY2hpdmVfcGF0aCk7CiAKIAkvKgogCSAqIFRo ZSAibWF0Y2hlZCIgZmxhZyBzaG91bGQgbm93IGJlIHNldCBvbiBldmVyeSBlbnRyeSBpbiB0aGUg aGFzaCB0YWJsZS4KQEAgLTM2NCw5ICszNTksMjggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFy Z3YpCiAJaWYgKGNvbnRleHQuZm9ybWF0ID09ICdwJyAmJiAhY29udGV4dC5za2lwX2NoZWNrc3Vt cykKIAkJdmVyaWZ5X2JhY2t1cF9jaGVja3N1bXMoJmNvbnRleHQpOwogCi0JLyogQnkgZGVmYXVs dCwgbG9vayBmb3IgdGhlIFdBTCBpbiB0aGUgYmFja3VwIGRpcmVjdG9yeSwgdG9vLiAqLworCS8q CisJICogQnkgZGVmYXVsdCwgV0FMIGZpbGVzIGFyZSBleHBlY3RlZCB0byBiZSBmb3VuZCBpbiB0 aGUgYmFja3VwIGRpcmVjdG9yeQorCSAqIGZvciBwbGFpbi1mb3JtYXQgYmFja3Vwcy4gSW4gdGhl IGNhc2Ugb2YgdGFyLWZvcm1hdCBiYWNrdXBzLCBpZiBhCisJICogc2VwYXJhdGUgV0FMIGFyY2hp dmUgaXMgbm90IGZvdW5kLCB0aGUgV0FMIGZpbGVzIGFyZSBtb3N0IGxpa2VseQorCSAqIGluY2x1 ZGVkIHdpdGhpbiB0aGUgbWFpbiBkYXRhIGRpcmVjdG9yeSBhcmNoaXZlLgorCSAqLwogCWlmICh3 YWxfcGF0aCA9PSBOVUxMKQotCQl3YWxfcGF0aCA9IHBzcHJpbnRmKCIlcy9wZ193YWwiLCBjb250 ZXh0LmJhY2t1cF9kaXJlY3RvcnkpOworCXsKKwkJaWYgKGNvbnRleHQuZm9ybWF0ID09ICdwJykK KwkJCXdhbF9wYXRoID0gcHNwcmludGYoIiVzL3BnX3dhbCIsIGNvbnRleHQuYmFja3VwX2RpcmVj dG9yeSk7CisJCWVsc2UgaWYgKHdhbF9hcmNoaXZlX3BhdGgpCisJCQl3YWxfcGF0aCA9IHdhbF9h cmNoaXZlX3BhdGg7CisJCWVsc2UgaWYgKGJhc2VfYXJjaGl2ZV9wYXRoKQorCQkJd2FsX3BhdGgg PSBiYXNlX2FyY2hpdmVfcGF0aDsKKwkJZWxzZQorCQl7CisJCQlwZ19sb2dfZXJyb3IoIndhbCBh cmNoaXZlIG5vdCBmb3VuZCIpOworCQkJcGdfbG9nX2Vycm9yX2hpbnQoIlNwZWNpZnkgdGhlIGNv cnJlY3QgcGF0aCB1c2luZyB0aGUgb3B0aW9uIC13Ly0td2FsLXBhdGguIgorCQkJCQkJCSAgIk9y IHlvdSBtdXN0IHVzZSAtbi8tLW5vLXBhcnNlLXdhbCB3aGVuIHZlcmlmeWluZyBhIHRhci1mb3Jt YXQgYmFja3VwLiIpOworCQkJZXhpdCgxKTsKKwkJfQorCX0KIAogCS8qCiAJICogVHJ5IHRvIHBh cnNlIHRoZSByZXF1aXJlZCByYW5nZXMgb2YgV0FMIHJlY29yZHMsIHVubGVzcyB3ZSB3ZXJlIHRv bGQKQEAgLTc4Nyw3ICs4MDEsOCBAQCB2ZXJpZnlfY29udHJvbF9maWxlKGNvbnN0IGNoYXIgKmNv bnRyb2xwYXRoLCB1aW50NjQgbWFuaWZlc3Rfc3lzdGVtX2lkZW50aWZpZXIpCiAgKiBjbG9zZSB3 aGVuIHdlJ3JlIGRvbmUgd2l0aCBpdC4KICAqLwogc3RhdGljIHZvaWQKLXZlcmlmeV90YXJfYmFj a3VwKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsIERJUiAqZGlyKQordmVyaWZ5X3Rhcl9iYWNr dXAodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgRElSICpkaXIsIGNoYXIgKipiYXNlX2FyY2hp dmVfcGF0aCwKKwkJCQkgIGNoYXIgKip3YWxfYXJjaGl2ZV9wYXRoKQogewogCXN0cnVjdCBkaXJl bnQgKmRpcmVudDsKIAlTaW1wbGVQdHJMaXN0IHRhcmZpbGVzID0ge05VTEwsIE5VTEx9OwpAQCAt ODE2LDcgKzgzMSw4IEBAIHZlcmlmeV90YXJfYmFja3VwKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRl eHQsIERJUiAqZGlyKQogCQkJY2hhcgkgICAqZnVsbHBhdGg7CiAKIAkJCWZ1bGxwYXRoID0gcHNw cmludGYoIiVzLyVzIiwgY29udGV4dC0+YmFja3VwX2RpcmVjdG9yeSwgZmlsZW5hbWUpOwotCQkJ cHJlY2hlY2tfdGFyX2JhY2t1cF9maWxlKGNvbnRleHQsIGZpbGVuYW1lLCBmdWxscGF0aCwgJnRh cmZpbGVzKTsKKwkJCXByZWNoZWNrX3Rhcl9iYWNrdXBfZmlsZShjb250ZXh0LCBmaWxlbmFtZSwg ZnVsbHBhdGgsICZ0YXJmaWxlcywKKwkJCQkJCQkJCSBiYXNlX2FyY2hpdmVfcGF0aCwgd2FsX2Fy Y2hpdmVfcGF0aCk7CiAJCQlwZnJlZShmdWxscGF0aCk7CiAJCX0KIAl9CkBAIC04NzUsMTEgKzg5 MSwxMyBAQCB2ZXJpZnlfdGFyX2JhY2t1cCh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBESVIg KmRpcikKICAqCiAgKiBUaGUgYXJndW1lbnRzIHRvIHRoaXMgZnVuY3Rpb24gYXJlIG1vc3RseSB0 aGUgc2FtZSBhcyB0aGUKICAqIHZlcmlmeV9wbGFpbl9iYWNrdXBfZmlsZS4gVGhlIGFkZGl0aW9u YWwgYXJndW1lbnQgb3V0cHV0cyBhIGxpc3Qgb2YgdmFsaWQKLSAqIHRhciBmaWxlcy4KKyAqIHRh ciBmaWxlcywgYWxvbmcgd2l0aCB0aGUgZnVsbCBwYXRocyB0byB0aGUgbWFpbiBhcmNoaXZlIGFu ZCB0aGUgV0FMCisgKiBkaXJlY3RvcnkgYXJjaGl2ZS4KICAqLwogc3RhdGljIHZvaWQKIHByZWNo ZWNrX3Rhcl9iYWNrdXBfZmlsZSh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBjaGFyICpyZWxw YXRoLAotCQkJCQkJIGNoYXIgKmZ1bGxwYXRoLCBTaW1wbGVQdHJMaXN0ICp0YXJmaWxlcykKKwkJ CQkJCSBjaGFyICpmdWxscGF0aCwgU2ltcGxlUHRyTGlzdCAqdGFyZmlsZXMsCisJCQkJCQkgY2hh ciAqKmJhc2VfYXJjaGl2ZV9wYXRoLCBjaGFyICoqd2FsX2FyY2hpdmVfcGF0aCkKIHsKIAlzdHJ1 Y3Qgc3RhdCBzYjsKIAlPaWQJCQl0YmxzcGNfb2lkID0gSW52YWxpZE9pZDsKQEAgLTkxOCw5ICs5 MzYsMTcgQEAgcHJlY2hlY2tfdGFyX2JhY2t1cF9maWxlKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRl eHQsIGNoYXIgKnJlbHBhdGgsCiAJICogZXh0ZW5zaW9uIHN1Y2ggYXMgLmd6LCAubHo0LCBvciAu enN0LgogCSAqLwogCWlmIChzdHJuY21wKCJiYXNlIiwgcmVscGF0aCwgNCkgPT0gMCkKKwl7CiAJ CXN1ZmZpeCA9IHJlbHBhdGggKyA0OworCisJCSpiYXNlX2FyY2hpdmVfcGF0aCA9IHBzdHJkdXAo ZnVsbHBhdGgpOworCX0KIAllbHNlIGlmIChzdHJuY21wKCJwZ193YWwiLCByZWxwYXRoLCA2KSA9 PSAwKQorCXsKIAkJc3VmZml4ID0gcmVscGF0aCArIDY7CisKKwkJKndhbF9hcmNoaXZlX3BhdGgg PSBwc3RyZHVwKGZ1bGxwYXRoKTsKKwl9CiAJZWxzZQogCXsKIAkJLyogRXhwZWN0ZWQgYSA8dGFi bGVzcGFjZW9pZD4udGFyIGZpbGUgaGVyZS4gKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVy aWZ5YmFja3VwL3QvMDAyX2FsZ29yaXRobS5wbCBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Qv MDAyX2FsZ29yaXRobS5wbAppbmRleCBhZTE2YzExYmM0ZC4uNGYyODRhOWU4MjggMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDAyX2FsZ29yaXRobS5wbAorKysgYi9zcmMv YmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwMl9hbGdvcml0aG0ucGwKQEAgLTMwLDEwICszMCw2IEBA IHN1YiB0ZXN0X2NoZWNrc3VtcwogCXsKIAkJIyBBZGQgc3dpdGNoIHRvIGdldCBhIHRhci1mb3Jt YXQgYmFja3VwCiAJCXB1c2ggQGJhY2t1cCwgKCctLWZvcm1hdCcgPT4gJ3RhcicpOwotCi0JCSMg QWRkIHN3aXRjaCB0byBza2lwIFdBTCB2ZXJpZmljYXRpb24sIHdoaWNoIGlzIG5vdCB5ZXQgc3Vw cG9ydGVkIGZvcgotCQkjIHRhci1mb3JtYXQgYmFja3VwcwotCQlwdXNoIEB2ZXJpZnksICgnLS1u by1wYXJzZS13YWwnKTsKIAl9CiAKIAkjIEEgYmFja3VwIHdpdGggYSBib2d1cyBhbGdvcml0aG0g c2hvdWxkIGZhaWwuCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwM19j b3JydXB0aW9uLnBsIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDNfY29ycnVwdGlvbi5w bAppbmRleCAxZGQ2MGY3MDljZi4uZjFlYmRiYjQ2YjQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf dmVyaWZ5YmFja3VwL3QvMDAzX2NvcnJ1cHRpb24ucGwKKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnli YWNrdXAvdC8wMDNfY29ycnVwdGlvbi5wbApAQCAtMTkzLDEwICsxOTMsOCBAQCBmb3IgbXkgJHNj ZW5hcmlvIChAc2NlbmFyaW8pCiAJCQljb21tYW5kX29rKFsgJHRhciwgJy1jZicgPT4gIiR0YXJf YmFja3VwX3BhdGgvYmFzZS50YXIiLCAnLicgXSk7CiAJCQljaGRpcigkY3dkKSB8fCBkaWUgImNo ZGlyOiAkISI7CiAKLQkJCSMgTm93IGNoZWNrIHRoYXQgdGhlIGJhY2t1cCBubyBsb25nZXIgdmVy aWZpZXMuIFdlIG11c3QgdXNlIC1uCi0JCQkjIGhlcmUsIGJlY2F1c2UgcGdfd2FsZHVtcCBjYW4n dCB5ZXQgcmVhZCBXQUwgZnJvbSBhIHRhcmZpbGUuCiAJCQljb21tYW5kX2ZhaWxzX2xpa2UoCi0J CQkJWyAncGdfdmVyaWZ5YmFja3VwJywgJy0tbm8tcGFyc2Utd2FsJywgJHRhcl9iYWNrdXBfcGF0 aCBdLAorCQkJCVsgJ3BnX3ZlcmlmeWJhY2t1cCcsICR0YXJfYmFja3VwX3BhdGggXSwKIAkJCQkk c2NlbmFyaW8tPnsnZmFpbHNfbGlrZSd9LAogCQkJCSJjb3JydXB0IGJhY2t1cCBmYWlscyB2ZXJp ZmljYXRpb246ICRuYW1lIik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3QvMDA4X3VudGFyLnBsIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDhfdW50YXIucGwK aW5kZXggYmMzZDZiMzUyYWQuLjA5MDc5YTk0ZmVlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Zl cmlmeWJhY2t1cC90LzAwOF91bnRhci5wbAorKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90 LzAwOF91bnRhci5wbApAQCAtNDcsNyArNDcsNiBAQCBteSAkdHNvaWQgPSAkcHJpbWFyeS0+c2Fm ZV9wc3FsKAogCQlTRUxFQ1Qgb2lkIEZST00gcGdfdGFibGVzcGFjZSBXSEVSRSBzcGNuYW1lID0g J3JlZ3Jlc3NfdHMxJykpOwogCiBteSAkYmFja3VwX3BhdGggPSAkcHJpbWFyeS0+YmFja3VwX2Rp ciAuICcvc2VydmVyLWJhY2t1cCc7Ci1teSAkZXh0cmFjdF9wYXRoID0gJHByaW1hcnktPmJhY2t1 cF9kaXIgLiAnL2V4dHJhY3RlZC1iYWNrdXAnOwogCiBteSBAdGVzdF9jb25maWd1cmF0aW9uID0g KAogCXsKQEAgLTEyMywxNCArMTIyLDEyIEBAIGZvciBteSAkdGMgKEB0ZXN0X2NvbmZpZ3VyYXRp b24pCiAJCSMgVmVyaWZ5IHRhciBiYWNrdXAuCiAJCSRwcmltYXJ5LT5jb21tYW5kX29rKAogCQkJ WwotCQkJCSdwZ192ZXJpZnliYWNrdXAnLCAnLS1uby1wYXJzZS13YWwnLAotCQkJCSctLWV4aXQt b24tZXJyb3InLCAkYmFja3VwX3BhdGgsCisJCQkJJ3BnX3ZlcmlmeWJhY2t1cCcsICctLWV4aXQt b24tZXJyb3InLCAkYmFja3VwX3BhdGgsCiAJCQldLAogCQkJInZlcmlmeSBiYWNrdXAsIGNvbXBy ZXNzaW9uICRtZXRob2QiKTsKIAogCQkjIENsZWFudXAuCiAJCXJtdHJlZSgkYmFja3VwX3BhdGgp OwotCQlybXRyZWUoJGV4dHJhY3RfcGF0aCk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX3ZlcmlmeWJhY2t1cC90LzAxMF9jbGllbnRfdW50YXIucGwgYi9zcmMvYmluL3BnX3Zlcmlm eWJhY2t1cC90LzAxMF9jbGllbnRfdW50YXIucGwKaW5kZXggYjYyZmFlYjVhY2YuLjViMGU3NmVl NjlkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAxMF9jbGllbnRfdW50 YXIucGwKKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMTBfY2xpZW50X3VudGFyLnBs CkBAIC0zMiw3ICszMiw2IEBAIHByaW50ICRqZiAkanVua19kYXRhOwogY2xvc2UgJGpmOwogCiBt eSAkYmFja3VwX3BhdGggPSAkcHJpbWFyeS0+YmFja3VwX2RpciAuICcvY2xpZW50LWJhY2t1cCc7 Ci1teSAkZXh0cmFjdF9wYXRoID0gJHByaW1hcnktPmJhY2t1cF9kaXIgLiAnL2V4dHJhY3RlZC1i YWNrdXAnOwogCiBteSBAdGVzdF9jb25maWd1cmF0aW9uID0gKAogCXsKQEAgLTEzNywxMyArMTM2 LDExIEBAIGZvciBteSAkdGMgKEB0ZXN0X2NvbmZpZ3VyYXRpb24pCiAJCSMgVmVyaWZ5IHRhciBi YWNrdXAuCiAJCSRwcmltYXJ5LT5jb21tYW5kX29rKAogCQkJWwotCQkJCSdwZ192ZXJpZnliYWNr dXAnLCAnLS1uby1wYXJzZS13YWwnLAotCQkJCSctLWV4aXQtb24tZXJyb3InLCAkYmFja3VwX3Bh dGgsCisJCQkJJ3BnX3ZlcmlmeWJhY2t1cCcsICctLWV4aXQtb24tZXJyb3InLCAkYmFja3VwX3Bh dGgsCiAJCQldLAogCQkJInZlcmlmeSBiYWNrdXAsIGNvbXByZXNzaW9uICRtZXRob2QiKTsKIAog CQkjIENsZWFudXAuCi0JCXJtdHJlZSgkZXh0cmFjdF9wYXRoKTsKIAkJcm10cmVlKCRiYWNrdXBf cGF0aCk7CiAJfQogfQotLSAKMi40Ny4xCgo= --0000000000009bde480642e9577c--