Return-Path: X-Original-To: apmail-cloudstack-dev-archive@www.apache.org Delivered-To: apmail-cloudstack-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 6731DF95D for ; Wed, 10 Apr 2013 23:51:36 +0000 (UTC) Received: (qmail 40037 invoked by uid 500); 10 Apr 2013 23:51:32 -0000 Delivered-To: apmail-cloudstack-dev-archive@cloudstack.apache.org Received: (qmail 39993 invoked by uid 500); 10 Apr 2013 23:51:32 -0000 Mailing-List: contact dev-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list dev@cloudstack.apache.org Received: (qmail 39943 invoked by uid 99); 10 Apr 2013 23:51:32 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 10 Apr 2013 23:51:32 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of Edison.su@citrix.com designates 66.165.176.63 as permitted sender) Received: from [66.165.176.63] (HELO SMTP02.CITRIX.COM) (66.165.176.63) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 10 Apr 2013 23:51:26 +0000 X-IronPort-AV: E=Sophos;i="4.87,450,1363132800"; d="scan'208";a="17855970" Received: from sjcpmailmx02.citrite.net ([10.216.14.75]) by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5; 10 Apr 2013 23:51:03 +0000 Received: from SJCPMAILBOX01.citrite.net ([10.216.4.73]) by SJCPMAILMX02.citrite.net ([10.216.14.75]) with mapi; Wed, 10 Apr 2013 16:51:02 -0700 From: Edison Su To: "dev@cloudstack.apache.org" Date: Wed, 10 Apr 2013 16:51:02 -0700 Subject: RE: deployDataCenter.py doesn't work for me on master Thread-Topic: deployDataCenter.py doesn't work for me on master Thread-Index: AQHONU7po2YAfKX+Z0+7LVwUPEsiKJjOuZgAgAFK3wCAAHcrgP//l32AgAAN+ICAAACkoA== Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Virus-Checked: Checked by ClamAV on apache.org SGF2ZSB5b3UgcHJlLWluc3RhbGwgeGVuc2VydmVyIHRlbXBsYXRlIG9uIG5mczovLzE3Mi4xNi4x OTcuMTMxL29wdC9zdG9yYWdlL3NlY29uZGFyeS90ZW1wbGF0ZS90bXBsLzEvMS8/DQoNCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogU29oZWlsIEVpemFkaSBbbWFpbHRvOnNl aXphZGlAaW5mb2Jsb3guY29tXQ0KPiBTZW50OiBXZWRuZXNkYXksIEFwcmlsIDEwLCAyMDEzIDQ6 NDggUE0NCj4gVG86IGRldkBjbG91ZHN0YWNrLmFwYWNoZS5vcmcNCj4gU3ViamVjdDogUmU6IGRl cGxveURhdGFDZW50ZXIucHkgZG9lc24ndCB3b3JrIGZvciBtZSBvbiBtYXN0ZXINCj4NCj4gSSBj cmVhdGVkIGEgem9uZSBteSBob3N0IGlzIGFkZGVkIGJ1dCBzeXN0ZW0gVk0gZmFpbHMgdG8gY29t ZSB1cCwgaXQgbG9va3MNCj4gbGlrZSBhIHByZXZpb3VzIHByb2JsZW06DQo+IGh0dHBzOi8vaXNz dWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvQ0xPVURTVEFDSy0xNDYyDQo+DQo+DQo+IElzIHRo aXMgYSBrbm93biBwcm9ibGVtIG9yIGEgZGlmZmVyZW50IGlzc3VlOg0KPg0KPiBMb2c6DQo+IElO Rk8gIFtjbG91ZC5jb25maWd1cmF0aW9uLkNvbmZpZ3VyYXRpb25NYW5hZ2VySW1wbF0NCj4gKDE4 ODcwNDE1ODBAcXRwLTU2NzUwNjg1Mi04OikgTm8gc3RvcmFnZSB0cmFmZmljIHR5cGUgd2FzIHNw ZWNpZmllZCBieQ0KPiBhZG1pbiwgY3JlYXRlIGRlZmF1bHQgc3RvcmFnZSB0cmFmZmljIG9uIHBo eXNpY2FsIG5ldHdvcmsgMjAwIHdpdGggc2FtZQ0KPiBjb25maWd1cmUgb2YgbWFuYWdlbWVudCB0 cmFmZmljIHR5cGUgSU5GTw0KPiBbY2xvdWQuc2Vjc3RvcmFnZS5QcmVtaXVtU2Vjb25kYXJ5U3Rv cmFnZU1hbmFnZXJJbXBsXQ0KPiAoc2Vjc3RvcmFnZS0xOikgTm8gcnVubmluZyBzZWNvbmRhcnkg c3RvcmFnZSB2bXMgZm91bmQgaW4gZGF0YWNlbnRlciBpZD0xLA0KPiBzdGFydGluZyBvbmUgSU5G TyAgW3N0b3JhZ2Uuc2Vjb25kYXJ5LlNlY29uZGFyeVN0b3JhZ2VNYW5hZ2VySW1wbF0NCj4gKHNl Y3N0b3JhZ2UtMTopIE5vIHN0b3BwZWQgc2Vjb25kYXJ5IHN0b3JhZ2Ugdm0gaXMgYXZhaWxhYmxl LCBuZWVkIHRvDQo+IGFsbG9jYXRlIGEgbmV3IHNlY29uZGFyeSBzdG9yYWdlIHZtIElORk8NCj4g W2Nsb3VkLmNvbnNvbGVwcm94eS5Db25zb2xlUHJveHlNYW5hZ2VySW1wbF0gKGNvbnNvbGVwcm94 eS0xOikgTm8NCj4gc3RvcHBlZCBjb25zb2xlIHByb3h5IGlzIGF2YWlsYWJsZSwgbmVlZCB0byBh bGxvY2F0ZSBhIG5ldyBjb25zb2xlIHByb3h5DQo+IFdBUk4gIFt4ZW4ucmVzb3VyY2UuQ2l0cml4 UmVzb3VyY2VCYXNlXSAoRGlyZWN0QWdlbnQtOTopDQo+IGRlc3RvcnlWRElieU5hbWVMYWJlbCBm YWlsZWQgZHVlIHRvIHRoZXJlIGFyZSAwIFZESXMgd2l0aCBuYW1lDQo+IGNsb3VkLTNhMzVmZmU2 LTdjNWMtNDRiYS05OGM3LWQ3ZjVkNmUwZjAyOA0KPiBXQVJOICBbeGVuLnJlc291cmNlLkNpdHJp eFJlc291cmNlQmFzZV0gKERpcmVjdEFnZW50LTk6KSBjYW4gbm90IGNyZWF0ZQ0KPiB2ZGkgaW4g c3IgZjk1ZjUyZDEtNWMwMC0xN2VhLWE3ZTUtOTczYmE3YjZjMGRlDQo+IFdBUk4gIFt4ZW4ucmVz b3VyY2UuQ2l0cml4UmVzb3VyY2VCYXNlXSAoRGlyZWN0QWdlbnQtOTopIENhdGNoIEV4Y2VwdGlv bg0KPiBjb20uY2xvdWQudXRpbHMuZXhjZXB0aW9uLkNsb3VkUnVudGltZUV4Y2VwdGlvbiBvbiBo b3N0OmY0YmMxNmE5LTI5MWMtDQo+IDRkMmUtYjlmMi1kMDE4Y2FiZDFhNGIgZm9yIHRlbXBsYXRl Og0KPiBuZnM6Ly8xNzIuMTYuMTk3LjEzMS9vcHQvc3RvcmFnZS9zZWNvbmRhcnkvdGVtcGxhdGUv dG1wbC8xLzEvIGR1ZSB0bw0KPiBjb20uY2xvdWQudXRpbHMuZXhjZXB0aW9uLkNsb3VkUnVudGlt ZUV4Y2VwdGlvbjogY2FuIG5vdCBjcmVhdGUgdmRpIGluIHNyDQo+IGY5NWY1MmQxLTVjMDAtMTdl YS1hN2U1LTk3M2JhN2I2YzBkZQ0KPiBjb20uY2xvdWQudXRpbHMuZXhjZXB0aW9uLkNsb3VkUnVu dGltZUV4Y2VwdGlvbjogY2FuIG5vdCBjcmVhdGUgdmRpIGluIHNyDQo+IGY5NWY1MmQxLTVjMDAt MTdlYS1hN2U1LTk3M2JhN2I2YzBkZQ0KPiAgICAgICBhdA0KPiBjb20uY2xvdWQuaHlwZXJ2aXNv ci54ZW4ucmVzb3VyY2UuQ2l0cml4UmVzb3VyY2VCYXNlLmNvcHlfdmhkX2Zyb21fc2VjDQo+IG9u ZGFyDQo+IHlzdG9yYWdlKENpdHJpeFJlc291cmNlQmFzZS5qYXZhOjI5MTQpDQo+ICAgICAgIGF0 DQo+IGNvbS5jbG91ZC5oeXBlcnZpc29yLnhlbi5yZXNvdXJjZS5DaXRyaXhSZXNvdXJjZUJhc2Uu ZXhlY3V0ZShDaXRyaXhSZXNvdQ0KPiByY2UNCj4gQmFzZS5qYXZhOjI5MzYpDQo+ICAgICAgIGF0 DQo+IGNvbS5jbG91ZC5oeXBlcnZpc29yLnhlbi5yZXNvdXJjZS5DaXRyaXhSZXNvdXJjZUJhc2Uu ZXhlY3V0ZVJlcXVlc3QoQ2l0cg0KPiBpeFINCj4gZXNvdXJjZUJhc2UuamF2YTo1MTYpDQo+ICAg ICAgIGF0DQo+IGNvbS5jbG91ZC5oeXBlcnZpc29yLnhlbi5yZXNvdXJjZS5YZW5TZXJ2ZXI1NlJl c291cmNlLmV4ZWN1dGVSZXF1ZXN0KA0KPiBYZW5TZXINCj4gdmVyNTZSZXNvdXJjZS5qYXZhOjcz KQ0KPiAgICAgICBhdA0KPiBjb20uY2xvdWQuYWdlbnQubWFuYWdlci5EaXJlY3RBZ2VudEF0dGFj aGUkVGFzay5ydW4oRGlyZWN0QWdlbnRBdHRhY2hlDQo+IC5qYXZhDQo+IDoxODYpDQo+ICAgICAg IGF0DQo+IGphdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRSdW5uYWJsZUFkYXB0ZXIuY2Fs bChFeGVjdXRvcnMuamF2YTo0MzkpDQo+ICAgICAgIGF0DQo+IGphdmEudXRpbC5jb25jdXJyZW50 LkZ1dHVyZVRhc2skU3luYy5pbm5lclJ1bihGdXR1cmVUYXNrLmphdmE6MzAzKQ0KPiAgICAgICBh dCBqYXZhLnV0aWwuY29uY3VycmVudC5GdXR1cmVUYXNrLnJ1bihGdXR1cmVUYXNrLmphdmE6MTM4 KQ0KPiAgICAgICBhdA0KPiBqYXZhLnV0aWwuY29uY3VycmVudC5TY2hlZHVsZWRUaHJlYWRQb29s RXhlY3V0b3IkU2NoZWR1bGVkRnV0dXJlVGFzay5hYw0KPiBjZXNzDQo+ICQzMDEoU2NoZWR1bGVk VGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6OTgpDQo+ICAgICAgIGF0DQo+IGphdmEudXRpbC5jb25j dXJyZW50LlNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvciRTY2hlZHVsZWRGdXR1cmVUYXNrLnJ1 DQo+IG4oU2MNCj4gaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjIwNikNCj4gICAgICAg YXQNCj4gamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW5U YXNrKFRocmVhZFBvb2xFeGVjdXQNCj4gb3Iuag0KPiBhdmE6ODk1KQ0KPiAgICAgICBhdA0KPiBq YXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQ b29sRXhlY3V0b3IuamENCj4gdmE6DQo+IDkxOCkNCj4gICAgICAgYXQgamF2YS5sYW5nLlRocmVh ZC5ydW4oVGhyZWFkLmphdmE6NjgwKQ0KPiBXQVJOICBbeGVuLnJlc291cmNlLkNpdHJpeFJlc291 cmNlQmFzZV0gKERpcmVjdEFnZW50LTEwOikNCj4gZGVzdG9yeVZESWJ5TmFtZUxhYmVsIGZhaWxl ZCBkdWUgdG8gdGhlcmUgYXJlIDAgVkRJcyB3aXRoIG5hbWUgY2xvdWQtDQo+IGY4YzVmZDU1LTk3 MDMtNDVkMS1iNWY0LTczMmQwNjcxNGQxYw0KPiBXQVJOICBbeGVuLnJlc291cmNlLkNpdHJpeFJl c291cmNlQmFzZV0gKERpcmVjdEFnZW50LTEwOikgY2FuIG5vdCBjcmVhdGUNCj4gdmRpIGluIHNy IGY5NWY1MmQxLTVjMDAtMTdlYS1hN2U1LTk3M2JhN2I2YzBkZQ0KPiBXQVJOICBbeGVuLnJlc291 cmNlLkNpdHJpeFJlc291cmNlQmFzZV0gKERpcmVjdEFnZW50LTEwOikgQ2F0Y2ggRXhjZXB0aW9u DQo+IGNvbS5jbG91ZC51dGlscy5leGNlcHRpb24uQ2xvdWRSdW50aW1lRXhjZXB0aW9uIG9uIGhv c3Q6ZjRiYzE2YTktMjkxYy0NCj4gNGQyZS1iOWYyLWQwMThjYWJkMWE0YiBmb3IgdGVtcGxhdGU6 DQo+IG5mczovLzE3Mi4xNi4xOTcuMTMxL29wdC9zdG9yYWdlL3NlY29uZGFyeS90ZW1wbGF0ZS90 bXBsLzEvMS8gZHVlIHRvDQo+IGNvbS5jbG91ZC51dGlscy5leGNlcHRpb24uQ2xvdWRSdW50aW1l RXhjZXB0aW9uOiBjYW4gbm90IGNyZWF0ZSB2ZGkgaW4gc3INCj4gZjk1ZjUyZDEtNWMwMC0xN2Vh LWE3ZTUtOTczYmE3YjZjMGRlDQo+IGNvbS5jbG91ZC51dGlscy5leGNlcHRpb24uQ2xvdWRSdW50 aW1lRXhjZXB0aW9uOiBjYW4gbm90IGNyZWF0ZSB2ZGkgaW4gc3INCj4gZjk1ZjUyZDEtNWMwMC0x N2VhLWE3ZTUtOTczYmE3YjZjMGRlDQo+ICAgICAgIGF0DQo+IGNvbS5jbG91ZC5oeXBlcnZpc29y Lnhlbi5yZXNvdXJjZS5DaXRyaXhSZXNvdXJjZUJhc2UuY29weV92aGRfZnJvbV9zZWMNCj4gb25k YXINCj4geXN0b3JhZ2UoQ2l0cml4UmVzb3VyY2VCYXNlLmphdmE6MjkxNCkNCj4gICAgICAgYXQN Cj4gY29tLmNsb3VkLmh5cGVydmlzb3IueGVuLnJlc291cmNlLkNpdHJpeFJlc291cmNlQmFzZS5l eGVjdXRlKENpdHJpeFJlc291DQo+IHJjZQ0KPiBCYXNlLmphdmE6MjkzNikNCj4gICAgICAgYXQN Cj4gY29tLmNsb3VkLmh5cGVydmlzb3IueGVuLnJlc291cmNlLkNpdHJpeFJlc291cmNlQmFzZS5l eGVjdXRlUmVxdWVzdChDaXRyDQo+IGl4Ug0KPiBlc291cmNlQmFzZS5qYXZhOjUxNikNCj4gICAg ICAgYXQNCj4gY29tLmNsb3VkLmh5cGVydmlzb3IueGVuLnJlc291cmNlLlhlblNlcnZlcjU2UmVz b3VyY2UuZXhlY3V0ZVJlcXVlc3QoDQo+IFhlblNlcg0KPiB2ZXI1NlJlc291cmNlLmphdmE6NzMp DQo+ICAgICAgIGF0DQo+IGNvbS5jbG91ZC5hZ2VudC5tYW5hZ2VyLkRpcmVjdEFnZW50QXR0YWNo ZSRUYXNrLnJ1bihEaXJlY3RBZ2VudEF0dGFjaGUNCj4gLmphdmENCj4gOjE4NikNCj4gICAgICAg YXQNCj4gamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFJ1bm5hYmxlQWRhcHRlci5jYWxs KEV4ZWN1dG9ycy5qYXZhOjQzOSkNCj4gICAgICAgYXQNCj4gamF2YS51dGlsLmNvbmN1cnJlbnQu RnV0dXJlVGFzayRTeW5jLmlubmVyUnVuKEZ1dHVyZVRhc2suamF2YTozMDMpDQo+ICAgICAgIGF0 IGphdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2sucnVuKEZ1dHVyZVRhc2suamF2YToxMzgp DQo+ICAgICAgIGF0DQo+IGphdmEudXRpbC5jb25jdXJyZW50LlNjaGVkdWxlZFRocmVhZFBvb2xF eGVjdXRvciRTY2hlZHVsZWRGdXR1cmVUYXNrLmFjDQo+IGNlc3MNCj4gJDMwMShTY2hlZHVsZWRU aHJlYWRQb29sRXhlY3V0b3IuamF2YTo5OCkNCj4gICAgICAgYXQNCj4gamF2YS51dGlsLmNvbmN1 cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yJFNjaGVkdWxlZEZ1dHVyZVRhc2sucnUN Cj4gbihTYw0KPiBoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MjA2KQ0KPiAgICAgICBh dA0KPiBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1blRh c2soVGhyZWFkUG9vbEV4ZWN1dA0KPiBvci5qDQo+IGF2YTo4OTUpDQo+ICAgICAgIGF0DQo+IGph dmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBv b2xFeGVjdXRvci5qYQ0KPiB2YToNCj4gOTE4KQ0KPiAgICAgICBhdCBqYXZhLmxhbmcuVGhyZWFk LnJ1bihUaHJlYWQuamF2YTo2ODApDQo+IFdBUk4gIFt4ZW4ucmVzb3VyY2UuQ2l0cml4UmVzb3Vy Y2VCYXNlXSAoRGlyZWN0QWdlbnQtMTI6KQ0KPiBkZXN0b3J5VkRJYnlOYW1lTGFiZWwgZmFpbGVk IGR1ZSB0byB0aGVyZSBhcmUgMCBWRElzIHdpdGggbmFtZSBjbG91ZC0NCj4gOTI2OGI4YjctMzlh OS00ZTlhLWE0ZDMtNDUyNDFlZTBhYTJjDQo+IFdBUk4gIFt4ZW4ucmVzb3VyY2UuQ2l0cml4UmVz b3VyY2VCYXNlXSAoRGlyZWN0QWdlbnQtMTI6KSBjYW4gbm90IGNyZWF0ZQ0KPiB2ZGkgaW4gc3Ig Zjk1ZjUyZDEtNWMwMC0xN2VhLWE3ZTUtOTczYmE3YjZjMGRlDQo+IFdBUk4gIFt4ZW4ucmVzb3Vy Y2UuQ2l0cml4UmVzb3VyY2VCYXNlXSAoRGlyZWN0QWdlbnQtMTI6KSBDYXRjaCBFeGNlcHRpb24N Cj4gY29tLmNsb3VkLnV0aWxzLmV4Y2VwdGlvbi5DbG91ZFJ1bnRpbWVFeGNlcHRpb24gb24gaG9z dDpmNGJjMTZhOS0yOTFjLQ0KPiA0ZDJlLWI5ZjItZDAxOGNhYmQxYTRiIGZvciB0ZW1wbGF0ZToN Cj4gbmZzOi8vMTcyLjE2LjE5Ny4xMzEvb3B0L3N0b3JhZ2Uvc2Vjb25kYXJ5L3RlbXBsYXRlL3Rt cGwvMS8xLyBkdWUgdG8NCj4gY29tLmNsb3VkLnV0aWxzLmV4Y2VwdGlvbi5DbG91ZFJ1bnRpbWVF eGNlcHRpb246IGNhbiBub3QgY3JlYXRlIHZkaSBpbiBzcg0KPiBmOTVmNTJkMS01YzAwLTE3ZWEt YTdlNS05NzNiYTdiNmMwZGUNCj4gY29tLmNsb3VkLnV0aWxzLmV4Y2VwdGlvbi5DbG91ZFJ1bnRp bWVFeGNlcHRpb246IGNhbiBub3QgY3JlYXRlIHZkaSBpbiBzcg0KPiBmOTVmNTJkMS01YzAwLTE3 ZWEtYTdlNS05NzNiYTdiNmMwZGUNCj4gICAgICAgYXQNCj4gY29tLmNsb3VkLmh5cGVydmlzb3Iu eGVuLnJlc291cmNlLkNpdHJpeFJlc291cmNlQmFzZS5jb3B5X3ZoZF9mcm9tX3NlYw0KPiBvbmRh cg0KPiB5c3RvcmFnZShDaXRyaXhSZXNvdXJjZUJhc2UuamF2YToyOTE0KQ0KPiAgICAgICBhdA0K PiBjb20uY2xvdWQuaHlwZXJ2aXNvci54ZW4ucmVzb3VyY2UuQ2l0cml4UmVzb3VyY2VCYXNlLmV4 ZWN1dGUoQ2l0cml4UmVzb3UNCj4gcmNlDQo+IEJhc2UuamF2YToyOTM2KQ0KPiAgICAgICBhdA0K PiBjb20uY2xvdWQuaHlwZXJ2aXNvci54ZW4ucmVzb3VyY2UuQ2l0cml4UmVzb3VyY2VCYXNlLmV4 ZWN1dGVSZXF1ZXN0KENpdHINCj4gaXhSDQo+IGVzb3VyY2VCYXNlLmphdmE6NTE2KQ0KPiAgICAg ICBhdA0KPiBjb20uY2xvdWQuaHlwZXJ2aXNvci54ZW4ucmVzb3VyY2UuWGVuU2VydmVyNTZSZXNv dXJjZS5leGVjdXRlUmVxdWVzdCgNCj4gWGVuU2VyDQo+IHZlcjU2UmVzb3VyY2UuamF2YTo3MykN Cj4gICAgICAgYXQNCj4gY29tLmNsb3VkLmFnZW50Lm1hbmFnZXIuRGlyZWN0QWdlbnRBdHRhY2hl JFRhc2sucnVuKERpcmVjdEFnZW50QXR0YWNoZQ0KPiAuamF2YQ0KPiA6MTg2KQ0KPiAgICAgICBh dA0KPiBqYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUnVubmFibGVBZGFwdGVyLmNhbGwo RXhlY3V0b3JzLmphdmE6NDM5KQ0KPiAgICAgICBhdA0KPiBqYXZhLnV0aWwuY29uY3VycmVudC5G dXR1cmVUYXNrJFN5bmMuaW5uZXJSdW4oRnV0dXJlVGFzay5qYXZhOjMwMykNCj4gICAgICAgYXQg amF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFzay5ydW4oRnV0dXJlVGFzay5qYXZhOjEzOCkN Cj4gICAgICAgYXQNCj4gamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4 ZWN1dG9yJFNjaGVkdWxlZEZ1dHVyZVRhc2suYWMNCj4gY2Vzcw0KPiAkMzAxKFNjaGVkdWxlZFRo cmVhZFBvb2xFeGVjdXRvci5qYXZhOjk4KQ0KPiAgICAgICBhdA0KPiBqYXZhLnV0aWwuY29uY3Vy cmVudC5TY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IkU2NoZWR1bGVkRnV0dXJlVGFzay5ydQ0K PiBuKFNjDQo+IGhlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2YToyMDYpDQo+ICAgICAgIGF0 DQo+IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuVGFz ayhUaHJlYWRQb29sRXhlY3V0DQo+IG9yLmoNCj4gYXZhOjg5NSkNCj4gICAgICAgYXQNCj4gamF2 YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9v bEV4ZWN1dG9yLmphDQo+IHZhOg0KPiA5MTgpDQo+ICAgICAgIGF0IGphdmEubGFuZy5UaHJlYWQu cnVuKFRocmVhZC5qYXZhOjY4MCkNCj4gV0FSTiAgW3hlbi5yZXNvdXJjZS5DaXRyaXhSZXNvdXJj ZUJhc2VdIChEaXJlY3RBZ2VudC0xMjopIFRhc2sgZmFpbGVkIQ0KPiBUYXNrIHJlY29yZDogICAg ICAgICAgICAgICAgIHV1aWQ6IDI2OTM2ZGNmLWI3ZTAtM2NiMS0xMTdhLTU1Mzg2YWZhODdkYg0K PiAgICAgICAgICAgIG5hbWVMYWJlbDogQXN5bmMuVk0uc3RhcnRfb24NCj4gICAgICBuYW1lRGVz Y3JpcHRpb246DQo+ICAgIGFsbG93ZWRPcGVyYXRpb25zOiBbXQ0KPiAgICBjdXJyZW50T3BlcmF0 aW9uczoge30NCj4gICAgICAgICAgICAgIGNyZWF0ZWQ6IFR1ZSBBcHIgMDkgMjI6MDI6MzEgUERU IDIwMTMNCj4gICAgICAgICAgICAgZmluaXNoZWQ6IFR1ZSBBcHIgMDkgMjI6MDI6MzMgUERUIDIw MTMNCj4gICAgICAgICAgICAgICBzdGF0dXM6IGZhaWx1cmUNCj4gICAgICAgICAgIHJlc2lkZW50 T246IGNvbS54ZW5zb3VyY2UueGVuYXBpLkhvc3RAZjAyMGQ4NWUNCj4gICAgICAgICAgICAgcHJv Z3Jlc3M6IDEuMA0KPiAgICAgICAgICAgICAgICAgdHlwZTogPG5vbmUvPg0KPiAgICAgICAgICAg ICAgIHJlc3VsdDoNCj4gICAgICAgICAgICBlcnJvckluZm86IFtUcmFjZWJhY2sgKG1vc3QgcmVj ZW50IGNhbGwgbGFzdCk6LCAgIEZpbGUNCj4gIi91c3IvYmluL3B5Z3J1YiIsIGxpbmUgODA4LCBp biA/LCAgICAgZnMgPSBmc2ltYWdlLm9wZW4oZmlsZSwNCj4gcGFydF9vZmZzWzBdLCBib290ZnNv cHRpb25zKSwgSU9FcnJvcjogW0Vycm5vIDk1XSBPcGVyYXRpb24gbm90IHN1cHBvcnRlZCwgXQ0K PiAgICAgICAgICBvdGhlckNvbmZpZzoge30NCj4gICAgICAgICAgICBzdWJ0YXNrT2Y6IGNvbS54 ZW5zb3VyY2UueGVuYXBpLlRhc2tAYWFmMTNmNmYNCj4gICAgICAgICAgICAgc3VidGFza3M6IFtd DQo+DQo+DQo+DQo+DQo+DQo+IE9uIDQvMTAvMTMgMzo1OCBQTSwgIlNvaGVpbCBFaXphZGkiIDxz ZWl6YWRpQGluZm9ibG94LmNvbT4gd3JvdGU6DQo+DQo+ID5UaGFua3MsDQo+ID5JIGNhbiBidWls ZCBhbmQgcnVuIHRoZSBNUyBub3cuIEkgZ2V0IHRoZSBHVUkgdXAsIGlmIEkgcnVuIHRoaXMgYnVp bGQNCj4gPnRhcmdldCBhZnRlciB0aGUgTVMgaXMgcnVubmluZyB0aGlzIHdoYXQgSSBnZXQ6DQo+ ID5BZG1pbmlzdHJhdG9ycy1NYWNCb29rLVByby03OmNsb3Vkc3RhY2sgc2VpemFkaSQgbXZuIC1Q IGRldmVsb3BlciAtcGwNCj4gPnRvb2xzL2RldmNsb3VkIC1EZGVwbG95c3ZyDQo+ID5FUlJPUjog dHJhbnNwb3J0IGVycm9yIDIwMjogYmluZCBmYWlsZWQ6IEFkZHJlc3MgYWxyZWFkeSBpbiB1c2UN Cj4gPkVSUk9SOiBKRFdQIFRyYW5zcG9ydCBkdF9zb2NrZXQgZmFpbGVkIHRvIGluaXRpYWxpemUs DQo+ID5UUkFOU1BPUlRfSU5JVCg1MTApIEpEV1AgZXhpdCBlcnJvcg0KPiBBR0VOVF9FUlJPUl9U UkFOU1BPUlRfSU5JVCgxOTcpOiBObw0KPiA+dHJhbnNwb3J0cyBpbml0aWFsaXplZCBbLi4vLi4v Li4vc3JjL3NoYXJlL2JhY2svZGVidWdJbml0LmM6NjkwXQ0KPiA+RkFUQUwgRVJST1IgaW4gbmF0 aXZlIG1ldGhvZDogSkRXUCBObyB0cmFuc3BvcnRzIGluaXRpYWxpemVkLA0KPiA+anZtdGlFcnJv cj1BR0VOVF9FUlJPUl9UUkFOU1BPUlRfSU5JVCgxOTcpDQo+ID5BYm9ydCB0cmFwOiA2DQo+ID4N Cj4gPg0KPiA+DQo+ID5BbHNvIGl0IHNlZW1zIHRoYXQgTWF2ZW4gT3B0aW9ucyBpcyBub3QgcGFy dCBvZiB0aGUgaW5zdHJ1Y3Rpb25zIGFueW1vcmUhDQo+ID5JIGFzc3VtZSB0aGVzZSBzdGlsbCBu ZWVkZWQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBpbnN0cnVjdGlvbnM6DQo+ID4kIGV4cG9y dCBNQVZFTl9PUFRTPSItWG14MmcgLVhYOk1heFBlcm1TaXplPTUxMm0gLVhkZWJ1Zw0KPiA+LVhy dW5qZHdwOnRyYW5zcG9ydD1kdF9zb2NrZXQsYWRkcmVzcz04Nzg3LHNlcnZlcj15LHN1c3BlbmQ9 biINCj4gPg0KPiA+LVNvaGVpbA0KPiA+DQo+ID4NCj4gPk9uIDQvMTAvMTMgMzoxMiBQTSwgIkNo aXJhZGVlcCBWaXR0YWwiIDxDaGlyYWRlZXAuVml0dGFsQGNpdHJpeC5jb20+DQo+ID53cm90ZToN Cj4gPg0KPiA+PlNvaGVpbCwgdGhlIGluc3RydWN0aW9ucyBhcHBlYXIgdG8gYmUgb3V0IG9mIG9y ZGVyLg0KPiA+PkZpcnN0IHlvdSBuZWVkIHRvIHJ1biB0aGUgY2xvdWRzdGFjayBzZXJ2ZXIgbXZu IC1wbCA6Y2xvdWQtY2xpZW50LXVpDQo+ID4+amV0dHk6cnVuDQo+ID4+DQo+ID4+V2FpdCBmb3Ig dGhlIGNvbnNvbGUgbG9ncyB0byBzdG9wIHNwZXdpbmcNCj4gPj4NCj4gPj5USEVOIGRlcGxveQ0K PiA+Pm12biAtUCBkZXZlbG9wZXIgLXBsIHRvb2xzL2RldmNsb3VkIC1EZGVwbG95c3ZyDQo+ID4+ DQo+ID4+DQo+ID4+DQo+ID4+T24gNC8xMC8xMyAzOjA1IFBNLCAiU29oZWlsIEVpemFkaSIgPHNl aXphZGlAaW5mb2Jsb3guY29tPiB3cm90ZToNCj4gPj4NCj4gPj4+SSBwdWxsZWQgdGhlIHRvcCBv ZiB0cnVuayB0b2RheSBhbmQgaGFkIHRoaXMgc2FtZSBpc3N1ZS4NCj4gPj4+JCBnaXQgY2xvbmUg aHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmL2Nsb3Vkc3RhY2suZ2l0DQo+ ID4+Pg0KPiA+Pj4NCj4gPj4+SSBmb2xsb3dlZCB0aGUgaW5zdHJ1Y3Rpb24gaGVyZSB0byBidWls ZDoNCj4gPj4+aHR0cDovL2Nsb3Vkc3RhY2suYXBhY2hlLm9yZy9kZXZlbG9wL2Vudmlyb25tZW50 Lmh0bWwNCj4gPj4+DQo+ID4+Pg0KPiA+Pj5JIGFtIG5ldyB0byBDbG91ZFN0YWNrIGlmIHRoZXJl IGlzIGEgbW9yZSBzdGFibGUgYnJhbmNoIEkgc2hvdWxkIGJlDQo+ID4+Pndvcmtpbmcgb24gcGxl YXNlIGxldCBtZSBrbm93Lg0KPiA+Pj4tU29oZWlsDQo+ID4+Pg0KPiA+Pj5Mb2c6DQo+ID4+PkFk bWluaXN0cmF0b3JzLU1hY0Jvb2stUHJvLTc6Y2xvdWRzdGFjayBzZWl6YWRpJCBtdm4gLVAgZGV2 ZWxvcGVyIC1wbA0KPiA+Pj50b29scy9kZXZjbG91ZCAtRGRlcGxveXN2ciBMaXN0ZW5pbmcgZm9y IHRyYW5zcG9ydCBkdF9zb2NrZXQgYXQNCj4gPj4+YWRkcmVzczogODc4NyBbSU5GT10gU2Nhbm5p bmcgZm9yIHByb2plY3RzLi4uDQo+ID4+PltJTkZPXQ0KPiA+Pj4NCj4gPj4+W0lORk9dDQo+ID4+ Pi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPiA+Pj4tLS0gW0lORk9dIEJ1aWxkaW5nIEFwYWNoZSBDbG91ZFN0YWNr IERldkNsb3VkIDQuMi4wLVNOQVBTSE9UIFtJTkZPXQ0KPiA+Pj4tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPj4+ LS0tDQo+ID4+PltJTkZPXQ0KPiA+Pj5bSU5GT10gLS0tIG1hdmVuLXJlbW90ZS1yZXNvdXJjZXMt cGx1Z2luOjEuMzpwcm9jZXNzIChkZWZhdWx0KSBADQo+ID4+PmNsb3VkLWRldmNsb3VkIC0tLSBb SU5GT10gW0lORk9dIC0tLQ0KPiA+Pj5tYXZlbi1zaXRlLXBsdWdpbjozLjE6YXR0YWNoLWRlc2Ny aXB0b3IgKGF0dGFjaC1kZXNjcmlwdG9yKSBADQo+ID4+PmNsb3VkLWRldmNsb3VkIC0tLSBbSU5G T10gW0lORk9dIC0tLSBleGVjLW1hdmVuLXBsdWdpbjoxLjIuMTpleGVjDQo+ID4+PihkZWZhdWx0 KSBAIGNsb3VkLWRldmNsb3VkIC0tLSBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6 DQo+ID4+PiAgRmlsZSAiLi4vbWFydmluL21hcnZpbi9kZXBsb3lEYXRhQ2VudGVyLnB5IiwgbGlu ZSA0NzAsIGluIDxtb2R1bGU+DQo+ID4+PiAgICBkZXBsb3kuZGVwbG95KCkNCj4gPj4+ICBGaWxl ICIuLi9tYXJ2aW4vbWFydmluL2RlcGxveURhdGFDZW50ZXIucHkiLCBsaW5lIDQ1MywgaW4gZGVw bG95DQo+ID4+PiAgICBzZWxmLmxvYWRDZmcoKQ0KPiA+Pj4gIEZpbGUgIi4uL21hcnZpbi9tYXJ2 aW4vZGVwbG95RGF0YUNlbnRlci5weSIsIGxpbmUgNDA5LCBpbiBsb2FkQ2ZnDQo+ID4+PiAgICBh cGlLZXksIHNlY3VyaXR5S2V5ID0gc2VsZi5yZWdpc3RlckFwaUtleSgpDQo+ID4+PiAgRmlsZSAi Li4vbWFydmluL21hcnZpbi9kZXBsb3lEYXRhQ2VudGVyLnB5IiwgbGluZSAzNDksIGluDQo+ID4+ PnJlZ2lzdGVyQXBpS2V5DQo+ID4+PiAgICBsaXN0dXNlclJlcyA9IHNlbGYudGVzdENsaWVudC5n ZXRBcGlDbGllbnQoKS5saXN0VXNlcnMobGlzdHVzZXIpDQo+ID4+PiAgRmlsZQ0KPiA+Pj4iL1Vz ZXJzL3NlaXphZGkvY2xvdWRzdGFjay9jbG91ZHN0YWNrL3Rvb2xzL21hcnZpbi9tYXJ2aW4vY2xv dWRzdGFja0ENCj4gPj4+UEkvDQo+ID4+PmMNCj4gPj4+bA0KPiA+Pj5vDQo+ID4+PnVkc3RhY2tB UElDbGllbnQucHkiLCBsaW5lIDQyNiwgaW4gbGlzdFVzZXJzDQo+ID4+PiAgICByZXNwb25zZSA9 IHNlbGYuY29ubmVjdGlvbi5tYWtlX3JlcXVlc3QoY29tbWFuZCwgcmVzcG9uc2UpDQo+ID4+PiAg RmlsZQ0KPiA+Pj4iL1VzZXJzL3NlaXphZGkvY2xvdWRzdGFjay9jbG91ZHN0YWNrL3Rvb2xzL21h cnZpbi9tYXJ2aW4vY2xvdWRzdGFja0MNCj4gPj4+b25uDQo+ID4+PmUNCj4gPj4+Yw0KPiA+Pj50 DQo+ID4+Pmlvbi5weSIsIGxpbmUgMTc2LCBpbiBtYWtlX3JlcXVlc3QNCj4gPj4+ICAgIHJlc3Vs dCA9IHNlbGYubWFrZV9yZXF1ZXN0X3dpdGhvdXRfYXV0aChjb21tYW5kTmFtZSwgcmVxdWVzdHMp DQo+ID4+PiAgRmlsZQ0KPiA+Pj4iL1VzZXJzL3NlaXphZGkvY2xvdWRzdGFjay9jbG91ZHN0YWNr L3Rvb2xzL21hcnZpbi9tYXJ2aW4vY2xvdWRzdGFja0MNCj4gPj4+b25uDQo+ID4+PmUNCj4gPj4+ Yw0KPiA+Pj50DQo+ID4+Pmlvbi5weSIsIGxpbmUgMTA3LCBpbiBtYWtlX3JlcXVlc3Rfd2l0aG91 dF9hdXRoDQo+ID4+PiAgICBzZWxmLmNvbm5lY3Rpb24gPQ0KPiA+Pj51cmxsaWIyLnVybG9wZW4o IiVzOi8vJXM6JWQlcz8lcyIlKHNlbGYucHJvdG9jb2wsDQo+ID4+PnNlbGYubWd0U3ZyLCBzZWxm LnBvcnQsIHNlbGYucGF0aCwgcmVxdWVzdFVybCkpDQo+ID4+PiAgRmlsZQ0KPiA+Pj4iL1N5c3Rl bS9MaWJyYXJ5L0ZyYW1ld29ya3MvUHl0aG9uLmZyYW1ld29yay9WZXJzaW9ucy8yLjcvbGliL3B5 dGgNCj4gb24yDQo+ID4+Pi43Lw0KPiA+Pj51DQo+ID4+PnINCj4gPj4+bA0KPiA+Pj5saWIyLnB5 IiwgbGluZSAxMjYsIGluIHVybG9wZW4NCj4gPj4+ICAgIHJldHVybiBfb3BlbmVyLm9wZW4odXJs LCBkYXRhLCB0aW1lb3V0KQ0KPiA+Pj4gIEZpbGUNCj4gPj4+Ii9TeXN0ZW0vTGlicmFyeS9GcmFt ZXdvcmtzL1B5dGhvbi5mcmFtZXdvcmsvVmVyc2lvbnMvMi43L2xpYi9weXRoDQo+IG9uMg0KPiA+ Pj4uNy8NCj4gPj4+dQ0KPiA+Pj5yDQo+ID4+PmwNCj4gPj4+bGliMi5weSIsIGxpbmUgMzk0LCBp biBvcGVuDQo+ID4+PiAgICByZXNwb25zZSA9IHNlbGYuX29wZW4ocmVxLCBkYXRhKQ0KPiA+Pj4g IEZpbGUNCj4gPj4+Ii9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1B5dGhvbi5mcmFtZXdvcmsv VmVyc2lvbnMvMi43L2xpYi9weXRoDQo+IG9uMg0KPiA+Pj4uNy8NCj4gPj4+dQ0KPiA+Pj5yDQo+ ID4+PmwNCj4gPj4+bGliMi5weSIsIGxpbmUgNDEyLCBpbiBfb3Blbg0KPiA+Pj4gICAgJ19vcGVu JywgcmVxKQ0KPiA+Pj4gIEZpbGUNCj4gPj4+Ii9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1B5 dGhvbi5mcmFtZXdvcmsvVmVyc2lvbnMvMi43L2xpYi9weXRoDQo+IG9uMg0KPiA+Pj4uNy8NCj4g Pj4+dQ0KPiA+Pj5yDQo+ID4+PmwNCj4gPj4+bGliMi5weSIsIGxpbmUgMzcyLCBpbiBfY2FsbF9j aGFpbg0KPiA+Pj4gICAgcmVzdWx0ID0gZnVuYygqYXJncykNCj4gPj4+ICBGaWxlDQo+ID4+PiIv U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9QeXRob24uZnJhbWV3b3JrL1ZlcnNpb25zLzIuNy9s aWIvcHl0aA0KPiBvbjINCj4gPj4+LjcvDQo+ID4+PnUNCj4gPj4+cg0KPiA+Pj5sDQo+ID4+Pmxp YjIucHkiLCBsaW5lIDExOTksIGluIGh0dHBfb3Blbg0KPiA+Pj4gICAgcmV0dXJuIHNlbGYuZG9f b3BlbihodHRwbGliLkhUVFBDb25uZWN0aW9uLCByZXEpDQo+ID4+PiAgRmlsZQ0KPiA+Pj4iL1N5 c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvUHl0aG9uLmZyYW1ld29yay9WZXJzaW9ucy8yLjcvbGli L3B5dGgNCj4gb24yDQo+ID4+Pi43Lw0KPiA+Pj51DQo+ID4+PnINCj4gPj4+bA0KPiA+Pj5saWIy LnB5IiwgbGluZSAxMTc0LCBpbiBkb19vcGVuDQo+ID4+PiAgICByYWlzZSBVUkxFcnJvcihlcnIp DQo+ID4+PnVybGxpYjIuVVJMRXJyb3I6IDx1cmxvcGVuIGVycm9yIFtFcnJubyA2MV0gQ29ubmVj dGlvbiByZWZ1c2VkPg0KPiA+Pj5bSU5GT10NCj4gPj4+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4+Pi0tLQ0K PiA+Pj5bSU5GT10gQlVJTEQgRkFJTFVSRQ0KPiA+Pj5bSU5GT10NCj4gPj4+LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+ID4+Pi0tLQ0KPiA+Pj5bSU5GT10gVG90YWwgdGltZTogOC40MjdzDQo+ID4+PltJTkZPXSBG aW5pc2hlZCBhdDogV2VkIEFwciAxMCAxMjoyMToyNiBQRFQgMjAxMyBbSU5GT10gRmluYWwgTWVt b3J5Og0KPiA+Pj4yMU0vODFNIFtJTkZPXQ0KPiA+Pj4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPj4+LS0tDQo+ ID4+PltFUlJPUl0gRmFpbGVkIHRvIGV4ZWN1dGUgZ29hbA0KPiA+Pj5vcmcuY29kZWhhdXMubW9q bzpleGVjLW1hdmVuLXBsdWdpbjoxLjIuMTpleGVjIChkZWZhdWx0KSBvbiBwcm9qZWN0DQo+ID4+ PmNsb3VkLWRldmNsb3VkOiBDb21tYW5kIGV4ZWN1dGlvbiBmYWlsZWQuIFByb2Nlc3MgZXhpdGVk IHdpdGggYW4gZXJyb3I6DQo+ID4+PjENCj4gPj4+KEV4aXQgdmFsdWU6IDEpIC0+IFtIZWxwIDFd DQo+ID4+PltFUlJPUl0NCj4gPj4+W0VSUk9SXSBUbyBzZWUgdGhlIGZ1bGwgc3RhY2sgdHJhY2Ug b2YgdGhlIGVycm9ycywgcmUtcnVuIE1hdmVuIHdpdGgNCj4gPj4+dGhlIC1lIHN3aXRjaC4NCj4g Pj4+W0VSUk9SXSBSZS1ydW4gTWF2ZW4gdXNpbmcgdGhlIC1YIHN3aXRjaCB0byBlbmFibGUgZnVs bCBkZWJ1ZyBsb2dnaW5nLg0KPiA+Pj5bRVJST1JdDQo+ID4+PltFUlJPUl0gRm9yIG1vcmUgaW5m b3JtYXRpb24gYWJvdXQgdGhlIGVycm9ycyBhbmQgcG9zc2libGUgc29sdXRpb25zLA0KPiA+Pj5w bGVhc2UgcmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGVzOg0KPiA+Pj5bRVJST1JdIFtIZWxwIDFd DQo+ID4+Pmh0dHA6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9N b2pvRXhlY3V0aW9uRXhjDQo+IGVwdGkNCj4gPj4+b24NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4NCj4g Pj4+DQo+ID4+Pg0KPiA+Pj5PbiA0LzkvMTMgMTI6MjEgUE0sICJNaWtlIFR1dGtvd3NraSIgPG1p a2UudHV0a293c2tpQHNvbGlkZmlyZS5jb20+DQo+ID4+Pndyb3RlOg0KPiA+Pj4NCj4gPj4+Pk15 IG1pc3Rha2UuLi5vbmNlIEkgdXBkYXRlZCBteSByZW1vdGUgcmVwbyB0bw0KPiA+Pj4+aHR0cHM6 Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmL2Nsb3Vkc3RhY2suZ2l0IGFuZA0KPiA+ Pj4+ZmV0Y2hlZC9tZXJnZWQsDQo+ID4+Pj5EZXZDbG91ZDIgd29ya2VkIGFnYWluLg0KPiA+Pj4+ DQo+ID4+Pj4NCj4gPj4+Pk9uIFR1ZSwgQXByIDksIDIwMTMgYXQgMTI6MjAgUE0sIE1pa2UgVHV0 a293c2tpIDwNCj4gPj4+Pm1pa2UudHV0a293c2tpQHNvbGlkZmlyZS5jb20+IHdyb3RlOg0KPiA+ Pj4+DQo+ID4+Pj4+IEhpLA0KPiA+Pj4+Pg0KPiA+Pj4+PiBBbnkgdGhvdWdodHMgb24gdGhpcz8N Cj4gPj4+Pj4NCj4gPj4+Pj4gSSdtIHRyeWluZyB0byBzZXQgdXAgRGV2Q2xvdWQyIGJ5IHJ1bm5p bmcgZGVwbG95RGF0YUNlbnRlciAoYmVsb3cpDQo+ID4+Pj4+YW5kIGdldCAgYSBIVFRQIDUzMCBi YWNrLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBJIGV2ZW4gcmUtaW5zdGFsbGVkIHRoZSBEZXZDbG91ZDIg YXBwbGlhbmNlIHRvIGJlIHN1cmUgdGhlcmUNCj4gPj4+Pj4gd2Fzbid0IHNvbWV0aGluZyB3ZWly ZCBnb2luZyBvbiB3aXRoIGl0cyBjdXJyZW50IHN0YXRlLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGlz IHdvcmtzIGZvciBtZSBvbiA0LjEuDQo+ID4+Pj4+DQo+ID4+Pj4+IFRoYW5rcyENCj4gPj4+Pj4N Cj4gPj4+Pj4gbXR1dGtvd3NraS1MVDppbmN1YmF0b3ItY2xvdWRzdGFjayBtdHV0a293c2tpJCBj ZCB0b29scy9kZXZjbG91ZCA7DQo+ID4+Pj4+cHl0aG9uICAuLi9tYXJ2aW4vbWFydmluL2RlcGxv eURhdGFDZW50ZXIucHkgLWkgZGV2Y2xvdWQuY2ZnDQo+ID4+Pj4+VHJhY2ViYWNrIChtb3N0IHJl Y2VudCBjYWxsIGxhc3QpOg0KPiA+Pj4+PiAgIEZpbGUgIi4uL21hcnZpbi9tYXJ2aW4vZGVwbG95 RGF0YUNlbnRlci5weSIsIGxpbmUgNDU1LCBpbiA8bW9kdWxlPg0KPiA+Pj4+PiAgICAgZGVwbG95 LmRlcGxveSgpDQo+ID4+Pj4+ICAgRmlsZSAiLi4vbWFydmluL21hcnZpbi9kZXBsb3lEYXRhQ2Vu dGVyLnB5IiwgbGluZSA0NDAsIGluIGRlcGxveQ0KPiA+Pj4+PiAgICAgc2VsZi5jcmVhdGVab25l cyhzZWxmLmNvbmZpZy56b25lcykNCj4gPj4+Pj4gICBGaWxlICIuLi9tYXJ2aW4vbWFydmluL2Rl cGxveURhdGFDZW50ZXIucHkiLCBsaW5lIDMxMiwgaW4NCj4gPj4+Pj5jcmVhdGVab25lcw0KPiA+ Pj4+PiAgICAgc2VsZi5jcmVhdGVwb2RzKHpvbmUucG9kcywgem9uZUlkLCBuZXR3b3JraWQpDQo+ ID4+Pj4+ICAgRmlsZSAiLi4vbWFydmluL21hcnZpbi9kZXBsb3lEYXRhQ2VudGVyLnB5IiwgbGlu ZSAxMDksIGluDQo+ID4+Pj4+Y3JlYXRlcG9kcw0KPiA+Pj4+PiAgICAgc2VsZi5jcmVhdGVDbHVz dGVycyhwb2QuY2x1c3RlcnMsIHpvbmVJZCwgcG9kSWQpDQo+ID4+Pj4+ICAgRmlsZSAiLi4vbWFy dmluL21hcnZpbi9kZXBsb3lEYXRhQ2VudGVyLnB5IiwgbGluZSA3MywgaW4NCj4gPj4+Pj5jcmVh dGVDbHVzdGVycw0KPiA+Pj4+PiAgICAgY2x1c3Rlci5oeXBlcnZpc29yKQ0KPiA+Pj4+PiAgIEZp bGUgIi4uL21hcnZpbi9tYXJ2aW4vZGVwbG95RGF0YUNlbnRlci5weSIsIGxpbmUgNTMsIGluIGFk ZEhvc3RzDQo+ID4+Pj4+ICAgICBzZWxmLmFwaUNsaWVudC5hZGRIb3N0KGhvc3RjbWQpDQo+ID4+ Pj4+ICAgRmlsZQ0KPiA+Pj4+Pg0KPiA+Pj4+PiIvVXNlcnMvbXR1dGtvd3NraS9Eb2N1bWVudHMv Q2xvdWRTdGFjay9zcmMvaW5jdWJhdG9yLQ0KPiBjbG91ZHN0YWNrL3RvDQo+ID4+Pj4+b2xzDQo+ ID4+Pj4+Lw0KPiA+Pj4+Pm0NCj4gPj4+Pj5hDQo+ID4+Pj4+cnZpbi9tYXJ2aW4vY2xvdWRzdGFj a0FQSS9jbG91ZHN0YWNrQVBJQ2xpZW50LnB5IiwNCj4gPj4+Pj4gbGluZSAxMTg5LCBpbiBhZGRI b3N0DQo+ID4+Pj4+ICAgICByZXNwb25zZSA9IHNlbGYuY29ubmVjdGlvbi5tYWtlX3JlcXVlc3Qo Y29tbWFuZCwgcmVzcG9uc2UpDQo+ID4+Pj4+ICAgRmlsZQ0KPiA+Pj4+Pg0KPiA+Pj4+PiIvVXNl cnMvbXR1dGtvd3NraS9Eb2N1bWVudHMvQ2xvdWRTdGFjay9zcmMvaW5jdWJhdG9yLQ0KPiBjbG91 ZHN0YWNrL3RvDQo+ID4+Pj4+b2xzDQo+ID4+Pj4+Lw0KPiA+Pj4+Pm0NCj4gPj4+Pj5hDQo+ID4+ Pj4+cnZpbi9tYXJ2aW4vY2xvdWRzdGFja0Nvbm5lY3Rpb24ucHkiLA0KPiA+Pj4+PiBsaW5lIDE3 NCwgaW4gbWFrZV9yZXF1ZXN0DQo+ID4+Pj4+ICAgICByZXN1bHQgPSBzZWxmLm1ha2VfcmVxdWVz dF93aXRoX2F1dGgoY29tbWFuZE5hbWUsIHJlcXVlc3RzKQ0KPiA+Pj4+PiAgIEZpbGUNCj4gPj4+ Pj4NCj4gPj4+Pj4iL1VzZXJzL210dXRrb3dza2kvRG9jdW1lbnRzL0Nsb3VkU3RhY2svc3JjL2lu Y3ViYXRvci0NCj4gY2xvdWRzdGFjay90bw0KPiA+Pj4+Pm9scw0KPiA+Pj4+Pi8NCj4gPj4+Pj5t DQo+ID4+Pj4+YQ0KPiA+Pj4+PnJ2aW4vbWFydmluL2Nsb3Vkc3RhY2tDb25uZWN0aW9uLnB5IiwN Cj4gPj4+Pj4gbGluZSA4OCwgaW4gbWFrZV9yZXF1ZXN0X3dpdGhfYXV0aA0KPiA+Pj4+PiAgICAg cmFpc2UgZQ0KPiA+Pj4+PiB1cmxsaWIyLkhUVFBFcnJvcjogSFRUUCBFcnJvciA1MzA6IDUzMA0K PiA+Pj4+Pg0KPiA+Pj4+PiAtLQ0KPiA+Pj4+PiAqTWlrZSBUdXRrb3dza2kqDQo+ID4+Pj4+ICpT ZW5pb3IgQ2xvdWRTdGFjayBEZXZlbG9wZXIsIFNvbGlkRmlyZSBJbmMuKg0KPiA+Pj4+PiBlOiBt aWtlLnR1dGtvd3NraUBzb2xpZGZpcmUuY29tDQo+ID4+Pj4+IG86IDMwMy43NDYuNzMwMg0KPiA+ Pj4+PiBBZHZhbmNpbmcgdGhlIHdheSB0aGUgd29ybGQgdXNlcyB0aGUNCj4gPj4+Pj5jbG91ZDxo dHRwOi8vc29saWRmaXJlLmNvbS9zb2x1dGlvbi9vdmVydmlldy8/dmlkZW89cGxheT4NCj4gPj4+ Pj4gKsKBKg0KPiA+Pj4+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+LS0NCj4gPj4+ PipNaWtlIFR1dGtvd3NraSoNCj4gPj4+PipTZW5pb3IgQ2xvdWRTdGFjayBEZXZlbG9wZXIsIFNv bGlkRmlyZSBJbmMuKg0KPiA+Pj4+ZTogbWlrZS50dXRrb3dza2lAc29saWRmaXJlLmNvbQ0KPiA+ Pj4+bzogMzAzLjc0Ni43MzAyDQo+ID4+Pj5BZHZhbmNpbmcgdGhlIHdheSB0aGUgd29ybGQgdXNl cyB0aGUNCj4gPj4+PmNsb3VkPGh0dHA6Ly9zb2xpZGZpcmUuY29tL3NvbHV0aW9uL292ZXJ2aWV3 Lz92aWRlbz1wbGF5Pg0KPiA+Pj4+KsKBKg0KPiA+Pj4NCj4gPj4NCj4gPg0KDQo=