From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1510 invoked by alias); 25 Jun 2009 19:38:47 -0000 Received: (qmail 1480 invoked by uid 22791); 25 Jun 2009 19:38:36 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.45.13) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 25 Jun 2009 19:38:29 +0000 Received: from zps35.corp.google.com (zps35.corp.google.com [172.25.146.35]) by smtp-out.google.com with ESMTP id n5PJcR2G011433 for ; Thu, 25 Jun 2009 12:38:27 -0700 Received: from qyk3 (qyk3.prod.google.com [10.241.83.131]) by zps35.corp.google.com with ESMTP id n5PJcPQ1014271 for ; Thu, 25 Jun 2009 12:38:25 -0700 Received: by qyk3 with SMTP id 3so1039748qyk.20 for ; Thu, 25 Jun 2009 12:38:25 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.99.135 with SMTP id u7mr979960qcn.44.1245958705022; Thu, 25 Jun 2009 12:38:25 -0700 (PDT) In-Reply-To: References: <20090613012804.BD89576BC4@localhost> Date: Thu, 25 Jun 2009 19:38:00 -0000 Message-ID: <8ac60eac0906251238p7ad73eacjc09772ee3e91b80@mail.gmail.com> Subject: Re: [rfc][patch] Fix for gdb/10275 (mis-handling of DW_CFA_restore_state) From: Paul Pluzhnikov To: tromey@redhat.com Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=001636426f43048a36046d315eee X-System-Of-Record: true X-IsSubscribed: yes 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 X-SW-Source: 2009-06/txt/msg00684.txt.bz2 --001636426f43048a36046d315eee Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 688 On Thu, Jun 25, 2009 at 9:14 AM, Tom Tromey wrote: > Paul> If this looks correct, I'll add a test case. > Yes, please do. Attached. > Paul> + =A0 =A0 =A0 fs->regs.cfa_reg =3D dwarf2_frame_adjust_regnum (gdba= rch, fs->regs.cfa_reg, > This line looks like it wraps now. Yes, fixed here and in one more place. Thanks, --=20 Paul Pluzhnikov ChangeLog 2009-06-25 Paul Pluzhnikov gdb/10275 * dwarf2-frame.c (dwarf2_frame_state): Move cfa_offset, cfa_reg, cfa_how and cfa_exp into regs and adjust users. testsuite/ChangeLog 2009-06-25 Paul Pluzhnikov gdb/10275 * gdb.dwarf2/dw2-restore.{S,exp}: New test. --001636426f43048a36046d315eee Content-Type: text/plain; charset=US-ASCII; name="gdb-bug-10275-20090625.txt" Content-Disposition: attachment; filename="gdb-bug-10275-20090625.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fwdvmg4r0 Content-length: 10712 SW5kZXg6IGR3YXJmMi1mcmFtZS5jCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K UkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvZHdhcmYyLWZyYW1lLmMsdgpy ZXRyaWV2aW5nIHJldmlzaW9uIDEuODkKZGlmZiAtdSAtcCAtdSAtcjEuODkg ZHdhcmYyLWZyYW1lLmMKLS0tIGR3YXJmMi1mcmFtZS5jCTE4IEp1biAyMDA5 IDE0OjAyOjE4IC0wMDAwCTEuODkKKysrIGR3YXJmMi1mcmFtZS5jCTI1IEp1 biAyMDA5IDE5OjM3OjI4IC0wMDAwCkBAIC0xNjQsMTkgKzE2NCwxOSBAQCBz dHJ1Y3QgZHdhcmYyX2ZyYW1lX3N0YXRlCiAgICAgc3RydWN0IGR3YXJmMl9m cmFtZV9zdGF0ZV9yZWcgKnJlZzsKICAgICBpbnQgbnVtX3JlZ3M7CiAKKyAg ICBMT05HRVNUIGNmYV9vZmZzZXQ7CisgICAgVUxPTkdFU1QgY2ZhX3JlZzsK KyAgICBlbnVtIHsKKyAgICAgIENGQV9VTlNFVCwKKyAgICAgIENGQV9SRUdf T0ZGU0VULAorICAgICAgQ0ZBX0VYUAorICAgIH0gY2ZhX2hvdzsKKyAgICBn ZGJfYnl0ZSAqY2ZhX2V4cDsKKwogICAgIC8qIFVzZWQgdG8gaW1wbGVtZW50 IERXX0NGQV9yZW1lbWJlcl9zdGF0ZS4gICovCiAgICAgc3RydWN0IGR3YXJm Ml9mcmFtZV9zdGF0ZV9yZWdfaW5mbyAqcHJldjsKICAgfSByZWdzOwogCi0g IExPTkdFU1QgY2ZhX29mZnNldDsKLSAgVUxPTkdFU1QgY2ZhX3JlZzsKLSAg Z2RiX2J5dGUgKmNmYV9leHA7Ci0gIGVudW0gewotICAgIENGQV9VTlNFVCwK LSAgICBDRkFfUkVHX09GRlNFVCwKLSAgICBDRkFfRVhQCi0gIH0gY2ZhX2hv dzsKLQogICAvKiBUaGUgUEMgZGVzY3JpYmVkIGJ5IHRoZSBjdXJyZW50IGZy YW1lIHN0YXRlLiAgKi8KICAgQ09SRV9BRERSIHBjOwogCkBAIC01MDIsMjEg KzUwMiwyMiBAQCBiYWQgQ0ZJIGRhdGE7IG1pc21hdGNoZWQgRFdfQ0ZBX3Jl c3RvcmVfCiAJICAgICAgYnJlYWs7CiAKIAkgICAgY2FzZSBEV19DRkFfZGVm X2NmYToKLQkgICAgICBpbnNuX3B0ciA9IHJlYWRfdWxlYjEyOCAoaW5zbl9w dHIsIGluc25fZW5kLCAmZnMtPmNmYV9yZWcpOworCSAgICAgIGluc25fcHRy ID0gcmVhZF91bGViMTI4IChpbnNuX3B0ciwgaW5zbl9lbmQsICZmcy0+cmVn cy5jZmFfcmVnKTsKIAkgICAgICBpbnNuX3B0ciA9IHJlYWRfdWxlYjEyOCAo aW5zbl9wdHIsIGluc25fZW5kLCAmdXRtcCk7CiAKIAkgICAgICBpZiAoZnMt PmFybWNjX2NmYV9vZmZzZXRzX3NmKQogCQl1dG1wICo9IGZzLT5kYXRhX2Fs aWduOwogCi0JICAgICAgZnMtPmNmYV9vZmZzZXQgPSB1dG1wOwotCSAgICAg IGZzLT5jZmFfaG93ID0gQ0ZBX1JFR19PRkZTRVQ7CisJICAgICAgZnMtPnJl Z3MuY2ZhX29mZnNldCA9IHV0bXA7CisJICAgICAgZnMtPnJlZ3MuY2ZhX2hv dyA9IENGQV9SRUdfT0ZGU0VUOwogCSAgICAgIGJyZWFrOwogCiAJICAgIGNh c2UgRFdfQ0ZBX2RlZl9jZmFfcmVnaXN0ZXI6Ci0JICAgICAgaW5zbl9wdHIg PSByZWFkX3VsZWIxMjggKGluc25fcHRyLCBpbnNuX2VuZCwgJmZzLT5jZmFf cmVnKTsKLQkgICAgICBmcy0+Y2ZhX3JlZyA9IGR3YXJmMl9mcmFtZV9hZGp1 c3RfcmVnbnVtIChnZGJhcmNoLCBmcy0+Y2ZhX3JlZywKLQkJCQkJCQllaF9m cmFtZV9wKTsKLQkgICAgICBmcy0+Y2ZhX2hvdyA9IENGQV9SRUdfT0ZGU0VU OworCSAgICAgIGluc25fcHRyID0gcmVhZF91bGViMTI4IChpbnNuX3B0ciwg aW5zbl9lbmQsICZmcy0+cmVncy5jZmFfcmVnKTsKKwkgICAgICBmcy0+cmVn cy5jZmFfcmVnID0gZHdhcmYyX2ZyYW1lX2FkanVzdF9yZWdudW0gKGdkYmFy Y2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZnMtPnJlZ3MuY2ZhX3JlZywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlaF9mcmFtZV9wKTsKKwkgICAgICBmcy0+cmVncy5jZmFf aG93ID0gQ0ZBX1JFR19PRkZTRVQ7CiAJICAgICAgYnJlYWs7CiAKIAkgICAg Y2FzZSBEV19DRkFfZGVmX2NmYV9vZmZzZXQ6CkBAIC01MjUsNyArNTI2LDcg QEAgYmFkIENGSSBkYXRhOyBtaXNtYXRjaGVkIERXX0NGQV9yZXN0b3JlXwog CSAgICAgIGlmIChmcy0+YXJtY2NfY2ZhX29mZnNldHNfc2YpCiAJCXV0bXAg Kj0gZnMtPmRhdGFfYWxpZ247CiAKLQkgICAgICBmcy0+Y2ZhX29mZnNldCA9 IHV0bXA7CisJICAgICAgZnMtPnJlZ3MuY2ZhX29mZnNldCA9IHV0bXA7CiAJ ICAgICAgLyogY2ZhX2hvdyBkZWxpYmVyYXRlbHkgbm90IHNldC4gICovCiAJ ICAgICAgYnJlYWs7CiAKQEAgLTUzMywxMCArNTM0LDExIEBAIGJhZCBDRkkg ZGF0YTsgbWlzbWF0Y2hlZCBEV19DRkFfcmVzdG9yZV8KIAkgICAgICBicmVh azsKIAogCSAgICBjYXNlIERXX0NGQV9kZWZfY2ZhX2V4cHJlc3Npb246Ci0J ICAgICAgaW5zbl9wdHIgPSByZWFkX3VsZWIxMjggKGluc25fcHRyLCBpbnNu X2VuZCwgJmZzLT5jZmFfZXhwX2xlbik7Ci0JICAgICAgZnMtPmNmYV9leHAg PSBpbnNuX3B0cjsKLQkgICAgICBmcy0+Y2ZhX2hvdyA9IENGQV9FWFA7Ci0J ICAgICAgaW5zbl9wdHIgKz0gZnMtPmNmYV9leHBfbGVuOworCSAgICAgIGlu c25fcHRyID0gcmVhZF91bGViMTI4IChpbnNuX3B0ciwgaW5zbl9lbmQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZnMtPnJl Z3MuY2ZhX2V4cF9sZW4pOworCSAgICAgIGZzLT5yZWdzLmNmYV9leHAgPSBp bnNuX3B0cjsKKwkgICAgICBmcy0+cmVncy5jZmFfaG93ID0gQ0ZBX0VYUDsK KwkgICAgICBpbnNuX3B0ciArPSBmcy0+cmVncy5jZmFfZXhwX2xlbjsKIAkg ICAgICBicmVhazsKIAogCSAgICBjYXNlIERXX0NGQV9leHByZXNzaW9uOgpA QCAtNTg5LDE3ICs1OTEsMTggQEAgYmFkIENGSSBkYXRhOyBtaXNtYXRjaGVk IERXX0NGQV9yZXN0b3JlXwogCSAgICAgIGJyZWFrOwogCiAJICAgIGNhc2Ug RFdfQ0ZBX2RlZl9jZmFfc2Y6Ci0JICAgICAgaW5zbl9wdHIgPSByZWFkX3Vs ZWIxMjggKGluc25fcHRyLCBpbnNuX2VuZCwgJmZzLT5jZmFfcmVnKTsKLQkg ICAgICBmcy0+Y2ZhX3JlZyA9IGR3YXJmMl9mcmFtZV9hZGp1c3RfcmVnbnVt IChnZGJhcmNoLCBmcy0+Y2ZhX3JlZywKLQkJCQkJCQllaF9mcmFtZV9wKTsK KwkgICAgICBpbnNuX3B0ciA9IHJlYWRfdWxlYjEyOCAoaW5zbl9wdHIsIGlu c25fZW5kLCAmZnMtPnJlZ3MuY2ZhX3JlZyk7CisJICAgICAgZnMtPnJlZ3Mu Y2ZhX3JlZyA9IGR3YXJmMl9mcmFtZV9hZGp1c3RfcmVnbnVtIChnZGJhcmNo LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZzLT5yZWdzLmNmYV9yZWcsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZWhfZnJhbWVfcCk7CiAJICAgICAgaW5zbl9wdHIgPSByZWFk X3NsZWIxMjggKGluc25fcHRyLCBpbnNuX2VuZCwgJm9mZnNldCk7Ci0JICAg ICAgZnMtPmNmYV9vZmZzZXQgPSBvZmZzZXQgKiBmcy0+ZGF0YV9hbGlnbjsK LQkgICAgICBmcy0+Y2ZhX2hvdyA9IENGQV9SRUdfT0ZGU0VUOworCSAgICAg IGZzLT5yZWdzLmNmYV9vZmZzZXQgPSBvZmZzZXQgKiBmcy0+ZGF0YV9hbGln bjsKKwkgICAgICBmcy0+cmVncy5jZmFfaG93ID0gQ0ZBX1JFR19PRkZTRVQ7 CiAJICAgICAgYnJlYWs7CiAKIAkgICAgY2FzZSBEV19DRkFfZGVmX2NmYV9v ZmZzZXRfc2Y6CiAJICAgICAgaW5zbl9wdHIgPSByZWFkX3NsZWIxMjggKGlu c25fcHRyLCBpbnNuX2VuZCwgJm9mZnNldCk7Ci0JICAgICAgZnMtPmNmYV9v ZmZzZXQgPSBvZmZzZXQgKiBmcy0+ZGF0YV9hbGlnbjsKKwkgICAgICBmcy0+ cmVncy5jZmFfb2Zmc2V0ID0gb2Zmc2V0ICogZnMtPmRhdGFfYWxpZ247CiAJ ICAgICAgLyogY2ZhX2hvdyBkZWxpYmVyYXRlbHkgbm90IHNldC4gICovCiAJ ICAgICAgYnJlYWs7CiAKQEAgLTkzMiwxOSArOTM1LDE5IEBAIGR3YXJmMl9m cmFtZV9jYWNoZSAoc3RydWN0IGZyYW1lX2luZm8gKnQKICAgZXhlY3V0ZV9j ZmFfcHJvZ3JhbSAoZmRlLCBmZGUtPmluc3RydWN0aW9ucywgZmRlLT5lbmQs IHRoaXNfZnJhbWUsIGZzKTsKIAogICAvKiBDYWxjdWxhdGUgdGhlIENGQS4g ICovCi0gIHN3aXRjaCAoZnMtPmNmYV9ob3cpCisgIHN3aXRjaCAoZnMtPnJl Z3MuY2ZhX2hvdykKICAgICB7CiAgICAgY2FzZSBDRkFfUkVHX09GRlNFVDoK LSAgICAgIGNhY2hlLT5jZmEgPSByZWFkX3JlZyAodGhpc19mcmFtZSwgZnMt PmNmYV9yZWcpOworICAgICAgY2FjaGUtPmNmYSA9IHJlYWRfcmVnICh0aGlz X2ZyYW1lLCBmcy0+cmVncy5jZmFfcmVnKTsKICAgICAgIGlmIChmcy0+YXJt Y2NfY2ZhX29mZnNldHNfcmV2ZXJzZWQpCi0JY2FjaGUtPmNmYSAtPSBmcy0+ Y2ZhX29mZnNldDsKKwljYWNoZS0+Y2ZhIC09IGZzLT5yZWdzLmNmYV9vZmZz ZXQ7CiAgICAgICBlbHNlCi0JY2FjaGUtPmNmYSArPSBmcy0+Y2ZhX29mZnNl dDsKKwljYWNoZS0+Y2ZhICs9IGZzLT5yZWdzLmNmYV9vZmZzZXQ7CiAgICAg ICBicmVhazsKIAogICAgIGNhc2UgQ0ZBX0VYUDoKICAgICAgIGNhY2hlLT5j ZmEgPQotCWV4ZWN1dGVfc3RhY2tfb3AgKGZzLT5jZmFfZXhwLCBmcy0+Y2Zh X2V4cF9sZW4sCisJZXhlY3V0ZV9zdGFja19vcCAoZnMtPnJlZ3MuY2ZhX2V4 cCwgZnMtPnJlZ3MuY2ZhX2V4cF9sZW4sCiAJCQkgIGNhY2hlLT5hZGRyX3Np emUsIHRoaXNfZnJhbWUsIDApOwogICAgICAgYnJlYWs7CiAKSW5kZXg6IHRl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1yZXN0b3JlLlMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpSQ1MgZmlsZTogdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcy LXJlc3RvcmUuUwpkaWZmIC1OIHRlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1y ZXN0b3JlLlMKLS0tIC9kZXYvbnVsbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0w MDAwCisrKyB0ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItcmVzdG9yZS5TCTI1 IEp1biAyMDA5IDE5OjM3OjI4IC0wMDAwCkBAIC0wLDAgKzEsNTAgQEAKKy8q CisgICBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor ICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKy8qIENv bXBpbGUgd2l0aCAiZ2NjIC1ub3N0ZGxpYiBkdzItcmVzdG9yZS5TIiAqLwor CisJLnRleHQKKwkuZ2xvYmwgX3N0YXJ0CisJLmZ1bmMJX3N0YXJ0Citfc3Rh cnQ6CWNhbGwgZm9vCisJbW92ICQwLCVyYXgKKwlyZXQKKwkuZW5kZnVuYwor CisJLmZ1bmMJZm9vCitmb286CS5jZmlfc3RhcnRwcm9jCisJcHVzaCAlcmJw CisJLmNmaV9hZGp1c3RfY2ZhX29mZnNldCA4CisJbW92ICVyc3AsJXJicAor CS5jZmlfZGVmX2NmYV9yZWdpc3RlciAlcmJwCisKKwkuY2ZpX3JlbWVtYmVy X3N0YXRlCisJam1wIDJmCisJCisxOgltb3YgJXJicCwlcnNwCisJLmNmaV9y ZXN0b3JlICVyYnAKKwlwb3AgJXJicAorCS5jZmlfYWRqdXN0X2NmYV9vZmZz ZXQgLTgKKwkuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIgJXJzcAorCXJldAorCisJ LmNmaV9yZXN0b3JlX3N0YXRlCisyOiAJbW92cSAkMCwlcmF4CisJbW92cSAk MCwoJXJheCkgIC8qIGNyYXNoIGhlcmUgKi8KKwlqbXAgMWIKKwkuY2ZpX2Vu ZHByb2MKKwkuZW5kZnVuYwpJbmRleDogdGVzdHN1aXRlL2dkYi5kd2FyZjIv ZHcyLXJlc3RvcmUuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp bGU6IHRlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1yZXN0b3JlLmV4cApkaWZm IC1OIHRlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1yZXN0b3JlLmV4cAotLS0g L2Rldi9udWxsCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIHRlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1yZXN0b3JlLmV4cAkyNSBKdW4gMjAwOSAx OTozNzoyOCAtMDAwMApAQCAtMCwwICsxLDM3IEBACisjIENvcHlyaWdodCAy MDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor IyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisj CisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgorCisjIFRlc3QgaGFuZGxpbmcgb2YgRFdfQ0ZBX3Jlc3RvcmVf c3RhdGUuCisKKyMgVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biBvbiB4ODZf NjQgdGFyZ2V0cy4KK2lmIHshW2lzdGFyZ2V0IHg4Nl82NC0qXX0geworICAg IHJldHVybiAwICAKK30KK3NldCB0ZXN0ZmlsZSAiZHcyLXJlc3RvcmUiCitz ZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5TCitzZXQgYmluZmlsZSAke29iamRp cn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9LngKKworaWYgIHsgW2dkYl9jb21w aWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZp bGV9IiBleGVjdXRhYmxlIFwKKyAgICAgICBbbGlzdCB7YWRkaXRpb25hbF9m bGFncz0tbm9zdGRsaWJ9XV0gIT0gIiIgfSB7CisgICAgcmV0dXJuIC0xCit9 CisKK2dkYl9leGl0CitnZGJfc3RhcnQKK2dkYl9yZWluaXRpYWxpemVfZGly ICRzcmNkaXIvJHN1YmRpcgorZ2RiX2xvYWQgJHtiaW5maWxlfQorCitnZGJf dGVzdCAicnVuIiAiIgorZ2RiX3Rlc3QgIndoZXJlIiAiLiokaGV4IGluIGZv byAoKS4rJGhleCBpbiBfc3RhcnQgKCkuKiIK --001636426f43048a36046d315eee--