From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id cECmOp+gzGJ5vAAAbAwnHQ (envelope-from ) for ; Tue, 12 Jul 2022 00:13:52 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id aO+WOZ+gzGIIhQAAG6o9tA (envelope-from ) for ; Tue, 12 Jul 2022 00:13:51 +0200 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 7DAA514B35 for ; Tue, 12 Jul 2022 00:13:51 +0200 (CEST) Received: from localhost ([::1]:36632 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oB1f4-0002sD-PA for larch@yhetil.org; Mon, 11 Jul 2022 18:13:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53626) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oB1eX-0002s3-B4 for emacs-orgmode@gnu.org; Mon, 11 Jul 2022 18:13:17 -0400 Received: from mail-ej1-x62c.google.com ([2a00:1450:4864:20::62c]:42940) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oB1eV-0004Pk-31 for emacs-orgmode@gnu.org; Mon, 11 Jul 2022 18:13:16 -0400 Received: by mail-ej1-x62c.google.com with SMTP id sz17so11142862ejc.9 for ; Mon, 11 Jul 2022 15:13:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=E9f64Uegt9Chhk7TteNrGI+8j7AJi/E+gkseKukDKlU=; b=mqsw+yD03S/SUMJkCelEQHHUzlHqYZgZYQ3dL4eRyHDXJIzfUeKgYFO9NPIe355XHS zVGejJuJeE7T1YIZQrjHEVVkN8Y8/cNf8+JNhrqSSF5VDQA0YfEFcHeOygUBd7V9U+9j PBNe8sGqXS6SA+8crd/vbtTPFs7l0Fq1zDD+BNS9DxaoyX5hxE71FTEVjBpToNWI8WlL Xe7sV/zQyRCYOZTCv2nCBHJUYPJXUGBdlxKvZVwWZe0JXYfuWu9F+3Reki9AVaOzfm6o SKg0IGc+CfXZrufNVuaY3iMVslbyIVOXYTeHTYr0wgYS/3jWRLToHlm281teBQvEymQi xn3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=E9f64Uegt9Chhk7TteNrGI+8j7AJi/E+gkseKukDKlU=; b=m5HEsTdE1Ss2pcIwF9jvfERMEzqgTHFeeaeFU2G4I7mVUYLS6GFZqlMyKxxjPJoMTJ bSeXph9uSfaeA61Nmrk2WJK1yg2iJsRhjDt3ZqtTM9vomKWw3R59egVBNCo5ummDjFXb 3cebKq5o5/swm1jC5931ny0jF7mPhry3/15ZYpfelMEXSPhORRULkjqoWcFRRIpvIIwJ 8Rp0lHyUdMQV4Ys1RdG5LfAjL1HR70XB4hYgQVzmx6g8sydneEhVIqQCOWwDxzO8EQCn YNnf7NoEOJsKk/gFObU5VNuVBO0+mFkjejDJUUVCWVoIEYUzW3/XU/PDOu4q594Hr82l 1uEA== X-Gm-Message-State: AJIora/YF0qac3SEXDSsVqgA2+TwTH4eIb1BsTaF8RgIF/HZjAdNUpSm GnOhactc6mQXO/6nyS5qaTaML2aEK7rHKAyccq1An0boJALMBw== X-Google-Smtp-Source: AGRyM1tAI+/cvqbZQo7dMT+C/7Q6hONkgXOuSvca8+UCcdMmJVrWK9PaoC2H9FvQ5kS7K9o9LMnCV+zD+VP9+gg7g/k= X-Received: by 2002:a17:906:20c6:b0:718:cc95:ccaf with SMTP id c6-20020a17090620c600b00718cc95ccafmr20978146ejc.714.1657577592594; Mon, 11 Jul 2022 15:13:12 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?Q?Andr=C3=A1s_Simonyi?= Date: Tue, 12 Jul 2022 00:13:01 +0200 Message-ID: Subject: [PATCH] oc-csl: Add support for sub-bibliographies To: emacs-orgmode list Content-Type: multipart/mixed; boundary="000000000000983cf005e38edb79" Received-SPF: pass client-ip=2a00:1450:4864:20::62c; envelope-from=andras.simonyi@gmail.com; helo=mail-ej1-x62c.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, T_SCC_BODY_TEXT_LINE=-0.01 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" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1657577631; 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:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=E9f64Uegt9Chhk7TteNrGI+8j7AJi/E+gkseKukDKlU=; b=mQpvHwB4P9Kz8rk7kSjWHIoDE9af4NInXh7l661pq5vkmg9JHEdb3zo76Ds3N3ZKt+txw4 bMwen8p0rORbG66wwFbn/Qy6BjZRJJa4dIuflx8Q0AoTA2TlqjbYTn3sECeJWY4gwS+ho0 E9lrudUboKYcMFk50CGyC8frJknZ7wp7GMCebYo5Xufbf/fYdzZQ+TV9VsgjH9DSijMODp dVmypAFSSzDhKVkg+NeyDyIf4dK4ghKMmmDzsn6Bc2exuCICYk1kgzzmPQrpJ9J7rgeyV2 YsoFWJk1XQ9UhU/OXcMf+3qe3EAYhgVpt9/SgIZyFyZqHvWzo8V8rjpFRkyHOg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1657577631; a=rsa-sha256; cv=none; b=R2SISXyid1QC9iFw6k1l99YLzJLz1uBTFhzdohg32LIBXGVV3gk/G/Nfm8A6d4dY4TozyL z0gJILUCurXUp94fAA2AhZWfnrA+e9E8E/NKvfPgjqZ24DS8JcKTmIQpGl53ua/bgoFpoW fOrRJ9YakPY0n5haIC8iCC/hS6SRYACHcI3IYscMoTcBN/Fj14Hlzrnxd69u1IFJhp1pTB sYi5xPRy6hOi0Dw6rKTFn7nV+9BVNy/svaRsw9Vhfpt2UQL8FGg2lUgKJVEFbficMKhcTN AkBdgRj5T3JlFl/jhlmrMNkvdINV4G8lzK9X9nEK6oW334wPccU6HrcTcNYeHQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=mqsw+yD0; 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" X-Migadu-Spam-Score: -4.95 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=mqsw+yD0; 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" X-Migadu-Queue-Id: 7DAA514B35 X-Spam-Score: -4.95 X-Migadu-Scanner: scn0.migadu.com X-TUID: 9Cr1cmmyWOsz --000000000000983cf005e38edb79 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Dear All, the attached patch adds support for filter-based sub-bibliographies in the = "csl" org-cite export processor. It supports the same syntax for specifying filters as the biblatex processor and supports some of the biblatex filter types, concretely, entry-type and keyword based filtering. It also supports filtering based on CSL type (as opposed to bib(la)tex type) and using any Lisp predicate as a filter. best wishes, Andr=C3=A1s --000000000000983cf005e38edb79 Content-Type: text/x-patch; charset="UTF-8"; name="0001-oc-csl.el-Add-support-for-sub-bibliographies.patch" Content-Disposition: attachment; filename="0001-oc-csl.el-Add-support-for-sub-bibliographies.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l5haqu3p0 RnJvbSA1MGRiN2Y4YWU5NGNmOWEzNzk5ZWNjZGYzZDdlZTY5YTJlN2M0NTA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QW5kcj1DMz1BMXM9MjBTaW1vbnlpPz0gPGFu ZHJhcy5zaW1vbnlpQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMSBKdWwgMjAyMiAxOToxMzo0OCAr MDIwMApTdWJqZWN0OiBbUEFUQ0hdIG9jLWNzbC5lbDogQWRkIHN1cHBvcnQgZm9yIHN1Yi1iaWJs aW9ncmFwaGllcwoKKiBsaXNwL29jLWNzbC5lbCAob3JnLWNpdGUtY3NsLS1yZW5kZXJlZC1iaWJs aW9ncmFwaGllcyk6IE5ldyBmdW5jdGlvbgp0byBjb2xsZWN0IGFsbCAjK3ByaW50X2JpYmxpb2dy YXBoeSBrZXl3b3JkcyB3aXRoIHRoZWlyIHByb3BlcnRpZXMgYW5kCmNhbGwgQ2l0ZXByb2MgdG8g cmVuZGVyIGFsbCBzdWItYmlibGlvZ3JhcGhpZXMgaW4gb25lIGdvIGFzIHJlcXVpcmVkCmJ5IHRo ZSBBUEkuICBSZXR1cm4gdGhlIGZvcm1hdHRlZCBiaWJsaW9ncmFwaGllcyBhcyB2YWx1ZXMgaW4g YW4gYWxpc3QKaW4gd2hpY2gga2V5cyBhcmUgdGhlICMrcHJpbnRfYmlibGlvZ3JhcGh5IGtleXdv cmQgb3B0aW9ucyBhcyBwbGlzdHMuCkNhY2hlIHRoZSByZXR1cm4gdmFsdWUgaW4gdGhlIGV4cG9y dCBjb21tdW5pY2F0aW9uIGNoYW5uZWwuCihvcmctY2l0ZS1jc2wtLWJpYmxpb2dyYXBoeS1maWx0 ZXIpOiBOZXcgaGVscGVyIGZ1bmN0aW9uIHRvIGNvbnZlcnQKcGxpc3RzIHJlcHJlc2VudGluZyAj K3ByaW50X2JpYmxpb2dyYXBoeSBvcHRpb25zIHRvIHRoZSBhbGlzdCBmaWx0ZXIKZm9ybSBleHBl Y3RlZCBieSBDaXRlcHJvYy4KKG9yZy1jaXRlLWNzbC0tcmVuZGVyZWQtY2l0YXRpb25zKTogQ2Fs bApgb3JnLWNpdGUtY3NsLS1yZW5kZXJlZC1iaWJsaW9ncmFwaGllcycgYmVmb3JlIHJlbmRlcmlu ZyBjaXRhdGlvbnMgdG8KbWFrZSBzdXJlIHRoYXQgdGhlIGNvbXBsZXRlIHN1Yi1iaWJsaW9ncmFw aHkgaW5mb3JtYXRpb24gaXMgYWRkZWQgdG8KdGhlIHByb2Nlc3NvciBhbmQsIHRoZXJlZm9yZSwg Y2l0YXRpb24gbnVtYmVycyBhcmUgY29ycmVjdC4KKG9yZy1jaXRlLWNzbC0tcmVuZGVyLWJpYmxp b2dyYXBoeSk6IEluc3RlYWQgb2YgZGlyZWN0bHkgY2FsbGluZwpDaXRlcHJvYyB0byByZW5kZXIg dGhlIGJpYmxpb2dyYXBoeSwgY2FsbApgb3JnLWNpdGUtY3NsLS1yZW5kZXJlZC1iaWJsaW9ncmFw aGllcycgYW5kIHJldHJpZXZlIHRoZSBmb3JtYXR0ZWQKYmlibGlvZ3JhcGh5IGZyb20gaXRzIHJl dHVybiB2YWx1ZSBiYXNlZCBvbiB0aGUgb3B0aW9ucyBwYXNzZWQgYXMgdGhlCmBwcm9wcycgYXJn dW1lbnQuCi0tLQogZXRjL09SRy1ORVdTICAgfCAxMyArKysrKysrLQogbGlzcC9vYy1jc2wuZWwg fCA4MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQog MiBmaWxlcyBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2V0Yy9PUkctTkVXUyBiL2V0Yy9PUkctTkVXUwppbmRleCA0Y2RhMzU3ZjEuLmNlODY3 NWRlYSAxMDA2NDQKLS0tIGEvZXRjL09SRy1ORVdTCisrKyBiL2V0Yy9PUkctTkVXUwpAQCAtMjM5 LDcgKzIzOSw3IEBAIFRoaXMgYmVoYXZpb3VyIGNhbiBiZSBjaGFuZ2VkIGJ5IHN1cHBseWluZyBh ID06YWxpZ249IHBhcmFtZXRlci4KIAogVGhlIHRhYmJpbmcgZW52aXJvbm1lbnQgY2FuIGJlIHVz ZWZ1bCB3aGVuIGdlbmVyYXRpbmcgc2ltcGxlIHRhYmxlcyB3aGljaAogY2FuIGJlIHNwYW4gbXVs dGlwbGUgcGFnZXMgYW5kIHdoZW4gdGFibGUgY2VsbHMgYXJlIGFsbG93ZWQgdG8gb3ZlcmZsb3cu Ci0qKiogU3VwcG9ydCBmb3IgPW5vY2l0ZT0gY2l0YXRpb25zIGluIHRoZSAiY3NsIiBleHBvcnQg cHJvY2Vzc29yCisqKiogU3VwcG9ydCBmb3IgPW5vY2l0ZT0gY2l0YXRpb25zIGFuZCBzdWItYmli bGlvZ3JhcGhpZXMgaW4gdGhlICJjc2wiIGV4cG9ydCBwcm9jZXNzb3IKIAogVGhlICJjc2wiIGNp dGF0aW9uIGV4cG9ydCBwcm9jZXNzb3Igbm93IHN1cHBvcnRzID1ub2NpdGU9IHN0eWxlCiBjaXRh dGlvbnMgdGhhdCBhZGQgaXRlbXMgdG8gdGhlIHByaW50ZWQgYmlibGlvZ3JhcGh5IHdpdGhvdXQg dmlzaWJsZQpAQCAtMjUxLDYgKzI1MSwxNyBAQCBpbnN0YW5jZSwKICMrZW5kX3NyYwogCiBpbmNs dWRlcyBhbGwgYXZhaWxhYmxlIGl0ZW1zIGluIHRoZSBwcmludGVkIGJpYmxpb2dyYXBoeS4KKwor VGhlICJjc2wiIGV4cG9ydCBwcm9jZXNzb3Igbm93IGFsc28gc3VwcG9ydHMgc3ViLWJpYmxpb2dy YXBoaWVzIHRoYXQKK3Nob3cgb25seSBhIHN1YnNldCBvZiB0aGUgcmVmZXJlbmNlcyBiYXNlZCBv biBzb21lIGNyaXRlcmlvbi4gIEZvcgorZXhhbXBsZSwKKworIytiZWdpbl9zcmMgb3JnCisjK3By aW50X2JpYmxpb2dyYXBoeTogOnR5cGUgYm9vayA6a2V5d29yZCBhaQorIytlbmRfc3JjCisKK3By aW50cyBhIHN1Yi1iaWJsaW9ncmFwaHkgY29udGFpbmluZyB0aGUgYm9vayBlbnRyaWVzIHdpdGgg PWFpPSBhbW9uZwordGhlaXIga2V5d29yZHMuCiAqKiBOZXcgZnVuY3Rpb25zIGFuZCBjaGFuZ2Vz IGluIGZ1bmN0aW9uIGFyZ3VtZW50cwogCiAqKiogTmV3IGZ1bmN0aW9uIH5vcmctZWxlbWVudC1j YWNoZS1tYXB+IGZvciBxdWljayBtYXBwaW5nIGFjcm9zcyBPcmcgZWxlbWVudHMKZGlmZiAtLWdp dCBhL2xpc3Avb2MtY3NsLmVsIGIvbGlzcC9vYy1jc2wuZWwKaW5kZXggYTJiZDY2NTNjLi4wYjJm ZTVjNDEgMTAwNjQ0Ci0tLSBhL2xpc3Avb2MtY3NsLmVsCisrKyBiL2xpc3Avb2MtY3NsLmVsCkBA IC05MCwxMSArOTAsMjMgQEAKIDs7IFRoZSBwYXJ0IG9mIHRoZSBzdWZmaXggYmVmb3JlIHRoZSBs b2NhdG9yIGlzIGFwcGVuZGVkIHRvIHJlZmVyZW5jZSdzIHByZWZpeC4KIDs7IElmIG5vIGxvY2F0 b3IgdGVybSBpcyB1c2VkLCBidXQgYSBudW1iZXIgaXMgcHJlc2VudCwgdGhlbiAicGFnZSIgaXMg YXNzdW1lZC4KIAorOzsgRmlsdGVyZWQgc3ViLWJpYmxpb2dyYXBoaWVzIGNhbiBiZSBwcmludGVk IGJ5IHBhc3NpbmcgZmlsdGVyaW5nCis7OyBvcHRpb25zIHRvIHRoZSAicHJpbnRfYmlibGlvZ3Jh cGh5IiBrZXl3b3Jkcy4gIEUuZy4sCis7OworOzsgICAgIytwcmludF9iaWJsaW9ncmFwaHk6IDp0 eXBlIGJvb2sga2V5d29yZDogZW1hY3MKKzs7Cis7OyBJZiB5b3UgbmVlZCB0byB1c2UgYSBrZXkg bXVsdGlwbGUgdGltZXMsIHlvdSBjYW4gc2VwYXJhdGUgaXRzCis7OyB2YWx1ZXMgd2l0aCBjb21t YXMsIGJ1dCB3aXRob3V0IGFueSBzcGFjZSBpbi1iZXR3ZWVuOgorOzsKKzs7ICAgICMrcHJpbnRf YmlibGlvZ3JhcGh5OiA6a2V5d29yZCBhYmMseHl6IDp0eXBlIGFydGljbGUKKwogOzsgVGhpcyBs aWJyYXJ5IHdhcyBoZWF2aWx5IGluc3BpcmVkIGJ5IGFuZCBib3Jyb3dzIGZyb20gQW5kcsOhcyBT aW1vbnlpJ3MKIDs7IENpdGVwcm9jIE9yZyAoPGh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyYXMtc2lt b255aS9jaXRlcHJvYy1vcmc+KSBsaWJyYXJ5LgogOzsgTWFueSB0aGFua3MgdG8gaGltIQogCiA7 OzsgQ29kZToKKyhyZXF1aXJlICdjbC1saWIpCisocmVxdWlyZSAnbWFwKQogKHJlcXVpcmUgJ2Jp YnRleCkKIChyZXF1aXJlICdqc29uKQogKHJlcXVpcmUgJ29jKQpAQCAtNTU5LDYgKzU3MSwxMCBA QCBPVVRQVVQgdXNpbmcgQ2l0ZXByb2MuIgogCSAgKGNpdGVwcm9jLWFwcGVuZC1jaXRhdGlvbnMg c3RydWN0dXJlcyBwcm9jZXNzb3IpKQogCSh3aGVuIG5vY2l0ZS1pZHMKIAkgIChjaXRlcHJvYy1h ZGQtdW5jaXRlZCBub2NpdGUtaWRzIHByb2Nlc3NvcikpCisgICAgICAgIDs7IEFsbCBiaWJsaW9n cmFwaGllcyBoYXZlIHRvIGJlIHJlbmRlcmVkIGluIG9yZGVyIHRvIGhhdmUKKyAgICAgICAgOzsg Y29ycmVjdCBjaXRhdGlvbiBudW1iZXJzIGV2ZW4gaWYgdGhlcmUgYXJlIHNldmVyYWwKKyAgICAg ICAgOzsgc3ViLWJpYmxpb2dyYWhpZXMuCisgICAgICAgIChvcmctY2l0ZS1jc2wtLXJlbmRlcmVk LWJpYmxpb2dyYXBoaWVzIGluZm8pCiAJKGxldCAocmVzdWx0CiAJICAgICAgKHJlbmRlcmVkIChj aXRlcHJvYy1yZW5kZXItY2l0YXRpb25zCiAJCQkgcHJvY2Vzc29yCkBAIC01NzIsNiArNTg4LDYy IEBAIE9VVFBVVCB1c2luZyBDaXRlcHJvYy4iCiAJICAocGxpc3QtcHV0IGluZm8gOmNpdGUtY2l0 ZXByb2MtcmVuZGVyZWQtY2l0YXRpb25zIHJlc3VsdCkKIAkgIHJlc3VsdCkpKSkKIAorKGRlZnVu IG9yZy1jaXRlLWNzbC0tYmlibGlvZ3JhcGh5LWZpbHRlciAoYmliLXByb3BzKQorICAiUmV0dXJu IHRoZSBzdWItYmlibGlvZ3JhcGh5IGZpbHRlciBjb3JyZXNwb25kaW5nIHRvIGJpYmxpb2dyYXBo eSBwcm9wZXJ0aWVzLgorCitCSUItUFJPUFMgc2hvdWxkIGJlIGEgcGxpc3QgcmVwcmVzZW50aW5n IHRoZSBwcm9wZXJ0aWVzCithc3NvY2lhdGVkIHdpdGggYSBcInByaW50X2JpYmxpb2dyYXBoeVwi IGtleXdvcmQsIGFzIHJldHVybmVkIGJ5Citgb3JnLWNpdGUtYmlibGlvZ3JhcGh5LXByb3BlcnRp ZXMnLiIKKyAgKGxldCAocmVzdWx0CisJKHJlbW92ZS1rZXl3b3JkLWNvbG9uIChsYW1iZGEgKHgp IChpbnRlcm4gKHN1YnN0cmluZyAoc3ltYm9sLW5hbWUgeCkgMSkpKSkpCisgICAgKG1hcC1kbwor ICAgICAobGFtYmRhIChrZXkgdmFsdWUpCisgICAgICAgKHBjYXNlIGtleQorICAgICAgICAgKChv ciA6a2V5d29yZCA6bm90a2V5d29yZCA6bm90dHlwZSA6bm90Y3NsdHlwZSA6ZmlsdGVyKQorICAg ICAgICAgIChkb2xpc3QgKHYgKHNwbGl0LXN0cmluZyB2YWx1ZSAiLCIpKQorCSAgICAocHVzaCAo Y29ucyAgKGZ1bmNhbGwgcmVtb3ZlLWtleXdvcmQtY29sb24ga2V5KSB2KSByZXN1bHQpKSkKKyAg ICAgICAgICgob3IgOnR5cGUgOmNzbHR5cGUpCisgICAgICAgICAgKGlmIChzdHJpbmctbWF0Y2gt cCAiLCIgdmFsdWUpCisgICAgICAgICAgICAgICh1c2VyLWVycm9yICJUaGUgXCIlc1wiIHByaW50 X2JpYmxpb2dyYXBoeSBvcHRpb24gZG9lcyBub3Qgc3VwcG9ydCBjb21tYS1zZXBhcmF0ZWQgdmFs dWVzIiBrZXkpCisgICAgICAgICAgICAocHVzaCAoY29ucyAoZnVuY2FsbCByZW1vdmUta2V5d29y ZC1jb2xvbiBrZXkpIHZhbHVlKSByZXN1bHQpKSkpKQorICAgICBiaWItcHJvcHMpCisgICAgcmVz dWx0KSkKKworKGRlZnVuIG9yZy1jaXRlLWNzbC0tcmVuZGVyZWQtYmlibGlvZ3JhcGhpZXMgKGlu Zm8pCisgICJSZXR1cm4gdGhlIHJlbmRlcmVkIGJpYmxpb2dyYXBoaWVzLgorCitJTkZPIGlzIHRo ZSBleHBvcnQgc3RhdGUsIGFzIGEgcHJvcGVydHkgbGlzdC4KKworUmV0dXJuIGFuIChPVVRQVVRT IFBBUkFNRVRFUlMpIGxpc3Qgd2hlcmUgT1VUUFVUUyBpcyBhbiBhbGlzdAorb2YgKEJJQi1QUk9Q UyAuIE9VVFBVVCkgcGFpcnMgd2hlcmUgZWFjaCBrZXkgaXMgYSBwcm9wZXJ0eSBsaXN0CitvZiBh IFwicHJpbnRfYmlibGlvZ3JhcGh5XCIga2V5d29yZCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgT1VU UFVUCit2YWx1ZSBpcyB0aGUgYmlibGlvZ3JhcGh5IGFzIHJlbmRlcmVkIGJ5IENpdGVwcm9jLiIK KyAgKG9yIChwbGlzdC1nZXQgaW5mbyA6Y2l0ZS1jaXRlcHJvYy1yZW5kZXJlZC1iaWJsaW9ncmFw aGllcykKKyAgICAgIChsZXQgKGJpYi1wbGlzdHMgYmliLWZpbHRlcnMpCisgICAgICAgIDs7IENv bGxlY3QgYmlibGlvZ3JhcGh5IHByb3BlcnR5IGxpc3RzIGFuZCB0aGUgY29ycmVzcG9uZGluZwor ICAgICAgICA7OyBDaXRlcHJvYyBzdWItYmliIGZpbHRlcnMuCisJKG9yZy1lbGVtZW50LW1hcCAo cGxpc3QtZ2V0IGluZm8gOnBhcnNlLXRyZWUpICdrZXl3b3JkCisgICAgICAgICAgKGxhbWJkYSAo a2V5d29yZCkKKyAgICAgICAgICAgICh3aGVuIChlcXVhbCAiUFJJTlRfQklCTElPR1JBUEhZIiAo b3JnLWVsZW1lbnQtcHJvcGVydHkgOmtleSBrZXl3b3JkKSkKKyAgICAgICAgICAgICAgKGxldCAo KGJpYi1wbGlzdCAob3JnLWNpdGUtYmlibGlvZ3JhcGh5LXByb3BlcnRpZXMga2V5d29yZCkpKQor ICAgICAgICAgICAgICAgIChwdXNoIGJpYi1wbGlzdCBiaWItcGxpc3RzKQorICAgICAgICAgICAg ICAgIChwdXNoIChvcmctY2l0ZS1jc2wtLWJpYmxpb2dyYXBoeS1maWx0ZXIgYmliLXBsaXN0KSBi aWItZmlsdGVycykpKSkpCisgICAgICAgIChzZXRxIGJpYi1maWx0ZXJzIChucmV2ZXJzZSBiaWIt ZmlsdGVycykKKyAgICAgICAgICAgICAgYmliLXBsaXN0cyAobnJldmVyc2UgYmliLXBsaXN0cykp CisgICAgICAgIDs7IFJlbmRlciBhbmQgcmV0dXJuIGFsbCBiaWJsaW9ncmFwaGllcy4KKyAgICAg ICAgKGxldCAoKHByb2Nlc3NvciAob3JnLWNpdGUtY3NsLS1wcm9jZXNzb3IgaW5mbykpKQorICAg ICAgICAgIChjaXRlcHJvYy1hZGQtc3ViYmliLWZpbHRlcnMgYmliLWZpbHRlcnMgcHJvY2Vzc29y KQorICAgICAgICAgIChwY2FzZS1sZXQqICgoZm9ybWF0IChvcmctY2l0ZS1jc2wtLW91dHB1dC1m b3JtYXQgaW5mbykpCisgICAgICAgICAgICAgICAgICAgICAgIChgKCxyZW5kZXJlZC1iaWJzIC4g LHBhcmFtZXRlcnMpCisgICAgICAgICAgICAgICAgICAgICAgICAoY2l0ZXByb2MtcmVuZGVyLWJp YgorICAgICAgICAgICAgICAgICAgICAgICAgIChvcmctY2l0ZS1jc2wtLXByb2Nlc3NvciBpbmZv KQorICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdAorICAgICAgICAgICAgICAgICAgICAg ICAgIChvcmctY2l0ZS1jc2wtLW5vLWNpdGVsaW5rcy1wIGluZm8pKSkKKyAgICAgICAgICAgICAg ICAgICAgICAgKG91dHB1dHMgKGNsLW1hcGNhciAjJ2NvbnMgYmliLXBsaXN0cyByZW5kZXJlZC1i aWJzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdCAobGlzdCBvdXRwdXRzIHBhcmFt ZXRlcnMpKSkKKyAgICAgICAgICAgIChwbGlzdC1wdXQgaW5mbyA6Y2l0ZS1jaXRlcHJvYy1yZW5k ZXJlZC1iaWJsaW9ncmFwaGllcyByZXN1bHQpCisgICAgICAgICAgICByZXN1bHQpKSkpKQorCiAM CiA7OzsgRXhwb3J0IGNhcGFiaWxpdHkKIChkZWZ1biBvcmctY2l0ZS1jc2wtcmVuZGVyLWNpdGF0 aW9uIChjaXRhdGlvbiBfc3R5bGUgX2JhY2tlbmQgaW5mbykKQEAgLTU4NSwxNiArNjU3LDEzIEBA IElORk8gaXMgdGhlIGV4cG9ydCBzdGF0ZSwgYXMgYSBwcm9wZXJ0eSBsaXN0LiIKICAgICAgIDs7 IHByb2Nlc3MuCiAgICAgICAob3JnLWNpdGUtcGFyc2Utb2JqZWN0cyBvdXRwdXQpKSkpCiAKLShk ZWZ1biBvcmctY2l0ZS1jc2wtcmVuZGVyLWJpYmxpb2dyYXBoeSAoX2tleXMgX2ZpbGVzIF9zdHls ZSBfcHJvcHMgX2JhY2tlbmQgaW5mbykKKyhkZWZ1biBvcmctY2l0ZS1jc2wtcmVuZGVyLWJpYmxp b2dyYXBoeSAoX2tleXMgX2ZpbGVzIF9zdHlsZSBwcm9wcyBfYmFja2VuZCBpbmZvKQogICAiRXhw b3J0IGJpYmxpb2dyYXBoeS4KIElORk8gaXMgdGhlIGV4cG9ydCBzdGF0ZSwgYXMgYSBwcm9wZXJ0 eSBsaXN0LiIKICAgKG9yZy1jaXRlLWNzbC0tYmFyZi13aXRob3V0LWNpdGVwcm9jKQotICAocGNh c2UtbGV0KiAoKGZvcm1hdCAob3JnLWNpdGUtY3NsLS1vdXRwdXQtZm9ybWF0IGluZm8pKQotICAg ICAgICAgICAgICAgKGAoLG91dHB1dCAuICxwYXJhbWV0ZXJzKQotICAgICAgICAgICAgICAgIChj aXRlcHJvYy1yZW5kZXItYmliCi0gICAgICAgICAgICAgICAgIChvcmctY2l0ZS1jc2wtLXByb2Nl c3NvciBpbmZvKQotICAgICAgICAgICAgICAgICBmb3JtYXQKLSAgICAgICAgICAgICAgICAgKG9y Zy1jaXRlLWNzbC0tbm8tY2l0ZWxpbmtzLXAgaW5mbykpKSkKKyAgKHBjYXNlLWxldCogICgoZm9y bWF0IChvcmctY2l0ZS1jc2wtLW91dHB1dC1mb3JtYXQgaW5mbykpCisJCShgKCxvdXRwdXRzICxw YXJhbWV0ZXJzKSAob3JnLWNpdGUtY3NsLS1yZW5kZXJlZC1iaWJsaW9ncmFwaGllcyBpbmZvKSkK KwkJKG91dHB1dCAoY2RyIChhc3NvYyBwcm9wcyBvdXRwdXRzKSkpKQogICAgIChwY2FzZSBmb3Jt YXQKICAgICAgICgnaHRtbAogICAgICAgIChjb25jYXQKLS0gCjIuMjUuMQoK --000000000000983cf005e38edb79--