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 1vllIT-003f2n-2o for pgsql-hackers@arkaria.postgresql.org; Fri, 30 Jan 2026 10:00:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vllIR-004Ego-0Y for pgsql-hackers@arkaria.postgresql.org; Fri, 30 Jan 2026 10:00:12 +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 1vllIQ-004Egd-22 for pgsql-hackers@lists.postgresql.org; Fri, 30 Jan 2026 10:00:11 +0000 Received: from mail-qt1-x82c.google.com ([2607:f8b0:4864:20::82c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vllIP-0008rt-0r for pgsql-hackers@lists.postgresql.org; Fri, 30 Jan 2026 10:00:10 +0000 Received: by mail-qt1-x82c.google.com with SMTP id d75a77b69052e-5013d163e2fso21629701cf.0 for ; Fri, 30 Jan 2026 02:00:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1769767209; cv=none; d=google.com; s=arc-20240605; b=RAuNHNs3GKJXXAMKTNWKNIZ7NetBxOgusMmnYCdTc7EpywoSk3wI3YSlDvymn/8pFu dymcVEH4ioPIfnQIrgwt52RA+xmYU0Bfqwl40z1AR4xgeIlJI+l1xcQXWI6nb0bwQuIy lui5TAqxzBgaGigmlE1OmVzTLySMOf4yvXbVvUxC0dyH80tawa5hlXQTFc0arjS5ttL1 U2VN7tRJpo4CDwyyJFE3kTicGdkFMJLQ6U7fmrCody9iCVVkjttNXFNU9ryXiFnV1qBQ A3jrLP6UP8zf7dHCd0QDZ2Xg593fCtSL7dd3+nuD9SKQblLyPTgiG2b2Ley2NIBWOb53 3B8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=ldB8kSmbg3iGzweDgjYo7sLP0qSYBZX6oTFFSN/bB70=; fh=rrD8aeqh7cS4KWeDH4g0PStBhPzUiIj9vgNt1xf4YQ4=; b=NkACKFCGMYQ75fNUKUznDjgw1mo3k+Ow/m1Z7nYJf2rEpSr/08DbGMYItby0yIk1Iz sozC1/Ic8+6EwEMkb7zeWcGTgUgfy9vZl/Kf5Tf8VxhxdLwcPYpl0hgINW1S8McrZNd9 tAmTYdFglgJMizoehoUPF+Zb/dD6Hunvs0WLz1W7gpkwNsLqa+SvUacJtqNXY+RJK9mV Goo9j9KHDUE+9KEZr7gPoGV0aOl0+4FdHTF9ep04IX+mW9ABQRqKoCYX/cib/9/ksqD1 zhbs3EhDnsq0FMs/DJFq8n1eXh7TULRYd0KdzQeiqy19zanAp+vfI/suSy1XDdHT69Fp EUgA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769767209; x=1770372009; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ldB8kSmbg3iGzweDgjYo7sLP0qSYBZX6oTFFSN/bB70=; b=W8eh4WagNd51MV5waygHfjdzKhcCkoyCy7EdfAPpE9aDZt9sGVfno8qAAYRoLjwP0L kKnx8D8u6dIxorx4Snaz6VfPHy0/OOygnNlwH8w3Z0CINwbB/vyR3f+7J3F9/83gL3xo flkuw52CWFieA4SksSdyUazO1NAIn3dqruS0HQuzsmm3SXC427/OJF63VZTrfJOZLkgk shXdKxExD2ZXhTeTyxKZM40EOFwmGugoD1+ww4FMFbxYS//JmB9VBUm9XSsAv9d/ksLB g+yd+iyHXzcp+L69VnN473o0Heh/CKf2v8VdPla0346otdgOeUHWDLH4ZJvjEJNM5sGN v6wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769767209; x=1770372009; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ldB8kSmbg3iGzweDgjYo7sLP0qSYBZX6oTFFSN/bB70=; b=oSURG4y7whCeuycHXSvFoZrcgjygUd9BBsBtv5Cl9LMBQmMU0nrGy2ZsCBEEqzFZrm WoX9mz0l37+L2N+P23bx+Te+4XKiG+VJ3chddwbZNwTupgZHir95St8YSu9ePk4w9GBD XqrrSP+2oNHWIKCLQMDoVU+6eqy1s+WLHLZTx/IL5erf7JFB/DM8D9lpUoS/EcXQHjPL mkq3DkqsjeuhGhBx9BmJy0D7KaVYtJici/fhah8g4e3+xI75ujsAKzeaOizFkVHQ3HZQ gHQVHYG7YAYz6tsgWk4HBI2Y92yJoNcr9mn3VG6onyKe0IxibH3dBaazGsdM2reKlbIb tOTw== X-Forwarded-Encrypted: i=1; AJvYcCWkIB0xaZS+21nuA137psVuq9ptFGa/A0670RPXqkvpVGzdzh3G1end7nkdq0ThpaiLTYI26rhpIHi+nXcV@lists.postgresql.org X-Gm-Message-State: AOJu0YyXV83AuOM1VQeOEXLAWpPpAhsZOGCOzNVPxb9FdlHUJJq/RIi3 NOImxNed4D8vRouhfEOw5wZAiTpKjrD0oSYQTohDwEX+Qdp0oC7KhsgP9PtqTLKobwkME5nmrmz 9tGVcoyeDdbW0mkiXYmxH4eDoXNQvtas= X-Gm-Gg: AZuq6aJb/RuFXvvGs7RlBid/pUJbZwgeaSJIAebI6dELsQLko9GL3V8RsIwPAsB3q/p NbAKdb7gqKAJx1LQOaHou2Le+bQMqCUICdCd0yEsVV1LPakeWefgZhHpf9Pu8N5Qzl7tf2piRUK ssocG9oGDpiK2pyNDupOCyf3det9DVbPTZvelJQxrAToOBnLKiMj64GmYh/vC1DJaOWI/87wWES vAhxQhdEEjXzfqY5TL4JZGrfVAhOtulPjVMWThZqmjp56vP+esGRK1qr9Exp52XZB3T78E7RS9V 3vvs+5Pcre2Mb6vPC3j6qHaRcgkvEO17g6IPmlW7vKA4bmy0EPksIV1nfLekLxyvQ/Yz X-Received: by 2002:ac8:5810:0:b0:502:f0fd:1838 with SMTP id d75a77b69052e-505d22e6424mr27647281cf.83.1769767208860; Fri, 30 Jan 2026 02:00:08 -0800 (PST) MIME-Version: 1.0 References: <6BC5DBAB-6084-4BB8-8450-52E9648AB021@gmail.com> <7F5BCD7A-764D-4D8D-8E27-6F2CAAEA1CEE@gmail.com> <4379FDA3-9446-4E2C-9C15-32EFE8D4F31B@yandex-team.ru> <7ib3sa55sapwjlaz4sijbiq7iezna27kjvvvar4dpgkmadml6t@gfpkkwmdnepx> <2b09fba6-6b71-497a-96ef-a6947fcc39f6@gmail.com> In-Reply-To: From: Kirill Reshke Date: Fri, 30 Jan 2026 14:59:57 +0500 X-Gm-Features: AZwV_Qh5MByqc1KnTqnSGc-T1FSr2Bmb40yGHmfxSWxFM_MG42hucnw87oxuFrQ Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: Melanie Plageman Cc: Alexander Lakhin , Andres Freund , Andrey Borodin , Chao Li , Xuneng Zhou , Robert Haas , PostgreSQL Hackers , Heikki Linnakangas Content-Type: multipart/mixed; boundary="000000000000d1da4a06499809df" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d1da4a06499809df Content-Type: text/plain; charset="UTF-8" On Fri, 30 Jan 2026 at 14:25, Kirill Reshke wrote: > > Sorry, I messed up my previous email. > > > create table test_vac_unmodified_heap(a int) with (autovacuum_enabled = false); > > Yes I did try this, but it does not help, because autovacuum runs on > catalog relations, still causing fail. > > We cannot disable autovac globally in regression suite, so I propose > to changes this to TAp test > FPA POC v1 I use 'autovacuum-worker-start' injection point to 'disable' autovacuum until test is done -- Best regards, Kirill Reshke --000000000000d1da4a06499809df Content-Type: application/octet-stream; name="v1-0001-Reimplement-regression-tests-from-21796c267-as-TA.patch" Content-Disposition: attachment; filename="v1-0001-Reimplement-regression-tests-from-21796c267-as-TA.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ml0pnw3b0 RnJvbSBiMDc2MWFjNzYxNzViNTgzZjkxM2VmMmZmNTk5NGY0NjdlMTk0NzMxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiByZXNoa2UgPHJlc2hrZUBkb3VibGUuY2xvdWQ+CkRhdGU6IEZy aSwgMzAgSmFuIDIwMjYgMDk6NTQ6MjYgKzAwMDAKU3ViamVjdDogW1BBVENIIHYxXSBSZWltcGxl bWVudCByZWdyZXNzaW9uIHRlc3RzIGZyb20gMjE3OTZjMjY3IGFzIFRBUC10ZXN0LgoKUmVncmVz c2lvbiB0ZXN0IGNoYW5nZXMgaW50cm9kdWNlcyBpbiAyMTc5NmMyNjcgYXBwZWFycyB0byBiZSBm bGFra3kKZHVlIHRvIHBvc3NpYmxlIGNvbmN1cnJlbnQgYXV0b3ZhY3V1bSBhY3Rpdml0eS4gVGhp cyBhY3R1dml0eSBjYW4KYWxsb2NhdGUgeGlkcywgcHJldmVudGluZyBWQUNVVU0gRlJFRVpFIHRv IGFjdGF1bGx5IGZyZWV6ZSBwYWdlIHR1cGxlcwpkdWUgdG8gaGlsZGluZyBvbGRlc3QgeG1pbi4K U28sIHJlaW1wbGVtZW50IHRoaXMgdGVzdCBhcyBUQVAtdGVzdCwgYW5kIHByZXZlbnQgYXV0b3Zh Y3V1bSB3b3JrZXJzCnN0YXJ0IHdpdGggaW5qZWN0aW9uIHBvaW50LgoKVGhpcyB3YXMgYWN0dWFs bHkgZGV0ZWN0ZWQgYnkgc2NvcnBpb24gYnVpbGQgYW5pbWFsLgoKVGhhbmtzIHRvIEFsZXhhbmRl ciBMYWtoaW4gZm9yIGRldGFpbGVkIHJlcG9ydC4KLS0tCiBjb250cmliL3BnX3Zpc2liaWxpdHkv TWFrZWZpbGUgICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL3BnX3Zpc2liaWxpdHkvZXhwZWN0 ZWQvcGdfdmlzaWJpbGl0eS5vdXQgIHwgNDQgLS0tLS0tLS0tLS0tCiBjb250cmliL3BnX3Zpc2li aWxpdHkvbWVzb24uYnVpbGQgICAgICAgICAgICAgfCAgNCArKwogY29udHJpYi9wZ192aXNpYmls aXR5L3NxbC9wZ192aXNpYmlsaXR5LnNxbCAgIHwgMjAgLS0tLS0tCiBjb250cmliL3BnX3Zpc2li aWxpdHkvdC8wMDNfdmFjdXVtX2ZyZWV6ZS5wbCAgfCA3MCArKysrKysrKysrKysrKysrKysrCiA1 IGZpbGVzIGNoYW5nZWQsIDc3IGluc2VydGlvbnMoKyksIDY1IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGNvbnRyaWIvcGdfdmlzaWJpbGl0eS90LzAwM192YWN1dW1fZnJlZXplLnBs CgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ192aXNpYmlsaXR5L01ha2VmaWxlIGIvY29udHJpYi9w Z192aXNpYmlsaXR5L01ha2VmaWxlCmluZGV4IGU1YTc0ZjMyYzQ4Li43NzY4YmRmNzJkNyAxMDA2 NDQKLS0tIGEvY29udHJpYi9wZ192aXNpYmlsaXR5L01ha2VmaWxlCisrKyBiL2NvbnRyaWIvcGdf dmlzaWJpbGl0eS9NYWtlZmlsZQpAQCAtMTAsNyArMTAsOSBAQCBEQVRBID0gcGdfdmlzaWJpbGl0 eS0tMS4xLnNxbCBwZ192aXNpYmlsaXR5LS0xLjEtLTEuMi5zcWwgXAogCXBnX3Zpc2liaWxpdHkt LTEuMC0tMS4xLnNxbAogUEdGSUxFREVTQyA9ICJwZ192aXNpYmlsaXR5IC0gcGFnZSB2aXNpYmls aXR5IGluZm9ybWF0aW9uIgogCi1FWFRSQV9JTlNUQUxMID0gY29udHJpYi9wYWdlaW5zcGVjdAor RVhUUkFfSU5TVEFMTD1zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMgY29udHJpYi9w YWdlaW5zcGVjdAorZXhwb3J0IGVuYWJsZV9pbmplY3Rpb25fcG9pbnRzCisKIFJFR1JFU1MgPSBw Z192aXNpYmlsaXR5CiBUQVBfVEVTVFMgPSAxCiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfdmlz aWJpbGl0eS9leHBlY3RlZC9wZ192aXNpYmlsaXR5Lm91dCBiL2NvbnRyaWIvcGdfdmlzaWJpbGl0 eS9leHBlY3RlZC9wZ192aXNpYmlsaXR5Lm91dAppbmRleCBlMTBmMTcwNjAxNS4uMDlmYTU5MzNh MzUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdmlzaWJpbGl0eS9leHBlY3RlZC9wZ192aXNpYmls aXR5Lm91dAorKysgYi9jb250cmliL3BnX3Zpc2liaWxpdHkvZXhwZWN0ZWQvcGdfdmlzaWJpbGl0 eS5vdXQKQEAgLTEsNSArMSw0IEBACiBDUkVBVEUgRVhURU5TSU9OIHBnX3Zpc2liaWxpdHk7Ci1D UkVBVEUgRVhURU5TSU9OIHBhZ2VpbnNwZWN0OwogLS0KIC0tIHJlY2VudGx5LWRyb3BwZWQgdGFi bGUKIC0tCkBAIC0yMDUsNDkgKzIwNCw2IEBAIHNlbGVjdCBwZ190cnVuY2F0ZV92aXNpYmlsaXR5 X21hcCgndGVzdF9wYXJ0aXRpb24nKTsKICAKICgxIHJvdykKIAotLS0gdGVzdCB0aGUgY2FzZSB3 aGVyZSB2YWN1dW0gcGhhc2UgSSBkb2VzIG5vdCBuZWVkIHRvIG1vZGlmeSB0aGUgaGVhcCBidWZm ZXIKLS0tIGFuZCBvbmx5IG5lZWRzIHRvIHNldCB0aGUgVk0KLWNyZWF0ZSB0YWJsZSB0ZXN0X3Zh Y191bm1vZGlmaWVkX2hlYXAoYSBpbnQpOwotaW5zZXJ0IGludG8gdGVzdF92YWNfdW5tb2RpZmll ZF9oZWFwIHZhbHVlcyAoMSk7Ci12YWN1dW0gKGZyZWV6ZSkgdGVzdF92YWNfdW5tb2RpZmllZF9o ZWFwOwotc2VsZWN0IHBnX3Zpc2liaWxpdHlfbWFwX3N1bW1hcnkoJ3Rlc3RfdmFjX3VubW9kaWZp ZWRfaGVhcCcpOwotIHBnX3Zpc2liaWxpdHlfbWFwX3N1bW1hcnkgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSAoMSwxKQotKDEgcm93KQotCi0tLSB0aGUgY2hlY2twb2ludCBjbGVhbnMg dGhlIGJ1ZmZlciBkaXJ0aWVkIGJ5IGZyZWV6aW5nIHRoZSBzb2xlIHR1cGxlCi1jaGVja3BvaW50 OwotLS0gdHJ1bmNhdGluZyB0aGUgVk0gZW5zdXJlcyB0aGF0IHRoZSBuZXh0IHZhY3V1bSB3aWxs IG5lZWQgdG8gc2V0IGl0Ci1zZWxlY3QgcGdfdHJ1bmNhdGVfdmlzaWJpbGl0eV9tYXAoJ3Rlc3Rf dmFjX3VubW9kaWZpZWRfaGVhcCcpOwotIHBnX3RydW5jYXRlX3Zpc2liaWxpdHlfbWFwIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIAotKDEgcm93KQotCi1zZWxlY3QgcGdfdmlzaWJp bGl0eV9tYXBfc3VtbWFyeSgndGVzdF92YWNfdW5tb2RpZmllZF9oZWFwJyk7Ci0gcGdfdmlzaWJp bGl0eV9tYXBfc3VtbWFyeSAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICgwLDApCi0o MSByb3cpCi0KLS0tIHRob3VnaCB0aGUgVk0gaXMgdHJ1bmNhdGVkLCB0aGUgaGVhcCBwYWdlLWxl dmVsIHZpc2liaWxpdHkgaGludCwKLS0tIFBEX0FMTF9WSVNJQkxFIHNob3VsZCBzdGlsbCBiZSBz ZXQKLVNFTEVDVCAoZmxhZ3MgJiB4JzAwMDQnOjppbnQpIDw+IDAKLSAgICAgICAgRlJPTSBwYWdl X2hlYWRlcihnZXRfcmF3X3BhZ2UoJ3Rlc3RfdmFjX3VubW9kaWZpZWRfaGVhcCcsIDApKTsKLSA/ Y29sdW1uPyAKLS0tLS0tLS0tLS0KLSB0Ci0oMSByb3cpCi0KLS0tIHZhY3V1bSBzZXRzIHRoZSBW TQotdmFjdXVtIHRlc3RfdmFjX3VubW9kaWZpZWRfaGVhcDsKLXNlbGVjdCBwZ192aXNpYmlsaXR5 X21hcF9zdW1tYXJ5KCd0ZXN0X3ZhY191bm1vZGlmaWVkX2hlYXAnKTsKLSBwZ192aXNpYmlsaXR5 X21hcF9zdW1tYXJ5IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKDEsMSkKLSgxIHJv dykKLQogLS0gdGVzdCBjb3B5IGZyZWV6ZQogY3JlYXRlIHRhYmxlIGNvcHlmcmVlemUgKGEgaW50 LCBiIGNoYXIoMTUwMCkpOwogLS0gbG9hZCBhbGwgcm93cyB2aWEgQ09QWSBGUkVFWkUgYW5kIGVu c3VyZSB0aGF0IGFsbCBwYWdlcyBhcmUgc2V0IGFsbC12aXNpYmxlCmRpZmYgLS1naXQgYS9jb250 cmliL3BnX3Zpc2liaWxpdHkvbWVzb24uYnVpbGQgYi9jb250cmliL3BnX3Zpc2liaWxpdHkvbWVz b24uYnVpbGQKaW5kZXggOGExNzA1MGYyYWMuLjFkMmRkM2VlNTcyIDEwMDY0NAotLS0gYS9jb250 cmliL3BnX3Zpc2liaWxpdHkvbWVzb24uYnVpbGQKKysrIGIvY29udHJpYi9wZ192aXNpYmlsaXR5 L21lc29uLmJ1aWxkCkBAIC0zNCw5ICszNCwxMyBAQCB0ZXN0cyArPSB7CiAgICAgXSwKICAgfSwK ICAgJ3RhcCc6IHsKKyAgICAnZW52JzogeworICAgICAgICdlbmFibGVfaW5qZWN0aW9uX3BvaW50 cyc6IGdldF9vcHRpb24oJ2luamVjdGlvbl9wb2ludHMnKSA/ICd5ZXMnIDogJ25vJywKKyAgICB9 LAogICAgICd0ZXN0cyc6IFsKICAgICAgICd0LzAwMV9jb25jdXJyZW50X3RyYW5zYWN0aW9uLnBs JywKICAgICAgICd0LzAwMl9jb3JydXB0X3ZtLnBsJywKKyAgICAgICd0LzAwM192YWN1dW1fZnJl ZXplLnBsJywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ192aXNpYmls aXR5L3NxbC9wZ192aXNpYmlsaXR5LnNxbCBiL2NvbnRyaWIvcGdfdmlzaWJpbGl0eS9zcWwvcGdf dmlzaWJpbGl0eS5zcWwKaW5kZXggNTdhZjhhMGM1YjYuLjVhZjA2ZWM1Yjc2IDEwMDY0NAotLS0g YS9jb250cmliL3BnX3Zpc2liaWxpdHkvc3FsL3BnX3Zpc2liaWxpdHkuc3FsCisrKyBiL2NvbnRy aWIvcGdfdmlzaWJpbGl0eS9zcWwvcGdfdmlzaWJpbGl0eS5zcWwKQEAgLTEsNSArMSw0IEBACiBD UkVBVEUgRVhURU5TSU9OIHBnX3Zpc2liaWxpdHk7Ci1DUkVBVEUgRVhURU5TSU9OIHBhZ2VpbnNw ZWN0OwogCiAtLQogLS0gcmVjZW50bHktZHJvcHBlZCB0YWJsZQpAQCAtOTUsMjUgKzk0LDYgQEAg c2VsZWN0IGNvdW50KCopID4gMCBmcm9tIHBnX3Zpc2liaWxpdHlfbWFwX3N1bW1hcnkoJ3Rlc3Rf cGFydGl0aW9uJyk7CiBzZWxlY3QgKiBmcm9tIHBnX2NoZWNrX2Zyb3plbigndGVzdF9wYXJ0aXRp b24nKTsgLS0gaG9wZWZ1bGx5IG5vbmUKIHNlbGVjdCBwZ190cnVuY2F0ZV92aXNpYmlsaXR5X21h cCgndGVzdF9wYXJ0aXRpb24nKTsKIAotLS0gdGVzdCB0aGUgY2FzZSB3aGVyZSB2YWN1dW0gcGhh c2UgSSBkb2VzIG5vdCBuZWVkIHRvIG1vZGlmeSB0aGUgaGVhcCBidWZmZXIKLS0tIGFuZCBvbmx5 IG5lZWRzIHRvIHNldCB0aGUgVk0KLWNyZWF0ZSB0YWJsZSB0ZXN0X3ZhY191bm1vZGlmaWVkX2hl YXAoYSBpbnQpOwotaW5zZXJ0IGludG8gdGVzdF92YWNfdW5tb2RpZmllZF9oZWFwIHZhbHVlcyAo MSk7Ci12YWN1dW0gKGZyZWV6ZSkgdGVzdF92YWNfdW5tb2RpZmllZF9oZWFwOwotc2VsZWN0IHBn X3Zpc2liaWxpdHlfbWFwX3N1bW1hcnkoJ3Rlc3RfdmFjX3VubW9kaWZpZWRfaGVhcCcpOwotLS0g dGhlIGNoZWNrcG9pbnQgY2xlYW5zIHRoZSBidWZmZXIgZGlydGllZCBieSBmcmVlemluZyB0aGUg c29sZSB0dXBsZQotY2hlY2twb2ludDsKLS0tIHRydW5jYXRpbmcgdGhlIFZNIGVuc3VyZXMgdGhh dCB0aGUgbmV4dCB2YWN1dW0gd2lsbCBuZWVkIHRvIHNldCBpdAotc2VsZWN0IHBnX3RydW5jYXRl X3Zpc2liaWxpdHlfbWFwKCd0ZXN0X3ZhY191bm1vZGlmaWVkX2hlYXAnKTsKLXNlbGVjdCBwZ192 aXNpYmlsaXR5X21hcF9zdW1tYXJ5KCd0ZXN0X3ZhY191bm1vZGlmaWVkX2hlYXAnKTsKLS0tIHRo b3VnaCB0aGUgVk0gaXMgdHJ1bmNhdGVkLCB0aGUgaGVhcCBwYWdlLWxldmVsIHZpc2liaWxpdHkg aGludCwKLS0tIFBEX0FMTF9WSVNJQkxFIHNob3VsZCBzdGlsbCBiZSBzZXQKLVNFTEVDVCAoZmxh Z3MgJiB4JzAwMDQnOjppbnQpIDw+IDAKLSAgICAgICAgRlJPTSBwYWdlX2hlYWRlcihnZXRfcmF3 X3BhZ2UoJ3Rlc3RfdmFjX3VubW9kaWZpZWRfaGVhcCcsIDApKTsKLS0tIHZhY3V1bSBzZXRzIHRo ZSBWTQotdmFjdXVtIHRlc3RfdmFjX3VubW9kaWZpZWRfaGVhcDsKLXNlbGVjdCBwZ192aXNpYmls aXR5X21hcF9zdW1tYXJ5KCd0ZXN0X3ZhY191bm1vZGlmaWVkX2hlYXAnKTsKLQogLS0gdGVzdCBj b3B5IGZyZWV6ZQogY3JlYXRlIHRhYmxlIGNvcHlmcmVlemUgKGEgaW50LCBiIGNoYXIoMTUwMCkp OwogCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3Zpc2liaWxpdHkvdC8wMDNfdmFjdXVtX2ZyZWV6 ZS5wbCBiL2NvbnRyaWIvcGdfdmlzaWJpbGl0eS90LzAwM192YWN1dW1fZnJlZXplLnBsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zODI1MzlmYjljNAotLS0gL2Rldi9u dWxsCisrKyBiL2NvbnRyaWIvcGdfdmlzaWJpbGl0eS90LzAwM192YWN1dW1fZnJlZXplLnBsCkBA IC0wLDAgKzEsNzAgQEAKKworIyBDb3B5cmlnaHQgKGMpIDIwMjYtMjAyNiwgUG9zdGdyZVNRTCBH bG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBDaGVjayB0aGF0IHZhY3V1bSBwaGFzZSBJIGRv ZXMgbm90IG5lZWQgdG8gbW9kaWZ5IHRoZSBoZWFwIGJ1ZmZlci4gCit1c2Ugc3RyaWN0OwordXNl IHdhcm5pbmdzIEZBVEFMID0+ICdhbGwnOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7 Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworaWYgKCRF TlZ7ZW5hYmxlX2luamVjdGlvbl9wb2ludHN9IG5lICd5ZXMnKQoreworCXBsYW4gc2tpcF9hbGwg PT4gJ0luamVjdGlvbiBwb2ludHMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkJzsKK30KKwor IyBJbml0aWFsaXplIHRoZSBwcmltYXJ5IG5vZGUKK215ICRub2RlID0gUG9zdGdyZVNRTDo6VGVz dDo6Q2x1c3Rlci0+bmV3KCdtYWluJyk7Ciskbm9kZS0+aW5pdDsKKyRub2RlLT5zdGFydDsKKwor JG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnQ1JFQVRFIEVYVEVOU0lPTiBpbmplY3Rpb25f cG9pbnRzOycpOworCisKKyMgRnJvbSB0aGlzIHBvaW50LCBhdXRvdmFjdXVtIHdvcmtlciB3aWxs IHdhaXQgYXQgc3RhcnR1cC4KKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNU IGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdhdXRvdmFjdXVtLXdvcmtlci1zdGFydCcsICd3YWl0 Jyk7Iik7CisKKyMgQ3JlYXRlIGEgc2FtcGxlIHRhYmxlIGFuZCBydW4gdmFjdXVtCiskbm9kZS0+ c2FmZV9wc3FsKCJwb3N0Z3JlcyIsCisJCSJDUkVBVEUgRVhURU5TSU9OIHBnX3Zpc2liaWxpdHk7 XG4iCisgICAgICAuICJDUkVBVEUgRVhURU5TSU9OIHBhZ2VpbnNwZWN0O1xuIgorCSAgLiAiY3Jl YXRlIHRhYmxlIHRlc3RfdmFjX3VubW9kaWZpZWRfaGVhcChhIGludCk7XG4iCisgICAgICAuICJp bnNlcnQgaW50byB0ZXN0X3ZhY191bm1vZGlmaWVkX2hlYXAgdmFsdWVzICgxKTtcbiIKKwkgIC4g InZhY3V1bSAoZnJlZXplKSB0ZXN0X3ZhY191bm1vZGlmaWVkX2hlYXA7Iik7CisKK215ICRyZXN1 bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxKHNlbGVjdCBwZ192aXNpYmlsaXR5 X21hcF9zdW1tYXJ5KCd0ZXN0X3ZhY191bm1vZGlmaWVkX2hlYXAnKTspKTsKK2xpa2UoJHJlc3Vs dCwgcXIvKDEsMSkvLCAncGdfdmlzaWJpbGl0eV9tYXBfc3VtbWFyeSByZXR1cm5lZCBhcyBleHBl Y3RlZCcpOworCisKKyMJCXRydW5jYXRpbmcgdGhlIFZNIGVuc3VyZXMgdGhhdCB0aGUgbmV4dCB2 YWN1dW0gd2lsbCBuZWVkIHRvIHNldCBpdAorJG5vZGUtPnNhZmVfcHNxbCgicG9zdGdyZXMiLAor CQkiQ0hFQ0tQT0lOVDtcbiIKKyAgICAgIC4gInNlbGVjdCBwZ190cnVuY2F0ZV92aXNpYmlsaXR5 X21hcCgndGVzdF92YWNfdW5tb2RpZmllZF9oZWFwJyk7XG4iKTsKKworJHJlc3VsdCA9ICRub2Rl LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXEoCisJc2VsZWN0IHBnX3Zpc2liaWxpdHlfbWFwX3N1 bW1hcnkoJ3Rlc3RfdmFjX3VubW9kaWZpZWRfaGVhcCcpOykpOworbGlrZSgkcmVzdWx0LCBxci8o MCwwKS8sICdwYWdlX2hlYWRlciByZXR1cm5lZCBhcyBleHBlY3RlZCcpOworCisKKyMgdGhvdWdo IHRoZSBWTSBpcyB0cnVuY2F0ZWQsIHRoZSBoZWFwIHBhZ2UtbGV2ZWwgdmlzaWJpbGl0eSBoaW50 LAorIyBQRF9BTExfVklTSUJMRSBzaG91bGQgc3RpbGwgYmUgc2V0CisKKyRyZXN1bHQgPSAkbm9k ZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxKAorCVNFTEVDVCAncGFnZSBmbGFncyBpczogJ3x8 KGZsYWdzICYgeCcwMDA0Jzo6aW50KTo6dGV4dCBGUk9NIHBhZ2VfaGVhZGVyKGdldF9yYXdfcGFn ZSgndGVzdF92YWNfdW5tb2RpZmllZF9oZWFwJywgMCkpOykpOworbGlrZSgkcmVzdWx0LCBxci9w YWdlIGZsYWdzIGlzOiA0LywgJ3BhZ2VfaGVhZGVyIHJldHVybmVkIGFzIGV4cGVjdGVkJyk7CisK KworIyB2YWN1dW0gc2V0cyB0aGUgVk0KKyRub2RlLT5zYWZlX3BzcWwoInBvc3RncmVzIiwKKwkJ InZhY3V1bSB0ZXN0X3ZhY191bm1vZGlmaWVkX2hlYXA7XG4iKTsKKworJHJlc3VsdCA9ICRub2Rl LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXEoCisJc2VsZWN0IHBnX3Zpc2liaWxpdHlfbWFwX3N1 bW1hcnkoJ3Rlc3RfdmFjX3VubW9kaWZpZWRfaGVhcCcpOykpOworbGlrZSgkcmVzdWx0LCBxci8o MSwxKS8sICdwYWdlX2hlYWRlciByZXR1cm5lZCBhcyBleHBlY3RlZCcpOworCisjIFJlbGVhc2Ug aW5qZWN0aW9uIHBvaW50LgorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1Qg aW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2F1dG92YWN1dW0td29ya2VyLXN0YXJ0Jyk7Iik7CisK K2RvbmVfdGVzdGluZygpOwotLSAKMi40My4wCgo= --000000000000d1da4a06499809df--