From unknown Mon Jun 23 04:14:25 2025 X-Loop: help-debbugs@gnu.org Subject: bug#65374: 30.0.50 [PATCH]; Allow extending Eshell output targets Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 19 Aug 2023 00:50:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 65374 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 65374@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.169240615119978 (code B ref -1); Sat, 19 Aug 2023 00:50:02 +0000 Received: (at submit) by debbugs.gnu.org; 19 Aug 2023 00:49:11 +0000 Received: from localhost ([127.0.0.1]:49048 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qXA9O-0005C9-9u for submit@debbugs.gnu.org; Fri, 18 Aug 2023 20:49:11 -0400 Received: from lists.gnu.org ([2001:470:142::17]:41752) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qXA9L-0005Bw-Od for submit@debbugs.gnu.org; Fri, 18 Aug 2023 20:49:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qXA9F-0006yZ-Hv for bug-gnu-emacs@gnu.org; Fri, 18 Aug 2023 20:49:01 -0400 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qXA9C-00043K-9R for bug-gnu-emacs@gnu.org; Fri, 18 Aug 2023 20:49:01 -0400 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-1bdbbede5d4so12247935ad.2 for ; Fri, 18 Aug 2023 17:48:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692406136; x=1693010936; h=subject:from:to:content-language:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=pzyvBMaE4lz0z2/XGwlHg1ZoPZQRpSK1N505rv13jtc=; b=hB7lT1hwyo/FgRn7aZ1MdzP1aK4J8xh3WJVpeoVbyRSaemwaP54Jd7Ih/ul0IHJUNc E1kZVBaWkswu90w+Q8Rt9NyZfUh559xAovkgA8aah4wt/gQ5X39cG++YRw3BpbCsIQCs O8OJu/OAaAA0/jliF31AjKFLDuy59lbupZKx6dgzlOTsHw2ycLQUe46a3m+wWR5tLbVg 9+4WsCwnU8Ke2nxIEX//vOcsEtAvt9M64HMSrKG0Wbyq2AmqnakE3v06P8WZBMpn6yOB MAOEMIlUwI8+6OjUkBhGP0FaO/GIUFX9/vnHcBZSs09t5xL3FV18gOQ9teaNGa2HmXwY 8V+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692406136; x=1693010936; h=subject:from:to:content-language:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=pzyvBMaE4lz0z2/XGwlHg1ZoPZQRpSK1N505rv13jtc=; b=NnX0QSGKk2kKwBCoUNKuStgdVt7foKXbV+NF+4PplrInn119JLqmaCBSJZFLEYedEy HoEnndxtmAlo3rMYZkPNhXD6M+rDZnTgBao4s05doYJccedyKqo/kL93DchTFo1dOsLE qdo4Sxi4Z2AAm6WdAuhWCS7yzyWgyacH1Dk2FmUZCFfGFIYBHnfqaNOLz5d/y59FMU+l 1TAAz7V15bbtawoWgvbxA+sZUtCDfDoER20a6+V6G8vnSBLrdBNy9/UvplC+Pr+0rI6T XSR2j9LfXX+YpCck0ldDbFCg20BBB5hE/bIVOpKs7IMwAHBBBxpPUrTIeBxxgDiPo3WC QFJQ== X-Gm-Message-State: AOJu0YzDM9UCpqaKceX2eIjfTAR9lpzfMDUJdDyhq74NBfhFNpdIpRin 2d5Ob9IlPP9/VbQBqKA5+3rIlPSkEzk= X-Google-Smtp-Source: AGHT+IEJ3nIwIK3Y4InytyVTGbXTRgSS+9x/i9kQQtmz7kDSQDggAOPNVevmKesUmpoFq9s3EZeGag== X-Received: by 2002:a17:902:9a05:b0:1bf:4582:90d with SMTP id v5-20020a1709029a0500b001bf4582090dmr701906plp.46.1692406136366; Fri, 18 Aug 2023 17:48:56 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id n2-20020a170902d2c200b001993a1fce7bsm2362437plc.196.2023.08.18.17.48.55 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 18 Aug 2023 17:48:55 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------tO0QUvWQHEJ92P9RiMRSrewB" Message-ID: <0e112183-47fc-d94b-761b-3ddd2c2238fc@gmail.com> Date: Fri, 18 Aug 2023 17:48:55 -0700 MIME-Version: 1.0 X-Mozilla-News-Host: news://news.gmane.io:119 Content-Language: en-US From: Jim Porter Received-SPF: pass client-ip=2607:f8b0:4864:20::62f; envelope-from=jporterbugs@gmail.com; helo=mail-pl1-x62f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) This is a multi-part message in MIME format. --------------tO0QUvWQHEJ92P9RiMRSrewB Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit The attached patches split up the Eshell I/O target code so that each target type is its own method. Aside from fixing a couple tiny bugs, this should be exactly the same as before, but will make it easier to add new target types in the future (and for third-parties to be able to do this!). This won't have any major impact just yet, but it's a very helpful precursor to a larger project I'm working on to pipe output in Eshell into Lisp functions (currently, Lisp functions - including Eshell builtins - can only be the first command in a pipeline). --------------tO0QUvWQHEJ92P9RiMRSrewB Content-Type: text/plain; charset=UTF-8; name="0001-Remove-unused-Eshell-target-type.patch" Content-Disposition: attachment; filename="0001-Remove-unused-Eshell-target-type.patch" Content-Transfer-Encoding: base64 RnJvbSBjMmVmM2MyYTIzMWI1NWZkMzQyN2YzN2M4ZjkyMmJhZTNmNzgwMzcyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTEgTWFyIDIwMjMgMTU6Mzc6MzggLTA4MDAKU3ViamVjdDogW1BB VENIIDEvM10gOyBSZW1vdmUgdW51c2VkIEVzaGVsbCB0YXJnZXQgdHlwZQoKRXNoZWxsIGNy ZWF0ZXMgYWxsIG91dHB1dCB0YXJnZXRzIGluICdlc2hlbGwtZ2V0LXRhcmdldCcsIGFuZCB0 aGF0CmZ1bmN0aW9uIG5ldmVyIHJldHVybnMgYSBjb25zIGNlbGwuCgoqIGxpc3AvZXNoZWxs L2VzaC1pby5lbCAoZXNoZWxsLWNsb3NlLXRhcmdldCkKKGVzaGVsbC1vdXRwdXQtb2JqZWN0 LXRvLXRhcmdldCk6IFJlbW92ZSAnY29uc3AnIGNvbmRpdGlvbi4KLS0tCiBsaXNwL2VzaGVs bC9lc2gtaW8uZWwgfCAxMyArKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL2VzaGVsbC9l c2gtaW8uZWwgYi9saXNwL2VzaGVsbC9lc2gtaW8uZWwKaW5kZXggY2NjZGI0OWNlMmEuLjFl YzRmOTE4MjgyIDEwMDY0NAotLS0gYS9saXNwL2VzaGVsbC9lc2gtaW8uZWwKKysrIGIvbGlz cC9lc2hlbGwvZXNoLWlvLmVsCkBAIC00NjYsMTMgKzQ2Niw3IEBAIGVzaGVsbC1jbG9zZS10 YXJnZXQKICAgIDs7IEEgcGxhaW4gZnVuY3Rpb24gcmVkaXJlY3Rpb24gbmVlZHMgbm8gYWRk aXRpb25hbCBhcmd1bWVudHMKICAgIDs7IHBhc3NlZC4KICAgICgoZnVuY3Rpb25wIHRhcmdl dCkKLSAgICAoZnVuY2FsbCB0YXJnZXQgc3RhdHVzKSkKLQotICAgOzsgQnV0IGEgbW9yZSBj b21wbGljYXRlZCBmdW5jdGlvbiByZWRpcmVjdGlvbiAod2hpY2ggY2FuIG9ubHkKLSAgIDs7 IGhhcHBlbiB3aXRoIGFsaWFzZXMgYXQgdGhlIG1vbWVudCkgaGFzIGFyZ3VtZW50cyB0aGF0 IG5lZWQgdG8gYmUKLSAgIDs7IHBhc3NlZCBhbG9uZyB3aXRoIGl0LgotICAgKChjb25zcCB0 YXJnZXQpCi0gICAgKGFwcGx5IChjYXIgdGFyZ2V0KSBzdGF0dXMgKGNkciB0YXJnZXQpKSkp KQorICAgIChmdW5jYWxsIHRhcmdldCBzdGF0dXMpKSkpCiAKIChkZWZ1biBlc2hlbGwta2ls bC1hcHBlbmQgKHN0cmluZykKICAgIkNhbGwgYGtpbGwtYXBwZW5kJyB3aXRoIFNUUklORywg aWYgaXQgaXMgaW5kZWVkIGEgc3RyaW5nLiIKQEAgLTY0MiwxMCArNjM2LDcgQEAgZXNoZWxs LW91dHB1dC1vYmplY3QtdG8tdGFyZ2V0CiAgICAgICAgKGlmIChtZW1xIChwcm9jZXNzLXN0 YXR1cyB0YXJnZXQpCiAJCSAnKHJ1biBzdG9wIG9wZW4gY2xvc2VkKSkKICAgICAgICAgICAg KHNpZ25hbCAoY2FyIGVycikgKGNkciBlcnIpKQotICAgICAgICAgKHNpZ25hbCAnZXNoZWxs LXBpcGUtYnJva2VuIChsaXN0IHRhcmdldCkpKSkpKQotCi0gICAoKGNvbnNwIHRhcmdldCkK LSAgICAoYXBwbHkgKGNhciB0YXJnZXQpIG9iamVjdCAoY2RyIHRhcmdldCkpKSkKKyAgICAg ICAgIChzaWduYWwgJ2VzaGVsbC1waXBlLWJyb2tlbiAobGlzdCB0YXJnZXQpKSkpKSkpCiAg IG9iamVjdCkKIAogKGRlZnVuIGVzaGVsbC1vdXRwdXQtb2JqZWN0IChvYmplY3QgJm9wdGlv bmFsIGhhbmRsZS1pbmRleCBoYW5kbGVzKQotLSAKMi4yNS4xCgo= --------------tO0QUvWQHEJ92P9RiMRSrewB Content-Type: text/plain; charset=UTF-8; name="0002-Use-generics-to-define-Eshell-output-targets.patch" Content-Disposition: attachment; filename="0002-Use-generics-to-define-Eshell-output-targets.patch" Content-Transfer-Encoding: base64 RnJvbSA5YjYxODY5NzNjMGZkODMxN2E4MGI0ZjFlNzc2ZWZkYWMyZTNiYWM1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTEgTWFyIDIwMjMgMTg6NDQ6NDMgLTA4MDAKU3ViamVjdDogW1BB VENIIDIvM10gVXNlIGdlbmVyaWNzIHRvIGRlZmluZSBFc2hlbGwgb3V0cHV0IHRhcmdldHMK ClRoaXMgaXMgbW9yZSBmbGV4aWJsZSB0aGFuIGJlZm9yZSwgc2luY2UgdGhpcmQtcGFydHkg Y29kZSBjYW4gYWRkIG5ldwpvdXRwdXQgdGFyZ2V0IHR5cGVzIHdpdGhvdXQgYWR2aXNpbmcg dGhlc2UgZnVuY3Rpb25zLiAgSXQgYWxzbwpyZXNvbHZlcyBhbiBpc3N1ZSB3aGVyZSByZWRp cmVjdGluZyB0byBhIHN5bWJvbCB0aGF0IGhhcyBhIHZhbHVlIGluCml0cyBmdW5jdGlvbiBz bG90IGRvZXNuJ3Qgd29yay4KCiogbGlzcC9lc2hlbGwvZXNoLWlvLmVsIChlc2hlbGwtdmly dHVhbC10YXJnZXQpOiBOZXcgc3RydWN0LgooZXNoZWxsLWdldC10YXJnZXQsIGVzaGVsbC1v dXRwdXQtb2JqZWN0LXRvLXRhcmdldCk6IFJlaW1wbGVtZW50IHZpYQonY2wtZGVmZ2VuZXJp YycuCihlc2hlbGwtY2xvc2UtdGFyZ2V0KTogUmVpbXBsZW1lbnQgdmlhICdjbC1kZWZnZW5l cmljJyBhbmQgc2ltcGxpZnkKJ3Byb2Nlc3MnIG1ldGhvZC4KLS0tCiBsaXNwL2VzaGVsbC9l c2gtaW8uZWwgICAgICAgICAgICB8IDI5OSArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tCiB0ZXN0L2xpc3AvZXNoZWxsL2VzaC1pby10ZXN0cy5lbCB8ICAxMCArKwogMiBmaWxl cyBjaGFuZ2VkLCAxNzAgaW5zZXJ0aW9ucygrKSwgMTM5IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2xpc3AvZXNoZWxsL2VzaC1pby5lbCBiL2xpc3AvZXNoZWxsL2VzaC1pby5lbApp bmRleCAxZWM0ZjkxODI4Mi4uZjlmNTBlYTQzM2EgMTAwNjQ0Ci0tLSBhL2xpc3AvZXNoZWxs L2VzaC1pby5lbAorKysgYi9saXNwL2VzaGVsbC9lc2gtaW8uZWwKQEAgLTQyMyw1MSArNDIz LDYgQEAgZXNoZWxsLXNldC1hbGwtb3V0cHV0LWhhbmRsZXMKICAgKGVzaGVsbC1zZXQtb3V0 cHV0LWhhbmRsZSBlc2hlbGwtb3V0cHV0LWhhbmRsZSBtb2RlIHRhcmdldCBoYW5kbGVzKQog ICAoZXNoZWxsLWNvcHktb3V0cHV0LWhhbmRsZSBlc2hlbGwtZXJyb3ItaGFuZGxlIGVzaGVs bC1vdXRwdXQtaGFuZGxlIGhhbmRsZXMpKQogCi0oZGVmdW4gZXNoZWxsLWNsb3NlLXRhcmdl dCAodGFyZ2V0IHN0YXR1cykKLSAgIkNsb3NlIGFuIG91dHB1dCBUQVJHRVQsIHBhc3Npbmcg U1RBVFVTIGFzIHRoZSByZXN1bHQuCi1TVEFUVVMgc2hvdWxkIGJlIG5vbi1uaWwgb24gc3Vj Y2Vzc2Z1bCB0ZXJtaW5hdGlvbiBvZiB0aGUgb3V0cHV0LiIKLSAgKGNvbmQKLSAgICgoc3lt Ym9scCB0YXJnZXQpIG5pbCkKLQotICAgOzsgSWYgd2Ugd2VyZSByZWRpcmVjdGluZyB0byBh IGZpbGUsIHNhdmUgdGhlIGZpbGUgYW5kIGNsb3NlIHRoZQotICAgOzsgYnVmZmVyLgotICAg KChtYXJrZXJwIHRhcmdldCkKLSAgICAobGV0ICgoYnVmIChtYXJrZXItYnVmZmVyIHRhcmdl dCkpKQotICAgICAgKHdoZW4gYnVmICAgICAgICAgICAgICAgICAgICAgICAgIDsgc29tZWJv ZHkncyBhbHJlYWR5IGtpbGxlZCBpdCEKLQkoc2F2ZS1jdXJyZW50LWJ1ZmZlcgotCSAgKHNl dC1idWZmZXIgYnVmKQotCSAgKHdoZW4gZXNoZWxsLW91dHB1dC1maWxlLWJ1ZmZlcgotCSAg ICAoc2F2ZS1idWZmZXIpCi0JICAgICh3aGVuIChlcSBlc2hlbGwtb3V0cHV0LWZpbGUtYnVm ZmVyIHQpCi0JICAgICAgKG9yIHN0YXR1cyAoc2V0LWJ1ZmZlci1tb2RpZmllZC1wIG5pbCkp Ci0JICAgICAgKGtpbGwtYnVmZmVyIGJ1ZikpKSkpKSkKLQotICAgOzsgSWYgd2UncmUgcmVk aXJlY3RpbmcgdG8gYSBwcm9jZXNzICh2aWEgYSBwaXBlLCBvciBwcm9jZXNzCi0gICA7OyBy ZWRpcmVjdGlvbiksIHNlbmQgaXQgRU9GIHNvIHRoYXQgaXQga25vd3Mgd2UncmUgZmluaXNo ZWQuCi0gICAoKGVzaGVsbC1wcm9jZXNzcCB0YXJnZXQpCi0gICAgOzsgQWNjb3JkaW5nIHRv IFBPU0lYLjEtMjAxNywgc2VjdGlvbiAxMS4xLjksIHdoZW4gY29tbXVuaWNhdGluZwotICAg IDs7IHZpYSB0ZXJtaW5hbCwgc2VuZGluZyBFT0YgY2F1c2VzIGFsbCBieXRlcyB3YWl0aW5n IHRvIGJlIHJlYWQKLSAgICA7OyB0byBiZSBzZW50IHRvIHRoZSBwcm9jZXNzIGltbWVkaWF0 ZWx5LiAgVGh1cywgaWYgdGhlcmUgYXJlIGFueQotICAgIDs7IGJ5dGVzIHdhaXRpbmcsIHdl IG5lZWQgdG8gc2VuZCBFT0YgdHdpY2U6IG9uY2UgdG8gZmx1c2ggdGhlCi0gICAgOzsgYnVm ZmVyLCBhbmQgYSBzZWNvbmQgdGltZSB0byBjYXVzZSB0aGUgbmV4dCByZWFkKCkgdG8gcmV0 dXJuIGEKLSAgICA7OyBzaXplIG9mIDAsIGluZGljYXRpbmcgZW5kLW9mLWZpbGUgdG8gdGhl IHJlYWRpbmcgcHJvY2Vzcy4KLSAgICA7OyBIb3dldmVyLCBzb21lIHBsYXRmb3JtcyAoZS5n LiBTb2xhcmlzKSBhY3R1YWxseSByZXF1aXJlIHNlbmRpbmcKLSAgICA7OyBhICp0aGlyZCog RU9GLiAgU2luY2Ugc2VuZGluZyBleHRyYSBFT0ZzIHdoaWxlIHRoZSBwcm9jZXNzIGlzCi0g ICAgOzsgcnVubmluZyBhcmUgYSBuby1vcCwgd2UnbGwganVzdCBzZW5kIHRoZSBtYXhpbXVt IHdlJ2QgZXZlcgotICAgIDs7IG5lZWQuICBTZWUgYnVnIzU2MDI1IGZvciBmdXJ0aGVyIGRl dGFpbHMuCi0gICAgKGxldCAoKGkgMCkKLSAgICAgICAgICA7OyBPbmx5IGNhbGwgYHByb2Nl c3Mtc2VuZC1lb2YnIG9uY2UgaWYgY29tbXVuaWNhdGluZyB2aWEgYQotICAgICAgICAgIDs7 IHBpcGUgKGluIHRydXRoLCB0aGlzIGp1c3QgY2xvc2VzIHRoZSBwaXBlKS4KLSAgICAgICAg ICAobWF4LWF0dGVtcHRzIChpZiAocHJvY2Vzcy10dHktbmFtZSB0YXJnZXQgJ3N0ZGluKSAz IDEpKSkKLSAgICAgICh3aGlsZSAoYW5kICg8PSAoY2wtaW5jZiBpKSBtYXgtYXR0ZW1wdHMp Ci0gICAgICAgICAgICAgICAgICAoZXEgKHByb2Nlc3Mtc3RhdHVzIHRhcmdldCkgJ3J1bikp Ci0gICAgICAgIChwcm9jZXNzLXNlbmQtZW9mIHRhcmdldCkpKSkKLQotICAgOzsgQSBwbGFp biBmdW5jdGlvbiByZWRpcmVjdGlvbiBuZWVkcyBubyBhZGRpdGlvbmFsIGFyZ3VtZW50cwot ICAgOzsgcGFzc2VkLgotICAgKChmdW5jdGlvbnAgdGFyZ2V0KQotICAgIChmdW5jYWxsIHRh cmdldCBzdGF0dXMpKSkpCi0KIChkZWZ1biBlc2hlbGwta2lsbC1hcHBlbmQgKHN0cmluZykK ICAgIkNhbGwgYGtpbGwtYXBwZW5kJyB3aXRoIFNUUklORywgaWYgaXQgaXMgaW5kZWVkIGEg c3RyaW5nLiIKICAgKGlmIChzdHJpbmdwIHN0cmluZykKQEAgLTQ3OSw1NiArNDM0LDYgQEAg ZXNoZWxsLWNsaXBib2FyZC1hcHBlbmQKICAgICAgIChsZXQgKChzZWxlY3QtZW5hYmxlLWNs aXBib2FyZCB0KSkKIAkoa2lsbC1hcHBlbmQgc3RyaW5nIG5pbCkpKSkKIAotKGRlZnVuIGVz aGVsbC1nZXQtdGFyZ2V0ICh0YXJnZXQgJm9wdGlvbmFsIG1vZGUpCi0gICJDb252ZXJ0IFRB UkdFVCwgd2hpY2ggaXMgYSByYXcgYXJndW1lbnQsIGludG8gYSB2YWxpZCBvdXRwdXQgdGFy Z2V0LgotTU9ERSBpcyBlaXRoZXIgYG92ZXJ3cml0ZScsIGBhcHBlbmQnIG9yIGBpbnNlcnQn OyBpZiBpdCBpcyBvbWl0dGVkIG9yIG5pbCwKLWl0IGRlZmF1bHRzIHRvIGBpbnNlcnQnLiIK LSAgKHNldHEgbW9kZSAob3IgbW9kZSAnaW5zZXJ0KSkKLSAgKGNvbmQKLSAgICgoc3RyaW5n cCB0YXJnZXQpCi0gICAgKGxldCAoKHJlZGlyIChhc3NvYyB0YXJnZXQgZXNoZWxsLXZpcnR1 YWwtdGFyZ2V0cykpKQotICAgICAgKGlmIHJlZGlyCi0JICAoaWYgKG50aCAyIHJlZGlyKQot CSAgICAgIChmdW5jYWxsIChudGggMSByZWRpcikgbW9kZSkKLQkgICAgKG50aCAxIHJlZGly KSkKLQkobGV0KiAoKGV4aXN0cyAoZ2V0LWZpbGUtYnVmZmVyIHRhcmdldCkpCi0JICAgICAg IChidWYgKGZpbmQtZmlsZS1ub3NlbGVjdCB0YXJnZXQgdCkpKQotCSAgKHdpdGgtY3VycmVu dC1idWZmZXIgYnVmCi0JICAgIChpZiBidWZmZXItZmlsZS1yZWFkLW9ubHkKLQkJKGVycm9y ICJDYW5ub3Qgd3JpdGUgdG8gcmVhZC1vbmx5IGZpbGUgYCVzJyIgdGFyZ2V0KSkKLQkgICAg KHNldHEgYnVmZmVyLXJlYWQtb25seSBuaWwpCi0gICAgICAgICAgICAoc2V0cS1sb2NhbCBl c2hlbGwtb3V0cHV0LWZpbGUtYnVmZmVyCi0gICAgICAgICAgICAgICAgICAgICAgICAoaWYg KGVxIGV4aXN0cyBidWYpIDAgdCkpCi0JICAgIChjb25kICgoZXEgbW9kZSAnb3ZlcndyaXRl KQotCQkgICAoZXJhc2UtYnVmZmVyKSkKLQkJICAoKGVxIG1vZGUgJ2FwcGVuZCkKLQkJICAg KGdvdG8tY2hhciAocG9pbnQtbWF4KSkpKQotCSAgICAocG9pbnQtbWFya2VyKSkpKSkpCi0K LQotICAgKChidWZmZXJwIHRhcmdldCkKLSAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciB0YXJn ZXQKLSAgICAgIChjb25kICgoZXEgbW9kZSAnb3ZlcndyaXRlKQotICAgICAgICAgICAgIChl cmFzZS1idWZmZXIpKQotICAgICAgICAgICAgKChlcSBtb2RlICdhcHBlbmQpCi0gICAgICAg ICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkpKQotICAgICAgKHBvaW50LW1hcmtlcikp KQotCi0gICAoKGZ1bmN0aW9ucCB0YXJnZXQpIG5pbCkKLQotICAgKChzeW1ib2xwIHRhcmdl dCkKLSAgICAoaWYgKGVxIG1vZGUgJ292ZXJ3cml0ZSkKLQkoc2V0IHRhcmdldCBuaWwpKQot ICAgIHRhcmdldCkKLQotICAgKChvciAoZXNoZWxsLXByb2Nlc3NwIHRhcmdldCkKLQkobWFy a2VycCB0YXJnZXQpKQotICAgIHRhcmdldCkKLQotICAgKHQKLSAgICAoZXJyb3IgIkludmFs aWQgcmVkaXJlY3Rpb24gdGFyZ2V0OiAlcyIKLQkgICAoZXNoZWxsLXN0cmluZ2lmeSB0YXJn ZXQpKSkpKQotCiAoZGVmdW4gZXNoZWxsLWludGVyYWN0aXZlLW91dHB1dC1wICgmb3B0aW9u YWwgaW5kZXggaGFuZGxlcykKICAgIlJldHVybiBub24tbmlsIGlmIHRoZSBzcGVjaWZpZWQg aGFuZGxlIGlzIGJvdW5kIGZvciBpbnRlcmFjdGl2ZSBkaXNwbGF5LgogSEFORExFUyBpcyB0 aGUgc2V0IG9mIGhhbmRsZXMgdG8gY2hlY2s7IGlmIG5pbCwgdXNlCkBAIC01OTMsNTIgKzQ5 OCwxNjggQEAgZXNoZWxsLXByaW50bgogICAoZXNoZWxsLXByaW50IG9iamVjdCkKICAgKGVz aGVsbC1wcmludCAiXG4iKSkKIAotKGRlZnVuIGVzaGVsbC1vdXRwdXQtb2JqZWN0LXRvLXRh cmdldCAob2JqZWN0IHRhcmdldCkKLSAgIkluc2VydCBPQkpFQ1QgaW50byBUQVJHRVQuCi1S ZXR1cm5zIHdoYXQgd2FzIGFjdHVhbGx5IHNlbnQsIG9yIG5pbCBpZiBub3RoaW5nIHdhcyBz ZW50LiIKLSAgKGNvbmQKLSAgICgoZnVuY3Rpb25wIHRhcmdldCkKLSAgICAoZnVuY2FsbCB0 YXJnZXQgb2JqZWN0KSkKLQotICAgKChzeW1ib2xwIHRhcmdldCkKLSAgICAoaWYgKGVxIHRh cmdldCB0KSAgICAgICAgICAgICAgICAgICA7IG1lYW5zICJwcmludCB0byBkaXNwbGF5Igot CShlc2hlbGwtaW50ZXJhY3RpdmUtcHJpbnQgKGVzaGVsbC1zdHJpbmdpZnkgb2JqZWN0KSkK LSAgICAgIChpZiAobm90IChzeW1ib2wtdmFsdWUgdGFyZ2V0KSkKLQkgIChzZXQgdGFyZ2V0 IG9iamVjdCkKLQkoc2V0cSBvYmplY3QgKGVzaGVsbC1zdHJpbmdpZnkgb2JqZWN0KSkKLQko aWYgKG5vdCAoc3RyaW5ncCAoc3ltYm9sLXZhbHVlIHRhcmdldCkpKQotCSAgICAoc2V0IHRh cmdldCAoZXNoZWxsLXN0cmluZ2lmeQotCQkJIChzeW1ib2wtdmFsdWUgdGFyZ2V0KSkpKQot CShzZXQgdGFyZ2V0IChjb25jYXQgKHN5bWJvbC12YWx1ZSB0YXJnZXQpIG9iamVjdCkpKSkp Ci0KLSAgICgobWFya2VycCB0YXJnZXQpCi0gICAgKGlmIChidWZmZXItbGl2ZS1wIChtYXJr ZXItYnVmZmVyIHRhcmdldCkpCi0JKHdpdGgtY3VycmVudC1idWZmZXIgKG1hcmtlci1idWZm ZXIgdGFyZ2V0KQotCSAgKGxldCAoKG1vdmluZyAoPSAocG9pbnQpIHRhcmdldCkpKQotCSAg ICAoc2F2ZS1leGN1cnNpb24KLQkgICAgICAoZ290by1jaGFyIHRhcmdldCkKLQkgICAgICAo dW5sZXNzIChzdHJpbmdwIG9iamVjdCkKLQkJKHNldHEgb2JqZWN0IChlc2hlbGwtc3RyaW5n aWZ5IG9iamVjdCkpKQotCSAgICAgIChpbnNlcnQtYW5kLWluaGVyaXQgb2JqZWN0KQotCSAg ICAgIChzZXQtbWFya2VyIHRhcmdldCAocG9pbnQtbWFya2VyKSkpCi0JICAgIChpZiBtb3Zp bmcKLQkJKGdvdG8tY2hhciB0YXJnZXQpKSkpKSkKLQotICAgKChlc2hlbGwtcHJvY2Vzc3Ag dGFyZ2V0KQotICAgICh1bmxlc3MgKHN0cmluZ3Agb2JqZWN0KQotICAgICAgKHNldHEgb2Jq ZWN0IChlc2hlbGwtc3RyaW5naWZ5IG9iamVjdCkpKQotICAgIChjb25kaXRpb24tY2FzZSBl cnIKLSAgICAgICAgKHByb2Nlc3Mtc2VuZC1zdHJpbmcgdGFyZ2V0IG9iamVjdCkKLSAgICAg IChlcnJvcgotICAgICAgIDs7IElmIGBwcm9jZXNzLXNlbmQtc3RyaW5nJyByYWlzZXMgYW4g ZXJyb3IgYW5kIHRoZSBwcm9jZXNzIGhhcwotICAgICAgIDs7IGZpbmlzaGVkLCB0cmVhdCBp dCBhcyBhIGJyb2tlbiBwaXBlLiAgT3RoZXJ3aXNlLCBqdXN0Ci0gICAgICAgOzsgcmUtdGhy b3cgdGhlIHNpZ25hbC4KLSAgICAgICAoaWYgKG1lbXEgKHByb2Nlc3Mtc3RhdHVzIHRhcmdl dCkKLQkJICcocnVuIHN0b3Agb3BlbiBjbG9zZWQpKQotICAgICAgICAgICAoc2lnbmFsIChj YXIgZXJyKSAoY2RyIGVycikpCi0gICAgICAgICAoc2lnbmFsICdlc2hlbGwtcGlwZS1icm9r ZW4gKGxpc3QgdGFyZ2V0KSkpKSkpKQorKGNsLWRlZnN0cnVjdCAoZXNoZWxsLXZpcnR1YWwt dGFyZ2V0CisgICAgICAgICAgICAgICAoOmNvbnN0cnVjdG9yIGVzaGVsbC12aXJ0dWFsLXRh cmdldC1jcmVhdGUgKG91dHB1dC1mdW5jdGlvbikpKQorICAiQSB2aXJ0dWFsIHRhcmdldCAo c2VlIGBlc2hlbGwtdmlydHVhbC10YXJnZXRzJykuIgorICBvdXRwdXQtZnVuY3Rpb24pCisK KyhjbC1kZWZnZW5lcmljIGVzaGVsbC1nZXQtdGFyZ2V0IChyYXctdGFyZ2V0ICZvcHRpb25h bCBfbW9kZSkKKyAgIkNvbnZlcnQgUkFXLVRBUkdFVCwgd2hpY2ggaXMgYSByYXcgYXJndW1l bnQsIGludG8gYSB2YWxpZCBvdXRwdXQgdGFyZ2V0LgorTU9ERSBpcyBlaXRoZXIgYG92ZXJ3 cml0ZScsIGBhcHBlbmQnIG9yIGBpbnNlcnQnOyBpZiBpdCBpcyBvbWl0dGVkIG9yIG5pbCwK K2l0IGRlZmF1bHRzIHRvIGBpbnNlcnQnLiIKKyAgKGVycm9yICJJbnZhbGlkIHJlZGlyZWN0 aW9uIHRhcmdldDogJXMiIChlc2hlbGwtc3RyaW5naWZ5IHJhdy10YXJnZXQpKSkKKworKGNs LWRlZm1ldGhvZCBlc2hlbGwtZ2V0LXRhcmdldCAoKHJhdy10YXJnZXQgc3RyaW5nKSAmb3B0 aW9uYWwgbW9kZSkKKyAgIkNvbnZlcnQgYSBzdHJpbmcgUkFXLVRBUkdFVCBpbnRvIGEgdmFs aWQgb3V0cHV0IHRhcmdldCB1c2luZyBNT0RFLgorSWYgVEFSR0VUIGlzIGEgdmlydHVhbCB0 YXJnZXQgKHNlZSBgZXNoZWxsLXZpcnR1YWwtdGFyZ2V0cycpLAorcmV0dXJuIGFuIGBlc2hl bGwtdmlydHVhbC10YXJnZXQnIGluc3RhbmNlOyBvdGhlcndpc2UsIHJldHVybiBhCittYXJr ZXIgZm9yIGEgZmlsZSBuYW1lZCBUQVJHRVQuIgorICAoc2V0cSBtb2RlIChvciBtb2RlICdp bnNlcnQpKQorICAoaWYtbGV0ICgocmVkaXIgKGFzc29jIHJhdy10YXJnZXQgZXNoZWxsLXZp cnR1YWwtdGFyZ2V0cykpKQorICAgICAgKGVzaGVsbC12aXJ0dWFsLXRhcmdldC1jcmVhdGUK KyAgICAgICAoaWYgKG50aCAyIHJlZGlyKQorICAgICAgICAgICAoZnVuY2FsbCAobnRoIDEg cmVkaXIpIG1vZGUpCisgICAgICAgICAobnRoIDEgcmVkaXIpKSkKKyAgICAobGV0ICgoZXhp c3RzIChnZXQtZmlsZS1idWZmZXIgcmF3LXRhcmdldCkpCisgICAgICAgICAgKGJ1ZiAoZmlu ZC1maWxlLW5vc2VsZWN0IHJhdy10YXJnZXQgdCkpKQorICAgICAgKHdpdGgtY3VycmVudC1i dWZmZXIgYnVmCisgICAgICAgICh3aGVuIGJ1ZmZlci1maWxlLXJlYWQtb25seQorICAgICAg ICAgIChlcnJvciAiQ2Fubm90IHdyaXRlIHRvIHJlYWQtb25seSBmaWxlIGAlcyciIHJhdy10 YXJnZXQpKQorICAgICAgICAgIChzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgbmlsKQorICAgICAg ICAgIChzZXRxLWxvY2FsIGVzaGVsbC1vdXRwdXQtZmlsZS1idWZmZXIKKyAgICAgICAgICAg ICAgICAgICAgICAoaWYgKGVxIGV4aXN0cyBidWYpIDAgdCkpCisgICAgICAgICAgKGNvbmQg KChlcSBtb2RlICdvdmVyd3JpdGUpCisgICAgICAgICAgICAgICAgIChlcmFzZS1idWZmZXIp KQorICAgICAgICAgICAgICAgICgoZXEgbW9kZSAnYXBwZW5kKQorICAgICAgICAgICAgICAg ICAoZ290by1jaGFyIChwb2ludC1tYXgpKSkpCisgICAgICAgICAgKHBvaW50LW1hcmtlcikp KSkpCisKKyhjbC1kZWZtZXRob2QgZXNoZWxsLWdldC10YXJnZXQgKChyYXctdGFyZ2V0IGJ1 ZmZlcikgJm9wdGlvbmFsIG1vZGUpCisgICJDb252ZXJ0IGEgYnVmZmVyIFJBVy1UQVJHRVQg aW50byBhIHZhbGlkIG91dHB1dCB0YXJnZXQgdXNpbmcgTU9ERS4KK1RoaXMgcmV0dXJucyBh IG1hcmtlciBmb3IgdGhhdCBidWZmZXIuIgorICAod2l0aC1jdXJyZW50LWJ1ZmZlciByYXct dGFyZ2V0CisgICAgKGNvbmQgKChlcSBtb2RlICdvdmVyd3JpdGUpCisgICAgICAgICAgIChl cmFzZS1idWZmZXIpKQorICAgICAgICAgICgoZXEgbW9kZSAnYXBwZW5kKQorICAgICAgICAg ICAoZ290by1jaGFyIChwb2ludC1tYXgpKSkpCisgICAgKHBvaW50LW1hcmtlcikpKQorCiso Y2wtZGVmbWV0aG9kIGVzaGVsbC1nZXQtdGFyZ2V0ICgocmF3LXRhcmdldCBzeW1ib2wpICZv cHRpb25hbCBtb2RlKQorICAiQ29udmVydCBhIHJhdyBzeW1ib2wgUkFXLVRBUkdFVCBpbnRv IGEgdmFsaWQgb3V0cHV0IHRhcmdldCB1c2luZyBNT0RFLgorVGhpcyByZXR1cm5zIFJBVy1U QVJHRVQsIHdpdGggaXRzIHZhbHVlIGluaXRpYWxpemVkIHRvIG5pbCBpZiBNT0RFIGlzCitg b3ZlcndyaXRlJy4iCisgICh3aGVuIChlcSBtb2RlICdvdmVyd3JpdGUpCisgICAgKHNldCBy YXctdGFyZ2V0IG5pbCkpCisgIHJhdy10YXJnZXQpCisKKyhjbC1kZWZtZXRob2QgZXNoZWxs LWdldC10YXJnZXQgKChyYXctdGFyZ2V0IHByb2Nlc3MpICZvcHRpb25hbCBfbW9kZSkKKyAg IkNvbnZlcnQgYSByYXcgcHJvY2VzcyBSQVctVEFSR0VUIGludG8gYSB2YWxpZCBvdXRwdXQg dGFyZ2V0LgorVGhpcyBqdXN0IHJldHVybnMgUkFXLVRBUkdFVC4iCisgIHJhdy10YXJnZXQp CisKKyhjbC1kZWZtZXRob2QgZXNoZWxsLWdldC10YXJnZXQgKChyYXctdGFyZ2V0IG1hcmtl cikgJm9wdGlvbmFsIF9tb2RlKQorICAiQ29udmVydCBhIHJhdyBwcm9jZXNzIFJBVy1UQVJH RVQgaW50byBhIHZhbGlkIG91dHB1dCB0YXJnZXQuCitUaGlzIGp1c3QgcmV0dXJucyBSQVct VEFSR0VULiIKKyAgcmF3LXRhcmdldCkKKworKGNsLWRlZmdlbmVyaWMgZXNoZWxsLWNsb3Nl LXRhcmdldCAodGFyZ2V0IHN0YXR1cykKKyAgIkNsb3NlIGFuIG91dHB1dCBUQVJHRVQsIHBh c3NpbmcgU1RBVFVTIGFzIHRoZSByZXN1bHQuCitTVEFUVVMgc2hvdWxkIGJlIG5vbi1uaWwg b24gc3VjY2Vzc2Z1bCB0ZXJtaW5hdGlvbiBvZiB0aGUgb3V0cHV0LiIpCisKKyhjbC1kZWZt ZXRob2QgZXNoZWxsLWNsb3NlLXRhcmdldCAoKF90YXJnZXQgc3ltYm9sKSBfc3RhdHVzKQor ICAiQ2xvc2UgYSBzeW1ib2wgVEFSR0VULiIKKyAgbmlsKQorCisoY2wtZGVmbWV0aG9kIGVz aGVsbC1jbG9zZS10YXJnZXQgKCh0YXJnZXQgbWFya2VyKSBzdGF0dXMpCisgICJDbG9zZSBh IG1hcmtlciBUQVJHRVQuCitJZiBUQVJHRVQgd2FzIGNyZWF0ZWQgZnJvbSBhIGZpbGUgbmFt ZSwgc2F2ZSBhbmQga2lsbCB0aGUgYnVmZmVyLgorSWYgc3RhdHVzIGlzIG5pbCwgcHJvbXB0 IGJlZm9yZSBraWxsaW5nLiIKKyAgKHdoZW4gKGJ1ZmZlci1saXZlLXAgKG1hcmtlci1idWZm ZXIgdGFyZ2V0KSkKKyAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAobWFya2VyLWJ1ZmZlciB0 YXJnZXQpCisgICAgICAod2hlbiBlc2hlbGwtb3V0cHV0LWZpbGUtYnVmZmVyCisgICAgICAg IChzYXZlLWJ1ZmZlcikKKyAgICAgICAgKHdoZW4gKGVxIGVzaGVsbC1vdXRwdXQtZmlsZS1i dWZmZXIgdCkKKyAgICAgICAgICAob3Igc3RhdHVzIChzZXQtYnVmZmVyLW1vZGlmaWVkLXAg bmlsKSkKKyAgICAgICAgICAoa2lsbC1idWZmZXIpKSkpKSkKKworKGNsLWRlZm1ldGhvZCBl c2hlbGwtY2xvc2UtdGFyZ2V0ICgodGFyZ2V0IHByb2Nlc3MpIF9zdGF0dXMpCisgICJDbG9z ZSBhIHByb2Nlc3MgVEFSR0VULiIKKyAgOzsgQWNjb3JkaW5nIHRvIFBPU0lYLjEtMjAxNywg c2VjdGlvbiAxMS4xLjksIHdoZW4gY29tbXVuaWNhdGluZyB2aWEKKyAgOzsgdGVybWluYWws IHNlbmRpbmcgRU9GIGNhdXNlcyBhbGwgYnl0ZXMgd2FpdGluZyB0byBiZSByZWFkIHRvIGJl CisgIDs7IHNlbnQgdG8gdGhlIHByb2Nlc3MgaW1tZWRpYXRlbHkuICBUaHVzLCBpZiB0aGVy ZSBhcmUgYW55IGJ5dGVzCisgIDs7IHdhaXRpbmcsIHdlIG5lZWQgdG8gc2VuZCBFT0YgdHdp Y2U6IG9uY2UgdG8gZmx1c2ggdGhlIGJ1ZmZlciwgYW5kCisgIDs7IGEgc2Vjb25kIHRpbWUg dG8gY2F1c2UgdGhlIG5leHQgcmVhZCgpIHRvIHJldHVybiBhIHNpemUgb2YgMCwKKyAgOzsg aW5kaWNhdGluZyBlbmQtb2YtZmlsZSB0byB0aGUgcmVhZGluZyBwcm9jZXNzLiAgSG93ZXZl ciwgc29tZQorICA7OyBwbGF0Zm9ybXMgKGUuZy4gU29sYXJpcykgYWN0dWFsbHkgcmVxdWly ZSBzZW5kaW5nIGEgKnRoaXJkKiBFT0YuCisgIDs7IFNpbmNlIHNlbmRpbmcgZXh0cmEgRU9G cyB0byBhIHJ1bm5pbmcgcHJvY2VzcyBpcyBhIG5vLW9wLCB3ZSdsbAorICA7OyBqdXN0IHNl bmQgdGhlIG1heGltdW0gd2UnZCBldmVyIG5lZWQuICBTZWUgYnVnIzU2MDI1IGZvciBmdXJ0 aGVyCisgIDs7IGRldGFpbHMuCisgIChjYXRjaCAnZG9uZQorICAgIChkb3RpbWVzIChfIChp ZiAocHJvY2Vzcy10dHktbmFtZSB0YXJnZXQgJ3N0ZGluKSAzIDEpKQorICAgICAgKHVubGVz cyAoZXEgKHByb2Nlc3Mtc3RhdHVzIHRhcmdldCkgJ3J1bikKKyAgICAgICAgKHRocm93ICdk b25lIG5pbCkpCisgICAgICAocHJvY2Vzcy1zZW5kLWVvZiB0YXJnZXQpKSkpCisKKyhjbC1k ZWZtZXRob2QgZXNoZWxsLWNsb3NlLXRhcmdldCAoKF90YXJnZXQgZXNoZWxsLXZpcnR1YWwt dGFyZ2V0KSBfc3RhdHVzKQorICAiQ2xvc2UgYSB2aXJ0dWFsIFRBUkdFVC4iCisgIG5pbCkK KworKGNsLWRlZmdlbmVyaWMgZXNoZWxsLW91dHB1dC1vYmplY3QtdG8tdGFyZ2V0IChvYmpl Y3QgdGFyZ2V0KQorICAiT3V0cHV0IE9CSkVDVCB0byBUQVJHRVQuCitSZXR1cm5zIHdoYXQg d2FzIGFjdHVhbGx5IHNlbnQsIG9yIG5pbCBpZiBub3RoaW5nIHdhcyBzZW50LiIpCisKKyhj bC1kZWZtZXRob2QgZXNoZWxsLW91dHB1dC1vYmplY3QtdG8tdGFyZ2V0IChvYmplY3QgKF90 YXJnZXQgKGVxbCB0KSkpCisgICJPdXRwdXQgT0JKRUNUIHRvIHRoZSBkaXNwbGF5LiIKKyAg KHNldHEgb2JqZWN0IChlc2hlbGwtc3RyaW5naWZ5IG9iamVjdCkpCisgIChlc2hlbGwtaW50 ZXJhY3RpdmUtcHJpbnQgb2JqZWN0KSkKKworKGNsLWRlZm1ldGhvZCBlc2hlbGwtb3V0cHV0 LW9iamVjdC10by10YXJnZXQgKG9iamVjdCAodGFyZ2V0IHN5bWJvbCkpCisgICJPdXRwdXQg T0JKRUNUIHRvIHRoZSB2YWx1ZSBvZiB0aGUgc3ltYm9sIFRBUkdFVC4iCisgIChpZiAobm90 IChzeW1ib2wtdmFsdWUgdGFyZ2V0KSkKKyAgICAgIChzZXQgdGFyZ2V0IG9iamVjdCkKKyAg ICAoc2V0cSBvYmplY3QgKGVzaGVsbC1zdHJpbmdpZnkgb2JqZWN0KSkKKyAgICAoaWYgKG5v dCAoc3RyaW5ncCAoc3ltYm9sLXZhbHVlIHRhcmdldCkpKQorICAgICAgICAoc2V0IHRhcmdl dCAoZXNoZWxsLXN0cmluZ2lmeQorICAgICAgICAgICAgICAgICAgICAgKHN5bWJvbC12YWx1 ZSB0YXJnZXQpKSkpCisgICAgKHNldCB0YXJnZXQgKGNvbmNhdCAoc3ltYm9sLXZhbHVlIHRh cmdldCkgb2JqZWN0KSkpCisgIG9iamVjdCkKKworKGNsLWRlZm1ldGhvZCBlc2hlbGwtb3V0 cHV0LW9iamVjdC10by10YXJnZXQgKG9iamVjdCAodGFyZ2V0IG1hcmtlcikpCisgICJPdXRw dXQgT0JKRUNUIHRvIHRoZSBtYXJrZXIgVEFSR0VULiIKKyAgKHdoZW4gKGJ1ZmZlci1saXZl LXAgKG1hcmtlci1idWZmZXIgdGFyZ2V0KSkKKyAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAo bWFya2VyLWJ1ZmZlciB0YXJnZXQpCisgICAgICAobGV0ICgobW92aW5nICg9IChwb2ludCkg dGFyZ2V0KSkpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgIChnb3RvLWNo YXIgdGFyZ2V0KQorICAgICAgICAgICh1bmxlc3MgKHN0cmluZ3Agb2JqZWN0KQorICAgICAg ICAgICAgKHNldHEgb2JqZWN0IChlc2hlbGwtc3RyaW5naWZ5IG9iamVjdCkpKQorICAgICAg ICAgIChpbnNlcnQtYW5kLWluaGVyaXQgb2JqZWN0KQorICAgICAgICAgIChzZXQtbWFya2Vy IHRhcmdldCAocG9pbnQtbWFya2VyKSkpCisgICAgICAgICh3aGVuIG1vdmluZworICAgICAg ICAgIChnb3RvLWNoYXIgdGFyZ2V0KSkpKSkKKyAgb2JqZWN0KQorCisoY2wtZGVmbWV0aG9k IGVzaGVsbC1vdXRwdXQtb2JqZWN0LXRvLXRhcmdldCAob2JqZWN0ICh0YXJnZXQgcHJvY2Vz cykpCisgICJPdXRwdXQgT0JKRUNUIHRvIHRoZSBwcm9jZXNzIFRBUkdFVC4iCisgICh1bmxl c3MgKHN0cmluZ3Agb2JqZWN0KQorICAgIChzZXRxIG9iamVjdCAoZXNoZWxsLXN0cmluZ2lm eSBvYmplY3QpKSkKKyAgKGNvbmRpdGlvbi1jYXNlIGVycgorICAgICAgKHByb2Nlc3Mtc2Vu ZC1zdHJpbmcgdGFyZ2V0IG9iamVjdCkKKyAgICAoZXJyb3IKKyAgICAgOzsgSWYgYHByb2Nl c3Mtc2VuZC1zdHJpbmcnIHJhaXNlcyBhbiBlcnJvciBhbmQgdGhlIHByb2Nlc3MgaGFzCisg ICAgIDs7IGZpbmlzaGVkLCB0cmVhdCBpdCBhcyBhIGJyb2tlbiBwaXBlLiAgT3RoZXJ3aXNl LCBqdXN0CisgICAgIDs7IHJlLXRocm93IHRoZSBzaWduYWwuCisgICAgIChpZiAobWVtcSAo cHJvY2Vzcy1zdGF0dXMgdGFyZ2V0KQorICAgICAgICAgICAgICAgJyhydW4gc3RvcCBvcGVu IGNsb3NlZCkpCisgICAgICAgICAoc2lnbmFsIChjYXIgZXJyKSAoY2RyIGVycikpCisgICAg ICAgKHNpZ25hbCAnZXNoZWxsLXBpcGUtYnJva2VuIChsaXN0IHRhcmdldCkpKSkpCiAgIG9i amVjdCkKIAorKGNsLWRlZm1ldGhvZCBlc2hlbGwtb3V0cHV0LW9iamVjdC10by10YXJnZXQg KG9iamVjdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICh0YXJnZXQgZXNoZWxsLXZpcnR1YWwtdGFyZ2V0KSkKKyAgIk91dHB1dCBPQkpFQ1QgdG8g dGhlIHZpcnR1YWwgVEFSR0VULiIKKyAgKGZ1bmNhbGwgKGVzaGVsbC12aXJ0dWFsLXRhcmdl dC1vdXRwdXQtZnVuY3Rpb24gdGFyZ2V0KSBvYmplY3QpKQorCiAoZGVmdW4gZXNoZWxsLW91 dHB1dC1vYmplY3QgKG9iamVjdCAmb3B0aW9uYWwgaGFuZGxlLWluZGV4IGhhbmRsZXMpCiAg ICJJbnNlcnQgT0JKRUNULCB1c2luZyBIQU5ETEUtSU5ERVggc3BlY2lmaWNhbGx5LgogSWYg SEFORExFLUlOREVYIGlzIG5pbCwgb3V0cHV0IHRvIGBlc2hlbGwtb3V0cHV0LWhhbmRsZScu CmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZXNoZWxsL2VzaC1pby10ZXN0cy5lbCBiL3Rlc3Qv bGlzcC9lc2hlbGwvZXNoLWlvLXRlc3RzLmVsCmluZGV4IGVkMzUwYTk2OTFjLi5jZTgwZjNh OGYwOCAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2VzaGVsbC9lc2gtaW8tdGVzdHMuZWwKKysr IGIvdGVzdC9saXNwL2VzaGVsbC9lc2gtaW8tdGVzdHMuZWwKQEAgLTMxLDYgKzMxLDkgQEAK IAogKGRlZnZhciBlc2hlbGwtdGVzdC12YWx1ZSBuaWwpCiAKKyhkZWZ2YXIgZXNoZWxsLXRl c3QtdmFsdWUtd2l0aC1mdW4gbmlsKQorKGRlZnVuIGVzaGVsbC10ZXN0LXZhbHVlLXdpdGgt ZnVuICgpKQorCiAoZGVmdW4gZXNoZWxsLXRlc3QtZmlsZS1zdHJpbmcgKGZpbGUpCiAgICJS ZXR1cm4gdGhlIGNvbnRlbnRzIG9mIEZJTEUgYXMgYSBzdHJpbmcuIgogICAod2l0aC10ZW1w LWJ1ZmZlcgpAQCAtMTE3LDYgKzEyMCwxMyBAQCBlc2gtaW8tdGVzdC9yZWRpcmVjdC1zeW1i b2wvYXBwZW5kCiAgICAgIChlc2hlbGwtaW5zZXJ0LWNvbW1hbmQgImVjaG8gbmV3ID4+ICMn ZXNoZWxsLXRlc3QtdmFsdWUiKSkKICAgICAoc2hvdWxkIChlcXVhbCBlc2hlbGwtdGVzdC12 YWx1ZSAib2xkbmV3IikpKSkKIAorKGVydC1kZWZ0ZXN0IGVzaC1pby10ZXN0L3JlZGlyZWN0 LXN5bWJvbC93aXRoLWZ1bmN0aW9uLXNsb3QgKCkKKyAgIkNoZWNrIHRoYXQgcmVkaXJlY3Rp bmcgdG8gYSBzeW1ib2wgd2l0aCBmdW5jdGlvbiBzbG90IHNldCB3b3Jrcy4iCisgIChsZXQg KChlc2hlbGwtdGVzdC12YWx1ZS13aXRoLWZ1bikpCisgICAgKHdpdGgtdGVtcC1lc2hlbGwK KyAgICAgKGVzaGVsbC1pbnNlcnQtY29tbWFuZCAiZWNobyBoaSA+ICMnZXNoZWxsLXRlc3Qt dmFsdWUtd2l0aC1mdW4iKSkKKyAgICAoc2hvdWxkIChlcXVhbCBlc2hlbGwtdGVzdC12YWx1 ZS13aXRoLWZ1biAiaGkiKSkpKQorCiAoZXJ0LWRlZnRlc3QgZXNoLWlvLXRlc3QvcmVkaXJl Y3QtbWFya2VyICgpCiAgICJDaGVjayB0aGF0IHJlZGlyZWN0aW5nIHRvIGEgbWFya2VyIHdv cmtzLiIKICAgKHdpdGgtdGVtcC1idWZmZXIKLS0gCjIuMjUuMQoK --------------tO0QUvWQHEJ92P9RiMRSrewB-- From unknown Mon Jun 23 04:14:25 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Jim Porter Subject: bug#65374: closed (Re: bug#65374: 30.0.50 [PATCH]; Allow extending Eshell output targets) Message-ID: References: <39e614a6-6b14-5549-84de-6d49f15a7ae7@gmail.com> <0e112183-47fc-d94b-761b-3ddd2c2238fc@gmail.com> X-Gnu-PR-Message: they-closed 65374 X-Gnu-PR-Package: emacs X-Gnu-PR-Keywords: patch Reply-To: 65374@debbugs.gnu.org Date: Mon, 21 Aug 2023 18:48:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1692643682-32730-1" This is a multi-part message in MIME format... ------------=_1692643682-32730-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #65374: 30.0.50 [PATCH]; Allow extending Eshell output targets which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 65374@debbugs.gnu.org. --=20 65374: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D65374 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1692643682-32730-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 65374-done) by debbugs.gnu.org; 21 Aug 2023 18:47:57 +0000 Received: from localhost ([127.0.0.1]:57819 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qY9wT-0008Ux-Ba for submit@debbugs.gnu.org; Mon, 21 Aug 2023 14:47:57 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]:52442) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qY9wR-0008UD-Jm for 65374-done@debbugs.gnu.org; Mon, 21 Aug 2023 14:47:56 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-1bdc19b782aso22613095ad.0 for <65374-done@debbugs.gnu.org>; Mon, 21 Aug 2023 11:47:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692643667; x=1693248467; h=content-transfer-encoding:in-reply-to:references:to:from :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=sbwATeaTfkwL6ekimxDZ2y+8LwA40a24WT7jmVlW1zg=; b=dKmeyDzL4Pb2zC50kXwTlm0Hx986zPVzun0/gfN5sG7eSdn7EbntEdngHqiTIb0jdd ojhAzuAibbTbAQa6/gd3WZh/nWx+mLqBSCnCtenHdVhMjTcYZYeZbNA6zfqggQxGRHIK qBZWQq31SvlkWljwiBolbF+kCRkPQLG/SlaSV8233g/WAlvMAWP4pGh/q6B888nd5bsp 3f38/wDad/EQcDfE/JdS8s5uAPuAXudugixgzRcyywSBxfqGoKCwRBvLNa7L8oqmgTzC OYTZ5rKNGmtWXGXsEJbg3hqK9E7ABh5KGZCpAeuD5tfjMm63rPU7XaApoEymoHALtOJt QNbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692643667; x=1693248467; h=content-transfer-encoding:in-reply-to:references:to:from :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=sbwATeaTfkwL6ekimxDZ2y+8LwA40a24WT7jmVlW1zg=; b=eRaPfysDY/o4VCAbLJ0SDI2cthpQ2SIFUmCsau6MetyKqAO9wIUrd9Ann+kvNfJEVm Xao8RWMJt778oXN+IArU5A0mvafLWIWl1LaiQvkblC7S7tP6Hv1WqGXn7G/HlcqiYGzI PTCoX5w8Z+WGPZMIdjXBizfd20w9Tkj4Xkxh7M8FWUeO3U91BIhQXDEk1T0Eq/FbzxRB L9krvcKxneJ3+0h4uwr+kEOI5s7xMva06nEICm0N0v4fmRDiha/s89dNE5vh/dUyNYpR Ym6/tU7zwJ6C00rCzAnp9n7GCgObWVnwq4q2cG5xcG7b2pWmURsMeAm0eYPLUhl3pgPz jypw== X-Gm-Message-State: AOJu0YxGKA8QMm0bJvwxPtMX1csCql+Y0k5dyzFpj/s/OdFBPXo+rQmy C65n/h9pmqfx+3ymSv3uwih7xAEyFq4= X-Google-Smtp-Source: AGHT+IFdFCqGzW9KD/+VY3qrVQH9etkVlga1vYi7qg0K1HB2+NHzIlOu/RveEHVgHttVIeJk7Gi5HA== X-Received: by 2002:a17:903:1c4:b0:1b9:e8a5:3699 with SMTP id e4-20020a17090301c400b001b9e8a53699mr5314034plh.21.1692643667406; Mon, 21 Aug 2023 11:47:47 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id c11-20020a170902724b00b001b246dcffb7sm7277696pll.300.2023.08.21.11.47.46 for <65374-done@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 21 Aug 2023 11:47:47 -0700 (PDT) Message-ID: <39e614a6-6b14-5549-84de-6d49f15a7ae7@gmail.com> Date: Mon, 21 Aug 2023 11:47:46 -0700 MIME-Version: 1.0 Subject: Re: bug#65374: 30.0.50 [PATCH]; Allow extending Eshell output targets Content-Language: en-US From: Jim Porter To: 65374-done@debbugs.gnu.org References: <0e112183-47fc-d94b-761b-3ddd2c2238fc@gmail.com> In-Reply-To: <0e112183-47fc-d94b-761b-3ddd2c2238fc@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 65374-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 8/18/2023 5:48 PM, Jim Porter wrote: > The attached patches split up the Eshell I/O target code so that each > target type is its own method. Aside from fixing a couple tiny bugs, > this should be exactly the same as before, but will make it easier to > add new target types in the future (and for third-parties to be able to > do this!). Merged to master as dc0839de9b3 and closing this bug now. ------------=_1692643682-32730-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 19 Aug 2023 00:49:11 +0000 Received: from localhost ([127.0.0.1]:49048 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qXA9O-0005C9-9u for submit@debbugs.gnu.org; Fri, 18 Aug 2023 20:49:11 -0400 Received: from lists.gnu.org ([2001:470:142::17]:41752) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qXA9L-0005Bw-Od for submit@debbugs.gnu.org; Fri, 18 Aug 2023 20:49:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qXA9F-0006yZ-Hv for bug-gnu-emacs@gnu.org; Fri, 18 Aug 2023 20:49:01 -0400 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qXA9C-00043K-9R for bug-gnu-emacs@gnu.org; Fri, 18 Aug 2023 20:49:01 -0400 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-1bdbbede5d4so12247935ad.2 for ; Fri, 18 Aug 2023 17:48:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692406136; x=1693010936; h=subject:from:to:content-language:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=pzyvBMaE4lz0z2/XGwlHg1ZoPZQRpSK1N505rv13jtc=; b=hB7lT1hwyo/FgRn7aZ1MdzP1aK4J8xh3WJVpeoVbyRSaemwaP54Jd7Ih/ul0IHJUNc E1kZVBaWkswu90w+Q8Rt9NyZfUh559xAovkgA8aah4wt/gQ5X39cG++YRw3BpbCsIQCs O8OJu/OAaAA0/jliF31AjKFLDuy59lbupZKx6dgzlOTsHw2ycLQUe46a3m+wWR5tLbVg 9+4WsCwnU8Ke2nxIEX//vOcsEtAvt9M64HMSrKG0Wbyq2AmqnakE3v06P8WZBMpn6yOB MAOEMIlUwI8+6OjUkBhGP0FaO/GIUFX9/vnHcBZSs09t5xL3FV18gOQ9teaNGa2HmXwY 8V+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692406136; x=1693010936; h=subject:from:to:content-language:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=pzyvBMaE4lz0z2/XGwlHg1ZoPZQRpSK1N505rv13jtc=; b=NnX0QSGKk2kKwBCoUNKuStgdVt7foKXbV+NF+4PplrInn119JLqmaCBSJZFLEYedEy HoEnndxtmAlo3rMYZkPNhXD6M+rDZnTgBao4s05doYJccedyKqo/kL93DchTFo1dOsLE qdo4Sxi4Z2AAm6WdAuhWCS7yzyWgyacH1Dk2FmUZCFfGFIYBHnfqaNOLz5d/y59FMU+l 1TAAz7V15bbtawoWgvbxA+sZUtCDfDoER20a6+V6G8vnSBLrdBNy9/UvplC+Pr+0rI6T XSR2j9LfXX+YpCck0ldDbFCg20BBB5hE/bIVOpKs7IMwAHBBBxpPUrTIeBxxgDiPo3WC QFJQ== X-Gm-Message-State: AOJu0YzDM9UCpqaKceX2eIjfTAR9lpzfMDUJdDyhq74NBfhFNpdIpRin 2d5Ob9IlPP9/VbQBqKA5+3rIlPSkEzk= X-Google-Smtp-Source: AGHT+IEJ3nIwIK3Y4InytyVTGbXTRgSS+9x/i9kQQtmz7kDSQDggAOPNVevmKesUmpoFq9s3EZeGag== X-Received: by 2002:a17:902:9a05:b0:1bf:4582:90d with SMTP id v5-20020a1709029a0500b001bf4582090dmr701906plp.46.1692406136366; Fri, 18 Aug 2023 17:48:56 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id n2-20020a170902d2c200b001993a1fce7bsm2362437plc.196.2023.08.18.17.48.55 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 18 Aug 2023 17:48:55 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------tO0QUvWQHEJ92P9RiMRSrewB" Message-ID: <0e112183-47fc-d94b-761b-3ddd2c2238fc@gmail.com> Date: Fri, 18 Aug 2023 17:48:55 -0700 MIME-Version: 1.0 X-Mozilla-News-Host: news://news.gmane.io:119 Content-Language: en-US To: bug-gnu-emacs@gnu.org From: Jim Porter Subject: 30.0.50 [PATCH]; Allow extending Eshell output targets Received-SPF: pass client-ip=2607:f8b0:4864:20::62f; envelope-from=jporterbugs@gmail.com; helo=mail-pl1-x62f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) This is a multi-part message in MIME format. --------------tO0QUvWQHEJ92P9RiMRSrewB Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit The attached patches split up the Eshell I/O target code so that each target type is its own method. Aside from fixing a couple tiny bugs, this should be exactly the same as before, but will make it easier to add new target types in the future (and for third-parties to be able to do this!). This won't have any major impact just yet, but it's a very helpful precursor to a larger project I'm working on to pipe output in Eshell into Lisp functions (currently, Lisp functions - including Eshell builtins - can only be the first command in a pipeline). --------------tO0QUvWQHEJ92P9RiMRSrewB Content-Type: text/plain; charset=UTF-8; name="0001-Remove-unused-Eshell-target-type.patch" Content-Disposition: attachment; filename="0001-Remove-unused-Eshell-target-type.patch" Content-Transfer-Encoding: base64 RnJvbSBjMmVmM2MyYTIzMWI1NWZkMzQyN2YzN2M4ZjkyMmJhZTNmNzgwMzcyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTEgTWFyIDIwMjMgMTU6Mzc6MzggLTA4MDAKU3ViamVjdDogW1BB VENIIDEvM10gOyBSZW1vdmUgdW51c2VkIEVzaGVsbCB0YXJnZXQgdHlwZQoKRXNoZWxsIGNy ZWF0ZXMgYWxsIG91dHB1dCB0YXJnZXRzIGluICdlc2hlbGwtZ2V0LXRhcmdldCcsIGFuZCB0 aGF0CmZ1bmN0aW9uIG5ldmVyIHJldHVybnMgYSBjb25zIGNlbGwuCgoqIGxpc3AvZXNoZWxs L2VzaC1pby5lbCAoZXNoZWxsLWNsb3NlLXRhcmdldCkKKGVzaGVsbC1vdXRwdXQtb2JqZWN0 LXRvLXRhcmdldCk6IFJlbW92ZSAnY29uc3AnIGNvbmRpdGlvbi4KLS0tCiBsaXNwL2VzaGVs bC9lc2gtaW8uZWwgfCAxMyArKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL2VzaGVsbC9l c2gtaW8uZWwgYi9saXNwL2VzaGVsbC9lc2gtaW8uZWwKaW5kZXggY2NjZGI0OWNlMmEuLjFl YzRmOTE4MjgyIDEwMDY0NAotLS0gYS9saXNwL2VzaGVsbC9lc2gtaW8uZWwKKysrIGIvbGlz cC9lc2hlbGwvZXNoLWlvLmVsCkBAIC00NjYsMTMgKzQ2Niw3IEBAIGVzaGVsbC1jbG9zZS10 YXJnZXQKICAgIDs7IEEgcGxhaW4gZnVuY3Rpb24gcmVkaXJlY3Rpb24gbmVlZHMgbm8gYWRk aXRpb25hbCBhcmd1bWVudHMKICAgIDs7IHBhc3NlZC4KICAgICgoZnVuY3Rpb25wIHRhcmdl dCkKLSAgICAoZnVuY2FsbCB0YXJnZXQgc3RhdHVzKSkKLQotICAgOzsgQnV0IGEgbW9yZSBj b21wbGljYXRlZCBmdW5jdGlvbiByZWRpcmVjdGlvbiAod2hpY2ggY2FuIG9ubHkKLSAgIDs7 IGhhcHBlbiB3aXRoIGFsaWFzZXMgYXQgdGhlIG1vbWVudCkgaGFzIGFyZ3VtZW50cyB0aGF0 IG5lZWQgdG8gYmUKLSAgIDs7IHBhc3NlZCBhbG9uZyB3aXRoIGl0LgotICAgKChjb25zcCB0 YXJnZXQpCi0gICAgKGFwcGx5IChjYXIgdGFyZ2V0KSBzdGF0dXMgKGNkciB0YXJnZXQpKSkp KQorICAgIChmdW5jYWxsIHRhcmdldCBzdGF0dXMpKSkpCiAKIChkZWZ1biBlc2hlbGwta2ls bC1hcHBlbmQgKHN0cmluZykKICAgIkNhbGwgYGtpbGwtYXBwZW5kJyB3aXRoIFNUUklORywg aWYgaXQgaXMgaW5kZWVkIGEgc3RyaW5nLiIKQEAgLTY0MiwxMCArNjM2LDcgQEAgZXNoZWxs LW91dHB1dC1vYmplY3QtdG8tdGFyZ2V0CiAgICAgICAgKGlmIChtZW1xIChwcm9jZXNzLXN0 YXR1cyB0YXJnZXQpCiAJCSAnKHJ1biBzdG9wIG9wZW4gY2xvc2VkKSkKICAgICAgICAgICAg KHNpZ25hbCAoY2FyIGVycikgKGNkciBlcnIpKQotICAgICAgICAgKHNpZ25hbCAnZXNoZWxs LXBpcGUtYnJva2VuIChsaXN0IHRhcmdldCkpKSkpKQotCi0gICAoKGNvbnNwIHRhcmdldCkK LSAgICAoYXBwbHkgKGNhciB0YXJnZXQpIG9iamVjdCAoY2RyIHRhcmdldCkpKSkKKyAgICAg ICAgIChzaWduYWwgJ2VzaGVsbC1waXBlLWJyb2tlbiAobGlzdCB0YXJnZXQpKSkpKSkpCiAg IG9iamVjdCkKIAogKGRlZnVuIGVzaGVsbC1vdXRwdXQtb2JqZWN0IChvYmplY3QgJm9wdGlv bmFsIGhhbmRsZS1pbmRleCBoYW5kbGVzKQotLSAKMi4yNS4xCgo= --------------tO0QUvWQHEJ92P9RiMRSrewB Content-Type: text/plain; charset=UTF-8; name="0002-Use-generics-to-define-Eshell-output-targets.patch" Content-Disposition: attachment; filename="0002-Use-generics-to-define-Eshell-output-targets.patch" Content-Transfer-Encoding: base64 RnJvbSA5YjYxODY5NzNjMGZkODMxN2E4MGI0ZjFlNzc2ZWZkYWMyZTNiYWM1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTEgTWFyIDIwMjMgMTg6NDQ6NDMgLTA4MDAKU3ViamVjdDogW1BB VENIIDIvM10gVXNlIGdlbmVyaWNzIHRvIGRlZmluZSBFc2hlbGwgb3V0cHV0IHRhcmdldHMK ClRoaXMgaXMgbW9yZSBmbGV4aWJsZSB0aGFuIGJlZm9yZSwgc2luY2UgdGhpcmQtcGFydHkg Y29kZSBjYW4gYWRkIG5ldwpvdXRwdXQgdGFyZ2V0IHR5cGVzIHdpdGhvdXQgYWR2aXNpbmcg dGhlc2UgZnVuY3Rpb25zLiAgSXQgYWxzbwpyZXNvbHZlcyBhbiBpc3N1ZSB3aGVyZSByZWRp cmVjdGluZyB0byBhIHN5bWJvbCB0aGF0IGhhcyBhIHZhbHVlIGluCml0cyBmdW5jdGlvbiBz bG90IGRvZXNuJ3Qgd29yay4KCiogbGlzcC9lc2hlbGwvZXNoLWlvLmVsIChlc2hlbGwtdmly dHVhbC10YXJnZXQpOiBOZXcgc3RydWN0LgooZXNoZWxsLWdldC10YXJnZXQsIGVzaGVsbC1v dXRwdXQtb2JqZWN0LXRvLXRhcmdldCk6IFJlaW1wbGVtZW50IHZpYQonY2wtZGVmZ2VuZXJp YycuCihlc2hlbGwtY2xvc2UtdGFyZ2V0KTogUmVpbXBsZW1lbnQgdmlhICdjbC1kZWZnZW5l cmljJyBhbmQgc2ltcGxpZnkKJ3Byb2Nlc3MnIG1ldGhvZC4KLS0tCiBsaXNwL2VzaGVsbC9l c2gtaW8uZWwgICAgICAgICAgICB8IDI5OSArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tCiB0ZXN0L2xpc3AvZXNoZWxsL2VzaC1pby10ZXN0cy5lbCB8ICAxMCArKwogMiBmaWxl cyBjaGFuZ2VkLCAxNzAgaW5zZXJ0aW9ucygrKSwgMTM5IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2xpc3AvZXNoZWxsL2VzaC1pby5lbCBiL2xpc3AvZXNoZWxsL2VzaC1pby5lbApp bmRleCAxZWM0ZjkxODI4Mi4uZjlmNTBlYTQzM2EgMTAwNjQ0Ci0tLSBhL2xpc3AvZXNoZWxs L2VzaC1pby5lbAorKysgYi9saXNwL2VzaGVsbC9lc2gtaW8uZWwKQEAgLTQyMyw1MSArNDIz LDYgQEAgZXNoZWxsLXNldC1hbGwtb3V0cHV0LWhhbmRsZXMKICAgKGVzaGVsbC1zZXQtb3V0 cHV0LWhhbmRsZSBlc2hlbGwtb3V0cHV0LWhhbmRsZSBtb2RlIHRhcmdldCBoYW5kbGVzKQog ICAoZXNoZWxsLWNvcHktb3V0cHV0LWhhbmRsZSBlc2hlbGwtZXJyb3ItaGFuZGxlIGVzaGVs bC1vdXRwdXQtaGFuZGxlIGhhbmRsZXMpKQogCi0oZGVmdW4gZXNoZWxsLWNsb3NlLXRhcmdl dCAodGFyZ2V0IHN0YXR1cykKLSAgIkNsb3NlIGFuIG91dHB1dCBUQVJHRVQsIHBhc3Npbmcg U1RBVFVTIGFzIHRoZSByZXN1bHQuCi1TVEFUVVMgc2hvdWxkIGJlIG5vbi1uaWwgb24gc3Vj Y2Vzc2Z1bCB0ZXJtaW5hdGlvbiBvZiB0aGUgb3V0cHV0LiIKLSAgKGNvbmQKLSAgICgoc3lt Ym9scCB0YXJnZXQpIG5pbCkKLQotICAgOzsgSWYgd2Ugd2VyZSByZWRpcmVjdGluZyB0byBh IGZpbGUsIHNhdmUgdGhlIGZpbGUgYW5kIGNsb3NlIHRoZQotICAgOzsgYnVmZmVyLgotICAg KChtYXJrZXJwIHRhcmdldCkKLSAgICAobGV0ICgoYnVmIChtYXJrZXItYnVmZmVyIHRhcmdl dCkpKQotICAgICAgKHdoZW4gYnVmICAgICAgICAgICAgICAgICAgICAgICAgIDsgc29tZWJv ZHkncyBhbHJlYWR5IGtpbGxlZCBpdCEKLQkoc2F2ZS1jdXJyZW50LWJ1ZmZlcgotCSAgKHNl dC1idWZmZXIgYnVmKQotCSAgKHdoZW4gZXNoZWxsLW91dHB1dC1maWxlLWJ1ZmZlcgotCSAg ICAoc2F2ZS1idWZmZXIpCi0JICAgICh3aGVuIChlcSBlc2hlbGwtb3V0cHV0LWZpbGUtYnVm ZmVyIHQpCi0JICAgICAgKG9yIHN0YXR1cyAoc2V0LWJ1ZmZlci1tb2RpZmllZC1wIG5pbCkp Ci0JICAgICAgKGtpbGwtYnVmZmVyIGJ1ZikpKSkpKSkKLQotICAgOzsgSWYgd2UncmUgcmVk aXJlY3RpbmcgdG8gYSBwcm9jZXNzICh2aWEgYSBwaXBlLCBvciBwcm9jZXNzCi0gICA7OyBy ZWRpcmVjdGlvbiksIHNlbmQgaXQgRU9GIHNvIHRoYXQgaXQga25vd3Mgd2UncmUgZmluaXNo ZWQuCi0gICAoKGVzaGVsbC1wcm9jZXNzcCB0YXJnZXQpCi0gICAgOzsgQWNjb3JkaW5nIHRv IFBPU0lYLjEtMjAxNywgc2VjdGlvbiAxMS4xLjksIHdoZW4gY29tbXVuaWNhdGluZwotICAg IDs7IHZpYSB0ZXJtaW5hbCwgc2VuZGluZyBFT0YgY2F1c2VzIGFsbCBieXRlcyB3YWl0aW5n IHRvIGJlIHJlYWQKLSAgICA7OyB0byBiZSBzZW50IHRvIHRoZSBwcm9jZXNzIGltbWVkaWF0 ZWx5LiAgVGh1cywgaWYgdGhlcmUgYXJlIGFueQotICAgIDs7IGJ5dGVzIHdhaXRpbmcsIHdl IG5lZWQgdG8gc2VuZCBFT0YgdHdpY2U6IG9uY2UgdG8gZmx1c2ggdGhlCi0gICAgOzsgYnVm ZmVyLCBhbmQgYSBzZWNvbmQgdGltZSB0byBjYXVzZSB0aGUgbmV4dCByZWFkKCkgdG8gcmV0 dXJuIGEKLSAgICA7OyBzaXplIG9mIDAsIGluZGljYXRpbmcgZW5kLW9mLWZpbGUgdG8gdGhl IHJlYWRpbmcgcHJvY2Vzcy4KLSAgICA7OyBIb3dldmVyLCBzb21lIHBsYXRmb3JtcyAoZS5n LiBTb2xhcmlzKSBhY3R1YWxseSByZXF1aXJlIHNlbmRpbmcKLSAgICA7OyBhICp0aGlyZCog RU9GLiAgU2luY2Ugc2VuZGluZyBleHRyYSBFT0ZzIHdoaWxlIHRoZSBwcm9jZXNzIGlzCi0g ICAgOzsgcnVubmluZyBhcmUgYSBuby1vcCwgd2UnbGwganVzdCBzZW5kIHRoZSBtYXhpbXVt IHdlJ2QgZXZlcgotICAgIDs7IG5lZWQuICBTZWUgYnVnIzU2MDI1IGZvciBmdXJ0aGVyIGRl dGFpbHMuCi0gICAgKGxldCAoKGkgMCkKLSAgICAgICAgICA7OyBPbmx5IGNhbGwgYHByb2Nl c3Mtc2VuZC1lb2YnIG9uY2UgaWYgY29tbXVuaWNhdGluZyB2aWEgYQotICAgICAgICAgIDs7 IHBpcGUgKGluIHRydXRoLCB0aGlzIGp1c3QgY2xvc2VzIHRoZSBwaXBlKS4KLSAgICAgICAg ICAobWF4LWF0dGVtcHRzIChpZiAocHJvY2Vzcy10dHktbmFtZSB0YXJnZXQgJ3N0ZGluKSAz IDEpKSkKLSAgICAgICh3aGlsZSAoYW5kICg8PSAoY2wtaW5jZiBpKSBtYXgtYXR0ZW1wdHMp Ci0gICAgICAgICAgICAgICAgICAoZXEgKHByb2Nlc3Mtc3RhdHVzIHRhcmdldCkgJ3J1bikp Ci0gICAgICAgIChwcm9jZXNzLXNlbmQtZW9mIHRhcmdldCkpKSkKLQotICAgOzsgQSBwbGFp biBmdW5jdGlvbiByZWRpcmVjdGlvbiBuZWVkcyBubyBhZGRpdGlvbmFsIGFyZ3VtZW50cwot ICAgOzsgcGFzc2VkLgotICAgKChmdW5jdGlvbnAgdGFyZ2V0KQotICAgIChmdW5jYWxsIHRh cmdldCBzdGF0dXMpKSkpCi0KIChkZWZ1biBlc2hlbGwta2lsbC1hcHBlbmQgKHN0cmluZykK ICAgIkNhbGwgYGtpbGwtYXBwZW5kJyB3aXRoIFNUUklORywgaWYgaXQgaXMgaW5kZWVkIGEg c3RyaW5nLiIKICAgKGlmIChzdHJpbmdwIHN0cmluZykKQEAgLTQ3OSw1NiArNDM0LDYgQEAg ZXNoZWxsLWNsaXBib2FyZC1hcHBlbmQKICAgICAgIChsZXQgKChzZWxlY3QtZW5hYmxlLWNs aXBib2FyZCB0KSkKIAkoa2lsbC1hcHBlbmQgc3RyaW5nIG5pbCkpKSkKIAotKGRlZnVuIGVz aGVsbC1nZXQtdGFyZ2V0ICh0YXJnZXQgJm9wdGlvbmFsIG1vZGUpCi0gICJDb252ZXJ0IFRB UkdFVCwgd2hpY2ggaXMgYSByYXcgYXJndW1lbnQsIGludG8gYSB2YWxpZCBvdXRwdXQgdGFy Z2V0LgotTU9ERSBpcyBlaXRoZXIgYG92ZXJ3cml0ZScsIGBhcHBlbmQnIG9yIGBpbnNlcnQn OyBpZiBpdCBpcyBvbWl0dGVkIG9yIG5pbCwKLWl0IGRlZmF1bHRzIHRvIGBpbnNlcnQnLiIK LSAgKHNldHEgbW9kZSAob3IgbW9kZSAnaW5zZXJ0KSkKLSAgKGNvbmQKLSAgICgoc3RyaW5n cCB0YXJnZXQpCi0gICAgKGxldCAoKHJlZGlyIChhc3NvYyB0YXJnZXQgZXNoZWxsLXZpcnR1 YWwtdGFyZ2V0cykpKQotICAgICAgKGlmIHJlZGlyCi0JICAoaWYgKG50aCAyIHJlZGlyKQot CSAgICAgIChmdW5jYWxsIChudGggMSByZWRpcikgbW9kZSkKLQkgICAgKG50aCAxIHJlZGly KSkKLQkobGV0KiAoKGV4aXN0cyAoZ2V0LWZpbGUtYnVmZmVyIHRhcmdldCkpCi0JICAgICAg IChidWYgKGZpbmQtZmlsZS1ub3NlbGVjdCB0YXJnZXQgdCkpKQotCSAgKHdpdGgtY3VycmVu dC1idWZmZXIgYnVmCi0JICAgIChpZiBidWZmZXItZmlsZS1yZWFkLW9ubHkKLQkJKGVycm9y ICJDYW5ub3Qgd3JpdGUgdG8gcmVhZC1vbmx5IGZpbGUgYCVzJyIgdGFyZ2V0KSkKLQkgICAg KHNldHEgYnVmZmVyLXJlYWQtb25seSBuaWwpCi0gICAgICAgICAgICAoc2V0cS1sb2NhbCBl c2hlbGwtb3V0cHV0LWZpbGUtYnVmZmVyCi0gICAgICAgICAgICAgICAgICAgICAgICAoaWYg KGVxIGV4aXN0cyBidWYpIDAgdCkpCi0JICAgIChjb25kICgoZXEgbW9kZSAnb3ZlcndyaXRl KQotCQkgICAoZXJhc2UtYnVmZmVyKSkKLQkJICAoKGVxIG1vZGUgJ2FwcGVuZCkKLQkJICAg KGdvdG8tY2hhciAocG9pbnQtbWF4KSkpKQotCSAgICAocG9pbnQtbWFya2VyKSkpKSkpCi0K LQotICAgKChidWZmZXJwIHRhcmdldCkKLSAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciB0YXJn ZXQKLSAgICAgIChjb25kICgoZXEgbW9kZSAnb3ZlcndyaXRlKQotICAgICAgICAgICAgIChl cmFzZS1idWZmZXIpKQotICAgICAgICAgICAgKChlcSBtb2RlICdhcHBlbmQpCi0gICAgICAg ICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkpKQotICAgICAgKHBvaW50LW1hcmtlcikp KQotCi0gICAoKGZ1bmN0aW9ucCB0YXJnZXQpIG5pbCkKLQotICAgKChzeW1ib2xwIHRhcmdl dCkKLSAgICAoaWYgKGVxIG1vZGUgJ292ZXJ3cml0ZSkKLQkoc2V0IHRhcmdldCBuaWwpKQot ICAgIHRhcmdldCkKLQotICAgKChvciAoZXNoZWxsLXByb2Nlc3NwIHRhcmdldCkKLQkobWFy a2VycCB0YXJnZXQpKQotICAgIHRhcmdldCkKLQotICAgKHQKLSAgICAoZXJyb3IgIkludmFs aWQgcmVkaXJlY3Rpb24gdGFyZ2V0OiAlcyIKLQkgICAoZXNoZWxsLXN0cmluZ2lmeSB0YXJn ZXQpKSkpKQotCiAoZGVmdW4gZXNoZWxsLWludGVyYWN0aXZlLW91dHB1dC1wICgmb3B0aW9u YWwgaW5kZXggaGFuZGxlcykKICAgIlJldHVybiBub24tbmlsIGlmIHRoZSBzcGVjaWZpZWQg aGFuZGxlIGlzIGJvdW5kIGZvciBpbnRlcmFjdGl2ZSBkaXNwbGF5LgogSEFORExFUyBpcyB0 aGUgc2V0IG9mIGhhbmRsZXMgdG8gY2hlY2s7IGlmIG5pbCwgdXNlCkBAIC01OTMsNTIgKzQ5 OCwxNjggQEAgZXNoZWxsLXByaW50bgogICAoZXNoZWxsLXByaW50IG9iamVjdCkKICAgKGVz aGVsbC1wcmludCAiXG4iKSkKIAotKGRlZnVuIGVzaGVsbC1vdXRwdXQtb2JqZWN0LXRvLXRh cmdldCAob2JqZWN0IHRhcmdldCkKLSAgIkluc2VydCBPQkpFQ1QgaW50byBUQVJHRVQuCi1S ZXR1cm5zIHdoYXQgd2FzIGFjdHVhbGx5IHNlbnQsIG9yIG5pbCBpZiBub3RoaW5nIHdhcyBz ZW50LiIKLSAgKGNvbmQKLSAgICgoZnVuY3Rpb25wIHRhcmdldCkKLSAgICAoZnVuY2FsbCB0 YXJnZXQgb2JqZWN0KSkKLQotICAgKChzeW1ib2xwIHRhcmdldCkKLSAgICAoaWYgKGVxIHRh cmdldCB0KSAgICAgICAgICAgICAgICAgICA7IG1lYW5zICJwcmludCB0byBkaXNwbGF5Igot CShlc2hlbGwtaW50ZXJhY3RpdmUtcHJpbnQgKGVzaGVsbC1zdHJpbmdpZnkgb2JqZWN0KSkK LSAgICAgIChpZiAobm90IChzeW1ib2wtdmFsdWUgdGFyZ2V0KSkKLQkgIChzZXQgdGFyZ2V0 IG9iamVjdCkKLQkoc2V0cSBvYmplY3QgKGVzaGVsbC1zdHJpbmdpZnkgb2JqZWN0KSkKLQko aWYgKG5vdCAoc3RyaW5ncCAoc3ltYm9sLXZhbHVlIHRhcmdldCkpKQotCSAgICAoc2V0IHRh cmdldCAoZXNoZWxsLXN0cmluZ2lmeQotCQkJIChzeW1ib2wtdmFsdWUgdGFyZ2V0KSkpKQot CShzZXQgdGFyZ2V0IChjb25jYXQgKHN5bWJvbC12YWx1ZSB0YXJnZXQpIG9iamVjdCkpKSkp Ci0KLSAgICgobWFya2VycCB0YXJnZXQpCi0gICAgKGlmIChidWZmZXItbGl2ZS1wIChtYXJr ZXItYnVmZmVyIHRhcmdldCkpCi0JKHdpdGgtY3VycmVudC1idWZmZXIgKG1hcmtlci1idWZm ZXIgdGFyZ2V0KQotCSAgKGxldCAoKG1vdmluZyAoPSAocG9pbnQpIHRhcmdldCkpKQotCSAg ICAoc2F2ZS1leGN1cnNpb24KLQkgICAgICAoZ290by1jaGFyIHRhcmdldCkKLQkgICAgICAo dW5sZXNzIChzdHJpbmdwIG9iamVjdCkKLQkJKHNldHEgb2JqZWN0IChlc2hlbGwtc3RyaW5n aWZ5IG9iamVjdCkpKQotCSAgICAgIChpbnNlcnQtYW5kLWluaGVyaXQgb2JqZWN0KQotCSAg ICAgIChzZXQtbWFya2VyIHRhcmdldCAocG9pbnQtbWFya2VyKSkpCi0JICAgIChpZiBtb3Zp bmcKLQkJKGdvdG8tY2hhciB0YXJnZXQpKSkpKSkKLQotICAgKChlc2hlbGwtcHJvY2Vzc3Ag dGFyZ2V0KQotICAgICh1bmxlc3MgKHN0cmluZ3Agb2JqZWN0KQotICAgICAgKHNldHEgb2Jq ZWN0IChlc2hlbGwtc3RyaW5naWZ5IG9iamVjdCkpKQotICAgIChjb25kaXRpb24tY2FzZSBl cnIKLSAgICAgICAgKHByb2Nlc3Mtc2VuZC1zdHJpbmcgdGFyZ2V0IG9iamVjdCkKLSAgICAg IChlcnJvcgotICAgICAgIDs7IElmIGBwcm9jZXNzLXNlbmQtc3RyaW5nJyByYWlzZXMgYW4g ZXJyb3IgYW5kIHRoZSBwcm9jZXNzIGhhcwotICAgICAgIDs7IGZpbmlzaGVkLCB0cmVhdCBp dCBhcyBhIGJyb2tlbiBwaXBlLiAgT3RoZXJ3aXNlLCBqdXN0Ci0gICAgICAgOzsgcmUtdGhy b3cgdGhlIHNpZ25hbC4KLSAgICAgICAoaWYgKG1lbXEgKHByb2Nlc3Mtc3RhdHVzIHRhcmdl dCkKLQkJICcocnVuIHN0b3Agb3BlbiBjbG9zZWQpKQotICAgICAgICAgICAoc2lnbmFsIChj YXIgZXJyKSAoY2RyIGVycikpCi0gICAgICAgICAoc2lnbmFsICdlc2hlbGwtcGlwZS1icm9r ZW4gKGxpc3QgdGFyZ2V0KSkpKSkpKQorKGNsLWRlZnN0cnVjdCAoZXNoZWxsLXZpcnR1YWwt dGFyZ2V0CisgICAgICAgICAgICAgICAoOmNvbnN0cnVjdG9yIGVzaGVsbC12aXJ0dWFsLXRh cmdldC1jcmVhdGUgKG91dHB1dC1mdW5jdGlvbikpKQorICAiQSB2aXJ0dWFsIHRhcmdldCAo c2VlIGBlc2hlbGwtdmlydHVhbC10YXJnZXRzJykuIgorICBvdXRwdXQtZnVuY3Rpb24pCisK KyhjbC1kZWZnZW5lcmljIGVzaGVsbC1nZXQtdGFyZ2V0IChyYXctdGFyZ2V0ICZvcHRpb25h bCBfbW9kZSkKKyAgIkNvbnZlcnQgUkFXLVRBUkdFVCwgd2hpY2ggaXMgYSByYXcgYXJndW1l bnQsIGludG8gYSB2YWxpZCBvdXRwdXQgdGFyZ2V0LgorTU9ERSBpcyBlaXRoZXIgYG92ZXJ3 cml0ZScsIGBhcHBlbmQnIG9yIGBpbnNlcnQnOyBpZiBpdCBpcyBvbWl0dGVkIG9yIG5pbCwK K2l0IGRlZmF1bHRzIHRvIGBpbnNlcnQnLiIKKyAgKGVycm9yICJJbnZhbGlkIHJlZGlyZWN0 aW9uIHRhcmdldDogJXMiIChlc2hlbGwtc3RyaW5naWZ5IHJhdy10YXJnZXQpKSkKKworKGNs LWRlZm1ldGhvZCBlc2hlbGwtZ2V0LXRhcmdldCAoKHJhdy10YXJnZXQgc3RyaW5nKSAmb3B0 aW9uYWwgbW9kZSkKKyAgIkNvbnZlcnQgYSBzdHJpbmcgUkFXLVRBUkdFVCBpbnRvIGEgdmFs aWQgb3V0cHV0IHRhcmdldCB1c2luZyBNT0RFLgorSWYgVEFSR0VUIGlzIGEgdmlydHVhbCB0 YXJnZXQgKHNlZSBgZXNoZWxsLXZpcnR1YWwtdGFyZ2V0cycpLAorcmV0dXJuIGFuIGBlc2hl bGwtdmlydHVhbC10YXJnZXQnIGluc3RhbmNlOyBvdGhlcndpc2UsIHJldHVybiBhCittYXJr ZXIgZm9yIGEgZmlsZSBuYW1lZCBUQVJHRVQuIgorICAoc2V0cSBtb2RlIChvciBtb2RlICdp bnNlcnQpKQorICAoaWYtbGV0ICgocmVkaXIgKGFzc29jIHJhdy10YXJnZXQgZXNoZWxsLXZp cnR1YWwtdGFyZ2V0cykpKQorICAgICAgKGVzaGVsbC12aXJ0dWFsLXRhcmdldC1jcmVhdGUK KyAgICAgICAoaWYgKG50aCAyIHJlZGlyKQorICAgICAgICAgICAoZnVuY2FsbCAobnRoIDEg cmVkaXIpIG1vZGUpCisgICAgICAgICAobnRoIDEgcmVkaXIpKSkKKyAgICAobGV0ICgoZXhp c3RzIChnZXQtZmlsZS1idWZmZXIgcmF3LXRhcmdldCkpCisgICAgICAgICAgKGJ1ZiAoZmlu ZC1maWxlLW5vc2VsZWN0IHJhdy10YXJnZXQgdCkpKQorICAgICAgKHdpdGgtY3VycmVudC1i dWZmZXIgYnVmCisgICAgICAgICh3aGVuIGJ1ZmZlci1maWxlLXJlYWQtb25seQorICAgICAg ICAgIChlcnJvciAiQ2Fubm90IHdyaXRlIHRvIHJlYWQtb25seSBmaWxlIGAlcyciIHJhdy10 YXJnZXQpKQorICAgICAgICAgIChzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgbmlsKQorICAgICAg ICAgIChzZXRxLWxvY2FsIGVzaGVsbC1vdXRwdXQtZmlsZS1idWZmZXIKKyAgICAgICAgICAg ICAgICAgICAgICAoaWYgKGVxIGV4aXN0cyBidWYpIDAgdCkpCisgICAgICAgICAgKGNvbmQg KChlcSBtb2RlICdvdmVyd3JpdGUpCisgICAgICAgICAgICAgICAgIChlcmFzZS1idWZmZXIp KQorICAgICAgICAgICAgICAgICgoZXEgbW9kZSAnYXBwZW5kKQorICAgICAgICAgICAgICAg ICAoZ290by1jaGFyIChwb2ludC1tYXgpKSkpCisgICAgICAgICAgKHBvaW50LW1hcmtlcikp KSkpCisKKyhjbC1kZWZtZXRob2QgZXNoZWxsLWdldC10YXJnZXQgKChyYXctdGFyZ2V0IGJ1 ZmZlcikgJm9wdGlvbmFsIG1vZGUpCisgICJDb252ZXJ0IGEgYnVmZmVyIFJBVy1UQVJHRVQg aW50byBhIHZhbGlkIG91dHB1dCB0YXJnZXQgdXNpbmcgTU9ERS4KK1RoaXMgcmV0dXJucyBh IG1hcmtlciBmb3IgdGhhdCBidWZmZXIuIgorICAod2l0aC1jdXJyZW50LWJ1ZmZlciByYXct dGFyZ2V0CisgICAgKGNvbmQgKChlcSBtb2RlICdvdmVyd3JpdGUpCisgICAgICAgICAgIChl cmFzZS1idWZmZXIpKQorICAgICAgICAgICgoZXEgbW9kZSAnYXBwZW5kKQorICAgICAgICAg ICAoZ290by1jaGFyIChwb2ludC1tYXgpKSkpCisgICAgKHBvaW50LW1hcmtlcikpKQorCiso Y2wtZGVmbWV0aG9kIGVzaGVsbC1nZXQtdGFyZ2V0ICgocmF3LXRhcmdldCBzeW1ib2wpICZv cHRpb25hbCBtb2RlKQorICAiQ29udmVydCBhIHJhdyBzeW1ib2wgUkFXLVRBUkdFVCBpbnRv IGEgdmFsaWQgb3V0cHV0IHRhcmdldCB1c2luZyBNT0RFLgorVGhpcyByZXR1cm5zIFJBVy1U QVJHRVQsIHdpdGggaXRzIHZhbHVlIGluaXRpYWxpemVkIHRvIG5pbCBpZiBNT0RFIGlzCitg b3ZlcndyaXRlJy4iCisgICh3aGVuIChlcSBtb2RlICdvdmVyd3JpdGUpCisgICAgKHNldCBy YXctdGFyZ2V0IG5pbCkpCisgIHJhdy10YXJnZXQpCisKKyhjbC1kZWZtZXRob2QgZXNoZWxs LWdldC10YXJnZXQgKChyYXctdGFyZ2V0IHByb2Nlc3MpICZvcHRpb25hbCBfbW9kZSkKKyAg IkNvbnZlcnQgYSByYXcgcHJvY2VzcyBSQVctVEFSR0VUIGludG8gYSB2YWxpZCBvdXRwdXQg dGFyZ2V0LgorVGhpcyBqdXN0IHJldHVybnMgUkFXLVRBUkdFVC4iCisgIHJhdy10YXJnZXQp CisKKyhjbC1kZWZtZXRob2QgZXNoZWxsLWdldC10YXJnZXQgKChyYXctdGFyZ2V0IG1hcmtl cikgJm9wdGlvbmFsIF9tb2RlKQorICAiQ29udmVydCBhIHJhdyBwcm9jZXNzIFJBVy1UQVJH RVQgaW50byBhIHZhbGlkIG91dHB1dCB0YXJnZXQuCitUaGlzIGp1c3QgcmV0dXJucyBSQVct VEFSR0VULiIKKyAgcmF3LXRhcmdldCkKKworKGNsLWRlZmdlbmVyaWMgZXNoZWxsLWNsb3Nl LXRhcmdldCAodGFyZ2V0IHN0YXR1cykKKyAgIkNsb3NlIGFuIG91dHB1dCBUQVJHRVQsIHBh c3NpbmcgU1RBVFVTIGFzIHRoZSByZXN1bHQuCitTVEFUVVMgc2hvdWxkIGJlIG5vbi1uaWwg b24gc3VjY2Vzc2Z1bCB0ZXJtaW5hdGlvbiBvZiB0aGUgb3V0cHV0LiIpCisKKyhjbC1kZWZt ZXRob2QgZXNoZWxsLWNsb3NlLXRhcmdldCAoKF90YXJnZXQgc3ltYm9sKSBfc3RhdHVzKQor ICAiQ2xvc2UgYSBzeW1ib2wgVEFSR0VULiIKKyAgbmlsKQorCisoY2wtZGVmbWV0aG9kIGVz aGVsbC1jbG9zZS10YXJnZXQgKCh0YXJnZXQgbWFya2VyKSBzdGF0dXMpCisgICJDbG9zZSBh IG1hcmtlciBUQVJHRVQuCitJZiBUQVJHRVQgd2FzIGNyZWF0ZWQgZnJvbSBhIGZpbGUgbmFt ZSwgc2F2ZSBhbmQga2lsbCB0aGUgYnVmZmVyLgorSWYgc3RhdHVzIGlzIG5pbCwgcHJvbXB0 IGJlZm9yZSBraWxsaW5nLiIKKyAgKHdoZW4gKGJ1ZmZlci1saXZlLXAgKG1hcmtlci1idWZm ZXIgdGFyZ2V0KSkKKyAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAobWFya2VyLWJ1ZmZlciB0 YXJnZXQpCisgICAgICAod2hlbiBlc2hlbGwtb3V0cHV0LWZpbGUtYnVmZmVyCisgICAgICAg IChzYXZlLWJ1ZmZlcikKKyAgICAgICAgKHdoZW4gKGVxIGVzaGVsbC1vdXRwdXQtZmlsZS1i dWZmZXIgdCkKKyAgICAgICAgICAob3Igc3RhdHVzIChzZXQtYnVmZmVyLW1vZGlmaWVkLXAg bmlsKSkKKyAgICAgICAgICAoa2lsbC1idWZmZXIpKSkpKSkKKworKGNsLWRlZm1ldGhvZCBl c2hlbGwtY2xvc2UtdGFyZ2V0ICgodGFyZ2V0IHByb2Nlc3MpIF9zdGF0dXMpCisgICJDbG9z ZSBhIHByb2Nlc3MgVEFSR0VULiIKKyAgOzsgQWNjb3JkaW5nIHRvIFBPU0lYLjEtMjAxNywg c2VjdGlvbiAxMS4xLjksIHdoZW4gY29tbXVuaWNhdGluZyB2aWEKKyAgOzsgdGVybWluYWws IHNlbmRpbmcgRU9GIGNhdXNlcyBhbGwgYnl0ZXMgd2FpdGluZyB0byBiZSByZWFkIHRvIGJl CisgIDs7IHNlbnQgdG8gdGhlIHByb2Nlc3MgaW1tZWRpYXRlbHkuICBUaHVzLCBpZiB0aGVy ZSBhcmUgYW55IGJ5dGVzCisgIDs7IHdhaXRpbmcsIHdlIG5lZWQgdG8gc2VuZCBFT0YgdHdp Y2U6IG9uY2UgdG8gZmx1c2ggdGhlIGJ1ZmZlciwgYW5kCisgIDs7IGEgc2Vjb25kIHRpbWUg dG8gY2F1c2UgdGhlIG5leHQgcmVhZCgpIHRvIHJldHVybiBhIHNpemUgb2YgMCwKKyAgOzsg aW5kaWNhdGluZyBlbmQtb2YtZmlsZSB0byB0aGUgcmVhZGluZyBwcm9jZXNzLiAgSG93ZXZl ciwgc29tZQorICA7OyBwbGF0Zm9ybXMgKGUuZy4gU29sYXJpcykgYWN0dWFsbHkgcmVxdWly ZSBzZW5kaW5nIGEgKnRoaXJkKiBFT0YuCisgIDs7IFNpbmNlIHNlbmRpbmcgZXh0cmEgRU9G cyB0byBhIHJ1bm5pbmcgcHJvY2VzcyBpcyBhIG5vLW9wLCB3ZSdsbAorICA7OyBqdXN0IHNl bmQgdGhlIG1heGltdW0gd2UnZCBldmVyIG5lZWQuICBTZWUgYnVnIzU2MDI1IGZvciBmdXJ0 aGVyCisgIDs7IGRldGFpbHMuCisgIChjYXRjaCAnZG9uZQorICAgIChkb3RpbWVzIChfIChp ZiAocHJvY2Vzcy10dHktbmFtZSB0YXJnZXQgJ3N0ZGluKSAzIDEpKQorICAgICAgKHVubGVz cyAoZXEgKHByb2Nlc3Mtc3RhdHVzIHRhcmdldCkgJ3J1bikKKyAgICAgICAgKHRocm93ICdk b25lIG5pbCkpCisgICAgICAocHJvY2Vzcy1zZW5kLWVvZiB0YXJnZXQpKSkpCisKKyhjbC1k ZWZtZXRob2QgZXNoZWxsLWNsb3NlLXRhcmdldCAoKF90YXJnZXQgZXNoZWxsLXZpcnR1YWwt dGFyZ2V0KSBfc3RhdHVzKQorICAiQ2xvc2UgYSB2aXJ0dWFsIFRBUkdFVC4iCisgIG5pbCkK KworKGNsLWRlZmdlbmVyaWMgZXNoZWxsLW91dHB1dC1vYmplY3QtdG8tdGFyZ2V0IChvYmpl Y3QgdGFyZ2V0KQorICAiT3V0cHV0IE9CSkVDVCB0byBUQVJHRVQuCitSZXR1cm5zIHdoYXQg d2FzIGFjdHVhbGx5IHNlbnQsIG9yIG5pbCBpZiBub3RoaW5nIHdhcyBzZW50LiIpCisKKyhj bC1kZWZtZXRob2QgZXNoZWxsLW91dHB1dC1vYmplY3QtdG8tdGFyZ2V0IChvYmplY3QgKF90 YXJnZXQgKGVxbCB0KSkpCisgICJPdXRwdXQgT0JKRUNUIHRvIHRoZSBkaXNwbGF5LiIKKyAg KHNldHEgb2JqZWN0IChlc2hlbGwtc3RyaW5naWZ5IG9iamVjdCkpCisgIChlc2hlbGwtaW50 ZXJhY3RpdmUtcHJpbnQgb2JqZWN0KSkKKworKGNsLWRlZm1ldGhvZCBlc2hlbGwtb3V0cHV0 LW9iamVjdC10by10YXJnZXQgKG9iamVjdCAodGFyZ2V0IHN5bWJvbCkpCisgICJPdXRwdXQg T0JKRUNUIHRvIHRoZSB2YWx1ZSBvZiB0aGUgc3ltYm9sIFRBUkdFVC4iCisgIChpZiAobm90 IChzeW1ib2wtdmFsdWUgdGFyZ2V0KSkKKyAgICAgIChzZXQgdGFyZ2V0IG9iamVjdCkKKyAg ICAoc2V0cSBvYmplY3QgKGVzaGVsbC1zdHJpbmdpZnkgb2JqZWN0KSkKKyAgICAoaWYgKG5v dCAoc3RyaW5ncCAoc3ltYm9sLXZhbHVlIHRhcmdldCkpKQorICAgICAgICAoc2V0IHRhcmdl dCAoZXNoZWxsLXN0cmluZ2lmeQorICAgICAgICAgICAgICAgICAgICAgKHN5bWJvbC12YWx1 ZSB0YXJnZXQpKSkpCisgICAgKHNldCB0YXJnZXQgKGNvbmNhdCAoc3ltYm9sLXZhbHVlIHRh cmdldCkgb2JqZWN0KSkpCisgIG9iamVjdCkKKworKGNsLWRlZm1ldGhvZCBlc2hlbGwtb3V0 cHV0LW9iamVjdC10by10YXJnZXQgKG9iamVjdCAodGFyZ2V0IG1hcmtlcikpCisgICJPdXRw dXQgT0JKRUNUIHRvIHRoZSBtYXJrZXIgVEFSR0VULiIKKyAgKHdoZW4gKGJ1ZmZlci1saXZl LXAgKG1hcmtlci1idWZmZXIgdGFyZ2V0KSkKKyAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAo bWFya2VyLWJ1ZmZlciB0YXJnZXQpCisgICAgICAobGV0ICgobW92aW5nICg9IChwb2ludCkg dGFyZ2V0KSkpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgIChnb3RvLWNo YXIgdGFyZ2V0KQorICAgICAgICAgICh1bmxlc3MgKHN0cmluZ3Agb2JqZWN0KQorICAgICAg ICAgICAgKHNldHEgb2JqZWN0IChlc2hlbGwtc3RyaW5naWZ5IG9iamVjdCkpKQorICAgICAg ICAgIChpbnNlcnQtYW5kLWluaGVyaXQgb2JqZWN0KQorICAgICAgICAgIChzZXQtbWFya2Vy IHRhcmdldCAocG9pbnQtbWFya2VyKSkpCisgICAgICAgICh3aGVuIG1vdmluZworICAgICAg ICAgIChnb3RvLWNoYXIgdGFyZ2V0KSkpKSkKKyAgb2JqZWN0KQorCisoY2wtZGVmbWV0aG9k IGVzaGVsbC1vdXRwdXQtb2JqZWN0LXRvLXRhcmdldCAob2JqZWN0ICh0YXJnZXQgcHJvY2Vz cykpCisgICJPdXRwdXQgT0JKRUNUIHRvIHRoZSBwcm9jZXNzIFRBUkdFVC4iCisgICh1bmxl c3MgKHN0cmluZ3Agb2JqZWN0KQorICAgIChzZXRxIG9iamVjdCAoZXNoZWxsLXN0cmluZ2lm eSBvYmplY3QpKSkKKyAgKGNvbmRpdGlvbi1jYXNlIGVycgorICAgICAgKHByb2Nlc3Mtc2Vu ZC1zdHJpbmcgdGFyZ2V0IG9iamVjdCkKKyAgICAoZXJyb3IKKyAgICAgOzsgSWYgYHByb2Nl c3Mtc2VuZC1zdHJpbmcnIHJhaXNlcyBhbiBlcnJvciBhbmQgdGhlIHByb2Nlc3MgaGFzCisg ICAgIDs7IGZpbmlzaGVkLCB0cmVhdCBpdCBhcyBhIGJyb2tlbiBwaXBlLiAgT3RoZXJ3aXNl LCBqdXN0CisgICAgIDs7IHJlLXRocm93IHRoZSBzaWduYWwuCisgICAgIChpZiAobWVtcSAo cHJvY2Vzcy1zdGF0dXMgdGFyZ2V0KQorICAgICAgICAgICAgICAgJyhydW4gc3RvcCBvcGVu IGNsb3NlZCkpCisgICAgICAgICAoc2lnbmFsIChjYXIgZXJyKSAoY2RyIGVycikpCisgICAg ICAgKHNpZ25hbCAnZXNoZWxsLXBpcGUtYnJva2VuIChsaXN0IHRhcmdldCkpKSkpCiAgIG9i amVjdCkKIAorKGNsLWRlZm1ldGhvZCBlc2hlbGwtb3V0cHV0LW9iamVjdC10by10YXJnZXQg KG9iamVjdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICh0YXJnZXQgZXNoZWxsLXZpcnR1YWwtdGFyZ2V0KSkKKyAgIk91dHB1dCBPQkpFQ1QgdG8g dGhlIHZpcnR1YWwgVEFSR0VULiIKKyAgKGZ1bmNhbGwgKGVzaGVsbC12aXJ0dWFsLXRhcmdl dC1vdXRwdXQtZnVuY3Rpb24gdGFyZ2V0KSBvYmplY3QpKQorCiAoZGVmdW4gZXNoZWxsLW91 dHB1dC1vYmplY3QgKG9iamVjdCAmb3B0aW9uYWwgaGFuZGxlLWluZGV4IGhhbmRsZXMpCiAg ICJJbnNlcnQgT0JKRUNULCB1c2luZyBIQU5ETEUtSU5ERVggc3BlY2lmaWNhbGx5LgogSWYg SEFORExFLUlOREVYIGlzIG5pbCwgb3V0cHV0IHRvIGBlc2hlbGwtb3V0cHV0LWhhbmRsZScu CmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZXNoZWxsL2VzaC1pby10ZXN0cy5lbCBiL3Rlc3Qv bGlzcC9lc2hlbGwvZXNoLWlvLXRlc3RzLmVsCmluZGV4IGVkMzUwYTk2OTFjLi5jZTgwZjNh OGYwOCAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2VzaGVsbC9lc2gtaW8tdGVzdHMuZWwKKysr IGIvdGVzdC9saXNwL2VzaGVsbC9lc2gtaW8tdGVzdHMuZWwKQEAgLTMxLDYgKzMxLDkgQEAK IAogKGRlZnZhciBlc2hlbGwtdGVzdC12YWx1ZSBuaWwpCiAKKyhkZWZ2YXIgZXNoZWxsLXRl c3QtdmFsdWUtd2l0aC1mdW4gbmlsKQorKGRlZnVuIGVzaGVsbC10ZXN0LXZhbHVlLXdpdGgt ZnVuICgpKQorCiAoZGVmdW4gZXNoZWxsLXRlc3QtZmlsZS1zdHJpbmcgKGZpbGUpCiAgICJS ZXR1cm4gdGhlIGNvbnRlbnRzIG9mIEZJTEUgYXMgYSBzdHJpbmcuIgogICAod2l0aC10ZW1w LWJ1ZmZlcgpAQCAtMTE3LDYgKzEyMCwxMyBAQCBlc2gtaW8tdGVzdC9yZWRpcmVjdC1zeW1i b2wvYXBwZW5kCiAgICAgIChlc2hlbGwtaW5zZXJ0LWNvbW1hbmQgImVjaG8gbmV3ID4+ICMn ZXNoZWxsLXRlc3QtdmFsdWUiKSkKICAgICAoc2hvdWxkIChlcXVhbCBlc2hlbGwtdGVzdC12 YWx1ZSAib2xkbmV3IikpKSkKIAorKGVydC1kZWZ0ZXN0IGVzaC1pby10ZXN0L3JlZGlyZWN0 LXN5bWJvbC93aXRoLWZ1bmN0aW9uLXNsb3QgKCkKKyAgIkNoZWNrIHRoYXQgcmVkaXJlY3Rp bmcgdG8gYSBzeW1ib2wgd2l0aCBmdW5jdGlvbiBzbG90IHNldCB3b3Jrcy4iCisgIChsZXQg KChlc2hlbGwtdGVzdC12YWx1ZS13aXRoLWZ1bikpCisgICAgKHdpdGgtdGVtcC1lc2hlbGwK KyAgICAgKGVzaGVsbC1pbnNlcnQtY29tbWFuZCAiZWNobyBoaSA+ICMnZXNoZWxsLXRlc3Qt dmFsdWUtd2l0aC1mdW4iKSkKKyAgICAoc2hvdWxkIChlcXVhbCBlc2hlbGwtdGVzdC12YWx1 ZS13aXRoLWZ1biAiaGkiKSkpKQorCiAoZXJ0LWRlZnRlc3QgZXNoLWlvLXRlc3QvcmVkaXJl Y3QtbWFya2VyICgpCiAgICJDaGVjayB0aGF0IHJlZGlyZWN0aW5nIHRvIGEgbWFya2VyIHdv cmtzLiIKICAgKHdpdGgtdGVtcC1idWZmZXIKLS0gCjIuMjUuMQoK --------------tO0QUvWQHEJ92P9RiMRSrewB-- ------------=_1692643682-32730-1--