Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1naRSI-0003jY-UM for pgsql-hackers@arkaria.postgresql.org; Sat, 02 Apr 2022 00:17:27 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1naRSG-0003jq-R5 for pgsql-hackers@arkaria.postgresql.org; Sat, 02 Apr 2022 00:17:24 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1naRSF-0003jf-U7 for pgsql-hackers@lists.postgresql.org; Sat, 02 Apr 2022 00:17:24 +0000 Received: from mail-ej1-x62e.google.com ([2a00:1450:4864:20::62e]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1naRS7-0003uW-7X for pgsql-hackers@lists.postgresql.org; Sat, 02 Apr 2022 00:17:22 +0000 Received: by mail-ej1-x62e.google.com with SMTP id o10so9067778ejd.1 for ; Fri, 01 Apr 2022 17:17:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; h=message-id:date:mime-version:user-agent:subject:content-language :from:to:cc:references:in-reply-to; bh=qJxbss6a4ksk9Hf6fLMCDoGtGKrw1WJrUMAFybiuWtg=; b=mrQYHMQD4ivQnLxKZJyZBMoT5sgI4mO6iU3U2hAb8+nOO2JVC0CVNqGAFDPPf34zLR QX9gMzpii395Azs8ZdS6sHBT6XVItRiMbT68l9iD/b2GHrO+nB9zvMpXVV2qvQpGKq2l SVyBWcCKi8WpwtNgbYAL1nd6dTODfuzKyIUm2Gv0PWVXVLO7PGKsAZFCoQNTIuXLzPAn 2y234cTD8VUtFXsES78YiDlD5fnByCquhjC1kljBloMi84En5AHWeMrl/Z4thm2tydDU nEGVsHGvKJI1bVsnwWIpPooOTByRTjyf2wyuH4Kp+fX7ETEGQkUQ5psWV1qeMs37/QqK jqYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:from:to:cc:references:in-reply-to; bh=qJxbss6a4ksk9Hf6fLMCDoGtGKrw1WJrUMAFybiuWtg=; b=6CJBWVBGPIJP9YmODe4ADgNHrL1HGQrz7yR+4p9W099b9nRNHJmDfp0h/JJoV8h5ZC TVb0doz6BtIMAYzOh+hiUajK4PIoNfNQXkhvGYYMsz7eqr72N+UQoysvYzy8fBYMrnQF ggsiXgRKk1XGe3z7GKWfdIUH3GPHSqWIiJU0oeizkvtebc0NY9M8+/hxW+ut6Fu09LTU TTMtQaf6el3IEEz5QFteVoTN+j7GKOPvVP3zcXFUlLbCHugA3WZzp8b54uEMBGvrH+jX myBJSv78w0BDnTHOQIhNEyGWfPSTuxMPYjrDapwezWqSXgUz2drdThpblbY1rzj6ug2q cOTQ== X-Gm-Message-State: AOAM531vKD77Lxc18CGssiGTO4R4vvK0QCLAm9WgipqeegTo32hKmgPy VPbxdkvqZEMJN/z6iocrpV8J/5b1iK8NzcZEJng6/a49JuyMgRfWFrLWazPjhedMyukAmcKu7Sx OwT14aawJdFYoI74frmn0wEB5eyDWI+oqhV0VAKdHXdPnx7cV2x2dmvY5LxhnuPXUSZlJKKZ3lu iQF/lXYSFI5eswNo+kM9LV0dFRAt5jCjJFGOaPsycgVsdcZpRb0Qil X-Google-Smtp-Source: ABdhPJy2uOWn+ZELJlxDZu5I6NXzCUmk908pABQkM8SmAg5HgMMzK92kcJ57FzCzXc2woUZUvNHJjg== X-Received: by 2002:a17:906:6144:b0:6cf:bb2e:a2e1 with SMTP id p4-20020a170906614400b006cfbb2ea2e1mr1939058ejl.299.1648858633692; Fri, 01 Apr 2022 17:17:13 -0700 (PDT) Received: from [10.137.0.17] (ip-86-49-250-165.net.upcbroadband.cz. [86.49.250.165]) by smtp.gmail.com with ESMTPSA id y14-20020a170906518e00b006dfd441fc80sm1560206ejk.52.2022.04.01.17.17.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 01 Apr 2022 17:17:13 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------4eGAEPC3KYGBS2t6H0QbT0xi" Message-ID: <00708727-d856-1886-48e3-811296c7ba8c@enterprisedb.com> Date: Sat, 2 Apr 2022 02:17:11 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: logical decoding and replication of sequences Content-Language: en-US From: Tomas Vondra To: Amit Kapila Cc: Petr Jelinek , Peter Eisentraut , PostgreSQL Hackers References: <456A528F-8F19-41C7-9857-927024D32396@enterprisedb.com> <74729cc5-960b-9295-912a-a7c37356a0c4@enterprisedb.com> <9d7635f8-2402-e038-64da-cbc3732ce8cf@enterprisedb.com> <83c682bf-7164-5976-608c-385cc394bb6c@enterprisedb.com> <494bb2d9-0c1c-b429-e6bb-231f00f2c36f@enterprisedb.com> In-Reply-To: X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------4eGAEPC3KYGBS2t6H0QbT0xi Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 4/1/22 17:02, Tomas Vondra wrote: > > > On 3/28/22 07:29, Amit Kapila wrote: >> ... >> >> While thinking about this, I think I see a problem with the >> non-transactional handling of sequences. It seems that we will skip >> sending non-transactional sequence change if it occurs before the >> decoding has reached a consistent point but the surrounding commit >> occurs after a consistent point is reached. In such cases, the >> corresponding DMLs like inserts will be sent but sequence changes >> won't be sent. For example (this scenario is based on >> twophase_snapshot.spec), >> >> Initial setup: >> ============== >> Create table t1_seq(c1 int); >> Create Sequence seq1; >> >> Test Execution via multiple sessions (this test allows insert in >> session-2 to happen before we reach a consistent point and commit >> happens after a consistent point): >> ======================================================================================================= >> >> Session-2: >> Begin; >> SELECT pg_current_xact_id(); >> >> Session-1: >> SELECT 'init' FROM pg_create_logical_replication_slot('test_slot', >> 'test_decoding', false, true); >> >> Session-3: >> Begin; >> SELECT pg_current_xact_id(); >> >> Session-2: >> Commit; >> Begin; >> INSERT INTO t1_seq SELECT nextval('seq1') FROM generate_series(1,100); >> >> Session-3: >> Commit; >> >> Session-2: >> Commit 'foo' >> >> Session-1: >> SELECT data FROM pg_logical_slot_get_changes('test_slot', NULL, NULL, >> 'include-xids', 'false', 'skip-empty-xacts', '1'); >> >> data >> ---------------------------------------------- >> BEGIN >> table public.t1_seq: INSERT: c1[integer]:1 >> table public.t1_seq: INSERT: c1[integer]:2 >> table public.t1_seq: INSERT: c1[integer]:3 >> table public.t1_seq: INSERT: c1[integer]:4 >> table public.t1_seq: INSERT: c1[integer]:5 >> table public.t1_seq: INSERT: c1[integer]:6 >> >> >> Now, if we normally try to decode such an insert, the result would be >> something like: >> data >> ------------------------------------------------------------------------------ >> sequence public.seq1: transactional:0 last_value: 33 log_cnt: 0 is_called:1 >> sequence public.seq1: transactional:0 last_value: 66 log_cnt: 0 is_called:1 >> sequence public.seq1: transactional:0 last_value: 99 log_cnt: 0 is_called:1 >> sequence public.seq1: transactional:0 last_value: 132 log_cnt: 0 is_called:1 >> BEGIN >> table public.t1_seq: INSERT: c1[integer]:1 >> table public.t1_seq: INSERT: c1[integer]:2 >> table public.t1_seq: INSERT: c1[integer]:3 >> table public.t1_seq: INSERT: c1[integer]:4 >> table public.t1_seq: INSERT: c1[integer]:5 >> table public.t1_seq: INSERT: c1[integer]:6 >> >> This will create an inconsistent replica as sequence changes won't be >> replicated. > > Hmm, that's interesting. I wonder if it can actually happen, though. > Have you been able to reproduce that, somehow? > >> I thought about changing snapshot dealing of >> non-transactional sequence changes similar to transactional ones but >> that also won't work because it is only at commit we decide whether we >> can send the changes. >> > I wonder if there's some earlier LSN (similar to the consistent point) > which might be useful for this. > > Or maybe we should queue even the non-transactional changes, not > per-transaction but in a global list, and then at each commit either > discard inspect them (at that point we know the lowest LSN for all > transactions and the consistent point). Seems complex, though. > >> For the transactional case, as we are considering the create sequence >> operation as transactional, we would unnecessarily queue them even >> though that is not required. Basically, they don't need to be >> considered transactional and we can simply ignore such messages like >> other DDLs. But for that probably we need to distinguish Alter/Create >> case which may or may not be straightforward. Now, queuing them is >> probably harmless unless it causes the transaction to spill/stream. >> > > I'm not sure I follow. Why would we queue them unnecessarily? > > Also, there's the bug with decoding changes in transactions that create > the sequence and add it to a publication. I think the agreement was that > this behavior was incorrect, we should not decode changes until the > subscription is refreshed. Doesn't that mean can't be any CREATE case, > just ALTER? > So, I investigated this a bit more, and I wrote a couple test_decoding isolation tests (patch attached) demonstrating the issue. Actually, I should say "issues" because it's a bit worse than you described ... The whole problem is in this chunk of code in sequence_decode(): /* Skip the change if already processed (per the snapshot). */ if (transactional && !SnapBuildProcessChange(builder, xid, buf->origptr)) return; else if (!transactional && (SnapBuildCurrentState(builder) != SNAPBUILD_CONSISTENT || SnapBuildXactNeedsSkip(builder, buf->origptr))) return; /* Queue the increment (or send immediately if not transactional). */ snapshot = SnapBuildGetOrBuildSnapshot(builder, xid); ReorderBufferQueueSequence(ctx->reorder, xid, snapshot, buf->endptr, origin_id, target_node, transactional, xlrec->created, tuplebuf); With the script you described, the increment is non-transactional, so we end up in the second branch, return and thus discard the increment. But it's also possible the change is transactional, which can only trigger the first branch. But it does not, so we start building the snapshot. But the first thing SnapBuildGetOrBuildSnapshot does is Assert(builder->state == SNAPBUILD_CONSISTENT); and we're still not in a consistent snapshot, so it just crashes and burn :-( The sequences.spec file has two definitions of s2restart step, one empty (resulting in non-transactional change), one with ALTER SEQUENCE (which means the change will be transactional). The really "funny" thing is this is not new code - this is an exact copy from logicalmsg_decode(), and logical messages have all those issues too. We may discard some messages, trigger the same Assert, etc. There's a messages2.spec demonstrating this (s2message step defines whether the message is transactional or not). So I guess we need to fix both places, perhaps in a similar way. And one of those will have to be backpatched (which may make it more complex). The only option I see is reworking the decoding so that it does not need the snapshot at all. We'll need to stash the changes just like any other change, apply them at end of transaction, and the main difference between transactional and non-transactional case would be what happens at abort. Transactional changes would be discarded, non-transactional would be applied anyway. The challenge is this reorders the sequence changes, so we'll need to reconcile them somehow. One option would be to simply (1) apply the change with the highest LSN in the transaction, and then walk all other in-progress transactions and changes for that sequence with a lower LSN. Not sure how complex/expensive that would be, though. Another problem is not all increments are WAL-logged, of course, not sure about that. Another option might be revisiting the approach proposed by Hannu in September [1], i.e. tracking sequences touched in a transaction, and then replicating the current state at that particular moment. regards [1] https://www.postgresql.org/message-id/CAMT0RQQeDR51xs8zTa25YpfKB1B34nS-Q4hhsRPznVsjMB_P1w%40mail.gmail.com -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company --------------4eGAEPC3KYGBS2t6H0QbT0xi Content-Type: text/x-patch; charset=UTF-8; name="isolation-tests.patch" Content-Disposition: attachment; filename="isolation-tests.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9NYWtlZmlsZSBiL2NvbnRyaWIv dGVzdF9kZWNvZGluZy9NYWtlZmlsZQppbmRleCAzNjkyOWRkOTdkMy4uMDkxMmExMjM3ZWQg MTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9NYWtlZmlsZQorKysgYi9jb250 cmliL3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUKQEAgLTksNyArOSw3IEBAIFJFR1JFU1MgPSBk ZGwgeGFjdCByZXdyaXRlIHRvYXN0IHBlcm1pc3Npb25zIGRlY29kaW5nX2luX3hhY3QgXAog CXNlcXVlbmNlCiBJU09MQVRJT04gPSBteGFjdCBkZWxheWVkX3N0YXJ0dXAgb25kaXNrX3N0 YXJ0dXAgY29uY3VycmVudF9kZGxfZG1sIFwKIAlvbGRlc3RfeG1pbiBzbmFwc2hvdF90cmFu c2ZlciBzdWJ4YWN0X3dpdGhvdXRfdG9wIGNvbmN1cnJlbnRfc3RyZWFtIFwKLQl0d29waGFz ZV9zbmFwc2hvdCBzbG90X2NyZWF0aW9uX2Vycm9yCisJdHdvcGhhc2Vfc25hcHNob3Qgc2xv dF9jcmVhdGlvbl9lcnJvciBtZXNzYWdlczIgc2VxdWVuY2VzCiAKIFJFR1JFU1NfT1BUUyA9 IC0tdGVtcC1jb25maWcgJCh0b3Bfc3JjZGlyKS9jb250cmliL3Rlc3RfZGVjb2RpbmcvbG9n aWNhbC5jb25mCiBJU09MQVRJT05fT1BUUyA9IC0tdGVtcC1jb25maWcgJCh0b3Bfc3JjZGly KS9jb250cmliL3Rlc3RfZGVjb2RpbmcvbG9naWNhbC5jb25mCmRpZmYgLS1naXQgYS9jb250 cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvbWVzc2FnZXMyLm91dCBiL2NvbnRyaWIvdGVz dF9kZWNvZGluZy9leHBlY3RlZC9tZXNzYWdlczIub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi5jNzA1NjkzZWQ1NQotLS0gL2Rldi9udWxsCisrKyBiL2Nv bnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9tZXNzYWdlczIub3V0CkBAIC0wLDAgKzEs NzggQEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCAzIHNlc3Npb25zCisKK3N0YXJ0aW5nIHBl cm11dGF0aW9uOiBzMWluaXQgczJtZXNzYWdlIHMyaW5zZXJ0IHMxc3RhcnQKK3N0ZXAgczFp bml0OiBTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25f c2xvdCgnaXNvbGF0aW9uX3Nsb3QnLCAndGVzdF9kZWNvZGluZycsIGZhbHNlLCB0cnVlKTsK Kz9jb2x1bW4/CistLS0tLS0tLQoraW5pdCAgICAKKygxIHJvdykKKworc3RlcCBzMm1lc3Nh Z2U6IFNFTEVDVCBwZ19sb2dpY2FsX2VtaXRfbWVzc2FnZShmYWxzZSwgJ3Rlc3QnLCAnbXNn IG5vbi10cmFuc2FjdGlvbmFsJyk7CitwZ19sb2dpY2FsX2VtaXRfbWVzc2FnZQorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKzAvMTg4MkIwMCAgICAgICAgICAgICAgCisoMSByb3cpCisK K3N0ZXAgczJpbnNlcnQ6IElOU0VSVCBJTlRPIHQxX21lc3NhZ2UgVkFMVUVTICgnbXNnJyk7 CitzdGVwIHMxc3RhcnQ6IFNFTEVDVCBkYXRhICBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRf Y2hhbmdlcygnaXNvbGF0aW9uX3Nsb3QnLCBOVUxMLCBOVUxMLCAnaW5jbHVkZS14aWRzJywg J2ZhbHNlJywgJ3NraXAtZW1wdHkteGFjdHMnLCAnMScpOworZGF0YSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbWVzc2FnZTogdHJhbnNhY3Rpb25hbDog MCBwcmVmaXg6IHRlc3QsIHN6OiAyMSBjb250ZW50Om1zZyBub24tdHJhbnNhY3Rpb25hbAor QkVHSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAordGFibGUgcHVibGljLnQxX21lc3NhZ2U6IElOU0VS VDogbXNnW3RleHRdOidtc2cnICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorQ09NTUlU ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorKDQgcm93cykKKworP2NvbHVtbj8KKy0tLS0tLS0tCitzdG9w ICAgIAorKDEgcm93KQorCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzMmJlZ2luIHMydHhp ZCBzMWluaXQgczNiZWdpbiBzM3R4aWQgczJjb21taXQgczJiZWdpbiBzMm1lc3NhZ2UgczJp bnNlcnQgczNjb21taXQgczJjb21taXQgczFzdGFydAorc3RlcCBzMmJlZ2luOiBCRUdJTjsK K3N0ZXAgczJ0eGlkOiBTRUxFQ1QgcGdfY3VycmVudF94YWN0X2lkKCk7CitwZ19jdXJyZW50 X3hhY3RfaWQKKy0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgNzI4CisoMSBy b3cpCisKK3N0ZXAgczFpbml0OiBTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2lj YWxfcmVwbGljYXRpb25fc2xvdCgnaXNvbGF0aW9uX3Nsb3QnLCAndGVzdF9kZWNvZGluZycs IGZhbHNlLCB0cnVlKTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzM2JlZ2luOiBCRUdJTjsKK3N0 ZXAgczN0eGlkOiBTRUxFQ1QgcGdfY3VycmVudF94YWN0X2lkKCk7CitwZ19jdXJyZW50X3hh Y3RfaWQKKy0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgNzI5CisoMSByb3cp CisKK3N0ZXAgczJjb21taXQ6IENPTU1JVDsKK3N0ZXAgczJiZWdpbjogQkVHSU47CitzdGVw IHMybWVzc2FnZTogU0VMRUNUIHBnX2xvZ2ljYWxfZW1pdF9tZXNzYWdlKGZhbHNlLCAndGVz dCcsICdtc2cgbm9uLXRyYW5zYWN0aW9uYWwnKTsKK3BnX2xvZ2ljYWxfZW1pdF9tZXNzYWdl CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMC8xODg3OTk4ICAgICAgICAgICAgICAKKygx IHJvdykKKworc3RlcCBzMmluc2VydDogSU5TRVJUIElOVE8gdDFfbWVzc2FnZSBWQUxVRVMg KCdtc2cnKTsKK3N0ZXAgczNjb21taXQ6IENPTU1JVDsKK3N0ZXAgczFpbml0OiA8Li4uIGNv bXBsZXRlZD4KKz9jb2x1bW4/CistLS0tLS0tLQoraW5pdCAgICAKKygxIHJvdykKKworc3Rl cCBzMmNvbW1pdDogQ09NTUlUOworc3RlcCBzMXN0YXJ0OiBTRUxFQ1QgZGF0YSAgRlJPTSBw Z19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ2lzb2xhdGlvbl9zbG90JywgTlVMTCwgTlVM TCwgJ2luY2x1ZGUteGlkcycsICdmYWxzZScsICdza2lwLWVtcHR5LXhhY3RzJywgJzEnKTsK K2RhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittZXNzYWdl OiB0cmFuc2FjdGlvbmFsOiAwIHByZWZpeDogdGVzdCwgc3o6IDIxIGNvbnRlbnQ6bXNnIG5v bi10cmFuc2FjdGlvbmFsCitCRUdJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9tZXNzYWdlOiBJTlNFUlQ6IG1zZ1t0ZXh0 XTonbXNnJworQ09NTUlUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCisoMyByb3dzKQorCis/Y29sdW1uPworLS0tLS0tLS0KK3N0b3AgICAgCisoMSByb3cp CisKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9zZXF1ZW5j ZXMub3V0IGIvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL3NlcXVlbmNlcy5vdXQK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM2ZjI3ZDk4NDhiCi0t LSAvZGV2L251bGwKKysrIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL3NlcXVl bmNlcy5vdXQKQEAgLTAsMCArMSwyNzIgQEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCAzIHNl c3Npb25zCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzMWluaXQgczJyZXN0YXJ0IHMyaW5z ZXJ0IHMxc3RhcnQKK3N0ZXAgczFpbml0OiBTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRl X2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgnaXNvbGF0aW9uX3Nsb3QnLCAndGVzdF9kZWNv ZGluZycsIGZhbHNlLCB0cnVlKTsKKz9jb2x1bW4/CistLS0tLS0tLQoraW5pdCAgICAKKygx IHJvdykKKworc3RlcCBzMnJlc3RhcnQ6IAorc3RlcCBzMmluc2VydDogSU5TRVJUIElOVE8g dDFfc2VxIFNFTEVDVCBuZXh0dmFsKCdzZXExJykgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwx MDApOworc3RlcCBzMXN0YXJ0OiBTRUxFQ1QgZGF0YSAgRlJPTSBwZ19sb2dpY2FsX3Nsb3Rf Z2V0X2NoYW5nZXMoJ2lzb2xhdGlvbl9zbG90JywgTlVMTCwgTlVMTCwgJ2luY2x1ZGUteGlk cycsICdmYWxzZScsICdza2lwLWVtcHR5LXhhY3RzJywgJzEnKTsKK2RhdGEgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3NlcXVlbmNlIHB1YmxpYy5zZXEx OiB0cmFuc2FjdGlvbmFsOjAgbGFzdF92YWx1ZTogMzMgbG9nX2NudDogMCBpc19jYWxsZWQ6 MSAKK3NlcXVlbmNlIHB1YmxpYy5zZXExOiB0cmFuc2FjdGlvbmFsOjAgbGFzdF92YWx1ZTog NjYgbG9nX2NudDogMCBpc19jYWxsZWQ6MSAKK3NlcXVlbmNlIHB1YmxpYy5zZXExOiB0cmFu c2FjdGlvbmFsOjAgbGFzdF92YWx1ZTogOTkgbG9nX2NudDogMCBpc19jYWxsZWQ6MSAKK3Nl cXVlbmNlIHB1YmxpYy5zZXExOiB0cmFuc2FjdGlvbmFsOjAgbGFzdF92YWx1ZTogMTMyIGxv Z19jbnQ6IDAgaXNfY2FsbGVkOjEKK0JFR0lOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1 YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdl cl06MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50 MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6 IElOU0VSVDogYzFbaW50ZWdlcl06NSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VS VDogYzFbaW50ZWdlcl06NyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3Rh YmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06OCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFb aW50ZWdlcl06OSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1 YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MTAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdl cl06MTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50 MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MTIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MTMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6 IElOU0VSVDogYzFbaW50ZWdlcl06MTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MTUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VS VDogYzFbaW50ZWdlcl06MTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3Rh YmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MTcgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFb aW50ZWdlcl06MTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1 YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MTkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdl cl06MjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50 MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MjEgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MjIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6 IElOU0VSVDogYzFbaW50ZWdlcl06MjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MjQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VS VDogYzFbaW50ZWdlcl06MjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3Rh YmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MjYgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFb aW50ZWdlcl06MjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1 YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MjggICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdl cl06MjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50 MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MzAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MzEg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6 IElOU0VSVDogYzFbaW50ZWdlcl06MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MzMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VS VDogYzFbaW50ZWdlcl06MzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3Rh YmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MzUgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFb aW50ZWdlcl06MzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1 YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MzcgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdl cl06MzggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50 MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MzkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NDAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6 IElOU0VSVDogYzFbaW50ZWdlcl06NDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NDIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VS VDogYzFbaW50ZWdlcl06NDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3Rh YmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NDQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFb aW50ZWdlcl06NDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1 YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NDYgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdl cl06NDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50 MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NDggICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NDkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6 IElOU0VSVDogYzFbaW50ZWdlcl06NTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NTEgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VS VDogYzFbaW50ZWdlcl06NTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3Rh YmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NTMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFb aW50ZWdlcl06NTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1 YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NTUgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdl cl06NTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50 MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NTcgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NTgg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6 IElOU0VSVDogYzFbaW50ZWdlcl06NTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NjAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VS VDogYzFbaW50ZWdlcl06NjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3Rh YmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NjIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFb aW50ZWdlcl06NjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1 YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NjQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdl cl06NjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50 MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NjYgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06Njcg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6 IElOU0VSVDogYzFbaW50ZWdlcl06NjggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NjkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VS VDogYzFbaW50ZWdlcl06NzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3Rh YmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NzEgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFb aW50ZWdlcl06NzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1 YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NzMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdl cl06NzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50 MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NzUgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NzYg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6 IElOU0VSVDogYzFbaW50ZWdlcl06NzcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NzggICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VS VDogYzFbaW50ZWdlcl06NzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3Rh YmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06ODAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFb aW50ZWdlcl06ODEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1 YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06ODIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdl cl06ODMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50 MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06ODQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06ODUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6 IElOU0VSVDogYzFbaW50ZWdlcl06ODYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06ODcgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VS VDogYzFbaW50ZWdlcl06ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3Rh YmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06ODkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFb aW50ZWdlcl06OTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1 YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06OTEgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdl cl06OTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50 MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06OTMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06OTQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6 IElOU0VSVDogYzFbaW50ZWdlcl06OTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06OTYgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VS VDogYzFbaW50ZWdlcl06OTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3Rh YmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06OTggICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFb aW50ZWdlcl06OTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1 YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MTAwICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKK0NPTU1JVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKygxMDYgcm93cykKKwor P2NvbHVtbj8KKy0tLS0tLS0tCitzdG9wICAgIAorKDEgcm93KQorCisKK3N0YXJ0aW5nIHBl cm11dGF0aW9uOiBzMmJlZ2luIHMydHhpZCBzMWluaXQgczNiZWdpbiBzM3R4aWQgczJjb21t aXQgczJiZWdpbiBzMnJlc3RhcnQgczJpbnNlcnQgczNjb21taXQgczJjb21taXQgczFzdGFy dAorc3RlcCBzMmJlZ2luOiBCRUdJTjsKK3N0ZXAgczJ0eGlkOiBTRUxFQ1QgcGdfY3VycmVu dF94YWN0X2lkKCk7CitwZ19jdXJyZW50X3hhY3RfaWQKKy0tLS0tLS0tLS0tLS0tLS0tLQor ICAgICAgICAgICAgICAgNzI4CisoMSByb3cpCisKK3N0ZXAgczFpbml0OiBTRUxFQ1QgJ2lu aXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgnaXNvbGF0aW9u X3Nsb3QnLCAndGVzdF9kZWNvZGluZycsIGZhbHNlLCB0cnVlKTsgPHdhaXRpbmcgLi4uPgor c3RlcCBzM2JlZ2luOiBCRUdJTjsKK3N0ZXAgczN0eGlkOiBTRUxFQ1QgcGdfY3VycmVudF94 YWN0X2lkKCk7CitwZ19jdXJyZW50X3hhY3RfaWQKKy0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgNzI5CisoMSByb3cpCisKK3N0ZXAgczJjb21taXQ6IENPTU1JVDsKK3N0 ZXAgczJiZWdpbjogQkVHSU47CitzdGVwIHMycmVzdGFydDogCitzdGVwIHMyaW5zZXJ0OiBJ TlNFUlQgSU5UTyB0MV9zZXEgU0VMRUNUIG5leHR2YWwoJ3NlcTEnKSBGUk9NIGdlbmVyYXRl X3NlcmllcygxLDEwMCk7CitzdGVwIHMzY29tbWl0OiBDT01NSVQ7CitzdGVwIHMxaW5pdDog PC4uLiBjb21wbGV0ZWQ+Cis/Y29sdW1uPworLS0tLS0tLS0KK2luaXQgICAgCisoMSByb3cp CisKK3N0ZXAgczJjb21taXQ6IENPTU1JVDsKK3N0ZXAgczFzdGFydDogU0VMRUNUIGRhdGEg IEZST00gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdpc29sYXRpb25fc2xvdCcsIE5V TEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnZmFsc2UnLCAnc2tpcC1lbXB0eS14YWN0cycs ICcxJyk7CitkYXRhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3NlcXVlbmNl IHB1YmxpYy5zZXExOiB0cmFuc2FjdGlvbmFsOjAgbGFzdF92YWx1ZTogMzMgbG9nX2NudDog MCBpc19jYWxsZWQ6MSAKK3NlcXVlbmNlIHB1YmxpYy5zZXExOiB0cmFuc2FjdGlvbmFsOjAg bGFzdF92YWx1ZTogNjYgbG9nX2NudDogMCBpc19jYWxsZWQ6MSAKK3NlcXVlbmNlIHB1Ymxp Yy5zZXExOiB0cmFuc2FjdGlvbmFsOjAgbGFzdF92YWx1ZTogOTkgbG9nX2NudDogMCBpc19j YWxsZWQ6MSAKK3NlcXVlbmNlIHB1YmxpYy5zZXExOiB0cmFuc2FjdGlvbmFsOjAgbGFzdF92 YWx1ZTogMTMyIGxvZ19jbnQ6IDAgaXNfY2FsbGVkOjEKK0JFR0lOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6 IGMxW2ludGVnZXJdOjEgIAordGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRl Z2VyXToyICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MyAg Cit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjQgIAordGFibGUg cHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXTo1ICAKK3RhYmxlIHB1YmxpYy50 MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NiAgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJ TlNFUlQ6IGMxW2ludGVnZXJdOjcgIAordGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBj MVtpbnRlZ2VyXTo4ICAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdl cl06OSAgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjEwIAor dGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXToxMSAKK3RhYmxlIHB1 YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MTIgCit0YWJsZSBwdWJsaWMudDFf c2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjEzIAordGFibGUgcHVibGljLnQxX3NlcTogSU5T RVJUOiBjMVtpbnRlZ2VyXToxNCAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFb aW50ZWdlcl06MTUgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJd OjE2IAordGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXToxNyAKK3Rh YmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MTggCit0YWJsZSBwdWJs aWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjE5IAordGFibGUgcHVibGljLnQxX3Nl cTogSU5TRVJUOiBjMVtpbnRlZ2VyXToyMCAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VS VDogYzFbaW50ZWdlcl06MjEgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2lu dGVnZXJdOjIyIAordGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXToy MyAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MjQgCit0YWJs ZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjI1IAordGFibGUgcHVibGlj LnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXToyNiAKK3RhYmxlIHB1YmxpYy50MV9zZXE6 IElOU0VSVDogYzFbaW50ZWdlcl06MjcgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6 IGMxW2ludGVnZXJdOjI4IAordGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRl Z2VyXToyOSAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MzAg Cit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjMxIAordGFibGUg cHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXTozMiAKK3RhYmxlIHB1YmxpYy50 MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MzMgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJ TlNFUlQ6IGMxW2ludGVnZXJdOjM0IAordGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBj MVtpbnRlZ2VyXTozNSAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdl cl06MzYgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjM3IAor dGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXTozOCAKK3RhYmxlIHB1 YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06MzkgCit0YWJsZSBwdWJsaWMudDFf c2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjQwIAordGFibGUgcHVibGljLnQxX3NlcTogSU5T RVJUOiBjMVtpbnRlZ2VyXTo0MSAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFb aW50ZWdlcl06NDIgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJd OjQzIAordGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXTo0NCAKK3Rh YmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NDUgCit0YWJsZSBwdWJs aWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjQ2IAordGFibGUgcHVibGljLnQxX3Nl cTogSU5TRVJUOiBjMVtpbnRlZ2VyXTo0NyAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VS VDogYzFbaW50ZWdlcl06NDggCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2lu dGVnZXJdOjQ5IAordGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXTo1 MCAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NTEgCit0YWJs ZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjUyIAordGFibGUgcHVibGlj LnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXTo1MyAKK3RhYmxlIHB1YmxpYy50MV9zZXE6 IElOU0VSVDogYzFbaW50ZWdlcl06NTQgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6 IGMxW2ludGVnZXJdOjU1IAordGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRl Z2VyXTo1NiAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NTcg Cit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjU4IAordGFibGUg cHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXTo1OSAKK3RhYmxlIHB1YmxpYy50 MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NjAgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJ TlNFUlQ6IGMxW2ludGVnZXJdOjYxIAordGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBj MVtpbnRlZ2VyXTo2MiAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdl cl06NjMgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjY0IAor dGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXTo2NSAKK3RhYmxlIHB1 YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NjYgCit0YWJsZSBwdWJsaWMudDFf c2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjY3IAordGFibGUgcHVibGljLnQxX3NlcTogSU5T RVJUOiBjMVtpbnRlZ2VyXTo2OCAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFb aW50ZWdlcl06NjkgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJd OjcwIAordGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXTo3MSAKK3Rh YmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NzIgCit0YWJsZSBwdWJs aWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjczIAordGFibGUgcHVibGljLnQxX3Nl cTogSU5TRVJUOiBjMVtpbnRlZ2VyXTo3NCAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VS VDogYzFbaW50ZWdlcl06NzUgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2lu dGVnZXJdOjc2IAordGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXTo3 NyAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06NzggCit0YWJs ZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjc5IAordGFibGUgcHVibGlj LnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXTo4MCAKK3RhYmxlIHB1YmxpYy50MV9zZXE6 IElOU0VSVDogYzFbaW50ZWdlcl06ODEgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6 IGMxW2ludGVnZXJdOjgyIAordGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRl Z2VyXTo4MyAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06ODQg Cit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjg1IAordGFibGUg cHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXTo4NiAKK3RhYmxlIHB1YmxpYy50 MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06ODcgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJ TlNFUlQ6IGMxW2ludGVnZXJdOjg4IAordGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBj MVtpbnRlZ2VyXTo4OSAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdl cl06OTAgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjkxIAor dGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXTo5MiAKK3RhYmxlIHB1 YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06OTMgCit0YWJsZSBwdWJsaWMudDFf c2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjk0IAordGFibGUgcHVibGljLnQxX3NlcTogSU5T RVJUOiBjMVtpbnRlZ2VyXTo5NSAKK3RhYmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFb aW50ZWdlcl06OTYgCit0YWJsZSBwdWJsaWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJd Ojk3IAordGFibGUgcHVibGljLnQxX3NlcTogSU5TRVJUOiBjMVtpbnRlZ2VyXTo5OCAKK3Rh YmxlIHB1YmxpYy50MV9zZXE6IElOU0VSVDogYzFbaW50ZWdlcl06OTkgCit0YWJsZSBwdWJs aWMudDFfc2VxOiBJTlNFUlQ6IGMxW2ludGVnZXJdOjEwMAorQ09NTUlUICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKygxMDIgcm93cykKKworP2NvbHVtbj8KKy0t LS0tLS0tCitzdG9wICAgIAorKDEgcm93KQorCmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3Rf ZGVjb2Rpbmcvc3BlY3MvbWVzc2FnZXMyLnNwZWMgYi9jb250cmliL3Rlc3RfZGVjb2Rpbmcv c3BlY3MvbWVzc2FnZXMyLnNwZWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjEzMDBiNzgxYjZjCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi90ZXN0X2Rl Y29kaW5nL3NwZWNzL21lc3NhZ2VzMi5zcGVjCkBAIC0wLDAgKzEsNDUgQEAKKyMgVGVzdCBk ZWNvZGluZyBvZiB0d28tcGhhc2UgdHJhbnNhY3Rpb25zIGR1cmluZyB0aGUgYnVpbGQgb2Yg YSBjb25zaXN0ZW50IHNuYXBzaG90Lgorc2V0dXAKK3sKKyAgICBEUk9QIFRBQkxFIElGIEVY SVNUUyB0MV9tZXNzYWdlOworICAgIENSRUFURSBUQUJMRSB0MV9tZXNzYWdlKG1zZyB0ZXh0 KTsKK30KKwordGVhcmRvd24KK3sKKyAgICBEUk9QIFRBQkxFIHQxX21lc3NhZ2U7CisgICAg U0VMRUNUICdzdG9wJyBGUk9NIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnaXNvbGF0aW9u X3Nsb3QnKTsKK30KKworCitzZXNzaW9uICJzMSIKK3NldHVwIHsgU0VUIHN5bmNocm9ub3Vz X2NvbW1pdD1vbjsgfQorCitzdGVwICJzMWluaXQiIHtTRUxFQ1QgJ2luaXQnIEZST00gcGdf Y3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgnaXNvbGF0aW9uX3Nsb3QnLCAndGVz dF9kZWNvZGluZycsIGZhbHNlLCB0cnVlKTt9CitzdGVwICJzMXN0YXJ0IiB7U0VMRUNUIGRh dGEgIEZST00gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdpc29sYXRpb25fc2xvdCcs IE5VTEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnZmFsc2UnLCAnc2tpcC1lbXB0eS14YWN0 cycsICcxJyk7fQorCisKK3Nlc3Npb24gInMyIgorc2V0dXAgeyBTRVQgc3luY2hyb25vdXNf Y29tbWl0PW9uOyB9CisKK3N0ZXAgInMydHhpZCIge1NFTEVDVCBwZ19jdXJyZW50X3hhY3Rf aWQoKTt9CitzdGVwICJzMmJlZ2luIiB7QkVHSU47fQorc3RlcCAiczJjb21taXQiIHtDT01N SVQ7fQorc3RlcCAiczJtZXNzYWdlIiB7U0VMRUNUIHBnX2xvZ2ljYWxfZW1pdF9tZXNzYWdl KGZhbHNlLCAndGVzdCcsICdtc2cgbm9uLXRyYW5zYWN0aW9uYWwnKTt9Cisjc3RlcCAiczJt ZXNzYWdlIiB7U0VMRUNUIHBnX2xvZ2ljYWxfZW1pdF9tZXNzYWdlKHRydWUsICd0ZXN0Jywg J21zZyB0cmFuc2FjdGlvbmFsJyk7fQorc3RlcCAiczJpbnNlcnQiIHtJTlNFUlQgSU5UTyB0 MV9tZXNzYWdlIFZBTFVFUyAoJ21zZycpO30KKworc2Vzc2lvbiAiczMiCitzZXR1cCB7IFNF VCBzeW5jaHJvbm91c19jb21taXQ9b247IH0KKworc3RlcCAiczN0eGlkIiB7U0VMRUNUIHBn X2N1cnJlbnRfeGFjdF9pZCgpO30KK3N0ZXAgInMzYmVnaW4iIHtCRUdJTjt9CitzdGVwICJz M2NvbW1pdCIge0NPTU1JVDt9CisKKyMgU2ltcGxlIGNhc2UsIHdpdGggY29uc2lzdGVudCBz dGF0ZSBiZWZvcmUgdGhlIHdob2xlIGluc2VydCwgbm9uLXRyYW5zYWN0aW9uYWwKKyMKK3Bl cm11dGF0aW9uICJzMWluaXQiICJzMm1lc3NhZ2UiICJzMmluc2VydCIgInMxc3RhcnQiCisK KyMgRm9yY2UgYnVpbGRpbmcgb2YgYSBjb25zaXN0ZW50IHNuYXBzaG90IGFmdGVyIHRoZSBJ TlNFUlQgYnV0IGJlZm9yZSBDT01NSVQsIG5vbi10cmFuc2FjdGlvbmFsCisjCitwZXJtdXRh dGlvbiAiczJiZWdpbiIgInMydHhpZCIgInMxaW5pdCIgInMzYmVnaW4iICJzM3R4aWQiICJz MmNvbW1pdCIgInMyYmVnaW4iICJzMm1lc3NhZ2UiICJzMmluc2VydCIgInMzY29tbWl0IiAi czJjb21taXQiICJzMXN0YXJ0IgpkaWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5n L3NwZWNzL3NlcXVlbmNlcy5zcGVjIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3NwZWNzL3Nl cXVlbmNlcy5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4w ZjJjZDA2YTdkMwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9z cGVjcy9zZXF1ZW5jZXMuc3BlYwpAQCAtMCwwICsxLDQ5IEBACisjIFRlc3QgZGVjb2Rpbmcg b2YgdHdvLXBoYXNlIHRyYW5zYWN0aW9ucyBkdXJpbmcgdGhlIGJ1aWxkIG9mIGEgY29uc2lz dGVudCBzbmFwc2hvdC4KK3NldHVwCit7CisgICAgRFJPUCBUQUJMRSBJRiBFWElTVFMgdDFf c2VxOworICAgIERST1AgU0VRVUVOQ0UgSUYgRVhJU1RTIHNlcTE7CisKKyAgICBDUkVBVEUg VEFCTEUgdDFfc2VxKGMxIElOVCk7CisgICAgQ1JFQVRFIFNFUVVFTkNFIHNlcTE7Cit9CisK K3RlYXJkb3duCit7CisgICAgRFJPUCBUQUJMRSB0MV9zZXE7CisgICAgRFJPUCBTRVFVRU5D RSBzZXExOworICAgIFNFTEVDVCAnc3RvcCcgRlJPTSBwZ19kcm9wX3JlcGxpY2F0aW9uX3Ns b3QoJ2lzb2xhdGlvbl9zbG90Jyk7Cit9CisKKworc2Vzc2lvbiAiczEiCitzZXR1cCB7IFNF VCBzeW5jaHJvbm91c19jb21taXQ9b247IH0KKworc3RlcCAiczFpbml0IiB7U0VMRUNUICdp bml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ2lzb2xhdGlv bl9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnLCBmYWxzZSwgdHJ1ZSk7fQorc3RlcCAiczFzdGFy dCIge1NFTEVDVCBkYXRhICBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnaXNv bGF0aW9uX3Nsb3QnLCBOVUxMLCBOVUxMLCAnaW5jbHVkZS14aWRzJywgJ2ZhbHNlJywgJ3Nr aXAtZW1wdHkteGFjdHMnLCAnMScpO30KKworCitzZXNzaW9uICJzMiIKK3NldHVwIHsgU0VU IHN5bmNocm9ub3VzX2NvbW1pdD1vbjsgfQorCitzdGVwICJzMnR4aWQiIHtTRUxFQ1QgcGdf Y3VycmVudF94YWN0X2lkKCk7fQorc3RlcCAiczJiZWdpbiIge0JFR0lOO30KK3N0ZXAgInMy Y29tbWl0IiB7Q09NTUlUO30KK3N0ZXAgInMyaW5zZXJ0IiB7SU5TRVJUIElOVE8gdDFfc2Vx IFNFTEVDVCBuZXh0dmFsKCdzZXExJykgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDApO30K KyNzdGVwICJzMnJlc3RhcnQiIHtBTFRFUiBTRVFVRU5DRSBzZXExIFJFU1RBUlQ7fQorc3Rl cCAiczJyZXN0YXJ0IiB7fQorCitzZXNzaW9uICJzMyIKK3NldHVwIHsgU0VUIHN5bmNocm9u b3VzX2NvbW1pdD1vbjsgfQorCitzdGVwICJzM3R4aWQiIHtTRUxFQ1QgcGdfY3VycmVudF94 YWN0X2lkKCk7fQorc3RlcCAiczNiZWdpbiIge0JFR0lOO30KK3N0ZXAgInMzY29tbWl0IiB7 Q09NTUlUO30KKworIyBTaW1wbGUgY2FzZSwgd2l0aCBjb25zaXN0ZW50IHN0YXRlIGJlZm9y ZSB0aGUgd2hvbGUgaW5zZXJ0CisjCitwZXJtdXRhdGlvbiAiczFpbml0IiAiczJyZXN0YXJ0 IiAiczJpbnNlcnQiICJzMXN0YXJ0IgorCisjIEZvcmNlIGJ1aWxkaW5nIG9mIGEgY29uc2lz dGVudCBzbmFwc2hvdCBhZnRlciB0aGUgSU5TRVJUIGJ1dCBiZWZvcmUgQ09NTUlUCisjCitw ZXJtdXRhdGlvbiAiczJiZWdpbiIgInMydHhpZCIgInMxaW5pdCIgInMzYmVnaW4iICJzM3R4 aWQiICJzMmNvbW1pdCIgInMyYmVnaW4iICJzMnJlc3RhcnQiICJzMmluc2VydCIgInMzY29t bWl0IiAiczJjb21taXQiICJzMXN0YXJ0Igo= --------------4eGAEPC3KYGBS2t6H0QbT0xi--