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 1s0KRs-0037gl-D6 for pgsql-hackers@arkaria.postgresql.org; Fri, 26 Apr 2024 12:13:05 +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 1s0KRp-009uk1-68 for pgsql-hackers@arkaria.postgresql.org; Fri, 26 Apr 2024 12:13:02 +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.94.2) (envelope-from ) id 1s0KRo-009ujt-Ed for pgsql-hackers@lists.postgresql.org; Fri, 26 Apr 2024 12:13:01 +0000 Received: from forward500b.mail.yandex.net ([2a02:6b8:c02:900:1:45:d181:d500]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1s0KRf-0008Wr-Eb for pgsql-hackers@postgresql.org; Fri, 26 Apr 2024 12:12:59 +0000 Received: from mail-nwsmtp-smtp-production-main-23.myt.yp-c.yandex.net (mail-nwsmtp-smtp-production-main-23.myt.yp-c.yandex.net [IPv6:2a02:6b8:c12:4d9c:0:640:f3a0:0]) by forward500b.mail.yandex.net (Yandex) with ESMTPS id 7451E61031; Fri, 26 Apr 2024 15:12:46 +0300 (MSK) Received: by mail-nwsmtp-smtp-production-main-23.myt.yp-c.yandex.net (smtp/Yandex) with ESMTPSA id jCMto2DX0Gk0-5xFXGoEQ; Fri, 26 Apr 2024 15:12:45 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1714133565; bh=9+qZwUx3a7l342XrxMVMI+WvGmVICJLYk8kR261oH1c=; h=In-Reply-To:Cc:Date:References:To:Subject:Message-ID:From; b=vVQItFX5F+2UqyVM5rZxMUJ9htzqnerVRd8Ew/IT6PI/fnQ3UbUe1TL/rD7p+aXYO Dnqw574CxTy77eaVZNIPM5YL2nF7LDvJckqZGrwhPS0zrVBgWnNldp2ljEgMGDNZO2 xkuBaTTutl6hY0h/IszMv3XDXqZnHyo/vlr/QO78= Authentication-Results: mail-nwsmtp-smtp-production-main-23.myt.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Content-Type: multipart/mixed; boundary="------------qx4BAFKDBKyGztiilqGofhJG" Message-ID: <12c98d7d-a153-496a-bc56-2b9f38f1433e@yandex.ru> Date: Fri, 26 Apr 2024 15:12:45 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Fix parallel vacuum buffer usage reporting To: Anthonin Bonnefoy Cc: Masahiko Sawada , PostgreSQL Hackers References: <611de844-d3f6-4395-9042-5c76203b7250@yandex.ru> Content-Language: en-US From: Alena Rybakina In-Reply-To: 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. --------------qx4BAFKDBKyGztiilqGofhJG Content-Type: multipart/alternative; boundary="------------avKHgM8fBVT3yuEfUmdTfEyM" --------------avKHgM8fBVT3yuEfUmdTfEyM Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi! > The same script was run, but using vacuum verbose analyze, and I > saw the difference again in the fifth step: > with your patch: buffer usage: 32312 hits, 607 misses, 1566 dirtied > master: buffer usage: 32346 hits, 573 misses, 1360 dirtied > > Isn't there a chance for the checkpointer to run during this time? > That could make the conditions between the two runs slightly different > and explain the change in buffer report. > > [0] > https://github.com/postgres/postgres/blob/8a1b31e6e59631807a08a4e9465134c343bbdf5e/src/backend/access/heap/vacuumlazy.c#L2826-L2831 > > Looking at the script, you won't trigger the problem. Thank you for the link I accounted it in my next experiments. I repeated the test without processing checkpoints with a single index, and the number of pages in the buffer used almost matched: master branch: buffer usage: 32315 hits, 606 misses, 4486 dirtied with applied patch v4 version: buffer usage: 32315 hits, 606 misses, 4489 dirtied I think you are right - the problem was interfering with the checkpoint process, by the way I checked the first version patch. To cut a long story short, everything is fine now with one index. Just in case, I'll explain: I considered this case because your patch could have impact influenced it too. On 25.04.2024 10:17, Anthonin Bonnefoy wrote: > > On Wed, Apr 24, 2024 at 4:01 PM Alena Rybakina > wrote: > > I tested the main postgres branch with and without your fix using > a script that was written by me. It consists of five scenarios and > I made a comparison in the logs between the original version of > the master branch and the master branch with your patch: > >  Hi! Thanks for the tests. > > I have attached a test file (vacuum_check_logs.sql) > > The reporting issue will only happen if there's a parallel index > vacuum and it will only happen if there's at least 2 indexes [0]. You > will need to create an additional index. Speaking of the problem, I added another index and repeated the test and found a significant difference: * I found it when I commited the transaction (3): master: 2964hits, 0misses, 0dirtied with applied patch v4 version: buffer usage: 33013hits, 0misses, 3dirtied * When I deleted all the data from the table and later started vacuum verbose again (4): master: buffer usage: 51486hits, 0misses, 0dirtied with applied patch v4 version:buffer usage: 77924hits, 0misses, 0dirtied * when I inserted 1 million data into the table and updated it (5): master:buffer usage: 27904hits, 5021misses, 1777dirtied with applied patch v4 version:buffer usage: 41051hits, 9973misses, 2564dirtied As I see, the number of pages is significantly more than it was in the master branch and ,frankly, I couldn't fully figure out if it was a mistake or not. I attached a test script (vacuum_checks_logs.sql) with two indexes and no checkpoints, I also attached log files: the first one (vacuum_test) is the result of testing on the master branch, the second file with your applied patch (vacuum_test_v4). -- Regards, Alena Rybakina Postgres Professional:http://www.postgrespro.com The Russian Postgres Company --------------avKHgM8fBVT3yuEfUmdTfEyM Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit

Hi!

The same script was run, but using vacuum verbose analyze, and I saw the difference again in the fifth step:
with your patch: buffer usage: 32312 hits, 607 misses, 1566 dirtied
master: buffer usage: 32346 hits, 573 misses, 1360 dirtied
Isn't there a chance for the checkpointer to run during this time? That could make the conditions between the two runs slightly different and explain the change in buffer report.

Thank you for the link I accounted it in my next experiments.

I repeated the test without processing checkpoints with a single index, and the number of pages in the buffer used almost matched:

master branch: buffer usage: 32315 hits, 606 misses, 4486 dirtied

with applied patch v4 version: buffer usage: 32315 hits, 606 misses, 4489 dirtied

I think you are right - the problem was interfering with the checkpoint process, by the way I checked the first version patch. To cut a long story short, everything is fine now with one index.

Just in case, I'll explain: I considered this case because your patch could have impact influenced it too.

On 25.04.2024 10:17, Anthonin Bonnefoy wrote:

On Wed, Apr 24, 2024 at 4:01 PM Alena Rybakina <lena.ribackina@yandex.ru> wrote:
I tested the main postgres branch with and without your fix using a script that was written by me. It consists of five scenarios and I made a comparison in the logs between the original version of the master branch and the master branch with your patch:
 Hi! Thanks for the tests.

I have attached a test file (vacuum_check_logs.sql)
The reporting issue will only happen if there's a parallel index vacuum and it will only happen if there's at least 2 indexes [0]. You will need to create an additional index.

Speaking of the problem, I added another index and repeated the test and found a significant difference:

  • I found it when I commited the transaction (3):

master: 2964 hits, 0 misses, 0 dirtied

with applied patch v4 version: buffer usage: 33013 hits, 0 misses, 3 dirtied

  • When I deleted all the data from the table and later started vacuum verbose again (4):

master: buffer usage: 51486 hits, 0 misses, 0 dirtied

with applied patch v4 version:buffer usage: 77924 hits, 0 misses, 0 dirtied

  • when I inserted 1 million data into the table and updated it (5):

master:buffer usage: 27904 hits, 5021 misses, 1777 dirtied

with applied patch v4 version:buffer usage: 41051 hits, 9973 misses, 2564 dirtied

As I see, the number of pages is significantly more than it was in the master branch and ,frankly, I couldn't fully figure out if it was a mistake or not.

I attached a test script (vacuum_checks_logs.sql) with two indexes and no checkpoints, I also attached log files: the first one (vacuum_test) is the result of testing on the master branch, the second file with your applied patch (vacuum_test_v4).
-- 
Regards,
Alena Rybakina
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
--------------avKHgM8fBVT3yuEfUmdTfEyM-- --------------qx4BAFKDBKyGztiilqGofhJG Content-Type: application/sql; name="vacuum_check_logs.sql" Content-Disposition: attachment; filename="vacuum_check_logs.sql" Content-Transfer-Encoding: base64 LS1pbnN0YWxsIGRibGluayBhbmQgY29ubmVjdCB0byBkYXRhYmFzZSBwb3N0Z3Jlcwpkcm9w IGV4dGVuc2lvbiBkYmxpbms7CmNyZWF0ZSBleHRlbnNpb24gZGJsaW5rOwpTRUxFQ1QgZGJs aW5rX2Nvbm5lY3QoJ215Y29ubicsICdkYm5hbWU9cG9zdGdyZXMnKTsKZHJvcCB0YWJsZSB2 ZXN0YXQ7CgpTRVQgdmFjdXVtX2Nvc3RfZGVsYXkgPSAyOwoKLS1jcmVhdGUgdGVzdCB0YWJs ZSB2ZXN0YXQgYW5kIGdlbmVyYXRlIGZvciBpdCBkYXRhcwpDUkVBVEUgVEFCTEUgdmVzdGF0 KGlkIGludCwgaXZhbCBpbnQpIFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZik7CmNy ZWF0ZSBpbmRleCB2ZXN0YXRfaWR4IG9uIHZlc3RhdChpZCk7CmNyZWF0ZSBpbmRleCB2ZXN0 YXRfaWR4MSBvbiB2ZXN0YXQoaXZhbCk7Ci0tcnVuIHZhY3V1bSB0YWJsZQp2YWN1dW0gdmVy Ym9zZSB2ZXN0YXQ7ClNFTEVDVCBwZ19zbGVlcCgzKTsKCklOU0VSVCBJTlRPIHZlc3RhdChp ZCkgU0VMRUNUIGl2YWwgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwMDAwKSBBcyBpdmFs OwoKLS1kZWxldGUgc21hbGwgcGFydCBvZiBpdCBhbmQgY2hlY2sgdGhlIG51bWJlciBvZiBy ZWxlYXNlZCBibG9ja3MgaW4gdGhlICJ0YWlsIiBvZiB0aGUgcmVsYXRpb25zaGlwCmRlbGV0 ZSBmcm9tIHZlc3RhdCB3aGVyZSBpZD45MDAwMDA7CgotLXJ1biB2YWN1dW0gdGFibGUKdmFj dXVtIHZlcmJvc2UgdmVzdGF0OwpTRUxFQ1QgcGdfc2xlZXAoMyk7CgotLXJ1biB0cmFuc2Fj dGlvbiByZXBlYXRhYmxlX3JlYWQgb24gdGhlIHRlc3QgdGFibGUuIHVwZGF0ZSB2YWx1ZXMg aW4gdGFibGUgYW5kIGNoZWNrIHZhY3V1bQotLWJsb2NrIHRydW5zYWN0aW9uIHByZXZlbnRz IHZhY3V1bSBjbGVhciB0dXBsZXMgYW5kIHBhZ2VzCnNlbGVjdCBkYmxpbmtfZXhlYygnbXlj b25uJywnYmVnaW4gdHJhbnNhY3Rpb24gaXNvbGF0aW9uIGxldmVsIHJlcGVhdGFibGUgcmVh ZCcpOwpzZWxlY3QgKiBmcm9tIGRibGluaygnbXljb25uJywnc2VsZWN0IHN1bShpdmFsKSBm cm9tIHZlc3RhdCcpIGFzIGRiMShhIGludGVnZXIpOwpVUERBVEUgdmVzdGF0IFNFVCBpdmFs ID0gaWQgKyAyOwp2YWN1dW0gdmVyYm9zZSB2ZXN0YXQ7ClNFTEVDVCBwZ19zbGVlcCgzKTsK Ci0tY2FuY2VsIGJsb2NraW5nIHRoZSB0cmFuc2l0IGFuZCBydW4gdmFjdXVtIGFnYWluLgpz ZWxlY3QgZGJsaW5rX2V4ZWMoJ215Y29ubicsJ2NvbW1pdCcpOwp2YWN1dW0gdmVyYm9zZSB2 ZXN0YXQ7ClNFTEVDVCBwZ19zbGVlcCgzKTsKCi0tZGVsZXRlIGFsbCB0dXBsZXMuIHZhY3V1 bSBtYXJrcyBhZGQgYmxvY2tzIGFzIGZyb3plbiBhbmQgYWxsLXZpc2libGUKLS1hbHNvIHdl IGNhbiBzZWUgY2hhbmdlcyBpbiBuX2RlYWRfdHVwX3ZhY3V1bWVkIGFzIGNvdW50IHR1cGxl cyBhcyByZW1vdmVkCmRlbGV0ZSBmcm9tIHZlc3RhdDsKdmFjdXVtIHZlcmJvc2UgdmVzdGF0 OwpTRUxFQ1QgcGdfc2xlZXAoMyk7CgotLWFuZCBhZ2FpbiBpbnNlcnQgdHVwbGVzIGFuZCB1 cGRhdGUgaXQKLS1ydW4gdmFjdXVtIGFuZCBjaGVjayByZXN1bHQuIHdlIGNhbiBzZWUgc3Rh dGlzdGljIG9uIGJsa193cml0ZV90aW1lCi0td2UgY2FuIHNlZSBjaGFuZ2VzIGluIGV2ZXJ5 d2hlcmUgZXhjZXB0IGJsa3NfcmVtb3ZlZApJTlNFUlQgSU5UTyB2ZXN0YXQoaWQpIFNFTEVD VCBpdmFsIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMDAwMCkgQXMgaXZhbDsKVVBEQVRF IHZlc3RhdCBTRVQgaXZhbCA9IGlkICsgMjsKdmFjdXVtIHZlcmJvc2UgdmVzdGF0OwpTRUxF Q1QgcGdfc2xlZXAoMyk7Cg== --------------qx4BAFKDBKyGztiilqGofhJG Content-Type: text/plain; charset=UTF-8; name="vacuum_test_v4" Content-Disposition: attachment; filename="vacuum_test_v4" Content-Transfer-Encoding: base64 cG9zdGdyZXM9IyBcaSB+L3ZhY3V1bV9jaGVja19sb2dzLnNxbCAKcHNxbDovaG9tZS9hbGVu YS92YWN1dW1fY2hlY2tfbG9ncy5zcWw6MjogRVJST1I6ICBleHRlbnNpb24gImRibGluayIg ZG9lcyBub3QgZXhpc3QKQ1JFQVRFIEVYVEVOU0lPTgogZGJsaW5rX2Nvbm5lY3QgCi0tLS0t LS0tLS0tLS0tLS0KIE9LCigxIHJvdykKCnBzcWw6L2hvbWUvYWxlbmEvdmFjdXVtX2NoZWNr X2xvZ3Muc3FsOjU6IEVSUk9SOiAgdGFibGUgInZlc3RhdCIgZG9lcyBub3QgZXhpc3QKU0VU ClNFVApDUkVBVEUgVEFCTEUKQ1JFQVRFIElOREVYCkNSRUFURSBJTkRFWApwc3FsOi9ob21l L2FsZW5hL3ZhY3V1bV9jaGVja19sb2dzLnNxbDoxNjogSU5GTzogIHZhY3V1bWluZyAicG9z dGdyZXMucHVibGljLnZlc3RhdCIKcHNxbDovaG9tZS9hbGVuYS92YWN1dW1fY2hlY2tfbG9n cy5zcWw6MTY6IElORk86ICBmaW5pc2hlZCB2YWN1dW1pbmcgInBvc3RncmVzLnB1YmxpYy52 ZXN0YXQiOiBpbmRleCBzY2FuczogMApwYWdlczogMCByZW1vdmVkLCAwIHJlbWFpbiwgMCBz Y2FubmVkICgxMDAuMDAlIG9mIHRvdGFsKQp0dXBsZXM6IDAgcmVtb3ZlZCwgMCByZW1haW4s IDAgYXJlIGRlYWQgYnV0IG5vdCB5ZXQgcmVtb3ZhYmxlCnJlbW92YWJsZSBjdXRvZmY6IDc0 Miwgd2hpY2ggd2FzIDAgWElEcyBvbGQgd2hlbiBvcGVyYXRpb24gZW5kZWQKbmV3IHJlbGZy b3plbnhpZDogNzQyLCB3aGljaCBpcyAzIFhJRHMgYWhlYWQgb2YgcHJldmlvdXMgdmFsdWUK ZnJvemVuOiAwIHBhZ2VzIGZyb20gdGFibGUgKDEwMC4wMCUgb2YgdG90YWwpIGhhZCAwIHR1 cGxlcyBmcm96ZW4KaW5kZXggc2NhbiBub3QgbmVlZGVkOiAwIHBhZ2VzIGZyb20gdGFibGUg KDEwMC4wMCUgb2YgdG90YWwpIGhhZCAwIGRlYWQgaXRlbSBpZGVudGlmaWVycyByZW1vdmVk CkkvTyB0aW1pbmdzOiByZWFkOiAwLjA0OSBtcywgd3JpdGU6IDAuMDAwIG1zCmF2ZyByZWFk IHJhdGU6IDQwLjU4NCBNQi9zLCBhdmcgd3JpdGUgcmF0ZTogMC4wMDAgTUIvcwpidWZmZXIg dXNhZ2U6IDIzIGhpdHMsIDIgbWlzc2VzLCAwIGRpcnRpZWQKV0FMIHVzYWdlOiAxIHJlY29y ZHMsIDAgZnVsbCBwYWdlIGltYWdlcywgMjM3IGJ5dGVzCnN5c3RlbSB1c2FnZTogQ1BVOiB1 c2VyOiAwLjAwIHMsIHN5c3RlbTogMC4wMCBzLCBlbGFwc2VkOiAwLjAwIHMKVkFDVVVNCiBw Z19zbGVlcCAKLS0tLS0tLS0tLQogCigxIHJvdykKCklOU0VSVCAwIDEwMDAwMDAKREVMRVRF IDEwMDAwMApwc3FsOi9ob21lL2FsZW5hL3ZhY3V1bV9jaGVja19sb2dzLnNxbDoyNTogSU5G TzogIHZhY3V1bWluZyAicG9zdGdyZXMucHVibGljLnZlc3RhdCIKcHNxbDovaG9tZS9hbGVu YS92YWN1dW1fY2hlY2tfbG9ncy5zcWw6MjU6IElORk86ICBsYXVuY2hlZCAxIHBhcmFsbGVs IHZhY3V1bSB3b3JrZXIgZm9yIGluZGV4IHZhY3V1bWluZyAocGxhbm5lZDogMSkKcHNxbDov aG9tZS9hbGVuYS92YWN1dW1fY2hlY2tfbG9ncy5zcWw6MjU6IElORk86ICB0YWJsZSAidmVz dGF0IjogdHJ1bmNhdGVkIDM5MjIgdG8gMzUzMCBwYWdlcwpwc3FsOi9ob21lL2FsZW5hL3Zh Y3V1bV9jaGVja19sb2dzLnNxbDoyNTogSU5GTzogIGZpbmlzaGVkIHZhY3V1bWluZyAicG9z dGdyZXMucHVibGljLnZlc3RhdCI6IGluZGV4IHNjYW5zOiAxCnBhZ2VzOiAzOTIgcmVtb3Zl ZCwgMzUzMCByZW1haW4sIDM5MjIgc2Nhbm5lZCAoMTAwLjAwJSBvZiB0b3RhbCkKdHVwbGVz OiAxMDAwMDAgcmVtb3ZlZCwgOTAwMDAwIHJlbWFpbiwgMCBhcmUgZGVhZCBidXQgbm90IHll dCByZW1vdmFibGUKcmVtb3ZhYmxlIGN1dG9mZjogNzQ0LCB3aGljaCB3YXMgMSBYSURzIG9s ZCB3aGVuIG9wZXJhdGlvbiBlbmRlZApmcm96ZW46IDAgcGFnZXMgZnJvbSB0YWJsZSAoMC4w MCUgb2YgdG90YWwpIGhhZCAwIHR1cGxlcyBmcm96ZW4KaW5kZXggc2NhbiBuZWVkZWQ6IDM5 MyBwYWdlcyBmcm9tIHRhYmxlICgxMC4wMiUgb2YgdG90YWwpIGhhZCAxMDAwMDAgZGVhZCBp dGVtIGlkZW50aWZpZXJzIHJlbW92ZWQKaW5kZXggInZlc3RhdF9pZHgiOiBwYWdlczogMjE5 NyBpbiB0b3RhbCwgMjE4IG5ld2x5IGRlbGV0ZWQsIDIxOCBjdXJyZW50bHkgZGVsZXRlZCwg MCByZXVzYWJsZQppbmRleCAidmVzdGF0X2lkeDEiOiBwYWdlczogNzg1IGluIHRvdGFsLCA3 NyBuZXdseSBkZWxldGVkLCA3NyBjdXJyZW50bHkgZGVsZXRlZCwgMCByZXVzYWJsZQpJL08g dGltaW5nczogcmVhZDogMC4wMDAgbXMsIHdyaXRlOiAwLjA0NiBtcwphdmcgcmVhZCByYXRl OiAwLjAwMCBNQi9zLCBhdmcgd3JpdGUgcmF0ZTogMC4wNTQgTUIvcwpidWZmZXIgdXNhZ2U6 IDEzOTkwIGhpdHMsIDAgbWlzc2VzLCA0IGRpcnRpZWQKV0FMIHVzYWdlOiA1NjA0IHJlY29y ZHMsIDEgZnVsbCBwYWdlIGltYWdlcywgOTQ2OTM0IGJ5dGVzCnN5c3RlbSB1c2FnZTogQ1BV OiB1c2VyOiAwLjQ0IHMsIHN5c3RlbTogMC4wMCBzLCBlbGFwc2VkOiAwLjU3IHMKVkFDVVVN CiBwZ19zbGVlcCAKLS0tLS0tLS0tLQogCigxIHJvdykKCiBkYmxpbmtfZXhlYyAKLS0tLS0t LS0tLS0tLQogQkVHSU4KKDEgcm93KQoKIGEgCi0tLQogIAooMSByb3cpCgpVUERBVEUgOTAw MDAwCnBzcWw6L2hvbWUvYWxlbmEvdmFjdXVtX2NoZWNrX2xvZ3Muc3FsOjM4OiBJTkZPOiAg dmFjdXVtaW5nICJwb3N0Z3Jlcy5wdWJsaWMudmVzdGF0Igpwc3FsOi9ob21lL2FsZW5hL3Zh Y3V1bV9jaGVja19sb2dzLnNxbDozODogSU5GTzogIGxhdW5jaGVkIDEgcGFyYWxsZWwgdmFj dXVtIHdvcmtlciBmb3IgaW5kZXggY2xlYW51cCAocGxhbm5lZDogMSkKcHNxbDovaG9tZS9h bGVuYS92YWN1dW1fY2hlY2tfbG9ncy5zcWw6Mzg6IElORk86ICBmaW5pc2hlZCB2YWN1dW1p bmcgInBvc3RncmVzLnB1YmxpYy52ZXN0YXQiOiBpbmRleCBzY2FuczogMApwYWdlczogMCBy ZW1vdmVkLCA3NTEyIHJlbWFpbiwgNzUxMiBzY2FubmVkICgxMDAuMDAlIG9mIHRvdGFsKQp0 dXBsZXM6IDAgcmVtb3ZlZCwgMTgwMDAwMCByZW1haW4sIDkwMDAwMCBhcmUgZGVhZCBidXQg bm90IHlldCByZW1vdmFibGUKcmVtb3ZhYmxlIGN1dG9mZjogNzQ1LCB3aGljaCB3YXMgMSBY SURzIG9sZCB3aGVuIG9wZXJhdGlvbiBlbmRlZApmcm96ZW46IDAgcGFnZXMgZnJvbSB0YWJs ZSAoMC4wMCUgb2YgdG90YWwpIGhhZCAwIHR1cGxlcyBmcm96ZW4KaW5kZXggc2NhbiBub3Qg bmVlZGVkOiAwIHBhZ2VzIGZyb20gdGFibGUgKDAuMDAlIG9mIHRvdGFsKSBoYWQgMCBkZWFk IGl0ZW0gaWRlbnRpZmllcnMgcmVtb3ZlZAppbmRleCAidmVzdGF0X2lkeCI6IHBhZ2VzOiA0 MTcxIGluIHRvdGFsLCAwIG5ld2x5IGRlbGV0ZWQsIDIxOCBjdXJyZW50bHkgZGVsZXRlZCwg MjE4IHJldXNhYmxlCkkvTyB0aW1pbmdzOiByZWFkOiAwLjAwMCBtcywgd3JpdGU6IDAuMDU2 IG1zCmF2ZyByZWFkIHJhdGU6IDAuMDAwIE1CL3MsIGF2ZyB3cml0ZSByYXRlOiAwLjA0MSBN Qi9zCmJ1ZmZlciB1c2FnZTogMTk0MjUgaGl0cywgMCBtaXNzZXMsIDQgZGlydGllZApXQUwg dXNhZ2U6IDIgcmVjb3JkcywgMCBmdWxsIHBhZ2UgaW1hZ2VzLCAzMDkgYnl0ZXMKc3lzdGVt IHVzYWdlOiBDUFU6IHVzZXI6IDAuNTUgcywgc3lzdGVtOiAwLjAwIHMsIGVsYXBzZWQ6IDAu NzYgcwpWQUNVVU0KIHBnX3NsZWVwIAotLS0tLS0tLS0tCiAKKDEgcm93KQoKIGRibGlua19l eGVjIAotLS0tLS0tLS0tLS0tCiBDT01NSVQKKDEgcm93KQoKcHNxbDovaG9tZS9hbGVuYS92 YWN1dW1fY2hlY2tfbG9ncy5zcWw6NDU6IElORk86ICB2YWN1dW1pbmcgInBvc3RncmVzLnB1 YmxpYy52ZXN0YXQiCnBzcWw6L2hvbWUvYWxlbmEvdmFjdXVtX2NoZWNrX2xvZ3Muc3FsOjQ1 OiBJTkZPOiAgbGF1bmNoZWQgMSBwYXJhbGxlbCB2YWN1dW0gd29ya2VyIGZvciBpbmRleCB2 YWN1dW1pbmcgKHBsYW5uZWQ6IDEpCnBzcWw6L2hvbWUvYWxlbmEvdmFjdXVtX2NoZWNrX2xv Z3Muc3FsOjQ1OiBJTkZPOiAgZmluaXNoZWQgdmFjdXVtaW5nICJwb3N0Z3Jlcy5wdWJsaWMu dmVzdGF0IjogaW5kZXggc2NhbnM6IDEKcGFnZXM6IDAgcmVtb3ZlZCwgNzUxMiByZW1haW4s IDc1MTIgc2Nhbm5lZCAoMTAwLjAwJSBvZiB0b3RhbCkKdHVwbGVzOiA5MDAwMDAgcmVtb3Zl ZCwgOTAwMDAwIHJlbWFpbiwgMCBhcmUgZGVhZCBidXQgbm90IHlldCByZW1vdmFibGUKcmVt b3ZhYmxlIGN1dG9mZjogNzQ2LCB3aGljaCB3YXMgMCBYSURzIG9sZCB3aGVuIG9wZXJhdGlv biBlbmRlZApuZXcgcmVsZnJvemVueGlkOiA3NDUsIHdoaWNoIGlzIDMgWElEcyBhaGVhZCBv ZiBwcmV2aW91cyB2YWx1ZQpmcm96ZW46IDAgcGFnZXMgZnJvbSB0YWJsZSAoMC4wMCUgb2Yg dG90YWwpIGhhZCAwIHR1cGxlcyBmcm96ZW4KaW5kZXggc2NhbiBuZWVkZWQ6IDM1MzAgcGFn ZXMgZnJvbSB0YWJsZSAoNDYuOTklIG9mIHRvdGFsKSBoYWQgOTAwMDAwIGRlYWQgaXRlbSBp ZGVudGlmaWVycyByZW1vdmVkCmluZGV4ICJ2ZXN0YXRfaWR4IjogcGFnZXM6IDQxNzEgaW4g dG90YWwsIDAgbmV3bHkgZGVsZXRlZCwgMjE4IGN1cnJlbnRseSBkZWxldGVkLCAyMTggcmV1 c2FibGUKaW5kZXggInZlc3RhdF9pZHgxIjogcGFnZXM6IDQzNDIgaW4gdG90YWwsIDcwMyBu ZXdseSBkZWxldGVkLCA3ODAgY3VycmVudGx5IGRlbGV0ZWQsIDc3IHJldXNhYmxlCkkvTyB0 aW1pbmdzOiByZWFkOiAwLjAwMCBtcywgd3JpdGU6IDAuMDAwIG1zCmF2ZyByZWFkIHJhdGU6 IDAuMDAwIE1CL3MsIGF2ZyB3cml0ZSByYXRlOiAwLjAxMCBNQi9zCmJ1ZmZlciB1c2FnZTog MzMwMTMgaGl0cywgMCBtaXNzZXMsIDMgZGlydGllZApXQUwgdXNhZ2U6IDIwNjIxIHJlY29y ZHMsIDAgZnVsbCBwYWdlIGltYWdlcywgOTA5NzY0OSBieXRlcwpzeXN0ZW0gdXNhZ2U6IENQ VTogdXNlcjogMi4xOSBzLCBzeXN0ZW06IDAuMDAgcywgZWxhcHNlZDogMi40MyBzClZBQ1VV TQogcGdfc2xlZXAgCi0tLS0tLS0tLS0KIAooMSByb3cpCgpERUxFVEUgOTAwMDAwCnBzcWw6 L2hvbWUvYWxlbmEvdmFjdXVtX2NoZWNrX2xvZ3Muc3FsOjUyOiBJTkZPOiAgdmFjdXVtaW5n ICJwb3N0Z3Jlcy5wdWJsaWMudmVzdGF0Igpwc3FsOi9ob21lL2FsZW5hL3ZhY3V1bV9jaGVj a19sb2dzLnNxbDo1MjogSU5GTzogIGxhdW5jaGVkIDEgcGFyYWxsZWwgdmFjdXVtIHdvcmtl ciBmb3IgaW5kZXggdmFjdXVtaW5nIChwbGFubmVkOiAxKQpwc3FsOi9ob21lL2FsZW5hL3Zh Y3V1bV9jaGVja19sb2dzLnNxbDo1MjogSU5GTzogIHRhYmxlICJ2ZXN0YXQiOiB0cnVuY2F0 ZWQgNzUxMiB0byAwIHBhZ2VzCnBzcWw6L2hvbWUvYWxlbmEvdmFjdXVtX2NoZWNrX2xvZ3Mu c3FsOjUyOiBJTkZPOiAgZmluaXNoZWQgdmFjdXVtaW5nICJwb3N0Z3Jlcy5wdWJsaWMudmVz dGF0IjogaW5kZXggc2NhbnM6IDEKcGFnZXM6IDc1MTIgcmVtb3ZlZCwgMCByZW1haW4sIDM5 ODMgc2Nhbm5lZCAoNTMuMDIlIG9mIHRvdGFsKQp0dXBsZXM6IDkwMDAwMCByZW1vdmVkLCA0 MjI4MDQgcmVtYWluLCAwIGFyZSBkZWFkIGJ1dCBub3QgeWV0IHJlbW92YWJsZQpyZW1vdmFi bGUgY3V0b2ZmOiA3NDcsIHdoaWNoIHdhcyAxIFhJRHMgb2xkIHdoZW4gb3BlcmF0aW9uIGVu ZGVkCm5ldyByZWxmcm96ZW54aWQ6IDc0Nywgd2hpY2ggaXMgMiBYSURzIGFoZWFkIG9mIHBy ZXZpb3VzIHZhbHVlCmZyb3plbjogMCBwYWdlcyBmcm9tIHRhYmxlICgwLjAwJSBvZiB0b3Rh bCkgaGFkIDAgdHVwbGVzIGZyb3plbgppbmRleCBzY2FuIG5lZWRlZDogMzk4MyBwYWdlcyBm cm9tIHRhYmxlICg1My4wMiUgb2YgdG90YWwpIGhhZCA5MDAwMDAgZGVhZCBpdGVtIGlkZW50 aWZpZXJzIHJlbW92ZWQKaW5kZXggInZlc3RhdF9pZHgiOiBwYWdlczogNDE3MSBpbiB0b3Rh bCwgMzk0OSBuZXdseSBkZWxldGVkLCA0MTY3IGN1cnJlbnRseSBkZWxldGVkLCAyMTggcmV1 c2FibGUKaW5kZXggInZlc3RhdF9pZHgxIjogcGFnZXM6IDQzNDIgaW4gdG90YWwsIDM1NTgg bmV3bHkgZGVsZXRlZCwgNDMzOCBjdXJyZW50bHkgZGVsZXRlZCwgNzgwIHJldXNhYmxlCkkv TyB0aW1pbmdzOiByZWFkOiAwLjAwMCBtcywgd3JpdGU6IDAuMDAwIG1zCmF2ZyByZWFkIHJh dGU6IDAuMDAwIE1CL3MsIGF2ZyB3cml0ZSByYXRlOiAwLjAwMCBNQi9zCmJ1ZmZlciB1c2Fn ZTogNzc5MjQgaGl0cywgMCBtaXNzZXMsIDAgZGlydGllZApXQUwgdXNhZ2U6IDM0NDI4IHJl Y29yZHMsIDAgZnVsbCBwYWdlIGltYWdlcywgOTQzOTU2NiBieXRlcwpzeXN0ZW0gdXNhZ2U6 IENQVTogdXNlcjogMC41NiBzLCBzeXN0ZW06IDAuMDAgcywgZWxhcHNlZDogMS4wNSBzClZB Q1VVTQogcGdfc2xlZXAgCi0tLS0tLS0tLS0KIAooMSByb3cpCgpJTlNFUlQgMCAxMDAwMDAw ClVQREFURSAxMDAwMDAwCnBzcWw6L2hvbWUvYWxlbmEvdmFjdXVtX2NoZWNrX2xvZ3Muc3Fs OjYxOiBJTkZPOiAgdmFjdXVtaW5nICJwb3N0Z3Jlcy5wdWJsaWMudmVzdGF0Igpwc3FsOi9o b21lL2FsZW5hL3ZhY3V1bV9jaGVja19sb2dzLnNxbDo2MTogSU5GTzogIGxhdW5jaGVkIDEg cGFyYWxsZWwgdmFjdXVtIHdvcmtlciBmb3IgaW5kZXggdmFjdXVtaW5nIChwbGFubmVkOiAx KQpwc3FsOi9ob21lL2FsZW5hL3ZhY3V1bV9jaGVja19sb2dzLnNxbDo2MTogSU5GTzogIGZp bmlzaGVkIHZhY3V1bWluZyAicG9zdGdyZXMucHVibGljLnZlc3RhdCI6IGluZGV4IHNjYW5z OiAxCnBhZ2VzOiAwIHJlbW92ZWQsIDgzNDcgcmVtYWluLCA4MzQ3IHNjYW5uZWQgKDEwMC4w MCUgb2YgdG90YWwpCnR1cGxlczogMTAwMDAwMCByZW1vdmVkLCAxMDAwMDAwIHJlbWFpbiwg MCBhcmUgZGVhZCBidXQgbm90IHlldCByZW1vdmFibGUKcmVtb3ZhYmxlIGN1dG9mZjogNzUw LCB3aGljaCB3YXMgMCBYSURzIG9sZCB3aGVuIG9wZXJhdGlvbiBlbmRlZApuZXcgcmVsZnJv emVueGlkOiA3NDksIHdoaWNoIGlzIDIgWElEcyBhaGVhZCBvZiBwcmV2aW91cyB2YWx1ZQpm cm96ZW46IDAgcGFnZXMgZnJvbSB0YWJsZSAoMC4wMCUgb2YgdG90YWwpIGhhZCAwIHR1cGxl cyBmcm96ZW4KaW5kZXggc2NhbiBuZWVkZWQ6IDM5MjIgcGFnZXMgZnJvbSB0YWJsZSAoNDYu OTklIG9mIHRvdGFsKSBoYWQgMTAwMDAwMCBkZWFkIGl0ZW0gaWRlbnRpZmllcnMgcmVtb3Zl ZAppbmRleCAidmVzdGF0X2lkeCI6IHBhZ2VzOiA4MzQxIGluIHRvdGFsLCAwIG5ld2x5IGRl bGV0ZWQsIDM5NDkgY3VycmVudGx5IGRlbGV0ZWQsIDM5NDkgcmV1c2FibGUKaW5kZXggInZl c3RhdF9pZHgxIjogcGFnZXM6IDgyOTUgaW4gdG90YWwsIDc4MCBuZXdseSBkZWxldGVkLCA0 MzM4IGN1cnJlbnRseSBkZWxldGVkLCAzNTU4IHJldXNhYmxlCkkvTyB0aW1pbmdzOiByZWFk OiAzOS41OTQgbXMsIHdyaXRlOiA4LjE2OCBtcwphdmcgcmVhZCByYXRlOiAyMi42NDEgTUIv cywgYXZnIHdyaXRlIHJhdGU6IDUuODIxIE1CL3MKYnVmZmVyIHVzYWdlOiA0MTA1MSBoaXRz LCA5OTczIG1pc3NlcywgMjU2NCBkaXJ0aWVkCldBTCB1c2FnZTogMjI5MTEgcmVjb3Jkcywg MTU3IGZ1bGwgcGFnZSBpbWFnZXMsIDExMzMwODIzIGJ5dGVzCnN5c3RlbSB1c2FnZTogQ1BV OiB1c2VyOiAyLjYzIHMsIHN5c3RlbTogMC4wMyBzLCBlbGFwc2VkOiAzLjQ0IHMKVkFDVVVN CiBwZ19zbGVlcCAKLS0tLS0tLS0tLQogCigxIHJvdykK --------------qx4BAFKDBKyGztiilqGofhJG Content-Type: text/plain; charset=UTF-8; name="vacuum_test" Content-Disposition: attachment; filename="vacuum_test" Content-Transfer-Encoding: base64 cG9zdGdyZXM9IyBcaSB+L3ZhY3V1bV9jaGVja19sb2dzLnNxbCAKcHNxbDovaG9tZS9hbGVu YS92YWN1dW1fY2hlY2tfbG9ncy5zcWw6MjogRVJST1I6ICBleHRlbnNpb24gImRibGluayIg ZG9lcyBub3QgZXhpc3QKQ1JFQVRFIEVYVEVOU0lPTgogZGJsaW5rX2Nvbm5lY3QgCi0tLS0t LS0tLS0tLS0tLS0KIE9LCigxIHJvdykKCnBzcWw6L2hvbWUvYWxlbmEvdmFjdXVtX2NoZWNr X2xvZ3Muc3FsOjU6IEVSUk9SOiAgdGFibGUgInZlc3RhdCIgZG9lcyBub3QgZXhpc3QKU0VU ClNFVApDUkVBVEUgVEFCTEUKQ1JFQVRFIElOREVYCkNSRUFURSBJTkRFWApwc3FsOi9ob21l L2FsZW5hL3ZhY3V1bV9jaGVja19sb2dzLnNxbDoxNjogSU5GTzogIHZhY3V1bWluZyAicG9z dGdyZXMucHVibGljLnZlc3RhdCIKcHNxbDovaG9tZS9hbGVuYS92YWN1dW1fY2hlY2tfbG9n cy5zcWw6MTY6IElORk86ICBmaW5pc2hlZCB2YWN1dW1pbmcgInBvc3RncmVzLnB1YmxpYy52 ZXN0YXQiOiBpbmRleCBzY2FuczogMApwYWdlczogMCByZW1vdmVkLCAwIHJlbWFpbiwgMCBz Y2FubmVkICgxMDAuMDAlIG9mIHRvdGFsKQp0dXBsZXM6IDAgcmVtb3ZlZCwgMCByZW1haW4s IDAgYXJlIGRlYWQgYnV0IG5vdCB5ZXQgcmVtb3ZhYmxlCnJlbW92YWJsZSBjdXRvZmY6IDc0 Miwgd2hpY2ggd2FzIDAgWElEcyBvbGQgd2hlbiBvcGVyYXRpb24gZW5kZWQKbmV3IHJlbGZy b3plbnhpZDogNzQyLCB3aGljaCBpcyAzIFhJRHMgYWhlYWQgb2YgcHJldmlvdXMgdmFsdWUK ZnJvemVuOiAwIHBhZ2VzIGZyb20gdGFibGUgKDEwMC4wMCUgb2YgdG90YWwpIGhhZCAwIHR1 cGxlcyBmcm96ZW4KaW5kZXggc2NhbiBub3QgbmVlZGVkOiAwIHBhZ2VzIGZyb20gdGFibGUg KDEwMC4wMCUgb2YgdG90YWwpIGhhZCAwIGRlYWQgaXRlbSBpZGVudGlmaWVycyByZW1vdmVk CkkvTyB0aW1pbmdzOiByZWFkOiAwLjAzOSBtcywgd3JpdGU6IDAuMDAwIG1zCmF2ZyByZWFk IHJhdGU6IDQwLjI3MSBNQi9zLCBhdmcgd3JpdGUgcmF0ZTogMC4wMDAgTUIvcwpidWZmZXIg dXNhZ2U6IDIzIGhpdHMsIDIgbWlzc2VzLCAwIGRpcnRpZWQKV0FMIHVzYWdlOiAxIHJlY29y ZHMsIDAgZnVsbCBwYWdlIGltYWdlcywgMjM3IGJ5dGVzCnN5c3RlbSB1c2FnZTogQ1BVOiB1 c2VyOiAwLjAwIHMsIHN5c3RlbTogMC4wMCBzLCBlbGFwc2VkOiAwLjAwIHMKVkFDVVVNCiBw Z19zbGVlcCAKLS0tLS0tLS0tLQogCigxIHJvdykKCklOU0VSVCAwIDEwMDAwMDAKREVMRVRF IDEwMDAwMApwc3FsOi9ob21lL2FsZW5hL3ZhY3V1bV9jaGVja19sb2dzLnNxbDoyNTogSU5G TzogIHZhY3V1bWluZyAicG9zdGdyZXMucHVibGljLnZlc3RhdCIKcHNxbDovaG9tZS9hbGVu YS92YWN1dW1fY2hlY2tfbG9ncy5zcWw6MjU6IElORk86ICBsYXVuY2hlZCAxIHBhcmFsbGVs IHZhY3V1bSB3b3JrZXIgZm9yIGluZGV4IHZhY3V1bWluZyAocGxhbm5lZDogMSkKcHNxbDov aG9tZS9hbGVuYS92YWN1dW1fY2hlY2tfbG9ncy5zcWw6MjU6IElORk86ICB0YWJsZSAidmVz dGF0IjogdHJ1bmNhdGVkIDM5MjIgdG8gMzUzMCBwYWdlcwpwc3FsOi9ob21lL2FsZW5hL3Zh Y3V1bV9jaGVja19sb2dzLnNxbDoyNTogSU5GTzogIGZpbmlzaGVkIHZhY3V1bWluZyAicG9z dGdyZXMucHVibGljLnZlc3RhdCI6IGluZGV4IHNjYW5zOiAxCnBhZ2VzOiAzOTIgcmVtb3Zl ZCwgMzUzMCByZW1haW4sIDM5MjIgc2Nhbm5lZCAoMTAwLjAwJSBvZiB0b3RhbCkKdHVwbGVz OiAxMDAwMDAgcmVtb3ZlZCwgOTAwMDAwIHJlbWFpbiwgMCBhcmUgZGVhZCBidXQgbm90IHll dCByZW1vdmFibGUKcmVtb3ZhYmxlIGN1dG9mZjogNzQ0LCB3aGljaCB3YXMgMSBYSURzIG9s ZCB3aGVuIG9wZXJhdGlvbiBlbmRlZApmcm96ZW46IDAgcGFnZXMgZnJvbSB0YWJsZSAoMC4w MCUgb2YgdG90YWwpIGhhZCAwIHR1cGxlcyBmcm96ZW4KaW5kZXggc2NhbiBuZWVkZWQ6IDM5 MyBwYWdlcyBmcm9tIHRhYmxlICgxMC4wMiUgb2YgdG90YWwpIGhhZCAxMDAwMDAgZGVhZCBp dGVtIGlkZW50aWZpZXJzIHJlbW92ZWQKaW5kZXggInZlc3RhdF9pZHgiOiBwYWdlczogMjE5 NyBpbiB0b3RhbCwgMjE4IG5ld2x5IGRlbGV0ZWQsIDIxOCBjdXJyZW50bHkgZGVsZXRlZCwg MCByZXVzYWJsZQppbmRleCAidmVzdGF0X2lkeDEiOiBwYWdlczogNzg1IGluIHRvdGFsLCA3 NyBuZXdseSBkZWxldGVkLCA3NyBjdXJyZW50bHkgZGVsZXRlZCwgMCByZXVzYWJsZQpJL08g dGltaW5nczogcmVhZDogMC4wMDAgbXMsIHdyaXRlOiAwLjA0MSBtcwphdmcgcmVhZCByYXRl OiAwLjAwMCBNQi9zLCBhdmcgd3JpdGUgcmF0ZTogMC4wNTMgTUIvcwpidWZmZXIgdXNhZ2U6 IDEyNTg5IGhpdHMsIDAgbWlzc2VzLCA0IGRpcnRpZWQKV0FMIHVzYWdlOiA1NjA0IHJlY29y ZHMsIDEgZnVsbCBwYWdlIGltYWdlcywgOTQ2OTM0IGJ5dGVzCnN5c3RlbSB1c2FnZTogQ1BV OiB1c2VyOiAwLjQ1IHMsIHN5c3RlbTogMC4wMCBzLCBlbGFwc2VkOiAwLjU4IHMKVkFDVVVN CiBwZ19zbGVlcCAKLS0tLS0tLS0tLQogCigxIHJvdykKCiBkYmxpbmtfZXhlYyAKLS0tLS0t LS0tLS0tLQogQkVHSU4KKDEgcm93KQoKIGEgCi0tLQogIAooMSByb3cpCgpVUERBVEUgOTAw MDAwCnBzcWw6L2hvbWUvYWxlbmEvdmFjdXVtX2NoZWNrX2xvZ3Muc3FsOjM4OiBJTkZPOiAg dmFjdXVtaW5nICJwb3N0Z3Jlcy5wdWJsaWMudmVzdGF0Igpwc3FsOi9ob21lL2FsZW5hL3Zh Y3V1bV9jaGVja19sb2dzLnNxbDozODogSU5GTzogIGxhdW5jaGVkIDEgcGFyYWxsZWwgdmFj dXVtIHdvcmtlciBmb3IgaW5kZXggY2xlYW51cCAocGxhbm5lZDogMSkKcHNxbDovaG9tZS9h bGVuYS92YWN1dW1fY2hlY2tfbG9ncy5zcWw6Mzg6IElORk86ICBmaW5pc2hlZCB2YWN1dW1p bmcgInBvc3RncmVzLnB1YmxpYy52ZXN0YXQiOiBpbmRleCBzY2FuczogMApwYWdlczogMCBy ZW1vdmVkLCA3NTEyIHJlbWFpbiwgNzUxMiBzY2FubmVkICgxMDAuMDAlIG9mIHRvdGFsKQp0 dXBsZXM6IDAgcmVtb3ZlZCwgMTgwMDAwMCByZW1haW4sIDkwMDAwMCBhcmUgZGVhZCBidXQg bm90IHlldCByZW1vdmFibGUKcmVtb3ZhYmxlIGN1dG9mZjogNzQ1LCB3aGljaCB3YXMgMSBY SURzIG9sZCB3aGVuIG9wZXJhdGlvbiBlbmRlZApmcm96ZW46IDAgcGFnZXMgZnJvbSB0YWJs ZSAoMC4wMCUgb2YgdG90YWwpIGhhZCAwIHR1cGxlcyBmcm96ZW4KaW5kZXggc2NhbiBub3Qg bmVlZGVkOiAwIHBhZ2VzIGZyb20gdGFibGUgKDAuMDAlIG9mIHRvdGFsKSBoYWQgMCBkZWFk IGl0ZW0gaWRlbnRpZmllcnMgcmVtb3ZlZAppbmRleCAidmVzdGF0X2lkeCI6IHBhZ2VzOiA0 MTcxIGluIHRvdGFsLCAwIG5ld2x5IGRlbGV0ZWQsIDIxOCBjdXJyZW50bHkgZGVsZXRlZCwg MjE4IHJldXNhYmxlCkkvTyB0aW1pbmdzOiByZWFkOiAwLjAwMCBtcywgd3JpdGU6IDAuMDU2 IG1zCmF2ZyByZWFkIHJhdGU6IDAuMDAwIE1CL3MsIGF2ZyB3cml0ZSByYXRlOiAwLjA0MSBN Qi9zCmJ1ZmZlciB1c2FnZTogMTk0MjQgaGl0cywgMCBtaXNzZXMsIDQgZGlydGllZApXQUwg dXNhZ2U6IDIgcmVjb3JkcywgMCBmdWxsIHBhZ2UgaW1hZ2VzLCAzMDkgYnl0ZXMKc3lzdGVt IHVzYWdlOiBDUFU6IHVzZXI6IDAuNTUgcywgc3lzdGVtOiAwLjAwIHMsIGVsYXBzZWQ6IDAu NzUgcwpWQUNVVU0KIHBnX3NsZWVwIAotLS0tLS0tLS0tCiAKKDEgcm93KQoKIGRibGlua19l eGVjIAotLS0tLS0tLS0tLS0tCiBDT01NSVQKKDEgcm93KQoKcHNxbDovaG9tZS9hbGVuYS92 YWN1dW1fY2hlY2tfbG9ncy5zcWw6NDU6IElORk86ICB2YWN1dW1pbmcgInBvc3RncmVzLnB1 YmxpYy52ZXN0YXQiCnBzcWw6L2hvbWUvYWxlbmEvdmFjdXVtX2NoZWNrX2xvZ3Muc3FsOjQ1 OiBJTkZPOiAgbGF1bmNoZWQgMSBwYXJhbGxlbCB2YWN1dW0gd29ya2VyIGZvciBpbmRleCB2 YWN1dW1pbmcgKHBsYW5uZWQ6IDEpCnBzcWw6L2hvbWUvYWxlbmEvdmFjdXVtX2NoZWNrX2xv Z3Muc3FsOjQ1OiBJTkZPOiAgZmluaXNoZWQgdmFjdXVtaW5nICJwb3N0Z3Jlcy5wdWJsaWMu dmVzdGF0IjogaW5kZXggc2NhbnM6IDEKcGFnZXM6IDAgcmVtb3ZlZCwgNzUxMiByZW1haW4s IDc1MTIgc2Nhbm5lZCAoMTAwLjAwJSBvZiB0b3RhbCkKdHVwbGVzOiA5MDAwMDAgcmVtb3Zl ZCwgOTAwMDAwIHJlbWFpbiwgMCBhcmUgZGVhZCBidXQgbm90IHlldCByZW1vdmFibGUKcmVt b3ZhYmxlIGN1dG9mZjogNzQ2LCB3aGljaCB3YXMgMCBYSURzIG9sZCB3aGVuIG9wZXJhdGlv biBlbmRlZApuZXcgcmVsZnJvemVueGlkOiA3NDUsIHdoaWNoIGlzIDMgWElEcyBhaGVhZCBv ZiBwcmV2aW91cyB2YWx1ZQpmcm96ZW46IDAgcGFnZXMgZnJvbSB0YWJsZSAoMC4wMCUgb2Yg dG90YWwpIGhhZCAwIHR1cGxlcyBmcm96ZW4KaW5kZXggc2NhbiBuZWVkZWQ6IDM1MzAgcGFn ZXMgZnJvbSB0YWJsZSAoNDYuOTklIG9mIHRvdGFsKSBoYWQgOTAwMDAwIGRlYWQgaXRlbSBp ZGVudGlmaWVycyByZW1vdmVkCmluZGV4ICJ2ZXN0YXRfaWR4IjogcGFnZXM6IDQxNzEgaW4g dG90YWwsIDAgbmV3bHkgZGVsZXRlZCwgMjE4IGN1cnJlbnRseSBkZWxldGVkLCAyMTggcmV1 c2FibGUKaW5kZXggInZlc3RhdF9pZHgxIjogcGFnZXM6IDQzNDIgaW4gdG90YWwsIDcwMyBu ZXdseSBkZWxldGVkLCA3ODAgY3VycmVudGx5IGRlbGV0ZWQsIDc3IHJldXNhYmxlCkkvTyB0 aW1pbmdzOiByZWFkOiAwLjAwMCBtcywgd3JpdGU6IDAuMDAwIG1zCmF2ZyByZWFkIHJhdGU6 IDAuMDAwIE1CL3MsIGF2ZyB3cml0ZSByYXRlOiAwLjAwMCBNQi9zCmJ1ZmZlciB1c2FnZTog MjI5NjQgaGl0cywgMCBtaXNzZXMsIDAgZGlydGllZApXQUwgdXNhZ2U6IDIwNjIxIHJlY29y ZHMsIDAgZnVsbCBwYWdlIGltYWdlcywgOTA5NzY0OSBieXRlcwpzeXN0ZW0gdXNhZ2U6IENQ VTogdXNlcjogMi4zNSBzLCBzeXN0ZW06IDAuMDAgcywgZWxhcHNlZDogMi41OSBzClZBQ1VV TQogcGdfc2xlZXAgCi0tLS0tLS0tLS0KIAooMSByb3cpCgpERUxFVEUgOTAwMDAwCnBzcWw6 L2hvbWUvYWxlbmEvdmFjdXVtX2NoZWNrX2xvZ3Muc3FsOjUyOiBJTkZPOiAgdmFjdXVtaW5n ICJwb3N0Z3Jlcy5wdWJsaWMudmVzdGF0Igpwc3FsOi9ob21lL2FsZW5hL3ZhY3V1bV9jaGVj a19sb2dzLnNxbDo1MjogSU5GTzogIGxhdW5jaGVkIDEgcGFyYWxsZWwgdmFjdXVtIHdvcmtl ciBmb3IgaW5kZXggdmFjdXVtaW5nIChwbGFubmVkOiAxKQpwc3FsOi9ob21lL2FsZW5hL3Zh Y3V1bV9jaGVja19sb2dzLnNxbDo1MjogSU5GTzogIHRhYmxlICJ2ZXN0YXQiOiB0cnVuY2F0 ZWQgNzUxMiB0byAwIHBhZ2VzCnBzcWw6L2hvbWUvYWxlbmEvdmFjdXVtX2NoZWNrX2xvZ3Mu c3FsOjUyOiBJTkZPOiAgZmluaXNoZWQgdmFjdXVtaW5nICJwb3N0Z3Jlcy5wdWJsaWMudmVz dGF0IjogaW5kZXggc2NhbnM6IDEKcGFnZXM6IDc1MTIgcmVtb3ZlZCwgMCByZW1haW4sIDM5 ODMgc2Nhbm5lZCAoNTMuMDIlIG9mIHRvdGFsKQp0dXBsZXM6IDkwMDAwMCByZW1vdmVkLCA0 MjI4MDQgcmVtYWluLCAwIGFyZSBkZWFkIGJ1dCBub3QgeWV0IHJlbW92YWJsZQpyZW1vdmFi bGUgY3V0b2ZmOiA3NDcsIHdoaWNoIHdhcyAxIFhJRHMgb2xkIHdoZW4gb3BlcmF0aW9uIGVu ZGVkCm5ldyByZWxmcm96ZW54aWQ6IDc0Nywgd2hpY2ggaXMgMiBYSURzIGFoZWFkIG9mIHBy ZXZpb3VzIHZhbHVlCmZyb3plbjogMCBwYWdlcyBmcm9tIHRhYmxlICgwLjAwJSBvZiB0b3Rh bCkgaGFkIDAgdHVwbGVzIGZyb3plbgppbmRleCBzY2FuIG5lZWRlZDogMzk4MyBwYWdlcyBm cm9tIHRhYmxlICg1My4wMiUgb2YgdG90YWwpIGhhZCA5MDAwMDAgZGVhZCBpdGVtIGlkZW50 aWZpZXJzIHJlbW92ZWQKaW5kZXggInZlc3RhdF9pZHgiOiBwYWdlczogNDE3MSBpbiB0b3Rh bCwgMzk0OSBuZXdseSBkZWxldGVkLCA0MTY3IGN1cnJlbnRseSBkZWxldGVkLCAyMTggcmV1 c2FibGUKaW5kZXggInZlc3RhdF9pZHgxIjogcGFnZXM6IDQzNDIgaW4gdG90YWwsIDM1NTgg bmV3bHkgZGVsZXRlZCwgNDMzOCBjdXJyZW50bHkgZGVsZXRlZCwgNzgwIHJldXNhYmxlCkkv TyB0aW1pbmdzOiByZWFkOiAwLjAwMCBtcywgd3JpdGU6IDAuMDAwIG1zCmF2ZyByZWFkIHJh dGU6IDAuMDAwIE1CL3MsIGF2ZyB3cml0ZSByYXRlOiAwLjAwMCBNQi9zCmJ1ZmZlciB1c2Fn ZTogNTE0ODYgaGl0cywgMCBtaXNzZXMsIDAgZGlydGllZApXQUwgdXNhZ2U6IDM0NDI4IHJl Y29yZHMsIDAgZnVsbCBwYWdlIGltYWdlcywgOTQzOTU2NiBieXRlcwpzeXN0ZW0gdXNhZ2U6 IENQVTogdXNlcjogMC41NSBzLCBzeXN0ZW06IDAuMDEgcywgZWxhcHNlZDogMS4wNCBzClZB Q1VVTQogcGdfc2xlZXAgCi0tLS0tLS0tLS0KIAooMSByb3cpCgpJTlNFUlQgMCAxMDAwMDAw ClVQREFURSAxMDAwMDAwCnBzcWw6L2hvbWUvYWxlbmEvdmFjdXVtX2NoZWNrX2xvZ3Muc3Fs OjYxOiBJTkZPOiAgdmFjdXVtaW5nICJwb3N0Z3Jlcy5wdWJsaWMudmVzdGF0Igpwc3FsOi9o b21lL2FsZW5hL3ZhY3V1bV9jaGVja19sb2dzLnNxbDo2MTogSU5GTzogIGxhdW5jaGVkIDEg cGFyYWxsZWwgdmFjdXVtIHdvcmtlciBmb3IgaW5kZXggdmFjdXVtaW5nIChwbGFubmVkOiAx KQpwc3FsOi9ob21lL2FsZW5hL3ZhY3V1bV9jaGVja19sb2dzLnNxbDo2MTogSU5GTzogIGZp bmlzaGVkIHZhY3V1bWluZyAicG9zdGdyZXMucHVibGljLnZlc3RhdCI6IGluZGV4IHNjYW5z OiAxCnBhZ2VzOiAwIHJlbW92ZWQsIDgzNDcgcmVtYWluLCA4MzQ3IHNjYW5uZWQgKDEwMC4w MCUgb2YgdG90YWwpCnR1cGxlczogMTAwMDAwMCByZW1vdmVkLCAxMDAwMDAwIHJlbWFpbiwg MCBhcmUgZGVhZCBidXQgbm90IHlldCByZW1vdmFibGUKcmVtb3ZhYmxlIGN1dG9mZjogNzUw LCB3aGljaCB3YXMgMCBYSURzIG9sZCB3aGVuIG9wZXJhdGlvbiBlbmRlZApuZXcgcmVsZnJv emVueGlkOiA3NDksIHdoaWNoIGlzIDIgWElEcyBhaGVhZCBvZiBwcmV2aW91cyB2YWx1ZQpm cm96ZW46IDAgcGFnZXMgZnJvbSB0YWJsZSAoMC4wMCUgb2YgdG90YWwpIGhhZCAwIHR1cGxl cyBmcm96ZW4KaW5kZXggc2NhbiBuZWVkZWQ6IDM5MjIgcGFnZXMgZnJvbSB0YWJsZSAoNDYu OTklIG9mIHRvdGFsKSBoYWQgMTAwMDAwMCBkZWFkIGl0ZW0gaWRlbnRpZmllcnMgcmVtb3Zl ZAppbmRleCAidmVzdGF0X2lkeCI6IHBhZ2VzOiA4MzQxIGluIHRvdGFsLCAwIG5ld2x5IGRl bGV0ZWQsIDM5NDkgY3VycmVudGx5IGRlbGV0ZWQsIDM5NDkgcmV1c2FibGUKaW5kZXggInZl c3RhdF9pZHgxIjogcGFnZXM6IDgyOTUgaW4gdG90YWwsIDc4MCBuZXdseSBkZWxldGVkLCA0 MzM4IGN1cnJlbnRseSBkZWxldGVkLCAzNTU4IHJldXNhYmxlCkkvTyB0aW1pbmdzOiByZWFk OiAyOS45MzkgbXMsIHdyaXRlOiA4LjIzMyBtcwphdmcgcmVhZCByYXRlOiAxMC42NTggTUIv cywgYXZnIHdyaXRlIHJhdGU6IDMuNzcyIE1CL3MKYnVmZmVyIHVzYWdlOiAyNzkwNCBoaXRz LCA1MDIxIG1pc3NlcywgMTc3NyBkaXJ0aWVkCldBTCB1c2FnZTogMjI5MTEgcmVjb3Jkcywg MTUxIGZ1bGwgcGFnZSBpbWFnZXMsIDExMjgzNTg1IGJ5dGVzCnN5c3RlbSB1c2FnZTogQ1BV OiB1c2VyOiAyLjg4IHMsIHN5c3RlbTogMC4wMiBzLCBlbGFwc2VkOiAzLjY4IHMKVkFDVVVN CiBwZ19zbGVlcCAKLS0tLS0tLS0tLQogCigxIHJvdykK --------------qx4BAFKDBKyGztiilqGofhJG--