From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23402 invoked by alias); 1 Sep 2011 08:52:18 -0000 Received: (qmail 23394 invoked by uid 22791); 1 Sep 2011 08:52:17 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from mail-iy0-f169.google.com (HELO mail-iy0-f169.google.com) (209.85.210.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 01 Sep 2011 08:52:01 +0000 Received: by iagv1 with SMTP id v1so2025111iag.0 for ; Thu, 01 Sep 2011 01:52:01 -0700 (PDT) Received: by 10.43.43.134 with SMTP id uc6mr1307109icb.7.1314867121178; Thu, 01 Sep 2011 01:52:01 -0700 (PDT) MIME-Version: 1.0 Received: by 10.42.4.8 with HTTP; Thu, 1 Sep 2011 01:51:41 -0700 (PDT) In-Reply-To: References: From: Kevin Pouget Date: Thu, 01 Sep 2011 08:52:00 -0000 Message-ID: Subject: Re: [PATCH] Handle multiple breakpoint hits in Python interface To: Tom Tromey Cc: Eli Zaretskii , gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=bcaec52e5f83af47d204abdd5b89 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: 2011-09/txt/msg00004.txt.bz2 --bcaec52e5f83af47d204abdd5b89 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1042 Sorry, I forgot to include the ChangeLog entry with the previous post, here it is: 2011-04-30 Kevin Pouget Handle multiple breakpoint hits in Python interface: * gdb.texinfo (Events In Python): New function documentation: gdb.BreakpointEvent.breakpoints. Indicate that gdb.BreakpointEvent.breakpoint is now deprecated. 2011-04-30 Kevin Pouget Handle multiple breakpoint hits in Python interface: * python/py-bpevent.c (create_breakpoint_event_object): Rename C/Python variable to breakpoints. * python/py-stopevent.c (emit_stop_event): Return a Python tuple of bps instead of single breakpoint. Fix some space typos. * python/py-stopevent.c (create_breakpoint_event_object): Rename variable to breakpoints. 2011-04-30 Kevin Pouget Handle multiple breakpoint hits in Python interface: * gdb.python/py-events.exp: Set a duplicate breakpoint and check its presence. * gdb.python/py-events.py (breakpoint_stop_handler): Browse all the breakpoint hits. --bcaec52e5f83af47d204abdd5b89 Content-Type: application/octet-stream; name=0001-Handle-multiple-breakpoint-hits-in-Python-interface Content-Disposition: attachment; filename=0001-Handle-multiple-breakpoint-hits-in-Python-interface Content-Transfer-Encoding: base64 X-Attachment-Id: f_gs1hwbr01 Content-length: 10131 RnJvbSA1Y2UyNmQwZDJhY2ZmMTVkZmY4NjA5MjQ4NTc5YjU5Yzk3ZDYxMDMz IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLZXZpbiBQb3VnZXQg PGtldmluLnBvdWdldEBzdC5jb20+CkRhdGU6IFRodSwgMSBTZXAgMjAxMSAx MDoyNzowOSArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIEhhbmRsZSBtdWx0aXBs ZSBicmVha3BvaW50IGhpdHMgaW4gUHl0aG9uIGludGVyZmFjZQoKLS0tCiBn ZGIvTkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMg KysKIGdkYi9kb2MvZ2RiLnRleGluZm8gICAgICAgICAgICAgICAgICAgIHwg ICAxNCArKysrKysrLS0tCiBnZGIvcHl0aG9uL3B5LWJwZXZlbnQuYyAgICAg ICAgICAgICAgICB8ICAgIDggKysrKy0KIGdkYi9weXRob24vcHktc3RvcGV2 ZW50LmMgICAgICAgICAgICAgIHwgICA0MyArKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tCiBnZGIvcHl0aG9uL3B5LXN0b3BldmVudC5oICAgICAg ICAgICAgICB8ICAgIDMgKy0KIGdkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9w eS1ldmVudHMuZXhwIHwgICAgMyArKwogZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0 aG9uL3B5LWV2ZW50cy5weSAgfCAgICA0ICsrLQogNyBmaWxlcyBjaGFuZ2Vk LCA2MSBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9nZGIvTkVXUyBiL2dkYi9ORVdTCmluZGV4IDI1NWEyMmUuLjk0ZTQx OTggMTAwNjQ0Ci0tLSBhL2dkYi9ORVdTCisrKyBiL2dkYi9ORVdTCkBAIC0z OCw2ICszOCw5IEBACiAKICAgKiogU3ltYm9scyBub3cgcHJvdmlkZSB0aGUg InR5cGUiIGF0dHJpYnV0ZSwgdGhlIHR5cGUgb2YgdGhlIHN5bWJvbC4KIAor ICAqKiBUaGUgImdkYi5icmVha3BvaW50IiBmdW5jdGlvbiBoYXMgYmVlbiBk ZXByZWNhdGVkIGFuZCBpbiBmYXZvciBvZgorICAgICAiZ2RiLmJyZWFrcG9p bnRzIi4KKwogKiBsaWJ0aHJlYWQtZGItc2VhcmNoLXBhdGggbm93IHN1cHBv cnRzIHR3byBzcGVjaWFsIHZhbHVlczogJHNkaXIgYW5kICRwZGlyLgogICAk c2RpciBzcGVjaWZpZXMgdGhlIGRlZmF1bHQgc3lzdGVtIGxvY2F0aW9ucyBv ZiBzaGFyZWQgbGlicmFyaWVzLgogICAkcGRpciBzcGVjaWZpZXMgdGhlIGRp cmVjdG9yeSB3aGVyZSB0aGUgbGlicHRocmVhZCB1c2VkIGJ5IHRoZSBhcHBs aWNhdGlvbgpkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dk Yi9kb2MvZ2RiLnRleGluZm8KaW5kZXggMjNiMmE5OC4uYzAwN2RlOSAxMDA2 NDQKLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5mbworKysgYi9nZGIvZG9jL2dk Yi50ZXhpbmZvCkBAIC0yMjMxNywxMyArMjIzMTcsMTkgQEAgdGhlIEB2YWx1 ZXtHREJOfSBjb21tYW5kIHByb21wdC4KIAogQWxzbyBlbWl0cyAgQGNvZGV7 Z2RiLkJyZWFrcG9pbnRFdmVudH0gd2hpY2ggZXh0ZW5kcyBAY29kZXtnZGIu U3RvcEV2ZW50fS4KIAotQGNvZGV7Z2RiLkJyZWFrcG9pbnRFdmVudH0gZXZl bnQgaW5kaWNhdGVzIHRoYXQgYSBicmVha3BvaW50IGhhcyBiZWVuIGhpdCwg YW5kCi1oYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOgorQGNvZGV7Z2Ri LkJyZWFrcG9pbnRFdmVudH0gZXZlbnQgaW5kaWNhdGVzIHRoYXQgb25lIG9y IHNldmVyYWwgYnJlYWtwb2ludHMgaGF2ZQorYmVlbiBoaXQsIGFuZCBoYXMg dGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOgogCiBAdGFibGUgQGNvZGUKLUBk ZWZpdmFyIEJyZWFrcG9pbnRFdmVudCBicmVha3BvaW50Ci1BIHJlZmVyZW5j ZSB0byB0aGUgYnJlYWtwb2ludCB0aGF0IHdhcyBoaXQgb2YgdHlwZSBAY29k ZXtnZGIuQnJlYWtwb2ludH0uCitAZGVmaXZhciBCcmVha3BvaW50RXZlbnQg YnJlYWtwb2ludHMKK0Egc2VxdWVuY2UgY29udGFpbmluZyByZWZlcmVuY2Vz IHRvIGFsbCB0aGUgYnJlYWtwb2ludHMgKHR5cGUgCitAY29kZXtnZGIuQnJl YWtwb2ludH0pIHRoYXQgd2VyZSBoaXQuCiBAeHJlZntCcmVha3BvaW50cyBJ biBQeXRob259LCBmb3IgZGV0YWlscyBvZiB0aGUgQGNvZGV7Z2RiLkJyZWFr cG9pbnR9IG9iamVjdC4KK0BkZWZpdmFyIEJyZWFrcG9pbnRFdmVudCBicmVh a3BvaW50CitBIHJlZmVyZW5jZSB0byB0aGUgZmlyc3QgYnJlYWtwb2ludCB0 aGF0IHdhcyBoaXQgb2YgdHlwZSBAY29kZXtnZGIuQnJlYWtwb2ludH0uCitU aGlzIGZ1bmN0aW9uIGlzIG1haW50YWluZWQgZm9yIGJhY2t3YXJkIGNvbXBh dGliaWxpdHkgYW5kIGlzIG5vdyBkZXByZWNhdGVkIAoraW4gZmF2b3Igb2Yg dGhlIEBjb2Rle2dkYi5CcmVha3BvaW50RXZlbnQuYnJlYWtwb2ludHN9IGZ1 bmN0aW9uLgorCiBAZW5kIGRlZml2YXIKIEBlbmQgdGFibGUKIApkaWZmIC0t Z2l0IGEvZ2RiL3B5dGhvbi9weS1icGV2ZW50LmMgYi9nZGIvcHl0aG9uL3B5 LWJwZXZlbnQuYwppbmRleCBjN2Y3OTY1Li5mMzdiMjQ4IDEwMDY0NAotLS0g YS9nZGIvcHl0aG9uL3B5LWJwZXZlbnQuYworKysgYi9nZGIvcHl0aG9uL3B5 LWJwZXZlbnQuYwpAQCAtMjQsNyArMjQsNyBAQCBzdGF0aWMgUHlUeXBlT2Jq ZWN0IGJyZWFrcG9pbnRfZXZlbnRfb2JqZWN0X3R5cGU7CiAvKiBDcmVhdGUg YW5kIGluaXRpYWxpemUgYSBCcmVha3BvaW50RXZlbnQgb2JqZWN0LiAgKi8K IAogUHlPYmplY3QgKgotY3JlYXRlX2JyZWFrcG9pbnRfZXZlbnRfb2JqZWN0 IChQeU9iamVjdCAqYnJlYWtwb2ludCkKK2NyZWF0ZV9icmVha3BvaW50X2V2 ZW50X29iamVjdCAoUHlPYmplY3QgKmJyZWFrcG9pbnRfbGlzdCwgUHlPYmpl Y3QgKmZpcnN0X2JwKQogewogICBQeU9iamVjdCAqYnJlYWtwb2ludF9ldmVu dF9vYmogPQogICAgICAgY3JlYXRlX3N0b3BfZXZlbnRfb2JqZWN0ICgmYnJl YWtwb2ludF9ldmVudF9vYmplY3RfdHlwZSk7CkBAIC0zNCw3ICszNCwxMSBA QCBjcmVhdGVfYnJlYWtwb2ludF9ldmVudF9vYmplY3QgKFB5T2JqZWN0ICpi cmVha3BvaW50KQogCiAgIGlmIChldnB5X2FkZF9hdHRyaWJ1dGUgKGJyZWFr cG9pbnRfZXZlbnRfb2JqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAi YnJlYWtwb2ludCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr cG9pbnQpIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3Rf YnApIDwgMCkKKyAgICBnb3RvIGZhaWw7CisgIGlmIChldnB5X2FkZF9hdHRy aWJ1dGUgKGJyZWFrcG9pbnRfZXZlbnRfb2JqLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAiYnJlYWtwb2ludHMiLAorICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVha3BvaW50X2xpc3QpIDwgMCkKICAgICBnb3RvIGZhaWw7 CiAKICAgcmV0dXJuIGJyZWFrcG9pbnRfZXZlbnRfb2JqOwpkaWZmIC0tZ2l0 IGEvZ2RiL3B5dGhvbi9weS1zdG9wZXZlbnQuYyBiL2dkYi9weXRob24vcHkt c3RvcGV2ZW50LmMKaW5kZXggMTIyZmU2Yi4uMWVjYmU2YyAxMDA2NDQKLS0t IGEvZ2RiL3B5dGhvbi9weS1zdG9wZXZlbnQuYworKysgYi9nZGIvcHl0aG9u L3B5LXN0b3BldmVudC5jCkBAIC00NSwxOCArNDUsNDIgQEAgaW50CiBlbWl0 X3N0b3BfZXZlbnQgKHN0cnVjdCBicHN0YXRzICpicywgZW51bSB0YXJnZXRf c2lnbmFsIHN0b3Bfc2lnbmFsKQogewogICBQeU9iamVjdCAqc3RvcF9ldmVu dF9vYmogPSBOVUxMOyAvKiBBcHBlYXNlIEdDQyB3YXJuaW5nLiAgKi8KKyAg UHlPYmplY3QgKmxpc3QgPSBOVUxMOworICBQeU9iamVjdCAqZmlyc3RfYnAg PSBOVUxMOworICBzdHJ1Y3QgYnBzdGF0cyAqY3VycmVudF9iczsKIAogICBp ZiAoZXZyZWdweV9ub19saXN0ZW5lcnNfcCAoZ2RiX3B5X2V2ZW50cy5zdG9w KSkKICAgICByZXR1cm4gMDsKIAotICBpZiAoYnMgJiYgYnMtPmJyZWFrcG9p bnRfYXQKLSAgICAgICYmIGJzLT5icmVha3BvaW50X2F0LT5weV9icF9vYmpl Y3QpCisgIC8qIEFkZCBhbnkgYnJlYWtwb2ludCBzZXQgYXQgdGhpcyBsb2Nh dGlvbiB0byB0aGUgbGlzdC4gICovCisgIGZvciAoY3VycmVudF9icyA9IGJz OyBjdXJyZW50X2JzICE9IE5VTEw7IGN1cnJlbnRfYnMgPSBjdXJyZW50X2Jz LT5uZXh0KQogICAgIHsKLSAgICAgIHN0b3BfZXZlbnRfb2JqID0gY3JlYXRl X2JyZWFrcG9pbnRfZXZlbnRfb2JqZWN0ICgoUHlPYmplY3QgKikgYnMKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAtPmJyZWFrcG9pbnRfYXQKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPnB5X2JwX29i amVjdCk7CisgICAgICBpZiAoY3VycmVudF9icy0+YnJlYWtwb2ludF9hdAor ICAgICAgICAgICYmIGN1cnJlbnRfYnMtPmJyZWFrcG9pbnRfYXQtPnB5X2Jw X29iamVjdCkKKyAgICAgICAgeworICAgICAgICAgIFB5T2JqZWN0ICpjdXJy ZW50X3B5X2JwID0KKyAgICAgICAgICAgICAgKFB5T2JqZWN0ICopIGN1cnJl bnRfYnMtPmJyZWFrcG9pbnRfYXQtPnB5X2JwX29iamVjdDsKKworICAgICAg ICAgIGlmIChsaXN0ID09IE5VTEwpCisgICAgICAgICAgICB7CisgICAgICAg ICAgICAgIGxpc3QgPSBQeUxpc3RfTmV3ICgwKTsKKyAgICAgICAgICAgICAg aWYgKCFsaXN0KQorICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAg ICAgICAgIH0KKworICAgICAgICAgIGlmIChQeUxpc3RfQXBwZW5kIChsaXN0 LCBjdXJyZW50X3B5X2JwKSkKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKKwor ICAgICAgICAgIGlmIChmaXJzdF9icCA9PSBOVUxMKQorICAgICAgICAgICAg Zmlyc3RfYnAgPSBjdXJyZW50X3B5X2JwOworICAgICAgICB9CisgICAgfQor CisgIGlmIChsaXN0ICE9IE5VTEwpCisgICAgeworICAgICAgc3RvcF9ldmVu dF9vYmogPSBjcmVhdGVfYnJlYWtwb2ludF9ldmVudF9vYmplY3QgKGxpc3Qs IGZpcnN0X2JwKTsKICAgICAgIGlmICghc3RvcF9ldmVudF9vYmopCi0JZ290 byBmYWlsOworICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCiAgIC8qIENo ZWNrIGlmIHRoZSBzaWduYWwgaXMgIlNpZ25hbCAwIiBvciAiVHJhY2UvYnJl YWtwb2ludCB0cmFwIi4gICovCkBAIC03NSwxMyArOTksMTQgQEAgZW1pdF9z dG9wX2V2ZW50IChzdHJ1Y3QgYnBzdGF0cyAqYnMsIGVudW0gdGFyZ2V0X3Np Z25hbCBzdG9wX3NpZ25hbCkKICAgICB7CiAgICAgICBzdG9wX2V2ZW50X29i aiA9IGNyZWF0ZV9zdG9wX2V2ZW50X29iamVjdCAoJnN0b3BfZXZlbnRfb2Jq ZWN0X3R5cGUpOwogICAgICAgaWYgKCFzdG9wX2V2ZW50X29iaikKLQlnb3Rv IGZhaWw7CisgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKICAgcmV0dXJu IGV2cHlfZW1pdF9ldmVudCAoc3RvcF9ldmVudF9vYmosIGdkYl9weV9ldmVu dHMuc3RvcCk7CiAKLSAgZmFpbDoKLSAgIHJldHVybiAtMTsKKyBmYWlsOgor ICBQeV9YREVDUkVGIChsaXN0KTsKKyAgcmV0dXJuIC0xOwogfQogCiBHREJQ WV9ORVdfRVZFTlRfVFlQRSAoc3RvcCwKZGlmZiAtLWdpdCBhL2dkYi9weXRo b24vcHktc3RvcGV2ZW50LmggYi9nZGIvcHl0aG9uL3B5LXN0b3BldmVudC5o CmluZGV4IDUyZjM1MTEuLjg1YWM0ZDMgMTAwNjQ0Ci0tLSBhL2dkYi9weXRo b24vcHktc3RvcGV2ZW50LmgKKysrIGIvZ2RiL3B5dGhvbi9weS1zdG9wZXZl bnQuaApAQCAtMjgsNyArMjgsOCBAQCBleHRlcm4gdm9pZCBzdG9wX2V2cHlf ZGVhbGxvYyAoUHlPYmplY3QgKnNlbGYpOwogZXh0ZXJuIGludCBlbWl0X3N0 b3BfZXZlbnQgKHN0cnVjdCBicHN0YXRzICpicywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBlbnVtIHRhcmdldF9zaWduYWwgc3RvcF9zaWduYWwp OwogCi1leHRlcm4gUHlPYmplY3QgKmNyZWF0ZV9icmVha3BvaW50X2V2ZW50 X29iamVjdCAoUHlPYmplY3QgKmJyZWFrcG9pbnQpOworZXh0ZXJuIFB5T2Jq ZWN0ICpjcmVhdGVfYnJlYWtwb2ludF9ldmVudF9vYmplY3QgKFB5T2JqZWN0 ICpicmVha3BvaW50X2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKmZpcnN0X2JwKTsK IAogZXh0ZXJuIFB5T2JqZWN0ICpjcmVhdGVfc2lnbmFsX2V2ZW50X29iamVj dCAoZW51bSB0YXJnZXRfc2lnbmFsIHN0b3Bfc2lnbmFsKTsKIApkaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWV2ZW50cy5leHAg Yi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZXZlbnRzLmV4cAppbmRl eCBlNWQ2ZGFmLi44ZWZmMTY1IDEwMDY0NAotLS0gYS9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHktZXZlbnRzLmV4cAorKysgYi9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHktZXZlbnRzLmV4cApAQCAtNDUsMTIgKzQ1LDE1IEBA IGlmICFbcnVudG9fbWFpbiBdIHRoZW4gewogZ2RiX3Rlc3QgIlRlc3RfRXZl bnRzIiAiRXZlbnQgdGVzdGVycyByZWdpc3RlcmVkLiIKIAogZ2RiX2JyZWFr cG9pbnQgImZpcnN0IgorZ2RiX2JyZWFrcG9pbnQgImZpcnN0IgogCiAjIFRl c3QgY29udGludWUgZXZlbnQgYW5kIGJyZWFrcG9pbnQgc3RvcCBldmVudAog Z2RiX3Rlc3QgImNvbnRpbnVlIiAiLipldmVudCB0eXBlOiBjb250aW51ZS4q CiAuKmV2ZW50IHR5cGU6IHN0b3AuKgogLipzdG9wIHJlYXNvbjogYnJlYWtw b2ludC4qCisuKmZpcnN0IGJyZWFrcG9pbnQgbnVtYmVyOiAyLioKIC4qYnJl YWtwb2ludCBudW1iZXI6IDIuKgorLipicmVha3BvaW50IG51bWJlcjogMy4q CiBhbGwgdGhyZWFkcyBzdG9wcGVkIgogCiAjdGVzdCBleGl0ZWQgZXZlbnQu CmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZXZl bnRzLnB5IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWV2ZW50cy5w eQppbmRleCA5ZjA1YjlmLi4xMGFlYTRmIDEwMDY0NAotLS0gYS9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHktZXZlbnRzLnB5CisrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS1ldmVudHMucHkKQEAgLTMxLDcgKzMxLDkg QEAgZGVmIGJyZWFrcG9pbnRfc3RvcF9oYW5kbGVyIChldmVudCk6CiAgICAg ICAgIHByaW50ICJldmVudCB0eXBlOiBzdG9wIgogICAgIGlmIChpc2luc3Rh bmNlIChldmVudCwgZ2RiLkJyZWFrcG9pbnRFdmVudCkpOgogICAgICAgICBw cmludCAic3RvcCByZWFzb246IGJyZWFrcG9pbnQiCi0gICAgICAgIHByaW50 ICJicmVha3BvaW50IG51bWJlcjogJXMiICUgKGV2ZW50LmJyZWFrcG9pbnQu bnVtYmVyKQorICAgICAgICBwcmludCAiZmlyc3QgYnJlYWtwb2ludCBudW1i ZXI6ICVzIiAlIChldmVudC5icmVha3BvaW50Lm51bWJlcikKKyAgICAgICAg Zm9yIGJwIGluIGV2ZW50LmJyZWFrcG9pbnRzOgorICAgICAgICAJcHJpbnQg ImJyZWFrcG9pbnQgbnVtYmVyOiAlcyIgJSAoYnAubnVtYmVyKQogICAgICAg ICBpZiAoIGV2ZW50LmluZmVyaW9yX3RocmVhZCBpcyBub3QgTm9uZSkgOgog ICAgICAgICAgICAgcHJpbnQgInRocmVhZCBudW06ICVzIiAlIChldmVudC5p bmZlcmlvcl90aHJlYWQubnVtKTsKICAgICAgICAgZWxzZToKLS0gCjEuNy42 Cgo= --bcaec52e5f83af47d204abdd5b89--