From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v4 03/27] ARM: GICv3: allocate LPI pending and property table Date: Mon, 3 Apr 2017 21:28:05 +0100 Message-ID: <20170403202829.7278-4-andre.przywara@arm.com> References: <20170403202829.7278-1-andre.przywara@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cv8Yf-0004tg-Um for xen-devel@lists.xenproject.org; Mon, 03 Apr 2017 20:26:38 +0000 In-Reply-To: <20170403202829.7278-1-andre.przywara@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Julien Grall , Stefano Stabellini Cc: xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org VGhlIEFSTSBHSUN2MyBwcm92aWRlcyBhIG5ldyBraW5kIG9mIGludGVycnVwdCBjYWxsZWQgTFBJ cy4KVGhlIHBlbmRpbmcgYml0cyBhbmQgdGhlIGNvbmZpZ3VyYXRpb24gZGF0YSAocHJpb3JpdHks IGVuYWJsZSBiaXRzKSBmb3IKdGhvc2UgTFBJcyBhcmUgc3RvcmVkIGluIHRhYmxlcyBpbiBub3Jt YWwgbWVtb3J5LCB3aGljaCBzb2Z0d2FyZSBoYXMgdG8KcHJvdmlkZSB0byB0aGUgaGFyZHdhcmUu CkFsbG9jYXRlIHRoZSByZXF1aXJlZCBtZW1vcnksIGluaXRpYWxpemUgaXQgYW5kIGhhbmQgaXQg b3ZlciB0byBlYWNoCnJlZGlzdHJpYnV0b3IuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBMUElzIHRv IGJlIHVzZWQgY2FuIGJlIGFkanVzdGVkIHdpdGgKdGhlIGNvbW1hbmQgbGluZSBvcHRpb24gIm1h eF9scGlfYml0cyIsIHdoaWNoIGRlZmF1bHRzIHRvIDIwIGJpdHMsCmNvdmVyaW5nIGFib3V0IG9u ZSBtaWxsaW9uIExQSXMuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZSBQcnp5d2FyYSA8YW5kcmUucHJ6 eXdhcmFAYXJtLmNvbT4KLS0tCiBkb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93biB8 ICAgOSArKwogeGVuL2FyY2gvYXJtL01ha2VmaWxlICAgICAgICAgICAgICAgfCAgIDEgKwogeGVu L2FyY2gvYXJtL2dpYy12My1scGkuYyAgICAgICAgICAgfCAyMTMgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiB4ZW4vYXJjaC9hcm0vZ2ljLXYzLmMgICAgICAgICAgICAgICB8 ICAxNyArKysKIHhlbi9pbmNsdWRlL2FzbS1hcm0vYml0b3BzLmggICAgICAgIHwgICAxICsKIHhl bi9pbmNsdWRlL2FzbS1hcm0vY29uZmlnLmggICAgICAgIHwgICAyICsKIHhlbi9pbmNsdWRlL2Fz bS1hcm0vZ2ljX3YzX2RlZnMuaCAgIHwgIDU0ICsrKysrKysrLQogeGVuL2luY2x1ZGUvYXNtLWFy bS9naWNfdjNfaXRzLmggICAgfCAgMTUgKystCiB4ZW4vaW5jbHVkZS9hc20tYXJtL2lycS5oICAg ICAgICAgICB8ICAgOCArKwogeGVuL2luY2x1ZGUveGVuL2JpdG9wcy5oICAgICAgICAgICAgfCAg IDUgKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDMyMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9hcmNoL2FybS9naWMtdjMtbHBpLmMKCmRpZmYgLS1n aXQgYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93biBiL2RvY3MvbWlzYy94ZW4t Y29tbWFuZC1saW5lLm1hcmtkb3duCmluZGV4IDVhOTA2MjUuLmFlOGRlNGYgMTAwNjQ0Ci0tLSBh L2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duCisrKyBiL2RvY3MvbWlzYy94ZW4t Y29tbWFuZC1saW5lLm1hcmtkb3duCkBAIC0xMTgxLDYgKzExODEsMTUgQEAgc3BlY2lmaWMgc2l6 ZSwgdHlwaWNhbGx5IDggb3IgMTYgYnl0ZXMuIFRoaXMgdmFsdWUgaXMgZ2l2ZW4gYXMgdGhlIG51 bWJlcgogb2YgYml0cyByZXF1aXJlZCB0byBob2xkIG9uZSBkZXZpY2UgSUQuCiBEZWZhdWx0cyB0 byB0aGUgbWFjaGluZSBwcm92aWRlZCB2YWx1ZSwgd2hpY2ggaXMgYXQgbW9zdCAzMiBiaXRzLgog CisjIyMgbWF4XF9scGlcX2JpdHMKKz4gYD0gPGludGVnZXI+YAorCitTcGVjaWZpZXMgdGhlIG51 bWJlciBvZiBBUk0gR0lDdjMgTFBJIGludGVycnVwdHMgdG8gYWxsb2NhdGUgb24gdGhlIGhvc3Qs CitwcmVzZW50ZWQgYXMgdGhlIG51bWJlciBvZiBiaXRzIG5lZWRlZCB0byBlbmNvZGUgaXQuIFRo aXMgbXVzdCBiZSBhdCBsZWFzdAorMTQgYW5kIG5vdCBleGNlZWQgMzIsIGFuZCBlYWNoIExQSSBy ZXF1aXJlcyBvbmUgYnl0ZSAoY29uZmlndXJhdGlvbikgYW5kCitvbmUgcGVuZGluZyBiaXQgdG8g YmUgYWxsb2NhdGVkLgorRGVmYXVsdHMgdG8gMjAgYml0cyAodG8gY292ZXIgYXQgbW9zdCAxMDQ4 NTc2IGludGVycnVwdHMpLgorCiAjIyMgbWNlCiA+IGA9IDxpbnRlZ2VyPmAKIApkaWZmIC0tZ2l0 IGEveGVuL2FyY2gvYXJtL01ha2VmaWxlIGIveGVuL2FyY2gvYXJtL01ha2VmaWxlCmluZGV4IDM5 YzBhMDMuLjZiZTg1YWIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9NYWtlZmlsZQorKysgYi94 ZW4vYXJjaC9hcm0vTWFrZWZpbGUKQEAgLTE5LDYgKzE5LDcgQEAgb2JqLXkgKz0gZ2ljLm8KIG9i ai15ICs9IGdpYy12Mi5vCiBvYmotJChDT05GSUdfSEFTX0dJQ1YzKSArPSBnaWMtdjMubwogb2Jq LSQoQ09ORklHX0hBU19JVFMpICs9IGdpYy12My1pdHMubworb2JqLSQoQ09ORklHX0hBU19JVFMp ICs9IGdpYy12My1scGkubwogb2JqLXkgKz0gZ3Vlc3Rjb3B5Lm8KIG9iai15ICs9IGh2bS5vCiBv YmoteSArPSBpby5vCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLWxwaS5jIGIveGVu L2FyY2gvYXJtL2dpYy12My1scGkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5hMDAzYTcyCi0tLSAvZGV2L251bGwKKysrIGIveGVuL2FyY2gvYXJtL2dpYy12My1scGkuYwpA QCAtMCwwICsxLDIxMyBAQAorLyoKKyAqIHhlbi9hcmNoL2FybS9naWMtdjMtbHBpLmMKKyAqCisg KiBBUk0gR0lDdjMgTG9jYWxpdHktc3BlY2lmaWMgUGVyaXBoZXJhbCBJbnRlcnJ1cHRzIChMUEkp IHN1cHBvcnQKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYsMjAxNyAtIEFSTSBMdGQKKyAqCisg KiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IHVuZGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZS4KKyAqCisgKiBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNpbmNsdWRl IDx4ZW4vbGliLmg+CisjaW5jbHVkZSA8eGVuL21tLmg+CisjaW5jbHVkZSA8eGVuL3NpemVzLmg+ CisjaW5jbHVkZSA8YXNtL2dpYy5oPgorI2luY2x1ZGUgPGFzbS9naWNfdjNfZGVmcy5oPgorI2lu Y2x1ZGUgPGFzbS9naWNfdjNfaXRzLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8 YXNtL3BhZ2UuaD4KKworI2RlZmluZSBMUElfUFJPUFRBQkxFX05FRURTX0ZMVVNISU5HICAgICgx VSA8PCAwKQorLyogR2xvYmFsIHN0YXRlICovCitzdGF0aWMgc3RydWN0IHsKKyAgICAvKiBUaGUg Z2xvYmFsIExQSSBwcm9wZXJ0eSB0YWJsZSwgc2hhcmVkIGJ5IGFsbCByZWRpc3RyaWJ1dG9ycy4g Ki8KKyAgICB1aW50OF90ICpscGlfcHJvcGVydHk7CisgICAgLyoKKyAgICAgKiBOdW1iZXIgb2Yg cGh5c2ljYWwgTFBJcyB0aGUgaG9zdCBzdXBwb3J0cy4gVGhpcyBpcyBhIHByb3BlcnR5IG9mCisg ICAgICogdGhlIEdJQyBoYXJkd2FyZS4gV2UgZGVwYXJ0IGZyb20gdGhlIGhhYml0IG9mIG5hbWlu ZyB0aGVzZSB0aGluZ3MKKyAgICAgKiAicGh5c2ljYWwiIGluIFhlbiwgYXMgdGhlIEdJQ3YzLzQg c3BlYyB1c2VzIHRoZSB0ZXJtICJwaHlzaWNhbCBMUEkiCisgICAgICogaW4gYSBkaWZmZXJlbnQg Y29udGV4dCB0byBkaWZmZXJlbnRpYXRlIHRoZW0gZnJvbSAidmlydHVhbCBMUElzIi4KKyAgICAg Ki8KKyAgICB1bnNpZ25lZCBsb25nIGludCBucl9ob3N0X2xwaXM7CisgICAgdW5zaWduZWQgaW50 IGZsYWdzOworfSBscGlfZGF0YTsKKworc3RydWN0IGxwaV9yZWRpc3RfZGF0YSB7CisgICAgdm9p ZCAgICAgICAgICAgICAgICAqcGVuZGluZ190YWJsZTsKK307CisKK3N0YXRpYyBERUZJTkVfUEVS X0NQVShzdHJ1Y3QgbHBpX3JlZGlzdF9kYXRhLCBscGlfcmVkaXN0KTsKKworI2RlZmluZSBNQVhf UEhZU19MUElTICAgKGxwaV9kYXRhLm5yX2hvc3RfbHBpcyAtIExQSV9PRkZTRVQpCisKK3N0YXRp YyBpbnQgZ2ljdjNfbHBpX2FsbG9jYXRlX3BlbmR0YWJsZSh1aW50NjRfdCAqcmVnKQoreworICAg IHVpbnQ2NF90IHZhbDsKKyAgICB2b2lkICpwZW5kdGFibGU7CisKKyAgICBpZiAoIHRoaXNfY3B1 KGxwaV9yZWRpc3QpLnBlbmRpbmdfdGFibGUgKQorICAgICAgICByZXR1cm4gLUVCVVNZOworCisg ICAgdmFsICA9IEdJQ19CQVNFUl9DQUNIRV9SYVdhV2IgPDwgR0lDUl9QRU5EQkFTRVJfSU5ORVJf Q0FDSEVBQklMSVRZX1NISUZUOworICAgIHZhbCB8PSBHSUNfQkFTRVJfQ0FDSEVfU2FtZUFzSW5u ZXIgPDwgR0lDUl9QRU5EQkFTRVJfT1VURVJfQ0FDSEVBQklMSVRZX1NISUZUOworICAgIHZhbCB8 PSBHSUNfQkFTRVJfSW5uZXJTaGFyZWFibGUgPDwgR0lDUl9QRU5EQkFTRVJfU0hBUkVBQklMSVRZ X1NISUZUOworCisgICAgLyoKKyAgICAgKiBUaGUgcGVuZGluZyB0YWJsZSBob2xkcyBvbmUgYml0 IHBlciBMUEkgYW5kIGV2ZW4gY292ZXJzIGJpdHMgZm9yCisgICAgICogaW50ZXJydXB0IElEcyBi ZWxvdyA4MTkyLCBzbyB3ZSBhbGxvY2F0ZSB0aGUgZnVsbCByYW5nZS4KKyAgICAgKiBUaGUgR0lD djMgaW1wb3NlcyBhIDY0S0IgYWxpZ25tZW50IHJlcXVpcmVtZW50LCBhbHNvIHJlcXVpcmVzCisg ICAgICogcGh5c2ljYWxseSBjb250aWd1b3VzIG1lbW9yeS4KKyAgICAgKi8KKyAgICBwZW5kdGFi bGUgPSBfeHphbGxvYyhscGlfZGF0YS5ucl9ob3N0X2xwaXMgLyA4LCBTWl82NEspOworICAgIGlm ICggIXBlbmR0YWJsZSApCisgICAgICAgIHJldHVybiAtRU5PTUVNOworCisgICAgLyogTWFrZSBz dXJlIHRoZSBwaHlzaWNhbCBhZGRyZXNzIGNhbiBiZSBlbmNvZGVkIGluIHRoZSByZWdpc3Rlci4g Ki8KKyAgICBpZiAoICh2aXJ0X3RvX21hZGRyKHBlbmR0YWJsZSkgJiB+R0VOTUFTS19VTEwoNTEs IDE2KSkgKQorICAgIHsKKyAgICAgICAgeGZyZWUocGVuZHRhYmxlKTsKKyAgICAgICAgcmV0dXJu IC1FUkFOR0U7CisgICAgfQorICAgIGNsZWFuX2FuZF9pbnZhbGlkYXRlX2RjYWNoZV92YV9yYW5n ZShwZW5kdGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxw aV9kYXRhLm5yX2hvc3RfbHBpcyAvIDgpOworCisgICAgdGhpc19jcHUobHBpX3JlZGlzdCkucGVu ZGluZ190YWJsZSA9IHBlbmR0YWJsZTsKKworICAgIHZhbCB8PSBHSUNSX1BFTkRCQVNFUl9QVFo7 CisKKyAgICB2YWwgfD0gdmlydF90b19tYWRkcihwZW5kdGFibGUpOworCisgICAgKnJlZyA9IHZh bDsKKworICAgIHJldHVybiAwOworfQorCisvKgorICogVGVsbCBhIHJlZGlzdHJpYnV0b3IgYWJv dXQgdGhlIChzaGFyZWQpIHByb3BlcnR5IHRhYmxlLCBhbGxvY2F0aW5nIG9uZQorICogaWYgbm90 IGFscmVhZHkgZG9uZS4KKyAqLworc3RhdGljIGludCBnaWN2M19scGlfc2V0X3Byb3B0YWJsZSh2 b2lkIF9faW9tZW0gKiByZGlzdF9iYXNlKQoreworICAgIHVpbnQ2NF90IHJlZzsKKworICAgIHJl ZyAgPSBHSUNfQkFTRVJfQ0FDSEVfUmFXYVdiIDw8IEdJQ1JfUFJPUEJBU0VSX0lOTkVSX0NBQ0hF QUJJTElUWV9TSElGVDsKKyAgICByZWcgfD0gR0lDX0JBU0VSX0NBQ0hFX1NhbWVBc0lubmVyIDw8 IEdJQ1JfUFJPUEJBU0VSX09VVEVSX0NBQ0hFQUJJTElUWV9TSElGVDsKKyAgICByZWcgfD0gR0lD X0JBU0VSX0lubmVyU2hhcmVhYmxlIDw8IEdJQ1JfUFJPUEJBU0VSX1NIQVJFQUJJTElUWV9TSElG VDsKKworICAgIC8qCisgICAgICogVGhlIHByb3BlcnR5IHRhYmxlIGlzIHNoYXJlZCBhY3Jvc3Mg YWxsIHJlZGlzdHJpYnV0b3JzLCBzbyBhbGxvY2F0ZQorICAgICAqIHRoaXMgb25seSBvbmNlLCBi dXQgcmV0dXJuIHRoZSBzYW1lIHZhbHVlIG9uIHN1YnNlcXVlbnQgY2FsbHMuCisgICAgICovCisg ICAgaWYgKCAhbHBpX2RhdGEubHBpX3Byb3BlcnR5ICkKKyAgICB7CisgICAgICAgIC8qIFRoZSBw cm9wZXJ0eSB0YWJsZSBob2xkcyBvbmUgYnl0ZSBwZXIgTFBJLiAqLworICAgICAgICB2b2lkICp0 YWJsZSA9IF94bWFsbG9jKGxwaV9kYXRhLm5yX2hvc3RfbHBpcywgU1pfNEspOworCisgICAgICAg IGlmICggIXRhYmxlICkKKyAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOworCisgICAgICAgIC8q IE1ha2Ugc3VyZSB0aGUgcGh5c2ljYWwgYWRkcmVzcyBjYW4gYmUgZW5jb2RlZCBpbiB0aGUgcmVn aXN0ZXIuICovCisgICAgICAgIGlmICggKHZpcnRfdG9fbWFkZHIodGFibGUpICYgfkdFTk1BU0tf VUxMKDUxLCAxMikpICkKKyAgICAgICAgeworICAgICAgICAgICAgeGZyZWUodGFibGUpOworICAg ICAgICAgICAgcmV0dXJuIC1FUkFOR0U7CisgICAgICAgIH0KKyAgICAgICAgbWVtc2V0KHRhYmxl LCBHSUNfUFJJX0lSUSB8IExQSV9QUk9QX1JFUzEsIE1BWF9QSFlTX0xQSVMpOworICAgICAgICBj bGVhbl9hbmRfaW52YWxpZGF0ZV9kY2FjaGVfdmFfcmFuZ2UodGFibGUsIE1BWF9QSFlTX0xQSVMp OworICAgICAgICBscGlfZGF0YS5scGlfcHJvcGVydHkgPSB0YWJsZTsKKyAgICB9CisKKyAgICAv KiBFbmNvZGUgdGhlIG51bWJlciBvZiBiaXRzIG5lZWRlZCwgbWludXMgb25lICovCisgICAgcmVn IHw9IChmbHMobHBpX2RhdGEubnJfaG9zdF9scGlzIC0gMSkgLSAxKTsKKworICAgIHJlZyB8PSB2 aXJ0X3RvX21hZGRyKGxwaV9kYXRhLmxwaV9wcm9wZXJ0eSk7CisKKyAgICB3cml0ZXFfcmVsYXhl ZChyZWcsIHJkaXN0X2Jhc2UgKyBHSUNSX1BST1BCQVNFUik7CisgICAgcmVnID0gcmVhZHFfcmVs YXhlZChyZGlzdF9iYXNlICsgR0lDUl9QUk9QQkFTRVIpOworCisgICAgLyogSWYgd2UgY2FuJ3Qg ZG8gc2hhcmVhYmxlLCB3ZSBoYXZlIHRvIGRyb3AgY2FjaGVhYmlsaXR5IGFzIHdlbGwuICovCisg ICAgaWYgKCAhKHJlZyAmIEdJQ1JfUFJPUEJBU0VSX1NIQVJFQUJJTElUWV9NQVNLKSApCisgICAg eworICAgICAgICByZWcgJj0gfkdJQ1JfUFJPUEJBU0VSX0lOTkVSX0NBQ0hFQUJJTElUWV9NQVNL OworICAgICAgICByZWcgfD0gR0lDX0JBU0VSX0NBQ0hFX25DIDw8IEdJQ1JfUFJPUEJBU0VSX0lO TkVSX0NBQ0hFQUJJTElUWV9TSElGVDsKKyAgICB9CisKKyAgICAvKiBSZW1lbWJlciB0aGF0IHdl IGhhdmUgdG8gZmx1c2ggdGhlIHByb3BlcnR5IHRhYmxlIGlmIG5vbi1jYWNoZWFibGUuICovCisg ICAgaWYgKCAocmVnICYgR0lDUl9QUk9QQkFTRVJfSU5ORVJfQ0FDSEVBQklMSVRZX01BU0spIDw9 IEdJQ19CQVNFUl9DQUNIRV9uQyApCisgICAgeworICAgICAgICBscGlfZGF0YS5mbGFncyB8PSBM UElfUFJPUFRBQkxFX05FRURTX0ZMVVNISU5HOworICAgICAgICAvKiBVcGRhdGUgdGhlIHJlZGlz dHJpYnV0b3JzIGtub3dsZWRnZSBhYm91dCB0aGUgYXR0cmlidXRlcy4gKi8KKyAgICAgICAgd3Jp dGVxX3JlbGF4ZWQocmVnLCByZGlzdF9iYXNlICsgR0lDUl9QUk9QQkFTRVIpOworICAgIH0KKwor ICAgIHJldHVybiAwOworfQorCitpbnQgZ2ljdjNfbHBpX2luaXRfcmRpc3Qodm9pZCBfX2lvbWVt ICogcmRpc3RfYmFzZSkKK3sKKyAgICB1aW50MzJfdCByZWc7CisgICAgdWludDY0X3QgdGFibGVf cmVnOworICAgIGludCByZXQ7CisKKyAgICAvKiBXZSBkb24ndCBzdXBwb3J0IExQSXMgd2l0aG91 dCBhbiBJVFMuICovCisgICAgaWYgKCAhZ2ljdjNfaXRzX2hvc3RfaGFzX2l0cygpICkKKyAgICAg ICAgcmV0dXJuIC1FTk9ERVY7CisKKyAgICAvKiBNYWtlIHN1cmUgTFBJcyBhcmUgZGlzYWJsZWQg YmVmb3JlIHNldHRpbmcgdXAgdGhlIHRhYmxlcy4gKi8KKyAgICByZWcgPSByZWFkbF9yZWxheGVk KHJkaXN0X2Jhc2UgKyBHSUNSX0NUTFIpOworICAgIGlmICggcmVnICYgR0lDUl9DVExSX0VOQUJM RV9MUElTICkKKyAgICAgICAgcmV0dXJuIC1FQlVTWTsKKworICAgIHJldCA9IGdpY3YzX2xwaV9h bGxvY2F0ZV9wZW5kdGFibGUoJnRhYmxlX3JlZyk7CisgICAgaWYgKHJldCkKKyAgICAgICAgcmV0 dXJuIHJldDsKKyAgICB3cml0ZXFfcmVsYXhlZCh0YWJsZV9yZWcsIHJkaXN0X2Jhc2UgKyBHSUNS X1BFTkRCQVNFUik7CisgICAgdGFibGVfcmVnID0gcmVhZHFfcmVsYXhlZChyZGlzdF9iYXNlICsg R0lDUl9QRU5EQkFTRVIpOworCisgICAgLyogSWYgdGhlIGhhcmR3YXJlIHJlcG9ydHMgbm9uLXNo YXJlYWJsZSwgZHJvcCBjYWNoZWFiaWxpdHkgYXMgd2VsbC4gKi8KKyAgICBpZiAoICEodGFibGVf cmVnICYgR0lDUl9QRU5EQkFTRVJfU0hBUkVBQklMSVRZX01BU0spICkKKyAgICB7CisgICAgICAg IHRhYmxlX3JlZyAmPSBHSUNSX1BFTkRCQVNFUl9TSEFSRUFCSUxJVFlfTUFTSzsKKyAgICAgICAg dGFibGVfcmVnICY9IEdJQ1JfUEVOREJBU0VSX0lOTkVSX0NBQ0hFQUJJTElUWV9NQVNLOworICAg ICAgICB0YWJsZV9yZWcgfD0gR0lDX0JBU0VSX0NBQ0hFX25DIDw8IEdJQ1JfUEVOREJBU0VSX0lO TkVSX0NBQ0hFQUJJTElUWV9TSElGVDsKKworICAgICAgICB3cml0ZXFfcmVsYXhlZCh0YWJsZV9y ZWcsIHJkaXN0X2Jhc2UgKyBHSUNSX1BFTkRCQVNFUik7CisgICAgfQorCisgICAgcmV0dXJuIGdp Y3YzX2xwaV9zZXRfcHJvcHRhYmxlKHJkaXN0X2Jhc2UpOworfQorCitzdGF0aWMgdW5zaWduZWQg aW50IG1heF9scGlfYml0cyA9IDIwOworaW50ZWdlcl9wYXJhbSgibWF4X2xwaV9iaXRzIiwgbWF4 X2xwaV9iaXRzKTsKKworaW50IGdpY3YzX2xwaV9pbml0X2hvc3RfbHBpcyh1bnNpZ25lZCBpbnQg aHdfbHBpX2JpdHMpCit7CisgICAgbHBpX2RhdGEubnJfaG9zdF9scGlzID0gQklUX1VMTChtaW4o aHdfbHBpX2JpdHMsIG1heF9scGlfYml0cykpOworCisgICAgaWYgKCBscGlfZGF0YS5ucl9ob3N0 X2xwaXMgPiAxNiAqIDEwMjQgKiAxMDI0ICkKKyAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5H ICJBbGxvY2F0aW5nICVsdSBob3N0IExQSXMsIHBsZWFzZSBsaW1pdCB3aXRoIC0tbWF4X2xwaV9i aXRzXG4iLAorICAgICAgICAgICAgICAgIGxwaV9kYXRhLm5yX2hvc3RfbHBpcyk7CisKKyAgICBw cmludGsoIkdJQ3YzOiB1c2luZyBhdCBtb3N0ICVsdSBMUElzIG9uIHRoZSBob3N0LlxuIiwgTUFY X1BIWVNfTFBJUyk7CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIExvY2FsIHZhcmlhYmxl czoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0 OiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gvYXJtL2dpYy12My5jIGIveGVuL2FyY2gvYXJtL2dpYy12My5jCmluZGV4IGQzZDU3 ODQuLjU0ZDIyMzUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9naWMtdjMuYworKysgYi94ZW4v YXJjaC9hcm0vZ2ljLXYzLmMKQEAgLTU0Nyw2ICs1NDcsOSBAQCBzdGF0aWMgdm9pZCBfX2luaXQg Z2ljdjNfZGlzdF9pbml0KHZvaWQpCiAgICAgdHlwZSA9IHJlYWRsX3JlbGF4ZWQoR0lDRCArIEdJ Q0RfVFlQRVIpOwogICAgIG5yX2xpbmVzID0gMzIgKiAoKHR5cGUgJiBHSUNEX1RZUEVfTElORVMp ICsgMSk7CiAKKyAgICBpZiAoIHR5cGUgJiBHSUNEX1RZUEVfTFBJUyApCisgICAgICAgIGdpY3Yz X2xwaV9pbml0X2hvc3RfbHBpcyhHSUNEX1RZUEVfSURfQklUUyh0eXBlKSk7CisKICAgICBwcmlu dGsoIkdJQ3YzOiAlZCBsaW5lcywgKElJRCAlOC44eCkuXG4iLAogICAgICAgICAgICBucl9saW5l cywgcmVhZGxfcmVsYXhlZChHSUNEICsgR0lDRF9JSURSKSk7CiAKQEAgLTY1OSw2ICs2NjIsMjAg QEAgc3RhdGljIGludCBfX2luaXQgZ2ljdjNfcG9wdWxhdGVfcmRpc3Qodm9pZCkKICAgICAgICAg ICAgIGlmICggKHR5cGVyID4+IDMyKSA9PSBhZmYgKQogICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgIHRoaXNfY3B1KHJiYXNlKSA9IHB0cjsKKworICAgICAgICAgICAgICAgIGlmICggdHlw ZXIgJiBHSUNSX1RZUEVSX1BMUElTICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg ICAgICAgIGludCByZXQ7CisKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gZ2ljdjNfbHBpX2lu aXRfcmRpc3QocHRyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCByZXQgJiYgcmV0ICE9IC1F Tk9ERVYgKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBw cmludGsoIkdJQ3YzOiBDUFUlZDogQ2Fubm90IGluaXRpYWxpemUgTFBJczogJXVcbiIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc21wX3Byb2Nlc3Nvcl9pZCgpLCByZXQpOworICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICBwcmludGsoIkdJQ3YzOiBDUFUlZDogRm91 bmQgcmVkaXN0cmlidXRvciBpbiByZWdpb24gJWQgQCVwXG4iLAogICAgICAgICAgICAgICAgICAg ICAgICAgc21wX3Byb2Nlc3Nvcl9pZCgpLCBpLCBwdHIpOwogICAgICAgICAgICAgICAgIHJldHVy biAwOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9iaXRvcHMuaCBiL3hlbi9pbmNs dWRlL2FzbS1hcm0vYml0b3BzLmgKaW5kZXggYmRhODg5OC4uMWNiZmI5ZSAxMDA2NDQKLS0tIGEv eGVuL2luY2x1ZGUvYXNtLWFybS9iaXRvcHMuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2Jp dG9wcy5oCkBAIC0yNCw2ICsyNCw3IEBACiAjZGVmaW5lIEJJVChucikgICAgICAgICAgICAgICAg ICgxVUwgPDwgKG5yKSkKICNkZWZpbmUgQklUX01BU0sobnIpICAgICAgICAgICAgKDFVTCA8PCAo KG5yKSAlIEJJVFNfUEVSX1dPUkQpKQogI2RlZmluZSBCSVRfV09SRChucikgICAgICAgICAgICAo KG5yKSAvIEJJVFNfUEVSX1dPUkQpCisjZGVmaW5lIEJJVF9VTEwobnIpICAgICAgICAgICAgICgx VUxMIDw8IChucikpCiAjZGVmaW5lIEJJVFNfUEVSX0JZVEUgICAgICAgICAgIDgKIAogI2RlZmlu ZSBBRERSICgqKHZvbGF0aWxlIGludCAqKSBhZGRyKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv YXNtLWFybS9jb25maWcuaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vY29uZmlnLmgKaW5kZXggYjJl ZGY5NS4uMWY3MzBjZSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9jb25maWcuaAor KysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2NvbmZpZy5oCkBAIC0xOSw2ICsxOSw4IEBACiAjZGVm aW5lIEJJVFNfUEVSX0xPTkcgKEJZVEVTX1BFUl9MT05HIDw8IDMpCiAjZGVmaW5lIFBPSU5URVJf QUxJR04gQllURVNfUEVSX0xPTkcKIAorI2RlZmluZSBCSVRTX1BFUl9MT05HX0xPTkcgKHNpemVv ZiAobG9uZyBsb25nKSAqIEJJVFNfUEVSX0JZVEUpCisKIC8qIHhlbl91bG9uZ190IGlzIGFsd2F5 cyA2NCBiaXRzICovCiAjZGVmaW5lIEJJVFNfUEVSX1hFTl9VTE9ORyA2NAogCmRpZmYgLS1naXQg YS94ZW4vaW5jbHVkZS9hc20tYXJtL2dpY192M19kZWZzLmggYi94ZW4vaW5jbHVkZS9hc20tYXJt L2dpY192M19kZWZzLmgKaW5kZXggNmJkMjVhNS4uN2NkZWJjNSAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUvYXNtLWFybS9naWNfdjNfZGVmcy5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2lj X3YzX2RlZnMuaApAQCAtNDQsNyArNDQsMTAgQEAKICNkZWZpbmUgR0lDQ19TUkVfRUwyX0VORUwx ICAgICAgICAgICAoMVVMIDw8IDMpCiAKIC8qIEFkZGl0aW9uYWwgYml0cyBpbiBHSUNEX1RZUEVS IGRlZmluZWQgYnkgR0lDdjMgKi8KLSNkZWZpbmUgR0lDRF9UWVBFX0lEX0JJVFNfU0hJRlQgMTkK KyNkZWZpbmUgR0lDRF9UWVBFX0lEX0JJVFNfU0hJRlQgICAgICAxOQorI2RlZmluZSBHSUNEX1RZ UEVfSURfQklUUyhyKSAgICAgKCgoKHIpID4+IEdJQ0RfVFlQRV9JRF9CSVRTX1NISUZUKSAmIDB4 MWYpICsgMSkKKworI2RlZmluZSBHSUNEX1RZUEVfTFBJUyAgICAgICAgICAgICAgICgxVSA8PCAx NykKIAogI2RlZmluZSBHSUNEX0NUTFJfUldQICAgICAgICAgICAgICAgICgxVUwgPDwgMzEpCiAj ZGVmaW5lIEdJQ0RfQ1RMUl9BUkVfTlMgICAgICAgICAgICAgKDFVIDw8IDQpCkBAIC05NSwxMiAr OTgsNjEgQEAKICNkZWZpbmUgR0lDUl9JR1JQTU9EUjAgICAgICAgICAgICAgICAoMHgwRDAwKQog I2RlZmluZSBHSUNSX05TQUNSICAgICAgICAgICAgICAgICAgICgweDBFMDApCiAKKyNkZWZpbmUg R0lDUl9DVExSX0VOQUJMRV9MUElTICAgICAgICAoMVUgPDwgMCkKKwogI2RlZmluZSBHSUNSX1RZ UEVSX1BMUElTICAgICAgICAgICAgICgxVSA8PCAwKQogI2RlZmluZSBHSUNSX1RZUEVSX1ZMUElT ICAgICAgICAgICAgICgxVSA8PCAxKQogI2RlZmluZSBHSUNSX1RZUEVSX0xBU1QgICAgICAgICAg ICAgICgxVSA8PCA0KQogCisvKiBGb3Igc3BlY2lmeWluZyB0aGUgaW5uZXIgY2FjaGVhYmlsaXR5 IHR5cGUgb25seSAqLworI2RlZmluZSBHSUNfQkFTRVJfQ0FDSEVfbkNuQiAgICAgICAgIDBVTEwK Ky8qIEZvciBzcGVjaWZ5aW5nIHRoZSBvdXRlciBjYWNoZWFiaWxpdHkgdHlwZSBvbmx5ICovCisj ZGVmaW5lIEdJQ19CQVNFUl9DQUNIRV9TYW1lQXNJbm5lciAgMFVMTAorI2RlZmluZSBHSUNfQkFT RVJfQ0FDSEVfbkMgICAgICAgICAgIDFVTEwKKyNkZWZpbmUgR0lDX0JBU0VSX0NBQ0hFX1JhV3Qg ICAgICAgICAyVUxMCisjZGVmaW5lIEdJQ19CQVNFUl9DQUNIRV9SYVdiICAgICAgICAgM1VMTAor I2RlZmluZSBHSUNfQkFTRVJfQ0FDSEVfV2FXdCAgICAgICAgIDRVTEwKKyNkZWZpbmUgR0lDX0JB U0VSX0NBQ0hFX1dhV2IgICAgICAgICA1VUxMCisjZGVmaW5lIEdJQ19CQVNFUl9DQUNIRV9SYVdh V3QgICAgICAgNlVMTAorI2RlZmluZSBHSUNfQkFTRVJfQ0FDSEVfUmFXYVdiICAgICAgIDdVTEwK KyNkZWZpbmUgR0lDX0JBU0VSX0NBQ0hFX01BU0sgICAgICAgICA3VUxMCisKKyNkZWZpbmUgR0lD X0JBU0VSX05vblNoYXJlYWJsZSAgICAgICAwVUxMCisjZGVmaW5lIEdJQ19CQVNFUl9Jbm5lclNo YXJlYWJsZSAgICAgMVVMTAorI2RlZmluZSBHSUNfQkFTRVJfT3V0ZXJTaGFyZWFibGUgICAgIDJV TEwKKworI2RlZmluZSBHSUNSX1BST1BCQVNFUl9PVVRFUl9DQUNIRUFCSUxJVFlfU0hJRlQgICAg ICAgICA1NgorI2RlZmluZSBHSUNSX1BST1BCQVNFUl9PVVRFUl9DQUNIRUFCSUxJVFlfTUFTSyAg ICAgICAgICAgICAgIFwKKyAgICAgICAgKDdVTCA8PCBHSUNSX1BST1BCQVNFUl9PVVRFUl9DQUNI RUFCSUxJVFlfU0hJRlQpCisjZGVmaW5lIEdJQ1JfUFJPUEJBU0VSX1NIQVJFQUJJTElUWV9TSElG VCAgICAgICAgICAgICAgIDEwCisjZGVmaW5lIEdJQ1JfUFJPUEJBU0VSX1NIQVJFQUJJTElUWV9N QVNLICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoM1VMIDw8IEdJQ1JfUFJPUEJBU0VS X1NIQVJFQUJJTElUWV9TSElGVCkKKyNkZWZpbmUgR0lDUl9QUk9QQkFTRVJfSU5ORVJfQ0FDSEVB QklMSVRZX1NISUZUICAgICAgICAgNworI2RlZmluZSBHSUNSX1BST1BCQVNFUl9JTk5FUl9DQUNI RUFCSUxJVFlfTUFTSyAgICAgICAgICAgICAgIFwKKyAgICAgICAgKDdVTCA8PCBHSUNSX1BST1BC QVNFUl9JTk5FUl9DQUNIRUFCSUxJVFlfU0hJRlQpCisjZGVmaW5lIEdJQ1JfUFJPUEJBU0VSX1JF UzBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoR0VOTUFTS19V TEwoNjMsIDU5KSB8IEdFTk1BU0tfVUxMKDU1LCA1MikgfCBHRU5NQVNLX1VMTCg2LCA1KSkKKwor I2RlZmluZSBHSUNSX1BFTkRCQVNFUl9TSEFSRUFCSUxJVFlfU0hJRlQgICAgICAgICAgICAgICAx MAorI2RlZmluZSBHSUNSX1BFTkRCQVNFUl9JTk5FUl9DQUNIRUFCSUxJVFlfU0hJRlQgICAgICAg ICA3CisjZGVmaW5lIEdJQ1JfUEVOREJBU0VSX09VVEVSX0NBQ0hFQUJJTElUWV9TSElGVCAgICAg ICAgIDU2CisjZGVmaW5lIEdJQ1JfUEVOREJBU0VSX1NIQVJFQUJJTElUWV9NQVNLICAgICAgICAg ICAgICAgICAgICAgXAorCSgzVUwgPDwgR0lDUl9QRU5EQkFTRVJfU0hBUkVBQklMSVRZX1NISUZU KQorI2RlZmluZSBHSUNSX1BFTkRCQVNFUl9JTk5FUl9DQUNIRUFCSUxJVFlfTUFTSyAgICAgICAg ICAgICAgIFwKKwkoN1VMIDw8IEdJQ1JfUEVOREJBU0VSX0lOTkVSX0NBQ0hFQUJJTElUWV9TSElG VCkKKyNkZWZpbmUgR0lDUl9QRU5EQkFTRVJfT1VURVJfQ0FDSEVBQklMSVRZX01BU0sgICAgICAg ICAgICAgICBcCisgICAgICAgICg3VUwgPDwgR0lDUl9QRU5EQkFTRVJfT1VURVJfQ0FDSEVBQklM SVRZX1NISUZUKQorI2RlZmluZSBHSUNSX1BFTkRCQVNFUl9QVFogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCSVQoNjIpCisjZGVmaW5lIEdJQ1JfUEVOREJBU0VSX1JFUzBfTUFTSyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoQklUKDYzKSB8IEdFTk1BU0tfVUxM KDYxLCA1OSkgfCBHRU5NQVNLX1VMTCg1NSwgNTIpIHwgICAgICAgXAorICAgICAgICAgR0VOTUFT S19VTEwoMTUsIDEyKSB8IEdFTk1BU0tfVUxMKDYsIDApKQorCiAjZGVmaW5lIERFRkFVTFRfUE1S X1ZBTFVFICAgICAgICAgICAgMHhmZgogCisjZGVmaW5lIExQSV9QUk9QX1BSSU9fTUFTSyAgICAg ICAgICAgMHhmYworI2RlZmluZSBMUElfUFJPUF9SRVMxICAgICAgICAgICAgICAgICgxIDw8IDEp CisjZGVmaW5lIExQSV9QUk9QX0VOQUJMRUQgICAgICAgICAgICAgKDEgPDwgMCkKKwogI2RlZmlu ZSBHSUNIX1ZNQ1JfRU9JICAgICAgICAgICAgICAgICgxIDw8IDkpCiAjZGVmaW5lIEdJQ0hfVk1D Ul9WRU5HMSAgICAgICAgICAgICAgKDEgPDwgMSkKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv YXNtLWFybS9naWNfdjNfaXRzLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2dpY192M19pdHMuaApp bmRleCA3ZDg4OTg3Li43YzVhMmZhIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL2dp Y192M19pdHMuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2dpY192M19pdHMuaApAQCAtNzYs NyArNzYsMTAgQEAgdm9pZCBnaWN2M19pdHNfZHRfaW5pdChjb25zdCBzdHJ1Y3QgZHRfZGV2aWNl X25vZGUgKm5vZGUpOwogCiBib29sIGdpY3YzX2l0c19ob3N0X2hhc19pdHModm9pZCk7CiAKLS8q IEluaXRpYWxpemUgdGhlIGhvc3Qgc3RydWN0dXJlcyBmb3IgdGhlIGhvc3QgSVRTZXMuICovCitp bnQgZ2ljdjNfbHBpX2luaXRfcmRpc3Qodm9pZCBfX2lvbWVtICogcmRpc3RfYmFzZSk7CisKKy8q IEluaXRpYWxpemUgdGhlIGhvc3Qgc3RydWN0dXJlcyBmb3IgTFBJcyBhbmQgdGhlIGhvc3QgSVRT ZXMuICovCitpbnQgZ2ljdjNfbHBpX2luaXRfaG9zdF9scGlzKHVuc2lnbmVkIGludCBucl9scGlz KTsKIGludCBnaWN2M19pdHNfaW5pdCh2b2lkKTsKIAogI2Vsc2UKQEAgLTkyLDYgKzk1LDE2IEBA IHN0YXRpYyBpbmxpbmUgYm9vbCBnaWN2M19pdHNfaG9zdF9oYXNfaXRzKHZvaWQpCiAgICAgcmV0 dXJuIGZhbHNlOwogfQogCitzdGF0aWMgaW5saW5lIGludCBnaWN2M19scGlfaW5pdF9yZGlzdCh2 b2lkIF9faW9tZW0gKiByZGlzdF9iYXNlKQoreworICAgIHJldHVybiAtRU5PREVWOworfQorCitz dGF0aWMgaW5saW5lIGludCBnaWN2M19scGlfaW5pdF9ob3N0X2xwaXModW5zaWduZWQgaW50IG5y X2xwaXMpCit7CisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbmxpbmUgaW50IGdpY3YzX2l0 c19pbml0KHZvaWQpCiB7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9h c20tYXJtL2lycS5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9pcnEuaAppbmRleCA0ODQ5ZjE2Li5m OTQwMDkyIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL2lycS5oCisrKyBiL3hlbi9p bmNsdWRlL2FzbS1hcm0vaXJxLmgKQEAgLTE4LDggKzE4LDE2IEBAIHN0cnVjdCBhcmNoX2lycV9k ZXNjIHsKIH07CiAKICNkZWZpbmUgTlJfTE9DQUxfSVJRUwkzMgorCisvKgorICogVGhpcyBvbmx5 IGNvdmVycyB0aGUgaW50ZXJydXB0cyB0aGF0IFhlbiBjYXJlcyBhYm91dCwgc28gU0dJcywgUFBJ cyBhbmQKKyAqIFNQSXMuIExQSXMgYXJlIHRvbyBudW1lcm91cywgYWxzbyBvbmx5IHByb3BhZ2F0 ZWQgdG8gZ3Vlc3RzLCBzbyB0aGV5IGFyZQorICogbm90IGluY2x1ZGVkIGluIHRoaXMgbnVtYmVy LgorICovCiAjZGVmaW5lIE5SX0lSUVMJCTEwMjQKIAorI2RlZmluZSBMUElfT0ZGU0VUICAgICAg ODE5MgorCiAjZGVmaW5lIG5yX2lycXMgTlJfSVJRUwogI2RlZmluZSBucl9zdGF0aWNfaXJxcyBO Ul9JUlFTCiAjZGVmaW5lIGFyY2hfaHdkb21faXJxcyhkb21pZCkgTlJfSVJRUwpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUveGVuL2JpdG9wcy5oIGIveGVuL2luY2x1ZGUveGVuL2JpdG9wcy5oCmlu ZGV4IGJkMDg4M2EuLjkyNjFlMDYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9iaXRvcHMu aAorKysgYi94ZW4vaW5jbHVkZS94ZW4vYml0b3BzLmgKQEAgLTUsMTEgKzUsMTQgQEAKIC8qCiAg KiBDcmVhdGUgYSBjb250aWd1b3VzIGJpdG1hc2sgc3RhcnRpbmcgYXQgYml0IHBvc2l0aW9uIEBs IGFuZCBlbmRpbmcgYXQKICAqIHBvc2l0aW9uIEBoLiBGb3IgZXhhbXBsZQotICogR0VOTUFTSygz MCwgMjEpIGdpdmVzIHVzIHRoZSAzMmJpdCB2ZWN0b3IgMHgwMWZlMDAwMDAuCisgKiBHRU5NQVNL KDMwLCAyMSkgZ2l2ZXMgdXMgdGhlIDMyYml0IHZlY3RvciAweDdmZTAwMDAwLgogICovCiAjZGVm aW5lIEdFTk1BU0soaCwgbCkgXAogICAgICgoKH4wVUwpIDw8IChsKSkgJiAofjBVTCA+PiAoQklU U19QRVJfTE9ORyAtIDEgLSAoaCkpKSkKIAorI2RlZmluZSBHRU5NQVNLX1VMTChoLCBsKSBcCisg ICAgKCgofjBVTEwpIDw8IChsKSkgJiAofjBVTEwgPj4gKEJJVFNfUEVSX0xPTkdfTE9ORyAtIDEg LSAoaCkpKSkKKwogLyoKICAqIGZmczogZmluZCBmaXJzdCBiaXQgc2V0LiBUaGlzIGlzIGRlZmlu ZWQgdGhlIHNhbWUgd2F5IGFzCiAgKiB0aGUgbGliYyBhbmQgY29tcGlsZXIgYnVpbHRpbiBmZnMg cm91dGluZXMsIHRoZXJlZm9yZQotLSAKMi45LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK