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 D8D6B3857C66 for ; Thu, 6 Jul 2023 18:56:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D8D6B3857C66 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 366HZBAA005343; Thu, 6 Jul 2023 18:56:26 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-2023-03-30; bh=GKOLF9ZCaNdnCgLpLzqt0RbWucJ6ZDpY/o/6iWSbQjY=; b=bSBlfNtRqxQ2LMfV9CscunIypLL4wyKAckL6yhVYnBOVKu8HUTjKz6rvpYhvR1Azooma FiOAyTsxUG7Rro6j6y7mrdMkl/y3rI1LQhCc8wGwn8mvENpxQIzrxSgIgUDVQWAIJcYm zdZMy5WUuOClHCSiSvDPV2SmIt5pLWrCoMPwfqi0yqkS0hcaZkzQd0Kf4+B+Oeuv/AW4 K4rB/+gXiDGT60KQ7OW6KQBI8XY0oJ9mOcEjF0O0nKiI+m+R6UayCoo+RAVWaGkO8ZtZ c6A15I5aLt5/6FikJYlEyumKK0gNHMQUEsxH/iuy/yBTPV97ecCJrbl0u/mkmDRhdvvB Eg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rp203r69s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 06 Jul 2023 18:56:26 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 366I6QdG013508; Thu, 6 Jul 2023 18:56:24 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2106.outbound.protection.outlook.com [104.47.55.106]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3rjak7g5rg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 06 Jul 2023 18:56:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TT7TucIVJLsU/ed0280WYVGey+Szh9NWSFZeGR/kWKUmz3Qvd96iFRlQTSBdoyCYV4TvtzKt0S/R99jWAS5ZDWfIl4vn4v3AwZgjHFivRNHuajmdZKkyysJ5TvdZ3mGP0MT3mnNNWY5gwjZ0+Z769Xj/em4reyl1myGjflW2sT/B+X+jbawVRV31dKfzvOo4/dQJKg2HgGRufPsu9J1VWACYdFDNJdc+2MTvdcFfgByVtuiBaZM6lsomQ0xPErvjjU5EGIq4w+8vmYMrj+Qy9O1G9GTErrVSqVlK1do+ppJx0+lgiang6A9J9aecv7DLEth9xZSHymqdZTpN8s3+rw== 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=GKOLF9ZCaNdnCgLpLzqt0RbWucJ6ZDpY/o/6iWSbQjY=; b=n8ajI6Uco/ZqVOTZyCh722ZkZImRWKBPkU4FRRmomRUJiFyNgfCP6LZaGnu2a2wHs8u9kgc8MOPWkRjT8Plgrx+NBousXX/UebfL6Edswlb/NimueL1RIuJm5otLPcxhyIUMniZv/fKJ8Ib2L6m5BWpdPmTOFB5Vo8OYi3q2UMWw6TviQpnC+SoXRUwf7UEuXQZt4pZrU6XrBE+WAQCMbF2gLveOLyrMZS++XLRCMFI50VLbeTcIXQSHPs10BMm/D+N4KlzLBwnqrdNjYsOgqe1cbnPQlAKlCsUV8kqYsqQjF1vMk+/Dq8Ym/Za4EQrCSdFluIAl5WqTw82Zae2LVA== 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=GKOLF9ZCaNdnCgLpLzqt0RbWucJ6ZDpY/o/6iWSbQjY=; b=r52KGFSCqAHKpSl/uVzdN3U0gzQfacjxt2WdBq1PytDnMoPxSFygkRKaamWxap1T6039rztmZjgFk9ca+Xc9EPN6SxVxIqLKN5reZNjEHv7Mwq1/p9wREHjZPVFh+TwpojSL/BECfyhQ1fwwTkyLoemzuPU9NXAbAxW1wIKq0PA= Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by SJ2PR10MB7058.namprd10.prod.outlook.com (2603:10b6:a03:4c5::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Thu, 6 Jul 2023 18:56:21 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::8d90:607a:f94c:5323]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::8d90:607a:f94c:5323%3]) with mapi id 15.20.6565.019; Thu, 6 Jul 2023 18:56:21 +0000 From: Qing Zhao To: Kees Cook CC: "joseph@codesourcery.com" , "richard.guenther@gmail.com" , "jakub@redhat.com" , "gcc-patches@gcc.gnu.org" , "siddhesh@gotplt.org" , "uecker@tugraz.at" , "isanbard@gmail.com" Subject: Re: [V1][PATCH 0/3] New attribute "element_count" to annotate bounds for C99 FAM(PR108896) Thread-Topic: [V1][PATCH 0/3] New attribute "element_count" to annotate bounds for C99 FAM(PR108896) Thread-Index: AQHZjyQM4cZ0Nx0hq0Cg9tjYZZoL4q9tBmcAgEBSagA= Date: Thu, 6 Jul 2023 18:56:21 +0000 Message-ID: References: <20230525161450.3704901-1-qing.zhao@oracle.com> <202305261218.2420AB8E0@keescook> In-Reply-To: <202305261218.2420AB8E0@keescook> 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.3) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR10MB4344:EE_|SJ2PR10MB7058:EE_ x-ms-office365-filtering-correlation-id: 87500204-febb-4e88-2aae-08db7e52b06e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cf3Nu1lr9sr/FkMRYZ0GM6rx+l+C4a1u7vb2zDv3yhJqbiVv7CZ++Iu12wx4vPSm3aPC/7KfwO7g9uUlx8r6vnCsO4B4aI9k1wnSX1qMwkZNk4ftkw3Kody9ra0E1Zoca7xpvAp6R67W1CnjBaPMF47cx3Siw0egsJ6sSJv3VRfRh5U6aQWtZ/SnLeOsT8uUK2OkgvWIhxD54Y4UJDQto/hX+tWjLsULdUGXt0CfIh05A0Cc6hKpGZH8JcA7WQlfsiyFPnTVBnPTZiI8q5Du6NAwOoy/O6xp3bBfIz2+fcT/mzIs9ra3J9J2m1hQkVTmEh9vN0VVzNokfXQ2+BA59NNwppufvd3ezizxpFgaXcmsZyGMXZVvT1coHYlBOm56w4IZNBct7RE1PGj5pPHj4Z/bITkdmbBdNFhtc30OyikToVS9lSHlTCwV/pj96+CFiuFN0Y3QuZFQBXRTF7pucd9jocje0kdqH6N+3cri/vOCl1hBNNVQyMONQMYqb9djU0V8SnH0bgVa9pg0OPgMiKhqT9pl99FOyAkykUF/stRSaHer67OiC3L9E+lDiY2bwc9lnL6hVPxN/m20Sfqapq/k2ymmhiKCF9Re0ECBz95k8l3IYradpDc2NGOizTm+Hsl9rDg17TEFsI5/+N670E1bDwKoixF01usggl7JB32axbDybd2G1PHK9PxDiDxa 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)(39860400002)(376002)(346002)(366004)(136003)(396003)(451199021)(6486002)(41300700001)(86362001)(38100700002)(53546011)(71200400001)(122000001)(83380400001)(6506007)(2616005)(6512007)(966005)(38070700005)(54906003)(26005)(478600001)(316002)(4326008)(36756003)(66476007)(66556008)(66446008)(76116006)(66946007)(91956017)(6916009)(33656002)(64756008)(8676002)(8936002)(186003)(44832011)(2906002)(5660300002)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?R1NWT3MrYlBMVi9zSUYweUpVbG1iR3Nya2VtWmJiUUI3Y2g5ZmJ4dXArWDNt?= =?utf-8?B?N0tML0hsVUpOeXU4L05oMzhvY2pzelpuTEFrYU9XV2VxeWdLN3luNW9maHU4?= =?utf-8?B?T3lGVldhUzlRMDJIUkpibDVSbXBKTTRuN3NQUmpsZkFJKzFZbXpuMG9KcGJC?= =?utf-8?B?YjNjdGZBdk1LWi92aFI4M2czbkUwQmlIcklIdTBMcCtOUnRJRmszODdZN2pq?= =?utf-8?B?a2xFL0ZpVVpldnpWSGh4cGltVzVQMHMycTFsakl3dzBUclZ1TjJDTmQ5azRY?= =?utf-8?B?LzhqOFVOSzlFaHJnVnVTMG45SWptdDJoZWg2ekJxQUxqc2pJWm9pd3daMnVM?= =?utf-8?B?ajNQZWwxYjg2OTRMM09qMEF0ZFZVYWRnZGdrOUxjNW9WbEZhTElLZWptZmFW?= =?utf-8?B?aUtnZHBZeU5NeDloMHM0ZUpKbVFlZGNDbjNNVmM0NEhWN0o2TEpzSU40QVJu?= =?utf-8?B?N01jenFLYVRuM0Rmb0pldEtBeDlWdmtCdXk5NGpsem55cTJsWGJ3Wm1ZQmFV?= =?utf-8?B?QmhnOWFMZGo1WkM5am9zYWRmOCtnTjRQa3ZnKytzbThBNG0wV2MvaGZyY3J5?= =?utf-8?B?RTdPc3M0YmY5NUJIZHpwSmp0RHFLRi9IRktpVEM4eG9ZRFpKaW9FOGl6S2JO?= =?utf-8?B?UVo0b0NkbGJ6TzFJKzIrUm5YUHBTWFpPUmhIY3FLMjA0VzdCY1czMy8vV2FO?= =?utf-8?B?REZleFV4a3F3TTRCN080LzFiRG54a1ViYnBZSzVlQXIrYXBITVBza21sMEZ3?= =?utf-8?B?YXkwbFBQRVFwSzRraVIwditCd2pVK1E3VzkwWGh1bVNnb2xzVlhtZnhneUVs?= =?utf-8?B?WXFhQWh3NU9ONFZnbnpIbDZiTzk3NlJzUjgwaVczeE5uZjFoV3cvTlJHQVlH?= =?utf-8?B?YlVkbzhLaU0zNFNMcUgxekh5eVo0VW5IMklFUFphZ2Z1VjBlb2FZQ2JhN3dz?= =?utf-8?B?UWxRVVFRZlkwTENpVWxIclMybExqZ1lJdElXREgrbFB5dmVhcXZwaEkzNFlB?= =?utf-8?B?TE5sektLUksxUE5nemJTRC8rMkpKalpIbW00NUVnOW9xUklVQmQrdzlBSkl4?= =?utf-8?B?STBZaGY3QUZVTzVNZ2F2dUZ6QzB1OEM0T0ltWDl4MGJKTEV4a3Z5QXoyNXRX?= =?utf-8?B?YXpZL1VINmxlSDVaVXZFMnN4K0tlL2Zya0RJTEJad0JqL0x5eFZQTGJoakZl?= =?utf-8?B?Um9IRWRsTzNieGtJQ1k1V2VVTTg3alB1amFkR1hlT3dPUTh3cFpBZW1IRVpl?= =?utf-8?B?bTFWLzVOOWdsOXVSWldWT2pjQU15Qi9uamxneC9qekRJdmlhbXQ2NU1qQkJ5?= =?utf-8?B?R3V1ZEZSdXJtMFlHTFNFdTdrNUl6TlE2ZndKbWpPbEVuUGIzTlAzTzRJTjhH?= =?utf-8?B?UHJoQXBlemtYR1RnN2VhdDU4STU5S2tUcG85bjE3cDhpOCtLaDBRSStPZ1VR?= =?utf-8?B?Y2ZjN3BtN2VrQkM4RU5jRTVBY1dVc29JQnhISnpqNFBYaGkzTWt0UmdlUFRM?= =?utf-8?B?RlhoLzVqVUtKbzgyTkJTdklEQ05VSVZ3SDdqazN4NnY1OUluUjJkd1EzeHcr?= =?utf-8?B?ZStkZFpFM21zTlJ4QXBCR2FNMmVackRGcmN1Z1V0K1YvQVFBNXppb1JOU0dJ?= =?utf-8?B?aUZYNkNQQlprcUM0YktWbmdOcXJmWHA3KzZMMlR1SmRMSXcwNkJFN2JLQyt0?= =?utf-8?B?R05FMFQ5cnl2cXRISXg5OHRVZEpCZStNekxZbEFQdjd1YmRKbUV0VVRmRW5r?= =?utf-8?B?d09nMnZhM2ZoMUpPdFV4eCtwakVHOXo2dEdFK2ZXdlExNGt5TjI2WkFqaFlC?= =?utf-8?B?MW5kdTQyUTlQckdpQ25yM056QWIwYldibkRjd0lWbGVEd1Q2aS9RY1JXb0tQ?= =?utf-8?B?RGVxODRheW1kZjhGQklkZEg1WEZRenNWRXZQYVh2YWU0a2gvSmIrMzRCTmwz?= =?utf-8?B?a2YzZndDMXBhNjhqTW9qTHQzYm96cUpMWmQ2OEtTYUNYWCs4TTR1Y09GdDh5?= =?utf-8?B?bzBVY0Y1TTlLUjkvamhwdnZTWC9vRDVLWktiQWJ3cjYvaWhsMm5PVHhpck10?= =?utf-8?B?SmhvczJHMUNvdWUwa3hnQzQzZVdCbzJZOGZKWmQ3amgxYm9mOUpjOWtGRzVn?= =?utf-8?Q?TzeIIxvZnRCwDf7bvh1tJP5+7?= Content-Type: text/plain; charset="utf-8" Content-ID: <0798B93F926B504BA627014C6D52BD6D@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: =?utf-8?B?d1VrbzNBd3VxSFJYUGpoTjdFcEllS0xHdjhOYnR2Ym82R29QekxXUzBGQ2xq?= =?utf-8?B?WURuL0lPcUcrSkpvZ0F3Q2Nqc2szUG9KT3FCQmR0TFlyQXRaWEg0TFVJR0R4?= =?utf-8?B?bCtucnM4Y3dVWklydE1uVzdYNGZZMzI3WC9hNC9wUEphZVRORkxWOXhLN04w?= =?utf-8?B?b1ZSTHNLdUpiOGdDSmcyUnNDdDlGK3grQm9OVnN2V0cwek1tTGNWSExlY3Zo?= =?utf-8?B?UHlaK1JzL3hQZWVuT3hxM09Xb1RHZ3luK1ZYQlBzWnBpbEcrTWljMGhHWlhK?= =?utf-8?B?ZFdCVm15TUo2dVlqZTRWNlFuS0JZVmwvbHZRMkdxTjN2RENKTno2T2E0TFFu?= =?utf-8?B?MCtPV2NGQm50ekY5VGoyNFZ6N1pQVjNEbjVkcHBpdkJSY1JSZzcvdXo2VkY2?= =?utf-8?B?ei9RdDFEUEZmSm1OTXhFV0JCQkpmblpXakUwS1B1VWdjZEtCNDZITVpkV1F6?= =?utf-8?B?TzRETkRndXVLd1dwaHVsRnhVVldCRTlVTGZvUU90QmZpU0dxd2IwTGJXN2Rh?= =?utf-8?B?UzlqbHBrS2c2WWFybkdQajBOdmNuZkdYbVphaitETDhYVXlkRXZPZlJkUUJW?= =?utf-8?B?NW1raG1kNGFZaTRibkp2ck1nQlkvcEY5YXdvTnVNMFlSWGwzQVltUkhGQy80?= =?utf-8?B?d0RjS29mNmxMT3EvV3crdS8rZ3MrYlAwc1lzMlhrVWlzYVpVa1dYQjcwdXhW?= =?utf-8?B?NUdLck5XYUYrZmJjS0dDbENaNHVUMFJEUUxtM2R2aXlvaUljYmR2QllMQVlp?= =?utf-8?B?RmtRWE90dHZUR3daMVVNb3V5T2dtdnZnRnVKTnkrd1dtSXcvWlBoR1NtaEF6?= =?utf-8?B?dVVJVXVQbjBIM201ZG1KWFVHWUlQYTNxdjNPekxTNGc3VXdHWlJGc1VXQndy?= =?utf-8?B?UVdFaGwrUUFQZUh2cGphM1kwR1BkL2ptQmY4YUlsTHh5dVllRSs4c1dINGcr?= =?utf-8?B?L3JZRngzUC9mZWl1T2I5ZGZDY2g1TWVZWkkraVNVOVJiQnRObFJVaXMreER2?= =?utf-8?B?TEU5K0lGRzR4eXI2TTRJa0xzT3U2NmEwZW5CYTRxUWRPME5nOWNRaFNzc01W?= =?utf-8?B?WW00aXZzbEE5MW9WUzMwQUhLQWZybVZEWEtnSkpmdTYvTG04Q0JPU0RsK3du?= =?utf-8?B?NEp5YmpBZmdlQ1JGa2JKeDlwTndobW5VbWpwMEoyTkM0MXovZWNUWGFFUHpU?= =?utf-8?B?Q1Y0RFRMK3RXTDJ2TFVUS0ozRUh6SGFIbDMrejJzY3UvblVDVWF1RkdxQjc2?= =?utf-8?Q?lTDmjl14hSHs8NH?= 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: 87500204-febb-4e88-2aae-08db7e52b06e X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jul 2023 18:56:21.5213 (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: KPmm7HEbuNtz69UQzpNKLYZfsRFv/kOM9qT4jUQ5PansAAb16oexvmUEUejoQ7PwAGw5nrgpKJU9FRwI8eKunw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR10MB7058 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-06_13,2023-07-06_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 adultscore=0 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307060168 X-Proofpoint-GUID: ophpMzEHXfMN0b11xxK5s-p5LjTe5n2B X-Proofpoint-ORIG-GUID: ophpMzEHXfMN0b11xxK5s-p5LjTe5n2B X-Spam-Status: No, score=-5.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,KAM_SHORT,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE 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: SGksIEtlZXMsDQoNCkkgaGF2ZSB1cGRhdGVkIG15IFYxIHBhdGNoIHdpdGggdGhlIGZvbGxvd2lu ZyBjaGFuZ2VzOg0KQS4gY2hhbmdlZCB0aGUgbmFtZSB0byAiY291bnRlZF9ieSINCkIuIGNoYW5n ZWQgdGhlIGFyZ3VtZW50IGZyb20gYSBzdHJpbmcgdG8gYW4gaWRlbnRpZmllcg0KQy4gdXBkYXRl ZCB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgdGVzdGluZyBjYXNlcyBhY2NvcmRpbmdseS4NCg0KQW5k IHRoZW4gdXNlZCB0aGlzIG5ldyBnY2MgdG8gdGVzdCBodHRwczovL2dpdGh1Yi5jb20va2Vlcy9r ZXJuZWwtdG9vbHMvYmxvYi90cnVuay9mb3J0aWZ5L2FycmF5LWJvdW5kcy5jICh3aXRoIHRoZSBm b2xsb3dpbmcgY2hhbmdlKQ0KW29wY0BxaW56aGFvLW9sOHUzLXg4NiBLZWVzXSQgITEwOTENCmRp ZmYgYXJyYXktYm91bmRzLmMgYXJyYXktYm91bmRzLmMub3JnDQozMmMzMg0KPCAjIGRlZmluZSBf X2NvdW50ZWRfYnkobWVtYmVyKQlfX2F0dHJpYnV0ZV9fKChjb3VudGVkX2J5IChtZW1iZXIpKSkN Ci0tLQ0KPiAjIGRlZmluZSBfX2NvdW50ZWRfYnkobWVtYmVyKQlfX2F0dHJpYnV0ZV9fKChfX2Vs ZW1lbnRfY291bnRfXygjbWVtYmVyKSkpDQozNGMzNA0KPCAjIGRlZmluZSBfX2NvdW50ZWRfYnko bWVtYmVyKSAgIF9fYXR0cmlidXRlX18oKGNvdW50ZWRfYnkgKG1lbWJlcikpKQ0KLS0tDQo+ICMg ZGVmaW5lIF9fY291bnRlZF9ieShtZW1iZXIpCS8qIF9fYXR0cmlidXRlX18oKF9fZWxlbWVudF9j b3VudF9fKCNtZW1iZXIpKSkgKi8NCg0KVGhlbiBJIGdvdCB0aGUgZm9sbG93aW5nIHJlc3VsdDoN CltvcGNAcWluemhhby1vbDh1My14ODYgS2Vlc10kIC4vYXJyYXktYm91bmRzIDI+JjEgfCBncmVw IC12IF4nIycNClRBUCB2ZXJzaW9uIDEzDQoxLi4xMg0Kb2sgMSBnbG9iYWwuZml4ZWRfc2l6ZV9z ZWVuX2J5X2Jkb3MNCm9rIDIgZ2xvYmFsLmZpeGVkX3NpemVfZW5mb3JjZWRfYnlfc2FuaXRpemVy DQpub3Qgb2sgMyBnbG9iYWwudW5rbm93bl9zaXplX3Vua25vd25fdG9fYmRvcw0Kbm90IG9rIDQg Z2xvYmFsLnVua25vd25fc2l6ZV9pZ25vcmVkX2J5X3Nhbml0aXplcg0Kb2sgNSBnbG9iYWwuYWxs b2Nfc2l6ZV9zZWVuX2J5X2Jkb3MNCm9rIDYgZ2xvYmFsLmFsbG9jX3NpemVfZW5mb3JjZWRfYnlf c2FuaXRpemVyDQpub3Qgb2sgNyBnbG9iYWwuZWxlbWVudF9jb3VudF9zZWVuX2J5X2Jkb3MNCm9r IDggZ2xvYmFsLmVsZW1lbnRfY291bnRfZW5mb3JjZWRfYnlfc2FuaXRpemVyDQpub3Qgb2sgOSBn bG9iYWwuYWxsb2Nfc2l6ZV93aXRoX3NtYWxsZXJfZWxlbWVudF9jb3VudF9zZWVuX2J5X2Jkb3MN Cm5vdCBvayAxMCBnbG9iYWwuYWxsb2Nfc2l6ZV93aXRoX3NtYWxsZXJfZWxlbWVudF9jb3VudF9l bmZvcmNlZF9ieV9zYW5pdGl6ZXINCm9rIDExIGdsb2JhbC5hbGxvY19zaXplX3dpdGhfYmlnZ2Vy X2VsZW1lbnRfY291bnRfc2Vlbl9ieV9iZG9zDQpvayAxMiBnbG9iYWwuYWxsb2Nfc2l6ZV93aXRo X2JpZ2dlcl9lbGVtZW50X2NvdW50X2VuZm9yY2VkX2J5X3Nhbml0aXplcg0KDQpUaGUgc2FtZSBh cyB5b3VyIHByZXZpb3VzIHJlc3VsdHMuIFRoZW4gSSB0b29rIGEgbG9vayBhdCBhbGwgdGhlIGZh aWxlZCB0ZXN0aW5nOiAzLCA0LCA3LCA5LCBhbmQgMTAuIEFuZCBzdHVkaWVkIHRoZSByZWFzb25z IGZvciBhbGwgb2YgdGhlbS4NCg0KIGluIGEgc3VtbWFyeSwgdGhlcmUgYXJlIHR3byBtYWpvciBp c3N1ZXM6DQoxLiAgVGhlIHJlYXNvbiBmb3IgdGhlIGZhaWxlZCB0ZXN0aW5nIDcgaXMgdGhlIHNh bWUgaXNzdWUgYXMgSSBvYnNlcnZlZCBpbiBodHRwczovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3No b3dfYnVnLmNnaT9pZD0xMDk1NTcNCldoaWNoIGlzIG5vdCBhIGJ1ZywgaXTigJlzIGFuIGV4cGVj dGVkIGJlaGF2aW9yLiANCg0KMi4gVGhlIGNvbW1vbiBpc3N1ZSBmb3IgIHRoZSBmYWlsZWQgdGVz dGluZyAzLCA0LCA5LCAxMCBpczoNCg0KZm9yIHRoZSBmb2xsb3dpbmcgYW5ub3RhdGVkIHN0cnVj dHVyZTogDQoNCj09PT0NCnN0cnVjdCBhbm5vdGF0ZWQgew0KICAgICAgICB1bnNpZ25lZCBsb25n IGZsYWdzOw0KICAgICAgICBzaXplX3QgZm9vOw0KICAgICAgICBpbnQgYXJyYXlbXSBfX2F0dHJp YnV0ZV9fKChjb3VudGVkX2J5IChmb28pKSk7DQp9Ow0KDQoNCnN0cnVjdCBhbm5vdGF0ZWQgKnA7 DQppbnQgaW5kZXggPSAxNjsNCg0KcCA9IG1hbGxvYyhzaXplb2YoKnApICsgaW5kZXggKiBzaXpl b2YoKnAtPmFycmF5KSk7ICAvLyBhbGxvY2F0ZWQgcmVhbCBzaXplIA0KDQpwLT5mb28gPSBpbmRl eCArIDI7ICAvLyBwLT5mb28gd2FzIHNldCBieSBhIGRpZmZlcmVudCB2YWx1ZSB0aGFuIHRoZSBy ZWFsIHNpemUgb2YgcC0+YXJyYXkgYXMgaW4gdGVzdCA5IGFuZCAxMA0Kb3INCnAtPmZvbyB3YXMg bm90IHNldCB0byBhbnkgdmFsdWUgYXMgaW4gdGVzdCAzIGFuZCA0DQoNCj09PT0NCg0KaS5lLCB0 aGUgdmFsdWUgb2YgcC0+Zm9vIGlzIE5PVCBzeW5jZWQgd2l0aCB0aGUgbnVtYmVyIG9mIGVsZW1l bnRzIGFsbG9jYXRlZCBmb3IgdGhlIGFycmF5IHAtPmFycmF5LiAgDQoNCkkgdGhpbmsgdGhhdCB0 aGlzIHNob3VsZCBiZSBjb25zaWRlcmVkIGFzIGFuIHVzZXIgZXJyb3IsIGFuZCB0aGUgZG9jdW1l bnRhdGlvbiBvZiB0aGUgYXR0cmlidXRlIHNob3VsZCBpbmNsdWRlDQp0aGlzIHJlcXVpcmVtZW50 LiAgKEluIHRoZSBMTFZN4oCZcyBSRkMsIHN1Y2ggcmVxdWlyZW1lbnQgd2FzIGluY2x1ZGVkIGlu IHRoZSBwcm9ncmFtaW5nIG1vZGVsOiANCmh0dHBzOi8vZGlzY291cnNlLmxsdm0ub3JnL3QvcmZj LWVuZm9yY2luZy1ib3VuZHMtc2FmZXR5LWluLWMtZmJvdW5kcy1zYWZldHkvNzA4NTQjbWFpbnRh aW5pbmctY29ycmVjdG5lc3Mtb2YtYm91bmRzLWFubm90YXRpb25zLTE4KQ0KDQpXZSBjYW4gYWRk IGEgbmV3IHdhcm5pbmcgb3B0aW9uIC1XY291bnRlZC1ieSB0byByZXBvcnQgc3VjaCB1c2VyIGVy cm9yIGlmIG5lZWRlZC4NCg0KV2hhdOKAmXMgeW91ciBvcGluaW9uIG9uIHRoaXM/DQoNCnRoYW5r cy4NCg0KUWluZw0KDQoNCj4gT24gTWF5IDI2LCAyMDIzLCBhdCA0OjQwIFBNLCBLZWVzIENvb2sg PGtlZXNjb29rQGNocm9taXVtLm9yZz4gd3JvdGU6DQo+IA0KPiBPbiBUaHUsIE1heSAyNSwgMjAy MyBhdCAwNDoxNDo0N1BNICswMDAwLCBRaW5nIFpoYW8gd3JvdGU6DQo+PiBHQ0Mgd2lsbCBwYXNz IHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW5mbyBmcm9tIHRoZSBhdHRhY2hlZCBhdHRyaWJ1dGUg dG8gYm90aCANCj4+IF9fYnVpbHRpbl9keW5hbWljX29iamVjdF9zaXplIGFuZCBib3VuZHMgc2Fu aXRpemVyIHRvIGNoZWNrIHRoZSBvdXQtb2YtYm91bmRzDQo+PiBvciBkeW5hbWljIG9iamVjdCBz aXplIGlzc3VlcyBkdXJpbmcgcnVudGltZSBmb3IgZmxleGlibGUgYXJyYXkgbWVtYmVycy4NCj4+ IA0KPj4gVGhpcyBuZXcgZmVhdHVyZSB3aWxsIHByb3ZpZGUgbmljZSBwcm90ZWN0aW9uIHRvIGZs ZXhpYmxlIGFycmF5IG1lbWJlcnMgKHdoaWNoDQo+PiBjdXJyZW50bHkgYXJlIGNvbXBsZXRlbHkg aWdub3JlZCBieSBib3RoIF9fYnVpbHRpbl9keW5hbWljX29iamVjdF9zaXplIGFuZA0KPj4gYm91 bmRzIHNhbml0aXplcnMpLg0KPiANCj4gVGVzdGluZyB3ZW50IHByZXR0eSB3ZWxsLCB0aG91Z2gg SSB0aGluayBJIGZvdW5kIHNvbWUgYmRvcyBpc3N1ZXM6DQo+IA0KPiAtIHNvbWUgdGhpbmdzIHRo YXQgYmRvcyBjYW4ndCBrbm93IHRoZSBzaXplIG9mLCBhbmQgY29ycmVjdGx5IHJldHVybmVkDQo+ ICBTSVpFX01BWCBpbiB0aGUgcGFzdCwgbm93IHRoaW5rcyBhcmUgMC1zaXplZC4NCj4gLSB3aGls ZSBiZG9zIGNvcnJlY3RseSBrbm93cyB0aGUgc2l6ZSBvZiBhbiBlbGVtZW50X2NvdW50LWFubm90 YXRlZA0KPiAgZmxleGlibGUgYXJyYXksIGl0IGRvZXNuJ3Qga25vdyB0aGUgc2l6ZSBvZiB0aGUg Y29udGFpbmluZyBvYmplY3QNCj4gIChpLmUuIGl0IHJldHVybnMgU0laRV9NQVgpLg0KPiANCj4g QWxzbywgSSB0aGluayBJIGZvdW5kIGEgcHJlY2VkZW5jZSBpc3N1ZToNCj4gDQo+IC0gaWYgYm90 aCBfX2FsbG9jX3NpemUgYW5kICdlbGVtZW50X2NvdW50JyBhcmUgaW4gdXNlLCB0aGUgX3NtYWxs ZXN0Xw0KPiAgb2YgdGhlIHR3byBpcyB3aGF0IEkgd291bGQgZXhwZWN0IHRvIGJlIGVuZm9yY2Vk IGJ5IHRoZSBzYW5pdGl6ZXINCj4gIGFuZCByZXBvcnRlZCBieSBfX2Jkb3MuIEFzIGlzLCBhbGxv Y19zaXplIGFwcGVhcnMgdG8gYmUgdXNlZCB3aGVuDQo+ICBpdCBpcyBhdmFpbGFibGUsIHJlZ2Fy ZGxlc3Mgb2Ygd2hhdCAnZWxlbWVudF9jb3VudCcgc2hvd3MuDQo+IA0KPiBJJ3ZlIHVwZGF0ZWQg bXkgdGVzdCBjYXNlcyB0byBzaG93IGl0IG1vcmUgY2xlYXJseSwgYnV0IGhlcmUgaXMgdGhlDQo+ IGJlZm9yZS9hZnRlcjoNCj4gDQo+IA0KPiBHQ0MgMTMgKGNvcnJlY3RseSBkb2VzIG5vdCBpbXBs ZW1lbnQgImVsZW1lbnRfY291bnQiKToNCj4gDQo+ICQgLi9hcnJheS1ib3VuZHMgMj4mMSB8IGdy ZXAgLXYgXicjJw0KPiBUQVAgdmVyc2lvbiAxMw0KPiAxLi4xMg0KPiBvayAxIGdsb2JhbC5maXhl ZF9zaXplX3NlZW5fYnlfYmRvcw0KPiBvayAyIGdsb2JhbC5maXhlZF9zaXplX2VuZm9yY2VkX2J5 X3Nhbml0aXplcg0KPiBvayAzIGdsb2JhbC51bmtub3duX3NpemVfdW5rbm93bl90b19iZG9zDQo+ IG9rIDQgZ2xvYmFsLnVua25vd25fc2l6ZV9pZ25vcmVkX2J5X3Nhbml0aXplcg0KPiBvayA1IGds b2JhbC5hbGxvY19zaXplX3NlZW5fYnlfYmRvcw0KPiBvayA2IGdsb2JhbC5hbGxvY19zaXplX2Vu Zm9yY2VkX2J5X3Nhbml0aXplcg0KPiBub3Qgb2sgNyBnbG9iYWwuZWxlbWVudF9jb3VudF9zZWVu X2J5X2Jkb3MNCj4gbm90IG9rIDggZ2xvYmFsLmVsZW1lbnRfY291bnRfZW5mb3JjZWRfYnlfc2Fu aXRpemVyDQo+IG5vdCBvayA5IGdsb2JhbC5hbGxvY19zaXplX3dpdGhfc21hbGxlcl9lbGVtZW50 X2NvdW50X3NlZW5fYnlfYmRvcw0KPiBub3Qgb2sgMTAgZ2xvYmFsLmFsbG9jX3NpemVfd2l0aF9z bWFsbGVyX2VsZW1lbnRfY291bnRfZW5mb3JjZWRfYnlfc2FuaXRpemVyDQo+IG9rIDExIGdsb2Jh bC5hbGxvY19zaXplX3dpdGhfYmlnZ2VyX2VsZW1lbnRfY291bnRfc2Vlbl9ieV9iZG9zDQo+IG9r IDEyIGdsb2JhbC5hbGxvY19zaXplX3dpdGhfYmlnZ2VyX2VsZW1lbnRfY291bnRfZW5mb3JjZWRf Ynlfc2FuaXRpemVyDQo+IA0KPiANCj4gVG9UIEdDQyArIHRoaXMgZWxlbWVudF9jb3VudCBzZXJp ZXM6DQo+IA0KPiAkIC4vYXJyYXktYm91bmRzIDI+JjEgfCBncmVwIC12IF4nIycNCj4gVEFQIHZl cnNpb24gMTMNCj4gMS4uMTINCj4gb2sgMSBnbG9iYWwuZml4ZWRfc2l6ZV9zZWVuX2J5X2Jkb3MN Cj4gb2sgMiBnbG9iYWwuZml4ZWRfc2l6ZV9lbmZvcmNlZF9ieV9zYW5pdGl6ZXINCj4gbm90IG9r IDMgZ2xvYmFsLnVua25vd25fc2l6ZV91bmtub3duX3RvX2Jkb3MNCj4gbm90IG9rIDQgZ2xvYmFs LnVua25vd25fc2l6ZV9pZ25vcmVkX2J5X3Nhbml0aXplcg0KPiBvayA1IGdsb2JhbC5hbGxvY19z aXplX3NlZW5fYnlfYmRvcw0KPiBvayA2IGdsb2JhbC5hbGxvY19zaXplX2VuZm9yY2VkX2J5X3Nh bml0aXplcg0KPiBub3Qgb2sgNyBnbG9iYWwuZWxlbWVudF9jb3VudF9zZWVuX2J5X2Jkb3MNCj4g b2sgOCBnbG9iYWwuZWxlbWVudF9jb3VudF9lbmZvcmNlZF9ieV9zYW5pdGl6ZXINCj4gbm90IG9r IDkgZ2xvYmFsLmFsbG9jX3NpemVfd2l0aF9zbWFsbGVyX2VsZW1lbnRfY291bnRfc2Vlbl9ieV9i ZG9zDQo+IG5vdCBvayAxMCBnbG9iYWwuYWxsb2Nfc2l6ZV93aXRoX3NtYWxsZXJfZWxlbWVudF9j b3VudF9lbmZvcmNlZF9ieV9zYW5pdGl6ZXINCj4gb2sgMTEgZ2xvYmFsLmFsbG9jX3NpemVfd2l0 aF9iaWdnZXJfZWxlbWVudF9jb3VudF9zZWVuX2J5X2Jkb3MNCj4gb2sgMTIgZ2xvYmFsLmFsbG9j X3NpemVfd2l0aF9iaWdnZXJfZWxlbWVudF9jb3VudF9lbmZvcmNlZF9ieV9zYW5pdGl6ZXINCj4g DQo+IA0KPiBUZXN0IHN1aXRlIGlzIGhlcmU6DQo+IGh0dHBzOi8vZ2l0aHViLmNvbS9rZWVzL2tl cm5lbC10b29scy9ibG9iL3RydW5rL2ZvcnRpZnkvYXJyYXktYm91bmRzLmMNCj4gDQo+IC0tIA0K PiBLZWVzIENvb2sNCg0K