From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:bcc0::]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id ckiPAsOeamCZFAAAgWs5BA (envelope-from ) for ; Mon, 05 Apr 2021 07:23:15 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id cA5zNsKeamDLdwAA1q6Kng (envelope-from ) for ; Mon, 05 Apr 2021 05:23:14 +0000 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 0F6B813B15 for ; Mon, 5 Apr 2021 07:23:13 +0200 (CEST) Received: from localhost ([::1]:39820 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lTHhg-0001EU-0S for larch@yhetil.org; Mon, 05 Apr 2021 01:23:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43032) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lTHhI-0001Cw-4f for emacs-orgmode@gnu.org; Mon, 05 Apr 2021 01:22:48 -0400 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]:44709) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lTHhF-00014I-Qk for emacs-orgmode@gnu.org; Mon, 05 Apr 2021 01:22:47 -0400 Received: by mail-wr1-x434.google.com with SMTP id c8so9946321wrq.11 for ; Sun, 04 Apr 2021 22:22:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=ZOJchYinQSzSrjU7fNDaga3BflJUnS6UInDp6QaISJA=; b=choB/ZiiQrYWheDdBD1CZpZDz+B21jX+xj+QLWvyHDB2VeZ513hBhoJc82arMfKpbB xA2dJOrnBqrLTXG7XuQmaolepv9gRl0hm2V5+vdQ6eF6fp0Ay5zDZDmcvobkMnbbqtyo mSH8fM+Gj2zN1hnLED/6WQDUFHyxFC1a1XH2Y3oE6QZaKzPzCoFi4r3b+qS3/wu8W8UX rBrr+5kpVXKUY82ZQ7Igc3sFrDf2V7zESHpQJoCg/PYCNBcszvEqAwFugeIfbD48uFbU MWVBXdummhjtOD8wPDXnj8PeiPTQjtd8kOzeltCd9HjvBfdsaELMwNgjv4kFOPa0OzD5 DV0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=ZOJchYinQSzSrjU7fNDaga3BflJUnS6UInDp6QaISJA=; b=lj5ofsU6QOaNjd6PR3IKP4Qo4pDMB0hP/BmSEApY7mdm2Ae5Dy7FLnCPreZQi3qntY 5HsBzpk+oVyBc3vlxfDeyPCCTYq6pYgb5BKIDPqxzG2DPnSFFV637b2VOgC1bJDdesHE 7yKox26Hkfr9W8sFVo1EuP79OuS81IvsSnAjGdNr7xCA+60lMC1qOj6++h7Wk74+l+iD 2+AEZYAE3qShspIhQZcW7wHegpmZsAWLAQC3wNxJm/80IatkkuHioQzVe5KhklERoq4P e+q9IkyVTQK73br00KoywQd6vrJB0cPdbAppXAnGs/PHaF3RztdXZt48vfDLkGoV5mzH CLNg== X-Gm-Message-State: AOAM532wGtWnQx1cWFJG48RZLzSn5MkaSCyMLw26JYEyPARnyOAAkDrI zbVtwAR+N41S3toqcJTGXN7f9qPylLySvvIL0fI+vNS0 X-Google-Smtp-Source: ABdhPJwxl56/ety3GWYzU/iBQp3n0jB1RCOPO9h1zBrFoVNKTX20oF3fcYF0IVNLQxFZHLnU70KptQC78zwwlcd7FfE= X-Received: by 2002:a05:6000:10c3:: with SMTP id b3mr27150450wrx.96.1617600163737; Sun, 04 Apr 2021 22:22:43 -0700 (PDT) MIME-Version: 1.0 References: <877dlmhuu9.fsf@nicolasgoaziou.fr> <877dlhod94.fsf@nicolasgoaziou.fr> In-Reply-To: <877dlhod94.fsf@nicolasgoaziou.fr> From: Tom Gillespie Date: Sun, 4 Apr 2021 22:22:32 -0700 Message-ID: Subject: Re: Bug: inconsistent escaping of coderef regexp To: emacs-orgmode Content-Type: multipart/mixed; boundary="00000000000026114005bf32e346" Received-SPF: pass client-ip=2a00:1450:4864:20::434; envelope-from=tgbugs@gmail.com; helo=mail-wr1-x434.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.23 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" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1617600194; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=ZOJchYinQSzSrjU7fNDaga3BflJUnS6UInDp6QaISJA=; b=MCAj53m7OeMtfvuWavmWrT3W8QqBB4A4NduVoEl/xxD2qbw9JA/aFbExUiZfmDBerUcPIn 0MAM5szJjgPFtTmXtmPU5Bv9OV7WSl5/HqCB7C0+PObl5gTRa+Q8druTux/W7BJ4gu+sTc SRv6/r1PUWlA4Hj4GnTQPZIcEYEL04Ejskz3JS3DrX9YXyVftgdpWDP7vw3lV38MjMXqkF BVy6zaikObu1sPqoLA1G8Wx7+OH9gBl2PwTN4o7AvjxGFpAhnOL0SEaJd1Yk1wFL6ixrUD yp5MnTVvOt/REcBwZonj/4S0ctysIuDWDhCuqMuw5a3PDYfvyVOO33E1aOm8oQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1617600194; a=rsa-sha256; cv=none; b=j77mHYLzDn1uk/MZA0rkcTMPdzPHKEGp1ic7ZB9U8nTxwAyFcDKtnKbHN9fiKikWO/pW15 RVOwMw5y8itsJP3jxvkAM3qj4RihaSqejnss1Psu5XtH0PMdGOMw2+yqzFKblXKKRlCPl7 zxKtfSSNeobzr8jpiVj+9A7Wp/0surtyEq3BdKBQxWvoxwztUyCY4jogz+Nu+zPr9yKTED XRWAVW8mkF67C1WQp4YlgG6bR+6f4WmahJxpUVnCaEyFEKhPL2qsIzFsi5U6dPzoMUFB5q UWrzF0g9lh2hJBT314hnVeU4Hi0TPh6TDmQ/VyCGENTb7F6mfLq+IpAOvZRRgQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b="choB/Zii"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Migadu-Spam-Score: -2.04 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b="choB/Zii"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Migadu-Queue-Id: 0F6B813B15 X-Spam-Score: -2.04 X-Migadu-Scanner: scn0.migadu.com X-TUID: q2L5f/F8A5DE --00000000000026114005bf32e346 Content-Type: text/plain; charset="UTF-8" Hi Nicolas, I've attached a patch with a first pass implementation that I think resolves most of the issues. It probably needs a few tests to go along with it, but I think it is the simplest way forward. I tried to make the changes without disrupting the org-babel info structure, but it comes with the cost of having to pull out :coderef-prefix in a number of separate contexts. Best, Tom > If possible, I'd like not to conflate current issue with switches > deprecation, which needs to be discussed separately. We can decouple them, so not an issue. The attached patch implements the header arg equivalents of -r and -l without making any changes to the existing switch behavior. > What do you mean by "it is impossible for the user to specify their own > coderef regexp that can be used in both cases"? In particular, what is > a coderef regexp in this context? I know about coderef format, but > I don't think users are supposed to provide a regexp here. I did a first pass implementation and realized that allowing users to specify coderef-regexp is a bad idea. The attached patch fixes the divergent behavior of org-bable-tangle-single-block and provides a standard way to specify a :coderef-prefix regexp so that empty comments can be stripped. --00000000000026114005bf32e346 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-improve-org-src-coderef-regexp-and-regularize-usage.patch" Content-Disposition: attachment; filename="0001-improve-org-src-coderef-regexp-and-regularize-usage.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kn458weo0 RnJvbSBlMDE3ZmUzZjRmYjM2ZGEyYzg1NjBhOTk5OWU1MjZiOGJkZmQ0MmRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUb20gR2lsbGVzcGllIDx0Z2J1Z3NAZ21haWwuY29tPgpEYXRl OiBTdW4sIDQgQXByIDIwMjEgMjE6NDA6MzIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBpbXByb3Zl IG9yZy1zcmMtY29kZXJlZi1yZWdleHAgYW5kIHJlZ3VsYXJpemUgdXNhZ2UKCiogbGlzcC9vYi1j b3JlLmVsCm9yZy1iYWJlbC1jb21tb24taGVhZGVyLWFyZ3Mtdy12YWx1ZXM6IG5ldyA6Y29kZXJl Zi0gaGVhZGVyIGFyZ3MKb3JnLWJhYmVsLXNhZmUtaGVhZGVyLWFyZ3M6IGluY2x1ZGUgdGhlIG5l dyA6Y29kZXJlZi0gaGVhZGVyIGFyZ3MKKG9yZy1iYWJlbC1nZXQtc3JjLWJsb2NrLWluZm8pOiBj YWx1bGF0ZSBwYXJhbXMgYmVmb3JlIGluZm8gaW4gbGV0KiBzbwp0aGF0IHRoZXkgY2FuIGJlIHVz ZWQgdG8gc2V0IHRoZSBjb2RlcmVmLWZvcm1hdCBmaWVsZCAobnRoIDYgaW5mbykKKG9yZy1iYWJl bC0tZXhwYW5kLWJvZHkpOiB1c2UgY29kZXJlZi1wcmVmaXggdG8gY29ycmVjdGx5IHN0cmlwCmNv ZGVyZWZzIHdoZW4gZXhwYW5kaW5nCgoqIGxpc3Avb2ItdGFuZ2xlLmVsIChvcmItYmFiZWwtdGFu Z2xlLXNpbmdsZS1ibG9jayk6IFJlZ3VsYXJpemUKYmVoYXZpb3Igd2hlbiByZW1vdmluZyBjb2Rl cmVmcyBkdXJpbmcgdGFuZ2xpbmcuIFRoaXMgZml4ZXMgYW4gaXNzdWUKd2hlcmUgdHJhaWxpbmcg d2hpdGVzcGFjZSB3b3VsZCBiZSByZXRhaW5lZCB3aGVuIGNvZGVyZWZzIHdlcmUgcmVtb3ZlZApm b3IgdGFuZ2xpbmcuIE1ha2UgdGhlIGhlYWRlciBhcmd1bWVudCA6Y29kZXJlZi10YW5nbGUgbm8g d29yayB0aGUKc2FtZSB3YXkgdGhhdCB0aGUgLXIgc3dpdGNoIGN1cnJlbnRseSB3b3JrcwoKKiBs aXNwL29sLmVsIChvcmctbGluay1zZWFyY2gpOiB1c2Ugb3JnIGJhYmVsIGluZm8gdG8gbWF0Y2gg dGhlCmNvZGVyZWYgZm9ybWF0IGZvciBlYWNoIGJsb2NrCgoqIGxpc3Avb3JnLXNyYy5lbCAob3Jn LXNyYy1jb2RlcmVmLXJlZ2V4cCk6IG5vdyB0YWtlcyBhbiBhZGRpdGlvbmFsCmFyZ3VtZW50IHJ4 LXByZWZpeCB0aGF0IGNhbiBiZSB1c2VkIHRvIGN1c3RvbWl6ZSB0aGUgdGV4dCBwcmVjZWVkaW5n CnRoZSBjb2RlcmVmIHRoYXQgc2hvdWxkIGJlIHJlbW92ZWQgZHVyaW5nIHRhbmdsaW5nLCB0aGlz IGlzIG1vc3QKdXNlZnVsIGZvciByZW1vdmluZyBjb21tZW50cyBhbmQgdHJhaWxpbmcgd2hpdGVz cGFjZS4KCiogbGlzcC9veC5lbCAob3JnLWV4cG9ydC1yZXNvbHZlLWNvZGVyZWYpCmFuZCAob3Jn LWV4cG9ydC11bnJhdmVsLWNvZGUpOiB1c2Ugb3JnIGJhYmVsIGluZm8gdG8KY29ycmVjdGx5IG1h dGNoIHRoZSBjb2RlcmVmIGZvcm1hdCBmb3IgZWFjaCBibG9jay4KClRoaXMgY29tbWl0IGFkZHMg c3VwcG9ydCBmb3IgdGhyZWUgbmV3IHNyYyBibG9jayBoZWFkZXIgYXJndW1lbnRzLAo6Y29kZXJl Zi1mb3JtYXQgOmNvZGVyZWYtcHJlZml4IGFuZCA6Y29kZXJlZi10YW5nbGUuIDpjb2RlcmVmLWZv cm1hdApoYXMgdGhlIHNhbWUgYmVoYXZpb3IgaGFzIHRoZSBvcmcgc3JjIHN3aXRjaCAtbCBhbmQg OmNvZGVyZWYtdGFuZ2xlCmhhcyB0aGUgc2FtZSBiZWhhdmlvciBhcyBvcmcgc3JjIHN3aXRjaCAt ci4gOmNvZGVyZWYtcHJlZml4IHByb3ZpZGVzCm5ldyBmdW5jdGlvbmFsaXR5IGFuZCBtYWtlcyBp dCBwb3NzaWJsZSB0byBzZXQgdGhlIHJlZ2V4cCBmb3IgdGV4dApsZWFkaW5nIHVwIHRvIHRoZSBj b2RlcmVmLiBJbiBwYXJ0aWN1bGFyIHRoaXMgY2FuIGJlIHVzZWQgdG8gc3RyaXAKY29tbWVudHMs IHdoaWNoIGFyZSByZXF1aXJlZCBpZiBhdXRob3JpbmcgYW4gb3JnIGZpbGUgdGhhdCB3b3JrcyB3 aXRoCm9sZGVyIHZlcnNpb25zIG9mIG9yZy4KLS0tCiBsaXNwL29iLWNvcmUuZWwgICB8IDQzICsr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIGxpc3Avb2ItdGFuZ2xl LmVsIHwgMTggKysrKysrKysrKystLS0tLS0tCiBsaXNwL29sLmVsICAgICAgICB8IDE3ICsrKysr KysrKysrLS0tLS0tCiBsaXNwL29yZy1zcmMuZWwgICB8ICA1ICsrKy0tCiBsaXNwL294LmVsICAg ICAgICB8IDE1ICsrKysrKysrKysrLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCA2MSBpbnNlcnRpb25z KCspLCAzNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL29iLWNvcmUuZWwgYi9saXNw L29iLWNvcmUuZWwKaW5kZXggMmU3OGFjM2U2Li5mZWI2ZjIyMzUgMTAwNjQ0Ci0tLSBhL2xpc3Av b2ItY29yZS5lbAorKysgYi9saXNwL29iLWNvcmUuZWwKQEAgLTc2LDcgKzc2LDcgQEAKIChkZWNs YXJlLWZ1bmN0aW9uIG9yZy1wcmV2aW91cy1ibG9jayAib3JnIiAoYXJnICZvcHRpb25hbCBibG9j ay1yZWdleHApKQogKGRlY2xhcmUtZnVuY3Rpb24gb3JnLXNob3ctY29udGV4dCAib3JnIiAoJm9w dGlvbmFsIGtleSkpCiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctc3JjLWNvZGVyZWYtZm9ybWF0ICJv cmctc3JjIiAoJm9wdGlvbmFsIGVsZW1lbnQpKQotKGRlY2xhcmUtZnVuY3Rpb24gb3JnLXNyYy1j b2RlcmVmLXJlZ2V4cCAib3JnLXNyYyIgKGZtdCAmb3B0aW9uYWwgbGFiZWwpKQorKGRlY2xhcmUt ZnVuY3Rpb24gb3JnLXNyYy1jb2RlcmVmLXJlZ2V4cCAib3JnLXNyYyIgKGZtdCAmb3B0aW9uYWwg bGFiZWwgcngtcHJlZml4KSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1zcmMtZ2V0LWxhbmctbW9k ZSAib3JnLXNyYyIgKGxhbmcpKQogKGRlY2xhcmUtZnVuY3Rpb24gb3JnLXRhYmxlLWFsaWduICJv cmctdGFibGUiICgpKQogKGRlY2xhcmUtZnVuY3Rpb24gb3JnLXRhYmxlLWNvbnZlcnQtcmVnaW9u ICJvcmctdGFibGUiIChiZWcwIGVuZDAgJm9wdGlvbmFsIHNlcGFyYXRvcikpCkBAIC0zOTIsNiAr MzkyLDkgQEAgdGhlbiBydW4gYG9yZy1iYWJlbC1zd2l0Y2gtdG8tc2Vzc2lvbicuIgogKGRlZmNv bnN0IG9yZy1iYWJlbC1jb21tb24taGVhZGVyLWFyZ3Mtdy12YWx1ZXMKICAgJygoY2FjaGUJLiAo KG5vIHllcykpKQogICAgIChjbWRsaW5lCS4gOmFueSkKKyAgICAoY29kZXJlZi1mb3JtYXQgLiA6 YW55KQorICAgIChjb2RlcmVmLXByZWZpeCAuIDphbnkpCisgICAgKGNvZGVyZWYtdGFuZ2xlIC4g KChuaWwgeWVzIG5vKSkpCiAgICAgKGNvbG5hbWVzCS4gKChuaWwgbm8geWVzKSkpCiAgICAgKGNv bW1lbnRzCS4gKChubyBsaW5rIHllcyBvcmcgYm90aCBub3dlYikpKQogICAgIChkaXIJLiA6YW55 KQpAQCAtNDM0LDcgKzQzNyw4IEBAIE5vdGUgdGhhdCBpbmRpdmlkdWFsIGxhbmd1YWdlcyBtYXkg ZGVmaW5lIHRoZWlyIG93biBsYW5ndWFnZQogc3BlY2lmaWMgaGVhZGVyIGFyZ3VtZW50cyBhcyB3 ZWxsLiIpCiAKIChkZWZjb25zdCBvcmctYmFiZWwtc2FmZS1oZWFkZXItYXJncwotICAnKDpjYWNo ZSA6Y29sbmFtZXMgOmNvbW1lbnRzIDpleHBvcnRzIDplcGlsb2d1ZSA6aGxpbmVzIDpub2V2YWwK KyAgJyg6Y2FjaGUgOmNvZGVyZWYtZm9ybWF0IDpjb2RlcmVmLXByZWZpeCA6Y29kZXJlZi10YW5n bGUKKyAgICAgICAgICAgOmNvbG5hbWVzIDpjb21tZW50cyA6ZXhwb3J0cyA6ZXBpbG9ndWUgOmhs aW5lcyA6bm9ldmFsCiAJICAgOm5vd2ViIDpub3dlYi1yZWYgOm5vd2ViLXNlcCA6cGFkbGluZSA6 cHJvbG9ndWUgOnJvd25hbWVzCiAJICAgOnNlcCA6c2Vzc2lvbiA6dGFuZ2xlIDp3cmFwCiAJICAg KDpldmFsIC4gKCJuZXZlciIgInF1ZXJ5IikpCkBAIC02MDcsMjkgKzYxMSwzMSBAQCBhIGxpc3Qg d2l0aCB0aGUgZm9sbG93aW5nIHBhdHRlcm46CiAJICAgICAobGFuZy1oZWFkZXJzIChpbnRlcm4K IAkJCSAgICAoY29uY2F0ICJvcmctYmFiZWwtZGVmYXVsdC1oZWFkZXItYXJnczoiIGxhbmcpKSkK IAkgICAgIChuYW1lIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6bmFtZSBkYXR1bSkpCisgICAgICAg ICAgICAgKHBhcmFtcyAoYXBwbHkgIydvcmctYmFiZWwtbWVyZ2UtcGFyYW1zCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGlmIGlubGluZSBvcmctYmFiZWwtZGVmYXVsdC1pbmxpbmUtaGVh ZGVyLWFyZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy1iYWJlbC1kZWZhdWx0 LWhlYWRlci1hcmdzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKGJvdW5kcCBs YW5nLWhlYWRlcnMpIChldmFsIGxhbmctaGVhZGVycyB0KSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoYXBwZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IElmIERBVFVN IGlzIHByb3ZpZGVkLCBtYWtlIHN1cmUgd2UgZ2V0IG5vZGUKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOzsgcHJvcGVydGllcyBhcHBsaWNhYmxlIHRvIGl0cyBsb2NhdGlvbiB3aXRoaW4K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgdGhlIGRvY3VtZW50LgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAob3JnLXdpdGgtcG9pbnQtYXQgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpiZWdpbiBkYXR1bSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3JnLWJh YmVsLXBhcmFtcy1mcm9tLXByb3BlcnRpZXMgbGFuZyBsaWdodCkpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChtYXBjYXIgKGxhbWJkYSAoaCkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChvcmctYmFiZWwtcGFyc2UtaGVhZGVyLWFyZ3VtZW50cyBoIGxpZ2h0 KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ucyAob3JnLWVsZW1l bnQtcHJvcGVydHkgOnBhcmFtZXRlcnMgZGF0dW0pCisJCQkJICAgICAgICAgICAob3JnLWVsZW1l bnQtcHJvcGVydHkgOmhlYWRlciBkYXR1bSkpKSkpKQogCSAgICAgKGluZm8KIAkgICAgICAobGlz dAogCSAgICAgICBsYW5nCiAJICAgICAgIChvcmctYmFiZWwtLW5vcm1hbGl6ZS1ib2R5IGRhdHVt KQotCSAgICAgICAoYXBwbHkgIydvcmctYmFiZWwtbWVyZ2UtcGFyYW1zCi0JCSAgICAgIChpZiBp bmxpbmUgb3JnLWJhYmVsLWRlZmF1bHQtaW5saW5lLWhlYWRlci1hcmdzCi0JCQlvcmctYmFiZWwt ZGVmYXVsdC1oZWFkZXItYXJncykKLQkJICAgICAgKGFuZCAoYm91bmRwIGxhbmctaGVhZGVycykg KGV2YWwgbGFuZy1oZWFkZXJzIHQpKQotCQkgICAgICAoYXBwZW5kCi0JCSAgICAgICA7OyBJZiBE QVRVTSBpcyBwcm92aWRlZCwgbWFrZSBzdXJlIHdlIGdldCBub2RlCi0JCSAgICAgICA7OyBwcm9w ZXJ0aWVzIGFwcGxpY2FibGUgdG8gaXRzIGxvY2F0aW9uIHdpdGhpbgotCQkgICAgICAgOzsgdGhl IGRvY3VtZW50LgotCQkgICAgICAgKG9yZy13aXRoLXBvaW50LWF0IChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6YmVnaW4gZGF0dW0pCi0JCQkgKG9yZy1iYWJlbC1wYXJhbXMtZnJvbS1wcm9wZXJ0aWVz IGxhbmcgbGlnaHQpKQotCQkgICAgICAgKG1hcGNhciAobGFtYmRhIChoKQotCQkJCSAob3JnLWJh YmVsLXBhcnNlLWhlYWRlci1hcmd1bWVudHMgaCBsaWdodCkpCi0JCQkgICAgICAgKGNvbnMgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDpwYXJhbWV0ZXJzIGRhdHVtKQotCQkJCSAgICAgKG9yZy1lbGVt ZW50LXByb3BlcnR5IDpoZWFkZXIgZGF0dW0pKSkpKQorICAgICAgICAgICAgICAgcGFyYW1zCiAJ ICAgICAgIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN3aXRjaGVzIGRhdHVtKSAiIikKIAkg ICAgICAgbmFtZQogCSAgICAgICAob3JnLWVsZW1lbnQtcHJvcGVydHkgKGlmIGlubGluZSA6YmVn aW4gOnBvc3QtYWZmaWxpYXRlZCkKIAkJCQkgICAgIGRhdHVtKQotCSAgICAgICAoYW5kIChub3Qg aW5saW5lKSAob3JnLXNyYy1jb2RlcmVmLWZvcm1hdCBkYXR1bSkpKSkpCisJICAgICAgIChhbmQg KG5vdCBpbmxpbmUpIChvciAoY2RyIChhc3NxIDpjb2RlcmVmLWZvcm1hdCBwYXJhbXMpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcmctc3JjLWNvZGVyZWYtZm9ybWF0 IGRhdHVtKSkpKSkpCiAJKHVubGVzcyBsaWdodAogCSAgKHNldGYgKG50aCAyIGluZm8pIChvcmct YmFiZWwtcHJvY2Vzcy1wYXJhbXMgKG50aCAyIGluZm8pKSkpCiAJKHNldGYgKG50aCAyIGluZm8p IChvcmctYmFiZWwtZ2VuZXJhdGUtZmlsZS1wYXJhbSBuYW1lIChudGggMiBpbmZvKSkpCkBAIC02 MzgsMTMgKzY0NCwxNCBAQCBhIGxpc3Qgd2l0aCB0aGUgZm9sbG93aW5nIHBhdHRlcm46CiAoZGVm dW4gb3JnLWJhYmVsLS1leHBhbmQtYm9keSAoaW5mbykKICAgIkV4cGFuZCBub3dlYiByZWZlcmVu Y2VzIGluIGJvZHkgYW5kIHJlbW92ZSBhbnkgY29kZXJlZnMuIgogICAobGV0ICgoY29kZXJlZiAo bnRoIDYgaW5mbykpCisgICAgICAgIChjb2RlcmVmLXByZWZpeCAoY2RyIChhc3NxIDpjb2RlcmVm LXByZWZpeCAobnRoIDIgaW5mbykpKSkKIAkoZXhwYW5kCiAJIChpZiAob3JnLWJhYmVsLW5vd2Vi LXAgKG50aCAyIGluZm8pIDpldmFsKQogCSAgICAgKG9yZy1iYWJlbC1leHBhbmQtbm93ZWItcmVm ZXJlbmNlcyBpbmZvKQogCSAgIChudGggMSBpbmZvKSkpKQogICAgIChpZiAobm90IGNvZGVyZWYp IGV4cGFuZAogICAgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZwotICAgICAgIChvcmctc3Jj LWNvZGVyZWYtcmVnZXhwIGNvZGVyZWYpICIiIGV4cGFuZCBuaWwgbmlsIDEpKSkpCisgICAgICAg KG9yZy1zcmMtY29kZXJlZi1yZWdleHAgY29kZXJlZiBuaWwgY29kZXJlZi1wcmVmaXgpICIiIGV4 cGFuZCBuaWwgbmlsIDEpKSkpCiAKIChkZWZ1biBvcmctYmFiZWwtLWZpbGUtZGVzYyAocGFyYW1z IHJlc3VsdCkKICAgIlJldHJpZXZlIGZpbGUgZGVzY3JpcHRpb24uIgpkaWZmIC0tZ2l0IGEvbGlz cC9vYi10YW5nbGUuZWwgYi9saXNwL29iLXRhbmdsZS5lbAppbmRleCBhYTAzNzNhYjguLjc1NWE0 MDRiOCAxMDA2NDQKLS0tIGEvbGlzcC9vYi10YW5nbGUuZWwKKysrIGIvbGlzcC9vYi10YW5nbGUu ZWwKQEAgLTQxNCwxMCArNDE0LDE0IEBAIG5vbi1uaWwsIHJldHVybiB0aGUgZnVsbCBhc3NvY2lh dGlvbiBsaXN0IHRvIGJlIHVzZWQgYnkKIAkgKHNyYy1sYW5nIChudGggMCBpbmZvKSkKIAkgKHBh cmFtcyAobnRoIDIgaW5mbykpCiAJIChleHRyYSAobnRoIDMgaW5mbykpCi0JIChjcmVmLWZtdCAo b3IgKGFuZCAoc3RyaW5nLW1hdGNoICItbCBcIlxcKC4rXFwpXCIiIGV4dHJhKQotCQkJICAgICht YXRjaC1zdHJpbmcgMSBleHRyYSkpCi0JCSAgICAgICBvcmctY29kZXJlZi1sYWJlbC1mb3JtYXQp KQotCSAobGluayAobGV0ICgobCAob3JnLW5vLXByb3BlcnRpZXMgKG9yZy1zdG9yZS1saW5rIG5p bCkpKSkKKwkgKGNvZGVyZWYgKG50aCA2IGluZm8pKQorICAgICAgICAgKGFzZGYgKG1lc3NhZ2Ug IiVTIiBpbmZvKSkKKyAgICAgICAgIChjcmVmLXJlZ2V4cCAob3JnLXNyYy1jb2RlcmVmLXJlZ2V4 cAorICAgICAgICAgICAgICAgICAgICAgICAob3IgY29kZXJlZgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgb3JnLWNvZGVyZWYtbGFiZWwtZm9ybWF0KQorICAgICAgICAgICAgICAgICAgICAg ICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgKGNkciAoYXNzcSA6Y29kZXJlZi1wcmVmaXgg cGFyYW1zKSkpKQorICAgICAgICAgKGxpbmsgKGxldCAoKGwgKG9yZy1uby1wcm9wZXJ0aWVzIChv cmctc3RvcmUtbGluayBuaWwpKSkpCiAgICAgICAgICAgICAgICAgIChhbmQgKHN0cmluZy1tYXRj aCBvcmctbGluay1icmFja2V0LXJlIGwpCiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoLXN0 cmluZyAxIGwpKSkpCiAJIChzb3VyY2UtbmFtZQpAQCAtNDQzLDEwICs0NDcsMTAgQEAgbm9uLW5p bCwgcmV0dXJuIHRoZSBmdWxsIGFzc29jaWF0aW9uIGxpc3QgdG8gYmUgdXNlZCBieQogCQkgICAg ICAob3JnLWJhYmVsLWV4cGFuZC1ib2R5OmdlbmVyaWMKIAkJICAgICAgIGJvZHkgcGFyYW1zIChh bmQgKGZib3VuZHAgYXNzaWdubWVudHMtY21kKQogCQkJCQkoZnVuY2FsbCBhc3NpZ25tZW50cy1j bWQgcGFyYW1zKSkpKSkpCi0JICAgICAgKHdoZW4gKHN0cmluZy1tYXRjaCAiLXIiIGV4dHJhKQor CSAgICAgICh3aGVuIChvciAoc3RyaW5nPSAoY2RyIChhc3NxIDpjb2RlcmVmLXRhbmdsZSBwYXJh bXMpKSAibm8iKQorICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaCAiLXIiIGV4 dHJhKSkKIAkJKGdvdG8tY2hhciAocG9pbnQtbWluKSkKLQkJKHdoaWxlIChyZS1zZWFyY2gtZm9y d2FyZAotCQkJKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiJXMiICIuKyIgY3JlZi1mbXQpIG5p bCB0KQorCQkod2hpbGUgKHJlLXNlYXJjaC1mb3J3YXJkIGNyZWYtcmVnZXhwIG5pbCB0KQogCQkg IChyZXBsYWNlLW1hdGNoICIiKSkpCiAJICAgICAgKHJ1bi1ob29rcyAnb3JnLWJhYmVsLXRhbmds ZS1ib2R5LWhvb2spCiAJICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkpCmRpZmYgLS1naXQgYS9saXNw L29sLmVsIGIvbGlzcC9vbC5lbAppbmRleCBiOGJkN2QyMzQuLmUyZTM3YmE2ZCAxMDA2NDQKLS0t IGEvbGlzcC9vbC5lbAorKysgYi9saXNwL29sLmVsCkBAIC00NCw2ICs0NCw3IEBACiAoZGVjbGFy ZS1mdW5jdGlvbiBjYWxlbmRhci1jdXJzb3ItdG8tZGF0ZSAiY2FsZW5kYXIiICgmb3B0aW9uYWwg ZXJyb3IgZXZlbnQpKQogKGRlY2xhcmUtZnVuY3Rpb24gZGlyZWQtZ2V0LWZpbGVuYW1lICJkaXJl ZCIgKCZvcHRpb25hbCBsb2NhbHAgbm8tZXJyb3ItaWYtbm90LWZpbGVwKSkKIChkZWNsYXJlLWZ1 bmN0aW9uIG9yZy1hdC1oZWFkaW5nLXAgIm9yZyIgKCZvcHRpb25hbCBfKSkKKyhkZWNsYXJlLWZ1 bmN0aW9uIG9yZy1iYWJlbC1nZXQtc3JjLWJsb2NrLWluZm8gIm9iLWNvcmUiICgmb3B0aW9uYWwg bGlnaHQgZGF0dW0pKQogKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWJhY2stdG8taGVhZGluZyAib3Jn IiAoJm9wdGlvbmFsIGludmlzaWJsZS1vaykpCiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctYmVmb3Jl LWZpcnN0LWhlYWRpbmctcCAib3JnIiAoKSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1kby1vY2N1 ciAib3JnIiAocmVnZXhwICZvcHRpb25hbCBjbGVhbnVwKSkKQEAgLTcxLDcgKzcyLDcgQEAKIChk ZWNsYXJlLWZ1bmN0aW9uIG9yZy1ydW4tbGlrZS1pbi1vcmctbW9kZSAib3JnIiAoY21kKSkKIChk ZWNsYXJlLWZ1bmN0aW9uIG9yZy1zaG93LWNvbnRleHQgIm9yZyIgKCZvcHRpb25hbCBrZXkpKQog KGRlY2xhcmUtZnVuY3Rpb24gb3JnLXNyYy1jb2RlcmVmLWZvcm1hdCAib3JnLXNyYyIgKCZvcHRp b25hbCBlbGVtZW50KSkKLShkZWNsYXJlLWZ1bmN0aW9uIG9yZy1zcmMtY29kZXJlZi1yZWdleHAg Im9yZy1zcmMiIChmbXQgJm9wdGlvbmFsIGxhYmVsKSkKKyhkZWNsYXJlLWZ1bmN0aW9uIG9yZy1z cmMtY29kZXJlZi1yZWdleHAgIm9yZy1zcmMiIChmbXQgJm9wdGlvbmFsIGxhYmVsIHJ4LXByZWZp eCkpCiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctc3JjLWVkaXQtYnVmZmVyLXAgIm9yZy1zcmMiICgm b3B0aW9uYWwgYnVmZmVyKSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1zcmMtc291cmNlLWJ1ZmZl ciAib3JnLXNyYyIgKCkpCiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctc3JjLXNvdXJjZS10eXBlICJv cmctc3JjIiAoKSkKQEAgLTExNDUsMTAgKzExNDYsMTIgQEAgb2YgbWF0Y2hlZCByZXN1bHQsIHdo aWNoIGlzIGVpdGhlciBgZGVkaWNhdGVkJyBvciBgZnV6enknLiIKIAkgICAgKGxldCAoKGVsZW1l bnQgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpCiAJICAgICAgKHdoZW4gKGFuZCAobWVtcSAob3Jn LWVsZW1lbnQtdHlwZSBlbGVtZW50KQogCQkJICAgICAgICcoZXhhbXBsZS1ibG9jayBzcmMtYmxv Y2spKQotCQkJIChvcmctbWF0Y2gtbGluZQotCQkJICAoY29uY2F0ICIuKj8iIChvcmctc3JjLWNv ZGVyZWYtcmVnZXhwCi0JCQkJCSAob3JnLXNyYy1jb2RlcmVmLWZvcm1hdCBlbGVtZW50KQotCQkJ CQkgY29kZXJlZikpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoaW5mbyAob3Jn LWJhYmVsLWdldC1zcmMtYmxvY2staW5mbyBuaWwgZWxlbWVudCkpKQorCQkJICAgKG9yZy1tYXRj aC1saW5lCisJCQkgICAgKGNvbmNhdCAiLio/IiAob3JnLXNyYy1jb2RlcmVmLXJlZ2V4cAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudGggNiBpbmZvKQorCQkJ CQkgICBjb2RlcmVmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGNkciAoYXNzcSA6Y29kZXJlZi1wcmVmaXggKG50aCAyIGluZm8pKSkpKSkpKQogCQkoc2V0cSB0 eXBlICdkZWRpY2F0ZWQpCiAJCShnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAyKSkKIAkJKHRo cm93IDpjb2RlcmVmLW1hdGNoIG5pbCkpKSkKQEAgLTE1MjMsNyArMTUyNiw5IEBAIG5vbi1uaWwu IgogCSAgIDs7IEEgY29kZSByZWZlcmVuY2UgZXhpc3RzLiAgVXNlIGl0LgogCSAgICgoc2F2ZS1l eGN1cnNpb24KIAkgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCi0JICAgICAgKHJlLXNlYXJjaC1m b3J3YXJkIChvcmctc3JjLWNvZGVyZWYtcmVnZXhwIGNvZGVyZWYtZm9ybWF0KQorCSAgICAgIChy ZS1zZWFyY2gtZm9yd2FyZCAob3JnLXNyYy1jb2RlcmVmLXJlZ2V4cCBjb2RlcmVmLWZvcm1hdAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByeC1wcmVmaXgpCiAJCQkJIChsaW5lLWVuZC1wb3NpdGlvbikKIAkJCQkgdCkpCiAJICAg IChzZXRxIGxpbmsgKGZ1bmNhbGwgZm9ybWF0LWxpbmsgKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0 aWVzIDMpKSkpCmRpZmYgLS1naXQgYS9saXNwL29yZy1zcmMuZWwgYi9saXNwL29yZy1zcmMuZWwK aW5kZXggMjBhY2VlNGU2Li5iMDExOWRkYmMgMTAwNjQ0Ci0tLSBhL2xpc3Avb3JnLXNyYy5lbAor KysgYi9saXNwL29yZy1zcmMuZWwKQEAgLTg2OCw3ICs4NjgsNyBAQCB0byB0aGUgcmVtb3RlIHNv dXJjZSBibG9jay4iCiAgICAoKG9yZy1lbGVtZW50LXByb3BlcnR5IDpsYWJlbC1mbXQgKG9yZy1l bGVtZW50LWF0LXBvaW50KSkpCiAgICAodCBvcmctY29kZXJlZi1sYWJlbC1mb3JtYXQpKSkKIAot KGRlZnVuIG9yZy1zcmMtY29kZXJlZi1yZWdleHAgKGZtdCAmb3B0aW9uYWwgbGFiZWwpCisoZGVm dW4gb3JnLXNyYy1jb2RlcmVmLXJlZ2V4cCAoZm10ICZvcHRpb25hbCBsYWJlbCByeC1wcmVmaXgp CiAgICJSZXR1cm4gcmVnZXhwIG1hdGNoaW5nIGEgY29kZXJlZiBmb3JtYXQgc3RyaW5nIEZNVC4K IAogV2hlbiBvcHRpb25hbCBhcmd1bWVudCBMQUJFTCBpcyBub24tbmlsLCBtYXRjaCBjb2RlcmVm IGZvciB0aGF0CkBAIC04NzksNyArODc5LDggQEAgd2hpdGUgc3BhY2VzLiAgTWF0Y2ggZ3JvdXAg MiBjb250YWlucyB0aGUgc2FtZSBzdHJpbmcgd2l0aG91dCBhbnkKIHN1cnJvdW5kaW5nIHNwYWNl LiAgTWF0Y2ggZ3JvdXAgMyBjb250YWlucyB0aGUgbGFiZWwuCiAKIEEgY29kZXJlZiBmb3JtYXQg cmVnZXhwIGNhbiBvbmx5IG1hdGNoIGF0IHRoZSBlbmQgb2YgYSBsaW5lLiIKLSAgKGZvcm1hdCAi XFwoWyBcdF0qXFwoJXNcXClbIFx0XSpcXCkkIgorICAoZm9ybWF0ICJcXCglc1xcKCVzXFwpWyBc dF0qXFwpJCIKKyAgICAgICAgICAob3IgcngtcHJlZml4ICJbIFx0XSoiKQogCSAgKHJlcGxhY2Ut cmVnZXhwLWluLXN0cmluZwogCSAgICIlcyIKIAkgICAoaWYgbGFiZWwgKHJlZ2V4cC1xdW90ZSBs YWJlbCkgIlxcKFstYS16QS1aMC05X11bLWEtekEtWjAtOV8gXSpcXCkiKQpkaWZmIC0tZ2l0IGEv bGlzcC9veC5lbCBiL2xpc3Avb3guZWwKaW5kZXggZjcwNWJjODNhLi5kOGYzMTk5MGEgMTAwNjQ0 Ci0tLSBhL2xpc3Avb3guZWwKKysrIGIvbGlzcC9veC5lbApAQCAtNzgsOCArNzgsOSBAQAogKHJl cXVpcmUgJ29yZy1tYWNybykKIChyZXF1aXJlICd0YWJ1bGF0ZWQtbGlzdCkKIAorKGRlY2xhcmUt ZnVuY3Rpb24gb3JnLWJhYmVsLWdldC1zcmMtYmxvY2staW5mbyAib2ItY29yZSIgKCZvcHRpb25h bCBsaWdodCBkYXR1bSkpCiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctc3JjLWNvZGVyZWYtZm9ybWF0 ICJvcmctc3JjIiAoJm9wdGlvbmFsIGVsZW1lbnQpKQotKGRlY2xhcmUtZnVuY3Rpb24gb3JnLXNy Yy1jb2RlcmVmLXJlZ2V4cCAib3JnLXNyYyIgKGZtdCAmb3B0aW9uYWwgbGFiZWwpKQorKGRlY2xh cmUtZnVuY3Rpb24gb3JnLXNyYy1jb2RlcmVmLXJlZ2V4cCAib3JnLXNyYyIgKGZtdCAmb3B0aW9u YWwgbGFiZWwgcngtcHJlZml4KSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1wdWJsaXNoICJveC1w dWJsaXNoIiAocHJvamVjdCAmb3B0aW9uYWwgZm9yY2UgYXN5bmMpKQogKGRlY2xhcmUtZnVuY3Rp b24gb3JnLXB1Ymxpc2gtYWxsICJveC1wdWJsaXNoIiAoJm9wdGlvbmFsIGZvcmNlIGFzeW5jKSkK IChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1wdWJsaXNoLWN1cnJlbnQtZmlsZSAib3gtcHVibGlzaCIg KCZvcHRpb25hbCBmb3JjZSBhc3luYykpCkBAIC00MjEzLDkgKzQyMTQsMTIgQEAgZXJyb3IgaWYg bm8gYmxvY2sgY29udGFpbnMgUkVGLiIKIAkobGFtYmRhIChlbCkKIAkgICh3aXRoLXRlbXAtYnVm ZmVyCiAJICAgIChpbnNlcnQgKG9yZy10cmltIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6dmFsdWUg ZWwpKSkKLQkgICAgKGxldCogKChsYWJlbC1mbXQgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6 bGFiZWwtZm10IGVsKQorCSAgICAobGV0KiAoKG9iLWluZm8gKG9yZy1iYWJlbC1nZXQtc3JjLWJs b2NrLWluZm8gbmlsIGVsKSkKKyAgICAgICAgICAgICAgICAgICAobGFiZWwtZm10IChvciAobnRo IDYgb2ItaW5mbykKIAkJCQkgIG9yZy1jb2RlcmVmLWxhYmVsLWZvcm1hdCkpCi0JCSAgIChyZWYt cmUgKG9yZy1zcmMtY29kZXJlZi1yZWdleHAgbGFiZWwtZm10IHJlZikpKQorCQkgICAocmVmLXJl IChvcmctc3JjLWNvZGVyZWYtcmVnZXhwIGxhYmVsLWZtdAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIChhc3NxIDpjb2RlcmVmLXByZWZpeCAo bnRoIDIgb2ItaW5mbykpKSkpKQogCSAgICAgIDs7IEVsZW1lbnQgY29udGFpbmluZyBSRUYgaXMg Zm91bmQuICBSZXNvbHZlIGl0IHRvCiAJICAgICAgOzsgZWl0aGVyIGEgbGFiZWwgb3IgYSBsaW5l IG51bWJlciwgYXMgbmVlZGVkLgogCSAgICAgICh3aGVuIChyZS1zZWFyY2gtYmFja3dhcmQgcmVm LXJlIG5pbCB0KQpAQCAtNDYyNyw3ICs0NjMxLDEwIEBAIHJlZmVyZW5jZSBvbiB0aGF0IGxpbmUg KHN0cmluZykuIgogCQkgICAgdmFsdWUKIAkJICAob3JnLXJlbW92ZS1pbmRlbnRhdGlvbiB2YWx1 ZSkpKSkKIAkgOzsgQnVpbGQgYSByZWdleHAgbWF0Y2hpbmcgYSBsb2Mgd2l0aCBhIHJlZmVyZW5j ZS4KLQkgKHJlZi1yZSAob3JnLXNyYy1jb2RlcmVmLXJlZ2V4cCAob3JnLXNyYy1jb2RlcmVmLWZv cm1hdCBlbGVtZW50KSkpKQorICAgICAgICAgKG9iLWluZm8gKG9yZy1iYWJlbC1nZXQtc3JjLWJs b2NrLWluZm8gbmlsIGVsZW1lbnQpKQorCSAocmVmLXJlIChvcmctc3JjLWNvZGVyZWYtcmVnZXhw IChudGggNiBvYi1pbmZvKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNkciAoYXNz cSA6Y29kZXJlZi1wcmVmaXggKG50aCAyIG9iLWluZm8pKSkpKSkKICAgICA7OyBSZXR1cm4gdmFs dWUuCiAgICAgKGNvbnMKICAgICAgOzsgQ29kZSB3aXRoIHJlZmVyZW5jZXMgcmVtb3ZlZC4KLS0g CjIuMjYuMwoK --00000000000026114005bf32e346--