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 1vkQJP-00EtbJ-32 for pgsql-hackers@arkaria.postgresql.org; Mon, 26 Jan 2026 17:23:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vkQJO-009egZ-18 for pgsql-hackers@arkaria.postgresql.org; Mon, 26 Jan 2026 17:23:38 +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 1vkQJN-009egM-20 for pgsql-hackers@lists.postgresql.org; Mon, 26 Jan 2026 17:23:38 +0000 Received: from mail-4318.protonmail.ch ([185.70.43.18]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vkQJJ-002Qcd-0v for pgsql-hackers@postgresql.org; Mon, 26 Jan 2026 17:23:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pinaraf.info; s=protonmail; t=1769448205; x=1769707405; bh=MU1qdGHwLlQG2N5QOKVa1QSwqyVx1Ocbu6/YUEYgRx0=; h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=SAyKWnL9oqYr4+JRgQjqEryJeaQhiayTckj6EUe1bLFsW/1LfScs6i1dm4Vd4b5jq 2E+773SxFI2IPqLSO+TuX5OaOWEJ6VcaipulaTSx5s2nLzDjvtWb1oYWgCqmsAHq7K bT0im2c4II+4x9iDeCdimsO7eo8FPEiYOXX+d7BM1wk8W06v49whtOgNs/J5h5zcsz QV/5Uc/oI3S+tplElimLrraeIWTjJDh/e5HUtoqtXxJbjlkCuJzMbmkgNDVAmXn8jv 1/czP0vj6KTU1l/sRp8VW0pHcb+z1JlBXic496ZlOuja+A0bDMS/qQbRma6CQTXMGp ajXlooSfhSTEA== Date: Mon, 26 Jan 2026 17:23:23 +0000 To: PostgreSQL Hackers From: Pierre Ducroquet Subject: LLVMJIT: introduce force-inlined functions Message-ID: <0ZWNQh_SmV9oIbQW9PIXIfsTPKp6-7glTtLq-jntPv9orZTvG-XTTnvDkyrB86TqEWbNCmDqJU-MIZX3QbyuWtALC7mhZGPjMrCg1pxoyYk=@pinaraf.info> Feedback-ID: 175348558:user:proton X-Pm-Message-ID: 69b322f120ff1337d1cefefd84bf67bbbeffb86c MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1=_d0OXE5LqA3SNsSrMENvFfkmkIC1HkaWuTW4k" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --b1=_d0OXE5LqA3SNsSrMENvFfkmkIC1HkaWuTW4k Content-Type: multipart/alternative; boundary="b2=_d0OXE5LqA3SNsSrMENvFfkmkIC1HkaWuTW4k" --b2=_d0OXE5LqA3SNsSrMENvFfkmkIC1HkaWuTW4k Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SGkKCkEgYnVuY2ggb2YgZnVuY3Rpb25zIGFyZSB0aGUgbW9zdCB1c2VkIGluIHF1ZXJpZXMuIFRo ZSBsbHZtaml0IGlubGluaW5nIHN5c3RlbSAodHJpZXMgdG8pIGdldCByaWQgb2YgdGhlIG92ZXJo ZWFkIG9mIGNhbGxpbmcgYW55IGZ1bmN0aW9uLCBidXQgdGhpcyBpcyB0cmlnZ2VyZWQgb25seSB3 aGVuIHRoZSBjb3N0IGlzIGFib3ZlIGppdF9pbmxpbmVfYWJvdmVfY29zdC4gVGhlcmUgaXMgdGh1 cyBhIG5pY2UgcGVyZm9ybWFuY2UgYm9vc3QgdG8gaGF2ZSBieSBjaG9vc2luZyB0byAibWFudWFs bHkiIGlubGluZSBhIGZldyBzcGVjaWZpYyBQb3N0Z3JlU1FMIGZ1bmN0aW9ucy4KSW4gdGhpcyBm aXJzdCBwYXRjaCwgSSd2ZSBjaG9zZW4gdG8gaW5saW5lIGludDRlcSwgaW50OGVxIGFuZCBtb3N0 IGRhdGUgY29tcGFyaXNvbiBmdW5jdGlvbnMuClRoZXkgYXJlIGRlZmluaXRlbHkgc21hbGwsIHRo ZSBnZW5lcmF0ZWQgY29kZSBpcyBub3QgYmlnZ2VyIHdoZW4gaW5saW5pbmcgdGhlbSAoc3VycHJp c2luZ2x5LCBvbiBhbWQ2NCB0aGUgY29kZSBpcyBldmVuIHNtYWxsZXIpIGFuZCBhcmUgdW5saWtl bHkgdG8gZXZlciBjaGFuZ2Ugc28gdGhlcmUgd29uJ3QgYmUgYW55IG1haW50ZW5hbmNlIGJ1cmRl biBoZXJlLgpPbiBteSBBTUQgMzkwMFhUIHN5c3RlbSwgdGhpcyBnaXZlcyBtZSBhIDMgdG8gNSUg cGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgd2hlbiBydW5uaW5nIDFNIGRhdGVlcSBjYWxscy4KSSB3 aWxsIGxpa2VseSBzdWJtaXQgYSBzZWNvbmQgcGF0Y2ggdmVyc2lvbiBsYXRlciB3aXRoIG1vcmUg ZnVuY3Rpb25zIGltcGxlbWVudGVkLCBidXQgSSB0aG91Z2h0IHRoaXMgd2FzIGFuIGludGVyZXN0 aW5nIGZpcnN0IHJlc3VsdCB3b3J0aCBkaXNjdXNzaW5nIGFscmVhZHkuCgpSZWdhcmRz --b2=_d0OXE5LqA3SNsSrMENvFfkmkIC1HkaWuTW4k Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0 cHg7Ij5IaTwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsg Zm9udC1zaXplOiAxNHB4OyI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlh bCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyI+QSBidW5jaCBvZiBmdW5jdGlvbnMgYXJl IHRoZSBtb3N0IHVzZWQgaW4gcXVlcmllcy4gVGhlIGxsdm1qaXQgaW5saW5pbmcgc3lzdGVtICh0 cmllcyB0bykgZ2V0IHJpZCBvZiB0aGUgb3ZlcmhlYWQgb2YgY2FsbGluZyBhbnkgZnVuY3Rpb24s IGJ1dCB0aGlzIGlzIHRyaWdnZXJlZCBvbmx5IHdoZW4gdGhlIGNvc3QgaXMgYWJvdmUgaml0X2lu bGluZV9hYm92ZV9jb3N0LiBUaGVyZSBpcyB0aHVzIGEgbmljZSBwZXJmb3JtYW5jZSBib29zdCB0 byBoYXZlIGJ5IGNob29zaW5nIHRvICJtYW51YWxseSIgaW5saW5lIGEgZmV3IHNwZWNpZmljIFBv c3RncmVTUUwgZnVuY3Rpb25zLjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlhbCwg c2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyI+SW4gdGhpcyBmaXJzdCBwYXRjaCwgSSd2ZSBj aG9zZW4gdG8gaW5saW5lIGludDRlcSwgaW50OGVxIGFuZCBtb3N0IGRhdGUgY29tcGFyaXNvbiBm dW5jdGlvbnMuPC9kaXY+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlm OyBmb250LXNpemU6IDE0cHg7Ij5UaGV5IGFyZSBkZWZpbml0ZWx5IHNtYWxsLCB0aGUgZ2VuZXJh dGVkIGNvZGUgaXMgbm90IGJpZ2dlciB3aGVuIGlubGluaW5nIHRoZW0gKHN1cnByaXNpbmdseSwg b24gYW1kNjQgdGhlIGNvZGUgaXMgZXZlbiBzbWFsbGVyKSBhbmQgYXJlIHVubGlrZWx5IHRvIGV2 ZXIgY2hhbmdlIHNvIHRoZXJlIHdvbid0IGJlIGFueSBtYWludGVuYW5jZSBidXJkZW4gaGVyZS48 L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6 ZTogMTRweDsiPk9uIG15IEFNRCAzOTAwWFQgc3lzdGVtLCB0aGlzIGdpdmVzIG1lIGEgMyB0byA1 JSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCB3aGVuIHJ1bm5pbmcgMU0gZGF0ZWVxIGNhbGxzLjwv ZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXpl OiAxNHB4OyI+SSB3aWxsIGxpa2VseSBzdWJtaXQgYSBzZWNvbmQgcGF0Y2ggdmVyc2lvbiBsYXRl ciB3aXRoIG1vcmUgZnVuY3Rpb25zIGltcGxlbWVudGVkLCBidXQgSSB0aG91Z2h0IHRoaXMgd2Fz IGFuIGludGVyZXN0aW5nIGZpcnN0IHJlc3VsdCB3b3J0aCBkaXNjdXNzaW5nIGFscmVhZHkuPC9k aXY+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6 IDE0cHg7Ij48YnI+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNl cmlmOyBmb250LXNpemU6IDE0cHg7Ij5SZWdhcmRzPC9kaXY+PGRpdiBzdHlsZT0iZm9udC1mYW1p bHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7IiBjbGFzcz0icHJvdG9ubWFp bF9zaWduYXR1cmVfYmxvY2sgIj4NCjwvZGl2Pg0K --b2=_d0OXE5LqA3SNsSrMENvFfkmkIC1HkaWuTW4k-- --b1=_d0OXE5LqA3SNsSrMENvFfkmkIC1HkaWuTW4k Content-Type: text/x-patch; name=0001-llvmjit-introduce-force-inlined-functions.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0001-llvmjit-introduce-force-inlined-functions.patch RnJvbSA0M2Q0ZjQyY2MwN2ViMGY3Y2E1Y2NiMDY0ODBhY2NlMDI2OTVmNGZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaWVycmUgRHVjcm9xdWV0IDxwaW5hcmFmQHBpbmFyYWYuaW5m bz4KRGF0ZTogRnJpLCAyMyBKYW4gMjAyNiAxNzoyOTowMiArMDEwMApTdWJqZWN0OiBbUEFUQ0hd IGxsdm1qaXQ6IGludHJvZHVjZSBmb3JjZS1pbmxpbmVkIGZ1bmN0aW9ucwoKQSBmZXcgZnVuY3Rp b25zIGFyZSwgYnkgZmFyLCB0aGUgbW9zdCB1c2VkIGZ1bmN0aW9ucyBpbiBQb3N0Z3JlU1FMCnF1 ZXJpZXMuIFRoZXNlIGFyZSBjb21wYXJpc29uIGZ1bmN0aW9ucyAobW9zdGx5IGludGVnZXIgYW5k IGRhdGUpLgpUb2RheSwgd2hlbiB1c2luZyB0aGVzZSB0aHJvdWdoIGxsdm1qaXQsIGlmIHdlIGFy ZSBub3QgYWJvdmUKaml0X2lubGluZV9hYm92ZV9jb3N0LCB0aGVzZSBhcmUgbm90IGlubGluZWQs IGFuZCB0aHVzIHN1ZmZlciB0aGUKY29zdCBvZiB0aGUgZm1nciBmdW5jdGlvbiBjYWxsICJBQkki LCBhbmQgYXJlIGJsYWNrYm94ZXMgdG8gdGhlIExMVk0Kb3B0aW1pemVyLCBldmVuIHdoZW4gcnVu bmluZyB3aXRoIE8wLgpNb3Jlb3ZlciwgdGhlc2UgZnVuY3Rpb25zIGFyZSBzaG9ydCBlbm91Z2gg dGhhdCBhbHdheXMgaW5saW5pbmcgdGhlbQpkb2VzIG5vdCBpbmNyZWFzZSB0aGUgZ2VuZXJhdGVk IGNvZGUgc2l6ZS4gT24gYW1kNjQsIHRoZSBjb2RlIGlzCmluY3JlYXNlZCBieSBvbmUgaW5zdHJ1 Y3Rpb24gYnV0IHJlZHVjZWQgYnkgMTEgYnl0ZXMsIHNvIHRoaXMgZG9lcwpub3QgbWF0dGVyIG11 Y2guCgpCdXQgc2luY2UgdGhpcyBhbGxvd3MgYSBuZXQgcmVkdWN0aW9uIGluIG1lbW9yeSBhY2Nl c3NlcywgdGhlcmUgYXJlCmltbWVkaWF0ZSBiZW5lZml0cyB0byB0aGlzLCBhbmQgdGhlIGNvbXBp bGF0aW9uIHRpbWUgaW1wYWN0IGlzIG5vdAptZWFzdXJhYmxlLgoKT24gbXkgQU1EIDM5MDBYVCBz eXN0ZW0sIG9uIGEgc2ltcGxlIHF1ZXJ5IHJ1bm5pbmcgMSBtaWxsaW9uIGRhdGVlcSwKSSBnZXQg YSAzLjUgdG8gNSUgc3BlZWQgaW5jcmVhc2UsIGV2ZW4gYWdhaW5zdCB0aGUgY3VycmVudCBpbmxp bmluZwpzeXN0ZW0uCgpOb3RlIHRoYXQgdGhpcyBpcyB0aGUgZmlyc3QgdmVyc2lvbiBvZiB0aGlz IHBhdGNoLCBJIHBsYW4gdG8gYWRkIG1vcmUKZnVuY3Rpb25zLCBidXQgSSBhbSBjYXJlZnVsIHdp dGggZWFjaCBvbmUgYWRkZWQgbm90IHRvIGhhdmUgYSBuZWdhdGl2ZQppbXBhY3Qgb24gdGhlIGdl bmVyYXRlZCBtYWNoaW5lIGNvZGUuCi0tLQogc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9l eHByLmMgfCAxMDcgKysrKysrKysrKysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQs IDEwMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWpp dF9leHByLmMKaW5kZXggNjUwZjFkNDJhOTMuLjUyOGFkZjJjZTcyIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9qaXQvbGx2 bS9sbHZtaml0X2V4cHIuYwpAQCAtNzAsNiArNzAsMTAyIEBAIHN0YXRpYyBMTFZNVmFsdWVSZWYg Y3JlYXRlX0xpZmV0aW1lRW5kKExMVk1Nb2R1bGVSZWYgbW9kKTsKIAkJCQkJICAgbGVuZ3Rob2Yo KChMTFZNVmFsdWVSZWZbXSl7X19WQV9BUkdTX199KSksIFwKIAkJCQkJICAgKChMTFZNVmFsdWVS ZWZbXSl7X19WQV9BUkdTX199KSkKIAorc3RhdGljIGJvb2wKK2xsdm1fdHJ5X2lubGluZV9mdW5j dGlvbl9jYWxsKExMVk1CdWlsZGVyUmVmIGIsIEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBMTFZN VmFsdWVSZWYgdl9yZXN2YWx1ZXAsIExMVk1WYWx1ZVJlZiB2X3Jlc251bGxwKQoreworCUxMVk1W YWx1ZVJlZiB2X2ZjaW5mbywgdl9yZXR2YWw7CisJdl9mY2luZm8gPSBsX3B0cl9jb25zdChmY2lu Zm8sIGxfcHRyKFN0cnVjdEZ1bmN0aW9uQ2FsbEluZm9EYXRhKSk7CisJaWYgKGZjaW5mby0+Zmxp bmZvLT5mbl9hZGRyID09ICZpbnQ0ZXEpIHsKKwkJLyogbG9hZCBhcmcgMSAqLworCQlMTFZNVmFs dWVSZWYgYXJnMF9wdHIgPSBsX2Z1bmN2YWx1ZXAoYiwgdl9mY2luZm8sIDApOworCQlMTFZNVmFs dWVSZWYgYXJnMCA9IExMVk1CdWlsZExvYWQyKGIsIExMVk1JbnQ2NFR5cGUoKSwgYXJnMF9wdHIs ICJhcmcwXzY0Iik7CisJCUxMVk1WYWx1ZVJlZiBhcmcwX3RydW5jYXRlZCA9IExMVk1CdWlsZFRy dW5jKGIsIGFyZzAsIExMVk1JbnQzMlR5cGUoKSwgImFyZzBfMzIiKTsKKwkJLyogbG9hZCBhcmcg MiAqLworCQlMTFZNVmFsdWVSZWYgYXJnMV9wdHIgPSBsX2Z1bmN2YWx1ZXAoYiwgdl9mY2luZm8s IDEpOworCQlMTFZNVmFsdWVSZWYgYXJnMSA9IExMVk1CdWlsZExvYWQyKGIsIExMVk1JbnQ2NFR5 cGUoKSwgYXJnMV9wdHIsICJhcmcxXzY0Iik7CisJCUxMVk1WYWx1ZVJlZiBhcmcxX3RydW5jYXRl ZCA9IExMVk1CdWlsZFRydW5jKGIsIGFyZzEsIExMVk1JbnQzMlR5cGUoKSwgImFyZzFfMzIiKTsK KwkJLyogY29tcGFyZSBhbmQgY29udmVydCByZXN1bHQgKi8KKwkJTExWTVZhbHVlUmVmIGNtcCA9 IExMVk1CdWlsZElDbXAoYiwgTExWTUludEVRLCBhcmcwX3RydW5jYXRlZCwgYXJnMV90cnVuY2F0 ZWQsICJpbnRfZXEiKTsKKwkJdl9yZXR2YWwgPSBMTFZNQnVpbGRaRXh0KGIsIGNtcCwgTExWTUlu dDY0VHlwZSgpLCAiaW50X2VxX2V4dCIpOworCQlMTFZNQnVpbGRTdG9yZShiLCB2X3JldHZhbCwg dl9yZXN2YWx1ZXApOworCQlMTFZNQnVpbGRTdG9yZShiLCBsX3Nib29sX2NvbnN0KDApLCB2X3Jl c251bGxwKTsKKwkJcmV0dXJuIHRydWU7CisJfSBlbHNlIGlmIChmY2luZm8tPmZsaW5mby0+Zm5f YWRkciA9PSAmaW50OGVxKSB7CisJCS8qIGxvYWQgYXJnIDAgKi8KKwkJTExWTVZhbHVlUmVmIGFy ZzBfcHRyID0gbF9mdW5jdmFsdWVwKGIsIHZfZmNpbmZvLCAwKTsKKwkJTExWTVZhbHVlUmVmIGFy ZzAgPSBMTFZNQnVpbGRMb2FkMihiLCBMTFZNSW50NjRUeXBlKCksIGFyZzBfcHRyLCAiYXJnMF82 NCIpOworCQkvKiBsb2FkIGFyZyAxICovCisJCUxMVk1WYWx1ZVJlZiBhcmcxX3B0ciA9IGxfZnVu Y3ZhbHVlcChiLCB2X2ZjaW5mbywgMSk7CisJCUxMVk1WYWx1ZVJlZiBhcmcxID0gTExWTUJ1aWxk TG9hZDIoYiwgTExWTUludDY0VHlwZSgpLCBhcmcxX3B0ciwgImFyZzFfNjQiKTsKKwkJLyogY29t cGFyZSBhbmQgY29udmVydCByZXN1bHQgKi8KKwkJTExWTVZhbHVlUmVmIGNtcCA9IExMVk1CdWls ZElDbXAoYiwgTExWTUludEVRLCBhcmcwLCBhcmcxLCAiaW50X2VxIik7CisJCXZfcmV0dmFsID0g TExWTUJ1aWxkWkV4dChiLCBjbXAsIExMVk1JbnQ2NFR5cGUoKSwgImludF9lcV9leHQiKTsKKwkJ TExWTUJ1aWxkU3RvcmUoYiwgdl9yZXR2YWwsIHZfcmVzdmFsdWVwKTsKKwkJTExWTUJ1aWxkU3Rv cmUoYiwgbF9zYm9vbF9jb25zdCgwKSwgdl9yZXNudWxscCk7CisJCXJldHVybiB0cnVlOworCX0g ZWxzZSBpZiAoZmNpbmZvLT5mbGluZm8tPmZuX2FkZHIgPT0gJmRhdGVfbHQpIHsKKwkJLyogbG9h ZCBhcmcgMSAqLworCQlMTFZNVmFsdWVSZWYgYXJnMF9wdHIgPSBsX2Z1bmN2YWx1ZXAoYiwgdl9m Y2luZm8sIDApOworCQlMTFZNVmFsdWVSZWYgYXJnMCA9IExMVk1CdWlsZExvYWQyKGIsIExMVk1J bnQ2NFR5cGUoKSwgYXJnMF9wdHIsICJhcmcwXzY0Iik7CisJCUxMVk1WYWx1ZVJlZiBhcmcwX3Ry dW5jYXRlZCA9IExMVk1CdWlsZFRydW5jKGIsIGFyZzAsIExMVk1JbnQzMlR5cGUoKSwgImFyZzBf MzIiKTsKKwkJLyogbG9hZCBhcmcgMiAqLworCQlMTFZNVmFsdWVSZWYgYXJnMV9wdHIgPSBsX2Z1 bmN2YWx1ZXAoYiwgdl9mY2luZm8sIDEpOworCQlMTFZNVmFsdWVSZWYgYXJnMSA9IExMVk1CdWls ZExvYWQyKGIsIExMVk1JbnQ2NFR5cGUoKSwgYXJnMV9wdHIsICJhcmcxXzY0Iik7CisJCUxMVk1W YWx1ZVJlZiBhcmcxX3RydW5jYXRlZCA9IExMVk1CdWlsZFRydW5jKGIsIGFyZzEsIExMVk1JbnQz MlR5cGUoKSwgImFyZzFfMzIiKTsKKwkJLyogY29tcGFyZSBhbmQgY29udmVydCByZXN1bHQgKi8K KwkJTExWTVZhbHVlUmVmIGNtcCA9IExMVk1CdWlsZElDbXAoYiwgTExWTUludFNMVCwgYXJnMF90 cnVuY2F0ZWQsIGFyZzFfdHJ1bmNhdGVkLCAiZGF0ZV9sdCIpOworCQl2X3JldHZhbCA9IExMVk1C dWlsZFpFeHQoYiwgY21wLCBMTFZNSW50NjRUeXBlKCksICJpbnRfZXFfZXh0Iik7CisJCUxMVk1C dWlsZFN0b3JlKGIsIHZfcmV0dmFsLCB2X3Jlc3ZhbHVlcCk7CisJCUxMVk1CdWlsZFN0b3JlKGIs IGxfc2Jvb2xfY29uc3QoMCksIHZfcmVzbnVsbHApOworCQlyZXR1cm4gdHJ1ZTsKKwl9IGVsc2Ug aWYgKGZjaW5mby0+ZmxpbmZvLT5mbl9hZGRyID09ICZkYXRlX2d0KSB7CisJCS8qIGxvYWQgYXJn IDEgKi8KKwkJTExWTVZhbHVlUmVmIGFyZzBfcHRyID0gbF9mdW5jdmFsdWVwKGIsIHZfZmNpbmZv LCAwKTsKKwkJTExWTVZhbHVlUmVmIGFyZzAgPSBMTFZNQnVpbGRMb2FkMihiLCBMTFZNSW50NjRU eXBlKCksIGFyZzBfcHRyLCAiYXJnMF82NCIpOworCQlMTFZNVmFsdWVSZWYgYXJnMF90cnVuY2F0 ZWQgPSBMTFZNQnVpbGRUcnVuYyhiLCBhcmcwLCBMTFZNSW50MzJUeXBlKCksICJhcmcwXzMyIik7 CisJCS8qIGxvYWQgYXJnIDIgKi8KKwkJTExWTVZhbHVlUmVmIGFyZzFfcHRyID0gbF9mdW5jdmFs dWVwKGIsIHZfZmNpbmZvLCAxKTsKKwkJTExWTVZhbHVlUmVmIGFyZzEgPSBMTFZNQnVpbGRMb2Fk MihiLCBMTFZNSW50NjRUeXBlKCksIGFyZzFfcHRyLCAiYXJnMV82NCIpOworCQlMTFZNVmFsdWVS ZWYgYXJnMV90cnVuY2F0ZWQgPSBMTFZNQnVpbGRUcnVuYyhiLCBhcmcxLCBMTFZNSW50MzJUeXBl KCksICJhcmcxXzMyIik7CisJCS8qIGNvbXBhcmUgYW5kIGNvbnZlcnQgcmVzdWx0ICovCisJCUxM Vk1WYWx1ZVJlZiBjbXAgPSBMTFZNQnVpbGRJQ21wKGIsIExMVk1JbnRTR1QsIGFyZzBfdHJ1bmNh dGVkLCBhcmcxX3RydW5jYXRlZCwgImRhdGVfZ3QiKTsKKwkJdl9yZXR2YWwgPSBMTFZNQnVpbGRa RXh0KGIsIGNtcCwgTExWTUludDY0VHlwZSgpLCAiaW50X2VxX2V4dCIpOworCQlMTFZNQnVpbGRT dG9yZShiLCB2X3JldHZhbCwgdl9yZXN2YWx1ZXApOworCQlMTFZNQnVpbGRTdG9yZShiLCBsX3Ni b29sX2NvbnN0KDApLCB2X3Jlc251bGxwKTsKKwkJcmV0dXJuIHRydWU7CisJfSBlbHNlIGlmIChm Y2luZm8tPmZsaW5mby0+Zm5fYWRkciA9PSAmZGF0ZV9sZSkgeworCQkvKiBsb2FkIGFyZyAxICov CisJCUxMVk1WYWx1ZVJlZiBhcmcwX3B0ciA9IGxfZnVuY3ZhbHVlcChiLCB2X2ZjaW5mbywgMCk7 CisJCUxMVk1WYWx1ZVJlZiBhcmcwID0gTExWTUJ1aWxkTG9hZDIoYiwgTExWTUludDY0VHlwZSgp LCBhcmcwX3B0ciwgImFyZzBfNjQiKTsKKwkJTExWTVZhbHVlUmVmIGFyZzBfdHJ1bmNhdGVkID0g TExWTUJ1aWxkVHJ1bmMoYiwgYXJnMCwgTExWTUludDMyVHlwZSgpLCAiYXJnMF8zMiIpOworCQkv KiBsb2FkIGFyZyAyICovCisJCUxMVk1WYWx1ZVJlZiBhcmcxX3B0ciA9IGxfZnVuY3ZhbHVlcChi LCB2X2ZjaW5mbywgMSk7CisJCUxMVk1WYWx1ZVJlZiBhcmcxID0gTExWTUJ1aWxkTG9hZDIoYiwg TExWTUludDY0VHlwZSgpLCBhcmcxX3B0ciwgImFyZzFfNjQiKTsKKwkJTExWTVZhbHVlUmVmIGFy ZzFfdHJ1bmNhdGVkID0gTExWTUJ1aWxkVHJ1bmMoYiwgYXJnMSwgTExWTUludDMyVHlwZSgpLCAi YXJnMV8zMiIpOworCQkvKiBjb21wYXJlIGFuZCBjb252ZXJ0IHJlc3VsdCAqLworCQlMTFZNVmFs dWVSZWYgY21wID0gTExWTUJ1aWxkSUNtcChiLCBMTFZNSW50U0xFLCBhcmcwX3RydW5jYXRlZCwg YXJnMV90cnVuY2F0ZWQsICJkYXRlX2xlIik7CisJCXZfcmV0dmFsID0gTExWTUJ1aWxkWkV4dChi LCBjbXAsIExMVk1JbnQ2NFR5cGUoKSwgImludF9lcV9leHQiKTsKKwkJTExWTUJ1aWxkU3RvcmUo Yiwgdl9yZXR2YWwsIHZfcmVzdmFsdWVwKTsKKwkJTExWTUJ1aWxkU3RvcmUoYiwgbF9zYm9vbF9j b25zdCgwKSwgdl9yZXNudWxscCk7CisJCXJldHVybiB0cnVlOworCX0gZWxzZSBpZiAoZmNpbmZv LT5mbGluZm8tPmZuX2FkZHIgPT0gJmRhdGVfZ2UpIHsKKwkJLyogbG9hZCBhcmcgMSAqLworCQlM TFZNVmFsdWVSZWYgYXJnMF9wdHIgPSBsX2Z1bmN2YWx1ZXAoYiwgdl9mY2luZm8sIDApOworCQlM TFZNVmFsdWVSZWYgYXJnMCA9IExMVk1CdWlsZExvYWQyKGIsIExMVk1JbnQ2NFR5cGUoKSwgYXJn MF9wdHIsICJhcmcwXzY0Iik7CisJCUxMVk1WYWx1ZVJlZiBhcmcwX3RydW5jYXRlZCA9IExMVk1C dWlsZFRydW5jKGIsIGFyZzAsIExMVk1JbnQzMlR5cGUoKSwgImFyZzBfMzIiKTsKKwkJLyogbG9h ZCBhcmcgMiAqLworCQlMTFZNVmFsdWVSZWYgYXJnMV9wdHIgPSBsX2Z1bmN2YWx1ZXAoYiwgdl9m Y2luZm8sIDEpOworCQlMTFZNVmFsdWVSZWYgYXJnMSA9IExMVk1CdWlsZExvYWQyKGIsIExMVk1J bnQ2NFR5cGUoKSwgYXJnMV9wdHIsICJhcmcxXzY0Iik7CisJCUxMVk1WYWx1ZVJlZiBhcmcxX3Ry dW5jYXRlZCA9IExMVk1CdWlsZFRydW5jKGIsIGFyZzEsIExMVk1JbnQzMlR5cGUoKSwgImFyZzFf MzIiKTsKKwkJLyogY29tcGFyZSBhbmQgY29udmVydCByZXN1bHQgKi8KKwkJTExWTVZhbHVlUmVm IGNtcCA9IExMVk1CdWlsZElDbXAoYiwgTExWTUludFNHRSwgYXJnMF90cnVuY2F0ZWQsIGFyZzFf dHJ1bmNhdGVkLCAiZGF0ZV9nZSIpOworCQl2X3JldHZhbCA9IExMVk1CdWlsZFpFeHQoYiwgY21w LCBMTFZNSW50NjRUeXBlKCksICJpbnRfZXFfZXh0Iik7CisJCUxMVk1CdWlsZFN0b3JlKGIsIHZf cmV0dmFsLCB2X3Jlc3ZhbHVlcCk7CisJCUxMVk1CdWlsZFN0b3JlKGIsIGxfc2Jvb2xfY29uc3Qo MCksIHZfcmVzbnVsbHApOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisJcmV0dXJuIGZhbHNlOworfQog CiAvKgogICogSklUIGNvbXBpbGUgZXhwcmVzc2lvbi4KQEAgLTczOSwxMCArODM1LDEzIEBAIGxs dm1fY29tcGlsZV9leHByKEV4cHJTdGF0ZSAqc3RhdGUpCiAJCQkJCQlMTFZNUG9zaXRpb25CdWls ZGVyQXRFbmQoYiwgYl9ub251bGwpOwogCQkJCQl9CiAKLQkJCQkJdl9yZXR2YWwgPSBCdWlsZFYx Q2FsbChjb250ZXh0LCBiLCBtb2QsIGZjaW5mbywKLQkJCQkJCQkJCQkgICAmdl9mY2luZm9faXNu dWxsKTsKLQkJCQkJTExWTUJ1aWxkU3RvcmUoYiwgdl9yZXR2YWwsIHZfcmVzdmFsdWVwKTsKLQkJ CQkJTExWTUJ1aWxkU3RvcmUoYiwgdl9mY2luZm9faXNudWxsLCB2X3Jlc251bGxwKTsKKwkJCQkJ aWYgKCFsbHZtX3RyeV9pbmxpbmVfZnVuY3Rpb25fY2FsbChiLCBmY2luZm8sIHZfcmVzdmFsdWVw LCB2X3Jlc251bGxwKSkgeworCQkJCQkJLyogTm8gaW5saW5pbmcgZG9uZSwgZG8gdGhlIGRpcmVj dCBjYWxsIGluc3RlYWQgKi8KKwkJCQkJCXZfcmV0dmFsID0gQnVpbGRWMUNhbGwoY29udGV4dCwg YiwgbW9kLCBmY2luZm8sCisJCQkJCQkJCQkJCSAgICZ2X2ZjaW5mb19pc251bGwpOworCQkJCQkJ TExWTUJ1aWxkU3RvcmUoYiwgdl9yZXR2YWwsIHZfcmVzdmFsdWVwKTsKKwkJCQkJCUxMVk1CdWls ZFN0b3JlKGIsIHZfZmNpbmZvX2lzbnVsbCwgdl9yZXNudWxscCk7CisJCQkJCX0KIAogCQkJCQlM TFZNQnVpbGRCcihiLCBvcGJsb2Nrc1tvcG5vICsgMV0pOwogCQkJCQlicmVhazsKLS0gCjIuNDMu MAoK --b1=_d0OXE5LqA3SNsSrMENvFfkmkIC1HkaWuTW4k--