Return-Path: X-Original-To: apmail-cordova-dev-archive@www.apache.org Delivered-To: apmail-cordova-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 0AF8817616 for ; Mon, 20 Apr 2015 15:46:53 +0000 (UTC) Received: (qmail 23970 invoked by uid 500); 20 Apr 2015 15:46:50 -0000 Delivered-To: apmail-cordova-dev-archive@cordova.apache.org Received: (qmail 23934 invoked by uid 500); 20 Apr 2015 15:46:50 -0000 Mailing-List: contact dev-help@cordova.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cordova.apache.org Delivered-To: mailing list dev@cordova.apache.org Received: (qmail 23914 invoked by uid 99); 20 Apr 2015 15:46:50 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 20 Apr 2015 15:46:50 +0000 X-ASF-Spam-Status: No, hits=1.3 required=5.0 tests=RCVD_ILLEGAL_IP,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: message received from 54.76.25.247 which is an MX secondary for dev@cordova.apache.org) Received: from [54.76.25.247] (HELO mx1-eu-west.apache.org) (54.76.25.247) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 20 Apr 2015 15:46:23 +0000 Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0113.outbound.protection.outlook.com [157.56.110.113]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with ESMTPS id B289125F47 for ; Mon, 20 Apr 2015 15:46:21 +0000 (UTC) Received: from BY1PR0301MB1317.namprd03.prod.outlook.com (0.161.206.25) by BY1PR0301MB1238.namprd03.prod.outlook.com (0.161.203.22) with Microsoft SMTP Server (TLS) id 15.1.136.25; Mon, 20 Apr 2015 15:45:51 +0000 Received: from BN3PR0301CA0035.namprd03.prod.outlook.com (0.160.180.173) by BY1PR0301MB1317.namprd03.prod.outlook.com (0.161.206.25) with Microsoft SMTP Server (TLS) id 15.1.148.15; Mon, 20 Apr 2015 15:45:50 +0000 Received: from BL2FFO11OLC003.protection.gbl (2a01:111:f400:7c09::176) by BN3PR0301CA0035.outlook.office365.com (2a01:111:e400:4000::45) with Microsoft SMTP Server (TLS) id 15.1.136.25 via Frontend Transport; Mon, 20 Apr 2015 15:45:50 +0000 Authentication-Results: spf=pass (sender IP is 206.191.228.164) smtp.mailfrom=microsoft.com; cordova.apache.org; dkim=none (message not signed) header.d=none; Received-SPF: Pass (protection.outlook.com: domain of microsoft.com designates 206.191.228.164 as permitted sender) receiver=protection.outlook.com; client-ip=206.191.228.164; helo=064-smtp-out.microsoft.com; Received: from 064-smtp-out.microsoft.com (206.191.228.164) by BL2FFO11OLC003.mail.protection.outlook.com (10.173.161.187) with Microsoft SMTP Server (TLS) id 15.1.148.11 via Frontend Transport; Mon, 20 Apr 2015 15:45:48 +0000 Received: from SINPRD3002MB007.064d.mgd.msft.net ([169.254.1.36]) by SINPRD3002HT002.064d.mgd.msft.net ([141.251.55.15]) with mapi id 14.16.0478.000; Mon, 20 Apr 2015 15:45:45 +0000 From: "Vladimir Kotikov (Akvelon)" To: "dev@cordova.apache.org" Subject: RE: Proposal: Expose check_reqs at the CLI level Thread-Topic: Proposal: Expose check_reqs at the CLI level Thread-Index: AdB2GlWXKU3z26GJQHGbYHjZne6ESgAE9WbQABFxcoAAA9UYgAAUH+2AABDmG5AAAdUXgAAbh4EAAAHbDQAA2bHjMAAg8Pmg Date: Mon, 20 Apr 2015 15:45:44 +0000 Message-ID: References: <957F1ECDA90E004B8DBDE23CFC94E3A3D2CE9F95@XMB111CNC.rim.net> <957F1ECDA90E004B8DBDE23CFC94E3A3D2CF8316@XMB112CNC.rim.net> <85A3E123BABF314D9D3656D0B4181256448F7515@FMSMSX103.amr.corp.intel.com> <957F1ECDA90E004B8DBDE23CFC94E3A3D2D0D51C@XMB111CNC.rim.net> In-Reply-To: Accept-Language: ru-RU, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [109.60.135.109] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:206.191.228.164;CTRY:US;IPV:NLI;EFV:NLI;BMV:1;SFV:NSPM;SFS:(10019020)(6009001)(438002)(479174004)(51704005)(252514010)(13464003)(189002)(199003)(377454003)(57704003)(24454002)(50986999)(102836002)(15975445007)(86146001)(92566002)(50466002)(104016003)(93886004)(22756005)(76176999)(22746005)(54356999)(55846006)(2900100001)(106466001)(87936001)(33656002)(2656002)(2501003)(2950100001)(2920100001)(561944003)(23676002)(46102003)(110136001)(19580405001)(19580395003)(66066001)(86362001)(47776003)(450100001)(6806004)(77156002)(62966003)(107886001)(2351001)(79686002)(134885004);DIR:OUT;SFP:1102;SCL:1;SRVR:BY1PR0301MB1317;H:064-smtp-out.microsoft.com;FPR:;SPF:Pass;MLV:sfv;MX:1;A:1;LANG:en; X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0301MB1317;UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0301MB1238; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(5002010);SRVR:BY1PR0301MB1317;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0301MB1317; X-Forefront-PRVS: 05529C6FDB X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2015 15:45:48.5047 (UTC) X-MS-Exchange-CrossTenant-Id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=72f988bf-86f1-41af-91ab-2d7cd011db47;Ip=[206.191.228.164];Helo=[064-smtp-out.microsoft.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0301MB1317 X-OriginatorOrg: microsoft.onmicrosoft.com X-Virus-Checked: Checked by ClamAV on apache.org SGksIGxpc3QuDQoNCkkgd291bGQgbGlrZSB0byBzaGFyZSBhIGRyYWZ0IGltcGxlbWVudGF0aW9u IGZvciBjaGVja19yZXFzIGNvbW1hbmQgYW5kIGNoZWNrX3JlcXMgQVBJOiANCkNoYW5nZXMgIGNv dWxkIGJlIGZvdW5kIGhlcmU6DQogICAgQ0xJOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL2Nv cmRvdmEtY2xpL2NvbXBhcmUvbWFzdGVyLi4uTVNPcGVuVGVjaDpyZXF1aXJlbWVudHNfY2hlY2sg DQogICAgTElCOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL2NvcmRvdmEtbGliL2NvbXBhcmUv bWFzdGVyLi4uTVNPcGVuVGVjaDpyZXF1aXJlbWVudHNfY2hlY2sgDQogICAgQ29yZG92YS1hbmRy b2lkOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL2NvcmRvdmEtYW5kcm9pZC9jb21wYXJlL21h c3Rlci4uLk1TT3BlblRlY2g6cmVxdWlyZW1lbnRzX2NoZWNrIA0KDQpUaGUgaW1wbGVtZW50YXRp b24gY29uc2lzdHMgb2YgZm9sbG93aW5nOg0KMS4gJ2NvcmRvdmEgY2hlY2stcmVxcycgY29tbWFu ZCBmb3IgY29yZG92YSBDTEksIHdoaWNoIGNhbGxzIGNvcnJlc3BvbmRpbmcgY29yZG92YS1saWIg QVBJIHdpdGggb3B0aW9ucywgc3BlY2lmaWVkIGZyb20gQ0xJDQoNCjIuICdjaGVja19yZXFzJyBt b2R1bGUgZm9yIGNvcmRvdmEtbGliLCB3aGljaCB3b3JrcyBhcyBhIHdyYXBwZXIgYXJvdW5kIHBs YXRmb3JtcycgY2hlY2tfcmVxcyBzY3JpcHRzLiBJdCByZXR1cm5zIGEgcHJvbWlzZSwgZWl0aGVy IHJlc29sdmVkIGlmIGNoZWNrX3JlcXMgcGxhdGZvcm0gc2NyaXB0IGlzIGZvdW5kIGFuZCByYW4g c3VjY2Vzc2Z1bGx5IG9yIHJlamVjdGVkIGluIGNhc2UgaWYgY2hlY2tfcmVxcyBzY3JpcHQgaXMg ZmFpbGVkIGR1ZSB0byBzb21lIGludGVybmFsIGVycm9ycyBvciBub3QgZm91bmQgYXQgYWxsLg0K DQozLiBjaGVja19yZXFzIHNjcmlwdCBmb3IgYW5kcm9pZCBwbGF0Zm9ybSwgdXBkYXRlZCB0byBy ZXR1cm4gYXJyYXkgb2YgcmVxdWlyZW1lbnRzLg0KDQogICAgKiBFYWNoIHJlcXVpcmVtZW50cyBp cyBhbiBvYmplY3Qgd2l0aCBmb2xsb3dpbmcgZmllbGRzOiANCiAgICAgICAgLSBpZCAtIHNvbWUg c2hvcnQgaWQsIGNvdWxkIGJlIHVzZWZ1bCBmb3IgdG9vbHMsIHRoYXQgY29uc3VtZSBBUEkgZGly ZWN0bHkNCiAgICAgICAgLSBuYW1lIC0gcmVhZGFibGUgbmFtZSBmb3IgdGhpcyByZXF1aXJlbWVu dCwgc3VjaCBhcyAnSmF2IEpESycgb3IgJ0dyYWRsZSBidWlsZCB0b29scycsIGV0Yy4NCiAgICAg ICAgLSBpbnN0YWxsZWQgLSBCb29sZWFuIHBhcmVtZXRlciB0aGF0IGluZGljYXRlcyBpZiByZXF1 aXJlbWVudCBpcyBwcm9wZXJseSBpbnN0YWxsZWQvc2F0aXNmaWVkDQogICAgICAgIC0gcmVhc29u IC0gZXJyb3IsIHJlcG9ydGVkIGJ5IHJlcXVpcmVtZW50cyBjaGVjayByb3V0aW5lcyBpZiByZXF1 aXJlbWVudCBpcyBtaXNzaW5nLg0KDQpQbGVhc2Ugbm90ZSB0aGF0IHdvcmsgaXMgc3RpbGwgaW4g cHJvZ3Jlc3MsIGFuZCB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nIHRvIHJldmlldyBjb21tZW50 cy4NClRCRDoNCiAgICAqIG1vdmUgcHJlc2VudGF0aW9uIGxvZ2ljIGZyb20gTElCIHRvIENMSTsN CiAgICAqIHJlZmluZSBkYXRhIGZvcm1hdCwgcmV0dXJuZWQgYnkgY29yZG92YS1saWIgQVBJDQog ICAgKiBhZGQgb3RoZXIgcGxhdGZvcm1zDQogICAgKiBhbmQgbW9yZS4uLiA6KQ0KDQotLS0tLS0t LS0tLS0tLS0NCkJlc3QgcmVnYXJkcywgVmxhZGltaXINCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCkZyb206IFBhcmFzaHVyYW0gTiAoTVMgT1BFTiBURUNIKSBbbWFpbHRvOnBhbmFyYXNp QG1pY3Jvc29mdC5jb21dIA0KU2VudDogTW9uZGF5LCAyMCBBcHJpbCwgMjAxNSAzOjQ5DQpUbzog ZGV2QGNvcmRvdmEuYXBhY2hlLm9yZw0KU3ViamVjdDogUkU6IFByb3Bvc2FsOiBFeHBvc2UgY2hl Y2tfcmVxcyBhdCB0aGUgQ0xJIGxldmVsDQoNCkxvb2tzIGxpa2UgaW1wbGVtZW50aW5nIGEgZ2xv YmFsIGxldmVsIGNoZWNrX3JlcXMgd2l0aG91dCBhIHByb2plY3Qgc2VlbXMgaGFyZGVyLCBJIHdv dWxkIHN1Z2dlc3Qgd2UgbWFrZSBpdCBhIHBhcnQgb2YgYSBzZWNvbmQgcGhhc2Ugb2YgdGhpcyBp bXBsZW1lbnRhdGlvbi4gRm9yIG5vdywgd2UgaGF2ZSBhIGJhc2ljIHZlcnNpb24gdGhhdCBzaW1w bHkgYWJzdHJhY3RzIG91dCBleGlzdGluZyBjaGVja19yZXFzIGludG8gYSBzZXBhcmF0ZSwgcGxh dGZvcm0gbGV2ZWwgY29tbWFuZC4gVGhpcyBjb3VsZCBiZSBhIGdvb2QgZmlyc3QgcGhhc2UsIGFu ZCBzaG91bGQgYWxzbyBnaXZlIHVzIGFuIGlkZWEgYWJvdXQgaG93IGRldmVsb3BlcnMgdXNlIHRo aXMgY29tbWFuZC4NCg0KQXMgYSBwYXJ0IG9mIFBoYXNlIDIsIGFueW9uZSBmcm9tIHRoZSBjb21t dW5pdHkgc2hvdWxkIGJlIGFibGUgdG8gYnVpbGQgb24gYSBjb3Jkb3ZhIGxldmVsIGNoZWNrIHJl cXMsIGFuZCBwb3NzaWJseSBleHRlbmQgaXQgdG8gY2hlY2tpbmcgcmVxcyB3aGVuIG5vIHByb2pl Y3QgaXMgcHJlc2VudC4gDQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEpv c2ggU29yZWYgW21haWx0bzpqc29yZWZAYmxhY2tiZXJyeS5jb21dDQpTZW50OiBXZWRuZXNkYXks IEFwcmlsIDE1LCAyMDE1IDg6NTMgQU0NClRvOiBkZXZAY29yZG92YS5hcGFjaGUub3JnDQpTdWJq ZWN0OiBSRTogUHJvcG9zYWw6IEV4cG9zZSBjaGVja19yZXFzIGF0IHRoZSBDTEkgbGV2ZWwNCg0K V2UgYWxyZWFkeSBzdXBwb3J0Og0KDQpgY29yZG92YSBidWlsZCBhbmRyb2lkYA0KDQpUaGVyZSdz IG5vIG5lZWQgZm9yIHRoZSBleHRyYSBgcGxhdGZvcm1gIHZlcmIuLg0KDQpCdXQsDQpgY29yZG92 YSBidWlsZCBhbmRyb2lkIC0tbm9idWlsZGAgaXNuJ3QgYW55IG1vcmUgaW50dWl0aXZlIHRoYW4g dy8gdGhlIGV4dHJhICJwbGF0Zm9ybSIuDQoNCg0KQW5kIHllcywgYXMgSSBub3RlZCwgYW5kIG90 aGVycyBoYXZlIG5vdGVkLCB3ZSB1c2VkIHRvIHJ1biBjaGVja19yZXFzIGluIGFkZCwgDQp3ZSdy ZSBub3QgZ29pbmcgYmFjayB0byBkb2luZyB0aGF0Lg0KDQpBIGBjb3Jkb3ZhIGRvY3RvcmAgb3Ig YGNvcmRvdmEgcmVxdWlyZW1lbnRzYCB2ZXJiIHNlZW1zIGZpbmUuDQoNCkknbSBhbHNvIGZpbmUg YGNvcmRvdmEgZG9jdG9yIFBMQVRGT1JNYCBpbnN0ZWFkIG9mIGBjb3Jkb3ZhIHBsYXRmb3JtIGRv Y3RvciANClBMQVRGT1JNYCwNCg0KQXMgZm9yIHdoZW4gc29tZW9uZSBpcyBsaWtlbHkgdG8gd2Fu dCB0byBhc2sgIndoYXQgcmVxdWlyZW1lbnRzIGRvIEkgbmVlZCBmb3IgDQphIHBsYXRmb3JtIiwg aXQncyBmYWlybHkgYXJiaXRyYXJ5Lg0KDQpTb21lb25lIHdobyBpcyBnaXZlbiBhIHByb2plY3Qg bWlnaHQga25vdyB0aGF0IHRoZXkgZG9uJ3QgaGF2ZSB0aGUgZW52aXJvbm1lbnQgDQpmb3IgYSBw bGF0Zm9ybSwgdGhleSBhcmVuJ3QgbGlrZWx5IHRvIHdhbnQgdG8gZ28gZG93biBhICJidWlsZCIg cmFiYml0IGhvbGUsIA0Kc28sIEknbSAtMSBvbiBoaWRpbmcgaXQgYW55d2hlcmUgbmVhciBidWls ZC4NCg0KSXQncyBwZXJmZWN0bHkgcmVhc29uYWJsZSBmcm9tIG15IHBlcnNwZWN0aXZlIGZvciBz b21lb25lIHRvIHdhbnQgdG8gcnVuIA0KYGNvcmRvdmEgcmVxdWlyZW1lbnRzIFBMQVRGT1JNYCB3 aXRob3V0IGEgcHJvamVjdCBhdCBhbGwuDQpJbWFnaW5lIHNvbWVvbmUgaXMgZ2V0dGluZyBzdGFy dGVkLCB0aGV5ICJpbnN0YWxsIGNvcmRvdmEiLCBhbmQga25vdyB0aGV5IHdhbnQgDQp0byBkZXZl bG9wIGZvciBQTEFURk9STSwgdGhleSBjb3VsZCByZWFzb25hYmx5IHdhbnQgdG8gc2V0IHVwIHRo ZWlyIA0KcmVxdWlyZW1lbnRzIGZvciB0aGF0IHBsYXRmb3JtIGJlZm9yZSB0cnlpbmcgdG8gY3Jl YXRlIGEgcHJvamVjdC4uLg0KDQpJIGRvbid0IGtub3cgaWYgYW55b25lJ3MgY2hlY2tfcmVxcyBz Y3JpcHRzIGFjdHVhbGx5IHJlcXVpcmVzIGEgcHJvamVjdCwgSSANCmFjdHVhbGx5IHRoaW5rIHRo ZXkgZG9uJ3QsIHNvIGl0J3MgcHJvYmFibHkgc3VmZmljaWVudCB0byBydW4gdGhlbSBzdHJhaWdo dCANCmZyb20gdGhlIHBsYXRmb3JtIG9yaWdpbiBpbnN0ZWFkIG9mIGZyb20gYSBjcmVhdGVkIHBy b2plY3QuDQoNCk9uZSBub3RhYmxlIHRoaW5nOiBjaGVja19yZXFzIGlzbid0IGEgLmpzIGZpbGUg eWV0LCBhcyBhbiBBUEksIGl0J3MgDQoiY2hlY2tfcmVxcyIgKCpuaXgpIGFuZCAiY2hlY2tfcmVx cyIgKyBzb21ldGhpbmcgZnJvbSAlUEFUSEVYVCUgKFdpbmRvd3MpDQoNCj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogYWdyaWV2ZUBnb29nbGUuY29tIFttYWlsdG86YWdyaWV2 ZUBnb29nbGUuY29tXSBPbiBCZWhhbGYgT2YNCj4gQW5kcmV3IEdyaWV2ZQ0KPiBTZW50OiBXZWRu ZXNkYXksIEFwcmlsIDE1LCAyMDE1IDExOjAwIEFNDQo+IFRvOiBkZXYNCj4gU3ViamVjdDogUmU6 IFByb3Bvc2FsOiBFeHBvc2UgY2hlY2tfcmVxcyBhdCB0aGUgQ0xJIGxldmVsDQo+DQo+IFdlJ3Zl IHdvcmtlZCB0byBtYWtlIGlPUyBhZGQnYWJsZSBmcm9tIFdpbmRvd3MsIHNvIEkgZG8gdGhpbmsg aXQncyBhIGdvb2QNCj4gaWRlYSB0byAqbm90KiBydW4gY2hlY2tfcmVxcyBmcm9tIGFkZCAod2Ug dXNlZCB0byBidXQgcmVtb3ZlZCBpdCkuDQo+DQo+IFdlIGFscmVhZHkgcnVuIGl0IG9uIGJ1aWxk LCBzbyBwb3RlbnRpYWxseSB3ZSBhbHJlYWR5IGhhdmUgdGhpcyBjb21tYW5kOg0KPiAiY29yZG92 YSBwbGF0Zm9ybSBidWlsZCBhbmRyb2lkIC0tbm9idWlsZCINCj4NCj4NCj4NCj4gT24gVHVlLCBB cHIgMTQsIDIwMTUgYXQgOTo1MSBQTSwgVHJlZ2dpYXJpLCBMZW8gPGxlby50cmVnZ2lhcmlAaW50 ZWwuY29tPg0KPiB3cm90ZToNCj4NCj4gPiBNeSBvcGluaW9ucy4NCj4gPg0KPiA+IFExLiAgSnVz dCBzYXkgdGhhdCBwbGF0Zm9ybSBpcyBub3QgYWRkZWQsIHNvIGNhbm5vdCBjaGVjayByZXF1aXJl bWVudHMuDQo+ID4NCj4gPiBJIGRvbid0IHRoaW5rIGl0IGlzIGltcG9ydGFudCB0byBzdXBwb3J0 IHRoZSBwbGF0Zm9ybS1ub3QtYWRkZWQgY2FzZS4NCj4gPg0KPiA+IFEyLiAgU2hvdWxkIHRoZSBy ZXF1aXJlbWVudHMgYmUgY2hlY2tlZCB3aGVuIGEgcGxhdGZvcm0gaXMgYWRkZWQsIG9yDQo+IHdo ZW4NCj4gPiBpdCBpcyBidWlsdCA/DQo+ID4NCj4gPiAncGxhdGZvcm0gYWRkJyBzaG91bGQgd29y ayBldmVuIHdoZW4gdGhlIHJlcXVpcmVtZW50cyBhcmUgbm90IG1ldC4gIElmDQo+ID4gcmVxdWly ZW1lbnRzDQo+ID4gdXNlZCB0byBiZSBjaGVja2VkIG9uICdwbGF0Zm9ybSBhZGQnLCB0aGVuIEkg c3VzcGVjdCB0aGV5IHdlcmUgcmVtb3ZlZCB0bw0KPiA+IHN1cHBvcnQNCj4gPiB0aGUgc2NlbmFy aW8gb2YgdXNpbmcgdGhlIHNhbWUgQ29yZG92YSBwcm9qZWN0IG9uIG11bHRpcGxlIGhvc3QgcGxh dGZvcm1zLg0KPiA+IEUuZy4gYSB0ZWFtIHdpdGggc29tZSBkZXZlbG9wZXJzIG9uIFdpbmRvd3Mg YW5kIHNvbWUgb24gTWFjLiAgQXMgYSB1c2VyDQo+IG9mDQo+ID4gQ29yZG92YSBDTEkgb24gV2lu ZG93cywgSSB3YW50IGl0IHRvIGJlIE9LIHRvIGhhdmUgdGhlIHByb2plY3QgSSdtIHdvcmtpbmcN Cj4gPiBvbiBoYXZlIHRoZQ0KPiA+IGlPUyBwbGF0Zm9ybSBhZGRlZCBhbmQgSSBvbmx5IGdldCBl cnJvcnMgaWYgSSB0cnkgdG8gZG8gc29tZXRoaW5nIChidWlsZCwNCj4gPiBlbXVsYXRlKQ0KPiA+ IHdoaWNoIHJlcXVpcmVzIHRoZSBuYXRpdmUgU0RLLg0KPiA+DQo+ID4gTGVvDQo+ID4NCj4gPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFBhcmFzaHVyYW0gTiAoTVMgT1BF TiBURUNIKSBbbWFpbHRvOnBhbmFyYXNpQG1pY3Jvc29mdC5jb21dDQo+ID4gU2VudDogVHVlc2Rh eSwgQXByaWwgMTQsIDIwMTUgNjowNCBQTQ0KPiA+IFRvOiBkZXZAY29yZG92YS5hcGFjaGUub3Jn DQo+ID4gU3ViamVjdDogUkU6IFByb3Bvc2FsOiBFeHBvc2UgY2hlY2tfcmVxcyBhdCB0aGUgQ0xJ IGxldmVsDQo+ID4NCj4gPiBJIHRoaW5rIHlvdSByYWlzZSBhbiBpbnRlcmVzdGluZyBwb2ludCBv biB0aGUgYmVoYXZpb3Igb2YgY2hlY2tfcmVxcyBmb3INCj4gPiBwbGF0Zm9ybSB0aGF0IGFyZSBu b3QgeWV0IGFkZGVkLg0KPiA+DQo+ID4gVGhlIG9wdGlvbnMsIGFzIHlvdSBtZW50aW9uIGFyZQ0K PiA+DQo+ID4gUXVlc3Rpb24gMQ0KPiA+IDEgLSAgQWRkIHRoZSBwbGF0Zm9ybSwgcnVuIGNoZWNr X3JlcXMgc2NyaXB0LCByZW1vdmUgdGhlIHBsYXRmb3JtIGFuZA0KPiA+IHJlcG9ydCByZXN1bHRz Lg0KPiA+IDEuNSAtIEp1c3QgZG93bmxvYWQgdGhlIGNoZWNrX3JlcXMgc2NyaXB0IChvciB1c2Ug aXQgZnJvbSB0aGUgY2FjaGVkDQo+ID4gcGxhdGZvcm0gZGlyZWN0b3J5KSB3aXRob3V0IGFkZGlu ZyB0aGUgcGxhdGZvcm0sIGFuZCBydW4gdGhhdC4NCj4gPiAyIC0gIEp1c3Qgc2F5IHRoYXQgcGxh dGZvcm0gaXMgbm90IGFkZGVkLCBzbyBjYW5ub3QgY2hlY2sgcmVxdWlyZW1lbnRzLg0KPiA+DQo+ ID4gUXVlc3Rpb24gMjogSXQgYWxzbyBjb21lcyB0byB0aGUgY2FzZSBvZiAtIHdoZW4gd291bGQg YSB1c2VyIHdhbnQgdG8gcnVuDQo+ID4gdGhlIHJlcXVpcmVtZW50IGNoZWNrDQo+ID4gLSBiZWZv cmUgc3RhcnRpbmcgYSBjb3Jkb3ZhIHByb2plY3QgPw0KPiA+IC0gYmVmb3JlIGFkZGluZyBhIHBs YXRmb3JtID8NCj4gPiAtIHNob3VsZCB0aGUgcmVxdWlyZW1lbnRzIGJlIGNoZWNrZWQgd2hlbiBh IHBsYXRmb3JtIGlzIGFkZGVkLCBvciB3aGVuIGl0DQo+ID4gaXMgYnVpbHQgPw0KPiA+DQo+ID4g VGhlIGFuc3dlciB0byB0aGUgYWJvdmUgcXVlc3Rpb25zIHdpbGwgaGVscCB1cyB1bmRlcnN0YW5k IGlmIGEgdG9wIGxldmVsDQo+ID4gcmVxX2NoZWNrIGlzIHJlcXVpcmVkIG9yIG5vdC4gV2Ugc2hv dWxkIGFsc28gbG9vayBhdCB3aGF0IGNoZWNrX3JlcXMgZG8NCj4gPiB0b2RheSAtIHRoZSBkbyBu b3QgdGVsbCB5b3UgQUxMIHRoZSBtaXNzaW5nIHBpZWNlcyBmb3IgYnVpbGRpbmcgYW4gU0RLLg0K PiA+DQo+ID4gSXQgd291bGQgYmUgZ29vZCB0byBoZWFyIHdoYXQgdGhlIG90aGVycyBpbiB0aGUg Y29tbXVuaXR5IHRoaW5rIGFib3V0DQo+ID4gdGhlc2UgYW5zd2Vycy4NCj4gPg0KPiA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogSm9zaCBTb3JlZiBbbWFpbHRvOmpzb3Jl ZkBibGFja2JlcnJ5LmNvbV0NCj4gPiBTZW50OiBUdWVzZGF5LCBBcHJpbCAxNCwgMjAxNSA5OjU1 IEFNDQo+ID4gVG86IGRldkBjb3Jkb3ZhLmFwYWNoZS5vcmcNCj4gPiBTdWJqZWN0OiBSRTogUHJv cG9zYWw6IEV4cG9zZSBjaGVja19yZXFzIGF0IHRoZSBDTEkgbGV2ZWwNCj4gPg0KPiA+IEZ3aXcs IGZvciB0aGUgY2FzZSBvZiBhIHBsYXRmb3JtIHRoYXQgaXNuJ3QgaW4gYSBwcm9qZWN0IHlldCwg SSdkIA0KPiA+IGVudmlzaW9uOg0KPiA+DQo+ID4gYGNvcmRvdmEgcGxhdGZvcm0gZG9jdG9yIG5v dC15ZXQtaW5zdGFsbGVkYA0KPiA+DQo+ID4gdG8gZG8gZWZmZWN0aXZlbHk6DQo+ID4gYGBgc2gN Cj4gPiAoDQo+ID4gUExBVEZPUk09bm90LXlldC1pbnN0YWxsZWQNCj4gPiAoY29yZG92YSBwbGF0 Zm9ybSBhZGQgJFBMQVRGT1JNIDI+JjEpID4gL2Rldi9udWxsICYmDQo+ID4gY29yZG92YSBwbGF0 Zm9ybSBkb2N0b3IgJFBMQVRGT1JNOw0KPiA+IChjb3Jkb3ZhIHBsYXRmb3JtIHJlbW92ZSAkUExB VEZPUk0gMj4mMSkNCj4gPiApDQo+ID4gYGBgDQo+ID4NCj4gPiBpLmUuIGFkZCB0aGUgcGxhdGZv cm0gKG9yIGNyZWF0ZSBhIHRlbXBvcmFyeSBwcm9qZWN0LCBhbmQgYWRkIHRoZSBwbGF0Zm9ybQ0K PiA+IHRvIHRoZSB0ZW1wb3JhcnkgcHJvamVjdCksIGFuZCB0aGVuIHJ1biBwbGF0Zm9ybSBkb2N0 b3IsIGFuZCB0aGVuIHJlbW92ZQ0KPiA+IHRoZQ0KPiA+IHBsYXRmb3JtIChhbmQgaWYgaXQgd2Fz IGluIGEgdGVtcG9yYXJ5IHByb2plY3QsIGRlbGV0ZSB0aGUgdGVtcG9yYXJ5DQo+ID4gcHJvamVj dC4uLikuDQo+ID4NCj4gPiBJIGRvbid0IHJlYWxseSB3YW50IHRvIGV4cG9zIGEgJ2NoZWNrX3Jl cXMnIHZlcmIgdmlhIENMSS4NCj4gPg0KPiA+IElmIHdlIHJlYWxseSByZWFsbHkgd2FudCB0bywg d2UgY291bGQgaGF2ZSBgY29yZG92YSBwbGF0Zm9ybSByZXF1aXJlbWVudHMNCj4gPiBbUExBVEZP Uk0uLi5dYCBhcyBhIHZlcmIsIHRoYXQncyBvay4NCj4gPg0KPiA+IElmIHNvbWVvbmUgd2FudHMg dG8gY2FsbCBgY2hlY2tfcmVxc2AgZGlyZWN0bHksIHRoZXkncmUgd2VsY29tZSB0byBkbyBzbywN Cj4gPiBidXQgaXQncyBhbiBpbmNyZWRpYmx5IHVnbHkgdGhpbmcgYW5kIGRvZXNuJ3QgYmVsb25n IGluIGEgcHVibGljIGZhY2luZw0KPiA+IGludGVyZmFjZS4NCj4gPg0KPiA+DQo+ID4gPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogUGFyYXNodXJhbSBOIChNUyBPUEVO IFRFQ0gpIFttYWlsdG86cGFuYXJhc2lAbWljcm9zb2Z0LmNvbV0NCj4gPiA+IFNlbnQ6IFR1ZXNk YXksIEFwcmlsIDE0LCAyMDE1IDEwOjE5IEFNDQo+ID4gPiBUbzogZGV2QGNvcmRvdmEuYXBhY2hl Lm9yZw0KPiA+ID4gU3ViamVjdDogUmU6IFByb3Bvc2FsOiBFeHBvc2UgY2hlY2tfcmVxcyBhdCB0 aGUgQ0xJIGxldmVsDQo+ID4gPg0KPiA+ID4gQ2FybG9zLCB5b3UgYXJlIHJpZ2h0LCBjaGVja19y ZXFzIHNob3VsZCBiZSBpbiB0aGUgcGxhdGZvcm0gcmVwbywgQ0xJDQo+ID4gd2lsbA0KPiA+ID4g anVzdCBwcm94eSB0aGUgY2FsbCB0byB0aGUgcGxhdGZvcm1zLg0KPiA+ID4NCj4gPiA+IE9uIDQv MTMvMTUsIDEwOjI5IFBNLCAiQ2FybG9zIFNhbnRhbmEiIDxjc2FudGFuYTIzQGdtYWlsLmNvbT4g d3JvdGU6DQo+ID4gPg0KPiA+ID4gPisxIGlmIGNoZWNrX3JlcXMgYXJlIGtlcHQgaW4gdGhlIHBs YXRmb3JtIHJlcG9zLCBjdXJyZW50bHkgY2hlY2tfcmVxcyANCj4gPiA+ID5pcw0KPiA+IGENCj4g PiA+ID5wbGF0Zm9ybSBjb25jZXJuZWQNCj4gPiA+ID5pZiBpdCdzIGF2YWlsYWJsZSBmcm9tIENM SSBpdCB3aWxsIGJlIGp1c3QgYSBwcm94eSB0byB0aGUgcGxhdGZvcm0NCj4gPiA+ID5jaGVja19y ZXFzLg0KPiA+ID4gPg0KPiA+ID4gPmlmIGRvbid0IGtlZXAgaXQgaW4gdGhlIHBsYXRmb3JtIHJl cG8sIGFuZCBhZGQgdGhpcyBsb2dpYyB0byBjbGkgcmVwbywNCj4gPiB3ZQ0KPiA+ID4gPndpbGwg bmVlZCB0byBtYWludGFpbmVkIGEgbGlzdCBvZiByZXFzIGZvciBlYWNoIHBsYXRmb3JtLCBmb3Ig ZWFjaA0KPiA+IHZlcnNpb24NCj4gPiA+ID5vZiBlYWNoIHBsYXRmb3JtLg0KPiA+ID4gPg0KPiA+ ID4gPlRoaXMgaXMgdGhlIHJlYXNvbiB3aHkgaXQgd2FzIHJlbW92ZWQgZnJvbSBjbGkgYW5kIGp1 c3QgaXMgcHJlc2VudCBpbg0KPiA+IHRoZQ0KPiA+ID4gPnBsYXRmb3JtIHJlcG8vY29kZQ0KPiA+ ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPk9uIE1vbiwgQXByIDEzLCAyMDE1IGF0IDU6 MTMgUE0sIEpvc2ggU29yZWYgPGpzb3JlZkBibGFja2JlcnJ5LmNvbT4NCj4gPiA+IHdyb3RlOg0K PiA+ID4gPg0KPiA+ID4gPj4gSSdtICsxIGZvciBgY29yZG92YSBkb2N0b3JgIGFuZCBgY29yZG92 YSBwbGF0Zm9ybSBkb2N0b3INCj4gPiA+ID4+e3BsYXRmb3JtbmFtZX1gLg0KPiA+ID4gPj4NCj4g PiA+ID4+IFRoZSBmb3JtZXIgc2hvdWxkIGFwcGx5IHRvIGFsbCBjdXJyZW50IHBsYXRmb3Jtcywg dGhlIGxhdHRlciBzaG91bGQNCj4gPiA+ID4+c3VwcG9ydA0KPiA+ID4gPj4gZG9jdG9yaW5nIGZv ciBhdmFpbGFibGUgYnV0IG5vdCBhZGRlZCBwbGF0Zm9ybXMgLS0gaWYgc2FpZCBwbGF0Zm9ybQ0K PiA+IHdlcmUNCj4gPiA+ID4+IHNwZWNpZmllZC4NCj4gPiA+ID4+IEFuZCB3ZSBzaG91bGQgbm90 ZSBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvciBgY29yZG92YSBkb2N0b3JgIHRoYXQgaXQNCj4gPiBt YXkNCj4gPiA+ID4+ZG8NCj4gPiA+ID4+IG90aGVyIGNoZWNrcyAtLSBlLmcuIGxpbnRpbmcgdGhl IGNvbmZpZy54bWwsIHdhcm5pbmcgYWJvdXQgQ1NQLA0KPiA+IHBvc3NpYmx5DQo+ID4gPiA+PiBt ZW50aW9uaW5nIHdoZW4gYSBwbHVnaW4gaXMgb3V0IG9mIGRhdGUgLS0ganVzdCB0byBpbmRpY2F0 ZSB0byBwZW9wbGUNCj4gPiA+ID4+dGhhdA0KPiA+ID4gPj4gdGhlIGJlaGF2aW9yIG1heSBldm9s dmUuDQo+ID4gPiA+Pg0KPiA+ID4gPj4gTm90IHRoYXQgdGhpcyBpcyBtb3JlIG9yIGxlc3MgZml4 aW5nIGEgcmVncmVzc2lvbiB0aGF0IHdlIGludHJvZHVjZWQNCj4gPiA+ID4+d2hlbg0KPiA+ID4g Pj4gd2UNCj4gPiA+ID4+IG1hZGUgYGNvcmRvdmEgcGxhdGZvcm0gYWRkYCBub3QgY2FsbCBjaGVj a19yZXFzLg0KPiA+ID4gPj4NCj4gPiA+ID4+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPiA+ID4+ID4gRnJvbTogUGFyYXNodXJhbSBOIChNUyBPUEVOIFRFQ0gpDQo+IFttYWlsdG86 cGFuYXJhc2lAbWljcm9zb2Z0LmNvbV0NCj4gPiA+ID4+ID4gU2VudDogTW9uZGF5LCBBcHJpbCAx MywgMjAxNSAyOjUzIFBNDQo+ID4gPiA+PiA+IFRvOiBkZXZAY29yZG92YS5hcGFjaGUub3JnDQo+ ID4gPiA+PiA+IFN1YmplY3Q6IFByb3Bvc2FsOiBFeHBvc2UgY2hlY2tfcmVxcyBhdCB0aGUgQ0xJ IGxldmVsDQo+ID4gPiA+PiA+DQo+ID4gPiA+PiA+IEhpLA0KPiA+ID4gPj4gPg0KPiA+ID4gPj4g PiBPbmUgb2YgdGhlIG1haW4gcHJvYmxlbXMgYSBsb3Qgb2YgZGV2ZWxvcGVycyBzZWVtIHRvIGhh dmUgaXMgdGhlDQo+ID4gPiA+Pmlzc3VlIHRvDQo+ID4gPiA+PiA+IHNldHRpbmcgdXAgdGhlaXIg bWFjaGluZXMgZm9yIGJ1aWxkaW5nIHZhcmlvdXMgcGxhdGZvcm1zLiBUaGlzIGNhbWUNCj4gPiA+ ID4+b3V0DQo+ID4gPiA+PiBmcm9tDQo+ID4gPiA+PiA+IHRoZSBTdGFjayBvdmVyZmxvdyBzdXJ2 ZXksIGFuZCB0aGUgbnVtYmVyIG9mIHF1ZXN0aW9ucyBvbiBzdGFjaw0KPiA+ID4gPj5vdmVyZmxv dywNCj4gPiA+ID4+ID4gdHdpdHRlci4gRXRjLg0KPiA+ID4gPj4gPg0KPiA+ID4gPj4gPiBJIHRo b3VnaHQgaXQgd291bGQgYmUgaGVscGZ1bCB0byBoYXZlIGEgY2hlY2tfcmVxcyBjb21tYW5kDQo+ IGV4cG9zZWQNCj4gPiBhdA0KPiA+ID4gPj50aGUNCj4gPiA+ID4+ID4gQ0xJIGxldmVsLiBUaGlz IGlzIHNpbWlsYXIgdG8gYGJyZXcgZG9jdG9yYCBvciBgYXBwaXVtIGRvY3RvcmAuIFRoZQ0KPiA+ ID4gPj5pZGVhDQo+ID4gPiA+PiBpcw0KPiA+ID4gPj4gPg0KPiA+ID4gPj4gPg0KPiA+ID4gPj4g PiAxLiAgICAgICBIYXZlIGEgd2F5IGZvciB0aGUgdXNlciB0byBzZWUgaWYgdGhleSBoYXZlIGFs bA0KPiA+IGRlcGVuZGVuY2llcw0KPiA+ID4gPj4gKGxpa2UNCj4gPiA+ID4+ID4gSkFWQV9IT01F IG9yIEFORFJPSURfSE9NRSkgc2V0IHVwPyBUaGlzIGhhcHBlbnMgYXQgYnVpbGQgdGltZSwNCj4g YnV0DQo+ID4gPiA+PiA+IG1vdmluZyBpdCBvdXQgdG8gYSBDTEkgbGV2ZWwgY29tbWFuZCB3aGVy ZSB5b3UgY2FuIHJ1biBjb3Jkb3ZhDQo+ID4gPiA+PmNoZWNrX3JlcXMNCj4gPiA+ID4+ID4gKG9y IHNvbWV0aGluZyBzaW1pbGFyKSB3b3VsZCBiZSB1c2VmdWwgdG8gdGhlIHVzZXJzLg0KPiA+ID4g Pj4gPg0KPiA+ID4gPj4gPiAyLiAgICAgICBUb2RheSwgdGhlIGJ1aWxkIGNvbW1hbmQgc2hvd3Mg b25lIGVycm9yIGF0IGEgdGltZS4gVGhlDQo+ID4gPiA+PiBjaGVja19yZXFzDQo+ID4gPiA+PiA+ IGNvdWxkIHJ1biBhbGwgdGhlIGNoZWNrcywgYW5kIHNob3cgYSBzdW1tYXJ5IG9mIHRoZSBpc3N1 ZXMgc28gdGhhdA0KPiA+IHRoZQ0KPiA+ID4gPj4gdXNlcg0KPiA+ID4gPj4gPiBjYW4gZml4IHRo ZW0gYWxsLCBpbnN0ZWFkIG9mIGZpeGluZyBvbmUsIHJ1bm5pbmcgYnVpbGQsIGZpeGluZw0KPiA+ IGFnYWluLA0KPiA+ID4gPj4gZXRjLg0KPiA+ID4gPj4gPg0KPiA+ID4gPj4gPiBXaGF0IGRvZXMg dGhlIGNvbW11bml0eSB0aGluayBvZiB0aGlzIGlkZWEgPyBDYW4gd2UgaW1wbGVtZW50IGENCj4g PiA+ID4+cHJvdG90eXBlDQo+ID4gPiA+PiA+IGFuZCBzZWUgaWYgdGhpcyBpcyB1c2VmdWwgdG8g b3VyIGRldmVsb3BlcnMgPw0KPiA+ID4gPj4gPiBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBjaGFu Z2Ugb3IgYnJlYWsgZXhpc3RpbmcgZnVuY3Rpb25hbGl0eSAtIGl0DQo+ID4gPiA+Pmp1c3QNCj4g PiA+ID4+IGV4cG9zZXMNCj4gPiA+ID4+ID4gdGhlIGFscmVhZHkgZXhpc3RpbmcgY2hlY2tfcmVx cyBpbiB0aGUgQ0xJLiBCdWlsZCB3aWxsIGNvbnRpbnVlIHRvDQo+ID4gPiA+PmNhbGwNCj4gPiA+ ID4+ID4gY2hlY2tfcmVxcy4NCj4gPiA+ID4+ID4NCj4gPiA+ID4+ID4gUGxlYXNlIHZvdGUgb24g dGhpcyBwcm9wb3NhbCwgb3IgcmFpc2UgYW55IGNvbmNlcm5zIHlvdSBtYXkgaGF2ZS4NCj4gPiA+ ID4+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+LS0NCj4gPiA+ID5DYXJsb3Mg U2FudGFuYQ0KPiA+ID4gPjxjc2FudGFuYTIzQGdtYWlsLmNvbT4NCj4gPiA+DQo+ID4gPg0KPiA+ ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJz Y3JpYmVAY29yZG92YS5hcGFjaGUub3JnDQo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywg ZS1tYWlsOiBkZXYtaGVscEBjb3Jkb3ZhLmFwYWNoZS5vcmcNCj4gPg0KPiA+DQo+ID4gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQGNvcmRv dmEuYXBhY2hlLm9yZw0KPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1o ZWxwQGNvcmRvdmEuYXBhY2hlLm9yZw0KPiA+DQo+ID4NCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiBU byB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAY29yZG92YS5hcGFjaGUub3Jn DQo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAY29yZG92YS5h cGFjaGUub3JnDQo+ID4NCj4gPg0KA0IgS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tL S0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQiAbIB1bICBYICDcmlggSwgZS1tY WlsNCiAZGV0gXVsgIFggINyaWCBQGCDcmRvdmEsgXBhYIBlLINyZIEIgINyIGFkZGl0aW9uYWwgY ICBbWFsgHCAIGUtbWFpbDQogGRldIFoZWxwQGCDcmRvdmEsgXBhYIBlLINyZIEINCg== DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNj cmliZUBjb3Jkb3ZhLmFwYWNoZS5vcmcNCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1h aWw6IGRldi1oZWxwQGNvcmRvdmEuYXBhY2hlLm9yZw0K