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.96) (envelope-from ) id 1vKrDF-00B9iL-1x for pgsql-hackers@arkaria.postgresql.org; Mon, 17 Nov 2025 04:51:36 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vKrDC-00C8jr-0N for pgsql-hackers@arkaria.postgresql.org; Mon, 17 Nov 2025 04:51:34 +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.96) (envelope-from ) id 1vKrDB-00C8jh-21 for pgsql-hackers@lists.postgresql.org; Mon, 17 Nov 2025 04:51:33 +0000 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vKrD7-0088sR-0O for pgsql-hackers@lists.postgresql.org; Mon, 17 Nov 2025 04:51:32 +0000 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-3436d6ca17bso4141784a91.3 for ; Sun, 16 Nov 2025 20:51:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763355086; x=1763959886; 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=fM8WWwcQBdBRxKZ5WvGzjJJcc0aG8llBZTKQrU0F5wQ=; b=mdn44MjjIf9cpodRl4p9im+o7hH7PPAQtS9kQ7g7hHY9v/uRdJmzt9330RFSHQwDyj 6y5sZqzru7Lwy9gwuUkrHHX5bMUX4jWuKZrFRdh04hhdFn0a0BB1ZwtN9ZkAuKzKFvfJ Yv6zyW2ULgByfoV/OehoXzJWA8u09idm091GrfwcvuyPslEdKL85kRSfyK8dTtSQa6HP l7rgr1hPIerIUljGNG87ohbUFgcqj+nTGsgIMLSUA59h7KLRVO4zSz4hjDBMcpqxfA9R RAYq0J5lCrL5P+ezKM6x0f2hTo/qi9I+6uLxNiglVjzqxyzK6UzzKV6MnpAU500aNea8 nA+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763355086; x=1763959886; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=fM8WWwcQBdBRxKZ5WvGzjJJcc0aG8llBZTKQrU0F5wQ=; b=W9Cj9XuyrA/fh/nmo8MzQWNlS4SYVhmLCNO8Ws7CZtez4BnCwgLMauBtKSTUi4TjTT 26eoDxIJohMWEbDTmVfBClAL8r/hifUkJEkYJOisAk6LSEEGPKP++lsgLuBj99sBYMQN nm+bN+gMqTz1rUGrQbGb7lYGwDe9gNdmOjXsCL/2KPMp5iPcGmLKJIv15349r7sNKLGb L5CpZdgj9KZZB3PwZpbM93cJkMT+fF+MR8uLOGqliPLteLy7b78ZodviRIbDc29dfjpX Ql9IbBrkcHJvXIwhKA/0G+mJTMafyp8R5/UO2TC/oOBzrB7wzyJYb/FL2/OH2lNloo+X 6e9w== X-Gm-Message-State: AOJu0YzOXMWnOvEjzfQthco7TJWbaWKZttX3eCyTloY6U8rLEwQgmSQ4 ydjxm7dQOAHNnLHP/CU6BGrk07RkT7UYefTMXiV0bNEcRZ7sAZmV7kh+/jrkhGqPRuJX+Hw4cps e7xLkb8t7MqijG59zeKzTsX7d0bVG3pE= X-Gm-Gg: ASbGncsdufDD2Hvx5aevUWFa3bjfVPOmqXRUjVyVXiTK0BA9TPth6Qsomhbmx2pMoMb QvJBNXCbAEl7lQSh3yiTSiRbRnvtdOatkLRGUDoPbAZY/Q9+nm+m6GMfm3P7qUqmHCBNsTclshW VRyKoNCrrcH88gOo+tEfMhcjiCauQgat9P0V7bXNRS7OqrwWqcqFrL3ecb+W33d5TfkxKQ7z4rv tXO6fF8gI11BhgkdmdIRGokfn71mGvJkmfY6wHct3dj0siTF3U1N5ruNv5I4g== X-Google-Smtp-Source: AGHT+IH0lntGc6JRv7wEK2VUQ8Zh7BcVPZ7KpES9lTwQGQDnKwSVRJBoExynBRMH6q+d8LmjT9bAfix75Xj+UiP04R8= X-Received: by 2002:a17:90b:3888:b0:340:ff7d:c26 with SMTP id 98e67ed59e1d1-343fa1f6997mr13698281a91.16.1763355086253; Sun, 16 Nov 2025 20:51:26 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Amul Sul Date: Mon, 17 Nov 2025 10:20:48 +0530 X-Gm-Features: AWmQ_blataIn956pR_OOHNuST440UEpJTwhncW6G-kS3-B4zbtioB6DXDEGJqvI Message-ID: Subject: Re: pg_waldump: support decoding of WAL inside tarfile To: Robert Haas Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000879a6c0643c31997" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000879a6c0643c31997 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Nov 6, 2025 at 2:33=E2=80=AFPM Amul Sul wrote: > > 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 wr= ote: > > [....] > Kindly have a look at the attached version. Thank you ! > Attached is the rebased version against the latest master head (e76defbcf09= ). Regards, Amul --000000000000879a6c0643c31997 Content-Type: application/octet-stream; name="v6-0001-Refactor-pg_waldump-Move-some-declarations-to-new.patch" Content-Disposition: attachment; filename="v6-0001-Refactor-pg_waldump-Move-some-declarations-to-new.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mi2n3dwg0 RnJvbSBmNTZhM2NlMDM0M2Q5ZjUzOWY2MzhiODg0NDVhZWZiMjU2YWZiZmI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFR1 ZSwgMjQgSnVuIDIwMjUgMTE6MzM6MjAgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2IDEvOF0gUmVm YWN0b3I6IHBnX3dhbGR1bXA6IE1vdmUgc29tZSBkZWNsYXJhdGlvbnMgdG8gbmV3CiBwZ193YWxk dW1wLmgKClRoaXMgY2hhbmdlIHByZXBhcmVzIGZvciBhIHNlY29uZCBzb3VyY2UgZmlsZSBpbiB0 aGlzIGRpcmVjdG9yeSB0bwpzdXBwb3J0IHJlYWRpbmcgV0FMIGZyb20gdGFyIGZpbGVzLiBDb21t b24gc3RydWN0dXJlcywgZGVjbGFyYXRpb25zLAphbmQgZnVuY3Rpb25zIGFyZSBiZWluZyBleHBv cnRlZCB0aHJvdWdoIHRoaXMgaW5jbHVkZSBmaWxlIHNvCnRoZXkgY2FuIGJlIHVzZWQgaW4gYm90 aCBmaWxlcy4KLS0tCiBzcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jIHwgMTEgKystLS0t LS0tLS0KIHNyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmggfCAyNyArKysrKysrKysrKysr KysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgOSBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVt cC5oCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYyBiL3NyYy9i aW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKaW5kZXggYzZkNmJhNzllNDQuLjU4NDZlZTI0ZjQ2 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= --000000000000879a6c0643c31997 Content-Type: application/octet-stream; name="v6-0002-Refactor-pg_waldump-Separate-logic-used-to-calcul.patch" Content-Disposition: attachment; filename="v6-0002-Refactor-pg_waldump-Separate-logic-used-to-calcul.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mi2n3gyf1 RnJvbSA4MzVjY2U4YTVlZDMzMTIxNWNmNmM3NzA3NWVkMGRkZWEwNmVlODU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMjYgSnVuIDIwMjUgMTE6NDI6NTMgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2IDIvOF0gUmVm YWN0b3I6IHBnX3dhbGR1bXA6IFNlcGFyYXRlIGxvZ2ljIHVzZWQgdG8gY2FsY3VsYXRlCiB0aGUg cmVxdWlyZWQgcmVhZCBzaXplLgoKVGhpcyByZWZhY3RvcmluZyBwcmVwYXJlcyB0aGUgY29kZWJh c2UgZm9yIGFuIHVwY29taW5nIHBhdGNoIHRoYXQgd2lsbApzdXBwb3J0IHJlYWRpbmcgV0FMIGZy b20gdGFyIGZpbGVzLiBUaGUgbG9naWMgZm9yIGNhbGN1bGF0aW5nIHRoZQpyZXF1aXJlZCByZWFk IHNpemUgaGFzIGJlZW4gdXBkYXRlZCB0byBoYW5kbGUgYm90aCBub3JtYWwgV0FMIGZpbGVzCmFu ZCBXQUwgZmlsZXMgbG9jYXRlZCBpbnNpZGUgYSB0YXIgYXJjaGl2ZS4KLS0tCiBzcmMvYmluL3Bn X3dhbGR1bXAvcGdfd2FsZHVtcC5jIHwgMzkgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYyBiL3NyYy9iaW4vcGdf d2FsZHVtcC9wZ193YWxkdW1wLmMKaW5kZXggNTg0NmVlMjRmNDYuLjBkYzI4ZWEzNjBjIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdf d2FsZHVtcC9wZ193YWxkdW1wLmMKQEAgLTMyNiw2ICszMjYsMjkgQEAgaWRlbnRpZnlfdGFyZ2V0 X2RpcmVjdG9yeShjaGFyICpkaXJlY3RvcnksIGNoYXIgKmZuYW1lKQogCXJldHVybiBOVUxMOwkJ CQkvKiBub3QgcmVhY2hlZCAqLwogfQogCisvKiBSZXR1cm5zIHRoZSBzaXplIGluIGJ5dGVzIG9m IHRoZSBkYXRhIHRvIGJlIHJlYWQuICovCitzdGF0aWMgaW5saW5lIGludAorcmVxdWlyZWRfcmVh ZF9sZW4oWExvZ0R1bXBQcml2YXRlICpwcml2YXRlLCBYTG9nUmVjUHRyIHRhcmdldFBhZ2VQdHIs CisJCQkJICBpbnQgcmVxTGVuKQoreworCWludAkJCWNvdW50ID0gWExPR19CTENLU1o7CisKKwlp ZiAoWExvZ1JlY1B0cklzVmFsaWQocHJpdmF0ZS0+ZW5kcHRyKSkKKwl7CisJCWlmICh0YXJnZXRQ YWdlUHRyICsgWExPR19CTENLU1ogPD0gcHJpdmF0ZS0+ZW5kcHRyKQorCQkJY291bnQgPSBYTE9H X0JMQ0tTWjsKKwkJZWxzZSBpZiAodGFyZ2V0UGFnZVB0ciArIHJlcUxlbiA8PSBwcml2YXRlLT5l bmRwdHIpCisJCQljb3VudCA9IHByaXZhdGUtPmVuZHB0ciAtIHRhcmdldFBhZ2VQdHI7CisJCWVs c2UKKwkJeworCQkJcHJpdmF0ZS0+ZW5kcHRyX3JlYWNoZWQgPSB0cnVlOworCQkJcmV0dXJuIC0x OworCQl9CisJfQorCisJcmV0dXJuIGNvdW50OworfQorCiAvKiBwZ193YWxkdW1wJ3MgWExvZ1Jl YWRlclJvdXRpbmUtPnNlZ21lbnRfb3BlbiBjYWxsYmFjayAqLwogc3RhdGljIHZvaWQKIFdBTER1 bXBPcGVuU2VnbWVudChYTG9nUmVhZGVyU3RhdGUgKnN0YXRlLCBYTG9nU2VnTm8gbmV4dFNlZ05v LApAQCAtMzgzLDIxICs0MDYsMTEgQEAgV0FMRHVtcFJlYWRQYWdlKFhMb2dSZWFkZXJTdGF0ZSAq c3RhdGUsIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwgaW50IHJlcUxlbiwKIAkJCQlYTG9nUmVj UHRyIHRhcmdldFB0ciwgY2hhciAqcmVhZEJ1ZmYpCiB7CiAJWExvZ0R1bXBQcml2YXRlICpwcml2 YXRlID0gc3RhdGUtPnByaXZhdGVfZGF0YTsKLQlpbnQJCQljb3VudCA9IFhMT0dfQkxDS1NaOwor CWludAkJCWNvdW50ID0gcmVxdWlyZWRfcmVhZF9sZW4ocHJpdmF0ZSwgdGFyZ2V0UGFnZVB0ciwg cmVxTGVuKTsKIAlXQUxSZWFkRXJyb3IgZXJyaW5mbzsKIAotCWlmIChYTG9nUmVjUHRySXNWYWxp ZChwcml2YXRlLT5lbmRwdHIpKQotCXsKLQkJaWYgKHRhcmdldFBhZ2VQdHIgKyBYTE9HX0JMQ0tT WiA8PSBwcml2YXRlLT5lbmRwdHIpCi0JCQljb3VudCA9IFhMT0dfQkxDS1NaOwotCQllbHNlIGlm ICh0YXJnZXRQYWdlUHRyICsgcmVxTGVuIDw9IHByaXZhdGUtPmVuZHB0cikKLQkJCWNvdW50ID0g cHJpdmF0ZS0+ZW5kcHRyIC0gdGFyZ2V0UGFnZVB0cjsKLQkJZWxzZQotCQl7Ci0JCQlwcml2YXRl LT5lbmRwdHJfcmVhY2hlZCA9IHRydWU7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQl9CisJaWYgKHBy aXZhdGUtPmVuZHB0cl9yZWFjaGVkKQorCQlyZXR1cm4gLTE7CiAKIAlpZiAoIVdBTFJlYWQoc3Rh dGUsIHJlYWRCdWZmLCB0YXJnZXRQYWdlUHRyLCBjb3VudCwgcHJpdmF0ZS0+dGltZWxpbmUsCiAJ CQkJICZlcnJpbmZvKSkKLS0gCjIuNDcuMQoK --000000000000879a6c0643c31997 Content-Type: application/octet-stream; name="v6-0003-Refactor-pg_waldump-Restructure-TAP-tests.patch" Content-Disposition: attachment; filename="v6-0003-Refactor-pg_waldump-Restructure-TAP-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mi2n3k3m2 RnJvbSBiNGQzNDcxNTNhMGIxZWVkMzUzYTA1NDkzMzFhNTJjMjMyYWEwNGFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgMzAgSnVsIDIwMjUgMTI6NDM6MzAgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2IDMvOF0gUmVm 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 --000000000000879a6c0643c31997 Content-Type: application/octet-stream; name="v6-0004-pg_waldump-Add-support-for-archived-WAL-decoding.patch" Content-Disposition: attachment; filename="v6-0004-pg_waldump-Add-support-for-archived-WAL-decoding.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mi2n3nm23 RnJvbSAxODdlNDdhY2MxMmI0OTgzYTEzYzljNGFhZDdmYmM2NmY5MmRiMGY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgNSBOb3YgMjAyNSAxNTo0MDozNiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjYgNC84XSBwZ193 YWxkdW1wOiBBZGQgc3VwcG9ydCBmb3IgYXJjaGl2ZWQgV0FMIGRlY29kaW5nLgoKcGdfd2FsZHVt cCBjYW4gbm93IGFjY2VwdCB0aGUgcGF0aCB0byBhIHRhciBhcmNoaXZlIGNvbnRhaW5pbmcgV0FM CmZpbGVzIGFuZCBkZWNvZGUgdGhlbS4gVGhpcyBmZWF0dXJlIHdhcyBhZGRlZCBwcmltYXJpbHkg Zm9yCnBnX3ZlcmlmeWJhY2t1cCwgd2hpY2ggcHJldmlvdXNseSBkaXNhYmxlZCBXQUwgcGFyc2lu ZyBmb3IKdGFyLWZvcm1hdHRlZCBiYWNrdXBzLgoKTm90ZSB0aGF0IHRoaXMgcGF0Y2ggcmVxdWly ZXMgdGhhdCB0aGUgV0FMIGZpbGVzIHdpdGhpbiB0aGUgYXJjaGl2ZSBiZQppbiBzZXF1ZW50aWFs IG9yZGVyOyBhbiBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIG90aGVyd2lzZS4gVGhlIG5leHQKcGF0 Y2ggaXMgcGxhbm5lZCB0byByZW1vdmUgdGhpcyByZXN0cmljdGlvbi4KLS0tCiBkb2Mvc3JjL3Nn bWwvcmVmL3BnX3dhbGR1bXAuc2dtbCAgICAgfCAgIDggKy0KIHNyYy9iaW4vcGdfd2FsZHVtcC9N YWtlZmlsZSAgICAgICAgICB8ICAgNyArLQogc3JjL2Jpbi9wZ193YWxkdW1wL2FyY2hpdmVfd2Fs ZHVtcC5jIHwgNTc3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2Jpbi9wZ193YWxk dW1wL21lc29uLmJ1aWxkICAgICAgIHwgICA0ICstCiBzcmMvYmluL3BnX3dhbGR1bXAvcGdfd2Fs ZHVtcC5jICAgICAgfCAyMTcgKysrKysrKy0tLQogc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1 bXAuaCAgICAgIHwgIDM2ICstCiBzcmMvYmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMucGwgICAg fCAgODQgKysrLQogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgIHwgICAzICsK IDggZmlsZXMgY2hhbmdlZCwgODYwIGluc2VydGlvbnMoKyksIDc2IGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy9iaW4vcGdfd2FsZHVtcC9hcmNoaXZlX3dhbGR1bXAuYwoKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfd2FsZHVtcC5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9wZ193YWxkdW1wLnNnbWwKaW5kZXggY2UyM2FkZDU1NzcuLmQwMDRiYjBmNjdlIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3dhbGR1bXAuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL3BnX3dhbGR1bXAuc2dtbApAQCAtMTQxLDEzICsxNDEsMTcgQEAgUG9zdGdyZVNRTCBk b2N1bWVudGF0aW9uCiAgICAgICA8dGVybT48b3B0aW9uPi0tcGF0aD08cmVwbGFjZWFibGU+cGF0 aDwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJtPgogICAgICAgPGxpc3RpdGVtPgogICAgICAg IDxwYXJhPgotICAgICAgICBTcGVjaWZpZXMgYSBkaXJlY3RvcnkgdG8gc2VhcmNoIGZvciBXQUwg c2VnbWVudCBmaWxlcyBvciBhCi0gICAgICAgIGRpcmVjdG9yeSB3aXRoIGEgPGxpdGVyYWw+cGdf d2FsPC9saXRlcmFsPiBzdWJkaXJlY3RvcnkgdGhhdAorICAgICAgICBTcGVjaWZpZXMgYSB0YXIg YXJjaGl2ZSBvciBhIGRpcmVjdG9yeSB0byBzZWFyY2ggZm9yIFdBTCBzZWdtZW50IGZpbGVzCisg ICAgICAgIG9yIGEgZGlyZWN0b3J5IHdpdGggYSA8bGl0ZXJhbD5wZ193YWw8L2xpdGVyYWw+IHN1 YmRpcmVjdG9yeSB0aGF0CiAgICAgICAgIGNvbnRhaW5zIHN1Y2ggZmlsZXMuICBUaGUgZGVmYXVs dCBpcyB0byBzZWFyY2ggaW4gdGhlIGN1cnJlbnQKICAgICAgICAgZGlyZWN0b3J5LCB0aGUgPGxp dGVyYWw+cGdfd2FsPC9saXRlcmFsPiBzdWJkaXJlY3Rvcnkgb2YgdGhlCiAgICAgICAgIGN1cnJl bnQgZGlyZWN0b3J5LCBhbmQgdGhlIDxsaXRlcmFsPnBnX3dhbDwvbGl0ZXJhbD4gc3ViZGlyZWN0 b3J5CiAgICAgICAgIG9mIDxlbnZhcj5QR0RBVEE8L2VudmFyPi4KICAgICAgICA8L3BhcmE+Cisg ICAgICAgPHBhcmE+CisgICAgICAgIElmIGEgdGFyIGFyY2hpdmUgaXMgcHJvdmlkZWQsIGl0cyBX QUwgc2VnbWVudCBmaWxlcyBtdXN0IGJlIGluCisgICAgICAgIHNlcXVlbnRpYWwgb3JkZXI7IG90 aGVyd2lzZSwgYW4gZXJyb3Igd2lsbCBiZSByZXBvcnRlZC4KKyAgICAgICA8L3BhcmE+CiAgICAg ICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIApkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ193YWxkdW1wL01ha2VmaWxlIGIvc3JjL2Jpbi9wZ193YWxkdW1wL01ha2VmaWxlCmluZGV4 IDRjMWVlNjQ5NTAxLi4wNWFjNTc2M2E1NyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ193YWxkdW1w L01ha2VmaWxlCisrKyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9NYWtlZmlsZQpAQCAtMyw2ICszLDkg QEAKIFBHRklMRURFU0MgPSAicGdfd2FsZHVtcCAtIGRlY29kZSBhbmQgZGlzcGxheSBXQUwiCiBQ R0FQUElDT049d2luMzIKIAorIyBtYWtlIHRoZXNlIGF2YWlsYWJsZSB0byBUQVAgdGVzdCBzY3Jp cHRzCitleHBvcnQgVEFSCisKIHN1YmRpciA9IHNyYy9iaW4vcGdfd2FsZHVtcAogdG9wX2J1aWxk ZGlyID0gLi4vLi4vLi4KIGluY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL3NyYy9NYWtlZmlsZS5nbG9i YWwKQEAgLTEyLDExICsxNSwxMyBAQCBPQkpTID0gXAogCSQoV0lOMzJSRVMpIFwKIAljb21wYXQu byBcCiAJcGdfd2FsZHVtcC5vIFwKKwlhcmNoaXZlX3dhbGR1bXAubyBcCiAJcm1ncmRlc2MubyBc CiAJeGxvZ3JlYWRlci5vIFwKIAl4bG9nc3RhdHMubwogCi1vdmVycmlkZSBDUFBGTEFHUyA6PSAt REZST05URU5EICQoQ1BQRkxBR1MpCitvdmVycmlkZSBDUFBGTEFHUyA6PSAtREZST05URU5EIC1J JChsaWJwcV9zcmNkaXIpICQoQ1BQRkxBR1MpCitMREZMQUdTX0lOVEVSTkFMICs9IC1MJCh0b3Bf YnVpbGRkaXIpL3NyYy9mZV91dGlscyAtbHBnZmV1dGlscwogCiBSTUdSREVTQ1NPVVJDRVMgPSAk KHNvcnQgJChub3RkaXIgJCh3aWxkY2FyZCAkKHRvcF9zcmNkaXIpL3NyYy9iYWNrZW5kL2FjY2Vz cy9ybWdyZGVzYy8qZGVzYyouYykpKQogUk1HUkRFU0NPQkpTID0gJChwYXRzdWJzdCAlLmMsJS5v LCQoUk1HUkRFU0NTT1VSQ0VTKSkKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVtcC9hcmNo aXZlX3dhbGR1bXAuYyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9hcmNoaXZlX3dhbGR1bXAuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjgzMGM4OWE3YmUKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvYmluL3BnX3dhbGR1bXAvYXJjaGl2ZV93YWxkdW1wLmMKQEAgLTAsMCAr MSw1NzcgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGFyY2hpdmVfd2FsZHVtcC5jCisg KgkJQSBnZW5lcmljIGZhY2lsaXR5IGZvciByZWFkaW5nIFdBTCBkYXRhIGZyb20gdGFyIGFyY2hp dmVzIHZpYSBhcmNoaXZlCisgKgkJc3RyZWFtZXIuCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0 IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoKKyAqIElE RU5USUZJQ0FUSU9OCisgKgkJc3JjL2Jpbi9wZ193YWxkdW1wL2FyY2hpdmVfd2FsZHVtcC5jCisg KgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzX2ZlLmgiCisK KyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgImFjY2Vzcy94bG9nX2ludGVybmFsLmgi CisjaW5jbHVkZSAiY29tbW9uL2hhc2hmbi5oIgorI2luY2x1ZGUgImNvbW1vbi9sb2dnaW5nLmgi CisjaW5jbHVkZSAiZmVfdXRpbHMvc2ltcGxlX2xpc3QuaCIKKyNpbmNsdWRlICJwZ193YWxkdW1w LmgiCisKKy8qCisgKiBIb3cgbWFueSBieXRlcyBzaG91bGQgd2UgdHJ5IHRvIHJlYWQgZnJvbSBh IGZpbGUgYXQgb25jZT8KKyAqLworI2RlZmluZSBSRUFEX0NIVU5LX1NJWkUJCQkJKDEyOCAqIDEw MjQpCisKKy8qIFN0cnVjdHVyZSBmb3Igc3RvcmluZyB0aGUgV0FMIHNlZ21lbnQgZGF0YSBmcm9t IHRoZSBhcmNoaXZlICovCit0eXBlZGVmIHN0cnVjdCBBcmNoaXZlZFdBTEVudHJ5Cit7CisJdWlu dDMyCQlzdGF0dXM7CQkJLyogaGFzaCBzdGF0dXMgKi8KKwlYTG9nU2VnTm8Jc2Vnbm87CQkJLyog aGFzaCBrZXk6IFdBTCBzZWdtZW50IG51bWJlciAqLworCVRpbWVMaW5lSUQJdGltZWxpbmU7CQkv KiB0aW1lbGluZSBvZiB0aGlzIHdhbCBmaWxlICovCisKKwlTdHJpbmdJbmZvRGF0YSBidWY7CisJ Ym9vbAkJdG1wc2VnX2V4aXN0czsJLyogc3BpbGwgZmlsZSBleGlzdHM/ICovCisKKwlpbnQJCQl0 b3RhbF9yZWFkOwkJLyogdG90YWwgcmVhZCBvZiB0aGlzIFdBTCBzZWdtZW50LCBpbmNsdWRpbmcK KwkJCQkJCQkJICogYnVmZmVyZWQgYW5kIHRlbXBvcmFyaWx5IHdyaXR0ZW4gZGF0YSAqLworfSBB cmNoaXZlZFdBTEVudHJ5OworCisjZGVmaW5lIFNIX1BSRUZJWAkJCQlBcmNoaXZlZFdBTAorI2Rl ZmluZSBTSF9FTEVNRU5UX1RZUEUJCQlBcmNoaXZlZFdBTEVudHJ5CisjZGVmaW5lIFNIX0tFWV9U WVBFCQkJCVhMb2dTZWdObworI2RlZmluZSBTSF9LRVkJCQkJCXNlZ25vCisjZGVmaW5lIFNIX0hB U0hfS0VZKHRiLCBrZXkpCW11cm11cmhhc2g2NCgodWludDY0KSBrZXkpCisjZGVmaW5lIFNIX0VR VUFMKHRiLCBhLCBiKQkJKGEgPT0gYikKKyNkZWZpbmUgU0hfR0VUX0hBU0godGIsIGEpCQlhLT5o YXNoCisjZGVmaW5lIFNIX1NDT1BFCQkJCXN0YXRpYyBpbmxpbmUKKyNkZWZpbmUgU0hfUkFXX0FM TE9DQVRPUgkJcGdfbWFsbG9jMAorI2RlZmluZSBTSF9ERUNMQVJFCisjZGVmaW5lIFNIX0RFRklO RQorI2luY2x1ZGUgImxpYi9zaW1wbGVoYXNoLmgiCisKK3N0YXRpYyBBcmNoaXZlZFdBTF9oYXNo ICpBcmNoaXZlZFdBTF9IVEFCID0gTlVMTDsKKwordHlwZWRlZiBzdHJ1Y3QgYXN0cmVhbWVyX3dh bGR1bXAKK3sKKwlhc3RyZWFtZXIJYmFzZTsKKwlYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZv OworfSBhc3RyZWFtZXJfd2FsZHVtcDsKKworc3RhdGljIGludAlyZWFkX2FyY2hpdmVfZmlsZShY TG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvLCBTaXplIGNvdW50KTsKK3N0YXRpYyBBcmNoaXZl ZFdBTEVudHJ5ICpnZXRfYXJjaGl2ZV93YWxfZW50cnkoWExvZ1NlZ05vIHNlZ25vLAorCQkJCQkJ CQkJCQkgICBYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvKTsKKworc3RhdGljIGFzdHJlYW1l ciAqYXN0cmVhbWVyX3dhbGR1bXBfbmV3KFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUluZm8pOwor c3RhdGljIHZvaWQgYXN0cmVhbWVyX3dhbGR1bXBfY29udGVudChhc3RyZWFtZXIgKnN0cmVhbWVy LAorCQkJCQkJCQkJICBhc3RyZWFtZXJfbWVtYmVyICptZW1iZXIsCisJCQkJCQkJCQkgIGNvbnN0 IGNoYXIgKmRhdGEsIGludCBsZW4sCisJCQkJCQkJCQkgIGFzdHJlYW1lcl9hcmNoaXZlX2NvbnRl eHQgY29udGV4dCk7CitzdGF0aWMgdm9pZCBhc3RyZWFtZXJfd2FsZHVtcF9maW5hbGl6ZShhc3Ry ZWFtZXIgKnN0cmVhbWVyKTsKK3N0YXRpYyB2b2lkIGFzdHJlYW1lcl93YWxkdW1wX2ZyZWUoYXN0 cmVhbWVyICpzdHJlYW1lcik7CisKK3N0YXRpYyBib29sIG1lbWJlcl9pc193YWxfZmlsZShhc3Ry ZWFtZXJfd2FsZHVtcCAqbXlzdHJlYW1lciwKKwkJCQkJCQkgICBhc3RyZWFtZXJfbWVtYmVyICpt ZW1iZXIsCisJCQkJCQkJICAgWExvZ1NlZ05vICpjdXJTZWdObywKKwkJCQkJCQkgICBUaW1lTGlu ZUlEICpjdXJUaW1lbGluZSk7CisKK3N0YXRpYyBjb25zdCBhc3RyZWFtZXJfb3BzIGFzdHJlYW1l cl93YWxkdW1wX29wcyA9IHsKKwkuY29udGVudCA9IGFzdHJlYW1lcl93YWxkdW1wX2NvbnRlbnQs CisJLmZpbmFsaXplID0gYXN0cmVhbWVyX3dhbGR1bXBfZmluYWxpemUsCisJLmZyZWUgPSBhc3Ry ZWFtZXJfd2FsZHVtcF9mcmVlCit9OworCisvKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZl biBmaWxlIGlzIGEgdGFyIGFyY2hpdmUgYW5kIG91dHB1dHMgaXRzIGNvbXByZXNzaW9uCisgKiBh bGdvcml0aG0uCisgKi8KK2Jvb2wKK2lzX2FyY2hpdmVfZmlsZShjb25zdCBjaGFyICpmbmFtZSwg cGdfY29tcHJlc3NfYWxnb3JpdGhtICpjb21wcmVzc2lvbikKK3sKKwlpbnQJCQlmbmFtZV9sZW4g PSBzdHJsZW4oZm5hbWUpOworCXBnX2NvbXByZXNzX2FsZ29yaXRobSBjb21wcmVzc19hbGdvOwor CisJLyogTm93LCBjaGVjayB0aGUgY29tcHJlc3Npb24gdHlwZSBvZiB0aGUgdGFyICovCisJaWYg KGZuYW1lX2xlbiA+IDQgJiYKKwkJc3RyY21wKGZuYW1lICsgZm5hbWVfbGVuIC0gNCwgIi50YXIi KSA9PSAwKQorCQljb21wcmVzc19hbGdvID0gUEdfQ09NUFJFU1NJT05fTk9ORTsKKwllbHNlIGlm IChmbmFtZV9sZW4gPiA0ICYmCisJCQkgc3RyY21wKGZuYW1lICsgZm5hbWVfbGVuIC0gNCwgIi50 Z3oiKSA9PSAwKQorCQljb21wcmVzc19hbGdvID0gUEdfQ09NUFJFU1NJT05fR1pJUDsKKwllbHNl IGlmIChmbmFtZV9sZW4gPiA3ICYmCisJCQkgc3RyY21wKGZuYW1lICsgZm5hbWVfbGVuIC0gNywg Ii50YXIuZ3oiKSA9PSAwKQorCQljb21wcmVzc19hbGdvID0gUEdfQ09NUFJFU1NJT05fR1pJUDsK KwllbHNlIGlmIChmbmFtZV9sZW4gPiA4ICYmCisJCQkgc3RyY21wKGZuYW1lICsgZm5hbWVfbGVu IC0gOCwgIi50YXIubHo0IikgPT0gMCkKKwkJY29tcHJlc3NfYWxnbyA9IFBHX0NPTVBSRVNTSU9O X0xaNDsKKwllbHNlIGlmIChmbmFtZV9sZW4gPiA4ICYmCisJCQkgc3RyY21wKGZuYW1lICsgZm5h bWVfbGVuIC0gOCwgIi50YXIuenN0IikgPT0gMCkKKwkJY29tcHJlc3NfYWxnbyA9IFBHX0NPTVBS RVNTSU9OX1pTVEQ7CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7CisKKwkqY29tcHJlc3Npb24gPSBj b21wcmVzc19hbGdvOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBJbml0aWFsaXplcyB0 aGUgdGFyIGFyY2hpdmUgcmVhZGVyIHRvIHJlYWQgV0FMIGZpbGVzIGZyb20gdGhlIGFyY2hpdmUs CisgKiBjcmVhdGVzIGEgaGFzaCB0YWJsZSB0byBzdG9yZSB0aGVtLCBwZXJmb3JtcyBxdWljayBl eGlzdGVuY2UgY2hlY2tzIGZvciBXQUwKKyAqIGVudHJpZXMgaW4gdGhlIGFyY2hpdmUgYW5kIHJl dHJpZXZlcyB0aGUgV0FMIHNlZ21lbnQgc2l6ZSwgYW5kIHNldHMgdXAKKyAqIGZpbHRlcmluZyBj cml0ZXJpYSBmb3IgcmVsZXZhbnQgZW50cmllcy4KKyAqLwordm9pZAoraW5pdF9hcmNoaXZlX3Jl YWRlcihYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvLCBjb25zdCBjaGFyICp3YWxkaXIsCisJ CQkJCXBnX2NvbXByZXNzX2FsZ29yaXRobSBjb21wcmVzc2lvbikKK3sKKwlpbnQJCQlmZDsKKwlh c3RyZWFtZXIgICpzdHJlYW1lcjsKKwlBcmNoaXZlZFdBTEVudHJ5ICplbnRyeSA9IE5VTEw7CisJ WExvZ0xvbmdQYWdlSGVhZGVyIGxvbmdoZHI7CisKKwkvKiBPcGVuIHRhciBhcmNoaXZlIGFuZCBz dG9yZSBpdHMgZmlsZSBkZXNjcmlwdG9yICovCisJZmQgPSBvcGVuX2ZpbGVfaW5fZGlyZWN0b3J5 KHdhbGRpciwgcHJpdmF0ZUluZm8tPmFyY2hpdmVfbmFtZSk7CisKKwlpZiAoZmQgPCAwKQorCQlw Z19mYXRhbCgiY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCIiLCBwcml2YXRlSW5mby0+YXJjaGl2 ZV9uYW1lKTsKKworCXByaXZhdGVJbmZvLT5hcmNoaXZlX2ZkID0gZmQ7CisKKwlzdHJlYW1lciA9 IGFzdHJlYW1lcl93YWxkdW1wX25ldyhwcml2YXRlSW5mbyk7CisKKwkvKiBCZWZvcmUgdGhhdCB3 ZSBtdXN0IHBhcnNlIHRoZSB0YXIgYXJjaGl2ZS4gKi8KKwlzdHJlYW1lciA9IGFzdHJlYW1lcl90 YXJfcGFyc2VyX25ldyhzdHJlYW1lcik7CisKKwkvKiBCZWZvcmUgdGhhdCB3ZSBtdXN0IGRlY29t cHJlc3MsIGlmIGFyY2hpdmUgaXMgY29tcHJlc3NlZC4gKi8KKwlpZiAoY29tcHJlc3Npb24gPT0g UEdfQ09NUFJFU1NJT05fR1pJUCkKKwkJc3RyZWFtZXIgPSBhc3RyZWFtZXJfZ3ppcF9kZWNvbXBy ZXNzb3JfbmV3KHN0cmVhbWVyKTsKKwllbHNlIGlmIChjb21wcmVzc2lvbiA9PSBQR19DT01QUkVT U0lPTl9MWjQpCisJCXN0cmVhbWVyID0gYXN0cmVhbWVyX2x6NF9kZWNvbXByZXNzb3JfbmV3KHN0 cmVhbWVyKTsKKwllbHNlIGlmIChjb21wcmVzc2lvbiA9PSBQR19DT01QUkVTU0lPTl9aU1REKQor CQlzdHJlYW1lciA9IGFzdHJlYW1lcl96c3RkX2RlY29tcHJlc3Nvcl9uZXcoc3RyZWFtZXIpOwor CisJcHJpdmF0ZUluZm8tPmFyY2hpdmVfc3RyZWFtZXIgPSBzdHJlYW1lcjsKKworCS8qIEhhc2gg dGFibGUgc3RvcmluZyBXQUwgZW50cmllcyByZWFkIGZyb20gdGhlIGFyY2hpdmUgKi8KKwlBcmNo aXZlZFdBTF9IVEFCID0gQXJjaGl2ZWRXQUxfY3JlYXRlKDE2LCBOVUxMKTsKKworCS8qCisJICog VmVyaWZ5IHRoYXQgdGhlIGFyY2hpdmUgY29udGFpbnMgdmFsaWQgV0FMIGZpbGVzIGFuZCBmZXRj aCBXQUwgc2VnbWVudAorCSAqIHNpemUKKwkgKi8KKwl3aGlsZSAoZW50cnkgPT0gTlVMTCB8fCBl bnRyeS0+YnVmLmxlbiA8IFhMT0dfQkxDS1NaKQorCXsKKwkJaWYgKHJlYWRfYXJjaGl2ZV9maWxl KHByaXZhdGVJbmZvLCBYTE9HX0JMQ0tTWikgPT0gMCkKKwkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qg ZmluZCBXQUwgaW4gXCIlc1wiIGFyY2hpdmUiLAorCQkJCQkgcHJpdmF0ZUluZm8tPmFyY2hpdmVf bmFtZSk7CisKKwkJZW50cnkgPSBwcml2YXRlSW5mby0+Y3VyX3dhbDsKKwl9CisKKwkvKiBTZXQg V2FsU2VnU3ogaWYgV0FMIGRhdGEgaXMgc3VjY2Vzc2Z1bGx5IHJlYWQgKi8KKwlsb25naGRyID0g KFhMb2dMb25nUGFnZUhlYWRlcikgZW50cnktPmJ1Zi5kYXRhOworCisJV2FsU2VnU3ogPSBsb25n aGRyLT54bHBfc2VnX3NpemU7CisKKwlpZiAoIUlzVmFsaWRXYWxTZWdTaXplKFdhbFNlZ1N6KSkK Kwl7CisJCXBnX2xvZ19lcnJvcihuZ2V0dGV4dCgiaW52YWxpZCBXQUwgc2VnbWVudCBzaXplIGlu IFdBTCBmaWxlIGZyb20gYXJjaGl2ZSBcIiVzXCIgKCVkIGJ5dGUpIiwKKwkJCQkJCQkgICJpbnZh bGlkIFdBTCBzZWdtZW50IHNpemUgaW4gV0FMIGZpbGUgZnJvbSBhcmNoaXZlIFwiJXNcIiAoJWQg Ynl0ZXMpIiwKKwkJCQkJCQkgIFdhbFNlZ1N6KSwKKwkJCQkJIHByaXZhdGVJbmZvLT5hcmNoaXZl X25hbWUsIFdhbFNlZ1N6KTsKKwkJcGdfbG9nX2Vycm9yX2RldGFpbCgiVGhlIFdBTCBzZWdtZW50 IHNpemUgbXVzdCBiZSBhIHBvd2VyIG9mIHR3byBiZXR3ZWVuIDEgTUIgYW5kIDEgR0IuIik7CisJ CWV4aXQoMSk7CisJfQorCisJLyoKKwkgKiBXaXRoIHRoZSBXQUwgc2VnbWVudCBzaXplIGF2YWls YWJsZSwgd2UgY2FuIG5vdyBpbml0aWFsaXplIHRoZQorCSAqIGRlcGVuZGVudCBzdGFydCBhbmQg ZW5kIHNlZ21lbnQgbnVtYmVycy4KKwkgKi8KKwlYTEJ5dGVUb1NlZyhwcml2YXRlSW5mby0+c3Rh cnRwdHIsIHByaXZhdGVJbmZvLT5zdGFydFNlZ05vLCBXYWxTZWdTeik7CisJWExCeXRlVG9TZWco cHJpdmF0ZUluZm8tPmVuZHB0ciwgcHJpdmF0ZUluZm8tPmVuZFNlZ05vLCBXYWxTZWdTeik7Cit9 CisKKy8qCisgKiBSZWxlYXNlIHRoZSBhcmNoaXZlIHN0cmVhbWVyIGNoYWluIGFuZCBjbG9zZSB0 aGUgYXJjaGl2ZSBmaWxlLgorICovCit2b2lkCitmcmVlX2FyY2hpdmVfcmVhZGVyKFhMb2dEdW1w UHJpdmF0ZSAqcHJpdmF0ZUluZm8pCit7CisJLyoKKwkgKiBOQjogTm9ybWFsbHksIGFzdHJlYW1l cl9maW5hbGl6ZSgpIGlzIGNhbGxlZCBiZWZvcmUgYXN0cmVhbWVyX2ZyZWUoKSB0bworCSAqIGZs dXNoIGFueSByZW1haW5pbmcgYnVmZmVyZWQgZGF0YSBvciB0byBlbnN1cmUgdGhlIGVuZCBvZiB0 aGUgdGFyCisJICogYXJjaGl2ZSBpcyByZWFjaGVkLiBIb3dldmVyLCB3aGVuIGRlY29kaW5nIGEg V0FMIGZpbGUsIG9uY2Ugd2UgaGl0IHRoZQorCSAqIGVuZCBMU04sIGFueSByZW1haW5pbmcgV0FM IGRhdGEgaW4gdGhlIGJ1ZmZlciBvciB0aGUgdGFyIGFyY2hpdmUncworCSAqIHVucmVhY2hlZCBl bmQgY2FuIGJlIHNhZmVseSBpZ25vcmVkLgorCSAqLworCWFzdHJlYW1lcl9mcmVlKHByaXZhdGVJ bmZvLT5hcmNoaXZlX3N0cmVhbWVyKTsKKworCS8qIENsb3NlIHRoZSBmaWxlLiAqLworCWlmIChj bG9zZShwcml2YXRlSW5mby0+YXJjaGl2ZV9mZCkgIT0gMCkKKwkJcGdfbG9nX2Vycm9yKCJjb3Vs ZCBub3QgY2xvc2UgZmlsZSBcIiVzXCI6ICVtIiwKKwkJCQkJIHByaXZhdGVJbmZvLT5hcmNoaXZl X25hbWUpOworfQorCisvKgorICogQ29waWVzIFdBTCBkYXRhIGZyb20gYXN0cmVhbWVyIHRvIHJl YWRCdWZmOyBpZiB1bmF2YWlsYWJsZSwgZmV0Y2hlcyBtb3JlCisgKiBmcm9tIHRoZSB0YXIgYXJj aGl2ZSB2aWEgYXN0cmVhbWVyLgorICovCitpbnQKK3JlYWRfYXJjaGl2ZV93YWxfcGFnZShYTG9n RHVtcFByaXZhdGUgKnByaXZhdGVJbmZvLCBYTG9nUmVjUHRyIHRhcmdldFBhZ2VQdHIsCisJCQkJ CSAgU2l6ZSBjb3VudCwgY2hhciAqcmVhZEJ1ZmYpCit7CisJY2hhcgkgICAqcCA9IHJlYWRCdWZm OworCVNpemUJCW5ieXRlcyA9IGNvdW50OworCVhMb2dSZWNQdHIJcmVjcHRyID0gdGFyZ2V0UGFn ZVB0cjsKKwlYTG9nU2VnTm8Jc2Vnbm87CisJQXJjaGl2ZWRXQUxFbnRyeSAqZW50cnk7CisKKwlY TEJ5dGVUb1NlZyh0YXJnZXRQYWdlUHRyLCBzZWdubywgV2FsU2VnU3opOworCWVudHJ5ID0gZ2V0 X2FyY2hpdmVfd2FsX2VudHJ5KHNlZ25vLCBwcml2YXRlSW5mbyk7CisKKwl3aGlsZSAobmJ5dGVz ID4gMCkKKwl7CisJCWNoYXIJICAgKmJ1ZiA9IGVudHJ5LT5idWYuZGF0YTsKKwkJaW50CQkJbGVu ID0gZW50cnktPmJ1Zi5sZW47CisKKwkJLyogV0FMIHJlY29yZCByYW5nZSB0aGF0IHRoZSBidWZm ZXIgY29udGFpbnMgKi8KKwkJWExvZ1JlY1B0cgllbmRQdHI7CisJCVhMb2dSZWNQdHIJc3RhcnRQ dHI7CisKKwkJWExvZ1NlZ05vT2Zmc2V0VG9SZWNQdHIoZW50cnktPnNlZ25vLCBlbnRyeS0+dG90 YWxfcmVhZCwKKwkJCQkJCQkJV2FsU2VnU3osIGVuZFB0cik7CisJCXN0YXJ0UHRyID0gZW5kUHRy IC0gbGVuOworCisJCUFzc2VydCgoZW5kUHRyIC0gc3RhcnRQdHIpID09IGxlbik7CisKKwkJLyoK KwkJICogcGdfd2FsZHVtcCBuZXZlciBhc2sgdGhlIHNhbWUgV0FMIGJ5dGVzIG1vcmUgdGhhbiBv bmNlLCBzbyBpZiB3ZSdyZQorCQkgKiBub3cgYmVpbmcgYXNrZWQgZm9yIGRhdGEgYmV5b25kIHRo ZSBlbmQgb2Ygd2hhdCB3ZSd2ZSBhbHJlYWR5IHJlYWQsCisJCSAqIHRoYXQgbWVhbnMgbm9uZSBv ZiB0aGUgZGF0YSB3ZSBjdXJyZW50bHkgaGF2ZSBpbiB0aGUgYnVmZmVyIHdpbGwKKwkJICogZXZl ciBiZSBjb25zdWx0ZWQgYWdhaW4uIFNvLCB3ZSBjYW4gZGlzY2FyZCB0aGUgZXhpc3RpbmcgYnVm ZmVyCisJCSAqIGNvbnRlbnRzIGFuZCBzdGFydCBvdmVyLgorCQkgKi8KKwkJaWYgKHJlY3B0ciA+ PSBlbmRQdHIpCisJCXsKKwkJCWxlbiA9IDA7CisKKwkJCS8qIERpc2NhcmQgdGhlIGJ1ZmZlcmVk IGRhdGEgKi8KKwkJCXJlc2V0U3RyaW5nSW5mbygmZW50cnktPmJ1Zik7CisJCX0KKworCQlpZiAo bGVuID4gMCAmJiByZWNwdHIgPiBzdGFydFB0cikKKwkJeworCQkJaW50CQkJc2tpcEJ5dGVzID0g MDsKKworCQkJLyoKKwkJCSAqIFRoZSByZXF1aXJlZCBvZmZzZXQgaXMgbm90IGF0IHRoZSBzdGFy dCBvZiB0aGUgYnVmZmVyLCBzbyBza2lwCisJCQkgKiBieXRlcyB1bnRpbCByZWFjaGluZyB0aGUg ZGVzaXJlZCBvZmZzZXQgb2YgdGhlIHRhcmdldCBwYWdlLgorCQkJICovCisJCQlza2lwQnl0ZXMg PSByZWNwdHIgLSBzdGFydFB0cjsKKworCQkJYnVmICs9IHNraXBCeXRlczsKKwkJCWxlbiAtPSBz a2lwQnl0ZXM7CisJCX0KKworCQlpZiAobGVuID4gMCkKKwkJeworCQkJaW50CQkJcmVhZEJ5dGVz ID0gbGVuID49IG5ieXRlcyA/IG5ieXRlcyA6IGxlbjsKKworCQkJLyogRW5zdXJlIHJlYWRpbmcg Y29ycmVjdCBXQUwgcmVjb3JkICovCisJCQlBc3NlcnQocmVjcHRyID49IHN0YXJ0UHRyICYmIHJl Y3B0ciA8IGVuZFB0cik7CisKKwkJCW1lbWNweShwLCBidWYsIHJlYWRCeXRlcyk7CisKKwkJCS8q IFVwZGF0ZSBzdGF0ZSBmb3IgcmVhZCAqLworCQkJbmJ5dGVzIC09IHJlYWRCeXRlczsKKwkJCXAg Kz0gcmVhZEJ5dGVzOworCQkJcmVjcHRyICs9IHJlYWRCeXRlczsKKwkJfQorCQllbHNlCisJCXsK KwkJCS8qCisJCQkgKiBGZXRjaCBtb3JlIGRhdGE7IHJhaXNlIGFuIGVycm9yIGlmIGl0J3Mgbm90 IHRoZSBjdXJyZW50IHNlZ21lbnQKKwkJCSAqIGJlaW5nIHJlYWQgYnkgdGhlIGFyY2hpdmUgc3Ry ZWFtZXIgb3IgaWYgcmVhZGluZyBvZiB0aGUKKwkJCSAqIGFyY2hpdmVkIGZpbGUgaGFzIGZpbmlz aGVkLgorCQkJICovCisJCQlpZiAocHJpdmF0ZUluZm8tPmN1cl93YWwgIT0gZW50cnkgfHwKKwkJ CQlyZWFkX2FyY2hpdmVfZmlsZShwcml2YXRlSW5mbywgUkVBRF9DSFVOS19TSVpFKSA9PSAwKQor CQkJeworCQkJCWNoYXIJCWZuYW1lW01BWEZOQU1FTEVOXTsKKworCQkJCVhMb2dGaWxlTmFtZShm bmFtZSwgcHJpdmF0ZUluZm8tPnRpbWVsaW5lLCBlbnRyeS0+c2Vnbm8sCisJCQkJCQkJIFdhbFNl Z1N6KTsKKwkJCQlwZ19mYXRhbCgiY291bGQgbm90IHJlYWQgZmlsZSBcIiVzXCIgZnJvbSBhcmNo aXZlIFwiJXNcIjogcmVhZCAlbGxkIG9mICVsbGQiLAorCQkJCQkJIGZuYW1lLCBwcml2YXRlSW5m by0+YXJjaGl2ZV9uYW1lLAorCQkJCQkJIChsb25nIGxvbmcgaW50KSBjb3VudCAtIG5ieXRlcywK KwkJCQkJCSAobG9uZyBsb25nIGludCkgbmJ5dGVzKTsKKwkJCX0KKwkJfQorCX0KKworCS8qCisJ ICogU2hvdWxkIGhhdmUgZWl0aGVyIGhhdmUgc3VjY2Vzc2Z1bGx5IHJlYWQgYWxsIHRoZSByZXF1 ZXN0ZWQgYnl0ZXMgb3IKKwkgKiByZXBvcnRlZCBhIGZhaWx1cmUgYmVmb3JlIHRoaXMgcG9pbnQu CisJICovCisJQXNzZXJ0KG5ieXRlcyA9PSAwKTsKKworCS8qCisJICogTkI6IFdlIHJldHVybiB0 aGUgZml4ZWQgdmFsdWUgcHJvdmlkZWQgYXMgaW5wdXQuIEFsdGhvdWdoIHdlIGNvdWxkCisJICog cmV0dXJuIGEgYm9vbGVhbiBzaW5jZSB3ZSBlaXRoZXIgc3VjY2Vzc2Z1bGx5IHJlYWQgdGhlIFdB TCBwYWdlIG9yCisJICogcmFpc2UgYW4gZXJyb3IsIGJ1dCB0aGUgY2FsbGVyIGV4cGVjdHMgdGhp cyB2YWx1ZSB0byBiZSByZXR1cm5lZC4gVGhlCisJICogcm91dGluZSB0aGF0IHJlYWRzIFdBTCBw YWdlcyBmcm9tIHRoZSBwaHlzaWNhbCBXQUwgZmlsZSBmb2xsb3dzIHRoZQorCSAqIHNhbWUgY29u dmVudGlvbi4KKwkgKi8KKwlyZXR1cm4gY291bnQ7Cit9CisKKy8qCisgKiBSZWFkcyB0aGUgYXJj aGl2ZSBmaWxlIGFuZCBwYXNzZXMgaXQgdG8gdGhlIGFyY2hpdmUgc3RyZWFtZXIgZm9yCisgKiBk ZWNvbXByZXNzaW9uLgorICovCitzdGF0aWMgaW50CityZWFkX2FyY2hpdmVfZmlsZShYTG9nRHVt cFByaXZhdGUgKnByaXZhdGVJbmZvLCBTaXplIGNvdW50KQoreworCWludAkJCXJjOworCWNoYXIJ ICAgKmJ1ZmZlcjsKKworCWJ1ZmZlciA9IHBnX21hbGxvYyhSRUFEX0NIVU5LX1NJWkUgKiBzaXpl b2YodWludDgpKTsKKworCXJjID0gcmVhZChwcml2YXRlSW5mby0+YXJjaGl2ZV9mZCwgYnVmZmVy LCBjb3VudCk7CisJaWYgKHJjIDwgMCkKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCByZWFkIGZpbGUg XCIlc1wiOiAlbSIsCisJCQkJIHByaXZhdGVJbmZvLT5hcmNoaXZlX25hbWUpOworCisJLyoKKwkg KiBEZWNvbXByZXNzIChpZiByZXF1aXJlZCksIGFuZCB0aGVuIHBhcnNlIHRoZSBwcmV2aW91c2x5 IHJlYWQgY29udGVudHMKKwkgKiBvZiB0aGUgdGFyIGZpbGUuCisJICovCisJaWYgKHJjID4gMCkK KwkJYXN0cmVhbWVyX2NvbnRlbnQocHJpdmF0ZUluZm8tPmFyY2hpdmVfc3RyZWFtZXIsIE5VTEws CisJCQkJCQkgIGJ1ZmZlciwgcmMsIEFTVFJFQU1FUl9VTktOT1dOKTsKKwlwZ19mcmVlKGJ1ZmZl cik7CisKKwlyZXR1cm4gcmM7Cit9CisKKy8qCisgKiBSZXR1cm5zIHRoZSBhcmNoaXZlZCBXQUwg ZW50cnkgZnJvbSB0aGUgaGFzaCB0YWJsZSBpZiBpdCBleGlzdHMuIE90aGVyd2lzZSwKKyAqIGl0 IGludm9rZXMgdGhlIHJvdXRpbmUgdG8gcmVhZCB0aGUgYXJjaGl2ZWQgZmlsZSBhbmQgcmV0cmll dmUgdGhlIGVudHJ5IGlmCisgKiBpdCBpcyBub3QgYWxyZWFkeSBpbiBoYXNoIHRhYmxlLgorICov CitzdGF0aWMgQXJjaGl2ZWRXQUxFbnRyeSAqCitnZXRfYXJjaGl2ZV93YWxfZW50cnkoWExvZ1Nl Z05vIHNlZ25vLCBYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvKQoreworCUFyY2hpdmVkV0FM RW50cnkgKmVudHJ5ID0gTlVMTDsKKwljaGFyCQlmbmFtZVtNQVhGTkFNRUxFTl07CisKKwkvKiBT ZWFyY2ggaGFzaCB0YWJsZSAqLworCWVudHJ5ID0gQXJjaGl2ZWRXQUxfbG9va3VwKEFyY2hpdmVk V0FMX0hUQUIsIHNlZ25vKTsKKworCWlmIChlbnRyeSAhPSBOVUxMKQorCQlyZXR1cm4gZW50cnk7 CisKKwkvKiBOZWVkZWQgV0FMIHlldCB0byBiZSBkZWNvZGVkIGZyb20gYXJjaGl2ZSwgZG8gdGhl IHNhbWUgKi8KKwl3aGlsZSAoMSkKKwl7CisJCWVudHJ5ID0gcHJpdmF0ZUluZm8tPmN1cl93YWw7 CisKKwkJLyogRmV0Y2ggbW9yZSBkYXRhICovCisJCWlmIChlbnRyeSA9PSBOVUxMIHx8IGVudHJ5 LT5idWYubGVuID09IDApCisJCXsKKwkJCWlmIChyZWFkX2FyY2hpdmVfZmlsZShwcml2YXRlSW5m bywgUkVBRF9DSFVOS19TSVpFKSA9PSAwKQorCQkJCWJyZWFrOwkJCS8qIGFyY2hpdmUgZmlsZSBl bmRlZCAqLworCQl9CisKKwkJLyoKKwkJICogRWl0aGVyLCBoZXJlIGZvciB0aGUgZmlyc3QgdGlt ZSwgb3IgdGhlIGFyY2hpdmVkIHN0cmVhbWVyIGlzCisJCSAqIHJlYWRpbmcgYSBub24tV0FMIGZp bGUgb3IgYW4gaXJyZWxldmFudCBXQUwgZmlsZS4KKwkJICovCisJCWlmIChlbnRyeSA9PSBOVUxM KQorCQkJY29udGludWU7CisKKwkJLyogRm91bmQgdGhlIHJlcXVpcmVkIGVudHJ5ICovCisJCWlm IChlbnRyeS0+c2Vnbm8gPT0gc2Vnbm8pCisJCQlyZXR1cm4gZW50cnk7CisKKwkJLyoKKwkJICog SWdub3JlIGlmIHRoZSB0aW1lbGluZSBpcyBkaWZmZXJlbnQgb3IgdGhlIGN1cnJlbnQgc2VnbWVu dCBpcyBub3QKKwkJICogdGhlIGRlc2lyZWQgb25lLgorCQkgKi8KKwkJaWYgKHByaXZhdGVJbmZv LT50aW1lbGluZSAhPSBlbnRyeS0+dGltZWxpbmUgfHwKKwkJCXByaXZhdGVJbmZvLT5zdGFydFNl Z05vID4gZW50cnktPnNlZ25vIHx8CisJCQlwcml2YXRlSW5mby0+ZW5kU2VnTm8gPCBlbnRyeS0+ c2Vnbm8pCisJCXsKKwkJCXByaXZhdGVJbmZvLT5jdXJfd2FsID0gTlVMTDsKKwkJCWNvbnRpbnVl OworCQl9CisKKwkJLyogV0FMIHNlZ21lbnRzIG11c3QgYmUgYXJjaGl2ZWQgaW4gb3JkZXIgKi8K KwkJcGdfbG9nX2Vycm9yKCJXQUwgZmlsZXMgYXJlIG5vdCBhcmNoaXZlZCBpbiBzZXF1ZW50aWFs IG9yZGVyIik7CisJCXBnX2xvZ19lcnJvcl9kZXRhaWwoIkV4cGVjdGluZyBzZWdtZW50IG51bWJl ciAiIFVJTlQ2NF9GT1JNQVQgIiBidXQgZm91bmQgIiBVSU5UNjRfRk9STUFUICIuIiwKKwkJCQkJ CQlzZWdubywgZW50cnktPnNlZ25vKTsKKwkJZXhpdCgxKTsKKwl9CisKKwkvKiBSZXF1ZXN0ZWQg V0FMIHNlZ21lbnQgbm90IGZvdW5kICovCisJWExvZ0ZpbGVOYW1lKGZuYW1lLCBwcml2YXRlSW5m by0+dGltZWxpbmUsIHNlZ25vLCBXYWxTZWdTeik7CisJcGdfZmF0YWwoImNvdWxkIG5vdCBmaW5k IGZpbGUgXCIlc1wiIGluIGFyY2hpdmUiLCBmbmFtZSk7Cit9CisKKy8qCisgKiBDcmVhdGUgYW4g YXN0cmVhbWVyIHRoYXQgY2FuIHJlYWQgV0FMIGZyb20gdGFyIGZpbGUuCisgKi8KK3N0YXRpYyBh c3RyZWFtZXIgKgorYXN0cmVhbWVyX3dhbGR1bXBfbmV3KFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0 ZUluZm8pCit7CisJYXN0cmVhbWVyX3dhbGR1bXAgKnN0cmVhbWVyOworCisJc3RyZWFtZXIgPSBw YWxsb2MwKHNpemVvZihhc3RyZWFtZXJfd2FsZHVtcCkpOworCSooKGNvbnN0IGFzdHJlYW1lcl9v cHMgKiopICZzdHJlYW1lci0+YmFzZS5iYnNfb3BzKSA9CisJCSZhc3RyZWFtZXJfd2FsZHVtcF9v cHM7CisKKwlzdHJlYW1lci0+cHJpdmF0ZUluZm8gPSBwcml2YXRlSW5mbzsKKworCXJldHVybiAm c3RyZWFtZXItPmJhc2U7Cit9CisKKy8qCisgKiBNYWluIGVudHJ5IHBvaW50IG9mIHRoZSBhcmNo aXZlIHN0cmVhbWVyIGZvciByZWFkaW5nIFdBTCBkYXRhIGZyb20gYSB0YXIKKyAqIGZpbGUuIElm IGEgbWVtYmVyIGlzIGlkZW50aWZpZWQgYXMgYSB2YWxpZCBXQUwgZmlsZSwgYSBoYXNoIGVudHJ5 IGlzIGNyZWF0ZWQKKyAqIGZvciBpdCwgYW5kIGl0cyBjb250ZW50cyBhcmUgY29waWVkIGludG8g dGhhdCBlbnRyeSdzIGJ1ZmZlciwgbWFraW5nIHRoZW0KKyAqIGFjY2Vzc2libGUgdG8gdGhlIGRl Y29kaW5nIHJvdXRpbmUuCisgKi8KK3N0YXRpYyB2b2lkCithc3RyZWFtZXJfd2FsZHVtcF9jb250 ZW50KGFzdHJlYW1lciAqc3RyZWFtZXIsIGFzdHJlYW1lcl9tZW1iZXIgKm1lbWJlciwKKwkJCQkJ CSAgY29uc3QgY2hhciAqZGF0YSwgaW50IGxlbiwKKwkJCQkJCSAgYXN0cmVhbWVyX2FyY2hpdmVf Y29udGV4dCBjb250ZXh0KQoreworCWFzdHJlYW1lcl93YWxkdW1wICpteXN0cmVhbWVyID0gKGFz dHJlYW1lcl93YWxkdW1wICopIHN0cmVhbWVyOworCVhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUlu Zm8gPSBteXN0cmVhbWVyLT5wcml2YXRlSW5mbzsKKworCUFzc2VydChjb250ZXh0ICE9IEFTVFJF QU1FUl9VTktOT1dOKTsKKworCXN3aXRjaCAoY29udGV4dCkKKwl7CisJCWNhc2UgQVNUUkVBTUVS X01FTUJFUl9IRUFERVI6CisJCQl7CisJCQkJWExvZ1NlZ05vCXNlZ25vOworCQkJCVRpbWVMaW5l SUQJdGltZWxpbmU7CisJCQkJQXJjaGl2ZWRXQUxFbnRyeSAqZW50cnk7CisJCQkJYm9vbAkJZm91 bmQ7CisKKwkJCQlwZ19sb2dfZGVidWcoInJlYWRpbmcgXCIlc1wiIiwgbWVtYmVyLT5wYXRobmFt ZSk7CisKKwkJCQlpZiAoIW1lbWJlcl9pc193YWxfZmlsZShteXN0cmVhbWVyLCBtZW1iZXIsCisJ CQkJCQkJCQkJJnNlZ25vLCAmdGltZWxpbmUpKQorCQkJCQlicmVhazsKKworCQkJCWVudHJ5ID0g QXJjaGl2ZWRXQUxfaW5zZXJ0KEFyY2hpdmVkV0FMX0hUQUIsIHNlZ25vLCAmZm91bmQpOworCisJ CQkJLyoKKwkJCQkgKiBTaG91bGRuJ3QgaGFwcGVuLCBidXQgaWYgaXQgZG9lcywgc2ltcGx5IGln bm9yZSB0aGUKKwkJCQkgKiBkdXBsaWNhdGUgV0FMIGZpbGUuCisJCQkJICovCisJCQkJaWYgKGZv dW5kKQorCQkJCXsKKwkJCQkJcGdfbG9nX3dhcm5pbmcoImlnbm9yaW5nIGR1cGxpY2F0ZSBXQUwg ZmlsZSBmb3VuZCBpbiBhcmNoaXZlOiBcIiVzXCIiLAorCQkJCQkJCQkgICBtZW1iZXItPnBhdGhu YW1lKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCisJCQkJaW5pdFN0cmluZ0luZm8oJmVudHJ5LT5i dWYpOworCQkJCWVudHJ5LT50aW1lbGluZSA9IHRpbWVsaW5lOworCQkJCWVudHJ5LT50b3RhbF9y ZWFkID0gMDsKKworCQkJCXByaXZhdGVJbmZvLT5jdXJfd2FsID0gZW50cnk7CisJCQl9CisJCQli cmVhazsKKworCQljYXNlIEFTVFJFQU1FUl9NRU1CRVJfQ09OVEVOVFM6CisJCQlpZiAocHJpdmF0 ZUluZm8tPmN1cl93YWwpCisJCQl7CisJCQkJYXBwZW5kQmluYXJ5U3RyaW5nSW5mbygmcHJpdmF0 ZUluZm8tPmN1cl93YWwtPmJ1ZiwgZGF0YSwgbGVuKTsKKwkJCQlwcml2YXRlSW5mby0+Y3VyX3dh bC0+dG90YWxfcmVhZCArPSBsZW47CisJCQl9CisJCQlicmVhazsKKworCQljYXNlIEFTVFJFQU1F Ul9NRU1CRVJfVFJBSUxFUjoKKwkJCXByaXZhdGVJbmZvLT5jdXJfd2FsID0gTlVMTDsKKwkJCWJy ZWFrOworCisJCWNhc2UgQVNUUkVBTUVSX0FSQ0hJVkVfVFJBSUxFUjoKKwkJCWJyZWFrOworCisJ CWRlZmF1bHQ6CisJCQkvKiBTaG91bGRuJ3QgaGFwcGVuLiAqLworCQkJcGdfZmF0YWwoInVuZXhw ZWN0ZWQgc3RhdGUgd2hpbGUgcGFyc2luZyB0YXIgZmlsZSIpOworCX0KK30KKworLyoKKyAqIEVu ZC1vZi1zdHJlYW0gcHJvY2Vzc2luZyBmb3IgYSBhc3RyZWFtZXJfd2FsZHVtcCBzdHJlYW0uCisg Ki8KK3N0YXRpYyB2b2lkCithc3RyZWFtZXJfd2FsZHVtcF9maW5hbGl6ZShhc3RyZWFtZXIgKnN0 cmVhbWVyKQoreworCUFzc2VydChzdHJlYW1lci0+YmJzX25leHQgPT0gTlVMTCk7Cit9CisKKy8q CisgKiBGcmVlIG1lbW9yeSBhc3NvY2lhdGVkIHdpdGggYSBhc3RyZWFtZXJfd2FsZHVtcCBzdHJl YW0uCisgKi8KK3N0YXRpYyB2b2lkCithc3RyZWFtZXJfd2FsZHVtcF9mcmVlKGFzdHJlYW1lciAq c3RyZWFtZXIpCit7CisJQXNzZXJ0KHN0cmVhbWVyLT5iYnNfbmV4dCA9PSBOVUxMKTsKKwlwZnJl ZShzdHJlYW1lcik7Cit9CisKKy8qCisgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGFyY2hpdmUgbWVt YmVyIG5hbWUgbWF0Y2hlcyB0aGUgV0FMIG5hbWluZyBmb3JtYXQuIElmCisgKiBzdWNjZXNzZnVs LCBpdCBhbHNvIG91dHB1dHMgdGhlIFdBTCBzZWdtZW50IG51bWJlciwgYW5kIHRpbWVsaW5lLgor ICovCitzdGF0aWMgYm9vbAorbWVtYmVyX2lzX3dhbF9maWxlKGFzdHJlYW1lcl93YWxkdW1wICpt eXN0cmVhbWVyLCBhc3RyZWFtZXJfbWVtYmVyICptZW1iZXIsCisJCQkJICAgWExvZ1NlZ05vICpj dXJTZWdObywgVGltZUxpbmVJRCAqY3VyVGltZWxpbmUpCit7CisJaW50CQkJcGF0aGxlbjsKKwlY TG9nU2VnTm8Jc2VnTm87CisJVGltZUxpbmVJRAl0aW1lbGluZTsKKwljaGFyCSAgICpmbmFtZTsK KworCS8qIFdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gbm9ybWFsIGZpbGVzLiAqLworCWlmICht ZW1iZXItPmlzX2RpcmVjdG9yeSB8fCBtZW1iZXItPmlzX2xpbmspCisJCXJldHVybiBmYWxzZTsK KworCXBhdGhsZW4gPSBzdHJsZW4obWVtYmVyLT5wYXRobmFtZSk7CisJaWYgKHBhdGhsZW4gPCBY TE9HX0ZOQU1FX0xFTikKKwkJcmV0dXJuIGZhbHNlOworCisJLyogV0FMIGZpbGUgY291bGQgYmUg d2l0aCBmdWxsIHBhdGggKi8KKwlmbmFtZSA9IG1lbWJlci0+cGF0aG5hbWUgKyAocGF0aGxlbiAt IFhMT0dfRk5BTUVfTEVOKTsKKwlpZiAoIUlzWExvZ0ZpbGVOYW1lKGZuYW1lKSkKKwkJcmV0dXJu IGZhbHNlOworCisJLyoKKwkgKiBYWFg6IE9uIHNvbWUgc3lzdGVtcyAoZS5nLiwgT3BlbkJTRCks IHRoZSB0YXIgdXRpbGl0eSBpbmNsdWRlcworCSAqIFBheEhlYWRlcnMgd2hlbiBjcmVhdGluZyBh biBhcmNoaXZlLiBUaGVzZSBhcmUgc3BlY2lhbCBlbnRyaWVzIHRoYXQKKwkgKiBzdG9yZSBleHRl bmRlZCBtZXRhZGF0YSBmb3IgdGhlIGZpbGUgZW50cnkgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRo ZW0sCisJICogYW5kIHRoZXkgc2hhcmUgdGhlIGV4YWN0IHNhbWUgbmFtZSBhcyB0aGF0IGZpbGUu CisJICovCisJaWYgKHN0cnN0cihtZW1iZXItPnBhdGhuYW1lLCAiUGF4SGVhZGVycy4iKSkKKwkJ cmV0dXJuIGZhbHNlOworCisJLyogUGFyc2UgcG9zaXRpb24gZnJvbSBmaWxlICovCisJWExvZ0Zy b21GaWxlTmFtZShmbmFtZSwgJnRpbWVsaW5lLCAmc2VnTm8sIFdhbFNlZ1N6KTsKKworCSpjdXJT ZWdObyA9IHNlZ05vOworCSpjdXJUaW1lbGluZSA9IHRpbWVsaW5lOworCisJcmV0dXJuIHRydWU7 Cit9CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbGR1bXAvbWVzb24uYnVpbGQgYi9zcmMvYmlu L3BnX3dhbGR1bXAvbWVzb24uYnVpbGQKaW5kZXggOTM3ZTBkNjg4NDEuLmRhMDA3NDY1ODdjIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvbWVzb24uYnVpbGQKKysrIGIvc3JjL2Jpbi9w Z193YWxkdW1wL21lc29uLmJ1aWxkCkBAIC0zLDYgKzMsNyBAQAogcGdfd2FsZHVtcF9zb3VyY2Vz ID0gZmlsZXMoCiAgICdjb21wYXQuYycsCiAgICdwZ193YWxkdW1wLmMnLAorICAnYXJjaGl2ZV93 YWxkdW1wLmMnLAogICAncm1ncmRlc2MuYycsCiApCiAKQEAgLTE4LDcgKzE5LDcgQEAgZW5kaWYK IAogcGdfd2FsZHVtcCA9IGV4ZWN1dGFibGUoJ3BnX3dhbGR1bXAnLAogICBwZ193YWxkdW1wX3Nv dXJjZXMsCi0gIGRlcGVuZGVuY2llczogW2Zyb250ZW5kX2NvZGUsIGx6NCwgenN0ZF0sCisgIGRl cGVuZGVuY2llczogW2Zyb250ZW5kX2NvZGUsIGx6NCwgenN0ZCwgbGlicHFdLAogICBjX2FyZ3M6 IFsnLURGUk9OVEVORCddLCAjIG5lZWRlZCBmb3IgeGxvZ3JlYWRlciBldCBhbAogICBrd2FyZ3M6 IGRlZmF1bHRfYmluX2FyZ3MsCiApCkBAIC0yOSw2ICszMCw3IEBAIHRlc3RzICs9IHsKICAgJ3Nk JzogbWVzb24uY3VycmVudF9zb3VyY2VfZGlyKCksCiAgICdiZCc6IG1lc29uLmN1cnJlbnRfYnVp bGRfZGlyKCksCiAgICd0YXAnOiB7CisgICAgJ2Vudic6IHsnVEFSJzogdGFyLmZvdW5kKCkgPyB0 YXIuZnVsbF9wYXRoKCkgOiAnJ30sCiAgICAgJ3Rlc3RzJzogWwogICAgICAgJ3QvMDAxX2Jhc2lj LnBsJywKICAgICAgICd0LzAwMl9zYXZlX2Z1bGxwYWdlLnBsJywKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMgYi9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVt cC5jCmluZGV4IDBkYzI4ZWEzNjBjLi43NDI1ZDM4NmQwYyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w Z193YWxkdW1wL3BnX3dhbGR1bXAuYworKysgYi9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVt cC5jCkBAIC0xNzcsNyArMTc3LDcgQEAgc3BsaXRfcGF0aChjb25zdCBjaGFyICpwYXRoLCBjaGFy ICoqZGlyLCBjaGFyICoqZm5hbWUpCiAgKgogICogcmV0dXJuIGEgcmVhZCBvbmx5IGZkCiAgKi8K LXN0YXRpYyBpbnQKK2ludAogb3Blbl9maWxlX2luX2RpcmVjdG9yeShjb25zdCBjaGFyICpkaXJl Y3RvcnksIGNvbnN0IGNoYXIgKmZuYW1lKQogewogCWludAkJCWZkID0gLTE7CkBAIC00MzYsNiAr NDM2LDQ0IEBAIFdBTER1bXBSZWFkUGFnZShYTG9nUmVhZGVyU3RhdGUgKnN0YXRlLCBYTG9nUmVj UHRyIHRhcmdldFBhZ2VQdHIsIGludCByZXFMZW4sCiAJcmV0dXJuIGNvdW50OwogfQogCisvKgor ICogcGdfd2FsZHVtcCdzIFhMb2dSZWFkZXJSb3V0aW5lLT5zZWdtZW50X29wZW4gY2FsbGJhY2sg dG8gc3VwcG9ydCBkdW1waW5nIFdBTAorICogZmlsZXMgZnJvbSB0YXIgYXJjaGl2ZXMuCisgKi8K K3N0YXRpYyB2b2lkCitUYXJXQUxEdW1wT3BlblNlZ21lbnQoWExvZ1JlYWRlclN0YXRlICpzdGF0 ZSwgWExvZ1NlZ05vIG5leHRTZWdObywKKwkJCQkJICBUaW1lTGluZUlEICp0bGlfcCkKK3sKKwkv KiBObyBhY3Rpb24gbmVlZGVkICovCit9CisKKy8qCisgKiBwZ193YWxkdW1wJ3MgWExvZ1JlYWRl clJvdXRpbmUtPnNlZ21lbnRfY2xvc2UgY2FsbGJhY2suCisgKi8KK3N0YXRpYyB2b2lkCitUYXJX QUxEdW1wQ2xvc2VTZWdtZW50KFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUpCit7CisJLyogTm8gYWN0 aW9uIG5lZWRlZCAqLworfQorCisvKgorICogcGdfd2FsZHVtcCdzIFhMb2dSZWFkZXJSb3V0aW5l LT5wYWdlX3JlYWQgY2FsbGJhY2sgdG8gc3VwcG9ydCBkdW1waW5nIFdBTAorICogZmlsZXMgZnJv bSB0YXIgYXJjaGl2ZXMuCisgKi8KK3N0YXRpYyBpbnQKK1RhcldBTER1bXBSZWFkUGFnZShYTG9n UmVhZGVyU3RhdGUgKnN0YXRlLCBYTG9nUmVjUHRyIHRhcmdldFBhZ2VQdHIsIGludCByZXFMZW4s CisJCQkJICAgWExvZ1JlY1B0ciB0YXJnZXRQdHIsIGNoYXIgKnJlYWRCdWZmKQoreworCVhMb2dE dW1wUHJpdmF0ZSAqcHJpdmF0ZSA9IHN0YXRlLT5wcml2YXRlX2RhdGE7CisJaW50CQkJY291bnQg PSByZXF1aXJlZF9yZWFkX2xlbihwcml2YXRlLCB0YXJnZXRQYWdlUHRyLCByZXFMZW4pOworCisJ aWYgKHByaXZhdGUtPmVuZHB0cl9yZWFjaGVkKQorCQlyZXR1cm4gLTE7CisKKwkvKiBSZWFkIHRo ZSBXQUwgcGFnZSBmcm9tIHRoZSBhcmNoaXZlIHN0cmVhbWVyICovCisJcmV0dXJuIHJlYWRfYXJj aGl2ZV93YWxfcGFnZShwcml2YXRlLCB0YXJnZXRQYWdlUHRyLCBjb3VudCwgcmVhZEJ1ZmYpOwor fQorCiAvKgogICogQm9vbGVhbiB0byByZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gV0FMIHJlY29y ZCBtYXRjaGVzIGEgc3BlY2lmaWMgcmVsYXRpb24KICAqIGFuZCBvcHRpb25hbGx5IGJsb2NrLgpA QCAtNzczLDggKzgxMSw4IEBAIHVzYWdlKHZvaWQpCiAJcHJpbnRmKF8oIiAgLUYsIC0tZm9yaz1G T1JLICAgICAgICBvbmx5IHNob3cgcmVjb3JkcyB0aGF0IG1vZGlmeSBibG9ja3MgaW4gZm9yayBG T1JLO1xuIgogCQkJICIgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQgbmFtZXMgYXJlIG1h aW4sIGZzbSwgdm0sIGluaXRcbiIpKTsKIAlwcmludGYoXygiICAtbiwgLS1saW1pdD1OICAgICAg ICAgIG51bWJlciBvZiByZWNvcmRzIHRvIGRpc3BsYXlcbiIpKTsKLQlwcmludGYoXygiICAtcCwg LS1wYXRoPVBBVEggICAgICAgIGRpcmVjdG9yeSBpbiB3aGljaCB0byBmaW5kIFdBTCBzZWdtZW50 IGZpbGVzIG9yIGFcbiIKLQkJCSAiICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSB3 aXRoIGEgLi9wZ193YWwgdGhhdCBjb250YWlucyBzdWNoIGZpbGVzXG4iCisJcHJpbnRmKF8oIiAg LXAsIC0tcGF0aD1QQVRIICAgICAgICB0YXIgYXJjaGl2ZSBvciBhIGRpcmVjdG9yeSBpbiB3aGlj aCB0byBmaW5kIFdBTCBzZWdtZW50IGZpbGVzIG9yXG4iCisJCQkgIiAgICAgICAgICAgICAgICAg ICAgICAgICBhIGRpcmVjdG9yeSB3aXRoIGEgLi9wZ193YWwgdGhhdCBjb250YWlucyBzdWNoIGZp bGVzXG4iCiAJCQkgIiAgICAgICAgICAgICAgICAgICAgICAgICAoZGVmYXVsdDogY3VycmVudCBk aXJlY3RvcnksIC4vcGdfd2FsLCAkUEdEQVRBL3BnX3dhbClcbiIpKTsKIAlwcmludGYoXygiICAt cSwgLS1xdWlldCAgICAgICAgICAgIGRvIG5vdCBwcmludCBhbnkgb3V0cHV0LCBleGNlcHQgZm9y IGVycm9yc1xuIikpOwogCXByaW50ZihfKCIgIC1yLCAtLXJtZ3I9Uk1HUiAgICAgICAgb25seSBz aG93IHJlY29yZHMgZ2VuZXJhdGVkIGJ5IHJlc291cmNlIG1hbmFnZXIgUk1HUjtcbiIKQEAgLTgw Niw3ICs4NDQsMTAgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJWExvZ1JlY29yZCAq cmVjb3JkOwogCVhMb2dSZWNQdHIJZmlyc3RfcmVjb3JkOwogCWNoYXIJICAgKndhbGRpciA9IE5V TEw7CisJY2hhcgkgICAqd2FscGF0aCA9IE5VTEw7CiAJY2hhcgkgICAqZXJyb3Jtc2c7CisJYm9v bAkJaXNfYXJjaGl2ZSA9IGZhbHNlOworCXBnX2NvbXByZXNzX2FsZ29yaXRobSBjb21wcmVzc2lv bjsKIAogCXN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIGxvbmdfb3B0aW9uc1tdID0gewogCQl7ImJrcC1k ZXRhaWxzIiwgbm9fYXJndW1lbnQsIE5VTEwsICdiJ30sCkBAIC05MzgsNyArOTc5LDcgQEAgbWFp bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQkJfQogCQkJCWJyZWFrOwogCQkJY2FzZSAncCc6 Ci0JCQkJd2FsZGlyID0gcGdfc3RyZHVwKG9wdGFyZyk7CisJCQkJd2FscGF0aCA9IHBnX3N0cmR1 cChvcHRhcmcpOwogCQkJCWJyZWFrOwogCQkJY2FzZSAncSc6CiAJCQkJY29uZmlnLnF1aWV0ID0g dHJ1ZTsKQEAgLTExMDIsMTAgKzExNDMsMjcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CiAJCWdvdG8gYmFkX2FyZ3VtZW50OwogCX0KIAotCWlmICh3YWxkaXIgIT0gTlVMTCkKKwlpZiAo d2FscGF0aCAhPSBOVUxMKQogCXsKKwkJLyogdmFsaWRhdGUgcGF0aCBwb2ludHMgdG8gdGFyIGFy Y2hpdmUgKi8KKwkJaWYgKGlzX2FyY2hpdmVfZmlsZSh3YWxwYXRoLCAmY29tcHJlc3Npb24pKQor CQl7CisJCQljaGFyCSAgICpmbmFtZSA9IE5VTEw7CisKKwkJCXNwbGl0X3BhdGgod2FscGF0aCwg JndhbGRpciwgJmZuYW1lKTsKKworCQkJLyoKKwkJCSAqIEEgTlVMTCBXQUwgZGlyZWN0b3J5IGlu ZGljYXRlcyB0aGF0IHRoZSBhcmNoaXZlIGZpbGUgaXMgbG9jYXRlZAorCQkJICogaW4gdGhlIGN1 cnJlbnQgd29ya2luZyBkaXJlY3Rvcnkgb2YgdGhlIHBnX3dhbGR1bXAgZXhlY3V0aW9uCisJCQkg Ki8KKwkJCWlmICh3YWxkaXIgPT0gTlVMTCkKKwkJCQl3YWxkaXIgPSBwZ19zdHJkdXAoIi4iKTsK KworCQkJcHJpdmF0ZS5hcmNoaXZlX25hbWUgPSBmbmFtZTsKKwkJCWlzX2FyY2hpdmUgPSB0cnVl OworCQl9CiAJCS8qIHZhbGlkYXRlIHBhdGggcG9pbnRzIHRvIGRpcmVjdG9yeSAqLwotCQlpZiAo IXZlcmlmeV9kaXJlY3Rvcnkod2FsZGlyKSkKKwkJZWxzZSBpZiAoIXZlcmlmeV9kaXJlY3Rvcnko d2FscGF0aCkpCiAJCXsKIAkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IG9wZW4gZGlyZWN0b3J5 IFwiJXNcIjogJW0iLCB3YWxkaXIpOwogCQkJZ290byBiYWRfYXJndW1lbnQ7CkBAIC0xMTIzLDYg KzExODEsMTcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCWludAkJCWZkOwogCQlY TG9nU2VnTm8Jc2Vnbm87CiAKKwkJLyoKKwkJICogSWYgYSB0YXIgYXJjaGl2ZSBpcyBwYXNzZWQg dXNpbmcgdGhlIC0tcGF0aCBvcHRpb24sIGFsbCBvdGhlcgorCQkgKiBhcmd1bWVudHMgYmVjb21l IHVubmVjZXNzYXJ5LgorCQkgKi8KKwkJaWYgKGlzX2FyY2hpdmUpCisJCXsKKwkJCXBnX2xvZ19l cnJvcigidW5uZWNlc3NhcnkgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBzcGVjaWZpZWQgd2l0aCB0 YXIgYXJjaGl2ZSAoZmlyc3QgaXMgXCIlc1wiKSIsCisJCQkJCQkgYXJndltvcHRpbmRdKTsKKwkJ CWdvdG8gYmFkX2FyZ3VtZW50OworCQl9CisKIAkJc3BsaXRfcGF0aChhcmd2W29wdGluZF0sICZk aXJlY3RvcnksICZmbmFtZSk7CiAKIAkJaWYgKHdhbGRpciA9PSBOVUxMICYmIGRpcmVjdG9yeSAh PSBOVUxMKQpAQCAtMTEzMyw2OSArMTIwMiw3OCBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJn dikKIAkJCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gZGlyZWN0b3J5IFwiJXNcIjogJW0iLCB3 YWxkaXIpOwogCQl9CiAKLQkJd2FsZGlyID0gaWRlbnRpZnlfdGFyZ2V0X2RpcmVjdG9yeSh3YWxk aXIsIGZuYW1lKTsKLQkJZmQgPSBvcGVuX2ZpbGVfaW5fZGlyZWN0b3J5KHdhbGRpciwgZm5hbWUp OwotCQlpZiAoZmQgPCAwKQotCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wi IiwgZm5hbWUpOwotCQljbG9zZShmZCk7Ci0KLQkJLyogcGFyc2UgcG9zaXRpb24gZnJvbSBmaWxl ICovCi0JCVhMb2dGcm9tRmlsZU5hbWUoZm5hbWUsICZwcml2YXRlLnRpbWVsaW5lLCAmc2Vnbm8s IFdhbFNlZ1N6KTsKLQotCQlpZiAoIVhMb2dSZWNQdHJJc1ZhbGlkKHByaXZhdGUuc3RhcnRwdHIp KQotCQkJWExvZ1NlZ05vT2Zmc2V0VG9SZWNQdHIoc2Vnbm8sIDAsIFdhbFNlZ1N6LCBwcml2YXRl LnN0YXJ0cHRyKTsKLQkJZWxzZSBpZiAoIVhMQnl0ZUluU2VnKHByaXZhdGUuc3RhcnRwdHIsIHNl Z25vLCBXYWxTZWdTeikpCisJCWlmIChmbmFtZSAhPSBOVUxMICYmIGlzX2FyY2hpdmVfZmlsZShm bmFtZSwgJmNvbXByZXNzaW9uKSkKIAkJewotCQkJcGdfbG9nX2Vycm9yKCJzdGFydCBXQUwgbG9j YXRpb24gJVgvJTA4WCBpcyBub3QgaW5zaWRlIGZpbGUgXCIlc1wiIiwKLQkJCQkJCSBMU05fRk9S TUFUX0FSR1MocHJpdmF0ZS5zdGFydHB0ciksCi0JCQkJCQkgZm5hbWUpOwotCQkJZ290byBiYWRf YXJndW1lbnQ7CisJCQl3YWxkaXIgPSB3YWxwYXRoID8gcGdfc3RyZHVwKHdhbHBhdGgpIDogcGdf c3RyZHVwKCIuIik7CisJCQlwcml2YXRlLmFyY2hpdmVfbmFtZSA9IGZuYW1lOworCQkJaXNfYXJj aGl2ZSA9IHRydWU7CiAJCX0KLQotCQkvKiBubyBzZWNvbmQgZmlsZSBzcGVjaWZpZWQsIHNldCBl bmQgcG9zaXRpb24gKi8KLQkJaWYgKCEob3B0aW5kICsgMSA8IGFyZ2MpICYmICFYTG9nUmVjUHRy SXNWYWxpZChwcml2YXRlLmVuZHB0cikpCi0JCQlYTG9nU2VnTm9PZmZzZXRUb1JlY1B0cihzZWdu byArIDEsIDAsIFdhbFNlZ1N6LCBwcml2YXRlLmVuZHB0cik7Ci0KLQkJLyogcGFyc2UgRU5EU0VH IGlmIHBhc3NlZCAqLwotCQlpZiAob3B0aW5kICsgMSA8IGFyZ2MpCisJCWVsc2UKIAkJewotCQkJ WExvZ1NlZ05vCWVuZHNlZ25vOwotCi0JCQkvKiBpZ25vcmUgZGlyZWN0b3J5LCBhbHJlYWR5IGhh dmUgdGhhdCAqLwotCQkJc3BsaXRfcGF0aChhcmd2W29wdGluZCArIDFdLCAmZGlyZWN0b3J5LCAm Zm5hbWUpOwotCisJCQl3YWxkaXIgPSBpZGVudGlmeV90YXJnZXRfZGlyZWN0b3J5KHdhbGRpciwg Zm5hbWUpOwogCQkJZmQgPSBvcGVuX2ZpbGVfaW5fZGlyZWN0b3J5KHdhbGRpciwgZm5hbWUpOwog CQkJaWYgKGZkIDwgMCkKIAkJCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCIi LCBmbmFtZSk7CiAJCQljbG9zZShmZCk7CiAKIAkJCS8qIHBhcnNlIHBvc2l0aW9uIGZyb20gZmls ZSAqLwotCQkJWExvZ0Zyb21GaWxlTmFtZShmbmFtZSwgJnByaXZhdGUudGltZWxpbmUsICZlbmRz ZWdubywgV2FsU2VnU3opOworCQkJWExvZ0Zyb21GaWxlTmFtZShmbmFtZSwgJnByaXZhdGUudGlt ZWxpbmUsICZzZWdubywgV2FsU2VnU3opOwogCi0JCQlpZiAoZW5kc2Vnbm8gPCBzZWdubykKLQkJ CQlwZ19mYXRhbCgiRU5EU0VHICVzIGlzIGJlZm9yZSBTVEFSVFNFRyAlcyIsCi0JCQkJCQkgYXJn dltvcHRpbmQgKyAxXSwgYXJndltvcHRpbmRdKTsKKwkJCWlmICghWExvZ1JlY1B0cklzVmFsaWQo cHJpdmF0ZS5zdGFydHB0cikpCisJCQkJWExvZ1NlZ05vT2Zmc2V0VG9SZWNQdHIoc2Vnbm8sIDAs IFdhbFNlZ1N6LCBwcml2YXRlLnN0YXJ0cHRyKTsKKwkJCWVsc2UgaWYgKCFYTEJ5dGVJblNlZyhw cml2YXRlLnN0YXJ0cHRyLCBzZWdubywgV2FsU2VnU3opKQorCQkJeworCQkJCXBnX2xvZ19lcnJv cigic3RhcnQgV0FMIGxvY2F0aW9uICVYLyUwOFggaXMgbm90IGluc2lkZSBmaWxlIFwiJXNcIiIs CisJCQkJCQkJIExTTl9GT1JNQVRfQVJHUyhwcml2YXRlLnN0YXJ0cHRyKSwKKwkJCQkJCQkgZm5h bWUpOworCQkJCWdvdG8gYmFkX2FyZ3VtZW50OworCQkJfQogCi0JCQlpZiAoIVhMb2dSZWNQdHJJ c1ZhbGlkKHByaXZhdGUuZW5kcHRyKSkKLQkJCQlYTG9nU2VnTm9PZmZzZXRUb1JlY1B0cihlbmRz ZWdubyArIDEsIDAsIFdhbFNlZ1N6LAotCQkJCQkJCQkJCXByaXZhdGUuZW5kcHRyKTsKKwkJCS8q IG5vIHNlY29uZCBmaWxlIHNwZWNpZmllZCwgc2V0IGVuZCBwb3NpdGlvbiAqLworCQkJaWYgKCEo b3B0aW5kICsgMSA8IGFyZ2MpICYmICFYTG9nUmVjUHRySXNWYWxpZChwcml2YXRlLmVuZHB0cikp CisJCQkJWExvZ1NlZ05vT2Zmc2V0VG9SZWNQdHIoc2Vnbm8gKyAxLCAwLCBXYWxTZWdTeiwgcHJp dmF0ZS5lbmRwdHIpOwogCi0JCQkvKiBzZXQgc2Vnbm8gdG8gZW5kc2Vnbm8gZm9yIGNoZWNrIG9m IC0tZW5kICovCi0JCQlzZWdubyA9IGVuZHNlZ25vOwotCQl9CisJCQkvKiBwYXJzZSBFTkRTRUcg aWYgcGFzc2VkICovCisJCQlpZiAob3B0aW5kICsgMSA8IGFyZ2MpCisJCQl7CisJCQkJWExvZ1Nl Z05vCWVuZHNlZ25vOwogCisJCQkJLyogaWdub3JlIGRpcmVjdG9yeSwgYWxyZWFkeSBoYXZlIHRo YXQgKi8KKwkJCQlzcGxpdF9wYXRoKGFyZ3Zbb3B0aW5kICsgMV0sICZkaXJlY3RvcnksICZmbmFt ZSk7CiAKLQkJaWYgKCFYTEJ5dGVJblNlZyhwcml2YXRlLmVuZHB0ciwgc2Vnbm8sIFdhbFNlZ1N6 KSAmJgotCQkJcHJpdmF0ZS5lbmRwdHIgIT0gKHNlZ25vICsgMSkgKiBXYWxTZWdTeikKLQkJewot CQkJcGdfbG9nX2Vycm9yKCJlbmQgV0FMIGxvY2F0aW9uICVYLyUwOFggaXMgbm90IGluc2lkZSBm aWxlIFwiJXNcIiIsCi0JCQkJCQkgTFNOX0ZPUk1BVF9BUkdTKHByaXZhdGUuZW5kcHRyKSwKLQkJ CQkJCSBhcmd2W2FyZ2MgLSAxXSk7Ci0JCQlnb3RvIGJhZF9hcmd1bWVudDsKKwkJCQlmZCA9IG9w ZW5fZmlsZV9pbl9kaXJlY3Rvcnkod2FsZGlyLCBmbmFtZSk7CisJCQkJaWYgKGZkIDwgMCkKKwkJ CQkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiIiwgZm5hbWUpOworCQkJCWNs b3NlKGZkKTsKKworCQkJCS8qIHBhcnNlIHBvc2l0aW9uIGZyb20gZmlsZSAqLworCQkJCVhMb2dG cm9tRmlsZU5hbWUoZm5hbWUsICZwcml2YXRlLnRpbWVsaW5lLCAmZW5kc2Vnbm8sIFdhbFNlZ1N6 KTsKKworCQkJCWlmIChlbmRzZWdubyA8IHNlZ25vKQorCQkJCQlwZ19mYXRhbCgiRU5EU0VHICVz IGlzIGJlZm9yZSBTVEFSVFNFRyAlcyIsCisJCQkJCQkJIGFyZ3Zbb3B0aW5kICsgMV0sIGFyZ3Zb b3B0aW5kXSk7CisKKwkJCQlpZiAoIVhMb2dSZWNQdHJJc1ZhbGlkKHByaXZhdGUuZW5kcHRyKSkK KwkJCQkJWExvZ1NlZ05vT2Zmc2V0VG9SZWNQdHIoZW5kc2Vnbm8gKyAxLCAwLCBXYWxTZWdTeiwK KwkJCQkJCQkJCQkJcHJpdmF0ZS5lbmRwdHIpOworCisJCQkJLyogc2V0IHNlZ25vIHRvIGVuZHNl Z25vIGZvciBjaGVjayBvZiAtLWVuZCAqLworCQkJCXNlZ25vID0gZW5kc2Vnbm87CisJCQl9CisK KworCQkJaWYgKCFYTEJ5dGVJblNlZyhwcml2YXRlLmVuZHB0ciwgc2Vnbm8sIFdhbFNlZ1N6KSAm JgorCQkJCXByaXZhdGUuZW5kcHRyICE9IChzZWdubyArIDEpICogV2FsU2VnU3opCisJCQl7CisJ CQkJcGdfbG9nX2Vycm9yKCJlbmQgV0FMIGxvY2F0aW9uICVYLyUwOFggaXMgbm90IGluc2lkZSBm aWxlIFwiJXNcIiIsCisJCQkJCQkJIExTTl9GT1JNQVRfQVJHUyhwcml2YXRlLmVuZHB0ciksCisJ CQkJCQkJIGFyZ3ZbYXJnYyAtIDFdKTsKKwkJCQlnb3RvIGJhZF9hcmd1bWVudDsKKwkJCX0KIAkJ fQogCX0KLQllbHNlCi0JCXdhbGRpciA9IGlkZW50aWZ5X3RhcmdldF9kaXJlY3Rvcnkod2FsZGly LCBOVUxMKTsKKwllbHNlIGlmICghaXNfYXJjaGl2ZSkKKwkJd2FsZGlyID0gaWRlbnRpZnlfdGFy Z2V0X2RpcmVjdG9yeSh3YWxwYXRoLCBOVUxMKTsKIAogCS8qIHdlIGRvbid0IGtub3cgd2hhdCB0 byBwcmludCAqLwogCWlmICghWExvZ1JlY1B0cklzVmFsaWQocHJpdmF0ZS5zdGFydHB0cikpCkBA IC0xMjA3LDEyICsxMjg1LDMwIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCS8qIGRv bmUgd2l0aCBhcmd1bWVudCBwYXJzaW5nLCBkbyB0aGUgYWN0dWFsIHdvcmsgKi8KIAogCS8qIHdl IGhhdmUgZXZlcnl0aGluZyB3ZSBuZWVkLCBzdGFydCByZWFkaW5nICovCi0JeGxvZ3JlYWRlcl9z dGF0ZSA9Ci0JCVhMb2dSZWFkZXJBbGxvY2F0ZShXYWxTZWdTeiwgd2FsZGlyLAotCQkJCQkJICAg WExfUk9VVElORSgucGFnZV9yZWFkID0gV0FMRHVtcFJlYWRQYWdlLAotCQkJCQkJCQkJICAuc2Vn bWVudF9vcGVuID0gV0FMRHVtcE9wZW5TZWdtZW50LAotCQkJCQkJCQkJICAuc2VnbWVudF9jbG9z ZSA9IFdBTER1bXBDbG9zZVNlZ21lbnQpLAotCQkJCQkJICAgJnByaXZhdGUpOworCWlmIChpc19h cmNoaXZlKQorCXsKKwkJLyogU2V0IHVwIGZvciByZWFkaW5nIHRhciBmaWxlICovCisJCWluaXRf YXJjaGl2ZV9yZWFkZXIoJnByaXZhdGUsIHdhbGRpciwgY29tcHJlc3Npb24pOworCisJCS8qIFJv dXRpbmUgdG8gZGVjb2RlIFdBTCBmaWxlcyBpbiB0YXIgYXJjaGl2ZSAqLworCQl4bG9ncmVhZGVy X3N0YXRlID0KKwkJCVhMb2dSZWFkZXJBbGxvY2F0ZShXYWxTZWdTeiwgd2FsZGlyLAorCQkJCQkJ CSAgIFhMX1JPVVRJTkUoLnBhZ2VfcmVhZCA9IFRhcldBTER1bXBSZWFkUGFnZSwKKwkJCQkJCQkJ CQkgIC5zZWdtZW50X29wZW4gPSBUYXJXQUxEdW1wT3BlblNlZ21lbnQsCisJCQkJCQkJCQkJICAu c2VnbWVudF9jbG9zZSA9IFRhcldBTER1bXBDbG9zZVNlZ21lbnQpLAorCQkJCQkJCSAgICZwcml2 YXRlKTsKKwl9CisJZWxzZQorCXsKKwkJLyogUm91dGluZSB0byBkZWNvZGUgV0FMIGZpbGVzICov CisJCXhsb2dyZWFkZXJfc3RhdGUgPQorCQkJWExvZ1JlYWRlckFsbG9jYXRlKFdhbFNlZ1N6LCB3 YWxkaXIsCisJCQkJCQkJICAgWExfUk9VVElORSgucGFnZV9yZWFkID0gV0FMRHVtcFJlYWRQYWdl LAorCQkJCQkJCQkJCSAgLnNlZ21lbnRfb3BlbiA9IFdBTER1bXBPcGVuU2VnbWVudCwKKwkJCQkJ CQkJCQkgIC5zZWdtZW50X2Nsb3NlID0gV0FMRHVtcENsb3NlU2VnbWVudCksCisJCQkJCQkJICAg JnByaXZhdGUpOworCX0KKwogCWlmICgheGxvZ3JlYWRlcl9zdGF0ZSkKIAkJcGdfZmF0YWwoIm91 dCBvZiBtZW1vcnkgd2hpbGUgYWxsb2NhdGluZyBhIFdBTCByZWFkaW5nIHByb2Nlc3NvciIpOwog CkBAIC0xMzIxLDYgKzE0MTcsOSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAogCVhM b2dSZWFkZXJGcmVlKHhsb2dyZWFkZXJfc3RhdGUpOwogCisJaWYgKGlzX2FyY2hpdmUpCisJCWZy ZWVfYXJjaGl2ZV9yZWFkZXIoJnByaXZhdGUpOworCiAJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKIAog YmFkX2FyZ3VtZW50OgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAu aCBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmgKaW5kZXggOWU2MmI2NGVhZDUuLjU0 NzU4YzM1NDhhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5oCisr KyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmgKQEAgLTEyLDkgKzEyLDEzIEBACiAj ZGVmaW5lIFBHX1dBTERVTVBfSAogCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2dkZWZzLmgiCisjaW5j bHVkZSAiZmVfdXRpbHMvYXN0cmVhbWVyLmgiCiAKIGV4dGVybiBpbnQJV2FsU2VnU3o7CiAKKy8q IEZvcndhcmQgZGVjbGFyYXRpb24gKi8KK3N0cnVjdCBBcmNoaXZlZFdBTEVudHJ5OworCiAvKiBD b250YWlucyB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIHRvIGRyaXZlIFdBTCBkZWNvZGluZyAq LwogdHlwZWRlZiBzdHJ1Y3QgWExvZ0R1bXBQcml2YXRlCiB7CkBAIC0yMiw2ICsyNiwzNiBAQCB0 eXBlZGVmIHN0cnVjdCBYTG9nRHVtcFByaXZhdGUKIAlYTG9nUmVjUHRyCXN0YXJ0cHRyOwogCVhM b2dSZWNQdHIJZW5kcHRyOwogCWJvb2wJCWVuZHB0cl9yZWFjaGVkOworCisJLyogRmllbGRzIHJl cXVpcmVkIHRvIHJlYWQgV0FMIGZyb20gYXJjaGl2ZSAqLworCWNoYXIJICAgKmFyY2hpdmVfbmFt ZTsJLyogVGFyIGFyY2hpdmUgbmFtZSAqLworCWludAkJCWFyY2hpdmVfZmQ7CQkvKiBGaWxlIGRl c2NyaXB0b3IgZm9yIHRoZSBvcGVuIHRhciBmaWxlICovCisKKwlhc3RyZWFtZXIgICphcmNoaXZl X3N0cmVhbWVyOworCisJLyogV2hhdCB0aGUgYXJjaGl2ZSBzdHJlYW1lciBpcyBjdXJyZW50bHkg cmVhZGluZyAqLworCXN0cnVjdCBBcmNoaXZlZFdBTEVudHJ5ICpjdXJfd2FsOworCisJLyoKKwkg KiBBbHRob3VnaCB0aGVzZSB2YWx1ZXMgY2FuIGJlIGVhc2lseSBkZXJpdmVkIGZyb20gc3RhcnRw dHIgYW5kIGVuZHB0ciwKKwkgKiBkb2luZyBzbyByZXBlYXRlZGx5IGZvciBlYWNoIGFyY2hpdmVk IG1lbWJlciB3b3VsZCBiZSBpbmVmZmljaWVudCwgYXMKKwkgKiBpdCB3b3VsZCBpbnZvbHZlIHJl Y2FsY3VsYXRpbmcgYW5kIGZpbHRlcmluZyBvdXQgaXJyZWxldmFudCBXQUwKKwkgKiBzZWdtZW50 cy4KKwkgKi8KKwlYTG9nU2VnTm8Jc3RhcnRTZWdObzsKKwlYTG9nU2VnTm8JZW5kU2VnTm87CiB9 IFhMb2dEdW1wUHJpdmF0ZTsKIAotI2VuZGlmCQkvKiBlbmQgb2YgUEdfV0FMRFVNUF9IICovCitl eHRlcm4gaW50CW9wZW5fZmlsZV9pbl9kaXJlY3RvcnkoY29uc3QgY2hhciAqZGlyZWN0b3J5LCBj b25zdCBjaGFyICpmbmFtZSk7CisKK2V4dGVybiBib29sIGlzX2FyY2hpdmVfZmlsZShjb25zdCBj aGFyICpmbmFtZSwKKwkJCQkJCQlwZ19jb21wcmVzc19hbGdvcml0aG0gKmNvbXByZXNzaW9uKTsK K2V4dGVybiB2b2lkIGluaXRfYXJjaGl2ZV9yZWFkZXIoWExvZ0R1bXBQcml2YXRlICpwcml2YXRl SW5mbywKKwkJCQkJCQkJY29uc3QgY2hhciAqd2FsZGlyLAorCQkJCQkJCQlwZ19jb21wcmVzc19h bGdvcml0aG0gY29tcHJlc3Npb24pOworZXh0ZXJuIHZvaWQgZnJlZV9hcmNoaXZlX3JlYWRlcihY TG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvKTsKK2V4dGVybiBpbnQJcmVhZF9hcmNoaXZlX3dh bF9wYWdlKFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUluZm8sCisJCQkJCQkJCSAgWExvZ1JlY1B0 ciB0YXJnZXRQYWdlUHRyLAorCQkJCQkJCQkgIFNpemUgY291bnQsIGNoYXIgKnJlYWRCdWZmKTsK KworI2VuZGlmCQkJCQkJCS8qIGVuZCBvZiBQR19XQUxEVU1QX0ggKi8KZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbCBiL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAw MV9iYXNpYy5wbAppbmRleCAxYjcxMmU4ZDc0ZC4uNDQzMTI2YTljZTYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbAorKysgYi9zcmMvYmluL3BnX3dhbGR1bXAv dC8wMDFfYmFzaWMucGwKQEAgLTMsMTAgKzMsMTMgQEAKIAogdXNlIHN0cmljdDsKIHVzZSB3YXJu aW5ncyBGQVRBTCA9PiAnYWxsJzsKK3VzZSBDd2Q7CiB1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1 c3RlcjsKIHVzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKIHVzZSBUZXN0OjpNb3JlOwogCitt eSAkdGFyID0gJEVOVntUQVJ9OworCiBwcm9ncmFtX2hlbHBfb2soJ3BnX3dhbGR1bXAnKTsKIHBy b2dyYW1fdmVyc2lvbl9vaygncGdfd2FsZHVtcCcpOwogcHJvZ3JhbV9vcHRpb25zX2hhbmRsaW5n X29rKCdwZ193YWxkdW1wJyk7CkBAIC0yMzUsNyArMjM4LDcgQEAgY29tbWFuZF9saWtlKAogc3Vi IHRlc3RfcGdfd2FsZHVtcAogewogCWxvY2FsICRUZXN0OjpCdWlsZGVyOjpMZXZlbCA9ICRUZXN0 OjpCdWlsZGVyOjpMZXZlbCArIDE7Ci0JbXkgQG9wdHMgPSBAXzsKKwlteSAoJHBhdGgsIEBvcHRz KSA9IEBfOwogCiAJbXkgKCRzdGRvdXQsICRzdGRlcnIpOwogCkBAIC0yNDMsNiArMjQ2LDcgQEAg c3ViIHRlc3RfcGdfd2FsZHVtcAogCQkncGdfd2FsZHVtcCcsCiAJCSctLXN0YXJ0JyA9PiAkc3Rh cnRfbHNuLAogCQknLS1lbmQnID0+ICRlbmRfbHNuLAorCQknLS1wYXRoJyA9PiAkcGF0aCwKIAkJ QG9wdHMKIAkgIF0sCiAJICAnPicgPT4gXCRzdGRvdXQsCkBAIC0yNTQsMTEgKzI1OCw1MCBAQCBz dWIgdGVzdF9wZ193YWxkdW1wCiAJcmV0dXJuIEBsaW5lczsKIH0KIAotbXkgQGxpbmVzOworIyBD cmVhdGUgYSB0YXIgYXJjaGl2ZSwgc29ydGluZyB0aGUgZmlsZSBvcmRlcgorc3ViIGdlbmVyYXRl X2FyY2hpdmUKK3sKKwlteSAoJGFyY2hpdmUsICRkaXJlY3RvcnksICRjb21wcmVzc2lvbl9mbGFn cykgPSBAXzsKKworCW15IEBmaWxlczsKKwlvcGVuZGlyIG15ICRkaCwgJGRpcmVjdG9yeSBvciBk aWUgIm9wZW5kaXI6ICQhIjsKKwl3aGlsZSAobXkgJGVudHJ5ID0gcmVhZGRpciAkZGgpIHsKKwkJ IyBTa2lwICcuJyBhbmQgJy4uJworCQluZXh0IGlmICRlbnRyeSBlcSAnLicgfHwgJGVudHJ5IGVx ICcuLic7CisJCXB1c2ggQGZpbGVzLCAkZW50cnk7CisJfQorCWNsb3NlZGlyICRkaDsKKworCUBm aWxlcyA9IHNvcnQgQGZpbGVzOworCisJIyBtb3ZlIGludG8gdGhlIFdBTCBkaXJlY3RvcnkgYmVm b3JlIGFyY2hpdmluZyBmaWxlcworCW15ICRjd2QgPSBnZXRjd2Q7CisJY2hkaXIoJGRpcmVjdG9y eSkgfHwgZGllICJjaGRpcjogJCEiOworCWNvbW1hbmRfb2soWyR0YXIsICRjb21wcmVzc2lvbl9m bGFncywgJGFyY2hpdmUsIEBmaWxlc10pOworCWNoZGlyKCRjd2QpIHx8IGRpZSAiY2hkaXI6ICQh IjsKK30KKworbXkgJHRtcF9kaXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dGVtcGRpcl9z aG9ydCgpOwogCiBteSBAc2NlbmFyaW8gPSAoCiAJewotCQkncGF0aCcgPT4gJG5vZGUtPmRhdGFf ZGlyCisJCSdwYXRoJyA9PiAkbm9kZS0+ZGF0YV9kaXIsCisJCSdpc19hcmNoaXZlJyA9PiAwLAor CQknZW5hYmxlZCcgPT4gMQorCX0sCisJeworCQkncGF0aCcgPT4gIiR0bXBfZGlyL3BnX3dhbC50 YXIiLAorCQknY29tcHJlc3Npb25fbWV0aG9kJyA9PiAnbm9uZScsCisJCSdjb21wcmVzc2lvbl9m bGFncycgPT4gJy1jZicsCisJCSdpc19hcmNoaXZlJyA9PiAxLAorCQknZW5hYmxlZCcgPT4gMQor CX0sCisJeworCQkncGF0aCcgPT4gIiR0bXBfZGlyL3BnX3dhbC50YXIuZ3oiLAorCQknY29tcHJl c3Npb25fbWV0aG9kJyA9PiAnZ3ppcCcsCisJCSdjb21wcmVzc2lvbl9mbGFncycgPT4gJy1jemYn LAorCQknaXNfYXJjaGl2ZScgPT4gMSwKKwkJJ2VuYWJsZWQnID0+IGNoZWNrX3BnX2NvbmZpZygi I2RlZmluZSBIQVZFX0xJQlogMSIpCiAJfSk7CiAKIGZvciBteSAkc2NlbmFyaW8gKEBzY2VuYXJp bykKQEAgLTI2Nyw2ICszMTAsMTkgQEAgZm9yIG15ICRzY2VuYXJpbyAoQHNjZW5hcmlvKQogCiAJ U0tJUDoKIAl7CisJCXNraXAgInRhciBjb21tYW5kIGlzIG5vdCBhdmFpbGFibGUiLCAzCisJCSAg aWYgIWRlZmluZWQgJHRhcjsKKwkJc2tpcCAiJHNjZW5hcmlvLT57J2NvbXByZXNzaW9uX21ldGhv ZCd9IGNvbXByZXNzaW9uIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBidWlsZCIsIDMKKwkJICBpZiAh JHNjZW5hcmlvLT57J2VuYWJsZWQnfSAmJiAkc2NlbmFyaW8tPnsnaXNfYXJjaGl2ZSd9OworCisJ CSAgIyBjcmVhdGUgcGdfd2FsIGFyY2hpdmUKKwkJICBpZiAoJHNjZW5hcmlvLT57J2lzX2FyY2hp dmUnfSkKKwkJICB7CisJCQkgIGdlbmVyYXRlX2FyY2hpdmUoJHBhdGgsCisJCQkJICAkbm9kZS0+ ZGF0YV9kaXIgLiAnL3BnX3dhbCcsCisJCQkJICAkc2NlbmFyaW8tPnsnY29tcHJlc3Npb25fZmxh Z3MnfSk7CisJCSAgfQorCiAJCWNvbW1hbmRfZmFpbHNfbGlrZSgKIAkJCVsgJ3BnX3dhbGR1bXAn LCAnLS1wYXRoJyA9PiAkcGF0aCBdLAogCQkJcXIvZXJyb3I6IG5vIHN0YXJ0IFdBTCBsb2NhdGlv biBnaXZlbi8sCkBAIC0yOTgsMzggKzM1NCw0MiBAQCBmb3IgbXkgJHNjZW5hcmlvIChAc2NlbmFy aW8pCiAJCQlxci9lcnJvcjogZXJyb3IgaW4gV0FMIHJlY29yZCBhdC8sCiAJCQknZXJyb3JzIGFy ZSBzaG93biB3aXRoIC0tcXVpZXQnKTsKIAotCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0t cGF0aCcgPT4gJHBhdGgpOworCQlteSBAbGluZXM7CisJCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVt cCgkcGF0aCk7CiAJCWlzKGdyZXAoIS9ecm1ncjogXHcvLCBAbGluZXMpLCAwLCAnYWxsIG91dHB1 dCBsaW5lcyBhcmUgcm1nciBsaW5lcycpOwogCi0JCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgn LS1wYXRoJyA9PiAkcGF0aCwgJy0tbGltaXQnID0+IDYpOworCQlAbGluZXMgPSB0ZXN0X3BnX3dh bGR1bXAoJHBhdGgsICctLWxpbWl0JyA9PiA2KTsKIAkJaXMoQGxpbmVzLCA2LCAnbGltaXQgb3B0 aW9uIG9ic2VydmVkJyk7CiAKLQkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ ICRwYXRoLCAnLS1mdWxscGFnZScpOworCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJHBhdGgs ICctLWZ1bGxwYWdlJyk7CiAJCWlzKGdyZXAoIS9ecm1ncjouKlxiRlBXXGIvLCBAbGluZXMpLCAw LCAnYWxsIG91dHB1dCBsaW5lcyBhcmUgRlBXJyk7CiAKLQkJQGxpbmVzID0gdGVzdF9wZ193YWxk dW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1zdGF0cycpOworCQlAbGluZXMgPSB0ZXN0X3BnX3dh bGR1bXAoJHBhdGgsICctLXN0YXRzJyk7CiAJCWxpa2UoJGxpbmVzWzBdLCBxci9XQUwgc3RhdGlz dGljcy8sICJzdGF0aXN0aWNzIG9uIHN0ZG91dCIpOwogCQlpcyhncmVwKC9ecm1ncjovLCBAbGlu ZXMpLCAwLCAnbm8gcm1nciBsaW5lcyBvdXRwdXQnKTsKIAotCQlAbGluZXMgPSB0ZXN0X3BnX3dh bGR1bXAoJy0tcGF0aCcgPT4gJHBhdGgsICctLXN0YXRzPXJlY29yZCcpOworCQlAbGluZXMgPSB0 ZXN0X3BnX3dhbGR1bXAoJHBhdGgsICctLXN0YXRzPXJlY29yZCcpOwogCQlsaWtlKCRsaW5lc1sw XSwgcXIvV0FMIHN0YXRpc3RpY3MvLCAic3RhdGlzdGljcyBvbiBzdGRvdXQiKTsKIAkJaXMoZ3Jl cCgvXnJtZ3I6LywgQGxpbmVzKSwgMCwgJ25vIHJtZ3IgbGluZXMgb3V0cHV0Jyk7CiAKLQkJQGxp bmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1ybWdyJyA9PiAnQnRy ZWUnKTsKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCRwYXRoLCAnLS1ybWdyJyA9PiAnQnRy ZWUnKTsKIAkJaXMoZ3JlcCghL15ybWdyOiBCdHJlZS8sIEBsaW5lcyksIDAsICdvbmx5IEJ0cmVl IGxpbmVzJyk7CiAKLQkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRo LCAnLS1mb3JrJyA9PiAnaW5pdCcpOworCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJHBhdGgs ICctLWZvcmsnID0+ICdpbml0Jyk7CiAJCWlzKGdyZXAoIS9mb3JrIGluaXQvLCBAbGluZXMpLCAw LCAnb25seSBpbml0IGZvcmsgbGluZXMnKTsKIAotCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAo Jy0tcGF0aCcgPT4gJHBhdGgsCisJCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgkcGF0aCwKIAkJ CSctLXJlbGF0aW9uJyA9PiAiJGRlZmF1bHRfdHNfb2lkLyRwb3N0Z3Jlc19kYl9vaWQvJHJlbF90 MV9vaWQiKTsKIAkJaXMoZ3JlcCghL3JlbCAkZGVmYXVsdF90c19vaWRcLyRwb3N0Z3Jlc19kYl9v aWRcLyRyZWxfdDFfb2lkLywgQGxpbmVzKSwKIAkJCTAsICdvbmx5IGxpbmVzIGZvciBzZWxlY3Rl ZCByZWxhdGlvbicpOwogCi0JCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1wYXRoJyA9PiAk cGF0aCwKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCRwYXRoLAogCQkJJy0tcmVsYXRpb24n ID0+ICIkZGVmYXVsdF90c19vaWQvJHBvc3RncmVzX2RiX29pZC8kcmVsX2kxYV9vaWQiLAogCQkJ Jy0tYmxvY2snID0+IDEpOwogCQlpcyhncmVwKCEvXGJibGsgMVxiLywgQGxpbmVzKSwgMCwgJ29u bHkgbGluZXMgZm9yIHNlbGVjdGVkIGJsb2NrJyk7CisKKwkJIyBDbGVhbnVwLgorCQl1bmxpbmsg JHBhdGggaWYgJHNjZW5hcmlvLT57J2lzX2FyY2hpdmUnfTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBh L3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QKaW5kZXggMjNiY2U3MmFlNjQuLjBjOGQ2YmZhM2UxIDEwMDY0NAotLS0gYS9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdApAQCAtMTM5LDYgKzEzOSw4IEBAIEFyY2hpdmVPcHRzCiBBcmNoaXZlU2h1 dGRvd25DQgogQXJjaGl2ZVN0YXJ0dXBDQgogQXJjaGl2ZVN0cmVhbVN0YXRlCitBcmNoaXZlZFdB TEVudHJ5CitBcmNoaXZlZFdBTF9oYXNoCiBBcmNoaXZlck91dHB1dAogQXJjaGl2ZXJTdGFnZQog QXJyYXlBbmFseXplRXh0cmFEYXRhCkBAIC0zNDYxLDYgKzM0NjMsNyBAQCBhc3RyZWFtZXJfcmVj b3ZlcnlfaW5qZWN0b3IKIGFzdHJlYW1lcl90YXJfYXJjaGl2ZXIKIGFzdHJlYW1lcl90YXJfcGFy c2VyCiBhc3RyZWFtZXJfdmVyaWZ5Cithc3RyZWFtZXJfd2FsZHVtcAogYXN0cmVhbWVyX3pzdGRf ZnJhbWUKIGF1dGhfcGFzc3dvcmRfaG9va190eXAKIGF1dG92YWNfdGFibGUKLS0gCjIuNDcuMQoK --000000000000879a6c0643c31997 Content-Type: application/octet-stream; name="v6-0005-pg_waldump-Remove-the-restriction-on-the-order-of.patch" Content-Disposition: attachment; filename="v6-0005-pg_waldump-Remove-the-restriction-on-the-order-of.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mi2n3rvb4 RnJvbSA3NDIyZmY0NzAwYjc0OTNlZWYzYzkwOTdlODZmOTlkYTVhYWVlYWMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgNiBOb3YgMjAyNSAxMzo0ODozMyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjYgNS84XSBwZ193 YWxkdW1wOiBSZW1vdmUgdGhlIHJlc3RyaWN0aW9uIG9uIHRoZSBvcmRlciBvZgogYXJjaGl2ZWQg V0FMIGZpbGVzLgoKV2l0aCBwcmV2aW91cyBwYXRjaCwgcGdfd2FsZHVtcCB3b3VsZCBzdG9wIGRl Y29kaW5nIGlmIFdBTCBmaWxlcyB3ZXJlCm5vdCBpbiB0aGUgcmVxdWlyZWQgc2VxdWVuY2UuIFdp dGggdGhpcyBwYXRjaCwgZGVjb2Rpbmcgd2lsbCBub3cKY29udGludWUuICBBbnkgV0FMIGZpbGUg dGhhdCBpcyBvdXQgb2Ygb3JkZXIgd2lsbCBiZSB3cml0dGVuIHRvIGEKdGVtcG9yYXJ5IGxvY2F0 aW9uLCBmcm9tIHdoaWNoIGl0IHdpbGwgYmUgcmVhZCBsYXRlci4gT25jZSBhIHRlbXBvcmFyeQpm aWxlIGhhcyBiZWVuIHJlYWQsIGl0IHdpbGwgYmUgcmVtb3ZlZC4KLS0tCiBzcmMvYmluL3BnX3dh bGR1bXAvYXJjaGl2ZV93YWxkdW1wLmMgfCAyMDcgKysrKysrKysrKysrKysrKysrKysrKysrKy0t CiBzcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jICAgICAgfCAgNDEgKysrKystCiBzcmMv YmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5oICAgICAgfCAgIDQgKwogc3JjL2Jpbi9wZ193YWxk dW1wL3QvMDAxX2Jhc2ljLnBsICAgIHwgICAzICstCiA0IGZpbGVzIGNoYW5nZWQsIDI0MyBpbnNl cnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbGR1 bXAvYXJjaGl2ZV93YWxkdW1wLmMgYi9zcmMvYmluL3BnX3dhbGR1bXAvYXJjaGl2ZV93YWxkdW1w LmMKaW5kZXggMjgzMGM4OWE3YmUuLjdjOGYxN2JhMTM1IDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn 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 L3BnX3dhbGR1bXAuYwppbmRleCA3NDI1ZDM4NmQwYy4uYTQ3MmVmNTk1NzUgMTAwNjQ0Ci0tLSBh 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= --000000000000879a6c0643c31997 Content-Type: application/octet-stream; name="v6-0006-pg_verifybackup-Delay-default-WAL-directory-prepa.patch" Content-Disposition: attachment; filename="v6-0006-pg_verifybackup-Delay-default-WAL-directory-prepa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mi2n3uw75 RnJvbSBkODkyMDBkNjVlM2E5Y2MyZTg3MzdlYmVhODUwZTYzYzQxYTZlMGU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgMTYgSnVsIDIwMjUgMTQ6NDc6NDMgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2IDYvOF0gcGdf dmVyaWZ5YmFja3VwOiBEZWxheSBkZWZhdWx0IFdBTCBkaXJlY3RvcnkKIHByZXBhcmF0aW9uLgoK V2UgYXJlIG5vdCBzdXJlIHdoZXRoZXIgdG8gcGFyc2UgV0FMIGZyb20gYSBkaXJlY3Rvcnkgb3Ig YW4gYXJjaGl2ZQp1bnRpbCB0aGUgYmFja3VwIGZvcm1hdCBpcyBrbm93bi4gVGhlcmVmb3JlLCB3 ZSBkZWxheSBwcmVwYXJpbmcgdGhlCmRlZmF1bHQgV0FMIGRpcmVjdG9yeSB1bnRpbCB0aGUgcG9p bnQgb2YgcGFyc2luZy4gVGhpcyBkZWxheSBpcwpoYXJtbGVzcywgYXMgdGhlIFdBTCBkaXJlY3Rv cnkgaXMgbm90IHVzZWQgZWxzZXdoZXJlLgotLS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Bn X3ZlcmlmeWJhY2t1cC5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1 cC9wZ192ZXJpZnliYWNrdXAuYyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJh Y2t1cC5jCmluZGV4IDhkNWJlZmE5NDdmLi5hNTAyZTc5NWIyZSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKKysrIGIvc3JjL2Jpbi9wZ192ZXJp ZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKQEAgLTI4NSwxMCArMjg1LDYgQEAgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAJCW1hbmlmZXN0X3BhdGggPSBwc3ByaW50ZigiJXMvYmFja3Vw X21hbmlmZXN0IiwKIAkJCQkJCQkJIGNvbnRleHQuYmFja3VwX2RpcmVjdG9yeSk7CiAKLQkvKiBC eSBkZWZhdWx0LCBsb29rIGZvciB0aGUgV0FMIGluIHRoZSBiYWNrdXAgZGlyZWN0b3J5LCB0b28u ICovCi0JaWYgKHdhbF9kaXJlY3RvcnkgPT0gTlVMTCkKLQkJd2FsX2RpcmVjdG9yeSA9IHBzcHJp bnRmKCIlcy9wZ193YWwiLCBjb250ZXh0LmJhY2t1cF9kaXJlY3RvcnkpOwotCiAJLyoKIAkgKiBU cnkgdG8gcmVhZCB0aGUgbWFuaWZlc3QuIFdlIHRyZWF0IGFueSBlcnJvcnMgZW5jb3VudGVyZWQg d2hpbGUgcGFyc2luZwogCSAqIHRoZSBtYW5pZmVzdCBhcyBmYXRhbDsgdGhlcmUgZG9lc24ndCBz ZWVtIHRvIGJlIG11Y2ggcG9pbnQgaW4gdHJ5aW5nIHRvCkBAIC0zNjgsNiArMzY0LDEwIEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCWlmIChjb250ZXh0LmZvcm1hdCA9PSAncCcgJiYg IWNvbnRleHQuc2tpcF9jaGVja3N1bXMpCiAJCXZlcmlmeV9iYWNrdXBfY2hlY2tzdW1zKCZjb250 ZXh0KTsKIAorCS8qIEJ5IGRlZmF1bHQsIGxvb2sgZm9yIHRoZSBXQUwgaW4gdGhlIGJhY2t1cCBk aXJlY3RvcnksIHRvby4gKi8KKwlpZiAod2FsX2RpcmVjdG9yeSA9PSBOVUxMKQorCQl3YWxfZGly ZWN0b3J5ID0gcHNwcmludGYoIiVzL3BnX3dhbCIsIGNvbnRleHQuYmFja3VwX2RpcmVjdG9yeSk7 CisKIAkvKgogCSAqIFRyeSB0byBwYXJzZSB0aGUgcmVxdWlyZWQgcmFuZ2VzIG9mIFdBTCByZWNv cmRzLCB1bmxlc3Mgd2Ugd2VyZSB0b2xkCiAJICogbm90IHRvIGRvIHNvLgotLSAKMi40Ny4xCgo= --000000000000879a6c0643c31997 Content-Type: application/octet-stream; name="v6-0007-pg_verifybackup-Rename-the-wal-directory-switch-t.patch" Content-Disposition: attachment; filename="v6-0007-pg_verifybackup-Rename-the-wal-directory-switch-t.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mi2n3y3m6 RnJvbSBjOWRlMDFhY2UxNzk0ODAxYWExODlhZWJmZjkyM2E2OGU5M2FmODkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMjQgSnVsIDIwMjUgMTY6Mzc6NDMgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2IDcvOF0gcGdf 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 LmMgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYwppbmRleCBhNTAy ZTc5NWIyZS4uOWZjZDZiZTAwNGUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw 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= --000000000000879a6c0643c31997 Content-Type: application/octet-stream; name="v6-0008-pg_verifybackup-enabled-WAL-parsing-for-tar-forma.patch" Content-Disposition: attachment; filename="v6-0008-pg_verifybackup-enabled-WAL-parsing-for-tar-forma.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mi2n419i7 RnJvbSBiODIzYmMzMDg2ZjgwZTg2OTA1N2NjZWYwYzZlOGEzZjdjNjY0YTlhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMTcgSnVsIDIwMjUgMTY6Mzk6MzYgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2IDgvOF0gcGdf 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 a3VwLmMgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYwppbmRleCA5 ZmNkNmJlMDA0ZS4uNjkxNWZjN2YyOGUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFj 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= --000000000000879a6c0643c31997--