Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d0VgW-0000MB-Nk for pgsql-hackers@arkaria.postgresql.org; Tue, 18 Apr 2017 16:08:56 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1d0VgW-00086D-86 for pgsql-hackers@arkaria.postgresql.org; Tue, 18 Apr 2017 16:08:56 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1d0VgV-000863-B3 for pgsql-hackers@postgresql.org; Tue, 18 Apr 2017 16:08:55 +0000 Received: from mx1.redhat.com ([209.132.183.28]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1d0VgR-0006Vn-9I for pgsql-hackers@postgresql.org; Tue, 18 Apr 2017 16:08:54 +0000 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D7D383DBC8 for ; Tue, 18 Apr 2017 16:08:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com D7D383DBC8 Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=jesper.pedersen@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com D7D383DBC8 Received: from localhost.localdomain (ovpn-123-88.rdu2.redhat.com [10.10.123.88]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 68FF871D48 for ; Tue, 18 Apr 2017 16:08:47 +0000 (UTC) To: pgsql-hackers@postgresql.org From: Jesper Pedersen Subject: dtrace probes Organization: JBoss, by Red Hat Message-ID: Date: Tue, 18 Apr 2017 12:08:46 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------81CFFD4ADDF4B6D7DB990C3F" X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Tue, 18 Apr 2017 16:08:48 +0000 (UTC) X-Pg-Spam-Score: -6.9 (------) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org This is a multi-part message in MIME format. --------------81CFFD4ADDF4B6D7DB990C3F Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Hi, The lwlock dtrace probes define LWLockMode as int, and the TRACE_POSTGRESQL_LWLOCK methods are called using both a variable and constant definition. This leads to a mix of argument definitions depending on the call site, as seen in probes.txt file. A fix is to explicit cast 'mode' to int such that all call sites will use the argument #2 4 signed bytes definition. Attached patch does this. I have verified all dtraces probes for their type, and only the lock__ methods doesn't aligned with its actual types. However, that would require a change to probes.d, and therefore PostgreSQL 11 material. Depending on the feedback I can add this patch to the open item list in order to fix it for PostgreSQL 10. Best regards, Jesper --------------81CFFD4ADDF4B6D7DB990C3F Content-Type: text/x-patch; name="0001-Explicit-cast-LWLockMode-which-an-enum-to-int-in-ord_v1.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-Explicit-cast-LWLockMode-which-an-enum-to-int-in-ord_v1"; filename*1=".patch" From d6f5c119c057c7ff8c84f88bb4122a1ca245a7d4 Mon Sep 17 00:00:00 2001 From: jesperpedersen Date: Tue, 18 Apr 2017 11:44:18 -0400 Subject: [PATCH] Explicit cast LWLockMode, which an enum, to int in order to match the dtrace definition of the lwlock methods. Thereby all call sites will have the same definition instead of a mix between signed and unsigned. Author: Jesper Pedersen --- src/backend/storage/lmgr/lwlock.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/backend/storage/lmgr/lwlock.c b/src/backend/storage/lmgr/lwlock.c index 3e13394..abf5fbb 100644 --- a/src/backend/storage/lmgr/lwlock.c +++ b/src/backend/storage/lmgr/lwlock.c @@ -1226,7 +1226,7 @@ LWLockAcquire(LWLock *lock, LWLockMode mode) #endif LWLockReportWaitStart(lock); - TRACE_POSTGRESQL_LWLOCK_WAIT_START(T_NAME(lock), mode); + TRACE_POSTGRESQL_LWLOCK_WAIT_START(T_NAME(lock), (int)mode); for (;;) { @@ -1248,7 +1248,7 @@ LWLockAcquire(LWLock *lock, LWLockMode mode) } #endif - TRACE_POSTGRESQL_LWLOCK_WAIT_DONE(T_NAME(lock), mode); + TRACE_POSTGRESQL_LWLOCK_WAIT_DONE(T_NAME(lock), (int)mode); LWLockReportWaitEnd(); LOG_LWDEBUG("LWLockAcquire", lock, "awakened"); @@ -1257,7 +1257,7 @@ LWLockAcquire(LWLock *lock, LWLockMode mode) result = false; } - TRACE_POSTGRESQL_LWLOCK_ACQUIRE(T_NAME(lock), mode); + TRACE_POSTGRESQL_LWLOCK_ACQUIRE(T_NAME(lock), (int)mode); /* Add lock to list of locks held by this backend */ held_lwlocks[num_held_lwlocks].lock = lock; @@ -1308,14 +1308,14 @@ LWLockConditionalAcquire(LWLock *lock, LWLockMode mode) RESUME_INTERRUPTS(); LOG_LWDEBUG("LWLockConditionalAcquire", lock, "failed"); - TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE_FAIL(T_NAME(lock), mode); + TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE_FAIL(T_NAME(lock), (int)mode); } else { /* Add lock to list of locks held by this backend */ held_lwlocks[num_held_lwlocks].lock = lock; held_lwlocks[num_held_lwlocks++].mode = mode; - TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE(T_NAME(lock), mode); + TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE(T_NAME(lock), (int)mode); } return !mustwait; } @@ -1387,7 +1387,7 @@ LWLockAcquireOrWait(LWLock *lock, LWLockMode mode) #endif LWLockReportWaitStart(lock); - TRACE_POSTGRESQL_LWLOCK_WAIT_START(T_NAME(lock), mode); + TRACE_POSTGRESQL_LWLOCK_WAIT_START(T_NAME(lock), (int)mode); for (;;) { @@ -1405,7 +1405,7 @@ LWLockAcquireOrWait(LWLock *lock, LWLockMode mode) Assert(nwaiters < MAX_BACKENDS); } #endif - TRACE_POSTGRESQL_LWLOCK_WAIT_DONE(T_NAME(lock), mode); + TRACE_POSTGRESQL_LWLOCK_WAIT_DONE(T_NAME(lock), (int)mode); LWLockReportWaitEnd(); LOG_LWDEBUG("LWLockAcquireOrWait", lock, "awakened"); @@ -1435,7 +1435,7 @@ LWLockAcquireOrWait(LWLock *lock, LWLockMode mode) /* Failed to get lock, so release interrupt holdoff */ RESUME_INTERRUPTS(); LOG_LWDEBUG("LWLockAcquireOrWait", lock, "failed"); - TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT_FAIL(T_NAME(lock), mode); + TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT_FAIL(T_NAME(lock), (int)mode); } else { @@ -1443,7 +1443,7 @@ LWLockAcquireOrWait(LWLock *lock, LWLockMode mode) /* Add lock to list of locks held by this backend */ held_lwlocks[num_held_lwlocks].lock = lock; held_lwlocks[num_held_lwlocks++].mode = mode; - TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT(T_NAME(lock), mode); + TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT(T_NAME(lock), (int)mode); } return !mustwait; -- 2.7.4 --------------81CFFD4ADDF4B6D7DB990C3F Content-Type: text/plain; charset=UTF-8; name="probes.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="probes.txt" L3Vzci9sb2NhbC9iaW4vcG9zdGdyZXMgcG9zdGdyZXNxbDpjbG9nX19jaGVj a3BvaW50X19zdGFydCBbc2VtYSAweGUyMzUxYV0KICBsb2NhdGlvbiAjMSAw eDRmYzcwNgogICAgYXJndW1lbnQgIzEgMSBzaWduZWQgICBieXRlcyBAIDAK ICBsb2NhdGlvbiAjMiAweDRmYzcyZAogICAgYXJndW1lbnQgIzEgMSBzaWdu ZWQgICBieXRlcyBAIDEKL3Vzci9sb2NhbC9iaW4vcG9zdGdyZXMgcG9zdGdy ZXNxbDpjbG9nX19jaGVja3BvaW50X19kb25lIFtzZW1hIDB4ZTIzNTFjXQog IGxvY2F0aW9uICMxIDB4NGZjNzI1CiAgICBhcmd1bWVudCAjMSAxIHNpZ25l ZCAgIGJ5dGVzIEAgMAogIGxvY2F0aW9uICMyIDB4NGZjNzRjCiAgICBhcmd1 bWVudCAjMSAxIHNpZ25lZCAgIGJ5dGVzIEAgMQovdXNyL2xvY2FsL2Jpbi9w b3N0Z3JlcyBwb3N0Z3Jlc3FsOm11bHRpeGFjdF9fY2hlY2twb2ludF9fc3Rh cnQgW3NlbWEgMHhlMjM1MjJdCiAgbG9jYXRpb24gIzEgMHg1MDBkMDcKICAg IGFyZ3VtZW50ICMxIDEgc2lnbmVkICAgYnl0ZXMgQCAwCiAgbG9jYXRpb24g IzIgMHg1MDBkYmMKICAgIGFyZ3VtZW50ICMxIDEgc2lnbmVkICAgYnl0ZXMg QCAxCi91c3IvbG9jYWwvYmluL3Bvc3RncmVzIHBvc3RncmVzcWw6bXVsdGl4 YWN0X19jaGVja3BvaW50X19kb25lIFtzZW1hIDB4ZTIzNTI0XQogIGxvY2F0 aW9uICMxIDB4NTAwZDI2CiAgICBhcmd1bWVudCAjMSAxIHNpZ25lZCAgIGJ5 dGVzIEAgMAogIGxvY2F0aW9uICMyIDB4NTAwZGRiCiAgICBhcmd1bWVudCAj MSAxIHNpZ25lZCAgIGJ5dGVzIEAgMQovdXNyL2xvY2FsL2Jpbi9wb3N0Z3Jl cyBwb3N0Z3Jlc3FsOnN1YnRyYW5zX19jaGVja3BvaW50X19zdGFydCBbc2Vt YSAweGUyMzUxZV0KICBsb2NhdGlvbiAjMSAweDUwNmJjMAogICAgYXJndW1l bnQgIzEgMSBzaWduZWQgICBieXRlcyBAIDAKICBsb2NhdGlvbiAjMiAweDUw NmJkOAogICAgYXJndW1lbnQgIzEgMSBzaWduZWQgICBieXRlcyBAIDEKL3Vz ci9sb2NhbC9iaW4vcG9zdGdyZXMgcG9zdGdyZXNxbDpzdWJ0cmFuc19fY2hl Y2twb2ludF9fZG9uZSBbc2VtYSAweGUyMzUyMF0KICBsb2NhdGlvbiAjMSAw eDUwNmJkMAogICAgYXJndW1lbnQgIzEgMSBzaWduZWQgICBieXRlcyBAIDAK ICBsb2NhdGlvbiAjMiAweDUwNmJlOAogICAgYXJndW1lbnQgIzEgMSBzaWdu ZWQgICBieXRlcyBAIDEKL3Vzci9sb2NhbC9iaW4vcG9zdGdyZXMgcG9zdGdy ZXNxbDp0d29waGFzZV9fY2hlY2twb2ludF9fc3RhcnQgW3NlbWEgMHhlMjM1 MjZdCiAgbG9jYXRpb24gIzEgMHg1MGE5ZGIKL3Vzci9sb2NhbC9iaW4vcG9z dGdyZXMgcG9zdGdyZXNxbDp0d29waGFzZV9fY2hlY2twb2ludF9fZG9uZSBb c2VtYSAweGUyMzUyOF0KICBsb2NhdGlvbiAjMSAweDUwYWFlYgovdXNyL2xv Y2FsL2Jpbi9wb3N0Z3JlcyBwb3N0Z3Jlc3FsOnRyYW5zYWN0aW9uX19zdGFy dCBbc2VtYSAweGUyMzRjOF0KICBsb2NhdGlvbiAjMSAweDUwZDkzMAogICAg YXJndW1lbnQgIzEgNCB1bnNpZ25lZCBieXRlcyBAIGF4Ci91c3IvbG9jYWwv YmluL3Bvc3RncmVzIHBvc3RncmVzcWw6dHJhbnNhY3Rpb25fX2NvbW1pdCBb c2VtYSAweGUyMzRjYV0KICBsb2NhdGlvbiAjMSAweDUwZGIxNAogICAgYXJn dW1lbnQgIzEgNCB1bnNpZ25lZCBieXRlcyBAIGF4Ci91c3IvbG9jYWwvYmlu L3Bvc3RncmVzIHBvc3RncmVzcWw6dHJhbnNhY3Rpb25fX2Fib3J0IFtzZW1h IDB4ZTIzNGNjXQogIGxvY2F0aW9uICMxIDB4NTBlMjUyCiAgICBhcmd1bWVu dCAjMSA0IHVuc2lnbmVkIGJ5dGVzIEAgYXgKL3Vzci9sb2NhbC9iaW4vcG9z dGdyZXMgcG9zdGdyZXNxbDp3YWxfX3N3aXRjaCBbc2VtYSAweGUyMzUzNF0K ICBsb2NhdGlvbiAjMSAweDUxMjAyYQovdXNyL2xvY2FsL2Jpbi9wb3N0Z3Jl cyBwb3N0Z3Jlc3FsOndhbF9fYnVmZmVyX193cml0ZV9fZGlydHlfX3N0YXJ0 IFtzZW1hIDB4ZTIzNTM2XQogIGxvY2F0aW9uICMxIDB4NTEzMmExCi91c3Iv bG9jYWwvYmluL3Bvc3RncmVzIHBvc3RncmVzcWw6d2FsX19idWZmZXJfX3dy aXRlX19kaXJ0eV9fZG9uZSBbc2VtYSAweGUyMzUzOF0KICBsb2NhdGlvbiAj MSAweDUxMzJkZgovdXNyL2xvY2FsL2Jpbi9wb3N0Z3JlcyBwb3N0Z3Jlc3Fs OmNoZWNrcG9pbnRfX3N0YXJ0IFtzZW1hIDB4ZTIzNTE2XQogIGxvY2F0aW9u ICMxIDB4NTFmMGU0CiAgICBhcmd1bWVudCAjMSA0IHNpZ25lZCAgIGJ5dGVz IEAgKihicCAtIDI2MCkKL3Vzci9sb2NhbC9iaW4vcG9zdGdyZXMgcG9zdGdy ZXNxbDpjaGVja3BvaW50X19kb25lIFtzZW1hIDB4ZTIzNTE4XQogIGxvY2F0 aW9uICMxIDB4NTFmNmJiCiAgICBhcmd1bWVudCAjMSA0IHNpZ25lZCAgIGJ5 dGVzIEAgYXgKICAgIGFyZ3VtZW50ICMyIDQgc2lnbmVkICAgYnl0ZXMgQCBk eAogICAgYXJndW1lbnQgIzMgNCBzaWduZWQgICBieXRlcyBAIGN4CiAgICBh cmd1bWVudCAjNCA0IHNpZ25lZCAgIGJ5dGVzIEAgc2kKICAgIGFyZ3VtZW50 ICM1IDQgc2lnbmVkICAgYnl0ZXMgQCBkaQovdXNyL2xvY2FsL2Jpbi9wb3N0 Z3JlcyBwb3N0Z3Jlc3FsOndhbF9faW5zZXJ0IFtzZW1hIDB4ZTIzNTMyXQog IGxvY2F0aW9uICMxIDB4NTI3OTBlCiAgICBhcmd1bWVudCAjMSAxIHVuc2ln bmVkIGJ5dGVzIEAgKihicCAtIDUyKQogICAgYXJndW1lbnQgIzIgMSB1bnNp Z25lZCBieXRlcyBAICooYnAgLSA1NikKL3Vzci9sb2NhbC9iaW4vcG9zdGdy ZXMgcG9zdGdyZXNxbDpzdGF0ZW1lbnRfX3N0YXR1cyBbc2VtYSAweGUyMzRm Nl0KICBsb2NhdGlvbiAjMSAweDc4NjFiMgogICAgYXJndW1lbnQgIzEgOCB1 bnNpZ25lZCBieXRlcyBAICooYnAgLSA4MCkKL3Vzci9sb2NhbC9iaW4vcG9z dGdyZXMgcG9zdGdyZXNxbDpidWZmZXJfX3JlYWRfX3N0YXJ0IFtzZW1hIDB4 ZTIzNGZjXQogIGxvY2F0aW9uICMxIDB4N2UwMTc2CiAgICBhcmd1bWVudCAj MSA0IHNpZ25lZCAgIGJ5dGVzIEAgKihicCAtIDIyNCkKICAgIGFyZ3VtZW50 ICMyIDQgdW5zaWduZWQgYnl0ZXMgQCAqKGJwIC0gMjI4KQogICAgYXJndW1l bnQgIzMgNCB1bnNpZ25lZCBieXRlcyBAIGR4CiAgICBhcmd1bWVudCAjNCA0 IHVuc2lnbmVkIGJ5dGVzIEAgY3gKICAgIGFyZ3VtZW50ICM1IDQgdW5zaWdu ZWQgYnl0ZXMgQCBzaQogICAgYXJndW1lbnQgIzYgNCBzaWduZWQgICBieXRl cyBAIGF4CiAgICBhcmd1bWVudCAjNyAxIHNpZ25lZCAgIGJ5dGVzIEAgKihi cCAtIDUwKQovdXNyL2xvY2FsL2Jpbi9wb3N0Z3JlcyBwb3N0Z3Jlc3FsOmJ1 ZmZlcl9fcmVhZF9fZG9uZSBbc2VtYSAweGUyMzRmZV0KICBsb2NhdGlvbiAj MSAweDdlMDJlMAogICAgYXJndW1lbnQgIzEgNCBzaWduZWQgICBieXRlcyBA ICooYnAgLSAyMjQpCiAgICBhcmd1bWVudCAjMiA0IHVuc2lnbmVkIGJ5dGVz IEAgKihicCAtIDIyOCkKICAgIGFyZ3VtZW50ICMzIDQgdW5zaWduZWQgYnl0 ZXMgQCBkeAogICAgYXJndW1lbnQgIzQgNCB1bnNpZ25lZCBieXRlcyBAIGN4 CiAgICBhcmd1bWVudCAjNSA0IHVuc2lnbmVkIGJ5dGVzIEAgc2kKICAgIGFy Z3VtZW50ICM2IDQgc2lnbmVkICAgYnl0ZXMgQCBheAogICAgYXJndW1lbnQg IzcgMSBzaWduZWQgICBieXRlcyBAICooYnAgLSA1MCkKICAgIGFyZ3VtZW50 ICM4IDEgc2lnbmVkICAgYnl0ZXMgQCBkaQogIGxvY2F0aW9uICMyIDB4N2Uw YWJjCiAgICBhcmd1bWVudCAjMSA0IHNpZ25lZCAgIGJ5dGVzIEAgKihicCAt IDIyNCkKICAgIGFyZ3VtZW50ICMyIDQgdW5zaWduZWQgYnl0ZXMgQCAqKGJw IC0gMjI4KQogICAgYXJndW1lbnQgIzMgNCB1bnNpZ25lZCBieXRlcyBAIGR4 CiAgICBhcmd1bWVudCAjNCA0IHVuc2lnbmVkIGJ5dGVzIEAgY3gKICAgIGFy Z3VtZW50ICM1IDQgdW5zaWduZWQgYnl0ZXMgQCBzaQogICAgYXJndW1lbnQg IzYgNCBzaWduZWQgICBieXRlcyBAIGF4CiAgICBhcmd1bWVudCAjNyAxIHNp Z25lZCAgIGJ5dGVzIEAgKihicCAtIDUwKQogICAgYXJndW1lbnQgIzggMSBz aWduZWQgICBieXRlcyBAIGRpCi91c3IvbG9jYWwvYmluL3Bvc3RncmVzIHBv c3RncmVzcWw6YnVmZmVyX193cml0ZV9fZGlydHlfX3N0YXJ0IFtzZW1hIDB4 ZTIzNTEwXQogIGxvY2F0aW9uICMxIDB4N2UwZDVkCiAgICBhcmd1bWVudCAj MSA0IHNpZ25lZCAgIGJ5dGVzIEAgKihicCAtIDE2MCkKICAgIGFyZ3VtZW50 ICMyIDQgdW5zaWduZWQgYnl0ZXMgQCAqKGJwIC0gMTY0KQogICAgYXJndW1l bnQgIzMgNCB1bnNpZ25lZCBieXRlcyBAIGR4CiAgICBhcmd1bWVudCAjNCA0 IHVuc2lnbmVkIGJ5dGVzIEAgY3gKICAgIGFyZ3VtZW50ICM1IDQgdW5zaWdu ZWQgYnl0ZXMgQCBheAovdXNyL2xvY2FsL2Jpbi9wb3N0Z3JlcyBwb3N0Z3Jl c3FsOmJ1ZmZlcl9fd3JpdGVfX2RpcnR5X19kb25lIFtzZW1hIDB4ZTIzNTEy XQogIGxvY2F0aW9uICMxIDB4N2UwZGFkCiAgICBhcmd1bWVudCAjMSA0IHNp Z25lZCAgIGJ5dGVzIEAgKihicCAtIDE2MCkKICAgIGFyZ3VtZW50ICMyIDQg dW5zaWduZWQgYnl0ZXMgQCAqKGJwIC0gMTY0KQogICAgYXJndW1lbnQgIzMg NCB1bnNpZ25lZCBieXRlcyBAIGR4CiAgICBhcmd1bWVudCAjNCA0IHVuc2ln bmVkIGJ5dGVzIEAgY3gKICAgIGFyZ3VtZW50ICM1IDQgdW5zaWduZWQgYnl0 ZXMgQCBheAovdXNyL2xvY2FsL2Jpbi9wb3N0Z3JlcyBwb3N0Z3Jlc3FsOmJ1 ZmZlcl9fc3luY19fc3RhcnQgW3NlbWEgMHhlMjM1MGFdCiAgbG9jYXRpb24g IzEgMHg3ZTFhMGUKICAgIGFyZ3VtZW50ICMxIDQgc2lnbmVkICAgYnl0ZXMg QCBheAogICAgYXJndW1lbnQgIzIgNCBzaWduZWQgICBieXRlcyBAICooYnAg LSAxMikKL3Vzci9sb2NhbC9iaW4vcG9zdGdyZXMgcG9zdGdyZXNxbDpidWZm ZXJfX3N5bmNfX3dyaXR0ZW4gW3NlbWEgMHhlMjM1MGNdCiAgbG9jYXRpb24g IzEgMHg3ZTFjOTkKICAgIGFyZ3VtZW50ICMxIDQgc2lnbmVkICAgYnl0ZXMg QCAqKGJwIC0gOCkKL3Vzci9sb2NhbC9iaW4vcG9zdGdyZXMgcG9zdGdyZXNx bDpidWZmZXJfX3N5bmNfX2RvbmUgW3NlbWEgMHhlMjM1MGVdCiAgbG9jYXRp b24gIzEgMHg3ZTFkOWIKICAgIGFyZ3VtZW50ICMxIDQgc2lnbmVkICAgYnl0 ZXMgQCBheAogICAgYXJndW1lbnQgIzIgNCBzaWduZWQgICBieXRlcyBAICoo YnAgLSAyNCkKICAgIGFyZ3VtZW50ICMzIDQgc2lnbmVkICAgYnl0ZXMgQCAq KGJwIC0gMTIpCi91c3IvbG9jYWwvYmluL3Bvc3RncmVzIHBvc3RncmVzcWw6 YnVmZmVyX19jaGVja3BvaW50X19zdGFydCBbc2VtYSAweGUyMzUwNF0KICBs b2NhdGlvbiAjMSAweDdlMjY2MQogICAgYXJndW1lbnQgIzEgNCBzaWduZWQg ICBieXRlcyBAICooYnAgLSA0KQovdXNyL2xvY2FsL2Jpbi9wb3N0Z3JlcyBw b3N0Z3Jlc3FsOmJ1ZmZlcl9fY2hlY2twb2ludF9fc3luY19fc3RhcnQgW3Nl bWEgMHhlMjM1MDZdCiAgbG9jYXRpb24gIzEgMHg3ZTI2ODQKL3Vzci9sb2Nh bC9iaW4vcG9zdGdyZXMgcG9zdGdyZXNxbDpidWZmZXJfX2NoZWNrcG9pbnRf X2RvbmUgW3NlbWEgMHhlMjM1MDhdCiAgbG9jYXRpb24gIzEgMHg3ZTI2OTYK L3Vzci9sb2NhbC9iaW4vcG9zdGdyZXMgcG9zdGdyZXNxbDpidWZmZXJfX2Zs dXNoX19zdGFydCBbc2VtYSAweGUyMzUwMF0KICBsb2NhdGlvbiAjMSAweDdl MjgyZQogICAgYXJndW1lbnQgIzEgNCBzaWduZWQgICBieXRlcyBAIGR4CiAg ICBhcmd1bWVudCAjMiA0IHVuc2lnbmVkIGJ5dGVzIEAgY3gKICAgIGFyZ3Vt ZW50ICMzIDQgdW5zaWduZWQgYnl0ZXMgQCBzaQogICAgYXJndW1lbnQgIzQg NCB1bnNpZ25lZCBieXRlcyBAIGRpCiAgICBhcmd1bWVudCAjNSA0IHVuc2ln bmVkIGJ5dGVzIEAgYXgKL3Vzci9sb2NhbC9iaW4vcG9zdGdyZXMgcG9zdGdy ZXNxbDpidWZmZXJfX2ZsdXNoX19kb25lIFtzZW1hIDB4ZTIzNTAyXQogIGxv Y2F0aW9uICMxIDB4N2UyYTg2CiAgICBhcmd1bWVudCAjMSA0IHNpZ25lZCAg IGJ5dGVzIEAgZHgKICAgIGFyZ3VtZW50ICMyIDQgdW5zaWduZWQgYnl0ZXMg QCBjeAogICAgYXJndW1lbnQgIzMgNCB1bnNpZ25lZCBieXRlcyBAIHNpCiAg ICBhcmd1bWVudCAjNCA0IHVuc2lnbmVkIGJ5dGVzIEAgZGkKICAgIGFyZ3Vt ZW50ICM1IDQgdW5zaWduZWQgYnl0ZXMgQCBheAovdXNyL2xvY2FsL2Jpbi9w b3N0Z3JlcyBwb3N0Z3Jlc3FsOmxvY2tfX3dhaXRfX3N0YXJ0IFtzZW1hIDB4 ZTIzNGRlXQogIGxvY2F0aW9uICMxIDB4N2ZlOWFhCiAgICBhcmd1bWVudCAj MSA0IHVuc2lnbmVkIGJ5dGVzIEAgZHgKICAgIGFyZ3VtZW50ICMyIDQgdW5z aWduZWQgYnl0ZXMgQCBjeAogICAgYXJndW1lbnQgIzMgNCB1bnNpZ25lZCBi eXRlcyBAIHNpCiAgICBhcmd1bWVudCAjNCAyIHVuc2lnbmVkIGJ5dGVzIEAg ZGkKICAgIGFyZ3VtZW50ICM1IDEgdW5zaWduZWQgYnl0ZXMgQCBheAogICAg YXJndW1lbnQgIzYgNCBzaWduZWQgICBieXRlcyBAICooYnAgLSAxODgpCi91 c3IvbG9jYWwvYmluL3Bvc3RncmVzIHBvc3RncmVzcWw6bG9ja19fd2FpdF9f ZG9uZSBbc2VtYSAweGUyMzRlMF0KICBsb2NhdGlvbiAjMSAweDdmZTlmMQog ICAgYXJndW1lbnQgIzEgNCB1bnNpZ25lZCBieXRlcyBAIGR4CiAgICBhcmd1 bWVudCAjMiA0IHVuc2lnbmVkIGJ5dGVzIEAgY3gKICAgIGFyZ3VtZW50ICMz IDQgdW5zaWduZWQgYnl0ZXMgQCBzaQogICAgYXJndW1lbnQgIzQgMiB1bnNp Z25lZCBieXRlcyBAIGRpCiAgICBhcmd1bWVudCAjNSAxIHVuc2lnbmVkIGJ5 dGVzIEAgYXgKICAgIGFyZ3VtZW50ICM2IDQgc2lnbmVkICAgYnl0ZXMgQCAq KGJwIC0gMTg4KQovdXNyL2xvY2FsL2Jpbi9wb3N0Z3JlcyBwb3N0Z3Jlc3Fs OmRlYWRsb2NrX19mb3VuZCBbc2VtYSAweGUyMzUxNF0KICBsb2NhdGlvbiAj MSAweDgwNjM4MgovdXNyL2xvY2FsL2Jpbi9wb3N0Z3JlcyBwb3N0Z3Jlc3Fs Omx3bG9ja19fd2FpdF9fc3RhcnQgW3NlbWEgMHhlMjM0ZDJdCiAgbG9jYXRp b24gIzEgMHg4MDkwYWEKICAgIGFyZ3VtZW50ICMxIDggdW5zaWduZWQgYnl0 ZXMgQCBheAogICAgYXJndW1lbnQgIzIgNCB1bnNpZ25lZCBieXRlcyBAICoo YnAgLSA0NCkKICBsb2NhdGlvbiAjMiAweDgwOTM1OQogICAgYXJndW1lbnQg IzEgOCB1bnNpZ25lZCBieXRlcyBAIGF4CiAgICBhcmd1bWVudCAjMiA0IHVu c2lnbmVkIGJ5dGVzIEAgKihicCAtIDI4KQogIGxvY2F0aW9uICMzIDB4ODA5 NWU2CiAgICBhcmd1bWVudCAjMSA4IHVuc2lnbmVkIGJ5dGVzIEAgYXgKICAg IGFyZ3VtZW50ICMyIDQgc2lnbmVkICAgYnl0ZXMgQCAwCi91c3IvbG9jYWwv YmluL3Bvc3RncmVzIHBvc3RncmVzcWw6bHdsb2NrX193YWl0X19kb25lIFtz ZW1hIDB4ZTIzNGQ0XQogIGxvY2F0aW9uICMxIDB4ODA5MGZlCiAgICBhcmd1 bWVudCAjMSA4IHVuc2lnbmVkIGJ5dGVzIEAgYXgKICAgIGFyZ3VtZW50ICMy IDQgdW5zaWduZWQgYnl0ZXMgQCAqKGJwIC0gNDQpCiAgbG9jYXRpb24gIzIg MHg4MDkzOTgKICAgIGFyZ3VtZW50ICMxIDggdW5zaWduZWQgYnl0ZXMgQCBh eAogICAgYXJndW1lbnQgIzIgNCB1bnNpZ25lZCBieXRlcyBAICooYnAgLSAy OCkKICBsb2NhdGlvbiAjMyAweDgwOTYyNQogICAgYXJndW1lbnQgIzEgOCB1 bnNpZ25lZCBieXRlcyBAIGF4CiAgICBhcmd1bWVudCAjMiA0IHNpZ25lZCAg IGJ5dGVzIEAgMAovdXNyL2xvY2FsL2Jpbi9wb3N0Z3JlcyBwb3N0Z3Jlc3Fs Omx3bG9ja19fYWNxdWlyZSBbc2VtYSAweGUyMzRjZV0KICBsb2NhdGlvbiAj MSAweDgwOTEyOQogICAgYXJndW1lbnQgIzEgOCB1bnNpZ25lZCBieXRlcyBA IGF4CiAgICBhcmd1bWVudCAjMiA0IHVuc2lnbmVkIGJ5dGVzIEAgKihicCAt IDQ0KQogIGxvY2F0aW9uICMyIDB4ODA5NjRjCiAgICBhcmd1bWVudCAjMSA4 IHVuc2lnbmVkIGJ5dGVzIEAgYXgKICAgIGFyZ3VtZW50ICMyIDQgc2lnbmVk ICAgYnl0ZXMgQCAwCi91c3IvbG9jYWwvYmluL3Bvc3RncmVzIHBvc3RncmVz cWw6bHdsb2NrX19jb25kYWNxdWlyZV9fZmFpbCBbc2VtYSAweGUyMzRkOF0K ICBsb2NhdGlvbiAjMSAweDgwOTIyMQogICAgYXJndW1lbnQgIzEgOCB1bnNp Z25lZCBieXRlcyBAIGF4CiAgICBhcmd1bWVudCAjMiA0IHVuc2lnbmVkIGJ5 dGVzIEAgKihicCAtIDI4KQovdXNyL2xvY2FsL2Jpbi9wb3N0Z3JlcyBwb3N0 Z3Jlc3FsOmx3bG9ja19fY29uZGFjcXVpcmUgW3NlbWEgMHhlMjM0ZDZdCiAg bG9jYXRpb24gIzEgMHg4MDkyN2EKICAgIGFyZ3VtZW50ICMxIDggdW5zaWdu ZWQgYnl0ZXMgQCBheAogICAgYXJndW1lbnQgIzIgNCB1bnNpZ25lZCBieXRl cyBAICooYnAgLSAyOCkKL3Vzci9sb2NhbC9iaW4vcG9zdGdyZXMgcG9zdGdy ZXNxbDpsd2xvY2tfX2FjcXVpcmVfX29yX193YWl0X19mYWlsIFtzZW1hIDB4 ZTIzNGRjXQogIGxvY2F0aW9uICMxIDB4ODA5M2ZiCiAgICBhcmd1bWVudCAj MSA4IHVuc2lnbmVkIGJ5dGVzIEAgYXgKICAgIGFyZ3VtZW50ICMyIDQgdW5z aWduZWQgYnl0ZXMgQCAqKGJwIC0gMjgpCi91c3IvbG9jYWwvYmluL3Bvc3Rn cmVzIHBvc3RncmVzcWw6bHdsb2NrX19hY3F1aXJlX19vcl9fd2FpdCBbc2Vt YSAweGUyMzRkYV0KICBsb2NhdGlvbiAjMSAweDgwOTQ1NAogICAgYXJndW1l bnQgIzEgOCB1bnNpZ25lZCBieXRlcyBAIGF4CiAgICBhcmd1bWVudCAjMiA0 IHVuc2lnbmVkIGJ5dGVzIEAgKihicCAtIDI4KQovdXNyL2xvY2FsL2Jpbi9w b3N0Z3JlcyBwb3N0Z3Jlc3FsOmx3bG9ja19fcmVsZWFzZSBbc2VtYSAweGUy MzRkMF0KICBsb2NhdGlvbiAjMSAweDgwOTliNAogICAgYXJndW1lbnQgIzEg OCB1bnNpZ25lZCBieXRlcyBAIGF4Ci91c3IvbG9jYWwvYmluL3Bvc3RncmVz IHBvc3RncmVzcWw6c21ncl9fbWRfX3JlYWRfX3N0YXJ0IFtzZW1hIDB4ZTIz NTJhXQogIGxvY2F0aW9uICMxIDB4ODEzODU1CiAgICBhcmd1bWVudCAjMSA0 IHNpZ25lZCAgIGJ5dGVzIEAgKihicCAtIDkyKQogICAgYXJndW1lbnQgIzIg NCB1bnNpZ25lZCBieXRlcyBAICooYnAgLSA5NikKICAgIGFyZ3VtZW50ICMz IDQgdW5zaWduZWQgYnl0ZXMgQCBkeAogICAgYXJndW1lbnQgIzQgNCB1bnNp Z25lZCBieXRlcyBAIGN4CiAgICBhcmd1bWVudCAjNSA0IHVuc2lnbmVkIGJ5 dGVzIEAgc2kKICAgIGFyZ3VtZW50ICM2IDQgc2lnbmVkICAgYnl0ZXMgQCBh eAovdXNyL2xvY2FsL2Jpbi9wb3N0Z3JlcyBwb3N0Z3Jlc3FsOnNtZ3JfX21k X19yZWFkX19kb25lIFtzZW1hIDB4ZTIzNTJjXQogIGxvY2F0aW9uICMxIDB4 ODEzOTNiCiAgICBhcmd1bWVudCAjMSA0IHNpZ25lZCAgIGJ5dGVzIEAgKihi cCAtIDkyKQogICAgYXJndW1lbnQgIzIgNCB1bnNpZ25lZCBieXRlcyBAICoo YnAgLSA5NikKICAgIGFyZ3VtZW50ICMzIDQgdW5zaWduZWQgYnl0ZXMgQCBk eAogICAgYXJndW1lbnQgIzQgNCB1bnNpZ25lZCBieXRlcyBAIGN4CiAgICBh cmd1bWVudCAjNSA0IHVuc2lnbmVkIGJ5dGVzIEAgc2kKICAgIGFyZ3VtZW50 ICM2IDQgc2lnbmVkICAgYnl0ZXMgQCBheAogICAgYXJndW1lbnQgIzcgNCBz aWduZWQgICBieXRlcyBAICooYnAgLSA0NCkKICAgIGFyZ3VtZW50ICM4IDQg c2lnbmVkICAgYnl0ZXMgQCA4MTkyCi91c3IvbG9jYWwvYmluL3Bvc3RncmVz IHBvc3RncmVzcWw6c21ncl9fbWRfX3dyaXRlX19zdGFydCBbc2VtYSAweGUy MzUyZV0KICBsb2NhdGlvbiAjMSAweDgxM2IwNgogICAgYXJndW1lbnQgIzEg NCBzaWduZWQgICBieXRlcyBAICooYnAgLSA2MCkKICAgIGFyZ3VtZW50ICMy IDQgdW5zaWduZWQgYnl0ZXMgQCAqKGJwIC0gNjQpCiAgICBhcmd1bWVudCAj MyA0IHVuc2lnbmVkIGJ5dGVzIEAgZHgKICAgIGFyZ3VtZW50ICM0IDQgdW5z aWduZWQgYnl0ZXMgQCBjeAogICAgYXJndW1lbnQgIzUgNCB1bnNpZ25lZCBi eXRlcyBAIHNpCiAgICBhcmd1bWVudCAjNiA0IHNpZ25lZCAgIGJ5dGVzIEAg YXgKL3Vzci9sb2NhbC9iaW4vcG9zdGdyZXMgcG9zdGdyZXNxbDpzbWdyX19t ZF9fd3JpdGVfX2RvbmUgW3NlbWEgMHhlMjM1MzBdCiAgbG9jYXRpb24gIzEg MHg4MTNiZWIKICAgIGFyZ3VtZW50ICMxIDQgc2lnbmVkICAgYnl0ZXMgQCAq KGJwIC0gNjApCiAgICBhcmd1bWVudCAjMiA0IHVuc2lnbmVkIGJ5dGVzIEAg KihicCAtIDY0KQogICAgYXJndW1lbnQgIzMgNCB1bnNpZ25lZCBieXRlcyBA IGR4CiAgICBhcmd1bWVudCAjNCA0IHVuc2lnbmVkIGJ5dGVzIEAgY3gKICAg IGFyZ3VtZW50ICM1IDQgdW5zaWduZWQgYnl0ZXMgQCBzaQogICAgYXJndW1l bnQgIzYgNCBzaWduZWQgICBieXRlcyBAIGF4CiAgICBhcmd1bWVudCAjNyA0 IHNpZ25lZCAgIGJ5dGVzIEAgKihicCAtIDM2KQogICAgYXJndW1lbnQgIzgg NCBzaWduZWQgICBieXRlcyBAIDgxOTIKL3Vzci9sb2NhbC9iaW4vcG9zdGdy ZXMgcG9zdGdyZXNxbDpxdWVyeV9fcGFyc2VfX3N0YXJ0IFtzZW1hIDB4ZTIz NGUyXQogIGxvY2F0aW9uICMxIDB4ODE3ZmFjCiAgICBhcmd1bWVudCAjMSA4 IHVuc2lnbmVkIGJ5dGVzIEAgKihicCAtIDI0KQovdXNyL2xvY2FsL2Jpbi9w b3N0Z3JlcyBwb3N0Z3Jlc3FsOnF1ZXJ5X19wYXJzZV9fZG9uZSBbc2VtYSAw eGUyMzRlNF0KICBsb2NhdGlvbiAjMSAweDgxN2ZlMgogICAgYXJndW1lbnQg IzEgOCB1bnNpZ25lZCBieXRlcyBAICooYnAgLSAyNCkKL3Vzci9sb2NhbC9i aW4vcG9zdGdyZXMgcG9zdGdyZXNxbDpxdWVyeV9fcmV3cml0ZV9fc3RhcnQg W3NlbWEgMHhlMjM0ZTZdCiAgbG9jYXRpb24gIzEgMHg4MTgwMDQKICAgIGFy Z3VtZW50ICMxIDggdW5zaWduZWQgYnl0ZXMgQCAqKGJwIC0gMzIpCiAgbG9j YXRpb24gIzIgMHg4MTgwN2YKICAgIGFyZ3VtZW50ICMxIDggdW5zaWduZWQg Ynl0ZXMgQCAqKGJwIC0gNDgpCi91c3IvbG9jYWwvYmluL3Bvc3RncmVzIHBv c3RncmVzcWw6cXVlcnlfX3Jld3JpdGVfX2RvbmUgW3NlbWEgMHhlMjM0ZThd CiAgbG9jYXRpb24gIzEgMHg4MTgwNWMKICAgIGFyZ3VtZW50ICMxIDggdW5z aWduZWQgYnl0ZXMgQCAqKGJwIC0gMzIpCiAgbG9jYXRpb24gIzIgMHg4MTgx MzgKICAgIGFyZ3VtZW50ICMxIDggdW5zaWduZWQgYnl0ZXMgQCAqKGJwIC0g NDgpCi91c3IvbG9jYWwvYmluL3Bvc3RncmVzIHBvc3RncmVzcWw6cXVlcnlf X3BsYW5fX3N0YXJ0IFtzZW1hIDB4ZTIzNGVhXQogIGxvY2F0aW9uICMxIDB4 ODE4MjI5Ci91c3IvbG9jYWwvYmluL3Bvc3RncmVzIHBvc3RncmVzcWw6cXVl cnlfX3BsYW5fX2RvbmUgW3NlbWEgMHhlMjM0ZWNdCiAgbG9jYXRpb24gIzEg MHg4MTgyOTUKL3Vzci9sb2NhbC9iaW4vcG9zdGdyZXMgcG9zdGdyZXNxbDpx dWVyeV9fc3RhcnQgW3NlbWEgMHhlMjM0ZjJdCiAgbG9jYXRpb24gIzEgMHg4 MTgzZjYKICAgIGFyZ3VtZW50ICMxIDggdW5zaWduZWQgYnl0ZXMgQCAqKGJw IC0gMjQ4KQovdXNyL2xvY2FsL2Jpbi9wb3N0Z3JlcyBwb3N0Z3Jlc3FsOnF1 ZXJ5X19kb25lIFtzZW1hIDB4ZTIzNGY0XQogIGxvY2F0aW9uICMxIDB4ODE4 OTJlCiAgICBhcmd1bWVudCAjMSA4IHVuc2lnbmVkIGJ5dGVzIEAgKihicCAt IDI0OCkKL3Vzci9sb2NhbC9iaW4vcG9zdGdyZXMgcG9zdGdyZXNxbDpxdWVy eV9fZXhlY3V0ZV9fc3RhcnQgW3NlbWEgMHhlMjM0ZWVdCiAgbG9jYXRpb24g IzEgMHg4MWRmZmYKICBsb2NhdGlvbiAjMiAweDgxZWJhNQovdXNyL2xvY2Fs L2Jpbi9wb3N0Z3JlcyBwb3N0Z3Jlc3FsOnF1ZXJ5X19leGVjdXRlX19kb25l IFtzZW1hIDB4ZTIzNGYwXQogIGxvY2F0aW9uICMxIDB4ODFlM2ZhCiAgbG9j YXRpb24gIzIgMHg4MWVjODcKL3Vzci9sb2NhbC9iaW4vcG9zdGdyZXMgcG9z dGdyZXNxbDpzb3J0X19zdGFydCBbc2VtYSAweGUyMzRmOF0KICBsb2NhdGlv biAjMSAweDlhYWUyMQogICAgYXJndW1lbnQgIzEgNCBzaWduZWQgICBieXRl cyBAIDAKICAgIGFyZ3VtZW50ICMyIDEgc2lnbmVkICAgYnl0ZXMgQCAwCiAg ICBhcmd1bWVudCAjMyA0IHNpZ25lZCAgIGJ5dGVzIEAgKihicCAtIDQ0KQog ICAgYXJndW1lbnQgIzQgNCBzaWduZWQgICBieXRlcyBAICooYnAgKyAxNikK ICAgIGFyZ3VtZW50ICM1IDEgc2lnbmVkICAgYnl0ZXMgQCAqKGJwIC0gNDgp CiAgbG9jYXRpb24gIzIgMHg5YWIwNTMKICAgIGFyZ3VtZW50ICMxIDQgc2ln bmVkICAgYnl0ZXMgQCAzCiAgICBhcmd1bWVudCAjMiAxIHNpZ25lZCAgIGJ5 dGVzIEAgMAogICAgYXJndW1lbnQgIzMgNCBzaWduZWQgICBieXRlcyBAIGF4 CiAgICBhcmd1bWVudCAjNCA0IHNpZ25lZCAgIGJ5dGVzIEAgKihicCAtIDEw MCkKICAgIGFyZ3VtZW50ICM1IDEgc2lnbmVkICAgYnl0ZXMgQCAqKGJwIC0g MTA0KQogIGxvY2F0aW9uICMzIDB4OWFiMzNjCiAgICBhcmd1bWVudCAjMSA0 IHNpZ25lZCAgIGJ5dGVzIEAgMQogICAgYXJndW1lbnQgIzIgMSBzaWduZWQg ICBieXRlcyBAICooYnAgLSA4NCkKICAgIGFyZ3VtZW50ICMzIDQgc2lnbmVk ICAgYnl0ZXMgQCBheAogICAgYXJndW1lbnQgIzQgNCBzaWduZWQgICBieXRl cyBAICooYnAgLSA4OCkKICAgIGFyZ3VtZW50ICM1IDEgc2lnbmVkICAgYnl0 ZXMgQCAqKGJwIC0gOTIpCiAgbG9jYXRpb24gIzQgMHg5YWI2ZDgKICAgIGFy Z3VtZW50ICMxIDQgc2lnbmVkICAgYnl0ZXMgQCAyCiAgICBhcmd1bWVudCAj MiAxIHNpZ25lZCAgIGJ5dGVzIEAgMAogICAgYXJndW1lbnQgIzMgNCBzaWdu ZWQgICBieXRlcyBAIDEKICAgIGFyZ3VtZW50ICM0IDQgc2lnbmVkICAgYnl0 ZXMgQCAqKGJwIC0gNTIpCiAgICBhcmd1bWVudCAjNSAxIHNpZ25lZCAgIGJ5 dGVzIEAgKihicCAtIDU2KQovdXNyL2xvY2FsL2Jpbi9wb3N0Z3JlcyBwb3N0 Z3Jlc3FsOnNvcnRfX2RvbmUgW3NlbWEgMHhlMjM0ZmFdCiAgbG9jYXRpb24g IzEgMHg5YWJhMDYKICAgIGFyZ3VtZW50ICMxIDQgc2lnbmVkICAgYnl0ZXMg QCBheAogICAgYXJndW1lbnQgIzIgOCBzaWduZWQgICBieXRlcyBAICooYnAg LSA4KQo= --------------81CFFD4ADDF4B6D7DB990C3F Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --------------81CFFD4ADDF4B6D7DB990C3F--