From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.31]) by sourceware.org (Postfix) with ESMTPS id C28843858D37 for ; Sun, 22 Oct 2023 14:05:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C28843858D37 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 C28843858D37 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=134.134.136.31 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1697983548; cv=pass; b=so4r9MFn1RtwMR4iAsVu4JT5L+skR6qKtrP77P4JrvP6MK3dTD3/Y6REYeLFqDDs4FsealhQjDv18dpLZHgkTE/7FsydbNAj+Vm8nZMjK0+8vzvCHpYbXucOH7sPd/mlfBBJqxHamIVM4IWMW8ETakEKkTDlsI35tqktW/2yl8w= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1697983548; c=relaxed/simple; bh=tBR4f2FhcPvUrEADKmCxxVcMzBJYQ+zw0/Cl/oVhk50=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=HbU8uIkGABgrj2iNw5v8cTnxtQNa+D+lZiZeBMrShB4uq7E67ss0yEOhYRRBKJ+TdNI3mJ/CkQh/RAQDGWVAH69qgvRswtdypsrBUnp0WaIeyqEII4BYJWlygU0LjvR6sEvGJkwHOdIIsgj5UYer5V3oMKQUoK1Rdk1dS5EJwpo= 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=1697983545; x=1729519545; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=tBR4f2FhcPvUrEADKmCxxVcMzBJYQ+zw0/Cl/oVhk50=; b=nYgIhSXCTSqYsGNaGg8QNRhoLM3LXTSbeSAK9DMggg5Qotxhgom8zZDi zKy548w6Cjp+AruJ1zJ2ZG5eqcZGz5w9VKLhT6/ecazewUyFYAmS7QYGg rlfd+kTU7Qf72WWaEU0ycIMykXkxV0shO883EBtbwQ25vKqCAlKp0wdHA +naLHPq4qRulmOrgxip8yNlEhsEZwdtOJLq5hEwXXVl60blY9Ks5FtuRS L6OjkvLIAtKk8G1/sgER7OrR32r+qReuW2UpoWhxnJLCIVLP20ZIGfRBy BAFINIVfD2x6jDWeoricT+tLSKjtZqn0RUd1Det8l+eMcoCe/4U0q7iAH w==; X-IronPort-AV: E=McAfee;i="6600,9927,10870"; a="450930142" X-IronPort-AV: E=Sophos;i="6.03,242,1694761200"; d="scan'208";a="450930142" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Oct 2023 07:05:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10870"; a="792868819" X-IronPort-AV: E=Sophos;i="6.03,242,1694761200"; d="scan'208";a="792868819" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga001.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 22 Oct 2023 07:05:44 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Sun, 22 Oct 2023 07:05:43 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Sun, 22 Oct 2023 07:05:43 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.40) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.32; Sun, 22 Oct 2023 07:05:43 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DP4ooVxNCmJ131SGt+W/3ACfes/9MlFkUO9hn2dli4SnXIryi8NKxaug0mWXBqowXYyxS8xtYaJV0mof29+u7lKokHE+beBt2bb8cKfs5ZDjVQ2j+kJ99/l0Ax3lcJ7g2NlwgE5Dq1hYup2DpOCs9QJX85pLqWUF+ojlIuuhWlHAsYD38R7bt+2xTWqX0cABLnrKbXEL/JOvipvE2zRFSAlAdlmfMUS3ofalk5JEsG0o+drjlyWbFWONieAbuJO3gNDS4YWlp0QfTKNlDnnMhArvZwGSZUexz1afkiP0hQuja+VxkaHz44uhswMWFEr3jCaEocUN27PDuuJj58/B5w== 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=tBR4f2FhcPvUrEADKmCxxVcMzBJYQ+zw0/Cl/oVhk50=; b=l4UNHNBd6asMakc6nbaiSU2p2oROZFzVDM9vwfs+pvL3NrxTgYmUtFKyCnCTI2k6JSHw8/D6l13Dru/f9kgboKr0gRt9jnxoRaF3SCl9JUJi/XDqla11yhE2vkTVDIPmqcYMLIS3M2ziTm6EohirPGYXY2WymSsPtVpCXQS4zQfPzPMDHkDBLIUCQXFW9AGCqAtpQWEoKbQlBGc7tj/Ss0ez5SqlGjPCa1KZ3txfcFQFWZNoezUBuGkd5ACvUgP4SiCVyUTd3teqUqoG9Q//X7dAcsUZpBHDFVBVAAAsb5dbj0OKTj9p1cnkSP0oEYAJJeGXlLiMLnA13o+eb1XvKg== 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 BN9PR11MB5241.namprd11.prod.outlook.com (2603:10b6:408:132::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.29; Sun, 22 Oct 2023 14:05:35 +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.6907.025; Sun, 22 Oct 2023 14:05:34 +0000 From: "Cui, Lili" To: "Beulich, Jan" CC: "Lu, Hongjiu" , "Kong, Lingling" , "binutils@sourceware.org" Subject: RE: [PATCH 4/8] Support APX NDD Thread-Topic: [PATCH 4/8] Support APX NDD Thread-Index: AQHZ6w5OzKT7byf1I0SVEoilOOE5orAuzD4AgCKtDIA= Date: Sun, 22 Oct 2023 14:05:34 +0000 Message-ID: References: <20230919152527.497773-1-lili.cui@intel.com> <20230919152527.497773-5-lili.cui@intel.com> <9d317289-6d83-3f9b-ef34-af574e798a3f@suse.com> In-Reply-To: <9d317289-6d83-3f9b-ef34-af574e798a3f@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_|BN9PR11MB5241:EE_ x-ms-office365-filtering-correlation-id: 668aba01-26d2-4bed-b214-08dbd307f5e5 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: eVj0OXjImP/wqabmI8YYwZZsdcgWA499Sm7mfIm703/eJueOWoU71cpZzYbcIDazpjEtqcJMkf3M0pqxvtJ69yk5417PzUlKgU56XKDhl744TsSlpnYwv5cMvMv/B+PQYn6rgNbNgQ6549uCiDCKwAdJ1oWwRij4skBJFhVVs61O3l6uyj91mxmAJkRdzhievfujSHTWmYI5EHvXJMDPVIL7dtRab9aW/sMt1b1kZyvxADKMubsZ/vQf/kXNqoth1DzNzMP3HwTTqzvC4CPcdgdpwkQGbAM5FkkGR8loynevvRc4WMke5yRo9kUdeDTCphWyewMB3cBF3ew5YfabpxtwTlIrttx5Wsx/cLwpVxqEENPqrNauAeaLrPQpJY0V2YkHro3pMnulmH3C+94GZTs3xmo4DPFgAQzDH6F9REAlGVRKFVXb3RaF99QsfR16FsOauDLmqSYK/+JDNtpk93gQ1D2l9TKbn07FdHlGvDc2/0k4nNvc7oHjfDShsnA1Cp3rYMQjp8VZ7OlrMq0IYjXf66ON54zKUfSz+TBHxkNHdS59RLeeCSz9oHLwCNNoMgg4lK8rAvu+T8UxCSj82jGcYd/7ZOfFZFaGhrHByO1/69PcEoPkZh2GKSq3E6WO 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)(346002)(136003)(376002)(39860400002)(396003)(366004)(230922051799003)(1800799009)(186009)(451199024)(64100799003)(38070700009)(38100700002)(2906002)(55016003)(30864003)(41300700001)(86362001)(52536014)(5660300002)(8676002)(8936002)(33656002)(4326008)(7696005)(6506007)(478600001)(71200400001)(122000001)(66476007)(82960400001)(6916009)(66946007)(316002)(76116006)(64756008)(66446008)(66556008)(54906003)(83380400001)(9686003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NVNsOHJxekJhK3A0VGN5R3JYUnRQRVROQzI4RFNYbFc3NHpydkpkQWVwS2RQ?= =?utf-8?B?Y3dJNlQ2LzRTZEhEbmlJMkprd3dOMzMyQTYvYXl3akFSWUhVcnFDWllqNXNk?= =?utf-8?B?QlZtOWJRRWhpVHhSS3B4RklEaXVPM1I2bnA2QUVQcE0rVzJDbjRNczN3RFZl?= =?utf-8?B?VXNMcUlBOUZsc2orVWxvcEo3TmRwb2w2dURRMlh6K2pjTmpIOFh2NEFzK0Q2?= =?utf-8?B?aXhiWXhuOERnSlVMWlhDdkJtdnJoWnI4eVpheVgxY0wwaCt5NVdBcG4zdi9q?= =?utf-8?B?aVZrNTdLUmxIdlI5Umx3cyt2YVcvRGJYeVV3Z2ptV1ZwSDFGVTA1VW5qRTF2?= =?utf-8?B?VjhZMVpGVkFldHBwczNSSXVxb24yN3lXaE9nS2IvSS92SFFzYlNrRlJYbzJU?= =?utf-8?B?WlQzejFoRkZzT2pxb3JhRGZZMyt1SEQ3UkJsa01VbFZldDFUR1pWZFhXN0M0?= =?utf-8?B?L2tmUkQ1K2w2c3Z0Uk5iaDNwUkYxc1R6SCszWkd5UUNzUmlOR1V1ZERwcWhk?= =?utf-8?B?dXZlZUZzWUJ4NjFwQVBWK09IRWZSTXRBQWkzcU5rQ3QxemJjMzJwSkI4K1V4?= =?utf-8?B?NzN1U0xET25IcjQ0V3d6QklyelNlVzFEOTRUbGQ3ejF6N3VyNnUwS3Vzbjdq?= =?utf-8?B?a3FzVDVTdmRrRWFPRnNJRjZVV3JVOXc4NzBuM2Fvblppd1l0TEZWWmdGTC9M?= =?utf-8?B?TnZTKzlsREEyS3JaV0xUYXArMTdxamd2UjVYcEtJWjFQcC9EOW5CR3IzV2Qw?= =?utf-8?B?ZDZlM3llUWJKV1gvRDhGbWFSS3hZVUhZS0h3M3V2Z1lhVEJFMnhWNmpDY1Ba?= =?utf-8?B?d2JUTGRJM0UrQTFZWXVQLzE3L2M2eE41U2wvS3VnazJEYWpFVWNjZ3RyNkZU?= =?utf-8?B?M1JrTmZpeEh4QkpLNGZUa1FGNU5wTk5FV1gxOXdOOVVjMDdVMVdNQy9CUVpq?= =?utf-8?B?VGM2WDkwWUNUVGUvMzk4TW1Wa1RSdXpJMXdzV2xXc0NlVWFlaTltcVRZeUg3?= =?utf-8?B?ZTdrb0p6YVArRkRYcUtEK1lKS0djYTcreTVrTUJvRGw3cmxtWUwzZzhYYnNV?= =?utf-8?B?SXFMUG5NQWJGL0Q4U3AzRWhxZVJjdXB0bzhJekVNREc5MlkxVW9GaitBSDdC?= =?utf-8?B?VHFmeVJRUXNBd0pGY0ZEV1hKb0d3TVFXY0J6L0J2eXB5Z25FaGk4ZGEyUmlE?= =?utf-8?B?YTVUUE1RczlZQ3laakVEUGdJRjZKbnFYTFBEbVpyWFdYajZwY2FwK0JENUov?= =?utf-8?B?TnMrclExck9Sdlc4TjNGQWcvMVlMcWJEYTI2NGlIZmh2ZVRlYnVMK3Izcm1z?= =?utf-8?B?NmZ4VTh4R2MzeUlsZDlzb1JwZGc5TGV3S3BKS1BuVEs5UlQ3SlBnTjVFNWNp?= =?utf-8?B?cm8wU3NCU1ltSmp1WVFrWU5yem9jUVJQRTlTd2p0U2xhWGxTNjlXa3FVbUlx?= =?utf-8?B?VDkwemh0UFJPTGhUZ01yWGIrQ282L2hRQmlFdXd2ZDAvNjZCRll4bkFCaHdG?= =?utf-8?B?ekNRWGVTaGdqUHI3YWR0amZ2YktUR1ZqR29mR1lGem5qbmdreFNPZ2JDZ0RN?= =?utf-8?B?dllKOWIxbFg2UXM3YkdoanU2RkJNL1FteWZFZ3VQbkx2VnZPSXBkWUNpVUpt?= =?utf-8?B?N0ZKRzAyVU9mSDJHRklRSDNxeTFWZ3p3SXcreDFRUk41ZmV2aU1ndHhiN2l6?= =?utf-8?B?MW5iS2loQks2c0JTL3lwb1pmYWNPUHZsaWRBczZabkZJRnUyWENuVnNpRGlK?= =?utf-8?B?L21JdVl4dm9EKzc3d0FUYnp5ekpxUHo1M2hxdEdIVlFRUTJVd1FOUFRVVE9H?= =?utf-8?B?RDNYcTAvekpKUFVvcGNQV2krcHZoOENyMm5DSG5vTy9TQmMyTDNQU0NaT2o5?= =?utf-8?B?OUhHUkw3bm9adDlNQm1aZEJwUGlSeTdRUTFZQWNFNHgzVkNUMHE0Nm1wZnRW?= =?utf-8?B?YVhLZk1vcG5nRU9rQkx6MitKanE3bzh3REtZLzB1MFkrR0JqV1FzZUljblEy?= =?utf-8?B?M0orODBDSTNjTFhVNlRiY2laWWZmTWc1SXJlTmdWdC9XMFNoM0VwR3JrSDB5?= =?utf-8?B?cWdEV3RYa0xpWmZneXJSdUtibFhoUlpNM2ZzRmJjemRZTFk4eFowcnhlWnVM?= =?utf-8?B?bmQ0NUt5c0tER3YrZEFJUHoxY2dCa2JRK21QbFlyVUF1eDFBMWQ1NnAwZ2NS?= =?utf-8?Q?VkaL4Mkev3dYlLatbJD1+lHMm6CbnNbsxm7/JIs3Px4U?= 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: 668aba01-26d2-4bed-b214-08dbd307f5e5 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Oct 2023 14:05:34.6558 (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: w8Sccxa4amiyp+txUkAyECVsL24F541YWO7NBmp7QHb/LqowEi9PIW12Ya3g3o7zYD41DgBioHHPWmw68OSDmQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR11MB5241 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-11.4 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: DQoNCj4gPiAgZ2FzL2NvbmZpZy90Yy1pMzg2LmMgICAgICAgICAgICAgICAgICAgIHwgIDgwICsr KysrKysrLS0tLQ0KPiA+ICBnYXMvdGVzdHN1aXRlL2dhcy9pMzg2L3g4Ni02NC1hcHgtbmRkLmQg fCAxNjUNCj4gPiArKysrKysrKysrKysrKysrKysrKysrKysgIGdhcy90ZXN0c3VpdGUvZ2FzL2kz ODYveDg2LTY0LWFweC1uZGQucyB8DQo+ID4gMTU2ICsrKysrKysrKysrKysrKysrKysrKysgIGdh cy90ZXN0c3VpdGUvZ2FzL2kzODYveDg2LTY0LXBzZXVkb3MuZCB8DQo+ID4gNDIgKysrKysrICBn YXMvdGVzdHN1aXRlL2dhcy9pMzg2L3g4Ni02NC1wc2V1ZG9zLnMgfCAgNDMgKysrKysrDQo+ID4g IGdhcy90ZXN0c3VpdGUvZ2FzL2kzODYveDg2LTY0LmV4cCAgICAgICB8ICAgMSArDQo+ID4gIG9w Y29kZXMvaTM4Ni1kaXMtZXZleC1wcmVmaXguaCAgICAgICAgICB8ICAgNCArLQ0KPiA+ICBvcGNv ZGVzL2kzODYtZGlzLWV2ZXgtcmVnLmggICAgICAgICAgICAgfCAxMjMgKysrKysrKysrKysrKysr KysrDQo+ID4gIG9wY29kZXMvaTM4Ni1kaXMtZXZleC5oICAgICAgICAgICAgICAgICB8IDEyNCAr KysrKysrKystLS0tLS0tLS0NCj4gPiAgb3Bjb2Rlcy9pMzg2LWRpcy5jICAgICAgICAgICAgICAg ICAgICAgIHwgIDQ3ICsrKysrKy0NCj4gPiAgb3Bjb2Rlcy9pMzg2LW9wYy5oICAgICAgICAgICAg ICAgICAgICAgIHwgICAxICsNCj4gPiAgb3Bjb2Rlcy9pMzg2LW9wYy50YmwgICAgICAgICAgICAg ICAgICAgIHwgIDY3ICsrKysrKysrKysNCj4gPiAgMTIgZmlsZXMgY2hhbmdlZCwgNzYyIGluc2Vy dGlvbnMoKyksIDkxIGRlbGV0aW9ucygtKSAgY3JlYXRlIG1vZGUNCj4gPiAxMDA2NDQgZ2FzL3Rl c3RzdWl0ZS9nYXMvaTM4Ni94ODYtNjQtYXB4LW5kZC5kDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBnYXMvdGVzdHN1aXRlL2dhcy9pMzg2L3g4Ni02NC1hcHgtbmRkLnMNCj4gPg0KPiA+IGRpZmYg LS1naXQgYS9nYXMvY29uZmlnL3RjLWkzODYuYyBiL2dhcy9jb25maWcvdGMtaTM4Ni5jIGluZGV4 DQo+ID4gNDg5MTZiYzM4NDYuLjM4MWUzODliYjA0IDEwMDY0NA0KPiA+IC0tLSBhL2dhcy9jb25m aWcvdGMtaTM4Ni5jDQo+ID4gKysrIGIvZ2FzL2NvbmZpZy90Yy1pMzg2LmMNCj4gPiBAQCAtMjI2 MSw4ICsyMjYxLDkgQEAgb3BlcmFuZF9zaXplX21hdGNoIChjb25zdCBpbnNuX3RlbXBsYXRlICp0 KQ0KPiA+ICAgICAgICB1bnNpZ25lZCBpbnQgZ2l2ZW4gPSBpLm9wZXJhbmRzIC0gaiAtIDE7DQo+ ID4NCj4gPiAgICAgICAgLyogRm9yIEZNQTQgYW5kIFhPUCBpbnNucyBWRVguVyBjb250cm9scyBq dXN0IHRoZSBmaXJzdCB0d28NCj4gPiAtCSByZWdpc3RlciBvcGVyYW5kcy4gICovDQo+ID4gLSAg ICAgIGlmIChpc19jcHUgKHQsIENwdUZNQTQpIHx8IGlzX2NwdSAodCwgQ3B1WE9QKSkNCj4gPiAr CSByZWdpc3RlciBvcGVyYW5kcy4gQW5kIEFQWCBpbnNucyBqdXN0IHN3YXAgdGhlIGZpcnN0IG9w ZXJhbmRzLiAgKi8NCj4gPiArICAgICAgaWYgKGlzX2NwdSAodCwgQ3B1Rk1BNCkgfHwgaXNfY3B1 ICh0LCBDcHVYT1ApDQo+ID4gKwkgIHx8IChpc19jcHUgKHQsQ3B1QVBYX0YpICYmIGkub3BlcmFu ZHMgPT0gMykpDQo+ID4gIAlnaXZlbiA9IGogPCAyID8gMSAtIGogOiBqOw0KPiANCj4gSW4gdGhl IGNvbW1lbnQsIGhvdyBhYm91dCAiQW5kIEFQWF9GIGluc25zIGp1c3Qgc3dhcCB0aGUgdHdvIHNv dXJjZQ0KPiBvcGVyYW5kcywgd2l0aCB0aGUgM3JkIG9uZSBiZWluZyB0aGUgZGVzdGluYXRpb24i Pw0KPg0KIA0KRG9uZS4NCg0KPiBJcyB0aGUgImkub3BlcmFuZHMgPT0gMyIgcGFydCBvZiB0aGUg Y29uZGl0aW9uIHJlYWxseSBuZWVkZWQ/IEkuZS4gYXJlIHRoZXJlIGFueQ0KPiBBUFhfRiBpbnNu cyB3aGljaCBjYW4gbWFrZSBpdCBoZXJlIGJ1dCBtdXN0IG5vdCB0YWtlIHRoaXMgcGF0aD8gQWZh aWN0IDItDQo+IG9wZXJhbmQgaW5zbnMgYXJlIGZpbmUgdG8gZ28gaGVyZSwgYW5kIG1vcmUtdGhh bi0zLW9wZXJhbmQgaW5zbnMgZG9uJ3QgY29tZQ0KPiB3aXRoIHRoZSBEIGF0dHJpYnV0ZS4NCj4g DQpZb3UncmUgcmlnaHQsIGRlbGV0ZWQgImkub3BlcmFuZHMgPT0gMyIuDQoNCj4gQWxzbyAobml0 KSB0aGVyZSdzIGEgbWlzc2luZyBibGFuayBhZnRlciB0aGUgY29tbWEuDQo+IA0KDQpEb25lLg0K DQo+ID4gQEAgLTM4NzYsNiArMzg3Nyw3IEBAIGlzX2FueV9hcHhfZW5jb2RpbmcgKHZvaWQpICB7 DQo+ID4gICAgcmV0dXJuIGkucmV4Mg0KPiA+ICAgICAgfHwgaS5yZXgyX2VuY29kaW5nDQo+ID4g KyAgICB8fCBpLnRtLm9wY29kZV9zcGFjZSA9PSBTUEFDRV9FVkVYTUFQNA0KPiA+ICAgICAgfHwg KGkudmV4LnJlZ2lzdGVyX3NwZWNpZmllcg0KPiA+ICAJJiYgaS52ZXgucmVnaXN0ZXJfc3BlY2lm aWVyLT5yZWdfZmxhZ3MgJiBSZWdSZXgyKTsgIH0gQEAgLTQyMDQsNg0KPiA+ICs0MjA2LDEwIEBA IGJ1aWxkX2xlZ2FjeV9pbnNuc193aXRoX2FweF9lbmNvZGluZyAodm9pZCkNCj4gPiAgICAgIH0N Cj4gPg0KPiA+ICAgIGJ1aWxkX2V2ZXhfaW5zbnNfd2l0aF9leHRlbmRfZXZleF9wcmVmaXggKCk7 DQo+ID4gKw0KPiA+ICsgIC8qIEVuY29kZSB0aGUgTkREIGJpdC4gICovDQo+ID4gKyAgaWYgKGku dmV4LnJlZ2lzdGVyX3NwZWNpZmllcikNCj4gPiArICAgIGkudmV4LmJ5dGVzWzNdIHw9IDB4MTA7 DQo+ID4gIH0NCj4gPg0KPiA+ICBzdGF0aWMgdm9pZA0KPiA+IEBAIC03MzgzLDI2ICs3Mzg5LDMx IEBAIG1hdGNoX3RlbXBsYXRlIChjaGFyIG1uZW1fc3VmZml4KQ0KPiA+ICAJICBvdmVybGFwMSA9 IG9wZXJhbmRfdHlwZV9hbmQgKG9wZXJhbmRfdHlwZXNbMF0sDQo+IG9wZXJhbmRfdHlwZXNbMV0p Ow0KPiA+ICAJICBpZiAodC0+b3Bjb2RlX21vZGlmaWVyLmQgJiYgaS5yZWdfb3BlcmFuZHMgPT0g aS5vcGVyYW5kcw0KPiA+ICAJICAgICAgJiYgIW9wZXJhbmRfdHlwZV9hbGxfemVybyAoJm92ZXJs YXAxKSkNCj4gPiAtCSAgICBzd2l0Y2ggKGkuZGlyX2VuY29kaW5nKQ0KPiA+IC0JICAgICAgew0K PiA+IC0JICAgICAgY2FzZSBkaXJfZW5jb2RpbmdfbG9hZDoNCj4gPiAtCQlpZiAob3BlcmFuZF90 eXBlX2NoZWNrIChvcGVyYW5kX3R5cGVzW2kub3BlcmFuZHMgLSAxXSwNCj4gYW55bWVtKQ0KPiA+ IC0JCSAgICB8fCB0LT5vcGNvZGVfbW9kaWZpZXIucmVnbWVtKQ0KPiA+IC0JCSAgZ290byBjaGVj a19yZXZlcnNlOw0KPiA+IC0JCWJyZWFrOw0KPiA+ICsJICAgIHsNCj4gPiArCSAgICAgIGludCBp c01lbU9wZXJhbmQgPSAodC0+b3Bjb2RlX21vZGlmaWVyLnZleHZ2dnYNCj4gPiArCQkJCSAgJiYg dC0+b3Bjb2RlX3NwYWNlID09IFNQQUNFX0VWRVhNQVA0KQ0KPiA+ICsJCQkJICA/IGkub3BlcmFu ZHMgLSAyIDogaS5vcGVyYW5kcyAtIDE7DQo+IA0KPiAiaXMiIGluIHRoZSB2YXJpYWJsZSBuYW1l IGlzIHByb3Blcmx5IG1pc2xlYWRpbmcuIFdoYXQgeW91J3JlIGRldGVybWluaW5nDQo+IGhlcmUg aXMgd2hpY2ggb3BlcmFuZCB5b3Ugd2FudCB0byBfY2hlY2tfIGZvciBiZWluZyB0aGUgbWVtb3J5 IG9wZXJhbmQuDQo+IA0KDQpDaGFuZ2VkIHRvIE1lbU9wZXJhbmQuDQogDQo+ID4gKwkJCQkNCj4g QXMgdG8gdGhlIGNvbmRpdGlvbiwgdGhlIHR3byBzaWRlIG9mICYmIG1heSB3YW50IHN3YXBwaW5n OiBJbiBzdWNoIGENCj4gY29uZGl0aW9uIGl0IGlzIGdlbmVyYWxseSBkZXNpcmFibGUgdG8gaGF2 ZSB0aGUgbW9yZSByZXN0cmljdGluZyBwYXJ0IGZpcnN0LiBQbHVzDQo+IHRoaXMgbWF5IGJlIG1v cmUgbmVhdCB0byBleHByZXNzIHdpdGhvdXQgPzogYW55d2F5Og0KPiANCj4gaS5vcGVyYW5kcyAt IDEgLSAodC0+b3Bjb2RlX3NwYWNlID09IFNQQUNFX0VWRVhNQVA0ICYmIHQtDQo+ID5vcGNvZGVf bW9kaWZpZXIudmV4dnZ2dikNCj4gDQo+IChzdWl0YWJseSBsaW5lIHdyYXBwZWQgb2YgY291cnNl KS4NCj4gDQoNCkRvbmUuDQoNCj4gPiArCSAgICAgIHN3aXRjaCAoaS5kaXJfZW5jb2RpbmcpDQo+ ID4gKwkJew0KPiA+ICsJCWNhc2UgZGlyX2VuY29kaW5nX2xvYWQ6DQo+ID4gKwkJICBpZiAob3Bl cmFuZF90eXBlX2NoZWNrIChvcGVyYW5kX3R5cGVzW2lzTWVtT3BlcmFuZF0sDQo+IGFueW1lbSkN Cj4gPiArCQkgICAgICB8fCB0LT5vcGNvZGVfbW9kaWZpZXIucmVnbWVtKQ0KPiA+ICsJCSAgICBn b3RvIGNoZWNrX3JldmVyc2U7DQo+ID4gKwkJICBicmVhazsNCj4gPg0KPiA+IC0JICAgICAgY2Fz ZSBkaXJfZW5jb2Rpbmdfc3RvcmU6DQo+ID4gLQkJaWYgKCFvcGVyYW5kX3R5cGVfY2hlY2sgKG9w ZXJhbmRfdHlwZXNbaS5vcGVyYW5kcyAtIDFdLA0KPiBhbnltZW0pDQo+ID4gLQkJICAgICYmICF0 LT5vcGNvZGVfbW9kaWZpZXIucmVnbWVtKQ0KPiA+IC0JCSAgZ290byBjaGVja19yZXZlcnNlOw0K PiA+IC0JCWJyZWFrOw0KPiA+ICsJCWNhc2UgZGlyX2VuY29kaW5nX3N0b3JlOg0KPiA+ICsJCSAg aWYgKCFvcGVyYW5kX3R5cGVfY2hlY2sgKG9wZXJhbmRfdHlwZXNbaXNNZW1PcGVyYW5kXSwNCj4g YW55bWVtKQ0KPiA+ICsJCSAgICAgICYmICF0LT5vcGNvZGVfbW9kaWZpZXIucmVnbWVtKQ0KPiA+ ICsJCSAgICBnb3RvIGNoZWNrX3JldmVyc2U7DQo+ID4gKwkJICBicmVhazsNCj4gPg0KPiA+IC0J ICAgICAgY2FzZSBkaXJfZW5jb2Rpbmdfc3dhcDoNCj4gPiAtCQlnb3RvIGNoZWNrX3JldmVyc2U7 DQo+ID4gKwkJY2FzZSBkaXJfZW5jb2Rpbmdfc3dhcDoNCj4gPiArCQkgIGdvdG8gY2hlY2tfcmV2 ZXJzZTsNCj4gPg0KPiA+IC0JICAgICAgY2FzZSBkaXJfZW5jb2RpbmdfZGVmYXVsdDoNCj4gPiAt CQlicmVhazsNCj4gPiAtCSAgICAgIH0NCj4gPiArCQljYXNlIGRpcl9lbmNvZGluZ19kZWZhdWx0 Og0KPiA+ICsJCSAgYnJlYWs7DQo+ID4gKwkJfQ0KPiA+ICsJICAgIH0NCj4gPiAgCSAgLyogSWYg d2Ugd2FudCBzdG9yZSBmb3JtLCB3ZSBza2lwIHRoZSBjdXJyZW50IGxvYWQuICAqLw0KPiA+ICAJ ICBpZiAoKGkuZGlyX2VuY29kaW5nID09IGRpcl9lbmNvZGluZ19zdG9yZQ0KPiA+ICAJICAgICAg IHx8IGkuZGlyX2VuY29kaW5nID09IGRpcl9lbmNvZGluZ19zd2FwKSBAQCAtNzQzMiwxMSArNzQ0 MywxMw0KPiA+IEBAIG1hdGNoX3RlbXBsYXRlIChjaGFyIG1uZW1fc3VmZml4KQ0KPiA+ICAJCWNv bnRpbnVlOw0KPiA+ICAJICAgICAgLyogVHJ5IHJldmVyc2luZyBkaXJlY3Rpb24gb2Ygb3BlcmFu ZHMuICAqLw0KPiA+ICAJICAgICAgaiA9IGlzX2NwdSAodCwgQ3B1Rk1BNCkNCj4gPiAtCQkgIHx8 IGlzX2NwdSAodCwgQ3B1WE9QKSA/IDEgOiBpLm9wZXJhbmRzIC0gMTsNCj4gPiArCQkgIHx8IGlz X2NwdSAodCwgQ3B1WE9QKQ0KPiA+ICsJCSAgfHwgaXNfY3B1ICh0LCBDcHVBUFhfRikgPyAxIDog aS5vcGVyYW5kcyAtIDE7DQo+ID4gIAkgICAgICBvdmVybGFwMCA9IG9wZXJhbmRfdHlwZV9hbmQg KGkudHlwZXNbMF0sIG9wZXJhbmRfdHlwZXNbal0pOw0KPiA+ICAJICAgICAgb3ZlcmxhcDEgPSBv cGVyYW5kX3R5cGVfYW5kIChpLnR5cGVzW2pdLCBvcGVyYW5kX3R5cGVzWzBdKTsNCj4gPiAgCSAg ICAgIG92ZXJsYXAyID0gb3BlcmFuZF90eXBlX2FuZCAoaS50eXBlc1sxXSwgb3BlcmFuZF90eXBl c1sxXSk7DQo+ID4gLQkgICAgICBnYXNfYXNzZXJ0ICh0LT5vcGVyYW5kcyAhPSAzIHx8ICFjaGVj a19yZWdpc3Rlcik7DQo+ID4gKwkgICAgICBnYXNfYXNzZXJ0ICh0LT5vcGVyYW5kcyAhPSAzIHx8 ICFjaGVja19yZWdpc3Rlcg0KPiA+ICsJCQkgIHx8IGlzX2NwdSAodCxDcHVBUFhfRikpOw0KPiAN Cj4gTml0OiBNaXNzaW5nIGJsYW5rIGFnYWluLg0KDQpEb25lLg0KDQo+IA0KPiA+IEBAIC03NDcx LDYgKzc0ODQsMTIgQEAgbWF0Y2hfdGVtcGxhdGUgKGNoYXIgbW5lbV9zdWZmaXgpDQo+ID4gIAkJ ICBmb3VuZF9yZXZlcnNlX21hdGNoID0gT3Bjb2RlX1ZleFc7DQo+ID4gIAkJICBnb3RvIGNoZWNr X29wZXJhbmRzXzM0NTsNCj4gPiAgCQl9DQo+ID4gKwkgICAgICBlbHNlIGlmIChpc19jcHUgKHQs Q3B1QVBYX0YpDQo+ID4gKwkJICAgICAgICYmIGkub3BlcmFuZHMgPT0gMykNCj4gPiArCQl7DQo+ ID4gKwkJICBmb3VuZF9yZXZlcnNlX21hdGNoID0gT3Bjb2RlX0FQWF9OREREOw0KPiA+ICsJCSAg Z290byBjaGVja19vcGVyYW5kc18zNDU7DQo+ID4gKwkJfQ0KPiA+ICAJICAgICAgZWxzZSBpZiAo dC0+b3Bjb2RlX3NwYWNlICE9IFNQQUNFX0JBU0UNCj4gPiAgCQkgICAgICAgJiYgKHQtPm9wY29k ZV9zcGFjZSAhPSBTUEFDRV8wRg0KPiA+ICAJCQkgICAvKiBNT1YgdG8vZnJvbSBDUi9EUi9UUiwg YXMgYW4gZXhjZXB0aW9uLCBmb2xsb3cNCj4gQEAgLTc2MzYsNg0KPiA+ICs3NjU1LDE1IEBAIG1h dGNoX3RlbXBsYXRlIChjaGFyIG1uZW1fc3VmZml4KQ0KPiA+ICAJIGZsaXBwaW5nIFZFWC5XLiAg Ki8NCj4gPiAgICAgICAgaS50bS5vcGNvZGVfbW9kaWZpZXIudmV4dyBePSBWRVhXMCBeIFZFWFcx Ow0KPiA+DQo+ID4gKyAgICAgIGogPSBpLnRtLm9wZXJhbmRfdHlwZXNbMF0uYml0ZmllbGQuaW1t ODsNCj4gPiArICAgICAgaS50bS5vcGVyYW5kX3R5cGVzW2pdID0gb3BlcmFuZF90eXBlc1tqICsg MV07DQo+ID4gKyAgICAgIGkudG0ub3BlcmFuZF90eXBlc1tqICsgMV0gPSBvcGVyYW5kX3R5cGVz W2pdOw0KPiA+ICsgICAgICBicmVhazsNCj4gDQo+IEknbSBub3Qgb3Zlcmx5IGhhcHB5IHRvIHNl ZSB0aGlzIGNvZGUgZ2V0dGluZyBkdXBsaWNhdGVkLiBBcmUgdGhlcmUgYW55DQo+IGVuY29kaW5n cyBhdCBhbGwgd2hpY2ggaGF2ZSBEIGFuZCBhbmQgaW1tZWRpYXRlIG9wZXJhbmQ/IEkgZG9uJ3Qg dGhpbmsgc28sIGluDQo+IHdoaWNoIGNhc2UgdGhpcyBhdCBsZWFzdCB3YW50cyBzaW1wbGlmeWlu Zy4gQnV0IHJlYWQgb24uDQo+IA0KPiA+ICsgICAgY2FzZSBPcGNvZGVfQVBYX05EREQ6DQo+ID4g KyAgICAgIC8qIE9ubHkgdGhlIGZpcnN0IHR3byByZWdpc3RlciBvcGVyYW5kcyBuZWVkIHJldmVy c2luZy4gICovDQo+ID4gKyAgICAgIGkudG0uYmFzZV9vcGNvZGUgXj0gMHgyOw0KPiANCj4gSSB0 aGluayB5b3UgbWVhbiBPcGNvZGVfRCBoZXJlPw0KPiANCj4gPiAgICAgICAgaiA9IGkudG0ub3Bl cmFuZF90eXBlc1swXS5iaXRmaWVsZC5pbW04Ow0KPiA+ICAgICAgICBpLnRtLm9wZXJhbmRfdHlw ZXNbal0gPSBvcGVyYW5kX3R5cGVzW2ogKyAxXTsNCj4gPiAgICAgICAgaS50bS5vcGVyYW5kX3R5 cGVzW2ogKyAxXSA9IG9wZXJhbmRfdHlwZXNbal07DQo+IA0KPiBUYWtpbmcgYm90aCByZW1hcmtz IHRvZ2V0aGVyLCBkbyB3ZSBuZWVkIE9wY29kZV9BUFhfTkRERCBhdCBhbGw/IENhbid0DQo+IHlv dSB1c2UgdGhlIG9yZGluYXJ5IE9wY29kZV9ELCB3aXRoDQo+IA0KPiAgICAgZGVmYXVsdDoNCj4g ICAgICAgLyogSWYgd2UgZm91bmQgYSByZXZlcnNlIG1hdGNoIHdlIG11c3QgYWx0ZXIgdGhlIG9w Y29kZSBkaXJlY3Rpb24NCj4gCSBiaXQgYW5kIGNsZWFyL2ZsaXAgdGhlIHJlZ21lbSBtb2RpZmll ciBvbmUuICBmb3VuZF9yZXZlcnNlX21hdGNoDQo+IAkgaG9sZHMgYml0cyB0byBjaGFuZ2UgKGRp ZmZlcmVudCBmb3IgaW50ICYgZmxvYXQgaW5zbnMpLiAgKi8NCj4gDQo+ICAgICAgIGkudG0uYmFz ZV9vcGNvZGUgXj0gZm91bmRfcmV2ZXJzZV9tYXRjaDsNCj4gDQo+ICAgICAgIGlmIChpLnRtLm9w Y29kZV9zcGFjZSA9PSBTUEFDRV9FVkVYTUFQNCAmJiBpLm9wZXJhbmRzID09IDMpDQo+ICAgICAg ICAgZ290byBzd2FwX2ZpcnN0XzI7DQo+ICAgICAuLi4NCj4gICAgIHN3YXBfZmlyc3RfMjoNCj4g ICAgICAgaiA9IGkudG0ub3BlcmFuZF90eXBlc1swXS5iaXRmaWVsZC5pbW04Ow0KPiAgICAgICBp LnRtLm9wZXJhbmRfdHlwZXNbal0gPSBvcGVyYW5kX3R5cGVzW2ogKyAxXTsNCj4gICAgICAgaS50 bS5vcGVyYW5kX3R5cGVzW2ogKyAxXSA9IG9wZXJhbmRfdHlwZXNbal07DQo+ICAgICAgIGJyZWFr Ow0KPiANCj4gPyAoSSdtIG5vdCBjb252aW5jZWQgdGhlIGkub3BlcmFuZHMgPT0gMyBwYXJ0IG9m IHRoZSBjb25kaXRpb24gaXMgbmVlZGVkOyBpZiBhdA0KPiBhbGwgcG9zc2libGUgaXQgd2FudHMg b21pdHRpbmcuKQ0KPiANCg0KWW91ciBzdWdnZXN0aW9uIGlzIGluZGVlZCBiZXR0ZXIgdGhhbiBi ZWZvcmUuIEl0IHdvcmtlZCB3aXRob3V0ICJpLm9wZXJhbmRzID09IDMiLg0KDQo+ID4gQEAgLTg0 NjIsOCArODQ5MCw4IEBAIHByb2Nlc3Nfb3BlcmFuZHMgKHZvaWQpDQo+ID4gICAgY29uc3QgcmVn X2VudHJ5ICpkZWZhdWx0X3NlZyA9IE5VTEw7DQo+ID4NCj4gPiAgICAvKiBXZSBvbmx5IG5lZWQg dG8gY2hlY2sgdGhvc2UgaW1wbGljaXQgcmVnaXN0ZXJzIGZvciBpbnN0cnVjdGlvbnMNCj4gPiAt ICAgICB3aXRoIDMgb3BlcmFuZHMgb3IgbGVzcy4gICovDQo+ID4gLSAgaWYgKGkub3BlcmFuZHMg PD0gMykNCj4gPiArICAgICB3aXRoIDQgb3BlcmFuZHMgb3IgbGVzcy4gICovDQo+ID4gKyAgaWYg KGkub3BlcmFuZHMgPD0gNCkNCj4gPiAgICAgIGZvciAodW5zaWduZWQgaW50IGogPSAwOyBqIDwg aS5vcGVyYW5kczsgaisrKQ0KPiA+ICAgICAgICBpZiAoaS50eXBlc1tqXS5iaXRmaWVsZC5pbnN0 YW5jZSAhPSBJbnN0YW5jZU5vbmUpDQo+ID4gIAlpLnJlZ19vcGVyYW5kcy0tOw0KPiANCj4gSG93 IHVzZWZ1bCBpcyBpdCB0byBrZWVwIHRoZSBvdXRlciBpZigpIHdoZW4gNC1vcGVyYW5kIGluc25z IG5vdyBhbHNvIG5lZWQNCj4gY2hlY2tpbmc/IFRoZXJlIGFyZSBleHRyZW1lbHkgZmV3IDUtb3Bl cmFuZCBvbmVzIC4uLg0KPiANCg0KRGVsZXRlZCBpdC4NCg0KPiA+IEBAIC04ODI1LDYgKzg4NTMs OSBAQCBidWlsZF9tb2RybV9ieXRlICh2b2lkKQ0KPiA+ICAgICAgICBicmVhazsNCj4gPiAgICBp ZiAodiA+PSBkZXN0KQ0KPiA+ICAgICAgdiA9IH4wOw0KPiA+ICsgIGlmIChpLnRtLm9wY29kZV9z cGFjZSA9PSBTUEFDRV9FVkVYTUFQNA0KPiA+ICsgICAgICAmJiBpLnRtLm9wY29kZV9tb2RpZmll ci52ZXh2dnZ2KQ0KPiA+ICsgICAgdiA9IGRlc3Q7DQo+ID4gICAgaWYgKGkudG0uZXh0ZW5zaW9u X29wY29kZSAhPSBOb25lKQ0KPiA+ICAgICAgew0KPiA+ICAgICAgICBpZiAoZGVzdCAhPSBzb3Vy Y2UpDQo+ID4gQEAgLTkwODgsNiArOTExOSw5IEBAIGJ1aWxkX21vZHJtX2J5dGUgKHZvaWQpDQo+ ID4gICAgICAgIHNldF9yZXhfdnJleCAoaS5vcFtvcF0ucmVncywgUkVYX0IsIGZhbHNlKTsNCj4g PiAgCX0NCj4gPg0KPiA+ICsgICAgICBpZiAoaS50bS5vcGNvZGVfc3BhY2UgPT0gU1BBQ0VfRVZF WE1BUDQNCj4gPiArCSAgJiYgaS50bS5vcGNvZGVfbW9kaWZpZXIudmV4dnZ2dikNCj4gPiArCWRl c3QtLTsNCj4gPiAgICAgICAgaWYgKG9wID09IGRlc3QpDQo+ID4gIAlkZXN0ID0gfjA7DQo+ID4g ICAgICAgIGlmIChvcCA9PSBzb3VyY2UpDQo+IA0KPiBUaGVzZSB0d28gY2hhbmdlcyBhcmUgYXQg dGhlIHZlcnkgbGVhc3QgcHJvYmxlbWF0aWMgd2l0aCAuaW5zbiwgd2hvc2UNCj4gYmVoYXZpb3Ig bWF5IG5vdCBjaGFuZ2UuIEknZCBhbHNvIHByZWZlciBpZiB3ZSBjb3VsZCBnZXQgYXdheSB3aXRo IGp1c3Qgb25lDQo+IGNoYW5nZSB0byB0aGUgZnVuY3Rpb24uIERpZCB5b3UgY29uc2lkZXIgYWx0 ZXJuYXRpdmVzPyBXZSBjb3VsZCByZS0gd2lkZW4NCj4gVmV4VlZWViwgc3VjaCB0aGF0IHRoZSB2 YWx1ZSAyIGluZGljYXRlcyB0aGF0IHRoZSBkZXN0aW5hdGlvbiBpcyBlbmNvZGVkIHRoZXJlLg0K PiBUaGF0IHRoZW4gYWxzbyBoYXMgbm8gY2hhbmNlIG9mIGNvbmZsaWN0aW5nIHdpdGggLmluc24u DQo+IA0KSSBhZGRlZCB2YWx1ZSAyIGZvciBOREQsIGlmIGl0J3Mgb2ssIEkgd2lsbCBjcmVhdGUg YW5vdGhlciBwYXRjaCB0byBtb3ZlICAoaS50bS5leHRlbnNpb25fb3Bjb2RlICE9IE5vbmUpIHRv IFZleFZWVlZERVNUIGJyYW5jaCwgYW5kIHVzZSB2YWx1ZSAzIGluc3RlYWQgb2YgU1dBUF9TT1VS Q0VTLCBtYXliZSBuYW1lIGl0IFZleFZWVlZTUkMxLCBvciBqdXN0IFZleFZWVlZPUDEsIFZleFZW VlZPUDIgYW5kIFZleFZWVlZPUDM/DQoNCiAgLyogSG93IHRvIGVuY29kZSBWRVgudnZ2djoNCiAg ICAgMDogVkVYLnZ2dnYgbXVzdCBiZSAxMTExYi4NCiAgICAgMTogVkVYLnZ2dnYgZW5jb2RlcyBv bmUgb2YgdGhlIHJlZ2lzdGVyIG9wZXJhbmRzLg0KICAgICAyOiBWRVgudnZ2diBlbmNvZGVzIGFz IHRoZSBkZXN0IHJlZ2lzdGVyIG9wZXJhbmRzLg0KICAgKi8NCiNkZWZpbmUgVmV4VlZWVlNSQyAg IDENCiNkZWZpbmUgVmV4VlZWVkRFU1QgIDINCiAgVmV4VlZWViwNCg0KDQogIGlmIChpLnRtLm9w Y29kZV9tb2RpZmllci52ZXh2dnZ2ID09IFZleFZWVlZERVNUKQ0KICAgIHsNCiAgICAgIHYgPSBk ZXN0Ow0KICAgICAgZGVzdC0tIDsNCiAgICB9DQogIGVsc2UgaWYgKGkudG0ub3Bjb2RlX21vZGlm aWVyLnZleHZ2dnYgPT0gVmV4VlZWVlNSQykNCiAgICB7DQogICAgICB2ID0gc291cmNlICsgMTsN CiAgICAgIGZvciAodiA9IHNvdXJjZSArIDE7IHYgPCBkZXN0OyArK3YpDQogICAgICAgIGlmICh2 ICE9IHJlZ19zbG90KQ0KICAgICAgICAgIGJyZWFrOw0KICAgICAgaWYgKGkudG0uZXh0ZW5zaW9u X29wY29kZSAhPSBOb25lKQ0KICAgICAgICB7DQogICAgICAgICAgaWYgKGRlc3QgIT0gc291cmNl KQ0KICAgICAgICAgICAgdiA9IGRlc3Q7DQogICAgICAgICAgZGVzdCA9IH4wOw0KICAgICAgICB9 DQogICAgICBnYXNfYXNzZXJ0IChzb3VyY2UgPCBkZXN0KTsNCiAgICAgIGlmIChpLnRtLm9wY29k ZV9tb2RpZmllci5vcGVyYW5kY29uc3RyYWludCA9PSBTV0FQX1NPVVJDRVMNCiAgICAgICAgICAm JiBzb3VyY2UgIT0gb3ApDQogICAgICAgIHsNCiAgICAgICAgICB1bnNpZ25lZCBpbnQgdG1wID0g c291cmNlOw0KDQogICAgICAgICAgc291cmNlID0gdjsNCiAgICAgICAgICB2ID0gdG1wOw0KICAg ICAgICB9DQogICAgfQ0KICBlbHNlDQogICAgdiA9IH4wOyANCg0KPiA+IC0tLSAvZGV2L251bGwN Cj4gPiArKysgYi9nYXMvdGVzdHN1aXRlL2dhcy9pMzg2L3g4Ni02NC1hcHgtbmRkLnMNCj4gPiBA QCAtMCwwICsxLDE1NiBAQA0KPiA+ICsjIENoZWNrIDY0Yml0IEFQWCBOREQgaW5zdHJ1Y3Rpb25z IHdpdGggZXZleCBwcmVmaXggZW5jb2RpbmcNCj4gPiArDQo+ID4gKwkuYWxsb3dfaW5kZXhfcmVn DQo+ID4gKwkudGV4dA0KPiA+ICtfc3RhcnQ6DQo+ID4gK2Ntb3ZnZSAweDkwOTA5MDkwKCVlYXgp LCVlZHgsJXI4ZA0KPiA+ICtjbW92bGUgMHg5MDkwOTA5MCglZWF4KSwlZWR4LCVyOGQNCj4gPiAr Y21vdmcgIDB4OTA5MDkwOTAoJWVheCksJWVkeCwlcjhkDQo+ID4gK2ltdWwgICAweDkwOTA5KCVl YXgpLCVlZHgsJXI4ZA0KPiA+ICtpbXVsICAgMHg5MDkoJXJheCwlcjMxLDgpLCVyZHgsJXIyNQ0K PiANCj4gV2hhdCBhYm91dCBpbXVsIGJ5IGltbWVkaWF0ZT8gVGhlIHByZXNlbnQgc3BlYyBpcyBx dWl0ZSB1bmNsZWFyIHRoZXJlOg0KPiBUaGUgaW5zbiBwYWdlIHNheXMge05EPVpVfSBhbmQgdGhl IHRhYmxlIHNheXMgMC8xIGluIHRoZSBORCBjb2x1bW4uDQo+DQoNCldlIGRvbid0IHN1cHBvcnQg aXQgeWV0LCBJIHB1dCBpdCBpbiBSRkMuDQouLi4NCjIuIFN1cHBvcnQgQVBYIFpVICAgLS0gSW4g cHJvZ3Jlc3MNCjMuIFN1cHBvcnQgQVBYIENDTVAgYW5kIENURVNUIC0tIEluIHByb2dyZXNzDQou Li4NCg0KQWJvdXQgMC8xIGluIHRoZSBORCBjb2x1bW4sIGl0IG1lYW5zIFpVIGNhbiBiZSAwLzEu DQoNCklNVUwgd2l0aCBvcGNvZGVzIDB4NjkgYW5kIDB4NkIgaW4gbWFwIDAgYW5kIFNFVGNjIGlu c3RydWN0aW9ucw0KQWx0aG91Z2ggdGhlc2UgaW5zdHJ1Y3Rpb25zIGRvIG5vdCBzdXBwb3J0IE5E RCwgdGhlIEVWRVguTkQgYml0IGlzIHVzZWQgdG8gY29udHJvbCB3aGV0aGVyIGl0cw0KZGVzdGlu YXRpb24gcmVnaXN0ZXIgaGFzIGl0cyB1cHBlciBiaXRzIChuYW1lbHksIGJpdHMgWzYzOk9TSVpF XSkgemVyb2VkIHdoZW4gT1NJWkUgaXMgOGIgb3IgMTZiLg0KVGhhdCBpcywgaWYgRVZFWC5ORCA9 IDEsIHRoZSB1cHBlciBiaXRzIGFyZSBhbHdheXMgemVyb2VkOyBvdGhlcndpc2UsIHRoZXkga2Vl cCB0aGUgb2xkIHZhbHVlcw0Kd2hlbiBPU0laRSBpcyA4YiBvciAxNmIuIEZvciB0aGVzZSBpbnN0 cnVjdGlvbnMsIEVWRVguW1Y0LFYzLFYyLFYxLFYwXSBtdXN0IGJlIGFsbCB6ZXJvLg0KDQo+ID4g Ky5ieXRlIDB4NjIsMHhmNCwweGZjLDB4MDgsMHhmZiwweGMwICAjaW5jICVyYXggLmJ5dGUNCj4g PiArMHg2MiwweGY0LDB4ZWMsMHgwOCwweGZmLDB4YzAgICNiYWQNCj4gDQo+IEFzIGJlZm9yZSwg cGxlYXNlIGF2b2lkIC5ieXRlIHdoZW5ldmVyIHBvc3NpYmxlLiBBbmQgcGxlYXNlIGhhdmUgYSBt b3JlDQo+IGRldGFpbGVkIGNvbW1lbnQgYXMgdG8gd2hhdCBpcyBiZWluZyBlbmNvZGVkLCB3aGVu IC5ieXRlIGNhbm5vdCBiZSBhdm9pZGVkLg0KPiBQbHVzLCBpZiBhdCBhbGwgcG9zc2libGUsIGhh dmUgImJhZCIgdGVzdHMgbGl2ZSBpbiBzZXBhcmF0ZSB0ZXN0Y2FzZXMgZnJvbSAiZ29vZCINCj4g b25lcy4NCj4gDQoNClRoaXMgY2FzZSB3YW50cyB0byB0ZXN0IHRoYXQgaW5jIHN1cHBvcnRzIGV2 ZXggZm9ybWF0IHdpdGhvdXQgR1BSMzIsICBwYXRjaCBwYXJ0IElJIDEvNiB3aWxsIGNvdmVyIGl0 LiBUaGUgZmlyc3QgY2FzZSBoYXMgYmVlbiByZW1vdmVkIGFuZCB0aGUgc2Vjb25kIGNhc2UgaGFz IGJlZW4gYWRkZWQgdG8geDg2LTY0LWFweC1ldmV4LXByb21vdGVkLWJhZC5zLg0KIA0KPiA+IC0t LSBhL29wY29kZXMvaTM4Ni1kaXMtZXZleC1wcmVmaXguaA0KPiA+ICsrKyBiL29wY29kZXMvaTM4 Ni1kaXMtZXZleC1wcmVmaXguaA0KPiANCj4gT25jZSBhZ2FpbiBJJ2xsIHJlcGx5IHRvIGRpc2Fz c2VtYmxlciBjaGFuZ2VzIHNlcGFyYXRlbHkuDQo+IA0KDQpPay4NCg0KPiA+IC0tLSBhL29wY29k ZXMvaTM4Ni1vcGMuaA0KPiA+ICsrKyBiL29wY29kZXMvaTM4Ni1vcGMuaA0KPiA+IEBAIC05NjAs NiArOTYwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgaW5zbl90ZW1wbGF0ZQ0KPiA+ICAvKiBUaGUgbmV4 dCB2YWx1ZSBpcyBhcmJpdHJhcnksIGFzIGxvbmcgYXMgaXQncyBub24temVybyBhbmQgZGlzdGlu Y3QNCj4gPiAgICAgZnJvbSBhbGwgb3RoZXIgdmFsdWVzIGFib3ZlLiAgKi8NCj4gPiAgI2RlZmlu ZSBPcGNvZGVfVmV4VwkweGYgLyogT3BlcmFuZCBvcmRlciBjb250cm9sbGVkIGJ5IFZFWC5XLiAq Lw0KPiA+ICsjZGVmaW5lIE9wY29kZV9BUFhfTkRERAkweDExIC8qIERpcmVjdGlvbiBiaXQgZm9y IEFQWCBOREQgaW5zbnMuICovDQo+IA0KPiBUaGUgY29tbWVudCB0YWxrcyBvZiBhIHNpbmdsZSBi aXQsIGJ1dCB0aGUgdmFsdWUgaGFzIHR3byBiaXRzIHNldC4NCj4gUGx1cyBpbiB0aGUgY29kZSB5 b3UgYWxzbyBkb24ndCB1c2UgdGhpcyBjb25zdGFudCBhcyBkZXNjcmliZWQgYnkgdGhlDQo+IGNv bW1lbnQuIEFpdWkgbGlrZSBmb3IgT3Bjb2RlX1ZleFcgdGhlIHZhbHVlIGlzIHJlYWxseSBhcmJp dHJhcnksIGp1c3QgYXMgbG9uZw0KPiBhcyBpdCdzIGRpZmZlcmVudCBmcm9tIG90aGVycy4gSW4g d2hpY2ggY2FzZSBJJ2QgcmF0aGVyIHN1Z2dlc3QgdXNpbmcgZS5nLiAweGUgKGlmLA0KPiB1bmxp a2Ugc3VnZ2VzdGVkIGFib3ZlLCBPcGNvZGVfRCBjYW5ub3QgYmUgcmUtdXNlZCkuDQo+IA0KPiBB bHNvIEkgZG9uJ3QgdGhpbmsgdGhlcmUncyBhIG5lZWQgZm9yIHRocmVlIEQtcyBpbiB0aGUgbmFt ZS4NCj4gDQoNCkRlbGV0ZWQgT3Bjb2RlX0FQWF9ORERELg0KDQo+ID4gLS0tIGEvb3Bjb2Rlcy9p Mzg2LW9wYy50YmwNCj4gPiArKysgYi9vcGNvZGVzL2kzODYtb3BjLnRibA0KPiANCj4gQ29tbWVu dHMgZ2l2ZW4gb24gdGhlIGVhcmxpZXIgcGF0Y2ggYXBwbHkgaGVyZSAoYW5kIGVsc2V3aGVyZSkg YXMgd2VsbC4NCj4gDQo+IEphbg0K