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 89E733883F32; Wed, 14 Dec 2022 14:08:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 89E733883F32 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 (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2BEE4Lai027358; Wed, 14 Dec 2022 14:08: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=q6iB0MPD/JZekwUHFL92zQwCxLNgZOhISxX3lyQXjKE=; b=je7yDpl0dWONpLyDEyPwqtHfjrheFwmeBoxb7zK0udUdevdd0EdsMHBK3GZv6lL06nQa lNM0hdVkgaAI47PYbwjg4aJOkXbNtjHj7J9GTXRuWRmx6sIMR2kFSfJg3m5tZGubuHmO p/7cTiWqj2jOgJkOWIuJuarr6jWFBA5MHnVDp287u4+iKdVRUOujVHYi19S97VqiTBbJ pnbY1lwFzQitySd4Y1oPy3WCi7QXH4TVqKTw3Z+abS9F2wZCEKbAB+CKh+NfwR3q/Wdk vNrQ8aLKQ5GiL3A4z9WbyeiYT8wJQ0KfhSlFRJriljw8Vliykt0EXBeREYD51g4/aeqY uw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3meyewa9qh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 14 Dec 2022 14:08:37 +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 2BECEWQo031168; Wed, 14 Dec 2022 14:08:36 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2173.outbound.protection.outlook.com [104.47.73.173]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3meyep3acn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 14 Dec 2022 14:08:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BCpNbJQWS2/BceAuUsipdDkDKXO2o2FD7hjVUfztf/BhGFxM7+TD+PWEoxi2AUZ9WG5Pnw5HHYTu+E+SIOFL9oRxaLgorOTGHDFbmSOB5MIx75XOYRGm6HNrtxj9vxYnzVFZ7hU+Bt+KSXhEmjqP06HAHzBxiAi4ZJyiwlufFj+VbdHKUc5EWV3UA8V7mWRix2+2qs5k5muzAZM/D3G8be7SYncRqzw1djH2wJNEZivQpIToSpZOLJtXiWG8Pk9vsPpVOiWKKKx3+BwH2AMJeM7rANfEd/Qu3OM51BMS/aq7Q2JABdqrD2XeimFviY9p2bmxysRy3voVHsruDxg2NQ== 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=q6iB0MPD/JZekwUHFL92zQwCxLNgZOhISxX3lyQXjKE=; b=lilwKwzmWUGhMzlSnZ8JtxGYhBKNhmrgamGtzGZpgxhb5aFDY1yllguzIELduGc6LUipVClCEqcz8253QzngCYqtlzDRicB/yysYObBK09V3VxjnHUwZpfiOsGHYVdjI6WZpL9ZCGHKZx/rDDPTGu3Oi9D8Ho8xJGllByAq65AE0PdVlotN5JVcOcf1aiC0ArxqbENqJOhyUldzHxfoNbMxIZxKp+wV9D6nqwOqk+vAWlUhQZmQg515M3U3WcF/wZkbgm7yVfDtB1JWNB+idv9pwd7Yeyk/u0hSLt0ZIEiESdyF7JBRWiUF0V6tvBNZcUvmzJsmn00bedH+VB/y0xA== 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=q6iB0MPD/JZekwUHFL92zQwCxLNgZOhISxX3lyQXjKE=; b=otDpTv3LHu/gJQex5ogsECibj0rLE/PMXfWs0/QKu9imlFQazil+LQ1x/JO0pSbkSFpETxZ9GoG1s9Zh38rK3aFFOLCD9WbKhvVwBkbfiltZJMo0eFkVX+ZM5lsmRFeYhjugLUl9zT6LoZ6KVUt3FiC83XGpK6gNBPlKzoNafaw= Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by DM6PR10MB4218.namprd10.prod.outlook.com (2603:10b6:5:222::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.19; Wed, 14 Dec 2022 14:08:33 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::9423:79b3:c0dc:1113]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::9423:79b3:c0dc:1113%9]) with mapi id 15.20.5880.019; Wed, 14 Dec 2022 14:08:33 +0000 From: Qing Zhao To: Richard Biener CC: "joseph@codesourcery.com" , "gcc-patches@gcc.gnu.org" , "keescook@chromium.org" , "siddhesh@gcc.gnu.org" Subject: Re: Ping---[V3][PATCH 2/2] Add a new warning option -Wstrict-flex-arrays. Thread-Topic: Ping---[V3][PATCH 2/2] Add a new warning option -Wstrict-flex-arrays. Thread-Index: AQHZCY5sSXlMD9UupU2COKrkmjhESK5r+8aAgAEnFgCAAFUegA== Date: Wed, 14 Dec 2022 14:08:32 +0000 Message-ID: References: <20221206161844.2397151-1-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.1) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR10MB4344:EE_|DM6PR10MB4218:EE_ x-ms-office365-filtering-correlation-id: 1b083e0e-2c0b-4044-98ab-08dadddcaf47 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: IsRbC0pa79epmi4cWRA0rx1/FN34UumZAPVzVQZmh5wJeCBSXYAnVROR9PQi/Z64ps9q9y7C3xu8VFesk6usSqJljaT6VlEJGvkT/VJ9ymXD0aSZZk7xLRJW6UA8ZaBCfplXpHo/FfCdvQbxkngnINbl2KTRJ1pO/I0BfaVwdxNIkZ7Iw94o+PtHSRDIXLOEvHWmU77aaJhAfMjaZCTGeD7W06IgJQT8R0bD5o9JocUHL8oMyDuB9X62Is6yRwY8HVUhgtMnMBC2xkaplsNzsad0HBNk8J3m7mBLSjtPyG56TBkkP0mGdTs/zzDLuWMxOQI1mjb3rjTaKL2k35fMR8TIaUBrHNFd+1KtU4FCNZeqFJxn0npslFd2u8YAQGBvbSJ6r9e1Cf11ET301DCoOHfp02r+hxiFFGQ2FAH58g42nQ07WHMpYHanMvzABvpIswSoOtFDWBAWiopscVDRnlNXSqmwzU5wkS5/8NRW20aQK6Axwjdci2SwTV0WJylWXAUkV8jNMXLU6oV669W6wQfwsG3bXvo/b28h4Wu68ODHun7O5AeJAqZsiOz+MY2BSgkqx4/2k0DTaRohMKYi/zfFfgqhcC6UIgGCarpurXc4D9IoYMec7ULffcRK4IPj2S33MSOpVuVaVXcrb9orNWQ9WCqUDHoFP5vzHvH2RUXX+4P9vhO6Gq7uTNhMQa1yLtWn92kpNgy4mhVGBesGlMduuOauXOw1w7mMRv607C+5O6GFJzDkwPI+ar+Bhj6MmfhHf5wD/iR8Pgb2zfkESUYxgbXdK6htfEH/cMBWPbE= 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:(13230022)(396003)(376002)(366004)(39860400002)(346002)(136003)(451199015)(316002)(6916009)(54906003)(2906002)(122000001)(33656002)(41300700001)(30864003)(66476007)(84970400001)(38100700002)(478600001)(2616005)(6506007)(44832011)(186003)(38070700005)(71200400001)(53546011)(8936002)(36756003)(6486002)(5660300002)(83380400001)(86362001)(4326008)(76116006)(66946007)(64756008)(66556008)(66446008)(91956017)(6512007)(8676002)(26005)(45980500001)(559001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZmQwZEgweEg5Yi94MUthSXQwYTV2VGFSZHhmalVQb3QxSHZnUHI3a2dQOU8y?= =?utf-8?B?U29jMk13c081eTFuemdYSlM2d3U4ZFlCb2ljekhzeGFvcWpoYjU1MjhUejN1?= =?utf-8?B?bEpJa0p2TVBiMjZQanV0MVc4a3NUQ0E2elRyeDlIT3k2WWVvWjJqbnNjSkxX?= =?utf-8?B?dnNDbTVqWTN4dTN4NWlraVFYVllHQ3NjMzArL2p5NE1sclYxUE5pV2RYUE5j?= =?utf-8?B?TG44V2NVQ040Sm5qT2pNblhvTmR1YW5OTHJIUUYyMUVIaE9PM0ZEQ095Z2Zx?= =?utf-8?B?L2pqTUNUcHlieHNHREVvS3RPQmZHRzNoRjYrVjFpZ1JmNGFqK1RTanQzR01N?= =?utf-8?B?TDNFMlJBZmJIQ0V2VlNLQ3kvUmdVMGg2eWZWSWpPeEdLTVVGWDFQUkkyMHdT?= =?utf-8?B?MmY3MmJ1Y29qcm56TnNNeFphT3V5SURld2ZhM3pPWWJHckNUaTZtR0MyTmhD?= =?utf-8?B?ZEJVWENJSThvWG53UUtPM3QyM0xNMWxESmViUHM0S2p1K0ZCL3UvQ3B0Sk9U?= =?utf-8?B?MG8wUm1UckJoOTdoRFB1b3NXOGtUYkMxWWtOY1FRYS9rU0lxbXYrU2RGZUo1?= =?utf-8?B?ejg0dlFTMnVBc3JWSTFhKy9EN1FMdjBSeDFKaEI5WnhZRDV1NUZXUUhQeW5B?= =?utf-8?B?SzZRbDVuTlduOGU0WjJCK1VuM2VzaXhGTnR3M051eXpMSXRIano4a3ZEMVQ1?= =?utf-8?B?TWp5NFdGUUx2YlZIaEZ5QjdHWWpUeGtUUHhHTWZHZzg5dENpcjZtcXpHcHBH?= =?utf-8?B?NDJzc0l6NUNGTHZQYWsva2Fwb0o0TlkzeE9KWkF6WFhOM1VhdG5vTVhDMytB?= =?utf-8?B?ZDZ0YjZaNjN3bEtJdEFMVTJyQnZod04xMnJyK1dDT1VibXNEMng0TXU0UndF?= =?utf-8?B?dXplZHNrUVRLTUJUY2RmY2VqZ0lDTEFRT1c3bzlDSER6OGxzQmdCcEhtY3Jo?= =?utf-8?B?bkd5Z3VibnczWnRJdWNXdXAyN0dRZU9aSVpOUGNpZndnVmZ4MnkyR1E2cG9E?= =?utf-8?B?d1hpY2dHS1V3aEo3WlhqMFF2VTYrb0tYdzdueXhVTjRkRDZyaERsZDQzMVht?= =?utf-8?B?dVNmdWZ0ZWd6Wk9LYjF4ckJEMUs4L0V3ZEl1K0dFSk53ZWlDSWZmTXFmT3Er?= =?utf-8?B?NVJQeUt3T2FSZ2JoU1JaTnBBNmVYc2xaVVlBd3RSS2dHYUFzUVJNakg1Z3FQ?= =?utf-8?B?UDg4YlF2cmpGeDJjMjBjY2lRcmdCM1hpRnpLRXVnNjNvUVZJdXVVWU12bytR?= =?utf-8?B?RGQwUXY5alhGdjA0TkV1bFM1NTJBTkVaQThJaTk5NUNRelZvZzQ2UnpLRk1B?= =?utf-8?B?TkFyV29xMWJ5UlBDQkM5amZMV2NNcDZPSWNvQmpidEY2YS9qcmlRMG43TDYv?= =?utf-8?B?WjZvRHJWME1xRmtpalN2RFRGTWJlc3lldlovY0pjYzVsYXZhN2tUei9EYVlm?= =?utf-8?B?QlhkZjJ5VnRsSmNDVDgyMVd5UmZUdHpzT0tzWVFXZUVBaURmd25KUUVOdklk?= =?utf-8?B?dHFwK05FSDM2Yjl0UnRzdGpuVnJiSm9lMXA2c0kwQnkvT3d6VW14ODJnelhX?= =?utf-8?B?WmJ5Ykd1ak94eXplRFplMThjYjVnSjZ0cXpqYzNMcHpDSkI0WTVCVDJXUVhJ?= =?utf-8?B?VkJhalJZL1RQd2VYSUtuY1lVV2o0ZUtuYytYWFJZVXN2VVc5WUhkSjZveFhz?= =?utf-8?B?U3JJT0VBV0RESmRmallOUWVMWVZKLzUxMTA5WlFORE5QQjZndjFrUVdqdDlo?= =?utf-8?B?MWlscy85dGpsWEFDZi9ldFgwNU9RdVI2TXY0TmFiMmtFRTQ2d2tNQklId05i?= =?utf-8?B?T2c3WFlrUkVrVVV6TjR3dEFSYktrcUllTWdHQzlycTVGNkVvMVJOa2tIaVpv?= =?utf-8?B?REdCM1VVbHJCb3FWSm56UlV0WHgwQlAzYU5ic1FRZ3hkZ0NjYzlOSmsvNTFH?= =?utf-8?B?dXdPN3g1d1VPbDBWdllBRVRnd3hvbjZ5WFo2R2JBdG05THJLaklpd2hRcGIw?= =?utf-8?B?NEllY2N5TFE0ckNpQzBCakxNNCtmWHpVc2JlcEhUNzNFVWhTWk5ZK2pJaDI4?= =?utf-8?B?TmtMOE54TTFVMmhUSldIYnBjd2VGVkRQUjlpMFM5ZnYrbkFxTVJ6dWltaWNH?= =?utf-8?Q?pvyNqCbmld8q6fN3ah2RSnpbi?= 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: 1b083e0e-2c0b-4044-98ab-08dadddcaf47 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Dec 2022 14:08:32.9438 (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: 6pjLw59mtIAeUccI75tJxGZgoYIy1QRKgrrtJoSrGy875Avo802mUPX2qvO410lPOB3lXiXpoN0Yw2DxcEjy0g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB4218 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-14_06,2022-12-14_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 malwarescore=0 mlxscore=0 phishscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2212140112 X-Proofpoint-GUID: Vt7o3Izd5xDusYIzsrl1zb3mbDeajphn X-Proofpoint-ORIG-GUID: Vt7o3Izd5xDusYIzsrl1zb3mbDeajphn 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: DQoNCj4gT24gRGVjIDE0LCAyMDIyLCBhdCA0OjAzIEFNLCBSaWNoYXJkIEJpZW5lciA8cmd1ZW50 aGVyQHN1c2UuZGU+IHdyb3RlOg0KPiANCj4gT24gVHVlLCAxMyBEZWMgMjAyMiwgUWluZyBaaGFv IHdyb3RlOg0KPiANCj4+IFJpY2hhcmQsIA0KPj4gDQo+PiBEbyB5b3UgaGF2ZSBhbnkgZGVjaXNp b24gb24gdGhpcyBvbmU/IA0KPj4gRG8gd2UgbmVlZCB0aGlzIHdhcm5pbmcgb3B0aW9uIEZvciBH Q0M/IA0KPiANCj4gTG9va2luZyBhdCB0aGUgdGVzdGNhc2VzIGl0IHNlZW1zIHRoYXQgdGhlIGRp YWdub3N0aWMgYW1lbmRzDQo+IC1XYXJyYXktYm91bmRzIGRpYWdub3N0aWNzIGZvciB0cmFpbGlu ZyBidXQgbm90IGZsZXhpYmxlIGFycmF5cz8NCg0KWWVzLg0KDQo+IFdvdWxkbid0IGl0IGJlIGJl dHRlciB0byBnZW5lcmFsbHkgZGlhZ25vc2UgdGhpcywgc28gaGF2ZQ0KPiAtV2FycmF5LWJvdW5k cywgd2l0aCAtZnN0cmljdC1mbGV4LWFycmF5cywgZm9yDQo+IA0KPiBzdHJ1Y3QgWCB7IGludCBh WzFdOyB9Ow0KPiBpbnQgZm9vIChzdHJ1Y3QgWCAqcCkNCj4gew0KPiAgcmV0dXJuIHAtPmFbMV07 DQo+IH0NCj4gDQo+IGVtaXQNCj4gDQo+IHdhcm5pbmc6IGFycmF5IHN1YnNjcmlwdCAxIGlzIGFi b3ZlIGFycmF5IGJvdW5kcyAuLi4NCj4gbm90ZTogdGhlIHRyYWlsaW5nIGFycmF5IGlzIG9ubHkg YSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgd2l0aCANCj4gLWZuby1zdHJpY3QtZmxleC1hcnJheXMN Cg0KVGhpcyBpcyBnb29kIHRvby4NCk15IG9ubHkgY29uY2VybiB3aXRoIGRvaW5nIHRoaXMgaXMs IHRoZSBkZWZhdWx0IHdhcm5pbmcgbWVzc2FnZXMgb2YgLVdhcnJheS1ib3VuZHMgd291bGQgYmUg ZGlmZmVyZW50IHRoYW4NCnRoZSBjdXJyZW50IG9uZXMsIHdpbGwgdGhpcyBoYXZlIGFueSBpbXBh Y3Qgb24gdGhlIGN1cnJlbnQgdXNlcnM/DQoNCj4gDQo+ID8gIEhhdmluZyAtV3N0cmljdC1mbGV4 LWFycmF5cz1OIGFuZCBOIG5vdCBhZ3JlZSB3aXRoIHRoZQ0KPiAtZnN0cmljdC1mbGV4LWFycmF5 cyBsZXZlbCBzb3VuZHMgaGFyZGx5IHVzZWZ1bCB0byBtZSBidXQgdGhlDQo+IGluZm9ybWF0aW9u IHRoYXQgd2UgcmFuIGludG8gYSB0cmFpbGluZyBhcnJheSBidXQgZGlkbid0IGNvbnNpZGVyDQo+ IGl0IGEgZmxleCBhcnJheSBiZWNhdXNlIG9mIC1mc3RyaWN0LWZsZXgtYXJyYXlzIGlzIGFsd2F5 cyBhDQo+IHVzZWZ1bCBpbmZvcm1hdGlvbj8NCg0KLVdzdHJpY3QtZmxleC1hcnJheXMgZG9lcyBO T1QgaGF2ZSB0aGUgYXJndW1lbnQg4oCcTuKAnS4gIEl0cyBsZXZlbCB3aWxsIGJlIGNvbnNpc3Rl bnQgd2l0aCB0aGUgbGV2ZWwg4oCcTuKAnSBvZiB0aGUgY29ycmVzcG9uZGluZw0KLWZzdHJpY3Qt ZmxleC1hcnJheT1OLiAgDQotV3N0cmljdC1mbGV4LWFycmF5cyBvcHRpb24gaXMgb25seSB2YWxp ZCB3aGVuIC1mc3RyaWN0LWZsZXgtYXJyYXlzIGlzIHByZXNlbnQsIGl0IHdpbGwgcmVwb3J0IGFu eSBtaXN1c2Ugb2YgdHJlYXRpbmcgdHJhaWxpbmcgYXJyYXkgDQphcyBmbGV4aWJsZSBhcnJheSBh dCB0aGUgTEVWRUwgb2YgLWZzdHJpY3QtZmxleC1hcnJheXMuIA0KDQpMZXQgbWUga25vdyBpZiBp dCBpcyBzdGlsbCBub3QgdmVyeSBjbGVhci4NCg0KdGhhbmtzLg0KDQpRaW5nDQo+IA0KPiBCdXQg bWF5YmUgSSBtaXN1bmRlcnN0b29kIHRoaXMgbmV3IGRpYWdub3N0aWM/DQo+IA0KPiBUaGFua3Ms DQo+IFJpY2hhcmQuDQo+IA0KPiANCj4+IHRoYW5rcy4NCj4+IA0KPj4gUWluZw0KPj4gDQo+Pj4g T24gRGVjIDYsIDIwMjIsIGF0IDExOjE4IEFNLCBRaW5nIFpoYW8gPHFpbmcuemhhb0BvcmFjbGUu Y29tPiB3cm90ZToNCj4+PiANCj4+PiAnLVdzdHJpY3QtZmxleC1hcnJheXMnDQo+Pj4gICAgV2Fy biBhYm91dCBpbnByb3BlciB1c2FnZXMgb2YgZmxleGlibGUgYXJyYXkgbWVtYmVycyBhY2NvcmRp bmcgdG8NCj4+PiAgICB0aGUgTEVWRUwgb2YgdGhlICdzdHJpY3RfZmxleF9hcnJheSAoTEVWRUwp JyBhdHRyaWJ1dGUgYXR0YWNoZWQgdG8NCj4+PiAgICB0aGUgdHJhaWxpbmcgYXJyYXkgZmllbGQg b2YgYSBzdHJ1Y3R1cmUgaWYgaXQncyBhdmFpbGFibGUsDQo+Pj4gICAgb3RoZXJ3aXNlIGFjY29y ZGluZyB0byB0aGUgTEVWRUwgb2YgdGhlIG9wdGlvbg0KPj4+ICAgICctZnN0cmljdC1mbGV4LWFy cmF5cz1MRVZFTCcuDQo+Pj4gDQo+Pj4gICAgVGhpcyBvcHRpb24gaXMgZWZmZWN0aXZlIG9ubHkg d2hlbiBMRVZFTCBpcyBiaWdnZXIgdGhhbiAwLg0KPj4+ICAgIE90aGVyd2lzZSwgaXQgd2lsbCBi ZSBpZ25vcmVkIHdpdGggYSB3YXJuaW5nLg0KPj4+IA0KPj4+ICAgIHdoZW4gTEVWRUw9MSwgd2Fy bmluZ3Mgd2lsbCBiZSBpc3N1ZWQgZm9yIGEgdHJhaWxpbmcgYXJyYXkNCj4+PiAgICByZWZlcmVu Y2Ugb2YgYSBzdHJ1Y3R1cmUgdGhhdCBoYXZlIDIgb3IgbW9yZSBlbGVtZW50cyBpZiB0aGUNCj4+ PiAgICB0cmFpbGluZyBhcnJheSBpcyByZWZlcmVuY2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVt YmVyLg0KPj4+IA0KPj4+ICAgIHdoZW4gTEVWRUw9MiwgaW4gYWRkaXRpb24gdG8gTEVWRUw9MSwg YWRkaXRpb25hbCB3YXJuaW5ncyB3aWxsIGJlDQo+Pj4gICAgaXNzdWVkIGZvciBhIHRyYWlsaW5n IG9uZS1lbGVtZW50IGFycmF5IHJlZmVyZW5jZSBvZiBhIHN0cnVjdHVyZSBpZg0KPj4+ICAgIHRo ZSBhcnJheSBpcyByZWZlcmVuY2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyLg0KPj4+IA0K Pj4+ICAgIHdoZW4gTEVWRUw9MywgaW4gYWRkaXRpb24gdG8gTEVWRUw9MiwgYWRkaXRpb25hbCB3 YXJuaW5ncyB3aWxsIGJlDQo+Pj4gICAgaXNzdWVkIGZvciBhIHRyYWlsaW5nIHplcm8tbGVuZ3Ro IGFycmF5IHJlZmVyZW5jZSBvZiBhIHN0cnVjdHVyZSBpZg0KPj4+ICAgIHRoZSBhcnJheSBpcyBy ZWZlcmVuY2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyLg0KPj4+IA0KPj4+IGdjYy9DaGFu Z2VMb2c6DQo+Pj4gDQo+Pj4gCSogZG9jL2ludm9rZS50ZXhpOiBEb2N1bWVudCAtV3N0cmljdC1m bGV4LWFycmF5cyBvcHRpb24uDQo+Pj4gCSogZ2ltcGxlLWFycmF5LWJvdW5kcy5jYyAoY2hlY2tf b3V0X29mX2JvdW5kc19hbmRfd2Fybik6IEFkZCB0d28gbW9yZQ0KPj4+IAlhcmd1bWVudHMuDQo+ Pj4gCShhcnJheV9ib3VuZHNfY2hlY2tlcjo6Y2hlY2tfYXJyYXlfcmVmKTogSXNzdWUgd2Fybmlu Z3MgZm9yDQo+Pj4gCS1Xc3RyaWN0LWZsZXgtYXJyYXlzLg0KPj4+IAkqIG9wdHMuY2MgKGZpbmlz aF9vcHRpb25zKTogSXNzdWUgd2FybmluZyBmb3IgdW5zdXBwb3J0ZWQgY29tYmluYXRpb24NCj4+ PiAJb2YgLVdzdHJpY3RfZmxleF9hcnJheXMgYW5kIC1mc3RyaWN0LWZsZXgtYXJyYXkuDQo+Pj4g CSogdHJlZS12cnAuY2MgKGV4ZWN1dGVfcmFuZ2VyX3ZycCk6IEVuYWJsZSB0aGUgcGFzcyB3aGVu DQo+Pj4gCXdhcm5fc3RyaWN0X2ZsZXhfYXJyYXkgaXMgdHJ1ZS4NCj4+PiANCj4+PiBnY2MvYy1m YW1pbHkvQ2hhbmdlTG9nOg0KPj4+IA0KPj4+IAkqIGMub3B0IChXc3RyaWN0LWZsZXgtYXJyYXlz KTogTmV3IG9wdGlvbi4NCj4+PiANCj4+PiBnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCj4+PiAN Cj4+PiAJKiBnY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0xLmM6IFVwZGF0ZSB0ZXN0 aW5nIGNhc2Ugd2l0aA0KPj4+IAktV3N0cmljdC1mbGV4LWFycmF5cy4NCj4+PiAJKiBnY2MuZGcv V2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0yLmM6IExpa2V3aXNlLg0KPj4+IAkqIGdjYy5kZy9X YXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTMuYzogTGlrZXdpc2UuDQo+Pj4gCSogZ2NjLmRnL1dh cnJheS1ib3VuZHMtZmxleC1hcnJheXMtNC5jOiBMaWtld2lzZS4NCj4+PiAJKiBnY2MuZGcvV2Fy cmF5LWJvdW5kcy1mbGV4LWFycmF5cy01LmM6IExpa2V3aXNlLg0KPj4+IAkqIGdjYy5kZy9XYXJy YXktYm91bmRzLWZsZXgtYXJyYXlzLTYuYzogTGlrZXdpc2UuDQo+Pj4gCSogYy1jKystY29tbW9u L1dzdHJpY3QtZmxleC1hcnJheXMuYzogTmV3IHRlc3QuDQo+Pj4gCSogZ2NjLmRnL1dzdHJpY3Qt ZmxleC1hcnJheXMtMi5jOiBOZXcgdGVzdC4NCj4+PiAJKiBnY2MuZGcvV3N0cmljdC1mbGV4LWFy cmF5cy0zLmM6IE5ldyB0ZXN0Lg0KPj4+IAkqIGdjYy5kZy9Xc3RyaWN0LWZsZXgtYXJyYXlzLmM6 IE5ldyB0ZXN0Lg0KPj4+IC0tLQ0KPj4+IGdjYy9jLWZhbWlseS9jLm9wdCAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgNSArDQo+Pj4gZ2NjL2RvYy9pbnZva2UudGV4aSAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDI3ICsrKystDQo+Pj4gZ2NjL2dpbXBsZS1hcnJheS1ib3VuZHMu Y2MgICAgICAgICAgICAgICAgICAgIHwgMTAzICsrKysrKysrKysrKysrLS0tLQ0KPj4+IGdjYy9v cHRzLmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArKw0KPj4+IC4u Li9jLWMrKy1jb21tb24vV3N0cmljdC1mbGV4LWFycmF5cy5jICAgICAgICB8ICAgOSArKw0KPj4+ IC4uLi9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0xLmMgICAgICB8ICAgNSArLQ0K Pj4+IC4uLi9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0yLmMgICAgICB8ICAgNiAr LQ0KPj4+IC4uLi9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0zLmMgICAgICB8ICAg NyArLQ0KPj4+IC4uLi9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy00LmMgICAgICB8 ICAgNSArLQ0KPj4+IC4uLi9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy01LmMgICAg ICB8ICAgNiArLQ0KPj4+IC4uLi9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy02LmMg ICAgICB8ICAgNyArLQ0KPj4+IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJh eXMtMi5jICB8ICAzOSArKysrKysrDQo+Pj4gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1m bGV4LWFycmF5cy0zLmMgIHwgIDM5ICsrKysrKysNCj4+PiBnY2MvdGVzdHN1aXRlL2djYy5kZy9X c3RyaWN0LWZsZXgtYXJyYXlzLmMgICAgfCAgMzkgKysrKysrKw0KPj4+IGdjYy90cmVlLXZycC5j YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQ0KPj4+IDE1IGZpbGVzIGNo YW5nZWQsIDI3MyBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkNCj4+PiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vV3N0cmljdC1mbGV4LWFycmF5cy5j DQo+Pj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxl eC1hcnJheXMtMi5jDQo+Pj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLmRn L1dzdHJpY3QtZmxleC1hcnJheXMtMy5jDQo+Pj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMuYw0KPj4+IA0KPj4+IGRpZmYgLS1naXQg YS9nY2MvYy1mYW1pbHkvYy5vcHQgYi9nY2MvYy1mYW1pbHkvYy5vcHQNCj4+PiBpbmRleCAwZDBh ZDBhNjM3NC4uMzNlZGVlZmQyODUgMTAwNjQ0DQo+Pj4gLS0tIGEvZ2NjL2MtZmFtaWx5L2Mub3B0 DQo+Pj4gKysrIGIvZ2NjL2MtZmFtaWx5L2Mub3B0DQo+Pj4gQEAgLTk3Niw2ICs5NzYsMTEgQEAg V3N0cmluZ29wLXRydW5jYXRpb24NCj4+PiBDIE9iakMgQysrIExUTyBPYmpDKysgVmFyKHdhcm5f c3RyaW5nb3BfdHJ1bmNhdGlvbikgV2FybmluZyBJbml0ICgxKSBMYW5nRW5hYmxlZEJ5KEMgT2Jq QyBDKysgTFRPIE9iakMrKywgV2FsbCkNCj4+PiBXYXJuIGFib3V0IHRydW5jYXRpb24gaW4gc3Ry aW5nIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgbGlrZSBzdHJuY2F0IGFuZCBzdHJuY3B5Lg0KPj4+ IA0KPj4+ICtXc3RyaWN0LWZsZXgtYXJyYXlzDQo+Pj4gK0MgQysrIFZhcih3YXJuX3N0cmljdF9m bGV4X2FycmF5cykgV2FybmluZw0KPj4+ICtXYXJuIGFib3V0IGlucHJvcGVyIHVzYWdlcyBvZiBm bGV4aWJsZSBhcnJheSBtZW1iZXJzDQo+Pj4gK2FjY29yZGluZyB0byB0aGUgbGV2ZWwgb2YgLWZz dHJpY3QtZmxleC1hcnJheXMuDQo+Pj4gKw0KPj4+IFdzdWdnZXN0LWF0dHJpYnV0ZT1mb3JtYXQN Cj4+PiBDIE9iakMgQysrIE9iakMrKyBWYXIod2Fybl9zdWdnZXN0X2F0dHJpYnV0ZV9mb3JtYXQp IFdhcm5pbmcNCj4+PiBXYXJuIGFib3V0IGZ1bmN0aW9ucyB3aGljaCBtaWdodCBiZSBjYW5kaWRh dGVzIGZvciBmb3JtYXQgYXR0cmlidXRlcy4NCj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL2RvYy9pbnZv a2UudGV4aSBiL2djYy9kb2MvaW52b2tlLnRleGkNCj4+PiBpbmRleCA3MjYzOTI0MDliNi4uNDQw MmIwNDI3ZWYgMTAwNjQ0DQo+Pj4gLS0tIGEvZ2NjL2RvYy9pbnZva2UudGV4aQ0KPj4+ICsrKyBi L2djYy9kb2MvaW52b2tlLnRleGkNCj4+PiBAQCAtMzk4LDcgKzM5OCw3IEBAIE9iamVjdGl2ZS1D IGFuZCBPYmplY3RpdmUtQysrIERpYWxlY3RzfS4NCj4+PiAtV3N0cmljdC1hbGlhc2luZz1uICAt V3N0cmljdC1vdmVyZmxvdyAgLVdzdHJpY3Qtb3ZlcmZsb3c9QHZhcntufSBAZ29sDQo+Pj4gLVdz dHJpbmctY29tcGFyZSBAZ29sDQo+Pj4gLVduby1zdHJpbmdvcC1vdmVyZmxvdyAtV25vLXN0cmlu Z29wLW92ZXJyZWFkIEBnb2wNCj4+PiAtLVduby1zdHJpbmdvcC10cnVuY2F0aW9uIEBnb2wNCj4+ PiArLVduby1zdHJpbmdvcC10cnVuY2F0aW9uIC1Xc3RyaWN0LWZsZXgtYXJyYXlzIEBnb2wNCj4+ PiAtV3N1Z2dlc3QtYXR0cmlidXRlPUBye1t9cHVyZUBye3x9Y29uc3RAcnt8fW5vcmV0dXJuQHJ7 fH1mb3JtYXRAcnt8fW1hbGxvY0Bye119IEBnb2wNCj4+PiAtV3N3aXRjaCAgLVduby1zd2l0Y2gt Ym9vbCAgLVdzd2l0Y2gtZGVmYXVsdCAgLVdzd2l0Y2gtZW51bSBAZ29sDQo+Pj4gLVduby1zd2l0 Y2gtb3V0c2lkZS1yYW5nZSAgLVduby1zd2l0Y2gtdW5yZWFjaGFibGUgIC1Xc3luYy1uYW5kIEBn b2wNCj4+PiBAQCAtNzgzNSw2ICs3ODM1LDMxIEBAIGhvd2V2ZXIsIGFyZSBub3Qgc3VpdGFibGUg YXJndW1lbnRzIHRvIGZ1bmN0aW9ucyB0aGF0IGV4cGVjdA0KPj4+IHN1Y2ggYXJyYXlzIEdDQyBp c3N1ZXMgd2FybmluZ3MgdW5sZXNzIGl0IGNhbiBwcm92ZSB0aGF0IHRoZSB1c2UgaXMNCj4+PiBz YWZlLiAgQHhyZWZ7Q29tbW9uIFZhcmlhYmxlIEF0dHJpYnV0ZXN9Lg0KPj4+IA0KPj4+ICtAaXRl bSAtV3N0cmljdC1mbGV4LWFycmF5cw0KPj4+ICtAb3BpbmRleCBXc3RyaWN0LWZsZXgtYXJyYXlz DQo+Pj4gK0BvcGluZGV4IFduby1zdHJpY3QtZmxleC1hcnJheXMNCj4+PiArV2FybiBhYm91dCBp bnByb3BlciB1c2FnZXMgb2YgZmxleGlibGUgYXJyYXkgbWVtYmVycw0KPj4+ICthY2NvcmRpbmcg dG8gdGhlIEB2YXJ7bGV2ZWx9IG9mIHRoZSBAY29kZXtzdHJpY3RfZmxleF9hcnJheSAoQHZhcnts ZXZlbH0pfQ0KPj4+ICthdHRyaWJ1dGUgYXR0YWNoZWQgdG8gdGhlIHRyYWlsaW5nIGFycmF5IGZp ZWxkIG9mIGEgc3RydWN0dXJlIGlmIGl0J3MNCj4+PiArYXZhaWxhYmxlLCBvdGhlcndpc2UgYWNj b3JkaW5nIHRvIHRoZSBAdmFye2xldmVsfSBvZiB0aGUgb3B0aW9uDQo+Pj4gK0BvcHRpb257LWZz dHJpY3QtZmxleC1hcnJheXM9QHZhcntsZXZlbH19Lg0KPj4+ICsNCj4+PiArVGhpcyBvcHRpb24g aXMgZWZmZWN0aXZlIG9ubHkgd2hlbiBAdmFye2xldmVsfSBpcyBiaWdnZXIgdGhhbiAwLiAgT3Ro ZXJ3aXNlLA0KPj4+ICtpdCB3aWxsIGJlIGlnbm9yZWQgd2l0aCBhIHdhcm5pbmcuDQo+Pj4gKw0K Pj4+ICt3aGVuIEB2YXJ7bGV2ZWx9PTEsIHdhcm5pbmdzIHdpbGwgYmUgaXNzdWVkIGZvciBhIHRy YWlsaW5nIGFycmF5IHJlZmVyZW5jZQ0KPj4+ICtvZiBhIHN0cnVjdHVyZSB0aGF0IGhhdmUgMiBv ciBtb3JlIGVsZW1lbnRzIGlmIHRoZSB0cmFpbGluZyBhcnJheSBpcyByZWZlcmVuY2VkDQo+Pj4g K2FzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyLg0KPj4+ICsNCj4+PiArd2hlbiBAdmFye2xldmVs fT0yLCBpbiBhZGRpdGlvbiB0byBAdmFye2xldmVsfT0xLCBhZGRpdGlvbmFsIHdhcm5pbmdzIHdp bGwgYmUNCj4+PiAraXNzdWVkIGZvciBhIHRyYWlsaW5nIG9uZS1lbGVtZW50IGFycmF5IHJlZmVy ZW5jZSBvZiBhIHN0cnVjdHVyZQ0KPj4+ICtpZiB0aGUgYXJyYXkgaXMgcmVmZXJlbmNlZCBhcyBh IGZsZXhpYmxlIGFycmF5IG1lbWJlci4NCj4+PiArDQo+Pj4gK3doZW4gQHZhcntsZXZlbH09Mywg aW4gYWRkaXRpb24gdG8gQHZhcntsZXZlbH09MiwgYWRkaXRpb25hbCB3YXJuaW5ncyB3aWxsIGJl DQo+Pj4gK2lzc3VlZCBmb3IgYSB0cmFpbGluZyB6ZXJvLWxlbmd0aCBhcnJheSByZWZlcmVuY2Ug b2YgYSBzdHJ1Y3R1cmUNCj4+PiAraWYgdGhlIGFycmF5IGlzIHJlZmVyZW5jZWQgYXMgYSBmbGV4 aWJsZSBhcnJheSBtZW1iZXIuDQo+Pj4gKw0KPj4+ICsNCj4+PiBAaXRlbSAtV3N1Z2dlc3QtYXR0 cmlidXRlPUBye1t9cHVyZUBye3x9Y29uc3RAcnt8fW5vcmV0dXJuQHJ7fH1mb3JtYXRAcnt8fWNv bGRAcnt8fW1hbGxvY0Bye119DQo+Pj4gQG9waW5kZXggV3N1Z2dlc3QtYXR0cmlidXRlPQ0KPj4+ IEBvcGluZGV4IFduby1zdWdnZXN0LWF0dHJpYnV0ZT0NCj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL2dp bXBsZS1hcnJheS1ib3VuZHMuY2MgYi9nY2MvZ2ltcGxlLWFycmF5LWJvdW5kcy5jYw0KPj4+IGlu ZGV4IGRiMzQ1OWFmMzI1Li44MjVmMTEzMzFiNSAxMDA2NDQNCj4+PiAtLS0gYS9nY2MvZ2ltcGxl LWFycmF5LWJvdW5kcy5jYw0KPj4+ICsrKyBiL2djYy9naW1wbGUtYXJyYXktYm91bmRzLmNjDQo+ Pj4gQEAgLTI1MiwyNSArMjUyLDM0IEBAIGdldF91cF9ib3VuZHNfZm9yX2FycmF5X3JlZiAodHJl ZSByZWYsIHRyZWUgKmRlY2wsDQo+Pj4gDQo+Pj4gLyogR2l2ZW4gdGhlIExPV19TVUJfT1JHLCBM T1dfU1VCIGFuZCBVUF9TVUIsIGFuZCB0aGUgY29tcHV0ZWQgVVBfQk9VTkQNCj4+PiAgIGFuZCBV UF9CT1VORF9QMSwgY2hlY2sgd2hldGhlciB0aGUgYXJyYXkgcmVmZXJlbmNlIFJFRiBpcyBvdXQg b2YgYm91bmQuDQo+Pj4gLSAgIElzc3VlIHdhcm5pbmdzIGlmIG91dCBvZiBib3VuZCwgcmV0dXJu IFRSVUUgaWYgd2FybmluZ3MgYXJlIGlzc3VlZC4gICovIA0KPj4+ICsgICBXaGVuIG91dCBvZiBi b3VuZHMsIHNldCBPVVRfT0ZfQk9VTkQgdG8gdHJ1ZS4NCj4+PiArICAgSXNzdWUgd2FybmluZ3Mg aWYgRk9SX0FSUkFZX0JPVU5EIGlzIHRydWUuDQo+Pj4gKyAgIHJldHVybiBUUlVFIGlmIHdhcm5p bmdzIGFyZSBpc3N1ZWQuICAqLw0KPj4+ICsNCj4+PiANCj4+PiBzdGF0aWMgYm9vbA0KPj4+IGNo ZWNrX291dF9vZl9ib3VuZHNfYW5kX3dhcm4gKGxvY2F0aW9uX3QgbG9jYXRpb24sIHRyZWUgcmVm LA0KPj4+IAkJCSAgICAgIHRyZWUgbG93X3N1Yl9vcmcsIHRyZWUgbG93X3N1YiwgdHJlZSB1cF9z dWIsDQo+Pj4gCQkJICAgICAgdHJlZSB1cF9ib3VuZCwgdHJlZSB1cF9ib3VuZF9wMSwNCj4+PiAJ CQkgICAgICBjb25zdCB2YWx1ZV9yYW5nZSAqdnIsDQo+Pj4gLQkJCSAgICAgIGJvb2wgaWdub3Jl X29mZl9ieV9vbmUpDQo+Pj4gKwkJCSAgICAgIGJvb2wgaWdub3JlX29mZl9ieV9vbmUsIGJvb2wg Zm9yX2FycmF5X2JvdW5kLA0KPj4+ICsJCQkgICAgICBib29sICpvdXRfb2ZfYm91bmQpDQo+Pj4g ew0KPj4+ICB0cmVlIGxvd19ib3VuZCA9IGFycmF5X3JlZl9sb3dfYm91bmQgKHJlZik7DQo+Pj4g IHRyZWUgYXJ0eXBlID0gVFJFRV9UWVBFIChUUkVFX09QRVJBTkQgKHJlZiwgMCkpOw0KPj4+IA0K Pj4+ICBib29sIHdhcm5lZCA9IGZhbHNlOw0KPj4+ICsgICpvdXRfb2ZfYm91bmQgPSBmYWxzZTsN Cj4+PiANCj4+PiAgLyogRW1wdHkgYXJyYXkuICAqLw0KPj4+ICBpZiAodXBfYm91bmQgJiYgdHJl ZV9pbnRfY3N0X2VxdWFsIChsb3dfYm91bmQsIHVwX2JvdW5kX3AxKSkNCj4+PiAtICAgIHdhcm5l ZCA9IHdhcm5pbmdfYXQgKGxvY2F0aW9uLCBPUFRfV2FycmF5X2JvdW5kc18sDQo+Pj4gLQkJCSAi YXJyYXkgc3Vic2NyaXB0ICVFIGlzIG91dHNpZGUgYXJyYXkgYm91bmRzIG9mICVxVCIsDQo+Pj4g LQkJCSBsb3dfc3ViX29yZywgYXJ0eXBlKTsNCj4+PiArICAgIHsNCj4+PiArICAgICAgKm91dF9v Zl9ib3VuZCA9IHRydWU7DQo+Pj4gKyAgICAgIGlmIChmb3JfYXJyYXlfYm91bmQpDQo+Pj4gKwl3 YXJuZWQgPSB3YXJuaW5nX2F0IChsb2NhdGlvbiwgT1BUX1dhcnJheV9ib3VuZHNfLA0KPj4+ICsJ CQkgICAgICJhcnJheSBzdWJzY3JpcHQgJUUgaXMgb3V0c2lkZSBhcnJheSINCj4+PiArCQkJICAg ICAiIGJvdW5kcyBvZiAlcVQiLCBsb3dfc3ViX29yZywgYXJ0eXBlKTsNCj4+PiArICAgIH0NCj4+ PiANCj4+PiAgaWYgKHdhcm5lZCkNCj4+PiAgICA7IC8qIERvIG5vdGhpbmcuICAqLw0KPj4+IEBA IC0yODMsMjQgKzI5MiwzMyBAQCBjaGVja19vdXRfb2ZfYm91bmRzX2FuZF93YXJuIChsb2NhdGlv bl90IGxvY2F0aW9uLCB0cmVlIHJlZiwNCj4+PiAJICAgICAgOiB0cmVlX2ludF9jc3RfbGUgKHVw X2JvdW5kLCB1cF9zdWIpKQ0KPj4+IAkgICYmIFRSRUVfQ09ERSAobG93X3N1YikgPT0gSU5URUdF Ul9DU1QNCj4+PiAJICAmJiB0cmVlX2ludF9jc3RfbGUgKGxvd19zdWIsIGxvd19ib3VuZCkpDQo+ Pj4gLQl3YXJuZWQgPSB3YXJuaW5nX2F0IChsb2NhdGlvbiwgT1BUX1dhcnJheV9ib3VuZHNfLA0K Pj4+IC0JCQkgICAgICJhcnJheSBzdWJzY3JpcHQgWyVFLCAlRV0gaXMgb3V0c2lkZSAiDQo+Pj4g LQkJCSAgICAgImFycmF5IGJvdW5kcyBvZiAlcVQiLA0KPj4+IC0JCQkgICAgIGxvd19zdWIsIHVw X3N1YiwgYXJ0eXBlKTsNCj4+PiArCXsNCj4+PiArCSAgKm91dF9vZl9ib3VuZCA9IHRydWU7DQo+ Pj4gKwkgIHdhcm5lZCA9IHdhcm5pbmdfYXQgKGxvY2F0aW9uLCBPUFRfV2FycmF5X2JvdW5kc18s DQo+Pj4gKwkJCSAgICAgICAiYXJyYXkgc3Vic2NyaXB0IFslRSwgJUVdIGlzIG91dHNpZGUgIg0K Pj4+ICsJCQkgICAgICAgImFycmF5IGJvdW5kcyBvZiAlcVQiLA0KPj4+ICsJCQkgICAgICAgbG93 X3N1YiwgdXBfc3ViLCBhcnR5cGUpOw0KPj4+ICsJfQ0KPj4+ICAgIH0NCj4+PiAgZWxzZSBpZiAo dXBfYm91bmQNCj4+PiAJICAgJiYgVFJFRV9DT0RFICh1cF9zdWIpID09IElOVEVHRVJfQ1NUDQo+ Pj4gCSAgICYmIChpZ25vcmVfb2ZmX2J5X29uZQ0KPj4+IAkgICAgICAgPyAhdHJlZV9pbnRfY3N0 X2xlICh1cF9zdWIsIHVwX2JvdW5kX3AxKQ0KPj4+IAkgICAgICAgOiAhdHJlZV9pbnRfY3N0X2xl ICh1cF9zdWIsIHVwX2JvdW5kKSkpDQo+Pj4gLSAgICB3YXJuZWQgPSB3YXJuaW5nX2F0IChsb2Nh dGlvbiwgT1BUX1dhcnJheV9ib3VuZHNfLA0KPj4+IC0JCQkgImFycmF5IHN1YnNjcmlwdCAlRSBp cyBhYm92ZSBhcnJheSBib3VuZHMgb2YgJXFUIiwNCj4+PiAtCQkJIHVwX3N1YiwgYXJ0eXBlKTsN Cj4+PiArICAgIHsNCj4+PiArICAgICAgKm91dF9vZl9ib3VuZCA9IHRydWU7DQo+Pj4gKyAgICAg IHdhcm5lZCA9IHdhcm5pbmdfYXQgKGxvY2F0aW9uLCBPUFRfV2FycmF5X2JvdW5kc18sDQo+Pj4g KwkJCSAgICJhcnJheSBzdWJzY3JpcHQgJUUgaXMgYWJvdmUgYXJyYXkgYm91bmRzIG9mICVxVCIs DQo+Pj4gKwkJCSAgIHVwX3N1YiwgYXJ0eXBlKTsNCj4+PiArICAgIH0NCj4+PiAgZWxzZSBpZiAo VFJFRV9DT0RFIChsb3dfc3ViKSA9PSBJTlRFR0VSX0NTVA0KPj4+IAkgICAmJiB0cmVlX2ludF9j c3RfbHQgKGxvd19zdWIsIGxvd19ib3VuZCkpDQo+Pj4gLSAgICB3YXJuZWQgPSB3YXJuaW5nX2F0 IChsb2NhdGlvbiwgT1BUX1dhcnJheV9ib3VuZHNfLA0KPj4+IC0JCQkgImFycmF5IHN1YnNjcmlw dCAlRSBpcyBiZWxvdyBhcnJheSBib3VuZHMgb2YgJXFUIiwNCj4+PiAtCQkJIGxvd19zdWIsIGFy dHlwZSk7DQo+Pj4gKyAgICB7DQo+Pj4gKyAgICAgICpvdXRfb2ZfYm91bmQgPSB0cnVlOw0KPj4+ ICsgICAgICB3YXJuZWQgPSB3YXJuaW5nX2F0IChsb2NhdGlvbiwgT1BUX1dhcnJheV9ib3VuZHNf LA0KPj4+ICsJCQkgICAiYXJyYXkgc3Vic2NyaXB0ICVFIGlzIGJlbG93IGFycmF5IGJvdW5kcyBv ZiAlcVQiLA0KPj4+ICsJCQkgICBsb3dfc3ViLCBhcnR5cGUpOw0KPj4+ICsgICAgfQ0KPj4+ICBy ZXR1cm4gd2FybmVkOw0KPj4+IH0NCj4+PiANCj4+PiBAQCAtMzMzLDE0ICszNTEsMjEgQEAgYXJy YXlfYm91bmRzX2NoZWNrZXI6OmNoZWNrX2FycmF5X3JlZiAobG9jYXRpb25fdCBsb2NhdGlvbiwg dHJlZSByZWYsDQo+Pj4gDQo+Pj4gIHRyZWUgYXJnID0gVFJFRV9PUEVSQU5EIChyZWYsIDApOw0K Pj4+ICBjb25zdCBib29sIGNvbXByZWYgPSBUUkVFX0NPREUgKGFyZykgPT0gQ09NUE9ORU5UX1JF RjsNCj4+PiArICB1bnNpZ25lZCBpbnQgc3RyaWN0X2ZsZXhfYXJyYXlfbGV2ZWwgPSBmbGFnX3N0 cmljdF9mbGV4X2FycmF5czsNCj4+PiANCj4+PiAgaWYgKGNvbXByZWYpDQo+Pj4gLSAgICAvKiBU cnkgdG8gZGV0ZXJtaW5lIHNwZWNpYWwgYXJyYXkgbWVtYmVyIHR5cGUgZm9yIHRoaXMgQ09NUE9O RU5UX1JFRi4gICovDQo+Pj4gLSAgICBzYW0gPSBjb21wb25lbnRfcmVmX3NhbV90eXBlIChhcmcp Ow0KPj4+ICsgICAgew0KPj4+ICsgICAgICAvKiBUcnkgdG8gZGV0ZXJtaW5lIHNwZWNpYWwgYXJy YXkgbWVtYmVyIHR5cGUgZm9yIHRoaXMgQ09NUE9ORU5UX1JFRi4gICovDQo+Pj4gKyAgICAgIHNh bSA9IGNvbXBvbmVudF9yZWZfc2FtX3R5cGUgKGFyZyk7DQo+Pj4gKyAgICAgIC8qIEdldCB0aGUg bGV2ZWwgb2Ygc3RyaWN0X2ZsZXhfYXJyYXkgZm9yIHRoaXMgYXJyYXkgZmllbGQuICAqLw0KPj4+ ICsgICAgICB0cmVlIGFmaWVsZF9kZWNsID0gVFJFRV9PUEVSQU5EIChhcmcsIDEpOw0KPj4+ICsg ICAgICBzdHJpY3RfZmxleF9hcnJheV9sZXZlbCA9IHN0cmljdF9mbGV4X2FycmF5X2xldmVsX29m IChhZmllbGRfZGVjbCk7DQo+Pj4gKyAgICB9DQo+Pj4gDQo+Pj4gIGdldF91cF9ib3VuZHNfZm9y X2FycmF5X3JlZiAocmVmLCAmZGVjbCwgJnVwX2JvdW5kLCAmdXBfYm91bmRfcDEpOw0KPj4+IA0K Pj4+ICBib29sIHdhcm5lZCA9IGZhbHNlOw0KPj4+ICsgIGJvb2wgb3V0X29mX2JvdW5kID0gZmFs c2U7DQo+Pj4gDQo+Pj4gIHRyZWUgYXJ0eXBlID0gVFJFRV9UWVBFIChUUkVFX09QRVJBTkQgKHJl ZiwgMCkpOw0KPj4+ICB0cmVlIGxvd19zdWJfb3JnID0gVFJFRV9PUEVSQU5EIChyZWYsIDEpOw0K Pj4+IEBAIC0zNjEsNyArMzg2LDggQEAgYXJyYXlfYm91bmRzX2NoZWNrZXI6OmNoZWNrX2FycmF5 X3JlZiAobG9jYXRpb25fdCBsb2NhdGlvbiwgdHJlZSByZWYsDQo+Pj4gIHdhcm5lZCA9IGNoZWNr X291dF9vZl9ib3VuZHNfYW5kX3dhcm4gKGxvY2F0aW9uLCByZWYsDQo+Pj4gCQkJCQkgbG93X3N1 Yl9vcmcsIGxvd19zdWIsIHVwX3N1YiwNCj4+PiAJCQkJCSB1cF9ib3VuZCwgdXBfYm91bmRfcDEs IHZyLA0KPj4+IC0JCQkJCSBpZ25vcmVfb2ZmX2J5X29uZSk7DQo+Pj4gKwkJCQkJIGlnbm9yZV9v ZmZfYnlfb25lLCB3YXJuX2FycmF5X2JvdW5kcywNCj4+PiArCQkJCQkgJm91dF9vZl9ib3VuZCk7 DQo+Pj4gDQo+Pj4gDQo+Pj4gIGlmICghd2FybmVkICYmIHNhbSA9PSBzcGVjaWFsX2FycmF5X21l bWJlcjo6aW50XzApDQo+Pj4gQEAgLTM3MywxOSArMzk5LDU2IEBAIGFycmF5X2JvdW5kc19jaGVj a2VyOjpjaGVja19hcnJheV9yZWYgKGxvY2F0aW9uX3QgbG9jYXRpb24sIHRyZWUgcmVmLA0KPj4+ IAkJCSAgICAgICAib2YgYW4gaW50ZXJpb3IgemVyby1sZW5ndGggYXJyYXkgJXFUIikpLA0KPj4+ IAkJCSBsb3dfc3ViLCBhcnR5cGUpOw0KPj4+IA0KPj4+IC0gIGlmICh3YXJuZWQpDQo+Pj4gKyAg aWYgKHdhcm5lZCB8fCBvdXRfb2ZfYm91bmQpDQo+Pj4gICAgew0KPj4+IC0gICAgICBpZiAoZHVt cF9maWxlICYmIChkdW1wX2ZsYWdzICYgVERGX0RFVEFJTFMpKQ0KPj4+ICsgICAgICBpZiAod2Fy bmVkICYmIGR1bXBfZmlsZSAmJiAoZHVtcF9mbGFncyAmIFRERl9ERVRBSUxTKSkNCj4+PiAJew0K Pj4+IAkgIGZwcmludGYgKGR1bXBfZmlsZSwgIkFycmF5IGJvdW5kIHdhcm5pbmcgZm9yICIpOw0K Pj4+IAkgIGR1bXBfZ2VuZXJpY19leHByIChNU0dfTk9URSwgVERGX1NMSU0sIHJlZik7DQo+Pj4g CSAgZnByaW50ZiAoZHVtcF9maWxlLCAiXG4iKTsNCj4+PiAJfQ0KPj4+IA0KPj4+ICsgICAgICAv KiBpc3N1ZSB3YXJuaW5ncyBmb3IgLVdzdHJpY3QtZmxleC1hcnJheXMgYWNjb3JkaW5nIHRvIHRo ZSBsZXZlbCBvZg0KPj4+ICsJIGZsYWdfc3RyaWN0X2ZsZXhfYXJyYXlzLiAgKi8NCj4+PiArICAg ICAgaWYgKG91dF9vZl9ib3VuZCAmJiB3YXJuX3N0cmljdF9mbGV4X2FycmF5cykNCj4+PiArICAg ICAgc3dpdGNoIChzdHJpY3RfZmxleF9hcnJheV9sZXZlbCkNCj4+PiArCXsNCj4+PiArCSAgY2Fz ZSAzOg0KPj4+ICsJICAgIC8qIElzc3VlIGFkZGl0aW9uYWwgd2FybmluZ3MgZm9yIHRyYWlsaW5n IGFycmF5cyBbMF0uICAqLw0KPj4+ICsJICAgIGlmIChzYW0gPT0gc3BlY2lhbF9hcnJheV9tZW1i ZXI6OnRyYWlsXzApDQo+Pj4gKwkgICAgICB3YXJuZWQgPSB3YXJuaW5nX2F0IChsb2NhdGlvbiwg T1BUX1dzdHJpY3RfZmxleF9hcnJheXMsDQo+Pj4gKwkJCQkgICAidHJhaWxpbmcgYXJyYXkgJXFU IHNob3VsZCBub3QgYmUgdXNlZCBhcyAiDQo+Pj4gKwkJCQkgICAiYSBmbGV4aWJsZSBhcnJheSBt ZW1iZXIgZm9yIGxldmVsIDMiLA0KPj4+ICsJCQkJICAgYXJ0eXBlKTsNCj4+PiArCSAgICAvKiBG QUxMVEhST1VHSC4gICovDQo+Pj4gKwkgIGNhc2UgMjoNCj4+PiArCSAgICAvKiBJc3N1ZSBhZGRp dGlvbmFsIHdhcm5pbmdzIGZvciB0cmFpbGluZyBhcnJheXMgWzFdLiAgKi8NCj4+PiArCSAgICBp ZiAoc2FtID09IHNwZWNpYWxfYXJyYXlfbWVtYmVyOjp0cmFpbF8xKQ0KPj4+ICsJICAgICAgd2Fy bmVkID0gd2FybmluZ19hdCAobG9jYXRpb24sIE9QVF9Xc3RyaWN0X2ZsZXhfYXJyYXlzLA0KPj4+ ICsJCQkJICAgInRyYWlsaW5nIGFycmF5ICVxVCBzaG91bGQgbm90IGJlIHVzZWQgYXMgIg0KPj4+ ICsJCQkJICAgImEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAyIGFuZCAiDQo+Pj4g KwkJCQkgICAiYWJvdmUiLCBhcnR5cGUpOw0KPj4+ICsJICAgIC8qIEZBTExUSFJPVUdILiAgKi8N Cj4+PiArCSAgY2FzZSAxOg0KPj4+ICsJICAgIC8qIElzc3VlIHdhcm5pbmdzIGZvciB0cmFpbGlu ZyBhcnJheXMgW25dLiAgKi8NCj4+PiArCSAgICBpZiAoc2FtID09IHNwZWNpYWxfYXJyYXlfbWVt YmVyOjp0cmFpbF9uKQ0KPj4+ICsJICAgICAgd2FybmVkID0gd2FybmluZ19hdCAobG9jYXRpb24s IE9QVF9Xc3RyaWN0X2ZsZXhfYXJyYXlzLA0KPj4+ICsJCQkJICAgInRyYWlsaW5nIGFycmF5ICVx VCBzaG91bGQgbm90IGJlIHVzZWQgYXMgIg0KPj4+ICsJCQkJICAgImEgZmxleGlibGUgYXJyYXkg bWVtYmVyIGZvciBsZXZlbCAxIGFuZCAiDQo+Pj4gKwkJCQkgICAiYWJvdmUiLCBhcnR5cGUpOw0K Pj4+ICsJICAgIGJyZWFrOw0KPj4+ICsJICBjYXNlIDA6DQo+Pj4gKwkgICAgLyogRG8gbm90aGlu Zy4gICovDQo+Pj4gKwkgICAgYnJlYWs7DQo+Pj4gKwkgIGRlZmF1bHQ6DQo+Pj4gKwkgICAgZ2Nj X3VucmVhY2hhYmxlICgpOw0KPj4+ICsJfQ0KPj4+ICsNCj4+PiAgICAgIC8qIEF2b2lkIG1vcmUg d2FybmluZ3Mgd2hlbiBjaGVja2luZyBtb3JlIHNpZ25pZmljYW50IHN1YnNjcmlwdHMNCj4+PiAJ IG9mIHRoZSBzYW1lIGV4cHJlc3Npb24uICAqLw0KPj4+ICAgICAgcmVmID0gVFJFRV9PUEVSQU5E IChyZWYsIDApOw0KPj4+ICAgICAgc3VwcHJlc3Nfd2FybmluZyAocmVmLCBPUFRfV2FycmF5X2Jv dW5kc18pOw0KPj4+ICsgICAgICBzdXBwcmVzc193YXJuaW5nIChyZWYsIE9QVF9Xc3RyaWN0X2Zs ZXhfYXJyYXlzKTsNCj4+PiANCj4+PiAgICAgIGlmIChkZWNsKQ0KPj4+IAlyZWYgPSBkZWNsOw0K Pj4+IGRpZmYgLS1naXQgYS9nY2Mvb3B0cy5jYyBiL2djYy9vcHRzLmNjDQo+Pj4gaW5kZXggNzNm Yzk3NzU2ZTQuLjhkYjUzYWQ2Yzc3IDEwMDY0NA0KPj4+IC0tLSBhL2djYy9vcHRzLmNjDQo+Pj4g KysrIGIvZ2NjL29wdHMuY2MNCj4+PiBAQCAtMTQxMSw2ICsxNDExLDE0IEBAIGZpbmlzaF9vcHRp b25zIChzdHJ1Y3QgZ2NjX29wdGlvbnMgKm9wdHMsIHN0cnVjdCBnY2Nfb3B0aW9ucyAqb3B0c19z ZXQsDQo+Pj4gICAgICBvcHRzLT54X3Byb2ZpbGVfZmxhZyA9IDA7DQo+Pj4gICAgfQ0KPj4+IA0K Pj4+ICsgIGlmIChvcHRzLT54X3dhcm5fc3RyaWN0X2ZsZXhfYXJyYXlzKQ0KPj4+ICsgICAgaWYg KG9wdHMtPnhfZmxhZ19zdHJpY3RfZmxleF9hcnJheXMgPT0gMCkNCj4+PiArICAgICAgew0KPj4+ ICsJb3B0cy0+eF93YXJuX3N0cmljdF9mbGV4X2FycmF5cyA9IDA7DQo+Pj4gKwl3YXJuaW5nX2F0 IChVTktOT1dOX0xPQ0FUSU9OLCAwLA0KPj4+ICsJCSAgICAiJTwtV3N0cmljdC1mbGV4LWFycmF5 cyU+IGlzIGlnbm9yZWQgd2hlbiINCj4+PiArCQkgICAgIiAlPC1mc3RyaWN0LWZsZXgtYXJyYXlz JT4gZG9lcyBub3QgcHJlc2VudCIpOw0KPj4+ICsgICAgICB9DQo+Pj4gDQo+Pj4gIGRpYWdub3Nl X29wdGlvbnMgKG9wdHMsIG9wdHNfc2V0LCBsb2MpOw0KPj4+IH0NCj4+PiBkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vV3N0cmljdC1mbGV4LWFycmF5cy5jIGIvZ2NjL3Rl c3RzdWl0ZS9jLWMrKy1jb21tb24vV3N0cmljdC1mbGV4LWFycmF5cy5jDQo+Pj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQNCj4+PiBpbmRleCAwMDAwMDAwMDAwMC4uNzJiNGI3YzY0MDYNCj4+PiAtLS0g L2Rldi9udWxsDQo+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vV3N0cmljdC1m bGV4LWFycmF5cy5jDQo+Pj4gQEAgLTAsMCArMSw5IEBADQo+Pj4gKy8qIFRlc3QgdGhlIHVzYWdl IG9mIG9wdGlvbiAtV3N0cmljdC1mbGV4LWFycmF5cy4gICovDQo+Pj4gKy8qIHsgZGctZG8gY29t cGlsZSB9ICovDQo+Pj4gKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1Xc3RyaWN0LWZsZXgtYXJyYXlz IiB9ICovDQo+Pj4gKw0KPj4+ICtpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQ0KPj4+ ICt7DQo+Pj4gKyAgICByZXR1cm4gMDsNCj4+PiArfQ0KPj4+ICsvKiB7IGRnLXdhcm5pbmcgImlz IGlnbm9yZWQgd2hlbiBcJy1mc3RyaWN0LWZsZXgtYXJyYXlzXCcgZG9lcyBub3QgcHJlc2VudCIg IiIgeyB0YXJnZXQgKi0qLSogfSAwIH0gKi8NCj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0xLmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTEuYw0KPj4+IGluZGV4IGQzNmJhNGQ4NmNi Li42NWM5ZmVjNDNhZiAxMDA2NDQNCj4+PiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJy YXktYm91bmRzLWZsZXgtYXJyYXlzLTEuYw0KPj4+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRn L1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtMS5jDQo+Pj4gQEAgLTEsNiArMSw2IEBADQo+Pj4g LS8qIFRlc3QgLWZzdHJpY3QtZmxleC1hcnJheXMgKyAtV2FycmF5LWJvdW5kcy4gICovDQo+Pj4g Ky8qIFRlc3QgLWZzdHJpY3QtZmxleC1hcnJheXMgKyAtV2FycmF5LWJvdW5kcyArIC1Xc3RyaWN0 LWZsZXgtYXJyYXlzLiAgKi8NCj4+PiAvKiB7IGRnLWRvIGNvbXBpbGV9ICovDQo+Pj4gLS8qIHsg ZGctb3B0aW9ucyAiLU8yIC1mc3RyaWN0LWZsZXgtYXJyYXlzPTEgLVdhcnJheS1ib3VuZHMiIH0g Ki8NCj4+PiArLyogeyBkZy1vcHRpb25zICItTzIgLVdzdHJpY3QtZmxleC1hcnJheXMgLWZzdHJp Y3QtZmxleC1hcnJheXM9MSAtV2FycmF5LWJvdW5kcyIgfSAqLw0KPj4+IA0KPj4+IHN0cnVjdCB0 cmFpbGluZ19hcnJheV8xIHsNCj4+PiAgICBpbnQgYTsNCj4+PiBAQCAtMzIsNiArMzIsNyBAQCB2 b2lkIF9fYXR0cmlidXRlX18oKF9fbm9pbmxpbmVfXykpIHN0dWZmKA0KPj4+ICAgIHN0cnVjdCB0 cmFpbGluZ19hcnJheV80ICp0cmFpbGluZ19mbGV4KQ0KPj4+IHsNCj4+PiAgICBub3JtYWwtPmNb NV0gPSA1OyAJLyp7IGRnLXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCA1IGlzIGFib3ZlIGFycmF5 IGJvdW5kcyBvZiIgfSAqLw0KPj4+ICsgICAgCQkJLyp7IGRnLXdhcm5pbmcgInNob3VsZCBub3Qg YmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUi ICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8NCj4+PiAgICB0cmFpbGluZ18xLT5jWzJdID0g MjsgLyogeyBkZy1ib2d1cyAiYXJyYXkgc3Vic2NyaXB0ICIgfSAqLw0KPj4+ICAgIHRyYWlsaW5n XzAtPmNbMV0gPSAxOyAvKiB7IGRnLWJvZ3VzICJhcnJheSBzdWJzY3JpcHQgIiB9ICovDQo+Pj4g ICAgdHJhaWxpbmdfZmxleC0+Y1sxMF0gPSAxMDsgLyogeyBkZy1ib2d1cyAiYXJyYXkgc3Vic2Ny aXB0ICIgfSAqLw0KPj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXkt Ym91bmRzLWZsZXgtYXJyYXlzLTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3Vu ZHMtZmxleC1hcnJheXMtMi5jDQo+Pj4gaW5kZXggZjYzMjA2ZTE5NDguLjJiNWE4OTVjNTk4IDEw MDY0NA0KPj4+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1h cnJheXMtMi5jDQo+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1m bGV4LWFycmF5cy0yLmMNCj4+PiBAQCAtMSw2ICsxLDYgQEANCj4+PiAtLyogVGVzdCAtZnN0cmlj dC1mbGV4LWFycmF5cyArIC1XYXJyYXktYm91bmRzLiAgKi8NCj4+PiArLyogVGVzdCAtZnN0cmlj dC1mbGV4LWFycmF5cyArIC1XYXJyYXktYm91bmRzICsgLVdzdHJpY3QtZmxleC1hcnJheXMuICAq Lw0KPj4+IC8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+Pj4gLS8qIHsgZGctb3B0aW9ucyAiLU8y IC1mc3RyaWN0LWZsZXgtYXJyYXlzPTIgLVdhcnJheS1ib3VuZHMiIH0gKi8NCj4+PiArLyogeyBk Zy1vcHRpb25zICItTzIgLVdzdHJpY3QtZmxleC1hcnJheXMgLWZzdHJpY3QtZmxleC1hcnJheXM9 MiAtV2FycmF5LWJvdW5kcyIgfSAqLw0KPj4+IA0KPj4+IHN0cnVjdCB0cmFpbGluZ19hcnJheV8x IHsNCj4+PiAgICBpbnQgYTsNCj4+PiBAQCAtMzIsNyArMzIsOSBAQCB2b2lkIF9fYXR0cmlidXRl X18oKF9fbm9pbmxpbmVfXykpIHN0dWZmKA0KPj4+ICAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV80 ICp0cmFpbGluZ19mbGV4KQ0KPj4+IHsNCj4+PiAgICBub3JtYWwtPmNbNV0gPSA1OyAJLyp7IGRn LXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCA1IGlzIGFib3ZlIGFycmF5IGJvdW5kcyBvZiIgfSAq Lw0KPj4+ICsgICAgCQkJLyp7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZs ZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiICIiIHsgdGFyZ2V0ICot Ki0qIH0gLi0xIH0gKi8NCj4+PiAgICB0cmFpbGluZ18xLT5jWzJdID0gMjsgLyogeyBkZy13YXJu aW5nICJhcnJheSBzdWJzY3JpcHQgMiBpcyBhYm92ZSBhcnJheSBib3VuZHMgb2YiICB9ICovDQo+ Pj4gKyAgICAJCQkgIC8qIHsgZGctd2FybmluZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxl eGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAyIGFuZCBhYm92ZSIgIiIgeyB0YXJnZXQgKi0q LSogfSAuLTEgfSAqLw0KPj4+ICAgIHRyYWlsaW5nXzAtPmNbMV0gPSAxOyAvKiB7IGRnLWJvZ3Vz ICJhcnJheSBzdWJzY3JpcHQgIiB9ICovDQo+Pj4gICAgdHJhaWxpbmdfZmxleC0+Y1sxMF0gPSAx MDsgLyogeyBkZy1ib2d1cyAiYXJyYXkgc3Vic2NyaXB0ICIgfSAqLw0KPj4+IA0KPj4+IGRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTMu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtMy5jDQo+ Pj4gaW5kZXggZTMyNzM3MTRlOGIuLjI1YjkwM2YyNjE1IDEwMDY0NA0KPj4+IC0tLSBhL2djYy90 ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtMy5jDQo+Pj4gKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0zLmMNCj4+PiBA QCAtMSw2ICsxLDYgQEANCj4+PiAtLyogVGVzdCAtZnN0cmljdC1mbGV4LWFycmF5cyArIC1XYXJy YXktYm91bmRzLiAgKi8NCj4+PiArLyogVGVzdCAtZnN0cmljdC1mbGV4LWFycmF5cyArIC1XYXJy YXktYm91bmRzICsgLVdzdHJpY3QtZmxleC1hcnJheXMuICAqLw0KPj4+IC8qIHsgZGctZG8gY29t cGlsZSB9ICovDQo+Pj4gLS8qIHsgZGctb3B0aW9ucyAiLU8yIC1mc3RyaWN0LWZsZXgtYXJyYXlz PTMgLVdhcnJheS1ib3VuZHMiIH0gKi8NCj4+PiArLyogeyBkZy1vcHRpb25zICItTzIgLVdzdHJp Y3QtZmxleC1hcnJheXMgLWZzdHJpY3QtZmxleC1hcnJheXM9MyAtV2FycmF5LWJvdW5kcyIgfSAq Lw0KPj4+IA0KPj4+IHN0cnVjdCB0cmFpbGluZ19hcnJheV8xIHsNCj4+PiAgICBpbnQgYTsNCj4+ PiBAQCAtMzIsOCArMzIsMTEgQEAgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX25vaW5saW5lX18pKSBz dHVmZigNCj4+PiAgICBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCAqdHJhaWxpbmdfZmxleCkNCj4+ PiB7DQo+Pj4gICAgbm9ybWFsLT5jWzVdID0gNTsgCS8qeyBkZy13YXJuaW5nICJhcnJheSBzdWJz Y3JpcHQgNSBpcyBhYm92ZSBhcnJheSBib3VuZHMgb2YiIH0gKi8gDQo+Pj4gKyAgICAJCQkvKnsg ZGctd2FybmluZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVy IGZvciBsZXZlbCAxIGFuZCBhYm92ZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLw0KPj4+ ICAgIHRyYWlsaW5nXzEtPmNbMl0gPSAyOyAvKnsgZGctd2FybmluZyAiYXJyYXkgc3Vic2NyaXB0 IDIgaXMgYWJvdmUgYXJyYXkgYm91bmRzIG9mIiB9ICovIA0KPj4+ICsgICAgCQkJICAvKiB7IGRn LXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBm b3IgbGV2ZWwgMiBhbmQgYWJvdmUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8NCj4+PiAg ICB0cmFpbGluZ18wLT5jWzFdID0gMTsgLyp7IGRnLXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCAx IGlzIG91dHNpZGUgYXJyYXkgYm91bmRzIG9mIiB9ICovIA0KPj4+ICsgICAgCQkJICAvKiB7IGRn LXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBm b3IgbGV2ZWwgMyIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLw0KPj4+ICAgIHRyYWlsaW5n X2ZsZXgtPmNbMTBdID0gMTA7IC8qIHsgZGctYm9ndXMgImFycmF5IHN1YnNjcmlwdCIgfSAqLw0K Pj4+IA0KPj4+IH0NCj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5 LWJvdW5kcy1mbGV4LWFycmF5cy00LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91 bmRzLWZsZXgtYXJyYXlzLTQuYw0KPj4+IGluZGV4IGNhYmFlYTc3ZGMyLi41ZmM1MDBhMTljYSAx MDA2NDQNCj4+PiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgt YXJyYXlzLTQuYw0KPj4+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMt ZmxleC1hcnJheXMtNC5jDQo+Pj4gQEAgLTEsNiArMSw2IEBADQo+Pj4gLS8qIFRlc3QgLWZzdHJp Y3QtZmxleC1hcnJheXMgKyAtV2FycmF5LWJvdW5kcz0yLiAgKi8NCj4+PiArLyogVGVzdCAtZnN0 cmljdC1mbGV4LWFycmF5cyArIC1XYXJyYXktYm91bmRzPTIgKyAtV3N0cmljdC1mbGV4LWFycmF5 cy4gICovDQo+Pj4gLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4+PiAtLyogeyBkZy1vcHRpb25z ICItTzIgLWZzdHJpY3QtZmxleC1hcnJheXM9MSAtV2FycmF5LWJvdW5kcz0yIiB9ICovDQo+Pj4g Ky8qIHsgZGctb3B0aW9ucyAiLU8yIC1Xc3RyaWN0LWZsZXgtYXJyYXlzIC1mc3RyaWN0LWZsZXgt YXJyYXlzPTEgLVdhcnJheS1ib3VuZHM9MiIgfSAqLw0KPj4+IA0KPj4+IHN0cnVjdCB0cmFpbGlu Z19hcnJheV8xIHsNCj4+PiAgICBpbnQgYTsNCj4+PiBAQCAtMzIsNiArMzIsNyBAQCB2b2lkIF9f YXR0cmlidXRlX18oKF9fbm9pbmxpbmVfXykpIHN0dWZmKA0KPj4+ICAgIHN0cnVjdCB0cmFpbGlu Z19hcnJheV80ICp0cmFpbGluZ19mbGV4KQ0KPj4+IHsNCj4+PiAgICBub3JtYWwtPmNbNV0gPSA1 OyAJLyp7IGRnLXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCA1IGlzIGFib3ZlIGFycmF5IGJvdW5k cyBvZiIgfSAqLw0KPj4+ICsgICAgCQkJLyp7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNl ZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiICIiIHsg dGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8NCj4+PiAgICB0cmFpbGluZ18xLT5jWzJdID0gMjsgLyog eyBkZy1ib2d1cyAiYXJyYXkgc3Vic2NyaXB0ICIgfSAqLw0KPj4+ICAgIHRyYWlsaW5nXzAtPmNb MV0gPSAxOyAvKiB7IGRnLWJvZ3VzICJhcnJheSBzdWJzY3JpcHQgIiB9ICovDQo+Pj4gICAgdHJh aWxpbmdfZmxleC0+Y1sxMF0gPSAxMDsgLyogeyBkZy1ib2d1cyAiYXJyYXkgc3Vic2NyaXB0ICIg fSAqLw0KPj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRz LWZsZXgtYXJyYXlzLTUuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxl eC1hcnJheXMtNS5jDQo+Pj4gaW5kZXggOGI3ZGI2ZTRmMzkuLjMwYmI0Y2E4ODMyIDEwMDY0NA0K Pj4+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMt NS5jDQo+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFy cmF5cy01LmMNCj4+PiBAQCAtMSw2ICsxLDYgQEANCj4+PiAtLyogVGVzdCAtZnN0cmljdC1mbGV4 LWFycmF5cyArIC1XYXJyYXktYm91bmRzPTIuICAqLw0KPj4+ICsvKiBUZXN0IC1mc3RyaWN0LWZs ZXgtYXJyYXlzICsgLVdhcnJheS1ib3VuZHM9MiArIC1Xc3RyaWN0LWZsZXgtYXJyYXlzLiAgKi8N Cj4+PiAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPj4+IC0vKiB7IGRnLW9wdGlvbnMgIi1PMiAt ZnN0cmljdC1mbGV4LWFycmF5cz0yIC1XYXJyYXktYm91bmRzPTIiIH0gKi8NCj4+PiArLyogeyBk Zy1vcHRpb25zICItTzIgLVdzdHJpY3QtZmxleC1hcnJheXMgLWZzdHJpY3QtZmxleC1hcnJheXM9 MiAtV2FycmF5LWJvdW5kcz0yIiB9ICovDQo+Pj4gDQo+Pj4gc3RydWN0IHRyYWlsaW5nX2FycmF5 XzEgew0KPj4+ICAgIGludCBhOw0KPj4+IEBAIC0zMiw3ICszMiw5IEBAIHZvaWQgX19hdHRyaWJ1 dGVfXygoX19ub2lubGluZV9fKSkgc3R1ZmYoDQo+Pj4gICAgc3RydWN0IHRyYWlsaW5nX2FycmF5 XzQgKnRyYWlsaW5nX2ZsZXgpDQo+Pj4gew0KPj4+ICAgIG5vcm1hbC0+Y1s1XSA9IDU7ICAgLyp7 IGRnLXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCA1IGlzIGFib3ZlIGFycmF5IGJvdW5kcyBvZiIg fSAqLw0KPj4+ICsgICAgCQkJLyp7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBh IGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiICIiIHsgdGFyZ2V0 ICotKi0qIH0gLi0xIH0gKi8NCj4+PiAgICB0cmFpbGluZ18xLT5jWzJdID0gMjsgLyp7IGRnLXdh cm5pbmcgImFycmF5IHN1YnNjcmlwdCAyIGlzIGFib3ZlIGFycmF5IGJvdW5kcyBvZiIgfSAqLw0K Pj4+ICsgICAgCQkJICAvKiB7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZs ZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMiBhbmQgYWJvdmUiICIiIHsgdGFyZ2V0ICot Ki0qIH0gLi0xIH0gKi8NCj4+PiAgICB0cmFpbGluZ18wLT5jWzFdID0gMTsgLyogeyBkZy1ib2d1 cyAiYXJyYXkgc3Vic2NyaXB0ICIgfSAqLw0KPj4+ICAgIHRyYWlsaW5nX2ZsZXgtPmNbMTBdID0g MTA7IC8qIHsgZGctYm9ndXMgImFycmF5IHN1YnNjcmlwdCAiIH0gKi8NCj4+PiANCj4+PiBkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy02 LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTYuYw0K Pj4+IGluZGV4IDAzNWJmNDgxMzk2Li5lODQ3YTQ0NTE2ZSAxMDA2NDQNCj4+PiAtLS0gYS9nY2Mv dGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTYuYw0KPj4+ICsrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtNi5jDQo+Pj4g QEAgLTEsNiArMSw2IEBADQo+Pj4gLS8qIFRlc3QgLWZzdHJpY3QtZmxleC1hcnJheXMgKyAtV2Fy cmF5LWJvdW5kcz0yLiAgKi8NCj4+PiArLyogVGVzdCAtZnN0cmljdC1mbGV4LWFycmF5cyArIC1X YXJyYXktYm91bmRzPTIgKyAtV3N0cmljdC1mbGV4LWFycmF5cy4gICovDQo+Pj4gLyogeyBkZy1k byBjb21waWxlIH0gKi8NCj4+PiAtLyogeyBkZy1vcHRpb25zICItTzIgLWZzdHJpY3QtZmxleC1h cnJheXM9MyAtV2FycmF5LWJvdW5kcz0yIiB9ICovDQo+Pj4gKy8qIHsgZGctb3B0aW9ucyAiLU8y IC1Xc3RyaWN0LWZsZXgtYXJyYXlzIC1mc3RyaWN0LWZsZXgtYXJyYXlzPTMgLVdhcnJheS1ib3Vu ZHM9MiIgfSAqLw0KPj4+IA0KPj4+IHN0cnVjdCB0cmFpbGluZ19hcnJheV8xIHsNCj4+PiAgICBp bnQgYTsNCj4+PiBAQCAtMzIsOCArMzIsMTEgQEAgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX25vaW5s aW5lX18pKSBzdHVmZigNCj4+PiAgICBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCAqdHJhaWxpbmdf ZmxleCkNCj4+PiB7DQo+Pj4gICAgbm9ybWFsLT5jWzVdID0gNTsgCS8qeyBkZy13YXJuaW5nICJh cnJheSBzdWJzY3JpcHQgNSBpcyBhYm92ZSBhcnJheSBib3VuZHMgb2YiIH0gKi8gDQo+Pj4gKyAg ICAJCQkvKnsgZGctd2FybmluZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJy YXkgbWVtYmVyIGZvciBsZXZlbCAxIGFuZCBhYm92ZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEg fSAqLw0KPj4+ICAgIHRyYWlsaW5nXzEtPmNbMl0gPSAyOyAvKnsgZGctd2FybmluZyAiYXJyYXkg c3Vic2NyaXB0IDIgaXMgYWJvdmUgYXJyYXkgYm91bmRzIG9mIiB9ICovDQo+Pj4gKyAgICAJCQkg IC8qIHsgZGctd2FybmluZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkg bWVtYmVyIGZvciBsZXZlbCAyIGFuZCBhYm92ZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAq Lw0KPj4+ICAgIHRyYWlsaW5nXzAtPmNbMV0gPSAxOyAvKnsgZGctd2FybmluZyAiYXJyYXkgc3Vi c2NyaXB0IDEgaXMgb3V0c2lkZSBhcnJheSBib3VuZHMgb2YiIH0gKi8NCj4+PiArICAgIAkJCSAg LyogeyBkZy13YXJuaW5nICJzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBt ZW1iZXIgZm9yIGxldmVsIDMiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8NCj4+PiAgICB0 cmFpbGluZ19mbGV4LT5jWzEwXSA9IDEwOyAvKiB7IGRnLWJvZ3VzICJhcnJheSBzdWJzY3JpcHQg IiB9ICovDQo+Pj4gDQo+Pj4gfQ0KPj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5k Zy9Xc3RyaWN0LWZsZXgtYXJyYXlzLTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3Qt ZmxleC1hcnJheXMtMi5jDQo+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+PiBpbmRleCAwMDAw MDAwMDAwMC4uMmUyNDFmOTYyMDgNCj4+PiAtLS0gL2Rldi9udWxsDQo+Pj4gKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1mbGV4LWFycmF5cy0yLmMNCj4+PiBAQCAtMCwwICsxLDM5 IEBADQo+Pj4gKy8qIFRlc3QgLVdzdHJpY3QtZmxleC1hcnJheXMuICAqLw0KPj4+ICsvKiB7IGRn LWRvIGNvbXBpbGUgfSAqLw0KPj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtV3N0cmljdC1mbGV4 LWFycmF5cyAtZnN0cmljdC1mbGV4LWFycmF5cz0yIiB9ICovDQo+Pj4gKw0KPj4+ICtzdHJ1Y3Qg dHJhaWxpbmdfYXJyYXlfMSB7DQo+Pj4gKyAgICBpbnQgYTsNCj4+PiArICAgIGludCBiOw0KPj4+ ICsgICAgaW50IGNbNF07IA0KPj4+ICt9Ow0KPj4+ICsNCj4+PiArc3RydWN0IHRyYWlsaW5nX2Fy cmF5XzIgew0KPj4+ICsgICAgaW50IGE7DQo+Pj4gKyAgICBpbnQgYjsNCj4+PiArICAgIGludCBj WzFdOyANCj4+PiArfTsNCj4+PiArDQo+Pj4gK3N0cnVjdCB0cmFpbGluZ19hcnJheV8zIHsNCj4+ PiArICAgIGludCBhOw0KPj4+ICsgICAgaW50IGI7DQo+Pj4gKyAgICBpbnQgY1swXTsNCj4+PiAr fTsNCj4+PiArc3RydWN0IHRyYWlsaW5nX2FycmF5XzQgew0KPj4+ICsgICAgaW50IGE7DQo+Pj4g KyAgICBpbnQgYjsNCj4+PiArICAgIGludCBjW107DQo+Pj4gK307DQo+Pj4gKw0KPj4+ICt2b2lk IF9fYXR0cmlidXRlX18oKF9fbm9pbmxpbmVfXykpIHN0dWZmKA0KPj4+ICsgICAgc3RydWN0IHRy YWlsaW5nX2FycmF5XzEgKm5vcm1hbCwNCj4+PiArICAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV8y ICp0cmFpbGluZ18xLA0KPj4+ICsgICAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzMgKnRyYWlsaW5n XzAsDQo+Pj4gKyAgICBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCAqdHJhaWxpbmdfZmxleCkNCj4+ PiArew0KPj4+ICsgICAgbm9ybWFsLT5jWzVdID0gNTsgCS8qeyBkZy13YXJuaW5nICJzaG91bGQg bm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDEgYW5kIGFi b3ZlIiB9ICovDQo+Pj4gKyAgICB0cmFpbGluZ18xLT5jWzJdID0gMjsgLyogeyBkZy13YXJuaW5n ICJzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVs IDIgYW5kIGFib3ZlIiB9ICovDQo+Pj4gKyAgICB0cmFpbGluZ18wLT5jWzFdID0gMTsgLyogeyBk Zy1ib2d1cyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZv ciBsZXZlbCAyIGFuZCBhYm92ZSIgfSAqLw0KPj4+ICsgICAgdHJhaWxpbmdfZmxleC0+Y1sxMF0g PSAxMDsgLyogeyBkZy1ib2d1cyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJy YXkgbWVtYmVyIGZvciBsZXZlbCAyIGFuZCBhYm92ZSIgfSAqLw0KPj4+ICsNCj4+PiArfQ0KPj4+ IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9Xc3RyaWN0LWZsZXgtYXJyYXlzLTMu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMtMy5jDQo+Pj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4+PiBpbmRleCAwMDAwMDAwMDAwMC4uOTdlYjY1YmEwYTkNCj4+ PiAtLS0gL2Rldi9udWxsDQo+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1m bGV4LWFycmF5cy0zLmMNCj4+PiBAQCAtMCwwICsxLDM5IEBADQo+Pj4gKy8qIFRlc3QgLVdzdHJp Y3QtZmxleC1hcnJheXMuICAqLw0KPj4+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPj4+ICsv KiB7IGRnLW9wdGlvbnMgIi1PMiAtV3N0cmljdC1mbGV4LWFycmF5cyAtZnN0cmljdC1mbGV4LWFy cmF5cz0zIiB9ICovDQo+Pj4gKw0KPj4+ICtzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMSB7DQo+Pj4g KyAgICBpbnQgYTsNCj4+PiArICAgIGludCBiOw0KPj4+ICsgICAgaW50IGNbNF07IA0KPj4+ICt9 Ow0KPj4+ICsNCj4+PiArc3RydWN0IHRyYWlsaW5nX2FycmF5XzIgew0KPj4+ICsgICAgaW50IGE7 DQo+Pj4gKyAgICBpbnQgYjsNCj4+PiArICAgIGludCBjWzFdOyANCj4+PiArfTsNCj4+PiArDQo+ Pj4gK3N0cnVjdCB0cmFpbGluZ19hcnJheV8zIHsNCj4+PiArICAgIGludCBhOw0KPj4+ICsgICAg aW50IGI7DQo+Pj4gKyAgICBpbnQgY1swXTsNCj4+PiArfTsNCj4+PiArc3RydWN0IHRyYWlsaW5n X2FycmF5XzQgew0KPj4+ICsgICAgaW50IGE7DQo+Pj4gKyAgICBpbnQgYjsNCj4+PiArICAgIGlu dCBjW107DQo+Pj4gK307DQo+Pj4gKw0KPj4+ICt2b2lkIF9fYXR0cmlidXRlX18oKF9fbm9pbmxp bmVfXykpIHN0dWZmKA0KPj4+ICsgICAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzEgKm5vcm1hbCwN Cj4+PiArICAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV8yICp0cmFpbGluZ18xLA0KPj4+ICsgICAg c3RydWN0IHRyYWlsaW5nX2FycmF5XzMgKnRyYWlsaW5nXzAsDQo+Pj4gKyAgICBzdHJ1Y3QgdHJh aWxpbmdfYXJyYXlfNCAqdHJhaWxpbmdfZmxleCkNCj4+PiArew0KPj4+ICsgICAgbm9ybWFsLT5j WzVdID0gNTsgCS8qeyBkZy13YXJuaW5nICJzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4aWJs ZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDEgYW5kIGFib3ZlIiB9ICovDQo+Pj4gKyAgICB0cmFp bGluZ18xLT5jWzJdID0gMjsgLyogeyBkZy13YXJuaW5nICJzaG91bGQgbm90IGJlIHVzZWQgYXMg YSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDIgYW5kIGFib3ZlIiB9ICovDQo+Pj4g KyAgICB0cmFpbGluZ18wLT5jWzFdID0gMTsgLyogeyBkZy13YXJuaW5nICJzaG91bGQgbm90IGJl IHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDMiIH0gKi8NCj4+PiAr ICAgIHRyYWlsaW5nX2ZsZXgtPmNbMTBdID0gMTA7IC8qIHsgZGctYm9ndXMgInNob3VsZCBub3Qg YmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMyIgfSAqLw0KPj4+ ICsNCj4+PiArfQ0KPj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9Xc3RyaWN0 LWZsZXgtYXJyYXlzLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9Xc3RyaWN0LWZsZXgtYXJyYXlz LmMNCj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4+IGluZGV4IDAwMDAwMDAwMDAwLi4xMTBm ZGM3Mjc3OA0KPj4+IC0tLSAvZGV2L251bGwNCj4+PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy5k Zy9Xc3RyaWN0LWZsZXgtYXJyYXlzLmMNCj4+PiBAQCAtMCwwICsxLDM5IEBADQo+Pj4gKy8qIFRl c3QgLVdzdHJpY3QtZmxleC1hcnJheXMuICAqLw0KPj4+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAq Lw0KPj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtV3N0cmljdC1mbGV4LWFycmF5cyAtZnN0cmlj dC1mbGV4LWFycmF5cz0xIiB9ICovDQo+Pj4gKw0KPj4+ICtzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlf MSB7DQo+Pj4gKyAgICBpbnQgYTsNCj4+PiArICAgIGludCBiOw0KPj4+ICsgICAgaW50IGNbNF07 IA0KPj4+ICt9Ow0KPj4+ICsNCj4+PiArc3RydWN0IHRyYWlsaW5nX2FycmF5XzIgew0KPj4+ICsg ICAgaW50IGE7DQo+Pj4gKyAgICBpbnQgYjsNCj4+PiArICAgIGludCBjWzFdOyANCj4+PiArfTsN Cj4+PiArDQo+Pj4gK3N0cnVjdCB0cmFpbGluZ19hcnJheV8zIHsNCj4+PiArICAgIGludCBhOw0K Pj4+ICsgICAgaW50IGI7DQo+Pj4gKyAgICBpbnQgY1swXTsNCj4+PiArfTsNCj4+PiArc3RydWN0 IHRyYWlsaW5nX2FycmF5XzQgew0KPj4+ICsgICAgaW50IGE7DQo+Pj4gKyAgICBpbnQgYjsNCj4+ PiArICAgIGludCBjW107DQo+Pj4gK307DQo+Pj4gKw0KPj4+ICt2b2lkIF9fYXR0cmlidXRlX18o KF9fbm9pbmxpbmVfXykpIHN0dWZmKA0KPj4+ICsgICAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzEg Km5vcm1hbCwNCj4+PiArICAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV8yICp0cmFpbGluZ18xLA0K Pj4+ICsgICAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzMgKnRyYWlsaW5nXzAsDQo+Pj4gKyAgICBz dHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCAqdHJhaWxpbmdfZmxleCkNCj4+PiArew0KPj4+ICsgICAg bm9ybWFsLT5jWzVdID0gNTsgCS8qeyBkZy13YXJuaW5nICJzaG91bGQgbm90IGJlIHVzZWQgYXMg YSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDEgYW5kIGFib3ZlIiB9ICovDQo+Pj4g KyAgICB0cmFpbGluZ18xLT5jWzJdID0gMjsgLyogeyBkZy1ib2d1cyAic2hvdWxkIG5vdCBiZSB1 c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAxIGFuZCBhYm92ZSIgfSAq Lw0KPj4+ICsgICAgdHJhaWxpbmdfMC0+Y1sxXSA9IDE7IC8qIHsgZGctYm9ndXMgInNob3VsZCBu b3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJv dmUiIH0gKi8NCj4+PiArICAgIHRyYWlsaW5nX2ZsZXgtPmNbMTBdID0gMTA7IC8qIHsgZGctYm9n dXMgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2 ZWwgMSBhbmQgYWJvdmUiIH0gKi8NCj4+PiArDQo+Pj4gK30NCj4+PiBkaWZmIC0tZ2l0IGEvZ2Nj L3RyZWUtdnJwLmNjIGIvZ2NjL3RyZWUtdnJwLmNjDQo+Pj4gaW5kZXggMzg0NmRjMWQ4NDkuLmU2 YzZjNWEzMDFkIDEwMDY0NA0KPj4+IC0tLSBhL2djYy90cmVlLXZycC5jYw0KPj4+ICsrKyBiL2dj Yy90cmVlLXZycC5jYw0KPj4+IEBAIC0xMDg3LDcgKzEwODcsNyBAQCBleGVjdXRlX3Jhbmdlcl92 cnAgKHN0cnVjdCBmdW5jdGlvbiAqZnVuLCBib29sIHdhcm5fYXJyYXlfYm91bmRzX3AsDQo+Pj4g IGlmIChkdW1wX2ZpbGUgJiYgKGR1bXBfZmxhZ3MgJiBUREZfREVUQUlMUykpDQo+Pj4gICAgcmFu Z2VyLT5kdW1wIChkdW1wX2ZpbGUpOw0KPj4+IA0KPj4+IC0gIGlmICh3YXJuX2FycmF5X2JvdW5k cyAmJiB3YXJuX2FycmF5X2JvdW5kc19wKQ0KPj4+ICsgIGlmICgod2Fybl9hcnJheV9ib3VuZHMg fHwgd2Fybl9zdHJpY3RfZmxleF9hcnJheXMpICYmIHdhcm5fYXJyYXlfYm91bmRzX3ApDQo+Pj4g ICAgew0KPj4+ICAgICAgLy8gU2V0IGFsbCBlZGdlcyBhcyBleGVjdXRhYmxlLCBleGNlcHQgdGhv c2UgcmFuZ2VyIHNheXMgYXJlbid0Lg0KPj4+ICAgICAgaW50IG5vbl9leGVjX2ZsYWcgPSByYW5n ZXItPm5vbl9leGVjdXRhYmxlX2VkZ2VfZmxhZzsNCj4+PiAtLSANCj4+PiAyLjMxLjENCj4+PiAN Cj4+IA0KPj4gDQo+IA0KPiAtLSANCj4gUmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRl Pg0KPiBTVVNFIFNvZnR3YXJlIFNvbHV0aW9ucyBHZXJtYW55IEdtYkgsIEZyYW5rZW5zdHJhc3Nl IDE0NiwgOTA0NjEgTnVlcm5iZXJnLA0KPiBHZXJtYW55OyBHRjogSXZvIFRvdGV2LCBBbmRyZXcg TXllcnMsIEFuZHJldyBNY0RvbmFsZCwgQm91ZGllbiBNb2VybWFuOw0KPiBIUkIgMzY4MDkgKEFH IE51ZXJuYmVyZykNCg0K