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 8B069A00C3; Tue, 18 Jan 2022 09:49:04 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E0E8D42722; Tue, 18 Jan 2022 09:48:42 +0100 (CET) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2058.outbound.protection.outlook.com [40.107.244.58]) by mails.dpdk.org (Postfix) with ESMTP id EEBA24067E for ; Tue, 18 Jan 2022 05:39:25 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FGvEopgcd0W+51cxf9xXYTjKjeSTbBv0hnP6hGAszgxNsmjaXOyyxulTkznc9uj0a3WJgVI2J40x3e8s0fSq8fN/8LDe9EDNwC7otS0Oi+5xWfOVErtSg/YiPwtlbLKrD98YM6HorkV7k/A/zMUJ4nqIu2QnAlQGC8+jtogp/9jATkqxs2U4fXQixdjSJJ9QsioJhev8QWxsA2nO/E1Q6OXV6IScayIJzDu9A4ChIIV/3gae/6qscyudPQJAgYofKal//yw/fbSJSnme2kN1iGCat/QjfgaVOcZIqU63pNn2rs5gaH2W5vlzWPXrYbu66LJTRzdksOL2fpiPCkak1A== 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=6HH1pT4jqa26bp/Ozj5m/shVc229PgIHg7tj/RnmTRM=; b=SHsyoR2mpovnC8zl0quurvZmZP1RLoY73cqG+Efir9+wZ7AKQWOwtricUHEcpx1LNVvtATQqKozrWf+9vUjow64JVVxK0lwgBF7kL5tYrOGrSw4nCumOkmYWOd7ThnhGT4wTdErcYbxoZ280Yhs1ZTgn0TsCOhl9I1WwtE/a3Og0GVLc/NIO+iCg3R+BpP4aFWaoi2zYSpq1soHRo35yIhOcZeeQ2qLI5EWxVEwBLph2UKzsddwFQKvxGRYFfHGWW/0KlRQ/Rt9ag7jw5jKDwillXcwf6/B+H6p3b5Qk3Pi6cX6CddeDhGgy6WkTwB6xzoyiwdarFXE8bXVTv6iPZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6HH1pT4jqa26bp/Ozj5m/shVc229PgIHg7tj/RnmTRM=; b=ns5gSx65X6WtaJixSsmpT6ifm3ffxhQcAHJa9fj3ub9kzn/Oi8J72LFZZ1i+50iLdXXjw/s+ZCQ5jzrGxeUMXdVQL/5PPslleyA7sKG/IbU8+H7fPAFQ4gf/nw1bdQA7Xk2KPeeh8d4Jkb1YA9gqieWXNdu+6XCLKEIAz8A0DPk= Received: from SN6PR05MB4895.namprd05.prod.outlook.com (2603:10b6:805:9c::25) by BYAPR05MB4070.namprd05.prod.outlook.com (2603:10b6:a02:88::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.4; Tue, 18 Jan 2022 04:39:22 +0000 Received: from SN6PR05MB4895.namprd05.prod.outlook.com ([fe80::add9:2744:8322:b7f5]) by SN6PR05MB4895.namprd05.prod.outlook.com ([fe80::add9:2744:8322:b7f5%6]) with mapi id 15.20.4909.007; Tue, 18 Jan 2022 04:39:22 +0000 From: Kumara Parameshwaran To: Ferruh Yigit , Kumara Parameshwaran , "keith.wiles@intel.com" CC: "dev@dpdk.org" , Raslan Darawsheh Subject: Re: [PATCH] net/tap: Bug fix to populate fds in secondary process Thread-Topic: [PATCH] net/tap: Bug fix to populate fds in secondary process Thread-Index: AQHX4nw83Zkm9pLdNEORTB8YW8L28axn2XMAgACkGgI= Date: Tue, 18 Jan 2022 04:39:21 +0000 Message-ID: References: <20211126041515.96259-1-kumaraparamesh92@gmail.com> <83fe377d-adfe-76ca-5bbb-4f02f8575380@intel.com> In-Reply-To: <83fe377d-adfe-76ca-5bbb-4f02f8575380@intel.com> Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: suggested_attachment_session_id: 88e2ca29-f754-1c8f-1ddc-dc1b1e767b0d authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vmware.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ff4d6878-63ab-4138-c4e3-08d9da3c7f6c x-ms-traffictypediagnostic: BYAPR05MB4070:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2657; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 26zoOz5WrhXr653dAkw5TqKMHJQZI2nH+NIfvPxoEAMirJ9hcuwc5qvG+Ro6BT+zFGPu507rX8tgP1ZoFx5jXL2MNL9ch//TFljTIJKvmFSJsABkapRzk5OmGFUqUvhIBZ9U9Ze8Hk4ZAXwlwM3phdO2Ne8L03cxlOJ1L7q0iz0VYoxufMdNH8nqBlEqlcVsOeKdS5nrzI2ZDZpdh3O8RIUcnJDX63D7g+xSRAE/Nest8b3PVmSnl1CGwYANHNTS7rr+oIQLw3pmR0MQjWx0rawf11itMR4dFRcUje9MiaLF6lSt3osFk56XxPo0eD9Jq1Ce/GgOBSi/FjFYhAOJutm5LYt+AYMGqSqjIIR+b3RIMc72zH/jJiQ/qR7gKLCc8Dw9k74SO4xE80W8A4I7fQeWzLS9VEr8T3yfTbMzgVPQq4Tam2RIMmpCyIIiFxFT5ggfJmEB7jJL2UbbpAnIlmvLlmShaX2WzcnTkY22/+hcpqIYngYRjd8C9eAz6Kx+fpbGb2sxSzMcZcFof+yimpgSxaPH64WR89y2wU6Hzri+JggXI+ek2AJUgCDIKeqI9v4xdBpIsS2Oe04Duqck4gDccKHLVOjc5LAqW3NKyuouB2y/A6NZu2pM/qdsPnFW23EeGs2LLGkrMN6l5TkpRHRtbwVYac6L2N9gW07vIhFc3HEEYCwB7V9nyHXfkzEXTvtPbVFmbo3zWygHhbaSPAire9yQLDBg9LJpwjb//zKN/dEV6do3bFX/atBGAO42 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR05MB4895.namprd05.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(9686003)(8676002)(7696005)(33656002)(19627405001)(6506007)(76116006)(66556008)(508600001)(66946007)(66476007)(66446008)(64756008)(4326008)(53546011)(8936002)(38070700005)(83380400001)(91956017)(38100700002)(110136005)(5660300002)(2906002)(54906003)(316002)(55016003)(52536014)(55236004)(71200400001)(86362001)(186003)(26005)(122000001)(20210929001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MmpWc2o5VDMwTWlwMG44dFFqU1U5Skl5UUY3VVZTMjNaTEJBeVo5ZE5NTitX?= =?utf-8?B?YzBrR0N1djN3S2crRmx0a0s3WFBRcDRJa3JDZThmRTUrS0srcEJXZUNYTmdE?= =?utf-8?B?aGlpcldvYlNXZjh6dHNCN3VocktISi9CWjllSEJyS3h2djVKWXZrdVR0QTgz?= =?utf-8?B?SVBrVUJhalQ0SE0vVVVOWUdiVHNpRlAzZ1FuWDZiSmMrZlZuVHlHWjJtbFhE?= =?utf-8?B?dHJqUExoc3NEQktoc3g0YWQyS3ZvY0RTdjVjNWhqd3dvcWxOZjdFOUJYRk5W?= =?utf-8?B?K3hCalJ2WmJIUnExbHNCam9sQ1FMbmpmMERtMjlQVC80V0N6bWNMWTN4Nlgy?= =?utf-8?B?STVqZ2JYQ3ViN0RYN3YrNHJ6MHo2TWQ4VHBjS0V4STZDU1h1a3dhRFpXeXFR?= =?utf-8?B?aVhpc2VZdmdhWEpWSytNUmJGUXY2VFV3WDAwT1N4dmkvZzlmRngxNVhYN1Jj?= =?utf-8?B?UjJZd0dnYzNoUlR5MHpHbkl5NzZXV2lhRkRGeUJXNm5TZ3VJa285SmNpdVFp?= =?utf-8?B?VWxtVzNFNkRYcHNSem9qNkJoa2dmeVFkVm1scGpBSDdTeTIyazJDTjBxaktH?= =?utf-8?B?S0ZpWlRWQU9iUmlkUXNlanVkOTFCaUVvc1d1OXlMUTJid0NtNHE5bEZBRmpZ?= =?utf-8?B?NXNpajBRL0FhTW0xL1diUkNDT00zQUN3b3F1OW5uekN1aElvYlNsN01Lbmdk?= =?utf-8?B?aXV5RTdkcW9BQUpLa01acEJHSlBFRnNtbnc5WUdVblRCc1VySjVVOVdta3BT?= =?utf-8?B?VWJ1ZmZqQ2MwY1pwYTVNNElnOVFpMEpLMk9qMzN4L2JDNXJMRmFxbnN2S1J2?= =?utf-8?B?dHFCdXRIMUVTTk1hT04rWmt3SE16dHNTb1VVMkFtVGFWMm15QzlVTndsQTN0?= =?utf-8?B?bm11UUorK1o0WUM5eHdQVHk1NmZoUUlXY2ErUnF0cmtzQ1NQc0RCVEFNakVI?= =?utf-8?B?WVJFNHBGeWNjYjJqclJWTHFNclFLVi9IZXd2UWJvRE5LS2h3a24wcEN4cGNi?= =?utf-8?B?aXhVQm5GTzlFRlU2eHcveTkydHI2WkwyMldVc1pUZDZBV012K1ZReXJQb0Zu?= =?utf-8?B?ampxTUZyVzFLMVZqZmxVRzM3Vm9MeU9HZW5HVkJaNmlSSDlUS3Eyb0RxeERR?= =?utf-8?B?bVBzMm9ndVU3Q1JRVjdES051cVNKYkVTZExWRDQ4aEw3MDVLR2lvNlp5a0E2?= =?utf-8?B?dXZiUllKS2diTGFYT0dsZjcyd3BtSmQvWVE4c0I1Um1iZHZvWkovbTcwc2xB?= =?utf-8?B?QjZTeG5sK1dOUlN4NS9Va3F5R3daVEZMSFF1endVOHR2QlBFU3dyOUkzVUJT?= =?utf-8?B?NEJ2cG8vUW90VXg1Z3JFcTVpVE5yNHZqTmNvVllMVlhGendkdmN2NW1KaTA0?= =?utf-8?B?UFZVa2V1KzY5NWJHbDNxRGdqUDhQWHU4OER5U3c4UDBOWnFKZkpEWlZOajh1?= =?utf-8?B?M1U1S0lVanBGOXgzbkNFajcvYWUxT1grdGozV21aaDFHenRyNW1NSnlNQmVa?= =?utf-8?B?Q05KSFFzNmpmQUZHOTJFa1BVRlZZN3ROK3pwUXVFMTRCci9lZ1pDbmhNQkNO?= =?utf-8?B?SlVjbld2cTI5MFhuaGZFd0pHOG1iWHBweS9TRjcrZm9WRG81VlQ4SGZMdGpH?= =?utf-8?B?RHB2aFhuZDdqY2tFaU1DSkVPSjh2WFRySkZobGNtUnp1cllYbHlBc2VOZm4z?= =?utf-8?B?eHpzNjlJMWdCMUZpNHZlWGJlUzI3MFNXVi8rUU1ESXQxZVNKRkhSd0ZXTUR5?= =?utf-8?B?Y0pzK3RSYTZrS0ZHcVBheXFjdGZ5c3BSOGc0VkVJQk1FdzVwK0RHai81eXVi?= =?utf-8?B?NTdDaDF4Rnk2aktYQUpGQ0xjemRJeHh5R2ZwYkZTcFdFOHF6TlhVSDBKMmtR?= =?utf-8?B?clJsMjNrSk5qdWxJdnNRTnN1ZThreEg5d1BqMWZpZG04VHR0ZWF3Wm9OeEJ0?= =?utf-8?B?RXUzMW95dXVma3llRjBLUWZ1SVhrendtWFRlWjVjZmxqNXFvSWJNSHFqL1Ew?= =?utf-8?B?ZnBKOE5TWStZK3lRRlpXMzIxUTFLQXIybVlhdWF4K1JsVU1MMjY2UGJFNFU1?= =?utf-8?B?WDh6eWtsQmNsSjFHUnVxVXppTFJyRjQ0dEhuTmFVRmpURExVUW5YQlBHZFFm?= =?utf-8?B?enhXaWJVVnk1czJESlRBOXR5M2VIaldYcGpnMi9Fc0JUTlEvUXdONjVjak9V?= =?utf-8?B?aWc9PQ==?= Content-Type: multipart/alternative; boundary="_000_SN6PR05MB4895F392E59E2CA24A97AD6BB1589SN6PR05MB4895namp_" MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR05MB4895.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ff4d6878-63ab-4138-c4e3-08d9da3c7f6c X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jan 2022 04:39:21.9269 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: D877dpwobKQGeswHBTPzHsPhwMcV+2R5HaGY26STOv5Tc+EXNIxFtERphUcCFflN65yAQ8K8HeIST/SKbceCRw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR05MB4070 X-Mailman-Approved-At: Tue, 18 Jan 2022 09:48:37 +0100 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 --_000_SN6PR05MB4895F392E59E2CA24A97AD6BB1589SN6PR05MB4895namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpGcm9tOiBGZXJydWggWWlnaXQg PGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+DQpTZW50OiAxNyBKYW51YXJ5IDIwMjIgMjM6NTINClRv OiBLdW1hcmEgUGFyYW1lc2h3YXJhbiA8a3VtYXJhcGFyYW1lc2g5MkBnbWFpbC5jb20+OyBrZWl0 aC53aWxlc0BpbnRlbC5jb20gPGtlaXRoLndpbGVzQGludGVsLmNvbT4NCkNjOiBkZXZAZHBkay5v cmcgPGRldkBkcGRrLm9yZz47IEt1bWFyYSBQYXJhbWVzaHdhcmFuIDxrcGFyYW1lc2h3YXJAdm13 YXJlLmNvbT47IFJhc2xhbiBEYXJhd3NoZWggPHJhc2xhbmRAbnZpZGlhLmNvbT4NClN1YmplY3Q6 IFJlOiBbUEFUQ0hdIG5ldC90YXA6IEJ1ZyBmaXggdG8gcG9wdWxhdGUgZmRzIGluIHNlY29uZGFy eSBwcm9jZXNzDQoNCk9uIDExLzI2LzIwMjEgNDoxNSBBTSwgS3VtYXJhIFBhcmFtZXNod2FyYW4g d3JvdGU6DQo+IEZyb206IEt1bWFyYSBQYXJhbWVzaHdhcmFuIDxrcGFyYW1lc2h3YXJAdm13YXJl LmNvbT4NCj4NCj4gV2hlbiBhIHRhcCBkZXZpY2UgaXMgaG90cGx1Z2dlZCB0byBwcmltYXJ5IHBy b2Nlc3Mgd2hpY2ggaW4gdHVybg0KPiBhZGRzIHRoZSBkZXZpY2UgdG8gYWxsIHNlY29uZGFyeSBw cm9jZXNzLCB0aGUgc2Vjb25kYXJ5IHByb2Nlc3MNCj4gZG9lcyBhIHRhcF9tcF9hdHRhY2hfcXVl dWVzLCBidXQgdGhlIGZkcyBhcmUgbm90IHBvcHVsYXRlZCBpbg0KPiB0aGUgcHJpbWFyeSBkdXJp bmcgdGhlIHByb2JlIHRoZXkgYXJlIHBvcHVsYXRlZCBkdXJpbmcgdGhlIHF1ZXVlX3NldHVwLA0K PiBhZGRlZCBhIGZpeCB0byBzeW5jIHRoZSBxdWV1ZXMgZHVyaW5nIHJ0ZV9ldGhfZGV2X3N0YXJ0 DQo+DQoNCkhpIEt1bWFyYSwNCg0KT3JpZ2luYWwgaW50ZW50aW9uIHNlZW1zIGZpcnN0IHJ1bm5p bmcgcHJpbWFyeSBhcHBsaWNhdGlvbiwgbGF0ZXIgc2Vjb25kYXJ5LA0Kc28geWVzIGl0IGRvZXNu J3QgbG9va3MgbGlrZSBjb3ZlcmluZyB0aGUgaG90cGx1ZyBjYXNlLg0K4oCLVGhhbmtzLiBUaGUg aXNzdWUgaXMgd2hlbiB3ZSB1c2UgdGhlIHZkZXZfbmV0dnNjIGRyaXZlciB3aGljaCB1c2VzIFRB UCBpbnRlcmZhY2UsICBpbiBtdWx0aXByb2Nlc3MgYW5kIFJTUyBtb2RlIHRoaW5ncyBhcmUgYnJv a2VuLiBXZSBlbmNvdW50ZXJlZCB0aGlzIGlzc3VlIHdoaWxlIHVzaW5nIEF6dXJlIERQREsgUE1E Lg0KDQpJIGhhdmUgYSBmZXcgcXVlc3Rpb25zIGJlbG93LCBjYW4geW91IHBsZWFzZSBjaGVjaz8N Cg0KPiBTaWduZWQtb2ZmLWJ5OiBLdW1hcmEgUGFyYW1lc2h3YXJhbiA8a3BhcmFtZXNod2FyQHZt d2FyZS5jb20+DQo+IC0tLQ0KPiAgIGRyaXZlcnMvbmV0L3RhcC9ydGVfZXRoX3RhcC5jIHwgODAg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gICAxIGZpbGUgY2hhbmdlZCwg ODAgaW5zZXJ0aW9ucygrKQ0KPg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdGFwL3J0ZV9l dGhfdGFwLmMgYi9kcml2ZXJzL25ldC90YXAvcnRlX2V0aF90YXAuYw0KPiBpbmRleCBmMWI0OGNh ZTgyLi44ZTc5MTU2NTZiIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC90YXAvcnRlX2V0aF90 YXAuYw0KPiArKysgYi9kcml2ZXJzL25ldC90YXAvcnRlX2V0aF90YXAuYw0KPiBAQCAtNjcsNiAr NjcsNyBAQA0KPg0KPiAgIC8qIElQQyBrZXkgZm9yIHF1ZXVlIGZkcyBzeW5jICovDQo+ICAgI2Rl ZmluZSBUQVBfTVBfS0VZICJ0YXBfbXBfc3luY19xdWV1ZXMiDQo+ICsjZGVmaW5lIFRBUF9NUF9S RVFfU1RBUlRfUlhUWCAidGFwX21wX3JlcV9zdGFydF9yeHR4Ig0KPg0KPiAgICNkZWZpbmUgVEFQ X0lPVl9ERUZBVUxUX01BWCAxMDI0DQo+DQo+IEBAIC04ODAsMTEgKzg4MSw1MSBAQCB0YXBfbGlu a19zZXRfdXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+ICAgICAgICByZXR1cm4gdGFwX2lv Y3RsKHBtZCwgU0lPQ1NJRkZMQUdTLCAmaWZyLCAxLCBMT0NBTF9BTkRfUkVNT1RFKTsNCj4gICB9 DQo+DQo+ICtzdGF0aWMgaW50IHRhcF9tcF9yZXFfb25fcnh0eChzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldikNCj4gK3sNCj4gKyAgICAgc3RydWN0IHJ0ZV9tcF9tc2cgbXNnOw0KPiArICAgICBzdHJ1 Y3QgaXBjX3F1ZXVlcyAqcmVxdWVzdF9wYXJhbSA9IChzdHJ1Y3QgaXBjX3F1ZXVlcyAqKW1zZy5w YXJhbTsNCj4gKyAgICAgaW50IGVycjsNCj4gKyAgICAgaW50IGZkX2l0ZXJhdG9yID0gMDsNCj4g KyAgICAgc3RydWN0IHBtZF9wcm9jZXNzX3ByaXZhdGUgKnByb2Nlc3NfcHJpdmF0ZSA9IGRldi0+ cHJvY2Vzc19wcml2YXRlOw0KPiArICAgICBpbnQgaTsNCj4gKw0KPiArICAgICBtZW1zZXQoJm1z ZywgMCwgc2l6ZW9mKG1zZykpOw0KPiArICAgICBzdHJjcHkobXNnLm5hbWUsIFRBUF9NUF9SRVFf U1RBUlRfUlhUWCk7DQo+ICsgICAgIHN0cmxjcHkocmVxdWVzdF9wYXJhbS0+cG9ydF9uYW1lLCBk ZXYtPmRhdGEtPm5hbWUsDQo+ICsgICAgICAgICAgICAgc2l6ZW9mKHJlcXVlc3RfcGFyYW0tPnBv cnRfbmFtZSkpOw0KDQpXaHkgb25lIHVzZSAnc3RyY3B5JyBhbmQgb3RoZXIgJ3N0cmxjcHknLCBj YW4geW91IHBsZWFzZSB1bmlmeSBib3RoIHRvICdzdHJsY3B5Jz8NCuKAi1N1cmUsIHdpbGwgdW5p ZnkgaXQuDQoNCj4gKyAgICAgbXNnLmxlbl9wYXJhbSA9IHNpemVvZigqcmVxdWVzdF9wYXJhbSk7 DQo+ICsgICAgIGZvciAoaSA9IDA7IGkgPCBkZXYtPmRhdGEtPm5iX3R4X3F1ZXVlczsgaSsrKSB7 DQo+ICsgICAgICAgICAgICAgbXNnLmZkc1tmZF9pdGVyYXRvcisrXSA9IHByb2Nlc3NfcHJpdmF0 ZS0+dHhxX2Zkc1tpXTsNCj4gKyAgICAgICAgICAgICBtc2cubnVtX2ZkcysrOw0KPiArICAgICAg ICAgICAgIHJlcXVlc3RfcGFyYW0tPnR4cV9jb3VudCsrOw0KPiArICAgICB9DQo+ICsgICAgIGZv ciAoaSA9IDA7IGkgPCBkZXYtPmRhdGEtPm5iX3J4X3F1ZXVlczsgaSsrKSB7DQo+ICsgICAgICAg ICAgICAgbXNnLmZkc1tmZF9pdGVyYXRvcisrXSA9IHByb2Nlc3NfcHJpdmF0ZS0+cnhxX2Zkc1tp XTsNCj4gKyAgICAgICAgICAgICBtc2cubnVtX2ZkcysrOw0KPiArICAgICAgICAgICAgIHJlcXVl c3RfcGFyYW0tPnJ4cV9jb3VudCsrOw0KPiArICAgICB9DQo+ICsNCj4gKyAgICAgUlRFX0FTU0VS VChyZXF1ZXN0X3BhcmFtLT50eHFfY291bnQgPT0gZGV2LT5kYXRhLT5uYl90eF9xdWV1ZXMpOw0K PiArICAgICBSVEVfQVNTRVJUKHJlcXVlc3RfcGFyYW0tPnJ4cV9jb3VudCA9PSBkZXYtPmRhdGEt Pm5iX3J4X3F1ZXVlcyk7DQo+ICsNCg0KQXJlIHRoZXNlIGFzc2VydGlvbnMgcmVhbGx5IHVzZWZ1 bD8NCkFzc2VydHMgYXJlIGdvb2QgdG8gdmVyaWZ5IHRoZSBleHRlcm5hbCBhc3N1bXB0aW9ucywg YnV0IGZvciB0aGlzIGNhc2UNCnRoZSB2YWx1ZXMgYXJlIGFsbCByZWxhdGVkIHRvIGFib3ZlIGxv Z2ljIGFscmVhZHkuDQrigItJIGFncmVlLCB3aWxsIHJlbW92ZSBpdC4NCg0KPiArICAgICBlcnIg PSBydGVfbXBfc2VuZG1zZygmbXNnKTsNCj4gKyAgICAgaWYgKGVyciA8IDApIHsNCj4gKyAgICAg ICAgICAgICBUQVBfTE9HKEVSUiwgIkZhaWxlZCB0byBzZW5kIHN0YXJ0IHJlcSB0byBzZWNvbmRh cnkgJWQiLA0KPiArICAgICAgICAgICAgICAgICAgICAgcnRlX2Vycm5vKTsNCj4gKyAgICAgICAg ICAgICByZXR1cm4gLTE7DQo+ICsgICAgIH0NCj4gKw0KPiArICAgICByZXR1cm4gMDsNCj4gK30N Cj4gKw0KPiAgIHN0YXRpYyBpbnQNCj4gICB0YXBfZGV2X3N0YXJ0KHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2KQ0KPiAgIHsNCj4gICAgICAgIGludCBlcnIsIGk7DQo+DQo+ICsgICAgIHRhcF9tcF9y ZXFfb25fcnh0eChkZXYpOw0KPiArDQoNCkFzIGZvciBhcyBJIHVuZGVyc3RhbmQgeW91ciBsb2dp YyBpcyBwcmltYXJ5IHNlbmRzIHRoZSBtZXNzYWdlIHRvIHRoZSBzZWNvbmRhcih5fGllcyksDQpz byB3aGF0IGhhcHBlbnMgZmlyc3Qgc2Vjb25kYXJ5IGlzIHN0YXJ0ZWQ/DQrigItJbiBjYXNlIG9m IFRBUCBQTUQgbG9va3MgbGlrZSB0aGVyZSBpcyBhbiBhc3N1bXB0aW9uIHdoZXJlIHByaW1hcnkg c2hvdWxkIGJlIHN0YXJ0ZWQgZmlyc3QuIFRoZXJlIGlzIGFuIGV4aXN0aW5nIGNoZWNrIGJlbG93 IGR1cmluZyB0aGUgcHJvYmUgZnVuY3Rpb24gY2FsbC4NCmlmICghcnRlX2VhbF9wcmltYXJ5X3By b2NfYWxpdmUoTlVMTCkpIHsNCiAgICAgVEFQX0xPRyhFUlIsICJQcmltYXJ5IHByb2Nlc3MgaXMg bWlzc2luZyIpOw0KICAgICAgcmV0dXJuIC0xOw0KfQ0KDQpXaGF0IGFib3V0IHNlY29uZGFyeSBz ZW5kcyB0aGUgbWVzc2FnZSB3aGVuIHRoZXkgYXJlIHN0YXJ0ZWQ/DQrigItJTUhPLCBzaW5jZSBw cmltYXJ5IHByb2Nlc3Mgc2V0dXBzIHRoZSBxdWV1ZSBpdCBzaG91bGQgYmUgc3VmZmljaWVudCBm b3IgdGhlIHByaW1hcnkgcHJvY2Vzc2VzIHRvIHRoZSBzZW5kIHRoZSBtZXNzYWdlIGFuZCBzZWNv bmRhcnkgbmVlZCBub3Qgc2VuZCBhbnl0aGluZy4NCg0KQWxzbyBhYm92ZSBmdW5jdGlvbnMgaXMg Y2FsbGVkIGJ5IGJvdGggcHJpbWFyeSBhbmQgc2Vjb25kYXJ5LCB3aGF0IGhhcHBlbnMgd2hlbiBp dCBpcw0KY2FsbGVkIGJ5IHNlY29uZGFyeT8gQW5kIHRoZSBsb2dpYyBpcyBub3QgY2xlYXIsIGl0 IGNhbiBiZSBnb29kIHRvIGFkZCBhIHByb2Nlc3MgdHlwZQ0KY2hlY2sgdG8gY2xhcmlmeS4NCuKA i1N1cmUsIHRoZXNlIGFyZSBmb3IgdGFwX2ludHJfaGFuZGxlX3NldCBhbmQgdGFwX2Rldl9zdGFy dCBmdW5jdGlvbnM/DQoNCj4gICAgICAgIGVyciA9IHRhcF9pbnRyX2hhbmRsZV9zZXQoZGV2LCAx KTsNCj4gICAgICAgIGlmIChlcnIpDQo+ICAgICAgICAgICAgICAgIHJldHVybiBlcnI7DQo+IEBA IC05MDEsNiArOTQyLDM5IEBAIHRhcF9kZXZfc3RhcnQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYp DQo+ICAgICAgICByZXR1cm4gZXJyOw0KPiAgIH0NCj4NCj4gK3N0YXRpYyBpbnQNCj4gK3RhcF9t cF9yZXFfc3RhcnRfcnh0eChjb25zdCBzdHJ1Y3QgcnRlX21wX21zZyAqcmVxdWVzdCwgX19ydGVf dW51c2VkIGNvbnN0IHZvaWQgKnBlZXIpDQo+ICt7DQo+ICsgICAgIHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2Ow0KPiArICAgICBpbnQgcmV0Ow0KPiArICAgICB1aW50MTZfdCBwb3J0X2lkOw0KPiAr ICAgICBjb25zdCBzdHJ1Y3QgaXBjX3F1ZXVlcyAqcmVxdWVzdF9wYXJhbSA9DQo+ICsgICAgICAg ICAgICAgKGNvbnN0IHN0cnVjdCBpcGNfcXVldWVzICopcmVxdWVzdC0+cGFyYW07DQo+ICsgICAg IGludCBmZF9pdGVyYXRvcjsNCj4gKyAgICAgaW50IHF1ZXVlOw0KPiArICAgICBzdHJ1Y3QgcG1k X3Byb2Nlc3NfcHJpdmF0ZSAqcHJvY2Vzc19wcml2YXRlOw0KPiArDQo+ICsgICAgIHJldCA9IHJ0 ZV9ldGhfZGV2X2dldF9wb3J0X2J5X25hbWUocmVxdWVzdF9wYXJhbS0+cG9ydF9uYW1lLCAmcG9y dF9pZCk7DQo+ICsgICAgIGlmIChyZXQpIHsNCj4gKyAgICAgICAgICAgICBUQVBfTE9HKEVSUiwg IkZhaWxlZCB0byBnZXQgcG9ydCBpZCBmb3IgJXMiLA0KPiArICAgICAgICAgICAgICAgICAgICAg cmVxdWVzdF9wYXJhbS0+cG9ydF9uYW1lKTsNCj4gKyAgICAgICAgICAgICByZXR1cm4gLTE7DQo+ ICsgICAgIH0NCj4gKyAgICAgZGV2ID0gJnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTs+ICsgICAg IHByb2Nlc3NfcHJpdmF0ZSA9IGRldi0+cHJvY2Vzc19wcml2YXRlOw0KPiArICAgICBkZXYtPmRh dGEtPm5iX3J4X3F1ZXVlcyA9IHJlcXVlc3RfcGFyYW0tPnJ4cV9jb3VudDsNCj4gKyAgICAgZGV2 LT5kYXRhLT5uYl90eF9xdWV1ZXMgPSByZXF1ZXN0X3BhcmFtLT50eHFfY291bnQ7DQo+ICsgICAg IGZkX2l0ZXJhdG9yID0gMDsNCj4gKyAgICAgUlRFX0xPRyhERUJVRywgUE1ELCAidGFwX2F0dGFj aCByeF9xOiVkIHR4X3E6JWRcbiIsIHJlcXVlc3RfcGFyYW0tPnJ4cV9jb3VudCwNCj4gKyAgICAg ICAgICAgICByZXF1ZXN0X3BhcmFtLT50eHFfY291bnQpOw0KPiArICAgICBmb3IgKHF1ZXVlID0g MDsgcXVldWUgPCByZXF1ZXN0X3BhcmFtLT50eHFfY291bnQ7IHF1ZXVlKyspDQo+ICsgICAgICAg ICAgICAgcHJvY2Vzc19wcml2YXRlLT50eHFfZmRzW3F1ZXVlXSA9IHJlcXVlc3QtPmZkc1tmZF9p dGVyYXRvcisrXTsNCj4gKyAgICAgZm9yIChxdWV1ZSA9IDA7IHF1ZXVlIDwgcmVxdWVzdF9wYXJh bS0+cnhxX2NvdW50OyBxdWV1ZSsrKQ0KPiArICAgICAgICAgICAgIHByb2Nlc3NfcHJpdmF0ZS0+ cnhxX2Zkc1txdWV1ZV0gPSByZXF1ZXN0LT5mZHNbZmRfaXRlcmF0b3IrK107DQo+ICsNCj4gKyAg ICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gICAvKiBUaGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVk IHdoZW4gdGhlIGN1cnJlbnQgcG9ydCBnZXRzIHN0b3BwZWQuDQo+ICAgICovDQo+ICAgc3RhdGlj IGludA0KPiBAQCAtMjQ0NSw2ICsyNTE5LDEyIEBAIHJ0ZV9wbWRfdGFwX3Byb2JlKHN0cnVjdCBy dGVfdmRldl9kZXZpY2UgKmRldikNCj4gICAgICAgICAgICAgICAgcmV0ID0gdGFwX21wX2F0dGFj aF9xdWV1ZXMobmFtZSwgZXRoX2Rldik7DQo+ICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMCkN Cj4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQo+ICsNCj4gKyAgICAgICAgICAg ICByZXQgPSBydGVfbXBfYWN0aW9uX3JlZ2lzdGVyKFRBUF9NUF9SRVFfU1RBUlRfUlhUWCwgdGFw X21wX3JlcV9zdGFydF9yeHR4KTsNCj4gKyAgICAgICAgICAgICBpZiAocmV0IDwgMCAmJiBydGVf ZXJybm8gIT0gRU5PVFNVUCkNCj4gKyAgICAgICAgICAgICAgICAgICAgIFRBUF9MT0coRVJSLCAi dGFwOiBGYWlsZWQgdG8gcmVnaXN0ZXIgSVBDIGNhbGxiYWNrOiAlcyIsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cmVycm9yKHJ0ZV9lcnJubykpOw0KPiArDQoNCldoaWxlIHRo aXMgdXBkYXRlIGZkcyBpbiBzdGFydCBsb2dpYyBpcyBhZGRlZCwgZG8gd2Ugc3RpbGwgbmVlZCB0 aGUgJ3RhcF9tcF9hdHRhY2hfcXVldWVzKCknPw0KQ2FuJ3Qgd2UgcmVtb3ZlIHRoZSAndGFwX21w X3N5bmNfcXVldWVzKCknIGFmdGVyIHRoaXMgY2hhbmdlPw0K4oCLQWdyZWVkLCB3aWxsIHJlbW92 ZSB0aGUgb2xkIHRhcF9tcF9hdHRhY2hfcXVldWVzIGFuZCB0YXBfbXBfc3luY19xdWV1ZXMuDQoN CkFuZCBuZWVkIHRvIHVucmVnaXN0ZXIgdGhlIG1wX2FjdGlvbiwgcG9zc2libHkgaW4gdGhlICd0 YXBfZGV2X2Nsb3NlKCknPw0K4oCLWWVzLCB3aWxsIGRvIGl0Lg0K --_000_SN6PR05MB4895F392E59E2CA24A97AD6BB1589SN6PR05MB4895namp_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgc3R5bGU9 ImRpc3BsYXk6bm9uZTsiPiBQIHttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO30gPC9zdHls ZT4NCjwvaGVhZD4NCjxib2R5IGRpcj0ibHRyIj4NCjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBD YWxpYnJpLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNv bG9yOiByZ2IoMCwgMCwgMCk7Ij4NCjxicj4NCjwvZGl2Pg0KPGRpdiBpZD0iYXBwZW5kb25zZW5k Ij48L2Rpdj4NCjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OkNhbGlicmksQXJpYWwsSGVsdmV0aWNh LHNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxMnB0OyBjb2xvcjpyZ2IoMCwwLDApIj4NCjxicj4NCjwv ZGl2Pg0KPGhyIHRhYmluZGV4PSItMSIgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrOyB3aWR0 aDo5OCUiPg0KPGRpdiBpZD0iZGl2UnBseUZ3ZE1zZyIgZGlyPSJsdHIiPjxmb250IGZhY2U9IkNh bGlicmksIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIiBzdHlsZT0iZm9udC1zaXplOjExcHQi PjxiPkZyb206PC9iPiBGZXJydWggWWlnaXQgJmx0O2ZlcnJ1aC55aWdpdEBpbnRlbC5jb20mZ3Q7 PGJyPg0KPGI+U2VudDo8L2I+IDE3IEphbnVhcnkgMjAyMiAyMzo1Mjxicj4NCjxiPlRvOjwvYj4g S3VtYXJhIFBhcmFtZXNod2FyYW4gJmx0O2t1bWFyYXBhcmFtZXNoOTJAZ21haWwuY29tJmd0Ozsg a2VpdGgud2lsZXNAaW50ZWwuY29tICZsdDtrZWl0aC53aWxlc0BpbnRlbC5jb20mZ3Q7PGJyPg0K PGI+Q2M6PC9iPiBkZXZAZHBkay5vcmcgJmx0O2RldkBkcGRrLm9yZyZndDs7IEt1bWFyYSBQYXJh bWVzaHdhcmFuICZsdDtrcGFyYW1lc2h3YXJAdm13YXJlLmNvbSZndDs7IFJhc2xhbiBEYXJhd3No ZWggJmx0O3Jhc2xhbmRAbnZpZGlhLmNvbSZndDs8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IFtQ QVRDSF0gbmV0L3RhcDogQnVnIGZpeCB0byBwb3B1bGF0ZSBmZHMgaW4gc2Vjb25kYXJ5IHByb2Nl c3M8L2ZvbnQ+DQo8ZGl2PiZuYnNwOzwvZGl2Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJCb2R5RnJh Z21lbnQiPjxmb250IHNpemU9IjIiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdCI+DQo8ZGl2 IGNsYXNzPSJQbGFpblRleHQiPk9uIDExLzI2LzIwMjEgNDoxNSBBTSwgS3VtYXJhIFBhcmFtZXNo d2FyYW4gd3JvdGU6PGJyPg0KJmd0OyBGcm9tOiBLdW1hcmEgUGFyYW1lc2h3YXJhbiAmbHQ7a3Bh cmFtZXNod2FyQHZtd2FyZS5jb20mZ3Q7PGJyPg0KJmd0OyA8YnI+DQomZ3Q7IFdoZW4gYSB0YXAg ZGV2aWNlIGlzIGhvdHBsdWdnZWQgdG8gcHJpbWFyeSBwcm9jZXNzIHdoaWNoIGluIHR1cm48YnI+ DQomZ3Q7IGFkZHMgdGhlIGRldmljZSB0byBhbGwgc2Vjb25kYXJ5IHByb2Nlc3MsIHRoZSBzZWNv bmRhcnkgcHJvY2Vzczxicj4NCiZndDsgZG9lcyBhIHRhcF9tcF9hdHRhY2hfcXVldWVzLCBidXQg dGhlIGZkcyBhcmUgbm90IHBvcHVsYXRlZCBpbjxicj4NCiZndDsgdGhlIHByaW1hcnkgZHVyaW5n IHRoZSBwcm9iZSB0aGV5IGFyZSBwb3B1bGF0ZWQgZHVyaW5nIHRoZSBxdWV1ZV9zZXR1cCw8YnI+ DQomZ3Q7IGFkZGVkIGEgZml4IHRvIHN5bmMgdGhlIHF1ZXVlcyBkdXJpbmcgcnRlX2V0aF9kZXZf c3RhcnQ8YnI+DQomZ3Q7IDxicj4NCjxicj4NCkhpIEt1bWFyYSw8YnI+DQo8YnI+DQpPcmlnaW5h bCBpbnRlbnRpb24gc2VlbXMgZmlyc3QgcnVubmluZyBwcmltYXJ5IGFwcGxpY2F0aW9uLCBsYXRl ciBzZWNvbmRhcnksPGJyPg0Kc28geWVzIGl0IGRvZXNuJ3QgbG9va3MgbGlrZSBjb3ZlcmluZyB0 aGUgaG90cGx1ZyBjYXNlLjwvZGl2Pg0KPGRpdiBjbGFzcz0iUGxhaW5UZXh0Ij48c3BhbiBzdHls ZT0iY29sb3I6IHJnYig4MSwgMTY3LCAyNDkpOyI+4oCLVGhhbmtzLiBUaGUgaXNzdWUgaXMgd2hl biB3ZSB1c2UgdGhlIHZkZXZfbmV0dnNjIGRyaXZlciB3aGljaCB1c2VzIFRBUCBpbnRlcmZhY2Us Jm5ic3A7IGluIG11bHRpcHJvY2VzcyBhbmQgUlNTIG1vZGUgdGhpbmdzIGFyZSBicm9rZW4uIFdl IGVuY291bnRlcmVkIHRoaXMgaXNzdWUgd2hpbGUgdXNpbmcgQXp1cmUgRFBESyBQTUQuJm5ic3A7 PC9zcGFuPjxicj4NCjxicj4NCkkgaGF2ZSBhIGZldyBxdWVzdGlvbnMgYmVsb3csIGNhbiB5b3Ug cGxlYXNlIGNoZWNrPzxicj4NCjxicj4NCiZndDsgU2lnbmVkLW9mZi1ieTogS3VtYXJhIFBhcmFt ZXNod2FyYW4gJmx0O2twYXJhbWVzaHdhckB2bXdhcmUuY29tJmd0Ozxicj4NCiZndDsgLS0tPGJy Pg0KJmd0OyZuYnNwOyZuYnNwOyBkcml2ZXJzL25ldC90YXAvcnRlX2V0aF90YXAuYyB8IDgwICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrPGJyPg0KJmd0OyZuYnNwOyZuYnNwOyAx IGZpbGUgY2hhbmdlZCwgODAgaW5zZXJ0aW9ucygrKTxicj4NCiZndDsgPGJyPg0KJmd0OyBkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvdGFwL3J0ZV9ldGhfdGFwLmMgYi9kcml2ZXJzL25ldC90YXAv cnRlX2V0aF90YXAuYzxicj4NCiZndDsgaW5kZXggZjFiNDhjYWU4Mi4uOGU3OTE1NjU2YiAxMDA2 NDQ8YnI+DQomZ3Q7IC0tLSBhL2RyaXZlcnMvbmV0L3RhcC9ydGVfZXRoX3RhcC5jPGJyPg0KJmd0 OyArKysgYi9kcml2ZXJzL25ldC90YXAvcnRlX2V0aF90YXAuYzxicj4NCiZndDsgQEAgLTY3LDYg KzY3LDcgQEA8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7IDxicj4NCiZndDsmbmJzcDsmbmJzcDsgLyog SVBDIGtleSBmb3IgcXVldWUgZmRzIHN5bmMgKi88YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7ICNkZWZp bmUgVEFQX01QX0tFWSAmcXVvdDt0YXBfbXBfc3luY19xdWV1ZXMmcXVvdDs8YnI+DQomZ3Q7ICsj ZGVmaW5lIFRBUF9NUF9SRVFfU1RBUlRfUlhUWCAmcXVvdDt0YXBfbXBfcmVxX3N0YXJ0X3J4dHgm cXVvdDs8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7IDxicj4NCiZndDsmbmJzcDsmbmJzcDsgI2RlZmlu ZSBUQVBfSU9WX0RFRkFVTFRfTUFYIDEwMjQ8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7IDxicj4NCiZn dDsgQEAgLTg4MCwxMSArODgxLDUxIEBAIHRhcF9saW5rX3NldF91cChzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmRldik8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7IHJldHVybiB0YXBfaW9jdGwocG1kLCBTSU9DU0lGRkxBR1MsICZhbXA7aWZyLCAxLCBMT0NB TF9BTkRfUkVNT1RFKTs8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7IH08YnI+DQomZ3Q7Jm5ic3A7Jm5i c3A7IDxicj4NCiZndDsgK3N0YXRpYyBpbnQgdGFwX21wX3JlcV9vbl9yeHR4KHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2KTxicj4NCiZndDsgK3s8YnI+DQomZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgc3RydWN0IHJ0ZV9tcF9tc2cgbXNnOzxicj4NCiZndDsgKyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyBzdHJ1Y3QgaXBjX3F1ZXVlcyAqcmVxdWVzdF9wYXJhbSA9IChzdHJ1Y3QgaXBjX3F1 ZXVlcyAqKW1zZy5wYXJhbTs8YnI+DQomZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaW50 IGVycjs8YnI+DQomZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaW50IGZkX2l0ZXJhdG9y ID0gMDs8YnI+DQomZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3RydWN0IHBtZF9wcm9j ZXNzX3ByaXZhdGUgKnByb2Nlc3NfcHJpdmF0ZSA9IGRldi0mZ3Q7cHJvY2Vzc19wcml2YXRlOzxi cj4NCiZndDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpbnQgaTs8YnI+DQomZ3Q7ICs8YnI+ DQomZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgbWVtc2V0KCZhbXA7bXNnLCAwLCBzaXpl b2YobXNnKSk7PGJyPg0KJmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0cmNweShtc2cu bmFtZSwgVEFQX01QX1JFUV9TVEFSVF9SWFRYKTs8YnI+DQomZ3Q7ICsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgc3RybGNweShyZXF1ZXN0X3BhcmFtLSZndDtwb3J0X25hbWUsIGRldi0mZ3Q7ZGF0 YS0mZ3Q7bmFtZSw8YnI+DQomZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc2l6ZW9mKHJlcXVlc3RfcGFy YW0tJmd0O3BvcnRfbmFtZSkpOzxicj4NCjxicj4NCldoeSBvbmUgdXNlICdzdHJjcHknIGFuZCBv dGhlciAnc3RybGNweScsIGNhbiB5b3UgcGxlYXNlIHVuaWZ5IGJvdGggdG8gJ3N0cmxjcHknPzwv ZGl2Pg0KPGRpdiBjbGFzcz0iUGxhaW5UZXh0Ij48c3BhbiBzdHlsZT0iY29sb3I6IHJnYig4MSwg MTY3LCAyNDkpOyI+4oCLU3VyZSwgd2lsbCB1bmlmeSBpdC4mbmJzcDs8L3NwYW4+PGJyPg0KPGJy Pg0KJmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IG1zZy5sZW5fcGFyYW0gPSBzaXplb2Yo KnJlcXVlc3RfcGFyYW0pOzxicj4NCiZndDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBmb3Ig KGkgPSAwOyBpICZsdDsgZGV2LSZndDtkYXRhLSZndDtuYl90eF9xdWV1ZXM7IGkrKykgezxicj4N CiZndDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBtc2cuZmRzW2ZkX2l0ZXJhdG9yKytdID0gcHJvY2Vzc19w cml2YXRlLSZndDt0eHFfZmRzW2ldOzxicj4NCiZndDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBtc2cubnVt X2ZkcysrOzxicj4NCiZndDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXF1ZXN0X3BhcmFtLSZndDt0eHFf Y291bnQrKzs8YnI+DQomZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfTxicj4NCiZndDsg KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBmb3IgKGkgPSAwOyBpICZsdDsgZGV2LSZndDtkYXRh LSZndDtuYl9yeF9xdWV1ZXM7IGkrKykgezxicj4NCiZndDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBtc2cu ZmRzW2ZkX2l0ZXJhdG9yKytdID0gcHJvY2Vzc19wcml2YXRlLSZndDtyeHFfZmRzW2ldOzxicj4N CiZndDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBtc2cubnVtX2ZkcysrOzxicj4NCiZndDsgKyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyByZXF1ZXN0X3BhcmFtLSZndDtyeHFfY291bnQrKzs8YnI+DQomZ3Q7ICsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsgfTxicj4NCiZndDsgKzxicj4NCiZndDsgKyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyBSVEVfQVNTRVJUKHJlcXVlc3RfcGFyYW0tJmd0O3R4cV9jb3VudCA9PSBkZXYt Jmd0O2RhdGEtJmd0O25iX3R4X3F1ZXVlcyk7PGJyPg0KJmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IFJURV9BU1NFUlQocmVxdWVzdF9wYXJhbS0mZ3Q7cnhxX2NvdW50ID09IGRldi0mZ3Q7 ZGF0YS0mZ3Q7bmJfcnhfcXVldWVzKTs8YnI+DQomZ3Q7ICs8YnI+DQo8YnI+DQpBcmUgdGhlc2Ug YXNzZXJ0aW9ucyByZWFsbHkgdXNlZnVsPzxicj4NCkFzc2VydHMgYXJlIGdvb2QgdG8gdmVyaWZ5 IHRoZSBleHRlcm5hbCBhc3N1bXB0aW9ucywgYnV0IGZvciB0aGlzIGNhc2U8YnI+DQp0aGUgdmFs dWVzIGFyZSBhbGwgcmVsYXRlZCB0byBhYm92ZSBsb2dpYyBhbHJlYWR5LjwvZGl2Pg0KPGRpdiBj bGFzcz0iUGxhaW5UZXh0Ij48c3BhbiBzdHlsZT0iY29sb3I6IHJnYig4MSwgMTY3LCAyNDkpOyI+ 4oCLSSBhZ3JlZSwgd2lsbCByZW1vdmUgaXQuJm5ic3A7PC9zcGFuPjxicj4NCjxicj4NCiZndDsg KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBlcnIgPSBydGVfbXBfc2VuZG1zZygmYW1wO21zZyk7 PGJyPg0KJmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChlcnIgJmx0OyAwKSB7PGJy Pg0KJmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFRBUF9MT0coRVJSLCAmcXVvdDtGYWlsZWQgdG8gc2Vu ZCBzdGFydCByZXEgdG8gc2Vjb25kYXJ5ICVkJnF1b3Q7LDxicj4NCiZndDsgKyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBydGVf ZXJybm8pOzxicj4NCiZndDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gLTE7PGJyPg0KJmd0OyAr Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnI+DQomZ3Q7ICs8YnI+DQomZ3Q7ICsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIDA7PGJyPg0KJmd0OyArfTxicj4NCiZndDsgKzxicj4N CiZndDsmbmJzcDsmbmJzcDsgc3RhdGljIGludDxicj4NCiZndDsmbmJzcDsmbmJzcDsgdGFwX2Rl dl9zdGFydChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7IHs8 YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGludCBl cnIsIGk7PGJyPg0KJmd0OyZuYnNwOyZuYnNwOyA8YnI+DQomZ3Q7ICsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgdGFwX21wX3JlcV9vbl9yeHR4KGRldik7PGJyPg0KJmd0OyArPGJyPg0KPGJyPg0K QXMgZm9yIGFzIEkgdW5kZXJzdGFuZCB5b3VyIGxvZ2ljIGlzIHByaW1hcnkgc2VuZHMgdGhlIG1l c3NhZ2UgdG8gdGhlIHNlY29uZGFyKHl8aWVzKSw8YnI+DQpzbyB3aGF0IGhhcHBlbnMgZmlyc3Qg c2Vjb25kYXJ5IGlzIHN0YXJ0ZWQ/PGJyPg0KPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoODEsIDE2 NywgMjQ5KTsiPuKAi0luIGNhc2Ugb2YgVEFQIFBNRCBsb29rcyBsaWtlIHRoZXJlIGlzIGFuIGFz c3VtcHRpb24gd2hlcmUgcHJpbWFyeSBzaG91bGQgYmUgc3RhcnRlZCBmaXJzdC4gVGhlcmUgaXMg YW4gZXhpc3RpbmcgY2hlY2sgYmVsb3cgZHVyaW5nIHRoZSBwcm9iZSBmdW5jdGlvbiBjYWxsLiZu YnNwOzwvc3Bhbj48L2Rpdj4NCjxkaXYgY2xhc3M9IlBsYWluVGV4dCI+PHNwYW4gc3R5bGU9ImNv bG9yOiByZ2IoODEsIDE2NywgMjQ5KTsiPmlmICghcnRlX2VhbF9wcmltYXJ5X3Byb2NfYWxpdmUo TlVMTCkpIHsNCjxkaXY+Jm5ic3A7ICZuYnNwOyAmbmJzcDtUQVBfTE9HKEVSUiwgJnF1b3Q7UHJp bWFyeSBwcm9jZXNzIGlzIG1pc3NpbmcmcXVvdDspOzwvZGl2Pg0KPGRpdj4mbmJzcDsgJm5ic3A7 ICZuYnNwOyByZXR1cm4gLTE7PC9kaXY+DQp9PGJyPg0KPC9zcGFuPjwvZGl2Pg0KPGRpdiBjbGFz cz0iUGxhaW5UZXh0Ij48Zm9udCBjb2xvcj0iIzUxYTdmOSI+PGJyPg0KPC9mb250PldoYXQgYWJv dXQgc2Vjb25kYXJ5IHNlbmRzIHRoZSBtZXNzYWdlIHdoZW4gdGhleSBhcmUgc3RhcnRlZD88L2Rp dj4NCjxkaXYgY2xhc3M9IlBsYWluVGV4dCI+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoODEsIDE2 NywgMjQ5KTsiPuKAi0lNSE8sIHNpbmNlIHByaW1hcnkgcHJvY2VzcyBzZXR1cHMgdGhlIHF1ZXVl IGl0IHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciB0aGUgcHJpbWFyeSBwcm9jZXNzZXMgdG8gdGhl IHNlbmQgdGhlIG1lc3NhZ2UgYW5kIHNlY29uZGFyeSBuZWVkIG5vdCBzZW5kIGFueXRoaW5nLiZu YnNwOzwvc3Bhbj48YnI+DQo8YnI+DQpBbHNvIGFib3ZlIGZ1bmN0aW9ucyBpcyBjYWxsZWQgYnkg Ym90aCBwcmltYXJ5IGFuZCBzZWNvbmRhcnksIHdoYXQgaGFwcGVucyB3aGVuIGl0IGlzPGJyPg0K Y2FsbGVkIGJ5IHNlY29uZGFyeT8gQW5kIHRoZSBsb2dpYyBpcyBub3QgY2xlYXIsIGl0IGNhbiBi ZSBnb29kIHRvIGFkZCBhIHByb2Nlc3MgdHlwZTxicj4NCmNoZWNrIHRvIGNsYXJpZnkuPC9kaXY+ DQo8ZGl2IGNsYXNzPSJQbGFpblRleHQiPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDgxLCAxNjcs IDI0OSk7Ij7igItTdXJlLCB0aGVzZSBhcmUgZm9yIHRhcF9pbnRyX2hhbmRsZV9zZXQgYW5kIHRh cF9kZXZfc3RhcnQgZnVuY3Rpb25zPyZuYnNwOzwvc3Bhbj48YnI+DQo8YnI+DQomZ3Q7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGVyciA9IHRhcF9pbnRyX2hhbmRs ZV9zZXQoZGV2LCAxKTs8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7IGlmIChlcnIpPGJyPg0KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyByZXR1cm4gZXJyOzxicj4NCiZndDsgQEAgLTkwMSw2ICs5NDIsMzkgQEAgdGFwX2Rldl9z dGFydChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiBlcnI7PGJyPg0KJmd0OyZuYnNwOyZuYnNw OyB9PGJyPg0KJmd0OyZuYnNwOyZuYnNwOyA8YnI+DQomZ3Q7ICtzdGF0aWMgaW50PGJyPg0KJmd0 OyArdGFwX21wX3JlcV9zdGFydF9yeHR4KGNvbnN0IHN0cnVjdCBydGVfbXBfbXNnICpyZXF1ZXN0 LCBfX3J0ZV91bnVzZWQgY29uc3Qgdm9pZCAqcGVlcik8YnI+DQomZ3Q7ICt7PGJyPg0KJmd0OyAr Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0cnVjdCBydGVfZXRoX2RldiAqZGV2Ozxicj4NCiZn dDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpbnQgcmV0Ozxicj4NCiZndDsgKyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyB1aW50MTZfdCBwb3J0X2lkOzxicj4NCiZndDsgKyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyBjb25zdCBzdHJ1Y3QgaXBjX3F1ZXVlcyAqcmVxdWVzdF9wYXJhbSA9PGJy Pg0KJmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IChjb25zdCBzdHJ1Y3QgaXBjX3F1ZXVlcyAqKXJlcXVl c3QtJmd0O3BhcmFtOzxicj4NCiZndDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpbnQgZmRf aXRlcmF0b3I7PGJyPg0KJmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGludCBxdWV1ZTs8 YnI+DQomZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3RydWN0IHBtZF9wcm9jZXNzX3By aXZhdGUgKnByb2Nlc3NfcHJpdmF0ZTs8YnI+DQomZ3Q7ICs8YnI+DQomZ3Q7ICsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgcmV0ID0gcnRlX2V0aF9kZXZfZ2V0X3BvcnRfYnlfbmFtZShyZXF1ZXN0 X3BhcmFtLSZndDtwb3J0X25hbWUsICZhbXA7cG9ydF9pZCk7PGJyPg0KJmd0OyArJm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7IGlmIChyZXQpIHs8YnI+DQomZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgVEFQ X0xPRyhFUlIsICZxdW90O0ZhaWxlZCB0byBnZXQgcG9ydCBpZCBmb3IgJXMmcXVvdDssPGJyPg0K Jmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IHJlcXVlc3RfcGFyYW0tJmd0O3BvcnRfbmFtZSk7PGJyPg0KJmd0OyArJm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IHJldHVybiAtMTs8YnI+DQomZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgfTxicj4NCiZndDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBkZXYgPSAmYW1wO3J0ZV9l dGhfZGV2aWNlc1twb3J0X2lkXTsmZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcHJvY2Vz c19wcml2YXRlID0gZGV2LSZndDtwcm9jZXNzX3ByaXZhdGU7PGJyPg0KJmd0OyArJm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7IGRldi0mZ3Q7ZGF0YS0mZ3Q7bmJfcnhfcXVldWVzID0gcmVxdWVzdF9w YXJhbS0mZ3Q7cnhxX2NvdW50Ozxicj4NCiZndDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBk ZXYtJmd0O2RhdGEtJmd0O25iX3R4X3F1ZXVlcyA9IHJlcXVlc3RfcGFyYW0tJmd0O3R4cV9jb3Vu dDs8YnI+DQomZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZmRfaXRlcmF0b3IgPSAwOzxi cj4NCiZndDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBSVEVfTE9HKERFQlVHLCBQTUQsICZx dW90O3RhcF9hdHRhY2ggcnhfcTolZCB0eF9xOiVkXG4mcXVvdDssIHJlcXVlc3RfcGFyYW0tJmd0 O3J4cV9jb3VudCw8YnI+DQomZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmVxdWVzdF9wYXJhbS0mZ3Q7 dHhxX2NvdW50KTs8YnI+DQomZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZm9yIChxdWV1 ZSA9IDA7IHF1ZXVlICZsdDsgcmVxdWVzdF9wYXJhbS0mZ3Q7dHhxX2NvdW50OyBxdWV1ZSsrKTxi cj4NCiZndDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBwcm9jZXNzX3ByaXZhdGUtJmd0O3R4cV9mZHNbcXVl dWVdID0gcmVxdWVzdC0mZ3Q7ZmRzW2ZkX2l0ZXJhdG9yKytdOzxicj4NCiZndDsgKyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyBmb3IgKHF1ZXVlID0gMDsgcXVldWUgJmx0OyByZXF1ZXN0X3BhcmFt LSZndDtyeHFfY291bnQ7IHF1ZXVlKyspPGJyPg0KJmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHByb2Nl c3NfcHJpdmF0ZS0mZ3Q7cnhxX2Zkc1txdWV1ZV0gPSByZXF1ZXN0LSZndDtmZHNbZmRfaXRlcmF0 b3IrK107PGJyPg0KJmd0OyArPGJyPg0KJmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJl dHVybiAwOzxicj4NCiZndDsgK308YnI+DQomZ3Q7ICs8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7IC8q IFRoaXMgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgd2hlbiB0aGUgY3VycmVudCBwb3J0IGdldHMgc3Rv cHBlZC48YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICovPGJyPg0KJmd0OyZuYnNwOyZuYnNw OyBzdGF0aWMgaW50PGJyPg0KJmd0OyBAQCAtMjQ0NSw2ICsyNTE5LDEyIEBAIHJ0ZV9wbWRfdGFw X3Byb2JlKHN0cnVjdCBydGVfdmRldl9kZXZpY2UgKmRldik8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldCA9IHRhcF9tcF9hdHRhY2hfcXVldWVzKG5hbWUsIGV0 aF9kZXYpOzxicj4NCiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaWYgKHJl dCAhPSAwKTxicj4NCiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIC0xOzxicj4N CiZndDsgKzxicj4NCiZndDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXQgPSBydGVfbXBfYWN0aW9uX3Jl Z2lzdGVyKFRBUF9NUF9SRVFfU1RBUlRfUlhUWCwgdGFwX21wX3JlcV9zdGFydF9yeHR4KTs8YnI+ DQomZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaWYgKHJldCAmbHQ7IDAgJmFtcDsmYW1wOyBydGVfZXJy bm8gIT0gRU5PVFNVUCk8YnI+DQomZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgVEFQX0xPRyhFUlIsICZxdW90O3RhcDog RmFpbGVkIHRvIHJlZ2lzdGVyIElQQyBjYWxsYmFjazogJXMmcXVvdDssPGJyPg0KJmd0OyArJm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0cmVy cm9yKHJ0ZV9lcnJubykpOzxicj4NCiZndDsgKzxicj4NCjxicj4NCldoaWxlIHRoaXMgdXBkYXRl IGZkcyBpbiBzdGFydCBsb2dpYyBpcyBhZGRlZCwgZG8gd2Ugc3RpbGwgbmVlZCB0aGUgJ3RhcF9t cF9hdHRhY2hfcXVldWVzKCknPzxicj4NCkNhbid0IHdlIHJlbW92ZSB0aGUgJ3RhcF9tcF9zeW5j X3F1ZXVlcygpJyBhZnRlciB0aGlzIGNoYW5nZT88YnI+DQo8c3BhbiBzdHlsZT0iY29sb3I6IHJn Yig4MSwgMTY3LCAyNDkpOyI+4oCLQWdyZWVkLCB3aWxsIHJlbW92ZSB0aGUgb2xkIHRhcF9tcF9h dHRhY2hfcXVldWVzIGFuZCB0YXBfbXBfc3luY19xdWV1ZXMuJm5ic3A7PC9zcGFuPjxicj4NCjxi cj4NCkFuZCBuZWVkIHRvIHVucmVnaXN0ZXIgdGhlIG1wX2FjdGlvbiwgcG9zc2libHkgaW4gdGhl ICd0YXBfZGV2X2Nsb3NlKCknPzxicj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iUGxhaW5UZXh0Ij48 c3BhbiBzdHlsZT0iY29sb3I6IHJnYig4MSwgMTY3LCAyNDkpOyI+4oCLWWVzLCB3aWxsIGRvIGl0 LiZuYnNwOzwvc3Bhbj48YnI+DQo8L2Rpdj4NCjwvc3Bhbj48L2ZvbnQ+PC9kaXY+DQo8L2JvZHk+ DQo8L2h0bWw+DQo= --_000_SN6PR05MB4895F392E59E2CA24A97AD6BB1589SN6PR05MB4895namp_--