From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: kobarity Newsgroups: gmane.emacs.bugs Subject: bug#56635: 29.0.50; [PATCH] hide-show in python-mode supports ONLY function and class blocks Date: Wed, 24 Aug 2022 23:15:31 +0900 Message-ID: References: <87v8ruysep.fsf@secretsauce.net> <87zgh01cqm.fsf@gnus.org> <87sfmr5zi9.fsf@secretsauce.net> <87wnbt3vnq.fsf@secretsauce.net> <878rnyg40d.fsf@gmail.com> <87tu6bjghr.fsf@gnus.org> <871qtfjfa9.fsf@gnus.org> <87bksa8o0o.fsf@secretsauce.net> <877d2yos1z.fsf@gnus.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000275b4805e6fd51a5" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12118"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Augusto Stoffel , Dima Kogan , 56635@debbugs.gnu.org To: Lars Ingebrigtsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Aug 24 16:16:30 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oQrBF-0002vQ-Pt for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 24 Aug 2022 16:16:29 +0200 Original-Received: from localhost ([::1]:43988 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oQrBE-0004LX-Ko for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 24 Aug 2022 10:16:28 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:49330) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oQrAo-0004KC-SK for bug-gnu-emacs@gnu.org; Wed, 24 Aug 2022 10:16:06 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:57840) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oQrAo-0002ip-Je for bug-gnu-emacs@gnu.org; Wed, 24 Aug 2022 10:16:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oQrAo-0006qr-2u for bug-gnu-emacs@gnu.org; Wed, 24 Aug 2022 10:16:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: kobarity Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 24 Aug 2022 14:16:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56635 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 56635-submit@debbugs.gnu.org id=B56635.166135055626317 (code B ref 56635); Wed, 24 Aug 2022 14:16:02 +0000 Original-Received: (at 56635) by debbugs.gnu.org; 24 Aug 2022 14:15:56 +0000 Original-Received: from localhost ([127.0.0.1]:47587 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQrAi-0006qO-Hf for submit@debbugs.gnu.org; Wed, 24 Aug 2022 10:15:56 -0400 Original-Received: from mail-ej1-f53.google.com ([209.85.218.53]:37691) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQrAd-0006q3-Od for 56635@debbugs.gnu.org; Wed, 24 Aug 2022 10:15:55 -0400 Original-Received: by mail-ej1-f53.google.com with SMTP id h22so23545850ejk.4 for <56635@debbugs.gnu.org>; Wed, 24 Aug 2022 07:15:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=PorepsTsM38jW8HnbCYEKGp8gsBdr+azoSR3mj4Y8lQ=; b=CsiRpSZTsTCPYHKadud+CYRKxLIgO8zXOoAzjCUO5z3793/TnE3ExRHoLD4cyM4fF0 GafzoamsVPfNgVKc/zUbUtgzMxq2ewxoNMTZsq4TSVcSKyn4nBaxpGfyPU4HuV2SQqxW I+UYl+ywS4pmnTfbrG4I5E2bGB1zUghrFZDvavhCHz2bGj/ZjnElb0pMHJ4Lr0swMrMF s381hsU8RjSzRxBavSRu2uh6hpnfgE1EiFFi3+d1zW/VkWyOHJr0xYh/8x2gssdTxUn4 GkEYJUYX6kbKjGvupjG7dPYxP32a28SnDpgrW0WJPRWwNUa4LwnXcOUQS38SVxmv3wVs /UfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=PorepsTsM38jW8HnbCYEKGp8gsBdr+azoSR3mj4Y8lQ=; b=SZvahri1VmcRC27xJ1BMKHrSNjdC0eXbt49Khx5AVpv04kefzWfQxZBucbzxJJqTTA /OOZ0Eg5EeRz5DzWjmaBu0YyyUqdJmJfipaO/Yrq6Ef2FVP1+pM9HqjeSBm+IEp1BBd8 rMao4b4Hpr4bxYh5CMocItdJZMmLInovmMc9ANaWnnVUFMddNRQ/Rt/qnQXSQHOfHEAJ mbaDA9fu/HnrFavKphqn6rwu9YG+pk8vZrpevjMAhqtTp9nG825LYLEg7bo+7YCxdBIe 4r4mIFNYfsu1mp3gZLlQ1Qyq6JZmkTI+0NnTSfnLQzJIZ8hj7i5A0FVZa69gGnxWmqnn 2yjw== X-Gm-Message-State: ACgBeo3eZaJx0in7jr4BI1GlmmBvr06hxsnk4qg5QBQ7fkSdYoRX7oa4 7SfEpg50IaEfCbZ11DXtcfiHh+/mFBRu3NdncTw= X-Google-Smtp-Source: AA6agR5LCPwQWpg2Jym/yJ//2ePj098ufBn4AP/L33bJF6M7EE0YqCrQX9yW2V4dy2UR2kNhah/FX15xBv9om7CJhG8= X-Received: by 2002:a17:906:8a6a:b0:73d:c740:f836 with SMTP id hy10-20020a1709068a6a00b0073dc740f836mr379806ejc.14.1661350546171; Wed, 24 Aug 2022 07:15:46 -0700 (PDT) In-Reply-To: <877d2yos1z.fsf@gnus.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:240628 Archived-At: --000000000000275b4805e6fd51a5 Content-Type: text/plain; charset="UTF-8" Lars Ingebrigtsen wrote: > > Dima Kogan writes: > > > Hi. Thanks for working on this. I just tried this out, and it appears to > > work well! I think we can merge this. > > Since this depends on two patch sets (and there are different ones?), > could you (kobarity, that is) repost the patches (in the order they > should be applied), and I'll get them pushed. Dima, thank you for your feedback! Lars, attached are the revised and rebased patches. They should be applied in the order: - 1-hideshow.patch - 2-python.patch No other patches are required. Thank you for your cooperation. Best regards, --000000000000275b4805e6fd51a5 Content-Type: application/octet-stream; name="1-hideshow.patch" Content-Disposition: attachment; filename="1-hideshow.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l77p3qx40 Y29tbWl0IGNkZmQ1YTY0ZmIyYzk3Njg0Y2I5MmIwYWU4NGFhZGE4NGEzMGFkOTcKQXV0aG9yOiBr b2Jhcml0eSA8a29iYXJpdHlAZ21haWwuY29tPgpEYXRlOiAgIFdlZCBBdWcgMjQgMjI6MjY6NDcg MjAyMiArMDkwMAoKICAgIEV4dGVuZCBgaHMtc3BlY2lhbC1tb2Rlcy1hbGlzdCcgZm9yIGxhbmd1 YWdlcyBzdWNoIGFzIFB5dGhvbgogICAgCiAgICAqIGxpc3AvcHJvZ21vZGVzL2hpZGVzaG93LmVs IChocy1zcGVjaWFsLW1vZGVzLWFsaXN0KTogQWRkCiAgICBlbGVtZW50cyBGSU5ELUJMT0NLLUJF R0lOTklORy1GVU5DLCBGSU5ELU5FWFQtQkxPQ0stRlVOQywgYW5kCiAgICBMT09LSU5HLUFULUJM T0NLLVNUQVJULVAtRlVOQy4KICAgIChocy1maW5kLWJsb2NrLWJlZ2lubmluZy1mdW5jKTogTmV3 IHZhcmlhYmxlIHRvIGhvbGQKICAgIEZJTkQtQkxPQ0stQkVHSU5OSU5HLUZVTkMuCiAgICAoaHMt ZmluZC1uZXh0LWJsb2NrLWZ1bmMpOiBOZXcgdmFyaWFibGUgdG8gaG9sZAogICAgRklORC1ORVhU LUJMT0NLLUZVTkMuCiAgICAoaHMtbG9va2luZy1hdC1ibG9jay1zdGFydC1wLWZ1bmMpOiBOZXcg dmFyaWFibGUgdG8gaG9sZAogICAgTE9PS0lORy1BVC1CTE9DSy1TVEFSVC1QLUZVTkMuCiAgICAo aHMtZ3Jvay1tb2RlLXR5cGUpOiBTZXQgbmV3IHZhcmlhYmxlcyBmcm9tCiAgICBgaHMtc3BlY2lh bC1tb2Rlcy1hbGlzdCcuCiAgICAoaHMtZmluZC1uZXh0LWJsb2NrKTogTmV3IGZ1bmN0aW9uLgog ICAgKE1pc2MuKTogVXBkYXRlIGNhbGxlcnMgb2YgdGhlIGFib3ZlIGZ1bmN0aW9ucy4KICAgIAog ICAgKiB0ZXN0L2xpc3AvcHJvZ21vZGVzL2hpZGVzaG93LXRlc3RzLmVsOiBOZXcgdGVzdCBmaWxl IChidWcjNTY2MzUpLgoKZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL2hpZGVzaG93LmVsIGIv bGlzcC9wcm9nbW9kZXMvaGlkZXNob3cuZWwKaW5kZXggZjU3NGVjODRmYi4uYzA3OTZmYzJlZSAx MDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMvaGlkZXNob3cuZWwKKysrIGIvbGlzcC9wcm9nbW9k ZXMvaGlkZXNob3cuZWwKQEAgLTI2Nyw3ICsyNjcsOSBAQCBocy1zcGVjaWFsLW1vZGVzLWFsaXN0 CiAgICAgKSkKICAgIkFsaXN0IGZvciBpbml0aWFsaXppbmcgdGhlIGhpZGVzaG93IHZhcmlhYmxl cyBmb3IgZGlmZmVyZW50IG1vZGVzLgogRWFjaCBlbGVtZW50IGhhcyB0aGUgZm9ybQotICAoTU9E RSBTVEFSVCBFTkQgQ09NTUVOVC1TVEFSVCBGT1JXQVJELVNFWFAtRlVOQyBBREpVU1QtQkVHLUZV TkMpLgorICAoTU9ERSBTVEFSVCBFTkQgQ09NTUVOVC1TVEFSVCBGT1JXQVJELVNFWFAtRlVOQyBB REpVU1QtQkVHLUZVTkMKKyAgIEZJTkQtQkxPQ0stQkVHSU5OSU5HLUZVTkMgRklORC1ORVhULUJM T0NLLUZVTkMKKyAgIExPT0tJTkctQVQtQkxPQ0stU1RBUlQtUC1GVU5DKS4KIAogSWYgbm9uLW5p bCwgaGlkZXNob3cgd2lsbCB1c2UgdGhlc2UgdmFsdWVzIGFzIHJlZ2V4cHMgdG8gZGVmaW5lIGJs b2NrcwogYW5kIGNvbW1lbnRzLCByZXNwZWN0aXZlbHkgZm9yIG1ham9yIG1vZGUgTU9ERS4KQEAg LTI4OCw2ICsyOTAsMTUgQEAgaHMtc3BlY2lhbC1tb2Rlcy1hbGlzdAogU2VlIHRoZSBkb2N1bWVu dGF0aW9uIGZvciBgaHMtYWRqdXN0LWJsb2NrLWJlZ2lubmluZycgdG8gc2VlIHdoYXQgaXMgdGhl CiB1c2Ugb2YgQURKVVNULUJFRy1GVU5DLgogCitTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIGBo cy1maW5kLWJsb2NrLWJlZ2lubmluZy1mdW5jJyB0byBzZWUKK3doYXQgaXMgdGhlIHVzZSBvZiBG SU5ELUJMT0NLLUJFR0lOTklORy1GVU5DLgorCitTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIGBo cy1maW5kLW5leHQtYmxvY2stZnVuYycgdG8gc2VlIHdoYXQKK2lzIHRoZSB1c2Ugb2YgRklORC1O RVhULUJMT0NLLUZVTkMuCisKK1NlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgYGhzLWxvb2tpbmct YXQtYmxvY2stc3RhcnQtcC1mdW5jJyB0bworc2VlIHdoYXQgaXMgdGhlIHVzZSBvZiBMT09LSU5H LUFULUJMT0NLLVNUQVJULVAtRlVOQy4KKwogSWYgYW55IG9mIHRoZSBlbGVtZW50cyBpcyBsZWZ0 IG5pbCBvciBvbWl0dGVkLCBoaWRlc2hvdyB0cmllcyB0byBndWVzcwogYXBwcm9wcmlhdGUgdmFs dWVzLiAgVGhlIHJlZ2V4cHMgc2hvdWxkIG5vdCBjb250YWluIGxlYWRpbmcgb3IgdHJhaWxpbmcK IHdoaXRlc3BhY2UuICBDYXNlIGRvZXMgbm90IG1hdHRlci4iKQpAQCAtNDMzLDYgKzQ0NCwzOSBA QCBocy1hZGp1c3QtYmxvY2stYmVnaW5uaW5nCiAKIFNlZSBgaHMtYy1saWtlLWFkanVzdC1ibG9j ay1iZWdpbm5pbmcnIGZvciBhbiBleGFtcGxlIG9mIHVzaW5nIHRoaXMuIikKIAorKGRlZnZhci1s b2NhbCBocy1maW5kLWJsb2NrLWJlZ2lubmluZy1mdW5jICMnaHMtZmluZC1ibG9jay1iZWdpbm5p bmcKKyAgIkZ1bmN0aW9uIHVzZWQgdG8gZG8gYGhzLWZpbmQtYmxvY2stYmVnaW5uaW5nJy4KK0l0 IHNob3VsZCByZXBvc2l0aW9uIHBvaW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQg YmxvY2sKK2FuZCByZXR1cm4gcG9pbnQsIG9yIG5pbCBpZiBvcmlnaW5hbCBwb2ludCB3YXMgbm90 IGluIGEgYmxvY2suCisKK1NwZWNpZnlpbmcgdGhpcyBmdW5jdGlvbiBpcyBuZWNlc3NhcnkgZm9y IGxhbmd1YWdlcyBzdWNoIGFzCitQeXRob24sIHdoZXJlIHJlZ2V4cCBzZWFyY2ggYW5kIGBzeW50 YXgtcHBzcycgY2hlY2sgaXMgbm90IGVub3VnaAordG8gZmluZCB0aGUgYmVnaW5uaW5nIG9mIHRo ZSBjdXJyZW50IGJsb2NrLiIpCisKKyhkZWZ2YXItbG9jYWwgaHMtZmluZC1uZXh0LWJsb2NrLWZ1 bmMgIydocy1maW5kLW5leHQtYmxvY2sKKyAgIkZ1bmN0aW9uIHVzZWQgdG8gZG8gYGhzLWZpbmQt bmV4dC1ibG9jaycuCitJdCBzaG91bGQgcmVwb3NpdGlvbiBwb2ludCBhdCBuZXh0IGJsb2NrIHN0 YXJ0LgorCitJdCBpcyBjYWxsZWQgd2l0aCB0aHJlZSBhcmd1bWVudHMgUkVHRVhQLCBNQVhQLCBh bmQgQ09NTUVOVFMuCitSRUdFWFAgaXMgYSByZWdleHAgcmVwcmVzZW50aW5nIGJsb2NrIHN0YXJ0 LiAgV2hlbiBibG9jayBzdGFydCBpcworZm91bmQsIGBtYXRjaC1kYXRhJyBzaG91bGQgYmUgc2V0 IHVzaW5nIFJFR0VYUC4gIE1BWFAgaXMgYSBidWZmZXIKK3Bvc2l0aW9uIHRoYXQgYm91bmRzIHRo ZSBzZWFyY2guICBXaGVuIENPTU1FTlRTIGlzIG5pbCwgY29tbWVudHMKK3Nob3VsZCBiZSBza2lw cGVkLiAgV2hlbiBDT01NRU5UUyBpcyBub3QgbmlsLCBSRUdFWFAgbWF0Y2hlcyBub3QKK29ubHkg YmVnaW5uaW5nIG9mIGEgYmxvY2sgYnV0IGFsc28gYmVnaW5uaW5nIG9mIGEgY29tbWVudC4gIElu Cit0aGlzIGNhc2UsIHRoZSBmdW5jdGlvbiBzaG91bGQgZmluZCBuZWFyZXN0IGJsb2NrIG9yIGNv bW1lbnQuCisKK1NwZWNpZnlpbmcgdGhpcyBmdW5jdGlvbiBpcyBuZWNlc3NhcnkgZm9yIGxhbmd1 YWdlcyBzdWNoIGFzCitQeXRob24sIHdoZXJlIHJlZ2V4cCBzZWFyY2ggaXMgbm90IGVub3VnaCB0 byBmaW5kIHRoZSBiZWdpbm5pbmcKK29mIHRoZSBuZXh0IGJsb2NrLiIpCisKKyhkZWZ2YXItbG9j YWwgaHMtbG9va2luZy1hdC1ibG9jay1zdGFydC1wLWZ1bmMgIydocy1sb29raW5nLWF0LWJsb2Nr LXN0YXJ0LXAKKyAgIkZ1bmN0aW9uIHVzZWQgdG8gZG8gYGhzLWxvb2tpbmctYXQtYmxvY2stc3Rh cnQtcCcuCitJdCBzaG91bGQgcmV0dXJuIG5vbi1uaWwgaWYgdGhlIHBvaW50IGlzIGF0IHRoZSBi bG9jayBzdGFydC4KKworU3BlY2lmeWluZyB0aGlzIGZ1bmN0aW9uIGlzIG5lY2Vzc2FyeSBmb3Ig bGFuZ3VhZ2VzIHN1Y2ggYXMKK1B5dGhvbiwgd2hlcmUgYGxvb2tpbmctYXQnIGFuZCBgc3ludGF4 LXBwc3MnIGNoZWNrIGlzIG5vdCBlbm91Z2gKK3RvIGNoZWNrIGlmIHRoZSBwb2ludCBpcyBhdCB0 aGUgYmxvY2sgc3RhcnQuIikKKwogKGRlZnZhciBocy1oZWFkbGluZSBuaWwKICAgIlRleHQgb2Yg dGhlIGxpbmUgd2hlcmUgYSBoaWRkZW4gYmxvY2sgYmVnaW5zLCBzZXQgZHVyaW5nIGlzZWFyY2gu CiBZb3UgY2FuIGRpc3BsYXkgdGhpcyBpbiB0aGUgbW9kZSBsaW5lIGJ5IGFkZGluZyB0aGUgc3lt Ym9sIGBocy1oZWFkbGluZScKQEAgLTU2NSw3ICs2MDksNyBAQCBocy1oaWRlLWJsb2NrLWF0LXBv aW50CiBhbmQgdGhlbiBmdXJ0aGVyIGFkanVzdGVkIHRvIGJlIGF0IHRoZSBlbmQgb2YgdGhlIGxp bmUuIgogICAoaWYgY29tbWVudC1yZWcKICAgICAgIChocy1oaWRlLWNvbW1lbnQtcmVnaW9uIChj YXIgY29tbWVudC1yZWcpIChjYWRyIGNvbW1lbnQtcmVnKSBlbmQpCi0gICAgKHdoZW4gKGhzLWxv b2tpbmctYXQtYmxvY2stc3RhcnQtcCkKKyAgICAod2hlbiAoZnVuY2FsbCBocy1sb29raW5nLWF0 LWJsb2NrLXN0YXJ0LXAtZnVuYykKICAgICAgIChsZXQgKChtZGF0YSAobWF0Y2gtZGF0YSB0KSkK ICAgICAgICAgICAgIChoZWFkZXItZW5kIChtYXRjaC1lbmQgMCkpCiAgICAgICAgICAgICBwIHEg b3YpCkBAIC02NzIsNyArNzE2LDE0IEBAIGhzLWdyb2stbW9kZS10eXBlCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgKDEtIChtYXRjaC1lbmQg MCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtc3RhcnQtcmVn ZXhwKSkpCiAgICAgICAgICAgICAgIGhzLWZvcndhcmQtc2V4cC1mdW5jIChvciAobnRoIDQgbG9v a3VwKSAjJ2ZvcndhcmQtc2V4cCkKLSAgICAgICAgICAgICAgaHMtYWRqdXN0LWJsb2NrLWJlZ2lu bmluZyAob3IgKG50aCA1IGxvb2t1cCkgIydpZGVudGl0eSkpKQorICAgICAgICAgICAgICBocy1h ZGp1c3QtYmxvY2stYmVnaW5uaW5nIChvciAobnRoIDUgbG9va3VwKSAjJ2lkZW50aXR5KQorICAg ICAgICAgICAgICBocy1maW5kLWJsb2NrLWJlZ2lubmluZy1mdW5jIChvciAobnRoIDYgbG9va3Vw KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ2hzLWZp bmQtYmxvY2stYmVnaW5uaW5nKQorICAgICAgICAgICAgICBocy1maW5kLW5leHQtYmxvY2stZnVu YyAob3IgKG50aCA3IGxvb2t1cCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMnaHMtZmluZC1uZXh0LWJsb2NrKQorICAgICAgICAgICAgICBocy1sb29raW5nLWF0 LWJsb2NrLXN0YXJ0LXAtZnVuYworICAgICAgICAgICAgICAob3IgKG50aCA4IGxvb2t1cCkKKyAg ICAgICAgICAgICAgICAgICMnaHMtbG9va2luZy1hdC1ibG9jay1zdGFydC1wKSkpCiAgICAgKHNl dHEgaHMtbWlub3ItbW9kZSBuaWwpCiAgICAgKGVycm9yICIlcyBNb2RlIGRvZXNuJ3Qgc3VwcG9y dCBIaWRlc2hvdyBNaW5vciBNb2RlIgogICAgICAgICAgICAoZm9ybWF0LW1vZGUtbGluZSBtb2Rl LW5hbWUpKSkpCkBAIC02ODMsNyArNzM0LDcgQEAgaHMtZmluZC1ibG9jay1iZWdpbm5pbmcKICAg KGxldCAoKGRvbmUgbmlsKQogICAgICAgICAoaGVyZSAocG9pbnQpKSkKICAgICA7OyBsb29rIGlm IGN1cnJlbnQgbGluZSBpcyBibG9jayBzdGFydAotICAgIChpZiAoaHMtbG9va2luZy1hdC1ibG9j ay1zdGFydC1wKQorICAgIChpZiAoZnVuY2FsbCBocy1sb29raW5nLWF0LWJsb2NrLXN0YXJ0LXAt ZnVuYykKICAgICAgICAgKHBvaW50KQogICAgICAgOzsgbG9vayBiYWNrd2FyZCBmb3IgdGhlIHN0 YXJ0IG9mIGEgYmxvY2sgdGhhdCBjb250YWlucyB0aGUgY3Vyc29yCiAgICAgICAod2hpbGUgKGFu ZCAocmUtc2VhcmNoLWJhY2t3YXJkIGhzLWJsb2NrLXN0YXJ0LXJlZ2V4cCBuaWwgdCkKQEAgLTY5 OCwxOSArNzQ5LDI1IEBAIGhzLWZpbmQtYmxvY2stYmVnaW5uaW5nCiAgICAgICAgIChnb3RvLWNo YXIgaGVyZSkKICAgICAgICAgbmlsKSkpKQogCisoZGVmdW4gaHMtZmluZC1uZXh0LWJsb2NrIChy ZWdleHAgbWF4cCBjb21tZW50cykKKyAgIlJlcG9zaXRpb24gcG9pbnQgYXQgbmV4dCBibG9jay1z dGFydC4KK1NraXAgY29tbWVudHMgaWYgQ09NTUVOVFMgaXMgbmlsLCBhbmQgc2VhcmNoIGZvciBS RUdFWFAgaW4KK3JlZ2lvbiAocG9pbnQgTUFYUCkuIgorICAod2hlbiAobm90IGNvbW1lbnRzKQor ICAgIChmb3J3YXJkLWNvbW1lbnQgKHBvaW50LW1heCkpKQorICAoYW5kICg8IChwb2ludCkgbWF4 cCkKKyAgICAgICAocmUtc2VhcmNoLWZvcndhcmQgcmVnZXhwIG1heHAgdCkpKQorCiAoZGVmdW4g aHMtaGlkZS1sZXZlbC1yZWN1cnNpdmUgKGFyZyBtaW5wIG1heHApCiAgICJSZWN1cnNpdmVseSBo aWRlIGJsb2NrcyBBUkcgbGV2ZWxzIGJlbG93IHBvaW50IGluIHJlZ2lvbiAoTUlOUCBNQVhQKS4i Ci0gICh3aGVuIChocy1maW5kLWJsb2NrLWJlZ2lubmluZykKKyAgKHdoZW4gKGZ1bmNhbGwgaHMt ZmluZC1ibG9jay1iZWdpbm5pbmctZnVuYykKICAgICAoc2V0cSBtaW5wICgxKyAocG9pbnQpKSkK ICAgICAoZnVuY2FsbCBocy1mb3J3YXJkLXNleHAtZnVuYyAxKQogICAgIChzZXRxIG1heHAgKDEt IChwb2ludCkpKSkKICAgKHVubGVzcyBocy1hbGxvdy1uZXN0aW5nCiAgICAgKGhzLWRpc2NhcmQt b3ZlcmxheXMgbWlucCBtYXhwKSkKICAgKGdvdG8tY2hhciBtaW5wKQotICAod2hpbGUgKHByb2du Ci0gICAgICAgICAgIChmb3J3YXJkLWNvbW1lbnQgKGJ1ZmZlci1zaXplKSkKLSAgICAgICAgICAg KGFuZCAoPCAocG9pbnQpIG1heHApCi0gICAgICAgICAgICAgICAgKHJlLXNlYXJjaC1mb3J3YXJk IGhzLWJsb2NrLXN0YXJ0LXJlZ2V4cCBtYXhwIHQpKSkKKyAgKHdoaWxlIChmdW5jYWxsIGhzLWZp bmQtbmV4dC1ibG9jay1mdW5jIGhzLWJsb2NrLXN0YXJ0LXJlZ2V4cCBtYXhwIG5pbCkKICAgICAo d2hlbiAoc2F2ZS1tYXRjaC1kYXRhCiAJICAgIChub3QgKG50aCA4IChzeW50YXgtcHBzcykpKSkg OyBub3QgaW5zaWRlIGNvbW1lbnRzIG9yIHN0cmluZ3MKICAgICAgIChpZiAoPiBhcmcgMSkKQEAg LTc0Nyw4ICs4MDQsOCBAQCBocy1hbHJlYWR5LWhpZGRlbi1wCiAgICAgICAgICAgKGdvdG8tY2hh ciAobnRoIDAgYy1yZWcpKQogICAgICAgICAoZW5kLW9mLWxpbmUpCiAgICAgICAgICh3aGVuIChh bmQgKG5vdCBjLXJlZykKLSAgICAgICAgICAgICAgICAgICAoaHMtZmluZC1ibG9jay1iZWdpbm5p bmcpCi0JCSAgIChocy1sb29raW5nLWF0LWJsb2NrLXN0YXJ0LXApKQorICAgICAgICAgICAgICAg ICAgIChmdW5jYWxsIGhzLWZpbmQtYmxvY2stYmVnaW5uaW5nLWZ1bmMpCisJCSAgIChmdW5jYWxs IGhzLWxvb2tpbmctYXQtYmxvY2stc3RhcnQtcC1mdW5jKSkKICAgICAgICAgICA7OyBwb2ludCBp cyBpbnNpZGUgYSBibG9jawogICAgICAgICAgIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkpKSkK ICAgICAoZW5kLW9mLWxpbmUpCkBAIC03OTAsMTAgKzg0Nyw4IEBAIGhzLWhpZGUtYWxsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhzLWMtc3RhcnQtcmVnZXhwCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXCkiKQogICAgICAgICAgICAgICAgICAgICAg ICAgICIiKSkpKQotICAgICAgICh3aGlsZSAocHJvZ24KLSAgICAgICAgICAgICAgICAodW5sZXNz IGhzLWhpZGUtY29tbWVudHMtd2hlbi1oaWRpbmctYWxsCi0gICAgICAgICAgICAgICAgICAoZm9y d2FyZC1jb21tZW50IChwb2ludC1tYXgpKSkKLSAgICAgICAgICAgICAgICAocmUtc2VhcmNoLWZv cndhcmQgcmUgKHBvaW50LW1heCkgdCkpCisgICAgICAgKHdoaWxlIChmdW5jYWxsIGhzLWZpbmQt bmV4dC1ibG9jay1mdW5jIHJlIChwb2ludC1tYXgpCisgICAgICAgICAgICAgICAgICAgICAgIGhz LWhpZGUtY29tbWVudHMtd2hlbi1oaWRpbmctYWxsKQogICAgICAgICAgKGlmIChtYXRjaC1iZWdp bm5pbmcgMSkKICAgICAgICAgICAgICA7OyBXZSBoYXZlIGZvdW5kIGEgYmxvY2sgYmVnaW5uaW5n LgogICAgICAgICAgICAgIChwcm9nbgpAQCAtODM4LDggKzg5Myw4IEBAIGhzLWhpZGUtYmxvY2sK ICAgICAgICAgICAgICAgICAgICAgICAoPD0gKGNvdW50LWxpbmVzIChjYXIgYy1yZWcpIChudGgg MSBjLXJlZykpIDEpKSkKICAgICAgICAobWVzc2FnZSAiKG5vdCBlbm91Z2ggY29tbWVudCBsaW5l cyB0byBoaWRlKSIpKQogICAgICAgKChvciBjLXJlZwotCSAgIChocy1sb29raW5nLWF0LWJsb2Nr LXN0YXJ0LXApCi0gICAgICAgICAgIChocy1maW5kLWJsb2NrLWJlZ2lubmluZykpCisJICAgKGZ1 bmNhbGwgaHMtbG9va2luZy1hdC1ibG9jay1zdGFydC1wLWZ1bmMpCisgICAgICAgICAgIChmdW5j YWxsIGhzLWZpbmQtYmxvY2stYmVnaW5uaW5nLWZ1bmMpKQogICAgICAgIChocy1oaWRlLWJsb2Nr LWF0LXBvaW50IGVuZCBjLXJlZykKICAgICAgICAocnVuLWhvb2tzICdocy1oaWRlLWhvb2spKSkp KSkKIApAQCAtODY4LDkgKzkyMyw5IEBAIGhzLXNob3ctYmxvY2sKICAgICAgICAgICAgICAod2hl biAoY2FyIGMtcmVnKQogICAgICAgICAgICAgICAgKHNldHEgcCAoY2FyIGMtcmVnKQogICAgICAg ICAgICAgICAgICAgICAgcSAoY2FkciBjLXJlZykpKSkKLSAgICAgICAgICAgICgoYW5kIChocy1m aW5kLWJsb2NrLWJlZ2lubmluZykKKyAgICAgICAgICAgICgoYW5kIChmdW5jYWxsIGhzLWZpbmQt YmxvY2stYmVnaW5uaW5nLWZ1bmMpCiAgICAgICAgICAgICAgICAgICA7OyB1Z2gsIGZyZXNoIG1h dGNoLWRhdGEKLSAgICAgICAgICAgICAgICAgIChocy1sb29raW5nLWF0LWJsb2NrLXN0YXJ0LXAp KQorICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgaHMtbG9va2luZy1hdC1ibG9jay1zdGFydC1w LWZ1bmMpKQogICAgICAgICAgICAgIChzZXRxIHAgKHBvaW50KQogICAgICAgICAgICAgICAgICAg IHEgKHByb2duIChocy1mb3J3YXJkLXNleHAgKG1hdGNoLWRhdGEgdCkgMSkgKHBvaW50KSkpKSkK ICAgICAgICh3aGVuIChhbmQgcCBxKQpkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL3Byb2dtb2Rlcy9o aWRlc2hvdy10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9wcm9nbW9kZXMvaGlkZXNob3ctdGVzdHMuZWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZWUyYTBjN2M0YwotLS0gL2Rl di9udWxsCisrKyBiL3Rlc3QvbGlzcC9wcm9nbW9kZXMvaGlkZXNob3ctdGVzdHMuZWwKQEAgLTAs MCArMSwyNjggQEAKKzs7OyBoaWRlc2hvdy10ZXN0cy5lbCAtLS0gVGVzdCBzdWl0ZSBmb3IgaGlk ZXNob3cuZWwgIC0qLSBsZXhpY2FsLWJpbmRpbmc6dCAtKi0KKworOzsgQ29weXJpZ2h0IChDKSAy MDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCis7OyBUaGlzIGZpbGUgaXMgcGFy dCBvZiBHTlUgRW1hY3MuCisKKzs7IEdOVSBFbWFjcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cis7OyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorOzsgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKKzs7IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKzs7IEdOVSBFbWFj cyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorOzsg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKzs7IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisKKzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OyBhbG9uZyB3aXRoIEdOVSBFbWFjcy4gIElmIG5vdCwg c2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKzs7OyBDb21tZW50YXJ5Ogor Cis7OzsgQ29kZToKKworKHJlcXVpcmUgJ2VydCkKKyhyZXF1aXJlICdlcnQteCkKKyhyZXF1aXJl ICdoaWRlc2hvdykKKworOzsgRGVwZW5kZW5jaWVzIGZvciB0ZXN0aW5nOgorKHJlcXVpcmUgJ2Nj LW1vZGUpCisKKworKGRlZm1hY3JvIGhpZGVzaG93LXRlc3RzLXdpdGgtdGVtcC1idWZmZXIgKG1v ZGUgY29udGVudHMgJnJlc3QgYm9keSkKKyAgIkNyZWF0ZSBhIGBocy1taW5vci1tb2RlJyBlbmFi bGVkIE1PREUgdGVtcCBidWZmZXIgd2l0aCBDT05URU5UUy4KK0JPRFkgaXMgY29kZSB0byBiZSBl eGVjdXRlZCB3aXRoaW4gdGhlIHRlbXAgYnVmZmVyLiAgUG9pbnQgaXMKK2Fsd2F5cyBsb2NhdGVk IGF0IHRoZSBiZWdpbm5pbmcgb2YgYnVmZmVyLiIKKyAgKGRlY2xhcmUgKGluZGVudCAxKSAoZGVi dWcgdCkpCisgIGAod2l0aC10ZW1wLWJ1ZmZlcgorICAgICAoLG1vZGUpCisgICAgIChocy1taW5v ci1tb2RlIDEpCisgICAgIChpbnNlcnQgLGNvbnRlbnRzKQorICAgICAoZ290by1jaGFyIChwb2lu dC1taW4pKQorICAgICAsQGJvZHkpKQorCisoZGVmdW4gaGlkZXNob3ctdGVzdHMtbG9vay1hdCAo c3RyaW5nICZvcHRpb25hbCBudW0gcmVzdG9yZS1wb2ludCkKKyAgIk1vdmUgcG9pbnQgYXQgYmVn aW5uaW5nIG9mIFNUUklORyBpbiB0aGUgY3VycmVudCBidWZmZXIuCitPcHRpb25hbCBhcmd1bWVu dCBOVU0gZGVmYXVsdHMgdG8gMSBhbmQgaXMgYW4gaW50ZWdlciBpbmRpY2F0aW5nCitob3cgbWFu eSBvY2N1cnJlbmNlcyBtdXN0IGJlIGZvdW5kLCB3aGVuIHBvc2l0aXZlIHRoZSBzZWFyY2ggaXMK K2RvbmUgZm9yd2FyZHMsIG90aGVyd2lzZSBiYWNrd2FyZHMuICBXaGVuIFJFU1RPUkUtUE9JTlQg aXMKK25vbi1uaWwgdGhlIHBvaW50IGlzIG5vdCBtb3ZlZCBidXQgdGhlIHBvc2l0aW9uIGZvdW5k IGlzIHN0aWxsCityZXR1cm5lZC4gIFdoZW4gc2VhcmNoaW5nIGZvcndhcmQgYW5kIHBvaW50IGlz IGFscmVhZHkgbG9va2luZyBhdAorU1RSSU5HLCBpdCBpcyBza2lwcGVkIHNvIHRoZSBuZXh0IFNU UklORyBvY2N1cnJlbmNlIGlzIHNlbGVjdGVkLiIKKyAgKGxldCogKChudW0gKG9yIG51bSAxKSkK KyAgICAgICAgIChzdGFydGluZy1wb2ludCAocG9pbnQpKQorICAgICAgICAgKHN0cmluZyAocmVn ZXhwLXF1b3RlIHN0cmluZykpCisgICAgICAgICAoc2VhcmNoLWZuIChpZiAoPiBudW0gMCkgIydy ZS1zZWFyY2gtZm9yd2FyZCAjJ3JlLXNlYXJjaC1iYWNrd2FyZCkpCisgICAgICAgICAoZGVpbmMt Zm4gKGlmICg+IG51bSAwKSAjJzEtICMnMSspKQorICAgICAgICAgKGZvdW5kLXBvaW50KSkKKyAg ICAocHJvZzIKKyAgICAgICAgKGNhdGNoICdleGl0CisgICAgICAgICAgKHdoaWxlIChub3QgKD0g bnVtIDApKQorICAgICAgICAgICAgKHdoZW4gKGFuZCAoPiBudW0gMCkKKyAgICAgICAgICAgICAg ICAgICAgICAgKGxvb2tpbmctYXQgc3RyaW5nKSkKKyAgICAgICAgICAgICAgOzsgTW92aW5nIGZv cndhcmQgYW5kIGFscmVhZHkgbG9va2luZyBhdCBTVFJJTkcsIHNraXAgaXQuCisgICAgICAgICAg ICAgIChmb3J3YXJkLWNoYXIgKGxlbmd0aCAobWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRpZXMgMCkp KSkKKyAgICAgICAgICAgIChhbmQgKG5vdCAoZnVuY2FsbCBzZWFyY2gtZm4gc3RyaW5nIG5pbCB0 KSkKKyAgICAgICAgICAgICAgICAgKHRocm93ICdleGl0IHQpKQorICAgICAgICAgICAgKHdoZW4g KD4gbnVtIDApCisgICAgICAgICAgICAgIDs7IGByZS1zZWFyY2gtZm9yd2FyZCcgbGVhdmVzIHBv aW50IGF0IHRoZSBlbmQgb2YgdGhlCisgICAgICAgICAgICAgIDs7IG9jY3VycmVuY2UsIG1vdmUg YmFjayBzbyBwb2ludCBpcyBhdCB0aGUgYmVnaW5uaW5nCisgICAgICAgICAgICAgIDs7IGluc3Rl YWQuCisgICAgICAgICAgICAgIChmb3J3YXJkLWNoYXIgKC0gKGxlbmd0aCAobWF0Y2gtc3RyaW5n LW5vLXByb3BlcnRpZXMgMCkpKSkpCisgICAgICAgICAgICAoc2V0cQorICAgICAgICAgICAgIG51 bSAoZnVuY2FsbCBkZWluYy1mbiBudW0pCisgICAgICAgICAgICAgZm91bmQtcG9pbnQgKHBvaW50 KSkpKQorICAgICAgICBmb3VuZC1wb2ludAorICAgICAgKGFuZCByZXN0b3JlLXBvaW50IChnb3Rv LWNoYXIgc3RhcnRpbmctcG9pbnQpKSkpKQorCisoZGVmdW4gaGlkZXNob3ctdGVzdHMtdmlzaWJs ZS1zdHJpbmcgKCZvcHRpb25hbCBtaW4gbWF4KQorICAiUmV0dXJuIHRoZSBidWZmZXIgc3RyaW5n IGV4Y2x1ZGluZyBpbnZpc2libGUgb3ZlcmxheXMuCitBcmd1bWVudCBNSU4gYW5kIE1BWCBkZWxp bWl0IHRoZSByZWdpb24gdG8gYmUgcmV0dXJuZWQgYW5kCitkZWZhdWx0IHRvIGBwb2ludC1taW4n IGFuZCBgcG9pbnQtbWF4JyByZXNwZWN0aXZlbHkuIgorICAobGV0KiAoKG1pbiAob3IgbWluIChw b2ludC1taW4pKSkKKyAgICAgICAgIChtYXggKG9yIG1heCAocG9pbnQtbWF4KSkpCisgICAgICAg ICAoYnVmZmVyLWNvbnRlbnRzIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgbWluIG1h eCkpCisgICAgICAgICAob3ZlcmxheXMKKyAgICAgICAgICAoc29ydCAob3ZlcmxheXMtaW4gbWlu IG1heCkKKyAgICAgICAgICAgICAgICAobGFtYmRhIChhIGIpCisgICAgICAgICAgICAgICAgICAo bGV0ICgob3ZlcmxheS1lbmQtYSAob3ZlcmxheS1lbmQgYSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAob3ZlcmxheS1lbmQtYiAob3ZlcmxheS1lbmQgYikpKQorICAgICAgICAgICAgICAgICAg ICAoPiBvdmVybGF5LWVuZC1hIG92ZXJsYXktZW5kLWIpKSkpKSkKKyAgICAod2l0aC10ZW1wLWJ1 ZmZlcgorICAgICAgKGluc2VydCBidWZmZXItY29udGVudHMpCisgICAgICAoZG9saXN0IChvdmVy bGF5IG92ZXJsYXlzKQorICAgICAgICAoaWYgKG92ZXJsYXktZ2V0IG92ZXJsYXkgJ2ludmlzaWJs ZSkKKyAgICAgICAgICAgIChkZWxldGUtcmVnaW9uIChvdmVybGF5LXN0YXJ0IG92ZXJsYXkpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAob3ZlcmxheS1lbmQgb3ZlcmxheSkpKSkKKyAgICAg IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgKHBvaW50LW1pbikgKHBvaW50LW1heCkp KSkpCisKKyhlcnQtZGVmdGVzdCBoaWRlc2hvdy1oaWRlLWJsb2NrLTEgKCkKKyAgIlNob3VsZCBo aWRlIGN1cnJlbnQgYmxvY2suIgorICAobGV0ICgoY29udGVudHMgIgoraW50CittYWluKCkKK3sK KyAgcHJpbnRmKFwiSGVsbG9cXG5cIik7Cit9CisiKSkKKyAgICAoaGlkZXNob3ctdGVzdHMtd2l0 aC10ZW1wLWJ1ZmZlcgorICAgICBjLW1vZGUKKyAgICAgY29udGVudHMKKyAgICAgKGhpZGVzaG93 LXRlc3RzLWxvb2stYXQgInByaW50ZiIpCisgICAgIChocy1oaWRlLWJsb2NrKQorICAgICAoc2hv dWxkIChzdHJpbmc9CisgICAgICAgICAgICAgIChoaWRlc2hvdy10ZXN0cy12aXNpYmxlLXN0cmlu ZykKKyAgICAgICAgICAgICAgIgoraW50CittYWluKCkKK3t9CisiKSkKKyAgICAgKGhzLXNob3ct YmxvY2spCisgICAgIChzaG91bGQgKHN0cmluZz0gKGhpZGVzaG93LXRlc3RzLXZpc2libGUtc3Ry aW5nKSBjb250ZW50cykpKSkpCisKKyhlcnQtZGVmdGVzdCBoaWRlc2hvdy1oaWRlLWFsbC0xICgp CisgICJTaG91bGQgaGlkZSBhbGwgYmxvY2tzIGFuZCBjb21tZW50cy4iCisgIChsZXQgKChjb250 ZW50cyAiCisvKgorICAgQ29tbWVudHMKKyovCisKK2ludAorbWFpbigpCit7CisgIHN1YigpOwor fQorCit2b2lkCitzdWIoKQoreworICBwcmludGYoXCJIZWxsb1xcblwiKTsKK30KKyIpKQorICAg IChoaWRlc2hvdy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAgIGMtbW9kZQorICAgICBjb250 ZW50cworICAgICAoaHMtaGlkZS1hbGwpCisgICAgIChzaG91bGQgKHN0cmluZz0KKyAgICAgICAg ICAgICAgKGhpZGVzaG93LXRlc3RzLXZpc2libGUtc3RyaW5nKQorICAgICAgICAgICAgICAiCisv KgorCitpbnQKK21haW4oKQore30KKwordm9pZAorc3ViKCkKK3t9CisiKSkKKyAgICAgKGhzLXNo b3ctYWxsKQorICAgICAoc2hvdWxkIChzdHJpbmc9IChoaWRlc2hvdy10ZXN0cy12aXNpYmxlLXN0 cmluZykgY29udGVudHMpKSkpKQorCisoZXJ0LWRlZnRlc3QgaGlkZXNob3ctaGlkZS1hbGwtMiAo KQorICAiU2hvdWxkIG5vdCBoaWRlIGNvbW1lbnRzIHdoZW4gYGhzLWhpZGUtY29tbWVudHMtd2hl bi1oaWRpbmctYWxsJyBpcyBuaWwuIgorICAobGV0ICgoY29udGVudHMgIgorLyoKKyAgIENvbW1l bnRzCisqLworCitpbnQKK21haW4oKQoreworICBzdWIoKTsKK30KKwordm9pZAorc3ViKCkKK3sK KyAgcHJpbnRmKFwiSGVsbG9cXG5cIik7Cit9CisiKSkKKyAgICAoaGlkZXNob3ctdGVzdHMtd2l0 aC10ZW1wLWJ1ZmZlcgorICAgICBjLW1vZGUKKyAgICAgY29udGVudHMKKyAgICAgKGxldCAoKGhz LWhpZGUtY29tbWVudHMtd2hlbi1oaWRpbmctYWxsIG5pbCkpCisgICAgICAgKGhzLWhpZGUtYWxs KSkKKyAgICAgKHNob3VsZCAoc3RyaW5nPQorICAgICAgICAgICAgICAoaGlkZXNob3ctdGVzdHMt dmlzaWJsZS1zdHJpbmcpCisgICAgICAgICAgICAgICIKKy8qCisgICBDb21tZW50cworKi8KKwor aW50CittYWluKCkKK3t9CisKK3ZvaWQKK3N1YigpCit7fQorIikpCisgICAgIChocy1zaG93LWFs bCkKKyAgICAgKHNob3VsZCAoc3RyaW5nPSAoaGlkZXNob3ctdGVzdHMtdmlzaWJsZS1zdHJpbmcp IGNvbnRlbnRzKSkpKSkKKworKGVydC1kZWZ0ZXN0IGhpZGVzaG93LWhpZGUtbGV2ZWwtMSAoKQor ICAiU2hvdWxkIGhpZGUgMXN0IGxldmVsIGJsb2Nrcy4iCisgIChoaWRlc2hvdy10ZXN0cy13aXRo LXRlbXAtYnVmZmVyCisgICBjLW1vZGUKKyAgICIKKy8qCisgICBDb21tZW50cworKi8KKworaW50 CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKyAgaWYgKGFyZ2MgPiAxKSB7CisgICAg cHJpbnRmKFwiSGVsbG9cXG5cIik7CisgIH0KK30KKyIKKyAgIChocy1oaWRlLWxldmVsIDEpCisg ICAoc2hvdWxkIChzdHJpbmc9CisgICAgICAgICAgICAoaGlkZXNob3ctdGVzdHMtdmlzaWJsZS1z dHJpbmcpCisgICAgICAgICAgICAiCisvKgorICAgQ29tbWVudHMKKyovCisKK2ludAorbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCit7fQorIikpKSkKKworKGVydC1kZWZ0ZXN0IGhpZGVzaG93 LWhpZGUtbGV2ZWwtMiAoKQorICAiU2hvdWxkIGhpZGUgMm5kIGxldmVsIGJsb2Nrcy4iCisgICho aWRlc2hvdy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICBjLW1vZGUKKyAgICIKKy8qCisgICBD b21tZW50cworKi8KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKyAgaWYg KGFyZ2MgPiAxKSB7CisgICAgcHJpbnRmKFwiSGVsbG9cXG5cIik7CisgIH0KK30KKyIKKyAgICho cy1oaWRlLWxldmVsIDIpCisgICAoc2hvdWxkIChzdHJpbmc9CisgICAgICAgICAgICAoaGlkZXNo b3ctdGVzdHMtdmlzaWJsZS1zdHJpbmcpCisgICAgICAgICAgICAiCisvKgorICAgQ29tbWVudHMK KyovCisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisgIGlmIChhcmdjID4g MSkge30KK30KKyIpKSkpCisKKyhwcm92aWRlICdoaWRlc2hvdy10ZXN0cykKKworOzs7IGhpZGVz aG93LXRlc3RzLmVsIGVuZHMgaGVyZQo= --000000000000275b4805e6fd51a5 Content-Type: application/octet-stream; name="2-python.patch" Content-Disposition: attachment; filename="2-python.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l77p40qx1 Y29tbWl0IDFiNzc4ZmUyZTAyMjBiOTQ2ZjBjMWQ3ZTUxMGM0ZDEwZDAzNTE5NzcKQXV0aG9yOiBr b2Jhcml0eSA8a29iYXJpdHlAZ21haWwuY29tPgpEYXRlOiAgIFdlZCBBdWcgMjQgMjI6Mjc6MDkg MjAyMiArMDkwMAoKICAgIEFkZCBQeXRob24gYmxvY2tzIHN1cHBvcnQgZm9yIGhpZGVzaG93CiAg ICAKICAgICogbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsIChweXRob24tbmF2LWJlZ2lubmluZy1v Zi1ibG9jay1yZWdleHApOgogICAgTmV3IHZhcmlhYmxlLgogICAgKHB5dGhvbi1oaWRlc2hvdy1m b3J3YXJkLXNleHAtZnVuY3Rpb24pOiBDaGFuZ2UgdG8gY2FsbAogICAgYHB5dGhvbi1uYXYtZW5k LW9mLWJsb2NrJy4KICAgIChweXRob24taGlkZXNob3ctZmluZC1uZXh0LWJsb2NrKTogTmV3IGZ1 bmN0aW9uIHRvIGJlIHVzZWQgYXMKICAgIEZJTkQtTkVYVC1CTE9DSy1GVU5DIGluIGBocy1zcGVj aWFsLW1vZGVzLWFsaXN0Jy4KICAgIChweXRob24taW5mby1sb29raW5nLWF0LWJlZ2lubmluZy1v Zi1ibG9jayk6IE5ldyBmdW5jdGlvbiB0byBiZQogICAgdXNlZCBhcyBMT09LSU5HLUFULUJMT0NL LVNUQVJULVAtRlVOQyBpbiBgaHMtc3BlY2lhbC1tb2Rlcy1hbGlzdCcuCiAgICAocHl0aG9uLW1v ZGUpOiBDaGFuZ2Ugc2V0dGluZ3Mgb2YgYGhzLXNwZWNpYWwtbW9kZXMtYWxpc3QnLgogICAgCiAg ICAqIHRlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsCiAgICAocHl0aG9uLWhpZGVz aG93LWhpZGUtbGV2ZWxzLTEpOiBGaXggdG8ga2VlcCBlbXB0eSBsaW5lcy4KICAgIChweXRob24t aW5mby1sb29raW5nLWF0LWJlZ2lubmluZy1vZi1ibG9jay0xKQogICAgKHB5dGhvbi1oaWRlc2hv dy1oaWRlLWxldmVscy0zLCBweXRob24taGlkZXNob3ctaGlkZS1sZXZlbHMtNCkKICAgIChweXRo b24taGlkZXNob3ctaGlkZS1hbGwtMSwgcHl0aG9uLWhpZGVzaG93LWhpZGUtYWxsLTIpCiAgICAo cHl0aG9uLWhpZGVzaG93LWhpZGUtYWxsLTMsIHB5dGhvbi1oaWRlc2hvdy1oaWRlLWJsb2NrLTEp OiBOZXcKICAgIHRlc3RzIChidWcjNTY2MzUpLgoKZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVz L3B5dGhvbi5lbCBiL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbAppbmRleCBlMTM0Nzc1NGM0Li5k M2ZmYzJkYjJjIDEwMDY0NAotLS0gYS9saXNwL3Byb2dtb2Rlcy9weXRob24uZWwKKysrIGIvbGlz cC9wcm9nbW9kZXMvcHl0aG9uLmVsCkBAIC0xNTI0LDYgKzE1MjQsMTAgQEAgcHl0aG9uLW5hdi1i ZWdpbm5pbmctb2YtZGVmdW4tcmVnZXhwCiBUaGUgbmFtZSBvZiB0aGUgZGVmdW4gc2hvdWxkIGJl IGdyb3VwZWQgc28gaXQgY2FuIGJlIHJldHJpZXZlZAogdmlhIGBtYXRjaC1zdHJpbmcnLiIpCiAK KyhkZWZ2YXIgcHl0aG9uLW5hdi1iZWdpbm5pbmctb2YtYmxvY2stcmVnZXhwCisgIChweXRob24t cnggbGluZS1zdGFydCAoKiBzcGFjZSkgYmxvY2stc3RhcnQpCisgICJSZWdleHAgbWF0Y2hpbmcg YmxvY2sgc3RhcnQuIikKKwogKGRlZnVuIHB5dGhvbi1uYXYtLWJlZ2lubmluZy1vZi1kZWZ1biAo Jm9wdGlvbmFsIGFyZykKICAgIkludGVybmFsIGltcGxlbWVudGF0aW9uIG9mIGBweXRob24tbmF2 LWJlZ2lubmluZy1vZi1kZWZ1bicuCiBXaXRoIHBvc2l0aXZlIEFSRyBzZWFyY2ggYmFja3dhcmRz LCBlbHNlIHNlYXJjaCBmb3J3YXJkcy4iCkBAIC00OTE2LDkgKzQ5MjAsMzcgQEAgcHl0aG9uLWRl c2NyaWJlLWF0LXBvaW50CiAoZGVmdW4gcHl0aG9uLWhpZGVzaG93LWZvcndhcmQtc2V4cC1mdW5j dGlvbiAoX2FyZykKICAgIlB5dGhvbiBzcGVjaWZpYyBgZm9yd2FyZC1zZXhwJyBmdW5jdGlvbiBm b3IgYGhzLW1pbm9yLW1vZGUnLgogQXJndW1lbnQgQVJHIGlzIGlnbm9yZWQuIgotICAocHl0aG9u LW5hdi1lbmQtb2YtZGVmdW4pCi0gICh1bmxlc3MgKHB5dGhvbi1pbmZvLWN1cnJlbnQtbGluZS1l bXB0eS1wKQotICAgIChiYWNrd2FyZC1jaGFyKSkpCisgIChweXRob24tbmF2LWVuZC1vZi1ibG9j aykpCisKKyhkZWZ1biBweXRob24taGlkZXNob3ctZmluZC1uZXh0LWJsb2NrIChyZWdleHAgbWF4 cCBjb21tZW50cykKKyAgIlB5dGhvbiBzcGVjaWZpYyBgaHMtZmluZC1uZXh0LWJsb2NrJyBmdW5j dGlvbiBmb3IgYGhzLW1pbm9yLW1vZGUnLgorQ2FsbCBgcHl0aG9uLW5hdi1mb3J3YXJkLWJsb2Nr JyB0byBmaW5kIG5leHQgYmxvY2sgYW5kIGNoZWNrIGlmCitibG9jay1zdGFydCBlbmRzIHdpdGhp biBNQVhQLiAgSWYgQ09NTUVOVFMgaXMgbm90IG5pbCwgY29tbWVudHMKK2FyZSBhbHNvIHNlYXJj aGVkLiAgUkVHRVhQIGlzIHBhc3NlZCB0byBgbG9va2luZy1hdCcgdG8gc2V0CitgbWF0Y2gtZGF0 YScuIgorICAobGV0KiAoKG5leHQtYmxvY2sgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAg ICAgICAgICAgIChvciAoYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHB5dGhvbi1p bmZvLWxvb2tpbmctYXQtYmVnaW5uaW5nLW9mLWJsb2NrKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChyZS1zZWFyY2gtZm9yd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo cHl0aG9uLXJ4IGJsb2NrLXN0YXJ0KSBtYXhwIHQpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGFuZCAocHl0aG9uLW5hdi1mb3J3YXJkLWJsb2NrKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoPCAocG9pbnQpIG1heHApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChyZS1zZWFyY2gtZm9yd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHB5dGhvbi1yeCBibG9jay1zdGFydCkgbWF4cCB0KSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICgxKyBtYXhwKSkpKQorICAgICAgICAgKG5leHQtY29tbWVudAorICAgICAgICAgIChvciAo d2hlbiBjb21tZW50cworICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAg ICAgICAgICAgKGNsLWxvb3Agd2hpbGUgKHJlLXNlYXJjaC1mb3J3YXJkICIjIiBtYXhwIHQpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHl0aG9uLXN5bnRheC1jb250ZXh0ICdjb21t ZW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChwb2ludCkpKSkKKyAgICAg ICAgICAgICAgKDErIG1heHApKSkKKyAgICAgICAgIChuZXh0LWJsb2NrLW9yLWNvbW1lbnQgKG1p biBuZXh0LWJsb2NrIG5leHQtY29tbWVudCkpKQorICAgICh3aGVuICg8PSBuZXh0LWJsb2NrLW9y LWNvbW1lbnQgbWF4cCkKKyAgICAgIChnb3RvLWNoYXIgbmV4dC1ibG9jay1vci1jb21tZW50KQor ICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAg ICAgKGxvb2tpbmctYXQgcmVnZXhwKSkpKSkKIAogDAogOzs7IEltZW51CkBAIC01NDE1LDYgKzU0 NDcsMTYgQEAgcHl0aG9uLWluZm8tbG9va2luZy1hdC1iZWdpbm5pbmctb2YtZGVmdW4KICAgICAg ICAgIChiZWdpbm5pbmctb2YtbGluZSAxKQogICAgICAgICAgKGxvb2tpbmctYXQgcHl0aG9uLW5h di1iZWdpbm5pbmctb2YtZGVmdW4tcmVnZXhwKSkpKQogCisoZGVmdW4gcHl0aG9uLWluZm8tbG9v a2luZy1hdC1iZWdpbm5pbmctb2YtYmxvY2sgKCkKKyAgIkNoZWNrIGlmIHBvaW50IGlzIGF0IHRo ZSBiZWdpbm5pbmcgb2YgYmxvY2suIgorICAobGV0ICgocG9zIChwb2ludCkpKQorICAgIChzYXZl LWV4Y3Vyc2lvbgorICAgICAgKHB5dGhvbi1uYXYtYmVnaW5uaW5nLW9mLXN0YXRlbWVudCkKKyAg ICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgIChhbmQKKyAgICAgICAoPD0gKHBvaW50KSBw b3MgKCsgKHBvaW50KSAoY3VycmVudC1pbmRlbnRhdGlvbikpKQorICAgICAgIChsb29raW5nLWF0 IHB5dGhvbi1uYXYtYmVnaW5uaW5nLW9mLWJsb2NrLXJlZ2V4cCkpKSkpCisKIChkZWZ1biBweXRo b24taW5mby1jdXJyZW50LWxpbmUtY29tbWVudC1wICgpCiAgICJSZXR1cm4gbm9uLW5pbCBpZiBj dXJyZW50IGxpbmUgaXMgYSBjb21tZW50IGxpbmUuIgogICAoY2hhci1lcXVhbApAQCAtNTg3MCwx NCArNTkxMiwxNyBAQCBweXRob24tbW9kZQogCiAgIChhZGQtdG8tbGlzdAogICAgJ2hzLXNwZWNp YWwtbW9kZXMtYWxpc3QKLSAgICcocHl0aG9uLW1vZGUKLSAgICAgIlxccy0qXFxfPFxcKD86ZGVm XFx8Y2xhc3NcXClcXF8+IgorICAgYChweXRob24tbW9kZQorICAgICAscHl0aG9uLW5hdi1iZWdp bm5pbmctb2YtYmxvY2stcmVnZXhwCiAgICAgIDs7IFVzZSB0aGUgZW1wdHkgc3RyaW5nIGFzIGVu ZCByZWdleHAgc28gaXQgZG9lc24ndCBkZWZhdWx0IHRvCiAgICAgIDs7ICJcXHMpIi4gIFRoaXMg d2F5IHBhcmVucyBhdCBlbmQgb2YgZGVmdW4gYXJlIHByb3Blcmx5IGhpZGRlbi4KICAgICAgIiIK ICAgICAgIiMiCiAgICAgIHB5dGhvbi1oaWRlc2hvdy1mb3J3YXJkLXNleHAtZnVuY3Rpb24KLSAg ICAgbmlsKSkKKyAgICAgbmlsCisgICAgIHB5dGhvbi1uYXYtYmVnaW5uaW5nLW9mLWJsb2NrCisg ICAgIHB5dGhvbi1oaWRlc2hvdy1maW5kLW5leHQtYmxvY2sKKyAgICAgcHl0aG9uLWluZm8tbG9v a2luZy1hdC1iZWdpbm5pbmctb2YtYmxvY2spKQogCiAgIChzZXRxLWxvY2FsIG91dGxpbmUtcmVn ZXhwIChweXRob24tcnggKCogc3BhY2UpIGJsb2NrLXN0YXJ0KSkKICAgKHNldHEtbG9jYWwgb3V0 bGluZS1sZXZlbApkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMu ZWwgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbAppbmRleCAxMmFjODcxZmRm Li45MDZmN2VjYTdkIDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0 cy5lbAorKysgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbApAQCAtNTczMCw2 ICs1NzMwLDM5IEBAIHB5dGhvbi1pbmZvLWxvb2tpbmctYXQtYmVnaW5uaW5nLW9mLWRlZnVuLTIK ICAgIChzaG91bGQgKG5vdCAocHl0aG9uLWluZm8tbG9va2luZy1hdC1iZWdpbm5pbmctb2YtZGVm dW4pKSkKICAgIChzaG91bGQgKG5vdCAocHl0aG9uLWluZm8tbG9va2luZy1hdC1iZWdpbm5pbmct b2YtZGVmdW4gbmlsIHQpKSkpKQogCisoZXJ0LWRlZnRlc3QgcHl0aG9uLWluZm8tbG9va2luZy1h dC1iZWdpbm5pbmctb2YtYmxvY2stMSAoKQorICAocHl0aG9uLXRlc3RzLXdpdGgtdGVtcC1idWZm ZXIKKyAgICIKK2RlZiBmKCk6CisgICAgaWYgVHJ1ZToKKyAgICAgICAgcGFzcworICAgIGwgPSBb eCAqIDIKKyAgICAgICAgIGZvciB4IGluIHJhbmdlKDUpCisgICAgICAgICBpZiB4IDwgM10KKyMg aWYgRmFsc2U6CitcIlwiXCIKK2lmIDA6CitcIlwiXCIKKyIKKyAgIChweXRob24tdGVzdHMtbG9v ay1hdCAiZGVmIGYoKToiKQorICAgKHNob3VsZCAocHl0aG9uLWluZm8tbG9va2luZy1hdC1iZWdp bm5pbmctb2YtYmxvY2spKQorICAgKGZvcndhcmQtY2hhcikKKyAgIChzaG91bGQgKG5vdCAocHl0 aG9uLWluZm8tbG9va2luZy1hdC1iZWdpbm5pbmctb2YtYmxvY2spKSkKKyAgIChweXRob24tdGVz dHMtbG9vay1hdCAiaWYgVHJ1ZToiKQorICAgKHNob3VsZCAocHl0aG9uLWluZm8tbG9va2luZy1h dC1iZWdpbm5pbmctb2YtYmxvY2spKQorICAgKGZvcndhcmQtY2hhcikKKyAgIChzaG91bGQgKG5v dCAocHl0aG9uLWluZm8tbG9va2luZy1hdC1iZWdpbm5pbmctb2YtYmxvY2spKSkKKyAgIChiZWdp bm5pbmctb2YtbGluZSkKKyAgIChzaG91bGQgKHB5dGhvbi1pbmZvLWxvb2tpbmctYXQtYmVnaW5u aW5nLW9mLWJsb2NrKSkKKyAgIChweXRob24tdGVzdHMtbG9vay1hdCAiZm9yIHgiKQorICAgKHNo b3VsZCAobm90IChweXRob24taW5mby1sb29raW5nLWF0LWJlZ2lubmluZy1vZi1ibG9jaykpKQor ICAgKHB5dGhvbi10ZXN0cy1sb29rLWF0ICJpZiB4IDwgMyIpCisgICAoc2hvdWxkIChub3QgKHB5 dGhvbi1pbmZvLWxvb2tpbmctYXQtYmVnaW5uaW5nLW9mLWJsb2NrKSkpCisgICAocHl0aG9uLXRl c3RzLWxvb2stYXQgImlmIEZhbHNlOiIpCisgICAoc2hvdWxkIChub3QgKHB5dGhvbi1pbmZvLWxv b2tpbmctYXQtYmVnaW5uaW5nLW9mLWJsb2NrKSkpCisgICAocHl0aG9uLXRlc3RzLWxvb2stYXQg ImlmIDA6IikKKyAgIChzaG91bGQgKG5vdCAocHl0aG9uLWluZm8tbG9va2luZy1hdC1iZWdpbm5p bmctb2YtYmxvY2spKSkpKQorCiAoZXJ0LWRlZnRlc3QgcHl0aG9uLWluZm8tY3VycmVudC1saW5l LWNvbW1lbnQtcC0xICgpCiAgIChweXRob24tdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgogICAgIgpA QCAtNjE4Myw4ICs2MjE2LDExIEBAIHB5dGhvbi1oaWRlc2hvdy1oaWRlLWxldmVscy0xCiBjbGFz cyBTb21lQ2xhc3M6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgYXJnLCBrd2FyZz0xKToKKwog ICAgIGRlZiBmaWx0ZXIoc2VsZiwgbnVtcyk6Ci0gICAgZGVmIF9fc3RyX18oc2VsZik6IikpKSkK KworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorIikpKSkKICAgICAgIChvciBlbmFibGVkIChocy1t aW5vci1tb2RlIC0xKSkpKSkKIAogKGVydC1kZWZ0ZXN0IHB5dGhvbi1oaWRlc2hvdy1oaWRlLWxl dmVscy0yICgpCkBAIC02MjMwLDYgKzYyNjYsMTY1IEBAIHB5dGhvbi1oaWRlc2hvdy1oaWRlLWxl dmVscy0yCiAiKSkpKQogICAgICAgKG9yIGVuYWJsZWQgKGhzLW1pbm9yLW1vZGUgLTEpKSkpKQog CisoZXJ0LWRlZnRlc3QgcHl0aG9uLWhpZGVzaG93LWhpZGUtbGV2ZWxzLTMgKCkKKyAgIlNob3Vs ZCBoaWRlIGFsbCBibG9ja3MuIgorICAocHl0aG9uLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAg ICIKK2RlZiBmKCk6CisgICAgaWYgMDoKKyAgICAgICAgbCA9IFtpIGZvciBpIGluIHJhbmdlKDUp CisgICAgICAgICAgICAgaWYgaSA8IDNdCisgICAgICAgIGFiYyA9IG8ubWF0Y2goMSwgMiwgMykK KworZGVmIGcoKToKKyAgICBwYXNzCisiCisgICAoaHMtbWlub3ItbW9kZSAxKQorICAgKGhzLWhp ZGUtbGV2ZWwgMSkKKyAgIChzaG91bGQKKyAgICAoc3RyaW5nPQorICAgICAocHl0aG9uLXRlc3Rz LXZpc2libGUtc3RyaW5nKQorICAgICAiCitkZWYgZigpOgorCitkZWYgZygpOgorIikpKSkKKwor KGVydC1kZWZ0ZXN0IHB5dGhvbi1oaWRlc2hvdy1oaWRlLWxldmVscy00ICgpCisgICJTaG91bGQg aGlkZSAybmQgbGV2ZWwgYmxvY2suIgorICAocHl0aG9uLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIK KyAgICIKK2RlZiBmKCk6CisgICAgaWYgMDoKKyAgICAgICAgbCA9IFtpIGZvciBpIGluIHJhbmdl KDUpCisgICAgICAgICAgICAgaWYgaSA8IDNdCisgICAgICAgIGFiYyA9IG8ubWF0Y2goMSwgMiwg MykKKworZGVmIGcoKToKKyAgICBwYXNzCisiCisgICAoaHMtbWlub3ItbW9kZSAxKQorICAgKGhz LWhpZGUtbGV2ZWwgMikKKyAgIChzaG91bGQKKyAgICAoc3RyaW5nPQorICAgICAocHl0aG9uLXRl c3RzLXZpc2libGUtc3RyaW5nKQorICAgICAiCitkZWYgZigpOgorICAgIGlmIDA6CisKK2RlZiBn KCk6CisgICAgcGFzcworIikpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi1oaWRlc2hvdy1oaWRl LWFsbC0xICgpCisgICJTaG91bGQgaGlkZSBhbGwgYmxvY2tzLiIKKyAgKHB5dGhvbi10ZXN0cy13 aXRoLXRlbXAtYnVmZmVyCisgICAiaWYgMDoKKworICAgIGFhYQorICAgIGwgPSBbaSBmb3IgaSBp biByYW5nZSg1KQorICAgICAgICAgaWYgaSA8IDNdCisgICAgY2NjCisgICAgYWJjID0gby5tYXRj aCgxLCAyLCAzKQorICAgIGRkZAorCitkZWYgZigpOgorICAgIHBhc3MKKyIKKyAgIChocy1taW5v ci1tb2RlIDEpCisgICAoaHMtaGlkZS1hbGwpCisgICAoc2hvdWxkCisgICAgKHN0cmluZz0KKyAg ICAgKHB5dGhvbi10ZXN0cy12aXNpYmxlLXN0cmluZykKKyAgICAgImlmIDA6CisKK2RlZiBmKCk6 CisiKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLWhpZGVzaG93LWhpZGUtYWxsLTIgKCkKKyAg IlNob3VsZCBoaWRlIGNvbW1lbnRzLiIKKyAgKHB5dGhvbi10ZXN0cy13aXRoLXRlbXAtYnVmZmVy CisgICAiCisjIE11bHRpIGxpbmUKKyMgY29tbWVudAorCitcIlwiXCIKKyMgTXVsdGkgbGluZQor IyBzdHJpbmcKK1wiXCJcIgorIgorICAgKGhzLW1pbm9yLW1vZGUgMSkKKyAgIChocy1oaWRlLWFs bCkKKyAgIChzaG91bGQKKyAgICAoc3RyaW5nPQorICAgICAocHl0aG9uLXRlc3RzLXZpc2libGUt c3RyaW5nKQorICAgICAiCisjIE11bHRpIGxpbmUKKworXCJcIlwiCisjIE11bHRpIGxpbmUKKyMg c3RyaW5nCitcIlwiXCIKKyIpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24taGlkZXNob3ctaGlk ZS1hbGwtMyAoKQorICAiU2hvdWxkIG5vdCBoaWRlIGNvbW1lbnRzIHdoZW4gYGhzLWhpZGUtY29t bWVudHMtd2hlbi1oaWRpbmctYWxsJyBpcyBuaWwuIgorICAocHl0aG9uLXRlc3RzLXdpdGgtdGVt cC1idWZmZXIKKyAgICIKKyMgTXVsdGkgbGluZQorIyBjb21tZW50CisKK1wiXCJcIgorIyBNdWx0 aSBsaW5lCisjIHN0cmluZworXCJcIlwiCisiCisgICAoaHMtbWlub3ItbW9kZSAxKQorICAgKGxl dCAoKGhzLWhpZGUtY29tbWVudHMtd2hlbi1oaWRpbmctYWxsIG5pbCkpCisgICAgIChocy1oaWRl LWFsbCkpCisgICAoc2hvdWxkCisgICAgKHN0cmluZz0KKyAgICAgKHB5dGhvbi10ZXN0cy12aXNp YmxlLXN0cmluZykKKyAgICAgIgorIyBNdWx0aSBsaW5lCisjIGNvbW1lbnQKKworXCJcIlwiCisj IE11bHRpIGxpbmUKKyMgc3RyaW5nCitcIlwiXCIKKyIpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRo b24taGlkZXNob3ctaGlkZS1ibG9jay0xICgpCisgICJTaG91bGQgaGlkZSBjdXJyZW50IGJsb2Nr LiIKKyAgKHB5dGhvbi10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAiCitpZiAwOgorCisgICAg YWFhCisgICAgbCA9IFtpIGZvciBpIGluIHJhbmdlKDUpCisgICAgICAgICBpZiBpIDwgM10KKyAg ICBjY2MKKyAgICBhYmMgPSBvLm1hdGNoKDEsIDIsIDMpCisgICAgZGRkCisKK2RlZiBmKCk6Cisg ICAgcGFzcworIgorICAgKGhzLW1pbm9yLW1vZGUgMSkKKyAgIChweXRob24tdGVzdHMtbG9vay1h dCAiZGRkIikKKyAgIChmb3J3YXJkLWxpbmUpCisgICAoaHMtaGlkZS1ibG9jaykKKyAgIChzaG91 bGQKKyAgICAoc3RyaW5nPQorICAgICAocHl0aG9uLXRlc3RzLXZpc2libGUtc3RyaW5nKQorICAg ICAiCitpZiAwOgorCitkZWYgZigpOgorICAgIHBhc3MKKyIpKSkpCisKIAogKGVydC1kZWZ0ZXN0 IHB5dGhvbi10ZXN0cy0tcHl0aG9uLW5hdi1lbmQtb2Ytc3RhdGVtZW50LS1pbmZsb29wICgpCiAg ICJDaGVja3MgdGhhdCBgcHl0aG9uLW5hdi1lbmQtb2Ytc3RhdGVtZW50JyBkb2Vzbid0IGluZmxv b3AgaW4gYQo= --000000000000275b4805e6fd51a5--