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 1vqm17-0005Kk-2s for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Feb 2026 05:47:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vqm17-00CfIi-0f for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Feb 2026 05:47: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.96) (envelope-from ) id 1vqm16-00CfIa-26 for pgsql-hackers@lists.postgresql.org; Fri, 13 Feb 2026 05:47:01 +0000 Received: from smtp.outgoing.loopia.se ([93.188.3.37]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vqm14-00000000Opf-0DRH for pgsql-hackers@lists.postgresql.org; Fri, 13 Feb 2026 05:47:00 +0000 Received: from s807.loopia.se (localhost [127.0.0.1]) by s807.loopia.se (Postfix) with ESMTP id 28F6A4D6167 for ; Fri, 13 Feb 2026 06:46:56 +0100 (CET) Received: from s979.loopia.se (unknown [172.22.191.6]) by s807.loopia.se (Postfix) with ESMTP id 037AE4D60F6; Fri, 13 Feb 2026 06:46:56 +0100 (CET) Received: from localhost (unknown [172.22.191.6]) by s979.loopia.se (Postfix) with ESMTP id F373A10BC429; Fri, 13 Feb 2026 06:46:55 +0100 (CET) X-Virus-Scanned: amavis at amavis.loopia.se X-Spam-Flag: NO X-Spam-Score: -1.2 X-Spam-Level: X-Spam-Status: No, score=-1.2 tagged_above=-999 required=6.2 tests=[ALL_TRUSTED=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1] autolearn=disabled Authentication-Results: s470.loopia.se (amavis); dkim=pass (2048-bit key) header.d=proxel.se Received: from s981.loopia.se ([172.22.191.6]) by localhost (s470.loopia.se [172.22.190.34]) (amavis, port 10024) with LMTP id 3cadFdTNAmDu; Fri, 13 Feb 2026 06:46:55 +0100 (CET) X-Loopia-Auth: user X-Loopia-User: andreas@proxel.se X-Loopia-Originating-IP: 147.28.75.140 Received: from [192.168.0.121] (customer-147-28-75-140.stosn.net [147.28.75.140]) (Authenticated sender: andreas@proxel.se) by s981.loopia.se (Postfix) with ESMTPSA id 4E50222B1717; Fri, 13 Feb 2026 06:46:55 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxel.se; s=loopiadkim1707418970; t=1770961615; bh=2Zuw6KoWD+wE4pW2S+AvETS0zMfX5lTReIIAWGayoRM=; h=Date:Subject:To:References:From:In-Reply-To; b=dtSQHuPP6c0nOMs8tbRWbTzdwd7ubChlrOxYyXIvQt4p6lGUQY09o56XCEln2eEQb DSoGqI5vkhdzAUFBQjdeTqIgaE6kb+RB3BQUaQDTr6rwsodqob8iADFtCF10omMhSk tubsO73mtt3NbM7I3vnIi4vyja62o56uTSHv1DjNhNoZ0EM46b+vN3HC0tztOdpdcS Y+S+CoFHvWtc2SE4MKBG0K4g0CJwXYI7eXX3CIAvtvqIjEjTsCzPiQRe3XBtm0/gFF lMKdsQJ0tgQuBMGnQcKwmspbuyACRC3NfhmxsUm1yYQ4uOtfOSraDgW2XWh1AtoPhB UwZP22kI4Ykow== Content-Type: multipart/mixed; boundary="------------oz7fppAWh90qR2eU663THm1F" Message-ID: <4653b0bf-5642-44f1-b059-7cc1db861da7@proxel.se> Date: Fri, 13 Feb 2026 06:46:55 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Our ABI diff infrastructure ignores enum SysCacheIdentifier To: Tom Lane , pgsql-hackers@lists.postgresql.org References: <289125.1770913057@sss.pgh.pa.us> From: Andreas Karlsson Content-Language: en-US In-Reply-To: <289125.1770913057@sss.pgh.pa.us> 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. --------------oz7fppAWh90qR2eU663THm1F Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 2/12/26 5:17 PM, Tom Lane wrote: > As for SysCacheIdentifier, the root of the problem is that > SearchSysCache and friends are declared to take "int cacheId" > not "enum SysCacheIdentifier cacheId". Likely we should change > that in HEAD, but that'd be an actual not theoretical ABI break > (the enum's not necessarily int-width). In the back branches > I'm thinking about adding a dummy function just for this purpose, > more or less as in the under-commented patch attached. > > Thoughts? Attached a patch which changes that in HEAD and I think for HEAD the best solution is the just fix all cases where we use ints like this to actually use the enum. As for back branches I agree with Michael, just add a comment explaining why this dummy function is necessary. Andreas --------------oz7fppAWh90qR2eU663THm1F Content-Type: text/x-patch; charset=UTF-8; name="v1-0001-Use-SysCacheIdentifier-enum-instead-of-int.patch" Content-Disposition: attachment; filename="v1-0001-Use-SysCacheIdentifier-enum-instead-of-int.patch" Content-Transfer-Encoding: base64 RnJvbSA4ODkxNDdkNzBhOGVkYjFhMmY5MmNmNzNiODQ5ZWFmNjFlMThkOGRjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIEthcmxzc29uIDxhbmRyZWFzQHByb3hl bC5zZT4KRGF0ZTogRnJpLCAxMyBGZWIgMjAyNiAwNjo0MTowOSArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdjFdIFVzZSBTeXNDYWNoZUlkZW50aWZpZXIgZW51bSBpbnN0ZWFkIG9mIGludAoK VGhpcyBtYWtlcyB0aGUgQUJJIGNoZWNrZXIgaGFwcHkgcGx1cyBtYWtlcyB0aGUgaXRuZW50 IG9mIHRoZSBjb2RlIGNsZWFyZXIuCi0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9nZW5ia2ku cGwgICAgICB8ICA0ICsrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMg fCAzNCArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL3V0aWxz L3N5c2NhY2hlLmggICAgICAgfCAzMCArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogMyBm aWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2dlbmJraS5wbCBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvZ2VuYmtpLnBsCmluZGV4IGIyYzFiMWM1NzMzLi4wZGRkZWQ3ODNiNSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9nZW5ia2kucGwKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9nZW5ia2kucGwKQEAgLTc5NSw3ICs3OTUsNyBAQCBwcmludCAkZmtfaW5mbyAi fTtcblxuI2VuZGlmXHRcdFx0XHRcdFx0XHQvKiBTWVNURU1fRktfSU5GT19IICovXG4iOwog IyBOb3cgZ2VuZXJhdGUgc3lzY2FjaGUgaW5mbwogCiBwcmludF9ib2lsZXJwbGF0ZSgkc3lz Y2FjaGVfaWRzX2ZoLCAic3lzY2FjaGVfaWRzLmgiLCAiU3lzQ2FjaGUgaWRlbnRpZmllcnMi KTsKLXByaW50ICRzeXNjYWNoZV9pZHNfZmggImVudW0gU3lzQ2FjaGVJZGVudGlmaWVyCitw cmludCAkc3lzY2FjaGVfaWRzX2ZoICJ0eXBlZGVmIGVudW0gU3lzQ2FjaGVJZGVudGlmaWVy CiB7CiAiOwogCkBAIC04MjUsNyArODI1LDcgQEAgZm9yZWFjaCBteSAkc3lzY2FjaGUgKHNv cnQga2V5cyAlc3lzY2FjaGVzKQogCXByaW50ICRzeXNjYWNoZV9pbmZvX2ZoICJcdH0sXG4i OwogfQogCi1wcmludCAkc3lzY2FjaGVfaWRzX2ZoICJ9O1xuIjsKK3ByaW50ICRzeXNjYWNo ZV9pZHNfZmggIn0gU3lzQ2FjaGVJZGVudGlmaWVyO1xuIjsKIHByaW50ICRzeXNjYWNoZV9p ZHNfZmggIiNkZWZpbmUgU3lzQ2FjaGVTaXplICgkbGFzdF9zeXNjYWNoZSArIDEpXG4iOwog CiBwcmludCAkc3lzY2FjaGVfaW5mb19maCAifTtcbiI7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9jYWNoZS9zeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv c3lzY2FjaGUuYwppbmRleCBhZTNkMThlMGU3NC4uMDA3YTlhMTVkNzEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvc3lzY2FjaGUuYwpAQCAtMTA5LDcgKzEwOSw3IEBAIHN0YXRpYyBpbnQJ b2lkX2NvbXBhcmUoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYik7CiB2b2lkCiBJbml0 Q2F0YWxvZ0NhY2hlKHZvaWQpCiB7Ci0JaW50CQkJY2FjaGVJZDsKKwlTeXNDYWNoZUlkZW50 aWZpZXIgY2FjaGVJZDsKIAogCUFzc2VydCghQ2FjaGVJbml0aWFsaXplZCk7CiAKQEAgLTE3 OSw3ICsxNzksNyBAQCBJbml0Q2F0YWxvZ0NhY2hlKHZvaWQpCiB2b2lkCiBJbml0Q2F0YWxv Z0NhY2hlUGhhc2UyKHZvaWQpCiB7Ci0JaW50CQkJY2FjaGVJZDsKKwlTeXNDYWNoZUlkZW50 aWZpZXIgY2FjaGVJZDsKIAogCUFzc2VydChDYWNoZUluaXRpYWxpemVkKTsKIApAQCAtMjA1 LDcgKzIwNSw3IEBAIEluaXRDYXRhbG9nQ2FjaGVQaGFzZTIodm9pZCkKICAqCUNBVVRJT046 IFRoZSB0dXBsZSB0aGF0IGlzIHJldHVybmVkIG11c3QgTk9UIGJlIGZyZWVkIGJ5IHRoZSBj YWxsZXIhCiAgKi8KIEhlYXBUdXBsZQotU2VhcmNoU3lzQ2FjaGUoaW50IGNhY2hlSWQsCitT ZWFyY2hTeXNDYWNoZShTeXNDYWNoZUlkZW50aWZpZXIgY2FjaGVJZCwKIAkJCSAgIERhdHVt IGtleTEsCiAJCQkgICBEYXR1bSBrZXkyLAogCQkJICAgRGF0dW0ga2V5MywKQEAgLTIxNyw3 ICsyMTcsNyBAQCBTZWFyY2hTeXNDYWNoZShpbnQgY2FjaGVJZCwKIH0KIAogSGVhcFR1cGxl Ci1TZWFyY2hTeXNDYWNoZTEoaW50IGNhY2hlSWQsCitTZWFyY2hTeXNDYWNoZTEoU3lzQ2Fj aGVJZGVudGlmaWVyIGNhY2hlSWQsCiAJCQkJRGF0dW0ga2V5MSkKIHsKIAlBc3NlcnQoY2Fj aGVJZCA+PSAwICYmIGNhY2hlSWQgPCBTeXNDYWNoZVNpemUgJiYgU3lzQ2FjaGVbY2FjaGVJ ZF0pOwpAQCAtMjI3LDcgKzIyNyw3IEBAIFNlYXJjaFN5c0NhY2hlMShpbnQgY2FjaGVJZCwK IH0KIAogSGVhcFR1cGxlCi1TZWFyY2hTeXNDYWNoZTIoaW50IGNhY2hlSWQsCitTZWFyY2hT eXNDYWNoZTIoU3lzQ2FjaGVJZGVudGlmaWVyIGNhY2hlSWQsCiAJCQkJRGF0dW0ga2V5MSwg RGF0dW0ga2V5MikKIHsKIAlBc3NlcnQoY2FjaGVJZCA+PSAwICYmIGNhY2hlSWQgPCBTeXND YWNoZVNpemUgJiYgU3lzQ2FjaGVbY2FjaGVJZF0pOwpAQCAtMjM3LDcgKzIzNyw3IEBAIFNl YXJjaFN5c0NhY2hlMihpbnQgY2FjaGVJZCwKIH0KIAogSGVhcFR1cGxlCi1TZWFyY2hTeXND YWNoZTMoaW50IGNhY2hlSWQsCitTZWFyY2hTeXNDYWNoZTMoU3lzQ2FjaGVJZGVudGlmaWVy IGNhY2hlSWQsCiAJCQkJRGF0dW0ga2V5MSwgRGF0dW0ga2V5MiwgRGF0dW0ga2V5MykKIHsK IAlBc3NlcnQoY2FjaGVJZCA+PSAwICYmIGNhY2hlSWQgPCBTeXNDYWNoZVNpemUgJiYgU3lz Q2FjaGVbY2FjaGVJZF0pOwpAQCAtMjQ3LDcgKzI0Nyw3IEBAIFNlYXJjaFN5c0NhY2hlMyhp bnQgY2FjaGVJZCwKIH0KIAogSGVhcFR1cGxlCi1TZWFyY2hTeXNDYWNoZTQoaW50IGNhY2hl SWQsCitTZWFyY2hTeXNDYWNoZTQoU3lzQ2FjaGVJZGVudGlmaWVyIGNhY2hlSWQsCiAJCQkJ RGF0dW0ga2V5MSwgRGF0dW0ga2V5MiwgRGF0dW0ga2V5MywgRGF0dW0ga2V5NCkKIHsKIAlB c3NlcnQoY2FjaGVJZCA+PSAwICYmIGNhY2hlSWQgPCBTeXNDYWNoZVNpemUgJiYgU3lzQ2Fj aGVbY2FjaGVJZF0pOwpAQCAtMjc5LDcgKzI3OSw3IEBAIFJlbGVhc2VTeXNDYWNoZShIZWFw VHVwbGUgdHVwbGUpCiAgKiBkb2Vzbid0IHByZXZlbnQgdGhlICJ0dXBsZSBjb25jdXJyZW50 bHkgdXBkYXRlZCIgZXJyb3IuCiAgKi8KIEhlYXBUdXBsZQotU2VhcmNoU3lzQ2FjaGVMb2Nr ZWQxKGludCBjYWNoZUlkLAorU2VhcmNoU3lzQ2FjaGVMb2NrZWQxKFN5c0NhY2hlSWRlbnRp ZmllciBjYWNoZUlkLAogCQkJCQkgIERhdHVtIGtleTEpCiB7CiAJQ2F0Q2FjaGUgICAqY2Fj aGUgPSBTeXNDYWNoZVtjYWNoZUlkXTsKQEAgLTM3MSw3ICszNzEsNyBAQCBTZWFyY2hTeXND YWNoZUxvY2tlZDEoaW50IGNhY2hlSWQsCiAgKiBoZWFwX2ZyZWV0dXBsZSgpIHRoZSByZXN1 bHQgd2hlbiBkb25lIHdpdGggaXQuCiAgKi8KIEhlYXBUdXBsZQotU2VhcmNoU3lzQ2FjaGVD b3B5KGludCBjYWNoZUlkLAorU2VhcmNoU3lzQ2FjaGVDb3B5KFN5c0NhY2hlSWRlbnRpZmll ciBjYWNoZUlkLAogCQkJCSAgIERhdHVtIGtleTEsCiAJCQkJICAgRGF0dW0ga2V5MiwKIAkJ CQkgICBEYXR1bSBrZXkzLApAQCAtMzk2LDcgKzM5Niw3IEBAIFNlYXJjaFN5c0NhY2hlQ29w eShpbnQgY2FjaGVJZCwKICAqIGhlYXBfZnJlZXR1cGxlKCkuCiAgKi8KIEhlYXBUdXBsZQot U2VhcmNoU3lzQ2FjaGVMb2NrZWRDb3B5MShpbnQgY2FjaGVJZCwKK1NlYXJjaFN5c0NhY2hl TG9ja2VkQ29weTEoU3lzQ2FjaGVJZGVudGlmaWVyIGNhY2hlSWQsCiAJCQkJCQkgIERhdHVt IGtleTEpCiB7CiAJSGVhcFR1cGxlCXR1cGxlLApAQCAtNDE3LDcgKzQxNyw3IEBAIFNlYXJj aFN5c0NhY2hlTG9ja2VkQ29weTEoaW50IGNhY2hlSWQsCiAgKiBObyBsb2NrIGlzIHJldGFp bmVkIG9uIHRoZSBzeXNjYWNoZSBlbnRyeS4KICAqLwogYm9vbAotU2VhcmNoU3lzQ2FjaGVF eGlzdHMoaW50IGNhY2hlSWQsCitTZWFyY2hTeXNDYWNoZUV4aXN0cyhTeXNDYWNoZUlkZW50 aWZpZXIgY2FjaGVJZCwKIAkJCQkJIERhdHVtIGtleTEsCiAJCQkJCSBEYXR1bSBrZXkyLAog CQkJCQkgRGF0dW0ga2V5MywKQEAgLTQ0MCw3ICs0NDAsNyBAQCBTZWFyY2hTeXNDYWNoZUV4 aXN0cyhpbnQgY2FjaGVJZCwKICAqIE5vIGxvY2sgaXMgcmV0YWluZWQgb24gdGhlIHN5c2Nh Y2hlIGVudHJ5LgogICovCiBPaWQKLUdldFN5c0NhY2hlT2lkKGludCBjYWNoZUlkLAorR2V0 U3lzQ2FjaGVPaWQoU3lzQ2FjaGVJZGVudGlmaWVyIGNhY2hlSWQsCiAJCQkgICBBdHRyTnVt YmVyIG9pZGNvbCwKIAkJCSAgIERhdHVtIGtleTEsCiAJCQkgICBEYXR1bSBrZXkyLApAQCAt NTkyLDcgKzU5Miw3IEBAIFNlYXJjaFN5c0NhY2hlQ29weUF0dE51bShPaWQgcmVsaWQsIGlu dDE2IGF0dG51bSkKICAqIGEgZGlmZmVyZW50IGNhY2hlIGZvciB0aGUgc2FtZSBjYXRhbG9n IHRoZSB0dXBsZSB3YXMgZmV0Y2hlZCBmcm9tLgogICovCiBEYXR1bQotU3lzQ2FjaGVHZXRB dHRyKGludCBjYWNoZUlkLCBIZWFwVHVwbGUgdHVwLAorU3lzQ2FjaGVHZXRBdHRyKFN5c0Nh Y2hlSWRlbnRpZmllciBjYWNoZUlkLCBIZWFwVHVwbGUgdHVwLAogCQkJCUF0dHJOdW1iZXIg YXR0cmlidXRlTnVtYmVyLAogCQkJCWJvb2wgKmlzTnVsbCkKIHsKQEAgLTYyMiw3ICs2MjIs NyBAQCBTeXNDYWNoZUdldEF0dHIoaW50IGNhY2hlSWQsIEhlYXBUdXBsZSB0dXAsCiAgKiBi ZSBOVUxMLgogICovCiBEYXR1bQotU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChpbnQgY2FjaGVJ ZCwgSGVhcFR1cGxlIHR1cCwKK1N5c0NhY2hlR2V0QXR0ck5vdE51bGwoU3lzQ2FjaGVJZGVu dGlmaWVyIGNhY2hlSWQsIEhlYXBUdXBsZSB0dXAsCiAJCQkJCSAgIEF0dHJOdW1iZXIgYXR0 cmlidXRlTnVtYmVyKQogewogCWJvb2wJCWlzbnVsbDsKQEAgLTY1Miw3ICs2NTIsNyBAQCBT eXNDYWNoZUdldEF0dHJOb3ROdWxsKGludCBjYWNoZUlkLCBIZWFwVHVwbGUgdHVwLAogICog Y2F0Y2FjaGUgY29kZSB0aGF0IG5lZWQgdG8gYmUgYWJsZSB0byBjb21wdXRlIHRoZSBoYXNo IHZhbHVlcy4KICAqLwogdWludDMyCi1HZXRTeXNDYWNoZUhhc2hWYWx1ZShpbnQgY2FjaGVJ ZCwKK0dldFN5c0NhY2hlSGFzaFZhbHVlKFN5c0NhY2hlSWRlbnRpZmllciBjYWNoZUlkLAog CQkJCQkgRGF0dW0ga2V5MSwKIAkJCQkJIERhdHVtIGtleTIsCiAJCQkJCSBEYXR1bSBrZXkz LApAQCAtNjY4LDcgKzY2OCw3IEBAIEdldFN5c0NhY2hlSGFzaFZhbHVlKGludCBjYWNoZUlk LAogICogTGlzdC1zZWFyY2ggaW50ZXJmYWNlCiAgKi8KIHN0cnVjdCBjYXRjbGlzdCAqCi1T ZWFyY2hTeXNDYWNoZUxpc3QoaW50IGNhY2hlSWQsIGludCBua2V5cywKK1NlYXJjaFN5c0Nh Y2hlTGlzdChTeXNDYWNoZUlkZW50aWZpZXIgY2FjaGVJZCwgaW50IG5rZXlzLAogCQkJCSAg IERhdHVtIGtleTEsIERhdHVtIGtleTIsIERhdHVtIGtleTMpCiB7CiAJaWYgKGNhY2hlSWQg PCAwIHx8IGNhY2hlSWQgPj0gU3lzQ2FjaGVTaXplIHx8ICFTeXNDYWNoZVtjYWNoZUlkXSkK QEAgLTY4Nyw3ICs2ODcsNyBAQCBTZWFyY2hTeXNDYWNoZUxpc3QoaW50IGNhY2hlSWQsIGlu dCBua2V5cywKICAqCVRoaXMgcm91dGluZSBpcyBvbmx5IHF1YXNpLXB1YmxpYzogaXQgc2hv dWxkIG9ubHkgYmUgdXNlZCBieSBpbnZhbC5jLgogICovCiB2b2lkCi1TeXNDYWNoZUludmFs aWRhdGUoaW50IGNhY2hlSWQsIHVpbnQzMiBoYXNoVmFsdWUpCitTeXNDYWNoZUludmFsaWRh dGUoU3lzQ2FjaGVJZGVudGlmaWVyIGNhY2hlSWQsIHVpbnQzMiBoYXNoVmFsdWUpCiB7CiAJ aWYgKGNhY2hlSWQgPCAwIHx8IGNhY2hlSWQgPj0gU3lzQ2FjaGVTaXplKQogCQllbG9nKEVS Uk9SLCAiaW52YWxpZCBjYWNoZSBJRDogJWQiLCBjYWNoZUlkKTsKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3V0aWxzL3N5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9zeXNjYWNo ZS5oCmluZGV4IDEzZjQ5YWY5ZWQ0Li44MWU1OTMzNzA4ZSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvdXRpbHMvc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9zeXNjYWNo ZS5oCkBAIC0yNSwzNSArMjUsMzUgQEAKIGV4dGVybiB2b2lkIEluaXRDYXRhbG9nQ2FjaGUo dm9pZCk7CiBleHRlcm4gdm9pZCBJbml0Q2F0YWxvZ0NhY2hlUGhhc2UyKHZvaWQpOwogCi1l eHRlcm4gSGVhcFR1cGxlIFNlYXJjaFN5c0NhY2hlKGludCBjYWNoZUlkLAorZXh0ZXJuIEhl YXBUdXBsZSBTZWFyY2hTeXNDYWNoZShTeXNDYWNoZUlkZW50aWZpZXIgY2FjaGVJZCwKIAkJ CQkJCQkJRGF0dW0ga2V5MSwgRGF0dW0ga2V5MiwgRGF0dW0ga2V5MywgRGF0dW0ga2V5NCk7 CiAKIC8qCiAgKiBUaGUgdXNlIG9mIGFyZ3VtZW50IHNwZWNpZmljIG51bWJlcnMgaXMgZW5j b3VyYWdlZC4gVGhleSdyZSBmYXN0ZXIsIGFuZAogICogaW5zdWxhdGVzIHRoZSBjYWxsZXIg ZnJvbSBjaGFuZ2VzIGluIHRoZSBtYXhpbXVtIG51bWJlciBvZiBrZXlzLgogICovCi1leHRl cm4gSGVhcFR1cGxlIFNlYXJjaFN5c0NhY2hlMShpbnQgY2FjaGVJZCwKK2V4dGVybiBIZWFw VHVwbGUgU2VhcmNoU3lzQ2FjaGUxKFN5c0NhY2hlSWRlbnRpZmllciBjYWNoZUlkLAogCQkJ CQkJCQkgRGF0dW0ga2V5MSk7Ci1leHRlcm4gSGVhcFR1cGxlIFNlYXJjaFN5c0NhY2hlMihp bnQgY2FjaGVJZCwKK2V4dGVybiBIZWFwVHVwbGUgU2VhcmNoU3lzQ2FjaGUyKFN5c0NhY2hl SWRlbnRpZmllciBjYWNoZUlkLAogCQkJCQkJCQkgRGF0dW0ga2V5MSwgRGF0dW0ga2V5Mik7 Ci1leHRlcm4gSGVhcFR1cGxlIFNlYXJjaFN5c0NhY2hlMyhpbnQgY2FjaGVJZCwKK2V4dGVy biBIZWFwVHVwbGUgU2VhcmNoU3lzQ2FjaGUzKFN5c0NhY2hlSWRlbnRpZmllciBjYWNoZUlk LAogCQkJCQkJCQkgRGF0dW0ga2V5MSwgRGF0dW0ga2V5MiwgRGF0dW0ga2V5Myk7Ci1leHRl cm4gSGVhcFR1cGxlIFNlYXJjaFN5c0NhY2hlNChpbnQgY2FjaGVJZCwKK2V4dGVybiBIZWFw VHVwbGUgU2VhcmNoU3lzQ2FjaGU0KFN5c0NhY2hlSWRlbnRpZmllciBjYWNoZUlkLAogCQkJ CQkJCQkgRGF0dW0ga2V5MSwgRGF0dW0ga2V5MiwgRGF0dW0ga2V5MywgRGF0dW0ga2V5NCk7 CiAKIGV4dGVybiB2b2lkIFJlbGVhc2VTeXNDYWNoZShIZWFwVHVwbGUgdHVwbGUpOwogCi1l eHRlcm4gSGVhcFR1cGxlIFNlYXJjaFN5c0NhY2hlTG9ja2VkMShpbnQgY2FjaGVJZCwKK2V4 dGVybiBIZWFwVHVwbGUgU2VhcmNoU3lzQ2FjaGVMb2NrZWQxKFN5c0NhY2hlSWRlbnRpZmll ciBjYWNoZUlkLAogCQkJCQkJCQkJICAgRGF0dW0ga2V5MSk7CiAKIC8qIGNvbnZlbmllbmNl IHJvdXRpbmVzICovCi1leHRlcm4gSGVhcFR1cGxlIFNlYXJjaFN5c0NhY2hlQ29weShpbnQg Y2FjaGVJZCwKK2V4dGVybiBIZWFwVHVwbGUgU2VhcmNoU3lzQ2FjaGVDb3B5KFN5c0NhY2hl SWRlbnRpZmllciBjYWNoZUlkLAogCQkJCQkJCQkJRGF0dW0ga2V5MSwgRGF0dW0ga2V5Miwg RGF0dW0ga2V5MywgRGF0dW0ga2V5NCk7Ci1leHRlcm4gSGVhcFR1cGxlIFNlYXJjaFN5c0Nh Y2hlTG9ja2VkQ29weTEoaW50IGNhY2hlSWQsCitleHRlcm4gSGVhcFR1cGxlIFNlYXJjaFN5 c0NhY2hlTG9ja2VkQ29weTEoU3lzQ2FjaGVJZGVudGlmaWVyIGNhY2hlSWQsCiAJCQkJCQkJ CQkJICAgRGF0dW0ga2V5MSk7Ci1leHRlcm4gYm9vbCBTZWFyY2hTeXNDYWNoZUV4aXN0cyhp bnQgY2FjaGVJZCwKK2V4dGVybiBib29sIFNlYXJjaFN5c0NhY2hlRXhpc3RzKFN5c0NhY2hl SWRlbnRpZmllciBjYWNoZUlkLAogCQkJCQkJCQkgRGF0dW0ga2V5MSwgRGF0dW0ga2V5Miwg RGF0dW0ga2V5MywgRGF0dW0ga2V5NCk7Ci1leHRlcm4gT2lkCUdldFN5c0NhY2hlT2lkKGlu dCBjYWNoZUlkLCBBdHRyTnVtYmVyIG9pZGNvbCwKK2V4dGVybiBPaWQJR2V0U3lzQ2FjaGVP aWQoU3lzQ2FjaGVJZGVudGlmaWVyIGNhY2hlSWQsIEF0dHJOdW1iZXIgb2lkY29sLAogCQkJ CQkJICAgRGF0dW0ga2V5MSwgRGF0dW0ga2V5MiwgRGF0dW0ga2V5MywgRGF0dW0ga2V5NCk7 CiAKIGV4dGVybiBIZWFwVHVwbGUgU2VhcmNoU3lzQ2FjaGVBdHROYW1lKE9pZCByZWxpZCwg Y29uc3QgY2hhciAqYXR0bmFtZSk7CkBAIC02MywyMSArNjMsMjEgQEAgZXh0ZXJuIGJvb2wg U2VhcmNoU3lzQ2FjaGVFeGlzdHNBdHROYW1lKE9pZCByZWxpZCwgY29uc3QgY2hhciAqYXR0 bmFtZSk7CiBleHRlcm4gSGVhcFR1cGxlIFNlYXJjaFN5c0NhY2hlQXR0TnVtKE9pZCByZWxp ZCwgaW50MTYgYXR0bnVtKTsKIGV4dGVybiBIZWFwVHVwbGUgU2VhcmNoU3lzQ2FjaGVDb3B5 QXR0TnVtKE9pZCByZWxpZCwgaW50MTYgYXR0bnVtKTsKIAotZXh0ZXJuIERhdHVtIFN5c0Nh Y2hlR2V0QXR0cihpbnQgY2FjaGVJZCwgSGVhcFR1cGxlIHR1cCwKK2V4dGVybiBEYXR1bSBT eXNDYWNoZUdldEF0dHIoU3lzQ2FjaGVJZGVudGlmaWVyIGNhY2hlSWQsIEhlYXBUdXBsZSB0 dXAsCiAJCQkJCQkJIEF0dHJOdW1iZXIgYXR0cmlidXRlTnVtYmVyLCBib29sICppc051bGwp OwogCi1leHRlcm4gRGF0dW0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChpbnQgY2FjaGVJZCwg SGVhcFR1cGxlIHR1cCwKK2V4dGVybiBEYXR1bSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKFN5 c0NhY2hlSWRlbnRpZmllciBjYWNoZUlkLCBIZWFwVHVwbGUgdHVwLAogCQkJCQkJCQkJQXR0 ck51bWJlciBhdHRyaWJ1dGVOdW1iZXIpOwogCi1leHRlcm4gdWludDMyIEdldFN5c0NhY2hl SGFzaFZhbHVlKGludCBjYWNoZUlkLAorZXh0ZXJuIHVpbnQzMiBHZXRTeXNDYWNoZUhhc2hW YWx1ZShTeXNDYWNoZUlkZW50aWZpZXIgY2FjaGVJZCwKIAkJCQkJCQkJICAgRGF0dW0ga2V5 MSwgRGF0dW0ga2V5MiwgRGF0dW0ga2V5MywgRGF0dW0ga2V5NCk7CiAKIC8qIGxpc3Qtc2Vh cmNoIGludGVyZmFjZS4gIFVzZXJzIG9mIHRoaXMgbXVzdCBpbXBvcnQgY2F0Y2FjaGUuaCB0 b28gKi8KIHN0cnVjdCBjYXRjbGlzdDsKLWV4dGVybiBzdHJ1Y3QgY2F0Y2xpc3QgKlNlYXJj aFN5c0NhY2hlTGlzdChpbnQgY2FjaGVJZCwgaW50IG5rZXlzLAorZXh0ZXJuIHN0cnVjdCBj YXRjbGlzdCAqU2VhcmNoU3lzQ2FjaGVMaXN0KFN5c0NhY2hlSWRlbnRpZmllciBjYWNoZUlk LCBpbnQgbmtleXMsCiAJCQkJCQkJCQkJICAgRGF0dW0ga2V5MSwgRGF0dW0ga2V5MiwgRGF0 dW0ga2V5Myk7CiAKLWV4dGVybiB2b2lkIFN5c0NhY2hlSW52YWxpZGF0ZShpbnQgY2FjaGVJ ZCwgdWludDMyIGhhc2hWYWx1ZSk7CitleHRlcm4gdm9pZCBTeXNDYWNoZUludmFsaWRhdGUo U3lzQ2FjaGVJZGVudGlmaWVyIGNhY2hlSWQsIHVpbnQzMiBoYXNoVmFsdWUpOwogCiBleHRl cm4gYm9vbCBSZWxhdGlvbkludmFsaWRhdGVzU25hcHNob3RzT25seShPaWQgcmVsaWQpOwog ZXh0ZXJuIGJvb2wgUmVsYXRpb25IYXNTeXNDYWNoZShPaWQgcmVsaWQpOwotLSAKMi40Ny4z Cgo= --------------oz7fppAWh90qR2eU663THm1F--