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 044E1383234C; Fri, 16 Dec 2022 14:49:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 044E1383234C 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 2BGDx1L9000682; Fri, 16 Dec 2022 14:49:50 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=upiXboiExl/kZr3u7JQzyBHDTKhushIkXt2wO3C+X/s=; b=nyq5UUyNNCZ0q0ZhBTAim14u22ehGGzlB+Jsndjj2Py862AXgIF2iRZbTb0NM8TarfAt BME4x+En/ySZl+j/rXYsp4lrftJtPFe4j/EjxPUfNMim7MPXW2kp9HQF6OS/OiWIejA1 eRRFnKjojNKBXsMlulDvQpUjWx81Qccr08JkNRuicHZqnWqkxr8dmYSE7SQotBBsFSXT vx1sNlt6ZeQDyJ0JCx15BvSocYqbX1Jp1OJAzrxW6pZi2B/hNO22xUstvHnu24JR/pP5 bFOUwvB6lIY8jDrSuDarm4pVNb8FierNkzOE5/nhFGH4STkXxRTgGsBhxi+tXOdm0H/u rQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3meyewyn1w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Dec 2022 14:49:50 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2BGE45H3027866; Fri, 16 Dec 2022 14:49:49 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2175.outbound.protection.outlook.com [104.47.57.175]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3meyf0dc33-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Dec 2022 14:49:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R4cgsZm8WQJkEip0I8ZungVbmj1X7DsGsdro9/r8f420mgDMPjV9GWPJyL+93t8axNatooJ+hHGhpNHy4aj+i5mwCPcbN4yHkXHP4VOqIR61y6XA+UsxZnTNyktUGvAT0FSqln0u5JYQW6v+nmZ89PLRtr4dT5zigpapx6zMrKHwWtb9lIXLL3EM9rB9BUgwil7Yi36B+brZk5FIJoPk2ENWg9hbVEnXR7Im1jpH+7sv4YSZ/v5MXctSXsdMCrpVs78yM621Afinz7/hjqER+WfffXIZb3nAZIo8WJ6gg27+u9TALR/T7jR6wC2d+OI0NsNZM65/lvlkcg272abOgQ== 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=upiXboiExl/kZr3u7JQzyBHDTKhushIkXt2wO3C+X/s=; b=JSbPvzKNqzWrx6Gl1teBvaqkRT8KqwW9honnCB1P3W/XnSF7wUn9vwOvBD7ZW8WhXfa4hLh7+qavGr0lDvpxVHumECdTC1jBD716fzjQKKGGn2wuwzSs7Fq/F8lQGiPAjthHBl+eiU3GWUXjq5zfgdFO76MfFKfyI8427wIorW3QPt/TOz617Eg8HI7Rx11Mpc1j8/JH1bamsdWrG5D4t+Pp+rD3oLQc3oy2egdwjdywrnQyotqWBo8pymyNlQUv/UO/VK19DKOzXFFliPmkIQVWvkTdLTI662SiirgZjNr7vvU9Y1YmBoIa12JLz61AW8nLAUmNhrHE5eNhpjxtcQ== 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=upiXboiExl/kZr3u7JQzyBHDTKhushIkXt2wO3C+X/s=; b=koZ0iS/U6F65U0HZq5Z/7V7m93FBGrxGZcRheRAexEyFXxyHzNm8DV5IV+OKXG0Ya3uOtT2hTKBdW7Zl06U912gphqziAyrgtHc+/vvq2BUnumsdNUBRnBiIVNaH6gwBsvme23SHhC9dW2+eFrldTXIMEbmGQsVWkJUe1YIVP3Q= Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by SA1PR10MB6567.namprd10.prod.outlook.com (2603:10b6:806:2bc::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5924.15; Fri, 16 Dec 2022 14:49:46 +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.5924.015; Fri, 16 Dec 2022 14:49:45 +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+8aAgAEnFgCAAH+DgIAA/WyAgACAs4CAASragIAAXNAA Date: Fri, 16 Dec 2022 14:49:45 +0000 Message-ID: <28FB1593-21AF-47B7-B368-3734B994E23D@oracle.com> References: <20221206161844.2397151-1-qing.zhao@oracle.com> <71748F0C-F789-4036-AC79-54BDCCE75135@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_|SA1PR10MB6567:EE_ x-ms-office365-filtering-correlation-id: e8386f17-a407-47f9-0a8e-08dadf74c604 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zawcVzIfWSnm6XnPia7TnGdySYBtP30e3FXK+FysIJ1ozpgMVuzCoL4sbAYlUj0JpKujabgtXP6Nd2tyFSPmlmpJuBjnFkpchGYkwO82qj3JrbM9DfiAWRI4AT6E2s5I4rzeDyf/qguDoJIZWMDLTbxO5x2WpXhfJbaP531qcR/LZnq95Zf57WVaA8OCCQbX1gcCxRDtcCtEURxMc1gAxmFo2p/DKafN8d2uF8nUXsJku+wg/bglWB6R7eFuopWObC1SoPE1bC1TYHpYJUkILxsl0i+knWLzpnps1bkDqcvC9ISLlbFJr7sOxlXVlSN5pWbmtFBbXM9gMsH4kAG2RhNXkFN9zaV3zdjzHbHO10x735VT4ENa/hO0dnaeKSJ/FCAMQ+xt8yI3QvlgCSzGXfkgSfl+WuqouF+gBHdt0rlUZ+15LxPEh/Mh2Ndw58+kWOkBTiHbsagiHkLL/qmV7raV06i1XvJF9fV0e8p+uB1k+ZujX3UogE2DDtP3r3IOAKgbeT8R9VE1P0xjVpqBcFF9BVwJINANZf2cV0ipjUC8Z+CH7+yLGXOh6fG5T0fRwFsMsIc4GZ4AJozRFKR2DBFx13bWZYmjWrDIh1rbJ7cFljEXH14hNqRprfR9I+JOK9Wzhxfw2s+udX7a+F/SOQoINw5R4KAKkFGSQPxY3pf7AuAV/eu0WVZv9vCT0acQzJ9XL3k8XesgML78MBFYsilYNnJ5+g9QmcCIQ9krL/F9lzSN5tv9K9xJ8mszBVuPKDnVR3wcSPxQEgzyyhtQmAUABpOjQqpFQIU5ACigPl19JMKYraPR368oQko80RMt 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)(136003)(39860400002)(346002)(376002)(396003)(366004)(451199015)(122000001)(38100700002)(33656002)(38070700005)(86362001)(6916009)(54906003)(316002)(478600001)(6486002)(71200400001)(8936002)(2906002)(5660300002)(44832011)(64756008)(66946007)(66446008)(4326008)(8676002)(66556008)(91956017)(41300700001)(30864003)(76116006)(83380400001)(66476007)(6506007)(53546011)(2616005)(186003)(6512007)(26005)(36756003)(84970400001)(45980500001)(579004)(559001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NzBWelBnOVJaWUhzaFZPZjN6YUMzVExvL0FXdnp0ZmlIRUFMVWN1Wmx0L0xY?= =?utf-8?B?Sk95OGY2dHNhOUk1SjZEYS83ZU1qSGZUMjk3Mkd6b2ZCRmlsaWtHNjAzS25J?= =?utf-8?B?M01lV0F5dndwbHFBdTRqS05lSmJ2QXVmcjZscXMvU0JrMlpvNS9BWjd0NTJV?= =?utf-8?B?dFQ3ZHorYjFvWlJOSkM1YVJNWG5Bclc0TFAzRnBMenFkc0pFZEs1MExCbFdE?= =?utf-8?B?SVdlWjVYVWJMV1cyT0hTd0pDNkVsOUNWSlFDTFFTOXpEQ3dpS2JFcFN2T2I3?= =?utf-8?B?OVRyM2JqYnpqcGFBTnZXOENSUDB5amRXQ29tQW50QWYvUTJkek1tczJ4czJB?= =?utf-8?B?Z1ZqUWMwQ3JjbTVoVHI1ZVM3ZUlDalAvbVFaWlZWamlmckZaQlp3S0VoZWg2?= =?utf-8?B?dzhPRXNNQ0ZuOG0yekZmU2cyUkwycDg2SzB4YVJOaXhid3AwY3lTWEZqT1hL?= =?utf-8?B?RDBMajlMWGpRRXVidUwzVEg5TWo1UFpmVVpUbHhCNTNtVHZiSzdQS2xIUFhp?= =?utf-8?B?L0xjbEZXemVWbWxBTzRmN1FGYWJXaGJwcGNoVG5WRGxSczViUVJ6T05oSnJV?= =?utf-8?B?ZDlSS21UWWcyajNQdXZsTmZzRW5NMWwvQ3ZJU3RUT0RtbVJIOFQvM2x6Q0Y4?= =?utf-8?B?bndsQ2tiaWVNb0RvRDc4ZCtLRDhUL25rd3VzUkNPRGRCdXU4S3ZvR0dlTXpM?= =?utf-8?B?K0xnaEgwUVB4ME9vbTU4cU9nN09QRC92aUFEZC9iUFVnWmxER3VTRkhFekFO?= =?utf-8?B?TjROSmF5aU5ScWZRMFQ4SmV2UzRIQ1ZlTUlKV1BydHNRMTJodVB5WEZMcGxn?= =?utf-8?B?RXhtc1JpT2dvZVVsSHRzM0w1WGFTdjREY3hPSm5ONW9mWTc5VEZFWWdicEE1?= =?utf-8?B?eDFmc0U1TWlBdGRDeWJITzJ4cWt3aXBUczJWWjhyVjNoZHVYYTJ0QWE3alI4?= =?utf-8?B?d2YyZ3pLZW9SK2YwNFFvcnFHQWM2T1dZNHpwLzJxdUMzODU1b1FEcWhaRWRn?= =?utf-8?B?ZWVTdjJYRmxJWjYxNEVIVWQ4amNsSy92QWVjVmRRaEpnOG1yMnlaa2g5bWpY?= =?utf-8?B?d05MZFNwMElDM3hRNzNQVUVOQ1FSZncvRlIyYjBhbVJKdXp1VG42TkMvMG5w?= =?utf-8?B?RnZ5Z0VXN25FOENMZ21pTElLQ0xKK3R1Z0ZpVlVBOElaM3huK3BhM2VqVE1V?= =?utf-8?B?b0VyVTZFci9xODNQUzF0dmRBWmloOHdRMyt3Ym0rVkFzNWxXbFZadTdGb0s4?= =?utf-8?B?UEptN2RnNU14RVhBWGE4TkkyWUdYVldqaDUzd29YTjdrRG03RmdlYS9LdWFV?= =?utf-8?B?cnhDZytwOUhYMlhGdU1Qc0RIV2hsd21KQ2FDN2VpNWhmY1UwVWZFZFNNcVNF?= =?utf-8?B?SEV6eWRNaXNWY00zbXN2Qm4zTmlMZFJROWdZaDd1NkViQ3dxMEo1bVpjSzZ4?= =?utf-8?B?Ylp4RWNWdTlzSmZERzgyNEV0RytkQUw2QTNQaXdDZmlrYkpZcXQ3M1QyMGpW?= =?utf-8?B?VzlvWDg4THMyb3BNWExhb2w4RzVFcjFFVnlveEttWVJhdlA3SG1QUGlGS0pR?= =?utf-8?B?T0pxRytyVkJnRWJ2ZDFPcEV6SmxrQnNhM3FteEtJeEh3aWljbW9IUHlGRW4x?= =?utf-8?B?T2VhV1U0WkZ1dzViYjRzcXVXUURYb3EyYlJiallldUtTNVQ1RHlyNWVSS0w5?= =?utf-8?B?TC9NSytRdzhGbHk3OWZVT1QzREZKYmV2ejJuczVzZmx1dmJrSjZBcjV5YmdQ?= =?utf-8?B?SC9kSzhSNngvdTNJd2x4Uis0eUl5MmxXT1cxTGxXdHR4aWVPcjFrSjJoOXB2?= =?utf-8?B?dEVqUDkzK1l6cm5qaE1OK3pCeTY5dXZpZHpiRHkwU3p0a3RpZzZVUVlRdmx4?= =?utf-8?B?MjVMSitRVHVxaVBPamFDUXpXOW8yR0VXSjFwM0NMVGhwWUl0TWxxMTdJNjU2?= =?utf-8?B?YnRqUUtzditiRGt4cXIreGc4Z1RGS1dlSk92ZjRXcWpZZFh2blVIaXVJOC85?= =?utf-8?B?aEdUb0ZZMmJ5YmdnbjlBaUdEVWkzMkNhN3NBSkcxY2lFbjRQTDBkODhNOSt3?= =?utf-8?B?bTI1aWk5ZkI5azFBMDRjdVp4ODYyRktKekhOeWVvMGszLzNZUFRlRyt5VklF?= =?utf-8?B?VXc2NXcrYVd0elkrOEo4Mi9hd1RhU0l6S0tzT2N1UVhvZzRNVUhCaWVRUk5k?= =?utf-8?B?M0E9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <301E8132F633644E92C00B12FB4D5C62@namprd10.prod.outlook.com> 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: e8386f17-a407-47f9-0a8e-08dadf74c604 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Dec 2022 14:49:45.7075 (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: P+ncSNjWtwNyWQUeMJ8VkIgBRv8j+YQ59knf6PkFIrUlZYK86NLcvNI3VgDAqib0KXkIK36AljK7yx3BbXsnyQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB6567 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-16_09,2022-12-15_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 suspectscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2212160130 X-Proofpoint-GUID: ilFeut7v3zFmZULCDNyWdNEGMqM_W9H8 X-Proofpoint-ORIG-GUID: ilFeut7v3zFmZULCDNyWdNEGMqM_W9H8 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: DQoNCj4gT24gRGVjIDE2LCAyMDIyLCBhdCA0OjE3IEFNLCBSaWNoYXJkIEJpZW5lciA8cmd1ZW50 aGVyQHN1c2UuZGU+IHdyb3RlOg0KPiANCj4gT24gVGh1LCAxNSBEZWMgMjAyMiwgUWluZyBaaGFv IHdyb3RlOg0KPiANCj4+IA0KPj4gDQo+Pj4gT24gRGVjIDE1LCAyMDIyLCBhdCAyOjQ3IEFNLCBS aWNoYXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+IHdyb3RlOg0KPj4+IA0KPj4+IE9uIFdl ZCwgMTQgRGVjIDIwMjIsIFFpbmcgWmhhbyB3cm90ZToNCj4+PiANCj4+Pj4gSGksIFJpY2hhcmQs DQo+Pj4+IA0KPj4+PiBJIGd1ZXNzIHRoYXQgd2Ugbm93IGFncmVlZCBvbiB0aGUgZm9sbG93aW5n Og0KPj4+PiANCj4+Pj4g4oCcIHRoZSBpbmZvcm1hdGlvbiB0aGF0IHdlIHJhbiBpbnRvIGEgdHJh aWxpbmcgYXJyYXkgYnV0IGRpZG4ndCBjb25zaWRlciANCj4+Pj4gaXQgYSBmbGV4IGFycmF5IGJl Y2F1c2Ugb2YgLWZzdHJpY3QtZmxleC1hcnJheXMgaXMgYWx3YXlzIGEgdXNlZnVsIGluZm9ybWF0 aW9u4oCdDQo+Pj4+IA0KPj4+PiBUaGUgb25seSB0aGluZyB3ZSBkaWRu4oCZdCBkZWNpZGUgaXM6 DQo+Pj4+IA0KPj4+PiBBLiBBbWVuZCBzdWNoIG5ldyBpbmZvcm1hdGlvbiB0byAtV2FycmF5LWJv dW5kcyB3aGVuIC1mc3RyaWN0LWZsZXgtYXJyYXlzPU4gKE4+MCkgc3BlY2lmaWVkLg0KPj4+PiAN Cj4+Pj4gT1INCj4+Pj4gDQo+Pj4+IEIuIElzc3VlIHN1Y2ggbmV3IGluZm9ybWF0aW9uIHdpdGgg YSBuZXcgd2FybmluZyBvcHRpb24gLVdzdHJpY3QtZmxleC1hcnJheXMgd2hlbiAtZnN0cmljdC1m bGV4LWFycmF5cz1OIChOPjApIHNwZWNpZmllZC4NCj4+Pj4gDQo+Pj4+IE15IGN1cnJlbnQgcGF0 Y2ggaW1wbGVtZW50ZWQgQi4gDQo+Pj4gDQo+Pj4gUGx1cyBpdCBpbXBsZW1lbnRzIGl0IHRvIHNw ZWNpZnkgYSBkaWZmZXJlbnQgZmxleC1hcnJheSB2YXJpYW50IGZvcg0KPj4+IHRoZSBleHRyYSBk aWFnbm9zdGljLg0KPj4gQ291bGQgeW91IGNsYXJpZnkgYSBsaXR0bGUgYml0IG9uIHRoaXM/IChE b27igJl0IHF1aXRlIHVuZGVyc3RhbmTigKYpDQo+Pj4gDQo+Pj4+IElmIHlvdSB0aGluayBBIGlz IGJldHRlciwgSSB3aWxsIGNoYW5nZSB0aGUgcGF0Y2ggYXMgQS4gDQo+Pj4gDQo+Pj4gSSB3b3Vs ZCB0ZW5kIHRvIEEgc2luY2UsIGFzIEkgc2FpZCwgaXQncyB1c2VmdWwgaW5mb3JtYXRpb24gdGhh dA0KPj4+IHNob3VsZG4ndCBiZSBoaWRkZW4gYW5kIG5vdCBhZGRpbmcgYW4gb3B0aW9uIHJlbW92 ZXMgb2RkIGNvbWJpbmF0aW9uDQo+Pj4gcG9zc2liaWxpdGllcyBzdWNoIGFzIC1Xbm8tYXJyYXkt Ym91bmRzIC1Xc3RyaWN0LWZsZXgtYXJyYXlzLg0KPj4gDQo+PiBXaXRoIGN1cnJlbnQgaW1wbGVt ZW50YXRpb24sIHRoZSBhYm92ZSBjb21iaW5hdGlvbiB3aWxsIE9OTFkgcmVwb3J0IHRoZSANCj4+ IG1pc3VzZSBvZiB0cmFpbGluZyBhcnJheSBhcyBmbGV4LWFycmF5LiAgTm8gb3V0LW9mLWJvdW5k cyB3YXJuaW5ncyANCj4+IGlzc3VlZC4NCj4+IA0KPj4+IEluIHBhcnRpY3VsYXIgSSBmaW5kLCBz YXksIC1mc3RyaWN0LWZsZXgtYXJyYXlzPTIgLVdzdHJpY3QtZmxleC1hcnJheXM9MQ0KPj4+IGhh cmRseSB1c2VmdWwuDQo+PiANCj4+IFRoZSBhYm92ZSBjb21iaW5hdGlvbiB3aWxsIE5PVCBoYXBw ZW4sIGJlY2F1c2UgdGhlcmUgaXMgTk8gbGV2ZWwgYXJndW1lbnQgZm9yIC1Xc3RyaWN0LWZsZXgt YXJyYXlzLg0KPj4gDQo+PiBUaGUgb25seSBjb21iaW5hdGlvbiB3aWxsIGJlOiAgICAtZnN0cmlj dC1mbGV4LWFycmF5cz1OIC1Xc3RyaWN0LWZsZXgtYXJyYXlzDQo+PiANCj4+IFdoZW4gTiA+IDAs IC1Xc3RyaWN0LWZsZXgtYXJyYXlzIHdpbGwgcmVwb3J0IGFueSBtaXN1c2Ugb2YgdHJhaWxpbmcg YXJyYXlzIGFzIGZsZXhpYmxlIGFycmF5IHBlciB0aGUgdmFsdWUgb2YgTi4NCj4+PiANCj4+PiBC dXQgSSdtIGludGVyZXN0ZWQgaW4gb3RoZXIgb3BpbmlvbnMuDQo+PiANCj4+IEFkZGluZyBhIHNl cGFyYXRlIC1Xc3RyaWN0LWZsZXgtYXJyYXlzIHdpbGwgcHJvdmlkZSB1c2VycyBhIGNob2ljZSB0 byBPTkxZIGxvb2sgYXQgdGhlIG1pcy11c2Ugb2YgdHJhaWxpbmcgYXJyYXlzIGFzIGZsZXgtYXJy YXlzLiAgV2l0aG91dCB0aGlzIG5ldyBvcHRpb24sIHN1Y2ggaW5mb3JtYXRpb24gd2lsbCBiZSBi dXJpZWQgaW50byB0b25zIG9mIG91dC1vZi1ib3VuZHMgbWVzc2dlcy4gDQo+PiANCj4+IEkgdGhp bmsgdGhpcyBpcyB0aGUgbWFqb3IgYmVuZWZpdCB0byBoYXZlIG9uZSBzZXBhcmF0ZSBuZXcgd2Fy bmluZyAtV3N0cmljdC1mbGV4LWFycmF5cy4gDQo+PiANCj4+IERvIHdlIG5lZWQgdG8gcHJvdmlk ZSB0aGUgdXNlcnMgdGhpcyBjaG9pY2U/DQo+IA0KPiBBaCwgT0sgLSBJIGNhbiBzZWUgdGhlIHZh bHVlIG9mIGF1ZGl0aW5nIGNvZGUgdGhpcyB3YXkgYmVmb3JlDQo+IGVuYWJsaW5nIC1mc3RyaWN0 LWZsZXgtYXJyYXlzLg0KWWVzLCBJIHRoaW5rIHRoZSBtYWpvciBiZW5lZml0IG9mIHRoaXMgb3B0 aW9uIGlzIHRvIGhlbHAgdXNlcnMgdG8gaWRlbnRpZnkgYWxsIHRoZSBwbGFjZXMgd2hlcmUgdGhl IHRyYWlsaW5nIGFycmF5cyBhcmUgbWlzdXNlZCBhcyBmbGV4LWFycmF5cyBhdCBkaWZmZXJlbnQg bGV2ZWwgb2YgLWZzdHJpY3QtZmxleC1hcnJheXM9TiwgdGhlbiB1cGRhdGUgdGhlaXIgc291cmNl IGNvZGUgYWNjb3JkaW5nbHkuIEFuZCBmaW5hbGx5IGNhbiBlbmFibGUgLWZzdHJpY3QtZmxleC1h cnJheXMgYnkgZGVmYXVsdC4NCj4gDQo+PiArICBpZiAob3B0cy0+eF93YXJuX3N0cmljdF9mbGV4 X2FycmF5cykNCj4+ICsgICAgaWYgKG9wdHMtPnhfZmxhZ19zdHJpY3RfZmxleF9hcnJheXMgPT0g MCkNCj4+ICsgICAgICB7DQo+PiArICAgICBvcHRzLT54X3dhcm5fc3RyaWN0X2ZsZXhfYXJyYXlz ID0gMDsNCj4+ICsgICAgIHdhcm5pbmdfYXQgKFVOS05PV05fTE9DQVRJT04sIDAsDQo+PiArICAg ICAgICAgICAgICAgICAiJTwtV3N0cmljdC1mbGV4LWFycmF5cyU+IGlzIGlnbm9yZWQgd2hlbiIN Cj4+ICsgICAgICAgICAgICAgICAgICIgJTwtZnN0cmljdC1mbGV4LWFycmF5cyU+IGRvZXMgbm90 IHByZXNlbnQiKTsNCj4gDQo+ICJpcyBub3QgcHJlc2VudOKAnS4NCk9rYXkuDQo+IA0KPiBUaGUg cGF0Y2ggaXMgT0sgd2l0aCB0aGF0IGNoYW5nZS4NClRoYW5rcyEgV2lsbCBjb21taXQgdGhlIHBh dGNoIGFmdGVyIHRoZSBjaGFuZ2UuDQo+IA0KPiBUaGFua3MgYW5kIHNvcnJ5IGZvciB0aGUgc2xv dyBwcm9jZXNzIC4uLg0KDQpUaGFuayB5b3UgZm9yIHlvdXIgcGF0aWVuY2UgYW5kIHF1ZXN0aW9u cy4NClRoZSBkaXNjdXNzaW9uIGlzIHZlcnkgaGVscGZ1bCBzaW5jZSBJIHdhcyBub3QgMTAwJSBz dXJlIHdoZXRoZXIgdGhpcyBuZXcgd2FybmluZyBpcyBuZWNlc3Nhcnkgb3Igbm90IGluIHRoZSBi ZWdpbm5pbmcsIGJ1dCBub3cgYWZ0ZXIgdGhpcyBkaXNjdXNzaW9uIEkgZmVlbCBjb25maWRlbnQg dGhhdCBpdOKAmXMgYSBuZWNlc3Nhcnkgb3B0aW9uIHRvIGJlIGFkZGVkLg0KDQpRaW5nDQoNCj4g DQo+IFJpY2hhcmQuDQo+IA0KPj4gVGhhbmtzLg0KPj4gDQo+PiBRaW5nDQo+Pj4gDQo+Pj4gVGhh bmtzLA0KPj4+IFJpY2hhcmQuDQo+Pj4gDQo+Pj4+IExldCBtZSBrbm93IHlvdXIgb3Bpbmlvbi4N Cj4+Pj4gDQo+Pj4+IHRoYW5rcy4NCj4+Pj4gDQo+Pj4+IFFpbmcNCj4+Pj4gDQo+Pj4+IA0KPj4+ Pj4gT24gRGVjIDE0LCAyMDIyLCBhdCA0OjAzIEFNLCBSaWNoYXJkIEJpZW5lciA8cmd1ZW50aGVy QHN1c2UuZGU+IHdyb3RlOg0KPj4+Pj4gDQo+Pj4+PiBPbiBUdWUsIDEzIERlYyAyMDIyLCBRaW5n IFpoYW8gd3JvdGU6DQo+Pj4+PiANCj4+Pj4+PiBSaWNoYXJkLCANCj4+Pj4+PiANCj4+Pj4+PiBE byB5b3UgaGF2ZSBhbnkgZGVjaXNpb24gb24gdGhpcyBvbmU/IA0KPj4+Pj4+IERvIHdlIG5lZWQg dGhpcyB3YXJuaW5nIG9wdGlvbiBGb3IgR0NDPyANCj4+Pj4+IA0KPj4+Pj4gTG9va2luZyBhdCB0 aGUgdGVzdGNhc2VzIGl0IHNlZW1zIHRoYXQgdGhlIGRpYWdub3N0aWMgYW1lbmRzDQo+Pj4+PiAt V2FycmF5LWJvdW5kcyBkaWFnbm9zdGljcyBmb3IgdHJhaWxpbmcgYnV0IG5vdCBmbGV4aWJsZSBh cnJheXM/DQo+Pj4+PiBXb3VsZG4ndCBpdCBiZSBiZXR0ZXIgdG8gZ2VuZXJhbGx5IGRpYWdub3Nl IHRoaXMsIHNvIGhhdmUNCj4+Pj4+IC1XYXJyYXktYm91bmRzLCB3aXRoIC1mc3RyaWN0LWZsZXgt YXJyYXlzLCBmb3INCj4+Pj4+IA0KPj4+Pj4gc3RydWN0IFggeyBpbnQgYVsxXTsgfTsNCj4+Pj4+ IGludCBmb28gKHN0cnVjdCBYICpwKQ0KPj4+Pj4gew0KPj4+Pj4gcmV0dXJuIHAtPmFbMV07DQo+ Pj4+PiB9DQo+Pj4+PiANCj4+Pj4+IGVtaXQNCj4+Pj4+IA0KPj4+Pj4gd2FybmluZzogYXJyYXkg c3Vic2NyaXB0IDEgaXMgYWJvdmUgYXJyYXkgYm91bmRzIC4uLg0KPj4+Pj4gbm90ZTogdGhlIHRy YWlsaW5nIGFycmF5IGlzIG9ubHkgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgd2l0aCANCj4+Pj4+ IC1mbm8tc3RyaWN0LWZsZXgtYXJyYXlzDQo+Pj4+PiANCj4+Pj4+ID8gIEhhdmluZyAtV3N0cmlj dC1mbGV4LWFycmF5cz1OIGFuZCBOIG5vdCBhZ3JlZSB3aXRoIHRoZQ0KPj4+Pj4gLWZzdHJpY3Qt ZmxleC1hcnJheXMgbGV2ZWwgc291bmRzIGhhcmRseSB1c2VmdWwgdG8gbWUgYnV0IHRoZQ0KPj4+ Pj4gaW5mb3JtYXRpb24gdGhhdCB3ZSByYW4gaW50byBhIHRyYWlsaW5nIGFycmF5IGJ1dCBkaWRu J3QgY29uc2lkZXINCj4+Pj4+IGl0IGEgZmxleCBhcnJheSBiZWNhdXNlIG9mIC1mc3RyaWN0LWZs ZXgtYXJyYXlzIGlzIGFsd2F5cyBhDQo+Pj4+PiB1c2VmdWwgaW5mb3JtYXRpb24/DQo+Pj4+PiAN Cj4+Pj4+IEJ1dCBtYXliZSBJIG1pc3VuZGVyc3Rvb2QgdGhpcyBuZXcgZGlhZ25vc3RpYz8NCj4+ Pj4+IA0KPj4+Pj4gVGhhbmtzLA0KPj4+Pj4gUmljaGFyZC4NCj4+Pj4+IA0KPj4+Pj4gDQo+Pj4+ Pj4gdGhhbmtzLg0KPj4+Pj4+IA0KPj4+Pj4+IFFpbmcNCj4+Pj4+PiANCj4+Pj4+Pj4gT24gRGVj IDYsIDIwMjIsIGF0IDExOjE4IEFNLCBRaW5nIFpoYW8gPHFpbmcuemhhb0BvcmFjbGUuY29tPiB3 cm90ZToNCj4+Pj4+Pj4gDQo+Pj4+Pj4+ICctV3N0cmljdC1mbGV4LWFycmF5cycNCj4+Pj4+Pj4g IFdhcm4gYWJvdXQgaW5wcm9wZXIgdXNhZ2VzIG9mIGZsZXhpYmxlIGFycmF5IG1lbWJlcnMgYWNj b3JkaW5nIHRvDQo+Pj4+Pj4+ICB0aGUgTEVWRUwgb2YgdGhlICdzdHJpY3RfZmxleF9hcnJheSAo TEVWRUwpJyBhdHRyaWJ1dGUgYXR0YWNoZWQgdG8NCj4+Pj4+Pj4gIHRoZSB0cmFpbGluZyBhcnJh eSBmaWVsZCBvZiBhIHN0cnVjdHVyZSBpZiBpdCdzIGF2YWlsYWJsZSwNCj4+Pj4+Pj4gIG90aGVy d2lzZSBhY2NvcmRpbmcgdG8gdGhlIExFVkVMIG9mIHRoZSBvcHRpb24NCj4+Pj4+Pj4gICctZnN0 cmljdC1mbGV4LWFycmF5cz1MRVZFTCcuDQo+Pj4+Pj4+IA0KPj4+Pj4+PiAgVGhpcyBvcHRpb24g aXMgZWZmZWN0aXZlIG9ubHkgd2hlbiBMRVZFTCBpcyBiaWdnZXIgdGhhbiAwLg0KPj4+Pj4+PiAg T3RoZXJ3aXNlLCBpdCB3aWxsIGJlIGlnbm9yZWQgd2l0aCBhIHdhcm5pbmcuDQo+Pj4+Pj4+IA0K Pj4+Pj4+PiAgd2hlbiBMRVZFTD0xLCB3YXJuaW5ncyB3aWxsIGJlIGlzc3VlZCBmb3IgYSB0cmFp bGluZyBhcnJheQ0KPj4+Pj4+PiAgcmVmZXJlbmNlIG9mIGEgc3RydWN0dXJlIHRoYXQgaGF2ZSAy IG9yIG1vcmUgZWxlbWVudHMgaWYgdGhlDQo+Pj4+Pj4+ICB0cmFpbGluZyBhcnJheSBpcyByZWZl cmVuY2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyLg0KPj4+Pj4+PiANCj4+Pj4+Pj4gIHdo ZW4gTEVWRUw9MiwgaW4gYWRkaXRpb24gdG8gTEVWRUw9MSwgYWRkaXRpb25hbCB3YXJuaW5ncyB3 aWxsIGJlDQo+Pj4+Pj4+ICBpc3N1ZWQgZm9yIGEgdHJhaWxpbmcgb25lLWVsZW1lbnQgYXJyYXkg cmVmZXJlbmNlIG9mIGEgc3RydWN0dXJlIGlmDQo+Pj4+Pj4+ICB0aGUgYXJyYXkgaXMgcmVmZXJl bmNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlci4NCj4+Pj4+Pj4gDQo+Pj4+Pj4+ICB3aGVu IExFVkVMPTMsIGluIGFkZGl0aW9uIHRvIExFVkVMPTIsIGFkZGl0aW9uYWwgd2FybmluZ3Mgd2ls bCBiZQ0KPj4+Pj4+PiAgaXNzdWVkIGZvciBhIHRyYWlsaW5nIHplcm8tbGVuZ3RoIGFycmF5IHJl ZmVyZW5jZSBvZiBhIHN0cnVjdHVyZSBpZg0KPj4+Pj4+PiAgdGhlIGFycmF5IGlzIHJlZmVyZW5j ZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIuDQo+Pj4+Pj4+IA0KPj4+Pj4+PiBnY2MvQ2hh bmdlTG9nOg0KPj4+Pj4+PiANCj4+Pj4+Pj4gCSogZG9jL2ludm9rZS50ZXhpOiBEb2N1bWVudCAt V3N0cmljdC1mbGV4LWFycmF5cyBvcHRpb24uDQo+Pj4+Pj4+IAkqIGdpbXBsZS1hcnJheS1ib3Vu ZHMuY2MgKGNoZWNrX291dF9vZl9ib3VuZHNfYW5kX3dhcm4pOiBBZGQgdHdvIG1vcmUNCj4+Pj4+ Pj4gCWFyZ3VtZW50cy4NCj4+Pj4+Pj4gCShhcnJheV9ib3VuZHNfY2hlY2tlcjo6Y2hlY2tfYXJy YXlfcmVmKTogSXNzdWUgd2FybmluZ3MgZm9yDQo+Pj4+Pj4+IAktV3N0cmljdC1mbGV4LWFycmF5 cy4NCj4+Pj4+Pj4gCSogb3B0cy5jYyAoZmluaXNoX29wdGlvbnMpOiBJc3N1ZSB3YXJuaW5nIGZv ciB1bnN1cHBvcnRlZCBjb21iaW5hdGlvbg0KPj4+Pj4+PiAJb2YgLVdzdHJpY3RfZmxleF9hcnJh eXMgYW5kIC1mc3RyaWN0LWZsZXgtYXJyYXkuDQo+Pj4+Pj4+IAkqIHRyZWUtdnJwLmNjIChleGVj dXRlX3Jhbmdlcl92cnApOiBFbmFibGUgdGhlIHBhc3Mgd2hlbg0KPj4+Pj4+PiAJd2Fybl9zdHJp Y3RfZmxleF9hcnJheSBpcyB0cnVlLg0KPj4+Pj4+PiANCj4+Pj4+Pj4gZ2NjL2MtZmFtaWx5L0No YW5nZUxvZzoNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IAkqIGMub3B0IChXc3RyaWN0LWZsZXgtYXJyYXlz KTogTmV3IG9wdGlvbi4NCj4+Pj4+Pj4gDQo+Pj4+Pj4+IGdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9n Og0KPj4+Pj4+PiANCj4+Pj4+Pj4gCSogZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMt MS5jOiBVcGRhdGUgdGVzdGluZyBjYXNlIHdpdGgNCj4+Pj4+Pj4gCS1Xc3RyaWN0LWZsZXgtYXJy YXlzLg0KPj4+Pj4+PiAJKiBnY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0yLmM6IExp a2V3aXNlLg0KPj4+Pj4+PiAJKiBnY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0zLmM6 IExpa2V3aXNlLg0KPj4+Pj4+PiAJKiBnY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy00 LmM6IExpa2V3aXNlLg0KPj4+Pj4+PiAJKiBnY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5 cy01LmM6IExpa2V3aXNlLg0KPj4+Pj4+PiAJKiBnY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFy cmF5cy02LmM6IExpa2V3aXNlLg0KPj4+Pj4+PiAJKiBjLWMrKy1jb21tb24vV3N0cmljdC1mbGV4 LWFycmF5cy5jOiBOZXcgdGVzdC4NCj4+Pj4+Pj4gCSogZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJh eXMtMi5jOiBOZXcgdGVzdC4NCj4+Pj4+Pj4gCSogZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMt My5jOiBOZXcgdGVzdC4NCj4+Pj4+Pj4gCSogZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMuYzog TmV3IHRlc3QuDQo+Pj4+Pj4+IC0tLQ0KPj4+Pj4+PiBnY2MvYy1mYW1pbHkvYy5vcHQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKw0KPj4+Pj4+PiBnY2MvZG9jL2ludm9rZS50ZXhp ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjcgKysrKy0NCj4+Pj4+Pj4gZ2NjL2dpbXBs ZS1hcnJheS1ib3VuZHMuY2MgICAgICAgICAgICAgICAgICAgIHwgMTAzICsrKysrKysrKysrKysr LS0tLQ0KPj4+Pj4+PiBnY2Mvb3B0cy5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDggKysNCj4+Pj4+Pj4gLi4uL2MtYysrLWNvbW1vbi9Xc3RyaWN0LWZsZXgtYXJyYXlz LmMgICAgICAgIHwgICA5ICsrDQo+Pj4+Pj4+IC4uLi9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4 LWFycmF5cy0xLmMgICAgICB8ICAgNSArLQ0KPj4+Pj4+PiAuLi4vZ2NjLmRnL1dhcnJheS1ib3Vu ZHMtZmxleC1hcnJheXMtMi5jICAgICAgfCAgIDYgKy0NCj4+Pj4+Pj4gLi4uL2djYy5kZy9XYXJy YXktYm91bmRzLWZsZXgtYXJyYXlzLTMuYyAgICAgIHwgICA3ICstDQo+Pj4+Pj4+IC4uLi9nY2Mu ZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy00LmMgICAgICB8ICAgNSArLQ0KPj4+Pj4+PiAu Li4vZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtNS5jICAgICAgfCAgIDYgKy0NCj4+ Pj4+Pj4gLi4uL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTYuYyAgICAgIHwgICA3 ICstDQo+Pj4+Pj4+IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMtMi5j ICB8ICAzOSArKysrKysrDQo+Pj4+Pj4+IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxl eC1hcnJheXMtMy5jICB8ICAzOSArKysrKysrDQo+Pj4+Pj4+IGdjYy90ZXN0c3VpdGUvZ2NjLmRn L1dzdHJpY3QtZmxleC1hcnJheXMuYyAgICB8ICAzOSArKysrKysrDQo+Pj4+Pj4+IGdjYy90cmVl LXZycC5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQ0KPj4+Pj4+PiAx NSBmaWxlcyBjaGFuZ2VkLCAyNzMgaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pDQo+Pj4+ Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9Xc3RyaWN0 LWZsZXgtYXJyYXlzLmMNCj4+Pj4+Pj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMtMi5jDQo+Pj4+Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvdGVzdHN1aXRlL2djYy5kZy9Xc3RyaWN0LWZsZXgtYXJyYXlzLTMuYw0KPj4+Pj4+PiBj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1mbGV4LWFycmF5 cy5jDQo+Pj4+Pj4+IA0KPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL2MtZmFtaWx5L2Mub3B0IGIv Z2NjL2MtZmFtaWx5L2Mub3B0DQo+Pj4+Pj4+IGluZGV4IDBkMGFkMGE2Mzc0Li4zM2VkZWVmZDI4 NSAxMDA2NDQNCj4+Pj4+Pj4gLS0tIGEvZ2NjL2MtZmFtaWx5L2Mub3B0DQo+Pj4+Pj4+ICsrKyBi L2djYy9jLWZhbWlseS9jLm9wdA0KPj4+Pj4+PiBAQCAtOTc2LDYgKzk3NiwxMSBAQCBXc3RyaW5n b3AtdHJ1bmNhdGlvbg0KPj4+Pj4+PiBDIE9iakMgQysrIExUTyBPYmpDKysgVmFyKHdhcm5fc3Ry aW5nb3BfdHJ1bmNhdGlvbikgV2FybmluZyBJbml0ICgxKSBMYW5nRW5hYmxlZEJ5KEMgT2JqQyBD KysgTFRPIE9iakMrKywgV2FsbCkNCj4+Pj4+Pj4gV2FybiBhYm91dCB0cnVuY2F0aW9uIGluIHN0 cmluZyBtYW5pcHVsYXRpb24gZnVuY3Rpb25zIGxpa2Ugc3RybmNhdCBhbmQgc3RybmNweS4NCj4+ Pj4+Pj4gDQo+Pj4+Pj4+ICtXc3RyaWN0LWZsZXgtYXJyYXlzDQo+Pj4+Pj4+ICtDIEMrKyBWYXIo d2Fybl9zdHJpY3RfZmxleF9hcnJheXMpIFdhcm5pbmcNCj4+Pj4+Pj4gK1dhcm4gYWJvdXQgaW5w cm9wZXIgdXNhZ2VzIG9mIGZsZXhpYmxlIGFycmF5IG1lbWJlcnMNCj4+Pj4+Pj4gK2FjY29yZGlu ZyB0byB0aGUgbGV2ZWwgb2YgLWZzdHJpY3QtZmxleC1hcnJheXMuDQo+Pj4+Pj4+ICsNCj4+Pj4+ Pj4gV3N1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdA0KPj4+Pj4+PiBDIE9iakMgQysrIE9iakMrKyBW YXIod2Fybl9zdWdnZXN0X2F0dHJpYnV0ZV9mb3JtYXQpIFdhcm5pbmcNCj4+Pj4+Pj4gV2FybiBh Ym91dCBmdW5jdGlvbnMgd2hpY2ggbWlnaHQgYmUgY2FuZGlkYXRlcyBmb3IgZm9ybWF0IGF0dHJp YnV0ZXMuDQo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9nY2MvZG9jL2ludm9rZS50ZXhpIGIvZ2NjL2Rv Yy9pbnZva2UudGV4aQ0KPj4+Pj4+PiBpbmRleCA3MjYzOTI0MDliNi4uNDQwMmIwNDI3ZWYgMTAw NjQ0DQo+Pj4+Pj4+IC0tLSBhL2djYy9kb2MvaW52b2tlLnRleGkNCj4+Pj4+Pj4gKysrIGIvZ2Nj L2RvYy9pbnZva2UudGV4aQ0KPj4+Pj4+PiBAQCAtMzk4LDcgKzM5OCw3IEBAIE9iamVjdGl2ZS1D IGFuZCBPYmplY3RpdmUtQysrIERpYWxlY3RzfS4NCj4+Pj4+Pj4gLVdzdHJpY3QtYWxpYXNpbmc9 biAgLVdzdHJpY3Qtb3ZlcmZsb3cgIC1Xc3RyaWN0LW92ZXJmbG93PUB2YXJ7bn0gQGdvbA0KPj4+ Pj4+PiAtV3N0cmluZy1jb21wYXJlIEBnb2wNCj4+Pj4+Pj4gLVduby1zdHJpbmdvcC1vdmVyZmxv dyAtV25vLXN0cmluZ29wLW92ZXJyZWFkIEBnb2wNCj4+Pj4+Pj4gLS1Xbm8tc3RyaW5nb3AtdHJ1 bmNhdGlvbiBAZ29sDQo+Pj4+Pj4+ICstV25vLXN0cmluZ29wLXRydW5jYXRpb24gLVdzdHJpY3Qt ZmxleC1hcnJheXMgQGdvbA0KPj4+Pj4+PiAtV3N1Z2dlc3QtYXR0cmlidXRlPUBye1t9cHVyZUBy e3x9Y29uc3RAcnt8fW5vcmV0dXJuQHJ7fH1mb3JtYXRAcnt8fW1hbGxvY0Bye119IEBnb2wNCj4+ Pj4+Pj4gLVdzd2l0Y2ggIC1Xbm8tc3dpdGNoLWJvb2wgIC1Xc3dpdGNoLWRlZmF1bHQgIC1Xc3dp dGNoLWVudW0gQGdvbA0KPj4+Pj4+PiAtV25vLXN3aXRjaC1vdXRzaWRlLXJhbmdlICAtV25vLXN3 aXRjaC11bnJlYWNoYWJsZSAgLVdzeW5jLW5hbmQgQGdvbA0KPj4+Pj4+PiBAQCAtNzgzNSw2ICs3 ODM1LDMxIEBAIGhvd2V2ZXIsIGFyZSBub3Qgc3VpdGFibGUgYXJndW1lbnRzIHRvIGZ1bmN0aW9u cyB0aGF0IGV4cGVjdA0KPj4+Pj4+PiBzdWNoIGFycmF5cyBHQ0MgaXNzdWVzIHdhcm5pbmdzIHVu bGVzcyBpdCBjYW4gcHJvdmUgdGhhdCB0aGUgdXNlIGlzDQo+Pj4+Pj4+IHNhZmUuICBAeHJlZntD b21tb24gVmFyaWFibGUgQXR0cmlidXRlc30uDQo+Pj4+Pj4+IA0KPj4+Pj4+PiArQGl0ZW0gLVdz dHJpY3QtZmxleC1hcnJheXMNCj4+Pj4+Pj4gK0BvcGluZGV4IFdzdHJpY3QtZmxleC1hcnJheXMN Cj4+Pj4+Pj4gK0BvcGluZGV4IFduby1zdHJpY3QtZmxleC1hcnJheXMNCj4+Pj4+Pj4gK1dhcm4g YWJvdXQgaW5wcm9wZXIgdXNhZ2VzIG9mIGZsZXhpYmxlIGFycmF5IG1lbWJlcnMNCj4+Pj4+Pj4g K2FjY29yZGluZyB0byB0aGUgQHZhcntsZXZlbH0gb2YgdGhlIEBjb2Rle3N0cmljdF9mbGV4X2Fy cmF5IChAdmFye2xldmVsfSl9DQo+Pj4+Pj4+ICthdHRyaWJ1dGUgYXR0YWNoZWQgdG8gdGhlIHRy YWlsaW5nIGFycmF5IGZpZWxkIG9mIGEgc3RydWN0dXJlIGlmIGl0J3MNCj4+Pj4+Pj4gK2F2YWls YWJsZSwgb3RoZXJ3aXNlIGFjY29yZGluZyB0byB0aGUgQHZhcntsZXZlbH0gb2YgdGhlIG9wdGlv bg0KPj4+Pj4+PiArQG9wdGlvbnstZnN0cmljdC1mbGV4LWFycmF5cz1AdmFye2xldmVsfX0uDQo+ Pj4+Pj4+ICsNCj4+Pj4+Pj4gK1RoaXMgb3B0aW9uIGlzIGVmZmVjdGl2ZSBvbmx5IHdoZW4gQHZh cntsZXZlbH0gaXMgYmlnZ2VyIHRoYW4gMC4gIE90aGVyd2lzZSwNCj4+Pj4+Pj4gK2l0IHdpbGwg YmUgaWdub3JlZCB3aXRoIGEgd2FybmluZy4NCj4+Pj4+Pj4gKw0KPj4+Pj4+PiArd2hlbiBAdmFy e2xldmVsfT0xLCB3YXJuaW5ncyB3aWxsIGJlIGlzc3VlZCBmb3IgYSB0cmFpbGluZyBhcnJheSBy ZWZlcmVuY2UNCj4+Pj4+Pj4gK29mIGEgc3RydWN0dXJlIHRoYXQgaGF2ZSAyIG9yIG1vcmUgZWxl bWVudHMgaWYgdGhlIHRyYWlsaW5nIGFycmF5IGlzIHJlZmVyZW5jZWQNCj4+Pj4+Pj4gK2FzIGEg ZmxleGlibGUgYXJyYXkgbWVtYmVyLg0KPj4+Pj4+PiArDQo+Pj4+Pj4+ICt3aGVuIEB2YXJ7bGV2 ZWx9PTIsIGluIGFkZGl0aW9uIHRvIEB2YXJ7bGV2ZWx9PTEsIGFkZGl0aW9uYWwgd2FybmluZ3Mg d2lsbCBiZQ0KPj4+Pj4+PiAraXNzdWVkIGZvciBhIHRyYWlsaW5nIG9uZS1lbGVtZW50IGFycmF5 IHJlZmVyZW5jZSBvZiBhIHN0cnVjdHVyZQ0KPj4+Pj4+PiAraWYgdGhlIGFycmF5IGlzIHJlZmVy ZW5jZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIuDQo+Pj4+Pj4+ICsNCj4+Pj4+Pj4gK3do ZW4gQHZhcntsZXZlbH09MywgaW4gYWRkaXRpb24gdG8gQHZhcntsZXZlbH09MiwgYWRkaXRpb25h bCB3YXJuaW5ncyB3aWxsIGJlDQo+Pj4+Pj4+ICtpc3N1ZWQgZm9yIGEgdHJhaWxpbmcgemVyby1s ZW5ndGggYXJyYXkgcmVmZXJlbmNlIG9mIGEgc3RydWN0dXJlDQo+Pj4+Pj4+ICtpZiB0aGUgYXJy YXkgaXMgcmVmZXJlbmNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlci4NCj4+Pj4+Pj4gKw0K Pj4+Pj4+PiArDQo+Pj4+Pj4+IEBpdGVtIC1Xc3VnZ2VzdC1hdHRyaWJ1dGU9QHJ7W31wdXJlQHJ7 fH1jb25zdEBye3x9bm9yZXR1cm5Acnt8fWZvcm1hdEBye3x9Y29sZEBye3x9bWFsbG9jQHJ7XX0N Cj4+Pj4+Pj4gQG9waW5kZXggV3N1Z2dlc3QtYXR0cmlidXRlPQ0KPj4+Pj4+PiBAb3BpbmRleCBX bm8tc3VnZ2VzdC1hdHRyaWJ1dGU9DQo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9nY2MvZ2ltcGxlLWFy cmF5LWJvdW5kcy5jYyBiL2djYy9naW1wbGUtYXJyYXktYm91bmRzLmNjDQo+Pj4+Pj4+IGluZGV4 IGRiMzQ1OWFmMzI1Li44MjVmMTEzMzFiNSAxMDA2NDQNCj4+Pj4+Pj4gLS0tIGEvZ2NjL2dpbXBs ZS1hcnJheS1ib3VuZHMuY2MNCj4+Pj4+Pj4gKysrIGIvZ2NjL2dpbXBsZS1hcnJheS1ib3VuZHMu Y2MNCj4+Pj4+Pj4gQEAgLTI1MiwyNSArMjUyLDM0IEBAIGdldF91cF9ib3VuZHNfZm9yX2FycmF5 X3JlZiAodHJlZSByZWYsIHRyZWUgKmRlY2wsDQo+Pj4+Pj4+IA0KPj4+Pj4+PiAvKiBHaXZlbiB0 aGUgTE9XX1NVQl9PUkcsIExPV19TVUIgYW5kIFVQX1NVQiwgYW5kIHRoZSBjb21wdXRlZCBVUF9C T1VORA0KPj4+Pj4+PiBhbmQgVVBfQk9VTkRfUDEsIGNoZWNrIHdoZXRoZXIgdGhlIGFycmF5IHJl ZmVyZW5jZSBSRUYgaXMgb3V0IG9mIGJvdW5kLg0KPj4+Pj4+PiAtICAgSXNzdWUgd2FybmluZ3Mg aWYgb3V0IG9mIGJvdW5kLCByZXR1cm4gVFJVRSBpZiB3YXJuaW5ncyBhcmUgaXNzdWVkLiAgKi8g DQo+Pj4+Pj4+ICsgICBXaGVuIG91dCBvZiBib3VuZHMsIHNldCBPVVRfT0ZfQk9VTkQgdG8gdHJ1 ZS4NCj4+Pj4+Pj4gKyAgIElzc3VlIHdhcm5pbmdzIGlmIEZPUl9BUlJBWV9CT1VORCBpcyB0cnVl Lg0KPj4+Pj4+PiArICAgcmV0dXJuIFRSVUUgaWYgd2FybmluZ3MgYXJlIGlzc3VlZC4gICovDQo+ Pj4+Pj4+ICsNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IHN0YXRpYyBib29sDQo+Pj4+Pj4+IGNoZWNrX291 dF9vZl9ib3VuZHNfYW5kX3dhcm4gKGxvY2F0aW9uX3QgbG9jYXRpb24sIHRyZWUgcmVmLA0KPj4+ Pj4+PiAJCQkgICAgICB0cmVlIGxvd19zdWJfb3JnLCB0cmVlIGxvd19zdWIsIHRyZWUgdXBfc3Vi LA0KPj4+Pj4+PiAJCQkgICAgICB0cmVlIHVwX2JvdW5kLCB0cmVlIHVwX2JvdW5kX3AxLA0KPj4+ Pj4+PiAJCQkgICAgICBjb25zdCB2YWx1ZV9yYW5nZSAqdnIsDQo+Pj4+Pj4+IC0JCQkgICAgICBi b29sIGlnbm9yZV9vZmZfYnlfb25lKQ0KPj4+Pj4+PiArCQkJICAgICAgYm9vbCBpZ25vcmVfb2Zm X2J5X29uZSwgYm9vbCBmb3JfYXJyYXlfYm91bmQsDQo+Pj4+Pj4+ICsJCQkgICAgICBib29sICpv dXRfb2ZfYm91bmQpDQo+Pj4+Pj4+IHsNCj4+Pj4+Pj4gdHJlZSBsb3dfYm91bmQgPSBhcnJheV9y ZWZfbG93X2JvdW5kIChyZWYpOw0KPj4+Pj4+PiB0cmVlIGFydHlwZSA9IFRSRUVfVFlQRSAoVFJF RV9PUEVSQU5EIChyZWYsIDApKTsNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IGJvb2wgd2FybmVkID0gZmFs c2U7DQo+Pj4+Pj4+ICsgICpvdXRfb2ZfYm91bmQgPSBmYWxzZTsNCj4+Pj4+Pj4gDQo+Pj4+Pj4+ IC8qIEVtcHR5IGFycmF5LiAgKi8NCj4+Pj4+Pj4gaWYgKHVwX2JvdW5kICYmIHRyZWVfaW50X2Nz dF9lcXVhbCAobG93X2JvdW5kLCB1cF9ib3VuZF9wMSkpDQo+Pj4+Pj4+IC0gICAgd2FybmVkID0g d2FybmluZ19hdCAobG9jYXRpb24sIE9QVF9XYXJyYXlfYm91bmRzXywNCj4+Pj4+Pj4gLQkJCSAi YXJyYXkgc3Vic2NyaXB0ICVFIGlzIG91dHNpZGUgYXJyYXkgYm91bmRzIG9mICVxVCIsDQo+Pj4+ Pj4+IC0JCQkgbG93X3N1Yl9vcmcsIGFydHlwZSk7DQo+Pj4+Pj4+ICsgICAgew0KPj4+Pj4+PiAr ICAgICAgKm91dF9vZl9ib3VuZCA9IHRydWU7DQo+Pj4+Pj4+ICsgICAgICBpZiAoZm9yX2FycmF5 X2JvdW5kKQ0KPj4+Pj4+PiArCXdhcm5lZCA9IHdhcm5pbmdfYXQgKGxvY2F0aW9uLCBPUFRfV2Fy cmF5X2JvdW5kc18sDQo+Pj4+Pj4+ICsJCQkgICAgICJhcnJheSBzdWJzY3JpcHQgJUUgaXMgb3V0 c2lkZSBhcnJheSINCj4+Pj4+Pj4gKwkJCSAgICAgIiBib3VuZHMgb2YgJXFUIiwgbG93X3N1Yl9v cmcsIGFydHlwZSk7DQo+Pj4+Pj4+ICsgICAgfQ0KPj4+Pj4+PiANCj4+Pj4+Pj4gaWYgKHdhcm5l ZCkNCj4+Pj4+Pj4gIDsgLyogRG8gbm90aGluZy4gICovDQo+Pj4+Pj4+IEBAIC0yODMsMjQgKzI5 MiwzMyBAQCBjaGVja19vdXRfb2ZfYm91bmRzX2FuZF93YXJuIChsb2NhdGlvbl90IGxvY2F0aW9u LCB0cmVlIHJlZiwNCj4+Pj4+Pj4gCSAgICAgIDogdHJlZV9pbnRfY3N0X2xlICh1cF9ib3VuZCwg dXBfc3ViKSkNCj4+Pj4+Pj4gCSAgJiYgVFJFRV9DT0RFIChsb3dfc3ViKSA9PSBJTlRFR0VSX0NT VA0KPj4+Pj4+PiAJICAmJiB0cmVlX2ludF9jc3RfbGUgKGxvd19zdWIsIGxvd19ib3VuZCkpDQo+ Pj4+Pj4+IC0Jd2FybmVkID0gd2FybmluZ19hdCAobG9jYXRpb24sIE9QVF9XYXJyYXlfYm91bmRz XywNCj4+Pj4+Pj4gLQkJCSAgICAgImFycmF5IHN1YnNjcmlwdCBbJUUsICVFXSBpcyBvdXRzaWRl ICINCj4+Pj4+Pj4gLQkJCSAgICAgImFycmF5IGJvdW5kcyBvZiAlcVQiLA0KPj4+Pj4+PiAtCQkJ ICAgICBsb3dfc3ViLCB1cF9zdWIsIGFydHlwZSk7DQo+Pj4+Pj4+ICsJew0KPj4+Pj4+PiArCSAg Km91dF9vZl9ib3VuZCA9IHRydWU7DQo+Pj4+Pj4+ICsJICB3YXJuZWQgPSB3YXJuaW5nX2F0IChs b2NhdGlvbiwgT1BUX1dhcnJheV9ib3VuZHNfLA0KPj4+Pj4+PiArCQkJICAgICAgICJhcnJheSBz dWJzY3JpcHQgWyVFLCAlRV0gaXMgb3V0c2lkZSAiDQo+Pj4+Pj4+ICsJCQkgICAgICAgImFycmF5 IGJvdW5kcyBvZiAlcVQiLA0KPj4+Pj4+PiArCQkJICAgICAgIGxvd19zdWIsIHVwX3N1YiwgYXJ0 eXBlKTsNCj4+Pj4+Pj4gKwl9DQo+Pj4+Pj4+ICB9DQo+Pj4+Pj4+IGVsc2UgaWYgKHVwX2JvdW5k DQo+Pj4+Pj4+IAkgICAmJiBUUkVFX0NPREUgKHVwX3N1YikgPT0gSU5URUdFUl9DU1QNCj4+Pj4+ Pj4gCSAgICYmIChpZ25vcmVfb2ZmX2J5X29uZQ0KPj4+Pj4+PiAJICAgICAgID8gIXRyZWVfaW50 X2NzdF9sZSAodXBfc3ViLCB1cF9ib3VuZF9wMSkNCj4+Pj4+Pj4gCSAgICAgICA6ICF0cmVlX2lu dF9jc3RfbGUgKHVwX3N1YiwgdXBfYm91bmQpKSkNCj4+Pj4+Pj4gLSAgICB3YXJuZWQgPSB3YXJu aW5nX2F0IChsb2NhdGlvbiwgT1BUX1dhcnJheV9ib3VuZHNfLA0KPj4+Pj4+PiAtCQkJICJhcnJh eSBzdWJzY3JpcHQgJUUgaXMgYWJvdmUgYXJyYXkgYm91bmRzIG9mICVxVCIsDQo+Pj4+Pj4+IC0J CQkgdXBfc3ViLCBhcnR5cGUpOw0KPj4+Pj4+PiArICAgIHsNCj4+Pj4+Pj4gKyAgICAgICpvdXRf b2ZfYm91bmQgPSB0cnVlOw0KPj4+Pj4+PiArICAgICAgd2FybmVkID0gd2FybmluZ19hdCAobG9j YXRpb24sIE9QVF9XYXJyYXlfYm91bmRzXywNCj4+Pj4+Pj4gKwkJCSAgICJhcnJheSBzdWJzY3Jp cHQgJUUgaXMgYWJvdmUgYXJyYXkgYm91bmRzIG9mICVxVCIsDQo+Pj4+Pj4+ICsJCQkgICB1cF9z dWIsIGFydHlwZSk7DQo+Pj4+Pj4+ICsgICAgfQ0KPj4+Pj4+PiBlbHNlIGlmIChUUkVFX0NPREUg KGxvd19zdWIpID09IElOVEVHRVJfQ1NUDQo+Pj4+Pj4+IAkgICAmJiB0cmVlX2ludF9jc3RfbHQg KGxvd19zdWIsIGxvd19ib3VuZCkpDQo+Pj4+Pj4+IC0gICAgd2FybmVkID0gd2FybmluZ19hdCAo bG9jYXRpb24sIE9QVF9XYXJyYXlfYm91bmRzXywNCj4+Pj4+Pj4gLQkJCSAiYXJyYXkgc3Vic2Ny aXB0ICVFIGlzIGJlbG93IGFycmF5IGJvdW5kcyBvZiAlcVQiLA0KPj4+Pj4+PiAtCQkJIGxvd19z dWIsIGFydHlwZSk7DQo+Pj4+Pj4+ICsgICAgew0KPj4+Pj4+PiArICAgICAgKm91dF9vZl9ib3Vu ZCA9IHRydWU7DQo+Pj4+Pj4+ICsgICAgICB3YXJuZWQgPSB3YXJuaW5nX2F0IChsb2NhdGlvbiwg T1BUX1dhcnJheV9ib3VuZHNfLA0KPj4+Pj4+PiArCQkJICAgImFycmF5IHN1YnNjcmlwdCAlRSBp cyBiZWxvdyBhcnJheSBib3VuZHMgb2YgJXFUIiwNCj4+Pj4+Pj4gKwkJCSAgIGxvd19zdWIsIGFy dHlwZSk7DQo+Pj4+Pj4+ICsgICAgfQ0KPj4+Pj4+PiByZXR1cm4gd2FybmVkOw0KPj4+Pj4+PiB9 DQo+Pj4+Pj4+IA0KPj4+Pj4+PiBAQCAtMzMzLDE0ICszNTEsMjEgQEAgYXJyYXlfYm91bmRzX2No ZWNrZXI6OmNoZWNrX2FycmF5X3JlZiAobG9jYXRpb25fdCBsb2NhdGlvbiwgdHJlZSByZWYsDQo+ Pj4+Pj4+IA0KPj4+Pj4+PiB0cmVlIGFyZyA9IFRSRUVfT1BFUkFORCAocmVmLCAwKTsNCj4+Pj4+ Pj4gY29uc3QgYm9vbCBjb21wcmVmID0gVFJFRV9DT0RFIChhcmcpID09IENPTVBPTkVOVF9SRUY7 DQo+Pj4+Pj4+ICsgIHVuc2lnbmVkIGludCBzdHJpY3RfZmxleF9hcnJheV9sZXZlbCA9IGZsYWdf c3RyaWN0X2ZsZXhfYXJyYXlzOw0KPj4+Pj4+PiANCj4+Pj4+Pj4gaWYgKGNvbXByZWYpDQo+Pj4+ Pj4+IC0gICAgLyogVHJ5IHRvIGRldGVybWluZSBzcGVjaWFsIGFycmF5IG1lbWJlciB0eXBlIGZv ciB0aGlzIENPTVBPTkVOVF9SRUYuICAqLw0KPj4+Pj4+PiAtICAgIHNhbSA9IGNvbXBvbmVudF9y ZWZfc2FtX3R5cGUgKGFyZyk7DQo+Pj4+Pj4+ICsgICAgew0KPj4+Pj4+PiArICAgICAgLyogVHJ5 IHRvIGRldGVybWluZSBzcGVjaWFsIGFycmF5IG1lbWJlciB0eXBlIGZvciB0aGlzIENPTVBPTkVO VF9SRUYuICAqLw0KPj4+Pj4+PiArICAgICAgc2FtID0gY29tcG9uZW50X3JlZl9zYW1fdHlwZSAo YXJnKTsNCj4+Pj4+Pj4gKyAgICAgIC8qIEdldCB0aGUgbGV2ZWwgb2Ygc3RyaWN0X2ZsZXhfYXJy YXkgZm9yIHRoaXMgYXJyYXkgZmllbGQuICAqLw0KPj4+Pj4+PiArICAgICAgdHJlZSBhZmllbGRf ZGVjbCA9IFRSRUVfT1BFUkFORCAoYXJnLCAxKTsNCj4+Pj4+Pj4gKyAgICAgIHN0cmljdF9mbGV4 X2FycmF5X2xldmVsID0gc3RyaWN0X2ZsZXhfYXJyYXlfbGV2ZWxfb2YgKGFmaWVsZF9kZWNsKTsN Cj4+Pj4+Pj4gKyAgICB9DQo+Pj4+Pj4+IA0KPj4+Pj4+PiBnZXRfdXBfYm91bmRzX2Zvcl9hcnJh eV9yZWYgKHJlZiwgJmRlY2wsICZ1cF9ib3VuZCwgJnVwX2JvdW5kX3AxKTsNCj4+Pj4+Pj4gDQo+ Pj4+Pj4+IGJvb2wgd2FybmVkID0gZmFsc2U7DQo+Pj4+Pj4+ICsgIGJvb2wgb3V0X29mX2JvdW5k ID0gZmFsc2U7DQo+Pj4+Pj4+IA0KPj4+Pj4+PiB0cmVlIGFydHlwZSA9IFRSRUVfVFlQRSAoVFJF RV9PUEVSQU5EIChyZWYsIDApKTsNCj4+Pj4+Pj4gdHJlZSBsb3dfc3ViX29yZyA9IFRSRUVfT1BF UkFORCAocmVmLCAxKTsNCj4+Pj4+Pj4gQEAgLTM2MSw3ICszODYsOCBAQCBhcnJheV9ib3VuZHNf Y2hlY2tlcjo6Y2hlY2tfYXJyYXlfcmVmIChsb2NhdGlvbl90IGxvY2F0aW9uLCB0cmVlIHJlZiwN Cj4+Pj4+Pj4gd2FybmVkID0gY2hlY2tfb3V0X29mX2JvdW5kc19hbmRfd2FybiAobG9jYXRpb24s IHJlZiwNCj4+Pj4+Pj4gCQkJCQkgbG93X3N1Yl9vcmcsIGxvd19zdWIsIHVwX3N1YiwNCj4+Pj4+ Pj4gCQkJCQkgdXBfYm91bmQsIHVwX2JvdW5kX3AxLCB2ciwNCj4+Pj4+Pj4gLQkJCQkJIGlnbm9y ZV9vZmZfYnlfb25lKTsNCj4+Pj4+Pj4gKwkJCQkJIGlnbm9yZV9vZmZfYnlfb25lLCB3YXJuX2Fy cmF5X2JvdW5kcywNCj4+Pj4+Pj4gKwkJCQkJICZvdXRfb2ZfYm91bmQpOw0KPj4+Pj4+PiANCj4+ Pj4+Pj4gDQo+Pj4+Pj4+IGlmICghd2FybmVkICYmIHNhbSA9PSBzcGVjaWFsX2FycmF5X21lbWJl cjo6aW50XzApDQo+Pj4+Pj4+IEBAIC0zNzMsMTkgKzM5OSw1NiBAQCBhcnJheV9ib3VuZHNfY2hl Y2tlcjo6Y2hlY2tfYXJyYXlfcmVmIChsb2NhdGlvbl90IGxvY2F0aW9uLCB0cmVlIHJlZiwNCj4+ Pj4+Pj4gCQkJICAgICAgICJvZiBhbiBpbnRlcmlvciB6ZXJvLWxlbmd0aCBhcnJheSAlcVQiKSks DQo+Pj4+Pj4+IAkJCSBsb3dfc3ViLCBhcnR5cGUpOw0KPj4+Pj4+PiANCj4+Pj4+Pj4gLSAgaWYg KHdhcm5lZCkNCj4+Pj4+Pj4gKyAgaWYgKHdhcm5lZCB8fCBvdXRfb2ZfYm91bmQpDQo+Pj4+Pj4+ ICB7DQo+Pj4+Pj4+IC0gICAgICBpZiAoZHVtcF9maWxlICYmIChkdW1wX2ZsYWdzICYgVERGX0RF VEFJTFMpKQ0KPj4+Pj4+PiArICAgICAgaWYgKHdhcm5lZCAmJiBkdW1wX2ZpbGUgJiYgKGR1bXBf ZmxhZ3MgJiBUREZfREVUQUlMUykpDQo+Pj4+Pj4+IAl7DQo+Pj4+Pj4+IAkgIGZwcmludGYgKGR1 bXBfZmlsZSwgIkFycmF5IGJvdW5kIHdhcm5pbmcgZm9yICIpOw0KPj4+Pj4+PiAJICBkdW1wX2dl bmVyaWNfZXhwciAoTVNHX05PVEUsIFRERl9TTElNLCByZWYpOw0KPj4+Pj4+PiAJICBmcHJpbnRm IChkdW1wX2ZpbGUsICJcbiIpOw0KPj4+Pj4+PiAJfQ0KPj4+Pj4+PiANCj4+Pj4+Pj4gKyAgICAg IC8qIGlzc3VlIHdhcm5pbmdzIGZvciAtV3N0cmljdC1mbGV4LWFycmF5cyBhY2NvcmRpbmcgdG8g dGhlIGxldmVsIG9mDQo+Pj4+Pj4+ICsJIGZsYWdfc3RyaWN0X2ZsZXhfYXJyYXlzLiAgKi8NCj4+ Pj4+Pj4gKyAgICAgIGlmIChvdXRfb2ZfYm91bmQgJiYgd2Fybl9zdHJpY3RfZmxleF9hcnJheXMp DQo+Pj4+Pj4+ICsgICAgICBzd2l0Y2ggKHN0cmljdF9mbGV4X2FycmF5X2xldmVsKQ0KPj4+Pj4+ PiArCXsNCj4+Pj4+Pj4gKwkgIGNhc2UgMzoNCj4+Pj4+Pj4gKwkgICAgLyogSXNzdWUgYWRkaXRp b25hbCB3YXJuaW5ncyBmb3IgdHJhaWxpbmcgYXJyYXlzIFswXS4gICovDQo+Pj4+Pj4+ICsJICAg IGlmIChzYW0gPT0gc3BlY2lhbF9hcnJheV9tZW1iZXI6OnRyYWlsXzApDQo+Pj4+Pj4+ICsJICAg ICAgd2FybmVkID0gd2FybmluZ19hdCAobG9jYXRpb24sIE9QVF9Xc3RyaWN0X2ZsZXhfYXJyYXlz LA0KPj4+Pj4+PiArCQkJCSAgICJ0cmFpbGluZyBhcnJheSAlcVQgc2hvdWxkIG5vdCBiZSB1c2Vk IGFzICINCj4+Pj4+Pj4gKwkJCQkgICAiYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVs IDMiLA0KPj4+Pj4+PiArCQkJCSAgIGFydHlwZSk7DQo+Pj4+Pj4+ICsJICAgIC8qIEZBTExUSFJP VUdILiAgKi8NCj4+Pj4+Pj4gKwkgIGNhc2UgMjoNCj4+Pj4+Pj4gKwkgICAgLyogSXNzdWUgYWRk aXRpb25hbCB3YXJuaW5ncyBmb3IgdHJhaWxpbmcgYXJyYXlzIFsxXS4gICovDQo+Pj4+Pj4+ICsJ ICAgIGlmIChzYW0gPT0gc3BlY2lhbF9hcnJheV9tZW1iZXI6OnRyYWlsXzEpDQo+Pj4+Pj4+ICsJ ICAgICAgd2FybmVkID0gd2FybmluZ19hdCAobG9jYXRpb24sIE9QVF9Xc3RyaWN0X2ZsZXhfYXJy YXlzLA0KPj4+Pj4+PiArCQkJCSAgICJ0cmFpbGluZyBhcnJheSAlcVQgc2hvdWxkIG5vdCBiZSB1 c2VkIGFzICINCj4+Pj4+Pj4gKwkJCQkgICAiYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxl dmVsIDIgYW5kICINCj4+Pj4+Pj4gKwkJCQkgICAiYWJvdmUiLCBhcnR5cGUpOw0KPj4+Pj4+PiAr CSAgICAvKiBGQUxMVEhST1VHSC4gICovDQo+Pj4+Pj4+ICsJICBjYXNlIDE6DQo+Pj4+Pj4+ICsJ ICAgIC8qIElzc3VlIHdhcm5pbmdzIGZvciB0cmFpbGluZyBhcnJheXMgW25dLiAgKi8NCj4+Pj4+ Pj4gKwkgICAgaWYgKHNhbSA9PSBzcGVjaWFsX2FycmF5X21lbWJlcjo6dHJhaWxfbikNCj4+Pj4+ Pj4gKwkgICAgICB3YXJuZWQgPSB3YXJuaW5nX2F0IChsb2NhdGlvbiwgT1BUX1dzdHJpY3RfZmxl eF9hcnJheXMsDQo+Pj4+Pj4+ICsJCQkJICAgInRyYWlsaW5nIGFycmF5ICVxVCBzaG91bGQgbm90 IGJlIHVzZWQgYXMgIg0KPj4+Pj4+PiArCQkJCSAgICJhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBm b3IgbGV2ZWwgMSBhbmQgIg0KPj4+Pj4+PiArCQkJCSAgICJhYm92ZSIsIGFydHlwZSk7DQo+Pj4+ Pj4+ICsJICAgIGJyZWFrOw0KPj4+Pj4+PiArCSAgY2FzZSAwOg0KPj4+Pj4+PiArCSAgICAvKiBE byBub3RoaW5nLiAgKi8NCj4+Pj4+Pj4gKwkgICAgYnJlYWs7DQo+Pj4+Pj4+ICsJICBkZWZhdWx0 Og0KPj4+Pj4+PiArCSAgICBnY2NfdW5yZWFjaGFibGUgKCk7DQo+Pj4+Pj4+ICsJfQ0KPj4+Pj4+ PiArDQo+Pj4+Pj4+ICAgIC8qIEF2b2lkIG1vcmUgd2FybmluZ3Mgd2hlbiBjaGVja2luZyBtb3Jl IHNpZ25pZmljYW50IHN1YnNjcmlwdHMNCj4+Pj4+Pj4gCSBvZiB0aGUgc2FtZSBleHByZXNzaW9u LiAgKi8NCj4+Pj4+Pj4gICAgcmVmID0gVFJFRV9PUEVSQU5EIChyZWYsIDApOw0KPj4+Pj4+PiAg ICBzdXBwcmVzc193YXJuaW5nIChyZWYsIE9QVF9XYXJyYXlfYm91bmRzXyk7DQo+Pj4+Pj4+ICsg ICAgICBzdXBwcmVzc193YXJuaW5nIChyZWYsIE9QVF9Xc3RyaWN0X2ZsZXhfYXJyYXlzKTsNCj4+ Pj4+Pj4gDQo+Pj4+Pj4+ICAgIGlmIChkZWNsKQ0KPj4+Pj4+PiAJcmVmID0gZGVjbDsNCj4+Pj4+ Pj4gZGlmZiAtLWdpdCBhL2djYy9vcHRzLmNjIGIvZ2NjL29wdHMuY2MNCj4+Pj4+Pj4gaW5kZXgg NzNmYzk3NzU2ZTQuLjhkYjUzYWQ2Yzc3IDEwMDY0NA0KPj4+Pj4+PiAtLS0gYS9nY2Mvb3B0cy5j Yw0KPj4+Pj4+PiArKysgYi9nY2Mvb3B0cy5jYw0KPj4+Pj4+PiBAQCAtMTQxMSw2ICsxNDExLDE0 IEBAIGZpbmlzaF9vcHRpb25zIChzdHJ1Y3QgZ2NjX29wdGlvbnMgKm9wdHMsIHN0cnVjdCBnY2Nf b3B0aW9ucyAqb3B0c19zZXQsDQo+Pj4+Pj4+ICAgIG9wdHMtPnhfcHJvZmlsZV9mbGFnID0gMDsN Cj4+Pj4+Pj4gIH0NCj4+Pj4+Pj4gDQo+Pj4+Pj4+ICsgIGlmIChvcHRzLT54X3dhcm5fc3RyaWN0 X2ZsZXhfYXJyYXlzKQ0KPj4+Pj4+PiArICAgIGlmIChvcHRzLT54X2ZsYWdfc3RyaWN0X2ZsZXhf YXJyYXlzID09IDApDQo+Pj4+Pj4+ICsgICAgICB7DQo+Pj4+Pj4+ICsJb3B0cy0+eF93YXJuX3N0 cmljdF9mbGV4X2FycmF5cyA9IDA7DQo+Pj4+Pj4+ICsJd2FybmluZ19hdCAoVU5LTk9XTl9MT0NB VElPTiwgMCwNCj4+Pj4+Pj4gKwkJICAgICIlPC1Xc3RyaWN0LWZsZXgtYXJyYXlzJT4gaXMgaWdu b3JlZCB3aGVuIg0KPj4+Pj4+PiArCQkgICAgIiAlPC1mc3RyaWN0LWZsZXgtYXJyYXlzJT4gZG9l cyBub3QgcHJlc2VudCIpOw0KPj4+Pj4+PiArICAgICAgfQ0KPj4+Pj4+PiANCj4+Pj4+Pj4gZGlh Z25vc2Vfb3B0aW9ucyAob3B0cywgb3B0c19zZXQsIGxvYyk7DQo+Pj4+Pj4+IH0NCj4+Pj4+Pj4g ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL1dzdHJpY3QtZmxleC1hcnJh eXMuYyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL1dzdHJpY3QtZmxleC1hcnJheXMuYw0K Pj4+Pj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4+Pj4+PiBpbmRleCAwMDAwMDAwMDAwMC4u NzJiNGI3YzY0MDYNCj4+Pj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+Pj4+PiArKysgYi9nY2MvdGVz dHN1aXRlL2MtYysrLWNvbW1vbi9Xc3RyaWN0LWZsZXgtYXJyYXlzLmMNCj4+Pj4+Pj4gQEAgLTAs MCArMSw5IEBADQo+Pj4+Pj4+ICsvKiBUZXN0IHRoZSB1c2FnZSBvZiBvcHRpb24gLVdzdHJpY3Qt ZmxleC1hcnJheXMuICAqLw0KPj4+Pj4+PiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4+Pj4+ Pj4gKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1Xc3RyaWN0LWZsZXgtYXJyYXlzIiB9ICovDQo+Pj4+ Pj4+ICsNCj4+Pj4+Pj4gK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pDQo+Pj4+Pj4+ ICt7DQo+Pj4+Pj4+ICsgICAgcmV0dXJuIDA7DQo+Pj4+Pj4+ICt9DQo+Pj4+Pj4+ICsvKiB7IGRn LXdhcm5pbmcgImlzIGlnbm9yZWQgd2hlbiBcJy1mc3RyaWN0LWZsZXgtYXJyYXlzXCcgZG9lcyBu b3QgcHJlc2VudCIgIiIgeyB0YXJnZXQgKi0qLSogfSAwIH0gKi8NCj4+Pj4+Pj4gZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtMS5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0xLmMNCj4+Pj4+ Pj4gaW5kZXggZDM2YmE0ZDg2Y2IuLjY1YzlmZWM0M2FmIDEwMDY0NA0KPj4+Pj4+PiAtLS0gYS9n Y2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTEuYw0KPj4+Pj4+ PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTEu Yw0KPj4+Pj4+PiBAQCAtMSw2ICsxLDYgQEANCj4+Pj4+Pj4gLS8qIFRlc3QgLWZzdHJpY3QtZmxl eC1hcnJheXMgKyAtV2FycmF5LWJvdW5kcy4gICovDQo+Pj4+Pj4+ICsvKiBUZXN0IC1mc3RyaWN0 LWZsZXgtYXJyYXlzICsgLVdhcnJheS1ib3VuZHMgKyAtV3N0cmljdC1mbGV4LWFycmF5cy4gICov DQo+Pj4+Pj4+IC8qIHsgZGctZG8gY29tcGlsZX0gKi8NCj4+Pj4+Pj4gLS8qIHsgZGctb3B0aW9u cyAiLU8yIC1mc3RyaWN0LWZsZXgtYXJyYXlzPTEgLVdhcnJheS1ib3VuZHMiIH0gKi8NCj4+Pj4+ Pj4gKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1Xc3RyaWN0LWZsZXgtYXJyYXlzIC1mc3RyaWN0LWZs ZXgtYXJyYXlzPTEgLVdhcnJheS1ib3VuZHMiIH0gKi8NCj4+Pj4+Pj4gDQo+Pj4+Pj4+IHN0cnVj dCB0cmFpbGluZ19hcnJheV8xIHsNCj4+Pj4+Pj4gIGludCBhOw0KPj4+Pj4+PiBAQCAtMzIsNiAr MzIsNyBAQCB2b2lkIF9fYXR0cmlidXRlX18oKF9fbm9pbmxpbmVfXykpIHN0dWZmKA0KPj4+Pj4+ PiAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzQgKnRyYWlsaW5nX2ZsZXgpDQo+Pj4+Pj4+IHsNCj4+ Pj4+Pj4gIG5vcm1hbC0+Y1s1XSA9IDU7IAkvKnsgZGctd2FybmluZyAiYXJyYXkgc3Vic2NyaXB0 IDUgaXMgYWJvdmUgYXJyYXkgYm91bmRzIG9mIiB9ICovDQo+Pj4+Pj4+ICsgICAgCQkJLyp7IGRn LXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBm b3IgbGV2ZWwgMSBhbmQgYWJvdmUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8NCj4+Pj4+ Pj4gIHRyYWlsaW5nXzEtPmNbMl0gPSAyOyAvKiB7IGRnLWJvZ3VzICJhcnJheSBzdWJzY3JpcHQg IiB9ICovDQo+Pj4+Pj4+ICB0cmFpbGluZ18wLT5jWzFdID0gMTsgLyogeyBkZy1ib2d1cyAiYXJy YXkgc3Vic2NyaXB0ICIgfSAqLw0KPj4+Pj4+PiAgdHJhaWxpbmdfZmxleC0+Y1sxMF0gPSAxMDsg LyogeyBkZy1ib2d1cyAiYXJyYXkgc3Vic2NyaXB0ICIgfSAqLw0KPj4+Pj4+PiBkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0yLmMgYi9n Y2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTIuYw0KPj4+Pj4+ PiBpbmRleCBmNjMyMDZlMTk0OC4uMmI1YTg5NWM1OTggMTAwNjQ0DQo+Pj4+Pj4+IC0tLSBhL2dj Yy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtMi5jDQo+Pj4+Pj4+ ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtMi5j DQo+Pj4+Pj4+IEBAIC0xLDYgKzEsNiBAQA0KPj4+Pj4+PiAtLyogVGVzdCAtZnN0cmljdC1mbGV4 LWFycmF5cyArIC1XYXJyYXktYm91bmRzLiAgKi8NCj4+Pj4+Pj4gKy8qIFRlc3QgLWZzdHJpY3Qt ZmxleC1hcnJheXMgKyAtV2FycmF5LWJvdW5kcyArIC1Xc3RyaWN0LWZsZXgtYXJyYXlzLiAgKi8N Cj4+Pj4+Pj4gLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4+Pj4+Pj4gLS8qIHsgZGctb3B0aW9u cyAiLU8yIC1mc3RyaWN0LWZsZXgtYXJyYXlzPTIgLVdhcnJheS1ib3VuZHMiIH0gKi8NCj4+Pj4+ Pj4gKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1Xc3RyaWN0LWZsZXgtYXJyYXlzIC1mc3RyaWN0LWZs ZXgtYXJyYXlzPTIgLVdhcnJheS1ib3VuZHMiIH0gKi8NCj4+Pj4+Pj4gDQo+Pj4+Pj4+IHN0cnVj dCB0cmFpbGluZ19hcnJheV8xIHsNCj4+Pj4+Pj4gIGludCBhOw0KPj4+Pj4+PiBAQCAtMzIsNyAr MzIsOSBAQCB2b2lkIF9fYXR0cmlidXRlX18oKF9fbm9pbmxpbmVfXykpIHN0dWZmKA0KPj4+Pj4+ PiAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzQgKnRyYWlsaW5nX2ZsZXgpDQo+Pj4+Pj4+IHsNCj4+ Pj4+Pj4gIG5vcm1hbC0+Y1s1XSA9IDU7IAkvKnsgZGctd2FybmluZyAiYXJyYXkgc3Vic2NyaXB0 IDUgaXMgYWJvdmUgYXJyYXkgYm91bmRzIG9mIiB9ICovDQo+Pj4+Pj4+ICsgICAgCQkJLyp7IGRn LXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBm b3IgbGV2ZWwgMSBhbmQgYWJvdmUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8NCj4+Pj4+ Pj4gIHRyYWlsaW5nXzEtPmNbMl0gPSAyOyAvKiB7IGRnLXdhcm5pbmcgImFycmF5IHN1YnNjcmlw dCAyIGlzIGFib3ZlIGFycmF5IGJvdW5kcyBvZiIgIH0gKi8NCj4+Pj4+Pj4gKyAgICAJCQkgIC8q IHsgZGctd2FybmluZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVt YmVyIGZvciBsZXZlbCAyIGFuZCBhYm92ZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLw0K Pj4+Pj4+PiAgdHJhaWxpbmdfMC0+Y1sxXSA9IDE7IC8qIHsgZGctYm9ndXMgImFycmF5IHN1YnNj cmlwdCAiIH0gKi8NCj4+Pj4+Pj4gIHRyYWlsaW5nX2ZsZXgtPmNbMTBdID0gMTA7IC8qIHsgZGct Ym9ndXMgImFycmF5IHN1YnNjcmlwdCAiIH0gKi8NCj4+Pj4+Pj4gDQo+Pj4+Pj4+IGRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTMuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtMy5jDQo+Pj4+ Pj4+IGluZGV4IGUzMjczNzE0ZThiLi4yNWI5MDNmMjYxNSAxMDA2NDQNCj4+Pj4+Pj4gLS0tIGEv Z2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0zLmMNCj4+Pj4+ Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0z LmMNCj4+Pj4+Pj4gQEAgLTEsNiArMSw2IEBADQo+Pj4+Pj4+IC0vKiBUZXN0IC1mc3RyaWN0LWZs ZXgtYXJyYXlzICsgLVdhcnJheS1ib3VuZHMuICAqLw0KPj4+Pj4+PiArLyogVGVzdCAtZnN0cmlj dC1mbGV4LWFycmF5cyArIC1XYXJyYXktYm91bmRzICsgLVdzdHJpY3QtZmxleC1hcnJheXMuICAq Lw0KPj4+Pj4+PiAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPj4+Pj4+PiAtLyogeyBkZy1vcHRp b25zICItTzIgLWZzdHJpY3QtZmxleC1hcnJheXM9MyAtV2FycmF5LWJvdW5kcyIgfSAqLw0KPj4+ Pj4+PiArLyogeyBkZy1vcHRpb25zICItTzIgLVdzdHJpY3QtZmxleC1hcnJheXMgLWZzdHJpY3Qt ZmxleC1hcnJheXM9MyAtV2FycmF5LWJvdW5kcyIgfSAqLw0KPj4+Pj4+PiANCj4+Pj4+Pj4gc3Ry dWN0IHRyYWlsaW5nX2FycmF5XzEgew0KPj4+Pj4+PiAgaW50IGE7DQo+Pj4+Pj4+IEBAIC0zMiw4 ICszMiwxMSBAQCB2b2lkIF9fYXR0cmlidXRlX18oKF9fbm9pbmxpbmVfXykpIHN0dWZmKA0KPj4+ Pj4+PiAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzQgKnRyYWlsaW5nX2ZsZXgpDQo+Pj4+Pj4+IHsN Cj4+Pj4+Pj4gIG5vcm1hbC0+Y1s1XSA9IDU7IAkvKnsgZGctd2FybmluZyAiYXJyYXkgc3Vic2Ny aXB0IDUgaXMgYWJvdmUgYXJyYXkgYm91bmRzIG9mIiB9ICovIA0KPj4+Pj4+PiArICAgIAkJCS8q eyBkZy13YXJuaW5nICJzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1i ZXIgZm9yIGxldmVsIDEgYW5kIGFib3ZlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovDQo+ Pj4+Pj4+ICB0cmFpbGluZ18xLT5jWzJdID0gMjsgLyp7IGRnLXdhcm5pbmcgImFycmF5IHN1YnNj cmlwdCAyIGlzIGFib3ZlIGFycmF5IGJvdW5kcyBvZiIgfSAqLyANCj4+Pj4+Pj4gKyAgICAJCQkg IC8qIHsgZGctd2FybmluZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkg bWVtYmVyIGZvciBsZXZlbCAyIGFuZCBhYm92ZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAq Lw0KPj4+Pj4+PiAgdHJhaWxpbmdfMC0+Y1sxXSA9IDE7IC8qeyBkZy13YXJuaW5nICJhcnJheSBz dWJzY3JpcHQgMSBpcyBvdXRzaWRlIGFycmF5IGJvdW5kcyBvZiIgfSAqLyANCj4+Pj4+Pj4gKyAg ICAJCQkgIC8qIHsgZGctd2FybmluZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUg YXJyYXkgbWVtYmVyIGZvciBsZXZlbCAzIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovDQo+ Pj4+Pj4+ICB0cmFpbGluZ19mbGV4LT5jWzEwXSA9IDEwOyAvKiB7IGRnLWJvZ3VzICJhcnJheSBz dWJzY3JpcHQiIH0gKi8NCj4+Pj4+Pj4gDQo+Pj4+Pj4+IH0NCj4+Pj4+Pj4gZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtNC5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy00LmMNCj4+Pj4+Pj4g aW5kZXggY2FiYWVhNzdkYzIuLjVmYzUwMGExOWNhIDEwMDY0NA0KPj4+Pj4+PiAtLS0gYS9nY2Mv dGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTQuYw0KPj4+Pj4+PiAr KysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTQuYw0K Pj4+Pj4+PiBAQCAtMSw2ICsxLDYgQEANCj4+Pj4+Pj4gLS8qIFRlc3QgLWZzdHJpY3QtZmxleC1h cnJheXMgKyAtV2FycmF5LWJvdW5kcz0yLiAgKi8NCj4+Pj4+Pj4gKy8qIFRlc3QgLWZzdHJpY3Qt ZmxleC1hcnJheXMgKyAtV2FycmF5LWJvdW5kcz0yICsgLVdzdHJpY3QtZmxleC1hcnJheXMuICAq Lw0KPj4+Pj4+PiAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPj4+Pj4+PiAtLyogeyBkZy1vcHRp b25zICItTzIgLWZzdHJpY3QtZmxleC1hcnJheXM9MSAtV2FycmF5LWJvdW5kcz0yIiB9ICovDQo+ Pj4+Pj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtV3N0cmljdC1mbGV4LWFycmF5cyAtZnN0cmlj dC1mbGV4LWFycmF5cz0xIC1XYXJyYXktYm91bmRzPTIiIH0gKi8NCj4+Pj4+Pj4gDQo+Pj4+Pj4+ IHN0cnVjdCB0cmFpbGluZ19hcnJheV8xIHsNCj4+Pj4+Pj4gIGludCBhOw0KPj4+Pj4+PiBAQCAt MzIsNiArMzIsNyBAQCB2b2lkIF9fYXR0cmlidXRlX18oKF9fbm9pbmxpbmVfXykpIHN0dWZmKA0K Pj4+Pj4+PiAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzQgKnRyYWlsaW5nX2ZsZXgpDQo+Pj4+Pj4+ IHsNCj4+Pj4+Pj4gIG5vcm1hbC0+Y1s1XSA9IDU7IAkvKnsgZGctd2FybmluZyAiYXJyYXkgc3Vi c2NyaXB0IDUgaXMgYWJvdmUgYXJyYXkgYm91bmRzIG9mIiB9ICovDQo+Pj4+Pj4+ICsgICAgCQkJ Lyp7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1l bWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8N Cj4+Pj4+Pj4gIHRyYWlsaW5nXzEtPmNbMl0gPSAyOyAvKiB7IGRnLWJvZ3VzICJhcnJheSBzdWJz Y3JpcHQgIiB9ICovDQo+Pj4+Pj4+ICB0cmFpbGluZ18wLT5jWzFdID0gMTsgLyogeyBkZy1ib2d1 cyAiYXJyYXkgc3Vic2NyaXB0ICIgfSAqLw0KPj4+Pj4+PiAgdHJhaWxpbmdfZmxleC0+Y1sxMF0g PSAxMDsgLyogeyBkZy1ib2d1cyAiYXJyYXkgc3Vic2NyaXB0ICIgfSAqLw0KPj4+Pj4+PiBkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy01 LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTUuYw0K Pj4+Pj4+PiBpbmRleCA4YjdkYjZlNGYzOS4uMzBiYjRjYTg4MzIgMTAwNjQ0DQo+Pj4+Pj4+IC0t LSBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtNS5jDQo+ Pj4+Pj4+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJh eXMtNS5jDQo+Pj4+Pj4+IEBAIC0xLDYgKzEsNiBAQA0KPj4+Pj4+PiAtLyogVGVzdCAtZnN0cmlj dC1mbGV4LWFycmF5cyArIC1XYXJyYXktYm91bmRzPTIuICAqLw0KPj4+Pj4+PiArLyogVGVzdCAt ZnN0cmljdC1mbGV4LWFycmF5cyArIC1XYXJyYXktYm91bmRzPTIgKyAtV3N0cmljdC1mbGV4LWFy cmF5cy4gICovDQo+Pj4+Pj4+IC8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+Pj4+Pj4+IC0vKiB7 IGRnLW9wdGlvbnMgIi1PMiAtZnN0cmljdC1mbGV4LWFycmF5cz0yIC1XYXJyYXktYm91bmRzPTIi IH0gKi8NCj4+Pj4+Pj4gKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1Xc3RyaWN0LWZsZXgtYXJyYXlz IC1mc3RyaWN0LWZsZXgtYXJyYXlzPTIgLVdhcnJheS1ib3VuZHM9MiIgfSAqLw0KPj4+Pj4+PiAN Cj4+Pj4+Pj4gc3RydWN0IHRyYWlsaW5nX2FycmF5XzEgew0KPj4+Pj4+PiAgaW50IGE7DQo+Pj4+ Pj4+IEBAIC0zMiw3ICszMiw5IEBAIHZvaWQgX19hdHRyaWJ1dGVfXygoX19ub2lubGluZV9fKSkg c3R1ZmYoDQo+Pj4+Pj4+ICBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCAqdHJhaWxpbmdfZmxleCkN Cj4+Pj4+Pj4gew0KPj4+Pj4+PiAgbm9ybWFsLT5jWzVdID0gNTsgICAvKnsgZGctd2FybmluZyAi YXJyYXkgc3Vic2NyaXB0IDUgaXMgYWJvdmUgYXJyYXkgYm91bmRzIG9mIiB9ICovDQo+Pj4+Pj4+ ICsgICAgCQkJLyp7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxl IGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiICIiIHsgdGFyZ2V0ICotKi0qIH0g Li0xIH0gKi8NCj4+Pj4+Pj4gIHRyYWlsaW5nXzEtPmNbMl0gPSAyOyAvKnsgZGctd2FybmluZyAi YXJyYXkgc3Vic2NyaXB0IDIgaXMgYWJvdmUgYXJyYXkgYm91bmRzIG9mIiB9ICovDQo+Pj4+Pj4+ ICsgICAgCQkJICAvKiB7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhp YmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMiBhbmQgYWJvdmUiICIiIHsgdGFyZ2V0ICotKi0q IH0gLi0xIH0gKi8NCj4+Pj4+Pj4gIHRyYWlsaW5nXzAtPmNbMV0gPSAxOyAvKiB7IGRnLWJvZ3Vz ICJhcnJheSBzdWJzY3JpcHQgIiB9ICovDQo+Pj4+Pj4+ICB0cmFpbGluZ19mbGV4LT5jWzEwXSA9 IDEwOyAvKiB7IGRnLWJvZ3VzICJhcnJheSBzdWJzY3JpcHQgIiB9ICovDQo+Pj4+Pj4+IA0KPj4+ Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4 LWFycmF5cy02LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJy YXlzLTYuYw0KPj4+Pj4+PiBpbmRleCAwMzViZjQ4MTM5Ni4uZTg0N2E0NDUxNmUgMTAwNjQ0DQo+ Pj4+Pj4+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJh eXMtNi5jDQo+Pj4+Pj4+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMt ZmxleC1hcnJheXMtNi5jDQo+Pj4+Pj4+IEBAIC0xLDYgKzEsNiBAQA0KPj4+Pj4+PiAtLyogVGVz dCAtZnN0cmljdC1mbGV4LWFycmF5cyArIC1XYXJyYXktYm91bmRzPTIuICAqLw0KPj4+Pj4+PiAr LyogVGVzdCAtZnN0cmljdC1mbGV4LWFycmF5cyArIC1XYXJyYXktYm91bmRzPTIgKyAtV3N0cmlj dC1mbGV4LWFycmF5cy4gICovDQo+Pj4+Pj4+IC8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+Pj4+ Pj4+IC0vKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnN0cmljdC1mbGV4LWFycmF5cz0zIC1XYXJyYXkt Ym91bmRzPTIiIH0gKi8NCj4+Pj4+Pj4gKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1Xc3RyaWN0LWZs ZXgtYXJyYXlzIC1mc3RyaWN0LWZsZXgtYXJyYXlzPTMgLVdhcnJheS1ib3VuZHM9MiIgfSAqLw0K Pj4+Pj4+PiANCj4+Pj4+Pj4gc3RydWN0IHRyYWlsaW5nX2FycmF5XzEgew0KPj4+Pj4+PiAgaW50 IGE7DQo+Pj4+Pj4+IEBAIC0zMiw4ICszMiwxMSBAQCB2b2lkIF9fYXR0cmlidXRlX18oKF9fbm9p bmxpbmVfXykpIHN0dWZmKA0KPj4+Pj4+PiAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzQgKnRyYWls aW5nX2ZsZXgpDQo+Pj4+Pj4+IHsNCj4+Pj4+Pj4gIG5vcm1hbC0+Y1s1XSA9IDU7IAkvKnsgZGct d2FybmluZyAiYXJyYXkgc3Vic2NyaXB0IDUgaXMgYWJvdmUgYXJyYXkgYm91bmRzIG9mIiB9ICov IA0KPj4+Pj4+PiArICAgIAkJCS8qeyBkZy13YXJuaW5nICJzaG91bGQgbm90IGJlIHVzZWQgYXMg YSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDEgYW5kIGFib3ZlIiAiIiB7IHRhcmdl dCAqLSotKiB9IC4tMSB9ICovDQo+Pj4+Pj4+ICB0cmFpbGluZ18xLT5jWzJdID0gMjsgLyp7IGRn LXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCAyIGlzIGFib3ZlIGFycmF5IGJvdW5kcyBvZiIgfSAq Lw0KPj4+Pj4+PiArICAgIAkJCSAgLyogeyBkZy13YXJuaW5nICJzaG91bGQgbm90IGJlIHVzZWQg YXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDIgYW5kIGFib3ZlIiAiIiB7IHRh cmdldCAqLSotKiB9IC4tMSB9ICovDQo+Pj4+Pj4+ICB0cmFpbGluZ18wLT5jWzFdID0gMTsgLyp7 IGRnLXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCAxIGlzIG91dHNpZGUgYXJyYXkgYm91bmRzIG9m IiB9ICovDQo+Pj4+Pj4+ICsgICAgCQkJICAvKiB7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUg dXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMyIgIiIgeyB0YXJnZXQg Ki0qLSogfSAuLTEgfSAqLw0KPj4+Pj4+PiAgdHJhaWxpbmdfZmxleC0+Y1sxMF0gPSAxMDsgLyog eyBkZy1ib2d1cyAiYXJyYXkgc3Vic2NyaXB0ICIgfSAqLw0KPj4+Pj4+PiANCj4+Pj4+Pj4gfQ0K Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1mbGV4LWFy cmF5cy0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9Xc3RyaWN0LWZsZXgtYXJyYXlzLTIuYw0K Pj4+Pj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4+Pj4+PiBpbmRleCAwMDAwMDAwMDAwMC4u MmUyNDFmOTYyMDgNCj4+Pj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+Pj4+PiArKysgYi9nY2MvdGVz dHN1aXRlL2djYy5kZy9Xc3RyaWN0LWZsZXgtYXJyYXlzLTIuYw0KPj4+Pj4+PiBAQCAtMCwwICsx LDM5IEBADQo+Pj4+Pj4+ICsvKiBUZXN0IC1Xc3RyaWN0LWZsZXgtYXJyYXlzLiAgKi8NCj4+Pj4+ Pj4gKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+Pj4+Pj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1P MiAtV3N0cmljdC1mbGV4LWFycmF5cyAtZnN0cmljdC1mbGV4LWFycmF5cz0yIiB9ICovDQo+Pj4+ Pj4+ICsNCj4+Pj4+Pj4gK3N0cnVjdCB0cmFpbGluZ19hcnJheV8xIHsNCj4+Pj4+Pj4gKyAgICBp bnQgYTsNCj4+Pj4+Pj4gKyAgICBpbnQgYjsNCj4+Pj4+Pj4gKyAgICBpbnQgY1s0XTsgDQo+Pj4+ Pj4+ICt9Ow0KPj4+Pj4+PiArDQo+Pj4+Pj4+ICtzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMiB7DQo+ Pj4+Pj4+ICsgICAgaW50IGE7DQo+Pj4+Pj4+ICsgICAgaW50IGI7DQo+Pj4+Pj4+ICsgICAgaW50 IGNbMV07IA0KPj4+Pj4+PiArfTsNCj4+Pj4+Pj4gKw0KPj4+Pj4+PiArc3RydWN0IHRyYWlsaW5n X2FycmF5XzMgew0KPj4+Pj4+PiArICAgIGludCBhOw0KPj4+Pj4+PiArICAgIGludCBiOw0KPj4+ Pj4+PiArICAgIGludCBjWzBdOw0KPj4+Pj4+PiArfTsNCj4+Pj4+Pj4gK3N0cnVjdCB0cmFpbGlu Z19hcnJheV80IHsNCj4+Pj4+Pj4gKyAgICBpbnQgYTsNCj4+Pj4+Pj4gKyAgICBpbnQgYjsNCj4+ Pj4+Pj4gKyAgICBpbnQgY1tdOw0KPj4+Pj4+PiArfTsNCj4+Pj4+Pj4gKw0KPj4+Pj4+PiArdm9p ZCBfX2F0dHJpYnV0ZV9fKChfX25vaW5saW5lX18pKSBzdHVmZigNCj4+Pj4+Pj4gKyAgICBzdHJ1 Y3QgdHJhaWxpbmdfYXJyYXlfMSAqbm9ybWFsLA0KPj4+Pj4+PiArICAgIHN0cnVjdCB0cmFpbGlu Z19hcnJheV8yICp0cmFpbGluZ18xLA0KPj4+Pj4+PiArICAgIHN0cnVjdCB0cmFpbGluZ19hcnJh eV8zICp0cmFpbGluZ18wLA0KPj4+Pj4+PiArICAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV80ICp0 cmFpbGluZ19mbGV4KQ0KPj4+Pj4+PiArew0KPj4+Pj4+PiArICAgIG5vcm1hbC0+Y1s1XSA9IDU7 IAkvKnsgZGctd2FybmluZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkg bWVtYmVyIGZvciBsZXZlbCAxIGFuZCBhYm92ZSIgfSAqLw0KPj4+Pj4+PiArICAgIHRyYWlsaW5n XzEtPmNbMl0gPSAyOyAvKiB7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZs ZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMiBhbmQgYWJvdmUiIH0gKi8NCj4+Pj4+Pj4g KyAgICB0cmFpbGluZ18wLT5jWzFdID0gMTsgLyogeyBkZy1ib2d1cyAic2hvdWxkIG5vdCBiZSB1 c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAyIGFuZCBhYm92ZSIgfSAq Lw0KPj4+Pj4+PiArICAgIHRyYWlsaW5nX2ZsZXgtPmNbMTBdID0gMTA7IC8qIHsgZGctYm9ndXMg InNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwg MiBhbmQgYWJvdmUiIH0gKi8NCj4+Pj4+Pj4gKw0KPj4+Pj4+PiArfQ0KPj4+Pj4+PiBkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1mbGV4LWFycmF5cy0zLmMgYi9nY2Mv dGVzdHN1aXRlL2djYy5kZy9Xc3RyaWN0LWZsZXgtYXJyYXlzLTMuYw0KPj4+Pj4+PiBuZXcgZmls ZSBtb2RlIDEwMDY0NA0KPj4+Pj4+PiBpbmRleCAwMDAwMDAwMDAwMC4uOTdlYjY1YmEwYTkNCj4+ Pj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+Pj4+PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9X c3RyaWN0LWZsZXgtYXJyYXlzLTMuYw0KPj4+Pj4+PiBAQCAtMCwwICsxLDM5IEBADQo+Pj4+Pj4+ ICsvKiBUZXN0IC1Xc3RyaWN0LWZsZXgtYXJyYXlzLiAgKi8NCj4+Pj4+Pj4gKy8qIHsgZGctZG8g Y29tcGlsZSB9ICovDQo+Pj4+Pj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtV3N0cmljdC1mbGV4 LWFycmF5cyAtZnN0cmljdC1mbGV4LWFycmF5cz0zIiB9ICovDQo+Pj4+Pj4+ICsNCj4+Pj4+Pj4g K3N0cnVjdCB0cmFpbGluZ19hcnJheV8xIHsNCj4+Pj4+Pj4gKyAgICBpbnQgYTsNCj4+Pj4+Pj4g KyAgICBpbnQgYjsNCj4+Pj4+Pj4gKyAgICBpbnQgY1s0XTsgDQo+Pj4+Pj4+ICt9Ow0KPj4+Pj4+ PiArDQo+Pj4+Pj4+ICtzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMiB7DQo+Pj4+Pj4+ICsgICAgaW50 IGE7DQo+Pj4+Pj4+ICsgICAgaW50IGI7DQo+Pj4+Pj4+ICsgICAgaW50IGNbMV07IA0KPj4+Pj4+ PiArfTsNCj4+Pj4+Pj4gKw0KPj4+Pj4+PiArc3RydWN0IHRyYWlsaW5nX2FycmF5XzMgew0KPj4+ Pj4+PiArICAgIGludCBhOw0KPj4+Pj4+PiArICAgIGludCBiOw0KPj4+Pj4+PiArICAgIGludCBj WzBdOw0KPj4+Pj4+PiArfTsNCj4+Pj4+Pj4gK3N0cnVjdCB0cmFpbGluZ19hcnJheV80IHsNCj4+ Pj4+Pj4gKyAgICBpbnQgYTsNCj4+Pj4+Pj4gKyAgICBpbnQgYjsNCj4+Pj4+Pj4gKyAgICBpbnQg Y1tdOw0KPj4+Pj4+PiArfTsNCj4+Pj4+Pj4gKw0KPj4+Pj4+PiArdm9pZCBfX2F0dHJpYnV0ZV9f KChfX25vaW5saW5lX18pKSBzdHVmZigNCj4+Pj4+Pj4gKyAgICBzdHJ1Y3QgdHJhaWxpbmdfYXJy YXlfMSAqbm9ybWFsLA0KPj4+Pj4+PiArICAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV8yICp0cmFp bGluZ18xLA0KPj4+Pj4+PiArICAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV8zICp0cmFpbGluZ18w LA0KPj4+Pj4+PiArICAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV80ICp0cmFpbGluZ19mbGV4KQ0K Pj4+Pj4+PiArew0KPj4+Pj4+PiArICAgIG5vcm1hbC0+Y1s1XSA9IDU7IAkvKnsgZGctd2Fybmlu ZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZl bCAxIGFuZCBhYm92ZSIgfSAqLw0KPj4+Pj4+PiArICAgIHRyYWlsaW5nXzEtPmNbMl0gPSAyOyAv KiB7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1l bWJlciBmb3IgbGV2ZWwgMiBhbmQgYWJvdmUiIH0gKi8NCj4+Pj4+Pj4gKyAgICB0cmFpbGluZ18w LT5jWzFdID0gMTsgLyogeyBkZy13YXJuaW5nICJzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4 aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDMiIH0gKi8NCj4+Pj4+Pj4gKyAgICB0cmFpbGlu Z19mbGV4LT5jWzEwXSA9IDEwOyAvKiB7IGRnLWJvZ3VzICJzaG91bGQgbm90IGJlIHVzZWQgYXMg YSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDMiIH0gKi8NCj4+Pj4+Pj4gKw0KPj4+ Pj4+PiArfQ0KPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV3N0cmlj dC1mbGV4LWFycmF5cy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1mbGV4LWFycmF5 cy5jDQo+Pj4+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+Pj4+Pj4+IGluZGV4IDAwMDAwMDAw MDAwLi4xMTBmZGM3Mjc3OA0KPj4+Pj4+PiAtLS0gL2Rldi9udWxsDQo+Pj4+Pj4+ICsrKyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMuYw0KPj4+Pj4+PiBAQCAtMCww ICsxLDM5IEBADQo+Pj4+Pj4+ICsvKiBUZXN0IC1Xc3RyaWN0LWZsZXgtYXJyYXlzLiAgKi8NCj4+ Pj4+Pj4gKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+Pj4+Pj4+ICsvKiB7IGRnLW9wdGlvbnMg Ii1PMiAtV3N0cmljdC1mbGV4LWFycmF5cyAtZnN0cmljdC1mbGV4LWFycmF5cz0xIiB9ICovDQo+ Pj4+Pj4+ICsNCj4+Pj4+Pj4gK3N0cnVjdCB0cmFpbGluZ19hcnJheV8xIHsNCj4+Pj4+Pj4gKyAg ICBpbnQgYTsNCj4+Pj4+Pj4gKyAgICBpbnQgYjsNCj4+Pj4+Pj4gKyAgICBpbnQgY1s0XTsgDQo+ Pj4+Pj4+ICt9Ow0KPj4+Pj4+PiArDQo+Pj4+Pj4+ICtzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMiB7 DQo+Pj4+Pj4+ICsgICAgaW50IGE7DQo+Pj4+Pj4+ICsgICAgaW50IGI7DQo+Pj4+Pj4+ICsgICAg aW50IGNbMV07IA0KPj4+Pj4+PiArfTsNCj4+Pj4+Pj4gKw0KPj4+Pj4+PiArc3RydWN0IHRyYWls aW5nX2FycmF5XzMgew0KPj4+Pj4+PiArICAgIGludCBhOw0KPj4+Pj4+PiArICAgIGludCBiOw0K Pj4+Pj4+PiArICAgIGludCBjWzBdOw0KPj4+Pj4+PiArfTsNCj4+Pj4+Pj4gK3N0cnVjdCB0cmFp bGluZ19hcnJheV80IHsNCj4+Pj4+Pj4gKyAgICBpbnQgYTsNCj4+Pj4+Pj4gKyAgICBpbnQgYjsN Cj4+Pj4+Pj4gKyAgICBpbnQgY1tdOw0KPj4+Pj4+PiArfTsNCj4+Pj4+Pj4gKw0KPj4+Pj4+PiAr dm9pZCBfX2F0dHJpYnV0ZV9fKChfX25vaW5saW5lX18pKSBzdHVmZigNCj4+Pj4+Pj4gKyAgICBz dHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMSAqbm9ybWFsLA0KPj4+Pj4+PiArICAgIHN0cnVjdCB0cmFp bGluZ19hcnJheV8yICp0cmFpbGluZ18xLA0KPj4+Pj4+PiArICAgIHN0cnVjdCB0cmFpbGluZ19h cnJheV8zICp0cmFpbGluZ18wLA0KPj4+Pj4+PiArICAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV80 ICp0cmFpbGluZ19mbGV4KQ0KPj4+Pj4+PiArew0KPj4+Pj4+PiArICAgIG5vcm1hbC0+Y1s1XSA9 IDU7IAkvKnsgZGctd2FybmluZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJy YXkgbWVtYmVyIGZvciBsZXZlbCAxIGFuZCBhYm92ZSIgfSAqLw0KPj4+Pj4+PiArICAgIHRyYWls aW5nXzEtPmNbMl0gPSAyOyAvKiB7IGRnLWJvZ3VzICJzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBm bGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDEgYW5kIGFib3ZlIiB9ICovDQo+Pj4+Pj4+ ICsgICAgdHJhaWxpbmdfMC0+Y1sxXSA9IDE7IC8qIHsgZGctYm9ndXMgInNob3VsZCBub3QgYmUg dXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiIH0g Ki8NCj4+Pj4+Pj4gKyAgICB0cmFpbGluZ19mbGV4LT5jWzEwXSA9IDEwOyAvKiB7IGRnLWJvZ3Vz ICJzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVs IDEgYW5kIGFib3ZlIiB9ICovDQo+Pj4+Pj4+ICsNCj4+Pj4+Pj4gK30NCj4+Pj4+Pj4gZGlmZiAt LWdpdCBhL2djYy90cmVlLXZycC5jYyBiL2djYy90cmVlLXZycC5jYw0KPj4+Pj4+PiBpbmRleCAz ODQ2ZGMxZDg0OS4uZTZjNmM1YTMwMWQgMTAwNjQ0DQo+Pj4+Pj4+IC0tLSBhL2djYy90cmVlLXZy cC5jYw0KPj4+Pj4+PiArKysgYi9nY2MvdHJlZS12cnAuY2MNCj4+Pj4+Pj4gQEAgLTEwODcsNyAr MTA4Nyw3IEBAIGV4ZWN1dGVfcmFuZ2VyX3ZycCAoc3RydWN0IGZ1bmN0aW9uICpmdW4sIGJvb2wg d2Fybl9hcnJheV9ib3VuZHNfcCwNCj4+Pj4+Pj4gaWYgKGR1bXBfZmlsZSAmJiAoZHVtcF9mbGFn cyAmIFRERl9ERVRBSUxTKSkNCj4+Pj4+Pj4gIHJhbmdlci0+ZHVtcCAoZHVtcF9maWxlKTsNCj4+ Pj4+Pj4gDQo+Pj4+Pj4+IC0gIGlmICh3YXJuX2FycmF5X2JvdW5kcyAmJiB3YXJuX2FycmF5X2Jv dW5kc19wKQ0KPj4+Pj4+PiArICBpZiAoKHdhcm5fYXJyYXlfYm91bmRzIHx8IHdhcm5fc3RyaWN0 X2ZsZXhfYXJyYXlzKSAmJiB3YXJuX2FycmF5X2JvdW5kc19wKQ0KPj4+Pj4+PiAgew0KPj4+Pj4+ PiAgICAvLyBTZXQgYWxsIGVkZ2VzIGFzIGV4ZWN1dGFibGUsIGV4Y2VwdCB0aG9zZSByYW5nZXIg c2F5cyBhcmVuJ3QuDQo+Pj4+Pj4+ICAgIGludCBub25fZXhlY19mbGFnID0gcmFuZ2VyLT5ub25f ZXhlY3V0YWJsZV9lZGdlX2ZsYWc7DQo+Pj4+Pj4+IC0tIA0KPj4+Pj4+PiAyLjMxLjENCj4+Pj4+ Pj4gDQo+Pj4+Pj4gDQo+Pj4+Pj4gDQo+Pj4+PiANCj4+Pj4+IC0tIA0KPj4+Pj4gUmljaGFyZCBC aWVuZXIgPHJndWVudGhlckBzdXNlLmRlPg0KPj4+Pj4gU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMg R2VybWFueSBHbWJILCBGcmFua2Vuc3RyYXNzZSAxNDYsIDkwNDYxIE51ZXJuYmVyZywNCj4+Pj4+ IEdlcm1hbnk7IEdGOiBJdm8gVG90ZXYsIEFuZHJldyBNeWVycywgQW5kcmV3IE1jRG9uYWxkLCBC b3VkaWVuIE1vZXJtYW47DQo+Pj4+PiBIUkIgMzY4MDkgKEFHIE51ZXJuYmVyZykNCj4+Pj4gDQo+ Pj4+IA0KPj4+IA0KPj4+IC0tIA0KPj4+IFJpY2hhcmQgQmllbmVyIDxyZ3VlbnRoZXJAc3VzZS5k ZT4NCj4+PiBTVVNFIFNvZnR3YXJlIFNvbHV0aW9ucyBHZXJtYW55IEdtYkgsIEZyYW5rZW5zdHJh c3NlIDE0NiwgOTA0NjEgTnVlcm5iZXJnLA0KPj4+IEdlcm1hbnk7IEdGOiBJdm8gVG90ZXYsIEFu ZHJldyBNeWVycywgQW5kcmV3IE1jRG9uYWxkLCBCb3VkaWVuIE1vZXJtYW47DQo+Pj4gSFJCIDM2 ODA5IChBRyBOdWVybmJlcmcpDQo+PiANCj4+IA0KPiANCj4gLS0gDQo+IFJpY2hhcmQgQmllbmVy IDxyZ3VlbnRoZXJAc3VzZS5kZT4NCj4gU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBH bWJILCBGcmFua2Vuc3RyYXNzZSAxNDYsIDkwNDYxIE51ZXJuYmVyZywNCj4gR2VybWFueTsgR0Y6 IEl2byBUb3RldiwgQW5kcmV3IE15ZXJzLCBBbmRyZXcgTWNEb25hbGQsIEJvdWRpZW4gTW9lcm1h bjsNCj4gSFJCIDM2ODA5IChBRyBOdWVybmJlcmcpDQoNCg==