Return-Path: X-Original-To: apmail-hbase-user-archive@www.apache.org Delivered-To: apmail-hbase-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 1B0681190F for ; Fri, 25 Jul 2014 12:11:12 +0000 (UTC) Received: (qmail 3540 invoked by uid 500); 25 Jul 2014 12:11:10 -0000 Delivered-To: apmail-hbase-user-archive@hbase.apache.org Received: (qmail 3470 invoked by uid 500); 25 Jul 2014 12:11:10 -0000 Mailing-List: contact user-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@hbase.apache.org Delivered-To: mailing list user@hbase.apache.org Received: (qmail 3458 invoked by uid 99); 25 Jul 2014 12:11:10 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 25 Jul 2014 12:11:10 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of kashifjs@huawei.com designates 119.145.14.66 as permitted sender) Received: from [119.145.14.66] (HELO szxga03-in.huawei.com) (119.145.14.66) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 25 Jul 2014 12:11:06 +0000 Received: from 172.24.2.119 (EHLO szxeml403-hub.china.huawei.com) ([172.24.2.119]) by szxrg03-dlp.huawei.com (MOS 4.4.3-GA FastPath queued) with ESMTP id ASB80230; Fri, 25 Jul 2014 20:10:38 +0800 (CST) Received: from SZXEML521-MBX.china.huawei.com ([169.254.1.164]) by szxeml403-hub.china.huawei.com ([::1]) with mapi id 14.03.0158.001; Fri, 25 Jul 2014 20:10:36 +0800 From: Kashif Jawed Siddiqui To: "user@hbase.apache.org" Subject: RE: AccessControlException handling in HBase rpc server and client Thread-Topic: AccessControlException handling in HBase rpc server and client Thread-Index: AQHPp/2MQWTC1DZSM0yMk+YLDRleP5uwsguQ Date: Fri, 25 Jul 2014 12:10:35 +0000 Message-ID: <3FEC773ED933774285EE811E6F24DF7A7C4195B2@szxeml521-mbx.china.huawei.com> References: <3FEC773ED933774285EE811E6F24DF7A7C419552@szxeml521-mbx.china.huawei.com> In-Reply-To: Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.18.168.105] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A02020A.53D2493F.0013,ss=1,re=0.000,fgs=0, ip=169.254.1.164, so=2013-05-26 15:14:31, dmn=2011-05-27 18:58:46 X-Mirapoint-Loop-Id: 111720a53d8ccc89927dd5ab4a9b9411 X-Virus-Checked: Checked by ClamAV on apache.org WWVzLiBBY2Nlc3NDb250cm9sRXhjZXB0aW9uIHNob3VsZCBub3QgYmUgcmV0cmlhYmxlIGV4Y2Vw dGlvbi4NCg0KQWxzbywgbXkgZG91YnQgaXMgaWYgYW55IEV4Y2VwdGlvbiBpcyB0aHJvd24gaW5z aWRlIFJQQyBzZXJ2ZXIgaGFuZGxpbmcsIGl0IHNob3VsZCBiZSBwcm9wYWdhdGVkIHRvIHRoZSBj bGllbnQgZm9yIGl0IHRvIGRlY2lkZSB3aGV0aGVyIHRvIHJldHJ5IG9yIG5vdC4NCg0KSGVuY2Us IGNsaWVudCBzaG91bGQgZ2V0ICBhIHRyYWNlIGV4Y2VwdGlvbiBmcm9tIHNlcnZlciBiYXNlZCBv biB3aGljaCBpdCBjYW4gZGVjaWRlIHRvIHJldHJ5IG9yIG5vdC4NCg0KUmVnYXJkcw0KS0FTSElG DQoNCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KVGhpcyBlLW1haWwgYW5kIGF0dGFj aG1lbnRzIGNvbnRhaW4gY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIGZyb20gSFVBV0VJLCB3aGlj aCBpcyBpbnRlbmRlZCBvbmx5IGZvciB0aGUgcGVyc29uIG9yIGVudGl0eSB3aG9zZSBhZGRyZXNz IGlzIGxpc3RlZCBhYm92ZS4gQW55IHVzZSBvZiB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhl cmVpbiBpbiBhbnkgd2F5IChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bywgdG90YWwgb3Ig cGFydGlhbCBkaXNjbG9zdXJlLCByZXByb2R1Y3Rpb24sIG9yIGRpc3NlbWluYXRpb24pIGJ5IHBl cnNvbnMgb3RoZXIgdGhhbiB0aGUgaW50ZW5kZWQgcmVjaXBpZW50J3MpIGlzIHByb2hpYml0ZWQu IElmIHlvdSByZWNlaXZlIHRoaXMgZS1tYWlsIGluIGVycm9yLCBwbGVhc2Ugbm90aWZ5IHRoZSBz ZW5kZXIgYnkgcGhvbmUgb3IgZW1haWwgaW1tZWRpYXRlbHkgYW5kIGRlbGV0ZSBpdCENCg0KLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IE5pY29sYXMgTGlvY2hvbiBbbWFpbHRvOm5r ZXl3YWxAZ21haWwuY29tXSANClNlbnQ6IDI1IEp1bHkgMjAxNCAxNzoxMg0KVG86IHVzZXINClN1 YmplY3Q6IFJlOiBBY2Nlc3NDb250cm9sRXhjZXB0aW9uIGhhbmRsaW5nIGluIEhCYXNlIHJwYyBz ZXJ2ZXIgYW5kIGNsaWVudA0KDQpTb3VuZHMgbGlrZSBhIGJ1Zy4gQWNjZXNzQ29udHJvbEV4Y2Vw dGlvbiBzaG91bGQgYmUgYSBub3QgcmV0cmlhYmxlIGV4Y2VwdGlvbi4NCg0KDQpPbiBGcmksIEp1 bCAyNSwgMjAxNCBhdCAxMjo1NSBQTSwgS2FzaGlmIEphd2VkIFNpZGRpcXVpIDxrYXNoaWZqc0Bo dWF3ZWkuY29tDQo+IHdyb3RlOg0KDQo+IEhpLA0KPg0KPiAgICAgICAgICAgICAgICAgSW4gSEJh c2UsIFJQQ1NlcnZlciBydW5uaW5nIGluIHNlY3VyZSBtb2RlLCBJIHRyeSB0byANCj4gc2ltdWxh dGUgYXV0aG9yaXplQ29ubmVjdGlvbiBmYWlsdXJlIHdoaWNoIHdpbGwgdGhyb3cgDQo+IEFjY2Vz c0NvbnRyb2xFeGNlcHRpb24uDQo+DQo+ICAgICAgIEhvd2V2ZXIgYXMgcGVyIHNpbXVsYXRpb24g YW5kIHVuZGVyc3RhbmRpbmcgb2YgY29kZSBmbG93LCB0aGUgDQo+IFJQQyBzZXJ2ZXIgZG9lcyBu b3QgaGFuZGxlIHRoZSBBY2Nlc3NDb250cm9sRXhjZXB0aW9uIHByb3Blcmx5IGFuZCBpbiANCj4g cmV0dXJuIHNlbmRzIElPRXhjZXB0aW9uIHRvIHRoZSBIQmFzZSBjbGllbnQuDQo+DQo+ICAgICAg ICAgICAgICAgICBVbHRpbWF0ZWx5IHRoZSBjbGllbnQgZG9lcyByZXRyaWVzIGFuZCBnZXRzIA0K PiBSZXRyaWVzRXhoYXVzdGVkRXhjZXB0aW9uIGJ1dCBkb2VzIG5vdCBnZXR0aW5nIGFueSBsaW5r IG9yIGluZm9ybWF0aW9uIA0KPiBvciBzdGFjayB0cmFjZSBhYm91dCBBY2Nlc3NDb250cm9sRXhj ZXB0aW9uLg0KPg0KPiAgICAgICAgICAgICAgICAgSW4gc2hvcnQgc3VtbWFyeSwgdXBvbiBpbnNw ZWN0aW9uIG9mIFJQQ1NlcnZlci5qYXZhLCANCj4gaXQgc2VlbXMgZm9yIHRoZSBMaXN0ZW5lciwg dGhlIFJlYWRlciByZWFkIGNvZGUgYXMgYmVsb3cgZG9lcyBub3QgDQo+IGhhbmRsZSBBY2Nlc3ND b250cm9sRXhjZXB0aW9uDQo+DQo+IHZvaWQgZG9SZWFkKC4uLi4NCj4gLi4uLi4NCj4gLi4uLi4N Cj4gICAgICAgICAgICAgICAgIHRyeSB7DQo+ICAgICAgICAgY291bnQgPSBjLnJlYWRBbmRQcm9j ZXNzKCk7IC8vIFRoaXMgcmVhZEFuZFByb2Nlc3MgbWV0aG9kIA0KPiB0aHJvd3MgQWNjZXNzQ29u dHJvbEV4Y2VwdGlvbiBmcm9tIHByb2Nlc3NPbmVScGMoYnl0ZVtdIGJ1Zikgd2hpY2ggaXMgbm90 IGhhbmRsZWQgPw0KPiAgICAgICB9IGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBpZW8pIHsN Cj4gICAgICAgICB0aHJvdyBpZW87DQo+ICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7DQo+ ICAgICAgICAgTE9HLndhcm4oZ2V0TmFtZSgpICsgIjogY291bnQgb2YgYnl0ZXMgcmVhZDogIiAr IGNvdW50LCBlKTsNCj4gICAgICAgICBjb3VudCA9IC0xOyAvL3NvIHRoYXQgdGhlIChjb3VudCA8 IDApIGJsb2NrIGlzIGV4ZWN1dGVkDQo+ICAgICAgIH0NCj4NCj4gLi4uLi4NCj4NCj4gICAgICAg ICAgICAgICAgIFBsZWFzZSBjb21tZW50IG9uIEFjY2Vzc0NvbnRyb2xFeGNlcHRpb24gaGFuZGxp bmcgaW4gDQo+IFJQQyBTZXJ2ZXIgIGlmIGl0IGlzIGEgQlVHIG9yIGl0IGlzIE9rICA/DQo+DQo+ IEJlbG93IGlzIHRoZSBjbGllbnQgbG9ncyBpZiBhdXRob3JpemVDb25uZWN0aW9uIHRocm93cw0K PiBBY2Nlc3NDb250cm9sRXhjZXB0aW9uOg0KPg0KPg0KPiAyMDE0LTA3LTI0IDE5OjQwOjU4LDc2 OCBJTkZPICBbbWFpbl0NCj4gY2xpZW50LkhDb25uZWN0aW9uTWFuYWdlciRIQ29ubmVjdGlvbklt cGxlbWVudGF0aW9uOiBnZXRNYXN0ZXIgYXR0ZW1wdCANCj4gNyBvZg0KPiA3IGZhaWxlZDsgbm8g bW9yZSByZXRyeWluZy4NCj4gY29tLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlRXhjZXB0aW9uOiBq YXZhLmlvLklPRXhjZXB0aW9uOiBDYWxsIHRvDQo+IGhvc3QtMTAtMTgtNDAtMTAxLzEwLjE4LjQw LjEwMTo2MDAwMCBmYWlsZWQgb24gbG9jYWwgZXhjZXB0aW9uOg0KPiBqYXZhLmlvLkVPRkV4Y2Vw dGlvbg0KPiAgICAgICAgIGF0DQo+IG9yZy5hcGFjaGUuaGFkb29wLmhiYXNlLmlwYy5ScGNDbGll bnQuY2FsbEJsb2NraW5nTWV0aG9kKFJwY0NsaWVudC5qYXZhOjE2NzQpDQo+ICAgICAgICAgYXQN Cj4gb3JnLmFwYWNoZS5oYWRvb3AuaGJhc2UuaXBjLlJwY0NsaWVudCRCbG9ja2luZ1JwY0NoYW5u ZWxJbXBsZW1lbnRhdGlvbi5jYWxsQmxvY2tpbmdNZXRob2QoUnBjQ2xpZW50LmphdmE6MTcxNSkN Cj4gICAgICAgICBhdA0KPiBvcmcuYXBhY2hlLmhhZG9vcC5oYmFzZS5wcm90b2J1Zi5nZW5lcmF0 ZWQuTWFzdGVyUHJvdG9zJE1hc3RlclNlcnZpY2UkQmxvY2tpbmdTdHViLmlzTWFzdGVyUnVubmlu ZyhNYXN0ZXJQcm90b3MuamF2YTo0MjU2MSkNCj4gICAgICAgICBhdA0KPiBvcmcuYXBhY2hlLmhh ZG9vcC5oYmFzZS5jbGllbnQuSENvbm5lY3Rpb25NYW5hZ2VyJEhDb25uZWN0aW9uSW1wbGVtZW50 YXRpb24kTWFzdGVyU2VydmljZVN0dWJNYWtlci5pc01hc3RlclJ1bm5pbmcoSENvbm5lY3Rpb25N YW5hZ2VyLmphdmE6MTY4OCkNCj4gICAgICAgICBhdA0KPiBvcmcuYXBhY2hlLmhhZG9vcC5oYmFz ZS5jbGllbnQuSENvbm5lY3Rpb25NYW5hZ2VyJEhDb25uZWN0aW9uSW1wbGVtZW50YXRpb24kU3R1 Yk1ha2VyLm1ha2VTdHViTm9SZXRyaWVzKEhDb25uZWN0aW9uTWFuYWdlci5qYXZhOjE1OTcpDQo+ ICAgICAgICAgYXQNCj4gb3JnLmFwYWNoZS5oYWRvb3AuaGJhc2UuY2xpZW50LkhDb25uZWN0aW9u TWFuYWdlciRIQ29ubmVjdGlvbkltcGxlbWVudGF0aW9uJFN0dWJNYWtlci5tYWtlU3R1YihIQ29u bmVjdGlvbk1hbmFnZXIuamF2YToxNjIzKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5hcGFjaGUuaGFk b29wLmhiYXNlLmNsaWVudC5IQ29ubmVjdGlvbk1hbmFnZXIkSENvbm5lY3Rpb25JbXBsZW1lbnRh dGlvbiRNYXN0ZXJTZXJ2aWNlU3R1Yk1ha2VyLm1ha2VTdHViKEhDb25uZWN0aW9uTWFuYWdlci5q YXZhOjE2NzcpDQo+ICAgICAgICAgYXQNCj4gb3JnLmFwYWNoZS5oYWRvb3AuaGJhc2UuY2xpZW50 LkhDb25uZWN0aW9uTWFuYWdlciRIQ29ubmVjdGlvbkltcGxlbWVudGF0aW9uLmdldEtlZXBBbGl2 ZU1hc3RlclNlcnZpY2UoSENvbm5lY3Rpb25NYW5hZ2VyLmphdmE6MTg4NSkNCj4gICAgICAgICBh dA0KPiBvcmcuYXBhY2hlLmhhZG9vcC5oYmFzZS5jbGllbnQuSEJhc2VBZG1pbiRNYXN0ZXJDYWxs YWJsZS5wcmVwYXJlKEhCYXNlQWRtaW4uamF2YTozMzAyKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5h cGFjaGUuaGFkb29wLmhiYXNlLmNsaWVudC5ScGNSZXRyeWluZ0NhbGxlci5jYWxsV2l0aFJldHJp ZXMoUnBjUmV0cnlpbmdDYWxsZXIuamF2YToxMTMpDQo+ICAgICAgICAgYXQNCj4gb3JnLmFwYWNo ZS5oYWRvb3AuaGJhc2UuY2xpZW50LlJwY1JldHJ5aW5nQ2FsbGVyLmNhbGxXaXRoUmV0cmllcyhS cGNSZXRyeWluZ0NhbGxlci5qYXZhOjkwKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5hcGFjaGUuaGFk b29wLmhiYXNlLmNsaWVudC5IQmFzZUFkbWluLmV4ZWN1dGVDYWxsYWJsZShIQmFzZUFkbWluLmph dmE6MzMyOSkNCj4gICAgICAgICBhdA0KPiBvcmcuYXBhY2hlLmhhZG9vcC5oYmFzZS5jbGllbnQu SEJhc2VBZG1pbi5jcmVhdGVUYWJsZUFzeW5jKEhCYXNlQWRtaW4uamF2YTo2MDUpDQo+ICAgICAg ICAgYXQNCj4gb3JnLmFwYWNoZS5oYWRvb3AuaGJhc2UuY2xpZW50LkhCYXNlQWRtaW4uY3JlYXRl VGFibGUoSEJhc2VBZG1pbi5qYXZhOjQ5NikNCj4gICAgICAgICBhdA0KPiBvcmcuYXBhY2hlLmhh ZG9vcC5oYmFzZS5jbGllbnQuSEJhc2VBZG1pbi5jcmVhdGVUYWJsZShIQmFzZUFkbWluLmphdmE6 NDMwKQ0KPiAgICAgICAgIGF0IHN1bi5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5p bnZva2UwKE5hdGl2ZSBNZXRob2QpDQo+ICAgICAgICAgYXQNCj4gc3VuLnJlZmxlY3QuTmF0aXZl TWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShOYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuamF2YToz OSkNCj4gICAgICAgICBhdA0KPiBzdW4ucmVmbGVjdC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJ bXBsLmludm9rZShEZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6MjUpDQo+ICAgICAg ICAgYXQgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZShNZXRob2QuamF2YTo1OTcpDQo+ ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LmphdmFzdXBwb3J0LkphdmFNZXRob2QuaW52b2tlRGly ZWN0V2l0aEV4Y2VwdGlvbkhhbmRsaW5nKEphdmFNZXRob2QuamF2YTo0NTApDQo+ICAgICAgICAg YXQNCj4gb3JnLmpydWJ5LmphdmFzdXBwb3J0LkphdmFNZXRob2QuaW52b2tlRGlyZWN0KEphdmFN ZXRob2QuamF2YTozMTEpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LmphdmEuaW52b2tlcnMu SW5zdGFuY2VNZXRob2RJbnZva2VyLmNhbGwoSW5zdGFuY2VNZXRob2RJbnZva2VyLmphdmE6NTkp DQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LnJ1bnRpbWUuY2FsbHNpdGUuQ2FjaGluZ0NhbGxT aXRlLmNhY2hlQW5kQ2FsbChDYWNoaW5nQ2FsbFNpdGUuamF2YTozMTIpDQo+ICAgICAgICAgYXQN Cj4gb3JnLmpydWJ5LnJ1bnRpbWUuY2FsbHNpdGUuQ2FjaGluZ0NhbGxTaXRlLmNhbGwoQ2FjaGlu Z0NhbGxTaXRlLmphdmE6MTY5KQ0KPiAgICAgICAgIGF0IG9yZy5qcnVieS5hc3QuQ2FsbE9uZUFy Z05vZGUuaW50ZXJwcmV0KENhbGxPbmVBcmdOb2RlLmphdmE6NTcpDQo+ICAgICAgICAgYXQgb3Jn LmpydWJ5LmFzdC5OZXdsaW5lTm9kZS5pbnRlcnByZXQoTmV3bGluZU5vZGUuamF2YToxMDQpDQo+ ICAgICAgICAgYXQgb3JnLmpydWJ5LmFzdC5JZk5vZGUuaW50ZXJwcmV0KElmTm9kZS5qYXZhOjEx NykNCj4gICAgICAgICBhdCBvcmcuanJ1YnkuYXN0Lk5ld2xpbmVOb2RlLmludGVycHJldChOZXds aW5lTm9kZS5qYXZhOjEwNCkNCj4gICAgICAgICBhdCBvcmcuanJ1YnkuYXN0LkJsb2NrTm9kZS5p bnRlcnByZXQoQmxvY2tOb2RlLmphdmE6NzEpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LmV2 YWx1YXRvci5BU1RJbnRlcnByZXRlci5JTlRFUlBSRVRfTUVUSE9EKEFTVEludGVycHJldGVyLmph dmE6NzQpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LmludGVybmFsLnJ1bnRpbWUubWV0aG9k cy5JbnRlcnByZXRlZE1ldGhvZC5jYWxsKEludGVycHJldGVkTWV0aG9kLmphdmE6MjMzKQ0KPiAg ICAgICAgIGF0DQo+IG9yZy5qcnVieS5pbnRlcm5hbC5ydW50aW1lLm1ldGhvZHMuRGVmYXVsdE1l dGhvZC5jYWxsKERlZmF1bHRNZXRob2QuamF2YToyMTUpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpy dWJ5LnJ1bnRpbWUuY2FsbHNpdGUuQ2FjaGluZ0NhbGxTaXRlLmNhY2hlQW5kQ2FsbChDYWNoaW5n Q2FsbFNpdGUuamF2YTozMzIpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LnJ1bnRpbWUuY2Fs bHNpdGUuQ2FjaGluZ0NhbGxTaXRlLmNhbGwoQ2FjaGluZ0NhbGxTaXRlLmphdmE6MjAzKQ0KPiAg ICAgICAgIGF0DQo+IG9yZy5qcnVieS5hc3QuQ2FsbFNwZWNpYWxBcmdOb2RlLmludGVycHJldChD YWxsU3BlY2lhbEFyZ05vZGUuamF2YTo2OSkNCj4gICAgICAgICBhdCBvcmcuanJ1YnkuYXN0LkRB c2duTm9kZS5pbnRlcnByZXQoREFzZ25Ob2RlLmphdmE6MTEwKQ0KPiAgICAgICAgIGF0IG9yZy5q cnVieS5hc3QuTmV3bGluZU5vZGUuaW50ZXJwcmV0KE5ld2xpbmVOb2RlLmphdmE6MTA0KQ0KPiAg ICAgICAgIGF0DQo+IG9yZy5qcnVieS5ldmFsdWF0b3IuQVNUSW50ZXJwcmV0ZXIuSU5URVJQUkVU X0JMT0NLKEFTVEludGVycHJldGVyLmphdmE6MTExKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVi eS5ydW50aW1lLkludGVycHJldGVkQmxvY2suZXZhbEJsb2NrQm9keShJbnRlcnByZXRlZEJsb2Nr LmphdmE6Mzc0KQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5ydW50aW1lLkludGVycHJldGVk QmxvY2sueWllbGQoSW50ZXJwcmV0ZWRCbG9jay5qYXZhOjI5NSkNCj4gICAgICAgICBhdA0KPiBv cmcuanJ1YnkucnVudGltZS5JbnRlcnByZXRlZEJsb2NrLnlpZWxkU3BlY2lmaWMoSW50ZXJwcmV0 ZWRCbG9jay5qYXZhOjIyOSkNCj4gICAgICAgICBhdCBvcmcuanJ1YnkucnVudGltZS5CbG9jay55 aWVsZFNwZWNpZmljKEJsb2NrLmphdmE6OTkpDQo+ICAgICAgICAgYXQgb3JnLmpydWJ5LmFzdC5a WWllbGROb2RlLmludGVycHJldChaWWllbGROb2RlLmphdmE6MjUpDQo+ICAgICAgICAgYXQgb3Jn LmpydWJ5LmFzdC5OZXdsaW5lTm9kZS5pbnRlcnByZXQoTmV3bGluZU5vZGUuamF2YToxMDQpDQo+ ICAgICAgICAgYXQgb3JnLmpydWJ5LmFzdC5CbG9ja05vZGUuaW50ZXJwcmV0KEJsb2NrTm9kZS5q YXZhOjcxKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5ldmFsdWF0b3IuQVNUSW50ZXJwcmV0 ZXIuSU5URVJQUkVUX01FVEhPRChBU1RJbnRlcnByZXRlci5qYXZhOjc0KQ0KPiAgICAgICAgIGF0 DQo+IG9yZy5qcnVieS5pbnRlcm5hbC5ydW50aW1lLm1ldGhvZHMuSW50ZXJwcmV0ZWRNZXRob2Qu Y2FsbChJbnRlcnByZXRlZE1ldGhvZC5qYXZhOjE2OSkNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1 YnkuaW50ZXJuYWwucnVudGltZS5tZXRob2RzLkRlZmF1bHRNZXRob2QuY2FsbChEZWZhdWx0TWV0 aG9kLmphdmE6MTkxKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5ydW50aW1lLmNhbGxzaXRl LkNhY2hpbmdDYWxsU2l0ZS5jYWNoZUFuZENhbGwoQ2FjaGluZ0NhbGxTaXRlLmphdmE6MzAyKQ0K PiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5ydW50aW1lLmNhbGxzaXRlLkNhY2hpbmdDYWxsU2l0 ZS5jYWxsQmxvY2soQ2FjaGluZ0NhbGxTaXRlLmphdmE6MTQ0KQ0KPiAgICAgICAgIGF0DQo+IG9y Zy5qcnVieS5ydW50aW1lLmNhbGxzaXRlLkNhY2hpbmdDYWxsU2l0ZS5jYWxsSXRlcihDYWNoaW5n Q2FsbFNpdGUuamF2YToxNTMpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LmFzdC5GQ2FsbE5v QXJnQmxvY2tOb2RlLmludGVycHJldChGQ2FsbE5vQXJnQmxvY2tOb2RlLmphdmE6MzIpDQo+ICAg ICAgICAgYXQgb3JnLmpydWJ5LmFzdC5OZXdsaW5lTm9kZS5pbnRlcnByZXQoTmV3bGluZU5vZGUu amF2YToxMDQpDQo+ICAgICAgICAgYXQgb3JnLmpydWJ5LmFzdC5CbG9ja05vZGUuaW50ZXJwcmV0 KEJsb2NrTm9kZS5qYXZhOjcxKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5ldmFsdWF0b3Iu QVNUSW50ZXJwcmV0ZXIuSU5URVJQUkVUX01FVEhPRChBU1RJbnRlcnByZXRlci5qYXZhOjc0KQ0K PiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5pbnRlcm5hbC5ydW50aW1lLm1ldGhvZHMuSW50ZXJw cmV0ZWRNZXRob2QuY2FsbChJbnRlcnByZXRlZE1ldGhvZC5qYXZhOjI1NSkNCj4gICAgICAgICBh dA0KPiBvcmcuanJ1YnkuaW50ZXJuYWwucnVudGltZS5tZXRob2RzLkRlZmF1bHRNZXRob2QuY2Fs bChEZWZhdWx0TWV0aG9kLmphdmE6MjIzKQ0KPiAgICAgICAgIGF0IG9yZy5qcnVieS5SdWJ5Q2xh c3MuZmludm9rZShSdWJ5Q2xhc3MuamF2YTo2MTEpDQo+ICAgICAgICAgYXQgb3JnLmpydWJ5LlJ1 YnlCYXNpY09iamVjdC5zZW5kKFJ1YnlCYXNpY09iamVjdC5qYXZhOjI3ODcpDQo+ICAgICAgICAg YXQgb3JnLmpydWJ5LlJ1YnlLZXJuZWwuc2VuZChSdWJ5S2VybmVsLmphdmE6MjExMykNCj4gICAg ICAgICBhdCBvcmcuanJ1YnkuUnVieUtlcm5lbCRzJHNlbmQuY2FsbChSdWJ5S2VybmVsJHMkc2Vu ZC5nZW46NjU1MzUpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LmludGVybmFsLnJ1bnRpbWUu bWV0aG9kcy5KYXZhTWV0aG9kJEphdmFNZXRob2RaZXJvT3JPbmVPclR3b09yVGhyZWVPck5CbG9j ay5jYWxsKEphdmFNZXRob2QuamF2YTozMDApDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LnJ1 bnRpbWUuY2FsbHNpdGUuQ2FjaGluZ0NhbGxTaXRlLmNhY2hlQW5kQ2FsbChDYWNoaW5nQ2FsbFNp dGUuamF2YTozNTIpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LnJ1bnRpbWUuY2FsbHNpdGUu Q2FjaGluZ0NhbGxTaXRlLmNhbGwoQ2FjaGluZ0NhbGxTaXRlLmphdmE6MjM3KQ0KPiAgICAgICAg IGF0DQo+IG9yZy5qcnVieS5hc3QuRkNhbGxTcGVjaWFsQXJnTm9kZS5pbnRlcnByZXQoRkNhbGxT cGVjaWFsQXJnTm9kZS5qYXZhOjQzKQ0KPiAgICAgICAgIGF0IG9yZy5qcnVieS5hc3QuTmV3bGlu ZU5vZGUuaW50ZXJwcmV0KE5ld2xpbmVOb2RlLmphdmE6MTA0KQ0KPiAgICAgICAgIGF0DQo+IG9y Zy5qcnVieS5ldmFsdWF0b3IuQVNUSW50ZXJwcmV0ZXIuSU5URVJQUkVUX0JMT0NLKEFTVEludGVy cHJldGVyLmphdmE6MTExKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5ydW50aW1lLkludGVy cHJldGVkQmxvY2suZXZhbEJsb2NrQm9keShJbnRlcnByZXRlZEJsb2NrLmphdmE6Mzc0KQ0KPiAg ICAgICAgIGF0DQo+IG9yZy5qcnVieS5ydW50aW1lLkludGVycHJldGVkQmxvY2sueWllbGQoSW50 ZXJwcmV0ZWRCbG9jay5qYXZhOjI5NSkNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkucnVudGlt ZS5JbnRlcnByZXRlZEJsb2NrLnlpZWxkU3BlY2lmaWMoSW50ZXJwcmV0ZWRCbG9jay5qYXZhOjIy OSkNCj4gICAgICAgICBhdCBvcmcuanJ1YnkucnVudGltZS5CbG9jay55aWVsZFNwZWNpZmljKEJs b2NrLmphdmE6OTkpDQo+ICAgICAgICAgYXQgb3JnLmpydWJ5LmFzdC5aWWllbGROb2RlLmludGVy cHJldChaWWllbGROb2RlLmphdmE6MjUpDQo+ICAgICAgICAgYXQgb3JnLmpydWJ5LmFzdC5OZXds aW5lTm9kZS5pbnRlcnByZXQoTmV3bGluZU5vZGUuamF2YToxMDQpDQo+ICAgICAgICAgYXQgb3Jn LmpydWJ5LmFzdC5SZXNjdWVOb2RlLmV4ZWN1dGVCb2R5KFJlc2N1ZU5vZGUuamF2YToyMTYpDQo+ ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LmFzdC5SZXNjdWVOb2RlLmludGVycHJldFdpdGhKYXZh RXhjZXB0aW9ucyhSZXNjdWVOb2RlLmphdmE6MTIwKQ0KPiAgICAgICAgIGF0IG9yZy5qcnVieS5h c3QuUmVzY3VlTm9kZS5pbnRlcnByZXQoUmVzY3VlTm9kZS5qYXZhOjExMCkNCj4gICAgICAgICBh dA0KPiBvcmcuanJ1YnkuZXZhbHVhdG9yLkFTVEludGVycHJldGVyLklOVEVSUFJFVF9NRVRIT0Qo QVNUSW50ZXJwcmV0ZXIuamF2YTo3NCkNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkuaW50ZXJu YWwucnVudGltZS5tZXRob2RzLkludGVycHJldGVkTWV0aG9kLmNhbGwoSW50ZXJwcmV0ZWRNZXRo b2QuamF2YToyNTUpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LmludGVybmFsLnJ1bnRpbWUu bWV0aG9kcy5EZWZhdWx0TWV0aG9kLmNhbGwoRGVmYXVsdE1ldGhvZC5qYXZhOjIyMykNCj4gICAg ICAgICBhdA0KPiBvcmcuanJ1YnkucnVudGltZS5jYWxsc2l0ZS5DYWNoaW5nQ2FsbFNpdGUuY2Fj aGVBbmRDYWxsKENhY2hpbmdDYWxsU2l0ZS5qYXZhOjM0MikNCj4gICAgICAgICBhdA0KPiBvcmcu anJ1YnkucnVudGltZS5jYWxsc2l0ZS5DYWNoaW5nQ2FsbFNpdGUuY2FsbEJsb2NrKENhY2hpbmdD YWxsU2l0ZS5qYXZhOjIxMikNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkucnVudGltZS5jYWxs c2l0ZS5DYWNoaW5nQ2FsbFNpdGUuY2FsbEl0ZXIoQ2FjaGluZ0NhbGxTaXRlLmphdmE6MjIxKQ0K PiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5hc3QuRkNhbGxTcGVjaWFsQXJnQmxvY2tOb2RlLmlu dGVycHJldChGQ2FsbFNwZWNpYWxBcmdCbG9ja05vZGUuamF2YTozOCkNCj4gICAgICAgICBhdCBv cmcuanJ1YnkuYXN0Lk5ld2xpbmVOb2RlLmludGVycHJldChOZXdsaW5lTm9kZS5qYXZhOjEwNCkN Cj4gICAgICAgICBhdCBvcmcuanJ1YnkuYXN0LlJlc2N1ZU5vZGUuZXhlY3V0ZUJvZHkoUmVzY3Vl Tm9kZS5qYXZhOjIxNikNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkuYXN0LlJlc2N1ZU5vZGUu aW50ZXJwcmV0V2l0aEphdmFFeGNlcHRpb25zKFJlc2N1ZU5vZGUuamF2YToxMjApDQo+ICAgICAg ICBhdCBvcmcuanJ1YnkuYXN0LlJlc2N1ZU5vZGUuaW50ZXJwcmV0KFJlc2N1ZU5vZGUuamF2YTox MTApDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LmV2YWx1YXRvci5BU1RJbnRlcnByZXRlci5J TlRFUlBSRVRfTUVUSE9EKEFTVEludGVycHJldGVyLmphdmE6NzQpDQo+ICAgICAgICAgYXQNCj4g b3JnLmpydWJ5LmludGVybmFsLnJ1bnRpbWUubWV0aG9kcy5JbnRlcnByZXRlZE1ldGhvZC5jYWxs KEludGVycHJldGVkTWV0aG9kLmphdmE6MTIwKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5p bnRlcm5hbC5ydW50aW1lLm1ldGhvZHMuSW50ZXJwcmV0ZWRNZXRob2QuY2FsbChJbnRlcnByZXRl ZE1ldGhvZC5qYXZhOjEzNCkNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkuaW50ZXJuYWwucnVu dGltZS5tZXRob2RzLkRlZmF1bHRNZXRob2QuY2FsbChEZWZhdWx0TWV0aG9kLmphdmE6MTc0KQ0K PiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5ydW50aW1lLmNhbGxzaXRlLkNhY2hpbmdDYWxsU2l0 ZS5jYWNoZUFuZENhbGwoQ2FjaGluZ0NhbGxTaXRlLmphdmE6MjgyKQ0KPiAgICAgICAgIGF0DQo+ IG9yZy5qcnVieS5ydW50aW1lLmNhbGxzaXRlLkNhY2hpbmdDYWxsU2l0ZS5jYWxsKENhY2hpbmdD YWxsU2l0ZS5qYXZhOjcxKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5hc3QuQ2FsbFNwZWNp YWxBcmdOb2RlLmludGVycHJldChDYWxsU3BlY2lhbEFyZ05vZGUuamF2YTo3MykNCj4gICAgICAg ICBhdCBvcmcuanJ1YnkuYXN0Lk5ld2xpbmVOb2RlLmludGVycHJldChOZXdsaW5lTm9kZS5qYXZh OjEwNCkNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkuZXZhbHVhdG9yLkFTVEludGVycHJldGVy LklOVEVSUFJFVF9NRVRIT0QoQVNUSW50ZXJwcmV0ZXIuamF2YTo3NCkNCj4gICAgICAgICBhdA0K PiBvcmcuanJ1YnkuaW50ZXJuYWwucnVudGltZS5tZXRob2RzLkludGVycHJldGVkTWV0aG9kLmNh bGwoSW50ZXJwcmV0ZWRNZXRob2QuamF2YToxMjApDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5 LmludGVybmFsLnJ1bnRpbWUubWV0aG9kcy5JbnRlcnByZXRlZE1ldGhvZC5jYWxsKEludGVycHJl dGVkTWV0aG9kLmphdmE6MTM0KQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5pbnRlcm5hbC5y dW50aW1lLm1ldGhvZHMuRGVmYXVsdE1ldGhvZC5jYWxsKERlZmF1bHRNZXRob2QuamF2YToxNzQp DQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LnJ1bnRpbWUuY2FsbHNpdGUuQ2FjaGluZ0NhbGxT aXRlLmNhY2hlQW5kQ2FsbChDYWNoaW5nQ2FsbFNpdGUuamF2YToyODIpDQo+ICAgICAgICAgYXQN Cj4gb3JnLmpydWJ5LnJ1bnRpbWUuY2FsbHNpdGUuQ2FjaGluZ0NhbGxTaXRlLmNhbGwoQ2FjaGlu Z0NhbGxTaXRlLmphdmE6NzEpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LmFzdC5GQ2FsbFNw ZWNpYWxBcmdOb2RlLmludGVycHJldChGQ2FsbFNwZWNpYWxBcmdOb2RlLmphdmE6NDUpDQo+ICAg ICAgICAgYXQgb3JnLmpydWJ5LmFzdC5OZXdsaW5lTm9kZS5pbnRlcnByZXQoTmV3bGluZU5vZGUu amF2YToxMDQpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LmV2YWx1YXRvci5BU1RJbnRlcnBy ZXRlci5JTlRFUlBSRVRfTUVUSE9EKEFTVEludGVycHJldGVyLmphdmE6NzQpDQo+ICAgICAgICAg YXQNCj4gb3JnLmpydWJ5LmludGVybmFsLnJ1bnRpbWUubWV0aG9kcy5JbnRlcnByZXRlZE1ldGhv ZC5jYWxsKEludGVycHJldGVkTWV0aG9kLmphdmE6Mjc2KQ0KPiAgICAgICAgIGF0DQo+IG9yZy5q cnVieS5pbnRlcm5hbC5ydW50aW1lLm1ldGhvZHMuRGVmYXVsdE1ldGhvZC5jYWxsKERlZmF1bHRN ZXRob2QuamF2YToyMzEpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LnJ1bnRpbWUuY2FsbHNp dGUuQ2FjaGluZ0NhbGxTaXRlLmNhY2hlQW5kQ2FsbChDYWNoaW5nQ2FsbFNpdGUuamF2YTozNTIp DQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LnJ1bnRpbWUuY2FsbHNpdGUuQ2FjaGluZ0NhbGxT aXRlLmNhbGwoQ2FjaGluZ0NhbGxTaXRlLmphdmE6MjM3KQ0KPiAgICAgICAgIGF0DQo+IG9yZy5q cnVieS5hc3QuQ2FsbFNwZWNpYWxBcmdOb2RlLmludGVycHJldChDYWxsU3BlY2lhbEFyZ05vZGUu amF2YTo3MSkNCj4gICAgICAgICBhdCBvcmcuanJ1YnkuYXN0LkxvY2FsQXNnbk5vZGUuaW50ZXJw cmV0KExvY2FsQXNnbk5vZGUuamF2YToxMjMpDQo+ICAgICAgICAgYXQgb3JnLmpydWJ5LmFzdC5O ZXdsaW5lTm9kZS5pbnRlcnByZXQoTmV3bGluZU5vZGUuamF2YToxMDQpDQo+ICAgICAgICAgYXQg b3JnLmpydWJ5LmFzdC5CbG9ja05vZGUuaW50ZXJwcmV0KEJsb2NrTm9kZS5qYXZhOjcxKQ0KPiAg ICAgICAgIGF0DQo+IG9yZy5qcnVieS5ldmFsdWF0b3IuQVNUSW50ZXJwcmV0ZXIuSU5URVJQUkVU X01FVEhPRChBU1RJbnRlcnByZXRlci5qYXZhOjc0KQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVi eS5pbnRlcm5hbC5ydW50aW1lLm1ldGhvZHMuSW50ZXJwcmV0ZWRNZXRob2QuY2FsbChJbnRlcnBy ZXRlZE1ldGhvZC5qYXZhOjIzMykNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkuaW50ZXJuYWwu cnVudGltZS5tZXRob2RzLkRlZmF1bHRNZXRob2QuY2FsbChEZWZhdWx0TWV0aG9kLmphdmE6MjE1 KQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5ydW50aW1lLmNhbGxzaXRlLkNhY2hpbmdDYWxs U2l0ZS5jYWNoZUFuZENhbGwoQ2FjaGluZ0NhbGxTaXRlLmphdmE6MzMyKQ0KPiAgICAgICAgIGF0 DQo+IG9yZy5qcnVieS5ydW50aW1lLmNhbGxzaXRlLkNhY2hpbmdDYWxsU2l0ZS5jYWxsKENhY2hp bmdDYWxsU2l0ZS5qYXZhOjIwMykNCj4gICAgICAgICBhdCBvcmcuanJ1YnkuYXN0LkZDYWxsVHdv QXJnTm9kZS5pbnRlcnByZXQoRkNhbGxUd29BcmdOb2RlLmphdmE6MzgpDQo+ICAgICAgICAgYXQg b3JnLmpydWJ5LmFzdC5OZXdsaW5lTm9kZS5pbnRlcnByZXQoTmV3bGluZU5vZGUuamF2YToxMDQp DQo+ICAgICAgICAgYXQgb3JnLmpydWJ5LmFzdC5Sb290Tm9kZS5pbnRlcnByZXQoUm9vdE5vZGUu amF2YToxMjkpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LmV2YWx1YXRvci5BU1RJbnRlcnBy ZXRlci5JTlRFUlBSRVRfRVZBTChBU1RJbnRlcnByZXRlci5qYXZhOjk1KQ0KPiAgICAgICAgIGF0 DQo+IG9yZy5qcnVieS5ldmFsdWF0b3IuQVNUSW50ZXJwcmV0ZXIuZXZhbFdpdGhCaW5kaW5nKEFT VEludGVycHJldGVyLmphdmE6MTY2KQ0KPiAgICAgICAgIGF0IG9yZy5qcnVieS5SdWJ5S2VybmVs LmV2YWxDb21tb24oUnVieUtlcm5lbC5qYXZhOjExNTUpDQo+ICAgICAgICAgYXQgb3JnLmpydWJ5 LlJ1YnlLZXJuZWwuZXZhbChSdWJ5S2VybmVsLmphdmE6MTExMikNCj4gICAgICAgICBhdA0KPiBv cmcuanJ1YnkuUnVieUtlcm5lbCRzJDAkMyRldmFsLmNhbGwoUnVieUtlcm5lbCRzJDAkMyRldmFs Lmdlbjo2NTUzNSkNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkuaW50ZXJuYWwucnVudGltZS5t ZXRob2RzLkR5bmFtaWNNZXRob2QuY2FsbChEeW5hbWljTWV0aG9kLmphdmE6MTgxKQ0KPiAgICAg ICAgIGF0DQo+IG9yZy5qcnVieS5ydW50aW1lLmNhbGxzaXRlLkNhY2hpbmdDYWxsU2l0ZS5jYWNo ZUFuZENhbGwoQ2FjaGluZ0NhbGxTaXRlLmphdmE6MjgyKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5q cnVieS5ydW50aW1lLmNhbGxzaXRlLkNhY2hpbmdDYWxsU2l0ZS5jYWxsKENhY2hpbmdDYWxsU2l0 ZS5qYXZhOjcxKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5hc3QuRkNhbGxNYW55QXJnc05v ZGUuaW50ZXJwcmV0KEZDYWxsTWFueUFyZ3NOb2RlLmphdmE6NjApDQo+ICAgICAgICAgYXQgb3Jn LmpydWJ5LmFzdC5OZXdsaW5lTm9kZS5pbnRlcnByZXQoTmV3bGluZU5vZGUuamF2YToxMDQpDQo+ ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LmV2YWx1YXRvci5BU1RJbnRlcnByZXRlci5JTlRFUlBS RVRfTUVUSE9EKEFTVEludGVycHJldGVyLmphdmE6NzQpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpy dWJ5LmludGVybmFsLnJ1bnRpbWUubWV0aG9kcy5JbnRlcnByZXRlZE1ldGhvZC5jYWxsKEludGVy cHJldGVkTWV0aG9kLmphdmE6MTIwKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5pbnRlcm5h bC5ydW50aW1lLm1ldGhvZHMuSW50ZXJwcmV0ZWRNZXRob2QuY2FsbChJbnRlcnByZXRlZE1ldGhv ZC5qYXZhOjEzNCkNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkuaW50ZXJuYWwucnVudGltZS5t ZXRob2RzLkRlZmF1bHRNZXRob2QuY2FsbChEZWZhdWx0TWV0aG9kLmphdmE6MTc0KQ0KPiAgICAg ICAgIGF0DQo+IG9yZy5qcnVieS5ydW50aW1lLmNhbGxzaXRlLkNhY2hpbmdDYWxsU2l0ZS5jYWNo ZUFuZENhbGwoQ2FjaGluZ0NhbGxTaXRlLmphdmE6MjgyKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5q cnVieS5ydW50aW1lLmNhbGxzaXRlLkNhY2hpbmdDYWxsU2l0ZS5jYWxsKENhY2hpbmdDYWxsU2l0 ZS5qYXZhOjcxKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5hc3QuQ2FsbE1hbnlBcmdzTm9k ZS5pbnRlcnByZXQoQ2FsbE1hbnlBcmdzTm9kZS5qYXZhOjU5KQ0KPiAgICAgICAgIGF0IG9yZy5q cnVieS5hc3QuRkNhbGxPbmVBcmdOb2RlLmludGVycHJldChGQ2FsbE9uZUFyZ05vZGUuamF2YToz NikNCj4gICAgICAgICBhdCBvcmcuanJ1YnkuYXN0Lk5ld2xpbmVOb2RlLmludGVycHJldChOZXds aW5lTm9kZS5qYXZhOjEwNCkNCj4gICAgICAgICBhdCBvcmcuanJ1YnkuYXN0LkJsb2NrTm9kZS5p bnRlcnByZXQoQmxvY2tOb2RlLmphdmE6NzEpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LmV2 YWx1YXRvci5BU1RJbnRlcnByZXRlci5JTlRFUlBSRVRfTUVUSE9EKEFTVEludGVycHJldGVyLmph dmE6NzQpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LmludGVybmFsLnJ1bnRpbWUubWV0aG9k cy5JbnRlcnByZXRlZE1ldGhvZC5jYWxsKEludGVycHJldGVkTWV0aG9kLmphdmE6MjMzKQ0KPiAg ICAgICAgIGF0DQo+IG9yZy5qcnVieS5pbnRlcm5hbC5ydW50aW1lLm1ldGhvZHMuRGVmYXVsdE1l dGhvZC5jYWxsKERlZmF1bHRNZXRob2QuamF2YToyMTUpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpy dWJ5LnJ1bnRpbWUuY2FsbHNpdGUuQ2FjaGluZ0NhbGxTaXRlLmNhY2hlQW5kQ2FsbChDYWNoaW5n Q2FsbFNpdGUuamF2YTozMzIpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LnJ1bnRpbWUuY2Fs bHNpdGUuQ2FjaGluZ0NhbGxTaXRlLmNhbGwoQ2FjaGluZ0NhbGxTaXRlLmphdmE6MjAzKQ0KPiAg ICAgICAgIGF0IG9yZy5qcnVieS5hc3QuQ2FsbFR3b0FyZ05vZGUuaW50ZXJwcmV0KENhbGxUd29B cmdOb2RlLmphdmE6NTkpDQo+ICAgICAgICAgYXQgb3JnLmpydWJ5LmFzdC5OZXdsaW5lTm9kZS5p bnRlcnByZXQoTmV3bGluZU5vZGUuamF2YToxMDQpDQo+ICAgICAgICAgYXQgb3JnLmpydWJ5LmFz dC5CbG9ja05vZGUuaW50ZXJwcmV0KEJsb2NrTm9kZS5qYXZhOjcxKQ0KPiAgICAgICAgIGF0IG9y Zy5qcnVieS5hc3QuUmVzY3VlTm9kZS5leGVjdXRlQm9keShSZXNjdWVOb2RlLmphdmE6MjE2KQ0K PiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5hc3QuUmVzY3VlTm9kZS5pbnRlcnByZXRXaXRoSmF2 YUV4Y2VwdGlvbnMoUmVzY3VlTm9kZS5qYXZhOjEyMCkNCj4gICAgICAgICBhdCBvcmcuanJ1Ynku YXN0LlJlc2N1ZU5vZGUuaW50ZXJwcmV0KFJlc2N1ZU5vZGUuamF2YToxMTApDQo+ICAgICAgICAg YXQgb3JnLmpydWJ5LmFzdC5CZWdpbk5vZGUuaW50ZXJwcmV0KEJlZ2luTm9kZS5qYXZhOjgzKQ0K PiAgICAgICAgIGF0IG9yZy5qcnVieS5hc3QuTmV3bGluZU5vZGUuaW50ZXJwcmV0KE5ld2xpbmVO b2RlLmphdmE6MTA0KQ0KPiAgICAgICAgIGF0IG9yZy5qcnVieS5hc3QuQmxvY2tOb2RlLmludGVy cHJldChCbG9ja05vZGUuamF2YTo3MSkNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkuZXZhbHVh dG9yLkFTVEludGVycHJldGVyLklOVEVSUFJFVF9CTE9DSyhBU1RJbnRlcnByZXRlci5qYXZhOjEx MSkNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkucnVudGltZS5JbnRlcnByZXRlZEJsb2NrLmV2 YWxCbG9ja0JvZHkoSW50ZXJwcmV0ZWRCbG9jay5qYXZhOjM3NCkNCj4gICAgICAgICBhdA0KPiBv cmcuanJ1YnkucnVudGltZS5JbnRlcnByZXRlZEJsb2NrLnlpZWxkKEludGVycHJldGVkQmxvY2su amF2YToyOTUpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LnJ1bnRpbWUuSW50ZXJwcmV0ZWRC bG9jay55aWVsZFNwZWNpZmljKEludGVycHJldGVkQmxvY2suamF2YToyMjkpDQo+ICAgICAgICAg YXQgb3JnLmpydWJ5LnJ1bnRpbWUuQmxvY2sueWllbGRTcGVjaWZpYyhCbG9jay5qYXZhOjk5KQ0K PiAgICAgICAgIGF0IG9yZy5qcnVieS5hc3QuWllpZWxkTm9kZS5pbnRlcnByZXQoWllpZWxkTm9k ZS5qYXZhOjI1KQ0KPiAgICAgICAgIGF0IG9yZy5qcnVieS5hc3QuTmV3bGluZU5vZGUuaW50ZXJw cmV0KE5ld2xpbmVOb2RlLmphdmE6MTA0KQ0KPiAgICAgICAgIGF0IG9yZy5qcnVieS5hc3QuRW5z dXJlTm9kZS5pbnRlcnByZXQoRW5zdXJlTm9kZS5qYXZhOjk2KQ0KPiAgICAgICAgIGF0IG9yZy5q cnVieS5hc3QuQmVnaW5Ob2RlLmludGVycHJldChCZWdpbk5vZGUuamF2YTo4MykNCj4gICAgICAg ICBhdCBvcmcuanJ1YnkuYXN0Lk5ld2xpbmVOb2RlLmludGVycHJldChOZXdsaW5lTm9kZS5qYXZh OjEwNCkNCj4gICAgICAgICBhdCBvcmcuanJ1YnkuYXN0LkJsb2NrTm9kZS5pbnRlcnByZXQoQmxv Y2tOb2RlLmphdmE6NzEpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LmV2YWx1YXRvci5BU1RJ bnRlcnByZXRlci5JTlRFUlBSRVRfTUVUSE9EKEFTVEludGVycHJldGVyLmphdmE6NzQpDQo+ICAg ICAgICAgYXQNCj4gb3JnLmpydWJ5LmludGVybmFsLnJ1bnRpbWUubWV0aG9kcy5JbnRlcnByZXRl ZE1ldGhvZC5jYWxsKEludGVycHJldGVkTWV0aG9kLmphdmE6MjEyKQ0KPiAgICAgICAgIGF0DQo+ IG9yZy5qcnVieS5pbnRlcm5hbC5ydW50aW1lLm1ldGhvZHMuRGVmYXVsdE1ldGhvZC5jYWxsKERl ZmF1bHRNZXRob2QuamF2YToyMDcpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LnJ1bnRpbWUu Y2FsbHNpdGUuQ2FjaGluZ0NhbGxTaXRlLmNhY2hlQW5kQ2FsbChDYWNoaW5nQ2FsbFNpdGUuamF2 YTozMjIpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LnJ1bnRpbWUuY2FsbHNpdGUuQ2FjaGlu Z0NhbGxTaXRlLmNhbGxCbG9jayhDYWNoaW5nQ2FsbFNpdGUuamF2YToxNzgpDQo+ICAgICAgICAg YXQNCj4gb3JnLmpydWJ5LnJ1bnRpbWUuY2FsbHNpdGUuQ2FjaGluZ0NhbGxTaXRlLmNhbGxJdGVy KENhY2hpbmdDYWxsU2l0ZS5qYXZhOjE4NykNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkuYXN0 LkZDYWxsT25lQXJnQmxvY2tOb2RlLmludGVycHJldChGQ2FsbE9uZUFyZ0Jsb2NrTm9kZS5qYXZh OjM0KQ0KPiAgICAgICAgIGF0IG9yZy5qcnVieS5hc3QuTmV3bGluZU5vZGUuaW50ZXJwcmV0KE5l d2xpbmVOb2RlLmphdmE6MTA0KQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5ldmFsdWF0b3Iu QVNUSW50ZXJwcmV0ZXIuSU5URVJQUkVUX0JMT0NLKEFTVEludGVycHJldGVyLmphdmE6MTExKQ0K PiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5ydW50aW1lLkludGVycHJldGVkQmxvY2suZXZhbEJs b2NrQm9keShJbnRlcnByZXRlZEJsb2NrLmphdmE6Mzc0KQ0KPiAgICAgICAgIGF0DQo+IG9yZy5q cnVieS5ydW50aW1lLkludGVycHJldGVkQmxvY2sueWllbGRTcGVjaWZpYyhJbnRlcnByZXRlZEJs b2NrLmphdmE6MjYwKQ0KPiAgICAgICAgIGF0IG9yZy5qcnVieS5ydW50aW1lLkJsb2NrLnlpZWxk U3BlY2lmaWMoQmxvY2suamF2YToxMTcpDQo+ICAgICAgICAgYXQgb3JnLmpydWJ5LmFzdC5ZaWVs ZFR3b05vZGUuaW50ZXJwcmV0KFlpZWxkVHdvTm9kZS5qYXZhOjMxKQ0KPiAgICAgICAgIGF0IG9y Zy5qcnVieS5hc3QuTmV3bGluZU5vZGUuaW50ZXJwcmV0KE5ld2xpbmVOb2RlLmphdmE6MTA0KQ0K PiAgICAgICAgIGF0IG9yZy5qcnVieS5hc3QuSWZOb2RlLmludGVycHJldChJZk5vZGUuamF2YTox MTcpDQo+ICAgICAgICAgYXQgb3JnLmpydWJ5LmFzdC5OZXdsaW5lTm9kZS5pbnRlcnByZXQoTmV3 bGluZU5vZGUuamF2YToxMDQpDQo+ICAgICAgICAgYXQgb3JnLmpydWJ5LmFzdC5CbG9ja05vZGUu aW50ZXJwcmV0KEJsb2NrTm9kZS5qYXZhOjcxKQ0KPiAgICAgICAgIGF0IG9yZy5qcnVieS5hc3Qu UmVzY3VlTm9kZS5leGVjdXRlQm9keShSZXNjdWVOb2RlLmphdmE6MjE2KQ0KPiAgICAgICAgIGF0 DQo+IG9yZy5qcnVieS5hc3QuUmVzY3VlTm9kZS5pbnRlcnByZXRXaXRoSmF2YUV4Y2VwdGlvbnMo UmVzY3VlTm9kZS5qYXZhOjEyMCkNCj4gICAgICAgICBhdCBvcmcuanJ1YnkuYXN0LlJlc2N1ZU5v ZGUuaW50ZXJwcmV0KFJlc2N1ZU5vZGUuamF2YToxMTApDQo+ICAgICAgICAgYXQgb3JnLmpydWJ5 LmFzdC5CZWdpbk5vZGUuaW50ZXJwcmV0KEJlZ2luTm9kZS5qYXZhOjgzKQ0KPiAgICAgICAgIGF0 IG9yZy5qcnVieS5hc3QuTmV3bGluZU5vZGUuaW50ZXJwcmV0KE5ld2xpbmVOb2RlLmphdmE6MTA0 KQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5ldmFsdWF0b3IuQVNUSW50ZXJwcmV0ZXIuSU5U RVJQUkVUX0JMT0NLKEFTVEludGVycHJldGVyLmphdmE6MTExKQ0KPiAgICAgICAgIGF0DQo+IG9y Zy5qcnVieS5ydW50aW1lLkludGVycHJldGVkQmxvY2suZXZhbEJsb2NrQm9keShJbnRlcnByZXRl ZEJsb2NrLmphdmE6Mzc0KQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5ydW50aW1lLkludGVy cHJldGVkQmxvY2sueWllbGQoSW50ZXJwcmV0ZWRCbG9jay5qYXZhOjI5NSkNCj4gICAgICAgICBh dA0KPiBvcmcuanJ1YnkucnVudGltZS5JbnRlcnByZXRlZEJsb2NrLnlpZWxkU3BlY2lmaWMoSW50 ZXJwcmV0ZWRCbG9jay5qYXZhOjIyOSkNCj4gICAgICAgICBhdCBvcmcuanJ1YnkucnVudGltZS5C bG9jay55aWVsZFNwZWNpZmljKEJsb2NrLmphdmE6OTkpDQo+ICAgICAgICAgYXQgb3JnLmpydWJ5 LlJ1YnlLZXJuZWwubG9vcChSdWJ5S2VybmVsLmphdmE6MTQzOSkNCj4gICAgICAgICBhdA0KPiBv cmcuanJ1YnkuUnVieUtlcm5lbCRzJDAkMCRsb29wLmNhbGwoUnVieUtlcm5lbCRzJDAkMCRsb29w Lmdlbjo2NTUzNSkNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkucnVudGltZS5jYWxsc2l0ZS5D YWNoaW5nQ2FsbFNpdGUuY2FjaGVBbmRDYWxsKENhY2hpbmdDYWxsU2l0ZS5qYXZhOjMwMikNCj4g ICAgICAgICBhdA0KPiBvcmcuanJ1YnkucnVudGltZS5jYWxsc2l0ZS5DYWNoaW5nQ2FsbFNpdGUu Y2FsbEJsb2NrKENhY2hpbmdDYWxsU2l0ZS5qYXZhOjE0NCkNCj4gICAgICAgICBhdA0KPiBvcmcu anJ1YnkucnVudGltZS5jYWxsc2l0ZS5DYWNoaW5nQ2FsbFNpdGUuY2FsbEl0ZXIoQ2FjaGluZ0Nh bGxTaXRlLmphdmE6MTUzKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5hc3QuRkNhbGxOb0Fy Z0Jsb2NrTm9kZS5pbnRlcnByZXQoRkNhbGxOb0FyZ0Jsb2NrTm9kZS5qYXZhOjMyKQ0KPiAgICAg ICAgIGF0IG9yZy5qcnVieS5hc3QuTmV3bGluZU5vZGUuaW50ZXJwcmV0KE5ld2xpbmVOb2RlLmph dmE6MTA0KQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5ldmFsdWF0b3IuQVNUSW50ZXJwcmV0 ZXIuSU5URVJQUkVUX0JMT0NLKEFTVEludGVycHJldGVyLmphdmE6MTExKQ0KPiAgICAgICAgIGF0 DQo+IG9yZy5qcnVieS5ydW50aW1lLkludGVycHJldGVkQmxvY2suZXZhbEJsb2NrQm9keShJbnRl cnByZXRlZEJsb2NrLmphdmE6Mzc0KQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5ydW50aW1l LkludGVycHJldGVkQmxvY2sueWllbGQoSW50ZXJwcmV0ZWRCbG9jay5qYXZhOjM0NykNCj4gICAg ICAgICBhdA0KPiBvcmcuanJ1YnkucnVudGltZS5JbnRlcnByZXRlZEJsb2NrLnlpZWxkKEludGVy cHJldGVkQmxvY2suamF2YTozMDQpDQo+ICAgICAgICAgYXQgb3JnLmpydWJ5LnJ1bnRpbWUuQmxv Y2sueWllbGQoQmxvY2suamF2YToxMzApDQo+ICAgICAgICAgYXQgb3JnLmpydWJ5LlJ1YnlDb250 aW51YXRpb24uZW50ZXIoUnVieUNvbnRpbnVhdGlvbi5qYXZhOjEwNikNCj4gICAgICAgICBhdCBv cmcuanJ1YnkuUnVieUtlcm5lbC5yYkNhdGNoKFJ1YnlLZXJuZWwuamF2YToxMjEyKQ0KPiAgICAg ICAgIGF0DQo+IG9yZy5qcnVieS5SdWJ5S2VybmVsJHMkMSQwJHJiQ2F0Y2guY2FsbChSdWJ5S2Vy bmVsJHMkMSQwJHJiQ2F0Y2guZ2VuOjY1NTM1KQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5y dW50aW1lLmNhbGxzaXRlLkNhY2hpbmdDYWxsU2l0ZS5jYWNoZUFuZENhbGwoQ2FjaGluZ0NhbGxT aXRlLmphdmE6MzIyKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5ydW50aW1lLmNhbGxzaXRl LkNhY2hpbmdDYWxsU2l0ZS5jYWxsQmxvY2soQ2FjaGluZ0NhbGxTaXRlLmphdmE6MTc4KQ0KPiAg ICAgICAgIGF0DQo+IG9yZy5qcnVieS5ydW50aW1lLmNhbGxzaXRlLkNhY2hpbmdDYWxsU2l0ZS5j YWxsSXRlcihDYWNoaW5nQ2FsbFNpdGUuamF2YToxODcpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpy dWJ5LmFzdC5GQ2FsbE9uZUFyZ0Jsb2NrTm9kZS5pbnRlcnByZXQoRkNhbGxPbmVBcmdCbG9ja05v ZGUuamF2YTozNCkNCj4gICAgICAgICBhdCBvcmcuanJ1YnkuYXN0Lk5ld2xpbmVOb2RlLmludGVy cHJldChOZXdsaW5lTm9kZS5qYXZhOjEwNCkNCj4gICAgICAgICBhdCBvcmcuanJ1YnkuYXN0LkJs b2NrTm9kZS5pbnRlcnByZXQoQmxvY2tOb2RlLmphdmE6NzEpDQo+ICAgICAgICAgYXQNCj4gb3Jn LmpydWJ5LmV2YWx1YXRvci5BU1RJbnRlcnByZXRlci5JTlRFUlBSRVRfTUVUSE9EKEFTVEludGVy cHJldGVyLmphdmE6NzQpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LmludGVybmFsLnJ1bnRp bWUubWV0aG9kcy5JbnRlcnByZXRlZE1ldGhvZC5jYWxsKEludGVycHJldGVkTWV0aG9kLmphdmE6 MTY5KQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5pbnRlcm5hbC5ydW50aW1lLm1ldGhvZHMu RGVmYXVsdE1ldGhvZC5jYWxsKERlZmF1bHRNZXRob2QuamF2YToxOTEpDQo+ICAgICAgICAgYXQN Cj4gb3JnLmpydWJ5LnJ1bnRpbWUuY2FsbHNpdGUuQ2FjaGluZ0NhbGxTaXRlLmNhY2hlQW5kQ2Fs bChDYWNoaW5nQ2FsbFNpdGUuamF2YTozMDIpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LnJ1 bnRpbWUuY2FsbHNpdGUuQ2FjaGluZ0NhbGxTaXRlLmNhbGxCbG9jayhDYWNoaW5nQ2FsbFNpdGUu amF2YToxNDQpDQo+ICAgICAgICAgYXQNCj4gb3JnLmpydWJ5LnJ1bnRpbWUuY2FsbHNpdGUuQ2Fj aGluZ0NhbGxTaXRlLmNhbGxJdGVyKENhY2hpbmdDYWxsU2l0ZS5qYXZhOjE1MykNCj4gICAgICAg ICBhdA0KPiBvcmcuanJ1YnkuYXN0LkNhbGxOb0FyZ0Jsb2NrTm9kZS5pbnRlcnByZXQoQ2FsbE5v QXJnQmxvY2tOb2RlLmphdmE6NjQpDQo+ICAgICAgICAgYXQgb3JnLmpydWJ5LmFzdC5OZXdsaW5l Tm9kZS5pbnRlcnByZXQoTmV3bGluZU5vZGUuamF2YToxMDQpDQo+ICAgICAgICAgYXQgb3JnLmpy dWJ5LmFzdC5CbG9ja05vZGUuaW50ZXJwcmV0KEJsb2NrTm9kZS5qYXZhOjcxKQ0KPiAgICAgICAg IGF0DQo+IG9yZy5qcnVieS5ldmFsdWF0b3IuQVNUSW50ZXJwcmV0ZXIuSU5URVJQUkVUX01FVEhP RChBU1RJbnRlcnByZXRlci5qYXZhOjc0KQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5pbnRl cm5hbC5ydW50aW1lLm1ldGhvZHMuSW50ZXJwcmV0ZWRNZXRob2QuY2FsbChJbnRlcnByZXRlZE1l dGhvZC5qYXZhOjE0NykNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkuaW50ZXJuYWwucnVudGlt ZS5tZXRob2RzLkRlZmF1bHRNZXRob2QuY2FsbChEZWZhdWx0TWV0aG9kLmphdmE6MTgzKQ0KPiAg ICAgICAgIGF0DQo+IG9yZy5qcnVieS5ydW50aW1lLmNhbGxzaXRlLkNhY2hpbmdDYWxsU2l0ZS5j YWNoZUFuZENhbGwoQ2FjaGluZ0NhbGxTaXRlLmphdmE6MjkyKQ0KPiAgICAgICAgIGF0DQo+IG9y Zy5qcnVieS5ydW50aW1lLmNhbGxzaXRlLkNhY2hpbmdDYWxsU2l0ZS5jYWxsKENhY2hpbmdDYWxs U2l0ZS5qYXZhOjEzNSkNCj4gICAgICAgICBhdA0KPiBob21lLmphd2VkLmhiYXNlLmJpbi4kX2Rv dF9kb3RfLmJpbi5oaXJiLmJsb2NrXzIkUlVCWSRzdGFydCgvaG9tZS9qYXdlZC9oYmFzZS9iaW4v Li4vYmluL2hpcmIucmI6MTg1KQ0KPiAgICAgICAgIGF0DQo+IGhvbWUkamF3ZWQkaGJhc2UkYmlu JCRfZG90X2RvdF8kYmluJGhpcmIkYmxvY2tfMiRSVUJZJHN0YXJ0LmNhbGwoaG9tZSRqYXdlZCRo YmFzZSRiaW4kJF9kb3RfZG90XyRiaW4kaGlyYiRibG9ja18yJFJVQlkkc3RhcnQ6NjU1MzUpDQo+ ICAgICAgICAgYXQgb3JnLmpydWJ5LnJ1bnRpbWUuQ29tcGlsZWRCbG9jay55aWVsZChDb21waWxl ZEJsb2NrLmphdmE6MTEyKQ0KPiAgICAgICAgIGF0IG9yZy5qcnVieS5ydW50aW1lLkNvbXBpbGVk QmxvY2sueWllbGQoQ29tcGlsZWRCbG9jay5qYXZhOjk1KQ0KPiAgICAgICAgIGF0IG9yZy5qcnVi eS5ydW50aW1lLkJsb2NrLnlpZWxkKEJsb2NrLmphdmE6MTMwKQ0KPiAgICAgICAgIGF0IG9yZy5q cnVieS5SdWJ5Q29udGludWF0aW9uLmVudGVyKFJ1YnlDb250aW51YXRpb24uamF2YToxMDYpDQo+ ICAgICAgICAgYXQgb3JnLmpydWJ5LlJ1YnlLZXJuZWwucmJDYXRjaChSdWJ5S2VybmVsLmphdmE6 MTIxMikNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkuUnVieUtlcm5lbCRzJDEkMCRyYkNhdGNo LmNhbGwoUnVieUtlcm5lbCRzJDEkMCRyYkNhdGNoLmdlbjo2NTUzNSkNCj4gICAgICAgICBhdA0K PiBvcmcuanJ1YnkucnVudGltZS5jYWxsc2l0ZS5DYWNoaW5nQ2FsbFNpdGUuY2FjaGVBbmRDYWxs KENhY2hpbmdDYWxsU2l0ZS5qYXZhOjMyMikNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkucnVu dGltZS5jYWxsc2l0ZS5DYWNoaW5nQ2FsbFNpdGUuY2FsbEJsb2NrKENhY2hpbmdDYWxsU2l0ZS5q YXZhOjE3OCkNCj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkucnVudGltZS5jYWxsc2l0ZS5DYWNo aW5nQ2FsbFNpdGUuY2FsbEl0ZXIoQ2FjaGluZ0NhbGxTaXRlLmphdmE6MTg3KQ0KPiAgICAgICAg IGF0DQo+IGhvbWUuamF3ZWQuaGJhc2UuYmluLiRfZG90X2RvdF8uYmluLmhpcmIubWV0aG9kX181 JFJVQlkkc3RhcnQoL2hvbWUvamF3ZWQvaGJhc2UvYmluLy4uL2Jpbi9oaXJiLnJiOjE4NCkNCj4g ICAgICAgICBhdA0KPiBob21lJGphd2VkJGhiYXNlJGJpbiQkX2RvdF9kb3RfJGJpbiRoaXJiJG1l dGhvZF9fNSRSVUJZJHN0YXJ0LmNhbGwoaG9tZSRqYXdlZCRoYmFzZSRiaW4kJF9kb3RfZG90XyRi aW4kaGlyYiRtZXRob2RfXzUkUlVCWSRzdGFydDo2NTUzNSkNCj4gICAgICAgICBhdA0KPiBvcmcu anJ1YnkuaW50ZXJuYWwucnVudGltZS5tZXRob2RzLkR5bmFtaWNNZXRob2QuY2FsbChEeW5hbWlj TWV0aG9kLmphdmE6MjAzKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5qcnVieS5pbnRlcm5hbC5ydW50 aW1lLm1ldGhvZHMuQ29tcGlsZWRNZXRob2QuY2FsbChDb21waWxlZE1ldGhvZC5qYXZhOjI1NSkN Cj4gICAgICAgICBhdA0KPiBvcmcuanJ1YnkucnVudGltZS5jYWxsc2l0ZS5DYWNoaW5nQ2FsbFNp dGUuY2FjaGVBbmRDYWxsKENhY2hpbmdDYWxsU2l0ZS5qYXZhOjI5MikNCj4gICAgICAgICBhdA0K PiBvcmcuanJ1YnkucnVudGltZS5jYWxsc2l0ZS5DYWNoaW5nQ2FsbFNpdGUuY2FsbChDYWNoaW5n Q2FsbFNpdGUuamF2YToxMzUpDQo+ICAgICAgICAgYXQNCj4gaG9tZS5qYXdlZC5oYmFzZS5iaW4u JF9kb3RfZG90Xy5iaW4uaGlyYi5fX2ZpbGVfXygvaG9tZS9qYXdlZC9oYmFzZS9iaW4vLi4vYmlu L2hpcmIucmI6MTkwKQ0KPiAgICAgICAgIGF0DQo+IGhvbWUuamF3ZWQuaGJhc2UuYmluLiRfZG90 X2RvdF8uYmluLmhpcmIubG9hZCgvaG9tZS9qYXdlZC9oYmFzZS9iaW4vLi4vYmluL2hpcmIucmIp DQo+ICAgICAgICAgYXQgb3JnLmpydWJ5LlJ1YnkucnVuU2NyaXB0KFJ1YnkuamF2YTo2OTcpDQo+ ICAgICAgICAgYXQgb3JnLmpydWJ5LlJ1YnkucnVuU2NyaXB0KFJ1YnkuamF2YTo2OTApDQo+ICAg ICAgICAgYXQgb3JnLmpydWJ5LlJ1YnkucnVuTm9ybWFsbHkoUnVieS5qYXZhOjU5NykNCj4gICAg ICAgICBhdCBvcmcuanJ1YnkuUnVieS5ydW5Gcm9tTWFpbihSdWJ5LmphdmE6NDQ2KQ0KPiAgICAg ICAgIGF0IG9yZy5qcnVieS5NYWluLmRvUnVuRnJvbU1haW4oTWFpbi5qYXZhOjM2OSkNCj4gICAg ICAgICBhdCBvcmcuanJ1YnkuTWFpbi5pbnRlcm5hbFJ1bihNYWluLmphdmE6MjU4KQ0KPiAgICAg ICAgIGF0IG9yZy5qcnVieS5NYWluLnJ1bihNYWluLmphdmE6MjI0KQ0KPiAgICAgICAgIGF0IG9y Zy5qcnVieS5NYWluLnJ1bihNYWluLmphdmE6MjA4KQ0KPiAgICAgICAgIGF0IG9yZy5qcnVieS5N YWluLm1haW4oTWFpbi5qYXZhOjE4OCkNCj4gQ2F1c2VkIGJ5OiBqYXZhLmlvLklPRXhjZXB0aW9u OiBDYWxsIHRvIGhvc3QtMTAtMTgtNDAtMTAxLw0KPiAxMC4xOC40MC4xMDE6NjAwMDAgZmFpbGVk IG9uIGxvY2FsIGV4Y2VwdGlvbjogamF2YS5pby5FT0ZFeGNlcHRpb24NCj4gICAgICAgICBhdA0K PiBvcmcuYXBhY2hlLmhhZG9vcC5oYmFzZS5pcGMuUnBjQ2xpZW50LndyYXBFeGNlcHRpb24oUnBj Q2xpZW50LmphdmE6MTQ4NSkNCj4gICAgICAgICBhdCBvcmcuYXBhY2hlLmhhZG9vcC5oYmFzZS5p cGMuUnBjQ2xpZW50LmNhbGwoUnBjQ2xpZW50LmphdmE6MTQ1NykNCj4gICAgICAgICBhdA0KPiBv cmcuYXBhY2hlLmhhZG9vcC5oYmFzZS5pcGMuUnBjQ2xpZW50LmNhbGxCbG9ja2luZ01ldGhvZChS cGNDbGllbnQuamF2YToxNjU3KQ0KPiAgICAgICAgIC4uLiAyNTQgbW9yZQ0KPiBDYXVzZWQgYnk6 IGphdmEuaW8uRU9GRXhjZXB0aW9uDQo+ICAgICAgICAgYXQgamF2YS5pby5EYXRhSW5wdXRTdHJl YW0ucmVhZEludChEYXRhSW5wdXRTdHJlYW0uamF2YTozNzUpDQo+ICAgICAgICAgYXQNCj4gb3Jn LmFwYWNoZS5oYWRvb3AuaGJhc2UuaXBjLlJwY0NsaWVudCRDb25uZWN0aW9uLnJlYWRSZXNwb25z ZShScGNDbGllbnQuamF2YToxMDcyKQ0KPiAgICAgICAgIGF0DQo+IG9yZy5hcGFjaGUuaGFkb29w LmhiYXNlLmlwYy5ScGNDbGllbnQkQ29ubmVjdGlvbi5ydW4oUnBjQ2xpZW50LmphdmE6NzINCj4g OCkNCj4NCj4NCj4gUmVnYXJkcw0KPiBLQVNISUYNCj4NCj4NCj4gKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiAq KioqKioqKioqKioqKioqKiBUaGlzIGUtbWFpbCBhbmQgYXR0YWNobWVudHMgY29udGFpbiBjb25m aWRlbnRpYWwgDQo+IGluZm9ybWF0aW9uIGZyb20gSFVBV0VJLCB3aGljaCBpcyBpbnRlbmRlZCBv bmx5IGZvciB0aGUgcGVyc29uIG9yIA0KPiBlbnRpdHkgd2hvc2UgYWRkcmVzcyBpcyBsaXN0ZWQg YWJvdmUuIEFueSB1c2Ugb2YgdGhlIGluZm9ybWF0aW9uIA0KPiBjb250YWluZWQgaGVyZWluIGlu IGFueSB3YXkgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvLCB0b3RhbCBvciANCj4gcGFy dGlhbCBkaXNjbG9zdXJlLCByZXByb2R1Y3Rpb24sIG9yDQo+IGRpc3NlbWluYXRpb24pIGJ5IHBl cnNvbnMgb3RoZXIgdGhhbiB0aGUgaW50ZW5kZWQgcmVjaXBpZW50J3MpIGlzIA0KPiBwcm9oaWJp dGVkLiBJZiB5b3UgcmVjZWl2ZSB0aGlzIGUtbWFpbCBpbiBlcnJvciwgcGxlYXNlIG5vdGlmeSB0 aGUgDQo+IHNlbmRlciBieSBwaG9uZSBvciBlbWFpbCBpbW1lZGlhdGVseSBhbmQgZGVsZXRlIGl0 IQ0KPg0KPg0K