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 1vpukM-00172B-0L for pgsql-hackers@arkaria.postgresql.org; Tue, 10 Feb 2026 20:54:12 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vpukL-000vVW-18 for pgsql-hackers@arkaria.postgresql.org; Tue, 10 Feb 2026 20:54:10 +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 1vpukK-000vVM-2I for pgsql-hackers@lists.postgresql.org; Tue, 10 Feb 2026 20:54:09 +0000 Received: from lahtoruutu.iki.fi ([185.185.170.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 1vpukG-000000001Hn-0N3g for pgsql-hackers@postgresql.org; Tue, 10 Feb 2026 20:54:08 +0000 Received: from [10.0.2.15] (unknown [130.41.208.2]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: hlinnaka) by lahtoruutu.iki.fi (Postfix) with ESMTPSA id 4f9Yh74ykQz49PtM; Tue, 10 Feb 2026 22:53:59 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1770756840; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=WV3RQ0hy+Fbc9yYF7GMsRxqBzRHFq+Cx/p1f5h/Opt0=; b=lA/DroCJNTq7sY/6E5q18VE3UUATYJbidgoCP74wDZVDxLwdNgxKSSOKlxyr5JFQq+T55a aRLoXa3iCnrpbX+FkNOmOavMAAVJcSXsS3/NRjJOvFgEE8sSaR93g6tSFDdiwgKgvqnB7t 5/nfqfB4KR8xGteXtA1KiYDvxvNVkv752NPaZtAOw7h3jCzJz1JOhY5ihE4NUXc2mcer2X cL+xJ+A4a88K3u8mmMnoWkncXEH/a32dEa9K1UAPO+WmBD2QW5Izo2dizF0sqsLxrTlc5R ZIeheCJhfB9nxuGQ0QAHWBaUH8IVBxwooPgaw3LV1x3B0ewEMevvbpj06wG8EQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1770756840; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=WV3RQ0hy+Fbc9yYF7GMsRxqBzRHFq+Cx/p1f5h/Opt0=; b=coQWbzf7/4DV/pXG0LNRAUNKt5g3O8Zw6XP1eCGf/o6Wo3XZUGijjG3vIXH4329iNwuvr5 E4HA/yKf/nlxXlbNnOFcgVP8O0PShDLLmkcbH5F9teK0wf/QlJoY29fDKy9zMpaGLZNlJq u5lZ4drYDjbdec909G4h4MKaqpipeP25AqKn0snyEKb+9vuCxkQ0VpDN5w7N2E3G8jgY7R ry23LvE1kHNR0vZOmEYqQBEz1sxcOTFTbHw9DXaxa+OTPJuLjqauZT9wVnGW7bh5MHZJOt l83dgDFQtf4p4L9rzW9dXyP6av4zFBz40nIPEVyjPadYcTVVmbW1w3lX3j3bdQ== ARC-Seal: i=1; a=rsa-sha256; d=iki.fi; s=lahtoruutu; cv=none; t=1770756840; b=SAIvas3ZL9qu/1DfBj1xU3Oxa93K5suLn8372Fpu0jDcKv7+/gfEEQXmZ1HkpdT4aXcQGa caZ9C9NVxtittkQ96eo2YMdq8tZRjzQJx+KVJOe3iw80BM9ejAF/8j42DOawsfmEg5Zurn irOgbZSpKaLuuOveZRYBACOl97gQucY1fidlQeDkCvqC/4lqaAbl0wk/dkNqvE3kZynOfX MGOaRM3R6CNzWDJgtphmVe+7XAsmfBX8ENC8tztVWM+FpGRU1zm/hUMp8JKZRYaPVso7qY UAxJ6Exsc5IIsQTbNy0+CpASaoUNJyz3+RDsxskbFNSN/6oXXpJhxHrpNcxwsw== ARC-Authentication-Results: i=1; ORIGINATING; auth=pass smtp.auth=hlinnaka smtp.mailfrom=hlinnaka@iki.fi Content-Type: multipart/mixed; boundary="------------0wOMYO31l8jlNMVY26M8d054" Message-ID: <3dd6f70c-b94d-4428-8e75-74a7136396be@iki.fi> Date: Tue, 10 Feb 2026 22:53:58 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: PGPROC alignment (was Re: pgsql: Separate RecoveryConflictReasons from procsignals) To: Andres Freund , Bertrand Drouvot Cc: "pgsql-hackers@postgresql.org" References: <1cb0d7e9-d6dd-4517-a7cd-0ad98e1207f3@iki.fi> Content-Language: en-US From: Heikki Linnakangas 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. --------------0wOMYO31l8jlNMVY26M8d054 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 10/02/2026 21:46, Andres Freund wrote: > On 2026-02-10 19:15:27 +0000, Bertrand Drouvot wrote: >> On Tue, Feb 10, 2026 at 01:15:01PM -0500, Andres Freund wrote: >>> On 2026-02-10 19:14:44 +0200, Heikki Linnakangas wrote: >>> Yea, I don't think we need to be perfect here. Just a bit less bad. And, as >>> you say, the current order doesn't make a lot of sense. >>> Just grouping things like >>> - pid, pgxactoff, backendType (i.e. barely if ever changing) >>> - wait_event_info, waitStart (i.e. very frequently changing, but typically >>> accessed within one proc) >>> - sem, lwWaiting, waitLockMode (i.e. stuff that is updated frequently and >>> accessed across processes) >> >> With an ordering like in the attached (to apply on top of Heikki's patch), we're >> back to 832 bytes. > > You'd really need to insert padding between the sections to make it work... Here's my attempt at grouping things more logically. I didn't insert padding and also didn't try to avoid alignment padding. I tried to optimize for readability rather than size or performance. That said, I would assume that grouping things logically like this would also help to avoid false sharing. If not, inserting explicit padding seems like a a good fix. I also think we should split 'links' into two fields. For clarity. With this, sizeof(PGPROC) == 864 without the explicit alignment to PG_CACHE_LINE_SIZE, and 896 with it. - Heikki --------------0wOMYO31l8jlNMVY26M8d054 Content-Type: text/x-patch; charset=UTF-8; name="v2-0001-Align-PGPROC-to-cache-line-boundary.patch" Content-Disposition: attachment; filename="v2-0001-Align-PGPROC-to-cache-line-boundary.patch" Content-Transfer-Encoding: base64 RnJvbSA4MzQ4MTE4N2Y2ZTJmOGMxNzdiYzg1YzUyMjkxN2Q2NGUxYjc4YjRiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5u YWthbmdhc0Bpa2kuZmk+CkRhdGU6IFR1ZSwgMTAgRmViIDIwMjYgMTg6NTM6MzEgKzAyMDAK U3ViamVjdDogW1BBVENIIHYyIDEvNF0gQWxpZ24gUEdQUk9DIHRvIGNhY2hlIGxpbmUgYm91 bmRhcnkKCi0tLQogc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jLmggfCAxNiArKysrKysrKysr KystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2MuaCBiL3NyYy9pbmNs dWRlL3N0b3JhZ2UvcHJvYy5oCmluZGV4IGFjMGRmNGFlYWFhLi41M2FjY2U4YTVhMSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jLmgKKysrIGIvc3JjL2luY2x1ZGUv c3RvcmFnZS9wcm9jLmgKQEAgLTE4Miw3ICsxODIsNyBAQCB0eXBlZGVmIGVudW0KICAqCiAg KiBTZWUgUFJPQ19IRFIgZm9yIGRldGFpbHMuCiAgKi8KLXN0cnVjdCBQR1BST0MKK3R5cGVk ZWYgc3RydWN0IFBHUFJPQwogewogCWRsaXN0X25vZGUJbGlua3M7CQkJLyogbGlzdCBsaW5r IGlmIHByb2Nlc3MgaXMgaW4gYSBsaXN0ICovCiAJZGxpc3RfaGVhZCAqcHJvY2dsb2JhbGxp c3Q7IC8qIHByb2NnbG9iYWwgbGlzdCB0aGF0IG93bnMgdGhpcyBQR1BST0MgKi8KQEAgLTMz NywxMCArMzM3LDE4IEBAIHN0cnVjdCBQR1BST0MKIAlQR1BST0MJICAgKmxvY2tHcm91cExl YWRlcjsJLyogbG9jayBncm91cCBsZWFkZXIsIGlmIEknbSBhIG1lbWJlciAqLwogCWRsaXN0 X2hlYWQJbG9ja0dyb3VwTWVtYmVyczsJLyogbGlzdCBvZiBtZW1iZXJzLCBpZiBJJ20gYSBs ZWFkZXIgKi8KIAlkbGlzdF9ub2RlCWxvY2tHcm91cExpbms7CS8qIG15IG1lbWJlciBsaW5r LCBpZiBJJ20gYSBtZW1iZXIgKi8KLX07Ci0KLS8qIE5PVEU6ICJ0eXBlZGVmIHN0cnVjdCBQ R1BST0MgUEdQUk9DIiBhcHBlYXJzIGluIHN0b3JhZ2UvbG9jay5oLiAqLworfQogCisvKgor ICogSWYgY29tcGlsZXIgdW5kZXJzdGFuZHMgYWxpZ25lZCBwcmFnbWEsIHVzZSBpdCB0byBh bGlnbiB0aGUgc3RydWN0IGF0IGNhY2hlCisgKiBsaW5lIGJvdW5kYXJpZXMuICBUaGlzIGlz IGp1c3QgZm9yIHBlcmZvcm1hbmNlLCB0byAoYSkgYXZvaWQgZmFsc2Ugc2hhcmluZworICog YW5kIChiKSB0byBtYWtlIHRoZSBtdWx0aXBsaWNhdGlvbiAvIGRpdmlzaW9uIHRvIGNvbnZl cnQgYmV0d2VlbiBQR1BST0MgKgorICogYW5kIFByb2NOdW1iZXIgYmUgYSBsaXR0bGUgY2hl YXBlci4KKyAqLworI2lmIGRlZmluZWQocGdfYXR0cmlidXRlX2FsaWduZWQpCisJCQlwZ19h dHRyaWJ1dGVfYWxpZ25lZChQR19DQUNIRV9MSU5FX1NJWkUpCisjZW5kaWYKK1BHUFJPQzsK IAogZXh0ZXJuIFBHRExMSU1QT1JUIFBHUFJPQyAqTXlQcm9jOwogCi0tIAoyLjQ3LjMKCg== --------------0wOMYO31l8jlNMVY26M8d054 Content-Type: text/x-patch; charset=UTF-8; name="v2-0002-Remove-useless-store.patch" Content-Disposition: attachment; filename="v2-0002-Remove-useless-store.patch" Content-Transfer-Encoding: base64 RnJvbSBmNTQ4NWFlOWViNGIxMmViN2U1N2I4YjdlN2ZiZGFhMGRmN2M1NTc1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5u YWthbmdhc0Bpa2kuZmk+CkRhdGU6IFR1ZSwgMTAgRmViIDIwMjYgMjE6NTQ6NTYgKzAyMDAK U3ViamVjdDogW1BBVENIIHYyIDIvNF0gUmVtb3ZlIHVzZWxlc3Mgc3RvcmUKCkl0IHdhcyBh IG1pc2hhcCBpbnRyb2R1Y2VkIGluIGNvbW1pdCA1NzY0ZjYxMWUxLCB3aGljaCBjb252ZXJ0 ZWQgdGhlCmxvb3AgdG8gdXNlIGRjbGlzdF9mb3JlYWNoCi0tLQogc3JjL2JhY2tlbmQvc3Rv cmFnZS9sbWdyL2xvY2suYyB8IDEgLQogMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvbG9jay5jIGIvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYwppbmRleCA3ZjBjZDc4NGY3OS4uZTExNjhhZDM4 MzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9sb2NrLmMKKysrIGIv c3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYwpAQCAtNDE0OCw3ICs0MTQ4LDYgQEAg R2V0U2luZ2xlUHJvY0Jsb2NrZXJTdGF0dXNEYXRhKFBHUFJPQyAqYmxvY2tlZF9wcm9jLCBC bG9ja2VkUHJvY3NEYXRhICpkYXRhKQogCQlpZiAocXVldWVkX3Byb2MgPT0gYmxvY2tlZF9w cm9jKQogCQkJYnJlYWs7CiAJCWRhdGEtPndhaXRlcl9waWRzW2RhdGEtPm5waWRzKytdID0g cXVldWVkX3Byb2MtPnBpZDsKLQkJcXVldWVkX3Byb2MgPSAoUEdQUk9DICopIHF1ZXVlZF9w cm9jLT5saW5rcy5uZXh0OwogCX0KIAogCWJwcm9jLT5udW1fbG9ja3MgPSBkYXRhLT5ubG9j a3MgLSBicHJvYy0+Zmlyc3RfbG9jazsKLS0gCjIuNDcuMwoK --------------0wOMYO31l8jlNMVY26M8d054 Content-Type: text/x-patch; charset=UTF-8; name="v2-0003-Split-PGPROC-links-field-into-two-for-clarity.patch" Content-Disposition: attachment; filename*0="v2-0003-Split-PGPROC-links-field-into-two-for-clarity.patch" Content-Transfer-Encoding: base64 RnJvbSBiNGNjOWU2N2EzZmI4MzQ0YTdjNDkzNDcyM2ZkZTNkMDEyZjIxMDVlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5u YWthbmdhc0Bpa2kuZmk+CkRhdGU6IFR1ZSwgMTAgRmViIDIwMjYgMjI6NDU6MDggKzAyMDAK U3ViamVjdDogW1BBVENIIHYyIDMvNF0gU3BsaXQgUEdQUk9DICdsaW5rcycgZmllbGQgaW50 byB0d28sIGZvciBjbGFyaXR5CgpUaGUgc2FtZSBmaWVsZCB3YXMgbWFpbmx5IHVzZWQgZm9y IHRoZSBwb3NpdGlvbiBpbiBhIExPQ0sncyB3YWl0CnF1ZXVlLCBidXQgYWxzbyBhcyB0aGUg cG9zaXRpb24gaW4gYSB0aGUgZnJlZWxpc3Qgd2hlbiB0aGUgUEdQUk9DCmVudHJ5IHdhcyBu b3QgaW4gdXNlLiBUaGUgcmV1c2Ugc2F2ZXMgYSBzb21lIG1lbW9yeSwgYXQgdGhlIGV4cGVu c2Ugb2YKcmVhZGFiaWxpdHksIHdoaWNoIHNlZW1zIGxpa2UgYSBiYWQgdHJhZGVvZmYuIElm IHdlIHdhbnRlZCB0byBtYWtlIHRoZQpzdHJ1Y3Qgc21hbGxlciB0aGVyZSdzIG90aGVyIHRo aW5ncyB3ZSBjb3VsZCBkbywgYnV0IHdlJ3JlIGFjdHVhbGx5Cmp1c3QgZGlzY3Vzc2luZyBh ZGRpbmcgcGFkZGluZyB0byB0aGUgc3RydWN0IGZvciBwZXJmb3JtYW5jZSByZWFzb25zLgot LS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3R3b3BoYXNlLmMgfCAgMiArLQogc3Jj L2JhY2tlbmQvc3RvcmFnZS9sbWdyL2RlYWRsb2NrLmMgICB8IDEyICsrKystLS0tLQogc3Jj L2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYyAgICAgICB8ICA2ICsrLS0tCiBzcmMvYmFj a2VuZC9zdG9yYWdlL2xtZ3IvcHJvYy5jICAgICAgIHwgMzcgKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2MuaCAgICAgICAgICAgIHwgIDgg KysrLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3R3b3BoYXNl LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90d29waGFzZS5jCmluZGV4IGVhYmM0 ZDQ4MjA4Li5lNDM0MGI1OTY0MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0vdHdvcGhhc2UuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90d29w aGFzZS5jCkBAIC00NDcsNyArNDQ3LDYgQEAgTWFya0FzUHJlcGFyaW5nR3V0cyhHbG9iYWxU cmFuc2FjdGlvbiBneGFjdCwgRnVsbFRyYW5zYWN0aW9uSWQgZnhpZCwKIAogCS8qIEluaXRp YWxpemUgdGhlIFBHUFJPQyBlbnRyeSAqLwogCU1lbVNldChwcm9jLCAwLCBzaXplb2YoUEdQ Uk9DKSk7Ci0JZGxpc3Rfbm9kZV9pbml0KCZwcm9jLT5saW5rcyk7CiAJcHJvYy0+d2FpdFN0 YXR1cyA9IFBST0NfV0FJVF9TVEFUVVNfT0s7CiAJaWYgKExvY2FsVHJhbnNhY3Rpb25JZElz VmFsaWQoTXlQcm9jLT52eGlkLmx4aWQpKQogCXsKQEAgLTQ3NCw2ICs0NzMsNyBAQCBNYXJr QXNQcmVwYXJpbmdHdXRzKEdsb2JhbFRyYW5zYWN0aW9uIGd4YWN0LCBGdWxsVHJhbnNhY3Rp b25JZCBmeGlkLAogCXByb2MtPmx3V2FpdGluZyA9IExXX1dTX05PVF9XQUlUSU5HOwogCXBy b2MtPmx3V2FpdE1vZGUgPSAwOwogCXByb2MtPndhaXRMb2NrID0gTlVMTDsKKwlkbGlzdF9u b2RlX2luaXQoJnByb2MtPndhaXRMaW5rKTsKIAlwcm9jLT53YWl0UHJvY0xvY2sgPSBOVUxM OwogCXBnX2F0b21pY19pbml0X3U2NCgmcHJvYy0+d2FpdFN0YXJ0LCAwKTsKIAlmb3IgKGkg PSAwOyBpIDwgTlVNX0xPQ0tfUEFSVElUSU9OUzsgaSsrKQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9sbWdyL2RlYWRsb2NrLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xt Z3IvZGVhZGxvY2suYwppbmRleCAwYThkZDVlYjdjMi4uZDY0MjUwMGQ0YzkgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9kZWFkbG9jay5jCisrKyBiL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvbG1nci9kZWFkbG9jay5jCkBAIC0yNjAsNyArMjYwLDcgQEAgRGVhZExv Y2tDaGVjayhQR1BST0MgKnByb2MpCiAJCS8qIFJlc2V0IHRoZSBxdWV1ZSBhbmQgcmUtYWRk IHByb2NzIGluIHRoZSBkZXNpcmVkIG9yZGVyICovCiAJCWRjbGlzdF9pbml0KHdhaXRRdWV1 ZSk7CiAJCWZvciAoaW50IGogPSAwOyBqIDwgblByb2NzOyBqKyspCi0JCQlkY2xpc3RfcHVz aF90YWlsKHdhaXRRdWV1ZSwgJnByb2NzW2pdLT5saW5rcyk7CisJCQlkY2xpc3RfcHVzaF90 YWlsKHdhaXRRdWV1ZSwgJnByb2NzW2pdLT53YWl0TGluayk7CiAKICNpZmRlZiBERUJVR19E RUFETE9DSwogCQlQcmludExvY2tRdWV1ZShsb2NrLCAicmVhcnJhbmdlZCB0bzoiKTsKQEAg LTUwMiw3ICs1MDIsNyBAQCBGaW5kTG9ja0N5Y2xlUmVjdXJzZShQR1BST0MgKmNoZWNrUHJv YywKIAkgKiBJZiB0aGUgcHJvY2VzcyBpcyB3YWl0aW5nLCB0aGVyZSBpcyBhbiBvdXRnb2lu ZyB3YWl0cy1mb3IgZWRnZSB0byBlYWNoCiAJICogcHJvY2VzcyB0aGF0IGJsb2NrcyBpdC4K IAkgKi8KLQlpZiAoY2hlY2tQcm9jLT5saW5rcy5uZXh0ICE9IE5VTEwgJiYgY2hlY2tQcm9j LT53YWl0TG9jayAhPSBOVUxMICYmCisJaWYgKCFkbGlzdF9ub2RlX2lzX2RldGFjaGVkKCZj aGVja1Byb2MtPndhaXRMaW5rKSAmJgogCQlGaW5kTG9ja0N5Y2xlUmVjdXJzZU1lbWJlcihj aGVja1Byb2MsIGNoZWNrUHJvYywgZGVwdGgsIHNvZnRFZGdlcywKIAkJCQkJCQkJICAgblNv ZnRFZGdlcykpCiAJCXJldHVybiB0cnVlOwpAQCAtNTIwLDcgKzUyMCw3IEBAIEZpbmRMb2Nr Q3ljbGVSZWN1cnNlKFBHUFJPQyAqY2hlY2tQcm9jLAogCiAJCW1lbWJlclByb2MgPSBkbGlz dF9jb250YWluZXIoUEdQUk9DLCBsb2NrR3JvdXBMaW5rLCBpdGVyLmN1cik7CiAKLQkJaWYg KG1lbWJlclByb2MtPmxpbmtzLm5leHQgIT0gTlVMTCAmJiBtZW1iZXJQcm9jLT53YWl0TG9j ayAhPSBOVUxMICYmCisJCWlmICghZGxpc3Rfbm9kZV9pc19kZXRhY2hlZCgmbWVtYmVyUHJv Yy0+d2FpdExpbmspICYmIG1lbWJlclByb2MtPndhaXRMb2NrICE9IE5VTEwgJiYKIAkJCW1l bWJlclByb2MgIT0gY2hlY2tQcm9jICYmCiAJCQlGaW5kTG9ja0N5Y2xlUmVjdXJzZU1lbWJl cihtZW1iZXJQcm9jLCBjaGVja1Byb2MsIGRlcHRoLCBzb2Z0RWRnZXMsCiAJCQkJCQkJCQkg ICBuU29mdEVkZ2VzKSkKQEAgLTcxMyw3ICs3MTMsNyBAQCBGaW5kTG9ja0N5Y2xlUmVjdXJz ZU1lbWJlcihQR1BST0MgKmNoZWNrUHJvYywKIAkJewogCQkJZGNsaXN0X2ZvcmVhY2gocHJv Y19pdGVyLCB3YWl0UXVldWUpCiAJCQl7Ci0JCQkJcHJvYyA9IGRsaXN0X2NvbnRhaW5lcihQ R1BST0MsIGxpbmtzLCBwcm9jX2l0ZXIuY3VyKTsKKwkJCQlwcm9jID0gZGxpc3RfY29udGFp bmVyKFBHUFJPQywgd2FpdExpbmssIHByb2NfaXRlci5jdXIpOwogCiAJCQkJaWYgKHByb2Mt PmxvY2tHcm91cExlYWRlciA9PSBjaGVja1Byb2NMZWFkZXIpCiAJCQkJCWxhc3RHcm91cE1l bWJlciA9IHByb2M7CkBAIC03MjgsNyArNzI4LDcgQEAgRmluZExvY2tDeWNsZVJlY3Vyc2VN ZW1iZXIoUEdQUk9DICpjaGVja1Byb2MsCiAJCXsKIAkJCVBHUFJPQwkgICAqbGVhZGVyOwog Ci0JCQlwcm9jID0gZGxpc3RfY29udGFpbmVyKFBHUFJPQywgbGlua3MsIHByb2NfaXRlci5j dXIpOworCQkJcHJvYyA9IGRsaXN0X2NvbnRhaW5lcihQR1BST0MsIHdhaXRMaW5rLCBwcm9j X2l0ZXIuY3VyKTsKIAogCQkJbGVhZGVyID0gcHJvYy0+bG9ja0dyb3VwTGVhZGVyID09IE5V TEwgPyBwcm9jIDoKIAkJCQlwcm9jLT5sb2NrR3JvdXBMZWFkZXI7CkBAIC04NzcsNyArODc3 LDcgQEAgVG9wb1NvcnQoTE9DSyAqbG9jaywKIAlpID0gMDsKIAlkY2xpc3RfZm9yZWFjaChw cm9jX2l0ZXIsIHdhaXRRdWV1ZSkKIAl7Ci0JCXByb2MgPSBkbGlzdF9jb250YWluZXIoUEdQ Uk9DLCBsaW5rcywgcHJvY19pdGVyLmN1cik7CisJCXByb2MgPSBkbGlzdF9jb250YWluZXIo UEdQUk9DLCB3YWl0TGluaywgcHJvY19pdGVyLmN1cik7CiAJCXRvcG9Qcm9jc1tpKytdID0g cHJvYzsKIAl9CiAJQXNzZXJ0KGkgPT0gcXVldWVfc2l6ZSk7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9zdG9yYWdlL2xtZ3IvbG9jay5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdy L2xvY2suYwppbmRleCBlMTE2OGFkMzgzNy4uZDkzMGM2NmNkYmQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9sb2NrLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFn ZS9sbWdyL2xvY2suYwpAQCAtMjA1MiwxMyArMjA1MiwxMyBAQCBSZW1vdmVGcm9tV2FpdFF1 ZXVlKFBHUFJPQyAqcHJvYywgdWludDMyIGhhc2hjb2RlKQogCiAJLyogTWFrZSBzdXJlIHBy b2MgaXMgd2FpdGluZyAqLwogCUFzc2VydChwcm9jLT53YWl0U3RhdHVzID09IFBST0NfV0FJ VF9TVEFUVVNfV0FJVElORyk7Ci0JQXNzZXJ0KHByb2MtPmxpbmtzLm5leHQgIT0gTlVMTCk7 CisJQXNzZXJ0KCFkbGlzdF9ub2RlX2lzX2RldGFjaGVkKCZwcm9jLT53YWl0TGluaykpOwog CUFzc2VydCh3YWl0TG9jayk7CiAJQXNzZXJ0KCFkY2xpc3RfaXNfZW1wdHkoJndhaXRMb2Nr LT53YWl0UHJvY3MpKTsKIAlBc3NlcnQoMCA8IGxvY2ttZXRob2RpZCAmJiBsb2NrbWV0aG9k aWQgPCBsZW5ndGhvZihMb2NrTWV0aG9kcykpOwogCiAJLyogUmVtb3ZlIHByb2MgZnJvbSBs b2NrJ3Mgd2FpdCBxdWV1ZSAqLwotCWRjbGlzdF9kZWxldGVfZnJvbV90aG9yb3VnaGx5KCZ3 YWl0TG9jay0+d2FpdFByb2NzLCAmcHJvYy0+bGlua3MpOworCWRjbGlzdF9kZWxldGVfZnJv bV90aG9yb3VnaGx5KCZ3YWl0TG9jay0+d2FpdFByb2NzLCAmcHJvYy0+d2FpdExpbmspOwog CiAJLyogVW5kbyBpbmNyZW1lbnRzIG9mIHJlcXVlc3QgY291bnRzIGJ5IHdhaXRpbmcgcHJv Y2VzcyAqLwogCUFzc2VydCh3YWl0TG9jay0+blJlcXVlc3RlZCA+IDApOwpAQCAtNDE0Myw3 ICs0MTQzLDcgQEAgR2V0U2luZ2xlUHJvY0Jsb2NrZXJTdGF0dXNEYXRhKFBHUFJPQyAqYmxv Y2tlZF9wcm9jLCBCbG9ja2VkUHJvY3NEYXRhICpkYXRhKQogCS8qIENvbGxlY3QgUElEcyBm cm9tIHRoZSBsb2NrJ3Mgd2FpdCBxdWV1ZSwgc3RvcHBpbmcgYXQgYmxvY2tlZF9wcm9jICov CiAJZGNsaXN0X2ZvcmVhY2gocHJvY19pdGVyLCB3YWl0UXVldWUpCiAJewotCQlQR1BST0MJ ICAgKnF1ZXVlZF9wcm9jID0gZGxpc3RfY29udGFpbmVyKFBHUFJPQywgbGlua3MsIHByb2Nf aXRlci5jdXIpOworCQlQR1BST0MJICAgKnF1ZXVlZF9wcm9jID0gZGxpc3RfY29udGFpbmVy KFBHUFJPQywgd2FpdExpbmssIHByb2NfaXRlci5jdXIpOwogCiAJCWlmIChxdWV1ZWRfcHJv YyA9PSBibG9ja2VkX3Byb2MpCiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3N0b3JhZ2UvbG1nci9wcm9jLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJvYy5j CmluZGV4IDMxY2NkYjFlZjg5Li5kYmMyYWQ5MzFiOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvc3RvcmFnZS9sbWdyL3Byb2MuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3Iv cHJvYy5jCkBAIC0zMzEsMjUgKzMzMSwyNSBAQCBJbml0UHJvY0dsb2JhbCh2b2lkKQogCQlp ZiAoaSA8IE1heENvbm5lY3Rpb25zKQogCQl7CiAJCQkvKiBQR1BST0MgZm9yIG5vcm1hbCBi YWNrZW5kLCBhZGQgdG8gZnJlZVByb2NzIGxpc3QgKi8KLQkJCWRsaXN0X3B1c2hfdGFpbCgm UHJvY0dsb2JhbC0+ZnJlZVByb2NzLCAmcHJvYy0+bGlua3MpOworCQkJZGxpc3RfcHVzaF90 YWlsKCZQcm9jR2xvYmFsLT5mcmVlUHJvY3MsICZwcm9jLT5mcmVlUHJvY3NMaW5rKTsKIAkJ CXByb2MtPnByb2NnbG9iYWxsaXN0ID0gJlByb2NHbG9iYWwtPmZyZWVQcm9jczsKIAkJfQog CQllbHNlIGlmIChpIDwgTWF4Q29ubmVjdGlvbnMgKyBhdXRvdmFjdXVtX3dvcmtlcl9zbG90 cyArIE5VTV9TUEVDSUFMX1dPUktFUl9QUk9DUykKIAkJewogCQkJLyogUEdQUk9DIGZvciBB ViBvciBzcGVjaWFsIHdvcmtlciwgYWRkIHRvIGF1dG92YWNGcmVlUHJvY3MgbGlzdCAqLwot CQkJZGxpc3RfcHVzaF90YWlsKCZQcm9jR2xvYmFsLT5hdXRvdmFjRnJlZVByb2NzLCAmcHJv Yy0+bGlua3MpOworCQkJZGxpc3RfcHVzaF90YWlsKCZQcm9jR2xvYmFsLT5hdXRvdmFjRnJl ZVByb2NzLCAmcHJvYy0+ZnJlZVByb2NzTGluayk7CiAJCQlwcm9jLT5wcm9jZ2xvYmFsbGlz dCA9ICZQcm9jR2xvYmFsLT5hdXRvdmFjRnJlZVByb2NzOwogCQl9CiAJCWVsc2UgaWYgKGkg PCBNYXhDb25uZWN0aW9ucyArIGF1dG92YWN1dW1fd29ya2VyX3Nsb3RzICsgTlVNX1NQRUNJ QUxfV09SS0VSX1BST0NTICsgbWF4X3dvcmtlcl9wcm9jZXNzZXMpCiAJCXsKIAkJCS8qIFBH UFJPQyBmb3IgYmd3b3JrZXIsIGFkZCB0byBiZ3dvcmtlckZyZWVQcm9jcyBsaXN0ICovCi0J CQlkbGlzdF9wdXNoX3RhaWwoJlByb2NHbG9iYWwtPmJnd29ya2VyRnJlZVByb2NzLCAmcHJv Yy0+bGlua3MpOworCQkJZGxpc3RfcHVzaF90YWlsKCZQcm9jR2xvYmFsLT5iZ3dvcmtlckZy ZWVQcm9jcywgJnByb2MtPmZyZWVQcm9jc0xpbmspOwogCQkJcHJvYy0+cHJvY2dsb2JhbGxp c3QgPSAmUHJvY0dsb2JhbC0+Ymd3b3JrZXJGcmVlUHJvY3M7CiAJCX0KIAkJZWxzZSBpZiAo aSA8IE1heEJhY2tlbmRzKQogCQl7CiAJCQkvKiBQR1BST0MgZm9yIHdhbHNlbmRlciwgYWRk IHRvIHdhbHNlbmRlckZyZWVQcm9jcyBsaXN0ICovCi0JCQlkbGlzdF9wdXNoX3RhaWwoJlBy b2NHbG9iYWwtPndhbHNlbmRlckZyZWVQcm9jcywgJnByb2MtPmxpbmtzKTsKKwkJCWRsaXN0 X3B1c2hfdGFpbCgmUHJvY0dsb2JhbC0+d2Fsc2VuZGVyRnJlZVByb2NzLCAmcHJvYy0+ZnJl ZVByb2NzTGluayk7CiAJCQlwcm9jLT5wcm9jZ2xvYmFsbGlzdCA9ICZQcm9jR2xvYmFsLT53 YWxzZW5kZXJGcmVlUHJvY3M7CiAJCX0KIApAQCAtNDM4LDcgKzQzOCw3IEBAIEluaXRQcm9j ZXNzKHZvaWQpCiAKIAlpZiAoIWRsaXN0X2lzX2VtcHR5KHByb2NnbG9iYWxsaXN0KSkKIAl7 Ci0JCU15UHJvYyA9IGRsaXN0X2NvbnRhaW5lcihQR1BST0MsIGxpbmtzLCBkbGlzdF9wb3Bf aGVhZF9ub2RlKHByb2NnbG9iYWxsaXN0KSk7CisJCU15UHJvYyA9IGRsaXN0X2NvbnRhaW5l cihQR1BST0MsIGZyZWVQcm9jc0xpbmssIGRsaXN0X3BvcF9oZWFkX25vZGUocHJvY2dsb2Jh bGxpc3QpKTsKIAkJU3BpbkxvY2tSZWxlYXNlKFByb2NTdHJ1Y3RMb2NrKTsKIAl9CiAJZWxz ZQpAQCAtNDcxLDcgKzQ3MSw3IEBAIEluaXRQcm9jZXNzKHZvaWQpCiAJICogSW5pdGlhbGl6 ZSBhbGwgZmllbGRzIG9mIE15UHJvYywgZXhjZXB0IGZvciB0aG9zZSBwcmV2aW91c2x5CiAJ ICogaW5pdGlhbGl6ZWQgYnkgSW5pdFByb2NHbG9iYWwuCiAJICovCi0JZGxpc3Rfbm9kZV9p bml0KCZNeVByb2MtPmxpbmtzKTsKKwlkbGlzdF9ub2RlX2luaXQoJk15UHJvYy0+ZnJlZVBy b2NzTGluayk7CiAJTXlQcm9jLT53YWl0U3RhdHVzID0gUFJPQ19XQUlUX1NUQVRVU19PSzsK IAlNeVByb2MtPmZwVlhJRExvY2sgPSBmYWxzZTsKIAlNeVByb2MtPmZwTG9jYWxUcmFuc2Fj dGlvbklkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKQEAgLTQ5Myw2ICs0OTMsNyBA QCBJbml0UHJvY2Vzcyh2b2lkKQogCU15UHJvYy0+bHdXYWl0aW5nID0gTFdfV1NfTk9UX1dB SVRJTkc7CiAJTXlQcm9jLT5sd1dhaXRNb2RlID0gMDsKIAlNeVByb2MtPndhaXRMb2NrID0g TlVMTDsKKwlkbGlzdF9ub2RlX2luaXQoJk15UHJvYy0+d2FpdExpbmspOwogCU15UHJvYy0+ d2FpdFByb2NMb2NrID0gTlVMTDsKIAlwZ19hdG9taWNfd3JpdGVfdTY0KCZNeVByb2MtPndh aXRTdGFydCwgMCk7CiAjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORwpAQCAtNjcyLDcgKzY3 Myw3IEBAIEluaXRBdXhpbGlhcnlQcm9jZXNzKHZvaWQpCiAJICogSW5pdGlhbGl6ZSBhbGwg ZmllbGRzIG9mIE15UHJvYywgZXhjZXB0IGZvciB0aG9zZSBwcmV2aW91c2x5CiAJICogaW5p dGlhbGl6ZWQgYnkgSW5pdFByb2NHbG9iYWwuCiAJICovCi0JZGxpc3Rfbm9kZV9pbml0KCZN eVByb2MtPmxpbmtzKTsKKwlkbGlzdF9ub2RlX2luaXQoJk15UHJvYy0+ZnJlZVByb2NzTGlu ayk7CiAJTXlQcm9jLT53YWl0U3RhdHVzID0gUFJPQ19XQUlUX1NUQVRVU19PSzsKIAlNeVBy b2MtPmZwVlhJRExvY2sgPSBmYWxzZTsKIAlNeVByb2MtPmZwTG9jYWxUcmFuc2FjdGlvbklk ID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKQEAgLTY4OSw2ICs2OTAsNyBAQCBJbml0 QXV4aWxpYXJ5UHJvY2Vzcyh2b2lkKQogCU15UHJvYy0+bHdXYWl0aW5nID0gTFdfV1NfTk9U X1dBSVRJTkc7CiAJTXlQcm9jLT5sd1dhaXRNb2RlID0gMDsKIAlNeVByb2MtPndhaXRMb2Nr ID0gTlVMTDsKKwlkbGlzdF9ub2RlX2luaXQoJk15UHJvYy0+d2FpdExpbmspOwogCU15UHJv Yy0+d2FpdFByb2NMb2NrID0gTlVMTDsKIAlwZ19hdG9taWNfd3JpdGVfdTY0KCZNeVByb2Mt PndhaXRTdGFydCwgMCk7CiAjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORwpAQCAtODQ5LDcg Kzg1MSw3IEBAIExvY2tFcnJvckNsZWFudXAodm9pZCkKIAlwYXJ0aXRpb25Mb2NrID0gTG9j a0hhc2hQYXJ0aXRpb25Mb2NrKGxvY2tBd2FpdGVkLT5oYXNoY29kZSk7CiAJTFdMb2NrQWNx dWlyZShwYXJ0aXRpb25Mb2NrLCBMV19FWENMVVNJVkUpOwogCi0JaWYgKCFkbGlzdF9ub2Rl X2lzX2RldGFjaGVkKCZNeVByb2MtPmxpbmtzKSkKKwlpZiAoIWRsaXN0X25vZGVfaXNfZGV0 YWNoZWQoJk15UHJvYy0+d2FpdExpbmspKQogCXsKIAkJLyogV2UgY291bGQgbm90IGhhdmUg YmVlbiBncmFudGVkIHRoZSBsb2NrIHlldCAqLwogCQlSZW1vdmVGcm9tV2FpdFF1ZXVlKE15 UHJvYywgbG9ja0F3YWl0ZWQtPmhhc2hjb2RlKTsKQEAgLTk4MSw3ICs5ODMsNyBAQCBQcm9j S2lsbChpbnQgY29kZSwgRGF0dW0gYXJnKQogCiAJCQkJLyogTGVhZGVyIGV4aXRlZCBmaXJz dDsgcmV0dXJuIGl0cyBQR1BST0MuICovCiAJCQkJU3BpbkxvY2tBY3F1aXJlKFByb2NTdHJ1 Y3RMb2NrKTsKLQkJCQlkbGlzdF9wdXNoX2hlYWQocHJvY2dsb2JhbGxpc3QsICZsZWFkZXIt PmxpbmtzKTsKKwkJCQlkbGlzdF9wdXNoX2hlYWQocHJvY2dsb2JhbGxpc3QsICZsZWFkZXIt PmZyZWVQcm9jc0xpbmspOwogCQkJCVNwaW5Mb2NrUmVsZWFzZShQcm9jU3RydWN0TG9jayk7 CiAJCQl9CiAJCX0KQEAgLTEwMjYsNyArMTAyOCw3IEBAIFByb2NLaWxsKGludCBjb2RlLCBE YXR1bSBhcmcpCiAJCUFzc2VydChkbGlzdF9pc19lbXB0eSgmcHJvYy0+bG9ja0dyb3VwTWVt YmVycykpOwogCiAJCS8qIFJldHVybiBQR1BST0Mgc3RydWN0dXJlIChhbmQgc2VtYXBob3Jl KSB0byBhcHByb3ByaWF0ZSBmcmVlbGlzdCAqLwotCQlkbGlzdF9wdXNoX3RhaWwocHJvY2ds b2JhbGxpc3QsICZwcm9jLT5saW5rcyk7CisJCWRsaXN0X3B1c2hfdGFpbChwcm9jZ2xvYmFs bGlzdCwgJnByb2MtPmZyZWVQcm9jc0xpbmspOwogCX0KIAogCS8qIFVwZGF0ZSBzaGFyZWQg ZXN0aW1hdGUgb2Ygc3BpbnNfcGVyX2RlbGF5ICovCkBAIC0xMjE1LDcgKzEyMTcsNyBAQCBK b2luV2FpdFF1ZXVlKExPQ0FMTE9DSyAqbG9jYWxsb2NrLCBMb2NrTWV0aG9kIGxvY2tNZXRo b2RUYWJsZSwgYm9vbCBkb250V2FpdCkKIAogCQlkY2xpc3RfZm9yZWFjaChpdGVyLCB3YWl0 UXVldWUpCiAJCXsKLQkJCVBHUFJPQwkgICAqcHJvYyA9IGRsaXN0X2NvbnRhaW5lcihQR1BS T0MsIGxpbmtzLCBpdGVyLmN1cik7CisJCQlQR1BST0MJICAgKnByb2MgPSBkbGlzdF9jb250 YWluZXIoUEdQUk9DLCB3YWl0TGluaywgaXRlci5jdXIpOwogCiAJCQkvKgogCQkJICogSWYg d2UncmUgcGFydCBvZiB0aGUgc2FtZSBsb2NraW5nIGdyb3VwIGFzIHRoaXMgd2FpdGVyLCBp dHMKQEAgLTEyNzksOSArMTI4MSw5IEBAIEpvaW5XYWl0UXVldWUoTE9DQUxMT0NLICpsb2Nh bGxvY2ssIExvY2tNZXRob2QgbG9ja01ldGhvZFRhYmxlLCBib29sIGRvbnRXYWl0KQogCSAq IEluc2VydCBzZWxmIGludG8gcXVldWUsIGF0IHRoZSBwb3NpdGlvbiBkZXRlcm1pbmVkIGFi b3ZlLgogCSAqLwogCWlmIChpbnNlcnRfYmVmb3JlKQotCQlkY2xpc3RfaW5zZXJ0X2JlZm9y ZSh3YWl0UXVldWUsICZpbnNlcnRfYmVmb3JlLT5saW5rcywgJk15UHJvYy0+bGlua3MpOwor CQlkY2xpc3RfaW5zZXJ0X2JlZm9yZSh3YWl0UXVldWUsICZpbnNlcnRfYmVmb3JlLT53YWl0 TGluaywgJk15UHJvYy0+d2FpdExpbmspOwogCWVsc2UKLQkJZGNsaXN0X3B1c2hfdGFpbCh3 YWl0UXVldWUsICZNeVByb2MtPmxpbmtzKTsKKwkJZGNsaXN0X3B1c2hfdGFpbCh3YWl0UXVl dWUsICZNeVByb2MtPndhaXRMaW5rKTsKIAogCWxvY2stPndhaXRNYXNrIHw9IExPQ0tCSVRf T04obG9ja21vZGUpOwogCkBAIC0xNzE1LDEzICsxNzE3LDEzIEBAIFByb2NTbGVlcChMT0NB TExPQ0sgKmxvY2FsbG9jaykKIHZvaWQKIFByb2NXYWtldXAoUEdQUk9DICpwcm9jLCBQcm9j V2FpdFN0YXR1cyB3YWl0U3RhdHVzKQogewotCWlmIChkbGlzdF9ub2RlX2lzX2RldGFjaGVk KCZwcm9jLT5saW5rcykpCisJaWYgKGRsaXN0X25vZGVfaXNfZGV0YWNoZWQoJnByb2MtPndh aXRMaW5rKSkKIAkJcmV0dXJuOwogCiAJQXNzZXJ0KHByb2MtPndhaXRTdGF0dXMgPT0gUFJP Q19XQUlUX1NUQVRVU19XQUlUSU5HKTsKIAogCS8qIFJlbW92ZSBwcm9jZXNzIGZyb20gd2Fp dCBxdWV1ZSAqLwotCWRjbGlzdF9kZWxldGVfZnJvbV90aG9yb3VnaGx5KCZwcm9jLT53YWl0 TG9jay0+d2FpdFByb2NzLCAmcHJvYy0+bGlua3MpOworCWRjbGlzdF9kZWxldGVfZnJvbV90 aG9yb3VnaGx5KCZwcm9jLT53YWl0TG9jay0+d2FpdFByb2NzLCAmcHJvYy0+d2FpdExpbmsp OwogCiAJLyogQ2xlYW4gdXAgcHJvY2Vzcycgc3RhdGUgYW5kIHBhc3MgaXQgdGhlIG9rL2Zh aWwgc2lnbmFsICovCiAJcHJvYy0+d2FpdExvY2sgPSBOVUxMOwpAQCAtMTc1Miw3ICsxNzU0 LDcgQEAgUHJvY0xvY2tXYWtldXAoTG9ja01ldGhvZCBsb2NrTWV0aG9kVGFibGUsIExPQ0sg KmxvY2spCiAKIAlkY2xpc3RfZm9yZWFjaF9tb2RpZnkobWl0ZXIsIHdhaXRRdWV1ZSkKIAl7 Ci0JCVBHUFJPQwkgICAqcHJvYyA9IGRsaXN0X2NvbnRhaW5lcihQR1BST0MsIGxpbmtzLCBt aXRlci5jdXIpOworCQlQR1BST0MJICAgKnByb2MgPSBkbGlzdF9jb250YWluZXIoUEdQUk9D LCB3YWl0TGluaywgbWl0ZXIuY3VyKTsKIAkJTE9DS01PREUJbG9ja21vZGUgPSBwcm9jLT53 YWl0TG9ja01vZGU7CiAKIAkJLyoKQEAgLTE4MTYsOCArMTgxOCw3IEBAIENoZWNrRGVhZExv Y2sodm9pZCkKIAkgKiBXZSBjaGVjayBieSBsb29raW5nIHRvIHNlZSBpZiB3ZSd2ZSBiZWVu IHVubGlua2VkIGZyb20gdGhlIHdhaXQgcXVldWUuCiAJICogVGhpcyBpcyBzYWZlIGJlY2F1 c2Ugd2UgaG9sZCB0aGUgbG9jayBwYXJ0aXRpb24gbG9jay4KIAkgKi8KLQlpZiAoTXlQcm9j LT5saW5rcy5wcmV2ID09IE5VTEwgfHwKLQkJTXlQcm9jLT5saW5rcy5uZXh0ID09IE5VTEwp CisJaWYgKGRsaXN0X25vZGVfaXNfZGV0YWNoZWQoJk15UHJvYy0+d2FpdExpbmspKQogCXsK IAkJcmVzdWx0ID0gRFNfTk9fREVBRExPQ0s7CiAJCWdvdG8gY2hlY2tfZG9uZTsKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvYy5oIGIvc3JjL2luY2x1ZGUvc3RvcmFn ZS9wcm9jLmgKaW5kZXggNTNhY2NlOGE1YTEuLmY2NDI4MzBmY2Y4IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9zdG9yYWdlL3Byb2MuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3By b2MuaApAQCAtMTU0LDEwICsxNTQsNiBAQCB0eXBlZGVmIGVudW0KICAqIEVhY2ggYmFja2Vu ZCBoYXMgYSBQR1BST0Mgc3RydWN0IGluIHNoYXJlZCBtZW1vcnkuICBUaGVyZSBpcyBhbHNv IGEgbGlzdCBvZgogICogY3VycmVudGx5LXVudXNlZCBQR1BST0Mgc3RydWN0cyB0aGF0IHdp bGwgYmUgcmVhbGxvY2F0ZWQgdG8gbmV3IGJhY2tlbmRzLgogICoKLSAqIGxpbmtzOiBsaXN0 IGxpbmsgZm9yIGFueSBsaXN0IHRoZSBQR1BST0MgaXMgaW4uICBXaGVuIHdhaXRpbmcgZm9y IGEgbG9jaywKLSAqIHRoZSBQR1BST0MgaXMgbGlua2VkIGludG8gdGhhdCBsb2NrJ3Mgd2Fp dFByb2NzIHF1ZXVlLiAgQSByZWN5Y2xlZCBQR1BST0MKLSAqIGlzIGxpbmtlZCBpbnRvIFBy b2NHbG9iYWwncyBmcmVlUHJvY3MgbGlzdC4KLSAqCiAgKiBOb3RlOiB0d29waGFzZS5jIGFs c28gc2V0cyB1cCBhIGR1bW15IFBHUFJPQyBzdHJ1Y3QgZm9yIGVhY2ggY3VycmVudGx5CiAg KiBwcmVwYXJlZCB0cmFuc2FjdGlvbi4gIFRoZXNlIFBHUFJPQ3MgYXBwZWFyIGluIHRoZSBQ cm9jQXJyYXkgZGF0YSBzdHJ1Y3R1cmUKICAqIHNvIHRoYXQgdGhlIHByZXBhcmVkIHRyYW5z YWN0aW9ucyBhcHBlYXIgdG8gYmUgc3RpbGwgcnVubmluZyBhbmQgYXJlCkBAIC0xODQsOCAr MTgwLDkgQEAgdHlwZWRlZiBlbnVtCiAgKi8KIHR5cGVkZWYgc3RydWN0IFBHUFJPQwogewot CWRsaXN0X25vZGUJbGlua3M7CQkJLyogbGlzdCBsaW5rIGlmIHByb2Nlc3MgaXMgaW4gYSBs aXN0ICovCiAJZGxpc3RfaGVhZCAqcHJvY2dsb2JhbGxpc3Q7IC8qIHByb2NnbG9iYWwgbGlz dCB0aGF0IG93bnMgdGhpcyBQR1BST0MgKi8KKwlkbGlzdF9ub2RlCWZyZWVQcm9jc0xpbms7 CS8qIGxpbmsgaW4gcHJvY2dsb2JhbGxpc3QsIHdoZW4gaW4gcmVjeWNsZWQKKwkJCQkJCQkJ ICogc3RhdGUgKi8KIAogCVBHU2VtYXBob3JlIHNlbTsJCQkvKiBPTkUgc2VtYXBob3JlIHRv IHNsZWVwIG9uICovCiAJUHJvY1dhaXRTdGF0dXMgd2FpdFN0YXR1czsKQEAgLTI2Myw2ICsy NjAsNyBAQCB0eXBlZGVmIHN0cnVjdCBQR1BST0MKIAkvKiBJbmZvIGFib3V0IGxvY2sgdGhl IHByb2Nlc3MgaXMgY3VycmVudGx5IHdhaXRpbmcgZm9yLCBpZiBhbnkuICovCiAJLyogd2Fp dExvY2sgYW5kIHdhaXRQcm9jTG9jayBhcmUgTlVMTCBpZiBub3QgY3VycmVudGx5IHdhaXRp bmcuICovCiAJTE9DSwkgICAqd2FpdExvY2s7CQkvKiBMb2NrIG9iamVjdCB3ZSdyZSBzbGVl cGluZyBvbiAuLi4gKi8KKwlkbGlzdF9ub2RlCXdhaXRMaW5rOwkJLyogcG9zaXRpb24gaW4g d2FpdExvY2stPndhaXRQcm9jcyBxdWV1ZSAqLwogCVBST0NMT0NLICAgKndhaXRQcm9jTG9j azsJLyogUGVyLWhvbGRlciBpbmZvIGZvciBhd2FpdGVkIGxvY2sgKi8KIAlMT0NLTU9ERQl3 YWl0TG9ja01vZGU7CS8qIHR5cGUgb2YgbG9jayB3ZSdyZSB3YWl0aW5nIGZvciAqLwogCUxP Q0tNQVNLCWhlbGRMb2NrczsJCS8qIGJpdG1hc2sgZm9yIGxvY2sgdHlwZXMgYWxyZWFkeSBo ZWxkIG9uIHRoaXMKLS0gCjIuNDcuMwoK --------------0wOMYO31l8jlNMVY26M8d054 Content-Type: text/x-patch; charset=UTF-8; name="v2-0004-Rearrange-fields-in-PGPROC-for-clarity.patch" Content-Disposition: attachment; filename="v2-0004-Rearrange-fields-in-PGPROC-for-clarity.patch" Content-Transfer-Encoding: base64 RnJvbSA0NTVkYjE4Y2I1MjVkMTUxZjBkZWU0MDczODAyM2VmYmNkZWNkYWU0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5u YWthbmdhc0Bpa2kuZmk+CkRhdGU6IFR1ZSwgMTAgRmViIDIwMjYgMjI6NDc6MjIgKzAyMDAK U3ViamVjdDogW1BBVENIIHYyIDQvNF0gUmVhcnJhbmdlIGZpZWxkcyBpbiBQR1BST0MsIGZv ciBjbGFyaXR5CgotLS0KIHNyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvYy5oIHwgMTI0ICsrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3MSBp bnNlcnRpb25zKCspLCA1MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9zdG9yYWdlL3Byb2MuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvYy5oCmluZGV4IGY2 NDI4MzBmY2Y4Li5iMTA3NzU2MmNiNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFn ZS9wcm9jLmgKKysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jLmgKQEAgLTE4NCwyNyAr MTg0LDMxIEBAIHR5cGVkZWYgc3RydWN0IFBHUFJPQwogCWRsaXN0X25vZGUJZnJlZVByb2Nz TGluazsJLyogbGluayBpbiBwcm9jZ2xvYmFsbGlzdCwgd2hlbiBpbiByZWN5Y2xlZAogCQkJ CQkJCQkgKiBzdGF0ZSAqLwogCi0JUEdTZW1hcGhvcmUgc2VtOwkJCS8qIE9ORSBzZW1hcGhv cmUgdG8gc2xlZXAgb24gKi8KLQlQcm9jV2FpdFN0YXR1cyB3YWl0U3RhdHVzOwotCi0JTGF0 Y2gJCXByb2NMYXRjaDsJCS8qIGdlbmVyaWMgbGF0Y2ggZm9yIHByb2Nlc3MgKi8KKwkvKi0t LS0gQmFja2VuZCBpZGVudGl0eSAtLS0tKi8KIAorCS8qCisJICogVGhlc2UgZmllbGRzIHRo YXQgZG9uJ3QgY2hhbmdlIGFmdGVyIGJhY2tlbmQgc3RhcnR1cCwgb3Igb25seSB2ZXJ5CisJ ICogcmFyZWx5CisJICovCisJaW50CQkJcGlkOwkJCS8qIEJhY2tlbmQncyBwcm9jZXNzIElE OyAwIGlmIHByZXBhcmVkIHhhY3QgKi8KKwlCYWNrZW5kVHlwZSBiYWNrZW5kVHlwZTsJLyog d2hhdCBraW5kIG9mIHByb2Nlc3MgaXMgdGhpcz8gKi8KIAotCVRyYW5zYWN0aW9uSWQgeGlk OwkJCS8qIGlkIG9mIHRvcC1sZXZlbCB0cmFuc2FjdGlvbiBjdXJyZW50bHkgYmVpbmcKLQkJ CQkJCQkJICogZXhlY3V0ZWQgYnkgdGhpcyBwcm9jLCBpZiBydW5uaW5nIGFuZCBYSUQKLQkJ CQkJCQkJICogaXMgYXNzaWduZWQ7IGVsc2UgSW52YWxpZFRyYW5zYWN0aW9uSWQuCi0JCQkJ CQkJCSAqIG1pcnJvcmVkIGluIFByb2NHbG9iYWwtPnhpZHNbcGd4YWN0b2ZmXSAqLwotCi0J VHJhbnNhY3Rpb25JZCB4bWluOwkJCS8qIG1pbmltYWwgcnVubmluZyBYSUQgYXMgaXQgd2Fz IHdoZW4gd2Ugd2VyZQotCQkJCQkJCQkgKiBzdGFydGluZyBvdXIgeGFjdCwgZXhjbHVkaW5n IExBWlkgVkFDVVVNOgotCQkJCQkJCQkgKiB2YWN1dW0gbXVzdCBub3QgcmVtb3ZlIHR1cGxl cyBkZWxldGVkIGJ5Ci0JCQkJCQkJCSAqIHhpZCA+PSB4bWluICEgKi8KKwkvKiBUaGVzZSBm aWVsZHMgYXJlIHplcm8gd2hpbGUgYSBiYWNrZW5kIGlzIHN0aWxsIHN0YXJ0aW5nIHVwOiAq LworCU9pZAkJCWRhdGFiYXNlSWQ7CQkvKiBPSUQgb2YgZGF0YWJhc2UgdGhpcyBiYWNrZW5k IGlzIHVzaW5nICovCisJT2lkCQkJcm9sZUlkOwkJCS8qIE9JRCBvZiByb2xlIHVzaW5nIHRo aXMgYmFja2VuZCAqLwogCi0JaW50CQkJcGlkOwkJCS8qIEJhY2tlbmQncyBwcm9jZXNzIElE OyAwIGlmIHByZXBhcmVkIHhhY3QgKi8KKwlPaWQJCQl0ZW1wTmFtZXNwYWNlSWQ7CS8qIE9J RCBvZiB0ZW1wIHNjaGVtYSB0aGlzIGJhY2tlbmQgaXMKKwkJCQkJCQkJCSAqIHVzaW5nICov CiAKIAlpbnQJCQlwZ3hhY3RvZmY7CQkvKiBvZmZzZXQgaW50byB2YXJpb3VzIFByb2NHbG9i YWwtPmFycmF5cyB3aXRoCiAJCQkJCQkJCSAqIGRhdGEgbWlycm9yZWQgZnJvbSB0aGlzIFBH UFJPQyAqLwogCisJdWludDgJCXN0YXR1c0ZsYWdzOwkvKiB0aGlzIGJhY2tlbmQncyBzdGF0 dXMgZmxhZ3MsIHNlZSBQUk9DXyoKKwkJCQkJCQkJICogYWJvdmUuIG1pcnJvcmVkIGluCisJ CQkJCQkJCSAqIFByb2NHbG9iYWwtPnN0YXR1c0ZsYWdzW3BneGFjdG9mZl0gKi8KKworCS8q LS0tLSBUcmFuc2FjdGlvbnMgYW5kIHNuYXBzaG90cyAtLS0tKi8KKwogCS8qCiAJICogQ3Vy cmVudGx5IHJ1bm5pbmcgdG9wLWxldmVsIHRyYW5zYWN0aW9uJ3MgdmlydHVhbCB4aWQuIFRv Z2V0aGVyIHRoZXNlCiAJICogZm9ybSBhIFZpcnR1YWxUcmFuc2FjdGlvbklkLCBidXQgd2Ug ZG9uJ3QgdXNlIHRoYXQgc3RydWN0IGJlY2F1c2UgdGhpcwpAQCAtMjI0LDE0ICsyMjgsMjcg QEAgdHlwZWRlZiBzdHJ1Y3QgUEdQUk9DCiAJCQkJCQkJCQkgKiBJbnZhbGlkTG9jYWxUcmFu c2FjdGlvbklkICovCiAJfQkJCXZ4aWQ7CiAKLQkvKiBUaGVzZSBmaWVsZHMgYXJlIHplcm8g d2hpbGUgYSBiYWNrZW5kIGlzIHN0aWxsIHN0YXJ0aW5nIHVwOiAqLwotCU9pZAkJCWRhdGFi YXNlSWQ7CQkvKiBPSUQgb2YgZGF0YWJhc2UgdGhpcyBiYWNrZW5kIGlzIHVzaW5nICovCi0J T2lkCQkJcm9sZUlkOwkJCS8qIE9JRCBvZiByb2xlIHVzaW5nIHRoaXMgYmFja2VuZCAqLwor CVRyYW5zYWN0aW9uSWQgeGlkOwkJCS8qIGlkIG9mIHRvcC1sZXZlbCB0cmFuc2FjdGlvbiBj dXJyZW50bHkgYmVpbmcKKwkJCQkJCQkJICogZXhlY3V0ZWQgYnkgdGhpcyBwcm9jLCBpZiBy dW5uaW5nIGFuZCBYSUQKKwkJCQkJCQkJICogaXMgYXNzaWduZWQ7IGVsc2UgSW52YWxpZFRy YW5zYWN0aW9uSWQuCisJCQkJCQkJCSAqIG1pcnJvcmVkIGluIFByb2NHbG9iYWwtPnhpZHNb cGd4YWN0b2ZmXSAqLwogCi0JT2lkCQkJdGVtcE5hbWVzcGFjZUlkOwkvKiBPSUQgb2YgdGVt cCBzY2hlbWEgdGhpcyBiYWNrZW5kIGlzCi0JCQkJCQkJCQkgKiB1c2luZyAqLworCVRyYW5z YWN0aW9uSWQgeG1pbjsJCQkvKiBtaW5pbWFsIHJ1bm5pbmcgWElEIGFzIGl0IHdhcyB3aGVu IHdlIHdlcmUKKwkJCQkJCQkJICogc3RhcnRpbmcgb3VyIHhhY3QsIGV4Y2x1ZGluZyBMQVpZ IFZBQ1VVTToKKwkJCQkJCQkJICogdmFjdXVtIG11c3Qgbm90IHJlbW92ZSB0dXBsZXMgZGVs ZXRlZCBieQorCQkJCQkJCQkgKiB4aWQgPj0geG1pbiAhICovCiAKLQlCYWNrZW5kVHlwZSBi YWNrZW5kVHlwZTsJLyogd2hhdCBraW5kIG9mIHByb2Nlc3MgaXMgdGhpcz8gKi8KKwlYaWRD YWNoZVN0YXR1cyBzdWJ4aWRTdGF0dXM7CS8qIG1pcnJvcmVkIHdpdGgKKwkJCQkJCQkJCSAq IFByb2NHbG9iYWwtPnN1YnhpZFN0YXRlc1tpXSAqLworCXN0cnVjdCBYaWRDYWNoZSBzdWJ4 aWRzOwkvKiBjYWNoZSBmb3Igc3VidHJhbnNhY3Rpb24gWElEcyAqLworCisJLyotLS0tIElu dGVyLXByb2Nlc3Mgc2lnbmFsaW5nIC0tLS0qLworCisJTGF0Y2gJCXByb2NMYXRjaDsJCS8q IGdlbmVyaWMgbGF0Y2ggZm9yIHByb2Nlc3MgKi8KKworCVBHU2VtYXBob3JlIHNlbTsJCQkv KiBPTkUgc2VtYXBob3JlIHRvIHNsZWVwIG9uICovCisKKwlpbnQJCQlkZWxheUNoa3B0Rmxh Z3M7CS8qIGZvciBERUxBWV9DSEtQVF8qIGZsYWdzICovCiAKIAkvKgogCSAqIFdoaWxlIGlu IGhvdCBzdGFuZGJ5IG1vZGUsIHNob3dzIHRoYXQgYSBjb25mbGljdCBzaWduYWwgaGFzIGJl ZW4gc2VudApAQCAtMjQzLDYgKzI2MCw4IEBAIHR5cGVkZWYgc3RydWN0IFBHUFJPQwogCSAq LwogCXBnX2F0b21pY191aW50MzIgcGVuZGluZ1JlY292ZXJ5Q29uZmxpY3RzOwogCisJLyot LS0tIExXTG9jayB3YWl0aW5nIC0tLS0qLworCiAJLyoKIAkgKiBJbmZvIGFib3V0IExXTG9j ayB0aGUgcHJvY2VzcyBpcyBjdXJyZW50bHkgd2FpdGluZyBmb3IsIGlmIGFueS4KIAkgKgpA QCAtMjU3LDYgKzI3NiwxNiBAQCB0eXBlZGVmIHN0cnVjdCBQR1BST0MKIAkvKiBTdXBwb3J0 IGZvciBjb25kaXRpb24gdmFyaWFibGVzLiAqLwogCXByb2NsaXN0X25vZGUgY3ZXYWl0TGlu azsJLyogcG9zaXRpb24gaW4gQ1Ygd2FpdCBsaXN0ICovCiAKKwkvKi0tLS0gTG9jayBtYW5h Z2VyIGRhdGEgLS0tLSovCisKKwkvKgorCSAqIFN1cHBvcnQgZm9yIGxvY2sgZ3JvdXBzLiAg VXNlIExvY2tIYXNoUGFydGl0aW9uTG9ja0J5UHJvYyBvbiB0aGUgZ3JvdXAKKwkgKiBsZWFk ZXIgdG8gZ2V0IHRoZSBMV0xvY2sgcHJvdGVjdGluZyB0aGVzZSBmaWVsZHMuCisJICovCisJ UEdQUk9DCSAgICpsb2NrR3JvdXBMZWFkZXI7CS8qIGxvY2sgZ3JvdXAgbGVhZGVyLCBpZiBJ J20gYSBtZW1iZXIgKi8KKwlkbGlzdF9oZWFkCWxvY2tHcm91cE1lbWJlcnM7CS8qIGxpc3Qg b2YgbWVtYmVycywgaWYgSSdtIGEgbGVhZGVyICovCisJZGxpc3Rfbm9kZQlsb2NrR3JvdXBM aW5rOwkvKiBteSBtZW1iZXIgbGluaywgaWYgSSdtIGEgbWVtYmVyICovCisKIAkvKiBJbmZv IGFib3V0IGxvY2sgdGhlIHByb2Nlc3MgaXMgY3VycmVudGx5IHdhaXRpbmcgZm9yLCBpZiBh bnkuICovCiAJLyogd2FpdExvY2sgYW5kIHdhaXRQcm9jTG9jayBhcmUgTlVMTCBpZiBub3Qg Y3VycmVudGx5IHdhaXRpbmcuICovCiAJTE9DSwkgICAqd2FpdExvY2s7CQkvKiBMb2NrIG9i amVjdCB3ZSdyZSBzbGVlcGluZyBvbiAuLi4gKi8KQEAgLTI2NSwxNCArMjk0LDI4IEBAIHR5 cGVkZWYgc3RydWN0IFBHUFJPQwogCUxPQ0tNT0RFCXdhaXRMb2NrTW9kZTsJLyogdHlwZSBv ZiBsb2NrIHdlJ3JlIHdhaXRpbmcgZm9yICovCiAJTE9DS01BU0sJaGVsZExvY2tzOwkJLyog Yml0bWFzayBmb3IgbG9jayB0eXBlcyBhbHJlYWR5IGhlbGQgb24gdGhpcwogCQkJCQkJCQkg KiBsb2NrIG9iamVjdCBieSB0aGlzIGJhY2tlbmQgKi8KKwogCXBnX2F0b21pY191aW50NjQg d2FpdFN0YXJ0OyAvKiB0aW1lIGF0IHdoaWNoIHdhaXQgZm9yIGxvY2sgYWNxdWlzaXRpb24K IAkJCQkJCQkJICogc3RhcnRlZCAqLwogCi0JaW50CQkJZGVsYXlDaGtwdEZsYWdzOwkvKiBm b3IgREVMQVlfQ0hLUFRfKiBmbGFncyAqLworCVByb2NXYWl0U3RhdHVzIHdhaXRTdGF0dXM7 CiAKLQl1aW50OAkJc3RhdHVzRmxhZ3M7CS8qIHRoaXMgYmFja2VuZCdzIHN0YXR1cyBmbGFn cywgc2VlIFBST0NfKgotCQkJCQkJCQkgKiBhYm92ZS4gbWlycm9yZWQgaW4KLQkJCQkJCQkJ ICogUHJvY0dsb2JhbC0+c3RhdHVzRmxhZ3NbcGd4YWN0b2ZmXSAqLworCS8qCisJICogQWxs IFBST0NMT0NLIG9iamVjdHMgZm9yIGxvY2tzIGhlbGQgb3IgYXdhaXRlZCBieSB0aGlzIGJh Y2tlbmQgYXJlCisJICogbGlua2VkIGludG8gb25lIG9mIHRoZXNlIGxpc3RzLCBhY2NvcmRp bmcgdG8gdGhlIHBhcnRpdGlvbiBudW1iZXIgb2YKKwkgKiB0aGVpciBsb2NrLgorCSAqLwor CWRsaXN0X2hlYWQJbXlQcm9jTG9ja3NbTlVNX0xPQ0tfUEFSVElUSU9OU107CisKKwkvKi0t IHJlY29yZGluZyBmYXN0LXBhdGggbG9ja3MgdGFrZW4gYnkgdGhpcyBiYWNrZW5kLiAtLSov CisJTFdMb2NrCQlmcEluZm9Mb2NrOwkJLyogcHJvdGVjdHMgcGVyLWJhY2tlbmQgZmFzdC1w YXRoIHN0YXRlICovCisJdWludDY0CSAgICpmcExvY2tCaXRzOwkJLyogbG9jayBtb2RlcyBo ZWxkIGZvciBlYWNoIGZhc3QtcGF0aCBzbG90ICovCisJT2lkCQkgICAqZnBSZWxJZDsJCS8q IHNsb3RzIGZvciByZWwgb2lkcyAqLworCWJvb2wJCWZwVlhJRExvY2s7CQkvKiBhcmUgd2Ug aG9sZGluZyBhIGZhc3QtcGF0aCBWWElEIGxvY2s/ICovCisJTG9jYWxUcmFuc2FjdGlvbklk IGZwTG9jYWxUcmFuc2FjdGlvbklkOwkvKiBseGlkIGZvciBmYXN0LXBhdGggVlhJRAorCQkJ CQkJCQkJCQkJICogbG9jayAqLworCisJLyotLS0tIFN5bmNocm9ub3VzIHJlcGxpY2F0aW9u IHdhaXRpbmcgLS0tLSovCiAKIAkvKgogCSAqIEluZm8gdG8gYWxsb3cgdXMgdG8gd2FpdCBm b3Igc3luY2hyb25vdXMgcmVwbGljYXRpb24sIGlmIG5lZWRlZC4KQEAgLTI4NCwxOCArMzI3 LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUEdQUk9DCiAJaW50CQkJc3luY1JlcFN0YXRlOwkvKiB3 YWl0IHN0YXRlIGZvciBzeW5jIHJlcCAqLwogCWRsaXN0X25vZGUJc3luY1JlcExpbmtzOwkv KiBsaXN0IGxpbmsgaWYgcHJvY2VzcyBpcyBpbiBzeW5jcmVwIHF1ZXVlICovCiAKLQkvKgot CSAqIEFsbCBQUk9DTE9DSyBvYmplY3RzIGZvciBsb2NrcyBoZWxkIG9yIGF3YWl0ZWQgYnkg dGhpcyBiYWNrZW5kIGFyZQotCSAqIGxpbmtlZCBpbnRvIG9uZSBvZiB0aGVzZSBsaXN0cywg YWNjb3JkaW5nIHRvIHRoZSBwYXJ0aXRpb24gbnVtYmVyIG9mCi0JICogdGhlaXIgbG9jay4K LQkgKi8KLQlkbGlzdF9oZWFkCW15UHJvY0xvY2tzW05VTV9MT0NLX1BBUlRJVElPTlNdOwot Ci0JWGlkQ2FjaGVTdGF0dXMgc3VieGlkU3RhdHVzOwkvKiBtaXJyb3JlZCB3aXRoCi0JCQkJ CQkJCQkgKiBQcm9jR2xvYmFsLT5zdWJ4aWRTdGF0ZXNbaV0gKi8KLQlzdHJ1Y3QgWGlkQ2Fj aGUgc3VieGlkczsJLyogY2FjaGUgZm9yIHN1YnRyYW5zYWN0aW9uIFhJRHMgKi8KKwkvKi0t LS0gU3VwcG9ydCBmb3IgZ3JvdXAgWElEIGNsZWFyaW5nLiAtLS0tKi8KIAotCS8qIFN1cHBv cnQgZm9yIGdyb3VwIFhJRCBjbGVhcmluZy4gKi8KIAkvKiB0cnVlLCBpZiBtZW1iZXIgb2Yg UHJvY0FycmF5IGdyb3VwIHdhaXRpbmcgZm9yIFhJRCBjbGVhciAqLwogCWJvb2wJCXByb2NB cnJheUdyb3VwTWVtYmVyOwogCS8qIG5leHQgUHJvY0FycmF5IGdyb3VwIG1lbWJlciB3YWl0 aW5nIGZvciBYSUQgY2xlYXIgKi8KQEAgLTMwNyw5ICszNDAsNyBAQCB0eXBlZGVmIHN0cnVj dCBQR1BST0MKIAkgKi8KIAlUcmFuc2FjdGlvbklkIHByb2NBcnJheUdyb3VwTWVtYmVyWGlk OwogCi0JdWludDMyCQl3YWl0X2V2ZW50X2luZm87CS8qIHByb2MncyB3YWl0IGluZm9ybWF0 aW9uICovCi0KLQkvKiBTdXBwb3J0IGZvciBncm91cCB0cmFuc2FjdGlvbiBzdGF0dXMgdXBk YXRlLiAqLworCS8qLS0tLSBTdXBwb3J0IGZvciBncm91cCB0cmFuc2FjdGlvbiBzdGF0dXMg dXBkYXRlLiAtLS0tKi8KIAlib29sCQljbG9nR3JvdXBNZW1iZXI7CS8qIHRydWUsIGlmIG1l bWJlciBvZiBjbG9nIGdyb3VwICovCiAJcGdfYXRvbWljX3VpbnQzMiBjbG9nR3JvdXBOZXh0 OyAvKiBuZXh0IGNsb2cgZ3JvdXAgbWVtYmVyICovCiAJVHJhbnNhY3Rpb25JZCBjbG9nR3Jv dXBNZW1iZXJYaWQ7CS8qIHRyYW5zYWN0aW9uIGlkIG9mIGNsb2cgZ3JvdXAgbWVtYmVyICov CkBAIC0zMjAsMjEgKzM1MSw4IEBAIHR5cGVkZWYgc3RydWN0IFBHUFJPQwogCVhMb2dSZWNQ dHIJY2xvZ0dyb3VwTWVtYmVyTHNuOyAvKiBXQUwgbG9jYXRpb24gb2YgY29tbWl0IHJlY29y ZCBmb3IgY2xvZwogCQkJCQkJCQkJICogZ3JvdXAgbWVtYmVyICovCiAKLQkvKiBMb2NrIG1h bmFnZXIgZGF0YSwgcmVjb3JkaW5nIGZhc3QtcGF0aCBsb2NrcyB0YWtlbiBieSB0aGlzIGJh Y2tlbmQuICovCi0JTFdMb2NrCQlmcEluZm9Mb2NrOwkJLyogcHJvdGVjdHMgcGVyLWJhY2tl bmQgZmFzdC1wYXRoIHN0YXRlICovCi0JdWludDY0CSAgICpmcExvY2tCaXRzOwkJLyogbG9j ayBtb2RlcyBoZWxkIGZvciBlYWNoIGZhc3QtcGF0aCBzbG90ICovCi0JT2lkCQkgICAqZnBS ZWxJZDsJCS8qIHNsb3RzIGZvciByZWwgb2lkcyAqLwotCWJvb2wJCWZwVlhJRExvY2s7CQkv KiBhcmUgd2UgaG9sZGluZyBhIGZhc3QtcGF0aCBWWElEIGxvY2s/ICovCi0JTG9jYWxUcmFu c2FjdGlvbklkIGZwTG9jYWxUcmFuc2FjdGlvbklkOwkvKiBseGlkIGZvciBmYXN0LXBhdGgg VlhJRAotCQkJCQkJCQkJCQkJICogbG9jayAqLwotCi0JLyoKLQkgKiBTdXBwb3J0IGZvciBs b2NrIGdyb3Vwcy4gIFVzZSBMb2NrSGFzaFBhcnRpdGlvbkxvY2tCeVByb2Mgb24gdGhlIGdy b3VwCi0JICogbGVhZGVyIHRvIGdldCB0aGUgTFdMb2NrIHByb3RlY3RpbmcgdGhlc2UgZmll bGRzLgotCSAqLwotCVBHUFJPQwkgICAqbG9ja0dyb3VwTGVhZGVyOwkvKiBsb2NrIGdyb3Vw IGxlYWRlciwgaWYgSSdtIGEgbWVtYmVyICovCi0JZGxpc3RfaGVhZAlsb2NrR3JvdXBNZW1i ZXJzOwkvKiBsaXN0IG9mIG1lbWJlcnMsIGlmIEknbSBhIGxlYWRlciAqLwotCWRsaXN0X25v ZGUJbG9ja0dyb3VwTGluazsJLyogbXkgbWVtYmVyIGxpbmssIGlmIEknbSBhIG1lbWJlciAq LworCS8qLS0tLSBTdGF0dXMgcmVwb3J0aW5nIC0tLS0qLworCXVpbnQzMgkJd2FpdF9ldmVu dF9pbmZvOwkvKiBwcm9jJ3Mgd2FpdCBpbmZvcm1hdGlvbiAqLwogfQogCiAvKgotLSAKMi40 Ny4zCgo= --------------0wOMYO31l8jlNMVY26M8d054--