GNU logs - #21017, boring messages


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#21017: url-http: synchronous post and 302 error response not handled properly
Resent-From: Vaidheeswaran C <vaidheeswaran.chinnaraju@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 09 Jul 2015 15:32:01 +0000
Resent-Message-ID: <handler.21017.B.143645587116297 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 21017
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 21017 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.143645587116297
          (code B ref -1); Thu, 09 Jul 2015 15:32:01 +0000
Received: (at submit) by debbugs.gnu.org; 9 Jul 2015 15:31:11 +0000
Received: from localhost ([127.0.0.1]:45307 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ZDDn2-0004El-Hx
	for submit <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:31:10 -0400
Received: from eggs.gnu.org ([208.118.235.92]:47924)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <vaidheeswaran.chinnaraju@HIDDEN>)
 id 1ZD75e-0000Qi-Rd
 for submit <at> debbugs.gnu.org; Thu, 09 Jul 2015 04:21:57 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <vaidheeswaran.chinnaraju@HIDDEN>)
 id 1ZD75W-000550-7V
 for submit <at> debbugs.gnu.org; Thu, 09 Jul 2015 04:21:49 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM,
 T_DKIM_INVALID autolearn=disabled version=3.3.2
Received: from lists.gnu.org ([2001:4830:134:3::11]:43003)
 by eggs.gnu.org with esmtp (Exim 4.71)
 (envelope-from <vaidheeswaran.chinnaraju@HIDDEN>)
 id 1ZD75W-00054w-2w
 for submit <at> debbugs.gnu.org; Thu, 09 Jul 2015 04:21:46 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:33164)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <vaidheeswaran.chinnaraju@HIDDEN>)
 id 1ZD75S-0006mM-Fk
 for bug-gnu-emacs@HIDDEN; Thu, 09 Jul 2015 04:21:45 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <vaidheeswaran.chinnaraju@HIDDEN>)
 id 1ZD75O-00051r-Ee
 for bug-gnu-emacs@HIDDEN; Thu, 09 Jul 2015 04:21:42 -0400
Received: from mail-pa0-x235.google.com ([2607:f8b0:400e:c03::235]:34994)
 by eggs.gnu.org with esmtp (Exim 4.71)
 (envelope-from <vaidheeswaran.chinnaraju@HIDDEN>)
 id 1ZD75N-00051M-SI
 for bug-gnu-emacs@HIDDEN; Thu, 09 Jul 2015 04:21:38 -0400
Received: by pactm7 with SMTP id tm7so146809342pac.2
 for <bug-gnu-emacs@HIDDEN>; Thu, 09 Jul 2015 01:21:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=message-id:date:from:user-agent:mime-version:to:subject
 :content-type; bh=LDOuFT8xp/dkHkWymJwxdakmFDZ2xnHetJ0hsDd6Vko=;
 b=y5zta7aiEeZZYUUqipdp1IIYELNMMKv9xkhh3Nnu4rL4NytCfGYPk8ushqrh6NrGdT
 noRGRQzLCZEKij5EJg76w+b4cg2EdrmdIYnWfv+8+NeLBPovt9qLkERwy7oEflTaqCp9
 NB+KzC6zGbTgkoUwLLkMLtC7dNE6rxq0KCRS8Hen+dxpIMDyA3zQQFMQmdtBTXsNrBQk
 qOF785TEILDBuBDKwp+NKuhKtFYLjrAFI9eVMkdaP/SshgKPtAqX6v82k9th82wzKd3p
 10fHDu5jHUf3V5tCmVK9g1cmAGvKmVTCshejJjMTxRDXUfYHHaNVm80IwJvgkEMbCV4r
 RWzA==
X-Received: by 10.66.156.68 with SMTP id wc4mr28939560pab.126.1436430097021;
 Thu, 09 Jul 2015 01:21:37 -0700 (PDT)
Received: from [192.168.43.83] ([106.216.158.36])
 by smtp.gmail.com with ESMTPSA id vz2sm4987190pbc.71.2015.07.09.01.21.32
 for <bug-gnu-emacs@HIDDEN>
 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 09 Jul 2015 01:21:35 -0700 (PDT)
Message-ID: <559E2F13.3080801@HIDDEN>
Date: Thu, 09 Jul 2015 13:51:39 +0530
From: Vaidheeswaran C <vaidheeswaran.chinnaraju@HIDDEN>
User-Agent: Mozilla/5.0 (X11; Linux i686;
 rv:31.0) Gecko/20100101 Icedove/31.3.0
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------070802080004060405060703"
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
 (bad octet value).
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
 (bad octet value).
X-Received-From: 2001:4830:134:3::11
X-Spam-Score: -4.0 (----)
X-Mailman-Approved-At: Thu, 09 Jul 2015 11:31:07 -0400
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -4.0 (----)

This is a multi-part message in MIME format.
--------------070802080004060405060703
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit


url-http: synchronous post and 302 error response not handled
properly.  This is seen with Oddmuse wikis.

GNU Emacs is from today's master branch.

----------------------------------------------------------------

Prerequisites:

You need an oddmuse wiki that you have write access to.

----------------------------------------------------------------

The snippet below posts the "Hello Everywhere" (the "text") on to
"TemporaryPage" (the "title").

(let* ((wiki-base-url "http://localhost/cgi-bin/wiki.pl/")
       (values
	`(("pwd" . "xxxx")
	  ("recent_edit" . "off")
	  ("summary" . "Some updates")
	  ("text" . "Hello Everywhere")
	  ("title" . "TemporaryPage")
	  ("username" . "Anonymous"))))
  (let ((url-request-method "POST")
	(url-request-extra-headers
	 '(("Content-Type" . "application/x-www-form-urlencoded")))
	(url-request-data (mm-url-encode-www-form-urlencoded values)))
    (url-retrieve-synchronously wiki-base-url)
    (message "Done")))

1. Get hold of an oddmuse wiki that you have edit access to
2. Customize `url-debug' to t
3. C-x C-e the above snippet
4. See that the "Done" message gets never printed.
5. C-g your way out.
6. Verify that Oddmuse wiki page has been updated.

----------------------------------------------------------------

The HTTP process buffer says:

    HTTP/1.1 302 Found
    Status: 302 Found
    Location: http://localhost/cgi-bin/wiki.pl/TemporaryPage
    Transfer-Encoding: chunked
    Date: Thu, 09 Jul 2015 07:32:42 GMT
    Server: lighttpd/1.4.31

----------------------------------------------------------------

The *URL-DEBUG* buffer says infinite "spinning" for headers.

    http -> Contacting host: localhost:80
    http -> Marking connection as busy: localhost:80 #<process localhost>
    retrieval -> Spinning in url-retrieve-synchronously: nil (#<buffer
*http localhost:80*>)
    http -> Request is:
    POST /cgi-bin/wiki.pl/ HTTP/1.1
    MIME-Version: 1.0
    Connection: keep-alive
    Extension: Security/Digest Security/SSL
    Host: localhost
    Accept-encoding: gzip
    Accept-charset: utf-8;q=1, gb2312;q=0.5, iso-8859-1;q=0.5,
big5;q=0.5, iso-2022-jp;q=0.5, shift_jis;q=0.5, euc-tw;q=0.5,
euc-jp;q=0.5, euc-jis-2004;q=0.5, euc-kr;q=0.5, us-ascii;q=0.5,
utf-7;q=0.5, hz-gb-2312;q=0.5, big5-hkscs;q=0.5, gbk;q=0.5,
gb18030;q=0.5, iso-8859-5;q=0.5, koi8-r;q=0.5, koi8-u;q=0.5,
cp866;q=0.5, koi8-t;q=0.5, windows-1251;q=0.5, cp855;q=0.5,
iso-8859-2;q=0.5, iso-8859-3;q=0.5, iso-8859-4;q=0.5, iso-8859-9;q=0.5,
iso-8859-10;q=0.5, iso-8859-13;q=0.5, iso-8859-14;q=0.5,
iso-8859-15;q=0.5, windows-1250;q=0.5, windows-1252;q=0.5,
windows-1254;q=0.5, windows-1257;q=0.5, cp775;q=0.5, cp850;q=0.5,
cp852;q=0.5, cp857;q=0.5, cp858;q=0.5, cp860;q=0.5, cp861;q=0.5,
cp863;q=0.5, cp865;q=0.5, cp437;q=0.5, macintosh;q=0.5, next;q=0.5,
hp-roman8;q=0.5, adobe-standard-encoding;q=0.5, iso-8859-16;q=0.5,
iso-8859-7;q=0.5, windows-1253;q=0.5, cp737;q=0.5, cp851;q=0.5,
cp869;q=0.5, iso-8859-8;q=0.5, windows-1255;q=0.5, cp862;q=0.5,
iso-2022-jp-2004;q=0.5, cp874;q=0.5, iso-8859-11;q=0.5, viscii;q=0.5,
windows-1258;q=0.5, iso-8859-6;q=0.5, windows-1256;q=0.5,
iso-2022-cn;q=0.5, iso-2022-cn-ext;q=0.5, iso-2022-jp-2;q=0.5,
iso-2022-kr;q=0.5, utf-16le;q=0.5, utf-16be;q=0.5, utf-16;q=0.5,
x-ctext;q=0.5
    Accept: */*
    User-Agent: URL/Emacs
    Cookie: Wiki=pwd%251exxxx%251eusername%251eAnonymous
    Content-Type: application/x-www-form-urlencoded
    Content-length: 101


pwd=xxxx&recent_edit=off&summary=Some+updates&text=Hello+World&title=TemporaryPage&username=Anonymous
    http -> Calling after change function
`url-http-wait-for-headers-change-function' for `#<process localhost>'
    http -> url-http-wait-for-headers-change-function ( *http localhost:80*)
    http -> Saw end of headers... ( *http localhost:80*)
    http -> url-http-parse-response called in ( *http localhost:80*)
    http -> Saw chunked encoding.
    http -> Calling initial chunked-encoding for extra data at end of
headers
    http -> Reading chunk 0 (182 183 1)
    http -> Did not see start of chunk @ 183!
    http -> Spinning waiting for headers...
    retrieval -> Spinning in url-retrieve-synchronously: nil (#<buffer
*http localhost:80*>)
    http -> Calling after change function
`url-http-chunked-encoding-after-change-function' for `#<process localhost>'
    http -> Reading chunk 0 (183 188 5)
    http -> Saw start of chunk 1 (length=0, start=183
    http -> Saw end of stream chunk!
    http -> Removing terminator of last chunk
    http -> Saw end of trailers...
    http -> Marking connection as free: localhost:80 #<process localhost>
    http -> url-http-parse-headers called in ( *http localhost:80*)
    http -> url-http-parse-response called in ( *http localhost:80*)
    http -> Parsed HTTP headers: class=3 status=302
    http -> Finished parsing HTTP headers: nil
    retrieval -> Spinning in url-retrieve-synchronously: nil (#<buffer
*http localhost:80*>)
    retrieval -> Spinning in url-retrieve-synchronously: nil (#<buffer
*http localhost:80*>)

----------------------------------------------------------------

Hint for quick isolation:

If I comment out the `unless' part below (cf. url-http.el @ line 602)
thereabouts, the spinning stops altogether.


    ((or `moved-permanently `found `temporary-redirect) ; 301 302 307
     ;; If the 301|302 status code is received in response to a
     ;; request other than GET or HEAD, the user agent MUST NOT
     ;; automatically redirect the request unless it can be
     ;; confirmed by the user, since this might change the
     ;; conditions under which the request was issued.
     (unless (member url-http-method '("HEAD" "GET"))
       (setq redirect-uri nil)))

----------------------------------------------------------------

Expected behaviour:

I am attaching an edit transaction done via firefox + emacswiki
(captured with "follow TCP stream" option of wireshark)

I see a 302 response followed by a fetch of the edited page.  Whatever
be the right behaviour, I expect that synchronous fetch doesn't loop
infinitely and make emacs unusable.

--------------070802080004060405060703
Content-Type: text/plain; charset=UTF-8;
 name="oddmuse-edit-via-firefox.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="oddmuse-edit-via-firefox.txt"

R0VUIC9lbWFjcz9hY3Rpb249ZWRpdDtpZD1UZXN0IEhUVFAvMS4xDQpIb3N0OiB3d3cuZW1h
Y3N3aWtpLm9yZw0KVXNlci1BZ2VudDogTW96aWxsYS81LjAgKFgxMTsgTGludXggaTY4Njsg
cnY6MzEuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC8zMS4wIEljZXdlYXNlbC8zMS4zLjAN
CkFjY2VwdDogdGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94
bWw7cT0wLjksKi8qO3E9MC44DQpBY2NlcHQtTGFuZ3VhZ2U6IGVuLVVTLGVuO3E9MC41DQpB
Y2NlcHQtRW5jb2Rpbmc6IGd6aXAsIGRlZmxhdGUNClJlZmVyZXI6IGh0dHA6Ly93d3cuZW1h
Y3N3aWtpLm9yZy9lbWFjcy9UZXN0DQpDb29raWU6IFdpa2k9dWlobnNjdXNrYyUyNTFlMSUy
NTFldXNlcm5hbWUlMjUxZUFub255bW91cw0KQ29ubmVjdGlvbjoga2VlcC1hbGl2ZQ0KDQpI
VFRQLzEuMSAyMDAgT0sNClNlcnZlcjogbmdpbngvMS40LjYgKFVidW50dSkNCkRhdGU6IFRo
dSwgMDkgSnVsIDIwMTUgMDg6MDQ6MTAgR01UDQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsg
Y2hhcnNldD11dGYtOA0KVHJhbnNmZXItRW5jb2Rpbmc6IGNodW5rZWQNCkNvbm5lY3Rpb246
IGtlZXAtYWxpdmUNCkNvbnRlbnQtTG9jYXRpb246IGVtYWNzLnBsDQpWYXJ5OiBuZWdvdGlh
dGUsQWNjZXB0LUxhbmd1YWdlDQpUQ046IGNob2ljZQ0KWC1FbWFjc1dpa2ktU291cmNlOiBB
cGFjaGUvQ0dJDQpYLVByb3h5LUNhY2hlOiBCWVBBU1MNCg0KZDE1DQo8IURPQ1RZUEUgaHRt
bCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3
dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48dGl0bGU+RW1hY3NXaWtp
OiBFZGl0aW5nIFRlc3Q8L3RpdGxlPgo8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSJodHRwOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vdHdpdHRlci1i
b290c3RyYXAvMi4zLjAvY3NzL2Jvb3RzdHJhcC1jb21iaW5lZC5taW4uY3NzIiAvPgo8bGlu
ayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvY3NzL2Jvb3RzdHJh
cC5jc3MiIC8+CjxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0iTk9JTkRFWCxGT0xMT1ci
IC8+PGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIHRp
dGxlPSJFbWFjc1dpa2kiIGhyZWY9Imh0dHA6Ly93d3cuZW1hY3N3aWtpLm9yZy9lbWFjcz9h
Y3Rpb249cnNzIiAvPjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlvbi9y
c3MreG1sIiB0aXRsZT0iRW1hY3NXaWtpOiBUZXN0IiBocmVmPSJodHRwOi8vd3d3LmVtYWNz
d2lraS5vcmcvZW1hY3M/YWN0aW9uPXJzcztyY2lkb25seT1UZXN0IiAvPjxsaW5rIHJlbD0i
YWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIiB0aXRsZT0iRm9sbG93LXVw
cyBmb3IgQW5vbnltb3VzIiBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3M/
YWN0aW9uPXJzcztmb2xsb3d1cD1Bbm9ueW1vdXMiIC8+CjxsaW5rIHJlbD0iYWx0ZXJuYXRl
IiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIgogICAgICB0aXRsZT0iRW1hY3MgV2lraSB3
aXRoIHBhZ2UgY29udGVudCIKICAgICAgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3Jn
L2Z1bGwucnNzIiAvPgo8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24v
cnNzK3htbCIKICAgICAgdGl0bGU9IkVtYWNzIFdpa2kgd2l0aCBwYWdlIGNvbnRlbnQgYW5k
IGRpZmYiCiAgICAgIGhyZWY9Imh0dHA6Ly93d3cuZW1hY3N3aWtpLm9yZy9mdWxsLWRpZmYu
cnNzIiAvPgo8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3ht
bCIKICAgICAgdGl0bGU9IkVtYWNzIFdpa2kgaW5jbHVkaW5nIG1pbm9yIGRpZmZlcmVuY2Vz
IgogICAgICBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvbWlub3ItZWRpdHMucnNz
IiAvPgo8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIK
ICAgICAgdGl0bGU9IkNoYW5nZXMgZm9yIFRlc3Qgb25seSIKICAgICAgaHJlZj0iaHR0cDov
L3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzP2FjdGlvbj1yc3M7cmNpZG9ubHk9VGVzdCIgLz4K
PGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiCiAgICAg
IHRpdGxlPSJGb2xsb3ctdXBzIHRvIEFub255bW91cyIKICAgICAgaHJlZj0iaHR0cDovL3d3
dy5lbWFjc3dpa2kub3JnL2VtYWNzP2FjdGlvbj1yc3M7Zm9sbG93dXA9QW5vbnltb3VzIiAv
Pgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoIiAv
Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vY29kZS5qcXVl
cnkuY29tL2pxdWVyeS0xLjkuMS5taW4uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vdHdp
dHRlci1ib290c3RyYXAvMi4zLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+Cjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9lbWFjc3dpa2kub3Jn
L2Jvb3RzdHJhcC5qcyI+PC9zY3JpcHQ+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPjwvaGVhZD48Ym9keSBj
bGFzcz0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzIj48ZGl2IGNsYXNzPSJoZWFk
ZXIiPjxkaXYgY2xhc3M9Im1lbnUiPjxzcGFuIGNsYXNzPSJnb3RvYmFyIGJhciI+PGEgaHJl
Zj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzL1NpdGVNYXAiIGNsYXNzPSJsb2Nh
bCI+U2l0ZU1hcDwvYT4gPGEgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNz
L1NlYXJjaCIgY2xhc3M9ImxvY2FsIj5TZWFyY2g8L2E+IDxhIGhyZWY9Imh0dHA6Ly93d3cu
ZW1hY3N3aWtpLm9yZy9lbWFjcy9FbGlzcEFyZWEiIGNsYXNzPSJsb2NhbCI+RWxpc3BBcmVh
PC9hPiA8YSBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3MvSG93VG8iIGNs
YXNzPSJsb2NhbCI+SG93VG88L2E+IDxhIGhyZWY9Imh0dHA6Ly93d3cuZW1hY3N3aWtpLm9y
Zy9lbWFjcy9HbG9zc2FyeSIgY2xhc3M9ImxvY2FsIj5HbG9zc2FyeTwvYT4gPGEgaHJlZj0i
aHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzL1JlY2VudENoYW5nZXMiIGNsYXNzPSJs
b2NhbCI+UmVjZW50Q2hhbmdlczwvYT4gPGEgY2xhc3M9ImxvY2FsIiBocmVmPSJodHRwOi8v
d3d3LmVtYWNzd2lraS5vcmcvZW1hY3MvTmV3cyI+TmV3czwvYT4gPGEgY2xhc3M9ImxvY2Fs
IiBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3MvUHJvYmxlbXMiPlByb2Js
ZW1zPC9hPiA8YSBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3MvU3VnZ2Vz
dGlvbnMiIGNsYXNzPSJsb2NhbCI+U3VnZ2VzdGlvbnM8L2E+IDwvc3Bhbj48Zm9ybSBtZXRo
b2Q9ImdldCIgYWN0aW9uPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3MiIGVuY3R5
cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGFjY2VwdC1jaGFyc2V0PSJ1dGYtOCIgY2xhc3M9
InNlYXJjaCI+PHA+PGxhYmVsIGZvcj0ic2VhcmNoIj5TZWFyY2g6PC9sYWJlbD4gPGlucHV0
IHR5cGU9InRleHQiIG5hbWU9InNlYXJjaCIgIHNpemU9IjIwIiBpZD0ic2VhcmNoIiBhY2Nl
c3NrZXk9ImYiIC8+IDxsYWJlbCBmb3I9InNlYXJjaGxhbmciPkxhbmd1YWdlOjwvbGFiZWw+
IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsYW5nIiAgc2l6ZT0iMTAiIGlkPSJzZWFyY2hs
YW5nIiAvPiA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJkb3NlYXJjaCIgdmFsdWU9Ikdv
ISIgLz48L3A+PC9mb3JtPjwvZGl2PjxoMT5FZGl0aW5nIFRlc3Q8L2gxPjwvZGl2PjxkaXYg
Y2xhc3M9IndyYXBwZXIiPjxkaXYgY2xhc3M9ImNvbnRlbnQgZWRpdCI+DQo1YjkNCjxmb3Jt
IG1ldGhvZD0icG9zdCIgYWN0aW9uPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3Mi
IGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGFjY2VwdC1jaGFyc2V0PSJ1dGYtOCIg
Y2xhc3M9ImVkaXQgdGV4dCI+PHA+PGlucHV0IG5hbWU9InRpdGxlIiB0eXBlPSJoaWRkZW4i
IHZhbHVlPSJUZXN0IiAvPiAgPGlucHV0IG5hbWU9Im9sZHRpbWUiIHR5cGU9ImhpZGRlbiIg
dmFsdWU9IjE0MzY0Mjg5NDAiIC8+IDx0ZXh0YXJlYSBuYW1lPSJ0ZXh0IiAgcm93cz0iMjUi
IGNvbHM9Ijc4IiBpZD0idGV4dCI+SGVsbG8gV29ybGQKPC90ZXh0YXJlYT48L3A+PHA+U3Vt
bWFyeTo8YnIgLz48dGV4dGFyZWEgbmFtZT0ic3VtbWFyeSIgIHJvd3M9IjIiIGNvbHM9Ijc4
IiBpZD0ic3VtbWFyeSI+PC90ZXh0YXJlYT48L3A+PHA+PGxhYmVsPjxpbnB1dCB0eXBlPSJj
aGVja2JveCIgbmFtZT0icmVjZW50X2VkaXQiIHZhbHVlPSJvbiIgLz5UaGlzIGNoYW5nZSBp
cyBhIG1pbm9yIGVkaXQuPC9sYWJlbD48L3A+PHA+UGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29u
dHJpYnV0ZSBvbmx5IHlvdXIgb3duIHdvcmsuIElQIG51bWJlcnMgYXJlIG1hZGUgYXZhaWxh
YmxlIHZpYSB0aGUgcGFnZSBoaXN0b3J5LiBJZiB5b3Ugd2FudCB0byBrZWVwIGl0IGEgc2Vj
cmV0LCB5b3UgbmVlZCB0byB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy50b3Jwcm9qZWN0Lm9y
Zy8iPlRvcjwvYT4uIFNlZSA8YSBocmVmPSIvZW1hY3MvVGV4dEZvcm1hdHRpbmdSdWxlcyI+
VGV4dEZvcm1hdHRpbmdSdWxlczwvYT4gZm9yIGhvdyB0byBmb3JtYXQgdGV4dC4gU2VlIDxh
IGhyZWY9Ii9lbWFjcy9TdHlsZUd1aWRlIj5TdHlsZUd1aWRlPC9hPiBmb3IgdGhlIHN1Z2dl
c3RlZCB3cml0aW5nIHN0eWxlIG9uIHRoaXMgd2lraS48L3A+PHA+PGxhYmVsIGZvcj0idXNl
cm5hbWUiPlVzZXJuYW1lOjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2Vy
bmFtZSIgdmFsdWU9IkFub255bW91cyIgc2l6ZT0iMjAiIG1heGxlbmd0aD0iNTAiIGlkPSJ1
c2VybmFtZSIgLz48L3A+PHA+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iU2F2ZSIgdmFs
dWU9IlNhdmUiIGFjY2Vzc2tleT0icyIgLz4gIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9
IlByZXZpZXciIHZhbHVlPSJQcmV2aWV3IiBhY2Nlc3NrZXk9InAiIC8+IDxpbnB1dCB0eXBl
PSJzdWJtaXQiIG5hbWU9IkNhbmNlbCIgdmFsdWU9IkNhbmNlbCIgLz48L3A+PHA+PGEgY2xh
c3M9InVwbG9hZCIgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzP2FjdGlv
bj1lZGl0O3VwbG9hZD0xO2lkPVRlc3QiIHJlbD0ibm9mb2xsb3ciPlJlcGxhY2UgdGhpcyB0
ZXh0IHdpdGggYSBmaWxlPC9hPjwvcD48ZGl2PjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9
Ii5jZ2lmaWVsZHMiIHZhbHVlPSJyZWNlbnRfZWRpdCIgIC8+PC9kaXY+CjwvZm9ybT48L2Rp
dj4NCjI3DQo8ZGl2IGNsYXNzPSJ3cmFwcGVyIGNsb3NlIj48L2Rpdj48L2Rpdj4NCjFhDQo8
ZGl2IGNsYXNzPSJmb290ZXIiPjxociAvPg0KMWRmDQo8ZGl2IGNsYXNzPSJlZGl0IGJhciI+
PGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9Imhpc3RvcnkiIGhyZWY9Imh0dHA6Ly93d3cuZW1h
Y3N3aWtpLm9yZy9lbWFjcz9hY3Rpb249aGlzdG9yeTtpZD1UZXN0Ij5WaWV3IG90aGVyIHJl
dmlzaW9uczwvYT4gPGEgY2xhc3M9ImxvY2FsIiBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lr
aS5vcmcvZW1hY3MvVGVzdCI+VmlldyBjdXJyZW50IHJldmlzaW9uPC9hPiA8YSByZWw9Im5v
Zm9sbG93IiBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3M/YWN0aW9uPXJj
O2FsbD0xO2Zyb209MTtzaG93ZWRpdD0xO3JjaWRvbmx5PVRlc3QiIGNsYXNzPSJyYyI+Vmll
dyBhbGwgY2hhbmdlczwvYT4gPGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImFkbWluIiBocmVm
PSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3M/YWN0aW9uPWFkbWluO2lkPVRlc3Qi
PkFkbWluaXN0cmF0aW9uPC9hPjwvZGl2Pg0KNzY0DQo8ZGl2IHN0eWxlPSJmbG9hdDpyaWdo
dDsgbWFyZ2luLWxlZnQ6MWV4OyI+CjwhLS0gQ3JlYXRpdmUgQ29tbW9ucyBMaWNlbnNlIC0t
Pgo8YSBjbGFzcz0ibGljZW5jZSIgaHJlZj0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcv
bGljZW5zZXMvR1BMLzIuMC8iPjxpbWcgYWx0PSJDQy1HTlUgR1BMIiBzdHlsZT0iYm9yZGVy
Om5vbmUiIHNyYz0iL3BpY3MvY2MtR1BMLWEucG5nIiAvPjwvYT4KPCEtLSAvQ3JlYXRpdmUg
Q29tbW9ucyBMaWNlbnNlIC0tPgo8L2Rpdj4KCjwhLS0KPHJkZjpSREYgeG1sbnM9Imh0dHA6
Ly93ZWIucmVzb3VyY2Uub3JnL2NjLyIKIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMv
ZWxlbWVudHMvMS4xLyIKIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8y
Mi1yZGYtc3ludGF4LW5zIyI+CjxXb3JrIHJkZjphYm91dD0iIj4KICAgPGxpY2Vuc2UgcmRm
OnJlc291cmNlPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9HUEwvMi4w
LyIgLz4KICA8ZGM6dHlwZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21p
dHlwZS9Tb2Z0d2FyZSIgLz4KPC9Xb3JrPgoKPExpY2Vuc2UgcmRmOmFib3V0PSJodHRwOi8v
Y3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9HUEwvMi4wLyI+CiAgIDxwZXJtaXRzIHJk
ZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvUmVwcm9kdWN0aW9uIiAv
PgogICA8cGVybWl0cyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2Nj
L0Rpc3RyaWJ1dGlvbiIgLz4KICAgPHJlcXVpcmVzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dl
Yi5yZXNvdXJjZS5vcmcvY2MvTm90aWNlIiAvPgogICA8cGVybWl0cyByZGY6cmVzb3VyY2U9
Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL0Rlcml2YXRpdmVXb3JrcyIgLz4KICAgPHJl
cXVpcmVzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvU2hhcmVB
bGlrZSIgLz4KICAgPHJlcXVpcmVzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJj
ZS5vcmcvY2MvU291cmNlQ29kZSIgLz4KPC9MaWNlbnNlPgo8L3JkZjpSREY+Ci0tPgoKPHAg
Y2xhc3M9ImxlZ2FsIj4KVGhpcyB3b3JrIGlzIGxpY2Vuc2VkIHRvIHlvdSB1bmRlciB2ZXJz
aW9uIDIgb2YgdGhlCjxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy8iPkdOVTwvYT4gPGEg
aHJlZj0iL0dQTCI+R2VuZXJhbCBQdWJsaWMgTGljZW5zZTwvYT4uCkFsdGVybmF0aXZlbHks
IHlvdSBtYXkgY2hvb3NlIHRvIHJlY2VpdmUgdGhpcyB3b3JrIHVuZGVyIGFueSBvdGhlcgps
aWNlbnNlIHRoYXQgZ3JhbnRzIHRoZSByaWdodCB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5k
L29yIGRpc3RyaWJ1dGUKdGhlIHdvcmssIGFzIGxvbmcgYXMgdGhhdCBsaWNlbnNlIGltcG9z
ZXMgdGhlIHJlc3RyaWN0aW9uIHRoYXQKZGVyaXZhdGl2ZSB3b3JrcyBoYXZlIHRvIGdyYW50
IHRoZSBzYW1lIHJpZ2h0cyBhbmQgaW1wb3NlIHRoZSBzYW1lCnJlc3RyaWN0aW9uLiBGb3Ig
ZXhhbXBsZSwgeW91IG1heSBjaG9vc2UgdG8gcmVjZWl2ZSB0aGlzIHdvcmsgdW5kZXIKdGhl
CjxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy8iPkdOVTwvYT4KPGEgaHJlZj0iL0ZETCI+
RnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2U8L2E+LCB0aGUKPGEgaHJlZj0iaHR0cDovL2Ny
ZWF0aXZlY29tbW9ucy5vcmcvIj5DcmVhdGl2ZUNvbW1vbnM8L2E+CjxhIGhyZWY9Imh0dHA6
Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL3NhLzEuMC8iPlNoYXJlQWxpa2U8L2E+
CkxpY2Vuc2UsIHRoZSBYRW1hY3MgbWFudWFsIGxpY2Vuc2UsIG9yCjxhIGhyZWY9Ii9PTEQi
PnNpbWlsYXIgbGljZW5zZXM8L2E+Lgo8L3A+CjwvZGl2Pg0KMTENCgo8L2JvZHk+CjwvaHRt
bD4KDQowDQoNClBPU1QgL2VtYWNzIEhUVFAvMS4xDQpIb3N0OiB3d3cuZW1hY3N3aWtpLm9y
Zw0KVXNlci1BZ2VudDogTW96aWxsYS81LjAgKFgxMTsgTGludXggaTY4NjsgcnY6MzEuMCkg
R2Vja28vMjAxMDAxMDEgRmlyZWZveC8zMS4wIEljZXdlYXNlbC8zMS4zLjANCkFjY2VwdDog
dGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjks
Ki8qO3E9MC44DQpBY2NlcHQtTGFuZ3VhZ2U6IGVuLVVTLGVuO3E9MC41DQpBY2NlcHQtRW5j
b2Rpbmc6IGd6aXAsIGRlZmxhdGUNClJlZmVyZXI6IGh0dHA6Ly93d3cuZW1hY3N3aWtpLm9y
Zy9lbWFjcz9hY3Rpb249ZWRpdDtpZD1UZXN0DQpDb29raWU6IFdpa2k9dWlobnNjdXNrYyUy
NTFlMSUyNTFldXNlcm5hbWUlMjUxZUFub255bW91cw0KQ29ubmVjdGlvbjoga2VlcC1hbGl2
ZQ0KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0yMDg2OTg5NTYwMTQ0MTQ4NjY0NjE0NjkyOTE1NDkNCkNv
bnRlbnQtTGVuZ3RoOiA5MjENCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0yMDg2
OTg5NTYwMTQ0MTQ4NjY0NjE0NjkyOTE1NDkNCkNvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0t
ZGF0YTsgbmFtZT0idGl0bGUiDQoNClRlc3QNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tMjA4Njk4OTU2MDE0NDE0ODY2NDYxNDY5MjkxNTQ5DQpDb250ZW50LURpc3Bvc2l0aW9u
OiBmb3JtLWRhdGE7IG5hbWU9Im9sZHRpbWUiDQoNCjE0MzY0Mjg5NDANCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tMjA4Njk4OTU2MDE0NDE0ODY2NDYxNDY5MjkxNTQ5DQpDb250
ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9InRleHQiDQoNCkhlbGxvIFdvcmxk
IQ0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTIwODY5ODk1NjAxNDQxNDg2NjQ2
MTQ2OTI5MTU0OQ0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJzdW1t
YXJ5Ig0KDQpUaGlzIGlzIGEgc3BhbSBlZGl0DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLTIwODY5ODk1NjAxNDQxNDg2NjQ2MTQ2OTI5MTU0OQ0KQ29udGVudC1EaXNwb3NpdGlv
bjogZm9ybS1kYXRhOyBuYW1lPSJ1c2VybmFtZSINCg0KQW5vbnltb3VzDQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLTIwODY5ODk1NjAxNDQxNDg2NjQ2MTQ2OTI5MTU0OQ0KQ29u
dGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJTYXZlIg0KDQpTYXZlDQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTIwODY5ODk1NjAxNDQxNDg2NjQ2MTQ2OTI5MTU0
OQ0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSIuY2dpZmllbGRzIg0K
DQpyZWNlbnRfZWRpdA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0yMDg2OTg5NTYw
MTQ0MTQ4NjY0NjE0NjkyOTE1NDktLQ0KSFRUUC8xLjEgMzAyIEZvdW5kDQpTZXJ2ZXI6IG5n
aW54LzEuNC42IChVYnVudHUpDQpEYXRlOiBUaHUsIDA5IEp1bCAyMDE1IDA4OjA0OjMyIEdN
VA0KQ29udGVudC1UeXBlOiB0ZXh0L3gtcGVybA0KQ29udGVudC1MZW5ndGg6IDANCkNvbm5l
Y3Rpb246IGtlZXAtYWxpdmUNCkxvY2F0aW9uOiBodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcv
ZW1hY3MvVGVzdA0KWC1FbWFjc1dpa2ktU291cmNlOiBBcGFjaGUvQ0dJDQoNCkdFVCAvZW1h
Y3MvVGVzdCBIVFRQLzEuMQ0KSG9zdDogd3d3LmVtYWNzd2lraS5vcmcNClVzZXItQWdlbnQ6
IE1vemlsbGEvNS4wIChYMTE7IExpbnV4IGk2ODY7IHJ2OjMxLjApIEdlY2tvLzIwMTAwMTAx
IEZpcmVmb3gvMzEuMCBJY2V3ZWFzZWwvMzEuMy4wDQpBY2NlcHQ6IHRleHQvaHRtbCxhcHBs
aWNhdGlvbi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3E9MC45LCovKjtxPTAuOA0KQWNj
ZXB0LUxhbmd1YWdlOiBlbi1VUyxlbjtxPTAuNQ0KQWNjZXB0LUVuY29kaW5nOiBnemlwLCBk
ZWZsYXRlDQpSZWZlcmVyOiBodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3M/YWN0aW9u
PWVkaXQ7aWQ9VGVzdA0KQ29va2llOiBXaWtpPXVpaG5zY3Vza2MlMjUxZTElMjUxZXVzZXJu
YW1lJTI1MWVBbm9ueW1vdXMNCkNvbm5lY3Rpb246IGtlZXAtYWxpdmUNCg0KSFRUUC8xLjEg
MjAwIE9LDQpTZXJ2ZXI6IG5naW54LzEuNC42IChVYnVudHUpDQpEYXRlOiBUaHUsIDA5IEp1
bCAyMDE1IDA4OjA0OjMzIEdNVA0KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9
dXRmLTgNClRyYW5zZmVyLUVuY29kaW5nOiBjaHVua2VkDQpDb25uZWN0aW9uOiBrZWVwLWFs
aXZlDQpWYXJ5OiBBY2NlcHQtTGFuZ3VhZ2UNClgtRW1hY3NXaWtpLVNvdXJjZTogQXBhY2hl
L0NHSQ0KWC1Qcm94eS1DYWNoZTogQllQQVNTDQoNCmVjNA0KPCFET0NUWVBFIGh0bWwgUFVC
TElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMu
b3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PHRpdGxlPkVtYWNzV2lraTogVGVz
dDwvdGl0bGU+PGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL3dpa2ki
IHRpdGxlPSJFZGl0IHRoaXMgcGFnZSIgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3Jn
L2VtYWNzP2FjdGlvbj1lZGl0O2lkPVRlc3QiIC8+CjxsaW5rIHR5cGU9InRleHQvY3NzIiBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9uZXRkbmEuYm9vdHN0cmFwY2RuLmNvbS90
d2l0dGVyLWJvb3RzdHJhcC8yLjMuMC9jc3MvYm9vdHN0cmFwLWNvbWJpbmVkLm1pbi5jc3Mi
IC8+CjxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9jc3Mv
Ym9vdHN0cmFwLmNzcyIgLz4KPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJJTkRFWCxG
T0xMT1ciIC8+PGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4
bWwiIHRpdGxlPSJFbWFjc1dpa2kiIGhyZWY9Imh0dHA6Ly93d3cuZW1hY3N3aWtpLm9yZy9l
bWFjcz9hY3Rpb249cnNzIiAvPjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNh
dGlvbi9yc3MreG1sIiB0aXRsZT0iRW1hY3NXaWtpOiBUZXN0IiBocmVmPSJodHRwOi8vd3d3
LmVtYWNzd2lraS5vcmcvZW1hY3M/YWN0aW9uPXJzcztyY2lkb25seT1UZXN0IiAvPjxsaW5r
IHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIiB0aXRsZT0iRm9s
bG93LXVwcyBmb3IgQW5vbnltb3VzIiBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcv
ZW1hY3M/YWN0aW9uPXJzcztmb2xsb3d1cD1Bbm9ueW1vdXMiIC8+CjxsaW5rIHJlbD0iYWx0
ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIgogICAgICB0aXRsZT0iRW1hY3Mg
V2lraSB3aXRoIHBhZ2UgY29udGVudCIKICAgICAgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dp
a2kub3JnL2Z1bGwucnNzIiAvPgo8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGlj
YXRpb24vcnNzK3htbCIKICAgICAgdGl0bGU9IkVtYWNzIFdpa2kgd2l0aCBwYWdlIGNvbnRl
bnQgYW5kIGRpZmYiCiAgICAgIGhyZWY9Imh0dHA6Ly93d3cuZW1hY3N3aWtpLm9yZy9mdWxs
LWRpZmYucnNzIiAvPgo8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24v
cnNzK3htbCIKICAgICAgdGl0bGU9IkVtYWNzIFdpa2kgaW5jbHVkaW5nIG1pbm9yIGRpZmZl
cmVuY2VzIgogICAgICBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvbWlub3ItZWRp
dHMucnNzIiAvPgo8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24vcnNz
K3htbCIKICAgICAgdGl0bGU9IkNoYW5nZXMgZm9yIFRlc3Qgb25seSIKICAgICAgaHJlZj0i
aHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzP2FjdGlvbj1yc3M7cmNpZG9ubHk9VGVz
dCIgLz4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwi
CiAgICAgIHRpdGxlPSJGb2xsb3ctdXBzIHRvIEFub255bW91cyIKICAgICAgaHJlZj0iaHR0
cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzP2FjdGlvbj1yc3M7Zm9sbG93dXA9QW5vbnlt
b3VzIiAvPgo8bWV0YSBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiIG5hbWU9InZpZXdw
b3J0IiAvPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvb3V0bGluZXIu
MC41LjAuNjItdG9jLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgoKICBmdW5jdGlvbiBhZGRPbmxvYWRFdmVudChmbmMpIHsKICAgIGlmICggdHlwZW9m
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyICE9ICJ1bmRlZmluZWQiICkKICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoICJsb2FkIiwgZm5jLCBmYWxzZSApOwogICAgZWxzZSBpZiAo
IHR5cGVvZiB3aW5kb3cuYXR0YWNoRXZlbnQgIT0gInVuZGVmaW5lZCIgKSB7CiAgICAgIHdp
bmRvdy5hdHRhY2hFdmVudCggIm9ubG9hZCIsIGZuYyApOwogICAgfQogICAgZWxzZSB7CiAg
ICAgIGlmICggd2luZG93Lm9ubG9hZCAhPSBudWxsICkgewoJdmFyIG9sZE9ubG9hZCA9IHdp
bmRvdy5vbmxvYWQ7Cgl3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCBlICkgewoJICBvbGRP
bmxvYWQoIGUgKTsKCSAgd2luZG93W2ZuY10oKTsKCX07CiAgICAgIH0KICAgICAgZWxzZQoJ
d2luZG93Lm9ubG9hZCA9IGZuYzsKICAgIH0KICB9CgogIC8vIGh0dHBzOi8vc3RhY2tvdmVy
Zmxvdy5jb20vcXVlc3Rpb25zLzI4MDYzNC9lbmRzd2l0aC1pbi1qYXZhc2NyaXB0CiAgaWYg
KHR5cGVvZiBTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRoICE9PSAnZnVuY3Rpb24nKSB7CiAg
ICBTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRoID0gZnVuY3Rpb24oc3VmZml4KSB7CiAgICAg
IHJldHVybiB0aGlzLmluZGV4T2Yoc3VmZml4LCB0aGlzLmxlbmd0aCAtIHN1ZmZpeC5sZW5n
dGgpICE9PSAtMTsKICAgIH07CiAgfQoKICB2YXIgaW5pdFRvYz1mdW5jdGlvbigpIHsKCiAg
ICB2YXIgb3V0bGluZSA9IEhUTUw1T3V0bGluZShkb2N1bWVudC5ib2R5KTsKICAgIGlmIChv
dXRsaW5lLnNlY3Rpb25zLmxlbmd0aCA9PSAxKSB7CiAgICAgIG91dGxpbmUuc2VjdGlvbnMg
PSBvdXRsaW5lLnNlY3Rpb25zWzBdLnNlY3Rpb25zOwogICAgfQoKICAgIGlmIChvdXRsaW5l
LnNlY3Rpb25zLmxlbmd0aCA+IDEKCXx8IG91dGxpbmUuc2VjdGlvbnMubGVuZ3RoID09IDEK
ICAgICAgICAgICAmJiBvdXRsaW5lLnNlY3Rpb25zWzBdLnNlY3Rpb25zLmxlbmd0aCA+IDAp
IHsKCiAgICAgIHZhciB0b2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9jJyk7Cgog
ICAgICBpZiAoIXRvYykgewoJdmFyIGRpdnMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgnZGl2Jyk7Cglmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsK
CSAgaWYgKGRpdnNbaV0uZ2V0QXR0cmlidXRlKCdjbGFzcycpID09ICd0b2MnKSB7CgkgICAg
dG9jID0gZGl2c1tpXTsKCSAgICBicmVhazsKCSAgfQoJfQogICAgICB9CgogICAgICBpZiAo
IXRvYykgewoJdmFyIGgyID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2gyJylb
MF07CglpZiAoaDIpIHsKCSAgdG9jID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
CgkgIHRvYy5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ3RvYycpOwoJICBoMi5wYXJlbnROb2Rl
Lmluc2VydEJlZm9yZSh0b2MsIGgyKTsKCX0KICAgICAgfQoKICAgICAgaWYgKHRvYykgewog
ICAgICAgIHZhciBodG1sID0gb3V0bGluZS5hc0hUTUwodHJ1ZSk7CiAgICAgICAgdG9jLmlu
bmVySFRNTCA9IGh0bWw7CgoJaXRlbXMgPSB0b2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2En
KTsKCWZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHsKCSAgd2hpbGUg
KGl0ZW1zW2ldLnRleHRDb250ZW50LmVuZHNXaXRoKCfDosKcwo4nKSkgewogICAgICAgICAg
ICB2YXIgdGV4dCA9IGl0ZW1zW2ldLmNoaWxkTm9kZXNbMF0ubm9kZVZhbHVlOwoJICAgIGl0
ZW1zW2ldLmNoaWxkTm9kZXNbMF0ubm9kZVZhbHVlID0gdGV4dC5zdWJzdHJpbmcoMCwgdGV4
dC5sZW5ndGggLSAxKTsKCSAgfQoJfQogICAgICB9CiAgICB9DQo3MzkNCgogIH0KCiAgYWRk
T25sb2FkRXZlbnQoaW5pdFRvYyk7CiAgPC9zY3JpcHQ+Cgo8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJodHRwOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjkuMS5t
aW4uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJo
dHRwOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vdHdpdHRlci1ib290c3RyYXAvMi4zLjAv
anMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Imh0dHA6Ly9lbWFjc3dpa2kub3JnL2Jvb3RzdHJhcC5qcyI+PC9zY3Jp
cHQ+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PXV0Zi04IiAvPjwvaGVhZD48Ym9keSBjbGFzcz0iaHR0cDovL3d3dy5lbWFj
c3dpa2kub3JnL2VtYWNzIj48ZGl2IGNsYXNzPSJoZWFkZXIiPjxkaXYgY2xhc3M9Im1lbnUi
PjxzcGFuIGNsYXNzPSJnb3RvYmFyIGJhciI+PGEgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dp
a2kub3JnL2VtYWNzL1NpdGVNYXAiIGNsYXNzPSJsb2NhbCI+U2l0ZU1hcDwvYT4gPGEgY2xh
c3M9ImxvY2FsIiBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3MvU2VhcmNo
Ij5TZWFyY2g8L2E+IDxhIGNsYXNzPSJsb2NhbCIgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dp
a2kub3JnL2VtYWNzL0VsaXNwQXJlYSI+RWxpc3BBcmVhPC9hPiA8YSBocmVmPSJodHRwOi8v
d3d3LmVtYWNzd2lraS5vcmcvZW1hY3MvSG93VG8iIGNsYXNzPSJsb2NhbCI+SG93VG88L2E+
IDxhIGhyZWY9Imh0dHA6Ly93d3cuZW1hY3N3aWtpLm9yZy9lbWFjcy9HbG9zc2FyeSIgY2xh
c3M9ImxvY2FsIj5HbG9zc2FyeTwvYT4gPGEgY2xhc3M9ImxvY2FsIiBocmVmPSJodHRwOi8v
d3d3LmVtYWNzd2lraS5vcmcvZW1hY3MvUmVjZW50Q2hhbmdlcyI+UmVjZW50Q2hhbmdlczwv
YT4gPGEgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzL05ld3MiIGNsYXNz
PSJsb2NhbCI+TmV3czwvYT4gPGEgY2xhc3M9ImxvY2FsIiBocmVmPSJodHRwOi8vd3d3LmVt
YWNzd2lraS5vcmcvZW1hY3MvUHJvYmxlbXMiPlByb2JsZW1zPC9hPiA8YSBjbGFzcz0ibG9j
YWwiIGhyZWY9Imh0dHA6Ly93d3cuZW1hY3N3aWtpLm9yZy9lbWFjcy9TdWdnZXN0aW9ucyI+
U3VnZ2VzdGlvbnM8L2E+IDwvc3Bhbj48Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSJodHRw
Oi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3MiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRh
dGEiIGNsYXNzPSJzZWFyY2giIGFjY2VwdC1jaGFyc2V0PSJ1dGYtOCI+PHA+PGxhYmVsIGZv
cj0ic2VhcmNoIj5TZWFyY2g6PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNl
YXJjaCIgIHNpemU9IjIwIiBpZD0ic2VhcmNoIiBhY2Nlc3NrZXk9ImYiIC8+IDxsYWJlbCBm
b3I9InNlYXJjaGxhbmciPkxhbmd1YWdlOjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBu
YW1lPSJsYW5nIiAgc2l6ZT0iMTAiIGlkPSJzZWFyY2hsYW5nIiAvPiA8aW5wdXQgdHlwZT0i
c3VibWl0IiBuYW1lPSJkb3NlYXJjaCIgdmFsdWU9IkdvISIgLz48L3A+PC9mb3JtPjwvZGl2
PjxoMT48YSByZWw9Im5vZm9sbG93IiB0aXRsZT0iQ2xpY2sgdG8gc2VhcmNoIGZvciByZWZl
cmVuY2VzIHRvIHRoaXMgcGFnZSIgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2Vt
YWNzP3NlYXJjaD0lMjJUZXN0JTIyIj5UZXN0PC9hPjwvaDE+PC9kaXY+PGRpdiBjbGFzcz0i
d3JhcHBlciI+PGRpdiBjbGFzcz0iY29udGVudCBicm93c2UiPjxwPkhlbGxvIFdvcmxkITwv
cD4NCjYNCjwvZGl2Pg0KMjcNCjxkaXYgY2xhc3M9IndyYXBwZXIgY2xvc2UiPjwvZGl2Pjwv
ZGl2Pg0KMWENCjxkaXYgY2xhc3M9ImZvb3RlciI+PGhyIC8+DQpiNGYNCjxzcGFuIGNsYXNz
PSJ0cmFuc2xhdGlvbiBiYXIiPjxiciAvPiAgPGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iaHR0
cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzP2FjdGlvbj10cmFuc2xhdGU7aWQ9VGVzdDtt
aXNzaW5nPWRlX2VuX2VzX2ZyX2l0X2phX2tvX3B0X3J1X3NlX3VrX3poIiBjbGFzcz0idHJh
bnNsYXRpb24gbmV3Ij5BZGQgVHJhbnNsYXRpb248L2E+PC9zcGFuPjxkaXYgY2xhc3M9ImVk
aXQgYmFyIj48YSBjbGFzcz0iY29tbWVudCBsb2NhbCBlZGl0IiBhY2Nlc3NrZXk9ImMiIGhy
ZWY9Imh0dHA6Ly93d3cuZW1hY3N3aWtpLm9yZy9lbWFjcy9Db21tZW50c19vbl9UZXN0Ij5U
YWxrPC9hPiA8YSBjbGFzcz0iZWRpdCIgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3Jn
L2VtYWNzP2FjdGlvbj1lZGl0O2lkPVRlc3QiIGFjY2Vzc2tleT0iZSIgcmVsPSJub2ZvbGxv
dyIgdGl0bGU9IkNsaWNrIHRvIGVkaXQgdGhpcyBwYWdlIj5FZGl0IHRoaXMgcGFnZTwvYT4g
PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNz
P2FjdGlvbj1oaXN0b3J5O2lkPVRlc3QiIGNsYXNzPSJoaXN0b3J5Ij5WaWV3IG90aGVyIHJl
dmlzaW9uczwvYT4gPGEgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzP2Fj
dGlvbj1hZG1pbjtpZD1UZXN0IiBjbGFzcz0iYWRtaW4iIHJlbD0ibm9mb2xsb3ciPkFkbWlu
aXN0cmF0aW9uPC9hPjwvZGl2PjxkaXYgY2xhc3M9InRpbWUiPkxhc3QgZWRpdGVkIDIwMTUt
MDctMDkgMDg6MDQgVVRDIGJ5IDxhIGNsYXNzPSJhdXRob3IiIGhyZWY9Imh0dHA6Ly93d3cu
ZW1hY3N3aWtpLm9yZy9lbWFjcy9Bbm9ueW1vdXMiIHRpdGxlPSIxMDYuMjE2LjE1OC4zNiI+
QW5vbnltb3VzPC9hPiA8YSByZWw9Im5vZm9sbG93IiBjbGFzcz0iZGlmZiIgaHJlZj0iaHR0
cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzP2FjdGlvbj1icm93c2U7ZGlmZj0yO2lkPVRl
c3QiPihkaWZmKTwvYT48L2Rpdj48ZGl2IHN0eWxlPSJmbG9hdDpyaWdodDsgbWFyZ2luLWxl
ZnQ6MWV4OyI+CjwhLS0gQ3JlYXRpdmUgQ29tbW9ucyBMaWNlbnNlIC0tPgo8YSBjbGFzcz0i
bGljZW5jZSIgaHJlZj0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvR1BM
LzIuMC8iPjxpbWcgYWx0PSJDQy1HTlUgR1BMIiBzdHlsZT0iYm9yZGVyOm5vbmUiIHNyYz0i
L3BpY3MvY2MtR1BMLWEucG5nIiAvPjwvYT4KPCEtLSAvQ3JlYXRpdmUgQ29tbW9ucyBMaWNl
bnNlIC0tPgo8L2Rpdj4KCjwhLS0KPHJkZjpSREYgeG1sbnM9Imh0dHA6Ly93ZWIucmVzb3Vy
Y2Uub3JnL2NjLyIKIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4x
LyIKIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4
LW5zIyI+CjxXb3JrIHJkZjphYm91dD0iIj4KICAgPGxpY2Vuc2UgcmRmOnJlc291cmNlPSJo
dHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9HUEwvMi4wLyIgLz4KICA8ZGM6
dHlwZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9Tb2Z0d2Fy
ZSIgLz4KPC9Xb3JrPgoKPExpY2Vuc2UgcmRmOmFib3V0PSJodHRwOi8vY3JlYXRpdmVjb21t
b25zLm9yZy9saWNlbnNlcy9HUEwvMi4wLyI+CiAgIDxwZXJtaXRzIHJkZjpyZXNvdXJjZT0i
aHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvUmVwcm9kdWN0aW9uIiAvPgogICA8cGVybWl0
cyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL0Rpc3RyaWJ1dGlv
biIgLz4KICAgPHJlcXVpcmVzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5v
cmcvY2MvTm90aWNlIiAvPgogICA8cGVybWl0cyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIu
cmVzb3VyY2Uub3JnL2NjL0Rlcml2YXRpdmVXb3JrcyIgLz4KICAgPHJlcXVpcmVzIHJkZjpy
ZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvU2hhcmVBbGlrZSIgLz4KICAg
PHJlcXVpcmVzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvU291
cmNlQ29kZSIgLz4KPC9MaWNlbnNlPgo8L3JkZjpSREY+Ci0tPgoKPHAgY2xhc3M9ImxlZ2Fs
Ij4KVGhpcyB3b3JrIGlzIGxpY2Vuc2VkIHRvIHlvdSB1bmRlciB2ZXJzaW9uIDIgb2YgdGhl
CjxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy8iPkdOVTwvYT4gPGEgaHJlZj0iL0dQTCI+
R2VuZXJhbCBQdWJsaWMgTGljZW5zZTwvYT4uCkFsdGVybmF0aXZlbHksIHlvdSBtYXkgY2hv
b3NlIHRvIHJlY2VpdmUgdGhpcyB3b3JrIHVuZGVyIGFueSBvdGhlcgpsaWNlbnNlIHRoYXQg
Z3JhbnRzIHRoZSByaWdodCB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1
dGUKdGhlIHdvcmssIGFzIGxvbmcgYXMgdGhhdCBsaWNlbnNlIGltcG9zZXMgdGhlIHJlc3Ry
aWN0aW9uIHRoYXQKZGVyaXZhdGl2ZSB3b3JrcyBoYXZlIHRvIGdyYW50IHRoZSBzYW1lIHJp
Z2h0cyBhbmQgaW1wb3NlIHRoZSBzYW1lCnJlc3RyaWN0aW9uLiBGb3IgZXhhbXBsZSwgeW91
IG1heSBjaG9vc2UgdG8gcmVjZWl2ZSB0aGlzIHdvcmsgdW5kZXIKdGhlCjxhIGhyZWY9Imh0
dHA6Ly93d3cuZ251Lm9yZy8iPkdOVTwvYT4KPGEgaHJlZj0iL0ZETCI+RnJlZSBEb2N1bWVu
dGF0aW9uIExpY2Vuc2U8L2E+LCB0aGUKPGEgaHJlZj0iaHR0cDovL2NyZWF0aXZlY29tbW9u
cy5vcmcvIj5DcmVhdGl2ZUNvbW1vbnM8L2E+CjxhIGhyZWY9Imh0dHA6Ly9jcmVhdGl2ZWNv
bW1vbnMub3JnL2xpY2Vuc2VzL3NhLzEuMC8iPlNoYXJlQWxpa2U8L2E+CkxpY2Vuc2UsIHRo
ZSBYRW1hY3MgbWFudWFsIGxpY2Vuc2UsIG9yCjxhIGhyZWY9Ii9PTEQiPnNpbWlsYXIgbGlj
ZW5zZXM8L2E+Lgo8L3A+CjwvZGl2Pg0KMTENCgo8L2JvZHk+CjwvaHRtbD4KDQowDQoNCg==
--------------070802080004060405060703--




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.503 (Entity 5.503)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Vaidheeswaran C <vaidheeswaran.chinnaraju@HIDDEN>
Subject: bug#21017: Acknowledgement (url-http: synchronous post and 302
 error response not handled properly)
Message-ID: <handler.21017.B.143645587116297.ack <at> debbugs.gnu.org>
References: <559E2F13.3080801@HIDDEN>
X-Gnu-PR-Message: ack 21017
X-Gnu-PR-Package: emacs
Reply-To: 21017 <at> debbugs.gnu.org
Date: Thu, 09 Jul 2015 15:32:01 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-gnu-emacs@HIDDEN

If you wish to submit further information on this problem, please
send it to 21017 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
21017: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D21017
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#21017: url-http: synchronous post and 302 error response not handled properly
Resent-From: Glenn Morris <rgm@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 09 Jul 2015 15:37:02 +0000
Resent-Message-ID: <handler.21017.B21017.143645621116923 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 21017
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 21017 <at> debbugs.gnu.org
Received: via spool by 21017-submit <at> debbugs.gnu.org id=B21017.143645621116923
          (code B ref 21017); Thu, 09 Jul 2015 15:37:02 +0000
Received: (at 21017) by debbugs.gnu.org; 9 Jul 2015 15:36:51 +0000
Received: from localhost ([127.0.0.1]:45338 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ZDDsZ-0004Ot-3P
	for submit <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:36:51 -0400
Received: from eggs.gnu.org ([208.118.235.92]:44186)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <rgm@HIDDEN>) id 1ZDDsX-0004Og-Tr
 for 21017 <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:36:50 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <rgm@HIDDEN>) id 1ZDDsS-0006ls-6T
 for 21017 <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:36:44 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD
 autolearn=disabled version=3.3.2
Received: from fencepost.gnu.org ([2001:4830:134:3::e]:50449)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <rgm@HIDDEN>)
 id 1ZDDsS-0006lo-2n
 for 21017 <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:36:44 -0400
Received: from rgm by fencepost.gnu.org with local (Exim 4.82)
 (envelope-from <rgm@HIDDEN>)
 id 1ZDDsR-000360-KN; Thu, 09 Jul 2015 11:36:43 -0400
From: Glenn Morris <rgm@HIDDEN>
References: <559E2F13.3080801@HIDDEN>
X-Spook: number key Mena Yuma Cancelled Chemical weapon Resistant
X-Ran: g,Pir}S;V8?+71u6s,wE3jYXQ_=c'3K?[%_%~!Ae9{ryaLN2kX]RZ9@dsUF>whHxr3dUUf
X-Hue: cyan
X-Attribution: GM
Date: Thu, 09 Jul 2015 11:36:43 -0400
In-Reply-To: <559E2F13.3080801@HIDDEN> (Vaidheeswaran C.'s message of "Thu, 
 09 Jul 2015 13:51:39 +0530")
Message-ID: <ot1tgh4a2c.fsf@HIDDEN>
User-Agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/)
MIME-Version: 1.0
Content-Type: text/plain
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
 (bad octet value).
X-Received-From: 2001:4830:134:3::e
X-Spam-Score: -5.3 (-----)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -5.3 (-----)


Dupe of http://debbugs.gnu.org/16960




Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 9 Jul 2015 15:37:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jul 09 11:37:11 2015
Received: from localhost ([127.0.0.1]:45342 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ZDDst-0004Pn-Bj
	for submit <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:37:11 -0400
Received: from eggs.gnu.org ([208.118.235.92]:44240)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <rgm@HIDDEN>) id 1ZDDsr-0004Pb-Sa
 for control <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:37:10 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <rgm@HIDDEN>) id 1ZDDsl-0006or-Rc
 for control <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:37:04 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD
 autolearn=disabled version=3.3.2
Received: from fencepost.gnu.org ([2001:4830:134:3::e]:50455)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <rgm@HIDDEN>)
 id 1ZDDsl-0006oj-Gn
 for control <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:37:03 -0400
Received: from rgm by fencepost.gnu.org with local (Exim 4.82)
 (envelope-from <rgm@HIDDEN>) id 1ZDDsl-00037n-7X
 for control <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:37:03 -0400
Subject: control message for bug 21017
To: <control <at> debbugs.gnu.org>
X-Mailer: mail (GNU Mailutils 2.99.98)
Message-Id: <E1ZDDsl-00037n-7X@HIDDEN>
From: Glenn Morris <rgm@HIDDEN>
Date: Thu, 09 Jul 2015 11:37:03 -0400
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
 (bad octet value).
X-Received-From: 2001:4830:134:3::e
X-Spam-Score: -5.3 (-----)
X-Debbugs-Envelope-To: control
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -5.3 (-----)

merge 16960 21017





Last modified: Mon, 25 Nov 2019 12:00:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.