From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH] drm/radeon/kms: add blit support for cayman (v2) Date: Wed, 25 May 2011 16:39:00 -0400 Message-ID: <1306355940-17880-1-git-send-email-alexdeucher@gmail.com> References: <1306299646-1439-2-git-send-email-alexdeucher@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-vx0-f177.google.com (mail-vx0-f177.google.com [209.85.220.177]) by gabe.freedesktop.org (Postfix) with ESMTP id 2A4B39E790 for ; Wed, 25 May 2011 13:39:14 -0700 (PDT) Received: by vxd2 with SMTP id 2so45386vxd.36 for ; Wed, 25 May 2011 13:39:13 -0700 (PDT) In-Reply-To: <1306299646-1439-2-git-send-email-alexdeucher@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: airlied@gmail.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QWxsb3dzIHVzIHRvIHVzZSB0aGUgM0QgZW5naW5lIGZvciBtZW1vcnkgbWFuYWdlbWVudAphbmQg YWxsb3dzIHVzIHRvIHVzZSB2cmFtIGJleW9uZCB0aGUgQkFSIGFwZXJ0dXJlLgoKdjI6IGZpeCBj b3B5IHBhc3RlIHR5cG8KUmVwb3J0ZWQtYnk6IE5pbHMgV2FsbG3DqW5pdXMgPG5pbHMud2FsbG1l bml1c0BnbWFpbC5jb20+CgpTaWduZWQtb2ZmLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhkZXVjaGVy QGdtYWlsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2NheW1hbl9ibGl0X3NoYWRl cnMuYyB8ICAzMjYgKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vY2F5 bWFuX2JsaXRfc2hhZGVycy5oIHwgICAgMyArCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJn cmVlbl9ibGl0X2ttcy5jICB8ICA1MDUgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9yYWRlb24vbmkuYyAgICAgICAgICAgICAgICAgIHwgICAxMyArLQogZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXNpYy5jICAgICAgICAgfCAgICA2ICstCiA1IGZpbGVz IGNoYW5nZWQsIDU5OCBpbnNlcnRpb25zKCspLCAyNTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jYXltYW5fYmxpdF9zaGFkZXJzLmMgYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL2NheW1hbl9ibGl0X3NoYWRlcnMuYwppbmRleCBlMTQ4YWIwLi43YjRl ZWI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2NheW1hbl9ibGl0X3NoYWRl cnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2NheW1hbl9ibGl0X3NoYWRlcnMuYwpA QCAtMzksMTcgKzM5LDMzNSBAQAogCiBjb25zdCB1MzIgY2F5bWFuX2RlZmF1bHRfc3RhdGVbXSA9 CiB7Ci0JLyogWFhYIGZpbGwgaW4gYWRkaXRpb25hbCBibGl0IHN0YXRlICovCisJMHhjMDA2Njkw MCwKKwkweDAwMDAwMDAwLAorCTB4MDAwMDAwNjAsIC8qIERCX1JFTkRFUl9DT05UUk9MICovCisJ MHgwMDAwMDAwMCwgLyogREJfQ09VTlRfQ09OVFJPTCAqLworCTB4MDAwMDAwMDAsIC8qIERCX0RF UFRIX1ZJRVcgKi8KKwkweDAwMDAwMDJhLCAvKiBEQl9SRU5ERVJfT1ZFUlJJREUgKi8KKwkweDAw MDAwMDAwLCAvKiBEQl9SRU5ERVJfT1ZFUlJJREUyICovCisJMHgwMDAwMDAwMCwgLyogREJfSFRJ TEVfREFUQV9CQVNFICovCiAKIAkweGMwMDI2OTAwLAotCTB4MDAwMDAzMTYsCi0JMHgwMDAwMDAw ZSwgLyogVkdUX1ZFUlRFWF9SRVVTRV9CTE9DS19DTlRMICovCi0JMHgwMDAwMDAxMCwgLyogICov CisJMHgwMDAwMDAwYSwKKwkweDAwMDAwMDAwLCAvKiBEQl9TVEVOQ0lMX0NMRUFSICovCisJMHgw MDAwMDAwMCwgLyogREJfREVQVEhfQ0xFQVIgKi8KKworCTB4YzAwMzY5MDAsCisJMHgwMDAwMDAw ZiwKKwkweDAwMDAwMDAwLCAvKiBEQl9ERVBUSF9JTkZPICovCisJMHgwMDAwMDAwMCwgLyogREJf Wl9JTkZPICovCisJMHgwMDAwMDAwMCwgLyogREJfU1RFTkNJTF9JTkZPICovCisKKwkweGMwMDE2 OTAwLAorCTB4MDAwMDAwODAsCisJMHgwMDAwMDAwMCwgLyogUEFfU0NfV0lORE9XX09GRlNFVCAq LworCisJMHhjMDBkNjkwMCwKKwkweDAwMDAwMDgzLAorCTB4MDAwMGZmZmYsIC8qIFBBX1NDX0NM SVBSRUNUX1JVTEUgKi8KKwkweDAwMDAwMDAwLCAvKiBQQV9TQ19DTElQUkVDVF8wX1RMICovCisJ MHgyMDAwMjAwMCwgLyogUEFfU0NfQ0xJUFJFQ1RfMF9CUiAqLworCTB4MDAwMDAwMDAsCisJMHgy MDAwMjAwMCwKKwkweDAwMDAwMDAwLAorCTB4MjAwMDIwMDAsCisJMHgwMDAwMDAwMCwKKwkweDIw MDAyMDAwLAorCTB4YWFhYWFhYWEsIC8qIFBBX1NDX0VER0VSVUxFICovCisJMHgwMDAwMDAwMCwg LyogUEFfU1VfSEFSRFdBUkVfU0NSRUVOX09GRlNFVCAqLworCTB4MDAwMDAwMGYsIC8qIENCX1RB UkdFVF9NQVNLICovCisJMHgwMDAwMDAwZiwgLyogQ0JfU0hBREVSX01BU0sgKi8KKworCTB4YzAy MjY5MDAsCisJMHgwMDAwMDA5NCwKKwkweDgwMDAwMDAwLCAvKiBQQV9TQ19WUE9SVF9TQ0lTU09S XzBfVEwgKi8KKwkweDIwMDAyMDAwLCAvKiBQQV9TQ19WUE9SVF9TQ0lTU09SXzBfQlIgKi8KKwkw eDgwMDAwMDAwLAorCTB4MjAwMDIwMDAsCisJMHg4MDAwMDAwMCwKKwkweDIwMDAyMDAwLAorCTB4 ODAwMDAwMDAsCisJMHgyMDAwMjAwMCwKKwkweDgwMDAwMDAwLAorCTB4MjAwMDIwMDAsCisJMHg4 MDAwMDAwMCwKKwkweDIwMDAyMDAwLAorCTB4ODAwMDAwMDAsCisJMHgyMDAwMjAwMCwKKwkweDgw MDAwMDAwLAorCTB4MjAwMDIwMDAsCisJMHg4MDAwMDAwMCwKKwkweDIwMDAyMDAwLAorCTB4ODAw MDAwMDAsCisJMHgyMDAwMjAwMCwKKwkweDgwMDAwMDAwLAorCTB4MjAwMDIwMDAsCisJMHg4MDAw MDAwMCwKKwkweDIwMDAyMDAwLAorCTB4ODAwMDAwMDAsCisJMHgyMDAwMjAwMCwKKwkweDgwMDAw MDAwLAorCTB4MjAwMDIwMDAsCisJMHg4MDAwMDAwMCwKKwkweDIwMDAyMDAwLAorCTB4ODAwMDAw MDAsCisJMHgyMDAwMjAwMCwKKwkweDAwMDAwMDAwLCAvKiBQQV9TQ19WUE9SVF9aTUlOXzAgKi8K KwkweDNmODAwMDAwLCAvKiBQQV9TQ19WUE9SVF9aTUFYXzAgKi8KKworCTB4YzAwMTY5MDAsCisJ MHgwMDAwMDBkNCwKKwkweDAwMDAwMDAwLCAvKiBTWF9NSVNDICovCiAKIAkweGMwMDI2OTAwLAog CTB4MDAwMDAwZDksCiAJMHgwMDAwMDAwMCwgLyogQ1BfUklOR0lEICovCiAJMHgwMDAwMDAwMCwg LyogQ1BfVk1JRCAqLworCisJMHhjMDA5NjkwMCwKKwkweDAwMDAwMTAwLAorCTB4MDBmZmZmZmYs IC8qIFZHVF9NQVhfVlRYX0lORFggKi8KKwkweDAwMDAwMDAwLCAvKiBWR1RfTUlOX1ZUWF9JTkRY ICovCisJMHgwMDAwMDAwMCwgLyogVkdUX0lORFhfT0ZGU0VUICovCisJMHgwMDAwMDAwMCwgLyog VkdUX01VTFRJX1BSSU1fSUJfUkVTRVRfSU5EWCAqLworCTB4MDAwMDAwMDAsIC8qIFNYX0FMUEhB X1RFU1RfQ09OVFJPTCAqLworCTB4MDAwMDAwMDAsIC8qIENCX0JMRU5EX1JFRCAqLworCTB4MDAw MDAwMDAsIC8qIENCX0JMRU5EX0dSRUVOICovCisJMHgwMDAwMDAwMCwgLyogQ0JfQkxFTkRfQkxV RSAqLworCTB4MDAwMDAwMDAsIC8qIENCX0JMRU5EX0FMUEhBICovCisKKwkweGMwMDE2OTAwLAor CTB4MDAwMDAxODcsCisJMHgwMDAwMDEwMCwgLyogU1BJX1ZTX09VVF9JRF8wICovCisKKwkweGMw MDI2OTAwLAorCTB4MDAwMDAxOTEsCisJMHgwMDAwMDEwMCwgLyogU1BJX1BTX0lOUFVUX0NOVExf MCAqLworCTB4MDAwMDAxMDEsIC8qIFNQSV9QU19JTlBVVF9DTlRMXzEgKi8KKworCTB4YzAwMTY5 MDAsCisJMHgwMDAwMDFiMSwKKwkweDAwMDAwMDAwLCAvKiBTUElfVlNfT1VUX0NPTkZJRyAqLwor CisJMHhjMDEwNjkwMCwKKwkweDAwMDAwMWIzLAorCTB4MjAwMDAwMDEsIC8qIFNQSV9QU19JTl9D T05UUk9MXzAgKi8KKwkweDAwMDAwMDAwLCAvKiBTUElfUFNfSU5fQ09OVFJPTF8xICovCisJMHgw MDAwMDAwMCwgLyogU1BJX0lOVEVSUF9DT05UUk9MXzAgKi8KKwkweDAwMDAwMDAwLCAvKiBTUElf SU5QVVRfWiAqLworCTB4MDAwMDAwMDAsIC8qIFNQSV9GT0dfQ05UTCAqLworCTB4MDAxMDAwMDAs IC8qIFNQSV9CQVJZQ19DTlRMICovCisJMHgwMDAwMDAwMCwgLyogU1BJX1BTX0lOX0NPTlRST0xf MiAqLworCTB4MDAwMDAwMDAsIC8qIFNQSV9DT01QVVRFX0lOUFVUX0NOVEwgKi8KKwkweDAwMDAw MDAwLCAvKiBTUElfQ09NUFVURV9OVU1fVEhSRUFEX1ggKi8KKwkweDAwMDAwMDAwLCAvKiBTUElf Q09NUFVURV9OVU1fVEhSRUFEX1kgKi8KKwkweDAwMDAwMDAwLCAvKiBTUElfQ09NUFVURV9OVU1f VEhSRUFEX1ogKi8KKwkweDAwMDAwMDAwLCAvKiBTUElfR1BSX01HTVQgKi8KKwkweDAwMDAwMDAw LCAvKiBTUElfTERTX01HTVQgKi8KKwkweDAwMDAwMDAwLCAvKiBTUElfU1RBQ0tfTUdNVCAqLwor CTB4MDAwMDAwMDAsIC8qIFNQSV9XQVZFX01HTVRfMSAqLworCTB4MDAwMDAwMDAsIC8qIFNQSV9X QVZFX01HTVRfMiAqLworCisJMHhjMDAxNjkwMCwKKwkweDAwMDAwMWUwLAorCTB4MDAwMDAwMDAs IC8qIENCX0JMRU5EMF9DT05UUk9MICovCisKKwkweGMwMGU2OTAwLAorCTB4MDAwMDAyMDAsCisJ MHgwMDAwMDAwMCwgLyogREJfREVQVEhfQ09OVFJPTCAqLworCTB4MDAwMDAwMDAsIC8qIERCX0VR QUEgKi8KKwkweDAwY2MwMDEwLCAvKiBDQl9DT0xPUl9DT05UUk9MICovCisJMHgwMDAwMDIxMCwg LyogREJfU0hBREVSX0NPTlRST0wgKi8KKwkweDAwMDEwMDAwLCAvKiBQQV9DTF9DTElQX0NOVEwg Ki8KKwkweDAwMDAwMDA0LCAvKiBQQV9TVV9TQ19NT0RFX0NOVEwgKi8KKwkweDAwMDAwMTAwLCAv KiBQQV9DTF9WVEVfQ05UTCAqLworCTB4MDAwMDAwMDAsIC8qIFBBX0NMX1ZTX09VVF9DTlRMICov CisJMHgwMDAwMDAwMCwgLyogUEFfQ0xfTkFOSU5GX0NOVEwgKi8KKwkweDAwMDAwMDAwLCAvKiBQ QV9TVV9MSU5FX1NUSVBQTEVfQ05UTCAqLworCTB4MDAwMDAwMDAsIC8qIFBBX1NVX0xJTkVfU1RJ UFBMRV9TQ0FMRSAqLworCTB4MDAwMDAwMDAsIC8qIFBBX1NVX1BSSU1fRklMVEVSX0NOVEwgKi8K KwkweDAwMDAwMDAwLCAvKiAgKi8KKwkweDAwMDAwMDAwLCAvKiAgKi8KKworCTB4YzAwMjY5MDAs CisJMHgwMDAwMDIyOSwKKwkweDAwMDAwMDAwLCAvKiBTUV9QR01fU1RBUlRfRlMgKi8KKwkweDAw MDAwMDAwLAorCisJMHhjMDAxNjkwMCwKKwkweDAwMDAwMjNiLAorCTB4MDAwMDAwMDAsIC8qIFNR X0xEU19BTExPQ19QUyAqLworCisJMHhjMDA2NjkwMCwKKwkweDAwMDAwMjQwLAorCTB4MDAwMDAw MDAsIC8qIFNRX0VTR1NfUklOR19JVEVNU0laRSAqLworCTB4MDAwMDAwMDAsCisJMHgwMDAwMDAw MCwKKwkweDAwMDAwMDAwLAorCTB4MDAwMDAwMDAsCisJMHgwMDAwMDAwMCwKKworCTB4YzAwNDY5 MDAsCisJMHgwMDAwMDI0NywKKwkweDAwMDAwMDAwLCAvKiBTUV9HU19WRVJUX0lURU1TSVpFICov CisJMHgwMDAwMDAwMCwKKwkweDAwMDAwMDAwLAorCTB4MDAwMDAwMDAsCisKKwkweGMwMTE2OTAw LAorCTB4MDAwMDAyODAsCisJMHgwMDAwMDAwMCwgLyogUEFfU1VfUE9JTlRfU0laRSAqLworCTB4 MDAwMDAwMDAsIC8qIFBBX1NVX1BPSU5UX01JTk1BWCAqLworCTB4MDAwMDAwMDgsIC8qIFBBX1NV X0xJTkVfQ05UTCAqLworCTB4MDAwMDAwMDAsIC8qIFBBX1NDX0xJTkVfU1RJUFBMRSAqLworCTB4 MDAwMDAwMDAsIC8qIFZHVF9PVVRQVVRfUEFUSF9DTlRMICovCisJMHgwMDAwMDAwMCwgLyogVkdU X0hPU19DTlRMICovCisJMHgwMDAwMDAwMCwKKwkweDAwMDAwMDAwLAorCTB4MDAwMDAwMDAsCisJ MHgwMDAwMDAwMCwKKwkweDAwMDAwMDAwLAorCTB4MDAwMDAwMDAsCisJMHgwMDAwMDAwMCwKKwkw eDAwMDAwMDAwLAorCTB4MDAwMDAwMDAsCisJMHgwMDAwMDAwMCwKKwkweDAwMDAwMDAwLCAvKiBW R1RfR1NfTU9ERSAqLworCisJMHhjMDAyNjkwMCwKKwkweDAwMDAwMjkyLAorCTB4MDAwMDAwMDAs IC8qIFBBX1NDX01PREVfQ05UTF8wICovCisJMHgwMDAwMDAwMCwgLyogUEFfU0NfTU9ERV9DTlRM XzEgKi8KKworCTB4YzAwMTY5MDAsCisJMHgwMDAwMDJhMSwKKwkweDAwMDAwMDAwLCAvKiBWR1Rf UFJJTUlUSVZFSURfRU4gKi8KKworCTB4YzAwMTY5MDAsCisJMHgwMDAwMDJhNSwKKwkweDAwMDAw MDAwLCAvKiBWR1RfTVVMVElfUFJJTV9JQl9SRVNFVF9FTiAqLworCisJMHhjMDAyNjkwMCwKKwkw eDAwMDAwMmE4LAorCTB4MDAwMDAwMDAsIC8qIFZHVF9JTlNUQU5DRV9TVEVQX1JBVEVfMCAqLwor CTB4MDAwMDAwMDAsCisKKwkweGMwMDI2OTAwLAorCTB4MDAwMDAyYWQsCisJMHgwMDAwMDAwMCwg LyogVkdUX1JFVVNFX09GRiAqLworCTB4MDAwMDAwMDAsCisKKwkweGMwMDE2OTAwLAorCTB4MDAw MDAyZDUsCisJMHgwMDAwMDAwMCwgLyogVkdUX1NIQURFUl9TVEFHRVNfRU4gKi8KKworCTB4YzAw MTY5MDAsCisJMHgwMDAwMDJkYywKKwkweDAwMDBhYTAwLCAvKiBEQl9BTFBIQV9UT19NQVNLICov CisKKwkweGMwMDY2OTAwLAorCTB4MDAwMDAyZGUsCisJMHgwMDAwMDAwMCwgLyogUEFfU1VfUE9M WV9PRkZTRVRfREJfRk1UX0NOVEwgKi8KKwkweDAwMDAwMDAwLAorCTB4MDAwMDAwMDAsCisJMHgw MDAwMDAwMCwKKwkweDAwMDAwMDAwLAorCTB4MDAwMDAwMDAsCisKKwkweGMwMDI2OTAwLAorCTB4 MDAwMDAyZTUsCisJMHgwMDAwMDAwMCwgLyogVkdUX1NUUk1PVVRfQ09ORklHICovCisJMHgwMDAw MDAwMCwKKworCTB4YzAxYjY5MDAsCisJMHgwMDAwMDJmNSwKKwkweDc2NTQzMjEwLCAvKiBQQV9T Q19DRU5UUk9JRF9QUklPUklUWV8wICovCisJMHhmZWRjYmE5OCwgLyogUEFfU0NfQ0VOVFJPSURf UFJJT1JJVFlfMSAqLworCTB4MDAwMDAwMDAsIC8qIFBBX1NDX0xJTkVfQ05UTCAqLworCTB4MDAw MDAwMDAsIC8qIFBBX1NDX0FBX0NPTkZJRyAqLworCTB4MDAwMDAwMDUsIC8qIFBBX1NVX1ZUWF9D TlRMICovCisJMHgzZjgwMDAwMCwgLyogUEFfQ0xfR0JfVkVSVF9DTElQX0FESiAqLworCTB4M2Y4 MDAwMDAsIC8qIFBBX0NMX0dCX1ZFUlRfRElTQ19BREogKi8KKwkweDNmODAwMDAwLCAvKiBQQV9D TF9HQl9IT1JaX0NMSVBfQURKICovCisJMHgzZjgwMDAwMCwgLyogUEFfQ0xfR0JfSE9SWl9ESVND X0FESiAqLworCTB4MDAwMDAwMDAsIC8qIFBBX1NDX0FBX1NBTVBMRV9MT0NTX1BJWEVMX1gwWTBf MCAqLworCTB4MDAwMDAwMDAsCisJMHgwMDAwMDAwMCwKKwkweDAwMDAwMDAwLAorCTB4MDAwMDAw MDAsCisJMHgwMDAwMDAwMCwKKwkweDAwMDAwMDAwLAorCTB4MDAwMDAwMDAsCisJMHgwMDAwMDAw MCwKKwkweDAwMDAwMDAwLAorCTB4MDAwMDAwMDAsCisJMHgwMDAwMDAwMCwKKwkweDAwMDAwMDAw LAorCTB4MDAwMDAwMDAsCisJMHgwMDAwMDAwMCwKKwkweDAwMDAwMDAwLAorCTB4ZmZmZmZmZmYs IC8qIFBBX1NDX0FBX01BU0tfWDBZMF9YMVkwICovCisJMHhmZmZmZmZmZiwKKworCTB4YzAwMjY5 MDAsCisJMHgwMDAwMDMxNiwKKwkweDAwMDAwMDBlLCAvKiBWR1RfVkVSVEVYX1JFVVNFX0JMT0NL X0NOVEwgKi8KKwkweDAwMDAwMDEwLCAvKiAgKi8KK307CisKK2NvbnN0IHUzMiBjYXltYW5fdnNb XSA9Cit7CisJMHgwMDAwMDAwNCwKKwkweDgwNDAwNDAwLAorCTB4MDAwMGEwM2MsCisJMHg5NTAw MDY4OCwKKwkweDAwMDA0MDAwLAorCTB4MTUwMDA2ODgsCisJMHgwMDAwMDAwMCwKKwkweDg4MDAw MDAwLAorCTB4MDQwMDAwMDAsCisJMHg2Nzk2MTAwMSwKKyNpZmRlZiBfX0JJR19FTkRJQU4KKwkw eDAwMDIwMDAwLAorI2Vsc2UKKwkweDAwMDAwMDAwLAorI2VuZGlmCisJMHgwMDAwMDAwMCwKKwkw eDA0MDAwMDAwLAorCTB4Njc5NjEwMDAsCisjaWZkZWYgX19CSUdfRU5ESUFOCisJMHgwMDAyMDAw OCwKKyNlbHNlCisJMHgwMDAwMDAwOCwKKyNlbmRpZgorCTB4MDAwMDAwMDAsCit9OworCitjb25z dCB1MzIgY2F5bWFuX3BzW10gPQoreworCTB4MDAwMDAwMDQsCisJMHhhMDBjMDAwMCwKKwkweDAw MDAwMDA4LAorCTB4ODA0MDAwMDAsCisJMHgwMDAwMDAwMCwKKwkweDk1MDAwNjg4LAorCTB4MDAw MDAwMDAsCisJMHg4ODAwMDAwMCwKKwkweDAwMzgwNDAwLAorCTB4MDAxNDZiMTAsCisJMHgwMDM4 MDAwMCwKKwkweDIwMTQ2YjEwLAorCTB4MDAzODA0MDAsCisJMHg0MDE0NmIwMCwKKwkweDgwMzgw MDAwLAorCTB4NjAxNDZiMDAsCisJMHgwMDAwMDAxMCwKKwkweDAwMGQxMDAwLAorCTB4YjA4MDAw MDAsCisJMHgwMDAwMDAwMCwKIH07CiAKK2NvbnN0IHUzMiBjYXltYW5fcHNfc2l6ZSA9IEFSUkFZ X1NJWkUoY2F5bWFuX3BzKTsKK2NvbnN0IHUzMiBjYXltYW5fdnNfc2l6ZSA9IEFSUkFZX1NJWkUo Y2F5bWFuX3ZzKTsKIGNvbnN0IHUzMiBjYXltYW5fZGVmYXVsdF9zaXplID0gQVJSQVlfU0laRShj YXltYW5fZGVmYXVsdF9zdGF0ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L2NheW1hbl9ibGl0X3NoYWRlcnMuaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vY2F5bWFuX2Js aXRfc2hhZGVycy5oCmluZGV4IDMzYjc1ZTUuLmY1ZDBlOWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vY2F5bWFuX2JsaXRfc2hhZGVycy5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vY2F5bWFuX2JsaXRfc2hhZGVycy5oCkBAIC0yNSw4ICsyNSwxMSBAQAogI2lmbmRl ZiBDQVlNQU5fQkxJVF9TSEFERVJTX0gKICNkZWZpbmUgQ0FZTUFOX0JMSVRfU0hBREVSU19ICiAK K2V4dGVybiBjb25zdCB1MzIgY2F5bWFuX3BzW107CitleHRlcm4gY29uc3QgdTMyIGNheW1hbl92 c1tdOwogZXh0ZXJuIGNvbnN0IHUzMiBjYXltYW5fZGVmYXVsdF9zdGF0ZVtdOwogCitleHRlcm4g Y29uc3QgdTMyIGNheW1hbl9wc19zaXplLCBjYXltYW5fdnNfc2l6ZTsKIGV4dGVybiBjb25zdCB1 MzIgY2F5bWFuX2RlZmF1bHRfc2l6ZTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL2V2ZXJncmVlbl9ibGl0X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9ldmVyZ3JlZW5fYmxpdF9rbXMuYwppbmRleCA0MDg2NzI5Li5hNjBhZDI4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbl9ibGl0X2ttcy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuX2JsaXRfa21zLmMKQEAgLTMxLDYgKzMxLDcgQEAK IAogI2luY2x1ZGUgImV2ZXJncmVlbmQuaCIKICNpbmNsdWRlICJldmVyZ3JlZW5fYmxpdF9zaGFk ZXJzLmgiCisjaW5jbHVkZSAiY2F5bWFuX2JsaXRfc2hhZGVycy5oIgogCiAjZGVmaW5lIERJX1BU X1JFQ1RMSVNUICAgICAgICAweDExCiAjZGVmaW5lIERJX0lOREVYX1NJWkVfMTZfQklUICAweDAK QEAgLTI2NSwyMzggKzI2NiwyNDAgQEAgc2V0X2RlZmF1bHRfc3RhdGUoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYpCiAJdTY0IGdwdV9hZGRyOwogCWludCBkd29yZHM7CiAKLQlzd2l0Y2ggKHJk ZXYtPmZhbWlseSkgewotCWNhc2UgQ0hJUF9DRURBUjoKLQlkZWZhdWx0OgotCQludW1fcHNfZ3By cyA9IDkzOwotCQludW1fdnNfZ3BycyA9IDQ2OwotCQludW1fdGVtcF9ncHJzID0gNDsKLQkJbnVt X2dzX2dwcnMgPSAzMTsKLQkJbnVtX2VzX2dwcnMgPSAzMTsKLQkJbnVtX2hzX2dwcnMgPSAyMzsK LQkJbnVtX2xzX2dwcnMgPSAyMzsKLQkJbnVtX3BzX3RocmVhZHMgPSA5NjsKLQkJbnVtX3ZzX3Ro cmVhZHMgPSAxNjsKLQkJbnVtX2dzX3RocmVhZHMgPSAxNjsKLQkJbnVtX2VzX3RocmVhZHMgPSAx NjsKLQkJbnVtX2hzX3RocmVhZHMgPSAxNjsKLQkJbnVtX2xzX3RocmVhZHMgPSAxNjsKLQkJbnVt X3BzX3N0YWNrX2VudHJpZXMgPSA0MjsKLQkJbnVtX3ZzX3N0YWNrX2VudHJpZXMgPSA0MjsKLQkJ bnVtX2dzX3N0YWNrX2VudHJpZXMgPSA0MjsKLQkJbnVtX2VzX3N0YWNrX2VudHJpZXMgPSA0MjsK LQkJbnVtX2hzX3N0YWNrX2VudHJpZXMgPSA0MjsKLQkJbnVtX2xzX3N0YWNrX2VudHJpZXMgPSA0 MjsKLQkJYnJlYWs7Ci0JY2FzZSBDSElQX1JFRFdPT0Q6Ci0JCW51bV9wc19ncHJzID0gOTM7Ci0J CW51bV92c19ncHJzID0gNDY7Ci0JCW51bV90ZW1wX2dwcnMgPSA0OwotCQludW1fZ3NfZ3BycyA9 IDMxOwotCQludW1fZXNfZ3BycyA9IDMxOwotCQludW1faHNfZ3BycyA9IDIzOwotCQludW1fbHNf Z3BycyA9IDIzOwotCQludW1fcHNfdGhyZWFkcyA9IDEyODsKLQkJbnVtX3ZzX3RocmVhZHMgPSAy MDsKLQkJbnVtX2dzX3RocmVhZHMgPSAyMDsKLQkJbnVtX2VzX3RocmVhZHMgPSAyMDsKLQkJbnVt X2hzX3RocmVhZHMgPSAyMDsKLQkJbnVtX2xzX3RocmVhZHMgPSAyMDsKLQkJbnVtX3BzX3N0YWNr X2VudHJpZXMgPSA0MjsKLQkJbnVtX3ZzX3N0YWNrX2VudHJpZXMgPSA0MjsKLQkJbnVtX2dzX3N0 YWNrX2VudHJpZXMgPSA0MjsKLQkJbnVtX2VzX3N0YWNrX2VudHJpZXMgPSA0MjsKLQkJbnVtX2hz X3N0YWNrX2VudHJpZXMgPSA0MjsKLQkJbnVtX2xzX3N0YWNrX2VudHJpZXMgPSA0MjsKLQkJYnJl YWs7Ci0JY2FzZSBDSElQX0pVTklQRVI6Ci0JCW51bV9wc19ncHJzID0gOTM7Ci0JCW51bV92c19n cHJzID0gNDY7Ci0JCW51bV90ZW1wX2dwcnMgPSA0OwotCQludW1fZ3NfZ3BycyA9IDMxOwotCQlu dW1fZXNfZ3BycyA9IDMxOwotCQludW1faHNfZ3BycyA9IDIzOwotCQludW1fbHNfZ3BycyA9IDIz OwotCQludW1fcHNfdGhyZWFkcyA9IDEyODsKLQkJbnVtX3ZzX3RocmVhZHMgPSAyMDsKLQkJbnVt X2dzX3RocmVhZHMgPSAyMDsKLQkJbnVtX2VzX3RocmVhZHMgPSAyMDsKLQkJbnVtX2hzX3RocmVh ZHMgPSAyMDsKLQkJbnVtX2xzX3RocmVhZHMgPSAyMDsKLQkJbnVtX3BzX3N0YWNrX2VudHJpZXMg PSA4NTsKLQkJbnVtX3ZzX3N0YWNrX2VudHJpZXMgPSA4NTsKLQkJbnVtX2dzX3N0YWNrX2VudHJp ZXMgPSA4NTsKLQkJbnVtX2VzX3N0YWNrX2VudHJpZXMgPSA4NTsKLQkJbnVtX2hzX3N0YWNrX2Vu dHJpZXMgPSA4NTsKLQkJbnVtX2xzX3N0YWNrX2VudHJpZXMgPSA4NTsKLQkJYnJlYWs7Ci0JY2Fz ZSBDSElQX0NZUFJFU1M6Ci0JY2FzZSBDSElQX0hFTUxPQ0s6Ci0JCW51bV9wc19ncHJzID0gOTM7 Ci0JCW51bV92c19ncHJzID0gNDY7Ci0JCW51bV90ZW1wX2dwcnMgPSA0OwotCQludW1fZ3NfZ3By cyA9IDMxOwotCQludW1fZXNfZ3BycyA9IDMxOwotCQludW1faHNfZ3BycyA9IDIzOwotCQludW1f bHNfZ3BycyA9IDIzOwotCQludW1fcHNfdGhyZWFkcyA9IDEyODsKLQkJbnVtX3ZzX3RocmVhZHMg PSAyMDsKLQkJbnVtX2dzX3RocmVhZHMgPSAyMDsKLQkJbnVtX2VzX3RocmVhZHMgPSAyMDsKLQkJ bnVtX2hzX3RocmVhZHMgPSAyMDsKLQkJbnVtX2xzX3RocmVhZHMgPSAyMDsKLQkJbnVtX3BzX3N0 YWNrX2VudHJpZXMgPSA4NTsKLQkJbnVtX3ZzX3N0YWNrX2VudHJpZXMgPSA4NTsKLQkJbnVtX2dz X3N0YWNrX2VudHJpZXMgPSA4NTsKLQkJbnVtX2VzX3N0YWNrX2VudHJpZXMgPSA4NTsKLQkJbnVt X2hzX3N0YWNrX2VudHJpZXMgPSA4NTsKLQkJbnVtX2xzX3N0YWNrX2VudHJpZXMgPSA4NTsKLQkJ YnJlYWs7Ci0JY2FzZSBDSElQX1BBTE06Ci0JCW51bV9wc19ncHJzID0gOTM7Ci0JCW51bV92c19n cHJzID0gNDY7Ci0JCW51bV90ZW1wX2dwcnMgPSA0OwotCQludW1fZ3NfZ3BycyA9IDMxOwotCQlu dW1fZXNfZ3BycyA9IDMxOwotCQludW1faHNfZ3BycyA9IDIzOwotCQludW1fbHNfZ3BycyA9IDIz OwotCQludW1fcHNfdGhyZWFkcyA9IDk2OwotCQludW1fdnNfdGhyZWFkcyA9IDE2OwotCQludW1f Z3NfdGhyZWFkcyA9IDE2OwotCQludW1fZXNfdGhyZWFkcyA9IDE2OwotCQludW1faHNfdGhyZWFk cyA9IDE2OwotCQludW1fbHNfdGhyZWFkcyA9IDE2OwotCQludW1fcHNfc3RhY2tfZW50cmllcyA9 IDQyOwotCQludW1fdnNfc3RhY2tfZW50cmllcyA9IDQyOwotCQludW1fZ3Nfc3RhY2tfZW50cmll cyA9IDQyOwotCQludW1fZXNfc3RhY2tfZW50cmllcyA9IDQyOwotCQludW1faHNfc3RhY2tfZW50 cmllcyA9IDQyOwotCQludW1fbHNfc3RhY2tfZW50cmllcyA9IDQyOwotCQlicmVhazsKLQljYXNl IENISVBfQkFSVFM6Ci0JCW51bV9wc19ncHJzID0gOTM7Ci0JCW51bV92c19ncHJzID0gNDY7Ci0J CW51bV90ZW1wX2dwcnMgPSA0OwotCQludW1fZ3NfZ3BycyA9IDMxOwotCQludW1fZXNfZ3BycyA9 IDMxOwotCQludW1faHNfZ3BycyA9IDIzOwotCQludW1fbHNfZ3BycyA9IDIzOwotCQludW1fcHNf dGhyZWFkcyA9IDEyODsKLQkJbnVtX3ZzX3RocmVhZHMgPSAyMDsKLQkJbnVtX2dzX3RocmVhZHMg PSAyMDsKLQkJbnVtX2VzX3RocmVhZHMgPSAyMDsKLQkJbnVtX2hzX3RocmVhZHMgPSAyMDsKLQkJ bnVtX2xzX3RocmVhZHMgPSAyMDsKLQkJbnVtX3BzX3N0YWNrX2VudHJpZXMgPSA4NTsKLQkJbnVt X3ZzX3N0YWNrX2VudHJpZXMgPSA4NTsKLQkJbnVtX2dzX3N0YWNrX2VudHJpZXMgPSA4NTsKLQkJ bnVtX2VzX3N0YWNrX2VudHJpZXMgPSA4NTsKLQkJbnVtX2hzX3N0YWNrX2VudHJpZXMgPSA4NTsK LQkJbnVtX2xzX3N0YWNrX2VudHJpZXMgPSA4NTsKLQkJYnJlYWs7Ci0JY2FzZSBDSElQX1RVUktT OgotCQludW1fcHNfZ3BycyA9IDkzOwotCQludW1fdnNfZ3BycyA9IDQ2OwotCQludW1fdGVtcF9n cHJzID0gNDsKLQkJbnVtX2dzX2dwcnMgPSAzMTsKLQkJbnVtX2VzX2dwcnMgPSAzMTsKLQkJbnVt X2hzX2dwcnMgPSAyMzsKLQkJbnVtX2xzX2dwcnMgPSAyMzsKLQkJbnVtX3BzX3RocmVhZHMgPSAx Mjg7Ci0JCW51bV92c190aHJlYWRzID0gMjA7Ci0JCW51bV9nc190aHJlYWRzID0gMjA7Ci0JCW51 bV9lc190aHJlYWRzID0gMjA7Ci0JCW51bV9oc190aHJlYWRzID0gMjA7Ci0JCW51bV9sc190aHJl YWRzID0gMjA7Ci0JCW51bV9wc19zdGFja19lbnRyaWVzID0gNDI7Ci0JCW51bV92c19zdGFja19l bnRyaWVzID0gNDI7Ci0JCW51bV9nc19zdGFja19lbnRyaWVzID0gNDI7Ci0JCW51bV9lc19zdGFj a19lbnRyaWVzID0gNDI7Ci0JCW51bV9oc19zdGFja19lbnRyaWVzID0gNDI7Ci0JCW51bV9sc19z dGFja19lbnRyaWVzID0gNDI7Ci0JCWJyZWFrOwotCWNhc2UgQ0hJUF9DQUlDT1M6Ci0JCW51bV9w c19ncHJzID0gOTM7Ci0JCW51bV92c19ncHJzID0gNDY7Ci0JCW51bV90ZW1wX2dwcnMgPSA0Owot CQludW1fZ3NfZ3BycyA9IDMxOwotCQludW1fZXNfZ3BycyA9IDMxOwotCQludW1faHNfZ3BycyA9 IDIzOwotCQludW1fbHNfZ3BycyA9IDIzOwotCQludW1fcHNfdGhyZWFkcyA9IDEyODsKLQkJbnVt X3ZzX3RocmVhZHMgPSAxMDsKLQkJbnVtX2dzX3RocmVhZHMgPSAxMDsKLQkJbnVtX2VzX3RocmVh ZHMgPSAxMDsKLQkJbnVtX2hzX3RocmVhZHMgPSAxMDsKLQkJbnVtX2xzX3RocmVhZHMgPSAxMDsK LQkJbnVtX3BzX3N0YWNrX2VudHJpZXMgPSA0MjsKLQkJbnVtX3ZzX3N0YWNrX2VudHJpZXMgPSA0 MjsKLQkJbnVtX2dzX3N0YWNrX2VudHJpZXMgPSA0MjsKLQkJbnVtX2VzX3N0YWNrX2VudHJpZXMg PSA0MjsKLQkJbnVtX2hzX3N0YWNrX2VudHJpZXMgPSA0MjsKLQkJbnVtX2xzX3N0YWNrX2VudHJp ZXMgPSA0MjsKLQkJYnJlYWs7Ci0JfQotCi0JaWYgKChyZGV2LT5mYW1pbHkgPT0gQ0hJUF9DRURB UikgfHwKLQkgICAgKHJkZXYtPmZhbWlseSA9PSBDSElQX1BBTE0pIHx8Ci0JICAgIChyZGV2LT5m YW1pbHkgPT0gQ0hJUF9DQUlDT1MpKQotCQlzcV9jb25maWcgPSAwOwotCWVsc2UKLQkJc3FfY29u ZmlnID0gVkNfRU5BQkxFOwotCi0Jc3FfY29uZmlnIHw9IChFWFBPUlRfU1JDX0MgfAotCQkgICAg ICBDU19QUklPKDApIHwKLQkJICAgICAgTFNfUFJJTygwKSB8Ci0JCSAgICAgIEhTX1BSSU8oMCkg fAotCQkgICAgICBQU19QUklPKDApIHwKLQkJICAgICAgVlNfUFJJTygxKSB8Ci0JCSAgICAgIEdT X1BSSU8oMikgfAotCQkgICAgICBFU19QUklPKDMpKTsKLQotCXNxX2dwcl9yZXNvdXJjZV9tZ210 XzEgPSAoTlVNX1BTX0dQUlMobnVtX3BzX2dwcnMpIHwKLQkJCQkgIE5VTV9WU19HUFJTKG51bV92 c19ncHJzKSB8Ci0JCQkJICBOVU1fQ0xBVVNFX1RFTVBfR1BSUyhudW1fdGVtcF9ncHJzKSk7Ci0J c3FfZ3ByX3Jlc291cmNlX21nbXRfMiA9IChOVU1fR1NfR1BSUyhudW1fZ3NfZ3BycykgfAotCQkJ CSAgTlVNX0VTX0dQUlMobnVtX2VzX2dwcnMpKTsKLQlzcV9ncHJfcmVzb3VyY2VfbWdtdF8zID0g KE5VTV9IU19HUFJTKG51bV9oc19ncHJzKSB8Ci0JCQkJICBOVU1fTFNfR1BSUyhudW1fbHNfZ3By cykpOwotCXNxX3RocmVhZF9yZXNvdXJjZV9tZ210ID0gKE5VTV9QU19USFJFQURTKG51bV9wc190 aHJlYWRzKSB8Ci0JCQkJICAgTlVNX1ZTX1RIUkVBRFMobnVtX3ZzX3RocmVhZHMpIHwKLQkJCQkg ICBOVU1fR1NfVEhSRUFEUyhudW1fZ3NfdGhyZWFkcykgfAotCQkJCSAgIE5VTV9FU19USFJFQURT KG51bV9lc190aHJlYWRzKSk7Ci0Jc3FfdGhyZWFkX3Jlc291cmNlX21nbXRfMiA9IChOVU1fSFNf VEhSRUFEUyhudW1faHNfdGhyZWFkcykgfAotCQkJCSAgICAgTlVNX0xTX1RIUkVBRFMobnVtX2xz X3RocmVhZHMpKTsKLQlzcV9zdGFja19yZXNvdXJjZV9tZ210XzEgPSAoTlVNX1BTX1NUQUNLX0VO VFJJRVMobnVtX3BzX3N0YWNrX2VudHJpZXMpIHwKLQkJCQkgICAgTlVNX1ZTX1NUQUNLX0VOVFJJ RVMobnVtX3ZzX3N0YWNrX2VudHJpZXMpKTsKLQlzcV9zdGFja19yZXNvdXJjZV9tZ210XzIgPSAo TlVNX0dTX1NUQUNLX0VOVFJJRVMobnVtX2dzX3N0YWNrX2VudHJpZXMpIHwKLQkJCQkgICAgTlVN X0VTX1NUQUNLX0VOVFJJRVMobnVtX2VzX3N0YWNrX2VudHJpZXMpKTsKLQlzcV9zdGFja19yZXNv dXJjZV9tZ210XzMgPSAoTlVNX0hTX1NUQUNLX0VOVFJJRVMobnVtX2hzX3N0YWNrX2VudHJpZXMp IHwKLQkJCQkgICAgTlVNX0xTX1NUQUNLX0VOVFJJRVMobnVtX2xzX3N0YWNrX2VudHJpZXMpKTsK LQogCS8qIHNldCBjbGVhciBjb250ZXh0IHN0YXRlICovCiAJcmFkZW9uX3Jpbmdfd3JpdGUocmRl diwgUEFDS0VUMyhQQUNLRVQzX0NMRUFSX1NUQVRFLCAwKSk7CiAJcmFkZW9uX3Jpbmdfd3JpdGUo cmRldiwgMCk7CiAKLQkvKiBkaXNhYmxlIGR5biBncHJzICovCi0JcmFkZW9uX3Jpbmdfd3JpdGUo cmRldiwgUEFDS0VUMyhQQUNLRVQzX1NFVF9DT05GSUdfUkVHLCAxKSk7Ci0JcmFkZW9uX3Jpbmdf d3JpdGUocmRldiwgKFNRX0RZTl9HUFJfQ05UTF9QU19GTFVTSF9SRVEgLSBQQUNLRVQzX1NFVF9D T05GSUdfUkVHX1NUQVJUKSA+PiAyKTsKLQlyYWRlb25fcmluZ193cml0ZShyZGV2LCAwKTsKKwlp ZiAocmRldi0+ZmFtaWx5IDwgQ0hJUF9DQVlNQU4pIHsKKwkJc3dpdGNoIChyZGV2LT5mYW1pbHkp IHsKKwkJY2FzZSBDSElQX0NFREFSOgorCQlkZWZhdWx0OgorCQkJbnVtX3BzX2dwcnMgPSA5MzsK KwkJCW51bV92c19ncHJzID0gNDY7CisJCQludW1fdGVtcF9ncHJzID0gNDsKKwkJCW51bV9nc19n cHJzID0gMzE7CisJCQludW1fZXNfZ3BycyA9IDMxOworCQkJbnVtX2hzX2dwcnMgPSAyMzsKKwkJ CW51bV9sc19ncHJzID0gMjM7CisJCQludW1fcHNfdGhyZWFkcyA9IDk2OworCQkJbnVtX3ZzX3Ro cmVhZHMgPSAxNjsKKwkJCW51bV9nc190aHJlYWRzID0gMTY7CisJCQludW1fZXNfdGhyZWFkcyA9 IDE2OworCQkJbnVtX2hzX3RocmVhZHMgPSAxNjsKKwkJCW51bV9sc190aHJlYWRzID0gMTY7CisJ CQludW1fcHNfc3RhY2tfZW50cmllcyA9IDQyOworCQkJbnVtX3ZzX3N0YWNrX2VudHJpZXMgPSA0 MjsKKwkJCW51bV9nc19zdGFja19lbnRyaWVzID0gNDI7CisJCQludW1fZXNfc3RhY2tfZW50cmll cyA9IDQyOworCQkJbnVtX2hzX3N0YWNrX2VudHJpZXMgPSA0MjsKKwkJCW51bV9sc19zdGFja19l bnRyaWVzID0gNDI7CisJCQlicmVhazsKKwkJY2FzZSBDSElQX1JFRFdPT0Q6CisJCQludW1fcHNf Z3BycyA9IDkzOworCQkJbnVtX3ZzX2dwcnMgPSA0NjsKKwkJCW51bV90ZW1wX2dwcnMgPSA0Owor CQkJbnVtX2dzX2dwcnMgPSAzMTsKKwkJCW51bV9lc19ncHJzID0gMzE7CisJCQludW1faHNfZ3By cyA9IDIzOworCQkJbnVtX2xzX2dwcnMgPSAyMzsKKwkJCW51bV9wc190aHJlYWRzID0gMTI4Owor CQkJbnVtX3ZzX3RocmVhZHMgPSAyMDsKKwkJCW51bV9nc190aHJlYWRzID0gMjA7CisJCQludW1f ZXNfdGhyZWFkcyA9IDIwOworCQkJbnVtX2hzX3RocmVhZHMgPSAyMDsKKwkJCW51bV9sc190aHJl YWRzID0gMjA7CisJCQludW1fcHNfc3RhY2tfZW50cmllcyA9IDQyOworCQkJbnVtX3ZzX3N0YWNr X2VudHJpZXMgPSA0MjsKKwkJCW51bV9nc19zdGFja19lbnRyaWVzID0gNDI7CisJCQludW1fZXNf c3RhY2tfZW50cmllcyA9IDQyOworCQkJbnVtX2hzX3N0YWNrX2VudHJpZXMgPSA0MjsKKwkJCW51 bV9sc19zdGFja19lbnRyaWVzID0gNDI7CisJCQlicmVhazsKKwkJY2FzZSBDSElQX0pVTklQRVI6 CisJCQludW1fcHNfZ3BycyA9IDkzOworCQkJbnVtX3ZzX2dwcnMgPSA0NjsKKwkJCW51bV90ZW1w X2dwcnMgPSA0OworCQkJbnVtX2dzX2dwcnMgPSAzMTsKKwkJCW51bV9lc19ncHJzID0gMzE7CisJ CQludW1faHNfZ3BycyA9IDIzOworCQkJbnVtX2xzX2dwcnMgPSAyMzsKKwkJCW51bV9wc190aHJl YWRzID0gMTI4OworCQkJbnVtX3ZzX3RocmVhZHMgPSAyMDsKKwkJCW51bV9nc190aHJlYWRzID0g MjA7CisJCQludW1fZXNfdGhyZWFkcyA9IDIwOworCQkJbnVtX2hzX3RocmVhZHMgPSAyMDsKKwkJ CW51bV9sc190aHJlYWRzID0gMjA7CisJCQludW1fcHNfc3RhY2tfZW50cmllcyA9IDg1OworCQkJ bnVtX3ZzX3N0YWNrX2VudHJpZXMgPSA4NTsKKwkJCW51bV9nc19zdGFja19lbnRyaWVzID0gODU7 CisJCQludW1fZXNfc3RhY2tfZW50cmllcyA9IDg1OworCQkJbnVtX2hzX3N0YWNrX2VudHJpZXMg PSA4NTsKKwkJCW51bV9sc19zdGFja19lbnRyaWVzID0gODU7CisJCQlicmVhazsKKwkJY2FzZSBD SElQX0NZUFJFU1M6CisJCWNhc2UgQ0hJUF9IRU1MT0NLOgorCQkJbnVtX3BzX2dwcnMgPSA5MzsK KwkJCW51bV92c19ncHJzID0gNDY7CisJCQludW1fdGVtcF9ncHJzID0gNDsKKwkJCW51bV9nc19n cHJzID0gMzE7CisJCQludW1fZXNfZ3BycyA9IDMxOworCQkJbnVtX2hzX2dwcnMgPSAyMzsKKwkJ CW51bV9sc19ncHJzID0gMjM7CisJCQludW1fcHNfdGhyZWFkcyA9IDEyODsKKwkJCW51bV92c190 aHJlYWRzID0gMjA7CisJCQludW1fZ3NfdGhyZWFkcyA9IDIwOworCQkJbnVtX2VzX3RocmVhZHMg PSAyMDsKKwkJCW51bV9oc190aHJlYWRzID0gMjA7CisJCQludW1fbHNfdGhyZWFkcyA9IDIwOwor CQkJbnVtX3BzX3N0YWNrX2VudHJpZXMgPSA4NTsKKwkJCW51bV92c19zdGFja19lbnRyaWVzID0g ODU7CisJCQludW1fZ3Nfc3RhY2tfZW50cmllcyA9IDg1OworCQkJbnVtX2VzX3N0YWNrX2VudHJp ZXMgPSA4NTsKKwkJCW51bV9oc19zdGFja19lbnRyaWVzID0gODU7CisJCQludW1fbHNfc3RhY2tf ZW50cmllcyA9IDg1OworCQkJYnJlYWs7CisJCWNhc2UgQ0hJUF9QQUxNOgorCQkJbnVtX3BzX2dw cnMgPSA5MzsKKwkJCW51bV92c19ncHJzID0gNDY7CisJCQludW1fdGVtcF9ncHJzID0gNDsKKwkJ CW51bV9nc19ncHJzID0gMzE7CisJCQludW1fZXNfZ3BycyA9IDMxOworCQkJbnVtX2hzX2dwcnMg PSAyMzsKKwkJCW51bV9sc19ncHJzID0gMjM7CisJCQludW1fcHNfdGhyZWFkcyA9IDk2OworCQkJ bnVtX3ZzX3RocmVhZHMgPSAxNjsKKwkJCW51bV9nc190aHJlYWRzID0gMTY7CisJCQludW1fZXNf dGhyZWFkcyA9IDE2OworCQkJbnVtX2hzX3RocmVhZHMgPSAxNjsKKwkJCW51bV9sc190aHJlYWRz ID0gMTY7CisJCQludW1fcHNfc3RhY2tfZW50cmllcyA9IDQyOworCQkJbnVtX3ZzX3N0YWNrX2Vu dHJpZXMgPSA0MjsKKwkJCW51bV9nc19zdGFja19lbnRyaWVzID0gNDI7CisJCQludW1fZXNfc3Rh Y2tfZW50cmllcyA9IDQyOworCQkJbnVtX2hzX3N0YWNrX2VudHJpZXMgPSA0MjsKKwkJCW51bV9s c19zdGFja19lbnRyaWVzID0gNDI7CisJCQlicmVhazsKKwkJY2FzZSBDSElQX0JBUlRTOgorCQkJ bnVtX3BzX2dwcnMgPSA5MzsKKwkJCW51bV92c19ncHJzID0gNDY7CisJCQludW1fdGVtcF9ncHJz ID0gNDsKKwkJCW51bV9nc19ncHJzID0gMzE7CisJCQludW1fZXNfZ3BycyA9IDMxOworCQkJbnVt X2hzX2dwcnMgPSAyMzsKKwkJCW51bV9sc19ncHJzID0gMjM7CisJCQludW1fcHNfdGhyZWFkcyA9 IDEyODsKKwkJCW51bV92c190aHJlYWRzID0gMjA7CisJCQludW1fZ3NfdGhyZWFkcyA9IDIwOwor CQkJbnVtX2VzX3RocmVhZHMgPSAyMDsKKwkJCW51bV9oc190aHJlYWRzID0gMjA7CisJCQludW1f bHNfdGhyZWFkcyA9IDIwOworCQkJbnVtX3BzX3N0YWNrX2VudHJpZXMgPSA4NTsKKwkJCW51bV92 c19zdGFja19lbnRyaWVzID0gODU7CisJCQludW1fZ3Nfc3RhY2tfZW50cmllcyA9IDg1OworCQkJ bnVtX2VzX3N0YWNrX2VudHJpZXMgPSA4NTsKKwkJCW51bV9oc19zdGFja19lbnRyaWVzID0gODU7 CisJCQludW1fbHNfc3RhY2tfZW50cmllcyA9IDg1OworCQkJYnJlYWs7CisJCWNhc2UgQ0hJUF9U VVJLUzoKKwkJCW51bV9wc19ncHJzID0gOTM7CisJCQludW1fdnNfZ3BycyA9IDQ2OworCQkJbnVt X3RlbXBfZ3BycyA9IDQ7CisJCQludW1fZ3NfZ3BycyA9IDMxOworCQkJbnVtX2VzX2dwcnMgPSAz MTsKKwkJCW51bV9oc19ncHJzID0gMjM7CisJCQludW1fbHNfZ3BycyA9IDIzOworCQkJbnVtX3Bz X3RocmVhZHMgPSAxMjg7CisJCQludW1fdnNfdGhyZWFkcyA9IDIwOworCQkJbnVtX2dzX3RocmVh ZHMgPSAyMDsKKwkJCW51bV9lc190aHJlYWRzID0gMjA7CisJCQludW1faHNfdGhyZWFkcyA9IDIw OworCQkJbnVtX2xzX3RocmVhZHMgPSAyMDsKKwkJCW51bV9wc19zdGFja19lbnRyaWVzID0gNDI7 CisJCQludW1fdnNfc3RhY2tfZW50cmllcyA9IDQyOworCQkJbnVtX2dzX3N0YWNrX2VudHJpZXMg PSA0MjsKKwkJCW51bV9lc19zdGFja19lbnRyaWVzID0gNDI7CisJCQludW1faHNfc3RhY2tfZW50 cmllcyA9IDQyOworCQkJbnVtX2xzX3N0YWNrX2VudHJpZXMgPSA0MjsKKwkJCWJyZWFrOworCQlj YXNlIENISVBfQ0FJQ09TOgorCQkJbnVtX3BzX2dwcnMgPSA5MzsKKwkJCW51bV92c19ncHJzID0g NDY7CisJCQludW1fdGVtcF9ncHJzID0gNDsKKwkJCW51bV9nc19ncHJzID0gMzE7CisJCQludW1f ZXNfZ3BycyA9IDMxOworCQkJbnVtX2hzX2dwcnMgPSAyMzsKKwkJCW51bV9sc19ncHJzID0gMjM7 CisJCQludW1fcHNfdGhyZWFkcyA9IDEyODsKKwkJCW51bV92c190aHJlYWRzID0gMTA7CisJCQlu dW1fZ3NfdGhyZWFkcyA9IDEwOworCQkJbnVtX2VzX3RocmVhZHMgPSAxMDsKKwkJCW51bV9oc190 aHJlYWRzID0gMTA7CisJCQludW1fbHNfdGhyZWFkcyA9IDEwOworCQkJbnVtX3BzX3N0YWNrX2Vu dHJpZXMgPSA0MjsKKwkJCW51bV92c19zdGFja19lbnRyaWVzID0gNDI7CisJCQludW1fZ3Nfc3Rh Y2tfZW50cmllcyA9IDQyOworCQkJbnVtX2VzX3N0YWNrX2VudHJpZXMgPSA0MjsKKwkJCW51bV9o c19zdGFja19lbnRyaWVzID0gNDI7CisJCQludW1fbHNfc3RhY2tfZW50cmllcyA9IDQyOworCQkJ YnJlYWs7CisJCX0KIAotCS8qIFNRIGNvbmZpZyAqLwotCXJhZGVvbl9yaW5nX3dyaXRlKHJkZXYs IFBBQ0tFVDMoUEFDS0VUM19TRVRfQ09ORklHX1JFRywgMTEpKTsKLQlyYWRlb25fcmluZ193cml0 ZShyZGV2LCAoU1FfQ09ORklHIC0gUEFDS0VUM19TRVRfQ09ORklHX1JFR19TVEFSVCkgPj4gMik7 Ci0JcmFkZW9uX3Jpbmdfd3JpdGUocmRldiwgc3FfY29uZmlnKTsKLQlyYWRlb25fcmluZ193cml0 ZShyZGV2LCBzcV9ncHJfcmVzb3VyY2VfbWdtdF8xKTsKLQlyYWRlb25fcmluZ193cml0ZShyZGV2 LCBzcV9ncHJfcmVzb3VyY2VfbWdtdF8yKTsKLQlyYWRlb25fcmluZ193cml0ZShyZGV2LCBzcV9n cHJfcmVzb3VyY2VfbWdtdF8zKTsKLQlyYWRlb25fcmluZ193cml0ZShyZGV2LCAwKTsKLQlyYWRl b25fcmluZ193cml0ZShyZGV2LCAwKTsKLQlyYWRlb25fcmluZ193cml0ZShyZGV2LCBzcV90aHJl YWRfcmVzb3VyY2VfbWdtdCk7Ci0JcmFkZW9uX3Jpbmdfd3JpdGUocmRldiwgc3FfdGhyZWFkX3Jl c291cmNlX21nbXRfMik7Ci0JcmFkZW9uX3Jpbmdfd3JpdGUocmRldiwgc3Ffc3RhY2tfcmVzb3Vy Y2VfbWdtdF8xKTsKLQlyYWRlb25fcmluZ193cml0ZShyZGV2LCBzcV9zdGFja19yZXNvdXJjZV9t Z210XzIpOwotCXJhZGVvbl9yaW5nX3dyaXRlKHJkZXYsIHNxX3N0YWNrX3Jlc291cmNlX21nbXRf Myk7CisJCWlmICgocmRldi0+ZmFtaWx5ID09IENISVBfQ0VEQVIpIHx8CisJCSAgICAocmRldi0+ ZmFtaWx5ID09IENISVBfUEFMTSkgfHwKKwkJICAgIChyZGV2LT5mYW1pbHkgPT0gQ0hJUF9DQUlD T1MpKQorCQkJc3FfY29uZmlnID0gMDsKKwkJZWxzZQorCQkJc3FfY29uZmlnID0gVkNfRU5BQkxF OworCisJCXNxX2NvbmZpZyB8PSAoRVhQT1JUX1NSQ19DIHwKKwkJCSAgICAgIENTX1BSSU8oMCkg fAorCQkJICAgICAgTFNfUFJJTygwKSB8CisJCQkgICAgICBIU19QUklPKDApIHwKKwkJCSAgICAg IFBTX1BSSU8oMCkgfAorCQkJICAgICAgVlNfUFJJTygxKSB8CisJCQkgICAgICBHU19QUklPKDIp IHwKKwkJCSAgICAgIEVTX1BSSU8oMykpOworCisJCXNxX2dwcl9yZXNvdXJjZV9tZ210XzEgPSAo TlVNX1BTX0dQUlMobnVtX3BzX2dwcnMpIHwKKwkJCQkJICBOVU1fVlNfR1BSUyhudW1fdnNfZ3By cykgfAorCQkJCQkgIE5VTV9DTEFVU0VfVEVNUF9HUFJTKG51bV90ZW1wX2dwcnMpKTsKKwkJc3Ff Z3ByX3Jlc291cmNlX21nbXRfMiA9IChOVU1fR1NfR1BSUyhudW1fZ3NfZ3BycykgfAorCQkJCQkg IE5VTV9FU19HUFJTKG51bV9lc19ncHJzKSk7CisJCXNxX2dwcl9yZXNvdXJjZV9tZ210XzMgPSAo TlVNX0hTX0dQUlMobnVtX2hzX2dwcnMpIHwKKwkJCQkJICBOVU1fTFNfR1BSUyhudW1fbHNfZ3By cykpOworCQlzcV90aHJlYWRfcmVzb3VyY2VfbWdtdCA9IChOVU1fUFNfVEhSRUFEUyhudW1fcHNf dGhyZWFkcykgfAorCQkJCQkgICBOVU1fVlNfVEhSRUFEUyhudW1fdnNfdGhyZWFkcykgfAorCQkJ CQkgICBOVU1fR1NfVEhSRUFEUyhudW1fZ3NfdGhyZWFkcykgfAorCQkJCQkgICBOVU1fRVNfVEhS RUFEUyhudW1fZXNfdGhyZWFkcykpOworCQlzcV90aHJlYWRfcmVzb3VyY2VfbWdtdF8yID0gKE5V TV9IU19USFJFQURTKG51bV9oc190aHJlYWRzKSB8CisJCQkJCSAgICAgTlVNX0xTX1RIUkVBRFMo bnVtX2xzX3RocmVhZHMpKTsKKwkJc3Ffc3RhY2tfcmVzb3VyY2VfbWdtdF8xID0gKE5VTV9QU19T VEFDS19FTlRSSUVTKG51bV9wc19zdGFja19lbnRyaWVzKSB8CisJCQkJCSAgICBOVU1fVlNfU1RB Q0tfRU5UUklFUyhudW1fdnNfc3RhY2tfZW50cmllcykpOworCQlzcV9zdGFja19yZXNvdXJjZV9t Z210XzIgPSAoTlVNX0dTX1NUQUNLX0VOVFJJRVMobnVtX2dzX3N0YWNrX2VudHJpZXMpIHwKKwkJ CQkJICAgIE5VTV9FU19TVEFDS19FTlRSSUVTKG51bV9lc19zdGFja19lbnRyaWVzKSk7CisJCXNx X3N0YWNrX3Jlc291cmNlX21nbXRfMyA9IChOVU1fSFNfU1RBQ0tfRU5UUklFUyhudW1faHNfc3Rh Y2tfZW50cmllcykgfAorCQkJCQkgICAgTlVNX0xTX1NUQUNLX0VOVFJJRVMobnVtX2xzX3N0YWNr X2VudHJpZXMpKTsKKworCQkvKiBkaXNhYmxlIGR5biBncHJzICovCisJCXJhZGVvbl9yaW5nX3dy aXRlKHJkZXYsIFBBQ0tFVDMoUEFDS0VUM19TRVRfQ09ORklHX1JFRywgMSkpOworCQlyYWRlb25f cmluZ193cml0ZShyZGV2LCAoU1FfRFlOX0dQUl9DTlRMX1BTX0ZMVVNIX1JFUSAtIFBBQ0tFVDNf U0VUX0NPTkZJR19SRUdfU1RBUlQpID4+IDIpOworCQlyYWRlb25fcmluZ193cml0ZShyZGV2LCAw KTsKKworCQkvKiBTUSBjb25maWcgKi8KKwkJcmFkZW9uX3Jpbmdfd3JpdGUocmRldiwgUEFDS0VU MyhQQUNLRVQzX1NFVF9DT05GSUdfUkVHLCAxMSkpOworCQlyYWRlb25fcmluZ193cml0ZShyZGV2 LCAoU1FfQ09ORklHIC0gUEFDS0VUM19TRVRfQ09ORklHX1JFR19TVEFSVCkgPj4gMik7CisJCXJh ZGVvbl9yaW5nX3dyaXRlKHJkZXYsIHNxX2NvbmZpZyk7CisJCXJhZGVvbl9yaW5nX3dyaXRlKHJk ZXYsIHNxX2dwcl9yZXNvdXJjZV9tZ210XzEpOworCQlyYWRlb25fcmluZ193cml0ZShyZGV2LCBz cV9ncHJfcmVzb3VyY2VfbWdtdF8yKTsKKwkJcmFkZW9uX3Jpbmdfd3JpdGUocmRldiwgc3FfZ3By X3Jlc291cmNlX21nbXRfMyk7CisJCXJhZGVvbl9yaW5nX3dyaXRlKHJkZXYsIDApOworCQlyYWRl b25fcmluZ193cml0ZShyZGV2LCAwKTsKKwkJcmFkZW9uX3Jpbmdfd3JpdGUocmRldiwgc3FfdGhy ZWFkX3Jlc291cmNlX21nbXQpOworCQlyYWRlb25fcmluZ193cml0ZShyZGV2LCBzcV90aHJlYWRf cmVzb3VyY2VfbWdtdF8yKTsKKwkJcmFkZW9uX3Jpbmdfd3JpdGUocmRldiwgc3Ffc3RhY2tfcmVz b3VyY2VfbWdtdF8xKTsKKwkJcmFkZW9uX3Jpbmdfd3JpdGUocmRldiwgc3Ffc3RhY2tfcmVzb3Vy Y2VfbWdtdF8yKTsKKwkJcmFkZW9uX3Jpbmdfd3JpdGUocmRldiwgc3Ffc3RhY2tfcmVzb3VyY2Vf bWdtdF8zKTsKKwl9CiAKIAkvKiBDT05URVhUX0NPTlRST0wgKi8KIAlyYWRlb25fcmluZ193cml0 ZShyZGV2LCAweGMwMDEyODAwKTsKQEAgLTU3MCw3ICs1NzMsMTAgQEAgaW50IGV2ZXJncmVlbl9i bGl0X2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJbXV0ZXhfaW5pdCgmcmRldi0+ cjYwMF9ibGl0Lm11dGV4KTsKIAlyZGV2LT5yNjAwX2JsaXQuc3RhdGVfb2Zmc2V0ID0gMDsKIAot CXJkZXYtPnI2MDBfYmxpdC5zdGF0ZV9sZW4gPSBldmVyZ3JlZW5fZGVmYXVsdF9zaXplOworCWlm IChyZGV2LT5mYW1pbHkgPCBDSElQX0NBWU1BTikKKwkJcmRldi0+cjYwMF9ibGl0LnN0YXRlX2xl biA9IGV2ZXJncmVlbl9kZWZhdWx0X3NpemU7CisJZWxzZQorCQlyZGV2LT5yNjAwX2JsaXQuc3Rh dGVfbGVuID0gY2F5bWFuX2RlZmF1bHRfc2l6ZTsKIAogCWR3b3JkcyA9IHJkZXYtPnI2MDBfYmxp dC5zdGF0ZV9sZW47CiAJd2hpbGUgKGR3b3JkcyAmIDB4ZikgewpAQCAtNTgyLDExICs1ODgsMTcg QEAgaW50IGV2ZXJncmVlbl9ibGl0X2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJ b2JqX3NpemUgPSBBTElHTihvYmpfc2l6ZSwgMjU2KTsKIAogCXJkZXYtPnI2MDBfYmxpdC52c19v ZmZzZXQgPSBvYmpfc2l6ZTsKLQlvYmpfc2l6ZSArPSBldmVyZ3JlZW5fdnNfc2l6ZSAqIDQ7CisJ aWYgKHJkZXYtPmZhbWlseSA8IENISVBfQ0FZTUFOKQorCQlvYmpfc2l6ZSArPSBldmVyZ3JlZW5f dnNfc2l6ZSAqIDQ7CisJZWxzZQorCQlvYmpfc2l6ZSArPSBjYXltYW5fdnNfc2l6ZSAqIDQ7CiAJ b2JqX3NpemUgPSBBTElHTihvYmpfc2l6ZSwgMjU2KTsKIAogCXJkZXYtPnI2MDBfYmxpdC5wc19v ZmZzZXQgPSBvYmpfc2l6ZTsKLQlvYmpfc2l6ZSArPSBldmVyZ3JlZW5fcHNfc2l6ZSAqIDQ7CisJ aWYgKHJkZXYtPmZhbWlseSA8IENISVBfQ0FZTUFOKQorCQlvYmpfc2l6ZSArPSBldmVyZ3JlZW5f cHNfc2l6ZSAqIDQ7CisJZWxzZQorCQlvYmpfc2l6ZSArPSBjYXltYW5fcHNfc2l6ZSAqIDQ7CiAJ b2JqX3NpemUgPSBBTElHTihvYmpfc2l6ZSwgMjU2KTsKIAogCXIgPSByYWRlb25fYm9fY3JlYXRl KHJkZXYsIG9ial9zaXplLCBQQUdFX1NJWkUsIHRydWUsIFJBREVPTl9HRU1fRE9NQUlOX1ZSQU0s CkBAIC02MDksMTYgKzYyMSwyOSBAQCBpbnQgZXZlcmdyZWVuX2JsaXRfaW5pdChzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldikKIAkJcmV0dXJuIHI7CiAJfQogCi0JbWVtY3B5X3RvaW8ocHRyICsg cmRldi0+cjYwMF9ibGl0LnN0YXRlX29mZnNldCwKLQkJICAgIGV2ZXJncmVlbl9kZWZhdWx0X3N0 YXRlLCByZGV2LT5yNjAwX2JsaXQuc3RhdGVfbGVuICogNCk7Ci0KLQlpZiAobnVtX3BhY2tldDJz KQotCQltZW1jcHlfdG9pbyhwdHIgKyByZGV2LT5yNjAwX2JsaXQuc3RhdGVfb2Zmc2V0ICsgKHJk ZXYtPnI2MDBfYmxpdC5zdGF0ZV9sZW4gKiA0KSwKLQkJCSAgICBwYWNrZXQycywgbnVtX3BhY2tl dDJzICogNCk7Ci0JZm9yIChpID0gMDsgaSA8IGV2ZXJncmVlbl92c19zaXplOyBpKyspCi0JCSoo dTMyICopKCh1bnNpZ25lZCBsb25nKXB0ciArIHJkZXYtPnI2MDBfYmxpdC52c19vZmZzZXQgKyBp ICogNCkgPSBjcHVfdG9fbGUzMihldmVyZ3JlZW5fdnNbaV0pOwotCWZvciAoaSA9IDA7IGkgPCBl dmVyZ3JlZW5fcHNfc2l6ZTsgaSsrKQotCQkqKHUzMiAqKSgodW5zaWduZWQgbG9uZylwdHIgKyBy ZGV2LT5yNjAwX2JsaXQucHNfb2Zmc2V0ICsgaSAqIDQpID0gY3B1X3RvX2xlMzIoZXZlcmdyZWVu X3BzW2ldKTsKKwlpZiAocmRldi0+ZmFtaWx5IDwgQ0hJUF9DQVlNQU4pIHsKKwkJbWVtY3B5X3Rv aW8ocHRyICsgcmRldi0+cjYwMF9ibGl0LnN0YXRlX29mZnNldCwKKwkJCSAgICBldmVyZ3JlZW5f ZGVmYXVsdF9zdGF0ZSwgcmRldi0+cjYwMF9ibGl0LnN0YXRlX2xlbiAqIDQpOworCisJCWlmIChu dW1fcGFja2V0MnMpCisJCQltZW1jcHlfdG9pbyhwdHIgKyByZGV2LT5yNjAwX2JsaXQuc3RhdGVf b2Zmc2V0ICsgKHJkZXYtPnI2MDBfYmxpdC5zdGF0ZV9sZW4gKiA0KSwKKwkJCQkgICAgcGFja2V0 MnMsIG51bV9wYWNrZXQycyAqIDQpOworCQlmb3IgKGkgPSAwOyBpIDwgZXZlcmdyZWVuX3ZzX3Np emU7IGkrKykKKwkJCSoodTMyICopKCh1bnNpZ25lZCBsb25nKXB0ciArIHJkZXYtPnI2MDBfYmxp dC52c19vZmZzZXQgKyBpICogNCkgPSBjcHVfdG9fbGUzMihldmVyZ3JlZW5fdnNbaV0pOworCQlm b3IgKGkgPSAwOyBpIDwgZXZlcmdyZWVuX3BzX3NpemU7IGkrKykKKwkJCSoodTMyICopKCh1bnNp Z25lZCBsb25nKXB0ciArIHJkZXYtPnI2MDBfYmxpdC5wc19vZmZzZXQgKyBpICogNCkgPSBjcHVf dG9fbGUzMihldmVyZ3JlZW5fcHNbaV0pOworCX0gZWxzZSB7CisJCW1lbWNweV90b2lvKHB0ciAr IHJkZXYtPnI2MDBfYmxpdC5zdGF0ZV9vZmZzZXQsCisJCQkgICAgY2F5bWFuX2RlZmF1bHRfc3Rh dGUsIHJkZXYtPnI2MDBfYmxpdC5zdGF0ZV9sZW4gKiA0KTsKKworCQlpZiAobnVtX3BhY2tldDJz KQorCQkJbWVtY3B5X3RvaW8ocHRyICsgcmRldi0+cjYwMF9ibGl0LnN0YXRlX29mZnNldCArIChy ZGV2LT5yNjAwX2JsaXQuc3RhdGVfbGVuICogNCksCisJCQkJICAgIHBhY2tldDJzLCBudW1fcGFj a2V0MnMgKiA0KTsKKwkJZm9yIChpID0gMDsgaSA8IGNheW1hbl92c19zaXplOyBpKyspCisJCQkq KHUzMiAqKSgodW5zaWduZWQgbG9uZylwdHIgKyByZGV2LT5yNjAwX2JsaXQudnNfb2Zmc2V0ICsg aSAqIDQpID0gY3B1X3RvX2xlMzIoY2F5bWFuX3ZzW2ldKTsKKwkJZm9yIChpID0gMDsgaSA8IGNh eW1hbl9wc19zaXplOyBpKyspCisJCQkqKHUzMiAqKSgodW5zaWduZWQgbG9uZylwdHIgKyByZGV2 LT5yNjAwX2JsaXQucHNfb2Zmc2V0ICsgaSAqIDQpID0gY3B1X3RvX2xlMzIoY2F5bWFuX3BzW2ld KTsKKwl9CiAJcmFkZW9uX2JvX2t1bm1hcChyZGV2LT5yNjAwX2JsaXQuc2hhZGVyX29iaik7CiAJ cmFkZW9uX2JvX3VucmVzZXJ2ZShyZGV2LT5yNjAwX2JsaXQuc2hhZGVyX29iaik7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vbmkuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vbmkuYwppbmRleCBiMjA1YmExLi4xNmNhYWZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL25pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9uaS5jCkBAIC0xMzg3 LDE0ICsxMzg3LDEyIEBAIHN0YXRpYyBpbnQgY2F5bWFuX3N0YXJ0dXAoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYpCiAJCXJldHVybiByOwogCWNheW1hbl9ncHVfaW5pdChyZGV2KTsKIAotI2lm IDAKLQlyID0gY2F5bWFuX2JsaXRfaW5pdChyZGV2KTsKKwlyID0gZXZlcmdyZWVuX2JsaXRfaW5p dChyZGV2KTsKIAlpZiAocikgewotCQljYXltYW5fYmxpdF9maW5pKHJkZXYpOworCQlldmVyZ3Jl ZW5fYmxpdF9maW5pKHJkZXYpOwogCQlyZGV2LT5hc2ljLT5jb3B5ID0gTlVMTDsKIAkJZGV2X3dh cm4ocmRldi0+ZGV2LCAiZmFpbGVkIGJsaXR0ZXIgKCVkKSBmYWxsaW5nIGJhY2sgdG8gbWVtY3B5 XG4iLCByKTsKIAl9Ci0jZW5kaWYKIAogCS8qIGFsbG9jYXRlIHdiIGJ1ZmZlciAqLwogCXIgPSBy YWRlb25fd2JfaW5pdChyZGV2KTsKQEAgLTE0NTIsNyArMTQ1MCw3IEBAIGludCBjYXltYW5fcmVz dW1lKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCiBpbnQgY2F5bWFuX3N1c3BlbmQoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiB7Ci0JLyogaW50IHI7ICovCisJaW50IHI7CiAKIAkv KiBGSVhNRTogd2Ugc2hvdWxkIHdhaXQgZm9yIHJpbmcgdG8gYmUgZW1wdHkgKi8KIAljYXltYW5f Y3BfZW5hYmxlKHJkZXYsIGZhbHNlKTsKQEAgLTE0NjEsMTQgKzE0NTksMTMgQEAgaW50IGNheW1h bl9zdXNwZW5kKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCXJhZGVvbl93Yl9kaXNhYmxl KHJkZXYpOwogCWNheW1hbl9wY2llX2dhcnRfZGlzYWJsZShyZGV2KTsKIAotI2lmIDAKIAkvKiB1 bnBpbiBzaGFkZXJzIGJvICovCiAJciA9IHJhZGVvbl9ib19yZXNlcnZlKHJkZXYtPnI2MDBfYmxp dC5zaGFkZXJfb2JqLCBmYWxzZSk7CiAJaWYgKGxpa2VseShyID09IDApKSB7CiAJCXJhZGVvbl9i b191bnBpbihyZGV2LT5yNjAwX2JsaXQuc2hhZGVyX29iaik7CiAJCXJhZGVvbl9ib191bnJlc2Vy dmUocmRldi0+cjYwMF9ibGl0LnNoYWRlcl9vYmopOwogCX0KLSNlbmRpZgorCiAJcmV0dXJuIDA7 CiB9CiAKQEAgLTE1ODAsNyArMTU3Nyw3IEBAIGludCBjYXltYW5faW5pdChzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldikKIAogdm9pZCBjYXltYW5fZmluaShzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldikKIHsKLQkvKiBjYXltYW5fYmxpdF9maW5pKHJkZXYpOyAqLworCWV2ZXJncmVlbl9ibGl0 X2ZpbmkocmRldik7CiAJY2F5bWFuX2NwX2ZpbmkocmRldik7CiAJcjYwMF9pcnFfZmluaShyZGV2 KTsKIAlyYWRlb25fd2JfZmluaShyZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX2FzaWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2FzaWMu YwppbmRleCBkOTQ4MjY1Li5iOWIzYzJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9hc2ljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXNp Yy5jCkBAIC05MDYsOSArOTA2LDkgQEAgc3RhdGljIHN0cnVjdCByYWRlb25fYXNpYyBjYXltYW5f YXNpYyA9IHsKIAkuZ2V0X3ZibGFua19jb3VudGVyID0gJmV2ZXJncmVlbl9nZXRfdmJsYW5rX2Nv dW50ZXIsCiAJLmZlbmNlX3JpbmdfZW1pdCA9ICZyNjAwX2ZlbmNlX3JpbmdfZW1pdCwKIAkuY3Nf cGFyc2UgPSAmZXZlcmdyZWVuX2NzX3BhcnNlLAotCS5jb3B5X2JsaXQgPSBOVUxMLAotCS5jb3B5 X2RtYSA9IE5VTEwsCi0JLmNvcHkgPSBOVUxMLAorCS5jb3B5X2JsaXQgPSAmZXZlcmdyZWVuX2Nv cHlfYmxpdCwKKwkuY29weV9kbWEgPSAmZXZlcmdyZWVuX2NvcHlfYmxpdCwKKwkuY29weSA9ICZl dmVyZ3JlZW5fY29weV9ibGl0LAogCS5nZXRfZW5naW5lX2Nsb2NrID0gJnJhZGVvbl9hdG9tX2dl dF9lbmdpbmVfY2xvY2ssCiAJLnNldF9lbmdpbmVfY2xvY2sgPSAmcmFkZW9uX2F0b21fc2V0X2Vu Z2luZV9jbG9jaywKIAkuZ2V0X21lbW9yeV9jbG9jayA9ICZyYWRlb25fYXRvbV9nZXRfbWVtb3J5 X2Nsb2NrLAotLSAKMS43LjEuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK