From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 47BB542C3E; Tue, 6 Jun 2023 10:51:27 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C734D40A84; Tue, 6 Jun 2023 10:51:26 +0200 (CEST) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 5000040697 for ; Tue, 6 Jun 2023 10:51:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1686041484; x=1717577484; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=+q0RWno9Xkq7TwttDrLKP4gMqu/z9uyPFAjxzsvhob4=; b=XsAUmZoNCHbN5H7zVyReiAd4uNibJmhXQPnD171yrkz9ZvNeE2yCZ2zY BNc14Si01vt54wnf9ER+NO48z6Nme5X8LX7NfskNRdf4YymW96Y10jpWJ xwLstM3TjbqCXCozvIFCnDPiC2w2FHnUAGeqDhu4lQ+ruyUVnZoYvQ2k9 VIv3hlnjFAaU/0jUaeaNUhAxfjoL4X3LZGEkB7VjEc3/30Wb6uZByMLd1 oxliYoejUV74TyXUgTVjJ+ivurM7X+217AH9aDA2UgW24ZAS1gSc0qwgl EDyWc2MZCHN5bVdauOuxNbwXyE87HkNTfZ1y5khF0WgOsiqLv2bDCTkBJ g==; X-IronPort-AV: E=McAfee;i="6600,9927,10732"; a="354102469" X-IronPort-AV: E=Sophos;i="6.00,219,1681196400"; d="scan'208";a="354102469" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2023 01:51:15 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10732"; a="798741698" X-IronPort-AV: E=Sophos;i="6.00,219,1681196400"; d="scan'208";a="798741698" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by FMSMGA003.fm.intel.com with ESMTP; 06 Jun 2023 01:51:15 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) 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.23; Tue, 6 Jun 2023 01:51:14 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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.23 via Frontend Transport; Tue, 6 Jun 2023 01:51:14 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.174) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Tue, 6 Jun 2023 01:51:14 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W0WBS4k7q4Z5ZSXiwRktdiOKsDakCUJ8f6b/kClLdB5r4ymhSsMLpZRYP8opfnNcFWCA9dID/cp1NKXN0bZi0FxhRl1NY/4GMcTcDEwQlhmxDJ7BLD0cv2E5pgheT9/aC8vDY9l0XVLiw/VmtqbosqfHxa+mNTl6zP3E9n8D9FPTSDtA/J0oMe+Tel8sTJigqlBqPqHW2hq0WMlVrpv3NPzKoo+0+j3FMK78th5QQ8sXCjXmor5QspXtQRlo09+Cr6ihUdQh4lqE+U59d9KOgxNqmnBxpsKgodK/Iqz1HQd93biYesuW09/CESo8JtH+qJoV39hroDZd/oLKrJqaHw== 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=+q0RWno9Xkq7TwttDrLKP4gMqu/z9uyPFAjxzsvhob4=; b=CsJeUj8CPHLBNShU2tkDVoQBKQcLJaLGfCLez3R+iSZSL0LkeKFolXUrPrMmyjtNPzS8+LIiuT1AqIMpZsUajUJiogY4LBYQPw8vPurvpbJwY1LrkAYeVEoHti8bYn0ndsuWaf/eqSUMM8osnA4EJaNT+xWjkI3HyuuML8KJSM/VIexvxhbhQBsqFi7i+KZhU8CZuIFbUk8ShSTUPAxe4PamSAB8b4bdSa1RjMYtx7V2v6viDQOikcO9a832G5C1R97ybYZlHKeWagt6CaD3ByCGpMHl/uSctOXiO6PUxMOxV2WQI0xtMwv8mA9xoPT03TXWm4t1TmgVPk+YwfDz/A== 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 SN7PR11MB6775.namprd11.prod.outlook.com (2603:10b6:806:264::21) by DS0PR11MB6446.namprd11.prod.outlook.com (2603:10b6:8:c5::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.32; Tue, 6 Jun 2023 08:51:11 +0000 Received: from SN7PR11MB6775.namprd11.prod.outlook.com ([fe80::7972:8de5:546c:65f0]) by SN7PR11MB6775.namprd11.prod.outlook.com ([fe80::7972:8de5:546c:65f0%3]) with mapi id 15.20.6433.024; Tue, 6 Jun 2023 08:51:11 +0000 From: "Yan, Zhirun" To: Jerin Jacob CC: "dev@dpdk.org" , "jerinj@marvell.com" , "kirankumark@marvell.com" , "ndabilpuram@marvell.com" , "stephen@networkplumber.org" , "pbhagavatula@marvell.com" , "Liang, Cunming" , "Wang, Haiyue" , mattias.ronnblom Subject: RE: [PATCH v7 15/17] examples/l3fwd-graph: introduce multicore dispatch worker model Thread-Topic: [PATCH v7 15/17] examples/l3fwd-graph: introduce multicore dispatch worker model Thread-Index: AQHZl6CxXdG+2uLlHE+W7e1gFxP25a98N9AAgADrHSCAACTKAIAAIQOA Date: Tue, 6 Jun 2023 08:51:11 +0000 Message-ID: References: <20230509060347.1237884-1-zhirun.yan@intel.com> <20230605111923.3772260-1-zhirun.yan@intel.com> <20230605111923.3772260-16-zhirun.yan@intel.com> In-Reply-To: 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: SN7PR11MB6775:EE_|DS0PR11MB6446:EE_ x-ms-office365-filtering-correlation-id: 0f0f786c-9bb0-4b6b-eae1-08db666b2d72 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: BIw8boy09jZfbMde/AMAg4J8U0oCQMSkeT8v6GhnBuS13spanqRiY2jfHFk8FzddigL49cpna2KOZaIwr7Xnwqar06me/EJdK3rKqgaMXgMckq4UVHYi/nefNQLrDcyxzorCgcm+TuRGFYVNpNEOiZyPx99vJGYYFtPSitbiB/Hhhbgknoh8VyEMjQn4BTgMeb0N6T4wF4IiUDxGIZM/7RZJShK862jWNoIM7lp/ggPdFf+b83JRxUKXS/OafsU7sEWXCbB1M0oKooccYbOOSmHbiMglsGT695QsjkabKR+ZttdIvnoA00pPXzEMZJMFUDeYwYiPRPmwvr02bdTnI4JdGQmSOsK9t1NoZOSObjKoLNnzVlWP/A7V6EpHL/adt/09oU5vUu0/9lC0Cyb3MB1ZL4d7lXBREKm25kN3bO6iFrDt4c6ee1t8Z5s7Q/+k/tN5wnXw85ltZ8Y+5qsdZ45/V28bzxUfN66xFBdZcVUSGL5RaOvsa05M5boLFnM/nCYPkIKRaY+QaTd7mqwu18rBpysKb0efwPQFvbjeO+JN81UBMqG8ZxFrxJInwtQWNW6nI8PcXR96i/VZZhBQjRG6eD1iMlAqVgy7K04U4k8DozCYsRm72BoVEJ54URAG x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN7PR11MB6775.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(346002)(396003)(136003)(376002)(366004)(39860400002)(451199021)(9686003)(53546011)(6506007)(26005)(83380400001)(122000001)(40140700001)(38070700005)(86362001)(33656002)(38100700002)(186003)(82960400001)(55016003)(54906003)(41300700001)(2906002)(4326008)(66446008)(478600001)(66946007)(76116006)(66476007)(8936002)(6916009)(8676002)(64756008)(316002)(52536014)(5660300002)(71200400001)(7696005)(66556008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?R1lJWFJkeXU5VVZiM0FZL3czOGRwSnF0T2k1WDZYV0diQWtCUTdMLzd3K1pZ?= =?utf-8?B?cEd6UHZFTTFLVFUzSGtPOEJSbldmblRJWk5XR2tLU05rSXNObFlHODhZU0Nj?= =?utf-8?B?N1VYZUR6OGlXVGN2NkVTTFBIRXhETElmT215eHM2dCtPRWhJb0xVcFRPaFY1?= =?utf-8?B?ZkREL01ib0JoZmlrY0hYVjJ2RHI2UTNCWFZNOEMvRWFiRFJwN0RiaGM0TVdW?= =?utf-8?B?UTdlbk5MOHFWQmxoc3N2ci8xVEVrQ29QcXpEa3RmOGtTZkdzSWF6Qk5UNHZE?= =?utf-8?B?MG1MdG1uaFRZNHVxbG9RTHB0blVUS1NMaHVIUDJiN0JYSGNyRU9GK3dmWGV1?= =?utf-8?B?NzhYaGg1b2xDdlQxOENWTitvS0tHbkp3dWZsUXJmR1AzamcydGJGbXBsVlpU?= =?utf-8?B?NUFqMW8wYTZISG1oYWorSlI2Y2krVnhEdDRqYWpJNmVTY01vZkRJMmlXY3Zy?= =?utf-8?B?TnBCMU52cjdnRFJJQW1ZYk5DU0dkejFVdWtaTFRlM3ZkSGdsT3I1SExwTFM4?= =?utf-8?B?RDBBWGl0SlNNUFRuMXBhcVVyYmN2ejg3VzF4M244bE5LUTFrTUdqaWlmd05Y?= =?utf-8?B?K1EzeWhNUWg2UVo1UXVrV1lXK3Q2QnBGYVVRMUdGRmlZTWNRM0w0bzNoZWNY?= =?utf-8?B?OUNvMVVFMDlhTzhmWjRFYnM4VW16UEJVa0RHN3Q2eWUzSFdCSWxDT21HNnhQ?= =?utf-8?B?K241amhsa3hoRU8xenBZZmptR2U0YTdPMHRwa3pGZThHTDFDTlVteHpacXJZ?= =?utf-8?B?SzZ0U3A1Q0JjT3BKaWR6Z2JuUDlmbnZvSnhWb0x4T3dWR3Q5NWZCR2x5UmI2?= =?utf-8?B?RUl4YURQNlF6ZzI4clJLSVVwUEhrNlA1bnh4VjRvNkRPelBERE0rU3FOcFRv?= =?utf-8?B?K1FSSGZnOVZPKzBqRjRkRHJqNC93WmxUZWdyVS9kWWY1OTBOZC9nTURzckM1?= =?utf-8?B?bmJNTkpyYnZqdGk5MGQ4VnJ0OHRhN21vRGp3YUd3NGZwTmoyajU3aTlMZmxK?= =?utf-8?B?WS9teEpPaGhkSzZxZy9IN2pLRWVrNVIxMk91am8rTFNJbTl5VndkaTVIRnEx?= =?utf-8?B?OWVLWWxndEJBblBBWXpiSXpZQ2QzelJ0TWc0VGF2bVhicU9LRGQ5QVF2NFNy?= =?utf-8?B?QTVnTkFrOGc5bEt3UmFZY0Mvek1yUnlIY3FwYkt5Z0grU3dSZVFsOEJvS2J5?= =?utf-8?B?QllKb3ZtckgvQ1llUE5VdnRMdHlYbjE4RTl5ejNGNmZzcExvT3RNZ1MzdmM5?= =?utf-8?B?KzBJR2R6bFJpWVN2Q3hyZXFmM2lyM1Nnb1QrcVByNFdhMDN1bnVzYVRsK2xN?= =?utf-8?B?SmRXMWtxb1ZlL2haeHpyWW9CWVh1NjdXMFV1RVRFNVZpQlJZYnpzaElrN2lq?= =?utf-8?B?Ym4wVSt4R1B5eGI4YjI4TjFTNEtMeC90VC9ZRE9ENVVJT1pJbjE0TnJubXZj?= =?utf-8?B?dEN1YktDY0E5VjRiSEdzMmRwTTBoOTAyWWQ5OTRCN21WTlBaYTE2RzJJUzIx?= =?utf-8?B?S2s2MUN0emV4NHNHeitEeE5RWkdTYStyOU45Ymd5YnpIVlYzSDRKaHJYQUZI?= =?utf-8?B?V2JBSFZwejRRcGFQWVNWNE9vYnlGeTBoU0xXUzFxMkRIcVpSZHZ1RVhMUTAw?= =?utf-8?B?cHJPRmtQS3VLZTIwbHphZHgxeW11SlZlSmlJeGtJeFNsc2djUTNhRjZIdHVT?= =?utf-8?B?SldWTXNvRkhYQ1k5VnZ2eEtValRKZFIzd2hId0hyN1ZTVzZPQ29ZU1NNQU0w?= =?utf-8?B?RHpnOUdDMFVROEpFc1htOHhtWDlLcXpCdk5WdGd6azRodTl6NzdGL0ExZFpa?= =?utf-8?B?RkliRUY5R2dDZkd2Mzl0RlVIZE9ybkYrOE5UcXd6d05xTzdQTVNzQnQ0ZGk5?= =?utf-8?B?cUJadDljZktnMWI1RG5WeVRnOEd3bnArQ3VRM1I4YytHYmp6SHpFTE5jWHhZ?= =?utf-8?B?Wng3ZjQ2UFFBdGxTZEp1d2c4Z3NKTU13RHhZSDVXVUxMbnNDY0czRzM4TEgw?= =?utf-8?B?MGtQMWhNU3M0bktqcldLSmdhaWFPOVJEMHNlVHFvZGJCa0RRcWhXNHQ5eUhy?= =?utf-8?B?ckIvajRkNE1ZVFBuSWhoVnptZk93TXpBeFFrd25NMkdWdjl0T0ltdnNvM3N5?= =?utf-8?Q?x4WO2yOFNRnaMMzJ15oHnHwaa?= 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: SN7PR11MB6775.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0f0f786c-9bb0-4b6b-eae1-08db666b2d72 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jun 2023 08:51:11.2529 (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: BAbU3D+JJe4NbckgYqnZydglO7BO16untm/s4WxTdU89F75PwcS5Mx/9EbZMgRO/5JUQIqlUGS8wo5lRNN4XDQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB6446 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSmVyaW4gSmFjb2IgPGpl cmluamFjb2JrQGdtYWlsLmNvbT4NCj4gU2VudDogVHVlc2RheSwgSnVuZSA2LCAyMDIzIDE6NTUg UE0NCj4gVG86IFlhbiwgWmhpcnVuIDx6aGlydW4ueWFuQGludGVsLmNvbT4NCj4gQ2M6IGRldkBk cGRrLm9yZzsgamVyaW5qQG1hcnZlbGwuY29tOyBraXJhbmt1bWFya0BtYXJ2ZWxsLmNvbTsNCj4g bmRhYmlscHVyYW1AbWFydmVsbC5jb207IHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnOw0KPiBw YmhhZ2F2YXR1bGFAbWFydmVsbC5jb207IExpYW5nLCBDdW5taW5nIDxjdW5taW5nLmxpYW5nQGlu dGVsLmNvbT47IFdhbmcsDQo+IEhhaXl1ZSA8aGFpeXVlLndhbmdAaW50ZWwuY29tPjsgbWF0dGlh cy5yb25uYmxvbQ0KPiA8bWF0dGlhcy5yb25uYmxvbUBlcmljc3Nvbi5jb20+DQo+IFN1YmplY3Q6 IFJlOiBbUEFUQ0ggdjcgMTUvMTddIGV4YW1wbGVzL2wzZndkLWdyYXBoOiBpbnRyb2R1Y2UgbXVs dGljb3JlDQo+IGRpc3BhdGNoIHdvcmtlciBtb2RlbA0KPiANCj4gT24gVHVlLCBKdW4gNiwgMjAy MyBhdCAxMDo0MeKAr0FNIFlhbiwgWmhpcnVuIDx6aGlydW4ueWFuQGludGVsLmNvbT4gd3JvdGU6 DQo+ID4NCj4gPg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4g RnJvbTogSmVyaW4gSmFjb2IgPGplcmluamFjb2JrQGdtYWlsLmNvbT4NCj4gPiA+IFNlbnQ6IE1v bmRheSwgSnVuZSA1LCAyMDIzIDk6NDIgUE0NCj4gPiA+IFRvOiBZYW4sIFpoaXJ1biA8emhpcnVu LnlhbkBpbnRlbC5jb20+DQo+ID4gPiBDYzogZGV2QGRwZGsub3JnOyBqZXJpbmpAbWFydmVsbC5j b207IGtpcmFua3VtYXJrQG1hcnZlbGwuY29tOw0KPiA+ID4gbmRhYmlscHVyYW1AbWFydmVsbC5j b207IHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnOw0KPiA+ID4gcGJoYWdhdmF0dWxhQG1hcnZl bGwuY29tOyBMaWFuZywgQ3VubWluZyA8Y3VubWluZy5saWFuZ0BpbnRlbC5jb20+Ow0KPiA+ID4g V2FuZywgSGFpeXVlIDxoYWl5dWUud2FuZ0BpbnRlbC5jb20+OyBtYXR0aWFzLnJvbm5ibG9tDQo+ ID4gPiA8bWF0dGlhcy5yb25uYmxvbUBlcmljc3Nvbi5jb20+DQo+ID4gPiBTdWJqZWN0OiBSZTog W1BBVENIIHY3IDE1LzE3XSBleGFtcGxlcy9sM2Z3ZC1ncmFwaDogaW50cm9kdWNlDQo+ID4gPiBt dWx0aWNvcmUgZGlzcGF0Y2ggd29ya2VyIG1vZGVsDQo+ID4gPg0KPiA+ID4gT24gTW9uLCBKdW4g NSwgMjAyMyBhdCA0OjU34oCvUE0gWmhpcnVuIFlhbiA8emhpcnVuLnlhbkBpbnRlbC5jb20+IHdy b3RlOg0KPiA+ID4gPg0KPiA+ID4gPiBBZGQgbmV3IHBhcmFtZXRlciAibW9kZWwiIHRvIGNob29z ZSBtY29yZSBkaXNwYXRjaCBvciBydGMgbW9kZWwuDQo+ID4gPiA+IEFuZCBpbiBkaXNwYXRjaCBt b2RlbCwgdGhlIG5vZGUgd2lsbCBhZmZpbml0eSB0byB3b3JrZXIgY29yZSBzdWNjZXNzaXZlbHku DQo+ID4gPiA+DQo+ID4gPiA+IE5vdGU6DQo+ID4gPiA+IFJURV9HUkFQSF9NT0RFTF9TRUxFQ1Qg aXMgc2V0IHRvIEdSQVBIX01PREVMX1JUQyBieSBkZWZhdWx0Lg0KPiBNdXN0DQo+ID4gPiBzZXQN Cj4gPiA+ID4gbW9kZWwgdGhlIHNhbWUgYXMgUlRFX0dSQVBIX01PREVMX1NFTEVDVCBJZiBzZXQg aXQgYXMgcnRjIG9yIG1jb3JlDQo+ID4gPiA+IGRpc3BhdGNoIGV4cGxpY2l0bHkuIEdSQVBIX01P REVMX01DT1JFX1JVTlRJTUVfU0VMRUNUIG1lYW5zIGl0DQo+ID4gPiA+IGNvdWxkIGNob29zZSBi eSBtb2RlbCBpbiBydW50aW1lLg0KPiA+ID4gPiBPbmx5IHN1cHBvcnQgb25lIFJYIG5vZGUgZm9y IG1jb3JlIGRpc3BhdGNoIG1vZGVsIGluIGN1cnJlbnQNCj4gPiA+ID4gaW1wbGVtZW50YXRpb24u DQo+ID4gPiA+DQo+ID4gPiA+IC4vZHBkay1sM2Z3ZC1ncmFwaCAgLWwgOCw5LDEwLDExIC1uIDQg LS0gLXAgMHgxIC0tY29uZmlnPSIoMCwwLDkpIg0KPiA+ID4gPiAtUCAtLW1vZGVsPSJkaXNwYXRj aCINCj4gPiA+ID4NCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogSGFpeXVlIFdhbmcgPGhhaXl1ZS53 YW5nQGludGVsLmNvbT4NCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogQ3VubWluZyBMaWFuZyA8Y3Vu bWluZy5saWFuZ0BpbnRlbC5jb20+DQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFpoaXJ1biBZYW4g PHpoaXJ1bi55YW5AaW50ZWwuY29tPg0KPiA+ID4gPiAtLS0NCj4gPiA+ID4gIGV4YW1wbGVzL2wz ZndkLWdyYXBoL21haW4uYyAgfCAyMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQ0K PiAtLS0tDQo+ID4gPiA+ICBsaWIvZ3JhcGgvcnRlX2dyYXBoX3dvcmtlci5oIHwgICAzICsNCj4g PiA+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMTk2IGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygt KQ0KPiA+ID4gPg0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbDNmd2QtZ3JhcGgvbWFp bi5jDQo+ID4gPiA+IGIvZXhhbXBsZXMvbDNmd2QtZ3JhcGgvbWFpbi5jIGluZGV4IDVmZWVhYjRm MGYuLjRlY2M2YzlhZjQgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2V4YW1wbGVzL2wzZndkLWdyYXBo L21haW4uYw0KPiA+ID4gPiArKysgYi9leGFtcGxlcy9sM2Z3ZC1ncmFwaC9tYWluLmMNCj4gPiA+ ID4gQEAgLTIzLDYgKzIzLDEyIEBADQo+ID4gPiA+ICAjaW5jbHVkZSA8cnRlX2N5Y2xlcy5oPg0K PiA+ID4gPiAgI2luY2x1ZGUgPHJ0ZV9lYWwuaD4NCj4gPiA+ID4gICNpbmNsdWRlIDxydGVfZXRo ZGV2Lmg+DQo+ID4gPiA+ICsjZGVmaW5lIEdSQVBIX01PREVMX1JUQyAwIC8qIFJ1bi10by1jb21w bGV0aW9uIG1vZGVsLCBzZXQgYnkNCj4gZGVmYXVsdC4NCj4gPiA+ID4gKyovICNkZWZpbmUgR1JB UEhfTU9ERUxfTUNPUkVfRElTUEFUQ0ggMSAvKiBEaXNwYXRjaCBtb2RlbC4gKi8NCj4gPiA+ICNk ZWZpbmUNCj4gPiA+ID4gK0dSQVBIX01PREVMX01DT1JFX1JVTlRJTUVfU0VMRUNUIDIgLyogU3Vw cG9ydCB0byBzZWxlY3QgbW9kZWwNCj4gYnkNCj4gPiA+ICovDQo+ID4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwYXJzaW5nIG1vZGVsIGluDQo+ID4g PiA+ICtjbWRsaW5lLiAqLw0KPiA+ID4NCj4gPiA+IEFmdGVyIG1vdmluZyBtb2RlbCB0byBncmFw aC0+bW9kZWwsIENhbiB5b3UgY2hlY2sgdGhlIHBlcmZvcm1hbmNlLg0KPiA+DQo+ID4gSW4gbXkg ZW52LCBJIHRlc3QgbDNmd2QtZ3JhcGgsIEkgZ290IHRoZSBzYW1lIHRocm91Z2hwdXQuKHNsaWdo dA0KPiA+IGltcHJvdmUgY291bGQgYmUgdHJlYXRlZCBhcyBqaXR0ZXIpIEZvciBncmFwaF9wZXJm X2F1dG90ZXN0IGluIHRlc3QNCj4gPiBhcHAsIHRoZXJlIGlzIHNsaWdodCBkcm9wIChBYm91dCAw LjIlIGNhbGwsIHNpbWlsYXIgY3ljbGVzL2NhbGwpIENhbiBpdCBiZSB0cmVhdGVkDQo+IGFzIGpp dHRlcj8NCj4gDQo+IE1vc3QgbGlrZWx5Lg0KPiBUcnkgaW4gZm9sbG93aW5nIGluIGZhc3RoIHBh dGguDQo+ICBjb25zdCAuLi4gbW9kZWwgPSBncmFwaC0+bW9kZWw7DQo+IA0KDQpCeSBkZWZhdWx0 IHdlIHNldCBSVEVfR1JBUEhfTU9ERUxfU0VMRUNUID09IFJURV9HUkFQSF9NT0RFTF9SVEMsDQpT byBnZXQgbW9kZWwgaXMgb25seSBpbiBzdGF0cywgbm90IGluIGZhc3QgcGF0aC4NCg0KSSBmb3Vu ZCB0aGUgcm9vdCBjYXVzZSBpcyBjb21pbmcgZnJvbSB0aGUgYWRkaXRpb25hbCB1bml0IHRlc3Qu DQoNCkJ1dCBhY3R1YWxseSwgaXQgc2hvdWxkIG5vdCBiZSBjYWxsZWQuICBBbGwgYWRkZWQgVVQg aXMgdW5kZXIgZ3JhcGhfYXV0b3Rlc3QsIG5vdCBpbiBncmFwaF9wZXJmX2F1dG90ZXN0Lg0KDQpJ dCdzIHN0cmFuZ2UgaWYgSSBkZXN0cm95IHRoZSBjbG9uZWQgZ3JhcGggaW4gdGVzdGNhc2UgaW4g dGhlIGFkZGl0aW9uYWwgVVQsIGNhbiBnZXQgc2FtZSBzdGF0cyBhcyB3ZSBleHBlY3RlZChldmVu DQpiZXR0ZXIgcGVyZm9ybWFuY2UpLiBBIGxpdHRsZSBtb3JlIGNhbGxzLCBvYmpzIGFuZCBiZXR0 ZXIgY3ljbGVzL2NhbGwgKDI4LT4yNykuDQoNCk5ldzoNCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rDQp8Tm9kZSAgICAg ICAgICAgICAgICAgICAgICAgICAgIHxjYWxscyAgICAgICAgICB8b2JqcyAgICAgICAgICAgfHJl YWxsb2NfY291bnQgIHxvYmpzL2NhbGwgICAgICB8b2Jqcy9zZWMoMTBFNikgfGN5Y2xlcy9jYWxs fA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSsNCnx0ZXN0X2dyYXBoX3BlcmZfd29ya2VyLTAtMCAgICAgfDEwMjg2MzUz ICAgICAgIHwyNjMzMzA2MzY4ICAgICB8MSAgICAgICAgICAgICAgfDI1Ni4wMDAgICAgICAgIHwy MDM3LjY3NjAzMiAgICB8MjcuMDAwMCAgICB8DQp8dGVzdF9ncmFwaF9wZXJmX3dvcmtlci0xLTAg ICAgIHwxMDI4NjcwOSAgICAgICB8MjYzMzM5NzUwNCAgICAgfDEgICAgICAgICAgICAgIHwyNTYu MDAwICAgICAgICB8MjAzNy43NjcxNjggICAgfDI3LjAwMDAgICAgfA0KfHRlc3RfZ3JhcGhfcGVy Zl93b3JrZXItMi0wICAgICB8MTAyODY3MzIgICAgICAgfDI2MzM0MDMzOTIgICAgIHwxICAgICAg ICAgICAgICB8MjU2LjAwMCAgICAgICAgfDIwMzcuNzczMDU2ICAgIHwyNy4wMDAwICAgIHwNCnx0 ZXN0X2dyYXBoX3BlcmZfd29ya2VyLTMtMCAgICAgfDEwMjg2NzUxICAgICAgIHwyNjMzNDA4MjU2 ICAgICB8MSAgICAgICAgICAgICAgfDI1Ni4wMDAgICAgICAgIHwyMDM3Ljc3NzkyMCAgICB8Mjcu MDAwMCAgICB8DQp8dGVzdF9ncmFwaF9wZXJmX3NvdXJjZS0wICAgICAgIHwxMDI4Njc3NCAgICAg ICB8MjYzMzQxNDE0NCAgICAgfDIgICAgICAgICAgICAgIHwyNTYuMDAwICAgICAgICB8MjAzNy43 ODM1NTIgICAgfDI3LjAwMDAgICAgfA0KfHRlc3RfZ3JhcGhfcGVyZl9zaW5rLTAgICAgICAgICB8 MTAyODY3OTEgICAgICAgfDI2MzM0MTg0OTYgICAgIHwxICAgICAgICAgICAgICB8MjU2LjAwMCAg ICAgICAgfDIwMzcuNzg4MTYwICAgIHwyNy4wMDAwICAgIHwNCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rDQoNCg0KPiA+ DQo+ID4gT2xkOg0KPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQ0KPiAt LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKw0KPiA+IHxOb2RlICAgICAgICAgICAgICAg ICAgICAgICAgICAgfGNhbGxzICAgICAgICAgIHxvYmpzICAgICAgICAgICB8cmVhbGxvY19jb3Vu dCAgfG9ianMvY2FsbA0KPiB8b2Jqcy9zZWMoMTBFNikgfGN5Y2xlcy9jYWxsfA0KPiA+ICstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQ0KPiAtLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKw0KPiA+IHx0ZXN0X2dyYXBoX3BlcmZfd29ya2VyLTAtMCAgICAgfDEwMTc1MTc2 ICAgICAgIHwyNjA0ODQ1MDU2ICAgICB8MQ0KPiB8MjU2LjAwMCAgICAgICAgfDIwMTUuMzk0MzA0 ICAgIHwyNy4wMDAwICAgIHwNCj4gPiB8dGVzdF9ncmFwaF9wZXJmX3dvcmtlci0xLTAgICAgIHwx MDE3NTU0MiAgICAgICB8MjYwNDkzODc1MiAgICAgfDENCj4gfDI1Ni4wMDAgICAgICAgIHwyMDE1 LjQ4ODAwMCAgICB8MjguMDAwMCAgICB8DQo+ID4gfHRlc3RfZ3JhcGhfcGVyZl93b3JrZXItMi0w ICAgICB8MTAxNzU1NjUgICAgICAgfDI2MDQ5NDQ2NDAgICAgIHwxDQo+IHwyNTYuMDAwICAgICAg ICB8MjAxNS40OTM4ODggICAgfDI4LjAwMDAgICAgfA0KPiA+IHx0ZXN0X2dyYXBoX3BlcmZfd29y a2VyLTMtMCAgICAgfDEwMTc1NTkzICAgICAgIHwyNjA0OTUxODA4ICAgICB8MQ0KPiB8MjU2LjAw MCAgICAgICAgfDIwMTUuNTAxMDU2ICAgIHwyNy4wMDAwICAgIHwNCj4gPiB8dGVzdF9ncmFwaF9w ZXJmX3NvdXJjZS0wICAgICAgIHwxMDE3NTYyMyAgICAgICB8MjYwNDk1OTQ4OCAgICAgfDINCj4g fDI1Ni4wMDAgICAgICAgIHwyMDE1LjUwODQ4MCAgICB8MjcuMDAwMCAgICB8DQo+ID4gfHRlc3Rf Z3JhcGhfcGVyZl9zaW5rLTAgICAgICAgICB8MTAxNzU2NDIgICAgICAgfDI2MDQ5NjQzNTIgICAg IHwxDQo+IHwyNTYuMDAwICAgICAgICB8MjAxNS41MTM2MDAgICAgfDI3LjAwMDAgICAgfA0KPiA+ ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQ0KPiAtLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKw0KPiA+DQo+ID4gTmV3Og0KPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQ0KPiAtLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKw0KPiA+ IHxOb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgfGNhbGxzICAgICAgICAgIHxvYmpzICAg ICAgICAgICB8cmVhbGxvY19jb3VudCAgfG9ianMvY2FsbA0KPiB8b2Jqcy9zZWMoMTBFNikgfGN5 Y2xlcy9jYWxsfA0KPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQ0KPiAt LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKw0KPiA+IHx0ZXN0X2dyYXBoX3BlcmZfd29y a2VyLTAtMCAgICAgfDEwMTU0OTUzICAgICAgIHwyNTk5NjY3OTY4ICAgICB8MQ0KPiB8MjU2LjAw MCAgICAgICAgfDIwMTAuOTYwMTI4ICAgIHwyNy4wMDAwICAgIHwNCj4gPiB8dGVzdF9ncmFwaF9w ZXJmX3dvcmtlci0xLTAgICAgIHwxMDE1NTMxNiAgICAgICB8MjU5OTc2MDg5NiAgICAgfDENCj4g fDI1Ni4wMDAgICAgICAgIHwyMDExLjA1MzA1NiAgICB8MjcuMDAwMCAgICB8DQo+ID4gfHRlc3Rf Z3JhcGhfcGVyZl93b3JrZXItMi0wICAgICB8MTAxNTUzMzggICAgICAgfDI1OTk3NjY1MjggICAg IHwxDQo+IHwyNTYuMDAwICAgICAgICB8MjAxMS4wNTg2ODggICAgfDI4LjAwMDAgICAgfA0KPiA+ IHx0ZXN0X2dyYXBoX3BlcmZfd29ya2VyLTMtMCAgICAgfDEwMTU1MzU3ICAgICAgIHwyNTk5Nzcx MzkyICAgICB8MQ0KPiB8MjU2LjAwMCAgICAgICAgfDIwMTEuMDYzNTUyICAgIHwyOC4wMDAwICAg IHwNCj4gPiB8dGVzdF9ncmFwaF9wZXJmX3NvdXJjZS0wICAgICAgIHwxMDE1NTM5NCAgICAgICB8 MjU5OTc4MDg2NCAgICAgfDINCj4gfDI1Ni4wMDAgICAgICAgIHwyMDExLjA3Mjc2OCAgICB8Mjcu MDAwMCAgICB8DQo+ID4gfHRlc3RfZ3JhcGhfcGVyZl9zaW5rLTAgICAgICAgICB8MTAxNTU0MjIg ICAgICAgfDI1OTk3ODgwMzIgICAgIHwxDQo+IHwyNTYuMDAwICAgICAgICB8MjAxMS4wODAxOTIg ICAgfDI3LjAwMDAgICAgfA0KPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQ0KPiAtLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKw0KPiA+DQo+ID4gPiBUaGlzIG1h eSBub3QgYmUgbmVlZGVkIGZvciBsM2Z3ZA0KPiA+ID4NCj4gPiBEbyB5b3UgbWVhbiBncmFwaC0+ bW9kZWw/DQo+IA0KPiBZZXMuDQo+IA0KPiA+DQo+ID4gPiBvciBpZiB0aGVyZSBpcyBub3QgbXVj aCBjb2RlIGR1cGxpY2F0aW9uLA0KPiA+ID4NCj4gPiA+IERvIHRoZSBmb2xsb3dpbmcgcmVtb3Zl IHRoZSBsaW1pdGF0aW9uLCAgI2RlZmluZQ0KPiA+ID4gUlRFX0dSQVBIX01PREVMX1NFTEVDVCBS VEVfR1JBUEhfTU9ERUxfUlRDLg0KPiA+ID4NCj4gPiA+IGdyYXBoX21haW5fbG9vcCBjaGFuZ2Ug dG8gZ3JhcGhfbWFpbl9ydGNfbG9vcA0KPiA+ID4NCj4gPiA+ICAjZGVmaW5lIFJURV9HUkFQSF9N T0RFTF9TRUxFQ1QgR1JBUEhfTU9ERUxfTUNPUkVfRElTUEFUQ0gNCj4gPiA+DQo+ID4gPiBncmFw aF9tYWluX2xvb3AgY2hhbmdlIHRvIGdyYXBoX21haW5fbWNvcmVfbG9vcA0KPiA+ID4NCj4gPiA+ IFNlbGVjdCB0aGUgZm9sbG93aW5nIGJhc2VkIG9uIHJ1bnRpbWUgb3B0aW9uDQo+ID4gPiAgICAg ICAgIC8qIExhdW5jaCBwZXItbGNvcmUgaW5pdCBvbiBldmVyeSB3b3JrZXIgbGNvcmUgKi8NCj4g PiA+ICAgICAgICAgcnRlX2VhbF9tcF9yZW1vdGVfbGF1bmNoKGdyYXBoX21haW5fcnRjX2xvb3As IE5VTEwsIFNLSVBfTUFJTik7DQo+IG9yDQo+ID4gPiAgICAgICAgIHJ0ZV9lYWxfbXBfcmVtb3Rl X2xhdW5jaChncmFwaF9tYWluX21jb3JlX2xvb3AsIE5VTEwsDQo+ID4gPiBTS0lQX01BSU4pOw0K PiA+ID4NCj4gPg0KPiA+IFdlIHdhbnQgdG8gMS4gVXNlIHNhbWUgQVBJIChydGVfZ3JhcGhfd2Fs aygpKSBmb3IgZGlmZiBtb2RlbHMuDQo+ID4gMi4gbm8gcGVyZm9ybWFuY2UgZHJvcCBmb3IgcnRj ICh1c2UgUlRFX0dSQVBIX01PREVMX1NFTEVDVCBpbiBjb21waWxlDQo+ID4gdGltZSkNCj4gPg0K PiA+IElmIEkgdW5kZXJzdGFuZCBjb3JyZWN0bHksIEkgbmVlZCByZW1vdmUgZ3JhcGgtPm1vZGVs IGFuZCBvbmx5IHVzZQ0KPiA+IFJURV9HUkFQSF9NT0RFTF9TRUxFQ1QgdG8gc2VsZWN0IG1vZGVs cz8NCj4gPg0KPiA+IEFuZCBjaGFuZ2UgaXQgYXMNCj4gPiBncmFwaF9tYWluX3J0Y19sb29wKCkN Cj4gPiB7DQo+ID4gICBXaGlsZSgxKQ0KPiA+ICAgICBydGVfZ3JhcGhfd2Fsa19ydGMoKQ0KPiA+ IH0NCj4gPg0KPiA+IEJ1dCBhY3R1YWxseSwgSSB0aGluayBncmFwaC0+bW9kZWwgaXMgbmVlZCwg ZXNwZWNpYWxseSBmb3IgY29uZmlnDQo+ID4gc3RhZ2UgYW5kIGZvciBydW50aW1lIGNvbmZpZyBJ ZiBzZXQgUlRFX0dSQVBIX01PREVMX1NFTEVDVF9SVU5USU1FLg0KPiANCj4gWWVzLiBBZ3JlZS4g SWYgdGhlcmUgaXMgbm8gTUFKT1IgcGVyZm9ybWFuY2UgaXNzdWVzIGxldHMgdXNlDQo+IFJURV9H UkFQSF9NT0RFTF9TRUxFQ1RfUlVOVElNRSBmb3IgbDNmd2QuDQo+IA0KDQpUaGFua3MsIHRoZXJl IGlzIG5vIG1ham9yIHBlcmZvcm1hbmNlIGlzc3Vlcy4gSSB3aWxsIGtlZXAgdG8gdXNlIGN1cnJl bnQNCnNjaGVtZS4NCg0KPiA+IFdlIG5lZWQgdGhlIG1vZGVsIHR5cGUgdG8gZGVjaWRlIHRvIGFs bG9jIHdvcmtxdWV1ZSBhbmQgdXNlDQo+ID4gUlRFX0dSQVBIX01PREVMX1NFTEVDVCB0byBjaG9v c2UgdGhlIHdhbGsuDQo+ID4NCj4gPg0KPiA+ID4gPiAgICAgICAgIG1lbXNldCgmcmV3cml0ZV9k YXRhLCAwLCBzaXplb2YocmV3cml0ZV9kYXRhKSk7DQo+ID4gPiA+ICAgICAgICAgcmV3cml0ZV9s ZW4gPSBzaXplb2YocmV3cml0ZV9kYXRhKTsgZGlmZiAtLWdpdA0KPiA+ID4gPiBhL2xpYi9ncmFw aC9ydGVfZ3JhcGhfd29ya2VyLmggYi9saWIvZ3JhcGgvcnRlX2dyYXBoX3dvcmtlci5oDQo+ID4g PiA+IGluZGV4IDU0MWMzNzNjYjEuLjE5YjRjMTUxNGYgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2xp Yi9ncmFwaC9ydGVfZ3JhcGhfd29ya2VyLmgNCj4gPiA+ID4gKysrIGIvbGliL2dyYXBoL3J0ZV9n cmFwaF93b3JrZXIuaA0KPiA+ID4gPiBAQCAtMjYsNiArMjYsOSBAQCBfX3J0ZV9leHBlcmltZW50 YWwgIHN0YXRpYyBpbmxpbmUgdm9pZA0KPiA+ID4gPiBydGVfZ3JhcGhfd2FsayhzdHJ1Y3QgcnRl X2dyYXBoICpncmFwaCkgIHsNCj4gPiA+ID4gKyNkZWZpbmUgUlRFX0dSQVBIX01PREVMX1JUQyAw DQo+ID4gPiA+ICsjZGVmaW5lIFJURV9HUkFQSF9NT0RFTF9NQ09SRV9ESVNQQVRDSCAxDQo+ID4g Pg0KPiA+ID4gTm8gbmVlZCBmb3IgZHVwbGljYXRlIGVudW0uIFBsZWFzZSByZW1vdmUgZW51bSBt YWtlICB0aGlzIGFzIGluDQo+ID4gPiBwdWJsaWMgaGVhZGVyIGZpbGUuDQo+ID4gPg0KPiA+IFll cywgaXQgd2lsbCBjYXVzZSBubyBkZWZpbmVkIHdhcm5pbmdzLg0KPiA+IFRoYW5rcyBmb3IgeW91 ciBjb21tZW50cy4NCj4gPiBJIHdpbGwgcmVtb3ZlIGVudW0gYW5kIGRlZmluZSBtb2RlbCB0eXBl IG1hY3JvcyBpbiBwdWJsaWMgaGVhZGVyLiBBbmQNCj4gPiBhbHNvIGNoYW5nZSB0aGUgcmVsYXRl ZCBzdHJ1Y3RzL0FQSXMuDQo+IA0KPiBBbHNvIGFkZCBhIGNvbW1lbnQgaW4gUlRFX0dSQVBIX01P REVMX01DT1JFX0RJU1BBVENILCBJZiBhZGRpbmcgbmV3DQo+IGVudHJ5LCB0aGVuIHVwZGF0ZSBn cmFwaF9pc192YWxpZCBBUEkuDQo+IA0KR290IGl0LiBUaGFua3MgdmVyeSBtdWNoLg0KDQo+ID4N Cj4gPiA+DQo+ID4gPiA+ICsNCj4gPiA+DQo+ID4gPiBBZGQgY29tbWVudCBoZXJlLCBPbiBob3cg IGFwcGxpY2F0aW9uIHVzZXMgdGhpcywgYWthLiAgYmVmb3JlDQo+ID4gPiBpbmxjdWRpbmcgdGhl IHdvcmtlciBoZWFkZXIgZmlsZSAjZGVmaW5lIFJURV9HUkFQSF9NT0RFTF9TRUxFQ1QNCj4gPiA+ IFJURV9HUkFQSF9NT0RFTF9SVEMuDQo+ID4gPiBQbGVhc2UgY2hhbmdlIHRoZSB0ZXh0IGFzIG5l ZWRlZC4NCj4gPiBZZXMsIEkgd2lsbCBhZGQgY29tbWVudCBhbmQgYWRkIHRoZSB1c2FnZSBpbiBk b2N1bWVudC4NCj4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiA+ICAjaWYgIWRlZmluZWQoUlRFX0dS QVBIX01PREVMX1NFTEVDVCkgfHwNCj4gUlRFX0dSQVBIX01PREVMX1NFTEVDVCA9PQ0KPiA+ID4g UlRFX0dSQVBIX01PREVMX1JUQw0KPiA+ID4gPiAgICAgICAgIHJ0ZV9ncmFwaF93YWxrX3J0Yyhn cmFwaCk7ICAjZWxpZiBSVEVfR1JBUEhfTU9ERUxfU0VMRUNUDQo+ID4gPiA+ID09DQo+ID4gPiBS VEVfR1JBUEhfTU9ERUxfTUNPUkVfRElTUEFUQ0gNCj4gPiA+ID4gLS0NCj4gPiA+ID4gMi4zNy4y DQo+ID4gPiA+DQo=