From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.10]) by sourceware.org (Postfix) with ESMTPS id 1DAF13858D1E for ; Tue, 7 Nov 2023 08:16:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1DAF13858D1E 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 1DAF13858D1E Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=198.175.65.10 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1699345000; cv=pass; b=rVJjHeHbNgCNU7wG59VCIrqrtOm6HI0OkZWRrR64N124IYLni1mXPbRPXYv9sTvBCtSwRTojPkdyX9UQtaRfOwSQK5UFvnn790xvHFjXUjKw4GoOEUttsPuWsH16OOLtKZaMJdDnGgQ1qmCyfaPb8EDaaje4bAUZJLi1TBgIMF0= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1699345000; c=relaxed/simple; bh=LLGzQdGxwqu7H+raGFOWCES6X1FYpYV7vTm9Q5y1yqw=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=enHwqe5Slr5seOdxTkZ1cJbGdr7Xvyp2+rX6rK5kasWZEJqcflC7LtUEWT5A8fYrggm/2MFH7826hHGI98Kfd5Vk1O5YJgOnq2VaBWbfc6YJMDg8wgX1n5zdsuzr0gaf9T6TZh2nD5X9PDu1AV37+9wn1L5St05QByE/SWGSUlE= 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=1699344999; x=1730880999; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=LLGzQdGxwqu7H+raGFOWCES6X1FYpYV7vTm9Q5y1yqw=; b=SxZv/MSEeX3JKdKpRKJGyyzZCwzdrfV8r973K3ZISf9Q4BC8kmUs5Sl2 cbBsx3BVnMq65YRPzmy+V4bjA1Q8HGWpiXNKvQypasUyl6DPslbPSmhY6 5IziqnOHoei0Z7Sjdth9YHAoWhyF3mU7jYPEHa5Ij2CxeQ3HHPX2OpjKv E+mJYKB0jodjhRKVgj+C4F7Dl4XyxQ1pOxGJLfrZM4CpMqI2QmAFAy5bO ZVcU3OJKmXRlA+yWlKjSymqQey2+IObyB40ieguAroO48CGHFHXnLlqBp 0aU0pkzjSTidkvSEJfg/PPh0h7+/5aCeNIhxjIekIjFsC7fHKRWkUh34I g==; X-IronPort-AV: E=McAfee;i="6600,9927,10886"; a="2455170" X-IronPort-AV: E=Sophos;i="6.03,283,1694761200"; d="scan'208";a="2455170" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Nov 2023 00:16:38 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10886"; a="853283791" X-IronPort-AV: E=Sophos;i="6.03,283,1694761200"; d="scan'208";a="853283791" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by FMSMGA003.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 07 Nov 2023 00:16:34 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Tue, 7 Nov 2023 00:16:34 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Tue, 7 Nov 2023 00:16:33 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Tue, 7 Nov 2023 00:16:33 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.168) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Tue, 7 Nov 2023 00:16:33 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LCbP3Scw7CtLoWTJYNahB6LCoXKVEGOyK5Ge2nu4oXfV1B4N1N5tDjA/NyDZKncBDbs21aSor+EQM8KnZ8E1nB6wcHUEXfukM/EDJhurod6MckFscNAvVGwQK+WHWwmc1wsXVljyZA9yi6mTzG0rFx/OsOZODAqQhMjxIt9n8MBBaCNhfCpn2nBI1iD9lSjog4ZKU7okYY70bpGx7Y1LIG8zSek4Jepr5EE/0fZb6afCqazEHBlPshH0oDJL+XrvFNSbtYIPnn7uwl7ZoUDPPX4kWstkX/97rAHcslT8A4Rd7nRh9vFLPjwjKfsFSKu7vMHjvccf2f+5RCc3TBShAA== 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=LLGzQdGxwqu7H+raGFOWCES6X1FYpYV7vTm9Q5y1yqw=; b=gaG/M738c81PfHgku7z9BGtAvwuPy9rSOr5IWqgbIECoQhaU/8cx4k4nLBbHB14gUGtbpMpdo9BO1VETBFm7w4TTPxY5oH8mxy5FnOJYGZzahBUVlcVkSOSfB04XjcdfjLNC3SBxatA/rgLssaSY+fmJuGAhrUJnsPHFODfxlBFqxDz8VHCs/OPFwxMzUaSHWuUFcVgoik+CkzDOt2xQGFz57dvpH//Uc6JQev5GJgsvG8spSnnyMgpF8ijWmnsKRZ7J9hpI6Fs5wKExqkb6I8bm/+LTedTnAYLL5sxunhv1x5dtZ9h706DcLW8EnJWQoklMSLLyT4iev2HjahpBEg== 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 SJ0PR11MB5600.namprd11.prod.outlook.com (2603:10b6:a03:3ab::16) by SJ2PR11MB8469.namprd11.prod.outlook.com (2603:10b6:a03:57b::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.28; Tue, 7 Nov 2023 08:16:31 +0000 Received: from SJ0PR11MB5600.namprd11.prod.outlook.com ([fe80::6ff2:834a:7174:8903]) by SJ0PR11MB5600.namprd11.prod.outlook.com ([fe80::6ff2:834a:7174:8903%4]) with mapi id 15.20.6954.028; Tue, 7 Nov 2023 08:16:30 +0000 From: "Cui, Lili" To: "Beulich, Jan" CC: "Lu, Hongjiu" , "ccoutant@gmail.com" , "binutils@sourceware.org" Subject: RE: [PATCH 1/8] Support APX GPR32 with rex2 prefix Thread-Topic: [PATCH 1/8] Support APX GPR32 with rex2 prefix Thread-Index: AQHaDX/0xkb266R9fEeRpoLuS5N5i7BoposAgAPstkCAAOiVAIAApWYA Date: Tue, 7 Nov 2023 08:16:29 +0000 Message-ID: References: <20231102112911.2372810-1-lili.cui@intel.com> <20231102112911.2372810-2-lili.cui@intel.com> <9373c79d-85bb-15bd-4501-7634687d9a8e@suse.com> <9a6b01c3-4dd4-731e-d677-e19d092b16c4@suse.com> In-Reply-To: <9a6b01c3-4dd4-731e-d677-e19d092b16c4@suse.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: SJ0PR11MB5600:EE_|SJ2PR11MB8469:EE_ x-ms-office365-filtering-correlation-id: 64f6eadf-a7a2-4b4d-42dd-08dbdf69d881 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: wanb0Kdmu9JOjkXToNQ605WIse533jHJWmaj9bP6rslPCeWQ4P2lXx51ap5Y1fE2Bolom12Czjmv7OGXuAh9WWsEs6UTosIAGX1+xn3uW6NfxJxjKLvYCd9P/n9FvdmRRiCx3uGSuPcLQaoHo1jR7U94tptb0Xpzj9LpWfDHxuxZhi6yV1lRiCQO4TDd7U5HnamPUNemzE7RHifXfUSXqCKbIKB6hbkEbjeRFw75G/pRRSciogGBm4XQma+M04HTFXsGOyfPIDgwvbvKKmAH0PKrpQHXReBqRgjGwLedJHsnvOr22k2wvYwFuybohu4Lmb7BQontu+T2/Bh4Romfufgh6Tg6L7srjI2v8riMQ2kbs+2yYwMQp91+5dG0aDp9gvcL2fHm567n04qtirreSj8B1pU9Sd1aeBC1Bgg8MqWsrtddl2G9EvvIADD2uWW0cBPHw0Rg/QsTul2k3H5YmyMHMmr0u6zq1cc7OicP9Eq3WT+euWgknCHQs14zf/BDyLBG4biDm+2IV1PFi81fjig5Gup+Xl+JszF2lcRKgrglXkar+yCRL/B+5ySokniedfgWv0w/FjKNgyllkMgaepJcC2F+9YdNHgXSjcf4SDR5y2bJyje3FskZn6Gr8aXb x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR11MB5600.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(396003)(376002)(39860400002)(136003)(346002)(230922051799003)(186009)(451199024)(64100799003)(1800799009)(30864003)(2906002)(33656002)(7696005)(41300700001)(6916009)(64756008)(66556008)(478600001)(66446008)(316002)(66476007)(38100700002)(8676002)(8936002)(76116006)(55016003)(54906003)(52536014)(4326008)(66946007)(5660300002)(86362001)(38070700009)(83380400001)(122000001)(53546011)(82960400001)(6506007)(71200400001)(26005)(9686003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cXd2TEtHR0tOdFFUa0VPank4Zmg3N01GY1F5UFB4OTBSdDlvTWErSkZ2bmkv?= =?utf-8?B?TDdGdTkwaU9HRzRaUHFtYmdreXQ4MWI0SklUVjNvUUJPRHVkT0t3cEY3b3VG?= =?utf-8?B?WHRUenZPY0xySU81K3VubTVoL3E1RnlhRTdaUDJ2K0N5Z3BQZmtpWURyZi9Q?= =?utf-8?B?cERTUGVJbnU5VkJzQWxRWDF5SHFXR2Z6UU9EVjBUbGsrWGl3V3dWTzNuMk4x?= =?utf-8?B?YWFEMmphbmhjbWZjS29KcFdzN211bzBFMlJMdGRqbFUvOHduSzB4SWFUaUU2?= =?utf-8?B?RDNqTnNmUE42SWFGMklOVEhvSnIxUmh4bk1QSmgyUFA3STRpZjNndEl2MEg1?= =?utf-8?B?NGo5cGUrc1JuWEdSVkFNaWYyVXd0NHhzSURDa3Q0bEkyaDdIRXNHRHlJZGNP?= =?utf-8?B?c1FjYjZiU3c2OUNnUmNBdHFVN3NVWURJVmoxOFl1MWRmTTFHRFN4RTA3YVVz?= =?utf-8?B?YkUvZkNoakx2aHNyWHdzTEo5eGQvQ2tHb0tQeXN4QnBERmRzcUUxZFhSMExk?= =?utf-8?B?bHJlazZSUmlQYUFJdnNmM3NVcENoU3VFNjRkdFBub1FBaDNOVlk5UDY0RlFY?= =?utf-8?B?cEdhRVJIWVo2dGtCZ2dYVkFnZFNmZ0FjalVvQ2podi9pTS90ak8wNkVjckhB?= =?utf-8?B?S0NYMDZsVy92Vkg2Zis3Y0piSU53SlBnZnZweFVOdGU2eXlPMEVyWWFHZHB6?= =?utf-8?B?a0VyZ1NlUWlUdElGU0xFV3gyblFodUJXT3V5VElPSjNLN3RBVzhtcUpGZmJD?= =?utf-8?B?RnptVm5obDRMUWVycnN3bDZGaSttaWRYNGliUDhSQXN3alBBWFFIbVRkS0tQ?= =?utf-8?B?QlNzQ0NISTYwOGdnNEpHd3VXV1FRUngwdFlQVDlDZ0ZHZFI4bjRQM1VSRGZO?= =?utf-8?B?b1lVNXJNTXFjRnJkQXJNWjhmd05jU0ZsbWN6R3JWZG1raGxvU2ZpcldJRHFn?= =?utf-8?B?QSs2eWJQUS9MMit1eWVpVTJyTTNkUUZlQmM3SVBrbG1kUlRpSytZM2VGNGVK?= =?utf-8?B?U1huWXNZeE0yL01DQW8xVFpnWkMrRlFreGxuV25sTVBEeldscW5kRDVBc2pZ?= =?utf-8?B?WEtEVnpaeVl2dWhrZXNNWVd1cEhodDlBU0x0b2crYlRXUWRreE4rV0VtbXVH?= =?utf-8?B?MmF6RDhBRHUrdEtXYzlQWUowdlVGanNMSUNyV1E1SnFURzFDbnJmSVZDYUVz?= =?utf-8?B?VTU5bXh6Rm9BYWlmd1pyYlZ2NHVrUndjKzcrYXR0OEcvbjhVUForZUVscnRW?= =?utf-8?B?UWpuQVhVY3VJQ1NVT1V4amVUWUZyZ00yZnNMTXU3aXlNOEh0S0c2TXlaUWV5?= =?utf-8?B?aFM1dFFnQ09uMlVxdE5CL2x4Q1B3WEhmd0lHOVFsSVB2cDBuOEJ0WTJId01F?= =?utf-8?B?YmlsWndRQzVVM3BPN1dtbTVWSkNSVkp1a2p4SDRVa21OY0QzMjRjempDMlhx?= =?utf-8?B?bjRmSytMV3ROeVVsdFBIRzRJZm1jUTdPcFh5N04xNFFXQTVkRVJCTkhSVERq?= =?utf-8?B?V2pDamg3L3g1c3MvREpYbmtSamVNMEc0Sy85cWFTNnlJTk51TlVTNm40cG1F?= =?utf-8?B?RmEzdENUaW5ac0M1MWtkU2M0L1U1WHNKcmpwejBnMWJlMll0SUFyZ0d1alhV?= =?utf-8?B?OFpjd25QQ3diTUo3OUR2aVVOUTdZQ0taWEp1MDRYak1kZ3VwQ0lISU5aS2pv?= =?utf-8?B?ZVNlNm1sTkFvWm1FTTJhS0ZUcEhwbzVncVcvazZaK2o4dTY0WHlVMndCMCtm?= =?utf-8?B?SWZCQ2k4UW9RdjNibUxlTndUZHFIaHZneTV0ODhlaXJXL0NTY1BFa0E5ZXB6?= =?utf-8?B?d1NHZTBqVk5rZVZtUEVrQkdrcmJTWXh5VXcwVzVtU3RnSkdvaHhlc1FwK2tP?= =?utf-8?B?dVBqWi9zYnFZVVI2UDZLMXpRVWRWakJGUEhpQi85cEpGOXJ2QkhnakxtaHQz?= =?utf-8?B?d0FycGVidU9UNFFOTUZnNS9PVkcrWDVsT2pPRUVPYUZKR1JKN1BZWk1RNG95?= =?utf-8?B?MWpLT1ovTnU2eUc5Z0VXWE1GY1ZjaUYyQkdZUWRoN1BrYzJRUU1WN1o1YVN3?= =?utf-8?B?cWUxcjFVZFFGRmVuZUY2UW5mRUpidmtWbnNvKzcwckNrRFMySWxTMmw5cFZW?= =?utf-8?Q?9tTCWU7Px6D4dYebmE2Y0MEpL?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR11MB5600.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 64f6eadf-a7a2-4b4d-42dd-08dbdf69d881 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Nov 2023 08:16:29.9819 (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: YVYQLYkACHZGfy2xiGesg1YgrOqk7+pmSmSs2iyp7ICnRRnuuOMuSmgO5bO3Eb7nvrxqBwuvc84h6+dwdkPLGQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR11MB8469 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-5.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: PiA+PiBTdWJqZWN0OiBSZTogW1BBVENIIDEvOF0gU3VwcG9ydCBBUFggR1BSMzIgd2l0aCByZXgy IHByZWZpeA0KPiA+Pg0KPiA+PiBPbiAwMi4xMS4yMDIzIDEyOjI5LCBDdWksIExpbGkgd3JvdGU6 DQo+ID4+PiBAQCAtNDA2LDYgKzQwOSwxMSBAQCBzdHJ1Y3QgX2kzODZfaW5zbg0KPiA+Pj4gICAg ICAvKiBDb21wcmVzc2VkIGRpc3A4Kk4gYXR0cmlidXRlLiAgKi8NCj4gPj4+ICAgICAgdW5zaWdu ZWQgaW50IG1lbXNoaWZ0Ow0KPiA+Pj4NCj4gPj4+ICsgICAgLyogTm8gQ1NQQVpPIGZsYWdzIHVw ZGF0ZS4qLw0KPiA+Pj4gKyAgICBib29sIGhhc19uZjsNCj4gPj4+ICsNCj4gPj4+ICsgICAgYm9v bCBoYXNfemVyb191cHBlcjsNCj4gPj4+ICsNCj4gPj4NCj4gPj4gQ2FuIGJvdGggcGxlYXNlIGJl IGludHJvZHVjZWQgd2hlbiB0aGV5J3JlIG5lZWRlZCwgbm90IHJhbmRvbWx5IGFoZWFkDQo+ID4+ IG9mIHRpbWU/DQo+ID4NCj4gPiBNb3ZlZCBoYXNfbmYgdG8gcGF0Y2ggMi84IGFuZCBkZWxldGVk IGhhc196ZXJvX3VwcGVyLg0KPiANCj4gUGF0Y2ggMi84PyBOb3QgaW4gdGhpcyBzZXJpZXMgdGhl biwgSSBzdXBwb3NlPw0KPiANCkl0IHNob3VsZCBiZSBwYXRjaCAzLzguIPCfmIoNCg0KPiA+Pj4g QEAgLTQxNTgsNiArNDE4MiwxOSBAQCBidWlsZF9ldmV4X3ByZWZpeCAodm9pZCkNCj4gPj4+ICAg ICAgaS52ZXguYnl0ZXNbM10gfD0gaS5tYXNrLnJlZy0+cmVnX251bTsgIH0NCj4gPj4+DQo+ID4+ PiArLyogQnVpbGQgKDIgYnl0ZXMpIHJleDIgcHJlZml4Lg0KPiA+Pj4gKyAgIHwgRDVoIHwNCj4g Pj4+ICsgICB8IG0gfCBSNCBYNCBCNCB8IFcgUiBYIEIgfA0KPiA+Pj4gKyovDQo+ID4+PiArc3Rh dGljIHZvaWQNCj4gPj4+ICtidWlsZF9yZXgyX3ByZWZpeCAodm9pZCkNCj4gPj4+ICt7DQo+ID4+ PiArICBpLnZleC5sZW5ndGggPSAyOw0KPiA+Pj4gKyAgaS52ZXguYnl0ZXNbMF0gPSAweGQ1Ow0K PiA+Pj4gKyAgaS52ZXguYnl0ZXNbMV0gPSAoKGkudG0ub3Bjb2RlX3NwYWNlIDw8IDcpDQo+ID4+ PiArCQkgICAgfCAoaS5yZXgyIDw8IDQpIHwgaS5yZXgpOw0KPiA+Pj4gK30NCj4gPj4NCj4gPj4g SSBtYXkgaGF2ZSBhc2tlZCBvbiB2MSBhbHJlYWR5OiBGb3IgZW1pdHRpbmcgUkVYIHdlIGRvbid0 IHJlc29ydCB0bw0KPiA+PiAoYWIpdXNpbmcgaS52ZXguIElzIHRoYXQgcmVhbGx5IG5lY2Vzc2Fy eT8gKElmIHNvLCBhIGNvbW1lbnQgbmV4dCB0bw0KPiA+PiB0aGUgZmllbGQgZGVjbGFyYXRpb24g bWF5IGJlIHdhcnJhbnRlZC4pDQo+ID4+DQo+ID4gQWRkZWQgY29tbWVudCBmb3IgaXQuDQo+ID4N Cj4gPiAgIC8qIEZvciB0aGUgVyBSIFggQiBiaXRzLCB0aGUgdmFyaWFibGVzIG9mIHJleCBwcmVm aXggd2lsbCBiZSByZXVzZWQuICAqLw0KPiA+ICAgaS52ZXguYnl0ZXNbMV0gPSAoKGkudG0ub3Bj b2RlX3NwYWNlIDw8IDcpDQo+ID4gICAgICAgICAgICAgICAgICAgICB8IChpLnJleDIgPDwgNCkg fCBpLnJleCk7DQo+IA0KPiBIb3cgZG9lcyB0aGUgY29tbWVudCByZWxhdGUgdG8gdGhlIChhYil1 c2Ugb2YgaS52ZXg/DQo+DQpBaCBoYSwgaXQncyBpLnZleCwgbm90IGkucmV4LiBBdCBmaXJzdCBJ IHRob3VnaHQgcmV4MiBzaG91bGQgaGF2ZSBpdHMgb3duIHZhcmlhYmxlLCBidXQgaW4gdGhlIG91 dHB1dF9pbnNuIGZ1bmN0aW9uIHRoZXkgaGF2ZSB0aGUgc2FtZSBzcGVjaWFsIGhhbmRsaW5nIG9m IGkudG0ub3Bjb2RlX3NwYWNlIGFzIFZFWC4gUmV1c2luZyBpLnZleCBjYW4gcmVkdWNlIHNvbWUg dWdseSBjb2RlLiANCg0KPiA+PiBTcGVha2luZyBvZiB2MTogQ2FuIHlvdSBwbGVhc2UgbWFrZSBz dXJlIHlvdSBoYXZlIGNvcnJlY3QgdmVyc2lvbg0KPiA+PiB0YWdzIG9uIHN1Ym1pc3Npb25zIG9m IHVwZGF0ZWQgcGF0Y2ggdmVyc2lvbnM/DQo+ID4+DQo+ID4gSSB1c2VkIGdpdCB0byBzZW5kIGFs bCB0aGUgcGF0Y2hlcyBhdCBvbmNlKCBnaXQgc2VuZC1lbWFpbCAgLS1jb3Zlci1sZXR0ZXIgLS0N Cj4gYW5ub3RhdGUgIC0tdG89Ii4uLiIgLTgpLCB3aGljaCBvbmx5IGhhcyB0aGUgb3Bwb3J0dW5p dHkgdG8gY2hhbmdlIHRoZSB2ZXJzaW9uIG9mDQo+IHRoZSBjb3ZlciBsZXR0ZXIgcGF0Y2guIFRv IGNoYW5nZSB0aGUgdmVyc2lvbiBvZiBlYWNoIHBhdGNoLCBJIGNhbiBzZW5kIHRoZW0NCj4gb25l IGJ5IG9uZSBuZXh0IHRpbWUuIEJ5IHRoZSB3YXksIGRvIHlvdSBoYXZlIGEgYmV0dGVyIHdheT8g T3IgaG93IGRpZCB5b3UNCj4gbW9kaWZ5IHRoZW0/IFRoYW5rcy4NCj4gDQo+IFdlbGwsIHBlcnNv bmFsbHkgSSBkb24ndCB1c2UgZ2l0IHRvIHNlbmQgcGF0Y2hlcy4gQnV0IEkga25vdyBwZW9wbGUg c2VuZCBzZXJpZXMNCj4gd2l0aCBwcm9wZXIgdmVyc2lvbiB0YWdzIHRocm91Z2hvdXQsIGFsbCB0 aGUgdGltZS4NCj4gDQpPaywgSSB3aWxsIHBheSBhdHRlbnRpb24gZm9yIGl0Lg0KDQo+ID4+PiBA QCAtNTI3OCw2ICs1MzE5LDkgQEAgbWRfYXNzZW1ibGUgKGNoYXIgKmxpbmUpDQo+ID4+PiAgCWNh c2UgcmVnaXN0ZXJfdHlwZV9taXNtYXRjaDoNCj4gPj4+ICAJICBlcnJfbXNnID0gXygicmVnaXN0 ZXIgdHlwZSBtaXNtYXRjaCIpOw0KPiA+Pj4gIAkgIGJyZWFrOw0KPiA+Pj4gKwljYXNlIHJlZ2lz dGVyX3R5cGVfb2ZfYWRkcmVzc19taXNtYXRjaDoNCj4gPj4+ICsJICBlcnJfbXNnID0gXygicmVn aXN0ZXIgdHlwZSBvZiBhZGRyZXNzIG1pc21hdGNoIik7DQo+ID4+PiArCSAgYnJlYWs7DQo+ID4+ DQo+ID4+IEkgaGF2ZSBhIGNvbmNlcm4gd2l0aCB3b3JkaW5nIC8gbmFtaW5nIGhlcmU6IElmIEkg c2F3IHRoaXMgaW4gYW4NCj4gPj4gZXJyb3IgbWVzc2FnZSwgSSB3b3VsZG4ndCBrbm93IHdoYXQg aXMgbWVhbnQuIE1heWJlIHNvbWV0aGluZyBhbG9uZw0KPiA+PiB0aGUgbGluZXMgb2YgImNhbm5v dCB1c2UgYW4gZXh0ZW5kZWQgR1BSIGZvciBhZGRyZXNzaW5nIj8gQW5kIHRoZW4NCj4gPj4gdGhl IGVudW1lcmF0b3Igc3VpdGFibGV5IHJlbmFtZWQgYXMgd2VsbD8NCj4gPj4NCj4gPiAgQ2hhbmdl ZCB0bw0KPiA+DQo+ID4gKyAgICAgICBjYXNlIHVuc3VwcG9ydGVkX0VHUFJfZm9yX2FkZHJlc3Np bmc6DQo+ID4gKyAgICAgICAgIGVycl9tc2cgPSBfKCJ1bnN1cHBvcnRlZCBFR1BSIGZvciBhZGRy ZXNzaW5nIik7DQo+ID4gKyAgICAgICAgIGJyZWFrOw0KPiANCj4gTWF5IEkgc3VnZ2VzdCAiZXh0 ZW5kZWQgR1BSIiBpbiB0aGUgbWVzc2FnZSB0ZXh0ICh0aGUgZW51bWVyYXRvciBpcyBmaW5lIHRv DQo+IGhhdmUgRUdQUik/DQo+IA0KDQpTdXJlLg0KDQo+ID4+PiBAQCAtNTU5NCw2ICs1NjQxLDEz IEBAIG1kX2Fzc2VtYmxlIChjaGFyICpsaW5lKQ0KPiA+Pj4gIAkgIHJldHVybjsNCj4gPj4+ICAJ fQ0KPiA+Pj4NCj4gPj4+ICsgICAgICAvKiBDaGVjayBmb3IgZXhwbGljaXQgUkVYMiBwcmVmaXgu ICAqLw0KPiA+Pj4gKyAgICAgIGlmIChpLnJleDIgfHwgaS5yZXgyX2VuY29kaW5nKQ0KPiA+Pg0K PiA+PiBUaGlzIG9wZW4tY29kZXMgaXNfYW55X2FweF9yZXgyX2VuY29kaW5nKCkuIEJ1dCByZWFk IG9uLg0KPiA+Pg0KPiA+Pj4gKwl7DQo+ID4+PiArCSAgYXNfYmFkIChfKCJSRVgyIHByZWZpeCBp bnZhbGlkIHdpdGggYCVzJyIpLCBpbnNuX25hbWUgKCZpLnRtKSk7DQo+ID4+DQo+ID4+IFRoZXJl J3Mgbm8gUkVYMiBwcmVmaXg7IHtyZXgyfSBvbmx5IHNldHMgaS5yZXgyX2VuY29kaW5nLiBRdWVz dGlvbiBpcw0KPiA+PiB3aGF0IGNhc2UgdGhlIGkucmV4MiBjaGVjayBhYm92ZSBpcyBpbnRlbmRl ZCB0byBjb3Zlci4gRXJyb3IgbWVzc2FnZQ0KPiA+PiBjb21tZW50LCBhbmQgY29uZGl0aW9uIHdh bnQgdG8gcmVmbGVjdCB0aGF0Lg0KPiA+Pg0KPiA+DQo+ID4gUmVtb3ZlZCBpLnJleDIgYW5kIGtl ZXAgaS5yZXgyX2VuY29kaW5nIGhlcmUuIEFkZGVkIG9uZSBpbnZhbGlkIHRlc3RjYXNlDQo+IGZv ciBpdC4NCj4gPg0KPiA+ICAgICAgICAge3JleH0gdm1vdmFwcyAleG1tNywleG1tMg0KPiA+ICAg ICAgICAge3JleH0gdm1vdmFwcyAleG1tMTcsJXhtbTINCj4gPiAgICAgICAgIHtyZXh9IHJvcngg JDcsJWVheCwlZWJ4DQo+ID4gKyAgICAgICB7cmV4Mn0gdm1vdmFwcyAleG1tNywleG1tMg0KPiAN Cj4gUmlnaHQsIGJ1dCBwbGVhc2Ugc2VlIG15ICJvcHRpb25hbCB2cyByZXF1aXJlZCIgY29tbWVu dCBpbiB0aGUgcHNldWRvLSBwcmVmaXgNCj4gcmVsYXRlZCBwYXRjaCBJIGRpZCBzZW5kIGVhcmxp ZXIgdG9kYXkuIEkgcXVlc3Rpb24gdGhlIGNvcnJlY3RuZXNzIG9mIHRoZSB7cmV4fQ0KPiByZWxh dGVkIGNoZWNrIGhlcmUsIHdoaWNoIHdvdWxkIHRoZW4gZXh0ZW5kIHRvIHRoZSB7cmV4Mn0gb25l IGFzIHdlbGwuDQo+IA0KDQpBIFJFWCBieXRlIHRoYXQgaXMgaW1tZWRpYXRlbHkgZm9sbG93ZWQg YnkgYSBsZWdhY3kgcHJlZml4IGJ5dGUgKExPQ0ssIFJFUEUsIFJFUE5FLCBPU0laRSBvdmVycmlk ZSwgQVNJWkUgb3ZlcnJpZGUsIG9yIHNlZ21lbnQgb3ZlcnJpZGVzKSBvciBhbm90aGVyIFJFWCBi eXRlIGlzIGlnbm9yZWQgYW5kIGJlaGF2ZXMgYXMgaWYgaXQgZG9lcyBub3QgZXhpc3QgKGV4Y2Vw dCBmb3IgY29udHJpYnV0aW5nIHRvIHRoZSBpbnN0cnVjdGlvbiBsZW5ndGgpDQpidXQgaW4gdGhp cyBjYXNlIEkgdGhpbmsgaXQncyBjb3JyZWN0Lg0KDQo+ID4+PiArICAgICAgZm9yICh1bnNpZ25l ZCBpbnQgb3AgPSAwOyBvcCA8IGkub3BlcmFuZHM7IG9wKyspDQo+ID4+PiArCXsNCj4gPj4+ICsJ ICBpZiAoaS50eXBlc1tvcF0uYml0ZmllbGQuY2xhc3MgIT0gUmVnDQo+ID4+PiArCSAgICAgIC8q IFNwZWNpYWwgY2FzZSBmb3IgKCVkeCkgd2hpbGUgZG9pbmcgaW5wdXQvb3V0cHV0IG9wICovDQo+ ID4+PiArCSAgICAgIHx8IGkuaW5wdXRfb3V0cHV0X29wZXJhbmQpDQo+ID4+DQo+ID4+IFdoeSBp cyB0aGlzIG5lZWRlZD8gVGhlIHJlZ2lzdGVyIHRhYmxlIGVudHJ5IGZvciAlZHggLi4uDQo+ID4+ DQo+ID4+PiArCSAgICBjb250aW51ZTsNCj4gPj4+ICsNCj4gPj4+ICsJICBpZiAoaS5vcFtvcF0u cmVncy0+cmVnX2ZsYWdzICYgUmVnUmV4MikNCj4gPj4NCj4gPj4gLi4uIGRvZXNuJ3QgaGF2ZSB0 aGlzIGJpdCBzZXQgYW55d2F5Lg0KPiA+Pg0KPiA+DQo+ID4gRm9yIHRoaXMgc3BlY2lhbCBjYXNl IGkub3AgaXMgZW1wdHksIHdlIG5lZWQgY29udGludWUsIG90aGVyd2lzZSByDQo+IGkub3Bbb3Bd LnJlZ3MtPnJlZ19mbGFncyAgd2lsbCBjYXVzZSBzZWdtZW50IGZhdWx0Lg0KPiANCj4gSSB2YWd1 ZWx5IHJlY2FsbCBjb21tZW50aW5nIG9uIHRoaXMgYW5vbWFseSB0byBILkouIC0gcGVyaGFwcyB0 aW1lIHRvIGZpeCB0aGF0DQo+IHByb3Blcmx5IChpbiBhIHNlcGFyYXRlIHBhdGNoKSwgdG8gbm90 IGxlYXZlIHRoaXMgdHJhcCBvcGVuIGFueSBsb25nZXI/DQo+IChPdGhlcndpc2UgYXQgbGVhc3Qg YSBjb21tZW50IGlzIG5lZWRlZCBoZXJlLikNCj4NCg0KSC5KIGlzIG9uIHZhY2F0aW9uIGFuZCBJ IHdpbGwgdHJ5IHRvIGZpeCB0aGlzLg0KDQo+ID4+PiArCSAgICB7DQo+ID4+PiArCSAgICAgIGku ZXJyb3IgPSByZWdpc3Rlcl90eXBlX21pc21hdGNoOw0KPiA+Pj4gKwkgICAgICByZXR1cm4gMTsN Cj4gPj4+ICsJICAgIH0NCj4gPj4+ICsJfQ0KPiA+Pj4gKw0KPiA+Pj4gKyAgICAgIGlmICgoaS5p bmRleF9yZWcgJiYgKGkuaW5kZXhfcmVnLT5yZWdfZmxhZ3MgJiBSZWdSZXgyKSkNCj4gPj4+ICsJ ICB8fCAoaS5iYXNlX3JlZyAmJiAoaS5iYXNlX3JlZy0+cmVnX2ZsYWdzICYgUmVnUmV4MikpKQ0K PiA+Pj4gKwl7DQo+ID4+PiArCSAgaS5lcnJvciA9IHJlZ2lzdGVyX3R5cGVfb2ZfYWRkcmVzc19t aXNtYXRjaDsNCj4gPj4+ICsJICByZXR1cm4gMTsNCj4gPj4+ICsJfQ0KPiA+Pj4gKw0KPiA+Pj4g KyAgICAgIC8qIENoZWNrIHBzZXVkbyBwcmVmaXgge3JleDJ9IGFyZSB2YWxpZC4gICovDQo+ID4+ PiArICAgICAgaWYgKGkucmV4Ml9lbmNvZGluZykNCj4gPj4+ICsJew0KPiA+Pj4gKwkgIGkuZXJy b3IgPSBpbnZhbGlkX3BzZXVkb19wcmVmaXg7DQo+ID4+PiArCSAgcmV0dXJuIDE7DQo+ID4+PiAr CX0NCj4gPj4NCj4gPj4gRnVydGhlciB1cCBpbiBtZF9hc3NlbWJsZSgpIHtyZXh9IG9yIHtyZXgy fSBpcyBzaW1wbHkgaWdub3JlZCB3aGVuDQo+ID4+IHdyb25nIHRvIGFwcGx5LiBXaHkgd291bGQg YW4gaW5hcHBsaWNhYmxlIHtyZXgyfSBiZSB0cmVhdGVkIGFzIGFuDQo+ID4+IGVycm9yIGhlcmU/ IFRoaXMgd291bGQgdGhlbiBhbHNvIC4uLg0KPiA+Pg0KPiA+Pj4gQEAgLTcxMjUsNyArNzIzMCw3 IEBAIG1hdGNoX3RlbXBsYXRlIChjaGFyIG1uZW1fc3VmZml4KQ0KPiA+Pj4gICAgICAgIC8qIERv IG5vdCB2ZXJpZnkgb3BlcmFuZHMgd2hlbiB0aGVyZSBhcmUgbm9uZS4gICovDQo+ID4+PiAgICAg ICAgaWYgKCF0LT5vcGVyYW5kcykNCj4gPj4+ICAJew0KPiA+Pj4gLQkgIGlmIChWRVhfY2hlY2tf ZW5jb2RpbmcgKHQpKQ0KPiA+Pj4gKwkgIGlmIChWRVhfY2hlY2tfZW5jb2RpbmcgKHQpIHx8IGNo ZWNrX0VncHJPcGVyYW5kcyAodCkpDQo+ID4+PiAgCSAgICB7DQo+ID4+PiAgCSAgICAgIHNwZWNp ZmljX2Vycm9yID0gcHJvZ3Jlc3MgKGkuZXJyb3IpOw0KPiA+Pj4gIAkgICAgICBjb250aW51ZTsN Cj4gPj4NCj4gPj4gLi4uIGVsaW1pbmF0ZSB0aGUgbmVlZCBmb3IgdGhpcyBjaGFuZ2UsIHdoaWNo IGlzIGtpbmQgb2YgYm9ndXMgYW55d2F5Og0KPiA+PiBUaGVyZSBhcmUgbm8gb3BlcmFuZHMgaGVy ZSwgc28gY2FsbGluZyBhIGZ1bmN0aW9uIG9mIHRoZSBnaXZlbiBuYW1lDQo+ID4+IGlzIGF0IGxl YXN0IHN1c3BpY2lvdXMuDQo+ID4+DQo+ID4NCj4gPiBXZSBoYXZlIHRoZXNlIHRlc3RzIGFuZCBJ J20gY29uZnVzZWQgd2hldGhlciB0byByZW1vdmUgdGhlbSBvciBub3QuDQo+ID4NCj4gPiArICAg ICAgICNBbGwgb3Bjb2RlcyBpbiB0aGUgcm93IDB4ZjMqIHByZWZpeGVkIFJFWDIgYXJlIGlsbGVn YWwuDQo+ID4gKyAgICAgICB7cmV4Mn0gd3Jtc3INCj4gPiArICAgICAgIHtyZXgyfSByZHRzYw0K PiA+ICsgICAgICAge3JleDJ9IHJkbXNyDQo+ID4gKyAgICAgICB7cmV4Mn0gc3lzZW50ZXINCj4g PiArICAgICAgIHtyZXgyfSBzeXNleGl0bA0KPiA+ICsgICAgICAge3JleDJ9IHJkcG1jDQo+IA0K PiBUaGV5IHNob3VsZCBhbGwgc3RheS4gQnV0IGFzIHRvIG15IGNvbW1lbnQ6IFRoZXJlJ3Mgbm8g dXNlIG9mIGFueSBlR1BSIGhlcmUuIElmDQo+IHlvdSB3YW50IHRvIGFidXNlIHRoYXQgZnVuY3Rp b24gYW5kIGlmIHRoZXJlJ3Mgbm8gYmV0dGVyIGRlc2NyaXB0aXZlIG5hbWUgZm9yIGl0LA0KPiB0 aGVuIG9uY2UgYWdhaW4gYXQgbGVhc3QgYSBjb21tZW50IGlzIG5lZWRlZC4NCj4gKENvbnNpZGVy aW5nIHRoaXMsIHRoZSBhdHRyaWJ1dGUncyBuYW1lIE5vRWdwciBpcyBwcm9iYWJseSBhbHNvIG1p c2xlYWRpbmcgaW4NCj4gdGhlIGNhc2VzIGhlcmUsIGkuZS4gd2hlbiB0aGVyZSBhcmUgbm8gb3Bl cmFuZHMuIEhlbmNlLCBpZiBub3QgdG8gYmUgcmVuYW1lZCwNCj4gcmVxdWlyZXMgeWV0IGFub3Ro ZXIgY29tbWVudCBpbiBpMzg2LW9wYy5oLikNCj4gDQpUaGlzIHF1ZXN0aW9uIGFsc28gY29uZnVz ZWQgbWUgLCBzb21lIGluc3RydWN0aW9ucyBvbmx5IHN1cHBvcnQgQWNjIHJlZ2lzdGVyLCBidXQg d2UgbmVlZCB0byBhZGQgTm9FZ3ByIGZvciB0aGVtLCB0aGlzIHNlZW1zIGEgYml0IHN0cmFuZ2Uu IGlmIHdlIHVzZSBOb1JleDIgLCBpdCBkb2Vzbid0IGZpdCB0aGUgdmV4IGFuZCBldmV4IGluc3Ry dWN0aW9ucyBlaXRoZXIuIFNvIEkgd2lsbCBhZGQgY29tbWVudHMgdG8gaXQgZm9yIG5vdy4NCg0K KyAgICAgICAgIC8qIFdoZW4gdGhlcmUgYXJlIG5vIG9wZXJhbmRzLCB3ZSBzdGlsbCBuZWVkIHRv IHVzZSB0aGUNCisgICAgICAgICAgICBjaGVja19FZ3ByT3BlcmFuZHMgZnVuY3Rpb24gdG8gY2hl Y2sgd2hldGhlciB7cmV4Mn0gaXMgdmFsaWQuICAqLw0KICAgICAgICAgIGlmIChWRVhfY2hlY2tf ZW5jb2RpbmcgKHQpIHx8IGNoZWNrX0VncHJPcGVyYW5kcyAodCkpDQoNCi0gIC8qIGVncHJzIChy MTYtcjMxKSBvbiBpbnN0cnVjdGlvbiBpbGxlZ2FsLiAgKi8NCisgIC8qIGVncHJzIChyMTYtcjMx KSBvbiBpbnN0cnVjdGlvbiBpbGxlZ2FsLiBXZSBhbHNvIHVzZSBpdCB0byBqdWRnZQ0KKyAgICAg d2hldGhlciB0aGUgaW5zdHJ1Y3Rpb24gc3VwcG9ydHMgcHNldWRvLXByZWZpeCB7cmV4Mn0uICAq Lw0KICAgTm9FZ3ByLA0KDQo+ID4+PiBAQCAtMTQxMzEsNiArMTQyNTgsMTMgQEAgc3RhdGljIGJv b2wgY2hlY2tfcmVnaXN0ZXIgKGNvbnN0IHJlZ19lbnRyeQ0KPiAqcikNCj4gPj4+ICAJaS52ZWNf ZW5jb2RpbmcgPSB2ZXhfZW5jb2RpbmdfZXJyb3I7DQo+ID4+PiAgICAgIH0NCj4gPj4+DQo+ID4+ PiArICBpZiAoci0+cmVnX2ZsYWdzICYgUmVnUmV4MikNCj4gPj4+ICsgICAgew0KPiA+Pj4gKyAg ICAgIGlmICghY3B1X2FyY2hfZmxhZ3MuYml0ZmllbGQuY3B1YXB4X2YNCj4gPj4+ICsJICB8fCBm bGFnX2NvZGUgIT0gQ09ERV82NEJJVCkNCj4gPj4+ICsJcmV0dXJuIGZhbHNlOw0KPiA+Pj4gKyAg ICB9DQo+ID4+DQo+ID4+IFBsZWFzZSBmb2xkIHRoZSB0d28gaWYoKXMgaW50byBvbmUgKHVubGVz cyBvZiBjb3Vyc2UgeW91IGtub3cgdGhhdA0KPiA+PiB0aGUgb3V0ZXIgb25lIGlzIGdvaW5nIHRv IGJlIGV4dGVuZGVkIGluIGEgc3Vic2VxdWVudCBwYXRjaCkuDQo+ID4+DQo+ID4NCj4gPiBZZXMs IG90aGVyIGNvZGUgd2lsbCBiZSBhZGRlZCBpbiB0aGUgb3V0ZXIgaWYgd2l0aCBwYXRjaDIvOC4N Cj4gDQo+IEhtbSwgeW91IGFnYWluIHNheSBwYXRjaCAyLzgsIHlldCB0aGF0IHBhdGNoIGluIHRo aXMgc2VyaWVzIGNsZWFybHkgZG9lc24ndCBkbw0KPiBhbnl0aGluZyBsaWtlIHRoYXQuDQo+IA0K DQpJdCBzaG91bGQgYmUgcGF0Y2ggMy84Lg0KDQo+ID4+PiAtLS0gYS9nYXMvdGVzdHN1aXRlL2dh cy9pMzg2L2lscDMyL3g4Ni02NC1vcGNvZGUtaW52YWwtaW50ZWwuZA0KPiA+Pj4gKysrIGIvZ2Fz L3Rlc3RzdWl0ZS9nYXMvaTM4Ni9pbHAzMi94ODYtNjQtb3Bjb2RlLWludmFsLWludGVsLmQNCj4g Pj4+IEBAIC0xMSwxMSArMTEsMTEgQEAgRGlzYXNzZW1ibHkgb2Ygc2VjdGlvbiAudGV4dDoNCj4g Pj4+ICBbIAldKlthLWYwLTldKzoJMzcgICAgICAgICAgICAgICAgICAgCVwoYmFkXCkNCj4gPj4+ DQo+ID4+PiAgMCsxIDxhYWQwPjoNCj4gPj4+IC1bIAldKlthLWYwLTldKzoJZDUgICAgICAgICAg ICAgICAgICAgCVwoYmFkXCkNCj4gPj4+ICtbIAldKlthLWYwLTldKzoJZDUgICAgICAgICAgICAg ICAgICAgCXJleDINCj4gPj4+ICBbIAldKlthLWYwLTldKzoJMGEgICAgICAgICAgICAgICAgICAg CS5ieXRlIDB4YQ0KPiA+Pj4NCj4gPj4+ICAwKzMgPGFhZDE+Og0KPiA+Pj4gLVsgCV0qW2EtZjAt OV0rOglkNSAgICAgICAgICAgICAgICAgICAJXChiYWRcKQ0KPiA+Pj4gK1sgCV0qW2EtZjAtOV0r OglkNSAgICAgICAgICAgICAgICAgICAJcmV4Mg0KPiA+Pj4gIFsgCV0qW2EtZjAtOV0rOgkwMiAg ICAgICAgICAgICAgICAgICAJLmJ5dGUgMHgyDQo+ID4+Pg0KPiA+Pj4gIDArNSA8YWFtMD46DQo+ ID4+PiAtLS0gYS9nYXMvdGVzdHN1aXRlL2dhcy9pMzg2L2lscDMyL3g4Ni02NC1vcGNvZGUtaW52 YWwuZA0KPiA+Pj4gKysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvaTM4Ni9pbHAzMi94ODYtNjQtb3Bj b2RlLWludmFsLmQNCj4gPj4+IEBAIC0xMSwxMSArMTEsMTEgQEAgRGlzYXNzZW1ibHkgb2Ygc2Vj dGlvbiAudGV4dDoNCj4gPj4+ICBbIAldKlthLWYwLTldKzoJMzcgICAgICAgICAgICAgICAgICAg CVwoYmFkXCkNCj4gPj4+DQo+ID4+PiAgMCsxIDxhYWQwPjoNCj4gPj4+IC1bIAldKlthLWYwLTld KzoJZDUgICAgICAgICAgICAgICAgICAgCVwoYmFkXCkNCj4gPj4+ICtbIAldKlthLWYwLTldKzoJ ZDUgICAgICAgICAgICAgICAgICAgCXJleDINCj4gPj4+ICBbIAldKlthLWYwLTldKzoJMGEgICAg ICAgICAgICAgICAgICAgCS5ieXRlIDB4YQ0KPiA+Pj4NCj4gPj4+ICAwKzMgPGFhZDE+Og0KPiA+ Pj4gLVsgCV0qW2EtZjAtOV0rOglkNSAgICAgICAgICAgICAgICAgICAJXChiYWRcKQ0KPiA+Pj4g K1sgCV0qW2EtZjAtOV0rOglkNSAgICAgICAgICAgICAgICAgICAJcmV4Mg0KPiA+Pj4gIFsgCV0q W2EtZjAtOV0rOgkwMiAgICAgICAgICAgICAgICAgICAJLmJ5dGUgMHgyDQo+ID4+Pg0KPiA+Pj4g IDArNSA8YWFtMD46DQo+ID4+DQo+ID4+IFRoZXNlIGV4cGVjdGF0aW9ucyBtYXRjaCB0aGUgb25l cyBvZiB0aGUgc2FtZSB0ZXN0IGluIHRoZSBwYXJlbnQgZGlyZWN0b3J5Lg0KPiA+PiBIZW5jZSBp bnN0ZWFkIG9mIGFkanVzdGluZyBlYWNoIGluIGJvdGggcGxhY2VzLCBwbGVhc2UgaGF2ZSB0aGUg b25lcw0KPiA+PiBoZXJlIHJlZmVyZW5jZSB0aGUgcGFyZW50IGRpcmVjdG9yeSBmaWxlcy4NCj4g Pj4NCj4gPg0KPiA+IFRoZXkgYXJlIHVzZWQgdG8gdGVzdCBpbGxlZ2FsIG9wY29kZXMgZm9yIHg4 Ni02NC4gU2luY2UgRDUgbm93IG1ha2VzIHNlbnNlLA0KPiB0aGVzZSB0d28gdGVzdCBjYXNlcyB3 ZXJlIHJlbW92ZWQuDQo+ID4NCj4gPiAjIEFsbCB0aGUgZm9sbG93aW5ncyBhcmUgaWxsZWdhbCBv cGNvZGVzIGZvciB4ODYtNjQuDQo+ID4gYWFkMDoNCj4gPiAgICAgICAgIGFhZA0KPiA+IGFhZDE6 DQo+ID4gICAgICAgICBhYWQgJDINCj4gDQo+IFJpZ2h0LCBidXQgaG93IGRvZXMgdGhpcyByZWxh dGUgdG8gbXkgcmVxdWVzdCB0byBzaW1wbHkgZm9sZCB0aGUgZXhwZWN0YXRpb25zDQo+IGhlcmUg d2l0aCB0aGF0IG9mIHRoZSBzYW1lIHRlc3QgaW4gdGhlIHBhcmVudCBkaXJlY3Rvcnk/DQo+IChZ b3UnbGwgZmluZCB2YXJpb3VzIGV4YW1wbGVzIHVuZGVyIGlscDMyLyB3aGVyZSBJJ3ZlIGRvbmUg c3VjaCBmb2xkaW5nIGFscmVhZHksDQo+IHdoZW5ldmVyIEkgaGFkIHRvIHRvdWNoIGJvdGggaW5z dGFuY2VzIGFueXdheS4pDQo+IA0KDQpPaCwgZ290IGl0Lg0KDQo+ID4+PiBAQCAtMTAwOCwxMCAr MTAxMiwzNSBAQCBnZXRfZWxlbWVudF9zaXplIChjaGFyICoqb3BuZCwgaW50IGxpbmVubykNCj4g Pj4+ICAgIHJldHVybiBlbGVtX3NpemU7DQo+ID4+PiAgfQ0KPiA+Pj4NCj4gPj4+ICtzdGF0aWMg Ym9vbA0KPiA+Pj4gK2lmX2VudHJ5X25lZWRzX3NwZWNpYWxfaGFuZGxlIChjb25zdCB1bnNpZ25l ZCBsb25nIGxvbmcgb3Bjb2RlLA0KPiA+Pj4gK3Vuc2lnbmVkDQo+ID4+IGludCBzcGFjZSwNCj4g Pj4+ICsJCQkgICAgICAgY29uc3QgY2hhciAqY3B1X2ZsYWdzKQ0KPiA+Pj4gK3sNCj4gPj4+ICsg IC8qIFByZWZpeGluZyBYU0FWRSogYW5kIFhSU1RPUiogaW5zdHJ1Y3Rpb25zIHdpdGggUkVYMiB0 cmlnZ2Vycw0KPiA+Pj4gKyNVRC4gICovDQo+ID4+PiArICBpZiAoc3RyY21wIChjcHVfZmxhZ3Ms ICJYU0FWRVMiKSA+PSAwDQo+ID4+PiArICAgICAgfHwgc3RyY21wIChjcHVfZmxhZ3MsICJYU0FW RUMiKSA+PSAwDQo+ID4+PiArICAgICAgfHwgc3RyY21wIChjcHVfZmxhZ3MsICJYc2F2ZSIpID49 IDANCj4gPj4+ICsgICAgICB8fCBzdHJjbXAgKGNwdV9mbGFncywgIlhzYXZlb3B0IikgPj0gMA0K PiA+Pg0KPiA+PiBVcG9uIGZ1cnRoZXIgdGhvdWdodCBmb3IgdGhlc2UgKGFuZCBtYXliZSBldmVu IC4uLg0KPiA+Pg0KPiA+Pj4gKyAgICAgIHx8ICFzdHJjbXAgKGNwdV9mbGFncywgIjNkbm93IikN Cj4gPj4+ICsgICAgICB8fCAhc3RyY21wIChjcHVfZmxhZ3MsICIzZG5vd0EiKSkNCj4gPj4NCj4g Pj4gLi4uIGZvciB0aGVzZSwgYnV0IHNlZSBhbHNvIGJlbG93KSBpdCBtaWdodCBiZSBiZXR0ZXIg dG8gYWRkIHRoZQ0KPiA+PiBhdHRyaWJ1dGUgcmlnaHQgaW4gdGhlIG9wY29kZSB0YWJsZS4NCj4g Pj4NCj4gPj4gQXMgdG8gdGhlIDNkbm93IGluc25zIC0gSSB0aGluayBJJ2QgbGlrZSB0byByZXZp c2UgbXkgZWFybGllcg0KPiA+PiBzdWdnZXN0aW9uIHRvIGFsc28gdGFnIHRob3NlLiBMaWtlIGUu Zy4gRlBVIGluc25zIHRoZXkncmUgcHJldHR5DQo+ID4+IG5vcm1hbCBHUFItd2lzZSwgc28gYWxs b3dpbmcgdGhlbSB0byBiZSB1c2VkIGxpa2UgdGhhdCB3b3VsZCBhcHBlYXINCj4gPj4gb25seSBj b25zaXN0ZW50LiBPdGhlcndpc2UsIGlmIHdlIHdlcmUgY29uY2VybmVkIG9mIEFNRCBleHRlbnNp b25zIGluDQo+ID4+IGdlbmVyYWwsIFNTRTRhIGluc25zIChhbmQgbWF5YmUgZnVydGhlcg0KPiA+ PiBvbmVzKSB3b3VsZCBhbHNvIG5lZWQgZXhjbHVkaW5nLiAoQWRkaXRpb25hbGx5IHJlY2FsbCB0 aGF0IHRoZXJlJ3MgYW4NCj4gPj4gb3ZlcmxhcCBiZXR3ZWVuIDNkbm93YSBhbmQgU1NFLCB3aGlj aCB3b3VsZCByZXN1bHQgaW4gYW5vdGhlcg0KPiA+PiBbYXBwYXJlbnRdIGluY29uc2lzdGVuY3kg d2hlbiBleGNsdWRpbmcgM2Rub3cgaW5zbnMgaGVyZS4pDQo+ID4+DQo+ID4NCj4gPiBJIHNlZSwg Zm9yIGV4YW1wbGUgIEkgdGhpbmsgSSBuZWVkIHRvIHNwbGl0IHRoaXMgdGFibGUgaW50byB0d28g cGFydHMsIG9uZSBpcyBmb3INCj4gU1NFIGFuZCBvbmUgaXMgZm9yIDNkbm93QSwgdGhlbiBhZGQg bm9lZ3ByIHRvIHRoZSBTU0Ugb25lLCByaWdodD8NCj4gPiBwZXh0cncsIDB4ZmM1LCBTU0V8M2Ru b3dBLA0KPiA+IE1vZHJtfElnbm9yZVNpemV8Tm9fYlN1ZnxOb193U3VmfE5vX3NTdWZ8Tm9SZXg2 NCwgeyBJbW04LA0KPiBSZWdNTVgsDQo+ID4gUmVnMzJ8UmVnNjQgfQ0KPiANCj4gSSdtIGFmcmFp ZCBJIGRvbid0IHVuZGVyc3RhbmQgdGhlIHF1ZXN0aW9uLiBBbGwgSSd2ZSBhc2tlZCBmb3IgaXMg dGhhdCB0aGUgc3BlY2lhbA0KPiB0cmVhdG1lbnQgb2YgM2Rub3cgaW5zbnMgYmUgcmVtb3ZlZCBh Z2Fpbi4gVW5sZXNzIHlvdSB3YW50IHRvIHNwZWNpYWwtY2FzZQ0KPiBmdXJ0aGVyIGluc25zOyBp dCdzIG5vdCByZWFsbHkgY2xlYXIgdG8gbWUgd2hhdCdzIGJlc3QsIGFzIGJvdGggYXBwcm9hY2hl cyBoYXZlDQo+IG5vdGljYWJsZSBkb3duc2lkZXMgKGVpdGhlciB3ZSBhbGxvdyB0byBlbmNvZGUg c29tZXRoaW5nIHdoaWNoIG1heSBuZXZlcg0KPiBiZWNvbWUgdmFsaWQsIG9yIHdlIGRpc2FsbG93 IHNvbWV0aGluZyB3aGljaCBtYXkgYmVjb21lIHZhbGlkKS4NCj4gDQo+IEluIGFueSBldmVudCBh ZGRpbmcgTm9FZ3ByIHRvIGFueSBTU0UgaW5zbiBzb3VuZHMgd3JvbmcgdG8gbWUgLSBhaXVpIHRo ZXkgY2FuDQo+IGFsbCBiZSBlbmNvZGVkIHdpdGggUkVYMi4NCj4gDQpJIG5lZWQgdG8gY29ycmVj dCBpdDogIFRoZXJlIGFyZSBzb21lIGluc3RydWN0aW9ucyB0YWJsZSBwcmVzZW50IGJvdGggU1NF IGFuZCBBTUQgaW5zdHJ1Y3Rpb25zLiBJIG5lZWQgdG8gc3BsaXQgdGhlbSBmaXJzdCBhbmQgdGhl biBhZGQgTm9FZ3ByIHRvIEFNRCBpbnN0cnVjdGlvbnMuDQpBbm90aGVyIHBvaW50IGlzIHRoYXQg d2UgaGF2ZSBub3Qgc3BsaXQgdGhlIGNvbW1vbiBpbnN0cnVjdGlvbnMgb2YgQU1EIGFuZCBJbnRl bCwgc28ganVzdCBhZGRpbmcgTm9FZ3ByIHRvIDNkbm93QSBhbmQgM2Rub3cgZG9lcyBub3Qgc2Vl bSB0byBtYWtlIG11Y2ggc2Vuc2UuDQoNCkRvIHlvdSB3YW50IG1lIGFsc28gdG8gcmVtb3ZlIHRo aXMgcGFydCAgYW5kIGFkZCAgTm9FZ3ByIGluIGluc24gdGFibGU/DQo+ID4+PiArICAvKiBQcmVm aXhpbmcgWFNBVkUqIGFuZCBYUlNUT1IqIGluc3RydWN0aW9ucyB3aXRoIFJFWDIgdHJpZ2dlcnMN Cj4gPj4+ICsjVUQuICAqLw0KPiA+Pj4gKyAgaWYgKHN0cmNtcCAoY3B1X2ZsYWdzLCAiWFNBVkVT IikgPj0gMA0KPiA+Pj4gKyAgICAgIHx8IHN0cmNtcCAoY3B1X2ZsYWdzLCAiWFNBVkVDIikgPj0g MA0KPiA+Pj4gKyAgICAgIHx8IHN0cmNtcCAoY3B1X2ZsYWdzLCAiWHNhdmUiKSA+PSAwDQo+ID4+ PiArICAgICAgfHwgc3RyY21wIChjcHVfZmxhZ3MsICJYc2F2ZW9wdCIpID49IDANCg0KVGhhbmtz LA0KTGlsaS4NCg==