From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30394 invoked by alias); 1 Apr 2014 22:52:52 -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 30381 invoked by uid 89); 1 Apr 2014 22:52:51 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.8 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-wg0-f52.google.com Received: from mail-wg0-f52.google.com (HELO mail-wg0-f52.google.com) (74.125.82.52) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Tue, 01 Apr 2014 22:52:49 +0000 Received: by mail-wg0-f52.google.com with SMTP id k14so8019103wgh.23 for ; Tue, 01 Apr 2014 15:52:46 -0700 (PDT) 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=7kVz26Uqqv7tkqjlVWQgWjXXwduJXus7DX32P8HYJVo=; b=TD1dZZ0WieGnn4BMJqeH2ArrJ1ef36qGzcewk9LLv1iEUSlULj/c9OPfU9e9xmY/jf mSc2TxJr99XUYykRgU7VGN6HBa90Hn3EzX8YpF/NaqHzFU8Ecv6xJQQJxTDgoPl1fn71 64xehmK8SNhDe97vB+SVQf7K9oTHHVKY9AdXiwqaWa86SbIh8ZXaM8SeCrJC4glYshYu 7x5d1zuuDYLcjXEdg4vZPRqtyzuXtGw1T6wigtVRwov0uoGuTQpbY1RLLTw/jhW22GOE EtEqri767oSr13/twVBXLYSO4C6g+R2nESw1lS2N4lJoVOa7qWPW3f/li+wf72j3dZ/x AHNg== X-Gm-Message-State: ALoCoQlaG0gLizZ3d4kM+A1J+UYOx7n4QEuQOZ0j4iYiZhPnWgIozxG6QShHx8UbLUrrBGfOe+Z0wmM88obvsq+dW08DOYXTruzgQul92C05qKIVekhzGc2acBM9e9/uVXk4pKwvxAFAgCymJDcnK+EallB0qnDpRGw0TUgm1cfufyf374XA3bQpJxLfjz/NSdeVUb/PSkSm/uR0wpV7XZinbDo0DvVg4g== MIME-Version: 1.0 X-Received: by 10.180.189.139 with SMTP id gi11mr23471162wic.53.1396392766703; Tue, 01 Apr 2014 15:52:46 -0700 (PDT) Received: by 10.15.48.194 with HTTP; Tue, 1 Apr 2014 15:52:46 -0700 (PDT) Date: Tue, 01 Apr 2014 22:52:00 -0000 Message-ID: Subject: [Patch v12 1/4] Documentation of the debug method support in GDB Python API From: Siva Chandra To: gdb-patches Content-Type: multipart/mixed; boundary=001a11c34908d4a07e04f6030617 X-IsSubscribed: yes X-SW-Source: 2014-04/txt/msg00012.txt.bz2 --001a11c34908d4a07e04f6030617 Content-Type: text/plain; charset=UTF-8 Content-length: 1316 This part adds the docs and NEWS entries. I addressed all of Eli's and Doug's comments barring the following: Siva> +The @value{GDBN} Python API provides classes, interfaces and functions Siva> +to implement, register and manipulate debug methods. The core concepts Siva> +involved in implementing debug methods are @emph{debug method matchers} Siva> +and @emph{debug method workers}. Eli> The last sentence is a repetition of what the previous section said. Eli> Do we really need this here? I can remove the repetitive sentence. However, for the HTML version of the manual with each node on its own page, the repetition makes the page self contained (I think). Siva> +An instance of @code{DebugMethodMatcher} has the following attributes: Siva> + Siva> +@defvar DebugMethodMatcher.name Siva> +The name of the matcher. Siva> +@end defvar Eli> I think we use only the attribute name, without the class name. Are you referring to 'DebugMethodMatcher.name'? I find that other Python types are also documented in this fashion. 2014-04-01 Siva Chandra Reddy * NEWS (Python Scripting): Add entry about this new feature. doc/ * python.texi (Debug Methods In Python): New node. (Debug Method API): Likewise. (Writing a Debug Method): Likewise. --001a11c34908d4a07e04f6030617 Content-Type: text/plain; charset=US-ASCII; name="dm_docs_v12.txt" Content-Disposition: attachment; filename="dm_docs_v12.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hthpz1l90 Content-length: 16243 ZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKaW5kZXggZGYyMzNm Yy4uMTMzZDAyYSAxMDA2NDQKLS0tIGEvZ2RiL05FV1MKKysrIGIvZ2RiL05F V1MKQEAgLTk0LDYgKzk0LDExIEBAIHFYZmVyOmJ0cmFjZTpyZWFkJ3MgYW5u ZXgKICAgKiogVmFsaWQgUHl0aG9uIG9wZXJhdGlvbnMgb24gZ2RiLlZhbHVl IG9iamVjdHMgcmVwcmVzZW50aW5nCiAgICAgIHN0cnVjdHMvY2xhc3NlcyBp bnZva2UgdGhlIGNvcnJlc3BvbmRpbmcgb3ZlcmxvYWRlZCBvcGVyYXRvcnMg aWYKICAgICAgYXZhaWxhYmxlLgorICAqKiBOZXcgYERlYnVnIE1ldGhvZHMn IGZlYXR1cmUgaW4gdGhlIFB5dGhvbiBBUEkuICBEZWJ1ZyBtZXRob2RzIGFy ZQorICAgICBhZGRpdGlvbmFsIG1ldGhvZHMgb3IgcmVwbGFjZW1lbnRzIGZv ciBleGlzdGluZyBtZXRob2RzIG9mIGEgQysrCisgICAgIGNsYXNzLiAgVGhp cyBmZWF0dXJlIGlzIHVzZWZ1bCBmb3IgdGhvc2UgY2FzZXMgd2hlcmUgYSBt ZXRob2QKKyAgICAgZGVmaW5lZCBpbiBDKysgc291cmNlIGNvZGUgY291bGQg YmUgaW5saW5lZCBvciBvcHRpbWl6ZWQgb3V0IGJ5CisgICAgIHRoZSBjb21w aWxlciwgbWFraW5nIGl0IHVuYXZhaWxhYmxlIHRvIEdEQi4KIAogKiBOZXcg dGFyZ2V0cwogUG93ZXJQQzY0IEdOVS9MaW51eCBsaXR0bGUtZW5kaWFuCXBv d2VycGM2NGxlLSotbGludXgqCmRpZmYgLS1naXQgYS9nZGIvZG9jL3B5dGhv bi50ZXhpIGIvZ2RiL2RvYy9weXRob24udGV4aQppbmRleCA5MGI3MDc0Li5m MTQ5ZWEwIDEwMDY0NAotLS0gYS9nZGIvZG9jL3B5dGhvbi50ZXhpCisrKyBi L2dkYi9kb2MvcHl0aG9uLnRleGkKQEAgLTE0NCw2ICsxNDQsOSBAQCBvcHRp b25hbCBhcmd1bWVudHMgd2hpbGUgc2tpcHBpbmcgb3RoZXJzLiAgRXhhbXBs ZToKICogRnJhbWUgRmlsdGVyIEFQSTo6ICAgICAgICAgICAgRmlsdGVyaW5n IEZyYW1lcy4KICogRnJhbWUgRGVjb3JhdG9yIEFQSTo6ICAgICAgICAgRGVj b3JhdGluZyBGcmFtZXMuCiAqIFdyaXRpbmcgYSBGcmFtZSBGaWx0ZXI6OiAg ICAgIFdyaXRpbmcgYSBGcmFtZSBGaWx0ZXIuCisqIERlYnVnIE1ldGhvZHMg SW4gUHl0aG9uOjogICAgIEFkZGluZyBhbmQgcmVwbGFjaW5nIG1ldGhvZHMg b2YgQysrIGNsYXNzZXMuCisqIERlYnVnIE1ldGhvZCBBUEk6OiAgICAgICAg ICAgIERlYnVnIG1ldGhvZCB0eXBlcy4KKyogV3JpdGluZyBhIERlYnVnIE1l dGhvZDo6ICAgICAgV3JpdGluZyBhIGRlYnVnIG1ldGhvZC4KICogSW5mZXJp b3JzIEluIFB5dGhvbjo6ICAgICAgICAgUHl0aG9uIHJlcHJlc2VudGF0aW9u IG9mIGluZmVyaW9ycyAocHJvY2Vzc2VzKQogKiBFdmVudHMgSW4gUHl0aG9u OjogICAgICAgICAgICBMaXN0ZW5pbmcgZm9yIGV2ZW50cyBmcm9tIEB2YWx1 ZXtHREJOfS4KICogVGhyZWFkcyBJbiBQeXRob246OiAgICAgICAgICAgQWNj ZXNzaW5nIGluZmVyaW9yIHRocmVhZHMgZnJvbSBQeXRob24uCkBAIC0yMTk1 LDYgKzIxOTgsMjY3IEBAIHByaW50ZWQgaGllcmFyY2hpY2FsbHkuICBBbm90 aGVyIGFwcHJvYWNoIHdvdWxkIGJlIHRvIGNvbWJpbmUgdGhlCiBtYXJrZXIg aW4gdGhlIGlubGluZWQgZnJhbWUsIGFuZCBhbHNvIHNob3cgdGhlIGhpZXJh cmNoaWNhbAogcmVsYXRpb25zaGlwLgogCitAbm9kZSBEZWJ1ZyBNZXRob2Rz IEluIFB5dGhvbgorQHN1YnN1YnNlY3Rpb24gRGVidWcgTWV0aG9kcyBJbiBQ eXRob24KK0BjaW5kZXggZGVidWcgbWV0aG9kcyBpbiBQeXRob24KKworQGRm bntEZWJ1ZyBtZXRob2RzfSBhcmUgYWRkaXRpb25hbCBtZXRob2RzIG9yIHJl cGxhY2VtZW50cyBmb3IgZXhpc3RpbmcKK21ldGhvZHMgb2YgYSBDQHR7Kyt9 IGNsYXNzLiAgVGhpcyBmZWF0dXJlIGlzIHVzZWZ1bCBmb3IgdGhvc2UgY2Fz ZXMKK3doZXJlIGEgbWV0aG9kIGRlZmluZWQgaW4gQ0B0eysrfSBzb3VyY2Ug Y29kZSBjb3VsZCBiZSBpbmxpbmVkIG9yCitvcHRpbWl6ZWQgb3V0IGJ5IHRo ZSBjb21waWxlciwgbWFraW5nIGl0IHVuYXZhaWxhYmxlIHRvIEB2YWx1ZXtH REJOfS4KK0ZvciBzdWNoIGNhc2VzLCBvbmUgY2FuIGRlZmluZSBhIGRlYnVn IG1ldGhvZCB0byBzZXJ2ZSBhcyBhIHJlcGxhY2VtZW50Citmb3IgdGhlIG1l dGhvZCBkZWZpbmVkIGluIHRoZSBDQHR7Kyt9IHNvdXJjZSBjb2RlLiAgQHZh bHVle0dEQk59IHdpbGwKK3RoZW4gaW52b2tlIHRoZSBkZWJ1ZyBtZXRob2Qs IGluc3RlYWQgb2YgdGhlIENAdHsrK30gbWV0aG9kLCB0bworZXZhbHVhdGUg ZXhwcmVzc2lvbnMuICBPbmUgY2FuIGFsc28gdXNlIGRlYnVnIG1ldGhvZHMg d2hlbiBkZWJ1Z2dpbmcKK3dpdGggY29yZSBmaWxlcy4gIE1vcmVvdmVyLCB3 aGVuIGRlYnVnZ2luZyBsaXZlIHByb2dyYW1zLCBpbnZva2luZyBhCitkZWJ1 ZyBtZXRob2QgbmVlZCBub3QgaW52b2x2ZSBydW5uaW5nIHRoZSBpbmZlcmlv ciAod2hpY2ggY2FuIHBvdGVudGlhbGx5CitwZXJ0dXJiIGl0cyBzdGF0ZSku ICBIZW5jZSwgZXZlbiBpZiB0aGUgQ0B0eysrfSBtZXRob2QgaXMgYXZhaWxh YmxlLCBpdAoraXMgYmV0dGVyIHRvIHVzZSBpdHMgcmVwbGFjZW1lbnQgZGVi dWcgbWV0aG9kIGlmIG9uZSBpcyBkZWZpbmVkLgorCitUaGUgZGVidWcgbWV0 aG9kcyBmZWF0dXJlIGluIFB5dGhvbiBpcyBhdmFpbGFibGUgdmlhIHRoZSBj b25jZXB0cyBvZiBhCitAZGZue2RlYnVnIG1ldGhvZCBtYXRjaGVyfSBhbmQg YSBAZGZue2RlYnVnIG1ldGhvZCB3b3JrZXJ9LiAgVG8KK2ltcGxlbWVudCBh IGRlYnVnIG1ldGhvZCwgb25lIGhhcyB0byBpbXBsZW1lbnQgYSBtYXRjaGVy IGFuZCBhCitjb3JyZXNwb25kaW5nIHdvcmtlciBmb3IgaXQgKG1vcmUgdGhh biBvbmUgd29ya2VyIGNhbiBiZQoraW1wbGVtZW50ZWQsIGVhY2ggY2F0ZXJp bmcgdG8gYSBkaWZmZXJlbnQgb3ZlcmxvYWRlZCBpbnN0YW5jZSBvZiB0aGUK K21ldGhvZCkuICBJbnRlcm5hbGx5LCBAdmFsdWV7R0RCTn0gaW52b2tlcyB0 aGUgQGNvZGV7bWF0Y2h9IG1ldGhvZCBvZiBhCittYXRjaGVyIHRvIG1hdGNo IHRoZSBjbGFzcyB0eXBlIGFuZCBtZXRob2QgbmFtZS4gIE9uIGEgbWF0Y2gs IHRoZQorQGNvZGV7bWF0Y2h9IG1ldGhvZCByZXR1cm5zIGEgbGlzdCBvZiBt YXRjaGluZyBAZW1waHt3b3JrZXJ9IG9iamVjdHMuCitFYWNoIHdvcmtlciBv YmplY3QgdHlwaWNhbGx5IGNvcnJlc3BvbmRzIHRvIGFuIG92ZXJsb2FkZWQg aW5zdGFuY2Ugb2YKK3RoZSBkZWJ1ZyBtZXRob2QuICBUaGV5IGltcGxlbWVu dCBhIEBjb2Rle2dldF9hcmdfdHlwZXN9IG1ldGhvZCB3aGljaAorcmV0dXJu cyBhIHNlcXVlbmNlIG9mIHR5cGVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGFy Z3VtZW50cyB0aGUgZGVidWcKK21ldGhvZCByZXF1aXJlcy4gIEB2YWx1ZXtH REJOfSB1c2VzIHRoaXMgc2VxdWVuY2Ugb2YgdHlwZXMgdG8gcGVyZm9ybQor b3ZlcmxvYWQgcmVzb2x1dGlvbiBhbmQgcGlja3MgYSB3aW5uaW5nIGRlYnVn IG1ldGhvZCB3b3JrZXIuICBBIHdpbm5lcgoraXMgYWxzbyBzZWxlY3RlZCBm cm9tIGFtb25nIHRoZSBtZXRob2RzIEB2YWx1ZXtHREJOfSBmaW5kcyBpbiB0 aGUKK0NAdHsrK30gc291cmNlIGNvZGUuICBOZXh0LCB0aGUgd2lubmluZyBk ZWJ1ZyBtZXRob2Qgd29ya2VyIGFuZCB0aGUKK3dpbm5pbmcgQ0B0eysrfSBt ZXRob2QgYXJlIGNvbXBhcmVkIHRvIHNlbGVjdCBhbiBvdmVyYWxsIHdpbm5l ci4gIEluCitjYXNlIG9mIGEgdGllIGJldHdlZW4gYSBkZWJ1ZyBtZXRob2Qg d29ya2VyIGFuZCBhIENAdHsrK30gbWV0aG9kLCB0aGUKK2RlYnVnIG1ldGhv ZCB3b3JrZXIgaXMgc2VsZWN0ZWQgYXMgdGhlIHdpbm5lci4gIFRoYXQgaXMs IGlmIGEgd2lubmluZworZGVidWcgbWV0aG9kIHdvcmtlciBpcyBmb3VuZCB0 byBiZSBlcXVpdmFsZW50IHRvIHRoZSB3aW5uaW5nIENAdHsrK30KK21ldGhv ZCwgdGhlbiB0aGUgZGVidWcgbWV0aG9kIHdvcmtlciBpcyB0cmVhdGVkIGFz IGEgcmVwbGFjZW1lbnQgZm9yCit0aGUgQ0B0eysrfSBtZXRob2QuICBAdmFs dWV7R0RCTn0gdXNlcyB0aGUgb3ZlcmFsbCB3aW5uZXIgdG8gaW52b2tlIHRo ZQorbWV0aG9kLiAgSWYgdGhlIHdpbm5pbmcgZGVidWcgbWV0aG9kIHdvcmtl ciBpcyB0aGUgb3ZlcmFsbCB3aW5uZXIsIHRoZW4KK3RoZSBjb3JyZXNwb25k aW5nIGRlYnVnIG1ldGhvZCBpcyBpbnZva2VkIHZpYSB0aGUgQGNvZGV7aW52 b2tlfSBtZXRob2QKK29mIHRoZSB3b3JrZXIgb2JqZWN0LgorCitJZiBvbmUg d2FudHMgdG8gaW1wbGVtZW50IGEgZGVidWcgbWV0aG9kIGFzIGEgcmVwbGFj ZW1lbnQgZm9yIGFuCitleGlzdGluZyBDQHR7Kyt9IG1ldGhvZCwgdGhlbiB0 aGV5IGhhdmUgdG8gaW1wbGVtZW50IGFuIGVxdWl2YWxlbnQKK2RlYnVnIG1l dGhvZCB3aGljaCBoYXMgZXhhY3RseSB0aGUgc2FtZSBuYW1lIGFuZCB0YWtl cyBhcmd1bWVudHMgb2YKK2V4YWN0bHkgdGhlIHNhbWUgdHlwZSBhcyB0aGUg Q0B0eysrfSBtZXRob2QuICBJZiB0aGUgdXNlciB3YW50cyB0bworaW52b2tl IHRoZSBDQHR7Kyt9IG1ldGhvZCBldmVuIHRob3VnaCBhIHJlcGxhY2VtZW50 IGRlYnVnIG1ldGhvZCBpcworYXZhaWxhYmxlIGZvciB0aGF0IG1ldGhvZCwg dGhlbiB0aGV5IGNhbiBkaXNhYmxlIHRoZSBkZWJ1ZyBtZXRob2QuCisKK0B4 cmVme0RlYnVnIE1ldGhvZCBBUEl9LCBmb3IgQVBJIHRvIGltcGxlbWVudCBk ZWJ1ZyBtZXRob2RzIGluIFB5dGhvbi4KK0B4cmVme1dyaXRpbmcgYSBEZWJ1 ZyBNZXRob2R9LCBmb3IgaW1wbGVtZW50aW5nIGRlYnVnIG1ldGhvZHMgaW4g UHl0aG9uLgorCitAbm9kZSBEZWJ1ZyBNZXRob2QgQVBJCitAc3Vic3Vic2Vj dGlvbiBEZWJ1ZyBNZXRob2QgQVBJCitAY2luZGV4IGRlYnVnIG1ldGhvZCBB UEkKKworVGhlIEB2YWx1ZXtHREJOfSBQeXRob24gQVBJIHByb3ZpZGVzIGNs YXNzZXMsIGludGVyZmFjZXMgYW5kIGZ1bmN0aW9ucwordG8gaW1wbGVtZW50 LCByZWdpc3RlciBhbmQgbWFuaXB1bGF0ZSBkZWJ1ZyBtZXRob2RzLiAgVGhl IGNvcmUgY29uY2VwdHMKK2ludm9sdmVkIGluIGltcGxlbWVudGluZyBkZWJ1 ZyBtZXRob2RzIGFyZSBAZW1waHtkZWJ1ZyBtZXRob2QgbWF0Y2hlcnN9Cith bmQgQGVtcGh7ZGVidWcgbWV0aG9kIHdvcmtlcnN9LiAgQHhyZWZ7RGVidWcg TWV0aG9kcyBJbiBQeXRob259LgorCitBIGRlYnVnIG1ldGhvZCBtYXRjaGVy IHNob3VsZCBiZSBhbiBpbnN0YW5jZSBvZiBhIGNsYXNzIGRlcml2ZWQgZnJv bQorQGNvZGV7RGVidWdNZXRob2RNYXRjaGVyfSBkZWZpbmVkIGluIHRoZSBt b2R1bGUKK0Bjb2Rle2dkYi5kZWJ1Z19tZXRob2R9LiAgQW4gaW5zdGFuY2Ug b2YgQGNvZGV7RGVidWdNZXRob2RNYXRjaGVyfSBoYXMKK3RoZSBmb2xsb3dp bmcgYXR0cmlidXRlczoKKworQGRlZnZhciBEZWJ1Z01ldGhvZE1hdGNoZXIu bmFtZQorVGhlIG5hbWUgb2YgdGhlIG1hdGNoZXIuCitAZW5kIGRlZnZhcgor CitAZGVmdmFyIERlYnVnTWV0aG9kTWF0Y2hlci5lbmFibGVkCitBIGJvb2xl YW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBtYXRjaGVyIGlzIGVu YWJsZWQgb3IgZGlzYWJsZWQuCitAZW5kIGRlZnZhcgorCitAZGVmdmFyIERl YnVnTWV0aG9kTWF0Y2hlci5tZXRob2RzCitBIGxpc3Qgb2YgbmFtZWQgbWV0 aG9kcyBtYW5hZ2VkIGJ5IHRoZSBtYXRjaGVyLiAgRWFjaCBvYmplY3QgaW4g dGhlIGxpc3QKK2lzIGFuIGluc3RhbmNlIG9mIHRoZSBjbGFzcyBAY29kZXtE ZWJ1Z01ldGhvZH0gZGVmaW5lZCBpbiB0aGUgbW9kdWxlCitAY29kZXtnZGIu ZGVidWdfbWV0aG9kfSwgb3IgYW55IG9iamVjdCB3aXRoIHRoZSBmb2xsb3dp bmcgYXR0cmlidXRlczoKKworQHRhYmxlIEBjb2RlCisKK0BpdGVtIG5hbWUK K05hbWUgb2YgdGhlIGRlYnVnIG1ldGhvZCB3aGljaCBzaG91bGQgYmUgdW5p cXVlIGZvciBlYWNoIGRlYnVnIG1ldGhvZAorbWFuYWdlZCBieSB0aGUgbWF0 Y2hlci4KKworQGl0ZW0gZW5hYmxlZAorQSBib29sZWFuIHZhbHVlIGluZGlj YXRpbmcgd2hldGhlciB0aGUgZGVidWcgbWV0aG9kIGlzIGVuYWJsZWQgb3IK K2Rpc2FibGVkLgorCitAZW5kIHRhYmxlCisKK1RoZSBjbGFzcyBAY29kZXtE ZWJ1Z01ldGhvZH0gaXMgYSBjb252ZW5pZW5jZSBjbGFzcyB3aXRoIHNhbWUK K2F0dHJpYnV0ZXMgYXMgYWJvdmUgYWxvbmcgd2l0aCB0aGUgZm9sbG93aW5n IGNvbnN0cnVjdG9yOgorCitAZGVmdW4gRGVidWdNZXRob2QuX19pbml0X18o c2VsZiwgbmFtZSkKK0NvbnN0cnVjdHMgYW4gZW5hYmxlZCBkZWJ1ZyBtZXRo b2Qgd2l0aCBuYW1lIEB2YXJ7bmFtZX0uCitAZW5kIGRlZnVuCitAZW5kIGRl ZnZhcgorCitAbm9pbmRlbnQKK1RoZSBAY29kZXtEZWJ1Z01ldGhvZE1hdGNo ZXJ9IGNsYXNzIGhhcyB0aGUgZm9sbG93aW5nIG1ldGhvZHM6CisKK0BkZWZ1 biBEZWJ1Z01ldGhvZE1hdGNoZXIuX19pbml0X18oc2VsZiwgbmFtZSkKK0Nv bnN0cnVjdHMgYW4gZW5hYmxlZCBkZWJ1ZyBtZXRob2QgbWF0Y2hlciB3aXRo IG5hbWUgQHZhcntuYW1lfS4gIFRoZQorQGNvZGV7bWV0aG9kc30gYXR0cmli dXRlIGlzIGluaXRpYWxpemVkIHRvIEBjb2Rle05vbmV9LgorQGVuZCBkZWZ1 bgorCitAZGVmdW4gRGVidWdNZXRob2RNYXRjaGVyLm1hdGNoKHNlbGYsIGNs YXNzX3R5cGUsIG1ldGhvZF9uYW1lKQorRGVyaXZlZCBjbGFzc2VzIHNob3Vs ZCBvdmVycmlkZSB0aGlzIG1ldGhvZC4gIEl0IHNob3VsZCByZXR1cm4gYQor ZGVidWcgbWV0aG9kIHdvcmtlciBvYmplY3QgKG9yIGEgc2VxdWVuY2Ugb2Yg ZGVidWcgbWV0aG9kIHdvcmtlcgorb2JqZWN0cykgbWF0Y2hpbmcgdGhlIEB2 YXJ7Y2xhc3NfdHlwZX0gYW5kIEB2YXJ7bWV0aG9kX25hbWV9LgorQHZhcntj bGFzc190eXBlfSBpcyBhIEBjb2Rle2dkYi5UeXBlfSBvYmplY3QsIGFuZCBA dmFye21ldGhvZF9uYW1lfQoraXMgYSBzdHJpbmcgdmFsdWUuICBJZiB0aGUg bWF0Y2hlciBtYW5hZ2VzIG5hbWVkIG1ldGhvZHMgYXMgbGlzdGVkIGluCitp dHMgQGNvZGV7bWV0aG9kc30gYXR0cmlidXRlLCB0aGVuIG9ubHkgdGhvc2Ug d29ya2VyIG9iamVjdHMgd2hvc2UKK2NvcnJlc3BvbmRpbmcgZW50cmllcyBp biB0aGUgQGNvZGV7bWV0aG9kc30gbGlzdCBhcmUgZW5hYmxlZCBzaG91bGQg YmUKK3JldHVybmVkLgorQGVuZCBkZWZ1bgorCitBIGRlYnVnIG1ldGhvZCB3 b3JrZXIgc2hvdWxkIGJlIGFuIGluc3RhbmNlIG9mIGEgY2xhc3MgZGVyaXZl ZCBmcm9tCitAY29kZXtEZWJ1Z01ldGhvZFdvcmtlcn0gZGVmaW5lZCBpbiB0 aGUgbW9kdWxlIEBjb2Rle2dkYi5kZWJ1Z19tZXRob2R9LAorb3Igc3VwcG9y dCB0aGUgZm9sbG93aW5nIGludGVyZmFjZToKKworQGRlZnVuIERlYnVnTWV0 aG9kV29ya2VyLmdldF9hcmdfdHlwZXMoc2VsZikKK1RoaXMgbWV0aG9kIHJl dHVybnMgYSBzZXF1ZW5jZSBvZiBAY29kZXtnZGIuVHlwZX0gb2JqZWN0cyBj b3JyZXNwb25kaW5nCit0byB0aGUgYXJndW1lbnRzIHRoYXQgdGhlIGRlYnVn IG1ldGhvZCB0YWtlcy4gIEl0IGNhbiByZXR1cm4gYW4gZW1wdHkKK3NlcXVl bmNlIG9yIEBjb2Rle05vbmV9IGlmIHRoZSBkZWJ1ZyBtZXRob2QgZG9lcyBu b3QgdGFrZSBhbnkgYXJndW1lbnRzLgorSWYgdGhlIGRlYnVnIG1ldGhvZCB0 YWtlcyBhIHNpbmdsZSBhcmd1bWVudCwgdGhlbiBhIHNpbmdsZQorQGNvZGV7 Z2RiLlR5cGV9IG9iamVjdCBjb3JyZXNwb25kaW5nIHRvIGl0IGNhbiBiZSBy ZXR1cm5lZC4KK0BlbmQgZGVmdW4KKworQGRlZnVuIERlYnVnTWV0aG9kV29y a2VyLmludm9rZShzZWxmLCBvYmosIGFyZ3MpCitUaGlzIGlzIHRoZSBtZXRo b2Qgd2hpY2ggZG9lcyB0aGUgQGVtcGh7d29ya30gb2YgdGhlIGRlYnVnIG1l dGhvZC4KK0B2YXJ7b2JqfSBpcyB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBt ZXRob2QgaXMgYmVpbmcgaW52b2tlZCwgYW5kCitAdmFye2FyZ3N9IGlzIHRo ZSB0dXBsZSBvZiBhcmd1bWVudHMgdG8gdGhlIG1ldGhvZC4gIEB2YXJ7b2Jq fSBhbmQgdGhlCitlbGVtZW50cyBvZiBAdmFye2FyZ3N9IGFyZSBAY29kZXtn ZGIuVmFsdWV9IG9iamVjdHMuCitAZW5kIGRlZnVuCisKK0ZvciBAdmFsdWV7 R0RCTn0gdG8gbG9va3VwIGRlYnVnIG1ldGhvZHMsIHRoZSBkZWJ1ZyBtZXRo b2QgbWF0Y2hlcnMKK3Nob3VsZCBiZSByZWdpc3RlcmVkIHVzaW5nIHRoZSBm b2xsb3dpbmcgZnVuY3Rpb24gZGVmaW5lZCBpbiB0aGUgbW9kdWxlCitAY29k ZXtnZGIuZGVidWdfbWV0aG9kfToKKworQGRlZnVuIHJlZ2lzdGVyX2RlYnVn X21ldGhvZF9tYXRjaGVyKGxvY3VzLCBtYXRjaGVyLCByZXBsYWNlPUZhbHNl KQorVGhlIEBjb2Rle21hdGNoZXJ9IGlzIHJlZ2lzdGVyZWQgd2l0aCBAY29k ZXtsb2N1c30sIHJlcGxhY2luZyBhbgorZXhpc3RpbmcgbWF0Y2hlciB3aXRo IHRoZSBzYW1lIG5hbWUgYXMgQGNvZGV7bWF0Y2hlcn0gaWYKK0Bjb2Rle3Jl cGxhY2V9IGlzIEBjb2Rle1RydWV9LiAgQGNvZGV7bG9jdXN9IGNhbiBiZSBh CitAY29kZXtnZGIuT2JqZmlsZX0gb2JqZWN0IChAcHhyZWZ7T2JqZmlsZXMg SW4gUHl0aG9ufSksIG9yIGEKK0Bjb2Rle2dkYi5Qcm9nc3BhY2V9IG9iamVj dCAoQHB4cmVme1Byb2dyYW0gU3BhY2VzIEluIFB5dGhvbn0pLCBvcgorQGNv ZGV7Tm9uZX0uICBJZiBpdCBpcyBAY29kZXtOb25lfSwgdGhlbiBAY29kZXtt YXRjaGVyfSBpcyByZWdpc3RlcmVkCitnbG9iYWxseS4KK0BlbmQgZGVmdW4K KworQG5vZGUgV3JpdGluZyBhIERlYnVnIE1ldGhvZAorQHN1YnN1YnNlY3Rp b24gV3JpdGluZyBhIERlYnVnIE1ldGhvZAorQGNpbmRleCB3cml0aW5nIGRl YnVnIG1ldGhvZHMgaW4gUHl0aG9uCisKK0ltcGxlbWVudGluZyBkZWJ1ZyBt ZXRob2RzIGluIFB5dGhvbiB3aWxsIHJlcXVpcmUgaW1wbGVtZW50aW5nIGRl YnVnCittZXRob2QgbWF0Y2hlcnMgYW5kIGRlYnVnIG1ldGhvZCB3b3JrZXJz CisoQHB4cmVme0RlYnVnIE1ldGhvZHMgSW4gUHl0aG9ufSkuICBDb25zaWRl ciB0aGUgZm9sbG93aW5nIENAdHsrK30KK2NsYXNzOgorCitAc21hbGxleGFt cGxlCitjbGFzcyBNeUNsYXNzCitAeworIHB1YmxpYzoKKyAgTXlDbGFzcyAo aW50IGEpIDogYV8oYSkge30KKworICBpbnQgZ2V0YSAodm9pZCkgeyByZXR1 cm4gYV87IH0KKyAgaW50IG9wZXJhdG9yKyAoaW50IGIpOworCisgcHJpdmF0 ZToKKyAgaW50IGFfOworQH07CisKK2ludAorTXlDbGFzczo6b3BlcmF0b3Ir IChpbnQgYikKK0B7CisgIHJldHVybiBhXyArIGI7CitAfQorQGVuZCBzbWFs bGV4YW1wbGUKKworQG5vaW5kZW50CitMZXQgdXMgZGVmaW5lIHR3byBkZWJ1 ZyBtZXRob2RzIGZvciB0aGUgY2xhc3MgQGNvZGV7TXlDbGFzc30sIG9uZQor cmVwbGFjaW5nIHRoZSBtZXRob2QgQGNvZGV7Z2V0YX0sIGFuZCBhbm90aGVy IGFkZGluZyBhbiBvdmVybG9hZGVkCitmbGF2b3Igb2YgQGNvZGV7b3BlcmF0 b3IrfSB3aGljaCB0YWtlcyBhIEBjb2Rle015Q2xhc3N9IGFyZ3VtZW50LiBU aGUKK2RlYnVnIG1ldGhvZCBtYXRjaGVyIGNhbiBiZSBkZWZpbmVkIGFzIGZv bGxvd3M6CisKK0BzbWFsbGV4YW1wbGUKK2NsYXNzIE15Q2xhc3NNYXRjaGVy KGdkYi5kZWJ1Z19tZXRob2QuRGVidWdNZXRob2RNYXRjaGVyKToKKyAgICBk ZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIGdkYi5kZWJ1Z19tZXRob2Qu RGVidWdNZXRob2RNYXRjaGVyLl9faW5pdF9fKHNlbGYsICdNeU1hdGNoZXIn KQorICAgICAgICAjIExpc3Qgb2YgbWV0aG9kcyAnbWFuYWdlZCcgYnkgdGhp cyBtYXRjaGVyCisgICAgICAgIHNlbGYubWV0aG9kcyA9IFtnZGIuZGVidWdf bWV0aG9kLkRlYnVnTWV0aG9kKCdnZXRhJyksCisgICAgICAgICAgICAgICAg ICAgICAgICBnZGIuZGVidWdfbWV0aG9kLkRlYnVnTWV0aG9kKCdzdW0nKV0K KworICAgIGRlZiBtYXRjaChzZWxmLCBjbGFzc190eXBlLCBtZXRob2RfbmFt ZSk6CisgICAgICAgIGlmIGNsYXNzX3R5cGUudGFnICE9ICdNeUNsYXNzJzoK KyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGlmIG1ldGhvZF9u YW1lID09ICdnZXRhJyBhbmQgc2VsZi5tZXRob2RzWzBdLmVuYWJsZWQ6Cisg ICAgICAgICAgICByZXR1cm4gTXlDbGFzc1dvcmtlcl9nZXRhKCkKKyAgICAg ICAgZWxpZiBtZXRob2RfbmFtZSA9PSAnb3BlcmF0b3IrJyBhbmQgc2VsZi5t ZXRob2RzWzFdLmVuYWJsZWQ6CisgICAgICAgICAgICByZXR1cm4gTXlDbGFz c1dvcmtlcl9wbHVzKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJl dHVybiBOb25lCitAZW5kIHNtYWxsZXhhbXBsZQorCitAbm9pbmRlbnQKK05v dGljZSB0aGF0IHRoZSBAY29kZXttYXRjaH0gbWV0aG9kIG9mIEBjb2Rle015 Q2xhc3NNYXRjaGVyfSByZXR1cm5zCithIHdvcmtlciBvYmplY3Qgb2YgdHlw ZSBAY29kZXtNeUNsYXNzV29ya2VyX2dldGF9IGZvciB0aGUgQGNvZGV7Z2V0 YX0KK21ldGhvZCwgYW5kIGEgd29ya2VyIG9iamVjdCBvZiB0eXBlIEBjb2Rl e015Q2xhc3NXb3JrZXJfcGx1c30gZm9yIHRoZQorQGNvZGV7b3BlcmF0b3Ir fSBtZXRob2QuICBBbHNvLCBhIHdvcmtlciBvYmplY3QgaXMgcmV0dXJuZWQg b25seSBpZiB0aGUKK2NvcnJlc3BvbmRpbmcgZW50cnkgaW4gdGhlIEBjb2Rl e21ldGhvZHN9IGF0dHJpYnV0ZSBpcyBlbmFibGVkLgorCitUaGUgaW1wbGVt ZW50YXRpb24gb2YgdGhlIHdvcmtlciBjbGFzc2VzIHJldHVybmVkIGJ5IHRo ZSBtYXRjaGVyIGFib3ZlCitpcyBhcyBmb2xsb3dzOgorCitAc21hbGxleGFt cGxlCitjbGFzcyBNeUNsYXNzV29ya2VyX2dldGEoZ2RiLmRlYnVnX21ldGhv ZC5EZWJ1Z01ldGhvZFdvcmtlcik6CisgICAgZGVmIGdldF9hcmdfdHlwZXMo c2VsZik6CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgaW52b2tl KHNlbGYsIG9iaiwgYXJncyk6CisgICAgICAgIHJldHVybiBvYmpbJ2FfJ10K KworCitjbGFzcyBNeUNsYXNzV29ya2VyX3BsdXMoZ2RiLmRlYnVnX21ldGhv ZC5EZWJ1Z01ldGhvZFdvcmtlcik6CisgICAgZGVmIGdldF9hcmdfdHlwZXMo c2VsZik6CisgICAgICAgIHJldHVybiBnZGIubG9va3VwX3R5cGUoJ015Q2xh c3MnKQorCisgICAgZGVmIGludm9rZShzZWxmLCBvYmosIGFyZ3MpOgorICAg ICAgICByZXR1cm4gb2JqWydhXyddICsgYXJnc1swXVsnYV8nXQorQGVuZCBz bWFsbGV4YW1wbGUKKworRm9yIEB2YWx1ZXtHREJOfSB0byBhY3R1YWxseSBs b29rdXAgYSBkZWJ1ZyBtZXRob2QsIGl0IGhhcyB0byBiZQorcmVnaXN0ZXJl ZCB3aXRoIGl0LiAgVGhlIG1hdGNoZXIgZGVmaW5lZCBhYm92ZSBpcyByZWdp c3RlcmVkIHdpdGgKK0B2YWx1ZXtHREJOfSBnbG9iYWxseSBhcyBmb2xsb3dz OgorCitAc21hbGxleGFtcGxlCitnZGIuZGVidWdfbWV0aG9kLnJlZ2lzdGVy X2RlYnVnX21ldGhvZF9tYXRjaGVyKE5vbmUsIE15Q2xhc3NNYXRjaGVyKCkp CitAZW5kIHNtYWxsZXhhbXBsZQorCitJZiBhbiBvYmplY3QgQGNvZGV7b2Jq fSBvZiB0eXBlIEBjb2Rle015Q2xhc3N9IGlzIGluaXRpYWxpemVkIGluIENA dHsrK30KK2NvZGUgYXMgZm9sbG93czoKKworQHNtYWxsZXhhbXBsZQorTXlD bGFzcyBvYmooNSk7CitAZW5kIHNtYWxsZXhhbXBsZQorCitAbm9pbmRlbnQK K3RoZW4sIGFmdGVyIGxvYWRpbmcgdGhlIFB5dGhvbiBzY3JpcHQgZGVmaW5p bmcgdGhlIGRlYnVnIG1ldGhvZCBtYXRjaGVycworYW5kIHdvcmtlcnMgaW50 byBAY29kZXtHREJOfSwgaW52b2tpbmcgdGhlIG1ldGhvZCBAY29kZXtnZXRh fSBvciB1c2luZwordGhlIG9wZXJhdG9yIEBjb2Rleyt9IG9uIEBjb2Rle29i an0gd2lsbCBpbnZva2UgdGhlIGRlYnVnIG1ldGhvZHMKK2RlZmluZWQgYWJv dmU6CisKK0BzbWFsbGV4YW1wbGUKKyhnZGIpIHAgb2JqLmdldGEoKQorJDEg PSA1CisKKyhnZGIpIHAgb2JqICsgb2JqCiskMiA9IDEwCitAZW5kIHNtYWxs ZXhhbXBsZQorCiBAbm9kZSBJbmZlcmlvcnMgSW4gUHl0aG9uCiBAc3Vic3Vi c2VjdGlvbiBJbmZlcmlvcnMgSW4gUHl0aG9uCiBAY2luZGV4IGluZmVyaW9y cyBpbiBQeXRob24K --001a11c34908d4a07e04f6030617--