From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0043.outbound.protection.outlook.com [104.47.38.43]) by dpdk.org (Postfix) with ESMTP id 27D0D1B2C6 for ; Fri, 19 Jan 2018 20:30:06 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=t8hX5jygsUYNtRORhA28qoKBRM8pEL8xja4hdjRKXFg=; b=DGLAoB3+0BysFEzrVfzA+BDrPVMyRDp7StSKXDBgppaAJ16F4Qnac3Leo+EVfPBq/l+i8J6FpyVnquCfalbv5REVjMOQuIJRzU1JzKxOlBuUhnEIjj2rOWjxH0QOVrp1G4apqmKDXn1uv7cjmg0cPooV4Dvc3OhArNXckxUE+Lg= Received: from MWHPR07MB3069.namprd07.prod.outlook.com (10.172.97.11) by MWHPR07MB3072.namprd07.prod.outlook.com (10.172.97.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.407.7; Fri, 19 Jan 2018 19:30:05 +0000 Received: from MWHPR07MB3069.namprd07.prod.outlook.com ([10.172.97.11]) by MWHPR07MB3069.namprd07.prod.outlook.com ([10.172.97.11]) with mapi id 15.20.0407.012; Fri, 19 Jan 2018 19:30:05 +0000 From: "Patil, Harish" To: Shahaf Shuler , "jingjing.wu@intel.com" , "ferruh.yigit@intel.com" CC: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v3 02/10] app/testpmd: convert to new Ethdev Rx offloads API Thread-Index: AQHTkVvokKJ0qCOH+UCCyQqDpNZX/w== Date: Fri, 19 Jan 2018 19:30:05 +0000 Message-ID: References: <8cb2768f5d38fcdbef83c0c7df4ce5ceb0dc5c59.1514281259.git.shahafs@mellanox.com> In-Reply-To: <8cb2768f5d38fcdbef83c0c7df4ce5ceb0dc5c59.1514281259.git.shahafs@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Harish.Patil@cavium.com; x-originating-ip: [173.186.134.106] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; MWHPR07MB3072; 7:Qfoct5RvBkVMGpAnnvPjxfmqGk6gyZwAuCao4zf73Q3DWHvPaoGxIyrJM/vd/vs3+69VjzdDJKhXZpFNWF801HJwFGCeiYbxfV5q0AkwzStHBt+AlHu4vJYtUiioVbYIyOxHurjLGibvSH74N4Q4YvHiLT0v+0r0DEQu6C/75jd1d+1s5dMB4onJmUCtClUsGcF5WKHJAZusImjCM6goMavw/I271e72KeofXNVOmJ8jAbbkzV6wxBBRJdiCYStq x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: 083f4976-4a52-400e-e264-08d55f730af7 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534125)(4602075)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(3008032)(2017052603307)(7153060)(7193020); SRVR:MWHPR07MB3072; x-ms-traffictypediagnostic: MWHPR07MB3072: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(3231023)(2400081)(944501161)(10201501046)(6041268)(20161123564045)(20161123562045)(20161123558120)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:MWHPR07MB3072; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:MWHPR07MB3072; x-forefront-prvs: 0557CBAD84 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(346002)(396003)(39380400002)(366004)(189003)(199004)(13464003)(66066001)(59450400001)(6506007)(305945005)(6512007)(53546011)(229853002)(2501003)(97736004)(53936002)(4326008)(6246003)(86362001)(3846002)(2900100001)(8676002)(77096007)(3280700002)(72206003)(2201001)(81156014)(6116002)(7736002)(68736007)(81166006)(5660300001)(478600001)(99286004)(8936002)(106356001)(25786009)(26005)(76176011)(3660700001)(14454004)(6436002)(316002)(6486002)(2906002)(2950100002)(102836004)(110136005)(36756003)(105586002); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR07MB3072; H:MWHPR07MB3069.namprd07.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: m/2l/rdsrVDBJ+hjqF6Bs+wDWTBOVN/lohT49dRgmN4XG4xtz/aE71AwC9YCLkmIbP4WZf3DCT2F5VQtIRw61Q== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-Network-Message-Id: 083f4976-4a52-400e-e264-08d55f730af7 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jan 2018 19:30:05.0500 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR07MB3072 Subject: Re: [dpdk-dev] [PATCH v3 02/10] app/testpmd: convert to new Ethdev Rx offloads API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Jan 2018 19:30:07 -0000 LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGRldiA8ZGV2LWJvdW5jZXNAZHBkay5v cmc+IG9uIGJlaGFsZiBvZiBTaGFoYWYgU2h1bGVyDQo8c2hhaGFmc0BtZWxsYW5veC5jb20+DQpE YXRlOiBUdWVzZGF5LCBEZWNlbWJlciAyNiwgMjAxNyBhdCAxOjQ0IEFNDQpUbzogImppbmdqaW5n Lnd1QGludGVsLmNvbSIgPGppbmdqaW5nLnd1QGludGVsLmNvbT4sDQoiZmVycnVoLnlpZ2l0QGlu dGVsLmNvbSIgPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+DQpDYzogImRldkBkcGRrLm9yZyIgPGRl dkBkcGRrLm9yZz4NClN1YmplY3Q6IFtkcGRrLWRldl0gW1BBVENIIHYzIDAyLzEwXSBhcHAvdGVz dHBtZDogY29udmVydCB0byBuZXcgRXRoZGV2DQpSeAlvZmZsb2FkcyBBUEkNCg0KPkV0aGRldiBS eCBvZmZsb2FkcyBBUEkgaGFzIGNoYW5nZWQgc2luY2U6DQo+DQo+Y29tbWl0IGNlMTdlZGRlZmMy MCAoImV0aGRldjogaW50cm9kdWNlIFJ4IHF1ZXVlIG9mZmxvYWRzIEFQSSIpDQo+DQo+Q29udmVy dCB0aGUgYXBwbGljYXRpb24gdG8gdXNlIHRoZSBuZXcgQVBJLiBUaGUgaXMgbm8gZnVuY3Rpb25h bGl0eQ0KPmNoYW5nZXMgcmF0aGVyIHNpbXBsZSBjb252ZXJzaW9uIG9mIHRoZSBmbGFncy4NCj4N Cj5TaWduZWQtb2ZmLWJ5OiBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT4NCj4t LS0NCj4gYXBwL3Rlc3QtcG1kL2NtZGxpbmUuYyAgICB8IDUxICsrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiBhcHAvdGVzdC1wbWQvY29uZmlnLmMgICAgIHwgMzYg KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0NCj4gYXBwL3Rlc3QtcG1kL3BhcmFtZXRlcnMu YyB8IDMyICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tDQo+IGFwcC90ZXN0LXBtZC90ZXN0cG1k LmMgICAgfCAxOSArKysrKysrLS0tLS0tLS0tDQo+IDQgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0 aW9ucygrKSwgNjEgZGVsZXRpb25zKC0pDQo+DQo+ZGlmZiAtLWdpdCBhL2FwcC90ZXN0LXBtZC9j bWRsaW5lLmMgYi9hcHAvdGVzdC1wbWQvY21kbGluZS5jDQo+aW5kZXggZjcxZDk2MzAxLi5kOGM3 M2E5YjEgMTAwNjQ0DQo+LS0tIGEvYXBwL3Rlc3QtcG1kL2NtZGxpbmUuYw0KPisrKyBiL2FwcC90 ZXN0LXBtZC9jbWRsaW5lLmMNCj5AQCAtMTU3Nyw2ICsxNTc3LDcgQEAgY21kX2NvbmZpZ19tYXhf cGt0X2xlbl9wYXJzZWQodm9pZCAqcGFyc2VkX3Jlc3VsdCwNCj4gCQkJCV9fYXR0cmlidXRlX18o KHVudXNlZCkpIHZvaWQgKmRhdGEpDQo+IHsNCj4gCXN0cnVjdCBjbWRfY29uZmlnX21heF9wa3Rf bGVuX3Jlc3VsdCAqcmVzID0gcGFyc2VkX3Jlc3VsdDsNCj4rCXVpbnQ2NF90IHJ4X29mZmxvYWRz ID0gcnhfbW9kZS5vZmZsb2FkczsNCj4gDQo+IAlpZiAoIWFsbF9wb3J0c19zdG9wcGVkKCkpIHsN Cj4gCQlwcmludGYoIlBsZWFzZSBzdG9wIGFsbCBwb3J0cyBmaXJzdFxuIik7DQo+QEAgLTE1OTQs MTQgKzE1OTUsMTYgQEAgY21kX2NvbmZpZ19tYXhfcGt0X2xlbl9wYXJzZWQodm9pZCAqcGFyc2Vk X3Jlc3VsdCwNCj4gDQo+IAkJcnhfbW9kZS5tYXhfcnhfcGt0X2xlbiA9IHJlcy0+dmFsdWU7DQo+ IAkJaWYgKHJlcy0+dmFsdWUgPiBFVEhFUl9NQVhfTEVOKQ0KPi0JCQlyeF9tb2RlLmp1bWJvX2Zy YW1lID0gMTsNCj4rCQkJcnhfb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfSlVNQk9fRlJBTUU7 DQo+IAkJZWxzZQ0KPi0JCQlyeF9tb2RlLmp1bWJvX2ZyYW1lID0gMDsNCj4rCQkJcnhfb2ZmbG9h ZHMgJj0gfkRFVl9SWF9PRkZMT0FEX0pVTUJPX0ZSQU1FOw0KPiAJfSBlbHNlIHsNCj4gCQlwcmlu dGYoIlVua25vd24gcGFyYW1ldGVyXG4iKTsNCj4gCQlyZXR1cm47DQo+IAl9DQo+IA0KPisJcnhf bW9kZS5vZmZsb2FkcyA9IHJ4X29mZmxvYWRzOw0KPisNCj4gCWluaXRfcG9ydF9jb25maWcoKTsN Cj4gDQo+IAljbWRfcmVjb25maWdfZGV2aWNlX3F1ZXVlKFJURV9QT1JUX0FMTCwgMSwgMSk7DQo+ QEAgLTE3MDMsNiArMTcwNiw3IEBAIGNtZF9jb25maWdfcnhfbW9kZV9mbGFnX3BhcnNlZCh2b2lk ICpwYXJzZWRfcmVzdWx0LA0KPiAJCQkJX19hdHRyaWJ1dGVfXygodW51c2VkKSkgdm9pZCAqZGF0 YSkNCj4gew0KPiAJc3RydWN0IGNtZF9jb25maWdfcnhfbW9kZV9mbGFnICpyZXMgPSBwYXJzZWRf cmVzdWx0Ow0KPisJdWludDY0X3Qgcnhfb2ZmbG9hZHMgPSByeF9tb2RlLm9mZmxvYWRzOw0KPiAN Cj4gCWlmICghYWxsX3BvcnRzX3N0b3BwZWQoKSkgew0KPiAJCXByaW50ZigiUGxlYXNlIHN0b3Ag YWxsIHBvcnRzIGZpcnN0XG4iKTsNCj5AQCAtMTcxMSw0OCArMTcxNSw0OCBAQCBjbWRfY29uZmln X3J4X21vZGVfZmxhZ19wYXJzZWQodm9pZA0KPipwYXJzZWRfcmVzdWx0LA0KPiANCj4gCWlmICgh c3RyY21wKHJlcy0+bmFtZSwgImNyYy1zdHJpcCIpKSB7DQo+IAkJaWYgKCFzdHJjbXAocmVzLT52 YWx1ZSwgIm9uIikpDQo+LQkJCXJ4X21vZGUuaHdfc3RyaXBfY3JjID0gMTsNCj4rCQkJcnhfb2Zm bG9hZHMgfD0gREVWX1JYX09GRkxPQURfQ1JDX1NUUklQOw0KPiAJCWVsc2UgaWYgKCFzdHJjbXAo cmVzLT52YWx1ZSwgIm9mZiIpKQ0KPi0JCQlyeF9tb2RlLmh3X3N0cmlwX2NyYyA9IDA7DQo+KwkJ CXJ4X29mZmxvYWRzICY9IH5ERVZfUlhfT0ZGTE9BRF9DUkNfU1RSSVA7DQo+IAkJZWxzZSB7DQo+ IAkJCXByaW50ZigiVW5rbm93biBwYXJhbWV0ZXJcbiIpOw0KPiAJCQlyZXR1cm47DQo+IAkJfQ0K PiAJfSBlbHNlIGlmICghc3RyY21wKHJlcy0+bmFtZSwgInNjYXR0ZXIiKSkgew0KPi0JCWlmICgh c3RyY21wKHJlcy0+dmFsdWUsICJvbiIpKQ0KPi0JCQlyeF9tb2RlLmVuYWJsZV9zY2F0dGVyID0g MTsNCj4tCQllbHNlIGlmICghc3RyY21wKHJlcy0+dmFsdWUsICJvZmYiKSkNCj4tCQkJcnhfbW9k ZS5lbmFibGVfc2NhdHRlciA9IDA7DQo+LQkJZWxzZSB7DQo+KwkJaWYgKCFzdHJjbXAocmVzLT52 YWx1ZSwgIm9uIikpIHsNCj4rCQkJcnhfb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfU0NBVFRF UjsNCj4rCQl9IGVsc2UgaWYgKCFzdHJjbXAocmVzLT52YWx1ZSwgIm9mZiIpKSB7DQo+KwkJCXJ4 X29mZmxvYWRzICY9IH5ERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSOw0KPisJCX0gZWxzZSB7DQo+IAkJ CXByaW50ZigiVW5rbm93biBwYXJhbWV0ZXJcbiIpOw0KPiAJCQlyZXR1cm47DQo+IAkJfQ0KPiAJ fSBlbHNlIGlmICghc3RyY21wKHJlcy0+bmFtZSwgInJ4LWNrc3VtIikpIHsNCj4gCQlpZiAoIXN0 cmNtcChyZXMtPnZhbHVlLCAib24iKSkNCj4tCQkJcnhfbW9kZS5od19pcF9jaGVja3N1bSA9IDE7 DQo+KwkJCXJ4X29mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNOw0KPiAJCWVsc2Ug aWYgKCFzdHJjbXAocmVzLT52YWx1ZSwgIm9mZiIpKQ0KPi0JCQlyeF9tb2RlLmh3X2lwX2NoZWNr c3VtID0gMDsNCj4rCQkJcnhfb2ZmbG9hZHMgJj0gfkRFVl9SWF9PRkZMT0FEX0NIRUNLU1VNOw0K PiAJCWVsc2Ugew0KPiAJCQlwcmludGYoIlVua25vd24gcGFyYW1ldGVyXG4iKTsNCj4gCQkJcmV0 dXJuOw0KPiAJCX0NCj4gCX0gZWxzZSBpZiAoIXN0cmNtcChyZXMtPm5hbWUsICJyeC10aW1lc3Rh bXAiKSkgew0KPiAJCWlmICghc3RyY21wKHJlcy0+dmFsdWUsICJvbiIpKQ0KPi0JCQlyeF9tb2Rl Lmh3X3RpbWVzdGFtcCA9IDE7DQo+KwkJCXJ4X29mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1RJ TUVTVEFNUDsNCj4gCQllbHNlIGlmICghc3RyY21wKHJlcy0+dmFsdWUsICJvZmYiKSkNCj4tCQkJ cnhfbW9kZS5od190aW1lc3RhbXAgPSAwOw0KPisJCQlyeF9vZmZsb2FkcyAmPSB+REVWX1JYX09G RkxPQURfVElNRVNUQU1QOw0KPiAJCWVsc2Ugew0KPiAJCQlwcmludGYoIlVua25vd24gcGFyYW1l dGVyXG4iKTsNCj4gCQkJcmV0dXJuOw0KPiAJCX0NCj4gCX0gZWxzZSBpZiAoIXN0cmNtcChyZXMt Pm5hbWUsICJody12bGFuIikpIHsNCj4gCQlpZiAoIXN0cmNtcChyZXMtPnZhbHVlLCAib24iKSkg ew0KPi0JCQlyeF9tb2RlLmh3X3ZsYW5fZmlsdGVyID0gMTsNCj4tCQkJcnhfbW9kZS5od192bGFu X3N0cmlwICA9IDE7DQo+KwkJCXJ4X29mZmxvYWRzIHw9IChERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJ TFRFUiB8DQo+KwkJCQkJREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCk7DQo+IAkJfQ0KPiAJCWVs c2UgaWYgKCFzdHJjbXAocmVzLT52YWx1ZSwgIm9mZiIpKSB7DQo+LQkJCXJ4X21vZGUuaHdfdmxh bl9maWx0ZXIgPSAwOw0KPi0JCQlyeF9tb2RlLmh3X3ZsYW5fc3RyaXAgID0gMDsNCj4rCQkJcnhf b2ZmbG9hZHMgJj0gfihERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8DQo+KwkJCQkJREVWX1JY X09GRkxPQURfVkxBTl9TVFJJUCk7DQo+IAkJfQ0KPiAJCWVsc2Ugew0KPiAJCQlwcmludGYoIlVu a25vd24gcGFyYW1ldGVyXG4iKTsNCj5AQCAtMTc2MCwyNyArMTc2NCwyNyBAQCBjbWRfY29uZmln X3J4X21vZGVfZmxhZ19wYXJzZWQodm9pZA0KPipwYXJzZWRfcmVzdWx0LA0KPiAJCX0NCj4gCX0g ZWxzZSBpZiAoIXN0cmNtcChyZXMtPm5hbWUsICJody12bGFuLWZpbHRlciIpKSB7DQo+IAkJaWYg KCFzdHJjbXAocmVzLT52YWx1ZSwgIm9uIikpDQo+LQkJCXJ4X21vZGUuaHdfdmxhbl9maWx0ZXIg PSAxOw0KPisJCQlyeF9vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUjsNCj4g CQllbHNlIGlmICghc3RyY21wKHJlcy0+dmFsdWUsICJvZmYiKSkNCj4tCQkJcnhfbW9kZS5od192 bGFuX2ZpbHRlciA9IDA7DQo+KwkJCXJ4X29mZmxvYWRzICY9IH5ERVZfUlhfT0ZGTE9BRF9WTEFO X0ZJTFRFUjsNCj4gCQllbHNlIHsNCj4gCQkJcHJpbnRmKCJVbmtub3duIHBhcmFtZXRlclxuIik7 DQo+IAkJCXJldHVybjsNCj4gCQl9DQo+IAl9IGVsc2UgaWYgKCFzdHJjbXAocmVzLT5uYW1lLCAi aHctdmxhbi1zdHJpcCIpKSB7DQo+IAkJaWYgKCFzdHJjbXAocmVzLT52YWx1ZSwgIm9uIikpDQo+ LQkJCXJ4X21vZGUuaHdfdmxhbl9zdHJpcCAgPSAxOw0KPisJCQlyeF9vZmZsb2FkcyB8PSBERVZf UlhfT0ZGTE9BRF9WTEFOX1NUUklQOw0KPiAJCWVsc2UgaWYgKCFzdHJjbXAocmVzLT52YWx1ZSwg Im9mZiIpKQ0KPi0JCQlyeF9tb2RlLmh3X3ZsYW5fc3RyaXAgID0gMDsNCj4rCQkJcnhfb2ZmbG9h ZHMgJj0gfkRFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVA7DQo+IAkJZWxzZSB7DQo+IAkJCXByaW50 ZigiVW5rbm93biBwYXJhbWV0ZXJcbiIpOw0KPiAJCQlyZXR1cm47DQo+IAkJfQ0KPiAJfSBlbHNl IGlmICghc3RyY21wKHJlcy0+bmFtZSwgImh3LXZsYW4tZXh0ZW5kIikpIHsNCj4gCQlpZiAoIXN0 cmNtcChyZXMtPnZhbHVlLCAib24iKSkNCj4tCQkJcnhfbW9kZS5od192bGFuX2V4dGVuZCA9IDE7 DQo+KwkJCXJ4X29mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EOw0KPiAJCWVs c2UgaWYgKCFzdHJjbXAocmVzLT52YWx1ZSwgIm9mZiIpKQ0KPi0JCQlyeF9tb2RlLmh3X3ZsYW5f ZXh0ZW5kID0gMDsNCj4rCQkJcnhfb2ZmbG9hZHMgJj0gfkRFVl9SWF9PRkZMT0FEX1ZMQU5fRVhU RU5EOw0KPiAJCWVsc2Ugew0KPiAJCQlwcmludGYoIlVua25vd24gcGFyYW1ldGVyXG4iKTsNCj4g CQkJcmV0dXJuOw0KPkBAIC0xNzk4LDYgKzE4MDIsNyBAQCBjbWRfY29uZmlnX3J4X21vZGVfZmxh Z19wYXJzZWQodm9pZCAqcGFyc2VkX3Jlc3VsdCwNCj4gCQlwcmludGYoIlVua25vd24gcGFyYW1l dGVyXG4iKTsNCj4gCQlyZXR1cm47DQo+IAl9DQo+KwlyeF9tb2RlLm9mZmxvYWRzID0gcnhfb2Zm bG9hZHM7DQo+IA0KPiAJaW5pdF9wb3J0X2NvbmZpZygpOw0KPiANCj5kaWZmIC0tZ2l0IGEvYXBw L3Rlc3QtcG1kL2NvbmZpZy5jIGIvYXBwL3Rlc3QtcG1kL2NvbmZpZy5jDQo+aW5kZXggMzg3ZmVm YmFhLi4zYmM5OWJlNzYgMTAwNjQ0DQo+LS0tIGEvYXBwL3Rlc3QtcG1kL2NvbmZpZy5jDQo+Kysr IGIvYXBwL3Rlc3QtcG1kL2NvbmZpZy5jDQo+QEAgLTU0MCwxNCArNTQwLDEyIEBAIHBvcnRfaW5m b3NfZGlzcGxheShwb3J0aWRfdCBwb3J0X2lkKQ0KPiB2b2lkDQo+IHBvcnRfb2ZmbG9hZF9jYXBf ZGlzcGxheShwb3J0aWRfdCBwb3J0X2lkKQ0KPiB7DQo+LQlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRl djsNCj4gCXN0cnVjdCBydGVfZXRoX2Rldl9pbmZvIGRldl9pbmZvOw0KPiAJc3RhdGljIGNvbnN0 IGNoYXIgKmluZm9fYm9yZGVyID0gIioqKioqKioqKioqKiI7DQo+IA0KPiAJaWYgKHBvcnRfaWRf aXNfaW52YWxpZChwb3J0X2lkLCBFTkFCTEVEX1dBUk4pKQ0KPiAJCXJldHVybjsNCj4gDQo+LQlk ZXYgPSAmcnRlX2V0aF9kZXZpY2VzW3BvcnRfaWRdOw0KPiAJcnRlX2V0aF9kZXZfaW5mb19nZXQo cG9ydF9pZCwgJmRldl9pbmZvKTsNCj4gDQo+IAlwcmludGYoIlxuJXMgUG9ydCAlZCBzdXBwb3J0 ZWQgb2ZmbG9hZCBmZWF0dXJlczogJXNcbiIsDQo+QEAgLTU1NSw3ICs1NTMsOCBAQCBwb3J0X29m ZmxvYWRfY2FwX2Rpc3BsYXkocG9ydGlkX3QgcG9ydF9pZCkNCj4gDQo+IAlpZiAoZGV2X2luZm8u cnhfb2ZmbG9hZF9jYXBhICYgREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCkgew0KPiAJCXByaW50 ZigiVkxBTiBzdHJpcHBlZDogICAgICAgICAgICAgICAgICIpOw0KPi0JCWlmIChkZXYtPmRhdGEt PmRldl9jb25mLnJ4bW9kZS5od192bGFuX3N0cmlwKQ0KPisJCWlmIChwb3J0c1twb3J0X2lkXS5k ZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJg0KPisJCSAgICBERVZfUlhfT0ZGTE9BRF9WTEFOX1NU UklQKQ0KPiAJCQlwcmludGYoIm9uXG4iKTsNCj4gCQllbHNlDQo+IAkJCXByaW50Zigib2ZmXG4i KTsNCj5AQCAtNTYzLDcgKzU2Miw4IEBAIHBvcnRfb2ZmbG9hZF9jYXBfZGlzcGxheShwb3J0aWRf dCBwb3J0X2lkKQ0KPiANCj4gCWlmIChkZXZfaW5mby5yeF9vZmZsb2FkX2NhcGEgJiBERVZfUlhf T0ZGTE9BRF9RSU5RX1NUUklQKSB7DQo+IAkJcHJpbnRmKCJEb3VibGUgVkxBTnMgc3RyaXBwZWQ6 ICAgICAgICAgIik7DQo+LQkJaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLmh3X3ZsYW5f ZXh0ZW5kKQ0KPisJCWlmIChwb3J0c1twb3J0X2lkXS5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMg Jg0KPisJCSAgICBERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCkNCj4gCQkJcHJpbnRmKCJvblxu Iik7DQo+IAkJZWxzZQ0KPiAJCQlwcmludGYoIm9mZlxuIik7DQo+QEAgLTU3MSw3ICs1NzEsOCBA QCBwb3J0X29mZmxvYWRfY2FwX2Rpc3BsYXkocG9ydGlkX3QgcG9ydF9pZCkNCj4gDQo+IAlpZiAo ZGV2X2luZm8ucnhfb2ZmbG9hZF9jYXBhICYgREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSkgew0K PiAJCXByaW50ZigiUlggSVB2NCBjaGVja3N1bTogICAgICAgICAgICAgICIpOw0KPi0JCWlmIChk ZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5od19pcF9jaGVja3N1bSkNCj4rCQlpZiAocG9ydHNb cG9ydF9pZF0uZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzICYNCj4rCQkgICAgREVWX1JYX09GRkxP QURfSVBWNF9DS1NVTSkNCj4gCQkJcHJpbnRmKCJvblxuIik7DQo+IAkJZWxzZQ0KPiAJCQlwcmlu dGYoIm9mZlxuIik7DQo+QEAgLTU3OSw3ICs1ODAsOCBAQCBwb3J0X29mZmxvYWRfY2FwX2Rpc3Bs YXkocG9ydGlkX3QgcG9ydF9pZCkNCj4gDQo+IAlpZiAoZGV2X2luZm8ucnhfb2ZmbG9hZF9jYXBh ICYgREVWX1JYX09GRkxPQURfVURQX0NLU1VNKSB7DQo+IAkJcHJpbnRmKCJSWCBVRFAgY2hlY2tz dW06ICAgICAgICAgICAgICAgIik7DQo+LQkJaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2Rl Lmh3X2lwX2NoZWNrc3VtKQ0KPisJCWlmIChwb3J0c1twb3J0X2lkXS5kZXZfY29uZi5yeG1vZGUu b2ZmbG9hZHMgJg0KPisJCSAgICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0pDQo+IAkJCXByaW50 Zigib25cbiIpOw0KPiAJCWVsc2UNCj4gCQkJcHJpbnRmKCJvZmZcbiIpOw0KPkBAIC01ODcsMTgg KzU4OSwyNiBAQCBwb3J0X29mZmxvYWRfY2FwX2Rpc3BsYXkocG9ydGlkX3QgcG9ydF9pZCkNCj4g DQo+IAlpZiAoZGV2X2luZm8ucnhfb2ZmbG9hZF9jYXBhICYgREVWX1JYX09GRkxPQURfVENQX0NL U1VNKSB7DQo+IAkJcHJpbnRmKCJSWCBUQ1AgY2hlY2tzdW06ICAgICAgICAgICAgICAgIik7DQo+ LQkJaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLmh3X2lwX2NoZWNrc3VtKQ0KPisJCWlm IChwb3J0c1twb3J0X2lkXS5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJg0KPisJCSAgICBERVZf UlhfT0ZGTE9BRF9UQ1BfQ0tTVU0pDQo+IAkJCXByaW50Zigib25cbiIpOw0KPiAJCWVsc2UNCj4g CQkJcHJpbnRmKCJvZmZcbiIpOw0KPiAJfQ0KPiANCj4tCWlmIChkZXZfaW5mby5yeF9vZmZsb2Fk X2NhcGEgJiBERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNKQ0KPi0JCXByaW50ZigiUlgg T3V0ZXIgSVB2NCBjaGVja3N1bTogICAgICAgIG9uIik7DQo+KwlpZiAoZGV2X2luZm8ucnhfb2Zm bG9hZF9jYXBhICYgREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSkgew0KPisJCXByaW50 ZigiUlggT3V0ZXIgSVB2NCBjaGVja3N1bTogICAgICAgICAgICAgICAiKTsNCj4rCQlpZiAocG9y dHNbcG9ydF9pZF0uZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzICYNCj4rCQkgICAgREVWX1JYX09G RkxPQURfT1VURVJfSVBWNF9DS1NVTSkNCj4rCQkJcHJpbnRmKCJvblxuIik7DQo+KwkJZWxzZQ0K PisJCQlwcmludGYoIm9mZlxuIik7DQo+Kwl9DQo+IA0KPiAJaWYgKGRldl9pbmZvLnJ4X29mZmxv YWRfY2FwYSAmIERFVl9SWF9PRkZMT0FEX1RDUF9MUk8pIHsNCj4gCQlwcmludGYoIkxhcmdlIHJl Y2VpdmUgb2ZmbG9hZDogICAgICAgICAiKTsNCj4tCQlpZiAoZGV2LT5kYXRhLT5kZXZfY29uZi5y eG1vZGUuZW5hYmxlX2xybykNCj4rCQlpZiAocG9ydHNbcG9ydF9pZF0uZGV2X2NvbmYucnhtb2Rl Lm9mZmxvYWRzICYNCj4rCQkgICAgREVWX1JYX09GRkxPQURfVENQX0xSTykNCj4gCQkJcHJpbnRm KCJvblxuIik7DQo+IAkJZWxzZQ0KPiAJCQlwcmludGYoIm9mZlxuIik7DQo+QEAgLTYxNSw3ICs2 MjUsOCBAQCBwb3J0X29mZmxvYWRfY2FwX2Rpc3BsYXkocG9ydGlkX3QgcG9ydF9pZCkNCj4gDQo+ IAlpZiAoZGV2X2luZm8ucnhfb2ZmbG9hZF9jYXBhICYgREVWX1JYX09GRkxPQURfVElNRVNUQU1Q KSB7DQo+IAkJcHJpbnRmKCJIVyB0aW1lc3RhbXA6ICAgICAgICAgICAgICAgICAgIik7DQo+LQkJ aWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLmh3X3RpbWVzdGFtcCkNCj4rCQlpZiAocG9y dHNbcG9ydF9pZF0uZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzICYNCj4rCQkgICAgREVWX1JYX09G RkxPQURfVElNRVNUQU1QKQ0KPiAJCQlwcmludGYoIm9uXG4iKTsNCj4gCQllbHNlDQo+IAkJCXBy aW50Zigib2ZmXG4iKTsNCj5AQCAtMTY3Niw3ICsxNjg3LDggQEAgcnh0eF9jb25maWdfZGlzcGxh eSh2b2lkKQ0KPiANCj4gCQlwcmludGYoIiAgcG9ydCAlZDpcbiIsICh1bnNpZ25lZCBpbnQpcGlk KTsNCj4gCQlwcmludGYoIiAgQ1JDIHN0cmlwcGluZyAlc1xuIiwNCj4tCQkJCXBvcnRzW3BpZF0u ZGV2X2NvbmYucnhtb2RlLmh3X3N0cmlwX2NyYyA/DQo+KwkJCQkocG9ydHNbcGlkXS5kZXZfY29u Zi5yeG1vZGUub2ZmbG9hZHMgJg0KPisJCQkJIERFVl9SWF9PRkZMT0FEX0NSQ19TVFJJUCkgPw0K PiAJCQkJImVuYWJsZWQiIDogImRpc2FibGVkIik7DQo+IAkJcHJpbnRmKCIgIFJYIHF1ZXVlcz0l ZCAtIFJYIGRlc2M9JWQgLSBSWCBmcmVlIHRocmVzaG9sZD0lZFxuIiwNCj4gCQkJCW5iX3J4cSwg bmJfcnhkLCByeF9jb25mLT5yeF9mcmVlX3RocmVzaCk7DQo+ZGlmZiAtLWdpdCBhL2FwcC90ZXN0 LXBtZC9wYXJhbWV0ZXJzLmMgYi9hcHAvdGVzdC1wbWQvcGFyYW1ldGVycy5jDQo+aW5kZXggODRl N2E2M2VmLi4yNjM2NTFjYmEgMTAwNjQ0DQo+LS0tIGEvYXBwL3Rlc3QtcG1kL3BhcmFtZXRlcnMu Yw0KPisrKyBiL2FwcC90ZXN0LXBtZC9wYXJhbWV0ZXJzLmMNCj5AQCAtNTY2LDYgKzU2Niw4IEBA IGxhdW5jaF9hcmdzX3BhcnNlKGludCBhcmdjLCBjaGFyKiogYXJndikNCj4gCWNoYXIgKiphcmd2 b3B0Ow0KPiAJaW50IG9wdF9pZHg7DQo+IAllbnVtIHsgVFgsIFJYIH07DQo+KwkvKiBEZWZhdWx0 IFJ4IG9mZmxvYWRzIGZvciBhbGwgcG9ydHMuICovDQo+Kwl1aW50NjRfdCByeF9vZmZsb2FkcyA9 IHJ4X21vZGUub2ZmbG9hZHM7DQo+IA0KPiAJc3RhdGljIHN0cnVjdCBvcHRpb24gbGdvcHRzW10g PSB7DQo+IAkJeyAiaGVscCIsCQkJMCwgMCwgMCB9LA0KPkBAIC04MDQsNyArODA2LDggQEAgbGF1 bmNoX2FyZ3NfcGFyc2UoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQ0KPiAJCQkJaWYgKG4gPj0gRVRI RVJfTUlOX0xFTikgew0KPiAJCQkJCXJ4X21vZGUubWF4X3J4X3BrdF9sZW4gPSAodWludDMyX3Qp IG47DQo+IAkJCQkJaWYgKG4gPiBFVEhFUl9NQVhfTEVOKQ0KPi0JCQkJCSAgICByeF9tb2RlLmp1 bWJvX2ZyYW1lID0gMTsNCj4rCQkJCQkJcnhfb2ZmbG9hZHMgfD0NCj4rCQkJCQkJCURFVl9SWF9P RkZMT0FEX0pVTUJPX0ZSQU1FOw0KPiAJCQkJfSBlbHNlDQo+IAkJCQkJcnRlX2V4aXQoRVhJVF9G QUlMVVJFLA0KPiAJCQkJCQkgIkludmFsaWQgbWF4LXBrdC1sZW49JWQgLSBzaG91bGQgYmUgPiAl ZFxuIiwNCj5AQCAtODk3LDM0ICs5MDAsMzAgQEAgbGF1bmNoX2FyZ3NfcGFyc2UoaW50IGFyZ2Ms IGNoYXIqKiBhcmd2KQ0KPiAJCQl9DQo+ICNlbmRpZg0KPiAJCQlpZiAoIXN0cmNtcChsZ29wdHNb b3B0X2lkeF0ubmFtZSwgImRpc2FibGUtY3JjLXN0cmlwIikpDQo+LQkJCQlyeF9tb2RlLmh3X3N0 cmlwX2NyYyA9IDA7DQo+KwkJCQlyeF9vZmZsb2FkcyAmPSB+REVWX1JYX09GRkxPQURfQ1JDX1NU UklQOw0KPiAJCQlpZiAoIXN0cmNtcChsZ29wdHNbb3B0X2lkeF0ubmFtZSwgImVuYWJsZS1scm8i KSkNCj4tCQkJCXJ4X21vZGUuZW5hYmxlX2xybyA9IDE7DQo+KwkJCQlyeF9vZmZsb2FkcyB8PSBE RVZfUlhfT0ZGTE9BRF9UQ1BfTFJPOw0KPiAJCQlpZiAoIXN0cmNtcChsZ29wdHNbb3B0X2lkeF0u bmFtZSwgImVuYWJsZS1zY2F0dGVyIikpDQo+LQkJCQlyeF9tb2RlLmVuYWJsZV9zY2F0dGVyID0g MTsNCj4rCQkJCXJ4X29mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1NDQVRURVI7DQo+IAkJCWlm ICghc3RyY21wKGxnb3B0c1tvcHRfaWR4XS5uYW1lLCAiZW5hYmxlLXJ4LWNrc3VtIikpDQo+LQkJ CQlyeF9tb2RlLmh3X2lwX2NoZWNrc3VtID0gMTsNCj4rCQkJCXJ4X29mZmxvYWRzIHw9IERFVl9S WF9PRkZMT0FEX0NIRUNLU1VNOw0KPiAJCQlpZiAoIXN0cmNtcChsZ29wdHNbb3B0X2lkeF0ubmFt ZSwNCj4gCQkJCQkiZW5hYmxlLXJ4LXRpbWVzdGFtcCIpKQ0KPi0JCQkJcnhfbW9kZS5od190aW1l c3RhbXAgPSAxOw0KPi0NCj4tCQkJaWYgKCFzdHJjbXAobGdvcHRzW29wdF9pZHhdLm5hbWUsICJk aXNhYmxlLWh3LXZsYW4iKSkgew0KPi0JCQkJcnhfbW9kZS5od192bGFuX2ZpbHRlciA9IDA7DQo+ LQkJCQlyeF9tb2RlLmh3X3ZsYW5fc3RyaXAgID0gMDsNCj4tCQkJCXJ4X21vZGUuaHdfdmxhbl9l eHRlbmQgPSAwOw0KPi0JCQl9DQo+KwkJCQlyeF9vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9U SU1FU1RBTVA7DQo+KwkJCWlmICghc3RyY21wKGxnb3B0c1tvcHRfaWR4XS5uYW1lLCAiZGlzYWJs ZS1ody12bGFuIikpDQo+KwkJCQlyeF9vZmZsb2FkcyAmPSB+REVWX1JYX09GRkxPQURfVkxBTjsN Cj4gDQo+IAkJCWlmICghc3RyY21wKGxnb3B0c1tvcHRfaWR4XS5uYW1lLA0KPiAJCQkJCSJkaXNh YmxlLWh3LXZsYW4tZmlsdGVyIikpDQo+LQkJCQlyeF9tb2RlLmh3X3ZsYW5fZmlsdGVyID0gMDsN Cj4rCQkJCXJ4X29mZmxvYWRzICY9IH5ERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUjsNCj4gDQo+ IAkJCWlmICghc3RyY21wKGxnb3B0c1tvcHRfaWR4XS5uYW1lLA0KPiAJCQkJCSJkaXNhYmxlLWh3 LXZsYW4tc3RyaXAiKSkNCj4tCQkJCXJ4X21vZGUuaHdfdmxhbl9zdHJpcCAgPSAwOw0KPisJCQkJ cnhfb2ZmbG9hZHMgJj0gfkRFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVA7DQo+IA0KPiAJCQlpZiAo IXN0cmNtcChsZ29wdHNbb3B0X2lkeF0ubmFtZSwNCj4gCQkJCQkiZGlzYWJsZS1ody12bGFuLWV4 dGVuZCIpKQ0KPi0JCQkJcnhfbW9kZS5od192bGFuX2V4dGVuZCA9IDA7DQo+KwkJCQlyeF9vZmZs b2FkcyAmPSB+REVWX1JYX09GRkxPQURfVkxBTl9FWFRFTkQ7DQo+IA0KPiAJCQlpZiAoIXN0cmNt cChsZ29wdHNbb3B0X2lkeF0ubmFtZSwgImVuYWJsZS1kcm9wLWVuIikpDQo+IAkJCQlyeF9kcm9w X2VuID0gMTsNCj5AQCAtMTE0MCw0ICsxMTM5LDcgQEAgbGF1bmNoX2FyZ3NfcGFyc2UoaW50IGFy Z2MsIGNoYXIqKiBhcmd2KQ0KPiAJCQlicmVhazsNCj4gCQl9DQo+IAl9DQo+Kw0KPisJLyogU2V0 IG9mZmxvYWQgY29uZmlndXJhdGlvbiBmcm9tIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJzLiAqLw0K PisJcnhfbW9kZS5vZmZsb2FkcyA9IHJ4X29mZmxvYWRzOw0KPiB9DQo+ZGlmZiAtLWdpdCBhL2Fw cC90ZXN0LXBtZC90ZXN0cG1kLmMgYi9hcHAvdGVzdC1wbWQvdGVzdHBtZC5jDQo+aW5kZXggYzNh YjQ0ODQ5Li42Nzg1YjA5NWYgMTAwNjQ0DQo+LS0tIGEvYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuYw0K PisrKyBiL2FwcC90ZXN0LXBtZC90ZXN0cG1kLmMNCj5AQCAtMzM4LDE1ICszMzgsMTAgQEAgbGNv cmVpZF90IGxhdGVuY3lzdGF0c19sY29yZV9pZCA9IC0xOw0KPiAgKi8NCj4gc3RydWN0IHJ0ZV9l dGhfcnhtb2RlIHJ4X21vZGUgPSB7DQo+IAkubWF4X3J4X3BrdF9sZW4gPSBFVEhFUl9NQVhfTEVO LCAvKio8IERlZmF1bHQgbWF4aW11bSBmcmFtZSBsZW5ndGguICovDQo+LQkuc3BsaXRfaGRyX3Np emUgPSAwLA0KPi0JLmhlYWRlcl9zcGxpdCAgID0gMCwgLyoqPCBIZWFkZXIgU3BsaXQgZGlzYWJs ZWQuICovDQo+LQkuaHdfaXBfY2hlY2tzdW0gPSAwLCAvKio8IElQIGNoZWNrc3VtIG9mZmxvYWQg ZGlzYWJsZWQuICovDQo+LQkuaHdfdmxhbl9maWx0ZXIgPSAxLCAvKio8IFZMQU4gZmlsdGVyaW5n IGVuYWJsZWQuICovDQo+LQkuaHdfdmxhbl9zdHJpcCAgPSAxLCAvKio8IFZMQU4gc3RyaXAgZW5h YmxlZC4gKi8NCj4tCS5od192bGFuX2V4dGVuZCA9IDAsIC8qKjwgRXh0ZW5kZWQgVkxBTiBkaXNh YmxlZC4gKi8NCj4tCS5qdW1ib19mcmFtZSAgICA9IDAsIC8qKjwgSnVtYm8gRnJhbWUgU3VwcG9y dCBkaXNhYmxlZC4gKi8NCj4tCS5od19zdHJpcF9jcmMgICA9IDEsIC8qKjwgQ1JDIHN0cmlwcGlu ZyBieSBoYXJkd2FyZSBlbmFibGVkLiAqLw0KPi0JLmh3X3RpbWVzdGFtcCAgID0gMCwgLyoqPCBI VyB0aW1lc3RhbXAgZW5hYmxlZC4gKi8NCj4rCS5vZmZsb2FkcyA9IChERVZfUlhfT0ZGTE9BRF9W TEFOX0ZJTFRFUiB8DQo+KwkJICAgICBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwNCj4rCQkg ICAgIERFVl9SWF9PRkZMT0FEX0NSQ19TVFJJUCksDQo+KwkuaWdub3JlX29mZmxvYWRfYml0Zmll bGQgPSAxLA0KPiB9Ow0KPiANCj4gc3RydWN0IHJ0ZV9mZGlyX2NvbmYgZmRpcl9jb25mID0gew0K PkBAIC0xNTIxLDYgKzE1MTYsOCBAQCBzdGFydF9wb3J0KHBvcnRpZF90IHBpZCkNCj4gCQkJCXBv cnQtPm5lZWRfcmVjb25maWdfcXVldWVzID0gMTsNCj4gCQkJCXJldHVybiAtMTsNCj4gCQkJfQ0K PisJCQkvKiBBcHBseSBSeCBvZmZsb2FkcyBjb25maWd1cmF0aW9uICovDQo+KwkJCXBvcnQtPnJ4 X2NvbmYub2ZmbG9hZHMgPSBwb3J0LT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHM7DQo+IAkJCS8q IHNldHVwIHJ4IHF1ZXVlcyAqLw0KPiAJCQlmb3IgKHFpID0gMDsgcWkgPCBuYl9yeHE7IHFpKysp IHsNCj4gCQkJCWlmICgobnVtYV9zdXBwb3J0KSAmJg0KPkBAIC0yMjUyLDcgKzIyNDksNyBAQCBp bml0X3BvcnRfZGNiX2NvbmZpZyhwb3J0aWRfdCBwaWQsDQo+IAlyZXR2YWwgPSBnZXRfZXRoX2Rj Yl9jb25mKCZwb3J0X2NvbmYsIGRjYl9tb2RlLCBudW1fdGNzLCBwZmNfZW4pOw0KPiAJaWYgKHJl dHZhbCA8IDApDQo+IAkJcmV0dXJuIHJldHZhbDsNCj4tCXBvcnRfY29uZi5yeG1vZGUuaHdfdmxh bl9maWx0ZXIgPSAxOw0KPisJcG9ydF9jb25mLnJ4bW9kZS5vZmZsb2FkcyB8PSBERVZfUlhfT0ZG TE9BRF9WTEFOX0ZJTFRFUjsNCj4gDQo+IAkvKioNCj4gCSAqIFdyaXRlIHRoZSBjb25maWd1cmF0 aW9uIGludG8gdGhlIGRldmljZS4NCj5AQCAtMjMwMSw3ICsyMjk4LDcgQEAgaW5pdF9wb3J0X2Rj Yl9jb25maWcocG9ydGlkX3QgcGlkLA0KPiANCj4gCXJ4dHhfcG9ydF9jb25maWcocnRlX3BvcnQp Ow0KPiAJLyogVkxBTiBmaWx0ZXIgKi8NCj4tCXJ0ZV9wb3J0LT5kZXZfY29uZi5yeG1vZGUuaHdf dmxhbl9maWx0ZXIgPSAxOw0KPisJcnRlX3BvcnQtPmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkcyB8 PSBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUjsNCj4gCWZvciAoaSA9IDA7IGkgPCBSVEVfRElN KHZsYW5fdGFncyk7IGkrKykNCj4gCQlyeF92ZnRfc2V0KHBpZCwgdmxhbl90YWdzW2ldLCAxKTsN Cj4gDQo+LS0gDQo+Mi4xMi4wDQo+DQoNCkhpIFNoYWhhZiwNClRoaXMgdGVzdHBtZCBjaGFuZ2Ug aXMgY2F1c2luZyBzb21lIGlzc3VlcyBmb3IgcWVkZSBQTUQuDQpJbiB0aGlzIHBhdGNoLCBydGVf ZXRoX2Rldl9jb25maWd1cmUoKSBhbmQgUlgvVFggcXVldWUgc2V0dXAgZnVuY3Rpb25zIGFyZQ0K Y2FsbGVkIGZvciB0aGUgc2Vjb25kIHRpbWUgYWZ0ZXIgYXBwbHlpbmcgVFggb2ZmbG9hZHMgYnV0 IHdpdGhvdXQgY2FsbGluZw0KcnRlX2V0aF9kZXZfY2xvc2UoKSBiZWZvcmUuDQpBbHNvIHRoZXJl IGlzIG5vIHdheSBpbiB0aGUgZHJpdmVyIHRvIGRldGVjdCB0aGF0IHRoaXMgaXMgYSBwb3J0DQpy ZWNvbmZpZ3VyYXRpb24gY29uZGl0aW9uIGluIHdoaWNoIGNhc2UgaXQgbmVlZHMgdG8gZG8gY2Vy dGFpbiByZXNvdXJjZXMNCmRlYWxsb2NhdGlvbi9jbGVhbnVwIGJhc2VkIG9uIHByaW9yIGNvbmZp Z3VyYXRpb24uDQpJZGVhbGx5LCB3ZSBkb27igJl0IHdhbnQgdG8gbWFpbnRhaW4gcG9ydCBzdGF0 ZXMgaW4gZHJpdmVyIGludGVybmFsbHkuIFNvIGlzDQp0aGVyZSBhbnkgc3VnZ2VzdGlvbnMgaGVy ZT8NCg0KVGhhbmtzLA0KSGFyaXNoDQoNCg0KDQoNCj4NCg0K