This message generated a parse failure. Raw output follows here. Please use 'back' to navigate. From devnull@lkml.org Tue Apr 23 14:12:40 2024 Envelope-to: j@jasper.es Delivery-date: Fri, 26 Jul 2013 10:14:38 +0200 Received: from localhost ([127.0.0.1] helo=squeeze.vs19.net) by squeeze.vs19.net with esmtp (Exim 4.80) (envelope-from ) id 1V2dAc-0004a4-3X for j@jasper.es; Fri, 26 Jul 2013 10:14:38 +0200 Original-Recipient: rfc822;jasper@telfort.nl Received: from pop3.telfort.nl [213.75.3.52] by squeeze.vs19.net with POP3 (fetchmail-6.3.18) for (single-drop); Fri, 26 Jul 2013 10:14:38 +0200 (CEST) Received: from cpxmta-msg08.kpnxchange.com (10.94.114.29) by cpxmbs-msg01.support.local (8.6.060.20) id 51B06D9500BF8B96 for jasper@telfort.nl; Fri, 26 Jul 2013 10:10:11 +0200 Received: from cpsmtpb-ews03.kpnxchange.com (213.75.39.6) by cpxmta-msg08.kpnxchange.com (8.6.060.14) id 51AE91EC058BE2FD for jasper@telfort.nl; Fri, 26 Jul 2013 10:10:11 +0200 Received: from cpsps-ews15.kpnxchange.com ([10.94.84.182]) by cpsmtpb-ews03.kpnxchange.com with Microsoft SMTPSVC(7.5.7601.17514); Fri, 26 Jul 2013 10:10:11 +0200 Received: from vger.kernel.org ([209.132.180.67]) by cpsps-ews15.kpnxchange.com with Microsoft SMTPSVC(7.5.7601.17514); Fri, 26 Jul 2013 10:10:10 +0200 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757467Ab3GZIJj (ORCPT ); Fri, 26 Jul 2013 04:09:39 -0400 Received: from mga03.intel.com ([143.182.124.21]:33622 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752919Ab3GZIJU (ORCPT ); Fri, 26 Jul 2013 04:09:20 -0400 Received: from azsmga001.ch.intel.com ([10.2.17.19]) by azsmga101.ch.intel.com with ESMTP; 26 Jul 2013 01:09:18 -0700 X-ExtLoop1: 1 X-Ironport-AV: E=Sophos;i="4.89,749,1367996400"; d="scan'208";a="337215477" Received: from fmsmsx104.amr.corp.intel.com ([10.19.9.35]) by azsmga001.ch.intel.com with ESMTP; 26 Jul 2013 01:09:17 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.110.15) by FMSMSX104.amr.corp.intel.com (10.19.9.35) with Microsoft SMTP Server (TLS) id 14.3.123.3; Fri, 26 Jul 2013 01:09:16 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.99]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.155]) with mapi id 14.03.0123.003; Fri, 26 Jul 2013 16:09:14 +0800 From: "Zheng, Lv" To: "Zheng, Lv" , "Rafael J. Wysocki" Cc: "Wysocki, Rafael J" , "Brown, Len" , Corey Minyard , "Zhao, Yakui" , "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" References: <1597566.Nfc7r37F3q@vostro.rjw.lan> <1AE640813FDE7649BE1B193DEA596E8802435AB5@SHSMSX101.ccr.c In-Reply-To: <1AE640813FDE7649BE1B193DEA596E8802435AB5@SHSMSX101.ccr.corp.intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: X-Originating-IP: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Mime-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-Id: X-Mailing-List: linux-kernel@vger.kernel.org X-OriginalArrivalTime: 26 Jul 2013 08:10:10.0514 (UTC) FILETIME=[8C4CCB20:01CE89D7] X-RcptDomain: telfort.nl PiBGcm9tOiBsaW51eC1hY3BpLW93bmVyQHZnZXIua2VybmVsLm9yZw0KPiBbbWFpbHRvOmxpbnV4 LWFjcGktb3duZXJAdmdlci5rZXJuZWwub3JnXSBPbiBCZWhhbGYgT2YgWmhlbmcsIEx2DQo+IFNl bnQ6IEZyaWRheSwgSnVseSAyNiwgMjAxMyA4OjQ4IEFNDQo+IA0KPiANCj4gDQo+ID4gRnJvbTog UmFmYWVsIEouIFd5c29ja2kgW21haWx0bzpyandAc2lzay5wbF0NCj4gPiBTZW50OiBGcmlkYXks IEp1bHkgMjYsIDIwMTMgNDoyNyBBTQ0KPiA+DQo+ID4gT24gVHVlc2RheSwgSnVseSAyMywgMjAx MyAwNDowOTo0MyBQTSBMdiBaaGVuZyB3cm90ZToNCj4gPiA+IFRoaXMgcGF0Y2ggYWRkcyByZWZl cmVuY2UgY291dGluZyBmb3IgQUNQSSBvcGVyYXRpb24gcmVnaW9uIGhhbmRsZXJzDQo+ID4gPiB0 byBmaXggcmFjZXMgY2F1c2VkIGJ5IHRoZSBBQ1BJQ0EgYWRkcmVzcyBzcGFjZSBjYWxsYmFjayBp bnZvY2F0aW9ucy4NCj4gPiA+DQo+ID4gPiBBQ1BJQ0EgYWRkcmVzcyBzcGFjZSBjYWxsYmFjayBp bnZvY2F0aW9uIGlzIG5vdCBzdWl0YWJsZSBmb3IgTGludXgNCj4gPiA+IENPTkZJR19NT0RVTEU9 eSBleGVjdXRpb24gZW52aXJvbm1lbnQuICBUaGlzIHBhdGNoIHRyaWVzIHRvIHByb3RlY3QNCj4g PiA+IHRoZSBhZGRyZXNzIHNwYWNlIGNhbGxiYWNrcyBieSBpbnZva2luZyB0aGVtIHVuZGVyIGEg bW9kdWxlIHNhZmUNCj4gPiBlbnZpcm9ubWVudC4NCj4gPiA+IFRoZSBJUE1JIGFkZHJlc3Mgc3Bh Y2UgaGFuZGxlciBpcyBhbHNvIHVwZ3JhZGVkIGluIHRoaXMgcGF0Y2guDQo+ID4gPiBUaGUgYWNw aV91bnJlZ2lzdGVyX3JlZ2lvbigpIGlzIGRlc2lnbmVkIHRvIG1lZXQgdGhlIGZvbGxvd2luZw0K PiA+ID4gcmVxdWlyZW1lbnRzOg0KPiA+ID4gMS4gSXQgYWN0cyBhcyBhIGJhcnJpZXIgZm9yIG9w ZXJhdGlvbiByZWdpb24gY2FsbGJhY2tzIC0gbm8gY2FsbGJhY2sgd2lsbA0KPiA+ID4gICAgaGFw cGVuIGFmdGVyIGFjcGlfdW5yZWdpc3Rlcl9yZWdpb24oKS4NCj4gPiA+IDIuIGFjcGlfdW5yZWdp c3Rlcl9yZWdpb24oKSBpcyBzYWZlIHRvIGJlIGNhbGxlZCBpbiBtb3VkbGUtPmV4aXQoKQ0KPiA+ ID4gICAgZnVuY3Rpb25zLg0KPiA+ID4gVXNpbmcgcmVmZXJlbmNlIGNvdW50aW5nIHJhdGhlciB0 aGFuIG1vZHVsZSByZWZlcmVuY2luZyBhbGxvd3Mgc3VjaA0KPiA+ID4gYmVuZWZpdHMgdG8gYmUg YWNoaWV2ZWQgZXZlbiB3aGVuIGFjcGlfdW5yZWdpc3Rlcl9yZWdpb24oKSBpcyBjYWxsZWQNCj4g PiA+IGluIHRoZSBlbnZpcm9ubWVudHMgb3RoZXIgdGhhbiBtb2R1bGUtPmV4aXQoKS4NCj4gPiA+ IFRoZSBoZWFkZXIgZmlsZSBvZiBpbmNsdWRlL2FjcGkvYWNwaV9idXMuaCBzaG91bGQgY29udGFp biB0aGUNCj4gPiA+IGRlY2xhcmF0aW9ucyB0aGF0IGhhdmUgcmVmZXJlbmNlcyB0byBzb21lIEFD UElDQSBkZWZpbmVkIHR5cGVzLg0KPiA+ID4NCj4gPiA+IFNpZ25lZC1vZmYtYnk6IEx2IFpoZW5n IDxsdi56aGVuZ0BpbnRlbC5jb20+DQo+ID4gPiBSZXZpZXdlZC1ieTogSHVhbmcgWWluZyA8eWlu Zy5odWFuZ0BpbnRlbC5jb20+DQo+ID4gPiAtLS0NCj4gPiA+ICBkcml2ZXJzL2FjcGkvYWNwaV9p cG1pLmMgfCAgIDE2ICsrLS0NCj4gPiA+ICBkcml2ZXJzL2FjcGkvb3NsLmMgICAgICAgfCAgMjI0 DQo+ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ ID4gIGluY2x1ZGUvYWNwaS9hY3BpX2J1cy5oICB8ICAgIDUgKysNCj4gPiA+ICAzIGZpbGVzIGNo YW5nZWQsIDIzNSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkNCj4gPiA+DQo+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2FjcGlfaXBtaS5jIGIvZHJpdmVycy9hY3BpL2FjcGlf aXBtaS5jDQo+ID4gPiBpbmRleA0KPiA+ID4gNWY4ZjQ5NS4uMmEwOTE1NiAxMDA2NDQNCj4gPiA+ IC0tLSBhL2RyaXZlcnMvYWNwaS9hY3BpX2lwbWkuYw0KPiA+ID4gKysrIGIvZHJpdmVycy9hY3Bp L2FjcGlfaXBtaS5jDQo+ID4gPiBAQCAtNTM5LDIwICs1MzksMTggQEAgb3V0X3JlZjoNCj4gPiA+ ICBzdGF0aWMgaW50IF9faW5pdCBhY3BpX2lwbWlfaW5pdCh2b2lkKSAgew0KPiA+ID4gIAlpbnQg cmVzdWx0ID0gMDsNCj4gPiA+IC0JYWNwaV9zdGF0dXMgc3RhdHVzOw0KPiA+ID4NCj4gPiA+ICAJ aWYgKGFjcGlfZGlzYWJsZWQpDQo+ID4gPiAgCQlyZXR1cm4gcmVzdWx0Ow0KPiA+ID4NCj4gPiA+ ICAJbXV0ZXhfaW5pdCgmZHJpdmVyX2RhdGEuaXBtaV9sb2NrKTsNCj4gPiA+DQo+ID4gPiAtCXN0 YXR1cyA9IGFjcGlfaW5zdGFsbF9hZGRyZXNzX3NwYWNlX2hhbmRsZXIoQUNQSV9ST09UX09CSkVD VCwNCj4gPiA+IC0JCQkJCQkgICAgQUNQSV9BRFJfU1BBQ0VfSVBNSSwNCj4gPiA+IC0JCQkJCQkg ICAgJmFjcGlfaXBtaV9zcGFjZV9oYW5kbGVyLA0KPiA+ID4gLQkJCQkJCSAgICBOVUxMLCBOVUxM KTsNCj4gPiA+IC0JaWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKSB7DQo+ID4gPiArCXJlc3VsdCA9 IGFjcGlfcmVnaXN0ZXJfcmVnaW9uKEFDUElfQURSX1NQQUNFX0lQTUksDQo+ID4gPiArCQkJCSAg ICAgICZhY3BpX2lwbWlfc3BhY2VfaGFuZGxlciwNCj4gPiA+ICsJCQkJICAgICAgTlVMTCwgTlVM TCk7DQo+ID4gPiArCWlmIChyZXN1bHQpIHsNCj4gPiA+ICAJCXByX3dhcm4oIkNhbid0IHJlZ2lz dGVyIElQTUkgb3ByZWdpb24gc3BhY2UgaGFuZGxlXG4iKTsNCj4gPiA+IC0JCXJldHVybiAtRUlO VkFMOw0KPiA+ID4gKwkJcmV0dXJuIHJlc3VsdDsNCj4gPiA+ICAJfQ0KPiA+ID4NCj4gPiA+ICAJ cmVzdWx0ID0gaXBtaV9zbWlfd2F0Y2hlcl9yZWdpc3RlcigmZHJpdmVyX2RhdGEuYm1jX2V2ZW50 cyk7DQo+ID4gPiBAQCAtNTk2LDkgKzU5NCw3IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBhY3BpX2lw bWlfZXhpdCh2b2lkKQ0KPiA+ID4gIAl9DQo+ID4gPiAgCW11dGV4X3VubG9jaygmZHJpdmVyX2Rh dGEuaXBtaV9sb2NrKTsNCj4gPiA+DQo+ID4gPiAtCWFjcGlfcmVtb3ZlX2FkZHJlc3Nfc3BhY2Vf aGFuZGxlcihBQ1BJX1JPT1RfT0JKRUNULA0KPiA+ID4gLQkJCQkJICBBQ1BJX0FEUl9TUEFDRV9J UE1JLA0KPiA+ID4gLQkJCQkJICAmYWNwaV9pcG1pX3NwYWNlX2hhbmRsZXIpOw0KPiA+ID4gKwlh Y3BpX3VucmVnaXN0ZXJfcmVnaW9uKEFDUElfQURSX1NQQUNFX0lQTUkpOw0KPiA+ID4gIH0NCj4g PiA+DQo+ID4gPiAgbW9kdWxlX2luaXQoYWNwaV9pcG1pX2luaXQpOw0KPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvYWNwaS9vc2wuYyBiL2RyaXZlcnMvYWNwaS9vc2wuYyBpbmRleA0KPiA+ID4g NmFiMmMzNS4uODM5OGU1MSAxMDA2NDQNCj4gPiA+IC0tLSBhL2RyaXZlcnMvYWNwaS9vc2wuYw0K PiA+ID4gKysrIGIvZHJpdmVycy9hY3BpL29zbC5jDQo+ID4gPiBAQCAtODYsNiArODYsNDIgQEAg c3RhdGljIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICprYWNwaWRfd3E7DQo+ID4gPiBzdGF0aWMg c3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmthY3BpX25vdGlmeV93cTsgIHN0YXRpYyBzdHJ1Y3QN Cj4gPiA+IHdvcmtxdWV1ZV9zdHJ1Y3QgKmthY3BpX2hvdHBsdWdfd3E7DQo+ID4gPg0KPiA+ID4g K3N0cnVjdCBhY3BpX3JlZ2lvbiB7DQo+ID4gPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+ID4g PiArI2RlZmluZSBBQ1BJX1JFR0lPTl9ERUZBVUxUCQkweDAxDQo+ID4gPiArI2RlZmluZSBBQ1BJ X1JFR0lPTl9JTlNUQUxMRUQJCTB4MDINCj4gPiA+ICsjZGVmaW5lIEFDUElfUkVHSU9OX1JFR0lT VEVSRUQJCTB4MDQNCj4gPiA+ICsjZGVmaW5lIEFDUElfUkVHSU9OX1VOUkVHSVNURVJJTkcJMHgw OA0KPiA+ID4gKyNkZWZpbmUgQUNQSV9SRUdJT05fSU5TVEFMTElORwkJMHgxMA0KPiA+DQo+ID4g V2hhdCBhYm91dCAoMVVMIDw8IDEpLCAoMVVMIDw8IDIpIGV0Yy4/DQo+ID4NCj4gPiBBbHNvIHBs ZWFzZSByZW1vdmUgdGhlICNkZWZpbmVzIG91dCBvZiB0aGUgc3RydWN0IGRlZmluaXRpb24uDQo+ IA0KPiBPSy4NCj4gDQo+ID4NCj4gPiA+ICsJLyoNCj4gPiA+ICsJICogTk9URTogVXBncmFkaW5n IEFsbCBSZWdpb24gSGFuZGxlcnMNCj4gPiA+ICsJICogVGhpcyBmbGFnIGlzIG9ubHkgdXNlZCBk dXJpbmcgdGhlIHBlcmlvZCB3aGVyZSBub3QgYWxsIG9mIHRoZQ0KPiA+ID4gKwkgKiByZWdpb24g aGFuZGVycyBhcmUgdXBncmFkZWQgdG8gdGhlIG5ldyBpbnRlcmZhY2VzLg0KPiA+ID4gKwkgKi8N Cj4gPiA+ICsjZGVmaW5lIEFDUElfUkVHSU9OX01BTkFHRUQJCTB4ODANCj4gPiA+ICsJYWNwaV9h ZHJfc3BhY2VfaGFuZGxlciBoYW5kbGVyOw0KPiA+ID4gKwlhY3BpX2Fkcl9zcGFjZV9zZXR1cCBz ZXR1cDsNCj4gPiA+ICsJdm9pZCAqY29udGV4dDsNCj4gPiA+ICsJLyogSW52b2tpbmcgcmVmZXJl bmNlcyAqLw0KPiA+ID4gKwlhdG9taWNfdCByZWZjbnQ7DQo+ID4NCj4gPiBBY3R1YWxseSwgd2h5 IGRvbid0IHlvdSB1c2Uga3JlZnM/DQo+IA0KPiBJZiB5b3UgdGFrZSBhIGxvb2sgYXQgb3RoZXIg cGllY2Ugb2YgbXkgY29kZXMsIHlvdSdsbCBmaW5kIHRoZXJlIGFyZSB0d28gcmVhc29uczoNCj4g DQo+IDEuIEknbSB1c2luZyB3aGlsZSAoYXRvbWljX3JlYWQoKSA+IDEpIHRvIGltcGxlbWVudCB0 aGUgb2JqZWN0cycgZmx1c2hpbmcgYW5kDQo+IHRoZXJlIGlzIG5vIGtyZWYgQVBJIHRvIGRvIHNv Lg0KPiAgIEkganVzdCB0aGluayBpdCBpcyBub3Qgc3VpdGFibGUgZm9yIG1lIHRvIGludHJvZHVj ZSBzdWNoIGFuIEFQSSBpbnRvIGtyZWYuaCBhbmQNCj4gc3RhcnQgYW5vdGhlciBhcmd1bWVudCBh cm91bmQga3JlZiBkZXNpZ25zIGluIHRoaXMgYnVnIGZpeCBwYXRjaC4gOi0pDQo+ICAgSSdsbCBz dGFydCBhIGRpc2N1c3Npb24gYWJvdXQga3JlZiBkZXNpZ24gdXNpbmcgYW5vdGhlciB0aHJlYWQu DQo+IDIuIEknbSB1c2luZyBpcG1pX2Rldnxtc2dfcmVsZWFzZSgpIGFzIGEgcGFpciBvZiBpcG1p X2Rldnxtc2dfYWxsb2MoKSwgaXQncyBraW5kDQo+IG9mIGF0b21pY190IGNvZGluZyBzdHlsZS4N Cj4gICBJZiBhdG9taWNfdCBpcyBjaGFuZ2VkIHRvIHN0cnVjdCBrcmVmLCBJIHdpbGwgbmVlZCB0 byBpbXBsZW1lbnQgdHdvIEFQSSwNCj4gX19pcG1pX2Rldl9yZWxlYXNlKCkgdG8gdGFrZSBhIHN0 cnVjdCBrcmVmIGFzIHBhcmFtZXRlciBhbmQgY2FsbA0KPiBpcG1pX2Rldl9yZWxlYXNlIGluc2lk ZSBpdC4NCj4gICBCeSBub3QgdXNpbmcga3JlZiwgSSBuZWVkbid0IHdyaXRlIGNvZGVzIHRvIGlt cGxlbWVudCBzdWNoIEFQSS4NCj4gDQo+ID4NCj4gPiA+ICt9Ow0KPiA+ID4gKw0KPiA+ID4gK3N0 YXRpYyBzdHJ1Y3QgYWNwaV9yZWdpb24NCj4gYWNwaV9yZWdpb25zW0FDUElfTlVNX1BSRURFRklO RURfUkVHSU9OU10NCj4gPiA9IHsNCj4gPiA+ICsJW0FDUElfQURSX1NQQUNFX1NZU1RFTV9NRU1P UlldID0gew0KPiA+ID4gKwkJLmZsYWdzID0gQUNQSV9SRUdJT05fREVGQVVMVCwNCj4gPiA+ICsJ fSwNCj4gPiA+ICsJW0FDUElfQURSX1NQQUNFX1NZU1RFTV9JT10gPSB7DQo+ID4gPiArCQkuZmxh Z3MgPSBBQ1BJX1JFR0lPTl9ERUZBVUxULA0KPiA+ID4gKwl9LA0KPiA+ID4gKwlbQUNQSV9BRFJf U1BBQ0VfUENJX0NPTkZJR10gPSB7DQo+ID4gPiArCQkuZmxhZ3MgPSBBQ1BJX1JFR0lPTl9ERUZB VUxULA0KPiA+ID4gKwl9LA0KPiA+ID4gKwlbQUNQSV9BRFJfU1BBQ0VfSVBNSV0gPSB7DQo+ID4g PiArCQkuZmxhZ3MgPSBBQ1BJX1JFR0lPTl9NQU5BR0VELA0KPiA+ID4gKwl9LA0KPiA+ID4gK307 DQo+ID4gPiArc3RhdGljIERFRklORV9NVVRFWChhY3BpX211dGV4X3JlZ2lvbik7DQo+ID4gPiAr DQo+ID4gPiAgLyoNCj4gPiA+ICAgKiBUaGlzIGxpc3Qgb2YgcGVybWFuZW50IG1hcHBpbmdzIGlz IGZvciBtZW1vcnkgdGhhdCBtYXkgYmUNCj4gPiA+IGFjY2Vzc2VkDQo+ID4gZnJvbQ0KPiA+ID4g ICAqIGludGVycnVwdCBjb250ZXh0LCB3aGVyZSB3ZSBjYW4ndCBkbyB0aGUgaW9yZW1hcCgpLg0K PiA+ID4gQEAgLTE3OTksMyArMTgzNSwxOTEgQEAgdm9pZCBhbGxvY19hY3BpX2hwX3dvcmsoYWNw aV9oYW5kbGUgaGFuZGxlLA0KPiA+IHUzMiB0eXBlLCB2b2lkICpjb250ZXh0LA0KPiA+ID4gIAkJ a2ZyZWUoaHBfd29yayk7DQo+ID4gPiAgfQ0KPiA+ID4gIEVYUE9SVF9TWU1CT0xfR1BMKGFsbG9j X2FjcGlfaHBfd29yayk7DQo+ID4gPiArDQo+ID4gPiArc3RhdGljIGJvb2wgYWNwaV9yZWdpb25f bWFuYWdlZChzdHJ1Y3QgYWNwaV9yZWdpb24gKnJnbikgew0KPiA+ID4gKwkvKg0KPiA+ID4gKwkg KiBOT1RFOiBEZWZhdWx0IGFuZCBNYW5hZ2VkDQo+ID4gPiArCSAqIFdlIG9ubHkgbmVlZCB0byBh dm9pZCByZWdpb24gbWFuYWdlbWVudCBvbiB0aGUgcmVnaW9ucw0KPiBtYW5hZ2VkDQo+ID4gPiAr CSAqIGJ5IEFDUElDQSAoQUNQSV9SRUdJT05fREVGQVVMVCkuICBDdXJyZW50bHksIHdlIG5lZWQN Cj4gYWRkaXRpb25hbA0KPiA+ID4gKwkgKiBjaGVjayBhcyBtYW55IG9wZXJhdGlvbiByZWdpb24g aGFuZGxlcnMgYXJlIG5vdCB1cGdyYWRlZCwgc28NCj4gPiA+ICsJICogb25seSB0aG9zZSBrbm93 biB0byBiZSBzYWZlIGFyZSBtYW5hZ2VkDQo+IChBQ1BJX1JFR0lPTl9NQU5BR0VEKS4NCj4gPiA+ ICsJICovDQo+ID4gPiArCXJldHVybiAhKHJnbi0+ZmxhZ3MgJiBBQ1BJX1JFR0lPTl9ERUZBVUxU KSAmJg0KPiA+ID4gKwkgICAgICAgKHJnbi0+ZmxhZ3MgJiBBQ1BJX1JFR0lPTl9NQU5BR0VEKTsg fQ0KPiA+ID4gKw0KPiA+ID4gK3N0YXRpYyBib29sIGFjcGlfcmVnaW9uX2NhbGxhYmxlKHN0cnVj dCBhY3BpX3JlZ2lvbiAqcmduKSB7DQo+ID4gPiArCXJldHVybiAocmduLT5mbGFncyAmIEFDUElf UkVHSU9OX1JFR0lTVEVSRUQpICYmDQo+ID4gPiArCSAgICAgICAhKHJnbi0+ZmxhZ3MgJiBBQ1BJ X1JFR0lPTl9VTlJFR0lTVEVSSU5HKTsgfQ0KPiA+ID4gKw0KPiA+ID4gK3N0YXRpYyBhY3BpX3N0 YXR1cw0KPiA+ID4gK2FjcGlfcmVnaW9uX2RlZmF1bHRfaGFuZGxlcih1MzIgZnVuY3Rpb24sDQo+ ID4gPiArCQkJICAgIGFjcGlfcGh5c2ljYWxfYWRkcmVzcyBhZGRyZXNzLA0KPiA+ID4gKwkJCSAg ICB1MzIgYml0X3dpZHRoLCB1NjQgKnZhbHVlLA0KPiA+ID4gKwkJCSAgICB2b2lkICpoYW5kbGVy X2NvbnRleHQsIHZvaWQgKnJlZ2lvbl9jb250ZXh0KSB7DQo+ID4gPiArCWFjcGlfYWRyX3NwYWNl X2hhbmRsZXIgaGFuZGxlcjsNCj4gPiA+ICsJc3RydWN0IGFjcGlfcmVnaW9uICpyZ24gPSAoc3Ry dWN0IGFjcGlfcmVnaW9uICopaGFuZGxlcl9jb250ZXh0Ow0KPiA+ID4gKwl2b2lkICpjb250ZXh0 Ow0KPiA+ID4gKwlhY3BpX3N0YXR1cyBzdGF0dXMgPSBBRV9OT1RfRVhJU1Q7DQo+ID4gPiArDQo+ ID4gPiArCW11dGV4X2xvY2soJmFjcGlfbXV0ZXhfcmVnaW9uKTsNCj4gPiA+ICsJaWYgKCFhY3Bp X3JlZ2lvbl9jYWxsYWJsZShyZ24pIHx8ICFyZ24tPmhhbmRsZXIpIHsNCj4gPiA+ICsJCW11dGV4 X3VubG9jaygmYWNwaV9tdXRleF9yZWdpb24pOw0KPiA+ID4gKwkJcmV0dXJuIHN0YXR1czsNCj4g PiA+ICsJfQ0KPiA+ID4gKw0KPiA+ID4gKwlhdG9taWNfaW5jKCZyZ24tPnJlZmNudCk7DQo+ID4g PiArCWhhbmRsZXIgPSByZ24tPmhhbmRsZXI7DQo+ID4gPiArCWNvbnRleHQgPSByZ24tPmNvbnRl eHQ7DQo+ID4gPiArCW11dGV4X3VubG9jaygmYWNwaV9tdXRleF9yZWdpb24pOw0KPiA+ID4gKw0K PiA+ID4gKwlzdGF0dXMgPSBoYW5kbGVyKGZ1bmN0aW9uLCBhZGRyZXNzLCBiaXRfd2lkdGgsIHZh bHVlLCBjb250ZXh0LA0KPiA+ID4gKwkJCSByZWdpb25fY29udGV4dCk7DQo+ID4NCj4gPiBXaHkg ZG9uJ3Qgd2UgY2FsbCB0aGUgaGFuZGxlciB1bmRlciB0aGUgbXV0ZXg/DQoNCkkgdGhpbmsgbXkg cmVwbHkgaXMgYWdhaW5zdCB0aGlzIHF1ZXN0aW9uLCBsZXQgbWUgcmVtb3ZlIGl0IHVwLg0KDQo+ IEl0J3MgYSBraW5kIG9mIHByb2dyYW1taW5nIHN0eWxlIHJlbGF0ZWQgY29uY2Vybi4NCj4gSU1P LCB1c2luZyBsb2NrcyBhcm91bmQgY2FsbGJhY2sgZnVuY3Rpb24gaXMgYSBidWdneSBwcm9ncmFt bWluZyBzdHlsZSB0aGF0DQo+IGNvdWxkIGxlYWQgdG8gZGVhZCBsb2Nrcy4NCj4gTGV0IG1lIGV4 cGxhaW4gdGhpcyB1c2luZyBhbiBleGFtcGxlLg0KPiANCj4gT2JqZWN0IEEgZXhwb3J0cyBhIHJl Z2lzdGVyL3VucmVnaXN0ZXIgQVBJIGZvciBvdGhlciBvYmplY3RzLg0KPiBPYmplY3QgQiBjYWxs cyBBJ3MgcmVnaXN0ZXIvdW5yZWdpc3RlciBBUEkgdG8gcmVnaXN0ZXIvdW5yZWdpc3RlciBCJ3Mg Y2FsbGJhY2suDQoNClNvcnJ5IEkgaGF2ZSB0byB1c2Ugb2JqZWN0IHJhdGhlciB0aGFuIG1vZHVs ZSBoZXJlIGFzIHRoZXJlIG1pZ2h0IGJlIHNldmVyYWwgb2JqZWN0cyBpbnNpZGUgYSBtb2R1bGUg dGhhdCBoYXZlIHRoZSBzYW1lIHNpdHVhdGlvbiBuZWVkIHRvIGJlIGhhbmRsZWQuDQoNCj4gSXQn cyBsaWtlbHkgdGhhdCBvYmplY3QgQiB3aWxsIGhvbGQgbG9ja19vZl9CIGFyb3VuZCB1bnJlZ2lz dGVyL3JlZ2lzdGVyIHdoZW4NCj4gb2JqZWN0IEIgaXMgZGVzdHJveWVkL2NyZWF0ZWQsIHRoZSBs b2NrX29mX0IgaXMgbGlrZWx5IGFsc28gdXNlZCBpbnNpZGUgdGhlDQo+IGNhbGxiYWNrLg0KPiBT byB3aGVuIG9iamVjdCBBIGhvbGRzIHRoZSBsb2NrX29mX0EgYXJvdW5kIHRoZSBjYWxsYmFjayBp bnZvY2F0aW9uLCBpdCBsZWFkcyB0bw0KPiBkZWFkIGxvY2sgc2luY2U6DQo+IDEuIHRoZSBsb2Nr aW5nIG9yZGVyIGZvciB0aGUgcmVnaXN0ZXIvdW5yZWdpc3RlciBzaWRlIHdpbGwgYmU6IGxvY2so bG9ja19vZl9CKSwNCj4gbG9jayhsb2NrX29mX0EpIDIuIHRoZSBsb2NraW5nIG9yZGVyIGZvciB0 aGUgY2FsbGJhY2sgc2lkZSB3aWxsIGJlOiBsb2NrKGxvY2tfb2ZfQSksDQo+IGxvY2sobG9ja19v Zl9CKSBUaGV5IGFyZSBpbiB0aGUgcmV2ZXJzZWQgb3JkZXIhDQoNCkkgdGhpbmsgdGhpcyBleGFt cGxlIGlzIG5vdCBxdWl0ZSBjb3JyZWN0Lg0KVGhlcmUgaXMgYW5vdGhlciBhc3BlY3QgaW4gdW5y ZWdpc3RlciBpbXBsZW1lbnRhdGlvbiB3aGljaCBpcyB0aGUgaW50ZW50IG9mIHRoaXMgcGF0Y2g6 DQpObyBjYWxsYmFjayBydW5uaW5nL2ltaXRhdGVkIGFmdGVyICJ1bnJlZ2lzdGVyIiwgd2UgY2Fu IGNhbGwgdGhpcyBhICJmbHVzaCIgcmVxdWlyZW1lbnQuDQpJbnNpZGUgb2YgdGhlIGNhbGxiYWNr LCBsb2NrX29mX0Igc2hvdWxkIG5vdCBiZSBoZWxkIGlmICJmbHVzaCIgaXMgcmVxdWlyZWQuDQoN Cj4gDQo+IElNTywgTGludXggbWF5IG5lZWQgdG8gaW50cm9kdWNlIF9fY2FsbGJhY2ssIF9fYXBp IGFzIGRlY2VsZXJhdG9ycyBmb3IgdGhlDQo+IGZ1bmN0aW9ucywgYW5kIHVzZSBzcGFyc2UgdG8g ZW5mb3JjZSB0aGlzIHJ1bGUsIHNwYXJzZSBrbm93cyBpZiBhIGNhbGxiYWNrIGlzDQo+IGludm9r ZWQgdW5kZXIgc29tZSBsb2Nrcy4NCj4gDQo+IEluIHRoZSBjYXNlIG9mIEFDUElDQSBzcGFjZV9o YW5kbGVycywgYXMgeW91IG1heSBrbm93LCB3aGVuIGFuIEFDUEkNCj4gb3BlcmF0aW9uIHJlZ2lv biBoYW5kbGVyIGlzIGludm9rZWQsIHRoZXJlIHdpbGwgYmUgbm8gbG9jayBoZWxkIGluc2lkZSBB Q1BJQ0ENCj4gKGludGVycHJldGVyIGxvY2sgbXVzdCBiZSBmcmVlZCBiZWZvcmUgZXhlY3V0aW5n IG9wZXJhdGlvbiByZWdpb24gaGFuZGxlcnMpLg0KPiBTbyB0aGUgbGlrZWxpaG9vZCBvZiB0aGUg ZGVhZCBsb2NrIGlzIHByZXR0eSBtdWNoIGhpZ2ggaGVyZSENCg0KSSBuZWVkIHRvIG1lbnRpb24g YW5vdGhlciByZXF1aXJlbWVudCBvZiB0aGUgb3BlcmF0aW9uIHJlZ2lvbiBoYW5kbGVyLg0KSXQg aXMgcmVxdWlyZWQgdGhhdCBtdWx0aXBsZSBvcGVyYXRpb24gcmVnaW9uIGhhbmRsZXJzIGFyZSBl eGVjdXRlZCBhdCB0aGUgc2FtZSB0aW1lLCBvciB0aGUgSU8gb3BlcmF0aW9ucyBpbnZva2VkIGJ5 IHRoZSBCSU9TIEFTTCBjb2RlcyB3aWxsIGJlIHNlcmlhbGl6ZWQuDQpJTU8sIElPIG9wZXJhdGlv bnMgaW52b2tlZCBieSB0aGUgQklPUyBBU0wgbmVlZCB0byBiZSBwYXJhbGxlbGl6ZWQuDQpUaHVz IG11dGV4IGlzIG5vdCB1c2VmdWwgdG8gaW1wbGVtZW50IGEgcHJvdGVjdGlvbiBoZXJlLg0KDQpT byB0aGUgbXV0ZXggaXMgdW5sb2NrZWQgYmVmb3JlIGV4ZWN1dGluZyB0aGUgaGFuZGxlciwgSU1P LCByZWZlcmVuY2UgY291bnRpbmcgaXMgdXNlZnVsIGhlcmUgdG8gbWVldCB0aGlzIHJlcXVpcmVt ZW50Lg0KDQo+ID4NCj4gPiBXaGF0IGV4YWN0bHkgcHJldmVudHMgY29udGV4dCBmcm9tIGJlY29t aW5nIE5VTEwgYmVmb3JlIHRoZSBjYWxsIGFib3ZlPw0KDQpJIHRoaW5rIG15IGFuc3dlcnMgZGlk IG5vdCBhbnN3ZXIgdGhpcyBxdWVzdGlvbiBkaXJlY3RseS4NCg0KU29ycnkgdGhhdCBJJ20gbm90 IGNsZWFyIHdoYXQgeW91IHdhbnQgdG8gYXNrIGhlcmUuICBMZXQgbWUganVzdCB0cnkgdG8gYmUg cHJhY3RpY2FsLg0KDQpUaGUgY29kZSBpcyBoZXJlOg0KPg0KPiA+ID4gKwltdXRleF9sb2NrKCZh Y3BpX211dGV4X3JlZ2lvbik7DQo+ID4gPiArCWlmICghYWNwaV9yZWdpb25fY2FsbGFibGUocmdu KSB8fCAhcmduLT5oYW5kbGVyKSB7DQoNCj4gPiA+ICsJaGFuZGxlciA9IHJnbi0+aGFuZGxlcjsN Cj4gPiA+ICsJY29udGV4dCA9IHJnbi0+Y29udGV4dDsNCj4gPiA+ICsJbXV0ZXhfdW5sb2NrKCZh Y3BpX211dGV4X3JlZ2lvbik7DQoNClRoZSBoYW5kbGVyIGlzIGVuc3VyZWQgbm90IHRvIGJlIE5V TEwgd2l0aGluIHRoZSBtdXRleCBsb2NrLg0KDQpUaGFua3MgZm9yIGNvbW1lbnRpbmcuDQoNCkJl c3QgcmVnYXJkcw0KLUx2DQoNCj4gPg0KPiA+ID4gKwlhdG9taWNfZGVjKCZyZ24tPnJlZmNudCk7 DQo+ID4gPiArDQo+ID4gPiArCXJldHVybiBzdGF0dXM7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ ID4gK3N0YXRpYyBhY3BpX3N0YXR1cw0KPiA+ID4gK2FjcGlfcmVnaW9uX2RlZmF1bHRfc2V0dXAo YWNwaV9oYW5kbGUgaGFuZGxlLCB1MzIgZnVuY3Rpb24sDQo+ID4gPiArCQkJICB2b2lkICpoYW5k bGVyX2NvbnRleHQsIHZvaWQgKipyZWdpb25fY29udGV4dCkgew0KPiA+ID4gKwlhY3BpX2Fkcl9z cGFjZV9zZXR1cCBzZXR1cDsNCj4gPiA+ICsJc3RydWN0IGFjcGlfcmVnaW9uICpyZ24gPSAoc3Ry dWN0IGFjcGlfcmVnaW9uICopaGFuZGxlcl9jb250ZXh0Ow0KPiA+ID4gKwl2b2lkICpjb250ZXh0 Ow0KPiA+ID4gKwlhY3BpX3N0YXR1cyBzdGF0dXMgPSBBRV9PSzsNCj4gPiA+ICsNCj4gPiA+ICsJ bXV0ZXhfbG9jaygmYWNwaV9tdXRleF9yZWdpb24pOw0KPiA+ID4gKwlpZiAoIWFjcGlfcmVnaW9u X2NhbGxhYmxlKHJnbikgfHwgIXJnbi0+c2V0dXApIHsNCj4gPiA+ICsJCW11dGV4X3VubG9jaygm YWNwaV9tdXRleF9yZWdpb24pOw0KPiA+ID4gKwkJcmV0dXJuIHN0YXR1czsNCj4gPiA+ICsJfQ0K PiA+ID4gKw0KPiA+ID4gKwlhdG9taWNfaW5jKCZyZ24tPnJlZmNudCk7DQo+ID4gPiArCXNldHVw ID0gcmduLT5zZXR1cDsNCj4gPiA+ICsJY29udGV4dCA9IHJnbi0+Y29udGV4dDsNCj4gPiA+ICsJ bXV0ZXhfdW5sb2NrKCZhY3BpX211dGV4X3JlZ2lvbik7DQo+ID4gPiArDQo+ID4gPiArCXN0YXR1 cyA9IHNldHVwKGhhbmRsZSwgZnVuY3Rpb24sIGNvbnRleHQsIHJlZ2lvbl9jb250ZXh0KTsNCj4g Pg0KPiA+IENhbiBzZXR1cCBkcm9wIHJnbi0+cmVmY250ID8NCj4gDQo+IFRoZSByZWFzb24gaXMg c2FtZSBhcyB0aGUgaGFuZGxlciwgYXMgYSBzZXR1cCBpcyBhbHNvIGEgY2FsbGJhY2suDQo+IA0K PiA+DQo+ID4gPiArCWF0b21pY19kZWMoJnJnbi0+cmVmY250KTsNCj4gPiA+ICsNCj4gPiA+ICsJ cmV0dXJuIHN0YXR1czsNCj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiArc3RhdGljIGludCBfX2Fj cGlfaW5zdGFsbF9yZWdpb24oc3RydWN0IGFjcGlfcmVnaW9uICpyZ24sDQo+ID4gPiArCQkJCSBh Y3BpX2Fkcl9zcGFjZV90eXBlIHNwYWNlX2lkKQ0KPiA+ID4gK3sNCj4gPiA+ICsJaW50IHJlcyA9 IDA7DQo+ID4gPiArCWFjcGlfc3RhdHVzIHN0YXR1czsNCj4gPiA+ICsJaW50IGluc3RhbGxpbmcg PSAwOw0KPiA+ID4gKw0KPiA+ID4gKwltdXRleF9sb2NrKCZhY3BpX211dGV4X3JlZ2lvbik7DQo+ ID4gPiArCWlmIChyZ24tPmZsYWdzICYgQUNQSV9SRUdJT05fSU5TVEFMTEVEKQ0KPiA+ID4gKwkJ Z290byBvdXRfbG9jazsNCj4gPiA+ICsJaWYgKHJnbi0+ZmxhZ3MgJiBBQ1BJX1JFR0lPTl9JTlNU QUxMSU5HKSB7DQo+ID4gPiArCQlyZXMgPSAtRUJVU1k7DQo+ID4gPiArCQlnb3RvIG91dF9sb2Nr Ow0KPiA+ID4gKwl9DQo+ID4gPiArDQo+ID4gPiArCWluc3RhbGxpbmcgPSAxOw0KPiA+ID4gKwly Z24tPmZsYWdzIHw9IEFDUElfUkVHSU9OX0lOU1RBTExJTkc7DQo+ID4gPiArCXN0YXR1cyA9IGFj cGlfaW5zdGFsbF9hZGRyZXNzX3NwYWNlX2hhbmRsZXIoQUNQSV9ST09UX09CSkVDVCwNCj4gPiBz cGFjZV9pZCwNCj4gPiA+ICsJCQkJCQkgICAgYWNwaV9yZWdpb25fZGVmYXVsdF9oYW5kbGVyLA0K PiA+ID4gKwkJCQkJCSAgICBhY3BpX3JlZ2lvbl9kZWZhdWx0X3NldHVwLA0KPiA+ID4gKwkJCQkJ CSAgICByZ24pOw0KPiA+ID4gKwlyZ24tPmZsYWdzICY9IH5BQ1BJX1JFR0lPTl9JTlNUQUxMSU5H Ow0KPiA+ID4gKwlpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykpDQo+ID4gPiArCQlyZXMgPSAtRUlO VkFMOw0KPiA+ID4gKwllbHNlDQo+ID4gPiArCQlyZ24tPmZsYWdzIHw9IEFDUElfUkVHSU9OX0lO U1RBTExFRDsNCj4gPiA+ICsNCj4gPiA+ICtvdXRfbG9jazoNCj4gPiA+ICsJbXV0ZXhfdW5sb2Nr KCZhY3BpX211dGV4X3JlZ2lvbik7DQo+ID4gPiArCWlmIChpbnN0YWxsaW5nKSB7DQo+ID4gPiAr CQlpZiAocmVzKQ0KPiA+ID4gKwkJCXByX2VycigiRmFpbGVkIHRvIGluc3RhbGwgcmVnaW9uICVk XG4iLCBzcGFjZV9pZCk7DQo+ID4gPiArCQllbHNlDQo+ID4gPiArCQkJcHJfaW5mbygiUmVnaW9u ICVkIGluc3RhbGxlZFxuIiwgc3BhY2VfaWQpOw0KPiA+ID4gKwl9DQo+ID4gPiArCXJldHVybiBy ZXM7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gK2ludCBhY3BpX3JlZ2lzdGVyX3JlZ2lvbihh Y3BpX2Fkcl9zcGFjZV90eXBlIHNwYWNlX2lkLA0KPiA+ID4gKwkJCSBhY3BpX2Fkcl9zcGFjZV9o YW5kbGVyIGhhbmRsZXIsDQo+ID4gPiArCQkJIGFjcGlfYWRyX3NwYWNlX3NldHVwIHNldHVwLCB2 b2lkICpjb250ZXh0KSB7DQo+ID4gPiArCWludCByZXM7DQo+ID4gPiArCXN0cnVjdCBhY3BpX3Jl Z2lvbiAqcmduOw0KPiA+ID4gKw0KPiA+ID4gKwlpZiAoc3BhY2VfaWQgPj0gQUNQSV9OVU1fUFJF REVGSU5FRF9SRUdJT05TKQ0KPiA+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gPiArDQo+ID4g PiArCXJnbiA9ICZhY3BpX3JlZ2lvbnNbc3BhY2VfaWRdOw0KPiA+ID4gKwlpZiAoIWFjcGlfcmVn aW9uX21hbmFnZWQocmduKSkNCj4gPiA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ID4gKw0KPiA+ ID4gKwlyZXMgPSBfX2FjcGlfaW5zdGFsbF9yZWdpb24ocmduLCBzcGFjZV9pZCk7DQo+ID4gPiAr CWlmIChyZXMpDQo+ID4gPiArCQlyZXR1cm4gcmVzOw0KPiA+ID4gKw0KPiA+ID4gKwltdXRleF9s b2NrKCZhY3BpX211dGV4X3JlZ2lvbik7DQo+ID4gPiArCWlmIChyZ24tPmZsYWdzICYgQUNQSV9S RUdJT05fUkVHSVNURVJFRCkgew0KPiA+ID4gKwkJbXV0ZXhfdW5sb2NrKCZhY3BpX211dGV4X3Jl Z2lvbik7DQo+ID4gPiArCQlyZXR1cm4gLUVCVVNZOw0KPiA+ID4gKwl9DQo+ID4gPiArDQo+ID4g PiArCXJnbi0+aGFuZGxlciA9IGhhbmRsZXI7DQo+ID4gPiArCXJnbi0+c2V0dXAgPSBzZXR1cDsN Cj4gPiA+ICsJcmduLT5jb250ZXh0ID0gY29udGV4dDsNCj4gPiA+ICsJcmduLT5mbGFncyB8PSBB Q1BJX1JFR0lPTl9SRUdJU1RFUkVEOw0KPiA+ID4gKwlhdG9taWNfc2V0KCZyZ24tPnJlZmNudCwg MSk7DQo+ID4gPiArCW11dGV4X3VubG9jaygmYWNwaV9tdXRleF9yZWdpb24pOw0KPiA+ID4gKw0K PiA+ID4gKwlwcl9pbmZvKCJSZWdpb24gJWQgcmVnaXN0ZXJlZFxuIiwgc3BhY2VfaWQpOw0KPiA+ ID4gKw0KPiA+ID4gKwlyZXR1cm4gMDsNCj4gPiA+ICt9DQo+ID4gPiArRVhQT1JUX1NZTUJPTF9H UEwoYWNwaV9yZWdpc3Rlcl9yZWdpb24pOw0KPiA+ID4gKw0KPiA+ID4gK3ZvaWQgYWNwaV91bnJl Z2lzdGVyX3JlZ2lvbihhY3BpX2Fkcl9zcGFjZV90eXBlIHNwYWNlX2lkKSB7DQo+ID4gPiArCXN0 cnVjdCBhY3BpX3JlZ2lvbiAqcmduOw0KPiA+ID4gKw0KPiA+ID4gKwlpZiAoc3BhY2VfaWQgPj0g QUNQSV9OVU1fUFJFREVGSU5FRF9SRUdJT05TKQ0KPiA+ID4gKwkJcmV0dXJuOw0KPiA+ID4gKw0K PiA+ID4gKwlyZ24gPSAmYWNwaV9yZWdpb25zW3NwYWNlX2lkXTsNCj4gPiA+ICsJaWYgKCFhY3Bp X3JlZ2lvbl9tYW5hZ2VkKHJnbikpDQo+ID4gPiArCQlyZXR1cm47DQo+ID4gPiArDQo+ID4gPiAr CW11dGV4X2xvY2soJmFjcGlfbXV0ZXhfcmVnaW9uKTsNCj4gPiA+ICsJaWYgKCEocmduLT5mbGFn cyAmIEFDUElfUkVHSU9OX1JFR0lTVEVSRUQpKSB7DQo+ID4gPiArCQltdXRleF91bmxvY2soJmFj cGlfbXV0ZXhfcmVnaW9uKTsNCj4gPiA+ICsJCXJldHVybjsNCj4gPiA+ICsJfQ0KPiA+ID4gKwlp ZiAocmduLT5mbGFncyAmIEFDUElfUkVHSU9OX1VOUkVHSVNURVJJTkcpIHsNCj4gPiA+ICsJCW11 dGV4X3VubG9jaygmYWNwaV9tdXRleF9yZWdpb24pOw0KPiA+ID4gKwkJcmV0dXJuOw0KPiA+DQo+ ID4gV2hhdCBhYm91dA0KPiA+DQo+ID4gCWlmICgocmduLT5mbGFncyAmIEFDUElfUkVHSU9OX1VO UkVHSVNURVJJTkcpDQo+ID4gCSAgICB8fCAhKHJnbi0+ZmxhZ3MgJiBBQ1BJX1JFR0lPTl9SRUdJ U1RFUkVEKSkgew0KPiA+IAkJbXV0ZXhfdW5sb2NrKCZhY3BpX211dGV4X3JlZ2lvbik7DQo+ID4g CQlyZXR1cm47DQo+ID4gCX0NCj4gPg0KPiANCj4gT0suDQo+IA0KPiA+ID4gKwl9DQo+ID4gPiAr DQo+ID4gPiArCXJnbi0+ZmxhZ3MgfD0gQUNQSV9SRUdJT05fVU5SRUdJU1RFUklORzsNCj4gPiA+ ICsJcmduLT5oYW5kbGVyID0gTlVMTDsNCj4gPiA+ICsJcmduLT5zZXR1cCA9IE5VTEw7DQo+ID4g PiArCXJnbi0+Y29udGV4dCA9IE5VTEw7DQo+ID4gPiArCW11dGV4X3VubG9jaygmYWNwaV9tdXRl eF9yZWdpb24pOw0KPiA+ID4gKw0KPiA+ID4gKwl3aGlsZSAoYXRvbWljX3JlYWQoJnJnbi0+cmVm Y250KSA+IDEpDQo+ID4gPiArCQlzY2hlZHVsZV90aW1lb3V0X3VuaW50ZXJydXB0aWJsZSh1c2Vj c190b19qaWZmaWVzKDUpKTsNCj4gPg0KPiA+IFdvdWxkbid0IGl0IGJlIGJldHRlciB0byB1c2Ug YSB3YWl0IHF1ZXVlIGhlcmU/DQo+IA0KPiBZZXMsIEknbGwgdHJ5Lg0KPiANCj4gPg0KPiA+ID4g KwlhdG9taWNfZGVjKCZyZ24tPnJlZmNudCk7DQo+ID4gPiArDQo+ID4gPiArCW11dGV4X2xvY2so JmFjcGlfbXV0ZXhfcmVnaW9uKTsNCj4gPiA+ICsJcmduLT5mbGFncyAmPSB+KEFDUElfUkVHSU9O X1JFR0lTVEVSRUQgfA0KPiA+IEFDUElfUkVHSU9OX1VOUkVHSVNURVJJTkcpOw0KPiA+ID4gKwlt dXRleF91bmxvY2soJmFjcGlfbXV0ZXhfcmVnaW9uKTsNCj4gPiA+ICsNCj4gPiA+ICsJcHJfaW5m bygiUmVnaW9uICVkIHVucmVnaXN0ZXJlZFxuIiwgc3BhY2VfaWQpOyB9DQo+ID4gPiArRVhQT1JU X1NZTUJPTF9HUEwoYWNwaV91bnJlZ2lzdGVyX3JlZ2lvbik7DQo+ID4gPiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9hY3BpL2FjcGlfYnVzLmggYi9pbmNsdWRlL2FjcGkvYWNwaV9idXMuaCBpbmRleA0K PiA+ID4gYTJjMmZiYi4uMTVmYWQwZCAxMDA2NDQNCj4gPiA+IC0tLSBhL2luY2x1ZGUvYWNwaS9h Y3BpX2J1cy5oDQo+ID4gPiArKysgYi9pbmNsdWRlL2FjcGkvYWNwaV9idXMuaA0KPiA+ID4gQEAg LTU0Miw0ICs1NDIsOSBAQCBzdGF0aWMgaW5saW5lIGludCB1bnJlZ2lzdGVyX2FjcGlfYnVzX3R5 cGUodm9pZA0KPiA+ID4gKmJ1cykgeyByZXR1cm4gMDsgfQ0KPiA+ID4NCj4gPiA+ICAjZW5kaWYJ CQkJLyogQ09ORklHX0FDUEkgKi8NCj4gPiA+DQo+ID4gPiAraW50IGFjcGlfcmVnaXN0ZXJfcmVn aW9uKGFjcGlfYWRyX3NwYWNlX3R5cGUgc3BhY2VfaWQsDQo+ID4gPiArCQkJIGFjcGlfYWRyX3Nw YWNlX2hhbmRsZXIgaGFuZGxlciwNCj4gPiA+ICsJCQkgYWNwaV9hZHJfc3BhY2Vfc2V0dXAgc2V0 dXAsIHZvaWQgKmNvbnRleHQpOyB2b2lkDQo+ID4gPiArYWNwaV91bnJlZ2lzdGVyX3JlZ2lvbihh Y3BpX2Fkcl9zcGFjZV90eXBlIHNwYWNlX2lkKTsNCj4gPiA+ICsNCj4gPiA+ICAjZW5kaWYgLypf X0FDUElfQlVTX0hfXyovDQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gUmFmYWVsDQo+IA0KPiBUaGFu a3MNCj4gLUx2DQo+IA0KPiA+DQo+ID4NCj4gPiAtLQ0KPiA+IEkgc3BlYWsgb25seSBmb3IgbXlz ZWxmLg0KPiA+IFJhZmFlbCBKLiBXeXNvY2tpLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5 IENlbnRlci4NCj4gTiAgICAgciAgeSAgIGIgWCAgx6d2IF4gKd66ey5uICsgICAgeyBpIGIge2F5 IB3Kh9qZICxqICAgZiAgIGggICB6IB4gdw0KPiBqOit2ICAgdyBqIG0gICAgICAgICB6WisgICAg IN2iaiIgICEgaQ0K -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/