From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id oGQMDU0DtF89PgAA0tVLHw (envelope-from ) for ; Tue, 17 Nov 2020 17:07:25 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id CD73CE0DtF+MQAAA1q6Kng (envelope-from ) for ; Tue, 17 Nov 2020 17:07:25 +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 52A1D94042B for ; Tue, 17 Nov 2020 17:07:24 +0000 (UTC) Received: from localhost ([::1]:37302 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kf4Ru-00066z-4w for larch@yhetil.org; Tue, 17 Nov 2020 12:07:22 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44520) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kf4GD-00066n-Sa for emacs-orgmode@gnu.org; Tue, 17 Nov 2020 11:55:17 -0500 Received: from mail-lf1-f48.google.com ([209.85.167.48]:45101) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kf4GA-0007js-FR for emacs-orgmode@gnu.org; Tue, 17 Nov 2020 11:55:17 -0500 Received: by mail-lf1-f48.google.com with SMTP id z21so31047108lfe.12 for ; Tue, 17 Nov 2020 08:55:14 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:date:message-id:subject:to; bh=c/qjOKacqPzTiyWLTxygLXLuouOP4FXLM2xnsWzjZOU=; b=L0cCZT4uGaIke7WP4pzJqN/fFBbMNUjRjEl97pJc2asBGpuqQjC7lbyDCzFEmV/mlj qCgUFP4n08XOd+RD8YTTjlLDvN5MyiFTjZMVCTTu5PXDjk33UDPtjaYNO0WPk8E/ui9y RosnzjZSSB9t9C1mhnlqVJwQjTzCjTlfnJ+7cBYagA45iD4t53uEubm7usN2Zj8fwsu8 +NpmVLVARcOp547VK8OOd56kcvsgI4lVbbrH/nR522dPqin+VX6Dt9DL02CH+fd/l/u4 MANlziKXlPW5W9ar7x/XLCeFPk9F1SnAFuXvcCrZCQSNl4j6VE+dicXrPZ6kegvB/cwQ ZeFQ== X-Gm-Message-State: AOAM532XDyAqxnbzWFxzf/tDWGURQi/RMwFqEIG6gGI2Frokom4Msfa1 iMAFnbM+4g6rQiT1Mro4u+yPlSQ++gSaLet7kguJj8K4 X-Google-Smtp-Source: ABdhPJwg17hD1SaU2V02pyk/P6Y8RT3UIO5cNN+RqzhwZPmJYnGNk3T730LCo9xp/jdI34ysnlVHN39UJSvTnz4/1rM= X-Received: by 2002:a19:f704:: with SMTP id z4mr1969059lfe.312.1605632112561; Tue, 17 Nov 2020 08:55:12 -0800 (PST) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Tue, 17 Nov 2020 08:55:11 -0800 From: Stefan Kangas MIME-Version: 1.0 Date: Tue, 17 Nov 2020 08:55:11 -0800 Message-ID: Subject: [PATCH] Remove redundant 'function's around lambda To: Org-mode Content-Type: multipart/mixed; boundary="000000000000b5bafc05b4505bc2" Received-SPF: pass client-ip=209.85.167.48; envelope-from=stefankangas@gmail.com; helo=mail-lf1-f48.google.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/17 11:55:13 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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-Scanner: ns3122888.ip-94-23-21.eu Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; 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-Spam-Score: 0.09 X-TUID: n5wxsXKudpYc --000000000000b5bafc05b4505bc2 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I've been working on removing redundant `function' around `lambda' in Emacs core, so here is a patch which does the same for Org-mode. Note that Info node `(elisp) Anonymous Functions' says that: The read syntax =E2=80=98#'=E2=80=99 is a short-hand for using =E2=80= =98function=E2=80=99. The following forms are all equivalent: (lambda (x) (* x x)) (function (lambda (x) (* x x))) #'(lambda (x) (* x x)) IOW, we can safely remove the wrapped `function' form. Please see the attached. (My copyright assignment is on file.) --000000000000b5bafc05b4505bc2 Content-Type: text/x-diff; charset="US-ASCII"; name="0001-Remove-redundant-function-s-around-lambda.patch" Content-Disposition: attachment; filename="0001-Remove-redundant-function-s-around-lambda.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: a7791f9d2b37d669_0.1 RnJvbSA3NjA0Y2NjMDJhNjAzMzRlZjVjMjEzNWM1ZmIzYWJhZTRiZWQyNDY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gS2FuZ2FzIDxzdGVmYW5AbWFyeGlzdC5zZT4KRGF0 ZTogVHVlLCAxNyBOb3YgMjAyMCAxNzozNTo0OSArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIFJlbW92 ZSByZWR1bmRhbnQgJ2Z1bmN0aW9uJ3MgYXJvdW5kIGxhbWJkYQoKKiBjb250cmliL2xpc3Avb3Jn LXNlY3JldGFyeS5lbCAoam9pbik6CiogY29udHJpYi9saXNwL294LXRhc2tqdWdnbGVyLmVsIChv cmctdGFza2p1Z2dsZXItcHJvamVjdC1wbGFuKToKKiBsaXNwL29yZy1jbG9jay5lbCAob3JnLXJl c29sdmUtY2xvY2tzKToKKiBsaXNwL29yZy1lbGVtZW50LmVsIChvcmctZWxlbWVudC0taW50ZXJw cmV0LWFmZmlsaWF0ZWQta2V5d29yZHMpOgoqIGxpc3Avb3JnLWxpc3QuZWwgKG9yZy1saXN0LXN0 cnVjdCwgb3JnLWxpc3QtZ2V0LWl0ZW0tbnVtYmVyKQoob3JnLWxpc3Qtc2VwYXJhdGluZy1ibGFu ay1saW5lcy1udW1iZXIpCihvcmctbGlzdC1zdHJ1Y3QtZml4LWJ1bCwgb3JnLWxpc3Qtc3RydWN0 LWFwcGx5LXN0cnVjdCk6CiogbGlzcC9vcmcuZWwgKG9yZy1hZ2VuZGEtZmlsZXMsIG9yZy10b2dn bGUtaGVhZGluZyk6CiogbGlzcC9veC1hc2NpaS5lbCAob3JnLWFzY2lpLXRhYmxlLXJvdyk6Ciog bGlzcC9veC1iZWFtZXIuZWwgKG9yZy1iZWFtZXItLWZvcm1hdC1zZWN0aW9uKQoob3JnLWJlYW1l ci10ZW1wbGF0ZSk6CiogbGlzcC9veC1vZHQuZWwgKG9yZy1vZHQtLWltYWdlLXNpemUpCihvcmct b2R0LS1yZW5kZXItaW1hZ2UvZm9ybXVsYSk6CiogdGVzdGluZy9vcmctYmF0Y2gtdGVzdC1pbml0 LmVsIChsb2FkLXBhdGgpOiBSZW1vdmUgcmVkdW5kYW50CidmdW5jdGlvbidzIGFyb3VuZCBsYW1i ZGEuCi0tLQogY29udHJpYi9saXNwL29yZy1zZWNyZXRhcnkuZWwgIHwgICAyICstCiBjb250cmli L2xpc3Avb3gtdGFza2p1Z2dsZXIuZWwgfCAgIDUgKy0KIGxpc3Avb3JnLWNsb2NrLmVsICAgICAg ICAgICAgICB8ICAxMyArLQogbGlzcC9vcmctZWxlbWVudC5lbCAgICAgICAgICAgIHwgIDI1ICsr LQogbGlzcC9vcmctbGlzdC5lbCAgICAgICAgICAgICAgIHwgMzI2ICsrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLQogbGlzcC9vcmcuZWwgICAgICAgICAgICAgICAgICAgIHwgIDIyICst LQogbGlzcC9veC1hc2NpaS5lbCAgICAgICAgICAgICAgIHwgIDUzICsrKy0tLQogbGlzcC9veC1i ZWFtZXIuZWwgICAgICAgICAgICAgIHwgIDMyICsrLS0KIGxpc3Avb3gtb2R0LmVsICAgICAgICAg ICAgICAgICB8ICAyNSArKy0KIHRlc3Rpbmcvb3JnLWJhdGNoLXRlc3QtaW5pdC5lbCB8ICAgNiAr LQogMTAgZmlsZXMgY2hhbmdlZCwgMjQ2IGluc2VydGlvbnMoKyksIDI2MyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9jb250cmliL2xpc3Avb3JnLXNlY3JldGFyeS5lbCBiL2NvbnRyaWIvbGlz cC9vcmctc2VjcmV0YXJ5LmVsCmluZGV4IGJhYmZiNzUzOS4uNjU0ZmNjMWEwIDEwMDY0NAotLS0g YS9jb250cmliL2xpc3Avb3JnLXNlY3JldGFyeS5lbAorKysgYi9jb250cmliL2xpc3Avb3JnLXNl Y3JldGFyeS5lbApAQCAtMTc3LDcgKzE3Nyw3IEBACiAoZ2xvYmFsLXNldC1rZXkgIlxDLWNqIiAn b3JnLXNlYy10YWctZW50cnkpCiAKIChkZWZ1biBqb2luIChsc3Qgc2VwICZvcHRpb25hbCBwcmUg cG9zdCkKLSAgKG1hcGNvbmNhdCAoZnVuY3Rpb24gKGxhbWJkYSAoeCkgKGNvbmNhdCBwcmUgeCBw b3N0KSkpIGxzdCBzZXApKQorICAobWFwY29uY2F0IChsYW1iZGEgKHgpIChjb25jYXQgcHJlIHgg cG9zdCkpIGxzdCBzZXApKQogCiAoZGVmdW4gb3JnLXNlYy1nZXQtd2l0aCAoKQogICAoaWYgb3Jn LXNlYy13aXRoCmRpZmYgLS1naXQgYS9jb250cmliL2xpc3Avb3gtdGFza2p1Z2dsZXIuZWwgYi9j b250cmliL2xpc3Avb3gtdGFza2p1Z2dsZXIuZWwKaW5kZXggOGM0M2IwNjI5Li45MzA4ODE0NGMg MTAwNjQ0Ci0tLSBhL2NvbnRyaWIvbGlzcC9veC10YXNranVnZ2xlci5lbAorKysgYi9jb250cmli L2xpc3Avb3gtdGFza2p1Z2dsZXIuZWwKQEAgLTcyMCw5ICs3MjAsOCBAQCBSZXR1cm4gY29tcGxl dGUgcHJvamVjdCBwbGFuIGFzIGEgc3RyaW5nIGluIFRhc2tKdWdnbGVyIHN5bnRheC4iCiAJICAg ICAgKG1hcGNvbmNhdAogCSAgICAgICAnb3JnLWVsZW1lbnQtbm9ybWFsaXplLXN0cmluZwogCSAg ICAgICAobWFwY2FyCi0JCShmdW5jdGlvbgotCQkgKGxhbWJkYSAocmVwb3J0KQotCQkgICAocmVw bGFjZS1yZWdleHAtaW4tc3RyaW5nICIldGl0bGUiIHJlcG9ydC10aXRsZSAgcmVwb3J0IHQgdCkp KQorCQkobGFtYmRhIChyZXBvcnQpCisJCSAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiJXRp dGxlIiByZXBvcnQtdGl0bGUgIHJlcG9ydCB0IHQpKQogCQlvcmctdGFza2p1Z2dsZXItZGVmYXVs dC1yZXBvcnRzKSAiIikpKSkpKSkpKQogCiAoZGVmdW4gb3JnLXRhc2tqdWdnbGVyLS1idWlsZC1w cm9qZWN0IChwcm9qZWN0IGluZm8pCmRpZmYgLS1naXQgYS9saXNwL29yZy1jbG9jay5lbCBiL2xp c3Avb3JnLWNsb2NrLmVsCmluZGV4IDllZmQ5OWJlOC4uNmM3YTc5N2ZmIDEwMDY0NAotLS0gYS9s aXNwL29yZy1jbG9jay5lbAorKysgYi9saXNwL29yZy1jbG9jay5lbApAQCAtMTE2NCwxMyArMTE2 NCwxMiBAQCBJZiBgb25seS1kYW5nbGluZy1wJyBpcyBub24tbmlsLCBvbmx5IGFzayB0byByZXNv bHZlIGRhbmdsaW5nCiAJCSAgKG9yZy1jbG9jay1yZXNvbHZlCiAJCSAgIGNsb2NrCiAJCSAgIChv ciBwcm9tcHQtZm4KLQkJICAgICAgIChmdW5jdGlvbgotCQkJKGxhbWJkYSAoY2xvY2spCi0JCQkg IChmb3JtYXQKLQkJCSAgICJEYW5nbGluZyBjbG9jayBzdGFydGVkICVkIG1pbnMgYWdvIgotCQkJ ICAgKGZsb29yIChvcmctdGltZS1jb252ZXJ0LXRvLWludGVnZXIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKG9yZy10aW1lLXNpbmNlIChjZHIgY2xvY2spKSkKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA2MCkpKSkpCisJCSAgICAgICAobGFtYmRhIChjbG9j aykKKwkJCSAoZm9ybWF0CisJCQkgICJEYW5nbGluZyBjbG9jayBzdGFydGVkICVkIG1pbnMgYWdv IgorCQkJICAoZmxvb3IgKG9yZy10aW1lLWNvbnZlcnQtdG8taW50ZWdlcgorCQkJCSAgKG9yZy10 aW1lLXNpbmNlIChjZHIgY2xvY2spKSkKKwkJCQkgNjApKSkpCiAJCSAgIChvciBsYXN0LXZhbGlk CiAJCSAgICAgICAoY2RyIGNsb2NrKSkpKSkpKSkpKSkKIApkaWZmIC0tZ2l0IGEvbGlzcC9vcmct ZWxlbWVudC5lbCBiL2xpc3Avb3JnLWVsZW1lbnQuZWwKaW5kZXggMmFkNTU3ZDIxLi5hMjU4MmI4 MjIgMTAwNjQ0Ci0tLSBhL2xpc3Avb3JnLWVsZW1lbnQuZWwKKysrIGIvbGlzcC9vcmctZWxlbWVu dC5lbApAQCAtNDY1NSwxOSArNDY1NSwxOCBAQCB0byBpbnRlcnByZXQuICBSZXR1cm4gT3JnIHN5 bnRheCBhcyBhIHN0cmluZy4iCiAgICJSZXR1cm4gRUxFTUVOVCdzIGFmZmlsaWF0ZWQga2V5d29y ZHMgYXMgT3JnIHN5bnRheC4KIElmIHRoZXJlIGlzIG5vIGFmZmlsaWF0ZWQga2V5d29yZCwgcmV0 dXJuIHRoZSBlbXB0eSBzdHJpbmcuIgogICAobGV0ICgoa2V5d29yZC10by1vcmcKLQkgKGZ1bmN0 aW9uCi0JICAobGFtYmRhIChrZXkgdmFsdWUpCi0JICAgIChsZXQgKGR1YWwpCi0JICAgICAgKHdo ZW4gKG1lbWJlciBrZXkgb3JnLWVsZW1lbnQtZHVhbC1rZXl3b3JkcykKLQkJKHNldHEgZHVhbCAo Y2RyIHZhbHVlKSB2YWx1ZSAoY2FyIHZhbHVlKSkpCi0JICAgICAgKGNvbmNhdCAiIysiIChkb3du Y2FzZSBrZXkpCi0JCSAgICAgIChhbmQgZHVhbAotCQkJICAgKGZvcm1hdCAiWyVzXSIgKG9yZy1l bGVtZW50LWludGVycHJldC1kYXRhIGR1YWwpKSkKLQkJICAgICAgIjogIgotCQkgICAgICAoaWYg KG1lbWJlciBrZXkgb3JnLWVsZW1lbnQtcGFyc2VkLWtleXdvcmRzKQotCQkJICAob3JnLWVsZW1l bnQtaW50ZXJwcmV0LWRhdGEgdmFsdWUpCi0JCQl2YWx1ZSkKLQkJICAgICAgIlxuIikpKSkpKQor CSAobGFtYmRhIChrZXkgdmFsdWUpCisJICAgKGxldCAoZHVhbCkKKwkgICAgICh3aGVuIChtZW1i ZXIga2V5IG9yZy1lbGVtZW50LWR1YWwta2V5d29yZHMpCisJICAgICAgIChzZXRxIGR1YWwgKGNk ciB2YWx1ZSkgdmFsdWUgKGNhciB2YWx1ZSkpKQorCSAgICAgKGNvbmNhdCAiIysiIChkb3duY2Fz ZSBrZXkpCisJCSAgICAgKGFuZCBkdWFsCisJCQkgIChmb3JtYXQgIlslc10iIChvcmctZWxlbWVu dC1pbnRlcnByZXQtZGF0YSBkdWFsKSkpCisJCSAgICAgIjogIgorCQkgICAgIChpZiAobWVtYmVy IGtleSBvcmctZWxlbWVudC1wYXJzZWQta2V5d29yZHMpCisJCQkgKG9yZy1lbGVtZW50LWludGVy cHJldC1kYXRhIHZhbHVlKQorCQkgICAgICAgdmFsdWUpCisJCSAgICAgIlxuIikpKSkpCiAgICAg KG1hcGNvbmNhdAogICAgICAobGFtYmRhIChwcm9wKQogICAgICAgIChsZXQgKCh2YWx1ZSAob3Jn LWVsZW1lbnQtcHJvcGVydHkgcHJvcCBlbGVtZW50KSkKZGlmZiAtLWdpdCBhL2xpc3Avb3JnLWxp c3QuZWwgYi9saXNwL29yZy1saXN0LmVsCmluZGV4IGI4MzgzMjgzYi4uMzEyZjA4YTMzIDEwMDY0 NAotLS0gYS9saXNwL29yZy1saXN0LmVsCisrKyBiL2xpc3Avb3JnLWxpc3QuZWwKQEAgLTYwMCwy NSArNjAwLDIzIEBAIEFzc3VtZSBwb2ludCBpcyBhdCBhbiBpdGVtLiIKIAkgICAoYmVnLWNlbGwg KGNvbnMgKHBvaW50KSAoY3VycmVudC1pbmRlbnRhdGlvbikpKQogICAgICAgICAgICBpdG0tbHN0 IGl0bS1sc3QtMiBlbmQtbHN0IGVuZC1sc3QtMiBzdHJ1Y3QKIAkgICAoYXNzb2MtYXQtcG9pbnQK LQkgICAgKGZ1bmN0aW9uCi0JICAgICA7OyBSZXR1cm4gYXNzb2NpYXRpb24gYXQgcG9pbnQuCi0J ICAgICAobGFtYmRhIChpbmQpCi0JICAgICAgIChsb29raW5nLWF0IG9yZy1saXN0LWZ1bGwtaXRl bS1yZSkKLQkgICAgICAgKGxldCAoKGJ1bGxldCAobWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRpZXMg MSkpKQotCQkgKGxpc3QgKHBvaW50KQotCQkgICAgICAgaW5kCi0JCSAgICAgICBidWxsZXQKLQkJ ICAgICAgIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyAyKSA7IGNvdW50ZXIKLQkJICAgICAg IChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyAzKSA7IGNoZWNrYm94Ci0JCSAgICAgICA7OyBE ZXNjcmlwdGlvbiB0YWcuCi0JCSAgICAgICAoYW5kIChzdHJpbmctbWF0Y2gtcCAiWy0rKl0iIGJ1 bGxldCkKLQkJCSAgICAobWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRpZXMgNCkpKSkpKSkKKwkgICAg OzsgUmV0dXJuIGFzc29jaWF0aW9uIGF0IHBvaW50LgorCSAgICAobGFtYmRhIChpbmQpCisJICAg ICAgKGxvb2tpbmctYXQgb3JnLWxpc3QtZnVsbC1pdGVtLXJlKQorCSAgICAgIChsZXQgKChidWxs ZXQgKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDEpKSkKKwkJKGxpc3QgKHBvaW50KQorCQkg ICAgICBpbmQKKwkJICAgICAgYnVsbGV0CisJCSAgICAgIChtYXRjaC1zdHJpbmctbm8tcHJvcGVy dGllcyAyKSA7IGNvdW50ZXIKKwkJICAgICAgKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDMp IDsgY2hlY2tib3gKKwkJICAgICAgOzsgRGVzY3JpcHRpb24gdGFnLgorCQkgICAgICAoYW5kIChz dHJpbmctbWF0Y2gtcCAiWy0rKl0iIGJ1bGxldCkKKwkJCSAgIChtYXRjaC1zdHJpbmctbm8tcHJv cGVydGllcyA0KSkpKSkpCiAJICAgKGVuZC1iZWZvcmUtYmxhbmsKLQkgICAgKGZ1bmN0aW9uCi0J ICAgICA7OyBFbnN1cmUgbGlzdCBlbmRzIGF0IHRoZSBmaXJzdCBibGFuayBsaW5lLgotCSAgICAg KGxhbWJkYSAoKQotCSAgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFxyXHRcbiIpCi0JICAg ICAgIChtaW4gKDErIChwb2ludC1hdC1lb2wpKSBsaW0tZG93bikpKSkpCisJICAgIDs7IEVuc3Vy ZSBsaXN0IGVuZHMgYXQgdGhlIGZpcnN0IGJsYW5rIGxpbmUuCisJICAgIChsYW1iZGEgKCkKKwkg ICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFxyXHRcbiIpCisJICAgICAgKG1pbiAoMSsgKHBv aW50LWF0LWVvbCkpIGxpbS1kb3duKSkpKQogICAgICAgOzsgMS4gUmVhZCBsaXN0IGZyb20gc3Rh cnRpbmcgaXRlbSB0byBpdHMgYmVnaW5uaW5nLCBhbmQgc2F2ZQogICAgICAgOzsgICAgdG9wIGl0 ZW0gcG9zaXRpb24gYW5kIGluZGVudGF0aW9uIGluIEJFRy1DRUxMLiAgQWxzbyBzdG9yZQogICAg ICAgOzsgICAgZW5kaW5nIHBvc2l0aW9uIG9mIGl0ZW1zIGluIEVORC1MU1QuCkBAIC0xMDAzLDIz ICsxMDAxLDIyIEBAIGFsaXN0IG9mIGFuY2VzdG9ycywgYXMgcmV0dXJuZWQgYnkgYG9yZy1saXN0 LXBhcmVudHMtYWxpc3QnLgogUmV0dXJuIHZhbHVlIGlzIGEgbGlzdCBvZiBpbnRlZ2Vycy4gIENv dW50ZXJzIGhhdmUgYW4gaW1wYWN0IG9uCiB0aGF0IHZhbHVlLiIKICAgKGxldCAoKGdldC1yZWxh dGl2ZS1udW1iZXIKLQkgKGZ1bmN0aW9uCi0JICAobGFtYmRhIChpdGVtIHN0cnVjdCBwcmV2cykK LQkgICAgOzsgUmV0dXJuIHJlbGF0aXZlIHNlcXVlbmNlIG51bWJlciBvZiBJVEVNIGluIHRoZSBz dWItbGlzdAotCSAgICA7OyBpdCBiZWxvbmdzLiAgU1RSVUNUIGlzIHRoZSBsaXN0IHN0cnVjdHVy ZS4gIFBSRVZTIGlzCi0JICAgIDs7IHRoZSBhbGlzdCBvZiBwcmV2aW91cyBpdGVtcy4KLQkgICAg KGxldCAoKHNlcSAwKSAocG9zIGl0ZW0pIGNvdW50ZXIpCi0JICAgICAgKHdoaWxlIChhbmQgKG5v dCAoc2V0cSBjb3VudGVyIChvcmctbGlzdC1nZXQtY291bnRlciBwb3Mgc3RydWN0KSkpCi0JCQkg IChzZXRxIHBvcyAob3JnLWxpc3QtZ2V0LXByZXYtaXRlbSBwb3Mgc3RydWN0IHByZXZzKSkpCi0J CShjbC1pbmNmIHNlcSkpCi0JICAgICAgKGlmIChub3QgY291bnRlcikgKDErIHNlcSkKLQkJKGNv bmQKLQkJICgoc3RyaW5nLW1hdGNoICJbQS1aYS16XSIgY291bnRlcikKLQkJICAoKyAoLSAoc3Ry aW5nLXRvLWNoYXIgKHVwY2FzZSAobWF0Y2gtc3RyaW5nIDAgY291bnRlcikpKSA2NCkKLQkJICAg ICBzZXEpKQotCQkgKChzdHJpbmctbWF0Y2ggIlswLTldKyIgY291bnRlcikKLQkJICAoKyAoc3Ry aW5nLXRvLW51bWJlciAobWF0Y2gtc3RyaW5nIDAgY291bnRlcikpIHNlcSkpCi0JCSAodCAoMSsg c2VxKSkpKSkpKSkpCisJIChsYW1iZGEgKGl0ZW0gc3RydWN0IHByZXZzKQorCSAgIDs7IFJldHVy biByZWxhdGl2ZSBzZXF1ZW5jZSBudW1iZXIgb2YgSVRFTSBpbiB0aGUgc3ViLWxpc3QKKwkgICA7 OyBpdCBiZWxvbmdzLiAgU1RSVUNUIGlzIHRoZSBsaXN0IHN0cnVjdHVyZS4gIFBSRVZTIGlzCisJ ICAgOzsgdGhlIGFsaXN0IG9mIHByZXZpb3VzIGl0ZW1zLgorCSAgIChsZXQgKChzZXEgMCkgKHBv cyBpdGVtKSBjb3VudGVyKQorCSAgICAgKHdoaWxlIChhbmQgKG5vdCAoc2V0cSBjb3VudGVyIChv cmctbGlzdC1nZXQtY291bnRlciBwb3Mgc3RydWN0KSkpCisJCQkgKHNldHEgcG9zIChvcmctbGlz dC1nZXQtcHJldi1pdGVtIHBvcyBzdHJ1Y3QgcHJldnMpKSkKKwkgICAgICAgKGNsLWluY2Ygc2Vx KSkKKwkgICAgIChpZiAobm90IGNvdW50ZXIpICgxKyBzZXEpCisJICAgICAgIChjb25kCisJCSgo c3RyaW5nLW1hdGNoICJbQS1aYS16XSIgY291bnRlcikKKwkJICgrICgtIChzdHJpbmctdG8tY2hh ciAodXBjYXNlIChtYXRjaC1zdHJpbmcgMCBjb3VudGVyKSkpIDY0KQorCQkgICAgc2VxKSkKKwkJ KChzdHJpbmctbWF0Y2ggIlswLTldKyIgY291bnRlcikKKwkJICgrIChzdHJpbmctdG8tbnVtYmVy IChtYXRjaC1zdHJpbmcgMCBjb3VudGVyKSkgc2VxKSkKKwkJKHQgKDErIHNlcSkpKSkpKSkpCiAg ICAgOzsgQ29ucyBlYWNoIHBhcmVudCByZWxhdGl2ZSBudW1iZXIgaW50byByZXR1cm4gdmFsdWUg KE9VVCkuCiAgICAgKGxldCAoKG91dCAobGlzdCAoZnVuY2FsbCBnZXQtcmVsYXRpdmUtbnVtYmVy IGl0ZW0gc3RydWN0IHByZXZzKSkpCiAJICAocGFyZW50IGl0ZW0pKQpAQCAtMTE4MSwxNCArMTE3 OCwxMyBAQCBzb21lIGhldXJpc3RpY3MgdG8gZ3Vlc3MgdGhlIHJlc3VsdC4iCiAJICAgKGNkciAo YXNzcSAncGxhaW4tbGlzdC1pdGVtIG9yZy1ibGFuay1iZWZvcmUtbmV3LWVudHJ5KSkpCiAJICB1 c3ItYmxhbmsKIAkgIChjb3VudC1ibGFua3MKLQkgICAoZnVuY3Rpb24KLQkgICAgKGxhbWJkYSAo KQotCSAgICAgIDs7IENvdW50IGJsYW5rIGxpbmVzIGFib3ZlIGJlZ2lubmluZyBvZiBsaW5lLgot CSAgICAgIChzYXZlLWV4Y3Vyc2lvbgotCQkoY291bnQtbGluZXMgKGdvdG8tY2hhciAocG9pbnQt YXQtYm9sKSkKLQkJCSAgICAgKHByb2duIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHJcdFxuIikK LQkJCQkgICAgKGZvcndhcmQtbGluZSkKLQkJCQkgICAgKHBvaW50KSkpKSkpKSkKKwkgICAobGFt YmRhICgpCisJICAgICA7OyBDb3VudCBibGFuayBsaW5lcyBhYm92ZSBiZWdpbm5pbmcgb2YgbGlu ZS4KKwkgICAgIChzYXZlLWV4Y3Vyc2lvbgorCSAgICAgICAoY291bnQtbGluZXMgKGdvdG8tY2hh ciAocG9pbnQtYXQtYm9sKSkKKwkJCSAgICAocHJvZ24gKHNraXAtY2hhcnMtYmFja3dhcmQgIiBc clx0XG4iKQorCQkJCSAgIChmb3J3YXJkLWxpbmUpCisJCQkJICAgKHBvaW50KSkpKSkpKQogICAg ICAgKGNvbmQKICAgICAgICA7OyBUcml2aWFsIGNhc2VzIHdoZXJlIHRoZXJlIHNob3VsZCBiZSBu b25lLgogICAgICAgICgobm90IGluc2VydC1ibGFuay1wKSAwKQpAQCAtMTY1MSw2NSArMTY0Nyw2 NCBAQCBQUkVWUyBpcyB0aGUgYWxpc3Qgb2YgcHJldmlvdXMgaXRlbXMsIGFzIHJldHVybmVkIGJ5 CiBUaGlzIGZ1bmN0aW9uIG1vZGlmaWVzIFNUUlVDVC4iCiAgIChsZXQgKChjYXNlLWZvbGQtc2Vh cmNoIG5pbCkKIAkoZml4LWJ1bAotCSAoZnVuY3Rpb24KLQkgIDs7IFNldCBidWxsZXQgb2YgSVRF TSBpbiBTVFJVQ1QsIGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZgotCSAgOzsgZmlyc3QgaXRlbSBv ZiB0aGUgbGlzdCwgdGhlIHByZXZpb3VzIGJ1bGxldCBhbmQgY291bnRlcgotCSAgOzsgaWYgYW55 LgotCSAgKGxhbWJkYSAoaXRlbSkKLQkgICAgKGxldCogKChwcmV2IChvcmctbGlzdC1nZXQtcHJl di1pdGVtIGl0ZW0gc3RydWN0IHByZXZzKSkKLQkJICAgKHByZXYtYnVsIChhbmQgcHJldiAob3Jn LWxpc3QtZ2V0LWJ1bGxldCBwcmV2IHN0cnVjdCkpKQotCQkgICAoY291bnRlciAob3JnLWxpc3Qt Z2V0LWNvdW50ZXIgaXRlbSBzdHJ1Y3QpKQotCQkgICAoYnVsbGV0IChvcmctbGlzdC1nZXQtYnVs bGV0IGl0ZW0gc3RydWN0KSkKLQkJICAgKGFscGhhcCAoYW5kIChub3QgcHJldikKLQkJCQkob3Jn LWxpc3QtdXNlLWFscGhhLWJ1bC1wIGl0ZW0gc3RydWN0IHByZXZzKSkpKQotCSAgICAgIChvcmct bGlzdC1zZXQtYnVsbGV0Ci0JICAgICAgIGl0ZW0gc3RydWN0Ci0JICAgICAgIChvcmctbGlzdC1i dWxsZXQtc3RyaW5nCi0JCShjb25kCi0JCSA7OyBBbHBoYSBjb3VudGVyIGluIGFscGhhIGxpc3Q6 IHVzZSBjb3VudGVyLgotCQkgKChhbmQgcHJldiBjb3VudGVyCi0JCSAgICAgICAoc3RyaW5nLW1h dGNoICJbYS16QS1aXSIgY291bnRlcikKLQkJICAgICAgIChzdHJpbmctbWF0Y2ggIlthLXpBLVpd IiBwcmV2LWJ1bCkpCi0JCSAgOzsgVXNlIGNvbmQgdG8gYmUgc3VyZSBgc3RyaW5nLW1hdGNoJyBp cyB1c2VkIGluCi0JCSAgOzsgYm90aCBjYXNlcy4KLQkJICAobGV0ICgocmVhbC1jb3VudAotCQkJ IChjb25kCi0JCQkgICgoc3RyaW5nLW1hdGNoICJbYS16XSIgcHJldi1idWwpIChkb3duY2FzZSBj b3VudGVyKSkKLQkJCSAgKChzdHJpbmctbWF0Y2ggIltBLVpdIiBwcmV2LWJ1bCkgKHVwY2FzZSBj b3VudGVyKSkpKSkKLQkJICAgIChyZXBsYWNlLW1hdGNoIHJlYWwtY291bnQgbmlsIG5pbCBwcmV2 LWJ1bCkpKQotCQkgOzsgTnVtIGNvdW50ZXIgaW4gYSBudW0gbGlzdDogdXNlIGNvdW50ZXIuCi0J CSAoKGFuZCBwcmV2IGNvdW50ZXIKLQkJICAgICAgIChzdHJpbmctbWF0Y2ggIlswLTldKyIgY291 bnRlcikKLQkJICAgICAgIChzdHJpbmctbWF0Y2ggIlswLTldKyIgcHJldi1idWwpKQotCQkgIChy ZXBsYWNlLW1hdGNoIGNvdW50ZXIgbmlsIG5pbCBwcmV2LWJ1bCkpCi0JCSA7OyBObyBjb3VudGVy OiBpbmNyZWFzZSwgaWYgbmVlZGVkLCBwcmV2aW91cyBidWxsZXQuCi0JCSAocHJldgotCQkgIChv cmctbGlzdC1pbmMtYnVsbGV0LW1heWJlIChvcmctbGlzdC1nZXQtYnVsbGV0IHByZXYgc3RydWN0 KSkpCi0JCSA7OyBBbHBoYSBjb3VudGVyIGF0IGZpcnN0IGl0ZW06IHVzZSBjb3VudGVyLgotCQkg KChhbmQgY291bnRlciAob3JnLWxpc3QtdXNlLWFscGhhLWJ1bC1wIGl0ZW0gc3RydWN0IHByZXZz KQotCQkgICAgICAgKHN0cmluZy1tYXRjaCAiW0EtWmEtel0iIGNvdW50ZXIpCi0JCSAgICAgICAo c3RyaW5nLW1hdGNoICJbQS1aYS16XSIgYnVsbGV0KSkKLQkJICAobGV0ICgocmVhbC1jb3VudAot CQkJIChjb25kCi0JCQkgICgoc3RyaW5nLW1hdGNoICJbYS16XSIgYnVsbGV0KSAoZG93bmNhc2Ug Y291bnRlcikpCi0JCQkgICgoc3RyaW5nLW1hdGNoICJbQS1aXSIgYnVsbGV0KSAodXBjYXNlIGNv dW50ZXIpKSkpKQotCQkgICAgKHJlcGxhY2UtbWF0Y2ggcmVhbC1jb3VudCBuaWwgbmlsIGJ1bGxl dCkpKQotCQkgOzsgTnVtIGNvdW50ZXIgYXQgZmlyc3QgaXRlbTogdXNlIGNvdW50ZXIuCi0JCSAo KGFuZCBjb3VudGVyCi0JCSAgICAgICAoc3RyaW5nLW1hdGNoICJbMC05XSsiIGNvdW50ZXIpCi0J CSAgICAgICAoc3RyaW5nLW1hdGNoICJbMC05XSsiIGJ1bGxldCkpCi0JCSAgKHJlcGxhY2UtbWF0 Y2ggY291bnRlciBuaWwgbmlsIGJ1bGxldCkpCi0JCSA7OyBGaXJzdCBidWxsZXQgaXMgYWxwaGEg dXBwZXJjYXNlOiB1c2UgIkEiLgotCQkgKChhbmQgYWxwaGFwIChzdHJpbmctbWF0Y2ggIltBLVpd IiBidWxsZXQpKQotCQkgIChyZXBsYWNlLW1hdGNoICJBIiBuaWwgbmlsIGJ1bGxldCkpCi0JCSA7 OyBGaXJzdCBidWxsZXQgaXMgYWxwaGEgbG93ZXJjYXNlOiB1c2UgImEiLgotCQkgKChhbmQgYWxw aGFwIChzdHJpbmctbWF0Y2ggIlthLXpdIiBidWxsZXQpKQotCQkgIChyZXBsYWNlLW1hdGNoICJh IiBuaWwgbmlsIGJ1bGxldCkpCi0JCSA7OyBGaXJzdCBidWxsZXQgaXMgbnVtOiB1c2UgIjEiLgot CQkgKChzdHJpbmctbWF0Y2ggIlxcKFswLTldK1xcfFtBLVphLXpdXFwpIiBidWxsZXQpCi0JCSAg KHJlcGxhY2UtbWF0Y2ggIjEiIG5pbCBuaWwgYnVsbGV0KSkKLQkJIDs7IE5vdCBhbiBvcmRlcmVk IGxpc3Q6IGtlZXAgYnVsbGV0LgotCQkgKHQgYnVsbGV0KSkpKSkpKSkpCisJIDs7IFNldCBidWxs ZXQgb2YgSVRFTSBpbiBTVFJVQ1QsIGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZgorCSA7OyBmaXJz dCBpdGVtIG9mIHRoZSBsaXN0LCB0aGUgcHJldmlvdXMgYnVsbGV0IGFuZCBjb3VudGVyCisJIDs7 IGlmIGFueS4KKwkgKGxhbWJkYSAoaXRlbSkKKwkgICAobGV0KiAoKHByZXYgKG9yZy1saXN0LWdl dC1wcmV2LWl0ZW0gaXRlbSBzdHJ1Y3QgcHJldnMpKQorCQkgIChwcmV2LWJ1bCAoYW5kIHByZXYg KG9yZy1saXN0LWdldC1idWxsZXQgcHJldiBzdHJ1Y3QpKSkKKwkJICAoY291bnRlciAob3JnLWxp c3QtZ2V0LWNvdW50ZXIgaXRlbSBzdHJ1Y3QpKQorCQkgIChidWxsZXQgKG9yZy1saXN0LWdldC1i dWxsZXQgaXRlbSBzdHJ1Y3QpKQorCQkgIChhbHBoYXAgKGFuZCAobm90IHByZXYpCisJCQkgICAg ICAgKG9yZy1saXN0LXVzZS1hbHBoYS1idWwtcCBpdGVtIHN0cnVjdCBwcmV2cykpKSkKKwkgICAg IChvcmctbGlzdC1zZXQtYnVsbGV0CisJICAgICAgaXRlbSBzdHJ1Y3QKKwkgICAgICAob3JnLWxp c3QtYnVsbGV0LXN0cmluZworCSAgICAgICAoY29uZAorCQk7OyBBbHBoYSBjb3VudGVyIGluIGFs cGhhIGxpc3Q6IHVzZSBjb3VudGVyLgorCQkoKGFuZCBwcmV2IGNvdW50ZXIKKwkJICAgICAgKHN0 cmluZy1tYXRjaCAiW2EtekEtWl0iIGNvdW50ZXIpCisJCSAgICAgIChzdHJpbmctbWF0Y2ggIlth LXpBLVpdIiBwcmV2LWJ1bCkpCisJCSA7OyBVc2UgY29uZCB0byBiZSBzdXJlIGBzdHJpbmctbWF0 Y2gnIGlzIHVzZWQgaW4KKwkJIDs7IGJvdGggY2FzZXMuCisJCSAobGV0ICgocmVhbC1jb3VudAor CQkJKGNvbmQKKwkJCSAoKHN0cmluZy1tYXRjaCAiW2Etel0iIHByZXYtYnVsKSAoZG93bmNhc2Ug Y291bnRlcikpCisJCQkgKChzdHJpbmctbWF0Y2ggIltBLVpdIiBwcmV2LWJ1bCkgKHVwY2FzZSBj b3VudGVyKSkpKSkKKwkJICAgKHJlcGxhY2UtbWF0Y2ggcmVhbC1jb3VudCBuaWwgbmlsIHByZXYt YnVsKSkpCisJCTs7IE51bSBjb3VudGVyIGluIGEgbnVtIGxpc3Q6IHVzZSBjb3VudGVyLgorCQko KGFuZCBwcmV2IGNvdW50ZXIKKwkJICAgICAgKHN0cmluZy1tYXRjaCAiWzAtOV0rIiBjb3VudGVy KQorCQkgICAgICAoc3RyaW5nLW1hdGNoICJbMC05XSsiIHByZXYtYnVsKSkKKwkJIChyZXBsYWNl LW1hdGNoIGNvdW50ZXIgbmlsIG5pbCBwcmV2LWJ1bCkpCisJCTs7IE5vIGNvdW50ZXI6IGluY3Jl YXNlLCBpZiBuZWVkZWQsIHByZXZpb3VzIGJ1bGxldC4KKwkJKHByZXYKKwkJIChvcmctbGlzdC1p bmMtYnVsbGV0LW1heWJlIChvcmctbGlzdC1nZXQtYnVsbGV0IHByZXYgc3RydWN0KSkpCisJCTs7 IEFscGhhIGNvdW50ZXIgYXQgZmlyc3QgaXRlbTogdXNlIGNvdW50ZXIuCisJCSgoYW5kIGNvdW50 ZXIgKG9yZy1saXN0LXVzZS1hbHBoYS1idWwtcCBpdGVtIHN0cnVjdCBwcmV2cykKKwkJICAgICAg KHN0cmluZy1tYXRjaCAiW0EtWmEtel0iIGNvdW50ZXIpCisJCSAgICAgIChzdHJpbmctbWF0Y2gg IltBLVphLXpdIiBidWxsZXQpKQorCQkgKGxldCAoKHJlYWwtY291bnQKKwkJCShjb25kCisJCQkg KChzdHJpbmctbWF0Y2ggIlthLXpdIiBidWxsZXQpIChkb3duY2FzZSBjb3VudGVyKSkKKwkJCSAo KHN0cmluZy1tYXRjaCAiW0EtWl0iIGJ1bGxldCkgKHVwY2FzZSBjb3VudGVyKSkpKSkKKwkJICAg KHJlcGxhY2UtbWF0Y2ggcmVhbC1jb3VudCBuaWwgbmlsIGJ1bGxldCkpKQorCQk7OyBOdW0gY291 bnRlciBhdCBmaXJzdCBpdGVtOiB1c2UgY291bnRlci4KKwkJKChhbmQgY291bnRlcgorCQkgICAg ICAoc3RyaW5nLW1hdGNoICJbMC05XSsiIGNvdW50ZXIpCisJCSAgICAgIChzdHJpbmctbWF0Y2gg IlswLTldKyIgYnVsbGV0KSkKKwkJIChyZXBsYWNlLW1hdGNoIGNvdW50ZXIgbmlsIG5pbCBidWxs ZXQpKQorCQk7OyBGaXJzdCBidWxsZXQgaXMgYWxwaGEgdXBwZXJjYXNlOiB1c2UgIkEiLgorCQko KGFuZCBhbHBoYXAgKHN0cmluZy1tYXRjaCAiW0EtWl0iIGJ1bGxldCkpCisJCSAocmVwbGFjZS1t YXRjaCAiQSIgbmlsIG5pbCBidWxsZXQpKQorCQk7OyBGaXJzdCBidWxsZXQgaXMgYWxwaGEgbG93 ZXJjYXNlOiB1c2UgImEiLgorCQkoKGFuZCBhbHBoYXAgKHN0cmluZy1tYXRjaCAiW2Etel0iIGJ1 bGxldCkpCisJCSAocmVwbGFjZS1tYXRjaCAiYSIgbmlsIG5pbCBidWxsZXQpKQorCQk7OyBGaXJz dCBidWxsZXQgaXMgbnVtOiB1c2UgIjEiLgorCQkoKHN0cmluZy1tYXRjaCAiXFwoWzAtOV0rXFx8 W0EtWmEtel1cXCkiIGJ1bGxldCkKKwkJIChyZXBsYWNlLW1hdGNoICIxIiBuaWwgbmlsIGJ1bGxl dCkpCisJCTs7IE5vdCBhbiBvcmRlcmVkIGxpc3Q6IGtlZXAgYnVsbGV0LgorCQkodCBidWxsZXQp KSkpKSkpKQogICAgIChtYXBjIGZpeC1idWwgKG1hcGNhciAjJ2NhciBzdHJ1Y3QpKSkpCiAKIChk ZWZ1biBvcmctbGlzdC1zdHJ1Y3QtZml4LWluZCAoc3RydWN0IHBhcmVudHMgJm9wdGlvbmFsIGJ1 bGxldC1zaXplKQpAQCAtMTc1NSwyMSArMTc1MCwyMCBAQCBhbGwgb3RoZXJzIGNhc2VzLCB0aGUg cmV0dXJuIHZhbHVlIHdpbGwgYmUgbmlsLgogVGhpcyBmdW5jdGlvbiBtb2RpZmllcyBTVFJVQ1Qu IgogICAobGV0ICgoYWxsLWl0ZW1zIChtYXBjYXIgIydjYXIgc3RydWN0KSkKIAkoc2V0LXBhcmVu dC1ib3gKLQkgKGZ1bmN0aW9uCi0JICAobGFtYmRhIChpdGVtKQotCSAgICAobGV0KiAoKGJveC1s aXN0Ci0JCSAgICAobWFwY2FyIChsYW1iZGEgKGNoaWxkKQotCQkJICAgICAgKG9yZy1saXN0LWdl dC1jaGVja2JveCBjaGlsZCBzdHJ1Y3QpKQotCQkJICAgIChvcmctbGlzdC1nZXQtY2hpbGRyZW4g aXRlbSBzdHJ1Y3QgcGFyZW50cykpKSkKLQkgICAgICAob3JnLWxpc3Qtc2V0LWNoZWNrYm94Ci0J ICAgICAgIGl0ZW0gc3RydWN0Ci0JICAgICAgIChjb25kCi0JCSgoYW5kIChtZW1iZXIgIlsgXSIg Ym94LWxpc3QpIChtZW1iZXIgIltYXSIgYm94LWxpc3QpKSAiWy1dIikKLQkJKChtZW1iZXIgIlst XSIgYm94LWxpc3QpICJbLV0iKQotCQkoKG1lbWJlciAiW1hdIiBib3gtbGlzdCkgIltYXSIpCi0J CSgobWVtYmVyICJbIF0iIGJveC1saXN0KSAiWyBdIikKLQkJOzsgUGFyZW50IGhhcyBubyBib3hl ZCBjaGlsZDogbGVhdmUgYm94IGFzLWlzLgotCQkodCAob3JnLWxpc3QtZ2V0LWNoZWNrYm94IGl0 ZW0gc3RydWN0KSkpKSkpKSkKKwkgKGxhbWJkYSAoaXRlbSkKKwkgICAobGV0KiAoKGJveC1saXN0 CisJCSAgIChtYXBjYXIgKGxhbWJkYSAoY2hpbGQpCisJCQkgICAgIChvcmctbGlzdC1nZXQtY2hl Y2tib3ggY2hpbGQgc3RydWN0KSkKKwkJCSAgIChvcmctbGlzdC1nZXQtY2hpbGRyZW4gaXRlbSBz dHJ1Y3QgcGFyZW50cykpKSkKKwkgICAgIChvcmctbGlzdC1zZXQtY2hlY2tib3gKKwkgICAgICBp dGVtIHN0cnVjdAorCSAgICAgIChjb25kCisJICAgICAgICgoYW5kIChtZW1iZXIgIlsgXSIgYm94 LWxpc3QpIChtZW1iZXIgIltYXSIgYm94LWxpc3QpKSAiWy1dIikKKwkgICAgICAgKChtZW1iZXIg IlstXSIgYm94LWxpc3QpICJbLV0iKQorCSAgICAgICAoKG1lbWJlciAiW1hdIiBib3gtbGlzdCkg IltYXSIpCisJICAgICAgICgobWVtYmVyICJbIF0iIGJveC1saXN0KSAiWyBdIikKKwkgICAgICAg OzsgUGFyZW50IGhhcyBubyBib3hlZCBjaGlsZDogbGVhdmUgYm94IGFzLWlzLgorCSAgICAgICAo dCAob3JnLWxpc3QtZ2V0LWNoZWNrYm94IGl0ZW0gc3RydWN0KSkpKSkpKQogCXBhcmVudC1saXN0 KQogICAgIDs7IDEuIExpc3QgYWxsIHBhcmVudHMgd2l0aCBhIGNoZWNrYm94LgogICAgIChtYXBj CkBAIC0xODQwLDU2ICsxODM0LDU0IEBAIEluaXRpYWwgcG9zaXRpb24gb2YgY3Vyc29yIGlzIHJl c3RvcmVkIGFmdGVyIHRoZSBjaGFuZ2VzLiIKIAkJCSAgICAgKG9yZy1pbmxpbmV0YXNrLW91dGxp bmUtcmVnZXhwKSkpCiAJIChpdGVtLXJlIChvcmctaXRlbS1yZSkpCiAJIChzaGlmdC1ib2R5LWlu ZAotCSAgKGZ1bmN0aW9uCi0JICAgOzsgU2hpZnQgdGhlIGluZGVudGF0aW9uIGJldHdlZW4gRU5E IGFuZCBCRUcgYnkgREVMVEEuCi0JICAgOzsgU3RhcnQgZnJvbSB0aGUgbGluZSBiZWZvcmUgRU5E LgotCSAgIChsYW1iZGEgKGVuZCBiZWcgZGVsdGEpCi0JICAgICAoZ290by1jaGFyIGVuZCkKLQkg ICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHJcdFxuIikKLQkgICAgIChiZWdpbm5pbmctb2Yt bGluZSkKLQkgICAgICh3aGlsZSAob3IgKD4gKHBvaW50KSBiZWcpCi0JCQkoYW5kICg9IChwb2lu dCkgYmVnKQotCQkJICAgICAobm90IChsb29raW5nLWF0IGl0ZW0tcmUpKSkpCi0JICAgICAgIChj b25kCi0JCTs7IFNraXAgaW5saW5lIHRhc2tzLgotCQkoKGFuZCBpbmxpbmV0YXNrLXJlIChsb29r aW5nLWF0IGlubGluZXRhc2stcmUpKQotCQkgKG9yZy1pbmxpbmV0YXNrLWdvdG8tYmVnaW5uaW5n KSkKLQkJOzsgU2hpZnQgb25seSBub24tZW1wdHkgbGluZXMuCi0JCSgobG9va2luZy1hdC1wICJe WyBcdF0qXFxTLSIpCi0JCSAoaW5kZW50LWxpbmUtdG8gKCsgKGN1cnJlbnQtaW5kZW50YXRpb24p IGRlbHRhKSkpKQotCSAgICAgICAoZm9yd2FyZC1saW5lIC0xKSkpKSkKLSAgICAgICAgIChtb2Rp ZnktaXRlbQotICAgICAgICAgIChmdW5jdGlvbgotCSAgIDs7IFJlcGxhY2UgSVRFTSBmaXJzdCBs aW5lIGVsZW1lbnRzIHdpdGggbmV3IGVsZW1lbnRzIGZyb20KLQkgICA7OyBTVFJVQ1QsIGlmIGFw cHJvcHJpYXRlLgotCSAgIChsYW1iZGEgKGl0ZW0pCi0JICAgICAoZ290by1jaGFyIGl0ZW0pCi0J ICAgICAobGV0KiAoKG5ldy1pbmQgKG9yZy1saXN0LWdldC1pbmQgaXRlbSBzdHJ1Y3QpKQotCQkg ICAgKG9sZC1pbmQgKGN1cnJlbnQtaW5kZW50YXRpb24pKQotCQkgICAgKG5ldy1idWwgKG9yZy1s aXN0LWJ1bGxldC1zdHJpbmcKLQkJCSAgICAgIChvcmctbGlzdC1nZXQtYnVsbGV0IGl0ZW0gc3Ry dWN0KSkpCi0JCSAgICAob2xkLWJ1bCAob3JnLWxpc3QtZ2V0LWJ1bGxldCBpdGVtIG9sZC1zdHJ1 Y3QpKQotCQkgICAgKG5ldy1ib3ggKG9yZy1saXN0LWdldC1jaGVja2JveCBpdGVtIHN0cnVjdCkp KQotCSAgICAgICAobG9va2luZy1hdCBvcmctbGlzdC1mdWxsLWl0ZW0tcmUpCi0JICAgICAgIDs7 IGEuICBSZXBsYWNlIGJ1bGxldAotCSAgICAgICAodW5sZXNzIChlcXVhbCBvbGQtYnVsIG5ldy1i dWwpCi0JCSAocmVwbGFjZS1tYXRjaCBuZXctYnVsIG5pbCBuaWwgbmlsIDEpKQotCSAgICAgICA7 OyBiLiAgUmVwbGFjZSBjaGVja2JveC4KLQkgICAgICAgKGNvbmQKLQkJKChlcXVhbCAobWF0Y2gt c3RyaW5nIDMpIG5ldy1ib3gpKQotCQkoKGFuZCAobWF0Y2gtc3RyaW5nIDMpIG5ldy1ib3gpCi0J CSAocmVwbGFjZS1tYXRjaCBuZXctYm94IG5pbCBuaWwgbmlsIDMpKQotCQkoKG1hdGNoLXN0cmlu ZyAzKQotCQkgKGxvb2tpbmctYXQgIi4qP1xcKFsgXHRdKlxcW1sgWC1dXFxdXFwpIikKLQkJIChy ZXBsYWNlLW1hdGNoICIiIG5pbCBuaWwgbmlsIDEpKQotCQkodCAobGV0ICgoY291bnRlcnAgKG1h dGNoLWVuZCAyKSkpCi0JCSAgICAgKGdvdG8tY2hhciAoaWYgY291bnRlcnAgKDErIGNvdW50ZXJw KSAobWF0Y2gtZW5kIDEpKSkKLQkJICAgICAoaW5zZXJ0IChjb25jYXQgbmV3LWJveCAodW5sZXNz IGNvdW50ZXJwICIgIikpKSkpKQotCSAgICAgICA7OyBjLiAgSW5kZW50IGl0ZW0gdG8gYXBwcm9w cmlhdGUgY29sdW1uLgotCSAgICAgICAodW5sZXNzICg9IG5ldy1pbmQgb2xkLWluZCkKLQkJIChk ZWxldGUtcmVnaW9uIChnb3RvLWNoYXIgKHBvaW50LWF0LWJvbCkpCi0JCQkJKHByb2duIChza2lw LWNoYXJzLWZvcndhcmQgIiBcdCIpIChwb2ludCkpKQotCQkgKGluZGVudC10byBuZXctaW5kKSkp KSkpKQorCSAgOzsgU2hpZnQgdGhlIGluZGVudGF0aW9uIGJldHdlZW4gRU5EIGFuZCBCRUcgYnkg REVMVEEuCisJICA7OyBTdGFydCBmcm9tIHRoZSBsaW5lIGJlZm9yZSBFTkQuCisJICAobGFtYmRh IChlbmQgYmVnIGRlbHRhKQorCSAgICAoZ290by1jaGFyIGVuZCkKKwkgICAgKHNraXAtY2hhcnMt YmFja3dhcmQgIiBcclx0XG4iKQorCSAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisJICAgICh3aGls ZSAob3IgKD4gKHBvaW50KSBiZWcpCisJCSAgICAgICAoYW5kICg9IChwb2ludCkgYmVnKQorCQkJ ICAgIChub3QgKGxvb2tpbmctYXQgaXRlbS1yZSkpKSkKKwkgICAgICAoY29uZAorCSAgICAgICA7 OyBTa2lwIGlubGluZSB0YXNrcy4KKwkgICAgICAgKChhbmQgaW5saW5ldGFzay1yZSAobG9va2lu Zy1hdCBpbmxpbmV0YXNrLXJlKSkKKwkJKG9yZy1pbmxpbmV0YXNrLWdvdG8tYmVnaW5uaW5nKSkK KwkgICAgICAgOzsgU2hpZnQgb25seSBub24tZW1wdHkgbGluZXMuCisJICAgICAgICgobG9va2lu Zy1hdC1wICJeWyBcdF0qXFxTLSIpCisJCShpbmRlbnQtbGluZS10byAoKyAoY3VycmVudC1pbmRl bnRhdGlvbikgZGVsdGEpKSkpCisJICAgICAgKGZvcndhcmQtbGluZSAtMSkpKSkKKwkgKG1vZGlm eS1pdGVtCisJICA7OyBSZXBsYWNlIElURU0gZmlyc3QgbGluZSBlbGVtZW50cyB3aXRoIG5ldyBl bGVtZW50cyBmcm9tCisJICA7OyBTVFJVQ1QsIGlmIGFwcHJvcHJpYXRlLgorCSAgKGxhbWJkYSAo aXRlbSkKKwkgICAgKGdvdG8tY2hhciBpdGVtKQorCSAgICAobGV0KiAoKG5ldy1pbmQgKG9yZy1s aXN0LWdldC1pbmQgaXRlbSBzdHJ1Y3QpKQorCQkgICAob2xkLWluZCAoY3VycmVudC1pbmRlbnRh dGlvbikpCisJCSAgIChuZXctYnVsIChvcmctbGlzdC1idWxsZXQtc3RyaW5nCisJCQkgICAgIChv cmctbGlzdC1nZXQtYnVsbGV0IGl0ZW0gc3RydWN0KSkpCisJCSAgIChvbGQtYnVsIChvcmctbGlz dC1nZXQtYnVsbGV0IGl0ZW0gb2xkLXN0cnVjdCkpCisJCSAgIChuZXctYm94IChvcmctbGlzdC1n ZXQtY2hlY2tib3ggaXRlbSBzdHJ1Y3QpKSkKKwkgICAgICAobG9va2luZy1hdCBvcmctbGlzdC1m dWxsLWl0ZW0tcmUpCisJICAgICAgOzsgYS4gIFJlcGxhY2UgYnVsbGV0CisJICAgICAgKHVubGVz cyAoZXF1YWwgb2xkLWJ1bCBuZXctYnVsKQorCQkocmVwbGFjZS1tYXRjaCBuZXctYnVsIG5pbCBu aWwgbmlsIDEpKQorCSAgICAgIDs7IGIuICBSZXBsYWNlIGNoZWNrYm94LgorCSAgICAgIChjb25k CisJICAgICAgICgoZXF1YWwgKG1hdGNoLXN0cmluZyAzKSBuZXctYm94KSkKKwkgICAgICAgKChh bmQgKG1hdGNoLXN0cmluZyAzKSBuZXctYm94KQorCQkocmVwbGFjZS1tYXRjaCBuZXctYm94IG5p bCBuaWwgbmlsIDMpKQorCSAgICAgICAoKG1hdGNoLXN0cmluZyAzKQorCQkobG9va2luZy1hdCAi Lio/XFwoWyBcdF0qXFxbWyBYLV1cXF1cXCkiKQorCQkocmVwbGFjZS1tYXRjaCAiIiBuaWwgbmls IG5pbCAxKSkKKwkgICAgICAgKHQgKGxldCAoKGNvdW50ZXJwIChtYXRjaC1lbmQgMikpKQorCQkg ICAgKGdvdG8tY2hhciAoaWYgY291bnRlcnAgKDErIGNvdW50ZXJwKSAobWF0Y2gtZW5kIDEpKSkK KwkJICAgIChpbnNlcnQgKGNvbmNhdCBuZXctYm94ICh1bmxlc3MgY291bnRlcnAgIiAiKSkpKSkp CisJICAgICAgOzsgYy4gIEluZGVudCBpdGVtIHRvIGFwcHJvcHJpYXRlIGNvbHVtbi4KKwkgICAg ICAodW5sZXNzICg9IG5ldy1pbmQgb2xkLWluZCkKKwkJKGRlbGV0ZS1yZWdpb24gKGdvdG8tY2hh ciAocG9pbnQtYXQtYm9sKSkKKwkJCSAgICAgICAocHJvZ24gKHNraXAtY2hhcnMtZm9yd2FyZCAi IFx0IikgKHBvaW50KSkpCisJCShpbmRlbnQtdG8gbmV3LWluZCkpKSkpKQogICAgIDs7IDEuIEZp cnN0IGdldCBsaXN0IG9mIGl0ZW1zIGFuZCBwb3NpdGlvbiBlbmRpbmdzLiAgV2UgbWFpbnRhaW4K ICAgICA7OyAgICB0d28gYWxpc3RzOiBJVE0tU0hJRlQsIGRldGVybWluaW5nIGluZGVudGF0aW9u IHNoaWZ0IG5lZWRlZAogICAgIDs7ICAgIGF0IGl0ZW0sIGFuZCBFTkQtTElTVCwgYSBwc2V1ZG8t YWxpc3Qgd2hlcmUga2V5IGlzIGVuZGluZwpkaWZmIC0tZ2l0IGEvbGlzcC9vcmcuZWwgYi9saXNw L29yZy5lbAppbmRleCAyYjUwZjk0ZWUuLjU0MDY0ZWM4YSAxMDA2NDQKLS0tIGEvbGlzcC9vcmcu ZWwKKysrIGIvbGlzcC9vcmcuZWwKQEAgLTE1MzIyLDkgKzE1MzIyLDggQEAgdXNlZCBieSB0aGUg YWdlbmRhIGZpbGVzLiAgSWYgQVJDSElWRSBpcyBgaWZtb2RlJywgZG8gdGhpcyBvbmx5IGlmCiAJ CQkgICAgICAgZmlsZXMpKSkKICAgICAod2hlbiBvcmctYWdlbmRhLXNraXAtdW5hdmFpbGFibGUt ZmlsZXMKICAgICAgIChzZXRxIGZpbGVzIChkZWxxIG5pbAotCQkJKG1hcGNhciAoZnVuY3Rpb24K LQkJCQkgKGxhbWJkYSAoZmlsZSkKLQkJCQkgICAoYW5kIChmaWxlLXJlYWRhYmxlLXAgZmlsZSkg ZmlsZSkpKQorCQkJKG1hcGNhciAobGFtYmRhIChmaWxlKQorCQkJCSAgKGFuZCAoZmlsZS1yZWFk YWJsZS1wIGZpbGUpIGZpbGUpKQogCQkJCWZpbGVzKSkpKQogICAgICh3aGVuIChvciAoZXEgYXJj aGl2ZXMgdCkKIAkgICAgICAoYW5kIChlcSBhcmNoaXZlcyAnaWZtb2RlKSAoZXEgb3JnLWFnZW5k YS1hcmNoaXZlcy1tb2RlIHQpKSkKQEAgLTE3OTQyLDE1ICsxNzk0MSwxNCBAQCB3aGVuIGEgbnVt ZXJpYyBwcmVmaXggYXJndW1lbnQgaXMgZ2l2ZW4sIGl0cyB2YWx1ZSBkZXRlcm1pbmVzIHRoZQog bnVtYmVyIG9mIHN0YXJzIHRvIGFkZC4iCiAgIChpbnRlcmFjdGl2ZSAiUCIpCiAgIChsZXQgKChz a2lwLWJsYW5rcwotCSAoZnVuY3Rpb24KLQkgIDs7IFJldHVybiBiZWdpbm5pbmcgb2YgZmlyc3Qg bm9uLWJsYW5rIGxpbmUsIHN0YXJ0aW5nIGZyb20KLQkgIDs7IGxpbmUgYXQgUE9TLgotCSAgKGxh bWJkYSAocG9zKQotCSAgICAoc2F2ZS1leGN1cnNpb24KLQkgICAgICAoZ290by1jaGFyIHBvcykK LQkgICAgICAod2hpbGUgKG9yZy1hdC1jb21tZW50LXApIChmb3J3YXJkLWxpbmUpKQotCSAgICAg IChza2lwLWNoYXJzLWZvcndhcmQgIiBcclx0XG4iKQotCSAgICAgIChwb2ludC1hdC1ib2wpKSkp KQorCSA7OyBSZXR1cm4gYmVnaW5uaW5nIG9mIGZpcnN0IG5vbi1ibGFuayBsaW5lLCBzdGFydGlu ZyBmcm9tCisJIDs7IGxpbmUgYXQgUE9TLgorCSAobGFtYmRhIChwb3MpCisJICAgKHNhdmUtZXhj dXJzaW9uCisJICAgICAoZ290by1jaGFyIHBvcykKKwkgICAgICh3aGlsZSAob3JnLWF0LWNvbW1l bnQtcCkgKGZvcndhcmQtbGluZSkpCisJICAgICAoc2tpcC1jaGFycy1mb3J3YXJkICIgXHJcdFxu IikKKwkgICAgIChwb2ludC1hdC1ib2wpKSkpCiAJYmVnIGVuZCB0b2dnbGVkKQogICAgIDs7IERl dGVybWluZSBib3VuZGFyaWVzIG9mIGNoYW5nZXMuICBJZiBhIHVuaXZlcnNhbCBwcmVmaXggaGFz CiAgICAgOzsgYmVlbiBnaXZlbiwgcHV0IHRoZSBsaXN0IGluIGEgcmVnaW9uLiAgSWYgcmVnaW9u IGVuZHMgYXQgYSBib2wsCmRpZmYgLS1naXQgYS9saXNwL294LWFzY2lpLmVsIGIvbGlzcC9veC1h c2NpaS5lbAppbmRleCBlNTI0MGY1YzguLmEyYTlhOWMwNiAxMDA2NDQKLS0tIGEvbGlzcC9veC1h c2NpaS5lbAorKysgYi9saXNwL294LWFzY2lpLmVsCkBAIC0xOTQwLDMzICsxOTQwLDMyIEBAIENP TlRFTlRTIGlzIHRoZSByb3cgY29udGVudHMuICBJTkZPIGlzIGEgcGxpc3QgdXNlZCBhcwogYSBj b21tdW5pY2F0aW9uIGNoYW5uZWwuIgogICAod2hlbiAoZXEgKG9yZy1lbGVtZW50LXByb3BlcnR5 IDp0eXBlIHRhYmxlLXJvdykgJ3N0YW5kYXJkKQogICAgIChsZXQgKChidWlsZC1obGluZQotCSAg IChmdW5jdGlvbgotCSAgICAobGFtYmRhIChsY29ybmVyIGhvcml6IHZlcnQgcmNvcm5lcikKLQkg ICAgICAoY29uY2F0Ci0JICAgICAgIChhcHBseQotCQknY29uY2F0Ci0JCShvcmctZWxlbWVudC1t YXAgdGFibGUtcm93ICd0YWJsZS1jZWxsCi0JCSAgKGxhbWJkYSAoY2VsbCkKLQkJICAgIChsZXQg KCh3aWR0aCAob3JnLWFzY2lpLS10YWJsZS1jZWxsLXdpZHRoIGNlbGwgaW5mbykpCi0JCQkgIChi b3JkZXJzIChvcmctZXhwb3J0LXRhYmxlLWNlbGwtYm9yZGVycyBjZWxsIGluZm8pKSkKLQkJICAg ICAgKGNvbmNhdAotCQkgICAgICAgOzsgSW4gb3JkZXIgdG8ga25vdyBpZiBDRUxMIHN0YXJ0cyB0 aGUgcm93LCBkbwotCQkgICAgICAgOzsgbm90IGNvbXBhcmUgaXQgd2l0aCB0aGUgZmlyc3QgY2Vs bCBpbiB0aGUKLQkJICAgICAgIDs7IHJvdyBhcyB0aGVyZSBtaWdodCBiZSBhIHNwZWNpYWwgY29s dW1uLgotCQkgICAgICAgOzsgSW5zdGVhZCwgY29tcGFyZSBpdCB3aXRoIGZpcnN0IGV4cG9ydGFi bGUKLQkJICAgICAgIDs7IGNlbGwsIG9idGFpbmVkIHdpdGggYG9yZy1lbGVtZW50LW1hcCcuCi0J CSAgICAgICAod2hlbiAoYW5kIChtZW1xICdsZWZ0IGJvcmRlcnMpCi0JCQkJICAoZXEgKG9yZy1l bGVtZW50LW1hcCB0YWJsZS1yb3cgJ3RhYmxlLWNlbGwKLQkJCQkJJ2lkZW50aXR5IGluZm8gdCkK LQkJCQkgICAgICBjZWxsKSkKLQkJCSBsY29ybmVyKQotCQkgICAgICAgKG1ha2Utc3RyaW5nICgr IDIgd2lkdGgpIChzdHJpbmctdG8tY2hhciBob3JpeikpCi0JCSAgICAgICAoY29uZAotCQkJKChu b3QgKG1lbXEgJ3JpZ2h0IGJvcmRlcnMpKSBuaWwpCi0JCQkoKGVxIChjYXIgKGxhc3QgKG9yZy1l bGVtZW50LWNvbnRlbnRzIHRhYmxlLXJvdykpKSBjZWxsKQotCQkJIHJjb3JuZXIpCi0JCQkodCB2 ZXJ0KSkpKSkKLQkJICBpbmZvKSkgIlxuIikpKSkKKwkgICAobGFtYmRhIChsY29ybmVyIGhvcml6 IHZlcnQgcmNvcm5lcikKKwkgICAgIChjb25jYXQKKwkgICAgICAoYXBwbHkKKwkgICAgICAgJ2Nv bmNhdAorCSAgICAgICAob3JnLWVsZW1lbnQtbWFwIHRhYmxlLXJvdyAndGFibGUtY2VsbAorCQkg KGxhbWJkYSAoY2VsbCkKKwkJICAgKGxldCAoKHdpZHRoIChvcmctYXNjaWktLXRhYmxlLWNlbGwt d2lkdGggY2VsbCBpbmZvKSkKKwkJCSAoYm9yZGVycyAob3JnLWV4cG9ydC10YWJsZS1jZWxsLWJv cmRlcnMgY2VsbCBpbmZvKSkpCisJCSAgICAgKGNvbmNhdAorCQkgICAgICA7OyBJbiBvcmRlciB0 byBrbm93IGlmIENFTEwgc3RhcnRzIHRoZSByb3csIGRvCisJCSAgICAgIDs7IG5vdCBjb21wYXJl IGl0IHdpdGggdGhlIGZpcnN0IGNlbGwgaW4gdGhlCisJCSAgICAgIDs7IHJvdyBhcyB0aGVyZSBt aWdodCBiZSBhIHNwZWNpYWwgY29sdW1uLgorCQkgICAgICA7OyBJbnN0ZWFkLCBjb21wYXJlIGl0 IHdpdGggZmlyc3QgZXhwb3J0YWJsZQorCQkgICAgICA7OyBjZWxsLCBvYnRhaW5lZCB3aXRoIGBv cmctZWxlbWVudC1tYXAnLgorCQkgICAgICAod2hlbiAoYW5kIChtZW1xICdsZWZ0IGJvcmRlcnMp CisJCQkJIChlcSAob3JnLWVsZW1lbnQtbWFwIHRhYmxlLXJvdyAndGFibGUtY2VsbAorCQkJCSAg ICAgICAnaWRlbnRpdHkgaW5mbyB0KQorCQkJCSAgICAgY2VsbCkpCisJCQlsY29ybmVyKQorCQkg ICAgICAobWFrZS1zdHJpbmcgKCsgMiB3aWR0aCkgKHN0cmluZy10by1jaGFyIGhvcml6KSkKKwkJ ICAgICAgKGNvbmQKKwkJICAgICAgICgobm90IChtZW1xICdyaWdodCBib3JkZXJzKSkgbmlsKQor CQkgICAgICAgKChlcSAoY2FyIChsYXN0IChvcmctZWxlbWVudC1jb250ZW50cyB0YWJsZS1yb3cp KSkgY2VsbCkKKwkJCXJjb3JuZXIpCisJCSAgICAgICAodCB2ZXJ0KSkpKSkKKwkJIGluZm8pKSAi XG4iKSkpCiAJICAodXRmOHAgKGVxIChwbGlzdC1nZXQgaW5mbyA6YXNjaWktY2hhcnNldCkgJ3V0 Zi04KSkKIAkgIChib3JkZXJzIChvcmctZXhwb3J0LXRhYmxlLWNlbGwtYm9yZGVycwogCQkgICAg KG9yZy1lbGVtZW50LW1hcCB0YWJsZS1yb3cgJ3RhYmxlLWNlbGwgJ2lkZW50aXR5IGluZm8gdCkK ZGlmZiAtLWdpdCBhL2xpc3Avb3gtYmVhbWVyLmVsIGIvbGlzcC9veC1iZWFtZXIuZWwKaW5kZXgg NjY1ODlmYWM1Li5lYmMxMzI1OWEgMTAwNjQ0Ci0tLSBhL2xpc3Avb3gtYmVhbWVyLmVsCisrKyBi L2xpc3Avb3gtYmVhbWVyLmVsCkBAIC0zNzksMTIgKzM3OSwxMSBAQCB1c2VkIGFzIGEgY29tbXVu aWNhdGlvbiBjaGFubmVsLiIKIAkgICA6cGFyZW50ICdsYXRleAogCSAgIDp0cmFuc2NvZGVycwog CSAgIChsZXQgKChwcm90ZWN0ZWQtb3V0cHV0Ci0JCSAgKGZ1bmN0aW9uCi0JCSAgIChsYW1iZGEg KG9iamVjdCBjb250ZW50cyBpbmZvKQotCQkgICAgIChsZXQgKChjb2RlIChvcmctZXhwb3J0LXdp dGgtYmFja2VuZAotCQkJCSAgJ2JlYW1lciBvYmplY3QgY29udGVudHMgaW5mbykpKQotCQkgICAg ICAgKGlmIChvcmctc3RyaW5nLW53LXAgY29kZSkgKGNvbmNhdCAiXFxwcm90ZWN0IiBjb2RlKQot CQkJIGNvZGUpKSkpKSkKKwkJICAobGFtYmRhIChvYmplY3QgY29udGVudHMgaW5mbykKKwkJICAg IChsZXQgKChjb2RlIChvcmctZXhwb3J0LXdpdGgtYmFja2VuZAorCQkJCSAnYmVhbWVyIG9iamVj dCBjb250ZW50cyBpbmZvKSkpCisJCSAgICAgIChpZiAob3JnLXN0cmluZy1udy1wIGNvZGUpIChj b25jYXQgIlxccHJvdGVjdCIgY29kZSkKKwkJCWNvZGUpKSkpKQogCSAgICAgKG1hcGNhciAjJyhs YW1iZGEgKHR5cGUpIChjb25zIHR5cGUgcHJvdGVjdGVkLW91dHB1dCkpCiAJCSAgICAgJyhib2xk IGZvb3Rub3RlLXJlZmVyZW5jZSBpdGFsaWMgc3RyaWtlLXRocm91Z2ggdGltZXN0YW1wCiAJCQkg ICAgdW5kZXJsaW5lKSkpKQpAQCAtODEyLDE3ICs4MTEsMTYgQEAgaG9sZGluZyBleHBvcnQgb3B0 aW9ucy4iCiAgICAgIChvcmctbGF0ZXgtbWFrZS1wcmVhbWJsZSBpbmZvKQogICAgICA7OyBJbnNl cnQgdGhlbWVzLgogICAgICAobGV0ICgoZm9ybWF0LXRoZW1lCi0JICAgIChmdW5jdGlvbgotCSAg ICAgKGxhbWJkYSAocHJvcCBjb21tYW5kKQotCSAgICAgICAobGV0ICgodGhlbWUgKHBsaXN0LWdl dCBpbmZvIHByb3ApKSkKLQkJICh3aGVuIHRoZW1lCi0JCSAgIChjb25jYXQgY29tbWFuZAotCQkJ ICAgKGlmIChub3QgKHN0cmluZy1tYXRjaCAiXFxbLipcXF0iIHRoZW1lKSkKLQkJCSAgICAgICAo Zm9ybWF0ICJ7JXN9XG4iIHRoZW1lKQotCQkJICAgICAoZm9ybWF0ICIlc3slc31cbiIKLQkJCQkg ICAgIChtYXRjaC1zdHJpbmcgMCB0aGVtZSkKLQkJCQkgICAgIChvcmctdHJpbQotCQkJCSAgICAg IChyZXBsYWNlLW1hdGNoICIiIG5pbCBuaWwgdGhlbWUpKSkpKSkpKSkpKQorCSAgICAobGFtYmRh IChwcm9wIGNvbW1hbmQpCisJICAgICAgKGxldCAoKHRoZW1lIChwbGlzdC1nZXQgaW5mbyBwcm9w KSkpCisJCSh3aGVuIHRoZW1lCisJCSAgKGNvbmNhdCBjb21tYW5kCisJCQkgIChpZiAobm90IChz dHJpbmctbWF0Y2ggIlxcWy4qXFxdIiB0aGVtZSkpCisJCQkgICAgICAoZm9ybWF0ICJ7JXN9XG4i IHRoZW1lKQorCQkJICAgIChmb3JtYXQgIiVzeyVzfVxuIgorCQkJCSAgICAobWF0Y2gtc3RyaW5n IDAgdGhlbWUpCisJCQkJICAgIChvcmctdHJpbQorCQkJCSAgICAgKHJlcGxhY2UtbWF0Y2ggIiIg bmlsIG5pbCB0aGVtZSkpKSkpKSkpKSkKICAgICAgICAobWFwY29uY2F0IChsYW1iZGEgKGFyZ3Mp IChhcHBseSBmb3JtYXQtdGhlbWUgYXJncykpCiAJCSAgJygoOmJlYW1lci10aGVtZSAiXFx1c2V0 aGVtZSIpCiAJCSAgICAoOmJlYW1lci1jb2xvci10aGVtZSAiXFx1c2Vjb2xvcnRoZW1lIikKZGlm ZiAtLWdpdCBhL2xpc3Avb3gtb2R0LmVsIGIvbGlzcC9veC1vZHQuZWwKaW5kZXggNGEwY2NhNjEy Li5kYTM1MWVmODIgMTAwNjQ0Ci0tLSBhL2xpc3Avb3gtb2R0LmVsCisrKyBiL2xpc3Avb3gtb2R0 LmVsCkBAIC0yMjAwLDEwICsyMjAwLDEwIEBAIFNIT1JULUNBUFRJT04gYXJlIHN0cmluZ3MuIgog KGRlZnVuIG9yZy1vZHQtLWltYWdlLXNpemUKICAgKGZpbGUgaW5mbyAmb3B0aW9uYWwgdXNlci13 aWR0aCB1c2VyLWhlaWdodCBzY2FsZSBkcGkgZW1iZWQtYXMpCiAgIChsZXQqICgoLS1waXhlbHMt dG8tY21zCi0gICAgICAgICAgKGxhbWJkYSAocGl4ZWxzIGRwaSkKLSAgICAgICAgICAgIChsZXQg KChjbXMtcGVyLWluY2ggMi41NCkKLSAgICAgICAgICAgICAgICAgIChpbmNoZXMgKC8gcGl4ZWxz IGRwaSkpKQotICAgICAgICAgICAgICAoKiBjbXMtcGVyLWluY2ggaW5jaGVzKSkpKQorCSAgKGxh bWJkYSAocGl4ZWxzIGRwaSkKKwkgICAgKGxldCAoKGNtcy1wZXItaW5jaCAyLjU0KQorCQkgIChp bmNoZXMgKC8gcGl4ZWxzIGRwaSkpKQorCSAgICAgICgqIGNtcy1wZXItaW5jaCBpbmNoZXMpKSkp CiAJICgtLXNpemUtaW4tY21zCiAJICAobGFtYmRhIChzaXplLWluLXBpeGVscyBkcGkpCiAJICAg IChhbmQgc2l6ZS1pbi1waXhlbHMKQEAgLTI0NjcsMTUgKzI0NjcsMTQgQEAgdXNlZCBhcyBhIGNv bW11bmljYXRpb24gY2hhbm5lbC4iCiAJIChvdXRlciAobnRoIDIgZnJhbWUtY2ZnKSkKIAkgOzsg VXNlci1zcGVjaWZpZWQgZnJhbWUgcGFyYW1zIChmcm9tICMrQVRUUl9PRFQgc3BlYykKIAkgKHVz ZXIgdXNlci1mcmFtZS1wYXJhbXMpCi0JICgtLW1lcmdlLWZyYW1lLXBhcmFtcyAoZnVuY3Rpb24K LQkJCQkobGFtYmRhIChkZWZhdWx0IHVzZXIpCi0JCQkJICAiTWVyZ2UgZGVmYXVsdCBhbmQgdXNl ciBmcmFtZSBwYXJhbXMuIgotCQkJCSAgKGlmIChub3QgdXNlcikgZGVmYXVsdAotCQkJCSAgICAo Y2wtYXNzZXJ0ICg9IChsZW5ndGggZGVmYXVsdCkgMykpCi0JCQkJICAgIChjbC1hc3NlcnQgKD0g KGxlbmd0aCB1c2VyKSAzKSkKLQkJCQkgICAgKGNsLWxvb3AgZm9yIHUgaW4gdXNlcgotCQkJCQkg ICAgIGZvciBkIGluIGRlZmF1bHQKLQkJCQkJICAgICBjb2xsZWN0IChvciB1IGQpKSkpKSkpCisJ ICgtLW1lcmdlLWZyYW1lLXBhcmFtcyAobGFtYmRhIChkZWZhdWx0IHVzZXIpCisJCQkJICJNZXJn ZSBkZWZhdWx0IGFuZCB1c2VyIGZyYW1lIHBhcmFtcy4iCisJCQkJIChpZiAobm90IHVzZXIpIGRl ZmF1bHQKKwkJCQkgICAoY2wtYXNzZXJ0ICg9IChsZW5ndGggZGVmYXVsdCkgMykpCisJCQkJICAg KGNsLWFzc2VydCAoPSAobGVuZ3RoIHVzZXIpIDMpKQorCQkJCSAgIChjbC1sb29wIGZvciB1IGlu IHVzZXIKKwkJCQkJICAgIGZvciBkIGluIGRlZmF1bHQKKwkJCQkJICAgIGNvbGxlY3QgKG9yIHUg ZCkpKSkpKQogICAgIChjb25kCiAgICAgIDs7IENhc2UgMTogSW1hZ2UvRm9ybXVsYSBoYXMgbm8g Y2FwdGlvbi4KICAgICAgOzsgICAgICAgICBUaGVyZSBpcyBvbmx5IG9uZSBmcmFtZSwgb25lIHRo YXQgc3Vycm91bmRzIHRoZSBpbWFnZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9vcmctYmF0Y2gtdGVz dC1pbml0LmVsIGIvdGVzdGluZy9vcmctYmF0Y2gtdGVzdC1pbml0LmVsCmluZGV4IDg2Mzg3NTYx Ny4uODcyMTZjZmZkIDEwMDY0NAotLS0gYS90ZXN0aW5nL29yZy1iYXRjaC10ZXN0LWluaXQuZWwK KysrIGIvdGVzdGluZy9vcmctYmF0Y2gtdGVzdC1pbml0LmVsCkBAIC01LDkgKzUsOSBAQAogOzsg Y2xlYW4gbG9hZC1wYXRoCiAoc2V0cSBsb2FkLXBhdGgKICAgICAgIChkZWxxIG5pbCAobWFwY2Fy Ci0JCSAoZnVuY3Rpb24gKGxhbWJkYSAocCkKLQkJCSAgICAgKHVubGVzcyAoc3RyaW5nLW1hdGNo ICJsaXNwXFwoL3BhY2thZ2VzXFwpPy9vcmckIiBwKQotCQkJICAgICAgIHApKSkKKwkJIChsYW1i ZGEgKHApCisJCSAgICh1bmxlc3MgKHN0cmluZy1tYXRjaCAibGlzcFxcKC9wYWNrYWdlc1xcKT8v b3JnJCIgcCkKKwkJICAgICBwKSkKIAkJIGxvYWQtcGF0aCkpKQogOzsgcmVtb3ZlIHByb3BlcnR5 IGxpc3QgdG8gZGVmZWF0IGN1cy1sb2FkIGFuZCByZW1vdmUgYXV0b2xvYWRzCiAobWFwYXRvbXMg KGZ1bmN0aW9uICAobGFtYmRhIChzKQotLSAKMi4yOS4yCgo= --000000000000b5bafc05b4505bc2--