From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id 4E1783858C66 for ; Mon, 27 Mar 2023 14:22:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4E1783858C66 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 32RE4iQC002830; Mon, 27 Mar 2023 14:22:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=Ns5eqtuj8a6QILtk7wQF+IIggeKAPyxWlkx9NlzRSsA=; b=aSMERNGN9wyGcEJKFDjnXjdBn4qkAirktI73FncINlavAqWQxNdrIb71WW5mPUla4+3N OPxe4F4/0hum9ub2jtRbNxk0aJUeLG4S+BkUVFWKrGHtgicK58mLPjefEbj8f08Qnm8G Xc6K+dU0USaRDHRetB9kCyv+HYpXUgso3KL8uzeAedbUNfqS7KNnW9i2ChuyxLMcdAHv cV5Um2GRyBP3kSSzOl91/+pLgqvVhbspZE4IZHcMWLJe7XcvZv2BhR6/wEr7TtUgBHxJ PVgrzwmaMgG4gILAr7lg6nudolP7hvkcYrDdSkW1Sg32Oy9JoICe1UwrDm33JFMVBtbc yw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3pkck2838g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 27 Mar 2023 14:22:37 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 32RDWqR8027784; Mon, 27 Mar 2023 14:22:36 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2108.outbound.protection.outlook.com [104.47.55.108]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3phqd4vbw3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 27 Mar 2023 14:22:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GoWp1luBz9a7/tiblAEzwpRGUJ/AVa8TbKqDJGQ1XqSW9vl5kYEUlmrwgQRuRPKag+/WPK3dEFnmz+s3aNHc9ToGTSFC86YmO5STAW49HfyUhaWPU8R1F6iYBwxnrzkQtgaAZIUJWRItNjdi4CnTEtB/vYDLBcZO+atQ4z31L2pI7AO5OZrhoCUs6cpMR4MyVLPVwSltvoLXOnEQ6x1cRgkN800ZBNEmSusdIYjzqf6GW6mEi5sDzZPKvU8TSc6R5D4PEL9swnoxsO9V+IKsjshvaWFXhjuRX2fGMFfsuZeWzYamnx/w3lnDEeH8Vaf1OBkguhKDymwh16SbMQNMlA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Ns5eqtuj8a6QILtk7wQF+IIggeKAPyxWlkx9NlzRSsA=; b=VIqo/RhVD8V7Po99+/jLv5JdncIgygU5M32AMtPkn2QYKppq75Y+8tHw6jHeTYQqhFOJLWftEerSA1tPsf6tzHOXcOEY8Pe9cEKdW1Ia4l5W5ZlISbg3vjEyCXOYwlJZlruyCBEzHmKzsndyH2mYtPLdf8roMfYZcccdCB4ZvHiMXszgHd/vy1UWMniJBB0sI0HXx136j9IzAYOCgDaRNzfC9eut+jn8yveQ4gFsNzgYb+LBe8Xpu3qrd8Petp/78776SXRzxGpQnURrHwiprh+rNbZDQkvRiJHUKFqDx84r4I4qSjXMiONJHiAIs8K3o4xzgCBACYJn9sliEu8WEg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ns5eqtuj8a6QILtk7wQF+IIggeKAPyxWlkx9NlzRSsA=; b=hrCr/6E5wlZdqxi3FHEf7m8AQcF5CZ1WB/8q8TTnWyGTBZT49NpR3FxVdZpNTV0LTqM2xHsf6NaI+WtBmephE1UnB1RML8ymt/HSWp6+WO9qBWPUpnWZaoZIWmUPQqGZb9zmVWE1YOYaqLEqeEymWsOZrR5X5uUKPa+01qm/qwY= Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by CY5PR10MB6096.namprd10.prod.outlook.com (2603:10b6:930:37::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.40; Mon, 27 Mar 2023 14:22:33 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::7030:ed2e:20d0:cd5b]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::7030:ed2e:20d0:cd5b%9]) with mapi id 15.20.6178.041; Mon, 27 Mar 2023 14:22:33 +0000 From: Qing Zhao To: Jakub Jelinek CC: Joseph Myers , "Sandra@codesourcery.com" , Siddhesh Poyarekar , Richard Biener , Kees Cook , gcc Patches Subject: Re: [V5][PATCH 1/2] Handle component_ref to a structre/union field including flexible array member [PR101832] Thread-Topic: [V5][PATCH 1/2] Handle component_ref to a structre/union field including flexible array member [PR101832] Thread-Index: AQHZWFDtTT1WMCFiMUK2GNNt6QoVnq8Ovn4A Date: Mon, 27 Mar 2023 14:22:33 +0000 Message-ID: <93D8254A-2611-47BE-9881-F25C64A7F078@oracle.com> References: <20230316214715.604671-2-qing.zhao@oracle.com> <95180085-897F-4B87-BE0E-78ACF1808326@oracle.com> In-Reply-To: <95180085-897F-4B87-BE0E-78ACF1808326@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3696.120.41.1.2) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR10MB4344:EE_|CY5PR10MB6096:EE_ x-ms-office365-filtering-correlation-id: 6df3f383-bcd9-4154-7cdb-08db2eceb492 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2xmlJ1ZAsJVcoPy/aiDTJUDg9Oa+WoTcyQLkqG/8IUc8/t9DfwYgotWOtd7Ojcd71g1xX37u8zGriolZ1OjFYyH1o9p5E24nDwQiMG9rskHKtFQmTJJiPHemdFNhkExogC7mtL/iBtQJz3cxjpiepd5NGOQaZY33CXNLoxfArq4qtSu2VD4/aKgA7kWF5LyxK3BSl3bYywq5KuE683FcCOeYowdiajK8FFKHDPG7fGOeBy0NrMYgZtjdGhSLzodsGRx2uhyoVbTSTTdk1pT7g+hYCToW45r8sinGr5Zo3lKLNFC1cv+Ls3qB4tuXR+SzG5jNeVn/8uIB+g6y8SgCLGizuLFyXV776xRrxWQ7o4LTZ/ftZSaUNx/29QGC0wtuCLqaKIN9zCZk2wFZ6haboL9tntsiuBprIA+E7eKtOryEm5gr5Pf4FoMk+dZMJbrwLzmzLzzS1LwsW0ZN8SXeSUcQB1qTbLMX6ilRfrJMCVXLtcESEulYN0BJd3KtkuTSwK/Eo00z0AcZgd4/xKnyjocxowFjM3aFxWwoxSOKCDsMJFJd3wxWKjHn05YOzZmbTtbwZDInm91pNPAdHJIDTwYyQfo9h/HbGGeu7B8LOWqUlc+lKT1QJzE1vEK3jq8HZpt17h/Vr4I/CBaxwjVrKYRXnk6exxHjviUcg5nUosjBuaZPmXGWEwgFFCk3VhQi x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR10MB4344.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(396003)(39860400002)(346002)(376002)(366004)(136003)(451199021)(478600001)(54906003)(66446008)(6506007)(71200400001)(83380400001)(5660300002)(966005)(2906002)(30864003)(44832011)(316002)(6486002)(186003)(6916009)(66946007)(8676002)(41300700001)(33656002)(38100700002)(91956017)(8936002)(76116006)(36756003)(66556008)(2616005)(84970400001)(122000001)(6512007)(4326008)(38070700005)(66476007)(86362001)(64756008)(53546011)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?d1h6QjlocWRSejg1UnNrbFhMcGhTK1ZEUlQrU1Vxc3FFVHVReUxQN3lIVHdX?= =?utf-8?B?ZzZ4NXVvZkM1STFQeHkzQTZoTkhqNlc5Y1FxemtZcnNyMElEdVhPNC82blFZ?= =?utf-8?B?UTFITDVTUGRhYWJFN0x3aE5vRDZOMEowcm1DOFBjcFpxVnVhcDdoTjRiU05m?= =?utf-8?B?ckUzNHQ0T3Z2cDFkclA0SWpKeGtsd3NzblNOaXdKcjZQRkN6QlRHcGhCUE1l?= =?utf-8?B?RGFMZU03RXU3THYrbGVlenNydzlvajFMRlZ1ekErU25vYkJiVWhzSndOYkJl?= =?utf-8?B?YzJFaERmb0cvUUNwL2hNUlNXMUtwNWt6K2pSTndSRjNGcHMvaHFucTl3TVR6?= =?utf-8?B?UTZSZ04wV3RlcmcyYnhnaVJYamQrSjdTT2tGQnEzZFVHTE5lanNvL0ZJMTMr?= =?utf-8?B?UXdSbFJNb2UwYy9ZeHhMK0dCRDZmOTAwZ1lJSTJGQU9BYmlNclc2bm5tRXRk?= =?utf-8?B?eUNwVXdFR3hZRk9kbGNTSzd0RXFRdDB4Q0M3b09wTjFrMFBLRmJ2aTdCejU1?= =?utf-8?B?VUlzZlVYZDJBeXFsNktYZVRGU3ljcjR5VXFwelBJTnRNdkZnT0lQYm02TU1u?= =?utf-8?B?TG5yY28xdnNLNER1NXdjQ3h3UmVSWWVzcTFnemtSMEhoUGpsWTBGd2gzK2t2?= =?utf-8?B?d0YvaGxJb0FZK3RlcWRpUWVpQnVueXVCRTlNLzhDM1paTElBMWM0V3ZBTzhQ?= =?utf-8?B?OGFEcWdSVXBXU241TEhVQkc4NHlZZTZnaEUzaTI4V0tiTWZEYUU5NmQwRWNi?= =?utf-8?B?SlJRUStLRXo3MnFsU1RCUkwxemVZTjl6cVRUamczU1hCWVRHWTlhRjZZWEI1?= =?utf-8?B?OVhVY082bEtBdldTckI1MVFqaCtUS0lQN2VIL1l4UGVIZWZzM2VObVl6WE96?= =?utf-8?B?UkZmekRVMVcxWG5Ceml5SUQrMVBFcDFseWJCd1I0a1VQbDBobjQrVERNWDg1?= =?utf-8?B?ZkR3c24wR0lwc01kK3RSMVZyd0tlU0F4QS9lbmdMb1VObG9BcUFIRmRhRk5S?= =?utf-8?B?WEtSck90NnpPRnBjODBKQW9ZclV1aFlBMnptQ1JsVWtDZi95TXRXQW1wWDgz?= =?utf-8?B?bC9iUlI1eHpaNUNnWjYyU2Z2VnB0S3RUWFlHcHVCMkxvMWY5am5WRFBMc3Rh?= =?utf-8?B?YVNpRWR2SFlnVHMzSmdvNUNDaFZxQkpnR0h4bldMZFlPRjRmbDZ0TktkRjNU?= =?utf-8?B?anlHMjAySG55bG5Wb0VsODVBTlFLVG40OW1zUjczV0JxZTJNaDVEc2RiM2Ez?= =?utf-8?B?b1VCOUprTnl0SE5pakFKNzVpdUs3OW0zT2drTTVoN0JuMVVhY0ZWUTFsLy9m?= =?utf-8?B?eGlHYlVxdzU0enZJQ04xSVpIVW5iY2FSd2d1QUp5N0plUllCTXlwdDZ3b1pq?= =?utf-8?B?T0piZHhSWVNMNmh5K0pRR2U0Rnc1Zm81OEM5aVgyUXN3Q0I1eGgzMUJWZFdt?= =?utf-8?B?QUdpTlQ2U29KTlV5c0N0UkQyVnJadGVzeGZzWjZKaENsa3ZnRmNScVNPcDcw?= =?utf-8?B?TVJGbk5tN1REYkFycTh0cHlta3pDYXUzUkorYkxMTStZRGUzNUxIRTNpclZ5?= =?utf-8?B?M1ZKaVA3T25jdEFpUHlvZGdpTVU3TUJVR1QzMFZzNzFZK3FpSnM5R2V0cHFl?= =?utf-8?B?dTZUQWg1KzBHbGovTm1BY1BONjV5NlNBaXNhbmlHQ3lzT05zek1ka3d2NUxP?= =?utf-8?B?aEFvSHhEc1cxT0w5emdwZFllVHQ5dm1oTElGN2grb2xabE81elN3eldMOUtJ?= =?utf-8?B?VW1KTWEyVGJleUlCRlFIRm9TSkpRVWVIbDMxRXpkWXllNUhFVGp6WEVOMG1H?= =?utf-8?B?S3dDTkFOZzh1WCs3QzFpNDJXWk9KY3VOdHAxUForM0Fib0RXVU5xbzRCNVdC?= =?utf-8?B?Zm16bWpJelNhRkVYSTFjeml3QytqTmd5WktxNEd6YlFCNktmcjFNdXBKaXhl?= =?utf-8?B?Vk5PRmFqcG1VU3dPSXB2RzlPcm1iY2psWHZrYW9oTTZFazI1dDVpc29sNS94?= =?utf-8?B?djNmcDhvdDlnWUpLNitjMXE2SUh0R25MTkUxYWJNNmhXclEyNlJpQ2k1MFNF?= =?utf-8?B?aWg3bmorcjNaMDRDeSt5N3NpNTBycFZzbGNNSmJ6cGhnTzJFTGpxRlVVc2hP?= =?utf-8?B?Y0ZObGdBd1B2b252ZUJLdzRVNFZIRzJITHBkZEw5YU82eCtmbTlUNTJtMlVj?= =?utf-8?Q?woJm3ks2i1naARnzu1Fz4uc=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <02CDD678A1A2004BBC49766B7CE843CB@namprd10.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 5Y4bfx/QCcHOz3IgkXIzo+7PnaxHTirJfCjbX3Ro/YX9oIfcoUNnSQPtTKK9ULmfcW7oFJV/WcI/Xg66YtNqhpr0RHNLsq3NXbBHvVJenM80NeNak0lQSOhb0zM4DH2OtaKm74R6Z8V3BNzaZHXZm//YaY1HIWWsAD0PwkWzA4sPX/6gZC8vyZ060DPh29iHQH79CniEkjEEIwelo5dg6KbVJPKrwyq0YBnECApI4q1FiWhGAKh3xr0EF14hYwNkNo1NKicnLi84/sSOdAp676WSXHp+08ogijSycII7prwL6NWnS/PCMYbYJJfThPGYwCHocooJlT6WebBGwVnsRqFtPsw97v6zXlgfT7kGuhAr14ju4sZ1iWu1m008bLQPZBfmx83blsAtTgoRs89JXQGWXHTKCfdeqzrQXBKaebfosJblBtWjpl2rguONteddBthS/ROwhzDOL0hShgmfTrfwtTzYi+MiC7PqpSPv+Nc6528Pp1kMfXPvq/4HOxxJzqHTzfxzhEfimzcaWpXiBaLs8vW6cFmglNstHF+QXuaW7TNkT2hoCuLx3mo+8W093J+xPwufjlWxitGk1FMcXsnMjpZdjA92XI+eehTF73VHAzNjtYc0Os2rqdr7rsLospUUOTBFn0ID/3wyFsTc7muTUlQ08DO/9//lEr9HMqCSE14v0+el5j8MYcaLeIc93Buy3ZkNngZ+QZnWOw1lf/T56WVI0JuuXB6bdDSCVYh0YC0CjLSNciPt7W8WOpaAnqG4Nd6sNz7SY1eUcv1TFGYWVqNvzNdZB3FAryyfGfGrsrJX44ExW0dJPrCtoPJrmdNxd8HQgQl/bDFqprKxZBIPVSycPcpEQIWS6OgiAfBqqzGr5sPNs10TQDksA8g3I6nm4Mn38zIg6r7cMOlTh32BSNQeFEO6HJnUdpoHYKw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR10MB4344.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6df3f383-bcd9-4154-7cdb-08db2eceb492 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Mar 2023 14:22:33.0540 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: /DZil+YJyYvBnpabrvSXDqJLNA00ubVKN9UXQEZlnIoxltYApDpzW14+18+WsjGy29kDjEgBVsZrQX/XEalADw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB6096 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-24_11,2023-03-27_02,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2303270113 X-Proofpoint-GUID: SEZqLwn1ArU-gvH6d6YFeAzEiCNBMbWU X-Proofpoint-ORIG-GUID: SEZqLwn1ArU-gvH6d6YFeAzEiCNBMbWU X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: SGksIEpha3ViLA0KDQpDb3VsZCB5b3UgcGxlYXNlIHJldmlldyB0aGUgbWlkZGxlIGVuZCBwYXJ0 IG9mIHRoZSBjaGFuZ2VzIG9mIHRoaXMgcGF0Y2g/IChUaGUgQyBGRSBwYXJ0IGNoYW5nZXMgd2Vy ZSBPa2F5ZWQgYnkgSm9zZXBoIGFscmVhZHkpLg0KDQpUaGUgbWFqb3IgY2hhbmdlIGlzIGluIHRy ZWUtb2JqZWN0LXNpemUuY2MgKGFkZHJfb2JqZWN0X3NpemUpLiAoVG8gdXNlIHRoZSBuZXcgVFlQ RV9JTkNMVURFX0ZMRVhBUlJBWSBpbmZvKS4gDQoNClRoaXMgcGF0Y2ggaXMgdG8gZml4IFBSMTAx ODMyKGh0dHBzOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTEwMTgzMiks IGFuZCBpcyBuZWVkZWQgZm9yIExpbnV4IEtlcm5lbCBzZWN1cml0eS4gIEl04oCZcyBiZXR0ZXIg dG8gYmUgcHV0IGludG8gR0NDMTMuDQoNClRoYW5rcyBhIGxvdCENCg0KaHR0cHM6Ly9nY2MuZ251 Lm9yZy9waXBlcm1haWwvZ2NjLXBhdGNoZXMvMjAyMy1NYXJjaC82MTQxMDEuaHRtbA0KaHR0cHM6 Ly9nY2MuZ251Lm9yZy9waXBlcm1haWwvZ2NjLXBhdGNoZXMvMjAyMy1NYXJjaC82MTQ1MTEuaHRt bA0KDQo+IE9uIE1hciAyMywgMjAyMywgYXQgOTowMyBBTSwgUWluZyBaaGFvIHZpYSBHY2MtcGF0 Y2hlcyA8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+IHdyb3RlOg0KPiANCj4gUGluZ+KApg0KPiAN Cj4gUGxlYXNlIGxldCBtZSBrbm93IGlmIHlvdSBoYXZlIGFueSBmdXJ0aGVyIGNvbW1lbnRzIG9u IHRoZSBwYXRjaC4NCj4gDQo+IHRoYW5rcy4NCj4gDQo+IFFpbmcNCj4gDQo+IA0KPiBCZWdpbiBm b3J3YXJkZWQgbWVzc2FnZToNCj4gDQo+IEZyb206IFFpbmcgWmhhbyA8cWluZy56aGFvQG9yYWNs ZS5jb208bWFpbHRvOnFpbmcuemhhb0BvcmFjbGUuY29tPj4NCj4gU3ViamVjdDogW1Y1XVtQQVRD SCAxLzJdIEhhbmRsZSBjb21wb25lbnRfcmVmIHRvIGEgc3RydWN0cmUvdW5pb24gZmllbGQgaW5j bHVkaW5nIGZsZXhpYmxlIGFycmF5IG1lbWJlciBbUFIxMDE4MzJdDQo+IERhdGU6IE1hcmNoIDE2 LCAyMDIzIGF0IDU6NDc6MTQgUE0gRURUDQo+IFRvOiBqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbTxt YWlsdG86am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+LCBqYWt1YkByZWRoYXQuY29tPG1haWx0bzpq YWt1YkByZWRoYXQuY29tPiwgc2FuZHJhQGNvZGVzb3VyY2VyeS5jb208bWFpbHRvOnNhbmRyYUBj b2Rlc291cmNlcnkuY29tPg0KPiBDYzogcmd1ZW50aGVyQHN1c2UuZGU8bWFpbHRvOnJndWVudGhl ckBzdXNlLmRlPiwgc2lkZGhlc2hAZ290cGx0Lm9yZzxtYWlsdG86c2lkZGhlc2hAZ290cGx0Lm9y Zz4sIGtlZXNjb29rQGNocm9taXVtLm9yZzxtYWlsdG86a2Vlc2Nvb2tAY2hyb21pdW0ub3JnPiwg Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc8bWFpbHRvOmdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPiwg UWluZyBaaGFvIDxxaW5nLnpoYW9Ab3JhY2xlLmNvbTxtYWlsdG86cWluZy56aGFvQG9yYWNsZS5j b20+Pg0KPiANCj4gR0NDIGV4dGVuc2lvbiBhY2NlcHRzIHRoZSBjYXNlIHdoZW4gYSBzdHJ1Y3Qg d2l0aCBhIGZsZXhpYmxlIGFycmF5IG1lbWJlcg0KPiBpcyBlbWJlZGRlZCBpbnRvIGFub3RoZXIg c3RydWN0IG9yIHVuaW9uIChwb3NzaWJseSByZWN1cnNpdmVseSkuDQo+IF9fYnVpbHRpbl9vYmpl Y3Rfc2l6ZSBzaG91bGQgdHJlYXQgc3VjaCBzdHJ1Y3QgYXMgZmxleGlibGUgc2l6ZSBwZXINCj4g LWZzdHJpY3QtZmxleC1hcnJheXMuDQo+IA0KPiBnY2MvYy9DaGFuZ2VMb2c6DQo+IA0KPiBQUiB0 cmVlLW9wdGltaXphdGlvbi8xMDE4MzINCj4gKiBjLWRlY2wuY2M8aHR0cDovL2MtZGVjbC5jYz4g KGZpbmlzaF9zdHJ1Y3QpOiBTZXQgVFlQRV9JTkNMVURFX0ZMRVhBUlJBWSBmb3INCj4gc3RydWN0 L3VuaW9uIHR5cGUuDQo+IA0KPiBnY2MvbHRvL0NoYW5nZUxvZzoNCj4gDQo+IFBSIHRyZWUtb3B0 aW1pemF0aW9uLzEwMTgzMg0KPiAqIGx0by1jb21tb24uY2M8aHR0cDovL2x0by1jb21tb24uY2M+ IChjb21wYXJlX3RyZWVfc2Njc18xKTogQ29tcGFyZSBiaXQNCj4gVFlQRV9OT19OQU1FRF9BUkdT X1NUREFSR19QIG9yIFRZUEVfSU5DTFVERV9GTEVYQVJSQVkgcHJvcGVybHkNCj4gZm9yIGl0cyBj b3JyZXNwb25kaW5nIHR5cGUuDQo+IA0KPiBnY2MvQ2hhbmdlTG9nOg0KPiANCj4gUFIgdHJlZS1v cHRpbWl6YXRpb24vMTAxODMyDQo+ICogcHJpbnQtdHJlZS5jYzxodHRwOi8vcHJpbnQtdHJlZS5j Yz4gKHByaW50X25vZGUpOiBQcmludCBuZXcgYml0IHR5cGVfaW5jbHVkZV9mbGV4YXJyYXkuDQo+ ICogdHJlZS1jb3JlLmggKHN0cnVjdCB0cmVlX3R5cGVfY29tbW9uKTogVXNlIGJpdCBub19uYW1l ZF9hcmdzX3N0ZGFyZ19wDQo+IGFzIHR5cGVfaW5jbHVkZV9mbGV4YXJyYXkgZm9yIFJFQ09SRF9U WVBFIG9yIFVOSU9OX1RZUEUuDQo+ICogdHJlZS1vYmplY3Qtc2l6ZS5jYzxodHRwOi8vdHJlZS1v YmplY3Qtc2l6ZS5jYz4gKGFkZHJfb2JqZWN0X3NpemUpOiBIYW5kbGUgc3RydWN0dXJlL3VuaW9u IHR5cGUNCj4gd2hlbiBpdCBoYXMgZmxleGlibGUgc2l6ZS4NCj4gKiB0cmVlLXN0cmVhbWVyLWlu LmNjPGh0dHA6Ly90cmVlLXN0cmVhbWVyLWluLmNjPiAodW5wYWNrX3RzX3R5cGVfY29tbW9uX3Zh bHVlX2ZpZWxkcyk6IFN0cmVhbQ0KPiBpbiBiaXQgbm9fbmFtZWRfYXJnc19zdGRhcmdfcCBwcm9w ZXJseSBmb3IgaXRzIGNvcnJlc3BvbmRpbmcgdHlwZS4NCj4gKiB0cmVlLXN0cmVhbWVyLW91dC5j YzxodHRwOi8vdHJlZS1zdHJlYW1lci1vdXQuY2M+IChwYWNrX3RzX3R5cGVfY29tbW9uX3ZhbHVl X2ZpZWxkcyk6IFN0cmVhbQ0KPiBvdXQgYml0IG5vX25hbWVkX2FyZ3Nfc3RkYXJnX3AgcHJvcGVy bHkgZm9yIGl0cyBjb3JyZXNwb25kaW5nIHR5cGUuDQo+ICogdHJlZS5oIChUWVBFX0lOQ0xVREVf RkxFWEFSUkFZKTogTmV3IG1hY3JvIFRZUEVfSU5DTFVERV9GTEVYQVJSQVkuDQo+IA0KPiBnY2Mv dGVzdHN1aXRlL0NoYW5nZUxvZzoNCj4gDQo+IFBSIHRyZWUtb3B0aW1pemF0aW9uLzEwMTgzMg0K PiAqIGdjYy5kZy9idWlsdGluLW9iamVjdC1zaXplLXByMTAxODMyLmM6IE5ldyB0ZXN0Lg0KPiAt LS0NCj4gZ2NjL2MvYy1kZWNsLmNjPGh0dHA6Ly9jLWRlY2wuY2M+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDExICsrDQo+IGdjYy9sdG8vbHRvLWNvbW1vbi5jYzxodHRwOi8vbHRv LWNvbW1vbi5jYz4gICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0NCj4gZ2NjL3ByaW50 LXRyZWUuY2M8aHR0cDovL3ByaW50LXRyZWUuY2M+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgNSArDQo+IC4uLi9nY2MuZGcvYnVpbHRpbi1vYmplY3Qtc2l6ZS1wcjEwMTgzMi5jICAg ICB8IDEzNCArKysrKysrKysrKysrKysrKysNCj4gZ2NjL3RyZWUtY29yZS5oICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICsNCj4gZ2NjL3RyZWUtb2JqZWN0LXNpemUuY2M8aHR0 cDovL3RyZWUtb2JqZWN0LXNpemUuY2M+ICAgICAgICAgICAgICAgICAgICAgICB8ICAyMyArKy0N Cj4gZ2NjL3RyZWUtc3RyZWFtZXItaW4uY2M8aHR0cDovL3RyZWUtc3RyZWFtZXItaW4uY2M+ICAg ICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQ0KPiBnY2MvdHJlZS1zdHJlYW1lci1vdXQuY2M8 aHR0cDovL3RyZWUtc3RyZWFtZXItb3V0LmNjPiAgICAgICAgICAgICAgICAgICAgICB8ICAgNSAr LQ0KPiBnY2MvdHJlZS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcg Ky0NCj4gOSBmaWxlcyBjaGFuZ2VkLCAxOTIgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkN Cj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2J1aWx0aW4tb2JqZWN0 LXNpemUtcHIxMDE4MzIuYw0KPiANCj4gZGlmZiAtLWdpdCBhL2djYy9jL2MtZGVjbC5jYzxodHRw Oi8vYy1kZWNsLmNjPiBiL2djYy9jL2MtZGVjbC5jYzxodHRwOi8vYy1kZWNsLmNjPg0KPiBpbmRl eCBlNTM3ZDMzZjM5OC4uMTRjNTQ4MDliOWQgMTAwNjQ0DQo+IC0tLSBhL2djYy9jL2MtZGVjbC5j YzxodHRwOi8vYy1kZWNsLmNjPg0KPiArKysgYi9nY2MvYy9jLWRlY2wuY2M8aHR0cDovL2MtZGVj bC5jYz4NCj4gQEAgLTkyNTgsNiArOTI1OCwxNyBAQCBmaW5pc2hfc3RydWN0IChsb2NhdGlvbl90 IGxvYywgdHJlZSB0LCB0cmVlIGZpZWxkbGlzdCwgdHJlZSBhdHRyaWJ1dGVzLA0KPiAgICAgIC8q IFNldCBERUNMX05PVF9GTEVYQVJSQVkgZmxhZyBmb3IgRklFTERfREVDTCB4LiAgKi8NCj4gICAg ICBERUNMX05PVF9GTEVYQVJSQVkgKHgpID0gIWlzX2ZsZXhpYmxlX2FycmF5X21lbWJlcl9wIChp c19sYXN0X2ZpZWxkLCB4KTsNCj4gDQo+ICsgICAgICAvKiBTZXQgVFlQRV9JTkNMVURFX0ZMRVhB UlJBWSBmb3IgdGhlIGNvbnRleHQgb2YgeCwgdC4NCj4gKyB3aGVuIHggaXMgYW4gYXJyYXkgYW5k IGlzIHRoZSBsYXN0IGZpZWxkLiAgKi8NCj4gKyAgICAgIGlmIChUUkVFX0NPREUgKFRSRUVfVFlQ RSAoeCkpID09IEFSUkFZX1RZUEUpDQo+ICsgVFlQRV9JTkNMVURFX0ZMRVhBUlJBWSAodCkNCj4g KyAgPSBpc19sYXN0X2ZpZWxkICYmIGZsZXhpYmxlX2FycmF5X21lbWJlcl90eXBlX3AgKFRSRUVf VFlQRSAoeCkpOw0KPiArICAgICAgLyogUmVjdXJzaXZlbHkgc2V0IFRZUEVfSU5DTFVERV9GTEVY QVJSQVkgZm9yIHRoZSBjb250ZXh0IG9mIHgsIHQNCj4gKyB3aGVuIHggaXMgYW4gdW5pb24gb3Ig cmVjb3JkIGFuZCBpcyB0aGUgbGFzdCBmaWVsZC4gICovDQo+ICsgICAgICBlbHNlIGlmIChSRUNP UkRfT1JfVU5JT05fVFlQRV9QIChUUkVFX1RZUEUgKHgpKSkNCj4gKyBUWVBFX0lOQ0xVREVfRkxF WEFSUkFZICh0KQ0KPiArICA9IGlzX2xhc3RfZmllbGQgJiYgVFlQRV9JTkNMVURFX0ZMRVhBUlJB WSAoVFJFRV9UWVBFICh4KSk7DQo+ICsNCj4gICAgICBpZiAoREVDTF9OQU1FICh4KQ0KPiB8fCBS RUNPUkRfT1JfVU5JT05fVFlQRV9QIChUUkVFX1RZUEUgKHgpKSkNCj4gc2F3X25hbWVkX2ZpZWxk ID0gdHJ1ZTsNCj4gZGlmZiAtLWdpdCBhL2djYy9sdG8vbHRvLWNvbW1vbi5jYzxodHRwOi8vbHRv LWNvbW1vbi5jYz4gYi9nY2MvbHRvL2x0by1jb21tb24uY2M8aHR0cDovL2x0by1jb21tb24uY2M+ DQo+IGluZGV4IDg4MmRkODk3MWE0Li45ZGRlNzExODI2NiAxMDA2NDQNCj4gLS0tIGEvZ2NjL2x0 by9sdG8tY29tbW9uLmNjPGh0dHA6Ly9sdG8tY29tbW9uLmNjPg0KPiArKysgYi9nY2MvbHRvL2x0 by1jb21tb24uY2M8aHR0cDovL2x0by1jb21tb24uY2M+DQo+IEBAIC0xMjc1LDcgKzEyNzUsMTAg QEAgY29tcGFyZV90cmVlX3NjY3NfMSAodHJlZSB0MSwgdHJlZSB0MiwgdHJlZSAqKm1hcCkNCj4g ICAgICBpZiAoQUdHUkVHQVRFX1RZUEVfUCAodDEpKQ0KPiBjb21wYXJlX3ZhbHVlcyAoVFlQRV9U WVBFTEVTU19TVE9SQUdFKTsNCj4gICAgICBjb21wYXJlX3ZhbHVlcyAoVFlQRV9FTVBUWV9QKTsN Cj4gLSAgICAgIGNvbXBhcmVfdmFsdWVzIChUWVBFX05PX05BTUVEX0FSR1NfU1REQVJHX1ApOw0K PiArICAgICAgaWYgKEZVTkNfT1JfTUVUSE9EX1RZUEVfUCAodDEpKQ0KPiArIGNvbXBhcmVfdmFs dWVzIChUWVBFX05PX05BTUVEX0FSR1NfU1REQVJHX1ApOw0KPiArICAgICAgaWYgKFJFQ09SRF9P Ul9VTklPTl9UWVBFX1AgKHQxKSkNCj4gKyBjb21wYXJlX3ZhbHVlcyAoVFlQRV9JTkNMVURFX0ZM RVhBUlJBWSk7DQo+ICAgICAgY29tcGFyZV92YWx1ZXMgKFRZUEVfUEFDS0VEKTsNCj4gICAgICBj b21wYXJlX3ZhbHVlcyAoVFlQRV9SRVNUUklDVCk7DQo+ICAgICAgY29tcGFyZV92YWx1ZXMgKFRZ UEVfVVNFUl9BTElHTik7DQo+IGRpZmYgLS1naXQgYS9nY2MvcHJpbnQtdHJlZS5jYzxodHRwOi8v cHJpbnQtdHJlZS5jYz4gYi9nY2MvcHJpbnQtdHJlZS5jYzxodHRwOi8vcHJpbnQtdHJlZS5jYz4N Cj4gaW5kZXggMWYzYWZjYmJjODYuLmVmYWNkYjc2ODZmIDEwMDY0NA0KPiAtLS0gYS9nY2MvcHJp bnQtdHJlZS5jYzxodHRwOi8vcHJpbnQtdHJlZS5jYz4NCj4gKysrIGIvZ2NjL3ByaW50LXRyZWUu Y2M8aHR0cDovL3ByaW50LXRyZWUuY2M+DQo+IEBAIC02MzEsNiArNjMxLDExIEBAIHByaW50X25v ZGUgKEZJTEUgKmZpbGUsIGNvbnN0IGNoYXIgKnByZWZpeCwgdHJlZSBub2RlLCBpbnQgaW5kZW50 LA0KPiAmJiBUWVBFX0NYWF9PRFJfUCAobm9kZSkpDQo+IGZwdXRzICgiIGN4eC1vZHItcCIsIGZp bGUpOw0KPiANCj4gKyAgICAgIGlmICgoY29kZSA9PSBSRUNPUkRfVFlQRQ0KPiArICAgfHwgY29k ZSA9PSBVTklPTl9UWVBFKQ0KPiArICAmJiBUWVBFX0lOQ0xVREVfRkxFWEFSUkFZIChub2RlKSkN Cj4gKyBmcHV0cyAoIiBpbmNsdWRlLWZsZXhhcnJheSIsIGZpbGUpOw0KPiArDQo+ICAgICAgLyog VGhlIHRyYW5zcGFyZW50LXVuaW9uIGZsYWcgaXMgdXNlZCBmb3IgZGlmZmVyZW50IHRoaW5ncyBp bg0KPiBkaWZmZXJlbnQgbm9kZXMuICAqLw0KPiAgICAgIGlmICgoY29kZSA9PSBVTklPTl9UWVBF IHx8IGNvZGUgPT0gUkVDT1JEX1RZUEUpDQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy5kZy9idWlsdGluLW9iamVjdC1zaXplLXByMTAxODMyLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5k Zy9idWlsdGluLW9iamVjdC1zaXplLXByMTAxODMyLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN Cj4gaW5kZXggMDAwMDAwMDAwMDAuLjYwMDc4ZTExNjM0DQo+IC0tLSAvZGV2L251bGwNCj4gKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYnVpbHRpbi1vYmplY3Qtc2l6ZS1wcjEwMTgzMi5jDQo+ IEBAIC0wLDAgKzEsMTM0IEBADQo+ICsvKiBQUiAxMDE4MzI6DQo+ICsgICBHQ0MgZXh0ZW5zaW9u IGFjY2VwdHMgdGhlIGNhc2Ugd2hlbiBhIHN0cnVjdCB3aXRoIGEgQzk5IGZsZXhpYmxlIGFycmF5 DQo+ICsgICBtZW1iZXIgaXMgZW1iZWRkZWQgaW50byBhbm90aGVyIHN0cnVjdCAocG9zc2libHkg cmVjdXJzaXZlbHkpLg0KPiArICAgX19idWlsdGluX29iamVjdF9zaXplIHdpbGwgdHJlYXQgc3Vj aCBzdHJ1Y3QgYXMgZmxleGlibGUgc2l6ZS4NCj4gKyAgIEhvd2V2ZXIsIHdoZW4gYSBzdHJ1Y3R1 cmUgd2l0aCBub24tQzk5IGZsZXhpYmxlIGFycmF5IG1lbWJlciwgaS5lLCB0cmFpbGluZw0KPiAr ICAgWzBdLCBbMV0sIG9yIFs0XSwgaXMgZW1iZWRkZWQgaW50byBhbnRoZXIgc3RydWN0LCB0aGUg c3R1Y3R1cmUgd2lsbCBub3QNCj4gKyAgIGJlIHRyZWF0ZWQgYXMgZmxleGlibGUgc2l6ZS4gICov DQo+ICsvKiB7IGRnLWRvIHJ1biB9ICovDQo+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMiIgfSAqLw0K PiArDQo+ICsjaW5jbHVkZSAiYnVpbHRpbi1vYmplY3Qtc2l6ZS1jb21tb24uaCINCj4gKw0KPiAr I2RlZmluZSBleHBlY3QocCwgX3YpIGRvIHsgXA0KPiArICBzaXplX3QgdiA9IF92OyBcDQo+ICsg IGlmIChwID09IHYpIFwNCj4gKyAgICBfX2J1aWx0aW5fcHJpbnRmICgib2s6ICAlcyA9PSAlemRc biIsICNwLCBwKTsgXA0KPiArICBlbHNlIHtcDQo+ICsgICAgX19idWlsdGluX3ByaW50ZiAoIldB VDogJXMgPT0gJXpkIChleHBlY3RlZCAlemQpXG4iLCAjcCwgcCwgdik7IFwNCj4gKyAgICBGQUlM ICgpOyBcDQo+ICsgIH0gXA0KPiArfSB3aGlsZSAoMCk7DQo+ICsNCj4gKw0KPiArc3RydWN0IEEg ew0KPiArICBpbnQgbjsNCj4gKyAgY2hhciBkYXRhW107DQo+ICt9Ow0KPiArDQo+ICtzdHJ1Y3Qg QiB7DQo+ICsgIGludCBtOw0KPiArICBzdHJ1Y3QgQSBhOw0KPiArfTsNCj4gKw0KPiArc3RydWN0 IEMgew0KPiArICBpbnQgcTsNCj4gKyAgc3RydWN0IEIgYjsNCj4gK307DQo+ICsNCj4gK3N0cnVj dCBBMCB7DQo+ICsgIGludCBuOw0KPiArICBjaGFyIGRhdGFbMF07DQo+ICt9Ow0KPiArDQo+ICtz dHJ1Y3QgQjAgew0KPiArICBpbnQgbTsNCj4gKyAgc3RydWN0IEEwIGE7DQo+ICt9Ow0KPiArDQo+ ICtzdHJ1Y3QgQzAgew0KPiArICBpbnQgcTsNCj4gKyAgc3RydWN0IEIwIGI7DQo+ICt9Ow0KPiAr DQo+ICtzdHJ1Y3QgQTEgew0KPiArICBpbnQgbjsNCj4gKyAgY2hhciBkYXRhWzFdOw0KPiArfTsN Cj4gKw0KPiArc3RydWN0IEIxIHsNCj4gKyAgaW50IG07DQo+ICsgIHN0cnVjdCBBMSBhOw0KPiAr fTsNCj4gKw0KPiArc3RydWN0IEMxIHsNCj4gKyAgaW50IHE7DQo+ICsgIHN0cnVjdCBCMSBiOw0K PiArfTsNCj4gKw0KPiArc3RydWN0IEFuIHsNCj4gKyAgaW50IG47DQo+ICsgIGNoYXIgZGF0YVs4 XTsNCj4gK307DQo+ICsNCj4gK3N0cnVjdCBCbiB7DQo+ICsgIGludCBtOw0KPiArICBzdHJ1Y3Qg QW4gYTsNCj4gK307DQo+ICsNCj4gK3N0cnVjdCBDbiB7DQo+ICsgIGludCBxOw0KPiArICBzdHJ1 Y3QgQm4gYjsNCj4gK307DQo+ICsNCj4gK3ZvbGF0aWxlIHZvaWQgKm1hZ2ljMSwgKm1hZ2ljMjsN Cj4gKw0KPiAraW50IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pDQo+ICt7DQo+ICsgIHN0 cnVjdCBCICpvdXRlcjsNCj4gKyAgc3RydWN0IEMgKm91dGVzdDsNCj4gKw0KPiArICAvKiBNYWtl IHN1cmUgb3B0aW1pemF0aW9uIGNhbid0IGZpbmQgc29tZSBvdGhlciBvYmplY3Qgc2l6ZS4gKi8N Cj4gKyAgb3V0ZXIgPSAodm9pZCAqKW1hZ2ljMTsNCj4gKyAgb3V0ZXN0ID0gKHZvaWQgKiltYWdp YzI7DQo+ICsNCj4gKyAgZXhwZWN0IChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZvdXRlci0+YSwg MSksIC0xKTsNCj4gKyAgZXhwZWN0IChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZvdXRlc3QtPmIs IDEpLCAtMSk7DQo+ICsgIGV4cGVjdCAoX19idWlsdGluX29iamVjdF9zaXplICgmb3V0ZXN0LT5i LmEsIDEpLCAtMSk7DQo+ICsNCj4gKyAgc3RydWN0IEIwICpvdXRlcjA7DQo+ICsgIHN0cnVjdCBD MCAqb3V0ZXN0MDsNCj4gKw0KPiArICAvKiBNYWtlIHN1cmUgb3B0aW1pemF0aW9uIGNhbid0IGZp bmQgc29tZSBvdGhlciBvYmplY3Qgc2l6ZS4gKi8NCj4gKyAgb3V0ZXIwID0gKHZvaWQgKiltYWdp YzE7DQo+ICsgIG91dGVzdDAgPSAodm9pZCAqKW1hZ2ljMjsNCj4gKw0KPiArICBleHBlY3QgKF9f YnVpbHRpbl9vYmplY3Rfc2l6ZSAoJm91dGVyMC0+YSwgMSksIHNpemVvZiAob3V0ZXIwLT5hKSk7 DQo+ICsgIGV4cGVjdCAoX19idWlsdGluX29iamVjdF9zaXplICgmb3V0ZXN0MC0+YiwgMSksIHNp emVvZiAob3V0ZXN0MC0+YikpOw0KPiArICBleHBlY3QgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAo Jm91dGVzdDAtPmIuYSwgMSksIHNpemVvZiAob3V0ZXN0MC0+Yi5hKSk7DQo+ICsNCj4gKyAgc3Ry dWN0IEIxICpvdXRlcjE7DQo+ICsgIHN0cnVjdCBDMSAqb3V0ZXN0MTsNCj4gKw0KPiArICAvKiBN YWtlIHN1cmUgb3B0aW1pemF0aW9uIGNhbid0IGZpbmQgc29tZSBvdGhlciBvYmplY3Qgc2l6ZS4g Ki8NCj4gKyAgb3V0ZXIxID0gKHZvaWQgKiltYWdpYzE7DQo+ICsgIG91dGVzdDEgPSAodm9pZCAq KW1hZ2ljMjsNCj4gKw0KPiArICBleHBlY3QgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJm91dGVy MS0+YSwgMSksIHNpemVvZiAob3V0ZXIxLT5hKSk7DQo+ICsgIGV4cGVjdCAoX19idWlsdGluX29i amVjdF9zaXplICgmb3V0ZXN0MS0+YiwgMSksIHNpemVvZiAob3V0ZXN0MS0+YikpOw0KPiArICBl eHBlY3QgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJm91dGVzdDEtPmIuYSwgMSksIHNpemVvZiAo b3V0ZXN0MS0+Yi5hKSk7DQo+ICsNCj4gKyAgc3RydWN0IEJuICpvdXRlcm47DQo+ICsgIHN0cnVj dCBDbiAqb3V0ZXN0bjsNCj4gKw0KPiArICAvKiBNYWtlIHN1cmUgb3B0aW1pemF0aW9uIGNhbid0 IGZpbmQgc29tZSBvdGhlciBvYmplY3Qgc2l6ZS4gKi8NCj4gKyAgb3V0ZXJuID0gKHZvaWQgKilt YWdpYzE7DQo+ICsgIG91dGVzdG4gPSAodm9pZCAqKW1hZ2ljMjsNCj4gKw0KPiArICBleHBlY3Qg KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJm91dGVybi0+YSwgMSksIHNpemVvZiAob3V0ZXJuLT5h KSk7DQo+ICsgIGV4cGVjdCAoX19idWlsdGluX29iamVjdF9zaXplICgmb3V0ZXN0bi0+YiwgMSks IHNpemVvZiAob3V0ZXN0bi0+YikpOw0KPiArICBleHBlY3QgKF9fYnVpbHRpbl9vYmplY3Rfc2l6 ZSAoJm91dGVzdG4tPmIuYSwgMSksIHNpemVvZiAob3V0ZXN0bi0+Yi5hKSk7DQo+ICsNCj4gKyAg RE9ORSAoKTsNCj4gKyAgcmV0dXJuIDA7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nY2MvdHJlZS1j b3JlLmggYi9nY2MvdHJlZS1jb3JlLmgNCj4gaW5kZXggZmQyYmU1N2I3OGMuLjFkOTRjOWE4Y2Uy IDEwMDY0NA0KPiAtLS0gYS9nY2MvdHJlZS1jb3JlLmgNCj4gKysrIGIvZ2NjL3RyZWUtY29yZS5o DQo+IEBAIC0xNzE3LDYgKzE3MTcsOCBAQCBzdHJ1Y3QgR1RZKCgpKSB0cmVlX3R5cGVfY29tbW9u IHsNCj4gIHVuc2lnbmVkIHR5cGVsZXNzX3N0b3JhZ2UgOiAxOw0KPiAgdW5zaWduZWQgZW1wdHlf ZmxhZyA6IDE7DQo+ICB1bnNpZ25lZCBpbmRpdmlzaWJsZV9wIDogMTsNCj4gKyAgLyogVFlQRV9O T19OQU1FRF9BUkdTX1NUREFSR19QIGZvciBhIHN0ZGFyZyBmdW5jdGlvbi4gT3IgVFlQRV9JTkNM VURFX0ZMRVhBUlJBWQ0KPiArICAgICBmb3IgUkVDT1JEX1RZUEUgYW5kIFVOSU9OX1RZUEUuICAq Lw0KPiAgdW5zaWduZWQgbm9fbmFtZWRfYXJnc19zdGRhcmdfcCA6IDE7DQo+ICB1bnNpZ25lZCBz cGFyZSA6IDE1Ow0KPiANCj4gZGlmZiAtLWdpdCBhL2djYy90cmVlLW9iamVjdC1zaXplLmNjPGh0 dHA6Ly90cmVlLW9iamVjdC1zaXplLmNjPiBiL2djYy90cmVlLW9iamVjdC1zaXplLmNjPGh0dHA6 Ly90cmVlLW9iamVjdC1zaXplLmNjPg0KPiBpbmRleCA5YTkzNmE5MTk4My4uMTYxOWQxNDRlY2Qg MTAwNjQ0DQo+IC0tLSBhL2djYy90cmVlLW9iamVjdC1zaXplLmNjPGh0dHA6Ly90cmVlLW9iamVj dC1zaXplLmNjPg0KPiArKysgYi9nY2MvdHJlZS1vYmplY3Qtc2l6ZS5jYzxodHRwOi8vdHJlZS1v YmplY3Qtc2l6ZS5jYz4NCj4gQEAgLTYzMywxMSArNjMzLDMyIEBAIGFkZHJfb2JqZWN0X3NpemUg KHN0cnVjdCBvYmplY3Rfc2l6ZV9pbmZvICpvc2ksIGNvbnN0X3RyZWUgcHRyLA0KPiAgIHYgPSBO VUxMX1RSRUU7DQo+ICAgYnJlYWs7DQo+IGNhc2UgQ09NUE9ORU5UX1JFRjoNCj4gLSAgICBpZiAo VFJFRV9DT0RFIChUUkVFX1RZUEUgKHYpKSAhPSBBUlJBWV9UWVBFKQ0KPiArICAgIC8qIFdoZW4g dGhlIHJlZiBpcyBub3QgdG8gYW4gYWdncmVnYXRlIHR5cGUsIGkuZSwgYW4gYXJyYXksDQo+ICsg ICAgICAgYSByZWNvcmQgb3IgYSB1bmlvbiwgaXQgd2lsbCBub3QgaGF2ZSBmbGV4aWJsZSBzaXpl LA0KPiArICAgICAgIGNvbXB1dGUgdGhlIG9iamVjdCBzaXplIGRpcmVjdGx5LiAgKi8NCj4gKyAg ICBpZiAoIUFHR1JFR0FURV9UWVBFX1AgKFRSRUVfVFlQRSAodikpKQ0KPiAgICAgew0KPiB2ID0g TlVMTF9UUkVFOw0KPiBicmVhazsNCj4gICAgIH0NCj4gKyAgICAvKiBpZiB0aGUgcmVmIGlzIHRv IGEgcmVjb3JkIG9yIHVuaW9uIHR5cGUsIGJ1dCB0aGUgdHlwZQ0KPiArICAgICAgIGRvZXMgbm90 IGluY2x1ZGUgYSBmbGV4aWJsZSBhcnJheSByZWN1cnNpdmVseSwgY29tcHV0ZQ0KPiArICAgICAg IHRoZSBvYmplY3Qgc2l6ZSBkaXJlY3RseS4gICovDQo+ICsgICAgaWYgKFJFQ09SRF9PUl9VTklP Tl9UWVBFX1AgKFRSRUVfVFlQRSAodikpKQ0KPiArICAgICAgew0KPiArIGlmICghVFlQRV9JTkNM VURFX0ZMRVhBUlJBWSAoVFJFRV9UWVBFICh2KSkpDQo+ICsgIHsNCj4gKyAgICB2ID0gTlVMTF9U UkVFOw0KPiArICAgIGJyZWFrOw0KPiArICB9DQo+ICsgZWxzZQ0KPiArICB7DQo+ICsgICAgdiA9 IFRSRUVfT1BFUkFORCAodiwgMCk7DQo+ICsgICAgYnJlYWs7DQo+ICsgIH0NCj4gKyAgICAgIH0N Cj4gKyAgICAvKiBOb3cgdGhlIHJlZiBpcyB0byBhbiBhcnJheSB0eXBlLiAgKi8NCj4gKyAgICBn Y2NfYXNzZXJ0IChUUkVFX0NPREUgKFRSRUVfVFlQRSAodikpID09IEFSUkFZX1RZUEUpOw0KPiAg IGlzX2ZsZXhpYmxlX2FycmF5X21lbV9yZWYgPSBhcnJheV9yZWZfZmxleGlibGVfc2l6ZV9wICh2 KTsNCj4gICB3aGlsZSAodiAhPSBwdF92YXIgJiYgVFJFRV9DT0RFICh2KSA9PSBDT01QT05FTlRf UkVGKQ0KPiAgICAgaWYgKFRSRUVfQ09ERSAoVFJFRV9UWVBFIChUUkVFX09QRVJBTkQgKHYsIDAp KSkNCj4gZGlmZiAtLWdpdCBhL2djYy90cmVlLXN0cmVhbWVyLWluLmNjPGh0dHA6Ly90cmVlLXN0 cmVhbWVyLWluLmNjPiBiL2djYy90cmVlLXN0cmVhbWVyLWluLmNjPGh0dHA6Ly90cmVlLXN0cmVh bWVyLWluLmNjPg0KPiBpbmRleCBkNGRjMzBmMDQ4Zi4uNTZhZGQwNmE3MGEgMTAwNjQ0DQo+IC0t LSBhL2djYy90cmVlLXN0cmVhbWVyLWluLmNjPGh0dHA6Ly90cmVlLXN0cmVhbWVyLWluLmNjPg0K PiArKysgYi9nY2MvdHJlZS1zdHJlYW1lci1pbi5jYzxodHRwOi8vdHJlZS1zdHJlYW1lci1pbi5j Yz4NCj4gQEAgLTM5OCw3ICszOTgsMTAgQEAgdW5wYWNrX3RzX3R5cGVfY29tbW9uX3ZhbHVlX2Zp ZWxkcyAoc3RydWN0IGJpdHBhY2tfZCAqYnAsIHRyZWUgZXhwcikNCj4gIGlmIChBR0dSRUdBVEVf VFlQRV9QIChleHByKSkNCj4gICAgVFlQRV9UWVBFTEVTU19TVE9SQUdFIChleHByKSA9ICh1bnNp Z25lZCkgYnBfdW5wYWNrX3ZhbHVlIChicCwgMSk7DQo+ICBUWVBFX0VNUFRZX1AgKGV4cHIpID0g KHVuc2lnbmVkKSBicF91bnBhY2tfdmFsdWUgKGJwLCAxKTsNCj4gLSAgVFlQRV9OT19OQU1FRF9B UkdTX1NUREFSR19QIChleHByKSA9ICh1bnNpZ25lZCkgYnBfdW5wYWNrX3ZhbHVlIChicCwgMSk7 DQo+ICsgIGlmIChGVU5DX09SX01FVEhPRF9UWVBFX1AgKGV4cHIpKQ0KPiArICAgIFRZUEVfTk9f TkFNRURfQVJHU19TVERBUkdfUCAoZXhwcikgPSAodW5zaWduZWQpIGJwX3VucGFja192YWx1ZSAo YnAsIDEpOw0KPiArICBpZiAoUkVDT1JEX09SX1VOSU9OX1RZUEVfUCAoZXhwcikpDQo+ICsgICAg VFlQRV9JTkNMVURFX0ZMRVhBUlJBWSAoZXhwcikgPSAodW5zaWduZWQpIGJwX3VucGFja192YWx1 ZSAoYnAsIDEpOw0KPiAgVFlQRV9QUkVDSVNJT04gKGV4cHIpID0gYnBfdW5wYWNrX3Zhcl9sZW5f dW5zaWduZWQgKGJwKTsNCj4gIFNFVF9UWVBFX0FMSUdOIChleHByLCBicF91bnBhY2tfdmFyX2xl bl91bnNpZ25lZCAoYnApKTsNCj4gI2lmZGVmIEFDQ0VMX0NPTVBJTEVSDQo+IGRpZmYgLS1naXQg YS9nY2MvdHJlZS1zdHJlYW1lci1vdXQuY2M8aHR0cDovL3RyZWUtc3RyZWFtZXItb3V0LmNjPiBi L2djYy90cmVlLXN0cmVhbWVyLW91dC5jYzxodHRwOi8vdHJlZS1zdHJlYW1lci1vdXQuY2M+DQo+ IGluZGV4IGQxMDcyMjlkYTVjLi42NGY2YzhiYmFiYiAxMDA2NDQNCj4gLS0tIGEvZ2NjL3RyZWUt c3RyZWFtZXItb3V0LmNjPGh0dHA6Ly90cmVlLXN0cmVhbWVyLW91dC5jYz4NCj4gKysrIGIvZ2Nj L3RyZWUtc3RyZWFtZXItb3V0LmNjPGh0dHA6Ly90cmVlLXN0cmVhbWVyLW91dC5jYz4NCj4gQEAg LTM2NSw3ICszNjUsMTAgQEAgcGFja190c190eXBlX2NvbW1vbl92YWx1ZV9maWVsZHMgKHN0cnVj dCBiaXRwYWNrX2QgKmJwLCB0cmVlIGV4cHIpDQo+ICBpZiAoQUdHUkVHQVRFX1RZUEVfUCAoZXhw cikpDQo+ICAgIGJwX3BhY2tfdmFsdWUgKGJwLCBUWVBFX1RZUEVMRVNTX1NUT1JBR0UgKGV4cHIp LCAxKTsNCj4gIGJwX3BhY2tfdmFsdWUgKGJwLCBUWVBFX0VNUFRZX1AgKGV4cHIpLCAxKTsNCj4g LSAgYnBfcGFja192YWx1ZSAoYnAsIFRZUEVfTk9fTkFNRURfQVJHU19TVERBUkdfUCAoZXhwciks IDEpOw0KPiArICBpZiAoRlVOQ19PUl9NRVRIT0RfVFlQRV9QIChleHByKSkNCj4gKyAgICBicF9w YWNrX3ZhbHVlIChicCwgVFlQRV9OT19OQU1FRF9BUkdTX1NUREFSR19QIChleHByKSwgMSk7DQo+ ICsgIGlmIChSRUNPUkRfT1JfVU5JT05fVFlQRV9QIChleHByKSkNCj4gKyAgICBicF9wYWNrX3Zh bHVlIChicCwgVFlQRV9JTkNMVURFX0ZMRVhBUlJBWShleHByKSwgMSk7DQo+ICBicF9wYWNrX3Zh cl9sZW5fdW5zaWduZWQgKGJwLCBUWVBFX1BSRUNJU0lPTiAoZXhwcikpOw0KPiAgYnBfcGFja192 YXJfbGVuX3Vuc2lnbmVkIChicCwgVFlQRV9BTElHTiAoZXhwcikpOw0KPiB9DQo+IGRpZmYgLS1n aXQgYS9nY2MvdHJlZS5oIGIvZ2NjL3RyZWUuaA0KPiBpbmRleCA5MTM3NWY5NjUyZi4uMThjOWY0 MTY3NTggMTAwNjQ0DQo+IC0tLSBhL2djYy90cmVlLmgNCj4gKysrIGIvZ2NjL3RyZWUuaA0KPiBA QCAtNzg2LDcgKzc4NiwxMiBAQCBleHRlcm4gdm9pZCBvbXBfY2xhdXNlX3JhbmdlX2NoZWNrX2Zh aWxlZCAoY29uc3RfdHJlZSwgY29uc3QgY2hhciAqLCBpbnQsDQo+ICAgKC4uLikgcHJvdG90eXBl LCB3aGVyZSBhcmd1bWVudHMgY2FuIGJlIGFjY2Vzc2VkIHdpdGggdmFfc3RhcnQgYW5kDQo+ICAg dmFfYXJnKSwgYXMgb3Bwb3NlZCB0byBhbiB1bnByb3RvdHlwZWQgZnVuY3Rpb24uICAqLw0KPiAj ZGVmaW5lIFRZUEVfTk9fTkFNRURfQVJHU19TVERBUkdfUChOT0RFKSBcDQo+IC0gIChUWVBFX0NI RUNLIChOT0RFKS0+dHlwZV9jb21tb24ubm9fbmFtZWRfYXJnc19zdGRhcmdfcCkNCj4gKyAgKEZV TkNfT1JfTUVUSE9EX0NIRUNLIChOT0RFKS0+dHlwZV9jb21tb24ubm9fbmFtZWRfYXJnc19zdGRh cmdfcCkNCj4gKw0KPiArLyogVHJ1ZSBpZiB0aGlzIFJFQ09SRF9UWVBFIG9yIFVOSU9OX1RZUEUg aW5jbHVkZXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXINCj4gKyAgIGF0IHRoZSBsYXN0IGZpZWxk IHJlY3Vyc2l2ZWx5LiAgKi8NCj4gKyNkZWZpbmUgVFlQRV9JTkNMVURFX0ZMRVhBUlJBWShOT0RF KSBcDQo+ICsgIChSRUNPUkRfT1JfVU5JT05fQ0hFQ0sgKE5PREUpLT50eXBlX2NvbW1vbi5ub19u YW1lZF9hcmdzX3N0ZGFyZ19wKQ0KPiANCj4gLyogSW4gYW4gSURFTlRJRklFUl9OT0RFLCB0aGlz IG1lYW5zIHRoYXQgYXNzZW1ibGVfbmFtZSB3YXMgY2FsbGVkIHdpdGgNCj4gICB0aGlzIHN0cmlu ZyBhcyBhbiBhcmd1bWVudC4gICovDQo+IC0tDQo+IDIuMzEuMQ0KPiANCj4gDQoNCg==