Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uqWKI-007oNv-5x for pgsql-hackers@arkaria.postgresql.org; Mon, 25 Aug 2025 12:29:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uqWKH-0091iD-F3 for pgsql-hackers@arkaria.postgresql.org; Mon, 25 Aug 2025 12:29:30 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uqWKG-0091i5-Vx for pgsql-hackers@lists.postgresql.org; Mon, 25 Aug 2025 12:29:29 +0000 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uqWKE-001l8z-22 for pgsql-hackers@lists.postgresql.org; Mon, 25 Aug 2025 12:29:29 +0000 Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-3258cdb7253so1292592a91.3 for ; Mon, 25 Aug 2025 05:29:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756124962; x=1756729762; darn=lists.postgresql.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=MTSl5uh0MYoohTQXed7mBPdoGjMNcUhF9hHRxfMoN00=; b=PjhgEYjqof9AFnK2YPtXvcDOEKizfbNdF4eB58w9YA5BHPCkRCsGEDKdfoh9ZYvlRH F3UEYoiKYbqynMDdsyn0m39YrQfml2O5BpCcaAoWPLI65ZkeE95INWC9PkXVMbQJt+/t zV2NeBE4rvbbXQpMggEtPoZZ0vR+b8MRGpMc6zMI2wvNGgGv+/WSMP00++pZ2DYKJCRI 3q9sqa299tZFtYH1i1tn7j1N/wPSsmsQWH9osqnaT2iLsYnzXitHrHXAgEdwxz1naQ0u PW4Vk48o+Mw7oEHT7ELpNtEOXePiO3nbosPmhZdbOtsB919KXcuYf8HhfQm7cSoCKKLu ERIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756124962; x=1756729762; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=MTSl5uh0MYoohTQXed7mBPdoGjMNcUhF9hHRxfMoN00=; b=WcfToRWQKWbdSMVuhn1J7eTH1lDK/NWpLYu6DrXU4tN+8hU8hFH++EUJcc0jRZjhL0 Rm7rTFw2Qel2bOVZvkbNXD1fAQ1hr3klDrvf+E68Cr/pMOvnlLkyevMV0WyJsAutmMd8 G1mjaNnxoY+DE0HhEBXnBhA5NvxK9aEDseLcDXOmyiunddq7yqYmdekgPpqVAV/wiwPP mGmc9Y7II0YihJnIOfcgdCsvQZLovM/NllLdteez6a9OLLfd3MLhVNjQvTEOKQWFSXYT TDCdDCx6HnnN/Co6qfoQ7clhDc6eUMsnBuNlsQto7W/lMfbA5/Yrniw6Mnql7e378/Vb vpDg== X-Gm-Message-State: AOJu0YwJzsGkOwm6VKN8Lh7Gcz7IinTHDRt2T0p3pq2JcMvOf7Aal5LG 9E3U0JNk7AN3mLwp5r3fXm5mUYEjKYqlh4QGb1pA0ccPl6M3IRtdHLPgKrNIIKilnEl0ITznTQg FDHMhg3zKLbYNgLmJDoF0RgtdB5T4Eb02pg== X-Gm-Gg: ASbGncvXq2rXEUM5SRNgF75VRB6upuASqcLg94yop7rO5UFFG0FLPSJPoyCuEyJ3lLG /XERVbm4ZapxD2XuUoVyM4fE3LFqh6xPf706l/w2O67Ajiwa2Bz1rhzBTUoGwe2mMwas30vHoBV 4PxLoKUGIe2XTCnej3qodnOlPnVSNLw0BM4z0J7EyXtkuP6oMkUychGxii8arrGgj7NBShNl6rd RetbGdB X-Google-Smtp-Source: AGHT+IFELCoNr0WbgyFrwmEVSlNMiqLl0xeMT2TP/S1GXN2EzIOw1jmjtlEWRYNmBwccbNbFG7uZaI1ntzshopUIYNM= X-Received: by 2002:a17:90b:388d:b0:325:6598:30d3 with SMTP id 98e67ed59e1d1-3256598343emr8912172a91.8.1756124962400; Mon, 25 Aug 2025 05:29:22 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Amul Sul Date: Mon, 25 Aug 2025 17:58:44 +0530 X-Gm-Features: Ac12FXwZ6QjI2lro8kh25qezp3LtUa_H69ocmgnoTIC68cyNFuHY5QLFpu9eCUI Message-ID: Subject: Re: pg_waldump: support decoding of WAL inside tarfile To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000913393063d2fb4a6" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000913393063d2fb4a6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Aug 7, 2025 at 7:47=E2=80=AFPM Amul Sul wrote: > [....] > ----------------------------------- > Known Issues & Status: > ----------------------------------- > - Timeline Switching: The current implementation in patch 006 does not > correctly handle timeline switching. This is a known issue, especially > when a timeline change occurs on a WAL file that has been written to a > temporary location. > This is still pending and will be addressed in the next version. Therefore, patch 0006 remains marked as WIP. > - Testing: Local regression tests on CentOS and macOS M4 are passing. > However, some tests on macOS Sonoma (specifically 008_untar.pl and > 010_client_untar.pl) are failing in the GitHub workflow with a "WAL > parsing failed for timeline 1" error. This issue is currently being > investigated. > This has been fixed in the attached version; all GitHub workflow tests are now fine. Regards, Amul --000000000000913393063d2fb4a6 Content-Type: application/x-patch; name="v2-0001-Refactor-pg_waldump-Move-some-declarations-to-new.patch" Content-Disposition: attachment; filename="v2-0001-Refactor-pg_waldump-Move-some-declarations-to-new.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mer3d7kc0 RnJvbSAyMzNjZjA5NzdiMTgxMDA5MTZiMDIwNGFkN2U1NzQ0NWM0MjBkYWU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFR1 ZSwgMjQgSnVuIDIwMjUgMTE6MzM6MjAgKzA1MzAKU3ViamVjdDogW1BBVENIIHYyIDEvOV0gUmVm YWN0b3I6IHBnX3dhbGR1bXA6IE1vdmUgc29tZSBkZWNsYXJhdGlvbnMgdG8gbmV3CiBwZ193YWxk dW1wLmgKClRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9yIGFkZGluZyBhIHNlY29uZCBzb3VyY2Ug ZmlsZSB0byB0aGlzCmRpcmVjdG9yeS4KLS0tCiBzcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVt cC5jIHwgMTEgKystLS0tLS0tLS0KIHNyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmggfCAy NyArKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0 aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmluL3BnX3dh bGR1bXAvcGdfd2FsZHVtcC5oCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dh bGR1bXAuYyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKaW5kZXggMTNkM2VjMmY1 YmUuLmE0OWIyZmQ5NmM3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVt cC5jCisrKyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKQEAgLTI5LDYgKzI5LDcg QEAKICNpbmNsdWRlICJjb21tb24vbG9nZ2luZy5oIgogI2luY2x1ZGUgImNvbW1vbi9yZWxwYXRo LmgiCiAjaW5jbHVkZSAiZ2V0b3B0X2xvbmcuaCIKKyNpbmNsdWRlICJwZ193YWxkdW1wLmgiCiAj aW5jbHVkZSAicm1ncmRlc2MuaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1ZnBhZ2UuaCIKIApAQCAt MzksMTkgKzQwLDExIEBACiAKIHN0YXRpYyBjb25zdCBjaGFyICpwcm9nbmFtZTsKIAotc3RhdGlj IGludAlXYWxTZWdTejsKK2ludAkJCVdhbFNlZ1N6ID0gREVGQVVMVF9YTE9HX1NFR19TSVpFOwog c3RhdGljIHZvbGF0aWxlIHNpZ19hdG9taWNfdCB0aW1lX3RvX3N0b3AgPSBmYWxzZTsKIAogc3Rh dGljIGNvbnN0IFJlbEZpbGVMb2NhdG9yIGVtcHR5UmVsRmlsZUxvY2F0b3IgPSB7MCwgMCwgMH07 CiAKLXR5cGVkZWYgc3RydWN0IFhMb2dEdW1wUHJpdmF0ZQotewotCVRpbWVMaW5lSUQJdGltZWxp bmU7Ci0JWExvZ1JlY1B0cglzdGFydHB0cjsKLQlYTG9nUmVjUHRyCWVuZHB0cjsKLQlib29sCQll bmRwdHJfcmVhY2hlZDsKLX0gWExvZ0R1bXBQcml2YXRlOwotCiB0eXBlZGVmIHN0cnVjdCBYTG9n RHVtcENvbmZpZwogewogCS8qIGRpc3BsYXkgb3B0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaCBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1w LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjllNjJiNjRlYWQ1Ci0t LSAvZGV2L251bGwKKysrIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaApAQCAtMCww ICsxLDI3IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ193YWxkdW1wLmggLSBkZWNv ZGUgYW5kIGRpc3BsYXkgV0FMCisgKgorICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjUsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICogSURFTlRJRklDQVRJT04KKyAq CQkgIHNyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmgKKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICovCisjaWZuZGVmIFBHX1dBTERVTVBfSAorI2RlZmluZSBQR19XQUxEVU1QX0gKKworI2luY2x1 ZGUgImFjY2Vzcy94bG9nZGVmcy5oIgorCitleHRlcm4gaW50CVdhbFNlZ1N6OworCisvKiBDb250 YWlucyB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIHRvIGRyaXZlIFdBTCBkZWNvZGluZyAqLwor dHlwZWRlZiBzdHJ1Y3QgWExvZ0R1bXBQcml2YXRlCit7CisJVGltZUxpbmVJRAl0aW1lbGluZTsK KwlYTG9nUmVjUHRyCXN0YXJ0cHRyOworCVhMb2dSZWNQdHIJZW5kcHRyOworCWJvb2wJCWVuZHB0 cl9yZWFjaGVkOworfSBYTG9nRHVtcFByaXZhdGU7CisKKyNlbmRpZgkJLyogZW5kIG9mIFBHX1dB TERVTVBfSCAqLwotLSAKMi40Ny4xCgo= --000000000000913393063d2fb4a6 Content-Type: application/x-patch; name="v2-0002-Refactor-pg_waldump-Separate-logic-used-to-calcul.patch" Content-Disposition: attachment; filename="v2-0002-Refactor-pg_waldump-Separate-logic-used-to-calcul.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mer3datd1 RnJvbSBiNDZkNDhkN2NjOWZjNDIyNTdmM2Q2ZGE2ODUwZmYyMGY5NDYxYWU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMjYgSnVuIDIwMjUgMTE6NDI6NTMgKzA1MzAKU3ViamVjdDogW1BBVENIIHYyIDIvOV0gUmVm YWN0b3I6IHBnX3dhbGR1bXA6IFNlcGFyYXRlIGxvZ2ljIHVzZWQgdG8gY2FsY3VsYXRlCiB0aGUg cmVxdWlyZWQgcmVhZCBzaXplLgoKVGhpcyByZWZhY3RvcmluZyBwcmVwYXJlcyB0aGUgY29kZWJh c2UgZm9yIGFuIHVwY29taW5nIHBhdGNoIHRoYXQgd2lsbApzdXBwb3J0IHJlYWRpbmcgV0FMIGZy b20gdGFyIGZpbGVzLiBUaGUgbG9naWMgZm9yIGNhbGN1bGF0aW5nIHRoZQpyZXF1aXJlZCByZWFk IHNpemUgaGFzIGJlZW4gdXBkYXRlZCB0byBoYW5kbGUgYm90aCBub3JtYWwgV0FMIGZpbGVzCmFu ZCBXQUwgZmlsZXMgbG9jYXRlZCBpbnNpZGUgYSB0YXIgYXJjaGl2ZS4KLS0tCiBzcmMvYmluL3Bn X3dhbGR1bXAvcGdfd2FsZHVtcC5jIHwgMzkgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYyBiL3NyYy9iaW4vcGdf d2FsZHVtcC9wZ193YWxkdW1wLmMKaW5kZXggYTQ5YjJmZDk2YzcuLjhkMGNkOWU3MTU2IDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdf d2FsZHVtcC9wZ193YWxkdW1wLmMKQEAgLTMyNiw2ICszMjYsMjkgQEAgaWRlbnRpZnlfdGFyZ2V0 X2RpcmVjdG9yeShjaGFyICpkaXJlY3RvcnksIGNoYXIgKmZuYW1lKQogCXJldHVybiBOVUxMOwkJ CQkvKiBub3QgcmVhY2hlZCAqLwogfQogCisvKiBSZXR1cm5zIHRoZSBzaXplIGluIGJ5dGVzIG9m IHRoZSBkYXRhIHRvIGJlIHJlYWQuICovCitzdGF0aWMgaW5saW5lIGludAorcmVxdWlyZWRfcmVh ZF9sZW4oWExvZ0R1bXBQcml2YXRlICpwcml2YXRlLCBYTG9nUmVjUHRyIHRhcmdldFBhZ2VQdHIs CisJCQkJICBpbnQgcmVxTGVuKQoreworCWludAkJCWNvdW50ID0gWExPR19CTENLU1o7CisKKwlp ZiAocHJpdmF0ZS0+ZW5kcHRyICE9IEludmFsaWRYTG9nUmVjUHRyKQorCXsKKwkJaWYgKHRhcmdl dFBhZ2VQdHIgKyBYTE9HX0JMQ0tTWiA8PSBwcml2YXRlLT5lbmRwdHIpCisJCQljb3VudCA9IFhM T0dfQkxDS1NaOworCQllbHNlIGlmICh0YXJnZXRQYWdlUHRyICsgcmVxTGVuIDw9IHByaXZhdGUt PmVuZHB0cikKKwkJCWNvdW50ID0gcHJpdmF0ZS0+ZW5kcHRyIC0gdGFyZ2V0UGFnZVB0cjsKKwkJ ZWxzZQorCQl7CisJCQlwcml2YXRlLT5lbmRwdHJfcmVhY2hlZCA9IHRydWU7CisJCQlyZXR1cm4g LTE7CisJCX0KKwl9CisKKwlyZXR1cm4gY291bnQ7Cit9CisKIC8qIHBnX3dhbGR1bXAncyBYTG9n UmVhZGVyUm91dGluZS0+c2VnbWVudF9vcGVuIGNhbGxiYWNrICovCiBzdGF0aWMgdm9pZAogV0FM RHVtcE9wZW5TZWdtZW50KFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUsIFhMb2dTZWdObyBuZXh0U2Vn Tm8sCkBAIC0zODMsMjEgKzQwNiwxMSBAQCBXQUxEdW1wUmVhZFBhZ2UoWExvZ1JlYWRlclN0YXRl ICpzdGF0ZSwgWExvZ1JlY1B0ciB0YXJnZXRQYWdlUHRyLCBpbnQgcmVxTGVuLAogCQkJCVhMb2dS ZWNQdHIgdGFyZ2V0UHRyLCBjaGFyICpyZWFkQnVmZikKIHsKIAlYTG9nRHVtcFByaXZhdGUgKnBy aXZhdGUgPSBzdGF0ZS0+cHJpdmF0ZV9kYXRhOwotCWludAkJCWNvdW50ID0gWExPR19CTENLU1o7 CisJaW50CQkJY291bnQgPSByZXF1aXJlZF9yZWFkX2xlbihwcml2YXRlLCB0YXJnZXRQYWdlUHRy LCByZXFMZW4pOwogCVdBTFJlYWRFcnJvciBlcnJpbmZvOwogCi0JaWYgKHByaXZhdGUtPmVuZHB0 ciAhPSBJbnZhbGlkWExvZ1JlY1B0cikKLQl7Ci0JCWlmICh0YXJnZXRQYWdlUHRyICsgWExPR19C TENLU1ogPD0gcHJpdmF0ZS0+ZW5kcHRyKQotCQkJY291bnQgPSBYTE9HX0JMQ0tTWjsKLQkJZWxz ZSBpZiAodGFyZ2V0UGFnZVB0ciArIHJlcUxlbiA8PSBwcml2YXRlLT5lbmRwdHIpCi0JCQljb3Vu dCA9IHByaXZhdGUtPmVuZHB0ciAtIHRhcmdldFBhZ2VQdHI7Ci0JCWVsc2UKLQkJewotCQkJcHJp dmF0ZS0+ZW5kcHRyX3JlYWNoZWQgPSB0cnVlOwotCQkJcmV0dXJuIC0xOwotCQl9Ci0JfQorCWlm IChwcml2YXRlLT5lbmRwdHJfcmVhY2hlZCkKKwkJcmV0dXJuIC0xOwogCiAJaWYgKCFXQUxSZWFk KHN0YXRlLCByZWFkQnVmZiwgdGFyZ2V0UGFnZVB0ciwgY291bnQsIHByaXZhdGUtPnRpbWVsaW5l LAogCQkJCSAmZXJyaW5mbykpCi0tIAoyLjQ3LjEKCg== --000000000000913393063d2fb4a6 Content-Type: application/x-patch; name="v2-0003-Refactor-pg_waldump-Restructure-TAP-tests.patch" Content-Disposition: attachment; filename="v2-0003-Refactor-pg_waldump-Restructure-TAP-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mer3de6t2 RnJvbSA4ZTMyMzYzMzA1MjJmYWUwNjc0NTA4Y2ViYzdkMmYxZDgzNzkyNzFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgMzAgSnVsIDIwMjUgMTI6NDM6MzAgKzA1MzAKU3ViamVjdDogW1BBVENIIHYyIDMvOV0gUmVm 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 --000000000000913393063d2fb4a6 Content-Type: application/x-patch; name="v2-0004-pg_waldump-Rename-directory-creation-routine-for-.patch" Content-Disposition: attachment; filename="v2-0004-pg_waldump-Rename-directory-creation-routine-for-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mer3dh893 RnJvbSA0YmFhMDE4OWQ2MjRjZDQ2MDZkY2FiNWY1NDE3Y2Y3ZDMwNWE4MjIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFR1 ZSwgMjkgSnVsIDIwMjUgMTQ6NTk6MDEgKzA1MzAKU3ViamVjdDogW1BBVENIIHYyIDQvOV0gcGdf d2FsZHVtcDogUmVuYW1lIGRpcmVjdG9yeSBjcmVhdGlvbiByb3V0aW5lIGZvcgogZ2VuZXJhbGl6 ZWQgdXNlLgoKVGhlIGNyZWF0ZV9mdWxscGFnZV9kaXJlY3RvcnkoKSBmdW5jdGlvbiwgY3VycmVu dGx5IHVzZWQgb25seSBmb3IKc3RvcmluZyBmdWxsLXBhZ2UgaW1hZ2VzIGZyb20gV0FMIHJlY29y ZHMsIHNob3VsZCBiZSByZW5hbWVkIHRvIGEgbW9yZQpnZW5lcmFsaXplZCBuYW1lLiBUaGlzIHdv dWxkIGFsbG93IGl0IHRvIGJlIHJldXNlZCBpbiBmdXR1cmUgcGF0Y2hlcwpmb3IgY3JlYXRpbmcg b3RoZXIgZGlyZWN0b3JpZXMgYXMgbmVlZGVkLgotLS0KIHNyYy9iaW4vcGdfd2FsZHVtcC9wZ193 YWxkdW1wLmMgfCAxMiArKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dh bGR1bXAuYyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKaW5kZXggOGQwY2Q5ZTcx NTYuLjQ3NzUyNzVjMDdhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVt cC5jCisrKyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKQEAgLTExNCwxMSArMTE0 LDExIEBAIHZlcmlmeV9kaXJlY3RvcnkoY29uc3QgY2hhciAqZGlyZWN0b3J5KQogfQogCiAvKgot ICogQ3JlYXRlIGlmIG5lY2Vzc2FyeSB0aGUgZGlyZWN0b3J5IHN0b3JpbmcgdGhlIGZ1bGwtcGFn ZSBpbWFnZXMgZXh0cmFjdGVkCi0gKiBmcm9tIHRoZSBXQUwgcmVjb3JkcyByZWFkLgorICogQ3Jl YXRlIHRoZSBkaXJlY3RvcnkgaWYgaXQgZG9lc24ndCBleGlzdC4gUmVwb3J0IGFuIGVycm9yIGlm IGNyZWF0aW9uIGZhaWxzCisgKiBvciBpZiBhbiBleGlzdGluZyBkaXJlY3RvcnkgaXMgbm90IGVt cHR5LgogICovCiBzdGF0aWMgdm9pZAotY3JlYXRlX2Z1bGxwYWdlX2RpcmVjdG9yeShjaGFyICpw YXRoKQorY3JlYXRlX2RpcmVjdG9yeShjaGFyICpwYXRoKQogewogCWludAkJCXJldDsKIApAQCAt MTExMiw4ICsxMTEyLDEyIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl9CiAJfQog CisJLyoKKwkgKiBDcmVhdGUgaWYgbmVjZXNzYXJ5IHRoZSBkaXJlY3Rvcnkgc3RvcmluZyB0aGUg ZnVsbC1wYWdlIGltYWdlcworCSAqIGV4dHJhY3RlZCBmcm9tIHRoZSBXQUwgcmVjb3JkcyByZWFk LgorCSAqLwogCWlmIChjb25maWcuc2F2ZV9mdWxscGFnZV9wYXRoICE9IE5VTEwpCi0JCWNyZWF0 ZV9mdWxscGFnZV9kaXJlY3RvcnkoY29uZmlnLnNhdmVfZnVsbHBhZ2VfcGF0aCk7CisJCWNyZWF0 ZV9kaXJlY3RvcnkoY29uZmlnLnNhdmVfZnVsbHBhZ2VfcGF0aCk7CiAKIAkvKiBwYXJzZSBmaWxl cyBhcyBzdGFydC9lbmQgYm91bmRhcmllcywgZXh0cmFjdCBwYXRoIGlmIG5vdCBzcGVjaWZpZWQg Ki8KIAlpZiAob3B0aW5kIDwgYXJnYykKLS0gCjIuNDcuMQoK --000000000000913393063d2fb4a6 Content-Type: application/x-patch; name="v2-0005-pg_waldump-Add-support-for-archived-WAL-decoding.patch" Content-Disposition: attachment; filename="v2-0005-pg_waldump-Add-support-for-archived-WAL-decoding.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mer3dkb94 RnJvbSA1Zjk3OTIyZTM0ZTdkNWE1MjNkYmU3MThhMWI2MWViYjA4Yzc0MDNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgMTYgSnVsIDIwMjUgMTg6Mzc6NTkgKzA1MzAKU3ViamVjdDogW1BBVENIIHYyIDUvOV0gcGdf d2FsZHVtcDogQWRkIHN1cHBvcnQgZm9yIGFyY2hpdmVkIFdBTCBkZWNvZGluZy4KCnBnX3dhbGR1 bXAgY2FuIG5vdyBhY2NlcHQgdGhlIHBhdGggdG8gYSB0YXIgYXJjaGl2ZSBjb250YWluaW5nIFdB TApmaWxlcyBhbmQgZGVjb2RlIHRoZW0uIFRoaXMgZmVhdHVyZSB3YXMgYWRkZWQgcHJpbWFyaWx5 IGZvcgpwZ192ZXJpZnliYWNrdXAsIHdoaWNoIHByZXZpb3VzbHkgZGlzYWJsZWQgV0FMIHBhcnNp bmcgZm9yCnRhci1mb3JtYXR0ZWQgYmFja3Vwcy4KCk5vdGUgdGhhdCB0aGlzIHBhdGNoIHJlcXVp cmVzIHRoYXQgdGhlIFdBTCBmaWxlcyB3aXRoaW4gdGhlIGFyY2hpdmUgYmUKaW4gc2VxdWVudGlh bCBvcmRlcjsgYW4gZXJyb3Igd2lsbCBiZSByZXBvcnRlZCBvdGhlcndpc2UuIFRoZSBuZXh0CnBh dGNoIGlzIHBsYW5uZWQgdG8gcmVtb3ZlIHRoaXMgcmVzdHJpY3Rpb24uCi0tLQogZG9jL3NyYy9z Z21sL3JlZi9wZ193YWxkdW1wLnNnbWwgICAgICAgfCAgIDggKy0KIHNyYy9iaW4vcGdfd2FsZHVt cC9NYWtlZmlsZSAgICAgICAgICAgIHwgICA3ICstCiBzcmMvYmluL3BnX3dhbGR1bXAvYXN0cmVh bWVyX3dhbGR1bXAuYyB8IDM3OCArKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmluL3Bn X3dhbGR1bXAvbWVzb24uYnVpbGQgICAgICAgICB8ICAgNCArLQogc3JjL2Jpbi9wZ193YWxkdW1w L3BnX3dhbGR1bXAuYyAgICAgICAgfCAzNjEgKysrKysrKysrKysrKysrKysrKy0tLS0KIHNyYy9i aW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmggICAgICAgIHwgIDIxICstCiBzcmMvYmluL3BnX3dh bGR1bXAvdC8wMDFfYmFzaWMucGwgICAgICB8ICA4NCArKysrKy0KIHNyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0ICAgICAgIHwgICAxICsKIDggZmlsZXMgY2hhbmdlZCwgNzg1IGluc2Vy dGlvbnMoKyksIDc5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iaW4vcGdf d2FsZHVtcC9hc3RyZWFtZXJfd2FsZHVtcC5jCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9wZ193YWxkdW1wLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3dhbGR1bXAuc2dtbAppbmRl eCBjZTIzYWRkNTU3Ny4uZDAwNGJiMGY2N2UgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYv cGdfd2FsZHVtcC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfd2FsZHVtcC5zZ21sCkBA IC0xNDEsMTMgKzE0MSwxNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDx0ZXJt PjxvcHRpb24+LS1wYXRoPTxyZXBsYWNlYWJsZT5wYXRoPC9yZXBsYWNlYWJsZT48L29wdGlvbj48 L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgPHBhcmE+Ci0gICAgICAgIFNwZWNpZmll cyBhIGRpcmVjdG9yeSB0byBzZWFyY2ggZm9yIFdBTCBzZWdtZW50IGZpbGVzIG9yIGEKLSAgICAg ICAgZGlyZWN0b3J5IHdpdGggYSA8bGl0ZXJhbD5wZ193YWw8L2xpdGVyYWw+IHN1YmRpcmVjdG9y eSB0aGF0CisgICAgICAgIFNwZWNpZmllcyBhIHRhciBhcmNoaXZlIG9yIGEgZGlyZWN0b3J5IHRv IHNlYXJjaCBmb3IgV0FMIHNlZ21lbnQgZmlsZXMKKyAgICAgICAgb3IgYSBkaXJlY3Rvcnkgd2l0 aCBhIDxsaXRlcmFsPnBnX3dhbDwvbGl0ZXJhbD4gc3ViZGlyZWN0b3J5IHRoYXQKICAgICAgICAg Y29udGFpbnMgc3VjaCBmaWxlcy4gIFRoZSBkZWZhdWx0IGlzIHRvIHNlYXJjaCBpbiB0aGUgY3Vy cmVudAogICAgICAgICBkaXJlY3RvcnksIHRoZSA8bGl0ZXJhbD5wZ193YWw8L2xpdGVyYWw+IHN1 YmRpcmVjdG9yeSBvZiB0aGUKICAgICAgICAgY3VycmVudCBkaXJlY3RvcnksIGFuZCB0aGUgPGxp dGVyYWw+cGdfd2FsPC9saXRlcmFsPiBzdWJkaXJlY3RvcnkKICAgICAgICAgb2YgPGVudmFyPlBH REFUQTwvZW52YXI+LgogICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgSWYg YSB0YXIgYXJjaGl2ZSBpcyBwcm92aWRlZCwgaXRzIFdBTCBzZWdtZW50IGZpbGVzIG11c3QgYmUg aW4KKyAgICAgICAgc2VxdWVudGlhbCBvcmRlcjsgb3RoZXJ3aXNlLCBhbiBlcnJvciB3aWxsIGJl IHJlcG9ydGVkLgorICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFy bGlzdGVudHJ5PgogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbGR1bXAvTWFrZWZpbGUgYi9z cmMvYmluL3BnX3dhbGR1bXAvTWFrZWZpbGUKaW5kZXggNGMxZWU2NDk1MDEuLmIyMzQ2MTNlYjUw IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvTWFrZWZpbGUKKysrIGIvc3JjL2Jpbi9w Z193YWxkdW1wL01ha2VmaWxlCkBAIC0zLDYgKzMsOSBAQAogUEdGSUxFREVTQyA9ICJwZ193YWxk dW1wIC0gZGVjb2RlIGFuZCBkaXNwbGF5IFdBTCIKIFBHQVBQSUNPTj13aW4zMgogCisjIG1ha2Ug dGhlc2UgYXZhaWxhYmxlIHRvIFRBUCB0ZXN0IHNjcmlwdHMKK2V4cG9ydCBUQVIKKwogc3ViZGly ID0gc3JjL2Jpbi9wZ193YWxkdW1wCiB0b3BfYnVpbGRkaXIgPSAuLi8uLi8uLgogaW5jbHVkZSAk KHRvcF9idWlsZGRpcikvc3JjL01ha2VmaWxlLmdsb2JhbApAQCAtMTIsMTEgKzE1LDEzIEBAIE9C SlMgPSBcCiAJJChXSU4zMlJFUykgXAogCWNvbXBhdC5vIFwKIAlwZ193YWxkdW1wLm8gXAorCWFz dHJlYW1lcl93YWxkdW1wLm8gXAogCXJtZ3JkZXNjLm8gXAogCXhsb2dyZWFkZXIubyBcCiAJeGxv Z3N0YXRzLm8KIAotb3ZlcnJpZGUgQ1BQRkxBR1MgOj0gLURGUk9OVEVORCAkKENQUEZMQUdTKQor b3ZlcnJpZGUgQ1BQRkxBR1MgOj0gLURGUk9OVEVORCAtSSQobGlicHFfc3JjZGlyKSAkKENQUEZM QUdTKQorTERGTEFHU19JTlRFUk5BTCArPSAtTCQodG9wX2J1aWxkZGlyKS9zcmMvZmVfdXRpbHMg LWxwZ2ZldXRpbHMKIAogUk1HUkRFU0NTT1VSQ0VTID0gJChzb3J0ICQobm90ZGlyICQod2lsZGNh cmQgJCh0b3Bfc3JjZGlyKS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvKmRlc2MqLmMpKSkK IFJNR1JERVNDT0JKUyA9ICQocGF0c3Vic3QgJS5jLCUubywkKFJNR1JERVNDU09VUkNFUykpCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbGR1bXAvYXN0cmVhbWVyX3dhbGR1bXAuYyBiL3NyYy9i aW4vcGdfd2FsZHVtcC9hc3RyZWFtZXJfd2FsZHVtcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi45MTZkMzg4ZWYwYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iaW4v cGdfd2FsZHVtcC9hc3RyZWFtZXJfd2FsZHVtcC5jCkBAIC0wLDAgKzEsMzc4IEBACisvKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqCisgKiBhc3RyZWFtZXJfd2FsZHVtcC5jCisgKgkJQSBnZW5lcmljIGZh Y2lsaXR5IGZvciByZWFkaW5nIFdBTCBkYXRhIGZyb20gdGFyIGFyY2hpdmVzIHZpYSBhcmNoaXZl CisgKgkJc3RyZWFtZXIuCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0 Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoKKyAqIElERU5USUZJQ0FUSU9OCisg KgkJc3JjL2Jpbi9wZ193YWxkdW1wL2FzdHJlYW1lcl93YWxkdW1wLmMKKyAqCisgKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXNfZmUuaCIKKworI2luY2x1ZGUgPHVu aXN0ZC5oPgorCisjaW5jbHVkZSAiYWNjZXNzL3hsb2dfaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJh Y2Nlc3MveGxvZ2RlZnMuaCIKKyNpbmNsdWRlICJjb21tb24vbG9nZ2luZy5oIgorI2luY2x1ZGUg ImZlX3V0aWxzL3NpbXBsZV9saXN0LmgiCisjaW5jbHVkZSAicGdfd2FsZHVtcC5oIgorCisvKgor ICogSG93IG1hbnkgYnl0ZXMgc2hvdWxkIHdlIHRyeSB0byByZWFkIGZyb20gYSBmaWxlIGF0IG9u Y2U/CisgKi8KKyNkZWZpbmUgUkVBRF9DSFVOS19TSVpFCQkJCSgxMjggKiAxMDI0KQorCit0eXBl ZGVmIHN0cnVjdCBhc3RyZWFtZXJfd2FsZHVtcAoreworCS8qIFRoZXNlIGZpZWxkcyBkb24ndCBj aGFuZ2Ugb25jZSBpbml0aWFsaXplZC4gKi8KKwlhc3RyZWFtZXIJYmFzZTsKKwlYTG9nU2VnTm8J c3RhcnRTZWdObzsKKwlYTG9nU2VnTm8JZW5kU2VnTm87CisJWExvZ0R1bXBQcml2YXRlICpwcml2 YXRlSW5mbzsKKworCS8qIFRoZXNlIGZpZWxkcyBjaGFuZ2Ugd2l0aCBhcmNoaXZlIG1lbWJlci4g Ki8KKwlib29sCQlza2lwVGhpc1NlZzsKKwlYTG9nU2VnTm8JbmV4dFNlZ05vOwkJLyogTmV4dCBl eHBlY3RlZCBzZWdtZW50IHRvIHN0cmVhbSAqLworfSBhc3RyZWFtZXJfd2FsZHVtcDsKKworc3Rh dGljIGludAlhc3RyZWFtZXJfYXJjaGl2ZV9yZWFkKFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUlu Zm8pOworc3RhdGljIHZvaWQgYXN0cmVhbWVyX3dhbGR1bXBfY29udGVudChhc3RyZWFtZXIgKnN0 cmVhbWVyLAorCQkJCQkJCQkJICBhc3RyZWFtZXJfbWVtYmVyICptZW1iZXIsCisJCQkJCQkJCQkg IGNvbnN0IGNoYXIgKmRhdGEsIGludCBsZW4sCisJCQkJCQkJCQkgIGFzdHJlYW1lcl9hcmNoaXZl X2NvbnRleHQgY29udGV4dCk7CitzdGF0aWMgdm9pZCBhc3RyZWFtZXJfd2FsZHVtcF9maW5hbGl6 ZShhc3RyZWFtZXIgKnN0cmVhbWVyKTsKK3N0YXRpYyB2b2lkIGFzdHJlYW1lcl93YWxkdW1wX2Zy ZWUoYXN0cmVhbWVyICpzdHJlYW1lcik7CisKK3N0YXRpYyBib29sIG1lbWJlcl9pc19yZWxldmFu dF93YWwoYXN0cmVhbWVyX21lbWJlciAqbWVtYmVyLAorCQkJCQkJCQkgICBUaW1lTGluZUlEIHN0 YXJ0VGltZUxpbmVJRCwKKwkJCQkJCQkJICAgWExvZ1NlZ05vIHN0YXJ0U2VnTm8sCisJCQkJCQkJ CSAgIFhMb2dTZWdObyBlbmRTZWdObywKKwkJCQkJCQkJICAgWExvZ1NlZ05vIG5leHRTZWdObywK KwkJCQkJCQkJICAgWExvZ1NlZ05vICpjdXJTZWdObywKKwkJCQkJCQkJICAgVGltZUxpbmVJRCAq Y3VyU2VnVGltZWxpbmUpOworCitzdGF0aWMgY29uc3QgYXN0cmVhbWVyX29wcyBhc3RyZWFtZXJf d2FsZHVtcF9vcHMgPSB7CisJLmNvbnRlbnQgPSBhc3RyZWFtZXJfd2FsZHVtcF9jb250ZW50LAor CS5maW5hbGl6ZSA9IGFzdHJlYW1lcl93YWxkdW1wX2ZpbmFsaXplLAorCS5mcmVlID0gYXN0cmVh bWVyX3dhbGR1bXBfZnJlZQorfTsKKworLyoKKyAqIENvcGllcyBXQUwgZGF0YSBmcm9tIGFzdHJl YW1lciB0byByZWFkQnVmZjsgaWYgdW5hdmFpbGFibGUsIGZldGNoZXMgbW9yZQorICogZnJvbSB0 aGUgdGFyIGFyY2hpdmUgdmlhIGFzdHJlYW1lci4KKyAqLworaW50Cithc3RyZWFtZXJfd2FsX3Jl YWQoY2hhciAqcmVhZEJ1ZmYsIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwgU2l6ZSBjb3VudCwK KwkJCQkgICBYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvKQoreworCWNoYXIJICAgKnAgPSBy ZWFkQnVmZjsKKwlTaXplCQluYnl0ZXMgPSBjb3VudDsKKwlYTG9nUmVjUHRyCXJlY3B0ciA9IHRh cmdldFBhZ2VQdHI7CisJdm9sYXRpbGUgU3RyaW5nSW5mbyBhc3RyZWFtZXJfYnVmID0gcHJpdmF0 ZUluZm8tPmFyY2hpdmVfc3RyZWFtZXJfYnVmOworCisJd2hpbGUgKG5ieXRlcyA+IDApCisJewor CQljaGFyCSAgICpidWYgPSBhc3RyZWFtZXJfYnVmLT5kYXRhOworCQlpbnQJCQlsZW4gPSBhc3Ry ZWFtZXJfYnVmLT5sZW47CisKKwkJLyogV0FMIHJlY29yZCByYW5nZSB0aGF0IHRoZSBidWZmZXIg Y29udGFpbnMgKi8KKwkJWExvZ1JlY1B0cgllbmRQdHIgPSBwcml2YXRlSW5mby0+YXJjaGl2ZV9z dHJlYW1lcl9yZWFkX3B0cjsKKwkJWExvZ1JlY1B0cglzdGFydFB0ciA9IChlbmRQdHIgPiBsZW4p ID8gZW5kUHRyIC0gbGVuIDogMDsKKworCQkvKgorCQkgKiBJZ25vcmUgZXhpc3RpbmcgZGF0YSBp ZiB0aGUgcmVxdWlyZWQgdGFyZ2V0IHBhZ2UgaGFzIG5vdCB5ZXQgYmVlbgorCQkgKiByZWFkLgor CQkgKi8KKwkJaWYgKHJlY3B0ciA+PSBlbmRQdHIpCisJCXsKKwkJCWxlbiA9IDA7CisKKwkJCS8q IFJlc2V0IHRoZSBidWZmZXIgKi8KKwkJCXJlc2V0U3RyaW5nSW5mbyhhc3RyZWFtZXJfYnVmKTsK KwkJfQorCisJCWlmIChsZW4gPiAwICYmIHJlY3B0ciA+IHN0YXJ0UHRyKQorCQl7CisJCQlpbnQJ CQlza2lwQnl0ZXMgPSAwOworCisJCQkvKgorCQkJICogVGhlIHJlcXVpcmVkIG9mZnNldCBpcyBu b3QgYXQgdGhlIHN0YXJ0IG9mIHRoZSBhcmNoaXZlIHN0cmVhbWVyCisJCQkgKiBidWZmZXIsIHNv IHNraXAgYnl0ZXMgdW50aWwgcmVhY2hpbmcgdGhlIGRlc2lyZWQgb2Zmc2V0IG9mIHRoZQorCQkJ ICogdGFyZ2V0IHBhZ2UuCisJCQkgKi8KKwkJCXNraXBCeXRlcyA9IHJlY3B0ciAtIHN0YXJ0UHRy OworCisJCQlidWYgKz0gc2tpcEJ5dGVzOworCQkJbGVuIC09IHNraXBCeXRlczsKKwkJfQorCisJ CWlmIChsZW4gPiAwKQorCQl7CisJCQlpbnQJCQlyZWFkQnl0ZXMgPSBsZW4gPj0gbmJ5dGVzID8g bmJ5dGVzIDogbGVuOworCisJCQkvKgorCQkJICogRW5zdXJlIHdlIGFyZSByZWFkaW5nIHRoZSBj b3JyZWN0IHBhZ2UsIHVubGVzcyB3ZSd2ZSByZWNlaXZlZAorCQkJICogYW4gaW52YWxpZCByZWNv cmQgcG9pbnRlci4gSW4gdGhhdCBzcGVjaWZpYyBjYXNlLCBpdCdzCisJCQkgKiBhY2NlcHRhYmxl IHRvIHJlYWQgYW55IHBhZ2UuCisJCQkgKi8KKwkJCUFzc2VydChYTG9nUmVjUHRySXNJbnZhbGlk KHJlY3B0cikgfHwKKwkJCQkgICAocmVjcHRyID49IHN0YXJ0UHRyICYmIHJlY3B0ciA8IGVuZFB0 cikpOworCisJCQltZW1jcHkocCwgYnVmLCByZWFkQnl0ZXMpOworCisJCQkvKiBVcGRhdGUgc3Rh dGUgZm9yIHJlYWQgKi8KKwkJCW5ieXRlcyAtPSByZWFkQnl0ZXM7CisJCQlwICs9IHJlYWRCeXRl czsKKwkJCXJlY3B0ciArPSByZWFkQnl0ZXM7CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBGZXRj aCBtb3JlIGRhdGEgKi8KKwkJCWlmIChhc3RyZWFtZXJfYXJjaGl2ZV9yZWFkKHByaXZhdGVJbmZv KSA9PSAwKQorCQkJCWJyZWFrOwkJCS8qIE5vIGRhdGEgcmVtYWluaW5nICovCisJCX0KKwl9CisK KwlyZXR1cm4gKGNvdW50IC0gbmJ5dGVzKSA/IChjb3VudCAtIG5ieXRlcykgOiAtMTsKK30KKwor LyoKKyAqIFJlYWRzIHRoZSBhcmNoaXZlIGFuZCBwYXNzZXMgaXQgdG8gdGhlIGFyY2hpdmUgc3Ry ZWFtZXIgZm9yIGRlY29tcHJlc3Npb24uCisgKi8KK3N0YXRpYyBpbnQKK2FzdHJlYW1lcl9hcmNo aXZlX3JlYWQoWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbykKK3sKKwlpbnQJCQlyYzsKKwlj aGFyCSAgICpidWZmZXI7CisKKwlidWZmZXIgPSBwZ19tYWxsb2MoUkVBRF9DSFVOS19TSVpFICog c2l6ZW9mKHVpbnQ4KSk7CisKKwkvKiBSZWFkIG1vcmUgZGF0YSBmcm9tIHRoZSB0YXIgZmlsZSAq LworCXJjID0gcmVhZChwcml2YXRlSW5mby0+YXJjaGl2ZV9mZCwgYnVmZmVyLCBSRUFEX0NIVU5L X1NJWkUpOworCWlmIChyYyA8IDApCisJCXBnX2ZhdGFsKCJjb3VsZCBub3QgcmVhZCBmaWxlIFwi JXNcIjogJW0iLAorCQkJCSBwcml2YXRlSW5mby0+YXJjaGl2ZV9uYW1lKTsKKworCS8qCisJICog RGVjcnlwdCAoaWYgcmVxdWlyZWQpLCBhbmQgdGhlbiBwYXJzZSB0aGUgcHJldmlvdXNseSByZWFk IGNvbnRlbnRzIG9mCisJICogdGhlIHRhciBmaWxlLgorCSAqLworCWlmIChyYyA+IDApCisJCWFz dHJlYW1lcl9jb250ZW50KHByaXZhdGVJbmZvLT5hcmNoaXZlX3N0cmVhbWVyLCBOVUxMLAorCQkJ CQkJICBidWZmZXIsIHJjLCBBU1RSRUFNRVJfVU5LTk9XTik7CisJcGdfZnJlZShidWZmZXIpOwor CisJcmV0dXJuIHJjOworfQorCisvKgorICogQ3JlYXRlIGFuIGFzdHJlYW1lciB0aGF0IGNhbiBy ZWFkIFdBTCBmcm9tIHRhciBmaWxlLgorICovCithc3RyZWFtZXIgKgorYXN0cmVhbWVyX3dhbGR1 bXBfY29udGVudF9uZXcoYXN0cmVhbWVyICpuZXh0LCBYTG9nUmVjUHRyIHN0YXJ0cHRyLAorCQkJ CQkJCSAgWExvZ1JlY1B0ciBlbmRQdHIsIFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUluZm8pCit7 CisJYXN0cmVhbWVyX3dhbGR1bXAgKnN0cmVhbWVyOworCisJc3RyZWFtZXIgPSBwYWxsb2MwKHNp emVvZihhc3RyZWFtZXJfd2FsZHVtcCkpOworCSooKGNvbnN0IGFzdHJlYW1lcl9vcHMgKiopICZz dHJlYW1lci0+YmFzZS5iYnNfb3BzKSA9CisJCSZhc3RyZWFtZXJfd2FsZHVtcF9vcHM7CisKKwlz dHJlYW1lci0+YmFzZS5iYnNfbmV4dCA9IG5leHQ7CisJaW5pdFN0cmluZ0luZm8oJnN0cmVhbWVy LT5iYXNlLmJic19idWZmZXIpOworCisJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQoc3RhcnRwdHIp KQorCQlzdHJlYW1lci0+c3RhcnRTZWdObyA9IDA7CisJZWxzZQorCXsKKwkJWExCeXRlVG9TZWco c3RhcnRwdHIsIHN0cmVhbWVyLT5zdGFydFNlZ05vLCBXYWxTZWdTeik7CisKKwkJLyoKKwkJICog SW5pdGlhbGl6ZSB0aGUgcmVjb3JkIHBvaW50ZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgZmly c3QKKwkJICogc2VnbWVudDsgdGhpcyBwb2ludGVyIHdpbGwgdHJhY2sgdGhlIFdBTCByZWNvcmQg cmVhZGluZyBzdGF0dXMuCisJCSAqLworCQlYTG9nU2VnTm9PZmZzZXRUb1JlY1B0cihzdHJlYW1l ci0+c3RhcnRTZWdObywgMCwgV2FsU2VnU3osCisJCQkJCQkJCXByaXZhdGVJbmZvLT5hcmNoaXZl X3N0cmVhbWVyX3JlYWRfcHRyKTsKKwl9CisKKwlpZiAoWExvZ1JlY1B0cklzSW52YWxpZChlbmRQ dHIpKQorCQlzdHJlYW1lci0+ZW5kU2VnTm8gPSBVSU5UNjRfTUFYOworCWVsc2UKKwkJWExCeXRl VG9TZWcoZW5kUHRyLCBzdHJlYW1lci0+ZW5kU2VnTm8sIFdhbFNlZ1N6KTsKKworCXN0cmVhbWVy LT5uZXh0U2VnTm8gPSBzdHJlYW1lci0+c3RhcnRTZWdObzsKKwlzdHJlYW1lci0+cHJpdmF0ZUlu Zm8gPSBwcml2YXRlSW5mbzsKKworCXJldHVybiAmc3RyZWFtZXItPmJhc2U7Cit9CisKKy8qCisg KiBNYWluIGVudHJ5IHBvaW50IG9mIHRoZSBhcmNoaXZlIHN0cmVhbWVyIGZvciByZWFkaW5nIFdB TCBmcm9tIGEgdGFyIGZpbGUuCisgKi8KK3N0YXRpYyB2b2lkCithc3RyZWFtZXJfd2FsZHVtcF9j b250ZW50KGFzdHJlYW1lciAqc3RyZWFtZXIsIGFzdHJlYW1lcl9tZW1iZXIgKm1lbWJlciwKKwkJ CQkJCSAgY29uc3QgY2hhciAqZGF0YSwgaW50IGxlbiwKKwkJCQkJCSAgYXN0cmVhbWVyX2FyY2hp dmVfY29udGV4dCBjb250ZXh0KQoreworCWFzdHJlYW1lcl93YWxkdW1wICpteXN0cmVhbWVyID0g KGFzdHJlYW1lcl93YWxkdW1wICopIHN0cmVhbWVyOworCVhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0 ZUluZm8gPSBteXN0cmVhbWVyLT5wcml2YXRlSW5mbzsKKworCUFzc2VydChjb250ZXh0ICE9IEFT VFJFQU1FUl9VTktOT1dOKTsKKworCXN3aXRjaCAoY29udGV4dCkKKwl7CisJCWNhc2UgQVNUUkVB TUVSX01FTUJFUl9IRUFERVI6CisJCQl7CisJCQkJWExvZ1NlZ05vCXNlZ05vOworCQkJCVRpbWVM aW5lSUQJdGltZWxpbmU7CisKKwkJCQlwZ19sb2dfZGVidWcoInBnX3dhbGR1bXA6IHJlYWRpbmcg XCIlc1wiIiwgbWVtYmVyLT5wYXRobmFtZSk7CisKKwkJCQlteXN0cmVhbWVyLT5za2lwVGhpc1Nl ZyA9IGZhbHNlOworCisJCQkJaWYgKCFtZW1iZXJfaXNfcmVsZXZhbnRfd2FsKG1lbWJlciwKKwkJ CQkJCQkJCQkJcHJpdmF0ZUluZm8tPnRpbWVsaW5lLAorCQkJCQkJCQkJCQlteXN0cmVhbWVyLT5z dGFydFNlZ05vLAorCQkJCQkJCQkJCQlteXN0cmVhbWVyLT5lbmRTZWdObywKKwkJCQkJCQkJCQkJ bXlzdHJlYW1lci0+bmV4dFNlZ05vLAorCQkJCQkJCQkJCQkmc2VnTm8sICZ0aW1lbGluZSkpCisJ CQkJeworCQkJCQlteXN0cmVhbWVyLT5za2lwVGhpc1NlZyA9IHRydWU7CisJCQkJCWJyZWFrOwor CQkJCX0KKworCQkJCS8qCisJCQkJICogSWYgbmV4dFNlZ05vIGlzIDAsIHRoZSBjaGVjayBpcyBz a2lwcGVkLCBhbmQgYW55IFdBTCBmaWxlCisJCQkJICogY2FuIGJlIHJlYWQgLS0gdGhpcyB0eXBp Y2FsbHkgb2NjdXJzIGR1cmluZyBpbml0aWFsCisJCQkJICogdmVyaWZpY2F0aW9uLgorCQkJCSAq LworCQkJCWlmIChteXN0cmVhbWVyLT5uZXh0U2VnTm8gPT0gMCkKKwkJCQkJYnJlYWs7CisKKwkJ CQkvKiBXQUwgc2VnbWVudHMgbXVzdCBiZSBhcmNoaXZlZCBpbiBvcmRlciAqLworCQkJCWlmICht eXN0cmVhbWVyLT5uZXh0U2VnTm8gIT0gc2VnTm8pCisJCQkJeworCQkJCQlwZ19sb2dfZXJyb3Io IldBTCBmaWxlcyBhcmUgbm90IGFyY2hpdmVkIGluIHNlcXVlbnRpYWwgb3JkZXIiKTsKKwkJCQkJ cGdfbG9nX2Vycm9yX2RldGFpbCgiRXhwZWN0aW5nIHNlZ21lbnQgbnVtYmVyICIgVUlOVDY0X0ZP Uk1BVCAiIGJ1dCBmb3VuZCAiIFVJTlQ2NF9GT1JNQVQgIi4iLAorCQkJCQkJCQkJCW15c3RyZWFt ZXItPm5leHRTZWdObywgc2VnTm8pOworCQkJCQlleGl0KDEpOworCQkJCX0KKworCQkJCS8qCisJ CQkJICogV2UgdHJhY2sgdGhlIHJlYWRpbmcgb2YgV0FMIHNlZ21lbnQgcmVjb3JkcyB1c2luZyBh IHBvaW50ZXIKKwkJCQkgKiB0aGF0J3MgY29udGludW91c2x5IGluY3JlbWVudGVkIGJ5IHRoZSBs ZW5ndGggb2YgdGhlCisJCQkJICogcmVjZWl2ZWQgZGF0YS4gVGhpcyBwb2ludGVyIGlzIGNydWNp YWwgZm9yIHNlcnZpbmcgV0FMIHBhZ2UKKwkJCQkgKiByZXF1ZXN0cyBmcm9tIHRoZSBXQUwgZGVj b2Rpbmcgcm91dGluZSwgc28gaXQgbXVzdCBiZQorCQkJCSAqIGFjY3VyYXRlLgorCQkJCSAqLwor I2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKwkJCQlpZiAobXlzdHJlYW1lci0+bmV4dFNlZ05v ICE9IDApCisJCQkJeworCQkJCQlYTG9nUmVjUHRyCXJlY1B0cjsKKworCQkJCQlYTG9nU2VnTm9P ZmZzZXRUb1JlY1B0cihzZWdObywgMCwgV2FsU2VnU3osIHJlY1B0cik7CisJCQkJCUFzc2VydChw cml2YXRlSW5mby0+YXJjaGl2ZV9zdHJlYW1lcl9yZWFkX3B0ciA9PSByZWNQdHIpOworCQkJCX0K KyNlbmRpZgorCisJCQkJLyogU2F2ZSB0aGUgdGltZWxpbmUgKi8KKwkJCQlwcml2YXRlSW5mby0+ dGltZWxpbmUgPSB0aW1lbGluZTsKKworCQkJCS8qIFVwZGF0ZSB0aGUgbmV4dCBleHBlY3RlZCBz ZWdtZW50IG51bWJlciAqLworCQkJCW15c3RyZWFtZXItPm5leHRTZWdObyArPSAxOworCQkJfQor CQkJYnJlYWs7CisKKwkJY2FzZSBBU1RSRUFNRVJfTUVNQkVSX0NPTlRFTlRTOgorCQkJLyogU2tp cCB0aGlzIHNlZ21lbnQgKi8KKwkJCWlmIChteXN0cmVhbWVyLT5za2lwVGhpc1NlZykKKwkJCQli cmVhazsKKworCQkJLyogT3IsIGNvcHkgY29udGVudHMgdG8gYnVmZmVyICovCisJCQlwcml2YXRl SW5mby0+YXJjaGl2ZV9zdHJlYW1lcl9yZWFkX3B0ciArPSBsZW47CisJCQlhc3RyZWFtZXJfYnVm ZmVyX2J5dGVzKHN0cmVhbWVyLCAmZGF0YSwgJmxlbiwgbGVuKTsKKwkJCWJyZWFrOworCisJCWNh c2UgQVNUUkVBTUVSX01FTUJFUl9UUkFJTEVSOgorCQkJYnJlYWs7CisKKwkJY2FzZSBBU1RSRUFN RVJfQVJDSElWRV9UUkFJTEVSOgorCQkJYnJlYWs7CisKKwkJZGVmYXVsdDoKKwkJCS8qIFNob3Vs ZG4ndCBoYXBwZW4uICovCisJCQlwZ19mYXRhbCgidW5leHBlY3RlZCBzdGF0ZSB3aGlsZSBwYXJz aW5nIHRhciBmaWxlIik7CisJfQorfQorCisvKgorICogRW5kLW9mLXN0cmVhbSBwcm9jZXNzaW5n IGZvciBhIGFzdHJlYW1lcl93YWxkdW1wIHN0cmVhbS4KKyAqLworc3RhdGljIHZvaWQKK2FzdHJl YW1lcl93YWxkdW1wX2ZpbmFsaXplKGFzdHJlYW1lciAqc3RyZWFtZXIpCit7CisJQXNzZXJ0KHN0 cmVhbWVyLT5iYnNfbmV4dCA9PSBOVUxMKTsKK30KKworLyoKKyAqIEZyZWUgbWVtb3J5IGFzc29j aWF0ZWQgd2l0aCBhIGFzdHJlYW1lcl93YWxkdW1wIHN0cmVhbS4KKyAqLworc3RhdGljIHZvaWQK K2FzdHJlYW1lcl93YWxkdW1wX2ZyZWUoYXN0cmVhbWVyICpzdHJlYW1lcikKK3sKKwlBc3NlcnQo c3RyZWFtZXItPmJic19uZXh0ID09IE5VTEwpOworCisJcGZyZWUoc3RyZWFtZXItPmJic19idWZm ZXIuZGF0YSk7CisJcGZyZWUoc3RyZWFtZXIpOworfQorCisvKgorICogUmV0dXJucyB0cnVlIGlm IHRoZSBhcmNoaXZlIG1lbWJlciBuYW1lIG1hdGNoZXMgdGhlIFdBTCBuYW1pbmcgZm9ybWF0IGFu ZAorICogdGhlIGNvcnJlc3BvbmRpbmcgV0FMIHNlZ21lbnQgZmFsbHMgd2l0aGluIHRoZSBXQUwg ZGVjb2RpbmcgdGFyZ2V0IHJhbmdlOworICogb3RoZXJ3aXNlLCByZXR1cm5zIGZhbHNlLgorICov CitzdGF0aWMgYm9vbAorbWVtYmVyX2lzX3JlbGV2YW50X3dhbChhc3RyZWFtZXJfbWVtYmVyICpt ZW1iZXIsIFRpbWVMaW5lSUQgc3RhcnRUaW1lTGluZUlELAorCQkJCQkgICBYTG9nU2VnTm8gc3Rh cnRTZWdObywgWExvZ1NlZ05vIGVuZFNlZ05vLAorCQkJCQkgICBYTG9nU2VnTm8gbmV4dFNlZ05v LCBYTG9nU2VnTm8gKmN1clNlZ05vLAorCQkJCQkgICBUaW1lTGluZUlEICpjdXJTZWdUaW1lbGlu ZSkKK3sKKwlpbnQJCQlwYXRobGVuOworCVhMb2dTZWdObwlzZWdObzsKKwlUaW1lTGluZUlECXRp bWVsaW5lOworCWNoYXIJICAgKmZuYW1lOworCisJLyogV2UgYXJlIG9ubHkgaW50ZXJlc3RlZCBp biBub3JtYWwgZmlsZXMuICovCisJaWYgKG1lbWJlci0+aXNfZGlyZWN0b3J5IHx8IG1lbWJlci0+ aXNfbGluaykKKwkJcmV0dXJuIGZhbHNlOworCisJcGF0aGxlbiA9IHN0cmxlbihtZW1iZXItPnBh dGhuYW1lKTsKKwlpZiAocGF0aGxlbiA8IFhMT0dfRk5BTUVfTEVOKQorCQlyZXR1cm4gZmFsc2U7 CisKKwkvKiBXQUwgZmlsZSBjb3VsZCBiZSB3aXRoIGZ1bGwgcGF0aCAqLworCWZuYW1lID0gbWVt YmVyLT5wYXRobmFtZSArIChwYXRobGVuIC0gWExPR19GTkFNRV9MRU4pOworCWlmICghSXNYTG9n RmlsZU5hbWUoZm5hbWUpKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKiBQYXJzZSBwb3NpdGlvbiBm cm9tIGZpbGUgKi8KKwlYTG9nRnJvbUZpbGVOYW1lKGZuYW1lLCAmdGltZWxpbmUsICZzZWdObywg V2FsU2VnU3opOworCisJLyogSWdub3JlIHRoZSBvbGRlciB0aW1lbGluZSAqLworCWlmIChzdGFy dFRpbWVMaW5lSUQgPiB0aW1lbGluZSkKKwkJcmV0dXJuIGZhbHNlOworCisJLyogU2tpcCBpZiB0 aGUgY3VycmVudCBzZWdtZW50IGlzIG5vdCB0aGUgZGVzaXJlZCBvbmUgKi8KKwlpZiAoc3RhcnRT ZWdObyA+IHNlZ05vIHx8IGVuZFNlZ05vIDwgc2VnTm8pCisJCXJldHVybiBmYWxzZTsKKworCSpj dXJTZWdObyA9IHNlZ05vOworCSpjdXJTZWdUaW1lbGluZSA9IHRpbWVsaW5lOworCisJcmV0dXJu IHRydWU7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbGR1bXAvbWVzb24uYnVpbGQgYi9z cmMvYmluL3BnX3dhbGR1bXAvbWVzb24uYnVpbGQKaW5kZXggOTM3ZTBkNjg4NDEuLjJhMDMwMGRj MzM5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvbWVzb24uYnVpbGQKKysrIGIvc3Jj L2Jpbi9wZ193YWxkdW1wL21lc29uLmJ1aWxkCkBAIC0zLDYgKzMsNyBAQAogcGdfd2FsZHVtcF9z b3VyY2VzID0gZmlsZXMoCiAgICdjb21wYXQuYycsCiAgICdwZ193YWxkdW1wLmMnLAorICAnYXN0 cmVhbWVyX3dhbGR1bXAuYycsCiAgICdybWdyZGVzYy5jJywKICkKIApAQCAtMTgsNyArMTksNyBA QCBlbmRpZgogCiBwZ193YWxkdW1wID0gZXhlY3V0YWJsZSgncGdfd2FsZHVtcCcsCiAgIHBnX3dh bGR1bXBfc291cmNlcywKLSAgZGVwZW5kZW5jaWVzOiBbZnJvbnRlbmRfY29kZSwgbHo0LCB6c3Rk XSwKKyAgZGVwZW5kZW5jaWVzOiBbZnJvbnRlbmRfY29kZSwgbHo0LCB6c3RkLCBsaWJwcV0sCiAg IGNfYXJnczogWyctREZST05URU5EJ10sICMgbmVlZGVkIGZvciB4bG9ncmVhZGVyIGV0IGFsCiAg IGt3YXJnczogZGVmYXVsdF9iaW5fYXJncywKICkKQEAgLTI5LDYgKzMwLDcgQEAgdGVzdHMgKz0g ewogICAnc2QnOiBtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKICAgJ2JkJzogbWVzb24uY3Vy cmVudF9idWlsZF9kaXIoKSwKICAgJ3RhcCc6IHsKKyAgICAnZW52JzogeydUQVInOiB0YXIuZm91 bmQoKSA/IHRhci5mdWxsX3BhdGgoKSA6ICcnfSwKICAgICAndGVzdHMnOiBbCiAgICAgICAndC8w MDFfYmFzaWMucGwnLAogICAgICAgJ3QvMDAyX3NhdmVfZnVsbHBhZ2UucGwnLApkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9w Z193YWxkdW1wLmMKaW5kZXggNDc3NTI3NWMwN2EuLjY0ZjNhNjViNzM1IDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9w Z193YWxkdW1wLmMKQEAgLTE4MiwxMCArMTgyLDkgQEAgb3Blbl9maWxlX2luX2RpcmVjdG9yeShj b25zdCBjaGFyICpkaXJlY3RvcnksIGNvbnN0IGNoYXIgKmZuYW1lKQogewogCWludAkJCWZkID0g LTE7CiAJY2hhcgkJZnBhdGhbTUFYUEdQQVRIXTsKKwljaGFyCSAgICpkaXIgPSBkaXJlY3Rvcnkg PyAoY2hhciAqKSBkaXJlY3RvcnkgOiAiLiI7CiAKLQlBc3NlcnQoZGlyZWN0b3J5ICE9IE5VTEwp OwotCi0Jc25wcmludGYoZnBhdGgsIE1BWFBHUEFUSCwgIiVzLyVzIiwgZGlyZWN0b3J5LCBmbmFt ZSk7CisJc25wcmludGYoZnBhdGgsIE1BWFBHUEFUSCwgIiVzLyVzIiwgZGlyLCBmbmFtZSk7CiAJ ZmQgPSBvcGVuKGZwYXRoLCBPX1JET05MWSB8IFBHX0JJTkFSWSwgMCk7CiAKIAlpZiAoZmQgPCAw ICYmIGVycm5vICE9IEVOT0VOVCkKQEAgLTMyNiw2ICszMjUsMTYwIEBAIGlkZW50aWZ5X3Rhcmdl dF9kaXJlY3RvcnkoY2hhciAqZGlyZWN0b3J5LCBjaGFyICpmbmFtZSkKIAlyZXR1cm4gTlVMTDsJ CQkJLyogbm90IHJlYWNoZWQgKi8KIH0KIAorLyoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2 ZW4gZmlsZSBpcyBhIHRhciBhcmNoaXZlIGFuZCBvdXRwdXRzIGl0cyBjb21wcmVzc2lvbgorICog YWxnb3JpdGhtLgorICovCitzdGF0aWMgYm9vbAoraXNfdGFyX2ZpbGUoY29uc3QgY2hhciAqZm5h bWUsIHBnX2NvbXByZXNzX2FsZ29yaXRobSAqY29tcHJlc3Npb24pCit7CisJaW50CQkJZm5hbWVf bGVuID0gc3RybGVuKGZuYW1lKTsKKwlwZ19jb21wcmVzc19hbGdvcml0aG0gY29tcHJlc3NfYWxn bzsKKworCS8qIE5vdywgY2hlY2sgdGhlIGNvbXByZXNzaW9uIHR5cGUgb2YgdGhlIHRhciAqLwor CWlmIChmbmFtZV9sZW4gPiA0ICYmCisJCXN0cmNtcChmbmFtZSArIGZuYW1lX2xlbiAtIDQsICIu dGFyIikgPT0gMCkKKwkJY29tcHJlc3NfYWxnbyA9IFBHX0NPTVBSRVNTSU9OX05PTkU7CisJZWxz ZSBpZiAoZm5hbWVfbGVuID4gNCAmJgorCQkJIHN0cmNtcChmbmFtZSArIGZuYW1lX2xlbiAtIDQs ICIudGd6IikgPT0gMCkKKwkJY29tcHJlc3NfYWxnbyA9IFBHX0NPTVBSRVNTSU9OX0daSVA7CisJ ZWxzZSBpZiAoZm5hbWVfbGVuID4gNyAmJgorCQkJIHN0cmNtcChmbmFtZSArIGZuYW1lX2xlbiAt IDcsICIudGFyLmd6IikgPT0gMCkKKwkJY29tcHJlc3NfYWxnbyA9IFBHX0NPTVBSRVNTSU9OX0da SVA7CisJZWxzZSBpZiAoZm5hbWVfbGVuID4gOCAmJgorCQkJIHN0cmNtcChmbmFtZSArIGZuYW1l X2xlbiAtIDgsICIudGFyLmx6NCIpID09IDApCisJCWNvbXByZXNzX2FsZ28gPSBQR19DT01QUkVT U0lPTl9MWjQ7CisJZWxzZSBpZiAoZm5hbWVfbGVuID4gOCAmJgorCQkJIHN0cmNtcChmbmFtZSAr IGZuYW1lX2xlbiAtIDgsICIudGFyLnpzdCIpID09IDApCisJCWNvbXByZXNzX2FsZ28gPSBQR19D T01QUkVTU0lPTl9aU1REOworCWVsc2UKKwkJcmV0dXJuIGZhbHNlOworCisJKmNvbXByZXNzaW9u ID0gY29tcHJlc3NfYWxnbzsKKworCXJldHVybiB0cnVlOworfQorCisvKgorICogQ3JlYXRlcyBh biBhcHByb3ByaWF0ZSBjaGFpbiBvZiBhcmNoaXZlIHN0cmVhbWVycyBmb3IgcmVhZGluZyB0aGUg Z2l2ZW4KKyAqIHRhciBhcmNoaXZlLgorICovCitzdGF0aWMgdm9pZAorc2V0dXBfYXN0cmVhbWVy KFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZSwgcGdfY29tcHJlc3NfYWxnb3JpdGhtIGNvbXByZXNz aW9uLAorCQkJCVhMb2dSZWNQdHIgc3RhcnRwdHIsIFhMb2dSZWNQdHIgZW5kcHRyKQoreworCWFz dHJlYW1lciAgKnN0cmVhbWVyID0gTlVMTDsKKworCXN0cmVhbWVyID0gYXN0cmVhbWVyX3dhbGR1 bXBfY29udGVudF9uZXcoTlVMTCwgc3RhcnRwdHIsIGVuZHB0ciwgcHJpdmF0ZSk7CisKKwkvKgor CSAqIEZpbmFsIGV4dHJhY3RlZCBXQUwgZGF0YSB3aWxsIHJlc2lkZSBpbiB0aGlzIHN0cmVhbWVy LiBIb3dldmVyLCBzaW5jZQorCSAqIGl0IHNpdHMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgc3RhY2sg YW5kIGlzbid0IGRlc2lnbmVkIHRvIHByb3BhZ2F0ZSBkYXRhCisJICogdXB3YXJkLCB3ZSBuZWVk IHRvIGhvbGQgYSBwb2ludGVyIHRvIGl0cyBkYXRhIGJ1ZmZlciBpbiBvcmRlciB0byBjb3B5Lgor CSAqLworCXByaXZhdGUtPmFyY2hpdmVfc3RyZWFtZXJfYnVmID0gJnN0cmVhbWVyLT5iYnNfYnVm ZmVyOworCisJLyogQmVmb3JlIHRoYXQgd2UgbXVzdCBwYXJzZSB0aGUgdGFyIGFyY2hpdmUuICov CisJc3RyZWFtZXIgPSBhc3RyZWFtZXJfdGFyX3BhcnNlcl9uZXcoc3RyZWFtZXIpOworCisJLyog QmVmb3JlIHRoYXQgd2UgbXVzdCBkZWNvbXByZXNzLCBpZiBhcmNoaXZlIGlzIGNvbXByZXNzZWQu ICovCisJaWYgKGNvbXByZXNzaW9uID09IFBHX0NPTVBSRVNTSU9OX0daSVApCisJCXN0cmVhbWVy ID0gYXN0cmVhbWVyX2d6aXBfZGVjb21wcmVzc29yX25ldyhzdHJlYW1lcik7CisJZWxzZSBpZiAo Y29tcHJlc3Npb24gPT0gUEdfQ09NUFJFU1NJT05fTFo0KQorCQlzdHJlYW1lciA9IGFzdHJlYW1l cl9sejRfZGVjb21wcmVzc29yX25ldyhzdHJlYW1lcik7CisJZWxzZSBpZiAoY29tcHJlc3Npb24g PT0gUEdfQ09NUFJFU1NJT05fWlNURCkKKwkJc3RyZWFtZXIgPSBhc3RyZWFtZXJfenN0ZF9kZWNv bXByZXNzb3JfbmV3KHN0cmVhbWVyKTsKKworCXByaXZhdGUtPmFyY2hpdmVfc3RyZWFtZXIgPSBz dHJlYW1lcjsKK30KKworLyoKKyAqIEluaXRpYWxpemVzIHRoZSBhcmNoaXZlIHJlYWRlciBmb3Ig YSB0YXIgZmlsZS4KKyAqLworc3RhdGljIHZvaWQKK2luaXRfdGFyX2FyY2hpdmVfcmVhZGVyKFhM b2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZSwgY2hhciAqd2FsZGlyLAorCQkJCQkJcGdfY29tcHJlc3Nf YWxnb3JpdGhtIGNvbXByZXNzaW9uKQoreworCWludAkJCWZkOworCisJLyogTm93LCB0aGUgdGFy IGFyY2hpdmUgYW5kIHN0b3JlIGl0cyBmaWxlIGRlc2NyaXB0b3IgKi8KKwlmZCA9IG9wZW5fZmls ZV9pbl9kaXJlY3Rvcnkod2FsZGlyLCBwcml2YXRlLT5hcmNoaXZlX25hbWUpOworCisJaWYgKGZk IDwgMCkKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiIiwgcHJpdmF0ZS0+ YXJjaGl2ZV9uYW1lKTsKKworCXByaXZhdGUtPmFyY2hpdmVfZmQgPSBmZDsKKworCS8qIFNldHVw IHRhciBhcmNoaXZlIHJlYWRpbmcgZmFjaWxpdHkgKi8KKwlzZXR1cF9hc3RyZWFtZXIocHJpdmF0 ZSwgY29tcHJlc3Npb24sIHByaXZhdGUtPnN0YXJ0cHRyLCBwcml2YXRlLT5lbmRwdHIpOworfQor CisvKgorICogUmVsZWFzZSB0aGUgYXJjaGl2ZSBzdHJlYW1lciBjaGFpbiBhbmQgY2xvc2UgdGhl IGFyY2hpdmUgZmlsZS4KKyAqLworc3RhdGljIHZvaWQKK2ZyZWVfdGFyX2FyY2hpdmVfcmVhZGVy KFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZSkKK3sKKwkvKgorCSAqIE5COiBOb3JtYWxseSwgYXN0 cmVhbWVyX2ZpbmFsaXplKCkgaXMgY2FsbGVkIGJlZm9yZSBhc3RyZWFtZXJfZnJlZSgpIHRvCisJ ICogZmx1c2ggYW55IHJlbWFpbmluZyBidWZmZXJlZCBkYXRhIG9yIHRvIGVuc3VyZSB0aGUgZW5k IG9mIHRoZSB0YXIKKwkgKiBhcmNoaXZlIGlzIHJlYWNoZWQuIEhvd2V2ZXIsIHdoZW4gZGVjb2Rp bmcgYSBXQUwgZmlsZSwgb25jZSB3ZSBoaXQgdGhlCisJICogZW5kIExTTiwgYW55IHJlbWFpbmlu ZyBXQUwgZGF0YSBpbiB0aGUgYnVmZmVyIG9yIHRoZSB0YXIgYXJjaGl2ZSdzCisJICogdW5yZWFj aGVkIGVuZCBjYW4gYmUgc2FmZWx5IGlnbm9yZWQuCisJICovCisJYXN0cmVhbWVyX2ZyZWUocHJp dmF0ZS0+YXJjaGl2ZV9zdHJlYW1lcik7CisKKwkvKiBDbG9zZSB0aGUgZmlsZS4gKi8KKwlpZiAo Y2xvc2UocHJpdmF0ZS0+YXJjaGl2ZV9mZCkgIT0gMCkKKwkJcGdfbG9nX2Vycm9yKCJjb3VsZCBu b3QgY2xvc2UgZmlsZSBcIiVzXCI6ICVtIiwKKwkJCQkJIHByaXZhdGUtPmFyY2hpdmVfbmFtZSk7 Cit9CisKKy8qCisgKiBSZWFkcyBhIFdBTCBwYWdlIGZyb20gdGhlIGFyY2hpdmUgYW5kIHZlcmlm aWVzIFdBTCBzZWdtZW50IHNpemUuCisgKi8KK3N0YXRpYyB2b2lkCit2ZXJpZnlfdGFyX2FyY2hp dmUoWExvZ0R1bXBQcml2YXRlICpwcml2YXRlLCBjb25zdCBjaGFyICp3YWxkaXIsCisJCQkJICAg cGdfY29tcHJlc3NfYWxnb3JpdGhtIGNvbXByZXNzaW9uKQoreworCVBHQWxpZ25lZFhMb2dCbG9j ayBidWY7CisJaW50CQkJcjsKKworCXNldHVwX2FzdHJlYW1lcihwcml2YXRlLCBjb21wcmVzc2lv biwgSW52YWxpZFhMb2dSZWNQdHIsIEludmFsaWRYTG9nUmVjUHRyKTsKKworCS8qIE5vdywgdGhl IHRhciBhcmNoaXZlIGFuZCBzdG9yZSBpdHMgZmlsZSBkZXNjcmlwdG9yICovCisJcHJpdmF0ZS0+ YXJjaGl2ZV9mZCA9IG9wZW5fZmlsZV9pbl9kaXJlY3Rvcnkod2FsZGlyLCBwcml2YXRlLT5hcmNo aXZlX25hbWUpOworCisJaWYgKHByaXZhdGUtPmFyY2hpdmVfZmQgPCAwKQorCQlwZ19mYXRhbCgi Y291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCIiLCBwcml2YXRlLT5hcmNoaXZlX25hbWUpOworCisJ LyogUmVhZCBhIHdhbCBwYWdlICovCisJciA9IGFzdHJlYW1lcl93YWxfcmVhZChidWYuZGF0YSwg SW52YWxpZFhMb2dSZWNQdHIsIFhMT0dfQkxDS1NaLCBwcml2YXRlKTsKKworCS8qIFNldCBXYWxT ZWdTeiBpZiBXQUwgZGF0YSBpcyBzdWNjZXNzZnVsbHkgcmVhZCAqLworCWlmIChyID09IFhMT0df QkxDS1NaKQorCXsKKwkJWExvZ0xvbmdQYWdlSGVhZGVyIGxvbmdoZHIgPSAoWExvZ0xvbmdQYWdl SGVhZGVyKSBidWYuZGF0YTsKKworCQlXYWxTZWdTeiA9IGxvbmdoZHItPnhscF9zZWdfc2l6ZTsK KworCQlpZiAoIUlzVmFsaWRXYWxTZWdTaXplKFdhbFNlZ1N6KSkKKwkJeworCQkJcGdfbG9nX2Vy cm9yKG5nZXR0ZXh0KCJpbnZhbGlkIFdBTCBzZWdtZW50IHNpemUgaW4gV0FMIGZpbGUgXCIlc1wi ICglZCBieXRlKSIsCisJCQkJCQkJCSAgImludmFsaWQgV0FMIHNlZ21lbnQgc2l6ZSBpbiBXQUwg ZmlsZSBcIiVzXCIgKCVkIGJ5dGVzKSIsCisJCQkJCQkJCSAgV2FsU2VnU3opLAorCQkJCQkJIHBy aXZhdGUtPmFyY2hpdmVfbmFtZSwgV2FsU2VnU3opOworCQkJcGdfbG9nX2Vycm9yX2RldGFpbCgi VGhlIFdBTCBzZWdtZW50IHNpemUgbXVzdCBiZSBhIHBvd2VyIG9mIHR3byBiZXR3ZWVuIDEgTUIg YW5kIDEgR0IuIik7CisJCQlleGl0KDEpOworCQl9CisJfQorCWVsc2UKKwkJcGdfZmF0YWwoImNv dWxkIG5vdCByZWFkIFdBTCBkYXRhIGZyb20gXCIlc1wiIGFyY2hpdmU6IHJlYWQgJWQgb2YgJWQi LAorCQkJCSBwcml2YXRlLT5hcmNoaXZlX25hbWUsIHIsIFhMT0dfQkxDS1NaKTsKKworCWZyZWVf dGFyX2FyY2hpdmVfcmVhZGVyKHByaXZhdGUpOworfQorCiAvKiBSZXR1cm5zIHRoZSBzaXplIGlu IGJ5dGVzIG9mIHRoZSBkYXRhIHRvIGJlIHJlYWQuICovCiBzdGF0aWMgaW5saW5lIGludAogcmVx dWlyZWRfcmVhZF9sZW4oWExvZ0R1bXBQcml2YXRlICpwcml2YXRlLCBYTG9nUmVjUHRyIHRhcmdl dFBhZ2VQdHIsCkBAIC00MDYsNyArNTU5LDcgQEAgV0FMRHVtcFJlYWRQYWdlKFhMb2dSZWFkZXJT dGF0ZSAqc3RhdGUsIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwgaW50IHJlcUxlbiwKIAkJCQlY TG9nUmVjUHRyIHRhcmdldFB0ciwgY2hhciAqcmVhZEJ1ZmYpCiB7CiAJWExvZ0R1bXBQcml2YXRl ICpwcml2YXRlID0gc3RhdGUtPnByaXZhdGVfZGF0YTsKLQlpbnQJCQljb3VudCA9IHJlcXVpcmVk X3JlYWRfbGVuKHByaXZhdGUsIHRhcmdldFBhZ2VQdHIsIHJlcUxlbik7CisJaW50CQkJY291bnQg PSByZXF1aXJlZF9yZWFkX2xlbihwcml2YXRlLCB0YXJnZXRQdHIsIHJlcUxlbik7CiAJV0FMUmVh ZEVycm9yIGVycmluZm87CiAKIAlpZiAocHJpdmF0ZS0+ZW5kcHRyX3JlYWNoZWQpCkBAIC00MzYs NiArNTg5LDQ0IEBAIFdBTER1bXBSZWFkUGFnZShYTG9nUmVhZGVyU3RhdGUgKnN0YXRlLCBYTG9n UmVjUHRyIHRhcmdldFBhZ2VQdHIsIGludCByZXFMZW4sCiAJcmV0dXJuIGNvdW50OwogfQogCisv KgorICogcGdfd2FsZHVtcCdzIFhMb2dSZWFkZXJSb3V0aW5lLT5zZWdtZW50X29wZW4gY2FsbGJh Y2sgdG8gc3VwcG9ydCBkdW1waW5nIFdBTAorICogZmlsZXMgZnJvbSB0YXIgYXJjaGl2ZXMuCisg Ki8KK3N0YXRpYyB2b2lkCitUYXJXQUxEdW1wT3BlblNlZ21lbnQoWExvZ1JlYWRlclN0YXRlICpz dGF0ZSwgWExvZ1NlZ05vIG5leHRTZWdObywKKwkJCQkJICBUaW1lTGluZUlEICp0bGlfcCkKK3sK KwkvKiBObyBhY3Rpb24gbmVlZGVkICovCit9CisKKy8qCisgKiBwZ193YWxkdW1wJ3MgWExvZ1Jl YWRlclJvdXRpbmUtPnNlZ21lbnRfY2xvc2UgY2FsbGJhY2suCisgKi8KK3N0YXRpYyB2b2lkCitU YXJXQUxEdW1wQ2xvc2VTZWdtZW50KFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUpCit7CisJLyogTm8g YWN0aW9uIG5lZWRlZCAqLworfQorCisvKgorICogcGdfd2FsZHVtcCdzIFhMb2dSZWFkZXJSb3V0 aW5lLT5wYWdlX3JlYWQgY2FsbGJhY2sgdG8gc3VwcG9ydCBkdW1waW5nIFdBTAorICogZmlsZXMg ZnJvbSB0YXIgYXJjaGl2ZXMuCisgKi8KK3N0YXRpYyBpbnQKK1RhcldBTER1bXBSZWFkUGFnZShY TG9nUmVhZGVyU3RhdGUgKnN0YXRlLCBYTG9nUmVjUHRyIHRhcmdldFBhZ2VQdHIsIGludCByZXFM ZW4sCisJCQkJICAgWExvZ1JlY1B0ciB0YXJnZXRQdHIsIGNoYXIgKnJlYWRCdWZmKQoreworCVhM b2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZSA9IHN0YXRlLT5wcml2YXRlX2RhdGE7CisJaW50CQkJY291 bnQgPSByZXF1aXJlZF9yZWFkX2xlbihwcml2YXRlLCB0YXJnZXRQdHIsIHJlcUxlbik7CisKKwlp ZiAocHJpdmF0ZS0+ZW5kcHRyX3JlYWNoZWQpCisJCXJldHVybiAtMTsKKworCS8qIFJlYWQgdGhl IFdBTCBwYWdlIGZyb20gdGhlIGFyY2hpdmUgc3RyZWFtZXIgKi8KKwlyZXR1cm4gYXN0cmVhbWVy X3dhbF9yZWFkKHJlYWRCdWZmLCB0YXJnZXRQYWdlUHRyLCBjb3VudCwgcHJpdmF0ZSk7Cit9CisK IC8qCiAgKiBCb29sZWFuIHRvIHJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBXQUwgcmVjb3JkIG1h dGNoZXMgYSBzcGVjaWZpYyByZWxhdGlvbgogICogYW5kIG9wdGlvbmFsbHkgYmxvY2suCkBAIC03 NzMsOCArOTY0LDggQEAgdXNhZ2Uodm9pZCkKIAlwcmludGYoXygiICAtRiwgLS1mb3JrPUZPUksg ICAgICAgIG9ubHkgc2hvdyByZWNvcmRzIHRoYXQgbW9kaWZ5IGJsb2NrcyBpbiBmb3JrIEZPUks7 XG4iCiAJCQkgIiAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZCBuYW1lcyBhcmUgbWFpbiwg ZnNtLCB2bSwgaW5pdFxuIikpOwogCXByaW50ZihfKCIgIC1uLCAtLWxpbWl0PU4gICAgICAgICAg bnVtYmVyIG9mIHJlY29yZHMgdG8gZGlzcGxheVxuIikpOwotCXByaW50ZihfKCIgIC1wLCAtLXBh dGg9UEFUSCAgICAgICAgZGlyZWN0b3J5IGluIHdoaWNoIHRvIGZpbmQgV0FMIHNlZ21lbnQgZmls ZXMgb3IgYVxuIgotCQkJICIgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5IHdpdGgg YSAuL3BnX3dhbCB0aGF0IGNvbnRhaW5zIHN1Y2ggZmlsZXNcbiIKKwlwcmludGYoXygiICAtcCwg LS1wYXRoPVBBVEggICAgICAgIHRhciBhcmNoaXZlIG9yIGEgZGlyZWN0b3J5IGluIHdoaWNoIHRv IGZpbmQgV0FMIHNlZ21lbnQgZmlsZXMgb3JcbiIKKwkJCSAiICAgICAgICAgICAgICAgICAgICAg ICAgIGEgZGlyZWN0b3J5IHdpdGggYSAuL3BnX3dhbCB0aGF0IGNvbnRhaW5zIHN1Y2ggZmlsZXNc biIKIAkJCSAiICAgICAgICAgICAgICAgICAgICAgICAgIChkZWZhdWx0OiBjdXJyZW50IGRpcmVj dG9yeSwgLi9wZ193YWwsICRQR0RBVEEvcGdfd2FsKVxuIikpOwogCXByaW50ZihfKCIgIC1xLCAt LXF1aWV0ICAgICAgICAgICAgZG8gbm90IHByaW50IGFueSBvdXRwdXQsIGV4Y2VwdCBmb3IgZXJy b3JzXG4iKSk7CiAJcHJpbnRmKF8oIiAgLXIsIC0tcm1ncj1STUdSICAgICAgICBvbmx5IHNob3cg cmVjb3JkcyBnZW5lcmF0ZWQgYnkgcmVzb3VyY2UgbWFuYWdlciBSTUdSO1xuIgpAQCAtODA2LDcg Kzk5NywxMSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAlYTG9nUmVjb3JkICpyZWNv cmQ7CiAJWExvZ1JlY1B0cglmaXJzdF9yZWNvcmQ7CiAJY2hhcgkgICAqd2FsZGlyID0gTlVMTDsK KwljaGFyCSAgICp3YWxwYXRoID0gTlVMTDsKIAljaGFyCSAgICplcnJvcm1zZzsKKwlib29sCQlp c190YXIgPSBmYWxzZTsKKwlYTG9nUmVhZGVyUm91dGluZSAqcm91dGluZSA9IE5VTEw7CisJcGdf Y29tcHJlc3NfYWxnb3JpdGhtIGNvbXByZXNzaW9uOwogCiAJc3RhdGljIHN0cnVjdCBvcHRpb24g bG9uZ19vcHRpb25zW10gPSB7CiAJCXsiYmtwLWRldGFpbHMiLCBub19hcmd1bWVudCwgTlVMTCwg J2InfSwKQEAgLTkzOCw3ICsxMTMzLDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJ CQkJfQogCQkJCWJyZWFrOwogCQkJY2FzZSAncCc6Ci0JCQkJd2FsZGlyID0gcGdfc3RyZHVwKG9w dGFyZyk7CisJCQkJd2FscGF0aCA9IHBnX3N0cmR1cChvcHRhcmcpOwogCQkJCWJyZWFrOwogCQkJ Y2FzZSAncSc6CiAJCQkJY29uZmlnLnF1aWV0ID0gdHJ1ZTsKQEAgLTExMDIsMTAgKzEyOTcsMjAg QEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCWdvdG8gYmFkX2FyZ3VtZW50OwogCX0K IAotCWlmICh3YWxkaXIgIT0gTlVMTCkKKwlpZiAod2FscGF0aCAhPSBOVUxMKQogCXsKKwkJLyog dmFsaWRhdGUgcGF0aCBwb2ludHMgdG8gdGFyIGFyY2hpdmUgKi8KKwkJaWYgKGlzX3Rhcl9maWxl KHdhbHBhdGgsICZjb21wcmVzc2lvbikpCisJCXsKKwkJCWNoYXIJICAgKmZuYW1lID0gTlVMTDsK KworCQkJc3BsaXRfcGF0aCh3YWxwYXRoLCAmd2FsZGlyLCAmZm5hbWUpOworCisJCQlwcml2YXRl LmFyY2hpdmVfbmFtZSA9IGZuYW1lOworCQkJaXNfdGFyID0gdHJ1ZTsKKwkJfQogCQkvKiB2YWxp ZGF0ZSBwYXRoIHBvaW50cyB0byBkaXJlY3RvcnkgKi8KLQkJaWYgKCF2ZXJpZnlfZGlyZWN0b3J5 KHdhbGRpcikpCisJCWVsc2UgaWYgKCF2ZXJpZnlfZGlyZWN0b3J5KHdhbHBhdGgpKQogCQl7CiAJ CQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBvcGVuIGRpcmVjdG9yeSBcIiVzXCI6ICVtIiwgd2Fs ZGlyKTsKIAkJCWdvdG8gYmFkX2FyZ3VtZW50OwpAQCAtMTEyOSw0NCArMTMzNCwyMyBAQCBtYWlu KGludCBhcmdjLCBjaGFyICoqYXJndikKIAogCQlzcGxpdF9wYXRoKGFyZ3Zbb3B0aW5kXSwgJmRp cmVjdG9yeSwgJmZuYW1lKTsKIAotCQlpZiAod2FsZGlyID09IE5VTEwgJiYgZGlyZWN0b3J5ICE9 IE5VTEwpCisJCWlmICh3YWxwYXRoID09IE5VTEwgJiYgZGlyZWN0b3J5ICE9IE5VTEwpCiAJCXsK LQkJCXdhbGRpciA9IGRpcmVjdG9yeTsKKwkJCXdhbHBhdGggPSBkaXJlY3Rvcnk7CiAKLQkJCWlm ICghdmVyaWZ5X2RpcmVjdG9yeSh3YWxkaXIpKQorCQkJaWYgKCF2ZXJpZnlfZGlyZWN0b3J5KHdh bHBhdGgpKQogCQkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBkaXJlY3RvcnkgXCIlc1wiOiAl bSIsIHdhbGRpcik7CiAJCX0KIAotCQl3YWxkaXIgPSBpZGVudGlmeV90YXJnZXRfZGlyZWN0b3J5 KHdhbGRpciwgZm5hbWUpOwotCQlmZCA9IG9wZW5fZmlsZV9pbl9kaXJlY3Rvcnkod2FsZGlyLCBm bmFtZSk7Ci0JCWlmIChmZCA8IDApCi0JCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gZmlsZSBc IiVzXCIiLCBmbmFtZSk7Ci0JCWNsb3NlKGZkKTsKLQotCQkvKiBwYXJzZSBwb3NpdGlvbiBmcm9t IGZpbGUgKi8KLQkJWExvZ0Zyb21GaWxlTmFtZShmbmFtZSwgJnByaXZhdGUudGltZWxpbmUsICZz ZWdubywgV2FsU2VnU3opOwotCi0JCWlmIChYTG9nUmVjUHRySXNJbnZhbGlkKHByaXZhdGUuc3Rh cnRwdHIpKQotCQkJWExvZ1NlZ05vT2Zmc2V0VG9SZWNQdHIoc2Vnbm8sIDAsIFdhbFNlZ1N6LCBw cml2YXRlLnN0YXJ0cHRyKTsKLQkJZWxzZSBpZiAoIVhMQnl0ZUluU2VnKHByaXZhdGUuc3RhcnRw dHIsIHNlZ25vLCBXYWxTZWdTeikpCisJCWlmIChmbmFtZSAhPSBOVUxMICYmIGlzX3Rhcl9maWxl KGZuYW1lLCAmY29tcHJlc3Npb24pKQogCQl7Ci0JCQlwZ19sb2dfZXJyb3IoInN0YXJ0IFdBTCBs b2NhdGlvbiAlWC8lMDhYIGlzIG5vdCBpbnNpZGUgZmlsZSBcIiVzXCIiLAotCQkJCQkJIExTTl9G T1JNQVRfQVJHUyhwcml2YXRlLnN0YXJ0cHRyKSwKLQkJCQkJCSBmbmFtZSk7Ci0JCQlnb3RvIGJh ZF9hcmd1bWVudDsKKwkJCXByaXZhdGUuYXJjaGl2ZV9uYW1lID0gZm5hbWU7CisJCQl3YWxkaXIg PSB3YWxwYXRoOworCQkJaXNfdGFyID0gdHJ1ZTsKIAkJfQotCi0JCS8qIG5vIHNlY29uZCBmaWxl IHNwZWNpZmllZCwgc2V0IGVuZCBwb3NpdGlvbiAqLwotCQlpZiAoIShvcHRpbmQgKyAxIDwgYXJn YykgJiYgWExvZ1JlY1B0cklzSW52YWxpZChwcml2YXRlLmVuZHB0cikpCi0JCQlYTG9nU2VnTm9P ZmZzZXRUb1JlY1B0cihzZWdubyArIDEsIDAsIFdhbFNlZ1N6LCBwcml2YXRlLmVuZHB0cik7Ci0K LQkJLyogcGFyc2UgRU5EU0VHIGlmIHBhc3NlZCAqLwotCQlpZiAob3B0aW5kICsgMSA8IGFyZ2Mp CisJCWVsc2UKIAkJewotCQkJWExvZ1NlZ05vCWVuZHNlZ25vOwotCi0JCQkvKiBpZ25vcmUgZGly ZWN0b3J5LCBhbHJlYWR5IGhhdmUgdGhhdCAqLwotCQkJc3BsaXRfcGF0aChhcmd2W29wdGluZCAr IDFdLCAmZGlyZWN0b3J5LCAmZm5hbWUpOworCQkJd2FsZGlyID0gaWRlbnRpZnlfdGFyZ2V0X2Rp cmVjdG9yeSh3YWxwYXRoLCBmbmFtZSk7CiAKIAkJCWZkID0gb3Blbl9maWxlX2luX2RpcmVjdG9y eSh3YWxkaXIsIGZuYW1lKTsKIAkJCWlmIChmZCA8IDApCkBAIC0xMTc0LDMyICsxMzU4LDY3IEBA IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJY2xvc2UoZmQpOwogCiAJCQkvKiBwYXJz ZSBwb3NpdGlvbiBmcm9tIGZpbGUgKi8KLQkJCVhMb2dGcm9tRmlsZU5hbWUoZm5hbWUsICZwcml2 YXRlLnRpbWVsaW5lLCAmZW5kc2Vnbm8sIFdhbFNlZ1N6KTsKKwkJCVhMb2dGcm9tRmlsZU5hbWUo Zm5hbWUsICZwcml2YXRlLnRpbWVsaW5lLCAmc2Vnbm8sIFdhbFNlZ1N6KTsKIAotCQkJaWYgKGVu ZHNlZ25vIDwgc2Vnbm8pCi0JCQkJcGdfZmF0YWwoIkVORFNFRyAlcyBpcyBiZWZvcmUgU1RBUlRT RUcgJXMiLAotCQkJCQkJIGFyZ3Zbb3B0aW5kICsgMV0sIGFyZ3Zbb3B0aW5kXSk7CisJCQlpZiAo WExvZ1JlY1B0cklzSW52YWxpZChwcml2YXRlLnN0YXJ0cHRyKSkKKwkJCQlYTG9nU2VnTm9PZmZz ZXRUb1JlY1B0cihzZWdubywgMCwgV2FsU2VnU3osIHByaXZhdGUuc3RhcnRwdHIpOworCQkJZWxz ZSBpZiAoIVhMQnl0ZUluU2VnKHByaXZhdGUuc3RhcnRwdHIsIHNlZ25vLCBXYWxTZWdTeikpCisJ CQl7CisJCQkJcGdfbG9nX2Vycm9yKCJzdGFydCBXQUwgbG9jYXRpb24gJVgvJTA4WCBpcyBub3Qg aW5zaWRlIGZpbGUgXCIlc1wiIiwKKwkJCQkJCQkgTFNOX0ZPUk1BVF9BUkdTKHByaXZhdGUuc3Rh cnRwdHIpLAorCQkJCQkJCSBmbmFtZSk7CisJCQkJZ290byBiYWRfYXJndW1lbnQ7CisJCQl9CiAK LQkJCWlmIChYTG9nUmVjUHRySXNJbnZhbGlkKHByaXZhdGUuZW5kcHRyKSkKLQkJCQlYTG9nU2Vn Tm9PZmZzZXRUb1JlY1B0cihlbmRzZWdubyArIDEsIDAsIFdhbFNlZ1N6LAotCQkJCQkJCQkJCXBy aXZhdGUuZW5kcHRyKTsKKwkJCS8qIG5vIHNlY29uZCBmaWxlIHNwZWNpZmllZCwgc2V0IGVuZCBw b3NpdGlvbiAqLworCQkJaWYgKCEob3B0aW5kICsgMSA8IGFyZ2MpICYmIFhMb2dSZWNQdHJJc0lu dmFsaWQocHJpdmF0ZS5lbmRwdHIpKQorCQkJCVhMb2dTZWdOb09mZnNldFRvUmVjUHRyKHNlZ25v ICsgMSwgMCwgV2FsU2VnU3osIHByaXZhdGUuZW5kcHRyKTsKIAotCQkJLyogc2V0IHNlZ25vIHRv IGVuZHNlZ25vIGZvciBjaGVjayBvZiAtLWVuZCAqLwotCQkJc2Vnbm8gPSBlbmRzZWdubzsKLQkJ fQorCQkJLyogcGFyc2UgRU5EU0VHIGlmIHBhc3NlZCAqLworCQkJaWYgKG9wdGluZCArIDEgPCBh cmdjKQorCQkJeworCQkJCVhMb2dTZWdObwllbmRzZWdubzsKIAorCQkJCS8qIGlnbm9yZSBkaXJl Y3RvcnksIGFscmVhZHkgaGF2ZSB0aGF0ICovCisJCQkJc3BsaXRfcGF0aChhcmd2W29wdGluZCAr IDFdLCAmZGlyZWN0b3J5LCAmZm5hbWUpOwogCi0JCWlmICghWExCeXRlSW5TZWcocHJpdmF0ZS5l bmRwdHIsIHNlZ25vLCBXYWxTZWdTeikgJiYKLQkJCXByaXZhdGUuZW5kcHRyICE9IChzZWdubyAr IDEpICogV2FsU2VnU3opCi0JCXsKLQkJCXBnX2xvZ19lcnJvcigiZW5kIFdBTCBsb2NhdGlvbiAl WC8lMDhYIGlzIG5vdCBpbnNpZGUgZmlsZSBcIiVzXCIiLAotCQkJCQkJIExTTl9GT1JNQVRfQVJH Uyhwcml2YXRlLmVuZHB0ciksCi0JCQkJCQkgYXJndlthcmdjIC0gMV0pOwotCQkJZ290byBiYWRf YXJndW1lbnQ7CisJCQkJZmQgPSBvcGVuX2ZpbGVfaW5fZGlyZWN0b3J5KHdhbGRpciwgZm5hbWUp OworCQkJCWlmIChmZCA8IDApCisJCQkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwi JXNcIiIsIGZuYW1lKTsKKwkJCQljbG9zZShmZCk7CisKKwkJCQkvKiBwYXJzZSBwb3NpdGlvbiBm cm9tIGZpbGUgKi8KKwkJCQlYTG9nRnJvbUZpbGVOYW1lKGZuYW1lLCAmcHJpdmF0ZS50aW1lbGlu ZSwgJmVuZHNlZ25vLCBXYWxTZWdTeik7CisKKwkJCQlpZiAoZW5kc2Vnbm8gPCBzZWdubykKKwkJ CQkJcGdfZmF0YWwoIkVORFNFRyAlcyBpcyBiZWZvcmUgU1RBUlRTRUcgJXMiLAorCQkJCQkJCSBh cmd2W29wdGluZCArIDFdLCBhcmd2W29wdGluZF0pOworCisJCQkJaWYgKFhMb2dSZWNQdHJJc0lu dmFsaWQocHJpdmF0ZS5lbmRwdHIpKQorCQkJCQlYTG9nU2VnTm9PZmZzZXRUb1JlY1B0cihlbmRz ZWdubyArIDEsIDAsIFdhbFNlZ1N6LAorCQkJCQkJCQkJCQlwcml2YXRlLmVuZHB0cik7CisKKwkJ CQkvKiBzZXQgc2Vnbm8gdG8gZW5kc2Vnbm8gZm9yIGNoZWNrIG9mIC0tZW5kICovCisJCQkJc2Vn bm8gPSBlbmRzZWdubzsKKwkJCX0KKworCisJCQlpZiAoIVhMQnl0ZUluU2VnKHByaXZhdGUuZW5k cHRyLCBzZWdubywgV2FsU2VnU3opICYmCisJCQkJcHJpdmF0ZS5lbmRwdHIgIT0gKHNlZ25vICsg MSkgKiBXYWxTZWdTeikKKwkJCXsKKwkJCQlwZ19sb2dfZXJyb3IoImVuZCBXQUwgbG9jYXRpb24g JVgvJTA4WCBpcyBub3QgaW5zaWRlIGZpbGUgXCIlc1wiIiwKKwkJCQkJCQkgTFNOX0ZPUk1BVF9B UkdTKHByaXZhdGUuZW5kcHRyKSwKKwkJCQkJCQkgYXJndlthcmdjIC0gMV0pOworCQkJCWdvdG8g YmFkX2FyZ3VtZW50OworCQkJfQogCQl9CiAJfQotCWVsc2UKLQkJd2FsZGlyID0gaWRlbnRpZnlf dGFyZ2V0X2RpcmVjdG9yeSh3YWxkaXIsIE5VTEwpOworCWVsc2UgaWYgKCFpc190YXIpCisJCXdh bGRpciA9IGlkZW50aWZ5X3RhcmdldF9kaXJlY3Rvcnkod2FscGF0aCwgTlVMTCk7CisKKwkvKiBW ZXJpZnkgdGhhdCB0aGUgYXJjaGl2ZSBjb250YWlucyB2YWxpZCBXQUwgZmlsZXMgKi8KKwlpZiAo aXNfdGFyKQorCQl2ZXJpZnlfdGFyX2FyY2hpdmUoJnByaXZhdGUsIHdhbGRpciwgY29tcHJlc3Np b24pOwogCiAJLyogd2UgZG9uJ3Qga25vdyB3aGF0IHRvIHByaW50ICovCiAJaWYgKFhMb2dSZWNQ dHJJc0ludmFsaWQocHJpdmF0ZS5zdGFydHB0cikpCkBAIC0xMjExLDExICsxNDMwLDI2IEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCS8qIGRvbmUgd2l0aCBhcmd1bWVudCBwYXJzaW5n LCBkbyB0aGUgYWN0dWFsIHdvcmsgKi8KIAogCS8qIHdlIGhhdmUgZXZlcnl0aGluZyB3ZSBuZWVk LCBzdGFydCByZWFkaW5nICovCisJaWYgKGlzX3RhcikKKwl7CisJCS8qIFNldCB1cCBmb3IgcmVh ZGluZyB0YXIgZmlsZSAqLworCQlpbml0X3Rhcl9hcmNoaXZlX3JlYWRlcigmcHJpdmF0ZSwgd2Fs ZGlyLCBjb21wcmVzc2lvbik7CisKKwkJLyogUm91dGluZSB0byBkZWNvZGUgV0FMIGZpbGVzIGlu IHRhciBhcmNoaXZlICovCisJCXJvdXRpbmUgPSBYTF9ST1VUSU5FKC5wYWdlX3JlYWQgPSBUYXJX QUxEdW1wUmVhZFBhZ2UsCisJCQkJCQkJIC5zZWdtZW50X29wZW4gPSBUYXJXQUxEdW1wT3BlblNl Z21lbnQsCisJCQkJCQkJIC5zZWdtZW50X2Nsb3NlID0gVGFyV0FMRHVtcENsb3NlU2VnbWVudCk7 CisJfQorCWVsc2UKKwl7CisJCS8qIFJvdXRpbmUgdG8gZGVjb2RlIFdBTCBmaWxlcyAqLworCQly b3V0aW5lID0gWExfUk9VVElORSgucGFnZV9yZWFkID0gV0FMRHVtcFJlYWRQYWdlLAorCQkJCQkJ CSAuc2VnbWVudF9vcGVuID0gV0FMRHVtcE9wZW5TZWdtZW50LAorCQkJCQkJCSAuc2VnbWVudF9j bG9zZSA9IFdBTER1bXBDbG9zZVNlZ21lbnQpOworCX0KKwogCXhsb2dyZWFkZXJfc3RhdGUgPQot CQlYTG9nUmVhZGVyQWxsb2NhdGUoV2FsU2VnU3osIHdhbGRpciwKLQkJCQkJCSAgIFhMX1JPVVRJ TkUoLnBhZ2VfcmVhZCA9IFdBTER1bXBSZWFkUGFnZSwKLQkJCQkJCQkJCSAgLnNlZ21lbnRfb3Bl biA9IFdBTER1bXBPcGVuU2VnbWVudCwKLQkJCQkJCQkJCSAgLnNlZ21lbnRfY2xvc2UgPSBXQUxE dW1wQ2xvc2VTZWdtZW50KSwKKwkJWExvZ1JlYWRlckFsbG9jYXRlKFdhbFNlZ1N6LCB3YWxkaXIs IHJvdXRpbmUsCiAJCQkJCQkgICAmcHJpdmF0ZSk7CiAJaWYgKCF4bG9ncmVhZGVyX3N0YXRlKQog CQlwZ19mYXRhbCgib3V0IG9mIG1lbW9yeSB3aGlsZSBhbGxvY2F0aW5nIGEgV0FMIHJlYWRpbmcg cHJvY2Vzc29yIik7CkBAIC0xMzI1LDYgKzE1NTksOSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoq YXJndikKIAogCVhMb2dSZWFkZXJGcmVlKHhsb2dyZWFkZXJfc3RhdGUpOwogCisJaWYgKGlzX3Rh cikKKwkJZnJlZV90YXJfYXJjaGl2ZV9yZWFkZXIoJnByaXZhdGUpOworCiAJcmV0dXJuIEVYSVRf U1VDQ0VTUzsKIAogYmFkX2FyZ3VtZW50OgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1w L3BnX3dhbGR1bXAuaCBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmgKaW5kZXggOWU2 MmI2NGVhZDUuLmI1ZDQ0MDUwMGRlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdf d2FsZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmgKQEAgLTEyLDYg KzEyLDggQEAKICNkZWZpbmUgUEdfV0FMRFVNUF9ICiAKICNpbmNsdWRlICJhY2Nlc3MveGxvZ2Rl ZnMuaCIKKyNpbmNsdWRlICJmZV91dGlscy9hc3RyZWFtZXIuaCIKKyNpbmNsdWRlICJsaWIvc3Ry aW5naW5mby5oIgogCiBleHRlcm4gaW50CVdhbFNlZ1N6OwogCkBAIC0yMiw2ICsyNCwyMyBAQCB0 eXBlZGVmIHN0cnVjdCBYTG9nRHVtcFByaXZhdGUKIAlYTG9nUmVjUHRyCXN0YXJ0cHRyOwogCVhM b2dSZWNQdHIJZW5kcHRyOwogCWJvb2wJCWVuZHB0cl9yZWFjaGVkOworCisJLyogRmllbGRzIHJl cXVpcmVkIHRvIHJlYWQgV0FMIGZyb20gYXJjaGl2ZSAqLworCWNoYXIJICAgKmFyY2hpdmVfbmFt ZTsJLyogVGFyIGFyY2hpdmUgbmFtZSAqLworCWludAkJCWFyY2hpdmVfZmQ7CQkvKiBGaWxlIGRl c2NyaXB0b3IgZm9yIHRoZSBvcGVuIHRhciBmaWxlICovCisKKwlhc3RyZWFtZXIgICphcmNoaXZl X3N0cmVhbWVyOworCVN0cmluZ0luZm8JYXJjaGl2ZV9zdHJlYW1lcl9idWY7CS8qIEJ1ZmZlciBm b3IgcmVjZWl2aW5nIFdBTCBkYXRhICovCisJWExvZ1JlY1B0cglhcmNoaXZlX3N0cmVhbWVyX3Jl YWRfcHRyOyAvKiBQb3B1bGF0ZSB0aGUgYnVmZmVyIHdpdGggcmVjb3JkcworCQkJCQkJCQkJCQkg IHVudGlsIHRoaXMgcmVjb3JkIHBvaW50ZXIgKi8KIH0gWExvZ0R1bXBQcml2YXRlOwogCi0jZW5k aWYJCS8qIGVuZCBvZiBQR19XQUxEVU1QX0ggKi8KKworZXh0ZXJuIGFzdHJlYW1lciAqYXN0cmVh bWVyX3dhbGR1bXBfY29udGVudF9uZXcoYXN0cmVhbWVyICpuZXh0LAorCQkJCQkJCQkJCQkJWExv Z1JlY1B0ciBzdGFydHB0ciwKKwkJCQkJCQkJCQkJCVhMb2dSZWNQdHIgZW5kcHRyLAorCQkJCQkJ CQkJCQkJWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbyk7CitleHRlcm4gaW50CWFzdHJlYW1l cl93YWxfcmVhZChjaGFyICpyZWFkQnVmZiwgWExvZ1JlY1B0ciBzdGFydHB0ciwgU2l6ZSBjb3Vu dCwKKwkJCQkJCQkgICBYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvKTsKKworI2VuZGlmCQkJ CQkJCS8qIGVuZCBvZiBQR19XQUxEVU1QX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2Fs ZHVtcC90LzAwMV9iYXNpYy5wbCBiL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbApp bmRleCAxYjcxMmU4ZDc0ZC4uNDQzMTI2YTljZTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2Fs ZHVtcC90LzAwMV9iYXNpYy5wbAorKysgYi9zcmMvYmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMu cGwKQEAgLTMsMTAgKzMsMTMgQEAKIAogdXNlIHN0cmljdDsKIHVzZSB3YXJuaW5ncyBGQVRBTCA9 PiAnYWxsJzsKK3VzZSBDd2Q7CiB1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKIHVzZSBQ b3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKIHVzZSBUZXN0OjpNb3JlOwogCitteSAkdGFyID0gJEVO VntUQVJ9OworCiBwcm9ncmFtX2hlbHBfb2soJ3BnX3dhbGR1bXAnKTsKIHByb2dyYW1fdmVyc2lv bl9vaygncGdfd2FsZHVtcCcpOwogcHJvZ3JhbV9vcHRpb25zX2hhbmRsaW5nX29rKCdwZ193YWxk dW1wJyk7CkBAIC0yMzUsNyArMjM4LDcgQEAgY29tbWFuZF9saWtlKAogc3ViIHRlc3RfcGdfd2Fs ZHVtcAogewogCWxvY2FsICRUZXN0OjpCdWlsZGVyOjpMZXZlbCA9ICRUZXN0OjpCdWlsZGVyOjpM ZXZlbCArIDE7Ci0JbXkgQG9wdHMgPSBAXzsKKwlteSAoJHBhdGgsIEBvcHRzKSA9IEBfOwogCiAJ bXkgKCRzdGRvdXQsICRzdGRlcnIpOwogCkBAIC0yNDMsNiArMjQ2LDcgQEAgc3ViIHRlc3RfcGdf d2FsZHVtcAogCQkncGdfd2FsZHVtcCcsCiAJCSctLXN0YXJ0JyA9PiAkc3RhcnRfbHNuLAogCQkn LS1lbmQnID0+ICRlbmRfbHNuLAorCQknLS1wYXRoJyA9PiAkcGF0aCwKIAkJQG9wdHMKIAkgIF0s CiAJICAnPicgPT4gXCRzdGRvdXQsCkBAIC0yNTQsMTEgKzI1OCw1MCBAQCBzdWIgdGVzdF9wZ193 YWxkdW1wCiAJcmV0dXJuIEBsaW5lczsKIH0KIAotbXkgQGxpbmVzOworIyBDcmVhdGUgYSB0YXIg YXJjaGl2ZSwgc29ydGluZyB0aGUgZmlsZSBvcmRlcgorc3ViIGdlbmVyYXRlX2FyY2hpdmUKK3sK KwlteSAoJGFyY2hpdmUsICRkaXJlY3RvcnksICRjb21wcmVzc2lvbl9mbGFncykgPSBAXzsKKwor CW15IEBmaWxlczsKKwlvcGVuZGlyIG15ICRkaCwgJGRpcmVjdG9yeSBvciBkaWUgIm9wZW5kaXI6 ICQhIjsKKwl3aGlsZSAobXkgJGVudHJ5ID0gcmVhZGRpciAkZGgpIHsKKwkJIyBTa2lwICcuJyBh bmQgJy4uJworCQluZXh0IGlmICRlbnRyeSBlcSAnLicgfHwgJGVudHJ5IGVxICcuLic7CisJCXB1 c2ggQGZpbGVzLCAkZW50cnk7CisJfQorCWNsb3NlZGlyICRkaDsKKworCUBmaWxlcyA9IHNvcnQg QGZpbGVzOworCisJIyBtb3ZlIGludG8gdGhlIFdBTCBkaXJlY3RvcnkgYmVmb3JlIGFyY2hpdmlu ZyBmaWxlcworCW15ICRjd2QgPSBnZXRjd2Q7CisJY2hkaXIoJGRpcmVjdG9yeSkgfHwgZGllICJj aGRpcjogJCEiOworCWNvbW1hbmRfb2soWyR0YXIsICRjb21wcmVzc2lvbl9mbGFncywgJGFyY2hp dmUsIEBmaWxlc10pOworCWNoZGlyKCRjd2QpIHx8IGRpZSAiY2hkaXI6ICQhIjsKK30KKworbXkg JHRtcF9kaXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dGVtcGRpcl9zaG9ydCgpOwogCiBt eSBAc2NlbmFyaW8gPSAoCiAJewotCQkncGF0aCcgPT4gJG5vZGUtPmRhdGFfZGlyCisJCSdwYXRo JyA9PiAkbm9kZS0+ZGF0YV9kaXIsCisJCSdpc19hcmNoaXZlJyA9PiAwLAorCQknZW5hYmxlZCcg PT4gMQorCX0sCisJeworCQkncGF0aCcgPT4gIiR0bXBfZGlyL3BnX3dhbC50YXIiLAorCQknY29t cHJlc3Npb25fbWV0aG9kJyA9PiAnbm9uZScsCisJCSdjb21wcmVzc2lvbl9mbGFncycgPT4gJy1j ZicsCisJCSdpc19hcmNoaXZlJyA9PiAxLAorCQknZW5hYmxlZCcgPT4gMQorCX0sCisJeworCQkn cGF0aCcgPT4gIiR0bXBfZGlyL3BnX3dhbC50YXIuZ3oiLAorCQknY29tcHJlc3Npb25fbWV0aG9k JyA9PiAnZ3ppcCcsCisJCSdjb21wcmVzc2lvbl9mbGFncycgPT4gJy1jemYnLAorCQknaXNfYXJj aGl2ZScgPT4gMSwKKwkJJ2VuYWJsZWQnID0+IGNoZWNrX3BnX2NvbmZpZygiI2RlZmluZSBIQVZF X0xJQlogMSIpCiAJfSk7CiAKIGZvciBteSAkc2NlbmFyaW8gKEBzY2VuYXJpbykKQEAgLTI2Nyw2 ICszMTAsMTkgQEAgZm9yIG15ICRzY2VuYXJpbyAoQHNjZW5hcmlvKQogCiAJU0tJUDoKIAl7CisJ CXNraXAgInRhciBjb21tYW5kIGlzIG5vdCBhdmFpbGFibGUiLCAzCisJCSAgaWYgIWRlZmluZWQg JHRhcjsKKwkJc2tpcCAiJHNjZW5hcmlvLT57J2NvbXByZXNzaW9uX21ldGhvZCd9IGNvbXByZXNz aW9uIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBidWlsZCIsIDMKKwkJICBpZiAhJHNjZW5hcmlvLT57 J2VuYWJsZWQnfSAmJiAkc2NlbmFyaW8tPnsnaXNfYXJjaGl2ZSd9OworCisJCSAgIyBjcmVhdGUg cGdfd2FsIGFyY2hpdmUKKwkJICBpZiAoJHNjZW5hcmlvLT57J2lzX2FyY2hpdmUnfSkKKwkJICB7 CisJCQkgIGdlbmVyYXRlX2FyY2hpdmUoJHBhdGgsCisJCQkJICAkbm9kZS0+ZGF0YV9kaXIgLiAn L3BnX3dhbCcsCisJCQkJICAkc2NlbmFyaW8tPnsnY29tcHJlc3Npb25fZmxhZ3MnfSk7CisJCSAg fQorCiAJCWNvbW1hbmRfZmFpbHNfbGlrZSgKIAkJCVsgJ3BnX3dhbGR1bXAnLCAnLS1wYXRoJyA9 PiAkcGF0aCBdLAogCQkJcXIvZXJyb3I6IG5vIHN0YXJ0IFdBTCBsb2NhdGlvbiBnaXZlbi8sCkBA IC0yOTgsMzggKzM1NCw0MiBAQCBmb3IgbXkgJHNjZW5hcmlvIChAc2NlbmFyaW8pCiAJCQlxci9l cnJvcjogZXJyb3IgaW4gV0FMIHJlY29yZCBhdC8sCiAJCQknZXJyb3JzIGFyZSBzaG93biB3aXRo IC0tcXVpZXQnKTsKIAotCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tcGF0aCcgPT4gJHBh dGgpOworCQlteSBAbGluZXM7CisJCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgkcGF0aCk7CiAJ CWlzKGdyZXAoIS9ecm1ncjogXHcvLCBAbGluZXMpLCAwLCAnYWxsIG91dHB1dCBsaW5lcyBhcmUg cm1nciBsaW5lcycpOwogCi0JCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1wYXRoJyA9PiAk cGF0aCwgJy0tbGltaXQnID0+IDYpOworCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJHBhdGgs ICctLWxpbWl0JyA9PiA2KTsKIAkJaXMoQGxpbmVzLCA2LCAnbGltaXQgb3B0aW9uIG9ic2VydmVk Jyk7CiAKLQkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1m dWxscGFnZScpOworCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJHBhdGgsICctLWZ1bGxwYWdl Jyk7CiAJCWlzKGdyZXAoIS9ecm1ncjouKlxiRlBXXGIvLCBAbGluZXMpLCAwLCAnYWxsIG91dHB1 dCBsaW5lcyBhcmUgRlBXJyk7CiAKLQkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgn ID0+ICRwYXRoLCAnLS1zdGF0cycpOworCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJHBhdGgs ICctLXN0YXRzJyk7CiAJCWxpa2UoJGxpbmVzWzBdLCBxci9XQUwgc3RhdGlzdGljcy8sICJzdGF0 aXN0aWNzIG9uIHN0ZG91dCIpOwogCQlpcyhncmVwKC9ecm1ncjovLCBAbGluZXMpLCAwLCAnbm8g cm1nciBsaW5lcyBvdXRwdXQnKTsKIAotCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tcGF0 aCcgPT4gJHBhdGgsICctLXN0YXRzPXJlY29yZCcpOworCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1 bXAoJHBhdGgsICctLXN0YXRzPXJlY29yZCcpOwogCQlsaWtlKCRsaW5lc1swXSwgcXIvV0FMIHN0 YXRpc3RpY3MvLCAic3RhdGlzdGljcyBvbiBzdGRvdXQiKTsKIAkJaXMoZ3JlcCgvXnJtZ3I6Lywg QGxpbmVzKSwgMCwgJ25vIHJtZ3IgbGluZXMgb3V0cHV0Jyk7CiAKLQkJQGxpbmVzID0gdGVzdF9w Z193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1ybWdyJyA9PiAnQnRyZWUnKTsKKwkJQGxp bmVzID0gdGVzdF9wZ193YWxkdW1wKCRwYXRoLCAnLS1ybWdyJyA9PiAnQnRyZWUnKTsKIAkJaXMo Z3JlcCghL15ybWdyOiBCdHJlZS8sIEBsaW5lcyksIDAsICdvbmx5IEJ0cmVlIGxpbmVzJyk7CiAK LQkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1mb3JrJyA9 PiAnaW5pdCcpOworCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJHBhdGgsICctLWZvcmsnID0+ ICdpbml0Jyk7CiAJCWlzKGdyZXAoIS9mb3JrIGluaXQvLCBAbGluZXMpLCAwLCAnb25seSBpbml0 IGZvcmsgbGluZXMnKTsKIAotCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tcGF0aCcgPT4g JHBhdGgsCisJCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgkcGF0aCwKIAkJCSctLXJlbGF0aW9u JyA9PiAiJGRlZmF1bHRfdHNfb2lkLyRwb3N0Z3Jlc19kYl9vaWQvJHJlbF90MV9vaWQiKTsKIAkJ aXMoZ3JlcCghL3JlbCAkZGVmYXVsdF90c19vaWRcLyRwb3N0Z3Jlc19kYl9vaWRcLyRyZWxfdDFf b2lkLywgQGxpbmVzKSwKIAkJCTAsICdvbmx5IGxpbmVzIGZvciBzZWxlY3RlZCByZWxhdGlvbicp OwogCi0JCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1wYXRoJyA9PiAkcGF0aCwKKwkJQGxp bmVzID0gdGVzdF9wZ193YWxkdW1wKCRwYXRoLAogCQkJJy0tcmVsYXRpb24nID0+ICIkZGVmYXVs dF90c19vaWQvJHBvc3RncmVzX2RiX29pZC8kcmVsX2kxYV9vaWQiLAogCQkJJy0tYmxvY2snID0+ IDEpOwogCQlpcyhncmVwKCEvXGJibGsgMVxiLywgQGxpbmVzKSwgMCwgJ29ubHkgbGluZXMgZm9y IHNlbGVjdGVkIGJsb2NrJyk7CisKKwkJIyBDbGVhbnVwLgorCQl1bmxpbmsgJHBhdGggaWYgJHNj ZW5hcmlvLT57J2lzX2FyY2hpdmUnfTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy90b29scy9w Z2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK aW5kZXggYTEzZTgxNjI4OTAuLmI0MDZjYTA0MWVjIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dApAQCAtMzQ0NCw2ICszNDQ0LDcgQEAgYXN0cmVhbWVyX3JlY292ZXJ5X2luamVjdG9yCiBhc3Ry ZWFtZXJfdGFyX2FyY2hpdmVyCiBhc3RyZWFtZXJfdGFyX3BhcnNlcgogYXN0cmVhbWVyX3Zlcmlm eQorYXN0cmVhbWVyX3dhbGR1bXAKIGFzdHJlYW1lcl96c3RkX2ZyYW1lCiBhdXRoX3Bhc3N3b3Jk X2hvb2tfdHlwCiBhdXRvdmFjX3RhYmxlCi0tIAoyLjQ3LjEKCg== --000000000000913393063d2fb4a6 Content-Type: application/x-patch; name="v2-0006-WIP-pg_waldump-Remove-the-restriction-on-the-orde.patch" Content-Disposition: attachment; filename="v2-0006-WIP-pg_waldump-Remove-the-restriction-on-the-orde.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mer3dn315 RnJvbSBkYmFjYjRiM2QxOWM1NzllYjBlM2I4YWEyZGJiZmYwNGM3MjczNTg0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IE1v biwgMjUgQXVnIDIwMjUgMTc6MjY6MjkgKzA1MzAKU3ViamVjdDogW1BBVENIIHYyIDYvOV0gV0lQ LXBnX3dhbGR1bXA6IFJlbW92ZSB0aGUgcmVzdHJpY3Rpb24gb24gdGhlIG9yZGVyIG9mCiBhcmNo aXZlZCBXQUwgZmlsZXMuCgpXaXRoIHByZXZpb3VzIHBhdGNoLCBwZ193YWxkdW1wIHdvdWxkIHN0 b3AgZGVjb2RpbmcgaWYgV0FMIGZpbGVzIHdlcmUKbm90IGluIHRoZSByZXF1aXJlZCBzZXF1ZW5j ZS4gV2l0aCB0aGlzIHBhdGNoLCBkZWNvZGluZyB3aWxsIG5vdwpjb250aW51ZS4gIEFueSBXQUwg ZmlsZSB0aGF0IGlzIG91dCBvZiBvcmRlciB3aWxsIGJlIHdyaXR0ZW4gdG8gYQp0ZW1wb3Jhcnkg bG9jYXRpb24sIGZyb20gd2hpY2ggaXQgd2lsbCBiZSByZWFkIGxhdGVyLiBPbmNlIGEgdGVtcG9y YXJ5CmZpbGUgaGFzIGJlZW4gcmVhZCwgaXQgd2lsbCBiZSByZW1vdmVkLgoKVE9ETzoKICBUaW1l bGluZSBzd2l0Y2hpbmcgaXMgbm90IGhhbmRsZWQgY29ycmVjdGx5LCBlc3BlY2lhbGx5IHdoZW4g YQogIHRpbWVsaW5lIGNoYW5nZSBvY2N1cnMgb24gdGhlIG5leHQgV0FMIGZpbGUgdGhhdCB3YXMg cHJldmlvdXNseQogIHdyaXR0ZW4gdG8gYSB0ZW1wb3JhcnkgbG9jYXRpb24uCi0tLQogZG9jL3Ny Yy9zZ21sL3JlZi9wZ193YWxkdW1wLnNnbWwgICAgICAgfCAgIDggKy0KIHNyYy9iaW4vcGdfd2Fs ZHVtcC9hc3RyZWFtZXJfd2FsZHVtcC5jIHwgMTg5ICsrKysrKysrKysrKysrKysrKysrKy0tLS0K IHNyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMgICAgICAgIHwgIDc3ICsrKysrKysrKy0K IHNyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmggICAgICAgIHwgIDI2ICsrKy0KIHNyYy9i aW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbCAgICAgIHwgICAzICstCiA1IGZpbGVzIGNoYW5n ZWQsIDI2OSBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvcmVmL3BnX3dhbGR1bXAuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfd2FsZHVt cC5zZ21sCmluZGV4IGQwMDRiYjBmNjdlLi44YTI4YjRmMGY5MSAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZi9wZ193YWxkdW1wLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ193YWxk dW1wLnNnbWwKQEAgLTE0OSw4ICsxNDksMTIgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAg ICAgICAgIG9mIDxlbnZhcj5QR0RBVEE8L2VudmFyPi4KICAgICAgICA8L3BhcmE+CiAgICAgICAg PHBhcmE+Ci0gICAgICAgIElmIGEgdGFyIGFyY2hpdmUgaXMgcHJvdmlkZWQsIGl0cyBXQUwgc2Vn bWVudCBmaWxlcyBtdXN0IGJlIGluCi0gICAgICAgIHNlcXVlbnRpYWwgb3JkZXI7IG90aGVyd2lz ZSwgYW4gZXJyb3Igd2lsbCBiZSByZXBvcnRlZC4KKyAgICAgICAgSWYgYSB0YXIgYXJjaGl2ZSBp cyBwcm92aWRlZCBhbmQgaXRzIFdBTCBzZWdtZW50IGZpbGVzIGFyZSBub3QgaW4KKyAgICAgICAg c2VxdWVudGlhbCBvcmRlciwgdGhvc2UgZmlsZXMgd2lsbCBiZSB3cml0dGVuIHRvIGEgdGVtcG9y YXJ5IGRpcmVjdG9yeQorICAgICAgICBuYW1lZCA8ZmlsZW5hbWU+cGdfd2FsZHVtcF90bXBfZGly LzwvZmlsZW5hbWU+LiBUaGlzIGRpcmVjdG9yeSB3aWxsIGJlCisgICAgICAgIGNyZWF0ZWQgaW5z aWRlIHRoZSBkaXJlY3Rvcnkgc3BlY2lmaWVkIGJ5IHRoZSA8ZW52YXI+VE1QRElSPC9lbnZhcj4K KyAgICAgICAgZW52aXJvbm1lbnQgdmFyaWFibGUgaWYgaXQgaXMgc2V0OyBvdGhlcndpc2UsIGl0 IHdpbGwgYmUgY3JlYXRlZCB3aXRoaW4KKyAgICAgICAgdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRo ZSB0YXIgYXJjaGl2ZS4KICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8 L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVtcC9hc3RyZWFtZXJf d2FsZHVtcC5jIGIvc3JjL2Jpbi9wZ193YWxkdW1wL2FzdHJlYW1lcl93YWxkdW1wLmMKaW5kZXgg OTE2ZDM4OGVmMGMuLmFjZmJhY2U3NTAyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAv YXN0cmVhbWVyX3dhbGR1bXAuYworKysgYi9zcmMvYmluL3BnX3dhbGR1bXAvYXN0cmVhbWVyX3dh bGR1bXAuYwpAQCAtMTgsOCArMTgsOCBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2dfaW50ZXJu YWwuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZ2RlZnMuaCIKKyNpbmNsdWRlICJjb21tb24vZmls ZV9wZXJtLmgiCiAjaW5jbHVkZSAiY29tbW9uL2xvZ2dpbmcuaCIKLSNpbmNsdWRlICJmZV91dGls cy9zaW1wbGVfbGlzdC5oIgogI2luY2x1ZGUgInBnX3dhbGR1bXAuaCIKIAogLyoKQEAgLTM3LDYg KzM3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgYXN0cmVhbWVyX3dhbGR1bXAKIAogCS8qIFRoZXNlIGZp ZWxkcyBjaGFuZ2Ugd2l0aCBhcmNoaXZlIG1lbWJlci4gKi8KIAlib29sCQlza2lwVGhpc1NlZzsK Kwlib29sCQl3cml0ZVRoaXNTZWc7CisJRklMRQkgICAqc2VnRnA7CiAJWExvZ1NlZ05vCW5leHRT ZWdObzsJCS8qIE5leHQgZXhwZWN0ZWQgc2VnbWVudCB0byBzdHJlYW0gKi8KIH0gYXN0cmVhbWVy X3dhbGR1bXA7CiAKQEAgLTUzLDggKzU1LDE1IEBAIHN0YXRpYyBib29sIG1lbWJlcl9pc19yZWxl dmFudF93YWwoYXN0cmVhbWVyX21lbWJlciAqbWVtYmVyLAogCQkJCQkJCQkgICBYTG9nU2VnTm8g c3RhcnRTZWdObywKIAkJCQkJCQkJICAgWExvZ1NlZ05vIGVuZFNlZ05vLAogCQkJCQkJCQkgICBY TG9nU2VnTm8gbmV4dFNlZ05vLAorCQkJCQkJCQkgICBjaGFyICoqY3VyRm5hbWUsCiAJCQkJCQkJ CSAgIFhMb2dTZWdObyAqY3VyU2VnTm8sCiAJCQkJCQkJCSAgIFRpbWVMaW5lSUQgKmN1clNlZ1Rp bWVsaW5lKTsKK3N0YXRpYyBGSUxFICptZW1iZXJfcHJlcGFyZV90bXBfd3JpdGUoWExvZ1NlZ05v IGN1clNlZ05vLAorCQkJCQkJCQkJICBjb25zdCBjaGFyICpmbmFtZSwKKwkJCQkJCQkJCSAgWExv Z0R1bXBQcml2YXRlICpwcml2YXRlSW5mbyk7CitzdGF0aWMgWExvZ1NlZ05vIG1lbWJlcl9uZXh0 X3NlZ25vKFhMb2dTZWdObyBjdXJTZWdObywKKwkJCQkJCQkJICAgVGltZUxpbmVJRCB0aW1lbGlu ZSwKKwkJCQkJCQkJICAgWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbyk7CiAKIHN0YXRpYyBj b25zdCBhc3RyZWFtZXJfb3BzIGFzdHJlYW1lcl93YWxkdW1wX29wcyA9IHsKIAkuY29udGVudCA9 IGFzdHJlYW1lcl93YWxkdW1wX2NvbnRlbnQsCkBAIC0xODksMTcgKzE5OCw4IEBAIGFzdHJlYW1l cl93YWxkdW1wX2NvbnRlbnRfbmV3KGFzdHJlYW1lciAqbmV4dCwgWExvZ1JlY1B0ciBzdGFydHB0 ciwKIAlpZiAoWExvZ1JlY1B0cklzSW52YWxpZChzdGFydHB0cikpCiAJCXN0cmVhbWVyLT5zdGFy dFNlZ05vID0gMDsKIAllbHNlCi0JewogCQlYTEJ5dGVUb1NlZyhzdGFydHB0ciwgc3RyZWFtZXIt PnN0YXJ0U2VnTm8sIFdhbFNlZ1N6KTsKIAotCQkvKgotCQkgKiBJbml0aWFsaXplIHRoZSByZWNv cmQgcG9pbnRlciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaXJzdAotCQkgKiBzZWdtZW50OyB0 aGlzIHBvaW50ZXIgd2lsbCB0cmFjayB0aGUgV0FMIHJlY29yZCByZWFkaW5nIHN0YXR1cy4KLQkJ ICovCi0JCVhMb2dTZWdOb09mZnNldFRvUmVjUHRyKHN0cmVhbWVyLT5zdGFydFNlZ05vLCAwLCBX YWxTZWdTeiwKLQkJCQkJCQkJcHJpdmF0ZUluZm8tPmFyY2hpdmVfc3RyZWFtZXJfcmVhZF9wdHIp OwotCX0KLQogCWlmIChYTG9nUmVjUHRySXNJbnZhbGlkKGVuZFB0cikpCiAJCXN0cmVhbWVyLT5l bmRTZWdObyA9IFVJTlQ2NF9NQVg7CiAJZWxzZQpAQCAtMjI4LDE5ICsyMjgsMjEgQEAgYXN0cmVh bWVyX3dhbGR1bXBfY29udGVudChhc3RyZWFtZXIgKnN0cmVhbWVyLCBhc3RyZWFtZXJfbWVtYmVy ICptZW1iZXIsCiAJewogCQljYXNlIEFTVFJFQU1FUl9NRU1CRVJfSEVBREVSOgogCQkJeworCQkJ CWNoYXIJICAgKmZuYW1lOwogCQkJCVhMb2dTZWdObwlzZWdObzsKIAkJCQlUaW1lTGluZUlECXRp bWVsaW5lOwogCiAJCQkJcGdfbG9nX2RlYnVnKCJwZ193YWxkdW1wOiByZWFkaW5nIFwiJXNcIiIs IG1lbWJlci0+cGF0aG5hbWUpOwogCiAJCQkJbXlzdHJlYW1lci0+c2tpcFRoaXNTZWcgPSBmYWxz ZTsKKwkJCQlteXN0cmVhbWVyLT53cml0ZVRoaXNTZWcgPSBmYWxzZTsKIAogCQkJCWlmICghbWVt YmVyX2lzX3JlbGV2YW50X3dhbChtZW1iZXIsCiAJCQkJCQkJCQkJCXByaXZhdGVJbmZvLT50aW1l bGluZSwKIAkJCQkJCQkJCQkJbXlzdHJlYW1lci0+c3RhcnRTZWdObywKIAkJCQkJCQkJCQkJbXlz dHJlYW1lci0+ZW5kU2VnTm8sCiAJCQkJCQkJCQkJCW15c3RyZWFtZXItPm5leHRTZWdObywKLQkJ CQkJCQkJCQkJJnNlZ05vLCAmdGltZWxpbmUpKQorCQkJCQkJCQkJCQkmZm5hbWUsICZzZWdObywg JnRpbWVsaW5lKSkKIAkJCQl7CiAJCQkJCW15c3RyZWFtZXItPnNraXBUaGlzU2VnID0gdHJ1ZTsK IAkJCQkJYnJlYWs7CkBAIC0yNTQsMjQgKzI1NiwzOCBAQCBhc3RyZWFtZXJfd2FsZHVtcF9jb250 ZW50KGFzdHJlYW1lciAqc3RyZWFtZXIsIGFzdHJlYW1lcl9tZW1iZXIgKm1lbWJlciwKIAkJCQlp ZiAobXlzdHJlYW1lci0+bmV4dFNlZ05vID09IDApCiAJCQkJCWJyZWFrOwogCi0JCQkJLyogV0FM IHNlZ21lbnRzIG11c3QgYmUgYXJjaGl2ZWQgaW4gb3JkZXIgKi8KKwkJCQkvKgorCQkJCSAqIFdo ZW4gV0FMIHNlZ21lbnRzIGFyZSBub3QgYXJjaGl2ZWQgc2VxdWVudGlhbGx5LCBpdCBiZWNvbWVz CisJCQkJICogbmVjZXNzYXJ5IHRvIHdyaXRlIG91dCAob3IgcHJlc2VydmUpIHNlZ21lbnRzIHRo YXQgbWlnaHQgYmUKKwkJCQkgKiByZXF1aXJlZCBhdCBhIGxhdGVyIHBvaW50LgorCQkJCSAqLwog CQkJCWlmIChteXN0cmVhbWVyLT5uZXh0U2VnTm8gIT0gc2VnTm8pCiAJCQkJewotCQkJCQlwZ19s b2dfZXJyb3IoIldBTCBmaWxlcyBhcmUgbm90IGFyY2hpdmVkIGluIHNlcXVlbnRpYWwgb3JkZXIi KTsKLQkJCQkJcGdfbG9nX2Vycm9yX2RldGFpbCgiRXhwZWN0aW5nIHNlZ21lbnQgbnVtYmVyICIg VUlOVDY0X0ZPUk1BVCAiIGJ1dCBmb3VuZCAiIFVJTlQ2NF9GT1JNQVQgIi4iLAotCQkJCQkJCQkJ CW15c3RyZWFtZXItPm5leHRTZWdObywgc2VnTm8pOwotCQkJCQlleGl0KDEpOworCQkJCQlteXN0 cmVhbWVyLT53cml0ZVRoaXNTZWcgPSB0cnVlOworCQkJCQlteXN0cmVhbWVyLT5zZWdGcCA9CisJ CQkJCQltZW1iZXJfcHJlcGFyZV90bXBfd3JpdGUoc2VnTm8sIGZuYW1lLCBwcml2YXRlSW5mbyk7 CisJCQkJCWJyZWFrOwogCQkJCX0KIAogCQkJCS8qCi0JCQkJICogV2UgdHJhY2sgdGhlIHJlYWRp bmcgb2YgV0FMIHNlZ21lbnQgcmVjb3JkcyB1c2luZyBhIHBvaW50ZXIKLQkJCQkgKiB0aGF0J3Mg Y29udGludW91c2x5IGluY3JlbWVudGVkIGJ5IHRoZSBsZW5ndGggb2YgdGhlCi0JCQkJICogcmVj ZWl2ZWQgZGF0YS4gVGhpcyBwb2ludGVyIGlzIGNydWNpYWwgZm9yIHNlcnZpbmcgV0FMIHBhZ2UK LQkJCQkgKiByZXF1ZXN0cyBmcm9tIHRoZSBXQUwgZGVjb2Rpbmcgcm91dGluZSwgc28gaXQgbXVz dCBiZQotCQkJCSAqIGFjY3VyYXRlLgorCQkJCSAqIFdlIGFyZSBub3cgc3RyZWFtaW5nIHNlZ21l bnQgY29udGFpbnQuCisJCQkJICoKKwkJCQkgKiBXZSBuZWVkIHRvIHRyYWNrIHRoZSByZWFkaW5n IG9mIFdBTCBzZWdtZW50IHJlY29yZHMgdXNpbmcgYQorCQkJCSAqIHBvaW50ZXIgdGhhdCdzIHR5 cGljYWxseSBpbmNyZW1lbnRlZCBieSB0aGUgbGVuZ3RoIG9mIHRoZQorCQkJCSAqIGRhdGEgcmVh ZC4gSG93ZXZlciwgd2Ugc29tZXRpbWVzIGV4cG9ydCB0aGUgV0FMIGZpbGUgdG8KKwkJCQkgKiB0 ZW1wb3Jhcnkgc3RvcmFnZSwgYWxsb3dpbmcgdGhlIGRlY29kaW5nIHJvdXRpbmUgdG8gcmVhZAor CQkJCSAqIGRpcmVjdGx5IGZyb20gdGhlcmUuIFRoaXMgbWFrZXMgY29udGludW91cyBwb2ludGVy CisJCQkJICogaW5jcmVtZW50aW5nIGNoYWxsZW5naW5nLCBhcyBmaWxlIHJlYWRzIGNhbiBvY2N1 ciBmcm9tIGFueQorCQkJCSAqIG9mZnNldCwgbGVhZGluZyB0byBwb3RlbnRpYWwgZXJyb3JzLiBU aGVyZWZvcmUsIHdlIG5vdworCQkJCSAqIHJlc2V0IHRoZSBwb2ludGVyIHdoZW4gcmVhZGluZyBm cm9tIGEgZmlsZSBmb3Igc3RyZWFtaW5nLgorCQkJCSAqIEFsc28sIGlmIHRoZXJlJ3MgYW55IGV4 aXN0aW5nIGRhdGEgaW4gdGhlIGJ1ZmZlciwgdGhlIG5leHQKKwkJCQkgKiBXQUwgcmVjb3JkIHNo b3VsZCBsb2dpY2FsbHkgZm9sbG93IGl0LgogCQkJCSAqLwogI2lmZGVmIFVTRV9BU1NFUlRfQ0hF Q0tJTkcKLQkJCQlpZiAobXlzdHJlYW1lci0+bmV4dFNlZ05vICE9IDApCisJCQkJQXNzZXJ0KCFt eXN0cmVhbWVyLT5za2lwVGhpc1NlZyk7CisJCQkJQXNzZXJ0KCFteXN0cmVhbWVyLT53cml0ZVRo aXNTZWcpOworCisJCQkJaWYgKHByaXZhdGVJbmZvLT5hcmNoaXZlX3N0cmVhbWVyX2J1Zi0+bGVu ICE9IDApCiAJCQkJewogCQkJCQlYTG9nUmVjUHRyCXJlY1B0cjsKIApAQCAtMjgwLDExICsyOTYs MTkgQEAgYXN0cmVhbWVyX3dhbGR1bXBfY29udGVudChhc3RyZWFtZXIgKnN0cmVhbWVyLCBhc3Ry ZWFtZXJfbWVtYmVyICptZW1iZXIsCiAJCQkJfQogI2VuZGlmCiAKKwkJCQkvKgorCQkJCSAqIElu aXRpYWxpemVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgc2VnbWVudCBiZWluZwor CQkJCSAqIHN0cmVhbWVkIHRocm91Z2ggdGhlIGJ1ZmZlci4KKwkJCQkgKi8KKwkJCQlYTG9nU2Vn Tm9PZmZzZXRUb1JlY1B0cihzZWdObywgMCwgV2FsU2VnU3osCisJCQkJCQkJCQkJcHJpdmF0ZUlu Zm8tPmFyY2hpdmVfc3RyZWFtZXJfcmVhZF9wdHIpOworCiAJCQkJLyogU2F2ZSB0aGUgdGltZWxp bmUgKi8KIAkJCQlwcml2YXRlSW5mby0+dGltZWxpbmUgPSB0aW1lbGluZTsKIAogCQkJCS8qIFVw ZGF0ZSB0aGUgbmV4dCBleHBlY3RlZCBzZWdtZW50IG51bWJlciAqLwotCQkJCW15c3RyZWFtZXIt Pm5leHRTZWdObyArPSAxOworCQkJCW15c3RyZWFtZXItPm5leHRTZWdObyA9CisJCQkJCW1lbWJl cl9uZXh0X3NlZ25vKHNlZ05vLCB0aW1lbGluZSwgcHJpdmF0ZUluZm8pOwogCQkJfQogCQkJYnJl YWs7CiAKQEAgLTI5MywxMiArMzE3LDQ0IEBAIGFzdHJlYW1lcl93YWxkdW1wX2NvbnRlbnQoYXN0 cmVhbWVyICpzdHJlYW1lciwgYXN0cmVhbWVyX21lbWJlciAqbWVtYmVyLAogCQkJaWYgKG15c3Ry ZWFtZXItPnNraXBUaGlzU2VnKQogCQkJCWJyZWFrOwogCisJCQkvKiBPciwgd3JpdGUgY29udGVu dHMgdG8gZmlsZSAqLworCQkJaWYgKG15c3RyZWFtZXItPndyaXRlVGhpc1NlZykKKwkJCXsKKwkJ CQlBc3NlcnQobXlzdHJlYW1lci0+c2VnRnAgIT0gTlVMTCk7CisKKwkJCQllcnJubyA9IDA7CisJ CQkJaWYgKGxlbiA+IDAgJiYgZndyaXRlKGRhdGEsIGxlbiwgMSwgbXlzdHJlYW1lci0+c2VnRnAp ICE9IDEpCisJCQkJeworCQkJCQljaGFyCSAgICpmbmFtZTsKKwkJCQkJaW50CQkJcGF0aGxlbiA9 IHN0cmxlbihtZW1iZXItPnBhdGhuYW1lKTsKKworCQkJCQlBc3NlcnQocGF0aGxlbiA+PSBYTE9H X0ZOQU1FX0xFTik7CisKKwkJCQkJZm5hbWUgPSBtZW1iZXItPnBhdGhuYW1lICsgKHBhdGhsZW4g LSBYTE9HX0ZOQU1FX0xFTik7CisKKwkJCQkJLyoKKwkJCQkJICogSWYgd3JpdGUgZGlkbid0IHNl dCBlcnJubywgYXNzdW1lIHByb2JsZW0gaXMgbm8gZGlzaworCQkJCQkgKiBzcGFjZQorCQkJCQkg Ki8KKwkJCQkJaWYgKGVycm5vID09IDApCisJCQkJCQllcnJubyA9IEVOT1NQQzsKKwkJCQkJcGdf ZmF0YWwoImNvdWxkIG5vdCB3cml0ZSB0byBmaWxlIFwiJXMvJXNcIjogJW0iLAorCQkJCQkJCSBw cml2YXRlSW5mby0+dG1wZGlyLCBmbmFtZSk7CisJCQkJfQorCQkJCWJyZWFrOworCQkJfQorCiAJ CQkvKiBPciwgY29weSBjb250ZW50cyB0byBidWZmZXIgKi8KIAkJCXByaXZhdGVJbmZvLT5hcmNo aXZlX3N0cmVhbWVyX3JlYWRfcHRyICs9IGxlbjsKIAkJCWFzdHJlYW1lcl9idWZmZXJfYnl0ZXMo c3RyZWFtZXIsICZkYXRhLCAmbGVuLCBsZW4pOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBBU1RSRUFN RVJfTUVNQkVSX1RSQUlMRVI6CisJCQlpZiAobXlzdHJlYW1lci0+c2VnRnAgIT0gTlVMTCkKKwkJ CXsKKwkJCQlmY2xvc2UobXlzdHJlYW1lci0+c2VnRnApOworCQkJCW15c3RyZWFtZXItPnNlZ0Zw ID0gTlVMTDsKKwkJCX0KIAkJCWJyZWFrOwogCiAJCWNhc2UgQVNUUkVBTUVSX0FSQ0hJVkVfVFJB SUxFUjoKQEAgLTMyNSw4ICszODEsMTQgQEAgYXN0cmVhbWVyX3dhbGR1bXBfZmluYWxpemUoYXN0 cmVhbWVyICpzdHJlYW1lcikKIHN0YXRpYyB2b2lkCiBhc3RyZWFtZXJfd2FsZHVtcF9mcmVlKGFz dHJlYW1lciAqc3RyZWFtZXIpCiB7CisJYXN0cmVhbWVyX3dhbGR1bXAgKm15c3RyZWFtZXI7CisK IAlBc3NlcnQoc3RyZWFtZXItPmJic19uZXh0ID09IE5VTEwpOwogCisJbXlzdHJlYW1lciA9IChh c3RyZWFtZXJfd2FsZHVtcCAqKSBzdHJlYW1lcjsKKwlpZiAobXlzdHJlYW1lci0+c2VnRnAgIT0g TlVMTCkKKwkJZmNsb3NlKG15c3RyZWFtZXItPnNlZ0ZwKTsKKwogCXBmcmVlKHN0cmVhbWVyLT5i YnNfYnVmZmVyLmRhdGEpOwogCXBmcmVlKHN0cmVhbWVyKTsKIH0KQEAgLTMzOSw4ICs0MDEsOCBA QCBhc3RyZWFtZXJfd2FsZHVtcF9mcmVlKGFzdHJlYW1lciAqc3RyZWFtZXIpCiBzdGF0aWMgYm9v bAogbWVtYmVyX2lzX3JlbGV2YW50X3dhbChhc3RyZWFtZXJfbWVtYmVyICptZW1iZXIsIFRpbWVM aW5lSUQgc3RhcnRUaW1lTGluZUlELAogCQkJCQkgICBYTG9nU2VnTm8gc3RhcnRTZWdObywgWExv Z1NlZ05vIGVuZFNlZ05vLAotCQkJCQkgICBYTG9nU2VnTm8gbmV4dFNlZ05vLCBYTG9nU2VnTm8g KmN1clNlZ05vLAotCQkJCQkgICBUaW1lTGluZUlEICpjdXJTZWdUaW1lbGluZSkKKwkJCQkJICAg WExvZ1NlZ05vIG5leHRTZWdObywgY2hhciAqKmN1ckZuYW1lLAorCQkJCQkgICBYTG9nU2VnTm8g KmN1clNlZ05vLCBUaW1lTGluZUlEICpjdXJTZWdUaW1lbGluZSkKIHsKIAlpbnQJCQlwYXRobGVu OwogCVhMb2dTZWdObwlzZWdObzsKQEAgLTM3MSw4ICs0MzMsODUgQEAgbWVtYmVyX2lzX3JlbGV2 YW50X3dhbChhc3RyZWFtZXJfbWVtYmVyICptZW1iZXIsIFRpbWVMaW5lSUQgc3RhcnRUaW1lTGlu ZUlELAogCWlmIChzdGFydFNlZ05vID4gc2VnTm8gfHwgZW5kU2VnTm8gPCBzZWdObykKIAkJcmV0 dXJuIGZhbHNlOwogCisJKmN1ckZuYW1lID0gZm5hbWU7CiAJKmN1clNlZ05vID0gc2VnTm87CiAJ KmN1clNlZ1RpbWVsaW5lID0gdGltZWxpbmU7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KKworLyoKKyAq IENyZWF0ZSBhbiBlbXB0eSBwbGFjZWhvbGRlciBmaWxlIGFuZCByZXR1cm4gaXRzIGhhbmRsZS4g IFRoZSBmaWxlIGlzIGFsc28KKyAqIGFkZGVkIHRvIGFuIGV4cG9ydGVkIGxpc3QgZm9yIGZ1dHVy ZSBtYW5hZ2VtZW50LCBlLmcuICBhY2Nlc3MsIGRlbGV0aW9uLCBhbmQKKyAqIGV4aXN0ZW5jZSBj aGVja3MuCisgKi8KK3N0YXRpYyBGSUxFICoKK21lbWJlcl9wcmVwYXJlX3RtcF93cml0ZShYTG9n U2VnTm8gY3VyU2VnTm8sIGNvbnN0IGNoYXIgKmZuYW1lLAorCQkJCQkJIFhMb2dEdW1wUHJpdmF0 ZSAqcHJpdmF0ZUluZm8pCit7CisJRklMRQkgICAqZmlsZTsKKwljaGFyCSAgICpmcGF0aCA9IGdl dF90bXBfd2FsX2ZpbGVfcGF0aChwcml2YXRlSW5mbywgZm5hbWUpOworCisJLyogQ3JlYXRlIGFu IGVtcHR5IHBsYWNlaG9sZGVyICovCisJZmlsZSA9IGZvcGVuKGZwYXRoLCBQR19CSU5BUllfVyk7 CisJaWYgKGZpbGUgPT0gTlVMTCkKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBjcmVhdGUgZmlsZSBc IiVzXCI6ICVtIiwgZnBhdGgpOworCisjaWZuZGVmIFdJTjMyCisJaWYgKGNobW9kKGZwYXRoLCBw Z19maWxlX2NyZWF0ZV9tb2RlKSkKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBzZXQgcGVybWlzc2lv bnMgb24gZmlsZSBcIiVzXCI6ICVtIiwKKwkJCQkgZnBhdGgpOworI2VuZGlmCisKKwkvKiBSZWNv cmQgdGhpcyBzZWdtZW50J3MgZXhwb3J0ICovCisJc2ltcGxlX3N0cmluZ19saXN0X2FwcGVuZCgm cHJpdmF0ZUluZm8tPmV4cG9ydGVkU2VnTGlzdCwgZm5hbWUpOworCXBmcmVlKGZwYXRoKTsKKwor CXJldHVybiBmaWxlOworfQorCisvKgorICogR2V0IG5leHQgV0FMIHNlZ21lbnQgdGhhdCBuZWVk cyB0byBiZSByZXRyaWV2ZWQgZnJvbSB0aGUgYXJjaGl2ZS4KKyAqCisgKiBUaGUgZnVuY3Rpb24g Y2hlY2tzIGZvciB0aGUgcHJlc2VuY2Ugb2YgYSBwcmV2aW91c2x5IHJlYWQgYW5kIGV4dHJhY3Rl ZCBXQUwKKyAqIHNlZ21lbnQgaW4gdGhlIHRlbXBvcmFyeSBzdG9yYWdlLiBJZiBhIHRlbXBvcmFy eSBmaWxlIGlzIGZvdW5kIGZvciB0aGF0CisgKiBzZWdtZW50LCBpdCBpbmRpY2F0ZXMgdGhlIHNl Z21lbnQgaGFzIGFscmVhZHkgYmVlbiBzdWNjZXNzZnVsbHkgcmV0cmlldmVkCisgKiBmcm9tIHRo ZSBhcmNoaXZlLiBJbiB0aGlzIGNhc2UsIHRoZSBmdW5jdGlvbiBpbmNyZW1lbnRzIHRoZSBzZWdt ZW50IG51bWJlcgorICogYW5kIHJlcGVhdHMgdGhlIGNoZWNrLiBUaGlzIHByb2Nlc3MgY29udGlu dWVzIHVudGlsIGEgc2VnbWVudCB0aGF0IGhhcyBub3QKKyAqIHlldCBiZWVuIHJldHJpZXZlZCBp cyBmb3VuZCwgYXQgd2hpY2ggcG9pbnQgdGhlIGZ1bmN0aW9uIHJldHVybnMgaXRzIG51bWJlci4K KyAqLworc3RhdGljIFhMb2dTZWdObworbWVtYmVyX25leHRfc2Vnbm8oWExvZ1NlZ05vIGN1clNl Z05vLCBUaW1lTGluZUlEIHRpbWVsaW5lLAorCQkJCSAgWExvZ0R1bXBQcml2YXRlICpwcml2YXRl SW5mbykKK3sKKwlYTG9nU2VnTm8JbmV4dFNlZ05vID0gY3VyU2VnTm8gKyAxOworCWJvb2wJCWV4 aXN0czsKKworCS8qCisJICogSWYgd2UgZmluZCBhIGZpbGUgdGhhdCB3YXMgcHJldmlvdXNseSB3 cml0dGVuIHRvIHRoZSB0ZW1wb3Jhcnkgc3BhY2UsCisJICogaXQgaW5kaWNhdGVzIHRoYXQgdGhl IGNvcnJlc3BvbmRpbmcgV0FMIHNlZ21lbnQgcmVxdWVzdCBoYXMgYWxyZWFkeQorCSAqIGJlZW4g ZnVsZmlsbGVkLiBJbiB0aGF0IGNhc2UsIHdlIGluY3JlbWVudCB0aGUgbmV4dFNlZ05vIGNvdW50 ZXIgYW5kCisJICogY2hlY2sgYWdhaW4gd2hldGhlciB0aGF0IHNlZ21lbnQgbnVtYmVyIGFnYWlu LiBpZiBmb3VuZCBhYm92ZSBzdGVwcworCSAqIHdpbGwgYmUgcmV0dXJuIGlmIG5vdCB0aGVuIHdl IHJldHVybiB0aGF0IHNlZ21lbnQgbnVtYmVyIHdoaWNoIHdvdWxkIGJlCisJICogbmVlZGVkIGZy b20gdGhlIGFyY2hpdmUuCisJICovCisJZG8KKwl7CisJCWNoYXIJCWZuYW1lW01BWEZOQU1FTEVO XTsKKworCQlYTG9nRmlsZU5hbWUoZm5hbWUsIHRpbWVsaW5lLCBuZXh0U2VnTm8sIFdhbFNlZ1N6 KTsKKworCQkvKgorCQkgKiBJZiB0aGUgV0FMIHNlZ21lbnQgaGFzIGFscmVhZHkgYmVlbiBleHBv cnRlZCwgaW5jcmVtZW50IHRoZSBjb3VudGVyCisJCSAqIGFuZCBjaGVjayBmb3IgdGhlIG5leHQg c2VnbWVudC4KKwkJICovCisJCWV4aXN0cyA9IGZhbHNlOworCQlpZiAoc2ltcGxlX3N0cmluZ19s aXN0X21lbWJlcigmcHJpdmF0ZUluZm8tPmV4cG9ydGVkU2VnTGlzdCwgZm5hbWUpKQorCQl7CisJ CQluZXh0U2VnTm8gKz0gMTsKKwkJCWV4aXN0cyA9IHRydWU7CisJCX0KKwl9IHdoaWxlIChleGlz dHMpOworCisJcmV0dXJuIG5leHRTZWdObzsKK30KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2Fs ZHVtcC9wZ193YWxkdW1wLmMgYi9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jCmluZGV4 IDY0ZjNhNjViNzM1Li5kNDU2YWRjZTU5YyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ193YWxkdW1w L3BnX3dhbGR1bXAuYworKysgYi9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jCkBAIC0z OTMsMTMgKzM5MywxNCBAQCBzZXR1cF9hc3RyZWFtZXIoWExvZ0R1bXBQcml2YXRlICpwcml2YXRl LCBwZ19jb21wcmVzc19hbGdvcml0aG0gY29tcHJlc3Npb24sCiB9CiAKIC8qCi0gKiBJbml0aWFs aXplcyB0aGUgYXJjaGl2ZSByZWFkZXIgZm9yIGEgdGFyIGZpbGUuCisgKiBJbml0aWFsaXplcyB0 aGUgdGFyIGFyY2hpdmUgcmVhZGVyIGFuZCBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgZm9yIFdBTCBm aWxlcy4KICAqLwogc3RhdGljIHZvaWQKIGluaXRfdGFyX2FyY2hpdmVfcmVhZGVyKFhMb2dEdW1w UHJpdmF0ZSAqcHJpdmF0ZSwgY2hhciAqd2FsZGlyLAogCQkJCQkJcGdfY29tcHJlc3NfYWxnb3Jp dGhtIGNvbXByZXNzaW9uKQogewogCWludAkJCWZkOworCWNoYXIJICAgKnRtcGRpcjsKIAogCS8q IE5vdywgdGhlIHRhciBhcmNoaXZlIGFuZCBzdG9yZSBpdHMgZmlsZSBkZXNjcmlwdG9yICovCiAJ ZmQgPSBvcGVuX2ZpbGVfaW5fZGlyZWN0b3J5KHdhbGRpciwgcHJpdmF0ZS0+YXJjaGl2ZV9uYW1l KTsKQEAgLTQxMSw2ICs0MTIsMTUgQEAgaW5pdF90YXJfYXJjaGl2ZV9yZWFkZXIoWExvZ0R1bXBQ cml2YXRlICpwcml2YXRlLCBjaGFyICp3YWxkaXIsCiAKIAkvKiBTZXR1cCB0YXIgYXJjaGl2ZSBy ZWFkaW5nIGZhY2lsaXR5ICovCiAJc2V0dXBfYXN0cmVhbWVyKHByaXZhdGUsIGNvbXByZXNzaW9u LCBwcml2YXRlLT5zdGFydHB0ciwgcHJpdmF0ZS0+ZW5kcHRyKTsKKworCS8qIFRlbXBvcmFyeSBz cGFjZSBmb3Igd3JpdGluZyBXQUwgc2VnbWVudHMgKi8KKwlpZiAoZ2V0ZW52KCJUTVBESVIiKSkK KwkJdG1wZGlyID0gcHN0cmR1cChnZXRlbnYoIlRNUERJUiIpKTsKKwllbHNlCisJCXRtcGRpciA9 IHdhbGRpciAhPSBOVUxMID8gcHN0cmR1cCh3YWxkaXIpIDogcHN0cmR1cCgiLiIpOworCWNhbm9u aWNhbGl6ZV9wYXRoKHRtcGRpcik7CisKKwlwcml2YXRlLT50bXBkaXIgPSB0bXBkaXI7CiB9CiAK IC8qCkBAIC00MTksNiArNDI5LDggQEAgaW5pdF90YXJfYXJjaGl2ZV9yZWFkZXIoWExvZ0R1bXBQ cml2YXRlICpwcml2YXRlLCBjaGFyICp3YWxkaXIsCiBzdGF0aWMgdm9pZAogZnJlZV90YXJfYXJj aGl2ZV9yZWFkZXIoWExvZ0R1bXBQcml2YXRlICpwcml2YXRlKQogeworCVNpbXBsZVN0cmluZ0xp c3RDZWxsICpjZWxsOworCiAJLyoKIAkgKiBOQjogTm9ybWFsbHksIGFzdHJlYW1lcl9maW5hbGl6 ZSgpIGlzIGNhbGxlZCBiZWZvcmUgYXN0cmVhbWVyX2ZyZWUoKSB0bwogCSAqIGZsdXNoIGFueSBy ZW1haW5pbmcgYnVmZmVyZWQgZGF0YSBvciB0byBlbnN1cmUgdGhlIGVuZCBvZiB0aGUgdGFyCkBA IC00MzIsNiArNDQ0LDE1IEBAIGZyZWVfdGFyX2FyY2hpdmVfcmVhZGVyKFhMb2dEdW1wUHJpdmF0 ZSAqcHJpdmF0ZSkKIAlpZiAoY2xvc2UocHJpdmF0ZS0+YXJjaGl2ZV9mZCkgIT0gMCkKIAkJcGdf bG9nX2Vycm9yKCJjb3VsZCBub3QgY2xvc2UgZmlsZSBcIiVzXCI6ICVtIiwKIAkJCQkJIHByaXZh dGUtPmFyY2hpdmVfbmFtZSk7CisKKwkvKiBDbGVhciBvdXQgYW55IGV4aXN0aW5nIHRlbXBvcmFy eSBmaWxlcyAqLworCWZvciAoY2VsbCA9IHByaXZhdGUtPmV4cG9ydGVkU2VnTGlzdC5oZWFkOyBj ZWxsOyBjZWxsID0gY2VsbC0+bmV4dCkKKwl7CisJCWNoYXIJICAgKmZwYXRoID0gZ2V0X3RtcF93 YWxfZmlsZV9wYXRoKHByaXZhdGUsIGNlbGwtPnZhbCk7CisKKwkJdW5saW5rKGZwYXRoKTsKKwkJ cGZyZWUoZnBhdGgpOworCX0KIH0KIAogLyoKQEAgLTU1OSw3ICs1ODAsNyBAQCBXQUxEdW1wUmVh ZFBhZ2UoWExvZ1JlYWRlclN0YXRlICpzdGF0ZSwgWExvZ1JlY1B0ciB0YXJnZXRQYWdlUHRyLCBp bnQgcmVxTGVuLAogCQkJCVhMb2dSZWNQdHIgdGFyZ2V0UHRyLCBjaGFyICpyZWFkQnVmZikKIHsK IAlYTG9nRHVtcFByaXZhdGUgKnByaXZhdGUgPSBzdGF0ZS0+cHJpdmF0ZV9kYXRhOwotCWludAkJ CWNvdW50ID0gcmVxdWlyZWRfcmVhZF9sZW4ocHJpdmF0ZSwgdGFyZ2V0UHRyLCByZXFMZW4pOwor CWludAkJCWNvdW50ID0gcmVxdWlyZWRfcmVhZF9sZW4ocHJpdmF0ZSwgdGFyZ2V0UGFnZVB0ciwg cmVxTGVuKTsKIAlXQUxSZWFkRXJyb3IgZXJyaW5mbzsKIAogCWlmIChwcml2YXRlLT5lbmRwdHJf cmVhY2hlZCkKQEAgLTYxOCwxMiArNjM5LDYwIEBAIFRhcldBTER1bXBSZWFkUGFnZShYTG9nUmVh ZGVyU3RhdGUgKnN0YXRlLCBYTG9nUmVjUHRyIHRhcmdldFBhZ2VQdHIsIGludCByZXFMZW4sCiAJ CQkJICAgWExvZ1JlY1B0ciB0YXJnZXRQdHIsIGNoYXIgKnJlYWRCdWZmKQogewogCVhMb2dEdW1w UHJpdmF0ZSAqcHJpdmF0ZSA9IHN0YXRlLT5wcml2YXRlX2RhdGE7Ci0JaW50CQkJY291bnQgPSBy ZXF1aXJlZF9yZWFkX2xlbihwcml2YXRlLCB0YXJnZXRQdHIsIHJlcUxlbik7CisJaW50CQkJY291 bnQgPSByZXF1aXJlZF9yZWFkX2xlbihwcml2YXRlLCB0YXJnZXRQYWdlUHRyLCByZXFMZW4pOwor CVhMb2dTZWdObwluZXh0U2VnTm87CiAKIAlpZiAocHJpdmF0ZS0+ZW5kcHRyX3JlYWNoZWQpCiAJ CXJldHVybiAtMTsKIAotCS8qIFJlYWQgdGhlIFdBTCBwYWdlIGZyb20gdGhlIGFyY2hpdmUgc3Ry ZWFtZXIgKi8KKwkvKgorCSAqIElmIHRoZSB0YXJnZXQgcGFnZSBpcyBpbiBhIGRpZmZlcmVudCBz ZWdtZW50LCBmaXJzdCBjaGVjayBmb3IgdGhlIFdBTAorCSAqIHNlZ21lbnQncyBwaHlzaWNhbCBl eGlzdGVuY2UgaW4gdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkuCisJICoKKwkgKiBYWFg6IFRpbWVs aW5lIGNoYW5nZSBpcyBub3QgaGFuZGxlZC4KKwkgKi8KKwluZXh0U2VnTm8gPSBzdGF0ZS0+c2Vn LndzX3NlZ25vOworCWlmICghWExCeXRlSW5TZWcodGFyZ2V0UGFnZVB0ciwgbmV4dFNlZ05vLCBX YWxTZWdTeikpCisJeworCQljaGFyCQlmbmFtZVtNQVhQR1BBVEhdOworCQljaGFyCSAgICpmcGF0 aDsKKworCQlpZiAoc3RhdGUtPnNlZy53c19maWxlID49IDApCisJCXsKKwkJCWNsb3NlKHN0YXRl LT5zZWcud3NfZmlsZSk7CisJCQlzdGF0ZS0+c2VnLndzX2ZpbGUgPSAtMTsKKworCQkJLyogUmVt b3ZlIHRoaXMgZmlsZSwgYXMgaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4gKi8KKwkJCVhMb2dGaWxl TmFtZShmbmFtZSwgc3RhdGUtPnNlZy53c190bGksIG5leHRTZWdObywgV2FsU2VnU3opOworCQkJ ZnBhdGggPSBnZXRfdG1wX3dhbF9maWxlX3BhdGgocHJpdmF0ZSwgZm5hbWUpOworCQkJdW5saW5r KGZwYXRoKTsKKwkJCXBmcmVlKGZwYXRoKTsKKwkJfQorCisJCVhMQnl0ZVRvU2VnKHRhcmdldFBh Z2VQdHIsIG5leHRTZWdObywgV2FsU2VnU3opOworCQlzdGF0ZS0+c2VnLndzX3RsaSA9IHByaXZh dGUtPnRpbWVsaW5lOworCQlzdGF0ZS0+c2VnLndzX3NlZ25vID0gbmV4dFNlZ05vOworCisJCS8q CisJCSAqIElmIHRoZSBuZXh0IHNlZ21lbnQgZXhpc3RzLCBvcGVuIGl0IGFuZCBjb250aW51ZSBy ZWFkaW5nIGZyb20gdGhlcmUKKwkJICovCisJCVhMb2dGaWxlTmFtZShmbmFtZSwgcHJpdmF0ZS0+ dGltZWxpbmUsIG5leHRTZWdObywgV2FsU2VnU3opOworCQlpZiAoc2ltcGxlX3N0cmluZ19saXN0 X21lbWJlcigmcHJpdmF0ZS0+ZXhwb3J0ZWRTZWdMaXN0LCBmbmFtZSkpCisJCXsKKwkJCWZwYXRo ID0gZ2V0X3RtcF93YWxfZmlsZV9wYXRoKHByaXZhdGUsIGZuYW1lKTsKKwkJCXN0YXRlLT5zZWcu d3NfZmlsZSA9IG9wZW4oZnBhdGgsIE9fUkRPTkxZIHwgUEdfQklOQVJZLCAwKTsKKworCQkJaWYg KHN0YXRlLT5zZWcud3NfZmlsZSA8IDApCisJCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGZp bGUgXCIlc1wiOiAlbSIsIGZwYXRoKTsKKwkJfQorCX0KKworCS8qIENvbnRpbnVlIHJlYWRpbmcg ZnJvbSB0aGUgb3BlbiBXQUwgc2VnbWVudCwgaWYgYW55ICovCisJaWYgKHN0YXRlLT5zZWcud3Nf ZmlsZSA+PSAwKQorCQlyZXR1cm4gV0FMRHVtcFJlYWRQYWdlKHN0YXRlLCB0YXJnZXRQYWdlUHRy LCByZXFMZW4sIHRhcmdldFB0ciwKKwkJCQkJCQkgICByZWFkQnVmZik7CisKKwkvKiBPdGhlcndp c2UsIHJlYWQgdGhlIFdBTCBwYWdlIGZyb20gdGhlIGFyY2hpdmUgc3RyZWFtZXIgKi8KIAlyZXR1 cm4gYXN0cmVhbWVyX3dhbF9yZWFkKHJlYWRCdWZmLCB0YXJnZXRQYWdlUHRyLCBjb3VudCwgcHJp dmF0ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmgg Yi9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5oCmluZGV4IGI1ZDQ0MDUwMGRlLi42MTRl Njc5Y2I5NiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaAorKysg Yi9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5oCkBAIC0xMyw4ICsxMywxMSBAQAogCiAj aW5jbHVkZSAiYWNjZXNzL3hsb2dkZWZzLmgiCiAjaW5jbHVkZSAiZmVfdXRpbHMvYXN0cmVhbWVy LmgiCisjaW5jbHVkZSAiZmVfdXRpbHMvc2ltcGxlX2xpc3QuaCIKICNpbmNsdWRlICJsaWIvc3Ry aW5naW5mby5oIgogCisjZGVmaW5lIFRFTVBfRklMRV9FWFQJIndhbGR1bXAudG1wIgorCiBleHRl cm4gaW50CVdhbFNlZ1N6OwogCiAvKiBDb250YWlucyB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9u IHRvIGRyaXZlIFdBTCBkZWNvZGluZyAqLwpAQCAtMzEsMTEgKzM0LDMwIEBAIHR5cGVkZWYgc3Ry dWN0IFhMb2dEdW1wUHJpdmF0ZQogCiAJYXN0cmVhbWVyICAqYXJjaGl2ZV9zdHJlYW1lcjsKIAlT dHJpbmdJbmZvCWFyY2hpdmVfc3RyZWFtZXJfYnVmOwkvKiBCdWZmZXIgZm9yIHJlY2VpdmluZyBX QUwgZGF0YSAqLwotCVhMb2dSZWNQdHIJYXJjaGl2ZV9zdHJlYW1lcl9yZWFkX3B0cjsgLyogUG9w dWxhdGUgdGhlIGJ1ZmZlciB3aXRoIHJlY29yZHMKLQkJCQkJCQkJCQkJICB1bnRpbCB0aGlzIHJl Y29yZCBwb2ludGVyICovCisJWExvZ1JlY1B0cglhcmNoaXZlX3N0cmVhbWVyX3JlYWRfcHRyOwkv KiBQb3B1bGF0ZSB0aGUgYnVmZmVyIHdpdGgKKwkJCQkJCQkJCQkJICogcmVjb3JkcyB1bnRpbCB0 aGlzIHJlY29yZAorCQkJCQkJCQkJCQkgKiBwb2ludGVyICovCisJY2hhcgkgICAqdG1wZGlyOwkJ CS8qIFRlbXBvcmFyeSBkaXJlY290cnkgdG8gZXhwb3J0IGZpbGUgKi8KKwlTaW1wbGVTdHJpbmdM aXN0IGV4cG9ydGVkU2VnTGlzdDsJLyogVGVtcG9yYXJ5IGV4cG9ydGVkIFdBTCBmaWxlIGxpc3Qg Ki8KIH0gWExvZ0R1bXBQcml2YXRlOwogCiAKKy8qCisgKiBHZW5lcmF0ZSB0aGUgdGVtcG9yYXJ5 IFdBTCBmaWxlIHBhdGguCisgKgorICogTm90ZSB0aGF0IHRoZSBjYWxsZXIgaXMgcmVzcG9uc2li bGUgdG8gcGZyZWUgaXQuCisgKi8KK3N0YXRpYyBpbmxpbmUgY2hhciAqCitnZXRfdG1wX3dhbF9m aWxlX3BhdGgoWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbywgY29uc3QgY2hhciAqZm5hbWUp Cit7CisJY2hhcgkgICAqZnBhdGggPSAoY2hhciAqKSBwYWxsb2MoTUFYUEdQQVRIKTsKKworCXNu cHJpbnRmKGZwYXRoLCBNQVhQR1BBVEgsICIlcy8lcy4lcyIsIHByaXZhdGVJbmZvLT50bXBkaXIs IGZuYW1lLAorCQkJIFRFTVBfRklMRV9FWFQpOworCisJcmV0dXJuIGZwYXRoOworfQorCiBleHRl cm4gYXN0cmVhbWVyICphc3RyZWFtZXJfd2FsZHVtcF9jb250ZW50X25ldyhhc3RyZWFtZXIgKm5l eHQsCiAJCQkJCQkJCQkJCQlYTG9nUmVjUHRyIHN0YXJ0cHRyLAogCQkJCQkJCQkJCQkJWExvZ1Jl Y1B0ciBlbmRwdHIsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMu cGwgYi9zcmMvYmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMucGwKaW5kZXggNDQzMTI2YTljZTYu LmQ1ZmExZjZkMjhkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMu cGwKKysrIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3QvMDAxX2Jhc2ljLnBsCkBAIC03LDYgKzcsNyBA QCB1c2UgQ3dkOwogdXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7CiB1c2UgUG9zdGdyZVNR TDo6VGVzdDo6VXRpbHM7CiB1c2UgVGVzdDo6TW9yZTsKK3VzZSBMaXN0OjpVdGlsIHF3KHNodWZm bGUpOwogCiBteSAkdGFyID0gJEVOVntUQVJ9OwogCkBAIC0yNzIsNyArMjczLDcgQEAgc3ViIGdl bmVyYXRlX2FyY2hpdmUKIAl9CiAJY2xvc2VkaXIgJGRoOwogCi0JQGZpbGVzID0gc29ydCBAZmls ZXM7CisJQGZpbGVzID0gc2h1ZmZsZSBAZmlsZXM7CiAKIAkjIG1vdmUgaW50byB0aGUgV0FMIGRp cmVjdG9yeSBiZWZvcmUgYXJjaGl2aW5nIGZpbGVzCiAJbXkgJGN3ZCA9IGdldGN3ZDsKLS0gCjIu NDcuMQoK --000000000000913393063d2fb4a6 Content-Type: application/x-patch; name="v2-0007-pg_verifybackup-Delay-default-WAL-directory-prepa.patch" Content-Disposition: attachment; filename="v2-0007-pg_verifybackup-Delay-default-WAL-directory-prepa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mer3dq416 RnJvbSA2NGRiZGZhYTU3NTc0OWI3NmViZGQzZmQyMzVhODE4NmI2ZWIxOWZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgMTYgSnVsIDIwMjUgMTQ6NDc6NDMgKzA1MzAKU3ViamVjdDogW1BBVENIIHYyIDcvOV0gcGdf dmVyaWZ5YmFja3VwOiBEZWxheSBkZWZhdWx0IFdBTCBkaXJlY3RvcnkKIHByZXBhcmF0aW9uLgoK V2UgYXJlIG5vdCBzdXJlIHdoZXRoZXIgdG8gcGFyc2UgV0FMIGZyb20gYSBkaXJlY3Rvcnkgb3Ig YW4gYXJjaGl2ZQp1bnRpbCB0aGUgYmFja3VwIGZvcm1hdCBpcyBrbm93bi4gVGhlcmVmb3JlLCB3 ZSBkZWxheSBwcmVwYXJpbmcgdGhlCmRlZmF1bHQgV0FMIGRpcmVjdG9yeSB1bnRpbCB0aGUgcG9p bnQgb2YgcGFyc2luZy4gVGhpcyBkZWxheSBpcwpoYXJtbGVzcywgYXMgdGhlIFdBTCBkaXJlY3Rv cnkgaXMgbm90IHVzZWQgZWxzZXdoZXJlLgotLS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Bn X3ZlcmlmeWJhY2t1cC5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1 cC9wZ192ZXJpZnliYWNrdXAuYyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJh Y2t1cC5jCmluZGV4IDVlNmMxM2JiOTIxLi4zMWViYzE1ODFmYiAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKKysrIGIvc3JjL2Jpbi9wZ192ZXJp ZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKQEAgLTI4NSwxMCArMjg1LDYgQEAgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAJCW1hbmlmZXN0X3BhdGggPSBwc3ByaW50ZigiJXMvYmFja3Vw X21hbmlmZXN0IiwKIAkJCQkJCQkJIGNvbnRleHQuYmFja3VwX2RpcmVjdG9yeSk7CiAKLQkvKiBC eSBkZWZhdWx0LCBsb29rIGZvciB0aGUgV0FMIGluIHRoZSBiYWNrdXAgZGlyZWN0b3J5LCB0b28u ICovCi0JaWYgKHdhbF9kaXJlY3RvcnkgPT0gTlVMTCkKLQkJd2FsX2RpcmVjdG9yeSA9IHBzcHJp bnRmKCIlcy9wZ193YWwiLCBjb250ZXh0LmJhY2t1cF9kaXJlY3RvcnkpOwotCiAJLyoKIAkgKiBU cnkgdG8gcmVhZCB0aGUgbWFuaWZlc3QuIFdlIHRyZWF0IGFueSBlcnJvcnMgZW5jb3VudGVyZWQg d2hpbGUgcGFyc2luZwogCSAqIHRoZSBtYW5pZmVzdCBhcyBmYXRhbDsgdGhlcmUgZG9lc24ndCBz ZWVtIHRvIGJlIG11Y2ggcG9pbnQgaW4gdHJ5aW5nIHRvCkBAIC0zNjgsNiArMzY0LDEwIEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCWlmIChjb250ZXh0LmZvcm1hdCA9PSAncCcgJiYg IWNvbnRleHQuc2tpcF9jaGVja3N1bXMpCiAJCXZlcmlmeV9iYWNrdXBfY2hlY2tzdW1zKCZjb250 ZXh0KTsKIAorCS8qIEJ5IGRlZmF1bHQsIGxvb2sgZm9yIHRoZSBXQUwgaW4gdGhlIGJhY2t1cCBk aXJlY3RvcnksIHRvby4gKi8KKwlpZiAod2FsX2RpcmVjdG9yeSA9PSBOVUxMKQorCQl3YWxfZGly ZWN0b3J5ID0gcHNwcmludGYoIiVzL3BnX3dhbCIsIGNvbnRleHQuYmFja3VwX2RpcmVjdG9yeSk7 CisKIAkvKgogCSAqIFRyeSB0byBwYXJzZSB0aGUgcmVxdWlyZWQgcmFuZ2VzIG9mIFdBTCByZWNv cmRzLCB1bmxlc3Mgd2Ugd2VyZSB0b2xkCiAJICogbm90IHRvIGRvIHNvLgotLSAKMi40Ny4xCgo= --000000000000913393063d2fb4a6 Content-Type: application/x-patch; name="v2-0008-pg_verifybackup-Rename-the-wal-directory-switch-t.patch" Content-Disposition: attachment; filename="v2-0008-pg_verifybackup-Rename-the-wal-directory-switch-t.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mer3e2d37 RnJvbSA0OWQ3NGRjYTYzZTE1YzMwMGE4Y2NmMzE3ZDE3MDAzZjZmOTQxMmU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMjQgSnVsIDIwMjUgMTY6Mzc6NDMgKzA1MzAKU3ViamVjdDogW1BBVENIIHYyIDgvOV0gcGdf dmVyaWZ5YmFja3VwOiBSZW5hbWUgdGhlIHdhbC1kaXJlY3Rvcnkgc3dpdGNoIHRvCiB3YWwtcGF0 aAoKRnV0dXJlIHBhdGNoZXMgdG8gcGdfd2FsZHVtcCB3aWxsIGVuYWJsZSBpdCB0byBkZWNvZGUg V0FMIGRpcmVjdGx5CmZyb20gdGFyIGZpbGVzLiBUaGlzIG1lYW5zIHlvdSdsbCBiZSBhYmxlIHRv IHNwZWNpZnkgYSB0YXIgYXJjaGl2ZQpwYXRoIGluc3RlYWQgb2YgYSB0cmFkaXRpb25hbCBXQUwg ZGlyZWN0b3J5LgoKVG8ga2VlcCB0aGluZ3MgY29uc2lzdGVudCBhbmQgbW9yZSB2ZXJzYXRpbGUs IHdlIHNob3VsZCBhbHNvCmdlbmVyYWxpemUgdGhlIGlucHV0IHN3aXRjaCBmb3IgcGdfdmVyaWZ5 YmFja3VwLiBJdCBzaG91bGQgYWNjZXB0CmVpdGhlciBhIGRpcmVjdG9yeSBvciBhIHRhciBmaWxl IHBhdGggdGhhdCBjb250YWlucyBXQUxzLiBUaGlzIGNoYW5nZQp3aWxsIGFsc28gYWxpZ25pbmcg aXQgd2l0aCB0aGUgZXhpc3RpbmcgbWFuaWZlc3QtcGF0aCBzd2l0Y2ggbmFtaW5nLgotLS0KIGRv Yy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3VwLnNnbWwgICAgIHwgIDIgKy0KIHNyYy9iaW4v cGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5jIHwgMjIgKysrKysrKysrKystLS0tLS0t LS0tLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZGUucG8gICAgICAgICAgfCAgNCArKy0t CiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9lbC5wbyAgICAgICAgICB8ICA0ICsrLS0KIHNy Yy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2VzLnBvICAgICAgICAgIHwgIDQgKystLQogc3JjL2Jp bi9wZ192ZXJpZnliYWNrdXAvcG8vZnIucG8gICAgICAgICAgfCAgNCArKy0tCiBzcmMvYmluL3Bn X3ZlcmlmeWJhY2t1cC9wby9pdC5wbyAgICAgICAgICB8ICA0ICsrLS0KIHNyYy9iaW4vcGdfdmVy aWZ5YmFja3VwL3BvL2phLnBvICAgICAgICAgIHwgIDQgKystLQogc3JjL2Jpbi9wZ192ZXJpZnli YWNrdXAvcG8va2EucG8gICAgICAgICAgfCAgNCArKy0tCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1 cC9wby9rby5wbyAgICAgICAgICB8ICA0ICsrLS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Bv L3J1LnBvICAgICAgICAgIHwgIDQgKystLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vc3Yu cG8gICAgICAgICAgfCAgNCArKy0tCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby91ay5wbyAg ICAgICAgICB8ICA0ICsrLS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL3poX0NOLnBvICAg ICAgIHwgIDQgKystLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vemhfVFcucG8gICAgICAg fCAgNCArKy0tCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwN193YWwucGwgICAgICB8ICA0 ICsrLS0KIDE2IGZpbGVzIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3VwLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL3BnX3ZlcmlmeWJhY2t1cC5zZ21sCmluZGV4IDYxYzEyOTc1ZTRhLi5l OWI4YmZkNTFiMSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wZ192ZXJpZnliYWNrdXAu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3ZlcmlmeWJhY2t1cC5zZ21sCkBAIC0yNjEs NyArMjYxLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICAgICAgPHZhcmxpc3RlbnRy eT4KICAgICAgIDx0ZXJtPjxvcHRpb24+LXcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnBhdGg8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KLSAgICAgIDx0ZXJtPjxvcHRpb24+ LS13YWwtZGlyZWN0b3J5PTxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXRoPC9yZXBs YWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgICA8dGVybT48b3B0aW9uPi0td2FsLXBhdGg9 PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdGg8L3JlcGxhY2VhYmxlPjwvb3B0aW9u PjwvdGVybT4KICAgICAgIDxsaXN0aXRlbT4KICAgICAgICA8cGFyYT4KICAgICAgICAgVHJ5IHRv IHBhcnNlIFdBTCBmaWxlcyBzdG9yZWQgaW4gdGhlIHNwZWNpZmllZCBkaXJlY3RvcnksIHJhdGhl ciB0aGFuCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNr dXAuYyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5jCmluZGV4IDMx ZWJjMTU4MWZiLi4xZWU0MDAxOTlkYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNr dXAvcGdfdmVyaWZ5YmFja3VwLmMKKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVy aWZ5YmFja3VwLmMKQEAgLTkzLDcgKzkzLDcgQEAgc3RhdGljIHZvaWQgdmVyaWZ5X2ZpbGVfY2hl Y2tzdW0odmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwKIAkJCQkJCQkJIHVpbnQ4ICpidWZmZXIp Owogc3RhdGljIHZvaWQgcGFyc2VfcmVxdWlyZWRfd2FsKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRl eHQsCiAJCQkJCQkJICAgY2hhciAqcGdfd2FsZHVtcF9wYXRoLAotCQkJCQkJCSAgIGNoYXIgKndh bF9kaXJlY3RvcnkpOworCQkJCQkJCSAgIGNoYXIgKndhbF9wYXRoKTsKIHN0YXRpYyBhc3RyZWFt ZXIgKmNyZWF0ZV9hcmNoaXZlX3ZlcmlmaWVyKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsCiAJ CQkJCQkJCQkJICBjaGFyICphcmNoaXZlX25hbWUsCiAJCQkJCQkJCQkJICBPaWQgdGJsc3BjX29p ZCwKQEAgLTEyNiw3ICsxMjYsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJeyJw cm9ncmVzcyIsIG5vX2FyZ3VtZW50LCBOVUxMLCAnUCd9LAogCQl7InF1aWV0Iiwgbm9fYXJndW1l bnQsIE5VTEwsICdxJ30sCiAJCXsic2tpcC1jaGVja3N1bXMiLCBub19hcmd1bWVudCwgTlVMTCwg J3MnfSwKLQkJeyJ3YWwtZGlyZWN0b3J5IiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICd3J30s CisJCXsid2FsLXBhdGgiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ3cnfSwKIAkJe05VTEws IDAsIE5VTEwsIDB9CiAJfTsKIApAQCAtMTM1LDcgKzEzNSw3IEBAIG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogCWNoYXIJICAgKm1hbmlmZXN0X3BhdGggPSBOVUxMOwogCWJvb2wJCW5vX3Bh cnNlX3dhbCA9IGZhbHNlOwogCWJvb2wJCXF1aWV0ID0gZmFsc2U7Ci0JY2hhcgkgICAqd2FsX2Rp cmVjdG9yeSA9IE5VTEw7CisJY2hhcgkgICAqd2FsX3BhdGggPSBOVUxMOwogCWNoYXIJICAgKnBn X3dhbGR1bXBfcGF0aCA9IE5VTEw7CiAJRElSCQkgICAqZGlyOwogCkBAIC0yMjEsOCArMjIxLDgg QEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQkJY29udGV4dC5za2lwX2NoZWNrc3Vt cyA9IHRydWU7CiAJCQkJYnJlYWs7CiAJCQljYXNlICd3JzoKLQkJCQl3YWxfZGlyZWN0b3J5ID0g cHN0cmR1cChvcHRhcmcpOwotCQkJCWNhbm9uaWNhbGl6ZV9wYXRoKHdhbF9kaXJlY3RvcnkpOwor CQkJCXdhbF9wYXRoID0gcHN0cmR1cChvcHRhcmcpOworCQkJCWNhbm9uaWNhbGl6ZV9wYXRoKHdh bF9wYXRoKTsKIAkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJLyogZ2V0b3B0X2xvbmcgYWxy ZWFkeSBlbWl0dGVkIGEgY29tcGxhaW50ICovCkBAIC0zNjUsMTUgKzM2NSwxNSBAQCBtYWluKGlu dCBhcmdjLCBjaGFyICoqYXJndikKIAkJdmVyaWZ5X2JhY2t1cF9jaGVja3N1bXMoJmNvbnRleHQp OwogCiAJLyogQnkgZGVmYXVsdCwgbG9vayBmb3IgdGhlIFdBTCBpbiB0aGUgYmFja3VwIGRpcmVj dG9yeSwgdG9vLiAqLwotCWlmICh3YWxfZGlyZWN0b3J5ID09IE5VTEwpCi0JCXdhbF9kaXJlY3Rv cnkgPSBwc3ByaW50ZigiJXMvcGdfd2FsIiwgY29udGV4dC5iYWNrdXBfZGlyZWN0b3J5KTsKKwlp ZiAod2FsX3BhdGggPT0gTlVMTCkKKwkJd2FsX3BhdGggPSBwc3ByaW50ZigiJXMvcGdfd2FsIiwg Y29udGV4dC5iYWNrdXBfZGlyZWN0b3J5KTsKIAogCS8qCiAJICogVHJ5IHRvIHBhcnNlIHRoZSBy ZXF1aXJlZCByYW5nZXMgb2YgV0FMIHJlY29yZHMsIHVubGVzcyB3ZSB3ZXJlIHRvbGQKIAkgKiBu b3QgdG8gZG8gc28uCiAJICovCiAJaWYgKCFub19wYXJzZV93YWwpCi0JCXBhcnNlX3JlcXVpcmVk X3dhbCgmY29udGV4dCwgcGdfd2FsZHVtcF9wYXRoLCB3YWxfZGlyZWN0b3J5KTsKKwkJcGFyc2Vf cmVxdWlyZWRfd2FsKCZjb250ZXh0LCBwZ193YWxkdW1wX3BhdGgsIHdhbF9wYXRoKTsKIAogCS8q CiAJICogSWYgZXZlcnl0aGluZyBsb29rcyBPSywgdGVsbCB0aGUgdXNlciB0aGlzLCB1bmxlc3Mg d2Ugd2VyZSBhc2tlZCB0bwpAQCAtMTE5OCw3ICsxMTk4LDcgQEAgdmVyaWZ5X2ZpbGVfY2hlY2tz dW0odmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgbWFuaWZlc3RfZmlsZSAqbSwKICAqLwogc3Rh dGljIHZvaWQKIHBhcnNlX3JlcXVpcmVkX3dhbCh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBj aGFyICpwZ193YWxkdW1wX3BhdGgsCi0JCQkJICAgY2hhciAqd2FsX2RpcmVjdG9yeSkKKwkJCQkg ICBjaGFyICp3YWxfcGF0aCkKIHsKIAltYW5pZmVzdF9kYXRhICptYW5pZmVzdCA9IGNvbnRleHQt Pm1hbmlmZXN0OwogCW1hbmlmZXN0X3dhbF9yYW5nZSAqdGhpc193YWxfcmFuZ2UgPSBtYW5pZmVz dC0+Zmlyc3Rfd2FsX3JhbmdlOwpAQCAtMTIwOCw3ICsxMjA4LDcgQEAgcGFyc2VfcmVxdWlyZWRf d2FsKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsIGNoYXIgKnBnX3dhbGR1bXBfcGF0aCwKIAkJ Y2hhcgkgICAqcGdfd2FsZHVtcF9jbWQ7CiAKIAkJcGdfd2FsZHVtcF9jbWQgPSBwc3ByaW50Zigi XCIlc1wiIC0tcXVpZXQgLS1wYXRoPVwiJXNcIiAtLXRpbWVsaW5lPSV1IC0tc3RhcnQ9JVgvJTA4 WCAtLWVuZD0lWC8lMDhYXG4iLAotCQkJCQkJCQkgIHBnX3dhbGR1bXBfcGF0aCwgd2FsX2RpcmVj dG9yeSwgdGhpc193YWxfcmFuZ2UtPnRsaSwKKwkJCQkJCQkJICBwZ193YWxkdW1wX3BhdGgsIHdh bF9wYXRoLCB0aGlzX3dhbF9yYW5nZS0+dGxpLAogCQkJCQkJCQkgIExTTl9GT1JNQVRfQVJHUyh0 aGlzX3dhbF9yYW5nZS0+c3RhcnRfbHNuKSwKIAkJCQkJCQkJICBMU05fRk9STUFUX0FSR1ModGhp c193YWxfcmFuZ2UtPmVuZF9sc24pKTsKIAkJZmZsdXNoKE5VTEwpOwpAQCAtMTM3Niw3ICsxMzc2 LDcgQEAgdXNhZ2Uodm9pZCkKIAlwcmludGYoXygiICAtUCwgLS1wcm9ncmVzcyAgICAgICAgICAg ICAgc2hvdyBwcm9ncmVzcyBpbmZvcm1hdGlvblxuIikpOwogCXByaW50ZihfKCIgIC1xLCAtLXF1 aWV0ICAgICAgICAgICAgICAgICBkbyBub3QgcHJpbnQgYW55IG91dHB1dCwgZXhjZXB0IGZvciBl cnJvcnNcbiIpKTsKIAlwcmludGYoXygiICAtcywgLS1za2lwLWNoZWNrc3VtcyAgICAgICAgc2tp cCBjaGVja3N1bSB2ZXJpZmljYXRpb25cbiIpKTsKLQlwcmludGYoXygiICAtdywgLS13YWwtZGly ZWN0b3J5PVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIpKTsKKwlw cmludGYoXygiICAtdywgLS13YWwtcGF0aD1QQVRIICAgICAgICAgdXNlIHNwZWNpZmllZCBwYXRo IGZvciBXQUwgZmlsZXNcbiIpKTsKIAlwcmludGYoXygiICAtViwgLS12ZXJzaW9uICAgICAgICAg ICAgICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb24sIHRoZW4gZXhpdFxuIikpOwogCXByaW50 ZihfKCIgIC0/LCAtLWhlbHAgICAgICAgICAgICAgICAgICBzaG93IHRoaXMgaGVscCwgdGhlbiBl eGl0XG4iKSk7CiAJcHJpbnRmKF8oIlxuUmVwb3J0IGJ1Z3MgdG8gPCVzPi5cbiIpLCBQQUNLQUdF X0JVR1JFUE9SVCk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9kZS5w byBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2RlLnBvCmluZGV4IGE5ZTI0OTMxMTAwLi45 YjVjZDU4OThjZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZGUucG8K KysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZGUucG8KQEAgLTc4NSw4ICs3ODUsOCBA QCBtc2dzdHIgIiAgLXMsIC0tc2tpcC1jaGVja3N1bXMgICAgICAgIMOcYmVycHLDvGZ1bmcgZGVy IFByw7xmc3VtbWVuIMO8YmVyc3ByaW5nZQogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzoxMzc5CiAj LCBjLWZvcm1hdAotbXNnaWQgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1QQVRIICAgIHVzZSBzcGVj aWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCi1tc2dzdHIgIiAgLXcsIC0td2FsLWRpcmVjdG9y eT1QRkFEICAgIGFuZ2VnZWJlbmVuIFBmYWQgZsO8ciBXQUwtRGF0ZWllbiB2ZXJ3ZW5kZW5cbiIK K21zZ2lkICIgIC13LCAtLXdhbC1wYXRoPVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBX QUwgZmlsZXNcbiIKK21zZ3N0ciAiICAtdywgLS13YWwtcGF0aD1QRkFEICAgIGFuZ2VnZWJlbmVu IFBmYWQgZsO8ciBXQUwtRGF0ZWllbiB2ZXJ3ZW5kZW5cbiIKIAogIzogcGdfdmVyaWZ5YmFja3Vw LmM6MTM4MAogIywgYy1mb3JtYXQKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3BvL2VsLnBvIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZWwucG8KaW5kZXggM2UzZjIw YzY3YzUuLjgxNDQyZjUxYzE3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9w by9lbC5wbworKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9lbC5wbwpAQCAtNDk0LDgg KzQ5NCw4IEBAIG1zZ3N0ciAiICAtcywgLS1za2lwLWNoZWNrc3VtcyAgICAgICAgz4DOsc+BzqzO us6xzrzPiM61IM+EzrfOvSDOtc+AzrHOu86uzrjOtc+FCiAKICM6IHBnX3ZlcmlmeWJhY2t1cC5j Ojk5MgogIywgYy1mb3JtYXQKLW1zZ2lkICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9UEFUSCAgICB1 c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgotbXNnc3RyICIgIC13LCAtLXdhbC1k aXJlY3Rvcnk9UEFUSCAgICDPh8+BzrfPg865zrzOv8+Azr/Or863z4POtSDPhM63zr0gzrrOsc64 zr/Pgc65z4POvM6tzr3OtyDOtM65zrHOtM+Bzr/OvM6uIM6zzrnOsSDOsc+Bz4fOtc6vzrEgV0FM XG4iCittc2dpZCAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBm b3IgV0FMIGZpbGVzXG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICDPh8+BzrfP g865zrzOv8+Azr/Or863z4POtSDPhM63zr0gzrrOsc64zr/Pgc65z4POvM6tzr3OtyDOtM65zrHO tM+Bzr/OvM6uIM6zzrnOsSDOsc+Bz4fOtc6vzrEgV0FMXG4iCiAKICM6IHBnX3ZlcmlmeWJhY2t1 cC5jOjk5MwogIywgYy1mb3JtYXQKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3BvL2VzLnBvIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZXMucG8KaW5kZXggMGNiOTU4 ZjM0NDguLjdmNzI5ZmEzNWJhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9w by9lcy5wbworKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9lcy5wbwpAQCAtNDk1LDgg KzQ5NSw4IEBAIG1zZ3N0ciAiICAtcywgLS1za2lwLWNoZWNrc3VtcyAgICAgICAgb21pdGlyIGxh IHZlcmlmaWNhY2nDs24gZGUgbGEgc3VtYSBkZSBjb21wCiAKICM6IHBnX3ZlcmlmeWJhY2t1cC5j Ojk5MgogIywgYy1mb3JtYXQKLW1zZ2lkICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9UEFUSCAgICB1 c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgotbXNnc3RyICIgIC13LCAtLXdhbC1k aXJlY3Rvcnk9UEFUSCAgICB1dGlsaXphciBsYSBydXRhIGVzcGVjaWZpY2FkYSBwYXJhIGxvcyBh cmNoaXZvcyBXQUxcbiIKK21zZ2lkICIgIC13LCAtLXdhbC1wYXRoPVBBVEggICAgdXNlIHNwZWNp ZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIKK21zZ3N0ciAiICAtdywgLS13YWwtcGF0aD1QQVRI ICAgIHV0aWxpemFyIGxhIHJ1dGEgZXNwZWNpZmljYWRhIHBhcmEgbG9zIGFyY2hpdm9zIFdBTFxu IgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5OTMKICMsIGMtZm9ybWF0CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9mci5wbyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3BvL2ZyLnBvCmluZGV4IGRhOGM3MmY2NDI3Li4wOTkzNzk2NmZhNyAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZnIucG8KKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNr dXAvcG8vZnIucG8KQEAgLTQ5OCw4ICs0OTgsOCBAQCBtc2dzdHIgIiAgLXMsIC0tc2tpcC1jaGVj a3N1bXMgICAgICAgIGlnbm9yZSBsYSB2w6lyaWZpY2F0aW9uIGRlcyBzb21tZXMgZGUgY29udAog CiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5OTIKICMsIGMtZm9ybWF0Ci1tc2dpZCAiICAtdywgLS13 YWwtZGlyZWN0b3J5PVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIK LW1zZ3N0ciAiICAtdywgLS13YWwtZGlyZWN0b3J5PUNIRU1JTiAgdXRpbGlzZSBsZSBjaGVtaW4g c3DDqWNpZmnDqSBwb3VyIGxlcyBmaWNoaWVycyBXQUxcbiIKK21zZ2lkICIgIC13LCAtLXdhbC1w YXRoPVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIKK21zZ3N0ciAi ICAtdywgLS13YWwtcGF0aD1DSEVNSU4gIHV0aWxpc2UgbGUgY2hlbWluIHNww6ljaWZpw6kgcG91 ciBsZXMgZmljaGllcnMgV0FMXG4iCiAKICM6IHBnX3ZlcmlmeWJhY2t1cC5jOjk5MwogIywgYy1m b3JtYXQKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2l0LnBvIGIvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vaXQucG8KaW5kZXggMzE3YjBiNzFlN2YuLjRkYTY4ZDAw NzRlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9pdC5wbworKysgYi9z cmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9pdC5wbwpAQCAtNDcyLDggKzQ3Miw4IEBAIG1zZ3N0 ciAiICAtcywgLS1za2lwLWNoZWNrc3VtcyAgICAgICAgIHNhbHRhIGxhIHZlcmlmaWNhIGRlbCBj aGVja3N1bVxuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5MTEKICMsIGMtZm9ybWF0Ci1tc2dp ZCAiICAtdywgLS13YWwtZGlyZWN0b3J5PVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBX QUwgZmlsZXNcbiIKLW1zZ3N0ciAiICAtdywgLS13YWwtZGlyZWN0b3J5PVBBVEggICAgIHVzYSBp bCBwZXJjb3JzbyBzcGVjaWZpY2F0byBwZXIgaSBmaWxlIFdBTFxuIgorbXNnaWQgIiAgLXcsIC0t d2FsLXBhdGg9UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgorbXNn c3RyICIgIC13LCAtLXdhbC1wYXRoPVBBVEggICAgIHVzYSBpbCBwZXJjb3JzbyBzcGVjaWZpY2F0 byBwZXIgaSBmaWxlIFdBTFxuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5MTIKICMsIGMtZm9y bWF0CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9qYS5wbyBiL3NyYy9i aW4vcGdfdmVyaWZ5YmFja3VwL3BvL2phLnBvCmluZGV4IGM5MTBmYjIzNmNjLi5hOTQ4OTU5YjU0 ZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vamEucG8KKysrIGIvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vamEucG8KQEAgLTY3Miw4ICs2NzIsOCBAQCBtc2dzdHIg IiAgLXMsIC0tc2tpcC1jaGVja3N1bXMgICAgICAgIOODgeOCp+ODg+OCr+OCteODoOaknOiovOOC kuOCueOCreODg+ODl1xuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzoxMzc5CiAjLCBjLWZvcm1h dAotbXNnaWQgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0 aCBmb3IgV0FMIGZpbGVzXG4iCi1tc2dzdHIgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1QQVRIICAg IFdBTOODleOCoeOCpOODq+OBq+aMh+WumuOBl+OBn+ODkeOCueOCkuS9v+eUqOOBmeOCi1xuIgor bXNnaWQgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdB TCBmaWxlc1xuIgorbXNnc3RyICIgIC13LCAtLXdhbC1wYXRoPVBBVEggICAgV0FM44OV44Kh44Kk 44Or44Gr5oyH5a6a44GX44Gf44OR44K544KS5L2/55So44GZ44KLXG4iCiAKICM6IHBnX3Zlcmlm eWJhY2t1cC5jOjEzODAKICMsIGMtZm9ybWF0CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3Zlcmlm eWJhY2t1cC9wby9rYS5wbyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2thLnBvCmluZGV4 IDk4Mjc1MTk4NGM3Li5lZjI3OTkzMTZhOCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnli YWNrdXAvcG8va2EucG8KKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8va2EucG8KQEAg LTc4NCw4ICs3ODQsOCBAQCBtc2dzdHIgIiAgLXMsIC0tc2tpcC1jaGVja3N1bXMgICAgICAgIOGD oeGDkOGDmeGDneGDnOGDouGDoOGDneGDmuGDnSDhg6/hg5Dhg5sKIAogIzogcGdfdmVyaWZ5YmFj a3VwLmM6MTM3OQogIywgYy1mb3JtYXQKLW1zZ2lkICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9UEFU SCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgotbXNnc3RyICIgIC13LCAt LXdhbC1kaXJlY3Rvcnk94YOR4YOY4YOa4YOY4YOZ4YOYICAgIFdBTCDhg6Thg5Dhg5jhg5rhg5Th g5Hhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOb4YOY4YOX4YOY4YOX4YOU4YOR4YOj4YOa4YOYIOGDkeGD mOGDmuGDmOGDmeGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5BcbiIKK21zZ2lk ICIgIC13LCAtLXdhbC1wYXRoPVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmls ZXNcbiIKK21zZ3N0ciAiICAtdywgLS13YWwtcGF0aD3hg5Hhg5jhg5rhg5jhg5nhg5ggICAgV0FM IOGDpOGDkOGDmOGDmuGDlOGDkeGDmOGDoeGDl+GDleGDmOGDoSDhg5vhg5jhg5fhg5jhg5fhg5Th g5Hhg6Phg5rhg5gg4YOR4YOY4YOa4YOY4YOZ4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGD lOGDkeGDkFxuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzoxMzgwCiAjLCBjLWZvcm1hdApkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8va28ucG8gYi9zcmMvYmluL3BnX3Zl cmlmeWJhY2t1cC9wby9rby5wbwppbmRleCBhY2RjM2RhNWUwMi4uZWFmOTFlZjFlOTggMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2tvLnBvCisrKyBiL3NyYy9iaW4vcGdf dmVyaWZ5YmFja3VwL3BvL2tvLnBvCkBAIC01MDEsOCArNTAxLDggQEAgbXNnc3RyICIgIC1zLCAt LXNraXAtY2hlY2tzdW1zICAgICAgICDssrTtgazshKwg6rKA7IKsIOqxtOuEiOucgFxuIgogCiAj OiBwZ192ZXJpZnliYWNrdXAuYzo5OTIKICMsIGMtZm9ybWF0Ci1tc2dpZCAiICAtdywgLS13YWwt ZGlyZWN0b3J5PVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIKLW1z Z3N0ciAiICAtdywgLS13YWwtZGlyZWN0b3J5PeqyveuhnCAgICBXQUwg7YyM7J287J20IOyeiOuK lCDqsr3roZwg7KeA7KCVXG4iCittc2dpZCAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVzZSBz cGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBhdGg9 6rK966GcICAgIFdBTCDtjIzsnbzsnbQg7J6I64qUIOqyveuhnCDsp4DsoJVcbiIKIAogIzogcGdf dmVyaWZ5YmFja3VwLmM6OTkzCiAjLCBjLWZvcm1hdApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192 ZXJpZnliYWNrdXAvcG8vcnUucG8gYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9ydS5wbwpp bmRleCA2NDAwNWZlZWRmZC4uN2ZiMGU1YWIxZjYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVy aWZ5YmFja3VwL3BvL3J1LnBvCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL3J1LnBv CkBAIC01MDcsOSArNTA3LDkgQEAgbXNnc3RyICIgIC1zLCAtLXNraXAtY2hlY2tzdW1zICAgICAg ICDQv9GA0L7Qv9GD0YHRgtC40YLRjCDQv9GA0L7QstC10YDQutGDINC60L4KIAogIzogcGdfdmVy aWZ5YmFja3VwLmM6OTkyCiAjLCBjLWZvcm1hdAotbXNnaWQgIiAgLXcsIC0td2FsLWRpcmVjdG9y eT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCittc2dpZCAiICAt dywgLS13YWwtcGF0aD1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4i CiBtc2dzdHIgIiIKLSIgIC13LCAtLXdhbC1kaXJlY3Rvcnk90J/Qo9Ci0KwgICAg0LjRgdC/0L7Q u9GM0LfQvtCy0LDRgtGMINC30LDQtNCw0L3QvdGL0Lkg0L/Rg9GC0Ywg0Log0YTQsNC50LvQsNC8 IFdBTFxuIgorIiAgLXcsIC0td2FsLXBhdGg90J/Qo9Ci0KwgICAg0LjRgdC/0L7Qu9GM0LfQvtCy 0LDRgtGMINC30LDQtNCw0L3QvdGL0Lkg0L/Rg9GC0Ywg0Log0YTQsNC50LvQsNC8IFdBTFxuIgog CiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5OTMKICMsIGMtZm9ybWF0CmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX3ZlcmlmeWJhY2t1cC9wby9zdi5wbyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Bv L3N2LnBvCmluZGV4IDE3MjQwZmVlYjVjLi45NzEyNTgzOGU4YyAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ192ZXJpZnliYWNrdXAvcG8vc3YucG8KKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAv cG8vc3YucG8KQEAgLTQ5Miw4ICs0OTIsOCBAQCBtc2dzdHIgIiAgLXMsIC0tc2tpcC1jaGVja3N1 bXMgICAgICAgIGhvcHBhIMO2dmVyIHZlcmlmaWVyaW5nIGF2IGtvbnRyb2xsc3VtbW9yXAogCiAj OiBwZ192ZXJpZnliYWNrdXAuYzo5OTIKICMsIGMtZm9ybWF0Ci1tc2dpZCAiICAtdywgLS13YWwt ZGlyZWN0b3J5PVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIKLW1z Z3N0ciAiICAtdywgLS13YWwtZGlyZWN0b3J5PVPDlktWw4RHICBhbnbDpG5kIGRlbm5hIHPDtmt2 w6RnIHRpbGwgV0FMLWZpbGVyXG4iCittc2dpZCAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVz ZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBh dGg9U8OWS1bDhEcgIGFudsOkbmQgZGVubmEgc8O2a3bDpGcgdGlsbCBXQUwtZmlsZXJcbiIKIAog IzogcGdfdmVyaWZ5YmFja3VwLmM6OTkzCiAjLCBjLWZvcm1hdApkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ192ZXJpZnliYWNrdXAvcG8vdWsucG8gYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby91 ay5wbwppbmRleCAwMzRiOTc2NDIzMi4uNjNmODA0MWFiMzggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfdmVyaWZ5YmFja3VwL3BvL3VrLnBvCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Bv L3VrLnBvCkBAIC00ODQsOCArNDg0LDggQEAgbXNnc3RyICIgIC1zLCAtLXNraXAtY2hlY2tzdW1z INC90LUg0L/QtdGA0LXQstGW0YDRj9GC0Lgg0LrQvtC90YLRgNC+0LvRjNC90ZYg0YEKIAogIzog cGdfdmVyaWZ5YmFja3VwLmM6OTkyCiAjLCBjLWZvcm1hdAotbXNnaWQgIiAgLXcsIC0td2FsLWRp cmVjdG9yeT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCi1tc2dz dHIgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1QQVRIINCy0LjQutC+0YDQuNGB0YLQvtCy0YPQstCw 0YLQuCDQstC60LDQt9Cw0L3QuNC5INGI0LvRj9GFINC00LvRjyDRhNCw0LnQu9GW0LIgV0FMXG4i Cittc2dpZCAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3Ig V0FMIGZpbGVzXG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCDQstC40LrQvtGA0LjR gdGC0L7QstGD0LLQsNGC0Lgg0LLQutCw0LfQsNC90LjQuSDRiNC70Y/RhSDQtNC70Y8g0YTQsNC5 0LvRltCyIFdBTFxuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5OTMKICMsIGMtZm9ybWF0CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby96aF9DTi5wbyBiL3NyYy9iaW4v cGdfdmVyaWZ5YmFja3VwL3BvL3poX0NOLnBvCmluZGV4IGI3ZDk3Yzg5NzZkLi5mYjZmY2FlOGI4 MiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vemhfQ04ucG8KKysrIGIv c3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vemhfQ04ucG8KQEAgLTQ2NSw4ICs0NjUsOCBAQCBt c2dzdHIgIiAgLXMsIC0tc2tpcC1jaGVja3N1bXMgICAgICAgIOi3s+i/h+agoemqjOWSjOmqjOiv gVxuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5MTkKICMsIGMtZm9ybWF0Ci1tc2dpZCAiICAt dywgLS13YWwtZGlyZWN0b3J5PVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmls ZXNcbiIKLW1zZ3N0ciAiICAtdywgLS13YWwtZGlyZWN0b3J5PVBBVEggICAg5a+5V0FM5paH5Lu2 5L2/55So5oyH5a6a6Lev5b6EXG4iCittc2dpZCAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVz ZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBh dGg9UEFUSCAgICDlr7lXQUzmlofku7bkvb/nlKjmjIflrprot6/lvoRcbiIKIAogIzogcGdfdmVy aWZ5YmFja3VwLmM6OTIwCiAjLCBjLWZvcm1hdApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJp ZnliYWNrdXAvcG8vemhfVFcucG8gYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby96aF9UVy5w bwppbmRleCBjMWI3MTBiMGEzNi4uNTY4Zjk3MmIwYmIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf dmVyaWZ5YmFja3VwL3BvL3poX1RXLnBvCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Bv L3poX1RXLnBvCkBAIC01NTUsOCArNTU1LDggQEAgbXNnc3RyICIgIC1zLCAtLXNraXAtY2hlY2tz dW1zICAgICAgICDot7PpgY7mqqLmn6XnorzpqZforYlcbiIKIAogIzogcGdfdmVyaWZ5YmFja3Vw LmM6OTkyCiAjLCBjLWZvcm1hdAotbXNnaWQgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1QQVRIICAg IHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCi1tc2dzdHIgIiAgLXcsIC0td2Fs LWRpcmVjdG9yeT1QQVRIICAgIOeUqOaMh+WumueahOi3r+W+keWtmOaUviBXQUwg5qqUXG4iCitt c2dpZCAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FM IGZpbGVzXG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICDnlKjmjIflrprnmoTo t6/lvpHlrZjmlL4gV0FMIOaqlFxuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5OTMKICMsIGMt Zm9ybWF0CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwN193YWwucGwg Yi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwN193YWwucGwKaW5kZXggYmFiYzRmMGE4NmIu LmIwN2Y4MDcxOWIwIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwN193 YWwucGwKKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDdfd2FsLnBsCkBAIC00Miwx MCArNDIsMTAgQEAgY29tbWFuZF9vayhbICdwZ192ZXJpZnliYWNrdXAnLCAnLS1uby1wYXJzZS13 YWwnLCAkYmFja3VwX3BhdGggXSwKIGNvbW1hbmRfb2soCiAJWwogCQkncGdfdmVyaWZ5YmFja3Vw JywKLQkJJy0td2FsLWRpcmVjdG9yeScgPT4gJHJlbG9jYXRlZF9wZ193YWwsCisJCSctLXdhbC1w YXRoJyA9PiAkcmVsb2NhdGVkX3BnX3dhbCwKIAkJJGJhY2t1cF9wYXRoCiAJXSwKLQknLS13YWwt ZGlyZWN0b3J5IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgV0FMIGRpcmVjdG9yeScpOworCSctLXdh bC1wYXRoIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgV0FMIGRpcmVjdG9yeScpOwogCiAjIE1vdmUg ZGlyZWN0b3J5IGJhY2sgdG8gb3JpZ2luYWwgbG9jYXRpb24uCiByZW5hbWUoJHJlbG9jYXRlZF9w Z193YWwsICRvcmlnaW5hbF9wZ193YWwpIHx8IGRpZSAicmVuYW1lIHBnX3dhbCBiYWNrOiAkISI7 Ci0tIAoyLjQ3LjEKCg== --000000000000913393063d2fb4a6 Content-Type: application/x-patch; name="v2-0009-pg_verifybackup-enabled-WAL-parsing-for-tar-forma.patch" Content-Disposition: attachment; filename="v2-0009-pg_verifybackup-enabled-WAL-parsing-for-tar-forma.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mer3e61t8 RnJvbSA4NzdkZDA3MjM0OWZiZmViNGEzOWYyZjNjY2ExM2JhNGI2OGQwOTEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMTcgSnVsIDIwMjUgMTY6Mzk6MzYgKzA1MzAKU3ViamVjdDogW1BBVENIIHYyIDkvOV0gcGdf dmVyaWZ5YmFja3VwOiBlbmFibGVkIFdBTCBwYXJzaW5nIGZvciB0YXItZm9ybWF0CiBiYWNrdXAK Ck5vdyB0aGF0IHBnX3dhbGR1bXAgc3VwcG9ydHMgZGVjb2RpbmcgZnJvbSB0YXIgYXJjaGl2ZXMs IHdlIHNob3VsZApsZXZlcmFnZSB0aGlzIGZ1bmN0aW9uYWxpdHkgdG8gcmVtb3ZlIHRoZSBwcmV2 aW91cyByZXN0cmljdGlvbiBvbiBXQUwKcGFyc2luZyBmb3IgdGFyLWJhY2tlZCBmb3JtYXRzLgot LS0KIGRvYy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3VwLnNnbWwgICAgICAgICB8ICA1ICst CiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYyAgICAgfCA2NiArKysr KysrKysrKysrLS0tLS0tCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwMl9hbGdvcml0aG0u cGwgICAgfCAgNCAtLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDNfY29ycnVwdGlvbi5w bCAgIHwgIDQgKy0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDA4X3VudGFyLnBsICAgICAg ICB8ICAzICstCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAxMF9jbGllbnRfdW50YXIucGwg fCAgMyArLQogNiBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3ZlcmlmeWJhY2t1cC5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9wZ192ZXJpZnliYWNrdXAuc2dtbAppbmRleCBlOWI4YmZkNTFiMS4u MTZiNTBiNWE0ZGYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3Vw LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ192ZXJpZnliYWNrdXAuc2dtbApAQCAtMzYs MTAgKzM2LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICA8bGl0ZXJhbD5iYWNrdXBf bWFuaWZlc3Q8L2xpdGVyYWw+IGdlbmVyYXRlZCBieSB0aGUgc2VydmVyIGF0IHRoZSB0aW1lCiAg ICBvZiB0aGUgYmFja3VwLiBUaGUgYmFja3VwIG1heSBiZSBzdG9yZWQgZWl0aGVyIGluIHRoZSAi cGxhaW4iIG9yIHRoZSAidGFyIgogICAgZm9ybWF0OyB0aGlzIGluY2x1ZGVzIHRhci1mb3JtYXQg YmFja3VwcyBjb21wcmVzc2VkIHdpdGggYW55IGFsZ29yaXRobQotICAgc3VwcG9ydGVkIGJ5IDxh cHBsaWNhdGlvbj5wZ19iYXNlYmFja3VwPC9hcHBsaWNhdGlvbj4uIEhvd2V2ZXIsIGF0IHByZXNl bnQsCi0gICA8bGl0ZXJhbD5XQUw8L2xpdGVyYWw+IHZlcmlmaWNhdGlvbiBpcyBzdXBwb3J0ZWQg b25seSBmb3IgcGxhaW4tZm9ybWF0Ci0gICBiYWNrdXBzLiBUaGVyZWZvcmUsIGlmIHRoZSBiYWNr dXAgaXMgc3RvcmVkIGluIHRhci1mb3JtYXQsIHRoZQotICAgPGxpdGVyYWw+LW4sIC0tbm8tcGFy c2Utd2FsPC9saXRlcmFsPiBvcHRpb24gc2hvdWxkIGJlIHVzZWQuCisgICBzdXBwb3J0ZWQgYnkg PGFwcGxpY2F0aW9uPnBnX2Jhc2ViYWNrdXA8L2FwcGxpY2F0aW9uPi4KICAgPC9wYXJhPgogCiAg IDxwYXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFj a3VwLmMgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYwppbmRleCAx ZWU0MDAxOTlkYS4uNGJmZTZmZGZmMTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFj a3VwL3BnX3ZlcmlmeWJhY2t1cC5jCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3Zl cmlmeWJhY2t1cC5jCkBAIC03NCw3ICs3NCw5IEBAIHBnX25vcmV0dXJuIHN0YXRpYyB2b2lkIHJl cG9ydF9tYW5pZmVzdF9lcnJvcihKc29uTWFuaWZlc3RQYXJzZUNvbnRleHQgKmNvbnRleHQsCiAJ CQkJCQkJCQkJCSAgY29uc3QgY2hhciAqZm10LC4uLikKIAkJCXBnX2F0dHJpYnV0ZV9wcmludGYo MiwgMyk7CiAKLXN0YXRpYyB2b2lkIHZlcmlmeV90YXJfYmFja3VwKHZlcmlmaWVyX2NvbnRleHQg KmNvbnRleHQsIERJUiAqZGlyKTsKK3N0YXRpYyB2b2lkIHZlcmlmeV90YXJfYmFja3VwKHZlcmlm aWVyX2NvbnRleHQgKmNvbnRleHQsIERJUiAqZGlyLAorCQkJCQkJCSAgY2hhciAqKmJhc2VfYXJj aGl2ZV9wYXRoLAorCQkJCQkJCSAgY2hhciAqKndhbF9hcmNoaXZlX3BhdGgpOwogc3RhdGljIHZv aWQgdmVyaWZ5X3BsYWluX2JhY2t1cF9kaXJlY3RvcnkodmVyaWZpZXJfY29udGV4dCAqY29udGV4 dCwKIAkJCQkJCQkJCQkgIGNoYXIgKnJlbHBhdGgsIGNoYXIgKmZ1bGxwYXRoLAogCQkJCQkJCQkJ CSAgRElSICpkaXIpOwpAQCAtODMsNyArODUsOSBAQCBzdGF0aWMgdm9pZCB2ZXJpZnlfcGxhaW5f YmFja3VwX2ZpbGUodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgY2hhciAqcmVscGF0aCwKIHN0 YXRpYyB2b2lkIHZlcmlmeV9jb250cm9sX2ZpbGUoY29uc3QgY2hhciAqY29udHJvbHBhdGgsCiAJ CQkJCQkJCXVpbnQ2NCBtYW5pZmVzdF9zeXN0ZW1faWRlbnRpZmllcik7CiBzdGF0aWMgdm9pZCBw cmVjaGVja190YXJfYmFja3VwX2ZpbGUodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgY2hhciAq cmVscGF0aCwKLQkJCQkJCQkJCSBjaGFyICpmdWxscGF0aCwgU2ltcGxlUHRyTGlzdCAqdGFyZmls ZXMpOworCQkJCQkJCQkJIGNoYXIgKmZ1bGxwYXRoLCBTaW1wbGVQdHJMaXN0ICp0YXJmaWxlcywK KwkJCQkJCQkJCSBjaGFyICoqYmFzZV9hcmNoaXZlX3BhdGgsCisJCQkJCQkJCQkgY2hhciAqKndh bF9hcmNoaXZlX3BhdGgpOwogc3RhdGljIHZvaWQgdmVyaWZ5X3Rhcl9maWxlKHZlcmlmaWVyX2Nv bnRleHQgKmNvbnRleHQsIGNoYXIgKnJlbHBhdGgsCiAJCQkJCQkJY2hhciAqZnVsbHBhdGgsIGFz dHJlYW1lciAqc3RyZWFtZXIpOwogc3RhdGljIHZvaWQgcmVwb3J0X2V4dHJhX2JhY2t1cF9maWxl cyh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0KTsKQEAgLTEzNiw2ICsxNDAsOCBAQCBtYWluKGlu dCBhcmdjLCBjaGFyICoqYXJndikKIAlib29sCQlub19wYXJzZV93YWwgPSBmYWxzZTsKIAlib29s CQlxdWlldCA9IGZhbHNlOwogCWNoYXIJICAgKndhbF9wYXRoID0gTlVMTDsKKwljaGFyCSAgICpi YXNlX2FyY2hpdmVfcGF0aCA9IE5VTEw7CisJY2hhcgkgICAqd2FsX2FyY2hpdmVfcGF0aCA9IE5V TEw7CiAJY2hhcgkgICAqcGdfd2FsZHVtcF9wYXRoID0gTlVMTDsKIAlESVIJCSAgICpkaXI7CiAK QEAgLTMyNywxNyArMzMzLDYgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXBmcmVl KHBhdGgpOwogCX0KIAotCS8qCi0JICogWFhYOiBJbiB0aGUgZnV0dXJlLCB3ZSBzaG91bGQgY29u c2lkZXIgZW5oYW5jaW5nIHBnX3dhbGR1bXAgdG8gcmVhZCBXQUwKLQkgKiBmaWxlcyBmcm9tIGFu IGFyY2hpdmUuCi0JICovCi0JaWYgKCFub19wYXJzZV93YWwgJiYgY29udGV4dC5mb3JtYXQgPT0g J3QnKQotCXsKLQkJcGdfbG9nX2Vycm9yKCJwZ193YWxkdW1wIGNhbm5vdCByZWFkIHRhciBmaWxl cyIpOwotCQlwZ19sb2dfZXJyb3JfaGludCgiWW91IG11c3QgdXNlIC1uLy0tbm8tcGFyc2Utd2Fs IHdoZW4gdmVyaWZ5aW5nIGEgdGFyLWZvcm1hdCBiYWNrdXAuIik7Ci0JCWV4aXQoMSk7Ci0JfQot CiAJLyoKIAkgKiBQZXJmb3JtIHRoZSBhcHByb3ByaWF0ZSB0eXBlIG9mIHZlcmlmaWNhdGlvbiBh cHByb3ByaWF0ZSBiYXNlZCBvbiB0aGUKIAkgKiBiYWNrdXAgZm9ybWF0LiBUaGlzIHdpbGwgY2xv c2UgJ2RpcicuCkBAIC0zNDYsNyArMzQxLDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CiAJCXZlcmlmeV9wbGFpbl9iYWNrdXBfZGlyZWN0b3J5KCZjb250ZXh0LCBOVUxMLCBjb250ZXh0 LmJhY2t1cF9kaXJlY3RvcnksCiAJCQkJCQkJCQkgIGRpcik7CiAJZWxzZQotCQl2ZXJpZnlfdGFy X2JhY2t1cCgmY29udGV4dCwgZGlyKTsKKwkJdmVyaWZ5X3Rhcl9iYWNrdXAoJmNvbnRleHQsIGRp ciwgJmJhc2VfYXJjaGl2ZV9wYXRoLCAmd2FsX2FyY2hpdmVfcGF0aCk7CiAKIAkvKgogCSAqIFRo ZSAibWF0Y2hlZCIgZmxhZyBzaG91bGQgbm93IGJlIHNldCBvbiBldmVyeSBlbnRyeSBpbiB0aGUg aGFzaCB0YWJsZS4KQEAgLTM2NCw5ICszNTksMjggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFy Z3YpCiAJaWYgKGNvbnRleHQuZm9ybWF0ID09ICdwJyAmJiAhY29udGV4dC5za2lwX2NoZWNrc3Vt cykKIAkJdmVyaWZ5X2JhY2t1cF9jaGVja3N1bXMoJmNvbnRleHQpOwogCi0JLyogQnkgZGVmYXVs dCwgbG9vayBmb3IgdGhlIFdBTCBpbiB0aGUgYmFja3VwIGRpcmVjdG9yeSwgdG9vLiAqLworCS8q CisJICogQnkgZGVmYXVsdCwgV0FMIGZpbGVzIGFyZSBleHBlY3RlZCB0byBiZSBmb3VuZCBpbiB0 aGUgYmFja3VwIGRpcmVjdG9yeQorCSAqIGZvciBwbGFpbi1mb3JtYXQgYmFja3Vwcy4gSW4gdGhl IGNhc2Ugb2YgdGFyLWZvcm1hdCBiYWNrdXBzLCBpZiBhCisJICogc2VwYXJhdGUgV0FMIGFyY2hp dmUgaXMgbm90IGZvdW5kLCB0aGUgV0FMIGZpbGVzIGFyZSBtb3N0IGxpa2VseQorCSAqIGluY2x1 ZGVkIHdpdGhpbiB0aGUgbWFpbiBkYXRhIGRpcmVjdG9yeSBhcmNoaXZlLgorCSAqLwogCWlmICh3 YWxfcGF0aCA9PSBOVUxMKQotCQl3YWxfcGF0aCA9IHBzcHJpbnRmKCIlcy9wZ193YWwiLCBjb250 ZXh0LmJhY2t1cF9kaXJlY3RvcnkpOworCXsKKwkJaWYgKGNvbnRleHQuZm9ybWF0ID09ICdwJykK KwkJCXdhbF9wYXRoID0gcHNwcmludGYoIiVzL3BnX3dhbCIsIGNvbnRleHQuYmFja3VwX2RpcmVj dG9yeSk7CisJCWVsc2UgaWYgKHdhbF9hcmNoaXZlX3BhdGgpCisJCQl3YWxfcGF0aCA9IHdhbF9h cmNoaXZlX3BhdGg7CisJCWVsc2UgaWYgKGJhc2VfYXJjaGl2ZV9wYXRoKQorCQkJd2FsX3BhdGgg PSBiYXNlX2FyY2hpdmVfcGF0aDsKKwkJZWxzZQorCQl7CisJCQlwZ19sb2dfZXJyb3IoIndhbCBh cmNoaXZlIG5vdCBmb3VuZCIpOworCQkJcGdfbG9nX2Vycm9yX2hpbnQoIlNwZWNpZnkgdGhlIGNv cnJlY3QgcGF0aCB1c2luZyB0aGUgb3B0aW9uIC13Ly0td2FsLXBhdGguIgorCQkJCQkJCSAgIk9y IHlvdSBtdXN0IHVzZSAtbi8tLW5vLXBhcnNlLXdhbCB3aGVuIHZlcmlmeWluZyBhIHRhci1mb3Jt YXQgYmFja3VwLiIpOworCQkJZXhpdCgxKTsKKwkJfQorCX0KIAogCS8qCiAJICogVHJ5IHRvIHBh cnNlIHRoZSByZXF1aXJlZCByYW5nZXMgb2YgV0FMIHJlY29yZHMsIHVubGVzcyB3ZSB3ZXJlIHRv bGQKQEAgLTc4Nyw3ICs4MDEsOCBAQCB2ZXJpZnlfY29udHJvbF9maWxlKGNvbnN0IGNoYXIgKmNv bnRyb2xwYXRoLCB1aW50NjQgbWFuaWZlc3Rfc3lzdGVtX2lkZW50aWZpZXIpCiAgKiBjbG9zZSB3 aGVuIHdlJ3JlIGRvbmUgd2l0aCBpdC4KICAqLwogc3RhdGljIHZvaWQKLXZlcmlmeV90YXJfYmFj a3VwKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsIERJUiAqZGlyKQordmVyaWZ5X3Rhcl9iYWNr dXAodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgRElSICpkaXIsIGNoYXIgKipiYXNlX2FyY2hp dmVfcGF0aCwKKwkJCQkgIGNoYXIgKip3YWxfYXJjaGl2ZV9wYXRoKQogewogCXN0cnVjdCBkaXJl bnQgKmRpcmVudDsKIAlTaW1wbGVQdHJMaXN0IHRhcmZpbGVzID0ge05VTEwsIE5VTEx9OwpAQCAt ODE2LDcgKzgzMSw4IEBAIHZlcmlmeV90YXJfYmFja3VwKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRl eHQsIERJUiAqZGlyKQogCQkJY2hhcgkgICAqZnVsbHBhdGg7CiAKIAkJCWZ1bGxwYXRoID0gcHNw cmludGYoIiVzLyVzIiwgY29udGV4dC0+YmFja3VwX2RpcmVjdG9yeSwgZmlsZW5hbWUpOwotCQkJ cHJlY2hlY2tfdGFyX2JhY2t1cF9maWxlKGNvbnRleHQsIGZpbGVuYW1lLCBmdWxscGF0aCwgJnRh cmZpbGVzKTsKKwkJCXByZWNoZWNrX3Rhcl9iYWNrdXBfZmlsZShjb250ZXh0LCBmaWxlbmFtZSwg ZnVsbHBhdGgsICZ0YXJmaWxlcywKKwkJCQkJCQkJCSBiYXNlX2FyY2hpdmVfcGF0aCwgd2FsX2Fy Y2hpdmVfcGF0aCk7CiAJCQlwZnJlZShmdWxscGF0aCk7CiAJCX0KIAl9CkBAIC04NzUsMTEgKzg5 MSwxMyBAQCB2ZXJpZnlfdGFyX2JhY2t1cCh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBESVIg KmRpcikKICAqCiAgKiBUaGUgYXJndW1lbnRzIHRvIHRoaXMgZnVuY3Rpb24gYXJlIG1vc3RseSB0 aGUgc2FtZSBhcyB0aGUKICAqIHZlcmlmeV9wbGFpbl9iYWNrdXBfZmlsZS4gVGhlIGFkZGl0aW9u YWwgYXJndW1lbnQgb3V0cHV0cyBhIGxpc3Qgb2YgdmFsaWQKLSAqIHRhciBmaWxlcy4KKyAqIHRh ciBmaWxlcywgYWxvbmcgd2l0aCB0aGUgZnVsbCBwYXRocyB0byB0aGUgbWFpbiBhcmNoaXZlIGFu ZCB0aGUgV0FMCisgKiBkaXJlY3RvcnkgYXJjaGl2ZS4KICAqLwogc3RhdGljIHZvaWQKIHByZWNo ZWNrX3Rhcl9iYWNrdXBfZmlsZSh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBjaGFyICpyZWxw YXRoLAotCQkJCQkJIGNoYXIgKmZ1bGxwYXRoLCBTaW1wbGVQdHJMaXN0ICp0YXJmaWxlcykKKwkJ CQkJCSBjaGFyICpmdWxscGF0aCwgU2ltcGxlUHRyTGlzdCAqdGFyZmlsZXMsCisJCQkJCQkgY2hh ciAqKmJhc2VfYXJjaGl2ZV9wYXRoLCBjaGFyICoqd2FsX2FyY2hpdmVfcGF0aCkKIHsKIAlzdHJ1 Y3Qgc3RhdCBzYjsKIAlPaWQJCQl0YmxzcGNfb2lkID0gSW52YWxpZE9pZDsKQEAgLTkxOCw5ICs5 MzYsMTcgQEAgcHJlY2hlY2tfdGFyX2JhY2t1cF9maWxlKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRl eHQsIGNoYXIgKnJlbHBhdGgsCiAJICogZXh0ZW5zaW9uIHN1Y2ggYXMgLmd6LCAubHo0LCBvciAu enN0LgogCSAqLwogCWlmIChzdHJuY21wKCJiYXNlIiwgcmVscGF0aCwgNCkgPT0gMCkKKwl7CiAJ CXN1ZmZpeCA9IHJlbHBhdGggKyA0OworCisJCSpiYXNlX2FyY2hpdmVfcGF0aCA9IHBzdHJkdXAo ZnVsbHBhdGgpOworCX0KIAllbHNlIGlmIChzdHJuY21wKCJwZ193YWwiLCByZWxwYXRoLCA2KSA9 PSAwKQorCXsKIAkJc3VmZml4ID0gcmVscGF0aCArIDY7CisKKwkJKndhbF9hcmNoaXZlX3BhdGgg PSBwc3RyZHVwKGZ1bGxwYXRoKTsKKwl9CiAJZWxzZQogCXsKIAkJLyogRXhwZWN0ZWQgYSA8dGFi bGVzcGFjZW9pZD4udGFyIGZpbGUgaGVyZS4gKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVy aWZ5YmFja3VwL3QvMDAyX2FsZ29yaXRobS5wbCBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Qv MDAyX2FsZ29yaXRobS5wbAppbmRleCBhZTE2YzExYmM0ZC4uNGYyODRhOWU4MjggMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDAyX2FsZ29yaXRobS5wbAorKysgYi9zcmMv YmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwMl9hbGdvcml0aG0ucGwKQEAgLTMwLDEwICszMCw2IEBA IHN1YiB0ZXN0X2NoZWNrc3VtcwogCXsKIAkJIyBBZGQgc3dpdGNoIHRvIGdldCBhIHRhci1mb3Jt YXQgYmFja3VwCiAJCXB1c2ggQGJhY2t1cCwgKCctLWZvcm1hdCcgPT4gJ3RhcicpOwotCi0JCSMg QWRkIHN3aXRjaCB0byBza2lwIFdBTCB2ZXJpZmljYXRpb24sIHdoaWNoIGlzIG5vdCB5ZXQgc3Vw cG9ydGVkIGZvcgotCQkjIHRhci1mb3JtYXQgYmFja3VwcwotCQlwdXNoIEB2ZXJpZnksICgnLS1u by1wYXJzZS13YWwnKTsKIAl9CiAKIAkjIEEgYmFja3VwIHdpdGggYSBib2d1cyBhbGdvcml0aG0g c2hvdWxkIGZhaWwuCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwM19j b3JydXB0aW9uLnBsIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDNfY29ycnVwdGlvbi5w bAppbmRleCAxZGQ2MGY3MDljZi4uZjFlYmRiYjQ2YjQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf dmVyaWZ5YmFja3VwL3QvMDAzX2NvcnJ1cHRpb24ucGwKKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnli YWNrdXAvdC8wMDNfY29ycnVwdGlvbi5wbApAQCAtMTkzLDEwICsxOTMsOCBAQCBmb3IgbXkgJHNj ZW5hcmlvIChAc2NlbmFyaW8pCiAJCQljb21tYW5kX29rKFsgJHRhciwgJy1jZicgPT4gIiR0YXJf YmFja3VwX3BhdGgvYmFzZS50YXIiLCAnLicgXSk7CiAJCQljaGRpcigkY3dkKSB8fCBkaWUgImNo ZGlyOiAkISI7CiAKLQkJCSMgTm93IGNoZWNrIHRoYXQgdGhlIGJhY2t1cCBubyBsb25nZXIgdmVy aWZpZXMuIFdlIG11c3QgdXNlIC1uCi0JCQkjIGhlcmUsIGJlY2F1c2UgcGdfd2FsZHVtcCBjYW4n dCB5ZXQgcmVhZCBXQUwgZnJvbSBhIHRhcmZpbGUuCiAJCQljb21tYW5kX2ZhaWxzX2xpa2UoCi0J CQkJWyAncGdfdmVyaWZ5YmFja3VwJywgJy0tbm8tcGFyc2Utd2FsJywgJHRhcl9iYWNrdXBfcGF0 aCBdLAorCQkJCVsgJ3BnX3ZlcmlmeWJhY2t1cCcsICR0YXJfYmFja3VwX3BhdGggXSwKIAkJCQkk c2NlbmFyaW8tPnsnZmFpbHNfbGlrZSd9LAogCQkJCSJjb3JydXB0IGJhY2t1cCBmYWlscyB2ZXJp ZmljYXRpb246ICRuYW1lIik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3QvMDA4X3VudGFyLnBsIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDhfdW50YXIucGwK aW5kZXggYmMzZDZiMzUyYWQuLjBjZmUxZjk1MzJjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Zl cmlmeWJhY2t1cC90LzAwOF91bnRhci5wbAorKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90 LzAwOF91bnRhci5wbApAQCAtMTIzLDggKzEyMyw3IEBAIGZvciBteSAkdGMgKEB0ZXN0X2NvbmZp Z3VyYXRpb24pCiAJCSMgVmVyaWZ5IHRhciBiYWNrdXAuCiAJCSRwcmltYXJ5LT5jb21tYW5kX29r KAogCQkJWwotCQkJCSdwZ192ZXJpZnliYWNrdXAnLCAnLS1uby1wYXJzZS13YWwnLAotCQkJCSct LWV4aXQtb24tZXJyb3InLCAkYmFja3VwX3BhdGgsCisJCQkJJ3BnX3ZlcmlmeWJhY2t1cCcsICct LWV4aXQtb24tZXJyb3InLCAkYmFja3VwX3BhdGgsCiAJCQldLAogCQkJInZlcmlmeSBiYWNrdXAs IGNvbXByZXNzaW9uICRtZXRob2QiKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnli YWNrdXAvdC8wMTBfY2xpZW50X3VudGFyLnBsIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8w MTBfY2xpZW50X3VudGFyLnBsCmluZGV4IGI2MmZhZWI1YWNmLi43NjI2OWE3MzY3MyAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMTBfY2xpZW50X3VudGFyLnBsCisrKyBi L3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDEwX2NsaWVudF91bnRhci5wbApAQCAtMTM3LDgg KzEzNyw3IEBAIGZvciBteSAkdGMgKEB0ZXN0X2NvbmZpZ3VyYXRpb24pCiAJCSMgVmVyaWZ5IHRh ciBiYWNrdXAuCiAJCSRwcmltYXJ5LT5jb21tYW5kX29rKAogCQkJWwotCQkJCSdwZ192ZXJpZnli YWNrdXAnLCAnLS1uby1wYXJzZS13YWwnLAotCQkJCSctLWV4aXQtb24tZXJyb3InLCAkYmFja3Vw X3BhdGgsCisJCQkJJ3BnX3ZlcmlmeWJhY2t1cCcsICctLWV4aXQtb24tZXJyb3InLCAkYmFja3Vw X3BhdGgsCiAJCQldLAogCQkJInZlcmlmeSBiYWNrdXAsIGNvbXByZXNzaW9uICRtZXRob2QiKTsK IAotLSAKMi40Ny4xCgo= --000000000000913393063d2fb4a6--