From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.15]) by sourceware.org (Postfix) with ESMTPS id 48C27392AC33 for ; Wed, 8 May 2024 07:47:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 48C27392AC33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 48C27392AC33 Authentication-Results: server2.sourceware.org; arc=fail smtp.remote-ip=192.198.163.15 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1715154443; cv=fail; b=VQEZ8MY17bHqHpSOabvyePq2B7K3Hvrz92V1+laUDAcxnJeJ8M89hpGHX7NfCxVLtYD10nIX+41DT7LtLw8f4iTfjg1z2acXBiWw5UWPp+BCN5yx6AeIx8PMC3UO3hWgKmovKwcdLoI3YXn2P06aYqlnNU9rbrZatHtaKOTx21E= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1715154443; c=relaxed/simple; bh=EsTr+opIpapsRcjPhpGxPBnu6brYypvQsMpVi8Wh6/U=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=i/zIveR52PJSsQkQXWPfkpMldgm8TT+ZoumroU0xrSm/z9B/+JQN+vMe03b53BxqGnYFmS1/vygyftTDyQe3blej8088RB1v4PdVNMqSYwDIAIoPFJOcMyAgP8vHpmqsDEef2fq/pRJbKBUxR1YG/YxFT5UGU2LoL+YBzhCYA68= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1715154440; x=1746690440; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version:content-transfer-encoding; bh=EsTr+opIpapsRcjPhpGxPBnu6brYypvQsMpVi8Wh6/U=; b=mEmP6Wsbp53ktaEyjg3MHSBm3k6baOh84IzZhmZsJIenPY3tPgMstg2m P4Q3px8Dmx3+WzZ6AhjswIea3cHnWLOiqM3e+T6WPxb7A/X0bGEjuFrJ8 nph1YewFnATW2q/vDxnogdoaPgUwk7dJSSgGXWq3fhgREVjYh6yHVCV2J Uyo7FPsH2tqm4dX3iwjQRicHqwpnXUQmgwENjlJH/FB9gi87myiaAXRA5 Mz15HzzIeW/XRM+dblcK1v0unnRK1kfHk3C/nQEO+fwBYs0k5RVGBlIhP Ogq3YZitYfkPv/Htv4smMHGfK1O8quHLD2Ur46MF577DxqiJq1M2rFsiw A==; X-CSE-ConnectionGUID: WQugVPUiQ4qjITOclZxEHA== X-CSE-MsgGUID: Bt5smui2Qtu99nBYtOXi5w== X-IronPort-AV: E=McAfee;i="6600,9927,11066"; a="11155900" X-IronPort-AV: E=Sophos;i="6.08,144,1712646000"; d="scan'208";a="11155900" Received: from fmviesa010.fm.intel.com ([10.60.135.150]) by fmvoesa109.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 May 2024 00:47:18 -0700 X-CSE-ConnectionGUID: iCKoeFRWSTqrnECl6OQIDw== X-CSE-MsgGUID: TImravWkRIih3lM31jWcaQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,144,1712646000"; d="scan'208";a="28893939" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmviesa010.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 08 May 2024 00:47:18 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 8 May 2024 00:47:17 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Wed, 8 May 2024 00:47:17 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.100) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Wed, 8 May 2024 00:47:17 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=n2A4MR4KWuMAsBXFz1HgUTKQEOgf4Gv3MBJ+1I4FZ2o6HrCd/pw8aR5ndgrRzzbPeP/CCy1mz6iFWXMQWnmU2F34H8VnxWmNTiFi80uPSDUhrG06u/0DJdBmUDT3FJUOsfFGOOqz3tkp0B8/JcXbZWOAp+n6objrr1COmdBG4sIt8iRl2ZipMGWHdxDtAMM/p20ees3pXPXcIGkkthCj715csH2QzuUzYrpmyRSRHw5dJfqRfVODOBeDxoqghVna0tm97nQXEjGWQResg4nBGNhSZGnGGBhTzfjAPJku0Wl0hIlJA3+J91+tP2Xx8GRiC5nZbgcTBBPclyxnMPmtyQ== 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=lBFtZE7PbAXLNwADXB6Mxc2AyKMBGtgGsoCDbDS6cic=; b=HbauJBiFxbgU3F88glOqAbAJiloaTPoOjYugy0KImzzRWXYnKMzVO5T2bAMupDRV8l2qlIXtJLArBkNb++IOMExmxw7rrseS4ruiY7gyh5LTyyD+d+qw6qTuKikCy20N9GEG15sFty0I1lUwthMadQTtTdlCxhbN0SSN9Xo1ZFNUehtcuesIZ3jAvYql8aQ6A4e0FfFmDFZE3PDERMwcQgxyE0WPjyNEKkFi5T3iqsmEARPYlkI5Ri0uDM4EU3bGaV1U8H8Cv8887783VYff+S7j0flU10vDZIOZ+PJtZIznJT25g/3sEREG0TRWvkav/kBcmRubx4y1/4MKq4Jxlg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MN2PR11MB4566.namprd11.prod.outlook.com (2603:10b6:208:24e::16) by PH8PR11MB8288.namprd11.prod.outlook.com (2603:10b6:510:1c8::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.42; Wed, 8 May 2024 07:47:14 +0000 Received: from MN2PR11MB4566.namprd11.prod.outlook.com ([fe80::7fc0:8ee5:d974:e1e]) by MN2PR11MB4566.namprd11.prod.outlook.com ([fe80::7fc0:8ee5:d974:e1e%5]) with mapi id 15.20.7544.041; Wed, 8 May 2024 07:47:14 +0000 From: "Willgerodt, Felix" To: Andrew Burgess , "gdb-patches@sourceware.org" CC: John Baldwin Subject: RE: [PATCHv5 09/11] gdbserver: update target description creation for x86/linux Thread-Topic: [PATCHv5 09/11] gdbserver: update target description creation for x86/linux Thread-Index: AQHal+r2OMC5OCcoakStEHLC7U84vrF+8PNggAzzy4CAAAKu8A== Date: Wed, 8 May 2024 07:47:14 +0000 Message-ID: References: <7f0e5aac3e3f52b6119658af5c4e5237811aec56.1714143669.git.aburgess@redhat.com> <87seytu2ca.fsf@redhat.com> In-Reply-To: <87seytu2ca.fsf@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR11MB4566:EE_|PH8PR11MB8288:EE_ x-ms-office365-filtering-correlation-id: 8c0aa539-238a-476b-e42c-08dc6f3313b4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230031|1800799015|376005|366007|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?SU1LR3FFUzRFaWQwb0NDeEFPNHFsazZsVHFMQ2xTUURnOExid1JKOFYzRWsz?= =?utf-8?B?NjBPbThFRmdZSFZPckxqL2l2UG93d1NwWmhTV2pKa0ZHY3RRTG1IVWdKVFhw?= =?utf-8?B?MjZZZkpSaGJiUlg5MTNmWXJnZ2ZIUTRoTENIalZLeHl6WGVJUkZ1S1dBMEVC?= =?utf-8?B?MEhwd1JZazQ2UjcrbWRQYzIveE1qRVUrVis4RmNDVGJybmM4SnlyQzBwRDRu?= =?utf-8?B?cElZU3RtNkhjNk1vYk9UOSt3SE5ENHROS2ZZYXB5ZEx0alZvYWtGNTFTalZz?= =?utf-8?B?T2pvWDZEekEzSTNaNWQ4VGdOMlJmRFoxdXNUcVlibDV3NGhLWVRmaDNFa29o?= =?utf-8?B?K2kzeGpPZGcyRTlyekxubWpIOWdsd1lQc092VkJjZkVISzk1Y2xxZWhnQ3Zt?= =?utf-8?B?TS9hcGtoWVBiYmoxbm92bmF1dDZTaG8wNlhwVXBYMXJpQXJiem96c3QrVTgv?= =?utf-8?B?a2dqVGp0eXoycm5tQi9VRTh5K3hkTkxoSmhWQStxSkhEV0tCbEszYkxydlBE?= =?utf-8?B?aFA3clY0OWxvekxaN014SFRWUFZWUzB0SkhrOENmMHBZbkpNWmEvakpDM2I2?= =?utf-8?B?MXpnZlMxZ2puNnh4WHBtbjlCR2VtdDlzR2RHdTNxOHc5dklYdTM0d0Y1MlZI?= =?utf-8?B?ZlYvSitLZ2R3bkh1VHYzYy9sZVZJZUsxZktBanFSbFZpM01FSFViN3BZK0dv?= =?utf-8?B?WkdWdG45eTZZU1pXQmlSV1NiZ0RxNHJmcDNteThkbWIyVElXRCtRMFdzN2FY?= =?utf-8?B?S2d3UHpPcFVmdkIvQnh4NkRoUDcyWjJVc2p5TDByeE5wOW1kZ0JvbVBZdFFV?= =?utf-8?B?ckNzNHV5ZDVjYlhnSDdWSjRLY2JuNnJOR3dzMlIyZFhxRmprOFh0QVFCcllh?= =?utf-8?B?OGRPdHloNUVJeHBvd3k4NzN6Z3Z2VmMraUwvSlcvYVU1R1hQc2YxcUkvd0pr?= =?utf-8?B?aDdBWVNlcXAxMFRSL29WTkVUOWxaQlAxWUh4Tnc0eldpclY1dWw3YXFBMVpJ?= =?utf-8?B?NGR6TlRuWTQ0dTdrMEJvMDJuMzQyM2FOVkdxVXRsZTRBdXR4YlpRR0s5cnR6?= =?utf-8?B?TThFY3ZlaXFuc3ppWE1kdEFncEVsQjM4Y1luR0lGamVmZkx0RFJsYlJOOEVn?= =?utf-8?B?ZWprU3I1eEZtb1lKcmU1VzRZcHJNdkFjdGMxUlNkTEZIcEh3SVRsUmMxdm40?= =?utf-8?B?aWtYYmtCTWVyOGhJR1VQRGJVc25paTh1a3hZa1luSnFTSDJrN2FFSkY5RDN3?= =?utf-8?B?T1pJZVNTZTFSeFVLMm91NTl4SjNkRFNHVFdnOHU4TEpLWTdVOVBnZkpQY3ZW?= =?utf-8?B?U0JzZTNkRVBGZFJJMzZyL0NFS0ZoTXQyMEI5WEpiMVlCU2xYY1VYTStyeUhQ?= =?utf-8?B?dzRkU3FEVWtibTBQNHFVaHJZSmJTbVhrZGdMUGYwOUZtczZhang2VjNxRnBF?= =?utf-8?B?QzFvZlU5cmJBRk03SmVPWW5KeTVFenBreHdyOHZVNjdqVE5SNktXQlpwZFBI?= =?utf-8?B?d3Y0VjZOVlhZQlhock1sbUhrVWRKUW4rODhud05mYUtwcy9zMTV4TnZ1TEpn?= =?utf-8?B?ZXJBZzVOaXNvdEpBNDBQM01UWnp4cWl3SUVmQktuS1UxbkIvNnRrN0w2c0U4?= =?utf-8?B?U1BuWHBSWlYzc0NWcVhkQW1TS05NWWJiN2syVlZLYWcrRVBpY3dJaHRNdmpq?= =?utf-8?B?ZGIwcVVERXFiRlJ3UlIweDBRWFkzS29aREdBOGhRUDhSVWFhSS9aaWE3R1ZR?= =?utf-8?Q?1gwlBLFa6mygi5Pi7E=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR11MB4566.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(1800799015)(376005)(366007)(38070700009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SlVoWWRvekFVc1BMZWtLdjRlUE1xdEh3NWswdUsra3U3TmZhUFA5VU1jdmR0?= =?utf-8?B?WTAxZzEvNk91bmR1a0xiSklvZXRUVERuWVI0Zll4bGpEMkVzT3kyaGJ3dnhy?= =?utf-8?B?ZmhUMklxdTVKaU9kZFI5bCtZcVZVRkI4VGlUeGg5ZjJ6c1RXQ0VqMVZNa20v?= =?utf-8?B?TGY1RXRpQ2oyb2lHV20vdTF2V3BYSGRRY1I2R244L0trL1JNOWhxLzdxSGho?= =?utf-8?B?T3dyK1ZEdGFKV1R4WkJHYVAvSkt4MHZONjFaSklicGJlbTUzT2plU2MwREdV?= =?utf-8?B?a2J2ckZnOVkrdTlpejkzVXB2L0grV29rV1RkbTVmbGMySEttc2I0emgrclV6?= =?utf-8?B?WUR2dUFlaHVmS21oMDRKS2E5VFJzbGhveFcwaVBDRkJBS2o5b0w1M0RlZGxC?= =?utf-8?B?RnJOQlNsNG5OWUZFYlpYeE1XR1R4eUk4T3Jzc0JHN1NQRmxVQmt4SlBOVE1E?= =?utf-8?B?YkZ4VDd4WnRXQXpySVJFWXRwYW55b1VHUXBxYlhJbURDcGpmY0VkOVJpbkQ2?= =?utf-8?B?aEkvOG5YV0ZGR2hSUk1ocCtrS0tuSlpBd3dpRVkvRm1OYVpHbHJFMk5reTZ6?= =?utf-8?B?WlBnZDhCcHVtVmdkM2p0SHpUZFhmamE5YUZ3WmFBeFJUL3FLYzFhcWZ0YzlF?= =?utf-8?B?b3ZnaXFlMjhxWWdMSHY0bTh5QU9UcmlIZG1OMXdMZzIzdVE5TldZT1ZiYW1T?= =?utf-8?B?elV6ZWc3YW1mbms3a0NKWURQZ0F2b1V2N01ZYXdoKzAwYm41RXl2K29ZT0RH?= =?utf-8?B?TmczcmswYXJXNDM3V3NSeXdPbHNtQU5BU2hXbzlNVTVEK3NvdXRqQUFORXpy?= =?utf-8?B?YklZSXlMSjIwVklZbUV3ZXpaMXd0NjhYVWFaWE0zZk9uMHhKMUxTMHJZMDVJ?= =?utf-8?B?K3lwZGt5aFZUWkFFRVN6Q2xuTE01Q2VSbTJXalZoUG1rUkROd3BHbmN2WThZ?= =?utf-8?B?U1VpYlhBVUd4YW9KUEhRejRZdG1EZ2h0VGc2R0FnaDlzTWlwb29kTEVxYm5h?= =?utf-8?B?aDlISGpQa0FDYzFaOXBzQVhDR2thUFRQK20rTVlkZlJHRCsvQklpQ1ZPcWU1?= =?utf-8?B?VTFvcUpEZUFjOUdocWh5V2t6Y1ZhTmVOaHBEWkpZbFlnTzVxclgyYjJldzM5?= =?utf-8?B?Um45VGo2Vkk5RThoSkNzeUNqWWdaTTl6RWtxdC80RGMyKzBXZEswUE9IeXkv?= =?utf-8?B?c29hUGhzeW1hdTlzRDdxcDFaa1JwYWlsNXZDMXhWQW55T1l3ZjZnbTZJVGRJ?= =?utf-8?B?TXRjUEJsQUJmUlh0K3NaZzBTdFZ4dnpmRGlsTmN1QWFFUEJyUGJyZWNZTmtX?= =?utf-8?B?bys3Y2dIeEF5NTkweGczNUx1Y0ZSamdRYXFXSTB2Tlp6QzQ1ZTVOaHBSbkVs?= =?utf-8?B?dG40NlBOT3hVMXVBdkZWMDdybWVaQ1RaM1AyUm0xR3J2bFlQT3o0LzJBNXhG?= =?utf-8?B?ODhwR0Z1YlBrZUpuWmdIRDlBMFI1MHBlSFBXRlpZcSt4TWt4Q3NOUVJQaVFo?= =?utf-8?B?SHg4NVdHT3hsbkNBRFF6ME0za2RGL3BhQWlJK0RnNjc2c0lDanp0TndNZkps?= =?utf-8?B?ZExVK0dtVDRHM25NcHdvOHVURGFNbzFwcjkzMHFkV2dCQkN3QUI5bmloNUY4?= =?utf-8?B?am44VmU0UEl6Q2I0NHRCeFdMZS9mYmNlTEJORTlsVmpFcWpqK0NTYk1uZWdZ?= =?utf-8?B?UTRqT3Z1UDFMMWwrYUJZUVFjSUpoSU1SUVo0MVU1WXFndnJjTFNQc1AyR3p3?= =?utf-8?B?MktKYzJ3c0xBNGViMU1abkttbUxFSHEvSE4yK2FtN25sWkNpVDFMcDZnSDdC?= =?utf-8?B?ejJYTlJsb0FPN0hZYlVTWkJEVURnZ0gyWkRodFUrNTVlRmRsYmVhRVdGMHJU?= =?utf-8?B?bDJDT2hnRU5oelcwaWZhb2llWW5ZRXU4VSt0QWVBdHM0Ujc2N1ZNUFN2M0Vt?= =?utf-8?B?ckZSM0toNTBHa0NYaDNEZmJGRHVzaHlQVis4OXo5YitTZFZCQVBxUjdKUW1G?= =?utf-8?B?bHQ2TDRIdE05Y2hsRkc5SG55WWIwdVRBd05EeU5OS011S1ZiMCtpV0crL0FI?= =?utf-8?B?MCtqbnRDaUZ3SFh5aUxrUlBZendVZVJjL2ZWWkZxOVlhRW52bmJUNXFPekJO?= =?utf-8?B?UkJJRkxHR2t2L0toN0FnU1lJRUZqcFlmY3J2SjlXOFIrUThubVhIU05TWENR?= =?utf-8?B?bVE9PQ==?= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4566.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8c0aa539-238a-476b-e42c-08dc6f3313b4 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 May 2024 07:47:14.4005 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ftfTKAy0lqKG0SOnXeF5bnneee5KRJwpBFcTP9y1VdcOki/SrJj3Fj1dYbNPQE7WD9BYWc84QUdd4Mogpik8lasZJMUf65sCTBIChNhaQ3s= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB8288 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,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: PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBBbmRyZXcgQnVyZ2VzcyA8YWJ1 cmdlc3NAcmVkaGF0LmNvbT4NCj4gU2VudDogRGllbnN0YWcsIDcuIE1haSAyMDI0IDE2OjI1DQo+ IFRvOiBXaWxsZ2Vyb2R0LCBGZWxpeCA8ZmVsaXgud2lsbGdlcm9kdEBpbnRlbC5jb20+OyBnZGIt cGF0Y2hlc0Bzb3VyY2V3YXJlLm9yZw0KPiBDYzogSm9obiBCYWxkd2luIDxqaGJARnJlZUJTRC5v cmc+DQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0h2NSAwOS8xMV0gZ2Ric2VydmVyOiB1cGRhdGUgdGFy Z2V0IGRlc2NyaXB0aW9uIGNyZWF0aW9uIGZvcg0KPiB4ODYvbGludXgNCj4gDQo+ICJXaWxsZ2Vy b2R0LCBGZWxpeCIgPGZlbGl4LndpbGxnZXJvZHRAaW50ZWwuY29tPiB3cml0ZXM6DQo+IA0KPiA+ PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBBbmRyZXcgQnVyZ2VzcyA8 YWJ1cmdlc3NAcmVkaGF0LmNvbT4NCj4gPj4gU2VudDogRnJlaXRhZywgMjYuIEFwcmlsIDIwMjQg MTc6MDINCj4gPj4gVG86IGdkYi1wYXRjaGVzQHNvdXJjZXdhcmUub3JnDQo+ID4+IENjOiBBbmRy ZXcgQnVyZ2VzcyA8YWJ1cmdlc3NAcmVkaGF0LmNvbT47IFdpbGxnZXJvZHQsIEZlbGl4DQo+ID4+ IDxmZWxpeC53aWxsZ2Vyb2R0QGludGVsLmNvbT47IEpvaG4gQmFsZHdpbiA8amhiQEZyZWVCU0Qu b3JnPg0KPiA+PiBTdWJqZWN0OiBbUEFUQ0h2NSAwOS8xMV0gZ2Ric2VydmVyOiB1cGRhdGUgdGFy Z2V0IGRlc2NyaXB0aW9uIGNyZWF0aW9uIGZvcg0KPiA+PiB4ODYvbGludXgNCj4gPj4NCj4gPj4g VGhpcyBjb21taXQgaXMgcGFydCBvZiBhIHNlcmllcyB3aGljaCBhaW1zIHRvIHNoYXJlIG1vcmUg b2YgdGhlIHRhcmdldA0KPiA+PiBkZXNjcmlwdGlvbiBjcmVhdGlvbiBiZXR3ZWVuIEdEQiBhbmQg Z2Ric2VydmVyIGZvciB4ODYvTGludXguDQo+ID4+DQo+ID4+IEFmdGVyIHNvbWUgcmVmYWN0b3Jp bmcgZWFybGllciBpbiB0aGlzIHNlcmllcyB0aGUgc2hhcmVkDQo+ID4+IHg4Nl9saW51eF90ZGVz Y19mb3JfdGlkIGZ1bmN0aW9uIHdhcyBhZGRlZCBpbnRvIG5hdC94ODYtbGludXgtdGRlc2MuYy4N Cj4gPj4gSG93ZXZlciwgdGhpcyBmdW5jdGlvbiBzdGlsbCByZWxpZXMgb24gYW1kNjRfbGludXhf cmVhZF9kZXNjcmlwdGlvbg0KPiA+PiBhbmQgaTM4Nl9saW51eF9yZWFkX2Rlc2NyaXB0aW9uIHdo aWNoIGFyZSBpbXBsZW1lbnRlZCBzZXBhcmF0ZWx5IGZvcg0KPiA+PiBib3RoIGdkYnNlcnZlciBh bmQgR0RCLiAgR2l2ZW4gdGhhdCBhdCB0aGVpciBjb3JlLCBhbGwgdGhlc2UgZnVuY3Rpb25zDQo+ ID4+IGRvIGlzOg0KPiA+Pg0KPiA+PiAgIDEuIHRha2UgYW4geGNyMCB2YWx1ZSBhcyBpbnB1dCwN Cj4gPj4gICAyLiBtYXNrIG91dCBzb21lIGZlYXR1cmUgYml0cywNCj4gPj4gICAzLiBsb29rIGZv ciBhIGNhY2hlZCBwcmUtZ2VuZXJhdGVkIHRhcmdldCBkZXNjcmlwdGlvbiBhbmQgcmV0dXJuIGl0 DQo+ID4+ICAgICAgaWYgZm91bmQsDQo+ID4+ICAgNC4gaWYgbm8gY2FjaGVkIHRhcmdldCBkZXNj cmlwdGlvbiBpcyBmb3VuZCB0aGVuIGNhbGwgZWl0aGVyDQo+ID4+ICAgICAgYW1kNjRfY3JlYXRl X3RhcmdldF9kZXNjcmlwdGlvbiBvcg0KPiA+PiAgICAgIGkzODZfY3JlYXRlX3RhcmdldF9kZXNj cmlwdGlvbiB0byBjcmVhdGUgYSBuZXcgdGFyZ2V0DQo+ID4+ICAgICAgZGVzY3JpcHRpb24sIHdo aWNoIGlzIHRoZW4gYWRkZWQgdG8gdGhlIGNhY2hlLiAgUmV0dXJuIHRoZSBuZXdseQ0KPiA+PiAg ICAgIGNyZWF0ZWQgdGFyZ2V0IGRlc2NyaXB0aW9uLg0KPiA+Pg0KPiA+PiBUaGUgaW5uZXIgZnVu Y3Rpb25zIGFtZDY0X2NyZWF0ZV90YXJnZXRfZGVzY3JpcHRpb24gYW5kDQo+ID4+IGkzODZfY3Jl YXRlX3RhcmdldF9kZXNjcmlwdGlvbiBhcmUgYWxyZWFkeSBzaGFyZWQgYmV0d2VlbiBHREIgYW5k DQo+ID4+IGdkYnNlcnZlciAoaW4gdGhlIGdkYi9hcmNoLyBkaXJlY3RvcnkpLCBzbyB0aGUgb25s eSB0aGluZyB0aGF0DQo+ID4+IHRoZSAqX3JlYWRfZGVzY3JpcHRpb24gZnVuY3Rpb25zIHJlYWxs eSBkbyBpcyBhZGQgdGhlIGNhY2hpbmcgbGF5ZXIsDQo+ID4+IGFuZCBpdCBmZWVscyBsaWtlIHRo aXMgcmVhbGx5IGNvdWxkIGJlIHNoYXJlZC4NCj4gPj4NCj4gPj4gSG93ZXZlciwgd2UgaGF2ZSBh IHNtYWxsIHByb2JsZW0uDQo+ID4+DQo+ID4+IE9uIHRoZSBHREIgc2lkZSB3ZSBjcmVhdGUgdGFy Z2V0IGRlc2NyaXB0aW9ucyB1c2luZyBhIGRpZmZlcmVudCBzZXQgb2YNCj4gPj4gY3B1IGZlYXR1 cmVzIHRoYW4gb24gdGhlIGdkYnNlcnZlciBzaWRlISAgVGhpcyBtZWFucyB0aGF0IGZvciB0aGUN Cj4gPj4gZXhhY3Qgc2FtZSB0YXJnZXQsIHdlIG1pZ2h0IGdldCBhIGRpZmZlcmVudCB0YXJnZXQg ZGVzY3JpcHRpb24gd2hlbg0KPiA+PiB1c2luZyBuYXRpdmUgR0RCIHZzIHVzaW5nIGdkYnNlcnZl ci4gIFRoaXMgc3VyZWx5IGZlZWxzIGxpa2UgYQ0KPiA+PiBtaXN0YWtlLCBJIHdvdWxkIGV4cGVj dCB0byBnZXQgdGhlIHNhbWUgdGFyZ2V0IGRlc2NyaXB0aW9uIG9uIGVhY2guDQo+ID4+DQo+ID4+ IFRoZSB0YWJsZSBiZWxvdyBzaG93cyB0aGUgbnVtYmVyIG9mIHBvc3NpYmxlIGRpZmZlcmVudCB0 YXJnZXQNCj4gPj4gZGVzY3JpcHRpb25zIHRoYXQgd2UgY2FuIGNyZWF0ZSBvbiB0aGUgR0RCIHNp ZGUgdnMgb24gdGhlIGdkYnNlcnZlcg0KPiA+PiBzaWRlIGZvciBlYWNoIHRhcmdldCB0eXBlOg0K PiA+Pg0KPiA+PiAgICAgICAgIHwgR0RCIHwgZ2Ric2VydmVyDQo+ID4+ICAgLS0tLS0tfC0tLS0t fC0tLS0tLS0tLS0NCj4gPj4gICBpMzg2ICB8IDY0ICB8IDcNCj4gPj4gICBhbWQ2NCB8IDMyICB8 IDcNCj4gPj4gICB4MzIgICB8IDE2ICB8IDcNCj4gPg0KPiA+IEkgd291bGQgaGF2ZSBzb21laG93 IGV4cGVjdGVkIHRvIGhhdmUgdGhlIGhpZ2hlc3QgbnVtYmVyIGZvciA2NC1iaXQNCj4gPiBDUFVz LiBBcyBpdCBzaG91bGQgaW5jbHVkZSAzMi1iaXQgYW5kIHgzMi4NCj4gPiBEbyB5b3Uga25vdyB3 aHkgdGhhdCBpc24ndCB0aGUgY2FzZSBhbmQgMzItYml0IGhhcyBkb3VibGU/DQo+ID4gT3IgaXMg bXkgcHJvYmxlbSB0aGF0IHRoaXMgaXMgcmVmbGVjdGluZyBHREIgY29kZSwgd2hpY2ggc2hhcmVz IHN0dWZmDQo+ID4gYmV0d2VlbiBhbWQ2NCBhbmQgaTM4Nj8NCj4gDQo+IFRoZSB0YWJsZSByZWZs ZWN0cyB0aGUgZGlmZmVyZW50IHRkZXNjIHNwbGl0IGJ5IGNhdGVnb3J5LCBub3QgdGhlIHRvdGFs DQo+IG51bWJlciB0aGF0IGEgdXNlciBtaWdodCBnZXQgb24gYSBwYXJ0aWN1bGFyIHN5c3RlbS4N Cj4gDQo+IFNvIG9uIGFuIF9hY3R1YWxfIGkzODYgQ1BVLCB0aGVuIHN1cmUsIHRoZSB1c2VyIHdp bGwgKG9uIHRoZSBHREIgc2lkZSkNCj4gb25seSBoYXZlIGEgY2hvaWNlIG9mIDY0IGRpZmZlcmVu dCB0ZGVzYy4NCj4gDQo+IE9uIGFuIF9hY3R1YWxfIGFtZDY0IENQVSB0aGUgdXNlciBjb3VsZCBy dW4gYW4gaTM4NiBjb21waWxlZCBiaW5hcnksIGluDQo+IHdoaWNoIGNhc2UgR0RCIHdpbGwgcmV0 dXJuIG9uZSBvZiB0aG9zZSBzYW1lIDY0IHRkZXNjLiAgT3IgdGhlIHVzZXINCj4gbWlnaHQgcnVu IGFuIGFtZDY0IGNvbXBpbGVkIGJpbmFyeSwgaW4gd2hpY2ggY2FzZSBHREIgd2lsbCByZXR1cm4g b25lIG9mDQo+IHRoZSAzMiBhbWQ2NCB0ZGVzYy4NCj4gDQo+IFNvIHllcywgZnJvbSBhIHVzZXIn cyBwb2ludCBvZiB2aWV3IG9uIGFtZDY0IHRoZXJlIGFyZSA5NiBkaWZmZXJlbnQNCj4gdGRlc2Ms IGJ1dCBHREIgc3BsaXRzIHRoZXNlIGludG8gMyBkaWZmZXJlbnQgY2F0ZWdvcmllcyAoaTM4Niwg YW1kNjQsDQo+IGFuZCB4MzIpLCB3aGljaCBpcyB3aGF0IHRoaXMgdGFibGUgcmVwcmVzZW50cy4N Cg0KVGhhbmtzIGZvciBleHBsYWluaW5nLiBVbmRlcnN0b29kLg0KDQoNCj4gPiBNYXliZSB0aGlz IGlzIGFsc28gc29sdmVkIHdpdGggdGhlIGNvbW1lbnRzIEkgbWFkZSBpbiBjb2RlIGJlbG93Lg0K PiA+DQo+ID4NCj4gPj4gU28gaW4gdGhlb3J5LCBhbGwgSSB3YW50IHRvIGRvIGlzIG1vdmUgdGhl IEdEQiB2ZXJzaW9uDQo+ID4+IG9mICpfcmVhZF9kZXNjcmlwdGlvbiBpbnRvIHRoZSBhcmNoLyBk aXJlY3RvcnkgYW5kIGhhdmUgZ2Ric2VydmVyIHVzZQ0KPiA+PiB0aGF0LCB0aGVuIGJvdGggR0RC IGFuZCBnZGJzZXJ2ZXIgd291bGQgYmUgYWJsZSB0byBjcmVhdGUgYW55IG9mIHRoZQ0KPiA+PiBw b3NzaWJsZSB0YXJnZXQgZGVzY3JpcHRpb25zLg0KPiA+Pg0KPiA+PiBVbmZvcnR1bmF0ZWx5IGl0 J3MgYSBsaXR0bGUgbW9yZSBjb21wbGV4IHRoYW4gdGhhdCBkdWUgdG8gdGhlIGluDQo+ID4+IHBy b2Nlc3MgYWdlbnQgKElQQSkuDQo+ID4+DQo+ID4+IFdoZW4gdGhlIElQQSBpcyBpbiB1c2UsIGdk YnNlcnZlciBzZW5kcyBhIHRhcmdldCBkZXNjcmlwdGlvbiBpbmRleCB0bw0KPiA+PiB0aGUgSVBB LCBhbmQgdGhlIElQQSB1c2VzIHRoaXMgdG8gZmluZCB0aGUgY29ycmVjdCB0YXJnZXQgZGVzY3Jp cHRpb24NCj4gPj4gdG8gdXNlLg0KPiA+Pg0KPiA+PiAqKiBTVEFSVCBPRiBBTiBBU0lERSAqKg0K PiA+Pg0KPiA+PiBCYWNrIGluIHRoZSBkYXkgSSBzdXNwZWN0IHRoaXMgYXBwcm9hY2ggbWFkZSBw ZXJmZWN0IHNlbnNlLiAgSG93ZXZlcg0KPiA+PiBzaW5jZSB0aGlzIGNvbW1pdDoNCj4gPj4NCj4g Pj4gICBjb21taXQgYTg4MDYyMzAyNDFkMjAxZjgwOGQ4NTZlYWFlNGQ0NDA4ODExN2IwYw0KPiA+ PiAgIERhdGU6ICAgVGh1IERlYyA3IDE3OjA3OjAxIDIwMTcgKzAwMDANCj4gPj4NCj4gPj4gICAg ICAgSW5pdGlhbGl6ZSB0YXJnZXQgZGVzY3JpcHRpb24gZWFybHkgaW4gSVBBDQo+ID4+DQo+ID4+ IEkgdGhpbmsgcGFzc2luZyB0aGUgaW5kZXggaXMgbm93IG1vcmUgdHJvdWJsZSB0aGFuIGl0cyB3 b3J0aC4NCj4gPj4NCj4gPj4gV2UgdXNlZCB0byBwYXNzIHRoZSBpbmRleCwgYW5kIHRoZW4gdXNl IHRoYXQgaW5kZXggdG8gbG9va3VwIHdoaWNoDQo+ID4+IHRhcmdldCBkZXNjcmlwdGlvbiB0byBp bnN0YW50aWF0ZSBhbmQgdXNlLiAgSG93ZXZlciwgdGhlIGFib3ZlIGNvbW1pdA0KPiA+PiBmaXhl ZCBhbiBpc3N1ZSB3aGVyZSB3ZSBjYW4ndCBjYWxsIG1hbGxvYygpIHdpdGhpbiAoY2VydGFpbiBw YXJ0cyBvZikNCj4gPj4gdGhlIElQQSAoYXBwYXJlbnRseSksIHNvIGluc3RlYWQgd2Ugbm93IHBy ZS1jb21wdXRlIF9ldmVyeV8gcG9zc2libGUNCj4gPj4gdGFyZ2V0IGRlc2NyaXB0aW9uIHdpdGhp biB0aGUgSVBBLiAgVGhlIGluZGV4IGlzIG5vdyBvbmx5IHVzZWQgdG8NCj4gPj4gbG9va3VwIHdo aWNoIG9mIHRoZSAobWFueSkgcHJlLWNvbXB1dGVkIHRhcmdldCBkZXNjcmlwdGlvbnMgdG8gdXNl Lg0KPiA+Pg0KPiA+PiBJdCB3b3VsZCAoSSB0aGluaykgaGF2ZSBiZWVuIGVhc2llciBhbGwgYXJv dW5kIGlmIHRoZSBJUEEganVzdA0KPiA+PiBzZWxmLWluc3BlY3RlZCwgZmlndXJlZCBvdXQgaXRz IG93biB4Y3IwIHZhbHVlLCBhbmQgdXNlZCB0aGF0IHRvDQo+ID4+IGNyZWF0ZSB0aGUgb25lIHRh cmdldCBkZXNjcmlwdGlvbiB0aGF0IGlzIHJlcXVpcmVkLiAgU28gbG9uZyBhcyB0aGUNCj4gPj4g eGNyMCB0byB0YXJnZXQgZGVzY3JpcHRpb24gY29kZSBpcyBzaGFyZWQgKGF0IGNvbXBpbGUgdGlt ZSkgd2l0aA0KPiA+PiBnZGJzZXJ2ZXIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgSVBB IHdpbGwgZGVyaXZlIHRoZSBzYW1lDQo+ID4+IHRhcmdldCBkZXNjcmlwdGlvbiBhcyBnZGJzZXJ2 ZXIsIGFuZCB3ZSB3b3VsZCBhdm9pZCBhbGwgdGhpcyBpbmRleA0KPiA+PiBwYXNzaW5nIGJ1c2lu ZXNzLCB3aGljaCBoYXMgbWFkZSB0aGlzIGNvbW1pdCBzbyB2ZXJ5LCB2ZXJ5IHBhaW5mdWwuDQo+ ID4+DQo+ID4+ICoqIEVORCBPRiBBTiBBU0lERSAqKg0KPiA+Pg0KPiA+PiBDdXJyZW50bHkgdGhl biBmb3IgeDg2L2xpbnV4LCBnZGJzZXJ2ZXIgc2VuZHMgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA3 DQo+ID4+IHRvIHRoZSBJUEEsIGFuZCB0aGUgSVBBIHVzZXMgdGhpcyB0byBjcmVhdGUgYSB0YXJn ZXQgZGVzY3JpcHRpb24uDQo+ID4+DQo+ID4+IEhvd2V2ZXIsIEkgYW0gcHJvcG9zaW5nIHRoYXQg Z2Ric2VydmVyIHNob3VsZCBub3cgY3JlYXRlIG9uZSBvZiAodXANCj4gPj4gdG8pIDY0IGRpZmZl cmVudCB0YXJnZXQgZGVzY3JpcHRpb25zIGZvciBpMzg2LCBzbyB0aGlzIDAgdG8gNyBpbmRleA0K PiA+PiBpc24ndCBnb2luZyB0byBiZSBnb29kIGVub3VnaCBhbnkgbW9yZSAoYW1kNjQgYW5kIHgz MiBoYXZlIHNsaWdodGx5DQo+ID4+IGZld2VyIHBvc3NpYmxlIHRhcmdldCBkZXNjcmlwdGlvbnMs IGJ1dCBzdGlsbCBtb3JlIHRoYW4gOCwgc28gdGhlDQo+ID4+IHByb2JsZW0gaXMgdGhlIHNhbWUp Lg0KPiA+Pg0KPiA+PiBGb3IgYSB3aGlsZSBJIHdvbmRlcmVkIGlmIEkgd2FzIGdvaW5nIHRvIGhh dmUgdG8gdHJ5IGFuZCBmaW5kIHNvbWUNCj4gPj4gYmFja3dhcmQgY29tcGF0aWJsZSBzb2x1dGlv biBmb3IgdGhpcyBtZXNzLiAgQnV0IGFmdGVyIHNlZWluZyBob3cNCj4gPj4gbGlnaHRseSB0aGUg SVBBIGlzIGFjdHVhbGx5IGRvY3VtZW50ZWQsIEkgd29uZGVyIGlmIGl0IGlzIG5vdCB0aGUgY2Fz ZQ0KPiA+PiB0aGF0IHRoZXJlIGlzIGEgdGlnaHQgY291cGxpbmcgYmV0d2VlbiBhIHZlcnNpb24g b2YgZ2Ric2VydmVyIGFuZCBhDQo+ID4+IHZlcnNpb24gb2YgdGhlIElQQT8gIEF0IGxlYXN0IEkn bSBob3Bpbmcgc28uDQo+ID4+DQo+ID4+IEluIHRoaXMgY29tbWl0IEkgaGF2ZSB0aHJvd24gb3V0 IHRoZSBvbGQgSVBBIHRhcmdldCBkZXNjcmlwdGlvbiBpbmRleA0KPiA+PiBudW1iZXJpbmcgc2No ZW1lLCBhbmQgc3dpdGNoZWQgdG8gYSBjb21wbGV0ZWx5IG5ldyBudW1iZXJpbmcgc2NoZW1lLg0K PiA+PiBJbnN0ZWFkIG9mIHRoZSBpbmRleCB0aGF0IGlzIHBhc3NlZCBiZWluZyBhcmJpdHJhcnks IHRoZSBpbmRleCBpcw0KPiA+PiBpbnN0ZWFkIGNhbGN1bGF0ZWQgZnJvbSB0aGUgc2V0IG9mIGNw dSBmZWF0dXJlcyB0aGF0IGFyZSBwcmVzZW50IG9uDQo+ID4+IHRoZSB0YXJnZXQuICBXaXRoaW4g dGhlIElQQSB3ZSBjYW4gdGhlbiByZXZlcnNlIHRoaXMgbG9naWMgdG8gcmVjcmVhdGUNCj4gPj4g dGhlIHhjcjAgdmFsdWUgYmFzZWQgb24gdGhlIGluZGV4LCBhbmQgZnJvbSB0aGUgeGNyMCB2YWx1 ZSB3ZSBjYW4NCj4gPj4gY2hvb3NlIHRoZSBjb3JyZWN0IHRhcmdldCBkZXNjcmlwdGlvbi4NCj4g Pj4NCj4gPj4gV2l0aCB0aGUgZ2Ric2VydmVyIHRvIElQQSBudW1iZXJpbmcgc2NoZW1lIGlzc3Vl IHJlc29sdmVkIEkgaGF2ZSB0aGVuDQo+ID4+IHVwZGF0ZSB0aGUgZ2Ric2VydmVyIHZlcnNpb25z IG9mIGFtZDY0X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24gYW5kDQo+ID4+IGkzODZfbGludXhfcmVh ZF9kZXNjcmlwdGlvbiBzbyB0aGF0IHRoZXkgY3JlYXRlIHRhcmdldCBkZXNjcmlwdGlvbnMNCj4g Pj4gdXNpbmcgdGhlIHNhbWUgc2V0IG9mIGNwdSBmZWF0dXJlcyBhcyBHREIgaXRzZWxmLg0KPiA+ Pg0KPiA+PiBBZnRlciB0aGlzIGdkYnNlcnZlciBzaG91bGQgbm93IGFsd2F5cyBjb21lIHVwIHdp dGggdGhlIHNhbWUgdGFyZ2V0DQo+ID4+IGRlc2NyaXB0aW9uIGFzIEdEQiBkb2VzIG9uIGFueSB4 ODYvTGludXggdGFyZ2V0Lg0KPiA+Pg0KPiA+PiBUaGlzIGNvbW1pdCBkb2VzIG5vdCBpbnRyb2R1 Y2UgYW55IG5ldyBjb2RlIHNoYXJpbmcgYmV0d2VlbiBHREIgYW5kDQo+ID4+IGdkYnNlcnZlciBh cyBwcmV2aW91cyBjb21taXRzIGluIHRoaXMgc2VyaWVzIGhhdmUgZG9uZS4gIEluc3RlYWQgdGhp cw0KPiA+PiBjb21taXQgaXMgYWxsIGFib3V0IGJyaW5naW5nIEdEQiBhbmQgZ2Ric2VydmVyIGlu dG8gYWxpZ25tZW50DQo+ID4+IGZ1bmN0aW9uYWxseSBzbyB0aGF0IHRoZSBuZXh0IGNvbW1pdChz KSBjYW4gbWVyZ2UgdGhlIEdEQiBhbmQNCj4gPj4gZ2Ric2VydmVyIHZlcnNpb25zIG9mIHRoZXNl IGZ1bmN0aW9ucy4NCj4gPj4NCj4gPj4gQXBwcm92ZWQtQnk6IEpvaG4gQmFsZHdpbiA8amhiQEZy ZWVCU0Qub3JnPg0KPiA+PiAtLS0NCj4gPj4gIGdkYnNlcnZlci9saW51eC1hbWQ2NC1pcGEuY2Mg fCAgNDMgKy0tLS0NCj4gPj4gIGdkYnNlcnZlci9saW51eC1pMzg2LWlwYS5jYyAgfCAgMjMgKy0t DQo+ID4+ICBnZGJzZXJ2ZXIvbGludXgteDg2LWxvdy5jYyAgIHwgIDE1ICstDQo+ID4+ICBnZGJz ZXJ2ZXIvbGludXgteDg2LXRkZXNjLmNjIHwgMzE2ICsrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tDQo+ID4+ICBnZGJzZXJ2ZXIvbGludXgteDg2LXRkZXNjLmggIHwgIDQ5ICsrKy0t LQ0KPiA+PiAgNSBmaWxlcyBjaGFuZ2VkLCAyNzggaW5zZXJ0aW9ucygrKSwgMTY4IGRlbGV0aW9u cygtKQ0KPiA+Pg0KPiA+PiBkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyL2xpbnV4LWFtZDY0LWlwYS5j YyBiL2dkYnNlcnZlci9saW51eC1hbWQ2NC1pcGEuY2MNCj4gPj4gaW5kZXggZGY1ZTZhY2EwODEu LjBjODA4MTJjYzZmIDEwMDY0NA0KPiA+PiAtLS0gYS9nZGJzZXJ2ZXIvbGludXgtYW1kNjQtaXBh LmNjDQo+ID4+ICsrKyBiL2dkYnNlcnZlci9saW51eC1hbWQ2NC1pcGEuY2MNCj4gPj4gQEAgLTE2 NCw0NyArMTY0LDIxIEBAIHN1cHBseV9zdGF0aWNfdHJhY2Vwb2ludF9yZWdpc3RlcnMgKHN0cnVj dCByZWdjYWNoZQ0KPiA+PiAqcmVnY2FjaGUsDQo+ID4+DQo+ID4+ICAjZW5kaWYgLyogSEFWRV9V U1QgKi8NCj4gPj4NCj4gPj4gLSNpZiAhZGVmaW5lZCBfX0lMUDMyX18NCj4gPj4gLS8qIE1hcCB0 aGUgdGRlc2MgaW5kZXggdG8geGNyMCBtYXNrLiAgKi8NCj4gPj4gLXN0YXRpYyB1aW50NjRfdCBp ZHgybWFza1tYODZfVERFU0NfTEFTVF0gPSB7DQo+ID4+IC0gIFg4Nl9YU1RBVEVfWDg3X01BU0ss DQo+ID4+IC0gIFg4Nl9YU1RBVEVfU1NFX01BU0ssDQo+ID4+IC0gIFg4Nl9YU1RBVEVfQVZYX01B U0ssDQo+ID4+IC0gIFg4Nl9YU1RBVEVfTVBYX01BU0ssDQo+ID4+IC0gIFg4Nl9YU1RBVEVfQVZY X01QWF9NQVNLLA0KPiA+PiAtICBYODZfWFNUQVRFX0FWWF9BVlg1MTJfTUFTSywNCj4gPj4gLSAg WDg2X1hTVEFURV9BVlhfTVBYX0FWWDUxMl9QS1VfTUFTSywNCj4gPj4gLX07DQo+ID4+IC0jZW5k aWYNCj4gPj4gLQ0KPiA+PiAgLyogUmV0dXJuIHRhcmdldF9kZXNjIHRvIHVzZSBmb3IgSVBBLCBn aXZlbiB0aGUgdGRlc2MgaW5kZXggcGFzc2VkIGJ5DQo+ID4+ICAgICBnZGJzZXJ2ZXIuICAqLw0K PiA+Pg0KPiA+PiAgY29uc3Qgc3RydWN0IHRhcmdldF9kZXNjICoNCj4gPj4gIGdldF9pcGFfdGRl c2MgKGludCBpZHgpDQo+ID4+ICB7DQo+ID4+IC0gIGlmIChpZHggPj0gWDg2X1RERVNDX0xBU1Qp DQo+ID4+IC0gICAgew0KPiA+PiAtICAgICAgaW50ZXJuYWxfZXJyb3IgKCJ1bmtub3duIGlwYSB0 ZGVzYyBpbmRleDogJWQiLCBpZHgpOw0KPiA+PiAtICAgIH0NCj4gPj4gKyAgdWludDY0X3QgeGNy MCA9IHg4Nl9saW51eF90ZGVzY19pZHhfdG9feGNyMCAoaWR4KTsNCj4gPj4NCj4gPj4gICNpZiBk ZWZpbmVkIF9fSUxQMzJfXw0KPiA+PiAtICBzd2l0Y2ggKGlkeCkNCj4gPj4gLSAgICB7DQo+ID4+ IC0gICAgY2FzZSBYODZfVERFU0NfU1NFOg0KPiA+PiAtICAgICAgcmV0dXJuIGFtZDY0X2xpbnV4 X3JlYWRfZGVzY3JpcHRpb24gKFg4Nl9YU1RBVEVfU1NFX01BU0ssIHRydWUpOw0KPiA+PiAtICAg IGNhc2UgWDg2X1RERVNDX0FWWDoNCj4gPj4gLSAgICAgIHJldHVybiBhbWQ2NF9saW51eF9yZWFk X2Rlc2NyaXB0aW9uIChYODZfWFNUQVRFX0FWWF9NQVNLLCB0cnVlKTsNCj4gPj4gLSAgICBjYXNl IFg4Nl9UREVTQ19BVlhfQVZYNTEyOg0KPiA+PiAtICAgICAgcmV0dXJuIGFtZDY0X2xpbnV4X3Jl YWRfZGVzY3JpcHRpb24gKFg4Nl9YU1RBVEVfQVZYX0FWWDUxMl9NQVNLLA0KPiA+PiB0cnVlKTsN Cj4gPj4gLSAgICBkZWZhdWx0Og0KPiA+PiAtICAgICAgYnJlYWs7DQo+ID4+IC0gICAgfQ0KPiA+ PiArICBib29sIGlzX3gzMiA9IHRydWU7DQo+ID4+ICAjZWxzZQ0KPiA+PiAtICByZXR1cm4gYW1k NjRfbGludXhfcmVhZF9kZXNjcmlwdGlvbiAoaWR4Mm1hc2tbaWR4XSwgZmFsc2UpOw0KPiA+PiAr ICBib29sIGlzX3gzMiA9IGZhbHNlOw0KPiA+PiAgI2VuZGlmDQo+ID4+DQo+ID4+IC0gIGludGVy bmFsX2Vycm9yICgidW5rbm93biBpcGEgdGRlc2MgaW5kZXg6ICVkIiwgaWR4KTsNCj4gPj4gKyAg cmV0dXJuIGFtZDY0X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24gKHhjcjAsIGlzX3gzMik7DQo+ID4+ ICB9DQo+ID4+DQo+ID4+ICAvKiBBbGxvY2F0ZSBidWZmZXIgZm9yIHRoZSBqdW1wIHBhZHMuICBU aGUgYnJhbmNoIGluc3RydWN0aW9uIGhhcyBhDQo+ID4+IEBAIC0yNzIsMTEgKzI0NiwxMCBAQCB2 b2lkDQo+ID4+ICBpbml0aWFsaXplX2xvd190cmFjZXBvaW50ICh2b2lkKQ0KPiA+PiAgew0KPiA+ PiAgI2lmIGRlZmluZWQgX19JTFAzMl9fDQo+ID4+IC0gIGFtZDY0X2xpbnV4X3JlYWRfZGVzY3Jp cHRpb24gKFg4Nl9YU1RBVEVfU1NFX01BU0ssIHRydWUpOw0KPiA+PiAtICBhbWQ2NF9saW51eF9y ZWFkX2Rlc2NyaXB0aW9uIChYODZfWFNUQVRFX0FWWF9NQVNLLCB0cnVlKTsNCj4gPj4gLSAgYW1k NjRfbGludXhfcmVhZF9kZXNjcmlwdGlvbiAoWDg2X1hTVEFURV9BVlhfQVZYNTEyX01BU0ssIHRy dWUpOw0KPiA+PiArICBmb3IgKGF1dG8gaSA9IDA7IGkgPCB4ODZfbGludXhfeDMyX3RkZXNjX2Nv dW50ICgpOyBpKyspDQo+ID4+ICsgICAgYW1kNjRfbGludXhfcmVhZF9kZXNjcmlwdGlvbiAoeDg2 X2xpbnV4X3RkZXNjX2lkeF90b194Y3IwIChpKSwgdHJ1ZSk7DQo+ID4+ICAjZWxzZQ0KPiA+PiAt ICBmb3IgKGF1dG8gaSA9IDA7IGkgPCBYODZfVERFU0NfTEFTVDsgaSsrKQ0KPiA+PiAtICAgIGFt ZDY0X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24gKGlkeDJtYXNrW2ldLCBmYWxzZSk7DQo+ID4+ICsg IGZvciAoYXV0byBpID0gMDsgaSA8IHg4Nl9saW51eF9hbWQ2NF90ZGVzY19jb3VudCAoKTsgaSsr KQ0KPiA+PiArICAgIGFtZDY0X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24gKHg4Nl9saW51eF90ZGVz Y19pZHhfdG9feGNyMCAoaSksIGZhbHNlKTsNCj4gPg0KPiA+IEkga25vdyB0aGlzIHdhcyBhbHJl YWR5IGhlcmUgYW5kIEkga25vdyB0aGVyZSBhcmUgZGlmZmVyZW50IG9waW5pb25zIG9uIHRoaXMu DQo+ID4gQnV0IHRvIG1lIHVzaW5nIGF1dG8gaGVyZSAoYW5kIGluIHNpbWlsYXIgbG9jYXRpb25z IGluIHRoaXMgcGF0Y2gpIGlzIGp1c3Qgd3JvbmcuDQo+ID4gU28gSSB3b3VsZCB2b3RlIGZvciBt YWtpbmcgdGhpcyBhIHByb3BlciB0eXBlLg0KPiA+IEJ1dCB0aGlzIGlzIGEgYml0IG9mIG15IHBl cnNvbmFsICJwZXQgcGVldmUiIDspDQo+ID4NCj4gPg0KPiA+PiAgI2VuZGlmDQo+ID4+ICB9DQo+ ID4+IGRpZmYgLS1naXQgYS9nZGJzZXJ2ZXIvbGludXgtaTM4Ni1pcGEuY2MgYi9nZGJzZXJ2ZXIv bGludXgtaTM4Ni1pcGEuY2MNCj4gPj4gaW5kZXggYWEzNDZmYzliYzMuLmMxYzMxNTJmYjA0IDEw MDY0NA0KPiA+PiAtLS0gYS9nZGJzZXJ2ZXIvbGludXgtaTM4Ni1pcGEuY2MNCj4gPj4gKysrIGIv Z2Ric2VydmVyL2xpbnV4LWkzODYtaXBhLmNjDQo+ID4+IEBAIC0yNDUsMjggKzI0NSwxNSBAQCBp bml0aWFsaXplX2Zhc3RfdHJhY2Vwb2ludF90cmFtcG9saW5lX2J1ZmZlciAodm9pZCkNCj4gPj4g ICAgICB9DQo+ID4+ICB9DQo+ID4+DQo+ID4+IC0vKiBNYXAgdGhlIHRkZXNjIGluZGV4IHRvIHhj cjAgbWFzay4gICovDQo+ID4+IC1zdGF0aWMgdWludDY0X3QgaWR4Mm1hc2tbWDg2X1RERVNDX0xB U1RdID0gew0KPiA+PiAtICBYODZfWFNUQVRFX1g4N19NQVNLLA0KPiA+PiAtICBYODZfWFNUQVRF X1NTRV9NQVNLLA0KPiA+PiAtICBYODZfWFNUQVRFX0FWWF9NQVNLLA0KPiA+PiAtICBYODZfWFNU QVRFX01QWF9NQVNLLA0KPiA+PiAtICBYODZfWFNUQVRFX0FWWF9NUFhfTUFTSywNCj4gPj4gLSAg WDg2X1hTVEFURV9BVlhfQVZYNTEyX01BU0ssDQo+ID4+IC0gIFg4Nl9YU1RBVEVfQVZYX01QWF9B Vlg1MTJfUEtVX01BU0ssDQo+ID4+IC19Ow0KPiA+PiAtDQo+ID4+ICAvKiBSZXR1cm4gdGFyZ2V0 X2Rlc2MgdG8gdXNlIGZvciBJUEEsIGdpdmVuIHRoZSB0ZGVzYyBpbmRleCBwYXNzZWQgYnkNCj4g Pj4gICAgIGdkYnNlcnZlci4gICovDQo+ID4+DQo+ID4+ICBjb25zdCBzdHJ1Y3QgdGFyZ2V0X2Rl c2MgKg0KPiA+PiAgZ2V0X2lwYV90ZGVzYyAoaW50IGlkeCkNCj4gPj4gIHsNCj4gPj4gLSAgaWYg KGlkeCA+PSBYODZfVERFU0NfTEFTVCkNCj4gPj4gLSAgICB7DQo+ID4+IC0gICAgICBpbnRlcm5h bF9lcnJvciAoInVua25vd24gaXBhIHRkZXNjIGluZGV4OiAlZCIsIGlkeCk7DQo+ID4+IC0gICAg fQ0KPiA+PiAtICByZXR1cm4gaTM4Nl9saW51eF9yZWFkX2Rlc2NyaXB0aW9uIChpZHgybWFza1tp ZHhdKTsNCj4gPj4gKyAgdWludDY0X3QgeGNyMCA9IHg4Nl9saW51eF90ZGVzY19pZHhfdG9feGNy MCAoaWR4KTsNCj4gPj4gKw0KPiA+PiArICByZXR1cm4gaTM4Nl9saW51eF9yZWFkX2Rlc2NyaXB0 aW9uICh4Y3IwKTsNCj4gPj4gIH0NCj4gPj4NCj4gPj4gIC8qIEFsbG9jYXRlIGJ1ZmZlciBmb3Ig dGhlIGp1bXAgcGFkcy4gIE9uIGkzODYsIHdlIGNhbiByZWFjaCBhbiBhcmJpdHJhcnkNCj4gPj4g QEAgLTI4OCw2ICsyNzUsNiBAQCB2b2lkDQo+ID4+ICBpbml0aWFsaXplX2xvd190cmFjZXBvaW50 ICh2b2lkKQ0KPiA+PiAgew0KPiA+PiAgICBpbml0aWFsaXplX2Zhc3RfdHJhY2Vwb2ludF90cmFt cG9saW5lX2J1ZmZlciAoKTsNCj4gPj4gLSAgZm9yIChhdXRvIGkgPSAwOyBpIDwgWDg2X1RERVND X0xBU1Q7IGkrKykNCj4gPj4gLSAgICBpMzg2X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24gKGlkeDJt YXNrW2ldKTsNCj4gPj4gKyAgZm9yIChhdXRvIGkgPSAwOyBpIDwgeDg2X2xpbnV4X2kzODZfdGRl c2NfY291bnQgKCk7IGkrKykNCj4gPj4gKyAgICBpMzg2X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24g KHg4Nl9saW51eF90ZGVzY19pZHhfdG9feGNyMCAoaSkpOw0KPiA+PiAgfQ0KPiA+PiBkaWZmIC0t Z2l0IGEvZ2Ric2VydmVyL2xpbnV4LXg4Ni1sb3cuY2MgYi9nZGJzZXJ2ZXIvbGludXgteDg2LWxv dy5jYw0KPiA+PiBpbmRleCA2OGQyZjEzNTM3Yy4uNmUyM2E1MzExOGIgMTAwNjQ0DQo+ID4+IC0t LSBhL2dkYnNlcnZlci9saW51eC14ODYtbG93LmNjDQo+ID4+ICsrKyBiL2dkYnNlcnZlci9saW51 eC14ODYtbG93LmNjDQo+ID4+IEBAIC0yODgyLDE0ICsyODgyLDE3IEBAIHg4Nl90YXJnZXQ6Omdl dF9pcGFfdGRlc2NfaWR4ICgpDQo+ID4+ICAgIHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUgPSBn ZXRfdGhyZWFkX3JlZ2NhY2hlIChjdXJyZW50X3RocmVhZCwgMCk7DQo+ID4+ICAgIGNvbnN0IHN0 cnVjdCB0YXJnZXRfZGVzYyAqdGRlc2MgPSByZWdjYWNoZS0+dGRlc2M7DQo+ID4+DQo+ID4+ICsg IGlmICghdXNlX3htbCkNCj4gPj4gKyAgICB7DQo+ID4+ICsgICAgICBpZiAodGRlc2MgPT0gdGRl c2NfaTM4Nl9saW51eF9ub194bWwuZ2V0ICgpDQo+ID4+ICAjaWZkZWYgX194ODZfNjRfXw0KPiA+ PiAtICByZXR1cm4gYW1kNjRfZ2V0X2lwYV90ZGVzY19pZHggKHRkZXNjKTsNCj4gPj4gLSNlbmRp Zg0KPiA+PiAtDQo+ID4+IC0gIGlmICh0ZGVzYyA9PSB0ZGVzY19pMzg2X2xpbnV4X25vX3htbC5n ZXQgKCkpDQo+ID4+IC0gICAgcmV0dXJuIFg4Nl9UREVTQ19TU0U7DQo+ID4+ICsJICB8fCB0ZGVz YyA9PSB0ZGVzY19hbWQ2NF9saW51eF9ub194bWwuZ2V0ICgpDQo+ID4+ICsjZW5kaWYgLyogX194 ODZfNjRfXyAqLw0KPiA+PiArCSAgKQ0KPiA+PiArCXJldHVybiB4ODZfbGludXhfeGNyMF90b190 ZGVzY19pZHggKFg4Nl9YU1RBVEVfU1NFX01BU0spOw0KPiA+DQo+ID4gV2hhdCBoYXBwZW5zIGlm IG5laXRoZXIgb2YgdGhlIHR3byBpcyB0cnVlPyBEbyB3ZSBuZWVkIHRvIGFzc2VydCB0aGlzPw0K PiA+IE9yIGRvIHdlIG5lZWQgdG8ganVzdCByZXR1cm4gdGhlIFg4Nl9YU1RBVEVfU1NFX01BU0sg aW5kZXgNCj4gPiB3aXRob3V0IGNoZWNraW5nLCBhcyB0aGlzIGNhbid0IGV2ZXIgaGFwcGVuPw0K PiANCj4gWW91J3JlIHJpZ2h0LiAgSSd2ZSBjaGFuZ2VkIHRoZSAnaWYnIGludG8gJ2dkYl9hc3Nl cnQnLCBhbmQgbWFkZSB0aGUNCj4gcmV0dXJuIG9mIGFuIGluZGV4IGJhc2VkIG9uIFg4Nl9YU1RB VEVfU1NFX01BU0sgdW5jb25kaXRpb25hbCAod2l0aGluDQo+IHRoZSAnIXVzZV94bWwnIGJsb2Nr Lg0KPiANCj4gPg0KPiA+DQo+ID4+ICsgICAgfQ0KPiA+Pg0KPiA+PiAtICByZXR1cm4gaTM4Nl9n ZXRfaXBhX3RkZXNjX2lkeCAodGRlc2MpOw0KPiA+PiArICByZXR1cm4geDg2X2xpbnV4X3hjcjBf dG9fdGRlc2NfaWR4ICh4Y3IwX3N0b3JhZ2UpOw0KPiA+PiAgfQ0KPiA+Pg0KPiA+PiAgLyogVGhl IGxpbnV4IHRhcmdldCBvcHMgb2JqZWN0LiAgKi8NCj4gPj4gZGlmZiAtLWdpdCBhL2dkYnNlcnZl ci9saW51eC14ODYtdGRlc2MuY2MgYi9nZGJzZXJ2ZXIvbGludXgteDg2LXRkZXNjLmNjDQo+ID4+ IGluZGV4IGFmMzczNWFhODk1Li41ZTEyNTI2YmYxNyAxMDA2NDQNCj4gPj4gLS0tIGEvZ2Ric2Vy dmVyL2xpbnV4LXg4Ni10ZGVzYy5jYw0KPiA+PiArKysgYi9nZGJzZXJ2ZXIvbGludXgteDg2LXRk ZXNjLmNjDQo+ID4+IEBAIC0yOCw5NiArMjgsMjc4IEBADQo+ID4+ICAjaW5jbHVkZSAieDg2LXRk ZXNjLmgiDQo+ID4+ICAjaW5jbHVkZSAiYXJjaC9pMzg2LWxpbnV4LXRkZXNjLmgiDQo+ID4+DQo+ ID4+IC0vKiBSZXR1cm4gdGhlIHJpZ2h0IHg4Nl9saW51eF90ZGVzYyBpbmRleCBmb3IgYSBnaXZl biBYQ1IwLiAgUmV0dXJuDQo+ID4+IC0gICBYODZfVERFU0NfTEFTVCBpZiBjYW4ndCBmaW5kIGEg bWF0Y2guICAqLw0KPiA+PiArLyogQSBzdHJ1Y3R1cmUgdXNlZCB0byBkZXNjcmliZSBhIHNpbmds ZSBjcHUgZmVhdHVyZSB0aGF0IG1pZ2h0LCBvciBtaWdodA0KPiA+PiArICAgbm90LCBiZSBjaGVj a2VkIGZvciB3aGVuIGNyZWF0aW5nIGEgdGFyZ2V0IGRlc2NyaXB0aW9uIGZvciBvbmUgb2YgaTM4 NiwNCj4gPj4gKyAgIGFtZDY0LCBvciB4MzIuICAqLw0KPiA+Pg0KPiA+PiAtc3RhdGljIGVudW0g eDg2X2xpbnV4X3RkZXNjDQo+ID4+IC14Y3IwX3RvX3RkZXNjX2lkeCAodWludDY0X3QgeGNyMCwg Ym9vbCBpc194MzIpDQo+ID4+ICtzdHJ1Y3QgeDg2X3RkZXNjX2ZlYXR1cmUgew0KPiA+PiArICAv KiBUaGUgY3B1IGZlYXR1cmUgbWFzay4gIFRoaXMgaXMgYSBtYXNrIGFnYWluc3QgYW4geGNyMCB2 YWx1ZS4gICovDQo+ID4+ICsgIHVpbnQ2NF90IGZlYXR1cmU7DQo+ID4NCj4gPiBDYW4gd2UgZWxh Ym9yYXRlIHRoZSBjb21tZW50PyBXaHkgZG8gd2UgbmVlZCB0byBtYXNrIGFueXRoaW5nPw0KPiA+ IE9yIG1heWJlIHdlIGNhbiByZWZlciB0byB0aGUgdGFibGUgYmVsb3cuDQo+ID4NCj4gPg0KPiA+ PiArICAvKiBJcyB0aGlzIGZlYXR1cmUgY2hlY2tlZCB3aGVuIGNyZWF0aW5nIGFuIGkzODYgdGFy Z2V0IGRlc2NyaXB0aW9uLiAgKi8NCj4gPj4gKyAgYm9vbCBpc19pMzg2Ow0KPiA+PiArDQo+ID4+ ICsgIC8qIElzIHRoaXMgZmVhdHVyZSBjaGVja2VkIHdoZW4gY3JlYXRpbmcgYW4gYW1kNjQgdGFy Z2V0IGRlc2NyaXB0aW9uLiAgKi8NCj4gPj4gKyAgYm9vbCBpc19hbWQ2NDsNCj4gPj4gKw0KPiA+ PiArICAvKiBJcyB0aGlzIGZlYXR1cmUgY2hlY2tlZCB3aGVuIGNyZWF0aW5nIGFuIHgzMiB0YXJn ZXQgZGVzY3JpcHRpb24uICAqLw0KPiA+PiArICBib29sIGlzX3gzMjsNCj4gPj4gK307DQo+ID4+ ICsNCj4gPj4gKy8qIEEgY29uc3RhbnQgdGFibGUgdGhhdCBkZXNjcmliZXMgYWxsIG9mIHRoZSBj cHUgZmVhdHVyZXMgdGhhdCBhcmUNCj4gPj4gKyAgIGNoZWNrZWQgd2hlbiBidWlsZGluZyBhIHRh cmdldCBkZXNjcmlwdGlvbiBmb3IgaTM4NiwgYW1kNjQsIG9yIHgzMi4gICovDQo+ID4+ICsNCj4g Pg0KPiA+IEkgYW0gbWlzc2luZyBhIGJpdCBvZiBlbGFib3JhdGlvbiBvbiB3aHkgd2UgY2FuJ3Qg b25seSByZWx5IG9uIFhDUjAuIEFuZA0KPiA+IHRoZSB0YWJsZSBkb2Vzbid0IGRlc2NyaWJlIGFs bCBDUFUgZmVhdHVyZXMgdGhhdCBhcmUgY2hlY2tlZC4gSXQganVzdCBkZXNjcmliZXMNCj4gPiBh bGwgWFNUQVRFIGZlYXR1cmVzLiBUaGVyZSBpcyBhbHNvIHNlZ21lbnRzIGFuZCBvcmlnX3JheCBh bmQgaW4gdGhlIG5lYXIgZnV0dXJlDQo+ID4gYSBuZXcgcmVnaXN0ZXIgZm9yIENFVCwgd2hpY2gg YXJlIGluZGVwZW5kZW50IG9mIFhTVEFURS4NCj4gDQo+IEkgY2FuIHJlbmFtZSB0aGUgZGF0YSBz dHJ1Y3R1cmVzIHRvIG1ha2UgaXQgY2xlYXJlciB0aGF0IHRoaXMgYWxsDQo+IHJlbGF0ZXMgdG8g eHN0YXRlL3hjcjAuDQoNClRoYXQgd291bGQgYmUgZ29vZC4NCg0KQSBzaWRlIG5vZGU6IE92ZXIg dGhlIGxhc3QgY291cGxlIG9mIGRheXMgSSByZW1lbWJlciB0aGF0IHdlIHdpbGwgbmVlZCBzb21l dGhpbmcNCmFzaWRlIGZyb20gWENSMCBhbHNvIGZvciBBVlgxMCAoYmFzaWNhbGx5IGF2eDUxMiBi dXQgMjU2LWJpdCByZWdpc3RlcnMgb25seSkgYW5kDQpwcm9iYWJseSBBTVggYXMgd2VsbC4gQW5k IEFQWC4gTW9zdGx5IHNvbWUgQ1BVSUQgYml0cyBvciBhIHJlZ2lzdGVyIGluIHRoZQ0KY2FzZSBv ZiBBTVguIEJ1dCBJIHNlZSB0aGF0IHlvdSBhbHJlYWR5IHJlc3BvbmRlZCBpbiBwYXRjaCAxMSB0 byBteSBmZWFyIGFib3V0DQp0aGUgbWFwLg0KDQoNCj4gSSB3YXMgYXdhcmUgYWJvdXQgdGhlIHNl Z21lbnRzIGZsYWcgdGhhdCBpcw0KPiBwYXNzZWQgaW50byB0aGUgdGRlc2MgY3JlYXRpb24sIGJ1 dCBldmVuIHdpdGggcHJvbXB0aW5nIEkgY2FuJ3Qgc2VlDQo+IGFueXRoaW5nIHJlbGF0ZWQgdG8g b3JpZ19yYXggLS0gaG93IGlzIHRoYXQgZmVkIGludG8gdGhlIHRkZXNjIGNyZWF0aW9uDQo+IHBy b2Nlc3M/DQoNCkJvdGggc2VnbWVudHMgYW5kIG9yaWdfcmF4IGFyZSBhZGRlZCB1bmNvbmRpdGlv bmFsbHkgaW4gYW1kNjQtbGludXgtdGRlcC5jDQoob3IgdGhlIGkzODYgZXF1aXZhbGVudCkuIFRo ZXkgYXJlIGNvbnRyb2xsZWQgdmlhIHRoZSAiYm9vbCBzZWdtZW50cyIgYW5kDQoiYm9vbCBpc19s aW51eCIgYXJncyBvZiAiKl9jcmVhdGVfdGFyZ2V0X2Rlc2NyaXB0aW9uKCkiLiBVbmZvcnR1bmF0 ZWx5IG15DQprbm93bGVkZ2UgaXMgcHJldHR5IHNwb3R0eSBvbiB0aGVzZSB0d28gYXMgd2VsbCwg YW5kIEkgZGlkbid0IHRyeSB0byBkaWcNCm91dCB0aGUgcGF0Y2hlcyB0aGF0IGFkZGVkIHRoZW0u DQoNCg0KPiA+DQo+ID4NCj4gPj4gK3N0YXRpYyBjb25zdGV4cHIgeDg2X3RkZXNjX2ZlYXR1cmUg eDg2X2xpbnV4X2FsbF90ZGVzY19mZWF0dXJlc1tdID0gew0KPiA+PiArICAvKiBGZWF0dXJlLCAg ICAgICAgICAgaTM4NiwJYW1kNjQsCXgzMi4gICovDQo+ID4+ICsgIHsgWDg2X1hTVEFURV9QS1JV LAl0cnVlLAl0cnVlLCAJdHJ1ZSB9LA0KPiA+PiArICB7IFg4Nl9YU1RBVEVfQVZYNTEyLAl0cnVl LAl0cnVlLCAJdHJ1ZSB9LA0KPiA+PiArICB7IFg4Nl9YU1RBVEVfQVZYLAl0cnVlLAl0cnVlLCAJ dHJ1ZSB9LA0KPiA+PiArICB7IFg4Nl9YU1RBVEVfTVBYLAl0cnVlLAl0cnVlLCAJZmFsc2UgfSwN Cj4gPj4gKyAgeyBYODZfWFNUQVRFX1NTRSwJdHJ1ZSwJZmFsc2UsIAlmYWxzZSB9LA0KPiA+PiAr ICB7IFg4Nl9YU1RBVEVfWDg3LAl0cnVlLAlmYWxzZSwgCWZhbHNlIH0NCj4gPj4gK307DQo+ID4N Cj4gPiBJIGhhdmUgbmV2ZXIgbG9va2VkIGF0IElQQSBjb2RlIG11Y2guIEJ1dCB0aGlzIHRhYmxl IGxvb2tlZCBhIGJpdCB3ZWlyZCB0byBtZS4NCj4gPiBJIGdldCB0aGF0IE1QWCBpcyBub3Qgc3Vw cG9ydGVkIGZvciB4MzIuIFRob3VnaCBNUFggaXMgYWxyZWFkeSBkZXByZWNhdGVkIGFuZA0KPiB3 aWxsDQo+ID4gYmUgcmVtb3ZlZCBvbmNlIEdEQiAxNSBpcyBicmFuY2hlZCAoYXQgbGVhc3QgdGhh dCBpcyB0aGUgcGxhbikuDQo+IA0KPiBZb3UgbXVzdCBleGN1c2UgbXkgbGFjayBvZiB1cCB0byBk YXRlIGtub3dsZWRnZSBvZiBkaWZmZXJlbnQgeDg2DQo+IGZlYXR1cmVzLCBidXQgaXMgdGhlcmUg bm90IGhhcmR3YXJlIGluIHRoZSB3aWxkIHdpdGggdGhlIE1QWCBmZWF0dXJlPw0KPiBXb250IHJl bW92aW5nIHN1cHBvcnQgZm9yIHRoaXMgbWVhbiBmb2xrIHdpbGwgYmUgdW5hYmxlIHRvIGRlYnVn IG9uIHRoYXQNCj4gaGFyZHdhcmU/DQoNCkludGVsIGRlcHJlY2F0ZWQgTVBYIGluIDIwMTkgZm9y IHZhcmlvdXMgcmVhc29uczoNCmh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0ludGVsX01Q WA0KSSB0aGluayB0aGF0IG1lYW5zIG5vLW9uZSByZWFsbHkgc2hvdWxkIHVzZSBNUFggYW55bW9y ZSwgZXZlbiBpZiB0aGVpciBDUFUNCnN1cHBvcnRzIGl0Lg0KDQpTaW5jZSBHQ0MsIGdsaWJjIGFu ZCBMaW51eCBkb24ndCBzdXBwb3J0IGl0IGFueW1vcmUgZm9yIGEgd2hpbGUsIHdlIGFsc28NCmRl cHJlY2F0ZWQgaXQ6DQpodHRwczovL3NvdXJjZXdhcmUub3JnL2dpdC8/cD1iaW51dGlscy1nZGIu Z2l0O2E9Y29tbWl0O2g9NzY1MGVhMzg5MDhlOThhNTgyM2EzMzQyODY4MTNlY2EyZmY1NzE5ZQ0K DQpBbm90aGVyIGFyZ3VtZW50IGZvciB0aGF0IGRlcHJlY2F0aW9uIGlzIEludGVsIEFQWCwgd2hp Y2ggaGFzIGJlZW4gYW5ub3VuY2VkDQpmb3IgZnV0dXJlIENQVXMuIEl0IHdpbGwgcmUtdXNlIHRo ZSBNUFggWFNUQVRFIGFyZWEuIFdoaWxlIHRoZXJlIGlzIGEgbmV3L2RpZmZlcmVudA0KYml0IGZv ciBBUFggaW4gdGhlIFhTVEFURSBoZWFkZXIsIHdoaWNoIHdvdWxkIGFsbG93IHVzIHRvIGtlZXAg c3VwcG9ydA0KZm9yIGJvdGggdHlwZXMgb2YgcmVnaXN0ZXJzLCBpdCBpcyBzdGlsbCBhIG11Y2gg bmVlZGVkIGRlcHJlY2F0aW9uIGluIG15IHZpZXcuDQpUaGUgY29kZSBpcyBhbHJlYWR5IGNvbXBs ZXggZW5vdWdoLg0KDQoNCj4gPiBCdXQgd2h5IGRvZXMgYW1kNjQgbm90IGhhdmUgeDg3IGFuZCBT U0U/IEkgZG8gc2VlIGUuZy4gc3QwIGFuZCB4bW0wIG9uDQo+IGFtZDY0Lg0KPiA+DQo+ID4gQWZ0 ZXIgZGlnZ2luZyBhIGJpdDoNCj4gPiBJbiBhcmNoL2FtZDY0LmMsIHdlIGNhbGwgY3JlYXRlX2Zl YXR1cmVfaTM4Nl82NGJpdF9zc2UoKSB3aXRob3V0IGFueSBjaGVjaw0KPiBmb3INCj4gPiBTU0Ug aW4gWENSMC4gQW5kIEkgc2VlIHRoYXQgd2UgaGF2ZSBzdDAgaW4gdGhlICJjb3JlIiByZWdpc3Rl cnMgd2l0aCBFQVggZXRjLg0KPiA+IEJ1dCBpbiBhcmNoL2kzODYuYyBpdCBpcyBkaWZmZXJlbnQs IGFuZCB3ZSBhZGQgU1NFIGJhc2VkIG9uIFg4Nl9YU1RBVEVfU1NFLg0KPiA+IEFuZCB3aGlsZSBz dDAgaXMgYWxzbyBpbiB0aGUgImNvcmUiIHJlZ2lzdGVycyB3aXRoIEVBWCBldGMuLCB3ZSBvbmx5 IGFkZCB0aGVtDQo+IGJhc2VkDQo+ID4gb24gWDg2X1hTVEFURV9YODcuIFRvIG1lIHRoaXMgbG9v a3Mgd3JvbmcuIFdoeSB3b3VsZCBDUFVzIHdpdGhvdXQgeDg3DQo+ID4gbm90IGFkZCBFQVg/IEFu ZCBldmVuIGlmIGl0IGlzbid0IGZvciBzb21lIHJlYXNvbiwgZG8gd2UgcmVhbGx5IHdhbnQgdG8g c3VwcG9ydA0KPiA+IHN1Y2ggb2xkIENQVXM/IEluIG15IHZpZXcgd2UgY291bGQganVzdCBhbGln biB0aGUgdHdvLg0KPiA+DQo+ID4gSWYgd2Ugd291bGQgZG8gdGhhdCwgYW5kIGRlcHJlY2F0ZSBN UFgsIHRoZSB0YWJsZSBsb29rcyB1bm5lY2Vzc2FyeS4gT3IgZGlkIEkNCj4gbWlzcw0KPiA+IHNv bWV0aGluZyBlbHNlPw0KPiANCj4gVGhhdCBsb29rcyBsaWtlIGEgcmVhc29uYWJsZSBjb25jbHVz aW9uLg0KPiANCj4gSG9uZXN0bHksIHByZXR0eSBtdWNoIGV2ZXJ5dGhpbmcgaW4gdGhpcyBwYXRj aCBpcyBiYXNlZCBvbiB0aGUgaWRlYSBvZg0KPiBtZXJnaW5nIGdkYnNlcnZlciBhbmQgR0RCIGNv ZGUsIHdoaWxlIGtlZXBpbmcgZnVuY3Rpb25hbGl0eSBhcyBzaW1pbGFyDQo+IGFzIHBvc3NpYmxl Lg0KDQpXaGljaCBpcyBhIHJlYWxseSBnb29kIHRoaW5nLiBUaGFua3MgZm9yIHRhY2tsaW5nIHRo aXMhDQoNCj4gPg0KPiA+IFRoaXMgaXMgYSBjb21wbGljYXRlZCBzZXJpZXMuIExpa2Ugb3RoZXJz IEkgYW0gd29uZGVyaW5nIGhvdyBtYW55IHVzZXJzIElQQQ0KPiA+IHJlYWxseSBoYXMgYW5kIGlm IGl0IGlzIHdvcnRoIG1haW50YWluaW5nLiBCdXQgSSBoYXZlIG5vIGRhdGEuIElzIGl0IGluIGFu eSBkaXN0cm9zPw0KPiANCj4gSSBoYXZlIG5vIGlkZWEuICBCdXQgSSByZWFsbHkgZG9uJ3Qgd2Fu dCB0byB0aWUgdGhpcyBzZXJpZXMgKHdoaWNoIGZpeGVzDQo+IGFjdHVhbCBidWdzIGNhdXNlZCBi eSB0ZGVzYyBtaXNtYXRjaCBiZXR3ZWVuIEdEQiBhbmQgZ2Ric2VydmVyKSB0byB0aGUNCj4gcmVt b3ZhbCBvZiBJUEEuDQo+DQoNClRvdGFsbHkgZmluZSB3aXRoIG1lLg0KDQo+IEFzIGZhciBhcyBJ IGNhbiB0ZWxsIHRoZSBJUEEgaXMgdGVzdGVkIGFzIHBhcnQgb2YgdGhlIGdkYi50cmFjZS8NCj4g c3ViLWRpcmVjdG9yeSwgc28gaXQncyBub3QgbGlrZSB3ZSdyZSByZW1vdmluZyBzb21lIHVudGVz dGVkIGJyb2tlbg0KPiBjb3JuZXIgb2YgR0RCLiAgV2UnZCBiZSByZW1vdmluZyBhIHNvbWV3aGF0 IHRlc3RlZCwgYXQgbGVhc3QgbWluaW1hbGx5DQo+IHdvcmtpbmcsIGZlYXR1cmUuDQo+IA0KDQpP ayBieSBtZSwgSSB3YXMgb25seSB3b25kZXJpbmcuIEl0IHdvdWxkIGZvciBzdXJlIG5lZWQgYSBz ZXBhcmF0ZSBkaXNjdXNzaW9uDQphbmQgc2VyaWVzLg0KDQpUaGFua3MsDQpGZWxpeA0KSW50ZWwg RGV1dHNjaGxhbmQgR21iSA0KUmVnaXN0ZXJlZCBBZGRyZXNzOiBBbSBDYW1wZW9uIDEwLCA4NTU3 OSBOZXViaWJlcmcsIEdlcm1hbnkNClRlbDogKzQ5IDg5IDk5IDg4NTMtMCwgd3d3LmludGVsLmRl DQpNYW5hZ2luZyBEaXJlY3RvcnM6IFNlYW4gRmVubmVsbHksIEplZmZyZXkgU2NobmVpZGVybWFu LCBUaWZmYW55IERvb24gU2lsdmENCkNoYWlycGVyc29uIG9mIHRoZSBTdXBlcnZpc29yeSBCb2Fy ZDogTmljb2xlIExhdQ0KUmVnaXN0ZXJlZCBPZmZpY2U6IE11bmljaA0KQ29tbWVyY2lhbCBSZWdp c3RlcjogQW10c2dlcmljaHQgTXVlbmNoZW4gSFJCIDE4NjkyOAo=