From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:c151::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id MIG1ICLQUGB5ewAA0tVLHw (envelope-from ) for ; Tue, 16 Mar 2021 15:34:58 +0000 Received: from aspmx2.migadu.com ([2001:41d0:2:c151::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id iPl/HCLQUGA6HAAAB5/wlQ (envelope-from ) for ; Tue, 16 Mar 2021 15:34:58 +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 aspmx2.migadu.com (Postfix) with ESMTPS id 222B1E545 for ; Tue, 16 Mar 2021 16:34:58 +0100 (CET) Received: from localhost ([::1]:44882 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lMBij-0004p2-3v for larch@yhetil.org; Tue, 16 Mar 2021 11:34:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57518) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lMBiG-0004os-HO for emacs-orgmode@gnu.org; Tue, 16 Mar 2021 11:34:28 -0400 Received: from mail-lf1-x12b.google.com ([2a00:1450:4864:20::12b]:34444) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lMBiD-0001Yi-4W for emacs-orgmode@gnu.org; Tue, 16 Mar 2021 11:34:28 -0400 Received: by mail-lf1-x12b.google.com with SMTP id v9so63136148lfa.1 for ; Tue, 16 Mar 2021 08:34:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=robinjoy-net.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=lCCy3RK0SiZMvk6nQjl9qosPM4RyW1YSv8VMMFwHbbw=; b=kYNfwP/LThsRGTqgMydFmEgUap7OpPv2wcWO04CLTltQwd3MOYjucQbU9aB/he/Yvg XHJ9vyLpRVhikJFWiT+70cu70Z+HNfyzDhIw7v2sFfnZRNuQs4l1Txo3bS9OK9kKF+tE OZavUvouuLVsxKtpjmaKanWWJVGp8Jyddgj18whD+181oAlifnPCefdpc54yuLneLYFu yWYBJXUjuuFdvSDArUWkKtl9sCXhA4cZlyj13HiFiJVrIefzH/eJ1+0TWS2mGEdxSowu 2jxNAnZe647uHgCkieIswBR1zyP0MX63BNljuYD2mwLIpDyeMQhVikvkOVPpJHHTnKfG uJTA== 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:cc; bh=lCCy3RK0SiZMvk6nQjl9qosPM4RyW1YSv8VMMFwHbbw=; b=kr5Lzn6YjI8Yj2uHBI7uwBVnZoSasjQavZLF8XjVNcBImkL0g1JReTyAqjpZ46t9Nw kBShd94cyGpR+7PDC5jBKU0uhtRwN+47Rhysy39RHD64Q3FLxeXOC1a1+uwVx/Cd4ddl j47I7olpLuTFa259FgbRt7doSOfS9ISNELf6reille/B6usggMAATXl7hlsytX0ti279 XrM2GZpovYs1TwNmCje7VRmS//MUT0OZH4DYofsLelKnT9z9v0Djujv42qX4rfS7l8HS rfXMb/ZwJtGXYmyOqPxaCpX91nONeuWAx8zlVV6WsmIS+CfigFcY+bMahwCUlX1pFere 9hpQ== X-Gm-Message-State: AOAM5337CYsVs43PURBlGyhHhSq79G8JxuHNrCkv5nKK4JxjOOi/qkDR 4noHLhkH7Uh/63JtsOI0phMaxkTT3aVZotREjiMqG15y4QufIg== X-Google-Smtp-Source: ABdhPJxwK0VqUAYgzAcjpaMD/Q0mtjsn/p9yxbBEep6j3OtMNbtJB4kwgqtrzuGhVl2rKeUHXG24vzdcc6qdPYlEBz4= X-Received: by 2002:ac2:5091:: with SMTP id f17mr11860422lfm.660.1615908861872; Tue, 16 Mar 2021 08:34:21 -0700 (PDT) MIME-Version: 1.0 References: <87lfaniu8k.fsf@kyleam.com> In-Reply-To: <87lfaniu8k.fsf@kyleam.com> From: Robin Campbell Joy Date: Tue, 16 Mar 2021 16:34:09 +0100 Message-ID: Subject: Re: [PATCH] ob-sql.el: Add support for SAP HANA To: Kyle Meyer Content-Type: multipart/mixed; boundary="000000000000b3d75205bda91962" Received-SPF: none client-ip=2a00:1450:4864:20::12b; envelope-from=rcj@robinjoy.net; helo=mail-lf1-x12b.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=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: , Cc: emacs-orgmode@gnu.org Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -4.00 Authentication-Results: aspmx2.migadu.com; none X-Migadu-Queue-Id: 222B1E545 X-Spam-Score: -4.00 X-Migadu-Scanner: scn0.migadu.com X-TUID: 1Ibq6N/JKJtF --000000000000b3d75205bda91962 Content-Type: multipart/alternative; boundary="000000000000b3d75005bda91960" --000000000000b3d75005bda91960 Content-Type: text/plain; charset="UTF-8" Hi, thank you very much for you feedback. Kyle Meyer wrote: >> This patch is large enough that copyright should be assigned to the FSF. >> Assuming you haven't already, are you willing to complete the copyright >> paperwork? I did this before sending the patch. >> It looks like many of the lines are corrupted by additional line breaks, >> so it'd take a lot of manual editing to resolve the issues on my end. I addressed your points and added the patch as an attachment to avoid potential issues. >>>> + (mapconcat #'identity >>>> + (delq nil >>>> + (list (when (and host port) (format "-n %s:%s" host >>>> port)) >> Please prefer `and' here and in other spots where the return value is of >> interest. >> (and host port (format ...)) I used `when' for consistency, as all the other methods are using it, but I don't mind changing it to `and'. --000000000000b3d75005bda91960 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

thank you very much for you fe= edback.

Kyle Meyer <kyle@kylea= m.com> wrote:

>> This patch is large enough that copyri= ght should be assigned to the FSF.
>> Assuming you haven't alr= eady, are you willing to complete the copyright
>> paperwork?
<= br>I did this before sending the patch.

>> It looks like many = of the lines are corrupted by additional line breaks,
>> so it'= ;d take a lot of manual editing to resolve the issues on my end.

I a= ddressed your points and added the patch as an attachment to avoid potentia= l
issues.

>>>> +=C2=A0 (mapconcat #'identity
&= gt;>>> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(delq nil<= br>>>>> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0(list (when (and host port) (format "-n %s:%s" h= ost
>>>> port))

>> Please prefer `and' here= and in other spots where the return value is of
>> interest.
<= br>>> =C2=A0 (and host port (format ...))

I used `when' fo= r consistency, as all the other methods are using it, but I
don't mi= nd changing it to `and'.
--000000000000b3d75005bda91960-- --000000000000b3d75205bda91962 Content-Type: application/octet-stream; name="0001-ob-sql.el-Add-support-for-SAP-HANA.patch" Content-Disposition: attachment; filename="0001-ob-sql.el-Add-support-for-SAP-HANA.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kmc6eiyt0 RnJvbSAwYzZmYmM1YzNmYTFjNmY3ODc5NDk4NDhiOTFiMTQ2NGYyYTZjYzU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JpbiBDYW1wYmVsbCBKb3kgPHJjakByb2JpbmpveS5uZXQ+ CkRhdGU6IFdlZCwgMyBGZWIgMjAyMSAyMTozODoxMSArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIG9i LXNxbC5lbDogQWRkIHN1cHBvcnQgZm9yIFNBUCBIQU5BCgoqIGxpc3Avb2Itc3FsLmVsIChvcmct YmFiZWwtZXhlY3V0ZTpzcWwsIG9yZy1iYWJlbC1zcWwtZGJzdHJpbmctc2FwaGFuYSk6CkFkZCBi YXNpYyBzdXBwb3J0IGZvciBTQVAgSEFOQSB0byBTUUwgYmxvY2tzLgoqIHRlc3RpbmcvbGlzcC90 ZXN0LW9iLXNxbC5lbDogQmFzaWMgdGVzdHMgZm9yIGdlbmVyYXRlZCBkYiBjb25uZWN0aW9uCnN0 cmluZy4KClRoaXMgY2hhbmdlIGFkZHMgYmFzaWMgc3VwcG9ydCBmb3IgU0FQIEhBTkEgdG8gU1FM IGJsb2NrcyBieQpzcGVjaWZ5aW5nIHNhcGhhbmEgYXMgOmVuZ2luZS4KCkl0IGFsc28gYWRkcyBh IG5ldyBoZWFkZXIgYXJnIGBkYmluc3RhbmNlJyBpbiBvcmRlciB0byBzcGVjaWZ5IHRoZSBTQVAK SEFOQSBpbnN0YW5jZSB0byBjb25uZWN0IHRvLgotLS0KIGxpc3Avb2Itc3FsLmVsICAgICAgICAg ICAgICB8ICAyNyArKy0KIHRlc3RpbmcvbGlzcC90ZXN0LW9iLXNxbC5lbCB8IDM4MiArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNDA4IGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0aW5nL2xpc3Av dGVzdC1vYi1zcWwuZWwKCmRpZmYgLS1naXQgYS9saXNwL29iLXNxbC5lbCBiL2xpc3Avb2Itc3Fs LmVsCmluZGV4IGIxYzY5MjBjYi4uYTdlNGQxYWMxIDEwMDY0NAotLS0gYS9saXNwL29iLXNxbC5l bAorKysgYi9saXNwL29iLXNxbC5lbApAQCAtNDAsNiArNDAsNyBAQAogOzsgLSBkYnVzZXIKIDs7 IC0gZGJwYXNzd29yZAogOzsgLSBkYmNvbm5lY3Rpb24gKHRvIHJlZmVyZW5jZSBjb25uZWN0aW9u cyBpbiBzcWwtY29ubmVjdGlvbi1hbGlzdCkKKzs7IC0gZGJpbnN0YW5jZSAoY3VycmVudGx5IG9u bHkgdXNlZCBieSBTQVAgSEFOQSkKIDs7IC0gZGF0YWJhc2UKIDs7IC0gY29sbmFtZXMgKGRlZmF1 bHQsIG5pbCwgbWVhbnMgInllcyIpCiA7OyAtIHJlc3VsdC1wYXJhbXMKQEAgLTU4LDYgKzU5LDcg QEAKIDs7IC0gcG9zdGdyZXNxbCAocG9zdGdyZXMpCiA7OyAtIG9yYWNsZQogOzsgLSB2ZXJ0aWNh Cis7OyAtIHNhcGhhbmEKIDs7CiA7OyBUT0RPOgogOzsKQEAgLTg1LDYgKzg3LDcgQEAKICAgICAo ZGJwb3J0CSAgICAgICAuIDphbnkpCiAgICAgKGRidXNlcgkgICAgICAgLiA6YW55KQogICAgIChk YnBhc3N3b3JkCSAgICAgICAuIDphbnkpCisgICAgKGRiaW5zdGFuY2UJICAgICAgIC4gOmFueSkK ICAgICAoZGF0YWJhc2UJICAgICAgIC4gOmFueSkpCiAgICJTUUwtc3BlY2lmaWMgaGVhZGVyIGFy Z3VtZW50cy4iKQogCkBAIC0xNzUsNiArMTc4LDIwIEBAIFBhc3MgbmlsIHRvIG9taXQgdGhhdCBh cmcuIgogCQkJICAod2hlbiBkYXRhYmFzZSAoZm9ybWF0ICItZCAlcyIgZGF0YWJhc2UpKSkpCiAJ ICAgICAgIiAiKSkKIAorKGRlZnVuIG9yZy1iYWJlbC1zcWwtZGJzdHJpbmctc2FwaGFuYSAoaG9z dCBwb3J0IGluc3RhbmNlIHVzZXIgcGFzc3dvcmQgZGF0YWJhc2UpCisgICJNYWtlIFNBUCBIQU5B IGNvbW1hbmQgbGluZSBhcmdzIGZvciBkYXRhYmFzZSBjb25uZWN0aW9uLgorUGFzcyBuaWwgdG8g b21pdCB0aGF0IGFyZy4iCisgIChtYXBjb25jYXQgIydpZGVudGl0eQorICAgICAgICAgICAgIChk ZWxxIG5pbAorICAgICAgICAgICAgICAgICAgIChsaXN0IChhbmQgaG9zdCBwb3J0IChmb3JtYXQg Ii1uICVzOiVzIiBob3N0IHBvcnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgaG9z dCAobm90IHBvcnQpIChmb3JtYXQgIi1uICVzIiBob3N0KSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAoYW5kIGluc3RhbmNlIChmb3JtYXQgIi1pICVkIiBpbnN0YW5jZSkpCisgICAgICAgICAg ICAgICAgICAgICAgICAgKGFuZCB1c2VyIChmb3JtYXQgIi11ICVzIiB1c2VyKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAoYW5kIHBhc3N3b3JkIChmb3JtYXQgIi1wICVzIgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2hlbGwtcXVvdGUtYXJndW1l bnQgcGFzc3dvcmQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoYW5kIGRhdGFiYXNlIChm b3JtYXQgIi1kICVzIiBkYXRhYmFzZSkpKSkKKyAgICAgICAgICAgICAiICIpKQorCiAoZGVmdW4g b3JnLWJhYmVsLXNxbC1jb252ZXJ0LXN0YW5kYXJkLWZpbGVuYW1lIChmaWxlKQogICAiQ29udmVy dCBGSUxFIHRvIE9TIHN0YW5kYXJkIGZpbGUgbmFtZS4KIElmIGluIEN5Z3dpbiBlbnZpcm9ubWVu dCwgdXNlcyBDeWd3aW4gc3BlY2lmaWMgZnVuY3Rpb24gdG8KQEAgLTE5OCw2ICsyMTUsNyBAQCBk YXRhYmFzZSBjb25uZWN0aW9ucy4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg6ZGJw b3J0IC4gc3FsLXBvcnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg6ZGJ1c2VyIC4g c3FsLXVzZXIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg6ZGJwYXNzd29yZCAuIHNx bC1wYXNzd29yZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDpkYmluc3RhbmNlIC4g c3FsLWRiaW5zdGFuY2UpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg6ZGF0YWJhc2Ug LiBzcWwtZGF0YWJhc2UpKSkKICAgICAgICAgICAgICAobWFwcGVkLW5hbWUgKGNkciAoYXNzcSBu YW1lIG5hbWUtbWFwcGluZykpKSkKICAgICAgICAgKGNhZHIgKGFzc3EgbWFwcGVkLW5hbWUKQEAg LTIxMyw2ICsyMzEsNyBAQCBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBgb3JnLWJhYmVsLWV4 ZWN1dGUtc3JjLWJsb2NrJy4iCiAgICAgICAgICAoZGJwb3J0IChvcmctYmFiZWwtZmluZC1kYi1j b25uZWN0aW9uLXBhcmFtIHBhcmFtcyA6ZGJwb3J0KSkKICAgICAgICAgIChkYnVzZXIgKG9yZy1i YWJlbC1maW5kLWRiLWNvbm5lY3Rpb24tcGFyYW0gcGFyYW1zIDpkYnVzZXIpKQogICAgICAgICAg KGRicGFzc3dvcmQgKG9yZy1iYWJlbC1maW5kLWRiLWNvbm5lY3Rpb24tcGFyYW0gcGFyYW1zIDpk YnBhc3N3b3JkKSkKKyAgICAgICAgIChkYmluc3RhbmNlIChvcmctYmFiZWwtZmluZC1kYi1jb25u ZWN0aW9uLXBhcmFtIHBhcmFtcyA6ZGJpbnN0YW5jZSkpCiAgICAgICAgICAoZGF0YWJhc2UgKG9y Zy1iYWJlbC1maW5kLWRiLWNvbm5lY3Rpb24tcGFyYW0gcGFyYW1zIDpkYXRhYmFzZSkpCiAgICAg ICAgICAoZW5naW5lIChjZHIgKGFzc3EgOmVuZ2luZSBwYXJhbXMpKSkKICAgICAgICAgIChjb2xu YW1lcy1wIChub3QgKGVxdWFsICJubyIgKGNkciAoYXNzcSA6Y29sbmFtZXMgcGFyYW1zKSkpKSkK QEAgLTI4MCw2ICsyOTksMTIgQEAgZm9vdGVyPW9mZiAtRiBcIlx0XCIgICVzIC1mICVzIC1vICVz ICVzIgogCQkJICAgICAgZGJob3N0IGRicG9ydCBkYnVzZXIgZGJwYXNzd29yZCBkYXRhYmFzZSkK IAkJCSAgICAgKG9yZy1iYWJlbC1wcm9jZXNzLWZpbGUtbmFtZSBpbi1maWxlKQogCQkJICAgICAo b3JnLWJhYmVsLXByb2Nlc3MtZmlsZS1uYW1lIG91dC1maWxlKSkpCisJCSAgICAoc2FwaGFuYSAo Zm9ybWF0ICJoZGJzcWwgJXMgLUkgJXMgLW8gJXMgJXMiCisJCQkJICAgICAob3JnLWJhYmVsLXNx bC1kYnN0cmluZy1zYXBoYW5hCisJCQkJICAgICAgZGJob3N0IGRicG9ydCBkYmluc3RhbmNlIGRi dXNlciBkYnBhc3N3b3JkIGRhdGFiYXNlKQorCQkJCSAgICAgKG9yZy1iYWJlbC1wcm9jZXNzLWZp bGUtbmFtZSBpbi1maWxlKQorCQkJCSAgICAgKG9yZy1iYWJlbC1wcm9jZXNzLWZpbGUtbmFtZSBv dXQtZmlsZSkKKwkJCQkgICAgIChvciBjbWRsaW5lICIiKSkpCiAgICAgICAgICAgICAgICAgICAg ICh0ICh1c2VyLWVycm9yICJObyBzdXBwb3J0IGZvciB0aGUgJXMgU1FMIGVuZ2luZSIgZW5naW5l KSkpKSkKICAgICAod2l0aC10ZW1wLWZpbGUgaW4tZmlsZQogICAgICAgKGluc2VydApAQCAtMzEz LDcgKzMzOCw3IEBAIFNFVCBDT0xTRVAgJ3wnCiAJKHByb2duIChpbnNlcnQtZmlsZS1jb250ZW50 cy1saXRlcmFsbHkgb3V0LWZpbGUpIChidWZmZXItc3RyaW5nKSkpCiAgICAgICAod2l0aC10ZW1w LWJ1ZmZlcgogCShjb25kCi0JICgobWVtcSAoaW50ZXJuIGVuZ2luZSkgJyhkYmkgbXlzcWwgcG9z dGdyZXNxbCBwb3N0Z3JlcyBzcXNoIHZlcnRpY2EpKQorCSAoKG1lbXEgKGludGVybiBlbmdpbmUp ICcoZGJpIG15c3FsIHBvc3RncmVzcWwgcG9zdGdyZXMgc2FwaGFuYSBzcXNoIHZlcnRpY2EpKQog CSAgOzsgQWRkIGhlYWRlciByb3cgZGVsaW1pdGVyIGFmdGVyIGNvbHVtbi1uYW1lcyBoZWFkZXIg aW4gZmlyc3QgbGluZQogCSAgKGNvbmQKIAkgICAoY29sbmFtZXMtcApkaWZmIC0tZ2l0IGEvdGVz dGluZy9saXNwL3Rlc3Qtb2Itc3FsLmVsIGIvdGVzdGluZy9saXNwL3Rlc3Qtb2Itc3FsLmVsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNTFlZGQyMzA5Ci0tLSAvZGV2L251 bGwKKysrIGIvdGVzdGluZy9saXNwL3Rlc3Qtb2Itc3FsLmVsCkBAIC0wLDAgKzEsMzgyIEBACis7 OzsgdGVzdC1vYi1zcWwuZWwgLS0tIHRlc3RzIGZvciBvYi1zcWwuZWwKKworOzsgQ29weXJpZ2h0 IChDKSAyMDIxIFJvYmluIEpveQorCis7OyBBdXRob3I6IFJvYmluIEpveSA8cmNqQHJvYmluam95 Lm5ldD4KKzs7IEtleXdvcmRzOiBsaXNwCisKKzs7IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cis7OyBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKKzs7IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisK Kzs7IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorOzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OyBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKwor Ozs7IENvZGU6CisKKyhyZXF1aXJlICdvcmctdGVzdCkKKyhyZXF1aXJlICdvYi1zcWwpCisodW5s ZXNzIChmZWF0dXJlcCAnb2Itc3FsKQorICAoc2lnbmFsICdtaXNzaW5nLXRlc3QtZGVwZW5kZW5j eSAiU3VwcG9ydCBmb3Igc3FsIGNvZGUgYmxvY2tzIikpCisKKyhkZWZtYWNybyBvYi1zcWwvY29t bWFuZCAoJnJlc3QgYm9keSkKKyAgIkV4ZWN1dGUgYm9keSBhbmQgcmV0dXJuIHRoZSBjb21tYW5k IHRoYXQgd291bGQgaGF2ZSBiZWVuIGV4ZWN1dGVkLiIKKyAgYChjbC1sZXRmICgoKHN5bWJvbC1m dW5jdGlvbiAnb3JnLWJhYmVsLWV2YWwpCisgICAgICAgICAgICAgIChsYW1iZGEgKGNvbW1hbmQg JnJlc3QgXykgKHRocm93ICdzcWwtY29tbWFuZCBjb21tYW5kKSkpKQorICAgICAoY2F0Y2ggJ3Nx bC1jb21tYW5kCisgICAgICAgLEBib2R5KSkpCisKKyhkZWZtYWNybyBvYi1zcWwvY29tbWFuZC1z aG91bGQtY29udGFpbiAocmVnZXhwIHNxbC1ibG9jaykKKyAgIkNoZWNrIHRoYXQgUkVHRVhQIGlz IGNvbnRhaW5lZCBpbiB0aGUgY29tbWFuZCBleGVjdXRlZCB3aGVuIGV2YWx1YXRpbmcgU1FMLUJM T0NLLiIKKyAgYChsZXQgKChyZWdleHBzICwoaWYgKGxpc3RwIHJlZ2V4cCkgcmVnZXhwIGAobGlz dCAscmVnZXhwKSkpCisgICAgICAgICAoY29tbWFuZCAob2Itc3FsL2NvbW1hbmQgKG9yZy10ZXN0 LXdpdGgtdGVtcC10ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxz cWwtYmxvY2sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcmctYmFiZWwt bmV4dC1zcmMtYmxvY2spCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3Jn LWJhYmVsLWV4ZWN1dGUtc3JjLWJsb2NrKSkpKSkKKyAgICAgKGRvbGlzdCAocmVnZXhwIHJlZ2V4 cHMpCisgICAgICAgKHNob3VsZCAoc3RyaW5nLW1hdGNoLXAgcmVnZXhwIGNvbW1hbmQpKSkpKQor CisoZGVmbWFjcm8gb2Itc3FsL2NvbW1hbmQtc2hvdWxkLW5vdC1jb250YWluIChyZWdleHAgc3Fs LWJsb2NrKQorICAiQ2hlY2sgdGhhdCBSRUdFWFAgaXMgbm90IGNvbnRhaW5lZCBpbiB0aGUgY29t bWFuZCBleGVjdXRlZCB3aGVuIGV2YWx1YXRpbmcgU1FMLUJMT0NLLiIKKyAgYChsZXQgKChjb21t YW5kIChvYi1zcWwvY29tbWFuZAorICAgICAgICAgICAgICAgICAgIChvcmctdGVzdC13aXRoLXRl bXAtdGV4dAorICAgICAgICAgICAgICAgICAgICAgICAsc3FsLWJsb2NrCisgICAgICAgICAgICAg ICAgICAgICAob3JnLWJhYmVsLW5leHQtc3JjLWJsb2NrKQorICAgICAgICAgICAgICAgICAgICAg KG9yZy1iYWJlbC1leGVjdXRlLXNyYy1ibG9jaykpKSkpCisgICAgIChzaG91bGQtbm90IChzdHJp bmctbWF0Y2gtcCAscmVnZXhwIGNvbW1hbmQpKSkpCisKKzs7OyBkYmlzaAorKGVydC1kZWZ0ZXN0 IG9iLXNxbC9lbmdpbmUtZGJpLXVzZXMtZGJpc2ggKCkKKyAgKG9iLXNxbC9jb21tYW5kLXNob3Vs ZC1jb250YWluICJeZGJpc2ggIiAiCisjK2JlZ2luX3NyYyBzcWwgOmVuZ2luZSBkYmkKKyAgc2Vs ZWN0ICogZnJvbSBkdW1teTsKKyMrZW5kX3NyYyIpKQorCisoZXJ0LWRlZnRlc3Qgb2Itc3FsL2Vu Z2luZS1kYmlzaC11c2VzLWJhdGNoLW1vZGUgKCkKKyAgKG9iLXNxbC9jb21tYW5kLXNob3VsZC1j b250YWluICIgLS1iYXRjaCAiICIKKyMrYmVnaW5fc3JjIHNxbCA6ZW5naW5lIGRiaSA6ZGJ1c2Vy IGR1bW15CisgIHNlbGVjdCAqIGZyb20gZHVtbXk7CisjK2VuZF9zcmMiKSkKKworKGVydC1kZWZ0 ZXN0IG9iLXNxbC9lbmdpbmUtZGJpc2gtY2FuLXBhc3MtYWRkaXRpb25hbC1jbWRsaW5lLXBhcmFt cyAoKQorICAob2Itc3FsL2NvbW1hbmQtc2hvdWxkLWNvbnRhaW4gIiBjbWRsaW5lcGFyYW1zICIg IgorIytiZWdpbl9zcmMgc3FsIDplbmdpbmUgZGJpIDpkYnBhc3N3b3JkIGR1bW15IDpjbWRsaW5l IGNtZGxpbmVwYXJhbXMKKyAgc2VsZWN0ICogZnJvbSBkdW1teTsKKyMrZW5kX3NyYyIpKQorCis7 OzsgbW9uZXRkYgorKGVydC1kZWZ0ZXN0IG9iLXNxbC9lbmdpbmUtbW9uZXRkYi11c2VzLW1jbGll bnQgKCkKKyAgKG9iLXNxbC9jb21tYW5kLXNob3VsZC1jb250YWluICJebWNsaWVudCAiICIKKyMr YmVnaW5fc3JjIHNxbCA6ZW5naW5lIG1vbmV0ZGIKKyAgc2VsZWN0ICogZnJvbSBkdW1teTsKKyMr ZW5kX3NyYyIpKQorCisoZXJ0LWRlZnRlc3Qgb2Itc3FsL2VuZ2luZS1tb25ldGRiLW91dHB1dHMt dmFsdWVzLXRhYi1zZXBhcmF0ZWQgKCkKKyAgKG9iLXNxbC9jb21tYW5kLXNob3VsZC1jb250YWlu ICIgLWYgdGFiICIgIgorIytiZWdpbl9zcmMgc3FsIDplbmdpbmUgbW9uZXRkYgorICBzZWxlY3Qg KiBmcm9tIGR1bW15OworIytlbmRfc3JjIikpCisKKyhlcnQtZGVmdGVzdCBvYi1zcWwvZW5naW5l LW1vbmV0ZGItY2FuLXBhc3MtYWRkaXRpb25hbC1jbWRsaW5lLXBhcmFtcyAoKQorICAob2Itc3Fs L2NvbW1hbmQtc2hvdWxkLWNvbnRhaW4gIiBjbWRsaW5lcGFyYW1zICIgIgorIytiZWdpbl9zcmMg c3FsIDplbmdpbmUgbW9uZXRkYiA6ZGJwYXNzd29yZCBkdW1teSA6Y21kbGluZSBjbWRsaW5lcGFy YW1zCisgIHNlbGVjdCAqIGZyb20gZHVtbXk7CisjK2VuZF9zcmMiKSkKKworOzs7IG1zc3FsCiso ZXJ0LWRlZnRlc3Qgb2Itc3FsL2VuZ2luZS1tc3NxbC11c2VzLXNxbGNtZCAoKQorICAob2Itc3Fs L2NvbW1hbmQtc2hvdWxkLWNvbnRhaW4gIl5zcWxjbWQgIiAiCisjK2JlZ2luX3NyYyBzcWwgOmVu Z2luZSBtc3NxbAorICBzZWxlY3QgKiBmcm9tIGR1bW15OworIytlbmRfc3JjIikpCisKKyhlcnQt ZGVmdGVzdCBvYi1zcWwvZW5naW5lLW1zc3FsLW91dHB1dHMtdmFsdWVzLXRhYi1zZXBhcmF0ZWQg KCkKKyAgKG9iLXNxbC9jb21tYW5kLXNob3VsZC1jb250YWluICIgLXMgXCJcdFwiICIgIgorIyti ZWdpbl9zcmMgc3FsIDplbmdpbmUgbXNzcWwKKyAgc2VsZWN0ICogZnJvbSBkdW1teTsKKyMrZW5k X3NyYyIpKQorCisoZXJ0LWRlZnRlc3Qgb2Itc3FsL2VuZ2luZS1tc3NxbC1jYW4tcGFzcy1hZGRp dGlvbmFsLWNtZGxpbmUtcGFyYW1zICgpCisgIChvYi1zcWwvY29tbWFuZC1zaG91bGQtY29udGFp biAiIGNtZGxpbmVwYXJhbXMgIiAiCisjK2JlZ2luX3NyYyBzcWwgOmVuZ2luZSBtc3NxbCA6ZGJw YXNzd29yZCBkdW1teSA6Y21kbGluZSBjbWRsaW5lcGFyYW1zCisgIHNlbGVjdCAqIGZyb20gZHVt bXk7CisjK2VuZF9zcmMiKSkKKworKGVydC1kZWZ0ZXN0IG9iLXNxbC9lbmdpbmUtbXNzcWwtcGFz c2VzLXVzZXItaWYtcHJvdmlkZWQgKCkKKyAgKG9iLXNxbC9jb21tYW5kLXNob3VsZC1jb250YWlu ICIgLVUgXCJkdW1teVwiICIgIgorIytiZWdpbl9zcmMgc3FsIDplbmdpbmUgbXNzcWwgOmRidXNl ciBkdW1teQorICBzZWxlY3QgKiBmcm9tIGR1bW15OworIytlbmRfc3JjIikpCisKKyhlcnQtZGVm dGVzdCBvYi1zcWwvZW5naW5lLW1zc3FsLXBhc3Nlcy1wYXNzd29yZC1pZi1wcm92aWRlZCAoKQor ICAob2Itc3FsL2NvbW1hbmQtc2hvdWxkLWNvbnRhaW4gIiAtUCBcImR1bW15XCIgIiAiCisjK2Jl Z2luX3NyYyBzcWwgOmVuZ2luZSBtc3NxbCA6ZGJwYXNzd29yZCBkdW1teQorICBzZWxlY3QgKiBm cm9tIGR1bW15OworIytlbmRfc3JjIikpCisKKyhlcnQtZGVmdGVzdCBvYi1zcWwvZW5naW5lLW1z c3FsLXBhc3Nlcy1kYmhvc3QtaWYtcHJvdmlkZWQgKCkKKyAgKG9iLXNxbC9jb21tYW5kLXNob3Vs ZC1jb250YWluICIgLVMgXCJsb2NhbGhvc3RcIiAiICIKKyMrYmVnaW5fc3JjIHNxbCA6ZW5naW5l IG1zc3FsIDpkYmhvc3QgbG9jYWxob3N0CisgIHNlbGVjdCAqIGZyb20gZHVtbXk7CisjK2VuZF9z cmMiKSkKKworKGVydC1kZWZ0ZXN0IG9iLXNxbC9lbmdpbmUtbXNzcWwtcGFzc2VzLWRhdGFiYXNl LWlmLXByb3ZpZGVkICgpCisgIChvYi1zcWwvY29tbWFuZC1zaG91bGQtY29udGFpbiAiIC1kIFwi UjAxXCIgIiAiCisjK2JlZ2luX3NyYyBzcWwgOmVuZ2luZSBtc3NxbCA6ZGF0YWJhc2UgUjAxCisg IHNlbGVjdCAqIGZyb20gZHVtbXk7CisjK2VuZF9zcmMiKSkKKworKGVydC1kZWZ0ZXN0IG9iLXNx bC9lbmdpbmUtbXNzcWwtcGFzc2VzLWFsbC1wYXJhbWV0ZXItcHJvdmlkZWQgKCkKKyAgKG9iLXNx bC9jb21tYW5kLXNob3VsZC1jb250YWluICcoIiAtZCBcIlIwMVwiICIgIiAtUyBcImxvY2FsaG9z dFwiICIgIiAtUCBcInB3ZFwiICIgIiAtVSBcInVzclwiICIpICIKKyMrYmVnaW5fc3JjIHNxbCA6 ZW5naW5lIG1zc3FsIDpkYXRhYmFzZSBSMDEgOmRiaG9zdCBsb2NhbGhvc3QgOmRicG9ydCAzMDEw MSA6ZGJpbnN0YW5jZSAxIDpkYnVzZXIgdXNyIDpkYnBhc3N3b3JkIHB3ZAorICBzZWxlY3QgKiBm cm9tIGR1bW15OworIytlbmRfc3JjIikpCisKKzs7OyBNeVNRTAorKGVydC1kZWZ0ZXN0IG9iLXNx bC9lbmdpbmUtbXlzcWwtdXNlcy1teXNxbCAoKQorICAob2Itc3FsL2NvbW1hbmQtc2hvdWxkLWNv bnRhaW4gIl5teXNxbCAiICIKKyMrYmVnaW5fc3JjIHNxbCA6ZW5naW5lIG15c3FsCisgIHNlbGVj dCAqIGZyb20gZHVtbXk7CisjK2VuZF9zcmMiKSkKKworKGVydC1kZWZ0ZXN0IG9iLXNxbC9lbmdp bmUtbXlzcWwtcGFzc2VzLXVzZXItaWYtcHJvdmlkZWQgKCkKKyAgKG9iLXNxbC9jb21tYW5kLXNo b3VsZC1jb250YWluICIgLXVkdW1teSAiICIKKyMrYmVnaW5fc3JjIHNxbCA6ZW5naW5lIG15c3Fs IDpkYnVzZXIgZHVtbXkKKyAgc2VsZWN0ICogZnJvbSBkdW1teTsKKyMrZW5kX3NyYyIpKQorCiso ZXJ0LWRlZnRlc3Qgb2Itc3FsL2VuZ2luZS1teXNxbC1wYXNzZXMtcGFzc3dvcmQtaWYtcHJvdmlk ZWQgKCkKKyAgKG9iLXNxbC9jb21tYW5kLXNob3VsZC1jb250YWluICIgLXBkdW1teSAiICIKKyMr YmVnaW5fc3JjIHNxbCA6ZW5naW5lIG15c3FsIDpkYnBhc3N3b3JkIGR1bW15CisgIHNlbGVjdCAq IGZyb20gZHVtbXk7CisjK2VuZF9zcmMiKSkKKworKGVydC1kZWZ0ZXN0IG9iLXNxbC9lbmdpbmUt bXlzcWwtcGFzc2VzLWRiaG9zdC1pZi1wcm92aWRlZCAoKQorICAob2Itc3FsL2NvbW1hbmQtc2hv dWxkLWNvbnRhaW4gIiAtaGxvY2FsaG9zdCAiICIKKyMrYmVnaW5fc3JjIHNxbCA6ZW5naW5lIG15 c3FsIDpkYmhvc3QgbG9jYWxob3N0CisgIHNlbGVjdCAqIGZyb20gZHVtbXk7CisjK2VuZF9zcmMi KSkKKworKGVydC1kZWZ0ZXN0IG9iLXNxbC9lbmdpbmUtbXlzcWwtcGFzc2VzLWhvc3QtaWYtcHJv dmlkZWQgKCkKKyAgKG9iLXNxbC9jb21tYW5kLXNob3VsZC1jb250YWluICIgLVAzMDEwMSAiICIK KyMrYmVnaW5fc3JjIHNxbCA6ZW5naW5lIG15c3FsIDpkYnBvcnQgMzAxMDEKKyAgc2VsZWN0ICog ZnJvbSBkdW1teTsKKyMrZW5kX3NyYyIpKQorCisoZXJ0LWRlZnRlc3Qgb2Itc3FsL2VuZ2luZS1t eXNxbC1wYXNzZXMtZGF0YWJhc2UtaWYtcHJvdmlkZWQgKCkKKyAgKG9iLXNxbC9jb21tYW5kLXNo b3VsZC1jb250YWluICIgLWRSMDEgIiAiCisjK2JlZ2luX3NyYyBzcWwgOmVuZ2luZSBteXNxbCA6 ZGF0YWJhc2UgUjAxCisgIHNlbGVjdCAqIGZyb20gZHVtbXk7CisjK2VuZF9zcmMiKSkKKworKGVy dC1kZWZ0ZXN0IG9iLXNxbC9lbmdpbmUtbXlzcWwtcGFzc2VzLWFsbC1wYXJhbWV0ZXItcHJvdmlk ZWQgKCkKKyAgKG9iLXNxbC9jb21tYW5kLXNob3VsZC1jb250YWluICcoIiAtZFIwMSAiICIgLWhs b2NhbGhvc3QgIiAiIC1QMzAxMDEgIiAiIC1wcHdkICIgIiAtdXVzciAiKSAiCisjK2JlZ2luX3Ny YyBzcWwgOmVuZ2luZSBteXNxbCA6ZGF0YWJhc2UgUjAxIDpkYmhvc3QgbG9jYWxob3N0IDpkYnBv cnQgMzAxMDEgOmRiaW5zdGFuY2UgMSA6ZGJ1c2VyIHVzciA6ZGJwYXNzd29yZCBwd2QKKyAgc2Vs ZWN0ICogZnJvbSBkdW1teTsKKyMrZW5kX3NyYyIpKQorCis7Ozsgb3JhY2xlCisoZXJ0LWRlZnRl c3Qgb2Itc3FsL2VuZ2luZS1vcmFjbGUtdXNlcy1zcWxwbHVzICgpCisgIChvYi1zcWwvY29tbWFu ZC1zaG91bGQtY29udGFpbiAiXnNxbHBsdXMgIiAiCisjK2JlZ2luX3NyYyBzcWwgOmVuZ2luZSBv cmFjbGUgOmRidXNlciBkdW1teSA6ZGJwYXNzd29yZCBkdW1teSA6ZGF0YWJhc2UgZHVtbXkKKyAg c2VsZWN0ICogZnJvbSBkdW1teTsKKyMrZW5kX3NyYyIpKQorCisoZXJ0LWRlZnRlc3Qgb2Itc3Fs L2VuZ2luZS1vcmFjbGUtcGFzc2VzLXVzZXItcHdkLWRhdGFiYXNlLWhvc3QtcG9ydC1pZi1wcm92 aWRlZCAoKQorICAob2Itc3FsL2NvbW1hbmQtc2hvdWxkLWNvbnRhaW4gIiBkdW1teS9kdW1teXB3 ZEBsb2NhbGhvc3Q6MTIzNDUvUjAxICIgIgorIytiZWdpbl9zcmMgc3FsIDplbmdpbmUgb3JhY2xl IDpkYnVzZXIgZHVtbXkgOmRicGFzc3dvcmQgZHVtbXlwd2QgOmRiaG9zdCBsb2NhbGhvc3QgOmRh dGFiYXNlIFIwMSA6ZGJwb3J0IDEyMzQ1CisgIHNlbGVjdCAqIGZyb20gZHVtbXk7CisjK2VuZF9z cmMiKSkKKworKGVydC1kZWZ0ZXN0IG9iLXNxbC9lbmdpbmUtb3JhY2xlLXBhc3Nlcy11c2VyLXB3 ZC1kYXRhYmFzZS1pZi1uby1ob3N0LXBvcnQtcHJvdmlkZWQgKCkKKyAgKG9iLXNxbC9jb21tYW5k LXNob3VsZC1jb250YWluICIgZHVtbXkvZHVtbXlwd2RAUjAxICIgIgorIytiZWdpbl9zcmMgc3Fs IDplbmdpbmUgb3JhY2xlIDpkYnVzZXIgZHVtbXkgOmRicGFzc3dvcmQgZHVtbXlwd2QgOmRhdGFi YXNlIFIwMQorICBzZWxlY3QgKiBmcm9tIGR1bW15OworIytlbmRfc3JjIikpCisKKzs7OyBwb3N0 Z3Jlc3FsCisoZXJ0LWRlZnRlc3Qgb2Itc3FsL2VuZ2luZS1wb3N0Z3Jlc3FsLXVzZXMtcHNxbCAo KQorICAob2Itc3FsL2NvbW1hbmQtc2hvdWxkLWNvbnRhaW4gIl5wc3FsICIgIgorIytiZWdpbl9z cmMgc3FsIDplbmdpbmUgcG9zdGdyZXNxbAorICBzZWxlY3QgKiBmcm9tIGR1bW15OworIytlbmRf c3JjIikpCisKKyhlcnQtZGVmdGVzdCBvYi1zcWwvZW5naW5lLXBvc3RncmVzcWwtcGFzc2VzLXBh c3N3b3JkLWlmLXByb3ZpZGVkICgpCisgIChvYi1zcWwvY29tbWFuZC1zaG91bGQtY29udGFpbiAi XlBHUEFTU1dPUkQ9ZHVtbXkgIiAiCisjK2JlZ2luX3NyYyBzcWwgOmVuZ2luZSBwb3N0Z3Jlc3Fs IDpkYnBhc3N3b3JkIGR1bW15CisgIHNlbGVjdCAqIGZyb20gZHVtbXk7CisjK2VuZF9zcmMiKSkK KworKGVydC1kZWZ0ZXN0IG9iLXNxbC9lbmdpbmUtcG9zdGdyZXNxbC1zdG9wLW9uLWVycm9yICgp CisgIChvYi1zcWwvY29tbWFuZC1zaG91bGQtY29udGFpbiAiIC0tc2V0PVwiT05fRVJST1JfU1RP UD0xXCIgIiAiCisjK2JlZ2luX3NyYyBzcWwgOmVuZ2luZSBwb3N0Z3Jlc3FsCisgIHNlbGVjdCAq IGZyb20gZHVtbXk7CisjK2VuZF9zcmMiKSkKKworKGVydC1kZWZ0ZXN0IG9iLXNxbC9lbmdpbmUt cG9zdGdyZXNxbC1kb2VzLW5vdC1vdXRwdXQtY29sdW1uLW5hbWVzLWlmLXJlcXVlc3RlZCAoKQor ICAob2Itc3FsL2NvbW1hbmQtc2hvdWxkLWNvbnRhaW4gIiAtdCAiICIKKyMrYmVnaW5fc3JjIHNx bCA6ZW5naW5lIHBvc3RncmVzcWwgOmNvbG5hbWVzIG5vCisgIHNlbGVjdCAqIGZyb20gZHVtbXk7 CisjK2VuZF9zcmMiKSkKKworKGVydC1kZWZ0ZXN0IG9iLXNxbC9lbmdpbmUtcG9zdGdyZXNxbC1v dXRwdXRzLWNvbHVtbi1uYW1lcy1ieS1kZWZhdWx0ICgpCisgIChvYi1zcWwvY29tbWFuZC1zaG91 bGQtbm90LWNvbnRhaW4gIiAtdCAiICIKKyMrYmVnaW5fc3JjIHNxbCA6ZW5naW5lIHBvc3RncmVz cWwKKyAgc2VsZWN0ICogZnJvbSBkdW1teTsKKyMrZW5kX3NyYyIpKQorCisoZXJ0LWRlZnRlc3Qg b2Itc3FsL2VuZ2luZS1wb3N0Z3Jlc3FsLWNhbi1wYXNzLWFkZGl0aW9uYWwtY21kbGluZS1wYXJh bXMgKCkKKyAgKG9iLXNxbC9jb21tYW5kLXNob3VsZC1jb250YWluICIgY21kbGluZXBhcmFtcyQi ICIKKyMrYmVnaW5fc3JjIHNxbCA6ZW5naW5lIHBvc3RncmVzcWwgOmRicGFzc3dvcmQgZHVtbXkg OmNtZGxpbmUgY21kbGluZXBhcmFtcworICBzZWxlY3QgKiBmcm9tIGR1bW15OworIytlbmRfc3Jj IikpCisKKzs7OyBTQVAgSEFOQQorKGVydC1kZWZ0ZXN0IG9iLXNxbC9lbmdpbmUtc2FwaGFuYS11 c2VzLWhkYnNxbCAoKQorICAob2Itc3FsL2NvbW1hbmQtc2hvdWxkLWNvbnRhaW4gIl5oZGJzcWwg IiAiCisjK2JlZ2luX3NyYyBzcWwgOmVuZ2luZSBzYXBoYW5hCisgIHNlbGVjdCAqIGZyb20gZHVt bXk7CisjK2VuZF9zcmMiKSkKKworKGVydC1kZWZ0ZXN0IG9iLXNxbC9lbmdpbmUtc2FwaGFuYS1w YXNzZXMtdXNlci1pZi1wcm92aWRlZCAoKQorICAob2Itc3FsL2NvbW1hbmQtc2hvdWxkLWNvbnRh aW4gIiAtdSBkdW1teSAiICIKKyMrYmVnaW5fc3JjIHNxbCA6ZW5naW5lIHNhcGhhbmEgOmRidXNl ciBkdW1teQorICBzZWxlY3QgKiBmcm9tIGR1bW15OworIytlbmRfc3JjIikpCisKKyhlcnQtZGVm dGVzdCBvYi1zcWwvZW5naW5lLXNhcGhhbmEtcGFzc2VzLXBhc3N3b3JkLWlmLXByb3ZpZGVkICgp CisgIChvYi1zcWwvY29tbWFuZC1zaG91bGQtY29udGFpbiAiIC1wIGR1bW15ICIgIgorIytiZWdp bl9zcmMgc3FsIDplbmdpbmUgc2FwaGFuYSA6ZGJwYXNzd29yZCBkdW1teQorICBzZWxlY3QgKiBm cm9tIGR1bW15OworIytlbmRfc3JjIikpCisKKyhlcnQtZGVmdGVzdCBvYi1zcWwvZW5naW5lLXNh cGhhbmEtcGFzc2VzLWRiaW5zdGFuY2UtaWYtcHJvdmlkZWQgKCkKKyAgKG9iLXNxbC9jb21tYW5k LXNob3VsZC1jb250YWluICIgLWkgMSAiICIKKyMrYmVnaW5fc3JjIHNxbCA6ZW5naW5lIHNhcGhh bmEgOmRiaW5zdGFuY2UgMQorICBzZWxlY3QgKiBmcm9tIGR1bW15OworIytlbmRfc3JjIikpCisK KyhlcnQtZGVmdGVzdCBvYi1zcWwvZW5naW5lLXNhcGhhbmEtcGFzc2VzLWRiaG9zdC1pZi1wcm92 aWRlZCAoKQorICAob2Itc3FsL2NvbW1hbmQtc2hvdWxkLWNvbnRhaW4gIiAtbiBsb2NhbGhvc3Qg IiAiCisjK2JlZ2luX3NyYyBzcWwgOmVuZ2luZSBzYXBoYW5hIDpkYmhvc3QgbG9jYWxob3N0Cisg IHNlbGVjdCAqIGZyb20gZHVtbXk7CisjK2VuZF9zcmMiKSkKKworKGVydC1kZWZ0ZXN0IG9iLXNx bC9lbmdpbmUtc2FwaGFuYS1wYXNzZXMtZGJob3N0LWFuZC1kYnBvcnQtaWYtcHJvdmlkZWQgKCkK KyAgKG9iLXNxbC9jb21tYW5kLXNob3VsZC1jb250YWluICIgLW4gbG9jYWxob3N0OjMwMTAxICIg IgorIytiZWdpbl9zcmMgc3FsIDplbmdpbmUgc2FwaGFuYSA6ZGJob3N0IGxvY2FsaG9zdCA6ZGJw b3J0IDMwMTAxCisgIHNlbGVjdCAqIGZyb20gZHVtbXk7CisjK2VuZF9zcmMiKSkKKworKGVydC1k ZWZ0ZXN0IG9iLXNxbC9lbmdpbmUtc2FwaGFuYS1kb2VzLW5vdC1wYXNzLWhvc3QtcG9ydC1pZi1v bmx5LXBvcnQtcHJvdmlkZWQgKCkKKyAgKG9iLXNxbC9jb21tYW5kLXNob3VsZC1ub3QtY29udGFp biAiIC1uIiAiCisjK2JlZ2luX3NyYyBzcWwgOmVuZ2luZSBzYXBoYW5hIDpkYnBvcnQgMzAxMDEK KyAgc2VsZWN0ICogZnJvbSBkdW1teTsKKyMrZW5kX3NyYyIpKQorCisoZXJ0LWRlZnRlc3Qgb2It c3FsL2VuZ2luZS1zYXBoYW5hLXBhc3Nlcy1kYXRhYmFzZS1pZi1wcm92aWRlZCAoKQorICAob2It c3FsL2NvbW1hbmQtc2hvdWxkLWNvbnRhaW4gIiAtZCBSMDEgIiAiCisjK2JlZ2luX3NyYyBzcWwg OmVuZ2luZSBzYXBoYW5hIDpkYXRhYmFzZSBSMDEKKyAgc2VsZWN0ICogZnJvbSBkdW1teTsKKyMr ZW5kX3NyYyIpKQorCisoZXJ0LWRlZnRlc3Qgb2Itc3FsL2VuZ2luZS1zYXBoYW5hLXBhc3Nlcy1h bGwtcGFyYW1ldGVyLXByb3ZpZGVkICgpCisgIChvYi1zcWwvY29tbWFuZC1zaG91bGQtY29udGFp biAnKCIgLWQgUjAxICIgIiAtbiBsb2NhbGhvc3Q6MzAxMDEgIiAiIC1pIDEgIiAiIC1wIHB3ZCAi ICIgLXUgdXNyIikgIgorIytiZWdpbl9zcmMgc3FsIDplbmdpbmUgc2FwaGFuYSA6ZGF0YWJhc2Ug UjAxIDpkYmhvc3QgbG9jYWxob3N0IDpkYnBvcnQgMzAxMDEgOmRiaW5zdGFuY2UgMSA6ZGJ1c2Vy IHVzciA6ZGJwYXNzd29yZCBwd2QKKyAgc2VsZWN0ICogZnJvbSBkdW1teTsKKyMrZW5kX3NyYyIp KQorCisoZXJ0LWRlZnRlc3Qgb2Itc3FsL2VuZ2luZS1zYXBoYW5hLWNhbi1wYXNzLWFkZGl0aW9u YWwtY21kbGluZS1wYXJhbXMgKCkKKyAgKG9iLXNxbC9jb21tYW5kLXNob3VsZC1jb250YWluICIg Y21kbGluZXBhcmFtcyQiICIKKyMrYmVnaW5fc3JjIHNxbCA6ZW5naW5lIHNhcGhhbmEgOmRicGFz c3dvcmQgZHVtbXkgOmNtZGxpbmUgY21kbGluZXBhcmFtcworICBzZWxlY3QgKiBmcm9tIGR1bW15 OworIytlbmRfc3JjIikpCisKKzs7OyBzcXNoCisoZXJ0LWRlZnRlc3Qgb2Itc3FsL2VuZ2luZS1z cXNoLXVzZXMtc3FzaCAoKQorICAob2Itc3FsL2NvbW1hbmQtc2hvdWxkLWNvbnRhaW4gIl5zcXNo ICIgIgorIytiZWdpbl9zcmMgc3FsIDplbmdpbmUgc3FzaAorICBzZWxlY3QgKiBmcm9tIGR1bW15 OworIytlbmRfc3JjIikpCisKKyhlcnQtZGVmdGVzdCBvYi1zcWwvZW5naW5lLXNxc2gtY2FuLXBh c3MtYWRkaXRpb25hbC1jbWRsaW5lLXBhcmFtcyAoKQorICAob2Itc3FsL2NvbW1hbmQtc2hvdWxk LWNvbnRhaW4gIiBjbWRsaW5lcGFyYW1zICIgIgorIytiZWdpbl9zcmMgc3FsIDplbmdpbmUgc3Fz aCA6ZGJwYXNzd29yZCBkdW1teSA6Y21kbGluZSBjbWRsaW5lcGFyYW1zCisgIHNlbGVjdCAqIGZy b20gZHVtbXk7CisjK2VuZF9zcmMiKSkKKworKGVydC1kZWZ0ZXN0IG9iLXNxbC9lbmdpbmUtc3Fz aC1wYXNzZXMtdXNlci1pZi1wcm92aWRlZCAoKQorICAob2Itc3FsL2NvbW1hbmQtc2hvdWxkLWNv bnRhaW4gIiAtVSBcImR1bW15XCIgIiAiCisjK2JlZ2luX3NyYyBzcWwgOmVuZ2luZSBzcXNoIDpk YnVzZXIgZHVtbXkKKyAgc2VsZWN0ICogZnJvbSBkdW1teTsKKyMrZW5kX3NyYyIpKQorCisoZXJ0 LWRlZnRlc3Qgb2Itc3FsL2VuZ2luZS1zcXNoLXBhc3Nlcy1wYXNzd29yZC1pZi1wcm92aWRlZCAo KQorICAob2Itc3FsL2NvbW1hbmQtc2hvdWxkLWNvbnRhaW4gIiAtUCBcImR1bW15XCIgIiAiCisj K2JlZ2luX3NyYyBzcWwgOmVuZ2luZSBzcXNoIDpkYnBhc3N3b3JkIGR1bW15CisgIHNlbGVjdCAq IGZyb20gZHVtbXk7CisjK2VuZF9zcmMiKSkKKworKGVydC1kZWZ0ZXN0IG9iLXNxbC9lbmdpbmUt c3FzaC1wYXNzZXMtaG9zdC1pZi1wcm92aWRlZCAoKQorICAob2Itc3FsL2NvbW1hbmQtc2hvdWxk LWNvbnRhaW4gIiAtUyBcImxvY2FsaG9zdFwiICIgIgorIytiZWdpbl9zcmMgc3FsIDplbmdpbmUg c3FzaCA6ZGJob3N0IGxvY2FsaG9zdAorICBzZWxlY3QgKiBmcm9tIGR1bW15OworIytlbmRfc3Jj IikpCisKKyhlcnQtZGVmdGVzdCBvYi1zcWwvZW5naW5lLXNxc2gtcGFzc2VzLWRhdGFiYXNlLWlm LXByb3ZpZGVkICgpCisgIChvYi1zcWwvY29tbWFuZC1zaG91bGQtY29udGFpbiAiIC1EIFwiUjAx XCIgIiAiCisjK2JlZ2luX3NyYyBzcWwgOmVuZ2luZSBzcXNoIDpkYXRhYmFzZSBSMDEKKyAgc2Vs ZWN0ICogZnJvbSBkdW1teTsKKyMrZW5kX3NyYyIpKQorCisKKzs7OyB2ZXJ0aWNhCisoZXJ0LWRl ZnRlc3Qgb2Itc3FsL2VuZ2luZS12ZXJ0aWNhLXVzZXMtdnNxbCAoKQorICAob2Itc3FsL2NvbW1h bmQtc2hvdWxkLWNvbnRhaW4gIl52c3FsICIgIgorIytiZWdpbl9zcmMgc3FsIDplbmdpbmUgdmVy dGljYQorICBzZWxlY3QgKiBmcm9tIGR1bW15OworIytlbmRfc3JjIikpCisKKyhlcnQtZGVmdGVz dCBvYi1zcWwvZW5naW5lLXZlcnRpY2EtY2FuLXBhc3MtYWRkaXRpb25hbC1jbWRsaW5lLXBhcmFt cyAoKQorICAob2Itc3FsL2NvbW1hbmQtc2hvdWxkLWNvbnRhaW4gIiBjbWRsaW5lcGFyYW1zJCIg IgorIytiZWdpbl9zcmMgc3FsIDplbmdpbmUgdmVydGljYSA6ZGJwYXNzd29yZCBkdW1teSA6Y21k bGluZSBjbWRsaW5lcGFyYW1zCisgIHNlbGVjdCAqIGZyb20gZHVtbXk7CisjK2VuZF9zcmMiKSkK KworKGVydC1kZWZ0ZXN0IG9iLXNxbC9lbmdpbmUtdmVydGljYS1wYXNzZXMtdXNlci1pZi1wcm92 aWRlZCAoKQorICAob2Itc3FsL2NvbW1hbmQtc2hvdWxkLWNvbnRhaW4gIiAtVSBkdW1teSAiICIK KyMrYmVnaW5fc3JjIHNxbCA6ZW5naW5lIHZlcnRpY2EgOmRidXNlciBkdW1teQorICBzZWxlY3Qg KiBmcm9tIGR1bW15OworIytlbmRfc3JjIikpCisKKyhlcnQtZGVmdGVzdCBvYi1zcWwvZW5naW5l LXZlcnRpY2EtcGFzc2VzLXBhc3N3b3JkLWlmLXByb3ZpZGVkICgpCisgIChvYi1zcWwvY29tbWFu ZC1zaG91bGQtY29udGFpbiAiIC13IGR1bW15ICIgIgorIytiZWdpbl9zcmMgc3FsIDplbmdpbmUg dmVydGljYSA6ZGJwYXNzd29yZCBkdW1teQorICBzZWxlY3QgKiBmcm9tIGR1bW15OworIytlbmRf c3JjIikpCisKKyhlcnQtZGVmdGVzdCBvYi1zcWwvZW5naW5lLXZlcnRpY2EtcGFzc2VzLWhvc3Qt aWYtcHJvdmlkZWQgKCkKKyAgKG9iLXNxbC9jb21tYW5kLXNob3VsZC1jb250YWluICIgLWggbG9j YWxob3N0ICIgIgorIytiZWdpbl9zcmMgc3FsIDplbmdpbmUgdmVydGljYSA6ZGJob3N0IGxvY2Fs aG9zdAorICBzZWxlY3QgKiBmcm9tIGR1bW15OworIytlbmRfc3JjIikpCisKKyhlcnQtZGVmdGVz dCBvYi1zcWwvZW5naW5lLXZlcnRpY2EtcGFzc2VzLWRhdGFiYXNlLWlmLXByb3ZpZGVkICgpCisg IChvYi1zcWwvY29tbWFuZC1zaG91bGQtY29udGFpbiAiIC1kIFIwMSAiICIKKyMrYmVnaW5fc3Jj IHNxbCA6ZW5naW5lIHZlcnRpY2EgOmRhdGFiYXNlIFIwMQorICBzZWxlY3QgKiBmcm9tIGR1bW15 OworIytlbmRfc3JjIikpCisKKyhlcnQtZGVmdGVzdCBvYi1zcWwvZW5naW5lLXZlcnRpY2EtcGFz c2VzLXBvcnQtaWYtcHJvdmlkZWQgKCkKKyAgKG9iLXNxbC9jb21tYW5kLXNob3VsZC1jb250YWlu ICIgLXAgMTIzNDUgIiAiCisjK2JlZ2luX3NyYyBzcWwgOmVuZ2luZSB2ZXJ0aWNhIDpkYnBvcnQg MTIzNDUKKyAgc2VsZWN0ICogZnJvbSBkdW1teTsKKyMrZW5kX3NyYyIpKQorCis7OzsgdGVzdC1v Yi1zcWxpdGUuZWwgZW5kcyBoZXJlCi0tIAoyLjMwLjEKCg== --000000000000b3d75205bda91962--