Return-Path: X-Original-To: apmail-giraph-user-archive@www.apache.org Delivered-To: apmail-giraph-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C773610612 for ; Thu, 26 Sep 2013 22:16:29 +0000 (UTC) Received: (qmail 98550 invoked by uid 500); 26 Sep 2013 22:16:29 -0000 Delivered-To: apmail-giraph-user-archive@giraph.apache.org Received: (qmail 98517 invoked by uid 500); 26 Sep 2013 22:16:28 -0000 Mailing-List: contact user-help@giraph.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@giraph.apache.org Delivered-To: mailing list user@giraph.apache.org Received: (qmail 98509 invoked by uid 99); 26 Sep 2013 22:16:28 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 Sep 2013 22:16:28 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of buyingyi@gmail.com designates 209.85.219.50 as permitted sender) Received: from [209.85.219.50] (HELO mail-oa0-f50.google.com) (209.85.219.50) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 Sep 2013 22:16:23 +0000 Received: by mail-oa0-f50.google.com with SMTP id j1so1446208oag.23 for ; Thu, 26 Sep 2013 15:16:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=1CQuEo0Ceb1pFoLxO/vnoU/A2JSXYprHqKrQLSqijYI=; b=hDt9Vnk1IQRf1lRdXmFDPVYsuh4henuS0L4BpsxnyyT3WPCVeRSTAk/YQSssyWHlrj f4nqLuS+nlr3R2Da2wx+jnco7VvZbapE7BpTxaS266UB+rwjhrwetDFHB/GbL5wL2Ah2 3r5U97q5r8QojPZ4CbswzQr0bG5/0z8A2OERxTXkr1BJ307deDq08tU+rU7Zm9DbYZjN bZ2nP7BcZ0UM+BDT0RIIurcfBJme4cT1RBAKcqPbxYTYvHxYeFQCh5XVvMQnIJEZVDAk Lu1ADgliXpst+0Djjwgodc4fMAq2SuG3vgwoK/njpr3bH6fFB7sZnhXVqR0ktDO+DNAI 3fXw== MIME-Version: 1.0 X-Received: by 10.60.131.41 with SMTP id oj9mr2789807oeb.40.1380233762758; Thu, 26 Sep 2013 15:16:02 -0700 (PDT) Received: by 10.182.44.161 with HTTP; Thu, 26 Sep 2013 15:16:02 -0700 (PDT) In-Reply-To: <52449451.7040002@apache.org> References: <5243ECA8.5060808@firma.seznam.cz> <5244855D.7050401@apache.org> <52449451.7040002@apache.org> Date: Thu, 26 Sep 2013 15:16:02 -0700 Message-ID: Subject: Re: Exception "Already has missing vertex on this worker" From: Yingyi Bu To: user@giraph.apache.org Content-Type: multipart/mixed; boundary=089e013c701a2317f804e750b716 X-Virus-Checked: Checked by ClamAV on apache.org --089e013c701a2317f804e750b716 Content-Type: multipart/alternative; boundary=089e013c701a2317f404e750b714 --089e013c701a2317f404e750b714 Content-Type: text/plain; charset=ISO-8859-1 I have 61 slave machines. Each slave machine has 16GB memory and 4 cores. I tried two configurations: 1. Let mapred.map.child.java.opts to be -Xmx4g, and run the job with 4 workers per machine on average (-w 240, try to use all the cores). 2. Let mapred.map.child.java.opts to be -Xmx16g, and run the job with 1 worker per machine on average (-w 60). I used the combiner. Here are the behaviors of the two configurations: 1. Configuration 1 fails with OutOfMemoryError--GC limit exceeds during superstep -1. 2. Configuration 2 can finish superstep -1 but hang at superstep 0 for a long time (more than 40 minutes). The status of each map task is "startSuperstep: WORKER_ONLY - Attempt=0, Superstep=0". I checked several slave machines -- the CPU is not used. Attached is the dumped stacktrace. Does any one have experience with similar situations? Another question is: how can I effectively use all the cores in slave machines? Does each worker do multi-threading? Thanks a lot! Yingyi On Thu, Sep 26, 2013 at 1:08 PM, Avery Ching wrote: > Hopefully you are using combiners and also re-using objects. This can > keep memory usage much lower. Also implementing your own OutEdges can make > it much more efficient. > > How much memory do you have? > > Avery > > > On 9/26/13 12:51 PM, Yingyi Bu wrote: > > >> I think you may have added the same vertex 2x? > I ran the job over roughly half of the graph and saw this. However the > input is not a connected components such that there might be target vertex > ids which do not exist. > When I ran the job over the entire graph, I cannot see this but the job > fails with exceeding GC limit (trying out-of-core now). > > Yingyi > > > > On Thu, Sep 26, 2013 at 12:05 PM, Avery Ching wrote: > >> I think you may have added the same vertex 2x? That being said, I >> don't see why the code is this way. It should be fine. We should file a >> JIRA. >> >> >> On 9/26/13 11:02 AM, Yingyi Bu wrote: >> >> Thanks, Lukas! >> I think the reason of this exception is that I run the job over part of >> the graph where some target ids do not exist. >> >> Yingyi >> >> >> On Thu, Sep 26, 2013 at 1:13 AM, Lukas Nalezenec < >> lukas.nalezenec@firma.seznam.cz> wrote: >> >>> Hi, >>> Do you use partition balancing ? >>> Lukas >>> >>> >>> >>> On 09/26/13 05:16, Yingyi Bu wrote: >>> >>> Hi, >>> >>> I got this exception when I ran a Giraph-1.0.0 PageRank job over a 60 machine cluster with 28GB input data. But I got this exception: >>> >>> java.lang.IllegalStateException: run: Caught an unrecoverable exception resolveMutations: Already has missing vertex on this worker for 20464109 >>> at org.apache.giraph.graph.GraphMapper.run(GraphMapper.java:102) >>> at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:763) >>> at org.apache.hadoop.mapred.MapTask.run(MapTask.java:369) >>> at org.apache.hadoop.mapred.Child$4.run(Child.java:259) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at javax.security.auth.Subject.doAs(Subject.java:415) >>> at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059) >>> at org.apache.hadoop.mapred.Child.main(Child.java:253) >>> Caused by: java.lang.IllegalStateException: resolveMutations: Already has missing vertex on this worker for 20464109 >>> at org.apache.giraph.comm.netty.NettyWorkerServer.resolveMutations(NettyWorkerServer.java:184) >>> at org.apache.giraph.comm.netty.NettyWorkerServer.prepareSuperstep(NettyWorkerServer.java:152) >>> at org.apache.giraph.worker.BspServiceWorker.startSuperstep(BspServiceWorker.java:677) >>> at org.apache.giraph.graph.GraphTaskManager.execute(GraphTaskManager.java:249) >>> at org.apache.giraph.graph.GraphMapper.run(GraphMapper.java:92) >>> ... 7 more >>> >>> >>> >>> Does anyone know what is the possible cause of this exception? >>> >>> Thanks! >>> >>> >>> Yingyi >>> >>> >>> >> >> > > --089e013c701a2317f404e750b714 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
I have 61 slave machines. Ea= ch slave machine has 16GB memory and 4 cores.

I tried two conf= igurations:
1.=A0=A0 Let mapred.map.child.java.opts to be -Xmx4g, = and run the job with 4 workers per machine on average (-w 240, try to use a= ll the cores).
2.=A0=A0 Let mapred.map.child.java.opts to be -Xmx16g, and run the jo= b with 1 worker per machine on average (-w 60).

I used th= e combiner.
Here are the behaviors of the two configurations:=
1. Configuration 1 fails with OutOfMemoryError--GC limit exceeds duri= ng superstep -1.
2. Configuration 2 can finish superstep -1 but hang at superstep 0 fo= r a long time (more than 40 minutes).=A0 The status of each map task is &qu= ot;startSuperstep: WORKER_ONLY - Attempt=3D0, Superstep=3D0".=A0 I che= cked several slave machines -- the CPU is not used.=A0 Attached is the dump= ed stacktrace.=A0 Does any one have experience with similar situations?

Another question is: how can I effectively use all the cores= in slave machines?=A0=A0 Does each worker do multi-threading?
Thanks a lot!

Yingyi



<= div class=3D"gmail_quote">On Thu, Sep 26, 2013 at 1:08 PM, Avery Ching <ac= hing@apache.org> wrote:
=20 =20 =20
Hopefully you are using combiners and also re-using objects.=A0 This can keep memory usage much lower.=A0 Also implementing your own OutEdges can make it much more efficient.

How much memory do you have?

Avery


On 9/26/13 12:51 PM, Yingyi Bu wrote:
>> I think you may have added the same vertex 2x?=A0
I ran the job over roughly half of the graph and saw this. =A0However the input is not a connected components such that there might be target vertex ids which do not exist.
When I ran the job over the entire graph, =A0I cannot see this but the job fails with exceeding GC limit (trying out-of-core now).

Yingyi



On Thu, Sep 26, 2013 at 12:05 PM, Avery Ching <aching@apache.org> wrote:
I think you may have added the same vertex 2x?=A0 That being said, I don't see why the code is this way.=A0 It should be fine.=A0 We should file a JIRA.


On 9/26/13 11:02 AM, Yingyi Bu wrote:
Thanks, Lukas!
I think the reason of this exception is that I run the job over part of the graph where some target ids do not exist.

Yingyi


On Thu, Sep 26, 2013 at 1:13 AM, Lukas Nalezenec <lukas.nale= zenec@firma.seznam.cz> wrote:
Hi,
Do you use partition balancing ?
Lukas



On 09/26/13 05:16, Yingyi Bu wrote:
Hi,
I got this exception when I ran a =
Giraph-1.0.0 PageRank job over a 60 machine cluster with 28GB input data.  =
But I got this exception:

java.lang.IllegalStateException: run: Caught an unrecoverable exception res=
olveMutations: Already has missing vertex on this worker for 20464109
	at org.apache.giraph.graph.GraphMapper.run(GraphMapper.java:102)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:763)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:369)
	at org.apache.hadoop.mapred.Child$4.run(Child.java:259)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:415)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformati=
on.java:1059)
	at org.apache.hadoop.mapred.Child.main(Child.java:253)
Caused by: java.lang.IllegalStateException: resolveMutations: Already has m=
issing vertex on this worker for 20464109
	at org.apache.giraph.comm.netty.NettyWorkerServer.resolveMutations(NettyWo=
rkerServer.java:184)
	at org.apache.giraph.comm.netty.NettyWorkerServer.prepareSuperstep(NettyWo=
rkerServer.java:152)
	at org.apache.giraph.worker.BspServiceWorker.startSuperstep(BspServiceWork=
er.java:677)
	at org.apache.giraph.graph.GraphTaskManager.execute(GraphTaskManager.java:=
249)
	at org.apache.giraph.graph.GraphMapper.run(GraphMapper.java:92)
	... 7 more


Does anyone know what is the possi=
ble cause of this exception?
Thanks!

Yingyi






--089e013c701a2317f404e750b714-- --089e013c701a2317f804e750b716 Content-Type: application/octet-stream; name=stdout Content-Disposition: attachment; filename=stdout Content-Transfer-Encoding: base64 X-Attachment-Id: f_hm2jfwr50 MjAxMy0wOS0yNiAyMjowODo1MwpGdWxsIHRocmVhZCBkdW1wIEphdmEgSG90U3BvdChUTSkgNjQt Qml0IFNlcnZlciBWTSAoMjMuNy1iMDEgbWl4ZWQgbW9kZSk6CgoiSVBDIENsaWVudCAoNDcpIGNv bm5lY3Rpb24gdG8gLzEyNy4wLjAuMTo0NzA0MiBmcm9tIGpvYl8yMDEzMDkyNjIxMzFfMDAwMSIg ZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDAwMDAwZWYwNzgwMCBuaWQ9MHg0YjgzIGluIE9iamVj dC53YWl0KCkgWzB4MDAwMDAwMDA0MThjYTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTog VElNRURfV0FJVElORyAob24gb2JqZWN0IG1vbml0b3IpCglhdCBqYXZhLmxhbmcuT2JqZWN0Lndh aXQoTmF0aXZlIE1ldGhvZCkKCS0gd2FpdGluZyBvbiA8MHgwMDAwMDAwNDAwMmFkZjQ4PiAoYSBv cmcuYXBhY2hlLmhhZG9vcC5pcGMuQ2xpZW50JENvbm5lY3Rpb24pCglhdCBvcmcuYXBhY2hlLmhh ZG9vcC5pcGMuQ2xpZW50JENvbm5lY3Rpb24ud2FpdEZvcldvcmsoQ2xpZW50LmphdmE6NjY5KQoJ LSBsb2NrZWQgPDB4MDAwMDAwMDQwMDJhZGY0OD4gKGEgb3JnLmFwYWNoZS5oYWRvb3AuaXBjLkNs aWVudCRDb25uZWN0aW9uKQoJYXQgb3JnLmFwYWNoZS5oYWRvb3AuaXBjLkNsaWVudCRDb25uZWN0 aW9uLnJ1bihDbGllbnQuamF2YTo3MTEpCgoibWV0cmljcy1tZXRlci10aWNrLXRocmVhZC0yIiBk YWVtb24gcHJpbz0xMCB0aWQ9MHgwMDAwMmFhYWUwOTJlMDAwIG5pZD0weDRhMzEgd2FpdGluZyBv biBjb25kaXRpb24gWzB4MDAwMDAwMDA0NDZlMzAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0 ZTogV0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRo b2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDA0MDAxNzZlZDA+IChhIGphdmEu dXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlv bk9iamVjdCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmso TG9ja1N1cHBvcnQuamF2YToxODYpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0 cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QuYXdhaXQoQWJzdHJhY3RRdWV1 ZWRTeW5jaHJvbml6ZXIuamF2YToyMDQzKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1 bGVkVGhyZWFkUG9vbEV4ZWN1dG9yJERlbGF5ZWRXb3JrUXVldWUudGFrZShTY2hlZHVsZWRUaHJl YWRQb29sRXhlY3V0b3IuamF2YToxMDg1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1 bGVkVGhyZWFkUG9vbEV4ZWN1dG9yJERlbGF5ZWRXb3JrUXVldWUudGFrZShTY2hlZHVsZWRUaHJl YWRQb29sRXhlY3V0b3IuamF2YTo4MDcpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQ b29sRXhlY3V0b3IuZ2V0VGFzayhUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMDY4KQoJYXQgamF2 YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29s RXhlY3V0b3IuamF2YToxMTMwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4 ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1KQoJYXQgamF2YS5s YW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzIyKQoKIm1ldHJpY3MtbWV0ZXItdGljay10aHJl YWQtMSIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDJhYWFlMDdjMDgwMCBuaWQ9MHg0YTMwIHdh aXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDAwMDAwNDQ1ZTIwMDBdCiAgIGphdmEubGFuZy5UaHJl YWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFy ayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwNDAwMTc2 ZWQwPiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9u aXplciRDb25kaXRpb25PYmplY3QpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2Nr U3VwcG9ydC5wYXJrTmFub3MoTG9ja1N1cHBvcnQuamF2YToyMjYpCglhdCBqYXZhLnV0aWwuY29u Y3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3Qu YXdhaXROYW5vcyhBYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5qYXZhOjIwODIpCglhdCBqYXZh LnV0aWwuY29uY3VycmVudC5TY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IkRGVsYXllZFdvcmtR dWV1ZS50YWtlKFNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjEwOTApCglhdCBqYXZh LnV0aWwuY29uY3VycmVudC5TY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IkRGVsYXllZFdvcmtR dWV1ZS50YWtlKFNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjgwNykKCWF0IGphdmEu dXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5nZXRUYXNrKFRocmVhZFBvb2xFeGVj dXRvci5qYXZhOjEwNjgpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0 b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExMzApCglhdCBqYXZhLnV0aWwu Y29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0 b3IuamF2YTo2MTUpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjIpCgoi TmV3IEkvTyAgd29ya2VyICMxNiIgcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDBmNDc1MDAwIG5pZD0w eDRhMmYgcnVubmFibGUgWzB4MDAwMDAwMDA0NDRlMTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5T dGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRVBvbGxBcnJheVdyYXBwZXIuZXBvbGxXYWl0 KE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLkVQb2xsQXJyYXlXcmFwcGVyLnBvbGwoRVBv bGxBcnJheVdyYXBwZXIuamF2YToyMjgpCglhdCBzdW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJbXBs LmRvU2VsZWN0KEVQb2xsU2VsZWN0b3JJbXBsLmphdmE6ODEpCglhdCBzdW4ubmlvLmNoLlNlbGVj dG9ySW1wbC5sb2NrQW5kRG9TZWxlY3QoU2VsZWN0b3JJbXBsLmphdmE6ODcpCgktIGxvY2tlZCA8 MHgwMDAwMDAwNDAwMWZhNzMwPiAoYSBzdW4ubmlvLmNoLlV0aWwkMikKCS0gbG9ja2VkIDwweDAw MDAwMDA0MDAxZmE3MjA+IChhIGphdmEudXRpbC5Db2xsZWN0aW9ucyRVbm1vZGlmaWFibGVTZXQp CgktIGxvY2tlZCA8MHgwMDAwMDAwNDAwMTdjMDQwPiAoYSBzdW4ubmlvLmNoLkVQb2xsU2VsZWN0 b3JJbXBsKQoJYXQgc3VuLm5pby5jaC5TZWxlY3RvckltcGwuc2VsZWN0KFNlbGVjdG9ySW1wbC5q YXZhOjk4KQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5TZWxlY3RvclV0 aWwuc2VsZWN0KFNlbGVjdG9yVXRpbC5qYXZhOjUyKQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5u ZWwuc29ja2V0Lm5pby5BYnN0cmFjdE5pb1dvcmtlci5ydW4oQWJzdHJhY3ROaW9Xb3JrZXIuamF2 YToyMTgpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLk5pb1dvcmtlci5y dW4oTmlvV29ya2VyLmphdmE6MzUpCglhdCBvcmcuamJvc3MubmV0dHkudXRpbC5UaHJlYWRSZW5h bWluZ1J1bm5hYmxlLnJ1bihUaHJlYWRSZW5hbWluZ1J1bm5hYmxlLmphdmE6MTAyKQoJYXQgb3Jn Lmpib3NzLm5ldHR5LnV0aWwuaW50ZXJuYWwuRGVhZExvY2tQcm9vZldvcmtlciQxLnJ1bihEZWFk TG9ja1Byb29mV29ya2VyLmphdmE6NDIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQ b29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExNDUpCglhdCBq YXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQ b29sRXhlY3V0b3IuamF2YTo2MTUpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2 YTo3MjIpCgoiTmV3IEkvTyAgd29ya2VyICMxNSIgcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDBmNDcz MDAwIG5pZD0weDRhMmUgcnVubmFibGUgWzB4MDAwMDAwMDA0NDNlMDAwMF0KICAgamF2YS5sYW5n LlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRVBvbGxBcnJheVdyYXBwZXIu ZXBvbGxXYWl0KE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLkVQb2xsQXJyYXlXcmFwcGVy LnBvbGwoRVBvbGxBcnJheVdyYXBwZXIuamF2YToyMjgpCglhdCBzdW4ubmlvLmNoLkVQb2xsU2Vs ZWN0b3JJbXBsLmRvU2VsZWN0KEVQb2xsU2VsZWN0b3JJbXBsLmphdmE6ODEpCglhdCBzdW4ubmlv LmNoLlNlbGVjdG9ySW1wbC5sb2NrQW5kRG9TZWxlY3QoU2VsZWN0b3JJbXBsLmphdmE6ODcpCgkt IGxvY2tlZCA8MHgwMDAwMDAwNDAwMWI1ZmMwPiAoYSBzdW4ubmlvLmNoLlV0aWwkMikKCS0gbG9j a2VkIDwweDAwMDAwMDA0MDAxYjVmYjA+IChhIGphdmEudXRpbC5Db2xsZWN0aW9ucyRVbm1vZGlm aWFibGVTZXQpCgktIGxvY2tlZCA8MHgwMDAwMDAwNDAwMWIyZjYwPiAoYSBzdW4ubmlvLmNoLkVQ b2xsU2VsZWN0b3JJbXBsKQoJYXQgc3VuLm5pby5jaC5TZWxlY3RvckltcGwuc2VsZWN0KFNlbGVj dG9ySW1wbC5qYXZhOjk4KQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5T ZWxlY3RvclV0aWwuc2VsZWN0KFNlbGVjdG9yVXRpbC5qYXZhOjUyKQoJYXQgb3JnLmpib3NzLm5l dHR5LmNoYW5uZWwuc29ja2V0Lm5pby5BYnN0cmFjdE5pb1dvcmtlci5ydW4oQWJzdHJhY3ROaW9X b3JrZXIuamF2YToyMTgpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLk5p b1dvcmtlci5ydW4oTmlvV29ya2VyLmphdmE6MzUpCglhdCBvcmcuamJvc3MubmV0dHkudXRpbC5U aHJlYWRSZW5hbWluZ1J1bm5hYmxlLnJ1bihUaHJlYWRSZW5hbWluZ1J1bm5hYmxlLmphdmE6MTAy KQoJYXQgb3JnLmpib3NzLm5ldHR5LnV0aWwuaW50ZXJuYWwuRGVhZExvY2tQcm9vZldvcmtlciQx LnJ1bihEZWFkTG9ja1Byb29mV29ya2VyLmphdmE6NDIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVu dC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjEx NDUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1 bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTUpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihU aHJlYWQuamF2YTo3MjIpCgoiTmV3IEkvTyAgd29ya2VyICMxNCIgcHJpbz0xMCB0aWQ9MHgwMDAw MDAwMDBmNDcwODAwIG5pZD0weDRhMmQgcnVubmFibGUgWzB4MDAwMDAwMDA0NDJkZjAwMF0KICAg amF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRVBvbGxBcnJh eVdyYXBwZXIuZXBvbGxXYWl0KE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLkVQb2xsQXJy YXlXcmFwcGVyLnBvbGwoRVBvbGxBcnJheVdyYXBwZXIuamF2YToyMjgpCglhdCBzdW4ubmlvLmNo LkVQb2xsU2VsZWN0b3JJbXBsLmRvU2VsZWN0KEVQb2xsU2VsZWN0b3JJbXBsLmphdmE6ODEpCglh dCBzdW4ubmlvLmNoLlNlbGVjdG9ySW1wbC5sb2NrQW5kRG9TZWxlY3QoU2VsZWN0b3JJbXBsLmph dmE6ODcpCgktIGxvY2tlZCA8MHgwMDAwMDAwNDAwMWZmNjk4PiAoYSBzdW4ubmlvLmNoLlV0aWwk MikKCS0gbG9ja2VkIDwweDAwMDAwMDA0MDAxZmY2ODg+IChhIGphdmEudXRpbC5Db2xsZWN0aW9u cyRVbm1vZGlmaWFibGVTZXQpCgktIGxvY2tlZCA8MHgwMDAwMDAwNDAwMTc3NGU4PiAoYSBzdW4u bmlvLmNoLkVQb2xsU2VsZWN0b3JJbXBsKQoJYXQgc3VuLm5pby5jaC5TZWxlY3RvckltcGwuc2Vs ZWN0KFNlbGVjdG9ySW1wbC5qYXZhOjk4KQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29j a2V0Lm5pby5TZWxlY3RvclV0aWwuc2VsZWN0KFNlbGVjdG9yVXRpbC5qYXZhOjUyKQoJYXQgb3Jn Lmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5BYnN0cmFjdE5pb1dvcmtlci5ydW4oQWJz dHJhY3ROaW9Xb3JrZXIuamF2YToyMTgpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2Nr ZXQubmlvLk5pb1dvcmtlci5ydW4oTmlvV29ya2VyLmphdmE6MzUpCglhdCBvcmcuamJvc3MubmV0 dHkudXRpbC5UaHJlYWRSZW5hbWluZ1J1bm5hYmxlLnJ1bihUaHJlYWRSZW5hbWluZ1J1bm5hYmxl LmphdmE6MTAyKQoJYXQgb3JnLmpib3NzLm5ldHR5LnV0aWwuaW50ZXJuYWwuRGVhZExvY2tQcm9v ZldvcmtlciQxLnJ1bihEZWFkTG9ja1Byb29mV29ya2VyLmphdmE6NDIpCglhdCBqYXZhLnV0aWwu Y29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRv ci5qYXZhOjExNDUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3Ik V29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTUpCglhdCBqYXZhLmxhbmcuVGhy ZWFkLnJ1bihUaHJlYWQuamF2YTo3MjIpCgoiTmV3IEkvTyAgd29ya2VyICMxMyIgcHJpbz0xMCB0 aWQ9MHgwMDAwMDAwMDBmNDZlODAwIG5pZD0weDRhMmMgcnVubmFibGUgWzB4MDAwMDAwMDA0NDFk ZTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2gu RVBvbGxBcnJheVdyYXBwZXIuZXBvbGxXYWl0KE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNo LkVQb2xsQXJyYXlXcmFwcGVyLnBvbGwoRVBvbGxBcnJheVdyYXBwZXIuamF2YToyMjgpCglhdCBz dW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJbXBsLmRvU2VsZWN0KEVQb2xsU2VsZWN0b3JJbXBsLmph dmE6ODEpCglhdCBzdW4ubmlvLmNoLlNlbGVjdG9ySW1wbC5sb2NrQW5kRG9TZWxlY3QoU2VsZWN0 b3JJbXBsLmphdmE6ODcpCgktIGxvY2tlZCA8MHgwMDAwMDAwNDAwMWFkNjQwPiAoYSBzdW4ubmlv LmNoLlV0aWwkMikKCS0gbG9ja2VkIDwweDAwMDAwMDA0MDAxYWQ2MzA+IChhIGphdmEudXRpbC5D b2xsZWN0aW9ucyRVbm1vZGlmaWFibGVTZXQpCgktIGxvY2tlZCA8MHgwMDAwMDAwNDAwMWFjMzg4 PiAoYSBzdW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJbXBsKQoJYXQgc3VuLm5pby5jaC5TZWxlY3Rv ckltcGwuc2VsZWN0KFNlbGVjdG9ySW1wbC5qYXZhOjk4KQoJYXQgb3JnLmpib3NzLm5ldHR5LmNo YW5uZWwuc29ja2V0Lm5pby5TZWxlY3RvclV0aWwuc2VsZWN0KFNlbGVjdG9yVXRpbC5qYXZhOjUy KQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5BYnN0cmFjdE5pb1dvcmtl ci5ydW4oQWJzdHJhY3ROaW9Xb3JrZXIuamF2YToyMTgpCglhdCBvcmcuamJvc3MubmV0dHkuY2hh bm5lbC5zb2NrZXQubmlvLk5pb1dvcmtlci5ydW4oTmlvV29ya2VyLmphdmE6MzUpCglhdCBvcmcu amJvc3MubmV0dHkudXRpbC5UaHJlYWRSZW5hbWluZ1J1bm5hYmxlLnJ1bihUaHJlYWRSZW5hbWlu Z1J1bm5hYmxlLmphdmE6MTAyKQoJYXQgb3JnLmpib3NzLm5ldHR5LnV0aWwuaW50ZXJuYWwuRGVh ZExvY2tQcm9vZldvcmtlciQxLnJ1bihEZWFkTG9ja1Byb29mV29ya2VyLmphdmE6NDIpCglhdCBq YXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBv b2xFeGVjdXRvci5qYXZhOjExNDUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29s RXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTUpCglhdCBqYXZh LmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjIpCgoiTmV3IEkvTyAgd29ya2VyICMxMiIg cHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDBmNDZjMDAwIG5pZD0weDRhMmIgcnVubmFibGUgWzB4MDAw MDAwMDA0NDBkZDAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1 bi5uaW8uY2guRVBvbGxBcnJheVdyYXBwZXIuZXBvbGxXYWl0KE5hdGl2ZSBNZXRob2QpCglhdCBz dW4ubmlvLmNoLkVQb2xsQXJyYXlXcmFwcGVyLnBvbGwoRVBvbGxBcnJheVdyYXBwZXIuamF2YToy MjgpCglhdCBzdW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJbXBsLmRvU2VsZWN0KEVQb2xsU2VsZWN0 b3JJbXBsLmphdmE6ODEpCglhdCBzdW4ubmlvLmNoLlNlbGVjdG9ySW1wbC5sb2NrQW5kRG9TZWxl Y3QoU2VsZWN0b3JJbXBsLmphdmE6ODcpCgktIGxvY2tlZCA8MHgwMDAwMDAwNDAwMWQzMGM4PiAo YSBzdW4ubmlvLmNoLlV0aWwkMikKCS0gbG9ja2VkIDwweDAwMDAwMDA0MDAxZDMwYjg+IChhIGph dmEudXRpbC5Db2xsZWN0aW9ucyRVbm1vZGlmaWFibGVTZXQpCgktIGxvY2tlZCA8MHgwMDAwMDAw NDAwMWQxZTcwPiAoYSBzdW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJbXBsKQoJYXQgc3VuLm5pby5j aC5TZWxlY3RvckltcGwuc2VsZWN0KFNlbGVjdG9ySW1wbC5qYXZhOjk4KQoJYXQgb3JnLmpib3Nz Lm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5TZWxlY3RvclV0aWwuc2VsZWN0KFNlbGVjdG9yVXRp bC5qYXZhOjUyKQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5BYnN0cmFj dE5pb1dvcmtlci5ydW4oQWJzdHJhY3ROaW9Xb3JrZXIuamF2YToyMTgpCglhdCBvcmcuamJvc3Mu bmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLk5pb1dvcmtlci5ydW4oTmlvV29ya2VyLmphdmE6MzUp CglhdCBvcmcuamJvc3MubmV0dHkudXRpbC5UaHJlYWRSZW5hbWluZ1J1bm5hYmxlLnJ1bihUaHJl YWRSZW5hbWluZ1J1bm5hYmxlLmphdmE6MTAyKQoJYXQgb3JnLmpib3NzLm5ldHR5LnV0aWwuaW50 ZXJuYWwuRGVhZExvY2tQcm9vZldvcmtlciQxLnJ1bihEZWFkTG9ja1Byb29mV29ya2VyLmphdmE6 NDIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2Vy KFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExNDUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5U aHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTUp CglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjIpCgoiTmV3IEkvTyAgd29y a2VyICMxMSIgcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDBmNDZhMDAwIG5pZD0weDRhMmEgcnVubmFi bGUgWzB4MDAwMDAwMDA0M2ZkYzAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFC TEUKCWF0IHN1bi5uaW8uY2guRVBvbGxBcnJheVdyYXBwZXIuZXBvbGxXYWl0KE5hdGl2ZSBNZXRo b2QpCglhdCBzdW4ubmlvLmNoLkVQb2xsQXJyYXlXcmFwcGVyLnBvbGwoRVBvbGxBcnJheVdyYXBw ZXIuamF2YToyMjgpCglhdCBzdW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJbXBsLmRvU2VsZWN0KEVQ b2xsU2VsZWN0b3JJbXBsLmphdmE6ODEpCglhdCBzdW4ubmlvLmNoLlNlbGVjdG9ySW1wbC5sb2Nr QW5kRG9TZWxlY3QoU2VsZWN0b3JJbXBsLmphdmE6ODcpCgktIGxvY2tlZCA8MHgwMDAwMDAwNDAw MWFmMzUwPiAoYSBzdW4ubmlvLmNoLlV0aWwkMikKCS0gbG9ja2VkIDwweDAwMDAwMDA0MDAxYWYz NDA+IChhIGphdmEudXRpbC5Db2xsZWN0aW9ucyRVbm1vZGlmaWFibGVTZXQpCgktIGxvY2tlZCA8 MHgwMDAwMDAwNDAwMWFlMGY4PiAoYSBzdW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJbXBsKQoJYXQg c3VuLm5pby5jaC5TZWxlY3RvckltcGwuc2VsZWN0KFNlbGVjdG9ySW1wbC5qYXZhOjk4KQoJYXQg b3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5TZWxlY3RvclV0aWwuc2VsZWN0KFNl bGVjdG9yVXRpbC5qYXZhOjUyKQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5p by5BYnN0cmFjdE5pb1dvcmtlci5ydW4oQWJzdHJhY3ROaW9Xb3JrZXIuamF2YToyMTgpCglhdCBv cmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLk5pb1dvcmtlci5ydW4oTmlvV29ya2Vy LmphdmE6MzUpCglhdCBvcmcuamJvc3MubmV0dHkudXRpbC5UaHJlYWRSZW5hbWluZ1J1bm5hYmxl LnJ1bihUaHJlYWRSZW5hbWluZ1J1bm5hYmxlLmphdmE6MTAyKQoJYXQgb3JnLmpib3NzLm5ldHR5 LnV0aWwuaW50ZXJuYWwuRGVhZExvY2tQcm9vZldvcmtlciQxLnJ1bihEZWFkTG9ja1Byb29mV29y a2VyLmphdmE6NDIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3Iu cnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExNDUpCglhdCBqYXZhLnV0aWwuY29u Y3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3Iu amF2YTo2MTUpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjIpCgoiTmV3 IEkvTyAgd29ya2VyICMxMCIgcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDBmNDY4MDAwIG5pZD0weDRh MjkgcnVubmFibGUgWzB4MDAwMDAwMDA0M2VkYjAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0 ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRVBvbGxBcnJheVdyYXBwZXIuZXBvbGxXYWl0KE5h dGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLkVQb2xsQXJyYXlXcmFwcGVyLnBvbGwoRVBvbGxB cnJheVdyYXBwZXIuamF2YToyMjgpCglhdCBzdW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJbXBsLmRv U2VsZWN0KEVQb2xsU2VsZWN0b3JJbXBsLmphdmE6ODEpCglhdCBzdW4ubmlvLmNoLlNlbGVjdG9y SW1wbC5sb2NrQW5kRG9TZWxlY3QoU2VsZWN0b3JJbXBsLmphdmE6ODcpCgktIGxvY2tlZCA8MHgw MDAwMDAwNDAwMWQ3NGQ4PiAoYSBzdW4ubmlvLmNoLlV0aWwkMikKCS0gbG9ja2VkIDwweDAwMDAw MDA0MDAxZDc0Yzg+IChhIGphdmEudXRpbC5Db2xsZWN0aW9ucyRVbm1vZGlmaWFibGVTZXQpCgkt IGxvY2tlZCA8MHgwMDAwMDAwNDAwMWQ1Yjc4PiAoYSBzdW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJ bXBsKQoJYXQgc3VuLm5pby5jaC5TZWxlY3RvckltcGwuc2VsZWN0KFNlbGVjdG9ySW1wbC5qYXZh Ojk4KQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5TZWxlY3RvclV0aWwu c2VsZWN0KFNlbGVjdG9yVXRpbC5qYXZhOjUyKQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwu c29ja2V0Lm5pby5BYnN0cmFjdE5pb1dvcmtlci5ydW4oQWJzdHJhY3ROaW9Xb3JrZXIuamF2YToy MTgpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLk5pb1dvcmtlci5ydW4o TmlvV29ya2VyLmphdmE6MzUpCglhdCBvcmcuamJvc3MubmV0dHkudXRpbC5UaHJlYWRSZW5hbWlu Z1J1bm5hYmxlLnJ1bihUaHJlYWRSZW5hbWluZ1J1bm5hYmxlLmphdmE6MTAyKQoJYXQgb3JnLmpi b3NzLm5ldHR5LnV0aWwuaW50ZXJuYWwuRGVhZExvY2tQcm9vZldvcmtlciQxLnJ1bihEZWFkTG9j a1Byb29mV29ya2VyLmphdmE6NDIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29s RXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExNDUpCglhdCBqYXZh LnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29s RXhlY3V0b3IuamF2YTo2MTUpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3 MjIpCgoiTmV3IEkvTyAgd29ya2VyICM5IiBwcmlvPTEwIHRpZD0weDAwMDAwMDAwMGY0NjU4MDAg bmlkPTB4NGEyOCBydW5uYWJsZSBbMHgwMDAwMDAwMDQzZGRhMDAwXQogICBqYXZhLmxhbmcuVGhy ZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQgc3VuLm5pby5jaC5FUG9sbEFycmF5V3JhcHBlci5lcG9s bFdhaXQoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5uaW8uY2guRVBvbGxBcnJheVdyYXBwZXIucG9s bChFUG9sbEFycmF5V3JhcHBlci5qYXZhOjIyOCkKCWF0IHN1bi5uaW8uY2guRVBvbGxTZWxlY3Rv ckltcGwuZG9TZWxlY3QoRVBvbGxTZWxlY3RvckltcGwuamF2YTo4MSkKCWF0IHN1bi5uaW8uY2gu U2VsZWN0b3JJbXBsLmxvY2tBbmREb1NlbGVjdChTZWxlY3RvckltcGwuamF2YTo4NykKCS0gbG9j a2VkIDwweDAwMDAwMDA0MDAxZGY5ZTg+IChhIHN1bi5uaW8uY2guVXRpbCQyKQoJLSBsb2NrZWQg PDB4MDAwMDAwMDQwMDFkZjlkOD4gKGEgamF2YS51dGlsLkNvbGxlY3Rpb25zJFVubW9kaWZpYWJs ZVNldCkKCS0gbG9ja2VkIDwweDAwMDAwMDA0MDAxZGUwOTg+IChhIHN1bi5uaW8uY2guRVBvbGxT ZWxlY3RvckltcGwpCglhdCBzdW4ubmlvLmNoLlNlbGVjdG9ySW1wbC5zZWxlY3QoU2VsZWN0b3JJ bXBsLmphdmE6OTgpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLlNlbGVj dG9yVXRpbC5zZWxlY3QoU2VsZWN0b3JVdGlsLmphdmE6NTIpCglhdCBvcmcuamJvc3MubmV0dHku Y2hhbm5lbC5zb2NrZXQubmlvLkFic3RyYWN0TmlvV29ya2VyLnJ1bihBYnN0cmFjdE5pb1dvcmtl ci5qYXZhOjIxOCkKCWF0IG9yZy5qYm9zcy5uZXR0eS5jaGFubmVsLnNvY2tldC5uaW8uTmlvV29y a2VyLnJ1bihOaW9Xb3JrZXIuamF2YTozNSkKCWF0IG9yZy5qYm9zcy5uZXR0eS51dGlsLlRocmVh ZFJlbmFtaW5nUnVubmFibGUucnVuKFRocmVhZFJlbmFtaW5nUnVubmFibGUuamF2YToxMDIpCglh dCBvcmcuamJvc3MubmV0dHkudXRpbC5pbnRlcm5hbC5EZWFkTG9ja1Byb29mV29ya2VyJDEucnVu KERlYWRMb2NrUHJvb2ZXb3JrZXIuamF2YTo0MikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRo cmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTE0NSkK CWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRo cmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVh ZC5qYXZhOjcyMikKCiJOZXcgSS9PICB3b3JrZXIgIzgiIHByaW89MTAgdGlkPTB4MDAwMDAwMDAw ZjQ2MzgwMCBuaWQ9MHg0YTI3IHJ1bm5hYmxlIFsweDAwMDAwMDAwNDBiMTcwMDBdCiAgIGphdmEu bGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkVQb2xsQXJyYXlXcmFw cGVyLmVwb2xsV2FpdChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5FUG9sbEFycmF5V3Jh cHBlci5wb2xsKEVQb2xsQXJyYXlXcmFwcGVyLmphdmE6MjI4KQoJYXQgc3VuLm5pby5jaC5FUG9s bFNlbGVjdG9ySW1wbC5kb1NlbGVjdChFUG9sbFNlbGVjdG9ySW1wbC5qYXZhOjgxKQoJYXQgc3Vu Lm5pby5jaC5TZWxlY3RvckltcGwubG9ja0FuZERvU2VsZWN0KFNlbGVjdG9ySW1wbC5qYXZhOjg3 KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDQwMDFiYWM0OD4gKGEgc3VuLm5pby5jaC5VdGlsJDIpCgkt IGxvY2tlZCA8MHgwMDAwMDAwNDAwMWJhYzM4PiAoYSBqYXZhLnV0aWwuQ29sbGVjdGlvbnMkVW5t b2RpZmlhYmxlU2V0KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDQwMDFiNzM1OD4gKGEgc3VuLm5pby5j aC5FUG9sbFNlbGVjdG9ySW1wbCkKCWF0IHN1bi5uaW8uY2guU2VsZWN0b3JJbXBsLnNlbGVjdChT ZWxlY3RvckltcGwuamF2YTo5OCkKCWF0IG9yZy5qYm9zcy5uZXR0eS5jaGFubmVsLnNvY2tldC5u aW8uU2VsZWN0b3JVdGlsLnNlbGVjdChTZWxlY3RvclV0aWwuamF2YTo1MikKCWF0IG9yZy5qYm9z cy5uZXR0eS5jaGFubmVsLnNvY2tldC5uaW8uQWJzdHJhY3ROaW9Xb3JrZXIucnVuKEFic3RyYWN0 TmlvV29ya2VyLmphdmE6MjE4KQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5p by5OaW9Xb3JrZXIucnVuKE5pb1dvcmtlci5qYXZhOjM1KQoJYXQgb3JnLmpib3NzLm5ldHR5LnV0 aWwuVGhyZWFkUmVuYW1pbmdSdW5uYWJsZS5ydW4oVGhyZWFkUmVuYW1pbmdSdW5uYWJsZS5qYXZh OjEwMikKCWF0IG9yZy5qYm9zcy5uZXR0eS51dGlsLmludGVybmFsLkRlYWRMb2NrUHJvb2ZXb3Jr ZXIkMS5ydW4oRGVhZExvY2tQcm9vZldvcmtlci5qYXZhOjQyKQoJYXQgamF2YS51dGlsLmNvbmN1 cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2 YToxMTQ1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtl ci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1KQoJYXQgamF2YS5sYW5nLlRocmVhZC5y dW4oVGhyZWFkLmphdmE6NzIyKQoKIk5ldyBJL08gIHdvcmtlciAjNyIgcHJpbz0xMCB0aWQ9MHgw MDAwMDAwMDBmNDQ4MDAwIG5pZD0weDRhMjYgcnVubmFibGUgWzB4MDAwMDAwMDA0M2NkOTAwMF0K ICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRVBvbGxB cnJheVdyYXBwZXIuZXBvbGxXYWl0KE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLkVQb2xs QXJyYXlXcmFwcGVyLnBvbGwoRVBvbGxBcnJheVdyYXBwZXIuamF2YToyMjgpCglhdCBzdW4ubmlv LmNoLkVQb2xsU2VsZWN0b3JJbXBsLmRvU2VsZWN0KEVQb2xsU2VsZWN0b3JJbXBsLmphdmE6ODEp CglhdCBzdW4ubmlvLmNoLlNlbGVjdG9ySW1wbC5sb2NrQW5kRG9TZWxlY3QoU2VsZWN0b3JJbXBs LmphdmE6ODcpCgktIGxvY2tlZCA8MHgwMDAwMDAwNDAwMWMxN2M4PiAoYSBzdW4ubmlvLmNoLlV0 aWwkMikKCS0gbG9ja2VkIDwweDAwMDAwMDA0MDAxYzE3Yjg+IChhIGphdmEudXRpbC5Db2xsZWN0 aW9ucyRVbm1vZGlmaWFibGVTZXQpCgktIGxvY2tlZCA8MHgwMDAwMDAwNDAwMWJmZTc4PiAoYSBz dW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJbXBsKQoJYXQgc3VuLm5pby5jaC5TZWxlY3RvckltcGwu c2VsZWN0KFNlbGVjdG9ySW1wbC5qYXZhOjk4KQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwu c29ja2V0Lm5pby5TZWxlY3RvclV0aWwuc2VsZWN0KFNlbGVjdG9yVXRpbC5qYXZhOjUyKQoJYXQg b3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5BYnN0cmFjdE5pb1dvcmtlci5ydW4o QWJzdHJhY3ROaW9Xb3JrZXIuamF2YToyMTgpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5z b2NrZXQubmlvLk5pb1dvcmtlci5ydW4oTmlvV29ya2VyLmphdmE6MzUpCglhdCBvcmcuamJvc3Mu bmV0dHkudXRpbC5UaHJlYWRSZW5hbWluZ1J1bm5hYmxlLnJ1bihUaHJlYWRSZW5hbWluZ1J1bm5h YmxlLmphdmE6MTAyKQoJYXQgb3JnLmpib3NzLm5ldHR5LnV0aWwuaW50ZXJuYWwuRGVhZExvY2tQ cm9vZldvcmtlciQxLnJ1bihEZWFkTG9ja1Byb29mV29ya2VyLmphdmE6NDIpCglhdCBqYXZhLnV0 aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVj dXRvci5qYXZhOjExNDUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0 b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTUpCglhdCBqYXZhLmxhbmcu VGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjIpCgoiTmV3IEkvTyAgd29ya2VyICM2IiBwcmlvPTEw IHRpZD0weDAwMDAwMDAwMGY0MmQwMDAgbmlkPTB4NGEyNSBydW5uYWJsZSBbMHgwMDAwMDAwMDQw YTE2MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQgc3VuLm5pby5j aC5FUG9sbEFycmF5V3JhcHBlci5lcG9sbFdhaXQoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5uaW8u Y2guRVBvbGxBcnJheVdyYXBwZXIucG9sbChFUG9sbEFycmF5V3JhcHBlci5qYXZhOjIyOCkKCWF0 IHN1bi5uaW8uY2guRVBvbGxTZWxlY3RvckltcGwuZG9TZWxlY3QoRVBvbGxTZWxlY3RvckltcGwu amF2YTo4MSkKCWF0IHN1bi5uaW8uY2guU2VsZWN0b3JJbXBsLmxvY2tBbmREb1NlbGVjdChTZWxl Y3RvckltcGwuamF2YTo4NykKCS0gbG9ja2VkIDwweDAwMDAwMDA0MDAxYmQzOTA+IChhIHN1bi5u aW8uY2guVXRpbCQyKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDQwMDFiZDM4MD4gKGEgamF2YS51dGls LkNvbGxlY3Rpb25zJFVubW9kaWZpYWJsZVNldCkKCS0gbG9ja2VkIDwweDAwMDAwMDA0MDAxYmJm MTA+IChhIHN1bi5uaW8uY2guRVBvbGxTZWxlY3RvckltcGwpCglhdCBzdW4ubmlvLmNoLlNlbGVj dG9ySW1wbC5zZWxlY3QoU2VsZWN0b3JJbXBsLmphdmE6OTgpCglhdCBvcmcuamJvc3MubmV0dHku Y2hhbm5lbC5zb2NrZXQubmlvLlNlbGVjdG9yVXRpbC5zZWxlY3QoU2VsZWN0b3JVdGlsLmphdmE6 NTIpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLkFic3RyYWN0TmlvV29y a2VyLnJ1bihBYnN0cmFjdE5pb1dvcmtlci5qYXZhOjIxOCkKCWF0IG9yZy5qYm9zcy5uZXR0eS5j aGFubmVsLnNvY2tldC5uaW8uTmlvV29ya2VyLnJ1bihOaW9Xb3JrZXIuamF2YTozNSkKCWF0IG9y Zy5qYm9zcy5uZXR0eS51dGlsLlRocmVhZFJlbmFtaW5nUnVubmFibGUucnVuKFRocmVhZFJlbmFt aW5nUnVubmFibGUuamF2YToxMDIpCglhdCBvcmcuamJvc3MubmV0dHkudXRpbC5pbnRlcm5hbC5E ZWFkTG9ja1Byb29mV29ya2VyJDEucnVuKERlYWRMb2NrUHJvb2ZXb3JrZXIuamF2YTo0MikKCWF0 IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFk UG9vbEV4ZWN1dG9yLmphdmE6MTE0NSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBv b2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNSkKCWF0IGph dmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjcyMikKCiJOZXcgSS9PICB3b3JrZXIgIzUi IHByaW89MTAgdGlkPTB4MDAwMDAwMDAwZjQxMjAwMCBuaWQ9MHg0YTI0IHJ1bm5hYmxlIFsweDAw MDAwMDAwNDA5MTUwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBz dW4ubmlvLmNoLkVQb2xsQXJyYXlXcmFwcGVyLmVwb2xsV2FpdChOYXRpdmUgTWV0aG9kKQoJYXQg c3VuLm5pby5jaC5FUG9sbEFycmF5V3JhcHBlci5wb2xsKEVQb2xsQXJyYXlXcmFwcGVyLmphdmE6 MjI4KQoJYXQgc3VuLm5pby5jaC5FUG9sbFNlbGVjdG9ySW1wbC5kb1NlbGVjdChFUG9sbFNlbGVj dG9ySW1wbC5qYXZhOjgxKQoJYXQgc3VuLm5pby5jaC5TZWxlY3RvckltcGwubG9ja0FuZERvU2Vs ZWN0KFNlbGVjdG9ySW1wbC5qYXZhOjg3KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDQwMDFjODM0MD4g KGEgc3VuLm5pby5jaC5VdGlsJDIpCgktIGxvY2tlZCA8MHgwMDAwMDAwNDAwMWM4MzMwPiAoYSBq YXZhLnV0aWwuQ29sbGVjdGlvbnMkVW5tb2RpZmlhYmxlU2V0KQoJLSBsb2NrZWQgPDB4MDAwMDAw MDQwMDFjNGEwMD4gKGEgc3VuLm5pby5jaC5FUG9sbFNlbGVjdG9ySW1wbCkKCWF0IHN1bi5uaW8u Y2guU2VsZWN0b3JJbXBsLnNlbGVjdChTZWxlY3RvckltcGwuamF2YTo5OCkKCWF0IG9yZy5qYm9z cy5uZXR0eS5jaGFubmVsLnNvY2tldC5uaW8uU2VsZWN0b3JVdGlsLnNlbGVjdChTZWxlY3RvclV0 aWwuamF2YTo1MikKCWF0IG9yZy5qYm9zcy5uZXR0eS5jaGFubmVsLnNvY2tldC5uaW8uQWJzdHJh Y3ROaW9Xb3JrZXIucnVuKEFic3RyYWN0TmlvV29ya2VyLmphdmE6MjE4KQoJYXQgb3JnLmpib3Nz Lm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5OaW9Xb3JrZXIucnVuKE5pb1dvcmtlci5qYXZhOjM1 KQoJYXQgb3JnLmpib3NzLm5ldHR5LnV0aWwuVGhyZWFkUmVuYW1pbmdSdW5uYWJsZS5ydW4oVGhy ZWFkUmVuYW1pbmdSdW5uYWJsZS5qYXZhOjEwMikKCWF0IG9yZy5qYm9zcy5uZXR0eS51dGlsLmlu dGVybmFsLkRlYWRMb2NrUHJvb2ZXb3JrZXIkMS5ydW4oRGVhZExvY2tQcm9vZldvcmtlci5qYXZh OjQyKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtl cihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTQ1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu VGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1 KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzIyKQoKIk5ldyBJL08gIHdv cmtlciAjNCIgcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDBmM2Y2ODAwIG5pZD0weDRhMjMgcnVubmFi bGUgWzB4MDAwMDAwMDA0M2JkODAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFC TEUKCWF0IHN1bi5uaW8uY2guRVBvbGxBcnJheVdyYXBwZXIuZXBvbGxXYWl0KE5hdGl2ZSBNZXRo b2QpCglhdCBzdW4ubmlvLmNoLkVQb2xsQXJyYXlXcmFwcGVyLnBvbGwoRVBvbGxBcnJheVdyYXBw ZXIuamF2YToyMjgpCglhdCBzdW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJbXBsLmRvU2VsZWN0KEVQ b2xsU2VsZWN0b3JJbXBsLmphdmE6ODEpCglhdCBzdW4ubmlvLmNoLlNlbGVjdG9ySW1wbC5sb2Nr QW5kRG9TZWxlY3QoU2VsZWN0b3JJbXBsLmphdmE6ODcpCgktIGxvY2tlZCA8MHgwMDAwMDAwNDAw MWRiNGQwPiAoYSBzdW4ubmlvLmNoLlV0aWwkMikKCS0gbG9ja2VkIDwweDAwMDAwMDA0MDAxZGI0 YzA+IChhIGphdmEudXRpbC5Db2xsZWN0aW9ucyRVbm1vZGlmaWFibGVTZXQpCgktIGxvY2tlZCA8 MHgwMDAwMDAwNDAwMWRhMDUwPiAoYSBzdW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJbXBsKQoJYXQg c3VuLm5pby5jaC5TZWxlY3RvckltcGwuc2VsZWN0KFNlbGVjdG9ySW1wbC5qYXZhOjk4KQoJYXQg b3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5TZWxlY3RvclV0aWwuc2VsZWN0KFNl bGVjdG9yVXRpbC5qYXZhOjUyKQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5p by5BYnN0cmFjdE5pb1dvcmtlci5ydW4oQWJzdHJhY3ROaW9Xb3JrZXIuamF2YToyMTgpCglhdCBv cmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLk5pb1dvcmtlci5ydW4oTmlvV29ya2Vy LmphdmE6MzUpCglhdCBvcmcuamJvc3MubmV0dHkudXRpbC5UaHJlYWRSZW5hbWluZ1J1bm5hYmxl LnJ1bihUaHJlYWRSZW5hbWluZ1J1bm5hYmxlLmphdmE6MTAyKQoJYXQgb3JnLmpib3NzLm5ldHR5 LnV0aWwuaW50ZXJuYWwuRGVhZExvY2tQcm9vZldvcmtlciQxLnJ1bihEZWFkTG9ja1Byb29mV29y a2VyLmphdmE6NDIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3Iu cnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExNDUpCglhdCBqYXZhLnV0aWwuY29u Y3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3Iu amF2YTo2MTUpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjIpCgoibmV0 dHktc2VydmVyLWV4ZWMtNyIgcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDBmM2RiODAwIG5pZD0weDRh MjIgd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDAwMDA0M2FkNzAwMF0KICAgamF2YS5sYW5n LlRocmVhZC5TdGF0ZTogVElNRURfV0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2Fm ZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDA0 MDAxYTcxMTg+IChhIGphdmEudXRpbC5jb25jdXJyZW50LkxpbmtlZFRyYW5zZmVyUXVldWUpCglh dCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrTmFub3MoTG9ja1N1 cHBvcnQuamF2YToyMjYpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRUcmFuc2ZlclF1 ZXVlLmF3YWl0TWF0Y2goTGlua2VkVHJhbnNmZXJRdWV1ZS5qYXZhOjczMSkKCWF0IGphdmEudXRp bC5jb25jdXJyZW50LkxpbmtlZFRyYW5zZmVyUXVldWUueGZlcihMaW5rZWRUcmFuc2ZlclF1ZXVl LmphdmE6NjQ0KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuTGlua2VkVHJhbnNmZXJRdWV1ZS5w b2xsKExpbmtlZFRyYW5zZmVyUXVldWUuamF2YToxMTQ1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJl bnQuVGhyZWFkUG9vbEV4ZWN1dG9yLmdldFRhc2soVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTA2 OCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIo VGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTEzMCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRo cmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNSkK CWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjcyMikKCiJOZXcgSS9PICB3b3Jr ZXIgIzMiIHByaW89MTAgdGlkPTB4MDAwMDAwMDAwZjNkOTAwMCBuaWQ9MHg0YTIxIHJ1bm5hYmxl IFsweDAwMDAwMDAwNDM5ZDYwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxF CglhdCBzdW4ubmlvLmNoLkVQb2xsQXJyYXlXcmFwcGVyLmVwb2xsV2FpdChOYXRpdmUgTWV0aG9k KQoJYXQgc3VuLm5pby5jaC5FUG9sbEFycmF5V3JhcHBlci5wb2xsKEVQb2xsQXJyYXlXcmFwcGVy LmphdmE6MjI4KQoJYXQgc3VuLm5pby5jaC5FUG9sbFNlbGVjdG9ySW1wbC5kb1NlbGVjdChFUG9s bFNlbGVjdG9ySW1wbC5qYXZhOjgxKQoJYXQgc3VuLm5pby5jaC5TZWxlY3RvckltcGwubG9ja0Fu ZERvU2VsZWN0KFNlbGVjdG9ySW1wbC5qYXZhOjg3KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDQwMDFi MjNjMD4gKGEgc3VuLm5pby5jaC5VdGlsJDIpCgktIGxvY2tlZCA8MHgwMDAwMDAwNDAwMWIyM2Iw PiAoYSBqYXZhLnV0aWwuQ29sbGVjdGlvbnMkVW5tb2RpZmlhYmxlU2V0KQoJLSBsb2NrZWQgPDB4 MDAwMDAwMDQwMDFhZmUxOD4gKGEgc3VuLm5pby5jaC5FUG9sbFNlbGVjdG9ySW1wbCkKCWF0IHN1 bi5uaW8uY2guU2VsZWN0b3JJbXBsLnNlbGVjdChTZWxlY3RvckltcGwuamF2YTo5OCkKCWF0IG9y Zy5qYm9zcy5uZXR0eS5jaGFubmVsLnNvY2tldC5uaW8uU2VsZWN0b3JVdGlsLnNlbGVjdChTZWxl Y3RvclV0aWwuamF2YTo1MikKCWF0IG9yZy5qYm9zcy5uZXR0eS5jaGFubmVsLnNvY2tldC5uaW8u QWJzdHJhY3ROaW9Xb3JrZXIucnVuKEFic3RyYWN0TmlvV29ya2VyLmphdmE6MjE4KQoJYXQgb3Jn Lmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5OaW9Xb3JrZXIucnVuKE5pb1dvcmtlci5q YXZhOjM1KQoJYXQgb3JnLmpib3NzLm5ldHR5LnV0aWwuVGhyZWFkUmVuYW1pbmdSdW5uYWJsZS5y dW4oVGhyZWFkUmVuYW1pbmdSdW5uYWJsZS5qYXZhOjEwMikKCWF0IG9yZy5qYm9zcy5uZXR0eS51 dGlsLmludGVybmFsLkRlYWRMb2NrUHJvb2ZXb3JrZXIkMS5ydW4oRGVhZExvY2tQcm9vZldvcmtl ci5qYXZhOjQyKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1 bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTQ1KQoJYXQgamF2YS51dGlsLmNvbmN1 cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmph dmE6NjE1KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzIyKQoKIm5ldHR5 LXNlcnZlci1leGVjLTYiIHByaW89MTAgdGlkPTB4MDAwMDAwMDAwZjNiZTgwMCBuaWQ9MHg0YTIw IHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDAwMDAwNDM4ZDUwMDBdCiAgIGphdmEubGFuZy5U aHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUu cGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwNDAw MWE3MTE4PiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRUcmFuc2ZlclF1ZXVlKQoJYXQg amF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBw b3J0LmphdmE6MjI2KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuTGlua2VkVHJhbnNmZXJRdWV1 ZS5hd2FpdE1hdGNoKExpbmtlZFRyYW5zZmVyUXVldWUuamF2YTo3MzEpCglhdCBqYXZhLnV0aWwu Y29uY3VycmVudC5MaW5rZWRUcmFuc2ZlclF1ZXVlLnhmZXIoTGlua2VkVHJhbnNmZXJRdWV1ZS5q YXZhOjY0NCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkxpbmtlZFRyYW5zZmVyUXVldWUucG9s bChMaW5rZWRUcmFuc2ZlclF1ZXVlLmphdmE6MTE0NSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50 LlRocmVhZFBvb2xFeGVjdXRvci5nZXRUYXNrKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjEwNjgp CglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRo cmVhZFBvb2xFeGVjdXRvci5qYXZhOjExMzApCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJl YWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTUpCglh dCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjIpCgoiTmV3IEkvTyAgd29ya2Vy ICMyMCIgcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDBmM2JkMDAwIG5pZD0weDRhMWYgcnVubmFibGUg WzB4MDAwMDAwMDA0MzdkNDAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUK CWF0IHN1bi5uaW8uY2guRVBvbGxBcnJheVdyYXBwZXIuZXBvbGxXYWl0KE5hdGl2ZSBNZXRob2Qp CglhdCBzdW4ubmlvLmNoLkVQb2xsQXJyYXlXcmFwcGVyLnBvbGwoRVBvbGxBcnJheVdyYXBwZXIu amF2YToyMjgpCglhdCBzdW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJbXBsLmRvU2VsZWN0KEVQb2xs U2VsZWN0b3JJbXBsLmphdmE6ODEpCglhdCBzdW4ubmlvLmNoLlNlbGVjdG9ySW1wbC5sb2NrQW5k RG9TZWxlY3QoU2VsZWN0b3JJbXBsLmphdmE6ODcpCgktIGxvY2tlZCA8MHgwMDAwMDAwNDAwMWQ1 ODcwPiAoYSBzdW4ubmlvLmNoLlV0aWwkMikKCS0gbG9ja2VkIDwweDAwMDAwMDA0MDAxZDU4NjA+ IChhIGphdmEudXRpbC5Db2xsZWN0aW9ucyRVbm1vZGlmaWFibGVTZXQpCgktIGxvY2tlZCA8MHgw MDAwMDAwNDAwMWM5ZTAwPiAoYSBzdW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJbXBsKQoJYXQgc3Vu Lm5pby5jaC5TZWxlY3RvckltcGwuc2VsZWN0KFNlbGVjdG9ySW1wbC5qYXZhOjk4KQoJYXQgb3Jn Lmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5TZWxlY3RvclV0aWwuc2VsZWN0KFNlbGVj dG9yVXRpbC5qYXZhOjUyKQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5B YnN0cmFjdE5pb1dvcmtlci5ydW4oQWJzdHJhY3ROaW9Xb3JrZXIuamF2YToyMTgpCglhdCBvcmcu amJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLk5pb1dvcmtlci5ydW4oTmlvV29ya2VyLmph dmE6MzUpCglhdCBvcmcuamJvc3MubmV0dHkudXRpbC5UaHJlYWRSZW5hbWluZ1J1bm5hYmxlLnJ1 bihUaHJlYWRSZW5hbWluZ1J1bm5hYmxlLmphdmE6MTAyKQoJYXQgb3JnLmpib3NzLm5ldHR5LnV0 aWwuaW50ZXJuYWwuRGVhZExvY2tQcm9vZldvcmtlciQxLnJ1bihEZWFkTG9ja1Byb29mV29ya2Vy LmphdmE6NDIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVu V29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExNDUpCglhdCBqYXZhLnV0aWwuY29uY3Vy cmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2 YTo2MTUpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjIpCgoibmV0dHkt c2VydmVyLWV4ZWMtNSIgcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDBmM2JhODAwIG5pZD0weDRhMWUg d2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDAwMDA0MzZkMzAwMF0KICAgamF2YS5sYW5nLlRo cmVhZC5TdGF0ZTogVElNRURfV0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5w YXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDA0MDAx YTcxMTg+IChhIGphdmEudXRpbC5jb25jdXJyZW50LkxpbmtlZFRyYW5zZmVyUXVldWUpCglhdCBq YXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrTmFub3MoTG9ja1N1cHBv cnQuamF2YToyMjYpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRUcmFuc2ZlclF1ZXVl LmF3YWl0TWF0Y2goTGlua2VkVHJhbnNmZXJRdWV1ZS5qYXZhOjczMSkKCWF0IGphdmEudXRpbC5j b25jdXJyZW50LkxpbmtlZFRyYW5zZmVyUXVldWUueGZlcihMaW5rZWRUcmFuc2ZlclF1ZXVlLmph dmE6NjQ0KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuTGlua2VkVHJhbnNmZXJRdWV1ZS5wb2xs KExpbmtlZFRyYW5zZmVyUXVldWUuamF2YToxMTQ1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu VGhyZWFkUG9vbEV4ZWN1dG9yLmdldFRhc2soVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTA2OCkK CWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhy ZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTEzMCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVh ZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNSkKCWF0 IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjcyMikKCiJuZXR0eS1zZXJ2ZXItZXhl Yy00IiBwcmlvPTEwIHRpZD0weDAwMDAwMDAwMGYzYjkwMDAgbmlkPTB4NGExZCB3YWl0aW5nIG9u IGNvbmRpdGlvbiBbMHgwMDAwMDAwMDQzNWQyMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRl OiBUSU1FRF9XQUlUSU5HIChwYXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZl IE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDQwMDFhNzExOD4gKGEg amF2YS51dGlsLmNvbmN1cnJlbnQuTGlua2VkVHJhbnNmZXJRdWV1ZSkKCWF0IGphdmEudXRpbC5j b25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmtOYW5vcyhMb2NrU3VwcG9ydC5qYXZhOjIy NikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkxpbmtlZFRyYW5zZmVyUXVldWUuYXdhaXRNYXRj aChMaW5rZWRUcmFuc2ZlclF1ZXVlLmphdmE6NzMxKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu TGlua2VkVHJhbnNmZXJRdWV1ZS54ZmVyKExpbmtlZFRyYW5zZmVyUXVldWUuamF2YTo2NDQpCglh dCBqYXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRUcmFuc2ZlclF1ZXVlLnBvbGwoTGlua2VkVHJh bnNmZXJRdWV1ZS5qYXZhOjExNDUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29s RXhlY3V0b3IuZ2V0VGFzayhUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMDY4KQoJYXQgamF2YS51 dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhl Y3V0b3IuamF2YToxMTMwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1 dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1KQoJYXQgamF2YS5sYW5n LlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzIyKQoKIm5ldHR5LWNsaWVudC1leGVjLTciIHByaW89 MTAgdGlkPTB4MDAwMDJhYWFlMDgzNjAwMCBuaWQ9MHg0YTFjIHdhaXRpbmcgb24gY29uZGl0aW9u IFsweDAwMDAwMDAwNDM0ZDEwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dB SVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJ LSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwNDAwMWIzZmMwPiAoYSBqYXZhLnV0aWwu Y29uY3VycmVudC5MaW5rZWRUcmFuc2ZlclF1ZXVlKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu bG9ja3MuTG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBwb3J0LmphdmE6MjI2KQoJYXQgamF2 YS51dGlsLmNvbmN1cnJlbnQuTGlua2VkVHJhbnNmZXJRdWV1ZS5hd2FpdE1hdGNoKExpbmtlZFRy YW5zZmVyUXVldWUuamF2YTo3MzEpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRUcmFu c2ZlclF1ZXVlLnhmZXIoTGlua2VkVHJhbnNmZXJRdWV1ZS5qYXZhOjY0NCkKCWF0IGphdmEudXRp bC5jb25jdXJyZW50LkxpbmtlZFRyYW5zZmVyUXVldWUucG9sbChMaW5rZWRUcmFuc2ZlclF1ZXVl LmphdmE6MTE0NSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5n ZXRUYXNrKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjEwNjgpCglhdCBqYXZhLnV0aWwuY29uY3Vy cmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZh OjExMzApCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2Vy LnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTUpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1 bihUaHJlYWQuamF2YTo3MjIpCgoiTmV3IEkvTyAgd29ya2VyICMyIiBwcmlvPTEwIHRpZD0weDAw MDAwMDAwMGYzOWQ4MDAgbmlkPTB4NGExYiBydW5uYWJsZSBbMHgwMDAwMDAwMDQzM2QwMDAwXQog ICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQgc3VuLm5pby5jaC5FUG9sbEFy cmF5V3JhcHBlci5lcG9sbFdhaXQoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5uaW8uY2guRVBvbGxB cnJheVdyYXBwZXIucG9sbChFUG9sbEFycmF5V3JhcHBlci5qYXZhOjIyOCkKCWF0IHN1bi5uaW8u Y2guRVBvbGxTZWxlY3RvckltcGwuZG9TZWxlY3QoRVBvbGxTZWxlY3RvckltcGwuamF2YTo4MSkK CWF0IHN1bi5uaW8uY2guU2VsZWN0b3JJbXBsLmxvY2tBbmREb1NlbGVjdChTZWxlY3RvckltcGwu amF2YTo4NykKCS0gbG9ja2VkIDwweDAwMDAwMDA0MDAxY2YzYjg+IChhIHN1bi5uaW8uY2guVXRp bCQyKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDQwMDFjZjNhOD4gKGEgamF2YS51dGlsLkNvbGxlY3Rp b25zJFVubW9kaWZpYWJsZVNldCkKCS0gbG9ja2VkIDwweDAwMDAwMDA0MDAxY2RhNjg+IChhIHN1 bi5uaW8uY2guRVBvbGxTZWxlY3RvckltcGwpCglhdCBzdW4ubmlvLmNoLlNlbGVjdG9ySW1wbC5z ZWxlY3QoU2VsZWN0b3JJbXBsLmphdmE6OTgpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5z b2NrZXQubmlvLlNlbGVjdG9yVXRpbC5zZWxlY3QoU2VsZWN0b3JVdGlsLmphdmE6NTIpCglhdCBv cmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLkFic3RyYWN0TmlvV29ya2VyLnJ1bihB YnN0cmFjdE5pb1dvcmtlci5qYXZhOjIxOCkKCWF0IG9yZy5qYm9zcy5uZXR0eS5jaGFubmVsLnNv Y2tldC5uaW8uTmlvV29ya2VyLnJ1bihOaW9Xb3JrZXIuamF2YTozNSkKCWF0IG9yZy5qYm9zcy5u ZXR0eS51dGlsLlRocmVhZFJlbmFtaW5nUnVubmFibGUucnVuKFRocmVhZFJlbmFtaW5nUnVubmFi bGUuamF2YToxMDIpCglhdCBvcmcuamJvc3MubmV0dHkudXRpbC5pbnRlcm5hbC5EZWFkTG9ja1By b29mV29ya2VyJDEucnVuKERlYWRMb2NrUHJvb2ZXb3JrZXIuamF2YTo0MikKCWF0IGphdmEudXRp bC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1 dG9yLmphdmE6MTE0NSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRv ciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNSkKCWF0IGphdmEubGFuZy5U aHJlYWQucnVuKFRocmVhZC5qYXZhOjcyMikKCiJOZXcgSS9PICB3b3JrZXIgIzE5IiBwcmlvPTEw IHRpZD0weDAwMDAwMDAwMGYzOWI4MDAgbmlkPTB4NGExYSBydW5uYWJsZSBbMHgwMDAwMDAwMDQw ODE0MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQgc3VuLm5pby5j aC5FUG9sbEFycmF5V3JhcHBlci5lcG9sbFdhaXQoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5uaW8u Y2guRVBvbGxBcnJheVdyYXBwZXIucG9sbChFUG9sbEFycmF5V3JhcHBlci5qYXZhOjIyOCkKCWF0 IHN1bi5uaW8uY2guRVBvbGxTZWxlY3RvckltcGwuZG9TZWxlY3QoRVBvbGxTZWxlY3RvckltcGwu amF2YTo4MSkKCWF0IHN1bi5uaW8uY2guU2VsZWN0b3JJbXBsLmxvY2tBbmREb1NlbGVjdChTZWxl Y3RvckltcGwuamF2YTo4NykKCS0gbG9ja2VkIDwweDAwMDAwMDA0MDAxZTVmNzg+IChhIHN1bi5u aW8uY2guVXRpbCQyKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDQwMDFlNWY2OD4gKGEgamF2YS51dGls LkNvbGxlY3Rpb25zJFVubW9kaWZpYWJsZVNldCkKCS0gbG9ja2VkIDwweDAwMDAwMDA0MDAxZDgz NjA+IChhIHN1bi5uaW8uY2guRVBvbGxTZWxlY3RvckltcGwpCglhdCBzdW4ubmlvLmNoLlNlbGVj dG9ySW1wbC5zZWxlY3QoU2VsZWN0b3JJbXBsLmphdmE6OTgpCglhdCBvcmcuamJvc3MubmV0dHku Y2hhbm5lbC5zb2NrZXQubmlvLlNlbGVjdG9yVXRpbC5zZWxlY3QoU2VsZWN0b3JVdGlsLmphdmE6 NTIpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLkFic3RyYWN0TmlvV29y a2VyLnJ1bihBYnN0cmFjdE5pb1dvcmtlci5qYXZhOjIxOCkKCWF0IG9yZy5qYm9zcy5uZXR0eS5j aGFubmVsLnNvY2tldC5uaW8uTmlvV29ya2VyLnJ1bihOaW9Xb3JrZXIuamF2YTozNSkKCWF0IG9y Zy5qYm9zcy5uZXR0eS51dGlsLlRocmVhZFJlbmFtaW5nUnVubmFibGUucnVuKFRocmVhZFJlbmFt aW5nUnVubmFibGUuamF2YToxMDIpCglhdCBvcmcuamJvc3MubmV0dHkudXRpbC5pbnRlcm5hbC5E ZWFkTG9ja1Byb29mV29ya2VyJDEucnVuKERlYWRMb2NrUHJvb2ZXb3JrZXIuamF2YTo0MikKCWF0 IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFk UG9vbEV4ZWN1dG9yLmphdmE6MTE0NSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBv b2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNSkKCWF0IGph dmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjcyMikKCiJuZXR0eS1jbGllbnQtZXhlYy02 IiBwcmlvPTEwIHRpZD0weDAwMDAyYWFhZTA5Mzk4MDAgbmlkPTB4NGExOSB3YWl0aW5nIG9uIGNv bmRpdGlvbiBbMHgwMDAwMDAwMDQwMzQ0MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBU SU1FRF9XQUlUSU5HIChwYXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1l dGhvZCkKCS0gcGFya2luZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDQwMDFiM2ZjMD4gKGEgamF2 YS51dGlsLmNvbmN1cnJlbnQuTGlua2VkVHJhbnNmZXJRdWV1ZSkKCWF0IGphdmEudXRpbC5jb25j dXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmtOYW5vcyhMb2NrU3VwcG9ydC5qYXZhOjIyNikK CWF0IGphdmEudXRpbC5jb25jdXJyZW50LkxpbmtlZFRyYW5zZmVyUXVldWUuYXdhaXRNYXRjaChM aW5rZWRUcmFuc2ZlclF1ZXVlLmphdmE6NzMxKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuTGlu a2VkVHJhbnNmZXJRdWV1ZS54ZmVyKExpbmtlZFRyYW5zZmVyUXVldWUuamF2YTo2NDQpCglhdCBq YXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRUcmFuc2ZlclF1ZXVlLnBvbGwoTGlua2VkVHJhbnNm ZXJRdWV1ZS5qYXZhOjExNDUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhl Y3V0b3IuZ2V0VGFzayhUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMDY4KQoJYXQgamF2YS51dGls LmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0 b3IuamF2YToxMTMwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9y JFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1KQoJYXQgamF2YS5sYW5nLlRo cmVhZC5ydW4oVGhyZWFkLmphdmE6NzIyKQoKIm5ldHR5LXNlcnZlci1leGVjLTMiIHByaW89MTAg dGlkPTB4MDAwMDAwMDAwZjM4MDAwMCBuaWQ9MHg0YTE4IHdhaXRpbmcgb24gY29uZGl0aW9uIFsw eDAwMDAwMDAwNDMyY2YwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJ TkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBw YXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwNDAwMWE3MTE4PiAoYSBqYXZhLnV0aWwuY29u Y3VycmVudC5MaW5rZWRUcmFuc2ZlclF1ZXVlKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9j a3MuTG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBwb3J0LmphdmE6MjI2KQoJYXQgamF2YS51 dGlsLmNvbmN1cnJlbnQuTGlua2VkVHJhbnNmZXJRdWV1ZS5hd2FpdE1hdGNoKExpbmtlZFRyYW5z ZmVyUXVldWUuamF2YTo3MzEpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRUcmFuc2Zl clF1ZXVlLnhmZXIoTGlua2VkVHJhbnNmZXJRdWV1ZS5qYXZhOjY0NCkKCWF0IGphdmEudXRpbC5j b25jdXJyZW50LkxpbmtlZFRyYW5zZmVyUXVldWUucG9sbChMaW5rZWRUcmFuc2ZlclF1ZXVlLmph dmE6MTE0NSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5nZXRU YXNrKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjEwNjgpCglhdCBqYXZhLnV0aWwuY29uY3VycmVu dC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjEx MzApCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1 bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTUpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihU aHJlYWQuamF2YTo3MjIpCgoibmV0dHktY2xpZW50LWV4ZWMtNSIgcHJpbz0xMCB0aWQ9MHgwMDAw MmFhYWUwOTM3MDAwIG5pZD0weDRhMTcgd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDAwMDA0 MzFjZTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURfV0FJVElORyAocGFya2lu ZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8g d2FpdCBmb3IgIDwweDAwMDAwMDA0MDAxYjNmYzA+IChhIGphdmEudXRpbC5jb25jdXJyZW50Lkxp bmtlZFRyYW5zZmVyUXVldWUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3Vw cG9ydC5wYXJrTmFub3MoTG9ja1N1cHBvcnQuamF2YToyMjYpCglhdCBqYXZhLnV0aWwuY29uY3Vy cmVudC5MaW5rZWRUcmFuc2ZlclF1ZXVlLmF3YWl0TWF0Y2goTGlua2VkVHJhbnNmZXJRdWV1ZS5q YXZhOjczMSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkxpbmtlZFRyYW5zZmVyUXVldWUueGZl cihMaW5rZWRUcmFuc2ZlclF1ZXVlLmphdmE6NjQ0KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu TGlua2VkVHJhbnNmZXJRdWV1ZS5wb2xsKExpbmtlZFRyYW5zZmVyUXVldWUuamF2YToxMTQ1KQoJ YXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLmdldFRhc2soVGhyZWFk UG9vbEV4ZWN1dG9yLmphdmE6MTA2OCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBv b2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTEzMCkKCWF0IGph dmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBv b2xFeGVjdXRvci5qYXZhOjYxNSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZh OjcyMikKCiJOZXcgSS9PICB3b3JrZXIgIzE4IiBwcmlvPTEwIHRpZD0weDAwMDAwMDAwMGYzNjQ4 MDAgbmlkPTB4NGExNiBydW5uYWJsZSBbMHgwMDAwMDAwMDQzMGNkMDAwXQogICBqYXZhLmxhbmcu VGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQgc3VuLm5pby5jaC5FUG9sbEFycmF5V3JhcHBlci5l cG9sbFdhaXQoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5uaW8uY2guRVBvbGxBcnJheVdyYXBwZXIu cG9sbChFUG9sbEFycmF5V3JhcHBlci5qYXZhOjIyOCkKCWF0IHN1bi5uaW8uY2guRVBvbGxTZWxl Y3RvckltcGwuZG9TZWxlY3QoRVBvbGxTZWxlY3RvckltcGwuamF2YTo4MSkKCWF0IHN1bi5uaW8u Y2guU2VsZWN0b3JJbXBsLmxvY2tBbmREb1NlbGVjdChTZWxlY3RvckltcGwuamF2YTo4NykKCS0g bG9ja2VkIDwweDAwMDAwMDA0MDAxYzY4MjA+IChhIHN1bi5uaW8uY2guVXRpbCQyKQoJLSBsb2Nr ZWQgPDB4MDAwMDAwMDQwMDFjNjgxMD4gKGEgamF2YS51dGlsLkNvbGxlY3Rpb25zJFVubW9kaWZp YWJsZVNldCkKCS0gbG9ja2VkIDwweDAwMDAwMDA0MDAxYjg1MTA+IChhIHN1bi5uaW8uY2guRVBv bGxTZWxlY3RvckltcGwpCglhdCBzdW4ubmlvLmNoLlNlbGVjdG9ySW1wbC5zZWxlY3QoU2VsZWN0 b3JJbXBsLmphdmE6OTgpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLlNl bGVjdG9yVXRpbC5zZWxlY3QoU2VsZWN0b3JVdGlsLmphdmE6NTIpCglhdCBvcmcuamJvc3MubmV0 dHkuY2hhbm5lbC5zb2NrZXQubmlvLkFic3RyYWN0TmlvV29ya2VyLnJ1bihBYnN0cmFjdE5pb1dv cmtlci5qYXZhOjIxOCkKCWF0IG9yZy5qYm9zcy5uZXR0eS5jaGFubmVsLnNvY2tldC5uaW8uTmlv V29ya2VyLnJ1bihOaW9Xb3JrZXIuamF2YTozNSkKCWF0IG9yZy5qYm9zcy5uZXR0eS51dGlsLlRo cmVhZFJlbmFtaW5nUnVubmFibGUucnVuKFRocmVhZFJlbmFtaW5nUnVubmFibGUuamF2YToxMDIp CglhdCBvcmcuamJvc3MubmV0dHkudXRpbC5pbnRlcm5hbC5EZWFkTG9ja1Byb29mV29ya2VyJDEu cnVuKERlYWRMb2NrUHJvb2ZXb3JrZXIuamF2YTo0MikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50 LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTE0 NSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVu KFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRo cmVhZC5qYXZhOjcyMikKCiJuZXR0eS1jbGllbnQtZXhlYy00IiBwcmlvPTEwIHRpZD0weDAwMDAw MDAwMGYzNjI4MDAgbmlkPTB4NGExNSB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwMDAwMDQw NTVlMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChwYXJraW5n KQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3 YWl0IGZvciAgPDB4MDAwMDAwMDQwMDFiM2ZjMD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQuTGlu a2VkVHJhbnNmZXJRdWV1ZSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkxvY2tTdXBw b3J0LnBhcmtOYW5vcyhMb2NrU3VwcG9ydC5qYXZhOjIyNikKCWF0IGphdmEudXRpbC5jb25jdXJy ZW50LkxpbmtlZFRyYW5zZmVyUXVldWUuYXdhaXRNYXRjaChMaW5rZWRUcmFuc2ZlclF1ZXVlLmph dmE6NzMxKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuTGlua2VkVHJhbnNmZXJRdWV1ZS54ZmVy KExpbmtlZFRyYW5zZmVyUXVldWUuamF2YTo2NDQpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5M aW5rZWRUcmFuc2ZlclF1ZXVlLnBvbGwoTGlua2VkVHJhbnNmZXJRdWV1ZS5qYXZhOjExNDUpCglh dCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IuZ2V0VGFzayhUaHJlYWRQ b29sRXhlY3V0b3IuamF2YToxMDY4KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9v bEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTMwKQoJYXQgamF2 YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9v bEV4ZWN1dG9yLmphdmE6NjE1KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6 NzIyKQoKIm5ldHR5LWNsaWVudC1leGVjLTMiIHByaW89MTAgdGlkPTB4MDAwMDAwMDAwZjM2MDgw MCBuaWQ9MHg0YTE0IHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDAwMDAwNDA0NWQwMDBdCiAg IGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4u bWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8 MHgwMDAwMDAwNDAwMWIzZmMwPiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRUcmFuc2Zl clF1ZXVlKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFya05h bm9zKExvY2tTdXBwb3J0LmphdmE6MjI2KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuTGlua2Vk VHJhbnNmZXJRdWV1ZS5hd2FpdE1hdGNoKExpbmtlZFRyYW5zZmVyUXVldWUuamF2YTo3MzEpCglh dCBqYXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRUcmFuc2ZlclF1ZXVlLnhmZXIoTGlua2VkVHJh bnNmZXJRdWV1ZS5qYXZhOjY0NCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkxpbmtlZFRyYW5z ZmVyUXVldWUucG9sbChMaW5rZWRUcmFuc2ZlclF1ZXVlLmphdmE6MTE0NSkKCWF0IGphdmEudXRp bC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5nZXRUYXNrKFRocmVhZFBvb2xFeGVjdXRv ci5qYXZhOjEwNjgpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3Iu cnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExMzApCglhdCBqYXZhLnV0aWwuY29u Y3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3Iu amF2YTo2MTUpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjIpCgoibmV0 dHktY2xpZW50LWV4ZWMtMiIgcHJpbz0xMCB0aWQ9MHgwMDAwMmFhYWUwODMzMDAwIG5pZD0weDRh MTMgd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDAwMDA0MmZjYzAwMF0KICAgamF2YS5sYW5n LlRocmVhZC5TdGF0ZTogVElNRURfV0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2Fm ZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDA0 MDAxYjNmYzA+IChhIGphdmEudXRpbC5jb25jdXJyZW50LkxpbmtlZFRyYW5zZmVyUXVldWUpCglh dCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrTmFub3MoTG9ja1N1 cHBvcnQuamF2YToyMjYpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRUcmFuc2ZlclF1 ZXVlLmF3YWl0TWF0Y2goTGlua2VkVHJhbnNmZXJRdWV1ZS5qYXZhOjczMSkKCWF0IGphdmEudXRp bC5jb25jdXJyZW50LkxpbmtlZFRyYW5zZmVyUXVldWUueGZlcihMaW5rZWRUcmFuc2ZlclF1ZXVl LmphdmE6NjQ0KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuTGlua2VkVHJhbnNmZXJRdWV1ZS5w b2xsKExpbmtlZFRyYW5zZmVyUXVldWUuamF2YToxMTQ1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJl bnQuVGhyZWFkUG9vbEV4ZWN1dG9yLmdldFRhc2soVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTA2 OCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIo VGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTEzMCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRo cmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNSkK CWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjcyMikKCiJOZXcgSS9PICB3b3Jr ZXIgIzE3IiBwcmlvPTEwIHRpZD0weDAwMDAwMDAwMGYxZDg4MDAgbmlkPTB4NGExMiBydW5uYWJs ZSBbMHgwMDAwMDAwMDQyZWNiMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJM RQoJYXQgc3VuLm5pby5jaC5FUG9sbEFycmF5V3JhcHBlci5lcG9sbFdhaXQoTmF0aXZlIE1ldGhv ZCkKCWF0IHN1bi5uaW8uY2guRVBvbGxBcnJheVdyYXBwZXIucG9sbChFUG9sbEFycmF5V3JhcHBl ci5qYXZhOjIyOCkKCWF0IHN1bi5uaW8uY2guRVBvbGxTZWxlY3RvckltcGwuZG9TZWxlY3QoRVBv bGxTZWxlY3RvckltcGwuamF2YTo4MSkKCWF0IHN1bi5uaW8uY2guU2VsZWN0b3JJbXBsLmxvY2tB bmREb1NlbGVjdChTZWxlY3RvckltcGwuamF2YTo4NykKCS0gbG9ja2VkIDwweDAwMDAwMDA0MDAx ZWRhMjA+IChhIHN1bi5uaW8uY2guVXRpbCQyKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDQwMDFlZGEx MD4gKGEgamF2YS51dGlsLkNvbGxlY3Rpb25zJFVubW9kaWZpYWJsZVNldCkKCS0gbG9ja2VkIDww eDAwMDAwMDA0MDAxYjE5OTg+IChhIHN1bi5uaW8uY2guRVBvbGxTZWxlY3RvckltcGwpCglhdCBz dW4ubmlvLmNoLlNlbGVjdG9ySW1wbC5zZWxlY3QoU2VsZWN0b3JJbXBsLmphdmE6OTgpCglhdCBv cmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLlNlbGVjdG9yVXRpbC5zZWxlY3QoU2Vs ZWN0b3JVdGlsLmphdmE6NTIpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlv LkFic3RyYWN0TmlvV29ya2VyLnJ1bihBYnN0cmFjdE5pb1dvcmtlci5qYXZhOjIxOCkKCWF0IG9y Zy5qYm9zcy5uZXR0eS5jaGFubmVsLnNvY2tldC5uaW8uTmlvV29ya2VyLnJ1bihOaW9Xb3JrZXIu amF2YTozNSkKCWF0IG9yZy5qYm9zcy5uZXR0eS51dGlsLlRocmVhZFJlbmFtaW5nUnVubmFibGUu cnVuKFRocmVhZFJlbmFtaW5nUnVubmFibGUuamF2YToxMDIpCglhdCBvcmcuamJvc3MubmV0dHku dXRpbC5pbnRlcm5hbC5EZWFkTG9ja1Byb29mV29ya2VyJDEucnVuKERlYWRMb2NrUHJvb2ZXb3Jr ZXIuamF2YTo0MikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5y dW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTE0NSkKCWF0IGphdmEudXRpbC5jb25j dXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5q YXZhOjYxNSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjcyMikKCiJuZXR0 eS1jbGllbnQtZXhlYy0xIiBwcmlvPTEwIHRpZD0weDAwMDAyYWFhZTA4MzE4MDAgbmlkPTB4NGEx MSB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwMDAwMDQwMjQzMDAwXQogICBqYXZhLmxhbmcu VGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChwYXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZl LnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDQw MDFiM2ZjMD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQuTGlua2VkVHJhbnNmZXJRdWV1ZSkKCWF0 IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmtOYW5vcyhMb2NrU3Vw cG9ydC5qYXZhOjIyNikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkxpbmtlZFRyYW5zZmVyUXVl dWUuYXdhaXRNYXRjaChMaW5rZWRUcmFuc2ZlclF1ZXVlLmphdmE6NzMxKQoJYXQgamF2YS51dGls LmNvbmN1cnJlbnQuTGlua2VkVHJhbnNmZXJRdWV1ZS54ZmVyKExpbmtlZFRyYW5zZmVyUXVldWUu amF2YTo2NDQpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRUcmFuc2ZlclF1ZXVlLnBv bGwoTGlua2VkVHJhbnNmZXJRdWV1ZS5qYXZhOjExNDUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVu dC5UaHJlYWRQb29sRXhlY3V0b3IuZ2V0VGFzayhUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMDY4 KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihU aHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTMwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhy ZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1KQoJ YXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzIyKQoKIm5ldHR5LWNsaWVudC1l eGVjLTAiIHByaW89MTAgdGlkPTB4MDAwMDJhYWFlMDlhODAwMCBuaWQ9MHg0YTBmIHdhaXRpbmcg b24gY29uZGl0aW9uIFsweDAwMDAwMDAwNDJjYzkwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3Rh dGU6IFRJTUVEX1dBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRp dmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwNDAwMWIzZmMwPiAo YSBqYXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRUcmFuc2ZlclF1ZXVlKQoJYXQgamF2YS51dGls LmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBwb3J0LmphdmE6 MjI2KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuTGlua2VkVHJhbnNmZXJRdWV1ZS5hd2FpdE1h dGNoKExpbmtlZFRyYW5zZmVyUXVldWUuamF2YTo3MzEpCglhdCBqYXZhLnV0aWwuY29uY3VycmVu dC5MaW5rZWRUcmFuc2ZlclF1ZXVlLnhmZXIoTGlua2VkVHJhbnNmZXJRdWV1ZS5qYXZhOjY0NCkK CWF0IGphdmEudXRpbC5jb25jdXJyZW50LkxpbmtlZFRyYW5zZmVyUXVldWUucG9sbChMaW5rZWRU cmFuc2ZlclF1ZXVlLmphdmE6MTE0NSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBv b2xFeGVjdXRvci5nZXRUYXNrKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjEwNjgpCglhdCBqYXZh LnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xF eGVjdXRvci5qYXZhOjExMzApCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhl Y3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTUpCglhdCBqYXZhLmxh bmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjIpCgoibmV0dHktc2VydmVyLWV4ZWMtMiIgcHJp bz0xMCB0aWQ9MHgwMDAwMDAwMDBmOWI5ODAwIG5pZD0weDRhMGUgd2FpdGluZyBvbiBjb25kaXRp b24gWzB4MDAwMDAwMDA0MmJjODAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURf V0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2Qp CgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDA0MDAxYTcxMTg+IChhIGphdmEudXRp bC5jb25jdXJyZW50LkxpbmtlZFRyYW5zZmVyUXVldWUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVu dC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrTmFub3MoTG9ja1N1cHBvcnQuamF2YToyMjYpCglhdCBq YXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRUcmFuc2ZlclF1ZXVlLmF3YWl0TWF0Y2goTGlua2Vk VHJhbnNmZXJRdWV1ZS5qYXZhOjczMSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkxpbmtlZFRy YW5zZmVyUXVldWUueGZlcihMaW5rZWRUcmFuc2ZlclF1ZXVlLmphdmE6NjQ0KQoJYXQgamF2YS51 dGlsLmNvbmN1cnJlbnQuTGlua2VkVHJhbnNmZXJRdWV1ZS5wb2xsKExpbmtlZFRyYW5zZmVyUXVl dWUuamF2YToxMTQ1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9y LmdldFRhc2soVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTA2OCkKCWF0IGphdmEudXRpbC5jb25j dXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmph dmE6MTEzMCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3Jr ZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNSkKCWF0IGphdmEubGFuZy5UaHJlYWQu cnVuKFRocmVhZC5qYXZhOjcyMikKCiJuZXR0eS1zZXJ2ZXItZXhlYy0xIiBwcmlvPTEwIHRpZD0w eDAwMDAwMDAwMGY5Yjg4MDAgbmlkPTB4NGEwZCB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAw MDAwMDQxMGVhMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChw YXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2lu ZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDQwMDFhNzExOD4gKGEgamF2YS51dGlsLmNvbmN1cnJl bnQuTGlua2VkVHJhbnNmZXJRdWV1ZSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkxv Y2tTdXBwb3J0LnBhcmtOYW5vcyhMb2NrU3VwcG9ydC5qYXZhOjIyNikKCWF0IGphdmEudXRpbC5j b25jdXJyZW50LkxpbmtlZFRyYW5zZmVyUXVldWUuYXdhaXRNYXRjaChMaW5rZWRUcmFuc2ZlclF1 ZXVlLmphdmE6NzMxKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuTGlua2VkVHJhbnNmZXJRdWV1 ZS54ZmVyKExpbmtlZFRyYW5zZmVyUXVldWUuamF2YTo2NDQpCglhdCBqYXZhLnV0aWwuY29uY3Vy cmVudC5MaW5rZWRUcmFuc2ZlclF1ZXVlLnBvbGwoTGlua2VkVHJhbnNmZXJRdWV1ZS5qYXZhOjEx NDUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IuZ2V0VGFzayhU aHJlYWRQb29sRXhlY3V0b3IuamF2YToxMDY4KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhy ZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTMwKQoJ YXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhy ZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFk LmphdmE6NzIyKQoKIk5ldyBJL08gIHdvcmtlciAjMSIgcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDBm MWRkODAwIG5pZD0weDRhMGMgcnVubmFibGUgWzB4MDAwMDAwMDA0MGZlOTAwMF0KICAgamF2YS5s YW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRVBvbGxBcnJheVdyYXBw ZXIuZXBvbGxXYWl0KE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLkVQb2xsQXJyYXlXcmFw cGVyLnBvbGwoRVBvbGxBcnJheVdyYXBwZXIuamF2YToyMjgpCglhdCBzdW4ubmlvLmNoLkVQb2xs U2VsZWN0b3JJbXBsLmRvU2VsZWN0KEVQb2xsU2VsZWN0b3JJbXBsLmphdmE6ODEpCglhdCBzdW4u bmlvLmNoLlNlbGVjdG9ySW1wbC5sb2NrQW5kRG9TZWxlY3QoU2VsZWN0b3JJbXBsLmphdmE6ODcp CgktIGxvY2tlZCA8MHgwMDAwMDAwNDAwMWNjZWQ4PiAoYSBzdW4ubmlvLmNoLlV0aWwkMikKCS0g bG9ja2VkIDwweDAwMDAwMDA0MDAxY2NlYzg+IChhIGphdmEudXRpbC5Db2xsZWN0aW9ucyRVbm1v ZGlmaWFibGVTZXQpCgktIGxvY2tlZCA8MHgwMDAwMDAwNDAwMWM5NWMwPiAoYSBzdW4ubmlvLmNo LkVQb2xsU2VsZWN0b3JJbXBsKQoJYXQgc3VuLm5pby5jaC5TZWxlY3RvckltcGwuc2VsZWN0KFNl bGVjdG9ySW1wbC5qYXZhOjk4KQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5p by5TZWxlY3RvclV0aWwuc2VsZWN0KFNlbGVjdG9yVXRpbC5qYXZhOjUyKQoJYXQgb3JnLmpib3Nz Lm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5BYnN0cmFjdE5pb1dvcmtlci5ydW4oQWJzdHJhY3RO aW9Xb3JrZXIuamF2YToyMTgpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlv Lk5pb1dvcmtlci5ydW4oTmlvV29ya2VyLmphdmE6MzUpCglhdCBvcmcuamJvc3MubmV0dHkudXRp bC5UaHJlYWRSZW5hbWluZ1J1bm5hYmxlLnJ1bihUaHJlYWRSZW5hbWluZ1J1bm5hYmxlLmphdmE6 MTAyKQoJYXQgb3JnLmpib3NzLm5ldHR5LnV0aWwuaW50ZXJuYWwuRGVhZExvY2tQcm9vZldvcmtl ciQxLnJ1bihEZWFkTG9ja1Byb29mV29ya2VyLmphdmE6NDIpCglhdCBqYXZhLnV0aWwuY29uY3Vy cmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZh OjExNDUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2Vy LnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTUpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1 bihUaHJlYWQuamF2YTo3MjIpCgoibmV0dHktc2VydmVyLWV4ZWMtMCIgcHJpbz0xMCB0aWQ9MHgw MDAwMDAwMDBmOWJkODAwIG5pZD0weDRhMGIgd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDAw MDA0MGVlODAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURfV0FJVElORyAocGFy a2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcg dG8gd2FpdCBmb3IgIDwweDAwMDAwMDA0MDAxYTcxMTg+IChhIGphdmEudXRpbC5jb25jdXJyZW50 LkxpbmtlZFRyYW5zZmVyUXVldWUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2Nr U3VwcG9ydC5wYXJrTmFub3MoTG9ja1N1cHBvcnQuamF2YToyMjYpCglhdCBqYXZhLnV0aWwuY29u Y3VycmVudC5MaW5rZWRUcmFuc2ZlclF1ZXVlLmF3YWl0TWF0Y2goTGlua2VkVHJhbnNmZXJRdWV1 ZS5qYXZhOjczMSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkxpbmtlZFRyYW5zZmVyUXVldWUu eGZlcihMaW5rZWRUcmFuc2ZlclF1ZXVlLmphdmE6NjQ0KQoJYXQgamF2YS51dGlsLmNvbmN1cnJl bnQuTGlua2VkVHJhbnNmZXJRdWV1ZS5wb2xsKExpbmtlZFRyYW5zZmVyUXVldWUuamF2YToxMTQ1 KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLmdldFRhc2soVGhy ZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTA2OCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVh ZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTEzMCkKCWF0 IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVh ZFBvb2xFeGVjdXRvci5qYXZhOjYxNSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5q YXZhOjcyMikKCiJOZXcgSS9PIHNlcnZlciBib3NzICMxIChbaWQ6IDB4MjUyMGY1YzksIC8xMC4x MjguMTcuMTg6MzAwMjhdKSIgcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDBmMWE0MDAwIG5pZD0weDRh MGEgcnVubmFibGUgWzB4MDAwMDAwMDA0MDcxMzAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0 ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRVBvbGxBcnJheVdyYXBwZXIuZXBvbGxXYWl0KE5h dGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLkVQb2xsQXJyYXlXcmFwcGVyLnBvbGwoRVBvbGxB cnJheVdyYXBwZXIuamF2YToyMjgpCglhdCBzdW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJbXBsLmRv U2VsZWN0KEVQb2xsU2VsZWN0b3JJbXBsLmphdmE6ODEpCglhdCBzdW4ubmlvLmNoLlNlbGVjdG9y SW1wbC5sb2NrQW5kRG9TZWxlY3QoU2VsZWN0b3JJbXBsLmphdmE6ODcpCgktIGxvY2tlZCA8MHgw MDAwMDAwNDAwMTdiYzgwPiAoYSBzdW4ubmlvLmNoLlV0aWwkMikKCS0gbG9ja2VkIDwweDAwMDAw MDA0MDAxN2JjNzA+IChhIGphdmEudXRpbC5Db2xsZWN0aW9ucyRVbm1vZGlmaWFibGVTZXQpCgkt IGxvY2tlZCA8MHgwMDAwMDAwNDAwMTc3Yzg4PiAoYSBzdW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJ bXBsKQoJYXQgc3VuLm5pby5jaC5TZWxlY3RvckltcGwuc2VsZWN0KFNlbGVjdG9ySW1wbC5qYXZh Ojk4KQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5OaW9TZXJ2ZXJTb2Nr ZXRQaXBlbGluZVNpbmskQm9zcy5ydW4oTmlvU2VydmVyU29ja2V0UGlwZWxpbmVTaW5rLmphdmE6 MjI3KQoJYXQgb3JnLmpib3NzLm5ldHR5LnV0aWwuVGhyZWFkUmVuYW1pbmdSdW5uYWJsZS5ydW4o VGhyZWFkUmVuYW1pbmdSdW5uYWJsZS5qYXZhOjEwMikKCWF0IG9yZy5qYm9zcy5uZXR0eS51dGls LmludGVybmFsLkRlYWRMb2NrUHJvb2ZXb3JrZXIkMS5ydW4oRGVhZExvY2tQcm9vZldvcmtlci5q YXZhOjQyKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldv cmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTQ1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJl bnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6 NjE1KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzIyKQoKIm1haW4tRXZl bnRUaHJlYWQiIGRhZW1vbiBwcmlvPTEwIHRpZD0weDAwMDAyYWFhZTA3NTE4MDAgbmlkPTB4NGEw OSB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwMDAwMDQwZGU3MDAwXQogICBqYXZhLmxhbmcu VGhyZWFkLlN0YXRlOiBXQUlUSU5HIChwYXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBhcmso TmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDQwMDE4MmY1 MD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6 ZXIkQ29uZGl0aW9uT2JqZWN0KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1 cHBvcnQucGFyayhMb2NrU3VwcG9ydC5qYXZhOjE4NikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50 LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdC5hd2FpdChB YnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5qYXZhOjIwNDMpCglhdCBqYXZhLnV0aWwuY29uY3Vy cmVudC5MaW5rZWRCbG9ja2luZ1F1ZXVlLnRha2UoTGlua2VkQmxvY2tpbmdRdWV1ZS5qYXZhOjQ0 MikKCWF0IG9yZy5hcGFjaGUuem9va2VlcGVyLkNsaWVudENueG4kRXZlbnRUaHJlYWQucnVuKENs aWVudENueG4uamF2YTo1MDIpCgoibWFpbi1TZW5kVGhyZWFkKGFyYWdvZzA5MC5sYWJzLnNwMi55 YWhvby5jb206MjIxODEpIiBkYWVtb24gcHJpbz0xMCB0aWQ9MHgwMDAwMmFhYWUwNzU1MDAwIG5p ZD0weDRhMDggcnVubmFibGUgWzB4MDAwMDAwMDA0MjljNjAwMF0KICAgamF2YS5sYW5nLlRocmVh ZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRVBvbGxBcnJheVdyYXBwZXIuZXBvbGxX YWl0KE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLkVQb2xsQXJyYXlXcmFwcGVyLnBvbGwo RVBvbGxBcnJheVdyYXBwZXIuamF2YToyMjgpCglhdCBzdW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJ bXBsLmRvU2VsZWN0KEVQb2xsU2VsZWN0b3JJbXBsLmphdmE6ODEpCglhdCBzdW4ubmlvLmNoLlNl bGVjdG9ySW1wbC5sb2NrQW5kRG9TZWxlY3QoU2VsZWN0b3JJbXBsLmphdmE6ODcpCgktIGxvY2tl ZCA8MHgwMDAwMDAwNDAwMTgyYzI4PiAoYSBzdW4ubmlvLmNoLlV0aWwkMikKCS0gbG9ja2VkIDww eDAwMDAwMDA0MDAxODJjMTg+IChhIGphdmEudXRpbC5Db2xsZWN0aW9ucyRVbm1vZGlmaWFibGVT ZXQpCgktIGxvY2tlZCA8MHgwMDAwMDAwNDAwMTgwZDI4PiAoYSBzdW4ubmlvLmNoLkVQb2xsU2Vs ZWN0b3JJbXBsKQoJYXQgc3VuLm5pby5jaC5TZWxlY3RvckltcGwuc2VsZWN0KFNlbGVjdG9ySW1w bC5qYXZhOjk4KQoJYXQgb3JnLmFwYWNoZS56b29rZWVwZXIuQ2xpZW50Q254biRTZW5kVGhyZWFk LnJ1bihDbGllbnRDbnhuLmphdmE6MTEwNykKCiJMZWFzZUNoZWNrZXIiIGRhZW1vbiBwcmlvPTEw IHRpZD0weDAwMDAwMDAwMGY0N2M4MDAgbmlkPTB4NGEwNyB3YWl0aW5nIG9uIGNvbmRpdGlvbiBb MHgwMDAwMDAwMDQyYWM3MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlU SU5HIChzbGVlcGluZykKCWF0IGphdmEubGFuZy5UaHJlYWQuc2xlZXAoTmF0aXZlIE1ldGhvZCkK CWF0IG9yZy5hcGFjaGUuaGFkb29wLmhkZnMuREZTQ2xpZW50JExlYXNlQ2hlY2tlci5ydW4oREZT Q2xpZW50LmphdmE6MTE1NykKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjcy MikKCiJjb21tdW5pY2F0aW9uIHRocmVhZCIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDAwMDAw ZjllZDgwMCBuaWQ9MHg0YTA1IHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDAwMDAwNDE3NzEw MDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHNsZWVwaW5nKQoJ YXQgamF2YS5sYW5nLlRocmVhZC5zbGVlcChOYXRpdmUgTWV0aG9kKQoJYXQgb3JnLmFwYWNoZS5o YWRvb3AubWFwcmVkLlRhc2skVGFza1JlcG9ydGVyLnJ1bihUYXNrLmphdmE6NjE3KQoJYXQgamF2 YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzIyKQoKIlRpbWVyIGZvciAnTWFwVGFzaycg bWV0cmljcyBzeXN0ZW0iIGRhZW1vbiBwcmlvPTEwIHRpZD0weDAwMDAyYWFhZTA1NzgwMDAgbmlk PTB4NGEwMyBpbiBPYmplY3Qud2FpdCgpIFsweDAwMDAwMDAwNDI4YzUwMDBdCiAgIGphdmEubGFu Zy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKG9uIG9iamVjdCBtb25pdG9yKQoJYXQgamF2 YS5sYW5nLk9iamVjdC53YWl0KE5hdGl2ZSBNZXRob2QpCgktIHdhaXRpbmcgb24gPDB4MDAwMDAw MDQwMDIwMGY3MD4gKGEgamF2YS51dGlsLlRhc2tRdWV1ZSkKCWF0IGphdmEudXRpbC5UaW1lclRo cmVhZC5tYWluTG9vcChUaW1lci5qYXZhOjU1MikKCS0gbG9ja2VkIDwweDAwMDAwMDA0MDAyMDBm NzA+IChhIGphdmEudXRpbC5UYXNrUXVldWUpCglhdCBqYXZhLnV0aWwuVGltZXJUaHJlYWQucnVu KFRpbWVyLmphdmE6NTA1KQoKIlRocmVhZCBmb3Igc3luY0xvZ3MiIGRhZW1vbiBwcmlvPTEwIHRp ZD0weDAwMDAwMDAwMGVlMzQ4MDAgbmlkPTB4NDlmZiB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgw MDAwMDAwMDQxOWNiMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5H IChzbGVlcGluZykKCWF0IGphdmEubGFuZy5UaHJlYWQuc2xlZXAoTmF0aXZlIE1ldGhvZCkKCWF0 IG9yZy5hcGFjaGUuaGFkb29wLm1hcHJlZC5DaGlsZCQzLnJ1bihDaGlsZC5qYXZhOjE0NSkKCiJT ZXJ2aWNlIFRocmVhZCIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDAwMDAwZWJmNzgwMCBuaWQ9 MHg0OWZhIHJ1bm5hYmxlIFsweDAwMDAwMDAwMDAwMDAwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQu U3RhdGU6IFJVTk5BQkxFCgoiQzIgQ29tcGlsZXJUaHJlYWQxIiBkYWVtb24gcHJpbz0xMCB0aWQ9 MHgwMDAwMDAwMDBlYmY1ODAwIG5pZD0weDQ5Zjkgd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAw MDAwMDAwMDAwMDAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCiJDMiBD b21waWxlclRocmVhZDAiIGRhZW1vbiBwcmlvPTEwIHRpZD0weDAwMDAwMDAwMGViZTk4MDAgbmlk PTB4NDlmOCB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwMDAwMDAwMDAwMDAwXQogICBqYXZh LmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoKIlNpZ25hbCBEaXNwYXRjaGVyIiBkYWVtb24g cHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDBlYmU3ODAwIG5pZD0weDQ5Zjcgd2FpdGluZyBvbiBjb25k aXRpb24gWzB4MDAwMDAwMDAwMDAwMDAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVO TkFCTEUKCiJGaW5hbGl6ZXIiIGRhZW1vbiBwcmlvPTEwIHRpZD0weDAwMDAwMDAwMGViOTU4MDAg bmlkPTB4NDlmNiBpbiBPYmplY3Qud2FpdCgpIFsweDAwMDAwMDAwNDE1NmYwMDBdCiAgIGphdmEu bGFuZy5UaHJlYWQuU3RhdGU6IFdBSVRJTkcgKG9uIG9iamVjdCBtb25pdG9yKQoJYXQgamF2YS5s YW5nLk9iamVjdC53YWl0KE5hdGl2ZSBNZXRob2QpCgktIHdhaXRpbmcgb24gPDB4MDAwMDAwMDQw MDBhYjM5OD4gKGEgamF2YS5sYW5nLnJlZi5SZWZlcmVuY2VRdWV1ZSRMb2NrKQoJYXQgamF2YS5s YW5nLnJlZi5SZWZlcmVuY2VRdWV1ZS5yZW1vdmUoUmVmZXJlbmNlUXVldWUuamF2YToxMzUpCgkt IGxvY2tlZCA8MHgwMDAwMDAwNDAwMGFiMzk4PiAoYSBqYXZhLmxhbmcucmVmLlJlZmVyZW5jZVF1 ZXVlJExvY2spCglhdCBqYXZhLmxhbmcucmVmLlJlZmVyZW5jZVF1ZXVlLnJlbW92ZShSZWZlcmVu Y2VRdWV1ZS5qYXZhOjE1MSkKCWF0IGphdmEubGFuZy5yZWYuRmluYWxpemVyJEZpbmFsaXplclRo cmVhZC5ydW4oRmluYWxpemVyLmphdmE6MTc3KQoKIlJlZmVyZW5jZSBIYW5kbGVyIiBkYWVtb24g cHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDBlYjkzMDAwIG5pZD0weDQ5ZjUgaW4gT2JqZWN0LndhaXQo KSBbMHgwMDAwMDAwMDQxNDZlMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBXQUlUSU5H IChvbiBvYmplY3QgbW9uaXRvcikKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChOYXRpdmUgTWV0 aG9kKQoJLSB3YWl0aW5nIG9uIDwweDAwMDAwMDA0MDAwYWFmYjg+IChhIGphdmEubGFuZy5yZWYu UmVmZXJlbmNlJExvY2spCglhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoT2JqZWN0LmphdmE6NTAz KQoJYXQgamF2YS5sYW5nLnJlZi5SZWZlcmVuY2UkUmVmZXJlbmNlSGFuZGxlci5ydW4oUmVmZXJl bmNlLmphdmE6MTMzKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDQwMDBhYWZiOD4gKGEgamF2YS5sYW5n LnJlZi5SZWZlcmVuY2UkTG9jaykKCiJtYWluIiBwcmlvPTEwIHRpZD0weDAwMDAwMDAwMGVhZmEw MDAgbmlkPTB4NDllYiBpbiBPYmplY3Qud2FpdCgpIFsweDAwMDAwMDAwNDEyNmIwMDBdCiAgIGph dmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKG9uIG9iamVjdCBtb25pdG9yKQoJ YXQgamF2YS5sYW5nLk9iamVjdC53YWl0KE5hdGl2ZSBNZXRob2QpCgktIHdhaXRpbmcgb24gPDB4 MDAwMDAwMDQwMDFiMWVjOD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQuQ29uY3VycmVudEhhc2hN YXApCglhdCBvcmcuYXBhY2hlLmdpcmFwaC5jb21tLm5ldHR5Lk5ldHR5Q2xpZW50LndhaXRTb21l UmVxdWVzdHMoTmV0dHlDbGllbnQuamF2YTo2OTApCgktIGxvY2tlZCA8MHgwMDAwMDAwNDAwMWIx ZWM4PiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5Db25jdXJyZW50SGFzaE1hcCkKCWF0IG9yZy5h cGFjaGUuZ2lyYXBoLmNvbW0ubmV0dHkuTmV0dHlDbGllbnQud2FpdEFsbFJlcXVlc3RzKE5ldHR5 Q2xpZW50LmphdmE6NjY2KQoJYXQgb3JnLmFwYWNoZS5naXJhcGguY29tbS5uZXR0eS5OZXR0eVdv cmtlckNsaWVudC53YWl0QWxsUmVxdWVzdHMoTmV0dHlXb3JrZXJDbGllbnQuamF2YToxNDkpCglh dCBvcmcuYXBhY2hlLmdpcmFwaC53b3JrZXIuQnNwU2VydmljZVdvcmtlci53YWl0Rm9yUmVxdWVz dHNUb0ZpbmlzaChCc3BTZXJ2aWNlV29ya2VyLmphdmE6ODI5KQoJYXQgb3JnLmFwYWNoZS5naXJh cGgud29ya2VyLkJzcFNlcnZpY2VXb3JrZXIuZmluaXNoU3VwZXJzdGVwKEJzcFNlcnZpY2VXb3Jr ZXIuamF2YTo3NDMpCglhdCBvcmcuYXBhY2hlLmdpcmFwaC5ncmFwaC5HcmFwaFRhc2tNYW5hZ2Vy LmNvbXBsZXRlU3VwZXJzdGVwQW5kQ29sbGVjdFN0YXRzKEdyYXBoVGFza01hbmFnZXIuamF2YToz ODcpCglhdCBvcmcuYXBhY2hlLmdpcmFwaC5ncmFwaC5HcmFwaFRhc2tNYW5hZ2VyLmV4ZWN1dGUo R3JhcGhUYXNrTWFuYWdlci5qYXZhOjI3NikKCWF0IG9yZy5hcGFjaGUuZ2lyYXBoLmdyYXBoLkdy YXBoTWFwcGVyLnJ1bihHcmFwaE1hcHBlci5qYXZhOjkyKQoJYXQgb3JnLmFwYWNoZS5oYWRvb3Au bWFwcmVkLk1hcFRhc2sucnVuTmV3TWFwcGVyKE1hcFRhc2suamF2YTo3NjMpCglhdCBvcmcuYXBh Y2hlLmhhZG9vcC5tYXByZWQuTWFwVGFzay5ydW4oTWFwVGFzay5qYXZhOjM2OSkKCWF0IG9yZy5h cGFjaGUuaGFkb29wLm1hcHJlZC5DaGlsZCQ0LnJ1bihDaGlsZC5qYXZhOjI1OSkKCWF0IGphdmEu c2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoTmF0aXZlIE1ldGhvZCkKCWF0 IGphdmF4LnNlY3VyaXR5LmF1dGguU3ViamVjdC5kb0FzKFN1YmplY3QuamF2YTo0MTUpCglhdCBv cmcuYXBhY2hlLmhhZG9vcC5zZWN1cml0eS5Vc2VyR3JvdXBJbmZvcm1hdGlvbi5kb0FzKFVzZXJH cm91cEluZm9ybWF0aW9uLmphdmE6MTA1OSkKCWF0IG9yZy5hcGFjaGUuaGFkb29wLm1hcHJlZC5D aGlsZC5tYWluKENoaWxkLmphdmE6MjUzKQoKIlZNIFRocmVhZCIgcHJpbz0xMCB0aWQ9MHgwMDAw MDAwMDBlYjhiODAwIG5pZD0weDQ5ZjQgcnVubmFibGUgCgoiR0MgdGFzayB0aHJlYWQjMCAoUGFy YWxsZWxHQykiIHByaW89MTAgdGlkPTB4MDAwMDAwMDAwZWIwNzgwMCBuaWQ9MHg0OWVjIHJ1bm5h YmxlIAoKIkdDIHRhc2sgdGhyZWFkIzEgKFBhcmFsbGVsR0MpIiBwcmlvPTEwIHRpZD0weDAwMDAw MDAwMGViMDk4MDAgbmlkPTB4NDllZCBydW5uYWJsZSAKCiJHQyB0YXNrIHRocmVhZCMyIChQYXJh bGxlbEdDKSIgcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDBlYjBiODAwIG5pZD0weDQ5ZWUgcnVubmFi bGUgCgoiR0MgdGFzayB0aHJlYWQjMyAoUGFyYWxsZWxHQykiIHByaW89MTAgdGlkPTB4MDAwMDAw MDAwZWIwZDAwMCBuaWQ9MHg0OWVmIHJ1bm5hYmxlIAoKIkdDIHRhc2sgdGhyZWFkIzQgKFBhcmFs bGVsR0MpIiBwcmlvPTEwIHRpZD0weDAwMDAwMDAwMGViMGYwMDAgbmlkPTB4NDlmMCBydW5uYWJs ZSAKCiJHQyB0YXNrIHRocmVhZCM1IChQYXJhbGxlbEdDKSIgcHJpbz0xMCB0aWQ9MHgwMDAwMDAw MDBlYjExMDAwIG5pZD0weDQ5ZjEgcnVubmFibGUgCgoiR0MgdGFzayB0aHJlYWQjNiAoUGFyYWxs ZWxHQykiIHByaW89MTAgdGlkPTB4MDAwMDAwMDAwZWIxMjgwMCBuaWQ9MHg0OWYyIHJ1bm5hYmxl IAoKIkdDIHRhc2sgdGhyZWFkIzcgKFBhcmFsbGVsR0MpIiBwcmlvPTEwIHRpZD0weDAwMDAwMDAw MGViMTQ4MDAgbmlkPTB4NDlmMyBydW5uYWJsZSAKCiJWTSBQZXJpb2RpYyBUYXNrIFRocmVhZCIg cHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDBlYzNlODAwIG5pZD0weDQ5ZmIgd2FpdGluZyBvbiBjb25k aXRpb24gCgpKTkkgZ2xvYmFsIHJlZmVyZW5jZXM6IDIxMwoKSGVhcAogUFNZb3VuZ0dlbiAgICAg IHRvdGFsIDM3NzQ4NDhLLCB1c2VkIDgyNzg2SyBbMHgwMDAwMDAwNmFhYWIwMDAwLCAweDAwMDAw MDA3ZjYxZDAwMDAsIDB4MDAwMDAwMDgwMDAwMDAwMCkKICBlZGVuIHNwYWNlIDIyMzUzOTJLLCAz JSB1c2VkIFsweDAwMDAwMDA2YWFhYjAwMDAsMHgwMDAwMDAwNmFmYjg4YTE4LDB4MDAwMDAwMDcz MzFiMDAwMCkKICBmcm9tIHNwYWNlIDE1Mzk0NTZLLCAwJSB1c2VkIFsweDAwMDAwMDA3OTgyNzAw MDAsMHgwMDAwMDAwNzk4MjcwMDAwLDB4MDAwMDAwMDdmNjFkMDAwMCkKICB0byAgIHNwYWNlIDE1 OTc1MDRLLCAwJSB1c2VkIFsweDAwMDAwMDA3MzMxYjAwMDAsMHgwMDAwMDAwNzMzMWIwMDAwLDB4 MDAwMDAwMDc5NDljMDAwMCkKIFBhck9sZEdlbiAgICAgICB0b3RhbCA0MzkwMDgwSywgdXNlZCAy MTUxODAzSyBbMHgwMDAwMDAwNDAwMDAwMDAwLCAweDAwMDAwMDA1MGJmMzAwMDAsIDB4MDAwMDAw MDZhYWFiMDAwMCkKICBvYmplY3Qgc3BhY2UgNDM5MDA4MEssIDQ5JSB1c2VkIFsweDAwMDAwMDA0 MDAwMDAwMDAsMHgwMDAwMDAwNDgzNTVlZTgwLDB4MDAwMDAwMDUwYmYzMDAwMCkKIFBTUGVybUdl biAgICAgICB0b3RhbCAyMTY5NkssIHVzZWQgMTc0ODBLIFsweDAwMDAwMDAzZmFlMDAwMDAsIDB4 MDAwMDAwMDNmYzMzMDAwMCwgMHgwMDAwMDAwNDAwMDAwMDAwKQogIG9iamVjdCBzcGFjZSAyMTY5 NkssIDgwJSB1c2VkIFsweDAwMDAwMDAzZmFlMDAwMDAsMHgwMDAwMDAwM2ZiZjEyMTIwLDB4MDAw MDAwMDNmYzMzMDAwMCkKCg== --089e013c701a2317f804e750b716--