From libssh2-devel-bounces@cool.haxx.se  Tue Jul  3 08:51:19 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q636orNZ018018;
	Tue, 3 Jul 2012 08:51:12 +0200
Received: from smtp.rayservers.com (smtp.rayservers.com [209.177.151.213])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q636onng017943
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Tue, 3 Jul 2012 08:50:50 +0200
Received: (qmail 27222 invoked from network); 3 Jul 2012 06:50:42 -0000
Received: from smtp.rayservers.com (HELO Authorized-Users-iMac.local)
 (fellowtraveler@rayservers.net@209.177.151.213)
 by smtp.rayservers.com with ESMTPA; 3 Jul 2012 06:50:42 -0000
Message-ID: <4FF29643.9040201@rayservers.net>
Date: Mon, 02 Jul 2012 23:50:43 -0700
From: Fellow Traveler <fellowtraveler@rayservers.net>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7;
 rv:13.0) Gecko/20120614 Thunderbird/13.0.1
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: Question: using ssh-agent as "protected memory" storage.
X-Enigmail-Version: 1.4.2
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se


Hello,

Sorry to bother you all but I have already done a lot of research online
and haven't come to a satisfactory answer.

**** All I want, is to be able to store a small piece of data in
"protected memory", and then retrieve it again later. ****

I am already doing some pretty tricked-out stuff to store this data in
my own RAM, but that's not good enough -- I'd prefer to use some sort of
"standard" protected memory, versus trying to do it myself.

On Windows there is a function called "VirtualProtect" which does this,
and I thought perhaps ssh-agent might be able to provide the same
functionality on UNIX.

Is this possible? If not, what is the best way to go about doing such a
thing?

---

Alternately, is it possible to use ssh-agent for encrypting/decrypting
data using a key stored inside ssh-agent?  Because this would also solve
my problem. Does libssh2 allow me to encrypt/decrypt using the
identities, similar to how it allows me to authenticate using the
identities?

---

I'm not trying to do anything on a remote machine, either. I just want
to talk to the local ssh-agent running on the same machine (for the
purpose described above.)

Thoughts?

---

Thanks in advance for your feedback / suggestions.

-Fellow Traveler

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Jul  3 21:12:28 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q63JC4K3006199;
	Tue, 3 Jul 2012 21:12:22 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q63JC237006184
 for <libssh2-devel@cool.haxx.se>; Tue, 3 Jul 2012 21:12:03 +0200
Received: (qmail 5734 invoked by uid 501); 3 Jul 2012 19:12:02 -0000
Message-ID: <20120703191202.5733.qmail@stuge.se>
Date: Tue, 3 Jul 2012 21:12:01 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Question: using ssh-agent as "protected memory" storage.
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4FF29643.9040201@rayservers.net>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4FF29643.9040201@rayservers.net>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Hi,

Fellow Traveler wrote:
> **** All I want, is to be able to store a small piece of data in
> "protected memory", and then retrieve it again later. ****

The SSH agent is a bad fit.


> is it possible to use ssh-agent for encrypting/decrypting data
> using a key stored inside ssh-agent?

No, the agent protocol (which I guess you didn't look at yet) does
not contain encrypt/decrypt operations.


> I'm not trying to do anything on a remote machine, either.

Which should tell you right away that SSH does not really fit.


> Thoughts?

gpgme and look at what the guy did who implemented protected storage
in a Linux kernel by using system management mode.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Jul 10 13:43:06 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6ABgb6S029724;
	Tue, 10 Jul 2012 13:42:57 +0200
Received: from mail-vb0-f54.google.com (mail-vb0-f54.google.com
 [209.85.212.54])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6ABgZQh029271
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Tue, 10 Jul 2012 13:42:35 +0200
Received: by vbmv11 with SMTP id v11so8279024vbm.41
 for <libssh2-devel@cool.haxx.se>; Tue, 10 Jul 2012 04:42:29 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=mime-version:date:message-id:subject:from:to:content-type
 :x-gm-message-state;
 bh=OQ/H+YP9P+r0yhY9z8rxt0GBMS/WUuz29wI24NOPbKg=;
 b=Zr5VDz2ggkomBriyCy47dKkjZAWI8c//Jo5GrHhs8cpQpzJ+R0dx73eFNTrwojWc4O
 UXKZ/X/8YCfghl4v15vTjrHJtChuFWDk8N0tr3jn3RRgOzEJkiP71fH0Tw3GnF7aJlrU
 ckorQkGV4kGJ+gW/8usRr/oLZS3TC4a2GCxgK011Cvqeg0zw0Mq77S/YqiE3XCaG2aS6
 G+McgD6x1Nobl5vQvBwFyU0n1ElmIXP3EtO1wsr3XyzGwfNb7qNFFGWCGMzisGMcmHNA
 ypn63ft0y9uVpf0drss+f6uBLFkLe+rXyFp8bj/vSkbvy5LwKbezK2UW1FIS+TO6Q3KS
 uXQw==
MIME-Version: 1.0
Received: by 10.220.106.135 with SMTP id x7mr9776707vco.28.1341920549641; Tue,
 10 Jul 2012 04:42:29 -0700 (PDT)
Received: by 10.52.161.170 with HTTP; Tue, 10 Jul 2012 04:42:29 -0700 (PDT)
Date: Tue, 10 Jul 2012 17:12:29 +0530
Message-ID: <CANxoLDdgx1P=gDCJsqdtsYpH=L7fLhv76oFw-hss9geN_9ozPw@mail.gmail.com>
Subject: Any other way to authenticate using only private key
From: Akshay Joshi <akshay.joshi@enterprisedb.com>
To: libssh2-devel@cool.haxx.se
X-Gm-Message-State: ALoCoQl94q09L9QId914Bw8Jo78110t1jXDCxJs5+ww2b2QpWPhal4Cova95NAM5evoz+ZWp+BhG
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0712136457=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============0712136457==
Content-Type: multipart/alternative; boundary=f46d043c7f2aad9dd704c47839e2

--f46d043c7f2aad9dd704c47839e2
Content-Type: text/plain; charset=ISO-8859-1

Hi

I am using "*libssh2_userauth_publickey_fromfile()*" function to
authenticate using public-private key pair. As it is mentioned in the
documentation is If libssh2 is built against OpenSSL, publickey parameter
can be set to NULL.

Why do we required to set publickey parameter if libssh2 is built against
any other SSL library. Do we have any other API so that I'll authentication
using only private key.

Do we have any other solution to this problem. Please let me know

-- 
*Akshay Joshi
Senior Software Engineer
EnterpriseDB Corporation
The Enterprise PostgreSQL Company
Phone: +91 20-3058-9522
Mobile: +91 976-788-8246*

--f46d043c7f2aad9dd704c47839e2
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hi=A0<div><br></div><div>I am using &quot;<b>libssh2_userauth_publickey_fro=
mfile()</b>&quot; function to authenticate using public-private key pair. A=
s it is mentioned in the documentation is=A0<span style=3D"font-family:sans=
-serif;background-color:rgb(255,255,255)">If libssh2 is built against OpenS=
SL, publickey parameter can be set to NULL.=A0</span></div>
<div><font face=3D"sans-serif"><br></font></div><div><font face=3D"sans-ser=
if">Why do we required to set publickey parameter if libssh2 is built again=
st any other SSL library. Do we have any other API so that I&#39;ll authent=
ication using only private key.</font></div>
<div><font face=3D"sans-serif"><br></font></div><div><font face=3D"sans-ser=
if">Do we have any other solution to this problem. Please let me know</font=
></div><div><font face=3D"sans-serif"><br></font>-- <br><div><font color=3D=
"#3333FF"><b><span style=3D"color:rgb(0,0,0);font-family:arial,sans-serif;f=
ont-size:13px;border-collapse:collapse">Akshay Joshi<br>
Senior Software Engineer=A0<br>EnterpriseDB Corporation<br>The Enterprise P=
ostgreSQL Company<br>Phone: +91 20-3058-9522<br>Mobile: +91 976-788-8246</s=
pan></b></font></div><br>
</div>

--f46d043c7f2aad9dd704c47839e2--

--===============0712136457==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============0712136457==--

From libssh2-devel-bounces@cool.haxx.se  Tue Jul 10 14:07:59 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6AC7pFk005571;
	Tue, 10 Jul 2012 14:07:57 +0200
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6AC7nTq005554
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Tue, 10 Jul 2012 14:07:49 +0200
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id q6AC7nNw005529
 for <libssh2-devel@cool.haxx.se>; Tue, 10 Jul 2012 14:07:49 +0200
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Tue, 10 Jul 2012 14:07:49 +0200 (CEST)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: Any other way to authenticate using only private key
In-Reply-To: <CANxoLDdgx1P=gDCJsqdtsYpH=L7fLhv76oFw-hss9geN_9ozPw@mail.gmail.com>
Message-ID: <alpine.DEB.2.00.1207101401040.22218@tvnag.unkk.fr>
References: <CANxoLDdgx1P=gDCJsqdtsYpH=L7fLhv76oFw-hss9geN_9ozPw@mail.gmail.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On Tue, 10 Jul 2012, Akshay Joshi wrote:

> I am using "*libssh2_userauth_publickey_fromfile()*" function to 
> authenticate using public-private key pair. As it is mentioned in the 
> documentation is If libssh2 is built against OpenSSL, publickey parameter 
> can be set to NULL.
>
> Why do we required to set publickey parameter if libssh2 is built against 
> any other SSL library. Do we have any other API so that I'll authentication 
> using only private key.

"Any other SSL library" would be another crypto library to be strict, as we 
don't use SSL... That only other crypto library we support in libssh2 is 
gcrypt. It just happens that nobody has written the necessary code in libssh2 
to allow this operation with that backend. Feel free to step forward and help 
us remove this annoying difference in functionality depending on backend 
crypto lib!

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Jul 10 16:56:47 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6AEuSPT029878;
	Tue, 10 Jul 2012 16:56:42 +0200
Received: from gator378.hostgator.com (gator378.hostgator.com
 [184.173.199.219])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6AEuQeV029824
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Tue, 10 Jul 2012 16:56:27 +0200
Received: from [173.231.110.50] (port=56844 helo=[192.168.10.194])
 by gator378.hostgator.com with esmtpa (Exim 4.77)
 (envelope-from <maxmtl2002@yahoo.ca>) id 1SobrW-0001by-Vd
 for libssh2-devel@cool.haxx.se; Tue, 10 Jul 2012 09:56:27 -0500
Message-ID: <4FFC429D.7020700@yahoo.ca>
Date: Tue, 10 Jul 2012 10:56:29 -0400
From: Maxime Larocque <maxmtl2002@yahoo.ca>
User-Agent: Mozilla/5.0 (X11; Linux i686;
 rv:13.0) Gecko/20120615 Thunderbird/13.0.1
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: PATCH - libssh2 disconnection
X-AntiAbuse: This header was added to track abuse,
 please include it with any abuse report
X-AntiAbuse: Primary Hostname - gator378.hostgator.com
X-AntiAbuse: Original Domain - cool.haxx.se
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - yahoo.ca
X-BWhitelist: no
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-Source-Sender: ([192.168.10.194]) [173.231.110.50]:56844
X-Source-Auth: max@weirdows.com
X-Email-Count: 1
X-Source-Cap: bWF4bXRsO21heG10bDtnYXRvcjM3OC5ob3N0Z2F0b3IuY29t
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Hello,

We found a problem with the disconnect process of libssh2. When used 
with Apache Mina SSHd server it aborts the connection too fast, causing 
exceptions in the SSHd server.

An OpenSSH client connection to Apache Mina SSHd does not cause the 
problem. A libssh2 connection to an OpenSSH server does not cause any 
logs in the server.

It seems that the libssh2 server does not wait for all the messages to 
be received before closing the connection, once the first message is 
received ( SSH_MSG_CHANNEL_EOF), it aborts the connection instead of 
waiting for SSH_MSG_CHANNEL_CLOSE.

It was tested with libssh2 1.4.2 (which is not yet a valid version in Trac).

The following patch resolves the problem on our system:

==================================================
--- libssh2-1.4.2/src/channel.c    2012-07-03 14:41:27.010562955 -0400
+++ libssh2-1.4.2/src/channel2.c    2012-07-03 14:41:19.098562719 -0400
@@ -2295,7 +2295,7 @@
      if (channel->close_state == libssh2_NB_state_sent) {
          /* We must wait for the remote SSH_MSG_CHANNEL_CLOSE message */

-        while (!channel->remote.close && !rc &&
+        while (!channel->remote.close && (rc >= 0) &&
                 (session->socket_state != LIBSSH2_SOCKET_DISCONNECTED))
              rc = _libssh2_transport_read(session);
      }

==================================================

_libssh2_transport_read can return:
- a negative value on error
- the message type on success

It should stay in the while loop as long as there are messages 
processed; rc>=0 is then required instead of !rc.



I tried to add it to Trac, but it said a message about being routed to 
moderation; I am not sure if it has been accepted.


Regards,

Maxime Larocque
Orthogone Technologies
Currently under contract for Accedian Networks



_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Jul 10 18:14:56 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6AGEesO018992;
	Tue, 10 Jul 2012 18:14:54 +0200
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6AGEdeA018967
 for <libssh2-devel@cool.haxx.se>; Tue, 10 Jul 2012 18:14:39 +0200
Received: (qmail 16792 invoked from network); 10 Jul 2012 16:14:38 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 10 Jul 2012 16:14:38 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 0.13dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 0.13dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Tue, 10 Jul 2012 16:14:38 -0000
X-URL: http://trac.libssh2.org/
Subject: Re: [libssh2] #210: make check and install fail on Solaris
 (OpenIndiana x86)
X-Trac-Ticket-URL: http://trac.libssh2.org/ticket/210#comment:4
Message-ID: <056.e46483333ea6714f14f98dca6df18a7c@libssh2.stuge.se>
References: <041.9be3250759a64acfab2d0aafd3ff2a89@libssh2.stuge.se>
X-Trac-Ticket-ID: 210
In-Reply-To: <041.9be3250759a64acfab2d0aafd3ff2a89@libssh2.stuge.se>
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id q6AGEdeA018967
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

#210: make check and install fail on Solaris (OpenIndiana x86)
--------------------------+-------------------
  Reporter:  dzejk        |      Owner:
      Type:  build error  |     Status:  new
  Priority:  normal       |  Milestone:  1.2.7
 Component:  tests        |    Version:  1.2.7
Resolution:               |   Keywords:
Blocked By:               |     Blocks:
--------------------------+-------------------

Comment (by dagobert):

 The usual action on Solaris is to add
 {{{
 -R<INST_DIR>/lib
 }}}

-- 
Ticket URL: <http://trac.libssh2.org/ticket/210#comment:4>
libssh2 <http://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Jul 10 18:15:01 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6AGF1SU019278;
	Tue, 10 Jul 2012 18:15:01 +0200
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6AGEx1l019265
 for <libssh2-devel@cool.haxx.se>; Tue, 10 Jul 2012 18:14:59 +0200
Received: (qmail 16854 invoked from network); 10 Jul 2012 16:14:59 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 10 Jul 2012 16:14:59 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 0.13dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 0.13dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Tue, 10 Jul 2012 16:14:59 -0000
X-URL: http://trac.libssh2.org/
Subject: [libssh2] #243: curl + libssh2 segfault with SFTP
X-Trac-Ticket-URL: http://trac.libssh2.org/ticket/243
Message-ID: <044.28553512600d306a2a2dd264c880025d@libssh2.stuge.se>
X-Trac-Ticket-ID: 243
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id q6AGEx1l019265
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

#243: curl + libssh2 segfault with SFTP
----------------------+--------------------
 Reporter:  tony2001  |       Owner:
     Type:  defect    |      Status:  new
 Priority:  normal    |   Milestone:  1.4.0
Component:  SFTP      |     Version:  1.4.1
 Keywords:            |  Blocked By:
   Blocks:            |
----------------------+--------------------
 curl is the last stable version from the cURL website (curl-7.26.0).
 libssh2 is a fresh Git checkout (libssh2-HEAD-499b22c).

 # curl -u user:password sftp://127.0.0.1

 Program received signal SIGSEGV, Segmentation fault.
 0x00007ffff62d858b in kex_method_diffie_hellman_group14_sha1_key_exchange
 (session=0x65ee60, key_state=0xb7) at kex.c:804
 804         key_state->state = libssh2_NB_state_idle;
 (gdb) bt
 #0  0x00007ffff62d858b in
 kex_method_diffie_hellman_group14_sha1_key_exchange (session=0x65ee60,
 key_state=0xb7) at kex.c:804
 #1  0x00007ffff62da721 in _libssh2_kex_exchange (session=0x65ee60,
 reexchange=0, key_state=0x66bb00) at kex.c:1759
 #2  0x00007ffff62e33c0 in session_startup (session=0x65ee60, sock=7) at
 session.c:718
 #3  0x00007ffff62e366d in libssh2_session_handshake (session=0x65ee60,
 sock=7) at session.c:796
 #4  0x00007ffff7ba0ff2 in ssh_statemach_act () from
 /tmp/libssh/lib64/libcurl.so.4
 #5  0x00007ffff7ba68c3 in ssh_easy_statemach () from
 /tmp/libssh/lib64/libcurl.so.4
 #6  0x00007ffff7ba6cb1 in ssh_connect () from
 /tmp/libssh/lib64/libcurl.so.4
 #7  0x00007ffff7b759db in Curl_protocol_connect () from
 /tmp/libssh/lib64/libcurl.so.4
 #8  0x00007ffff7b78fc0 in Curl_setup_conn () from
 /tmp/libssh/lib64/libcurl.so.4
 #9  0x00007ffff7b79143 in Curl_connect () from
 /tmp/libssh/lib64/libcurl.so.4
 #10 0x00007ffff7b89625 in connect_host () from
 /tmp/libssh/lib64/libcurl.so.4
 #11 0x00007ffff7b89902 in Curl_do_perform () from
 /tmp/libssh/lib64/libcurl.so.4
 #12 0x00007ffff7b89c6d in Curl_perform () from
 /tmp/libssh/lib64/libcurl.so.4
 #13 0x00007ffff7b8a5e5 in curl_easy_perform () from
 /tmp/libssh/lib64/libcurl.so.4
 #14 0x000000000040f688 in operate ()
 #15 0x000000000040ab3d in main ()

 ==19042== Use of uninitialised value of size 8
 ==19042==    at 0x671B58B:
 kex_method_diffie_hellman_group14_sha1_key_exchange (kex.c:804)
 ==19042==    by 0x671D720: _libssh2_kex_exchange (kex.c:1759)
 ==19042==    by 0x67263BF: session_startup (session.c:718)
 ==19042==    by 0x672666C: libssh2_session_handshake (session.c:796)
 ==19042==    by 0x4E87FF1: ssh_statemach_act (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E8D8C2: ssh_easy_statemach (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E8DCB0: ssh_connect (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E5C9DA: Curl_protocol_connect (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E5FFBF: Curl_setup_conn (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E60142: Curl_connect (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E70624: connect_host (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E70901: Curl_do_perform (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E70C6C: Curl_perform (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E715E4: curl_easy_perform (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x40F687: operate (in /tmp/libssh/bin/curl)
 ==19042==    by 0x40AB3C: main (in /tmp/libssh/bin/curl)
 ==19042==
 ==19042== Invalid write of size 4
 ==19042==    at 0x671B58B:
 kex_method_diffie_hellman_group14_sha1_key_exchange (kex.c:804)
 ==19042==    by 0x671D720: _libssh2_kex_exchange (kex.c:1759)
 ==19042==    by 0x67263BF: session_startup (session.c:718)
 ==19042==    by 0x672666C: libssh2_session_handshake (session.c:796)
 ==19042==    by 0x4E87FF1: ssh_statemach_act (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E8D8C2: ssh_easy_statemach (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E8DCB0: ssh_connect (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E5C9DA: Curl_protocol_connect (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E5FFBF: Curl_setup_conn (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E60142: Curl_connect (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E70624: connect_host (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E70901: Curl_do_perform (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E70C6C: Curl_perform (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x4E715E4: curl_easy_perform (in
 /tmp/libssh/lib64/libcurl.so.4.2.0)
 ==19042==    by 0x40F687: operate (in /tmp/libssh/bin/curl)
 ==19042==    by 0x40AB3C: main (in /tmp/libssh/bin/curl)
 ==19042==  Address 0xb7 is not stack'd, malloc'd or (recently) free'd

-- 
Ticket URL: <http://trac.libssh2.org/ticket/243>
libssh2 <http://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Jul 10 18:15:38 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6AGFbKr020414;
	Tue, 10 Jul 2012 18:15:38 +0200
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6AGFa82020381
 for <libssh2-devel@cool.haxx.se>; Tue, 10 Jul 2012 18:15:36 +0200
Received: (qmail 16938 invoked from network); 10 Jul 2012 16:15:36 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 10 Jul 2012 16:15:36 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 0.13dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 0.13dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Tue, 10 Jul 2012 16:15:36 -0000
X-URL: http://trac.libssh2.org/
Subject: [libssh2] #244: scp_send may transmit not initialised memory
X-Trac-Ticket-URL: http://trac.libssh2.org/ticket/244
Message-ID: <048.1c60c8d91bca17947e6580c5a181786c@libssh2.stuge.se>
X-Trac-Ticket-ID: 244
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id q6AGFa82020381
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

#244: scp_send may transmit not initialised memory
--------------------------+--------------------
 Reporter:  torsten.rupp  |       Owner:
     Type:  defect        |      Status:  new
 Priority:  normal        |   Milestone:  1.4.0
Component:  SCP           |     Version:  1.4.1
 Keywords:  scp_send      |  Blocked By:
   Blocks:                |
--------------------------+--------------------
 In the function scp_send() the transmission function
 _libssh2_channel_process_startup() may be called with a message size
 larger than the actual initialised message buffer. This cause with e. g.
 valgrind a warning that not initialised memory is used.

 From my analysis this is the problem:

 - at the beginning of then function scp_send() (line 787, scp.c)
 _libssh2_shell_quotedsize() is called to detect the memory space needed
 for session->scpRecv_command. This size is the _maximum_ size of the
 encoded message.

         session->scpSend_command_len =
             _libssh2_shell_quotedsize(path) + sizeof("scp -t ") +
             ((mtime || atime)?1:0);

 - the memory is allocated (line 791, scp.c)

 - the message content is formated with a snprintf()-call (line 799, scp.c)

         snprintf((char *)session->scpSend_command,
 session->scpSend_command_len,
                  "scp -%st ", (mtime || atime)?"p":"");

 - the length of the resulting string is calculate (line 802, scp.c)

         cmd_len = strlen((char *)session->scpSend_command);

 - the path parameter is added with possible quotes (line 804, scp.c)

         (void)shell_quotearg(path,
                              &session->scpSend_command[cmd_len],
                              session->scpSend_command_len - cmd_len);

 - the command is terminated with NUL character, but not necessarily at the
 right place. The quoted path string may be shorter than the previously
 calculated max. length (line 808, scp.c)

         session->scpSend_command[session->scpSend_command_len - 1] = '\0';

 - the formated message is send with the _maximum_ length, not the actual
 length (line 842, scp.c)

         rc = _libssh2_channel_process_startup(session->scpSend_channel,
 "exec",
                                               sizeof("exec") - 1,
                                               (char *)
 session->scpSend_command,
 session->scpSend_command_len);

 This cause that the called transmission function access not initialised
 memory. This may not harm as long as the receiver will respect the
 terminating NUL character in the message. But at least more data then
 necessary is transmitted (path plus some random data) and checking tools
 like e. g. valgrind report a warning.

-- 
Ticket URL: <http://trac.libssh2.org/ticket/244>
libssh2 <http://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Jul 10 18:16:01 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6AGG0tb020812;
	Tue, 10 Jul 2012 18:16:00 +0200
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6AGFw3f020779
 for <libssh2-devel@cool.haxx.se>; Tue, 10 Jul 2012 18:15:58 +0200
Received: (qmail 17047 invoked from network); 10 Jul 2012 16:15:58 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 10 Jul 2012 16:15:58 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 0.13dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 0.13dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Tue, 10 Jul 2012 16:15:58 -0000
X-URL: http://trac.libssh2.org/
Subject: [libssh2] #245: libssh2 does not handle channel_close correctly
X-Trac-Ticket-URL: http://trac.libssh2.org/ticket/245
Message-ID: <042.4e89b0dca0c943e766c9474ceb04d213@libssh2.stuge.se>
X-Trac-Ticket-ID: 245
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id q6AGFw3f020779
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

#245: libssh2 does not handle channel_close correctly
----------------------+--------------------
 Reporter:  maxmtl    |       Owner:
     Type:  defect    |      Status:  new
 Priority:  normal    |   Milestone:  1.4.0
Component:  protocol  |     Version:  1.4.1
 Keywords:            |  Blocked By:
   Blocks:            |
----------------------+--------------------
 libssh2 does not wait for the CHANNEL_CLOSE message from the server before
 closing the socket. It closes the socket as soon as any message has been
 received (e.g. CHANNEL_EOF or CHANNEL_REQUEST).

 The problem has been seen with libssh2 example sftp_write.c when
 communicating with the Apache Mina sshd server. Some exceptions about
 Connection Reset were displayed. The problem was not present using either
 the OpenSsh client or server applications.

 The attached patch corrects the problem; in channel.c / _channel_close(),
 _libssh2_transport_read is used to wait for the CHANNEL_CLOSE message. Its
 return value is validated using !rc, however when a message is received
 the return value is set to the actual message type, so (rc >= 0) should be
 used instead of (!rc).

 It may be related to issues 236 and 239, since some messages may not be
 parsed (CHANNEL_REQUEST:exit_status, for example).

 Tested with version 1.4.2; however this value was not available in the
 choices...

 (Debugging done under contract for Accedian Networks)

-- 
Ticket URL: <http://trac.libssh2.org/ticket/245>
libssh2 <http://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Jul 12 14:09:37 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6CC94cL020169;
	Thu, 12 Jul 2012 14:09:27 +0200
Received: from mail-vc0-f182.google.com (mail-vc0-f182.google.com
 [209.85.220.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6CC90Zm019834
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Thu, 12 Jul 2012 14:09:01 +0200
Received: by vcbf1 with SMTP id f1so1399304vcb.41
 for <libssh2-devel@cool.haxx.se>; Thu, 12 Jul 2012 05:08:54 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=mime-version:date:message-id:subject:from:to:content-type
 :x-gm-message-state;
 bh=X6doyLChs1DaPxHrsL7cJDIgp+sf6lTf3Z13y2ji+ww=;
 b=TUSYBRJMbDoqhi4w/LObR+ALimIwz3al8ey6F9n5QxKOFvwsXuYB8ENlIAA7wIwEKo
 glBX18qTvgzockpnkckJs7W80Tq1dyv2P8ek2HcItMR+5NuSncg1pCu/KUIDgJWc//sM
 k6t2By9/ls1F8OlHWaAgOkbefe8Fb9dtStYDAINSQteL6bodioowUramr8MVUV95jvvr
 BGo5aD6JCuqgpmfFiwRSk85RP42lO3UbNv2vPypOP7Qb2Qo/BBuGlE8Pq756fvceV0aF
 UT7/6HaQIYD1mREn1Yzt5SAzFGHPuNnBUW5SD7qRLo+MY03JhAr8vG/iPBFlRhAkWunK
 I4Yg==
MIME-Version: 1.0
Received: by 10.220.8.17 with SMTP id f17mr469196vcf.11.1342094934544; Thu, 12
 Jul 2012 05:08:54 -0700 (PDT)
Received: by 10.52.161.170 with HTTP; Thu, 12 Jul 2012 05:08:54 -0700 (PDT)
Date: Thu, 12 Jul 2012 17:38:54 +0530
Message-ID: <CANxoLDfE6sy4B-i+xT6E5mfKu1s8NNV6JV9TNv_=zOK4bm-mVg@mail.gmail.com>
Subject: How do I identify crypto library linked with libssh2.so
From: Akshay Joshi <akshay.joshi@enterprisedb.com>
To: libssh2-devel@cool.haxx.se
X-Gm-Message-State: ALoCoQmy4GwYwTuZnoW6kGHsE1VROzCOr5qb3j8Qi2C6C5eLKMK0lb4DijhDzv3f10+GJlXElIAF
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1703843323=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============1703843323==
Content-Type: multipart/alternative; boundary=bcaec54ee598d412d604c4a0d304

--bcaec54ee598d412d604c4a0d304
Content-Type: text/plain; charset=ISO-8859-1

Hi

How do I identify which crypto (libcrypto or libgcrypt) library is linked
with libssh2.so?

-- 
*Akshay Joshi
Senior Software Engineer
EnterpriseDB Corporation
The Enterprise PostgreSQL Company
Phone: +91 20-3058-9522
Mobile: +91 976-788-8246*

--bcaec54ee598d412d604c4a0d304
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hi=A0<div><br></div><div>How do I identify which crypto (libcrypto or libgc=
rypt) library is linked with libssh2.so?</div><div><div><br></div>-- <br><d=
iv><font color=3D"#3333FF"><b><span style=3D"color:rgb(0,0,0);font-family:a=
rial,sans-serif;font-size:13px;border-collapse:collapse">Akshay Joshi<br>
Senior Software Engineer=A0<br>EnterpriseDB Corporation<br>The Enterprise P=
ostgreSQL Company<br>Phone: +91 20-3058-9522<br>Mobile: +91 976-788-8246</s=
pan></b></font></div><br>
</div>

--bcaec54ee598d412d604c4a0d304--

--===============1703843323==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1703843323==--

From libssh2-devel-bounces@cool.haxx.se  Thu Jul 12 14:48:30 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6CCmP12004354;
	Thu, 12 Jul 2012 14:48:28 +0200
Received: from vps1.hno.se (vps1.hno.se [IPv6:2a02:750:5::f0])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6CCkjcn002431
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Thu, 12 Jul 2012 14:46:46 +0200
Received: from home.hno.se (home.hno.se [IPv6:2001:16d8:ff00:8540::1])
 (authenticated bits=128)
 by vps1.hno.se (8.14.4/8.14.4) with ESMTP id q6CCkOJd008044
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
 for <libssh2-devel@cool.haxx.se>; Thu, 12 Jul 2012 14:46:46 +0200
Received: from [127.0.0.1] (localhost.localdomain [127.0.0.1])
 by home.hno.se (8.14.5/8.14.5) with ESMTP id q6CCkN4F029343
 for <libssh2-devel@cool.haxx.se>; Thu, 12 Jul 2012 14:46:23 +0200
Message-ID: <1342097183.28895.3.camel@home.hno.se>
Subject: Re: How do I identify crypto library linked with libssh2.so
From: Henrik =?ISO-8859-1?Q?Nordstr=F6m?= <henrik@henriknordstrom.net>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Date: Thu, 12 Jul 2012 14:46:23 +0200
In-Reply-To: <CANxoLDfE6sy4B-i+xT6E5mfKu1s8NNV6JV9TNv_=zOK4bm-mVg@mail.gmail.com>
References: <CANxoLDfE6sy4B-i+xT6E5mfKu1s8NNV6JV9TNv_=zOK4bm-mVg@mail.gmail.com>
X-Mailer: Evolution 3.2.3 (3.2.3-3.fc16) 
Mime-Version: 1.0
X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00
 autolearn=ham version=3.3.2
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on home.hno.se
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

tor 2012-07-12 klockan 17:38 +0530 skrev Akshay Joshi:

> How do I identify which crypto (libcrypto or libgcrypt) library is
> linked with libssh2.so?

ldd /path/to/libssh2.so should work on most UNIX like systems. 

There is currently no libssh2 API call that tells you which crypto
library it's built with. But you can probe and guess by trying to load
an encrypted key file. If successful then it's most likely OpenSSL
libcrypto.

Regards
Henrik


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Jul 12 18:13:32 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6CGD7kq025051;
	Thu, 12 Jul 2012 18:13:24 +0200
Received: from mail-qa0-f47.google.com (mail-qa0-f47.google.com
 [209.85.216.47])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6CGD41k024847
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Thu, 12 Jul 2012 18:13:05 +0200
Received: by qabg1 with SMTP id g1so3857222qab.20
 for <libssh2-devel@cool.haxx.se>; Thu, 12 Jul 2012 09:12:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=ideadevice.com; s=google;
 h=mime-version:date:message-id:subject:from:to:content-type;
 bh=FXa/U8gIxveZ2okG8RudX86hQ16qy03T/09J/WurUiw=;
 b=TqRboGAhTQDv249fp4sRW6X08hRJlpzMkeuAiiXfoxIuq08bzLlh6taZv0xZ/ovvV5
 zpJyFbyvZMU2T6xUahEBsyn9RetvXMuu6WTmtLBFW3VTJ62Vt7Kpbn7pRFFTah4SU0k3
 5ZY69R37wnq2Vi64lXkZUwW2AcSuX9oxtc/Tk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=mime-version:date:message-id:subject:from:to:content-type
 :x-gm-message-state;
 bh=FXa/U8gIxveZ2okG8RudX86hQ16qy03T/09J/WurUiw=;
 b=SyA0ehIKvIDcF2BVMrXyq6iEQITkeE7HStebfz/5a+ygwSmK6T6hkeboYdVm4YdmbZ
 MYkKq2zhO3o+S/exy8iudO9GbAbVBNM0mA4/mWZcrILADNSn+KJbIgGBj+UY076do+io
 Cl/Bg1jhybuoMv4sHYkSuYvZAbZDYvaw0UztimiyjiE147Fwp9+dIv5Y4lG9YYP5Iu4E
 C7Vaq66gb0SIc7XXKj+9NRsCMUWIvtH7WEOZKyNTaRL5COkrFOKlSs0LOexZO/MQmQ5P
 b5QPDTEflhYyiEOv2ewcF2D350pWtNsDvhDO01NIuUdkPrOiVxFxIqrVdxD+06q1ABBn
 GlfA==
MIME-Version: 1.0
Received: by 10.229.69.6 with SMTP id x6mr18837747qci.52.1342109579530; Thu,
 12 Jul 2012 09:12:59 -0700 (PDT)
Received: by 10.229.153.193 with HTTP; Thu, 12 Jul 2012 09:12:59 -0700 (PDT)
Date: Thu, 12 Jul 2012 21:42:59 +0530
Message-ID: <CAG+SKy4nwzA8uJKQt55KgiQGayV4XyEd_zjhCDcR9vror-jNBQ@mail.gmail.com>
Subject: weird libssh2_channel_get_exit_status behaviour
From: aalok sood <aalok@ideadevice.com>
To: libssh2-devel@cool.haxx.se
X-Gm-Message-State: ALoCoQnIDbkx0+Dk2Yq7WQiLMRfzzV8qKysX5ZxvfSyC3uV3fNwoklWjEr4Xs5SVshiI32BdB94R
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0299336295=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============0299336295==
Content-Type: multipart/alternative; boundary=0021cc0229c6bcd1f304c4a43c75

--0021cc0229c6bcd1f304c4a43c75
Content-Type: text/plain; charset=ISO-8859-1

libssh2_channel_get_exit_status documentation says that it returns 0 on
error

How do I distinguish between and an Error and a exit_status of 0


If I kill the remote process, I get exit_status as 0
if the command terminates successfully (it exits with exitstatus 0), I get
exit_status as 0


I am not sure how I can handle the case where in the remote process running
the command got killed?


Regards
Aalok

--0021cc0229c6bcd1f304c4a43c75
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

libssh2_channel_get_exit_status documentation says that it returns 0 on err=
or<div><br></div><div>How do I distinguish between and an Error and a exit_=
status of 0</div><div><br></div><div><br></div><div>If I kill the remote pr=
ocess, I get exit_status as 0</div>
<div>if the command terminates successfully (it exits with exitstatus 0), I=
 get exit_status as 0</div><div><br></div><div><br></div><div>I am not sure=
 how I can handle the case where in the remote process running the command =
got killed?</div>
<div><br></div><div><br></div><div>Regards<br>Aalok</div>

--0021cc0229c6bcd1f304c4a43c75--

--===============0299336295==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============0299336295==--

From libssh2-devel-bounces@cool.haxx.se  Thu Jul 12 18:44:45 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6CGidAD032136;
	Thu, 12 Jul 2012 18:44:43 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q6CGibDp032117
 for <libssh2-devel@cool.haxx.se>; Thu, 12 Jul 2012 18:44:37 +0200
Received: (qmail 4809 invoked by uid 501); 12 Jul 2012 16:44:38 -0000
Message-ID: <20120712164438.4808.qmail@stuge.se>
Date: Thu, 12 Jul 2012 18:44:38 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: weird libssh2_channel_get_exit_status behaviour
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <CAG+SKy4nwzA8uJKQt55KgiQGayV4XyEd_zjhCDcR9vror-jNBQ@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CAG+SKy4nwzA8uJKQt55KgiQGayV4XyEd_zjhCDcR9vror-jNBQ@mail.gmail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

aalok sood wrote:
> libssh2_channel_get_exit_status documentation says that it returns 0
> on error
> 
> How do I distinguish between and an Error and a exit_status of 0

You can't. libssh2 would have to be extended in order to tell exit
status 0 from an error. Feel free to do this and propose a patch.


> I am not sure how I can handle the case where in the remote process
> running the command got killed?

This is a separate question, and the answer is that you can only do
this by making the remote process handle the signal it gets sent, and
exit with a special exit code, which signals that it was killed.

Note that you can not handle SIGKILL. I am unsure what happens for
that case, but I am also curious to know so please try it out and let
us know.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul 14 21:21:58 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6EJLNi9006542;
	Sat, 14 Jul 2012 21:21:48 +0200
Received: from mail-qc0-f182.google.com (mail-qc0-f182.google.com
 [209.85.216.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6EJLKug006370
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Sat, 14 Jul 2012 21:21:21 +0200
Received: by qcsg15 with SMTP id g15so2678584qcs.41
 for <libssh2-devel@cool.haxx.se>; Sat, 14 Jul 2012 12:21:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=ideadevice.com; s=google;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :content-type; bh=oFyauTUp7yTH/iT+m+YEILaVIWKyWopULBiHwRKn6uI=;
 b=S1nRGadjyhwNvgIuzqwP8sW3tp8JfHzrOtLHQF3CBreK8fteaHE5SSx/Lmp9Hc165u
 WgCFv4fHcWCB2qRSKlKTG8muAcgyPGW2uYOLPCiDewS59gSFufnwvN5JlZYV8d0po3/0
 nVfMGJ9LWAsK9JFkvXBIns953ENY122q+dcSs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :content-type:x-gm-message-state;
 bh=oFyauTUp7yTH/iT+m+YEILaVIWKyWopULBiHwRKn6uI=;
 b=npfC4xTuN+2p7UeQbxH8jo2jPn2jGdxCem9iw4gLkJmGK1S/TQy9BK+QeZpunvgCtz
 UNzEuKXaQnAdSazcFaHG2Owr/fdPTaz2tGcXOnvDEh9ux5/MWNJdbgTtPxIIx4j7qDoa
 M6EXpkopOCP9Smgl0hHc6kgNU48kmg1stQEJUlHam3tnmgk9wc+iDSEp7B982yrqy14p
 7VugdFbhRVa0GLyckX0DpiiuZPRNs3qkrhluxfQo2GEsr1r2bnGtpmMYPzmrfthRp00K
 HF0FEI/HoUZ+WSznma9X4vmGUUZUWe5TGhNHesqkuT790NKTIq4OK7Gr3EeprzhlVvSu
 UX1w==
MIME-Version: 1.0
Received: by 10.224.58.201 with SMTP id i9mr11478958qah.39.1342293675317; Sat,
 14 Jul 2012 12:21:15 -0700 (PDT)
Received: by 10.229.153.193 with HTTP; Sat, 14 Jul 2012 12:21:15 -0700 (PDT)
In-Reply-To: <mailman.5.1342173602.27188.libssh2-devel@cool.haxx.se>
References: <mailman.5.1342173602.27188.libssh2-devel@cool.haxx.se>
Date: Sun, 15 Jul 2012 00:51:15 +0530
Message-ID: <CAG+SKy65c5+puu-k432QKJnrYGfBOivQmFubKn9Mv4n1ca8ksA@mail.gmail.com>
Subject: Re: libssh2-devel Digest, Vol 38, Issue 5
From: aalok sood <aalok@ideadevice.com>
To: libssh2-devel@cool.haxx.se
X-Gm-Message-State: ALoCoQnYV2hdMapBWYZuveJRONlpQpPRdfWZHc1oFj4c7Ht5xrpbGnA8gE2vbxapYLk/u8MhFA6W
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============2100427255=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============2100427255==
Content-Type: multipart/alternative; boundary=20cf3074b466b3992304c4cf19d0

--20cf3074b466b3992304c4cf19d0
Content-Type: text/plain; charset=ISO-8859-1

Thank you Peter for your time and help.

Here is a extract from channel.c
/*
 * libssh2_channel_get_exit_status
 *
 * Return the channel's program exit status. Note that the actual protocol
 * provides the full 32bit this function returns.  We cannot abuse it to
 * return error values in case of errors so we return a zero if channel is
 * NULL.
 */


Now this makes sense, but sending back zero seems peculiar to me.
zero is a valid shell exit code, so we should send back something out of
valid
shell exit codes in case channel is None.
How about -1?

I have tried the SIGKILL, I get back a zero
from  libssh2_channel_get_exit_status()

Once again, thanks a lot for your help.

Regards
Aalok



>
> ------------------------------
>
> Message: 4
> Date: Thu, 12 Jul 2012 18:44:38 +0200
> From: Peter Stuge <peter@stuge.se>
> To: libssh2-devel@cool.haxx.se
> Subject: Re: weird libssh2_channel_get_exit_status behaviour
> Message-ID: <20120712164438.4808.qmail@stuge.se>
> Content-Type: text/plain; charset=us-ascii
>
> aalok sood wrote:
> > libssh2_channel_get_exit_status documentation says that it returns 0
> > on error
> >
> > How do I distinguish between and an Error and a exit_status of 0
>
> You can't. libssh2 would have to be extended in order to tell exit
> status 0 from an error. Feel free to do this and propose a patch.
>
>
> > I am not sure how I can handle the case where in the remote process
> > running the command got killed?
>
> This is a separate question, and the answer is that you can only do
> this by making the remote process handle the signal it gets sent, and
> exit with a special exit code, which signals that it was killed.
>
> Note that you can not handle SIGKILL. I am unsure what happens for
> that case, but I am also curious to know so please try it out and let
> us know.
>
>
> //Peter
>
>
> ------------------------------
>
> _______________________________________________
> libssh2-devel mailing list
> libssh2-devel@cool.haxx.se
> http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>
>
> End of libssh2-devel Digest, Vol 38, Issue 5
> ********************************************
>

--20cf3074b466b3992304c4cf19d0
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div>Thank you Peter for your time and help.</div><div><br></div><div>Here =
is a extract from channel.c</div><div>/*</div><div>=A0* libssh2_channel_get=
_exit_status</div><div>=A0*</div><div>=A0* Return the channel&#39;s program=
 exit status. Note that the actual protocol</div>
<div>=A0* provides the full 32bit this function returns. =A0We cannot abuse=
 it to</div><div>=A0* return error values in case of errors so we return a =
zero if channel is</div><div>=A0* NULL.</div><div>=A0*/</div><div><br></div=
><div>
<br></div><div>Now this makes sense, but sending back zero seems peculiar t=
o me.</div><div>zero is a valid shell exit code, so we should send back som=
ething out of valid=A0</div><div>shell exit codes in case channel is None.<=
/div>
<div>How about -1?</div><div><br></div><div>I have tried the SIGKILL, I get=
 back a zero from=A0=A0libssh2_channel_get_exit_status()</div><div><br></di=
v><div>Once again, thanks a lot for your help.=A0</div><div><br></div><div>=
Regards</div>
<div>Aalok</div><div><br></div><div><br></div><div class=3D"gmail_quote"><b=
lockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px =
#ccc solid;padding-left:1ex">=A0 =A0=A0<br><br>
------------------------------<br>
<br>
Message: 4<br>
Date: Thu, 12 Jul 2012 18:44:38 +0200<br>
From: Peter Stuge &lt;<a href=3D"mailto:peter@stuge.se" target=3D"_blank">p=
eter@stuge.se</a>&gt;<br>
To: <a href=3D"mailto:libssh2-devel@cool.haxx.se" target=3D"_blank">libssh2=
-devel@cool.haxx.se</a><br>
Subject: Re: weird libssh2_channel_get_exit_status behaviour<br>
Message-ID: &lt;<a href=3D"mailto:20120712164438.4808.qmail@stuge.se" targe=
t=3D"_blank">20120712164438.4808.qmail@stuge.se</a>&gt;<br>
Content-Type: text/plain; charset=3Dus-ascii<br>
<br>
aalok sood wrote:<br>
&gt; libssh2_channel_get_exit_status documentation says that it returns 0<b=
r>
&gt; on error<br>
&gt;<br>
&gt; How do I distinguish between and an Error and a exit_status of 0<br>
<br>
You can&#39;t. libssh2 would have to be extended in order to tell exit<br>
status 0 from an error. Feel free to do this and propose a patch.<br>
<br>
<br>
&gt; I am not sure how I can handle the case where in the remote process<br=
>
&gt; running the command got killed?<br>
<br>
This is a separate question, and the answer is that you can only do<br>
this by making the remote process handle the signal it gets sent, and<br>
exit with a special exit code, which signals that it was killed.<br>
<br>
Note that you can not handle SIGKILL. I am unsure what happens for<br>
that case, but I am also curious to know so please try it out and let<br>
us know.<br>
<br>
<br>
//Peter<br>
<br>
<br>
------------------------------<br>
<br>
_______________________________________________<br>
libssh2-devel mailing list<br>
<a href=3D"mailto:libssh2-devel@cool.haxx.se" target=3D"_blank">libssh2-dev=
el@cool.haxx.se</a><br>
<a href=3D"http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel" targ=
et=3D"_blank">http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel</a=
><br>
<br>
<br>
End of libssh2-devel Digest, Vol 38, Issue 5<br>
********************************************<br>
</blockquote></div><br>

--20cf3074b466b3992304c4cf19d0--

--===============2100427255==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============2100427255==--

From libssh2-devel-bounces@cool.haxx.se  Sun Jul 15 22:21:30 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6FKKuN1006511;
	Sun, 15 Jul 2012 22:21:18 +0200
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6FKKtNG006481
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Sun, 15 Jul 2012 22:20:55 +0200
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id q6FKKtKf006475
 for <libssh2-devel@cool.haxx.se>; Sun, 15 Jul 2012 22:20:55 +0200
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Sun, 15 Jul 2012 22:20:55 +0200 (CEST)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: clang-analyzer scans
Message-ID: <alpine.DEB.2.00.1207152220160.5683@tvnag.unkk.fr>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Hi friends,

I've made sure that my clang-analyzer scans of libssh2 are running again. See

 	http://libssh2.org/scans/

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sun Jul 15 23:55:55 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6FLtcSh015878;
	Sun, 15 Jul 2012 23:55:50 +0200
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6FLtako015864
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Sun, 15 Jul 2012 23:55:36 +0200
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id q6FLtape015859
 for <libssh2-devel@cool.haxx.se>; Sun, 15 Jul 2012 23:55:36 +0200
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Sun, 15 Jul 2012 23:55:36 +0200 (CEST)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2_channel_get_exit_status
In-Reply-To: <CAG+SKy65c5+puu-k432QKJnrYGfBOivQmFubKn9Mv4n1ca8ksA@mail.gmail.com>
Message-ID: <alpine.DEB.2.00.1207152353050.5683@tvnag.unkk.fr>
References: <mailman.5.1342173602.27188.libssh2-devel@cool.haxx.se>
 <CAG+SKy65c5+puu-k432QKJnrYGfBOivQmFubKn9Mv4n1ca8ksA@mail.gmail.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On Sun, 15 Jul 2012, aalok sood wrote:

> * libssh2_channel_get_exit_status
>
> Now this makes sense, but sending back zero seems peculiar to me. zero is a 
> valid shell exit code, so we should send back something out of valid shell 
> exit codes in case channel is None. How about -1?

We should rather make a new function that has a prototype like:

  LIBSSH2_API int
  libssh2_channel_get_exit_status2(LIBSSH2_CHANNEL *channel, uint32_t *status)

Which then can return the proper value from the protocol in a value separate 
from the return code. Wouldn't that work fine for you?

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Jul 16 12:15:53 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6GAFQax032353;
	Mon, 16 Jul 2012 12:15:46 +0200
Received: from mail-qc0-f182.google.com (mail-qc0-f182.google.com
 [209.85.216.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6GAFNYs032324
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Jul 2012 12:15:24 +0200
Received: by qcsg15 with SMTP id g15so3123771qcs.41
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Jul 2012 03:15:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=ideadevice.com; s=google;
 h=mime-version:date:message-id:subject:from:to:content-type;
 bh=KOqQI7iqZoWkMDBFw4cGv0pKcbVwPaiLlBn6LvrwIWc=;
 b=UY/twJngGXvrV68Qft7KXkzBGsgbHqmZPPAquwfSxuEzVTRVbLMAdAy41rhZOXhX/i
 4PDyLGiUM+xWEfpXMGougrNVTymmFJagP3242LLt9txnM1CDFzTzFP+swbR94HtU9281
 jgRHtNyp9d/pCQrGUMjzxEgSfKYU2JJvhmSKI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=mime-version:date:message-id:subject:from:to:content-type
 :x-gm-message-state;
 bh=KOqQI7iqZoWkMDBFw4cGv0pKcbVwPaiLlBn6LvrwIWc=;
 b=gWt+bEzxeICQ23ezhk43abq7BONpLXvivOVbzUSX+lr25Lkc55Oayyfb/5EuAl28ei
 YFpYNnfySCP+AWBcTE1spdvuvpChOSVDSaLLMoIiaH3vlPc5wAywRrWuek6bZQegHwPG
 8D2q+bchnInfgD7fAwKHNAMikFRFVcxt7G69Nha+LwK0dx4hJoJfuH69Ueu7S5J7SYHR
 lV5zL0Lr41FdpWJ9UmeJWhFSCTb+LWsiiKoTAdyVX1b6yuTsyGoJcHaPCQpK7qlaUMJP
 k1HML2BmRKR57X1UiKmtyIc8oTejvWnrgkiXvsFahHmhy4QK57sEYSNsZcY+2t0F3FXE
 9bVQ==
MIME-Version: 1.0
Received: by 10.224.175.8 with SMTP id v8mr20104016qaz.47.1342433717613; Mon,
 16 Jul 2012 03:15:17 -0700 (PDT)
Received: by 10.229.153.193 with HTTP; Mon, 16 Jul 2012 03:15:17 -0700 (PDT)
Date: Mon, 16 Jul 2012 15:45:17 +0530
Message-ID: <CAG+SKy5o_0hJYHWhLSMWS2O9LWHzniHWUKYe0jYrFYpQP5mg1w@mail.gmail.com>
Subject: Re: libssh2_channel_get_exit_status (Daniel Stenberg)
From: aalok sood <aalok@ideadevice.com>
To: libssh2-devel@cool.haxx.se
X-Gm-Message-State: ALoCoQmLKiCTvLea5FvpcwSt/tiG7fEDTWBQEtw2u4CGDGwFvJkzKuiZ1t5UDBk+EeJ9OqjBJIYB
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1206829703=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============1206829703==
Content-Type: multipart/alternative; boundary=485b397dd729df732b04c4efb4f7

--485b397dd729df732b04c4efb4f7
Content-Type: text/plain; charset=ISO-8859-1

Yes Daniel I agree with you.

It would be better than modifying libssh2_channel_get_exit_status.
Also keeping the fetch status in a separate field from the actual shell
exit_status  would be a better, more clear api.

I will add the api and send in a patch.

-(Aalok)-



> Message: 2
> Date: Sun, 15 Jul 2012 23:55:36 +0200 (CEST)
> From: Daniel Stenberg <daniel@haxx.se>
> To: libssh2 development <libssh2-devel@cool.haxx.se>
> Subject: Re: libssh2_channel_get_exit_status
> Message-ID: <alpine.DEB.2.00.1207152353050.5683@tvnag.unkk.fr>
> Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
>
> On Sun, 15 Jul 2012, aalok sood wrote:
>
> > * libssh2_channel_get_exit_status
> >
> > Now this makes sense, but sending back zero seems peculiar to me. zero
> is a
> > valid shell exit code, so we should send back something out of valid
> shell
> > exit codes in case channel is None. How about -1?
>
> We should rather make a new function that has a prototype like:
>
>   LIBSSH2_API int
>   libssh2_channel_get_exit_status2(LIBSSH2_CHANNEL *channel, uint32_t
> *status)
>
> Which then can return the proper value from the protocol in a value
> separate
> from the return code. Wouldn't that work fine for you?
>
> --
>
>

>   / daniel.haxx.se
>
>
> ------------------------------
>
> _______________________________________________
> libssh2-devel mailing list
> libssh2-devel@cool.haxx.se
> http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>
>
> End of libssh2-devel Digest, Vol 38, Issue 7
> ********************************************
>

--485b397dd729df732b04c4efb4f7
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div class=3D"gmail_quote"><div>Yes Daniel I agree with you.</div><div><br>=
</div><div>It would be better than modifying=A0libssh2_channel_get_exit_sta=
tus.</div><div>Also keeping the fetch status in a separate field from the a=
ctual shell exit_status =A0would be a better, more clear api.</div>
<div><br></div><div>I will add the api and send in a patch.</div><div><br><=
/div><div>-(Aalok)-</div><div><br></div><div>=A0</div><blockquote class=3D"=
gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-=
left:1ex">
Message: 2<br>
Date: Sun, 15 Jul 2012 23:55:36 +0200 (CEST)<br>
From: Daniel Stenberg &lt;<a href=3D"mailto:daniel@haxx.se">daniel@haxx.se<=
/a>&gt;<br>
To: libssh2 development &lt;<a href=3D"mailto:libssh2-devel@cool.haxx.se">l=
ibssh2-devel@cool.haxx.se</a>&gt;<br>
Subject: Re: libssh2_channel_get_exit_status<br>
Message-ID: &lt;<a href=3D"mailto:alpine.DEB.2.00.1207152353050.5683@tvnag.=
unkk.fr">alpine.DEB.2.00.1207152353050.5683@tvnag.unkk.fr</a>&gt;<br>
Content-Type: TEXT/PLAIN; charset=3DUS-ASCII; format=3Dflowed<br>
<br>
On Sun, 15 Jul 2012, aalok sood wrote:<br>
<br>
&gt; * libssh2_channel_get_exit_status<br>
&gt;<br>
&gt; Now this makes sense, but sending back zero seems peculiar to me. zero=
 is a<br>
&gt; valid shell exit code, so we should send back something out of valid s=
hell<br>
&gt; exit codes in case channel is None. How about -1?<br>
<br>
We should rather make a new function that has a prototype like:<br>
<br>
=A0 LIBSSH2_API int<br>
=A0 libssh2_channel_get_exit_status2(LIBSSH2_CHANNEL *channel, uint32_t *st=
atus)<br>
<br>
Which then can return the proper value from the protocol in a value separat=
e<br>
from the return code. Wouldn&#39;t that work fine for you?<br>
<br>
--<br>
<br></blockquote><div>=A0</div><blockquote class=3D"gmail_quote" style=3D"m=
argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
=A0 / <a href=3D"http://daniel.haxx.se" target=3D"_blank">daniel.haxx.se</a=
><br>
<br>
<br>
------------------------------<br>
<br>
_______________________________________________<br>
libssh2-devel mailing list<br>
<a href=3D"mailto:libssh2-devel@cool.haxx.se">libssh2-devel@cool.haxx.se</a=
><br>
<a href=3D"http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel" targ=
et=3D"_blank">http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel</a=
><br>
<br>
<br>
End of libssh2-devel Digest, Vol 38, Issue 7<br>
********************************************<br>
</blockquote></div><br>

--485b397dd729df732b04c4efb4f7--

--===============1206829703==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1206829703==--

From libssh2-devel-bounces@cool.haxx.se  Mon Jul 16 13:04:44 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6GB4YJt007455;
	Mon, 16 Jul 2012 13:04:42 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q6GB4V4p007446
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Jul 2012 13:04:32 +0200
Received: (qmail 8471 invoked by uid 501); 16 Jul 2012 11:04:32 -0000
Message-ID: <20120716110432.8470.qmail@stuge.se>
Date: Mon, 16 Jul 2012 13:04:32 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2_channel_get_exit_status (Daniel Stenberg)
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <CAG+SKy5o_0hJYHWhLSMWS2O9LWHzniHWUKYe0jYrFYpQP5mg1w@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CAG+SKy5o_0hJYHWhLSMWS2O9LWHzniHWUKYe0jYrFYpQP5mg1w@mail.gmail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

aalok sood wrote:
> I will add the api and send in a patch.

Remember to include documentation.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Jul 19 14:02:24 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6JC1ekY007225;
	Thu, 19 Jul 2012 14:01:58 +0200
Received: from smtpbg56.qq.com (smtpbg56.qq.com [64.71.138.45])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q6JC1Yek007007
 for <libssh2-devel@cool.haxx.se>; Thu, 19 Jul 2012 14:01:36 +0200
X-QQ-SSF: 000000000000003000000000000000Z
X-HAS-ATTACH: no
X-QQ-BUSINESS-ORIGIN: 2
X-Originating-IP: 121.14.119.24
X-QQ-STYLE: 
X-QQ-mid: webmail612t1342699283t2663624
From: "=?gb18030?B?o8Wj9qPlo/I=?=" <unix@vip.qq.com>
To: "=?gb18030?B?bGlic3NoMi1kZXZlbA==?=" <libssh2-devel@cool.haxx.se>
Subject: libssh2.a static linking problem
Mime-Version: 1.0
Date: Thu, 19 Jul 2012 20:01:23 +0800
X-Priority: 3
Message-ID: <tencent_2C4571327B4DAC986BCEEC70@qq.com>
X-QQ-MIME: TCMime 1.0 by Tencent
X-Mailer: QQMail 2.x
X-QQ-Mailer: QQMail 2.x
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1671034136=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

This is a multi-part message in MIME format.

--===============1671034136==
Content-Type: multipart/alternative;
	boundary="----=_NextPart_5007F713_D593EFB0_1E98B8C9"
Content-Transfer-Encoding: 8Bit

This is a multi-part message in MIME format.

------=_NextPart_5007F713_D593EFB0_1E98B8C9
Content-Type: text/plain;
	charset="gb18030"
Content-Transfer-Encoding: base64

d2hlbiBJIGV4ZWN1dGUNCmdjYyAtV2FsbCAtV2wsLWFzLW5lZWRlZCAtbyBzc2hfZXhlYyBz
c2gyX2V4ZWMuYyAgLUkvdXNyL2xvY2FsL2xpYnNzaDIvaW5jbHVkZSAtTC91c3IvbG9jYWwv
bGlic3NoMi9saWIvIC1ML2xpYjY0ICAtV2wsLUJzdGF0aWMgLWxzc2gyIC1XbCwtQmR5bmFt
aWMgLWxwdGhyZWFkDQpjbWQsSSBnb3QgdGhlIGZvbGxvd2luZyB0ZXh0LGJ1dCB3aGVuIEkg
dXNlIHRoZSBzaGFyZSBsaWIsdGhhdCBpcyBvay4NCi91c3IvbG9jYWwvbGlic3NoMi9saWIv
L2xpYnNzaDIuYShjaGFubmVsLm8pOiBJbiBmdW5jdGlvbiBgY2hhbm5lbF94MTFfcmVxJzoN
Ci9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2NoYW5uZWwuYzoxMTM4
OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBSQU5EX2J5dGVzJw0KL3Vzci9sb2NhbC9saWJz
c2gyL2xpYi8vbGlic3NoMi5hKGhvc3RrZXkubyk6IEluIGZ1bmN0aW9uIGBob3N0a2V5X21l
dGhvZF9zc2hfZHNzX2R0b3InOg0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQu
Mi9zcmMvaG9zdGtleS5jOjM4MzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRFNBX2ZyZWUn
DQovdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEoaG9zdGtleS5vKTogSW4gZnVu
Y3Rpb24gYGhvc3RrZXlfbWV0aG9kX3NzaF9kc3Nfc2lnbnYnOg0KL2hvbWUvZXZlci9Eb3du
bG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvaG9zdGtleS5jOjM1ODogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgRVZQX2dldF9kaWdlc3RieW5hbWUnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9s
aWJzc2gyLTEuNC4yL3NyYy9ob3N0a2V5LmM6MzU4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv
IGBFVlBfRGlnZXN0SW5pdCcNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIv
c3JjL2hvc3RrZXkuYzozNjA6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RV
cGRhdGUnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9ob3N0a2V5
LmM6MzYyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0RmluYWwnDQovdXNy
L2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEoaG9zdGtleS5vKTogSW4gZnVuY3Rpb24g
YGhvc3RrZXlfbWV0aG9kX3NzaF9kc3NfZHRvcic6DQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9s
aWJzc2gyLTEuNC4yL3NyYy9ob3N0a2V5LmM6MzgzOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv
IGBEU0FfZnJlZScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2hv
c3RrZXkuYzozODM6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYERTQV9mcmVlJw0KL3Vzci9s
b2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKGhvc3RrZXkubyk6IEluIGZ1bmN0aW9uIGBo
b3N0a2V5X21ldGhvZF9zc2hfcnNhX2R0b3InOg0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGli
c3NoMi0xLjQuMi9zcmMvaG9zdGtleS5jOjE5OTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
UlNBX2ZyZWUnDQovdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEoaG9zdGtleS5v
KTogSW4gZnVuY3Rpb24gYGhvc3RrZXlfbWV0aG9kX3NzaF9yc2Ffc2lnbnYnOg0KL2hvbWUv
ZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvaG9zdGtleS5jOjE3MzogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgRVZQX2dldF9kaWdlc3RieW5hbWUnDQovaG9tZS9ldmVyL0Rv
d25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9ob3N0a2V5LmM6MTczOiB1bmRlZmluZWQgcmVm
ZXJlbmNlIHRvIGBFVlBfRGlnZXN0SW5pdCcNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNz
aDItMS40LjIvc3JjL2hvc3RrZXkuYzoxNzU6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVW
UF9EaWdlc3RVcGRhdGUnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3Ny
Yy9ob3N0a2V5LmM6MTc3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0Rmlu
YWwnDQovdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEoaG9zdGtleS5vKTogSW4g
ZnVuY3Rpb24gYGhvc3RrZXlfbWV0aG9kX3NzaF9yc2FfZHRvcic6DQovaG9tZS9ldmVyL0Rv
d25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9ob3N0a2V5LmM6MTk5OiB1bmRlZmluZWQgcmVm
ZXJlbmNlIHRvIGBSU0FfZnJlZScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40
LjIvc3JjL2hvc3RrZXkuYzoxOTk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYFJTQV9mcmVl
Jw0KL3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKHRyYW5zcG9ydC5vKTogSW4g
ZnVuY3Rpb24gYF9saWJzc2gyX3RyYW5zcG9ydF9zZW5kJzoNCi9ob21lL2V2ZXIvRG93bmxv
YWRzL2xpYnNzaDItMS40LjIvc3JjL3RyYW5zcG9ydC5jOjgxODogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgUkFORF9ieXRlcycNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40
LjIvc3JjL3RyYW5zcG9ydC5jOjgxODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgUkFORF9i
eXRlcycNCi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShrbm93bmhvc3Qubyk6
IEluIGZ1bmN0aW9uIGBrbm93bmhvc3RfY2hlY2snOg0KL2hvbWUvZXZlci9Eb3dubG9hZHMv
bGlic3NoMi0xLjQuMi9zcmMva25vd25ob3N0LmM6NDAyOiB1bmRlZmluZWQgcmVmZXJlbmNl
IHRvIGBFVlBfc2hhMScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3Jj
L2tub3duaG9zdC5jOjQwMjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgSE1BQ19Jbml0Jw0K
L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva25vd25ob3N0LmM6NDAz
OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBITUFDX1VwZGF0ZScNCi9ob21lL2V2ZXIvRG93
bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tub3duaG9zdC5jOjQwNTogdW5kZWZpbmVkIHJl
ZmVyZW5jZSB0byBgSE1BQ19GaW5hbCcNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDIt
MS40LjIvc3JjL2tub3duaG9zdC5jOjQwNjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgSE1B
Q19DVFhfY2xlYW51cCcNCi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShvcGVu
c3NsLm8pOiBJbiBmdW5jdGlvbiBgcmVhZF9wcml2YXRlX2tleV9mcm9tX2ZpbGUnOg0KL2hv
bWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjQwMDogdW5k
ZWZpbmVkIHJlZmVyZW5jZSB0byBgQklPX25ld19maWxlJw0KL2hvbWUvZXZlci9Eb3dubG9h
ZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjQwODogdW5kZWZpbmVkIHJlZmVyZW5j
ZSB0byBgQklPX2ZyZWUnDQovdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEob3Bl
bnNzbC5vKTogSW4gZnVuY3Rpb24gYHdyaXRlX2JuJzoNCi9ob21lL2V2ZXIvRG93bmxvYWRz
L2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo1NDM6IHVuZGVmaW5lZCByZWZlcmVuY2Ug
dG8gYEJOX2JuMmJpbicNCi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShvcGVu
c3NsLm8pOiBJbiBmdW5jdGlvbiBgX2xpYnNzaDJfcHViX3ByaXZfa2V5ZmlsZSc6DQovaG9t
ZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6NzUyOiB1bmRl
ZmluZWQgcmVmZXJlbmNlIHRvIGBCSU9fbmV3X2ZpbGUnDQovaG9tZS9ldmVyL0Rvd25sb2Fk
cy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6NzU5OiB1bmRlZmluZWQgcmVmZXJlbmNl
IHRvIGBFVlBfZ2V0X2NpcGhlcmJ5bmFtZScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNz
aDItMS40LjIvc3JjL29wZW5zc2wuYzo3Njc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJJ
T19jdHJsJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNz
bC5jOjc2ODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgUEVNX3JlYWRfYmlvX1ByaXZhdGVL
ZXknDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6
NzY5OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCSU9fZnJlZScNCi9ob21lL2V2ZXIvRG93
bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo4MDA6IHVuZGVmaW5lZCByZWZl
cmVuY2UgdG8gYEVWUF9QS0VZX2ZyZWUnDQovdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJz
c2gyLmEob3BlbnNzbC5vKTogSW4gZnVuY3Rpb24gYGdlbl9wdWJsaWNrZXlfZnJvbV9kc2Ff
ZXZwJzoNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wu
Yzo2OTc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9QS0VZX2dldDFfRFNBJw0KL3Vz
ci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKG9wZW5zc2wubyk6IEluIGZ1bmN0aW9u
IGBnZW5fcHVibGlja2V5X2Zyb21fZHNhJzoNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNz
aDItMS40LjIvc3JjL29wZW5zc2wuYzo1OTY6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJO
X251bV9iaXRzJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3Bl
bnNzbC5jOjU5NzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fbnVtX2JpdHMnDQovaG9t
ZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6NTk4OiB1bmRl
ZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9udW1fYml0cycNCi9ob21lL2V2ZXIvRG93bmxvYWRz
L2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo1OTk6IHVuZGVmaW5lZCByZWZlcmVuY2Ug
dG8gYEJOX251bV9iaXRzJw0KL3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKG9w
ZW5zc2wubyk6IEluIGZ1bmN0aW9uIGBnZW5fcHVibGlja2V5X2Zyb21fZHNhX2V2cCc6DQov
aG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6NzEyOiB1
bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBEU0FfZnJlZScNCi91c3IvbG9jYWwvbGlic3NoMi9s
aWIvL2xpYnNzaDIuYShvcGVuc3NsLm8pOiBJbiBmdW5jdGlvbiBgZ2VuX3B1YmxpY2tleV9m
cm9tX3JzYV9ldnAnOg0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMv
b3BlbnNzbC5jOjY2OTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgUlNBX2ZyZWUnDQovaG9t
ZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6NjQzOiB1bmRl
ZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfUEtFWV9nZXQxX1JTQScNCi91c3IvbG9jYWwvbGli
c3NoMi9saWIvL2xpYnNzaDIuYShvcGVuc3NsLm8pOiBJbiBmdW5jdGlvbiBgZ2VuX3B1Ymxp
Y2tleV9mcm9tX3JzYSc6DQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3Ny
Yy9vcGVuc3NsLmM6NTYxOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9udW1fYml0cycN
Ci9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo1NjI6
IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX251bV9iaXRzJw0KL3Vzci9sb2NhbC9saWJz
c2gyL2xpYi8vbGlic3NoMi5hKG9wZW5zc2wubyk6IEluIGZ1bmN0aW9uIGBnZW5fcHVibGlj
a2V5X2Zyb21fcnNhX2V2cCc6DQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4y
L3NyYy9vcGVuc3NsLmM6NjU4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBSU0FfZnJlZScN
Ci91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShvcGVuc3NsLm8pOiBJbiBmdW5j
dGlvbiBgZ2VuX3B1YmxpY2tleV9mcm9tX2RzYV9ldnAnOg0KL2hvbWUvZXZlci9Eb3dubG9h
ZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjcyMzogdW5kZWZpbmVkIHJlZmVyZW5j
ZSB0byBgRFNBX2ZyZWUnDQovdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEob3Bl
bnNzbC5vKTogSW4gZnVuY3Rpb24gYF9saWJzc2gyX3B1Yl9wcml2X2tleWZpbGUnOg0KL2hv
bWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjc2NTogdW5k
ZWZpbmVkIHJlZmVyZW5jZSB0byBgT3BlblNTTF9hZGRfYWxsX2NpcGhlcnMnDQovdXNyL2xv
Y2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEob3BlbnNzbC5vKTogSW4gZnVuY3Rpb24gYGxp
YnNzaDJfbWQ1JzoNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29w
ZW5zc2wuYzo1Mjk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9nZXRfZGlnZXN0Ynlu
YW1lJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5j
OjUyOTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdEluaXQnDQovaG9tZS9l
dmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6NTMwOiB1bmRlZmlu
ZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJw0KL2hvbWUvZXZlci9Eb3dubG9h
ZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjUzMTogdW5kZWZpbmVkIHJlZmVyZW5j
ZSB0byBgRVZQX0RpZ2VzdEZpbmFsJw0KL3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3No
Mi5hKG9wZW5zc2wubyk6IEluIGZ1bmN0aW9uIGBsaWJzc2gyX3NoYTEnOg0KL2hvbWUvZXZl
ci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjUxODogdW5kZWZpbmVk
IHJlZmVyZW5jZSB0byBgRVZQX2dldF9kaWdlc3RieW5hbWUnDQovaG9tZS9ldmVyL0Rvd25s
b2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6NTE4OiB1bmRlZmluZWQgcmVmZXJl
bmNlIHRvIGBFVlBfRGlnZXN0SW5pdCcNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDIt
MS40LjIvc3JjL29wZW5zc2wuYzo1MTk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9E
aWdlc3RVcGRhdGUnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9v
cGVuc3NsLmM6NTIwOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0RmluYWwn
DQovdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEob3BlbnNzbC5vKTogSW4gZnVu
Y3Rpb24gYF9saWJzc2gyX2RzYV9zaGExX3NpZ24nOg0KL2hvbWUvZXZlci9Eb3dubG9hZHMv
bGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjQ4NTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0
byBgRFNBX2RvX3NpZ24nDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3Ny
Yy9vcGVuc3NsLmM6NDkwOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9udW1fYml0cycN
Ci9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo0OTU6
IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX251bV9iaXRzJw0KL2hvbWUvZXZlci9Eb3du
bG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjUwMzogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgQk5fYm4yYmluJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQu
Mi9zcmMvb3BlbnNzbC5jOjUwNDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fYm4yYmlu
Jw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjUw
NjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRFNBX1NJR19mcmVlJw0KL2hvbWUvZXZlci9E
b3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjQ5NzogdW5kZWZpbmVkIHJl
ZmVyZW5jZSB0byBgRFNBX1NJR19mcmVlJw0KL3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGli
c3NoMi5hKG9wZW5zc2wubyk6IEluIGZ1bmN0aW9uIGBfbGlic3NoMl9yc2Ffc2hhMV9zaWdu
JzoNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo0
NTU6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYFJTQV9zaXplJw0KL2hvbWUvZXZlci9Eb3du
bG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjQ2MjogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgUlNBX3NpZ24nDQovdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEo
b3BlbnNzbC5vKTogSW4gZnVuY3Rpb24gYF9saWJzc2gyX2RzYV9uZXdfcHJpdmF0ZSc6DQov
aG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6NDM5OiB1
bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBQRU1fcmVhZF9iaW9fRFNBUHJpdmF0ZUtleScNCi91
c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShvcGVuc3NsLm8pOiBJbiBmdW5jdGlv
biBgX2xpYnNzaDJfcnNhX25ld19wcml2YXRlJzoNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xp
YnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo0MjM6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8g
YFBFTV9yZWFkX2Jpb19SU0FQcml2YXRlS2V5Jw0KL3Vzci9sb2NhbC9saWJzc2gyL2xpYi8v
bGlic3NoMi5hKG9wZW5zc2wubyk6IEluIGZ1bmN0aW9uIGBhZXNfY3RyX2NsZWFudXAnOg0K
L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjMwNTog
dW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0NJUEhFUl9DVFhfZ2V0X2FwcF9kYXRhJw0K
L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjMxMjog
dW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0NJUEhFUl9DVFhfY2xlYW51cCcNCi91c3Iv
bG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShvcGVuc3NsLm8pOiBJbiBmdW5jdGlvbiBg
YWVzX2N0cl9kb19jaXBoZXInOg0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQu
Mi9zcmMvb3BlbnNzbC5jOjI2NjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0NJUEhF
Ul9DVFhfZ2V0X2FwcF9kYXRhJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQu
Mi9zcmMvb3BlbnNzbC5jOjI4NTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0VuY3J5
cHRVcGRhdGUnDQovdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEob3BlbnNzbC5v
KTogSW4gZnVuY3Rpb24gYGFlc19jdHJfaW5pdCc6DQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9s
aWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6MjM5OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv
IGBFVlBfYWVzXzI1Nl9lY2InDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4y
L3NyYy9vcGVuc3NsLmM6MjQ4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRW5jcnlw
dEluaXQnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3Ns
LmM6MjUyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfQ0lQSEVSX0NUWF9zZXRfcGFk
ZGluZycNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wu
YzoyNTY6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9DSVBIRVJfQ1RYX3NldF9hcHBf
ZGF0YScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wu
YzoyMzM6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9hZXNfMTI4X2VjYicNCi9ob21l
L2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzoyMzY6IHVuZGVm
aW5lZCByZWZlcmVuY2UgdG8gYEVWUF9hZXNfMTkyX2VjYicNCi91c3IvbG9jYWwvbGlic3No
Mi9saWIvL2xpYnNzaDIuYShvcGVuc3NsLm8pOiBJbiBmdW5jdGlvbiBgX2xpYnNzaDJfY2lw
aGVyX2NyeXB0JzoNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29w
ZW5zc2wuYzoxOTc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9DaXBoZXInDQovdXNy
L2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEob3BlbnNzbC5vKTogSW4gZnVuY3Rpb24g
YF9saWJzc2gyX2NpcGhlcl9pbml0JzoNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDIt
MS40LjIvc3JjL29wZW5zc2wuYzoxNzc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9D
SVBIRVJfQ1RYX2luaXQnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3Ny
Yy9vcGVuc3NsLmM6MTc4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfQ2lwaGVySW5p
dCcNCi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShvcGVuc3NsLm8pOiBJbiBm
dW5jdGlvbiBgX2xpYnNzaDJfZHNhX3NoYTFfdmVyaWZ5JzoNCi9ob21lL2V2ZXIvRG93bmxv
YWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzoxNTg6IHVuZGVmaW5lZCByZWZlcmVu
Y2UgdG8gYEJOX25ldycNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3Jj
L29wZW5zc2wuYzoxNTk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX2JpbjJibicNCi9o
b21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzoxNjA6IHVu
ZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX25ldycNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xp
YnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzoxNjE6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8g
YEJOX2JpbjJibicNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29w
ZW5zc2wuYzoxNjQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYERTQV9kb192ZXJpZnknDQov
aG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6MTY1OiB1
bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9jbGVhcl9mcmVlJw0KL2hvbWUvZXZlci9Eb3du
bG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjE2NjogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgQk5fY2xlYXJfZnJlZScNCi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNz
aDIuYShvcGVuc3NsLm8pOiBJbiBmdW5jdGlvbiBgX2xpYnNzaDJfZHNhX25ldyc6DQovaG9t
ZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6MTI3OiB1bmRl
ZmluZWQgcmVmZXJlbmNlIHRvIGBEU0FfbmV3Jw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGli
c3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjEyOTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
Qk5fbmV3Jw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNz
bC5jOjEzMDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fYmluMmJuJw0KL2hvbWUvZXZl
ci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjEzMjogdW5kZWZpbmVk
IHJlZmVyZW5jZSB0byBgQk5fbmV3Jw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0x
LjQuMi9zcmMvb3BlbnNzbC5jOjEzMzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fYmlu
MmJuJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5j
OjEzNTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fbmV3Jw0KL2hvbWUvZXZlci9Eb3du
bG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjEzNjogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgQk5fYmluMmJuJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQu
Mi9zcmMvb3BlbnNzbC5jOjEzODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fbmV3Jw0K
L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjEzOTog
dW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fYmluMmJuJw0KL2hvbWUvZXZlci9Eb3dubG9h
ZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjE0MjogdW5kZWZpbmVkIHJlZmVyZW5j
ZSB0byBgQk5fbmV3Jw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMv
b3BlbnNzbC5jOjE0MzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fYmluMmJuJw0KL3Vz
ci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKG9wZW5zc2wubyk6IEluIGZ1bmN0aW9u
IGBfbGlic3NoMl9yc2Ffc2hhMV92ZXJpZnknOg0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGli
c3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjEwOTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
UlNBX3ZlcmlmeScNCi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShvcGVuc3Ns
Lm8pOiBJbiBmdW5jdGlvbiBgX2xpYnNzaDJfcnNhX25ldyc6DQovaG9tZS9ldmVyL0Rvd25s
b2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6Njk6IHVuZGVmaW5lZCByZWZlcmVu
Y2UgdG8gYFJTQV9uZXcnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3Ny
Yy9vcGVuc3NsLmM6NzE6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX25ldycNCi9ob21l
L2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo3MjogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgQk5fYmluMmJuJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGli
c3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBC
Tl9uZXcnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3Ns
LmM6NzU6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX2JpbjJibicNCi9ob21lL2V2ZXIv
RG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo3ODogdW5kZWZpbmVkIHJl
ZmVyZW5jZSB0byBgQk5fbmV3Jw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQu
Mi9zcmMvb3BlbnNzbC5jOjc5OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9iaW4yYm4n
DQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6ODE6
IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX25ldycNCi9ob21lL2V2ZXIvRG93bmxvYWRz
L2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo4MjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0
byBgQk5fYmluMmJuJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMv
b3BlbnNzbC5jOjg0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9uZXcnDQovaG9tZS9l
dmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6ODU6IHVuZGVmaW5l
ZCByZWZlcmVuY2UgdG8gYEJOX2JpbjJibicNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNz
aDItMS40LjIvc3JjL29wZW5zc2wuYzo4NzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5f
bmV3Jw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5j
Ojg4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9iaW4yYm4nDQovaG9tZS9ldmVyL0Rv
d25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6OTA6IHVuZGVmaW5lZCByZWZl
cmVuY2UgdG8gYEJOX25ldycNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIv
c3JjL29wZW5zc2wuYzo5MTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fYmluMmJuJw0K
L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjkzOiB1
bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9uZXcnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9s
aWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6OTQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8g
YEJOX2JpbjJibicNCi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShnbG9iYWwu
byk6IEluIGZ1bmN0aW9uIGBsaWJzc2gyX2luaXQnOg0KL2hvbWUvZXZlci9Eb3dubG9hZHMv
bGlic3NoMi0xLjQuMi9zcmMvZ2xvYmFsLmM6NDg6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8g
YE9QRU5TU0xfYWRkX2FsbF9hbGdvcml0aG1zX25vY29uZicNCi91c3IvbG9jYWwvbGlic3No
Mi9saWIvL2xpYnNzaDIuYShrZXgubyk6IEluIGZ1bmN0aW9uIGBkaWZmaWVfaGVsbG1hbl9z
aGExJzoNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjY0
MjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fY2xlYXJfZnJlZScNCi9ob21lL2V2ZXIv
RG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjY0NDogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgQk5fY2xlYXJfZnJlZScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDIt
MS40LjIvc3JjL2tleC5jOjY0NjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fY2xlYXJf
ZnJlZScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjY0
ODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fY2xlYXJfZnJlZScNCi9ob21lL2V2ZXIv
RG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjY1MDogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgQk5fQ1RYX2ZyZWUnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEu
NC4yL3NyYy9rZXguYzo5NjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fQ1RYX25ldycN
Ci9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjk3OiB1bmRl
ZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9uZXcnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJz
c2gyLTEuNC4yL3NyYy9rZXguYzo5ODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fbmV3
Jw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6OTk6IHVu
ZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX25ldycNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xp
YnNzaDItMS40LjIvc3JjL2tleC5jOjEwMDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5f
bmV3Jw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6MTA2
OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9yYW5kJw0KL2hvbWUvZXZlci9Eb3dubG9h
ZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6MTA3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv
IGBCTl9tb2RfZXhwJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMv
a2V4LmM6MTEzOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9udW1fYml0cycNCi9ob21l
L2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjExNDogdW5kZWZpbmVk
IHJlZmVyZW5jZSB0byBgQk5fbnVtX2JpdHMnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJz
c2gyLTEuNC4yL3NyYy9rZXguYzoxMjk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX251
bV9iaXRzJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6
MTMwOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9ibjJiaW4nDQovaG9tZS9ldmVyL0Rv
d25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzoyMjE6IHVuZGVmaW5lZCByZWZlcmVu
Y2UgdG8gYEVWUF9nZXRfZGlnZXN0YnluYW1lJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGli
c3NoMi0xLjQuMi9zcmMva2V4LmM6MjIxOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBf
RGlnZXN0SW5pdCcNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tl
eC5jOjIyMjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZScNCi9o
b21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjIyNDogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdEZpbmFsJw0KL2hvbWUvZXZlci9Eb3dubG9h
ZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6MjQzOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv
IGBFVlBfZ2V0X2RpZ2VzdGJ5bmFtZScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDIt
MS40LjIvc3JjL2tleC5jOjI0MzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2Vz
dEluaXQnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzoy
NDQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RVcGRhdGUnDQovaG9tZS9l
dmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzoyNDY6IHVuZGVmaW5lZCBy
ZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RGaW5hbCcNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xp
YnNzaDItMS40LjIvc3JjL2tleC5jOjEzNDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5f
Ym4yYmluJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6
Mjc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9iaW4yYm4nDQovaG9tZS9ldmVyL0Rv
d25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzoyODI6IHVuZGVmaW5lZCByZWZlcmVu
Y2UgdG8gYEJOX21vZF9leHAnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4y
L3NyYy9rZXguYzoyODQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX251bV9iaXRzJw0K
L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6Mjg1OiB1bmRl
ZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9udW1fYml0cycNCi9ob21lL2V2ZXIvRG93bmxvYWRz
L2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjI5ODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
Qk5fbnVtX2JpdHMnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9r
ZXguYzoyOTk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX2JuMmJpbicNCi9ob21lL2V2
ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjMwNTogdW5kZWZpbmVkIHJl
ZmVyZW5jZSB0byBgRVZQX2dldF9kaWdlc3RieW5hbWUnDQovaG9tZS9ldmVyL0Rvd25sb2Fk
cy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzozMDU6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8g
YEVWUF9EaWdlc3RJbml0Jw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9z
cmMva2V4LmM6MzA5OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRl
Jw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6MzExOiB1
bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJw0KL2hvbWUvZXZlci9E
b3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6MzI2OiB1bmRlZmluZWQgcmVmZXJl
bmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3No
Mi0xLjQuMi9zcmMva2V4LmM6MzI4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGln
ZXN0VXBkYXRlJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4
LmM6MzM0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJw0KL3Vz
ci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKGtleC5vKTovaG9tZS9ldmVyL0Rvd25s
b2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzozMzY6IG1vcmUgdW5kZWZpbmVkIHJlZmVy
ZW5jZXMgdG8gYEVWUF9EaWdlc3RVcGRhdGUnIGZvbGxvdw0KL3Vzci9sb2NhbC9saWJzc2gy
L2xpYi8vbGlic3NoMi5hKGtleC5vKTogSW4gZnVuY3Rpb24gYGRpZmZpZV9oZWxsbWFuX3No
YTEnOg0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6Mzk2
OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0RmluYWwnDQovaG9tZS9ldmVy
L0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo0NzA6IHVuZGVmaW5lZCByZWZl
cmVuY2UgdG8gYEVWUF9EaWdlc3RVcGRhdGUnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJz
c2gyLTEuNC4yL3NyYy9rZXguYzo0NzA6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9E
aWdlc3RGaW5hbCcNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tl
eC5jOjQ3MDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX2dldF9kaWdlc3RieW5hbWUn
DQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo0NzA6IHVu
ZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RJbml0Jw0KL2hvbWUvZXZlci9Eb3du
bG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NDcwOiB1bmRlZmluZWQgcmVmZXJlbmNl
IHRvIGBFVlBfRGlnZXN0VXBkYXRlJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0x
LjQuMi9zcmMva2V4LmM6NDcwOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0
VXBkYXRlJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6
NDcwOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJw0KL2hvbWUv
ZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NDcwOiB1bmRlZmluZWQg
cmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMv
bGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NDc3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBF
VlBfRGlnZXN0VXBkYXRlJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9z
cmMva2V4LmM6NDc3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0RmluYWwn
DQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo0Nzc6IHVu
ZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9nZXRfZGlnZXN0YnluYW1lJw0KL2hvbWUvZXZl
ci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NDc3OiB1bmRlZmluZWQgcmVm
ZXJlbmNlIHRvIGBFVlBfRGlnZXN0SW5pdCcNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNz
aDItMS40LjIvc3JjL2tleC5jOjQ3NzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0Rp
Z2VzdFVwZGF0ZScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tl
eC5jOjQ3NzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZScNCi9o
b21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjQ3NzogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZScNCi9ob21lL2V2ZXIvRG93bmxv
YWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjQ3NzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0
byBgRVZQX0RpZ2VzdFVwZGF0ZScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40
LjIvc3JjL2tleC5jOjUxNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVw
ZGF0ZScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjUx
NzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdEZpbmFsJw0KL2hvbWUvZXZl
ci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NTE3OiB1bmRlZmluZWQgcmVm
ZXJlbmNlIHRvIGBFVlBfZ2V0X2RpZ2VzdGJ5bmFtZScNCi9ob21lL2V2ZXIvRG93bmxvYWRz
L2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjUxNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
RVZQX0RpZ2VzdEluaXQnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3Ny
Yy9rZXguYzo1MTc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RVcGRhdGUn
DQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo1MTc6IHVu
ZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RVcGRhdGUnDQovaG9tZS9ldmVyL0Rv
d25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo1MTc6IHVuZGVmaW5lZCByZWZlcmVu
Y2UgdG8gYEVWUF9EaWdlc3RVcGRhdGUnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gy
LTEuNC4yL3NyYy9rZXguYzo1MTc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdl
c3RVcGRhdGUnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXgu
Yzo1NjI6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RVcGRhdGUnDQovaG9t
ZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo1NjI6IHVuZGVmaW5l
ZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RGaW5hbCcNCi9ob21lL2V2ZXIvRG93bmxvYWRz
L2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjU2MjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
RVZQX2dldF9kaWdlc3RieW5hbWUnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEu
NC4yL3NyYy9rZXguYzo1NjI6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RJ
bml0Jw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NTYy
OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJw0KL2hvbWUvZXZl
ci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NTYyOiB1bmRlZmluZWQgcmVm
ZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGli
c3NoMi0xLjQuMi9zcmMva2V4LmM6NTYyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBf
RGlnZXN0VXBkYXRlJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMv
a2V4LmM6NTYyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJw0K
L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NTI0OiB1bmRl
ZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJw0KL2hvbWUvZXZlci9Eb3du
bG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NTI0OiB1bmRlZmluZWQgcmVmZXJlbmNl
IHRvIGBFVlBfRGlnZXN0RmluYWwnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEu
NC4yL3NyYy9rZXguYzo1MjQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9nZXRfZGln
ZXN0YnluYW1lJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4
LmM6NTI0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0SW5pdCcNCi9ob21l
L2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjUyNDogdW5kZWZpbmVk
IHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZScNCi9ob21lL2V2ZXIvRG93bmxvYWRz
L2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjUyNDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
RVZQX0RpZ2VzdFVwZGF0ZScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIv
c3JjL2tleC5jOjUyNDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0
ZScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjUyNDog
dW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZScNCi9ob21lL2V2ZXIv
RG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjU4ODogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNz
aDItMS40LjIvc3JjL2tleC5jOjU4ODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0Rp
Z2VzdEZpbmFsJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4
LmM6NTg4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfZ2V0X2RpZ2VzdGJ5bmFtZScN
Ci9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjU4ODogdW5k
ZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdEluaXQnDQovaG9tZS9ldmVyL0Rvd25s
b2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo1ODg6IHVuZGVmaW5lZCByZWZlcmVuY2Ug
dG8gYEVWUF9EaWdlc3RVcGRhdGUnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEu
NC4yL3NyYy9rZXguYzo1ODg6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RV
cGRhdGUnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo1
ODg6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RVcGRhdGUnDQovaG9tZS9l
dmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo1ODg6IHVuZGVmaW5lZCBy
ZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RVcGRhdGUnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9s
aWJzc2gyLTEuNC4yL3NyYy9rZXguYzozMDI6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJO
X2JuMmJpbicNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5j
OjMxNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZScNCi9ob21l
L2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjMxOTogdW5kZWZpbmVk
IHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZScNCi9ob21lL2V2ZXIvRG93bmxvYWRz
L2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjM2NTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
RVZQX0RpZ2VzdFVwZGF0ZScNCi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShr
ZXgubyk6IEluIGZ1bmN0aW9uIGBrZXhfbWV0aG9kX2RpZmZpZV9oZWxsbWFuX2dyb3VwMV9z
aGExX2tleV9leGNoYW5nZSc6DQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4y
L3NyYy9rZXguYzo3MjU6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX2NsZWFyX2ZyZWUn
DQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo3Mjc6IHVu
ZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX2NsZWFyX2ZyZWUnDQovaG9tZS9ldmVyL0Rvd25s
b2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo3MDY6IHVuZGVmaW5lZCByZWZlcmVuY2Ug
dG8gYEJOX25ldycNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tl
eC5jOjcwNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fbmV3Jw0KL2hvbWUvZXZlci9E
b3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NzEwOiB1bmRlZmluZWQgcmVmZXJl
bmNlIHRvIGBCTl9zZXRfd29yZCcNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40
LjIvc3JjL2tleC5jOjcxMTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fYmluMmJuJw0K
L3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKGtleC5vKTogSW4gZnVuY3Rpb24g
YGtleF9tZXRob2RfZGlmZmllX2hlbGxtYW5fZ3JvdXBfZXhjaGFuZ2Vfc2hhMV9rZXlfZXhj
aGFuZ2UnOg0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6
OTAyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9jbGVhcl9mcmVlJw0KL2hvbWUvZXZl
ci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6OTA0OiB1bmRlZmluZWQgcmVm
ZXJlbmNlIHRvIGBCTl9jbGVhcl9mcmVlJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3No
Mi0xLjQuMi9zcmMva2V4LmM6ODI1OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9uZXcn
DQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo4MjY6IHVu
ZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX25ldycNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xp
YnNzaDItMS40LjIvc3JjL2tleC5jOjg4MDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5f
YmluMmJuJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6
ODg1OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9iaW4yYm4nDQovdXNyL2xvY2FsL2xp
YnNzaDIvbGliLy9saWJzc2gyLmEoa2V4Lm8pOiBJbiBmdW5jdGlvbiBga2V4X21ldGhvZF9k
aWZmaWVfaGVsbG1hbl9ncm91cDE0X3NoYTFfa2V5X2V4Y2hhbmdlJzoNCi9ob21lL2V2ZXIv
RG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjgwMjogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgQk5fY2xlYXJfZnJlZScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDIt
MS40LjIvc3JjL2tleC5jOjgwNDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fY2xlYXJf
ZnJlZScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjc4
MTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fbmV3Jw0KL2hvbWUvZXZlci9Eb3dubG9h
ZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NzgyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv
IGBCTl9uZXcnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXgu
Yzo3ODY6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX3NldF93b3JkJw0KL2hvbWUvZXZl
ci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6Nzg3OiB1bmRlZmluZWQgcmVm
ZXJlbmNlIHRvIGBCTl9iaW4yYm4nDQovdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gy
LmEoa2V4Lm8pOiBJbiBmdW5jdGlvbiBga2V4aW5pdCc6DQovaG9tZS9ldmVyL0Rvd25sb2Fk
cy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzoxMDY5OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv
IGBSQU5EX2J5dGVzJw0KL3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKG1hYy5v
KTogSW4gZnVuY3Rpb24gYG1hY19tZXRob2RfaG1hY19yaXBlbWQxNjBfaGFzaCc6DQovaG9t
ZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9tYWMuYzoyNjA6IHVuZGVmaW5l
ZCByZWZlcmVuY2UgdG8gYEVWUF9yaXBlbWQxNjAnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9s
aWJzc2gyLTEuNC4yL3NyYy9tYWMuYzoyNjA6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEhN
QUNfSW5pdCcNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL21hYy5j
OjI2MTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgSE1BQ19VcGRhdGUnDQovaG9tZS9ldmVy
L0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9tYWMuYzoyNjI6IHVuZGVmaW5lZCByZWZl
cmVuY2UgdG8gYEhNQUNfVXBkYXRlJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0x
LjQuMi9zcmMvbWFjLmM6MjY2OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBITUFDX0ZpbmFs
Jw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvbWFjLmM6MjY3OiB1
bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBITUFDX0NUWF9jbGVhbnVwJw0KL2hvbWUvZXZlci9E
b3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvbWFjLmM6MjY0OiB1bmRlZmluZWQgcmVmZXJl
bmNlIHRvIGBITUFDX1VwZGF0ZScNCi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIu
YShtYWMubyk6IEluIGZ1bmN0aW9uIGBtYWNfbWV0aG9kX2htYWNfbWQ1X2hhc2gnOg0KL2hv
bWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvbWFjLmM6MTg4OiB1bmRlZmlu
ZWQgcmVmZXJlbmNlIHRvIGBFVlBfbWQ1Jw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3No
Mi0xLjQuMi9zcmMvbWFjLmM6MTg4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBITUFDX0lu
aXQnDQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9tYWMuYzoxODk6
IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEhNQUNfVXBkYXRlJw0KL2hvbWUvZXZlci9Eb3du
bG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvbWFjLmM6MTkwOiB1bmRlZmluZWQgcmVmZXJlbmNl
IHRvIGBITUFDX1VwZGF0ZScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIv
c3JjL21hYy5jOjE5NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgSE1BQ19GaW5hbCcNCi9o
b21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL21hYy5jOjE5NTogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgSE1BQ19DVFhfY2xlYW51cCcNCi9ob21lL2V2ZXIvRG93bmxv
YWRzL2xpYnNzaDItMS40LjIvc3JjL21hYy5jOjE5MjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0
byBgSE1BQ19VcGRhdGUnDQovdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEobWFj
Lm8pOiBJbiBmdW5jdGlvbiBgbWFjX21ldGhvZF9obWFjX3NoYTFfaGFzaCc6DQovaG9tZS9l
dmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9tYWMuYzoxMTY6IHVuZGVmaW5lZCBy
ZWZlcmVuY2UgdG8gYEVWUF9zaGExJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0x
LjQuMi9zcmMvbWFjLmM6MTE2OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBITUFDX0luaXQn
DQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9tYWMuYzoxMTc6IHVu
ZGVmaW5lZCByZWZlcmVuY2UgdG8gYEhNQUNfVXBkYXRlJw0KL2hvbWUvZXZlci9Eb3dubG9h
ZHMvbGlic3NoMi0xLjQuMi9zcmMvbWFjLmM6MTE4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv
IGBITUFDX1VwZGF0ZScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3Jj
L21hYy5jOjEyMjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgSE1BQ19GaW5hbCcNCi9ob21l
L2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL21hYy5jOjEyMzogdW5kZWZpbmVk
IHJlZmVyZW5jZSB0byBgSE1BQ19DVFhfY2xlYW51cCcNCi9ob21lL2V2ZXIvRG93bmxvYWRz
L2xpYnNzaDItMS40LjIvc3JjL21hYy5jOjEyMDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
SE1BQ19VcGRhdGUnDQovdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEoY29tcC5v
KTogSW4gZnVuY3Rpb24gYGNvbXBfbWV0aG9kX3psaWJfZHRvcic6DQovaG9tZS9ldmVyL0Rv
d25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9jb21wLmM6MzQ5OiB1bmRlZmluZWQgcmVmZXJl
bmNlIHRvIGBpbmZsYXRlRW5kJw0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQu
Mi9zcmMvY29tcC5jOjM0NzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgZGVmbGF0ZUVuZCcN
Ci91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShjb21wLm8pOiBJbiBmdW5jdGlv
biBgY29tcF9tZXRob2RfemxpYl9kZWNvbXAnOg0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGli
c3NoMi0xLjQuMi9zcmMvY29tcC5jOjI1NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgaW5m
bGF0ZScNCi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2NvbXAuYzoz
MTg6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGluZmxhdGUnDQovdXNyL2xvY2FsL2xpYnNz
aDIvbGliLy9saWJzc2gyLmEoY29tcC5vKTogSW4gZnVuY3Rpb24gYGNvbXBfbWV0aG9kX3ps
aWJfY29tcCc6DQovaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9jb21w
LmM6MTk4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBkZWZsYXRlJw0KL3Vzci9sb2NhbC9s
aWJzc2gyL2xpYi8vbGlic3NoMi5hKGNvbXAubyk6IEluIGZ1bmN0aW9uIGBjb21wX21ldGhv
ZF96bGliX2luaXQnOg0KL2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMv
Y29tcC5jOjE1OTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgaW5mbGF0ZUluaXRfJw0KL2hv
bWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvY29tcC5jOjE1NjogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgZGVmbGF0ZUluaXRfJw0KL3Vzci9sb2NhbC9saWJzc2gyL2xp
Yi8vbGlic3NoMi5hKGNyeXB0Lm8pOiBJbiBmdW5jdGlvbiBgY3J5cHRfZHRvcic6DQovaG9t
ZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9jcnlwdC5jOjExMTogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgRVZQX0NJUEhFUl9DVFhfY2xlYW51cCcNCi91c3IvbG9jYWwv
bGlic3NoMi9saWIvL2xpYnNzaDIuYShjcnlwdC5vKTooLnJvZGF0YSsweGY4KTogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgRVZQX2Flc18yNTZfY2JjJw0KL3Vzci9sb2NhbC9saWJzc2gy
L2xpYi8vbGlic3NoMi5hKGNyeXB0Lm8pOigucm9kYXRhKzB4MTM4KTogdW5kZWZpbmVkIHJl
ZmVyZW5jZSB0byBgRVZQX2Flc18yNTZfY2JjJw0KL3Vzci9sb2NhbC9saWJzc2gyL2xpYi8v
bGlic3NoMi5hKGNyeXB0Lm8pOigucm9kYXRhKzB4MTc4KTogdW5kZWZpbmVkIHJlZmVyZW5j
ZSB0byBgRVZQX2Flc18xOTJfY2JjJw0KL3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3No
Mi5hKGNyeXB0Lm8pOigucm9kYXRhKzB4MWI4KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
RVZQX2Flc18xMjhfY2JjJw0KL3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKGNy
eXB0Lm8pOigucm9kYXRhKzB4MWY4KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX2Jm
X2NiYycNCi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShjcnlwdC5vKTooLnJv
ZGF0YSsweDIzOCk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9yYzQnDQovdXNyL2xv
Y2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEoY3J5cHQubyk6KC5yb2RhdGErMHgyNzgpOiB1
bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfcmM0Jw0KL3Vzci9sb2NhbC9saWJzc2gyL2xp
Yi8vbGlic3NoMi5hKGNyeXB0Lm8pOigucm9kYXRhKzB4MmI4KTogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgRVZQX2Nhc3Q1X2NiYycNCi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNz
aDIuYShjcnlwdC5vKTooLnJvZGF0YSsweDJmOCk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8g
YEVWUF9kZXNfZWRlM19jYmMnDQpjb2xsZWN0MjogbGQgt7W72CAx

------=_NextPart_5007F713_D593EFB0_1E98B8C9
Content-Type: text/html;
	charset="gb18030"
Content-Transfer-Encoding: base64

PGRpdj53aGVuIEkgZXhlY3V0ZTxicj48ZGl2PjxkaXY+Z2NjIC1XYWxsIC1XbCwtYXMtbmVl
ZGVkIC1vIHNzaF9leGVjIHNzaDJfZXhlYy5jICZuYnNwOy1JL3Vzci9sb2NhbC9saWJzc2gy
L2luY2x1ZGUgLUwvdXNyL2xvY2FsL2xpYnNzaDIvbGliLyAtTC9saWI2NCAmbmJzcDstV2ws
LUJzdGF0aWMgLWxzc2gyIC1XbCwtQmR5bmFtaWMgLWxwdGhyZWFkPC9kaXY+PGRpdj5jbWQs
SSBnb3QgdGhlIGZvbGxvd2luZyB0ZXh0LGJ1dCB3aGVuIEkgdXNlIHRoZSBzaGFyZSBsaWIs
dGhhdCBpcyBvay48L2Rpdj48ZGl2Pi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIu
YShjaGFubmVsLm8pOiBJbiBmdW5jdGlvbiBgY2hhbm5lbF94MTFfcmVxJzo8L2Rpdj48ZGl2
Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2NoYW5uZWwuYzoxMTM4
OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBSQU5EX2J5dGVzJzwvZGl2PjxkaXY+L3Vzci9s
b2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKGhvc3RrZXkubyk6IEluIGZ1bmN0aW9uIGBo
b3N0a2V5X21ldGhvZF9zc2hfZHNzX2R0b3InOjwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3du
bG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvaG9zdGtleS5jOjM4MzogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgRFNBX2ZyZWUnPC9kaXY+PGRpdj4vdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9s
aWJzc2gyLmEoaG9zdGtleS5vKTogSW4gZnVuY3Rpb24gYGhvc3RrZXlfbWV0aG9kX3NzaF9k
c3Nfc2lnbnYnOjwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQu
Mi9zcmMvaG9zdGtleS5jOjM1ODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX2dldF9k
aWdlc3RieW5hbWUnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEu
NC4yL3NyYy9ob3N0a2V5LmM6MzU4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGln
ZXN0SW5pdCc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIv
c3JjL2hvc3RrZXkuYzozNjA6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RV
cGRhdGUnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3Ny
Yy9ob3N0a2V5LmM6MzYyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0Rmlu
YWwnPC9kaXY+PGRpdj4vdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEoaG9zdGtl
eS5vKTogSW4gZnVuY3Rpb24gYGhvc3RrZXlfbWV0aG9kX3NzaF9kc3NfZHRvcic6PC9kaXY+
PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9ob3N0a2V5LmM6
MzgzOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBEU0FfZnJlZSc8L2Rpdj48ZGl2Pi9ob21l
L2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2hvc3RrZXkuYzozODM6IHVuZGVm
aW5lZCByZWZlcmVuY2UgdG8gYERTQV9mcmVlJzwvZGl2PjxkaXY+L3Vzci9sb2NhbC9saWJz
c2gyL2xpYi8vbGlic3NoMi5hKGhvc3RrZXkubyk6IEluIGZ1bmN0aW9uIGBob3N0a2V5X21l
dGhvZF9zc2hfcnNhX2R0b3InOjwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGli
c3NoMi0xLjQuMi9zcmMvaG9zdGtleS5jOjE5OTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
UlNBX2ZyZWUnPC9kaXY+PGRpdj4vdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEo
aG9zdGtleS5vKTogSW4gZnVuY3Rpb24gYGhvc3RrZXlfbWV0aG9kX3NzaF9yc2Ffc2lnbnYn
OjwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvaG9z
dGtleS5jOjE3MzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX2dldF9kaWdlc3RieW5h
bWUnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9o
b3N0a2V5LmM6MTczOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0SW5pdCc8
L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2hvc3Rr
ZXkuYzoxNzU6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RVcGRhdGUnPC9k
aXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9ob3N0a2V5
LmM6MTc3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0RmluYWwnPC9kaXY+
PGRpdj4vdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEoaG9zdGtleS5vKTogSW4g
ZnVuY3Rpb24gYGhvc3RrZXlfbWV0aG9kX3NzaF9yc2FfZHRvcic6PC9kaXY+PGRpdj4vaG9t
ZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9ob3N0a2V5LmM6MTk5OiB1bmRl
ZmluZWQgcmVmZXJlbmNlIHRvIGBSU0FfZnJlZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93
bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2hvc3RrZXkuYzoxOTk6IHVuZGVmaW5lZCByZWZl
cmVuY2UgdG8gYFJTQV9mcmVlJzwvZGl2PjxkaXY+L3Vzci9sb2NhbC9saWJzc2gyL2xpYi8v
bGlic3NoMi5hKHRyYW5zcG9ydC5vKTogSW4gZnVuY3Rpb24gYF9saWJzc2gyX3RyYW5zcG9y
dF9zZW5kJzo8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIv
c3JjL3RyYW5zcG9ydC5jOjgxODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgUkFORF9ieXRl
cyc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL3Ry
YW5zcG9ydC5jOjgxODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgUkFORF9ieXRlcyc8L2Rp
dj48ZGl2Pi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShrbm93bmhvc3Qubyk6
IEluIGZ1bmN0aW9uIGBrbm93bmhvc3RfY2hlY2snOjwvZGl2PjxkaXY+L2hvbWUvZXZlci9E
b3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva25vd25ob3N0LmM6NDAyOiB1bmRlZmluZWQg
cmVmZXJlbmNlIHRvIGBFVlBfc2hhMSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRz
L2xpYnNzaDItMS40LjIvc3JjL2tub3duaG9zdC5jOjQwMjogdW5kZWZpbmVkIHJlZmVyZW5j
ZSB0byBgSE1BQ19Jbml0JzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3No
Mi0xLjQuMi9zcmMva25vd25ob3N0LmM6NDAzOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBI
TUFDX1VwZGF0ZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40
LjIvc3JjL2tub3duaG9zdC5jOjQwNTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgSE1BQ19G
aW5hbCc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3Jj
L2tub3duaG9zdC5jOjQwNjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgSE1BQ19DVFhfY2xl
YW51cCc8L2Rpdj48ZGl2Pi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShvcGVu
c3NsLm8pOiBJbiBmdW5jdGlvbiBgcmVhZF9wcml2YXRlX2tleV9mcm9tX2ZpbGUnOjwvZGl2
PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5j
OjQwMDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQklPX25ld19maWxlJzwvZGl2PjxkaXY+
L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjQwODog
dW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQklPX2ZyZWUnPC9kaXY+PGRpdj4vdXNyL2xvY2Fs
L2xpYnNzaDIvbGliLy9saWJzc2gyLmEob3BlbnNzbC5vKTogSW4gZnVuY3Rpb24gYHdyaXRl
X2JuJzo8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3Jj
L29wZW5zc2wuYzo1NDM6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX2JuMmJpbic8L2Rp
dj48ZGl2Pi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShvcGVuc3NsLm8pOiBJ
biBmdW5jdGlvbiBgX2xpYnNzaDJfcHViX3ByaXZfa2V5ZmlsZSc6PC9kaXY+PGRpdj4vaG9t
ZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6NzUyOiB1bmRl
ZmluZWQgcmVmZXJlbmNlIHRvIGBCSU9fbmV3X2ZpbGUnPC9kaXY+PGRpdj4vaG9tZS9ldmVy
L0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6NzU5OiB1bmRlZmluZWQg
cmVmZXJlbmNlIHRvIGBFVlBfZ2V0X2NpcGhlcmJ5bmFtZSc8L2Rpdj48ZGl2Pi9ob21lL2V2
ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo3Njc6IHVuZGVmaW5l
ZCByZWZlcmVuY2UgdG8gYEJJT19jdHJsJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9h
ZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjc2ODogdW5kZWZpbmVkIHJlZmVyZW5j
ZSB0byBgUEVNX3JlYWRfYmlvX1ByaXZhdGVLZXknPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rv
d25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6NzY5OiB1bmRlZmluZWQgcmVm
ZXJlbmNlIHRvIGBCSU9fZnJlZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xp
YnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo4MDA6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8g
YEVWUF9QS0VZX2ZyZWUnPC9kaXY+PGRpdj4vdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJz
c2gyLmEob3BlbnNzbC5vKTogSW4gZnVuY3Rpb24gYGdlbl9wdWJsaWNrZXlfZnJvbV9kc2Ff
ZXZwJzo8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3Jj
L29wZW5zc2wuYzo2OTc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9QS0VZX2dldDFf
RFNBJzwvZGl2PjxkaXY+L3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKG9wZW5z
c2wubyk6IEluIGZ1bmN0aW9uIGBnZW5fcHVibGlja2V5X2Zyb21fZHNhJzo8L2Rpdj48ZGl2
Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo1OTY6
IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX251bV9iaXRzJzwvZGl2PjxkaXY+L2hvbWUv
ZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjU5NzogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgQk5fbnVtX2JpdHMnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rv
d25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6NTk4OiB1bmRlZmluZWQgcmVm
ZXJlbmNlIHRvIGBCTl9udW1fYml0cyc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRz
L2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo1OTk6IHVuZGVmaW5lZCByZWZlcmVuY2Ug
dG8gYEJOX251bV9iaXRzJzwvZGl2PjxkaXY+L3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGli
c3NoMi5hKG9wZW5zc2wubyk6IEluIGZ1bmN0aW9uIGBnZW5fcHVibGlja2V5X2Zyb21fZHNh
X2V2cCc6PC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3Ny
Yy9vcGVuc3NsLmM6NzEyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBEU0FfZnJlZSc8L2Rp
dj48ZGl2Pi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShvcGVuc3NsLm8pOiBJ
biBmdW5jdGlvbiBgZ2VuX3B1YmxpY2tleV9mcm9tX3JzYV9ldnAnOjwvZGl2PjxkaXY+L2hv
bWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjY2OTogdW5k
ZWZpbmVkIHJlZmVyZW5jZSB0byBgUlNBX2ZyZWUnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rv
d25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6NjQzOiB1bmRlZmluZWQgcmVm
ZXJlbmNlIHRvIGBFVlBfUEtFWV9nZXQxX1JTQSc8L2Rpdj48ZGl2Pi91c3IvbG9jYWwvbGli
c3NoMi9saWIvL2xpYnNzaDIuYShvcGVuc3NsLm8pOiBJbiBmdW5jdGlvbiBgZ2VuX3B1Ymxp
Y2tleV9mcm9tX3JzYSc6PC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gy
LTEuNC4yL3NyYy9vcGVuc3NsLmM6NTYxOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9u
dW1fYml0cyc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIv
c3JjL29wZW5zc2wuYzo1NjI6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX251bV9iaXRz
JzwvZGl2PjxkaXY+L3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKG9wZW5zc2wu
byk6IEluIGZ1bmN0aW9uIGBnZW5fcHVibGlja2V5X2Zyb21fcnNhX2V2cCc6PC9kaXY+PGRp
dj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6NjU4
OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBSU0FfZnJlZSc8L2Rpdj48ZGl2Pi91c3IvbG9j
YWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShvcGVuc3NsLm8pOiBJbiBmdW5jdGlvbiBgZ2Vu
X3B1YmxpY2tleV9mcm9tX2RzYV9ldnAnOjwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9h
ZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjcyMzogdW5kZWZpbmVkIHJlZmVyZW5j
ZSB0byBgRFNBX2ZyZWUnPC9kaXY+PGRpdj4vdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJz
c2gyLmEob3BlbnNzbC5vKTogSW4gZnVuY3Rpb24gYF9saWJzc2gyX3B1Yl9wcml2X2tleWZp
bGUnOjwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMv
b3BlbnNzbC5jOjc2NTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgT3BlblNTTF9hZGRfYWxs
X2NpcGhlcnMnPC9kaXY+PGRpdj4vdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEo
b3BlbnNzbC5vKTogSW4gZnVuY3Rpb24gYGxpYnNzaDJfbWQ1Jzo8L2Rpdj48ZGl2Pi9ob21l
L2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo1Mjk6IHVuZGVm
aW5lZCByZWZlcmVuY2UgdG8gYEVWUF9nZXRfZGlnZXN0YnluYW1lJzwvZGl2PjxkaXY+L2hv
bWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjUyOTogdW5k
ZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdEluaXQnPC9kaXY+PGRpdj4vaG9tZS9l
dmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6NTMwOiB1bmRlZmlu
ZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJzwvZGl2PjxkaXY+L2hvbWUvZXZl
ci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjUzMTogdW5kZWZpbmVk
IHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdEZpbmFsJzwvZGl2PjxkaXY+L3Vzci9sb2NhbC9s
aWJzc2gyL2xpYi8vbGlic3NoMi5hKG9wZW5zc2wubyk6IEluIGZ1bmN0aW9uIGBsaWJzc2gy
X3NoYTEnOjwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9z
cmMvb3BlbnNzbC5jOjUxODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX2dldF9kaWdl
c3RieW5hbWUnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4y
L3NyYy9vcGVuc3NsLmM6NTE4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0
SW5pdCc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3Jj
L29wZW5zc2wuYzo1MTk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RVcGRh
dGUnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9v
cGVuc3NsLmM6NTIwOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0RmluYWwn
PC9kaXY+PGRpdj4vdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEob3BlbnNzbC5v
KTogSW4gZnVuY3Rpb24gYF9saWJzc2gyX2RzYV9zaGExX3NpZ24nOjwvZGl2PjxkaXY+L2hv
bWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjQ4NTogdW5k
ZWZpbmVkIHJlZmVyZW5jZSB0byBgRFNBX2RvX3NpZ24nPC9kaXY+PGRpdj4vaG9tZS9ldmVy
L0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6NDkwOiB1bmRlZmluZWQg
cmVmZXJlbmNlIHRvIGBCTl9udW1fYml0cyc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxv
YWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo0OTU6IHVuZGVmaW5lZCByZWZlcmVu
Y2UgdG8gYEJOX251bV9iaXRzJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGli
c3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjUwMzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
Qk5fYm4yYmluJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQu
Mi9zcmMvb3BlbnNzbC5jOjUwNDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fYm4yYmlu
JzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3Bl
bnNzbC5jOjUwNjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRFNBX1NJR19mcmVlJzwvZGl2
PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5j
OjQ5NzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRFNBX1NJR19mcmVlJzwvZGl2PjxkaXY+
L3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKG9wZW5zc2wubyk6IEluIGZ1bmN0
aW9uIGBfbGlic3NoMl9yc2Ffc2hhMV9zaWduJzo8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93
bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo0NTU6IHVuZGVmaW5lZCByZWZl
cmVuY2UgdG8gYFJTQV9zaXplJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGli
c3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjQ2MjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
UlNBX3NpZ24nPC9kaXY+PGRpdj4vdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEo
b3BlbnNzbC5vKTogSW4gZnVuY3Rpb24gYF9saWJzc2gyX2RzYV9uZXdfcHJpdmF0ZSc6PC9k
aXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3Ns
LmM6NDM5OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBQRU1fcmVhZF9iaW9fRFNBUHJpdmF0
ZUtleSc8L2Rpdj48ZGl2Pi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShvcGVu
c3NsLm8pOiBJbiBmdW5jdGlvbiBgX2xpYnNzaDJfcnNhX25ld19wcml2YXRlJzo8L2Rpdj48
ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo0
MjM6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYFBFTV9yZWFkX2Jpb19SU0FQcml2YXRlS2V5
JzwvZGl2PjxkaXY+L3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKG9wZW5zc2wu
byk6IEluIGZ1bmN0aW9uIGBhZXNfY3RyX2NsZWFudXAnOjwvZGl2PjxkaXY+L2hvbWUvZXZl
ci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjMwNTogdW5kZWZpbmVk
IHJlZmVyZW5jZSB0byBgRVZQX0NJUEhFUl9DVFhfZ2V0X2FwcF9kYXRhJzwvZGl2PjxkaXY+
L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjMxMjog
dW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0NJUEhFUl9DVFhfY2xlYW51cCc8L2Rpdj48
ZGl2Pi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShvcGVuc3NsLm8pOiBJbiBm
dW5jdGlvbiBgYWVzX2N0cl9kb19jaXBoZXInOjwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3du
bG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjI2NjogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgRVZQX0NJUEhFUl9DVFhfZ2V0X2FwcF9kYXRhJzwvZGl2PjxkaXY+L2hvbWUv
ZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjI4NTogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgRVZQX0VuY3J5cHRVcGRhdGUnPC9kaXY+PGRpdj4vdXNyL2xv
Y2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEob3BlbnNzbC5vKTogSW4gZnVuY3Rpb24gYGFl
c19jdHJfaW5pdCc6PC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEu
NC4yL3NyYy9vcGVuc3NsLmM6MjM5OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfYWVz
XzI1Nl9lY2InPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4y
L3NyYy9vcGVuc3NsLmM6MjQ4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRW5jcnlw
dEluaXQnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3Ny
Yy9vcGVuc3NsLmM6MjUyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfQ0lQSEVSX0NU
WF9zZXRfcGFkZGluZyc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDIt
MS40LjIvc3JjL29wZW5zc2wuYzoyNTY6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9D
SVBIRVJfQ1RYX3NldF9hcHBfZGF0YSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRz
L2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzoyMzM6IHVuZGVmaW5lZCByZWZlcmVuY2Ug
dG8gYEVWUF9hZXNfMTI4X2VjYic8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xp
YnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzoyMzY6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8g
YEVWUF9hZXNfMTkyX2VjYic8L2Rpdj48ZGl2Pi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xp
YnNzaDIuYShvcGVuc3NsLm8pOiBJbiBmdW5jdGlvbiBgX2xpYnNzaDJfY2lwaGVyX2NyeXB0
Jzo8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29w
ZW5zc2wuYzoxOTc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9DaXBoZXInPC9kaXY+
PGRpdj4vdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEob3BlbnNzbC5vKTogSW4g
ZnVuY3Rpb24gYF9saWJzc2gyX2NpcGhlcl9pbml0Jzo8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIv
RG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzoxNzc6IHVuZGVmaW5lZCBy
ZWZlcmVuY2UgdG8gYEVWUF9DSVBIRVJfQ1RYX2luaXQnPC9kaXY+PGRpdj4vaG9tZS9ldmVy
L0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6MTc4OiB1bmRlZmluZWQg
cmVmZXJlbmNlIHRvIGBFVlBfQ2lwaGVySW5pdCc8L2Rpdj48ZGl2Pi91c3IvbG9jYWwvbGli
c3NoMi9saWIvL2xpYnNzaDIuYShvcGVuc3NsLm8pOiBJbiBmdW5jdGlvbiBgX2xpYnNzaDJf
ZHNhX3NoYTFfdmVyaWZ5Jzo8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNz
aDItMS40LjIvc3JjL29wZW5zc2wuYzoxNTg6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJO
X25ldyc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3Jj
L29wZW5zc2wuYzoxNTk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX2JpbjJibic8L2Rp
dj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wu
YzoxNjA6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX25ldyc8L2Rpdj48ZGl2Pi9ob21l
L2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzoxNjE6IHVuZGVm
aW5lZCByZWZlcmVuY2UgdG8gYEJOX2JpbjJibic8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93
bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzoxNjQ6IHVuZGVmaW5lZCByZWZl
cmVuY2UgdG8gYERTQV9kb192ZXJpZnknPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fk
cy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6MTY1OiB1bmRlZmluZWQgcmVmZXJlbmNl
IHRvIGBCTl9jbGVhcl9mcmVlJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGli
c3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjE2NjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
Qk5fY2xlYXJfZnJlZSc8L2Rpdj48ZGl2Pi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNz
aDIuYShvcGVuc3NsLm8pOiBJbiBmdW5jdGlvbiBgX2xpYnNzaDJfZHNhX25ldyc6PC9kaXY+
PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6
MTI3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBEU0FfbmV3JzwvZGl2PjxkaXY+L2hvbWUv
ZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjEyOTogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgQk5fbmV3JzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9h
ZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjEzMDogdW5kZWZpbmVkIHJlZmVyZW5j
ZSB0byBgQk5fYmluMmJuJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3No
Mi0xLjQuMi9zcmMvb3BlbnNzbC5jOjEzMjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5f
bmV3JzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMv
b3BlbnNzbC5jOjEzMzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fYmluMmJuJzwvZGl2
PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5j
OjEzNTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fbmV3JzwvZGl2PjxkaXY+L2hvbWUv
ZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjEzNjogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgQk5fYmluMmJuJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3du
bG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjEzODogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgQk5fbmV3JzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3No
Mi0xLjQuMi9zcmMvb3BlbnNzbC5jOjEzOTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5f
YmluMmJuJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9z
cmMvb3BlbnNzbC5jOjE0MjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fbmV3JzwvZGl2
PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5j
OjE0MzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fYmluMmJuJzwvZGl2PjxkaXY+L3Vz
ci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKG9wZW5zc2wubyk6IEluIGZ1bmN0aW9u
IGBfbGlic3NoMl9yc2Ffc2hhMV92ZXJpZnknOjwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3du
bG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjEwOTogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgUlNBX3ZlcmlmeSc8L2Rpdj48ZGl2Pi91c3IvbG9jYWwvbGlic3NoMi9saWIv
L2xpYnNzaDIuYShvcGVuc3NsLm8pOiBJbiBmdW5jdGlvbiBgX2xpYnNzaDJfcnNhX25ldyc6
PC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVu
c3NsLmM6Njk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYFJTQV9uZXcnPC9kaXY+PGRpdj4v
aG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6NzE6IHVu
ZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX25ldyc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93
bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo3MjogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgQk5fYmluMmJuJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGli
c3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBC
Tl9uZXcnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3Ny
Yy9vcGVuc3NsLmM6NzU6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX2JpbjJibic8L2Rp
dj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wu
Yzo3ODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fbmV3JzwvZGl2PjxkaXY+L2hvbWUv
ZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjc5OiB1bmRlZmlu
ZWQgcmVmZXJlbmNlIHRvIGBCTl9iaW4yYm4nPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25s
b2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6ODE6IHVuZGVmaW5lZCByZWZlcmVu
Y2UgdG8gYEJOX25ldyc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDIt
MS40LjIvc3JjL29wZW5zc2wuYzo4MjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fYmlu
MmJuJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMv
b3BlbnNzbC5jOjg0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9uZXcnPC9kaXY+PGRp
dj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6ODU6
IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX2JpbjJibic8L2Rpdj48ZGl2Pi9ob21lL2V2
ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5zc2wuYzo4NzogdW5kZWZpbmVk
IHJlZmVyZW5jZSB0byBgQk5fbmV3JzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMv
bGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjg4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv
IGBCTl9iaW4yYm4nPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEu
NC4yL3NyYy9vcGVuc3NsLmM6OTA6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX25ldyc8
L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL29wZW5z
c2wuYzo5MTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fYmluMmJuJzwvZGl2PjxkaXY+
L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvb3BlbnNzbC5jOjkzOiB1
bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9uZXcnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rv
d25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9vcGVuc3NsLmM6OTQ6IHVuZGVmaW5lZCByZWZl
cmVuY2UgdG8gYEJOX2JpbjJibic8L2Rpdj48ZGl2Pi91c3IvbG9jYWwvbGlic3NoMi9saWIv
L2xpYnNzaDIuYShnbG9iYWwubyk6IEluIGZ1bmN0aW9uIGBsaWJzc2gyX2luaXQnOjwvZGl2
PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvZ2xvYmFsLmM6
NDg6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYE9QRU5TU0xfYWRkX2FsbF9hbGdvcml0aG1z
X25vY29uZic8L2Rpdj48ZGl2Pi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShr
ZXgubyk6IEluIGZ1bmN0aW9uIGBkaWZmaWVfaGVsbG1hbl9zaGExJzo8L2Rpdj48ZGl2Pi9o
b21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjY0MjogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgQk5fY2xlYXJfZnJlZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIv
RG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjY0NDogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgQk5fY2xlYXJfZnJlZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRz
L2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjY0NjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
Qk5fY2xlYXJfZnJlZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDIt
MS40LjIvc3JjL2tleC5jOjY0ODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fY2xlYXJf
ZnJlZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3Jj
L2tleC5jOjY1MDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fQ1RYX2ZyZWUnPC9kaXY+
PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo5Njog
dW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fQ1RYX25ldyc8L2Rpdj48ZGl2Pi9ob21lL2V2
ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjk3OiB1bmRlZmluZWQgcmVm
ZXJlbmNlIHRvIGBCTl9uZXcnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJz
c2gyLTEuNC4yL3NyYy9rZXguYzo5ODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fbmV3
JzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4
LmM6OTk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX25ldyc8L2Rpdj48ZGl2Pi9ob21l
L2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjEwMDogdW5kZWZpbmVk
IHJlZmVyZW5jZSB0byBgQk5fbmV3JzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMv
bGlic3NoMi0xLjQuMi9zcmMva2V4LmM6MTA2OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBC
Tl9yYW5kJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9z
cmMva2V4LmM6MTA3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9tb2RfZXhwJzwvZGl2
PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6MTEz
OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9udW1fYml0cyc8L2Rpdj48ZGl2Pi9ob21l
L2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjExNDogdW5kZWZpbmVk
IHJlZmVyZW5jZSB0byBgQk5fbnVtX2JpdHMnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25s
b2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzoxMjk6IHVuZGVmaW5lZCByZWZlcmVuY2Ug
dG8gYEJOX251bV9iaXRzJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3No
Mi0xLjQuMi9zcmMva2V4LmM6MTMwOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9ibjJi
aW4nPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9r
ZXguYzoyMjE6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9nZXRfZGlnZXN0YnluYW1l
JzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4
LmM6MjIxOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0SW5pdCc8L2Rpdj48
ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjIyMjog
dW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZSc8L2Rpdj48ZGl2Pi9o
b21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjIyNDogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdEZpbmFsJzwvZGl2PjxkaXY+L2hvbWUvZXZl
ci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6MjQzOiB1bmRlZmluZWQgcmVm
ZXJlbmNlIHRvIGBFVlBfZ2V0X2RpZ2VzdGJ5bmFtZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIv
RG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjI0MzogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgRVZQX0RpZ2VzdEluaXQnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fk
cy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzoyNDQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8g
YEVWUF9EaWdlc3RVcGRhdGUnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJz
c2gyLTEuNC4yL3NyYy9rZXguYzoyNDY6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9E
aWdlc3RGaW5hbCc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40
LjIvc3JjL2tleC5jOjEzNDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fYm4yYmluJzwv
ZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6
Mjc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9iaW4yYm4nPC9kaXY+PGRpdj4vaG9t
ZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzoyODI6IHVuZGVmaW5l
ZCByZWZlcmVuY2UgdG8gYEJOX21vZF9leHAnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25s
b2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzoyODQ6IHVuZGVmaW5lZCByZWZlcmVuY2Ug
dG8gYEJOX251bV9iaXRzJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3No
Mi0xLjQuMi9zcmMva2V4LmM6Mjg1OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9udW1f
Yml0cyc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3Jj
L2tleC5jOjI5ODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fbnVtX2JpdHMnPC9kaXY+
PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzoyOTk6
IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX2JuMmJpbic8L2Rpdj48ZGl2Pi9ob21lL2V2
ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjMwNTogdW5kZWZpbmVkIHJl
ZmVyZW5jZSB0byBgRVZQX2dldF9kaWdlc3RieW5hbWUnPC9kaXY+PGRpdj4vaG9tZS9ldmVy
L0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzozMDU6IHVuZGVmaW5lZCByZWZl
cmVuY2UgdG8gYEVWUF9EaWdlc3RJbml0JzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9h
ZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6MzA5OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv
IGBFVlBfRGlnZXN0VXBkYXRlJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGli
c3NoMi0xLjQuMi9zcmMva2V4LmM6MzExOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBf
RGlnZXN0VXBkYXRlJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0x
LjQuMi9zcmMva2V4LmM6MzI2OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0
VXBkYXRlJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9z
cmMva2V4LmM6MzI4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRl
JzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4
LmM6MzM0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJzwvZGl2
PjxkaXY+L3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKGtleC5vKTovaG9tZS9l
dmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzozMzY6IG1vcmUgdW5kZWZp
bmVkIHJlZmVyZW5jZXMgdG8gYEVWUF9EaWdlc3RVcGRhdGUnIGZvbGxvdzwvZGl2PjxkaXY+
L3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKGtleC5vKTogSW4gZnVuY3Rpb24g
YGRpZmZpZV9oZWxsbWFuX3NoYTEnOjwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMv
bGlic3NoMi0xLjQuMi9zcmMva2V4LmM6Mzk2OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBF
VlBfRGlnZXN0RmluYWwnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gy
LTEuNC4yL3NyYy9rZXguYzo0NzA6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdl
c3RVcGRhdGUnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4y
L3NyYy9rZXguYzo0NzA6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RGaW5h
bCc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tl
eC5jOjQ3MDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX2dldF9kaWdlc3RieW5hbWUn
PC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXgu
Yzo0NzA6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RJbml0JzwvZGl2Pjxk
aXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NDcwOiB1
bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJzwvZGl2PjxkaXY+L2hv
bWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NDcwOiB1bmRlZmlu
ZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJzwvZGl2PjxkaXY+L2hvbWUvZXZl
ci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NDcwOiB1bmRlZmluZWQgcmVm
ZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3du
bG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NDcwOiB1bmRlZmluZWQgcmVmZXJlbmNl
IHRvIGBFVlBfRGlnZXN0VXBkYXRlJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMv
bGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NDc3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBF
VlBfRGlnZXN0VXBkYXRlJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3No
Mi0xLjQuMi9zcmMva2V4LmM6NDc3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGln
ZXN0RmluYWwnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4y
L3NyYy9rZXguYzo0Nzc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9nZXRfZGlnZXN0
YnluYW1lJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9z
cmMva2V4LmM6NDc3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0SW5pdCc8
L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5j
OjQ3NzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZSc8L2Rpdj48
ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjQ3Nzog
dW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZSc8L2Rpdj48ZGl2Pi9o
b21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjQ3NzogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZSc8L2Rpdj48ZGl2Pi9ob21lL2V2
ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjQ3NzogdW5kZWZpbmVkIHJl
ZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93
bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjUxNzogdW5kZWZpbmVkIHJlZmVyZW5j
ZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRz
L2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjUxNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
RVZQX0RpZ2VzdEZpbmFsJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3No
Mi0xLjQuMi9zcmMva2V4LmM6NTE3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfZ2V0
X2RpZ2VzdGJ5bmFtZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDIt
MS40LjIvc3JjL2tleC5jOjUxNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2Vz
dEluaXQnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3Ny
Yy9rZXguYzo1MTc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RVcGRhdGUn
PC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXgu
Yzo1MTc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RVcGRhdGUnPC9kaXY+
PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo1MTc6
IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RVcGRhdGUnPC9kaXY+PGRpdj4v
aG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo1MTc6IHVuZGVm
aW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RVcGRhdGUnPC9kaXY+PGRpdj4vaG9tZS9l
dmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo1NjI6IHVuZGVmaW5lZCBy
ZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RVcGRhdGUnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rv
d25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo1NjI6IHVuZGVmaW5lZCByZWZlcmVu
Y2UgdG8gYEVWUF9EaWdlc3RGaW5hbCc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRz
L2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjU2MjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
RVZQX2dldF9kaWdlc3RieW5hbWUnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9s
aWJzc2gyLTEuNC4yL3NyYy9rZXguYzo1NjI6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVW
UF9EaWdlc3RJbml0JzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0x
LjQuMi9zcmMva2V4LmM6NTYyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0
VXBkYXRlJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9z
cmMva2V4LmM6NTYyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRl
JzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4
LmM6NTYyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJzwvZGl2
PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NTYy
OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJzwvZGl2PjxkaXY+
L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NTI0OiB1bmRl
ZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0VXBkYXRlJzwvZGl2PjxkaXY+L2hvbWUv
ZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NTI0OiB1bmRlZmluZWQg
cmVmZXJlbmNlIHRvIGBFVlBfRGlnZXN0RmluYWwnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rv
d25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo1MjQ6IHVuZGVmaW5lZCByZWZlcmVu
Y2UgdG8gYEVWUF9nZXRfZGlnZXN0YnluYW1lJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3du
bG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NTI0OiB1bmRlZmluZWQgcmVmZXJlbmNl
IHRvIGBFVlBfRGlnZXN0SW5pdCc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xp
YnNzaDItMS40LjIvc3JjL2tleC5jOjUyNDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQ
X0RpZ2VzdFVwZGF0ZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDIt
MS40LjIvc3JjL2tleC5jOjUyNDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2Vz
dFVwZGF0ZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIv
c3JjL2tleC5jOjUyNDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0
ZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tl
eC5jOjUyNDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZSc8L2Rp
dj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjU4
ODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZSc8L2Rpdj48ZGl2
Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjU4ODogdW5k
ZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdEZpbmFsJzwvZGl2PjxkaXY+L2hvbWUv
ZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NTg4OiB1bmRlZmluZWQg
cmVmZXJlbmNlIHRvIGBFVlBfZ2V0X2RpZ2VzdGJ5bmFtZSc8L2Rpdj48ZGl2Pi9ob21lL2V2
ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjU4ODogdW5kZWZpbmVkIHJl
ZmVyZW5jZSB0byBgRVZQX0RpZ2VzdEluaXQnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25s
b2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo1ODg6IHVuZGVmaW5lZCByZWZlcmVuY2Ug
dG8gYEVWUF9EaWdlc3RVcGRhdGUnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9s
aWJzc2gyLTEuNC4yL3NyYy9rZXguYzo1ODg6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVW
UF9EaWdlc3RVcGRhdGUnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gy
LTEuNC4yL3NyYy9rZXguYzo1ODg6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdl
c3RVcGRhdGUnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4y
L3NyYy9rZXguYzo1ODg6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9EaWdlc3RVcGRh
dGUnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9r
ZXguYzozMDI6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX2JuMmJpbic8L2Rpdj48ZGl2
Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjMxNzogdW5k
ZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZSc8L2Rpdj48ZGl2Pi9ob21l
L2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjMxOTogdW5kZWZpbmVk
IHJlZmVyZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIv
RG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjM2NTogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgRVZQX0RpZ2VzdFVwZGF0ZSc8L2Rpdj48ZGl2Pi91c3IvbG9jYWwvbGlic3No
Mi9saWIvL2xpYnNzaDIuYShrZXgubyk6IEluIGZ1bmN0aW9uIGBrZXhfbWV0aG9kX2RpZmZp
ZV9oZWxsbWFuX2dyb3VwMV9zaGExX2tleV9leGNoYW5nZSc6PC9kaXY+PGRpdj4vaG9tZS9l
dmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo3MjU6IHVuZGVmaW5lZCBy
ZWZlcmVuY2UgdG8gYEJOX2NsZWFyX2ZyZWUnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25s
b2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo3Mjc6IHVuZGVmaW5lZCByZWZlcmVuY2Ug
dG8gYEJOX2NsZWFyX2ZyZWUnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJz
c2gyLTEuNC4yL3NyYy9rZXguYzo3MDY6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX25l
dyc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tl
eC5jOjcwNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fbmV3JzwvZGl2PjxkaXY+L2hv
bWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NzEwOiB1bmRlZmlu
ZWQgcmVmZXJlbmNlIHRvIGBCTl9zZXRfd29yZCc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93
bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjcxMTogdW5kZWZpbmVkIHJlZmVyZW5j
ZSB0byBgQk5fYmluMmJuJzwvZGl2PjxkaXY+L3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGli
c3NoMi5hKGtleC5vKTogSW4gZnVuY3Rpb24gYGtleF9tZXRob2RfZGlmZmllX2hlbGxtYW5f
Z3JvdXBfZXhjaGFuZ2Vfc2hhMV9rZXlfZXhjaGFuZ2UnOjwvZGl2PjxkaXY+L2hvbWUvZXZl
ci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6OTAyOiB1bmRlZmluZWQgcmVm
ZXJlbmNlIHRvIGBCTl9jbGVhcl9mcmVlJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9h
ZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6OTA0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv
IGBCTl9jbGVhcl9mcmVlJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3No
Mi0xLjQuMi9zcmMva2V4LmM6ODI1OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9uZXcn
PC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXgu
Yzo4MjY6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEJOX25ldyc8L2Rpdj48ZGl2Pi9ob21l
L2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjg4MDogdW5kZWZpbmVk
IHJlZmVyZW5jZSB0byBgQk5fYmluMmJuJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9h
ZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6ODg1OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv
IGBCTl9iaW4yYm4nPC9kaXY+PGRpdj4vdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gy
LmEoa2V4Lm8pOiBJbiBmdW5jdGlvbiBga2V4X21ldGhvZF9kaWZmaWVfaGVsbG1hbl9ncm91
cDE0X3NoYTFfa2V5X2V4Y2hhbmdlJzo8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRz
L2xpYnNzaDItMS40LjIvc3JjL2tleC5jOjgwMjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
Qk5fY2xlYXJfZnJlZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDIt
MS40LjIvc3JjL2tleC5jOjgwNDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fY2xlYXJf
ZnJlZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3Jj
L2tleC5jOjc4MTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQk5fbmV3JzwvZGl2PjxkaXY+
L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMva2V4LmM6NzgyOiB1bmRl
ZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9uZXcnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25s
b2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzo3ODY6IHVuZGVmaW5lZCByZWZlcmVuY2Ug
dG8gYEJOX3NldF93b3JkJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3No
Mi0xLjQuMi9zcmMva2V4LmM6Nzg3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBCTl9iaW4y
Ym4nPC9kaXY+PGRpdj4vdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEoa2V4Lm8p
OiBJbiBmdW5jdGlvbiBga2V4aW5pdCc6PC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fk
cy9saWJzc2gyLTEuNC4yL3NyYy9rZXguYzoxMDY5OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv
IGBSQU5EX2J5dGVzJzwvZGl2PjxkaXY+L3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3No
Mi5hKG1hYy5vKTogSW4gZnVuY3Rpb24gYG1hY19tZXRob2RfaG1hY19yaXBlbWQxNjBfaGFz
aCc6PC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9t
YWMuYzoyNjA6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9yaXBlbWQxNjAnPC9kaXY+
PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9tYWMuYzoyNjA6
IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEhNQUNfSW5pdCc8L2Rpdj48ZGl2Pi9ob21lL2V2
ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL21hYy5jOjI2MTogdW5kZWZpbmVkIHJl
ZmVyZW5jZSB0byBgSE1BQ19VcGRhdGUnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fk
cy9saWJzc2gyLTEuNC4yL3NyYy9tYWMuYzoyNjI6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8g
YEhNQUNfVXBkYXRlJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0x
LjQuMi9zcmMvbWFjLmM6MjY2OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBITUFDX0ZpbmFs
JzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvbWFj
LmM6MjY3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBITUFDX0NUWF9jbGVhbnVwJzwvZGl2
PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvbWFjLmM6MjY0
OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBITUFDX1VwZGF0ZSc8L2Rpdj48ZGl2Pi91c3Iv
bG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShtYWMubyk6IEluIGZ1bmN0aW9uIGBtYWNf
bWV0aG9kX2htYWNfbWQ1X2hhc2gnOjwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMv
bGlic3NoMi0xLjQuMi9zcmMvbWFjLmM6MTg4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBF
VlBfbWQ1JzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9z
cmMvbWFjLmM6MTg4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBITUFDX0luaXQnPC9kaXY+
PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9tYWMuYzoxODk6
IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEhNQUNfVXBkYXRlJzwvZGl2PjxkaXY+L2hvbWUv
ZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvbWFjLmM6MTkwOiB1bmRlZmluZWQg
cmVmZXJlbmNlIHRvIGBITUFDX1VwZGF0ZSc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxv
YWRzL2xpYnNzaDItMS40LjIvc3JjL21hYy5jOjE5NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0
byBgSE1BQ19GaW5hbCc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDIt
MS40LjIvc3JjL21hYy5jOjE5NTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgSE1BQ19DVFhf
Y2xlYW51cCc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIv
c3JjL21hYy5jOjE5MjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgSE1BQ19VcGRhdGUnPC9k
aXY+PGRpdj4vdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEobWFjLm8pOiBJbiBm
dW5jdGlvbiBgbWFjX21ldGhvZF9obWFjX3NoYTFfaGFzaCc6PC9kaXY+PGRpdj4vaG9tZS9l
dmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9tYWMuYzoxMTY6IHVuZGVmaW5lZCBy
ZWZlcmVuY2UgdG8gYEVWUF9zaGExJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMv
bGlic3NoMi0xLjQuMi9zcmMvbWFjLmM6MTE2OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBI
TUFDX0luaXQnPC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4y
L3NyYy9tYWMuYzoxMTc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEhNQUNfVXBkYXRlJzwv
ZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvbWFjLmM6
MTE4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBITUFDX1VwZGF0ZSc8L2Rpdj48ZGl2Pi9o
b21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL21hYy5jOjEyMjogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgSE1BQ19GaW5hbCc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93
bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL21hYy5jOjEyMzogdW5kZWZpbmVkIHJlZmVyZW5j
ZSB0byBgSE1BQ19DVFhfY2xlYW51cCc8L2Rpdj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRz
L2xpYnNzaDItMS40LjIvc3JjL21hYy5jOjEyMDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
SE1BQ19VcGRhdGUnPC9kaXY+PGRpdj4vdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gy
LmEoY29tcC5vKTogSW4gZnVuY3Rpb24gYGNvbXBfbWV0aG9kX3psaWJfZHRvcic6PC9kaXY+
PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9jb21wLmM6MzQ5
OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBpbmZsYXRlRW5kJzwvZGl2PjxkaXY+L2hvbWUv
ZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvY29tcC5jOjM0NzogdW5kZWZpbmVk
IHJlZmVyZW5jZSB0byBgZGVmbGF0ZUVuZCc8L2Rpdj48ZGl2Pi91c3IvbG9jYWwvbGlic3No
Mi9saWIvL2xpYnNzaDIuYShjb21wLm8pOiBJbiBmdW5jdGlvbiBgY29tcF9tZXRob2Rfemxp
Yl9kZWNvbXAnOjwvZGl2PjxkaXY+L2hvbWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQu
Mi9zcmMvY29tcC5jOjI1NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgaW5mbGF0ZSc8L2Rp
dj48ZGl2Pi9ob21lL2V2ZXIvRG93bmxvYWRzL2xpYnNzaDItMS40LjIvc3JjL2NvbXAuYzoz
MTg6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGluZmxhdGUnPC9kaXY+PGRpdj4vdXNyL2xv
Y2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEoY29tcC5vKTogSW4gZnVuY3Rpb24gYGNvbXBf
bWV0aG9kX3psaWJfY29tcCc6PC9kaXY+PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJz
c2gyLTEuNC4yL3NyYy9jb21wLmM6MTk4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBkZWZs
YXRlJzwvZGl2PjxkaXY+L3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKGNvbXAu
byk6IEluIGZ1bmN0aW9uIGBjb21wX21ldGhvZF96bGliX2luaXQnOjwvZGl2PjxkaXY+L2hv
bWUvZXZlci9Eb3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvY29tcC5jOjE1OTogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgaW5mbGF0ZUluaXRfJzwvZGl2PjxkaXY+L2hvbWUvZXZlci9E
b3dubG9hZHMvbGlic3NoMi0xLjQuMi9zcmMvY29tcC5jOjE1NjogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgZGVmbGF0ZUluaXRfJzwvZGl2PjxkaXY+L3Vzci9sb2NhbC9saWJzc2gyL2xp
Yi8vbGlic3NoMi5hKGNyeXB0Lm8pOiBJbiBmdW5jdGlvbiBgY3J5cHRfZHRvcic6PC9kaXY+
PGRpdj4vaG9tZS9ldmVyL0Rvd25sb2Fkcy9saWJzc2gyLTEuNC4yL3NyYy9jcnlwdC5jOjEx
MTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX0NJUEhFUl9DVFhfY2xlYW51cCc8L2Rp
dj48ZGl2Pi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShjcnlwdC5vKTooLnJv
ZGF0YSsweGY4KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX2Flc18yNTZfY2JjJzwv
ZGl2PjxkaXY+L3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKGNyeXB0Lm8pOigu
cm9kYXRhKzB4MTM4KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX2Flc18yNTZfY2Jj
JzwvZGl2PjxkaXY+L3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKGNyeXB0Lm8p
Oigucm9kYXRhKzB4MTc4KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX2Flc18xOTJf
Y2JjJzwvZGl2PjxkaXY+L3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKGNyeXB0
Lm8pOigucm9kYXRhKzB4MWI4KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX2Flc18x
MjhfY2JjJzwvZGl2PjxkaXY+L3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKGNy
eXB0Lm8pOigucm9kYXRhKzB4MWY4KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX2Jm
X2NiYyc8L2Rpdj48ZGl2Pi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShjcnlw
dC5vKTooLnJvZGF0YSsweDIzOCk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9yYzQn
PC9kaXY+PGRpdj4vdXNyL2xvY2FsL2xpYnNzaDIvbGliLy9saWJzc2gyLmEoY3J5cHQubyk6
KC5yb2RhdGErMHgyNzgpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBFVlBfcmM0JzwvZGl2
PjxkaXY+L3Vzci9sb2NhbC9saWJzc2gyL2xpYi8vbGlic3NoMi5hKGNyeXB0Lm8pOigucm9k
YXRhKzB4MmI4KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRVZQX2Nhc3Q1X2NiYyc8L2Rp
dj48ZGl2Pi91c3IvbG9jYWwvbGlic3NoMi9saWIvL2xpYnNzaDIuYShjcnlwdC5vKTooLnJv
ZGF0YSsweDJmOCk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYEVWUF9kZXNfZWRlM19jYmMn
PC9kaXY+PGRpdj5jb2xsZWN0MjogbGQgt7W72CAxPC9kaXY+PC9kaXY+PC9kaXY+

------=_NextPart_5007F713_D593EFB0_1E98B8C9--


--===============1671034136==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1671034136==--

From libssh2-devel-bounces@cool.haxx.se  Thu Jul 19 14:37:59 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6JCbpwW000636;
	Thu, 19 Jul 2012 14:37:58 +0200
Received: from dns-factory.at (mail.dns-factory.at [194.242.35.75])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6JCbnXw000623
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Thu, 19 Jul 2012 14:37:50 +0200
Received: from [172.17.100.7] lists@gknw.net [37.201.243.102]
 by dns-factory.at with NetMail SMTP Agent $Revision: 8582 $ on Novell NetWare
 via secured & encrypted transport (TLS);
 Thu, 19 Jul 2012 14:37:40 +0200
Message-ID: <5007FF8A.5070602@gknw.net>
Date: Thu, 19 Jul 2012 14:37:30 +0200
From: Guenter <lists@gknw.net>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de;
 rv:1.9.2.28) Gecko/20120306 Lightning/1.0b2 Thunderbird/3.1.20
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2.a static linking problem
References: <tencent_2C4571327B4DAC986BCEEC70@qq.com>
In-Reply-To: <tencent_2C4571327B4DAC986BCEEC70@qq.com>
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id
 q6JCbnXw000623
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="gb18030"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id q6JCbpwW000636

Hi,
Am 19.07.2012 14:01, schrieb £Å£ö£å£ò:
> when I execute
> gcc -Wall -Wl,-as-needed -o ssh_exec ssh2_exec.c
> -I/usr/local/libssh2/include -L/usr/local/libssh2/lib/ -L/lib64
> -Wl,-Bstatic -lssh2 -Wl,-Bdynamic -lpthread
> cmd,I got the following text,but when I use the share lib,that is ok.
> /usr/local/libssh2/lib//libssh2.a(channel.o): In function `channel_x11_req':
> /home/ever/Downloads/libssh2-1.4.2/src/channel.c:1138: undefined
> reference to `RAND_bytes'
you need to add crypto lib dependencies (in your case seems to be 
openssl) when you statically link.

G¨¹n.



_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Jul 23 17:16:53 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6NFGKOn014082;
	Mon, 23 Jul 2012 17:16:45 +0200
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6NFGHZP014048
 for <libssh2-devel@cool.haxx.se>; Mon, 23 Jul 2012 17:16:18 +0200
Received: (qmail 30502 invoked from network); 23 Jul 2012 15:16:14 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 23 Jul 2012 15:16:14 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 1.0dev
Precedence: bulk
Auto-Submitted: auto-generated
X-Mailer: Trac 1.0dev, by Edgewall Software
To: maxmtl2002@yahoo.ca
X-Trac-Project: libssh2
Date: Mon, 23 Jul 2012 15:16:14 -0000
X-URL: http://trac.libssh2.org/
Subject: [libssh2] #246: libssh2_session_free does not release channels
X-Trac-Ticket-URL: http://trac.libssh2.org/ticket/246
Message-ID: <042.2a3670b7f574aad1a217165a34a7f783@libssh2.stuge.se>
X-Trac-Ticket-ID: 246
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id q6NFGHZP014048
Cc: libssh2-devel@cool.haxx.se
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

#246: libssh2_session_free does not release channels
----------------------+--------------------
 Reporter:  maxmtl    |       Owner:
     Type:  defect    |      Status:  new
 Priority:  normal    |   Milestone:  1.4.3
Component:  protocol  |     Version:  1.4.2
 Keywords:            |  Blocked By:
   Blocks:            |
----------------------+--------------------
 If libssh2_session_free is called without the channel being freed
 previously by libssh2_channel_free a memory leak could occur.

 A mismatch of states variables in session_free() prevent the call to
 libssh2_channel_free function. session->state member is used instead of
 session->free_state.

 It causes a leak of around 600 bytes on every connection on my systems
 (Linux, x64 and PPC).

 The following patch correct the problem. Note that I am not sure of the
 state usage at line 861:

 if (session->state & LIBSSH2_STATE_NEWKEYS)

 I think it must stay as session->state.


 (Debugging done under contract for Accedian Networks)

-- 
Ticket URL: <http://trac.libssh2.org/ticket/246>
libssh2 <http://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 27 02:55:43 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6R0tKnk017369;
	Fri, 27 Jul 2012 02:55:37 +0200
Received: from mail.panic.com (posh.panic.com [38.103.165.4])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6R0tIZF017327
 for <libssh2-devel@cool.haxx.se>; Fri, 27 Jul 2012 02:55:18 +0200
Received: from [10.0.0.190] (unknown [38.103.165.36])
 by mail.panic.com (Postfix) with ESMTPSA id 301215DEA681
 for <libssh2-devel@cool.haxx.se>; Thu, 26 Jul 2012 17:55:14 -0700 (PDT)
From: Dave Hayden <dave@panic.com>
Subject: compression
Date: Thu, 26 Jul 2012 17:55:15 -0700
Message-Id: <33895DCF-903D-4977-9E6F-954F0C72920D@panic.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Mime-Version: 1.0 (Apple Message framework v1280)
X-Mailer: Apple Mail (2.1280)
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id
 q6R0tIZF017327
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Is compression supposed to work? It looks like when you set the LIBSSH2_FLAG_COMPRESS flag, it sets up the compression methods in kex and then tries to do compression during userauth. The server (OpenSSH is all I've got to test against) apparently expects userauth to be uncompressed. Here's a fix that works in my case--moving the comp method aside after kex then back again in _libssh2_channel_open. I'm not totally familiar with libssh2's guts, so there's probably a better way to do this (maybe using session->state instead?). Using _libssh2_channel_open like that seems a little sketchy to me.

Hope this helps,
-Dave


diff -r -u /Users/dave/Desktop/libssh2-1.4.2/src/channel.c src/channel.c
--- /Users/dave/Desktop/libssh2-1.4.2/src/channel.c	2012-05-18 14:29:03.000000000 -0700
+++ src/channel.c	2012-07-26 17:20:11.000000000 -0700
@@ -140,7 +140,10 @@
     };
     unsigned char *s;
     int rc;
-
+	
+    session->local.comp = session->local.agreed_comp;
+    session->remote.comp = session->remote.agreed_comp;
+	
     if (session->open_state == libssh2_NB_state_idle) {
         session->open_channel = NULL;
         session->open_packet = NULL;
diff -r -u /Users/dave/Desktop/libssh2-1.4.2/src/comp.c src/comp.c
--- /Users/dave/Desktop/libssh2-1.4.2/src/comp.c	2011-10-25 14:30:50.000000000 -0700
+++ src/comp.c	2012-07-26 16:48:27.000000000 -0700
@@ -355,7 +355,7 @@
 }
 
 static const LIBSSH2_COMP_METHOD comp_method_zlib = {
-    "zlib",
+    "zlib@openssh.com",
     1, /* yes, this compresses */
     comp_method_zlib_init,
     comp_method_zlib_comp,
diff -r -u /Users/dave/Desktop/libssh2-1.4.2/src/libssh2_priv.h src/libssh2_priv.h
--- /Users/dave/Desktop/libssh2-1.4.2/src/libssh2_priv.h	2012-01-27 05:34:03.000000000 -0800
+++ src/libssh2_priv.h	2012-07-26 17:06:46.000000000 -0700
@@ -465,6 +465,7 @@
     uint32_t seqno;
     void *mac_abstract;
 
+    const LIBSSH2_COMP_METHOD *agreed_comp;
     const LIBSSH2_COMP_METHOD *comp;
     void *comp_abstract;
 
diff -r -u /Users/dave/Desktop/libssh2-1.4.2/src/session.c src/session.c
--- /Users/dave/Desktop/libssh2-1.4.2/src/session.c	2012-04-18 13:24:04.000000000 -0700
+++ src/session.c	2012-07-26 17:31:59.000000000 -0700
@@ -720,6 +720,13 @@
             return _libssh2_error(session, rc,
                                   "Unable to exchange encryption keys");
 
+        /* Remainder of startup shouldn't use compression. We restore it
+           in _libssh2_channel_open() */
+        session->local.agreed_comp = session->local.comp;
+        session->remote.agreed_comp = session->remote.comp;
+        session->local.comp = NULL;
+        session->remote.comp = NULL;
+
         session->startup_state = libssh2_NB_state_sent2;
     }
 
diff -r -u /Users/dave/Desktop/libssh2-1.4.2/src/transport.c src/transport.c
--- /Users/dave/Desktop/libssh2-1.4.2/src/transport.c	2012-03-16 08:39:58.000000000 -0700
+++ src/transport.c	2012-07-26 16:21:06.000000000 -0700
@@ -723,7 +723,7 @@
 
     encrypted = (session->state & LIBSSH2_STATE_NEWKEYS) ? 1 : 0;
 
-    if (encrypted && session->local.comp->compress) {
+    if (encrypted && session->local.comp && session->local.comp->compress) {
         /* the idea here is that these function must fail if the output gets
            larger than what fits in the assigned buffer so thus they don't
            check the input size as we don't know how much it compresses */


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 27 18:03:30 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6RG2ofa029277;
	Fri, 27 Jul 2012 18:03:21 +0200
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com
 [66.111.4.27])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6RG2mxg029262
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Fri, 27 Jul 2012 18:02:49 +0200
Received: from compute3.internal (compute3.nyi.mail.srv.osa [10.202.2.43])
 by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id 7F7E4204AA
 for <libssh2-devel@cool.haxx.se>; Fri, 27 Jul 2012 12:02:47 -0400 (EDT)
Received: from frontend2.nyi.mail.srv.osa ([10.202.2.161])
 by compute3.internal (MEProxy); Fri, 27 Jul 2012 12:02:47 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=castaglia.org; h=
 date:from:to:subject:in-reply-to:message-id:references
 :mime-version:content-type; s=mesmtp; bh=4VNCg4tQlDJbCT7D7R69/9b
 Iw6s=; b=cMuwBxd+ZYmZ09jtec9hGZbw6CPYTnbBSS2xzLq+G528JcY9jr/o+u9
 6yJg4DGjOAWwWKftidxyRSuUzLSmTpyEoLmfAawuvFVokJ9+iABrtGVpSQqymWkM
 JUCEY4btmBdN7uSY+iVzpvc1Y2sijVAKRJUGMXVSKOsV7c0/lozI=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=
 messagingengine.com; h=date:from:to:subject:in-reply-to
 :message-id:references:mime-version:content-type; s=smtpout; bh=
 4VNCg4tQlDJbCT7D7R69/9bIw6s=; b=GhwwT1qt2zIIHuj5dli+0FwktFB/B/w8
 Ea0jnjzNaJBgSxVEn6SmeR+jzWbtJuRnK1ZR1EoaByH+7dyJyq8oOtIE344UGAVX
 QKJabCkyJ4IL66JxQ2seRHcC4G00+rDK8B5qlVOplJ19gFeZKdW5ndJZzaFKVWfi
 BScximgCeyg=
X-Sasl-enc: ghbExPIka6bfWlCJX0IFuGF4foV55xzpgII86RNMJEfP 1343404967
Received: from familiar.local (unknown [64.71.23.251])
 by mail.messagingengine.com (Postfix) with ESMTPA id 17B8C483514
 for <libssh2-devel@cool.haxx.se>; Fri, 27 Jul 2012 12:02:47 -0400 (EDT)
Date: Fri, 27 Jul 2012 09:02:45 -0700 (PDT)
From: TJ Saunders <tj@castaglia.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: compression
In-Reply-To: <33895DCF-903D-4977-9E6F-954F0C72920D@panic.com>
Message-ID: <alpine.DEB.2.00.1207270855530.23651@familiar.castaglia.org>
References: <33895DCF-903D-4977-9E6F-954F0C72920D@panic.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se


> Is compression supposed to work? It looks like when you set the 
> LIBSSH2_FLAG_COMPRESS flag, it sets up the compression methods in kex 
> and then tries to do compression during userauth. The server (OpenSSH is 
> all I've got to test against) apparently expects userauth to be 
> uncompressed. Here's a fix that works in my case--moving the comp method 
> aside after kex then back again in _libssh2_channel_open. I'm not 
> totally familiar with libssh2's guts, so there's probably a better way 
> to do this (maybe using session->state instead?). Using 
> _libssh2_channel_open like that seems a little sketchy to me.

OpenSSH supports multiple types of compression: "zlib" (which is in the 
SSH RFCs) and "zlib@openssh.com", which is a non-standard (but commonly 
adopted) OpenSSH extension.

libssh2 currently supports the "zlib" compression, which kicks in once the 
KEXINIT has finished.  OpenSSH's "zlib@openssh.com" compression doesn't 
start until after successful user authentication.

The change you made removes libssh2's support for "zlib" compression 
(which we would want to keep); it would be better, if possible, to add 
support for the "zlib@openss.com" compression along side the existing 
"zlib" compression support.

Cheers,
TJ
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   Force is not a remedy.

   	-John Bright

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 27 23:10:12 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6RL9QG6005471;
	Fri, 27 Jul 2012 23:09:46 +0200
Received: from mail.panic.com (posh.panic.com [38.103.165.4])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q6RL9OkW005387
 for <libssh2-devel@cool.haxx.se>; Fri, 27 Jul 2012 23:09:25 +0200
Received: from [10.0.0.190] (unknown [38.103.165.36])
 by mail.panic.com (Postfix) with ESMTPSA id DAC055E182B0
 for <libssh2-devel@cool.haxx.se>; Fri, 27 Jul 2012 14:09:19 -0700 (PDT)
Mime-Version: 1.0 (Apple Message framework v1280)
Subject: Re: compression
From: Dave Hayden <dave@panic.com>
In-Reply-To: <alpine.DEB.2.00.1207270855530.23651@familiar.castaglia.org>
Date: Fri, 27 Jul 2012 14:09:19 -0700
Message-Id: <FC69439E-25BA-48EA-BC36-ED30CA26360C@panic.com>
References: <33895DCF-903D-4977-9E6F-954F0C72920D@panic.com>
 <alpine.DEB.2.00.1207270855530.23651@familiar.castaglia.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1280)
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id
 q6RL9OkW005387
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On Jul 27, 2012, at 9:02 AM, TJ Saunders wrote:

> OpenSSH supports multiple types of compression: "zlib" (which is in the 
> SSH RFCs) and "zlib@openssh.com", which is a non-standard (but commonly 
> adopted) OpenSSH extension.
> 
> libssh2 currently supports the "zlib" compression, which kicks in once the 
> KEXINIT has finished.  OpenSSH's "zlib@openssh.com" compression doesn't 
> start until after successful user authentication.
> 
> The change you made removes libssh2's support for "zlib" compression 
> (which we would want to keep); it would be better, if possible, to add 
> support for the "zlib@openss.com" compression along side the existing 
> "zlib" compression support.

Ah, I thought that might be the case. Many thanks for the note!

Here's another stab at that code, adding a "use_in_auth" flag to the LIBSSH2_COMP_METHOD struct and a separate "zlib@openssh.com" method, along with checking session->state for LIBSSH2_STATE_AUTHENTICATED. Appears to work on the OpenSSH servers I've tried against, and it should work as before with normal zlib compression. (Unless, of course, I've messed something up..)

-D


diff -r -u /Users/dave/Desktop/libssh2-1.4.2/src/comp.c src/comp.c
--- /Users/dave/Desktop/libssh2-1.4.2/src/comp.c	2011-10-25 14:30:50.000000000 -0700
+++ src/comp.c	2012-07-27 13:14:46.000000000 -0700
@@ -96,6 +96,7 @@
 static const LIBSSH2_COMP_METHOD comp_method_none = {
     "none",
     0, /* not really compressing */
+    0, /* isn't used in userauth, go figure */
     NULL,
     comp_method_none_comp,
     comp_method_none_decomp,
@@ -357,6 +358,17 @@
 static const LIBSSH2_COMP_METHOD comp_method_zlib = {
     "zlib",
     1, /* yes, this compresses */
+    1, /* do compression during userauth */
+    comp_method_zlib_init,
+    comp_method_zlib_comp,
+    comp_method_zlib_decomp,
+    comp_method_zlib_dtor,
+};
+
+static const LIBSSH2_COMP_METHOD comp_method_zlib_openssh = {
+    "zlib@openssh.com",
+    1, /* yes, this compresses */
+    0, /* don't use compression during userauth */
     comp_method_zlib_init,
     comp_method_zlib_comp,
     comp_method_zlib_decomp,
@@ -369,6 +381,7 @@
 static const LIBSSH2_COMP_METHOD *comp_methods[] = {
 #ifdef LIBSSH2_HAVE_ZLIB
     &comp_method_zlib,
+    &comp_method_zlib_openssh,
 #endif /* LIBSSH2_HAVE_ZLIB */
     &comp_method_none,
     NULL
diff -r -u /Users/dave/Desktop/libssh2-1.4.2/src/libssh2_priv.h src/libssh2_priv.h
--- /Users/dave/Desktop/libssh2-1.4.2/src/libssh2_priv.h	2012-01-27 05:34:03.000000000 -0800
+++ src/libssh2_priv.h	2012-07-27 13:05:19.000000000 -0700
@@ -892,6 +892,7 @@
 {
     const char *name;
     int compress; /* 1 if it does compress, 0 if it doesn't */
+    int use_in_auth; /* 1 if compression should be used in userauth */
     int (*init) (LIBSSH2_SESSION *session, int compress, void **abstract);
     int (*comp) (LIBSSH2_SESSION *session,
                  unsigned char *dest,
diff -r -u /Users/dave/Desktop/libssh2-1.4.2/src/transport.c src/transport.c
--- /Users/dave/Desktop/libssh2-1.4.2/src/transport.c	2012-03-16 08:39:58.000000000 -0700
+++ src/transport.c	2012-07-27 13:34:38.000000000 -0700
@@ -167,6 +167,7 @@
     unsigned char macbuf[MAX_MACSIZE];
     struct transportpacket *p = &session->packet;
     int rc;
+    int compressed;
 
     if (session->fullpacket_state == libssh2_NB_state_idle) {
         session->fullpacket_macstate = LIBSSH2_MAC_CONFIRMED;
@@ -199,9 +200,13 @@
         session->fullpacket_payload_len -= p->padding_length;
 
         /* Check for and deal with decompression */
-        if (session->remote.comp &&
-            session->remote.comp->compress &&
-            session->remote.comp_abstract) {
+        compressed =
+            session->local.comp != NULL &&
+            session->local.comp->compress &&
+            ((session->state & LIBSSH2_STATE_AUTHENTICATED) ||
+             session->local.comp->use_in_auth);
+
+        if (compressed && session->remote.comp_abstract) {
             /*
              * The buffer for the decompression (remote.comp_abstract) is
              * initialised in time when it is needed so as long it is NULL we
@@ -682,6 +687,7 @@
 #endif
     struct transportpacket *p = &session->packet;
     int encrypted;
+    int compressed;
     ssize_t ret;
     int rc;
     const unsigned char *orgdata = data;
@@ -723,7 +729,13 @@
 
     encrypted = (session->state & LIBSSH2_STATE_NEWKEYS) ? 1 : 0;
 
-    if (encrypted && session->local.comp->compress) {
+    compressed =
+        session->local.comp != NULL &&
+        session->local.comp->compress &&
+        ((session->state & LIBSSH2_STATE_AUTHENTICATED) ||
+         session->local.comp->use_in_auth);
+
+    if (encrypted && compressed) {
         /* the idea here is that these function must fail if the output gets
            larger than what fits in the assigned buffer so thus they don't
            check the input size as we don't know how much it compresses */
Daves-MacBook-Air:libssh2 dave$ 


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

