From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH i-g-t 01/17] lib: Update uapi headers Date: Thu, 18 Oct 2018 16:27:59 +0100 Message-ID: <20181018152815.31816-2-tvrtko.ursulin@linux.intel.com> References: <20181018152815.31816-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2F49389A75 for ; Thu, 18 Oct 2018 15:28:27 +0000 (UTC) Received: by mail-wm1-x331.google.com with SMTP id r63-v6so696994wma.4 for ; Thu, 18 Oct 2018 08:28:27 -0700 (PDT) In-Reply-To: <20181018152815.31816-1-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClN5bmMgd2l0 aCBsYXRlc3QgRFJNIHVhcGkgY2hhbmdlcy4KLS0tCiBpbmNsdWRlL2RybS11YXBpL2FtZGdwdV9k cm0uaCAgfCAgNTIgKysrLQogaW5jbHVkZS9kcm0tdWFwaS9kcm0uaCAgICAgICAgIHwgIDE2ICsr CiBpbmNsdWRlL2RybS11YXBpL2RybV9mb3VyY2MuaCAgfCAyMjQgKysrKysrKysrKysrKysrCiBp bmNsdWRlL2RybS11YXBpL2RybV9tb2RlLmggICAgfCAgMjYgKy0KIGluY2x1ZGUvZHJtLXVhcGkv ZXRuYXZpdl9kcm0uaCB8ICAgNiArCiBpbmNsdWRlL2RybS11YXBpL2V4eW5vc19kcm0uaCAgfCAy NDAgKysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0tdWFwaS9pOTE1X2RybS5oICAgIHwgMjM5 ICsrKysrKysrKysrKysrKy0KIGluY2x1ZGUvZHJtLXVhcGkvbXNtX2RybS5oICAgICB8ICAgMiAr CiBpbmNsdWRlL2RybS11YXBpL3N5bmNfZmlsZS5oICAgfCAgOTggLS0tLS0tLQogaW5jbHVkZS9k cm0tdWFwaS90ZWdyYV9kcm0uaCAgIHwgNDkyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLQogaW5jbHVkZS9kcm0tdWFwaS92M2RfZHJtLmggICAgIHwgMTk0ICsrKysrKysrKysrKysK IGluY2x1ZGUvZHJtLXVhcGkvdmM0X2RybS5oICAgICB8ICAxMyArLQogaW5jbHVkZS9kcm0tdWFw aS92aXJ0Z3B1X2RybS5oIHwgICAxICsKIGluY2x1ZGUvZHJtLXVhcGkvdm13Z2Z4X2RybS5oICB8 IDE2NiArKysrKysrKy0tLQogMTQgZmlsZXMgY2hhbmdlZCwgMTYxMyBpbnNlcnRpb25zKCspLCAx NTYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kcm0tdWFwaS9zeW5j X2ZpbGUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHJtLXVhcGkvdjNkX2RybS5oCgpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0tdWFwaS9hbWRncHVfZHJtLmggYi9pbmNsdWRlL2RybS11 YXBpL2FtZGdwdV9kcm0uaAppbmRleCAxODE2YmQ4MjAwZDEuLjM3MGU5YTU1MzZlZiAxMDA2NDQK LS0tIGEvaW5jbHVkZS9kcm0tdWFwaS9hbWRncHVfZHJtLmgKKysrIGIvaW5jbHVkZS9kcm0tdWFw aS9hbWRncHVfZHJtLmgKQEAgLTcyLDEyICs3Miw0MSBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUg RFJNX0lPQ1RMX0FNREdQVV9GRU5DRV9UT19IQU5ETEUgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFT RSArIERSTV9BTURHUFVfRkVOQ0VfVE9fSEFORExFLCB1bmlvbiBkcm1fYW1kZ3B1X2ZlbmNlX3Rv X2hhbmRsZSkKICNkZWZpbmUgRFJNX0lPQ1RMX0FNREdQVV9TQ0hFRAkJRFJNX0lPVyhEUk1fQ09N TUFORF9CQVNFICsgRFJNX0FNREdQVV9TQ0hFRCwgdW5pb24gZHJtX2FtZGdwdV9zY2hlZCkKIAor LyoqCisgKiBET0M6IG1lbW9yeSBkb21haW5zCisgKgorICogJUFNREdQVV9HRU1fRE9NQUlOX0NQ VQlTeXN0ZW0gbWVtb3J5IHRoYXQgaXMgbm90IEdQVSBhY2Nlc3NpYmxlLgorICogTWVtb3J5IGlu IHRoaXMgcG9vbCBjb3VsZCBiZSBzd2FwcGVkIG91dCB0byBkaXNrIGlmIHRoZXJlIGlzIHByZXNz dXJlLgorICoKKyAqICVBTURHUFVfR0VNX0RPTUFJTl9HVFQJR1BVIGFjY2Vzc2libGUgc3lzdGVt IG1lbW9yeSwgbWFwcGVkIGludG8gdGhlCisgKiBHUFUncyB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2Ug dmlhIGdhcnQuIEdhcnQgbWVtb3J5IGxpbmVhcml6ZXMgbm9uLWNvbnRpZ3VvdXMKKyAqIHBhZ2Vz IG9mIHN5c3RlbSBtZW1vcnksIGFsbG93cyBHUFUgYWNjZXNzIHN5c3RlbSBtZW1vcnkgaW4gYSBs aW5lenJpemVkCisgKiBmYXNoaW9uLgorICoKKyAqICVBTURHUFVfR0VNX0RPTUFJTl9WUkFNCUxv Y2FsIHZpZGVvIG1lbW9yeS4gRm9yIEFQVXMsIGl0IGlzIG1lbW9yeQorICogY2FydmVkIG91dCBi eSB0aGUgQklPUy4KKyAqCisgKiAlQU1ER1BVX0dFTV9ET01BSU5fR0RTCUdsb2JhbCBvbi1jaGlw IGRhdGEgc3RvcmFnZSB1c2VkIHRvIHNoYXJlIGRhdGEKKyAqIGFjcm9zcyBzaGFkZXIgdGhyZWFk cy4KKyAqCisgKiAlQU1ER1BVX0dFTV9ET01BSU5fR1dTCUdsb2JhbCB3YXZlIHN5bmMsIHVzZWQg dG8gc3luY2hyb25pemUgdGhlCisgKiBleGVjdXRpb24gb2YgYWxsIHRoZSB3YXZlcyBvbiBhIGRl dmljZS4KKyAqCisgKiAlQU1ER1BVX0dFTV9ET01BSU5fT0EJT3JkZXJlZCBhcHBlbmQsIHVzZWQg YnkgM0Qgb3IgQ29tcHV0ZSBlbmdpbmVzCisgKiBmb3IgYXBwZW5kaW5nIGRhdGEuCisgKi8KICNk ZWZpbmUgQU1ER1BVX0dFTV9ET01BSU5fQ1BVCQkweDEKICNkZWZpbmUgQU1ER1BVX0dFTV9ET01B SU5fR1RUCQkweDIKICNkZWZpbmUgQU1ER1BVX0dFTV9ET01BSU5fVlJBTQkJMHg0CiAjZGVmaW5l IEFNREdQVV9HRU1fRE9NQUlOX0dEUwkJMHg4CiAjZGVmaW5lIEFNREdQVV9HRU1fRE9NQUlOX0dX UwkJMHgxMAogI2RlZmluZSBBTURHUFVfR0VNX0RPTUFJTl9PQQkJMHgyMAorI2RlZmluZSBBTURH UFVfR0VNX0RPTUFJTl9NQVNLCQkoQU1ER1BVX0dFTV9ET01BSU5fQ1BVIHwgXAorCQkJCQkgQU1E R1BVX0dFTV9ET01BSU5fR1RUIHwgXAorCQkJCQkgQU1ER1BVX0dFTV9ET01BSU5fVlJBTSB8IFwK KwkJCQkJIEFNREdQVV9HRU1fRE9NQUlOX0dEUyB8IFwKKwkJCQkJIEFNREdQVV9HRU1fRE9NQUlO X0dXUyB8IFwKKwkJCQkJIEFNREdQVV9HRU1fRE9NQUlOX09BKQogCiAvKiBGbGFnIHRoYXQgQ1BV IGFjY2VzcyB3aWxsIGJlIHJlcXVpcmVkIGZvciB0aGUgY2FzZSBvZiBWUkFNIGRvbWFpbiAqLwog I2RlZmluZSBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJUkVECSgxIDw8IDApCkBA IC05NSw2ICsxMjQsMTAgQEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIEFNREdQVV9HRU1fQ1JFQVRF X1ZNX0FMV0FZU19WQUxJRAkoMSA8PCA2KQogLyogRmxhZyB0aGF0IEJPIHNoYXJpbmcgd2lsbCBi ZSBleHBsaWNpdGx5IHN5bmNocm9uaXplZCAqLwogI2RlZmluZSBBTURHUFVfR0VNX0NSRUFURV9F WFBMSUNJVF9TWU5DCQkoMSA8PCA3KQorLyogRmxhZyB0aGF0IGluZGljYXRlcyBhbGxvY2F0aW5n IE1RRCBnYXJ0IG9uIEdGWDksIHdoZXJlIHRoZSBtdHlwZQorICogZm9yIHRoZSBzZWNvbmQgcGFn ZSBvbndhcmQgc2hvdWxkIGJlIHNldCB0byBOQy4KKyAqLworI2RlZmluZSBBTURHUFVfR0VNX0NS RUFURV9NUURfR0ZYOQkJKDEgPDwgOCkKIAogc3RydWN0IGRybV9hbWRncHVfZ2VtX2NyZWF0ZV9p biAgewogCS8qKiB0aGUgcmVxdWVzdGVkIG1lbW9yeSBzaXplICovCkBAIC00NzMsNyArNTA2LDgg QEAgc3RydWN0IGRybV9hbWRncHVfZ2VtX3ZhIHsKICNkZWZpbmUgQU1ER1BVX0hXX0lQX1VWRF9F TkMgICAgICA1CiAjZGVmaW5lIEFNREdQVV9IV19JUF9WQ05fREVDICAgICAgNgogI2RlZmluZSBB TURHUFVfSFdfSVBfVkNOX0VOQyAgICAgIDcKLSNkZWZpbmUgQU1ER1BVX0hXX0lQX05VTSAgICAg ICAgICA4CisjZGVmaW5lIEFNREdQVV9IV19JUF9WQ05fSlBFRyAgICAgOAorI2RlZmluZSBBTURH UFVfSFdfSVBfTlVNICAgICAgICAgIDkKIAogI2RlZmluZSBBTURHUFVfSFdfSVBfSU5TVEFOQ0Vf TUFYX0NPVU5UIDEKIApAQCAtNDgyLDYgKzUxNiw3IEBAIHN0cnVjdCBkcm1fYW1kZ3B1X2dlbV92 YSB7CiAjZGVmaW5lIEFNREdQVV9DSFVOS19JRF9ERVBFTkRFTkNJRVMJMHgwMwogI2RlZmluZSBB TURHUFVfQ0hVTktfSURfU1lOQ09CSl9JTiAgICAgIDB4MDQKICNkZWZpbmUgQU1ER1BVX0NIVU5L X0lEX1NZTkNPQkpfT1VUICAgICAweDA1CisjZGVmaW5lIEFNREdQVV9DSFVOS19JRF9CT19IQU5E TEVTICAgICAgMHgwNgogCiBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVuayB7CiAJX191MzIJCWNo dW5rX2lkOwpAQCAtNTIwLDYgKzU1NSwxMCBAQCB1bmlvbiBkcm1fYW1kZ3B1X2NzIHsKIC8qIFBy ZWVtcHQgZmxhZywgSUIgc2hvdWxkIHNldCBQcmVfZW5iIGJpdCBpZiBQUkVFTVBUIGZsYWcgZGV0 ZWN0ZWQgKi8KICNkZWZpbmUgQU1ER1BVX0lCX0ZMQUdfUFJFRU1QVCAoMTw8MikKIAorLyogVGhl IElCIGZlbmNlIHNob3VsZCBkbyB0aGUgTDIgd3JpdGViYWNrIGJ1dCBub3QgaW52YWxpZGF0ZSBh bnkgc2hhZGVyCisgKiBjYWNoZXMgKEwyL3ZMMS9zTDEvSSQpLiAqLworI2RlZmluZSBBTURHUFVf SUJfRkxBR19UQ19XQl9OT1RfSU5WQUxJREFURSAoMSA8PCAzKQorCiBzdHJ1Y3QgZHJtX2FtZGdw dV9jc19jaHVua19pYiB7CiAJX191MzIgX3BhZDsKIAkvKiogQU1ER1BVX0lCX0ZMQUdfKiAqLwpA QCAtNjE4LDYgKzY1NywxNiBAQCBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19kYXRhIHsKIAkj ZGVmaW5lIEFNREdQVV9JTkZPX0ZXX1NPUwkJMHgwYwogCS8qIFN1YnF1ZXJ5IGlkOiBRdWVyeSBQ U1AgQVNEIGZpcm13YXJlIHZlcnNpb24gKi8KIAkjZGVmaW5lIEFNREdQVV9JTkZPX0ZXX0FTRAkJ MHgwZAorCS8qIFN1YnF1ZXJ5IGlkOiBRdWVyeSBWQ04gZmlybXdhcmUgdmVyc2lvbiAqLworCSNk ZWZpbmUgQU1ER1BVX0lORk9fRldfVkNOCQkweDBlCisJLyogU3VicXVlcnkgaWQ6IFF1ZXJ5IEdG WCBSTEMgU1JMQyBmaXJtd2FyZSB2ZXJzaW9uICovCisJI2RlZmluZSBBTURHUFVfSU5GT19GV19H RlhfUkxDX1JFU1RPUkVfTElTVF9DTlRMIDB4MGYKKwkvKiBTdWJxdWVyeSBpZDogUXVlcnkgR0ZY IFJMQyBTUkxHIGZpcm13YXJlIHZlcnNpb24gKi8KKwkjZGVmaW5lIEFNREdQVV9JTkZPX0ZXX0dG WF9STENfUkVTVE9SRV9MSVNUX0dQTV9NRU0gMHgxMAorCS8qIFN1YnF1ZXJ5IGlkOiBRdWVyeSBH RlggUkxDIFNSTFMgZmlybXdhcmUgdmVyc2lvbiAqLworCSNkZWZpbmUgQU1ER1BVX0lORk9fRldf R0ZYX1JMQ19SRVNUT1JFX0xJU1RfU1JNX01FTSAweDExCisJLyogU3VicXVlcnkgaWQ6IFF1ZXJ5 IERNQ1UgZmlybXdhcmUgdmVyc2lvbiAqLworCSNkZWZpbmUgQU1ER1BVX0lORk9fRldfRE1DVQkJ MHgxMgogLyogbnVtYmVyIG9mIGJ5dGVzIG1vdmVkIGZvciBUVE0gbWlncmF0aW9uICovCiAjZGVm aW5lIEFNREdQVV9JTkZPX05VTV9CWVRFU19NT1ZFRAkJMHgwZgogLyogdGhlIHVzZWQgVlJBTSBz aXplICovCkBAIC04MDYsNiArODU1LDcgQEAgc3RydWN0IGRybV9hbWRncHVfaW5mb19maXJtd2Fy ZSB7CiAjZGVmaW5lIEFNREdQVV9WUkFNX1RZUEVfR0REUjUgNQogI2RlZmluZSBBTURHUFVfVlJB TV9UWVBFX0hCTSAgIDYKICNkZWZpbmUgQU1ER1BVX1ZSQU1fVFlQRV9ERFIzICA3CisjZGVmaW5l IEFNREdQVV9WUkFNX1RZUEVfRERSNCAgOAogCiBzdHJ1Y3QgZHJtX2FtZGdwdV9pbmZvX2Rldmlj ZSB7CiAJLyoqIFBDSSBEZXZpY2UgSUQgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtLXVhcGkv ZHJtLmggYi9pbmNsdWRlL2RybS11YXBpL2RybS5oCmluZGV4IGYwYmQ5MWRlMGNmOS4uODVjNjg1 YTIwNzVlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS11YXBpL2RybS5oCisrKyBiL2luY2x1ZGUv ZHJtLXVhcGkvZHJtLmgKQEAgLTY3NCw2ICs2NzQsMjIgQEAgc3RydWN0IGRybV9nZXRfY2FwIHsK ICAqLwogI2RlZmluZSBEUk1fQ0xJRU5UX0NBUF9BVE9NSUMJMwogCisvKioKKyAqIERSTV9DTElF TlRfQ0FQX0FTUEVDVF9SQVRJTworICoKKyAqIElmIHNldCB0byAxLCB0aGUgRFJNIGNvcmUgd2ls bCBwcm92aWRlIGFzcGVjdCByYXRpbyBpbmZvcm1hdGlvbiBpbiBtb2Rlcy4KKyAqLworI2RlZmlu ZSBEUk1fQ0xJRU5UX0NBUF9BU1BFQ1RfUkFUSU8gICAgNAorCisvKioKKyAqIERSTV9DTElFTlRf Q0FQX1dSSVRFQkFDS19DT05ORUNUT1JTCisgKgorICogSWYgc2V0IHRvIDEsIHRoZSBEUk0gY29y ZSB3aWxsIGV4cG9zZSBzcGVjaWFsIGNvbm5lY3RvcnMgdG8gYmUgdXNlZCBmb3IKKyAqIHdyaXRp bmcgYmFjayB0byBtZW1vcnkgdGhlIHNjZW5lIHNldHVwIGluIHRoZSBjb21taXQuIERlcGVuZHMg b24gY2xpZW50CisgKiBhbHNvIHN1cHBvcnRpbmcgRFJNX0NMSUVOVF9DQVBfQVRPTUlDCisgKi8K KyNkZWZpbmUgRFJNX0NMSUVOVF9DQVBfV1JJVEVCQUNLX0NPTk5FQ1RPUlMJNQorCiAvKiogRFJN X0lPQ1RMX1NFVF9DTElFTlRfQ0FQIGlvY3RsIGFyZ3VtZW50IHR5cGUgKi8KIHN0cnVjdCBkcm1f c2V0X2NsaWVudF9jYXAgewogCV9fdTY0IGNhcGFiaWxpdHk7CmRpZmYgLS1naXQgYS9pbmNsdWRl L2RybS11YXBpL2RybV9mb3VyY2MuaCBiL2luY2x1ZGUvZHJtLXVhcGkvZHJtX2ZvdXJjYy5oCmlu ZGV4IGUwNDYxM2QzMGExMy4uMGNkNDBlYmZhMWIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS11 YXBpL2RybV9mb3VyY2MuaAorKysgYi9pbmNsdWRlL2RybS11YXBpL2RybV9mb3VyY2MuaApAQCAt MzAsMTEgKzMwLDUwIEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCisvKioKKyAqIERPQzogb3Zl cnZpZXcKKyAqCisgKiBJbiB0aGUgRFJNIHN1YnN5c3RlbSwgZnJhbWVidWZmZXIgcGl4ZWwgZm9y bWF0cyBhcmUgZGVzY3JpYmVkIHVzaW5nIHRoZQorICogZm91cmNjIGNvZGVzIGRlZmluZWQgaW4g YGluY2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJjYy5oYC4gSW4gYWRkaXRpb24gdG8gdGhlCisgKiBm b3VyY2MgY29kZSwgYSBGb3JtYXQgTW9kaWZpZXIgbWF5IG9wdGlvbmFsbHkgYmUgcHJvdmlkZWQs IGluIG9yZGVyIHRvCisgKiBmdXJ0aGVyIGRlc2NyaWJlIHRoZSBidWZmZXIncyBmb3JtYXQgLSBm b3IgZXhhbXBsZSB0aWxpbmcgb3IgY29tcHJlc3Npb24uCisgKgorICogRm9ybWF0IE1vZGlmaWVy cworICogLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIEZvcm1hdCBtb2RpZmllcnMgYXJlIHVzZWQg aW4gY29uanVuY3Rpb24gd2l0aCBhIGZvdXJjYyBjb2RlLCBmb3JtaW5nIGEKKyAqIHVuaXF1ZSBm b3VyY2M6bW9kaWZpZXIgcGFpci4gVGhpcyBmb3JtYXQ6bW9kaWZpZXIgcGFpciBtdXN0IGZ1bGx5 IGRlZmluZSB0aGUKKyAqIGZvcm1hdCBhbmQgZGF0YSBsYXlvdXQgb2YgdGhlIGJ1ZmZlciwgYW5k IHNob3VsZCBiZSB0aGUgb25seSB3YXkgdG8gZGVzY3JpYmUKKyAqIHRoYXQgcGFydGljdWxhciBi dWZmZXIuCisgKgorICogSGF2aW5nIG11bHRpcGxlIGZvdXJjYzptb2RpZmllciBwYWlycyB3aGlj aCBkZXNjcmliZSB0aGUgc2FtZSBsYXlvdXQgc2hvdWxkCisgKiBiZSBhdm9pZGVkLCBhcyBzdWNo IGFsaWFzZXMgcnVuIHRoZSByaXNrIG9mIGRpZmZlcmVudCBkcml2ZXJzIGV4cG9zaW5nCisgKiBk aWZmZXJlbnQgbmFtZXMgZm9yIHRoZSBzYW1lIGRhdGEgZm9ybWF0LCBmb3JjaW5nIHVzZXJzcGFj ZSB0byB1bmRlcnN0YW5kCisgKiB0aGF0IHRoZXkgYXJlIGFsaWFzZXMuCisgKgorICogRm9ybWF0 IG1vZGlmaWVycyBtYXkgY2hhbmdlIGFueSBwcm9wZXJ0eSBvZiB0aGUgYnVmZmVyLCBpbmNsdWRp bmcgdGhlIG51bWJlcgorICogb2YgcGxhbmVzIGFuZC9vciB0aGUgcmVxdWlyZWQgYWxsb2NhdGlv biBzaXplLiBGb3JtYXQgbW9kaWZpZXJzIGFyZQorICogdmVuZG9yLW5hbWVzcGFjZWQsIGFuZCBh cyBzdWNoIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBhIGZvdXJjYyBjb2RlIGFuZCBhCisgKiBt b2RpZmllciBpcyBzcGVjaWZpYyB0byB0aGUgbW9kaWZlciBiZWluZyB1c2VkLiBGb3IgZXhhbXBs ZSwgc29tZSBtb2RpZmllcnMKKyAqIG1heSBwcmVzZXJ2ZSBtZWFuaW5nIC0gc3VjaCBhcyBudW1i ZXIgb2YgcGxhbmVzIC0gZnJvbSB0aGUgZm91cmNjIGNvZGUsCisgKiB3aGVyZWFzIG90aGVycyBt YXkgbm90LgorICoKKyAqIFZlbmRvcnMgc2hvdWxkIGRvY3VtZW50IHRoZWlyIG1vZGlmaWVyIHVz YWdlIGluIGFzIG11Y2ggZGV0YWlsIGFzCisgKiBwb3NzaWJsZSwgdG8gZW5zdXJlIG1heGltdW0g Y29tcGF0aWJpbGl0eSBhY3Jvc3MgZGV2aWNlcywgZHJpdmVycyBhbmQKKyAqIGFwcGxpY2F0aW9u cy4KKyAqCisgKiBUaGUgYXV0aG9yaXRhdGl2ZSBsaXN0IG9mIGZvcm1hdCBtb2RpZmllciBjb2Rl cyBpcyBmb3VuZCBpbgorICogYGluY2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJjYy5oYAorICovCisK ICNkZWZpbmUgZm91cmNjX2NvZGUoYSwgYiwgYywgZCkgKChfX3UzMikoYSkgfCAoKF9fdTMyKShi KSA8PCA4KSB8IFwKIAkJCQkgKChfX3UzMikoYykgPDwgMTYpIHwgKChfX3UzMikoZCkgPDwgMjQp KQogCiAjZGVmaW5lIERSTV9GT1JNQVRfQklHX0VORElBTiAoMTw8MzEpIC8qIGZvcm1hdCBpcyBi aWcgZW5kaWFuIGluc3RlYWQgb2YgbGl0dGxlIGVuZGlhbiAqLwogCisvKiBSZXNlcnZlIDAgZm9y IHRoZSBpbnZhbGlkIGZvcm1hdCBzcGVjaWZpZXIgKi8KKyNkZWZpbmUgRFJNX0ZPUk1BVF9JTlZB TElECTAKKwogLyogY29sb3IgaW5kZXggKi8KICNkZWZpbmUgRFJNX0ZPUk1BVF9DOAkJZm91cmNj X2NvZGUoJ0MnLCAnOCcsICcgJywgJyAnKSAvKiBbNzowXSBDICovCiAKQEAgLTE4Myw2ICsyMjIs NyBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfVkVORE9SX1FDT00gICAg MHgwNQogI2RlZmluZSBEUk1fRk9STUFUX01PRF9WRU5ET1JfVklWQU5URSAweDA2CiAjZGVmaW5l IERSTV9GT1JNQVRfTU9EX1ZFTkRPUl9CUk9BRENPTSAweDA3CisjZGVmaW5lIERSTV9GT1JNQVRf TU9EX1ZFTkRPUl9BUk0gICAgIDB4MDgKIC8qIGFkZCBtb3JlIHRvIHRoZSBlbmQgYXMgbmVlZGVk ICovCiAKICNkZWZpbmUgRFJNX0ZPUk1BVF9SRVNFUlZFRAkgICAgICAoKDFVTEwgPDwgNTYpIC0g MSkKQEAgLTI5OCw2ICszMzgsMjggQEAgZXh0ZXJuICJDIiB7CiAgKi8KICNkZWZpbmUgRFJNX0ZP Uk1BVF9NT0RfU0FNU1VOR182NF8zMl9USUxFCWZvdXJjY19tb2RfY29kZShTQU1TVU5HLCAxKQog CisvKgorICogVGlsZWQsIDE2IChwaXhlbHMpIHggMTYgKGxpbmVzKSAtIHNpemVkIG1hY3JvYmxv Y2tzCisgKgorICogVGhpcyBpcyBhIHNpbXBsZSB0aWxlZCBsYXlvdXQgdXNpbmcgdGlsZXMgb2Yg MTZ4MTYgcGl4ZWxzIGluIGEgcm93LW1ham9yCisgKiBsYXlvdXQuIEZvciBZQ2JDciBmb3JtYXRz IENiL0NyIGNvbXBvbmVudHMgYXJlIHRha2VuIGluIHN1Y2ggYSB3YXkgdGhhdAorICogdGhleSBj b3JyZXNwb25kIHRvIHRoZWlyIDE2eDE2IGx1bWEgYmxvY2suCisgKi8KKyNkZWZpbmUgRFJNX0ZP Uk1BVF9NT0RfU0FNU1VOR18xNl8xNl9USUxFCWZvdXJjY19tb2RfY29kZShTQU1TVU5HLCAyKQor CisvKgorICogUXVhbGNvbW0gQ29tcHJlc3NlZCBGb3JtYXQKKyAqCisgKiBSZWZlcnMgdG8gYSBj b21wcmVzc2VkIHZhcmlhbnQgb2YgdGhlIGJhc2UgZm9ybWF0IHRoYXQgaXMgY29tcHJlc3NlZC4K KyAqIEltcGxlbWVudGF0aW9uIG1heSBiZSBwbGF0Zm9ybSBhbmQgYmFzZS1mb3JtYXQgc3BlY2lm aWMuCisgKgorICogRWFjaCBtYWNyb3RpbGUgY29uc2lzdHMgb2YgbSB4IG4gKG1vc3RseSA0IHgg NCkgdGlsZXMuCisgKiBQaXhlbCBkYXRhIHBpdGNoL3N0cmlkZSBpcyBhbGlnbmVkIHdpdGggbWFj cm90aWxlIHdpZHRoLgorICogUGl4ZWwgZGF0YSBoZWlnaHQgaXMgYWxpZ25lZCB3aXRoIG1hY3Jv dGlsZSBoZWlnaHQuCisgKiBFbnRpcmUgcGl4ZWwgZGF0YSBidWZmZXIgaXMgYWxpZ25lZCB3aXRo IDRrKGJ5dGVzKS4KKyAqLworI2RlZmluZSBEUk1fRk9STUFUX01PRF9RQ09NX0NPTVBSRVNTRUQJ Zm91cmNjX21vZF9jb2RlKFFDT00sIDEpCisKIC8qIFZpdmFudGUgZnJhbWVidWZmZXIgbW9kaWZp ZXJzICovCiAKIC8qCkBAIC0zODQsNiArNDQ2LDIzIEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBE Uk1fRk9STUFUX01PRF9OVklESUFfMTZCWDJfQkxPQ0tfVEhJUlRZVFdPX0dPQiBcCiAJZm91cmNj X21vZF9jb2RlKE5WSURJQSwgMHgxNSkKIAorLyoKKyAqIFNvbWUgQnJvYWRjb20gbW9kaWZpZXJz IHRha2UgcGFyYW1ldGVycywgZm9yIGV4YW1wbGUgdGhlIG51bWJlciBvZgorICogdmVydGljYWwg bGluZXMgaW4gdGhlIGltYWdlLiBSZXNlcnZlIHRoZSBsb3dlciAzMiBiaXRzIGZvciBtb2RpZmll cgorICogdHlwZSwgYW5kIHRoZSBuZXh0IDI0IGJpdHMgZm9yIHBhcmFtZXRlcnMuIFRvcCA4IGJp dHMgYXJlIHRoZQorICogdmVuZG9yIGNvZGUuCisgKi8KKyNkZWZpbmUgX19mb3VyY2NfbW9kX2Jy b2FkY29tX3BhcmFtX3NoaWZ0IDgKKyNkZWZpbmUgX19mb3VyY2NfbW9kX2Jyb2FkY29tX3BhcmFt X2JpdHMgNDgKKyNkZWZpbmUgZm91cmNjX21vZF9icm9hZGNvbV9jb2RlKHZhbCwgcGFyYW1zKSBc CisJZm91cmNjX21vZF9jb2RlKEJST0FEQ09NLCAoKCgoX191NjQpcGFyYW1zKSA8PCBfX2ZvdXJj Y19tb2RfYnJvYWRjb21fcGFyYW1fc2hpZnQpIHwgdmFsKSkKKyNkZWZpbmUgZm91cmNjX21vZF9i cm9hZGNvbV9wYXJhbShtKSBcCisJKChpbnQpKCgobSkgPj4gX19mb3VyY2NfbW9kX2Jyb2FkY29t X3BhcmFtX3NoaWZ0KSAmCVwKKwkgICAgICAgKCgxVUxMIDw8IF9fZm91cmNjX21vZF9icm9hZGNv bV9wYXJhbV9iaXRzKSAtIDEpKSkKKyNkZWZpbmUgZm91cmNjX21vZF9icm9hZGNvbV9tb2QobSkg XAorCSgobSkgJiB+KCgoMVVMTCA8PCBfX2ZvdXJjY19tb2RfYnJvYWRjb21fcGFyYW1fYml0cykg LSAxKSA8PAlcCisJCSBfX2ZvdXJjY19tb2RfYnJvYWRjb21fcGFyYW1fc2hpZnQpKQorCiAvKgog ICogQnJvYWRjb20gVkM0ICJUIiBmb3JtYXQKICAqCkBAIC00MDUsNiArNDg0LDE1MSBAQCBleHRl cm4gIkMiIHsKICAqLwogI2RlZmluZSBEUk1fRk9STUFUX01PRF9CUk9BRENPTV9WQzRfVF9USUxF RCBmb3VyY2NfbW9kX2NvZGUoQlJPQURDT00sIDEpCiAKKy8qCisgKiBCcm9hZGNvbSBTQU5EIGZv cm1hdAorICoKKyAqIFRoaXMgaXMgdGhlIG5hdGl2ZSBmb3JtYXQgdGhhdCB0aGUgSC4yNjQgY29k ZWMgYmxvY2sgdXNlcy4gIEZvciBWQzQKKyAqIEhWUywgaXQgaXMgb25seSB2YWxpZCBmb3IgSC4y NjQgKE5WMTIvMjEpIGFuZCBSR0JBIG1vZGVzLgorICoKKyAqIFRoZSBpbWFnZSBjYW4gYmUgY29u c2lkZXJlZCB0byBiZSBzcGxpdCBpbnRvIGNvbHVtbnMsIGFuZCB0aGUKKyAqIGNvbHVtbnMgYXJl IHBsYWNlZCBjb25zZWN1dGl2ZWx5IGludG8gbWVtb3J5LiAgVGhlIHdpZHRoIG9mIHRob3NlCisg KiBjb2x1bW5zIGNhbiBiZSBlaXRoZXIgMzIsIDY0LCAxMjgsIG9yIDI1NiBwaXhlbHMsIGJ1dCBp biBwcmFjdGljZQorICogb25seSAxMjggcGl4ZWwgY29sdW1ucyBhcmUgdXNlZC4KKyAqCisgKiBU aGUgcGl0Y2ggYmV0d2VlbiB0aGUgc3RhcnQgb2YgZWFjaCBjb2x1bW4gaXMgc2V0IHRvIG9wdGlt YWxseQorICogc3dpdGNoIGJldHdlZW4gU0RSQU0gYmFua3MuIFRoaXMgaXMgcGFzc2VkIGFzIHRo ZSBudW1iZXIgb2YgbGluZXMKKyAqIG9mIGNvbHVtbiB3aWR0aCBpbiB0aGUgbW9kaWZpZXIgKHdl IGNhbid0IHVzZSB0aGUgc3RyaWRlIHZhbHVlIGR1ZQorICogdG8gdmFyaW91cyBjb3JlIGNoZWNr cyB0aGF0IGxvb2sgYXQgaXQgLCBzbyB5b3Ugc2hvdWxkIHNldCB0aGUKKyAqIHN0cmlkZSB0byB3 aWR0aCpjcHApLgorICoKKyAqIE5vdGUgdGhhdCB0aGUgY29sdW1uIGhlaWdodCBmb3IgdGhpcyBm b3JtYXQgbW9kaWZpZXIgaXMgdGhlIHNhbWUKKyAqIGZvciBhbGwgb2YgdGhlIHBsYW5lcywgYXNz dW1pbmcgdGhhdCBlYWNoIGNvbHVtbiBjb250YWlucyBib3RoIFkKKyAqIGFuZCBVVi4gIFNvbWUg U0FORC11c2luZyBoYXJkd2FyZSBzdG9yZXMgVVYgaW4gYSBzZXBhcmF0ZSB0aWxlZAorICogaW1h Z2UgZnJvbSBZIHRvIHJlZHVjZSB0aGUgY29sdW1uIGhlaWdodCwgd2hpY2ggaXMgbm90IHN1cHBv cnRlZAorICogd2l0aCB0aGVzZSBtb2RpZmllcnMuCisgKi8KKworI2RlZmluZSBEUk1fRk9STUFU X01PRF9CUk9BRENPTV9TQU5EMzJfQ09MX0hFSUdIVCh2KSBcCisJZm91cmNjX21vZF9icm9hZGNv bV9jb2RlKDIsIHYpCisjZGVmaW5lIERSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQ2NF9DT0xf SEVJR0hUKHYpIFwKKwlmb3VyY2NfbW9kX2Jyb2FkY29tX2NvZGUoMywgdikKKyNkZWZpbmUgRFJN X0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDEyOF9DT0xfSEVJR0hUKHYpIFwKKwlmb3VyY2NfbW9k X2Jyb2FkY29tX2NvZGUoNCwgdikKKyNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FO RDI1Nl9DT0xfSEVJR0hUKHYpIFwKKwlmb3VyY2NfbW9kX2Jyb2FkY29tX2NvZGUoNSwgdikKKwor I2RlZmluZSBEUk1fRk9STUFUX01PRF9CUk9BRENPTV9TQU5EMzIgXAorCURSTV9GT1JNQVRfTU9E X0JST0FEQ09NX1NBTkQzMl9DT0xfSEVJR0hUKDApCisjZGVmaW5lIERSTV9GT1JNQVRfTU9EX0JS T0FEQ09NX1NBTkQ2NCBcCisJRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDY0X0NPTF9IRUlH SFQoMCkKKyNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDEyOCBcCisJRFJNX0ZP Uk1BVF9NT0RfQlJPQURDT01fU0FORDEyOF9DT0xfSEVJR0hUKDApCisjZGVmaW5lIERSTV9GT1JN QVRfTU9EX0JST0FEQ09NX1NBTkQyNTYgXAorCURSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQy NTZfQ09MX0hFSUdIVCgwKQorCisvKiBCcm9hZGNvbSBVSUYgZm9ybWF0CisgKgorICogVGhpcyBp cyB0aGUgY29tbW9uIGZvcm1hdCBmb3IgdGhlIGN1cnJlbnQgQnJvYWRjb20gbXVsdGltZWRpYQor ICogYmxvY2tzLCBpbmNsdWRpbmcgVjNEIDMueCBhbmQgbmV3ZXIsIG5ld2VyIHZpZGVvIGNvZGVj cywgYW5kCisgKiBkaXNwbGF5cy4KKyAqCisgKiBUaGUgaW1hZ2UgY29uc2lzdHMgb2YgdXRpbGVz ICg2NGIgYmxvY2tzKSwgVUlGIGJsb2NrcyAoMngyIHV0aWxlcyksCisgKiBhbmQgbWFjcm9ibG9j a3MgKDR4NCBVSUYgYmxvY2tzKS4gIFRob3NlIDR4NCBVSUYgYmxvY2sgZ3JvdXBzIGFyZQorICog c3RvcmVkIGluIGNvbHVtbnMsIHdpdGggcGFkZGluZyBiZXR3ZWVuIHRoZSBjb2x1bW5zIHRvIGVu c3VyZSB0aGF0CisgKiBtb3ZpbmcgZnJvbSBvbmUgY29sdW1uIHRvIHRoZSBuZXh0IGRvZXNuJ3Qg aGl0IHRoZSBzYW1lIFNEUkFNIHBhZ2UKKyAqIGJhbmsuCisgKgorICogVG8gY2FsY3VsYXRlIHRo ZSBwYWRkaW5nLCBpdCBpcyBhc3N1bWVkIHRoYXQgZWFjaCBoYXJkd2FyZSBibG9jaworICogYW5k IHRoZSBzb2Z0d2FyZSBkcml2aW5nIGl0IGtub3dzIHRoZSBwbGF0Zm9ybSdzIFNEUkFNIHBhZ2Ug c2l6ZSwKKyAqIG51bWJlciBvZiBiYW5rcywgYW5kIFhPUiBhZGRyZXNzLCBhbmQgdGhhdCBpdCdz IGlkZW50aWNhbCBiZXR3ZWVuCisgKiBhbGwgYmxvY2tzIHVzaW5nIHRoZSBmb3JtYXQuICBUaGlz IHRpbGluZyBtb2RpZmllciB3aWxsIHVzZSBYT1IgYXMKKyAqIG5lY2Vzc2FyeSB0byByZWR1Y2Ug dGhlIHBhZGRpbmcuICBJZiBhIGhhcmR3YXJlIGJsb2NrIGNhbid0IGRvIFhPUiwKKyAqIHRoZSBh c3N1bXB0aW9uIGlzIHRoYXQgYSBuby1YT1IgdGlsaW5nIG1vZGlmaWVyIHdpbGwgYmUgY3JlYXRl ZC4KKyAqLworI2RlZmluZSBEUk1fRk9STUFUX01PRF9CUk9BRENPTV9VSUYgZm91cmNjX21vZF9j b2RlKEJST0FEQ09NLCA2KQorCisvKgorICogQXJtIEZyYW1lYnVmZmVyIENvbXByZXNzaW9uIChB RkJDKSBtb2RpZmllcnMKKyAqCisgKiBBRkJDIGlzIGEgcHJvcHJpZXRhcnkgbG9zc2xlc3MgaW1h Z2UgY29tcHJlc3Npb24gcHJvdG9jb2wgYW5kIGZvcm1hdC4KKyAqIEl0IHByb3ZpZGVzIGZpbmUt Z3JhaW5lZCByYW5kb20gYWNjZXNzIGFuZCBtaW5pbWl6ZXMgdGhlIGFtb3VudCBvZiBkYXRhCisg KiB0cmFuc2ZlcnJlZCBiZXR3ZWVuIElQIGJsb2Nrcy4KKyAqCisgKiBBRkJDIGhhcyBzZXZlcmFs IGZlYXR1cmVzIHdoaWNoIG1heSBiZSBzdXBwb3J0ZWQgYW5kL29yIHVzZWQsIHdoaWNoIGFyZQor ICogcmVwcmVzZW50ZWQgdXNpbmcgYml0cyBpbiB0aGUgbW9kaWZpZXIuIE5vdCBhbGwgY29tYmlu YXRpb25zIGFyZSB2YWxpZCwKKyAqIGFuZCBkaWZmZXJlbnQgZGV2aWNlcyBvciB1c2UtY2FzZXMg bWF5IHN1cHBvcnQgZGlmZmVyZW50IGNvbWJpbmF0aW9ucy4KKyAqLworI2RlZmluZSBEUk1fRk9S TUFUX01PRF9BUk1fQUZCQyhfX2FmYmNfbW9kZSkJZm91cmNjX21vZF9jb2RlKEFSTSwgX19hZmJj X21vZGUpCisKKy8qCisgKiBBRkJDIHN1cGVyYmxvY2sgc2l6ZQorICoKKyAqIEluZGljYXRlcyB0 aGUgc3VwZXJibG9jayBzaXplKHMpIHVzZWQgZm9yIHRoZSBBRkJDIGJ1ZmZlci4gVGhlIGJ1ZmZl cgorICogc2l6ZSAoaW4gcGl4ZWxzKSBtdXN0IGJlIGFsaWduZWQgdG8gYSBtdWx0aXBsZSBvZiB0 aGUgc3VwZXJibG9jayBzaXplLgorICogRm91ciBsb3dlc3Qgc2lnbmlmaWNhbnQgYml0cyhMU0Jz KSBhcmUgcmVzZXJ2ZWQgZm9yIGJsb2NrIHNpemUuCisgKi8KKyNkZWZpbmUgQUZCQ19GT1JNQVRf TU9EX0JMT0NLX1NJWkVfTUFTSyAgICAgIDB4ZgorI2RlZmluZSBBRkJDX0ZPUk1BVF9NT0RfQkxP Q0tfU0laRV8xNngxNiAgICAgKDFVTEwpCisjZGVmaW5lIEFGQkNfRk9STUFUX01PRF9CTE9DS19T SVpFXzMyeDggICAgICAoMlVMTCkKKworLyoKKyAqIEFGQkMgbG9zc2xlc3MgY29sb3JzcGFjZSB0 cmFuc2Zvcm0KKyAqCisgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgYnVmZmVyIG1ha2VzIHVzZSBvZiB0 aGUgQUZCQyBsb3NzbGVzcyBjb2xvcnNwYWNlCisgKiB0cmFuc2Zvcm0uCisgKi8KKyNkZWZpbmUg QUZCQ19GT1JNQVRfTU9EX1lUUiAgICAgKDFVTEwgPDwgIDQpCisKKy8qCisgKiBBRkJDIGJsb2Nr LXNwbGl0CisgKgorICogSW5kaWNhdGVzIHRoYXQgdGhlIHBheWxvYWQgb2YgZWFjaCBzdXBlcmJs b2NrIGlzIHNwbGl0LiBUaGUgc2Vjb25kCisgKiBoYWxmIG9mIHRoZSBwYXlsb2FkIGlzIHBvc2l0 aW9uZWQgYXQgYSBwcmVkZWZpbmVkIG9mZnNldCBmcm9tIHRoZSBzdGFydAorICogb2YgdGhlIHN1 cGVyYmxvY2sgcGF5bG9hZC4KKyAqLworI2RlZmluZSBBRkJDX0ZPUk1BVF9NT0RfU1BMSVQgICAo MVVMTCA8PCAgNSkKKworLyoKKyAqIEFGQkMgc3BhcnNlIGxheW91dAorICoKKyAqIFRoaXMgZmxh ZyBpbmRpY2F0ZXMgdGhhdCB0aGUgcGF5bG9hZCBvZiBlYWNoIHN1cGVyYmxvY2sgbXVzdCBiZSBz dG9yZWQgYXQgYQorICogcHJlZGVmaW5lZCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgb3RoZXIg c3VwZXJibG9ja3MgaW4gdGhlIHNhbWUgQUZCQworICogYnVmZmVyLiBUaGlzIG9yZGVyIGlzIHRo ZSBzYW1lIG9yZGVyIHVzZWQgYnkgdGhlIGhlYWRlciBidWZmZXIuIEluIHRoaXMgbW9kZQorICog ZWFjaCBzdXBlcmJsb2NrIGlzIGdpdmVuIHRoZSBzYW1lIGFtb3VudCBvZiBzcGFjZSBhcyBhbiB1 bmNvbXByZXNzZWQKKyAqIHN1cGVyYmxvY2sgb2YgdGhlIHBhcnRpY3VsYXIgZm9ybWF0IHdvdWxk IHJlcXVpcmUsIHJvdW5kaW5nIHVwIHRvIHRoZSBuZXh0CisgKiBtdWx0aXBsZSBvZiAxMjggYnl0 ZXMgaW4gc2l6ZS4KKyAqLworI2RlZmluZSBBRkJDX0ZPUk1BVF9NT0RfU1BBUlNFICAoMVVMTCA8 PCAgNikKKworLyoKKyAqIEFGQkMgY29weS1ibG9jayByZXN0cmljdAorICoKKyAqIEJ1ZmZlcnMg d2l0aCB0aGlzIGZsYWcgbXVzdCBvYmV5IHRoZSBjb3B5LWJsb2NrIHJlc3RyaWN0aW9uLiBUaGUg cmVzdHJpY3Rpb24KKyAqIGlzIHN1Y2ggdGhhdCB0aGVyZSBhcmUgbm8gY29weS1ibG9ja3MgcmVm ZXJyaW5nIGFjcm9zcyB0aGUgYm9yZGVyIG9mIDh4OAorICogYmxvY2tzLiBGb3IgdGhlIHN1YnNh bXBsZWQgZGF0YSB0aGUgOHg4IGxpbWl0YXRpb24gaXMgYWxzbyBzdWJzYW1wbGVkLgorICovCisj ZGVmaW5lIEFGQkNfRk9STUFUX01PRF9DQlIgICAgICgxVUxMIDw8ICA3KQorCisvKgorICogQUZC QyB0aWxlZCBsYXlvdXQKKyAqCisgKiBUaGUgdGlsZWQgbGF5b3V0IGdyb3VwcyBzdXBlcmJsb2Nr cyBpbiA4eDggb3IgNHg0IHRpbGVzLCB3aGVyZSBhbGwKKyAqIHN1cGVyYmxvY2tzIGluc2lkZSBh IHRpbGUgYXJlIHN0b3JlZCB0b2dldGhlciBpbiBtZW1vcnkuIDh4OCB0aWxlcyBhcmUgdXNlZAor ICogZm9yIHBpeGVsIGZvcm1hdHMgdXAgdG8gYW5kIGluY2x1ZGluZyAzMiBicHAgd2hpbGUgNHg0 IHRpbGVzIGFyZSB1c2VkIGZvcgorICogbGFyZ2VyIGJwcCBmb3JtYXRzLiBUaGUgb3JkZXIgYmV0 d2VlbiB0aGUgdGlsZXMgaXMgc2NhbiBsaW5lLgorICogV2hlbiB0aGUgdGlsZWQgbGF5b3V0IGlz IHVzZWQsIHRoZSBidWZmZXIgc2l6ZSAoaW4gcGl4ZWxzKSBtdXN0IGJlIGFsaWduZWQKKyAqIHRv IHRoZSB0aWxlIHNpemUuCisgKi8KKyNkZWZpbmUgQUZCQ19GT1JNQVRfTU9EX1RJTEVEICAgKDFV TEwgPDwgIDgpCisKKy8qCisgKiBBRkJDIHNvbGlkIGNvbG9yIGJsb2NrcworICoKKyAqIEluZGlj YXRlcyB0aGF0IHRoZSBidWZmZXIgbWFrZXMgdXNlIG9mIHNvbGlkLWNvbG9yIGJsb2Nrcywgd2hl cmVieSBiYW5kd2lkdGgKKyAqIGNhbiBiZSByZWR1Y2VkIGlmIGEgd2hvbGUgc3VwZXJibG9jayBp cyBhIHNpbmdsZSBjb2xvci4KKyAqLworI2RlZmluZSBBRkJDX0ZPUk1BVF9NT0RfU0MgICAgICAo MVVMTCA8PCAgOSkKKwogI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCiB9CiAjZW5kaWYKZGlmZiAt LWdpdCBhL2luY2x1ZGUvZHJtLXVhcGkvZHJtX21vZGUuaCBiL2luY2x1ZGUvZHJtLXVhcGkvZHJt X21vZGUuaAppbmRleCAyYzU3NTc5NGZiNTIuLmQzZTBmZTMxZWZjNSAxMDA2NDQKLS0tIGEvaW5j bHVkZS9kcm0tdWFwaS9kcm1fbW9kZS5oCisrKyBiL2luY2x1ZGUvZHJtLXVhcGkvZHJtX21vZGUu aApAQCAtOTMsNiArOTMsMTUgQEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIERSTV9NT0RFX1BJQ1RV UkVfQVNQRUNUX05PTkUJCTAKICNkZWZpbmUgRFJNX01PREVfUElDVFVSRV9BU1BFQ1RfNF8zCQkx CiAjZGVmaW5lIERSTV9NT0RFX1BJQ1RVUkVfQVNQRUNUXzE2XzkJCTIKKyNkZWZpbmUgRFJNX01P REVfUElDVFVSRV9BU1BFQ1RfNjRfMjcJCTMKKyNkZWZpbmUgRFJNX01PREVfUElDVFVSRV9BU1BF Q1RfMjU2XzEzNQkJNAorCisvKiBDb250ZW50IHR5cGUgb3B0aW9ucyAqLworI2RlZmluZSBEUk1f TU9ERV9DT05URU5UX1RZUEVfTk9fREFUQQkJMAorI2RlZmluZSBEUk1fTU9ERV9DT05URU5UX1RZ UEVfR1JBUEhJQ1MJCTEKKyNkZWZpbmUgRFJNX01PREVfQ09OVEVOVF9UWVBFX1BIT1RPCQkyCisj ZGVmaW5lIERSTV9NT0RFX0NPTlRFTlRfVFlQRV9DSU5FTUEJCTMKKyNkZWZpbmUgRFJNX01PREVf Q09OVEVOVF9UWVBFX0dBTUUJCTQKIAogLyogQXNwZWN0IHJhdGlvIGZsYWcgYml0bWFzayAoNCBi aXRzIDIyOjE5KSAqLwogI2RlZmluZSBEUk1fTU9ERV9GTEFHX1BJQ19BUl9NQVNLCQkoMHgwRjw8 MTkpCkBAIC0xMDIsNiArMTExLDEwIEBAIGV4dGVybiAiQyIgewogCQkJKERSTV9NT0RFX1BJQ1RV UkVfQVNQRUNUXzRfMzw8MTkpCiAjZGVmaW5lICBEUk1fTU9ERV9GTEFHX1BJQ19BUl8xNl85IFwK IAkJCShEUk1fTU9ERV9QSUNUVVJFX0FTUEVDVF8xNl85PDwxOSkKKyNkZWZpbmUgIERSTV9NT0RF X0ZMQUdfUElDX0FSXzY0XzI3IFwKKwkJCShEUk1fTU9ERV9QSUNUVVJFX0FTUEVDVF82NF8yNzw8 MTkpCisjZGVmaW5lICBEUk1fTU9ERV9GTEFHX1BJQ19BUl8yNTZfMTM1IFwKKwkJCShEUk1fTU9E RV9QSUNUVVJFX0FTUEVDVF8yNTZfMTM1PDwxOSkKIAogI2RlZmluZSAgRFJNX01PREVfRkxBR19B TEwJKERSTV9NT0RFX0ZMQUdfUEhTWU5DIHwJCVwKIAkJCQkgRFJNX01PREVfRkxBR19OSFNZTkMg fAkJXApAQCAtMTczLDggKzE4Niw5IEBAIGV4dGVybiAiQyIgewogLyoKICAqIERSTV9NT0RFX1JF RkxFQ1RfPGF4aXM+CiAgKgotICogU2lnbmFscyB0aGF0IHRoZSBjb250ZW50cyBvZiBhIGRybSBw bGFuZSBpcyByZWZsZWN0ZWQgaW4gdGhlIDxheGlzPiBheGlzLAorICogU2lnbmFscyB0aGF0IHRo ZSBjb250ZW50cyBvZiBhIGRybSBwbGFuZSBpcyByZWZsZWN0ZWQgYWxvbmcgdGhlIDxheGlzPiBh eGlzLAogICogaW4gdGhlIHNhbWUgd2F5IGFzIG1pcnJvcmluZy4KKyAqIFNlZSBrZXJuZWxkb2Mg Y2hhcHRlciAiUGxhbmUgQ29tcG9zaXRpb24gUHJvcGVydGllcyIgZm9yIG1vcmUgZGV0YWlscy4K ICAqCiAgKiBUaGlzIGRlZmluZSBpcyBwcm92aWRlZCBhcyBhIGNvbnZlbmllbmNlLCBsb29raW5n IHVwIHRoZSBwcm9wZXJ0eSBpZAogICogdXNpbmcgdGhlIG5hbWUtPnByb3AgaWQgbG9va3VwIGlz IHRoZSBwcmVmZXJyZWQgbWV0aG9kLgpAQCAtMzM4LDYgKzM1Miw3IEBAIGVudW0gZHJtX21vZGVf c3ViY29ubmVjdG9yIHsKICNkZWZpbmUgRFJNX01PREVfQ09OTkVDVE9SX1ZJUlRVQUwgICAgICAx NQogI2RlZmluZSBEUk1fTU9ERV9DT05ORUNUT1JfRFNJCQkxNgogI2RlZmluZSBEUk1fTU9ERV9D T05ORUNUT1JfRFBJCQkxNworI2RlZmluZSBEUk1fTU9ERV9DT05ORUNUT1JfV1JJVEVCQUNLCTE4 CiAKIHN0cnVjdCBkcm1fbW9kZV9nZXRfY29ubmVjdG9yIHsKIApAQCAtMzYzLDcgKzM3OCw3IEBA IHN0cnVjdCBkcm1fbW9kZV9nZXRfY29ubmVjdG9yIHsKIAlfX3UzMiBwYWQ7CiB9OwogCi0jZGVm aW5lIERSTV9NT0RFX1BST1BfUEVORElORwkoMTw8MCkKKyNkZWZpbmUgRFJNX01PREVfUFJPUF9Q RU5ESU5HCSgxPDwwKSAvKiBkZXByZWNhdGVkLCBkbyBub3QgdXNlICovCiAjZGVmaW5lIERSTV9N T0RFX1BST1BfUkFOR0UJKDE8PDEpCiAjZGVmaW5lIERSTV9NT0RFX1BST1BfSU1NVVRBQkxFCSgx PDwyKQogI2RlZmluZSBEUk1fTU9ERV9QUk9QX0VOVU0JKDE8PDMpIC8qIGVudW1lcmF0ZWQgdHlw ZSB3aXRoIHRleHQgc3RyaW5ncyAqLwpAQCAtNTk4LDggKzYxMywxMSBAQCBzdHJ1Y3QgZHJtX21v ZGVfY3J0Y19sdXQgewogfTsKIAogc3RydWN0IGRybV9jb2xvcl9jdG0gewotCS8qIENvbnZlcnNp b24gbWF0cml4IGluIFMzMS4zMiBmb3JtYXQuICovCi0JX19zNjQgbWF0cml4WzldOworCS8qCisJ ICogQ29udmVyc2lvbiBtYXRyaXggaW4gUzMxLjMyIHNpZ24tbWFnbml0dWRlCisJICogKG5vdCB0 d28ncyBjb21wbGVtZW50ISkgZm9ybWF0LgorCSAqLworCV9fdTY0IG1hdHJpeFs5XTsKIH07CiAK IHN0cnVjdCBkcm1fY29sb3JfbHV0IHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtLXVhcGkvZXRu YXZpdl9kcm0uaCBiL2luY2x1ZGUvZHJtLXVhcGkvZXRuYXZpdl9kcm0uaAppbmRleCBlOWI5OTdh MGVmMjcuLjBkNWM0OWRjNDc4YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0tdWFwaS9ldG5hdml2 X2RybS5oCisrKyBiL2luY2x1ZGUvZHJtLXVhcGkvZXRuYXZpdl9kcm0uaApAQCAtNTUsNiArNTUs MTIgQEAgc3RydWN0IGRybV9ldG5hdml2X3RpbWVzcGVjIHsKICNkZWZpbmUgRVROQVZJVl9QQVJB TV9HUFVfRkVBVFVSRVNfNCAgICAgICAgICAgICAgICAweDA3CiAjZGVmaW5lIEVUTkFWSVZfUEFS QU1fR1BVX0ZFQVRVUkVTXzUgICAgICAgICAgICAgICAgMHgwOAogI2RlZmluZSBFVE5BVklWX1BB UkFNX0dQVV9GRUFUVVJFU182ICAgICAgICAgICAgICAgIDB4MDkKKyNkZWZpbmUgRVROQVZJVl9Q QVJBTV9HUFVfRkVBVFVSRVNfNyAgICAgICAgICAgICAgICAweDBhCisjZGVmaW5lIEVUTkFWSVZf UEFSQU1fR1BVX0ZFQVRVUkVTXzggICAgICAgICAgICAgICAgMHgwYgorI2RlZmluZSBFVE5BVklW X1BBUkFNX0dQVV9GRUFUVVJFU185ICAgICAgICAgICAgICAgIDB4MGMKKyNkZWZpbmUgRVROQVZJ Vl9QQVJBTV9HUFVfRkVBVFVSRVNfMTAgICAgICAgICAgICAgICAweDBkCisjZGVmaW5lIEVUTkFW SVZfUEFSQU1fR1BVX0ZFQVRVUkVTXzExICAgICAgICAgICAgICAgMHgwZQorI2RlZmluZSBFVE5B VklWX1BBUkFNX0dQVV9GRUFUVVJFU18xMiAgICAgICAgICAgICAgIDB4MGYKIAogI2RlZmluZSBF VE5BVklWX1BBUkFNX0dQVV9TVFJFQU1fQ09VTlQgICAgICAgICAgICAgIDB4MTAKICNkZWZpbmUg RVROQVZJVl9QQVJBTV9HUFVfUkVHSVNURVJfTUFYICAgICAgICAgICAgICAweDExCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2RybS11YXBpL2V4eW5vc19kcm0uaCBiL2luY2x1ZGUvZHJtLXVhcGkvZXh5 bm9zX2RybS5oCmluZGV4IGEwMDExNmI1Y2M1Yy4uNzQxNGNmZDc2NDE5IDEwMDY0NAotLS0gYS9p bmNsdWRlL2RybS11YXBpL2V4eW5vc19kcm0uaAorKysgYi9pbmNsdWRlL2RybS11YXBpL2V4eW5v c19kcm0uaApAQCAtMTM1LDYgKzEzNSwyMTkgQEAgc3RydWN0IGRybV9leHlub3NfZzJkX2V4ZWMg ewogCV9fdTY0CQkJCQlhc3luYzsKIH07CiAKKy8qIEV4eW5vcyBEUk0gSVBQIHYyIEFQSSAqLwor CisvKioKKyAqIEVudW1lcmF0ZSBhdmFpbGFibGUgSVBQIGhhcmR3YXJlIG1vZHVsZXMuCisgKgor ICogQGNvdW50X2lwcHM6IHNpemUgb2YgaXBwX2lkIGFycmF5IC8gbnVtYmVyIG9mIGlwcCBtb2R1 bGVzIChzZXQgYnkgZHJpdmVyKQorICogQHJlc2VydmVkOiBwYWRkaW5nCisgKiBAaXBwX2lkX3B0 cjogcG9pbnRlciB0byBpcHBfaWQgYXJyYXkgb3IgTlVMTAorICovCitzdHJ1Y3QgZHJtX2V4eW5v c19pb2N0bF9pcHBfZ2V0X3JlcyB7CisJX191MzIgY291bnRfaXBwczsKKwlfX3UzMiByZXNlcnZl ZDsKKwlfX3U2NCBpcHBfaWRfcHRyOworfTsKKworZW51bSBkcm1fZXh5bm9zX2lwcF9mb3JtYXRf dHlwZSB7CisJRFJNX0VYWU5PU19JUFBfRk9STUFUX1NPVVJDRQkJPSAweDAxLAorCURSTV9FWFlO T1NfSVBQX0ZPUk1BVF9ERVNUSU5BVElPTgk9IDB4MDIsCit9OworCitzdHJ1Y3QgZHJtX2V4eW5v c19pcHBfZm9ybWF0IHsKKwlfX3UzMiBmb3VyY2M7CisJX191MzIgdHlwZTsKKwlfX3U2NCBtb2Rp ZmllcjsKK307CisKK2VudW0gZHJtX2V4eW5vc19pcHBfY2FwYWJpbGl0eSB7CisJRFJNX0VYWU5P U19JUFBfQ0FQX0NST1AJCT0gMHgwMSwKKwlEUk1fRVhZTk9TX0lQUF9DQVBfUk9UQVRFCT0gMHgw MiwKKwlEUk1fRVhZTk9TX0lQUF9DQVBfU0NBTEUJPSAweDA0LAorCURSTV9FWFlOT1NfSVBQX0NB UF9DT05WRVJUCT0gMHgwOCwKK307CisKKy8qKgorICogR2V0IElQUCBoYXJkd2FyZSBjYXBhYmls aXRpZXMgYW5kIHN1cHBvcnRlZCBpbWFnZSBmb3JtYXRzLgorICoKKyAqIEBpcHBfaWQ6IGlkIG9m IElQUCBtb2R1bGUgdG8gcXVlcnkKKyAqIEBjYXBhYmlsaXRpZXM6IGJpdG1hc2sgb2YgZHJtX2V4 eW5vc19pcHBfY2FwYWJpbGl0eSAoc2V0IGJ5IGRyaXZlcikKKyAqIEByZXNlcnZlZDogcGFkZGlu ZworICogQGZvcm1hdHNfY291bnQ6IHNpemUgb2YgZm9ybWF0cyBhcnJheSAoaW4gZW50cmllcykg LyBudW1iZXIgb2YgZmlsbGVkCisgKgkJICAgZm9ybWF0cyAoc2V0IGJ5IGRyaXZlcikKKyAqIEBm b3JtYXRzX3B0cjogcG9pbnRlciB0byBmb3JtYXRzIGFycmF5IG9yIE5VTEwKKyAqLworc3RydWN0 IGRybV9leHlub3NfaW9jdGxfaXBwX2dldF9jYXBzIHsKKwlfX3UzMiBpcHBfaWQ7CisJX191MzIg Y2FwYWJpbGl0aWVzOworCV9fdTMyIHJlc2VydmVkOworCV9fdTMyIGZvcm1hdHNfY291bnQ7CisJ X191NjQgZm9ybWF0c19wdHI7Cit9OworCitlbnVtIGRybV9leHlub3NfaXBwX2xpbWl0X3R5cGUg eworCS8qIHNpemUgKGhvcml6b250YWwvdmVydGlhbCkgbGltaXRzLCBpbiBwaXhlbHMgKG1pbiwg bWF4LCBhbGlnbm1lbnQpICovCisJRFJNX0VYWU5PU19JUFBfTElNSVRfVFlQRV9TSVpFCQk9IDB4 MDAwMSwKKwkvKiBzY2FsZSByYXRpbyAoaG9yaXpvbnRhL3ZlcnRpYWwpLCAxNi4xNiBmaXhlZCBw b2ludCAobWluLCBtYXgpICovCisJRFJNX0VYWU5PU19JUFBfTElNSVRfVFlQRV9TQ0FMRQkJPSAw eDAwMDIsCisKKwkvKiBpbWFnZSBidWZmZXIgYXJlYSAqLworCURSTV9FWFlOT1NfSVBQX0xJTUlU X1NJWkVfQlVGRkVSCT0gMHgwMDAxIDw8IDE2LAorCS8qIHNyYy9kc3QgcmVjdGFuZ2xlIGFyZWEg Ki8KKwlEUk1fRVhZTk9TX0lQUF9MSU1JVF9TSVpFX0FSRUEJCT0gMHgwMDAyIDw8IDE2LAorCS8q IHNyYy9kc3QgcmVjdGFuZ2xlIGFyZWEgd2hlbiByb3RhdGlvbiBlbmFibGVkICovCisJRFJNX0VY WU5PU19JUFBfTElNSVRfU0laRV9ST1RBVEVECT0gMHgwMDAzIDw8IDE2LAorCisJRFJNX0VYWU5P U19JUFBfTElNSVRfVFlQRV9NQVNLCQk9IDB4MDAwZiwKKwlEUk1fRVhZTk9TX0lQUF9MSU1JVF9T SVpFX01BU0sJCT0gMHgwMDBmIDw8IDE2LAorfTsKKworc3RydWN0IGRybV9leHlub3NfaXBwX2xp bWl0X3ZhbCB7CisJX191MzIgbWluOworCV9fdTMyIG1heDsKKwlfX3UzMiBhbGlnbjsKKwlfX3Uz MiByZXNlcnZlZDsKK307CisKKy8qKgorICogSVBQIG1vZHVsZSBsaW1pdGF0aW9uLgorICoKKyAq IEB0eXBlOiBsaW1pdCB0eXBlIChzZWUgZHJtX2V4eW5vc19pcHBfbGltaXRfdHlwZSBlbnVtKQor ICogQHJlc2VydmVkOiBwYWRkaW5nCisgKiBAaDogaG9yaXpvbnRhbCBsaW1pdHMKKyAqIEB2OiB2 ZXJ0aWNhbCBsaW1pdHMKKyAqLworc3RydWN0IGRybV9leHlub3NfaXBwX2xpbWl0IHsKKwlfX3Uz MiB0eXBlOworCV9fdTMyIHJlc2VydmVkOworCXN0cnVjdCBkcm1fZXh5bm9zX2lwcF9saW1pdF92 YWwgaDsKKwlzdHJ1Y3QgZHJtX2V4eW5vc19pcHBfbGltaXRfdmFsIHY7Cit9OworCisvKioKKyAq IEdldCBJUFAgbGltaXRzIGZvciBnaXZlbiBpbWFnZSBmb3JtYXQuCisgKgorICogQGlwcF9pZDog aWQgb2YgSVBQIG1vZHVsZSB0byBxdWVyeQorICogQGZvdXJjYzogaW1hZ2UgZm9ybWF0IGNvZGUg KHNlZSBEUk1fRk9STUFUXyogaW4gZHJtX2ZvdXJjYy5oKQorICogQG1vZGlmaWVyOiBpbWFnZSBm b3JtYXQgbW9kaWZpZXIgKHNlZSBEUk1fRk9STUFUX01PRF8qIGluIGRybV9mb3VyY2MuaCkKKyAq IEB0eXBlOiBzb3VyY2UvZGVzdGluYXRpb24gaWRlbnRpZmllciAoZHJtX2V4eW5vc19pcHBfZm9y bWF0X2ZsYWcgZW51bSkKKyAqIEBsaW1pdHNfY291bnQ6IHNpemUgb2YgbGltaXRzIGFycmF5IChp biBlbnRyaWVzKSAvIG51bWJlciBvZiBmaWxsZWQgZW50cmllcworICoJCSAoc2V0IGJ5IGRyaXZl cikKKyAqIEBsaW1pdHNfcHRyOiBwb2ludGVyIHRvIGxpbWl0cyBhcnJheSBvciBOVUxMCisgKi8K K3N0cnVjdCBkcm1fZXh5bm9zX2lvY3RsX2lwcF9nZXRfbGltaXRzIHsKKwlfX3UzMiBpcHBfaWQ7 CisJX191MzIgZm91cmNjOworCV9fdTY0IG1vZGlmaWVyOworCV9fdTMyIHR5cGU7CisJX191MzIg bGltaXRzX2NvdW50OworCV9fdTY0IGxpbWl0c19wdHI7Cit9OworCitlbnVtIGRybV9leHlub3Nf aXBwX3Rhc2tfaWQgeworCS8qIGJ1ZmZlciBkZXNjcmliZWQgYnkgc3RydWN0IGRybV9leHlub3Nf aXBwX3Rhc2tfYnVmZmVyICovCisJRFJNX0VYWU5PU19JUFBfVEFTS19CVUZGRVIJCT0gMHgwMDAx LAorCS8qIHJlY3RhbmdsZSBkZXNjcmliZWQgYnkgc3RydWN0IGRybV9leHlub3NfaXBwX3Rhc2tf cmVjdCAqLworCURSTV9FWFlOT1NfSVBQX1RBU0tfUkVDVEFOR0xFCQk9IDB4MDAwMiwKKwkvKiB0 cmFuc2Zvcm1hdGlvbiBkZXNjcmliZWQgYnkgc3RydWN0IGRybV9leHlub3NfaXBwX3Rhc2tfdHJh bnNmb3JtICovCisJRFJNX0VYWU5PU19JUFBfVEFTS19UUkFOU0ZPUk0JCT0gMHgwMDAzLAorCS8q IGFscGhhIGNvbmZpZ3VyYXRpb24gZGVzY3JpYmVkIGJ5IHN0cnVjdCBkcm1fZXh5bm9zX2lwcF90 YXNrX2FscGhhICovCisJRFJNX0VYWU5PU19JUFBfVEFTS19BTFBIQQkJPSAweDAwMDQsCisKKwkv KiBzb3VyY2UgaW1hZ2UgZGF0YSAoZm9yIGJ1ZmZlciBhbmQgcmVjdGFuZ2xlIGNodW5rcykgKi8K KwlEUk1fRVhZTk9TX0lQUF9UQVNLX1RZUEVfU09VUkNFCQk9IDB4MDAwMSA8PCAxNiwKKwkvKiBk ZXN0aW5hdGlvbiBpbWFnZSBkYXRhIChmb3IgYnVmZmVyIGFuZCByZWN0YW5nbGUgY2h1bmtzKSAq LworCURSTV9FWFlOT1NfSVBQX1RBU0tfVFlQRV9ERVNUSU5BVElPTgk9IDB4MDAwMiA8PCAxNiwK K307CisKKy8qKgorICogTWVtb3J5IGJ1ZmZlciB3aXRoIGltYWdlIGRhdGEuCisgKgorICogQGlk OiBtdXN0IGJlIERSTV9FWFlOT1NfSVBQX1RBU0tfQlVGRkVSCisgKiBvdGhlciBwYXJhbWV0ZXJz IGFyZSBzYW1lIGFzIGZvciBBZGRGQjIgZ2VuZXJpYyBEUk0gaW9jdGwKKyAqLworc3RydWN0IGRy bV9leHlub3NfaXBwX3Rhc2tfYnVmZmVyIHsKKwlfX3UzMglpZDsKKwlfX3UzMglmb3VyY2M7CisJ X191MzIJd2lkdGgsIGhlaWdodDsKKwlfX3UzMglnZW1faWRbNF07CisJX191MzIJb2Zmc2V0WzRd OworCV9fdTMyCXBpdGNoWzRdOworCV9fdTY0CW1vZGlmaWVyOworfTsKKworLyoqCisgKiBSZWN0 YW5nbGUgZm9yIHByb2Nlc3NpbmcuCisgKgorICogQGlkOiBtdXN0IGJlIERSTV9FWFlOT1NfSVBQ X1RBU0tfUkVDVEFOR0xFCisgKiBAcmVzZXJ2ZWQ6IHBhZGRpbmcKKyAqIEB4LEB5OiBsZWZ0IGNv cm5lciBpbiBwaXhlbHMKKyAqIEB3LEBoOiB3aWR0aC9oZWlnaHQgaW4gcGl4ZWxzCisgKi8KK3N0 cnVjdCBkcm1fZXh5bm9zX2lwcF90YXNrX3JlY3QgeworCV9fdTMyCWlkOworCV9fdTMyCXJlc2Vy dmVkOworCV9fdTMyCXg7CisJX191MzIJeTsKKwlfX3UzMgl3OworCV9fdTMyCWg7Cit9OworCisv KioKKyAqIEltYWdlIHRyYW5mb3JtYXRpb24gZGVzY3JpcHRpb24uCisgKgorICogQGlkOiBtdXN0 IGJlIERSTV9FWFlOT1NfSVBQX1RBU0tfVFJBTlNGT1JNCisgKiBAcm90YXRpb246IERSTV9NT0RF X1JPVEFURV8qIGFuZCBEUk1fTU9ERV9SRUZMRUNUXyogdmFsdWVzCisgKi8KK3N0cnVjdCBkcm1f ZXh5bm9zX2lwcF90YXNrX3RyYW5zZm9ybSB7CisJX191MzIJaWQ7CisJX191MzIJcm90YXRpb247 Cit9OworCisvKioKKyAqIEltYWdlIGdsb2JhbCBhbHBoYSBjb25maWd1cmF0aW9uIGZvciBmb3Jt YXRzIHdpdGhvdXQgYWxwaGEgdmFsdWVzLgorICoKKyAqIEBpZDogbXVzdCBiZSBEUk1fRVhZTk9T X0lQUF9UQVNLX0FMUEhBCisgKiBAdmFsdWU6IGdsb2JhbCBhbHBoYSB2YWx1ZSAoMC0yNTUpCisg Ki8KK3N0cnVjdCBkcm1fZXh5bm9zX2lwcF90YXNrX2FscGhhIHsKKwlfX3UzMglpZDsKKwlfX3Uz Mgl2YWx1ZTsKK307CisKK2VudW0gZHJtX2V4eW5vc19pcHBfZmxhZyB7CisJLyogZ2VuZXJhdGUg RFJNIGV2ZW50IGFmdGVyIHByb2Nlc3NpbmcgKi8KKwlEUk1fRVhZTk9TX0lQUF9GTEFHX0VWRU5U CT0gMHgwMSwKKwkvKiBkcnkgcnVuLCBvbmx5IGNoZWNrIHRhc2sgcGFyYW1ldGVycyAqLworCURS TV9FWFlOT1NfSVBQX0ZMQUdfVEVTVF9PTkxZCT0gMHgwMiwKKwkvKiBub24tYmxvY2tpbmcgcHJv Y2Vzc2luZyAqLworCURSTV9FWFlOT1NfSVBQX0ZMQUdfTk9OQkxPQ0sJPSAweDA0LAorfTsKKwor I2RlZmluZSBEUk1fRVhZTk9TX0lQUF9GTEFHUyAoRFJNX0VYWU5PU19JUFBfRkxBR19FVkVOVCB8 XAorCQlEUk1fRVhZTk9TX0lQUF9GTEFHX1RFU1RfT05MWSB8IERSTV9FWFlOT1NfSVBQX0ZMQUdf Tk9OQkxPQ0spCisKKy8qKgorICogUGVyZm9ybSBpbWFnZSBwcm9jZXNzaW5nIGRlc2NyaWJlZCBi eSBhcnJheSBvZiBkcm1fZXh5bm9zX2lwcF90YXNrXyoKKyAqIHN0cnVjdHVyZXMgKHBhcmFtZXRl cnMgYXJyYXkpLgorICoKKyAqIEBpcHBfaWQ6IGlkIG9mIElQUCBtb2R1bGUgdG8gcnVuIHRoZSB0 YXNrCisgKiBAZmxhZ3M6IGJpdG1hc2sgb2YgZHJtX2V4eW5vc19pcHBfZmxhZyB2YWx1ZXMKKyAq IEByZXNlcnZlZDogcGFkZGluZworICogQHBhcmFtc19zaXplOiBzaXplIG9mIHBhcmFtZXRlcnMg YXJyYXkgKGluIGJ5dGVzKQorICogQHBhcmFtc19wdHI6IHBvaW50ZXIgdG8gcGFyYW1ldGVycyBh cnJheSBvciBOVUxMCisgKiBAdXNlcl9kYXRhOiAob3B0aW9uYWwpIGRhdGEgZm9yIGRybSBldmVu dAorICovCitzdHJ1Y3QgZHJtX2V4eW5vc19pb2N0bF9pcHBfY29tbWl0IHsKKwlfX3UzMiBpcHBf aWQ7CisJX191MzIgZmxhZ3M7CisJX191MzIgcmVzZXJ2ZWQ7CisJX191MzIgcGFyYW1zX3NpemU7 CisJX191NjQgcGFyYW1zX3B0cjsKKwlfX3U2NCB1c2VyX2RhdGE7Cit9OworCiAjZGVmaW5lIERS TV9FWFlOT1NfR0VNX0NSRUFURQkJMHgwMAogI2RlZmluZSBEUk1fRVhZTk9TX0dFTV9NQVAJCTB4 MDEKIC8qIFJlc2VydmVkIDB4MDMgfiAweDA1IGZvciBleHlub3Mgc3BlY2lmaWMgZ2VtIGlvY3Rs ICovCkBAIC0xNDcsNiArMzYwLDExIEBAIHN0cnVjdCBkcm1fZXh5bm9zX2cyZF9leGVjIHsKICNk ZWZpbmUgRFJNX0VYWU5PU19HMkRfRVhFQwkJMHgyMgogCiAvKiBSZXNlcnZlZCAweDMwIH4gMHgz MyBmb3Igb2Jzb2xldGUgRXh5bm9zIElQUCBpb2N0bHMgKi8KKy8qIElQUCAtIEltYWdlIFBvc3Qg UHJvY2Vzc2luZyAqLworI2RlZmluZSBEUk1fRVhZTk9TX0lQUF9HRVRfUkVTT1VSQ0VTCTB4NDAK KyNkZWZpbmUgRFJNX0VYWU5PU19JUFBfR0VUX0NBUFMJCTB4NDEKKyNkZWZpbmUgRFJNX0VYWU5P U19JUFBfR0VUX0xJTUlUUwkweDQyCisjZGVmaW5lIERSTV9FWFlOT1NfSVBQX0NPTU1JVAkJMHg0 MwogCiAjZGVmaW5lIERSTV9JT0NUTF9FWFlOT1NfR0VNX0NSRUFURQkJRFJNX0lPV1IoRFJNX0NP TU1BTkRfQkFTRSArIFwKIAkJRFJNX0VYWU5PU19HRU1fQ1JFQVRFLCBzdHJ1Y3QgZHJtX2V4eW5v c19nZW1fY3JlYXRlKQpAQCAtMTY1LDggKzM4MywyMCBAQCBzdHJ1Y3QgZHJtX2V4eW5vc19nMmRf ZXhlYyB7CiAjZGVmaW5lIERSTV9JT0NUTF9FWFlOT1NfRzJEX0VYRUMJCURSTV9JT1dSKERSTV9D T01NQU5EX0JBU0UgKyBcCiAJCURSTV9FWFlOT1NfRzJEX0VYRUMsIHN0cnVjdCBkcm1fZXh5bm9z X2cyZF9leGVjKQogCisjZGVmaW5lIERSTV9JT0NUTF9FWFlOT1NfSVBQX0dFVF9SRVNPVVJDRVMJ RFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIFwKKwkJRFJNX0VYWU5PU19JUFBfR0VUX1JFU09V UkNFUywgXAorCQlzdHJ1Y3QgZHJtX2V4eW5vc19pb2N0bF9pcHBfZ2V0X3JlcykKKyNkZWZpbmUg RFJNX0lPQ1RMX0VYWU5PU19JUFBfR0VUX0NBUFMJCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0Ug KyBcCisJCURSTV9FWFlOT1NfSVBQX0dFVF9DQVBTLCBzdHJ1Y3QgZHJtX2V4eW5vc19pb2N0bF9p cHBfZ2V0X2NhcHMpCisjZGVmaW5lIERSTV9JT0NUTF9FWFlOT1NfSVBQX0dFVF9MSU1JVFMJCURS TV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBcCisJCURSTV9FWFlOT1NfSVBQX0dFVF9MSU1JVFMs IFwKKwkJc3RydWN0IGRybV9leHlub3NfaW9jdGxfaXBwX2dldF9saW1pdHMpCisjZGVmaW5lIERS TV9JT0NUTF9FWFlOT1NfSVBQX0NPTU1JVAkJRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIFwK KwkJRFJNX0VYWU5PU19JUFBfQ09NTUlULCBzdHJ1Y3QgZHJtX2V4eW5vc19pb2N0bF9pcHBfY29t bWl0KQorCiAvKiBFWFlOT1Mgc3BlY2lmaWMgZXZlbnRzICovCiAjZGVmaW5lIERSTV9FWFlOT1Nf RzJEX0VWRU5UCQkweDgwMDAwMDAwCisjZGVmaW5lIERSTV9FWFlOT1NfSVBQX0VWRU5UCQkweDgw MDAwMDAyCiAKIHN0cnVjdCBkcm1fZXh5bm9zX2cyZF9ldmVudCB7CiAJc3RydWN0IGRybV9ldmVu dAliYXNlOwpAQCAtMTc3LDYgKzQwNywxNiBAQCBzdHJ1Y3QgZHJtX2V4eW5vc19nMmRfZXZlbnQg ewogCV9fdTMyCQkJcmVzZXJ2ZWQ7CiB9OwogCitzdHJ1Y3QgZHJtX2V4eW5vc19pcHBfZXZlbnQg eworCXN0cnVjdCBkcm1fZXZlbnQJYmFzZTsKKwlfX3U2NAkJCXVzZXJfZGF0YTsKKwlfX3UzMgkJ CXR2X3NlYzsKKwlfX3UzMgkJCXR2X3VzZWM7CisJX191MzIJCQlpcHBfaWQ7CisJX191MzIJCQlz ZXF1ZW5jZTsKKwlfX3U2NAkJCXJlc2VydmVkOworfTsKKwogI2lmIGRlZmluZWQoX19jcGx1c3Bs dXMpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtLXVhcGkvaTkxNV9kcm0uaCBi L2luY2x1ZGUvZHJtLXVhcGkvaTkxNV9kcm0uaAppbmRleCAxNmU0NTJhYTEyZDQuLmIxNGNhOTY5 NWYxZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0tdWFwaS9pOTE1X2RybS5oCisrKyBiL2luY2x1 ZGUvZHJtLXVhcGkvaTkxNV9kcm0uaApAQCAtNjIsNiArNjIsMjYgQEAgZXh0ZXJuICJDIiB7CiAj ZGVmaW5lIEk5MTVfRVJST1JfVUVWRU5UCQkiRVJST1IiCiAjZGVmaW5lIEk5MTVfUkVTRVRfVUVW RU5UCQkiUkVTRVQiCiAKKy8qCisgKiBpOTE1X3VzZXJfZXh0ZW5zaW9uOiBCYXNlIGNsYXNzIGZv ciBkZWZpbmluZyBhIGNoYWluIG9mIGV4dGVuc2lvbnMKKyAqCisgKiBNYW55IGludGVyZmFjZXMg bmVlZCB0byBncm93IG92ZXIgdGltZS4gSW4gbW9zdCBjYXNlcyB3ZSBjYW4gc2ltcGx5CisgKiBl eHRlbmQgdGhlIHN0cnVjdCBhbmQgaGF2ZSB1c2Vyc3BhY2UgcGFzcyBpbiBtb3JlIGRhdGEuIEFu b3RoZXIgb3B0aW9uLAorICogYXMgZGVtb25zdHJhdGVkIGJ5IFZ1bGthbidzIGFwcHJvYWNoIHRv IHByb3ZpZGluZyBleHRlbnNpb25zIGZvciBmb3J3YXJkCisgKiBhbmQgYmFja3dhcmQgY29tcGF0 aWJpbGl0eSwgaXMgdG8gdXNlIGEgbGlzdCBvZiBvcHRpb25hbCBzdHJ1Y3RzIHRvCisgKiBwcm92 aWRlIHRob3NlIGV4dHJhIGRldGFpbHMuCisgKgorICogVGhlIGtleSBhZHZhbnRhZ2UgdG8gdXNp bmcgYW4gZXh0ZW5zaW9uIGNoYWluIGlzIHRoYXQgaXQgYWxsb3dzIHVzIHRvCisgKiByZWRlZmlu ZSB0aGUgaW50ZXJmYWNlIG1vcmUgZWFzaWx5IHRoYW4gYW4gZXZlciBncm93aW5nIHN0cnVjdCBv ZgorICogaW5jcmVhc2luZyBjb21wbGV4aXR5LCBhbmQgZm9yIGxhcmdlIHBhcnRzIG9mIHRoYXQg aW50ZXJmYWNlIHRvIGJlCisgKiBlbnRpcmVseSBvcHRpb25hbC4gVGhlIGRvd25zaWRlIGlzIG1v cmUgcG9pbnRlciBjaGFzaW5nOyBjaGFzaW5nIGFjcm9zcworICogdGhlIGJvdW5kYXJ5IHdpdGgg cG9pbnRlcnMgZW5jYXBzdWxhdGVkIGluc2lkZSB1NjQuCisgKi8KK3N0cnVjdCBpOTE1X3VzZXJf ZXh0ZW5zaW9uIHsKKwlfX3U2NCBuZXh0X2V4dGVuc2lvbjsKKwlfX3U2NCBuYW1lOworfTsKKwog LyoKICAqIE1PQ1MgaW5kZXhlcyB1c2VkIGZvciBHUFUgc3VyZmFjZXMsIGRlZmluaW5nIHRoZSBj YWNoZWFiaWxpdHkgb2YgdGhlCiAgKiBzdXJmYWNlIGRhdGEgYW5kIHRoZSBjb2hlcmVuY3kgZm9y IHRoaXMgZGF0YSB3cnQuIENQVSB2cy4gR1BVIGFjY2Vzc2VzLgpAQCAtMzY3LDYgKzM4Nyw3IEBA IHR5cGVkZWYgc3RydWN0IF9kcm1faTkxNV9zYXJlYSB7CiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1 X0dFVF9TUFJJVEVfQ09MT1JLRVkgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1 X0dFVF9TUFJJVEVfQ09MT1JLRVksIHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5KQog I2RlZmluZSBEUk1fSU9DVExfSTkxNV9HRU1fV0FJVAkJRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFT RSArIERSTV9JOTE1X0dFTV9XQUlULCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3dhaXQpCiAjZGVmaW5l IERSTV9JT0NUTF9JOTE1X0dFTV9DT05URVhUX0NSRUFURQlEUk1fSU9XUiAoRFJNX0NPTU1BTkRf QkFTRSArIERSTV9JOTE1X0dFTV9DT05URVhUX0NSRUFURSwgc3RydWN0IGRybV9pOTE1X2dlbV9j b250ZXh0X2NyZWF0ZSkKKyNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0NPTlRFWFRfQ1JFQVRF X3YyCURSTV9JT1dSIChEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0NPTlRFWFRfQ1JF QVRFLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX3YyKQogI2RlZmluZSBEUk1f SU9DVExfSTkxNV9HRU1fQ09OVEVYVF9ERVNUUk9ZCURSTV9JT1cgKERSTV9DT01NQU5EX0JBU0Ug KyBEUk1fSTkxNV9HRU1fQ09OVEVYVF9ERVNUUk9ZLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRl eHRfZGVzdHJveSkKICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfUkVHX1JFQUQJCQlEUk1fSU9XUiAo RFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X1JFR19SRUFELCBzdHJ1Y3QgZHJtX2k5MTVfcmVn X3JlYWQpCiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dFVF9SRVNFVF9TVEFUUwkJRFJNX0lPV1Ig KERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRVRfUkVTRVRfU1RBVFMsIHN0cnVjdCBkcm1f aTkxNV9yZXNldF9zdGF0cykKQEAgLTQxMiw2ICs0MzMsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgZHJt X2k5MTVfaXJxX3dhaXQgewogCWludCBpcnFfc2VxOwogfSBkcm1faTkxNV9pcnFfd2FpdF90Owog CisvKgorICogRGlmZmVyZW50IG1vZGVzIG9mIHBlci1wcm9jZXNzIEdyYXBoaWNzIFRyYW5zbGF0 aW9uIFRhYmxlLAorICogc2VlIEk5MTVfUEFSQU1fSEFTX0FMSUFTSU5HX1BQR1RUCisgKi8KKyNk ZWZpbmUgSTkxNV9HRU1fUFBHVFRfTk9ORQkwCisjZGVmaW5lIEk5MTVfR0VNX1BQR1RUX0FMSUFT SU5HCTEKKyNkZWZpbmUgSTkxNV9HRU1fUFBHVFRfRlVMTAkyCisKIC8qIElvY3RsIHRvIHF1ZXJ5 IGtlcm5lbCBwYXJhbXM6CiAgKi8KICNkZWZpbmUgSTkxNV9QQVJBTV9JUlFfQUNUSVZFICAgICAg ICAgICAgMQpAQCAtNTI5LDYgKzU1OCwzNSBAQCB0eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9pcnFf d2FpdCB7CiAgKi8KICNkZWZpbmUgSTkxNV9QQVJBTV9DU19USU1FU1RBTVBfRlJFUVVFTkNZIDUx CiAKKy8qCisgKiBPbmNlIHVwb24gYSB0aW1lIHdlIHN1cHBvc2VkIHRoYXQgd3JpdGVzIHRocm91 Z2ggdGhlIEdHVFQgd291bGQgYmUKKyAqIGltbWVkaWF0ZWx5IGluIHBoeXNpY2FsIG1lbW9yeSAo b25jZSBmbHVzaGVkIG91dCBvZiB0aGUgQ1BVIHBhdGgpLiBIb3dldmVyLAorICogb24gYSBmZXcg ZGlmZmVyZW50IHByb2Nlc3NvcnMgYW5kIGNoaXBzZXRzLCB0aGlzIGlzIG5vdCBuZWNlc3Nhcmls eSB0aGUgY2FzZQorICogYXMgdGhlIHdyaXRlcyBhcHBlYXIgdG8gYmUgYnVmZmVyZWQgaW50ZXJu YWxseS4gVGh1cyBhIHJlYWQgb2YgdGhlIGJhY2tpbmcKKyAqIHN0b3JhZ2UgKHBoeXNpY2FsIG1l bW9yeSkgdmlhIGEgZGlmZmVyZW50IHBhdGggKHdpdGggZGlmZmVyZW50IHBoeXNpY2FsIHRhZ3MK KyAqIHRvIHRoZSBpbmRpcmVjdCB3cml0ZSB2aWEgdGhlIEdHVFQpIHdpbGwgc2VlIHN0YWxlIHZh bHVlcyBmcm9tIGJlZm9yZQorICogdGhlIEdHVFQgd3JpdGUuIEluc2lkZSB0aGUga2VybmVsLCB3 ZSBjYW4gZm9yIHRoZSBtb3N0IHBhcnQga2VlcCB0cmFjayBvZgorICogdGhlIGRpZmZlcmVudCBy ZWFkL3dyaXRlIGRvbWFpbnMgaW4gdXNlIChlLmcuIHNldC1kb21haW4pLCBidXQgdGhlIGFzc3Vt cHRpb24KKyAqIG9mIGNvaGVyZW5jeSBpcyBiYWtlZCBpbnRvIHRoZSBBQkksIGhlbmNlIHJlcG9y dGluZyBpdHMgdHJ1ZSBzdGF0ZSBpbiB0aGlzCisgKiBwYXJhbWV0ZXIuCisgKgorICogUmVwb3J0 cyB0cnVlIHdoZW4gd3JpdGVzIHZpYSBtbWFwX2d0dCBhcmUgaW1tZWRpYXRlbHkgdmlzaWJsZSBm b2xsb3dpbmcgYW4KKyAqIGxmZW5jZSB0byBmbHVzaCB0aGUgV0NCLgorICoKKyAqIFJlcG9ydHMg ZmFsc2Ugd2hlbiB3cml0ZXMgdmlhIG1tYXBfZ3R0IGFyZSBpbmRldGVybWluYXRlbHkgZGVsYXll ZCBpbiBhbiBpbgorICogaW50ZXJuYWwgYnVmZmVyIGFuZCBhcmUgX25vdF8gaW1tZWRpYXRlbHkg dmlzaWJsZSB0byB0aGlyZCBwYXJ0aWVzIGFjY2Vzc2luZworICogZGlyZWN0bHkgdmlhIG1tYXBf Y3B1L21tYXBfd2MuIFVzZSBvZiBtbWFwX2d0dCBhcyBwYXJ0IG9mIGFuIElQQworICogY29tbXVu aWNhdGlvbnMgY2hhbm5lbCB3aGVuIHJlcG9ydGluZyBmYWxzZSBpcyBzdHJvbmdseSBkaXNhZHZp c2VkLgorICovCisjZGVmaW5lIEk5MTVfUEFSQU1fTU1BUF9HVFRfQ09IRVJFTlQJNTIKKworLyoK KyAqIFF1ZXJ5IHdoZXRoZXIgRFJNX0k5MTVfR0VNX0VYRUNCVUZGRVIyIHN1cHBvcnRzIGNvb3Jk aW5hdGlvbiBvZiBwYXJhbGxlbAorICogZXhlY3V0aW9uIHRocm91Z2ggdXNlIG9mIGV4cGxpY2l0 IGZlbmNlIHN1cHBvcnQuCisgKiBTZWUgSTkxNV9FWEVDX0ZFTkNFX09VVCBhbmQgSTkxNV9FWEVD X0ZFTkNFX1NVQk1JVC4KKyAqLworI2RlZmluZSBJOTE1X1BBUkFNX0hBU19FWEVDX1NVQk1JVF9G RU5DRSA1MworCiB0eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9nZXRwYXJhbSB7CiAJX19zMzIgcGFy YW07CiAJLyoKQEAgLTk0Miw3ICsxMDAwLDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVm ZmVyMiB7CiAJICogc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX2ZlbmNlICpmZW5jZXMuCiAJICov CiAJX191NjQgY2xpcHJlY3RzX3B0cjsKLSNkZWZpbmUgSTkxNV9FWEVDX1JJTkdfTUFTSyAgICAg ICAgICAgICAgKDc8PDApCisjZGVmaW5lIEk5MTVfRVhFQ19SSU5HX01BU0sgICAgICAgICAgICAg ICgweDNmKQogI2RlZmluZSBJOTE1X0VYRUNfREVGQVVMVCAgICAgICAgICAgICAgICAoMDw8MCkK ICNkZWZpbmUgSTkxNV9FWEVDX1JFTkRFUiAgICAgICAgICAgICAgICAgKDE8PDApCiAjZGVmaW5l IEk5MTVfRVhFQ19CU0QgICAgICAgICAgICAgICAgICAgICgyPDwwKQpAQCAtMTA0OCw3ICsxMTA2 LDE2IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgewogICovCiAjZGVmaW5lIEk5 MTVfRVhFQ19GRU5DRV9BUlJBWSAgICgxPDwxOSkKIAotI2RlZmluZSBfX0k5MTVfRVhFQ19VTktO T1dOX0ZMQUdTICgtKEk5MTVfRVhFQ19GRU5DRV9BUlJBWTw8MSkpCisvKgorICogU2V0dGluZyBJ OTE1X0VYRUNfRkVOQ0VfU1VCTUlUIGltcGxpZXMgdGhhdCBsb3dlcl8zMl9iaXRzKHJzdmQyKSBy ZXByZXNlbnQKKyAqIGEgc3luY19maWxlIGZkIHRvIHdhaXQgdXBvbiAoaW4gYSBub25ibG9ja2lu ZyBtYW5uZXIpIHByaW9yIHRvIGV4ZWN1dGluZworICogdGhlIGJhdGNoLgorICoKKyAqIFJldHVy bnMgLUVJTlZBTCBpZiB0aGUgc3luY19maWxlIGZkIGNhbm5vdCBiZSBmb3VuZC4KKyAqLworI2Rl ZmluZSBJOTE1X0VYRUNfRkVOQ0VfU1VCTUlUCQkoMTw8MjApCisKKyNkZWZpbmUgX19JOTE1X0VY RUNfVU5LTk9XTl9GTEFHUyAoLShJOTE1X0VYRUNfRkVOQ0VfU1VCTUlUPDwxKSkKIAogI2RlZmlu ZSBJOTE1X0VYRUNfQ09OVEVYVF9JRF9NQVNLCSgweGZmZmZmZmZmKQogI2RlZmluZSBpOTE1X2V4 ZWNidWZmZXIyX3NldF9jb250ZXh0X2lkKGViMiwgY29udGV4dCkgXApAQCAtMTM4Nyw2ICsxNDU0 LDE2IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9jcmVhdGUgewogCV9fdTMyIHBhZDsK IH07CiAKK3N0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9jcmVhdGVfdjIgeworCS8qICBvdXRw dXQ6IGlkIG9mIG5ldyBjb250ZXh0Ki8KKwlfX3UzMiBjdHhfaWQ7CisJX191MzIgZmxhZ3M7Cisj ZGVmaW5lIEk5MTVfR0VNX0NPTlRFWFRfU0hBUkVfR1RUCQkweDEKKyNkZWZpbmUgSTkxNV9HRU1f Q09OVEVYVF9TSU5HTEVfVElNRUxJTkUJMHgyCisJX191MzIgc2hhcmVfY3R4OworCV9fdTMyIHBh ZDsKK307CisKIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9kZXN0cm95IHsKIAlfX3UzMiBj dHhfaWQ7CiAJX191MzIgcGFkOwpAQCAtMTQ1Niw5ICsxNTMzLDEyMiBAQCBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX2NvbnRleHRfcGFyYW0gewogI2RlZmluZSAgIEk5MTVfQ09OVEVYVF9NQVhfVVNFUl9Q UklPUklUWQkxMDIzIC8qIGluY2x1c2l2ZSAqLwogI2RlZmluZSAgIEk5MTVfQ09OVEVYVF9ERUZB VUxUX1BSSU9SSVRZCQkwCiAjZGVmaW5lICAgSTkxNV9DT05URVhUX01JTl9VU0VSX1BSSU9SSVRZ CS0xMDIzIC8qIGluY2x1c2l2ZSAqLworCisvKgorICogSTkxNV9DT05URVhUX1BBUkFNX0VOR0lO RVM6CisgKgorICogQmluZCB0aGlzIGNvbnRleHQgdG8gb3BlcmF0ZSBvbiB0aGlzIHN1YnNldCBv ZiBhdmFpbGFibGUgZW5naW5lcy4gSGVuY2Vmb3J0aCwKKyAqIHRoZSBJOTE1X0VYRUNfUklORyBz ZWxlY3RvciBmb3IgRFJNX0lPQ1RMX0k5MTVfR0VNX0VYRUNCVUZGRVIyIG9wZXJhdGVzIGFzCisg KiBhbiBpbmRleCBpbnRvIHRoaXMgYXJyYXkgb2YgZW5naW5lczsgSTkxNV9FWEVDX0RFRkFVTFQg c2VsZWN0aW5nIGVuZ2luZVswXQorICogYW5kIHVwd2FyZHMuIFRoZSBhcnJheSBjcmVhdGVkIGlz IG9mZnNldCBieSAxLCBzdWNoIHRoYXQgYnkgZGVmYXVsdAorICogSTkxNV9FWEVDX0RFRkFVTFQg aXMgbGVmdCBlbXB0eSwgdG8gYmUgZmlsbGVkIGluIGFzIGRpcmVjdGVkLiBTbG90cyAxLi4uTgor ICogYXJlIHRoZW4gZmlsbGVkIGluIHVzaW5nIHRoZSBzcGVjaWZpZWQgKGNsYXNzLCBpbnN0YW5j ZSkuCisgKgorICogU2V0dGluZyB0aGUgbnVtYmVyIG9mIGVuZ2luZXMgYm91bmQgdG8gdGhlIGNv bnRleHQgd2lsbCByZXZlcnQgYmFjayB0bworICogZGVmYXVsdCBzZXR0aW5ncy4KKyAqCisgKiBT ZWUgc3RydWN0IGk5MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzLgorICoKKyAqIEV4dGVuc2lvbnM6 CisgKiAgIGk5MTVfY29udGV4dF9lbmdpbmVzX2xvYWRfYmFsYW5jZSAoSTkxNV9DT05URVhUX0VO R0lORVNfRVhUX0xPQURfQkFMQU5DRSkKKyAqICAgaTkxNV9jb250ZXh0X2VuZ2luZXNfYm9uZCAo STkxNV9DT05URVhUX0VOR0lORVNfRVhUX0JPTkQpCisgKi8KKyNkZWZpbmUgSTkxNV9DT05URVhU X1BBUkFNX0VOR0lORVMJMHg3CisKKy8qCisgKiBXaGVuIHVzaW5nIHRoZSBmb2xsb3dpbmcgcGFy YW0sIHZhbHVlIHNob3VsZCBiZSBhIHBvaW50ZXIgdG8KKyAqIGRybV9pOTE1X2dlbV9jb250ZXh0 X3BhcmFtX3NzZXUuCisgKi8KKyNkZWZpbmUgSTkxNV9DT05URVhUX1BBUkFNX1NTRVUJCTB4OAor CiAJX191NjQgdmFsdWU7CiB9OwogCisvKgorICogaTkxNV9jb250ZXh0X2VuZ2luZXNfbG9hZF9i YWxhbmNlOgorICoKKyAqIEVuYWJsZSBsb2FkIGJhbGFuY2luZyBhY3Jvc3MgdGhpcyBzZXQgb2Yg ZW5naW5lcy4KKyAqCisgKiBJbnRvIHRoZSBJOTE1X0VYRUNfREVGQVVMVCBzbG90LCBhIHZpcnR1 YWwgZW5naW5lIGlzIGNyZWF0ZWQgdGhhdCB3aGVuCisgKiB1c2VkIHdpbGwgcHJveHkgdGhlIGV4 ZWNidWZmZXIgcmVxdWVzdCBvbnRvIG9uZSBvZiB0aGUgc2V0IG9mIGVuZ2luZXMKKyAqIGluIHN1 Y2ggYSB3YXkgYXMgdG8gZGlzdHJpYnV0ZSB0aGUgbG9hZCBldmVubHkgYWNyb3NzIHRoZSBzZXQu CisgKgorICogVGhlIHNldCBvZiBlbmdpbmVzIG11c3QgYmUgY29tcGF0aWJsZSAoZS5nLiB0aGUg c2FtZSBIVyBjbGFzcykgYXMgdGhleQorICogd2lsbCBzaGFyZSB0aGUgc2FtZSBsb2dpY2FsIEdQ VSBjb250ZXh0IGFuZCByaW5nLgorICoKKyAqIFRoZSBjb250ZXh0IG11c3QgYmUgZGVmaW5lZCB0 byB1c2UgYSBzaW5nbGUgdGltZWxpbmUgZm9yIGFsbCBlbmdpbmVzLgorICovCitzdHJ1Y3QgaTkx NV9jb250ZXh0X2VuZ2luZXNfbG9hZF9iYWxhbmNlIHsKKwlzdHJ1Y3QgaTkxNV91c2VyX2V4dGVu c2lvbiBiYXNlOworCisJX191NjQgZmxhZ3M7IC8qIGFsbCB1bmRlZmluZWQgZmxhZ3MgbXVzdCBi ZSB6ZXJvICovCisJX191NjQgZW5naW5lc19tYXNrOworCisJX191NjQgbWJ6WzRdOyAvKiByZXNl cnZlZCBmb3IgZnV0dXJlIHVzZTsgbXVzdCBiZSB6ZXJvICovCit9OworCisvKgorICogaTkxNV9j b250ZXh0X2VuZ2luZXNfYm9uZDoKKyAqCisgKi8KK3N0cnVjdCBpOTE1X2NvbnRleHRfZW5naW5l c19ib25kIHsKKwlzdHJ1Y3QgaTkxNV91c2VyX2V4dGVuc2lvbiBiYXNlOworCisJX191MTYgbWFz dGVyX2NsYXNzOworCV9fdTE2IG1hc3Rlcl9pbnN0YW5jZTsKKwlfX3UzMiBmbGFnczsgLyogYWxs IHVuZGVmaW5lZCBmbGFncyBtdXN0IGJlIHplcm8gKi8KKwlfX3U2NCBzaWJsaW5nX21hc2s7Cit9 OworCitzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2VuZ2luZXMgeworCV9fdTY0IGV4dGVuc2lv bnM7CisjZGVmaW5lIEk5MTVfQ09OVEVYVF9FTkdJTkVTX0VYVF9MT0FEX0JBTEFOQ0UgMAorI2Rl ZmluZSBJOTE1X0NPTlRFWFRfRU5HSU5FU19FWFRfQk9ORCAxCisKKwlzdHJ1Y3QgeworCQlfX3Ux NiBjbGFzczsgLyogc2VlIGVudW0gZHJtX2k5MTVfZ2VtX2VuZ2luZV9jbGFzcyAqLworCQlfX3Ux NiBpbnN0YW5jZTsKKwl9IGNsYXNzX2luc3RhbmNlWzBdOworfTsKKworc3RydWN0IGRybV9pOTE1 X2dlbV9jb250ZXh0X3BhcmFtX3NzZXUgeworCS8qCisJICogRW5naW5lIGNsYXNzICYgaW5zdGFu Y2UgdG8gYmUgY29uZmlndXJlZCBvciBxdWVyaWVkLgorCSAqLworCV9fdTE2IGNsYXNzOworCV9f dTE2IGluc3RhbmNlOworCisJLyoKKwkgKiBVbnVzZWQgZm9yIG5vdy4gTXVzdCBiZSBjbGVhcmVk IHRvIHplcm8uCisJICovCisJX191MzIgcnN2ZDE7CisKKwkvKgorCSAqIE1hc2sgb2Ygc2xpY2Vz IHRvIGVuYWJsZSBmb3IgdGhlIGNvbnRleHQuIFZhbGlkIHZhbHVlcyBhcmUgYSBzdWJzZXQKKwkg KiBvZiB0aGUgYml0bWFzayB2YWx1ZSByZXR1cm5lZCBmb3IgSTkxNV9QQVJBTV9TTElDRV9NQVNL LgorCSAqLworCV9fdTY0IHNsaWNlX21hc2s7CisKKwkvKgorCSAqIE1hc2sgb2Ygc3Vic2xpY2Vz IHRvIGVuYWJsZSBmb3IgdGhlIGNvbnRleHQuIFZhbGlkIHZhbHVlcyBhcmUgYQorCSAqIHN1YnNl dCBvZiB0aGUgYml0bWFzayB2YWx1ZSByZXR1cm4gYnkgSTkxNV9QQVJBTV9TVUJTTElDRV9NQVNL LgorCSAqLworCV9fdTY0IHN1YnNsaWNlX21hc2s7CisKKwkvKgorCSAqIE1pbmltdW0vTWF4aW11 bSBudW1iZXIgb2YgRVVzIHRvIGVuYWJsZSBwZXIgc3Vic2xpY2UgZm9yIHRoZQorCSAqIGNvbnRl eHQuIG1pbl9ldXNfcGVyX3N1YnNsaWNlIG11c3QgYmUgaW5mZXJpb3Igb3IgZXF1YWwgdG8KKwkg KiBtYXhfZXVzX3Blcl9zdWJzbGljZS4KKwkgKi8KKwlfX3UxNiBtaW5fZXVzX3Blcl9zdWJzbGlj ZTsKKwlfX3UxNiBtYXhfZXVzX3Blcl9zdWJzbGljZTsKKworCS8qCisJICogVW51c2VkIGZvciBu b3cuIE11c3QgYmUgY2xlYXJlZCB0byB6ZXJvLgorCSAqLworCV9fdTMyIHJzdmQyOworfTsKKwog ZW51bSBkcm1faTkxNV9vYV9mb3JtYXQgewogCUk5MTVfT0FfRk9STUFUX0ExMyA9IDEsCSAgICAv KiBIU1cgb25seSAqLwogCUk5MTVfT0FfRk9STUFUX0EyOSwJICAgIC8qIEhTVyBvbmx5ICovCkBA IC0xNjIwLDYgKzE4MTAsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcGVyZl9vYV9jb25maWcgewogc3Ry dWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0gewogCV9fdTY0IHF1ZXJ5X2lkOwogI2RlZmluZSBEUk1f STkxNV9RVUVSWV9UT1BPTE9HWV9JTkZPICAgIDEKKyNkZWZpbmUgRFJNX0k5MTVfUVVFUllfRU5H SU5FX0lORk8JMgogCiAJLyoKIAkgKiBXaGVuIHNldCB0byB6ZXJvIGJ5IHVzZXJzcGFjZSwgdGhp cyBpcyBmaWxsZWQgd2l0aCB0aGUgc2l6ZSBvZiB0aGUKQEAgLTE3MTcsNiArMTkwOCw1MCBAQCBz dHJ1Y3QgZHJtX2k5MTVfcXVlcnlfdG9wb2xvZ3lfaW5mbyB7CiAJX191OCBkYXRhW107CiB9Owog CisvKioKKyAqIHN0cnVjdCBkcm1faTkxNV9lbmdpbmVfaW5mbworICoKKyAqIERlc2NyaWJlcyBv bmUgZW5naW5lIGFuZCBpdCdzIGNhcGFiaWxpdGllcyBhcyBrbm93biB0byB0aGUgZHJpdmVyLgor ICovCitzdHJ1Y3QgZHJtX2k5MTVfZW5naW5lX2luZm8geworCS8qKiBFbmdpbmUgY2xhc3MgYXMg aW4gZW51bSBkcm1faTkxNV9nZW1fZW5naW5lX2NsYXNzLiAqLworCV9fdTE2IGNsYXNzOworCisJ LyoqIEVuZ2luZSBpbnN0YW5jZSBudW1iZXIuICovCisJX191MTYgaW5zdGFuY2U7CisKKwkvKiog UmVzZXJ2ZWQgZmllbGQuICovCisJX191MzIgcnN2ZDA7CisKKwkvKiogRW5naW5lIGZsYWdzLiAq LworCV9fdTY0IGZsYWdzOworCisJLyoqIENhcGFiaWxpdGllcyBvZiB0aGlzIGVuZ2luZS4gKi8K KwlfX3U2NCBjYXBhYmlsaXRpZXM7CisjZGVmaW5lIEk5MTVfVklERU9fQ0xBU1NfQ0FQQUJJTElU WV9IRVZDCQkoMSA8PCAwKQorI2RlZmluZSBJOTE1X1ZJREVPX0FORF9FTkhBTkNFX0NMQVNTX0NB UEFCSUxJVFlfU0ZDCSgxIDw8IDEpCisKKwkvKiogUmVzZXJ2ZWQgZmllbGRzLiAqLworCV9fdTY0 IHJzdmQxWzRdOworfTsKKworLyoqCisgKiBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfZW5naW5lX2lu Zm8KKyAqCisgKiBFbmdpbmUgaW5mbyBxdWVyeSBlbnVtZXJhdGVzIGFsbCBlbmdpbmVzIGtub3du IHRvIHRoZSBkcml2ZXIgYnkgZmlsbGluZyBpbgorICogYW4gYXJyYXkgb2Ygc3RydWN0IGRybV9p OTE1X2VuZ2luZV9pbmZvIHN0cnVjdHVyZXMuCisgKi8KK3N0cnVjdCBkcm1faTkxNV9xdWVyeV9l bmdpbmVfaW5mbyB7CisJLyoqIE51bWJlciBvZiBzdHJ1Y3QgZHJtX2k5MTVfZW5naW5lX2luZm8g c3RydWN0cyBmb2xsb3dpbmcuICovCisJX191MzIgbnVtX2VuZ2luZXM7CisKKwkvKiogTUJaICov CisJX191MzIgcnN2ZFszXTsKKworCS8qKiBNYXJrZXIgZm9yIGRybV9pOTE1X2VuZ2luZV9pbmZv IHN0cnVjdHVyZXMuICovCisJc3RydWN0IGRybV9pOTE1X2VuZ2luZV9pbmZvIGVuZ2luZXNbXTsK K307CisKICNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9p bmNsdWRlL2RybS11YXBpL21zbV9kcm0uaCBiL2luY2x1ZGUvZHJtLXVhcGkvbXNtX2RybS5oCmlu ZGV4IGJiYmFmZmFkNzcyZC4uYzA2ZDBhNWJkZDgwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS11 YXBpL21zbV9kcm0uaAorKysgYi9pbmNsdWRlL2RybS11YXBpL21zbV9kcm0uaApAQCAtMjAxLDEw ICsyMDEsMTIgQEAgc3RydWN0IGRybV9tc21fZ2VtX3N1Ym1pdF9ibyB7CiAjZGVmaW5lIE1TTV9T VUJNSVRfTk9fSU1QTElDSVQgICAweDgwMDAwMDAwIC8qIGRpc2FibGUgaW1wbGljaXQgc3luYyAq LwogI2RlZmluZSBNU01fU1VCTUlUX0ZFTkNFX0ZEX0lOICAgMHg0MDAwMDAwMCAvKiBlbmFibGUg aW5wdXQgZmVuY2VfZmQgKi8KICNkZWZpbmUgTVNNX1NVQk1JVF9GRU5DRV9GRF9PVVQgIDB4MjAw MDAwMDAgLyogZW5hYmxlIG91dHB1dCBmZW5jZV9mZCAqLworI2RlZmluZSBNU01fU1VCTUlUX1NV RE8gICAgICAgICAgMHgxMDAwMDAwMCAvKiBydW4gc3VibWl0dGVkIGNtZHMgZnJvbSBSQiAqLwog I2RlZmluZSBNU01fU1VCTUlUX0ZMQUdTICAgICAgICAgICAgICAgICggXAogCQlNU01fU1VCTUlU X05PX0lNUExJQ0lUICAgfCBcCiAJCU1TTV9TVUJNSVRfRkVOQ0VfRkRfSU4gICB8IFwKIAkJTVNN X1NVQk1JVF9GRU5DRV9GRF9PVVQgIHwgXAorCQlNU01fU1VCTUlUX1NVRE8gICAgICAgICAgfCBc CiAJCTApCiAKIC8qIEVhY2ggY21kc3RyZWFtIHN1Ym1pdCBjb25zaXN0cyBvZiBhIHRhYmxlIG9m IGJ1ZmZlcnMgaW52b2x2ZWQsIGFuZApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0tdWFwaS9zeW5j X2ZpbGUuaCBiL2luY2x1ZGUvZHJtLXVhcGkvc3luY19maWxlLmgKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGI0ZjJkYjAwOTM0Ny4uMDAwMDAwMDAwMDAwCi0tLSBhL2luY2x1ZGUvZHJt LXVhcGkvc3luY19maWxlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBACi0vKiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTEuMCsgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi8K LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJbmMuCi0gKgotICogVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQotICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KLSAqCi0gKi8KLQotI2lmbmRlZiBfTElOVVhfU1lOQ19ICi0jZGVmaW5lIF9MSU5V WF9TWU5DX0gKLQotI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+Ci0jaW5jbHVkZSA8bGludXgvdHlw ZXMuaD4KLQotLyoqCi0gKiBzdHJ1Y3Qgc3luY19tZXJnZV9kYXRhIC0gZGF0YSBwYXNzZWQgdG8g bWVyZ2UgaW9jdGwKLSAqIEBuYW1lOgluYW1lIG9mIG5ldyBmZW5jZQotICogQGZkMjoJZmlsZSBk ZXNjcmlwdG9yIG9mIHNlY29uZCBmZW5jZQotICogQGZlbmNlOglyZXR1cm5zIHRoZSBmZCBvZiB0 aGUgbmV3IGZlbmNlIHRvIHVzZXJzcGFjZQotICogQGZsYWdzOgltZXJnZV9kYXRhIGZsYWdzCi0g KiBAcGFkOglwYWRkaW5nIGZvciA2NC1iaXQgYWxpZ25tZW50LCBzaG91bGQgYWx3YXlzIGJlIHpl cm8KLSAqLwotc3RydWN0IHN5bmNfbWVyZ2VfZGF0YSB7Ci0JY2hhcgluYW1lWzMyXTsKLQlfX3Mz MglmZDI7Ci0JX19zMzIJZmVuY2U7Ci0JX191MzIJZmxhZ3M7Ci0JX191MzIJcGFkOwotfTsKLQot LyoqCi0gKiBzdHJ1Y3Qgc3luY19mZW5jZV9pbmZvIC0gZGV0YWlsZWQgZmVuY2UgaW5mb3JtYXRp b24KLSAqIEBvYmpfbmFtZToJCW5hbWUgb2YgcGFyZW50IHN5bmNfdGltZWxpbmUKLSogQGRyaXZl cl9uYW1lOgluYW1lIG9mIGRyaXZlciBpbXBsZW1lbnRpbmcgdGhlIHBhcmVudAotKiBAc3RhdHVz OgkJc3RhdHVzIG9mIHRoZSBmZW5jZSAwOmFjdGl2ZSAxOnNpZ25hbGVkIDwwOmVycm9yCi0gKiBA ZmxhZ3M6CQlmZW5jZV9pbmZvIGZsYWdzCi0gKiBAdGltZXN0YW1wX25zOgl0aW1lc3RhbXAgb2Yg c3RhdHVzIGNoYW5nZSBpbiBuYW5vc2Vjb25kcwotICovCi1zdHJ1Y3Qgc3luY19mZW5jZV9pbmZv IHsKLQljaGFyCW9ial9uYW1lWzMyXTsKLQljaGFyCWRyaXZlcl9uYW1lWzMyXTsKLQlfX3MzMglz dGF0dXM7Ci0JX191MzIJZmxhZ3M7Ci0JX191NjQJdGltZXN0YW1wX25zOwotfTsKLQotLyoqCi0g KiBzdHJ1Y3Qgc3luY19maWxlX2luZm8gLSBkYXRhIHJldHVybmVkIGZyb20gZmVuY2UgaW5mbyBp b2N0bAotICogQG5hbWU6CW5hbWUgb2YgZmVuY2UKLSAqIEBzdGF0dXM6CXN0YXR1cyBvZiBmZW5j ZS4gMTogc2lnbmFsZWQgMDphY3RpdmUgPDA6ZXJyb3IKLSAqIEBmbGFnczoJc3luY19maWxlX2lu Zm8gZmxhZ3MKLSAqIEBudW1fZmVuY2VzCW51bWJlciBvZiBmZW5jZXMgaW4gdGhlIHN5bmNfZmls ZQotICogQHBhZDoJcGFkZGluZyBmb3IgNjQtYml0IGFsaWdubWVudCwgc2hvdWxkIGFsd2F5cyBi ZSB6ZXJvCi0gKiBAc3luY19mZW5jZV9pbmZvOiBwb2ludGVyIHRvIGFycmF5IG9mIHN0cnVjdHMg c3luY19mZW5jZV9pbmZvIHdpdGggYWxsCi0gKgkJIGZlbmNlcyBpbiB0aGUgc3luY19maWxlCi0g Ki8KLXN0cnVjdCBzeW5jX2ZpbGVfaW5mbyB7Ci0JY2hhcgluYW1lWzMyXTsKLQlfX3MzMglzdGF0 dXM7Ci0JX191MzIJZmxhZ3M7Ci0JX191MzIJbnVtX2ZlbmNlczsKLQlfX3UzMglwYWQ7Ci0KLQlf X3U2NAlzeW5jX2ZlbmNlX2luZm87Ci19OwotCi0jZGVmaW5lIFNZTkNfSU9DX01BR0lDCQknPicK LQotLyoqCi0gKiBPcGNvZGVzICAwLCAxIGFuZCAyIHdlcmUgYnVybmVkIGR1cmluZyBhIEFQSSBj aGFuZ2UgdG8gYXZvaWQgdXNlcnMgb2YgdGhlCi0gKiBvbGQgQVBJIHRvIGdldCB3ZWlyZCBlcnJv cnMgd2hlbiB0cnlpbmcgdG8gaGFuZGxpbmcgc3luY19maWxlcy4gVGhlIEFQSQotICogY2hhbmdl IGhhcHBlbmVkIGR1cmluZyB0aGUgZGUtc3RhZ2Ugb2YgdGhlIFN5bmMgRnJhbWV3b3JrIHdoZW4g dGhlcmUgd2FzCi0gKiBubyB1cHN0cmVhbSB1c2VycyBhdmFpbGFibGUuCi0gKi8KLQotLyoqCi0g KiBET0M6IFNZTkNfSU9DX01FUkdFIC0gbWVyZ2UgdHdvIGZlbmNlcwotICoKLSAqIFRha2VzIGEg c3RydWN0IHN5bmNfbWVyZ2VfZGF0YS4gIENyZWF0ZXMgYSBuZXcgZmVuY2UgY29udGFpbmluZyBj b3BpZXMgb2YKLSAqIHRoZSBzeW5jX3B0cyBpbiBib3RoIHRoZSBjYWxsaW5nIGZkIGFuZCBzeW5j X21lcmdlX2RhdGEuZmQyLiAgUmV0dXJucyB0aGUKLSAqIG5ldyBmZW5jZSdzIGZkIGluIHN5bmNf bWVyZ2VfZGF0YS5mZW5jZQotICovCi0jZGVmaW5lIFNZTkNfSU9DX01FUkdFCQlfSU9XUihTWU5D X0lPQ19NQUdJQywgMywgc3RydWN0IHN5bmNfbWVyZ2VfZGF0YSkKLQotLyoqCi0gKiBET0M6IFNZ TkNfSU9DX0ZJTEVfSU5GTyAtIGdldCBkZXRhaWxlZCBpbmZvcm1hdGlvbiBvbiBhIHN5bmNfZmls ZQotICoKLSAqIFRha2VzIGEgc3RydWN0IHN5bmNfZmlsZV9pbmZvLiBJZiBudW1fZmVuY2VzIGlz IDAsIHRoZSBmaWVsZCBpcyB1cGRhdGVkCi0gKiB3aXRoIHRoZSBhY3R1YWwgbnVtYmVyIG9mIGZl bmNlcy4gSWYgbnVtX2ZlbmNlcyBpcyA+IDAsIHRoZSBzeXN0ZW0gd2lsbAotICogdXNlIHRoZSBw b2ludGVyIHByb3ZpZGVkIG9uIHN5bmNfZmVuY2VfaW5mbyB0byByZXR1cm4gdXAgdG8gbnVtX2Zl bmNlcyBvZgotICogc3RydWN0IHN5bmNfZmVuY2VfaW5mbywgd2l0aCBkZXRhaWxlZCBmZW5jZSBp bmZvcm1hdGlvbi4KLSAqLwotI2RlZmluZSBTWU5DX0lPQ19GSUxFX0lORk8JX0lPV1IoU1lOQ19J T0NfTUFHSUMsIDQsIHN0cnVjdCBzeW5jX2ZpbGVfaW5mbykKLQotI2VuZGlmIC8qIF9MSU5VWF9T WU5DX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtLXVhcGkvdGVncmFfZHJtLmggYi9pbmNs dWRlL2RybS11YXBpL3RlZ3JhX2RybS5oCmluZGV4IDEyZjliZjg0OGRiMS4uNmMwNzkxOWMwNGU5 IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS11YXBpL3RlZ3JhX2RybS5oCisrKyBiL2luY2x1ZGUv ZHJtLXVhcGkvdGVncmFfZHJtLmgKQEAgLTMyLDE0MyArMzIsNjE1IEBAIGV4dGVybiAiQyIgewog I2RlZmluZSBEUk1fVEVHUkFfR0VNX0NSRUFURV9USUxFRCAgICAgKDEgPDwgMCkKICNkZWZpbmUg RFJNX1RFR1JBX0dFTV9DUkVBVEVfQk9UVE9NX1VQICgxIDw8IDEpCiAKKy8qKgorICogc3RydWN0 IGRybV90ZWdyYV9nZW1fY3JlYXRlIC0gcGFyYW1ldGVycyBmb3IgdGhlIEdFTSBvYmplY3QgY3Jl YXRpb24gSU9DVEwKKyAqLwogc3RydWN0IGRybV90ZWdyYV9nZW1fY3JlYXRlIHsKKwkvKioKKwkg KiBAc2l6ZToKKwkgKgorCSAqIFRoZSBzaXplLCBpbiBieXRlcywgb2YgdGhlIGJ1ZmZlciBvYmpl Y3QgdG8gYmUgY3JlYXRlZC4KKwkgKi8KIAlfX3U2NCBzaXplOworCisJLyoqCisJICogQGZsYWdz OgorCSAqCisJICogQSBiaXRtYXNrIG9mIGZsYWdzIHRoYXQgaW5mbHVlbmNlIHRoZSBjcmVhdGlv biBvZiBHRU0gb2JqZWN0czoKKwkgKgorCSAqIERSTV9URUdSQV9HRU1fQ1JFQVRFX1RJTEVECisJ ICogICBVc2UgdGhlIDE2eDE2IHRpbGluZyBmb3JtYXQgZm9yIHRoaXMgYnVmZmVyLgorCSAqCisJ ICogRFJNX1RFR1JBX0dFTV9DUkVBVEVfQk9UVE9NX1VQCisJICogICBUaGUgYnVmZmVyIGhhcyBh IGJvdHRvbS11cCBsYXlvdXQuCisJICovCiAJX191MzIgZmxhZ3M7CisKKwkvKioKKwkgKiBAaGFu ZGxlOgorCSAqCisJICogVGhlIGhhbmRsZSBvZiB0aGUgY3JlYXRlZCBHRU0gb2JqZWN0LiBTZXQg YnkgdGhlIGtlcm5lbCB1cG9uCisJICogc3VjY2Vzc2Z1bCBjb21wbGV0aW9uIG9mIHRoZSBJT0NU TC4KKwkgKi8KIAlfX3UzMiBoYW5kbGU7CiB9OwogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFf Z2VtX21tYXAgLSBwYXJhbWV0ZXJzIGZvciB0aGUgR0VNIG1tYXAgSU9DVEwKKyAqLwogc3RydWN0 IGRybV90ZWdyYV9nZW1fbW1hcCB7CisJLyoqCisJICogQGhhbmRsZToKKwkgKgorCSAqIEhhbmRs ZSBvZiB0aGUgR0VNIG9iamVjdCB0byBvYnRhaW4gYW4gbW1hcCBvZmZzZXQgZm9yLgorCSAqLwog CV9fdTMyIGhhbmRsZTsKKworCS8qKgorCSAqIEBwYWQ6CisJICoKKwkgKiBTdHJ1Y3R1cmUgcGFk ZGluZyB0aGF0IG1heSBiZSB1c2VkIGluIHRoZSBmdXR1cmUuIE11c3QgYmUgMC4KKwkgKi8KIAlf X3UzMiBwYWQ7CisKKwkvKioKKwkgKiBAb2Zmc2V0OgorCSAqCisJICogVGhlIG1tYXAgb2Zmc2V0 IGZvciB0aGUgZ2l2ZW4gR0VNIG9iamVjdC4gU2V0IGJ5IHRoZSBrZXJuZWwgdXBvbgorCSAqIHN1 Y2Nlc3NmdWwgY29tcGxldGlvbiBvZiB0aGUgSU9DVEwuCisJICovCiAJX191NjQgb2Zmc2V0Owog fTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdF9yZWFkIC0gcGFyYW1ldGVycyBm b3IgdGhlIHJlYWQgc3luY3BvaW50IElPQ1RMCisgKi8KIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0 X3JlYWQgeworCS8qKgorCSAqIEBpZDoKKwkgKgorCSAqIElEIG9mIHRoZSBzeW5jcG9pbnQgdG8g cmVhZCB0aGUgY3VycmVudCB2YWx1ZSBmcm9tLgorCSAqLwogCV9fdTMyIGlkOworCisJLyoqCisJ ICogQHZhbHVlOgorCSAqCisJICogVGhlIGN1cnJlbnQgc3luY3BvaW50IHZhbHVlLiBTZXQgYnkg dGhlIGtlcm5lbCB1cG9uIHN1Y2Nlc3NmdWwKKwkgKiBjb21wbGV0aW9uIG9mIHRoZSBJT0NUTC4K KwkgKi8KIAlfX3UzMiB2YWx1ZTsKIH07CiAKKy8qKgorICogc3RydWN0IGRybV90ZWdyYV9zeW5j cHRfaW5jciAtIHBhcmFtZXRlcnMgZm9yIHRoZSBpbmNyZW1lbnQgc3luY3BvaW50IElPQ1RMCisg Ki8KIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0X2luY3IgeworCS8qKgorCSAqIEBpZDoKKwkgKgor CSAqIElEIG9mIHRoZSBzeW5jcG9pbnQgdG8gaW5jcmVtZW50LgorCSAqLwogCV9fdTMyIGlkOwor CisJLyoqCisJICogQHBhZDoKKwkgKgorCSAqIFN0cnVjdHVyZSBwYWRkaW5nIHRoYXQgbWF5IGJl IHVzZWQgaW4gdGhlIGZ1dHVyZS4gTXVzdCBiZSAwLgorCSAqLwogCV9fdTMyIHBhZDsKIH07CiAK Ky8qKgorICogc3RydWN0IGRybV90ZWdyYV9zeW5jcHRfd2FpdCAtIHBhcmFtZXRlcnMgZm9yIHRo ZSB3YWl0IHN5bmNwb2ludCBJT0NUTAorICovCiBzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdF93YWl0 IHsKKwkvKioKKwkgKiBAaWQ6CisJICoKKwkgKiBJRCBvZiB0aGUgc3luY3BvaW50IHRvIHdhaXQg b24uCisJICovCiAJX191MzIgaWQ7CisKKwkvKioKKwkgKiBAdGhyZXNoOgorCSAqCisJICogVGhy ZXNob2xkIHZhbHVlIGZvciB3aGljaCB0byB3YWl0LgorCSAqLwogCV9fdTMyIHRocmVzaDsKKwor CS8qKgorCSAqIEB0aW1lb3V0OgorCSAqCisJICogVGltZW91dCwgaW4gbWlsbGlzZWNvbmRzLCB0 byB3YWl0LgorCSAqLwogCV9fdTMyIHRpbWVvdXQ7CisKKwkvKioKKwkgKiBAdmFsdWU6CisJICoK KwkgKiBUaGUgbmV3IHN5bmNwb2ludCB2YWx1ZSBhZnRlciB0aGUgd2FpdC4gU2V0IGJ5IHRoZSBr ZXJuZWwgdXBvbgorCSAqIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBvZiB0aGUgSU9DVEwuCisJICov CiAJX191MzIgdmFsdWU7CiB9OwogCiAjZGVmaW5lIERSTV9URUdSQV9OT19USU1FT1VUCSgweGZm ZmZmZmZmKQogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFfb3Blbl9jaGFubmVsIC0gcGFyYW1l dGVycyBmb3IgdGhlIG9wZW4gY2hhbm5lbCBJT0NUTAorICovCiBzdHJ1Y3QgZHJtX3RlZ3JhX29w ZW5fY2hhbm5lbCB7CisJLyoqCisJICogQGNsaWVudDoKKwkgKgorCSAqIFRoZSBjbGllbnQgSUQg Zm9yIHRoaXMgY2hhbm5lbC4KKwkgKi8KIAlfX3UzMiBjbGllbnQ7CisKKwkvKioKKwkgKiBAcGFk OgorCSAqCisJICogU3RydWN0dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUgdXNlZCBpbiB0aGUgZnV0 dXJlLiBNdXN0IGJlIDAuCisJICovCiAJX191MzIgcGFkOworCisJLyoqCisJICogQGNvbnRleHQ6 CisJICoKKwkgKiBUaGUgYXBwbGljYXRpb24gY29udGV4dCBvZiB0aGlzIGNoYW5uZWwuIFNldCBi eSB0aGUga2VybmVsIHVwb24KKwkgKiBzdWNjZXNzZnVsIGNvbXBsZXRpb24gb2YgdGhlIElPQ1RM LiBUaGlzIGNvbnRleHQgbmVlZHMgdG8gYmUgcGFzc2VkCisJICogdG8gdGhlIERSTV9URUdSQV9D SEFOTkVMX0NMT1NFIG9yIHRoZSBEUk1fVEVHUkFfU1VCTUlUIElPQ1RMcy4KKwkgKi8KIAlfX3U2 NCBjb250ZXh0OwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX2Nsb3NlX2NoYW5uZWwg LSBwYXJhbWV0ZXJzIGZvciB0aGUgY2xvc2UgY2hhbm5lbCBJT0NUTAorICovCiBzdHJ1Y3QgZHJt X3RlZ3JhX2Nsb3NlX2NoYW5uZWwgeworCS8qKgorCSAqIEBjb250ZXh0OgorCSAqCisJICogVGhl IGFwcGxpY2F0aW9uIGNvbnRleHQgb2YgdGhpcyBjaGFubmVsLiBUaGlzIGlzIG9idGFpbmVkIGZy b20gdGhlCisJICogRFJNX1RFR1JBX09QRU5fQ0hBTk5FTCBJT0NUTC4KKwkgKi8KIAlfX3U2NCBj b250ZXh0OwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX2dldF9zeW5jcHQgLSBwYXJh bWV0ZXJzIGZvciB0aGUgZ2V0IHN5bmNwb2ludCBJT0NUTAorICovCiBzdHJ1Y3QgZHJtX3RlZ3Jh X2dldF9zeW5jcHQgeworCS8qKgorCSAqIEBjb250ZXh0OgorCSAqCisJICogVGhlIGFwcGxpY2F0 aW9uIGNvbnRleHQgaWRlbnRpZnlpbmcgdGhlIGNoYW5uZWwgZm9yIHdoaWNoIHRvIG9idGFpbgor CSAqIHRoZSBzeW5jcG9pbnQgSUQuCisJICovCiAJX191NjQgY29udGV4dDsKKworCS8qKgorCSAq IEBpbmRleDoKKwkgKgorCSAqIEluZGV4IG9mIHRoZSBjbGllbnQgc3luY3BvaW50IGZvciB3aGlj aCB0byBvYnRhaW4gdGhlIElELgorCSAqLwogCV9fdTMyIGluZGV4OworCisJLyoqCisJICogQGlk OgorCSAqCisJICogVGhlIElEIG9mIHRoZSBnaXZlbiBzeW5jcG9pbnQuIFNldCBieSB0aGUga2Vy bmVsIHVwb24gc3VjY2Vzc2Z1bAorCSAqIGNvbXBsZXRpb24gb2YgdGhlIElPQ1RMLgorCSAqLwog CV9fdTMyIGlkOwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX2dldF9zeW5jcHRfYmFz ZSAtIHBhcmFtZXRlcnMgZm9yIHRoZSBnZXQgd2FpdCBiYXNlIElPQ1RMCisgKi8KIHN0cnVjdCBk cm1fdGVncmFfZ2V0X3N5bmNwdF9iYXNlIHsKKwkvKioKKwkgKiBAY29udGV4dDoKKwkgKgorCSAq IFRoZSBhcHBsaWNhdGlvbiBjb250ZXh0IGlkZW50aWZ5aW5nIGZvciB3aGljaCBjaGFubmVsIHRv IG9idGFpbiB0aGUKKwkgKiB3YWl0IGJhc2UuCisJICovCiAJX191NjQgY29udGV4dDsKKworCS8q KgorCSAqIEBzeW5jcHQ6CisJICoKKwkgKiBJRCBvZiB0aGUgc3luY3BvaW50IGZvciB3aGljaCB0 byBvYnRhaW4gdGhlIHdhaXQgYmFzZS4KKwkgKi8KIAlfX3UzMiBzeW5jcHQ7CisKKwkvKioKKwkg KiBAaWQ6CisJICoKKwkgKiBUaGUgSUQgb2YgdGhlIHdhaXQgYmFzZSBjb3JyZXNwb25kaW5nIHRv IHRoZSBjbGllbnQgc3luY3BvaW50LiBTZXQKKwkgKiBieSB0aGUga2VybmVsIHVwb24gc3VjY2Vz c2Z1bCBjb21wbGV0aW9uIG9mIHRoZSBJT0NUTC4KKwkgKi8KIAlfX3UzMiBpZDsKIH07CiAKKy8q KgorICogc3RydWN0IGRybV90ZWdyYV9zeW5jcHQgLSBzeW5jcG9pbnQgaW5jcmVtZW50IG9wZXJh dGlvbgorICovCiBzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdCB7CisJLyoqCisJICogQGlkOgorCSAq CisJICogSUQgb2YgdGhlIHN5bmNwb2ludCB0byBvcGVyYXRlIG9uLgorCSAqLwogCV9fdTMyIGlk OworCisJLyoqCisJICogQGluY3JzOgorCSAqCisJICogTnVtYmVyIG9mIGluY3JlbWVudHMgdG8g cGVyZm9ybSBmb3IgdGhlIHN5bmNwb2ludC4KKwkgKi8KIAlfX3UzMiBpbmNyczsKIH07CiAKKy8q KgorICogc3RydWN0IGRybV90ZWdyYV9jbWRidWYgLSBzdHJ1Y3R1cmUgZGVzY3JpYmluZyBhIGNv bW1hbmQgYnVmZmVyCisgKi8KIHN0cnVjdCBkcm1fdGVncmFfY21kYnVmIHsKKwkvKioKKwkgKiBA aGFuZGxlOgorCSAqCisJICogSGFuZGxlIHRvIGEgR0VNIG9iamVjdCBjb250YWluaW5nIHRoZSBj b21tYW5kIGJ1ZmZlci4KKwkgKi8KIAlfX3UzMiBoYW5kbGU7CisKKwkvKioKKwkgKiBAb2Zmc2V0 OgorCSAqCisJICogT2Zmc2V0LCBpbiBieXRlcywgaW50byB0aGUgR0VNIG9iamVjdCBpZGVudGlm aWVkIGJ5IEBoYW5kbGUgYXQKKwkgKiB3aGljaCB0aGUgY29tbWFuZCBidWZmZXIgc3RhcnRzLgor CSAqLwogCV9fdTMyIG9mZnNldDsKKworCS8qKgorCSAqIEB3b3JkczoKKwkgKgorCSAqIE51bWJl ciBvZiAzMi1iaXQgd29yZHMgaW4gdGhpcyBjb21tYW5kIGJ1ZmZlci4KKwkgKi8KIAlfX3UzMiB3 b3JkczsKKworCS8qKgorCSAqIEBwYWQ6CisJICoKKwkgKiBTdHJ1Y3R1cmUgcGFkZGluZyB0aGF0 IG1heSBiZSB1c2VkIGluIHRoZSBmdXR1cmUuIE11c3QgYmUgMC4KKwkgKi8KIAlfX3UzMiBwYWQ7 CiB9OwogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFfcmVsb2MgLSBHRU0gb2JqZWN0IHJlbG9j YXRpb24gc3RydWN0dXJlCisgKi8KIHN0cnVjdCBkcm1fdGVncmFfcmVsb2MgewogCXN0cnVjdCB7 CisJCS8qKgorCQkgKiBAY21kYnVmLmhhbmRsZToKKwkJICoKKwkJICogSGFuZGxlIHRvIHRoZSBH RU0gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNvbW1hbmQgYnVmZmVyIGZvcgorCQkgKiB3aGljaCB0 byBwZXJmb3JtIHRoaXMgR0VNIG9iamVjdCByZWxvY2F0aW9uLgorCQkgKi8KIAkJX191MzIgaGFu ZGxlOworCisJCS8qKgorCQkgKiBAY21kYnVmLm9mZnNldDoKKwkJICoKKwkJICogT2Zmc2V0LCBp biBieXRlcywgaW50byB0aGUgY29tbWFuZCBidWZmZXIgYXQgd2hpY2ggdG8KKwkJICogaW5zZXJ0 IHRoZSByZWxvY2F0ZWQgYWRkcmVzcy4KKwkJICovCiAJCV9fdTMyIG9mZnNldDsKIAl9IGNtZGJ1 ZjsKIAlzdHJ1Y3QgeworCQkvKioKKwkJICogQHRhcmdldC5oYW5kbGU6CisJCSAqCisJCSAqIEhh bmRsZSB0byB0aGUgR0VNIG9iamVjdCB0byBiZSByZWxvY2F0ZWQuCisJCSAqLwogCQlfX3UzMiBo YW5kbGU7CisKKwkJLyoqCisJCSAqIEB0YXJnZXQub2Zmc2V0OgorCQkgKgorCQkgKiBPZmZzZXQs IGluIGJ5dGVzLCBpbnRvIHRoZSB0YXJnZXQgR0VNIG9iamVjdCBhdCB3aGljaCB0aGUKKwkJICog cmVsb2NhdGVkIGRhdGEgc3RhcnRzLgorCQkgKi8KIAkJX191MzIgb2Zmc2V0OwogCX0gdGFyZ2V0 OworCisJLyoqCisJICogQHNoaWZ0OgorCSAqCisJICogVGhlIG51bWJlciBvZiBiaXRzIGJ5IHdo aWNoIHRvIHNoaWZ0IHJlbG9jYXRlZCBhZGRyZXNzZXMuCisJICovCiAJX191MzIgc2hpZnQ7CisK KwkvKioKKwkgKiBAcGFkOgorCSAqCisJICogU3RydWN0dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUg dXNlZCBpbiB0aGUgZnV0dXJlLiBNdXN0IGJlIDAuCisJICovCiAJX191MzIgcGFkOwogfTsKIAor LyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX3dhaXRjaGsgLSB3YWl0IGNoZWNrIHN0cnVjdHVyZQor ICovCiBzdHJ1Y3QgZHJtX3RlZ3JhX3dhaXRjaGsgeworCS8qKgorCSAqIEBoYW5kbGU6CisJICoK KwkgKiBIYW5kbGUgdG8gdGhlIEdFTSBvYmplY3QgY29udGFpbmluZyBhIGNvbW1hbmQgc3RyZWFt IG9uIHdoaWNoIHRvCisJICogcGVyZm9ybSB0aGUgd2FpdCBjaGVjay4KKwkgKi8KIAlfX3UzMiBo YW5kbGU7CisKKwkvKioKKwkgKiBAb2Zmc2V0OgorCSAqCisJICogT2Zmc2V0LCBpbiBieXRlcywg b2YgdGhlIGxvY2F0aW9uIGluIHRoZSBjb21tYW5kIHN0cmVhbSB0byBwZXJmb3JtCisJICogdGhl IHdhaXQgY2hlY2sgb24uCisJICovCiAJX191MzIgb2Zmc2V0OworCisJLyoqCisJICogQHN5bmNw dDoKKwkgKgorCSAqIElEIG9mIHRoZSBzeW5jcG9pbnQgdG8gd2FpdCBjaGVjay4KKwkgKi8KIAlf X3UzMiBzeW5jcHQ7CisKKwkvKioKKwkgKiBAdGhyZXNoOgorCSAqCisJICogVGhyZXNob2xkIHZh bHVlIGZvciB3aGljaCB0byBjaGVjay4KKwkgKi8KIAlfX3UzMiB0aHJlc2g7CiB9OwogCisvKioK KyAqIHN0cnVjdCBkcm1fdGVncmFfc3VibWl0IC0gam9iIHN1Ym1pc3Npb24gc3RydWN0dXJlCisg Ki8KIHN0cnVjdCBkcm1fdGVncmFfc3VibWl0IHsKKwkvKioKKwkgKiBAY29udGV4dDoKKwkgKgor CSAqIFRoZSBhcHBsaWNhdGlvbiBjb250ZXh0IGlkZW50aWZ5aW5nIHRoZSBjaGFubmVsIHRvIHVz ZSBmb3IgdGhlCisJICogZXhlY3V0aW9uIG9mIHRoaXMgam9iLgorCSAqLwogCV9fdTY0IGNvbnRl eHQ7CisKKwkvKioKKwkgKiBAbnVtX3N5bmNwdHM6CisJICoKKwkgKiBUaGUgbnVtYmVyIG9mIHN5 bmNwb2ludHMgb3BlcmF0ZWQgb24gYnkgdGhpcyBqb2IuIFRoaXMgZGVmaW5lcyB0aGUKKwkgKiBs ZW5ndGggb2YgdGhlIGFycmF5IHBvaW50ZWQgdG8gYnkgQHN5bmNwdHMuCisJICovCiAJX191MzIg bnVtX3N5bmNwdHM7CisKKwkvKioKKwkgKiBAbnVtX2NtZGJ1ZnM6CisJICoKKwkgKiBUaGUgbnVt YmVyIG9mIGNvbW1hbmQgYnVmZmVycyB0byBleGVjdXRlIGFzIHBhcnQgb2YgdGhpcyBqb2IuIFRo aXMKKwkgKiBkZWZpbmVzIHRoZSBsZW5ndGggb2YgdGhlIGFycmF5IHBvaW50ZWQgdG8gYnkgQGNt ZGJ1ZnMuCisJICovCiAJX191MzIgbnVtX2NtZGJ1ZnM7CisKKwkvKioKKwkgKiBAbnVtX3JlbG9j czoKKwkgKgorCSAqIFRoZSBudW1iZXIgb2YgcmVsb2NhdGlvbnMgdG8gcGVyZm9ybSBiZWZvcmUg ZXhlY3V0aW5nIHRoaXMgam9iLgorCSAqIFRoaXMgZGVmaW5lcyB0aGUgbGVuZ3RoIG9mIHRoZSBh cnJheSBwb2ludGVkIHRvIGJ5IEByZWxvY3MuCisJICovCiAJX191MzIgbnVtX3JlbG9jczsKKwor CS8qKgorCSAqIEBudW1fd2FpdGNoa3M6CisJICoKKwkgKiBUaGUgbnVtYmVyIG9mIHdhaXQgY2hl Y2tzIHRvIHBlcmZvcm0gYXMgcGFydCBvZiB0aGlzIGpvYi4gVGhpcworCSAqIGRlZmluZXMgdGhl IGxlbmd0aCBvZiB0aGUgYXJyYXkgcG9pbnRlZCB0byBieSBAd2FpdGNoa3MuCisJICovCiAJX191 MzIgbnVtX3dhaXRjaGtzOworCisJLyoqCisJICogQHdhaXRjaGtfbWFzazoKKwkgKgorCSAqIEJp dG1hc2sgb2YgdmFsaWQgd2FpdCBjaGVja3MuCisJICovCiAJX191MzIgd2FpdGNoa19tYXNrOwor CisJLyoqCisJICogQHRpbWVvdXQ6CisJICoKKwkgKiBUaW1lb3V0LCBpbiBtaWxsaXNlY29uZHMs IGJlZm9yZSB0aGlzIGpvYiBpcyBjYW5jZWxsZWQuCisJICovCiAJX191MzIgdGltZW91dDsKKwor CS8qKgorCSAqIEBzeW5jcHRzOgorCSAqCisJICogQSBwb2ludGVyIHRvIGFuIGFycmF5IG9mICZz dHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdCBzdHJ1Y3R1cmVzIHRoYXQKKwkgKiBzcGVjaWZ5IHRoZSBz eW5jcG9pbnQgb3BlcmF0aW9ucyBwZXJmb3JtZWQgYXMgcGFydCBvZiB0aGlzIGpvYi4KKwkgKiBU aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBhcnJheSBtdXN0IGJlIGVxdWFsIHRvIHRoZSB2 YWx1ZQorCSAqIGdpdmVuIGJ5IEBudW1fc3luY3B0cy4KKwkgKi8KIAlfX3U2NCBzeW5jcHRzOwor CisJLyoqCisJICogQGNtZGJ1ZnM6CisJICoKKwkgKiBBIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2Yg JnN0cnVjdCBkcm1fdGVncmFfY21kYnVmIHN0cnVjdHVyZXMgdGhhdAorCSAqIGRlZmluZSB0aGUg Y29tbWFuZCBidWZmZXJzIHRvIGV4ZWN1dGUgYXMgcGFydCBvZiB0aGlzIGpvYi4gVGhlCisJICog bnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBhcnJheSBtdXN0IGJlIGVxdWFsIHRvIHRoZSB2YWx1 ZSBnaXZlbgorCSAqIGJ5IEBudW1fc3luY3B0cy4KKwkgKi8KIAlfX3U2NCBjbWRidWZzOworCisJ LyoqCisJICogQHJlbG9jczoKKwkgKgorCSAqIEEgcG9pbnRlciB0byBhbiBhcnJheSBvZiAmc3Ry dWN0IGRybV90ZWdyYV9yZWxvYyBzdHJ1Y3R1cmVzIHRoYXQKKwkgKiBzcGVjaWZ5IHRoZSByZWxv Y2F0aW9ucyB0aGF0IG5lZWQgdG8gYmUgcGVyZm9ybWVkIGJlZm9yZSBleGVjdXRpbmcKKwkgKiB0 aGlzIGpvYi4gVGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgYXJyYXkgbXVzdCBiZSBlcXVh bCB0byB0aGUKKwkgKiB2YWx1ZSBnaXZlbiBieSBAbnVtX3JlbG9jcy4KKwkgKi8KIAlfX3U2NCBy ZWxvY3M7CisKKwkvKioKKwkgKiBAd2FpdGNoa3M6CisJICoKKwkgKiBBIHBvaW50ZXIgdG8gYW4g YXJyYXkgb2YgJnN0cnVjdCBkcm1fdGVncmFfd2FpdGNoayBzdHJ1Y3R1cmVzIHRoYXQKKwkgKiBz cGVjaWZ5IHRoZSB3YWl0IGNoZWNrcyB0byBiZSBwZXJmb3JtZWQgd2hpbGUgZXhlY3V0aW5nIHRo aXMgam9iLgorCSAqIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGFycmF5IG11c3QgYmUg ZXF1YWwgdG8gdGhlIHZhbHVlCisJICogZ2l2ZW4gYnkgQG51bV93YWl0Y2hrcy4KKwkgKi8KIAlf X3U2NCB3YWl0Y2hrczsKLQlfX3UzMiBmZW5jZTsJCS8qIFJldHVybiB2YWx1ZSAqLwogCi0JX191 MzIgcmVzZXJ2ZWRbNV07CS8qIGZ1dHVyZSBleHBhbnNpb24gKi8KKwkvKioKKwkgKiBAZmVuY2U6 CisJICoKKwkgKiBUaGUgdGhyZXNob2xkIG9mIHRoZSBzeW5jcG9pbnQgYXNzb2NpYXRlZCB3aXRo IHRoaXMgam9iIGFmdGVyIGl0CisJICogaGFzIGJlZW4gY29tcGxldGVkLiBTZXQgYnkgdGhlIGtl cm5lbCB1cG9uIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBvZgorCSAqIHRoZSBJT0NUTC4gVGhpcyBj YW4gYmUgdXNlZCB3aXRoIHRoZSBEUk1fVEVHUkFfU1lOQ1BUX1dBSVQgSU9DVEwgdG8KKwkgKiB3 YWl0IGZvciB0aGlzIGpvYiB0byBiZSBmaW5pc2hlZC4KKwkgKi8KKwlfX3UzMiBmZW5jZTsKKwor CS8qKgorCSAqIEByZXNlcnZlZDoKKwkgKgorCSAqIFRoaXMgZmllbGQgaXMgcmVzZXJ2ZWQgZm9y IGZ1dHVyZSB1c2UuIE11c3QgYmUgMC4KKwkgKi8KKwlfX3UzMiByZXNlcnZlZFs1XTsKIH07CiAK ICNkZWZpbmUgRFJNX1RFR1JBX0dFTV9USUxJTkdfTU9ERV9QSVRDSCAwCiAjZGVmaW5lIERSTV9U RUdSQV9HRU1fVElMSU5HX01PREVfVElMRUQgMQogI2RlZmluZSBEUk1fVEVHUkFfR0VNX1RJTElO R19NT0RFX0JMT0NLIDIKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX2dlbV9zZXRfdGlsaW5n IC0gcGFyYW1ldGVycyBmb3IgdGhlIHNldCB0aWxpbmcgSU9DVEwKKyAqLwogc3RydWN0IGRybV90 ZWdyYV9nZW1fc2V0X3RpbGluZyB7Ci0JLyogaW5wdXQgKi8KKwkvKioKKwkgKiBAaGFuZGxlOgor CSAqCisJICogSGFuZGxlIHRvIHRoZSBHRU0gb2JqZWN0IGZvciB3aGljaCB0byBzZXQgdGhlIHRp bGluZyBwYXJhbWV0ZXJzLgorCSAqLwogCV9fdTMyIGhhbmRsZTsKKworCS8qKgorCSAqIEBtb2Rl OgorCSAqCisJICogVGhlIHRpbGluZyBtb2RlIHRvIHNldC4gTXVzdCBiZSBvbmUgb2Y6CisJICoK KwkgKiBEUk1fVEVHUkFfR0VNX1RJTElOR19NT0RFX1BJVENICisJICogICBwaXRjaCBsaW5lYXIg Zm9ybWF0CisJICoKKwkgKiBEUk1fVEVHUkFfR0VNX1RJTElOR19NT0RFX1RJTEVECisJICogICAx NngxNiB0aWxpbmcgZm9ybWF0CisJICoKKwkgKiBEUk1fVEVHUkFfR0VNX1RJTElOR19NT0RFX0JM T0NLCisJICogICAxNkJ4MiB0aWxpbmcgZm9ybWF0CisJICovCiAJX191MzIgbW9kZTsKKworCS8q KgorCSAqIEB2YWx1ZToKKwkgKgorCSAqIFRoZSB2YWx1ZSB0byBzZXQgZm9yIHRoZSB0aWxpbmcg bW9kZSBwYXJhbWV0ZXIuCisJICovCiAJX191MzIgdmFsdWU7CisKKwkvKioKKwkgKiBAcGFkOgor CSAqCisJICogU3RydWN0dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUgdXNlZCBpbiB0aGUgZnV0dXJl LiBNdXN0IGJlIDAuCisJICovCiAJX191MzIgcGFkOwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJt X3RlZ3JhX2dlbV9nZXRfdGlsaW5nIC0gcGFyYW1ldGVycyBmb3IgdGhlIGdldCB0aWxpbmcgSU9D VEwKKyAqLwogc3RydWN0IGRybV90ZWdyYV9nZW1fZ2V0X3RpbGluZyB7Ci0JLyogaW5wdXQgKi8K KwkvKioKKwkgKiBAaGFuZGxlOgorCSAqCisJICogSGFuZGxlIHRvIHRoZSBHRU0gb2JqZWN0IGZv ciB3aGljaCB0byBxdWVyeSB0aGUgdGlsaW5nIHBhcmFtZXRlcnMuCisJICovCiAJX191MzIgaGFu ZGxlOwotCS8qIG91dHB1dCAqLworCisJLyoqCisJICogQG1vZGU6CisJICoKKwkgKiBUaGUgdGls aW5nIG1vZGUgY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0aCB0aGUgR0VNIG9iamVjdC4gU2V0IGJ5 CisJICogdGhlIGtlcm5lbCB1cG9uIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBvZiB0aGUgSU9DVEwu CisJICovCiAJX191MzIgbW9kZTsKKworCS8qKgorCSAqIEB2YWx1ZToKKwkgKgorCSAqIFRoZSB0 aWxpbmcgbW9kZSBwYXJhbWV0ZXIgY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0aCB0aGUgR0VNIG9i amVjdC4KKwkgKiBTZXQgYnkgdGhlIGtlcm5lbCB1cG9uIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBv ZiB0aGUgSU9DVEwuCisJICovCiAJX191MzIgdmFsdWU7CisKKwkvKioKKwkgKiBAcGFkOgorCSAq CisJICogU3RydWN0dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUgdXNlZCBpbiB0aGUgZnV0dXJlLiBN dXN0IGJlIDAuCisJICovCiAJX191MzIgcGFkOwogfTsKIAogI2RlZmluZSBEUk1fVEVHUkFfR0VN X0JPVFRPTV9VUAkJKDEgPDwgMCkKICNkZWZpbmUgRFJNX1RFR1JBX0dFTV9GTEFHUwkJKERSTV9U RUdSQV9HRU1fQk9UVE9NX1VQKQogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFfZ2VtX3NldF9m bGFncyAtIHBhcmFtZXRlcnMgZm9yIHRoZSBzZXQgZmxhZ3MgSU9DVEwKKyAqLwogc3RydWN0IGRy bV90ZWdyYV9nZW1fc2V0X2ZsYWdzIHsKLQkvKiBpbnB1dCAqLworCS8qKgorCSAqIEBoYW5kbGU6 CisJICoKKwkgKiBIYW5kbGUgdG8gdGhlIEdFTSBvYmplY3QgZm9yIHdoaWNoIHRvIHNldCB0aGUg ZmxhZ3MuCisJICovCiAJX191MzIgaGFuZGxlOwotCS8qIG91dHB1dCAqLworCisJLyoqCisJICog QGZsYWdzOgorCSAqCisJICogVGhlIGZsYWdzIHRvIHNldCBmb3IgdGhlIEdFTSBvYmplY3QuCisJ ICovCiAJX191MzIgZmxhZ3M7CiB9OwogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFfZ2VtX2dl dF9mbGFncyAtIHBhcmFtZXRlcnMgZm9yIHRoZSBnZXQgZmxhZ3MgSU9DVEwKKyAqLwogc3RydWN0 IGRybV90ZWdyYV9nZW1fZ2V0X2ZsYWdzIHsKLQkvKiBpbnB1dCAqLworCS8qKgorCSAqIEBoYW5k bGU6CisJICoKKwkgKiBIYW5kbGUgdG8gdGhlIEdFTSBvYmplY3QgZm9yIHdoaWNoIHRvIHF1ZXJ5 IHRoZSBmbGFncy4KKwkgKi8KIAlfX3UzMiBoYW5kbGU7Ci0JLyogb3V0cHV0ICovCisKKwkvKioK KwkgKiBAZmxhZ3M6CisJICoKKwkgKiBUaGUgZmxhZ3MgY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0 aCB0aGUgR0VNIG9iamVjdC4gU2V0IGJ5IHRoZQorCSAqIGtlcm5lbCB1cG9uIHN1Y2Nlc3NmdWwg Y29tcGxldGlvbiBvZiB0aGUgSU9DVEwuCisJICovCiAJX191MzIgZmxhZ3M7CiB9OwogCkBAIC0x OTMsNyArNjY1LDcgQEAgc3RydWN0IGRybV90ZWdyYV9nZW1fZ2V0X2ZsYWdzIHsKICNkZWZpbmUg RFJNX0lPQ1RMX1RFR1JBX1NZTkNQVF9JTkNSIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBE Uk1fVEVHUkFfU1lOQ1BUX0lOQ1IsIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0X2luY3IpCiAjZGVm aW5lIERSTV9JT0NUTF9URUdSQV9TWU5DUFRfV0FJVCBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNF ICsgRFJNX1RFR1JBX1NZTkNQVF9XQUlULCBzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdF93YWl0KQog I2RlZmluZSBEUk1fSU9DVExfVEVHUkFfT1BFTl9DSEFOTkVMIERSTV9JT1dSKERSTV9DT01NQU5E X0JBU0UgKyBEUk1fVEVHUkFfT1BFTl9DSEFOTkVMLCBzdHJ1Y3QgZHJtX3RlZ3JhX29wZW5fY2hh bm5lbCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1RFR1JBX0NMT1NFX0NIQU5ORUwgRFJNX0lPV1IoRFJN X0NPTU1BTkRfQkFTRSArIERSTV9URUdSQV9DTE9TRV9DSEFOTkVMLCBzdHJ1Y3QgZHJtX3RlZ3Jh X29wZW5fY2hhbm5lbCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1RFR1JBX0NMT1NFX0NIQU5ORUwgRFJN X0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9URUdSQV9DTE9TRV9DSEFOTkVMLCBzdHJ1Y3Qg ZHJtX3RlZ3JhX2Nsb3NlX2NoYW5uZWwpCiAjZGVmaW5lIERSTV9JT0NUTF9URUdSQV9HRVRfU1lO Q1BUIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fVEVHUkFfR0VUX1NZTkNQVCwgc3Ry dWN0IGRybV90ZWdyYV9nZXRfc3luY3B0KQogI2RlZmluZSBEUk1fSU9DVExfVEVHUkFfU1VCTUlU IERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fVEVHUkFfU1VCTUlULCBzdHJ1Y3QgZHJt X3RlZ3JhX3N1Ym1pdCkKICNkZWZpbmUgRFJNX0lPQ1RMX1RFR1JBX0dFVF9TWU5DUFRfQkFTRSBE Uk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1RFR1JBX0dFVF9TWU5DUFRfQkFTRSwgc3Ry dWN0IGRybV90ZWdyYV9nZXRfc3luY3B0X2Jhc2UpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS11 YXBpL3YzZF9kcm0uaCBiL2luY2x1ZGUvZHJtLXVhcGkvdjNkX2RybS5oCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uN2I2NjI3NzgzNjA4Ci0tLSAvZGV2L251bGwKKysr IGIvaW5jbHVkZS9kcm0tdWFwaS92M2RfZHJtLmgKQEAgLTAsMCArMSwxOTQgQEAKKy8qCisgKiBD b3B5cmlnaHQgwqkgMjAxNC0yMDE4IEJyb2FkY29tCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJl YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAq IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz ICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJl c3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRv IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5z ZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg cGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBz dWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29w eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBu ZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vi c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdB UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQ UkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBB VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B R0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS QUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENP Tk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwor ICogSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpZm5kZWYgX1YzRF9EUk1fSF8KKyNkZWZpbmUg X1YzRF9EUk1fSF8KKworI2luY2x1ZGUgImRybS5oIgorCisjaWYgZGVmaW5lZChfX2NwbHVzcGx1 cykKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKyNkZWZpbmUgRFJNX1YzRF9TVUJNSVRfQ0wgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMAorI2RlZmluZSBEUk1fVjNEX1dBSVRfQk8gICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAxCisjZGVmaW5lIERSTV9WM0RfQ1JFQVRFX0JPICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDIKKyNkZWZpbmUgRFJNX1YzRF9NTUFQX0JPICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMworI2RlZmluZSBEUk1fVjNEX0dFVF9QQVJBTSAgICAgICAg ICAgICAgICAgICAgICAgICAweDA0CisjZGVmaW5lIERSTV9WM0RfR0VUX0JPX09GRlNFVCAgICAg ICAgICAgICAgICAgICAgIDB4MDUKKworI2RlZmluZSBEUk1fSU9DVExfVjNEX1NVQk1JVF9DTCAg ICAgICAgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9WM0RfU1VCTUlUX0NMLCBz dHJ1Y3QgZHJtX3YzZF9zdWJtaXRfY2wpCisjZGVmaW5lIERSTV9JT0NUTF9WM0RfV0FJVF9CTyAg ICAgICAgICAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1YzRF9XQUlUX0JPLCBz dHJ1Y3QgZHJtX3YzZF93YWl0X2JvKQorI2RlZmluZSBEUk1fSU9DVExfVjNEX0NSRUFURV9CTyAg ICAgICAgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9WM0RfQ1JFQVRFX0JPLCBz dHJ1Y3QgZHJtX3YzZF9jcmVhdGVfYm8pCisjZGVmaW5lIERSTV9JT0NUTF9WM0RfTU1BUF9CTyAg ICAgICAgICAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1YzRF9NTUFQX0JPLCBz dHJ1Y3QgZHJtX3YzZF9tbWFwX2JvKQorI2RlZmluZSBEUk1fSU9DVExfVjNEX0dFVF9QQVJBTSAg ICAgICAgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9WM0RfR0VUX1BBUkFNLCBz dHJ1Y3QgZHJtX3YzZF9nZXRfcGFyYW0pCisjZGVmaW5lIERSTV9JT0NUTF9WM0RfR0VUX0JPX09G RlNFVCAgICAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1YzRF9HRVRfQk9fT0ZG U0VULCBzdHJ1Y3QgZHJtX3YzZF9nZXRfYm9fb2Zmc2V0KQorCisvKioKKyAqIHN0cnVjdCBkcm1f djNkX3N1Ym1pdF9jbCAtIGlvY3RsIGFyZ3VtZW50IGZvciBzdWJtaXR0aW5nIGNvbW1hbmRzIHRv IHRoZSAzRAorICogZW5naW5lLgorICoKKyAqIFRoaXMgYXNrcyB0aGUga2VybmVsIHRvIGhhdmUg dGhlIEdQVSBleGVjdXRlIGFuIG9wdGlvbmFsIGJpbm5lcgorICogY29tbWFuZCBsaXN0LCBhbmQg YSByZW5kZXIgY29tbWFuZCBsaXN0LgorICovCitzdHJ1Y3QgZHJtX3YzZF9zdWJtaXRfY2wgewor CS8qIFBvaW50ZXIgdG8gdGhlIGJpbm5lciBjb21tYW5kIGxpc3QuCisJICoKKwkgKiBUaGlzIGlz IHRoZSBmaXJzdCBzZXQgb2YgY29tbWFuZHMgZXhlY3V0ZWQsIHdoaWNoIHJ1bnMgdGhlCisJICog Y29vcmRpbmF0ZSBzaGFkZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHByaW1pdGl2ZXMgbGFuZCBvbiB0 aGUgc2NyZWVuLAorCSAqIHRoZW4gd3JpdGVzIG91dCB0aGUgc3RhdGUgdXBkYXRlcyBhbmQgZHJh dyBjYWxscyBuZWNlc3NhcnkgcGVyIHRpbGUKKwkgKiB0byB0aGUgdGlsZSBhbGxvY2F0aW9uIEJP LgorCSAqLworCV9fdTMyIGJjbF9zdGFydDsKKworCSAvKiogRW5kIGFkZHJlc3Mgb2YgdGhlIEJD TCAoZmlyc3QgYnl0ZSBhZnRlciB0aGUgQkNMKSAqLworCV9fdTMyIGJjbF9lbmQ7CisKKwkvKiBP ZmZzZXQgb2YgdGhlIHJlbmRlciBjb21tYW5kIGxpc3QuCisJICoKKwkgKiBUaGlzIGlzIHRoZSBz ZWNvbmQgc2V0IG9mIGNvbW1hbmRzIGV4ZWN1dGVkLCB3aGljaCB3aWxsIGVpdGhlcgorCSAqIGV4 ZWN1dGUgdGhlIHRpbGVzIHRoYXQgaGF2ZSBiZWVuIHNldCB1cCBieSB0aGUgQkNMLCBvciBhIGZp eGVkIHNldAorCSAqIG9mIHRpbGVzIChpbiB0aGUgY2FzZSBvZiBSQ0wtb25seSBibGl0cykuCisJ ICovCisJX191MzIgcmNsX3N0YXJ0OworCisJIC8qKiBFbmQgYWRkcmVzcyBvZiB0aGUgUkNMIChm aXJzdCBieXRlIGFmdGVyIHRoZSBSQ0wpICovCisJX191MzIgcmNsX2VuZDsKKworCS8qKiBBbiBv cHRpb25hbCBzeW5jIG9iamVjdCB0byB3YWl0IG9uIGJlZm9yZSBzdGFydGluZyB0aGUgQkNMLiAq LworCV9fdTMyIGluX3N5bmNfYmNsOworCS8qKiBBbiBvcHRpb25hbCBzeW5jIG9iamVjdCB0byB3 YWl0IG9uIGJlZm9yZSBzdGFydGluZyB0aGUgUkNMLiAqLworCV9fdTMyIGluX3N5bmNfcmNsOwor CS8qKiBBbiBvcHRpb25hbCBzeW5jIG9iamVjdCB0byBwbGFjZSB0aGUgY29tcGxldGlvbiBmZW5j ZSBpbi4gKi8KKwlfX3UzMiBvdXRfc3luYzsKKworCS8qIE9mZnNldCBvZiB0aGUgdGlsZSBhbGxv YyBtZW1vcnkKKwkgKgorCSAqIFRoaXMgaXMgb3B0aW9uYWwgb24gVjNEIDMuMyAod2hlcmUgdGhl IENMIGNhbiBzZXQgdGhlIHZhbHVlKSBidXQKKwkgKiByZXF1aXJlZCBvbiBWM0QgNC4xLgorCSAq LworCV9fdTMyIHFtYTsKKworCS8qKiBTaXplIG9mIHRoZSB0aWxlIGFsbG9jIG1lbW9yeS4gKi8K KwlfX3UzMiBxbXM7CisKKwkvKiogT2Zmc2V0IG9mIHRoZSB0aWxlIHN0YXRlIGRhdGEgYXJyYXku ICovCisJX191MzIgcXRzOworCisJLyogUG9pbnRlciB0byBhIHUzMiBhcnJheSBvZiB0aGUgQk9z IHRoYXQgYXJlIHJlZmVyZW5jZWQgYnkgdGhlIGpvYi4KKwkgKi8KKwlfX3U2NCBib19oYW5kbGVz OworCisJLyogTnVtYmVyIG9mIEJPIGhhbmRsZXMgcGFzc2VkIGluIChzaXplIGlzIHRoYXQgdGlt ZXMgNCkuICovCisJX191MzIgYm9faGFuZGxlX2NvdW50OworCisJLyogUGFkLCBtdXN0IGJlIHpl cm8tZmlsbGVkLiAqLworCV9fdTMyIHBhZDsKK307CisKKy8qKgorICogc3RydWN0IGRybV92M2Rf d2FpdF9ibyAtIGlvY3RsIGFyZ3VtZW50IGZvciB3YWl0aW5nIGZvcgorICogY29tcGxldGlvbiBv ZiB0aGUgbGFzdCBEUk1fVjNEX1NVQk1JVF9DTCBvbiBhIEJPLgorICoKKyAqIFRoaXMgaXMgdXNl ZnVsIGZvciBjYXNlcyB3aGVyZSBtdWx0aXBsZSBwcm9jZXNzZXMgbWlnaHQgYmUKKyAqIHJlbmRl cmluZyB0byBhIEJPIGFuZCB5b3Ugd2FudCB0byB3YWl0IGZvciBhbGwgcmVuZGVyaW5nIHRvIGJl CisgKiBjb21wbGV0ZWQuCisgKi8KK3N0cnVjdCBkcm1fdjNkX3dhaXRfYm8geworCV9fdTMyIGhh bmRsZTsKKwlfX3UzMiBwYWQ7CisJX191NjQgdGltZW91dF9uczsKK307CisKKy8qKgorICogc3Ry dWN0IGRybV92M2RfY3JlYXRlX2JvIC0gaW9jdGwgYXJndW1lbnQgZm9yIGNyZWF0aW5nIFYzRCBC T3MuCisgKgorICogVGhlcmUgYXJlIGN1cnJlbnRseSBubyB2YWx1ZXMgZm9yIHRoZSBmbGFncyBh cmd1bWVudCwgYnV0IGl0IG1heSBiZQorICogdXNlZCBpbiBhIGZ1dHVyZSBleHRlbnNpb24uCisg Ki8KK3N0cnVjdCBkcm1fdjNkX2NyZWF0ZV9ibyB7CisJX191MzIgc2l6ZTsKKwlfX3UzMiBmbGFn czsKKwkvKiogUmV0dXJuZWQgR0VNIGhhbmRsZSBmb3IgdGhlIEJPLiAqLworCV9fdTMyIGhhbmRs ZTsKKwkvKioKKwkgKiBSZXR1cm5lZCBvZmZzZXQgZm9yIHRoZSBCTyBpbiB0aGUgVjNEIGFkZHJl c3Mgc3BhY2UuICBUaGlzIG9mZnNldAorCSAqIGlzIHByaXZhdGUgdG8gdGhlIERSTSBmZCBhbmQg aXMgdmFsaWQgZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgR0VNCisJICogaGFuZGxlLgorCSAqCisJ ICogVGhpcyBvZmZzZXQgdmFsdWUgd2lsbCBhbHdheXMgYmUgbm9uemVybywgc2luY2UgdmFyaW91 cyBIVworCSAqIHVuaXRzIHRyZWF0IDAgc3BlY2lhbGx5LgorCSAqLworCV9fdTMyIG9mZnNldDsK K307CisKKy8qKgorICogc3RydWN0IGRybV92M2RfbW1hcF9ibyAtIGlvY3RsIGFyZ3VtZW50IGZv ciBtYXBwaW5nIFYzRCBCT3MuCisgKgorICogVGhpcyBkb2Vzbid0IGFjdHVhbGx5IHBlcmZvcm0g YW4gbW1hcC4gIEluc3RlYWQsIGl0IHJldHVybnMgdGhlCisgKiBvZmZzZXQgeW91IG5lZWQgdG8g dXNlIGluIGFuIG1tYXAgb24gdGhlIERSTSBkZXZpY2Ugbm9kZS4gIFRoaXMKKyAqIG1lYW5zIHRo YXQgdG9vbHMgbGlrZSB2YWxncmluZCBlbmQgdXAga25vd2luZyBhYm91dCB0aGUgbWFwcGVkCisg KiBtZW1vcnkuCisgKgorICogVGhlcmUgYXJlIGN1cnJlbnRseSBubyB2YWx1ZXMgZm9yIHRoZSBm bGFncyBhcmd1bWVudCwgYnV0IGl0IG1heSBiZQorICogdXNlZCBpbiBhIGZ1dHVyZSBleHRlbnNp b24uCisgKi8KK3N0cnVjdCBkcm1fdjNkX21tYXBfYm8geworCS8qKiBIYW5kbGUgZm9yIHRoZSBv YmplY3QgYmVpbmcgbWFwcGVkLiAqLworCV9fdTMyIGhhbmRsZTsKKwlfX3UzMiBmbGFnczsKKwkv Kiogb2Zmc2V0IGludG8gdGhlIGRybSBub2RlIHRvIHVzZSBmb3Igc3Vic2VxdWVudCBtbWFwIGNh bGwuICovCisJX191NjQgb2Zmc2V0OworfTsKKworZW51bSBkcm1fdjNkX3BhcmFtIHsKKwlEUk1f VjNEX1BBUkFNX1YzRF9VSUZDRkcsCisJRFJNX1YzRF9QQVJBTV9WM0RfSFVCX0lERU5UMSwKKwlE Uk1fVjNEX1BBUkFNX1YzRF9IVUJfSURFTlQyLAorCURSTV9WM0RfUEFSQU1fVjNEX0hVQl9JREVO VDMsCisJRFJNX1YzRF9QQVJBTV9WM0RfQ09SRTBfSURFTlQwLAorCURSTV9WM0RfUEFSQU1fVjNE X0NPUkUwX0lERU5UMSwKKwlEUk1fVjNEX1BBUkFNX1YzRF9DT1JFMF9JREVOVDIsCit9OworCitz dHJ1Y3QgZHJtX3YzZF9nZXRfcGFyYW0geworCV9fdTMyIHBhcmFtOworCV9fdTMyIHBhZDsKKwlf X3U2NCB2YWx1ZTsKK307CisKKy8qKgorICogUmV0dXJucyB0aGUgb2Zmc2V0IGZvciB0aGUgQk8g aW4gdGhlIFYzRCBhZGRyZXNzIHNwYWNlIGZvciB0aGlzIERSTSBmZC4KKyAqIFRoaXMgaXMgdGhl IHNhbWUgdmFsdWUgcmV0dXJuZWQgYnkgZHJtX3YzZF9jcmVhdGVfYm8sIGlmIHRoYXQgd2FzIGNh bGxlZAorICogZnJvbSB0aGlzIERSTSBmZC4KKyAqLworc3RydWN0IGRybV92M2RfZ2V0X2JvX29m ZnNldCB7CisJX191MzIgaGFuZGxlOworCV9fdTMyIG9mZnNldDsKK307CisKKyNpZiBkZWZpbmVk KF9fY3BsdXNwbHVzKQorfQorI2VuZGlmCisKKyNlbmRpZiAvKiBfVjNEX0RSTV9IXyAqLwpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0tdWFwaS92YzRfZHJtLmggYi9pbmNsdWRlL2RybS11YXBpL3Zj NF9kcm0uaAppbmRleCA0MTE3MTE3YjQyMDQuLjMxZjUwZGUzOWFjYiAxMDA2NDQKLS0tIGEvaW5j bHVkZS9kcm0tdWFwaS92YzRfZHJtLmgKKysrIGIvaW5jbHVkZS9kcm0tdWFwaS92YzRfZHJtLmgK QEAgLTE4MywxMCArMTgzLDE3IEBAIHN0cnVjdCBkcm1fdmM0X3N1Ym1pdF9jbCB7CiAJLyogSUQg b2YgdGhlIHBlcmZtb24gdG8gYXR0YWNoIHRvIHRoaXMgam9iLiAwIG1lYW5zIG5vIHBlcmZtb24u ICovCiAJX191MzIgcGVyZm1vbmlkOwogCi0JLyogVW51c2VkIGZpZWxkIHRvIGFsaWduIHRoaXMg c3RydWN0IG9uIDY0IGJpdHMuIE11c3QgYmUgc2V0IHRvIDAuCi0JICogSWYgb25lIGV2ZXIgbmVl ZHMgdG8gYWRkIGFuIHUzMiBmaWVsZCB0byB0aGlzIHN0cnVjdCwgdGhpcyBmaWVsZAotCSAqIGNh biBiZSB1c2VkLgorCS8qIFN5bmNvYmogaGFuZGxlIHRvIHdhaXQgb24uIElmIHNldCwgcHJvY2Vz c2luZyBvZiB0aGlzIHJlbmRlciBqb2IKKwkgKiB3aWxsIG5vdCBzdGFydCB1bnRpbCB0aGUgc3lu Y29iaiBpcyBzaWduYWxlZC4gMCBtZWFucyBpZ25vcmUuCiAJICovCisJX191MzIgaW5fc3luYzsK KworCS8qIFN5bmNvYmogaGFuZGxlIHRvIGV4cG9ydCBmZW5jZSB0by4gSWYgc2V0LCB0aGUgZmVu Y2UgaW4gdGhlIHN5bmNvYmoKKwkgKiB3aWxsIGJlIHJlcGxhY2VkIHdpdGggYSBmZW5jZSB0aGF0 IHNpZ25hbHMgdXBvbiBjb21wbGV0aW9uIG9mIHRoaXMKKwkgKiByZW5kZXIgam9iLiAwIG1lYW5z IGlnbm9yZS4KKwkgKi8KKwlfX3UzMiBvdXRfc3luYzsKKwogCV9fdTMyIHBhZDI7CiB9OwogCmRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS11YXBpL3ZpcnRncHVfZHJtLmggYi9pbmNsdWRlL2RybS11 YXBpL3ZpcnRncHVfZHJtLmgKaW5kZXggOTFhMzFmZmVkODI4Li45YTc4MWYwNjExZGYgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvZHJtLXVhcGkvdmlydGdwdV9kcm0uaAorKysgYi9pbmNsdWRlL2RybS11 YXBpL3ZpcnRncHVfZHJtLmgKQEAgLTYzLDYgKzYzLDcgQEAgc3RydWN0IGRybV92aXJ0Z3B1X2V4 ZWNidWZmZXIgewogfTsKIAogI2RlZmluZSBWSVJUR1BVX1BBUkFNXzNEX0ZFQVRVUkVTIDEgLyog ZG8gd2UgaGF2ZSAzRCBmZWF0dXJlcyBpbiB0aGUgaHcgKi8KKyNkZWZpbmUgVklSVEdQVV9QQVJB TV9DQVBTRVRfUVVFUllfRklYIDIgLyogZG8gd2UgaGF2ZSB0aGUgY2Fwc2V0IGZpeCAqLwogCiBz dHJ1Y3QgZHJtX3ZpcnRncHVfZ2V0cGFyYW0gewogCV9fdTY0IHBhcmFtOwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0tdWFwaS92bXdnZnhfZHJtLmggYi9pbmNsdWRlL2RybS11YXBpL3Ztd2dmeF9k cm0uaAppbmRleCAwYmM3ODRmNWUwZGIuLjM5OWY1ODMxN2NmZiAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9kcm0tdWFwaS92bXdnZnhfZHJtLmgKKysrIGIvaW5jbHVkZS9kcm0tdWFwaS92bXdnZnhfZHJt LmgKQEAgLTQwLDYgKzQwLDcgQEAgZXh0ZXJuICJDIiB7CiAKICNkZWZpbmUgRFJNX1ZNV19HRVRf UEFSQU0gICAgICAgICAgICAwCiAjZGVmaW5lIERSTV9WTVdfQUxMT0NfRE1BQlVGICAgICAgICAg MQorI2RlZmluZSBEUk1fVk1XX0FMTE9DX0JPICAgICAgICAgICAgIDEKICNkZWZpbmUgRFJNX1ZN V19VTlJFRl9ETUFCVUYgICAgICAgICAyCiAjZGVmaW5lIERSTV9WTVdfSEFORExFX0NMT1NFICAg ICAgICAgMgogI2RlZmluZSBEUk1fVk1XX0NVUlNPUl9CWVBBU1MgICAgICAgIDMKQEAgLTY4LDYg KzY5LDggQEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIERSTV9WTVdfR0JfU1VSRkFDRV9SRUYgICAg ICAgMjQKICNkZWZpbmUgRFJNX1ZNV19TWU5DQ1BVICAgICAgICAgICAgICAyNQogI2RlZmluZSBE Uk1fVk1XX0NSRUFURV9FWFRFTkRFRF9DT05URVhUIDI2CisjZGVmaW5lIERSTV9WTVdfR0JfU1VS RkFDRV9DUkVBVEVfRVhUICAgMjcKKyNkZWZpbmUgRFJNX1ZNV19HQl9TVVJGQUNFX1JFRl9FWFQg ICAgICAyOAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qKgpAQCAtNzksNiArODIsOSBAQCBleHRl cm4gIkMiIHsKICAqCiAgKiBEUk1fVk1XX1BBUkFNX09WRVJMQVlfSU9DVEw6CiAgKiBEb2VzIHRo ZSBkcml2ZXIgc3VwcG9ydCB0aGUgb3ZlcmxheSBpb2N0bC4KKyAqCisgKiBEUk1fVk1XX1BBUkFN X1NNNF8xCisgKiBTTTRfMSBzdXBwb3J0IGlzIGVuYWJsZWQuCiAgKi8KIAogI2RlZmluZSBEUk1f Vk1XX1BBUkFNX05VTV9TVFJFQU1TICAgICAgMApAQCAtOTQsNiArMTAwLDggQEAgZXh0ZXJuICJD IiB7CiAjZGVmaW5lIERSTV9WTVdfUEFSQU1fTUFYX01PQl9TSVpFICAgICAxMAogI2RlZmluZSBE Uk1fVk1XX1BBUkFNX1NDUkVFTl9UQVJHRVQgICAgMTEKICNkZWZpbmUgRFJNX1ZNV19QQVJBTV9E WCAgICAgICAgICAgICAgIDEyCisjZGVmaW5lIERSTV9WTVdfUEFSQU1fSFdfQ0FQUzIgICAgICAg ICAxMworI2RlZmluZSBEUk1fVk1XX1BBUkFNX1NNNF8xICAgICAgICAgICAgMTQKIAogLyoqCiAg KiBlbnVtIGRybV92bXdfaGFuZGxlX3R5cGUgLSBoYW5kbGUgdHlwZSBmb3IgcmVmIGlvY3RscwpA QCAtMzU2LDkgKzM2NCw5IEBAIHN0cnVjdCBkcm1fdm13X2ZlbmNlX3JlcCB7CiAKIC8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLwogLyoqCi0gKiBEUk1fVk1XX0FMTE9DX0RNQUJVRgorICogRFJNX1ZNV19BTExP Q19CTwogICoKLSAqIEFsbG9jYXRlIGEgRE1BIGJ1ZmZlciB0aGF0IGlzIHZpc2libGUgYWxzbyB0 byB0aGUgaG9zdC4KKyAqIEFsbG9jYXRlIGEgYnVmZmVyIG9iamVjdCB0aGF0IGlzIHZpc2libGUg YWxzbyB0byB0aGUgaG9zdC4KICAqIE5PVEU6IFRoZSBidWZmZXIgaXMKICAqIGlkZW50aWZpZWQg YnkgYSBoYW5kbGUgYW5kIGFuIG9mZnNldCwgd2hpY2ggYXJlIHByaXZhdGUgdG8gdGhlIGd1ZXN0 LCBidXQKICAqIHVzZWFibGUgaW4gdGhlIGNvbW1hbmQgc3RyZWFtLiBUaGUgZ3Vlc3Qga2VybmVs IG1heSB0cmFuc2xhdGUgdGhlc2UKQEAgLTM2NiwyNyArMzc0LDI4IEBAIHN0cnVjdCBkcm1fdm13 X2ZlbmNlX3JlcCB7CiAgKiBiZSB6ZXJvIGF0IGFsbCB0aW1lcywgb3IgaXQgbWF5IGRpc2FwcGVh ciBmcm9tIHRoZSBpbnRlcmZhY2UgYmVmb3JlIGl0IGlzCiAgKiBmaXhlZC4KICAqCi0gKiBUaGUg RE1BIGJ1ZmZlciBtYXkgc3RheSB1c2VyLXNwYWNlIG1hcHBlZCBpbiB0aGUgZ3Vlc3QgYXQgYWxs IHRpbWVzLAorICogVGhlIGJ1ZmZlciBvYmplY3QgbWF5IHN0YXkgdXNlci1zcGFjZSBtYXBwZWQg aW4gdGhlIGd1ZXN0IGF0IGFsbCB0aW1lcywKICAqIGFuZCBpcyB0aHVzIHN1aXRhYmxlIGZvciBz dWItYWxsb2NhdGlvbi4KICAqCi0gKiBETUEgYnVmZmVycyBhcmUgbWFwcGVkIHVzaW5nIHRoZSBt bWFwKCkgc3lzY2FsbCBvbiB0aGUgZHJtIGRldmljZS4KKyAqIEJ1ZmZlciBvYmplY3RzIGFyZSBt YXBwZWQgdXNpbmcgdGhlIG1tYXAoKSBzeXNjYWxsIG9uIHRoZSBkcm0gZGV2aWNlLgogICovCiAK IC8qKgotICogc3RydWN0IGRybV92bXdfYWxsb2NfZG1hYnVmX3JlcQorICogc3RydWN0IGRybV92 bXdfYWxsb2NfYm9fcmVxCiAgKgogICogQHNpemU6IFJlcXVpcmVkIG1pbmltdW0gc2l6ZSBvZiB0 aGUgYnVmZmVyLgogICoKLSAqIElucHV0IGRhdGEgdG8gdGhlIERSTV9WTVdfQUxMT0NfRE1BQlVG IElvY3RsLgorICogSW5wdXQgZGF0YSB0byB0aGUgRFJNX1ZNV19BTExPQ19CTyBJb2N0bC4KICAq LwogCi1zdHJ1Y3QgZHJtX3Ztd19hbGxvY19kbWFidWZfcmVxIHsKK3N0cnVjdCBkcm1fdm13X2Fs bG9jX2JvX3JlcSB7CiAJX191MzIgc2l6ZTsKIAlfX3UzMiBwYWQ2NDsKIH07CisjZGVmaW5lIGRy bV92bXdfYWxsb2NfZG1hYnVmX3JlcSBkcm1fdm13X2FsbG9jX2JvX3JlcQogCiAvKioKLSAqIHN0 cnVjdCBkcm1fdm13X2RtYWJ1Zl9yZXAKKyAqIHN0cnVjdCBkcm1fdm13X2JvX3JlcAogICoKICAq IEBtYXBfaGFuZGxlOiBPZmZzZXQgdG8gdXNlIGluIHRoZSBtbWFwKCkgY2FsbCB1c2VkIHRvIG1h cCB0aGUgYnVmZmVyLgogICogQGhhbmRsZTogSGFuZGxlIHVuaXF1ZSB0byB0aGlzIGJ1ZmZlci4g VXNlZCBmb3IgdW5yZWZlcmVuY2luZy4KQEAgLTM5NSw1MCArNDA0LDMyIEBAIHN0cnVjdCBkcm1f dm13X2FsbG9jX2RtYWJ1Zl9yZXEgewogICogQGN1cl9nbXJfb2Zmc2V0OiBPZmZzZXQgdG8gdXNl IGluIHRoZSBjb21tYW5kIHN0cmVhbSB3aGVuIHRoaXMgYnVmZmVyIGlzCiAgKiByZWZlcmVuY2Vk LiBTZWUgbm90ZSBhYm92ZS4KICAqCi0gKiBPdXRwdXQgZGF0YSBmcm9tIHRoZSBEUk1fVk1XX0FM TE9DX0RNQUJVRiBJb2N0bC4KKyAqIE91dHB1dCBkYXRhIGZyb20gdGhlIERSTV9WTVdfQUxMT0Nf Qk8gSW9jdGwuCiAgKi8KIAotc3RydWN0IGRybV92bXdfZG1hYnVmX3JlcCB7CitzdHJ1Y3QgZHJt X3Ztd19ib19yZXAgewogCV9fdTY0IG1hcF9oYW5kbGU7CiAJX191MzIgaGFuZGxlOwogCV9fdTMy IGN1cl9nbXJfaWQ7CiAJX191MzIgY3VyX2dtcl9vZmZzZXQ7CiAJX191MzIgcGFkNjQ7CiB9Owor I2RlZmluZSBkcm1fdm13X2RtYWJ1Zl9yZXAgZHJtX3Ztd19ib19yZXAKIAogLyoqCi0gKiB1bmlv biBkcm1fdm13X2RtYWJ1Zl9hcmcKKyAqIHVuaW9uIGRybV92bXdfYWxsb2NfYm9fYXJnCiAgKgog ICogQHJlcTogSW5wdXQgZGF0YSBhcyBkZXNjcmliZWQgYWJvdmUuCiAgKiBAcmVwOiBPdXRwdXQg ZGF0YSBhcyBkZXNjcmliZWQgYWJvdmUuCiAgKgotICogQXJndW1lbnQgdG8gdGhlIERSTV9WTVdf QUxMT0NfRE1BQlVGIElvY3RsLgorICogQXJndW1lbnQgdG8gdGhlIERSTV9WTVdfQUxMT0NfQk8g SW9jdGwuCiAgKi8KIAotdW5pb24gZHJtX3Ztd19hbGxvY19kbWFidWZfYXJnIHsKLQlzdHJ1Y3Qg ZHJtX3Ztd19hbGxvY19kbWFidWZfcmVxIHJlcTsKLQlzdHJ1Y3QgZHJtX3Ztd19kbWFidWZfcmVw IHJlcDsKLX07Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoqCi0gKiBEUk1fVk1XX1VOUkVGX0RN QUJVRiAtIEZyZWUgYSBETUEgYnVmZmVyLgotICoKLSAqLwotCi0vKioKLSAqIHN0cnVjdCBkcm1f dm13X3VucmVmX2RtYWJ1Zl9hcmcKLSAqCi0gKiBAaGFuZGxlOiBIYW5kbGUgaW5kaWNhdGluZyB3 aGF0IGJ1ZmZlciB0byBmcmVlLiBPYnRhaW5lZCBmcm9tIHRoZQotICogRFJNX1ZNV19BTExPQ19E TUFCVUYgSW9jdGwuCi0gKgotICogQXJndW1lbnQgdG8gdGhlIERSTV9WTVdfVU5SRUZfRE1BQlVG IElvY3RsLgotICovCi0KLXN0cnVjdCBkcm1fdm13X3VucmVmX2RtYWJ1Zl9hcmcgewotCV9fdTMy IGhhbmRsZTsKLQlfX3UzMiBwYWQ2NDsKK3VuaW9uIGRybV92bXdfYWxsb2NfYm9fYXJnIHsKKwlz dHJ1Y3QgZHJtX3Ztd19hbGxvY19ib19yZXEgcmVxOworCXN0cnVjdCBkcm1fdm13X2JvX3JlcCBy ZXA7CiB9OworI2RlZmluZSBkcm1fdm13X2FsbG9jX2RtYWJ1Zl9hcmcgZHJtX3Ztd19hbGxvY19i b19hcmcKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKioKQEAgLTExMDMsOSArMTA5NCw4IEBAIHVu aW9uIGRybV92bXdfZXh0ZW5kZWRfY29udGV4dF9hcmcgewogICogRFJNX1ZNV19IQU5ETEVfQ0xP U0UgLSBDbG9zZSBhIHVzZXItc3BhY2UgaGFuZGxlIGFuZCByZWxlYXNlIGl0cwogICogdW5kZXJs eWluZyByZXNvdXJjZS4KICAqCi0gKiBOb3RlIHRoYXQgdGhpcyBpb2N0bCBpcyBvdmVybGFpZCBv biB0aGUgRFJNX1ZNV19VTlJFRl9ETUFCVUYgSW9jdGwuCi0gKiBUaGUgaW9jdGwgYXJndW1lbnRz IHRoZXJlZm9yZSBuZWVkIHRvIGJlIGlkZW50aWNhbCBpbiBsYXlvdXQuCi0gKgorICogTm90ZSB0 aGF0IHRoaXMgaW9jdGwgaXMgb3ZlcmxhaWQgb24gdGhlIGRlcHJlY2F0ZWQgRFJNX1ZNV19VTlJF Rl9ETUFCVUYKKyAqIElvY3RsLgogICovCiAKIC8qKgpAQCAtMTExOSw3ICsxMTA5LDEwNyBAQCBz dHJ1Y3QgZHJtX3Ztd19oYW5kbGVfY2xvc2VfYXJnIHsKIAlfX3UzMiBoYW5kbGU7CiAJX191MzIg cGFkNjQ7CiB9OworI2RlZmluZSBkcm1fdm13X3VucmVmX2RtYWJ1Zl9hcmcgZHJtX3Ztd19oYW5k bGVfY2xvc2VfYXJnCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqCisgKiBEUk1fVk1XX0dCX1NV UkZBQ0VfQ1JFQVRFX0VYVCAtIENyZWF0ZSBhIGhvc3QgZ3Vlc3QtYmFja2VkIHN1cmZhY2UuCisg KgorICogQWxsb2NhdGVzIGEgc3VyZmFjZSBoYW5kbGUgYW5kIHF1ZXVlcyBhIGNyZWF0ZSBzdXJm YWNlIGNvbW1hbmQKKyAqIGZvciB0aGUgaG9zdCBvbiB0aGUgZmlyc3QgdXNlIG9mIHRoZSBzdXJm YWNlLiBUaGUgc3VyZmFjZSBJRCBjYW4KKyAqIGJlIHVzZWQgYXMgdGhlIHN1cmZhY2UgSUQgaW4g Y29tbWFuZHMgcmVmZXJlbmNpbmcgdGhlIHN1cmZhY2UuCisgKgorICogVGhpcyBuZXcgY29tbWFu ZCBleHRlbmRzIERSTV9WTVdfR0JfU1VSRkFDRV9DUkVBVEUgYnkgYWRkaW5nIHZlcnNpb24KKyAq IHBhcmFtZXRlciBhbmQgNjQgYml0IHN2Z2EgZmxhZy4KKyAqLworCisvKioKKyAqIGVudW0gZHJt X3Ztd19zdXJmYWNlX3ZlcnNpb24KKyAqCisgKiBAZHJtX3Ztd19zdXJmYWNlX2diX3YxOiBDb3Jy ZXNwb25kcyB0byBjdXJyZW50IGdiIHN1cmZhY2UgZm9ybWF0IHdpdGgKKyAqIHN2Z2EzZCBzdXJm YWNlIGZsYWdzIHNwbGl0IGludG8gMiwgdXBwZXIgaGFsZiBhbmQgbG93ZXIgaGFsZi4KKyAqLwor ZW51bSBkcm1fdm13X3N1cmZhY2VfdmVyc2lvbiB7CisJZHJtX3Ztd19nYl9zdXJmYWNlX3YxCit9 OworCisvKioKKyAqIHN0cnVjdCBkcm1fdm13X2diX3N1cmZhY2VfY3JlYXRlX2V4dF9yZXEKKyAq CisgKiBAYmFzZTogU3VyZmFjZSBjcmVhdGUgcGFyYW1ldGVycy4KKyAqIEB2ZXJzaW9uOiBWZXJz aW9uIG9mIHN1cmZhY2UgY3JlYXRlIGlvY3RsLgorICogQHN2Z2EzZF9mbGFnc191cHBlcl8zMl9i aXRzOiBVcHBlciAzMiBiaXRzIG9mIHN2Z2EzZCBmbGFncy4KKyAqIEBtdWx0aXNhbXBsZV9wYXR0 ZXJuOiBNdWx0aXNhbXBsaW5nIHBhdHRlcm4gd2hlbiBtc2FhIGlzIHN1cHBvcnRlZC4KKyAqIEBx dWFsaXR5X2xldmVsOiBQcmVjaXNpb24gc2V0dGluZ3MgZm9yIGVhY2ggc2FtcGxlLgorICogQG11 c3RfYmVfemVybzogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2FnZS4KKyAqCisgKiBJbnB1dCBhcmd1 bWVudCB0byB0aGUgIERSTV9WTVdfR0JfU1VSRkFDRV9DUkVBVEVfRVhUIElvY3RsLgorICogUGFy dCBvZiBvdXRwdXQgYXJndW1lbnQgZm9yIHRoZSBEUk1fVk1XX0dCX1NVUkZBQ0VfUkVGX0VYVCBJ b2N0bC4KKyAqLworc3RydWN0IGRybV92bXdfZ2Jfc3VyZmFjZV9jcmVhdGVfZXh0X3JlcSB7CisJ c3RydWN0IGRybV92bXdfZ2Jfc3VyZmFjZV9jcmVhdGVfcmVxIGJhc2U7CisJZW51bSBkcm1fdm13 X3N1cmZhY2VfdmVyc2lvbiB2ZXJzaW9uOworCXVpbnQzMl90IHN2Z2EzZF9mbGFnc191cHBlcl8z Ml9iaXRzOworCVNWR0EzZE1TUGF0dGVybiBtdWx0aXNhbXBsZV9wYXR0ZXJuOworCVNWR0EzZE1T UXVhbGl0eUxldmVsIHF1YWxpdHlfbGV2ZWw7CisJdWludDY0X3QgbXVzdF9iZV96ZXJvOworfTsK KworLyoqCisgKiB1bmlvbiBkcm1fdm13X2diX3N1cmZhY2VfY3JlYXRlX2V4dF9hcmcKKyAqCisg KiBAcmVxOiBJbnB1dCBhcmd1bWVudCBhcyBkZXNjcmliZWQgYWJvdmUuCisgKiBAcmVwOiBPdXRw dXQgYXJndW1lbnQgYXMgZGVzY3JpYmVkIGFib3ZlLgorICoKKyAqIEFyZ3VtZW50IHRvIHRoZSBE Uk1fVk1XX0dCX1NVUkZBQ0VfQ1JFQVRFX0VYVCBpb2N0bC4KKyAqLwordW5pb24gZHJtX3Ztd19n Yl9zdXJmYWNlX2NyZWF0ZV9leHRfYXJnIHsKKwlzdHJ1Y3QgZHJtX3Ztd19nYl9zdXJmYWNlX2Ny ZWF0ZV9yZXAgcmVwOworCXN0cnVjdCBkcm1fdm13X2diX3N1cmZhY2VfY3JlYXRlX2V4dF9yZXEg cmVxOworfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioKKyAqIERSTV9WTVdfR0JfU1VSRkFD RV9SRUZfRVhUIC0gUmVmZXJlbmNlIGEgaG9zdCBzdXJmYWNlLgorICoKKyAqIFB1dHMgYSByZWZl cmVuY2Ugb24gYSBob3N0IHN1cmZhY2Ugd2l0aCBhIGdpdmVuIGhhbmRsZSwgYXMgcHJldmlvdXNs eQorICogcmV0dXJuZWQgYnkgdGhlIERSTV9WTVdfR0JfU1VSRkFDRV9DUkVBVEVfRVhUIGlvY3Rs LgorICogQSByZWZlcmVuY2Ugd2lsbCBtYWtlIHN1cmUgdGhlIHN1cmZhY2UgaXNuJ3QgZGVzdHJv eWVkIHdoaWxlIHdlIGhvbGQKKyAqIGl0IGFuZCB3aWxsIGFsbG93IHRoZSBjYWxsaW5nIGNsaWVu dCB0byB1c2UgdGhlIHN1cmZhY2UgaGFuZGxlIGluCisgKiB0aGUgY29tbWFuZCBzdHJlYW0uCisg KgorICogT24gc3VjY2Vzc2Z1bCByZXR1cm4sIHRoZSBJb2N0bCByZXR1cm5zIHRoZSBzdXJmYWNl IGluZm9ybWF0aW9uIGdpdmVuCisgKiB0byBhbmQgcmV0dXJuZWQgZnJvbSB0aGUgRFJNX1ZNV19H Ql9TVVJGQUNFX0NSRUFURV9FWFQgaW9jdGwuCisgKi8KIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3Zt d19nYl9zdXJmYWNlX3JlZl9leHRfcmVwCisgKgorICogQGNyZXE6IFRoZSBkYXRhIHVzZWQgYXMg aW5wdXQgd2hlbiB0aGUgc3VyZmFjZSB3YXMgY3JlYXRlZCwgYXMgZGVzY3JpYmVkCisgKiAgICAg ICAgYWJvdmUgYXQgInN0cnVjdCBkcm1fdm13X2diX3N1cmZhY2VfY3JlYXRlX2V4dF9yZXEiCisg KiBAY3JlcDogQWRkaXRpb25hbCBkYXRhIG91dHB1dCB3aGVuIHRoZSBzdXJmYWNlIHdhcyBjcmVh dGVkLCBhcyBkZXNjcmliZWQKKyAqICAgICAgICBhYm92ZSBhdCAic3RydWN0IGRybV92bXdfZ2Jf c3VyZmFjZV9jcmVhdGVfcmVwIgorICoKKyAqIE91dHB1dCBBcmd1bWVudCB0byB0aGUgRFJNX1ZN V19HQl9TVVJGQUNFX1JFRl9FWFQgaW9jdGwuCisgKi8KK3N0cnVjdCBkcm1fdm13X2diX3N1cmZh Y2VfcmVmX2V4dF9yZXAgeworCXN0cnVjdCBkcm1fdm13X2diX3N1cmZhY2VfY3JlYXRlX2V4dF9y ZXEgY3JlcTsKKwlzdHJ1Y3QgZHJtX3Ztd19nYl9zdXJmYWNlX2NyZWF0ZV9yZXAgY3JlcDsKK307 CisKKy8qKgorICogdW5pb24gZHJtX3Ztd19nYl9zdXJmYWNlX3JlZmVyZW5jZV9leHRfYXJnCisg KgorICogQHJlcTogSW5wdXQgZGF0YSBhcyBkZXNjcmliZWQgYWJvdmUgYXQgInN0cnVjdCBkcm1f dm13X3N1cmZhY2VfYXJnIgorICogQHJlcDogT3V0cHV0IGRhdGEgYXMgZGVzY3JpYmVkIGFib3Zl IGF0CisgKiAgICAgICAic3RydWN0IGRybV92bXdfZ2Jfc3VyZmFjZV9yZWZfZXh0X3JlcCIKKyAq CisgKiBBcmd1bWVudCB0byB0aGUgRFJNX1ZNV19HQl9TVVJGQUNFX1JFRiBJb2N0bC4KKyAqLwor dW5pb24gZHJtX3Ztd19nYl9zdXJmYWNlX3JlZmVyZW5jZV9leHRfYXJnIHsKKwlzdHJ1Y3QgZHJt X3Ztd19nYl9zdXJmYWNlX3JlZl9leHRfcmVwIHJlcDsKKwlzdHJ1Y3QgZHJtX3Ztd19zdXJmYWNl X2FyZyByZXE7Cit9OwogCiAjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKIH0KLS0gCjIuMTcuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Tvrtko Ursulin Date: Thu, 18 Oct 2018 16:27:59 +0100 Message-Id: <20181018152815.31816-2-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20181018152815.31816-1-tvrtko.ursulin@linux.intel.com> References: <20181018152815.31816-1-tvrtko.ursulin@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH i-g-t 01/17] lib: Update uapi headers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org List-ID: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClN5bmMgd2l0 aCBsYXRlc3QgRFJNIHVhcGkgY2hhbmdlcy4KLS0tCiBpbmNsdWRlL2RybS11YXBpL2FtZGdwdV9k cm0uaCAgfCAgNTIgKysrLQogaW5jbHVkZS9kcm0tdWFwaS9kcm0uaCAgICAgICAgIHwgIDE2ICsr CiBpbmNsdWRlL2RybS11YXBpL2RybV9mb3VyY2MuaCAgfCAyMjQgKysrKysrKysrKysrKysrCiBp bmNsdWRlL2RybS11YXBpL2RybV9tb2RlLmggICAgfCAgMjYgKy0KIGluY2x1ZGUvZHJtLXVhcGkv ZXRuYXZpdl9kcm0uaCB8ICAgNiArCiBpbmNsdWRlL2RybS11YXBpL2V4eW5vc19kcm0uaCAgfCAy NDAgKysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0tdWFwaS9pOTE1X2RybS5oICAgIHwgMjM5 ICsrKysrKysrKysrKysrKy0KIGluY2x1ZGUvZHJtLXVhcGkvbXNtX2RybS5oICAgICB8ICAgMiAr CiBpbmNsdWRlL2RybS11YXBpL3N5bmNfZmlsZS5oICAgfCAgOTggLS0tLS0tLQogaW5jbHVkZS9k cm0tdWFwaS90ZWdyYV9kcm0uaCAgIHwgNDkyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLQogaW5jbHVkZS9kcm0tdWFwaS92M2RfZHJtLmggICAgIHwgMTk0ICsrKysrKysrKysrKysK IGluY2x1ZGUvZHJtLXVhcGkvdmM0X2RybS5oICAgICB8ICAxMyArLQogaW5jbHVkZS9kcm0tdWFw aS92aXJ0Z3B1X2RybS5oIHwgICAxICsKIGluY2x1ZGUvZHJtLXVhcGkvdm13Z2Z4X2RybS5oICB8 IDE2NiArKysrKysrKy0tLQogMTQgZmlsZXMgY2hhbmdlZCwgMTYxMyBpbnNlcnRpb25zKCspLCAx NTYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kcm0tdWFwaS9zeW5j X2ZpbGUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHJtLXVhcGkvdjNkX2RybS5oCgpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0tdWFwaS9hbWRncHVfZHJtLmggYi9pbmNsdWRlL2RybS11 YXBpL2FtZGdwdV9kcm0uaAppbmRleCAxODE2YmQ4MjAwZDEuLjM3MGU5YTU1MzZlZiAxMDA2NDQK LS0tIGEvaW5jbHVkZS9kcm0tdWFwaS9hbWRncHVfZHJtLmgKKysrIGIvaW5jbHVkZS9kcm0tdWFw aS9hbWRncHVfZHJtLmgKQEAgLTcyLDEyICs3Miw0MSBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUg RFJNX0lPQ1RMX0FNREdQVV9GRU5DRV9UT19IQU5ETEUgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFT RSArIERSTV9BTURHUFVfRkVOQ0VfVE9fSEFORExFLCB1bmlvbiBkcm1fYW1kZ3B1X2ZlbmNlX3Rv X2hhbmRsZSkKICNkZWZpbmUgRFJNX0lPQ1RMX0FNREdQVV9TQ0hFRAkJRFJNX0lPVyhEUk1fQ09N TUFORF9CQVNFICsgRFJNX0FNREdQVV9TQ0hFRCwgdW5pb24gZHJtX2FtZGdwdV9zY2hlZCkKIAor LyoqCisgKiBET0M6IG1lbW9yeSBkb21haW5zCisgKgorICogJUFNREdQVV9HRU1fRE9NQUlOX0NQ VQlTeXN0ZW0gbWVtb3J5IHRoYXQgaXMgbm90IEdQVSBhY2Nlc3NpYmxlLgorICogTWVtb3J5IGlu IHRoaXMgcG9vbCBjb3VsZCBiZSBzd2FwcGVkIG91dCB0byBkaXNrIGlmIHRoZXJlIGlzIHByZXNz dXJlLgorICoKKyAqICVBTURHUFVfR0VNX0RPTUFJTl9HVFQJR1BVIGFjY2Vzc2libGUgc3lzdGVt IG1lbW9yeSwgbWFwcGVkIGludG8gdGhlCisgKiBHUFUncyB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2Ug dmlhIGdhcnQuIEdhcnQgbWVtb3J5IGxpbmVhcml6ZXMgbm9uLWNvbnRpZ3VvdXMKKyAqIHBhZ2Vz IG9mIHN5c3RlbSBtZW1vcnksIGFsbG93cyBHUFUgYWNjZXNzIHN5c3RlbSBtZW1vcnkgaW4gYSBs aW5lenJpemVkCisgKiBmYXNoaW9uLgorICoKKyAqICVBTURHUFVfR0VNX0RPTUFJTl9WUkFNCUxv Y2FsIHZpZGVvIG1lbW9yeS4gRm9yIEFQVXMsIGl0IGlzIG1lbW9yeQorICogY2FydmVkIG91dCBi eSB0aGUgQklPUy4KKyAqCisgKiAlQU1ER1BVX0dFTV9ET01BSU5fR0RTCUdsb2JhbCBvbi1jaGlw IGRhdGEgc3RvcmFnZSB1c2VkIHRvIHNoYXJlIGRhdGEKKyAqIGFjcm9zcyBzaGFkZXIgdGhyZWFk cy4KKyAqCisgKiAlQU1ER1BVX0dFTV9ET01BSU5fR1dTCUdsb2JhbCB3YXZlIHN5bmMsIHVzZWQg dG8gc3luY2hyb25pemUgdGhlCisgKiBleGVjdXRpb24gb2YgYWxsIHRoZSB3YXZlcyBvbiBhIGRl dmljZS4KKyAqCisgKiAlQU1ER1BVX0dFTV9ET01BSU5fT0EJT3JkZXJlZCBhcHBlbmQsIHVzZWQg YnkgM0Qgb3IgQ29tcHV0ZSBlbmdpbmVzCisgKiBmb3IgYXBwZW5kaW5nIGRhdGEuCisgKi8KICNk ZWZpbmUgQU1ER1BVX0dFTV9ET01BSU5fQ1BVCQkweDEKICNkZWZpbmUgQU1ER1BVX0dFTV9ET01B SU5fR1RUCQkweDIKICNkZWZpbmUgQU1ER1BVX0dFTV9ET01BSU5fVlJBTQkJMHg0CiAjZGVmaW5l IEFNREdQVV9HRU1fRE9NQUlOX0dEUwkJMHg4CiAjZGVmaW5lIEFNREdQVV9HRU1fRE9NQUlOX0dX UwkJMHgxMAogI2RlZmluZSBBTURHUFVfR0VNX0RPTUFJTl9PQQkJMHgyMAorI2RlZmluZSBBTURH UFVfR0VNX0RPTUFJTl9NQVNLCQkoQU1ER1BVX0dFTV9ET01BSU5fQ1BVIHwgXAorCQkJCQkgQU1E R1BVX0dFTV9ET01BSU5fR1RUIHwgXAorCQkJCQkgQU1ER1BVX0dFTV9ET01BSU5fVlJBTSB8IFwK KwkJCQkJIEFNREdQVV9HRU1fRE9NQUlOX0dEUyB8IFwKKwkJCQkJIEFNREdQVV9HRU1fRE9NQUlO X0dXUyB8IFwKKwkJCQkJIEFNREdQVV9HRU1fRE9NQUlOX09BKQogCiAvKiBGbGFnIHRoYXQgQ1BV IGFjY2VzcyB3aWxsIGJlIHJlcXVpcmVkIGZvciB0aGUgY2FzZSBvZiBWUkFNIGRvbWFpbiAqLwog I2RlZmluZSBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJUkVECSgxIDw8IDApCkBA IC05NSw2ICsxMjQsMTAgQEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIEFNREdQVV9HRU1fQ1JFQVRF X1ZNX0FMV0FZU19WQUxJRAkoMSA8PCA2KQogLyogRmxhZyB0aGF0IEJPIHNoYXJpbmcgd2lsbCBi ZSBleHBsaWNpdGx5IHN5bmNocm9uaXplZCAqLwogI2RlZmluZSBBTURHUFVfR0VNX0NSRUFURV9F WFBMSUNJVF9TWU5DCQkoMSA8PCA3KQorLyogRmxhZyB0aGF0IGluZGljYXRlcyBhbGxvY2F0aW5n IE1RRCBnYXJ0IG9uIEdGWDksIHdoZXJlIHRoZSBtdHlwZQorICogZm9yIHRoZSBzZWNvbmQgcGFn ZSBvbndhcmQgc2hvdWxkIGJlIHNldCB0byBOQy4KKyAqLworI2RlZmluZSBBTURHUFVfR0VNX0NS RUFURV9NUURfR0ZYOQkJKDEgPDwgOCkKIAogc3RydWN0IGRybV9hbWRncHVfZ2VtX2NyZWF0ZV9p biAgewogCS8qKiB0aGUgcmVxdWVzdGVkIG1lbW9yeSBzaXplICovCkBAIC00NzMsNyArNTA2LDgg QEAgc3RydWN0IGRybV9hbWRncHVfZ2VtX3ZhIHsKICNkZWZpbmUgQU1ER1BVX0hXX0lQX1VWRF9F TkMgICAgICA1CiAjZGVmaW5lIEFNREdQVV9IV19JUF9WQ05fREVDICAgICAgNgogI2RlZmluZSBB TURHUFVfSFdfSVBfVkNOX0VOQyAgICAgIDcKLSNkZWZpbmUgQU1ER1BVX0hXX0lQX05VTSAgICAg ICAgICA4CisjZGVmaW5lIEFNREdQVV9IV19JUF9WQ05fSlBFRyAgICAgOAorI2RlZmluZSBBTURH UFVfSFdfSVBfTlVNICAgICAgICAgIDkKIAogI2RlZmluZSBBTURHUFVfSFdfSVBfSU5TVEFOQ0Vf TUFYX0NPVU5UIDEKIApAQCAtNDgyLDYgKzUxNiw3IEBAIHN0cnVjdCBkcm1fYW1kZ3B1X2dlbV92 YSB7CiAjZGVmaW5lIEFNREdQVV9DSFVOS19JRF9ERVBFTkRFTkNJRVMJMHgwMwogI2RlZmluZSBB TURHUFVfQ0hVTktfSURfU1lOQ09CSl9JTiAgICAgIDB4MDQKICNkZWZpbmUgQU1ER1BVX0NIVU5L X0lEX1NZTkNPQkpfT1VUICAgICAweDA1CisjZGVmaW5lIEFNREdQVV9DSFVOS19JRF9CT19IQU5E TEVTICAgICAgMHgwNgogCiBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVuayB7CiAJX191MzIJCWNo dW5rX2lkOwpAQCAtNTIwLDYgKzU1NSwxMCBAQCB1bmlvbiBkcm1fYW1kZ3B1X2NzIHsKIC8qIFBy ZWVtcHQgZmxhZywgSUIgc2hvdWxkIHNldCBQcmVfZW5iIGJpdCBpZiBQUkVFTVBUIGZsYWcgZGV0 ZWN0ZWQgKi8KICNkZWZpbmUgQU1ER1BVX0lCX0ZMQUdfUFJFRU1QVCAoMTw8MikKIAorLyogVGhl IElCIGZlbmNlIHNob3VsZCBkbyB0aGUgTDIgd3JpdGViYWNrIGJ1dCBub3QgaW52YWxpZGF0ZSBh bnkgc2hhZGVyCisgKiBjYWNoZXMgKEwyL3ZMMS9zTDEvSSQpLiAqLworI2RlZmluZSBBTURHUFVf SUJfRkxBR19UQ19XQl9OT1RfSU5WQUxJREFURSAoMSA8PCAzKQorCiBzdHJ1Y3QgZHJtX2FtZGdw dV9jc19jaHVua19pYiB7CiAJX191MzIgX3BhZDsKIAkvKiogQU1ER1BVX0lCX0ZMQUdfKiAqLwpA QCAtNjE4LDYgKzY1NywxNiBAQCBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19kYXRhIHsKIAkj ZGVmaW5lIEFNREdQVV9JTkZPX0ZXX1NPUwkJMHgwYwogCS8qIFN1YnF1ZXJ5IGlkOiBRdWVyeSBQ U1AgQVNEIGZpcm13YXJlIHZlcnNpb24gKi8KIAkjZGVmaW5lIEFNREdQVV9JTkZPX0ZXX0FTRAkJ MHgwZAorCS8qIFN1YnF1ZXJ5IGlkOiBRdWVyeSBWQ04gZmlybXdhcmUgdmVyc2lvbiAqLworCSNk ZWZpbmUgQU1ER1BVX0lORk9fRldfVkNOCQkweDBlCisJLyogU3VicXVlcnkgaWQ6IFF1ZXJ5IEdG WCBSTEMgU1JMQyBmaXJtd2FyZSB2ZXJzaW9uICovCisJI2RlZmluZSBBTURHUFVfSU5GT19GV19H RlhfUkxDX1JFU1RPUkVfTElTVF9DTlRMIDB4MGYKKwkvKiBTdWJxdWVyeSBpZDogUXVlcnkgR0ZY IFJMQyBTUkxHIGZpcm13YXJlIHZlcnNpb24gKi8KKwkjZGVmaW5lIEFNREdQVV9JTkZPX0ZXX0dG WF9STENfUkVTVE9SRV9MSVNUX0dQTV9NRU0gMHgxMAorCS8qIFN1YnF1ZXJ5IGlkOiBRdWVyeSBH RlggUkxDIFNSTFMgZmlybXdhcmUgdmVyc2lvbiAqLworCSNkZWZpbmUgQU1ER1BVX0lORk9fRldf R0ZYX1JMQ19SRVNUT1JFX0xJU1RfU1JNX01FTSAweDExCisJLyogU3VicXVlcnkgaWQ6IFF1ZXJ5 IERNQ1UgZmlybXdhcmUgdmVyc2lvbiAqLworCSNkZWZpbmUgQU1ER1BVX0lORk9fRldfRE1DVQkJ MHgxMgogLyogbnVtYmVyIG9mIGJ5dGVzIG1vdmVkIGZvciBUVE0gbWlncmF0aW9uICovCiAjZGVm aW5lIEFNREdQVV9JTkZPX05VTV9CWVRFU19NT1ZFRAkJMHgwZgogLyogdGhlIHVzZWQgVlJBTSBz aXplICovCkBAIC04MDYsNiArODU1LDcgQEAgc3RydWN0IGRybV9hbWRncHVfaW5mb19maXJtd2Fy ZSB7CiAjZGVmaW5lIEFNREdQVV9WUkFNX1RZUEVfR0REUjUgNQogI2RlZmluZSBBTURHUFVfVlJB TV9UWVBFX0hCTSAgIDYKICNkZWZpbmUgQU1ER1BVX1ZSQU1fVFlQRV9ERFIzICA3CisjZGVmaW5l IEFNREdQVV9WUkFNX1RZUEVfRERSNCAgOAogCiBzdHJ1Y3QgZHJtX2FtZGdwdV9pbmZvX2Rldmlj ZSB7CiAJLyoqIFBDSSBEZXZpY2UgSUQgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtLXVhcGkv ZHJtLmggYi9pbmNsdWRlL2RybS11YXBpL2RybS5oCmluZGV4IGYwYmQ5MWRlMGNmOS4uODVjNjg1 YTIwNzVlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS11YXBpL2RybS5oCisrKyBiL2luY2x1ZGUv ZHJtLXVhcGkvZHJtLmgKQEAgLTY3NCw2ICs2NzQsMjIgQEAgc3RydWN0IGRybV9nZXRfY2FwIHsK ICAqLwogI2RlZmluZSBEUk1fQ0xJRU5UX0NBUF9BVE9NSUMJMwogCisvKioKKyAqIERSTV9DTElF TlRfQ0FQX0FTUEVDVF9SQVRJTworICoKKyAqIElmIHNldCB0byAxLCB0aGUgRFJNIGNvcmUgd2ls bCBwcm92aWRlIGFzcGVjdCByYXRpbyBpbmZvcm1hdGlvbiBpbiBtb2Rlcy4KKyAqLworI2RlZmlu ZSBEUk1fQ0xJRU5UX0NBUF9BU1BFQ1RfUkFUSU8gICAgNAorCisvKioKKyAqIERSTV9DTElFTlRf Q0FQX1dSSVRFQkFDS19DT05ORUNUT1JTCisgKgorICogSWYgc2V0IHRvIDEsIHRoZSBEUk0gY29y ZSB3aWxsIGV4cG9zZSBzcGVjaWFsIGNvbm5lY3RvcnMgdG8gYmUgdXNlZCBmb3IKKyAqIHdyaXRp bmcgYmFjayB0byBtZW1vcnkgdGhlIHNjZW5lIHNldHVwIGluIHRoZSBjb21taXQuIERlcGVuZHMg b24gY2xpZW50CisgKiBhbHNvIHN1cHBvcnRpbmcgRFJNX0NMSUVOVF9DQVBfQVRPTUlDCisgKi8K KyNkZWZpbmUgRFJNX0NMSUVOVF9DQVBfV1JJVEVCQUNLX0NPTk5FQ1RPUlMJNQorCiAvKiogRFJN X0lPQ1RMX1NFVF9DTElFTlRfQ0FQIGlvY3RsIGFyZ3VtZW50IHR5cGUgKi8KIHN0cnVjdCBkcm1f c2V0X2NsaWVudF9jYXAgewogCV9fdTY0IGNhcGFiaWxpdHk7CmRpZmYgLS1naXQgYS9pbmNsdWRl L2RybS11YXBpL2RybV9mb3VyY2MuaCBiL2luY2x1ZGUvZHJtLXVhcGkvZHJtX2ZvdXJjYy5oCmlu ZGV4IGUwNDYxM2QzMGExMy4uMGNkNDBlYmZhMWIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS11 YXBpL2RybV9mb3VyY2MuaAorKysgYi9pbmNsdWRlL2RybS11YXBpL2RybV9mb3VyY2MuaApAQCAt MzAsMTEgKzMwLDUwIEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCisvKioKKyAqIERPQzogb3Zl cnZpZXcKKyAqCisgKiBJbiB0aGUgRFJNIHN1YnN5c3RlbSwgZnJhbWVidWZmZXIgcGl4ZWwgZm9y bWF0cyBhcmUgZGVzY3JpYmVkIHVzaW5nIHRoZQorICogZm91cmNjIGNvZGVzIGRlZmluZWQgaW4g YGluY2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJjYy5oYC4gSW4gYWRkaXRpb24gdG8gdGhlCisgKiBm b3VyY2MgY29kZSwgYSBGb3JtYXQgTW9kaWZpZXIgbWF5IG9wdGlvbmFsbHkgYmUgcHJvdmlkZWQs IGluIG9yZGVyIHRvCisgKiBmdXJ0aGVyIGRlc2NyaWJlIHRoZSBidWZmZXIncyBmb3JtYXQgLSBm b3IgZXhhbXBsZSB0aWxpbmcgb3IgY29tcHJlc3Npb24uCisgKgorICogRm9ybWF0IE1vZGlmaWVy cworICogLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIEZvcm1hdCBtb2RpZmllcnMgYXJlIHVzZWQg aW4gY29uanVuY3Rpb24gd2l0aCBhIGZvdXJjYyBjb2RlLCBmb3JtaW5nIGEKKyAqIHVuaXF1ZSBm b3VyY2M6bW9kaWZpZXIgcGFpci4gVGhpcyBmb3JtYXQ6bW9kaWZpZXIgcGFpciBtdXN0IGZ1bGx5 IGRlZmluZSB0aGUKKyAqIGZvcm1hdCBhbmQgZGF0YSBsYXlvdXQgb2YgdGhlIGJ1ZmZlciwgYW5k IHNob3VsZCBiZSB0aGUgb25seSB3YXkgdG8gZGVzY3JpYmUKKyAqIHRoYXQgcGFydGljdWxhciBi dWZmZXIuCisgKgorICogSGF2aW5nIG11bHRpcGxlIGZvdXJjYzptb2RpZmllciBwYWlycyB3aGlj aCBkZXNjcmliZSB0aGUgc2FtZSBsYXlvdXQgc2hvdWxkCisgKiBiZSBhdm9pZGVkLCBhcyBzdWNo IGFsaWFzZXMgcnVuIHRoZSByaXNrIG9mIGRpZmZlcmVudCBkcml2ZXJzIGV4cG9zaW5nCisgKiBk aWZmZXJlbnQgbmFtZXMgZm9yIHRoZSBzYW1lIGRhdGEgZm9ybWF0LCBmb3JjaW5nIHVzZXJzcGFj ZSB0byB1bmRlcnN0YW5kCisgKiB0aGF0IHRoZXkgYXJlIGFsaWFzZXMuCisgKgorICogRm9ybWF0 IG1vZGlmaWVycyBtYXkgY2hhbmdlIGFueSBwcm9wZXJ0eSBvZiB0aGUgYnVmZmVyLCBpbmNsdWRp bmcgdGhlIG51bWJlcgorICogb2YgcGxhbmVzIGFuZC9vciB0aGUgcmVxdWlyZWQgYWxsb2NhdGlv biBzaXplLiBGb3JtYXQgbW9kaWZpZXJzIGFyZQorICogdmVuZG9yLW5hbWVzcGFjZWQsIGFuZCBh cyBzdWNoIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBhIGZvdXJjYyBjb2RlIGFuZCBhCisgKiBt b2RpZmllciBpcyBzcGVjaWZpYyB0byB0aGUgbW9kaWZlciBiZWluZyB1c2VkLiBGb3IgZXhhbXBs ZSwgc29tZSBtb2RpZmllcnMKKyAqIG1heSBwcmVzZXJ2ZSBtZWFuaW5nIC0gc3VjaCBhcyBudW1i ZXIgb2YgcGxhbmVzIC0gZnJvbSB0aGUgZm91cmNjIGNvZGUsCisgKiB3aGVyZWFzIG90aGVycyBt YXkgbm90LgorICoKKyAqIFZlbmRvcnMgc2hvdWxkIGRvY3VtZW50IHRoZWlyIG1vZGlmaWVyIHVz YWdlIGluIGFzIG11Y2ggZGV0YWlsIGFzCisgKiBwb3NzaWJsZSwgdG8gZW5zdXJlIG1heGltdW0g Y29tcGF0aWJpbGl0eSBhY3Jvc3MgZGV2aWNlcywgZHJpdmVycyBhbmQKKyAqIGFwcGxpY2F0aW9u cy4KKyAqCisgKiBUaGUgYXV0aG9yaXRhdGl2ZSBsaXN0IG9mIGZvcm1hdCBtb2RpZmllciBjb2Rl cyBpcyBmb3VuZCBpbgorICogYGluY2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJjYy5oYAorICovCisK ICNkZWZpbmUgZm91cmNjX2NvZGUoYSwgYiwgYywgZCkgKChfX3UzMikoYSkgfCAoKF9fdTMyKShi KSA8PCA4KSB8IFwKIAkJCQkgKChfX3UzMikoYykgPDwgMTYpIHwgKChfX3UzMikoZCkgPDwgMjQp KQogCiAjZGVmaW5lIERSTV9GT1JNQVRfQklHX0VORElBTiAoMTw8MzEpIC8qIGZvcm1hdCBpcyBi aWcgZW5kaWFuIGluc3RlYWQgb2YgbGl0dGxlIGVuZGlhbiAqLwogCisvKiBSZXNlcnZlIDAgZm9y IHRoZSBpbnZhbGlkIGZvcm1hdCBzcGVjaWZpZXIgKi8KKyNkZWZpbmUgRFJNX0ZPUk1BVF9JTlZB TElECTAKKwogLyogY29sb3IgaW5kZXggKi8KICNkZWZpbmUgRFJNX0ZPUk1BVF9DOAkJZm91cmNj X2NvZGUoJ0MnLCAnOCcsICcgJywgJyAnKSAvKiBbNzowXSBDICovCiAKQEAgLTE4Myw2ICsyMjIs NyBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfVkVORE9SX1FDT00gICAg MHgwNQogI2RlZmluZSBEUk1fRk9STUFUX01PRF9WRU5ET1JfVklWQU5URSAweDA2CiAjZGVmaW5l IERSTV9GT1JNQVRfTU9EX1ZFTkRPUl9CUk9BRENPTSAweDA3CisjZGVmaW5lIERSTV9GT1JNQVRf TU9EX1ZFTkRPUl9BUk0gICAgIDB4MDgKIC8qIGFkZCBtb3JlIHRvIHRoZSBlbmQgYXMgbmVlZGVk ICovCiAKICNkZWZpbmUgRFJNX0ZPUk1BVF9SRVNFUlZFRAkgICAgICAoKDFVTEwgPDwgNTYpIC0g MSkKQEAgLTI5OCw2ICszMzgsMjggQEAgZXh0ZXJuICJDIiB7CiAgKi8KICNkZWZpbmUgRFJNX0ZP Uk1BVF9NT0RfU0FNU1VOR182NF8zMl9USUxFCWZvdXJjY19tb2RfY29kZShTQU1TVU5HLCAxKQog CisvKgorICogVGlsZWQsIDE2IChwaXhlbHMpIHggMTYgKGxpbmVzKSAtIHNpemVkIG1hY3JvYmxv Y2tzCisgKgorICogVGhpcyBpcyBhIHNpbXBsZSB0aWxlZCBsYXlvdXQgdXNpbmcgdGlsZXMgb2Yg MTZ4MTYgcGl4ZWxzIGluIGEgcm93LW1ham9yCisgKiBsYXlvdXQuIEZvciBZQ2JDciBmb3JtYXRz IENiL0NyIGNvbXBvbmVudHMgYXJlIHRha2VuIGluIHN1Y2ggYSB3YXkgdGhhdAorICogdGhleSBj b3JyZXNwb25kIHRvIHRoZWlyIDE2eDE2IGx1bWEgYmxvY2suCisgKi8KKyNkZWZpbmUgRFJNX0ZP Uk1BVF9NT0RfU0FNU1VOR18xNl8xNl9USUxFCWZvdXJjY19tb2RfY29kZShTQU1TVU5HLCAyKQor CisvKgorICogUXVhbGNvbW0gQ29tcHJlc3NlZCBGb3JtYXQKKyAqCisgKiBSZWZlcnMgdG8gYSBj b21wcmVzc2VkIHZhcmlhbnQgb2YgdGhlIGJhc2UgZm9ybWF0IHRoYXQgaXMgY29tcHJlc3NlZC4K KyAqIEltcGxlbWVudGF0aW9uIG1heSBiZSBwbGF0Zm9ybSBhbmQgYmFzZS1mb3JtYXQgc3BlY2lm aWMuCisgKgorICogRWFjaCBtYWNyb3RpbGUgY29uc2lzdHMgb2YgbSB4IG4gKG1vc3RseSA0IHgg NCkgdGlsZXMuCisgKiBQaXhlbCBkYXRhIHBpdGNoL3N0cmlkZSBpcyBhbGlnbmVkIHdpdGggbWFj cm90aWxlIHdpZHRoLgorICogUGl4ZWwgZGF0YSBoZWlnaHQgaXMgYWxpZ25lZCB3aXRoIG1hY3Jv dGlsZSBoZWlnaHQuCisgKiBFbnRpcmUgcGl4ZWwgZGF0YSBidWZmZXIgaXMgYWxpZ25lZCB3aXRo IDRrKGJ5dGVzKS4KKyAqLworI2RlZmluZSBEUk1fRk9STUFUX01PRF9RQ09NX0NPTVBSRVNTRUQJ Zm91cmNjX21vZF9jb2RlKFFDT00sIDEpCisKIC8qIFZpdmFudGUgZnJhbWVidWZmZXIgbW9kaWZp ZXJzICovCiAKIC8qCkBAIC0zODQsNiArNDQ2LDIzIEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBE Uk1fRk9STUFUX01PRF9OVklESUFfMTZCWDJfQkxPQ0tfVEhJUlRZVFdPX0dPQiBcCiAJZm91cmNj X21vZF9jb2RlKE5WSURJQSwgMHgxNSkKIAorLyoKKyAqIFNvbWUgQnJvYWRjb20gbW9kaWZpZXJz IHRha2UgcGFyYW1ldGVycywgZm9yIGV4YW1wbGUgdGhlIG51bWJlciBvZgorICogdmVydGljYWwg bGluZXMgaW4gdGhlIGltYWdlLiBSZXNlcnZlIHRoZSBsb3dlciAzMiBiaXRzIGZvciBtb2RpZmll cgorICogdHlwZSwgYW5kIHRoZSBuZXh0IDI0IGJpdHMgZm9yIHBhcmFtZXRlcnMuIFRvcCA4IGJp dHMgYXJlIHRoZQorICogdmVuZG9yIGNvZGUuCisgKi8KKyNkZWZpbmUgX19mb3VyY2NfbW9kX2Jy b2FkY29tX3BhcmFtX3NoaWZ0IDgKKyNkZWZpbmUgX19mb3VyY2NfbW9kX2Jyb2FkY29tX3BhcmFt X2JpdHMgNDgKKyNkZWZpbmUgZm91cmNjX21vZF9icm9hZGNvbV9jb2RlKHZhbCwgcGFyYW1zKSBc CisJZm91cmNjX21vZF9jb2RlKEJST0FEQ09NLCAoKCgoX191NjQpcGFyYW1zKSA8PCBfX2ZvdXJj Y19tb2RfYnJvYWRjb21fcGFyYW1fc2hpZnQpIHwgdmFsKSkKKyNkZWZpbmUgZm91cmNjX21vZF9i cm9hZGNvbV9wYXJhbShtKSBcCisJKChpbnQpKCgobSkgPj4gX19mb3VyY2NfbW9kX2Jyb2FkY29t X3BhcmFtX3NoaWZ0KSAmCVwKKwkgICAgICAgKCgxVUxMIDw8IF9fZm91cmNjX21vZF9icm9hZGNv bV9wYXJhbV9iaXRzKSAtIDEpKSkKKyNkZWZpbmUgZm91cmNjX21vZF9icm9hZGNvbV9tb2QobSkg XAorCSgobSkgJiB+KCgoMVVMTCA8PCBfX2ZvdXJjY19tb2RfYnJvYWRjb21fcGFyYW1fYml0cykg LSAxKSA8PAlcCisJCSBfX2ZvdXJjY19tb2RfYnJvYWRjb21fcGFyYW1fc2hpZnQpKQorCiAvKgog ICogQnJvYWRjb20gVkM0ICJUIiBmb3JtYXQKICAqCkBAIC00MDUsNiArNDg0LDE1MSBAQCBleHRl cm4gIkMiIHsKICAqLwogI2RlZmluZSBEUk1fRk9STUFUX01PRF9CUk9BRENPTV9WQzRfVF9USUxF RCBmb3VyY2NfbW9kX2NvZGUoQlJPQURDT00sIDEpCiAKKy8qCisgKiBCcm9hZGNvbSBTQU5EIGZv cm1hdAorICoKKyAqIFRoaXMgaXMgdGhlIG5hdGl2ZSBmb3JtYXQgdGhhdCB0aGUgSC4yNjQgY29k ZWMgYmxvY2sgdXNlcy4gIEZvciBWQzQKKyAqIEhWUywgaXQgaXMgb25seSB2YWxpZCBmb3IgSC4y NjQgKE5WMTIvMjEpIGFuZCBSR0JBIG1vZGVzLgorICoKKyAqIFRoZSBpbWFnZSBjYW4gYmUgY29u c2lkZXJlZCB0byBiZSBzcGxpdCBpbnRvIGNvbHVtbnMsIGFuZCB0aGUKKyAqIGNvbHVtbnMgYXJl IHBsYWNlZCBjb25zZWN1dGl2ZWx5IGludG8gbWVtb3J5LiAgVGhlIHdpZHRoIG9mIHRob3NlCisg KiBjb2x1bW5zIGNhbiBiZSBlaXRoZXIgMzIsIDY0LCAxMjgsIG9yIDI1NiBwaXhlbHMsIGJ1dCBp biBwcmFjdGljZQorICogb25seSAxMjggcGl4ZWwgY29sdW1ucyBhcmUgdXNlZC4KKyAqCisgKiBU aGUgcGl0Y2ggYmV0d2VlbiB0aGUgc3RhcnQgb2YgZWFjaCBjb2x1bW4gaXMgc2V0IHRvIG9wdGlt YWxseQorICogc3dpdGNoIGJldHdlZW4gU0RSQU0gYmFua3MuIFRoaXMgaXMgcGFzc2VkIGFzIHRo ZSBudW1iZXIgb2YgbGluZXMKKyAqIG9mIGNvbHVtbiB3aWR0aCBpbiB0aGUgbW9kaWZpZXIgKHdl IGNhbid0IHVzZSB0aGUgc3RyaWRlIHZhbHVlIGR1ZQorICogdG8gdmFyaW91cyBjb3JlIGNoZWNr cyB0aGF0IGxvb2sgYXQgaXQgLCBzbyB5b3Ugc2hvdWxkIHNldCB0aGUKKyAqIHN0cmlkZSB0byB3 aWR0aCpjcHApLgorICoKKyAqIE5vdGUgdGhhdCB0aGUgY29sdW1uIGhlaWdodCBmb3IgdGhpcyBm b3JtYXQgbW9kaWZpZXIgaXMgdGhlIHNhbWUKKyAqIGZvciBhbGwgb2YgdGhlIHBsYW5lcywgYXNz dW1pbmcgdGhhdCBlYWNoIGNvbHVtbiBjb250YWlucyBib3RoIFkKKyAqIGFuZCBVVi4gIFNvbWUg U0FORC11c2luZyBoYXJkd2FyZSBzdG9yZXMgVVYgaW4gYSBzZXBhcmF0ZSB0aWxlZAorICogaW1h Z2UgZnJvbSBZIHRvIHJlZHVjZSB0aGUgY29sdW1uIGhlaWdodCwgd2hpY2ggaXMgbm90IHN1cHBv cnRlZAorICogd2l0aCB0aGVzZSBtb2RpZmllcnMuCisgKi8KKworI2RlZmluZSBEUk1fRk9STUFU X01PRF9CUk9BRENPTV9TQU5EMzJfQ09MX0hFSUdIVCh2KSBcCisJZm91cmNjX21vZF9icm9hZGNv bV9jb2RlKDIsIHYpCisjZGVmaW5lIERSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQ2NF9DT0xf SEVJR0hUKHYpIFwKKwlmb3VyY2NfbW9kX2Jyb2FkY29tX2NvZGUoMywgdikKKyNkZWZpbmUgRFJN X0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDEyOF9DT0xfSEVJR0hUKHYpIFwKKwlmb3VyY2NfbW9k X2Jyb2FkY29tX2NvZGUoNCwgdikKKyNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FO RDI1Nl9DT0xfSEVJR0hUKHYpIFwKKwlmb3VyY2NfbW9kX2Jyb2FkY29tX2NvZGUoNSwgdikKKwor I2RlZmluZSBEUk1fRk9STUFUX01PRF9CUk9BRENPTV9TQU5EMzIgXAorCURSTV9GT1JNQVRfTU9E X0JST0FEQ09NX1NBTkQzMl9DT0xfSEVJR0hUKDApCisjZGVmaW5lIERSTV9GT1JNQVRfTU9EX0JS T0FEQ09NX1NBTkQ2NCBcCisJRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDY0X0NPTF9IRUlH SFQoMCkKKyNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDEyOCBcCisJRFJNX0ZP Uk1BVF9NT0RfQlJPQURDT01fU0FORDEyOF9DT0xfSEVJR0hUKDApCisjZGVmaW5lIERSTV9GT1JN QVRfTU9EX0JST0FEQ09NX1NBTkQyNTYgXAorCURSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQy NTZfQ09MX0hFSUdIVCgwKQorCisvKiBCcm9hZGNvbSBVSUYgZm9ybWF0CisgKgorICogVGhpcyBp cyB0aGUgY29tbW9uIGZvcm1hdCBmb3IgdGhlIGN1cnJlbnQgQnJvYWRjb20gbXVsdGltZWRpYQor ICogYmxvY2tzLCBpbmNsdWRpbmcgVjNEIDMueCBhbmQgbmV3ZXIsIG5ld2VyIHZpZGVvIGNvZGVj cywgYW5kCisgKiBkaXNwbGF5cy4KKyAqCisgKiBUaGUgaW1hZ2UgY29uc2lzdHMgb2YgdXRpbGVz ICg2NGIgYmxvY2tzKSwgVUlGIGJsb2NrcyAoMngyIHV0aWxlcyksCisgKiBhbmQgbWFjcm9ibG9j a3MgKDR4NCBVSUYgYmxvY2tzKS4gIFRob3NlIDR4NCBVSUYgYmxvY2sgZ3JvdXBzIGFyZQorICog c3RvcmVkIGluIGNvbHVtbnMsIHdpdGggcGFkZGluZyBiZXR3ZWVuIHRoZSBjb2x1bW5zIHRvIGVu c3VyZSB0aGF0CisgKiBtb3ZpbmcgZnJvbSBvbmUgY29sdW1uIHRvIHRoZSBuZXh0IGRvZXNuJ3Qg aGl0IHRoZSBzYW1lIFNEUkFNIHBhZ2UKKyAqIGJhbmsuCisgKgorICogVG8gY2FsY3VsYXRlIHRo ZSBwYWRkaW5nLCBpdCBpcyBhc3N1bWVkIHRoYXQgZWFjaCBoYXJkd2FyZSBibG9jaworICogYW5k IHRoZSBzb2Z0d2FyZSBkcml2aW5nIGl0IGtub3dzIHRoZSBwbGF0Zm9ybSdzIFNEUkFNIHBhZ2Ug c2l6ZSwKKyAqIG51bWJlciBvZiBiYW5rcywgYW5kIFhPUiBhZGRyZXNzLCBhbmQgdGhhdCBpdCdz IGlkZW50aWNhbCBiZXR3ZWVuCisgKiBhbGwgYmxvY2tzIHVzaW5nIHRoZSBmb3JtYXQuICBUaGlz IHRpbGluZyBtb2RpZmllciB3aWxsIHVzZSBYT1IgYXMKKyAqIG5lY2Vzc2FyeSB0byByZWR1Y2Ug dGhlIHBhZGRpbmcuICBJZiBhIGhhcmR3YXJlIGJsb2NrIGNhbid0IGRvIFhPUiwKKyAqIHRoZSBh c3N1bXB0aW9uIGlzIHRoYXQgYSBuby1YT1IgdGlsaW5nIG1vZGlmaWVyIHdpbGwgYmUgY3JlYXRl ZC4KKyAqLworI2RlZmluZSBEUk1fRk9STUFUX01PRF9CUk9BRENPTV9VSUYgZm91cmNjX21vZF9j b2RlKEJST0FEQ09NLCA2KQorCisvKgorICogQXJtIEZyYW1lYnVmZmVyIENvbXByZXNzaW9uIChB RkJDKSBtb2RpZmllcnMKKyAqCisgKiBBRkJDIGlzIGEgcHJvcHJpZXRhcnkgbG9zc2xlc3MgaW1h Z2UgY29tcHJlc3Npb24gcHJvdG9jb2wgYW5kIGZvcm1hdC4KKyAqIEl0IHByb3ZpZGVzIGZpbmUt Z3JhaW5lZCByYW5kb20gYWNjZXNzIGFuZCBtaW5pbWl6ZXMgdGhlIGFtb3VudCBvZiBkYXRhCisg KiB0cmFuc2ZlcnJlZCBiZXR3ZWVuIElQIGJsb2Nrcy4KKyAqCisgKiBBRkJDIGhhcyBzZXZlcmFs IGZlYXR1cmVzIHdoaWNoIG1heSBiZSBzdXBwb3J0ZWQgYW5kL29yIHVzZWQsIHdoaWNoIGFyZQor ICogcmVwcmVzZW50ZWQgdXNpbmcgYml0cyBpbiB0aGUgbW9kaWZpZXIuIE5vdCBhbGwgY29tYmlu YXRpb25zIGFyZSB2YWxpZCwKKyAqIGFuZCBkaWZmZXJlbnQgZGV2aWNlcyBvciB1c2UtY2FzZXMg bWF5IHN1cHBvcnQgZGlmZmVyZW50IGNvbWJpbmF0aW9ucy4KKyAqLworI2RlZmluZSBEUk1fRk9S TUFUX01PRF9BUk1fQUZCQyhfX2FmYmNfbW9kZSkJZm91cmNjX21vZF9jb2RlKEFSTSwgX19hZmJj X21vZGUpCisKKy8qCisgKiBBRkJDIHN1cGVyYmxvY2sgc2l6ZQorICoKKyAqIEluZGljYXRlcyB0 aGUgc3VwZXJibG9jayBzaXplKHMpIHVzZWQgZm9yIHRoZSBBRkJDIGJ1ZmZlci4gVGhlIGJ1ZmZl cgorICogc2l6ZSAoaW4gcGl4ZWxzKSBtdXN0IGJlIGFsaWduZWQgdG8gYSBtdWx0aXBsZSBvZiB0 aGUgc3VwZXJibG9jayBzaXplLgorICogRm91ciBsb3dlc3Qgc2lnbmlmaWNhbnQgYml0cyhMU0Jz KSBhcmUgcmVzZXJ2ZWQgZm9yIGJsb2NrIHNpemUuCisgKi8KKyNkZWZpbmUgQUZCQ19GT1JNQVRf TU9EX0JMT0NLX1NJWkVfTUFTSyAgICAgIDB4ZgorI2RlZmluZSBBRkJDX0ZPUk1BVF9NT0RfQkxP Q0tfU0laRV8xNngxNiAgICAgKDFVTEwpCisjZGVmaW5lIEFGQkNfRk9STUFUX01PRF9CTE9DS19T SVpFXzMyeDggICAgICAoMlVMTCkKKworLyoKKyAqIEFGQkMgbG9zc2xlc3MgY29sb3JzcGFjZSB0 cmFuc2Zvcm0KKyAqCisgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgYnVmZmVyIG1ha2VzIHVzZSBvZiB0 aGUgQUZCQyBsb3NzbGVzcyBjb2xvcnNwYWNlCisgKiB0cmFuc2Zvcm0uCisgKi8KKyNkZWZpbmUg QUZCQ19GT1JNQVRfTU9EX1lUUiAgICAgKDFVTEwgPDwgIDQpCisKKy8qCisgKiBBRkJDIGJsb2Nr LXNwbGl0CisgKgorICogSW5kaWNhdGVzIHRoYXQgdGhlIHBheWxvYWQgb2YgZWFjaCBzdXBlcmJs b2NrIGlzIHNwbGl0LiBUaGUgc2Vjb25kCisgKiBoYWxmIG9mIHRoZSBwYXlsb2FkIGlzIHBvc2l0 aW9uZWQgYXQgYSBwcmVkZWZpbmVkIG9mZnNldCBmcm9tIHRoZSBzdGFydAorICogb2YgdGhlIHN1 cGVyYmxvY2sgcGF5bG9hZC4KKyAqLworI2RlZmluZSBBRkJDX0ZPUk1BVF9NT0RfU1BMSVQgICAo MVVMTCA8PCAgNSkKKworLyoKKyAqIEFGQkMgc3BhcnNlIGxheW91dAorICoKKyAqIFRoaXMgZmxh ZyBpbmRpY2F0ZXMgdGhhdCB0aGUgcGF5bG9hZCBvZiBlYWNoIHN1cGVyYmxvY2sgbXVzdCBiZSBz dG9yZWQgYXQgYQorICogcHJlZGVmaW5lZCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgb3RoZXIg c3VwZXJibG9ja3MgaW4gdGhlIHNhbWUgQUZCQworICogYnVmZmVyLiBUaGlzIG9yZGVyIGlzIHRo ZSBzYW1lIG9yZGVyIHVzZWQgYnkgdGhlIGhlYWRlciBidWZmZXIuIEluIHRoaXMgbW9kZQorICog ZWFjaCBzdXBlcmJsb2NrIGlzIGdpdmVuIHRoZSBzYW1lIGFtb3VudCBvZiBzcGFjZSBhcyBhbiB1 bmNvbXByZXNzZWQKKyAqIHN1cGVyYmxvY2sgb2YgdGhlIHBhcnRpY3VsYXIgZm9ybWF0IHdvdWxk IHJlcXVpcmUsIHJvdW5kaW5nIHVwIHRvIHRoZSBuZXh0CisgKiBtdWx0aXBsZSBvZiAxMjggYnl0 ZXMgaW4gc2l6ZS4KKyAqLworI2RlZmluZSBBRkJDX0ZPUk1BVF9NT0RfU1BBUlNFICAoMVVMTCA8 PCAgNikKKworLyoKKyAqIEFGQkMgY29weS1ibG9jayByZXN0cmljdAorICoKKyAqIEJ1ZmZlcnMg d2l0aCB0aGlzIGZsYWcgbXVzdCBvYmV5IHRoZSBjb3B5LWJsb2NrIHJlc3RyaWN0aW9uLiBUaGUg cmVzdHJpY3Rpb24KKyAqIGlzIHN1Y2ggdGhhdCB0aGVyZSBhcmUgbm8gY29weS1ibG9ja3MgcmVm ZXJyaW5nIGFjcm9zcyB0aGUgYm9yZGVyIG9mIDh4OAorICogYmxvY2tzLiBGb3IgdGhlIHN1YnNh bXBsZWQgZGF0YSB0aGUgOHg4IGxpbWl0YXRpb24gaXMgYWxzbyBzdWJzYW1wbGVkLgorICovCisj ZGVmaW5lIEFGQkNfRk9STUFUX01PRF9DQlIgICAgICgxVUxMIDw8ICA3KQorCisvKgorICogQUZC QyB0aWxlZCBsYXlvdXQKKyAqCisgKiBUaGUgdGlsZWQgbGF5b3V0IGdyb3VwcyBzdXBlcmJsb2Nr cyBpbiA4eDggb3IgNHg0IHRpbGVzLCB3aGVyZSBhbGwKKyAqIHN1cGVyYmxvY2tzIGluc2lkZSBh IHRpbGUgYXJlIHN0b3JlZCB0b2dldGhlciBpbiBtZW1vcnkuIDh4OCB0aWxlcyBhcmUgdXNlZAor ICogZm9yIHBpeGVsIGZvcm1hdHMgdXAgdG8gYW5kIGluY2x1ZGluZyAzMiBicHAgd2hpbGUgNHg0 IHRpbGVzIGFyZSB1c2VkIGZvcgorICogbGFyZ2VyIGJwcCBmb3JtYXRzLiBUaGUgb3JkZXIgYmV0 d2VlbiB0aGUgdGlsZXMgaXMgc2NhbiBsaW5lLgorICogV2hlbiB0aGUgdGlsZWQgbGF5b3V0IGlz IHVzZWQsIHRoZSBidWZmZXIgc2l6ZSAoaW4gcGl4ZWxzKSBtdXN0IGJlIGFsaWduZWQKKyAqIHRv IHRoZSB0aWxlIHNpemUuCisgKi8KKyNkZWZpbmUgQUZCQ19GT1JNQVRfTU9EX1RJTEVEICAgKDFV TEwgPDwgIDgpCisKKy8qCisgKiBBRkJDIHNvbGlkIGNvbG9yIGJsb2NrcworICoKKyAqIEluZGlj YXRlcyB0aGF0IHRoZSBidWZmZXIgbWFrZXMgdXNlIG9mIHNvbGlkLWNvbG9yIGJsb2Nrcywgd2hl cmVieSBiYW5kd2lkdGgKKyAqIGNhbiBiZSByZWR1Y2VkIGlmIGEgd2hvbGUgc3VwZXJibG9jayBp cyBhIHNpbmdsZSBjb2xvci4KKyAqLworI2RlZmluZSBBRkJDX0ZPUk1BVF9NT0RfU0MgICAgICAo MVVMTCA8PCAgOSkKKwogI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCiB9CiAjZW5kaWYKZGlmZiAt LWdpdCBhL2luY2x1ZGUvZHJtLXVhcGkvZHJtX21vZGUuaCBiL2luY2x1ZGUvZHJtLXVhcGkvZHJt X21vZGUuaAppbmRleCAyYzU3NTc5NGZiNTIuLmQzZTBmZTMxZWZjNSAxMDA2NDQKLS0tIGEvaW5j bHVkZS9kcm0tdWFwaS9kcm1fbW9kZS5oCisrKyBiL2luY2x1ZGUvZHJtLXVhcGkvZHJtX21vZGUu aApAQCAtOTMsNiArOTMsMTUgQEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIERSTV9NT0RFX1BJQ1RV UkVfQVNQRUNUX05PTkUJCTAKICNkZWZpbmUgRFJNX01PREVfUElDVFVSRV9BU1BFQ1RfNF8zCQkx CiAjZGVmaW5lIERSTV9NT0RFX1BJQ1RVUkVfQVNQRUNUXzE2XzkJCTIKKyNkZWZpbmUgRFJNX01P REVfUElDVFVSRV9BU1BFQ1RfNjRfMjcJCTMKKyNkZWZpbmUgRFJNX01PREVfUElDVFVSRV9BU1BF Q1RfMjU2XzEzNQkJNAorCisvKiBDb250ZW50IHR5cGUgb3B0aW9ucyAqLworI2RlZmluZSBEUk1f TU9ERV9DT05URU5UX1RZUEVfTk9fREFUQQkJMAorI2RlZmluZSBEUk1fTU9ERV9DT05URU5UX1RZ UEVfR1JBUEhJQ1MJCTEKKyNkZWZpbmUgRFJNX01PREVfQ09OVEVOVF9UWVBFX1BIT1RPCQkyCisj ZGVmaW5lIERSTV9NT0RFX0NPTlRFTlRfVFlQRV9DSU5FTUEJCTMKKyNkZWZpbmUgRFJNX01PREVf Q09OVEVOVF9UWVBFX0dBTUUJCTQKIAogLyogQXNwZWN0IHJhdGlvIGZsYWcgYml0bWFzayAoNCBi aXRzIDIyOjE5KSAqLwogI2RlZmluZSBEUk1fTU9ERV9GTEFHX1BJQ19BUl9NQVNLCQkoMHgwRjw8 MTkpCkBAIC0xMDIsNiArMTExLDEwIEBAIGV4dGVybiAiQyIgewogCQkJKERSTV9NT0RFX1BJQ1RV UkVfQVNQRUNUXzRfMzw8MTkpCiAjZGVmaW5lICBEUk1fTU9ERV9GTEFHX1BJQ19BUl8xNl85IFwK IAkJCShEUk1fTU9ERV9QSUNUVVJFX0FTUEVDVF8xNl85PDwxOSkKKyNkZWZpbmUgIERSTV9NT0RF X0ZMQUdfUElDX0FSXzY0XzI3IFwKKwkJCShEUk1fTU9ERV9QSUNUVVJFX0FTUEVDVF82NF8yNzw8 MTkpCisjZGVmaW5lICBEUk1fTU9ERV9GTEFHX1BJQ19BUl8yNTZfMTM1IFwKKwkJCShEUk1fTU9E RV9QSUNUVVJFX0FTUEVDVF8yNTZfMTM1PDwxOSkKIAogI2RlZmluZSAgRFJNX01PREVfRkxBR19B TEwJKERSTV9NT0RFX0ZMQUdfUEhTWU5DIHwJCVwKIAkJCQkgRFJNX01PREVfRkxBR19OSFNZTkMg fAkJXApAQCAtMTczLDggKzE4Niw5IEBAIGV4dGVybiAiQyIgewogLyoKICAqIERSTV9NT0RFX1JF RkxFQ1RfPGF4aXM+CiAgKgotICogU2lnbmFscyB0aGF0IHRoZSBjb250ZW50cyBvZiBhIGRybSBw bGFuZSBpcyByZWZsZWN0ZWQgaW4gdGhlIDxheGlzPiBheGlzLAorICogU2lnbmFscyB0aGF0IHRo ZSBjb250ZW50cyBvZiBhIGRybSBwbGFuZSBpcyByZWZsZWN0ZWQgYWxvbmcgdGhlIDxheGlzPiBh eGlzLAogICogaW4gdGhlIHNhbWUgd2F5IGFzIG1pcnJvcmluZy4KKyAqIFNlZSBrZXJuZWxkb2Mg Y2hhcHRlciAiUGxhbmUgQ29tcG9zaXRpb24gUHJvcGVydGllcyIgZm9yIG1vcmUgZGV0YWlscy4K ICAqCiAgKiBUaGlzIGRlZmluZSBpcyBwcm92aWRlZCBhcyBhIGNvbnZlbmllbmNlLCBsb29raW5n IHVwIHRoZSBwcm9wZXJ0eSBpZAogICogdXNpbmcgdGhlIG5hbWUtPnByb3AgaWQgbG9va3VwIGlz IHRoZSBwcmVmZXJyZWQgbWV0aG9kLgpAQCAtMzM4LDYgKzM1Miw3IEBAIGVudW0gZHJtX21vZGVf c3ViY29ubmVjdG9yIHsKICNkZWZpbmUgRFJNX01PREVfQ09OTkVDVE9SX1ZJUlRVQUwgICAgICAx NQogI2RlZmluZSBEUk1fTU9ERV9DT05ORUNUT1JfRFNJCQkxNgogI2RlZmluZSBEUk1fTU9ERV9D T05ORUNUT1JfRFBJCQkxNworI2RlZmluZSBEUk1fTU9ERV9DT05ORUNUT1JfV1JJVEVCQUNLCTE4 CiAKIHN0cnVjdCBkcm1fbW9kZV9nZXRfY29ubmVjdG9yIHsKIApAQCAtMzYzLDcgKzM3OCw3IEBA IHN0cnVjdCBkcm1fbW9kZV9nZXRfY29ubmVjdG9yIHsKIAlfX3UzMiBwYWQ7CiB9OwogCi0jZGVm aW5lIERSTV9NT0RFX1BST1BfUEVORElORwkoMTw8MCkKKyNkZWZpbmUgRFJNX01PREVfUFJPUF9Q RU5ESU5HCSgxPDwwKSAvKiBkZXByZWNhdGVkLCBkbyBub3QgdXNlICovCiAjZGVmaW5lIERSTV9N T0RFX1BST1BfUkFOR0UJKDE8PDEpCiAjZGVmaW5lIERSTV9NT0RFX1BST1BfSU1NVVRBQkxFCSgx PDwyKQogI2RlZmluZSBEUk1fTU9ERV9QUk9QX0VOVU0JKDE8PDMpIC8qIGVudW1lcmF0ZWQgdHlw ZSB3aXRoIHRleHQgc3RyaW5ncyAqLwpAQCAtNTk4LDggKzYxMywxMSBAQCBzdHJ1Y3QgZHJtX21v ZGVfY3J0Y19sdXQgewogfTsKIAogc3RydWN0IGRybV9jb2xvcl9jdG0gewotCS8qIENvbnZlcnNp b24gbWF0cml4IGluIFMzMS4zMiBmb3JtYXQuICovCi0JX19zNjQgbWF0cml4WzldOworCS8qCisJ ICogQ29udmVyc2lvbiBtYXRyaXggaW4gUzMxLjMyIHNpZ24tbWFnbml0dWRlCisJICogKG5vdCB0 d28ncyBjb21wbGVtZW50ISkgZm9ybWF0LgorCSAqLworCV9fdTY0IG1hdHJpeFs5XTsKIH07CiAK IHN0cnVjdCBkcm1fY29sb3JfbHV0IHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtLXVhcGkvZXRu YXZpdl9kcm0uaCBiL2luY2x1ZGUvZHJtLXVhcGkvZXRuYXZpdl9kcm0uaAppbmRleCBlOWI5OTdh MGVmMjcuLjBkNWM0OWRjNDc4YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0tdWFwaS9ldG5hdml2 X2RybS5oCisrKyBiL2luY2x1ZGUvZHJtLXVhcGkvZXRuYXZpdl9kcm0uaApAQCAtNTUsNiArNTUs MTIgQEAgc3RydWN0IGRybV9ldG5hdml2X3RpbWVzcGVjIHsKICNkZWZpbmUgRVROQVZJVl9QQVJB TV9HUFVfRkVBVFVSRVNfNCAgICAgICAgICAgICAgICAweDA3CiAjZGVmaW5lIEVUTkFWSVZfUEFS QU1fR1BVX0ZFQVRVUkVTXzUgICAgICAgICAgICAgICAgMHgwOAogI2RlZmluZSBFVE5BVklWX1BB UkFNX0dQVV9GRUFUVVJFU182ICAgICAgICAgICAgICAgIDB4MDkKKyNkZWZpbmUgRVROQVZJVl9Q QVJBTV9HUFVfRkVBVFVSRVNfNyAgICAgICAgICAgICAgICAweDBhCisjZGVmaW5lIEVUTkFWSVZf UEFSQU1fR1BVX0ZFQVRVUkVTXzggICAgICAgICAgICAgICAgMHgwYgorI2RlZmluZSBFVE5BVklW X1BBUkFNX0dQVV9GRUFUVVJFU185ICAgICAgICAgICAgICAgIDB4MGMKKyNkZWZpbmUgRVROQVZJ Vl9QQVJBTV9HUFVfRkVBVFVSRVNfMTAgICAgICAgICAgICAgICAweDBkCisjZGVmaW5lIEVUTkFW SVZfUEFSQU1fR1BVX0ZFQVRVUkVTXzExICAgICAgICAgICAgICAgMHgwZQorI2RlZmluZSBFVE5B VklWX1BBUkFNX0dQVV9GRUFUVVJFU18xMiAgICAgICAgICAgICAgIDB4MGYKIAogI2RlZmluZSBF VE5BVklWX1BBUkFNX0dQVV9TVFJFQU1fQ09VTlQgICAgICAgICAgICAgIDB4MTAKICNkZWZpbmUg RVROQVZJVl9QQVJBTV9HUFVfUkVHSVNURVJfTUFYICAgICAgICAgICAgICAweDExCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2RybS11YXBpL2V4eW5vc19kcm0uaCBiL2luY2x1ZGUvZHJtLXVhcGkvZXh5 bm9zX2RybS5oCmluZGV4IGEwMDExNmI1Y2M1Yy4uNzQxNGNmZDc2NDE5IDEwMDY0NAotLS0gYS9p bmNsdWRlL2RybS11YXBpL2V4eW5vc19kcm0uaAorKysgYi9pbmNsdWRlL2RybS11YXBpL2V4eW5v c19kcm0uaApAQCAtMTM1LDYgKzEzNSwyMTkgQEAgc3RydWN0IGRybV9leHlub3NfZzJkX2V4ZWMg ewogCV9fdTY0CQkJCQlhc3luYzsKIH07CiAKKy8qIEV4eW5vcyBEUk0gSVBQIHYyIEFQSSAqLwor CisvKioKKyAqIEVudW1lcmF0ZSBhdmFpbGFibGUgSVBQIGhhcmR3YXJlIG1vZHVsZXMuCisgKgor ICogQGNvdW50X2lwcHM6IHNpemUgb2YgaXBwX2lkIGFycmF5IC8gbnVtYmVyIG9mIGlwcCBtb2R1 bGVzIChzZXQgYnkgZHJpdmVyKQorICogQHJlc2VydmVkOiBwYWRkaW5nCisgKiBAaXBwX2lkX3B0 cjogcG9pbnRlciB0byBpcHBfaWQgYXJyYXkgb3IgTlVMTAorICovCitzdHJ1Y3QgZHJtX2V4eW5v c19pb2N0bF9pcHBfZ2V0X3JlcyB7CisJX191MzIgY291bnRfaXBwczsKKwlfX3UzMiByZXNlcnZl ZDsKKwlfX3U2NCBpcHBfaWRfcHRyOworfTsKKworZW51bSBkcm1fZXh5bm9zX2lwcF9mb3JtYXRf dHlwZSB7CisJRFJNX0VYWU5PU19JUFBfRk9STUFUX1NPVVJDRQkJPSAweDAxLAorCURSTV9FWFlO T1NfSVBQX0ZPUk1BVF9ERVNUSU5BVElPTgk9IDB4MDIsCit9OworCitzdHJ1Y3QgZHJtX2V4eW5v c19pcHBfZm9ybWF0IHsKKwlfX3UzMiBmb3VyY2M7CisJX191MzIgdHlwZTsKKwlfX3U2NCBtb2Rp ZmllcjsKK307CisKK2VudW0gZHJtX2V4eW5vc19pcHBfY2FwYWJpbGl0eSB7CisJRFJNX0VYWU5P U19JUFBfQ0FQX0NST1AJCT0gMHgwMSwKKwlEUk1fRVhZTk9TX0lQUF9DQVBfUk9UQVRFCT0gMHgw MiwKKwlEUk1fRVhZTk9TX0lQUF9DQVBfU0NBTEUJPSAweDA0LAorCURSTV9FWFlOT1NfSVBQX0NB UF9DT05WRVJUCT0gMHgwOCwKK307CisKKy8qKgorICogR2V0IElQUCBoYXJkd2FyZSBjYXBhYmls aXRpZXMgYW5kIHN1cHBvcnRlZCBpbWFnZSBmb3JtYXRzLgorICoKKyAqIEBpcHBfaWQ6IGlkIG9m IElQUCBtb2R1bGUgdG8gcXVlcnkKKyAqIEBjYXBhYmlsaXRpZXM6IGJpdG1hc2sgb2YgZHJtX2V4 eW5vc19pcHBfY2FwYWJpbGl0eSAoc2V0IGJ5IGRyaXZlcikKKyAqIEByZXNlcnZlZDogcGFkZGlu ZworICogQGZvcm1hdHNfY291bnQ6IHNpemUgb2YgZm9ybWF0cyBhcnJheSAoaW4gZW50cmllcykg LyBudW1iZXIgb2YgZmlsbGVkCisgKgkJICAgZm9ybWF0cyAoc2V0IGJ5IGRyaXZlcikKKyAqIEBm b3JtYXRzX3B0cjogcG9pbnRlciB0byBmb3JtYXRzIGFycmF5IG9yIE5VTEwKKyAqLworc3RydWN0 IGRybV9leHlub3NfaW9jdGxfaXBwX2dldF9jYXBzIHsKKwlfX3UzMiBpcHBfaWQ7CisJX191MzIg Y2FwYWJpbGl0aWVzOworCV9fdTMyIHJlc2VydmVkOworCV9fdTMyIGZvcm1hdHNfY291bnQ7CisJ X191NjQgZm9ybWF0c19wdHI7Cit9OworCitlbnVtIGRybV9leHlub3NfaXBwX2xpbWl0X3R5cGUg eworCS8qIHNpemUgKGhvcml6b250YWwvdmVydGlhbCkgbGltaXRzLCBpbiBwaXhlbHMgKG1pbiwg bWF4LCBhbGlnbm1lbnQpICovCisJRFJNX0VYWU5PU19JUFBfTElNSVRfVFlQRV9TSVpFCQk9IDB4 MDAwMSwKKwkvKiBzY2FsZSByYXRpbyAoaG9yaXpvbnRhL3ZlcnRpYWwpLCAxNi4xNiBmaXhlZCBw b2ludCAobWluLCBtYXgpICovCisJRFJNX0VYWU5PU19JUFBfTElNSVRfVFlQRV9TQ0FMRQkJPSAw eDAwMDIsCisKKwkvKiBpbWFnZSBidWZmZXIgYXJlYSAqLworCURSTV9FWFlOT1NfSVBQX0xJTUlU X1NJWkVfQlVGRkVSCT0gMHgwMDAxIDw8IDE2LAorCS8qIHNyYy9kc3QgcmVjdGFuZ2xlIGFyZWEg Ki8KKwlEUk1fRVhZTk9TX0lQUF9MSU1JVF9TSVpFX0FSRUEJCT0gMHgwMDAyIDw8IDE2LAorCS8q IHNyYy9kc3QgcmVjdGFuZ2xlIGFyZWEgd2hlbiByb3RhdGlvbiBlbmFibGVkICovCisJRFJNX0VY WU5PU19JUFBfTElNSVRfU0laRV9ST1RBVEVECT0gMHgwMDAzIDw8IDE2LAorCisJRFJNX0VYWU5P U19JUFBfTElNSVRfVFlQRV9NQVNLCQk9IDB4MDAwZiwKKwlEUk1fRVhZTk9TX0lQUF9MSU1JVF9T SVpFX01BU0sJCT0gMHgwMDBmIDw8IDE2LAorfTsKKworc3RydWN0IGRybV9leHlub3NfaXBwX2xp bWl0X3ZhbCB7CisJX191MzIgbWluOworCV9fdTMyIG1heDsKKwlfX3UzMiBhbGlnbjsKKwlfX3Uz MiByZXNlcnZlZDsKK307CisKKy8qKgorICogSVBQIG1vZHVsZSBsaW1pdGF0aW9uLgorICoKKyAq IEB0eXBlOiBsaW1pdCB0eXBlIChzZWUgZHJtX2V4eW5vc19pcHBfbGltaXRfdHlwZSBlbnVtKQor ICogQHJlc2VydmVkOiBwYWRkaW5nCisgKiBAaDogaG9yaXpvbnRhbCBsaW1pdHMKKyAqIEB2OiB2 ZXJ0aWNhbCBsaW1pdHMKKyAqLworc3RydWN0IGRybV9leHlub3NfaXBwX2xpbWl0IHsKKwlfX3Uz MiB0eXBlOworCV9fdTMyIHJlc2VydmVkOworCXN0cnVjdCBkcm1fZXh5bm9zX2lwcF9saW1pdF92 YWwgaDsKKwlzdHJ1Y3QgZHJtX2V4eW5vc19pcHBfbGltaXRfdmFsIHY7Cit9OworCisvKioKKyAq IEdldCBJUFAgbGltaXRzIGZvciBnaXZlbiBpbWFnZSBmb3JtYXQuCisgKgorICogQGlwcF9pZDog aWQgb2YgSVBQIG1vZHVsZSB0byBxdWVyeQorICogQGZvdXJjYzogaW1hZ2UgZm9ybWF0IGNvZGUg KHNlZSBEUk1fRk9STUFUXyogaW4gZHJtX2ZvdXJjYy5oKQorICogQG1vZGlmaWVyOiBpbWFnZSBm b3JtYXQgbW9kaWZpZXIgKHNlZSBEUk1fRk9STUFUX01PRF8qIGluIGRybV9mb3VyY2MuaCkKKyAq IEB0eXBlOiBzb3VyY2UvZGVzdGluYXRpb24gaWRlbnRpZmllciAoZHJtX2V4eW5vc19pcHBfZm9y bWF0X2ZsYWcgZW51bSkKKyAqIEBsaW1pdHNfY291bnQ6IHNpemUgb2YgbGltaXRzIGFycmF5IChp biBlbnRyaWVzKSAvIG51bWJlciBvZiBmaWxsZWQgZW50cmllcworICoJCSAoc2V0IGJ5IGRyaXZl cikKKyAqIEBsaW1pdHNfcHRyOiBwb2ludGVyIHRvIGxpbWl0cyBhcnJheSBvciBOVUxMCisgKi8K K3N0cnVjdCBkcm1fZXh5bm9zX2lvY3RsX2lwcF9nZXRfbGltaXRzIHsKKwlfX3UzMiBpcHBfaWQ7 CisJX191MzIgZm91cmNjOworCV9fdTY0IG1vZGlmaWVyOworCV9fdTMyIHR5cGU7CisJX191MzIg bGltaXRzX2NvdW50OworCV9fdTY0IGxpbWl0c19wdHI7Cit9OworCitlbnVtIGRybV9leHlub3Nf aXBwX3Rhc2tfaWQgeworCS8qIGJ1ZmZlciBkZXNjcmliZWQgYnkgc3RydWN0IGRybV9leHlub3Nf aXBwX3Rhc2tfYnVmZmVyICovCisJRFJNX0VYWU5PU19JUFBfVEFTS19CVUZGRVIJCT0gMHgwMDAx LAorCS8qIHJlY3RhbmdsZSBkZXNjcmliZWQgYnkgc3RydWN0IGRybV9leHlub3NfaXBwX3Rhc2tf cmVjdCAqLworCURSTV9FWFlOT1NfSVBQX1RBU0tfUkVDVEFOR0xFCQk9IDB4MDAwMiwKKwkvKiB0 cmFuc2Zvcm1hdGlvbiBkZXNjcmliZWQgYnkgc3RydWN0IGRybV9leHlub3NfaXBwX3Rhc2tfdHJh bnNmb3JtICovCisJRFJNX0VYWU5PU19JUFBfVEFTS19UUkFOU0ZPUk0JCT0gMHgwMDAzLAorCS8q IGFscGhhIGNvbmZpZ3VyYXRpb24gZGVzY3JpYmVkIGJ5IHN0cnVjdCBkcm1fZXh5bm9zX2lwcF90 YXNrX2FscGhhICovCisJRFJNX0VYWU5PU19JUFBfVEFTS19BTFBIQQkJPSAweDAwMDQsCisKKwkv KiBzb3VyY2UgaW1hZ2UgZGF0YSAoZm9yIGJ1ZmZlciBhbmQgcmVjdGFuZ2xlIGNodW5rcykgKi8K KwlEUk1fRVhZTk9TX0lQUF9UQVNLX1RZUEVfU09VUkNFCQk9IDB4MDAwMSA8PCAxNiwKKwkvKiBk ZXN0aW5hdGlvbiBpbWFnZSBkYXRhIChmb3IgYnVmZmVyIGFuZCByZWN0YW5nbGUgY2h1bmtzKSAq LworCURSTV9FWFlOT1NfSVBQX1RBU0tfVFlQRV9ERVNUSU5BVElPTgk9IDB4MDAwMiA8PCAxNiwK K307CisKKy8qKgorICogTWVtb3J5IGJ1ZmZlciB3aXRoIGltYWdlIGRhdGEuCisgKgorICogQGlk OiBtdXN0IGJlIERSTV9FWFlOT1NfSVBQX1RBU0tfQlVGRkVSCisgKiBvdGhlciBwYXJhbWV0ZXJz IGFyZSBzYW1lIGFzIGZvciBBZGRGQjIgZ2VuZXJpYyBEUk0gaW9jdGwKKyAqLworc3RydWN0IGRy bV9leHlub3NfaXBwX3Rhc2tfYnVmZmVyIHsKKwlfX3UzMglpZDsKKwlfX3UzMglmb3VyY2M7CisJ X191MzIJd2lkdGgsIGhlaWdodDsKKwlfX3UzMglnZW1faWRbNF07CisJX191MzIJb2Zmc2V0WzRd OworCV9fdTMyCXBpdGNoWzRdOworCV9fdTY0CW1vZGlmaWVyOworfTsKKworLyoqCisgKiBSZWN0 YW5nbGUgZm9yIHByb2Nlc3NpbmcuCisgKgorICogQGlkOiBtdXN0IGJlIERSTV9FWFlOT1NfSVBQ X1RBU0tfUkVDVEFOR0xFCisgKiBAcmVzZXJ2ZWQ6IHBhZGRpbmcKKyAqIEB4LEB5OiBsZWZ0IGNv cm5lciBpbiBwaXhlbHMKKyAqIEB3LEBoOiB3aWR0aC9oZWlnaHQgaW4gcGl4ZWxzCisgKi8KK3N0 cnVjdCBkcm1fZXh5bm9zX2lwcF90YXNrX3JlY3QgeworCV9fdTMyCWlkOworCV9fdTMyCXJlc2Vy dmVkOworCV9fdTMyCXg7CisJX191MzIJeTsKKwlfX3UzMgl3OworCV9fdTMyCWg7Cit9OworCisv KioKKyAqIEltYWdlIHRyYW5mb3JtYXRpb24gZGVzY3JpcHRpb24uCisgKgorICogQGlkOiBtdXN0 IGJlIERSTV9FWFlOT1NfSVBQX1RBU0tfVFJBTlNGT1JNCisgKiBAcm90YXRpb246IERSTV9NT0RF X1JPVEFURV8qIGFuZCBEUk1fTU9ERV9SRUZMRUNUXyogdmFsdWVzCisgKi8KK3N0cnVjdCBkcm1f ZXh5bm9zX2lwcF90YXNrX3RyYW5zZm9ybSB7CisJX191MzIJaWQ7CisJX191MzIJcm90YXRpb247 Cit9OworCisvKioKKyAqIEltYWdlIGdsb2JhbCBhbHBoYSBjb25maWd1cmF0aW9uIGZvciBmb3Jt YXRzIHdpdGhvdXQgYWxwaGEgdmFsdWVzLgorICoKKyAqIEBpZDogbXVzdCBiZSBEUk1fRVhZTk9T X0lQUF9UQVNLX0FMUEhBCisgKiBAdmFsdWU6IGdsb2JhbCBhbHBoYSB2YWx1ZSAoMC0yNTUpCisg Ki8KK3N0cnVjdCBkcm1fZXh5bm9zX2lwcF90YXNrX2FscGhhIHsKKwlfX3UzMglpZDsKKwlfX3Uz Mgl2YWx1ZTsKK307CisKK2VudW0gZHJtX2V4eW5vc19pcHBfZmxhZyB7CisJLyogZ2VuZXJhdGUg RFJNIGV2ZW50IGFmdGVyIHByb2Nlc3NpbmcgKi8KKwlEUk1fRVhZTk9TX0lQUF9GTEFHX0VWRU5U CT0gMHgwMSwKKwkvKiBkcnkgcnVuLCBvbmx5IGNoZWNrIHRhc2sgcGFyYW1ldGVycyAqLworCURS TV9FWFlOT1NfSVBQX0ZMQUdfVEVTVF9PTkxZCT0gMHgwMiwKKwkvKiBub24tYmxvY2tpbmcgcHJv Y2Vzc2luZyAqLworCURSTV9FWFlOT1NfSVBQX0ZMQUdfTk9OQkxPQ0sJPSAweDA0LAorfTsKKwor I2RlZmluZSBEUk1fRVhZTk9TX0lQUF9GTEFHUyAoRFJNX0VYWU5PU19JUFBfRkxBR19FVkVOVCB8 XAorCQlEUk1fRVhZTk9TX0lQUF9GTEFHX1RFU1RfT05MWSB8IERSTV9FWFlOT1NfSVBQX0ZMQUdf Tk9OQkxPQ0spCisKKy8qKgorICogUGVyZm9ybSBpbWFnZSBwcm9jZXNzaW5nIGRlc2NyaWJlZCBi eSBhcnJheSBvZiBkcm1fZXh5bm9zX2lwcF90YXNrXyoKKyAqIHN0cnVjdHVyZXMgKHBhcmFtZXRl cnMgYXJyYXkpLgorICoKKyAqIEBpcHBfaWQ6IGlkIG9mIElQUCBtb2R1bGUgdG8gcnVuIHRoZSB0 YXNrCisgKiBAZmxhZ3M6IGJpdG1hc2sgb2YgZHJtX2V4eW5vc19pcHBfZmxhZyB2YWx1ZXMKKyAq IEByZXNlcnZlZDogcGFkZGluZworICogQHBhcmFtc19zaXplOiBzaXplIG9mIHBhcmFtZXRlcnMg YXJyYXkgKGluIGJ5dGVzKQorICogQHBhcmFtc19wdHI6IHBvaW50ZXIgdG8gcGFyYW1ldGVycyBh cnJheSBvciBOVUxMCisgKiBAdXNlcl9kYXRhOiAob3B0aW9uYWwpIGRhdGEgZm9yIGRybSBldmVu dAorICovCitzdHJ1Y3QgZHJtX2V4eW5vc19pb2N0bF9pcHBfY29tbWl0IHsKKwlfX3UzMiBpcHBf aWQ7CisJX191MzIgZmxhZ3M7CisJX191MzIgcmVzZXJ2ZWQ7CisJX191MzIgcGFyYW1zX3NpemU7 CisJX191NjQgcGFyYW1zX3B0cjsKKwlfX3U2NCB1c2VyX2RhdGE7Cit9OworCiAjZGVmaW5lIERS TV9FWFlOT1NfR0VNX0NSRUFURQkJMHgwMAogI2RlZmluZSBEUk1fRVhZTk9TX0dFTV9NQVAJCTB4 MDEKIC8qIFJlc2VydmVkIDB4MDMgfiAweDA1IGZvciBleHlub3Mgc3BlY2lmaWMgZ2VtIGlvY3Rs ICovCkBAIC0xNDcsNiArMzYwLDExIEBAIHN0cnVjdCBkcm1fZXh5bm9zX2cyZF9leGVjIHsKICNk ZWZpbmUgRFJNX0VYWU5PU19HMkRfRVhFQwkJMHgyMgogCiAvKiBSZXNlcnZlZCAweDMwIH4gMHgz MyBmb3Igb2Jzb2xldGUgRXh5bm9zIElQUCBpb2N0bHMgKi8KKy8qIElQUCAtIEltYWdlIFBvc3Qg UHJvY2Vzc2luZyAqLworI2RlZmluZSBEUk1fRVhZTk9TX0lQUF9HRVRfUkVTT1VSQ0VTCTB4NDAK KyNkZWZpbmUgRFJNX0VYWU5PU19JUFBfR0VUX0NBUFMJCTB4NDEKKyNkZWZpbmUgRFJNX0VYWU5P U19JUFBfR0VUX0xJTUlUUwkweDQyCisjZGVmaW5lIERSTV9FWFlOT1NfSVBQX0NPTU1JVAkJMHg0 MwogCiAjZGVmaW5lIERSTV9JT0NUTF9FWFlOT1NfR0VNX0NSRUFURQkJRFJNX0lPV1IoRFJNX0NP TU1BTkRfQkFTRSArIFwKIAkJRFJNX0VYWU5PU19HRU1fQ1JFQVRFLCBzdHJ1Y3QgZHJtX2V4eW5v c19nZW1fY3JlYXRlKQpAQCAtMTY1LDggKzM4MywyMCBAQCBzdHJ1Y3QgZHJtX2V4eW5vc19nMmRf ZXhlYyB7CiAjZGVmaW5lIERSTV9JT0NUTF9FWFlOT1NfRzJEX0VYRUMJCURSTV9JT1dSKERSTV9D T01NQU5EX0JBU0UgKyBcCiAJCURSTV9FWFlOT1NfRzJEX0VYRUMsIHN0cnVjdCBkcm1fZXh5bm9z X2cyZF9leGVjKQogCisjZGVmaW5lIERSTV9JT0NUTF9FWFlOT1NfSVBQX0dFVF9SRVNPVVJDRVMJ RFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIFwKKwkJRFJNX0VYWU5PU19JUFBfR0VUX1JFU09V UkNFUywgXAorCQlzdHJ1Y3QgZHJtX2V4eW5vc19pb2N0bF9pcHBfZ2V0X3JlcykKKyNkZWZpbmUg RFJNX0lPQ1RMX0VYWU5PU19JUFBfR0VUX0NBUFMJCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0Ug KyBcCisJCURSTV9FWFlOT1NfSVBQX0dFVF9DQVBTLCBzdHJ1Y3QgZHJtX2V4eW5vc19pb2N0bF9p cHBfZ2V0X2NhcHMpCisjZGVmaW5lIERSTV9JT0NUTF9FWFlOT1NfSVBQX0dFVF9MSU1JVFMJCURS TV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBcCisJCURSTV9FWFlOT1NfSVBQX0dFVF9MSU1JVFMs IFwKKwkJc3RydWN0IGRybV9leHlub3NfaW9jdGxfaXBwX2dldF9saW1pdHMpCisjZGVmaW5lIERS TV9JT0NUTF9FWFlOT1NfSVBQX0NPTU1JVAkJRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIFwK KwkJRFJNX0VYWU5PU19JUFBfQ09NTUlULCBzdHJ1Y3QgZHJtX2V4eW5vc19pb2N0bF9pcHBfY29t bWl0KQorCiAvKiBFWFlOT1Mgc3BlY2lmaWMgZXZlbnRzICovCiAjZGVmaW5lIERSTV9FWFlOT1Nf RzJEX0VWRU5UCQkweDgwMDAwMDAwCisjZGVmaW5lIERSTV9FWFlOT1NfSVBQX0VWRU5UCQkweDgw MDAwMDAyCiAKIHN0cnVjdCBkcm1fZXh5bm9zX2cyZF9ldmVudCB7CiAJc3RydWN0IGRybV9ldmVu dAliYXNlOwpAQCAtMTc3LDYgKzQwNywxNiBAQCBzdHJ1Y3QgZHJtX2V4eW5vc19nMmRfZXZlbnQg ewogCV9fdTMyCQkJcmVzZXJ2ZWQ7CiB9OwogCitzdHJ1Y3QgZHJtX2V4eW5vc19pcHBfZXZlbnQg eworCXN0cnVjdCBkcm1fZXZlbnQJYmFzZTsKKwlfX3U2NAkJCXVzZXJfZGF0YTsKKwlfX3UzMgkJ CXR2X3NlYzsKKwlfX3UzMgkJCXR2X3VzZWM7CisJX191MzIJCQlpcHBfaWQ7CisJX191MzIJCQlz ZXF1ZW5jZTsKKwlfX3U2NAkJCXJlc2VydmVkOworfTsKKwogI2lmIGRlZmluZWQoX19jcGx1c3Bs dXMpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtLXVhcGkvaTkxNV9kcm0uaCBi L2luY2x1ZGUvZHJtLXVhcGkvaTkxNV9kcm0uaAppbmRleCAxNmU0NTJhYTEyZDQuLmIxNGNhOTY5 NWYxZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0tdWFwaS9pOTE1X2RybS5oCisrKyBiL2luY2x1 ZGUvZHJtLXVhcGkvaTkxNV9kcm0uaApAQCAtNjIsNiArNjIsMjYgQEAgZXh0ZXJuICJDIiB7CiAj ZGVmaW5lIEk5MTVfRVJST1JfVUVWRU5UCQkiRVJST1IiCiAjZGVmaW5lIEk5MTVfUkVTRVRfVUVW RU5UCQkiUkVTRVQiCiAKKy8qCisgKiBpOTE1X3VzZXJfZXh0ZW5zaW9uOiBCYXNlIGNsYXNzIGZv ciBkZWZpbmluZyBhIGNoYWluIG9mIGV4dGVuc2lvbnMKKyAqCisgKiBNYW55IGludGVyZmFjZXMg bmVlZCB0byBncm93IG92ZXIgdGltZS4gSW4gbW9zdCBjYXNlcyB3ZSBjYW4gc2ltcGx5CisgKiBl eHRlbmQgdGhlIHN0cnVjdCBhbmQgaGF2ZSB1c2Vyc3BhY2UgcGFzcyBpbiBtb3JlIGRhdGEuIEFu b3RoZXIgb3B0aW9uLAorICogYXMgZGVtb25zdHJhdGVkIGJ5IFZ1bGthbidzIGFwcHJvYWNoIHRv IHByb3ZpZGluZyBleHRlbnNpb25zIGZvciBmb3J3YXJkCisgKiBhbmQgYmFja3dhcmQgY29tcGF0 aWJpbGl0eSwgaXMgdG8gdXNlIGEgbGlzdCBvZiBvcHRpb25hbCBzdHJ1Y3RzIHRvCisgKiBwcm92 aWRlIHRob3NlIGV4dHJhIGRldGFpbHMuCisgKgorICogVGhlIGtleSBhZHZhbnRhZ2UgdG8gdXNp bmcgYW4gZXh0ZW5zaW9uIGNoYWluIGlzIHRoYXQgaXQgYWxsb3dzIHVzIHRvCisgKiByZWRlZmlu ZSB0aGUgaW50ZXJmYWNlIG1vcmUgZWFzaWx5IHRoYW4gYW4gZXZlciBncm93aW5nIHN0cnVjdCBv ZgorICogaW5jcmVhc2luZyBjb21wbGV4aXR5LCBhbmQgZm9yIGxhcmdlIHBhcnRzIG9mIHRoYXQg aW50ZXJmYWNlIHRvIGJlCisgKiBlbnRpcmVseSBvcHRpb25hbC4gVGhlIGRvd25zaWRlIGlzIG1v cmUgcG9pbnRlciBjaGFzaW5nOyBjaGFzaW5nIGFjcm9zcworICogdGhlIGJvdW5kYXJ5IHdpdGgg cG9pbnRlcnMgZW5jYXBzdWxhdGVkIGluc2lkZSB1NjQuCisgKi8KK3N0cnVjdCBpOTE1X3VzZXJf ZXh0ZW5zaW9uIHsKKwlfX3U2NCBuZXh0X2V4dGVuc2lvbjsKKwlfX3U2NCBuYW1lOworfTsKKwog LyoKICAqIE1PQ1MgaW5kZXhlcyB1c2VkIGZvciBHUFUgc3VyZmFjZXMsIGRlZmluaW5nIHRoZSBj YWNoZWFiaWxpdHkgb2YgdGhlCiAgKiBzdXJmYWNlIGRhdGEgYW5kIHRoZSBjb2hlcmVuY3kgZm9y IHRoaXMgZGF0YSB3cnQuIENQVSB2cy4gR1BVIGFjY2Vzc2VzLgpAQCAtMzY3LDYgKzM4Nyw3IEBA IHR5cGVkZWYgc3RydWN0IF9kcm1faTkxNV9zYXJlYSB7CiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1 X0dFVF9TUFJJVEVfQ09MT1JLRVkgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1 X0dFVF9TUFJJVEVfQ09MT1JLRVksIHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5KQog I2RlZmluZSBEUk1fSU9DVExfSTkxNV9HRU1fV0FJVAkJRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFT RSArIERSTV9JOTE1X0dFTV9XQUlULCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3dhaXQpCiAjZGVmaW5l IERSTV9JT0NUTF9JOTE1X0dFTV9DT05URVhUX0NSRUFURQlEUk1fSU9XUiAoRFJNX0NPTU1BTkRf QkFTRSArIERSTV9JOTE1X0dFTV9DT05URVhUX0NSRUFURSwgc3RydWN0IGRybV9pOTE1X2dlbV9j b250ZXh0X2NyZWF0ZSkKKyNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0NPTlRFWFRfQ1JFQVRF X3YyCURSTV9JT1dSIChEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0NPTlRFWFRfQ1JF QVRFLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX3YyKQogI2RlZmluZSBEUk1f SU9DVExfSTkxNV9HRU1fQ09OVEVYVF9ERVNUUk9ZCURSTV9JT1cgKERSTV9DT01NQU5EX0JBU0Ug KyBEUk1fSTkxNV9HRU1fQ09OVEVYVF9ERVNUUk9ZLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRl eHRfZGVzdHJveSkKICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfUkVHX1JFQUQJCQlEUk1fSU9XUiAo RFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X1JFR19SRUFELCBzdHJ1Y3QgZHJtX2k5MTVfcmVn X3JlYWQpCiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dFVF9SRVNFVF9TVEFUUwkJRFJNX0lPV1Ig KERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRVRfUkVTRVRfU1RBVFMsIHN0cnVjdCBkcm1f aTkxNV9yZXNldF9zdGF0cykKQEAgLTQxMiw2ICs0MzMsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgZHJt X2k5MTVfaXJxX3dhaXQgewogCWludCBpcnFfc2VxOwogfSBkcm1faTkxNV9pcnFfd2FpdF90Owog CisvKgorICogRGlmZmVyZW50IG1vZGVzIG9mIHBlci1wcm9jZXNzIEdyYXBoaWNzIFRyYW5zbGF0 aW9uIFRhYmxlLAorICogc2VlIEk5MTVfUEFSQU1fSEFTX0FMSUFTSU5HX1BQR1RUCisgKi8KKyNk ZWZpbmUgSTkxNV9HRU1fUFBHVFRfTk9ORQkwCisjZGVmaW5lIEk5MTVfR0VNX1BQR1RUX0FMSUFT SU5HCTEKKyNkZWZpbmUgSTkxNV9HRU1fUFBHVFRfRlVMTAkyCisKIC8qIElvY3RsIHRvIHF1ZXJ5 IGtlcm5lbCBwYXJhbXM6CiAgKi8KICNkZWZpbmUgSTkxNV9QQVJBTV9JUlFfQUNUSVZFICAgICAg ICAgICAgMQpAQCAtNTI5LDYgKzU1OCwzNSBAQCB0eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9pcnFf d2FpdCB7CiAgKi8KICNkZWZpbmUgSTkxNV9QQVJBTV9DU19USU1FU1RBTVBfRlJFUVVFTkNZIDUx CiAKKy8qCisgKiBPbmNlIHVwb24gYSB0aW1lIHdlIHN1cHBvc2VkIHRoYXQgd3JpdGVzIHRocm91 Z2ggdGhlIEdHVFQgd291bGQgYmUKKyAqIGltbWVkaWF0ZWx5IGluIHBoeXNpY2FsIG1lbW9yeSAo b25jZSBmbHVzaGVkIG91dCBvZiB0aGUgQ1BVIHBhdGgpLiBIb3dldmVyLAorICogb24gYSBmZXcg ZGlmZmVyZW50IHByb2Nlc3NvcnMgYW5kIGNoaXBzZXRzLCB0aGlzIGlzIG5vdCBuZWNlc3Nhcmls eSB0aGUgY2FzZQorICogYXMgdGhlIHdyaXRlcyBhcHBlYXIgdG8gYmUgYnVmZmVyZWQgaW50ZXJu YWxseS4gVGh1cyBhIHJlYWQgb2YgdGhlIGJhY2tpbmcKKyAqIHN0b3JhZ2UgKHBoeXNpY2FsIG1l bW9yeSkgdmlhIGEgZGlmZmVyZW50IHBhdGggKHdpdGggZGlmZmVyZW50IHBoeXNpY2FsIHRhZ3MK KyAqIHRvIHRoZSBpbmRpcmVjdCB3cml0ZSB2aWEgdGhlIEdHVFQpIHdpbGwgc2VlIHN0YWxlIHZh bHVlcyBmcm9tIGJlZm9yZQorICogdGhlIEdHVFQgd3JpdGUuIEluc2lkZSB0aGUga2VybmVsLCB3 ZSBjYW4gZm9yIHRoZSBtb3N0IHBhcnQga2VlcCB0cmFjayBvZgorICogdGhlIGRpZmZlcmVudCBy ZWFkL3dyaXRlIGRvbWFpbnMgaW4gdXNlIChlLmcuIHNldC1kb21haW4pLCBidXQgdGhlIGFzc3Vt cHRpb24KKyAqIG9mIGNvaGVyZW5jeSBpcyBiYWtlZCBpbnRvIHRoZSBBQkksIGhlbmNlIHJlcG9y dGluZyBpdHMgdHJ1ZSBzdGF0ZSBpbiB0aGlzCisgKiBwYXJhbWV0ZXIuCisgKgorICogUmVwb3J0 cyB0cnVlIHdoZW4gd3JpdGVzIHZpYSBtbWFwX2d0dCBhcmUgaW1tZWRpYXRlbHkgdmlzaWJsZSBm b2xsb3dpbmcgYW4KKyAqIGxmZW5jZSB0byBmbHVzaCB0aGUgV0NCLgorICoKKyAqIFJlcG9ydHMg ZmFsc2Ugd2hlbiB3cml0ZXMgdmlhIG1tYXBfZ3R0IGFyZSBpbmRldGVybWluYXRlbHkgZGVsYXll ZCBpbiBhbiBpbgorICogaW50ZXJuYWwgYnVmZmVyIGFuZCBhcmUgX25vdF8gaW1tZWRpYXRlbHkg dmlzaWJsZSB0byB0aGlyZCBwYXJ0aWVzIGFjY2Vzc2luZworICogZGlyZWN0bHkgdmlhIG1tYXBf Y3B1L21tYXBfd2MuIFVzZSBvZiBtbWFwX2d0dCBhcyBwYXJ0IG9mIGFuIElQQworICogY29tbXVu aWNhdGlvbnMgY2hhbm5lbCB3aGVuIHJlcG9ydGluZyBmYWxzZSBpcyBzdHJvbmdseSBkaXNhZHZp c2VkLgorICovCisjZGVmaW5lIEk5MTVfUEFSQU1fTU1BUF9HVFRfQ09IRVJFTlQJNTIKKworLyoK KyAqIFF1ZXJ5IHdoZXRoZXIgRFJNX0k5MTVfR0VNX0VYRUNCVUZGRVIyIHN1cHBvcnRzIGNvb3Jk aW5hdGlvbiBvZiBwYXJhbGxlbAorICogZXhlY3V0aW9uIHRocm91Z2ggdXNlIG9mIGV4cGxpY2l0 IGZlbmNlIHN1cHBvcnQuCisgKiBTZWUgSTkxNV9FWEVDX0ZFTkNFX09VVCBhbmQgSTkxNV9FWEVD X0ZFTkNFX1NVQk1JVC4KKyAqLworI2RlZmluZSBJOTE1X1BBUkFNX0hBU19FWEVDX1NVQk1JVF9G RU5DRSA1MworCiB0eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9nZXRwYXJhbSB7CiAJX19zMzIgcGFy YW07CiAJLyoKQEAgLTk0Miw3ICsxMDAwLDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVm ZmVyMiB7CiAJICogc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX2ZlbmNlICpmZW5jZXMuCiAJICov CiAJX191NjQgY2xpcHJlY3RzX3B0cjsKLSNkZWZpbmUgSTkxNV9FWEVDX1JJTkdfTUFTSyAgICAg ICAgICAgICAgKDc8PDApCisjZGVmaW5lIEk5MTVfRVhFQ19SSU5HX01BU0sgICAgICAgICAgICAg ICgweDNmKQogI2RlZmluZSBJOTE1X0VYRUNfREVGQVVMVCAgICAgICAgICAgICAgICAoMDw8MCkK ICNkZWZpbmUgSTkxNV9FWEVDX1JFTkRFUiAgICAgICAgICAgICAgICAgKDE8PDApCiAjZGVmaW5l IEk5MTVfRVhFQ19CU0QgICAgICAgICAgICAgICAgICAgICgyPDwwKQpAQCAtMTA0OCw3ICsxMTA2 LDE2IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgewogICovCiAjZGVmaW5lIEk5 MTVfRVhFQ19GRU5DRV9BUlJBWSAgICgxPDwxOSkKIAotI2RlZmluZSBfX0k5MTVfRVhFQ19VTktO T1dOX0ZMQUdTICgtKEk5MTVfRVhFQ19GRU5DRV9BUlJBWTw8MSkpCisvKgorICogU2V0dGluZyBJ OTE1X0VYRUNfRkVOQ0VfU1VCTUlUIGltcGxpZXMgdGhhdCBsb3dlcl8zMl9iaXRzKHJzdmQyKSBy ZXByZXNlbnQKKyAqIGEgc3luY19maWxlIGZkIHRvIHdhaXQgdXBvbiAoaW4gYSBub25ibG9ja2lu ZyBtYW5uZXIpIHByaW9yIHRvIGV4ZWN1dGluZworICogdGhlIGJhdGNoLgorICoKKyAqIFJldHVy bnMgLUVJTlZBTCBpZiB0aGUgc3luY19maWxlIGZkIGNhbm5vdCBiZSBmb3VuZC4KKyAqLworI2Rl ZmluZSBJOTE1X0VYRUNfRkVOQ0VfU1VCTUlUCQkoMTw8MjApCisKKyNkZWZpbmUgX19JOTE1X0VY RUNfVU5LTk9XTl9GTEFHUyAoLShJOTE1X0VYRUNfRkVOQ0VfU1VCTUlUPDwxKSkKIAogI2RlZmlu ZSBJOTE1X0VYRUNfQ09OVEVYVF9JRF9NQVNLCSgweGZmZmZmZmZmKQogI2RlZmluZSBpOTE1X2V4 ZWNidWZmZXIyX3NldF9jb250ZXh0X2lkKGViMiwgY29udGV4dCkgXApAQCAtMTM4Nyw2ICsxNDU0 LDE2IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9jcmVhdGUgewogCV9fdTMyIHBhZDsK IH07CiAKK3N0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9jcmVhdGVfdjIgeworCS8qICBvdXRw dXQ6IGlkIG9mIG5ldyBjb250ZXh0Ki8KKwlfX3UzMiBjdHhfaWQ7CisJX191MzIgZmxhZ3M7Cisj ZGVmaW5lIEk5MTVfR0VNX0NPTlRFWFRfU0hBUkVfR1RUCQkweDEKKyNkZWZpbmUgSTkxNV9HRU1f Q09OVEVYVF9TSU5HTEVfVElNRUxJTkUJMHgyCisJX191MzIgc2hhcmVfY3R4OworCV9fdTMyIHBh ZDsKK307CisKIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9kZXN0cm95IHsKIAlfX3UzMiBj dHhfaWQ7CiAJX191MzIgcGFkOwpAQCAtMTQ1Niw5ICsxNTMzLDEyMiBAQCBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX2NvbnRleHRfcGFyYW0gewogI2RlZmluZSAgIEk5MTVfQ09OVEVYVF9NQVhfVVNFUl9Q UklPUklUWQkxMDIzIC8qIGluY2x1c2l2ZSAqLwogI2RlZmluZSAgIEk5MTVfQ09OVEVYVF9ERUZB VUxUX1BSSU9SSVRZCQkwCiAjZGVmaW5lICAgSTkxNV9DT05URVhUX01JTl9VU0VSX1BSSU9SSVRZ CS0xMDIzIC8qIGluY2x1c2l2ZSAqLworCisvKgorICogSTkxNV9DT05URVhUX1BBUkFNX0VOR0lO RVM6CisgKgorICogQmluZCB0aGlzIGNvbnRleHQgdG8gb3BlcmF0ZSBvbiB0aGlzIHN1YnNldCBv ZiBhdmFpbGFibGUgZW5naW5lcy4gSGVuY2Vmb3J0aCwKKyAqIHRoZSBJOTE1X0VYRUNfUklORyBz ZWxlY3RvciBmb3IgRFJNX0lPQ1RMX0k5MTVfR0VNX0VYRUNCVUZGRVIyIG9wZXJhdGVzIGFzCisg KiBhbiBpbmRleCBpbnRvIHRoaXMgYXJyYXkgb2YgZW5naW5lczsgSTkxNV9FWEVDX0RFRkFVTFQg c2VsZWN0aW5nIGVuZ2luZVswXQorICogYW5kIHVwd2FyZHMuIFRoZSBhcnJheSBjcmVhdGVkIGlz IG9mZnNldCBieSAxLCBzdWNoIHRoYXQgYnkgZGVmYXVsdAorICogSTkxNV9FWEVDX0RFRkFVTFQg aXMgbGVmdCBlbXB0eSwgdG8gYmUgZmlsbGVkIGluIGFzIGRpcmVjdGVkLiBTbG90cyAxLi4uTgor ICogYXJlIHRoZW4gZmlsbGVkIGluIHVzaW5nIHRoZSBzcGVjaWZpZWQgKGNsYXNzLCBpbnN0YW5j ZSkuCisgKgorICogU2V0dGluZyB0aGUgbnVtYmVyIG9mIGVuZ2luZXMgYm91bmQgdG8gdGhlIGNv bnRleHQgd2lsbCByZXZlcnQgYmFjayB0bworICogZGVmYXVsdCBzZXR0aW5ncy4KKyAqCisgKiBT ZWUgc3RydWN0IGk5MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzLgorICoKKyAqIEV4dGVuc2lvbnM6 CisgKiAgIGk5MTVfY29udGV4dF9lbmdpbmVzX2xvYWRfYmFsYW5jZSAoSTkxNV9DT05URVhUX0VO R0lORVNfRVhUX0xPQURfQkFMQU5DRSkKKyAqICAgaTkxNV9jb250ZXh0X2VuZ2luZXNfYm9uZCAo STkxNV9DT05URVhUX0VOR0lORVNfRVhUX0JPTkQpCisgKi8KKyNkZWZpbmUgSTkxNV9DT05URVhU X1BBUkFNX0VOR0lORVMJMHg3CisKKy8qCisgKiBXaGVuIHVzaW5nIHRoZSBmb2xsb3dpbmcgcGFy YW0sIHZhbHVlIHNob3VsZCBiZSBhIHBvaW50ZXIgdG8KKyAqIGRybV9pOTE1X2dlbV9jb250ZXh0 X3BhcmFtX3NzZXUuCisgKi8KKyNkZWZpbmUgSTkxNV9DT05URVhUX1BBUkFNX1NTRVUJCTB4OAor CiAJX191NjQgdmFsdWU7CiB9OwogCisvKgorICogaTkxNV9jb250ZXh0X2VuZ2luZXNfbG9hZF9i YWxhbmNlOgorICoKKyAqIEVuYWJsZSBsb2FkIGJhbGFuY2luZyBhY3Jvc3MgdGhpcyBzZXQgb2Yg ZW5naW5lcy4KKyAqCisgKiBJbnRvIHRoZSBJOTE1X0VYRUNfREVGQVVMVCBzbG90LCBhIHZpcnR1 YWwgZW5naW5lIGlzIGNyZWF0ZWQgdGhhdCB3aGVuCisgKiB1c2VkIHdpbGwgcHJveHkgdGhlIGV4 ZWNidWZmZXIgcmVxdWVzdCBvbnRvIG9uZSBvZiB0aGUgc2V0IG9mIGVuZ2luZXMKKyAqIGluIHN1 Y2ggYSB3YXkgYXMgdG8gZGlzdHJpYnV0ZSB0aGUgbG9hZCBldmVubHkgYWNyb3NzIHRoZSBzZXQu CisgKgorICogVGhlIHNldCBvZiBlbmdpbmVzIG11c3QgYmUgY29tcGF0aWJsZSAoZS5nLiB0aGUg c2FtZSBIVyBjbGFzcykgYXMgdGhleQorICogd2lsbCBzaGFyZSB0aGUgc2FtZSBsb2dpY2FsIEdQ VSBjb250ZXh0IGFuZCByaW5nLgorICoKKyAqIFRoZSBjb250ZXh0IG11c3QgYmUgZGVmaW5lZCB0 byB1c2UgYSBzaW5nbGUgdGltZWxpbmUgZm9yIGFsbCBlbmdpbmVzLgorICovCitzdHJ1Y3QgaTkx NV9jb250ZXh0X2VuZ2luZXNfbG9hZF9iYWxhbmNlIHsKKwlzdHJ1Y3QgaTkxNV91c2VyX2V4dGVu c2lvbiBiYXNlOworCisJX191NjQgZmxhZ3M7IC8qIGFsbCB1bmRlZmluZWQgZmxhZ3MgbXVzdCBi ZSB6ZXJvICovCisJX191NjQgZW5naW5lc19tYXNrOworCisJX191NjQgbWJ6WzRdOyAvKiByZXNl cnZlZCBmb3IgZnV0dXJlIHVzZTsgbXVzdCBiZSB6ZXJvICovCit9OworCisvKgorICogaTkxNV9j b250ZXh0X2VuZ2luZXNfYm9uZDoKKyAqCisgKi8KK3N0cnVjdCBpOTE1X2NvbnRleHRfZW5naW5l c19ib25kIHsKKwlzdHJ1Y3QgaTkxNV91c2VyX2V4dGVuc2lvbiBiYXNlOworCisJX191MTYgbWFz dGVyX2NsYXNzOworCV9fdTE2IG1hc3Rlcl9pbnN0YW5jZTsKKwlfX3UzMiBmbGFnczsgLyogYWxs IHVuZGVmaW5lZCBmbGFncyBtdXN0IGJlIHplcm8gKi8KKwlfX3U2NCBzaWJsaW5nX21hc2s7Cit9 OworCitzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2VuZ2luZXMgeworCV9fdTY0IGV4dGVuc2lv bnM7CisjZGVmaW5lIEk5MTVfQ09OVEVYVF9FTkdJTkVTX0VYVF9MT0FEX0JBTEFOQ0UgMAorI2Rl ZmluZSBJOTE1X0NPTlRFWFRfRU5HSU5FU19FWFRfQk9ORCAxCisKKwlzdHJ1Y3QgeworCQlfX3Ux NiBjbGFzczsgLyogc2VlIGVudW0gZHJtX2k5MTVfZ2VtX2VuZ2luZV9jbGFzcyAqLworCQlfX3Ux NiBpbnN0YW5jZTsKKwl9IGNsYXNzX2luc3RhbmNlWzBdOworfTsKKworc3RydWN0IGRybV9pOTE1 X2dlbV9jb250ZXh0X3BhcmFtX3NzZXUgeworCS8qCisJICogRW5naW5lIGNsYXNzICYgaW5zdGFu Y2UgdG8gYmUgY29uZmlndXJlZCBvciBxdWVyaWVkLgorCSAqLworCV9fdTE2IGNsYXNzOworCV9f dTE2IGluc3RhbmNlOworCisJLyoKKwkgKiBVbnVzZWQgZm9yIG5vdy4gTXVzdCBiZSBjbGVhcmVk IHRvIHplcm8uCisJICovCisJX191MzIgcnN2ZDE7CisKKwkvKgorCSAqIE1hc2sgb2Ygc2xpY2Vz IHRvIGVuYWJsZSBmb3IgdGhlIGNvbnRleHQuIFZhbGlkIHZhbHVlcyBhcmUgYSBzdWJzZXQKKwkg KiBvZiB0aGUgYml0bWFzayB2YWx1ZSByZXR1cm5lZCBmb3IgSTkxNV9QQVJBTV9TTElDRV9NQVNL LgorCSAqLworCV9fdTY0IHNsaWNlX21hc2s7CisKKwkvKgorCSAqIE1hc2sgb2Ygc3Vic2xpY2Vz IHRvIGVuYWJsZSBmb3IgdGhlIGNvbnRleHQuIFZhbGlkIHZhbHVlcyBhcmUgYQorCSAqIHN1YnNl dCBvZiB0aGUgYml0bWFzayB2YWx1ZSByZXR1cm4gYnkgSTkxNV9QQVJBTV9TVUJTTElDRV9NQVNL LgorCSAqLworCV9fdTY0IHN1YnNsaWNlX21hc2s7CisKKwkvKgorCSAqIE1pbmltdW0vTWF4aW11 bSBudW1iZXIgb2YgRVVzIHRvIGVuYWJsZSBwZXIgc3Vic2xpY2UgZm9yIHRoZQorCSAqIGNvbnRl eHQuIG1pbl9ldXNfcGVyX3N1YnNsaWNlIG11c3QgYmUgaW5mZXJpb3Igb3IgZXF1YWwgdG8KKwkg KiBtYXhfZXVzX3Blcl9zdWJzbGljZS4KKwkgKi8KKwlfX3UxNiBtaW5fZXVzX3Blcl9zdWJzbGlj ZTsKKwlfX3UxNiBtYXhfZXVzX3Blcl9zdWJzbGljZTsKKworCS8qCisJICogVW51c2VkIGZvciBu b3cuIE11c3QgYmUgY2xlYXJlZCB0byB6ZXJvLgorCSAqLworCV9fdTMyIHJzdmQyOworfTsKKwog ZW51bSBkcm1faTkxNV9vYV9mb3JtYXQgewogCUk5MTVfT0FfRk9STUFUX0ExMyA9IDEsCSAgICAv KiBIU1cgb25seSAqLwogCUk5MTVfT0FfRk9STUFUX0EyOSwJICAgIC8qIEhTVyBvbmx5ICovCkBA IC0xNjIwLDYgKzE4MTAsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcGVyZl9vYV9jb25maWcgewogc3Ry dWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0gewogCV9fdTY0IHF1ZXJ5X2lkOwogI2RlZmluZSBEUk1f STkxNV9RVUVSWV9UT1BPTE9HWV9JTkZPICAgIDEKKyNkZWZpbmUgRFJNX0k5MTVfUVVFUllfRU5H SU5FX0lORk8JMgogCiAJLyoKIAkgKiBXaGVuIHNldCB0byB6ZXJvIGJ5IHVzZXJzcGFjZSwgdGhp cyBpcyBmaWxsZWQgd2l0aCB0aGUgc2l6ZSBvZiB0aGUKQEAgLTE3MTcsNiArMTkwOCw1MCBAQCBz dHJ1Y3QgZHJtX2k5MTVfcXVlcnlfdG9wb2xvZ3lfaW5mbyB7CiAJX191OCBkYXRhW107CiB9Owog CisvKioKKyAqIHN0cnVjdCBkcm1faTkxNV9lbmdpbmVfaW5mbworICoKKyAqIERlc2NyaWJlcyBv bmUgZW5naW5lIGFuZCBpdCdzIGNhcGFiaWxpdGllcyBhcyBrbm93biB0byB0aGUgZHJpdmVyLgor ICovCitzdHJ1Y3QgZHJtX2k5MTVfZW5naW5lX2luZm8geworCS8qKiBFbmdpbmUgY2xhc3MgYXMg aW4gZW51bSBkcm1faTkxNV9nZW1fZW5naW5lX2NsYXNzLiAqLworCV9fdTE2IGNsYXNzOworCisJ LyoqIEVuZ2luZSBpbnN0YW5jZSBudW1iZXIuICovCisJX191MTYgaW5zdGFuY2U7CisKKwkvKiog UmVzZXJ2ZWQgZmllbGQuICovCisJX191MzIgcnN2ZDA7CisKKwkvKiogRW5naW5lIGZsYWdzLiAq LworCV9fdTY0IGZsYWdzOworCisJLyoqIENhcGFiaWxpdGllcyBvZiB0aGlzIGVuZ2luZS4gKi8K KwlfX3U2NCBjYXBhYmlsaXRpZXM7CisjZGVmaW5lIEk5MTVfVklERU9fQ0xBU1NfQ0FQQUJJTElU WV9IRVZDCQkoMSA8PCAwKQorI2RlZmluZSBJOTE1X1ZJREVPX0FORF9FTkhBTkNFX0NMQVNTX0NB UEFCSUxJVFlfU0ZDCSgxIDw8IDEpCisKKwkvKiogUmVzZXJ2ZWQgZmllbGRzLiAqLworCV9fdTY0 IHJzdmQxWzRdOworfTsKKworLyoqCisgKiBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfZW5naW5lX2lu Zm8KKyAqCisgKiBFbmdpbmUgaW5mbyBxdWVyeSBlbnVtZXJhdGVzIGFsbCBlbmdpbmVzIGtub3du IHRvIHRoZSBkcml2ZXIgYnkgZmlsbGluZyBpbgorICogYW4gYXJyYXkgb2Ygc3RydWN0IGRybV9p OTE1X2VuZ2luZV9pbmZvIHN0cnVjdHVyZXMuCisgKi8KK3N0cnVjdCBkcm1faTkxNV9xdWVyeV9l bmdpbmVfaW5mbyB7CisJLyoqIE51bWJlciBvZiBzdHJ1Y3QgZHJtX2k5MTVfZW5naW5lX2luZm8g c3RydWN0cyBmb2xsb3dpbmcuICovCisJX191MzIgbnVtX2VuZ2luZXM7CisKKwkvKiogTUJaICov CisJX191MzIgcnN2ZFszXTsKKworCS8qKiBNYXJrZXIgZm9yIGRybV9pOTE1X2VuZ2luZV9pbmZv IHN0cnVjdHVyZXMuICovCisJc3RydWN0IGRybV9pOTE1X2VuZ2luZV9pbmZvIGVuZ2luZXNbXTsK K307CisKICNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9p bmNsdWRlL2RybS11YXBpL21zbV9kcm0uaCBiL2luY2x1ZGUvZHJtLXVhcGkvbXNtX2RybS5oCmlu ZGV4IGJiYmFmZmFkNzcyZC4uYzA2ZDBhNWJkZDgwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS11 YXBpL21zbV9kcm0uaAorKysgYi9pbmNsdWRlL2RybS11YXBpL21zbV9kcm0uaApAQCAtMjAxLDEw ICsyMDEsMTIgQEAgc3RydWN0IGRybV9tc21fZ2VtX3N1Ym1pdF9ibyB7CiAjZGVmaW5lIE1TTV9T VUJNSVRfTk9fSU1QTElDSVQgICAweDgwMDAwMDAwIC8qIGRpc2FibGUgaW1wbGljaXQgc3luYyAq LwogI2RlZmluZSBNU01fU1VCTUlUX0ZFTkNFX0ZEX0lOICAgMHg0MDAwMDAwMCAvKiBlbmFibGUg aW5wdXQgZmVuY2VfZmQgKi8KICNkZWZpbmUgTVNNX1NVQk1JVF9GRU5DRV9GRF9PVVQgIDB4MjAw MDAwMDAgLyogZW5hYmxlIG91dHB1dCBmZW5jZV9mZCAqLworI2RlZmluZSBNU01fU1VCTUlUX1NV RE8gICAgICAgICAgMHgxMDAwMDAwMCAvKiBydW4gc3VibWl0dGVkIGNtZHMgZnJvbSBSQiAqLwog I2RlZmluZSBNU01fU1VCTUlUX0ZMQUdTICAgICAgICAgICAgICAgICggXAogCQlNU01fU1VCTUlU X05PX0lNUExJQ0lUICAgfCBcCiAJCU1TTV9TVUJNSVRfRkVOQ0VfRkRfSU4gICB8IFwKIAkJTVNN X1NVQk1JVF9GRU5DRV9GRF9PVVQgIHwgXAorCQlNU01fU1VCTUlUX1NVRE8gICAgICAgICAgfCBc CiAJCTApCiAKIC8qIEVhY2ggY21kc3RyZWFtIHN1Ym1pdCBjb25zaXN0cyBvZiBhIHRhYmxlIG9m IGJ1ZmZlcnMgaW52b2x2ZWQsIGFuZApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0tdWFwaS9zeW5j X2ZpbGUuaCBiL2luY2x1ZGUvZHJtLXVhcGkvc3luY19maWxlLmgKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGI0ZjJkYjAwOTM0Ny4uMDAwMDAwMDAwMDAwCi0tLSBhL2luY2x1ZGUvZHJt LXVhcGkvc3luY19maWxlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBACi0vKiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTEuMCsgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi8K LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJbmMuCi0gKgotICogVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQotICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KLSAqCi0gKi8KLQotI2lmbmRlZiBfTElOVVhfU1lOQ19ICi0jZGVmaW5lIF9MSU5V WF9TWU5DX0gKLQotI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+Ci0jaW5jbHVkZSA8bGludXgvdHlw ZXMuaD4KLQotLyoqCi0gKiBzdHJ1Y3Qgc3luY19tZXJnZV9kYXRhIC0gZGF0YSBwYXNzZWQgdG8g bWVyZ2UgaW9jdGwKLSAqIEBuYW1lOgluYW1lIG9mIG5ldyBmZW5jZQotICogQGZkMjoJZmlsZSBk ZXNjcmlwdG9yIG9mIHNlY29uZCBmZW5jZQotICogQGZlbmNlOglyZXR1cm5zIHRoZSBmZCBvZiB0 aGUgbmV3IGZlbmNlIHRvIHVzZXJzcGFjZQotICogQGZsYWdzOgltZXJnZV9kYXRhIGZsYWdzCi0g KiBAcGFkOglwYWRkaW5nIGZvciA2NC1iaXQgYWxpZ25tZW50LCBzaG91bGQgYWx3YXlzIGJlIHpl cm8KLSAqLwotc3RydWN0IHN5bmNfbWVyZ2VfZGF0YSB7Ci0JY2hhcgluYW1lWzMyXTsKLQlfX3Mz MglmZDI7Ci0JX19zMzIJZmVuY2U7Ci0JX191MzIJZmxhZ3M7Ci0JX191MzIJcGFkOwotfTsKLQot LyoqCi0gKiBzdHJ1Y3Qgc3luY19mZW5jZV9pbmZvIC0gZGV0YWlsZWQgZmVuY2UgaW5mb3JtYXRp b24KLSAqIEBvYmpfbmFtZToJCW5hbWUgb2YgcGFyZW50IHN5bmNfdGltZWxpbmUKLSogQGRyaXZl cl9uYW1lOgluYW1lIG9mIGRyaXZlciBpbXBsZW1lbnRpbmcgdGhlIHBhcmVudAotKiBAc3RhdHVz OgkJc3RhdHVzIG9mIHRoZSBmZW5jZSAwOmFjdGl2ZSAxOnNpZ25hbGVkIDwwOmVycm9yCi0gKiBA ZmxhZ3M6CQlmZW5jZV9pbmZvIGZsYWdzCi0gKiBAdGltZXN0YW1wX25zOgl0aW1lc3RhbXAgb2Yg c3RhdHVzIGNoYW5nZSBpbiBuYW5vc2Vjb25kcwotICovCi1zdHJ1Y3Qgc3luY19mZW5jZV9pbmZv IHsKLQljaGFyCW9ial9uYW1lWzMyXTsKLQljaGFyCWRyaXZlcl9uYW1lWzMyXTsKLQlfX3MzMglz dGF0dXM7Ci0JX191MzIJZmxhZ3M7Ci0JX191NjQJdGltZXN0YW1wX25zOwotfTsKLQotLyoqCi0g KiBzdHJ1Y3Qgc3luY19maWxlX2luZm8gLSBkYXRhIHJldHVybmVkIGZyb20gZmVuY2UgaW5mbyBp b2N0bAotICogQG5hbWU6CW5hbWUgb2YgZmVuY2UKLSAqIEBzdGF0dXM6CXN0YXR1cyBvZiBmZW5j ZS4gMTogc2lnbmFsZWQgMDphY3RpdmUgPDA6ZXJyb3IKLSAqIEBmbGFnczoJc3luY19maWxlX2lu Zm8gZmxhZ3MKLSAqIEBudW1fZmVuY2VzCW51bWJlciBvZiBmZW5jZXMgaW4gdGhlIHN5bmNfZmls ZQotICogQHBhZDoJcGFkZGluZyBmb3IgNjQtYml0IGFsaWdubWVudCwgc2hvdWxkIGFsd2F5cyBi ZSB6ZXJvCi0gKiBAc3luY19mZW5jZV9pbmZvOiBwb2ludGVyIHRvIGFycmF5IG9mIHN0cnVjdHMg c3luY19mZW5jZV9pbmZvIHdpdGggYWxsCi0gKgkJIGZlbmNlcyBpbiB0aGUgc3luY19maWxlCi0g Ki8KLXN0cnVjdCBzeW5jX2ZpbGVfaW5mbyB7Ci0JY2hhcgluYW1lWzMyXTsKLQlfX3MzMglzdGF0 dXM7Ci0JX191MzIJZmxhZ3M7Ci0JX191MzIJbnVtX2ZlbmNlczsKLQlfX3UzMglwYWQ7Ci0KLQlf X3U2NAlzeW5jX2ZlbmNlX2luZm87Ci19OwotCi0jZGVmaW5lIFNZTkNfSU9DX01BR0lDCQknPicK LQotLyoqCi0gKiBPcGNvZGVzICAwLCAxIGFuZCAyIHdlcmUgYnVybmVkIGR1cmluZyBhIEFQSSBj aGFuZ2UgdG8gYXZvaWQgdXNlcnMgb2YgdGhlCi0gKiBvbGQgQVBJIHRvIGdldCB3ZWlyZCBlcnJv cnMgd2hlbiB0cnlpbmcgdG8gaGFuZGxpbmcgc3luY19maWxlcy4gVGhlIEFQSQotICogY2hhbmdl IGhhcHBlbmVkIGR1cmluZyB0aGUgZGUtc3RhZ2Ugb2YgdGhlIFN5bmMgRnJhbWV3b3JrIHdoZW4g dGhlcmUgd2FzCi0gKiBubyB1cHN0cmVhbSB1c2VycyBhdmFpbGFibGUuCi0gKi8KLQotLyoqCi0g KiBET0M6IFNZTkNfSU9DX01FUkdFIC0gbWVyZ2UgdHdvIGZlbmNlcwotICoKLSAqIFRha2VzIGEg c3RydWN0IHN5bmNfbWVyZ2VfZGF0YS4gIENyZWF0ZXMgYSBuZXcgZmVuY2UgY29udGFpbmluZyBj b3BpZXMgb2YKLSAqIHRoZSBzeW5jX3B0cyBpbiBib3RoIHRoZSBjYWxsaW5nIGZkIGFuZCBzeW5j X21lcmdlX2RhdGEuZmQyLiAgUmV0dXJucyB0aGUKLSAqIG5ldyBmZW5jZSdzIGZkIGluIHN5bmNf bWVyZ2VfZGF0YS5mZW5jZQotICovCi0jZGVmaW5lIFNZTkNfSU9DX01FUkdFCQlfSU9XUihTWU5D X0lPQ19NQUdJQywgMywgc3RydWN0IHN5bmNfbWVyZ2VfZGF0YSkKLQotLyoqCi0gKiBET0M6IFNZ TkNfSU9DX0ZJTEVfSU5GTyAtIGdldCBkZXRhaWxlZCBpbmZvcm1hdGlvbiBvbiBhIHN5bmNfZmls ZQotICoKLSAqIFRha2VzIGEgc3RydWN0IHN5bmNfZmlsZV9pbmZvLiBJZiBudW1fZmVuY2VzIGlz IDAsIHRoZSBmaWVsZCBpcyB1cGRhdGVkCi0gKiB3aXRoIHRoZSBhY3R1YWwgbnVtYmVyIG9mIGZl bmNlcy4gSWYgbnVtX2ZlbmNlcyBpcyA+IDAsIHRoZSBzeXN0ZW0gd2lsbAotICogdXNlIHRoZSBw b2ludGVyIHByb3ZpZGVkIG9uIHN5bmNfZmVuY2VfaW5mbyB0byByZXR1cm4gdXAgdG8gbnVtX2Zl bmNlcyBvZgotICogc3RydWN0IHN5bmNfZmVuY2VfaW5mbywgd2l0aCBkZXRhaWxlZCBmZW5jZSBp bmZvcm1hdGlvbi4KLSAqLwotI2RlZmluZSBTWU5DX0lPQ19GSUxFX0lORk8JX0lPV1IoU1lOQ19J T0NfTUFHSUMsIDQsIHN0cnVjdCBzeW5jX2ZpbGVfaW5mbykKLQotI2VuZGlmIC8qIF9MSU5VWF9T WU5DX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtLXVhcGkvdGVncmFfZHJtLmggYi9pbmNs dWRlL2RybS11YXBpL3RlZ3JhX2RybS5oCmluZGV4IDEyZjliZjg0OGRiMS4uNmMwNzkxOWMwNGU5 IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS11YXBpL3RlZ3JhX2RybS5oCisrKyBiL2luY2x1ZGUv ZHJtLXVhcGkvdGVncmFfZHJtLmgKQEAgLTMyLDE0MyArMzIsNjE1IEBAIGV4dGVybiAiQyIgewog I2RlZmluZSBEUk1fVEVHUkFfR0VNX0NSRUFURV9USUxFRCAgICAgKDEgPDwgMCkKICNkZWZpbmUg RFJNX1RFR1JBX0dFTV9DUkVBVEVfQk9UVE9NX1VQICgxIDw8IDEpCiAKKy8qKgorICogc3RydWN0 IGRybV90ZWdyYV9nZW1fY3JlYXRlIC0gcGFyYW1ldGVycyBmb3IgdGhlIEdFTSBvYmplY3QgY3Jl YXRpb24gSU9DVEwKKyAqLwogc3RydWN0IGRybV90ZWdyYV9nZW1fY3JlYXRlIHsKKwkvKioKKwkg KiBAc2l6ZToKKwkgKgorCSAqIFRoZSBzaXplLCBpbiBieXRlcywgb2YgdGhlIGJ1ZmZlciBvYmpl Y3QgdG8gYmUgY3JlYXRlZC4KKwkgKi8KIAlfX3U2NCBzaXplOworCisJLyoqCisJICogQGZsYWdz OgorCSAqCisJICogQSBiaXRtYXNrIG9mIGZsYWdzIHRoYXQgaW5mbHVlbmNlIHRoZSBjcmVhdGlv biBvZiBHRU0gb2JqZWN0czoKKwkgKgorCSAqIERSTV9URUdSQV9HRU1fQ1JFQVRFX1RJTEVECisJ ICogICBVc2UgdGhlIDE2eDE2IHRpbGluZyBmb3JtYXQgZm9yIHRoaXMgYnVmZmVyLgorCSAqCisJ ICogRFJNX1RFR1JBX0dFTV9DUkVBVEVfQk9UVE9NX1VQCisJICogICBUaGUgYnVmZmVyIGhhcyBh IGJvdHRvbS11cCBsYXlvdXQuCisJICovCiAJX191MzIgZmxhZ3M7CisKKwkvKioKKwkgKiBAaGFu ZGxlOgorCSAqCisJICogVGhlIGhhbmRsZSBvZiB0aGUgY3JlYXRlZCBHRU0gb2JqZWN0LiBTZXQg YnkgdGhlIGtlcm5lbCB1cG9uCisJICogc3VjY2Vzc2Z1bCBjb21wbGV0aW9uIG9mIHRoZSBJT0NU TC4KKwkgKi8KIAlfX3UzMiBoYW5kbGU7CiB9OwogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFf Z2VtX21tYXAgLSBwYXJhbWV0ZXJzIGZvciB0aGUgR0VNIG1tYXAgSU9DVEwKKyAqLwogc3RydWN0 IGRybV90ZWdyYV9nZW1fbW1hcCB7CisJLyoqCisJICogQGhhbmRsZToKKwkgKgorCSAqIEhhbmRs ZSBvZiB0aGUgR0VNIG9iamVjdCB0byBvYnRhaW4gYW4gbW1hcCBvZmZzZXQgZm9yLgorCSAqLwog CV9fdTMyIGhhbmRsZTsKKworCS8qKgorCSAqIEBwYWQ6CisJICoKKwkgKiBTdHJ1Y3R1cmUgcGFk ZGluZyB0aGF0IG1heSBiZSB1c2VkIGluIHRoZSBmdXR1cmUuIE11c3QgYmUgMC4KKwkgKi8KIAlf X3UzMiBwYWQ7CisKKwkvKioKKwkgKiBAb2Zmc2V0OgorCSAqCisJICogVGhlIG1tYXAgb2Zmc2V0 IGZvciB0aGUgZ2l2ZW4gR0VNIG9iamVjdC4gU2V0IGJ5IHRoZSBrZXJuZWwgdXBvbgorCSAqIHN1 Y2Nlc3NmdWwgY29tcGxldGlvbiBvZiB0aGUgSU9DVEwuCisJICovCiAJX191NjQgb2Zmc2V0Owog fTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdF9yZWFkIC0gcGFyYW1ldGVycyBm b3IgdGhlIHJlYWQgc3luY3BvaW50IElPQ1RMCisgKi8KIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0 X3JlYWQgeworCS8qKgorCSAqIEBpZDoKKwkgKgorCSAqIElEIG9mIHRoZSBzeW5jcG9pbnQgdG8g cmVhZCB0aGUgY3VycmVudCB2YWx1ZSBmcm9tLgorCSAqLwogCV9fdTMyIGlkOworCisJLyoqCisJ ICogQHZhbHVlOgorCSAqCisJICogVGhlIGN1cnJlbnQgc3luY3BvaW50IHZhbHVlLiBTZXQgYnkg dGhlIGtlcm5lbCB1cG9uIHN1Y2Nlc3NmdWwKKwkgKiBjb21wbGV0aW9uIG9mIHRoZSBJT0NUTC4K KwkgKi8KIAlfX3UzMiB2YWx1ZTsKIH07CiAKKy8qKgorICogc3RydWN0IGRybV90ZWdyYV9zeW5j cHRfaW5jciAtIHBhcmFtZXRlcnMgZm9yIHRoZSBpbmNyZW1lbnQgc3luY3BvaW50IElPQ1RMCisg Ki8KIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0X2luY3IgeworCS8qKgorCSAqIEBpZDoKKwkgKgor CSAqIElEIG9mIHRoZSBzeW5jcG9pbnQgdG8gaW5jcmVtZW50LgorCSAqLwogCV9fdTMyIGlkOwor CisJLyoqCisJICogQHBhZDoKKwkgKgorCSAqIFN0cnVjdHVyZSBwYWRkaW5nIHRoYXQgbWF5IGJl IHVzZWQgaW4gdGhlIGZ1dHVyZS4gTXVzdCBiZSAwLgorCSAqLwogCV9fdTMyIHBhZDsKIH07CiAK Ky8qKgorICogc3RydWN0IGRybV90ZWdyYV9zeW5jcHRfd2FpdCAtIHBhcmFtZXRlcnMgZm9yIHRo ZSB3YWl0IHN5bmNwb2ludCBJT0NUTAorICovCiBzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdF93YWl0 IHsKKwkvKioKKwkgKiBAaWQ6CisJICoKKwkgKiBJRCBvZiB0aGUgc3luY3BvaW50IHRvIHdhaXQg b24uCisJICovCiAJX191MzIgaWQ7CisKKwkvKioKKwkgKiBAdGhyZXNoOgorCSAqCisJICogVGhy ZXNob2xkIHZhbHVlIGZvciB3aGljaCB0byB3YWl0LgorCSAqLwogCV9fdTMyIHRocmVzaDsKKwor CS8qKgorCSAqIEB0aW1lb3V0OgorCSAqCisJICogVGltZW91dCwgaW4gbWlsbGlzZWNvbmRzLCB0 byB3YWl0LgorCSAqLwogCV9fdTMyIHRpbWVvdXQ7CisKKwkvKioKKwkgKiBAdmFsdWU6CisJICoK KwkgKiBUaGUgbmV3IHN5bmNwb2ludCB2YWx1ZSBhZnRlciB0aGUgd2FpdC4gU2V0IGJ5IHRoZSBr ZXJuZWwgdXBvbgorCSAqIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBvZiB0aGUgSU9DVEwuCisJICov CiAJX191MzIgdmFsdWU7CiB9OwogCiAjZGVmaW5lIERSTV9URUdSQV9OT19USU1FT1VUCSgweGZm ZmZmZmZmKQogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFfb3Blbl9jaGFubmVsIC0gcGFyYW1l dGVycyBmb3IgdGhlIG9wZW4gY2hhbm5lbCBJT0NUTAorICovCiBzdHJ1Y3QgZHJtX3RlZ3JhX29w ZW5fY2hhbm5lbCB7CisJLyoqCisJICogQGNsaWVudDoKKwkgKgorCSAqIFRoZSBjbGllbnQgSUQg Zm9yIHRoaXMgY2hhbm5lbC4KKwkgKi8KIAlfX3UzMiBjbGllbnQ7CisKKwkvKioKKwkgKiBAcGFk OgorCSAqCisJICogU3RydWN0dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUgdXNlZCBpbiB0aGUgZnV0 dXJlLiBNdXN0IGJlIDAuCisJICovCiAJX191MzIgcGFkOworCisJLyoqCisJICogQGNvbnRleHQ6 CisJICoKKwkgKiBUaGUgYXBwbGljYXRpb24gY29udGV4dCBvZiB0aGlzIGNoYW5uZWwuIFNldCBi eSB0aGUga2VybmVsIHVwb24KKwkgKiBzdWNjZXNzZnVsIGNvbXBsZXRpb24gb2YgdGhlIElPQ1RM LiBUaGlzIGNvbnRleHQgbmVlZHMgdG8gYmUgcGFzc2VkCisJICogdG8gdGhlIERSTV9URUdSQV9D SEFOTkVMX0NMT1NFIG9yIHRoZSBEUk1fVEVHUkFfU1VCTUlUIElPQ1RMcy4KKwkgKi8KIAlfX3U2 NCBjb250ZXh0OwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX2Nsb3NlX2NoYW5uZWwg LSBwYXJhbWV0ZXJzIGZvciB0aGUgY2xvc2UgY2hhbm5lbCBJT0NUTAorICovCiBzdHJ1Y3QgZHJt X3RlZ3JhX2Nsb3NlX2NoYW5uZWwgeworCS8qKgorCSAqIEBjb250ZXh0OgorCSAqCisJICogVGhl IGFwcGxpY2F0aW9uIGNvbnRleHQgb2YgdGhpcyBjaGFubmVsLiBUaGlzIGlzIG9idGFpbmVkIGZy b20gdGhlCisJICogRFJNX1RFR1JBX09QRU5fQ0hBTk5FTCBJT0NUTC4KKwkgKi8KIAlfX3U2NCBj b250ZXh0OwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX2dldF9zeW5jcHQgLSBwYXJh bWV0ZXJzIGZvciB0aGUgZ2V0IHN5bmNwb2ludCBJT0NUTAorICovCiBzdHJ1Y3QgZHJtX3RlZ3Jh X2dldF9zeW5jcHQgeworCS8qKgorCSAqIEBjb250ZXh0OgorCSAqCisJICogVGhlIGFwcGxpY2F0 aW9uIGNvbnRleHQgaWRlbnRpZnlpbmcgdGhlIGNoYW5uZWwgZm9yIHdoaWNoIHRvIG9idGFpbgor CSAqIHRoZSBzeW5jcG9pbnQgSUQuCisJICovCiAJX191NjQgY29udGV4dDsKKworCS8qKgorCSAq IEBpbmRleDoKKwkgKgorCSAqIEluZGV4IG9mIHRoZSBjbGllbnQgc3luY3BvaW50IGZvciB3aGlj aCB0byBvYnRhaW4gdGhlIElELgorCSAqLwogCV9fdTMyIGluZGV4OworCisJLyoqCisJICogQGlk OgorCSAqCisJICogVGhlIElEIG9mIHRoZSBnaXZlbiBzeW5jcG9pbnQuIFNldCBieSB0aGUga2Vy bmVsIHVwb24gc3VjY2Vzc2Z1bAorCSAqIGNvbXBsZXRpb24gb2YgdGhlIElPQ1RMLgorCSAqLwog CV9fdTMyIGlkOwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX2dldF9zeW5jcHRfYmFz ZSAtIHBhcmFtZXRlcnMgZm9yIHRoZSBnZXQgd2FpdCBiYXNlIElPQ1RMCisgKi8KIHN0cnVjdCBk cm1fdGVncmFfZ2V0X3N5bmNwdF9iYXNlIHsKKwkvKioKKwkgKiBAY29udGV4dDoKKwkgKgorCSAq IFRoZSBhcHBsaWNhdGlvbiBjb250ZXh0IGlkZW50aWZ5aW5nIGZvciB3aGljaCBjaGFubmVsIHRv IG9idGFpbiB0aGUKKwkgKiB3YWl0IGJhc2UuCisJICovCiAJX191NjQgY29udGV4dDsKKworCS8q KgorCSAqIEBzeW5jcHQ6CisJICoKKwkgKiBJRCBvZiB0aGUgc3luY3BvaW50IGZvciB3aGljaCB0 byBvYnRhaW4gdGhlIHdhaXQgYmFzZS4KKwkgKi8KIAlfX3UzMiBzeW5jcHQ7CisKKwkvKioKKwkg KiBAaWQ6CisJICoKKwkgKiBUaGUgSUQgb2YgdGhlIHdhaXQgYmFzZSBjb3JyZXNwb25kaW5nIHRv IHRoZSBjbGllbnQgc3luY3BvaW50LiBTZXQKKwkgKiBieSB0aGUga2VybmVsIHVwb24gc3VjY2Vz c2Z1bCBjb21wbGV0aW9uIG9mIHRoZSBJT0NUTC4KKwkgKi8KIAlfX3UzMiBpZDsKIH07CiAKKy8q KgorICogc3RydWN0IGRybV90ZWdyYV9zeW5jcHQgLSBzeW5jcG9pbnQgaW5jcmVtZW50IG9wZXJh dGlvbgorICovCiBzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdCB7CisJLyoqCisJICogQGlkOgorCSAq CisJICogSUQgb2YgdGhlIHN5bmNwb2ludCB0byBvcGVyYXRlIG9uLgorCSAqLwogCV9fdTMyIGlk OworCisJLyoqCisJICogQGluY3JzOgorCSAqCisJICogTnVtYmVyIG9mIGluY3JlbWVudHMgdG8g cGVyZm9ybSBmb3IgdGhlIHN5bmNwb2ludC4KKwkgKi8KIAlfX3UzMiBpbmNyczsKIH07CiAKKy8q KgorICogc3RydWN0IGRybV90ZWdyYV9jbWRidWYgLSBzdHJ1Y3R1cmUgZGVzY3JpYmluZyBhIGNv bW1hbmQgYnVmZmVyCisgKi8KIHN0cnVjdCBkcm1fdGVncmFfY21kYnVmIHsKKwkvKioKKwkgKiBA aGFuZGxlOgorCSAqCisJICogSGFuZGxlIHRvIGEgR0VNIG9iamVjdCBjb250YWluaW5nIHRoZSBj b21tYW5kIGJ1ZmZlci4KKwkgKi8KIAlfX3UzMiBoYW5kbGU7CisKKwkvKioKKwkgKiBAb2Zmc2V0 OgorCSAqCisJICogT2Zmc2V0LCBpbiBieXRlcywgaW50byB0aGUgR0VNIG9iamVjdCBpZGVudGlm aWVkIGJ5IEBoYW5kbGUgYXQKKwkgKiB3aGljaCB0aGUgY29tbWFuZCBidWZmZXIgc3RhcnRzLgor CSAqLwogCV9fdTMyIG9mZnNldDsKKworCS8qKgorCSAqIEB3b3JkczoKKwkgKgorCSAqIE51bWJl ciBvZiAzMi1iaXQgd29yZHMgaW4gdGhpcyBjb21tYW5kIGJ1ZmZlci4KKwkgKi8KIAlfX3UzMiB3 b3JkczsKKworCS8qKgorCSAqIEBwYWQ6CisJICoKKwkgKiBTdHJ1Y3R1cmUgcGFkZGluZyB0aGF0 IG1heSBiZSB1c2VkIGluIHRoZSBmdXR1cmUuIE11c3QgYmUgMC4KKwkgKi8KIAlfX3UzMiBwYWQ7 CiB9OwogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFfcmVsb2MgLSBHRU0gb2JqZWN0IHJlbG9j YXRpb24gc3RydWN0dXJlCisgKi8KIHN0cnVjdCBkcm1fdGVncmFfcmVsb2MgewogCXN0cnVjdCB7 CisJCS8qKgorCQkgKiBAY21kYnVmLmhhbmRsZToKKwkJICoKKwkJICogSGFuZGxlIHRvIHRoZSBH RU0gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNvbW1hbmQgYnVmZmVyIGZvcgorCQkgKiB3aGljaCB0 byBwZXJmb3JtIHRoaXMgR0VNIG9iamVjdCByZWxvY2F0aW9uLgorCQkgKi8KIAkJX191MzIgaGFu ZGxlOworCisJCS8qKgorCQkgKiBAY21kYnVmLm9mZnNldDoKKwkJICoKKwkJICogT2Zmc2V0LCBp biBieXRlcywgaW50byB0aGUgY29tbWFuZCBidWZmZXIgYXQgd2hpY2ggdG8KKwkJICogaW5zZXJ0 IHRoZSByZWxvY2F0ZWQgYWRkcmVzcy4KKwkJICovCiAJCV9fdTMyIG9mZnNldDsKIAl9IGNtZGJ1 ZjsKIAlzdHJ1Y3QgeworCQkvKioKKwkJICogQHRhcmdldC5oYW5kbGU6CisJCSAqCisJCSAqIEhh bmRsZSB0byB0aGUgR0VNIG9iamVjdCB0byBiZSByZWxvY2F0ZWQuCisJCSAqLwogCQlfX3UzMiBo YW5kbGU7CisKKwkJLyoqCisJCSAqIEB0YXJnZXQub2Zmc2V0OgorCQkgKgorCQkgKiBPZmZzZXQs IGluIGJ5dGVzLCBpbnRvIHRoZSB0YXJnZXQgR0VNIG9iamVjdCBhdCB3aGljaCB0aGUKKwkJICog cmVsb2NhdGVkIGRhdGEgc3RhcnRzLgorCQkgKi8KIAkJX191MzIgb2Zmc2V0OwogCX0gdGFyZ2V0 OworCisJLyoqCisJICogQHNoaWZ0OgorCSAqCisJICogVGhlIG51bWJlciBvZiBiaXRzIGJ5IHdo aWNoIHRvIHNoaWZ0IHJlbG9jYXRlZCBhZGRyZXNzZXMuCisJICovCiAJX191MzIgc2hpZnQ7CisK KwkvKioKKwkgKiBAcGFkOgorCSAqCisJICogU3RydWN0dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUg dXNlZCBpbiB0aGUgZnV0dXJlLiBNdXN0IGJlIDAuCisJICovCiAJX191MzIgcGFkOwogfTsKIAor LyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX3dhaXRjaGsgLSB3YWl0IGNoZWNrIHN0cnVjdHVyZQor ICovCiBzdHJ1Y3QgZHJtX3RlZ3JhX3dhaXRjaGsgeworCS8qKgorCSAqIEBoYW5kbGU6CisJICoK KwkgKiBIYW5kbGUgdG8gdGhlIEdFTSBvYmplY3QgY29udGFpbmluZyBhIGNvbW1hbmQgc3RyZWFt IG9uIHdoaWNoIHRvCisJICogcGVyZm9ybSB0aGUgd2FpdCBjaGVjay4KKwkgKi8KIAlfX3UzMiBo YW5kbGU7CisKKwkvKioKKwkgKiBAb2Zmc2V0OgorCSAqCisJICogT2Zmc2V0LCBpbiBieXRlcywg b2YgdGhlIGxvY2F0aW9uIGluIHRoZSBjb21tYW5kIHN0cmVhbSB0byBwZXJmb3JtCisJICogdGhl IHdhaXQgY2hlY2sgb24uCisJICovCiAJX191MzIgb2Zmc2V0OworCisJLyoqCisJICogQHN5bmNw dDoKKwkgKgorCSAqIElEIG9mIHRoZSBzeW5jcG9pbnQgdG8gd2FpdCBjaGVjay4KKwkgKi8KIAlf X3UzMiBzeW5jcHQ7CisKKwkvKioKKwkgKiBAdGhyZXNoOgorCSAqCisJICogVGhyZXNob2xkIHZh bHVlIGZvciB3aGljaCB0byBjaGVjay4KKwkgKi8KIAlfX3UzMiB0aHJlc2g7CiB9OwogCisvKioK KyAqIHN0cnVjdCBkcm1fdGVncmFfc3VibWl0IC0gam9iIHN1Ym1pc3Npb24gc3RydWN0dXJlCisg Ki8KIHN0cnVjdCBkcm1fdGVncmFfc3VibWl0IHsKKwkvKioKKwkgKiBAY29udGV4dDoKKwkgKgor CSAqIFRoZSBhcHBsaWNhdGlvbiBjb250ZXh0IGlkZW50aWZ5aW5nIHRoZSBjaGFubmVsIHRvIHVz ZSBmb3IgdGhlCisJICogZXhlY3V0aW9uIG9mIHRoaXMgam9iLgorCSAqLwogCV9fdTY0IGNvbnRl eHQ7CisKKwkvKioKKwkgKiBAbnVtX3N5bmNwdHM6CisJICoKKwkgKiBUaGUgbnVtYmVyIG9mIHN5 bmNwb2ludHMgb3BlcmF0ZWQgb24gYnkgdGhpcyBqb2IuIFRoaXMgZGVmaW5lcyB0aGUKKwkgKiBs ZW5ndGggb2YgdGhlIGFycmF5IHBvaW50ZWQgdG8gYnkgQHN5bmNwdHMuCisJICovCiAJX191MzIg bnVtX3N5bmNwdHM7CisKKwkvKioKKwkgKiBAbnVtX2NtZGJ1ZnM6CisJICoKKwkgKiBUaGUgbnVt YmVyIG9mIGNvbW1hbmQgYnVmZmVycyB0byBleGVjdXRlIGFzIHBhcnQgb2YgdGhpcyBqb2IuIFRo aXMKKwkgKiBkZWZpbmVzIHRoZSBsZW5ndGggb2YgdGhlIGFycmF5IHBvaW50ZWQgdG8gYnkgQGNt ZGJ1ZnMuCisJICovCiAJX191MzIgbnVtX2NtZGJ1ZnM7CisKKwkvKioKKwkgKiBAbnVtX3JlbG9j czoKKwkgKgorCSAqIFRoZSBudW1iZXIgb2YgcmVsb2NhdGlvbnMgdG8gcGVyZm9ybSBiZWZvcmUg ZXhlY3V0aW5nIHRoaXMgam9iLgorCSAqIFRoaXMgZGVmaW5lcyB0aGUgbGVuZ3RoIG9mIHRoZSBh cnJheSBwb2ludGVkIHRvIGJ5IEByZWxvY3MuCisJICovCiAJX191MzIgbnVtX3JlbG9jczsKKwor CS8qKgorCSAqIEBudW1fd2FpdGNoa3M6CisJICoKKwkgKiBUaGUgbnVtYmVyIG9mIHdhaXQgY2hl Y2tzIHRvIHBlcmZvcm0gYXMgcGFydCBvZiB0aGlzIGpvYi4gVGhpcworCSAqIGRlZmluZXMgdGhl IGxlbmd0aCBvZiB0aGUgYXJyYXkgcG9pbnRlZCB0byBieSBAd2FpdGNoa3MuCisJICovCiAJX191 MzIgbnVtX3dhaXRjaGtzOworCisJLyoqCisJICogQHdhaXRjaGtfbWFzazoKKwkgKgorCSAqIEJp dG1hc2sgb2YgdmFsaWQgd2FpdCBjaGVja3MuCisJICovCiAJX191MzIgd2FpdGNoa19tYXNrOwor CisJLyoqCisJICogQHRpbWVvdXQ6CisJICoKKwkgKiBUaW1lb3V0LCBpbiBtaWxsaXNlY29uZHMs IGJlZm9yZSB0aGlzIGpvYiBpcyBjYW5jZWxsZWQuCisJICovCiAJX191MzIgdGltZW91dDsKKwor CS8qKgorCSAqIEBzeW5jcHRzOgorCSAqCisJICogQSBwb2ludGVyIHRvIGFuIGFycmF5IG9mICZz dHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdCBzdHJ1Y3R1cmVzIHRoYXQKKwkgKiBzcGVjaWZ5IHRoZSBz eW5jcG9pbnQgb3BlcmF0aW9ucyBwZXJmb3JtZWQgYXMgcGFydCBvZiB0aGlzIGpvYi4KKwkgKiBU aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBhcnJheSBtdXN0IGJlIGVxdWFsIHRvIHRoZSB2 YWx1ZQorCSAqIGdpdmVuIGJ5IEBudW1fc3luY3B0cy4KKwkgKi8KIAlfX3U2NCBzeW5jcHRzOwor CisJLyoqCisJICogQGNtZGJ1ZnM6CisJICoKKwkgKiBBIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2Yg JnN0cnVjdCBkcm1fdGVncmFfY21kYnVmIHN0cnVjdHVyZXMgdGhhdAorCSAqIGRlZmluZSB0aGUg Y29tbWFuZCBidWZmZXJzIHRvIGV4ZWN1dGUgYXMgcGFydCBvZiB0aGlzIGpvYi4gVGhlCisJICog bnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBhcnJheSBtdXN0IGJlIGVxdWFsIHRvIHRoZSB2YWx1 ZSBnaXZlbgorCSAqIGJ5IEBudW1fc3luY3B0cy4KKwkgKi8KIAlfX3U2NCBjbWRidWZzOworCisJ LyoqCisJICogQHJlbG9jczoKKwkgKgorCSAqIEEgcG9pbnRlciB0byBhbiBhcnJheSBvZiAmc3Ry dWN0IGRybV90ZWdyYV9yZWxvYyBzdHJ1Y3R1cmVzIHRoYXQKKwkgKiBzcGVjaWZ5IHRoZSByZWxv Y2F0aW9ucyB0aGF0IG5lZWQgdG8gYmUgcGVyZm9ybWVkIGJlZm9yZSBleGVjdXRpbmcKKwkgKiB0 aGlzIGpvYi4gVGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgYXJyYXkgbXVzdCBiZSBlcXVh bCB0byB0aGUKKwkgKiB2YWx1ZSBnaXZlbiBieSBAbnVtX3JlbG9jcy4KKwkgKi8KIAlfX3U2NCBy ZWxvY3M7CisKKwkvKioKKwkgKiBAd2FpdGNoa3M6CisJICoKKwkgKiBBIHBvaW50ZXIgdG8gYW4g YXJyYXkgb2YgJnN0cnVjdCBkcm1fdGVncmFfd2FpdGNoayBzdHJ1Y3R1cmVzIHRoYXQKKwkgKiBz cGVjaWZ5IHRoZSB3YWl0IGNoZWNrcyB0byBiZSBwZXJmb3JtZWQgd2hpbGUgZXhlY3V0aW5nIHRo aXMgam9iLgorCSAqIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGFycmF5IG11c3QgYmUg ZXF1YWwgdG8gdGhlIHZhbHVlCisJICogZ2l2ZW4gYnkgQG51bV93YWl0Y2hrcy4KKwkgKi8KIAlf X3U2NCB3YWl0Y2hrczsKLQlfX3UzMiBmZW5jZTsJCS8qIFJldHVybiB2YWx1ZSAqLwogCi0JX191 MzIgcmVzZXJ2ZWRbNV07CS8qIGZ1dHVyZSBleHBhbnNpb24gKi8KKwkvKioKKwkgKiBAZmVuY2U6 CisJICoKKwkgKiBUaGUgdGhyZXNob2xkIG9mIHRoZSBzeW5jcG9pbnQgYXNzb2NpYXRlZCB3aXRo IHRoaXMgam9iIGFmdGVyIGl0CisJICogaGFzIGJlZW4gY29tcGxldGVkLiBTZXQgYnkgdGhlIGtl cm5lbCB1cG9uIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBvZgorCSAqIHRoZSBJT0NUTC4gVGhpcyBj YW4gYmUgdXNlZCB3aXRoIHRoZSBEUk1fVEVHUkFfU1lOQ1BUX1dBSVQgSU9DVEwgdG8KKwkgKiB3 YWl0IGZvciB0aGlzIGpvYiB0byBiZSBmaW5pc2hlZC4KKwkgKi8KKwlfX3UzMiBmZW5jZTsKKwor CS8qKgorCSAqIEByZXNlcnZlZDoKKwkgKgorCSAqIFRoaXMgZmllbGQgaXMgcmVzZXJ2ZWQgZm9y IGZ1dHVyZSB1c2UuIE11c3QgYmUgMC4KKwkgKi8KKwlfX3UzMiByZXNlcnZlZFs1XTsKIH07CiAK ICNkZWZpbmUgRFJNX1RFR1JBX0dFTV9USUxJTkdfTU9ERV9QSVRDSCAwCiAjZGVmaW5lIERSTV9U RUdSQV9HRU1fVElMSU5HX01PREVfVElMRUQgMQogI2RlZmluZSBEUk1fVEVHUkFfR0VNX1RJTElO R19NT0RFX0JMT0NLIDIKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX2dlbV9zZXRfdGlsaW5n IC0gcGFyYW1ldGVycyBmb3IgdGhlIHNldCB0aWxpbmcgSU9DVEwKKyAqLwogc3RydWN0IGRybV90 ZWdyYV9nZW1fc2V0X3RpbGluZyB7Ci0JLyogaW5wdXQgKi8KKwkvKioKKwkgKiBAaGFuZGxlOgor CSAqCisJICogSGFuZGxlIHRvIHRoZSBHRU0gb2JqZWN0IGZvciB3aGljaCB0byBzZXQgdGhlIHRp bGluZyBwYXJhbWV0ZXJzLgorCSAqLwogCV9fdTMyIGhhbmRsZTsKKworCS8qKgorCSAqIEBtb2Rl OgorCSAqCisJICogVGhlIHRpbGluZyBtb2RlIHRvIHNldC4gTXVzdCBiZSBvbmUgb2Y6CisJICoK KwkgKiBEUk1fVEVHUkFfR0VNX1RJTElOR19NT0RFX1BJVENICisJICogICBwaXRjaCBsaW5lYXIg Zm9ybWF0CisJICoKKwkgKiBEUk1fVEVHUkFfR0VNX1RJTElOR19NT0RFX1RJTEVECisJICogICAx NngxNiB0aWxpbmcgZm9ybWF0CisJICoKKwkgKiBEUk1fVEVHUkFfR0VNX1RJTElOR19NT0RFX0JM T0NLCisJICogICAxNkJ4MiB0aWxpbmcgZm9ybWF0CisJICovCiAJX191MzIgbW9kZTsKKworCS8q KgorCSAqIEB2YWx1ZToKKwkgKgorCSAqIFRoZSB2YWx1ZSB0byBzZXQgZm9yIHRoZSB0aWxpbmcg bW9kZSBwYXJhbWV0ZXIuCisJICovCiAJX191MzIgdmFsdWU7CisKKwkvKioKKwkgKiBAcGFkOgor CSAqCisJICogU3RydWN0dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUgdXNlZCBpbiB0aGUgZnV0dXJl LiBNdXN0IGJlIDAuCisJICovCiAJX191MzIgcGFkOwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJt X3RlZ3JhX2dlbV9nZXRfdGlsaW5nIC0gcGFyYW1ldGVycyBmb3IgdGhlIGdldCB0aWxpbmcgSU9D VEwKKyAqLwogc3RydWN0IGRybV90ZWdyYV9nZW1fZ2V0X3RpbGluZyB7Ci0JLyogaW5wdXQgKi8K KwkvKioKKwkgKiBAaGFuZGxlOgorCSAqCisJICogSGFuZGxlIHRvIHRoZSBHRU0gb2JqZWN0IGZv ciB3aGljaCB0byBxdWVyeSB0aGUgdGlsaW5nIHBhcmFtZXRlcnMuCisJICovCiAJX191MzIgaGFu ZGxlOwotCS8qIG91dHB1dCAqLworCisJLyoqCisJICogQG1vZGU6CisJICoKKwkgKiBUaGUgdGls aW5nIG1vZGUgY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0aCB0aGUgR0VNIG9iamVjdC4gU2V0IGJ5 CisJICogdGhlIGtlcm5lbCB1cG9uIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBvZiB0aGUgSU9DVEwu CisJICovCiAJX191MzIgbW9kZTsKKworCS8qKgorCSAqIEB2YWx1ZToKKwkgKgorCSAqIFRoZSB0 aWxpbmcgbW9kZSBwYXJhbWV0ZXIgY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0aCB0aGUgR0VNIG9i amVjdC4KKwkgKiBTZXQgYnkgdGhlIGtlcm5lbCB1cG9uIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBv ZiB0aGUgSU9DVEwuCisJICovCiAJX191MzIgdmFsdWU7CisKKwkvKioKKwkgKiBAcGFkOgorCSAq CisJICogU3RydWN0dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUgdXNlZCBpbiB0aGUgZnV0dXJlLiBN dXN0IGJlIDAuCisJICovCiAJX191MzIgcGFkOwogfTsKIAogI2RlZmluZSBEUk1fVEVHUkFfR0VN X0JPVFRPTV9VUAkJKDEgPDwgMCkKICNkZWZpbmUgRFJNX1RFR1JBX0dFTV9GTEFHUwkJKERSTV9U RUdSQV9HRU1fQk9UVE9NX1VQKQogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFfZ2VtX3NldF9m bGFncyAtIHBhcmFtZXRlcnMgZm9yIHRoZSBzZXQgZmxhZ3MgSU9DVEwKKyAqLwogc3RydWN0IGRy bV90ZWdyYV9nZW1fc2V0X2ZsYWdzIHsKLQkvKiBpbnB1dCAqLworCS8qKgorCSAqIEBoYW5kbGU6 CisJICoKKwkgKiBIYW5kbGUgdG8gdGhlIEdFTSBvYmplY3QgZm9yIHdoaWNoIHRvIHNldCB0aGUg ZmxhZ3MuCisJICovCiAJX191MzIgaGFuZGxlOwotCS8qIG91dHB1dCAqLworCisJLyoqCisJICog QGZsYWdzOgorCSAqCisJICogVGhlIGZsYWdzIHRvIHNldCBmb3IgdGhlIEdFTSBvYmplY3QuCisJ ICovCiAJX191MzIgZmxhZ3M7CiB9OwogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFfZ2VtX2dl dF9mbGFncyAtIHBhcmFtZXRlcnMgZm9yIHRoZSBnZXQgZmxhZ3MgSU9DVEwKKyAqLwogc3RydWN0 IGRybV90ZWdyYV9nZW1fZ2V0X2ZsYWdzIHsKLQkvKiBpbnB1dCAqLworCS8qKgorCSAqIEBoYW5k bGU6CisJICoKKwkgKiBIYW5kbGUgdG8gdGhlIEdFTSBvYmplY3QgZm9yIHdoaWNoIHRvIHF1ZXJ5 IHRoZSBmbGFncy4KKwkgKi8KIAlfX3UzMiBoYW5kbGU7Ci0JLyogb3V0cHV0ICovCisKKwkvKioK KwkgKiBAZmxhZ3M6CisJICoKKwkgKiBUaGUgZmxhZ3MgY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0 aCB0aGUgR0VNIG9iamVjdC4gU2V0IGJ5IHRoZQorCSAqIGtlcm5lbCB1cG9uIHN1Y2Nlc3NmdWwg Y29tcGxldGlvbiBvZiB0aGUgSU9DVEwuCisJICovCiAJX191MzIgZmxhZ3M7CiB9OwogCkBAIC0x OTMsNyArNjY1LDcgQEAgc3RydWN0IGRybV90ZWdyYV9nZW1fZ2V0X2ZsYWdzIHsKICNkZWZpbmUg RFJNX0lPQ1RMX1RFR1JBX1NZTkNQVF9JTkNSIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBE Uk1fVEVHUkFfU1lOQ1BUX0lOQ1IsIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0X2luY3IpCiAjZGVm aW5lIERSTV9JT0NUTF9URUdSQV9TWU5DUFRfV0FJVCBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNF ICsgRFJNX1RFR1JBX1NZTkNQVF9XQUlULCBzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdF93YWl0KQog I2RlZmluZSBEUk1fSU9DVExfVEVHUkFfT1BFTl9DSEFOTkVMIERSTV9JT1dSKERSTV9DT01NQU5E X0JBU0UgKyBEUk1fVEVHUkFfT1BFTl9DSEFOTkVMLCBzdHJ1Y3QgZHJtX3RlZ3JhX29wZW5fY2hh bm5lbCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1RFR1JBX0NMT1NFX0NIQU5ORUwgRFJNX0lPV1IoRFJN X0NPTU1BTkRfQkFTRSArIERSTV9URUdSQV9DTE9TRV9DSEFOTkVMLCBzdHJ1Y3QgZHJtX3RlZ3Jh X29wZW5fY2hhbm5lbCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1RFR1JBX0NMT1NFX0NIQU5ORUwgRFJN X0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9URUdSQV9DTE9TRV9DSEFOTkVMLCBzdHJ1Y3Qg ZHJtX3RlZ3JhX2Nsb3NlX2NoYW5uZWwpCiAjZGVmaW5lIERSTV9JT0NUTF9URUdSQV9HRVRfU1lO Q1BUIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fVEVHUkFfR0VUX1NZTkNQVCwgc3Ry dWN0IGRybV90ZWdyYV9nZXRfc3luY3B0KQogI2RlZmluZSBEUk1fSU9DVExfVEVHUkFfU1VCTUlU IERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fVEVHUkFfU1VCTUlULCBzdHJ1Y3QgZHJt X3RlZ3JhX3N1Ym1pdCkKICNkZWZpbmUgRFJNX0lPQ1RMX1RFR1JBX0dFVF9TWU5DUFRfQkFTRSBE Uk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1RFR1JBX0dFVF9TWU5DUFRfQkFTRSwgc3Ry dWN0IGRybV90ZWdyYV9nZXRfc3luY3B0X2Jhc2UpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS11 YXBpL3YzZF9kcm0uaCBiL2luY2x1ZGUvZHJtLXVhcGkvdjNkX2RybS5oCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uN2I2NjI3NzgzNjA4Ci0tLSAvZGV2L251bGwKKysr IGIvaW5jbHVkZS9kcm0tdWFwaS92M2RfZHJtLmgKQEAgLTAsMCArMSwxOTQgQEAKKy8qCisgKiBD b3B5cmlnaHQgwqkgMjAxNC0yMDE4IEJyb2FkY29tCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJl YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAq IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz ICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJl c3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRv IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5z ZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg cGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBz dWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29w eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBu ZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vi c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdB UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQ UkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBB VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B R0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS QUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENP Tk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwor ICogSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpZm5kZWYgX1YzRF9EUk1fSF8KKyNkZWZpbmUg X1YzRF9EUk1fSF8KKworI2luY2x1ZGUgImRybS5oIgorCisjaWYgZGVmaW5lZChfX2NwbHVzcGx1 cykKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKyNkZWZpbmUgRFJNX1YzRF9TVUJNSVRfQ0wgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMAorI2RlZmluZSBEUk1fVjNEX1dBSVRfQk8gICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAxCisjZGVmaW5lIERSTV9WM0RfQ1JFQVRFX0JPICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDIKKyNkZWZpbmUgRFJNX1YzRF9NTUFQX0JPICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMworI2RlZmluZSBEUk1fVjNEX0dFVF9QQVJBTSAgICAgICAg ICAgICAgICAgICAgICAgICAweDA0CisjZGVmaW5lIERSTV9WM0RfR0VUX0JPX09GRlNFVCAgICAg ICAgICAgICAgICAgICAgIDB4MDUKKworI2RlZmluZSBEUk1fSU9DVExfVjNEX1NVQk1JVF9DTCAg ICAgICAgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9WM0RfU1VCTUlUX0NMLCBz dHJ1Y3QgZHJtX3YzZF9zdWJtaXRfY2wpCisjZGVmaW5lIERSTV9JT0NUTF9WM0RfV0FJVF9CTyAg ICAgICAgICAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1YzRF9XQUlUX0JPLCBz dHJ1Y3QgZHJtX3YzZF93YWl0X2JvKQorI2RlZmluZSBEUk1fSU9DVExfVjNEX0NSRUFURV9CTyAg ICAgICAgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9WM0RfQ1JFQVRFX0JPLCBz dHJ1Y3QgZHJtX3YzZF9jcmVhdGVfYm8pCisjZGVmaW5lIERSTV9JT0NUTF9WM0RfTU1BUF9CTyAg ICAgICAgICAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1YzRF9NTUFQX0JPLCBz dHJ1Y3QgZHJtX3YzZF9tbWFwX2JvKQorI2RlZmluZSBEUk1fSU9DVExfVjNEX0dFVF9QQVJBTSAg ICAgICAgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9WM0RfR0VUX1BBUkFNLCBz dHJ1Y3QgZHJtX3YzZF9nZXRfcGFyYW0pCisjZGVmaW5lIERSTV9JT0NUTF9WM0RfR0VUX0JPX09G RlNFVCAgICAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1YzRF9HRVRfQk9fT0ZG U0VULCBzdHJ1Y3QgZHJtX3YzZF9nZXRfYm9fb2Zmc2V0KQorCisvKioKKyAqIHN0cnVjdCBkcm1f djNkX3N1Ym1pdF9jbCAtIGlvY3RsIGFyZ3VtZW50IGZvciBzdWJtaXR0aW5nIGNvbW1hbmRzIHRv IHRoZSAzRAorICogZW5naW5lLgorICoKKyAqIFRoaXMgYXNrcyB0aGUga2VybmVsIHRvIGhhdmUg dGhlIEdQVSBleGVjdXRlIGFuIG9wdGlvbmFsIGJpbm5lcgorICogY29tbWFuZCBsaXN0LCBhbmQg YSByZW5kZXIgY29tbWFuZCBsaXN0LgorICovCitzdHJ1Y3QgZHJtX3YzZF9zdWJtaXRfY2wgewor CS8qIFBvaW50ZXIgdG8gdGhlIGJpbm5lciBjb21tYW5kIGxpc3QuCisJICoKKwkgKiBUaGlzIGlz IHRoZSBmaXJzdCBzZXQgb2YgY29tbWFuZHMgZXhlY3V0ZWQsIHdoaWNoIHJ1bnMgdGhlCisJICog Y29vcmRpbmF0ZSBzaGFkZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHByaW1pdGl2ZXMgbGFuZCBvbiB0 aGUgc2NyZWVuLAorCSAqIHRoZW4gd3JpdGVzIG91dCB0aGUgc3RhdGUgdXBkYXRlcyBhbmQgZHJh dyBjYWxscyBuZWNlc3NhcnkgcGVyIHRpbGUKKwkgKiB0byB0aGUgdGlsZSBhbGxvY2F0aW9uIEJP LgorCSAqLworCV9fdTMyIGJjbF9zdGFydDsKKworCSAvKiogRW5kIGFkZHJlc3Mgb2YgdGhlIEJD TCAoZmlyc3QgYnl0ZSBhZnRlciB0aGUgQkNMKSAqLworCV9fdTMyIGJjbF9lbmQ7CisKKwkvKiBP ZmZzZXQgb2YgdGhlIHJlbmRlciBjb21tYW5kIGxpc3QuCisJICoKKwkgKiBUaGlzIGlzIHRoZSBz ZWNvbmQgc2V0IG9mIGNvbW1hbmRzIGV4ZWN1dGVkLCB3aGljaCB3aWxsIGVpdGhlcgorCSAqIGV4 ZWN1dGUgdGhlIHRpbGVzIHRoYXQgaGF2ZSBiZWVuIHNldCB1cCBieSB0aGUgQkNMLCBvciBhIGZp eGVkIHNldAorCSAqIG9mIHRpbGVzIChpbiB0aGUgY2FzZSBvZiBSQ0wtb25seSBibGl0cykuCisJ ICovCisJX191MzIgcmNsX3N0YXJ0OworCisJIC8qKiBFbmQgYWRkcmVzcyBvZiB0aGUgUkNMIChm aXJzdCBieXRlIGFmdGVyIHRoZSBSQ0wpICovCisJX191MzIgcmNsX2VuZDsKKworCS8qKiBBbiBv cHRpb25hbCBzeW5jIG9iamVjdCB0byB3YWl0IG9uIGJlZm9yZSBzdGFydGluZyB0aGUgQkNMLiAq LworCV9fdTMyIGluX3N5bmNfYmNsOworCS8qKiBBbiBvcHRpb25hbCBzeW5jIG9iamVjdCB0byB3 YWl0IG9uIGJlZm9yZSBzdGFydGluZyB0aGUgUkNMLiAqLworCV9fdTMyIGluX3N5bmNfcmNsOwor CS8qKiBBbiBvcHRpb25hbCBzeW5jIG9iamVjdCB0byBwbGFjZSB0aGUgY29tcGxldGlvbiBmZW5j ZSBpbi4gKi8KKwlfX3UzMiBvdXRfc3luYzsKKworCS8qIE9mZnNldCBvZiB0aGUgdGlsZSBhbGxv YyBtZW1vcnkKKwkgKgorCSAqIFRoaXMgaXMgb3B0aW9uYWwgb24gVjNEIDMuMyAod2hlcmUgdGhl IENMIGNhbiBzZXQgdGhlIHZhbHVlKSBidXQKKwkgKiByZXF1aXJlZCBvbiBWM0QgNC4xLgorCSAq LworCV9fdTMyIHFtYTsKKworCS8qKiBTaXplIG9mIHRoZSB0aWxlIGFsbG9jIG1lbW9yeS4gKi8K KwlfX3UzMiBxbXM7CisKKwkvKiogT2Zmc2V0IG9mIHRoZSB0aWxlIHN0YXRlIGRhdGEgYXJyYXku ICovCisJX191MzIgcXRzOworCisJLyogUG9pbnRlciB0byBhIHUzMiBhcnJheSBvZiB0aGUgQk9z IHRoYXQgYXJlIHJlZmVyZW5jZWQgYnkgdGhlIGpvYi4KKwkgKi8KKwlfX3U2NCBib19oYW5kbGVz OworCisJLyogTnVtYmVyIG9mIEJPIGhhbmRsZXMgcGFzc2VkIGluIChzaXplIGlzIHRoYXQgdGlt ZXMgNCkuICovCisJX191MzIgYm9faGFuZGxlX2NvdW50OworCisJLyogUGFkLCBtdXN0IGJlIHpl cm8tZmlsbGVkLiAqLworCV9fdTMyIHBhZDsKK307CisKKy8qKgorICogc3RydWN0IGRybV92M2Rf d2FpdF9ibyAtIGlvY3RsIGFyZ3VtZW50IGZvciB3YWl0aW5nIGZvcgorICogY29tcGxldGlvbiBv ZiB0aGUgbGFzdCBEUk1fVjNEX1NVQk1JVF9DTCBvbiBhIEJPLgorICoKKyAqIFRoaXMgaXMgdXNl ZnVsIGZvciBjYXNlcyB3aGVyZSBtdWx0aXBsZSBwcm9jZXNzZXMgbWlnaHQgYmUKKyAqIHJlbmRl cmluZyB0byBhIEJPIGFuZCB5b3Ugd2FudCB0byB3YWl0IGZvciBhbGwgcmVuZGVyaW5nIHRvIGJl CisgKiBjb21wbGV0ZWQuCisgKi8KK3N0cnVjdCBkcm1fdjNkX3dhaXRfYm8geworCV9fdTMyIGhh bmRsZTsKKwlfX3UzMiBwYWQ7CisJX191NjQgdGltZW91dF9uczsKK307CisKKy8qKgorICogc3Ry dWN0IGRybV92M2RfY3JlYXRlX2JvIC0gaW9jdGwgYXJndW1lbnQgZm9yIGNyZWF0aW5nIFYzRCBC T3MuCisgKgorICogVGhlcmUgYXJlIGN1cnJlbnRseSBubyB2YWx1ZXMgZm9yIHRoZSBmbGFncyBh cmd1bWVudCwgYnV0IGl0IG1heSBiZQorICogdXNlZCBpbiBhIGZ1dHVyZSBleHRlbnNpb24uCisg Ki8KK3N0cnVjdCBkcm1fdjNkX2NyZWF0ZV9ibyB7CisJX191MzIgc2l6ZTsKKwlfX3UzMiBmbGFn czsKKwkvKiogUmV0dXJuZWQgR0VNIGhhbmRsZSBmb3IgdGhlIEJPLiAqLworCV9fdTMyIGhhbmRs ZTsKKwkvKioKKwkgKiBSZXR1cm5lZCBvZmZzZXQgZm9yIHRoZSBCTyBpbiB0aGUgVjNEIGFkZHJl c3Mgc3BhY2UuICBUaGlzIG9mZnNldAorCSAqIGlzIHByaXZhdGUgdG8gdGhlIERSTSBmZCBhbmQg aXMgdmFsaWQgZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgR0VNCisJICogaGFuZGxlLgorCSAqCisJ ICogVGhpcyBvZmZzZXQgdmFsdWUgd2lsbCBhbHdheXMgYmUgbm9uemVybywgc2luY2UgdmFyaW91 cyBIVworCSAqIHVuaXRzIHRyZWF0IDAgc3BlY2lhbGx5LgorCSAqLworCV9fdTMyIG9mZnNldDsK K307CisKKy8qKgorICogc3RydWN0IGRybV92M2RfbW1hcF9ibyAtIGlvY3RsIGFyZ3VtZW50IGZv ciBtYXBwaW5nIFYzRCBCT3MuCisgKgorICogVGhpcyBkb2Vzbid0IGFjdHVhbGx5IHBlcmZvcm0g YW4gbW1hcC4gIEluc3RlYWQsIGl0IHJldHVybnMgdGhlCisgKiBvZmZzZXQgeW91IG5lZWQgdG8g dXNlIGluIGFuIG1tYXAgb24gdGhlIERSTSBkZXZpY2Ugbm9kZS4gIFRoaXMKKyAqIG1lYW5zIHRo YXQgdG9vbHMgbGlrZSB2YWxncmluZCBlbmQgdXAga25vd2luZyBhYm91dCB0aGUgbWFwcGVkCisg KiBtZW1vcnkuCisgKgorICogVGhlcmUgYXJlIGN1cnJlbnRseSBubyB2YWx1ZXMgZm9yIHRoZSBm bGFncyBhcmd1bWVudCwgYnV0IGl0IG1heSBiZQorICogdXNlZCBpbiBhIGZ1dHVyZSBleHRlbnNp b24uCisgKi8KK3N0cnVjdCBkcm1fdjNkX21tYXBfYm8geworCS8qKiBIYW5kbGUgZm9yIHRoZSBv YmplY3QgYmVpbmcgbWFwcGVkLiAqLworCV9fdTMyIGhhbmRsZTsKKwlfX3UzMiBmbGFnczsKKwkv Kiogb2Zmc2V0IGludG8gdGhlIGRybSBub2RlIHRvIHVzZSBmb3Igc3Vic2VxdWVudCBtbWFwIGNh bGwuICovCisJX191NjQgb2Zmc2V0OworfTsKKworZW51bSBkcm1fdjNkX3BhcmFtIHsKKwlEUk1f VjNEX1BBUkFNX1YzRF9VSUZDRkcsCisJRFJNX1YzRF9QQVJBTV9WM0RfSFVCX0lERU5UMSwKKwlE Uk1fVjNEX1BBUkFNX1YzRF9IVUJfSURFTlQyLAorCURSTV9WM0RfUEFSQU1fVjNEX0hVQl9JREVO VDMsCisJRFJNX1YzRF9QQVJBTV9WM0RfQ09SRTBfSURFTlQwLAorCURSTV9WM0RfUEFSQU1fVjNE X0NPUkUwX0lERU5UMSwKKwlEUk1fVjNEX1BBUkFNX1YzRF9DT1JFMF9JREVOVDIsCit9OworCitz dHJ1Y3QgZHJtX3YzZF9nZXRfcGFyYW0geworCV9fdTMyIHBhcmFtOworCV9fdTMyIHBhZDsKKwlf X3U2NCB2YWx1ZTsKK307CisKKy8qKgorICogUmV0dXJucyB0aGUgb2Zmc2V0IGZvciB0aGUgQk8g aW4gdGhlIFYzRCBhZGRyZXNzIHNwYWNlIGZvciB0aGlzIERSTSBmZC4KKyAqIFRoaXMgaXMgdGhl IHNhbWUgdmFsdWUgcmV0dXJuZWQgYnkgZHJtX3YzZF9jcmVhdGVfYm8sIGlmIHRoYXQgd2FzIGNh bGxlZAorICogZnJvbSB0aGlzIERSTSBmZC4KKyAqLworc3RydWN0IGRybV92M2RfZ2V0X2JvX29m ZnNldCB7CisJX191MzIgaGFuZGxlOworCV9fdTMyIG9mZnNldDsKK307CisKKyNpZiBkZWZpbmVk KF9fY3BsdXNwbHVzKQorfQorI2VuZGlmCisKKyNlbmRpZiAvKiBfVjNEX0RSTV9IXyAqLwpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0tdWFwaS92YzRfZHJtLmggYi9pbmNsdWRlL2RybS11YXBpL3Zj NF9kcm0uaAppbmRleCA0MTE3MTE3YjQyMDQuLjMxZjUwZGUzOWFjYiAxMDA2NDQKLS0tIGEvaW5j bHVkZS9kcm0tdWFwaS92YzRfZHJtLmgKKysrIGIvaW5jbHVkZS9kcm0tdWFwaS92YzRfZHJtLmgK QEAgLTE4MywxMCArMTgzLDE3IEBAIHN0cnVjdCBkcm1fdmM0X3N1Ym1pdF9jbCB7CiAJLyogSUQg b2YgdGhlIHBlcmZtb24gdG8gYXR0YWNoIHRvIHRoaXMgam9iLiAwIG1lYW5zIG5vIHBlcmZtb24u ICovCiAJX191MzIgcGVyZm1vbmlkOwogCi0JLyogVW51c2VkIGZpZWxkIHRvIGFsaWduIHRoaXMg c3RydWN0IG9uIDY0IGJpdHMuIE11c3QgYmUgc2V0IHRvIDAuCi0JICogSWYgb25lIGV2ZXIgbmVl ZHMgdG8gYWRkIGFuIHUzMiBmaWVsZCB0byB0aGlzIHN0cnVjdCwgdGhpcyBmaWVsZAotCSAqIGNh biBiZSB1c2VkLgorCS8qIFN5bmNvYmogaGFuZGxlIHRvIHdhaXQgb24uIElmIHNldCwgcHJvY2Vz c2luZyBvZiB0aGlzIHJlbmRlciBqb2IKKwkgKiB3aWxsIG5vdCBzdGFydCB1bnRpbCB0aGUgc3lu Y29iaiBpcyBzaWduYWxlZC4gMCBtZWFucyBpZ25vcmUuCiAJICovCisJX191MzIgaW5fc3luYzsK KworCS8qIFN5bmNvYmogaGFuZGxlIHRvIGV4cG9ydCBmZW5jZSB0by4gSWYgc2V0LCB0aGUgZmVu Y2UgaW4gdGhlIHN5bmNvYmoKKwkgKiB3aWxsIGJlIHJlcGxhY2VkIHdpdGggYSBmZW5jZSB0aGF0 IHNpZ25hbHMgdXBvbiBjb21wbGV0aW9uIG9mIHRoaXMKKwkgKiByZW5kZXIgam9iLiAwIG1lYW5z IGlnbm9yZS4KKwkgKi8KKwlfX3UzMiBvdXRfc3luYzsKKwogCV9fdTMyIHBhZDI7CiB9OwogCmRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS11YXBpL3ZpcnRncHVfZHJtLmggYi9pbmNsdWRlL2RybS11 YXBpL3ZpcnRncHVfZHJtLmgKaW5kZXggOTFhMzFmZmVkODI4Li45YTc4MWYwNjExZGYgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvZHJtLXVhcGkvdmlydGdwdV9kcm0uaAorKysgYi9pbmNsdWRlL2RybS11 YXBpL3ZpcnRncHVfZHJtLmgKQEAgLTYzLDYgKzYzLDcgQEAgc3RydWN0IGRybV92aXJ0Z3B1X2V4 ZWNidWZmZXIgewogfTsKIAogI2RlZmluZSBWSVJUR1BVX1BBUkFNXzNEX0ZFQVRVUkVTIDEgLyog ZG8gd2UgaGF2ZSAzRCBmZWF0dXJlcyBpbiB0aGUgaHcgKi8KKyNkZWZpbmUgVklSVEdQVV9QQVJB TV9DQVBTRVRfUVVFUllfRklYIDIgLyogZG8gd2UgaGF2ZSB0aGUgY2Fwc2V0IGZpeCAqLwogCiBz dHJ1Y3QgZHJtX3ZpcnRncHVfZ2V0cGFyYW0gewogCV9fdTY0IHBhcmFtOwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0tdWFwaS92bXdnZnhfZHJtLmggYi9pbmNsdWRlL2RybS11YXBpL3Ztd2dmeF9k cm0uaAppbmRleCAwYmM3ODRmNWUwZGIuLjM5OWY1ODMxN2NmZiAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9kcm0tdWFwaS92bXdnZnhfZHJtLmgKKysrIGIvaW5jbHVkZS9kcm0tdWFwaS92bXdnZnhfZHJt LmgKQEAgLTQwLDYgKzQwLDcgQEAgZXh0ZXJuICJDIiB7CiAKICNkZWZpbmUgRFJNX1ZNV19HRVRf UEFSQU0gICAgICAgICAgICAwCiAjZGVmaW5lIERSTV9WTVdfQUxMT0NfRE1BQlVGICAgICAgICAg MQorI2RlZmluZSBEUk1fVk1XX0FMTE9DX0JPICAgICAgICAgICAgIDEKICNkZWZpbmUgRFJNX1ZN V19VTlJFRl9ETUFCVUYgICAgICAgICAyCiAjZGVmaW5lIERSTV9WTVdfSEFORExFX0NMT1NFICAg ICAgICAgMgogI2RlZmluZSBEUk1fVk1XX0NVUlNPUl9CWVBBU1MgICAgICAgIDMKQEAgLTY4LDYg KzY5LDggQEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIERSTV9WTVdfR0JfU1VSRkFDRV9SRUYgICAg ICAgMjQKICNkZWZpbmUgRFJNX1ZNV19TWU5DQ1BVICAgICAgICAgICAgICAyNQogI2RlZmluZSBE Uk1fVk1XX0NSRUFURV9FWFRFTkRFRF9DT05URVhUIDI2CisjZGVmaW5lIERSTV9WTVdfR0JfU1VS RkFDRV9DUkVBVEVfRVhUICAgMjcKKyNkZWZpbmUgRFJNX1ZNV19HQl9TVVJGQUNFX1JFRl9FWFQg ICAgICAyOAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qKgpAQCAtNzksNiArODIsOSBAQCBleHRl cm4gIkMiIHsKICAqCiAgKiBEUk1fVk1XX1BBUkFNX09WRVJMQVlfSU9DVEw6CiAgKiBEb2VzIHRo ZSBkcml2ZXIgc3VwcG9ydCB0aGUgb3ZlcmxheSBpb2N0bC4KKyAqCisgKiBEUk1fVk1XX1BBUkFN X1NNNF8xCisgKiBTTTRfMSBzdXBwb3J0IGlzIGVuYWJsZWQuCiAgKi8KIAogI2RlZmluZSBEUk1f Vk1XX1BBUkFNX05VTV9TVFJFQU1TICAgICAgMApAQCAtOTQsNiArMTAwLDggQEAgZXh0ZXJuICJD IiB7CiAjZGVmaW5lIERSTV9WTVdfUEFSQU1fTUFYX01PQl9TSVpFICAgICAxMAogI2RlZmluZSBE Uk1fVk1XX1BBUkFNX1NDUkVFTl9UQVJHRVQgICAgMTEKICNkZWZpbmUgRFJNX1ZNV19QQVJBTV9E WCAgICAgICAgICAgICAgIDEyCisjZGVmaW5lIERSTV9WTVdfUEFSQU1fSFdfQ0FQUzIgICAgICAg ICAxMworI2RlZmluZSBEUk1fVk1XX1BBUkFNX1NNNF8xICAgICAgICAgICAgMTQKIAogLyoqCiAg KiBlbnVtIGRybV92bXdfaGFuZGxlX3R5cGUgLSBoYW5kbGUgdHlwZSBmb3IgcmVmIGlvY3RscwpA QCAtMzU2LDkgKzM2NCw5IEBAIHN0cnVjdCBkcm1fdm13X2ZlbmNlX3JlcCB7CiAKIC8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLwogLyoqCi0gKiBEUk1fVk1XX0FMTE9DX0RNQUJVRgorICogRFJNX1ZNV19BTExP Q19CTwogICoKLSAqIEFsbG9jYXRlIGEgRE1BIGJ1ZmZlciB0aGF0IGlzIHZpc2libGUgYWxzbyB0 byB0aGUgaG9zdC4KKyAqIEFsbG9jYXRlIGEgYnVmZmVyIG9iamVjdCB0aGF0IGlzIHZpc2libGUg YWxzbyB0byB0aGUgaG9zdC4KICAqIE5PVEU6IFRoZSBidWZmZXIgaXMKICAqIGlkZW50aWZpZWQg YnkgYSBoYW5kbGUgYW5kIGFuIG9mZnNldCwgd2hpY2ggYXJlIHByaXZhdGUgdG8gdGhlIGd1ZXN0 LCBidXQKICAqIHVzZWFibGUgaW4gdGhlIGNvbW1hbmQgc3RyZWFtLiBUaGUgZ3Vlc3Qga2VybmVs IG1heSB0cmFuc2xhdGUgdGhlc2UKQEAgLTM2NiwyNyArMzc0LDI4IEBAIHN0cnVjdCBkcm1fdm13 X2ZlbmNlX3JlcCB7CiAgKiBiZSB6ZXJvIGF0IGFsbCB0aW1lcywgb3IgaXQgbWF5IGRpc2FwcGVh ciBmcm9tIHRoZSBpbnRlcmZhY2UgYmVmb3JlIGl0IGlzCiAgKiBmaXhlZC4KICAqCi0gKiBUaGUg RE1BIGJ1ZmZlciBtYXkgc3RheSB1c2VyLXNwYWNlIG1hcHBlZCBpbiB0aGUgZ3Vlc3QgYXQgYWxs IHRpbWVzLAorICogVGhlIGJ1ZmZlciBvYmplY3QgbWF5IHN0YXkgdXNlci1zcGFjZSBtYXBwZWQg aW4gdGhlIGd1ZXN0IGF0IGFsbCB0aW1lcywKICAqIGFuZCBpcyB0aHVzIHN1aXRhYmxlIGZvciBz dWItYWxsb2NhdGlvbi4KICAqCi0gKiBETUEgYnVmZmVycyBhcmUgbWFwcGVkIHVzaW5nIHRoZSBt bWFwKCkgc3lzY2FsbCBvbiB0aGUgZHJtIGRldmljZS4KKyAqIEJ1ZmZlciBvYmplY3RzIGFyZSBt YXBwZWQgdXNpbmcgdGhlIG1tYXAoKSBzeXNjYWxsIG9uIHRoZSBkcm0gZGV2aWNlLgogICovCiAK IC8qKgotICogc3RydWN0IGRybV92bXdfYWxsb2NfZG1hYnVmX3JlcQorICogc3RydWN0IGRybV92 bXdfYWxsb2NfYm9fcmVxCiAgKgogICogQHNpemU6IFJlcXVpcmVkIG1pbmltdW0gc2l6ZSBvZiB0 aGUgYnVmZmVyLgogICoKLSAqIElucHV0IGRhdGEgdG8gdGhlIERSTV9WTVdfQUxMT0NfRE1BQlVG IElvY3RsLgorICogSW5wdXQgZGF0YSB0byB0aGUgRFJNX1ZNV19BTExPQ19CTyBJb2N0bC4KICAq LwogCi1zdHJ1Y3QgZHJtX3Ztd19hbGxvY19kbWFidWZfcmVxIHsKK3N0cnVjdCBkcm1fdm13X2Fs bG9jX2JvX3JlcSB7CiAJX191MzIgc2l6ZTsKIAlfX3UzMiBwYWQ2NDsKIH07CisjZGVmaW5lIGRy bV92bXdfYWxsb2NfZG1hYnVmX3JlcSBkcm1fdm13X2FsbG9jX2JvX3JlcQogCiAvKioKLSAqIHN0 cnVjdCBkcm1fdm13X2RtYWJ1Zl9yZXAKKyAqIHN0cnVjdCBkcm1fdm13X2JvX3JlcAogICoKICAq IEBtYXBfaGFuZGxlOiBPZmZzZXQgdG8gdXNlIGluIHRoZSBtbWFwKCkgY2FsbCB1c2VkIHRvIG1h cCB0aGUgYnVmZmVyLgogICogQGhhbmRsZTogSGFuZGxlIHVuaXF1ZSB0byB0aGlzIGJ1ZmZlci4g VXNlZCBmb3IgdW5yZWZlcmVuY2luZy4KQEAgLTM5NSw1MCArNDA0LDMyIEBAIHN0cnVjdCBkcm1f dm13X2FsbG9jX2RtYWJ1Zl9yZXEgewogICogQGN1cl9nbXJfb2Zmc2V0OiBPZmZzZXQgdG8gdXNl IGluIHRoZSBjb21tYW5kIHN0cmVhbSB3aGVuIHRoaXMgYnVmZmVyIGlzCiAgKiByZWZlcmVuY2Vk LiBTZWUgbm90ZSBhYm92ZS4KICAqCi0gKiBPdXRwdXQgZGF0YSBmcm9tIHRoZSBEUk1fVk1XX0FM TE9DX0RNQUJVRiBJb2N0bC4KKyAqIE91dHB1dCBkYXRhIGZyb20gdGhlIERSTV9WTVdfQUxMT0Nf Qk8gSW9jdGwuCiAgKi8KIAotc3RydWN0IGRybV92bXdfZG1hYnVmX3JlcCB7CitzdHJ1Y3QgZHJt X3Ztd19ib19yZXAgewogCV9fdTY0IG1hcF9oYW5kbGU7CiAJX191MzIgaGFuZGxlOwogCV9fdTMy IGN1cl9nbXJfaWQ7CiAJX191MzIgY3VyX2dtcl9vZmZzZXQ7CiAJX191MzIgcGFkNjQ7CiB9Owor I2RlZmluZSBkcm1fdm13X2RtYWJ1Zl9yZXAgZHJtX3Ztd19ib19yZXAKIAogLyoqCi0gKiB1bmlv biBkcm1fdm13X2RtYWJ1Zl9hcmcKKyAqIHVuaW9uIGRybV92bXdfYWxsb2NfYm9fYXJnCiAgKgog ICogQHJlcTogSW5wdXQgZGF0YSBhcyBkZXNjcmliZWQgYWJvdmUuCiAgKiBAcmVwOiBPdXRwdXQg ZGF0YSBhcyBkZXNjcmliZWQgYWJvdmUuCiAgKgotICogQXJndW1lbnQgdG8gdGhlIERSTV9WTVdf QUxMT0NfRE1BQlVGIElvY3RsLgorICogQXJndW1lbnQgdG8gdGhlIERSTV9WTVdfQUxMT0NfQk8g SW9jdGwuCiAgKi8KIAotdW5pb24gZHJtX3Ztd19hbGxvY19kbWFidWZfYXJnIHsKLQlzdHJ1Y3Qg ZHJtX3Ztd19hbGxvY19kbWFidWZfcmVxIHJlcTsKLQlzdHJ1Y3QgZHJtX3Ztd19kbWFidWZfcmVw IHJlcDsKLX07Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoqCi0gKiBEUk1fVk1XX1VOUkVGX0RN QUJVRiAtIEZyZWUgYSBETUEgYnVmZmVyLgotICoKLSAqLwotCi0vKioKLSAqIHN0cnVjdCBkcm1f dm13X3VucmVmX2RtYWJ1Zl9hcmcKLSAqCi0gKiBAaGFuZGxlOiBIYW5kbGUgaW5kaWNhdGluZyB3 aGF0IGJ1ZmZlciB0byBmcmVlLiBPYnRhaW5lZCBmcm9tIHRoZQotICogRFJNX1ZNV19BTExPQ19E TUFCVUYgSW9jdGwuCi0gKgotICogQXJndW1lbnQgdG8gdGhlIERSTV9WTVdfVU5SRUZfRE1BQlVG IElvY3RsLgotICovCi0KLXN0cnVjdCBkcm1fdm13X3VucmVmX2RtYWJ1Zl9hcmcgewotCV9fdTMy IGhhbmRsZTsKLQlfX3UzMiBwYWQ2NDsKK3VuaW9uIGRybV92bXdfYWxsb2NfYm9fYXJnIHsKKwlz dHJ1Y3QgZHJtX3Ztd19hbGxvY19ib19yZXEgcmVxOworCXN0cnVjdCBkcm1fdm13X2JvX3JlcCBy ZXA7CiB9OworI2RlZmluZSBkcm1fdm13X2FsbG9jX2RtYWJ1Zl9hcmcgZHJtX3Ztd19hbGxvY19i b19hcmcKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKioKQEAgLTExMDMsOSArMTA5NCw4IEBAIHVu aW9uIGRybV92bXdfZXh0ZW5kZWRfY29udGV4dF9hcmcgewogICogRFJNX1ZNV19IQU5ETEVfQ0xP U0UgLSBDbG9zZSBhIHVzZXItc3BhY2UgaGFuZGxlIGFuZCByZWxlYXNlIGl0cwogICogdW5kZXJs eWluZyByZXNvdXJjZS4KICAqCi0gKiBOb3RlIHRoYXQgdGhpcyBpb2N0bCBpcyBvdmVybGFpZCBv biB0aGUgRFJNX1ZNV19VTlJFRl9ETUFCVUYgSW9jdGwuCi0gKiBUaGUgaW9jdGwgYXJndW1lbnRz IHRoZXJlZm9yZSBuZWVkIHRvIGJlIGlkZW50aWNhbCBpbiBsYXlvdXQuCi0gKgorICogTm90ZSB0 aGF0IHRoaXMgaW9jdGwgaXMgb3ZlcmxhaWQgb24gdGhlIGRlcHJlY2F0ZWQgRFJNX1ZNV19VTlJF Rl9ETUFCVUYKKyAqIElvY3RsLgogICovCiAKIC8qKgpAQCAtMTExOSw3ICsxMTA5LDEwNyBAQCBz dHJ1Y3QgZHJtX3Ztd19oYW5kbGVfY2xvc2VfYXJnIHsKIAlfX3UzMiBoYW5kbGU7CiAJX191MzIg cGFkNjQ7CiB9OworI2RlZmluZSBkcm1fdm13X3VucmVmX2RtYWJ1Zl9hcmcgZHJtX3Ztd19oYW5k bGVfY2xvc2VfYXJnCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqCisgKiBEUk1fVk1XX0dCX1NV UkZBQ0VfQ1JFQVRFX0VYVCAtIENyZWF0ZSBhIGhvc3QgZ3Vlc3QtYmFja2VkIHN1cmZhY2UuCisg KgorICogQWxsb2NhdGVzIGEgc3VyZmFjZSBoYW5kbGUgYW5kIHF1ZXVlcyBhIGNyZWF0ZSBzdXJm YWNlIGNvbW1hbmQKKyAqIGZvciB0aGUgaG9zdCBvbiB0aGUgZmlyc3QgdXNlIG9mIHRoZSBzdXJm YWNlLiBUaGUgc3VyZmFjZSBJRCBjYW4KKyAqIGJlIHVzZWQgYXMgdGhlIHN1cmZhY2UgSUQgaW4g Y29tbWFuZHMgcmVmZXJlbmNpbmcgdGhlIHN1cmZhY2UuCisgKgorICogVGhpcyBuZXcgY29tbWFu ZCBleHRlbmRzIERSTV9WTVdfR0JfU1VSRkFDRV9DUkVBVEUgYnkgYWRkaW5nIHZlcnNpb24KKyAq IHBhcmFtZXRlciBhbmQgNjQgYml0IHN2Z2EgZmxhZy4KKyAqLworCisvKioKKyAqIGVudW0gZHJt X3Ztd19zdXJmYWNlX3ZlcnNpb24KKyAqCisgKiBAZHJtX3Ztd19zdXJmYWNlX2diX3YxOiBDb3Jy ZXNwb25kcyB0byBjdXJyZW50IGdiIHN1cmZhY2UgZm9ybWF0IHdpdGgKKyAqIHN2Z2EzZCBzdXJm YWNlIGZsYWdzIHNwbGl0IGludG8gMiwgdXBwZXIgaGFsZiBhbmQgbG93ZXIgaGFsZi4KKyAqLwor ZW51bSBkcm1fdm13X3N1cmZhY2VfdmVyc2lvbiB7CisJZHJtX3Ztd19nYl9zdXJmYWNlX3YxCit9 OworCisvKioKKyAqIHN0cnVjdCBkcm1fdm13X2diX3N1cmZhY2VfY3JlYXRlX2V4dF9yZXEKKyAq CisgKiBAYmFzZTogU3VyZmFjZSBjcmVhdGUgcGFyYW1ldGVycy4KKyAqIEB2ZXJzaW9uOiBWZXJz aW9uIG9mIHN1cmZhY2UgY3JlYXRlIGlvY3RsLgorICogQHN2Z2EzZF9mbGFnc191cHBlcl8zMl9i aXRzOiBVcHBlciAzMiBiaXRzIG9mIHN2Z2EzZCBmbGFncy4KKyAqIEBtdWx0aXNhbXBsZV9wYXR0 ZXJuOiBNdWx0aXNhbXBsaW5nIHBhdHRlcm4gd2hlbiBtc2FhIGlzIHN1cHBvcnRlZC4KKyAqIEBx dWFsaXR5X2xldmVsOiBQcmVjaXNpb24gc2V0dGluZ3MgZm9yIGVhY2ggc2FtcGxlLgorICogQG11 c3RfYmVfemVybzogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2FnZS4KKyAqCisgKiBJbnB1dCBhcmd1 bWVudCB0byB0aGUgIERSTV9WTVdfR0JfU1VSRkFDRV9DUkVBVEVfRVhUIElvY3RsLgorICogUGFy dCBvZiBvdXRwdXQgYXJndW1lbnQgZm9yIHRoZSBEUk1fVk1XX0dCX1NVUkZBQ0VfUkVGX0VYVCBJ b2N0bC4KKyAqLworc3RydWN0IGRybV92bXdfZ2Jfc3VyZmFjZV9jcmVhdGVfZXh0X3JlcSB7CisJ c3RydWN0IGRybV92bXdfZ2Jfc3VyZmFjZV9jcmVhdGVfcmVxIGJhc2U7CisJZW51bSBkcm1fdm13 X3N1cmZhY2VfdmVyc2lvbiB2ZXJzaW9uOworCXVpbnQzMl90IHN2Z2EzZF9mbGFnc191cHBlcl8z Ml9iaXRzOworCVNWR0EzZE1TUGF0dGVybiBtdWx0aXNhbXBsZV9wYXR0ZXJuOworCVNWR0EzZE1T UXVhbGl0eUxldmVsIHF1YWxpdHlfbGV2ZWw7CisJdWludDY0X3QgbXVzdF9iZV96ZXJvOworfTsK KworLyoqCisgKiB1bmlvbiBkcm1fdm13X2diX3N1cmZhY2VfY3JlYXRlX2V4dF9hcmcKKyAqCisg KiBAcmVxOiBJbnB1dCBhcmd1bWVudCBhcyBkZXNjcmliZWQgYWJvdmUuCisgKiBAcmVwOiBPdXRw dXQgYXJndW1lbnQgYXMgZGVzY3JpYmVkIGFib3ZlLgorICoKKyAqIEFyZ3VtZW50IHRvIHRoZSBE Uk1fVk1XX0dCX1NVUkZBQ0VfQ1JFQVRFX0VYVCBpb2N0bC4KKyAqLwordW5pb24gZHJtX3Ztd19n Yl9zdXJmYWNlX2NyZWF0ZV9leHRfYXJnIHsKKwlzdHJ1Y3QgZHJtX3Ztd19nYl9zdXJmYWNlX2Ny ZWF0ZV9yZXAgcmVwOworCXN0cnVjdCBkcm1fdm13X2diX3N1cmZhY2VfY3JlYXRlX2V4dF9yZXEg cmVxOworfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioKKyAqIERSTV9WTVdfR0JfU1VSRkFD RV9SRUZfRVhUIC0gUmVmZXJlbmNlIGEgaG9zdCBzdXJmYWNlLgorICoKKyAqIFB1dHMgYSByZWZl cmVuY2Ugb24gYSBob3N0IHN1cmZhY2Ugd2l0aCBhIGdpdmVuIGhhbmRsZSwgYXMgcHJldmlvdXNs eQorICogcmV0dXJuZWQgYnkgdGhlIERSTV9WTVdfR0JfU1VSRkFDRV9DUkVBVEVfRVhUIGlvY3Rs LgorICogQSByZWZlcmVuY2Ugd2lsbCBtYWtlIHN1cmUgdGhlIHN1cmZhY2UgaXNuJ3QgZGVzdHJv eWVkIHdoaWxlIHdlIGhvbGQKKyAqIGl0IGFuZCB3aWxsIGFsbG93IHRoZSBjYWxsaW5nIGNsaWVu dCB0byB1c2UgdGhlIHN1cmZhY2UgaGFuZGxlIGluCisgKiB0aGUgY29tbWFuZCBzdHJlYW0uCisg KgorICogT24gc3VjY2Vzc2Z1bCByZXR1cm4sIHRoZSBJb2N0bCByZXR1cm5zIHRoZSBzdXJmYWNl IGluZm9ybWF0aW9uIGdpdmVuCisgKiB0byBhbmQgcmV0dXJuZWQgZnJvbSB0aGUgRFJNX1ZNV19H Ql9TVVJGQUNFX0NSRUFURV9FWFQgaW9jdGwuCisgKi8KIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3Zt d19nYl9zdXJmYWNlX3JlZl9leHRfcmVwCisgKgorICogQGNyZXE6IFRoZSBkYXRhIHVzZWQgYXMg aW5wdXQgd2hlbiB0aGUgc3VyZmFjZSB3YXMgY3JlYXRlZCwgYXMgZGVzY3JpYmVkCisgKiAgICAg ICAgYWJvdmUgYXQgInN0cnVjdCBkcm1fdm13X2diX3N1cmZhY2VfY3JlYXRlX2V4dF9yZXEiCisg KiBAY3JlcDogQWRkaXRpb25hbCBkYXRhIG91dHB1dCB3aGVuIHRoZSBzdXJmYWNlIHdhcyBjcmVh dGVkLCBhcyBkZXNjcmliZWQKKyAqICAgICAgICBhYm92ZSBhdCAic3RydWN0IGRybV92bXdfZ2Jf c3VyZmFjZV9jcmVhdGVfcmVwIgorICoKKyAqIE91dHB1dCBBcmd1bWVudCB0byB0aGUgRFJNX1ZN V19HQl9TVVJGQUNFX1JFRl9FWFQgaW9jdGwuCisgKi8KK3N0cnVjdCBkcm1fdm13X2diX3N1cmZh Y2VfcmVmX2V4dF9yZXAgeworCXN0cnVjdCBkcm1fdm13X2diX3N1cmZhY2VfY3JlYXRlX2V4dF9y ZXEgY3JlcTsKKwlzdHJ1Y3QgZHJtX3Ztd19nYl9zdXJmYWNlX2NyZWF0ZV9yZXAgY3JlcDsKK307 CisKKy8qKgorICogdW5pb24gZHJtX3Ztd19nYl9zdXJmYWNlX3JlZmVyZW5jZV9leHRfYXJnCisg KgorICogQHJlcTogSW5wdXQgZGF0YSBhcyBkZXNjcmliZWQgYWJvdmUgYXQgInN0cnVjdCBkcm1f dm13X3N1cmZhY2VfYXJnIgorICogQHJlcDogT3V0cHV0IGRhdGEgYXMgZGVzY3JpYmVkIGFib3Zl IGF0CisgKiAgICAgICAic3RydWN0IGRybV92bXdfZ2Jfc3VyZmFjZV9yZWZfZXh0X3JlcCIKKyAq CisgKiBBcmd1bWVudCB0byB0aGUgRFJNX1ZNV19HQl9TVVJGQUNFX1JFRiBJb2N0bC4KKyAqLwor dW5pb24gZHJtX3Ztd19nYl9zdXJmYWNlX3JlZmVyZW5jZV9leHRfYXJnIHsKKwlzdHJ1Y3QgZHJt X3Ztd19nYl9zdXJmYWNlX3JlZl9leHRfcmVwIHJlcDsKKwlzdHJ1Y3QgZHJtX3Ztd19zdXJmYWNl X2FyZyByZXE7Cit9OwogCiAjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKIH0KLS0gCjIuMTcuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==