Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp1000980pxa; Sat, 22 Aug 2020 07:31:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxw/Uao8lGEQLVIDSOQwrtK5YFwUZIkd1Oag2fhGygLOaFE9TPw1yifAXxUG6wzgoMzGKLQ X-Received: by 2002:a05:6402:44e:: with SMTP id p14mr7672021edw.1.1598106667237; Sat, 22 Aug 2020 07:31:07 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1598106667; cv=pass; d=google.com; s=arc-20160816; b=DRrqOO6tv94rhOmfCg1BjNNtLwPkG59kN6ohRCWfZMMZmNjjuE5HxYGzpzqkGvBj8Q L1ffAN+ol8tdaC7guHJuNRS1XQWTkKK/9nSKp/NiBhiBrnga5TvOpeDOzTlDuoXe4VSa 5F1JFsra4vg0DfL9muSBnxRYWD353bz8UiSH3ciC1RdwoTqmu1+sAQm/bI5F0ohAuKPT mXmpn3aZ4B44D8GEj9EWeH74TJVeZFmL72hTIPF3OBesiDXVrcBAkQ9jM2tR3npCRLLL QfZn9l9D3kJvig88ki7qwMa9EU+n5kQQ1v4TIpCpkEkUMuB9st74NyrBQVaXpxxfOcJE 8xOg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:to :from:dkim-signature:ironport-sdr:ironport-sdr; bh=IpBoXtLiqlrkp+F5/KlmRMbg/1lL9uTtKFak/z+FNCI=; b=IMlengxs7q4pSNMVGgcBadSmKOblkilAIo+ocfNo0TQhP6c345UgAx8ovH9f3dM1PH jENOjoor27nxn79p4tpRx6ACSUjfik5rD/WZl7f5MiDW7z2aQ3uhDOzFfwM6QwkEYGFc ykZ+58YgxFQQGcWBqaB4D3YFOMID12pe5xOXx1c2LE/ZhC7S2DzXzdF4TNDxtXxhyBAN d6L3BnBiI/+q5GiySbMSfMctCOpmxS8WgXw3MFXwmxZ4iuzFS3bnv8eFFLXYoYPkAq2H QjVvmObCYt2eK+DTZbA9U+/HyhzRvodoAQD7tYcW4YncedKbvnvUwEcGyW8enOaRjvVm /xaA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=Mi+wI0NE; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id gy25si3340274ejb.492.2020.08.22.07.30.42; Sat, 22 Aug 2020 07:31:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=Mi+wI0NE; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728124AbgHVOah (ORCPT + 99 others); Sat, 22 Aug 2020 10:30:37 -0400 Received: from mga02.intel.com ([134.134.136.20]:32392 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727899AbgHVOaf (ORCPT ); Sat, 22 Aug 2020 10:30:35 -0400 IronPort-SDR: ufC6MvcxdJHVGLzYqQjkWG+tCCykHq9RGOlkkMvGnRk5M9PCzP4wOg1gT7YxAgv9MMr0JwQKmS 3xIOPPVnVP4w== X-IronPort-AV: E=McAfee;i="6000,8403,9720"; a="143495230" X-IronPort-AV: E=Sophos;i="5.76,341,1592895600"; d="scan'208";a="143495230" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Aug 2020 07:21:32 -0700 IronPort-SDR: YTkgU0etl9U5p5sl0jMVHDdXOw1rerA8isOAWRXThE/yc4t0680yJpgsWjhnfzq7aI+j2Q+hiJ t34vsvBVIf2A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,341,1592895600"; d="scan'208";a="280498641" Received: from fmsmsx602-2.cps.intel.com (HELO fmsmsx602.amr.corp.intel.com) ([10.18.84.212]) by fmsmga008.fm.intel.com with ESMTP; 22 Aug 2020 07:21:31 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Sat, 22 Aug 2020 07:21:31 -0700 Received: from fmsmsx156.amr.corp.intel.com (10.18.116.74) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Sat, 22 Aug 2020 07:21:31 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx156.amr.corp.intel.com (10.18.116.74) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sat, 22 Aug 2020 07:21:31 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.108) 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.1713.5; Sat, 22 Aug 2020 07:21:31 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XoQqtmgPFQ0XqAs1eFkHfCZiTH4WInQe/JVcN38ytJO57Ng1bSllG8H+Me6tmQ49H8QFQfZzPrZ57QpGCWJpvawzeb2WqFhJbRbg6BnRqGxjU/XM5NBpZqpHEAItN/rcIfCCa/xDRbGtINhvMEwTx7n3wkUMuHDHSSyd7dq07m/3SGRUzKW7QrZeiL4K0iX8jwdYKcaShQa4YobVe4pxVkRWI5eptx9j06UGLcleGn3yx50Vpfq1N0SoXSKKMG6gYPX/l7SlES2IC6iUkpntGL87yIBwgMSYywT8KJW6VIgAHBNsr1KOEDIBqyQxc9WD0hqSjYBnP0r9shnrWR86cQ== 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-SenderADCheck; bh=IpBoXtLiqlrkp+F5/KlmRMbg/1lL9uTtKFak/z+FNCI=; b=VO23zLWbVe6sy8xa6dwWRAT1A6mRk6qc8iu9gIIp1rkyez3zUhPQ30H9+k6kwNuVth5wg6AEdeqflA2drUWaAqFQ1hpl1jA7LduD+8nbs150isnFNLpZ6DCQacGPnjspe1NM5PIXUxCnQgjzIjoxVF4DY06btDJG22bDLYwNgWiEY8bGmITg09gJvQZ9E0o8gICrL80lWpI+Ib0FiPHf4DXeupgGGB/1l0YLouYGdkV5TeBakIK1Ku/EX8c/z9AEYfJyS/w8A5N5QnOME2srkdIREoCdhyMIBb6XyuxfW2Dp8aB591Qmo/1RJEy9CodmY3DJtly/zoZBOiIskX/6Pw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IpBoXtLiqlrkp+F5/KlmRMbg/1lL9uTtKFak/z+FNCI=; b=Mi+wI0NEG+k2R4rgnbrorBm34Nz6Ap93HQr634znZlQ7zYetxejedGI6h6dDjEnzVfXOQBxUyLMO/FOmdP9/FdtPjsg1UfwTmANSigG8LNWgLMpNNe8iwBcxKfUcf6buZuTnu3NkLmTwTq04OO2YiSreu2emYbXyY0JJLWp9FAU= Received: from MW3PR11MB4539.namprd11.prod.outlook.com (2603:10b6:303:2f::13) by MW3PR11MB4682.namprd11.prod.outlook.com (2603:10b6:303:2e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3305.26; Sat, 22 Aug 2020 14:21:29 +0000 Received: from MW3PR11MB4539.namprd11.prod.outlook.com ([fe80::6832:48b9:8cd2:7225]) by MW3PR11MB4539.namprd11.prod.outlook.com ([fe80::6832:48b9:8cd2:7225%6]) with mapi id 15.20.3305.026; Sat, 22 Aug 2020 14:21:29 +0000 From: "Gix, Brian" To: "linux-bluetooth@vger.kernel.org" , "Stotland, Inga" Subject: Re: [PATCH BlueZ] mesh: Use correct retransmit parameters for publications Thread-Topic: [PATCH BlueZ] mesh: Use correct retransmit parameters for publications Thread-Index: AQHWdrSURgbfRhjX/0m3bY3PKd7kuqlEMaMA Date: Sat, 22 Aug 2020 14:21:29 +0000 Message-ID: References: <20200820054132.110483-1-inga.stotland@intel.com> In-Reply-To: <20200820054132.110483-1-inga.stotland@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.34.4 (3.34.4-1.fc31) authentication-results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=intel.com; x-originating-ip: [134.134.137.73] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6097af81-d948-4ed7-7c6c-08d846a6a9bb x-ms-traffictypediagnostic: MW3PR11MB4682: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1332; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: AUVEOQzhUd26zLaP78Zdw3h6XQ+RULQvF0EhVNU2m3IG4ZWDOb2Thq1gLCKcHz6YrsrMBJMovfYltnqI9UBKF99Tmu2oQwUktYPyGIYeYPCX8tgJDz7V3DiKX+Q4jPHXePaOVvTrQ9imHxvnCeWPbMHmKmpX7IkU1+kmAebg1d3nNwHtP9zbodF1eOvePV8E9Uzgni3JXCR3dZwx0PaBgiNsoeyxn5bDMvKFFWlrkLz2Pd9FUbU6m+ZkItis9HTZV/cxgRxSFp4m4Y+GXXLx15gkMYMk2/yQoomprIWoG/L0xETfnrBAQhOl5B0RxTBhUeSDfBiiR0RoA8xndPE6hg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW3PR11MB4539.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(376002)(396003)(39860400002)(346002)(136003)(66476007)(76116006)(64756008)(71200400001)(8936002)(66446008)(66556008)(6506007)(26005)(83380400001)(5660300002)(316002)(186003)(8676002)(36756003)(6486002)(30864003)(478600001)(66946007)(86362001)(6512007)(2906002)(6636002)(2616005)(110136005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: YwlG76bJcrVNDyWYBkpQeh3NCMyL1Vq6c1TzA75P5qwXGnsOpyNxJmS1cdIEldsUBn9ATDE/CVzEJbhXribO4bKt1u56GInVQ0RFL8+kArv18RTCl7E9pidQi3ESX/VWJsS25j1elqKqqlYH7jgDXgMkNQySzW4X2b/QiUJJyO1XivHrsqNWX634lqEWWk3K7i8OCApAWH3Zvzby9iYvHSl1dylNUG0iFHLYtMoEh/e59r7NFfCe0t5F/Z7+BdR4nKMsPgmKMHAZ2ByzHxDZhXS4FMKais6ksAj/vYcfhmxbsNkOHIxtz45b395++oTcSxJVKfaTu306DgEtvXyJtSv2ZbL75aqEsbOsrdWGXMEtvE71MaPr8HH9S6WVmCUWetUvMG0A22eCw/bCOS8r4WC5BpBnKYe2hCGrmSO2rXzJRWcok6ZFu3eh3TA/32Mmh6NbM91nUrlEe0ysHciTMYW035H7JHMYaKoWcG3EQxEJHpT7f1k3TzMdikRBjxsERG1QllSnWtJUBJEDHelK1ySWmfeSu8ZtuH7Xc7NrXG8rJiOQtzaBAgjMTWURpj0Le9gdWWUZVIqmPNhN0TgnPQNWICmU6LSY5s7s3JcjfMhZUFhUMpaNETUQKWnb3l+kL9BmGd5BkiAoE4f4GwnxnA== Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW3PR11MB4539.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6097af81-d948-4ed7-7c6c-08d846a6a9bb X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2020 14:21:29.8260 (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: nnUdmZXv43JHuF6EPShgHUzI3/D+ABpI3YvrRJ+sDFFy2Z/qWTE9ibXh3Nzo2M6DdiqqErJGTyZtqXBQcgfozg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4682 X-OriginatorOrg: intel.com Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org QXBwbGllZA0KT24gV2VkLCAyMDIwLTA4LTE5IGF0IDIyOjQxIC0wNzAwLCBJbmdhIFN0b3RsYW5k IHdyb3RlOg0KPiBUaGlzIGFkZHMgcHJldmlvdXNseSBtaXNzaW5nIHJldHJhbnNtaXQgY291bnQg YW5kIGludGVydmFsIHZhbHVlcw0KPiBzcGVjaWZpYyB0byBtb2RlbCBwdWJsaWNhdGlvbnMuIFRo ZSB2YWx1ZXMgYXJlIGNvbmZpZ3VyZWQgYnkgQ29uZmlnIENMaWVudA0KPiBhbmQgbWF5IGJlIGRp ZmZlcmVudCB0byBlYWNoIG1vZGVsLg0KPiAtLS0NCj4gIG1lc2gvY2ZnbW9kLXNlcnZlci5jICAg IHwgMjYgKysrKysrKysrKystLS0tLS0tDQo+ICBtZXNoL21lc2gtY29uZmlnLWpzb24uYyB8IDM2 ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0NCj4gIG1lc2gvbWVzaC1jb25maWcuaCAgICAgIHwg IDQgKy0tDQo+ICBtZXNoL21vZGVsLmMgICAgICAgICAgICB8IDU5ICsrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICBtZXNoL21vZGVsLmggICAgICAgICAgICB8ICA5 ICsrKystLS0NCj4gIG1lc2gvbmV0LmMgICAgICAgICAgICAgIHwgNDIgKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0NCj4gIG1lc2gvbmV0LmggICAgICAgICAgICAgIHwgIDYgKystLS0NCj4g IDcgZmlsZXMgY2hhbmdlZCwgMTA0IGluc2VydGlvbnMoKyksIDc4IGRlbGV0aW9ucygtKQ0KPiAN Cj4gZGlmZiAtLWdpdCBhL21lc2gvY2ZnbW9kLXNlcnZlci5jIGIvbWVzaC9jZmdtb2Qtc2VydmVy LmMNCj4gaW5kZXggOTBlYmRmMDQ2Li4yMzllYTg4OWQgMTAwNjQ0DQo+IC0tLSBhL21lc2gvY2Zn bW9kLXNlcnZlci5jDQo+ICsrKyBiL21lc2gvY2ZnbW9kLXNlcnZlci5jDQo+IEBAIC00OCw3ICs0 OCw3IEBAIHN0YXRpYyB1aW50OF90IG1zZ1tNQVhfTVNHX0xFTl07DQo+ICANCj4gIHN0YXRpYyB1 aW50MTZfdCBzZXRfcHViX3N0YXR1cyh1aW50OF90IHN0YXR1cywgdWludDE2X3QgZWxlX2FkZHIs IHVpbnQzMl90IGlkLA0KPiAgCQkJCXVpbnQxNl90IHB1Yl9hZGRyLCB1aW50MTZfdCBpZHgsIGJv b2wgY3JlZF9mbGFnLA0KPiAtCQkJCXVpbnQ4X3QgdHRsLCB1aW50OF90IHBlcmlvZCwgdWludDhf dCByZXRyYW5zbWl0KQ0KPiArCQkJCXVpbnQ4X3QgdHRsLCB1aW50OF90IHBlcmlvZCwgdWludDhf dCBydHgpDQo+ICB7DQo+ICAJc2l6ZV90IG47DQo+ICANCj4gQEAgLTYxLDcgKzYxLDcgQEAgc3Rh dGljIHVpbnQxNl90IHNldF9wdWJfc3RhdHVzKHVpbnQ4X3Qgc3RhdHVzLCB1aW50MTZfdCBlbGVf YWRkciwgdWludDMyX3QgaWQsDQo+ICAJbiArPSA2Ow0KPiAgCW1zZ1tuKytdID0gdHRsOw0KPiAg CW1zZ1tuKytdID0gcGVyaW9kOw0KPiAtCW1zZ1tuKytdID0gcmV0cmFuc21pdDsNCj4gKwltc2db bisrXSA9IHJ0eDsNCj4gIA0KPiAgCWlmICghSVNfVkVORE9SKGlkKSkgew0KPiAgCQlsX3B1dF9s ZTE2KE1PREVMX0lEKGlkKSwgbXNnICsgbik7DQo+IEBAIC04MCw2ICs4MCw3IEBAIHN0YXRpYyB1 aW50MTZfdCBjb25maWdfcHViX2dldChzdHJ1Y3QgbWVzaF9ub2RlICpub2RlLCBjb25zdCB1aW50 OF90ICpwa3QsDQo+ICB7DQo+ICAJdWludDMyX3QgaWQ7DQo+ICAJdWludDE2X3QgZWxlX2FkZHI7 DQo+ICsJdWludDhfdCBydHg7DQo+ICAJc3RydWN0IG1lc2hfbW9kZWxfcHViICpwdWI7DQo+ICAJ aW50IHN0YXR1czsNCj4gIA0KPiBAQCAtODgsMTAgKzg5LDEyIEBAIHN0YXRpYyB1aW50MTZfdCBj b25maWdfcHViX2dldChzdHJ1Y3QgbWVzaF9ub2RlICpub2RlLCBjb25zdCB1aW50OF90ICpwa3Qs DQo+ICANCj4gIAlwdWIgPSBtZXNoX21vZGVsX3B1Yl9nZXQobm9kZSwgZWxlX2FkZHIsIGlkLCAm c3RhdHVzKTsNCj4gIA0KPiArCXJ0eCA9IHB1Yi0+cnR4LmNudCArICgoKHB1Yi0+cnR4LmludGVy dmFsIC8gNTApIC0gMSkgPDwgMyk7DQo+ICsNCj4gIAlpZiAocHViICYmIHN0YXR1cyA9PSBNRVNI X1NUQVRVU19TVUNDRVNTKQ0KPiAgCQlyZXR1cm4gc2V0X3B1Yl9zdGF0dXMoc3RhdHVzLCBlbGVf YWRkciwgaWQsIHB1Yi0+YWRkciwgcHViLT5pZHgsDQo+ICAJCQkJCXB1Yi0+Y3JlZGVudGlhbCwg cHViLT50dGwsIHB1Yi0+cGVyaW9kLA0KPiAtCQkJCQlwdWItPnJldHJhbnNtaXQpOw0KPiArCQkJ CQlydHgpOw0KPiAgCWVsc2UNCj4gIAkJcmV0dXJuIHNldF9wdWJfc3RhdHVzKHN0YXR1cywgZWxl X2FkZHIsIGlkLCAwLCAwLCAwLCAwLCAwLCAwKTsNCj4gIH0NCj4gQEAgLTEwMiw3ICsxMDUsNyBA QCBzdGF0aWMgdWludDE2X3QgY29uZmlnX3B1Yl9zZXQoc3RydWN0IG1lc2hfbm9kZSAqbm9kZSwg Y29uc3QgdWludDhfdCAqcGt0LA0KPiAgCXVpbnQzMl90IGlkOw0KPiAgCXVpbnQxNl90IGVsZV9h ZGRyLCBpZHgsIHB1Yl9kc3Q7DQo+ICAJY29uc3QgdWludDhfdCAqcHViX2FkZHI7DQo+IC0JdWlu dDhfdCB0dGwsIHBlcmlvZCwgcmV0cmFuc21pdDsNCj4gKwl1aW50OF90IHR0bCwgcGVyaW9kLCBy dHgsIGNudCwgaW50ZXJ2YWw7DQo+ICAJaW50IHN0YXR1czsNCj4gIAlib29sIGNyZWRfZmxhZzsN Cj4gIA0KPiBAQCAtMTI0LDEyICsxMjcsMTUgQEAgc3RhdGljIHVpbnQxNl90IGNvbmZpZ19wdWJf c2V0KHN0cnVjdCBtZXNoX25vZGUgKm5vZGUsIGNvbnN0IHVpbnQ4X3QgKnBrdCwNCj4gIAlpZHgg Jj0gQVBQX0lEWF9NQVNLOw0KPiAgCXR0bCA9IHBrdFs2XTsNCj4gIAlwZXJpb2QgPSBwa3RbN107 DQo+IC0JcmV0cmFuc21pdCA9IHBrdFs4XTsNCj4gKwlydHggPSBwa3RbOF07DQo+ICAJaWQgPSBD RkdfR0VUX0lEKHZlbmRvciwgcGt0ICsgOSk7DQo+ICANCj4gKwljbnQgPSBydHggJiAweDc7DQo+ ICsJaW50ZXJ2YWwgPSAoKHJ0eCA+PiAzKSArIDEpICogNTA7DQo+ICsNCj4gIAlzdGF0dXMgPSBt ZXNoX21vZGVsX3B1Yl9zZXQobm9kZSwgZWxlX2FkZHIsIGlkLCBwdWJfYWRkciwgaWR4LA0KPiAt CQkJCQljcmVkX2ZsYWcsIHR0bCwgcGVyaW9kLCByZXRyYW5zbWl0LA0KPiAtCQkJCQl2aXJ0LCAm cHViX2RzdCk7DQo+ICsJCQkJCWNyZWRfZmxhZywgdHRsLCBwZXJpb2QsIGNudCwNCj4gKwkJCQkJ aW50ZXJ2YWwsIHZpcnQsICZwdWJfZHN0KTsNCj4gIA0KPiAgCWxfZGVidWcoInB1Yl9zZXQ6IHN0 YXR1cyAlZCwgZWEgJTQuNHgsIG90YTogJTQuNHgsIGlkOiAleCwgaWR4OiAlMy4zeCIsDQo+ICAJ CQkJCXN0YXR1cywgZWxlX2FkZHIsIHB1Yl9kc3QsIGlkLCBpZHgpOw0KPiBAQCAtMTUzLDggKzE1 OSw4IEBAIHN0YXRpYyB1aW50MTZfdCBjb25maWdfcHViX3NldChzdHJ1Y3QgbWVzaF9ub2RlICpu b2RlLCBjb25zdCB1aW50OF90ICpwa3QsDQo+ICAJCQkudHRsID0gdHRsLA0KPiAgCQkJLmNyZWRl bnRpYWwgPSBjcmVkX2ZsYWcsDQo+ICAJCQkucGVyaW9kID0gcGVyaW9kLA0KPiAtCQkJLmNvdW50 ID0gcmV0cmFuc21pdCAmIDB4NywNCj4gLQkJCS5pbnRlcnZhbCA9ICgocmV0cmFuc21pdCA+PiAz KSArIDEpICogNTANCj4gKwkJCS5jbnQgPSBjbnQsDQo+ICsJCQkuaW50ZXJ2YWwgPSBpbnRlcnZh bA0KPiAgCQl9Ow0KPiAgDQo+ICAJCWlmICh2aXJ0KQ0KPiBAQCAtMTY4LDcgKzE3NCw3IEBAIHN0 YXRpYyB1aW50MTZfdCBjb25maWdfcHViX3NldChzdHJ1Y3QgbWVzaF9ub2RlICpub2RlLCBjb25z dCB1aW50OF90ICpwa3QsDQo+ICAJfQ0KPiAgDQo+ICAJcmV0dXJuIHNldF9wdWJfc3RhdHVzKHN0 YXR1cywgZWxlX2FkZHIsIGlkLCBwdWJfZHN0LCBpZHgsIGNyZWRfZmxhZywNCj4gLQkJCQkJCXR0 bCwgcGVyaW9kLCByZXRyYW5zbWl0KTsNCj4gKwkJCQkJCXR0bCwgcGVyaW9kLCBydHgpOw0KPiAg fQ0KPiAgDQo+ICBzdGF0aWMgdWludDE2X3QgY2ZnX3N1Yl9nZXRfbXNnKHN0cnVjdCBtZXNoX25v ZGUgKm5vZGUsIGNvbnN0IHVpbnQ4X3QgKnBrdCwNCj4gZGlmZiAtLWdpdCBhL21lc2gvbWVzaC1j b25maWctanNvbi5jIGIvbWVzaC9tZXNoLWNvbmZpZy1qc29uLmMNCj4gaW5kZXggYTE0NTM4OGQ2 Li42M2I2YzM5ODggMTAwNjQ0DQo+IC0tLSBhL21lc2gvbWVzaC1jb25maWctanNvbi5jDQo+ICsr KyBiL21lc2gvbWVzaC1jb25maWctanNvbi5jDQo+IEBAIC0xMDIxLDcgKzEwMjEsNyBAQCBzdGF0 aWMgc3RydWN0IG1lc2hfY29uZmlnX3B1YiAqcGFyc2VfbW9kZWxfcHVibGljYXRpb24oanNvbl9v YmplY3QgKmpwdWIpDQo+ICANCj4gIAlpZiAoIWdldF9pbnQoanZhbHVlLCAiY291bnQiLCAmdmFs dWUpKQ0KPiAgCQlnb3RvIGZhaWw7DQo+IC0JcHViLT5jb3VudCA9ICh1aW50OF90KSB2YWx1ZTsN Cj4gKwlwdWItPmNudCA9ICh1aW50OF90KSB2YWx1ZTsNCj4gIA0KPiAgCWlmICghZ2V0X2ludChq dmFsdWUsICJpbnRlcnZhbCIsICZ2YWx1ZSkpDQo+ICAJCWdvdG8gZmFpbDsNCj4gQEAgLTEzMzks MjAgKzEzMzksMjAgQEAgc3RhdGljIGJvb2wgcGFyc2VfY29tcG9zaXRpb24oanNvbl9vYmplY3Qg Kmpjb21wLCBzdHJ1Y3QgbWVzaF9jb25maWdfbm9kZSAqbm9kZSkNCj4gIA0KPiAgc3RhdGljIGJv b2wgcmVhZF9uZXRfdHJhbnNtaXQoanNvbl9vYmplY3QgKmpvYmosIHN0cnVjdCBtZXNoX2NvbmZp Z19ub2RlICpub2RlKQ0KPiAgew0KPiAtCWpzb25fb2JqZWN0ICpqcmV0cmFuc21pdCwgKmp2YWx1 ZTsNCj4gKwlqc29uX29iamVjdCAqanJ0eCwgKmp2YWx1ZTsNCj4gIAl1aW50MTZfdCBpbnRlcnZh bDsNCj4gIAl1aW50OF90IGNudDsNCj4gIA0KPiAtCWlmICghanNvbl9vYmplY3Rfb2JqZWN0X2dl dF9leChqb2JqLCAicmV0cmFuc21pdCIsICZqcmV0cmFuc21pdCkpDQo+ICsJaWYgKCFqc29uX29i amVjdF9vYmplY3RfZ2V0X2V4KGpvYmosICJyZXRyYW5zbWl0IiwgJmpydHgpKQ0KPiAgCQlyZXR1 cm4gdHJ1ZTsNCj4gIA0KPiAtCWlmICghanNvbl9vYmplY3Rfb2JqZWN0X2dldF9leChqcmV0cmFu c21pdCwgImNvdW50IiwgJmp2YWx1ZSkpDQo+ICsJaWYgKCFqc29uX29iamVjdF9vYmplY3RfZ2V0 X2V4KGpydHgsICJjb3VudCIsICZqdmFsdWUpKQ0KPiAgCQlyZXR1cm4gZmFsc2U7DQo+ICANCj4g IAkvKiBUT0RPOiBhZGQgcmFuZ2UgY2hlY2tpbmcgKi8NCj4gIAljbnQgPSAodWludDhfdCkganNv bl9vYmplY3RfZ2V0X2ludChqdmFsdWUpOw0KPiAgDQo+IC0JaWYgKCFqc29uX29iamVjdF9vYmpl Y3RfZ2V0X2V4KGpyZXRyYW5zbWl0LCAiaW50ZXJ2YWwiLCAmanZhbHVlKSkNCj4gKwlpZiAoIWpz b25fb2JqZWN0X29iamVjdF9nZXRfZXgoanJ0eCwgImludGVydmFsIiwgJmp2YWx1ZSkpDQo+ICAJ CXJldHVybiBmYWxzZTsNCj4gIA0KPiAgCWludGVydmFsID0gKHVpbnQxNl90KSBqc29uX29iamVj dF9nZXRfaW50KGp2YWx1ZSk7DQo+IEBAIC0xNTY2LDMwICsxNTY2LDMwIEBAIGJvb2wgbWVzaF9j b25maWdfd3JpdGVfcmVsYXlfbW9kZShzdHJ1Y3QgbWVzaF9jb25maWcgKmNmZywgdWludDhfdCBt b2RlLA0KPiAgYm9vbCBtZXNoX2NvbmZpZ193cml0ZV9uZXRfdHJhbnNtaXQoc3RydWN0IG1lc2hf Y29uZmlnICpjZmcsIHVpbnQ4X3QgY250LA0KPiAgCQkJCQkJCXVpbnQxNl90IGludGVydmFsKQ0K PiAgew0KPiAtCWpzb25fb2JqZWN0ICpqbm9kZSwgKmpyZXRyYW5zbWl0Ow0KPiArCWpzb25fb2Jq ZWN0ICpqbm9kZSwgKmpydHg7DQo+ICANCj4gIAlpZiAoIWNmZykNCj4gIAkJcmV0dXJuIGZhbHNl Ow0KPiAgDQo+ICAJam5vZGUgPSBjZmctPmpub2RlOw0KPiAgDQo+IC0JanJldHJhbnNtaXQgPSBq c29uX29iamVjdF9uZXdfb2JqZWN0KCk7DQo+IC0JaWYgKCFqcmV0cmFuc21pdCkNCj4gKwlqcnR4 ID0ganNvbl9vYmplY3RfbmV3X29iamVjdCgpOw0KPiArCWlmICghanJ0eCkNCj4gIAkJcmV0dXJu IGZhbHNlOw0KPiAgDQo+IC0JaWYgKCF3cml0ZV9pbnQoanJldHJhbnNtaXQsICJjb3VudCIsIGNu dCkpDQo+ICsJaWYgKCF3cml0ZV9pbnQoanJ0eCwgImNvdW50IiwgY250KSkNCj4gIAkJZ290byBm YWlsOw0KPiAgDQo+IC0JaWYgKCF3cml0ZV9pbnQoanJldHJhbnNtaXQsICJpbnRlcnZhbCIsIGlu dGVydmFsKSkNCj4gKwlpZiAoIXdyaXRlX2ludChqcnR4LCAiaW50ZXJ2YWwiLCBpbnRlcnZhbCkp DQo+ICAJCWdvdG8gZmFpbDsNCj4gIA0KPiAgCWpzb25fb2JqZWN0X29iamVjdF9kZWwoam5vZGUs ICJyZXRyYW5zbWl0Iik7DQo+IC0JanNvbl9vYmplY3Rfb2JqZWN0X2FkZChqbm9kZSwgInJldHJh bnNtaXQiLCBqcmV0cmFuc21pdCk7DQo+ICsJanNvbl9vYmplY3Rfb2JqZWN0X2FkZChqbm9kZSwg InJldHJhbnNtaXQiLCBqcnR4KTsNCj4gIA0KPiAgCXJldHVybiBzYXZlX2NvbmZpZyhjZmctPmpu b2RlLCBjZmctPm5vZGVfZGlyX3BhdGgpOw0KPiAgDQo+ICBmYWlsOg0KPiAtCWpzb25fb2JqZWN0 X3B1dChqcmV0cmFuc21pdCk7DQo+ICsJanNvbl9vYmplY3RfcHV0KGpydHgpOw0KPiAgCXJldHVy biBmYWxzZTsNCj4gIA0KPiAgfQ0KPiBAQCAtMTg0MSw3ICsxODQxLDcgQEAgYm9vbCBtZXNoX2Nv bmZpZ19tb2RlbF9wdWJfYWRkKHN0cnVjdCBtZXNoX2NvbmZpZyAqY2ZnLCB1aW50MTZfdCBlbGVf YWRkciwNCj4gIAkJCQkJdWludDMyX3QgbW9kX2lkLCBib29sIHZlbmRvciwNCj4gIAkJCQkJc3Ry dWN0IG1lc2hfY29uZmlnX3B1YiAqcHViKQ0KPiAgew0KPiAtCWpzb25fb2JqZWN0ICpqbm9kZSwg Kmptb2RlbCwgKmpwdWIsICpqcmV0cmFuc21pdDsNCj4gKwlqc29uX29iamVjdCAqam5vZGUsICpq bW9kZWwsICpqcHViLCAqanJ0eDsNCj4gIAlib29sIHJlczsNCj4gIAlpbnQgZWxlX2lkeDsNCj4g IA0KPiBAQCAtMTg4NSwxNyArMTg4NSwxNyBAQCBib29sIG1lc2hfY29uZmlnX21vZGVsX3B1Yl9h ZGQoc3RydWN0IG1lc2hfY29uZmlnICpjZmcsIHVpbnQxNl90IGVsZV9hZGRyLA0KPiAgCQkJCQkJ cHViLT5jcmVkZW50aWFsID8gMSA6IDApKQ0KPiAgCQlnb3RvIGZhaWw7DQo+ICANCj4gLQlqcmV0 cmFuc21pdCA9IGpzb25fb2JqZWN0X25ld19vYmplY3QoKTsNCj4gLQlpZiAoIWpyZXRyYW5zbWl0 KQ0KPiArCWpydHggPSBqc29uX29iamVjdF9uZXdfb2JqZWN0KCk7DQo+ICsJaWYgKCFqcnR4KQ0K PiAgCQlnb3RvIGZhaWw7DQo+ICANCj4gLQlpZiAoIXdyaXRlX2ludChqcmV0cmFuc21pdCwgImNv dW50IiwgcHViLT5jb3VudCkpDQo+ICsJaWYgKCF3cml0ZV9pbnQoanJ0eCwgImNvdW50IiwgcHVi LT5jbnQpKQ0KPiAgCQlnb3RvIGZhaWw7DQo+ICANCj4gLQlpZiAoIXdyaXRlX2ludChqcmV0cmFu c21pdCwgImludGVydmFsIiwgcHViLT5pbnRlcnZhbCkpDQo+ICsJaWYgKCF3cml0ZV9pbnQoanJ0 eCwgImludGVydmFsIiwgcHViLT5pbnRlcnZhbCkpDQo+ICAJCWdvdG8gZmFpbDsNCj4gIA0KPiAt CWpzb25fb2JqZWN0X29iamVjdF9hZGQoanB1YiwgInJldHJhbnNtaXQiLCBqcmV0cmFuc21pdCk7 DQo+ICsJanNvbl9vYmplY3Rfb2JqZWN0X2FkZChqcHViLCAicmV0cmFuc21pdCIsIGpydHgpOw0K PiAgCWpzb25fb2JqZWN0X29iamVjdF9hZGQoam1vZGVsLCAicHVibGlzaCIsIGpwdWIpOw0KPiAg DQo+ICAJcmV0dXJuIHNhdmVfY29uZmlnKGpub2RlLCBjZmctPm5vZGVfZGlyX3BhdGgpOw0KPiBk aWZmIC0tZ2l0IGEvbWVzaC9tZXNoLWNvbmZpZy5oIGIvbWVzaC9tZXNoLWNvbmZpZy5oDQo+IGlu ZGV4IDUwYTU1ZDUxZS4uNzM4Y2ZmOWRkIDEwMDY0NA0KPiAtLS0gYS9tZXNoL21lc2gtY29uZmln LmgNCj4gKysrIGIvbWVzaC9tZXNoLWNvbmZpZy5oDQo+IEBAIC0zNCwxMCArMzQsMTAgQEAgc3Ry dWN0IG1lc2hfY29uZmlnX3B1YiB7DQo+ICAJdWludDMyX3QgcGVyaW9kOw0KPiAgCXVpbnQxNl90 IGFkZHI7DQo+ICAJdWludDE2X3QgaWR4Ow0KPiArCXVpbnQxNl90IGludGVydmFsOw0KPiAgCXVp bnQ4X3QgdHRsOw0KPiAgCXVpbnQ4X3QgY3JlZGVudGlhbDsNCj4gLQl1aW50OF90IGNvdW50Ow0K PiAtCXVpbnQ4X3QgaW50ZXJ2YWw7DQo+ICsJdWludDhfdCBjbnQ7DQo+ICAJdWludDhfdCB2aXJ0 X2FkZHJbMTZdOw0KPiAgfTsNCj4gIA0KPiBkaWZmIC0tZ2l0IGEvbWVzaC9tb2RlbC5jIGIvbWVz aC9tb2RlbC5jDQo+IGluZGV4IDk2MTM5MWYxMy4uZWI1MTQyNTAzIDEwMDY0NA0KPiAtLS0gYS9t ZXNoL21vZGVsLmMNCj4gKysrIGIvbWVzaC9tb2RlbC5jDQo+IEBAIC01MDgsMTAgKzUwOCwxMSBA QCBzdGF0aWMgaW50IHZpcnRfcGFja2V0X2RlY3J5cHQoc3RydWN0IG1lc2hfbmV0ICpuZXQsIGNv bnN0IHVpbnQ4X3QgKmRhdGEsDQo+ICAJcmV0dXJuIC0xOw0KPiAgfQ0KPiAgDQo+IC1zdGF0aWMg Ym9vbCBtc2dfc2VuZChzdHJ1Y3QgbWVzaF9ub2RlICpub2RlLCBib29sIGNyZWRlbnRpYWwsIHVp bnQxNl90IHNyYywNCj4gLQkJdWludDMyX3QgZHN0LCB1aW50MTZfdCBhcHBfaWR4LCB1aW50MTZf dCBuZXRfaWR4LA0KPiAtCQl1aW50OF90ICpsYWJlbCwgdWludDhfdCB0dGwsIGJvb2wgc2VnbWVu dGVkLA0KPiAtCQljb25zdCB2b2lkICptc2csIHVpbnQxNl90IG1zZ19sZW4pDQo+ICtzdGF0aWMg Ym9vbCBtc2dfc2VuZChzdHJ1Y3QgbWVzaF9ub2RlICpub2RlLCBib29sIGNyZWQsIHVpbnQxNl90 IHNyYywNCj4gKwkJCXVpbnQxNl90IGRzdCwgdWludDE2X3QgYXBwX2lkeCwgdWludDE2X3QgbmV0 X2lkeCwNCj4gKwkJCXVpbnQ4X3QgKmxhYmVsLCB1aW50OF90IHR0bCwgdWludDhfdCBjbnQsDQo+ ICsJCQl1aW50MTZfdCBpbnRlcnZhbCwgYm9vbCBzZWdtZW50ZWQsIGNvbnN0IHZvaWQgKm1zZywN Cj4gKwkJCXVpbnQxNl90IG1zZ19sZW4pDQo+ICB7DQo+ICAJdWludDhfdCBkZXZfa2V5WzE2XTsN Cj4gIAl1aW50MzJfdCBpdl9pbmRleCwgc2VxX251bTsNCj4gQEAgLTU2Miw5ICs1NjMsOSBAQCBz dGF0aWMgYm9vbCBtc2dfc2VuZChzdHJ1Y3QgbWVzaF9ub2RlICpub2RlLCBib29sIGNyZWRlbnRp YWwsIHVpbnQxNl90IHNyYywNCj4gIAkJZ290byBkb25lOw0KPiAgCX0NCj4gIA0KPiAtCXJldCA9 ICBtZXNoX25ldF9hcHBfc2VuZChuZXQsIGNyZWRlbnRpYWwsIHNyYywgZHN0LCBrZXlfYWlkLCBu ZXRfaWR4LA0KPiAtCQkJCQl0dGwsIHNlcV9udW0sIGl2X2luZGV4LCBzZWdtZW50ZWQsDQo+IC0J CQkJCXN6bWljLCBvdXQsIG91dF9sZW4pOw0KPiArCXJldCA9ICBtZXNoX25ldF9hcHBfc2VuZChu ZXQsIGNyZWQsIHNyYywgZHN0LCBrZXlfYWlkLCBuZXRfaWR4LCB0dGwsDQo+ICsJCQkJCWNudCwg aW50ZXJ2YWwsIHNlcV9udW0sIGl2X2luZGV4LA0KPiArCQkJCQlzZWdtZW50ZWQsIHN6bWljLCBv dXQsIG91dF9sZW4pOw0KPiAgZG9uZToNCj4gIAlsX2ZyZWUob3V0KTsNCj4gIAlyZXR1cm4gcmV0 Ow0KPiBAQCAtNzA1LDcgKzcwNiw3IEBAIHN0YXRpYyBzdHJ1Y3QgbWVzaF92aXJ0dWFsICphZGRf dmlydHVhbChjb25zdCB1aW50OF90ICp2KQ0KPiAgDQo+ICBzdGF0aWMgaW50IHNldF9wdWIoc3Ry dWN0IG1lc2hfbW9kZWwgKm1vZCwgdWludDE2X3QgcHViX2FkZHIsDQo+ICAJCQl1aW50MTZfdCBp ZHgsIGJvb2wgY3JlZF9mbGFnLCB1aW50OF90IHR0bCwNCj4gLQkJCXVpbnQ4X3QgcGVyaW9kLCB1 aW50OF90IHJldHJhbnNtaXQpDQo+ICsJCQl1aW50OF90IHBlcmlvZCwgdWludDhfdCBjbnQsIHVp bnQxNl90IGludGVydmFsKQ0KPiAgew0KPiAgCWlmICghbW9kLT5wdWIpDQo+ICAJCW1vZC0+cHVi ID0gbF9uZXcoc3RydWN0IG1lc2hfbW9kZWxfcHViLCAxKTsNCj4gQEAgLTcxNSwxNCArNzE2LDE1 IEBAIHN0YXRpYyBpbnQgc2V0X3B1YihzdHJ1Y3QgbWVzaF9tb2RlbCAqbW9kLCB1aW50MTZfdCBw dWJfYWRkciwNCj4gIAltb2QtPnB1Yi0+aWR4ID0gaWR4Ow0KPiAgCW1vZC0+cHViLT50dGwgPSB0 dGw7DQo+ICAJbW9kLT5wdWItPnBlcmlvZCA9IHBlcmlvZDsNCj4gLQltb2QtPnB1Yi0+cmV0cmFu c21pdCA9IHJldHJhbnNtaXQ7DQo+ICsJbW9kLT5wdWItPnJ0eC5jbnQgPSBjbnQ7DQo+ICsJbW9k LT5wdWItPnJ0eC5pbnRlcnZhbCA9IGludGVydmFsOw0KPiAgDQo+ICAJcmV0dXJuIE1FU0hfU1RB VFVTX1NVQ0NFU1M7DQo+ICB9DQo+ICANCj4gIHN0YXRpYyBpbnQgc2V0X3ZpcnRfcHViKHN0cnVj dCBtZXNoX21vZGVsICptb2QsIGNvbnN0IHVpbnQ4X3QgKmxhYmVsLA0KPiAgCQkJdWludDE2X3Qg aWR4LCBib29sIGNyZWRfZmxhZywgdWludDhfdCB0dGwsDQo+IC0JCQl1aW50OF90IHBlcmlvZCwg dWludDhfdCByZXRyYW5zbWl0KQ0KPiArCQkJdWludDhfdCBwZXJpb2QsIHVpbnQ4X3QgY250LCB1 aW50MTZfdCBpbnRlcnZhbCkNCj4gIHsNCj4gIAlzdHJ1Y3QgbWVzaF92aXJ0dWFsICp2aXJ0ID0g TlVMTDsNCj4gIA0KPiBAQCAtNzM0LDggKzczNiw4IEBAIHN0YXRpYyBpbnQgc2V0X3ZpcnRfcHVi KHN0cnVjdCBtZXNoX21vZGVsICptb2QsIGNvbnN0IHVpbnQ4X3QgKmxhYmVsLA0KPiAgCQltb2Qt PnB1YiA9IGxfbmV3KHN0cnVjdCBtZXNoX21vZGVsX3B1YiwgMSk7DQo+ICANCj4gIAltb2QtPnB1 Yi0+dmlydCA9IHZpcnQ7DQo+IC0JcmV0dXJuIHNldF9wdWIobW9kLCB2aXJ0LT5hZGRyLCBpZHgs IGNyZWRfZmxhZywgdHRsLCBwZXJpb2QsDQo+IC0JCQkJCQkJCXJldHJhbnNtaXQpOw0KPiArCXJl dHVybiBzZXRfcHViKG1vZCwgdmlydC0+YWRkciwgaWR4LCBjcmVkX2ZsYWcsIHR0bCwgcGVyaW9k LCBjbnQsDQo+ICsJCQkJCQkJCWludGVydmFsKTsNCj4gIH0NCj4gIA0KPiAgc3RhdGljIGludCBh ZGRfdmlydF9zdWIoc3RydWN0IG1lc2hfbmV0ICpuZXQsIHN0cnVjdCBtZXNoX21vZGVsICptb2Qs DQo+IEBAIC0xMDU4LDkgKzEwNjAsMTAgQEAgaW50IG1lc2hfbW9kZWxfcHVibGlzaChzdHJ1Y3Qg bWVzaF9ub2RlICpub2RlLCB1aW50MzJfdCBpZCwgdWludDE2X3Qgc3JjLA0KPiAgDQo+ICAJbmV0 X2lkeCA9IGFwcGtleV9uZXRfaWR4KG5ldCwgbW9kLT5wdWItPmlkeCk7DQo+ICANCj4gLQlyZXN1 bHQgPSBtc2dfc2VuZChub2RlLCBtb2QtPnB1Yi0+Y3JlZGVudGlhbCAhPSAwLCBzcmMsDQo+IC0J CQkJbW9kLT5wdWItPmFkZHIsIG1vZC0+cHViLT5pZHgsIG5ldF9pZHgsDQo+IC0JCQkJbGFiZWws IG1vZC0+cHViLT50dGwsIGZhbHNlLCBtc2csIG1zZ19sZW4pOw0KPiArCXJlc3VsdCA9IG1zZ19z ZW5kKG5vZGUsIG1vZC0+cHViLT5jcmVkZW50aWFsICE9IDAsIHNyYywgbW9kLT5wdWItPmFkZHIs DQo+ICsJCQkJbW9kLT5wdWItPmlkeCwgbmV0X2lkeCwgbGFiZWwsIG1vZC0+cHViLT50dGwsDQo+ ICsJCQkJbW9kLT5wdWItPnJ0eC5jbnQsIG1vZC0+cHViLT5ydHguaW50ZXJ2YWwsDQo+ICsJCQkJ ZmFsc2UsIG1zZywgbXNnX2xlbik7DQo+ICANCj4gIAlyZXR1cm4gcmVzdWx0ID8gTUVTSF9FUlJP Ul9OT05FIDogTUVTSF9FUlJPUl9GQUlMRUQ7DQo+ICB9DQo+IEBAIC0xMDcwLDYgKzEwNzMsMTAg QEAgYm9vbCBtZXNoX21vZGVsX3NlbmQoc3RydWN0IG1lc2hfbm9kZSAqbm9kZSwgdWludDE2X3Qg c3JjLCB1aW50MTZfdCBkc3QsDQo+ICAJCQkJCXVpbnQ4X3QgdHRsLCBib29sIHNlZ21lbnRlZCwN Cj4gIAkJCQkJY29uc3Qgdm9pZCAqbXNnLCB1aW50MTZfdCBtc2dfbGVuKQ0KPiAgew0KPiArCXN0 cnVjdCBtZXNoX25ldCAqbmV0ID0gbm9kZV9nZXRfbmV0KG5vZGUpOw0KPiArCXVpbnQ4X3QgY250 Ow0KPiArCXVpbnQxNl90IGludGVydmFsOw0KPiArDQo+ICAJLyogSWYgU1JDIGlzIDAsIHVzZSB0 aGUgUHJpbWFyeSBFbGVtZW50ICovDQo+ICAJaWYgKHNyYyA9PSAwKQ0KPiAgCQlzcmMgPSBub2Rl X2dldF9wcmltYXJ5KG5vZGUpOw0KPiBAQCAtMTA3OSwxNCArMTA4NiwxNiBAQCBib29sIG1lc2hf bW9kZWxfc2VuZChzdHJ1Y3QgbWVzaF9ub2RlICpub2RlLCB1aW50MTZfdCBzcmMsIHVpbnQxNl90 IGRzdCwNCj4gIAlpZiAoSVNfVU5BU1NJR05FRChkc3QpKQ0KPiAgCQlyZXR1cm4gZmFsc2U7DQo+ ICANCj4gLQlyZXR1cm4gbXNnX3NlbmQobm9kZSwgZmFsc2UsIHNyYywgZHN0LCBhcHBfaWR4LCBu ZXRfaWR4LA0KPiAtCQkJCQlOVUxMLCB0dGwsIHNlZ21lbnRlZCwgbXNnLCBtc2dfbGVuKTsNCj4g KwltZXNoX25ldF90cmFuc21pdF9wYXJhbXNfZ2V0KG5ldCwgJmNudCwgJmludGVydmFsKTsNCj4g Kw0KPiArCXJldHVybiBtc2dfc2VuZChub2RlLCBmYWxzZSwgc3JjLCBkc3QsIGFwcF9pZHgsIG5l dF9pZHgsIE5VTEwsIHR0bCwgY250LA0KPiArCQkJCQlpbnRlcnZhbCwgc2VnbWVudGVkLCBtc2cs IG1zZ19sZW4pOw0KPiAgfQ0KPiAgDQo+ICBpbnQgbWVzaF9tb2RlbF9wdWJfc2V0KHN0cnVjdCBt ZXNoX25vZGUgKm5vZGUsIHVpbnQxNl90IGFkZHIsIHVpbnQzMl90IGlkLA0KPiAgCQkJY29uc3Qg dWludDhfdCAqcHViX2FkZHIsIHVpbnQxNl90IGlkeCwgYm9vbCBjcmVkX2ZsYWcsDQo+IC0JCQl1 aW50OF90IHR0bCwgdWludDhfdCBwZXJpb2QsIHVpbnQ4X3QgcmV0cmFuc21pdCwNCj4gLQkJCWJv b2wgaXNfdmlydCwgdWludDE2X3QgKnB1Yl9kc3QpDQo+ICsJCQl1aW50OF90IHR0bCwgdWludDhf dCBwZXJpb2QsIHVpbnQ4X3QgY250LA0KPiArCQkJdWludDE2X3QgaW50ZXJ2YWwsIGJvb2wgaXNf dmlydCwgdWludDE2X3QgKnB1Yl9kc3QpDQo+ICB7DQo+ICAJc3RydWN0IG1lc2hfbW9kZWwgKm1v ZDsNCj4gIAlpbnQgc3RhdHVzLCBlbGVfaWR4ID0gbm9kZV9nZXRfZWxlbWVudF9pZHgobm9kZSwg YWRkcik7DQo+IEBAIC0xMTI0LDEwICsxMTMzLDEwIEBAIGludCBtZXNoX21vZGVsX3B1Yl9zZXQo c3RydWN0IG1lc2hfbm9kZSAqbm9kZSwgdWludDE2X3QgYWRkciwgdWludDMyX3QgaWQsDQo+ICAN Cj4gIAlpZiAoIWlzX3ZpcnQpIHsNCj4gIAkJc3RhdHVzID0gc2V0X3B1Yihtb2QsIGxfZ2V0X2xl MTYocHViX2FkZHIpLCBpZHgsIGNyZWRfZmxhZywNCj4gLQkJCQkJCXR0bCwgcGVyaW9kLCByZXRy YW5zbWl0KTsNCj4gKwkJCQkJCXR0bCwgcGVyaW9kLCBjbnQsIGludGVydmFsKTsNCj4gIAl9IGVs c2UNCj4gIAkJc3RhdHVzID0gc2V0X3ZpcnRfcHViKG1vZCwgcHViX2FkZHIsIGlkeCwgY3JlZF9m bGFnLCB0dGwsDQo+IC0JCQkJCQlwZXJpb2QsIHJldHJhbnNtaXQpOw0KPiArCQkJCQkJCXBlcmlv ZCwgY250LCBpbnRlcnZhbCk7DQo+ICANCj4gIAkqcHViX2RzdCA9IG1vZC0+cHViLT5hZGRyOw0K PiAgDQo+IEBAIC0xNzAzLDE1ICsxNzEyLDEzIEBAIHN0YXRpYyBzdHJ1Y3QgbWVzaF9tb2RlbCAq bW9kZWxfc2V0dXAoc3RydWN0IG1lc2hfbmV0ICpuZXQsIHVpbnQ4X3QgZWxlX2lkeCwNCj4gIA0K PiAgCS8qIEFkZCBwdWJsaWNhdGlvbiBpZiBlbmFibGVkIGFuZCBwcmVzZW50ICovDQo+ICAJaWYg KG1vZC0+cHViX2VuYWJsZWQgJiYgcHViKSB7DQo+IC0JCXVpbnQ4X3QgcmV0cmFuc21pdCA9IHB1 Yi0+Y291bnQgKw0KPiAtCQkJCQkoKHB1Yi0+aW50ZXJ2YWwgLyA1MCAtIDEpIDw8IDMpOw0KPiAg CQlpZiAocHViLT52aXJ0KQ0KPiAgCQkJc2V0X3ZpcnRfcHViKG1vZCwgcHViLT52aXJ0X2FkZHIs IHB1Yi0+aWR4LA0KPiAtCQkJCQkJcHViLT5jcmVkZW50aWFsLCBwdWItPnR0bCwNCj4gLQkJCQkJ CXB1Yi0+cGVyaW9kLCByZXRyYW5zbWl0KTsNCj4gKwkJCQkJcHViLT5jcmVkZW50aWFsLCBwdWIt PnR0bCwgcHViLT5wZXJpb2QsDQo+ICsJCQkJCXB1Yi0+Y250LCBwdWItPmludGVydmFsKTsNCj4g IAkJZWxzZSBpZiAoIUlTX1VOQVNTSUdORUQocHViLT5hZGRyKSkNCj4gIAkJCXNldF9wdWIobW9k LCBwdWItPmFkZHIsIHB1Yi0+aWR4LCBwdWItPmNyZWRlbnRpYWwsDQo+IC0JCQkJcHViLT50dGws IHB1Yi0+cGVyaW9kLCByZXRyYW5zbWl0KTsNCj4gKwkJCQlwdWItPnR0bCwgcHViLT5wZXJpb2Qs IHB1Yi0+Y250LCBwdWItPmludGVydmFsKTsNCj4gIAl9DQo+ICANCj4gIAltb2QtPnN1Yl9lbmFi bGVkID0gZGJfbW9kLT5zdWJfZW5hYmxlZDsNCj4gZGlmZiAtLWdpdCBhL21lc2gvbW9kZWwuaCBi L21lc2gvbW9kZWwuaA0KPiBpbmRleCAxNDdhMDIyNzkuLmExYWZlZGQxOSAxMDA2NDQNCj4gLS0t IGEvbWVzaC9tb2RlbC5oDQo+ICsrKyBiL21lc2gvbW9kZWwuaA0KPiBAQCAtNDAsMTAgKzQwLDEz IEBAIHN0cnVjdCBtZXNoX21vZGVsX3B1YiB7DQo+ICAJc3RydWN0IG1lc2hfdmlydHVhbCAqdmly dDsNCj4gIAl1aW50MTZfdCBhZGRyOw0KPiAgCXVpbnQxNl90IGlkeDsNCj4gKwlzdHJ1Y3Qgew0K PiArCQl1aW50MTZfdCBpbnRlcnZhbDsNCj4gKwkJdWludDhfdCBjbnQ7DQo+ICsJfSBydHg7DQo+ ICAJdWludDhfdCB0dGw7DQo+ICAJdWludDhfdCBjcmVkZW50aWFsOw0KPiAgCXVpbnQ4X3QgcGVy aW9kOw0KPiAtCXVpbnQ4X3QgcmV0cmFuc21pdDsNCj4gIH07DQo+ICANCj4gIHR5cGVkZWYgdm9p ZCAoKm1lc2hfbW9kZWxfdW5yZWdpc3Rlcikodm9pZCAqdXNlcl9kYXRhKTsNCj4gQEAgLTc4LDgg KzgxLDggQEAgc3RydWN0IG1lc2hfbW9kZWxfcHViICptZXNoX21vZGVsX3B1Yl9nZXQoc3RydWN0 IG1lc2hfbm9kZSAqbm9kZSwNCj4gIAkJCQkJCXVpbnQzMl90IGlkLCBpbnQgKnN0YXR1cyk7DQo+ ICBpbnQgbWVzaF9tb2RlbF9wdWJfc2V0KHN0cnVjdCBtZXNoX25vZGUgKm5vZGUsIHVpbnQxNl90 IGVsZV9hZGRyLCB1aW50MzJfdCBpZCwNCj4gIAkJCWNvbnN0IHVpbnQ4X3QgKmFkZHIsIHVpbnQx Nl90IGlkeCwgYm9vbCBjcmVkX2ZsYWcsDQo+IC0JCQl1aW50OF90IHR0bCwgdWludDhfdCBwZXJp b2QsIHVpbnQ4X3QgcmV0cmFuc21pdCwNCj4gLQkJCWJvb2wgaXNfdmlydCwgdWludDE2X3QgKmRz dCk7DQo+ICsJCQl1aW50OF90IHR0bCwgdWludDhfdCBwZXJpb2QsIHVpbnQ4X3QgcnR4X2NudCwN Cj4gKwkJCXVpbnQxNl90IHJ0eF9pbnRlcnZhbCwgYm9vbCBpc192aXJ0LCB1aW50MTZfdCAqZHN0 KTsNCj4gIA0KPiAgaW50IG1lc2hfbW9kZWxfYmluZGluZ19hZGQoc3RydWN0IG1lc2hfbm9kZSAq bm9kZSwgdWludDE2X3QgZWxlX2FkZHIsDQo+ICAJCQkJCQl1aW50MzJfdCBpZCwgdWludDE2X3Qg aWR4KTsNCj4gZGlmZiAtLWdpdCBhL21lc2gvbmV0LmMgYi9tZXNoL25ldC5jDQo+IGluZGV4IDI2 NDQwYjAyZC4uOTMzMDdlNzBjIDEwMDY0NA0KPiAtLS0gYS9tZXNoL25ldC5jDQo+ICsrKyBiL21l c2gvbmV0LmMNCj4gQEAgLTIxMiw2ICsyMTIsOCBAQCBzdHJ1Y3QgbmV0X3F1ZXVlX2RhdGEgew0K PiAgDQo+ICBzdHJ1Y3Qgb25lc2hvdF90eCB7DQo+ICAJc3RydWN0IG1lc2hfbmV0ICpuZXQ7DQo+ ICsJdWludDE2X3QgaW50ZXJ2YWw7DQo+ICsJdWludDhfdCBjbnQ7DQo+ICAJdWludDhfdCBzaXpl Ow0KPiAgCXVpbnQ4X3QgcGFja2V0WzMwXTsNCj4gIH07DQo+IEBAIC0xMzk5LDcgKzE0MDEsOCBA QCBzdGF0aWMgdm9pZCBmcmllbmRfYWNrX3J4ZWQoc3RydWN0IG1lc2hfbmV0ICpuZXQsIHVpbnQz Ml90IGl2X2luZGV4LA0KPiAgCWxfcXVldWVfZm9yZWFjaChuZXQtPmZyaWVuZHMsIGVucXVldWVf ZnJpZW5kX3BrdCwgJmZybmRfYWNrKTsNCj4gIH0NCj4gIA0KPiAtc3RhdGljIGJvb2wgc2VuZF9z ZWcoc3RydWN0IG1lc2hfbmV0ICpuZXQsIHN0cnVjdCBtZXNoX3NhciAqbXNnLCB1aW50OF90IHNl Zyk7DQo+ICtzdGF0aWMgYm9vbCBzZW5kX3NlZyhzdHJ1Y3QgbWVzaF9uZXQgKm5ldCwgdWludDhf dCBjbnQsIHVpbnQxNl90IGludGVydmFsLA0KPiArCQkJCQlzdHJ1Y3QgbWVzaF9zYXIgKm1zZywg dWludDhfdCBzZWcpOw0KPiAgDQo+ICBzdGF0aWMgdm9pZCBzZW5kX2ZybmRfYWNrKHN0cnVjdCBt ZXNoX25ldCAqbmV0LCB1aW50MTZfdCBzcmMsIHVpbnQxNl90IGRzdCwNCj4gIAkJCQkJCXVpbnQz Ml90IGhkciwgdWludDMyX3QgZmxhZ3MpDQo+IEBAIC0xNTkzLDcgKzE1OTYsNyBAQCBzdGF0aWMg dm9pZCBhY2tfcmVjZWl2ZWQoc3RydWN0IG1lc2hfbmV0ICpuZXQsIGJvb2wgdGltZW91dCwNCj4g IAkJbF9kZWJ1ZygiUmVzZW5kIFNlZyAlZCBuZXQ6JXAgZHN0OiV4IGFwcF9pZHg6JTMuM3giLA0K PiAgCQkJCWksIG5ldCwgb3V0Z29pbmctPnJlbW90ZSwgb3V0Z29pbmctPmFwcF9pZHgpOw0KPiAg DQo+IC0JCXNlbmRfc2VnKG5ldCwgb3V0Z29pbmcsIGkpOw0KPiArCQlzZW5kX3NlZyhuZXQsIG5l dC0+dHhfY250LCBuZXQtPnR4X2ludGVydmFsLCBvdXRnb2luZywgaSk7DQo+ICAJfQ0KPiAgDQo+ ICAJbF90aW1lb3V0X3JlbW92ZShvdXRnb2luZy0+c2VnX3RpbWVvdXQpOw0KPiBAQCAtMjE0Myw4 ICsyMTQ2LDggQEAgc3RhdGljIHZvaWQgc2VuZF9tc2dfcGt0X29uZXNob3Qodm9pZCAqdXNlcl9k YXRhKQ0KPiAgDQo+ICAJdHgtPnBhY2tldFswXSA9IE1FU0hfQURfVFlQRV9ORVRXT1JLOw0KPiAg CWluZm8udHlwZSA9IE1FU0hfSU9fVElNSU5HX1RZUEVfR0VORVJBTDsNCj4gLQlpbmZvLnUuZ2Vu LmludGVydmFsID0gbmV0LT50eF9pbnRlcnZhbDsNCj4gLQlpbmZvLnUuZ2VuLmNudCA9IG5ldC0+ dHhfY250Ow0KPiArCWluZm8udS5nZW4uaW50ZXJ2YWwgPSB0eC0+aW50ZXJ2YWw7DQo+ICsJaW5m by51Lmdlbi5jbnQgPSB0eC0+Y250Ow0KPiAgCWluZm8udS5nZW4ubWluX2RlbGF5ID0gREVGQVVM VF9NSU5fREVMQVk7DQo+ICAJLyogTm8gZXh0cmEgcmFuZG9taXphdGlvbiB3aGVuIHNlbmRpbmcg cmVndWxhciBtZXNoIG1lc3NhZ2VzICovDQo+ICAJaW5mby51Lmdlbi5tYXhfZGVsYXkgPSBERUZB VUxUX01JTl9ERUxBWTsNCj4gQEAgLTIxNTMsMTEgKzIxNTYsMTQgQEAgc3RhdGljIHZvaWQgc2Vu ZF9tc2dfcGt0X29uZXNob3Qodm9pZCAqdXNlcl9kYXRhKQ0KPiAgCWxfZnJlZSh0eCk7DQo+ICB9 DQo+ICANCj4gLXN0YXRpYyB2b2lkIHNlbmRfbXNnX3BrdChzdHJ1Y3QgbWVzaF9uZXQgKm5ldCwg dWludDhfdCAqcGFja2V0LCB1aW50OF90IHNpemUpDQo+ICtzdGF0aWMgdm9pZCBzZW5kX21zZ19w a3Qoc3RydWN0IG1lc2hfbmV0ICpuZXQsIHVpbnQ4X3QgY250LCB1aW50MTZfdCBpbnRlcnZhbCwN Cj4gKwkJCQkJCXVpbnQ4X3QgKnBhY2tldCwgdWludDhfdCBzaXplKQ0KPiAgew0KPiAgCXN0cnVj dCBvbmVzaG90X3R4ICp0eCA9IGxfbmV3KHN0cnVjdCBvbmVzaG90X3R4LCAxKTsNCj4gIA0KPiAg CXR4LT5uZXQgPSBuZXQ7DQo+ICsJdHgtPmludGVydmFsID0gaW50ZXJ2YWw7DQo+ICsJdHgtPmNu dCA9IGNudDsNCj4gIAl0eC0+c2l6ZSA9IHNpemU7DQo+ICAJbWVtY3B5KHR4LT5wYWNrZXQsIHBh Y2tldCwgc2l6ZSk7DQo+ICANCj4gQEAgLTI4NzIsNyArMjg3OCw4IEBAIGJvb2wgbWVzaF9uZXRf ZHN0X3VucmVnKHN0cnVjdCBtZXNoX25ldCAqbmV0LCB1aW50MTZfdCBkc3QpDQo+ICAJcmV0dXJu IHRydWU7DQo+ICB9DQo+ICANCj4gLXN0YXRpYyBib29sIHNlbmRfc2VnKHN0cnVjdCBtZXNoX25l dCAqbmV0LCBzdHJ1Y3QgbWVzaF9zYXIgKm1zZywgdWludDhfdCBzZWdPKQ0KPiArc3RhdGljIGJv b2wgc2VuZF9zZWcoc3RydWN0IG1lc2hfbmV0ICpuZXQsIHVpbnQ4X3QgY250LCB1aW50MTZfdCBp bnRlcnZhbCwNCj4gKwkJCQkJc3RydWN0IG1lc2hfc2FyICptc2csIHVpbnQ4X3Qgc2VnTykNCj4g IHsNCj4gIAlzdHJ1Y3QgbWVzaF9zdWJuZXQgKnN1Ym5ldDsNCj4gIAl1aW50OF90IHNlZ19sZW47 DQo+IEBAIC0yOTI3LDcgKzI5MzQsNyBAQCBzdGF0aWMgYm9vbCBzZW5kX3NlZyhzdHJ1Y3QgbWVz aF9uZXQgKm5ldCwgc3RydWN0IG1lc2hfc2FyICptc2csIHVpbnQ4X3Qgc2VnTykNCj4gIAkJcmV0 dXJuIGZhbHNlOw0KPiAgCX0NCj4gIA0KPiAtCXNlbmRfbXNnX3BrdChuZXQsIHBhY2tldCwgcGFj a2V0X2xlbiArIDEpOw0KPiArCXNlbmRfbXNnX3BrdChuZXQsIGNudCwgaW50ZXJ2YWwsIHBhY2tl dCwgcGFja2V0X2xlbiArIDEpOw0KPiAgDQo+ICAJbXNnLT5sYXN0X3NlZyA9IHNlZ087DQo+ICAN Cj4gQEAgLTI5NjcsNyArMjk3NCw4IEBAIHZvaWQgbWVzaF9uZXRfc2VuZF9zZWcoc3RydWN0IG1l c2hfbmV0ICpuZXQsIHVpbnQzMl90IG5ldF9rZXlfaWQsDQo+ICAJCXJldHVybjsNCj4gIAl9DQo+ ICANCj4gLQlzZW5kX21zZ19wa3QobmV0LCBwYWNrZXQsIHBhY2tldF9sZW4gKyAxKTsNCj4gKwlz ZW5kX21zZ19wa3QobmV0LCBuZXQtPnR4X2NudCwgbmV0LT50eF9pbnRlcnZhbCwgcGFja2V0LA0K PiArCQkJCQkJCQlwYWNrZXRfbGVuICsgMSk7DQo+ICANCj4gIAlsX2RlYnVnKCJUWDogRnJpZW5k IFNlZy0lZCAlMDR4IC0+ICUwNHggOiBsZW4gJXUpIDogVFRMICVkIDogU0VRICUwNngiLA0KPiAg CQkJCQlzZWdPLCBzcmMsIGRzdCwgcGFja2V0X2xlbiwgdHRsLCBzZXEpOw0KPiBAQCAtMjk3Nyw5 ICsyOTg1LDkgQEAgdm9pZCBtZXNoX25ldF9zZW5kX3NlZyhzdHJ1Y3QgbWVzaF9uZXQgKm5ldCwg dWludDMyX3QgbmV0X2tleV9pZCwNCj4gIA0KPiAgYm9vbCBtZXNoX25ldF9hcHBfc2VuZChzdHJ1 Y3QgbWVzaF9uZXQgKm5ldCwgYm9vbCBmcm5kX2NyZWQsIHVpbnQxNl90IHNyYywNCj4gIAkJCQl1 aW50MTZfdCBkc3QsIHVpbnQ4X3Qga2V5X2FpZCwgdWludDE2X3QgbmV0X2lkeCwNCj4gLQkJCQl1 aW50OF90IHR0bCwgdWludDMyX3Qgc2VxLCB1aW50MzJfdCBpdl9pbmRleCwNCj4gLQkJCQlib29s IHNlZ21lbnRlZCwgYm9vbCBzem1pYywNCj4gLQkJCQljb25zdCB2b2lkICptc2csIHVpbnQxNl90 IG1zZ19sZW4pDQo+ICsJCQkJdWludDhfdCB0dGwsIHVpbnQ4X3QgY250LCB1aW50MTZfdCBpbnRl cnZhbCwNCj4gKwkJCQl1aW50MzJfdCBzZXEsIHVpbnQzMl90IGl2X2luZGV4LCBib29sIHNlZ21l bnRlZCwNCj4gKwkJCQlib29sIHN6bWljLCBjb25zdCB2b2lkICptc2csIHVpbnQxNl90IG1zZ19s ZW4pDQo+ICB7DQo+ICAJc3RydWN0IG1lc2hfc2FyICpwYXlsb2FkID0gTlVMTDsNCj4gIAl1aW50 OF90IHNlZywgc2VnX21heDsNCj4gQEAgLTMwNTQsMTEgKzMwNjIsMTIgQEAgYm9vbCBtZXNoX25l dF9hcHBfc2VuZChzdHJ1Y3QgbWVzaF9uZXQgKm5ldCwgYm9vbCBmcm5kX2NyZWQsIHVpbnQxNl90 IHNyYywNCj4gIA0KPiAgCQlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7DQo+ICAJCQlmb3IgKHNl ZyA9IDA7IHNlZyA8PSBzZWdfbWF4ICYmIHJlc3VsdDsgc2VnKyspDQo+IC0JCQkJcmVzdWx0ID0g c2VuZF9zZWcobmV0LCBwYXlsb2FkLCBzZWcpOw0KPiArCQkJCXJlc3VsdCA9IHNlbmRfc2VnKG5l dCwgY250LCBpbnRlcnZhbCwgcGF5bG9hZCwNCj4gKwkJCQkJCQkJCXNlZyk7DQo+ICAJCX0NCj4g IAl9IGVsc2Ugew0KPiAgCQlmb3IgKHNlZyA9IDA7IHNlZyA8PSBzZWdfbWF4ICYmIHJlc3VsdDsg c2VnKyspDQo+IC0JCQlyZXN1bHQgPSBzZW5kX3NlZyhuZXQsIHBheWxvYWQsIHNlZyk7DQo+ICsJ CQlyZXN1bHQgPSBzZW5kX3NlZyhuZXQsIGNudCwgaW50ZXJ2YWwsIHBheWxvYWQsIHNlZyk7DQo+ ICAJfQ0KPiAgDQo+ICAJLyogUmVsaWFibGU6IENhY2hlOyBVbnJlbGlhYmxlOiBGbHVzaCovDQo+ IEBAIC0zMTA4LDcgKzMxMTcsNyBAQCB2b2lkIG1lc2hfbmV0X2Fja19zZW5kKHN0cnVjdCBtZXNo X25ldCAqbmV0LCB1aW50MzJfdCBrZXlfaWQsIHVpbnQzMl90IGl2X2luZGV4LA0KPiAgCQlyZXR1 cm47DQo+ICAJfQ0KPiAgDQo+IC0Jc2VuZF9tc2dfcGt0KG5ldCwgcGt0LCBwa3RfbGVuICsgMSk7 DQo+ICsJc2VuZF9tc2dfcGt0KG5ldCwgbmV0LT50eF9jbnQsIG5ldC0+dHhfaW50ZXJ2YWwsIHBr dCwgcGt0X2xlbiArIDEpOw0KPiAgDQo+ICAJbF9kZWJ1ZygiVFg6IEZyaWVuZCBBQ0sgJTA0eCAt PiAlMDR4IDogbGVuICV1IDogVFRMICVkIDogU0VRICUwNngiLA0KPiAgCQkJCQlzcmMsIGRzdCwg cGt0X2xlbiwgdHRsLCBzZXEpOw0KPiBAQCAtMzE4Miw4ICszMTkxLDkgQEAgdm9pZCBtZXNoX25l dF90cmFuc3BvcnRfc2VuZChzdHJ1Y3QgbWVzaF9uZXQgKm5ldCwgdWludDMyX3Qga2V5X2lkLA0K PiAgCQlyZXR1cm47DQo+ICAJfQ0KPiAgDQo+IC0JaWYgKGRzdCAhPSAwKQ0KPiAtCQlzZW5kX21z Z19wa3QobmV0LCBwa3QsIHBrdF9sZW4gKyAxKTsNCj4gKwlpZiAoIShJU19VTkFTU0lHTkVEKGRz dCkpKQ0KPiArCQlzZW5kX21zZ19wa3QobmV0LCBuZXQtPnR4X2NudCwgbmV0LT50eF9pbnRlcnZh bCwgcGt0LA0KPiArCQkJCQkJCQlwa3RfbGVuICsgMSk7DQo+ICB9DQo+ICANCj4gIGludCBtZXNo X25ldF9rZXlfcmVmcmVzaF9waGFzZV9zZXQoc3RydWN0IG1lc2hfbmV0ICpuZXQsIHVpbnQxNl90 IGlkeCwNCj4gZGlmZiAtLWdpdCBhL21lc2gvbmV0LmggYi9tZXNoL25ldC5oDQo+IGluZGV4IDkx ZTA3ZWY3OC4uMjUzMTg1ZTQyIDEwMDY0NA0KPiAtLS0gYS9tZXNoL25ldC5oDQo+ICsrKyBiL21l c2gvbmV0LmgNCj4gQEAgLTMwMCw5ICszMDAsOSBAQCB2b2lkIG1lc2hfbmV0X3RyYW5zcG9ydF9z ZW5kKHN0cnVjdCBtZXNoX25ldCAqbmV0LCB1aW50MzJfdCBrZXlfaWQsDQo+ICANCj4gIGJvb2wg bWVzaF9uZXRfYXBwX3NlbmQoc3RydWN0IG1lc2hfbmV0ICpuZXQsIGJvb2wgZnJuZF9jcmVkLCB1 aW50MTZfdCBzcmMsDQo+ICAJCQkJdWludDE2X3QgZHN0LCB1aW50OF90IGtleV9pZCwgdWludDE2 X3QgbmV0X2lkeCwNCj4gLQkJCQl1aW50OF90IHR0bCwgdWludDMyX3Qgc2VxLCB1aW50MzJfdCBp dl9pbmRleCwNCj4gLQkJCQlib29sIHNlZ21lbnRlZCwgYm9vbCBzem1pYywgY29uc3Qgdm9pZCAq bXNnLA0KPiAtCQkJCXVpbnQxNl90IG1zZ19sZW4pOw0KPiArCQkJCXVpbnQ4X3QgdHRsLCB1aW50 OF90IGNudCwgdWludDE2X3QgaW50ZXJ2YWwsDQo+ICsJCQkJdWludDMyX3Qgc2VxLCB1aW50MzJf dCBpdl9pbmRleCwgYm9vbCBzZWdtZW50ZWQsDQo+ICsJCQkJYm9vbCBzem1pYywgY29uc3Qgdm9p ZCAqbXNnLCB1aW50MTZfdCBtc2dfbGVuKTsNCj4gIHZvaWQgbWVzaF9uZXRfYWNrX3NlbmQoc3Ry dWN0IG1lc2hfbmV0ICpuZXQsIHVpbnQzMl90IGtleV9pZCwNCj4gIAkJCQl1aW50MzJfdCBpdl9p bmRleCwgdWludDhfdCB0dGwsIHVpbnQzMl90IHNlcSwNCj4gIAkJCQl1aW50MTZfdCBzcmMsIHVp bnQxNl90IGRzdCwgYm9vbCBybHksDQo=