From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 8EB943858CDB for ; Thu, 9 Mar 2023 16:11:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8EB943858CDB 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 (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 329FWRkf018301; Thu, 9 Mar 2023 16:11:04 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=LxHFCvVRicMFth2Bdx+lJCUlm/InjLSh+4ZKG4+R65o=; b=1cIUnAzcyIUC8k8z+6gdH4PhqPngKeMB4ijHvJ3oL5mj1q0kRvsI6UKV2C39ECB9f13a cMSY58Bz8mqONdTwRo18ofjumCR8T4+q0mHv07Sv8EyXU4GSwDlUe9XAdiFEHbyZMOW1 acl0Kdx8i7st+FAqZiaj7iYqqf6ssHpMJtf2KofAaU5IzkOSf8kjeo5ZKtLN7LoA62LS 6HG78iEkSr6z782WVe1kGYb1tDtN4eGbD69Ms9KG6/mdc/ehBjPu2GZPgXu7sMWoJJd8 7MacOStpRZMzwa5xMuuKFQiC2zAKafA0hJ5pJBbxefcmfjslQqh+7IxDD3YC9J5UTyUL eQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3p5nn97ebx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 09 Mar 2023 16:11:04 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 329EgaUq015533; Thu, 9 Mar 2023 16:11:03 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3p6fenyhta-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 09 Mar 2023 16:11:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V4kd4YCPbbFu9kGssCCmSVEJYoz5S2A5QWw30cLLz7aOHK1k66NntCpDUFmMPUasjywYdvjM+C7QdFacW6NvJNGodilFUvFgkRdToccdeRG4FM+cLzOcVanKw/oq+kGZd26p5iuIUv5ZT/ZK8YAwZeEeQ5Jd4eqhBXVYT2rxu7SWX106FY6INb6dxxwTwHHDqEaVc8eHH978n9QnJGS6T2stuBhHcQ39CZ7trVfhMUznk5GhU3DXaKZ1p+VXF7nbGhimtHs2bcUrvmURsjO1rtN/tA5BxzYMPbh4XzTFT98BTS7aMfij3f9ucC2D9U7Q6bffCvniSFRG0751l3GTzg== 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=LxHFCvVRicMFth2Bdx+lJCUlm/InjLSh+4ZKG4+R65o=; b=DRlp1LVXZ6VxpxT7EdlI1mouBgpzsN/SWu0D+3zlDalgD6NUUKo/ddfT9qBU/TB6477SVe+5ZtoQcewuDYcmopTupk5rqCnNjeHHFFv227W3l3LPc0d1l2gyde8FzX+meKG1MwXdZMYaUSX42z6BaYdVRRQfkX1ibcIV2lyedyV7zlt7rKloyIo3oEBLuvA9Kf61XBW6yIbuHUjCIIKLxfs70/YeZhC7G8zt5UuobbG+QVx2CFGoxflTISbtkINhmj1DPwDtI3g2CkXcDXQz4RL3J0kQaQT5UAbf3v1wi2felfHy4HNKYtGmzvzN5NOZ7UwhfsYm1oHlfDDafFTrpw== 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=LxHFCvVRicMFth2Bdx+lJCUlm/InjLSh+4ZKG4+R65o=; b=stfZXVmzvs9BOUKPR5Lnj4mF7cqWj5aoS8GexYeSrLg1daIDtXLTmlRdSu2zhIa2DklkzNPuXT3lEvjWTH6h1gf5wHmXg31SXqZID3/Rdv9L1nQJwyaP8sNQc45i6MBm1Ewxri8EAGbT2+dkVTtUCyW04paP7OzNyU/Pqh2dPyg= Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by CY5PR10MB5915.namprd10.prod.outlook.com (2603:10b6:930:2d::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.17; Thu, 9 Mar 2023 16:11:01 +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.019; Thu, 9 Mar 2023 16:11:01 +0000 From: Qing Zhao To: Richard Biener CC: "joseph@codesourcery.com" , "siddhesh@gotplt.org" , "keescook@chromium.org" , "gcc-patches@gcc.gnu.org" Subject: Re: [v4][PATCH 1/2] Handle component_ref to a structre/union field including C99 FAM [PR101832] Thread-Topic: [v4][PATCH 1/2] Handle component_ref to a structre/union field including C99 FAM [PR101832] Thread-Index: AQHZSH697Ixa1oBBJk+QPQNZSvEShq7ycf2AgABAfwA= Date: Thu, 9 Mar 2023 16:11:00 +0000 Message-ID: <24706421-0026-49D6-ADB6-04F8C70DA1BA@oracle.com> References: <20230224183505.4112295-1-qing.zhao@oracle.com> <20230224183505.4112295-2-qing.zhao@oracle.com> In-Reply-To: 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_|CY5PR10MB5915:EE_ x-ms-office365-filtering-correlation-id: 92fbbd31-f36f-4a40-5d37-08db20b8e020 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6FoRhqZ0y+TYIxz8CnIYCzkMm/zC+W9j0mICzqa05FHcqUGY3q09mSg0yyx04cf0yiRCcOeFirOaqgiqLj9X5ZJgZxsuVNl/j+/z4u9z48T9oDZ3gJWqllmZwI6HpovbpYBgIP8h6WHX3dgP5GIf50Ooj5JpKlcGXXO6TbAGMLOvHEGrOP+wR+hXktXy7bUNJKcGzg7UO6pIf6723IYfcc2RxcXKtuf4GkbEU7RuBHoV/1rAjd9FIPIl4EdfKthtGxoDkogCJM5hGDPH8N2McW9mml9WJ7nkp5thxVFLPCtgpRJwYcrUDjZ6ZfQKF9o6QAyqClBD0rWA9YfbynbxZlpgfVXyDxC/4n5TQQqser/eYSy4C4VUp7BuoaNhjn/GCk2N9iubWwXW9ntGLLjYQh9vUvFZba7PyZPkc1nR6z4V2shq8hnuYtvRUI8oXwC8OJ/7CiUxAVIAy3oYMIn2DuHBo4OP2lmFlN4ff+RTTrabC+k22ZXjDf4qx6DtUTwGLvwI5J0ELgp9akAvs5wN13z1dEZCPHmtd+0Osgb4c1dlnGzpfFwzTvpkfgfAJka3Xj1fXXrB/DtPrgx0Bc9Iz7MexbLHePW5IYB7B41jgnZ9KiM1mTpoZguAq2/N2e/2kh1Kvk1TAgVRKdBOCgkH9Jd1Jwdp0cAjYDfqtIaklbTf/hgh/z0HRkb6QXwmYA14BwfGeNYKXUmNiLjswclqVBqCceA9hv6jRdTfkAeYWkA= 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:(13230025)(346002)(39860400002)(366004)(396003)(136003)(376002)(451199018)(76116006)(64756008)(66476007)(86362001)(41300700001)(66556008)(6916009)(66946007)(66446008)(91956017)(36756003)(6486002)(71200400001)(33656002)(316002)(8676002)(4326008)(54906003)(83380400001)(38070700005)(30864003)(84970400001)(186003)(44832011)(478600001)(38100700002)(2906002)(122000001)(8936002)(6506007)(26005)(6512007)(53546011)(2616005)(5660300002)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TWxLV0VQR3JYUytiOVNNdmhiVytHNEZXbzZ0aXhyU3Zua0tud1RaRkZtQUhz?= =?utf-8?B?cjdsRmRUMGlEYlFmTUJqck13MVlPTEgySndDa1J6ZFVnY3ZGb3dveENhZDJV?= =?utf-8?B?TmVoZFc2QmxiUzJPQkloOThLanIzTXhUWUV0MG1BcTJleWNqUjdSZzh2NUpX?= =?utf-8?B?UkVSZGJKVCtWYmFuMFhEdTlxS0xvQ2c0T25PUThFZGNHMFc4Zmw0aHlIUTV4?= =?utf-8?B?bjYycVlMMitpd0VCbWZzWnhRVEpzY3E1aTROS2ZGZ1ltNURoZVprN0V2WjhN?= =?utf-8?B?VzVZUmlaM0NQdTkzQkFhYWUzeGYrM1FhY3NPU2tOclNTdTZGWFFDdVg4MnJO?= =?utf-8?B?OC80Ri9oRE9tczRvRzFsMmMzS2ovMHIwSjhJNUVIMjEyL1NVUXZDQXorU0V2?= =?utf-8?B?b20rYXA3eTB3blpsZjVxVC9tdlR5aThKcXA1WGtUVkRjVVFSR3pKRVJsTTln?= =?utf-8?B?VFY0QTJ2dUF6a1ZGSkJxKzJBclg5TnpFZVFLcnUwV0I4MWhmU2xoSXlzRDJX?= =?utf-8?B?UTNwRTFKL1Q2TFVHWUo5S3ZrblhhcmdhcUYzNkxkdC8wTFlwcjYxcmRLZ2Zx?= =?utf-8?B?R0lIT29wTUpyVlo4UENValMweFRYUk55bkxxb1M1dlNyL0FPTUQ4eXAxS0tz?= =?utf-8?B?cnZxUWlFMitGbGZraHRMbGVSMlQzaHVKRjFwZ0JuOWlJSng1U0JZNzJ0TjI2?= =?utf-8?B?bzdHVmxkWHp6bDlMZGFBc3VxZm5VKy90SUVKUUZnTFhJQ0dhaWVFbElCUll6?= =?utf-8?B?bDBEUzVDTW1mMU1BcXUxcG13M05EVDAwZWVzdGp6U0RPSTJpeU9pUGgrQTVD?= =?utf-8?B?eGhZLzRZa0lndHBaOTJtMXhPUmNzOGkzd1BENElTZkc0T0p6OEJZK0ZBT3dC?= =?utf-8?B?UWw4YmkrN285ZTk5Wm05WXlTUnNVK0k0UVplby9zT1AvckRpMEd1QXpUTE9y?= =?utf-8?B?eHRkRlRsMitsZ3RKWlFPZTAxMHo4Z3FHVHpZYlViYU9rT0ZZR2FwRkJLalBU?= =?utf-8?B?MzB6N2pITVdQaUVXVnhsWFQvd0dVUW5ZVGhyT0xlcllKTEI2RkFuQ21YT3U4?= =?utf-8?B?cE1WTWU5SUVpU3JlUnR6VkVaQ0F6TzdjbUVFYWxMRDhVam1rc0s3cE9XVmdo?= =?utf-8?B?V2RHbzd1d2o5eVFONGFQcEpvVXBoME1yajUrZmd6NWcyN0lKZktub090TnNS?= =?utf-8?B?bVphMkxBRzk0TEZyZUdNSEdZT1lEcXVGemkyOTJlcmt2RUcrMk93YURhTUVz?= =?utf-8?B?YW80NU56NmFWZm5Tb0RuOVlUSEJ5YWFzaDk5b0Z6b2d4TGZSWjMvVnBhcjFN?= =?utf-8?B?Ykkwb1l3a2dUT1JBZW9GT1dPNU1JanByZ2JSL0tuS2JxRFZDRG1IbWxvdzBE?= =?utf-8?B?dmFqZ3N3Ui9hbGdTM29JZ0d3YVk3cEFRSXFQMEQyUVJGczg3emdVSGl1MklL?= =?utf-8?B?VDdFZnVEZWhBdC9wTXMrbjFjZFR0elVGTVY0RHFHbTdhSExkUEtQV3ozWWpL?= =?utf-8?B?TWhZSW4zOEFPbm1jNWNFUW5nb2xqUWtCR2dFelg4dlJxL09WN0RJZ1g3QXov?= =?utf-8?B?aEdrMDBacExkSTVPa081cjF6SnRobmNrQWFsNUpFUFVNb0VQMWdpdkZlWlZK?= =?utf-8?B?WEd2Y1FnVElQV2VaUE9nZTlnTVNjYWFPVlhDZmRndUhYZjV6WlZjT21CYldK?= =?utf-8?B?TGRXNGlSOEhGSzFEVTd2RGdYUktlUnhjSnB5MU51WVE3TFgwd0lNZlBkeXht?= =?utf-8?B?eGZhckVaMlZuTHBqblFKZnc2c2ZMZGlVdUpEVFVyNWlpZFdHZG4vUW1hT2ky?= =?utf-8?B?eEN3d0pFVVp3cE5LM0JXVUtmT2xRM3pLTU03SkJhQjM2TE1LbW5HajNTNGlt?= =?utf-8?B?Uk1HU2QzQ3kra2F2Wnk0QWx0RjdvdEU5K05PUmRNM3RvRlpWMHNXYVdoNzlZ?= =?utf-8?B?cHBJdzRLUDVpVTRCRlJlcXRkcHJSSDRkTENweFRJWkdPR3VMV0wyVjJ1TFpq?= =?utf-8?B?cVAxdDVzZmpzV0h5VUtnVFFwRVJ1Rk9MNmQycFYzQWJDZDlWTVFRY21xTHBl?= =?utf-8?B?eTh5VmRHOVhZVU1ldm9MUEpqWEpPMGVQbWlxTm9VR2pzOHdUaWhRRmpCS1Vh?= =?utf-8?B?eEJvS25NTmNiZ2JPSDNmTlk3QkJtTmNHSzI4MDNxZEZlVkxCd21BTU1OQmxE?= =?utf-8?B?ckE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <9DBD9921BD243A4F94FFFC6D7B0DAC21@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: wO2dQsVmxChDUf6rZrZxn4Fh3RrzLoW1VET49GpkSr6uilN7arWWTrjV9Whiym/k8XnCoWvkjAofN+P8kxmxHTWb+yxsbH9/31QQrg19PDnPpmPXQmIqGfF8xGeWX1v4Kab2gLTF3v0h0vQggGX4Wj9Y8OyxzN74N/5zynrrI8K00EHT7qyBMaUE5JMPAaxpDDCdSmrA99+9y1FVpIo8tL25n8TKX8KfG3ds0ErI4s+PfwpO6r+SqZMXUSXnHOzaS9B3S8r5aEdsYmI5KHLzKQLF2UYm3tFGTLn7k2NXJ6hZn35Lr661QT8LLxK/fTaRmfMu45+T0sC12pFdGXJ45c9m3B9jB6DAeAIQNpk1G0SfOxsKieYvlk6WGbAHhi7IBDuApmKig8Ducxu3dJ587bMOcMC1vqZTs6rhmFD2BuukUllcebO0Aw9kNrIgyXFyY5Z/azOYTqLU76XIJncck9CJ7aeE9A+zMbiwukuyGkUrQ0j38zVCo+INEwW+cvLZC4mojnZOjm8HgAiEhjqFvxdM9y8zObmJc/9lgnoBssTF/F7cY+mb1+pKqigwO3EpnLoTmCC7qiqHaoZOfQ93DK4hPRrxN5DRlVtFdpG08mhXAVuB0RBhipMFGm0GhPaLJL1+7bMozhceLiyS3eGhplq2b+Kf95pWZIN4V1bUPgvCCzpjn98mK7qDQhiG8TAoc/v1gQk1eVfiYR+aQzTjo1xt4RZ3B347zEw1V2kPBdYB/b/jCtFIHYbOzKyVMwSPz4lb2clMCn1Yo0nexJ45IU6PFRwvp4sTveHWpM09X/oyfAaVU3v827nDbJ4jZcRTw4xI524xHBzqkI3jviOES2O8Fss+MddUJXHAi4n5whbPp+uhoDh+R/rX+0tuHHVQ 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: 92fbbd31-f36f-4a40-5d37-08db20b8e020 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2023 16:11:00.8721 (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: cAmXOUO2iaU6iKnd3ymg3yCKXC7Sc/sC9seo5P86SZugbye3z3ClxLhy+iFv8qUaxT+0XVrleszgg974Op5jEA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB5915 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-09_08,2023-03-09_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303090128 X-Proofpoint-GUID: GspyJMo5tP7yieCilZ8V70_7IRSFh2nF X-Proofpoint-ORIG-GUID: GspyJMo5tP7yieCilZ8V70_7IRSFh2nF 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,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: DQoNCj4gT24gTWFyIDksIDIwMjMsIGF0IDc6MjAgQU0sIFJpY2hhcmQgQmllbmVyIDxyZ3VlbnRo ZXJAc3VzZS5kZT4gd3JvdGU6DQo+IA0KPiBPbiBGcmksIDI0IEZlYiAyMDIzLCBRaW5nIFpoYW8g d3JvdGU6DQo+IA0KPj4gR0NDIGV4dGVuc2lvbiBhY2NlcHRzIHRoZSBjYXNlIHdoZW4gYSBzdHJ1 Y3Qgd2l0aCBhIEM5OSBmbGV4aWJsZSBhcnJheSBtZW1iZXINCj4+IGlzIGVtYmVkZGVkIGludG8g YW5vdGhlciBzdHJ1Y3Qgb3IgdW5pb24gKHBvc3NpYmx5IHJlY3Vyc2l2ZWx5KS4NCj4+IF9fYnVp bHRpbl9vYmplY3Rfc2l6ZSBzaG91bGQgdHJlYXQgc3VjaCBzdHJ1Y3QgYXMgZmxleGlibGUgc2l6 ZS4NCj4+IA0KPj4gZ2NjL2MvQ2hhbmdlTG9nOg0KPj4gDQo+PiAJUFIgdHJlZS1vcHRpbWl6YXRp b24vMTAxODMyDQo+PiAJKiBjLWRlY2wuY2MgKGZpbmlzaF9zdHJ1Y3QpOiBTZXQgVFlQRV9JTkNM VURFX0ZMRVhBUlJBWSBmb3INCj4+IAlzdHJ1Y3QvdW5pb24gdHlwZS4NCj4gDQo+IEkgY2FuJ3Qg cmVhbGx5IGNvbW1lbnQgb24gdGhlIGNvcnJlY3RuZXNzIG9mIHRoaXMgcGFydCBidXQgc2luY2UN Cj4gb25seSB0aGUgQyBmcm9udGVuZCB3aWxsIGV2ZXIgc2V0IHRoaXMgYW5kIHlvdSBhcmUgdXNp bmcgaXQgZnJvbQ0KPiBhZGRyX29iamVjdF9zaXplIHdoaWNoIGlzIGFsc28gdXNlZCBmb3Igb3Ro ZXIgQyBmYW1pbHkgbGFuZ3VhZ2VzDQo+IChhdCBsZWFzdCksIEkgd29uZGVyIGlmIHlvdSBjYW4g cmVhbGx5IHRlc3QNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmICghVFlQRV9JTkNM VURFX0ZMRVhBUlJBWSAoVFJFRV9UWVBFICh2KSkpDQo+IA0KPiB0aGVyZS4NCg0KWW91IG1lYW4g Zm9yIEMrKyBhbmQgYWxzbyBvdGhlciBDIGZhbWlseSBsYW5ndWFnZXMgKG90aGVyIHRoYW4gQyks IHRoZSBhYm92ZSBiaXQgY2Fubm90IGJlIHNldD8NClllcywgdGhhdOKAmXMgdHJ1ZS4gVGhlIGJp dCBpcyBvbmx5IHNldCBmb3IgQy4gU28gaXMgdGhlIGJpdCBERUNMX05PVF9GTEVYQVJSQVksIHdo aWNoIGlzIG9ubHkgc2V0IGZvciBDIHRvby4gDQpTbywgSSBhbSB3b25kZXJpbmcgd2hldGhlciB0 aGUgYml0IERFQ0xfTk9UX0ZMRVhBUlJBWSBzaG91bGQgYmUgYWxzbyBzZXQgaW4gbWlkZGxlIGVu ZD8gT3Igd2UgY2FuIHNldCBERUNMX05PVF9GTEVYQVJSQVkgaW4gQysrIEZFIHRvbz8gQW5kIHRo ZW4gd2UgY2FuIHNldCBUWVBFX0lOQ0xVREVfRkxFWEFSUkFZIGFsc28gaW4gQysrIEZFPw0KV2hh dOKAmXMgeW91ciBzdWdnZXN0aW9uPw0KDQooSSBwZXJzb25hbGx5IGZlZWwgdGhhdCBERUNMX05P VF9GTEVYQVJSQVkgYW5kIFRZUEVfSU5DTFVERV9GTEVYQVJSQVkgc2hvdWxkIGJlIHNldCBpbiB0 aGUgc2FtZSBwbGFjZXMpLg0KDQo+IA0KPiBPcmlnaW5hbGx5IEkgd2FzIHN1Z2dlc3RpbmcgdG8g c2V0IHRoaXMgZmxhZyBpbiBzdG9yLWxheW91dC5jYw0KPiB3aGljaCBldmVudHVhbGx5IGFsbCBs YW5ndWFnZXMgZnVubmVsIHRoZWlyIHR5cGVzIHRocm91Z2ggYW5kDQo+IGlmIHRoZXJlJ3MgbGFu Z3VhZ2Ugc3BlY2lmaWMgaGFuZGxpbmcgdXNlIGEgbGFuZ2hvb2sgKHdpdGggdGhlDQo+IGRlZmF1 bHQgaW1wbGVtZW50YXRpb24gcHJlc2VydmluZyB0aGUgc3RhdHVzIHF1bykuDQoNCklmIHdlIGRl Y2lkZSB0byBzZXQgdGhlIGJpdHMgaW4gc3Rvci1sYXlvdXQuY2MsIHdoZXJlIGlzIHRoZSBiZXN0 IHBsYWNlIHRvIGRvIGl0PyBJIGNoZWNrZWQgdGhlIHN0YXItbGF5b3V0LmNjIGNvZGUsIGxvb2tz IGxpa2Ug4oCcbGF5b3V0X3R5cGXigJ0gbWlnaHQgYmUgdGhlIHBsYWNlIHdoZXJlIHdlIGNhbiBz ZXQgdGhlc2UgYml0cyBmb3IgUkVDT1JEX1RZUEUsIFVOSU9OX1RZUEU/IA0KPiANCj4gU29tZSBt b3JlIGNvbW1lbnRzIGJlbG93IC4uLg0KPiANCj4+IGdjYy9jcC9DaGFuZ2VMb2c6DQo+PiANCj4+ IAlQUiB0cmVlLW9wdGltaXphdGlvbi8xMDE4MzINCj4+IAkqIG1vZHVsZS5jYyAodHJlZXNfb3V0 Ojpjb3JlX2Jvb2xzKTogU3RyZWFtIG91dCBuZXcgYml0DQo+PiAJdHlwZV9pbmNsdWRlX2ZsZXhh cnJheS4NCj4+IAkodHJlZXNfaW46OmNvcmVfYm9vbHMpOiBTdHJlYW0gaW4gbmV3IGJpdCB0eXBl X2luY2x1ZGVfZmxleGFycmF5Lg0KPj4gDQo+PiBnY2MvQ2hhbmdlTG9nOg0KPj4gDQo+PiAJUFIg dHJlZS1vcHRpbWl6YXRpb24vMTAxODMyDQo+PiAJKiBwcmludC10cmVlLmNjIChwcmludF9ub2Rl KTogUHJpbnQgbmV3IGJpdCB0eXBlX2luY2x1ZGVfZmxleGFycmF5Lg0KPj4gCSogdHJlZS1jb3Jl LmggKHN0cnVjdCB0cmVlX3R5cGVfY29tbW9uKTogTmV3IGJpdA0KPj4gCXR5cGVfaW5jbHVkZV9m bGV4YXJyYXkuDQo+PiAJKiB0cmVlLW9iamVjdC1zaXplLmNjIChhZGRyX29iamVjdF9zaXplKTog SGFuZGxlIHN0cnVjdHVyZS91bmlvbiB0eXBlDQo+PiAJd2hlbiBpdCBoYXMgZmxleGlibGUgc2l6 ZS4NCj4+IAkqIHRyZWUtc3RyZWFtZXItaW4uY2MgKHVucGFja190c190eXBlX2NvbW1vbl92YWx1 ZV9maWVsZHMpOiBTdHJlYW0NCj4+IAlpbiBuZXcgYml0IHR5cGVfaW5jbHVkZV9mbGV4YXJyYXku DQo+PiAJKiB0cmVlLXN0cmVhbWVyLW91dC5jYyAocGFja190c190eXBlX2NvbW1vbl92YWx1ZV9m aWVsZHMpOiBTdHJlYW0NCj4+IAlvdXQgbmV3IGJpdCB0eXBlX2luY2x1ZGVfZmxleGFycmF5Lg0K Pj4gCSogdHJlZS5oIChUWVBFX0lOQ0xVREVfRkxFWEFSUkFZKTogTmV3IG1hY3JvDQo+PiAJVFlQ RV9JTkNMVURFX0ZMRVhBUlJBWS4NCj4+IA0KPj4gZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQo+ PiANCj4+IAlQUiB0cmVlLW9wdGltaXphdGlvbi8xMDE4MzINCj4+IAkqIGdjYy5kZy9idWlsdGlu LW9iamVjdC1zaXplLXByMTAxODMyLmM6IE5ldyB0ZXN0Lg0KPj4gLS0tDQo+PiBnY2MvYy9jLWRl Y2wuY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTIgKysNCj4+IGdjYy9jcC9t b2R1bGUuY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArDQo+PiBnY2MvcHJp bnQtdHJlZS5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKw0KPj4gLi4uL2dj Yy5kZy9idWlsdGluLW9iamVjdC1zaXplLXByMTAxODMyLmMgICAgIHwgMTM0ICsrKysrKysrKysr KysrKysrKw0KPj4gZ2NjL3RyZWUtY29yZS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICA0ICstDQo+PiBnY2MvdHJlZS1vYmplY3Qtc2l6ZS5jYyAgICAgICAgICAgICAgICAgICAg ICAgfCAgNzkgKysrKysrKy0tLS0NCj4+IGdjYy90cmVlLXN0cmVhbWVyLWluLmNjICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMSArDQo+PiBnY2MvdHJlZS1zdHJlYW1lci1vdXQuY2MgICAgICAg ICAgICAgICAgICAgICAgfCAgIDEgKw0KPj4gZ2NjL3RyZWUuaCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICA2ICsNCj4+IDkgZmlsZXMgY2hhbmdlZCwgMjE1IGluc2VydGlv bnMoKyksIDI5IGRlbGV0aW9ucygtKQ0KPj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2NjLmRnL2J1aWx0aW4tb2JqZWN0LXNpemUtcHIxMDE4MzIuYw0KPj4gDQo+PiBkaWZmIC0t Z2l0IGEvZ2NjL2MvYy1kZWNsLmNjIGIvZ2NjL2MvYy1kZWNsLmNjDQo+PiBpbmRleCAwODA3OGVh ZGViOC4uZjU4OWEyZjUxOTIgMTAwNjQ0DQo+PiAtLS0gYS9nY2MvYy9jLWRlY2wuY2MNCj4+ICsr KyBiL2djYy9jL2MtZGVjbC5jYw0KPj4gQEAgLTkyODQsNiArOTI4NCwxOCBAQCBmaW5pc2hfc3Ry dWN0IChsb2NhdGlvbl90IGxvYywgdHJlZSB0LCB0cmVlIGZpZWxkbGlzdCwgdHJlZSBhdHRyaWJ1 dGVzLA0KPj4gICAgICAgLyogU2V0IERFQ0xfTk9UX0ZMRVhBUlJBWSBmbGFnIGZvciBGSUVMRF9E RUNMIHguICAqLw0KPj4gICAgICAgREVDTF9OT1RfRkxFWEFSUkFZICh4KSA9ICFpc19mbGV4aWJs ZV9hcnJheV9tZW1iZXJfcCAoaXNfbGFzdF9maWVsZCwgeCk7DQo+PiANCj4+ICsgICAgICAvKiBT ZXQgVFlQRV9JTkNMVURFX0ZMRVhBUlJBWSBmb3IgdGhlIGNvbnRleHQgb2YgeCwgdA0KPj4gKyAg ICAgICAqIHdoZW4geCBpcyBhbiBhcnJheS4gICovDQo+PiArICAgICAgaWYgKFRSRUVfQ09ERSAo VFJFRV9UWVBFICh4KSkgPT0gQVJSQVlfVFlQRSkNCj4+ICsJVFlQRV9JTkNMVURFX0ZMRVhBUlJB WSAodCkgPSBmbGV4aWJsZV9hcnJheV9tZW1iZXJfdHlwZV9wIChUUkVFX1RZUEUgKHgpKSA7DQo+ PiArICAgICAgLyogUmVjdXJzaXZlbHkgc2V0IFRZUEVfSU5DTFVERV9GTEVYQVJSQVkgZm9yIHRo ZSBjb250ZXh0IG9mIHgsIHQNCj4+ICsJIHdoZW4geCBpcyB0aGUgbGFzdCBmaWVsZC4gICovDQo+ PiArICAgICAgZWxzZSBpZiAoKFRSRUVfQ09ERSAoVFJFRV9UWVBFICh4KSkgPT0gUkVDT1JEX1RZ UEUNCj4+ICsJCXx8IFRSRUVfQ09ERSAoVFJFRV9UWVBFICh4KSkgPT0gVU5JT05fVFlQRSkNCj4+ ICsJICAgICAgICYmIFRZUEVfSU5DTFVERV9GTEVYQVJSQVkgKFRSRUVfVFlQRSAoeCkpDQo+PiAr CSAgICAgICAmJiBpc19sYXN0X2ZpZWxkKQ0KPj4gKwlUWVBFX0lOQ0xVREVfRkxFWEFSUkFZICh0 KSA9IHRydWU7DQo+PiArDQo+PiAgICAgICBpZiAoREVDTF9OQU1FICh4KQ0KPj4gCSAgfHwgUkVD T1JEX09SX1VOSU9OX1RZUEVfUCAoVFJFRV9UWVBFICh4KSkpDQo+PiAJc2F3X25hbWVkX2ZpZWxk ID0gdHJ1ZTsNCj4+IGRpZmYgLS1naXQgYS9nY2MvY3AvbW9kdWxlLmNjIGIvZ2NjL2NwL21vZHVs ZS5jYw0KPj4gaW5kZXggYWMyZmU2NmIwODAuLmM3NTAzNjFiNzA0IDEwMDY0NA0KPj4gLS0tIGEv Z2NjL2NwL21vZHVsZS5jYw0KPj4gKysrIGIvZ2NjL2NwL21vZHVsZS5jYw0KPj4gQEAgLTUzNzEs NiArNTM3MSw3IEBAIHRyZWVzX291dDo6Y29yZV9ib29scyAodHJlZSB0KQ0KPj4gICAgICAgV0Ig KHQtPnR5cGVfY29tbW9uLmxhbmdfZmxhZ181KTsNCj4+ICAgICAgIFdCICh0LT50eXBlX2NvbW1v bi5sYW5nX2ZsYWdfNik7DQo+PiAgICAgICBXQiAodC0+dHlwZV9jb21tb24udHlwZWxlc3Nfc3Rv cmFnZSk7DQo+PiArICAgICAgV0IgKHQtPnR5cGVfY29tbW9uLnR5cGVfaW5jbHVkZV9mbGV4YXJy YXkpOw0KPj4gICAgIH0NCj4+IA0KPj4gICBpZiAoQ09ERV9DT05UQUlOU19TVFJVQ1QgKGNvZGUs IFRTX0RFQ0xfQ09NTU9OKSkNCj4+IEBAIC01NTUxLDYgKzU1NTIsNyBAQCB0cmVlc19pbjo6Y29y ZV9ib29scyAodHJlZSB0KQ0KPj4gICAgICAgUkIgKHQtPnR5cGVfY29tbW9uLmxhbmdfZmxhZ181 KTsNCj4+ICAgICAgIFJCICh0LT50eXBlX2NvbW1vbi5sYW5nX2ZsYWdfNik7DQo+PiAgICAgICBS QiAodC0+dHlwZV9jb21tb24udHlwZWxlc3Nfc3RvcmFnZSk7DQo+PiArICAgICAgUkIgKHQtPnR5 cGVfY29tbW9uLnR5cGVfaW5jbHVkZV9mbGV4YXJyYXkpOw0KPj4gICAgIH0NCj4+IA0KPj4gICBp ZiAoQ09ERV9DT05UQUlOU19TVFJVQ1QgKGNvZGUsIFRTX0RFQ0xfQ09NTU9OKSkNCj4+IGRpZmYg LS1naXQgYS9nY2MvcHJpbnQtdHJlZS5jYyBiL2djYy9wcmludC10cmVlLmNjDQo+PiBpbmRleCAx ZjNhZmNiYmM4Ni4uZWZhY2RiNzY4NmYgMTAwNjQ0DQo+PiAtLS0gYS9nY2MvcHJpbnQtdHJlZS5j Yw0KPj4gKysrIGIvZ2NjL3ByaW50LXRyZWUuY2MNCj4+IEBAIC02MzEsNiArNjMxLDExIEBAIHBy aW50X25vZGUgKEZJTEUgKmZpbGUsIGNvbnN0IGNoYXIgKnByZWZpeCwgdHJlZSBub2RlLCBpbnQg aW5kZW50LA0KPj4gCSAgJiYgVFlQRV9DWFhfT0RSX1AgKG5vZGUpKQ0KPj4gCWZwdXRzICgiIGN4 eC1vZHItcCIsIGZpbGUpOw0KPj4gDQo+PiArICAgICAgaWYgKChjb2RlID09IFJFQ09SRF9UWVBF DQo+PiArCSAgIHx8IGNvZGUgPT0gVU5JT05fVFlQRSkNCj4+ICsJICAmJiBUWVBFX0lOQ0xVREVf RkxFWEFSUkFZIChub2RlKSkNCj4+ICsJZnB1dHMgKCIgaW5jbHVkZS1mbGV4YXJyYXkiLCBmaWxl KTsNCj4+ICsNCj4+ICAgICAgIC8qIFRoZSB0cmFuc3BhcmVudC11bmlvbiBmbGFnIGlzIHVzZWQg Zm9yIGRpZmZlcmVudCB0aGluZ3MgaW4NCj4+IAkgZGlmZmVyZW50IG5vZGVzLiAgKi8NCj4+ICAg ICAgIGlmICgoY29kZSA9PSBVTklPTl9UWVBFIHx8IGNvZGUgPT0gUkVDT1JEX1RZUEUpDQo+PiBk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYnVpbHRpbi1vYmplY3Qtc2l6ZS1wcjEw MTgzMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYnVpbHRpbi1vYmplY3Qtc2l6ZS1wcjEwMTgz Mi5jDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAwMDAwMDAwMDAuLjYwMDc4 ZTExNjM0DQo+PiAtLS0gL2Rldi9udWxsDQo+PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9i dWlsdGluLW9iamVjdC1zaXplLXByMTAxODMyLmMNCj4+IEBAIC0wLDAgKzEsMTM0IEBADQo+PiAr LyogUFIgMTAxODMyOiANCj4+ICsgICBHQ0MgZXh0ZW5zaW9uIGFjY2VwdHMgdGhlIGNhc2Ugd2hl biBhIHN0cnVjdCB3aXRoIGEgQzk5IGZsZXhpYmxlIGFycmF5DQo+PiArICAgbWVtYmVyIGlzIGVt YmVkZGVkIGludG8gYW5vdGhlciBzdHJ1Y3QgKHBvc3NpYmx5IHJlY3Vyc2l2ZWx5KS4NCj4+ICsg ICBfX2J1aWx0aW5fb2JqZWN0X3NpemUgd2lsbCB0cmVhdCBzdWNoIHN0cnVjdCBhcyBmbGV4aWJs ZSBzaXplLg0KPj4gKyAgIEhvd2V2ZXIsIHdoZW4gYSBzdHJ1Y3R1cmUgd2l0aCBub24tQzk5IGZs ZXhpYmxlIGFycmF5IG1lbWJlciwgaS5lLCB0cmFpbGluZw0KPj4gKyAgIFswXSwgWzFdLCBvciBb NF0sIGlzIGVtYmVkZGVkIGludG8gYW50aGVyIHN0cnVjdCwgdGhlIHN0dWN0dXJlIHdpbGwgbm90 DQo+PiArICAgYmUgdHJlYXRlZCBhcyBmbGV4aWJsZSBzaXplLiAgKi8gDQo+PiArLyogeyBkZy1k byBydW4gfSAqLw0KPj4gKy8qIHsgZGctb3B0aW9ucyAiLU8yIiB9ICovDQo+PiArDQo+PiArI2lu Y2x1ZGUgImJ1aWx0aW4tb2JqZWN0LXNpemUtY29tbW9uLmgiDQo+PiArDQo+PiArI2RlZmluZSBl eHBlY3QocCwgX3YpIGRvIHsgXA0KPj4gKyAgc2l6ZV90IHYgPSBfdjsgXA0KPj4gKyAgaWYgKHAg PT0gdikgXA0KPj4gKyAgICBfX2J1aWx0aW5fcHJpbnRmICgib2s6ICAlcyA9PSAlemRcbiIsICNw LCBwKTsgXA0KPj4gKyAgZWxzZSB7XA0KPj4gKyAgICBfX2J1aWx0aW5fcHJpbnRmICgiV0FUOiAl cyA9PSAlemQgKGV4cGVjdGVkICV6ZClcbiIsICNwLCBwLCB2KTsgXA0KPj4gKyAgICBGQUlMICgp OyBcDQo+PiArICB9IFwNCj4+ICt9IHdoaWxlICgwKTsNCj4+ICsNCj4+ICsNCj4+ICtzdHJ1Y3Qg QSB7DQo+PiArICBpbnQgbjsNCj4+ICsgIGNoYXIgZGF0YVtdOw0KPj4gK307DQo+PiArDQo+PiAr c3RydWN0IEIgew0KPj4gKyAgaW50IG07DQo+PiArICBzdHJ1Y3QgQSBhOw0KPj4gK307DQo+PiAr DQo+PiArc3RydWN0IEMgew0KPj4gKyAgaW50IHE7DQo+PiArICBzdHJ1Y3QgQiBiOw0KPj4gK307 DQo+PiArDQo+PiArc3RydWN0IEEwIHsNCj4+ICsgIGludCBuOw0KPj4gKyAgY2hhciBkYXRhWzBd Ow0KPj4gK307DQo+PiArDQo+PiArc3RydWN0IEIwIHsNCj4+ICsgIGludCBtOw0KPj4gKyAgc3Ry dWN0IEEwIGE7DQo+PiArfTsNCj4+ICsNCj4+ICtzdHJ1Y3QgQzAgew0KPj4gKyAgaW50IHE7DQo+ PiArICBzdHJ1Y3QgQjAgYjsNCj4+ICt9Ow0KPj4gKw0KPj4gK3N0cnVjdCBBMSB7DQo+PiArICBp bnQgbjsNCj4+ICsgIGNoYXIgZGF0YVsxXTsNCj4+ICt9Ow0KPj4gKw0KPj4gK3N0cnVjdCBCMSB7 DQo+PiArICBpbnQgbTsNCj4+ICsgIHN0cnVjdCBBMSBhOw0KPj4gK307DQo+PiArDQo+PiArc3Ry dWN0IEMxIHsNCj4+ICsgIGludCBxOw0KPj4gKyAgc3RydWN0IEIxIGI7DQo+PiArfTsNCj4+ICsN Cj4+ICtzdHJ1Y3QgQW4gew0KPj4gKyAgaW50IG47DQo+PiArICBjaGFyIGRhdGFbOF07DQo+PiAr fTsNCj4+ICsNCj4+ICtzdHJ1Y3QgQm4gew0KPj4gKyAgaW50IG07DQo+PiArICBzdHJ1Y3QgQW4g YTsNCj4+ICt9Ow0KPj4gKw0KPj4gK3N0cnVjdCBDbiB7DQo+PiArICBpbnQgcTsNCj4+ICsgIHN0 cnVjdCBCbiBiOw0KPj4gK307DQo+PiArDQo+PiArdm9sYXRpbGUgdm9pZCAqbWFnaWMxLCAqbWFn aWMyOw0KPj4gKw0KPj4gK2ludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQ0KPj4gK3sN Cj4+ICsgIHN0cnVjdCBCICpvdXRlcjsNCj4+ICsgIHN0cnVjdCBDICpvdXRlc3Q7DQo+PiArDQo+ PiArICAvKiBNYWtlIHN1cmUgb3B0aW1pemF0aW9uIGNhbid0IGZpbmQgc29tZSBvdGhlciBvYmpl Y3Qgc2l6ZS4gKi8NCj4+ICsgIG91dGVyID0gKHZvaWQgKiltYWdpYzE7DQo+PiArICBvdXRlc3Qg PSAodm9pZCAqKW1hZ2ljMjsNCj4+ICsNCj4+ICsgIGV4cGVjdCAoX19idWlsdGluX29iamVjdF9z aXplICgmb3V0ZXItPmEsIDEpLCAtMSk7DQo+PiArICBleHBlY3QgKF9fYnVpbHRpbl9vYmplY3Rf c2l6ZSAoJm91dGVzdC0+YiwgMSksIC0xKTsNCj4+ICsgIGV4cGVjdCAoX19idWlsdGluX29iamVj dF9zaXplICgmb3V0ZXN0LT5iLmEsIDEpLCAtMSk7DQo+PiArDQo+PiArICBzdHJ1Y3QgQjAgKm91 dGVyMDsNCj4+ICsgIHN0cnVjdCBDMCAqb3V0ZXN0MDsNCj4+ICsNCj4+ICsgIC8qIE1ha2Ugc3Vy ZSBvcHRpbWl6YXRpb24gY2FuJ3QgZmluZCBzb21lIG90aGVyIG9iamVjdCBzaXplLiAqLw0KPj4g KyAgb3V0ZXIwID0gKHZvaWQgKiltYWdpYzE7DQo+PiArICBvdXRlc3QwID0gKHZvaWQgKiltYWdp YzI7DQo+PiArDQo+PiArICBleHBlY3QgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJm91dGVyMC0+ YSwgMSksIHNpemVvZiAob3V0ZXIwLT5hKSk7DQo+PiArICBleHBlY3QgKF9fYnVpbHRpbl9vYmpl Y3Rfc2l6ZSAoJm91dGVzdDAtPmIsIDEpLCBzaXplb2YgKG91dGVzdDAtPmIpKTsNCj4+ICsgIGV4 cGVjdCAoX19idWlsdGluX29iamVjdF9zaXplICgmb3V0ZXN0MC0+Yi5hLCAxKSwgc2l6ZW9mIChv dXRlc3QwLT5iLmEpKTsNCj4+ICsNCj4+ICsgIHN0cnVjdCBCMSAqb3V0ZXIxOw0KPj4gKyAgc3Ry dWN0IEMxICpvdXRlc3QxOw0KPj4gKw0KPj4gKyAgLyogTWFrZSBzdXJlIG9wdGltaXphdGlvbiBj YW4ndCBmaW5kIHNvbWUgb3RoZXIgb2JqZWN0IHNpemUuICovDQo+PiArICBvdXRlcjEgPSAodm9p ZCAqKW1hZ2ljMTsNCj4+ICsgIG91dGVzdDEgPSAodm9pZCAqKW1hZ2ljMjsNCj4+ICsNCj4+ICsg IGV4cGVjdCAoX19idWlsdGluX29iamVjdF9zaXplICgmb3V0ZXIxLT5hLCAxKSwgc2l6ZW9mIChv dXRlcjEtPmEpKTsNCj4+ICsgIGV4cGVjdCAoX19idWlsdGluX29iamVjdF9zaXplICgmb3V0ZXN0 MS0+YiwgMSksIHNpemVvZiAob3V0ZXN0MS0+YikpOw0KPj4gKyAgZXhwZWN0IChfX2J1aWx0aW5f b2JqZWN0X3NpemUgKCZvdXRlc3QxLT5iLmEsIDEpLCBzaXplb2YgKG91dGVzdDEtPmIuYSkpOw0K Pj4gKw0KPj4gKyAgc3RydWN0IEJuICpvdXRlcm47DQo+PiArICBzdHJ1Y3QgQ24gKm91dGVzdG47 DQo+PiArDQo+PiArICAvKiBNYWtlIHN1cmUgb3B0aW1pemF0aW9uIGNhbid0IGZpbmQgc29tZSBv dGhlciBvYmplY3Qgc2l6ZS4gKi8NCj4+ICsgIG91dGVybiA9ICh2b2lkICopbWFnaWMxOw0KPj4g KyAgb3V0ZXN0biA9ICh2b2lkICopbWFnaWMyOw0KPj4gKw0KPj4gKyAgZXhwZWN0IChfX2J1aWx0 aW5fb2JqZWN0X3NpemUgKCZvdXRlcm4tPmEsIDEpLCBzaXplb2YgKG91dGVybi0+YSkpOw0KPj4g KyAgZXhwZWN0IChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZvdXRlc3RuLT5iLCAxKSwgc2l6ZW9m IChvdXRlc3RuLT5iKSk7DQo+PiArICBleHBlY3QgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJm91 dGVzdG4tPmIuYSwgMSksIHNpemVvZiAob3V0ZXN0bi0+Yi5hKSk7DQo+PiArDQo+PiArICBET05F ICgpOw0KPj4gKyAgcmV0dXJuIDA7DQo+PiArfQ0KPj4gZGlmZiAtLWdpdCBhL2djYy90cmVlLWNv cmUuaCBiL2djYy90cmVlLWNvcmUuaA0KPj4gaW5kZXggYWNkOGRlZWEzNGUuLjcwNWQ1NzAyYjlj IDEwMDY0NA0KPj4gLS0tIGEvZ2NjL3RyZWUtY29yZS5oDQo+PiArKysgYi9nY2MvdHJlZS1jb3Jl LmgNCj4+IEBAIC0xNzE4LDcgKzE3MTgsOSBAQCBzdHJ1Y3QgR1RZKCgpKSB0cmVlX3R5cGVfY29t bW9uIHsNCj4+ICAgdW5zaWduZWQgZW1wdHlfZmxhZyA6IDE7DQo+PiAgIHVuc2lnbmVkIGluZGl2 aXNpYmxlX3AgOiAxOw0KPj4gIFJFQ09SRF9PUl9VTklPTl9DSEVDSw0KPiANCj4gaXQgbG9va3Mg bGlrZSB0aGUgYml0IGNvdWxkIGJlIGV2ZW50dWFsbHkgc2hhcmVkIHdpdGgNCj4gbm9fbmFtZWRf YXJnc19zdGRhcmdfcCAoYnV0IGl0cyBhY2Nlc3NvciBkb2Vzbid0IHVzZQ0KPiBGVU5DX09SX01F VEhPRF9DSEVDSykNCllvdSBtZWFuIHRvIGxldCDigJx0eXBlX2luY2x1ZGVfZmxleGFycmF54oCd IHNoYXJlIHRoZSBzYW1lIGJpdCB3aXRoIOKAnG5vX25hbWVkX2FyZ3Nfc3RkYXJnX3DigJ0gaW4g b3JkZXIgdG8gc2F2ZSAxLWJpdCBzcGFjZSBpbiBJUj8NClRoZW4gY2hhbmdlIHRoZSANCg0KLyog VHJ1ZSBpZiB0aGlzIGlzIGEgc3RkYXJnIGZ1bmN0aW9uIHdpdGggbm8gbmFtZWQgYXJndW1lbnRz IChDMngNCiAgICguLi4pIHByb3RvdHlwZSwgd2hlcmUgYXJndW1lbnRzIGNhbiBiZSBhY2Nlc3Nl ZCB3aXRoIHZhX3N0YXJ0IGFuZA0KICAgdmFfYXJnKSwgYXMgb3Bwb3NlZCB0byBhbiB1bnByb3Rv dHlwZWQgZnVuY3Rpb24uICAqLw0KI2RlZmluZSBUWVBFX05PX05BTUVEX0FSR1NfU1REQVJHX1Ao Tk9ERSkgXA0KICAoVFlQRV9DSEVDSyAoTk9ERSktPnR5cGVfY29tbW9uLm5vX25hbWVkX2FyZ3Nf c3RkYXJnX3ApDQoNCi8qIFRydWUgaWYgdGhpcyBSRUNPUkRfVFlQRSBvciBVTklPTl9UWVBFIGlu Y2x1ZGVzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyDQogICBhdCB0aGUgbGFzdCBmaWVsZCByZWN1 cnNpdmVseS4gICovDQojZGVmaW5lIFRZUEVfSU5DTFVERV9GTEVYQVJSQVkoTk9ERSkgXA0KICAo VFlQRV9DSEVDSyAoTk9ERSktPnR5cGVfY29tbW9uLnR5cGVfaW5jbHVkZV9mbGV4YXJyYXkpDQoN ClRvOg0KDQp1bmlvbiB7DQogICAgdW5zaWduZWQgbm9fbmFtZWRfYXJnc19zdGRhcmdfcCA6IDE7 DQogICAgLyogVFlQRV9JTkNMVURFX0ZMRVhBUlJBWSBmbGFnIGZvciBSRUNPUkRfVFlQRSBhbmQg VU5JT05fVFlQRS4gICovDQogICAgdW5zaWduZWQgaW50IHR5cGVfaW5jbHVkZV9mbGV4YXJyYXkg OiAxOw0KICB9IHNoYXJlZF9iaXQ7DQogIHVuc2lnbmVkIHNwYXJlIDogMTU7DQoNCi8qIFRydWUg aWYgdGhpcyBpcyBhIHN0ZGFyZyBmdW5jdGlvbiB3aXRoIG5vIG5hbWVkIGFyZ3VtZW50cyAoQzJ4 DQogICAoLi4uKSBwcm90b3R5cGUsIHdoZXJlIGFyZ3VtZW50cyBjYW4gYmUgYWNjZXNzZWQgd2l0 aCB2YV9zdGFydCBhbmQNCiAgIHZhX2FyZyksIGFzIG9wcG9zZWQgdG8gYW4gdW5wcm90b3R5cGVk IGZ1bmN0aW9uLiAgKi8NCiNkZWZpbmUgVFlQRV9OT19OQU1FRF9BUkdTX1NUREFSR19QKE5PREUp IFwNCiAgKEZVTkNfT1JfTUVUSE9EX0NIRUNLIChOT0RFKS0+dHlwZV9jb21tb24uc2hhcmVkX2Jp dC5ub19uYW1lZF9hcmdzX3N0ZGFyZ19wKQ0KDQovKiBUcnVlIGlmIHRoaXMgUkVDT1JEX1RZUEUg b3IgVU5JT05fVFlQRSBpbmNsdWRlcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlcg0KICAgYXQgdGhl IGxhc3QgZmllbGQgcmVjdXJzaXZlbHkuICAqLw0KI2RlZmluZSBUWVBFX0lOQ0xVREVfRkxFWEFS UkFZKE5PREUpIFwNCiAgKFJFQ09SRF9PUl9VTklPTl9DSEVDSyhOT0RFKS0+dHlwZV9jb21tb24u c2hhcmVkX2JpdC50eXBlX2luY2x1ZGVfZmxleGFycmF5KQ0KDQo+IA0KPj4gICBhbGlhc19zZXRf dHlwZSBhbGlhc19zZXQ7DQo+PiAgIHRyZWUgcG9pbnRlcl90bzsNCj4+IGRpZmYgLS1naXQgYS9n Y2MvdHJlZS1vYmplY3Qtc2l6ZS5jYyBiL2djYy90cmVlLW9iamVjdC1zaXplLmNjDQo+PiBpbmRl eCA5YTkzNmE5MTk4My4uMjJiM2M3MmVhNmUgMTAwNjQ0DQo+PiAtLS0gYS9nY2MvdHJlZS1vYmpl Y3Qtc2l6ZS5jYw0KPj4gKysrIGIvZ2NjL3RyZWUtb2JqZWN0LXNpemUuY2MNCj4+IEBAIC02MzMs NDUgKzYzMyw2OCBAQCBhZGRyX29iamVjdF9zaXplIChzdHJ1Y3Qgb2JqZWN0X3NpemVfaW5mbyAq b3NpLCBjb25zdF90cmVlIHB0ciwNCj4+IAkJICAgIHYgPSBOVUxMX1RSRUU7DQo+PiAJCSAgICBi cmVhazsNCj4+IAkJICBjYXNlIENPTVBPTkVOVF9SRUY6DQo+PiAtCQkgICAgaWYgKFRSRUVfQ09E RSAoVFJFRV9UWVBFICh2KSkgIT0gQVJSQVlfVFlQRSkNCj4+ICsJCSAgICAvKiBXaGVuIHRoZSBy ZWYgaXMgbm90IHRvIGFuIGFycmF5LCBhIHJlY29yZCBvciBhIHVuaW9uLCBpdA0KPj4gKwkJICAg ICAgIHdpbGwgbm90IGhhdmUgZmxleGlibGUgc2l6ZSwgY29tcHV0ZSB0aGUgb2JqZWN0IHNpemUN Cj4+ICsJCSAgICAgICBkaXJlY3RseS4gICovDQo+PiArCQkgICAgaWYgKChUUkVFX0NPREUgKFRS RUVfVFlQRSAodikpICE9IEFSUkFZX1RZUEUpDQo+PiArCQkJJiYgKFRSRUVfQ09ERSAoVFJFRV9U WVBFICh2KSkgIT0gUkVDT1JEX1RZUEUpDQo+PiArCQkJJiYgKFRSRUVfQ09ERSAoVFJFRV9UWVBF ICh2KSkgIT0gVU5JT05fVFlQRSkpDQo+PiAJCSAgICAgIHsNCj4+IAkJCXYgPSBOVUxMX1RSRUU7 DQo+PiAJCQlicmVhazsNCj4+IAkJICAgICAgfQ0KPj4gLQkJICAgIGlzX2ZsZXhpYmxlX2FycmF5 X21lbV9yZWYgPSBhcnJheV9yZWZfZmxleGlibGVfc2l6ZV9wICh2KTsNCj4+IC0JCSAgICB3aGls ZSAodiAhPSBwdF92YXIgJiYgVFJFRV9DT0RFICh2KSA9PSBDT01QT05FTlRfUkVGKQ0KPj4gLQkJ ICAgICAgaWYgKFRSRUVfQ09ERSAoVFJFRV9UWVBFIChUUkVFX09QRVJBTkQgKHYsIDApKSkNCj4+ IC0JCQkgICE9IFVOSU9OX1RZUEUNCj4+IC0JCQkgICYmIFRSRUVfQ09ERSAoVFJFRV9UWVBFIChU UkVFX09QRVJBTkQgKHYsIDApKSkNCj4+IC0JCQkgICE9IFFVQUxfVU5JT05fVFlQRSkNCj4+IC0J CQlicmVhazsNCj4+IC0JCSAgICAgIGVsc2UNCj4+IC0JCQl2ID0gVFJFRV9PUEVSQU5EICh2LCAw KTsNCj4+IC0JCSAgICBpZiAoVFJFRV9DT0RFICh2KSA9PSBDT01QT05FTlRfUkVGDQo+PiAtCQkJ JiYgVFJFRV9DT0RFIChUUkVFX1RZUEUgKFRSRUVfT1BFUkFORCAodiwgMCkpKQ0KPj4gLQkJCSAg ID09IFJFQ09SRF9UWVBFKQ0KPj4gKwkJICAgIGlmIChUUkVFX0NPREUgKFRSRUVfVFlQRSAodikp ID09IFJFQ09SRF9UWVBFDQo+PiArCQkJfHwgVFJFRV9DT0RFIChUUkVFX1RZUEUgKHYpKSA9PSBV TklPTl9UWVBFKQ0KPj4gKwkJICAgIC8qIGlmIHRoZSByZWNvcmQgb3IgdW5pb24gZG9lcyBub3Qg aW5jbHVkZSBhIGZsZXhpYmxlIGFycmF5DQo+PiArCQkgICAgICAgcmVjdXJzaXZlbHksIGNvbXB1 dGUgdGhlIG9iamVjdCBzaXplIGRpcmVjdGx5LiAgKi8NCj4+IAkJICAgICAgew0KPj4gLQkJCS8q IGNvbXB1dGUgb2JqZWN0IHNpemUgb25seSBpZiB2IGlzIG5vdCBhDQo+PiAtCQkJICAgZmxleGli bGUgYXJyYXkgbWVtYmVyLiAgKi8NCj4+IC0JCQlpZiAoIWlzX2ZsZXhpYmxlX2FycmF5X21lbV9y ZWYpDQo+PiArCQkJaWYgKCFUWVBFX0lOQ0xVREVfRkxFWEFSUkFZIChUUkVFX1RZUEUgKHYpKSkN Cj4+IAkJCSAgew0KPj4gCQkJICAgIHYgPSBOVUxMX1RSRUU7DQo+PiAJCQkgICAgYnJlYWs7DQo+ PiAJCQkgIH0NCj4+IC0JCQl2ID0gVFJFRV9PUEVSQU5EICh2LCAwKTsNCj4+ICsJCQllbHNlDQo+ PiArCQkJICB2ID0gVFJFRV9PUEVSQU5EICh2LCAwKTsNCj4+IAkJICAgICAgfQ0KPj4gLQkJICAg IHdoaWxlICh2ICE9IHB0X3ZhciAmJiBUUkVFX0NPREUgKHYpID09IENPTVBPTkVOVF9SRUYpDQo+ PiAtCQkgICAgICBpZiAoVFJFRV9DT0RFIChUUkVFX1RZUEUgKFRSRUVfT1BFUkFORCAodiwgMCkp KQ0KPj4gLQkJCSAgIT0gVU5JT05fVFlQRQ0KPj4gLQkJCSAgJiYgVFJFRV9DT0RFIChUUkVFX1RZ UEUgKFRSRUVfT1BFUkFORCAodiwgMCkpKQ0KPj4gLQkJCSAgIT0gUVVBTF9VTklPTl9UWVBFKQ0K Pj4gLQkJCWJyZWFrOw0KPj4gLQkJICAgICAgZWxzZQ0KPj4gLQkJCXYgPSBUUkVFX09QRVJBTkQg KHYsIDApOw0KPj4gLQkJICAgIGlmICh2ICE9IHB0X3ZhcikNCj4+IC0JCSAgICAgIHYgPSBOVUxM X1RSRUU7DQo+PiAJCSAgICBlbHNlDQo+PiAtCQkgICAgICB2ID0gcHRfdmFyOw0KPj4gKwkJICAg ICAgew0KPj4gKwkJCS8qIE5vdyB0aGUgcmVmIGlzIHRvIGFuIGFycmF5IHR5cGUuICAqLw0KPj4g KwkJCWlzX2ZsZXhpYmxlX2FycmF5X21lbV9yZWYNCj4+ICsJCQkgID0gYXJyYXlfcmVmX2ZsZXhp YmxlX3NpemVfcCAodik7DQo+PiArCQkJd2hpbGUgKHYgIT0gcHRfdmFyICYmIFRSRUVfQ09ERSAo dikgPT0gQ09NUE9ORU5UX1JFRikNCj4+ICsJCQlpZiAoVFJFRV9DT0RFIChUUkVFX1RZUEUgKFRS RUVfT1BFUkFORCAodiwgMCkpKQ0KPj4gKwkJCSAgICAgICE9IFVOSU9OX1RZUEUNCj4+ICsJCQkg ICAgJiYgVFJFRV9DT0RFIChUUkVFX1RZUEUgKFRSRUVfT1BFUkFORCAodiwgMCkpKQ0KPj4gKwkJ CQkgIT0gUVVBTF9VTklPTl9UWVBFKQ0KPj4gKwkJCSAgYnJlYWs7DQo+PiArCQkJZWxzZQ0KPj4g KwkJCSAgdiA9IFRSRUVfT1BFUkFORCAodiwgMCk7DQo+PiArCQkJaWYgKFRSRUVfQ09ERSAodikg PT0gQ09NUE9ORU5UX1JFRg0KPj4gKwkJCSAgICAmJiBUUkVFX0NPREUgKFRSRUVfVFlQRSAoVFJF RV9PUEVSQU5EICh2LCAwKSkpDQo+PiArCQkJCSA9PSBSRUNPUkRfVFlQRSkNCj4+ICsJCQkgIHsN Cj4+ICsJCQkgICAgLyogY29tcHV0ZSBvYmplY3Qgc2l6ZSBvbmx5IGlmIHYgaXMgbm90IGENCj4+ ICsJCQkgICAgICAgZmxleGlibGUgYXJyYXkgbWVtYmVyLiAgKi8NCj4+ICsJCQkgICAgaWYgKCFp c19mbGV4aWJsZV9hcnJheV9tZW1fcmVmKQ0KPj4gKwkJCSAgICAgIHsNCj4+ICsJCQkJdiA9IE5V TExfVFJFRTsNCj4+ICsJCQkJYnJlYWs7DQo+PiArCQkJICAgICAgfQ0KPj4gKwkJCSAgICB2ID0g VFJFRV9PUEVSQU5EICh2LCAwKTsNCj4+ICsJCQkgIH0NCj4+ICsJCQl3aGlsZSAodiAhPSBwdF92 YXIgJiYgVFJFRV9DT0RFICh2KSA9PSBDT01QT05FTlRfUkVGKQ0KPj4gKwkJCSAgaWYgKFRSRUVf Q09ERSAoVFJFRV9UWVBFIChUUkVFX09QRVJBTkQgKHYsIDApKSkNCj4+ICsJCQkJIT0gVU5JT05f VFlQRQ0KPj4gKwkJCSAgICAgICYmIFRSRUVfQ09ERSAoVFJFRV9UWVBFIChUUkVFX09QRVJBTkQg KHYsIDApKSkNCj4+ICsJCQkJICAgIT0gUVVBTF9VTklPTl9UWVBFKQ0KPj4gKwkJCSAgICBicmVh azsNCj4+ICsJCQkgIGVsc2UNCj4+ICsJCQkgICAgdiA9IFRSRUVfT1BFUkFORCAodiwgMCk7DQo+ PiArCQkJaWYgKHYgIT0gcHRfdmFyKQ0KPj4gKwkJCSAgdiA9IE5VTExfVFJFRTsNCj4+ICsJCQll bHNlDQo+PiArCQkJICB2ID0gcHRfdmFyOw0KPj4gKwkJICAgICAgfQ0KPj4gCQkgICAgYnJlYWs7 DQo+PiAJCSAgZGVmYXVsdDoNCj4+IAkJICAgIHYgPSBwdF92YXI7DQo+PiBkaWZmIC0tZ2l0IGEv Z2NjL3RyZWUtc3RyZWFtZXItaW4uY2MgYi9nY2MvdHJlZS1zdHJlYW1lci1pbi5jYw0KPj4gaW5k ZXggZDRkYzMwZjA0OGYuLmMxOWVkZTA2MzFkIDEwMDY0NA0KPj4gLS0tIGEvZ2NjL3RyZWUtc3Ry ZWFtZXItaW4uY2MNCj4+ICsrKyBiL2djYy90cmVlLXN0cmVhbWVyLWluLmNjDQo+PiBAQCAtMzkw LDYgKzM5MCw3IEBAIHVucGFja190c190eXBlX2NvbW1vbl92YWx1ZV9maWVsZHMgKHN0cnVjdCBi aXRwYWNrX2QgKmJwLCB0cmVlIGV4cHIpDQo+PiAgICAgICBUWVBFX1RSQU5TUEFSRU5UX0FHR1Ig KGV4cHIpID0gKHVuc2lnbmVkKSBicF91bnBhY2tfdmFsdWUgKGJwLCAxKTsNCj4+ICAgICAgIFRZ UEVfRklOQUxfUCAoZXhwcikgPSAodW5zaWduZWQpIGJwX3VucGFja192YWx1ZSAoYnAsIDEpOw0K Pj4gICAgICAgVFlQRV9DWFhfT0RSX1AgKGV4cHIpID0gKHVuc2lnbmVkKSBicF91bnBhY2tfdmFs dWUgKGJwLCAxKTsNCj4+ICsgICAgICBUWVBFX0lOQ0xVREVfRkxFWEFSUkFZIChleHByKSA9ICh1 bnNpZ25lZCkgYnBfdW5wYWNrX3ZhbHVlIChicCwgMSk7DQo+PiAgICAgfQ0KPj4gICBlbHNlIGlm IChUUkVFX0NPREUgKGV4cHIpID09IEFSUkFZX1RZUEUpDQo+PiAgICAgVFlQRV9OT05BTElBU0VE X0NPTVBPTkVOVCAoZXhwcikgPSAodW5zaWduZWQpIGJwX3VucGFja192YWx1ZSAoYnAsIDEpOw0K Pj4gZGlmZiAtLWdpdCBhL2djYy90cmVlLXN0cmVhbWVyLW91dC5jYyBiL2djYy90cmVlLXN0cmVh bWVyLW91dC5jYw0KPj4gaW5kZXggZDEwNzIyOWRhNWMuLjczZTRiNGU1NDdjIDEwMDY0NA0KPj4g LS0tIGEvZ2NjL3RyZWUtc3RyZWFtZXItb3V0LmNjDQo+PiArKysgYi9nY2MvdHJlZS1zdHJlYW1l ci1vdXQuY2MNCj4+IEBAIC0zNTcsNiArMzU3LDcgQEAgcGFja190c190eXBlX2NvbW1vbl92YWx1 ZV9maWVsZHMgKHN0cnVjdCBiaXRwYWNrX2QgKmJwLCB0cmVlIGV4cHIpDQo+PiAgICAgICBicF9w YWNrX3ZhbHVlIChicCwgZmxhZ193cGEgJiYgVFlQRV9DQU5PTklDQUwgKGV4cHIpDQo+PiAJCQkg PyBUWVBFX0NYWF9PRFJfUCAoVFlQRV9DQU5PTklDQUwgKGV4cHIpKQ0KPj4gCQkJIDogVFlQRV9D WFhfT0RSX1AgKGV4cHIpLCAxKTsNCj4+ICsgICAgICBicF9wYWNrX3ZhbHVlIChicCwgVFlQRV9J TkNMVURFX0ZMRVhBUlJBWSAoZXhwciksIDEpOw0KPj4gICAgIH0NCj4+ICAgZWxzZSBpZiAoVFJF RV9DT0RFIChleHByKSA9PSBBUlJBWV9UWVBFKQ0KPj4gICAgIGJwX3BhY2tfdmFsdWUgKGJwLCBU WVBFX05PTkFMSUFTRURfQ09NUE9ORU5UIChleHByKSwgMSk7DQo+PiBkaWZmIC0tZ2l0IGEvZ2Nj L3RyZWUuaCBiL2djYy90cmVlLmgNCj4+IGluZGV4IDkyYWMwZTZhMjE0Li5hYjFjZGMzZGM4NSAx MDA2NDQNCj4+IC0tLSBhL2djYy90cmVlLmgNCj4+ICsrKyBiL2djYy90cmVlLmgNCj4+IEBAIC03 NzgsNiArNzc4LDEyIEBAIGV4dGVybiB2b2lkIG9tcF9jbGF1c2VfcmFuZ2VfY2hlY2tfZmFpbGVk IChjb25zdF90cmVlLCBjb25zdCBjaGFyICosIGludCwNCj4+ICNkZWZpbmUgVFlQRV9OT19OQU1F RF9BUkdTX1NUREFSR19QKE5PREUpIFwNCj4+ICAgKFRZUEVfQ0hFQ0sgKE5PREUpLT50eXBlX2Nv bW1vbi5ub19uYW1lZF9hcmdzX3N0ZGFyZ19wKQ0KPj4gDQo+PiArLyogVHJ1ZSBpZiB0aGlzIFJF Q09SRF9UWVBFIG9yIFVOSU9OX1RZUEUgaW5jbHVkZXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIN Cj4+ICsgICBhdCB0aGUgbGFzdCBmaWVsZCByZWN1cnNpdmVseS4gICovDQo+PiArI2RlZmluZSBU WVBFX0lOQ0xVREVfRkxFWEFSUkFZKE5PREUpIFwNCj4+ICsgIChUWVBFX0NIRUNLIChOT0RFKS0+ dHlwZV9jb21tb24udHlwZV9pbmNsdWRlX2ZsZXhhcnJheSkNCj4gDQo+IFBsZWFzZSB1c2UgUkVD T1JEX09SX1VOSU9OX0NIRUNLLiAgDQpPa2F5LiANCj4gVGhlIGNvbW1lbnQgImF0IHRoZSBsYXN0 IGZpZWxkIg0KPiBkb2Vzbid0IHNlZW0gdG8gbWF0Y2ggaW1wbGVtZW50YXRpb24/IChhdCBsZWFz dCBub3Qgb2J2aW91c2x5KQ0KVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gKGluIGdjYy9jL2Mt ZGVjbC5jYykgZ3VhcmFudGVlcyB0aGF0IGl04oCZcyBhdCB0aGUgbGFzdCBmaWVsZC4gKEFuZCBy ZWN1cnNpdmVseSkuIA0KPiBHaXZlbiB0aGlzIGlzIGEgZ2VuZXJpYyBoZWFkZXIgZXhwYW5kaW5n IG9uIHdoYXQgYSAiZmxleGlibGUgYXJyYXkgbWVtYmVyIg0KPiBpcyB0byB0aGUgbWlkZGxlLWVu ZCBoZXJlIHdvdWxkIGJlIGdvb2QuICBFc3BlY2lhbGx5IHRoZSBndWFyYW50ZWVzDQo+IG1hZGUg d2hlbiB0aGUgYml0IGlzIF9ub3RfIHNldCAod2UndmUgZXZhZGVkIHRoYXQgd2l0aCBERUNMX05P VF9GTEVYQVJSQVkNCj4gdnMuIERFQ0xfRkxFWEFSUkFZKS4NCg0KVGhlIGJpdCBUWVBFX0lOQ0xV REVfRkxFWEFSUkFZIGRlZmF1bHQgaXMgRkFMU0UsIGkuZSwgbm90IGluY2x1ZGluZyBhIGZsZXgg YXJyYXkgYnkgZGVmYXVsdC4NCkl04oCZcyBvbmx5IHNldCB0byBUUlVFIHdoZW4gdGhlIHN0cnVj dC91bmlvbiBpbmNsdWRlcyBhIGZsZXggYXJyYXkgYXQgdGhlIGxhc3QgZmllbGQgKGFuZCByZWN1 cnNpdmVseSkuIFNvLCBJIHRoaW5rIGl0IHNob3VsZCBiZSBjb3JyZWN0LiANCkxldCBtZSBrbm93 IGlmIEkgbWlzc2VkIGFueXRoaW5nIGhlcmUuDQoNClRoYW5rcyBhIGxvdCBmb3IgeW91ciBjb21t ZW50cy4NCg0KUWluZw0KPiANCj4gVGhhbmtzLA0KPiBSaWNoYXJkLg0KDQo=