From: Daniel Vetter Subject: Re: [PATCH] Enable dithering for ns2501 DVO (2) Date: Thu, 16 Apr 2015 10:05:17 +0200 Message-ID: <20150416080517.GH6092@phenom.ffwll.local> References: <552D8E61.7000106@math.tu-berlin.de> <13530_1429091365_552E3424_13530_8023_1_20150415095119.GV6092@phenom.ffwll.local> <552EA410.6090506@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-f180.google.com (mail-wi0-f180.google.com [209.85.212.180]) by gabe.freedesktop.org (Postfix) with ESMTP id CE4186E9AB for ; Thu, 16 Apr 2015 01:03:19 -0700 (PDT) Received: by wizk4 with SMTP id k4so184313655wiz.1 for ; Thu, 16 Apr 2015 01:03:19 -0700 (PDT) Content-Disposition: inline In-Reply-To: <552EA410.6090506@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 T24gV2VkLCBBcHIgMTUsIDIwMTUgYXQgMDc6NDY6NTZQTSArMDIwMCwgVGhvbWFzIFJpY2h0ZXIg d3JvdGU6Cj4gSGkgRGFuaWVsLCBoaSBWaWxsZSwKPiAKPiBwbGVhc2UgZmluZCB0aGUgcmV3b3Jr ZWQgTlMyNTAxIERWTyBwYXRjaCB3aXRoIGNoYW5nZXMgYXMgc3VnZ2VzdGVkCj4gYXR0YWNoZWQu Cj4gVW5mb3J0dW5hdGVseSwgdGhlIHJlbGF0aW9uIGJldHdlZW4gdGhlIERWTyBzY2FsZXIgc2V0 dGluZ3MgYW5kIHRoZSBhY3R1YWwKPiBtb2RlCj4gdmFsdWVzIHJlbWFpbiBzdGlsbCBzb21ld2hh dCBteXN0ZXJpb3VzLCBzbyB0aGUgbW9kZSBzZXR0aW5ncyByZW1haW4gYSB0YWJsZQo+IGxvb2t1 cAo+IGF0IHRoaXMgdGltZS4gT24gdGhlIGJyaWdodCBzaWRlLCB0aGUgaW1hZ2UgcXVhbGl0eSBp bXByb3ZlZCBub3RhYmx5IGR1ZSB0bwo+IGRpdGhlcmluZy4KPiAKPiBHcmVldGluZ3MsCj4gICAg IFRob21hcwo+IAoKPiBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgUmljaHRlciA8dGhvckBtYXRoLnR1 LWJlcmxpbi5kZT4KPiAKPiBUaGlzIHBhdGNoIGVuYWJsZXMgdGhlICh1bmZvcnR1bmF0ZWx5IHVu ZG9jdW1lbnRlZCkgc2NhbGVyIG9mIHRoZQo+IE5hdFNlbWkgMjUwMSBEVk8gZm91bmQgaW4gdGhl IEZ1aml0c3UtU2llbWVucyBTNjAxMCBsYXB0b3AgYW5kIG90aGVyCj4gbWFjaGluZXMgb2YgdGhl IHNhbWUgc2VyaWVzIGFuZCBhZ2UuCj4gCj4gUGFydHMgb2YgdGhlIERWTyBzY2FsZXIgbG9naWMg aGF2ZSBiZWVuIHJldmVhbGVkIGJ5IHJldmVyc2UKPiBlbmdpbmVlcmluZyBhbmQgdHJpYWwgYW5k IGVycm9yLCBzbyB5b3VyIG1pbGFnZSBtYXkgdmFyeS4gVGhlCj4gcGF0Y2ggKGFuZCB0aGUgd2hv bGUgbnMyNTAxIERWTyBjb2RlKSBpcyBjdXJyZW50bHkgb25seSBnb29kIGZvcgo+IHRoZSAxMDI0 eDc2OCBwYW5lbCBvZiB0aGUgUzYwMTAsIGFuZCBtYXkgaG9wZWZ1bGx5IHdvcmsgb24gb3RoZXIK PiBtYWNoaW5lcyB3aXRoIHRoZSBzYW1lIHBhbmVsIHNpemUuCj4gCj4gVGhlIG1vZGUtc3BlY2lm aWMgY29uZmlndXJhdGlvbiBvZiB0aGUgc2NhbGVyIGhhdmUgYmVlbiBtb3ZlZCBvdXQKPiBpbnRv IGEgc2VwYXJhdGUgY2xhc3MsIHRoZSBtb2RlLWFnbm9zdGljIHNldHRpbmdzIHJlbWFpbiBhcyBy YXcKPiByZWdpc3RlciBsaXN0IGFzIHRoZWlyIHB1cnBvc2UgcmVtYWlucyB1bmNsZWFyIGF0IHRo aXMgcG9pbnQuCgpJIGhhdmUgbm8gaWRlYSB3aGF0IGV4YWN0IGNvbW1hbmRzIHlvdSdyZSB1c2lu ZywgYnV0IEkgY2FuJ3QgYXBwbHkgdGhpcwp3aXRob3V0IG1hbnVhbGx5IGVkaXRpbmcgdGhlIGVu dGlyZSBtYWlsIGFuZCBzdGl0Y2hpbmcgdG9nZXRoZXIgdGhlIHBhdGNoCmFnYWluLiBJbW8gcmVh bGx5IGp1c3QgdXNlIGdpdCBzZW5kLWVtYWlsIHRvIHNlbmQgYXJvdW5kIHBhdGNoZXMgYW5kCl9k b250XyBlZGl0IGFueXRoaW5nIGJ5IGhhbmQuIGdpdCBnZXRzIHRoaXMgcmlnaHQuCgpBbm90aGVy IG5pdDogVGhlIHMtby1iIGxpbmUgc2hvdWxkIGJlIGF0IHRoZSBib3R0b20gb2YgdGhlIGNvbW1p dCBtZXNzYWdlLApzZWUgRG9jdW1lbnRhdGlvbi9TdWJtaXR0aW5nUGF0Y2hlcy4KClRoYW5rcywg RGFuaWVsCgo+IAo+IC0tLQo+IC0tLSBkdm9fbnMyNTAxLmMJMjAxNS0wNC0xNSAxOTozNjozMS4w MDAwMDAwMDAgKzAyMDAKPiArKysgZHZvX25zMjUwMS5jLW9yZwkyMDE1LTA0LTE0IDE1OjM0OjM0 LjAwMDAwMDAwMCArMDIwMAo+IEBAIC02MCwxMzAgKzYwLDYgQEAKPiAgCj4gICNkZWZpbmUgTlMy NTAxX1JFR0MgMHgwYwo+ICAKPiAtLyoKPiAtICogVGhlIGZvbGxvd2luZyByZWdpc3RlcnMgYXJl IG5vdCBwYXJ0IG9mIHRoZSBvZmZpY2lhbCBkYXRhc2hlZXQKPiAtICogYW5kIGFyZSB0aGUgcmVz dWx0IG9mIHJldmVyc2UgZW5naW5lZXJpbmcuCj4gLSAqLwo+IC0KPiAtLyoKPiAtICogUmVnaXN0 ZXIgYzAgY29udHJvbHMgaG93IHRoZSBEVk8gc3luY2hyb25pemVzIHdpdGgKPiAtICogaXRzIGlu cHV0Lgo+IC0gKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVHQzAgMHhjMAo+IC0jZGVmaW5lIE5TMjUw MV9DMF9FTkFCTEUgKDE8PDApCS8qIGVuYWJsZSB0aGUgRFZPIHN5bmMgaW4gZ2VuZXJhbCAqLwo+ IC0jZGVmaW5lIE5TMjUwMV9DMF9IU1lOQyAoMTw8MSkJLyogc3luY2hyb25pemUgaG9yaXpvbnRh bCB3aXRoIGlucHV0ICovCj4gLSNkZWZpbmUgTlMyNTAxX0MwX1ZTWU5DICgxPDwyKQkvKiBzeW5j aHJvbml6ZSB2ZXJ0aWNhbCB3aXRoIGlucHV0ICovCj4gLSNkZWZpbmUgTlMyNTAxX0MwX1JFU0VU ICgxPDw3KQkvKiByZXNldCB0aGUgc3luY2hyb25pemF0aW9uIGZsaXAvZmxvcHMgKi8KPiAtCj4g LS8qCj4gLSAqIFJlZ2lzdGVyIDQxIGlzIHNvbWVob3cgcmVsYXRlZCB0byB0aGUgc3luYyByZWdp c3RlciBhbmQgc3luYwo+IC0gKiBjb25maWd1cmF0aW9uLiBJdCBzaG91bGQgYmUgMHgzMiB3aGVu ZXZlciByZWdDMCBpcyAweDA1IChoc3luYyBvZmYpCj4gLSAqIGFuZCAweDAwIG90aGVyd2lzZS4K PiAtICovCj4gLSNkZWZpbmUgTlMyNTAxX1JFRzQxIDB4NDEKPiAtCj4gLS8qCj4gLSAqIHRoaXMg cmVnaXN0ZXIgY29udHJvbHMgdGhlIGRpdGhlcmluZyBvZiB0aGUgRFZPCj4gLSAqIE9uZSBiaXQg ZW5hYmxlcyBpdCwgdGhlIG90aGVyIGRlZmluZSB0aGUgZGl0aGVyaW5nIGRlcHRoLgo+IC0gKiBU aGUgaGlnaGVyIHRoZSB2YWx1ZSwgdGhlIGxvd2VyIHRoZSBkaXRoZXJpbmcgZGVwdGguCj4gLSAq Lwo+IC0jZGVmaW5lIE5TMjUwMV9GOV9SRUcgMHhmOQo+IC0jZGVmaW5lIE5TMjUwMV9GOV9FTkFC TEUgKDE8PDApCQkvKiBpZiBzZXQsIGRpdGhlcmluZyBpcyBlbmFibGVkICovCj4gLSNkZWZpbmUg TlMyNTAxX0Y5X0RJVEhFUl9NQVNLICgweDdmPDwxKQkvKiBjb250cm9scyB0aGUgZGl0aGVyIGRl cHRoICovCj4gLSNkZWZpbmUgTlMyNTAxX0Y5X0RJVEhFUl9TSElGVCAxCS8qIHNoaWZ0cyB0aGUg ZGl0aGVyIG1hc2sgKi8KPiAtCj4gLS8qCj4gLSAqIFBMTCBjb25maWd1cmF0aW9uIHJlZ2lzdGVy LiBUaGlzIGlzIGEgcGFpciBvZiByZWdpc3RlcnMsCj4gLSAqIG9uZSBzaW5nbGUgYnl0ZSByZWdp c3RlciBhdCAxQiwgYW5kIGEgcGFpciBhdCAxQywxRC4KPiAtICogVGhlc2UgcmVnaXN0ZXJzIGFy ZSBjb3VudGVycy9kaXZpZGVycy4KPiAtICovCj4gLSNkZWZpbmUgTlMyNTAxX1JFRzFCIDB4MWIg Lyogb25lIGJ5dGUgUExMIGNvbnRyb2wgcmVnaXN0ZXIgKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVH MUMgMHgxYyAvKiBsb3ctcGFydCBvZiB0aGUgc2Vjb25kIHJlZ2lzdGVyICovCj4gLSNkZWZpbmUg TlMyNTAxX1JFRzFEIDB4MWQgLyogaGlnaC1wYXJ0IG9mIHRoZSBzZWNvbmQgcmVnaXN0ZXIgKi8K PiAtCj4gLS8qCj4gLSAqIFNjYWxlciBjb250cm9sIHJlZ2lzdGVycy4gSG9yaXpvbnRhbCBhdCBi OCxiOSwKPiAtICogdmVydGljYWwgYXQgMTAsMTEuIFRoZSBzY2FsZSBmYWN0b3IgaXMgY29tcHV0 ZWQgYXMKPiAtICogMl4xNi9jb250cm9sLXZhbHVlLiBUaGUgbG93LWJ5dGUgY29tZXMgZmlyc3Qu Cj4gLSAqLwo+IC0jZGVmaW5lIE5TMjUwMV9SRUcxMCAweDEwIC8qIGxvdy1ieXRlIHZlcnRpY2Fs IHNjYWxlciAqLwo+IC0jZGVmaW5lIE5TMjUwMV9SRUcxMSAweDExIC8qIGhpZ2gtYnl0ZSB2ZXJ0 aWNhbCBzY2FsZXIgKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVHQjggMHhiOCAvKiBsb3ctYnl0ZSBo b3Jpem9udGFsIHNjYWxlciAqLwo+IC0jZGVmaW5lIE5TMjUwMV9SRUdCOSAweGI5IC8qIGhpZ2gt Ynl0ZSBob3Jpem9udGFsIHNjYWxlciAqLwo+IC0KPiAtLyoKPiAtICogRGlzcGxheSB3aW5kb3cg ZGVmaW5pdGlvbi4gVGhpcyBjb25zaXN0cyBvZiBmb3VyIHJlZ2lzdGVycwo+IC0gKiBwZXIgZGlt ZW5zaW9uLiBPbmUgcmVnaXN0ZXIgcGFpciBkZWZpbmVzIHRoZSBzdGFydCBvZiB0aGUKPiAtICog ZGlzcGxheSwgb25lIHRoZSBlbmQuCj4gLSAqIEFzIGZhciBhcyBJIHVuZGVyc3RhbmQsIHRoaXMg ZGVmaW5lcyB0aGUgd2luZG93IHdpdGhpbiB3aGljaAo+IC0gKiB0aGUgc2NhbGVyIHNhbXBsZXMg dGhlIGlucHV0Lgo+IC0gKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVHQzEgMHhjMSAvKiBsb3ctYnl0 ZSBob3Jpem9udGFsIGRpc3BsYXkgc3RhcnQgKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVHQzIgMHhj MiAvKiBoaWdoLWJ5dGUgaG9yaXpvbnRhbCBkaXNwbGF5IHN0YXJ0ICovCj4gLSNkZWZpbmUgTlMy NTAxX1JFR0MzIDB4YzMgLyogbG93LWJ5dGUgaG9yaXpvbnRhbCBkaXNwbGF5IHN0b3AgKi8KPiAt I2RlZmluZSBOUzI1MDFfUkVHQzQgMHhjNCAvKiBoaWdoLWJ5dGUgaG9yaXpvbnRhbCBkaXNwbGF5 IHN0b3AgKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVHQzUgMHhjNSAvKiBsb3ctYnl0ZSB2ZXJ0aWNh bCBkaXNwbGF5IHN0YXJ0ICovCj4gLSNkZWZpbmUgTlMyNTAxX1JFR0M2IDB4YzYgLyogaGlnaC1i eXRlIHZlcnRpY2FsIGRpc3BsYXkgc3RhcnQgKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVHQzcgMHhj NyAvKiBsb3ctYnl0ZSB2ZXJ0aWNhbCBkaXNwbGF5IHN0b3AgKi8KPiAtI2RlZmluZSBOUzI1MDFf UkVHQzggMHhjOCAvKiBoaWdoLWJ5dGUgdmVydGljYWwgZGlzcGxheSBzdG9wICovCj4gLQo+IC0v Kgo+IC0gKiBUaGUgZm9sbG93aW5nIHJlZ2lzdGVyIHBhaXIgc2VlbXMgdG8gZGVmaW5lIHRoZSBz dGFydCBvZgo+IC0gKiB0aGUgdmVydGljYWwgc3luYy4gSWYgYXV0b21hdGljIHN5bmNpbmcgaXMg ZW5hYmxlZCwgYW5kIHRoZQo+IC0gKiByZWdpc3RlciB2YWx1ZSBkZWZpbmVzIGEgc3luYyBwdWxz ZSB0aGF0IGlzIGxhdGVyIHRoYW4gdGhlCj4gLSAqIGluY29taW5nIHN5bmMsIHRoZW4gdGhlIHJl Z2lzdGVyIHZhbHVlIGlzIGlnbm9yZWQgYW5kIHRoZQo+IC0gKiBleHRlcm5hbCBoc3luYyB0cmln Z2VycyB0aGUgc3luY2hyb25pemF0aW9uLgo+IC0gKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVHODAg MHg4MCAvKiBsb3ctYnl0ZSB2c3luYy1zdGFydCAqLwo+IC0jZGVmaW5lIE5TMjUwMV9SRUc4MSAw eDgxIC8qIGhpZ2gtYnl0ZSB2c3luYy1zdGFydCAqLwo+IC0KPiAtLyoKPiAtICogVGhlIGZvbGxv d2luZyByZWdpc3RlciBwYWlyIHNlZW1zIHRvIGRlZmluZSB0aGUgdG90YWwgbnVtYmVyCj4gLSAq IG9mIGxpbmVzIGNyZWF0ZWQgYXQgdGhlIG91dHB1dCBzaWRlIG9mIHRoZSBzY2FsZXIuCj4gLSAq IFRoaXMgaXMgYWdhaW4gYSBsb3ctaGlnaCByZWdpc3RlciBwYWlyLgo+IC0gKi8KPiAtI2RlZmlu ZSBOUzI1MDFfUkVHODIgMHg4MiAvKiBvdXRwdXQgZGlzcGxheSBoZWlnaHQsIGxvdyBieXRlICov Cj4gLSNkZWZpbmUgTlMyNTAxX1JFRzgzIDB4ODMgLyogb3V0cHV0IGRpc3BsYXkgaGVpZ2h0LCBo aWdoIGJ5dGUgKi8KPiAtCj4gLS8qCj4gLSAqIFRoZSBmb2xsb3dpbmcgcmVnaXN0ZXJzIGRlZmlu ZSB0aGUgZW5kIG9mIHRoZSBmcm9udC1wb3JjaAo+IC0gKiBpbiBob3Jpem9udGFsIGFuZCB2ZXJ0 aWNhbCBwb3NpdGlvbiBhbmQgaGVuY2UgYWxsb3cgdG8gc2hpZnQKPiAtICogdGhlIGltYWdlIGxl ZnQvcmlnaHQgb3IgdXAvZG93bi4KPiAtICovCj4gLSNkZWZpbmUgTlMyNTAxX1JFRzk4IDB4OTgg LyogaG9yaXpvbnRhbCBzdGFydCBvZiBkaXNwbGF5ICsgMjU2LCBsb3cgKi8KPiAtI2RlZmluZSBO UzI1MDFfUkVHOTkgMHg5OSAvKiBob3Jpem9udGFsIHN0YXJ0IG9mIGRpc3BsYXkgKyAyNTYsIGhp Z2ggKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVHOEUgMHg4ZSAvKiB2ZXJ0aWNhbCBzdGFydCBvZiB0 aGUgZGlzcGxheSwgbG93IGJ5dGUgKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVHOEYgMHg4ZiAvKiB2 ZXJ0aWNhbCBzdGFydCBvZiB0aGUgZGlzcGxheSwgaGlnaCBieXRlICovCj4gLQo+IC0vKgo+IC0g KiBUaGUgZm9sbG93aW5nIHJlZ2lzdGVyIHBhaXIgY29udHJvbCB0aGUgZnVuY3Rpb24gb2YgdGhl Cj4gLSAqIGJhY2tsaWdodCBhbmQgdGhlIERWTyBvdXRwdXQuIFRvIGVuYWJsZSB0aGUgY29ycmVz cG9uZGluZwo+IC0gKiBmdW5jdGlvbiwgdGhlIGNvcnJlc3BvbmRpbmcgYml0IG11c3QgYmUgc2V0 IGluIGJvdGggcmVnaXN0ZXJzLgo+IC0gKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVHMzQgMHgzNCAv KiBEVk8gZW5hYmxlIGZ1bmN0aW9ucywgZmlyc3QgcmVnaXN0ZXIgKi8KPiAtI2RlZmluZSBOUzI1 MDFfUkVHMzUgMHgzNSAvKiBEVk8gZW5hYmxlIGZ1bmN0aW9ucywgc2Vjb25kIHJlZ2lzdGVyICov Cj4gLSNkZWZpbmUgTlMyNTAxXzM0X0VOQUJMRV9PVVRQVVQgKDE8PDApIC8qIGVuYWJsZSBEVk8g b3V0cHV0ICovCj4gLSNkZWZpbmUgTlMyNTAxXzM0X0VOQUJMRV9CQUNLTElHSFQgKDE8PDEpIC8q IGVuYWJsZSBiYWNrbGlnaHQgKi8KPiAtCj4gLS8qCj4gLSAqIFJlZ2lzdGVycyA5QyBhbmQgOUQg ZGVmaW5lIHRoZSB2ZXJ0aWNhbCBvdXRwdXQgb2Zmc2V0Cj4gLSAqIG9mIHRoZSB2aXNpYmxlIHJl Z2lvbi4KPiAtICovCj4gLSNkZWZpbmUgTlMyNTAxX1JFRzlDIDB4OWMKPiAtI2RlZmluZSBOUzI1 MDFfUkVHOUQgMHg5ZAo+IC0KPiAtLyoKPiAtICogVGhlIHJlZ2lzdGVyIDlGIGRlZmluZXMgdGhl IGRpdGhlcmluZy4gVGhpcyByZXF1aXJlcyB0aGUKPiAtICogc2NhbGVyIHRvIGJlIE9OLiBCaXQg MCBlbmFibGVzIGRpdGhlcmluZywgdGhlIHJlbWFpbmluZwo+IC0gKiBiaXRzIGNvbnRyb2wgdGhl IGRlcHRoIG9mIHRoZSBkaXRoZXIuIFRoZSBoaWdoZXIgdGhlIHZhbHVlLAo+IC0gKiB0aGUgTE9X RVIgdGhlIGRpdGhlcmluZyBhbXBsaXR1ZGUuIEEgZ29vZCB2YWx1ZSBzZWVtcyB0byBiZQo+IC0g KiAxNSAodG90YWwgcmVnaXN0ZXIgdmFsdWUpLgo+IC0gKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVH RjkgMHhmOQo+IC0jZGVmaW5lIE5TMjUwMV9GOV9FTkFCTEVfRElUSEVSICgxPDwwKSAvKiBlbmFi bGUgZGl0aGVyaW5nICovCj4gLSNkZWZpbmUgTlMyNTAxX0Y5X0RJVEhFUl9NQVNLICgweDdmPDwx KSAvKiBkaXRoZXIgbWFza2luZyAqLwo+IC0jZGVmaW5lIE5TMjUwMV9GOV9ESVRIRVJfU0hJRlQg MQkvKiB1cHNoaWZ0IG9mIHRoZSBkaXRoZXIgbWFzayAqLwo+IC0KPiAgZW51bSB7Cj4gIAlNT0RF XzY0MHg0ODAsCj4gIAlNT0RFXzgwMHg2MDAsCj4gQEAgLTE5NiwxNzggKzcyLDI3NCBAQAo+ICB9 Owo+ICAKPiAgLyoKPiAtICogVGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmUga2VlcHMgdGhlIGNvbXBs ZXRlIGNvbmZpZ3VyYXRpb24gb2YKPiAtICogdGhlIERWTywgZ2l2ZW4gYSBzcGVjaWZpYyBvdXRw dXQgY29uZmlndXJhdGlvbi4KPiAtICogVGhpcyBpcyBwcmV0dHkgbXVjaCBndWVzcy13b3JrIGZy b20gcmV2ZXJzZS1lbmdpbmVlcmluZywgc28KPiAtICogcmVhZCBhbGwgdGhpcyB3aXRoIGEgZ3Jh aW4gb2Ygc2FsdC4KPiAtICovCj4gLXN0cnVjdCBuczI1MDFfY29uZmlndXJhdGlvbiB7Cj4gLQl1 aW50OF90IHN5bmM7CQkvKiBjb25maWd1cmF0aW9uIG9mIHRoZSBDMCByZWdpc3RlciAqLwo+IC0J dWludDhfdCBjb25mOwkJLyogY29uZmlndXJhdGlvbiByZWdpc3RlciA4ICovCj4gLQl1aW50OF90 IHN5bmNiOwkJLyogY29uZmlndXJhdGlvbiByZWdpc3RlciA0MSAqLwo+IC0JdWludDhfdAlkaXRo ZXI7CQkvKiBjb25maWd1cmF0aW9uIG9mIHRoZSBkaXRoZXJpbmcgKi8KPiAtCXVpbnQ4X3QgcGxs X2E7CQkvKiBQTEwgY29uZmlndXJhdGlvbiwgcmVnaXN0ZXIgQSwgMUIgKi8KPiAtCXVpbnQxNl90 IHBsbF9iOwkJLyogUExMIGNvbmZpZ3VyYXRpb24sIHJlZ2lzdGVyIEIsIDFDLzFEICovCj4gLQl1 aW50MTZfdCBoc3RhcnQ7CS8qIGhvcml6b250YWwgc3RhcnQsIHJlZ2lzdGVycyBDMS9DMiAqLwo+ IC0JdWludDE2X3QgaHN0b3A7CQkvKiBob3Jpem9udGFsIHRvdGFsLCByZWdpc3RlcnMgQzMvQzQg Ki8KPiAtCXVpbnQxNl90IHZzdGFydDsJLyogdmVydGljYWwgc3RhcnQsIHJlZ2lzdGVycyBDNS9D NiAqLwo+IC0JdWludDE2X3QgdnN0b3A7CQkvKiB2ZXJ0aWNhbCB0b3RhbCwgcmVnaXN0ZXJzIEM3 L0M4ICovCj4gLQl1aW50MTZfdCB2c3luYzsgICAgICAgICAvKiBtYW51YWwgdmVydGljYWwgc3lu YyBzdGFydCwgODAvODEgKi8KPiAtCXVpbnQxNl90IHZ0b3RhbDsgICAgICAgIC8qIG51bWJlciBv ZiBsaW5lcyBnZW5lcmF0ZWQsIDgyLzgzICovCj4gLQl1aW50MTZfdCBocG9zOwkJLyogaG9yaXpv bnRhbCBwb3NpdGlvbiArIDI1NiwgOTgvOTkgICovCj4gLQl1aW50MTZfdCB2cG9zOwkJLyogdmVy dGljYWwgcG9zaXRpb24sIDhlLzhmICovCj4gLQl1aW50MTZfdCB2b2ZmczsJCS8qIHZlcnRpY2Fs IG91dHB1dCBvZmZzZXQsIDljLzlkICovCj4gLQl1aW50MTZfdCBoc2NhbGU7CS8qIGhvcml6b250 YWwgc2NhbGluZyBmYWN0b3IsIGI4L2I5ICovCj4gLQl1aW50MTZfdCB2c2NhbGU7CS8qIHZlcnRp Y2FsIHNjYWxpbmcgZmFjdG9yLCAxMC8xMSAqLwo+IC19Owo+IC0KPiAtLyoKPiAtICogRFZPIGNv bmZpZ3VyYXRpb24gdmFsdWVzLCBwYXJ0aWFsbHkgYmFzZWQgb24gd2hhdCB0aGUgQklPUwo+IC0g KiBvZiB0aGUgRnVqaXRzdSBMaWZlYm9vayBTNjAxMCB3cml0ZXMgaW50byByZWdpc3RlcnMsCj4g LSAqIHBhcnRpYWxseSBmb3VuZCBieSBtYW51YWwgdHdlYWtpbmcuIFRoZXNlIGNvbmZpZ3VyYXRp b25zIGFzc3VtZQo+IC0gKiBhIDEwMjR4NzY4IHBhbmVsLgo+ICsgKiBNYWdpYyB2YWx1ZXMgYmFz ZWQgb24gd2hhdCB0aGUgQklPUyBvbgo+ICsgKiBGdWppdHN1LVNpZW1lbnMgTGlmZWJvb2sgUzYw MTAgcHJvZ3JhbXMgKDEwMjR4NzY4IHBhbmVsKS4KPiAgICovCj4gLXN0YXRpYyBjb25zdCBzdHJ1 Y3QgbnMyNTAxX2NvbmZpZ3VyYXRpb24gbnMyNTAxX21vZGVzW10gPSB7Cj4gK3N0YXRpYyBjb25z dCBzdHJ1Y3QgbnMyNTAxX3JlZyByZWdzXzEwMjR4NzY4W11bODZdID0gewo+ICAJW01PREVfNjQw eDQ4MF0gPSB7Cj4gLQkJLnN5bmMJPSBOUzI1MDFfQzBfRU5BQkxFIHwgTlMyNTAxX0MwX1ZTWU5D LAo+IC0JCS5jb25mCT0gTlMyNTAxXzhfVkVOIHwgTlMyNTAxXzhfSEVOIHwgTlMyNTAxXzhfUEQs Cj4gLQkJLnN5bmNiCT0gMHgzMiwKPiAtCQkuZGl0aGVyCT0gMHgwZiwKPiAtCQkucGxsX2EJPSAx NywKPiAtCQkucGxsX2IJPSA4NTIsCj4gLQkJLmhzdGFydAk9IDE0NCwKPiAtCQkuaHN0b3AJPSA3 ODMsCj4gLQkJLnZzdGFydAk9IDIyLAo+IC0JCS52c3RvcAk9IDUxNCwKPiAtCQkudnN5bmMJPSAy MDQ3LCAvKiBhY3R1YWxseSwgaWdub3JlZCB3aXRoIHRoaXMgY29uZmlnICovCj4gLQkJLnZ0b3Rh bAk9IDEzNDEsCj4gLQkJLmhwb3MJPSAwLAo+IC0JCS52cG9zCT0gMTYsCj4gLQkJLnZvZmZzCT0g MzYsCj4gLQkJLmhzY2FsZQk9IDQwOTYwLAo+IC0JCS52c2NhbGUJPSA0MDk2MAo+ICsJCVswXSA9 IHsgLm9mZnNldCA9IDB4MGEsIC52YWx1ZSA9IDB4ODEsIH0sCj4gKwkJWzFdID0geyAub2Zmc2V0 ID0gMHgxOCwgLnZhbHVlID0gMHgwNywgfSwKPiArCQlbMl0gPSB7IC5vZmZzZXQgPSAweDE5LCAu dmFsdWUgPSAweDAwLCB9LAo+ICsJCVszXSA9IHsgLm9mZnNldCA9IDB4MWEsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gKwkJWzRdID0geyAub2Zmc2V0ID0gMHgxYiwgLnZhbHVlID0gMHgxMSwgfSwKPiAr CQlbNV0gPSB7IC5vZmZzZXQgPSAweDFjLCAudmFsdWUgPSAweDU0LCB9LAo+ICsJCVs2XSA9IHsg Lm9mZnNldCA9IDB4MWQsIC52YWx1ZSA9IDB4MDMsIH0sCj4gKwkJWzddID0geyAub2Zmc2V0ID0g MHgxZSwgLnZhbHVlID0gMHgwMiwgfSwKPiArCQlbOF0gPSB7IC5vZmZzZXQgPSAweGYzLCAudmFs dWUgPSAweDkwLCB9LAo+ICsJCVs5XSA9IHsgLm9mZnNldCA9IDB4ZjksIC52YWx1ZSA9IDB4MDAs IH0sCj4gKwkJWzEwXSA9IHsgLm9mZnNldCA9IDB4YzEsIC52YWx1ZSA9IDB4OTAsIH0sCj4gKwkJ WzExXSA9IHsgLm9mZnNldCA9IDB4YzIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzEyXSA9IHsg Lm9mZnNldCA9IDB4YzMsIC52YWx1ZSA9IDB4MGYsIH0sCj4gKwkJWzEzXSA9IHsgLm9mZnNldCA9 IDB4YzQsIC52YWx1ZSA9IDB4MDMsIH0sCj4gKwkJWzE0XSA9IHsgLm9mZnNldCA9IDB4YzUsIC52 YWx1ZSA9IDB4MTYsIH0sCj4gKwkJWzE1XSA9IHsgLm9mZnNldCA9IDB4YzYsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gKwkJWzE2XSA9IHsgLm9mZnNldCA9IDB4YzcsIC52YWx1ZSA9IDB4MDIsIH0sCj4g KwkJWzE3XSA9IHsgLm9mZnNldCA9IDB4YzgsIC52YWx1ZSA9IDB4MDIsIH0sCj4gKwkJWzE4XSA9 IHsgLm9mZnNldCA9IDB4ZjQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzE5XSA9IHsgLm9mZnNl dCA9IDB4ODAsIC52YWx1ZSA9IDB4ZmYsIH0sCj4gKwkJWzIwXSA9IHsgLm9mZnNldCA9IDB4ODEs IC52YWx1ZSA9IDB4MDcsIH0sCj4gKwkJWzIxXSA9IHsgLm9mZnNldCA9IDB4ODIsIC52YWx1ZSA9 IDB4M2QsIH0sCj4gKwkJWzIyXSA9IHsgLm9mZnNldCA9IDB4ODMsIC52YWx1ZSA9IDB4MDUsIH0s Cj4gKwkJWzIzXSA9IHsgLm9mZnNldCA9IDB4OTQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzI0 XSA9IHsgLm9mZnNldCA9IDB4OTUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzI1XSA9IHsgLm9m ZnNldCA9IDB4OTYsIC52YWx1ZSA9IDB4MDUsIH0sCj4gKwkJWzI2XSA9IHsgLm9mZnNldCA9IDB4 OTcsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzI3XSA9IHsgLm9mZnNldCA9IDB4OWEsIC52YWx1 ZSA9IDB4ODgsIH0sCj4gKwkJWzI4XSA9IHsgLm9mZnNldCA9IDB4OWIsIC52YWx1ZSA9IDB4MDAs IH0sCj4gKwkJWzI5XSA9IHsgLm9mZnNldCA9IDB4OTgsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJ WzMwXSA9IHsgLm9mZnNldCA9IDB4OTksIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzMxXSA9IHsg Lm9mZnNldCA9IDB4ZjcsIC52YWx1ZSA9IDB4ODgsIH0sCj4gKwkJWzMyXSA9IHsgLm9mZnNldCA9 IDB4ZjgsIC52YWx1ZSA9IDB4MGEsIH0sCj4gKwkJWzMzXSA9IHsgLm9mZnNldCA9IDB4OWMsIC52 YWx1ZSA9IDB4MjQsIH0sCj4gKwkJWzM0XSA9IHsgLm9mZnNldCA9IDB4OWQsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gKwkJWzM1XSA9IHsgLm9mZnNldCA9IDB4OWUsIC52YWx1ZSA9IDB4MjUsIH0sCj4g KwkJWzM2XSA9IHsgLm9mZnNldCA9IDB4OWYsIC52YWx1ZSA9IDB4MDMsIH0sCj4gKwkJWzM3XSA9 IHsgLm9mZnNldCA9IDB4YTAsIC52YWx1ZSA9IDB4MjgsIH0sCj4gKwkJWzM4XSA9IHsgLm9mZnNl dCA9IDB4YTEsIC52YWx1ZSA9IDB4MDEsIH0sCj4gKwkJWzM5XSA9IHsgLm9mZnNldCA9IDB4YTIs IC52YWx1ZSA9IDB4MjgsIH0sCj4gKwkJWzQwXSA9IHsgLm9mZnNldCA9IDB4YTMsIC52YWx1ZSA9 IDB4MDUsIH0sCj4gKwkJWzQxXSA9IHsgLm9mZnNldCA9IDB4YjYsIC52YWx1ZSA9IDB4MDksIH0s Cj4gKwkJWzQyXSA9IHsgLm9mZnNldCA9IDB4YjgsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzQz XSA9IHsgLm9mZnNldCA9IDB4YjksIC52YWx1ZSA9IDB4YTAsIH0sCj4gKwkJWzQ0XSA9IHsgLm9m ZnNldCA9IDB4YmEsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzQ1XSA9IHsgLm9mZnNldCA9IDB4 YmIsIC52YWx1ZSA9IDB4MjAsIH0sCj4gKwkJWzQ2XSA9IHsgLm9mZnNldCA9IDB4MTAsIC52YWx1 ZSA9IDB4MDAsIH0sCj4gKwkJWzQ3XSA9IHsgLm9mZnNldCA9IDB4MTEsIC52YWx1ZSA9IDB4YTAs IH0sCj4gKwkJWzQ4XSA9IHsgLm9mZnNldCA9IDB4MTIsIC52YWx1ZSA9IDB4MDIsIH0sCj4gKwkJ WzQ5XSA9IHsgLm9mZnNldCA9IDB4MjAsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzUwXSA9IHsg Lm9mZnNldCA9IDB4MjIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzUxXSA9IHsgLm9mZnNldCA9 IDB4MjMsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzUyXSA9IHsgLm9mZnNldCA9IDB4MjQsIC52 YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzUzXSA9IHsgLm9mZnNldCA9IDB4MjUsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gKwkJWzU0XSA9IHsgLm9mZnNldCA9IDB4OGMsIC52YWx1ZSA9IDB4MTAsIH0sCj4g KwkJWzU1XSA9IHsgLm9mZnNldCA9IDB4OGQsIC52YWx1ZSA9IDB4MDIsIH0sCj4gKwkJWzU2XSA9 IHsgLm9mZnNldCA9IDB4OGUsIC52YWx1ZSA9IDB4MTAsIH0sCj4gKwkJWzU3XSA9IHsgLm9mZnNl dCA9IDB4OGYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzU4XSA9IHsgLm9mZnNldCA9IDB4OTAs IC52YWx1ZSA9IDB4ZmYsIH0sCj4gKwkJWzU5XSA9IHsgLm9mZnNldCA9IDB4OTEsIC52YWx1ZSA9 IDB4MDcsIH0sCj4gKwkJWzYwXSA9IHsgLm9mZnNldCA9IDB4OTIsIC52YWx1ZSA9IDB4YTAsIH0s Cj4gKwkJWzYxXSA9IHsgLm9mZnNldCA9IDB4OTMsIC52YWx1ZSA9IDB4MDIsIH0sCj4gKwkJWzYy XSA9IHsgLm9mZnNldCA9IDB4YTUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzYzXSA9IHsgLm9m ZnNldCA9IDB4YTYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzY0XSA9IHsgLm9mZnNldCA9IDB4 YTcsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzY1XSA9IHsgLm9mZnNldCA9IDB4YTgsIC52YWx1 ZSA9IDB4MDAsIH0sCj4gKwkJWzY2XSA9IHsgLm9mZnNldCA9IDB4YTksIC52YWx1ZSA9IDB4MDQs IH0sCj4gKwkJWzY3XSA9IHsgLm9mZnNldCA9IDB4YWEsIC52YWx1ZSA9IDB4NzAsIH0sCj4gKwkJ WzY4XSA9IHsgLm9mZnNldCA9IDB4YWIsIC52YWx1ZSA9IDB4NGYsIH0sCj4gKwkJWzY5XSA9IHsg Lm9mZnNldCA9IDB4YWMsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzcwXSA9IHsgLm9mZnNldCA9 IDB4YTQsIC52YWx1ZSA9IDB4ODQsIH0sCj4gKwkJWzcxXSA9IHsgLm9mZnNldCA9IDB4N2UsIC52 YWx1ZSA9IDB4MTgsIH0sCj4gKwkJWzcyXSA9IHsgLm9mZnNldCA9IDB4ODQsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gKwkJWzczXSA9IHsgLm9mZnNldCA9IDB4ODUsIC52YWx1ZSA9IDB4MDAsIH0sCj4g KwkJWzc0XSA9IHsgLm9mZnNldCA9IDB4ODYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc1XSA9 IHsgLm9mZnNldCA9IDB4ODcsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc2XSA9IHsgLm9mZnNl dCA9IDB4ODgsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc3XSA9IHsgLm9mZnNldCA9IDB4ODks IC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc4XSA9IHsgLm9mZnNldCA9IDB4OGEsIC52YWx1ZSA9 IDB4MDAsIH0sCj4gKwkJWzc5XSA9IHsgLm9mZnNldCA9IDB4OGIsIC52YWx1ZSA9IDB4MDAsIH0s Cj4gKwkJWzgwXSA9IHsgLm9mZnNldCA9IDB4MjYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzgx XSA9IHsgLm9mZnNldCA9IDB4MjcsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzgyXSA9IHsgLm9m ZnNldCA9IDB4YWQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzgzXSA9IHsgLm9mZnNldCA9IDB4 MDgsIC52YWx1ZSA9IDB4MzAsIH0sIC8qIDB4MzEgKi8KPiArCQlbODRdID0geyAub2Zmc2V0ID0g MHg0MSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbODVdID0geyAub2Zmc2V0ID0gMHhjMCwgLnZh bHVlID0gMHgwNSwgfSwKPiAgCX0sCj4gIAlbTU9ERV84MDB4NjAwXSA9IHsKPiAtCQkuc3luYwk9 IE5TMjUwMV9DMF9FTkFCTEUgfAo+IC0JCQkgIE5TMjUwMV9DMF9IU1lOQyB8IE5TMjUwMV9DMF9W U1lOQywKPiAtCQkuY29uZiAgID0gTlMyNTAxXzhfVkVOIHwgTlMyNTAxXzhfSEVOIHwgTlMyNTAx XzhfUEQsCj4gLQkJLnN5bmNiCT0gMHgwMCwKPiAtCQkuZGl0aGVyCT0gMHgwZiwKPiAtCQkucGxs X2EJPSAyNSwKPiAtCQkucGxsX2IJPSA2MTIsCj4gLQkJLmhzdGFydAk9IDIxNSwKPiAtCQkuaHN0 b3AJPSAxMDE2LAo+IC0JCS52c3RhcnQJPSAyNiwKPiAtCQkudnN0b3AJPSA2MjcsCj4gLQkJLnZz eW5jCT0gODA3LAo+IC0JCS52dG90YWwJPSAxMzQxLAo+IC0JCS5ocG9zCT0gMCwKPiAtCQkudnBv cwk9IDQsCj4gLQkJLnZvZmZzCT0gMzUsCj4gLQkJLmhzY2FsZQk9IDUxMjQ4LAo+IC0JCS52c2Nh bGUJPSA1MTIzMgo+ICsJCVswXSA9IHsgLm9mZnNldCA9IDB4MGEsIC52YWx1ZSA9IDB4ODEsIH0s Cj4gKwkJWzFdID0geyAub2Zmc2V0ID0gMHgxOCwgLnZhbHVlID0gMHgwNywgfSwKPiArCQlbMl0g PSB7IC5vZmZzZXQgPSAweDE5LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVszXSA9IHsgLm9mZnNl dCA9IDB4MWEsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzRdID0geyAub2Zmc2V0ID0gMHgxYiwg LnZhbHVlID0gMHgxOSwgfSwKPiArCQlbNV0gPSB7IC5vZmZzZXQgPSAweDFjLCAudmFsdWUgPSAw eDY0LCB9LAo+ICsJCVs2XSA9IHsgLm9mZnNldCA9IDB4MWQsIC52YWx1ZSA9IDB4MDIsIH0sCj4g KwkJWzddID0geyAub2Zmc2V0ID0gMHgxZSwgLnZhbHVlID0gMHgwMiwgfSwKPiArCQlbOF0gPSB7 IC5vZmZzZXQgPSAweGYzLCAudmFsdWUgPSAweDkwLCB9LAo+ICsJCVs5XSA9IHsgLm9mZnNldCA9 IDB4ZjksIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzEwXSA9IHsgLm9mZnNldCA9IDB4YzEsIC52 YWx1ZSA9IDB4ZDcsIH0sCj4gKwkJWzExXSA9IHsgLm9mZnNldCA9IDB4YzIsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gKwkJWzEyXSA9IHsgLm9mZnNldCA9IDB4YzMsIC52YWx1ZSA9IDB4ZjgsIH0sCj4g KwkJWzEzXSA9IHsgLm9mZnNldCA9IDB4YzQsIC52YWx1ZSA9IDB4MDMsIH0sCj4gKwkJWzE0XSA9 IHsgLm9mZnNldCA9IDB4YzUsIC52YWx1ZSA9IDB4MWEsIH0sCj4gKwkJWzE1XSA9IHsgLm9mZnNl dCA9IDB4YzYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzE2XSA9IHsgLm9mZnNldCA9IDB4Yzcs IC52YWx1ZSA9IDB4NzMsIH0sCj4gKwkJWzE3XSA9IHsgLm9mZnNldCA9IDB4YzgsIC52YWx1ZSA9 IDB4MDIsIH0sCj4gKwkJWzE4XSA9IHsgLm9mZnNldCA9IDB4ZjQsIC52YWx1ZSA9IDB4MDAsIH0s Cj4gKwkJWzE5XSA9IHsgLm9mZnNldCA9IDB4ODAsIC52YWx1ZSA9IDB4MjcsIH0sCj4gKwkJWzIw XSA9IHsgLm9mZnNldCA9IDB4ODEsIC52YWx1ZSA9IDB4MDMsIH0sCj4gKwkJWzIxXSA9IHsgLm9m ZnNldCA9IDB4ODIsIC52YWx1ZSA9IDB4NDEsIH0sCj4gKwkJWzIyXSA9IHsgLm9mZnNldCA9IDB4 ODMsIC52YWx1ZSA9IDB4MDUsIH0sCj4gKwkJWzIzXSA9IHsgLm9mZnNldCA9IDB4OTQsIC52YWx1 ZSA9IDB4MDAsIH0sCj4gKwkJWzI0XSA9IHsgLm9mZnNldCA9IDB4OTUsIC52YWx1ZSA9IDB4MDAs IH0sCj4gKwkJWzI1XSA9IHsgLm9mZnNldCA9IDB4OTYsIC52YWx1ZSA9IDB4MDUsIH0sCj4gKwkJ WzI2XSA9IHsgLm9mZnNldCA9IDB4OTcsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzI3XSA9IHsg Lm9mZnNldCA9IDB4OWEsIC52YWx1ZSA9IDB4ODgsIH0sCj4gKwkJWzI4XSA9IHsgLm9mZnNldCA9 IDB4OWIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzI5XSA9IHsgLm9mZnNldCA9IDB4OTgsIC52 YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzMwXSA9IHsgLm9mZnNldCA9IDB4OTksIC52YWx1ZSA9IDB4 MDAsIH0sCj4gKwkJWzMxXSA9IHsgLm9mZnNldCA9IDB4ZjcsIC52YWx1ZSA9IDB4ODgsIH0sCj4g KwkJWzMyXSA9IHsgLm9mZnNldCA9IDB4ZjgsIC52YWx1ZSA9IDB4MDYsIH0sCj4gKwkJWzMzXSA9 IHsgLm9mZnNldCA9IDB4OWMsIC52YWx1ZSA9IDB4MjMsIH0sCj4gKwkJWzM0XSA9IHsgLm9mZnNl dCA9IDB4OWQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzM1XSA9IHsgLm9mZnNldCA9IDB4OWUs IC52YWx1ZSA9IDB4MjUsIH0sCj4gKwkJWzM2XSA9IHsgLm9mZnNldCA9IDB4OWYsIC52YWx1ZSA9 IDB4MDMsIH0sCj4gKwkJWzM3XSA9IHsgLm9mZnNldCA9IDB4YTAsIC52YWx1ZSA9IDB4MjgsIH0s Cj4gKwkJWzM4XSA9IHsgLm9mZnNldCA9IDB4YTEsIC52YWx1ZSA9IDB4MDEsIH0sCj4gKwkJWzM5 XSA9IHsgLm9mZnNldCA9IDB4YTIsIC52YWx1ZSA9IDB4MjgsIH0sCj4gKwkJWzQwXSA9IHsgLm9m ZnNldCA9IDB4YTMsIC52YWx1ZSA9IDB4MDUsIH0sCj4gKwkJWzQxXSA9IHsgLm9mZnNldCA9IDB4 YjYsIC52YWx1ZSA9IDB4MDksIH0sCj4gKwkJWzQyXSA9IHsgLm9mZnNldCA9IDB4YjgsIC52YWx1 ZSA9IDB4MzAsIH0sCj4gKwkJWzQzXSA9IHsgLm9mZnNldCA9IDB4YjksIC52YWx1ZSA9IDB4Yzgs IH0sCj4gKwkJWzQ0XSA9IHsgLm9mZnNldCA9IDB4YmEsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJ WzQ1XSA9IHsgLm9mZnNldCA9IDB4YmIsIC52YWx1ZSA9IDB4MjAsIH0sCj4gKwkJWzQ2XSA9IHsg Lm9mZnNldCA9IDB4MTAsIC52YWx1ZSA9IDB4MjAsIH0sCj4gKwkJWzQ3XSA9IHsgLm9mZnNldCA9 IDB4MTEsIC52YWx1ZSA9IDB4YzgsIH0sCj4gKwkJWzQ4XSA9IHsgLm9mZnNldCA9IDB4MTIsIC52 YWx1ZSA9IDB4MDIsIH0sCj4gKwkJWzQ5XSA9IHsgLm9mZnNldCA9IDB4MjAsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gKwkJWzUwXSA9IHsgLm9mZnNldCA9IDB4MjIsIC52YWx1ZSA9IDB4MDAsIH0sCj4g KwkJWzUxXSA9IHsgLm9mZnNldCA9IDB4MjMsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzUyXSA9 IHsgLm9mZnNldCA9IDB4MjQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzUzXSA9IHsgLm9mZnNl dCA9IDB4MjUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzU0XSA9IHsgLm9mZnNldCA9IDB4OGMs IC52YWx1ZSA9IDB4MTAsIH0sCj4gKwkJWzU1XSA9IHsgLm9mZnNldCA9IDB4OGQsIC52YWx1ZSA9 IDB4MDIsIH0sCj4gKwkJWzU2XSA9IHsgLm9mZnNldCA9IDB4OGUsIC52YWx1ZSA9IDB4MDQsIH0s Cj4gKwkJWzU3XSA9IHsgLm9mZnNldCA9IDB4OGYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzU4 XSA9IHsgLm9mZnNldCA9IDB4OTAsIC52YWx1ZSA9IDB4ZmYsIH0sCj4gKwkJWzU5XSA9IHsgLm9m ZnNldCA9IDB4OTEsIC52YWx1ZSA9IDB4MDcsIH0sCj4gKwkJWzYwXSA9IHsgLm9mZnNldCA9IDB4 OTIsIC52YWx1ZSA9IDB4YTAsIH0sCj4gKwkJWzYxXSA9IHsgLm9mZnNldCA9IDB4OTMsIC52YWx1 ZSA9IDB4MDIsIH0sCj4gKwkJWzYyXSA9IHsgLm9mZnNldCA9IDB4YTUsIC52YWx1ZSA9IDB4MDAs IH0sCj4gKwkJWzYzXSA9IHsgLm9mZnNldCA9IDB4YTYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJ WzY0XSA9IHsgLm9mZnNldCA9IDB4YTcsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzY1XSA9IHsg Lm9mZnNldCA9IDB4YTgsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzY2XSA9IHsgLm9mZnNldCA9 IDB4YTksIC52YWx1ZSA9IDB4ODMsIH0sCj4gKwkJWzY3XSA9IHsgLm9mZnNldCA9IDB4YWEsIC52 YWx1ZSA9IDB4NDAsIH0sCj4gKwkJWzY4XSA9IHsgLm9mZnNldCA9IDB4YWIsIC52YWx1ZSA9IDB4 MzIsIH0sCj4gKwkJWzY5XSA9IHsgLm9mZnNldCA9IDB4YWMsIC52YWx1ZSA9IDB4MDAsIH0sCj4g KwkJWzcwXSA9IHsgLm9mZnNldCA9IDB4YTQsIC52YWx1ZSA9IDB4ODAsIH0sCj4gKwkJWzcxXSA9 IHsgLm9mZnNldCA9IDB4N2UsIC52YWx1ZSA9IDB4MTgsIH0sCj4gKwkJWzcyXSA9IHsgLm9mZnNl dCA9IDB4ODQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzczXSA9IHsgLm9mZnNldCA9IDB4ODUs IC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc0XSA9IHsgLm9mZnNldCA9IDB4ODYsIC52YWx1ZSA9 IDB4MDAsIH0sCj4gKwkJWzc1XSA9IHsgLm9mZnNldCA9IDB4ODcsIC52YWx1ZSA9IDB4MDAsIH0s Cj4gKwkJWzc2XSA9IHsgLm9mZnNldCA9IDB4ODgsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc3 XSA9IHsgLm9mZnNldCA9IDB4ODksIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc4XSA9IHsgLm9m ZnNldCA9IDB4OGEsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc5XSA9IHsgLm9mZnNldCA9IDB4 OGIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzgwXSA9IHsgLm9mZnNldCA9IDB4MjYsIC52YWx1 ZSA9IDB4MDAsIH0sCj4gKwkJWzgxXSA9IHsgLm9mZnNldCA9IDB4MjcsIC52YWx1ZSA9IDB4MDAs IH0sCj4gKwkJWzgyXSA9IHsgLm9mZnNldCA9IDB4YWQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJ WzgzXSA9IHsgLm9mZnNldCA9IDB4MDgsIC52YWx1ZSA9IDB4MzAsIH0sIC8qIDB4MzEgKi8KPiAr CQlbODRdID0geyAub2Zmc2V0ID0gMHg0MSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbODVdID0g eyAub2Zmc2V0ID0gMHhjMCwgLnZhbHVlID0gMHgwNywgfSwKPiAgCX0sCj4gIAlbTU9ERV8xMDI0 eDc2OF0gPSB7Cj4gLQkJLnN5bmMJPSBOUzI1MDFfQzBfRU5BQkxFIHwgTlMyNTAxX0MwX1ZTWU5D LAo+IC0JCS5jb25mICAgPSBOUzI1MDFfOF9WRU4gfCBOUzI1MDFfOF9IRU4gfCBOUzI1MDFfOF9Q RCwKPiAtCQkuc3luY2IJPSAweDMyLAo+IC0JCS5kaXRoZXIJPSAweDBmLAo+IC0JCS5wbGxfYQk9 IDExLAo+IC0JCS5wbGxfYgk9IDEzNTAsCj4gLQkJLmhzdGFydAk9IDI3NiwKPiAtCQkuaHN0b3AJ PSAxMjk5LAo+IC0JCS52c3RhcnQJPSAxNSwKPiAtCQkudnN0b3AJPSAxMDU2LAo+IC0JCS52c3lu Ywk9IDIwNDcsCj4gLQkJLnZ0b3RhbAk9IDEzNDEsCj4gLQkJLmhwb3MJPSAwLAo+IC0JCS52cG9z CT0gNywKPiAtCQkudm9mZnMJPSAyNywKPiAtCQkuaHNjYWxlCT0gNjU1MzUsCj4gLQkJLnZzY2Fs ZQk9IDY1NTM1Cj4gLQl9Cj4gLX07Cj4gLQo+IC0vKgo+IC0gKiBPdGhlciBjb25maWd1cmF0aW9u IHZhbHVlcyBsZWZ0IGJ5IHRoZSBCSU9TIG9mIHRoZQo+IC0gKiBGdWppdHN1IFM2MDEwIGluIHRo ZSBEVk8gY29udHJvbCByZWdpc3RlcnMuIFRoZWlyCj4gLSAqIHZhbHVlIGRvZXMgbm90IGRlcGVu ZCBvbiB0aGUgQklPUyBhbmQgdGhlaXIgbWVhbmluZwo+IC0gKiBpcyB1bmtub3duLgo+IC0gKi8K PiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbnMyNTAxX3JlZyBtb2RlX2Fnbm9zdGljX3ZhbHVl c1tdID0gewo+IC0JLyogMDggaXMgbW9kZSBzcGVjaWZpYyAqLwo+IC0JWzBdID0geyAub2Zmc2V0 ID0gMHgwYSwgLnZhbHVlID0gMHg4MSwgfSwKPiAtCS8qIDEwLDExIGFyZSBwYXJ0IG9mIHRoZSBt b2RlIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gKi8KPiAtCVsxXSA9IHsgLm9mZnNldCA9IDB4MTIs IC52YWx1ZSA9IDB4MDIsIH0sCj4gLQlbMl0gPSB7IC5vZmZzZXQgPSAweDE4LCAudmFsdWUgPSAw eDA3LCB9LAo+IC0JWzNdID0geyAub2Zmc2V0ID0gMHgxOSwgLnZhbHVlID0gMHgwMCwgfSwKPiAt CVs0XSA9IHsgLm9mZnNldCA9IDB4MWEsIC52YWx1ZSA9IDB4MDAsIH0sIC8qIFBMTD8sIGlnbm9y ZWQgKi8KPiAtCS8qIDFiLDFjLDFkIGFyZSBwYXJ0IG9mIHRoZSBtb2RlIHNwZWNpZmljIGNvbmZp Z3VyYXRpb24gKi8KPiAtCVs1XSA9IHsgLm9mZnNldCA9IDB4MWUsIC52YWx1ZSA9IDB4MDIsIH0s Cj4gLQlbNl0gPSB7IC5vZmZzZXQgPSAweDFmLCAudmFsdWUgPSAweDQwLCB9LAo+IC0JWzddID0g eyAub2Zmc2V0ID0gMHgyMCwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCVs4XSA9IHsgLm9mZnNldCA9 IDB4MjEsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQlbOV0gPSB7IC5vZmZzZXQgPSAweDIyLCAudmFs dWUgPSAweDAwLCB9LAo+IC0JWzEwXSA9IHsgLm9mZnNldCA9IDB4MjMsIC52YWx1ZSA9IDB4MDAs IH0sCj4gLQlbMTFdID0geyAub2Zmc2V0ID0gMHgyNCwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCVsx Ml0gPSB7IC5vZmZzZXQgPSAweDI1LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JWzEzXSA9IHsgLm9m ZnNldCA9IDB4MjYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQlbMTRdID0geyAub2Zmc2V0ID0gMHgy NywgLnZhbHVlID0gMHgwMCwgfSwKPiAtCVsxNV0gPSB7IC5vZmZzZXQgPSAweDdlLCAudmFsdWUg PSAweDE4LCB9LAo+IC0JLyogODAtODQgYXJlIHBhcnQgb2YgdGhlIG1vZGUtc3BlY2lmaWMgY29u ZmlndXJhdGlvbiAqLwo+IC0JWzE2XSA9IHsgLm9mZnNldCA9IDB4ODQsIC52YWx1ZSA9IDB4MDAs IH0sCj4gLQlbMTddID0geyAub2Zmc2V0ID0gMHg4NSwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCVsx OF0gPSB7IC5vZmZzZXQgPSAweDg2LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JWzE5XSA9IHsgLm9m ZnNldCA9IDB4ODcsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQlbMjBdID0geyAub2Zmc2V0ID0gMHg4 OCwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCVsyMV0gPSB7IC5vZmZzZXQgPSAweDg5LCAudmFsdWUg PSAweDAwLCB9LAo+IC0JWzIyXSA9IHsgLm9mZnNldCA9IDB4OGEsIC52YWx1ZSA9IDB4MDAsIH0s Cj4gLQlbMjNdID0geyAub2Zmc2V0ID0gMHg4YiwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCVsyNF0g PSB7IC5vZmZzZXQgPSAweDhjLCAudmFsdWUgPSAweDEwLCB9LAo+IC0JWzI1XSA9IHsgLm9mZnNl dCA9IDB4OGQsIC52YWx1ZSA9IDB4MDIsIH0sCj4gLQkvKiA4ZSw4ZiBhcmUgcGFydCBvZiB0aGUg bW9kZS1zcGVjaWZpYyBjb25maWd1cmF0aW9uICovCj4gLQlbMjZdID0geyAub2Zmc2V0ID0gMHg5 MCwgLnZhbHVlID0gMHhmZiwgfSwKPiAtCVsyN10gPSB7IC5vZmZzZXQgPSAweDkxLCAudmFsdWUg PSAweDA3LCB9LAo+IC0JWzI4XSA9IHsgLm9mZnNldCA9IDB4OTIsIC52YWx1ZSA9IDB4YTAsIH0s Cj4gLQlbMjldID0geyAub2Zmc2V0ID0gMHg5MywgLnZhbHVlID0gMHgwMiwgfSwKPiAtCVszMF0g PSB7IC5vZmZzZXQgPSAweDk0LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JWzMxXSA9IHsgLm9mZnNl dCA9IDB4OTUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQlbMzJdID0geyAub2Zmc2V0ID0gMHg5Niwg LnZhbHVlID0gMHgwNSwgfSwKPiAtCVszM10gPSB7IC5vZmZzZXQgPSAweDk3LCAudmFsdWUgPSAw eDAwLCB9LAo+IC0JLyogOTgsOTkgYXJlIHBhcnQgb2YgdGhlIG1vZGUtc3BlY2lmaWMgY29uZmln dXJhdGlvbiAqLwo+IC0JWzM0XSA9IHsgLm9mZnNldCA9IDB4OWEsIC52YWx1ZSA9IDB4ODgsIH0s Cj4gLQlbMzVdID0geyAub2Zmc2V0ID0gMHg5YiwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCS8qIDlj LDlkIGFyZSBwYXJ0IG9mIHRoZSBtb2RlLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gKi8KPiAtCVsz Nl0gPSB7IC5vZmZzZXQgPSAweDllLCAudmFsdWUgPSAweDI1LCB9LAo+IC0JWzM3XSA9IHsgLm9m ZnNldCA9IDB4OWYsIC52YWx1ZSA9IDB4MDMsIH0sCj4gLQlbMzhdID0geyAub2Zmc2V0ID0gMHhh MCwgLnZhbHVlID0gMHgyOCwgfSwKPiAtCVszOV0gPSB7IC5vZmZzZXQgPSAweGExLCAudmFsdWUg PSAweDAxLCB9LAo+IC0JWzQwXSA9IHsgLm9mZnNldCA9IDB4YTIsIC52YWx1ZSA9IDB4MjgsIH0s Cj4gLQlbNDFdID0geyAub2Zmc2V0ID0gMHhhMywgLnZhbHVlID0gMHgwNSwgfSwKPiAtCS8qIHJl Z2lzdGVyIDB4YTQgaXMgbW9kZSBzcGVjaWZpYywgYnV0IDB4ODAuLjB4ODQgd29ya3MgYWx3YXlz ICovCj4gLQlbNDJdID0geyAub2Zmc2V0ID0gMHhhNCwgLnZhbHVlID0gMHg4NCwgfSwKPiAtCVs0 M10gPSB7IC5vZmZzZXQgPSAweGE1LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JWzQ0XSA9IHsgLm9m ZnNldCA9IDB4YTYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQlbNDVdID0geyAub2Zmc2V0ID0gMHhh NywgLnZhbHVlID0gMHgwMCwgfSwKPiAtCVs0Nl0gPSB7IC5vZmZzZXQgPSAweGE4LCAudmFsdWUg PSAweDAwLCB9LAo+IC0JLyogMHhhOSB0byAweGFiIGFyZSBtb2RlIHNwZWNpZmljLCBidXQgaGF2 ZSBubyB2aXNpYmxlIGVmZmVjdCAqLwo+IC0JWzQ3XSA9IHsgLm9mZnNldCA9IDB4YTksIC52YWx1 ZSA9IDB4MDQsIH0sCj4gLQlbNDhdID0geyAub2Zmc2V0ID0gMHhhYSwgLnZhbHVlID0gMHg3MCwg fSwKPiAtCVs0OV0gPSB7IC5vZmZzZXQgPSAweGFiLCAudmFsdWUgPSAweDRmLCB9LAo+IC0JWzUw XSA9IHsgLm9mZnNldCA9IDB4YWMsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQlbNTFdID0geyAub2Zm c2V0ID0gMHhhZCwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCVs1Ml0gPSB7IC5vZmZzZXQgPSAweGI2 LCAudmFsdWUgPSAweDA5LCB9LAo+IC0JWzUzXSA9IHsgLm9mZnNldCA9IDB4YjcsIC52YWx1ZSA9 IDB4MDMsIH0sCj4gLQkvKiBiOCxiOSBhcmUgcGFydCBvZiB0aGUgbW9kZS1zcGVjaWZpYyBjb25m aWd1cmF0aW9uICovCj4gLQlbNTRdID0geyAub2Zmc2V0ID0gMHhiYSwgLnZhbHVlID0gMHgwMCwg fSwKPiAtCVs1NV0gPSB7IC5vZmZzZXQgPSAweGJiLCAudmFsdWUgPSAweDIwLCB9LAo+IC0JWzU2 XSA9IHsgLm9mZnNldCA9IDB4ZjMsIC52YWx1ZSA9IDB4OTAsIH0sCj4gLQlbNTddID0geyAub2Zm c2V0ID0gMHhmNCwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCVs1OF0gPSB7IC5vZmZzZXQgPSAweGY3 LCAudmFsdWUgPSAweDg4LCB9LAo+IC0JLyogZjggaXMgbW9kZSBzcGVjaWZpYywgYnV0IHRoZSB2 YWx1ZSBkb2VzIG5vdCBtYXR0ZXIgKi8KPiAtCVs1OV0gPSB7IC5vZmZzZXQgPSAweGY4LCAudmFs dWUgPSAweDBhLCB9LAo+IC0JWzYwXSA9IHsgLm9mZnNldCA9IDB4ZjksIC52YWx1ZSA9IDB4MDAs IH0KPiArCQlbMF0gPSB7IC5vZmZzZXQgPSAweDBhLCAudmFsdWUgPSAweDgxLCB9LAo+ICsJCVsx XSA9IHsgLm9mZnNldCA9IDB4MTgsIC52YWx1ZSA9IDB4MDcsIH0sCj4gKwkJWzJdID0geyAub2Zm c2V0ID0gMHgxOSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbM10gPSB7IC5vZmZzZXQgPSAweDFh LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs0XSA9IHsgLm9mZnNldCA9IDB4MWIsIC52YWx1ZSA9 IDB4MTEsIH0sCj4gKwkJWzVdID0geyAub2Zmc2V0ID0gMHgxYywgLnZhbHVlID0gMHg1NCwgfSwK PiArCQlbNl0gPSB7IC5vZmZzZXQgPSAweDFkLCAudmFsdWUgPSAweDAzLCB9LAo+ICsJCVs3XSA9 IHsgLm9mZnNldCA9IDB4MWUsIC52YWx1ZSA9IDB4MDIsIH0sCj4gKwkJWzhdID0geyAub2Zmc2V0 ID0gMHhmMywgLnZhbHVlID0gMHg5MCwgfSwKPiArCQlbOV0gPSB7IC5vZmZzZXQgPSAweGY5LCAu dmFsdWUgPSAweDAwLCB9LAo+ICsJCVsxMF0gPSB7IC5vZmZzZXQgPSAweGMxLCAudmFsdWUgPSAw eDkwLCB9LAo+ICsJCVsxMV0gPSB7IC5vZmZzZXQgPSAweGMyLCAudmFsdWUgPSAweDAwLCB9LAo+ ICsJCVsxMl0gPSB7IC5vZmZzZXQgPSAweGMzLCAudmFsdWUgPSAweDBmLCB9LAo+ICsJCVsxM10g PSB7IC5vZmZzZXQgPSAweGM0LCAudmFsdWUgPSAweDAzLCB9LAo+ICsJCVsxNF0gPSB7IC5vZmZz ZXQgPSAweGM1LCAudmFsdWUgPSAweDE2LCB9LAo+ICsJCVsxNV0gPSB7IC5vZmZzZXQgPSAweGM2 LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVsxNl0gPSB7IC5vZmZzZXQgPSAweGM3LCAudmFsdWUg PSAweDAyLCB9LAo+ICsJCVsxN10gPSB7IC5vZmZzZXQgPSAweGM4LCAudmFsdWUgPSAweDAyLCB9 LAo+ICsJCVsxOF0gPSB7IC5vZmZzZXQgPSAweGY0LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVsx OV0gPSB7IC5vZmZzZXQgPSAweDgwLCAudmFsdWUgPSAweGZmLCB9LAo+ICsJCVsyMF0gPSB7IC5v ZmZzZXQgPSAweDgxLCAudmFsdWUgPSAweDA3LCB9LAo+ICsJCVsyMV0gPSB7IC5vZmZzZXQgPSAw eDgyLCAudmFsdWUgPSAweDNkLCB9LAo+ICsJCVsyMl0gPSB7IC5vZmZzZXQgPSAweDgzLCAudmFs dWUgPSAweDA1LCB9LAo+ICsJCVsyM10gPSB7IC5vZmZzZXQgPSAweDk0LCAudmFsdWUgPSAweDAw LCB9LAo+ICsJCVsyNF0gPSB7IC5vZmZzZXQgPSAweDk1LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJ CVsyNV0gPSB7IC5vZmZzZXQgPSAweDk2LCAudmFsdWUgPSAweDA1LCB9LAo+ICsJCVsyNl0gPSB7 IC5vZmZzZXQgPSAweDk3LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVsyN10gPSB7IC5vZmZzZXQg PSAweDlhLCAudmFsdWUgPSAweDg4LCB9LAo+ICsJCVsyOF0gPSB7IC5vZmZzZXQgPSAweDliLCAu dmFsdWUgPSAweDAwLCB9LAo+ICsJCVsyOV0gPSB7IC5vZmZzZXQgPSAweDk4LCAudmFsdWUgPSAw eDAwLCB9LAo+ICsJCVszMF0gPSB7IC5vZmZzZXQgPSAweDk5LCAudmFsdWUgPSAweDAwLCB9LAo+ ICsJCVszMV0gPSB7IC5vZmZzZXQgPSAweGY3LCAudmFsdWUgPSAweDg4LCB9LAo+ICsJCVszMl0g PSB7IC5vZmZzZXQgPSAweGY4LCAudmFsdWUgPSAweDBhLCB9LAo+ICsJCVszM10gPSB7IC5vZmZz ZXQgPSAweDljLCAudmFsdWUgPSAweDI0LCB9LAo+ICsJCVszNF0gPSB7IC5vZmZzZXQgPSAweDlk LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVszNV0gPSB7IC5vZmZzZXQgPSAweDllLCAudmFsdWUg PSAweDI1LCB9LAo+ICsJCVszNl0gPSB7IC5vZmZzZXQgPSAweDlmLCAudmFsdWUgPSAweDAzLCB9 LAo+ICsJCVszN10gPSB7IC5vZmZzZXQgPSAweGEwLCAudmFsdWUgPSAweDI4LCB9LAo+ICsJCVsz OF0gPSB7IC5vZmZzZXQgPSAweGExLCAudmFsdWUgPSAweDAxLCB9LAo+ICsJCVszOV0gPSB7IC5v ZmZzZXQgPSAweGEyLCAudmFsdWUgPSAweDI4LCB9LAo+ICsJCVs0MF0gPSB7IC5vZmZzZXQgPSAw eGEzLCAudmFsdWUgPSAweDA1LCB9LAo+ICsJCVs0MV0gPSB7IC5vZmZzZXQgPSAweGI2LCAudmFs dWUgPSAweDA5LCB9LAo+ICsJCVs0Ml0gPSB7IC5vZmZzZXQgPSAweGI4LCAudmFsdWUgPSAweDAw LCB9LAo+ICsJCVs0M10gPSB7IC5vZmZzZXQgPSAweGI5LCAudmFsdWUgPSAweGEwLCB9LAo+ICsJ CVs0NF0gPSB7IC5vZmZzZXQgPSAweGJhLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs0NV0gPSB7 IC5vZmZzZXQgPSAweGJiLCAudmFsdWUgPSAweDIwLCB9LAo+ICsJCVs0Nl0gPSB7IC5vZmZzZXQg PSAweDEwLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs0N10gPSB7IC5vZmZzZXQgPSAweDExLCAu dmFsdWUgPSAweGEwLCB9LAo+ICsJCVs0OF0gPSB7IC5vZmZzZXQgPSAweDEyLCAudmFsdWUgPSAw eDAyLCB9LAo+ICsJCVs0OV0gPSB7IC5vZmZzZXQgPSAweDIwLCAudmFsdWUgPSAweDAwLCB9LAo+ ICsJCVs1MF0gPSB7IC5vZmZzZXQgPSAweDIyLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs1MV0g PSB7IC5vZmZzZXQgPSAweDIzLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs1Ml0gPSB7IC5vZmZz ZXQgPSAweDI0LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs1M10gPSB7IC5vZmZzZXQgPSAweDI1 LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs1NF0gPSB7IC5vZmZzZXQgPSAweDhjLCAudmFsdWUg PSAweDEwLCB9LAo+ICsJCVs1NV0gPSB7IC5vZmZzZXQgPSAweDhkLCAudmFsdWUgPSAweDAyLCB9 LAo+ICsJCVs1Nl0gPSB7IC5vZmZzZXQgPSAweDhlLCAudmFsdWUgPSAweDEwLCB9LAo+ICsJCVs1 N10gPSB7IC5vZmZzZXQgPSAweDhmLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs1OF0gPSB7IC5v ZmZzZXQgPSAweDkwLCAudmFsdWUgPSAweGZmLCB9LAo+ICsJCVs1OV0gPSB7IC5vZmZzZXQgPSAw eDkxLCAudmFsdWUgPSAweDA3LCB9LAo+ICsJCVs2MF0gPSB7IC5vZmZzZXQgPSAweDkyLCAudmFs dWUgPSAweGEwLCB9LAo+ICsJCVs2MV0gPSB7IC5vZmZzZXQgPSAweDkzLCAudmFsdWUgPSAweDAy LCB9LAo+ICsJCVs2Ml0gPSB7IC5vZmZzZXQgPSAweGE1LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJ CVs2M10gPSB7IC5vZmZzZXQgPSAweGE2LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs2NF0gPSB7 IC5vZmZzZXQgPSAweGE3LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs2NV0gPSB7IC5vZmZzZXQg PSAweGE4LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs2Nl0gPSB7IC5vZmZzZXQgPSAweGE5LCAu dmFsdWUgPSAweDA0LCB9LAo+ICsJCVs2N10gPSB7IC5vZmZzZXQgPSAweGFhLCAudmFsdWUgPSAw eDcwLCB9LAo+ICsJCVs2OF0gPSB7IC5vZmZzZXQgPSAweGFiLCAudmFsdWUgPSAweDRmLCB9LAo+ ICsJCVs2OV0gPSB7IC5vZmZzZXQgPSAweGFjLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs3MF0g PSB7IC5vZmZzZXQgPSAweGE0LCAudmFsdWUgPSAweDg0LCB9LAo+ICsJCVs3MV0gPSB7IC5vZmZz ZXQgPSAweDdlLCAudmFsdWUgPSAweDE4LCB9LAo+ICsJCVs3Ml0gPSB7IC5vZmZzZXQgPSAweDg0 LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs3M10gPSB7IC5vZmZzZXQgPSAweDg1LCAudmFsdWUg PSAweDAwLCB9LAo+ICsJCVs3NF0gPSB7IC5vZmZzZXQgPSAweDg2LCAudmFsdWUgPSAweDAwLCB9 LAo+ICsJCVs3NV0gPSB7IC5vZmZzZXQgPSAweDg3LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs3 Nl0gPSB7IC5vZmZzZXQgPSAweDg4LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs3N10gPSB7IC5v ZmZzZXQgPSAweDg5LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs3OF0gPSB7IC5vZmZzZXQgPSAw eDhhLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs3OV0gPSB7IC5vZmZzZXQgPSAweDhiLCAudmFs dWUgPSAweDAwLCB9LAo+ICsJCVs4MF0gPSB7IC5vZmZzZXQgPSAweDI2LCAudmFsdWUgPSAweDAw LCB9LAo+ICsJCVs4MV0gPSB7IC5vZmZzZXQgPSAweDI3LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJ CVs4Ml0gPSB7IC5vZmZzZXQgPSAweGFkLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs4M10gPSB7 IC5vZmZzZXQgPSAweDA4LCAudmFsdWUgPSAweDM0LCB9LCAvKiAweDM1ICovCj4gKwkJWzg0XSA9 IHsgLm9mZnNldCA9IDB4NDEsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzg1XSA9IHsgLm9mZnNl dCA9IDB4YzAsIC52YWx1ZSA9IDB4MDEsIH0sCj4gKwl9LAo+ICB9Owo+ICAKPiAgc3RhdGljIGNv bnN0IHN0cnVjdCBuczI1MDFfcmVnIHJlZ3NfaW5pdFtdID0gewo+IEBAIC0zNzgsMTIgKzM1MCwy NSBAQAo+ICAKPiAgc3RydWN0IG5zMjUwMV9wcml2IHsKPiAgCWJvb2wgcXVpZXQ7Cj4gLQljb25z dCBzdHJ1Y3QgbnMyNTAxX2NvbmZpZ3VyYXRpb24gKmNvbmY7Cj4gKwljb25zdCBzdHJ1Y3QgbnMy NTAxX3JlZyAqcmVnczsKPiAgfTsKPiAgCj4gICNkZWZpbmUgTlNQVFIoZCkgKChOUzI1MDFQdHIp KGQtPkRyaXZlclByaXZhdGUucHRyKSkKPiAgCj4gIC8qCj4gKyAqIEZvciByZWFzb25zIHVuY2xl YXIgdG8gbWUsIHRoZSBuczI1MDEgYXQgbGVhc3Qgb24gdGhlIEZ1aml0c3UvU2llbWVucwo+ICsg KiBsYXB0b3BzIGRvZXMgbm90IHJlYWN0IG9uIHRoZSBpMmMgYnVzIHVubGVzcwo+ICsgKiBib3Ro IHRoZSBQTEwgaXMgcnVubmluZyBhbmQgdGhlIGRpc3BsYXkgaXMgY29uZmlndXJlZCBpbiBpdHMg bmF0aXZlCj4gKyAqIHJlc29sdXRpb24uCj4gKyAqIFRoaXMgZnVuY3Rpb24gZm9yY2VzIHRoZSBE Vk8gb24sIGFuZCBzdG9yZXMgdGhlIHJlZ2lzdGVycyBpdCB0b3VjaGVzLgo+ICsgKiBBZnRlcndh cmRzLCByZWdpc3RlcnMgYXJlIHJlc3RvcmVkIHRvIHJlZ3VsYXIgdmFsdWVzLgo+ICsgKgo+ICsg KiBUaGlzIGlzIHByZXR0eSBtdWNoIGEgaGFjaywgdGhvdWdoIGl0IHdvcmtzLgo+ICsgKiBXaXRo b3V0IHRoYXQsIG5zMjUwMV9yZWFkYiBhbmQgbnMyNTAxX3dyaXRlYiBmYWlsCj4gKyAqIHdoZW4g c3dpdGNoaW5nIHRoZSByZXNvbHV0aW9uLgo+ICsgKi8KPiArCj4gKy8qCj4gICoqIFJlYWQgYSBy ZWdpc3RlciBmcm9tIHRoZSBuczI1MDEuCj4gICoqIFJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVs LCBmYWxzZSBvdGhlcndpc2UuCj4gICoqIElmIGl0IHJldHVybnMgZmFsc2UsIGl0IG1pZ2h0IGJl IHdpc2UgdG8gZW5hYmxlIHRoZQo+IEBAIC01NDksNyArNTM0LDYgQEAKPiAgCQkJICAgIHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAo+ICAJCQkgICAgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKmFkanVzdGVkX21vZGUpCj4gIHsKPiAtCWNvbnN0IHN0cnVjdCBuczI1MDFfY29uZmlndXJh dGlvbiAqY29uZjsKPiAgCXN0cnVjdCBuczI1MDFfcHJpdiAqbnMgPSAoc3RydWN0IG5zMjUwMV9w cml2ICopKGR2by0+ZGV2X3ByaXYpOwo+ICAJaW50IG1vZGVfaWR4LCBpOwo+ICAKPiBAQCAtNTU3 LDM2ICs1NDEsNiBAQAo+ICAJICAgICgic2V0IG1vZGUgKGhkaXNwbGF5PSVkLGh0b3RhbD0lZCx2 ZGlzcGxheT0lZCx2dG90YWw9JWQpLlxuIiwKPiAgCSAgICAgbW9kZS0+aGRpc3BsYXksIG1vZGUt Pmh0b3RhbCwgbW9kZS0+dmRpc3BsYXksIG1vZGUtPnZ0b3RhbCk7Cj4gIAo+IC0JRFJNX0RFQlVH X0tNUygiRGV0YWlsZWQgcmVxdWVzdGVkIG1vZGUgc2V0dGluZ3MgYXJlOlxuIgo+IC0JCQkiY2xv Y2sJCTogJWQga0h6XG4iCj4gLQkJCSJoZGlzcGxheQk6ICVkXG4iCj4gLQkJCSJoYmxhbmsgc3Rh cnQJOiAlZFxuIgo+IC0JCQkiaGJsYW5rIGVuZAk6ICVkXG4iCj4gLQkJCSJoc3luYyBzdGFydAk6 ICVkXG4iCj4gLQkJCSJoc3luYyBlbmQJOiAlZFxuIgo+IC0JCQkiaHRvdGFsCQk6ICVkXG4iCj4g LQkJCSJoc2tldwkJOiAlZFxuIgo+IC0JCQkidmRpc3BsYXkJOiAlZFxuIgo+IC0JCQkidmJsYW5r IHN0YXJ0CTogJWRcbiIKPiAtCQkJImhibGFuayBlbmQJOiAlZFxuIgo+IC0JCQkidnN5bmMgc3Rh cnQJOiAlZFxuIgo+IC0JCQkidnN5bmMgZW5kCTogJWRcbiIKPiAtCQkJInZ0b3RhbAkJOiAlZFxu IiwKPiAtCQkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKPiAtCQkJYWRqdXN0ZWRfbW9kZS0+ Y3J0Y19oZGlzcGxheSwKPiAtCQkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oYmxhbmtfc3RhcnQsCj4g LQkJCWFkanVzdGVkX21vZGUtPmNydGNfaGJsYW5rX2VuZCwKPiAtCQkJYWRqdXN0ZWRfbW9kZS0+ Y3J0Y19oc3luY19zdGFydCwKPiAtCQkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oc3luY19lbmQsCj4g LQkJCWFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsLAo+IC0JCQlhZGp1c3RlZF9tb2RlLT5jcnRj X2hza2V3LAo+IC0JCQlhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5LAo+IC0JCQlhZGp1c3Rl ZF9tb2RlLT5jcnRjX3ZibGFua19zdGFydCwKPiAtCQkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y192Ymxh bmtfZW5kLAo+IC0JCQlhZGp1c3RlZF9tb2RlLT5jcnRjX3ZzeW5jX3N0YXJ0LAo+IC0JCQlhZGp1 c3RlZF9tb2RlLT5jcnRjX3ZzeW5jX2VuZCwKPiAtCQkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y192dG90 YWwpOwo+IC0KPiAgCWlmIChtb2RlLT5oZGlzcGxheSA9PSA2NDAgJiYgbW9kZS0+dmRpc3BsYXkg PT0gNDgwKQo+ICAJCW1vZGVfaWR4ID0gTU9ERV82NDB4NDgwOwo+ICAJZWxzZSBpZiAobW9kZS0+ aGRpc3BsYXkgPT0gODAwICYmIG1vZGUtPnZkaXNwbGF5ID09IDYwMCkKPiBAQCAtNjAwLDQ0ICs1 NTQsMTAgQEAKPiAgCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHJlZ3NfaW5pdCk7IGkrKykK PiAgCQluczI1MDFfd3JpdGViKGR2bywgcmVnc19pbml0W2ldLm9mZnNldCwgcmVnc19pbml0W2ld LnZhbHVlKTsKPiAgCj4gLQkvKiBXcml0ZSB0aGUgbW9kZS1hZ25vc3RpYyB2YWx1ZXMgKi8KPiAt CWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKG1vZGVfYWdub3N0aWNfdmFsdWVzKTsgaSsrKQo+ IC0JCW5zMjUwMV93cml0ZWIoZHZvLCBtb2RlX2Fnbm9zdGljX3ZhbHVlc1tpXS5vZmZzZXQsCj4g LQkJCQltb2RlX2Fnbm9zdGljX3ZhbHVlc1tpXS52YWx1ZSk7Cj4gLQo+IC0JLyogV3JpdGUgbm93 IHRoZSBtb2RlLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gKi8KPiAtCWNvbmYgPSBuczI1MDFfbW9k ZXMgKyBtb2RlX2lkeDsKPiAtCW5zLT5jb25mID0gY29uZjsKPiAtCj4gLQluczI1MDFfd3JpdGVi KGR2bywgTlMyNTAxX1JFRzgsIGNvbmYtPmNvbmYpOwo+IC0JbnMyNTAxX3dyaXRlYihkdm8sIE5T MjUwMV9SRUcxQiwgY29uZi0+cGxsX2EpOwo+IC0JbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9S RUcxQywgY29uZi0+cGxsX2IgJiAweGZmKTsKPiAtCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFf UkVHMUQsIGNvbmYtPnBsbF9iID4+IDgpOwo+IC0JbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9S RUdDMSwgY29uZi0+aHN0YXJ0ICYgMHhmZik7Cj4gLQluczI1MDFfd3JpdGViKGR2bywgTlMyNTAx X1JFR0MyLCBjb25mLT5oc3RhcnQgPj4gOCk7Cj4gLQluczI1MDFfd3JpdGViKGR2bywgTlMyNTAx X1JFR0MzLCBjb25mLT5oc3RvcCAmIDB4ZmYpOwo+IC0JbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUw MV9SRUdDNCwgY29uZi0+aHN0b3AgPj4gOCk7Cj4gLQluczI1MDFfd3JpdGViKGR2bywgTlMyNTAx X1JFR0M1LCBjb25mLT52c3RhcnQgJiAweGZmKTsKPiAtCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1 MDFfUkVHQzYsIGNvbmYtPnZzdGFydCA+PiA4KTsKPiAtCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1 MDFfUkVHQzcsIGNvbmYtPnZzdG9wICYgMHhmZik7Cj4gLQluczI1MDFfd3JpdGViKGR2bywgTlMy NTAxX1JFR0M4LCBjb25mLT52c3RvcCA+PiA4KTsKPiAtCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1 MDFfUkVHODAsIGNvbmYtPnZzeW5jICYgMHhmZik7Cj4gLQluczI1MDFfd3JpdGViKGR2bywgTlMy NTAxX1JFRzgxLCBjb25mLT52c3luYyA+PiA4KTsKPiAtCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1 MDFfUkVHODIsIGNvbmYtPnZ0b3RhbCAmIDB4ZmYpOwo+IC0JbnMyNTAxX3dyaXRlYihkdm8sIE5T MjUwMV9SRUc4MywgY29uZi0+dnRvdGFsID4+IDgpOwo+IC0JbnMyNTAxX3dyaXRlYihkdm8sIE5T MjUwMV9SRUc5OCwgY29uZi0+aHBvcyAmIDB4ZmYpOwo+IC0JbnMyNTAxX3dyaXRlYihkdm8sIE5T MjUwMV9SRUc5OSwgY29uZi0+aHBvcyA+PiA4KTsKPiAtCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1 MDFfUkVHOEUsIGNvbmYtPnZwb3MgJiAweGZmKTsKPiAtCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1 MDFfUkVHOEYsIGNvbmYtPnZwb3MgPj4gOCk7Cj4gLQluczI1MDFfd3JpdGViKGR2bywgTlMyNTAx X1JFRzlDLCBjb25mLT52b2ZmcyAmIDB4ZmYpOwo+IC0JbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUw MV9SRUc5RCwgY29uZi0+dm9mZnMgPj4gOCk7Cj4gLQluczI1MDFfd3JpdGViKGR2bywgTlMyNTAx X1JFR0I4LCBjb25mLT5oc2NhbGUgJiAweGZmKTsKPiAtCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1 MDFfUkVHQjksIGNvbmYtPmhzY2FsZSA+PiA4KTsKPiAtCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1 MDFfUkVHMTAsIGNvbmYtPnZzY2FsZSAmIDB4ZmYpOwo+IC0JbnMyNTAxX3dyaXRlYihkdm8sIE5T MjUwMV9SRUcxMSwgY29uZi0+dnNjYWxlID4+IDgpOwo+IC0JbnMyNTAxX3dyaXRlYihkdm8sIE5T MjUwMV9SRUdGOSwgY29uZi0+ZGl0aGVyKTsKPiAtCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFf UkVHNDEsIGNvbmYtPnN5bmNiKTsKPiAtCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHQzAs IGNvbmYtPnN5bmMpOwo+ICsJbnMtPnJlZ3MgPSByZWdzXzEwMjR4NzY4W21vZGVfaWR4XTsKPiAr Cj4gKwlmb3IgKGkgPSAwOyBpIDwgODQ7IGkrKykKPiArCQluczI1MDFfd3JpdGViKGR2bywgbnMt PnJlZ3NbaV0ub2Zmc2V0LCBucy0+cmVnc1tpXS52YWx1ZSk7Cj4gIH0KPiAgCj4gIC8qIHNldCB0 aGUgTlMyNTAxIHBvd2VyIHN0YXRlICovCj4gQEAgLTY1OSwzMiArNTc5LDM0IEBACj4gIAlEUk1f REVCVUdfS01TKCJUcnlpbmcgc2V0IHRoZSBkcG1zIG9mIHRoZSBEVk8gdG8gJWlcbiIsIGVuYWJs ZSk7Cj4gIAo+ICAJaWYgKGVuYWJsZSkgewo+IC0JCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFf UkVHQzAsIG5zLT5jb25mLT5zeW5jIHwgMHgwOCk7Cj4gKwkJaWYgKFdBUk5fT04obnMtPnJlZ3Nb ODNdLm9mZnNldCAhPSAweDA4IHx8Cj4gKwkJCSAgICBucy0+cmVnc1s4NF0ub2Zmc2V0ICE9IDB4 NDEgfHwKPiArCQkJICAgIG5zLT5yZWdzWzg1XS5vZmZzZXQgIT0gMHhjMCkpCj4gKwkJCXJldHVy bjsKPiArCj4gKwkJbnMyNTAxX3dyaXRlYihkdm8sIDB4YzAsIG5zLT5yZWdzWzg1XS52YWx1ZSB8 IDB4MDgpOwo+ICAKPiAtCQluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzQxLCBucy0+Y29u Zi0+c3luY2IpOwo+ICsJCW5zMjUwMV93cml0ZWIoZHZvLCAweDQxLCBucy0+cmVnc1s4NF0udmFs dWUpOwo+ICAKPiAtCQluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzM0LCBOUzI1MDFfMzRf RU5BQkxFX09VVFBVVCk7Cj4gKwkJbnMyNTAxX3dyaXRlYihkdm8sIDB4MzQsIDB4MDEpOwo+ICAJ CW1zbGVlcCgxNSk7Cj4gIAo+IC0JCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHOCwKPiAt CQkJCW5zLT5jb25mLT5jb25mIHwgTlMyNTAxXzhfQlBBUyk7Cj4gLQkJaWYgKCEobnMtPmNvbmYt PmNvbmYgJiBOUzI1MDFfOF9CUEFTKSkKPiAtCQkJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9S RUc4LCBucy0+Y29uZi0+Y29uZik7Cj4gKwkJbnMyNTAxX3dyaXRlYihkdm8sIDB4MDgsIDB4MzUp Owo+ICsJCWlmICghKG5zLT5yZWdzWzgzXS52YWx1ZSAmIE5TMjUwMV84X0JQQVMpKQo+ICsJCQlu czI1MDFfd3JpdGViKGR2bywgMHgwOCwgMHgzMSk7Cj4gIAkJbXNsZWVwKDIwMCk7Cj4gIAo+IC0J CW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHMzQsCj4gLQkJCU5TMjUwMV8zNF9FTkFCTEVf T1VUUFVUIHwgTlMyNTAxXzM0X0VOQUJMRV9CQUNLTElHSFQpOwo+ICsJCW5zMjUwMV93cml0ZWIo ZHZvLCAweDM0LCAweDAzKTsKPiAgCj4gLQkJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUdD MCwgbnMtPmNvbmYtPnN5bmMpOwo+ICsJCW5zMjUwMV93cml0ZWIoZHZvLCAweGMwLCBucy0+cmVn c1s4NV0udmFsdWUpOwo+ICAJfSBlbHNlIHsKPiAtCQluczI1MDFfd3JpdGViKGR2bywgTlMyNTAx X1JFRzM0LCBOUzI1MDFfMzRfRU5BQkxFX09VVFBVVCk7Cj4gKwkJbnMyNTAxX3dyaXRlYihkdm8s IDB4MzQsIDB4MDEpOwo+ICAJCW1zbGVlcCgyMDApOwo+ICAKPiAtCQluczI1MDFfd3JpdGViKGR2 bywgTlMyNTAxX1JFRzgsIE5TMjUwMV84X1ZFTiB8IE5TMjUwMV84X0hFTiB8Cj4gLQkJCQlOUzI1 MDFfOF9CUEFTKTsKPiArCQluczI1MDFfd3JpdGViKGR2bywgMHgwOCwgMHgzNCk7Cj4gIAkJbXNs ZWVwKDE1KTsKPiAgCj4gLQkJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUczNCwgMHgwMCk7 Cj4gKwkJbnMyNTAxX3dyaXRlYihkdm8sIDB4MzQsIDB4MDApOwo+ICAJfQo+ICB9Cj4gIAoKCi0t IApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRw Oi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=