From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: =?iso-8859-1?q?=5BPATCH=5D=A0Enable__dithering_on_Nat?= =?iso-8859-1?q?Semi_DVO2501_for_Fujitsu_S6010?= Date: Thu, 23 Apr 2015 21:31:39 +0200 Message-ID: <20150423193139.GE30184@phenom.ffwll.local> References: <5538AA9E.4070405@math.tu-berlin.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f175.google.com (mail-wi0-f175.google.com [209.85.212.175]) by gabe.freedesktop.org (Postfix) with ESMTP id 491AD6E18E for ; Thu, 23 Apr 2015 12:29:33 -0700 (PDT) Received: by wizk4 with SMTP id k4so228224446wiz.1 for ; Thu, 23 Apr 2015 12:29:32 -0700 (PDT) Content-Disposition: inline In-Reply-To: <5538AA9E.4070405@math.tu-berlin.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Thomas Richter Cc: intel-gfx List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBcHIgMjMsIDIwMTUgYXQgMTA6MTc6MzRBTSArMDIwMCwgVGhvbWFzIFJpY2h0ZXIg d3JvdGU6Cj4gSGkgRGFuaWVsLCBoaSBWaWxsZSwKPiAKPiB0aGlyZCBhdHRlbXB0ICgtOiBUaGlz IGlzIGEgcGF0Y2ggdGhhdCBlbmFibGVzIGRpdGhlcmluZyBvbiB0aGUgRnVqaXRzdQo+IFM2MDEw IGluc3RhbGxlZCBOUzI1MDEgRFZPLiBJdCBhbHNvIHB1bGxzIG91dCBhIGNvdXBsZSBvZiByZWdp c3RlcnMgaW50bwo+IGEgc2VwYXJhdGUgc3RydWN0dXJlLCBhdCBsZWFzdCB0aG9zZSByZWdpc3Rl cnMgb2Ygd2hpY2ggSSBiZWxpZXZlIEkga25vdwo+IHdoYXQgdGhleSBkby4gTm90ZSB0aGF0IHRo ZSBOUzI1MDEgRFZPIGlzIG90aGVyd2lzZSB1bmRvY3VtZW50ZWQuCj4gCj4gVGVzdGVkIG9uIHRo ZSBTNjAxMC4KClN0aWxsIG5vdCB5ZXQgYW55d2hlcmUgbmVhciBhIHBhdGNoIHRoYXQganVzdCBh cHBsaWVzLCBhbmQgZGVmaW5pdGVseSBub3QKZ2VuZXJhdGVkIGJ5IGdpdC4gSSd2ZSBnaXZlbiB1 cCBhbmQganVzdCBhc3NlbWJsZWQgaXQgZnJvbSB0aGUgcGFydHMgYW5kCmFkanVzdGVkIHBhdGhz IG1hbnVhbGx5LiBCdXQgcmVhbGx5IHBsZWFzZSBjaGVjayBvdXQgb25lIG9mIHRoZSBiYXppbGxp b24Kb2YgZ3JlYXQgdHV0b3JpYWxzIG91dCB0aGVyZSB3aGljaCBleHBsYWluIGluIGRldGFpbCBo b3cgdG8gc2VuZCBhIHBhdGNoCnRoYXQgSnVzdCBBcHBsaWVzKHRtKS4gVGhlIG9wdyBvbmUgaXMg bmljZToKCmh0dHA6Ly9rZXJuZWxuZXdiaWVzLm9yZy9PdXRyZWFjaHlmaXJzdHBhdGNoP2FjdGlv bj1zaG93JnJlZGlyZWN0PU9QV2ZpcnN0cGF0Y2gKClRoYW5rcywgRGFuaWVsCj4gCj4gR3JlZXRp bmdzLAo+IAlUaG9tYXMKCj4gU2lnbmVkLW9mZi1ieTogVGhvbWFzIFJpY2h0ZXIgPHRob3JAbWF0 aC50dS1iZXJsaW4uZGU+Cj4gCj4gVGhpcyBwYXRjaCBlbmFibGVzIHRoZSAodW5mb3J0dW5hdGVs eSB1bmRvY3VtZW50ZWQpIHNjYWxlciBvZiB0aGUKPiBOYXRTZW1pIDI1MDEgRFZPIGZvdW5kIGlu IHRoZSBGdWppdHN1LVNpZW1lbnMgUzYwMTAgbGFwdG9wIGFuZCBvdGhlcgo+IG1hY2hpbmVzIG9m IHRoZSBzYW1lIHNlcmllcyBhbmQgYWdlLgo+IAo+IFBhcnRzIG9mIHRoZSBEVk8gc2NhbGVyIGxv Z2ljIGhhdmUgYmVlbiByZXZlYWxlZCBieSByZXZlcnNlCj4gZW5naW5lZXJpbmcgYW5kIHRyaWFs IGFuZCBlcnJvciwgc28geW91ciBtaWxhZ2UgbWF5IHZhcnkuIFRoZQo+IHBhdGNoIChhbmQgdGhl IHdob2xlIG5zMjUwMSBEVk8gY29kZSkgaXMgY3VycmVudGx5IG9ubHkgZ29vZCBmb3IKPiB0aGUg MTAyNHg3NjggcGFuZWwgb2YgdGhlIFM2MDEwLCBhbmQgbWF5IGhvcGVmdWxseSB3b3JrIG9uIG90 aGVyCj4gbWFjaGluZXMgd2l0aCB0aGUgc2FtZSBwYW5lbCBzaXplLgo+IAo+IFRoZSBtb2RlLXNw ZWNpZmljIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHNjYWxlciBoYXZlIGJlZW4gbW92ZWQgb3V0Cj4g aW50byBhIHNlcGFyYXRlIGNsYXNzLCB0aGUgbW9kZS1hZ25vc3RpYyBzZXR0aW5ncyByZW1haW4g YXMgcmF3Cj4gcmVnaXN0ZXIgbGlzdCBhcyB0aGVpciBwdXJwb3NlIHJlbWFpbnMgdW5jbGVhciBh dCB0aGlzIHBvaW50Lgo+IAo+IC0tLQo+IC0tLSBkdm9fbnMyNTAxLmMtb3JnCTIwMTUtMDQtMTgg MjE6MDQ6MzEuMDAwMDAwMDAwICswMjAwCj4gKysrIGR2b19uczI1MDEuYwkyMDE1LTA0LTE4IDIw OjQ2OjAwLjAwMDAwMDAwMCArMDIwMAo+IEBAIC02MCw2ICs2MCwxMzAgQEAKPiAgCj4gICNkZWZp bmUgTlMyNTAxX1JFR0MgMHgwYwo+ICAKPiArLyoKPiArICogVGhlIGZvbGxvd2luZyByZWdpc3Rl cnMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBvZmZpY2lhbCBkYXRhc2hlZXQKPiArICogYW5kIGFyZSB0 aGUgcmVzdWx0IG9mIHJldmVyc2UgZW5naW5lZXJpbmcuCj4gKyAqLwo+ICsKPiArLyoKPiArICog UmVnaXN0ZXIgYzAgY29udHJvbHMgaG93IHRoZSBEVk8gc3luY2hyb25pemVzIHdpdGgKPiArICog aXRzIGlucHV0Lgo+ICsgKi8KPiArI2RlZmluZSBOUzI1MDFfUkVHQzAgMHhjMAo+ICsjZGVmaW5l IE5TMjUwMV9DMF9FTkFCTEUgKDE8PDApCS8qIGVuYWJsZSB0aGUgRFZPIHN5bmMgaW4gZ2VuZXJh bCAqLwo+ICsjZGVmaW5lIE5TMjUwMV9DMF9IU1lOQyAoMTw8MSkJLyogc3luY2hyb25pemUgaG9y aXpvbnRhbCB3aXRoIGlucHV0ICovCj4gKyNkZWZpbmUgTlMyNTAxX0MwX1ZTWU5DICgxPDwyKQkv KiBzeW5jaHJvbml6ZSB2ZXJ0aWNhbCB3aXRoIGlucHV0ICovCj4gKyNkZWZpbmUgTlMyNTAxX0Mw X1JFU0VUICgxPDw3KQkvKiByZXNldCB0aGUgc3luY2hyb25pemF0aW9uIGZsaXAvZmxvcHMgKi8K PiArCj4gKy8qCj4gKyAqIFJlZ2lzdGVyIDQxIGlzIHNvbWVob3cgcmVsYXRlZCB0byB0aGUgc3lu YyByZWdpc3RlciBhbmQgc3luYwo+ICsgKiBjb25maWd1cmF0aW9uLiBJdCBzaG91bGQgYmUgMHgz MiB3aGVuZXZlciByZWdDMCBpcyAweDA1IChoc3luYyBvZmYpCj4gKyAqIGFuZCAweDAwIG90aGVy d2lzZS4KPiArICovCj4gKyNkZWZpbmUgTlMyNTAxX1JFRzQxIDB4NDEKPiArCj4gKy8qCj4gKyAq IHRoaXMgcmVnaXN0ZXIgY29udHJvbHMgdGhlIGRpdGhlcmluZyBvZiB0aGUgRFZPCj4gKyAqIE9u ZSBiaXQgZW5hYmxlcyBpdCwgdGhlIG90aGVyIGRlZmluZSB0aGUgZGl0aGVyaW5nIGRlcHRoLgo+ ICsgKiBUaGUgaGlnaGVyIHRoZSB2YWx1ZSwgdGhlIGxvd2VyIHRoZSBkaXRoZXJpbmcgZGVwdGgu Cj4gKyAqLwo+ICsjZGVmaW5lIE5TMjUwMV9GOV9SRUcgMHhmOQo+ICsjZGVmaW5lIE5TMjUwMV9G OV9FTkFCTEUgKDE8PDApCQkvKiBpZiBzZXQsIGRpdGhlcmluZyBpcyBlbmFibGVkICovCj4gKyNk ZWZpbmUgTlMyNTAxX0Y5X0RJVEhFUl9NQVNLICgweDdmPDwxKQkvKiBjb250cm9scyB0aGUgZGl0 aGVyIGRlcHRoICovCj4gKyNkZWZpbmUgTlMyNTAxX0Y5X0RJVEhFUl9TSElGVCAxCS8qIHNoaWZ0 cyB0aGUgZGl0aGVyIG1hc2sgKi8KPiArCj4gKy8qCj4gKyAqIFBMTCBjb25maWd1cmF0aW9uIHJl Z2lzdGVyLiBUaGlzIGlzIGEgcGFpciBvZiByZWdpc3RlcnMsCj4gKyAqIG9uZSBzaW5nbGUgYnl0 ZSByZWdpc3RlciBhdCAxQiwgYW5kIGEgcGFpciBhdCAxQywxRC4KPiArICogVGhlc2UgcmVnaXN0 ZXJzIGFyZSBjb3VudGVycy9kaXZpZGVycy4KPiArICovCj4gKyNkZWZpbmUgTlMyNTAxX1JFRzFC IDB4MWIgLyogb25lIGJ5dGUgUExMIGNvbnRyb2wgcmVnaXN0ZXIgKi8KPiArI2RlZmluZSBOUzI1 MDFfUkVHMUMgMHgxYyAvKiBsb3ctcGFydCBvZiB0aGUgc2Vjb25kIHJlZ2lzdGVyICovCj4gKyNk ZWZpbmUgTlMyNTAxX1JFRzFEIDB4MWQgLyogaGlnaC1wYXJ0IG9mIHRoZSBzZWNvbmQgcmVnaXN0 ZXIgKi8KPiArCj4gKy8qCj4gKyAqIFNjYWxlciBjb250cm9sIHJlZ2lzdGVycy4gSG9yaXpvbnRh bCBhdCBiOCxiOSwKPiArICogdmVydGljYWwgYXQgMTAsMTEuIFRoZSBzY2FsZSBmYWN0b3IgaXMg Y29tcHV0ZWQgYXMKPiArICogMl4xNi9jb250cm9sLXZhbHVlLiBUaGUgbG93LWJ5dGUgY29tZXMg Zmlyc3QuCj4gKyAqLwo+ICsjZGVmaW5lIE5TMjUwMV9SRUcxMCAweDEwIC8qIGxvdy1ieXRlIHZl cnRpY2FsIHNjYWxlciAqLwo+ICsjZGVmaW5lIE5TMjUwMV9SRUcxMSAweDExIC8qIGhpZ2gtYnl0 ZSB2ZXJ0aWNhbCBzY2FsZXIgKi8KPiArI2RlZmluZSBOUzI1MDFfUkVHQjggMHhiOCAvKiBsb3ct Ynl0ZSBob3Jpem9udGFsIHNjYWxlciAqLwo+ICsjZGVmaW5lIE5TMjUwMV9SRUdCOSAweGI5IC8q IGhpZ2gtYnl0ZSBob3Jpem9udGFsIHNjYWxlciAqLwo+ICsKPiArLyoKPiArICogRGlzcGxheSB3 aW5kb3cgZGVmaW5pdGlvbi4gVGhpcyBjb25zaXN0cyBvZiBmb3VyIHJlZ2lzdGVycwo+ICsgKiBw ZXIgZGltZW5zaW9uLiBPbmUgcmVnaXN0ZXIgcGFpciBkZWZpbmVzIHRoZSBzdGFydCBvZiB0aGUK PiArICogZGlzcGxheSwgb25lIHRoZSBlbmQuCj4gKyAqIEFzIGZhciBhcyBJIHVuZGVyc3RhbmQs IHRoaXMgZGVmaW5lcyB0aGUgd2luZG93IHdpdGhpbiB3aGljaAo+ICsgKiB0aGUgc2NhbGVyIHNh bXBsZXMgdGhlIGlucHV0Lgo+ICsgKi8KPiArI2RlZmluZSBOUzI1MDFfUkVHQzEgMHhjMSAvKiBs b3ctYnl0ZSBob3Jpem9udGFsIGRpc3BsYXkgc3RhcnQgKi8KPiArI2RlZmluZSBOUzI1MDFfUkVH QzIgMHhjMiAvKiBoaWdoLWJ5dGUgaG9yaXpvbnRhbCBkaXNwbGF5IHN0YXJ0ICovCj4gKyNkZWZp bmUgTlMyNTAxX1JFR0MzIDB4YzMgLyogbG93LWJ5dGUgaG9yaXpvbnRhbCBkaXNwbGF5IHN0b3Ag Ki8KPiArI2RlZmluZSBOUzI1MDFfUkVHQzQgMHhjNCAvKiBoaWdoLWJ5dGUgaG9yaXpvbnRhbCBk aXNwbGF5IHN0b3AgKi8KPiArI2RlZmluZSBOUzI1MDFfUkVHQzUgMHhjNSAvKiBsb3ctYnl0ZSB2 ZXJ0aWNhbCBkaXNwbGF5IHN0YXJ0ICovCj4gKyNkZWZpbmUgTlMyNTAxX1JFR0M2IDB4YzYgLyog aGlnaC1ieXRlIHZlcnRpY2FsIGRpc3BsYXkgc3RhcnQgKi8KPiArI2RlZmluZSBOUzI1MDFfUkVH QzcgMHhjNyAvKiBsb3ctYnl0ZSB2ZXJ0aWNhbCBkaXNwbGF5IHN0b3AgKi8KPiArI2RlZmluZSBO UzI1MDFfUkVHQzggMHhjOCAvKiBoaWdoLWJ5dGUgdmVydGljYWwgZGlzcGxheSBzdG9wICovCj4g Kwo+ICsvKgo+ICsgKiBUaGUgZm9sbG93aW5nIHJlZ2lzdGVyIHBhaXIgc2VlbXMgdG8gZGVmaW5l IHRoZSBzdGFydCBvZgo+ICsgKiB0aGUgdmVydGljYWwgc3luYy4gSWYgYXV0b21hdGljIHN5bmNp bmcgaXMgZW5hYmxlZCwgYW5kIHRoZQo+ICsgKiByZWdpc3RlciB2YWx1ZSBkZWZpbmVzIGEgc3lu YyBwdWxzZSB0aGF0IGlzIGxhdGVyIHRoYW4gdGhlCj4gKyAqIGluY29taW5nIHN5bmMsIHRoZW4g dGhlIHJlZ2lzdGVyIHZhbHVlIGlzIGlnbm9yZWQgYW5kIHRoZQo+ICsgKiBleHRlcm5hbCBoc3lu YyB0cmlnZ2VycyB0aGUgc3luY2hyb25pemF0aW9uLgo+ICsgKi8KPiArI2RlZmluZSBOUzI1MDFf UkVHODAgMHg4MCAvKiBsb3ctYnl0ZSB2c3luYy1zdGFydCAqLwo+ICsjZGVmaW5lIE5TMjUwMV9S RUc4MSAweDgxIC8qIGhpZ2gtYnl0ZSB2c3luYy1zdGFydCAqLwo+ICsKPiArLyoKPiArICogVGhl IGZvbGxvd2luZyByZWdpc3RlciBwYWlyIHNlZW1zIHRvIGRlZmluZSB0aGUgdG90YWwgbnVtYmVy Cj4gKyAqIG9mIGxpbmVzIGNyZWF0ZWQgYXQgdGhlIG91dHB1dCBzaWRlIG9mIHRoZSBzY2FsZXIu Cj4gKyAqIFRoaXMgaXMgYWdhaW4gYSBsb3ctaGlnaCByZWdpc3RlciBwYWlyLgo+ICsgKi8KPiAr I2RlZmluZSBOUzI1MDFfUkVHODIgMHg4MiAvKiBvdXRwdXQgZGlzcGxheSBoZWlnaHQsIGxvdyBi eXRlICovCj4gKyNkZWZpbmUgTlMyNTAxX1JFRzgzIDB4ODMgLyogb3V0cHV0IGRpc3BsYXkgaGVp Z2h0LCBoaWdoIGJ5dGUgKi8KPiArCj4gKy8qCj4gKyAqIFRoZSBmb2xsb3dpbmcgcmVnaXN0ZXJz IGRlZmluZSB0aGUgZW5kIG9mIHRoZSBmcm9udC1wb3JjaAo+ICsgKiBpbiBob3Jpem9udGFsIGFu ZCB2ZXJ0aWNhbCBwb3NpdGlvbiBhbmQgaGVuY2UgYWxsb3cgdG8gc2hpZnQKPiArICogdGhlIGlt YWdlIGxlZnQvcmlnaHQgb3IgdXAvZG93bi4KPiArICovCj4gKyNkZWZpbmUgTlMyNTAxX1JFRzk4 IDB4OTggLyogaG9yaXpvbnRhbCBzdGFydCBvZiBkaXNwbGF5ICsgMjU2LCBsb3cgKi8KPiArI2Rl ZmluZSBOUzI1MDFfUkVHOTkgMHg5OSAvKiBob3Jpem9udGFsIHN0YXJ0IG9mIGRpc3BsYXkgKyAy NTYsIGhpZ2ggKi8KPiArI2RlZmluZSBOUzI1MDFfUkVHOEUgMHg4ZSAvKiB2ZXJ0aWNhbCBzdGFy dCBvZiB0aGUgZGlzcGxheSwgbG93IGJ5dGUgKi8KPiArI2RlZmluZSBOUzI1MDFfUkVHOEYgMHg4 ZiAvKiB2ZXJ0aWNhbCBzdGFydCBvZiB0aGUgZGlzcGxheSwgaGlnaCBieXRlICovCj4gKwo+ICsv Kgo+ICsgKiBUaGUgZm9sbG93aW5nIHJlZ2lzdGVyIHBhaXIgY29udHJvbCB0aGUgZnVuY3Rpb24g b2YgdGhlCj4gKyAqIGJhY2tsaWdodCBhbmQgdGhlIERWTyBvdXRwdXQuIFRvIGVuYWJsZSB0aGUg Y29ycmVzcG9uZGluZwo+ICsgKiBmdW5jdGlvbiwgdGhlIGNvcnJlc3BvbmRpbmcgYml0IG11c3Qg YmUgc2V0IGluIGJvdGggcmVnaXN0ZXJzLgo+ICsgKi8KPiArI2RlZmluZSBOUzI1MDFfUkVHMzQg MHgzNCAvKiBEVk8gZW5hYmxlIGZ1bmN0aW9ucywgZmlyc3QgcmVnaXN0ZXIgKi8KPiArI2RlZmlu ZSBOUzI1MDFfUkVHMzUgMHgzNSAvKiBEVk8gZW5hYmxlIGZ1bmN0aW9ucywgc2Vjb25kIHJlZ2lz dGVyICovCj4gKyNkZWZpbmUgTlMyNTAxXzM0X0VOQUJMRV9PVVRQVVQgKDE8PDApIC8qIGVuYWJs ZSBEVk8gb3V0cHV0ICovCj4gKyNkZWZpbmUgTlMyNTAxXzM0X0VOQUJMRV9CQUNLTElHSFQgKDE8 PDEpIC8qIGVuYWJsZSBiYWNrbGlnaHQgKi8KPiArCj4gKy8qCj4gKyAqIFJlZ2lzdGVycyA5QyBh bmQgOUQgZGVmaW5lIHRoZSB2ZXJ0aWNhbCBvdXRwdXQgb2Zmc2V0Cj4gKyAqIG9mIHRoZSB2aXNp YmxlIHJlZ2lvbi4KPiArICovCj4gKyNkZWZpbmUgTlMyNTAxX1JFRzlDIDB4OWMKPiArI2RlZmlu ZSBOUzI1MDFfUkVHOUQgMHg5ZAo+ICsKPiArLyoKPiArICogVGhlIHJlZ2lzdGVyIDlGIGRlZmlu ZXMgdGhlIGRpdGhlcmluZy4gVGhpcyByZXF1aXJlcyB0aGUKPiArICogc2NhbGVyIHRvIGJlIE9O LiBCaXQgMCBlbmFibGVzIGRpdGhlcmluZywgdGhlIHJlbWFpbmluZwo+ICsgKiBiaXRzIGNvbnRy b2wgdGhlIGRlcHRoIG9mIHRoZSBkaXRoZXIuIFRoZSBoaWdoZXIgdGhlIHZhbHVlLAo+ICsgKiB0 aGUgTE9XRVIgdGhlIGRpdGhlcmluZyBhbXBsaXR1ZGUuIEEgZ29vZCB2YWx1ZSBzZWVtcyB0byBi ZQo+ICsgKiAxNSAodG90YWwgcmVnaXN0ZXIgdmFsdWUpLgo+ICsgKi8KPiArI2RlZmluZSBOUzI1 MDFfUkVHRjkgMHhmOQo+ICsjZGVmaW5lIE5TMjUwMV9GOV9FTkFCTEVfRElUSEVSICgxPDwwKSAv KiBlbmFibGUgZGl0aGVyaW5nICovCj4gKyNkZWZpbmUgTlMyNTAxX0Y5X0RJVEhFUl9NQVNLICgw eDdmPDwxKSAvKiBkaXRoZXIgbWFza2luZyAqLwo+ICsjZGVmaW5lIE5TMjUwMV9GOV9ESVRIRVJf U0hJRlQgMQkvKiB1cHNoaWZ0IG9mIHRoZSBkaXRoZXIgbWFzayAqLwo+ICsKPiAgZW51bSB7Cj4g IAlNT0RFXzY0MHg0ODAsCj4gIAlNT0RFXzgwMHg2MDAsCj4gQEAgLTcyLDI3NCArMTk2LDE3OCBA QCBzdHJ1Y3QgbnMyNTAxX3JlZyB7Cj4gIH07Cj4gIAo+ICAvKgo+IC0gKiBNYWdpYyB2YWx1ZXMg YmFzZWQgb24gd2hhdCB0aGUgQklPUyBvbgo+IC0gKiBGdWppdHN1LVNpZW1lbnMgTGlmZWJvb2sg UzYwMTAgcHJvZ3JhbXMgKDEwMjR4NzY4IHBhbmVsKS4KPiArICogVGhlIGZvbGxvd2luZyBzdHJ1 Y3R1cmUga2VlcHMgdGhlIGNvbXBsZXRlIGNvbmZpZ3VyYXRpb24gb2YKPiArICogdGhlIERWTywg Z2l2ZW4gYSBzcGVjaWZpYyBvdXRwdXQgY29uZmlndXJhdGlvbi4KPiArICogVGhpcyBpcyBwcmV0 dHkgbXVjaCBndWVzcy13b3JrIGZyb20gcmV2ZXJzZS1lbmdpbmVlcmluZywgc28KPiArICogcmVh ZCBhbGwgdGhpcyB3aXRoIGEgZ3JhaW4gb2Ygc2FsdC4KPiArICovCj4gK3N0cnVjdCBuczI1MDFf Y29uZmlndXJhdGlvbiB7Cj4gKwl1aW50OF90IHN5bmM7CQkvKiBjb25maWd1cmF0aW9uIG9mIHRo ZSBDMCByZWdpc3RlciAqLwo+ICsJdWludDhfdCBjb25mOwkJLyogY29uZmlndXJhdGlvbiByZWdp c3RlciA4ICovCj4gKwl1aW50OF90IHN5bmNiOwkJLyogY29uZmlndXJhdGlvbiByZWdpc3RlciA0 MSAqLwo+ICsJdWludDhfdAlkaXRoZXI7CQkvKiBjb25maWd1cmF0aW9uIG9mIHRoZSBkaXRoZXJp bmcgKi8KPiArCXVpbnQ4X3QgcGxsX2E7CQkvKiBQTEwgY29uZmlndXJhdGlvbiwgcmVnaXN0ZXIg QSwgMUIgKi8KPiArCXVpbnQxNl90IHBsbF9iOwkJLyogUExMIGNvbmZpZ3VyYXRpb24sIHJlZ2lz dGVyIEIsIDFDLzFEICovCj4gKwl1aW50MTZfdCBoc3RhcnQ7CS8qIGhvcml6b250YWwgc3RhcnQs IHJlZ2lzdGVycyBDMS9DMiAqLwo+ICsJdWludDE2X3QgaHN0b3A7CQkvKiBob3Jpem9udGFsIHRv dGFsLCByZWdpc3RlcnMgQzMvQzQgKi8KPiArCXVpbnQxNl90IHZzdGFydDsJLyogdmVydGljYWwg c3RhcnQsIHJlZ2lzdGVycyBDNS9DNiAqLwo+ICsJdWludDE2X3QgdnN0b3A7CQkvKiB2ZXJ0aWNh bCB0b3RhbCwgcmVnaXN0ZXJzIEM3L0M4ICovCj4gKwl1aW50MTZfdCB2c3luYzsgICAgICAgICAv KiBtYW51YWwgdmVydGljYWwgc3luYyBzdGFydCwgODAvODEgKi8KPiArCXVpbnQxNl90IHZ0b3Rh bDsgICAgICAgIC8qIG51bWJlciBvZiBsaW5lcyBnZW5lcmF0ZWQsIDgyLzgzICovCj4gKwl1aW50 MTZfdCBocG9zOwkJLyogaG9yaXpvbnRhbCBwb3NpdGlvbiArIDI1NiwgOTgvOTkgICovCj4gKwl1 aW50MTZfdCB2cG9zOwkJLyogdmVydGljYWwgcG9zaXRpb24sIDhlLzhmICovCj4gKwl1aW50MTZf dCB2b2ZmczsJCS8qIHZlcnRpY2FsIG91dHB1dCBvZmZzZXQsIDljLzlkICovCj4gKwl1aW50MTZf dCBoc2NhbGU7CS8qIGhvcml6b250YWwgc2NhbGluZyBmYWN0b3IsIGI4L2I5ICovCj4gKwl1aW50 MTZfdCB2c2NhbGU7CS8qIHZlcnRpY2FsIHNjYWxpbmcgZmFjdG9yLCAxMC8xMSAqLwo+ICt9Owo+ ICsKPiArLyoKPiArICogRFZPIGNvbmZpZ3VyYXRpb24gdmFsdWVzLCBwYXJ0aWFsbHkgYmFzZWQg b24gd2hhdCB0aGUgQklPUwo+ICsgKiBvZiB0aGUgRnVqaXRzdSBMaWZlYm9vayBTNjAxMCB3cml0 ZXMgaW50byByZWdpc3RlcnMsCj4gKyAqIHBhcnRpYWxseSBmb3VuZCBieSBtYW51YWwgdHdlYWtp bmcuIFRoZXNlIGNvbmZpZ3VyYXRpb25zIGFzc3VtZQo+ICsgKiBhIDEwMjR4NzY4IHBhbmVsLgo+ ICAgKi8KPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBuczI1MDFfcmVnIHJlZ3NfMTAyNHg3NjhbXVs4 Nl0gPSB7Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbnMyNTAxX2NvbmZpZ3VyYXRpb24gbnMyNTAx X21vZGVzW10gPSB7Cj4gIAlbTU9ERV82NDB4NDgwXSA9IHsKPiAtCQlbMF0gPSB7IC5vZmZzZXQg PSAweDBhLCAudmFsdWUgPSAweDgxLCB9LAo+IC0JCVsxXSA9IHsgLm9mZnNldCA9IDB4MTgsIC52 YWx1ZSA9IDB4MDcsIH0sCj4gLQkJWzJdID0geyAub2Zmc2V0ID0gMHgxOSwgLnZhbHVlID0gMHgw MCwgfSwKPiAtCQlbM10gPSB7IC5vZmZzZXQgPSAweDFhLCAudmFsdWUgPSAweDAwLCB9LAo+IC0J CVs0XSA9IHsgLm9mZnNldCA9IDB4MWIsIC52YWx1ZSA9IDB4MTEsIH0sCj4gLQkJWzVdID0geyAu b2Zmc2V0ID0gMHgxYywgLnZhbHVlID0gMHg1NCwgfSwKPiAtCQlbNl0gPSB7IC5vZmZzZXQgPSAw eDFkLCAudmFsdWUgPSAweDAzLCB9LAo+IC0JCVs3XSA9IHsgLm9mZnNldCA9IDB4MWUsIC52YWx1 ZSA9IDB4MDIsIH0sCj4gLQkJWzhdID0geyAub2Zmc2V0ID0gMHhmMywgLnZhbHVlID0gMHg5MCwg fSwKPiAtCQlbOV0gPSB7IC5vZmZzZXQgPSAweGY5LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVsx MF0gPSB7IC5vZmZzZXQgPSAweGMxLCAudmFsdWUgPSAweDkwLCB9LAo+IC0JCVsxMV0gPSB7IC5v ZmZzZXQgPSAweGMyLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVsxMl0gPSB7IC5vZmZzZXQgPSAw eGMzLCAudmFsdWUgPSAweDBmLCB9LAo+IC0JCVsxM10gPSB7IC5vZmZzZXQgPSAweGM0LCAudmFs dWUgPSAweDAzLCB9LAo+IC0JCVsxNF0gPSB7IC5vZmZzZXQgPSAweGM1LCAudmFsdWUgPSAweDE2 LCB9LAo+IC0JCVsxNV0gPSB7IC5vZmZzZXQgPSAweGM2LCAudmFsdWUgPSAweDAwLCB9LAo+IC0J CVsxNl0gPSB7IC5vZmZzZXQgPSAweGM3LCAudmFsdWUgPSAweDAyLCB9LAo+IC0JCVsxN10gPSB7 IC5vZmZzZXQgPSAweGM4LCAudmFsdWUgPSAweDAyLCB9LAo+IC0JCVsxOF0gPSB7IC5vZmZzZXQg PSAweGY0LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVsxOV0gPSB7IC5vZmZzZXQgPSAweDgwLCAu dmFsdWUgPSAweGZmLCB9LAo+IC0JCVsyMF0gPSB7IC5vZmZzZXQgPSAweDgxLCAudmFsdWUgPSAw eDA3LCB9LAo+IC0JCVsyMV0gPSB7IC5vZmZzZXQgPSAweDgyLCAudmFsdWUgPSAweDNkLCB9LAo+ IC0JCVsyMl0gPSB7IC5vZmZzZXQgPSAweDgzLCAudmFsdWUgPSAweDA1LCB9LAo+IC0JCVsyM10g PSB7IC5vZmZzZXQgPSAweDk0LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVsyNF0gPSB7IC5vZmZz ZXQgPSAweDk1LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVsyNV0gPSB7IC5vZmZzZXQgPSAweDk2 LCAudmFsdWUgPSAweDA1LCB9LAo+IC0JCVsyNl0gPSB7IC5vZmZzZXQgPSAweDk3LCAudmFsdWUg PSAweDAwLCB9LAo+IC0JCVsyN10gPSB7IC5vZmZzZXQgPSAweDlhLCAudmFsdWUgPSAweDg4LCB9 LAo+IC0JCVsyOF0gPSB7IC5vZmZzZXQgPSAweDliLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVsy OV0gPSB7IC5vZmZzZXQgPSAweDk4LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVszMF0gPSB7IC5v ZmZzZXQgPSAweDk5LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVszMV0gPSB7IC5vZmZzZXQgPSAw eGY3LCAudmFsdWUgPSAweDg4LCB9LAo+IC0JCVszMl0gPSB7IC5vZmZzZXQgPSAweGY4LCAudmFs dWUgPSAweDBhLCB9LAo+IC0JCVszM10gPSB7IC5vZmZzZXQgPSAweDljLCAudmFsdWUgPSAweDI0 LCB9LAo+IC0JCVszNF0gPSB7IC5vZmZzZXQgPSAweDlkLCAudmFsdWUgPSAweDAwLCB9LAo+IC0J CVszNV0gPSB7IC5vZmZzZXQgPSAweDllLCAudmFsdWUgPSAweDI1LCB9LAo+IC0JCVszNl0gPSB7 IC5vZmZzZXQgPSAweDlmLCAudmFsdWUgPSAweDAzLCB9LAo+IC0JCVszN10gPSB7IC5vZmZzZXQg PSAweGEwLCAudmFsdWUgPSAweDI4LCB9LAo+IC0JCVszOF0gPSB7IC5vZmZzZXQgPSAweGExLCAu dmFsdWUgPSAweDAxLCB9LAo+IC0JCVszOV0gPSB7IC5vZmZzZXQgPSAweGEyLCAudmFsdWUgPSAw eDI4LCB9LAo+IC0JCVs0MF0gPSB7IC5vZmZzZXQgPSAweGEzLCAudmFsdWUgPSAweDA1LCB9LAo+ IC0JCVs0MV0gPSB7IC5vZmZzZXQgPSAweGI2LCAudmFsdWUgPSAweDA5LCB9LAo+IC0JCVs0Ml0g PSB7IC5vZmZzZXQgPSAweGI4LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs0M10gPSB7IC5vZmZz ZXQgPSAweGI5LCAudmFsdWUgPSAweGEwLCB9LAo+IC0JCVs0NF0gPSB7IC5vZmZzZXQgPSAweGJh LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs0NV0gPSB7IC5vZmZzZXQgPSAweGJiLCAudmFsdWUg PSAweDIwLCB9LAo+IC0JCVs0Nl0gPSB7IC5vZmZzZXQgPSAweDEwLCAudmFsdWUgPSAweDAwLCB9 LAo+IC0JCVs0N10gPSB7IC5vZmZzZXQgPSAweDExLCAudmFsdWUgPSAweGEwLCB9LAo+IC0JCVs0 OF0gPSB7IC5vZmZzZXQgPSAweDEyLCAudmFsdWUgPSAweDAyLCB9LAo+IC0JCVs0OV0gPSB7IC5v ZmZzZXQgPSAweDIwLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs1MF0gPSB7IC5vZmZzZXQgPSAw eDIyLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs1MV0gPSB7IC5vZmZzZXQgPSAweDIzLCAudmFs dWUgPSAweDAwLCB9LAo+IC0JCVs1Ml0gPSB7IC5vZmZzZXQgPSAweDI0LCAudmFsdWUgPSAweDAw LCB9LAo+IC0JCVs1M10gPSB7IC5vZmZzZXQgPSAweDI1LCAudmFsdWUgPSAweDAwLCB9LAo+IC0J CVs1NF0gPSB7IC5vZmZzZXQgPSAweDhjLCAudmFsdWUgPSAweDEwLCB9LAo+IC0JCVs1NV0gPSB7 IC5vZmZzZXQgPSAweDhkLCAudmFsdWUgPSAweDAyLCB9LAo+IC0JCVs1Nl0gPSB7IC5vZmZzZXQg PSAweDhlLCAudmFsdWUgPSAweDEwLCB9LAo+IC0JCVs1N10gPSB7IC5vZmZzZXQgPSAweDhmLCAu dmFsdWUgPSAweDAwLCB9LAo+IC0JCVs1OF0gPSB7IC5vZmZzZXQgPSAweDkwLCAudmFsdWUgPSAw eGZmLCB9LAo+IC0JCVs1OV0gPSB7IC5vZmZzZXQgPSAweDkxLCAudmFsdWUgPSAweDA3LCB9LAo+ IC0JCVs2MF0gPSB7IC5vZmZzZXQgPSAweDkyLCAudmFsdWUgPSAweGEwLCB9LAo+IC0JCVs2MV0g PSB7IC5vZmZzZXQgPSAweDkzLCAudmFsdWUgPSAweDAyLCB9LAo+IC0JCVs2Ml0gPSB7IC5vZmZz ZXQgPSAweGE1LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs2M10gPSB7IC5vZmZzZXQgPSAweGE2 LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs2NF0gPSB7IC5vZmZzZXQgPSAweGE3LCAudmFsdWUg PSAweDAwLCB9LAo+IC0JCVs2NV0gPSB7IC5vZmZzZXQgPSAweGE4LCAudmFsdWUgPSAweDAwLCB9 LAo+IC0JCVs2Nl0gPSB7IC5vZmZzZXQgPSAweGE5LCAudmFsdWUgPSAweDA0LCB9LAo+IC0JCVs2 N10gPSB7IC5vZmZzZXQgPSAweGFhLCAudmFsdWUgPSAweDcwLCB9LAo+IC0JCVs2OF0gPSB7IC5v ZmZzZXQgPSAweGFiLCAudmFsdWUgPSAweDRmLCB9LAo+IC0JCVs2OV0gPSB7IC5vZmZzZXQgPSAw eGFjLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs3MF0gPSB7IC5vZmZzZXQgPSAweGE0LCAudmFs dWUgPSAweDg0LCB9LAo+IC0JCVs3MV0gPSB7IC5vZmZzZXQgPSAweDdlLCAudmFsdWUgPSAweDE4 LCB9LAo+IC0JCVs3Ml0gPSB7IC5vZmZzZXQgPSAweDg0LCAudmFsdWUgPSAweDAwLCB9LAo+IC0J CVs3M10gPSB7IC5vZmZzZXQgPSAweDg1LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs3NF0gPSB7 IC5vZmZzZXQgPSAweDg2LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs3NV0gPSB7IC5vZmZzZXQg PSAweDg3LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs3Nl0gPSB7IC5vZmZzZXQgPSAweDg4LCAu dmFsdWUgPSAweDAwLCB9LAo+IC0JCVs3N10gPSB7IC5vZmZzZXQgPSAweDg5LCAudmFsdWUgPSAw eDAwLCB9LAo+IC0JCVs3OF0gPSB7IC5vZmZzZXQgPSAweDhhLCAudmFsdWUgPSAweDAwLCB9LAo+ IC0JCVs3OV0gPSB7IC5vZmZzZXQgPSAweDhiLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs4MF0g PSB7IC5vZmZzZXQgPSAweDI2LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs4MV0gPSB7IC5vZmZz ZXQgPSAweDI3LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs4Ml0gPSB7IC5vZmZzZXQgPSAweGFk LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs4M10gPSB7IC5vZmZzZXQgPSAweDA4LCAudmFsdWUg PSAweDMwLCB9LCAvKiAweDMxICovCj4gLQkJWzg0XSA9IHsgLm9mZnNldCA9IDB4NDEsIC52YWx1 ZSA9IDB4MDAsIH0sCj4gLQkJWzg1XSA9IHsgLm9mZnNldCA9IDB4YzAsIC52YWx1ZSA9IDB4MDUs IH0sCj4gKwkJLnN5bmMJPSBOUzI1MDFfQzBfRU5BQkxFIHwgTlMyNTAxX0MwX1ZTWU5DLAo+ICsJ CS5jb25mCT0gTlMyNTAxXzhfVkVOIHwgTlMyNTAxXzhfSEVOIHwgTlMyNTAxXzhfUEQsCj4gKwkJ LnN5bmNiCT0gMHgzMiwKPiArCQkuZGl0aGVyCT0gMHgwZiwKPiArCQkucGxsX2EJPSAxNywKPiAr CQkucGxsX2IJPSA4NTIsCj4gKwkJLmhzdGFydAk9IDE0NCwKPiArCQkuaHN0b3AJPSA3ODMsCj4g KwkJLnZzdGFydAk9IDIyLAo+ICsJCS52c3RvcAk9IDUxNCwKPiArCQkudnN5bmMJPSAyMDQ3LCAv KiBhY3R1YWxseSwgaWdub3JlZCB3aXRoIHRoaXMgY29uZmlnICovCj4gKwkJLnZ0b3RhbAk9IDEz NDEsCj4gKwkJLmhwb3MJPSAwLAo+ICsJCS52cG9zCT0gMTYsCj4gKwkJLnZvZmZzCT0gMzYsCj4g KwkJLmhzY2FsZQk9IDQwOTYwLAo+ICsJCS52c2NhbGUJPSA0MDk2MAo+ICAJfSwKPiAgCVtNT0RF XzgwMHg2MDBdID0gewo+IC0JCVswXSA9IHsgLm9mZnNldCA9IDB4MGEsIC52YWx1ZSA9IDB4ODEs IH0sCj4gLQkJWzFdID0geyAub2Zmc2V0ID0gMHgxOCwgLnZhbHVlID0gMHgwNywgfSwKPiAtCQlb Ml0gPSB7IC5vZmZzZXQgPSAweDE5LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVszXSA9IHsgLm9m ZnNldCA9IDB4MWEsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzRdID0geyAub2Zmc2V0ID0gMHgx YiwgLnZhbHVlID0gMHgxOSwgfSwKPiAtCQlbNV0gPSB7IC5vZmZzZXQgPSAweDFjLCAudmFsdWUg PSAweDY0LCB9LAo+IC0JCVs2XSA9IHsgLm9mZnNldCA9IDB4MWQsIC52YWx1ZSA9IDB4MDIsIH0s Cj4gLQkJWzddID0geyAub2Zmc2V0ID0gMHgxZSwgLnZhbHVlID0gMHgwMiwgfSwKPiAtCQlbOF0g PSB7IC5vZmZzZXQgPSAweGYzLCAudmFsdWUgPSAweDkwLCB9LAo+IC0JCVs5XSA9IHsgLm9mZnNl dCA9IDB4ZjksIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzEwXSA9IHsgLm9mZnNldCA9IDB4YzEs IC52YWx1ZSA9IDB4ZDcsIH0sCj4gLQkJWzExXSA9IHsgLm9mZnNldCA9IDB4YzIsIC52YWx1ZSA9 IDB4MDAsIH0sCj4gLQkJWzEyXSA9IHsgLm9mZnNldCA9IDB4YzMsIC52YWx1ZSA9IDB4ZjgsIH0s Cj4gLQkJWzEzXSA9IHsgLm9mZnNldCA9IDB4YzQsIC52YWx1ZSA9IDB4MDMsIH0sCj4gLQkJWzE0 XSA9IHsgLm9mZnNldCA9IDB4YzUsIC52YWx1ZSA9IDB4MWEsIH0sCj4gLQkJWzE1XSA9IHsgLm9m ZnNldCA9IDB4YzYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzE2XSA9IHsgLm9mZnNldCA9IDB4 YzcsIC52YWx1ZSA9IDB4NzMsIH0sCj4gLQkJWzE3XSA9IHsgLm9mZnNldCA9IDB4YzgsIC52YWx1 ZSA9IDB4MDIsIH0sCj4gLQkJWzE4XSA9IHsgLm9mZnNldCA9IDB4ZjQsIC52YWx1ZSA9IDB4MDAs IH0sCj4gLQkJWzE5XSA9IHsgLm9mZnNldCA9IDB4ODAsIC52YWx1ZSA9IDB4MjcsIH0sCj4gLQkJ WzIwXSA9IHsgLm9mZnNldCA9IDB4ODEsIC52YWx1ZSA9IDB4MDMsIH0sCj4gLQkJWzIxXSA9IHsg Lm9mZnNldCA9IDB4ODIsIC52YWx1ZSA9IDB4NDEsIH0sCj4gLQkJWzIyXSA9IHsgLm9mZnNldCA9 IDB4ODMsIC52YWx1ZSA9IDB4MDUsIH0sCj4gLQkJWzIzXSA9IHsgLm9mZnNldCA9IDB4OTQsIC52 YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzI0XSA9IHsgLm9mZnNldCA9IDB4OTUsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gLQkJWzI1XSA9IHsgLm9mZnNldCA9IDB4OTYsIC52YWx1ZSA9IDB4MDUsIH0sCj4g LQkJWzI2XSA9IHsgLm9mZnNldCA9IDB4OTcsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzI3XSA9 IHsgLm9mZnNldCA9IDB4OWEsIC52YWx1ZSA9IDB4ODgsIH0sCj4gLQkJWzI4XSA9IHsgLm9mZnNl dCA9IDB4OWIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzI5XSA9IHsgLm9mZnNldCA9IDB4OTgs IC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzMwXSA9IHsgLm9mZnNldCA9IDB4OTksIC52YWx1ZSA9 IDB4MDAsIH0sCj4gLQkJWzMxXSA9IHsgLm9mZnNldCA9IDB4ZjcsIC52YWx1ZSA9IDB4ODgsIH0s Cj4gLQkJWzMyXSA9IHsgLm9mZnNldCA9IDB4ZjgsIC52YWx1ZSA9IDB4MDYsIH0sCj4gLQkJWzMz XSA9IHsgLm9mZnNldCA9IDB4OWMsIC52YWx1ZSA9IDB4MjMsIH0sCj4gLQkJWzM0XSA9IHsgLm9m ZnNldCA9IDB4OWQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzM1XSA9IHsgLm9mZnNldCA9IDB4 OWUsIC52YWx1ZSA9IDB4MjUsIH0sCj4gLQkJWzM2XSA9IHsgLm9mZnNldCA9IDB4OWYsIC52YWx1 ZSA9IDB4MDMsIH0sCj4gLQkJWzM3XSA9IHsgLm9mZnNldCA9IDB4YTAsIC52YWx1ZSA9IDB4Mjgs IH0sCj4gLQkJWzM4XSA9IHsgLm9mZnNldCA9IDB4YTEsIC52YWx1ZSA9IDB4MDEsIH0sCj4gLQkJ WzM5XSA9IHsgLm9mZnNldCA9IDB4YTIsIC52YWx1ZSA9IDB4MjgsIH0sCj4gLQkJWzQwXSA9IHsg Lm9mZnNldCA9IDB4YTMsIC52YWx1ZSA9IDB4MDUsIH0sCj4gLQkJWzQxXSA9IHsgLm9mZnNldCA9 IDB4YjYsIC52YWx1ZSA9IDB4MDksIH0sCj4gLQkJWzQyXSA9IHsgLm9mZnNldCA9IDB4YjgsIC52 YWx1ZSA9IDB4MzAsIH0sCj4gLQkJWzQzXSA9IHsgLm9mZnNldCA9IDB4YjksIC52YWx1ZSA9IDB4 YzgsIH0sCj4gLQkJWzQ0XSA9IHsgLm9mZnNldCA9IDB4YmEsIC52YWx1ZSA9IDB4MDAsIH0sCj4g LQkJWzQ1XSA9IHsgLm9mZnNldCA9IDB4YmIsIC52YWx1ZSA9IDB4MjAsIH0sCj4gLQkJWzQ2XSA9 IHsgLm9mZnNldCA9IDB4MTAsIC52YWx1ZSA9IDB4MjAsIH0sCj4gLQkJWzQ3XSA9IHsgLm9mZnNl dCA9IDB4MTEsIC52YWx1ZSA9IDB4YzgsIH0sCj4gLQkJWzQ4XSA9IHsgLm9mZnNldCA9IDB4MTIs IC52YWx1ZSA9IDB4MDIsIH0sCj4gLQkJWzQ5XSA9IHsgLm9mZnNldCA9IDB4MjAsIC52YWx1ZSA9 IDB4MDAsIH0sCj4gLQkJWzUwXSA9IHsgLm9mZnNldCA9IDB4MjIsIC52YWx1ZSA9IDB4MDAsIH0s Cj4gLQkJWzUxXSA9IHsgLm9mZnNldCA9IDB4MjMsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzUy XSA9IHsgLm9mZnNldCA9IDB4MjQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzUzXSA9IHsgLm9m ZnNldCA9IDB4MjUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzU0XSA9IHsgLm9mZnNldCA9IDB4 OGMsIC52YWx1ZSA9IDB4MTAsIH0sCj4gLQkJWzU1XSA9IHsgLm9mZnNldCA9IDB4OGQsIC52YWx1 ZSA9IDB4MDIsIH0sCj4gLQkJWzU2XSA9IHsgLm9mZnNldCA9IDB4OGUsIC52YWx1ZSA9IDB4MDQs IH0sCj4gLQkJWzU3XSA9IHsgLm9mZnNldCA9IDB4OGYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJ WzU4XSA9IHsgLm9mZnNldCA9IDB4OTAsIC52YWx1ZSA9IDB4ZmYsIH0sCj4gLQkJWzU5XSA9IHsg Lm9mZnNldCA9IDB4OTEsIC52YWx1ZSA9IDB4MDcsIH0sCj4gLQkJWzYwXSA9IHsgLm9mZnNldCA9 IDB4OTIsIC52YWx1ZSA9IDB4YTAsIH0sCj4gLQkJWzYxXSA9IHsgLm9mZnNldCA9IDB4OTMsIC52 YWx1ZSA9IDB4MDIsIH0sCj4gLQkJWzYyXSA9IHsgLm9mZnNldCA9IDB4YTUsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gLQkJWzYzXSA9IHsgLm9mZnNldCA9IDB4YTYsIC52YWx1ZSA9IDB4MDAsIH0sCj4g LQkJWzY0XSA9IHsgLm9mZnNldCA9IDB4YTcsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzY1XSA9 IHsgLm9mZnNldCA9IDB4YTgsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzY2XSA9IHsgLm9mZnNl dCA9IDB4YTksIC52YWx1ZSA9IDB4ODMsIH0sCj4gLQkJWzY3XSA9IHsgLm9mZnNldCA9IDB4YWEs IC52YWx1ZSA9IDB4NDAsIH0sCj4gLQkJWzY4XSA9IHsgLm9mZnNldCA9IDB4YWIsIC52YWx1ZSA9 IDB4MzIsIH0sCj4gLQkJWzY5XSA9IHsgLm9mZnNldCA9IDB4YWMsIC52YWx1ZSA9IDB4MDAsIH0s Cj4gLQkJWzcwXSA9IHsgLm9mZnNldCA9IDB4YTQsIC52YWx1ZSA9IDB4ODAsIH0sCj4gLQkJWzcx XSA9IHsgLm9mZnNldCA9IDB4N2UsIC52YWx1ZSA9IDB4MTgsIH0sCj4gLQkJWzcyXSA9IHsgLm9m ZnNldCA9IDB4ODQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzczXSA9IHsgLm9mZnNldCA9IDB4 ODUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzc0XSA9IHsgLm9mZnNldCA9IDB4ODYsIC52YWx1 ZSA9IDB4MDAsIH0sCj4gLQkJWzc1XSA9IHsgLm9mZnNldCA9IDB4ODcsIC52YWx1ZSA9IDB4MDAs IH0sCj4gLQkJWzc2XSA9IHsgLm9mZnNldCA9IDB4ODgsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJ Wzc3XSA9IHsgLm9mZnNldCA9IDB4ODksIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzc4XSA9IHsg Lm9mZnNldCA9IDB4OGEsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzc5XSA9IHsgLm9mZnNldCA9 IDB4OGIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzgwXSA9IHsgLm9mZnNldCA9IDB4MjYsIC52 YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzgxXSA9IHsgLm9mZnNldCA9IDB4MjcsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gLQkJWzgyXSA9IHsgLm9mZnNldCA9IDB4YWQsIC52YWx1ZSA9IDB4MDAsIH0sCj4g LQkJWzgzXSA9IHsgLm9mZnNldCA9IDB4MDgsIC52YWx1ZSA9IDB4MzAsIH0sIC8qIDB4MzEgKi8K PiAtCQlbODRdID0geyAub2Zmc2V0ID0gMHg0MSwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbODVd ID0geyAub2Zmc2V0ID0gMHhjMCwgLnZhbHVlID0gMHgwNywgfSwKPiArCQkuc3luYwk9IE5TMjUw MV9DMF9FTkFCTEUgfAo+ICsJCQkgIE5TMjUwMV9DMF9IU1lOQyB8IE5TMjUwMV9DMF9WU1lOQywK PiArCQkuY29uZiAgID0gTlMyNTAxXzhfVkVOIHwgTlMyNTAxXzhfSEVOIHwgTlMyNTAxXzhfUEQs Cj4gKwkJLnN5bmNiCT0gMHgwMCwKPiArCQkuZGl0aGVyCT0gMHgwZiwKPiArCQkucGxsX2EJPSAy NSwKPiArCQkucGxsX2IJPSA2MTIsCj4gKwkJLmhzdGFydAk9IDIxNSwKPiArCQkuaHN0b3AJPSAx MDE2LAo+ICsJCS52c3RhcnQJPSAyNiwKPiArCQkudnN0b3AJPSA2MjcsCj4gKwkJLnZzeW5jCT0g ODA3LAo+ICsJCS52dG90YWwJPSAxMzQxLAo+ICsJCS5ocG9zCT0gMCwKPiArCQkudnBvcwk9IDQs Cj4gKwkJLnZvZmZzCT0gMzUsCj4gKwkJLmhzY2FsZQk9IDUxMjQ4LAo+ICsJCS52c2NhbGUJPSA1 MTIzMgo+ICAJfSwKPiAgCVtNT0RFXzEwMjR4NzY4XSA9IHsKPiAtCQlbMF0gPSB7IC5vZmZzZXQg PSAweDBhLCAudmFsdWUgPSAweDgxLCB9LAo+IC0JCVsxXSA9IHsgLm9mZnNldCA9IDB4MTgsIC52 YWx1ZSA9IDB4MDcsIH0sCj4gLQkJWzJdID0geyAub2Zmc2V0ID0gMHgxOSwgLnZhbHVlID0gMHgw MCwgfSwKPiAtCQlbM10gPSB7IC5vZmZzZXQgPSAweDFhLCAudmFsdWUgPSAweDAwLCB9LAo+IC0J CVs0XSA9IHsgLm9mZnNldCA9IDB4MWIsIC52YWx1ZSA9IDB4MTEsIH0sCj4gLQkJWzVdID0geyAu b2Zmc2V0ID0gMHgxYywgLnZhbHVlID0gMHg1NCwgfSwKPiAtCQlbNl0gPSB7IC5vZmZzZXQgPSAw eDFkLCAudmFsdWUgPSAweDAzLCB9LAo+IC0JCVs3XSA9IHsgLm9mZnNldCA9IDB4MWUsIC52YWx1 ZSA9IDB4MDIsIH0sCj4gLQkJWzhdID0geyAub2Zmc2V0ID0gMHhmMywgLnZhbHVlID0gMHg5MCwg fSwKPiAtCQlbOV0gPSB7IC5vZmZzZXQgPSAweGY5LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVsx MF0gPSB7IC5vZmZzZXQgPSAweGMxLCAudmFsdWUgPSAweDkwLCB9LAo+IC0JCVsxMV0gPSB7IC5v ZmZzZXQgPSAweGMyLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVsxMl0gPSB7IC5vZmZzZXQgPSAw eGMzLCAudmFsdWUgPSAweDBmLCB9LAo+IC0JCVsxM10gPSB7IC5vZmZzZXQgPSAweGM0LCAudmFs dWUgPSAweDAzLCB9LAo+IC0JCVsxNF0gPSB7IC5vZmZzZXQgPSAweGM1LCAudmFsdWUgPSAweDE2 LCB9LAo+IC0JCVsxNV0gPSB7IC5vZmZzZXQgPSAweGM2LCAudmFsdWUgPSAweDAwLCB9LAo+IC0J CVsxNl0gPSB7IC5vZmZzZXQgPSAweGM3LCAudmFsdWUgPSAweDAyLCB9LAo+IC0JCVsxN10gPSB7 IC5vZmZzZXQgPSAweGM4LCAudmFsdWUgPSAweDAyLCB9LAo+IC0JCVsxOF0gPSB7IC5vZmZzZXQg PSAweGY0LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVsxOV0gPSB7IC5vZmZzZXQgPSAweDgwLCAu dmFsdWUgPSAweGZmLCB9LAo+IC0JCVsyMF0gPSB7IC5vZmZzZXQgPSAweDgxLCAudmFsdWUgPSAw eDA3LCB9LAo+IC0JCVsyMV0gPSB7IC5vZmZzZXQgPSAweDgyLCAudmFsdWUgPSAweDNkLCB9LAo+ IC0JCVsyMl0gPSB7IC5vZmZzZXQgPSAweDgzLCAudmFsdWUgPSAweDA1LCB9LAo+IC0JCVsyM10g PSB7IC5vZmZzZXQgPSAweDk0LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVsyNF0gPSB7IC5vZmZz ZXQgPSAweDk1LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVsyNV0gPSB7IC5vZmZzZXQgPSAweDk2 LCAudmFsdWUgPSAweDA1LCB9LAo+IC0JCVsyNl0gPSB7IC5vZmZzZXQgPSAweDk3LCAudmFsdWUg PSAweDAwLCB9LAo+IC0JCVsyN10gPSB7IC5vZmZzZXQgPSAweDlhLCAudmFsdWUgPSAweDg4LCB9 LAo+IC0JCVsyOF0gPSB7IC5vZmZzZXQgPSAweDliLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVsy OV0gPSB7IC5vZmZzZXQgPSAweDk4LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVszMF0gPSB7IC5v ZmZzZXQgPSAweDk5LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVszMV0gPSB7IC5vZmZzZXQgPSAw eGY3LCAudmFsdWUgPSAweDg4LCB9LAo+IC0JCVszMl0gPSB7IC5vZmZzZXQgPSAweGY4LCAudmFs dWUgPSAweDBhLCB9LAo+IC0JCVszM10gPSB7IC5vZmZzZXQgPSAweDljLCAudmFsdWUgPSAweDI0 LCB9LAo+IC0JCVszNF0gPSB7IC5vZmZzZXQgPSAweDlkLCAudmFsdWUgPSAweDAwLCB9LAo+IC0J CVszNV0gPSB7IC5vZmZzZXQgPSAweDllLCAudmFsdWUgPSAweDI1LCB9LAo+IC0JCVszNl0gPSB7 IC5vZmZzZXQgPSAweDlmLCAudmFsdWUgPSAweDAzLCB9LAo+IC0JCVszN10gPSB7IC5vZmZzZXQg PSAweGEwLCAudmFsdWUgPSAweDI4LCB9LAo+IC0JCVszOF0gPSB7IC5vZmZzZXQgPSAweGExLCAu dmFsdWUgPSAweDAxLCB9LAo+IC0JCVszOV0gPSB7IC5vZmZzZXQgPSAweGEyLCAudmFsdWUgPSAw eDI4LCB9LAo+IC0JCVs0MF0gPSB7IC5vZmZzZXQgPSAweGEzLCAudmFsdWUgPSAweDA1LCB9LAo+ IC0JCVs0MV0gPSB7IC5vZmZzZXQgPSAweGI2LCAudmFsdWUgPSAweDA5LCB9LAo+IC0JCVs0Ml0g PSB7IC5vZmZzZXQgPSAweGI4LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs0M10gPSB7IC5vZmZz ZXQgPSAweGI5LCAudmFsdWUgPSAweGEwLCB9LAo+IC0JCVs0NF0gPSB7IC5vZmZzZXQgPSAweGJh LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs0NV0gPSB7IC5vZmZzZXQgPSAweGJiLCAudmFsdWUg PSAweDIwLCB9LAo+IC0JCVs0Nl0gPSB7IC5vZmZzZXQgPSAweDEwLCAudmFsdWUgPSAweDAwLCB9 LAo+IC0JCVs0N10gPSB7IC5vZmZzZXQgPSAweDExLCAudmFsdWUgPSAweGEwLCB9LAo+IC0JCVs0 OF0gPSB7IC5vZmZzZXQgPSAweDEyLCAudmFsdWUgPSAweDAyLCB9LAo+IC0JCVs0OV0gPSB7IC5v ZmZzZXQgPSAweDIwLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs1MF0gPSB7IC5vZmZzZXQgPSAw eDIyLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs1MV0gPSB7IC5vZmZzZXQgPSAweDIzLCAudmFs dWUgPSAweDAwLCB9LAo+IC0JCVs1Ml0gPSB7IC5vZmZzZXQgPSAweDI0LCAudmFsdWUgPSAweDAw LCB9LAo+IC0JCVs1M10gPSB7IC5vZmZzZXQgPSAweDI1LCAudmFsdWUgPSAweDAwLCB9LAo+IC0J CVs1NF0gPSB7IC5vZmZzZXQgPSAweDhjLCAudmFsdWUgPSAweDEwLCB9LAo+IC0JCVs1NV0gPSB7 IC5vZmZzZXQgPSAweDhkLCAudmFsdWUgPSAweDAyLCB9LAo+IC0JCVs1Nl0gPSB7IC5vZmZzZXQg PSAweDhlLCAudmFsdWUgPSAweDEwLCB9LAo+IC0JCVs1N10gPSB7IC5vZmZzZXQgPSAweDhmLCAu dmFsdWUgPSAweDAwLCB9LAo+IC0JCVs1OF0gPSB7IC5vZmZzZXQgPSAweDkwLCAudmFsdWUgPSAw eGZmLCB9LAo+IC0JCVs1OV0gPSB7IC5vZmZzZXQgPSAweDkxLCAudmFsdWUgPSAweDA3LCB9LAo+ IC0JCVs2MF0gPSB7IC5vZmZzZXQgPSAweDkyLCAudmFsdWUgPSAweGEwLCB9LAo+IC0JCVs2MV0g PSB7IC5vZmZzZXQgPSAweDkzLCAudmFsdWUgPSAweDAyLCB9LAo+IC0JCVs2Ml0gPSB7IC5vZmZz ZXQgPSAweGE1LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs2M10gPSB7IC5vZmZzZXQgPSAweGE2 LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs2NF0gPSB7IC5vZmZzZXQgPSAweGE3LCAudmFsdWUg PSAweDAwLCB9LAo+IC0JCVs2NV0gPSB7IC5vZmZzZXQgPSAweGE4LCAudmFsdWUgPSAweDAwLCB9 LAo+IC0JCVs2Nl0gPSB7IC5vZmZzZXQgPSAweGE5LCAudmFsdWUgPSAweDA0LCB9LAo+IC0JCVs2 N10gPSB7IC5vZmZzZXQgPSAweGFhLCAudmFsdWUgPSAweDcwLCB9LAo+IC0JCVs2OF0gPSB7IC5v ZmZzZXQgPSAweGFiLCAudmFsdWUgPSAweDRmLCB9LAo+IC0JCVs2OV0gPSB7IC5vZmZzZXQgPSAw eGFjLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs3MF0gPSB7IC5vZmZzZXQgPSAweGE0LCAudmFs dWUgPSAweDg0LCB9LAo+IC0JCVs3MV0gPSB7IC5vZmZzZXQgPSAweDdlLCAudmFsdWUgPSAweDE4 LCB9LAo+IC0JCVs3Ml0gPSB7IC5vZmZzZXQgPSAweDg0LCAudmFsdWUgPSAweDAwLCB9LAo+IC0J CVs3M10gPSB7IC5vZmZzZXQgPSAweDg1LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs3NF0gPSB7 IC5vZmZzZXQgPSAweDg2LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs3NV0gPSB7IC5vZmZzZXQg PSAweDg3LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs3Nl0gPSB7IC5vZmZzZXQgPSAweDg4LCAu dmFsdWUgPSAweDAwLCB9LAo+IC0JCVs3N10gPSB7IC5vZmZzZXQgPSAweDg5LCAudmFsdWUgPSAw eDAwLCB9LAo+IC0JCVs3OF0gPSB7IC5vZmZzZXQgPSAweDhhLCAudmFsdWUgPSAweDAwLCB9LAo+ IC0JCVs3OV0gPSB7IC5vZmZzZXQgPSAweDhiLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs4MF0g PSB7IC5vZmZzZXQgPSAweDI2LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs4MV0gPSB7IC5vZmZz ZXQgPSAweDI3LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs4Ml0gPSB7IC5vZmZzZXQgPSAweGFk LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs4M10gPSB7IC5vZmZzZXQgPSAweDA4LCAudmFsdWUg PSAweDM0LCB9LCAvKiAweDM1ICovCj4gLQkJWzg0XSA9IHsgLm9mZnNldCA9IDB4NDEsIC52YWx1 ZSA9IDB4MDAsIH0sCj4gLQkJWzg1XSA9IHsgLm9mZnNldCA9IDB4YzAsIC52YWx1ZSA9IDB4MDEs IH0sCj4gLQl9LAo+ICsJCS5zeW5jCT0gTlMyNTAxX0MwX0VOQUJMRSB8IE5TMjUwMV9DMF9WU1lO QywKPiArCQkuY29uZiAgID0gTlMyNTAxXzhfVkVOIHwgTlMyNTAxXzhfSEVOIHwgTlMyNTAxXzhf UEQsCj4gKwkJLnN5bmNiCT0gMHgzMiwKPiArCQkuZGl0aGVyCT0gMHgwZiwKPiArCQkucGxsX2EJ PSAxMSwKPiArCQkucGxsX2IJPSAxMzUwLAo+ICsJCS5oc3RhcnQJPSAyNzYsCj4gKwkJLmhzdG9w CT0gMTI5OSwKPiArCQkudnN0YXJ0CT0gMTUsCj4gKwkJLnZzdG9wCT0gMTA1NiwKPiArCQkudnN5 bmMJPSAyMDQ3LAo+ICsJCS52dG90YWwJPSAxMzQxLAo+ICsJCS5ocG9zCT0gMCwKPiArCQkudnBv cwk9IDcsCj4gKwkJLnZvZmZzCT0gMjcsCj4gKwkJLmhzY2FsZQk9IDY1NTM1LAo+ICsJCS52c2Nh bGUJPSA2NTUzNQo+ICsJfQo+ICt9Owo+ICsKPiArLyoKPiArICogT3RoZXIgY29uZmlndXJhdGlv biB2YWx1ZXMgbGVmdCBieSB0aGUgQklPUyBvZiB0aGUKPiArICogRnVqaXRzdSBTNjAxMCBpbiB0 aGUgRFZPIGNvbnRyb2wgcmVnaXN0ZXJzLiBUaGVpcgo+ICsgKiB2YWx1ZSBkb2VzIG5vdCBkZXBl bmQgb24gdGhlIEJJT1MgYW5kIHRoZWlyIG1lYW5pbmcKPiArICogaXMgdW5rbm93bi4KPiArICov Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG5zMjUwMV9yZWcgbW9kZV9hZ25vc3RpY192YWx1 ZXNbXSA9IHsKPiArCS8qIDA4IGlzIG1vZGUgc3BlY2lmaWMgKi8KPiArCVswXSA9IHsgLm9mZnNl dCA9IDB4MGEsIC52YWx1ZSA9IDB4ODEsIH0sCj4gKwkvKiAxMCwxMSBhcmUgcGFydCBvZiB0aGUg bW9kZSBzcGVjaWZpYyBjb25maWd1cmF0aW9uICovCj4gKwlbMV0gPSB7IC5vZmZzZXQgPSAweDEy LCAudmFsdWUgPSAweDAyLCB9LAo+ICsJWzJdID0geyAub2Zmc2V0ID0gMHgxOCwgLnZhbHVlID0g MHgwNywgfSwKPiArCVszXSA9IHsgLm9mZnNldCA9IDB4MTksIC52YWx1ZSA9IDB4MDAsIH0sCj4g KwlbNF0gPSB7IC5vZmZzZXQgPSAweDFhLCAudmFsdWUgPSAweDAwLCB9LCAvKiBQTEw/LCBpZ25v cmVkICovCj4gKwkvKiAxYiwxYywxZCBhcmUgcGFydCBvZiB0aGUgbW9kZSBzcGVjaWZpYyBjb25m aWd1cmF0aW9uICovCj4gKwlbNV0gPSB7IC5vZmZzZXQgPSAweDFlLCAudmFsdWUgPSAweDAyLCB9 LAo+ICsJWzZdID0geyAub2Zmc2V0ID0gMHgxZiwgLnZhbHVlID0gMHg0MCwgfSwKPiArCVs3XSA9 IHsgLm9mZnNldCA9IDB4MjAsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwlbOF0gPSB7IC5vZmZzZXQg PSAweDIxLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJWzldID0geyAub2Zmc2V0ID0gMHgyMiwgLnZh bHVlID0gMHgwMCwgfSwKPiArCVsxMF0gPSB7IC5vZmZzZXQgPSAweDIzLCAudmFsdWUgPSAweDAw LCB9LAo+ICsJWzExXSA9IHsgLm9mZnNldCA9IDB4MjQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwlb MTJdID0geyAub2Zmc2V0ID0gMHgyNSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCVsxM10gPSB7IC5v ZmZzZXQgPSAweDI2LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJWzE0XSA9IHsgLm9mZnNldCA9IDB4 MjcsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwlbMTVdID0geyAub2Zmc2V0ID0gMHg3ZSwgLnZhbHVl ID0gMHgxOCwgfSwKPiArCS8qIDgwLTg0IGFyZSBwYXJ0IG9mIHRoZSBtb2RlLXNwZWNpZmljIGNv bmZpZ3VyYXRpb24gKi8KPiArCVsxNl0gPSB7IC5vZmZzZXQgPSAweDg0LCAudmFsdWUgPSAweDAw LCB9LAo+ICsJWzE3XSA9IHsgLm9mZnNldCA9IDB4ODUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwlb MThdID0geyAub2Zmc2V0ID0gMHg4NiwgLnZhbHVlID0gMHgwMCwgfSwKPiArCVsxOV0gPSB7IC5v ZmZzZXQgPSAweDg3LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJWzIwXSA9IHsgLm9mZnNldCA9IDB4 ODgsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwlbMjFdID0geyAub2Zmc2V0ID0gMHg4OSwgLnZhbHVl ID0gMHgwMCwgfSwKPiArCVsyMl0gPSB7IC5vZmZzZXQgPSAweDhhLCAudmFsdWUgPSAweDAwLCB9 LAo+ICsJWzIzXSA9IHsgLm9mZnNldCA9IDB4OGIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwlbMjRd ID0geyAub2Zmc2V0ID0gMHg4YywgLnZhbHVlID0gMHgxMCwgfSwKPiArCVsyNV0gPSB7IC5vZmZz ZXQgPSAweDhkLCAudmFsdWUgPSAweDAyLCB9LAo+ICsJLyogOGUsOGYgYXJlIHBhcnQgb2YgdGhl IG1vZGUtc3BlY2lmaWMgY29uZmlndXJhdGlvbiAqLwo+ICsJWzI2XSA9IHsgLm9mZnNldCA9IDB4 OTAsIC52YWx1ZSA9IDB4ZmYsIH0sCj4gKwlbMjddID0geyAub2Zmc2V0ID0gMHg5MSwgLnZhbHVl ID0gMHgwNywgfSwKPiArCVsyOF0gPSB7IC5vZmZzZXQgPSAweDkyLCAudmFsdWUgPSAweGEwLCB9 LAo+ICsJWzI5XSA9IHsgLm9mZnNldCA9IDB4OTMsIC52YWx1ZSA9IDB4MDIsIH0sCj4gKwlbMzBd ID0geyAub2Zmc2V0ID0gMHg5NCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCVszMV0gPSB7IC5vZmZz ZXQgPSAweDk1LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJWzMyXSA9IHsgLm9mZnNldCA9IDB4OTYs IC52YWx1ZSA9IDB4MDUsIH0sCj4gKwlbMzNdID0geyAub2Zmc2V0ID0gMHg5NywgLnZhbHVlID0g MHgwMCwgfSwKPiArCS8qIDk4LDk5IGFyZSBwYXJ0IG9mIHRoZSBtb2RlLXNwZWNpZmljIGNvbmZp Z3VyYXRpb24gKi8KPiArCVszNF0gPSB7IC5vZmZzZXQgPSAweDlhLCAudmFsdWUgPSAweDg4LCB9 LAo+ICsJWzM1XSA9IHsgLm9mZnNldCA9IDB4OWIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkvKiA5 Yyw5ZCBhcmUgcGFydCBvZiB0aGUgbW9kZS1zcGVjaWZpYyBjb25maWd1cmF0aW9uICovCj4gKwlb MzZdID0geyAub2Zmc2V0ID0gMHg5ZSwgLnZhbHVlID0gMHgyNSwgfSwKPiArCVszN10gPSB7IC5v ZmZzZXQgPSAweDlmLCAudmFsdWUgPSAweDAzLCB9LAo+ICsJWzM4XSA9IHsgLm9mZnNldCA9IDB4 YTAsIC52YWx1ZSA9IDB4MjgsIH0sCj4gKwlbMzldID0geyAub2Zmc2V0ID0gMHhhMSwgLnZhbHVl ID0gMHgwMSwgfSwKPiArCVs0MF0gPSB7IC5vZmZzZXQgPSAweGEyLCAudmFsdWUgPSAweDI4LCB9 LAo+ICsJWzQxXSA9IHsgLm9mZnNldCA9IDB4YTMsIC52YWx1ZSA9IDB4MDUsIH0sCj4gKwkvKiBy ZWdpc3RlciAweGE0IGlzIG1vZGUgc3BlY2lmaWMsIGJ1dCAweDgwLi4weDg0IHdvcmtzIGFsd2F5 cyAqLwo+ICsJWzQyXSA9IHsgLm9mZnNldCA9IDB4YTQsIC52YWx1ZSA9IDB4ODQsIH0sCj4gKwlb NDNdID0geyAub2Zmc2V0ID0gMHhhNSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCVs0NF0gPSB7IC5v ZmZzZXQgPSAweGE2LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJWzQ1XSA9IHsgLm9mZnNldCA9IDB4 YTcsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwlbNDZdID0geyAub2Zmc2V0ID0gMHhhOCwgLnZhbHVl ID0gMHgwMCwgfSwKPiArCS8qIDB4YTkgdG8gMHhhYiBhcmUgbW9kZSBzcGVjaWZpYywgYnV0IGhh dmUgbm8gdmlzaWJsZSBlZmZlY3QgKi8KPiArCVs0N10gPSB7IC5vZmZzZXQgPSAweGE5LCAudmFs dWUgPSAweDA0LCB9LAo+ICsJWzQ4XSA9IHsgLm9mZnNldCA9IDB4YWEsIC52YWx1ZSA9IDB4NzAs IH0sCj4gKwlbNDldID0geyAub2Zmc2V0ID0gMHhhYiwgLnZhbHVlID0gMHg0ZiwgfSwKPiArCVs1 MF0gPSB7IC5vZmZzZXQgPSAweGFjLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJWzUxXSA9IHsgLm9m ZnNldCA9IDB4YWQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwlbNTJdID0geyAub2Zmc2V0ID0gMHhi NiwgLnZhbHVlID0gMHgwOSwgfSwKPiArCVs1M10gPSB7IC5vZmZzZXQgPSAweGI3LCAudmFsdWUg PSAweDAzLCB9LAo+ICsJLyogYjgsYjkgYXJlIHBhcnQgb2YgdGhlIG1vZGUtc3BlY2lmaWMgY29u ZmlndXJhdGlvbiAqLwo+ICsJWzU0XSA9IHsgLm9mZnNldCA9IDB4YmEsIC52YWx1ZSA9IDB4MDAs IH0sCj4gKwlbNTVdID0geyAub2Zmc2V0ID0gMHhiYiwgLnZhbHVlID0gMHgyMCwgfSwKPiArCVs1 Nl0gPSB7IC5vZmZzZXQgPSAweGYzLCAudmFsdWUgPSAweDkwLCB9LAo+ICsJWzU3XSA9IHsgLm9m ZnNldCA9IDB4ZjQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwlbNThdID0geyAub2Zmc2V0ID0gMHhm NywgLnZhbHVlID0gMHg4OCwgfSwKPiArCS8qIGY4IGlzIG1vZGUgc3BlY2lmaWMsIGJ1dCB0aGUg dmFsdWUgZG9lcyBub3QgbWF0dGVyICovCj4gKwlbNTldID0geyAub2Zmc2V0ID0gMHhmOCwgLnZh bHVlID0gMHgwYSwgfSwKPiArCVs2MF0gPSB7IC5vZmZzZXQgPSAweGY5LCAudmFsdWUgPSAweDAw LCB9Cj4gIH07Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IG5zMjUwMV9yZWcgcmVnc19pbml0 W10gPSB7Cj4gQEAgLTM1MCwyNSArMzc4LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbnMyNTAx X3JlZyByZWdzX2luaXQKPiAgCj4gIHN0cnVjdCBuczI1MDFfcHJpdiB7Cj4gIAlib29sIHF1aWV0 Owo+IC0JY29uc3Qgc3RydWN0IG5zMjUwMV9yZWcgKnJlZ3M7Cj4gKwljb25zdCBzdHJ1Y3QgbnMy NTAxX2NvbmZpZ3VyYXRpb24gKmNvbmY7Cj4gIH07Cj4gIAo+ICAjZGVmaW5lIE5TUFRSKGQpICgo TlMyNTAxUHRyKShkLT5Ecml2ZXJQcml2YXRlLnB0cikpCj4gIAo+ICAvKgo+IC0gKiBGb3IgcmVh c29ucyB1bmNsZWFyIHRvIG1lLCB0aGUgbnMyNTAxIGF0IGxlYXN0IG9uIHRoZSBGdWppdHN1L1Np ZW1lbnMKPiAtICogbGFwdG9wcyBkb2VzIG5vdCByZWFjdCBvbiB0aGUgaTJjIGJ1cyB1bmxlc3MK PiAtICogYm90aCB0aGUgUExMIGlzIHJ1bm5pbmcgYW5kIHRoZSBkaXNwbGF5IGlzIGNvbmZpZ3Vy ZWQgaW4gaXRzIG5hdGl2ZQo+IC0gKiByZXNvbHV0aW9uLgo+IC0gKiBUaGlzIGZ1bmN0aW9uIGZv cmNlcyB0aGUgRFZPIG9uLCBhbmQgc3RvcmVzIHRoZSByZWdpc3RlcnMgaXQgdG91Y2hlcy4KPiAt ICogQWZ0ZXJ3YXJkcywgcmVnaXN0ZXJzIGFyZSByZXN0b3JlZCB0byByZWd1bGFyIHZhbHVlcy4K PiAtICoKPiAtICogVGhpcyBpcyBwcmV0dHkgbXVjaCBhIGhhY2ssIHRob3VnaCBpdCB3b3Jrcy4K PiAtICogV2l0aG91dCB0aGF0LCBuczI1MDFfcmVhZGIgYW5kIG5zMjUwMV93cml0ZWIgZmFpbAo+ IC0gKiB3aGVuIHN3aXRjaGluZyB0aGUgcmVzb2x1dGlvbi4KPiAtICovCj4gLQo+IC0vKgo+ICAq KiBSZWFkIGEgcmVnaXN0ZXIgZnJvbSB0aGUgbnMyNTAxLgo+ICAqKiBSZXR1cm5zIHRydWUgaWYg c3VjY2Vzc2Z1bCwgZmFsc2Ugb3RoZXJ3aXNlLgo+ICAqKiBJZiBpdCByZXR1cm5zIGZhbHNlLCBp dCBtaWdodCBiZSB3aXNlIHRvIGVuYWJsZSB0aGUKPiBAQCAtNTM0LDYgKzU0OSw3IEBAIHN0YXRp YyB2b2lkIG5zMjUwMV9tb2RlX3NldChzdHJ1Y3QgaW50ZWwKPiAgCQkJICAgIHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlLAo+ICAJCQkgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUpCj4gIHsKPiArCWNvbnN0IHN0cnVjdCBuczI1MDFfY29uZmlndXJhdGlvbiAq Y29uZjsKPiAgCXN0cnVjdCBuczI1MDFfcHJpdiAqbnMgPSAoc3RydWN0IG5zMjUwMV9wcml2ICop KGR2by0+ZGV2X3ByaXYpOwo+ICAJaW50IG1vZGVfaWR4LCBpOwo+ICAKPiBAQCAtNTQxLDYgKzU1 NywzNiBAQCBzdGF0aWMgdm9pZCBuczI1MDFfbW9kZV9zZXQoc3RydWN0IGludGVsCj4gIAkgICAg KCJzZXQgbW9kZSAoaGRpc3BsYXk9JWQsaHRvdGFsPSVkLHZkaXNwbGF5PSVkLHZ0b3RhbD0lZCku XG4iLAo+ICAJICAgICBtb2RlLT5oZGlzcGxheSwgbW9kZS0+aHRvdGFsLCBtb2RlLT52ZGlzcGxh eSwgbW9kZS0+dnRvdGFsKTsKPiAgCj4gKwlEUk1fREVCVUdfS01TKCJEZXRhaWxlZCByZXF1ZXN0 ZWQgbW9kZSBzZXR0aW5ncyBhcmU6XG4iCj4gKwkJCSJjbG9jawkJOiAlZCBrSHpcbiIKPiArCQkJ ImhkaXNwbGF5CTogJWRcbiIKPiArCQkJImhibGFuayBzdGFydAk6ICVkXG4iCj4gKwkJCSJoYmxh bmsgZW5kCTogJWRcbiIKPiArCQkJImhzeW5jIHN0YXJ0CTogJWRcbiIKPiArCQkJImhzeW5jIGVu ZAk6ICVkXG4iCj4gKwkJCSJodG90YWwJCTogJWRcbiIKPiArCQkJImhza2V3CQk6ICVkXG4iCj4g KwkJCSJ2ZGlzcGxheQk6ICVkXG4iCj4gKwkJCSJ2Ymxhbmsgc3RhcnQJOiAlZFxuIgo+ICsJCQki aGJsYW5rIGVuZAk6ICVkXG4iCj4gKwkJCSJ2c3luYyBzdGFydAk6ICVkXG4iCj4gKwkJCSJ2c3lu YyBlbmQJOiAlZFxuIgo+ICsJCQkidnRvdGFsCQk6ICVkXG4iLAo+ICsJCQlhZGp1c3RlZF9tb2Rl LT5jcnRjX2Nsb2NrLAo+ICsJCQlhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5LAo+ICsJCQlh ZGp1c3RlZF9tb2RlLT5jcnRjX2hibGFua19zdGFydCwKPiArCQkJYWRqdXN0ZWRfbW9kZS0+Y3J0 Y19oYmxhbmtfZW5kLAo+ICsJCQlhZGp1c3RlZF9tb2RlLT5jcnRjX2hzeW5jX3N0YXJ0LAo+ICsJ CQlhZGp1c3RlZF9tb2RlLT5jcnRjX2hzeW5jX2VuZCwKPiArCQkJYWRqdXN0ZWRfbW9kZS0+Y3J0 Y19odG90YWwsCj4gKwkJCWFkanVzdGVkX21vZGUtPmNydGNfaHNrZXcsCj4gKwkJCWFkanVzdGVk X21vZGUtPmNydGNfdmRpc3BsYXksCj4gKwkJCWFkanVzdGVkX21vZGUtPmNydGNfdmJsYW5rX3N0 YXJ0LAo+ICsJCQlhZGp1c3RlZF9tb2RlLT5jcnRjX3ZibGFua19lbmQsCj4gKwkJCWFkanVzdGVk X21vZGUtPmNydGNfdnN5bmNfc3RhcnQsCj4gKwkJCWFkanVzdGVkX21vZGUtPmNydGNfdnN5bmNf ZW5kLAo+ICsJCQlhZGp1c3RlZF9tb2RlLT5jcnRjX3Z0b3RhbCk7Cj4gKwo+ICAJaWYgKG1vZGUt PmhkaXNwbGF5ID09IDY0MCAmJiBtb2RlLT52ZGlzcGxheSA9PSA0ODApCj4gIAkJbW9kZV9pZHgg PSBNT0RFXzY0MHg0ODA7Cj4gIAllbHNlIGlmIChtb2RlLT5oZGlzcGxheSA9PSA4MDAgJiYgbW9k ZS0+dmRpc3BsYXkgPT0gNjAwKQo+IEBAIC01NTQsMTAgKzYwMCw0NCBAQCBzdGF0aWMgdm9pZCBu czI1MDFfbW9kZV9zZXQoc3RydWN0IGludGVsCj4gIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0la RShyZWdzX2luaXQpOyBpKyspCj4gIAkJbnMyNTAxX3dyaXRlYihkdm8sIHJlZ3NfaW5pdFtpXS5v ZmZzZXQsIHJlZ3NfaW5pdFtpXS52YWx1ZSk7Cj4gIAo+IC0JbnMtPnJlZ3MgPSByZWdzXzEwMjR4 NzY4W21vZGVfaWR4XTsKPiAtCj4gLQlmb3IgKGkgPSAwOyBpIDwgODQ7IGkrKykKPiAtCQluczI1 MDFfd3JpdGViKGR2bywgbnMtPnJlZ3NbaV0ub2Zmc2V0LCBucy0+cmVnc1tpXS52YWx1ZSk7Cj4g KwkvKiBXcml0ZSB0aGUgbW9kZS1hZ25vc3RpYyB2YWx1ZXMgKi8KPiArCWZvciAoaSA9IDA7IGkg PCBBUlJBWV9TSVpFKG1vZGVfYWdub3N0aWNfdmFsdWVzKTsgaSsrKQo+ICsJCW5zMjUwMV93cml0 ZWIoZHZvLCBtb2RlX2Fnbm9zdGljX3ZhbHVlc1tpXS5vZmZzZXQsCj4gKwkJCQltb2RlX2Fnbm9z dGljX3ZhbHVlc1tpXS52YWx1ZSk7Cj4gKwo+ICsJLyogV3JpdGUgbm93IHRoZSBtb2RlLXNwZWNp ZmljIGNvbmZpZ3VyYXRpb24gKi8KPiArCWNvbmYgPSBuczI1MDFfbW9kZXMgKyBtb2RlX2lkeDsK PiArCW5zLT5jb25mID0gY29uZjsKPiArCj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JF RzgsIGNvbmYtPmNvbmYpOwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUcxQiwgY29u Zi0+cGxsX2EpOwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUcxQywgY29uZi0+cGxs X2IgJiAweGZmKTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHMUQsIGNvbmYtPnBs bF9iID4+IDgpOwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUdDMSwgY29uZi0+aHN0 YXJ0ICYgMHhmZik7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFR0MyLCBjb25mLT5o c3RhcnQgPj4gOCk7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFR0MzLCBjb25mLT5o c3RvcCAmIDB4ZmYpOwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUdDNCwgY29uZi0+ aHN0b3AgPj4gOCk7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFR0M1LCBjb25mLT52 c3RhcnQgJiAweGZmKTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHQzYsIGNvbmYt PnZzdGFydCA+PiA4KTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHQzcsIGNvbmYt PnZzdG9wICYgMHhmZik7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFR0M4LCBjb25m LT52c3RvcCA+PiA4KTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHODAsIGNvbmYt PnZzeW5jICYgMHhmZik7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzgxLCBjb25m LT52c3luYyA+PiA4KTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHODIsIGNvbmYt PnZ0b3RhbCAmIDB4ZmYpOwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUc4MywgY29u Zi0+dnRvdGFsID4+IDgpOwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUc5OCwgY29u Zi0+aHBvcyAmIDB4ZmYpOwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUc5OSwgY29u Zi0+aHBvcyA+PiA4KTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHOEUsIGNvbmYt PnZwb3MgJiAweGZmKTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHOEYsIGNvbmYt PnZwb3MgPj4gOCk7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzlDLCBjb25mLT52 b2ZmcyAmIDB4ZmYpOwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUc5RCwgY29uZi0+ dm9mZnMgPj4gOCk7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFR0I4LCBjb25mLT5o c2NhbGUgJiAweGZmKTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHQjksIGNvbmYt PmhzY2FsZSA+PiA4KTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHMTAsIGNvbmYt PnZzY2FsZSAmIDB4ZmYpOwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUcxMSwgY29u Zi0+dnNjYWxlID4+IDgpOwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUdGOSwgY29u Zi0+ZGl0aGVyKTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHNDEsIGNvbmYtPnN5 bmNiKTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHQzAsIGNvbmYtPnN5bmMpOwo+ ICB9Cj4gIAo+ICAvKiBzZXQgdGhlIE5TMjUwMSBwb3dlciBzdGF0ZSAqLwo+IEBAIC01NzksMzQg KzY1OSwzMiBAQCBzdGF0aWMgdm9pZCBuczI1MDFfZHBtcyhzdHJ1Y3QgaW50ZWxfZHZvCj4gIAlE Uk1fREVCVUdfS01TKCJUcnlpbmcgc2V0IHRoZSBkcG1zIG9mIHRoZSBEVk8gdG8gJWlcbiIsIGVu YWJsZSk7Cj4gIAo+ICAJaWYgKGVuYWJsZSkgewo+IC0JCWlmIChXQVJOX09OKG5zLT5yZWdzWzgz XS5vZmZzZXQgIT0gMHgwOCB8fAo+IC0JCQkgICAgbnMtPnJlZ3NbODRdLm9mZnNldCAhPSAweDQx IHx8Cj4gLQkJCSAgICBucy0+cmVnc1s4NV0ub2Zmc2V0ICE9IDB4YzApKQo+IC0JCQlyZXR1cm47 Cj4gLQo+IC0JCW5zMjUwMV93cml0ZWIoZHZvLCAweGMwLCBucy0+cmVnc1s4NV0udmFsdWUgfCAw eDA4KTsKPiArCQluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFR0MwLCBucy0+Y29uZi0+c3lu YyB8IDB4MDgpOwo+ICAKPiAtCQluczI1MDFfd3JpdGViKGR2bywgMHg0MSwgbnMtPnJlZ3NbODRd LnZhbHVlKTsKPiArCQluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzQxLCBucy0+Y29uZi0+ c3luY2IpOwo+ICAKPiAtCQluczI1MDFfd3JpdGViKGR2bywgMHgzNCwgMHgwMSk7Cj4gKwkJbnMy NTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUczNCwgTlMyNTAxXzM0X0VOQUJMRV9PVVRQVVQpOwo+ ICAJCW1zbGVlcCgxNSk7Cj4gIAo+IC0JCW5zMjUwMV93cml0ZWIoZHZvLCAweDA4LCAweDM1KTsK PiAtCQlpZiAoIShucy0+cmVnc1s4M10udmFsdWUgJiBOUzI1MDFfOF9CUEFTKSkKPiAtCQkJbnMy NTAxX3dyaXRlYihkdm8sIDB4MDgsIDB4MzEpOwo+ICsJCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1 MDFfUkVHOCwKPiArCQkJCW5zLT5jb25mLT5jb25mIHwgTlMyNTAxXzhfQlBBUyk7Cj4gKwkJaWYg KCEobnMtPmNvbmYtPmNvbmYgJiBOUzI1MDFfOF9CUEFTKSkKPiArCQkJbnMyNTAxX3dyaXRlYihk dm8sIE5TMjUwMV9SRUc4LCBucy0+Y29uZi0+Y29uZik7Cj4gIAkJbXNsZWVwKDIwMCk7Cj4gIAo+ IC0JCW5zMjUwMV93cml0ZWIoZHZvLCAweDM0LCAweDAzKTsKPiArCQluczI1MDFfd3JpdGViKGR2 bywgTlMyNTAxX1JFRzM0LAo+ICsJCQlOUzI1MDFfMzRfRU5BQkxFX09VVFBVVCB8IE5TMjUwMV8z NF9FTkFCTEVfQkFDS0xJR0hUKTsKPiAgCj4gLQkJbnMyNTAxX3dyaXRlYihkdm8sIDB4YzAsIG5z LT5yZWdzWzg1XS52YWx1ZSk7Cj4gKwkJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUdDMCwg bnMtPmNvbmYtPnN5bmMpOwo+ICAJfSBlbHNlIHsKPiAtCQluczI1MDFfd3JpdGViKGR2bywgMHgz NCwgMHgwMSk7Cj4gKwkJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUczNCwgTlMyNTAxXzM0 X0VOQUJMRV9PVVRQVVQpOwo+ICAJCW1zbGVlcCgyMDApOwo+ICAKPiAtCQluczI1MDFfd3JpdGVi KGR2bywgMHgwOCwgMHgzNCk7Cj4gKwkJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUc4LCBO UzI1MDFfOF9WRU4gfCBOUzI1MDFfOF9IRU4gfAo+ICsJCQkJTlMyNTAxXzhfQlBBUyk7Cj4gIAkJ bXNsZWVwKDE1KTsKPiAgCj4gLQkJbnMyNTAxX3dyaXRlYihkdm8sIDB4MzQsIDB4MDApOwo+ICsJ CW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHMzQsIDB4MDApOwo+ICAJfQo+ICB9Cj4gIAoK Ci0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpo dHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=