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 X-Spam-Level: X-Spam-Status: No, score=-15.4 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4E979C4338F for ; Fri, 30 Jul 2021 06:20:38 +0000 (UTC) Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B6A1F60041 for ; Fri, 30 Jul 2021 06:20:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org B6A1F60041 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=oss.oracle.com Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 16U6CA5L030153; Fri, 30 Jul 2021 06:20:36 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3a488d89ej-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jul 2021 06:20:36 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 16U6BOer066345; Fri, 30 Jul 2021 06:20:35 GMT Received: from oss.oracle.com (oss-old-reserved.oracle.com [137.254.22.2]) by userp3020.oracle.com with ESMTP id 3a2352dhe7-1 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO); Fri, 30 Jul 2021 06:20:35 +0000 Received: from localhost ([127.0.0.1] helo=lb-oss.oracle.com) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1m9Lpl-00070Y-0a; Thu, 29 Jul 2021 23:17:25 -0700 Received: from aserp3020.oracle.com ([141.146.126.70]) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1m9LpK-0006zg-63 for ocfs2-devel@oss.oracle.com; Thu, 29 Jul 2021 23:16:58 -0700 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 16U6BeZY145352 for ; Fri, 30 Jul 2021 06:16:58 GMT Received: from mx0a-00069f01.pphosted.com (mx0a-00069f01.pphosted.com [205.220.165.26]) by aserp3020.oracle.com with ESMTP id 3a234dpcws-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 30 Jul 2021 06:16:57 +0000 Received: from pps.filterd (m0246572.ppops.net [127.0.0.1]) by mx0b-00069f01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 16U6DVtL016446 for ; Fri, 30 Jul 2021 06:16:56 GMT Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by mx0b-00069f01.pphosted.com with ESMTP id 3a4aq3rkku-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 30 Jul 2021 06:16:55 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2112.outbound.protection.outlook.com [104.47.18.112]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-39-pcU9r-IXNOCGC2iZhHlHxA-1; Fri, 30 Jul 2021 08:16:51 +0200 X-MC-Unique: pcU9r-IXNOCGC2iZhHlHxA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FzJMZIc5xXpYIKNEtTvQLwjYiMpUxOZk3PWeTY77GT7NbiXdlm8tW/jzEVZq7+4TBCs3nJUZAkhgBz5OEiIG4BAfnEK/qCPWc93kiHp4lFBUUqolJMeqR1USNwDEqvMudXFLWptJErjkhZvvX4JOev2HSsGhdHjxWhbIKDtRal2MTwvpbrmdghqzFUT+2JjBQBq6RBqv7H8YCmbeIoQb4xy1mAYis6yE37HE6DubL99DzSCaMoGgNdo4l7veaX0ghy7ZL1/PFfFvAd6PH1feJ5ebIxUAqcIc3u6xHDs/UKjSYelhgWYOC5/wXGgtX1mVNWVwR0ti9W//Xp3DUqaXRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=w4/zNAz2nrYp2hzYpMlI3fpjBMDXkhcaH+P4eBlgwIQ=; b=lAZUi5f7RxljO3Ld+5Ay9lCv9XrmECB40G1ti7l5aDoxf069cLMULLbTyjT9k5xW9jNqNsS8OCtIZ26S+v+VREvrJDPIREeSVoEs4eteQ/55LjuCAS21YAcTZalcKhUt+2mMUi+cfInwnADS7tUBhC2WQvnTsGGZykXDq2RhJK5xT1A5XY1AEswudxNnGOf5cN4l2reCQ66YXZM6CkcMlWs1jGXDefFVyTAdozvaa+3ressVaCHNbjZiLwjtnCA7dfKNeZF18hpVC923XxDLZ3VJETdywdBDcEPxfXUxva6ci+SKtmpHnq2kn37yZqH2Nr/vlmPmQ5GuiJX+tzN3NQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: oss.oracle.com; dkim=none (message not signed) header.d=none; oss.oracle.com; dmarc=none action=none header.from=suse.com; Received: from AM6PR04MB6488.eurprd04.prod.outlook.com (2603:10a6:20b:f8::21) by AM5PR04MB3075.eurprd04.prod.outlook.com (2603:10a6:206:b::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4352.29; Fri, 30 Jul 2021 06:16:51 +0000 Received: from AM6PR04MB6488.eurprd04.prod.outlook.com ([fe80::b973:ec65:6b36:1eaa]) by AM6PR04MB6488.eurprd04.prod.outlook.com ([fe80::b973:ec65:6b36:1eaa%6]) with mapi id 15.20.4373.019; Fri, 30 Jul 2021 06:16:50 +0000 To: Wengang Wang References: <20210729110230.18983-1-ghe@suse.com> From: Gang He Message-ID: Date: Fri, 30 Jul 2021 14:16:40 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.12.0 In-Reply-To: Content-Language: en-US X-ClientProxiedBy: HK2PR02CA0148.apcprd02.prod.outlook.com (2603:1096:202:16::32) To AM6PR04MB6488.eurprd04.prod.outlook.com (2603:10a6:20b:f8::21) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [10.67.20.87] (60.251.47.115) by HK2PR02CA0148.apcprd02.prod.outlook.com (2603:1096:202:16::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.17 via Frontend Transport; Fri, 30 Jul 2021 06:16:47 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5cb18d69-2335-472b-01a6-08d953219e72 X-MS-TrafficTypeDiagnostic: AM5PR04MB3075: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4303; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SWYR7ccRZ3OMCmZNQzWGhWVauGBXQ2J8eVbO9v0rihcTwFspRG/pCsrg8xnP7dvJY/vjekcHG8mnHHcbS2Jf4LXqhjbGlxdSHOBymGZkCbkNQSr+lybjiUTSWOEMsAc56rf6mNp82AXYNE37MgjWQnV+5Prx6C572bDieN2+zcCM4Jr6VK2ASvzna+eGWcFwAwcQrBUNJDbB3enRR0kzkH6ZE6/O3AYthoV3EUjxO8PnYjH9cDcwxnyb3ZndHnA9OIBvxwZZFwUBkI9R3Q1HQ2sX8chWVAfBS1hfVwb+TFDr98iSZqhdDHwmXuOAq7QmfQgA0XCNw87cigXweFsIqLrNI+QCZFeC89WY7PcNCPxvv5BmR/2ynAQW0dpVMdQltCW7JNnkPE8qzcw5qlMOu0HfDLbnMkoZ+96F815f2YUc+1txBWIW6iaiko3ztnLCOh3Xpb7n+pFBPgEEA2PtsEez+Gz++Oq1E8RCApE/sxA1yLcMRH3DDMK+9zSLWpx/2kkkU3aTSfEhdIv+6I0hM3hvGazrHLPgCKnz2xt9dQm8qY3DlA20v5UaDaiH5HC1WeRhnksEMBGCRuRncJkK9Rm1egehOUlj6WOKF01fjivwe8GwkWIu4lM8K5VAPa7UJm37oPItee23Qq66YlBpKGniuUb8Q27yQE7dwQyw3Fi3wn/mE3lc7xDp5thbCWpRBPMCgIDnAckdy3U6Lov/IKY5+imkdd9B6KTxERA3sYZPK882VmfxctRWeTV9416+T1Y5gc1eWsdYV0hz8oOu1OnuS8y7d3xA9Y5cP5QpA8i7/b5iZsKZ+kxgaSjkqipO X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR04MB6488.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(396003)(346002)(39850400004)(366004)(136003)(376002)(86362001)(38100700002)(2906002)(66946007)(36756003)(66476007)(6666004)(4326008)(83380400001)(66556008)(6486002)(8936002)(6916009)(186003)(956004)(5660300002)(966005)(316002)(2616005)(8676002)(31696002)(54906003)(30864003)(26005)(16576012)(31686004)(478600001)(53546011)(55236004)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PeLbf2+OiZ8U2MV0IF2QTU4DdKZDMxz6LAcEyxMn1x35PH2rd496qcyxTKSV?= =?us-ascii?Q?LkDbDHR1aufQIG4GBf0UQ+b4eG7qG85XnvK1Sj1iBAgea0upMM1/FbQMSko5?= =?us-ascii?Q?DBi8g9HiMnQPDcW4z6BuTVNsBvLOEFz5QbncNsY3AVp3vcI59ACC8RL9zfdB?= =?us-ascii?Q?CxTc1Y7b5ToHfdshY+8hCDB0qRhTehDf8S9dBH31Xosx7ecUKgWXS6MAD1Th?= =?us-ascii?Q?DRqP8bLAp9vQTL3Yq0uUvepsB3f49FeFu8QIEwj7i2PC2A4WXZ19Zeg5FC1u?= =?us-ascii?Q?0khx3ae5ZrDTNQshZhsXodIujXoxgelbnG9yztGNvxaMXoQDSWEZSSlWpTKJ?= =?us-ascii?Q?DB3IWMirLww8AwuGON32YCQox/7jQmW8oNaO3Oz3Gevxe5WfxvjzpDipkgAp?= =?us-ascii?Q?0uVh95484tx13w23A4IMtraGvVuho+tQmnnjymIrUiRRzk72lWPfix6DrUhI?= =?us-ascii?Q?sj1UOsXweQWmr1/JnruJqJyS+vrTwGBSoiew+DgKSH37cMhzbArfyRNlOheO?= =?us-ascii?Q?2VG+nbq/VtPnG1bltKwZBHTWTPxhXfgI+F8S7K89ssA1u14zs61pFHBcJvVy?= =?us-ascii?Q?/i7IW+52axKJUzscEQ/xGjwftpMemmZrJ8WXB4edHeaIu+IwI//QLwm/4nsd?= =?us-ascii?Q?wncPAS3ssfpeIe3LhHTLX1zdhU/7XQ05e8OFKp8pASdUj2yMt6FTuzlAbRA2?= =?us-ascii?Q?Z6Uf2133wd2XGjGb5rC8TcLmNlFT0lf6snUI4/fqGG/Jel/ED++WiekUKuN3?= =?us-ascii?Q?vrEFs7vG7NkUpHxU7Dy9QgcHaqcSV1niTFlX7XQ8bnPRU4kCTVa+FZ81AoKh?= =?us-ascii?Q?tMywB1tRCggwAOo1kuDOgSTyf5uwt8bEei6WCf23uV9GIveOxPwGLVmrnBKg?= =?us-ascii?Q?eL09ZXiNuri6e/Ct6GY1lAFIqg9K3OIx3fFWa8/xkkU3WM7DBysN14M6ikGp?= =?us-ascii?Q?TJ1CHnYDD9sojrKWtLN4kCe18D9I4Xx4dgWZMeLGAbX9s/zkV8sJoHOL5yRO?= =?us-ascii?Q?1DAsF70BkhzEgyElw0zfqbX2nBvsCU+EGm1BkEP4X0jX9Itd/X1zNRmrQILr?= =?us-ascii?Q?GTl0JZ/TxeaOxphPGgp8wjAY5U7pvZAhtnzw4K5/4h7k8hO7ZI4gn7NipCo4?= =?us-ascii?Q?B1rgxN1U62MSqrcIiSt0BpjULOlfyMPMCSFoBhBLUqCPW4m+xlDJFiufHy5/?= =?us-ascii?Q?djRdvRSVjhcTitWgd1wK6Vem4uTwm1r6lxETr9kCLl31fEHF1tUxJsgjev4t?= =?us-ascii?Q?aePGidU/Ox+8brF5yYauX6nHnJYEqjm1bydVUOIaInxJ0VnPhZS3onn0/VTd?= =?us-ascii?Q?4DB/DdY10gqiKANQm2ndYFNY?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5cb18d69-2335-472b-01a6-08d953219e72 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6488.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jul 2021 06:16:50.8402 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1qic9ipOe6B4MkBpnxAN+vLZIn8DSg2B1rpbf7wU0uLlKxWbfAn1v9YiJytogwqt X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR04MB3075 X-Source-IP: 194.104.109.102 X-ServerName: de-smtp-delivery-102.mimecast.com X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 include:spf.suse.com include:de._netblocks.mimecast.com include:amazonses.com include:spf.protection.outlook.com include:_spf.qemailserver.com -all X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10060 signatures=668682 X-Proofpoint-Spam-Details: rule=tap_notspam policy=tap score=0 suspectscore=0 mlxlogscore=999 bulkscore=0 impostorscore=0 lowpriorityscore=0 clxscore=181 adultscore=0 mlxscore=0 priorityscore=166 spamscore=0 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2107300037 X-Spam: Clean X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10060 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2107300037 Cc: "ocfs2-devel@oss.oracle.com" , "linux-kernel@vger.kernel.org" Subject: Re: [Ocfs2-devel] [PATCH] ocfs2: reflink deadlock when clone file to the same directory simultaneously X-BeenThere: ocfs2-devel@oss.oracle.com X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: ocfs2-devel-bounces@oss.oracle.com Errors-To: ocfs2-devel-bounces@oss.oracle.com X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10060 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 phishscore=0 suspectscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2107300037 X-Proofpoint-GUID: kbsHQYMwd1Zgdv7wQjo56GzrQ0wExz4G X-Proofpoint-ORIG-GUID: kbsHQYMwd1Zgdv7wQjo56GzrQ0wExz4G SGVsbG8gV2VuZ2FuZyBhbmQgYWxsLAoKVGhpcyBpc3N1ZSBjYW4gYmUgcmVwcm9kdWNlZCBzdGFi bHkgd2hlbiB5b3UgcnVuIHRoZSBiZWxvdyByZWZsaW5rIApjb21tYW5kIGxpbmUobWF5YmUgeW91 IGFsc28gY2FuIGZvbGxvdyBhICJybSB0aGlzIGZpbGUiIGNvbW1hbmQgbGluZSBhbmQgCiAgc2xl ZXAgc29tZSB1c2VjcykgZnJvbSBlYWNoIG5vZGUgcmVwZWF0ZWRseSBmb3IgYSB3aGlsZS4KQmFz ZWQgb24gbXkgb2JzZXJ2YXRpb24sIHRoZSByZWZsaW5rIHByb2Nlc3NlcyBhcmUgYWx3YXlzIGJs b2NrZWQgYXQgdGhlIApiZWxvdyBwb2ludHMuCiBGcm9tIGRsbV90b29sIG91dHB1dCBhbmQgY3Jh c2ggYW5hbHlzaXMsIHRoZSBub2RlMSBoYXMgYWNxdWlyZWQgCi5zbmFwc2hvdHMgZGlyZWN0b3J5 IGlub2RlIEVYIGRsbSBsb2NrLCBidXQgdGhlIHJlZmxpbmsgcHJvY2VzcyBpcyAKYmxvY2tlZCBh dCBvY2ZzMl9pbml0X3NlY3VyaXR5X2FuZF9hY2wrMHhiZS8weDFkMCB0byBhY3F1cmUgaXQncyBp bm9kZSAKZGxtIGxvY2sgYWdhaW4uCk9uIHRoZSBvdGhlciB0d28gbm9kZXMsIHRoZSByZWZsaW5r IHByb2Nlc3NlcyBhcmUgYmxvY2tlZCBhdCBhY3F1aXJlIAouc25hcHNob3RzIGRpcmVjdG9yeSBp bm9kZSBkbG0gbG9jaywgdGhlbiB0aGUgd2hvbGUgZmlsZSBzeXN0ZW0gaXMgaHVuZywKeW91IGNh biBub3QgbGlzdCB0aGlzIGZpbGUgYWdhaW4uCgpUaGUgcHJvYmxlbSBsb29rcyBsaWtlIGFjcXVp cmluZyB0aGUgZGVzdGluYXRpb24gZGlyZWNvcnkgbXVsdGlwbGUgCmR1cmluZyBvY2ZzMl9yZWZs aW5rLCBkbG0gZ2x1ZSBsYXllciBjYW5ub3QgZG93bmNvbnZlcnQgbG9jayBpbiBzb21lIGNhc2Uu CmUuZy4Ka2VybmVsOiAob2NmczJkYy1GNTBCMjAzLDE1OTMsMCk6b2NmczJfZG93bmNvbnZlcnRf bG9jazozNjc0IEVSUk9SOiBETE0gCmVycm9yIC0xNiB3aGlsZSBjYWxsaW5nIG9jZnMyX2RsbV9s b2NrIG9uIHJlc291cmNlIApNMDAwMDAwMDAwMDAwMDAwMDA0NjYxYzAwMDAwMDAwCmtlcm5lbDog KG9jZnMyZGMtRjUwQjIwMywxNTkzLDApOm9jZnMyX3VuYmxvY2tfbG9jazozOTE4IEVSUk9SOiBz dGF0dXMgPSAtMTYKa2VybmVsOiAob2NmczJkYy1GNTBCMjAzLDE1OTMsMCk6b2NmczJfcHJvY2Vz c19ibG9ja2VkX2xvY2s6NDMxNyBFUlJPUjogCnN0YXR1cyA9IC0xNgoKVGhlbiwgSSBjaGFuZ2Ug dGhlIGNvZGUgdG8gYWNxdWlyZSB0aGlzIGRlc3RpbmF0aW9uIGRpcmVjb3J5IGRsbSBsb2NrLCAK YW5kIGhvbGQgdGhlIGxvY2sgdW50aWwgdGhlIGVuZCBvZiBvY2ZzMl9yZWZsaW5rIGZ1bmN0aW9u LgpBZnRlciB0aGlzIGNoYW5nZSwgSSBkaWQgbm90IGVuY291bnRlciB0aGlzIGhhbmcgcHJvYmxl bSBhZ2FpbiBhZnRlciAKbG90cyBvZiB0ZXN0aW5nLiBTZWNvbmQsIEkgZmluZCB0aGUgY29kZSBj aGFuZ2UgYWxzbyBpbXByb3ZlIHJlZmxpbmsgCnBlcmZvcm1hbmNlLCBzaW5jZSB0aGUgY29kZSBh dm9pZHMgdGhlIHByZXZpb3VzIHBpbmctcG9uZyBlZmZlY3QuCgpUaGFua3MKR2FuZwoKCk9uIDIw MjEvNy8zMCA2OjA3LCBXZW5nYW5nIFdhbmcgd3JvdGU6Cj4gSGkgR2FuZywKPiAKPiBJ4oCZZCBz dWdnZXN0IHlvdSBsaXN0IHRoZSBjYWxsIHBhdGhzIG9uIHRoZSByZWxhdGVkIG5vZGVzLCBTYXkg Y2FsbCBwYXRoIDEgb24gbm9kZSBvbmUgZ3JhbnRlZCBsb2NrIEEgYW5kIGlzIHJlcXVlc3Rpbmcg Zm9yIGxvY2sgQiwgYXQgdGhlIHNhbWUgdGltZSwgcGF0aDIgb24gbm9kZSB0d28gZ3JhbnRlZCBs b2NrIEIgYW5kIG5vdyBpcyByZXF1ZXN0aW5nIGZvciBsb2NrIEEuCj4gV2l0aCB0aGF0LCB0aGUg cHJvYmxlbSB3b3VsZCBiZSBlYXNpZXIgdG8gdW5kZXJzdGFuZC4KPiAKPiB0aGFua3MsCj4gd2Vu Z2FuZwo+IAo+PiBPbiBKdWwgMjksIDIwMjEsIGF0IDQ6MDIgQU0sIEdhbmcgSGUgPGdoZUBzdXNl LmNvbT4gd3JvdGU6Cj4+Cj4+IFJ1bm5pbmcgcmVmbGluayBmcm9tIG11bHRpcGxlIG5vZGVzIHNp bXVsdGFuZW91c2x5IHRvIGNsb25lIGEgZmlsZQo+PiB0byB0aGUgc2FtZSBkaXJlY3RvcnkgcHJv YmFibHkgdHJpZ2dlcnMgYSBkZWFkbG9jayBpc3N1ZS4KPj4gRm9yIGV4YW1wbGUsIHRoZXJlIGlz IGEgdGhyZWUgbm9kZSBvY2ZzMiBjbHVzdGVyLCBlYWNoIG5vZGUgbW91bnRzCj4+IHRoZSBvY2Zz MiBmaWxlIHN5c3RlbSB0byAvbW50L3NoYXJlZCwgYW5kIHJ1biB0aGUgcmVmbGluayBjb21tYW5k Cj4+IGZyb20gZWFjaCBub2RlIHJlcGVhdGVkbHksIGxpa2UKPj4gICByZWZsaW5rICIvbW50L3No YXJlZC90ZXN0IiBcCj4+ICAgIi9tbnQvc2hhcmVkLy5zbmFwc2hvdHMvdGVzdC5gZGF0ZSArJW0l ZCVIJU0lU2AuYGhvc3RuYW1lYCIKPj4gdGhlbiwgcmVmbGluayBjb21tYW5kIHByb2Nlc3Mgd2ls bCBiZSBodW5nIG9uIGVhY2ggbm9kZSwgYW5kIHlvdQo+PiBjYW4ndCBsaXN0IHRoaXMgZmlsZSBz eXN0ZW0gZGlyZWN0b3J5Lgo+PiBUaGUgcHJvYmxlbWF0aWMgcmVmbGluayBjb21tYW5kIHByb2Nl c3MgaXMgYmxvY2tlZCBhdCBvbmUgbm9kZSwKPj4gdGFzazpyZWZsaW5rICAgICAgICAgc3RhdGU6 RCBzdGFjazogICAgMCBwaWQ6IDEyODMgcHBpZDogIDQxNTQKPj4gQ2FsbCBUcmFjZToKPj4gICBf X3NjaGVkdWxlKzB4MmZkLzB4NzUwCj4+ICAgc2NoZWR1bGUrMHgyZi8weGEwCj4+ICAgc2NoZWR1 bGVfdGltZW91dCsweDFjYy8weDMxMAo+PiAgID8gb2NmczJfY29udHJvbF9jZnUrMHg1MC8weDUw IFtvY2ZzMl9zdGFja191c2VyXQo+PiAgID8gMHhmZmZmZmZmZmMwZTNlMDAwCj4+ICAgd2FpdF9m b3JfY29tcGxldGlvbisweGJhLzB4MTQwCj4+ICAgPyB3YWtlX3VwX3ErMHhhMC8weGEwCj4+ICAg X19vY2ZzMl9jbHVzdGVyX2xvY2suaXNyYS40MSsweDNiNS8weDgyMCBbb2NmczJdCj4+ICAgPyBv Y2ZzMl9pbm9kZV9sb2NrX2Z1bGxfbmVzdGVkKzB4MWZjLzB4OTYwIFtvY2ZzMl0KPj4gICBvY2Zz Ml9pbm9kZV9sb2NrX2Z1bGxfbmVzdGVkKzB4MWZjLzB4OTYwIFtvY2ZzMl0KPj4gICBvY2ZzMl9p bml0X3NlY3VyaXR5X2FuZF9hY2wrMHhiZS8weDFkMCBbb2NmczJdCj4+ICAgb2NmczJfcmVmbGlu aysweDQzNi8weDRjMCBbb2NmczJdCj4+ICAgPyBvY2ZzMl9yZWZsaW5rX2lvY3RsKzB4MmNhLzB4 MzYwIFtvY2ZzMl0KPj4gICBvY2ZzMl9yZWZsaW5rX2lvY3RsKzB4MmNhLzB4MzYwIFtvY2ZzMl0K Pj4gICBvY2ZzMl9pb2N0bCsweDI1ZS8weDY3MCBbb2NmczJdCj4+ICAgZG9fdmZzX2lvY3RsKzB4 YTAvMHg2ODAKPj4gICBrc3lzX2lvY3RsKzB4NzAvMHg4MAo+PiAgIF9feDY0X3N5c19pb2N0bCsw eDE2LzB4MjAKPj4gICBkb19zeXNjYWxsXzY0KzB4NWIvMHgxZTAKPj4gVGhlIG90aGVyIHJlZmxp bmsgY29tbWFuZCBwcm9jZXNzZXMgYXJlIGJsb2NrZWQgYXQgb3RoZXIgbm9kZXMsCj4+IHRhc2s6 cmVmbGluayAgICAgICAgIHN0YXRlOkQgc3RhY2s6ICAgIDAgcGlkOjI5NzU5IHBwaWQ6ICA0MDg4 Cj4+IENhbGwgVHJhY2U6Cj4+ICAgX19zY2hlZHVsZSsweDJmZC8weDc1MAo+PiAgIHNjaGVkdWxl KzB4MmYvMHhhMAo+PiAgIHNjaGVkdWxlX3RpbWVvdXQrMHgxY2MvMHgzMTAKPj4gICA/IG9jZnMy X2NvbnRyb2xfY2Z1KzB4NTAvMHg1MCBbb2NmczJfc3RhY2tfdXNlcl0KPj4gICA/IDB4ZmZmZmZm ZmZjMGIxOTAwMAo+PiAgIHdhaXRfZm9yX2NvbXBsZXRpb24rMHhiYS8weDE0MAo+PiAgID8gd2Fr ZV91cF9xKzB4YTAvMHhhMAo+PiAgIF9fb2NmczJfY2x1c3Rlcl9sb2NrLmlzcmEuNDErMHgzYjUv MHg4MjAgW29jZnMyXQo+PiAgID8gb2NmczJfaW5vZGVfbG9ja19mdWxsX25lc3RlZCsweDFmYy8w eDk2MCBbb2NmczJdCj4+ICAgb2NmczJfaW5vZGVfbG9ja19mdWxsX25lc3RlZCsweDFmYy8weDk2 MCBbb2NmczJdCj4+ICAgb2NmczJfbXZfb3JwaGFuZWRfaW5vZGVfdG9fbmV3KzB4ODcvMHg3ZTAg W29jZnMyXQo+PiAgIG9jZnMyX3JlZmxpbmsrMHgzMzUvMHg0YzAgW29jZnMyXQo+PiAgID8gb2Nm czJfcmVmbGlua19pb2N0bCsweDJjYS8weDM2MCBbb2NmczJdCj4+ICAgb2NmczJfcmVmbGlua19p b2N0bCsweDJjYS8weDM2MCBbb2NmczJdCj4+ICAgb2NmczJfaW9jdGwrMHgyNWUvMHg2NzAgW29j ZnMyXQo+PiAgIGRvX3Zmc19pb2N0bCsweGEwLzB4NjgwCj4+ICAga3N5c19pb2N0bCsweDcwLzB4 ODAKPj4gICBfX3g2NF9zeXNfaW9jdGwrMHgxNi8weDIwCj4+ICAgZG9fc3lzY2FsbF82NCsweDVi LzB4MWUwCj4+IG9yCj4+IHRhc2s6cmVmbGluayAgICAgICAgIHN0YXRlOkQgc3RhY2s6ICAgIDAg cGlkOjE4NDY1IHBwaWQ6ICA0MTU2Cj4+IENhbGwgVHJhY2U6Cj4+ICAgX19zY2hlZHVsZSsweDMw Mi8weDk0MAo+PiAgID8gdXNsZWVwX3JhbmdlKzB4ODAvMHg4MAo+PiAgIHNjaGVkdWxlKzB4NDYv MHhiMAo+PiAgIHNjaGVkdWxlX3RpbWVvdXQrMHhmZi8weDE0MAo+PiAgID8gb2NmczJfY29udHJv bF9jZnUrMHg1MC8weDUwIFtvY2ZzMl9zdGFja191c2VyXQo+PiAgID8gMHhmZmZmZmZmZmMwYzNi MDAwCj4+ICAgX193YWl0X2Zvcl9jb21tb24rMHhiOS8weDE3MAo+PiAgIF9fb2NmczJfY2x1c3Rl cl9sb2NrLmNvbnN0cHJvcC4wKzB4MWQ2LzB4ODYwIFtvY2ZzMl0KPj4gICA/IG9jZnMyX3dhaXRf Zm9yX3JlY292ZXJ5KzB4NDkvMHhkMCBbb2NmczJdCj4+ICAgPyBvY2ZzMl9pbm9kZV9sb2NrX2Z1 bGxfbmVzdGVkKzB4MzBmLzB4YTUwIFtvY2ZzMl0KPj4gICBvY2ZzMl9pbm9kZV9sb2NrX2Z1bGxf bmVzdGVkKzB4MzBmLzB4YTUwIFtvY2ZzMl0KPj4gICBvY2ZzMl9pbm9kZV9sb2NrX3RyYWNrZXIr MHhmMi8weDJiMCBbb2NmczJdCj4+ICAgPyBkcHV0KzB4MzIvMHgyZjAKPj4gICBvY2ZzMl9wZXJt aXNzaW9uKzB4NDUvMHhlMCBbb2NmczJdCj4+ICAgaW5vZGVfcGVybWlzc2lvbisweGNjLzB4MTcw Cj4+ICAgbGlua19wYXRoX3dhbGsucGFydC4wLmNvbnN0cHJvcC4wKzB4MmEyLzB4MzgwCj4+ICAg PyBwYXRoX2luaXQrMHgyYzEvMHgzZjAKPj4gICBwYXRoX3BhcmVudGF0KzB4M2MvMHg5MAo+PiAg IGZpbGVuYW1lX3BhcmVudGF0KzB4YzEvMHgxZDAKPj4gICA/IGZpbGVuYW1lX2xvb2t1cCsweDEz OC8weDFjMAo+PiAgIGZpbGVuYW1lX2NyZWF0ZSsweDQzLzB4MTYwCj4+ICAgb2NmczJfcmVmbGlu a19pb2N0bCsweGU2LzB4MzgwIFtvY2ZzMl0KPj4gICBvY2ZzMl9pb2N0bCsweDFlYS8weDJjMCBb b2NmczJdCj4+ICAgPyBkb19zeXNfb3BlbmF0MisweDgxLzB4MTUwCj4+ICAgX194NjRfc3lzX2lv Y3RsKzB4ODIvMHhiMAo+PiAgIGRvX3N5c2NhbGxfNjQrMHg2MS8weGIwCj4+Cj4+IFRoZSBkZWFk bG9jayBpcyBjYXVzZWQgYnkgbXVsdGlwbGUgYWNxdWlyaW5nIHRoZSBkZXN0aW5hdGlvbiBkaXJl Y3RvcnkKPj4gaW5vZGUgZGxtIGxvY2sgaW4gb2NmczJfcmVmbGluayBmdW5jdGlvbiwgd2Ugc2hv dWxkIGFjcXVpcmUgdGhpcwo+PiBkaXJlY3RvcnkgaW5vZGUgZGxtIGxvY2sgYXQgdGhlIGJlZ2lu bmluZywgYW5kIGhvbGQgdGhpcyBkbG0gbG9jayB1bnRpbAo+PiBlbmQgb2YgdGhlIGZ1bmN0aW9u Lgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBHYW5nIEhlIDxnaGVAc3VzZS5jb20+Cj4+IC0tLQo+PiBm cy9vY2ZzMi9uYW1laS5jICAgICAgICB8IDMyICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tCj4+IGZzL29jZnMyL25hbWVpLmggICAgICAgIHwgIDIgKysKPj4gZnMvb2NmczIvcmVmY291 bnR0cmVlLmMgfCAxNSArKysrKysrKysrKy0tLS0KPj4gZnMvb2NmczIveGF0dHIuYyAgICAgICAg fCAxMiArLS0tLS0tLS0tLS0KPj4gZnMvb2NmczIveGF0dHIuaCAgICAgICAgfCAgMSArCj4+IDUg ZmlsZXMgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pCj4+Cj4+IGRp ZmYgLS1naXQgYS9mcy9vY2ZzMi9uYW1laS5jIGIvZnMvb2NmczIvbmFtZWkuYwo+PiBpbmRleCAy YzQ2ZmY2YmE0ZWEuLmY4YmJiMjJjYzYwYiAxMDA2NDQKPj4gLS0tIGEvZnMvb2NmczIvbmFtZWku Ywo+PiArKysgYi9mcy9vY2ZzMi9uYW1laS5jCj4+IEBAIC0yNDg5LDYgKzI0ODksNyBAQCBzdGF0 aWMgaW50IG9jZnMyX3ByZXBfbmV3X29ycGhhbmVkX2ZpbGUoc3RydWN0IGlub2RlICpkaXIsCj4+ IH0KPj4KPj4gaW50IG9jZnMyX2NyZWF0ZV9pbm9kZV9pbl9vcnBoYW4oc3RydWN0IGlub2RlICpk aXIsCj4+ICsJCQkJIHN0cnVjdCBidWZmZXJfaGVhZCAqKmRpcl9iaCwKPj4gCQkJCSBpbnQgbW9k ZSwKPj4gCQkJCSBzdHJ1Y3QgaW5vZGUgKipuZXdfaW5vZGUpCj4+IHsKPj4gQEAgLTI1OTcsMTMg KzI1OTgsMTYgQEAgaW50IG9jZnMyX2NyZWF0ZV9pbm9kZV9pbl9vcnBoYW4oc3RydWN0IGlub2Rl ICpkaXIsCj4+Cj4+IAlicmVsc2UobmV3X2RpX2JoKTsKPj4KPj4gLQlpZiAoIXN0YXR1cykKPj4g LQkJKm5ld19pbm9kZSA9IGlub2RlOwo+PiAtCj4+IAlvY2ZzMl9mcmVlX2Rpcl9sb29rdXBfcmVz dWx0KCZvcnBoYW5faW5zZXJ0KTsKPj4KPj4gLQlvY2ZzMl9pbm9kZV91bmxvY2soZGlyLCAxKTsK Pj4gLQlicmVsc2UocGFyZW50X2RpX2JoKTsKPj4gKwlpZiAoIXN0YXR1cykgewo+PiArCQkqbmV3 X2lub2RlID0gaW5vZGU7Cj4+ICsJCSpkaXJfYmggPSBwYXJlbnRfZGlfYmg7Cj4+ICsJfSBlbHNl IHsKPj4gKwkJb2NmczJfaW5vZGVfdW5sb2NrKGRpciwgMSk7Cj4+ICsJCWJyZWxzZShwYXJlbnRf ZGlfYmgpOwo+PiArCX0KPj4gKwo+PiAJcmV0dXJuIHN0YXR1czsKPj4gfQo+Pgo+PiBAQCAtMjc2 MCwxMSArMjc2NCwxMSBAQCBpbnQgb2NmczJfZGVsX2lub2RlX2Zyb21fb3JwaGFuKHN0cnVjdCBv Y2ZzMl9zdXBlciAqb3NiLAo+PiB9Cj4+Cj4+IGludCBvY2ZzMl9tdl9vcnBoYW5lZF9pbm9kZV90 b19uZXcoc3RydWN0IGlub2RlICpkaXIsCj4+ICsJCQkJICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpk aXJfYmgsCj4+IAkJCQkgICBzdHJ1Y3QgaW5vZGUgKmlub2RlLAo+PiAJCQkJICAgc3RydWN0IGRl bnRyeSAqZGVudHJ5KQo+PiB7Cj4+IAlpbnQgc3RhdHVzID0gMDsKPj4gLQlzdHJ1Y3QgYnVmZmVy X2hlYWQgKnBhcmVudF9kaV9iaCA9IE5VTEw7Cj4+IAloYW5kbGVfdCAqaGFuZGxlID0gTlVMTDsK Pj4gCXN0cnVjdCBvY2ZzMl9zdXBlciAqb3NiID0gT0NGUzJfU0IoZGlyLT5pX3NiKTsKPj4gCXN0 cnVjdCBvY2ZzMl9kaW5vZGUgKmRpcl9kaSwgKmRpOwo+PiBAQCAtMjc3OCwxNCArMjc4Miw3IEBA IGludCBvY2ZzMl9tdl9vcnBoYW5lZF9pbm9kZV90b19uZXcoc3RydWN0IGlub2RlICpkaXIsCj4+ IAkJCQkodW5zaWduZWQgbG9uZyBsb25nKU9DRlMyX0koZGlyKS0+aXBfYmxrbm8sCj4+IAkJCQko dW5zaWduZWQgbG9uZyBsb25nKU9DRlMyX0koaW5vZGUpLT5pcF9ibGtubyk7Cj4+Cj4+IC0Jc3Rh dHVzID0gb2NmczJfaW5vZGVfbG9jayhkaXIsICZwYXJlbnRfZGlfYmgsIDEpOwo+PiAtCWlmIChz dGF0dXMgPCAwKSB7Cj4+IC0JCWlmIChzdGF0dXMgIT0gLUVOT0VOVCkKPj4gLQkJCW1sb2dfZXJy bm8oc3RhdHVzKTsKPj4gLQkJcmV0dXJuIHN0YXR1czsKPj4gLQl9Cj4+IC0KPj4gLQlkaXJfZGkg PSAoc3RydWN0IG9jZnMyX2Rpbm9kZSAqKSBwYXJlbnRfZGlfYmgtPmJfZGF0YTsKPj4gKwlkaXJf ZGkgPSAoc3RydWN0IG9jZnMyX2Rpbm9kZSAqKSBkaXJfYmgtPmJfZGF0YTsKPj4gCWlmICghZGly X2RpLT5pX2xpbmtzX2NvdW50KSB7Cj4+IAkJLyogY2FuJ3QgbWFrZSBhIGZpbGUgaW4gYSBkZWxl dGVkIGRpcmVjdG9yeS4gKi8KPj4gCQlzdGF0dXMgPSAtRU5PRU5UOwo+PiBAQCAtMjc5OCw3ICsy Nzk1LDcgQEAgaW50IG9jZnMyX212X29ycGhhbmVkX2lub2RlX3RvX25ldyhzdHJ1Y3QgaW5vZGUg KmRpciwKPj4gCQlnb3RvIGxlYXZlOwo+Pgo+PiAJLyogZ2V0IGEgc3BvdCBpbnNpZGUgdGhlIGRp ci4gKi8KPj4gLQlzdGF0dXMgPSBvY2ZzMl9wcmVwYXJlX2Rpcl9mb3JfaW5zZXJ0KG9zYiwgZGly LCBwYXJlbnRfZGlfYmgsCj4+ICsJc3RhdHVzID0gb2NmczJfcHJlcGFyZV9kaXJfZm9yX2luc2Vy dChvc2IsIGRpciwgZGlyX2JoLAo+PiAJCQkJCSAgICAgIGRlbnRyeS0+ZF9uYW1lLm5hbWUsCj4+ IAkJCQkJICAgICAgZGVudHJ5LT5kX25hbWUubGVuLCAmbG9va3VwKTsKPj4gCWlmIChzdGF0dXMg PCAwKSB7Cj4+IEBAIC0yODYyLDcgKzI4NTksNyBAQCBpbnQgb2NmczJfbXZfb3JwaGFuZWRfaW5v ZGVfdG9fbmV3KHN0cnVjdCBpbm9kZSAqZGlyLAo+PiAJb2NmczJfam91cm5hbF9kaXJ0eShoYW5k bGUsIGRpX2JoKTsKPj4KPj4gCXN0YXR1cyA9IG9jZnMyX2FkZF9lbnRyeShoYW5kbGUsIGRlbnRy eSwgaW5vZGUsCj4+IC0JCQkJIE9DRlMyX0koaW5vZGUpLT5pcF9ibGtubywgcGFyZW50X2RpX2Jo LAo+PiArCQkJCSBPQ0ZTMl9JKGlub2RlKS0+aXBfYmxrbm8sIGRpcl9iaCwKPj4gCQkJCSAmbG9v a3VwKTsKPj4gCWlmIChzdGF0dXMgPCAwKSB7Cj4+IAkJbWxvZ19lcnJubyhzdGF0dXMpOwo+PiBA QCAtMjg4NiwxMCArMjg4Myw3IEBAIGludCBvY2ZzMl9tdl9vcnBoYW5lZF9pbm9kZV90b19uZXco c3RydWN0IGlub2RlICpkaXIsCj4+IAlpcHV0KG9ycGhhbl9kaXJfaW5vZGUpOwo+PiBsZWF2ZToK Pj4KPj4gLQlvY2ZzMl9pbm9kZV91bmxvY2soZGlyLCAxKTsKPj4gLQo+PiAJYnJlbHNlKGRpX2Jo KTsKPj4gLQlicmVsc2UocGFyZW50X2RpX2JoKTsKPj4gCWJyZWxzZShvcnBoYW5fZGlyX2JoKTsK Pj4KPj4gCW9jZnMyX2ZyZWVfZGlyX2xvb2t1cF9yZXN1bHQoJmxvb2t1cCk7Cj4+IGRpZmYgLS1n aXQgYS9mcy9vY2ZzMi9uYW1laS5oIGIvZnMvb2NmczIvbmFtZWkuaAo+PiBpbmRleCA5Y2M4OTFl Yjg3NGUuLjAzYTJjNTI2ZTJjMSAxMDA2NDQKPj4gLS0tIGEvZnMvb2NmczIvbmFtZWkuaAo+PiAr KysgYi9mcy9vY2ZzMi9uYW1laS5oCj4+IEBAIC0yNCw2ICsyNCw3IEBAIGludCBvY2ZzMl9vcnBo YW5fZGVsKHN0cnVjdCBvY2ZzMl9zdXBlciAqb3NiLAo+PiAJCSAgICAgc3RydWN0IGJ1ZmZlcl9o ZWFkICpvcnBoYW5fZGlyX2JoLAo+PiAJCSAgICAgYm9vbCBkaW8pOwo+PiBpbnQgb2NmczJfY3Jl YXRlX2lub2RlX2luX29ycGhhbihzdHJ1Y3QgaW5vZGUgKmRpciwKPj4gKwkJCQkgc3RydWN0IGJ1 ZmZlcl9oZWFkICoqZGlyX2JoLAo+PiAJCQkJIGludCBtb2RlLAo+PiAJCQkJIHN0cnVjdCBpbm9k ZSAqKm5ld19pbm9kZSk7Cj4+IGludCBvY2ZzMl9hZGRfaW5vZGVfdG9fb3JwaGFuKHN0cnVjdCBv Y2ZzMl9zdXBlciAqb3NiLAo+PiBAQCAtMzIsNiArMzMsNyBAQCBpbnQgb2NmczJfZGVsX2lub2Rl X2Zyb21fb3JwaGFuKHN0cnVjdCBvY2ZzMl9zdXBlciAqb3NiLAo+PiAJCXN0cnVjdCBpbm9kZSAq aW5vZGUsIHN0cnVjdCBidWZmZXJfaGVhZCAqZGlfYmgsCj4+IAkJaW50IHVwZGF0ZV9pc2l6ZSwg bG9mZl90IGVuZCk7Cj4+IGludCBvY2ZzMl9tdl9vcnBoYW5lZF9pbm9kZV90b19uZXcoc3RydWN0 IGlub2RlICpkaXIsCj4+ICsJCQkJICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpkaXJfYmgsCj4+IAkJ CQkgICBzdHJ1Y3QgaW5vZGUgKm5ld19pbm9kZSwKPj4gCQkJCSAgIHN0cnVjdCBkZW50cnkgKm5l d19kZW50cnkpOwo+Pgo+PiBkaWZmIC0tZ2l0IGEvZnMvb2NmczIvcmVmY291bnR0cmVlLmMgYi9m cy9vY2ZzMi9yZWZjb3VudHRyZWUuYwo+PiBpbmRleCA3ZjYzNTVjYmI1ODcuLmE5YTBjN2MzN2U4 ZSAxMDA2NDQKPj4gLS0tIGEvZnMvb2NmczIvcmVmY291bnR0cmVlLmMKPj4gKysrIGIvZnMvb2Nm czIvcmVmY291bnR0cmVlLmMKPj4gQEAgLTQyNTAsNyArNDI1MCw3IEBAIHN0YXRpYyBpbnQgb2Nm czJfcmVmbGluayhzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmRpciwK Pj4gewo+PiAJaW50IGVycm9yLCBoYWRfbG9jazsKPj4gCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBk X2lub2RlKG9sZF9kZW50cnkpOwo+PiAtCXN0cnVjdCBidWZmZXJfaGVhZCAqb2xkX2JoID0gTlVM TDsKPj4gKwlzdHJ1Y3QgYnVmZmVyX2hlYWQgKm9sZF9iaCA9IE5VTEwsICpkaXJfYmggPSBOVUxM Owo+PiAJc3RydWN0IGlub2RlICpuZXdfb3JwaGFuX2lub2RlID0gTlVMTDsKPj4gCXN0cnVjdCBv Y2ZzMl9sb2NrX2hvbGRlciBvaDsKPj4KPj4gQEAgLTQyNTgsNyArNDI1OCw3IEBAIHN0YXRpYyBp bnQgb2NmczJfcmVmbGluayhzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LCBzdHJ1Y3QgaW5vZGUg KmRpciwKPj4gCQlyZXR1cm4gLUVPUE5PVFNVUFA7Cj4+Cj4+Cj4+IC0JZXJyb3IgPSBvY2ZzMl9j cmVhdGVfaW5vZGVfaW5fb3JwaGFuKGRpciwgaW5vZGUtPmlfbW9kZSwKPj4gKwllcnJvciA9IG9j ZnMyX2NyZWF0ZV9pbm9kZV9pbl9vcnBoYW4oZGlyLCAmZGlyX2JoLCBpbm9kZS0+aV9tb2RlLAo+ PiAJCQkJCSAgICAgJm5ld19vcnBoYW5faW5vZGUpOwo+PiAJaWYgKGVycm9yKSB7Cj4+IAkJbWxv Z19lcnJubyhlcnJvcik7Cj4+IEBAIC00MzA0LDEzICs0MzA0LDE1IEBAIHN0YXRpYyBpbnQgb2Nm czJfcmVmbGluayhzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmRpciwK Pj4KPj4gCS8qIElmIHRoZSBzZWN1cml0eSBpc24ndCBwcmVzZXJ2ZWQsIHdlIG5lZWQgdG8gcmUt aW5pdGlhbGl6ZSB0aGVtLiAqLwo+PiAJaWYgKCFwcmVzZXJ2ZSkgewo+PiAtCQllcnJvciA9IG9j ZnMyX2luaXRfc2VjdXJpdHlfYW5kX2FjbChkaXIsIG5ld19vcnBoYW5faW5vZGUsCj4+ICsJCWVy cm9yID0gb2NmczJfaW5pdF9zZWN1cml0eV9hbmRfYWNsKGRpciwgZGlyX2JoLAo+PiArCQkJCQkJ ICAgIG5ld19vcnBoYW5faW5vZGUsCj4+IAkJCQkJCSAgICAmbmV3X2RlbnRyeS0+ZF9uYW1lKTsK Pj4gCQlpZiAoZXJyb3IpCj4+IAkJCW1sb2dfZXJybm8oZXJyb3IpOwo+PiAJfQo+PiAJaWYgKCFl cnJvcikgewo+PiAtCQllcnJvciA9IG9jZnMyX212X29ycGhhbmVkX2lub2RlX3RvX25ldyhkaXIs IG5ld19vcnBoYW5faW5vZGUsCj4+ICsJCWVycm9yID0gb2NmczJfbXZfb3JwaGFuZWRfaW5vZGVf dG9fbmV3KGRpciwgZGlyX2JoLAo+PiArCQkJCQkJICAgICAgIG5ld19vcnBoYW5faW5vZGUsCj4+ IAkJCQkJCSAgICAgICBuZXdfZGVudHJ5KTsKPj4gCQlpZiAoZXJyb3IpCj4+IAkJCW1sb2dfZXJy bm8oZXJyb3IpOwo+PiBAQCAtNDMyOCw2ICs0MzMwLDExIEBAIHN0YXRpYyBpbnQgb2NmczJfcmVm bGluayhzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmRpciwKPj4gCQkJ aXB1dChuZXdfb3JwaGFuX2lub2RlKTsKPj4gCX0KPj4KPj4gKwlpZiAoZGlyX2JoKSB7Cj4+ICsJ CW9jZnMyX2lub2RlX3VubG9jayhkaXIsIDEpOwo+PiArCQlicmVsc2UoZGlyX2JoKTsKPj4gKwl9 Cj4+ICsKPj4gCXJldHVybiBlcnJvcjsKPj4gfQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZnMvb2NmczIv eGF0dHIuYyBiL2ZzL29jZnMyL3hhdHRyLmMKPj4gaW5kZXggZGQ3ODRlYjBjZDdjLi4zZjIzZTNh NTAxOGMgMTAwNjQ0Cj4+IC0tLSBhL2ZzL29jZnMyL3hhdHRyLmMKPj4gKysrIGIvZnMvb2NmczIv eGF0dHIuYwo+PiBAQCAtNzIwMywxNiArNzIwMywxMyBAQCBpbnQgb2NmczJfcmVmbGlua194YXR0 cnMoc3RydWN0IGlub2RlICpvbGRfaW5vZGUsCj4+IC8qCj4+ICAgKiBJbml0aWFsaXplIHNlY3Vy aXR5IGFuZCBhY2wgZm9yIGEgYWxyZWFkeSBjcmVhdGVkIGlub2RlLgo+PiAgICogVXNlZCBmb3Ig cmVmbGluayBhIG5vbi1wcmVzZXJ2ZS1zZWN1cml0eSBmaWxlLgo+PiAtICoKPj4gLSAqIEl0IHVz ZXMgY29tbW9uIGFwaSBsaWtlIG9jZnMyX3hhdHRyX3NldCwgc28gdGhlIGNhbGxlcgo+PiAtICog bXVzdCBub3QgaG9sZCBhbnkgbG9jayBleHBlY3QgaV9tdXRleC4KPj4gICAqLwo+PiBpbnQgb2Nm czJfaW5pdF9zZWN1cml0eV9hbmRfYWNsKHN0cnVjdCBpbm9kZSAqZGlyLAo+PiArCQkJCXN0cnVj dCBidWZmZXJfaGVhZCAqZGlyX2JoLAo+PiAJCQkJc3RydWN0IGlub2RlICppbm9kZSwKPj4gCQkJ CWNvbnN0IHN0cnVjdCBxc3RyICpxc3RyKQo+PiB7Cj4+IAlpbnQgcmV0ID0gMDsKPj4gLQlzdHJ1 Y3QgYnVmZmVyX2hlYWQgKmRpcl9iaCA9IE5VTEw7Cj4+Cj4+IAlyZXQgPSBvY2ZzMl9pbml0X3Nl Y3VyaXR5X2dldChpbm9kZSwgZGlyLCBxc3RyLCBOVUxMKTsKPj4gCWlmIChyZXQpIHsKPj4gQEAg LTcyMjAsMTcgKzcyMTcsMTAgQEAgaW50IG9jZnMyX2luaXRfc2VjdXJpdHlfYW5kX2FjbChzdHJ1 Y3QgaW5vZGUgKmRpciwKPj4gCQlnb3RvIGxlYXZlOwo+PiAJfQo+Pgo+PiAtCXJldCA9IG9jZnMy X2lub2RlX2xvY2soZGlyLCAmZGlyX2JoLCAwKTsKPj4gLQlpZiAocmV0KSB7Cj4+IC0JCW1sb2df ZXJybm8ocmV0KTsKPj4gLQkJZ290byBsZWF2ZTsKPj4gLQl9Cj4+IAlyZXQgPSBvY2ZzMl9pbml0 X2FjbChOVUxMLCBpbm9kZSwgZGlyLCBOVUxMLCBkaXJfYmgsIE5VTEwsIE5VTEwpOwo+PiAJaWYg KHJldCkKPj4gCQltbG9nX2Vycm5vKHJldCk7Cj4+Cj4+IC0Jb2NmczJfaW5vZGVfdW5sb2NrKGRp ciwgMCk7Cj4+IC0JYnJlbHNlKGRpcl9iaCk7Cj4+IGxlYXZlOgo+PiAJcmV0dXJuIHJldDsKPj4g fQo+PiBkaWZmIC0tZ2l0IGEvZnMvb2NmczIveGF0dHIuaCBiL2ZzL29jZnMyL3hhdHRyLmgKPj4g aW5kZXggMDAzMDhiNTdmNjRmLi5iMjdmZDhiYTAwMTkgMTAwNjQ0Cj4+IC0tLSBhL2ZzL29jZnMy L3hhdHRyLmgKPj4gKysrIGIvZnMvb2NmczIveGF0dHIuaAo+PiBAQCAtODMsNiArODMsNyBAQCBp bnQgb2NmczJfcmVmbGlua194YXR0cnMoc3RydWN0IGlub2RlICpvbGRfaW5vZGUsCj4+IAkJCSBz dHJ1Y3QgYnVmZmVyX2hlYWQgKm5ld19iaCwKPj4gCQkJIGJvb2wgcHJlc2VydmVfc2VjdXJpdHkp Owo+PiBpbnQgb2NmczJfaW5pdF9zZWN1cml0eV9hbmRfYWNsKHN0cnVjdCBpbm9kZSAqZGlyLAo+ PiArCQkJCXN0cnVjdCBidWZmZXJfaGVhZCAqZGlyX2JoLAo+PiAJCQkJc3RydWN0IGlub2RlICpp bm9kZSwKPj4gCQkJCWNvbnN0IHN0cnVjdCBxc3RyICpxc3RyKTsKPj4gI2VuZGlmIC8qIE9DRlMy X1hBVFRSX0ggKi8KPj4gLS0gCj4+IDIuMjEuMAo+Pgo+Pgo+PiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBPY2ZzMi1kZXZlbCBtYWlsaW5nIGxpc3QK Pj4gT2NmczItZGV2ZWxAb3NzLm9yYWNsZS5jb20KPj4gaHR0cHM6Ly9vc3Mub3JhY2xlLmNvbS9t YWlsbWFuL2xpc3RpbmZvL29jZnMyLWRldmVsCj4gCgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KT2NmczItZGV2ZWwgbWFpbGluZyBsaXN0Ck9jZnMyLWRl dmVsQG9zcy5vcmFjbGUuY29tCmh0dHBzOi8vb3NzLm9yYWNsZS5jb20vbWFpbG1hbi9saXN0aW5m by9vY2ZzMi1kZXZlbA==