Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w7rWU-005lpv-2w for pgpool-hackers@arkaria.postgresql.org; Wed, 01 Apr 2026 09:06:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w7rWR-00GI5E-39 for pgpool-hackers@arkaria.postgresql.org; Wed, 01 Apr 2026 09:06:00 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w7rWR-00GI56-1l for pgpool-hackers@lists.postgresql.org; Wed, 01 Apr 2026 09:06:00 +0000 Received: from meldrar.postgresql.org ([2a02:c0:301:0:ffff::31]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1w7rWP-0000000273m-0Hc1 for pgpool-hackers@lists.postgresql.org; Wed, 01 Apr 2026 09:05:59 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Content-Transfer-Encoding:Content-Type: Mime-Version:References:In-Reply-To:From:Subject:Cc:To:Message-Id:Date:Sender :Reply-To:Content-ID:Content-Description; bh=afA0Nz6E1qHvXu2NgF3n+W0qjLHPo08m2ras+8x5ICU=; b=E/EW/j1LBpDfoyOEWWtsfPhqOD wwR8kt0UbXMR6eexhgWKGuEW1Ad2a0mBf2O8QLHOM/W44j/XWyqMXIQmaRJcFgZBANCjsBJkr22Me LJcccElgSvc9c5Ra9l4IIIW9Jz+B/6pbfOw66pZCXSjNiX6N9cRTvaBULNxdOQ6Z0o3AUyK0PV8+s RltgFN5fq5QfvU3IZNTW7bBTNonVsAts/oqgxIBS1yBK+Lvv4f1HKMcFFoIZuPDWLoiwssYKy4w6X elHkBiGa/ZqTLX8+pHK/6zbH8qQeLCVvjzmljHC+oJXEzMgM2B84FOAVSUgyKgJ7OlgIb0TwNY2Tk ESHEQEVA==; Received: from [2409:11:4120:300:3c71:6b0a:5ecd:2101] (helo=localhost) by meldrar.postgresql.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w7rWJ-0090wh-0z; Wed, 01 Apr 2026 09:05:55 +0000 Date: Wed, 01 Apr 2026 18:05:42 +0900 (JST) Message-Id: <20260401.180542.2251969369195681939.ishii@postgresql.org> To: bob.ross.19821@gmail.com Cc: pgpool-hackers@lists.postgresql.org Subject: Re: Rotate SSL certificates on reload (SIGHUP) without restart From: Tatsuo Ishii In-Reply-To: References: <20260331.184832.554536681926821839.ishii@postgresql.org> X-Mailer: Mew version 6.8 on Emacs 29.3 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Wed_Apr__1_18_05_42_2026_777)--" Content-Transfer-Encoding: 7bit X-Host-Lookup-Failed: Reverse DNS lookup failed for 2409:11:4120:300:3c71:6b0a:5ecd:2101 (failed) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ----Next_Part(Wed_Apr__1_18_05_42_2026_777)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi Bob, > Hi Tatsuo, > > Thanks for double-checking! Please feel free to go ahead and write the > regression tests if you're up for it. I'd really appreciate the help. I have written the first version of the regression test. This test performs: 1. Set bad value (fixed string "bad_value") to a config param and restart pgpool so that SSL connection does not establish between client and pgpool. 2. Set good value to the config and reload pgpool so that SSL connection establishes. The test is run against: ssl_cert ssl_ciphers ssl_crl_file ssl_ecdh_curve ssl_key It does not test ssl_ca_cert and ssl_ca_cert_dir because the test is based on 023.ssl_connection which does not check cert auth. Should we test cert auth as well? Also this does not test followings: - ssl_dh_params_file If bad value is set to the parameter, it falls back to a builtin value. So it is not possible to set a bad value to the parameter. Do you have an idea to test this? - ssl_passphrase_command Our cert does not require pass passphrase. - ssl_prefer_server_ciphers This only affects server side (backend) ciphers. The test only tests SSL connection between client and pgpool. Attached is the v1 patch including your patch (I have remove "-----" from your commit message. Otherwise the commit message cuts in the middle) and the test script. What do you think? Regards, -- Tatsuo Ishii SRA OSS K.K. English: http://www.sraoss.co.jp/index_en/ Japanese:http://www.sraoss.co.jp ----Next_Part(Wed_Apr__1_18_05_42_2026_777)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v1-0001-Feature-reload-SSL-certificates-on-SIGHUP-without.patch" RnJvbSBjOTdmYzZlOWQ0YWNiM2Y1MDcxZTQ3M2RiM2IzNDU3N2YyNDk4ZDU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBXZWQsIDEgQXByIDIwMjYgMTY6NDM6NDIgKzA5MDAKU3ViamVjdDogW1BBVENIIHYxXSBG ZWF0dXJlOiByZWxvYWQgU1NMIGNlcnRpZmljYXRlcyBvbiBTSUdIVVAgd2l0aG91dCByZXN0YXJ0 Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYt OApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpBbGxvdyBQZ3Bvb2wtSUkgdG8gcGlj ayB1cCByb3RhdGVkIFRMUyBjZXJ0aWZpY2F0ZXMgKGFuZCBhbnkgY2hhbmdlIHRvClNTTC1yZWxh dGVkIGNvbmZpZ3VyYXRpb24pIHdoZW4gcmVjZWl2aW5nIFNJR0hVUCAoaS5lLiBzeXN0ZW1jdGwg cmVsb2FkCnBncG9vbDIpLCBtYXRjaGluZyB0aGUgYmVoYXZpb3IgUG9zdGdyZVNRTCBoYXMgaGFk IHNpbmNlIFBvc3RncmVTUUwgMTIuCgpQcm9ibGVtOgpBbGwgU1NMIGNvbmZpZ3VyYXRpb24gcGFy YW1ldGVycyAoc3NsX2NlcnQsIHNzbF9rZXksIHNzbF9jYV9jZXJ0LApzc2xfY2lwaGVycywgZXRj Likgd2VyZSBkZWNsYXJlZCBDRkdDWFRfSU5JVCwgbWVhbmluZyB0aGV5IHdlcmUgc2lsZW50bHkK aWdub3JlZCB3aGVuIHBvb2xfZ2V0X2NvbmZpZygpIHdhcyBjYWxsZWQgdW5kZXIgQ0ZHQ1hUX1JF TE9BRC4KRnVydGhlcm1vcmUsIFNTTF9TZXJ2ZXJTaWRlX2luaXQoKSB3YXMgb25seSBjYWxsZWQg b25jZSBhdCBzdGFydHVwIGluCm1haW4uYyBhbmQgbmV2ZXIgYWdhaW4sIHNvIHRoZSBpbi1tZW1v cnkgU1NMX0NUWCB3YXMgbmV2ZXIgcmVmcmVzaGVkLgoKRml4OgoxLiBzcmMvbWFpbi9wZ3Bvb2xf bWFpbi5jCiAgIC0gSW5jbHVkZSB1dGlscy9wb29sX3NzbC5oLgogICAtIEluIHJlbG9hZF9jb25m aWcoKSwgY2FsbCBTU0xfU2VydmVyU2lkZV9pbml0KCkgKGd1YXJkZWQgYnkKICAgICAjaWZkZWYg VVNFX1NTTCkgKmJlZm9yZSoga2lsbF9hbGxfY2hpbGRyZW4oU0lHSFVQKS4gIFRoZSBmdW5jdGlv bgogICAgIGFscmVhZHkgcmVwbGFjZXMgU1NMX2Zyb250ZW5kX2NvbnRleHQgYXRvbWljYWxseTog aXQgZnJlZXMgdGhlIG9sZAogICAgIFNTTF9DVFggb25seSBhZnRlciBhIG5ldyBvbmUgaGFzIGJl ZW4gY3JlYXRlZCBzdWNjZXNzZnVsbHksIHNvIGEKICAgICBmYWlsZWQgcmVsb2FkIGxlYXZlcyB0 aGUgZXhpc3RpbmcgY29udGV4dCBpbnRhY3QuCgoyLiBzcmMvcHJvdG9jb2wvY2hpbGQuYwogICAt IEluIGNoZWNrX2NvbmZpZ19yZWxvYWQoKSwgY2FsbCBTU0xfU2VydmVyU2lkZV9pbml0KCkgKGd1 YXJkZWQgYnkKICAgICAjaWZkZWYgVVNFX1NTTCkgc28gZWFjaCB3b3JrZXIgY2hpbGQgYWxzbyBy ZWZyZXNoZXMgaXRzIG93biBjb3B5IG9mCiAgICAgdGhlIFNTTCBjb250ZXh0IGZvciBzdWJzZXF1 ZW50IG5ldyBjb25uZWN0aW9ucy4gIEluLWZsaWdodCBUTFMKICAgICBzZXNzaW9ucyBhcmUgdW5h ZmZlY3RlZCBiZWNhdXNlIHRoZXkgaG9sZCBhIGRpcmVjdCByZWZlcmVuY2UgdG8gdGhlCiAgICAg U1NMIG9iamVjdCwgbm90IHRvIFNTTF9mcm9udGVuZF9jb250ZXh0LgoKMy4gc3JjL2NvbmZpZy9w b29sX2NvbmZpZ192YXJpYWJsZXMuYwogICAtIENoYW5nZSBDRkdDWFRfSU5JVCAtPiBDRkdDWFRf UkVMT0FEIGZvcjoKICAgICAgIHNzbF9wcmVmZXJfc2VydmVyX2NpcGhlcnMsIHNzbF9jZXJ0LCBz c2xfa2V5LCBzc2xfY2FfY2VydCwKICAgICAgIHNzbF9jYV9jZXJ0X2Rpciwgc3NsX2NybF9maWxl LCBzc2xfY2lwaGVycywgc3NsX2VjZGhfY3VydmUsCiAgICAgICBzc2xfZGhfcGFyYW1zX2ZpbGUs IHNzbF9wYXNzcGhyYXNlX2NvbW1hbmQuCiAgIC0gVGhlICdzc2wnIGJvb2xlYW4gKG1hc3RlciBl bmFibGUgZmxhZykgaXMgaW50ZW50aW9uYWxseSBsZWZ0IGFzCiAgICAgQ0ZHQ1hUX0lOSVQgYmVj YXVzZSBkeW5hbWljYWxseSBlbmFibGluZyBTU0wgYXQgcnVudGltZSBpcyBhCiAgICAgbGFyZ2Vy LCBzZXBhcmF0ZSBjb25jZXJuLgoKVXNhZ2UgYWZ0ZXIgdGhpcyBjaGFuZ2U6ClN0YW5kYXJkIGlu LXBsYWNlIGNlcnRpZmljYXRlIHJvdGF0aW9uIChjZXJ0LW1hbmFnZXIsIEFDTUUsIG1hbnVhbApv cGVuc3NsIHJlZnJlc2ggYXQgdGhlIHNhbWUgcGF0aCk6CgogICAgIyByZXBsYWNlIC9ldGMvcGdw b29sL3NlcnZlci57Y3J0LGtleX0gd2l0aCBuZXcgZmlsZXMKICAgIHN5c3RlbWN0bCByZWxvYWQg cGdwb29sMgogICAgIyBvcjogcGdwb29sIC1mIC9ldGMvcGdwb29sL3BncG9vbC5jb25mIHJlbG9h ZAoKTmV3IGNvbm5lY3Rpb25zIHdpbGwgdXNlIHRoZSBuZXcgY2VydGlmaWNhdGVzIGFmdGVyIHdv cmtlcnMgcHJvY2Vzcwp0aGUgcmVsb2FkIHNpZ25hbC4gRXhpc3RpbmcgY29ubmVjdGlvbnMgYXJl IG5vdCBpbnRlcnJ1cHRlZC4KClN3aXRjaGluZyB0byBhIGRpZmZlcmVudCBjZXJ0aWZpY2F0ZSBw YXRoIGFsc28gd29ya3M6IHVwZGF0ZQpwZ3Bvb2wuY29uZiB0aGVuIHJlbG9hZCDigJQgdGhlIG5l dyBwYXRocyBhcmUgbm93IGFjY2VwdGVkIGluCkNGR0NYVF9SRUxPQUQgY29udGV4dC4KCkF1dGhv cjogQm9iIFJvc3MgPGJvYi5yb3NzLjE5ODIxQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFRhdHN1 byBJc2hpaSA8aXNoaWlAcG9zdGdyZXNxbC5vcmc+CkRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBv c3RncmVzcWwub3JnL21lc3NhZ2UtaWQvZmxhdC9DQUh0WnZyZGRxZmJuRVJZWV9EcWdVUldDanVY ZVRqTTB5MDhrLVpQX0IwYkFIWXgyYWclNDBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9jb25maWcv cG9vbF9jb25maWdfdmFyaWFibGVzLmMgICAgICAgICAgICB8ICAyMCArLQogc3JjL21haW4vcGdw b29sX21haW4uYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE3ICsrCiBzcmMvcHJvdG9jb2wv Y2hpbGQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKwogLi4uL3JlZ3Jlc3Npb24v dGVzdHMvMDQyLnNzbF9yZWxvYWQvUkVBRE1FICAgIHwgICA2ICsKIC4uLi90ZXN0cy8wNDIuc3Ns X3JlbG9hZC9zZXJ2ZXIuY3J0ICAgICAgICAgICB8ICA3OSArKysrKysrKwogLi4uL3Rlc3RzLzA0 Mi5zc2xfcmVsb2FkL3NlcnZlci5rZXkgICAgICAgICAgIHwgIDI3ICsrKwogLi4uL3Rlc3RzLzA0 Mi5zc2xfcmVsb2FkL3NlcnZlci5yZXEgICAgICAgICAgIHwgIDYxICsrKysrKwogLi4uL3JlZ3Jl c3Npb24vdGVzdHMvMDQyLnNzbF9yZWxvYWQvdGVzdC5zaCAgIHwgMTg5ICsrKysrKysrKysrKysr KysrKwogOCBmaWxlcyBjaGFuZ2VkLCA0MDAgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0p CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzc2lvbi90ZXN0cy8wNDIuc3NsX3Jl bG9hZC9SRUFETUUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzaW9uL3Rlc3Rz LzA0Mi5zc2xfcmVsb2FkL3NlcnZlci5jcnQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9y ZWdyZXNzaW9uL3Rlc3RzLzA0Mi5zc2xfcmVsb2FkL3NlcnZlci5rZXkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvdGVzdC9yZWdyZXNzaW9uL3Rlc3RzLzA0Mi5zc2xfcmVsb2FkL3NlcnZlci5yZXEK IGNyZWF0ZSBtb2RlIDEwMDc1NSBzcmMvdGVzdC9yZWdyZXNzaW9uL3Rlc3RzLzA0Mi5zc2xfcmVs b2FkL3Rlc3Quc2gKCmRpZmYgLS1naXQgYS9zcmMvY29uZmlnL3Bvb2xfY29uZmlnX3ZhcmlhYmxl cy5jIGIvc3JjL2NvbmZpZy9wb29sX2NvbmZpZ192YXJpYWJsZXMuYwppbmRleCBjZTEzYzQyZjYu LmNhNDBjMzQxYSAxMDA2NDQKLS0tIGEvc3JjL2NvbmZpZy9wb29sX2NvbmZpZ192YXJpYWJsZXMu YworKysgYi9zcmMvY29uZmlnL3Bvb2xfY29uZmlnX3ZhcmlhYmxlcy5jCkBAIC03MDUsNyArNzA1 LDcgQEAgc3RhdGljIHN0cnVjdCBjb25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJ fSwKIAogCXsKLQkJeyJzc2xfcHJlZmVyX3NlcnZlcl9jaXBoZXJzIiwgQ0ZHQ1hUX0lOSVQsIFNT TF9DT05GSUcsCisJCXsic3NsX3ByZWZlcl9zZXJ2ZXJfY2lwaGVycyIsIENGR0NYVF9SRUxPQUQs IFNTTF9DT05GSUcsCiAJCQkiVXNlIHNlcnZlcidzIFNTTCBjaXBoZXIgcHJlZmVyZW5jZXMsIHJh dGhlciB0aGFuIHRoZSBjbGllbnQncyIsCiAJCQlDT05GSUdfVkFSX1RZUEVfQk9PTCwgZmFsc2Us IDAKIAkJfSwKQEAgLTEyNzEsNyArMTI3MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY29uZmlnX3N0cmlu ZyBDb25maWd1cmVOYW1lc1N0cmluZ1tdID0KIAl9LAogCiAJewotCQl7InNzbF9jZXJ0IiwgQ0ZH Q1hUX0lOSVQsIFNTTF9DT05GSUcsCisJCXsic3NsX2NlcnQiLCBDRkdDWFRfUkVMT0FELCBTU0xf Q09ORklHLAogCQkJIlNTTCBwdWJsaWMgY2VydGlmaWNhdGUgZmlsZS4iLAogCQkJQ09ORklHX1ZB Ul9UWVBFX1NUUklORywgZmFsc2UsIDAKIAkJfSwKQEAgLTEyODEsNyArMTI4MSw3IEBAIHN0YXRp YyBzdHJ1Y3QgY29uZmlnX3N0cmluZyBDb25maWd1cmVOYW1lc1N0cmluZ1tdID0KIAl9LAogCiAJ ewotCQl7InNzbF9rZXkiLCBDRkdDWFRfSU5JVCwgU1NMX0NPTkZJRywKKwkJeyJzc2xfa2V5Iiwg Q0ZHQ1hUX1JFTE9BRCwgU1NMX0NPTkZJRywKIAkJCSJTU0wgcHJpdmF0ZSBrZXkgZmlsZS4iLAog CQkJQ09ORklHX1ZBUl9UWVBFX1NUUklORywgZmFsc2UsIDAKIAkJfSwKQEAgLTEyOTEsNyArMTI5 MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY29uZmlnX3N0cmluZyBDb25maWd1cmVOYW1lc1N0cmluZ1td ID0KIAl9LAogCiAJewotCQl7InNzbF9jYV9jZXJ0IiwgQ0ZHQ1hUX0lOSVQsIFNTTF9DT05GSUcs CisJCXsic3NsX2NhX2NlcnQiLCBDRkdDWFRfUkVMT0FELCBTU0xfQ09ORklHLAogCQkJIlNpbmds ZSBQRU0gZm9ybWF0IGZpbGUgY29udGFpbmluZyBDQSByb290IGNlcnRpZmljYXRlKHMpLiIsCiAJ CQlDT05GSUdfVkFSX1RZUEVfU1RSSU5HLCBmYWxzZSwgMAogCQl9LApAQCAtMTMwMSw3ICsxMzAx LDcgQEAgc3RhdGljIHN0cnVjdCBjb25maWdfc3RyaW5nIENvbmZpZ3VyZU5hbWVzU3RyaW5nW10g PQogCX0sCiAKIAl7Ci0JCXsic3NsX2NhX2NlcnRfZGlyIiwgQ0ZHQ1hUX0lOSVQsIFNTTF9DT05G SUcsCisJCXsic3NsX2NhX2NlcnRfZGlyIiwgQ0ZHQ1hUX1JFTE9BRCwgU1NMX0NPTkZJRywKIAkJ CSJEaXJlY3RvcnkgY29udGFpbmluZyBDQSByb290IGNlcnRpZmljYXRlKHMpLiIsCiAJCQlDT05G SUdfVkFSX1RZUEVfU1RSSU5HLCBmYWxzZSwgMAogCQl9LApAQCAtMTMxMSw3ICsxMzExLDcgQEAg c3RhdGljIHN0cnVjdCBjb25maWdfc3RyaW5nIENvbmZpZ3VyZU5hbWVzU3RyaW5nW10gPQogCX0s CiAKIAl7Ci0JCXsic3NsX2NybF9maWxlIiwgQ0ZHQ1hUX0lOSVQsIFNTTF9DT05GSUcsCisJCXsi c3NsX2NybF9maWxlIiwgQ0ZHQ1hUX1JFTE9BRCwgU1NMX0NPTkZJRywKIAkJCSJTU0wgY2VydGlm aWNhdGUgcmV2b2NhdGlvbiBsaXN0IGZpbGUiLAogCQkJQ09ORklHX1ZBUl9UWVBFX1NUUklORywg ZmFsc2UsIDAKIAkJfSwKQEAgLTEzMjEsNyArMTMyMSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY29uZmln X3N0cmluZyBDb25maWd1cmVOYW1lc1N0cmluZ1tdID0KIAl9LAogCiAJewotCQl7InNzbF9jaXBo ZXJzIiwgQ0ZHQ1hUX0lOSVQsIFNTTF9DT05GSUcsCisJCXsic3NsX2NpcGhlcnMiLCBDRkdDWFRf UkVMT0FELCBTU0xfQ09ORklHLAogCQkJIkFsbG93ZWQgU1NMIGNpcGhlcnMuIiwKIAkJCUNPTkZJ R19WQVJfVFlQRV9TVFJJTkcsIGZhbHNlLCAwCiAJCX0sCkBAIC0xMzMxLDcgKzEzMzEsNyBAQCBz dGF0aWMgc3RydWN0IGNvbmZpZ19zdHJpbmcgQ29uZmlndXJlTmFtZXNTdHJpbmdbXSA9CiAJfSwK IAogCXsKLQkJeyJzc2xfZWNkaF9jdXJ2ZSIsIENGR0NYVF9JTklULCBTU0xfQ09ORklHLAorCQl7 InNzbF9lY2RoX2N1cnZlIiwgQ0ZHQ1hUX1JFTE9BRCwgU1NMX0NPTkZJRywKIAkJCSJUaGUgY3Vy dmUgdG8gdXNlIGluIEVDREgga2V5IGV4Y2hhbmdlLiIsCiAJCQlDT05GSUdfVkFSX1RZUEVfU1RS SU5HLCBmYWxzZSwgMAogCQl9LApAQCAtMTM0MSw3ICsxMzQxLDcgQEAgc3RhdGljIHN0cnVjdCBj b25maWdfc3RyaW5nIENvbmZpZ3VyZU5hbWVzU3RyaW5nW10gPQogCX0sCiAKIAl7Ci0JCXsic3Ns X2RoX3BhcmFtc19maWxlIiwgQ0ZHQ1hUX0lOSVQsIFNTTF9DT05GSUcsCisJCXsic3NsX2RoX3Bh cmFtc19maWxlIiwgQ0ZHQ1hUX1JFTE9BRCwgU1NMX0NPTkZJRywKIAkJCSJQYXRoIHRvIHRoZSBE aWZmaWUtSGVsbG1hbiBwYXJhbWV0ZXJzIGNvbnRhaW5lZCBmaWxlIiwKIAkJCUNPTkZJR19WQVJf VFlQRV9TVFJJTkcsIGZhbHNlLCAwCiAJCX0sCkBAIC0xMzUxLDcgKzEzNTEsNyBAQCBzdGF0aWMg c3RydWN0IGNvbmZpZ19zdHJpbmcgQ29uZmlndXJlTmFtZXNTdHJpbmdbXSA9CiAJfSwKIAogCXsK LQkJeyJzc2xfcGFzc3BocmFzZV9jb21tYW5kIiwgQ0ZHQ1hUX0lOSVQsIFNTTF9DT05GSUcsCisJ CXsic3NsX3Bhc3NwaHJhc2VfY29tbWFuZCIsIENGR0NYVF9SRUxPQUQsIFNTTF9DT05GSUcsCiAJ CQkiUGF0aCB0byB0aGUgRGlmZmllLUhlbGxtYW4gcGFyYW1ldGVycyBjb250YWluZWQgZmlsZSIs CiAJCQlDT05GSUdfVkFSX1RZUEVfU1RSSU5HLCBmYWxzZSwgMAogCQl9LApkaWZmIC0tZ2l0IGEv c3JjL21haW4vcGdwb29sX21haW4uYyBiL3NyYy9tYWluL3BncG9vbF9tYWluLmMKaW5kZXggYmY3 YzQ1MmUyLi4wYTljOTI4MjYgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL3BncG9vbF9tYWluLmMKKysr IGIvc3JjL21haW4vcGdwb29sX21haW4uYwpAQCAtNjEsNiArNjEsNyBAQAogI2luY2x1ZGUgIndh dGNoZG9nL3dkX2xpZmVjaGVjay5oIgogI2luY2x1ZGUgIndhdGNoZG9nL3dhdGNoZG9nLmgiCiAj aW5jbHVkZSAicGNwL3BjcF93b3JrZXIuaCIKKyNpbmNsdWRlICJ1dGlscy9wb29sX3NzbC5oIgog I2luY2x1ZGUgPGdycC5oPgogCiAvKgpAQCAtMzQ4OSw2ICszNDkwLDIyIEBAIHJlbG9hZF9jb25m aWcodm9pZCkKIAlpZiAocG9vbF9jb25maWctPmVuYWJsZV9wb29sX2hiYSkKIAkJbG9hZF9oYmEo aGJhX2ZpbGUpOwogCisjaWZkZWYgVVNFX1NTTAorCS8qCisJICogSWYgU1NMIGlzIGVuYWJsZWQs IHJlLWluaXRpYWxpemUgdGhlIFNTTCBjb250ZXh0IHNvIHRoYXQgbmV3CisJICogY29ubmVjdGlv bnMgcGljayB1cCByb3RhdGVkIGNlcnRpZmljYXRlcyB3aXRob3V0IHJlcXVpcmluZyBhIHJlc3Rh cnQuCisJICogU1NMX1NlcnZlclNpZGVfaW5pdCgpIGlzIHNhZmUgdG8gY2FsbCByZXBlYXRlZGx5 OiBpdCBmcmVlcyBhbmQgcmVwbGFjZXMKKwkgKiB0aGUgZXhpc3RpbmcgU1NMX0NUWCBvbmx5IG9u IHN1Y2Nlc3MsIGxlYXZpbmcgdGhlIG9sZCBjb250ZXh0IGludGFjdCBvbgorCSAqIGZhaWx1cmUu CisJICovCisJaWYgKHBvb2xfY29uZmlnLT5zc2wpCisJeworCQllcmVwb3J0KExPRywKKwkJCQko ZXJybXNnKCJyZWxvYWQgU1NMIGNlcnRpZmljYXRlcy4iKSkpOworCQlTU0xfU2VydmVyU2lkZV9p bml0KCk7CisJfQorI2VuZGlmCQkJCQkJCS8qIFVTRV9TU0wgKi8KKwogCWtpbGxfYWxsX2NoaWxk cmVuKFNJR0hVUCk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9wcm90b2NvbC9jaGlsZC5jIGIvc3Jj L3Byb3RvY29sL2NoaWxkLmMKaW5kZXggYzM0ZjA1NzI4Li43MTNiZmUyOGYgMTAwNjQ0Ci0tLSBh L3NyYy9wcm90b2NvbC9jaGlsZC5jCisrKyBiL3NyYy9wcm90b2NvbC9jaGlsZC5jCkBAIC0xNzk2 LDYgKzE3OTYsMTcgQEAgY2hlY2tfY29uZmlnX3JlbG9hZCh2b2lkKQogCQlpZiAoc3RyY21wKCIi LCBwb29sX2NvbmZpZy0+cG9vbF9wYXNzd2QpKQogCQkJcG9vbF9yZW9wZW5fcGFzc3dkX2ZpbGUo KTsKIAorI2lmZGVmIFVTRV9TU0wKKwkJLyoKKwkJICogUmUtaW5pdGlhbGl6ZSB0aGUgZnJvbnRl bmQgU1NMIGNvbnRleHQgc28gdGhpcyBjaGlsZCBwcm9jZXNzCisJCSAqIHNlcnZlcyBuZXcgY29u bmVjdGlvbnMgd2l0aCBhbnkgcm90YXRlZCBjZXJ0aWZpY2F0ZXMgd2l0aG91dCBhCisJCSAqIHJl c3RhcnQuICBJbi1mbGlnaHQgVExTIHNlc3Npb25zIGFyZSB1bmFmZmVjdGVkOyB0aGV5IGhvbGQg YQorCQkgKiBkaXJlY3QgcmVmZXJlbmNlIHRvIHRoZSBvbGQgU1NMIG9iamVjdC4KKwkJICovCisJ CWlmIChwb29sX2NvbmZpZy0+c3NsKQorCQkJU1NMX1NlcnZlclNpZGVfaW5pdCgpOworI2VuZGlm CQkJCQkJLyogVVNFX1NTTCAqLworCiAJCWdvdF9zaWdodXAgPSAwOwogCX0KIH0KZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Npb24vdGVzdHMvMDQyLnNzbF9yZWxvYWQvUkVBRE1FIGIvc3Jj L3Rlc3QvcmVncmVzc2lvbi90ZXN0cy8wNDIuc3NsX3JlbG9hZC9SRUFETUUKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5jNzNjZjBiZDMKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzaW9uL3Rlc3RzLzA0Mi5zc2xfcmVsb2FkL1JFQURNRQpAQCAtMCwwICsx LDYgQEAKK1RoZSBzYW1wbGUgc2VydmVyLmtleSBhbmQgc2VydmVyLmNydCB3YXMgY3JlYXRlZCBi eSB1c2luZyBmb2xsb3dpbmcgY29tbWFuZHM6CisKK29wZW5zc2wgcmVxIC1uZXcgLXRleHQgLW91 dCBzZXJ2ZXIucmVxCitvcGVuc3NsIHJzYSAtaW4gcHJpdmtleS5wZW0gLW91dCBzZXJ2ZXIua2V5 CitybSBwcml2a2V5LnBlbQorb3BlbnNzbCByZXEgLXg1MDkgLWRheXMgMzY1MCAtaW4gc2VydmVy LnJlcSAtdGV4dCAta2V5IHNlcnZlci5rZXkgLW91dCBzZXJ2ZXIuY3J0CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzaW9uL3Rlc3RzLzA0Mi5zc2xfcmVsb2FkL3NlcnZlci5jcnQgYi9zcmMv dGVzdC9yZWdyZXNzaW9uL3Rlc3RzLzA0Mi5zc2xfcmVsb2FkL3NlcnZlci5jcnQKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi45MGQ1ZTA4ZTcKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzaW9uL3Rlc3RzLzA0Mi5zc2xfcmVsb2FkL3NlcnZlci5jcnQKQEAg LTAsMCArMSw3OSBAQAorQ2VydGlmaWNhdGU6CisgICAgRGF0YToKKyAgICAgICAgVmVyc2lvbjog MyAoMHgyKQorICAgICAgICBTZXJpYWwgTnVtYmVyOgorICAgICAgICAgICAgZjQ6ODY6NGE6YWE6 NTA6NDI6NjM6ZGMKKyAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGEyNTZXaXRoUlNBRW5jcnlw dGlvbgorICAgICAgICBJc3N1ZXI6IEMgPSBBVSwgU1QgPSBTb21lLVN0YXRlLCBPID0gSW50ZXJu ZXQgV2lkZ2l0cyBQdHkgTHRkCisgICAgICAgIFZhbGlkaXR5CisgICAgICAgICAgICBOb3QgQmVm b3JlOiBBdWcgMjkgMDI6NTI6MzYgMjAxOCBHTVQKKyAgICAgICAgICAgIE5vdCBBZnRlciA6IEF1 ZyAyNiAwMjo1MjozNiAyMDI4IEdNVAorICAgICAgICBTdWJqZWN0OiBDID0gQVUsIFNUID0gU29t ZS1TdGF0ZSwgTyA9IEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZAorICAgICAgICBTdWJqZWN0IFB1 YmxpYyBLZXkgSW5mbzoKKyAgICAgICAgICAgIFB1YmxpYyBLZXkgQWxnb3JpdGhtOiByc2FFbmNy eXB0aW9uCisgICAgICAgICAgICAgICAgUHVibGljLUtleTogKDIwNDggYml0KQorICAgICAgICAg ICAgICAgIE1vZHVsdXM6CisgICAgICAgICAgICAgICAgICAgIDAwOmY0OmUzOjMwOmYwOjA5OmUy OjQzOjBlOmExOjY3OjJlOjNiOmVmOmI1OgorICAgICAgICAgICAgICAgICAgICA4ODoxZTo0ZTph OTowNjpmYTpmMjo5NDo4YjpmYTo0ZjowYTo5ZjplMDo1NzoKKyAgICAgICAgICAgICAgICAgICAg NDU6OTU6MmM6YzE6MTg6MWQ6MjE6NmQ6Yzg6NWM6MmE6MDU6OTQ6MGI6YzY6CisgICAgICAgICAg ICAgICAgICAgIDQ5OmM1Ojk3Ojg4OmFjOjg4OmJhOjczOmZiOjgxOjI4OmViOmUxOmNkOjdmOgor ICAgICAgICAgICAgICAgICAgICA5ZDpmYjplMDpjNTowZDplZjozNTpjYzoxMjpiODo3NDowYjph MTplOTo2NToKKyAgICAgICAgICAgICAgICAgICAgZDQ6MTk6Mzg6OWI6YTg6ZTE6YzU6ZWY6ZDU6 ZjE6OWM6Y2Y6OGE6ZGU6YmY6CisgICAgICAgICAgICAgICAgICAgIGZhOmQ3OjZjOmY5OmQ3Ojg1 OjEwOmRiOjlmOmU5OjAzOmU5OjdlOmYxOjgxOgorICAgICAgICAgICAgICAgICAgICBkZTo5ZDpm MzpiMzphMzo2ZjoxOTozMTpjODpiYjozMTpjMDplNzo3ZDplYToKKyAgICAgICAgICAgICAgICAg ICAgNmI6MDI6OTg6MjE6N2M6YzI6ZjU6OWQ6MGQ6N2M6ODU6MmI6NWQ6ODE6N2M6CisgICAgICAg ICAgICAgICAgICAgIDcxOjc0OjQyOjg5OmFiOjVjOjMxOmFjOjE5OmZkOmMyOjBiOmZiOmU1OmMy OgorICAgICAgICAgICAgICAgICAgICBiMjo1NDoxNTo2NDo0MDo5YzpiZjplZDpkMjpiMTpiYjo3 NTpmOTplOTpkODoKKyAgICAgICAgICAgICAgICAgICAgNjc6YjM6NGU6NjM6YzQ6M2U6ZjQ6OGE6 MmM6ODc6NTA6Mjc6ZGQ6MjI6OTc6CisgICAgICAgICAgICAgICAgICAgIGYxOmY3OjI2OjQ5Ojg3 OjAzOjU1OjA4OmE0OmQyOjQ0OjIxOmUxOjlhOjMzOgorICAgICAgICAgICAgICAgICAgICA4Mjo5 NjowOTpiMzowODo2NTpiYzphODozYTpmNDo2NDpmMzo2MDo2MjpkMDoKKyAgICAgICAgICAgICAg ICAgICAgOTg6ZDk6ODI6MGM6MWI6YmU6YjY6OWM6MjI6ZTg6N2Y6ZTY6ZWI6MjA6ZDk6CisgICAg ICAgICAgICAgICAgICAgIDcxOjY3OjJjOmQ1OjE0OjgzOmFhOmYxOjM3Ojc1Ojk4OjRjOjY4OjFk Ojk1OgorICAgICAgICAgICAgICAgICAgICBmZToxZjplYzpjYjo5YjoxNzo5YzpmNDo5MjoyMjpk YTpiYjo3ODo0NjpmMzoKKyAgICAgICAgICAgICAgICAgICAgZGU6N2QKKyAgICAgICAgICAgICAg ICBFeHBvbmVudDogNjU1MzcgKDB4MTAwMDEpCisgICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgor ICAgICAgICAgICAgWDUwOXYzIFN1YmplY3QgS2V5IElkZW50aWZpZXI6IAorICAgICAgICAgICAg ICAgIDY4OkVEOkE3OkZFOjFFOjM2OjI2OjE4OjgwOjJCOkM2OkEyOjA3OjIzOjFDOkE0OjAwOjU3 OjE2OjY4CisgICAgICAgICAgICBYNTA5djMgQXV0aG9yaXR5IEtleSBJZGVudGlmaWVyOiAKKyAg ICAgICAgICAgICAgICBrZXlpZDo2ODpFRDpBNzpGRToxRTozNjoyNjoxODo4MDoyQjpDNjpBMjow NzoyMzoxQzpBNDowMDo1NzoxNjo2OAorCisgICAgICAgICAgICBYNTA5djMgQmFzaWMgQ29uc3Ry YWludHM6IGNyaXRpY2FsCisgICAgICAgICAgICAgICAgQ0E6VFJVRQorICAgIFNpZ25hdHVyZSBB bGdvcml0aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9uCisgICAgICAgICBkZDo2MTo2Mjo4Mzo2 ZTpmYTplODo4YToxYjowMjpjNjo5Zjo3ZjpmMzo1MjpmODowNDo1YzoKKyAgICAgICAgIGM5OjM1 OmY5OjRjOjFkOjRmOjBmOjlmOjZjOmEyOjE4Ojk1OmYwOjc2OjkzOmU1Ojk5OjU4OgorICAgICAg ICAgNGE6ODg6N2E6NTQ6Njg6Y2Y6Mjg6NjQ6OGU6MDE6M2Y6ZmI6N2U6Mjg6NmY6YWQ6YzY6MDg6 CisgICAgICAgICBhMjowOTo3Nzo0YzoxMzo0YjoxZDo2ODo3MDozODo5MTpkNDpkYzpmNzpjMzpj ODo4MTozNjoKKyAgICAgICAgIDQ4OmI5OjAxOjQ2OmY5OmZhOmU4OmY3OmJhOmZlOjIzOjRjOmUz OjI3OmE5OjU4OjJkOmE2OgorICAgICAgICAgM2Q6ODg6YWM6Yjg6NzE6OWI6ODQ6ZWM6YmQ6ODI6 YzQ6NDU6MWQ6YmE6Nzc6ZWQ6NzM6NTQ6CisgICAgICAgICBhOToxNjo3Njo4MDo0MDowYjo4MDo0 Mjo0Nzo2MDo4NDpjZjo0MTplMDowZjo4ZTo4NTpkMzoKKyAgICAgICAgIDI4OjM2OmZiOmY2Ojhj OmY4OmM2OjIwOmIzOmM0OjA2OmNjOjJkOjZkOjM3Ojc4OmI0OmQ1OgorICAgICAgICAgNGQ6MTQ6 ZGI6ZjA6MDQ6NTY6NjY6ZDg6NWE6Y2M6ZmY6YmQ6MGM6MTk6NmQ6Mzk6YmY6MjY6CisgICAgICAg ICBhYzoxNzowYzo5MTphNDo2ODo0YjpiYzo4Njo0ZjowYToxMDo4MTpiNTphYzoxZTphNjo3ODoK KyAgICAgICAgIGIxOjdmOmU5OmYzOjllOjFiOjMyOjkyOmIyOjhmOmY3OmUyOmEzOmFlOjQ0OmUy Ojk5OmIwOgorICAgICAgICAgMDQ6MGE6MTU6ZWI6N2E6Mzc6MTA6YjI6N2I6ZWY6MzU6NmM6YTU6 ZGI6MTM6OTY6NDI6ZTk6CisgICAgICAgICAyMjozYzo3Mjo2YTozNDoxNjowZDpiNToyYzo0OTpm Mzo4MzpjNzpmZjpkYTplYzo1NzoxNDoKKyAgICAgICAgIGFiOjBkOjhkOjc2OjhmOmYwOmEyOjIx OjRmOjg4OjU0OmJjOjJmOmM2OmI5OjdiOjhjOmRhOgorICAgICAgICAgNDI6OWE6YjE6MTIKKy0t LS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRFlEQ0NBa2lnQXdJQkFnSUpBUFNHU3FwUVFt UGNNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1FVXhDekFKQmdOVgorQkFZVEFrRlZNUk13RVFZRFZRUUlE QXBUYjIxbExWTjBZWFJsTVNFd0h3WURWUVFLREJoSmJuUmxjbTVsZENCWAorYVdSbmFYUnpJRkIw ZVNCTWRHUXdIaGNOTVRnd09ESTVNREkxTWpNMldoY05Namd3T0RJMk1ESTFNak0yV2pCRgorTVFz d0NRWURWUVFHRXdKQlZURVRNQkVHQTFVRUNBd0tVMjl0WlMxVGRHRjBaVEVoTUI4R0ExVUVDZ3dZ U1c1MAorWlhKdVpYUWdWMmxrWjJsMGN5QlFkSGtnVEhSa01JSUJJakFOQmdrcWhraUc5dzBCQVFF RkFBT0NBUThBTUlJQgorQ2dLQ0FRRUE5T013OEFuaVF3NmhaeTQ3NzdXSUhrNnBCdnJ5bEl2NlR3 cWY0RmRGbFN6QkdCMGhiY2hjS2dXVQorQzhaSnhaZUlySWk2Yy91QktPdmh6WCtkKytERkRlODF6 Qks0ZEF1aDZXWFVHVGlicU9IRjc5WHhuTStLM3IvNgorMTJ6NTE0VVEyNS9wQStsKzhZSGVuZk96 bzI4Wk1jaTdNY0RuZmVwckFwZ2hmTUwxblExOGhTdGRnWHh4ZEVLSgorcTF3eHJCbjl3Z3Y3NWNL eVZCVmtRSnkvN2RLeHUzWDU2ZGhuczA1anhENzBpaXlIVUNmZElwZng5eVpKaHdOVgorQ0tUU1JD SGhtak9DbGdtekNHVzhxRHIwWlBOZ1l0Q1kyWUlNRzc2Mm5DTG9mK2JySU5seFp5elZGSU9xOFRk MQorbUV4b0haWCtIK3pMbXhlYzlKSWkycnQ0UnZQZWZRSURBUUFCbzFNd1VUQWRCZ05WSFE0RUZn UVVhTzJuL2g0MgorSmhpQUs4YWlCeU1jcEFCWEZtZ3dId1lEVlIwakJCZ3dGb0FVYU8ybi9oNDJK aGlBSzhhaUJ5TWNwQUJYRm1ndworRHdZRFZSMFRBUUgvQkFVd0F3RUIvekFOQmdrcWhraUc5dzBC QVFzRkFBT0NBUUVBM1dGaWcyNzY2SW9iQXNhZgorZi9OUytBUmN5VFg1VEIxUEQ1OXNvaGlWOEhh VDVabFlTb2g2VkdqUEtHU09BVC83ZmlodnJjWUlvZ2wzVEJOTAorSFdod09KSFUzUGZEeUlFMlNM a0JSdm42NlBlNi9pTk00eWVwV0MybVBZaXN1SEdiaE95OWdzUkZIYnAzN1hOVQorcVJaMmdFQUxn RUpIWUlUUFFlQVBqb1hUS0RiNzlvejR4aUN6eEFiTUxXMDNlTFRWVFJUYjhBUldadGhhelArOQor REJsdE9iOG1yQmNNa2FSb1M3eUdUd29RZ2JXc0hxWjRzWC9wODU0Yk1wS3lqL2ZpbzY1RTRwbXdC QW9WNjNvMworRUxKNzd6VnNwZHNUbGtMcElqeHlhalFXRGJVc1NmT0R4Ly9hN0ZjVXF3Mk5kby93 b2lGUGlGUzhMOGE1ZTR6YQorUXBxeEVnPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Npb24vdGVzdHMvMDQyLnNzbF9yZWxvYWQvc2VydmVy LmtleSBiL3NyYy90ZXN0L3JlZ3Jlc3Npb24vdGVzdHMvMDQyLnNzbF9yZWxvYWQvc2VydmVyLmtl eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjBkZGQ2OTMwMwotLS0gL2Rl di9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Npb24vdGVzdHMvMDQyLnNzbF9yZWxvYWQvc2Vy dmVyLmtleQpAQCAtMCwwICsxLDI3IEBACistLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0t CitNSUlFcFFJQkFBS0NBUUVBOU9NdzhBbmlRdzZoWnk0Nzc3V0lIazZwQnZyeWxJdjZUd3FmNEZk RmxTekJHQjBoCitiY2hjS2dXVUM4Wkp4WmVJcklpNmMvdUJLT3ZoelgrZCsrREZEZTgxekJLNGRB dWg2V1hVR1RpYnFPSEY3OVh4CituTStLM3IvNjEyejUxNFVRMjUvcEErbCs4WUhlbmZPem8yOFpN Y2k3TWNEbmZlcHJBcGdoZk1MMW5RMThoU3RkCitnWHh4ZEVLSnExd3hyQm45d2d2NzVjS3lWQlZr UUp5LzdkS3h1M1g1NmRobnMwNWp4RDcwaWl5SFVDZmRJcGZ4Cis5eVpKaHdOVkNLVFNSQ0hobWpP Q2xnbXpDR1c4cURyMFpQTmdZdENZMllJTUc3NjJuQ0xvZiticklObHhaeXpWCitGSU9xOFRkMW1F eG9IWlgrSCt6TG14ZWM5SklpMnJ0NFJ2UGVmUUlEQVFBQkFvSUJBRDZFZmFyYUt4eEpjT1VoCito WVdseDNGTlRaT05uejVUR2Z6eHptejhlclFocjg0VEtjU1lJUWROVTBWS1F1MGh5VythbkZjZHZ4 U09XNkFWCiswMlJKTnFWZkMxSGsrWmdPbkRBMG9kZ3FmbnEzNE10Z3lBVHJheDJBejI0TjBSNjNS dDE2em9jRUpqZExtMlNoCitvWnU0c2lybWZ2dXRycXVUbSt3V29IMzBXN1hUQ3JkMTd0aHE4KzVW QnVtWExXNHNyNDBQV1hjZlBDMU9kN0pICit1dFlaMGxHeHI4OWZodVBwbnBMdzdWNjdFZHNsd21Z bDhhdmh6clVsemtYUHF1ZlozM1hkV0ZpL0lYb05qTVoyCitNRmdaRk5LSHY2ODJucWpycm9keW40 aVhFek1TajR6NFFMVE54b0g3OUhXdkNiMkhqVXBFV1ROcmZkdTNMTkNaCitGYWhxSG1FQ2dZRUEv NU1tRUVCMkdObGhhTVArTk1LLzN4OVJDZkRmbGVxRWRFeGYwS0E2VHVJU05ZVWdlRWVCCitkZmN6 Q044V3R4eURNb3I2ZnZ3SU54RUFIWDY0L0NvbXBFL3lhK1oyNVZkQlFNY0xwTlZHUzAxYURkcnFX TjVCCis0cUc4T3lLMytlQWpDbnZ5Q3pXc3Z2cEsxSTV1NjVxNitRK0N3MXdRYXhZemhzWmtFYXpR ME9rQ2dZRUE5VXQ5CittNzRSTUd1ZGprdkpLN0pJUExETEdFc2tvK3lyaDhJdW9Hbi93THBVSndt a1pGUXU4SFJxZGRkTVZqd1FpNENOCitJRFNjYnZ5SDB1RTJ5TitnZy9CQjBlQkl5aGZySTN4bDZG SklRQm5JMC83d21iMlU4Mk9UMExTMThoOW44ZEFLCisrbU9OY1Izekw3WERlOHh5MXFUUzBqamQx UVQxUVM0WUxHUEN4SFVDZ1lFQW93ZnRDZ1QwME5rcWFEaE9XcjI0Cit3ODRvVmQwUDQ0UWNSa3ZK K3oyYXRHTkdGbG43NG41S3VVT2RqSlV5MmxBWDZRLzZ4ekppMHkzSEV3bVpXMUpRCitJQlRYb2Jq OE0wUTczZVNiS3VUWjJJTlpaT2szQU1XVzVja2lWOTdIMlYvL09scmloZ0FSV0NvMXZlMjJHQmsy CitHRmFxcFpCKzhMRFM0YkNBZVQzeVhyRUNnWUVBNXJaM1VTb25Mcnk1ZDJKT3Q1dTdGK0pOVSs4 eGFrRXJZTWhDCitaTHp1UVk2L29ld094Qkx1QjFubjNDaUJjMGFSWlRTbkNGaVRua3hGVUJKbUhl OUFJWGl6Mzd3dG1tOSt5V1N5CiswUjI3T1JkSGJpWUdsUVBjZWtQNWZyN0p0dzdWREhyYUtJSEVR bFdpS3dpeDhkbnRWWGUzbHVUSHVSa3R1SDJyCitYTzBEL3hVQ2dZRUFsUXRYeUdTbC90YVVqS3lm dmZ4bEZEdHBPd0JBd1VqMkNzTnplVWQyLzVhV2txVXJ0WXo4CitKTkNQZ1NMUEtEaExwYXZIMHZV RW1mdEYzdURWUHh2TVE0Skc5TVE3bWVIZ0w3QVptdEtkVTBWSStBdjl4aUplCitkN0ExeDZvODhn djFUcXZHUml0MnFSeE5PVDBtemhEY1h1UjJFSVFxVWF2NDVOeUJva1NvOXh3PQorLS0tLS1FTkQg UlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Npb24vdGVz dHMvMDQyLnNzbF9yZWxvYWQvc2VydmVyLnJlcSBiL3NyYy90ZXN0L3JlZ3Jlc3Npb24vdGVzdHMv MDQyLnNzbF9yZWxvYWQvc2VydmVyLnJlcQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAuLmZkZmQ1MjM1ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Npb24v dGVzdHMvMDQyLnNzbF9yZWxvYWQvc2VydmVyLnJlcQpAQCAtMCwwICsxLDYxIEBACitDZXJ0aWZp Y2F0ZSBSZXF1ZXN0OgorICAgIERhdGE6CisgICAgICAgIFZlcnNpb246IDEgKDB4MCkKKyAgICAg ICAgU3ViamVjdDogQyA9IEFVLCBTVCA9IFNvbWUtU3RhdGUsIE8gPSBJbnRlcm5ldCBXaWRnaXRz IFB0eSBMdGQKKyAgICAgICAgU3ViamVjdCBQdWJsaWMgS2V5IEluZm86CisgICAgICAgICAgICBQ dWJsaWMgS2V5IEFsZ29yaXRobTogcnNhRW5jcnlwdGlvbgorICAgICAgICAgICAgICAgIFB1Ymxp Yy1LZXk6ICgyMDQ4IGJpdCkKKyAgICAgICAgICAgICAgICBNb2R1bHVzOgorICAgICAgICAgICAg ICAgICAgICAwMDpmNDplMzozMDpmMDowOTplMjo0MzowZTphMTo2NzoyZTozYjplZjpiNToKKyAg ICAgICAgICAgICAgICAgICAgODg6MWU6NGU6YTk6MDY6ZmE6ZjI6OTQ6OGI6ZmE6NGY6MGE6OWY6 ZTA6NTc6CisgICAgICAgICAgICAgICAgICAgIDQ1Ojk1OjJjOmMxOjE4OjFkOjIxOjZkOmM4OjVj OjJhOjA1Ojk0OjBiOmM2OgorICAgICAgICAgICAgICAgICAgICA0OTpjNTo5Nzo4ODphYzo4ODpi YTo3MzpmYjo4MToyODplYjplMTpjZDo3ZjoKKyAgICAgICAgICAgICAgICAgICAgOWQ6ZmI6ZTA6 YzU6MGQ6ZWY6MzU6Y2M6MTI6Yjg6NzQ6MGI6YTE6ZTk6NjU6CisgICAgICAgICAgICAgICAgICAg IGQ0OjE5OjM4OjliOmE4OmUxOmM1OmVmOmQ1OmYxOjljOmNmOjhhOmRlOmJmOgorICAgICAgICAg ICAgICAgICAgICBmYTpkNzo2YzpmOTpkNzo4NToxMDpkYjo5ZjplOTowMzplOTo3ZTpmMTo4MToK KyAgICAgICAgICAgICAgICAgICAgZGU6OWQ6ZjM6YjM6YTM6NmY6MTk6MzE6Yzg6YmI6MzE6YzA6 ZTc6N2Q6ZWE6CisgICAgICAgICAgICAgICAgICAgIDZiOjAyOjk4OjIxOjdjOmMyOmY1OjlkOjBk OjdjOjg1OjJiOjVkOjgxOjdjOgorICAgICAgICAgICAgICAgICAgICA3MTo3NDo0Mjo4OTphYjo1 YzozMTphYzoxOTpmZDpjMjowYjpmYjplNTpjMjoKKyAgICAgICAgICAgICAgICAgICAgYjI6NTQ6 MTU6NjQ6NDA6OWM6YmY6ZWQ6ZDI6YjE6YmI6NzU6Zjk6ZTk6ZDg6CisgICAgICAgICAgICAgICAg ICAgIDY3OmIzOjRlOjYzOmM0OjNlOmY0OjhhOjJjOjg3OjUwOjI3OmRkOjIyOjk3OgorICAgICAg ICAgICAgICAgICAgICBmMTpmNzoyNjo0OTo4NzowMzo1NTowODphNDpkMjo0NDoyMTplMTo5YToz MzoKKyAgICAgICAgICAgICAgICAgICAgODI6OTY6MDk6YjM6MDg6NjU6YmM6YTg6M2E6ZjQ6NjQ6 ZjM6NjA6NjI6ZDA6CisgICAgICAgICAgICAgICAgICAgIDk4OmQ5OjgyOjBjOjFiOmJlOmI2Ojlj OjIyOmU4OjdmOmU2OmViOjIwOmQ5OgorICAgICAgICAgICAgICAgICAgICA3MTo2NzoyYzpkNTox NDo4MzphYTpmMTozNzo3NTo5ODo0Yzo2ODoxZDo5NToKKyAgICAgICAgICAgICAgICAgICAgZmU6 MWY6ZWM6Y2I6OWI6MTc6OWM6ZjQ6OTI6MjI6ZGE6YmI6Nzg6NDY6ZjM6CisgICAgICAgICAgICAg ICAgICAgIGRlOjdkCisgICAgICAgICAgICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQor ICAgICAgICBBdHRyaWJ1dGVzOgorICAgICAgICAgICAgYTA6MDAKKyAgICBTaWduYXR1cmUgQWxn b3JpdGhtOiBzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbgorICAgICAgICAgN2E6MzA6Njk6NmM6YWE6 MzA6NmY6ZjM6YmM6ZGM6ODU6Nzg6MDQ6ZWY6ZjY6MGM6YjI6MDQ6CisgICAgICAgICBlNzowMzo1 NTpmZDo0YTo5ODo3NDpkNjpmZDoyNDphMTplOTplODozZDplMzphMTpiMDpkYzoKKyAgICAgICAg IDEyOmI5OjFmOjM4OmZlOjllOjQyOjVhOjBjOjA2OmI4OjBjOmY2OjY1OjBiOjc4Ojk1OjczOgor ICAgICAgICAgMjc6MzE6MTQ6ZTU6NGQ6NGY6ZTI6ODI6M2Y6NTI6MjQ6NDU6YmE6MzE6ZTc6ODc6 Yjc6Yzg6CisgICAgICAgICBiOTo4YTpkYjo1Zjo1ZTpmZDoxYTpmMjo2Yzo3ZDpkNjpkMToxZDox OTo3Nzo1ZToxMDo1MToKKyAgICAgICAgIGQzOjI0OjdmOjVhOjdkOjNmOmViOmRiOjMzOjBiOjI3 Ojk3OjcyOmI5OmYwOmVhOjg5Ojc5OgorICAgICAgICAgY2E6Yjc6MjM6N2M6YzA6OGE6ZTk6MTE6 MzA6NDU6OTk6MDk6NTg6ZGE6MDg6ODY6Mjg6MzI6CisgICAgICAgICAyMTpjMDozZjoyZTo4Nzoz ZTphNDo5Njo1NTpmMTo2NTo3Mjo0ZjowNjowYjpiMzphMTo5NzoKKyAgICAgICAgIDdkOjU0OjZj OjBkOjk2OmI0OjQxOjExOjZlOjI4OjQ1OmNiOjE2OmQ3OjFlOjcwOjFlOmE4OgorICAgICAgICAg YTI6NGU6N2Y6NjU6OGU6NzE6ZTk6MDU6ZTI6YWQ6Y2M6OWE6Nzk6MWQ6NzM6Mzk6ZTg6ZjA6Cisg ICAgICAgICBlODpmMzo3NTphYjpiZjo5ZDo0NDo3YjpiNzo3NjozZjowZDo1MDplMDo5YzplZjoy YzpkNToKKyAgICAgICAgIGViOmMzOjBkOjRmOmMxOjc3OmFmOjU2OjdlOjc4OmRiOmU4OmEwOjUy OjA1OmY2OjQ5Ojg5OgorICAgICAgICAgYWI6YzA6ZmY6ZDY6OTc6OWQ6OWQ6ODQ6MTQ6MTI6NzM6 ZWU6MzE6MWQ6MTI6YWQ6ZTc6OTE6CisgICAgICAgICA4ZDphYzpmZjplZTo4ZDoxODowNzpiZTpj ODplYzo1Nzo5ZDo3ODo0MTo5YzoxZTphMTo3NToKKyAgICAgICAgIDJiOjk5OmY3OjcwCistLS0t LUJFR0lOIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQorTUlJQ2lqQ0NBWElDQVFBd1JURUxNQWtH QTFVRUJoTUNRVlV4RXpBUkJnTlZCQWdNQ2xOdmJXVXRVM1JoZEdVeAorSVRBZkJnTlZCQW9NR0Vs dWRHVnlibVYwSUZkcFpHZHBkSE1nVUhSNUlFeDBaRENDQVNJd0RRWUpLb1pJaHZjTgorQVFFQkJR QURnZ0VQQURDQ0FRb0NnZ0VCQVBUak1QQUo0a01Pb1djdU8rKzFpQjVPcVFiNjhwU0wrazhLbitC WAorUlpVc3dSZ2RJVzNJWENvRmxBdkdTY1dYaUt5SXVuUDdnU2pyNGMxL25mdmd4UTN2TmN3U3VI UUxvZWxsMUJrNAorbTZqaHhlL1Y4WnpQaXQ2Lyt0ZHMrZGVGRU51ZjZRUHBmdkdCM3AzenM2TnZH VEhJdXpIQTUzM3Fhd0tZSVh6QworOVowTmZJVXJYWUY4Y1hSQ2lhdGNNYXdaL2NJTCsrWENzbFFW WkVDY3YrM1NzYnQxK2VuWVo3Tk9ZOFErOUlvcworaDFBbjNTS1g4ZmNtU1ljRFZRaWswa1FoNFpv emdwWUpzd2hsdktnNjlHVHpZR0xRbU5tQ0RCdSt0cHdpNkgvbQorNnlEWmNXY3MxUlNEcXZFM2Ra aE1hQjJWL2gvc3k1c1huUFNTSXRxN2VFYnozbjBDQXdFQUFhQUFNQTBHQ1NxRworU0liM0RRRUJD d1VBQTRJQkFRQjZNR2xzcWpCdjg3emNoWGdFNy9ZTXNnVG5BMVg5U3BoMDF2MGtvZW5vUGVPaAor c053U3VSODQvcDVDV2d3R3VBejJaUXQ0bFhNbk1SVGxUVS9pZ2o5U0pFVzZNZWVIdDhpNWl0dGZY djBhOG14OQorMXRFZEdYZGVFRkhUSkg5YWZUL3Iyek1MSjVkeXVmRHFpWG5LdHlOOHdJcnBFVEJG bVFsWTJnaUdLRElod0Q4dQoraHo2a2xsWHhaWEpQQmd1em9aZDlWR3dObHJSQkVXNG9SY3NXMXg1 d0hxaWlUbjlsam5IcEJlS3R6SnA1SFhNNQorNlBEbzgzV3J2NTFFZTdkMlB3MVE0Snp2TE5Ycnd3 MVB3WGV2Vm41NDIraWdVZ1gyU1ltcndQL1dsNTJkaEJRUworYys0eEhSS3Q1NUdOclAvdWpSZ0h2 c2pzVjUxNFFad2VvWFVybWZkdworLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzaW9uL3Rlc3RzLzA0Mi5zc2xfcmVsb2FkL3Rlc3Qu c2ggYi9zcmMvdGVzdC9yZWdyZXNzaW9uL3Rlc3RzLzA0Mi5zc2xfcmVsb2FkL3Rlc3Quc2gKbmV3 IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwLi4zMDIyMTY4NzgKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzaW9uL3Rlc3RzLzA0Mi5zc2xfcmVsb2FkL3Rlc3Quc2gK QEAgLTAsMCArMSwxODkgQEAKKyMhL3Vzci9iaW4vZW52IGJhc2gKKyMtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIHRl c3Qgc2NyaXB0IGZvciBTU0wgY29ubmVjdGlvbiB1cG9uIHJlbG9hZGluZyBmb3I6IGZyb250ZW5k IDwtLT4gUGdwb29sLUlJIGFuZCBQZ3Bvb2wtSUkgYW5kIFBvc3RncmVTUUwuCisjCitzb3VyY2Ug JFRFU1RMSUJTCitURVNURElSPXRlc3RkaXIKK1BTUUw9JFBHQklOL3BzcWwKK1BHX0NUTD0kUEdC SU4vcGdfY3RsCitleHBvcnQgUEdEQVRBQkFTRT10ZXN0CitTU0xfS0VZPXNlcnZlci5rZXkKK1NT TF9DUlQ9c2VydmVyLmNydAorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIyBDaGVjayBwc3FsIG91dHB1dCBmb3IgXGNvbm5pbmZvIHRvIHNlZSBpZiBTU0wg ZW5hYmxlZAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Z1 bmN0aW9uIGNoZWNrX3NzbCB7CisgICAgJFBTUUwgLWggbG9jYWxob3N0IHRlc3QgPDxFT0YgPiBy ZXN1bHQKK1xjb25uaW5mbworXHEKK0VPRgorCisgICAgIyBQb3N0Z3JlU1FMIDE4IG9yIGxhdGVy IHByaW50cyB0YWJsdWxhciBvdXRwdXQgZm9yIFxjb25uaW5mby4KKyAgICAjIEZvciBTU0wsICJT U0wgQ29ubmVjdGlvbiB8IHRydWUgKG9yIGZhbHNlKSIKKyAgICBpZiBbICRQR1ZFUlNJT04gLWdl IDE4IF07dGhlbgorCWdyZXAgIlNTTCBDb25uZWN0aW9uIiByZXN1bHR8Z3JlcCB0cnVlCisgICAg ZWxzZQorCWdyZXAgU1NMIHJlc3VsdAorICAgIGZpCit9CisKKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3Qgc3Ns IGNvbmZpZ3VyYXRpb24gcGFyYW0uCisjIHBhcmFtczoKKyMgJDE6IGNvbmZpZ3VyYXRpb24gbmFt ZS4gZS5nLiBzc2xfY2VydAorIyAkMjogZ29vZCB2YWx1ZSBmb3IgdGhlIGNvbmZpZworIworIyBU aGlzIHBlcmZvcm1zIGZvbGxvd2luZyB0ZXN0czoKKyMgMS4gU2V0IGJhZCB2YWx1ZSB0byB0aGUg Y29uZmlnIGFuZCByZXN0YXJ0IHBncG9vbCB0byBtYWtlIHN1cmUgU1NMIGNvbm5lY3Rpb24gZG9l cyBub3QgZXN0YWJsaXNoLgorIyAyLiBTZXQgZ29vZCB2YWx1ZSB0byB0aGUgY29uZmlnIGFuZCBy ZWxvYWQgdG8gbWFrZSBzdXJlIFNTTCBjb25uZWN0aW9uIGVzdGFibGlzaGVzLgorIyBJZiB0ZXN0 IGZhaWxzLCBleGl0IHdpdGggc3RhdHVzIDEKK2Z1bmN0aW9uIHRlc3Rfc3NsIHsKKyAgICAjIHNl dCBiYWQgdmFsdWUKKyAgICBlY2hvICIkMSA9ICdiYWRfdmFsdWUnIiA+PiBldGMvcGdwb29sLmNv bmYKKyAgICAjIHJlc3RhcnQgcGdwb29sCisgICAgLi9zdGFydGFsbAorICAgIHdhaXRfZm9yX3Bn cG9vbF9zdGFydHVwCisgICAgY2hlY2tfc3NsCisgICAgaWYgWyAkPyA9IDAgXTt0aGVuCisJZWNo byAiQ2hlY2tpbmcgU1NMIGNvbm5lY3Rpb24gYmV0d2VlbiBmcm9udGVuZCBhbmQgUGdwb29sLUlJ IHN1Y2NlZWRlZCBkZXNwaXRlIGJhZCBjb25maWcgdmFsdWUgZm9yICQxIgorCS4vc2h1dGRvd25h bGwKKwlleGl0IDEKKyAgICBmaQorICAgIGVjaG8gIkNoZWNraW5nIFNTTCBjb25uZWN0aW9uIGJl dHdlZW4gZnJvbnRlbmQgYW5kIFBncG9vbC1JSSBmYWlsZWQgZHVlIHRvIGJhZCBjb25maWcgdmFs dWUgZm9yICQxIGFzIGV4cGVjdGVkLiIKKworICAgICMgTWFrZSBzdXJlIHRoYXQgU1NMIGNvbm5l Y3Rpb24gc3VjY2VlZHMgd2l0aCBnb29kIGNvbmZpZyB2YWx1ZQorICAgIGVjaG8gIiQxID0gJyQy JyIgPj4gZXRjL3BncG9vbC5jb25mCisgICAgLi9wZ3Bvb2xfcmVsb2FkCisgICAgc2xlZXAgMQor ICAgIGNoZWNrX3NzbAorICAgIGlmIFsgJD8gPSAwIF07dGhlbgorCWVjaG8gIkNoZWNraW5nIFNT TCBjb25uZWN0aW9uIGJldHdlZW4gZnJvbnRlbmQgYW5kIFBncG9vbC1JSSBzdWNjZWVkZWQgd2l0 aCBnb29kICQxIgorICAgIGVsc2UKKwllY2hvICJDaGVja2luZyBTU0wgY29ubmVjdGlvbiBiZXR3 ZWVuIGZyb250ZW5kIGFuZCBQZ3Bvb2wtSUkgZmFpbGVkIHdpdGggZ29vZCAkMSIKKwkuL3NodXRk b3duYWxsCisJZXhpdCAxCisgICAgZmkKKyAgICAuL3NodXRkb3duYWxsCit9CisKKyMgbWFpbiBz Y3JpcHQgc3RhcnRzIGhlcmUKK3JtIC1mciAkVEVTVERJUgorbWtkaXIgJFRFU1RESVIKK2NkICRU RVNURElSCisKKyMgY3JlYXRlIHRlc3QgZW52aXJvbm1lbnQuIE51bWJlciBvZiBiYWNrZW5kIG5v ZGUgaXMgMSBpcyBlbm91Z2guCitlY2hvIC1uICJjcmVhdGluZyB0ZXN0IGVudmlyb25tZW50Li4u IgorJFBHUE9PTF9TRVRVUCAtbSBzIC1uIDEgfHwgZXhpdCAxCitlY2hvICJkb25lLiIKKworIyBz ZXR1cCBTU0wga2V5IGFuZCBjcnQgZmlsZQorY3AgLXAgLi4vJFNTTF9LRVkgZXRjLworY2htb2Qg b2ctcnd4IGV0Yy8kU1NMX0tFWQorY3AgLXAgLi4vJFNTTF9DUlQgZXRjLworY3AgLXAgLi4vJFNT TF9LRVkgZGF0YTAvCitjaG1vZCBvZy1yd3ggZGF0YTAvJFNTTF9LRVkKK2NwIC1wIC4uLyRTU0xf Q1JUIGRhdGEwLworCisjIGVuYWJsZSBTU0wgc3VwcG9ydAorZGlyPWBwd2RgCisKK2VjaG8gInNz bCA9IG9uIiA+PiBldGMvcGdwb29sLmNvbmYKK2VjaG8gInNzbF9rZXkgPSAnJFNTTF9LRVknIiA+ PiBldGMvcGdwb29sLmNvbmYKK2VjaG8gInNzbF9jZXJ0ID0gJyRTU0xfQ1JUJyIgPj4gZXRjL3Bn cG9vbC5jb25mCitlY2hvICJzc2xfcHJlZmVyX3NlcnZlcl9jaXBoZXJzID0gb24iID4+IGV0Yy9w Z3Bvb2wuY29uZgorZWNobyAic3NsX2NpcGhlcnMgPSAnRUVDREg6SElHSDpNRURJVU06KzNERVM6 IWFOVUxMJyIgPj4gZXRjL3BncG9vbC5jb25mCisKK2VjaG8gInNzbCA9IG9uIiA+PiBkYXRhMC9w b3N0Z3Jlc3FsLmNvbmYKK2VjaG8gInNzbF9jZXJ0X2ZpbGUgPSAnJFNTTF9DUlQnIiA+PiBkYXRh MC9wb3N0Z3Jlc3FsLmNvbmYKK2VjaG8gInNzbF9rZXlfZmlsZSA9ICckU1NMX0tFWSciID4+IGRh dGEwL3Bvc3RncmVzcWwuY29uZgorCisjIGJhY2tlbmQgbXVzdCBiZSBjb25uZWN0ZWQgdmlhIFRD UC9JUAorZWNobyAiYmFja2VuZF9ob3N0bmFtZTAgPSAnbG9jYWxob3N0JyIgPj4gZXRjL3BncG9v bC5jb25mCisKKyMgcHJvZHVjZSBkZWJ1ZyBtZXNzYWdlIHNpbmNlIHRoZSBvbmx5IHdheSB0byBj b25maXJtIHRoZSBTU0wKKyMgY29ubmVjdGlvbnMgaXMgYmVpbmcgZXN0YWJsaXNoZWQgaXMsIGxv b2sgaW50byB0aGUgZGVidWcgbG9nLgorZWNobyAibG9nX21pbl9tZXNzYWdlcyA9IGRlYnVnNSIg Pj4gZXRjL3BncG9vbC5jb25mCisKKyMgYWxsb3cgdG8gYWNjZXNzIElQdjYgbG9jYWxob3N0Citl Y2hvICJob3N0ICAgIGFsbCAgICAgICAgICAgICBhbGwgICAgICAgICAgICAgOjoxLzEyOCAgICAg ICAgICAgICAgICAgdHJ1c3QiID4+IGRhdGEwL3BnX2hiYS5jb25mCisKK3NvdXJjZSAuL2Jhc2hy Yy5wb3J0cworCisuL3N0YXJ0YWxsCisKK2V4cG9ydCBQR1BPUlQ9JFBHUE9PTF9QT1JUCisKK3dh aXRfZm9yX3BncG9vbF9zdGFydHVwCisKKyMgZmlyc3QsIGNoZWNraW5nIGZyb250ZW5kPC0tPlBn cG9vbC1JSS4uLgorY2hlY2tfc3NsCitpZiBbICQ/ICE9IDAgXTt0aGVuCisgICAgZWNobyAiQ2hl Y2tpbmcgU1NMIGNvbm5lY3Rpb24gYmV0d2VlbiBmcm9udGVuZCBhbmQgUGdwb29sLUlJIGZhaWxl ZC4iCisgICAgLi9zaHV0ZG93bmFsbAorICAgIGV4aXQgMQorZmkKK2VjaG8gIkNoZWNraW5nIFNT TCBjb25uZWN0aW9uIGJldHdlZW4gZnJvbnRlbmQgYW5kIFBncG9vbC1JSSB3YXMgb2suIgorCitp ZiBbICRQR1ZFUlNJT04gLWdlIDE4IF07dGhlbgorICAgIGdyZXAgIlNTTCBQcm90b2NvbCIgcmVz dWx0fGdyZXAgVExTdjEuMgorZWxzZQorICAgIGdyZXAgU1NMIHJlc3VsdCB8Z3JlcCBUTFN2MS4y CitmaQorCisjIGlmIFNTbCBwcm90b2NvbCB2ZXJzaW9uIFRMU3YxLjIKK2lmIFsgJD8gPSAwIF07 dGhlbgorICAgIGdyZXAgU1NMIHJlc3VsdCB8Z3JlcCBFQ0RICisKKyAgICBpZiBbICQ/ICE9IDAg XTt0aGVuCisgICAgICAgIGVjaG8gIkNoZWNraW5nIFNTTCBjb25uZWN0aW9uIHdpdGggRUNESCBi ZXR3ZWVuIGZyb250ZW5kIGFuZCBQZ3Bvb2wtSUkgZmFpbGVkLiIKKyAgICAgICAgLi9zaHV0ZG93 bmFsbAorICAgICAgICBleGl0IDEKKyAgICBmaQorCWVjaG8gIkNoZWNraW5nIFNTTCBjb25uZWN0 aW9uIHdpdGggRUNESCBiZXR3ZWVuIGZyb250ZW5kIGFuZCBQZ3Bvb2wtSUkgd2FzIG9rLiIKK2Zp CisKK2dyZXAgImNsaWVudC0+c2VydmVyIFNTTCByZXNwb25zZTogUyIgbG9nL3BncG9vbC5sb2cg Pi9kZXYvbnVsbAoraWYgWyAkPyAhPSAwIF07dGhlbgorICAgIGVjaG8gIkNoZWNraW5nIFNTTCBj b25uZWN0aW9uIGJldHdlZW4gUGdwb29sLUlJIGFuZCBiYWNrZW5kIGZhaWxlZC4iCisgICAgLi9z aHV0ZG93bmFsbAorICAgIGV4aXQgMQorZmkKK2VjaG8gIkNoZWNraW5nIFNTTCBjb25uZWN0aW9u IGJldHdlZW4gUGdwb29sLUlJIGFuZCBiYWNrZW5kIHdhcyBvay4iCisKKyMgU28gZmFyIFNTTCBj b25uZWN0aW9uIGJldHdlZW4gY2xpZW50cyBhbmQgUGdwb29sLUlJLCBQZ3Bvb2wtSUkgYW5kIGJh Y2tlbmQgYXJlIG9rLgorCisuL3NodXRkb3duYWxsCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3QgU1NMIHBh cmFtcworCitjb25maWdfbmFtZXNbMF09c3NsX2NlcnQKK2NvbmZpZ19uYW1lc1sxXT1zc2xfY2lw aGVycworY29uZmlnX25hbWVzWzJdPXNzbF9jcmxfZmlsZQorY29uZmlnX25hbWVzWzNdPXNzbF9k aF9wYXJhbXNfZmlsZQkjIHNzbF9kaF9wYXJhbXNfZmlsZSBjYW4gYmUgYSBpbnZhbGlkIGZpbGUg KGZhbGxiYWNrIG1lY2hhbmlzbSkKK2NvbmZpZ19uYW1lc1s0XT1zc2xfZWNkaF9jdXJ2ZQorY29u ZmlnX25hbWVzWzVdPXNzbF9rZXkKK2NvbmZpZ19uYW1lc1s2XT1zc2xfcGFzc3BocmFzZV9jb21t YW5kCSMgY2VydCBkb2VzIG5vdCByZXF1aXJlIHBhc3MgcGFzc3BocmFzZQorY29uZmlnX25hbWVz WzddPXNzbF9wcmVmZXJfc2VydmVyX2NpcGhlcnMJIyB0aGlzIGFmZmVjdHMgc2VydmVyIHNpZGUg Y2lwaGVycworCitnb29kX3ZhbHVlc1swXT1zZXJ2ZXIuY3J0Citnb29kX3ZhbHVlc1sxXT1ISUdI Ok1FRElVTTorM0RFUzohYU5VTEwKK2dvb2RfdmFsdWVzWzJdPSIiCitnb29kX3ZhbHVlc1szXT1z a2lwCitnb29kX3ZhbHVlc1s0XT1wcmltZTI1NnYxCitnb29kX3ZhbHVlc1s1XT1zZXJ2ZXIua2V5 Citnb29kX3ZhbHVlc1s2XT1za2lwCitnb29kX3ZhbHVlc1s3XT1za2lwCisKK2ZvciBpIGluIHsw Li43fQorZG8KKyAgICBlY2hvICI9PT09PSAke2NvbmZpZ19uYW1lc1skaV19ID09PT09IgorICAg IGlmIFsgIiR7Z29vZF92YWx1ZXNbJGldfSIgPSAic2tpcCIgXTt0aGVuCisJZWNobyAic2tpcCB0 aGlzIHRlc3QiCisgICAgZWxzZQorCXRlc3Rfc3NsICR7Y29uZmlnX25hbWVzWyRpXX0gJHtnb29k X3ZhbHVlc1skaV19CisgICAgZmkKK2RvbmUKKy4vc2h1dGRvd25hbGwKK2V4aXQgMAotLSAKMi40 My4wCgo= ----Next_Part(Wed_Apr__1_18_05_42_2026_777)----