From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from picard.linux.it (picard.linux.it [213.254.12.146]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A97E3CD98CE for ; Tue, 16 Jun 2026 04:54:57 +0000 (UTC) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 4D6653E2238 for ; Tue, 16 Jun 2026 06:54:55 +0200 (CEST) Received: from in-7.smtp.seeweb.it (in-7.smtp.seeweb.it [IPv6:2001:4b78:1:20::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id 7C8733C54DA for ; Tue, 16 Jun 2026 06:54:24 +0200 (CEST) Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by in-7.smtp.seeweb.it (Postfix) with ESMTPS id 368E32009E9 for ; Tue, 16 Jun 2026 06:54:22 +0200 (CEST) Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65G0mGJ63946471; Tue, 16 Jun 2026 04:54:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=Qh0XCT pHGSfQbZ7M8c081HUjY57pbXlFwZTvLdgnWnE=; b=mVBpGNYIscviDNZM0hlvAI /Vna4P00ra3IsxxRyW9LbYIo1d92S0cmYIO+Qt6e8yiChIFUWjZ+pKDSHOs0+/g8 utCgdheQFNSKUAL3mhbZ2FZNmTIRb5QHhnDXbsPufJfxqZNm3s488+o8J81EqrsO wT7G3SBNxT9Tpk6nwpgql8cWN2r/WzdQHCAFxg7Io+zfP9F5Wfnwca4Z33FCor7o 3wINAWK79Z0sLDohtbhL3+TAM0DEflkb/lobYVmBe9dpAm07pYSTzBpm05NdLIbY t8EEu7JjUSmu6z6GRopashq6Q82itqAEysPVy36bKnDMD7g34lDG54vICi49Nc4g == Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4es23nkvav-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 16 Jun 2026 04:54:20 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 65G4Z86x006890; Tue, 16 Jun 2026 04:54:19 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4eshww1v5m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 16 Jun 2026 04:54:19 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 65G4sHIx47382826 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 16 Jun 2026 04:54:17 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A210220043; Tue, 16 Jun 2026 04:54:17 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CF8F42004B; Tue, 16 Jun 2026 04:54:16 +0000 (GMT) Received: from localhost.localdomain (unknown [9.43.76.19]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 16 Jun 2026 04:54:16 +0000 (GMT) From: Sachin Sant To: ltp@lists.linux.it Date: Tue, 16 Jun 2026 10:24:07 +0530 Message-Id: <20260616045414.9081-2-sachinp@linux.ibm.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20260616045414.9081-1-sachinp@linux.ibm.com> References: <20260616045414.9081-1-sachinp@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=XtnK/1F9 c=1 sm=1 tr=0 ts=6a30d6fd cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=ZJEMAUhidu7nXVqH2UMA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE2MDA0NSBTYWx0ZWRfX0hz0Qz8MQ5l0 JjiNg63LEnOJPWa+6s8aAIuknKuJ1SCA2tPZOhjXRWICfF3csoQhxZmzwMXkAAaa9AJIQHPJcqR 1CKwjQrtgwit4uD5ZmhNZrXJCxsw+ek6KhmFSbN9SNBAbvP39kUEUA4XgcrST9Xyq0pB967lNx/ 5yLIv+5s77ibZQwXcj/UoVcxYVwWBZ08/IaatiQT+PSuhD+NZBxSrOemwRdE9/BZr9ngn2rXagS bxaw0cDlhp4R/FgIhoDYoK3DhkWNAaITwRhlnfOkuQKbLqPCzuOfgNjhkif9jHFrMJ1dpwP3rcM NMhxZpBSox0FRzPA9QiWacysIiGLK+eqa+FJ5YrKA5Qh715GKr438M+hIP+Qlj949T2hLewXL7u gMeI9hHQ+N8W54+HkU4IozfUtVzqzeBs0ANisCeEr15mvlxwg+dooU8RVXjJi+Z/bzCh0iGcmHM b5Mg1vxbCbmCfORjbeA== X-Proofpoint-GUID: nTVEjgNIoP35XntLyAVcNTVKPlAp677i X-Proofpoint-ORIG-GUID: nTVEjgNIoP35XntLyAVcNTVKPlAp677i X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE2MDA0NSBTYWx0ZWRfX0xHz18T3E8Fa rYLT1TnyFhqk91QmpcEA2hWwdNTdk9GPCPsXw/1ebWB+vlYuupAZiqFWOmL+7LPCaH9vPmiOqH4 1CSO2SrfqTyWLo+9WX4c+3zt8pOO1v4= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-16_01,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 malwarescore=0 spamscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606160045 X-Virus-Scanned: clamav-milter 1.0.9 at in-7.smtp.seeweb.it X-Virus-Status: Clean Subject: [LTP] [PATCH v12 1/8] fs/acl: Add ACL_USER_OBJ permission test X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ltp-bounces+ltp=archiver.kernel.org@lists.linux.it Sender: "ltp" QWRkIGFjbF91c2VyX29iajAxIHRlc3QgdG8gdmFsaWRhdGUgQUNMX1VTRVJfT0JKIHBlcm1pc3Np b25zOgotIE93bmVyIHBlcm1pc3Npb25zIGNvcnJlY3RseSBjb250cm9sIGZpbGUvZGlyZWN0b3J5 IGFjY2VzcwotIEFDTF9VU0VSX09CSj1yd3ggdmlhIHNldHhhdHRyKCkgb3ZlcnJpZGVzIGNobW9k IHJlc3RyaWN0aW9ucwotIE93bmVyIHBlcm1pc3Npb25zIHdvcmsgaW5kZXBlbmRlbnRseSBvZiBn cm91cC9vdGhlciBwZXJtaXNzaW9ucwotIFRlc3RzIHVzZSBhcmJpdHJhcnkgVUlEcyB3aXRob3V0 IHJlcXVpcmluZyBhY3R1YWwgdXNlciBjcmVhdGlvbgoKVGhlIHBhdGNoIGFsc28gYWRkcyBhY2xf bGliLmggY29udGFpbmluZyBzaGFyZWQgaGVscGVycyBmb3IgQUNMCm1hbmlwdWxhdGlvbiB2aWEg eGF0dHIgQVBJLCBpbmNsdWRpbmc6Ci0gQUNMIHN0cnVjdHVyZSBtYW5hZ2VtZW50IChhY2xfaW5p dCwgYWNsX2ZyZWUsIGFjbF9hZGRfZW50cnkpCi0gQUNMIHNlcmlhbGl6YXRpb24vZGVzZXJpYWxp emF0aW9uIGZvciBrZXJuZWwgeGF0dHIgZm9ybWF0Ci0gQUNMIGdldC9zZXQgb3BlcmF0aW9ucyB1 c2luZyBnZXR4YXR0ci9zZXR4YXR0cgotIHBlcm1pc3Npb24gdGVzdGluZyBhbmQgZmlsZSBvcGVy YXRpb25zCi0gU3VwcG9ydCBmb3IgYm90aCBBQ0NFU1MgYW5kIERFRkFVTFQgQUNMIHR5cGVzCgpU aGUgaW1wbGVtZW50YXRpb24gdXNlcyBkaXJlY3QgeGF0dHIgQVBJIChnZXR4YXR0ci9zZXR4YXR0 cikgdG8KdGVzdCBrZXJuZWwgQUNMIGJlaGF2aW9yIGRpcmVjdGx5LiBUZXN0cyBydW4gb24gZXh0 Mi8zLzQsClhGUywgYW5kIEJ0cmZzIGZpbGVzeXN0ZW1zIHdpdGggQUNMIHN1cHBvcnQuCgpTdWdn ZXN0ZWQtYnk6IEN5cmlsIEhydWJpcyA8Y2hydWJpc0BzdXNlLmN6PgpTaWduZWQtb2ZmLWJ5OiBT YWNoaW4gU2FudCA8c2FjaGlucEBsaW51eC5pYm0uY29tPgotLS0KTm8gY2hhbmdlcyBpbiB2MTIK ClYxMSBjaGFuZ2VzOgotIENvbnZlcnRlZCBTQUZFX1RSWV8qIGZ1bmN0aW9ucyB0byBpbmxpbmUu Ci0gdjEwIGxpbmsgaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbHRwLzIwMjYwNjE1MDcyNTE0LjUz MDI2LTEtc2FjaGlucEBsaW51eC5pYm0uY29tL1QvI3QKClYxMCBjaGFuZ2VzOgotIE5vIGNoYW5n ZQoKVjkgY2hhbmdlczoKLSBVc2UgUlNUIG1hbnBhZ2UgZm9ybWF0dGVkIGRvY3VtZW50YXRpb24K LSB2OCBsaW5rIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2x0cC8yMDI2MDYxMzA5MDU0My43ODY0 My0xLXNhY2hpbnBAbGludXguaWJtLmNvbS9ULyN0CgpWOCBjaGFuZ2VzOgotIFJlbW92ZWQgbm8g Y2hvd24gdmFyaWFudCBvZiByZXNldF90ZXN0X3BhdGgKLSBVc2UgUlNUIG1hbnBhZ2UgZm9ybWF0 dGVkIGRvY3VtZW50YXRpb24KLSB2NyBsaW5rIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2x0cC8y MDI2MDYxMjE3MTkzMC4xMTk2NC0xLXNhY2hpbnBAbGludXguaWJtLmNvbS9ULyN0CgpWNyBjaGFu Z2VzOgotIFVzZSBTQUZFXyB2YXJpYW50cyBvZiBzZXRyZXNnaWQvc2V0cmVzdWlkCi0gUmVwbGFj ZSBUU1RfRVhQX0ZBSUwgd2l0aCBUU1RfRVhQX0ZBSUwyCi0gdjYgbGluayBodHRwczovL2xvcmUu a2VybmVsLm9yZy9sdHAvMjAyNjA2MTIxMDI1MDIuMjQwNzEtMS1zYWNoaW5wQGxpbnV4LmlibS5j b20vVC8jdAoKVjYgY2hhbmdlczoKLSBBZGRlZCBIQVZFX1NZU19YQVRUUl9IIGd1YXJkcyBmb3Ig c3lzdGVtcyB3aXRob3V0IHhhdHRyIHN1cHBvcnQKLSBSZW1vdmVkIHVubmVjZXNzYXJ5IGVycm9y IHBhdGhzIGFuZCBtYW51YWwgc3RhdHVzIGNoZWNraW5nCi0gVXNlcyBTQUZFX01BTExPQygpIGFu ZCBuZXcgaGVscGVyIG1hY3JvcwotIEFkZGVkIGFjbF90eXBlX3RvX25hbWUoKSBoZWxwZXIgdG8g ZWxpbWluYXRlIGR1cGxpY2F0aW9uCi0gdjUgbGluayBodHRwczovL2xvcmUua2VybmVsLm9yZy9s dHAvMjAyNjA2MDgwOTIyMDAuOTI4MjctMS1zYWNoaW5wQGxpbnV4LmlibS5jb20vVC8jdAoKVjUg Y2hhbmdlczoKLSBTd2l0Y2ggdG8ga2VybmVsIG9ubHkgdGVzdCB2YWxpZGF0aW9uIHRvIHJlbW92 ZSBkZXBlbmRlbmN5IG9uIGxpYmFjbAogIGFuZCB1c2VyYWRkL2RlbCBjb21tYW5kcy4KLSB2NCBs aW5rIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2x0cC8yMDI2MDYwNDA2NTQxNy4yNTkyNC0xLXNh Y2hpbnBAbGludXguaWJtLmNvbS9ULyN0CgpWNCBjaGFuZ2VzOgotIEFkZMKgLVXCoGZsYWcgaW4g Y3JlYXRlX3VzZXJfaWZfbmVlZGVkKCnCoHRvIHVzZXJhZGQgZm9yIGd1YXJhbnRlZWQKICB1c2Vy LXByaXZhdGUgZ3JvdXBzLgotIE1vdmUgRU9QTk9UU1VQUCBoYW5kbGluZyBpbnRvwqBzZXRfYWNs X2ZpbGUoKcKgaGVscGVyCi0gdjMgbGluayBodHRwczovL2xvcmUua2VybmVsLm9yZy9sdHAvMjAy NjA2MDMxNDAxNDcuNTA3MzgtMS1zYWNoaW5wQGxpbnV4LmlibS5jb20vVC8jdAoKVjMgY2hhbmdl czoKLSBVcGRhdGVkIGNvcHlyaWdodCBoZWFkZXIgYXMgcGVyIExUUCBmb3JtYXQuCi0gdjIgbGlu ayBodHRwczovL2xvcmUua2VybmVsLm9yZy9sdHAvMjAyNjA2MDMwNjU3NDQuNDcxMDYtMS1zYWNo aW5wQGxpbnV4LmlibS5jb20vVC8jdAoKVjIgY2hhbmdlczoKLSBBZGRlZCBubyBjaG93biB2YXJp YW50IG9mIHJlc2V0X3Rlc3RfcGF0aCB0byBza2lwIGNob3duIHN0ZXAuCiAgYWNsX2xpbmswMSBh bmQgeGF0dHJfdGVzdDAxIHRlc3RzIGFyZSB1cGRhdGVkIHRvIHVzZSB0aGlzCiAgdmFyaWFudC4K LSBVcGRhdGVkIGFjbF91c2VyX29iajAxLmMgdG8gY29ycmVjdCBpbmNvcnJlY3QgZGVzY3JpcHRp b24KLSB2MSBsaW5rIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2x0cC8yMDI2MDYwMjEyMTk1OC4y NzQ5NC0xLXNhY2hpbnBAbGludXguaWJtLmNvbS9ULyN0CgpWMSBjaGFuZ2VzOgotIFVzZSBBQ0xf TElCUyB2YXJpYWJsZSBpbnN0ZWFkIG9mIGhhcmRjb2RlZCAtbGFjbCBpbiBNYWtlZmlsZQotIE1v dmUgQUNMIGhlYWRlciBpbmNsdWRlcyBpbnNpZGUgZmVhdHVyZSBndWFyZHMgaW4gYWNsX2xpYi5o Ci0gVXNlIEhBVkVfTElCQUNMIGd1YXJkcyBpbiAuYyBjb2RlCi0gUmVwb3J0IFRDT05GIHdoZW4g bGliYWNsIGlzIG5vdCBhdmFpbGFibGUKLSByZmMgbGluayBodHRwczovL2xvcmUua2VybmVsLm9y Zy9sdHAvNDc3ODM2ZmQtODBjOC00MTY4LWJmZTYtMDBiMzc0YmIyNTM0QGxpbnV4LmlibS5jb20v VC8jdAoKLS0tCiBydW50ZXN0L2ZzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAz ICsKIHRlc3RjYXNlcy9rZXJuZWwvZnMvYWNsLy5naXRpZ25vcmUgICAgICAgfCAgIDEgKwogdGVz dGNhc2VzL2tlcm5lbC9mcy9hY2wvTWFrZWZpbGUgICAgICAgICB8ICAgOCArCiB0ZXN0Y2FzZXMv a2VybmVsL2ZzL2FjbC9hY2xfbGliLmggICAgICAgIHwgNTA5ICsrKysrKysrKysrKysrKysrKysr KysrCiB0ZXN0Y2FzZXMva2VybmVsL2ZzL2FjbC9hY2xfdXNlcl9vYmowMS5jIHwgMTI3ICsrKysr KwogNSBmaWxlcyBjaGFuZ2VkLCA2NDggaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHRlc3RjYXNlcy9rZXJuZWwvZnMvYWNsLy5naXRpZ25vcmUKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0 ZXN0Y2FzZXMva2VybmVsL2ZzL2FjbC9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3Rj YXNlcy9rZXJuZWwvZnMvYWNsL2FjbF9saWIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RjYXNl cy9rZXJuZWwvZnMvYWNsL2FjbF91c2VyX29iajAxLmMKCmRpZmYgLS1naXQgYS9ydW50ZXN0L2Zz IGIvcnVudGVzdC9mcwppbmRleCAxZDc1M2UwZGQuLjJhODc4NzQ0YiAxMDA2NDQKLS0tIGEvcnVu dGVzdC9mcworKysgYi9ydW50ZXN0L2ZzCkBAIC04NywzICs4Nyw2IEBAIGJpbmZtdF9taXNjMDEg YmluZm10X21pc2MwMS5zaAogYmluZm10X21pc2MwMiBiaW5mbXRfbWlzYzAyLnNoCiAKIHNxdWFz aGZzMDEgc3F1YXNoZnMwMQorCisjIFJ1biB0aGUgYWNsIHRlc3RzCithY2xfdXNlcl9vYmowMSBh Y2xfdXNlcl9vYmowMQpkaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL2tlcm5lbC9mcy9hY2wvLmdpdGln bm9yZSBiL3Rlc3RjYXNlcy9rZXJuZWwvZnMvYWNsLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwLi5kOWM0NmRiMTEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0 Y2FzZXMva2VybmVsL2ZzL2FjbC8uZ2l0aWdub3JlCkBAIC0wLDAgKzEgQEAKKy9hY2xfdXNlcl9v YmowMQpkaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL2tlcm5lbC9mcy9hY2wvTWFrZWZpbGUgYi90ZXN0 Y2FzZXMva2VybmVsL2ZzL2FjbC9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAuLjJkOWNiYTQ2ZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RjYXNlcy9rZXJuZWwv ZnMvYWNsL01ha2VmaWxlCkBAIC0wLDAgKzEsOCBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogR1BMLTIuMC1vci1sYXRlcgorIyBDb3B5cmlnaHQgKGMpIDIwMjYgSUJNCisKK3RvcF9zcmNk aXIJCT89IC4uLy4uLy4uLy4uCisKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9pbmNsdWRlL21rL3Rl c3RjYXNlcy5taworCitpbmNsdWRlICQodG9wX3NyY2RpcikvaW5jbHVkZS9tay9nZW5lcmljX2xl YWZfdGFyZ2V0Lm1rCmRpZmYgLS1naXQgYS90ZXN0Y2FzZXMva2VybmVsL2ZzL2FjbC9hY2xfbGli LmggYi90ZXN0Y2FzZXMva2VybmVsL2ZzL2FjbC9hY2xfbGliLmgKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwLi4wZTI5NjNhMGYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0Y2Fz ZXMva2VybmVsL2ZzL2FjbC9hY2xfbGliLmgKQEAgLTAsMCArMSw1MDkgQEAKKy8qIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyICovCisvKgorICogQ29weXJpZ2h0IChj KSAyMDI2IElCTQorICogT3JpZ2luYWwgc2hlbGwgdGVzdCBieSBLYWkgWmhhbyAobHRjZDNAY24u aWJtLmNvbSkKKyAqIENvbnZlcnRlZCB0byBDIGJ5IFNhY2hpbiBTYW50IDxzYWNoaW5wQGxpbnV4 LmlibS5jb20+CisgKgorICogQ29tbW9uIGxpYnJhcnkgZm9yIEFDTCBhbmQgZXh0ZW5kZWQgYXR0 cmlidXRlIHRlc3RzIHVzaW5nIHhhdHRyIEFQSQorICovCisKKyNpZm5kZWYgX0dOVV9TT1VSQ0UK KyNkZWZpbmUgX0dOVV9TT1VSQ0UKKyNlbmRpZgorCisjaWZuZGVmIEFDTF9MSUJfSAorI2RlZmlu ZSBBQ0xfTElCX0gKKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8cHdkLmg+Cisj aW5jbHVkZSA8Z3JwLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxmY250bC5oPgor I2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPGVuZGlh bi5oPgorI2luY2x1ZGUgPHN5cy9mc3VpZC5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5j bHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3dhaXQuaD4KKworI2lmZGVmIEhBVkVf U1lTX1hBVFRSX0gKKyNpbmNsdWRlIDxzeXMveGF0dHIuaD4KKyNlbmRpZgorI2luY2x1ZGUgInRz dF90ZXN0LmgiCisjaW5jbHVkZSAidHN0X3NhZmVfc3RkaW8uaCIKKyNpbmNsdWRlICJ0c3RfY2Fw YWJpbGl0eS5oIgorCisjZGVmaW5lIE1OVFBPSU5UCSJtbnRwb2ludCIKKyNkZWZpbmUgVEVTVERJ UgkJTU5UUE9JTlQgIi90ZXN0ZGlyIgorI2RlZmluZSBURVNURklMRQlURVNURElSICIvdGVzdGZp bGUiCisjZGVmaW5lIFRFU1RTWU1MSU5LCVRFU1RESVIgIi90ZXN0c3ltbGluayIKKyNkZWZpbmUg WEFUVFJfQkFDS1VQX0ZJTEUgTU5UUE9JTlQgIi94YXR0cl9iYWNrdXAudHh0IgorCisvKiBFeHRl bmRlZCBhdHRyaWJ1dGUgdGVzdCB2YWx1ZXMgKi8KKyNkZWZpbmUgWEFUVFJfVEVTVF9ESVJfTkFN RQkidXNlci50ZXN0X2F0dHIiCisjZGVmaW5lIFhBVFRSX1RFU1RfRElSX1ZBTFVFCSJ0ZXN0X3Zh bHVlIgorI2RlZmluZSBYQVRUUl9URVNUX0RJUl9TSVpFCTEwCisjZGVmaW5lIFhBVFRSX1RFU1Rf RklMRV9OQU1FCSJ1c2VyLmZpbGVfYXR0ciIKKyNkZWZpbmUgWEFUVFJfVEVTVF9GSUxFX1ZBTFVF CSJmaWxlX3ZhbCIKKyNkZWZpbmUgWEFUVFJfVEVTVF9GSUxFX1NJWkUJOAorI2RlZmluZSBYQVRU Ul9URVNUMV9OQU1FCSJ1c2VyLnRlc3QxIgorI2RlZmluZSBYQVRUUl9URVNUMV9WQUxVRQkidmFs dWUxIgorI2RlZmluZSBYQVRUUl9URVNUMV9TSVpFCTYKKyNkZWZpbmUgWEFUVFJfVEVTVDJfTkFN RQkidXNlci50ZXN0MiIKKyNkZWZpbmUgWEFUVFJfVEVTVDJfVkFMVUUJInZhbHVlMiIKKyNkZWZp bmUgWEFUVFJfVEVTVDJfU0laRQk2CisKKy8qCisgKiBQT1NJWCBBQ0wgeGF0dHIgZm9ybWF0IGRl ZmluaXRpb25zCisgKiBUaGVzZSBtYXRjaCB0aGUga2VybmVsJ3MgaW50ZXJuYWwgcmVwcmVzZW50 YXRpb24KKyAqLworI2RlZmluZSBQT1NJWF9BQ0xfWEFUVFJfVkVSU0lPTgkweDAwMDIKKworLyog QUNMIGVudHJ5IHRhZyB0eXBlcyAqLworI2RlZmluZSBBQ0xfVU5ERUZJTkVEX1RBRwkweDAwCisj ZGVmaW5lIEFDTF9VU0VSX09CSgkJMHgwMQorI2RlZmluZSBBQ0xfVVNFUgkJMHgwMgorI2RlZmlu ZSBBQ0xfR1JPVVBfT0JKCQkweDA0CisjZGVmaW5lIEFDTF9HUk9VUAkJMHgwOAorI2RlZmluZSBB Q0xfTUFTSwkJMHgxMAorI2RlZmluZSBBQ0xfT1RIRVIJCTB4MjAKKworLyogQUNMIHBlcm1pc3Np b25zICovCisjZGVmaW5lIEFDTF9SRUFECQkweDA0CisjZGVmaW5lIEFDTF9XUklURQkJMHgwMgor I2RlZmluZSBBQ0xfRVhFQ1VURQkJMHgwMQorCisvKiBBQ0wgeGF0dHIgbmFtZXMgKi8KKyNkZWZp bmUgWEFUVFJfTkFNRV9QT1NJWF9BQ0xfQUNDRVNTCSJzeXN0ZW0ucG9zaXhfYWNsX2FjY2VzcyIK KyNkZWZpbmUgWEFUVFJfTkFNRV9QT1NJWF9BQ0xfREVGQVVMVAkic3lzdGVtLnBvc2l4X2FjbF9k ZWZhdWx0IgorCisvKiBBQ0wgdHlwZSBmb3Igc2V0L2dldCBvcGVyYXRpb25zICovCisjZGVmaW5l IEFDTF9UWVBFX0FDQ0VTUwkJMQorI2RlZmluZSBBQ0xfVFlQRV9ERUZBVUxUCTIKKworLyogQ29u dmVydCBob3N0IHRvIGxpdHRsZS1lbmRpYW4gKi8KKyNpZiBfX0JZVEVfT1JERVIgPT0gX19MSVRU TEVfRU5ESUFOCisjZGVmaW5lIGNwdV90b19sZTE2KHgpICh4KQorI2RlZmluZSBjcHVfdG9fbGUz Mih4KSAoeCkKKyNkZWZpbmUgbGUxNl90b19jcHUoeCkgKHgpCisjZGVmaW5lIGxlMzJfdG9fY3B1 KHgpICh4KQorI2Vsc2UKKyNkZWZpbmUgY3B1X3RvX2xlMTYoeCkgX19idWlsdGluX2Jzd2FwMTYo eCkKKyNkZWZpbmUgY3B1X3RvX2xlMzIoeCkgX19idWlsdGluX2Jzd2FwMzIoeCkKKyNkZWZpbmUg bGUxNl90b19jcHUoeCkgX19idWlsdGluX2Jzd2FwMTYoeCkKKyNkZWZpbmUgbGUzMl90b19jcHUo eCkgX19idWlsdGluX2Jzd2FwMzIoeCkKKyNlbmRpZgorCisvKgorICogUE9TSVggQUNMIHhhdHRy IGZvcm1hdCBhcyBzdG9yZWQgaW4ga2VybmVsCisgKiBUaGlzIGlzIHRoZSBvbi1kaXNrL2luLXhh dHRyIHJlcHJlc2VudGF0aW9uCisgKi8KK3N0cnVjdCBwb3NpeF9hY2xfeGF0dHJfaGVhZGVyIHsK Kwl1aW50MzJfdCBhX3ZlcnNpb247Cit9OworCitzdHJ1Y3QgcG9zaXhfYWNsX3hhdHRyX2VudHJ5 IHsKKwl1aW50MTZfdCBlX3RhZzsKKwl1aW50MTZfdCBlX3Blcm07CisJdWludDMyX3QgZV9pZDsK K307CisKKy8qCisgKiBDb21iaW5lZCB4YXR0ciBzdHJ1Y3R1cmUgZm9yIEFDTCBvcGVyYXRpb25z CisgKi8KK3N0cnVjdCBhY2xfeGF0dHIgeworCXN0cnVjdCBwb3NpeF9hY2xfeGF0dHJfaGVhZGVy IGhlYWRlcjsKKwlzdHJ1Y3QgcG9zaXhfYWNsX3hhdHRyX2VudHJ5IGVudHJpZXNbXTsKK307CisK Ky8qCisgKiBJbi1tZW1vcnkgQUNMIHJlcHJlc2VudGF0aW9uIGZvciBidWlsZGluZyBBQ0xzCisg Ki8KKyNkZWZpbmUgTUFYX0FDTF9FTlRSSUVTIDMyCisKK3N0cnVjdCBhY2xfZW50cnkgeworCXVp bnQxNl90IHRhZzsKKwl1aW50MTZfdCBwZXJtOworCXVpbnQzMl90IGlkOworfTsKKworc3RydWN0 IGFjbCB7CisJaW50IGNvdW50OworCXN0cnVjdCBhY2xfZW50cnkgZW50cmllc1tNQVhfQUNMX0VO VFJJRVNdOworfTsKKworLyoKKyAqIHRyeV91bmxpbmsgLSB1bmxpbmsgYSBmaWxlLCBpZ25vcmlu ZyBFTk9FTlQKKyAqIFdvbid0IFRCUk9LIGlmIGZpbGUgZG9lc24ndCBleGlzdAorICovCitzdGF0 aWMgaW5saW5lIHZvaWQgdHJ5X3VubGluayhjb25zdCBjaGFyICpwYXRoKQoreworCWlmICh1bmxp bmsocGF0aCkgPT0gLTEgJiYgZXJybm8gIT0gRU5PRU5UKQorCQl0c3RfYnJrKFRCUk9LIHwgVEVS Uk5PLCAidW5saW5rKCVzKSBmYWlsZWQiLCBwYXRoKTsKK30KKworLyoKKyAqIHRyeV9ybWRpciAt IHJlbW92ZSBhIGRpcmVjdG9yeSwgaWdub3JpbmcgRU5PRU5UCisgKiBXb24ndCBUQlJPSyBpZiBk aXJlY3RvcnkgZG9lc24ndCBleGlzdAorICovCitzdGF0aWMgaW5saW5lIHZvaWQgdHJ5X3JtZGly KGNvbnN0IGNoYXIgKnBhdGgpCit7CisJaWYgKHJtZGlyKHBhdGgpID09IC0xICYmIGVycm5vICE9 IEVOT0VOVCkKKwkJdHN0X2JyayhUQlJPSyB8IFRFUlJOTywgInJtZGlyKCVzKSBmYWlsZWQiLCBw YXRoKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJlc2V0X3Rlc3RfcGF0aCh2b2lkKQorewor CXRyeV91bmxpbmsoVEVTVFNZTUxJTkspOworCXRyeV91bmxpbmsoVEVTVEZJTEUpOworCXRyeV9y bWRpcihURVNURElSKTsKKworCVNBRkVfTUtESVIoVEVTVERJUiwgMDc1NSk7Cit9CisKK3N0YXRp YyBpbmxpbmUgdm9pZCBjbGVhbnVwX3Rlc3RmaWxlKHZvaWQpCit7CisJdHJ5X3VubGluayhURVNU RklMRSk7Cit9CisKKyNpZmRlZiBIQVZFX1NZU19YQVRUUl9ICisKKy8qCisgKiBJbml0aWFsaXpl IGFuIGVtcHR5IEFDTCBzdHJ1Y3R1cmUKKyAqLworc3RhdGljIGlubGluZSBzdHJ1Y3QgYWNsICph Y2xfaW5pdCh2b2lkKQoreworCXN0cnVjdCBhY2wgKmFjbCA9IFNBRkVfTUFMTE9DKHNpemVvZihz dHJ1Y3QgYWNsKSk7CisKKwlhY2wtPmNvdW50ID0gMDsKKwlyZXR1cm4gYWNsOworfQorCisvKgor ICogRnJlZSBhbiBBQ0wgc3RydWN0dXJlCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBhY2xfZnJl ZShzdHJ1Y3QgYWNsICphY2wpCit7CisJZnJlZShhY2wpOworfQorCisvKgorICogQWRkIGFuIEFD TCBlbnRyeSB0byB0aGUgQUNMIHN0cnVjdHVyZQorICovCitzdGF0aWMgaW5saW5lIGludCBhY2xf YWRkX2VudHJ5KHN0cnVjdCBhY2wgKmFjbCwgdWludDE2X3QgdGFnLCB1aW50MTZfdCBwZXJtLAor CQkJCXVpbnQzMl90IGlkKQoreworCWlmIChhY2wtPmNvdW50ID49IE1BWF9BQ0xfRU5UUklFUykg eworCQllcnJubyA9IEVOT01FTTsKKwkJcmV0dXJuIC0xOworCX0KKworCWFjbC0+ZW50cmllc1th Y2wtPmNvdW50XS50YWcgPSB0YWc7CisJYWNsLT5lbnRyaWVzW2FjbC0+Y291bnRdLnBlcm0gPSBw ZXJtOworCWFjbC0+ZW50cmllc1thY2wtPmNvdW50XS5pZCA9IGlkOworCWFjbC0+Y291bnQrKzsK KwlyZXR1cm4gMDsKK30KKworLyoKKyAqIENvbnZlcnQgQUNMIHR5cGUgdG8geGF0dHIgbmFtZQor ICovCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKmFjbF90eXBlX3RvX25hbWUoaW50IHR5cGUp Cit7CisJaWYgKHR5cGUgPT0gQUNMX1RZUEVfQUNDRVNTKQorCQlyZXR1cm4gWEFUVFJfTkFNRV9Q T1NJWF9BQ0xfQUNDRVNTOworCWVsc2UgaWYgKHR5cGUgPT0gQUNMX1RZUEVfREVGQVVMVCkKKwkJ cmV0dXJuIFhBVFRSX05BTUVfUE9TSVhfQUNMX0RFRkFVTFQ7CisJZWxzZQorCQlyZXR1cm4gTlVM TDsKK30KKworLyoKKyAqIFNldCBBQ0wgb24gYSBmaWxlIHVzaW5nIHhhdHRyLgorICoKKyAqIFRo ZSBrZXJuZWwgc3RvcmVzIGFjY2VzcyBBQ0xzIG9ubHkgd2hlbiB0aGV5IGRpZmZlciBmcm9tIHRo ZSBmaWxlIG1vZGUuCisgKiBJZiB0aGUgQUNMIGlzIGVxdWl2YWxlbnQgdG8gc3RfbW9kZSwgdGhl IHhhdHRyIGlzIHJlbW92ZWQgYW5kIGZ1dHVyZQorICogZ2V0eGF0dHIoKSBjYWxscyByZXR1cm4g RU5PREFUQS4gTWlycm9yIGxpYmFjbCBzZW1hbnRpY3MgYnkgdHJlYXRpbmcKKyAqIEVOT0RBVEEg YXMgYSB2YWxpZCBtaW5pbWFsIEFDTCBkZXJpdmVkIGZyb20gc3RfbW9kZS4KKyAqLworc3RhdGlj IGlubGluZSBpbnQgYWNsX3NldF9maWxlKGNvbnN0IGNoYXIgKnBhdGgsIGludCB0eXBlLCBzdHJ1 Y3QgYWNsICphY2wpCit7CisJY29uc3QgY2hhciAqeGF0dHJfbmFtZTsKKwlzaXplX3Qgc2l6ZTsK KwljaGFyICpidWY7CisJc3RydWN0IHBvc2l4X2FjbF94YXR0cl9oZWFkZXIgKmhlYWRlcjsKKwlz dHJ1Y3QgcG9zaXhfYWNsX3hhdHRyX2VudHJ5ICplbnRyaWVzOworCWludCBpLCByZXQ7CisKKwl4 YXR0cl9uYW1lID0gYWNsX3R5cGVfdG9fbmFtZSh0eXBlKTsKKwlpZiAoIXhhdHRyX25hbWUpIHsK KwkJZXJybm8gPSBFSU5WQUw7CisJCXJldHVybiAtMTsKKwl9CisKKwlzaXplID0gc2l6ZW9mKHN0 cnVjdCBwb3NpeF9hY2xfeGF0dHJfaGVhZGVyKSArCisJICAgICAgIGFjbC0+Y291bnQgKiBzaXpl b2Yoc3RydWN0IHBvc2l4X2FjbF94YXR0cl9lbnRyeSk7CisKKwlidWYgPSBtYWxsb2Moc2l6ZSk7 CisJaWYgKCFidWYpCisJCXJldHVybiAtMTsKKworCWhlYWRlciA9IChzdHJ1Y3QgcG9zaXhfYWNs X3hhdHRyX2hlYWRlciAqKWJ1ZjsKKwloZWFkZXItPmFfdmVyc2lvbiA9IGNwdV90b19sZTMyKFBP U0lYX0FDTF9YQVRUUl9WRVJTSU9OKTsKKworCWVudHJpZXMgPSAoc3RydWN0IHBvc2l4X2FjbF94 YXR0cl9lbnRyeSAqKShidWYgKyBzaXplb2YoKmhlYWRlcikpOworCisJZm9yIChpID0gMDsgaSA8 IGFjbC0+Y291bnQ7IGkrKykgeworCQllbnRyaWVzW2ldLmVfdGFnID0gY3B1X3RvX2xlMTYoYWNs LT5lbnRyaWVzW2ldLnRhZyk7CisJCWVudHJpZXNbaV0uZV9wZXJtID0gY3B1X3RvX2xlMTYoYWNs LT5lbnRyaWVzW2ldLnBlcm0pOworCQllbnRyaWVzW2ldLmVfaWQgPSBjcHVfdG9fbGUzMihhY2wt PmVudHJpZXNbaV0uaWQpOworCX0KKworCXJldCA9IHNldHhhdHRyKHBhdGgsIHhhdHRyX25hbWUs IGJ1Ziwgc2l6ZSwgMCk7CisJZnJlZShidWYpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGlj IGlubGluZSB2b2lkIGFjbF9hZGRfbW9kZV9lbnRyaWVzKHN0cnVjdCBhY2wgKmFjbCwgbW9kZV90 IG1vZGUpCit7CisJYWNsX2FkZF9lbnRyeShhY2wsIEFDTF9VU0VSX09CSiwgKG1vZGUgPj4gNikg JiAwNywgMCk7CisJYWNsX2FkZF9lbnRyeShhY2wsIEFDTF9HUk9VUF9PQkosIChtb2RlID4+IDMp ICYgMDcsIDApOworCWFjbF9hZGRfZW50cnkoYWNsLCBBQ0xfT1RIRVIsIG1vZGUgJiAwNywgMCk7 Cit9CisKKy8qCisgKiBTeW50aGVzaXplIGFuIEFDTCBmcm9tIGZpbGUgbW9kZSBiaXRzLgorICog VXNlZCB3aGVuIG5vIHhhdHRyIGV4aXN0cyBmb3IgYW4gYWNjZXNzIEFDTC4KKyAqLworc3RhdGlj IGlubGluZSBzdHJ1Y3QgYWNsICphY2xfZnJvbV9tb2RlKGNvbnN0IGNoYXIgKnBhdGgpCit7CisJ c3RydWN0IGFjbCAqYWNsOworCXN0cnVjdCBzdGF0IHN0OworCisJaWYgKHN0YXQocGF0aCwgJnN0 KSA8IDApCisJCXJldHVybiBOVUxMOworCisJYWNsID0gYWNsX2luaXQoKTsKKwlhY2xfYWRkX21v ZGVfZW50cmllcyhhY2wsIHN0LnN0X21vZGUpOworCisJcmV0dXJuIGFjbDsKK30KKworLyoKKyAq IEdldCBBQ0wgZnJvbSBhIGZpbGUgdXNpbmcgeGF0dHIuCisgKgorICogQWNjZXNzIEFDTHMgZXF1 aXZhbGVudCB0byBmaWxlIG1vZGUgbWF5IG5vdCBoYXZlIGEgYmFja2luZyB4YXR0ciBhdCBhbGwu CisgKiBJbiB0aGF0IGNhc2Ugc3ludGhlc2l6ZSB0aGUgYmFzZSBBQ0wgZnJvbSBzdF9tb2RlIHNv IGNhbGxlcnMgb2JzZXJ2ZSB0aGUKKyAqIHNhbWUgYmVoYXZpb3IgYXMgYWNsX2dldF9maWxlKDMp LgorICovCitzdGF0aWMgaW5saW5lIHN0cnVjdCBhY2wgKmFjbF9nZXRfZmlsZShjb25zdCBjaGFy ICpwYXRoLCBpbnQgdHlwZSkKK3sKKwljb25zdCBjaGFyICp4YXR0cl9uYW1lOworCXNzaXplX3Qg c2l6ZTsKKwlzdHJ1Y3QgYWNsX3hhdHRyICpheDsKKwlzdHJ1Y3QgYWNsICphY2w7CisJaW50IGks IGNvdW50OworCisJeGF0dHJfbmFtZSA9IGFjbF90eXBlX3RvX25hbWUodHlwZSk7CisJaWYgKCF4 YXR0cl9uYW1lKSB7CisJCWVycm5vID0gRUlOVkFMOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlz aXplID0gZ2V0eGF0dHIocGF0aCwgeGF0dHJfbmFtZSwgTlVMTCwgMCk7CisJaWYgKHNpemUgPCAw KSB7CisJCWlmIChlcnJubyAhPSBFTk9EQVRBIHx8IHR5cGUgIT0gQUNMX1RZUEVfQUNDRVNTKQor CQkJcmV0dXJuIE5VTEw7CisKKwkJcmV0dXJuIGFjbF9mcm9tX21vZGUocGF0aCk7CisJfQorCisJ LyogSGFuZGxlIHJhY2U6IHhhdHRyIHJlbW92ZWQgYmV0d2VlbiBzaXplIGNoZWNrIGFuZCBhY3R1 YWwgcmVhZCAqLworCWlmIChzaXplID09IDApCisJCXJldHVybiBhY2xfZnJvbV9tb2RlKHBhdGgp OworCisJYXggPSBtYWxsb2Moc2l6ZSk7CisJaWYgKCFheCkKKwkJcmV0dXJuIE5VTEw7CisKKwlz aXplID0gZ2V0eGF0dHIocGF0aCwgeGF0dHJfbmFtZSwgYXgsIHNpemUpOworCWlmIChzaXplIDwg MCkgeworCQlmcmVlKGF4KTsKKwkJLyogSGFuZGxlIHJhY2U6IHhhdHRyIHJlbW92ZWQgYmV0d2Vl biBzaXplIGNoZWNrIGFuZCByZWFkICovCisJCWlmIChlcnJubyA9PSBFTk9EQVRBICYmIHR5cGUg PT0gQUNMX1RZUEVfQUNDRVNTKQorCQkJcmV0dXJuIGFjbF9mcm9tX21vZGUocGF0aCk7CisJCXJl dHVybiBOVUxMOworCX0KKworCWlmIChsZTMyX3RvX2NwdShheC0+aGVhZGVyLmFfdmVyc2lvbikg IT0gUE9TSVhfQUNMX1hBVFRSX1ZFUlNJT04pIHsKKwkJZnJlZShheCk7CisJCWVycm5vID0gRUlO VkFMOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwljb3VudCA9IChzaXplIC0gc2l6ZW9mKGF4LT5o ZWFkZXIpKSAvCisJCXNpemVvZihzdHJ1Y3QgcG9zaXhfYWNsX3hhdHRyX2VudHJ5KTsKKworCWFj bCA9IGFjbF9pbml0KCk7CisJaWYgKCFhY2wpIHsKKwkJZnJlZShheCk7CisJCXJldHVybiBOVUxM OworCX0KKworCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisJCXVpbnQxNl90IHRhZyA9 IGxlMTZfdG9fY3B1KGF4LT5lbnRyaWVzW2ldLmVfdGFnKTsKKwkJdWludDE2X3QgcGVybSA9IGxl MTZfdG9fY3B1KGF4LT5lbnRyaWVzW2ldLmVfcGVybSk7CisJCXVpbnQzMl90IGlkID0gbGUzMl90 b19jcHUoYXgtPmVudHJpZXNbaV0uZV9pZCk7CisKKwkJaWYgKGFjbF9hZGRfZW50cnkoYWNsLCB0 YWcsIHBlcm0sIGlkKSA8IDApIHsKKwkJCWFjbF9mcmVlKGFjbCk7CisJCQlmcmVlKGF4KTsKKwkJ CXJldHVybiBOVUxMOworCQl9CisJfQorCisJZnJlZShheCk7CisJcmV0dXJuIGFjbDsKK30KKwor LyoKKyAqIENoZWNrIGlmIGFuIEFDTCBlbnRyeSBoYXMgYSBzcGVjaWZpYyBwZXJtaXNzaW9uCisg Ki8KK3N0YXRpYyBpbmxpbmUgaW50IGFjbF9lbnRyeV9oYXNfcGVybShzdHJ1Y3QgYWNsX2VudHJ5 ICplbnRyeSwgdWludDE2X3QgcGVybSkKK3sKKwlyZXR1cm4gKGVudHJ5LT5wZXJtICYgcGVybSkg PT0gcGVybTsKK30KKworLyoKKyAqIENoZWNrIGlmIGFuIEFDTCBlbnRyeSBoYXMgYWxsIHJ3eCBw ZXJtaXNzaW9ucworICovCitzdGF0aWMgaW5saW5lIGludCBhY2xfZW50cnlfaGFzX3J3eChzdHJ1 Y3QgYWNsX2VudHJ5ICplbnRyeSkKK3sKKwlyZXR1cm4gYWNsX2VudHJ5X2hhc19wZXJtKGVudHJ5 LAorCQkJCSAgQUNMX1JFQUQgfCBBQ0xfV1JJVEUgfCBBQ0xfRVhFQ1VURSk7Cit9CisKKy8qCisg KiBGaW5kIGFuIEFDTCBlbnRyeSBieSB0YWcgdHlwZQorICovCitzdGF0aWMgaW5saW5lIHN0cnVj dCBhY2xfZW50cnkgKmFjbF9maW5kX2VudHJ5KHN0cnVjdCBhY2wgKmFjbCwgdWludDE2X3QgdGFn LAorCQkJCQkgICAgICAgdWludDMyX3QgaWQpCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBp IDwgYWNsLT5jb3VudDsgaSsrKSB7CisJCWlmIChhY2wtPmVudHJpZXNbaV0udGFnID09IHRhZykg eworCQkJaWYgKHRhZyA9PSBBQ0xfVVNFUiB8fCB0YWcgPT0gQUNMX0dST1VQKSB7CisJCQkJaWYg KGFjbC0+ZW50cmllc1tpXS5pZCA9PSBpZCkKKwkJCQkJcmV0dXJuICZhY2wtPmVudHJpZXNbaV07 CisJCQl9IGVsc2UgeworCQkJCXJldHVybiAmYWNsLT5lbnRyaWVzW2ldOworCQkJfQorCQl9CisJ fQorCisJcmV0dXJuIE5VTEw7Cit9CisKKy8qCisgKiBVcGRhdGUgQUNMIG1hc2sgcGVybWlzc2lv bnMKKyAqLworc3RhdGljIGlubGluZSBpbnQgYWNsX3NldF9tYXNrX3Blcm1zKHN0cnVjdCBhY2wg KmFjbCwgdWludDE2X3QgcGVybSkKK3sKKwlzdHJ1Y3QgYWNsX2VudHJ5ICptYXNrX2VudHJ5ID0g YWNsX2ZpbmRfZW50cnkoYWNsLCBBQ0xfTUFTSywgMCk7CisKKwlpZiAoIW1hc2tfZW50cnkpIHsK KwkJZXJybm8gPSBFTk9FTlQ7CisJCXJldHVybiAtMTsKKwl9CisKKwltYXNrX2VudHJ5LT5wZXJt ID0gcGVybTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGNyZWF0ZV9maWxl X2FzKHVpZF90IHVpZCwgZ2lkX3QgZ2lkLCBtb2RlX3QgbW9kZSwKKwkJCQkgICBpbnQgdXNlX3Vt YXNrLCBtb2RlX3QgbWFzaywgaW50IGV4cF9lcnJubykKK3sKKwlwaWRfdCBwaWQ7CisKKwlwaWQg PSBTQUZFX0ZPUksoKTsKKwlpZiAoIXBpZCkgeworCQl1aWRfdCBmc3VpZDsKKwkJZ2lkX3QgZnNn aWQ7CisJCXN0cnVjdCB0c3RfY2FwX3VzZXJfaGVhZGVyIGhkciA9IHsKKwkJCS52ZXJzaW9uID0g MHgyMDA4MDUyMiwKKwkJCS5waWQgPSAwLAorCQl9OworCQlzdHJ1Y3QgdHN0X2NhcF91c2VyX2Rh dGEgZGF0YVsyXSA9IHt9OworCisJCVNBRkVfU0VUR1JPVVBTKDAsIE5VTEwpOworCQlTQUZFX1NF VFJFU0dJRChnaWQsIGdpZCwgZ2lkKTsKKwkJU0FGRV9TRVRSRVNVSUQodWlkLCB1aWQsIHVpZCk7 CisKKwkJLyogRHJvcCBhbGwgY2FwYWJpbGl0aWVzIHRvIGVuc3VyZSBEQUMgY2hlY2tzIGFyZSBl bmZvcmNlZCAqLworCQlpZiAodHN0X2NhcHNldCgmaGRyLCBkYXRhKSA8IDApCisJCQl0c3RfYnJr KFRCUk9LIHwgVEVSUk5PLCAiY2Fwc2V0IGZhaWxlZCIpOworCisJCS8qCisJCSAqIHNldGZzdWlk KCkvc2V0ZnNnaWQoKSByZXR1cm4gdGhlIHByZXZpb3VzIHZhbHVlLCBub3QgLTEgb24KKwkJICog ZmFpbHVyZS4gVmVyaWZ5IHRoZSBlZmZlY3RpdmUgZmlsZXN5c3RlbSBjcmVkZW50aWFscyBieQor CQkgKiByZWFkaW5nIHRoZW0gYmFjay4KKwkJICovCisJCXNldGZzdWlkKHVpZCk7CisJCWZzdWlk ID0gc2V0ZnN1aWQoKHVpZF90KS0xKTsKKwkJaWYgKGZzdWlkICE9IHVpZCkKKwkJCXRzdF9icmso VEJST0ssCisJCQkJInNldGZzdWlkIHZlcmlmaWNhdGlvbiBmYWlsZWQsIGV4cGVjdGVkICV1IGdv dCAldSIsCisJCQkJKHVuc2lnbmVkIGludCl1aWQsICh1bnNpZ25lZCBpbnQpZnN1aWQpOworCisJ CXNldGZzZ2lkKGdpZCk7CisJCWZzZ2lkID0gc2V0ZnNnaWQoKGdpZF90KS0xKTsKKwkJaWYgKGZz Z2lkICE9IGdpZCkKKwkJCXRzdF9icmsoVEJST0ssCisJCQkJInNldGZzZ2lkIHZlcmlmaWNhdGlv biBmYWlsZWQsIGV4cGVjdGVkICV1IGdvdCAldSIsCisJCQkJKHVuc2lnbmVkIGludClnaWQsICh1 bnNpZ25lZCBpbnQpZnNnaWQpOworCisJCWlmICh1c2VfdW1hc2spCisJCQl1bWFzayhtYXNrKTsK KworCQlpZiAoZXhwX2Vycm5vKSB7CisJCQlUU1RfRVhQX0ZBSUwyKG9wZW4oVEVTVEZJTEUsIE9f Q1JFQVQgfCBPX1dST05MWSwgbW9kZSksCisJCQkJICAgICAgZXhwX2Vycm5vLCAib3Blbiglcyki LCBURVNURklMRSk7CisJCX0gZWxzZSB7CisJCQlUU1RfRVhQX0ZEKG9wZW4oVEVTVEZJTEUsIE9f Q1JFQVQgfCBPX1dST05MWSwgbW9kZSksCisJCQkJICAgIm9wZW4oJXMpIiwgVEVTVEZJTEUpOwor CQkJaWYgKFRTVF9SRVQgPj0gMCkKKwkJCQlTQUZFX0NMT1NFKFRTVF9SRVQpOworCQl9CisKKwkJ ZXhpdCgwKTsKKwl9CisKKwl0c3RfcmVhcF9jaGlsZHJlbigpOworfQorCitzdGF0aWMgaW5saW5l IHZvaWQgdHJ5X2NyZWF0ZV9hcyh1aWRfdCB1aWQsIGdpZF90IGdpZCwgbW9kZV90IG1vZGUsCisJ CQkJICBpbnQgZXhwX2Vycm5vKQoreworCWNyZWF0ZV9maWxlX2FzKHVpZCwgZ2lkLCBtb2RlLCAw LCAwLCBleHBfZXJybm8pOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgY3JlYXRlX3dpdGhfdW1h c2tfYXModWlkX3QgdWlkLCBnaWRfdCBnaWQsIG1vZGVfdCBtb2RlLAorCQkJCQkgbW9kZV90IG1h c2ssIGludCBleHBfZXJybm8pCit7CisJY3JlYXRlX2ZpbGVfYXModWlkLCBnaWQsIG1vZGUsIDEs IG1hc2ssIGV4cF9lcnJubyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBjbGVhbnVwX3Rlc3Rf cGF0aHModm9pZCkKK3sKKwl0cnlfdW5saW5rKFRFU1RTWU1MSU5LKTsKKwl0cnlfdW5saW5rKFRF U1RGSUxFKTsKKwl0cnlfcm1kaXIoVEVTVERJUik7Cit9CisKKyNlbmRpZiAvKiBIQVZFX1NZU19Y QVRUUl9IICovCisKKyNlbmRpZiAvKiBBQ0xfTElCX0ggKi8KZGlmZiAtLWdpdCBhL3Rlc3RjYXNl cy9rZXJuZWwvZnMvYWNsL2FjbF91c2VyX29iajAxLmMgYi90ZXN0Y2FzZXMva2VybmVsL2ZzL2Fj bC9hY2xfdXNlcl9vYmowMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4u ODkyOTFkMjc1Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGNhc2VzL2tlcm5lbC9mcy9hY2wvYWNs X3VzZXJfb2JqMDEuYwpAQCAtMCwwICsxLDEyNyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjYgSUJNCisgKgor ICogT3JpZ2luYWwgc2hlbGwgdGVzdCBieSBLYWkgWmhhbyAobHRjZDNAY24uaWJtLmNvbSkKKyAq IENvbnZlcnRlZCB0byBDIGJ5IFNhY2hpbiBTYW50IDxzYWNoaW5wQGxpbnV4LmlibS5jb20+Cisg Ki8KKworLypcCisgKiBUZXN0IEFDTF9VU0VSX09CSiBwZXJtaXNzaW9ucyB1c2luZyBkaXJlY3Qg eGF0dHIgbWFuaXB1bGF0aW9uLgorICoKKyAqIFZlcmlmeSB0aGF0IG93bmVyIHBlcm1pc3Npb25z IChBQ0xfVVNFUl9PQkopIGNvcnJlY3RseSBjb250cm9sIGFjY2VzcworICogdG8gZmlsZXMgYW5k IGRpcmVjdG9yaWVzLiBUaGUgdGVzdCB2YWxpZGF0ZXMgdGhhdDoKKyAqCisgKiAtIEFDTF9VU0VS X09CSiBwZXJtaXNzaW9ucyBhcmUgYXBwbGllZCBkaXJlY3RseSBhcyB0aGUgb3duZXIgYml0cwor ICogLSBTZXR0aW5nIEFDTF9VU0VSX09CSj1yd3ggdmlhIDptYW5wYWdlOmBzZXR4YXR0cigyKWAg b3ZlcnJpZGVzCisgKiAgIGEgcHJldmlvdXMgOm1hbnBhZ2U6YGNobW9kKDIpYCByZXN0cmljdGlv bgorICogLSBPd25lciBwZXJtaXNzaW9ucyB3b3JrIGluZGVwZW5kZW50bHkgb2YgZ3JvdXAgYW5k IG90aGVyIHBlcm1pc3Npb25zCisgKgorICogVGhpcyB0ZXN0IHVzZXMgYXJiaXRyYXJ5IFVJRHMg d2l0aG91dCBjcmVhdGluZyBhY3R1YWwgdXNlcnMsIHRlc3RpbmcKKyAqIG9ubHkgdGhlIGtlcm5l bCBBQ0wgaW1wbGVtZW50YXRpb24uCisgKi8KKworI2luY2x1ZGUgImFjbF9saWIuaCIKKworI2lm ZGVmIEhBVkVfU1lTX1hBVFRSX0gKKworI2RlZmluZSBURVNUX1VJRCAxMDAwCisjZGVmaW5lIFRF U1RfR0lEIDEwMDAKKworLyoKKyAqIFRlc3QgcGVybWlzc2lvbiBiaXRzIGRlbnkgYWNjZXNzLgor ICogT3duZXIgc2hvdWxkIGJlIGRlbmllZCBmaWxlIGNyZWF0aW9uIHdoZW4gZGlyZWN0b3J5IG1v ZGUgaXMgMDU1NS4KKyAqLworc3RhdGljIHZvaWQgdGVzdF9kZW55X2J5X21vZGUodm9pZCkKK3sK Kwl0c3RfcmVzKFRJTkZPLCAiVGVzdGluZyBwZXJtaXNzaW9uIGJpdHMgZGVueSBhY2Nlc3MiKTsK KwlyZXNldF90ZXN0X3BhdGgoKTsKKworCVNBRkVfQ0hPV04oVEVTVERJUiwgVEVTVF9VSUQsIFRF U1RfR0lEKTsKKwlTQUZFX0NITU9EKFRFU1RESVIsIDA1NTUpOworCisJdHJ5X2NyZWF0ZV9hcyhU RVNUX1VJRCwgVEVTVF9HSUQsIDA2NDQsIEVBQ0NFUyk7Cit9CisKKy8qCisgKiBUZXN0IEFDTF9V U0VSX09CSiBncmFudHMgYWNjZXNzLgorICogU2V0dGluZyBBQ0xfVVNFUl9PQko9cnd4IHNob3Vs ZCByZXN0b3JlIG93bmVyIHdyaXRlIHBlcm1pc3Npb24gYW5kCisgKiBhbGxvdyBmaWxlIGNyZWF0 aW9uIGFmdGVyIHRoZSByZXN0cmljdGl2ZSBtb2RlIGJhc2VsaW5lLgorICovCitzdGF0aWMgdm9p ZCB0ZXN0X2dyYW50X2J5X2FjbCh2b2lkKQoreworCXN0cnVjdCBhY2wgKmFjbDsKKworCXRzdF9y ZXMoVElORk8sICJUZXN0aW5nIEFDTF9VU0VSX09CSiBncmFudHMgYWNjZXNzIik7CisJcmVzZXRf dGVzdF9wYXRoKCk7CisKKwlTQUZFX0NIT1dOKFRFU1RESVIsIFRFU1RfVUlELCBURVNUX0dJRCk7 CisJU0FGRV9DSE1PRChURVNURElSLCAwNTU1KTsKKworCWFjbCA9IGFjbF9pbml0KCk7CisKKwlh Y2xfYWRkX2VudHJ5KGFjbCwgQUNMX1VTRVJfT0JKLAorCQkgICAgICBBQ0xfUkVBRCB8IEFDTF9X UklURSB8IEFDTF9FWEVDVVRFLCAwKTsKKwlhY2xfYWRkX2VudHJ5KGFjbCwgQUNMX0dST1VQX09C SiwgMCwgMCk7CisJYWNsX2FkZF9lbnRyeShhY2wsIEFDTF9PVEhFUiwgMCwgMCk7CisKKwlpZiAo YWNsX3NldF9maWxlKFRFU1RESVIsIEFDTF9UWVBFX0FDQ0VTUywgYWNsKSA8IDApIHsKKwkJaWYg KGVycm5vID09IEVPUE5PVFNVUFApIHsKKwkJCWFjbF9mcmVlKGFjbCk7CisJCQl0c3RfYnJrKFRD T05GIHwgVEVSUk5PLCAiQUNMIG5vdCBzdXBwb3J0ZWQiKTsKKwkJfQorCQlhY2xfZnJlZShhY2wp OworCQl0c3RfYnJrKFRCUk9LIHwgVEVSUk5PLCAiQUNMIHNldHVwIGZhaWxlZCIpOworCX0KKwor CWFjbF9mcmVlKGFjbCk7CisKKwl0cnlfY3JlYXRlX2FzKFRFU1RfVUlELCBURVNUX0dJRCwgMDY0 NCwgMCk7CisKKwljbGVhbnVwX3Rlc3RmaWxlKCk7Cit9CisKK3N0YXRpYyB2b2lkIHJ1bih1bnNp Z25lZCBpbnQgbikKK3sKKwlzd2l0Y2ggKG4pIHsKKwljYXNlIDA6CisJCXRlc3RfZGVueV9ieV9t b2RlKCk7CisJCWJyZWFrOworCWNhc2UgMToKKwkJdGVzdF9ncmFudF9ieV9hY2woKTsKKwkJYnJl YWs7CisJfQorfQorCitzdGF0aWMgdm9pZCBzZXR1cCh2b2lkKQoreworCXJlc2V0X3Rlc3RfcGF0 aCgpOworfQorCitzdGF0aWMgdm9pZCBjbGVhbnVwKHZvaWQpCit7CisJY2xlYW51cF90ZXN0X3Bh dGhzKCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdHN0X3Rlc3QgdGVzdCA9IHsKKwkudGVzdCA9IHJ1 biwKKwkudGNudCA9IDIsCisJLnNldHVwID0gc2V0dXAsCisJLmNsZWFudXAgPSBjbGVhbnVwLAor CS5uZWVkc19yb290ID0gMSwKKwkubW91bnRfZGV2aWNlID0gMSwKKwkubW50cG9pbnQgPSBNTlRQ T0lOVCwKKwkuZm9ya3NfY2hpbGQgPSAxLAorCS5maWxlc3lzdGVtcyA9IChzdHJ1Y3QgdHN0X2Zz W10pIHsKKwkJey50eXBlID0gImV4dDIiLCAubW50X2RhdGEgPSAiYWNsIn0sCisJCXsudHlwZSA9 ICJleHQzIiwgLm1udF9kYXRhID0gImFjbCJ9LAorCQl7LnR5cGUgPSAiZXh0NCIsIC5tbnRfZGF0 YSA9ICJhY2wifSwKKwkJey50eXBlID0gInhmcyJ9LAorCQl7LnR5cGUgPSAiYnRyZnMifSwKKwkJ e30KKwl9Cit9OworCisjZWxzZQorCVRTVF9URVNUX1RDT05GKCJzeXMveGF0dHIuaCBpcyBub3Qg YXZhaWxhYmxlIik7CisjZW5kaWYKLS0gCjIuMzkuMQoKCi0tIApNYWlsaW5nIGxpc3QgaW5mbzog aHR0cHM6Ly9saXN0cy5saW51eC5pdC9saXN0aW5mby9sdHAK