From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms1.migadu.com with LMTPS id uClwK0s4MWZ3HQAA62LTzQ:P1 (envelope-from ) for ; Tue, 30 Apr 2024 20:28:27 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1.migadu.com with LMTPS id uClwK0s4MWZ3HQAA62LTzQ (envelope-from ) for ; Tue, 30 Apr 2024 20:28:27 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=iOmy4uK9; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1714501707; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=8kp2BhTBfR9v9Iq9+KFyye8eXHb8+fD8iYid2UBqWcI=; b=P/a96apaWvGKbER8xC+lrLl0NvCL18rIvB+lln42ZzRzvO+i5Wj8Ya8AaPRYsxVhbfzWgE 31dvN+ljwHPluMoxp+MUFuBfJncTt2vR0TjnhdmY2P//Rp58d+M6kGDgB0UuuD25ccwoME xOoOlRzvTvKWUUw5pRzPzeQ10c7bt5giaE/B3F9tfuoTLLaENod3mFujumez1NK4gjUvZy /nWOVWMm+6nq1QC7/oOaWiyiAiQWMS8prOaacpqFA6iegpnupdiM+NzRISD4MeFL0xk9Ap JEsdSHHkG8fIfWkmHhE3PfPmUFZ8VryEBz4CWUxc0HsE8AEXR5VmfibyHMSxBg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1714501707; a=rsa-sha256; cv=none; b=S6FDZmnqWff9YE+Tjxx9EfG8sn0wB+1fCr0sxFsqtkCjzFWzKma4j+FFZwAnIkCfjtqUPY +dckO4eWmCknPm+aFAge5q15ACpr19WA3h1Mwra/wiIyJ9hYoESo1dKF5a0WiIKnwBXWzg die/oDATnTqlNhDonWmyFjHmuA9Xvx2H/RxRRskqr11KCVu+X684uIh4UJMl07p9PgnpPs LXS+GHtJjNYIJebVal2dkXZ37BxSrYZUSgAIjjJIARncx4/23UjmtIRs9cMcqDEP4lOs08 A7uLT80UtV/UC1lTbMeTqapg+Hi2YqpUvY0xrex6T20kigNJNV9qP33pOxLrHg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=iOmy4uK9; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 2F52C38BAC for ; Tue, 30 Apr 2024 20:28:27 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s1sC9-0004th-8z; Tue, 30 Apr 2024 14:27:15 -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 1s1sC6-0004tD-3c; Tue, 30 Apr 2024 14:27:10 -0400 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s1sC3-0002A1-Ch; Tue, 30 Apr 2024 14:27:09 -0400 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-1e4c4fb6af3so855665ad.0; Tue, 30 Apr 2024 11:27:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714501624; x=1715106424; darn=gnu.org; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=8kp2BhTBfR9v9Iq9+KFyye8eXHb8+fD8iYid2UBqWcI=; b=iOmy4uK9FBQd5YZzP0m5R1kIA0QX2jDGSa04tj7tmNmvpD6+a4vCPjVf/U2rKpaUMr xU8hAmqXPsYNyZreMy0xDDeYev1ZqWNKvwpaenaHXGNe4b2ect3+lb3mPogXOEnNZgA2 lecUDO+X5q2sJo+LXM14geNB8FcmGII7fzlux/LpguWHIzgp4WtoeX4GVkOS90TTtXYS F2wjySSzq3a3pZGJhxc2Gm6MMQYRp+S7qYRgYC9l7wwhBzqEyU98EqeWSNx5aD0k3FzA 1GIJy4IkqsH/S0R6qPj3s+A3GmxAMxz1Dxj84KuPTU+rP1szC5SbLsOARpqQQzE/Txdh uITA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714501624; x=1715106424; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=8kp2BhTBfR9v9Iq9+KFyye8eXHb8+fD8iYid2UBqWcI=; b=wbMK1KOywWDoMpqWIFGnqOKXI93AK8GXjmBPJz5DvTf8hVhUpDAHT9S5f51gfxlPbZ UxoVtfV1GPxqxm1KSXNrAP7KjqdqjjAmCtU5ow3cWoHLSlhAhYNxdlAsMIoFDASW3zwk GwjdLgi7lKaQgTovwO9VyQzYqnDzP9QFMLYC7Di47b3u7rNOrOcPQ3p1XgKtIuGocTrC Sy35Dax96FPhTkEentrotpVIUSq5m03ZwZTO2fMPFv2nk7z6hzhKUa+A9ph4dHUTW6Xv NuzYqWvvhVLk3GoJHs4K0B8ubW8weHD/nhN6th04lnjuQmrayKYgTrecFozhF0RaAxUO xdiA== X-Forwarded-Encrypted: i=1; AJvYcCWtyd/fEo4AxRGw0zchct54PwFE9AalTVf+QZksCC8q18cLjJjO81CHLSRF7hfcKaw+g1znilFOyRCQjlDXvFS/f01PCcFQ/M0UugS/l56RykwJ7T2Pf+mJlyY= X-Gm-Message-State: AOJu0YxZvgaMMuQCWysdiZBA3VedyOGZ51s9nUPKbShlmkMFXfuOKhTU SdSQJKsJ/m3NPzeAoHsrFsqGkxbtDhEiiTecnt4TPWdL8KPfl8ND X-Google-Smtp-Source: AGHT+IHlGIHf952Y1Hnw0X5u2qTQYWidc55cogZVLfzs93ehFf02oqSH6R8PWUF9OpWikzHj71J0Wg== X-Received: by 2002:a17:902:ce87:b0:1e0:b60f:5de3 with SMTP id f7-20020a170902ce8700b001e0b60f5de3mr976219plg.7.1714501624015; Tue, 30 Apr 2024 11:27:04 -0700 (PDT) Received: from [192.168.1.2] ([23.240.98.37]) by smtp.googlemail.com with ESMTPSA id b18-20020a170903229200b001eb2e6b14e0sm7612054plh.126.2024.04.30.11.27.02 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 30 Apr 2024 11:27:03 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------KOHU08gQooiw8hRBb2qOXo1y" Message-ID: <2f344439-d0d6-a3e5-963c-773bb5c833d6@gmail.com> Date: Tue, 30 Apr 2024 11:27:04 -0700 MIME-Version: 1.0 Subject: Re: Adding custom providers for thingatpt.el (was: [PATCH] Add support for 'thing-at-point' to get URL at point) Content-Language: en-US To: Ihor Radchenko Cc: eliz@gnu.org, emacs-devel@gnu.org, emacs-orgmode@gnu.org References: <87leba3ame.fsf@localhost> <88435424-afa3-d7a3-56ff-df9f0a2ca6ba@gmail.com> <875xz39cgp.fsf@localhost> <87ttk6da89.fsf@localhost> <673a0f71-c91f-8461-7388-9efbed6ba24f@gmail.com> <0c66ae28-7088-3ac7-be39-7714b8f80455@gmail.com> <87mspcave3.fsf@localhost> <253c058a-d349-41a7-7733-c73075bffcb6@gmail.com> <87sez36pvl.fsf@localhost> From: Jim Porter In-Reply-To: <87sez36pvl.fsf@localhost> Received-SPF: pass client-ip=2607:f8b0:4864:20::632; envelope-from=jporterbugs@gmail.com; helo=mail-pl1-x632.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-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -5.61 X-Spam-Score: -5.61 X-Migadu-Queue-Id: 2F52C38BAC X-Migadu-Scanner: mx11.migadu.com X-TUID: gxiJZ0Ui2vLs This is a multi-part message in MIME format. --------------KOHU08gQooiw8hRBb2qOXo1y Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 4/30/2024 4:39 AM, Ihor Radchenko wrote: > What happens if you have multiple providers for an URL? > You add the provider to the end, so it will have the lower priority in > this scenario. I guess that you want the opposite - EWW provider to take > precedence. Same for other changes. That's probably reasonable. I was just keeping things the way they were historically here, but we might as well fix this now. > It would make sense to add tests for "first wins" behaviour. Done. I've also fixed a bug in EWW and bug-reference-mode where it would return nil for (thing-at-point 'url) if point was at the *end* of a URL. It's now consistent with how 'thing-at-point' works by default. (If you have two consecutive URLs and point is between them - only possible with the custom provider function, I think - it'll prefer the second one.) --------------KOHU08gQooiw8hRBb2qOXo1y Content-Type: text/plain; charset=UTF-8; name="0001-Allow-defining-custom-providers-for-more-thingatpt-f.patch" Content-Disposition: attachment; filename*0="0001-Allow-defining-custom-providers-for-more-thingatpt-f.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBkYTI2ZjAxNjBjOTU1ZjE1ZTEyM2U1YjI4Y2Y4YTlmNTE0Mzk1ZTIxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFN1biwgMjggQXByIDIwMjQgMjE6MTk6NTMgLTA3MDAKU3ViamVjdDogW1BB VENIXSBBbGxvdyBkZWZpbmluZyBjdXN0b20gcHJvdmlkZXJzIGZvciBtb3JlICJ0aGluZ2F0 cHQiCiBmdW5jdGlvbnMKClRoaXMgYWxzbyBmaXhlcyBhbiBpc3N1ZSBpbiBFV1cgYW5kIGJ1 Zy1yZWZlcmVuY2UtbW9kZSB3aGVyZQoodGhpbmctYXQtcG9pbnQgJ3VybCkgYXQgdGhlIGVu ZCBvZiBhIFVSTCB3b3VsZCByZXR1cm4gbmlsLgoKKiBsaXNwL3RoaW5nYXRwdC5lbCAoZm9y d2FyZC10aGluZy1wcm92aWRlci1hbGlzdCkKKGJvdW5kcy1vZi10aGluZy1hdC1wb2ludC1w cm92aWRlci1hbGlzdCk6IE5ldyB2YXJpYWJsZXMuLi4KKGZvcndhcmQtdGhpbmcsIGJvdW5k cy1vZi10aGluZy1hdC1wb2ludCk6IC4uLiB1c2UgdGhlbS4KKHRleHQtcHJvcGVydHktc2Vh cmNoLWZvcndhcmQsIHRleHQtcHJvcGVydHktc2VhcmNoLWJhY2t3YXJkKQoocHJvcC1tYXRj aC1iZWdpbm5pbmcsIHByb3AtbWF0Y2gtZW5kKTogRGVjbGFyZS4KKHRoaW5nLWF0LXBvaW50 LWZvci10ZXh0LXByb3BlcnR5LCBmb3J3YXJkLXRoaW5nLWZvci10ZXh0LXByb3BlcnR5KQoo Ym91bmRzLW9mLXRoaW5nLWF0LXBvaW50LWZvci10ZXh0LXByb3BlcnR5KTogTmV3IGZ1bmN0 aW9ucy4KCiogbGlzcC9uZXQvZXd3LmVsIChld3ctLXVybC1hdC1wb2ludCk6IFVzZQondGhp bmctYXQtcG9pbnQtZm9yLXRleHQtcHJvcGVydHknLgooZXd3LS1ib3VuZHMtb2YtdXJsLWF0 LXBvaW50LCBld3ctLWZvcndhcmQtdXJsKTogTmV3IGZ1bmN0aW9ucy4uLgooZXd3LW1vZGUp OiAuLi4gdXNlIHRoZW0uCgoqIGxpc3AvcHJvZ21vZGVzL2J1Zy1yZWZlcmVuY2UuZWwgKGJ1 Zy1yZWZlcmVuY2UtLXVybC1hdC1wb2ludCk6IFVzZQondGhpbmctYXQtcG9pbnQtZm9yLXRl eHQtcHJvcGVydHknLgooYnVnLXJlZmVyZW5jZS0tYm91bmRzLW9mLXVybC1hdC1wb2ludCwg YnVnLXJlZmVyZW5jZS0tZm9yd2FyZC11cmwpOiBOZXcKZnVuY3Rpb25zLi4uCihidWctcmVm ZXJlbmNlLS1pbml0KTogLi4uIHVzZSB0aGVtLgoKKiB0ZXN0L2xpc3AvdGhpbmdhdHB0LXRl c3RzLmVsICh0aGluZy1hdC1wb2ludC1wcm92aWRlcnMpCihmb3J3YXJkLXRoaW5nLXByb3Zp ZGVycywgYm91bmRzLW9mLXRoaW5nLWF0LXBvaW50LXByb3ZpZGVycyk6IE5ldwp0ZXN0cy4K CiogZXRjL05FV1M6IEFubm91bmNlIHRoaXMgY2hhbmdlLgotLS0KIGV0Yy9ORVdTICAgICAg ICAgICAgICAgICAgICAgICAgfCAyNSArKysrKysrKy0tCiBsaXNwL25ldC9ld3cuZWwgICAg ICAgICAgICAgICAgIHwgMjEgKysrKysrKy0tCiBsaXNwL3Byb2dtb2Rlcy9idWctcmVmZXJl bmNlLmVsIHwgMjYgKysrKysrKysrLS0KIGxpc3AvdGhpbmdhdHB0LmVsICAgICAgICAgICAg ICAgfCA4MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIHRlc3QvbGlzcC90 aGluZ2F0cHQtdGVzdHMuZWwgICAgfCA1OSArKysrKysrKysrKysrKysrKysrKysrKwogNSBm aWxlcyBjaGFuZ2VkLCAxOTggaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZXRjL05FV1MgYi9ldGMvTkVXUwppbmRleCA3ZWZiNDExMGJjZC4uMDYxMTYx YmIyZmQgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBAIC0xNTkxLDE5 ICsxNTkxLDM0IEBAIG9mIHRoZSBjdXJyZW50bHkgZXhpc3Rpbmcga2V5Ym9hcmRzIG1hY3Jv cyB1c2luZyB0aGUgbmV3IG1vZGUKIGR1cGxpY2F0aW5nIHRoZW0sIGRlbGV0aW5nIHRoZW0s IGFuZCBlZGl0aW5nIHRoZWlyIGNvdW50ZXJzLCBmb3JtYXRzLAogYW5kIGtleXMuCiAKLSoq IE1pc2NlbGxhbmVvdXMKKyoqIFRoaW5nYXRwdAogCiAtLS0KLSoqKiBXZWJqdW1wIG5vdyBh c3N1bWVzIFVSSXMgYXJlIEhUVFBTIGluc3RlYWQgb2YgSFRUUC4KLUZvciBsaW5rcyBpbiAn d2VianVtcC1zaXRlcycgd2l0aG91dCBhbiBleHBsaWNpdCBVUkkgc2NoZW1lLCBpdCB3YXMK LXByZXZpb3VzbHkgYXNzdW1lZCB0aGF0IHRoZXkgc2hvdWxkIGJlIHByZWZpeGVkIHdpdGgg Imh0dHA6Ly8iLiAgU3VjaAotVVJJcyBhcmUgbm93IHByZWZpeGVkIHdpdGggImh0dHBzOi8v IiBpbnN0ZWFkLgorKioqIE5ldyB2YXJpYWJsZXMgZm9yIHByb3ZpZGluZyBjdXN0b20gdGhp bmdhdHB0IGltcGxlbWVudGF0aW9ucy4KK1RoZSBuZXcgdmFyaWFibGVzICdib3VuZHMtb2Yt dGhpbmctYXQtcG9pbnQtcHJvdmlkZXItYWxpc3QnIGFuZAorJ2ZvcndhcmQtdGhpbmctcHJv dmlkZXItYWxpc3QnIG5vdyBhbGxvdyBkZWZpbmluZyBjdXN0b20gaW1wbGVtZW50YXRpb25z CitvZiAnYm91bmRzLW9mLXRoaW5nLWF0LXBvaW50JyBhbmQgJ2ZvcndhcmQtdGhpbmcnLCBy ZXNwZWN0aXZlbHkuCisKKy0tLQorKioqIE5ldyBoZWxwZXIgZnVuY3Rpb25zIGZvciB0ZXh0 IHByb3BlcnR5LWJhc2VkIHRoaW5nYXRwdCBwcm92aWRlcnMuCitUaGUgbmV3IGhlbHBlciBm dW5jdGlvbnMgJ3RoaW5nLWF0LXBvaW50LWZvci10ZXh0LXByb3BlcnR5JywKKydib3VuZHMt b2YtdGhpbmctYXQtcG9pbnQtZm9yLXRleHQtcHJvcGVydHknLCBhbmQKKydmb3J3YXJkLXRo aW5nLWZvci10ZXh0LXByb3BlcnR5JyBjYW4gaGVscCB0byBoZWxwIGltcGxlbWVudCBjdXN0 b20KK3RoaW5nYXRwdCBwcm92aWRlcnMgZm9yICJ0aGluZ3MiIHRoYXQgYXJlIGRlZmluZWQg YnkgYSB0ZXh0IHByb3BlcnR5LgogCiAtLS0KICoqKiAnYnVnLXJlZmVyZW5jZS1tb2RlJyBu b3cgc3VwcG9ydHMgJ3RoaW5nLWF0LXBvaW50Jy4KIE5vdywgY2FsbGluZyAnKHRoaW5nLWF0 LXBvaW50ICd1cmwpJyB3aGVuIHBvaW50IGlzIG9uIGEgYnVnIHJlZmVyZW5jZQogd2lsbCBy ZXR1cm4gdGhlIFVSTCBmb3IgdGhhdCBidWcuCiAKKyoqIE1pc2NlbGxhbmVvdXMKKworLS0t CisqKiogV2VianVtcCBub3cgYXNzdW1lcyBVUklzIGFyZSBIVFRQUyBpbnN0ZWFkIG9mIEhU VFAuCitGb3IgbGlua3MgaW4gJ3dlYmp1bXAtc2l0ZXMnIHdpdGhvdXQgYW4gZXhwbGljaXQg VVJJIHNjaGVtZSwgaXQgd2FzCitwcmV2aW91c2x5IGFzc3VtZWQgdGhhdCB0aGV5IHNob3Vs ZCBiZSBwcmVmaXhlZCB3aXRoICJodHRwOi8vIi4gIFN1Y2gKK1VSSXMgYXJlIG5vdyBwcmVm aXhlZCB3aXRoICJodHRwczovLyIgaW5zdGVhZC4KKwogKysrCiAqKiogTmV3IHVzZXIgb3B0 aW9uICdyY2lyYy1sb2ctdGltZS1mb3JtYXQnCiBUaGlzIGFsbG93cyBmb3IgcmNpcmMgbG9n cyB0byB1c2UgYSBjdXN0b20gdGltZXN0YW1wIGZvcm1hdCwgdGhhbiB0aGUKZGlmZiAtLWdp dCBhL2xpc3AvbmV0L2V3dy5lbCBiL2xpc3AvbmV0L2V3dy5lbAppbmRleCAzOWVhOTY0ZDQ3 YS4uYjM5OTc3ODZkOWUgMTAwNjQ0Ci0tLSBhL2xpc3AvbmV0L2V3dy5lbAorKysgYi9saXNw L25ldC9ld3cuZWwKQEAgLTEzMTgsOSArMTMxOCwxNiBAQCBld3ctbW9kZQogICA7OyBkZXNr dG9wIHN1cHBvcnQKICAgKHNldHEtbG9jYWwgZGVza3RvcC1zYXZlLWJ1ZmZlciAjJ2V3dy1k ZXNrdG9wLW1pc2MtZGF0YSkKICAgKHNldHEgdHJ1bmNhdGUtbGluZXMgdCkKKyAgOzsgdGhp bmdhdHB0IHN1cHBvcnQKICAgKHNldHEtbG9jYWwgdGhpbmctYXQtcG9pbnQtcHJvdmlkZXIt YWxpc3QKLSAgICAgICAgICAgICAgKGFwcGVuZCB0aGluZy1hdC1wb2ludC1wcm92aWRlci1h bGlzdAotICAgICAgICAgICAgICAgICAgICAgICcoKHVybCAuIGV3dy0tdXJsLWF0LXBvaW50 KSkpKQorICAgICAgICAgICAgICAoY29ucyAnKHVybCAuIGV3dy0tdXJsLWF0LXBvaW50KQor ICAgICAgICAgICAgICAgICAgICB0aGluZy1hdC1wb2ludC1wcm92aWRlci1hbGlzdCkpCisg IChzZXRxLWxvY2FsIGZvcndhcmQtdGhpbmctcHJvdmlkZXItYWxpc3QKKyAgICAgICAgICAg ICAgKGNvbnMgJyh1cmwgLiBld3ctLWZvcndhcmQtdXJsKQorICAgICAgICAgICAgICAgICAg ICBmb3J3YXJkLXRoaW5nLXByb3ZpZGVyLWFsaXN0KSkKKyAgKHNldHEtbG9jYWwgYm91bmRz LW9mLXRoaW5nLWF0LXBvaW50LXByb3ZpZGVyLWFsaXN0CisgICAgICAgICAgICAgIChjb25z ICcodXJsIC4gZXd3LS1ib3VuZHMtb2YtdXJsLWF0LXBvaW50KQorICAgICAgICAgICAgICAg ICAgICBib3VuZHMtb2YtdGhpbmctYXQtcG9pbnQtcHJvdmlkZXItYWxpc3QpKQogICAoc2V0 cS1sb2NhbCBib29rbWFyay1tYWtlLXJlY29yZC1mdW5jdGlvbiAjJ2V3dy1ib29rbWFyay1t YWtlLXJlY29yZCkKICAgKGJ1ZmZlci1kaXNhYmxlLXVuZG8pCiAgIChzZXRxLWxvY2FsIHNo ci11cmwtdHJhbnNmb3JtZXIgIydld3ctLXRyYW5zZm9ybS11cmwpCkBAIC0xMzQ5LDcgKzEz NTYsMTUgQEAgZXd3LS1yZXNjYWxlLWltYWdlcwogCiAoZGVmdW4gZXd3LS11cmwtYXQtcG9p bnQgKCkKICAgImB0aGluZy1hdC1wb2ludCcgcHJvdmlkZXIgZnVuY3Rpb24uIgotICAoZ2V0 LXRleHQtcHJvcGVydHkgKHBvaW50KSAnc2hyLXVybCkpCisgICh0aGluZy1hdC1wb2ludC1m b3ItdGV4dC1wcm9wZXJ0eSAnc2hyLXVybCkpCisKKyhkZWZ1biBld3ctLWZvcndhcmQtdXJs IChuKQorICAiYGZvcndhcmQtdGhpbmcnIHByb3ZpZGVyIGZ1bmN0aW9uLiIKKyAgKGZvcndh cmQtdGhpbmctZm9yLXRleHQtcHJvcGVydHkgJ3Noci11cmwgbikpCisKKyhkZWZ1biBld3ct LWJvdW5kcy1vZi11cmwtYXQtcG9pbnQgKCkKKyAgImBib3VuZHMtb2YtdGhpbmctYXQtcG9p bnQnIHByb3ZpZGVyIGZ1bmN0aW9uLiIKKyAgKGJvdW5kcy1vZi10aGluZy1hdC1wb2ludC1m b3ItdGV4dC1wcm9wZXJ0eSAnc2hyLXVybCkpCiAKIDs7OyMjI2F1dG9sb2FkCiAoZGVmdW4g ZXd3LWJyb3dzZS11cmwgKHVybCAmb3B0aW9uYWwgbmV3LXdpbmRvdykKZGlmZiAtLWdpdCBh L2xpc3AvcHJvZ21vZGVzL2J1Zy1yZWZlcmVuY2UuZWwgYi9saXNwL3Byb2dtb2Rlcy9idWct cmVmZXJlbmNlLmVsCmluZGV4IDk3N2EzZDcyY2I3Li5iZTE2MmNmOWUxMSAxMDA2NDQKLS0t IGEvbGlzcC9wcm9nbW9kZXMvYnVnLXJlZmVyZW5jZS5lbAorKysgYi9saXNwL3Byb2dtb2Rl cy9idWctcmVmZXJlbmNlLmVsCkBAIC02NTgsMTkgKzY1OCwzOSBAQCBidWctcmVmZXJlbmNl LS1ydW4tYXV0by1zZXR1cAogCiAoZGVmdW4gYnVnLXJlZmVyZW5jZS0tdXJsLWF0LXBvaW50 ICgpCiAgICJgdGhpbmctYXQtcG9pbnQnIHByb3ZpZGVyIGZ1bmN0aW9uLiIKLSAgKGdldC1j aGFyLXByb3BlcnR5IChwb2ludCkgJ2J1Zy1yZWZlcmVuY2UtdXJsKSkKKyAgKHRoaW5nLWF0 LXBvaW50LWZvci10ZXh0LXByb3BlcnR5ICdidWctcmVmZXJlbmNlLXVybCkpCisKKyhkZWZ1 biBidWctcmVmZXJlbmNlLS1mb3J3YXJkLXVybCAobikKKyAgImBmb3J3YXJkLXRoaW5nJyBw cm92aWRlciBmdW5jdGlvbi4iCisgIChmb3J3YXJkLXRoaW5nLWZvci10ZXh0LXByb3BlcnR5 ICdidWctcmVmZXJlbmNlLXVybCBuKSkKKworKGRlZnVuIGJ1Zy1yZWZlcmVuY2UtLWJvdW5k cy1vZi11cmwtYXQtcG9pbnQgKCkKKyAgImBib3VuZHMtb2YtdGhpbmctYXQtcG9pbnQnIHBy b3ZpZGVyIGZ1bmN0aW9uLiIKKyAgKGJvdW5kcy1vZi10aGluZy1hdC1wb2ludC1mb3ItdGV4 dC1wcm9wZXJ0eSAnYnVnLXJlZmVyZW5jZS11cmwpKQogCiAoZGVmdW4gYnVnLXJlZmVyZW5j ZS0taW5pdCAoZW5hYmxlKQogICAoaWYgZW5hYmxlCiAgICAgICAocHJvZ24KICAgICAgICAg KGppdC1sb2NrLXJlZ2lzdGVyICMnYnVnLXJlZmVyZW5jZS1mb250aWZ5KQogICAgICAgICAo c2V0cS1sb2NhbCB0aGluZy1hdC1wb2ludC1wcm92aWRlci1hbGlzdAotICAgICAgICAgICAg ICAgICAgICAoYXBwZW5kIHRoaW5nLWF0LXBvaW50LXByb3ZpZGVyLWFsaXN0Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgJygodXJsIC4gYnVnLXJlZmVyZW5jZS0tdXJsLWF0LXBv aW50KSkpKSkKKyAgICAgICAgICAgICAgICAgICAgKGNvbnMgJyh1cmwgLiBidWctcmVmZXJl bmNlLS11cmwtYXQtcG9pbnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaW5nLWF0 LXBvaW50LXByb3ZpZGVyLWFsaXN0KSkKKyAgICAgICAgKHNldHEtbG9jYWwgZm9yd2FyZC10 aGluZy1wcm92aWRlci1hbGlzdAorICAgICAgICAgICAgICAgICAgICAoY29ucyAnKHVybCAu IGJ1Zy1yZWZlcmVuY2UtLWZvcndhcmQtdXJsKQorICAgICAgICAgICAgICAgICAgICAgICAg ICBmb3J3YXJkLXRoaW5nLXByb3ZpZGVyLWFsaXN0KSkKKyAgICAgICAgKHNldHEtbG9jYWwg Ym91bmRzLW9mLXRoaW5nLWF0LXBvaW50LXByb3ZpZGVyLWFsaXN0CisgICAgICAgICAgICAg ICAgICAgIChjb25zICcodXJsIC4gYnVnLXJlZmVyZW5jZS0tYm91bmRzLW9mLXVybC1hdC1w b2ludCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRzLW9mLXRoaW5nLWF0LXBv aW50LXByb3ZpZGVyLWFsaXN0KSkpCiAgICAgKGppdC1sb2NrLXVucmVnaXN0ZXIgIydidWct cmVmZXJlbmNlLWZvbnRpZnkpCiAgICAgKHNldHEgdGhpbmctYXQtcG9pbnQtcHJvdmlkZXIt YWxpc3QKICAgICAgICAgICAoZGVsZXRlICcoKHVybCAuIGJ1Zy1yZWZlcmVuY2UtLXVybC1h dC1wb2ludCkpCiAgICAgICAgICAgICAgICAgICB0aGluZy1hdC1wb2ludC1wcm92aWRlci1h bGlzdCkpCisgICAgKHNldHEgZm9yd2FyZC10aGluZy1wcm92aWRlci1hbGlzdAorICAgICAg ICAgIChkZWxldGUgJygodXJsIC4gYnVnLXJlZmVyZW5jZS0tZm9yd2FyZC11cmwpKQorICAg ICAgICAgICAgICAgICAgZm9yd2FyZC10aGluZy1wcm92aWRlci1hbGlzdCkpCisgICAgKHNl dHEgYm91bmRzLW9mLXRoaW5nLWF0LXBvaW50LXByb3ZpZGVyLWFsaXN0CisgICAgICAgICAg KGRlbGV0ZSAnKCh1cmwgLiBidWctcmVmZXJlbmNlLS1ib3VuZHMtb2YtdXJsLWF0LXBvaW50 KSkKKyAgICAgICAgICAgICAgICAgIGJvdW5kcy1vZi10aGluZy1hdC1wb2ludC1wcm92aWRl ci1hbGlzdCkpCiAgICAgKHNhdmUtcmVzdHJpY3Rpb24KICAgICAgICh3aWRlbikKICAgICAg IChidWctcmVmZXJlbmNlLXVuZm9udGlmeSAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpKSkK ZGlmZiAtLWdpdCBhL2xpc3AvdGhpbmdhdHB0LmVsIGIvbGlzcC90aGluZ2F0cHQuZWwKaW5k ZXggNzg5NmFkOTg0ZGYuLjgyNWY0OWNmYWI3IDEwMDY0NAotLS0gYS9saXNwL3RoaW5nYXRw dC5lbAorKysgYi9saXNwL3RoaW5nYXRwdC5lbApAQCAtNzUsNiArNzUsMjcgQEAgdGhpbmct YXQtcG9pbnQtcHJvdmlkZXItYWxpc3QKIGBleGlzdGluZy1maWxlbmFtZScsIGB1cmwnLCBg ZW1haWwnLCBgdXVpZCcsIGB3b3JkJywgYHNlbnRlbmNlJywKIGB3aGl0ZXNwYWNlJywgYGxp bmUnLCBgZmFjZScgYW5kIGBwYWdlJy4iKQogCisoZGVmdmFyIGZvcndhcmQtdGhpbmctcHJv dmlkZXItYWxpc3QgbmlsCisgICJBbGlzdCBvZiBwcm92aWRlcnMgZm9yIG1vdmluZyBmb3J3 YXJkIHRvIHRoZSBlbmQgb2YgYSBcInRoaW5nXCIuCitUaGlzIHZhcmlhYmxlIGNhbiBiZSBz ZXQgZ2xvYmFsbHksIG9yIGFwcGVuZGVkIHRvIGJ1ZmZlci1sb2NhbGx5IGJ5Cittb2Rlcywg dG8gcHJvdmlkZSBmdW5jdGlvbnMgdGhhdCB3aWxsIG1vdmUgZm9yd2FyZCB0byB0aGUgZW5k IG9mIGEKK1widGhpbmdcIiBhdCBwb2ludC4gIEVhY2ggZnVuY3Rpb24gc2hvdWxkIHRha2Ug YSBzaW5nbGUgYXJndW1lbnQgTiwgdGhlCitudW1iZXIgb2YgXCJ0aGluZ3NcIiB0byBtb3Zl IGZvcndhcmQgcGFzdC4gIFRoZSBmaXJzdCBwcm92aWRlciBmb3IgdGhlCitcInRoaW5nXCIg dGhhdCByZXR1cm5zIGEgbm9uLW5pbCB2YWx1ZSB3aW5zLgorCitZb3UgY2FuIHVzZSB0aGlz IHZhcmlhYmxlIGluIG11Y2ggdGhlIHNhbWUgd2F5IGFzCitgdGhpbmctYXQtcG9pbnQtcHJv dmlkZXItYWxpc3QnICh3aGljaCBzZWUpLiIpCisKKyhkZWZ2YXIgYm91bmRzLW9mLXRoaW5n LWF0LXBvaW50LXByb3ZpZGVyLWFsaXN0IG5pbAorICAiQWxpc3Qgb2YgcHJvdmlkZXJzIHRv IHJldHVybiB0aGUgYm91bmRzIG9mIGEgXCJ0aGluZ1wiIGF0IHBvaW50LgorVGhpcyB2YXJp YWJsZSBjYW4gYmUgc2V0IGdsb2JhbGx5LCBvciBhcHBlbmRlZCB0byBidWZmZXItbG9jYWxs eSBieQorbW9kZXMsIHRvIHByb3ZpZGUgZnVuY3Rpb25zIHRoYXQgd2lsbCByZXR1cm4gdGhl IGJvdW5kcyBvZiBhIFwidGhpbmdcIgorYXQgcG9pbnQuICBUaGUgZmlyc3QgcHJvdmlkZXIg Zm9yIHRoZSBcInRoaW5nXCIgdGhhdCByZXR1cm5zIGEgbm9uLW5pbAordmFsdWUgd2lucy4K KworWW91IGNhbiB1c2UgdGhpcyB2YXJpYWJsZSBpbiBtdWNoIHRoZSBzYW1lIHdheSBhcwor YHRoaW5nLWF0LXBvaW50LXByb3ZpZGVyLWFsaXN0JyAod2hpY2ggc2VlKS4iKQorCiA7OyBC YXNpYyBtb3ZlbWVudAogCiA7OzsjIyNhdXRvbG9hZApAQCAtODQsMTEgKzEwNSwxNiBAQCBm b3J3YXJkLXRoaW5nCiBQb3NzaWJpbGl0aWVzIGluY2x1ZGUgYHN5bWJvbCcsIGBsaXN0Jywg YHNleHAnLCBgZGVmdW4nLCBgbnVtYmVyJywKIGBmaWxlbmFtZScsIGB1cmwnLCBgZW1haWwn LCBgdXVpZCcsIGB3b3JkJywgYHNlbnRlbmNlJywgYHdoaXRlc3BhY2UnLAogYGxpbmUnLCBh bmQgYHBhZ2UnLiIKLSAgKGxldCAoKGZvcndhcmQtb3AgKG9yIChnZXQgdGhpbmcgJ2Zvcndh cmQtb3ApCi0JCQkoaW50ZXJuLXNvZnQgKGZvcm1hdCAiZm9yd2FyZC0lcyIgdGhpbmcpKSkp KQotICAgIChpZiAoZnVuY3Rpb25wIGZvcndhcmQtb3ApCi0JKGZ1bmNhbGwgZm9yd2FyZC1v cCAob3IgbiAxKSkKLSAgICAgIChlcnJvciAiQ2FuJ3QgZGV0ZXJtaW5lIGhvdyB0byBtb3Zl IG92ZXIgYSAlcyIgdGhpbmcpKSkpCisgIChzZXRxIG4gKG9yIG4gMSkpCisgIChvciAoc2Vx LXNvbWUgKGxhbWJkYSAoZWx0KQorICAgICAgICAgICAgICAgICAgKGFuZCAoZXEgKGNhciBl bHQpIHRoaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCAoY2RyIGVsdCkg bikpKQorICAgICAgICAgICAgICAgIGZvcndhcmQtdGhpbmctcHJvdmlkZXItYWxpc3QpCisg ICAgICAobGV0ICgoZm9yd2FyZC1vcCAob3IgKGdldCB0aGluZyAnZm9yd2FyZC1vcCkKKwkJ CSAgICAoaW50ZXJuLXNvZnQgKGZvcm1hdCAiZm9yd2FyZC0lcyIgdGhpbmcpKSkpKQorICAg ICAgICAoaWYgKGZ1bmN0aW9ucCBmb3J3YXJkLW9wKQorCSAgICAoZnVuY2FsbCBmb3J3YXJk LW9wIG4pCisgICAgICAgICAgKGVycm9yICJDYW4ndCBkZXRlcm1pbmUgaG93IHRvIG1vdmUg b3ZlciBhICVzIiB0aGluZykpKSkpCiAKIDs7IEdlbmVyYWwgcm91dGluZXMKIApAQCAtMTA2 LDYgKzEzMiwxMCBAQCBib3VuZHMtb2YtdGhpbmctYXQtcG9pbnQKIFJldHVybiBhIGNvbnMg Y2VsbCAoU1RBUlQgLiBFTkQpIGdpdmluZyB0aGUgc3RhcnQgYW5kIGVuZAogcG9zaXRpb25z IG9mIHRoZSB0aGluZyBmb3VuZC4iCiAgIChjb25kCisgICAoKHNlcS1zb21lIChsYW1iZGEg KGVsdCkKKyAgICAgICAgICAgICAgICAoYW5kIChlcSAoY2FyIGVsdCkgdGhpbmcpCisgICAg ICAgICAgICAgICAgICAgICAoZnVuY2FsbCAoY2RyIGVsdCkpKSkKKyAgICAgICAgICAgICAg ICBib3VuZHMtb2YtdGhpbmctYXQtcG9pbnQtcHJvdmlkZXItYWxpc3QpKQogICAgKChnZXQg dGhpbmcgJ2JvdW5kcy1vZi10aGluZy1hdC1wb2ludCkKICAgICAoZnVuY2FsbCAoZ2V0IHRo aW5nICdib3VuZHMtb2YtdGhpbmctYXQtcG9pbnQpKSkKICAgIDs7IElmIHRoZSBidWZmZXIg aXMgdG90YWxseSBlbXB0eSwgZ2l2ZSB1cC4KQEAgLTc3NSw0ICs4MDUsNDcgQEAgbGlzdC1h dC1wb2ludAogICAgICAgKGdvdG8tY2hhciAob3IgKG50aCA4IHBwc3MpIChwb2ludCkpKQog ICAgICAgKGZvcm0tYXQtcG9pbnQgJ2xpc3QgJ2xpc3RwKSkpKQogCis7OyBQcm92aWRlciBo ZWxwZXIgZnVuY3Rpb25zCisKKyhkZWZ1biB0aGluZy1hdC1wb2ludC1mb3ItdGV4dC1wcm9w ZXJ0eSAocHJvcGVydHkpCisgICJSZXR1cm4gdGhlIFwidGhpbmdcIiBhdCBwb2ludC4KK0Vh Y2ggXCJ0aGluZ1wiIGlzIGEgcmVnaW9uIG9mIHRleHQgd2l0aCB0aGUgc3BlY2lmaWVkIHRl eHQgUFJPUEVSVFkgc2V0LiIKKyAgKG9yIChnZXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQpIHBy b3BlcnR5KQorICAgICAgKGFuZCAoPiAocG9pbnQpIChwb2ludC1taW4pKQorICAgICAgICAg ICAoZ2V0LXRleHQtcHJvcGVydHkgKDEtIChwb2ludCkpIHByb3BlcnR5KSkpKQorCisoYXV0 b2xvYWQgJ3RleHQtcHJvcGVydHktc2VhcmNoLWZvcndhcmQgInRleHQtcHJvcGVydHktc2Vh cmNoIikKKyhhdXRvbG9hZCAndGV4dC1wcm9wZXJ0eS1zZWFyY2gtYmFja3dhcmQgInRleHQt cHJvcGVydHktc2VhcmNoIikKKyhhdXRvbG9hZCAncHJvcC1tYXRjaC1iZWdpbm5pbmcgInRl eHQtcHJvcGVydHktc2VhcmNoIikKKyhhdXRvbG9hZCAncHJvcC1tYXRjaC1lbmQgInRleHQt cHJvcGVydHktc2VhcmNoIikKKworKGRlZnVuIGZvcndhcmQtdGhpbmctZm9yLXRleHQtcHJv cGVydHkgKHByb3BlcnR5IG4pCisgICJNb3ZlIGZvcndhcmQgdG8gdGhlIGVuZCBvZiB0aGUg TnRoIG5leHQgXCJ0aGluZ1wiLgorRWFjaCBcInRoaW5nXCIgaXMgYSByZWdpb24gb2YgdGV4 dCB3aXRoIHRoZSBzcGVjaWZpZWQgdGV4dCBQUk9QRVJUWSBzZXQuIgorICAobGV0ICgoc2Vh cmNoLWZ1bmMgKGlmICg+IG4gMCkgIyd0ZXh0LXByb3BlcnR5LXNlYXJjaC1mb3J3YXJkCisg ICAgICAgICAgICAgICAgICAgICAgICMndGV4dC1wcm9wZXJ0eS1zZWFyY2gtYmFja3dhcmQp KQorICAgICAgICAocG9zLWZ1bmMgKGlmICg+IG4gMCkgIydwcm9wLW1hdGNoLWVuZCAjJ3By b3AtbWF0Y2gtYmVnaW5uaW5nKSkKKyAgICAgICAgKGxpbWl0IChpZiAoPiBuIDApIChwb2lu dC1tYXgpIChwb2ludC1taW4pKSkpCisgICAgKGNhdGNoICdkb25lCisgICAgICAoZG90aW1l cyAoXyAoYWJzIG4pKQorICAgICAgICAoaWYtbGV0ICgobWF0Y2ggKGZ1bmNhbGwgc2VhcmNo LWZ1bmMgcHJvcGVydHkpKSkKKyAgICAgICAgICAgIChnb3RvLWNoYXIgKGZ1bmNhbGwgcG9z LWZ1bmMgbWF0Y2gpKQorICAgICAgICAgIChnb3RvLWNoYXIgbGltaXQpCisgICAgICAgICAg KHRocm93ICdkb25lIHQpKSkpCisgICAgOzsgUmV0dXJuIG5vbi1uaWwuCisgICAgdCkpCisK KyhkZWZ1biBib3VuZHMtb2YtdGhpbmctYXQtcG9pbnQtZm9yLXRleHQtcHJvcGVydHkgKHBy b3BlcnR5KQorICAiRGV0ZXJtaW5lIHRoZSBzdGFydCBhbmQgZW5kIGJ1ZmZlciBsb2NhdGlv bnMgZm9yIHRoZSBcInRoaW5nXCIgYXQgcG9pbnQuCitUaGUgXCJ0aGluZ1wiIGlzIGEgcmVn aW9uIG9mIHRleHQgd2l0aCB0aGUgc3BlY2lmaWVkIHRleHQgUFJPUEVSVFkgc2V0LiIKKyAg KGxldCAoKHBvcyAocG9pbnQpKSkKKyAgICAod2hlbiAob3IgKGdldC10ZXh0LXByb3BlcnR5 IHBvcyBwcm9wZXJ0eSkKKyAgICAgICAgICAgICAgKGFuZCAoPiBwb3MgKHBvaW50LW1pbikp CisgICAgICAgICAgICAgICAgICAgKGdldC10ZXh0LXByb3BlcnR5IChzZXRxIHBvcyAoMS0g cG9zKSkgcHJvcGVydHkpKSkKKyAgICAgIChjb25zIChvciAocHJldmlvdXMtc2luZ2xlLXBy b3BlcnR5LWNoYW5nZQorICAgICAgICAgICAgICAgICAobWluICgxKyBwb3MpIChwb2ludC1t YXgpKSBwcm9wZXJ0eSkKKyAgICAgICAgICAgICAgICAocG9pbnQtbWluKSkKKyAgICAgICAg ICAgIChvciAobmV4dC1zaW5nbGUtcHJvcGVydHktY2hhbmdlIHBvcyBwcm9wZXJ0eSkKKyAg ICAgICAgICAgICAgICAocG9pbnQtbWF4KSkpKSkpCisKIDs7OyB0aGluZ2F0cHQuZWwgZW5k cyBoZXJlCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvdGhpbmdhdHB0LXRlc3RzLmVsIGIvdGVz dC9saXNwL3RoaW5nYXRwdC10ZXN0cy5lbAppbmRleCBlNTA3MzhmMTEyMi4uODhhNGJjOGEy N2QgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC90aGluZ2F0cHQtdGVzdHMuZWwKKysrIGIvdGVz dC9saXNwL3RoaW5nYXRwdC10ZXN0cy5lbApAQCAtMjU4LDQgKzI1OCw2MyBAQCB0ZXN0LW51 bWJlcnMtaGV4LWMKICAgKHNob3VsZCAoZXF1YWwgKHRlc3QtLW51bWJlciAiMHhmMDAiIDIp IDM4NDApKQogICAoc2hvdWxkIChlcXVhbCAodGVzdC0tbnVtYmVyICIweGYwMCIgMykgMzg0 MCkpKQogCisoZXJ0LWRlZnRlc3QgdGhpbmctYXQtcG9pbnQtcHJvdmlkZXJzICgpCisgICh3 aXRoLXRlbXAtYnVmZmVyCisgICAgKHNldHEtbG9jYWwKKyAgICAgdGhpbmctYXQtcG9pbnQt cHJvdmlkZXItYWxpc3QKKyAgICAgYCgodXJsIC4gLChsYW1iZGEgKCkgKHRoaW5nLWF0LXBv aW50LWZvci10ZXh0LXByb3BlcnR5ICdmb28tdXJsKSkpCisgICAgICAgKHVybCAuICwobGFt YmRhICgpICh0aGluZy1hdC1wb2ludC1mb3ItdGV4dC1wcm9wZXJ0eSAnYmFyLXVybCkpKSkp CisgICAgKGluc2VydCAocHJvcGVydGl6ZSAiaGVsbG8iICdmb28tdXJsICJmb28uY29tIikg IlxuIgorICAgICAgICAgICAgKHByb3BlcnRpemUgImdvb2RieWUiICdiYXItdXJsICJiYXIu Y29tIikpCisgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICA7OyBHZXQgdGhlIFVS TCB1c2luZyB0aGUgZmlyc3QgcHJvdmlkZXIuCisgICAgKHNob3VsZCAoZXF1YWwgKHRoaW5n LWF0LXBvaW50ICd1cmwpICJmb28uY29tIikpCisgICAgKHNob3VsZCAoZXF1YWwgKHRoaW5n LWF0LXBvaW50ICd3b3JkKSAiaGVsbG8iKSkKKyAgICAoZ290by1jaGFyIChwb2ludC1tYXgp KQorICAgIDs7IEdldCB0aGUgVVJMIHVzaW5nIHRoZSBzZWNvbmQgcHJvdmlkZXIuCisgICAg KHNob3VsZCAoZXF1YWwgKHRoaW5nLWF0LXBvaW50ICd1cmwpICJiYXIuY29tIikpKSkKKwor KGVydC1kZWZ0ZXN0IGZvcndhcmQtdGhpbmctcHJvdmlkZXJzICgpCisgICh3aXRoLXRlbXAt YnVmZmVyCisgICAgKHNldHEtbG9jYWwKKyAgICAgZm9yd2FyZC10aGluZy1wcm92aWRlci1h bGlzdAorICAgICBgKCh1cmwgLiAsKGxhbWJkYSAobikgKGZvcndhcmQtdGhpbmctZm9yLXRl eHQtcHJvcGVydHkgJ2Zvby11cmwgbikpKQorICAgICAgICh1cmwgLiAsKGxhbWJkYSAobikg KGZvcndhcmQtdGhpbmctZm9yLXRleHQtcHJvcGVydHkgJ2Jhci11cmwgbikpKSkpCisgICAg KGluc2VydCAocHJvcGVydGl6ZSAiaGVsbG8iICdmb28tdXJsICJmb28uY29tIikgInRoZXJl XG4iCisgICAgICAgICAgICAocHJvcGVydGl6ZSAiZ29vZGJ5ZSIgJ2Jhci11cmwgImJhci5j b20iKSkKKyAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgIChzYXZlLWV4Y3Vyc2lv bgorICAgICAgKGZvcndhcmQtdGhpbmcgJ3VybCkgICAgICAgICAgICAgIDsgTW92ZSBwYXN0 IHRoZSBmaXJzdCBVUkwuCisgICAgICAoc2hvdWxkICg9IChwb2ludCkgNikpCisgICAgICAo Zm9yd2FyZC10aGluZyAndXJsKSAgICAgICAgICAgICAgOyBNb3ZlIHBhc3QgdGhlIHNlY29u ZCBVUkwuCisgICAgICAoc2hvdWxkICg9IChwb2ludCkgMTkpKSkKKyAgICAoZ290by1jaGFy IChwb2ludC1taW4pKSAgICAgICAgICAgICA7IEdvIGJhY2sgdG8gdGhlIGJlZ2lubmluZy4u LgorICAgIChmb3J3YXJkLXRoaW5nICd3b3JkKSAgICAgICAgICAgICAgIDsgLi4uIGFuZCBt b3ZlIHBhc3QgdGhlIGZpcnN0IHdvcmQuCisgICAgKHNob3VsZCAoPSAocG9pbnQpIDExKSkp KQorCisoZXJ0LWRlZnRlc3QgYm91bmRzLW9mLXRoaW5nLWF0LXBvaW50LXByb3ZpZGVycyAo KQorICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgIChzZXRxLWxvY2FsCisgICAgIGJvdW5kcy1v Zi10aGluZy1hdC1wb2ludC1wcm92aWRlci1hbGlzdAorICAgICBgKCh1cmwgLiAsKGxhbWJk YSAoKQorICAgICAgICAgICAgICAgICAoYm91bmRzLW9mLXRoaW5nLWF0LXBvaW50LWZvci10 ZXh0LXByb3BlcnR5ICdmb28tdXJsKSkpCisgICAgICAgKHVybCAuICwobGFtYmRhICgpCisg ICAgICAgICAgICAgICAgIChib3VuZHMtb2YtdGhpbmctYXQtcG9pbnQtZm9yLXRleHQtcHJv cGVydHkgJ2Jhci11cmwpKSkpKQorICAgIChpbnNlcnQgKHByb3BlcnRpemUgImhlbGxvIiAn Zm9vLXVybCAiZm9vLmNvbSIpICJ0aGVyZVxuIgorICAgICAgICAgICAgKHByb3BlcnRpemUg Imdvb2RieWUiICdiYXItdXJsICJiYXIuY29tIikpCisgICAgKGdvdG8tY2hhciAocG9pbnQt bWluKSkKKyAgICA7OyBMb29rIGZvciBhIFVSTCwgdXNpbmcgdGhlIGZpcnN0IHByb3ZpZGVy IGFib3ZlLgorICAgIChzaG91bGQgKGVxdWFsIChib3VuZHMtb2YtdGhpbmctYXQtcG9pbnQg J3VybCkgJygxIC4gNikpKQorICAgIChzaG91bGQgKGVxIChzYXZlLWV4Y3Vyc2lvbiAoYmVn aW5uaW5nLW9mLXRoaW5nICd1cmwpKSAxKSkKKyAgICAoc2hvdWxkIChlcSAoc2F2ZS1leGN1 cnNpb24gKGVuZC1vZi10aGluZyAndXJsKSkgNikpCisgICAgOzsgTG9vayBmb3IgYSB3b3Jk LCB3aGljaCBzaG91bGQgKm5vdCogdXNlIG91ciBwcm92aWRlciBhYm92ZS4KKyAgICAoc2hv dWxkIChlcXVhbCAoYm91bmRzLW9mLXRoaW5nLWF0LXBvaW50ICd3b3JkKSAnKDEgLiAxMSkp KQorICAgIChzaG91bGQgKGVxIChzYXZlLWV4Y3Vyc2lvbiAoYmVnaW5uaW5nLW9mLXRoaW5n ICd3b3JkKSkgMSkpCisgICAgKHNob3VsZCAoZXEgKHNhdmUtZXhjdXJzaW9uIChlbmQtb2Yt dGhpbmcgJ3dvcmQpKSAxMSkpCisgICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkKKyAgICA7 OyBMb29rIGZvciBhIFVSTCwgdXNpbmcgdGhlIHNlY29uZCBwcm92aWRlciBhYm92ZS4KKyAg ICAoc2hvdWxkIChlcXVhbCAoYm91bmRzLW9mLXRoaW5nLWF0LXBvaW50ICd1cmwpICcoMTIg LiAxOSkpKQorICAgIChzaG91bGQgKGVxIChzYXZlLWV4Y3Vyc2lvbiAoYmVnaW5uaW5nLW9m LXRoaW5nICd1cmwpKSAxMikpCisgICAgKHNob3VsZCAoZXEgKHNhdmUtZXhjdXJzaW9uIChl bmQtb2YtdGhpbmcgJ3VybCkpIDE5KSkpKQorCiA7OzsgdGhpbmdhdHB0LXRlc3RzLmVsIGVu ZHMgaGVyZQotLSAKMi4yNS4xCgo= --------------KOHU08gQooiw8hRBb2qOXo1y--