Return-Path: X-Original-To: apmail-camel-dev-archive@www.apache.org Delivered-To: apmail-camel-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8F680D508 for ; Wed, 14 Nov 2012 13:54:07 +0000 (UTC) Received: (qmail 98993 invoked by uid 500); 14 Nov 2012 13:54:07 -0000 Delivered-To: apmail-camel-dev-archive@camel.apache.org Received: (qmail 98966 invoked by uid 500); 14 Nov 2012 13:54:07 -0000 Mailing-List: contact dev-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list dev@camel.apache.org Received: (qmail 98957 invoked by uid 99); 14 Nov 2012 13:54:07 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Nov 2012 13:54:07 +0000 X-ASF-Spam-Status: No, hits=2.4 required=5.0 tests=FROM_EXCESS_BASE64,HTML_MESSAGE,MISSING_MID,RCVD_IN_DNSWL_LOW,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [217.70.183.196] (HELO relay4-d.mail.gandi.net) (217.70.183.196) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Nov 2012 13:54:02 +0000 X-Originating-IP: 217.70.178.136 Received: from mfilter7-d.gandi.net (mfilter7-d.gandi.net [217.70.178.136]) by relay4-d.mail.gandi.net (Postfix) with ESMTP id 929B0172080; Wed, 14 Nov 2012 14:53:40 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at mfilter7-d.gandi.net Received: from relay4-d.mail.gandi.net ([217.70.183.196]) by mfilter7-d.gandi.net (mfilter7-d.gandi.net [10.0.15.180]) (amavisd-new, port 10024) with ESMTP id dqJqL2bZDqz1; Wed, 14 Nov 2012 14:53:38 +0100 (CET) X-Originating-IP: 80.214.8.121 Received: from [10.168.251.89] (unknown [80.214.8.121]) (Authenticated sender: jb@nanthrax.net) by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 05B1E1720A1; Wed, 14 Nov 2012 14:51:38 +0100 (CET) To: dev@camel.apache.org,dev@camel.apache.org,"=?utf-8?B?Q2xhdXMgSWJzZW4=?=" From: "=?utf-8?B?amJAbmFudGhyYXgubmV0?=" Subject: =?utf-8?B?UmU6IHN2biBjb21taXQ6IHIxNDA4NjcwIC0gaW4gL2NhbWVsL3RydW5rL2NvbXBv?= =?utf-8?B?bmVudHMvY2FtZWwtY3hmL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9jYW1lbC9j?= =?utf-8?B?b21wb25lbnQvY3hmOiAuLyBtdG9tLw==?= Date: Wed, 14 Nov 2012 08:51:41 -0500 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_0_1352901101217" X-Virus-Checked: Checked by ClamAV on apache.org Message-Id: <20121114135406.CCEB027B@athena.apache.org> ------=_Part_0_1352901101217 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 Content-Disposition: inline SGkgZ3V5cywKSSBoYXZlIGFjY2VzcyB0byBteSBBSVggYm94IGZyb20gaGVyZS4gSSB3aWxsIHVw ZGF0ZSBteSBsb2NhbCB3b3JraW5nIGNvcHkgdG8gcnVuIHRoZSB0ZXN0cyB0b25pZ2h0IChlYXN0 IGNvYXN0IHRpbWUpLgoKUmVnYXJkcwpKQgotLQpKZWFuLUJhcHRpc3RlIE9ub2Zyw6kKamJvbm9m cmVAYXBhY2hlLm9yZwpodHRwOi8vYmxvZy5uYW50aHJheC5uZXQKVGFsZW5kIC0gaHR0cDovL3d3 eC50YWxlbmQuY29tCgotLS0tLSBSZXBseSBtZXNzYWdlIC0tLS0tCkZyb206ICJEYW5pZWwgS3Vs cCIgPGRrdWxwQGFwYWNoZS5vcmc+ClRvOiA8ZGV2QGNhbWVsLmFwYWNoZS5vcmc+LCAiQ2xhdXMg SWJzZW4iIDxjbGF1cy5pYnNlbkBnbWFpbC5jb20+ClN1YmplY3Q6IHN2biBjb21taXQ6IHIxNDA4 NjcwIC0gaW4gL2NhbWVsL3RydW5rL2NvbXBvbmVudHMvY2FtZWwtY3hmL3NyYy90ZXN0L2phdmEv b3JnL2FwYWNoZS9jYW1lbC9jb21wb25lbnQvY3hmOiAuLyBtdG9tLwpEYXRlOiBXZWQsIE5vdiAx NCwgMjAxMiA3OjQyIGFtCgoKCk9uIE5vdiAxNCwgMjAxMiwgYXQgMjowNyBBTSwgQ2xhdXMgSWJz ZW4gPGNsYXVzLmlic2VuQGdtYWlsLmNvbT4gd3JvdGU6Cgo+IE9uIFR1ZSwgTm92IDEzLCAyMDEy IGF0IDE6MjUgUE0sIERhbmllbCBLdWxwIDxka3VscEBhcGFjaGUub3JnPiB3cm90ZToKPj4gCj4+ IAo+PiBDYW4gSSBhc2sgd2h5IHRoZXkgY2Fubm90IHJ1biBvbiBBSVg/ICAgT3RoZXIgdGhhbiB0 aGUgaW1hZ2VzIHdoaWNoIG1heSBub3Qgd29yayBoZWFkbGVzcywgdGhlIHRlc3RzIHNob3VsZCBi ZSBhYmxlIHRvIHJ1biBmaW5lLiAgICBJJ3ZlIGFmcmFpZCB0aGlzIGlzIGFkZHJlc3NpbmcgYSBz eW1wdG9tLCBub3QgdGhlIGFjdHVhbCBwcm9ibGVtIGFuZCBJIHByZWZlciB0byBnZXQgdGhlIHBy b2JsZW0gbG9va2VkIGF0Lgo+PiAKPiAKPiBZZWFoIHRoZXJlIHdhcyBub3RoaW5nIG9idmlvdXMg SSBjb3VsZCBzZWUgZnJvbSB0aGUganVuaXQgZXJyb3IgdGhhdAo+IGluZGljYXRlZCB3aHkgaXQg ZGlkbid0IHdvcmsgb24gQUlYLgo+IEkgbmVlZGVkIHRvIGRpc2FibGUgZmFpbGluZyB0ZXN0cyB0 byBoYXZlIHRoZSBidWlsZCBhbmQgdGVzdHMgYmUgYWJsZQo+IHRvIGRvIGEgZnVsbCB0ZXN0IHN1 aXRlIG9mIHRoZSBwcm9qZWN0IHRvIGFsc28gdW5jb3ZlciBpc3N1ZXMgZnVydGhlcgo+IGRvd24g dGhlIHJvYWQuJwoKSWYgdGhhdCdzIHRoZSBjYXNlLCBJJ20gLTEgb24gYWxsIHRoZSAiZGlzYWJs ZSBvbiBBSVgiIGNvbW1pdHMgeW91IGRpZC4gICBEaXNhYmxpbmcgYSB0ZXN0IGp1c3QgYmVjYXVz ZSB5b3UgZG9uJ3Qga25vdyB3aHkgaXRzIGZhaWxpbmcgaXMgbm90IE9LLiAgVGhlcmUgYXJlbid0 IGV2ZW4gZGVzY3JpcHRpb25zIG9mIHdoYXQncyBmYWlsaW5nLCBzdGFjayB0cmFjZXMsIHdoYXRl dmVyLCB0aGF0IHdvdWxkIGFsbG93IG90aGVycyBvbiB0aGUgbGlzdCBoZWxwIGRpYWdub3NlIGl0 LiAgSSdtIGFsc28gY29uY2VybmVkIGJlY2F1c2Ugd2UgZGlkIGhhdmUgdGhlc2UgcnVubmluZyBP SyBvbiBBSVggbm90IHRvbyBsb25nIGFnby4gIFRodXMgaXQgbWF5IGJlIHNvbWV0aGluZyB3aXRo IHlvdXIgc3BlY2lmaWMgQUlYIGluc3RhbmNlLiAgIFdoZW4gSkIgZ2V0cyBiYWNrIHRvIEZyYW5j ZSwgSSdsbCBzZWUgaWYgd2UgY2FuIHJldHJ5IG9uIGhpcyBBSVggYm94LgoKCj4gVGhvdWdoIGl0 cyBzdXNwaWNpb3VzIHRoYXQgdGhlc2UgdGVzdHMgYXJlIHVzaW5nIGltYWdlcyBhbmQgZGV0ZWN0 IGZvcgo+IGhlYWRsZXNzIG1vZGUuIFdvbmRlciBpZiB3ZSBjYW4gdXNlIG5vbiBpbWFnZXMgZm9y IHRoZSB0ZXN0PwoKV2VsbCwgaXQncyBzcGVjaWZpY2FsbHkgdGhlcmUgdG8gdGVzdCB0aGUgaW1h Z2VzLiAgIEpBWC1XUyByZXF1aXJlcyBtYXBwaW5nIGNlcnRhaW4gd3NkbCBjb25zdHJ1Y3RzIHRv IEltYWdlcyBhcyBwYXJ0IG9mIHRoZSB3c2RsMmphdmEgcHJvY2VzcyAoYWx0aG91Z2ggaXQncyBh IHJlbGF0aXZlbHkgYW5ub3lpbmcgcGFydCBvZiB0aGUgc3BlYywgSSdkIHBlcnNvbmFsbHkgcHJl ZmVyIERhdGFTb3VyY2Ugb3Igc2ltaWxhcikuICAgVGhlIHRlc3QgaXMgdGhlcmUgdG8gc3BlY2lm aWNhbGx5IHRlc3QgdGhhdCBwYXJ0IG9mIHRoZSBzcGVjLiAgVW5mb3J0dW5hdGVseSwgaXQgd29u J3Qgd29yayB3aXRoIGhlYWRsZXNzLiAgIChhY3R1YWxseSwgdGhhdCBtYXkgbmVlZCB0byBiZSBy ZS1jaGVja2VkLiAgIFRoYXQgd2FzIHRydWUgd2l0aCBKYXZhNSwgbm90IHN1cmUgd2l0aCA2IG9y IDcuICBJJ2xsIGRvdWJsZSBjaGVjayB0aGF0IHRvZGF5IGFzIHRoYXQgY291bGQgYWxsb3cgcmUt ZW5hYmxpbmcgc29tZSB0ZXN0IGluIENYRiBvbiB0cnVuayB0aGF0IG5vIGxvbmdlciBzdXBwb3J0 cyA1KQoKCkRhbgoKCgo+IAo+PiBEYW4KPj4gCj4+IAo+PiAKPj4gT24gTm92IDEzLCAyMDEyLCBh dCA1OjM1IEFNLCBkYXZzY2xhdXNAYXBhY2hlLm9yZyB3cm90ZToKPj4gCj4+PiBBdXRob3I6IGRh dnNjbGF1cwo+Pj4gRGF0ZTogVHVlIE5vdiAxMyAxMDozNToyMCAyMDEyCj4+PiBOZXcgUmV2aXNp b246IDE0MDg2NzAKPj4+IAo+Pj4gVVJMOiBodHRwOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjP3Jl dj0xNDA4NjcwJnZpZXc9cmV2Cj4+PiBMb2c6Cj4+PiBTa2lwIHRlc3QgdGhhdCBjYW5ub3QgcnVu IG9uIGFpeAo+Pj4gCj4+PiBBZGRlZDoKPj4+ICAgY2FtZWwvdHJ1bmsvY29tcG9uZW50cy9jYW1l bC1jeGYvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NhbWVsL2NvbXBvbmVudC9jeGYvVGVzdEhl bHBlci5qYXZhICAgKHdpdGggcHJvcHMpCj4+PiBNb2RpZmllZDoKPj4+ICAgY2FtZWwvdHJ1bmsv Y29tcG9uZW50cy9jYW1lbC1jeGYvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NhbWVsL2NvbXBv bmVudC9jeGYvbXRvbS9DeGZKYXZhTXRvbVByb2R1Y2VyUGF5bG9hZFRlc3QuamF2YQo+Pj4gICBj YW1lbC90cnVuay9jb21wb25lbnRzL2NhbWVsLWN4Zi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUv Y2FtZWwvY29tcG9uZW50L2N4Zi9tdG9tL0N4Zk10b21Db25zdW1lclBheWxvYWRNb2RlVGVzdC5q YXZhCj4+PiAgIGNhbWVsL3RydW5rL2NvbXBvbmVudHMvY2FtZWwtY3hmL3NyYy90ZXN0L2phdmEv b3JnL2FwYWNoZS9jYW1lbC9jb21wb25lbnQvY3hmL210b20vQ3hmTXRvbUNvbnN1bWVyVGVzdC5q YXZhCj4+PiAgIGNhbWVsL3RydW5rL2NvbXBvbmVudHMvY2FtZWwtY3hmL3NyYy90ZXN0L2phdmEv b3JnL2FwYWNoZS9jYW1lbC9jb21wb25lbnQvY3hmL210b20vQ3hmTXRvbURpc2FibGVkUHJvZHVj ZXJQYXlsb2FkTW9kZVRlc3QuamF2YQo+Pj4gICBjYW1lbC90cnVuay9jb21wb25lbnRzL2NhbWVs LWN4Zi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvY2FtZWwvY29tcG9uZW50L2N4Zi9tdG9tL0N4 Zk10b21QT0pPUHJvZHVjZXJUZXN0LmphdmEKPj4+ICAgY2FtZWwvdHJ1bmsvY29tcG9uZW50cy9j YW1lbC1jeGYvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NhbWVsL2NvbXBvbmVudC9jeGYvbXRv bS9DeGZNdG9tUHJvZHVjZXJQYXlsb2FkTW9kZVRlc3QuamF2YQo+Pj4gICBjYW1lbC90cnVuay9j b21wb25lbnRzL2NhbWVsLWN4Zi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvY2FtZWwvY29tcG9u ZW50L2N4Zi9tdG9tL0N4Zk10b21Sb3V0ZXJQYXlsb2FkTW9kZVRlc3QuamF2YQo+Pj4gCj4+PiBB ZGRlZDogY2FtZWwvdHJ1bmsvY29tcG9uZW50cy9jYW1lbC1jeGYvc3JjL3Rlc3QvamF2YS9vcmcv YXBhY2hlL2NhbWVsL2NvbXBvbmVudC9jeGYvVGVzdEhlbHBlci5qYXZhCj4+PiBVUkw6IGh0dHA6 Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvY2FtZWwvdHJ1bmsvY29tcG9uZW50cy9jYW1lbC1jeGYv c3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NhbWVsL2NvbXBvbmVudC9jeGYvVGVzdEhlbHBlci5q YXZhP3Jldj0xNDA4NjcwJnZpZXc9YXV0bwo+Pj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4+PiAt LS0gY2FtZWwvdHJ1bmsvY29tcG9uZW50cy9jYW1lbC1jeGYvc3JjL3Rlc3QvamF2YS9vcmcvYXBh Y2hlL2NhbWVsL2NvbXBvbmVudC9jeGYvVGVzdEhlbHBlci5qYXZhIChhZGRlZCkKPj4+ICsrKyBj YW1lbC90cnVuay9jb21wb25lbnRzL2NhbWVsLWN4Zi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUv Y2FtZWwvY29tcG9uZW50L2N4Zi9UZXN0SGVscGVyLmphdmEgVHVlIE5vdiAxMyAxMDozNToyMCAy MDEyCj4+PiBAQCAtMCwwICsxLDQxIEBACj4+PiArLyoqCj4+PiArICogTGljZW5zZWQgdG8gdGhl IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCj4+PiAr ICogY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZSBk aXN0cmlidXRlZCB3aXRoCj4+PiArICogdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0 aW9uIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLgo+Pj4gKyAqIFRoZSBBU0YgbGljZW5z ZXMgdGhpcyBmaWxlIHRvIFlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4w Cj4+PiArICogKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2Vw dCBpbiBjb21wbGlhbmNlIHdpdGgKPj4+ICsgKiB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWlu IGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAo+Pj4gKyAqCj4+PiArICogICAgICBodHRwOi8vd3d3 LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKPj4+ICsgKgo+Pj4gKyAqIFVubGVzcyBy ZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdh cmUKPj4+ICsgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBv biBhbiAiQVMgSVMiIEJBU0lTLAo+Pj4gKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJ T05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgo+Pj4gKyAqIFNlZSB0 aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9u cyBhbmQKPj4+ICsgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KPj4+ICsgKi8KPj4+ ICtwYWNrYWdlIG9yZy5hcGFjaGUuY2FtZWwuY29tcG9uZW50LmN4ZjsKPj4+ICsKPj4+ICtpbXBv cnQgamF2YS51dGlsLkxvY2FsZTsKPj4+ICsKPj4+ICsvKioKPj4+ICsgKgo+Pj4gKyAqLwo+Pj4g K3B1YmxpYyBmaW5hbCBjbGFzcyBUZXN0SGVscGVyIHsKPj4+ICsKPj4+ICsgICAgcHJpdmF0ZSBU ZXN0SGVscGVyKCkgewo+Pj4gKyAgICB9Cj4+PiArCj4+PiArICAgIC8qKgo+Pj4gKyAgICAgKiBJ cyB0aGlzIE9TIHRoZSBnaXZlbiBwbGF0Zm9ybS4KPj4+ICsgICAgICogPHAvPgo+Pj4gKyAgICAg KiBVc2VzIDx0dD5vcy5uYW1lPC90dD4gZnJvbSB0aGUgc3lzdGVtIHByb3BlcnRpZXMgdG8gZGV0 ZXJtaW5lIHRoZSBPUy4KPj4+ICsgICAgICoKPj4+ICsgICAgICogQHBhcmFtIHBsYXRmb3JtIHN1 Y2ggYXMgV2luZG93cwo+Pj4gKyAgICAgKiBAcmV0dXJuIDx0dD50cnVlPC90dD4gaWYgaXRzIHRo YXQgcGxhdGZvcm0uCj4+PiArICAgICAqLwo+Pj4gKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4g aXNQbGF0Zm9ybShTdHJpbmcgcGxhdGZvcm0pIHsKPj4+ICsgICAgICAgIFN0cmluZyBvc05hbWUg PSBTeXN0ZW0uZ2V0UHJvcGVydHkoIm9zLm5hbWUiKS50b0xvd2VyQ2FzZShMb2NhbGUuVVMpOwo+ Pj4gKyAgICAgICAgcmV0dXJuIG9zTmFtZS5pbmRleE9mKHBsYXRmb3JtLnRvTG93ZXJDYXNlKExv Y2FsZS5VUykpID4gLTE7Cj4+PiArICAgIH0KPj4+ICt9Cj4+PiAKPj4+IFByb3BjaGFuZ2U6IGNh bWVsL3RydW5rL2NvbXBvbmVudHMvY2FtZWwtY3hmL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9j YW1lbC9jb21wb25lbnQvY3hmL1Rlc3RIZWxwZXIuamF2YQo+Pj4gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4+PiAgIHN2bjplb2wtc3R5bGUgPSBuYXRpdmUKPj4+IAo+Pj4gUHJvcGNoYW5nZTogY2Ft ZWwvdHJ1bmsvY29tcG9uZW50cy9jYW1lbC1jeGYvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2Nh bWVsL2NvbXBvbmVudC9jeGYvVGVzdEhlbHBlci5qYXZhCj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KPj4+ICAgc3ZuOmtleXdvcmRzID0gUmV2IERhdGUKPj4+IAo+Pj4gTW9kaWZpZWQ6IGNhbWVs L3RydW5rL2NvbXBvbmVudHMvY2FtZWwtY3hmL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9jYW1l bC9jb21wb25lbnQvY3hmL210b20vQ3hmSmF2YU10b21Qcm9kdWNlclBheWxvYWRUZXN0LmphdmEK Pj4+IFVSTDogaHR0cDovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9jYW1lbC90cnVuay9jb21wb25l bnRzL2NhbWVsLWN4Zi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvY2FtZWwvY29tcG9uZW50L2N4 Zi9tdG9tL0N4ZkphdmFNdG9tUHJvZHVjZXJQYXlsb2FkVGVzdC5qYXZhP3Jldj0xNDA4NjcwJnIx PTE0MDg2NjkmcjI9MTQwODY3MCZ2aWV3PWRpZmYKPj4+ID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ Pj4gLS0tIGNhbWVsL3RydW5rL2NvbXBvbmVudHMvY2FtZWwtY3hmL3NyYy90ZXN0L2phdmEvb3Jn L2FwYWNoZS9jYW1lbC9jb21wb25lbnQvY3hmL210b20vQ3hmSmF2YU10b21Qcm9kdWNlclBheWxv YWRUZXN0LmphdmEgKG9yaWdpbmFsKQo+Pj4gKysrIGNhbWVsL3RydW5rL2NvbXBvbmVudHMvY2Ft ZWwtY3hmL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9jYW1lbC9jb21wb25lbnQvY3hmL210b20v Q3hmSmF2YU10b21Qcm9kdWNlclBheWxvYWRUZXN0LmphdmEgVHVlIE5vdiAxMyAxMDozNToyMCAy MDEyCj4+PiBAQCAtMjIsNiArMjIsNyBAQCBpbXBvcnQgamF2YXgueG1sLndzLkhvbGRlcjsKPj4+ IAo+Pj4gaW1wb3J0IG9yZy5hcGFjaGUuY2FtZWwuRXhjaGFuZ2U7Cj4+PiBpbXBvcnQgb3JnLmFw YWNoZS5jYW1lbC5Qcm9jZXNzb3I7Cj4+PiAraW1wb3J0IG9yZy5hcGFjaGUuY2FtZWwuY29tcG9u ZW50LmN4Zi5UZXN0SGVscGVyOwo+Pj4gaW1wb3J0IG9yZy5qdW5pdC5UZXN0Owo+Pj4gCj4+PiBw dWJsaWMgY2xhc3MgQ3hmSmF2YU10b21Qcm9kdWNlclBheWxvYWRUZXN0IGV4dGVuZHMgQ3hmTXRv bUNvbnN1bWVyVGVzdCB7Cj4+PiBAQCAtMzUsNiArMzYsMTEgQEAgcHVibGljIGNsYXNzIEN4Zkph dmFNdG9tUHJvZHVjZXJQYXlsb2FkVAo+Pj4gICAgICAgICAgICByZXR1cm47Cj4+PiAgICAgICAg fQo+Pj4gCj4+PiArICAgICAgICAvLyBza2lwIHRlc3Qgb24gYWl4Cj4+PiArICAgICAgICBpZiAo VGVzdEhlbHBlci5pc1BsYXRmb3JtKCJhaXgiKSkgewo+Pj4gKyAgICAgICAgICAgIHJldHVybjsK Pj4+ICsgICAgICAgIH0KPj4+ICsKPj4+ICAgICAgICBmaW5hbCBIb2xkZXI8Ynl0ZVtdPiBwaG90 byA9IG5ldyBIb2xkZXI8Ynl0ZVtdPigiUmVxdWVzdEZyb21DWEYiLmdldEJ5dGVzKCJVVEYtOCIp KTsKPj4+ICAgICAgICBmaW5hbCBIb2xkZXI8SW1hZ2U+IGltYWdlID0gbmV3IEhvbGRlcjxJbWFn ZT4oZ2V0SW1hZ2UoIi9qYXZhLmpwZyIpKTsKPj4+IAo+Pj4gCj4+PiBNb2RpZmllZDogY2FtZWwv dHJ1bmsvY29tcG9uZW50cy9jYW1lbC1jeGYvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NhbWVs L2NvbXBvbmVudC9jeGYvbXRvbS9DeGZNdG9tQ29uc3VtZXJQYXlsb2FkTW9kZVRlc3QuamF2YQo+ Pj4gVVJMOiBodHRwOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL2NhbWVsL3RydW5rL2NvbXBvbmVu dHMvY2FtZWwtY3hmL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9jYW1lbC9jb21wb25lbnQvY3hm L210b20vQ3hmTXRvbUNvbnN1bWVyUGF5bG9hZE1vZGVUZXN0LmphdmE/cmV2PTE0MDg2NzAmcjE9 MTQwODY2OSZyMj0xNDA4NjcwJnZpZXc9ZGlmZgo+Pj4gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4+ PiAtLS0gY2FtZWwvdHJ1bmsvY29tcG9uZW50cy9jYW1lbC1jeGYvc3JjL3Rlc3QvamF2YS9vcmcv YXBhY2hlL2NhbWVsL2NvbXBvbmVudC9jeGYvbXRvbS9DeGZNdG9tQ29uc3VtZXJQYXlsb2FkTW9k ZVRlc3QuamF2YSAob3JpZ2luYWwpCj4+PiArKysgY2FtZWwvdHJ1bmsvY29tcG9uZW50cy9jYW1l bC1jeGYvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NhbWVsL2NvbXBvbmVudC9jeGYvbXRvbS9D eGZNdG9tQ29uc3VtZXJQYXlsb2FkTW9kZVRlc3QuamF2YSBUdWUgTm92IDEzIDEwOjM1OjIwIDIw MTIKPj4+IEBAIC0zOCw2ICszOCw3IEBAIGltcG9ydCBvcmcuYXBhY2hlLmNhbWVsLkV4Y2hhbmdl UGF0dGVybjsKPj4+IGltcG9ydCBvcmcuYXBhY2hlLmNhbWVsLlByb2Nlc3NvcjsKPj4+IGltcG9y dCBvcmcuYXBhY2hlLmNhbWVsLmNvbXBvbmVudC5jeGYuQ1hGVGVzdFN1cHBvcnQ7Cj4+PiBpbXBv cnQgb3JnLmFwYWNoZS5jYW1lbC5jb21wb25lbnQuY3hmLkN4ZlBheWxvYWQ7Cj4+PiAraW1wb3J0 IG9yZy5hcGFjaGUuY2FtZWwuY29tcG9uZW50LmN4Zi5UZXN0SGVscGVyOwo+Pj4gaW1wb3J0IG9y Zy5hcGFjaGUuY2FtZWwuY29udmVydGVyLmpheHAuWG1sQ29udmVydGVyOwo+Pj4gaW1wb3J0IG9y Zy5hcGFjaGUuY3hmLmJpbmRpbmcuc29hcC5Tb2FwSGVhZGVyOwo+Pj4gaW1wb3J0IG9yZy5hcGFj aGUuY3hmLmhlbHBlcnMuRE9NVXRpbHM7Cj4+PiBAQCAtNjUsNiArNjYsMTUgQEAgcHVibGljIGNs YXNzIEN4Zk10b21Db25zdW1lclBheWxvYWRNb2RlVAo+Pj4gCj4+PiAgICBAVGVzdAo+Pj4gICAg cHVibGljIHZvaWQgdGVzdENvbnN1bWVyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Cj4+PiArICAgICAg ICBpZiAoTXRvbVRlc3RIZWxwZXIuaXNBd3RIZWFkbGVzcyhsb2dnZXIsIG51bGwpKSB7Cj4+PiAr ICAgICAgICAgICAgcmV0dXJuOwo+Pj4gKyAgICAgICAgfQo+Pj4gKwo+Pj4gKyAgICAgICAgLy8g c2tpcCB0ZXN0IG9uIGFpeAo+Pj4gKyAgICAgICAgaWYgKFRlc3RIZWxwZXIuaXNQbGF0Zm9ybSgi YWl4IikpIHsKPj4+ICsgICAgICAgICAgICByZXR1cm47Cj4+PiArICAgICAgICB9Cj4+PiArCj4+ PiAgICAgICAgY29udGV4dC5jcmVhdGVQcm9kdWNlclRlbXBsYXRlKCkuc2VuZCgiY3hmOmJlYW46 Y29uc3VtZXJFbmRwb2ludCIsIG5ldyBQcm9jZXNzb3IoKSB7Cj4+PiAKPj4+ICAgICAgICAgICAg cHVibGljIHZvaWQgcHJvY2VzcyhFeGNoYW5nZSBleGNoYW5nZSkgdGhyb3dzIEV4Y2VwdGlvbiB7 Cj4+PiAKPj4+IE1vZGlmaWVkOiBjYW1lbC90cnVuay9jb21wb25lbnRzL2NhbWVsLWN4Zi9zcmMv dGVzdC9qYXZhL29yZy9hcGFjaGUvY2FtZWwvY29tcG9uZW50L2N4Zi9tdG9tL0N4Zk10b21Db25z dW1lclRlc3QuamF2YQo+Pj4gVVJMOiBodHRwOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL2NhbWVs L3RydW5rL2NvbXBvbmVudHMvY2FtZWwtY3hmL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9jYW1l bC9jb21wb25lbnQvY3hmL210b20vQ3hmTXRvbUNvbnN1bWVyVGVzdC5qYXZhP3Jldj0xNDA4Njcw JnIxPTE0MDg2NjkmcjI9MTQwODY3MCZ2aWV3PWRpZmYKPj4+ID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQo+Pj4gLS0tIGNhbWVsL3RydW5rL2NvbXBvbmVudHMvY2FtZWwtY3hmL3NyYy90ZXN0L2phdmEv b3JnL2FwYWNoZS9jYW1lbC9jb21wb25lbnQvY3hmL210b20vQ3hmTXRvbUNvbnN1bWVyVGVzdC5q YXZhIChvcmlnaW5hbCkKPj4+ICsrKyBjYW1lbC90cnVuay9jb21wb25lbnRzL2NhbWVsLWN4Zi9z cmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvY2FtZWwvY29tcG9uZW50L2N4Zi9tdG9tL0N4Zk10b21D b25zdW1lclRlc3QuamF2YSBUdWUgTm92IDEzIDEwOjM1OjIwIDIwMTIKPj4+IEBAIC0zMSw2ICsz MSw3IEBAIGltcG9ydCBvcmcuYXBhY2hlLmNhbWVsLk1lc3NhZ2U7Cj4+PiBpbXBvcnQgb3JnLmFw YWNoZS5jYW1lbC5Qcm9jZXNzb3I7Cj4+PiBpbXBvcnQgb3JnLmFwYWNoZS5jYW1lbC5idWlsZGVy LlJvdXRlQnVpbGRlcjsKPj4+IGltcG9ydCBvcmcuYXBhY2hlLmNhbWVsLmNvbXBvbmVudC5jeGYu Q1hGVGVzdFN1cHBvcnQ7Cj4+PiAraW1wb3J0IG9yZy5hcGFjaGUuY2FtZWwuY29tcG9uZW50LmN4 Zi5UZXN0SGVscGVyOwo+Pj4gaW1wb3J0IG9yZy5hcGFjaGUuY2FtZWwuY3hmLm10b21fZmVhdHVy ZS5IZWxsbzsKPj4+IGltcG9ydCBvcmcuYXBhY2hlLmNhbWVsLmN4Zi5tdG9tX2ZlYXR1cmUuSGVs bG9TZXJ2aWNlOwo+Pj4gaW1wb3J0IG9yZy5hcGFjaGUuY2FtZWwudGVzdC5qdW5pdDQuQ2FtZWxU ZXN0U3VwcG9ydDsKPj4+IEBAIC05OSw2ICsxMDAsMTEgQEAgcHVibGljIGNsYXNzIEN4Zk10b21D b25zdW1lclRlc3QgZXh0ZW5kcwo+Pj4gICAgICAgICAgICByZXR1cm47Cj4+PiAgICAgICAgfQo+ Pj4gCj4+PiArICAgICAgICAvLyBza2lwIHRlc3Qgb24gYWl4Cj4+PiArICAgICAgICBpZiAoVGVz dEhlbHBlci5pc1BsYXRmb3JtKCJhaXgiKSkgewo+Pj4gKyAgICAgICAgICAgIHJldHVybjsKPj4+ ICsgICAgICAgIH0KPj4+ICsKPj4+ICAgICAgICBIb2xkZXI8Ynl0ZVtdPiBwaG90byA9IG5ldyBI b2xkZXI8Ynl0ZVtdPigiUmVxdWVzdEZyb21DWEYiLmdldEJ5dGVzKCJVVEYtOCIpKTsKPj4+ICAg ICAgICBIb2xkZXI8SW1hZ2U+IGltYWdlID0gbmV3IEhvbGRlcjxJbWFnZT4oZ2V0SW1hZ2UoIi9q YXZhLmpwZyIpKTsKPj4+IAo+Pj4gCj4+PiBNb2RpZmllZDogY2FtZWwvdHJ1bmsvY29tcG9uZW50 cy9jYW1lbC1jeGYvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NhbWVsL2NvbXBvbmVudC9jeGYv bXRvbS9DeGZNdG9tRGlzYWJsZWRQcm9kdWNlclBheWxvYWRNb2RlVGVzdC5qYXZhCj4+PiBVUkw6 IGh0dHA6Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvY2FtZWwvdHJ1bmsvY29tcG9uZW50cy9jYW1l bC1jeGYvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NhbWVsL2NvbXBvbmVudC9jeGYvbXRvbS9D eGZNdG9tRGlzYWJsZWRQcm9kdWNlclBheWxvYWRNb2RlVGVzdC5qYXZhP3Jldj0xNDA4NjcwJnIx PTE0MDg2NjkmcjI9MTQwODY3MCZ2aWV3PWRpZmYKPj4+ID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ Pj4gLS0tIGNhbWVsL3RydW5rL2NvbXBvbmVudHMvY2FtZWwtY3hmL3NyYy90ZXN0L2phdmEvb3Jn L2FwYWNoZS9jYW1lbC9jb21wb25lbnQvY3hmL210b20vQ3hmTXRvbURpc2FibGVkUHJvZHVjZXJQ YXlsb2FkTW9kZVRlc3QuamF2YSAob3JpZ2luYWwpCj4+PiArKysgY2FtZWwvdHJ1bmsvY29tcG9u ZW50cy9jYW1lbC1jeGYvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NhbWVsL2NvbXBvbmVudC9j eGYvbXRvbS9DeGZNdG9tRGlzYWJsZWRQcm9kdWNlclBheWxvYWRNb2RlVGVzdC5qYXZhIFR1ZSBO b3YgMTMgMTA6MzU6MjAgMjAxMgo+Pj4gQEAgLTQwLDYgKzQwLDcgQEAgaW1wb3J0IG9yZy5hcGFj aGUuY2FtZWwuRXhjaGFuZ2U7Cj4+PiBpbXBvcnQgb3JnLmFwYWNoZS5jYW1lbC5FeGNoYW5nZVBh dHRlcm47Cj4+PiBpbXBvcnQgb3JnLmFwYWNoZS5jYW1lbC5Qcm9jZXNzb3I7Cj4+PiBpbXBvcnQg b3JnLmFwYWNoZS5jYW1lbC5jb21wb25lbnQuY3hmLkN4ZlBheWxvYWQ7Cj4+PiAraW1wb3J0IG9y Zy5hcGFjaGUuY2FtZWwuY29tcG9uZW50LmN4Zi5UZXN0SGVscGVyOwo+Pj4gaW1wb3J0IG9yZy5h cGFjaGUuY2FtZWwuY3hmLm10b21fZmVhdHVyZS5IZWxsbzsKPj4+IGltcG9ydCBvcmcuYXBhY2hl LmN4Zi5hdHRhY2htZW50LkF0dGFjaG1lbnREYXRhU291cmNlOwo+Pj4gaW1wb3J0IG9yZy5hcGFj aGUuY3hmLmJpbmRpbmcuc29hcC5Tb2FwSGVhZGVyOwo+Pj4gQEAgLTc3LDYgKzc4LDExIEBAIHB1 YmxpYyBjbGFzcyBDeGZNdG9tRGlzYWJsZWRQcm9kdWNlclBheWwKPj4+ICAgICAgICAgICAgcmV0 dXJuOwo+Pj4gICAgICAgIH0KPj4+IAo+Pj4gKyAgICAgICAgLy8gc2tpcCB0ZXN0IG9uIGFpeAo+ Pj4gKyAgICAgICAgaWYgKFRlc3RIZWxwZXIuaXNQbGF0Zm9ybSgiYWl4IikpIHsKPj4+ICsgICAg ICAgICAgICByZXR1cm47Cj4+PiArICAgICAgICB9Cj4+PiArCj4+PiAgICAgICAgRXhjaGFuZ2Ug ZXhjaGFuZ2UgPSBjb250ZXh0LmNyZWF0ZVByb2R1Y2VyVGVtcGxhdGUoKS5zZW5kKCJkaXJlY3Q6 dGVzdEVuZHBvaW50IiwgbmV3IFByb2Nlc3NvcigpIHsKPj4+IAo+Pj4gICAgICAgICAgICBwdWJs aWMgdm9pZCBwcm9jZXNzKEV4Y2hhbmdlIGV4Y2hhbmdlKSB0aHJvd3MgRXhjZXB0aW9uIHsKPj4+ IAo+Pj4gTW9kaWZpZWQ6IGNhbWVsL3RydW5rL2NvbXBvbmVudHMvY2FtZWwtY3hmL3NyYy90ZXN0 L2phdmEvb3JnL2FwYWNoZS9jYW1lbC9jb21wb25lbnQvY3hmL210b20vQ3hmTXRvbVBPSk9Qcm9k dWNlclRlc3QuamF2YQo+Pj4gVVJMOiBodHRwOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL2NhbWVs L3RydW5rL2NvbXBvbmVudHMvY2FtZWwtY3hmL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9jYW1l bC9jb21wb25lbnQvY3hmL210b20vQ3hmTXRvbVBPSk9Qcm9kdWNlclRlc3QuamF2YT9yZXY9MTQw ODY3MCZyMT0xNDA4NjY5JnIyPTE0MDg2NzAmdmlldz1kaWZmCj4+PiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KPj4+IC0tLSBjYW1lbC90cnVuay9jb21wb25lbnRzL2NhbWVsLWN4Zi9zcmMvdGVzdC9q YXZhL29yZy9hcGFjaGUvY2FtZWwvY29tcG9uZW50L2N4Zi9tdG9tL0N4Zk10b21QT0pPUHJvZHVj ZXJUZXN0LmphdmEgKG9yaWdpbmFsKQo+Pj4gKysrIGNhbWVsL3RydW5rL2NvbXBvbmVudHMvY2Ft ZWwtY3hmL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9jYW1lbC9jb21wb25lbnQvY3hmL210b20v Q3hmTXRvbVBPSk9Qcm9kdWNlclRlc3QuamF2YSBUdWUgTm92IDEzIDEwOjM1OjIwIDIwMTIKPj4+ IEBAIC0xNiw3ICsxNiw2IEBACj4+PiAqLwo+Pj4gcGFja2FnZSBvcmcuYXBhY2hlLmNhbWVsLmNv bXBvbmVudC5jeGYubXRvbTsKPj4+IAo+Pj4gLQo+Pj4gaW1wb3J0IGphdmEuYXd0LkltYWdlOwo+ Pj4gaW1wb3J0IGphdmEuYXd0LmltYWdlLkJ1ZmZlcmVkSW1hZ2U7Cj4+PiAKPj4+IEBAIC0zMiw2 ICszMSw3IEBAIGltcG9ydCBvcmcuYXBhY2hlLmNhbWVsLkV4Y2hhbmdlOwo+Pj4gaW1wb3J0IG9y Zy5hcGFjaGUuY2FtZWwuUHJvY2Vzc29yOwo+Pj4gaW1wb3J0IG9yZy5hcGFjaGUuY2FtZWwuY29t cG9uZW50LmN4Zi5DWEZUZXN0U3VwcG9ydDsKPj4+IAo+Pj4gK2ltcG9ydCBvcmcuYXBhY2hlLmNh bWVsLmNvbXBvbmVudC5jeGYuVGVzdEhlbHBlcjsKPj4+IGltcG9ydCBvcmcuanVuaXQuQWZ0ZXI7 Cj4+PiBpbXBvcnQgb3JnLmp1bml0LkJlZm9yZTsKPj4+IGltcG9ydCBvcmcuanVuaXQuVGVzdDsK Pj4+IEBAIC00MCw2ICs0MCw3IEBAIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnRlc3QuY29u dGV4dC4KPj4+IGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnRlc3QuY29udGV4dC5qdW5pdDQu QWJzdHJhY3RKVW5pdDRTcHJpbmdDb250ZXh0VGVzdHM7Cj4+PiAKPj4+IGltcG9ydCBzdGF0aWMg b3JnLmp1bml0LkFzc2VydC5hc3NlcnRFcXVhbHM7Cj4+PiArCj4+PiAvKioKPj4+ICogVW5pdCB0 ZXN0IGZvciBleGVyY2lzaW5nIE1UT00gZW5hYmxlZCBlbmQtdG8tZW5kIHJvdXRlciBpbiBQQVlM T0FEIG1vZGUKPj4+ICoKPj4+IEBAIC03NSw2ICs3NiwxMSBAQCBwdWJsaWMgY2xhc3MgQ3hmTXRv bVBPSk9Qcm9kdWNlclRlc3QgZXh0Cj4+PiAgICAgICAgICAgIHJldHVybjsKPj4+ICAgICAgICB9 Cj4+PiAKPj4+ICsgICAgICAgIC8vIHNraXAgdGVzdCBvbiBhaXgKPj4+ICsgICAgICAgIGlmIChU ZXN0SGVscGVyLmlzUGxhdGZvcm0oImFpeCIpKSB7Cj4+PiArICAgICAgICAgICAgcmV0dXJuOwo+ Pj4gKyAgICAgICAgfQo+Pj4gKwo+Pj4gICAgICAgIGZpbmFsIEhvbGRlcjxieXRlW10+IHBob3Rv ID0gbmV3IEhvbGRlcjxieXRlW10+KE10b21UZXN0SGVscGVyLlJFUV9QSE9UT19EQVRBKTsKPj4+ ICAgICAgICBmaW5hbCBIb2xkZXI8SW1hZ2U+IGltYWdlID0gbmV3IEhvbGRlcjxJbWFnZT4oZ2V0 SW1hZ2UoIi9qYXZhLmpwZyIpKTsKPj4+IAo+Pj4gCj4+PiBNb2RpZmllZDogY2FtZWwvdHJ1bmsv Y29tcG9uZW50cy9jYW1lbC1jeGYvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NhbWVsL2NvbXBv bmVudC9jeGYvbXRvbS9DeGZNdG9tUHJvZHVjZXJQYXlsb2FkTW9kZVRlc3QuamF2YQo+Pj4gVVJM OiBodHRwOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL2NhbWVsL3RydW5rL2NvbXBvbmVudHMvY2Ft ZWwtY3hmL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9jYW1lbC9jb21wb25lbnQvY3hmL210b20v Q3hmTXRvbVByb2R1Y2VyUGF5bG9hZE1vZGVUZXN0LmphdmE/cmV2PTE0MDg2NzAmcjE9MTQwODY2 OSZyMj0xNDA4NjcwJnZpZXc9ZGlmZgo+Pj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4+PiAtLS0g Y2FtZWwvdHJ1bmsvY29tcG9uZW50cy9jYW1lbC1jeGYvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hl L2NhbWVsL2NvbXBvbmVudC9jeGYvbXRvbS9DeGZNdG9tUHJvZHVjZXJQYXlsb2FkTW9kZVRlc3Qu amF2YSAob3JpZ2luYWwpCj4+PiArKysgY2FtZWwvdHJ1bmsvY29tcG9uZW50cy9jYW1lbC1jeGYv c3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NhbWVsL2NvbXBvbmVudC9jeGYvbXRvbS9DeGZNdG9t UHJvZHVjZXJQYXlsb2FkTW9kZVRlc3QuamF2YSBUdWUgTm92IDEzIDEwOjM1OjIwIDIwMTIKPj4+ IEBAIC00MCw2ICs0MCw3IEBAIGltcG9ydCBvcmcuYXBhY2hlLmNhbWVsLkV4Y2hhbmdlUGF0dGVy bjsKPj4+IGltcG9ydCBvcmcuYXBhY2hlLmNhbWVsLlByb2Nlc3NvcjsKPj4+IGltcG9ydCBvcmcu YXBhY2hlLmNhbWVsLmNvbXBvbmVudC5jeGYuQ1hGVGVzdFN1cHBvcnQ7Cj4+PiBpbXBvcnQgb3Jn LmFwYWNoZS5jYW1lbC5jb21wb25lbnQuY3hmLkN4ZlBheWxvYWQ7Cj4+PiAraW1wb3J0IG9yZy5h cGFjaGUuY2FtZWwuY29tcG9uZW50LmN4Zi5UZXN0SGVscGVyOwo+Pj4gaW1wb3J0IG9yZy5hcGFj aGUuY2FtZWwuY29udmVydGVyLmpheHAuWG1sQ29udmVydGVyOwo+Pj4gaW1wb3J0IG9yZy5hcGFj aGUuY3hmLmJpbmRpbmcuc29hcC5Tb2FwSGVhZGVyOwo+Pj4gaW1wb3J0IG9yZy5hcGFjaGUuY3hm LmhlbHBlcnMuRE9NVXRpbHM7Cj4+PiBAQCAtODksNiArOTAsMTEgQEAgcHVibGljIGNsYXNzIEN4 Zk10b21Qcm9kdWNlclBheWxvYWRNb2RlVAo+Pj4gICAgICAgICAgICByZXR1cm47Cj4+PiAgICAg ICAgfQo+Pj4gCj4+PiArICAgICAgICAvLyBza2lwIHRlc3Qgb24gYWl4Cj4+PiArICAgICAgICBp ZiAoVGVzdEhlbHBlci5pc1BsYXRmb3JtKCJhaXgiKSkgewo+Pj4gKyAgICAgICAgICAgIHJldHVy bjsKPj4+ICsgICAgICAgIH0KPj4+ICsKPj4+ICAgICAgICAvLyBTVEFSVCBTTklQUEVUOiBwcm9k dWNlcgo+Pj4gCj4+PiAgICAgICAgRXhjaGFuZ2UgZXhjaGFuZ2UgPSBjb250ZXh0LmNyZWF0ZVBy b2R1Y2VyVGVtcGxhdGUoKS5zZW5kKCJkaXJlY3Q6dGVzdEVuZHBvaW50IiwgbmV3IFByb2Nlc3Nv cigpIHsKPj4+IAo+Pj4gTW9kaWZpZWQ6IGNhbWVsL3RydW5rL2NvbXBvbmVudHMvY2FtZWwtY3hm L3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9jYW1lbC9jb21wb25lbnQvY3hmL210b20vQ3hmTXRv bVJvdXRlclBheWxvYWRNb2RlVGVzdC5qYXZhCj4+PiBVUkw6IGh0dHA6Ly9zdm4uYXBhY2hlLm9y Zy92aWV3dmMvY2FtZWwvdHJ1bmsvY29tcG9uZW50cy9jYW1lbC1jeGYvc3JjL3Rlc3QvamF2YS9v cmcvYXBhY2hlL2NhbWVsL2NvbXBvbmVudC9jeGYvbXRvbS9DeGZNdG9tUm91dGVyUGF5bG9hZE1v ZGVUZXN0LmphdmE/cmV2PTE0MDg2NzAmcjE9MTQwODY2OSZyMj0xNDA4NjcwJnZpZXc9ZGlmZgo+ Pj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Cj4+PiAtLS0gY2FtZWwvdHJ1bmsvY29tcG9uZW50cy9j YW1lbC1jeGYvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NhbWVsL2NvbXBvbmVudC9jeGYvbXRv bS9DeGZNdG9tUm91dGVyUGF5bG9hZE1vZGVUZXN0LmphdmEgKG9yaWdpbmFsKQo+Pj4gKysrIGNh bWVsL3RydW5rL2NvbXBvbmVudHMvY2FtZWwtY3hmL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9j YW1lbC9jb21wb25lbnQvY3hmL210b20vQ3hmTXRvbVJvdXRlclBheWxvYWRNb2RlVGVzdC5qYXZh IFR1ZSBOb3YgMTMgMTA6MzU6MjAgMjAxMgo+Pj4gQEAgLTE2LDcgKzE2LDYgQEAKPj4+ICovCj4+ PiBwYWNrYWdlIG9yZy5hcGFjaGUuY2FtZWwuY29tcG9uZW50LmN4Zi5tdG9tOwo+Pj4gCj4+PiAt Cj4+PiBpbXBvcnQgamF2YS5hd3QuSW1hZ2U7Cj4+PiBpbXBvcnQgamF2YS5hd3QuaW1hZ2UuQnVm ZmVyZWRJbWFnZTsKPj4+IGltcG9ydCBqYXZhLm5ldC5VUkw7Cj4+PiBAQCAtMzEsNiArMzAsNyBA QCBpbXBvcnQganVuaXQuZnJhbWV3b3JrLkFzc2VydDsKPj4+IAo+Pj4gaW1wb3J0IG9yZy5hcGFj aGUuY2FtZWwuQ2FtZWxDb250ZXh0Owo+Pj4gaW1wb3J0IG9yZy5hcGFjaGUuY2FtZWwuY29tcG9u ZW50LmN4Zi5DWEZUZXN0U3VwcG9ydDsKPj4+ICtpbXBvcnQgb3JnLmFwYWNoZS5jYW1lbC5jb21w b25lbnQuY3hmLlRlc3RIZWxwZXI7Cj4+PiBpbXBvcnQgb3JnLmFwYWNoZS5jYW1lbC5jeGYubXRv bV9mZWF0dXJlLkhlbGxvOwo+Pj4gaW1wb3J0IG9yZy5hcGFjaGUuY2FtZWwuY3hmLm10b21fZmVh dHVyZS5IZWxsb1NlcnZpY2U7Cj4+PiBpbXBvcnQgb3JnLmp1bml0LkFmdGVyOwo+Pj4gQEAgLTQx LDYgKzQxLDcgQEAgaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsudGVzdC5jb250ZXh0Lgo+Pj4g aW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsudGVzdC5jb250ZXh0Lmp1bml0NC5BYnN0cmFjdEpV bml0NFNwcmluZ0NvbnRleHRUZXN0czsKPj4+IAo+Pj4gaW1wb3J0IHN0YXRpYyBvcmcuanVuaXQu QXNzZXJ0LmFzc2VydE5vdE51bGw7Cj4+PiArCj4+PiAvKioKPj4+ICogVW5pdCB0ZXN0IGZvciBl eGVyY2lzaW5nIE1UT00gZW5hYmxlZCBlbmQtdG8tZW5kIHJvdXRlciBpbiBQQVlMT0FEIG1vZGUK Pj4+ICoKPj4+IEBAIC03Niw2ICs3NywxMSBAQCBwdWJsaWMgY2xhc3MgQ3hmTXRvbVJvdXRlclBh eWxvYWRNb2RlVGVzCj4+PiAgICAgICAgaWYgKE10b21UZXN0SGVscGVyLmlzQXd0SGVhZGxlc3Mo bG9nZ2VyLCBudWxsKSkgewo+Pj4gICAgICAgICAgICByZXR1cm47Cj4+PiAgICAgICAgfQo+Pj4g Kwo+Pj4gKyAgICAgICAgLy8gc2tpcCB0ZXN0IG9uIGFpeAo+Pj4gKyAgICAgICAgaWYgKFRlc3RI ZWxwZXIuaXNQbGF0Zm9ybSgiYWl4IikpIHsKPj4+ICsgICAgICAgICAgICByZXR1cm47Cj4+PiAr ICAgICAgICB9Cj4+PiAKPj4+ICAgICAgICBIb2xkZXI8Ynl0ZVtdPiBwaG90byA9IG5ldyBIb2xk ZXI8Ynl0ZVtdPihNdG9tVGVzdEhlbHBlci5SRVFfUEhPVE9fREFUQSk7Cj4+PiAgICAgICAgSG9s ZGVyPEltYWdlPiBpbWFnZSA9IG5ldyBIb2xkZXI8SW1hZ2U+KGdldEltYWdlKCIvamF2YS5qcGci KSk7Cj4+PiAKPj4+IAo+PiAKPj4gLS0KPj4gRGFuaWVsIEt1bHAKPj4gZGt1bHBAYXBhY2hlLm9y ZyAtIGh0dHA6Ly9kYW5rdWxwLmNvbS9ibG9nCj4+IFRhbGVuZCBDb21tdW5pdHkgQ29kZXIgLSBo dHRwOi8vY29kZXJzLnRhbGVuZC5jb20KPj4gCj4gCj4gCj4gCj4gLS0gCj4gQ2xhdXMgSWJzZW4K PiAtLS0tLS0tLS0tLS0tLS0tLQo+IFJlZCBIYXQsIEluYy4KPiBGdXNlU291cmNlIGlzIG5vdyBw YXJ0IG9mIFJlZCBIYXQKPiBFbWFpbDogY2lic2VuQHJlZGhhdC5jb20KPiBXZWI6IGh0dHA6Ly9m dXNlc291cmNlLmNvbQo+IFR3aXR0ZXI6IGRhdnNjbGF1cwo+IEJsb2c6IGh0dHA6Ly9kYXZzY2xh dXMuY29tCj4gQXV0aG9yIG9mIENhbWVsIGluIEFjdGlvbjogaHR0cDovL3d3dy5tYW5uaW5nLmNv bS9pYnNlbgoKLS0gCkRhbmllbCBLdWxwCmRrdWxwQGFwYWNoZS5vcmcgLSBodHRwOi8vZGFua3Vs cC5jb20vYmxvZwpUYWxlbmQgQ29tbXVuaXR5IENvZGVyIC0gaHR0cDovL2NvZGVycy50YWxlbmQu Y29tCgo= ------=_Part_0_1352901101217--