From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20932 invoked by alias); 24 Nov 2014 15:55:01 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 20702 invoked by uid 89); 24 Nov 2014 15:55:01 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,KAM_STOCKGEN,RCVD_IN_DNSWL_LOW,SPF_PASS,T_RP_MATCHES_RCVD autolearn=no version=3.3.2 X-HELO: mail-ob0-f176.google.com Received: from mail-ob0-f176.google.com (HELO mail-ob0-f176.google.com) (209.85.214.176) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Mon, 24 Nov 2014 15:54:58 +0000 Received: by mail-ob0-f176.google.com with SMTP id vb8so7178870obc.7 for ; Mon, 24 Nov 2014 07:54:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=dxxXrmROw+q84fvVjVLoDLAE3mRIxehZv6Br5ssRcDs=; b=MImEKNdczGM5T1ObGDEed17eTdAPwZJcrG5UWcmyzAFeuw2TRddKfYQHdR5pIa926L 1SGC4zo6OmYBk3bMdDuH7nCmqZPkPegsi6DARvJmRHcQlyod2CUczI1GxQMzMTvxRgDf vyBDBli3GZv7UEZZ2Flriy3/UpgFHOlNh+pvt0PVfmFN0rh3VgvIMsbQuG0MAaGGSsW8 VKKJLkqOk6oskLM0t9KQqiTf6bImwmVsb392ZH4a0I7Lyk44aZmi0O4O2V1VgaXkDtqV OF30BqOPKKebn3UzTvTdsXRrOlZzqU3CgTmxRQ1VybR19aqyVgTC1T2Ka3Yf9gF7GrN6 uMcA== X-Gm-Message-State: ALoCoQlsL9gJIwQTpB/fWbsZhJbkh86kDNYOIQYi2KxzicnhF1CArc/A3Aa7dBwJ/7FgVFZfF1U+ MIME-Version: 1.0 X-Received: by 10.182.79.234 with SMTP id m10mr11947792obx.64.1416844496439; Mon, 24 Nov 2014 07:54:56 -0800 (PST) Received: by 10.202.225.68 with HTTP; Mon, 24 Nov 2014 07:54:56 -0800 (PST) Date: Mon, 24 Nov 2014 15:55:00 -0000 Message-ID: Subject: [RFC] While processing a struct die, store the method's address in its fn_field From: Siva Chandra To: gdb-patches Content-Type: multipart/mixed; boundary=e89a8f6467f1e9b7ce05089cd00b X-IsSubscribed: yes X-SW-Source: 2014-11/txt/msg00606.txt.bz2 --e89a8f6467f1e9b7ce05089cd00b Content-Type: text/plain; charset=UTF-8 Content-length: 2683 [The tests in this patch depend on this patch: https://sourceware.org/ml/gdb-patches/2014-11/msg00479.html. Also, it adds a new dwarf2 test which I am not very sure I got it right.] While processing a struct die, store the method's address in its fn_field. This enables calling the method when its physname is missing and its minsym cannot be discovered, but its address (DW_AT_low_pc) is available. For example, this happens for the operator() methods of c++11 lambdas. Consider the following C++ code: int main () { auto lambda = [] (int j) { return j + 113; }; return lambda (-113); } When compiled with g++, the DWARF corresponding to the lambda's operator() shows up under the DWARF for the function main as follows: DW_TAG_subprogram DW_AT_name "operator()" DW_AT_type <0x0000002d> DW_AT_artificial yes(1) DW_AT_low_pc 0x00400566 DW_AT_high_pc 19 DW_AT_frame_base len 0x0001: 9c: DW_OP_call_frame_cfa DW_AT_object_pointer <0x0000010f> DW_AT_GNU_all_call_sites yes(1) DW_TAG_pointer_type DW_AT_byte_size 0x00000008 DW_AT_type <0x000000b9> DW_TAG_formal_parameter DW_AT_name "__closure" DW_AT_type <0x0000011b> DW_AT_artificial yes(1) DW_AT_location len 0x0002: 9168: DW_OP_fbreg -24 DW_TAG_const_type DW_AT_type <0x00000109> DW_TAG_formal_parameter DW_AT_name "j" DW_AT_decl_file 0x00000001 DW_AT_decl_line 0x00000004 DW_AT_type <0x0000002d> DW_AT_location len 0x0002: 9164:DW_OP_fbreg -28 There is no physname and the minsym corresponding to the the operator() method does not demangle to its qualified name as specified by the DWARF. However, since DW_AT_low_pc is available, it can be used to create a value corresponding to the method in value.c:value_fn_field and subsequently be passed to call_function_by_hand to invoke it. gdb/ChangeLog: 2014-11-24 Siva Chandra Reddy * dwarf2read.c (dwarf2_add_member_fn): Note the methods address if its DT_AT_low_pc is available. * gdbtypes.h (struct fn_field): New field ADDR. (TYPE_FN_FIELD_ADDR): New macro. * value.c (value_fn_field): Use address of the method if available. gdb/testsuite/ChangeLog: 2014-11-24 Siva Chandra Reddy * gdb.dwarf2/dw2-member-function-addr.S: New file. * gdb.dwarf2/dw2-member-function-addr.exp: New file. --e89a8f6467f1e9b7ce05089cd00b Content-Type: text/plain; charset=US-ASCII; name="member-function-addr-v1.txt" Content-Disposition: attachment; filename="member-function-addr-v1.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i2vzyak20 Content-length: 24628 ZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVh ZC5jCmluZGV4IDA3OTAzODguLjNhMzZjYjEgMTAwNjQ0Ci0tLSBhL2dkYi9k d2FyZjJyZWFkLmMKKysrIGIvZ2RiL2R3YXJmMnJlYWQuYwpAQCAtMTI2NTQs NiArMTI2NTQsMTEgQEAgZHdhcmYyX2FkZF9tZW1iZXJfZm4gKHN0cnVjdCBm aWVsZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAvKiBG aWxsIGluIHRoZSBtZW1iZXIgZnVuY3Rpb24gZmllbGQgaW5mby4gICovCiAg IGZucCA9ICZuZXdfZm5maWVsZC0+Zm5maWVsZDsKIAorICAvKiBTZXQgdGhl IGFkZHJlc3Mgb2YgdGhlIG1ldGhvZCBpZiBkaWUgaGFzIERXX0FUX2xvd19w Yy4gICovCisgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9sb3df cGMsIGN1KTsKKyAgaWYgKGF0dHIpCisgICAgZm5wLT5hZGRyID0gYXR0cl92 YWx1ZV9hc19hZGRyZXNzIChhdHRyKTsKKwogICAvKiBEZWxheSBwcm9jZXNz aW5nIG9mIHRoZSBwaHlzbmFtZSB1bnRpbCBsYXRlci4gICovCiAgIGlmIChj dS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfY3BsdXMgfHwgY3UtPmxhbmd1YWdl ID09IGxhbmd1YWdlX2phdmEpCiAgICAgewpkaWZmIC0tZ2l0IGEvZ2RiL2dk YnR5cGVzLmggYi9nZGIvZ2RidHlwZXMuaAppbmRleCBkMzJjOTdjLi5kOTg4 ODdhIDEwMDY0NAotLS0gYS9nZGIvZ2RidHlwZXMuaAorKysgYi9nZGIvZ2Ri dHlwZXMuaApAQCAtODg1LDYgKzg4NSw5IEBAIHN0cnVjdCBjcGx1c19zdHJ1 Y3RfdHlwZQogCiAJc3RydWN0IGZuX2ZpZWxkCiAJICB7CisJICAgIC8qIEZv ciBtZXRob2RzIHdoaWNoIGFyZSBub3QgdmlydHVhbCwgdGhlbiB0aGlzIGlz IHRoZQorCSAgICAgICByZWFsIGFkZHJlc3Mgb2YgdGhlIG1ldGhvZCBpZiBp dCBpcyBub24temVyby4gICovCisJICAgIENPUkVfQUREUiBhZGRyOwogCiAJ ICAgIC8qICogSWYgaXNfc3R1YiBpcyBjbGVhciwgdGhpcyBpcyB0aGUgbWFu Z2xlZCBuYW1lIHdoaWNoCiAJICAgICAgIHdlIGNhbiBsb29rIHVwIHRvIGZp bmQgdGhlIGFkZHJlc3Mgb2YgdGhlIG1ldGhvZApAQCAtMTM0NCw2ICsxMzQ3 LDcgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3Ry dWN0IHR5cGUgKik7CiAKICNkZWZpbmUgVFlQRV9GTl9GSUVMRCh0aGlzZm4s IG4pICh0aGlzZm4pW25dCiAjZGVmaW5lIFRZUEVfRk5fRklFTERfUEhZU05B TUUodGhpc2ZuLCBuKSAodGhpc2ZuKVtuXS5waHlzbmFtZQorI2RlZmluZSBU WVBFX0ZOX0ZJRUxEX0FERFIodGhpc2ZuLCBuKSAodGhpc2ZuKVtuXS5hZGRy CiAjZGVmaW5lIFRZUEVfRk5fRklFTERfVFlQRSh0aGlzZm4sIG4pICh0aGlz Zm4pW25dLnR5cGUKICNkZWZpbmUgVFlQRV9GTl9GSUVMRF9BUkdTKHRoaXNm biwgbikgVFlQRV9GSUVMRFMgKCh0aGlzZm4pW25dLnR5cGUpCiAjZGVmaW5l IFRZUEVfRk5fRklFTERfQ09OU1QodGhpc2ZuLCBuKSAoKHRoaXNmbilbbl0u aXNfY29uc3QpCmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5kd2Fy ZjIvZHcyLW1lbWJlci1mdW5jdGlvbi1hZGRyLlMgYi9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvZHcyLW1lbWJlci1mdW5jdGlvbi1hZGRyLlMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg5YWEyNwotLS0gL2Rl di9udWxsCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItbWVt YmVyLWZ1bmN0aW9uLWFkZHIuUwpAQCAtMCwwICsxLDQ2MCBAQAorLyogVGhp cyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4K KworICAgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IK KyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAg IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAg IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKy8qIFRo ZSBjb250ZW50cyBiZWxvdyB3ZXJlIGdlbmVyYXRlZCBieSBjb21waWxpbmcg dGhlIGNvZGUgYmVsb3cgd2l0aAorICAgICAgIGcrKyAtZy1kQSAtUyAtc3Rk PWMrKzExIGxhbWJkYS5jYworCisgICBpbnQKKyAgIG1haW4gKCkKKyAgIHsK KyAgICAgYXV0byBsYW1iZGEgPSBbXSAoaW50IGopIHsgcmV0dXJuIGogKyAx MTM7IH07CisgICAgIHJldHVybiBsYW1iZGEgKC0xMTMpOworICAgfSAgKi8K KworCS5maWxlCSJsYW1iZGEuY2MiCisJLnRleHQKKy5MdGV4dDA6CisJLmFs aWduIDIKKwkudHlwZQlfWlo0bWFpbkVOS1VsaUVfY2xFaSwgQGZ1bmN0aW9u CitfWlo0bWFpbkVOS1VsaUVfY2xFaToKKy5MRkIxOgorCS5maWxlIDEgImxh bWJkYS5jYyIKKwkjIGxhbWJkYS5jYzo0CisJLmxvYyAxIDQgMAorCS5jZmlf c3RhcnRwcm9jCisjIEJMT0NLIDIgc2VxOjAKKyMgUFJFRDogRU5UUlkgKEZB TExUSFJVKQorCXB1c2hxCSVyYnAKKwkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2 CisJLmNmaV9vZmZzZXQgNiwgLTE2CisJbW92cQklcnNwLCAlcmJwCisJLmNm aV9kZWZfY2ZhX3JlZ2lzdGVyIDYKKwltb3ZxCSVyZGksIC04KCVyYnApCisJ bW92bAklZXNpLCAtMTIoJXJicCkKKy5MQkIyOgorCSMgbGFtYmRhLmNjOjQK KwkubG9jIDEgNCAwCisJbW92bAktMTIoJXJicCksICVlYXgKKwlhZGRsCSQx MTMsICVlYXgKKy5MQkUyOgorCXBvcHEJJXJicAorCS5jZmlfZGVmX2NmYSA3 LCA4CisjIFNVQ0M6IEVYSVQgWzEwMC4wJV0KKwlyZXQKKwkuY2ZpX2VuZHBy b2MKKy5MRkUxOgorCS5zaXplCV9aWjRtYWluRU5LVWxpRV9jbEVpLCAuLV9a WjRtYWluRU5LVWxpRV9jbEVpCisJLmdsb2JsCW1haW4KKwkudHlwZQltYWlu LCBAZnVuY3Rpb24KK21haW46CisuTEZCMDoKKwkjIGxhbWJkYS5jYzozCisJ LmxvYyAxIDMgMAorCS5jZmlfc3RhcnRwcm9jCisjIEJMT0NLIDIgc2VxOjAK KyMgUFJFRDogRU5UUlkgKEZBTExUSFJVKQorCXB1c2hxCSVyYnAKKwkuY2Zp X2RlZl9jZmFfb2Zmc2V0IDE2CisJLmNmaV9vZmZzZXQgNiwgLTE2CisJbW92 cQklcnNwLCAlcmJwCisJLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyIDYKKwlzdWJx CSQxNiwgJXJzcAorLkxCQjM6CisJIyBsYW1iZGEuY2M6NQorCS5sb2MgMSA1 IDAKKwlsZWFxCS0xKCVyYnApLCAlcmF4CisJbW92bAkkLTExMywgJWVzaQor CW1vdnEJJXJheCwgJXJkaQorCWNhbGwJX1paNG1haW5FTktVbGlFX2NsRWkK Ky5MQkUzOgorCSMgbGFtYmRhLmNjOjYKKwkubG9jIDEgNiAwCisJbGVhdmUK KwkuY2ZpX2RlZl9jZmEgNywgOAorIyBTVUNDOiBFWElUIFsxMDAuMCVdCisJ cmV0CisJLmNmaV9lbmRwcm9jCisuTEZFMDoKKwkuc2l6ZQltYWluLCAuLW1h aW4KKy5MZXRleHQwOgorCS5zZWN0aW9uCS5kZWJ1Z19pbmZvLCIiLEBwcm9n Yml0cworLkxkZWJ1Z19pbmZvMDoKKwkubG9uZwkweDExNQkjIExlbmd0aCBv ZiBDb21waWxhdGlvbiBVbml0IEluZm8KKwkudmFsdWUJMHg0CSMgRFdBUkYg dmVyc2lvbiBudW1iZXIKKwkubG9uZwkuTGRlYnVnX2FiYnJldjAJIyBPZmZz ZXQgSW50byBBYmJyZXYuIFNlY3Rpb24KKwkuYnl0ZQkweDgJIyBQb2ludGVy IFNpemUgKGluIGJ5dGVzKQorCS51bGViMTI4IDB4MQkjIChESUUgKDB4Yikg RFdfVEFHX2NvbXBpbGVfdW5pdCkKKwkubG9uZwkuTEFTRjEJIyBEV19BVF9w cm9kdWNlcjogIkdOVSBDKysgNC44LjIgLW10dW5lPWdlbmVyaWMgLW1hcmNo PXg4Ni02NCAtZyAtc3RkPWMrKzExIC1mc3RhY2stcHJvdGVjdG9yIgorCS5i eXRlCTB4NAkjIERXX0FUX2xhbmd1YWdlCisJLmxvbmcJLkxBU0YyCSMgRFdf QVRfbmFtZTogImxhbWJkYS5jYyIKKwkubG9uZwkuTEFTRjMJIyBEV19BVF9j b21wX2RpcjogIi9ob21lL3NpdmFjaGFuZHJhL0xBQi9jKysiCisJLnF1YWQJ Lkx0ZXh0MAkjIERXX0FUX2xvd19wYworCS5xdWFkCS5MZXRleHQwLS5MdGV4 dDAJIyBEV19BVF9oaWdoX3BjCisJLmxvbmcJLkxkZWJ1Z19saW5lMAkjIERX X0FUX3N0bXRfbGlzdAorCS51bGViMTI4IDB4MgkjIChESUUgKDB4MmQpIERX X1RBR19iYXNlX3R5cGUpCisJLmJ5dGUJMHg0CSMgRFdfQVRfYnl0ZV9zaXpl CisJLmJ5dGUJMHg1CSMgRFdfQVRfZW5jb2RpbmcKKwkuYXNjaWkgImludFww IgkjIERXX0FUX25hbWUKKwkudWxlYjEyOCAweDMJIyAoRElFICgweDM0KSBE V19UQUdfc3VicHJvZ3JhbSkKKwkJCSMgRFdfQVRfZXh0ZXJuYWwKKwkubG9u ZwkuTEFTRjQJIyBEV19BVF9uYW1lOiAibWFpbiIKKwkuYnl0ZQkweDEJIyBE V19BVF9kZWNsX2ZpbGUgKGxhbWJkYS5jYykKKwkuYnl0ZQkweDIJIyBEV19B VF9kZWNsX2xpbmUKKwkubG9uZwkweDJkCSMgRFdfQVRfdHlwZQorCS5xdWFk CS5MRkIwCSMgRFdfQVRfbG93X3BjCisJLnF1YWQJLkxGRTAtLkxGQjAJIyBE V19BVF9oaWdoX3BjCisJLnVsZWIxMjggMHgxCSMgRFdfQVRfZnJhbWVfYmFz ZQorCS5ieXRlCTB4OWMJIyBEV19PUF9jYWxsX2ZyYW1lX2NmYQorCQkJIyBE V19BVF9HTlVfYWxsX3RhaWxfY2FsbF9zaXRlcworCS51bGViMTI4IDB4NAkj IChESUUgKDB4NTEpIERXX1RBR19sZXhpY2FsX2Jsb2NrKQorCS5xdWFkCS5M QkIzCSMgRFdfQVRfbG93X3BjCisJLnF1YWQJLkxCRTMtLkxCQjMJIyBEV19B VF9oaWdoX3BjCisJLnVsZWIxMjggMHg1CSMgKERJRSAoMHg2MikgRFdfVEFH X3ZhcmlhYmxlKQorCS5sb25nCS5MQVNGNQkjIERXX0FUX25hbWU6ICJsYW1i ZGEiCisJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChsYW1iZGEuY2Mp CisJLmJ5dGUJMHg0CSMgRFdfQVRfZGVjbF9saW5lCisJLmxvbmcJMHg3MAkj IERXX0FUX3R5cGUKKwkudWxlYjEyOCAweDIJIyBEV19BVF9sb2NhdGlvbgor CS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZworCS5zbGViMTI4IC0xNworCS51 bGViMTI4IDB4NgkjIChESUUgKDB4NzApIERXX1RBR19zdHJ1Y3R1cmVfdHlw ZSkKKwkubG9uZwkuTEFTRjYJIyBEV19BVF9uYW1lOiAiX19sYW1iZGEwIgor CS5ieXRlCTB4MQkjIERXX0FUX2J5dGVfc2l6ZQorCS5ieXRlCTB4MQkjIERX X0FUX2RlY2xfZmlsZSAobGFtYmRhLmNjKQorCS5ieXRlCTB4NAkjIERXX0FU X2RlY2xfbGluZQorCS51bGViMTI4IDB4NwkjIChESUUgKDB4NzgpIERXX1RB R19zdWJwcm9ncmFtKQorCS5sb25nCS5MQVNGMAkjIERXX0FUX25hbWU6ICI8 bGFtYmRhPiIKKwkJCSMgRFdfQVRfYXJ0aWZpY2lhbAorCQkJIyBEV19BVF9k ZWNsYXJhdGlvbgorCS5sb25nCTB4ODUJIyBEV19BVF9vYmplY3RfcG9pbnRl cgorCS5sb25nCTB4OWMJIyBEV19BVF9zaWJsaW5nCisJLnVsZWIxMjggMHg4 CSMgKERJRSAoMHg4NSkgRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisJLmxv bmcJMHg4YQkjIERXX0FUX3R5cGUKKwkJCSMgRFdfQVRfYXJ0aWZpY2lhbAor CS51bGViMTI4IDB4OQkjIChESUUgKDB4OGEpIERXX1RBR19wb2ludGVyX3R5 cGUpCisJLmJ5dGUJMHg4CSMgRFdfQVRfYnl0ZV9zaXplCisJLmxvbmcJMHg3 MAkjIERXX0FUX3R5cGUKKwkudWxlYjEyOCAweGEJIyAoRElFICgweDkwKSBE V19UQUdfZm9ybWFsX3BhcmFtZXRlcikKKwkubG9uZwkweDk1CSMgRFdfQVRf dHlwZQorCS51bGViMTI4IDB4YgkjIChESUUgKDB4OTUpIERXX1RBR19ydmFs dWVfcmVmZXJlbmNlX3R5cGUpCisJLmJ5dGUJMHg4CSMgRFdfQVRfYnl0ZV9z aXplCisJLmxvbmcJMHg3MAkjIERXX0FUX3R5cGUKKwkuYnl0ZQkwCSMgZW5k IG9mIGNoaWxkcmVuIG9mIERJRSAweDc4CisJLnVsZWIxMjggMHg3CSMgKERJ RSAoMHg5YykgRFdfVEFHX3N1YnByb2dyYW0pCisJLmxvbmcJLkxBU0YwCSMg RFdfQVRfbmFtZTogIjxsYW1iZGE+IgorCQkJIyBEV19BVF9hcnRpZmljaWFs CisJCQkjIERXX0FUX2RlY2xhcmF0aW9uCisJLmxvbmcJMHhhOQkjIERXX0FU X29iamVjdF9wb2ludGVyCisJLmxvbmcJMHhiZgkjIERXX0FUX3NpYmxpbmcK KwkudWxlYjEyOCAweDgJIyAoRElFICgweGE5KSBEV19UQUdfZm9ybWFsX3Bh cmFtZXRlcikKKwkubG9uZwkweDhhCSMgRFdfQVRfdHlwZQorCQkJIyBEV19B VF9hcnRpZmljaWFsCisJLnVsZWIxMjggMHhhCSMgKERJRSAoMHhhZSkgRFdf VEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisJLmxvbmcJMHhiMwkjIERXX0FUX3R5 cGUKKwkudWxlYjEyOCAweGMJIyAoRElFICgweGIzKSBEV19UQUdfcmVmZXJl bmNlX3R5cGUpCisJLmJ5dGUJMHg4CSMgRFdfQVRfYnl0ZV9zaXplCisJLmxv bmcJMHhiOQkjIERXX0FUX3R5cGUKKwkudWxlYjEyOCAweGQJIyAoRElFICgw eGI5KSBEV19UQUdfY29uc3RfdHlwZSkKKwkubG9uZwkweDcwCSMgRFdfQVRf dHlwZQorCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4OWMK KwkudWxlYjEyOCAweDcJIyAoRElFICgweGJmKSBEV19UQUdfc3VicHJvZ3Jh bSkKKwkubG9uZwkuTEFTRjAJIyBEV19BVF9uYW1lOiAiPGxhbWJkYT4iCisJ CQkjIERXX0FUX2FydGlmaWNpYWwKKwkJCSMgRFdfQVRfZGVjbGFyYXRpb24K KwkubG9uZwkweGNjCSMgRFdfQVRfb2JqZWN0X3BvaW50ZXIKKwkubG9uZwkw eGQyCSMgRFdfQVRfc2libGluZworCS51bGViMTI4IDB4OAkjIChESUUgKDB4 Y2MpIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQorCS5sb25nCTB4OGEJIyBE V19BVF90eXBlCisJCQkjIERXX0FUX2FydGlmaWNpYWwKKwkuYnl0ZQkwCSMg ZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweGJmCisJLnVsZWIxMjggMHhlCSMg KERJRSAoMHhkMikgRFdfVEFHX3N1YnByb2dyYW0pCisJLmxvbmcJLkxBU0Y3 CSMgRFdfQVRfbmFtZTogIm9wZXJhdG9yKCkiCisJLmxvbmcJMHgyZAkjIERX X0FUX3R5cGUKKwkJCSMgRFdfQVRfYXJ0aWZpY2lhbAorCS5xdWFkCS5MRkIx CSMgRFdfQVRfbG93X3BjCisJLnF1YWQJLkxGRTEtLkxGQjEJIyBEV19BVF9o aWdoX3BjCisJLnVsZWIxMjggMHgxCSMgRFdfQVRfZnJhbWVfYmFzZQorCS5i eXRlCTB4OWMJIyBEV19PUF9jYWxsX2ZyYW1lX2NmYQorCS5sb25nCTB4ZjcJ IyBEV19BVF9vYmplY3RfcG9pbnRlcgorCQkJIyBEV19BVF9HTlVfYWxsX2Nh bGxfc2l0ZXMKKwkudWxlYjEyOCAweDkJIyAoRElFICgweGYxKSBEV19UQUdf cG9pbnRlcl90eXBlKQorCS5ieXRlCTB4OAkjIERXX0FUX2J5dGVfc2l6ZQor CS5sb25nCTB4YjkJIyBEV19BVF90eXBlCisJLnVsZWIxMjggMHhmCSMgKERJ RSAoMHhmNykgRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisJLmxvbmcJLkxB U0Y4CSMgRFdfQVRfbmFtZTogIl9fY2xvc3VyZSIKKwkubG9uZwkweDEwMwkj IERXX0FUX3R5cGUKKwkJCSMgRFdfQVRfYXJ0aWZpY2lhbAorCS51bGViMTI4 IDB4MgkjIERXX0FUX2xvY2F0aW9uCisJLmJ5dGUJMHg5MQkjIERXX09QX2Zi cmVnCisJLnNsZWIxMjggLTI0CisJLnVsZWIxMjggMHhkCSMgKERJRSAoMHgx MDMpIERXX1RBR19jb25zdF90eXBlKQorCS5sb25nCTB4ZjEJIyBEV19BVF90 eXBlCisJLnVsZWIxMjggMHgxMAkjIChESUUgKDB4MTA4KSBEV19UQUdfZm9y bWFsX3BhcmFtZXRlcikKKwkuYXNjaWkgImpcMCIJIyBEV19BVF9uYW1lCisJ LmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChsYW1iZGEuY2MpCisJLmJ5 dGUJMHg0CSMgRFdfQVRfZGVjbF9saW5lCisJLmxvbmcJMHgyZAkjIERXX0FU X3R5cGUKKwkudWxlYjEyOCAweDIJIyBEV19BVF9sb2NhdGlvbgorCS5ieXRl CTB4OTEJIyBEV19PUF9mYnJlZworCS5zbGViMTI4IC0yOAorCS5ieXRlCTAJ IyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4ZDIKKwkuYnl0ZQkwCSMgZW5k IG9mIGNoaWxkcmVuIG9mIERJRSAweDcwCisJLmJ5dGUJMAkjIGVuZCBvZiBj aGlsZHJlbiBvZiBESUUgMHg1MQorCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRy ZW4gb2YgRElFIDB4MzQKKwkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9m IERJRSAweGIKKwkuc2VjdGlvbgkuZGVidWdfYWJicmV2LCIiLEBwcm9nYml0 cworLkxkZWJ1Z19hYmJyZXYwOgorCS51bGViMTI4IDB4MQkjIChhYmJyZXYg Y29kZSkKKwkudWxlYjEyOCAweDExCSMgKFRBRzogRFdfVEFHX2NvbXBpbGVf dW5pdCkKKwkuYnl0ZQkweDEJIyBEV19jaGlsZHJlbl95ZXMKKwkudWxlYjEy OCAweDI1CSMgKERXX0FUX3Byb2R1Y2VyKQorCS51bGViMTI4IDB4ZQkjIChE V19GT1JNX3N0cnApCisJLnVsZWIxMjggMHgxMwkjIChEV19BVF9sYW5ndWFn ZSkKKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKwkudWxlYjEy OCAweDMJIyAoRFdfQVRfbmFtZSkKKwkudWxlYjEyOCAweGUJIyAoRFdfRk9S TV9zdHJwKQorCS51bGViMTI4IDB4MWIJIyAoRFdfQVRfY29tcF9kaXIpCisJ LnVsZWIxMjggMHhlCSMgKERXX0ZPUk1fc3RycCkKKwkudWxlYjEyOCAweDEx CSMgKERXX0FUX2xvd19wYykKKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9h ZGRyKQorCS51bGViMTI4IDB4MTIJIyAoRFdfQVRfaGlnaF9wYykKKwkudWxl YjEyOCAweDcJIyAoRFdfRk9STV9kYXRhOCkKKwkudWxlYjEyOCAweDEwCSMg KERXX0FUX3N0bXRfbGlzdCkKKwkudWxlYjEyOCAweDE3CSMgKERXX0ZPUk1f c2VjX29mZnNldCkKKwkuYnl0ZQkwCisJLmJ5dGUJMAorCS51bGViMTI4IDB4 MgkjIChhYmJyZXYgY29kZSkKKwkudWxlYjEyOCAweDI0CSMgKFRBRzogRFdf VEFHX2Jhc2VfdHlwZSkKKwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8KKwku dWxlYjEyOCAweGIJIyAoRFdfQVRfYnl0ZV9zaXplKQorCS51bGViMTI4IDB4 YgkjIChEV19GT1JNX2RhdGExKQorCS51bGViMTI4IDB4M2UJIyAoRFdfQVRf ZW5jb2RpbmcpCisJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisJ LnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisJLnVsZWIxMjggMHg4CSMg KERXX0ZPUk1fc3RyaW5nKQorCS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIx MjggMHgzCSMgKGFiYnJldiBjb2RlKQorCS51bGViMTI4IDB4MmUJIyAoVEFH OiBEV19UQUdfc3VicHJvZ3JhbSkKKwkuYnl0ZQkweDEJIyBEV19jaGlsZHJl bl95ZXMKKwkudWxlYjEyOCAweDNmCSMgKERXX0FUX2V4dGVybmFsKQorCS51 bGViMTI4IDB4MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCisJLnVsZWIx MjggMHgzCSMgKERXX0FUX25hbWUpCisJLnVsZWIxMjggMHhlCSMgKERXX0ZP Uk1fc3RycCkKKwkudWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xfZmlsZSkK KwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKwkudWxlYjEyOCAw eDNiCSMgKERXX0FUX2RlY2xfbGluZSkKKwkudWxlYjEyOCAweGIJIyAoRFdf Rk9STV9kYXRhMSkKKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisJ LnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisJLnVsZWIxMjggMHgx MQkjIChEV19BVF9sb3dfcGMpCisJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1f YWRkcikKKwkudWxlYjEyOCAweDEyCSMgKERXX0FUX2hpZ2hfcGMpCisJLnVs ZWIxMjggMHg3CSMgKERXX0ZPUk1fZGF0YTgpCisJLnVsZWIxMjggMHg0MAkj IChEV19BVF9mcmFtZV9iYXNlKQorCS51bGViMTI4IDB4MTgJIyAoRFdfRk9S TV9leHBybG9jKQorCS51bGViMTI4IDB4MjExNgkjIChEV19BVF9HTlVfYWxs X3RhaWxfY2FsbF9zaXRlcykKKwkudWxlYjEyOCAweDE5CSMgKERXX0ZPUk1f ZmxhZ19wcmVzZW50KQorCS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjgg MHg0CSMgKGFiYnJldiBjb2RlKQorCS51bGViMTI4IDB4YgkjIChUQUc6IERX X1RBR19sZXhpY2FsX2Jsb2NrKQorCS5ieXRlCTB4MQkjIERXX2NoaWxkcmVu X3llcworCS51bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3BjKQorCS51bGVi MTI4IDB4MQkjIChEV19GT1JNX2FkZHIpCisJLnVsZWIxMjggMHgxMgkjIChE V19BVF9oaWdoX3BjKQorCS51bGViMTI4IDB4NwkjIChEV19GT1JNX2RhdGE4 KQorCS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjggMHg1CSMgKGFiYnJl diBjb2RlKQorCS51bGViMTI4IDB4MzQJIyAoVEFHOiBEV19UQUdfdmFyaWFi bGUpCisJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCisJLnVsZWIxMjggMHgz CSMgKERXX0FUX25hbWUpCisJLnVsZWIxMjggMHhlCSMgKERXX0ZPUk1fc3Ry cCkKKwkudWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xfZmlsZSkKKwkudWxl YjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKwkudWxlYjEyOCAweDNiCSMg KERXX0FUX2RlY2xfbGluZSkKKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9k YXRhMSkKKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisJLnVsZWIx MjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisJLnVsZWIxMjggMHgyCSMgKERX X0FUX2xvY2F0aW9uKQorCS51bGViMTI4IDB4MTgJIyAoRFdfRk9STV9leHBy bG9jKQorCS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjggMHg2CSMgKGFi YnJldiBjb2RlKQorCS51bGViMTI4IDB4MTMJIyAoVEFHOiBEV19UQUdfc3Ry dWN0dXJlX3R5cGUpCisJLmJ5dGUJMHgxCSMgRFdfY2hpbGRyZW5feWVzCisJ LnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisJLnVsZWIxMjggMHhlCSMg KERXX0ZPUk1fc3RycCkKKwkudWxlYjEyOCAweGIJIyAoRFdfQVRfYnl0ZV9z aXplKQorCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorCS51bGVi MTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQorCS51bGViMTI4IDB4Ygkj IChEV19GT1JNX2RhdGExKQorCS51bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVj bF9saW5lKQorCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorCS5i eXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjggMHg3CSMgKGFiYnJldiBjb2Rl KQorCS51bGViMTI4IDB4MmUJIyAoVEFHOiBEV19UQUdfc3VicHJvZ3JhbSkK KwkuYnl0ZQkweDEJIyBEV19jaGlsZHJlbl95ZXMKKwkudWxlYjEyOCAweDMJ IyAoRFdfQVRfbmFtZSkKKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJw KQorCS51bGViMTI4IDB4MzQJIyAoRFdfQVRfYXJ0aWZpY2lhbCkKKwkudWxl YjEyOCAweDE5CSMgKERXX0ZPUk1fZmxhZ19wcmVzZW50KQorCS51bGViMTI4 IDB4M2MJIyAoRFdfQVRfZGVjbGFyYXRpb24pCisJLnVsZWIxMjggMHgxOQkj IChEV19GT1JNX2ZsYWdfcHJlc2VudCkKKwkudWxlYjEyOCAweDY0CSMgKERX X0FUX29iamVjdF9wb2ludGVyKQorCS51bGViMTI4IDB4MTMJIyAoRFdfRk9S TV9yZWY0KQorCS51bGViMTI4IDB4MQkjIChEV19BVF9zaWJsaW5nKQorCS51 bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorCS5ieXRlCTAKKwkuYnl0 ZQkwCisJLnVsZWIxMjggMHg4CSMgKGFiYnJldiBjb2RlKQorCS51bGViMTI4 IDB4NQkjIChUQUc6IERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQorCS5ieXRl CTAJIyBEV19jaGlsZHJlbl9ubworCS51bGViMTI4IDB4NDkJIyAoRFdfQVRf dHlwZSkKKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKKwkudWxl YjEyOCAweDM0CSMgKERXX0FUX2FydGlmaWNpYWwpCisJLnVsZWIxMjggMHgx OQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKKwkuYnl0ZQkwCisJLmJ5dGUJ MAorCS51bGViMTI4IDB4OQkjIChhYmJyZXYgY29kZSkKKwkudWxlYjEyOCAw eGYJIyAoVEFHOiBEV19UQUdfcG9pbnRlcl90eXBlKQorCS5ieXRlCTAJIyBE V19jaGlsZHJlbl9ubworCS51bGViMTI4IDB4YgkjIChEV19BVF9ieXRlX3Np emUpCisJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisJLnVsZWIx MjggMHg0OQkjIChEV19BVF90eXBlKQorCS51bGViMTI4IDB4MTMJIyAoRFdf Rk9STV9yZWY0KQorCS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjggMHhh CSMgKGFiYnJldiBjb2RlKQorCS51bGViMTI4IDB4NQkjIChUQUc6IERXX1RB R19mb3JtYWxfcGFyYW1ldGVyKQorCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9u bworCS51bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlwZSkKKwkudWxlYjEyOCAw eDEzCSMgKERXX0ZPUk1fcmVmNCkKKwkuYnl0ZQkwCisJLmJ5dGUJMAorCS51 bGViMTI4IDB4YgkjIChhYmJyZXYgY29kZSkKKwkudWxlYjEyOCAweDQyCSMg KFRBRzogRFdfVEFHX3J2YWx1ZV9yZWZlcmVuY2VfdHlwZSkKKwkuYnl0ZQkw CSMgRFdfY2hpbGRyZW5fbm8KKwkudWxlYjEyOCAweGIJIyAoRFdfQVRfYnl0 ZV9zaXplKQorCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorCS51 bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlwZSkKKwkudWxlYjEyOCAweDEzCSMg KERXX0ZPUk1fcmVmNCkKKwkuYnl0ZQkwCisJLmJ5dGUJMAorCS51bGViMTI4 IDB4YwkjIChhYmJyZXYgY29kZSkKKwkudWxlYjEyOCAweDEwCSMgKFRBRzog RFdfVEFHX3JlZmVyZW5jZV90eXBlKQorCS5ieXRlCTAJIyBEV19jaGlsZHJl bl9ubworCS51bGViMTI4IDB4YgkjIChEV19BVF9ieXRlX3NpemUpCisJLnVs ZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisJLnVsZWIxMjggMHg0OQkj IChEV19BVF90eXBlKQorCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0 KQorCS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjggMHhkCSMgKGFiYnJl diBjb2RlKQorCS51bGViMTI4IDB4MjYJIyAoVEFHOiBEV19UQUdfY29uc3Rf dHlwZSkKKwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8KKwkudWxlYjEyOCAw eDQ5CSMgKERXX0FUX3R5cGUpCisJLnVsZWIxMjggMHgxMwkjIChEV19GT1JN X3JlZjQpCisJLmJ5dGUJMAorCS5ieXRlCTAKKwkudWxlYjEyOCAweGUJIyAo YWJicmV2IGNvZGUpCisJLnVsZWIxMjggMHgyZQkjIChUQUc6IERXX1RBR19z dWJwcm9ncmFtKQorCS5ieXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcworCS51 bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQorCS51bGViMTI4IDB4ZQkjIChE V19GT1JNX3N0cnApCisJLnVsZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQor CS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorCS51bGViMTI4IDB4 MzQJIyAoRFdfQVRfYXJ0aWZpY2lhbCkKKwkudWxlYjEyOCAweDE5CSMgKERX X0ZPUk1fZmxhZ19wcmVzZW50KQorCS51bGViMTI4IDB4MTEJIyAoRFdfQVRf bG93X3BjKQorCS51bGViMTI4IDB4MQkjIChEV19GT1JNX2FkZHIpCisJLnVs ZWIxMjggMHgxMgkjIChEV19BVF9oaWdoX3BjKQorCS51bGViMTI4IDB4Nwkj IChEV19GT1JNX2RhdGE4KQorCS51bGViMTI4IDB4NDAJIyAoRFdfQVRfZnJh bWVfYmFzZSkKKwkudWxlYjEyOCAweDE4CSMgKERXX0ZPUk1fZXhwcmxvYykK KwkudWxlYjEyOCAweDY0CSMgKERXX0FUX29iamVjdF9wb2ludGVyKQorCS51 bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorCS51bGViMTI4IDB4MjEx NwkjIChEV19BVF9HTlVfYWxsX2NhbGxfc2l0ZXMpCisJLnVsZWIxMjggMHgx OQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKKwkuYnl0ZQkwCisJLmJ5dGUJ MAorCS51bGViMTI4IDB4ZgkjIChhYmJyZXYgY29kZSkKKwkudWxlYjEyOCAw eDUJIyAoVEFHOiBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikKKwkuYnl0ZQkw CSMgRFdfY2hpbGRyZW5fbm8KKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFt ZSkKKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQorCS51bGViMTI4 IDB4NDkJIyAoRFdfQVRfdHlwZSkKKwkudWxlYjEyOCAweDEzCSMgKERXX0ZP Uk1fcmVmNCkKKwkudWxlYjEyOCAweDM0CSMgKERXX0FUX2FydGlmaWNpYWwp CisJLnVsZWIxMjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKKwku dWxlYjEyOCAweDIJIyAoRFdfQVRfbG9jYXRpb24pCisJLnVsZWIxMjggMHgx OAkjIChEV19GT1JNX2V4cHJsb2MpCisJLmJ5dGUJMAorCS5ieXRlCTAKKwku dWxlYjEyOCAweDEwCSMgKGFiYnJldiBjb2RlKQorCS51bGViMTI4IDB4NQkj IChUQUc6IERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQorCS5ieXRlCTAJIyBE V19jaGlsZHJlbl9ubworCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQor CS51bGViMTI4IDB4OAkjIChEV19GT1JNX3N0cmluZykKKwkudWxlYjEyOCAw eDNhCSMgKERXX0FUX2RlY2xfZmlsZSkKKwkudWxlYjEyOCAweGIJIyAoRFdf Rk9STV9kYXRhMSkKKwkudWxlYjEyOCAweDNiCSMgKERXX0FUX2RlY2xfbGlu ZSkKKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKwkudWxlYjEy OCAweDQ5CSMgKERXX0FUX3R5cGUpCisJLnVsZWIxMjggMHgxMwkjIChEV19G T1JNX3JlZjQpCisJLnVsZWIxMjggMHgyCSMgKERXX0FUX2xvY2F0aW9uKQor CS51bGViMTI4IDB4MTgJIyAoRFdfRk9STV9leHBybG9jKQorCS5ieXRlCTAK KwkuYnl0ZQkwCisJLmJ5dGUJMAorCS5zZWN0aW9uCS5kZWJ1Z19hcmFuZ2Vz LCIiLEBwcm9nYml0cworCS5sb25nCTB4MmMJIyBMZW5ndGggb2YgQWRkcmVz cyBSYW5nZXMgSW5mbworCS52YWx1ZQkweDIJIyBEV0FSRiBWZXJzaW9uCisJ LmxvbmcJLkxkZWJ1Z19pbmZvMAkjIE9mZnNldCBvZiBDb21waWxhdGlvbiBV bml0IEluZm8KKwkuYnl0ZQkweDgJIyBTaXplIG9mIEFkZHJlc3MKKwkuYnl0 ZQkwCSMgU2l6ZSBvZiBTZWdtZW50IERlc2NyaXB0b3IKKwkudmFsdWUJMAkj IFBhZCB0byAxNiBieXRlIGJvdW5kYXJ5CisJLnZhbHVlCTAKKwkucXVhZAku THRleHQwCSMgQWRkcmVzcworCS5xdWFkCS5MZXRleHQwLS5MdGV4dDAJIyBM ZW5ndGgKKwkucXVhZAkwCisJLnF1YWQJMAorCS5zZWN0aW9uCS5kZWJ1Z19s aW5lLCIiLEBwcm9nYml0cworLkxkZWJ1Z19saW5lMDoKKwkuc2VjdGlvbgku ZGVidWdfc3RyLCJNUyIsQHByb2diaXRzLDEKKy5MQVNGMzoKKwkuc3RyaW5n CSIvaG9tZS9zaXZhY2hhbmRyYS9MQUIvYysrIgorLkxBU0Y2OgorCS5zdHJp bmcJIl9fbGFtYmRhMCIKKy5MQVNGNzoKKwkuc3RyaW5nCSJvcGVyYXRvcigp IgorLkxBU0YyOgorCS5zdHJpbmcJImxhbWJkYS5jYyIKKy5MQVNGMDoKKwku c3RyaW5nCSI8bGFtYmRhPiIKKy5MQVNGMToKKwkuc3RyaW5nCSJHTlUgQysr IDQuOC4yIC1tdHVuZT1nZW5lcmljIC1tYXJjaD14ODYtNjQgLWcgLXN0ZD1j KysxMSAtZnN0YWNrLXByb3RlY3RvciIKKy5MQVNGNDoKKwkuc3RyaW5nCSJt YWluIgorLkxBU0Y1OgorCS5zdHJpbmcJImxhbWJkYSIKKy5MQVNGODoKKwku c3RyaW5nCSJfX2Nsb3N1cmUiCisJLmlkZW50CSJHQ0M6IChVYnVudHUgNC44 LjItMTl1YnVudHUxKSA0LjguMiIKKwkuc2VjdGlvbgkubm90ZS5HTlUtc3Rh Y2ssIiIsQHByb2diaXRzCmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5kd2FyZjIvZHcyLW1lbWJlci1mdW5jdGlvbi1hZGRyLmV4cCBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItbWVtYmVyLWZ1bmN0aW9uLWFkZHIu ZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzNTZl MzUKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2Fy ZjIvZHcyLW1lbWJlci1mdW5jdGlvbi1hZGRyLmV4cApAQCAtMCwwICsxLDMz IEBACisjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisj IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisj IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCitsb2FkX2xpYiBkd2FyZi5l eHAKKworaWYgeyFbZHdhcmYyX3N1cHBvcnRdfSB7CisgICAgcmV0dXJuIDAK K30KKworc3RhbmRhcmRfdGVzdGZpbGUgLlMKKworaWYge1twcmVwYXJlX2Zv cl90ZXN0aW5nX2Z1bGwgJHRlc3RmaWxlLmV4cCBcCisJIFtsaXN0ICR0ZXN0 ZmlsZSBkZWJ1ZyAkc3JjZmlsZSBub2RlYnVnXV19IHsKKyAgICByZXR1cm4g LTEKK30KKworY2xlYW5fcmVzdGFydCAkdGVzdGZpbGUKKworZ2RiX3Rlc3Qg ImJyZWFrIG1haW4iICJCcmVha3BvaW50IDEgLioiICJicmVhayBtYWluIgor Z2RiX3Rlc3QgInJ1biIgIlN0YXJ0aW5nIHByb2dyYW06IC4qQnJlYWtwb2lu dCAxLioiICJydW4iCitnZGJfdGVzdCAicCBsYW1iZGEoMTApIiAiLiogPSAx MjMiICJwIGxhbWJkYSgpIgpkaWZmIC0tZ2l0IGEvZ2RiL3ZhbHVlLmMgYi9n ZGIvdmFsdWUuYwppbmRleCBlY2ZiMTU0Li43YzgzYjgxIDEwMDY0NAotLS0g YS9nZGIvdmFsdWUuYworKysgYi9nZGIvdmFsdWUuYwpAQCAtMzA2OCwyNCAr MzA2OCwzMCBAQCB2YWx1ZV9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqYXJn MXAsIHN0cnVjdCBmbl9maWVsZCAqZiwKICAgc3RydWN0IHZhbHVlICp2Owog ICBzdHJ1Y3QgdHlwZSAqZnR5cGUgPSBUWVBFX0ZOX0ZJRUxEX1RZUEUgKGYs IGopOwogICBjb25zdCBjaGFyICpwaHlzbmFtZSA9IFRZUEVfRk5fRklFTERf UEhZU05BTUUgKGYsIGopOwotICBzdHJ1Y3Qgc3ltYm9sICpzeW07CisgIGNv bnN0IENPUkVfQUREUiBhZGRyID0gVFlQRV9GTl9GSUVMRF9BRERSIChmLCBq KTsKKyAgc3RydWN0IHN5bWJvbCAqc3ltID0gTlVMTDsKICAgc3RydWN0IGJv dW5kX21pbmltYWxfc3ltYm9sIG1zeW07CiAKLSAgc3ltID0gbG9va3VwX3N5 bWJvbCAocGh5c25hbWUsIDAsIFZBUl9ET01BSU4sIDApOwotICBpZiAoc3lt ICE9IE5VTEwpCisgIGlmICghYWRkcikKICAgICB7Ci0gICAgICBtZW1zZXQg KCZtc3ltLCAwLCBzaXplb2YgKG1zeW0pKTsKLSAgICB9Ci0gIGVsc2UKLSAg ICB7Ci0gICAgICBnZGJfYXNzZXJ0IChzeW0gPT0gTlVMTCk7Ci0gICAgICBt c3ltID0gbG9va3VwX2JvdW5kX21pbmltYWxfc3ltYm9sIChwaHlzbmFtZSk7 Ci0gICAgICBpZiAobXN5bS5taW5zeW0gPT0gTlVMTCkKLQlyZXR1cm4gTlVM TDsKKyAgICAgIHN5bSA9IGxvb2t1cF9zeW1ib2wgKHBoeXNuYW1lLCAwLCBW QVJfRE9NQUlOLCAwKTsKKyAgICAgIGlmIChzeW0gIT0gTlVMTCkKKwl7CisJ ICBtZW1zZXQgKCZtc3ltLCAwLCBzaXplb2YgKG1zeW0pKTsKKwl9CisgICAg ICBlbHNlCisJeworCSAgZ2RiX2Fzc2VydCAoc3ltID09IE5VTEwpOworCSAg bXN5bSA9IGxvb2t1cF9ib3VuZF9taW5pbWFsX3N5bWJvbCAocGh5c25hbWUp OworCSAgaWYgKG1zeW0ubWluc3ltID09IE5VTEwpCisJICAgIHJldHVybiBO VUxMOworCX0KICAgICB9CiAKICAgdiA9IGFsbG9jYXRlX3ZhbHVlIChmdHlw ZSk7Ci0gIGlmIChzeW0pCisgIGlmIChhZGRyKQorICAgIHNldF92YWx1ZV9h ZGRyZXNzICh2LCBmLT5hZGRyKTsKKyAgZWxzZSBpZiAoc3ltKQogICAgIHsK ICAgICAgIHNldF92YWx1ZV9hZGRyZXNzICh2LCBCTE9DS19TVEFSVCAoU1lN Qk9MX0JMT0NLX1ZBTFVFIChzeW0pKSk7CiAgICAgfQo= --e89a8f6467f1e9b7ce05089cd00b--