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 0A9703858D20 for ; Tue, 1 Mar 2022 15:13:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 0A9703858D20 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 221ED0Ja004340; Tue, 1 Mar 2022 15:12:59 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3ehbk99grw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 01 Mar 2022 15:12:59 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 221F5bXp151450; Tue, 1 Mar 2022 15:12:58 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2103.outbound.protection.outlook.com [104.47.55.103]) by userp3020.oracle.com with ESMTP id 3efdnmw4q8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 01 Mar 2022 15:12:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DnQUV+9e1lnEzbLWOMJJNnXVpOKYH20+Oz1KUIBuq3qtDS9mLI2TZoUm/s9d44962Dfd2iHEGSsLvbPPf4+hO3zpn/31PWavF/z6NVgrno2BzY8zfjfXRELmfFDrKqzBavvahCsYcP6dIH5YTx4ltlpl6yNc5Hut8qSSnMAlfjBK1P2idL779ppanHhzDu2DO1ycOw5xD1vV+b3tOsRlyVmlC+xze3fk20CHj5GcRNGED/tPlU3Lf3eptjlifn2YMY15Nkybvo1LDiuMGLq6o3fqbgr/lU2JwYUQPDt3MiB1o9soms2yCsd4ulhYUS7iNglbPf3ot/fLfRHxLDNkVQ== 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=GceI+1sdWCMQa08Fk/esTm0wHseVtfUWq15eJToc/aw=; b=JJpSFwl8NCQiWb8e3qfUURAxjr693q8q4sxuAka0f/LYfvwR5Ue7AaTVynsBv7Rq2WzUU9jAteRIz4+NGs9hC3iMcQayLqm5WyMW1NDCmFbuJw8KtqMPn4yQQwheznXMGhChuuNyNClE+K2yDe2NSvCmiD5MDlStJUsBKIPe81GJkoBzp6dW0kJvuhA5qArFv7mB3uB+0Di0Lnu74+m2RHRI9n1+5rlYbIUqPy6H5tWiJT9EjlcuqFi/uZEJIfGnvorJUcOUa/mSXY72ZzF7+n7Br2XmiiDGVD4AlcQurMKrLFKSaGQfhJ9/ZswrSEi1AuFQU+IhnUpLZCQSriS6/w== 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 Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by CH0PR10MB5388.namprd10.prod.outlook.com (2603:10b6:610:ca::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.24; Tue, 1 Mar 2022 15:12:54 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::89d9:5ed:3ca4:e04f]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::89d9:5ed:3ca4:e04f%2]) with mapi id 15.20.5038.014; Tue, 1 Mar 2022 15:12:54 +0000 From: Qing Zhao To: Richard Biener CC: Jakub Jelinek , gcc-patches Paul A Clarke via Subject: [PATCH][V2][middle-end/102276]Don't emit switch-unreachable warnings for -ftrivial-auto-var-init (PR102276) Thread-Topic: [PATCH][V2][middle-end/102276]Don't emit switch-unreachable warnings for -ftrivial-auto-var-init (PR102276) Thread-Index: AQHYLX7TmSfMSpFuhkevjIjQQgNcjA== Date: Tue, 1 Mar 2022 15:12:54 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3608.120.23.2.7) x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a589e558-38a8-496d-0519-08d9fb95f5c5 x-ms-traffictypediagnostic: CH0PR10MB5388:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: C1JbetgZQ8bjP6PSeT0Q5fzmdz2zeuhQWeMv2FDYZOApAJpXLO6oDB0Ie7jtZCMYBE/3BRmGduTYqIuAAdiaIczvjfdY1hUeMFgDpvx5vRStqpRKKwjYiqGjO8jL6vcxE33E42+4Z/WgiOu7A4xnS1Eglu9Y6I2DhzF56Jmbcw7tBvyXfid5jZisdWbsTViB0ckoH7GynjhpWFe2qF1BKML99ZzjnAGggAO+v0Gk1anRIHlMPzu8RIepWq3t+SHHtJtbZmc1bgbbgaFiZQ0i1y9ioGZoTriNwdN70pxgJvleHt4OYHVGrnB0zBIPbhwwI+6EEyWkY0P/nRGNLb/P1Bauixf8bRhjzTSlv/S4mS56C5zJ0HjiwAUzCKSKC1shBGMQ+YF55VOIjMz7EIZLVt854J/v/nI8pAVPJ+1HtV4AaLvmKdnNiu/7UHJZGAZrchY0NhGt1nvQHyI3MagfqOljoIHj7fox7DnVqWLK6c0Ju0gV8+JcoGA/0yTSFzH4kNQv3s5hlzsWiTh5CJbqFBAEFDsQ0e4hIvFP69BqhSmJ5KnpmyR5uES7tr7mI/ZC7E6D91WH2uTHad9N3M8dyjG4TruVdz2SHJzdOp3zaMCxU31N5Lmp6yc7RbF0voj2KA9jqPMLJLfg9zPfR/XYaXrp4KlawzTuQIDy4nG0aFMXs5jMb1eFrRxLWKVhfRuDfLRCqmVtldyB6/SkyWIAbFbWfVxIteIkTQy9u8Hzh+LrLt0QokGXCwLJPeCJw/D81oso9tvbUUe24IfK0BRDsDMPCLuAjUYpP47exXVfV6vXUVEDhOgdE94JameJQG/Y71K8jV6Fhyyu0S5t0RkRuynBjBop6qnblYwH4/HbgN0= 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:(13230001)(366004)(6506007)(6486002)(8936002)(53546011)(36756003)(33656002)(71200400001)(83380400001)(508600001)(122000001)(54906003)(6916009)(44832011)(86362001)(6512007)(5660300002)(38070700005)(316002)(30864003)(66446008)(186003)(64756008)(66476007)(66946007)(66556008)(76116006)(8676002)(84970400001)(2906002)(91956017)(4326008)(2616005)(38100700002)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UWpoVkpMbWFtd0FmeEQzVzBBRmllb2xIMmFURGZBSXlRc1JHL2ZldGIyMlBt?= =?utf-8?B?VUJEMUpQU29VVFgzMW9Na0o3U1pvM2g5aldJRjFoSXNncHU1UUFIanh6b0tz?= =?utf-8?B?MlcxVWQxeHpuSytMcE9VWGdQYXlXNXBYWU1PSGg4VkJKaWs4YWVSdFZDMERl?= =?utf-8?B?aVJyeGdTVUxZK3FpUk1lM3NVYzZFRXZNSTE4OUVNVU1zbDhKekdaUGZaSkVF?= =?utf-8?B?YzA0S1dJZldrWFN5Mk1vYVdLUVhsSzZTVHBvSlN2b1lVdnhxZVY2eVRjZ29k?= =?utf-8?B?bVI0TktOdW1pMW1RUHN2TmhNVlhmaWk2OU1vMmtmU0tESGwrWDNJU3NIVi9P?= =?utf-8?B?TnRYTlp6NGdZYlRzUUZpU25uT2xyd1IxbDJIK3dpQVNFZE9STEZqTzF0OE43?= =?utf-8?B?eWY1VkM0V2ZpSzZ5b2FPS2tUWUVhY0hsOWJBTkRPcE1nb0xyTWV6c3lXYWln?= =?utf-8?B?T1paYnFBSmN6Sk44ZDdwMlRqMThFUyt5M2NTY3V4MVBOQWw0ZzBsOGYvTlNH?= =?utf-8?B?NnhrOW55V2t4MWdod2U5dEFJOHhPSjB0M1JjVHpTMktrR1BEczRQNzM4Y3h5?= =?utf-8?B?SzBRdjFjUHNjbG1yODhQak9KSXZkRi9uR0pqcWtLOU5XRWlZYjBLaFhSclJN?= =?utf-8?B?V2k3ZVVSY1k1cEIzYTl3ZmNja2JxNFNMby8yRWdjSW96N3NjSmRReWRiVSs4?= =?utf-8?B?YlZUYjJBcUNrc3hWNTBXRHo2MG83MXFaOUtadS9YYkMzTzgzUmFlemNMd2Zw?= =?utf-8?B?TkNMejZEbFpNM2hYcXRQdHh3RURzUDRsSlo1MURuUEU4N3RzcmpSWFNoWSt0?= =?utf-8?B?cDZBYmUrZzkvS2ZoT29NanFuUklDNTQwRjFQSmRzUTFGMFFYQ3RZVlgvZ3FR?= =?utf-8?B?MU1jbW1zTmgzbEpYRnI5TlpvdnJtUHh1SW9HYzUvanprRHNqODZsaFVPSERa?= =?utf-8?B?MDVXb1lNWm1PQkVYM3dGSnlyOWNVclMvRGlDdEpTOXVFVjVlNldZVzBBYW5s?= =?utf-8?B?OFU5YkFxT3FDM2xDOWh1WXhlTUNQcERiMkl4OW9GQVRtRXRhRDBWZVg0cDQx?= =?utf-8?B?NTRUZDhlWm1LQ0FXbmUzTGNHQlNWcHJqdWp3NndkWFFTQVl1NFRsTTNtdEJU?= =?utf-8?B?bWtJNzJaa2Y2dStyNk1keXJlY05od0xWUVdaUHM5d08vVFBPN01kN2RGRk93?= =?utf-8?B?b2x2cEZVVU9qOE9MdUplcUgvc00ya0tDZEZCY093Qm5KeDZENHF5WkRwNW83?= =?utf-8?B?SUJmVzFjcTY5WFpYVk5qeEFjZkJYbDRicEJ3OTZqbDFFaXJpdzA2ckhhdXVD?= =?utf-8?B?d0R4TmUrMit6OHU0NGNQTjFsRmQ5eHpDNERVY1NNZmtacjFlTHhuR1R5eW5q?= =?utf-8?B?QmxKNTcxckg4OXo3OE9PL3Y5dGhyeXl0UGRKN2ZXeklMN3MxbUtpT1dzTHBV?= =?utf-8?B?Z1llM0d2ZExyeWovQ0I3Y1ZzZVZsNFltVWs1OGNwNktwczJCazd2bExZNTRO?= =?utf-8?B?T28xaEhOMnIrVDB2VENBNFhVU01hOFNYcUtEZDA0S0VsWFRSVjZZZllocFUy?= =?utf-8?B?YmpGWGRmUEcwQjhRT28wamtaaTFaa0l5clZBaWZ3NFNLTU51MElnR1FacU9i?= =?utf-8?B?dldvaDYxckFlVGo3bzVYODZqTitFelFoYmR1eGJkbGM5N2l5WkdKSXpkRUx6?= =?utf-8?B?MUluMkcwY2F2T0VPRHJ5TklGVUhTTHl5bFpMN2ZVOTN2SVpiMHNGV3E3N3BE?= =?utf-8?B?TmNmUFM1NzQvdTFlNzhobTl3MHBiZVQ1Ri9ZSTRWbHN6dlNWVVlUUG1aVmFr?= =?utf-8?B?enUvMGM2anhKSFZ3ZjdNbE40MGNJWDBIcEY1S2NzbzcvZEgvREZQN2I0S1Zx?= =?utf-8?B?RGtOV3ZZTi9CZEN1Umwvd0dQdWp1bHVqdWVHVktBeWxwZll6VEMwRXp4ekFC?= =?utf-8?B?OUpRQVZnUVJUK3B3cXV0Tnp6S3dOUUlmY283VjRQY3czL2l6ZVNhaEppeDcx?= =?utf-8?B?QkdrNmV6aE1IbkN2NzVhSExjVm5Hd2ZoQmU2SjdPMyt3RkJPTnk2V3pSWS9Q?= =?utf-8?B?QjdBUlJFQmlMWCs2ZmtQeURJeko1T2V0R0l3SmhuNXNPM3hjcWhpMWRTMDZs?= =?utf-8?B?N1FSVWhoM1p2TElBOHU4T29Sc3ZNYy9POGd3ZGNrNW15WlE3cXJaSVFoU3Rm?= =?utf-8?B?M3A1YjdQelNvcmxGVDFqaXYxUVNsLzY4Mm1oTjJIUmc2SU8zK2xDZEFaWnps?= =?utf-8?B?NW0yeTZJRGlGbi9pRk4vTXBJVTNnPT0=?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 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: a589e558-38a8-496d-0519-08d9fb95f5c5 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2022 15:12:54.0257 (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: 6LeBrcMup6fOzIC7CuW4ZdyiCfZcrAOYM1RwzDLh2Gx5L+wibUtgwwytLiU1272ZS6yUy3gWhamTwASug51Iog== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5388 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10272 signatures=684655 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 bulkscore=0 adultscore=0 phishscore=0 spamscore=0 suspectscore=0 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2203010081 X-Proofpoint-GUID: alPCyC5xrHU3C1FXpiXBd9SmLlBknNdJ X-Proofpoint-ORIG-GUID: alPCyC5xrHU3C1FXpiXBd9SmLlBknNdJ X-Spam-Status: No, score=-11.5 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_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2022 15:13:03 -0000 SGksDQoNClRoaXMgaXMgdGhlIDJuZCB2ZXJzaW9uIG9mIHRoZSBwYXRjaCBiYXNlZCBvbiB0aGUg ZGlzY3Vzc2lvbiBvbiB0aGUgaW5pdGlhbCB2ZXJzaW9uLiANCg0KQ29tcGFyZWQgdG8gdGhlIHBy ZXZpb3VzIHZlcnNpb24sIHRoZSBtYWpvciBjaGFuZ2VzIGluIHRoaXMgdmVyc2lvbiBhcmU6DQoN CjEuICBNZXJnZWQgdHdvIHBhdGNoZXMgaW50byBvbmU7DQoyLiAgUmUtb3JnYW5pemUgdGhlIGNv ZGUgdG8gZW1pdCBib3RoIFdzd2l0Y2gtdW5yZWFjaGFibGUgYW5kIFd0cml2aWFsLWF1dG8tdmFy LWluaXQNCiAgICAgTWVzc2FnZXMgaW5zaWRlIGV4aXN0aW5nIOKAnHdhcm5fc3dpdGNoX3VucmVh Y2hhYmxlX3LigJ07DQozLiAgQXZvaWQgZW1pdHRpbmcgV3N3aXRjaC11bnJlYWNoYWJsZSBmb3Ig dGhlIGZvbGxvd2luZyAzIGNhc2VzOg0KDQoxKSBjYWxsIHRvIC5ERUZFUlJFRF9JTklUDQoyKSBj YWxsIHRvIF9fYnVpbHRpbl9jbGVhcl9wYWRkaW5nIGlmIHRoZSAybmQgYXJndW1lbnQgaXMgcHJl c2VudCBhbmQgbm9uLXplcm8NCjMpIGEgZ2ltcGxlIGFzc2lnbiBzdG9yZSByaWdodCBhZnRlciB0 aGUgLkRFRkVSUkVEX0lOSVQgY2FsbCB0aGF0IGhhcyB0aGUgTEhTDQogICBhcyBSSFMNCg0KDQpC b290c3RyYXBlZCBhbmQgcmVncmVzc2lvbiB0ZXN0ZWQgb24gYm90aCB4ODYgYW5kIGFhcmNoNjQu DQoNCk9rYXkgZm9yIGNvbW1pdHRpbmc/DQoNCnRoYW5rcy4NCg0KUWluZy4NCg0KPT09PT09PT09 PT09PT09PT09PT09PT09DQpGcm9tIGNhMDE5M2Y0OGM4YWUxMTcxOWFhOTMyZGIwNjViYjI0ZDRk NjQ5ZDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxDQpGcm9tOiBRaW5nIFpoYW8gPHFpbmcuemhh b0BvcmFjbGUuY29tPg0KRGF0ZTogTW9uLCAyOCBGZWIgMjAyMiAyMTo0NTo1NSArMDAwMA0KU3Vi amVjdDogW1BBVENIXSBEb24ndCBlbWl0IHN3aXRjaC11bnJlYWNoYWJsZSB3YXJuaW5ncyBmb3IN CiAtZnRyaXZpYWwtYXV0by12YXItaW5pdCAoUFIxMDIyNzYpIEF0IHRoZSBzYW1lIHRpbWUsIGFk ZGluZw0KIC1XdHJpdmlhbC1hdXRvLXZhci1pbml0IGFuZCB1cGRhdGUgZG9jdW1lbnRhdGlvbi4N Cg0KZm9yIHRoZSBmb2xsb3dpbmcgdGVzdGluZyBjYXNlOg0KMSBpbnQgZyhpbnQgKik7DQoyIGlu dCBmMSgpDQozIHsNCjQgICAgIHN3aXRjaCAoMCkgew0KNSAgICAgICAgIGludCB4Ow0KNiAgICAg ICAgIGRlZmF1bHQ6DQo3ICAgICAgICAgcmV0dXJuIGcoJngpOw0KOCAgICAgfQ0KOSB9DQpjb21w aWxpbmcgd2l0aCAtTyAtZnRyaXZpYWwtYXV0by12YXItaW5pdCBjYXVzZXMgc3B1cmlvdXMgd2Fy bmluZzoNCndhcm5pbmc6IHN0YXRlbWVudCB3aWxsIG5ldmVyIGJlIGV4ZWN1dGVkIFstV3N3aXRj aC11bnJlYWNoYWJsZV0NCjUgfCAgICAgICAgIGludCB4Ow0KICB8ICAgICAgICAgICAgIF4NClRo aXMgaXMgZHVlIHRvIHRoZSBjb21waWxlci1nZW5lcmF0ZWQgaW5pdGlhbGl6YXRpb24gYXQgdGhl IHBvaW50IG9mDQp0aGUgZGVjbGFyYXRpb24uDQoNCldlIGNvdWxkIGF2b2lkIHRoZSB3YXJuaW5n ICB0byBleGNsdWRlIHRoZSBmb2xsb3dpbmcgY2FzZXM6DQoNCndoZW4NCmZsYWdfYXV0b192YXJf aW5pdCA+IEFVVE9fSU5JVF9VTklOSVRJQUxJWkVEDQpBbmQNCjEpIGNhbGwgdG8gLkRFRkVSUkVE X0lOSVQNCjIpIGNhbGwgdG8gX19idWlsdGluX2NsZWFyX3BhZGRpbmcgaWYgdGhlIDJuZCBhcmd1 bWVudCBpcyBwcmVzZW50IGFuZCBub24temVybw0KMykgYSBnaW1wbGUgYXNzaWduIHN0b3JlIHJp Z2h0IGFmdGVyIHRoZSAuREVGRVJSRURfSU5JVCBjYWxsIHRoYXQgaGFzIHRoZSBMSFMNCiAgIGFz IFJIUw0KDQpIb3dldmVyLCB3ZSBzdGlsbCBuZWVkIHRvIHdhcm4gdXNlcnMgYWJvdXQgdGhlIGlu Y2FwYWJpbGl0eSBvZiB0aGUgb3B0aW9uDQotZnRyaXZpYWwtYXV0by12YXItaW5pdCBieSBhZGRp bmcgYSBuZXcgd2FybmluZyBvcHRpb24gLVd0cml2aWFsLWF1dG8tdmFyLWluaXQNCnRvIHJlcG9y dCBjYXNlcyB3aGVuIGl0IGNhbm5vdCBpbml0aWFsaXplIHRoZSBhdXRvIHZhcmlhYmxlLiBBdCB0 aGUgc2FtZQ0KdGltZSwgdXBkYXRlIGRvY3VtZW50YXRpb24gZm9yIC1mdHJpdmlhbC1hdXRvLXZh ci1pbml0IHRvIGNvbm5lY3QgaXQgd2l0aA0KdGhlIG5ldyB3YXJuaW5nIG9wdGlvbiAtV3RyaXZp YWwtYXV0by12YXItaW5pdCwgIGFuZCBhZGQgZG9jdW1lbnRhdGlvbg0KZm9yIC1XdHJpdmlhbC1h dXRvLXZhci1pbml0Lg0KDQpnY2MvQ2hhbmdlTG9nOg0KDQogICAgICAgICogY29tbW9uLm9wdCAo LVd0cml2aWFsLWF1dG8tdmFyLWluaXQpOiBOZXcgb3B0aW9uLg0KICAgICAgICAqIGRvYy9pbnZv a2UudGV4aSAoLVd0cml2aWFsLWF1dG8tdmFyLWluaXQpOiBEb2N1bWVudCBuZXcgb3B0aW9uLg0K ICAgICAgICAoLWZ0cml2aWFsLWF1dG8tdmFyLWluaXQpOiBVcGRhdGUgb3B0aW9uOw0KICAgICAg ICAqIGdpbXBsaWZ5LmNjIChlbWl0X3dhcm5fc3dpdGNoX3VucmVhY2hhYmxlKTogTmV3IGZ1bmN0 aW9uLg0KICAgICAgICAod2Fybl9zd2l0Y2hfdW5yZWFjaGFibGVfcik6IFJlbmFtZSB0byAuLi4N CiAgICAgICAgKHdhcm5fc3dpdGNoX3VucmVhY2hhYmxlX2FuZF9hdXRvX2luaXRfcik6IFRoaXMu DQogICAgICAgIChtYXliZV93YXJuX3N3aXRjaF91bnJlYWNoYWJsZSk6IFJlbmFtZSB0byAuLi4N CiAgICAgICAgKG1heWJlX3dhcm5fc3dpdGNoX3VucmVhY2hhYmxlX2FuZF9hdXRvX2luaXQpOiBU aGlzLg0KICAgICAgICAoZ2ltcGxpZnlfc3dpdGNoX2V4cHIpOiBVcGRhdGUgY2FsbHMgdG8gcmVu YW1lZCBmdW5jdGlvbi4NCg0KZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQoNCiAgICAgICAgKiBn Y2MuZGcvYXV0by1pbml0LXByMTAyMjc2LTEuYzogTmV3IHRlc3QuDQogICAgICAgICogZ2NjLmRn L2F1dG8taW5pdC1wcjEwMjI3Ni0yLmM6IE5ldyB0ZXN0Lg0KICAgICAgICAqIGdjYy5kZy9hdXRv LWluaXQtcHIxMDIyNzYtMy5jOiBOZXcgdGVzdC4NCiAgICAgICAgKiBnY2MuZGcvYXV0by1pbml0 LXByMTAyMjc2LTQuYzogTmV3IHRlc3QuDQotLS0NCiBnY2MvY29tbW9uLm9wdCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICA0ICsNCiBnY2MvZG9jL2ludm9rZS50ZXhpICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDE0ICsrLQ0KIGdjYy9naW1wbGlmeS5jYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAxMTEgKysrKysrKysrKysrKysrLS0tLS0NCiBnY2MvdGVzdHN1aXRl L2djYy5kZy9hdXRvLWluaXQtcHIxMDIyNzYtMS5jIHwgIDM4ICsrKysrKysNCiBnY2MvdGVzdHN1 aXRlL2djYy5kZy9hdXRvLWluaXQtcHIxMDIyNzYtMi5jIHwgIDM4ICsrKysrKysNCiBnY2MvdGVz dHN1aXRlL2djYy5kZy9hdXRvLWluaXQtcHIxMDIyNzYtMy5jIHwgIDQwICsrKysrKysNCiBnY2Mv dGVzdHN1aXRlL2djYy5kZy9hdXRvLWluaXQtcHIxMDIyNzYtNC5jIHwgIDQwICsrKysrKysNCiA3 IGZpbGVzIGNoYW5nZWQsIDI1OSBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMoLSkNCiBjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYXV0by1pbml0LXByMTAyMjc2LTEu Yw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy5kZy9hdXRvLWluaXQtcHIx MDIyNzYtMi5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2F1dG8t aW5pdC1wcjEwMjI3Ni0zLmMNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvYXV0by1pbml0LXByMTAyMjc2LTQuYw0KDQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbW1vbi5vcHQg Yi9nY2MvY29tbW9uLm9wdA0KaW5kZXggYzIxZTUyNzNhZTMuLjhiNjUxM2RlNDdjIDEwMDY0NA0K LS0tIGEvZ2NjL2NvbW1vbi5vcHQNCisrKyBiL2djYy9jb21tb24ub3B0DQpAQCAtODAxLDYgKzgw MSwxMCBAQCBXdHJhbXBvbGluZXMNCiBDb21tb24gVmFyKHdhcm5fdHJhbXBvbGluZXMpIFdhcm5p bmcNCiBXYXJuIHdoZW5ldmVyIGEgdHJhbXBvbGluZSBpcyBnZW5lcmF0ZWQuDQogDQorV3RyaXZp YWwtYXV0by12YXItaW5pdA0KK0NvbW1vbiBWYXIod2Fybl90cml2aWFsX2F1dG9fdmFyX2luaXQp IFdhcm5pbmcgSW5pdCgwKQ0KK1dhcm4gYWJvdXQgY2FzZXMgd2hlcmUgLWZ0cml2aWFsLWF1dG8t dmFyLWluaXQgY2Fubm90IGluaXRpYWxpemUgYW4gYXV0byB2YXJpYWJsZS4NCisNCiBXdHlwZS1s aW1pdHMNCiBDb21tb24gVmFyKHdhcm5fdHlwZV9saW1pdHMpIFdhcm5pbmcgRW5hYmxlZEJ5KFdl eHRyYSkNCiBXYXJuIGlmIGEgY29tcGFyaXNvbiBpcyBhbHdheXMgdHJ1ZSBvciBhbHdheXMgZmFs c2UgZHVlIHRvIHRoZSBsaW1pdGVkIHJhbmdlIG9mIHRoZSBkYXRhIHR5cGUuDQpkaWZmIC0tZ2l0 IGEvZ2NjL2RvYy9pbnZva2UudGV4aSBiL2djYy9kb2MvaW52b2tlLnRleGkNCmluZGV4IGVjMjkx YzA2NTQyLi42M2EzYzViN2M3ZSAxMDA2NDQNCi0tLSBhL2djYy9kb2MvaW52b2tlLnRleGkNCisr KyBiL2djYy9kb2MvaW52b2tlLnRleGkNCkBAIC0zOTksNyArMzk5LDcgQEAgT2JqZWN0aXZlLUMg YW5kIE9iamVjdGl2ZS1DKysgRGlhbGVjdHN9Lg0KIC1Xc3dpdGNoICAtV25vLXN3aXRjaC1ib29s ICAtV3N3aXRjaC1kZWZhdWx0ICAtV3N3aXRjaC1lbnVtIEBnb2wNCiAtV25vLXN3aXRjaC1vdXRz aWRlLXJhbmdlICAtV25vLXN3aXRjaC11bnJlYWNoYWJsZSAgLVdzeW5jLW5hbmQgQGdvbA0KIC1X c3lzdGVtLWhlYWRlcnMgIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgIC1XdHJhbXBvbGluZXMgIC1X dHJpZ3JhcGhzIEBnb2wNCi0tV3RzYW4gLVd0eXBlLWxpbWl0cyAgLVd1bmRlZiBAZ29sDQorLVd0 cml2aWFsLWF1dG8tdmFyLWluaXQgLVd0c2FuIC1XdHlwZS1saW1pdHMgIC1XdW5kZWYgQGdvbA0K IC1XdW5pbml0aWFsaXplZCAgLVd1bmtub3duLXByYWdtYXMgQGdvbA0KIC1XdW5zdWZmaXhlZC1m bG9hdC1jb25zdGFudHMgIC1XdW51c2VkIEBnb2wNCiAtV3VudXNlZC1idXQtc2V0LXBhcmFtZXRl ciAgLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZSBAZ29sDQpAQCAtNjk1Myw2ICs2OTUzLDE0IEBA IFRoaXMgd2FybmluZyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIEMgYW5kIEMrKyBwcm9ncmFt cy4NCiBXYXJuIHdoZW4gQGNvZGV7X19zeW5jX2ZldGNoX2FuZF9uYW5kfSBhbmQgQGNvZGV7X19z eW5jX25hbmRfYW5kX2ZldGNofQ0KIGJ1aWx0LWluIGZ1bmN0aW9ucyBhcmUgdXNlZC4gIFRoZXNl IGZ1bmN0aW9ucyBjaGFuZ2VkIHNlbWFudGljcyBpbiBHQ0MgNC40Lg0KIA0KK0BpdGVtIC1XdHJp dmlhbC1hdXRvLXZhci1pbml0DQorQG9waW5kZXggV3RyaXZpYWwtYXV0by12YXItaW5pdA0KK0Bv cGluZGV4IFduby10cml2aWFsLWF1dG8tdmFyLWluaXQNCitXYXJuIHdoZW4gQGNvZGV7LWZ0cml2 aWFsLWF1dG8tdmFyLWluaXR9IGNhbm5vdCBpbml0aWFsaXplIHRoZSBhdXRvbWF0aWMNCit2YXJp YWJsZS4gIEEgY29tbW9uIHNpdHVhdGlvbiBpcyBhbiBhdXRvbWF0aWMgdmFyaWFibGUgdGhhdCBp cyBkZWNsYXJlZA0KK2JldHdlZW4gdGhlIGNvbnRyb2xsaW5nIGV4cHJlc3Npb24gYW5kIHRoZSBm aXJzdCBjYXNlIGxhYmVsIG9mIGEgQGNvZGV7c3dpdGNofQ0KK3N0YXRlbWVudC4NCisNCiBAaXRl bSAtV3VudXNlZC1idXQtc2V0LXBhcmFtZXRlcg0KIEBvcGluZGV4IFd1bnVzZWQtYnV0LXNldC1w YXJhbWV0ZXINCiBAb3BpbmRleCBXbm8tdW51c2VkLWJ1dC1zZXQtcGFyYW1ldGVyDQpAQCAtMTIz MTQsNiArMTIzMjIsMTAgQEAgaW5pdGlhbGl6ZXIgYXMgdW5pbml0aWFsaXplZCwgQG9wdGlvbnst V3VuaW5pdGlhbGl6ZWR9IGFuZA0KIHdhcm5pbmcgbWVzc2FnZXMgb24gc3VjaCBhdXRvbWF0aWMg dmFyaWFibGVzLg0KIFdpdGggdGhpcyBvcHRpb24sIEdDQyB3aWxsIGFsc28gaW5pdGlhbGl6ZSBh bnkgcGFkZGluZyBvZiBhdXRvbWF0aWMgdmFyaWFibGVzDQogdGhhdCBoYXZlIHN0cnVjdHVyZSBv ciB1bmlvbiB0eXBlcyB0byB6ZXJvZXMuDQorSG93ZXZlciwgdGhlIGN1cnJlbnQgaW1wbGVtZW50 YXRpb24gY2Fubm90IGluaXRpYWxpemUgYXV0b21hdGljIHZhcmlhYmxlcyB0aGF0DQorYXJlIGRl Y2xhcmVkIGJldHdlZW4gdGhlIGNvbnRyb2xsaW5nIGV4cHJlc3Npb24gYW5kIHRoZSBmaXJzdCBj YXNlIG9mIGENCitAY29kZXtzd2l0Y2h9IHN0YXRlbWVudC4gIFVzaW5nIEBvcHRpb257LVd0cml2 aWFsLWF1dG8tdmFyLWluaXR9IHRvIHJlcG9ydCBhbGwNCitzdWNoIGNhc2VzLg0KIA0KIFRoZSB0 aHJlZSB2YWx1ZXMgb2YgQHZhcntjaG9pY2V9IGFyZToNCiANCmRpZmYgLS1naXQgYS9nY2MvZ2lt cGxpZnkuY2MgYi9nY2MvZ2ltcGxpZnkuY2MNCmluZGV4IGY1NzBkYWEwMTVhLi4yMzY0ZDJlNTE4 MiAxMDA2NDQNCi0tLSBhL2djYy9naW1wbGlmeS5jYw0KKysrIGIvZ2NjL2dpbXBsaWZ5LmNjDQpA QCAtMjAyOSwxMyArMjAyOSw1NSBAQCBnaW1wbGlmeV9zdGF0ZW1lbnRfbGlzdCAodHJlZSAqZXhw cl9wLCBnaW1wbGVfc2VxICpwcmVfcCkNCiAgIHJldHVybiBHU19BTExfRE9ORTsNCiB9DQogDQor DQorLyogRW1pdCB3YXJuaW5nIGZvciB0aGUgdW5yZWFjaGFibGUgc3RhdG1lbnQgU1RNVCBpZiBu ZWVkZWQuDQorICAgUmV0dXJuIHRoZSBnaW1wbGUgaXRzZWxmIHdoZW4gdGhlIHdhcm5pbmcgaXMg ZW1pdHRlZCwgb3RoZXJ3aXNlDQorICAgcmV0dXJuIE5VTEwuICAqLw0KK3N0YXRpYyBnaW1wbGUg Kg0KK2VtaXRfd2Fybl9zd2l0Y2hfdW5yZWFjaGFibGUgKGdpbXBsZSAqc3RtdCkNCit7DQorICBp ZiAoZ2ltcGxlX2NvZGUgKHN0bXQpID09IEdJTVBMRV9HT1RPDQorICAgICAgJiYgVFJFRV9DT0RF IChnaW1wbGVfZ290b19kZXN0IChzdG10KSkgPT0gTEFCRUxfREVDTA0KKyAgICAgICYmIERFQ0xf QVJUSUZJQ0lBTCAoZ2ltcGxlX2dvdG9fZGVzdCAoc3RtdCkpKQ0KKyAgLyogRG9uJ3Qgd2FybiBm b3IgY29tcGlsZXItZ2VuZXJhdGVkIGdvdG9zLiAgVGhlc2Ugb2NjdXINCisgICAgIGluIER1ZmYn cyBkZXZpY2VzLCBmb3IgZXhhbXBsZS4gICovDQorICAgIHJldHVybiBOVUxMOw0KKyAgZWxzZSBp ZiAoKGZsYWdfYXV0b192YXJfaW5pdCA+IEFVVE9fSU5JVF9VTklOSVRJQUxJWkVEKQ0KKwkgICAm JiAoKGdpbXBsZV9jYWxsX2ludGVybmFsX3AgKHN0bXQsIElGTl9ERUZFUlJFRF9JTklUKSkNCisJ CXx8IChnaW1wbGVfY2FsbF9idWlsdGluX3AgKHN0bXQsIEJVSUxUX0lOX0NMRUFSX1BBRERJTkcp DQorCQkgICAgJiYgKGJvb2wpIFRSRUVfSU5UX0NTVF9MT1cgKGdpbXBsZV9jYWxsX2FyZyAoc3Rt dCwgMSkpKQ0KKwkJfHwgKGlzX2dpbXBsZV9hc3NpZ24gKHN0bXQpDQorCQkgICAgJiYgZ2ltcGxl X2Fzc2lnbl9zaW5nbGVfcCAoc3RtdCkNCisJCSAgICAmJiAoVFJFRV9DT0RFIChnaW1wbGVfYXNz aWduX3JoczEgKHN0bXQpKSA9PSBTU0FfTkFNRSkNCisJCSAgICAmJiBnaW1wbGVfY2FsbF9pbnRl cm5hbF9wICgNCisJCQkgU1NBX05BTUVfREVGX1NUTVQgKGdpbXBsZV9hc3NpZ25fcmhzMSAoc3Rt dCkpLA0KKwkJCSBJRk5fREVGRVJSRURfSU5JVCkpKSkNCisgIC8qIERvbid0IHdhcm4gZm9yIGNv bXBpbGVyLWdlbmVyYXRlZCBpbml0aWFsaXphdGlvbnMgZm9yDQorICAgICAtZnRyaXZpYWwtYXV0 by12YXItaW5pdC4NCisgICAgIFRoZXJlIGFyZSAzIGNhc2VzOg0KKwljYXNlIDE6IGEgY2FsbCB0 byAuREVGRVJSRURfSU5JVDsNCisJY2FzZSAyOiBhIGNhbGwgdG8gX19idWlsdGluX2NsZWFyX3Bh ZGRpbmcgd2l0aCB0aGUgMm5kIGFyZ3VtZW50IGlzDQorCQlwcmVzZW50IGFuZCBub24temVybzsN CisJY2FzZSAzOiBhIGdpbXBsZSBhc3NpZ24gc3RvcmUgcmlnaHQgYWZ0ZXIgdGhlIGNhbGwgdG8g LkRFRkVSUkVEX0lOSVQNCisJCXRoYXQgaGFzIHRoZSBMSFMgb2YgLkRFRkVSUkVEX0lOSVQgYXMg dGhlIFJIUyBhcyBmb2xsb3dpbmc6DQorCQkgIF8xID0gLkRFRkVSUkVEX0lOSVQgKDQsIDIsICYi aTEiWzBdKTsNCisJCSAgaTEgPSBfMS4gICovDQorICAgIHJldHVybiBOVUxMOw0KKyAgZWxzZQ0K KyAgICB3YXJuaW5nX2F0IChnaW1wbGVfbG9jYXRpb24gKHN0bXQpLCBPUFRfV3N3aXRjaF91bnJl YWNoYWJsZSwNCisJCSJzdGF0ZW1lbnQgd2lsbCBuZXZlciBiZSBleGVjdXRlZCIpOw0KKyAgcmV0 dXJuIHN0bXQ7DQorfQ0KKw0KIC8qIENhbGxiYWNrIGZvciB3YWxrX2dpbXBsZV9zZXEuICAqLw0K IA0KIHN0YXRpYyB0cmVlDQotd2Fybl9zd2l0Y2hfdW5yZWFjaGFibGVfciAoZ2ltcGxlX3N0bXRf aXRlcmF0b3IgKmdzaV9wLCBib29sICpoYW5kbGVkX29wc19wLA0KLQkJCSAgIHN0cnVjdCB3YWxr X3N0bXRfaW5mbyAqd2kpDQord2Fybl9zd2l0Y2hfdW5yZWFjaGFibGVfYW5kX2F1dG9faW5pdF9y IChnaW1wbGVfc3RtdF9pdGVyYXRvciAqZ3NpX3AsDQorCQkJCQkgYm9vbCAqaGFuZGxlZF9vcHNf cCwNCisJCQkJCSBzdHJ1Y3Qgd2Fsa19zdG10X2luZm8gKndpKQ0KIHsNCiAgIGdpbXBsZSAqc3Rt dCA9IGdzaV9zdG10ICgqZ3NpX3ApOw0KKyAgYm9vbCB1bnJlYWNoYWJsZV9pc3N1ZWQgPSB3aS0+ aW5mbyAhPSBOVUxMOw0KIA0KICAgKmhhbmRsZWRfb3BzX3AgPSB0cnVlOw0KICAgc3dpdGNoIChn aW1wbGVfY29kZSAoc3RtdCkpDQpAQCAtMjA0Niw4ICsyMDg4LDEyIEBAIHdhcm5fc3dpdGNoX3Vu cmVhY2hhYmxlX3IgKGdpbXBsZV9zdG10X2l0ZXJhdG9yICpnc2lfcCwgYm9vbCAqaGFuZGxlZF9v cHNfcCwNCiAJIHdvcnNlIGxvY2F0aW9uIGluZm8uICAqLw0KICAgICAgIGlmIChnaW1wbGVfdHJ5 X2V2YWwgKHN0bXQpID09IE5VTEwpDQogCXsNCi0JICB3aS0+aW5mbyA9IHN0bXQ7DQotCSAgcmV0 dXJuIGludGVnZXJfemVyb19ub2RlOw0KKwkgIGlmICh3YXJuX3N3aXRjaF91bnJlYWNoYWJsZSAm JiAhdW5yZWFjaGFibGVfaXNzdWVkKQ0KKwkgICAgd2ktPmluZm8gPSBlbWl0X3dhcm5fc3dpdGNo X3VucmVhY2hhYmxlIChzdG10KTsNCisNCisJICAvKiBTdG9wIHdoZW4gYXV0byB2YXIgaW5pdCB3 YXJuaW5nIGlzIG5vdCBvbi4gICovDQorCSAgaWYgKCF3YXJuX3RyaXZpYWxfYXV0b192YXJfaW5p dCkNCisJICAgIHJldHVybiBpbnRlZ2VyX3plcm9fbm9kZTsNCiAJfQ0KICAgICAgIC8qIEZhbGwg dGhyb3VnaC4gICovDQogICAgIGNhc2UgR0lNUExFX0JJTkQ6DQpAQCAtMjA2NCwyOCArMjExMCw1 NSBAQCB3YXJuX3N3aXRjaF91bnJlYWNoYWJsZV9yIChnaW1wbGVfc3RtdF9pdGVyYXRvciAqZ3Np X3AsIGJvb2wgKmhhbmRsZWRfb3BzX3AsDQogCSB0aGVyZSB3aWxsIGJlIG5vbi1kZWJ1ZyBzdG10 cyB0b28sIGFuZCB3ZSdsbCBjYXRjaCB0aG9zZS4gICovDQogICAgICAgYnJlYWs7DQogDQorICAg IGNhc2UgR0lNUExFX0xBQkVMOg0KKyAgICAgIC8qIFN0b3AgdGlsbCB0aGUgZmlyc3QgTGFiZWwu ICAqLw0KKyAgICAgIHJldHVybiBpbnRlZ2VyX3plcm9fbm9kZTsNCiAgICAgY2FzZSBHSU1QTEVf Q0FMTDoNCiAgICAgICBpZiAoZ2ltcGxlX2NhbGxfaW50ZXJuYWxfcCAoc3RtdCwgSUZOX0FTQU5f TUFSSykpDQogCXsNCiAJICAqaGFuZGxlZF9vcHNfcCA9IGZhbHNlOw0KIAkgIGJyZWFrOw0KIAl9 DQorICAgICAgaWYgKHdhcm5fdHJpdmlhbF9hdXRvX3Zhcl9pbml0DQorCSAgJiYgZmxhZ19hdXRv X3Zhcl9pbml0ID4gQVVUT19JTklUX1VOSU5JVElBTElaRUQNCisJICAmJiBnaW1wbGVfY2FsbF9p bnRlcm5hbF9wIChzdG10LCBJRk5fREVGRVJSRURfSU5JVCkpDQorCXsNCisJICAvKiBHZXQgdGhl IHZhcmlhYmxlIG5hbWUgZnJvbSB0aGUgM3JkIGFyZ3VtZW50IG9mIGNhbGwuICAqLw0KKwkgIHRy ZWUgdmFyX25hbWUgPSBnaW1wbGVfY2FsbF9hcmcgKHN0bXQsIDIpOw0KKwkgIHZhcl9uYW1lID0g VFJFRV9PUEVSQU5EIChUUkVFX09QRVJBTkQgKHZhcl9uYW1lLCAwKSwgMCk7DQorCSAgY29uc3Qg Y2hhciAqdmFyX25hbWVfc3RyID0gVFJFRV9TVFJJTkdfUE9JTlRFUiAodmFyX25hbWUpOw0KKw0K KwkgIHdhcm5pbmdfYXQgKGdpbXBsZV9sb2NhdGlvbiAoc3RtdCksIE9QVF9XdHJpdmlhbF9hdXRv X3Zhcl9pbml0LA0KKwkJICAgICAgIiVxcyBjYW5ub3QgYmUgaW5pdGlhbGl6ZWQgd2l0aCINCisJ CSAgICAgICIlPC1mdHJpdmlhbC1hdXRvLXZhcl9pbml0JT4iLA0KKwkJICAgICAgdmFyX25hbWVf c3RyKTsNCisJICBicmVhazsNCisgICAgICAgfQ0KKw0KICAgICAgIC8qIEZhbGwgdGhyb3VnaC4g ICovDQogICAgIGRlZmF1bHQ6DQotICAgICAgLyogU2F2ZSB0aGUgZmlyc3QgInJlYWwiIHN0YXRl bWVudCAobm90IGEgZGVjbC9sZXhpY2FsIHNjb3BlLy4uLikuICAqLw0KLSAgICAgIHdpLT5pbmZv ID0gc3RtdDsNCi0gICAgICByZXR1cm4gaW50ZWdlcl96ZXJvX25vZGU7DQorICAgICAgLyogY2hl Y2sgdGhlIGZpcnN0ICJyZWFsIiBzdGF0ZW1lbnQgKG5vdCBhIGRlY2wvbGV4aWNhbCBzY29wZS8u Li4pLCBpc3N1ZQ0KKwkgd2FybmluZyBpZiBuZWVkZWQuICAqLw0KKyAgICAgIGlmICh3YXJuX3N3 aXRjaF91bnJlYWNoYWJsZSAmJiAhdW5yZWFjaGFibGVfaXNzdWVkKQ0KKwl3aS0+aW5mbyA9IGVt aXRfd2Fybl9zd2l0Y2hfdW5yZWFjaGFibGUgKHN0bXQpOw0KKyAgICAgIC8qIFN0b3Agd2hlbiBh dXRvIHZhciBpbml0IHdhcm5pbmcgaXMgbm90IG9uLiAgKi8NCisgICAgICBpZiAoIXdhcm5fdHJp dmlhbF9hdXRvX3Zhcl9pbml0KQ0KKwlyZXR1cm4gaW50ZWdlcl96ZXJvX25vZGU7DQorICAgICAg YnJlYWs7DQogICAgIH0NCiAgIHJldHVybiBOVUxMX1RSRUU7DQogfQ0KIA0KKw0KIC8qIFBvc3Np Ymx5IHdhcm4gYWJvdXQgdW5yZWFjaGFibGUgc3RhdGVtZW50cyBiZXR3ZWVuIHN3aXRjaCdzIGNv bnRyb2xsaW5nDQotICAgZXhwcmVzc2lvbiBhbmQgdGhlIGZpcnN0IGNhc2UuICBTRVEgaXMgdGhl IGJvZHkgb2YgYSBzd2l0Y2ggZXhwcmVzc2lvbi4gICovDQorICAgZXhwcmVzc2lvbiBhbmQgdGhl IGZpcnN0IGNhc2UuICBBbHNvIHdhcm4gYWJvdXQgLWZ0cml2aWFsLWF1dG8tdmFyLWluaXQNCisg ICBjYW5ub3QgaW5pdGlhbGl6ZSB0aGUgYXV0byB2YXJpYWJsZSB1bmRlciBzdWNoIHNpdHVhdGlv bi4NCisgICBTRVEgaXMgdGhlIGJvZHkgb2YgYSBzd2l0Y2ggZXhwcmVzc2lvbi4gICovDQogDQog c3RhdGljIHZvaWQNCi1tYXliZV93YXJuX3N3aXRjaF91bnJlYWNoYWJsZSAoZ2ltcGxlX3NlcSBz ZXEpDQorbWF5YmVfd2Fybl9zd2l0Y2hfdW5yZWFjaGFibGVfYW5kX2F1dG9faW5pdCAoZ2ltcGxl X3NlcSBzZXEpDQogew0KLSAgaWYgKCF3YXJuX3N3aXRjaF91bnJlYWNoYWJsZQ0KKyAgaWYgKCgh d2Fybl9zd2l0Y2hfdW5yZWFjaGFibGUgJiYgIXdhcm5fdHJpdmlhbF9hdXRvX3Zhcl9pbml0KQ0K ICAgICAgIC8qIFRoaXMgd2FybmluZyBkb2Vzbid0IHBsYXkgd2VsbCB3aXRoIEZvcnRyYW4gd2hl biBvcHRpbWl6YXRpb25zDQogCSBhcmUgb24uICAqLw0KICAgICAgIHx8IGxhbmdfR05VX0ZvcnRy YW4gKCkNCkBAIC0yMDkzLDIxICsyMTY2LDkgQEAgbWF5YmVfd2Fybl9zd2l0Y2hfdW5yZWFjaGFi bGUgKGdpbXBsZV9zZXEgc2VxKQ0KICAgICByZXR1cm47DQogDQogICBzdHJ1Y3Qgd2Fsa19zdG10 X2luZm8gd2k7DQotICBtZW1zZXQgKCZ3aSwgMCwgc2l6ZW9mICh3aSkpOw0KLSAgd2Fsa19naW1w bGVfc2VxIChzZXEsIHdhcm5fc3dpdGNoX3VucmVhY2hhYmxlX3IsIE5VTEwsICZ3aSk7DQotICBn aW1wbGUgKnN0bXQgPSAoZ2ltcGxlICopIHdpLmluZm87DQogDQotICBpZiAoc3RtdCAmJiBnaW1w bGVfY29kZSAoc3RtdCkgIT0gR0lNUExFX0xBQkVMKQ0KLSAgICB7DQotICAgICAgaWYgKGdpbXBs ZV9jb2RlIChzdG10KSA9PSBHSU1QTEVfR09UTw0KLQkgICYmIFRSRUVfQ09ERSAoZ2ltcGxlX2dv dG9fZGVzdCAoc3RtdCkpID09IExBQkVMX0RFQ0wNCi0JICAmJiBERUNMX0FSVElGSUNJQUwgKGdp bXBsZV9nb3RvX2Rlc3QgKHN0bXQpKSkNCi0JLyogRG9uJ3Qgd2FybiBmb3IgY29tcGlsZXItZ2Vu ZXJhdGVkIGdvdG9zLiAgVGhlc2Ugb2NjdXINCi0JICAgaW4gRHVmZidzIGRldmljZXMsIGZvciBl eGFtcGxlLiAgKi87DQotICAgICAgZWxzZQ0KLQl3YXJuaW5nX2F0IChnaW1wbGVfbG9jYXRpb24g KHN0bXQpLCBPUFRfV3N3aXRjaF91bnJlYWNoYWJsZSwNCi0JCSAgICAic3RhdGVtZW50IHdpbGwg bmV2ZXIgYmUgZXhlY3V0ZWQiKTsNCi0gICAgfQ0KKyAgbWVtc2V0ICgmd2ksIDAsIHNpemVvZiAo d2kpKTsNCisgIHdhbGtfZ2ltcGxlX3NlcSAoc2VxLCB3YXJuX3N3aXRjaF91bnJlYWNoYWJsZV9h bmRfYXV0b19pbml0X3IsIE5VTEwsICZ3aSk7DQogfQ0KIA0KIA0KQEAgLTI2NDAsNyArMjcwMSw3 IEBAIGdpbXBsaWZ5X3N3aXRjaF9leHByICh0cmVlICpleHByX3AsIGdpbXBsZV9zZXEgKnByZV9w KQ0KICAgICAgIGdpbXBsaWZ5X3N0bXQgKCZTV0lUQ0hfQk9EWSAoc3dpdGNoX2V4cHIpLCAmc3dp dGNoX2JvZHlfc2VxKTsNCiANCiAgICAgICBnaW1wbGlmeV9jdHhwLT5pbl9zd2l0Y2hfZXhwciA9 IG9sZF9pbl9zd2l0Y2hfZXhwcjsNCi0gICAgICBtYXliZV93YXJuX3N3aXRjaF91bnJlYWNoYWJs ZSAoc3dpdGNoX2JvZHlfc2VxKTsNCisgICAgICBtYXliZV93YXJuX3N3aXRjaF91bnJlYWNoYWJs ZV9hbmRfYXV0b19pbml0IChzd2l0Y2hfYm9keV9zZXEpOw0KICAgICAgIG1heWJlX3dhcm5faW1w bGljaXRfZmFsbHRocm91Z2ggKHN3aXRjaF9ib2R5X3NlcSk7DQogICAgICAgLyogT25seSBkbyB0 aGlzIGZvciB0aGUgb3V0ZXJtb3N0IEdJTVBMRV9TV0lUQ0guICAqLw0KICAgICAgIGlmICghZ2lt cGxpZnlfY3R4cC0+aW5fc3dpdGNoX2V4cHIpDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MuZGcvYXV0by1pbml0LXByMTAyMjc2LTEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2F1dG8t aW5pdC1wcjEwMjI3Ni0xLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAw MC4uZDU3NDkyNmUwYzgNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRn L2F1dG8taW5pdC1wcjEwMjI3Ni0xLmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1XYWxsIC1mdHJpdmlhbC1hdXRvLXZh ci1pbml0PXplcm8iIH0gKi8NCisNCitpbnQgZyhpbnQgKik7DQoraW50IGYoKQ0KK3sNCisgICAg c3dpdGNoICgwKSB7IA0KKyAgICAgICAgaW50IHg7ICAvKiB7IGRnLWJvZ3VzICJzdGF0ZW1lbnQg d2lsbCBuZXZlciBiZSBleGVjdXRlZCIgfSAqLw0KKyAgICAgICAgZGVmYXVsdDoNCisgICAgICAg IHJldHVybiBnKCZ4KTsNCisgICAgfQ0KK30NCisNCitpbnQgZzEoaW50KTsNCitpbnQgZjEoKQ0K K3sNCisgICAgc3dpdGNoICgwKSB7DQorICAgICAgICBpbnQgeDsgLyogeyBkZy1ib2d1cyAic3Rh dGVtZW50IHdpbGwgbmV2ZXIgYmUgZXhlY3V0ZWQiIH0gKi8NCisgICAgICAgIGRlZmF1bHQ6DQor ICAgICAgICByZXR1cm4gZzEoeCk7ICAvKiB7IGRnLXdhcm5pbmcgImlzIHVzZWQgdW5pbml0aWFs aXplZCIgfSAqLw0KKyAgICB9DQorfQ0KKw0KK3N0cnVjdCBTDQorew0KKyAgY2hhciBhOw0KKyAg aW50IGI7DQorfTsNCitpbnQgZzIoaW50KTsNCitpbnQgZjIoaW50IGlucHV0KQ0KK3sNCisgICAg c3dpdGNoICgwKSB7DQorICAgICAgICBzdHJ1Y3QgUyB4OyAvKiB7IGRnLWJvZ3VzICJzdGF0ZW1l bnQgd2lsbCBuZXZlciBiZSBleGVjdXRlZCIgfSAqLw0KKyAgICAgICAgZGVmYXVsdDoNCisgICAg ICAgIHJldHVybiBnMihpbnB1dCkgKyB4LmI7ICAvKiB7IGRnLXdhcm5pbmcgImlzIHVzZWQgdW5p bml0aWFsaXplZCIgfSAqLw0KKyAgICB9DQorfQ0KKw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLmRnL2F1dG8taW5pdC1wcjEwMjI3Ni0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9h dXRvLWluaXQtcHIxMDIyNzYtMi5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAw MDAwMDAuLjc3OWQzZWMzODgyDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy5kZy9hdXRvLWluaXQtcHIxMDIyNzYtMi5jDQpAQCAtMCwwICsxLDM4IEBADQorLyogeyBkZy1k byBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtV2FsbCAtZnRyaXZpYWwtYXV0 by12YXItaW5pdD1wYXR0ZXJuIiB9ICovDQorDQoraW50IGcoaW50ICopOw0KK2ludCBmKCkNCit7 DQorICAgIHN3aXRjaCAoMCkgeyANCisgICAgICAgIGludCB4OyAgLyogeyBkZy1ib2d1cyAic3Rh dGVtZW50IHdpbGwgbmV2ZXIgYmUgZXhlY3V0ZWQiIH0gKi8NCisgICAgICAgIGRlZmF1bHQ6DQor ICAgICAgICByZXR1cm4gZygmeCk7DQorICAgIH0NCit9DQorDQoraW50IGcxKGludCk7DQoraW50 IGYxKCkNCit7DQorICAgIHN3aXRjaCAoMCkgew0KKyAgICAgICAgaW50IHg7IC8qIHsgZGctYm9n dXMgInN0YXRlbWVudCB3aWxsIG5ldmVyIGJlIGV4ZWN1dGVkIiB9ICovDQorICAgICAgICBkZWZh dWx0Og0KKyAgICAgICAgcmV0dXJuIGcxKHgpOyAgLyogeyBkZy13YXJuaW5nICJpcyB1c2VkIHVu aW5pdGlhbGl6ZWQiIH0gKi8NCisgICAgfQ0KK30NCisNCitzdHJ1Y3QgUw0KK3sNCisgIGNoYXIg YTsNCisgIGludCBiOw0KK307DQoraW50IGcyKGludCk7DQoraW50IGYyKGludCBpbnB1dCkNCit7 DQorICAgIHN3aXRjaCAoMCkgew0KKyAgICAgICAgc3RydWN0IFMgeDsgLyogeyBkZy1ib2d1cyAi c3RhdGVtZW50IHdpbGwgbmV2ZXIgYmUgZXhlY3V0ZWQiIH0gKi8NCisgICAgICAgIGRlZmF1bHQ6 DQorICAgICAgICByZXR1cm4gZzIoaW5wdXQpICsgeC5iOyAgLyogeyBkZy13YXJuaW5nICJpcyB1 c2VkIHVuaW5pdGlhbGl6ZWQiIH0gKi8NCisgICAgfQ0KK30NCisNCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy5kZy9hdXRvLWluaXQtcHIxMDIyNzYtMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MuZGcvYXV0by1pbml0LXByMTAyMjc2LTMuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4 IDAwMDAwMDAwMDAwLi5mMTEzZjQ2ZTI5ZA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvYXV0by1pbml0LXByMTAyMjc2LTMuYw0KQEAgLTAsMCArMSw0MCBAQA0KKy8q IHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItTzIgLVd0cml2aWFsLWF1 dG8tdmFyLWluaXQgLWZ0cml2aWFsLWF1dG8tdmFyLWluaXQ9emVybyIgfSAqLw0KKw0KK2ludCBn KGludCAqLCBpbnQgKik7DQoraW50IGYoKQ0KK3sNCisgICAgc3dpdGNoICgwKSB7DQorICAgICAg ICBpbnQgeDsgIC8qIHsgZGctd2FybmluZyAiY2Fubm90IGJlIGluaXRpYWxpemVkIHdpdGgiIH0g Ki8NCisgICAgICAgIGludCB5OyAgLyogeyBkZy13YXJuaW5nICJjYW5ub3QgYmUgaW5pdGlhbGl6 ZWQgd2l0aCIgfSAqLw0KKyAgICAgICAgZGVmYXVsdDoNCisgICAgICAgIHJldHVybiBnKCZ4LCAm eSk7DQorICAgIH0NCit9DQorDQoraW50IGcxKGludCwgaW50KTsNCitpbnQgZjEoKQ0KK3sNCisg ICAgc3dpdGNoICgwKSB7DQorICAgICAgICBpbnQgeDsgLyogeyBkZy13YXJuaW5nICJjYW5ub3Qg YmUgaW5pdGlhbGl6ZWQgd2l0aCIgfSAqLw0KKyAgICAgICAgaW50IHk7IC8qIHsgZGctd2Fybmlu ZyAiY2Fubm90IGJlIGluaXRpYWxpemVkIHdpdGgiIH0gKi8NCisgICAgICAgIGRlZmF1bHQ6DQor ICAgICAgICByZXR1cm4gZzEoeCwgeSk7DQorICAgIH0NCit9DQorDQorc3RydWN0IFMNCit7DQor ICBjaGFyIGE7DQorICBpbnQgYjsNCit9Ow0KK2ludCBnMihpbnQpOw0KK2ludCBmMihpbnQgaW5w dXQpDQorew0KKyAgICBzd2l0Y2ggKDApIHsNCisgICAgICAgIHN0cnVjdCBTIHg7IC8qIHsgZGct d2FybmluZyAiY2Fubm90IGJlIGluaXRpYWxpemVkIHdpdGgiIH0gKi8NCisgICAgICAgIHN0cnVj dCBTIHk7IC8qIHsgZGctd2FybmluZyAiY2Fubm90IGJlIGluaXRpYWxpemVkIHdpdGgiIH0gKi8N CisgICAgICAgIGRlZmF1bHQ6DQorICAgICAgICByZXR1cm4gZzIoaW5wdXQpICsgeC5iICsgeS5i Ow0KKyAgICB9DQorfQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2F1dG8taW5p dC1wcjEwMjI3Ni00LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9hdXRvLWluaXQtcHIxMDIyNzYt NC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjY2MmUwZDExODJl DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9hdXRvLWluaXQtcHIx MDIyNzYtNC5jDQpAQCAtMCwwICsxLDQwIEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisv KiB7IGRnLW9wdGlvbnMgIi1PMiAtV3RyaXZpYWwtYXV0by12YXItaW5pdCAtZnRyaXZpYWwtYXV0 by12YXItaW5pdD1wYXR0ZXJuIiB9ICovDQorDQoraW50IGcoaW50ICosIGludCAqKTsNCitpbnQg ZigpDQorew0KKyAgICBzd2l0Y2ggKDApIHsNCisgICAgICAgIGludCB4OyAgLyogeyBkZy13YXJu aW5nICJjYW5ub3QgYmUgaW5pdGlhbGl6ZWQgd2l0aCIgfSAqLw0KKyAgICAgICAgaW50IHk7ICAv KiB7IGRnLXdhcm5pbmcgImNhbm5vdCBiZSBpbml0aWFsaXplZCB3aXRoIiB9ICovDQorICAgICAg ICBkZWZhdWx0Og0KKyAgICAgICAgcmV0dXJuIGcoJngsICZ5KTsNCisgICAgfQ0KK30NCisNCitp bnQgZzEoaW50LCBpbnQpOw0KK2ludCBmMSgpDQorew0KKyAgICBzd2l0Y2ggKDApIHsNCisgICAg ICAgIGludCB4OyAvKiB7IGRnLXdhcm5pbmcgImNhbm5vdCBiZSBpbml0aWFsaXplZCB3aXRoIiB9 ICovDQorICAgICAgICBpbnQgeTsgLyogeyBkZy13YXJuaW5nICJjYW5ub3QgYmUgaW5pdGlhbGl6 ZWQgd2l0aCIgfSAqLw0KKyAgICAgICAgZGVmYXVsdDoNCisgICAgICAgIHJldHVybiBnMSh4LCB5 KTsNCisgICAgfQ0KK30NCisNCitzdHJ1Y3QgUw0KK3sNCisgIGNoYXIgYTsNCisgIGludCBiOw0K K307DQoraW50IGcyKGludCk7DQoraW50IGYyKGludCBpbnB1dCkNCit7DQorICAgIHN3aXRjaCAo MCkgew0KKyAgICAgICAgc3RydWN0IFMgeDsgLyogeyBkZy13YXJuaW5nICJjYW5ub3QgYmUgaW5p dGlhbGl6ZWQgd2l0aCIgfSAqLw0KKyAgICAgICAgc3RydWN0IFMgeTsgLyogeyBkZy13YXJuaW5n ICJjYW5ub3QgYmUgaW5pdGlhbGl6ZWQgd2l0aCIgfSAqLw0KKyAgICAgICAgZGVmYXVsdDoNCisg ICAgICAgIHJldHVybiBnMihpbnB1dCkgKyB4LmIgKyB5LmI7DQorICAgIH0NCit9DQotLSANCjIu MjcuMA0KDQoNCg==