From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 90807 invoked by alias); 26 Mar 2018 10:52:12 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 90351 invoked by uid 89); 26 Mar 2018 10:52:11 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,MIME_BASE64_BLANKS,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=XML X-HELO: EUR02-AM5-obe.outbound.protection.outlook.com Received: from mail-eopbgr00065.outbound.protection.outlook.com (HELO EUR02-AM5-obe.outbound.protection.outlook.com) (40.107.0.65) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 26 Mar 2018 10:52:10 +0000 Received: from AM3PR08MB0101.eurprd08.prod.outlook.com (10.160.211.19) by AM3PR08MB0149.eurprd08.prod.outlook.com (10.161.35.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Mon, 26 Mar 2018 10:52:05 +0000 Received: from AM3PR08MB0101.eurprd08.prod.outlook.com ([fe80::64e8:8f30:eae8:a839]) by AM3PR08MB0101.eurprd08.prod.outlook.com ([fe80::64e8:8f30:eae8:a839%13]) with mapi id 15.20.0609.012; Mon, 26 Mar 2018 10:52:05 +0000 From: Alan Hayward To: Simon Marchi CC: "gdb-patches@sourceware.org" , nd Subject: Re: [PATCH v4 08/10] Create xml from target descriptions Date: Mon, 26 Mar 2018 10:52:00 -0000 Message-ID: <8ABD362A-D033-42B8-8FB9-65D045A4560F@arm.com> References: <20180322084429.26250-1-alan.hayward@arm.com> <20180322084429.26250-9-alan.hayward@arm.com> <72de1a04-c866-70d0-5e2f-b8ded1b42551@ericsson.com> In-Reply-To: <72de1a04-c866-70d0-5e2f-b8ded1b42551@ericsson.com> authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;AM3PR08MB0149;7:3+SOfYsQODBCcNsPpoXRp+rL5hD7uxC9Ub/jEJce6xlcFcKCeX7TPUEQ/XTSt9eFYPl63hAkQeocMnh2X5RzQl7Uf3mPQvhGZ7Dkm1m+YD0rHL6yrLmwLbcJ8r9X7rSZZQmm5RffudWKlOkQOf2ocY2CCKGih8sj0Rfq7LYecZSmbXuHEhGvEq85v9aPLgMjJk6YJMxYzLOhQUtZ0ikfqOv7ryQ/B3aCfI57u8/hz44qkgpz87EmY2hUVte4cNw6 x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 8ab3ad38-1542-46be-3ac6-08d593079d1d x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(3008032)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);SRVR:AM3PR08MB0149; x-ms-traffictypediagnostic: AM3PR08MB0149: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(37575265505322)(180628864354917); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(3231221)(944501327)(52105095)(6055026)(6041310)(20161123560045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011);SRVR:AM3PR08MB0149;BCL:0;PCL:0;RULEID:;SRVR:AM3PR08MB0149; x-forefront-prvs: 06237E4555 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(376002)(366004)(39860400002)(346002)(39380400002)(396003)(199004)(189003)(377424004)(5660300001)(86362001)(66066001)(99286004)(229853002)(36756003)(6436002)(76176011)(59450400001)(2906002)(478600001)(106356001)(2616005)(446003)(11346002)(316002)(6306002)(6512007)(2900100001)(6246003)(3846002)(68736007)(53936002)(105586002)(26005)(4326008)(186003)(81156014)(81166006)(5250100002)(8676002)(72206003)(6506007)(102836004)(6116002)(25786009)(966005)(8936002)(53546011)(14454004)(83716003)(3660700001)(6486002)(33656002)(3280700002)(82746002)(54906003)(6916009)(97736004)(305945005)(7736002);DIR:OUT;SFP:1101;SCL:1;SRVR:AM3PR08MB0149;H:AM3PR08MB0101.eurprd08.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: BFSsqnmDIIODlHOyDAl9wSt4ibqp5G5hTvsGK3gJm2a0J/qloBCD7PZyRcVxFFeQLMnz6oVPQvF4NE1mhsiGyDpIO1TdVIOUImhHxW12m4TQt9Zus70wM39ZqAISzvgCB7uq8F3TrtTaU/P55TD27u6bwulCFdUDk36wOATzSR9beC9DStOkvoXGvkrFc/B28KwjDq0oL1X9GU+eCEI/7+fRYgAPRXImoVudHQPecHYQ/kOMW8mZjUTmCt6N73SD+vC3qWekD5UN8IsOvc5J34eHLao6cnX8LAO6a4cYmnx2LC+sDV+D5ZY2HZBVlkdercjmy9sUV5l4lB+qcPq7Pg== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <0F0893019A4A1049876079D49B6CDAC3@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8ab3ad38-1542-46be-3ac6-08d593079d1d X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Mar 2018 10:52:05.1379 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR08MB0149 X-IsSubscribed: yes X-SW-Source: 2018-03/txt/msg00524.txt.bz2 DQoNCj4gT24gMjMgTWFyIDIwMTgsIGF0IDIxOjI0LCBTaW1vbiBNYXJjaGkg PHNpbW9uLm1hcmNoaUBlcmljc3Nvbi5jb20+IHdyb3RlOg0KPiANCj4gT24g MjAxOC0wMy0yMiAwNDo0NCBBTSwgYWxhbi5oYXl3YXJkQGFybS5jb20gd3Jv dGU6DQo+PiBkaWZmIC0tZ2l0IGEvZ2RiL2NvbW1vbi90ZGVzYy5oIGIvZ2Ri L2NvbW1vbi90ZGVzYy5oDQo+PiBpbmRleCA4YWI3N2UzNjVmLi40NWViMjRl YTJiIDEwMDY0NA0KPj4gLS0tIGEvZ2RiL2NvbW1vbi90ZGVzYy5oDQo+PiAr KysgYi9nZGIvY29tbW9uL3RkZXNjLmgNCj4+IEBAIC0zNzEsNCArMzcxLDMz IEBAIHZvaWQgdGRlc2NfY3JlYXRlX3JlZyAoc3RydWN0IHRkZXNjX2ZlYXR1 cmUgKmZlYXR1cmUsIGNvbnN0IGNoYXIgKm5hbWUsDQo+PiAJCSAgICAgICBp bnQgcmVnbnVtLCBpbnQgc2F2ZV9yZXN0b3JlLCBjb25zdCBjaGFyICpncm91 cCwNCj4+IAkJICAgICAgIGludCBiaXRzaXplLCBjb25zdCBjaGFyICp0eXBl KTsNCj4+IA0KPj4gKy8qIFJldHVybiB0aGUgdGRlc2MgaW4gc3RyaW5nIFhN TCBmb3JtYXQuICAqLw0KPj4gKw0KPj4gK2NvbnN0IGNoYXIgKnRkZXNjX2dl dF9mZWF0dXJlc194bWwgKHRhcmdldF9kZXNjICp0ZGVzYyk7DQo+PiArDQo+ PiArLyogUHJpbnQgdGFyZ2V0IGRlc2NyaXB0aW9uIGFzIHhtbC4gICovDQo+ PiArDQo+PiArY2xhc3MgcHJpbnRfeG1sX2ZlYXR1cmUgOiBwdWJsaWMgdGRl c2NfZWxlbWVudF92aXNpdG9yDQo+PiArew0KPj4gK3B1YmxpYzoNCj4+ICsg IHByaW50X3htbF9mZWF0dXJlIChzdGQ6OnN0cmluZyAmYnVmZmVyXykNCj4g DQo+IEkgbWFkZSBhIHN1Z2dlc3Rpb24gZWFybGllciB0aGF0IHdlIGRvbid0 IHVzZSBub24tY29uc3QgcmVmZXJlbmNlcyBwYXJhbWV0ZXJzDQo+IChJIGRp ZCBub3QgZ2V0IGFueSBmZWVkYmFjayB5ZXQgdGhvdWdoKToNCj4gDQo+IGh0 dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxOC0wMy9t c2cwMDE0NS5odG1sDQo+IA0KPiBXb3VsZCB5b3UgbWluZCBjaGFuZ2luZyB0 aGlzIHBhcmFtZXRlciBmb3IgYSBwb2ludGVyPw0KDQpTb3JyeSwgbWlzc2Vk IHRoYXQuIFdpbGwgZG8uDQoNCj4gDQo+PiBzdGF0aWMgdm9pZA0KPj4gbWFp bnRfcHJpbnRfY190ZGVzY19jbWQgKGNvbnN0IGNoYXIgKmFyZ3MsIGludCBm cm9tX3R0eSkNCj4+IHsNCj4+IEBAIC0xNzYwLDcgKzE3NzcsMzYgQEAgbWFp bnRlbmFuY2VfY2hlY2tfeG1sX2Rlc2NyaXB0aW9ucyAoY29uc3QgY2hhciAq ZGlyLCBpbnQgZnJvbV90dHkpDQo+PiAJPSBmaWxlX3JlYWRfZGVzY3JpcHRp b25feG1sICh0ZGVzY194bWwuZGF0YSAoKSk7DQo+PiANCj4+ICAgICAgIGlm ICh0ZGVzYyA9PSBOVUxMIHx8ICp0ZGVzYyAhPSAqZS5zZWNvbmQpDQo+PiAt CWZhaWxlZCsrOw0KPj4gKwl7DQo+PiArCSAgcHJpbnRmX2ZpbHRlcmVkICgg XygiRGVzY3JpcHRpb25zIGZvciAlcyBkbyBub3QgbWF0Y2hcbiIpLCBlLmZp cnN0KTsNCj4+ICsJICBmYWlsZWQrKzsNCj4+ICsJICBjb250aW51ZTsNCj4+ ICsJfQ0KPj4gKw0KPj4gKyAgICAgIC8qIENvbnZlcnQgYm90aCBkZXNjcmlw dGlvbnMgdG8geG1sLCBhbmQgdGhlbiBiYWNrIGFnYWluLiAgQ29uZmlybSBh bGwNCj4+ICsJIGRlc2NyaXB0aW9ucyBhcmUgaWRlbnRpY2FsLiAgKi8NCj4+ ICsNCj4+ICsgICAgICBjb25zdCBjaGFyICp4bWwgPSB0ZGVzY19nZXRfZmVh dHVyZXNfeG1sICgodGFyZ2V0X2Rlc2MgKikgdGRlc2MpOw0KPj4gKyAgICAg IGNvbnN0IGNoYXIgKnhtbDIgPSB0ZGVzY19nZXRfZmVhdHVyZXNfeG1sICgo dGFyZ2V0X2Rlc2MgKikgZS5zZWNvbmQpOw0KPiANCj4gSW5zdGVhZCBvZiBj YXN0aW5nIGF3YXkgdGhlIGNvbnN0LCB0ZGVzY19nZXRfZmVhdHVyZXNfeG1s IHNob3VsZCBwcm9iYWJseSB0YWtlDQo+IGEgY29uc3QgdGFyZ2V0X2Rlc2Mg Ki4gIEJlY2F1c2UgaXQncyBqdXN0IHVzZWQgYXMgc29tZSBraW5kIG9mIGNh Y2hlL21lbW9pemF0aW9uLA0KPiB0aGUgeG1sdGFyZ2V0IGZpZWxkIG9mIHRh cmdldF9kZXNjIGNhbiBiZSBtYWRlIG11dGFibGUgKGNoYW5naW5nIGl0cyB2 YWx1ZSBkb2Vzbid0DQo+IHJlYWxseSBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRo ZSB0YXJnZXRfZGVzYykuDQoNClRoZSBtdXRhYmxlIGtleXdvcmQgaXMgZXhh Y3RseSB3aGF0IEkgd2FzIGxvb2tpbmcgZm9yIGhlcmUhDQoNCj4gDQo+PiAr ICAgICAgZ2RiX2Fzc2VydCAoKnhtbCA9PSAnQCcpOw0KPj4gKyAgICAgIGdk Yl9hc3NlcnQgKCp4bWwyID09ICdAJyk7DQo+PiArICAgICAgY29uc3QgdGFy Z2V0X2Rlc2MgKnRfdHJhbnMgPSB0YXJnZXRfcmVhZF9kZXNjcmlwdGlvbl94 bWxfc3RyaW5nICh4bWwrMSk7DQo+PiArICAgICAgY29uc3QgdGFyZ2V0X2Rl c2MgKnRfdHJhbnMyID0gdGFyZ2V0X3JlYWRfZGVzY3JpcHRpb25feG1sX3N0 cmluZyAoeG1sMisxKTsNCj4gDQo+IFNwYWNlcyBhcm91bmQgdGhlICsuDQo+ IA0KPiBDYW4geW91IHRyeSB0byBmaW5kIGJldHRlciBuYW1lcyB0aGFuIHht bCBhbmQgeG1sMj8NCj4gDQo+IEluc3RlYWQgb2YgZG9pbmcgZXZlcnl0aGlu ZyB0d2ljZSwgbWF5YmUgaXQgd291bGQgYmUgY2xlYXJlciB0byBoYXZlIGEg c2VwYXJhdGUNCj4gZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHNpbmdsZSB0YXJn ZXRfZGVzYyBhbmQgY29udmVydHMgaXQgdG8geG1sIGFuZCBiYWNrLCBhbmQN Cj4gdmVyaWZpZXMgdGhhdCB0aGUgcmVzdWx0aW5nIHRhcmdldF9kZXNjIGlz IGVxdWFsIHRvIHRoZSBpbml0aWFsIG9uZS4gIFlvdSBjYW4NCj4gdGhlbiBj YWxsIHRoaXMgZnVuY3Rpb24gdHdpY2UuDQo+IA0KDQpXaWxsIGRvLg0KDQo+ IEJ1dCBzdGVwcGluZyBiYWNrIGEgbGl0dGxlIGJpdCwgaXMgaXQgcmVsZXZh bnQgdG8gZG8gdGhpcyB0ZXN0IG9uIGJvdGggdGFyZ2V0X2Rlc2MsDQo+IGV2 ZW4gYWZ0ZXIgd2UgY2hlY2sgdGhhdCB0aGV5IGFyZSBlcXVhbD8gIE1heWJl IGl0IGlzLCBJJ20ganVzdCBhc2tpbmcgOikNCj4gDQoNCklmIHRoaXMgY29k ZSB3YXMgZXhlY3V0ZWQgYXMgcGFydCBvZiBhIGdlbmVyYWwgcnVuIG9mIGdk YiwgdGhlbiBJ4oCZZCBhZ3JlZSBhbmQNCm1vdmUgb25lIG9mIHRoZW0gb3V0 LiBIb3dldmVyLCBnaXZlbiB0aGlzIGlzIHBhcnQgb2YgdGVzdCB0aGUgdW5p dCB0ZXN0cyBhbmQgaXTigJlzIG5vdA0Kc2xvd2luZyBhbnl0aGluZyBkb3du IHRoZW4gSeKAmW0gbW9yZSBpbmNsaW5lZCB0byBsZWF2ZSBpdCBpbi4gTWF5 YmUgaWYgc29tZW9uZQ0KYWRkZWQgbmV3IHRkZXNjIGZpZWxkcyBhbmQgZGlk buKAmXQgaW5jbHVkZSB0aGVtIGNvcnJlY3RseSBpbiB0aGUgZXF1YWxzIG9w ZXJhdG9yDQphbmQvb3IgeG1sIGdlbmVyYXRpb24uIChBbHRob3VnaCBJIHNl ZSB0aGUgYXJndW1lbnQgZm9yIHJlbW92aW5nIGl0IHRvIHNpbXBseQ0KdGhl IGNvZGUpLg0KDQoNCj4+ICsNCj4+ICsgICAgICBpZiAodF90cmFucyA9PSBO VUxMIHx8IHRfdHJhbnMyID09IE5VTEwpDQo+PiArCXsNCj4+ICsJICBwcmlu dGZfZmlsdGVyZWQgKA0KPj4gKwkgICAgXygiQ291bGQgbm90IGNvbnZlcnQg ZGVzY3JpcHRpb25zIGZvciAlcyBiYWNrIHRvIHhtbCAoJXAgJXApXG4iKSwN Cj4+ICsJICAgIGUuZmlyc3QsIHRfdHJhbnMsIHRfdHJhbnMyKTsNCj4+ICsJ ICBmYWlsZWQrKzsNCj4+ICsJfQ0KPj4gKyAgICAgIGVsc2UgaWYgKCp0ZGVz YyAhPSAqdF90cmFucyB8fCAqdGRlc2MgIT0gKnRfdHJhbnMyKQ0KPj4gKwl7 DQo+PiArCSAgcHJpbnRmX2ZpbHRlcmVkDQo+PiArCSAgICAoXygiVHJhbnNs YXRlZCBkZXNjcmlwdGlvbnMgZm9yICVzIGRvIG5vdCBtYXRjaCAoJWQgJWQp XG4iKSwNCj4+ICsJICAgIGUuZmlyc3QsICp0ZGVzYyA9PSAqdF90cmFucywg KnRkZXNjID09ICp0X3RyYW5zMik7DQo+PiArCSAgZmFpbGVkKys7DQo+PiAr CX0NCj4+ICAgICB9DQo+PiAgIHByaW50Zl9maWx0ZXJlZCAoXygiVGVzdGVk ICVsdSBYTUwgZmlsZXMsICVkIGZhaWxlZFxuIiksDQo+PiAJCSAgIChsb25n KSBzZWxmdGVzdHM6OnhtbF90ZGVzYy5zaXplICgpLCBmYWlsZWQpOw0KPj4g ZGlmZiAtLWdpdCBhL2dkYi94bWwtdGRlc2MuYyBiL2dkYi94bWwtdGRlc2Mu Yw0KPj4gaW5kZXggOTE5MGQ1ZjNjNi4uZjc5M2YwN2M5NiAxMDA2NDQNCj4+ IC0tLSBhL2dkYi94bWwtdGRlc2MuYw0KPj4gKysrIGIvZ2RiL3htbC10ZGVz Yy5jDQo+PiBAQCAtNzUyLDMgKzc1MiwxMiBAQCB0YXJnZXRfZmV0Y2hfZGVz Y3JpcHRpb25feG1sIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzKQ0KPj4gICBy ZXR1cm4gb3V0cHV0Ow0KPj4gI2VuZGlmDQo+PiB9DQo+PiArDQo+PiArLyog VGFrZSBhbiB4bWwgc3RyaW5nLCBwYXJzZSBpdCwgYW5kIHJldHVybiB0aGUg cGFyc2VkIGRlc2NyaXB0aW9uLiAgRG9lcyBub3QNCj4+ICsgICBoYW5kbGUg YSBzdHJpbmcgY29udGFpbmluZyBpbmNsdWRlcy4gICovDQo+IA0KPiBTaG91 bGQgYmUgLyogU2VlIHhtbC10ZGVzYy5oLiAgKi8NCg0KT2suDQoNCj4gDQo+ PiArDQo+PiArY29uc3Qgc3RydWN0IHRhcmdldF9kZXNjICoNCj4+ICt0YXJn ZXRfcmVhZF9kZXNjcmlwdGlvbl94bWxfc3RyaW5nIChjb25zdCBjaGFyICp4 bWxfc3RyKQ0KPiANCj4gSSB0aGluayB0aGlzIGZ1bmN0aW9uIGlzIG1pc25h bWVkLiAgSWYgeW91IGxvb2sgYXQgdGhlIG90aGVyIHNpbWlsYXIgZnVuY3Rp b25zLA0KPiB0aGUgcHJlZml4ICh0YXJnZXRfLCBmaWxlXykgcmVmZXJzIHRv IHRoZSBzb3VyY2Ugb2YgdGhlIGZpbGUuICBTbyB0byBmb2xsb3cgdGhlDQo+ IHNhbWUgY29udmVudGlvbiwgdGhpcyBmdW5jdGlvbiBjb3VsZCBiZSBuYW1l ZCBzdHJpbmdfcmVhZF9kZXNjcmlwdGlvbl94bWwuDQoNCk9rLg0KDQo+IA0K Pj4gK3sNCj4+ICsgIHJldHVybiB0ZGVzY19wYXJzZV94bWwgKHhtbF9zdHIs IG51bGxwdHIsIG51bGxwdHIpOw0KPiANCj4gSW5zdGVhZCBvZiBwYXNzaW5n IG51bGxwdHIgZm9yIGZldGNoZXIsIGNvdWxkIHlvdSBwYXNzIGEgZHVtbXkg ZnVuY3Rpb24gdGhhdA0KPiBqdXN0IGVycm9ycyBvdXQ/ICBJZiBpdCBldmVy IGhhcHBlbnMsIGl0IHdpbGwgYmUgbW9yZSBncmFjZWZ1bCB0aGFuIGEgc2Vn ZmF1bHQuDQo+IFlvdSBjYW4gdXNlIGEgbGFtYmRhIGxpa2UgdGhpczoNCj4g DQo+IGNvbnN0IHN0cnVjdCB0YXJnZXRfZGVzYyAqDQo+IHRhcmdldF9yZWFk X2Rlc2NyaXB0aW9uX3htbF9zdHJpbmcgKGNvbnN0IGNoYXIgKnhtbF9zdHIp DQo+IHsNCj4gIHJldHVybiB0ZGVzY19wYXJzZV94bWwgKHhtbF9zdHIsIFtd IChjb25zdCBjaGFyICpocmVmLCB2b2lkICpiYXRvbikgew0KPiAgICBlcnJv ciAoXygieGluY2x1ZGVzIGFyZSB1bnN1cHBvcnRlZCB3aXRoIHRoaXMgbWV0 aG9kIikpOw0KPiAgICByZXR1cm4gZ2RiOjp1bmlxdWVfeG1hbGxvY19wdHI8 Y2hhcj4gKCk7DQo+ICB9LCBudWxscHRyKTsNCj4gfQ0KPiANCg0KV2lsbCBk by4NCg0KDQpXaWxsIHVwZGF0ZSB3aGVuIEkgZ2V0IGJhY2sgaW4gdHdvIHdl ZWtzLg0KDQpBbGFuLg0KDQoNCg0K