From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 41E0FA0527; Tue, 10 Nov 2020 00:15:37 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 188A96889; Tue, 10 Nov 2020 00:15:35 +0100 (CET) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30064.outbound.protection.outlook.com [40.107.3.64]) by dpdk.org (Postfix) with ESMTP id C94F25937 for ; Tue, 10 Nov 2020 00:15:31 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EKF4YpN/RocqPY+SJg3Rnm3kUu3A6EP0R6NhXW0zy54=; b=yKRyEP/82Qgzo5l4nTLw4AtUd0zaHS02P0e67S8BmWiCGUr+nMWJxS1wBL/35HxFZJFv3y+R59LRXSR+hhJyEUWcsq1UsSH/D9w6TBrlDdqfsfjQBa8I1TcgBlOk4PuWJE8XpYNYxCZk8bNZ5ixvvHnF+8weSzb/dhAp+C6C5rw= Received: from AM6PR08CA0036.eurprd08.prod.outlook.com (2603:10a6:20b:c0::24) by AM6PR08MB3013.eurprd08.prod.outlook.com (2603:10a6:209:4e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3541.21; Mon, 9 Nov 2020 23:15:28 +0000 Received: from AM5EUR03FT026.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:c0:cafe::11) by AM6PR08CA0036.outlook.office365.com (2603:10a6:20b:c0::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3541.21 via Frontend Transport; Mon, 9 Nov 2020 23:15:28 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT026.mail.protection.outlook.com (10.152.16.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3541.17 via Frontend Transport; Mon, 9 Nov 2020 23:15:28 +0000 Received: ("Tessian outbound 082214a64d39:v71"); Mon, 09 Nov 2020 23:15:28 +0000 X-CR-MTA-TID: 64aa7808 Received: from c5ce286a23a5.4 by 64aa7808-outbound-1.mta.getcheckrecipient.com id C3F37408-7B82-4E63-B742-29988CA39509.1; Mon, 09 Nov 2020 23:15:23 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c5ce286a23a5.4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 09 Nov 2020 23:15:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jjh7TMEGW7AA/ODhaLwKpZQikidrr0CcQ00cGZ+KEO7C8aGGouJa43xHIpa0Icwj69dxc4j8KBNbEW1/SXOyoghfCIgjkIYdOzE7pPAXlClFiYuVBDg0Y31K00lh1JtTQT5qn+Zqhzfwb3sOpxyggfQfIT9AMvMNo1UVJ3EWVWNZPoZOtAEosgM1oc8hFrrlzQavL/wZZKqeYsymmbDGoR5qvNLH3oRdq3t7kiwB1PcRBIrNVJzyAcYuVCP3FTTvElWePBVnZeOfIG4Wzq2QKRHw5sFPRY7bh57nx/J8BtFIjqE6ohfDGoh+3oKL0SRRRX1rny71r4gadGaReISDig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EKF4YpN/RocqPY+SJg3Rnm3kUu3A6EP0R6NhXW0zy54=; b=KG/uNlCZk5eGCjXkIRsGLOKmryyUwLFgnSGofQdssBMp3yAxBgxoVzqL0B9fa8vx+cRRqOYBbct+9J37S3EQY3rGX0WkhlVmwnlq5zpPTFQVHyloXUFgN24X/0hISmq/ET1iwYY+C4GtICiVDGM24Oak4zxk5aPkDK+PeQytklVNej/d6aYYrelTYqlzdIbLkjn2nB5xprlGEWUW/nS4bH/UCS48mSVMFkv6rWueVHPq/7tQ8dlgFvznZ49AJmW3Mqrr28fopCkMCxi6wzJAkRZc5UBKcFzTR0+EZ0Redu/KKA21+oNB7o3x1I1pp68PZ4GrHsLJ3AedrXk9/MMLVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EKF4YpN/RocqPY+SJg3Rnm3kUu3A6EP0R6NhXW0zy54=; b=yKRyEP/82Qgzo5l4nTLw4AtUd0zaHS02P0e67S8BmWiCGUr+nMWJxS1wBL/35HxFZJFv3y+R59LRXSR+hhJyEUWcsq1UsSH/D9w6TBrlDdqfsfjQBa8I1TcgBlOk4PuWJE8XpYNYxCZk8bNZ5ixvvHnF+8weSzb/dhAp+C6C5rw= Received: from DBAPR08MB5814.eurprd08.prod.outlook.com (2603:10a6:10:1b1::6) by DB6PR0802MB2375.eurprd08.prod.outlook.com (2603:10a6:4:87::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3541.25; Mon, 9 Nov 2020 23:15:17 +0000 Received: from DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::7814:9c1:781f:475d]) by DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::7814:9c1:781f:475d%4]) with mapi id 15.20.3541.025; Mon, 9 Nov 2020 23:15:17 +0000 From: Honnappa Nagarahalli To: =?utf-8?B?SnVyYWogTGlua2XFoQ==?= , "bruce.richardson@intel.com" , Ruifeng Wang , Phil Yang , "vcchunga@amazon.com" , Dharmik Thakkar , "jerinjacobk@gmail.com" , "hemant.agrawal@nxp.com" , "Ajit Khaparde (ajit.khaparde@broadcom.com)" , "ferruh.yigit@intel.com" , "aconole@redhat.com" CC: "dev@dpdk.org" , nd , Honnappa Nagarahalli , nd Thread-Topic: [PATCH v8 06/14] build: organize Arm config into dict Thread-Index: AQHWtGyi03639BE+MkCp65o03mmQ+6m+cN3wgAEvNwCAAM6LMA== Date: Mon, 9 Nov 2020 23:15:16 +0000 Message-ID: References: <1604584762-25321-1-git-send-email-juraj.linkes@pantheon.tech> <1604649795-27476-1-git-send-email-juraj.linkes@pantheon.tech> <1604649795-27476-7-git-send-email-juraj.linkes@pantheon.tech> <3017238126084c908039266d4b13f1b8@pantheon.tech> In-Reply-To: <3017238126084c908039266d4b13f1b8@pantheon.tech> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: D2CD3C6B8FB9D14AB1939F5A36601E16.0 x-checkrecipientchecked: true Authentication-Results-Original: pantheon.tech; dkim=none (message not signed) header.d=none; pantheon.tech; dmarc=none action=none header.from=arm.com; x-originating-ip: [107.77.222.10] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 9ff7fdc7-a053-4e62-bbda-08d8850558e9 x-ms-traffictypediagnostic: DB6PR0802MB2375:|AM6PR08MB3013: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: P8KXaSdOfqzcXO9AqMkf+o2y4yJWbe3AbVLOwIw1GaAJumv582YhW8j8TOQ7eiEr6QBm31l9jAlm7P2MlKiDObSl9yNE3UVArwvm6fxzoOa6U5MdApQ/yxyzKMlW9bfOFD1hPPZIKs11F6sloy7K3OSOTZ6qKMKBWcH7/7a5XLFS24fDEfyBYU05hbGLkpy1yHqe0gvSM8mxcQ2H7V6lEc1TFwETbM8V4PQGJnFnmLHwpEQ/PA2z1oGiY/lahhJHLOAfzyaGOe8WFfaau9dQ/b6/8wGTcjqz/J87V6P3kh8AFHyhg44UUlMtKJ0+prX/igz7dE7PGmm3Z1k6ev32f3CsfFVx5QLv4Qyjv5B79vmABxeYxlE3/vGL+4xutuHL X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBAPR08MB5814.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(39850400004)(346002)(136003)(376002)(366004)(71200400001)(30864003)(66556008)(66446008)(64756008)(52536014)(5660300002)(7696005)(6506007)(66476007)(66946007)(76116006)(33656002)(9686003)(55016002)(8676002)(8936002)(186003)(86362001)(83380400001)(2906002)(4326008)(54906003)(110136005)(316002)(26005)(478600001)(921003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: 8aLj+Sb2HjU7VW9Z63nc15ju0f5TEuJD38wFlCIpNhazLP1c77CSnCq/zUR1YZ54vd59JThQh70tgSiIC8siNJHzteMuhtTUeRejnFdRYJn4yXJOGIuN/KuMCGytQw9LPRD2xACTrynibARgKpPxsAKf6v3zjAYIXeQsBPv/9DEF8bTKqKkq8SBtP7JCyA2JI1J4LJFann1fHfTck3wPb9B8bhTeykaMZjJsEH3co75eXnTGdx38evkzqu9hJn425tJgg+otib4QRMrc3OwyE1/SavHeSTyV6lJL+LRMsVhLXv44RFhLyGYVGbzED7/qdNYNxryKH+Kq0+OgzYDbSQXItV8eoOIDXyS6u8nkuCu94DAJ1Vy95L/EiTUiT64GeQ/G1nXtqzqVoRmF/1S7YBTa4ytY3uKxcA45hEwzOyX9QN0Tac4apr6vqQsoFf2TqfohQ3JgLgBSPEWDVf4EpqQ9nMN5Hlj3dqV9X4IPx1jNSD2wex105MOVC4JxnWni/auOt/VjATiQ5eQf7oYPbARO5T52nmQf8KSEjcMM4dbdLi3ypATz0N2sABNi7mIaXwIxVJ1T+lgp+6EiYwOcMWYU3yz6R45hiEx7s9S3x/OLB+IpOl9h3LCdiEA36hfn8EAxi5jngsgzB3AGjDQLxG03x+ezK8qtrfSqlOG5qp86CbgqSVJIvTK/TTYTAEAm8JnZQa0Y1bps99qKITpFIcicpB2dbtOAiNK/EPv+aFDVfCa0D9yKzylvqJCYNetQ1e9FiqXRvhgDq3P6ts8KZJtaVBJkiQjrRjEAUC+UibNtsfSpchr0NyTBpYPGrcsGM3B2RFTD5Pb2iEgjRa3P8IrCguniESpf3ijHA8pE2H1IBcX9Tt0WADX35tsbUS4Y7DvDu53Ggqj1a1F8Ig+hDw== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2375 Original-Authentication-Results: pantheon.tech; dkim=none (message not signed) header.d=none; pantheon.tech; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT026.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: f2263b83-71ab-4c8d-32db-08d885055257 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8XXCt+tscawqscxddQwZ+hbHzd2TgLtwYLfbKupZ59i2N6D8ugAGz7rGY85hZAgCTzw8WWDA5r+ZgqBIT/vegBhP7n3suZOWOijZirEiZTAWUDsReD7zNj7eRxK+JjrI5W6soqC7EFcRuwSqaxbdUZBHh0z5N5utDS1B2ZnnDyH011fkiSK7+TgpZ1d0d06DrLpWVJv6za1cGLyk1kc17+IBagJSOq79/dh9EIi0hADazu4tHIqqiiNGxMjTfhj4mVBW3dG32iW97iat/w9PSR9/n46rVL6DCXQjoj69NZNpdgumFQ3zpFkYVX80I3veFSwxDblwZC02HfrTlMoFfY+aqgmcC91/l2i0/a3F6F+TUdUv867qAtYeNoWwxm4Khl5uF+ol6UexY0YM2t5B6Ys6Kxn2NlouMFCO+hxQ5c4= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(396003)(376002)(39850400004)(346002)(136003)(46966005)(186003)(33656002)(356005)(9686003)(6506007)(83380400001)(47076004)(82740400003)(70586007)(70206006)(55016002)(82310400003)(30864003)(316002)(54906003)(86362001)(478600001)(81166007)(8676002)(52536014)(5660300002)(4326008)(36906005)(26005)(7696005)(8936002)(110136005)(2906002)(336012)(921003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2020 23:15:28.5075 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9ff7fdc7-a053-4e62-bbda-08d8850558e9 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT026.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3013 Subject: Re: [dpdk-dev] [PATCH v8 06/14] build: organize Arm config into dict X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PHNuaXA+DQoNCj4gPg0KPiA+ID4NCj4gPiA+IFVzZSBkaWN0aW9uYXJ5IGxvb2t1cCBpbnN0ZWFk IG9mIGNoZWNraW5nIGZvciBleGlzdGluZyB2YXJpYWJsZXMsDQo+ID4gPiBpdGVyYXRpbmcgb3Zl ciBhbGwgZWxlbWVudHMgaW4gdGhlIGxpc3Qgb3IgY2hlY2tpbmcgbGlzdHMgZm9yDQo+ID4gPiBv cHRpb25hbCBjb25maWd1cmF0aW9uLiBNb3ZlIHZhcmlhYmxlIGNvbnRlbnRzIGludG8gdGhlIGRp Y3Rpb25hcnkNCj4gPiA+IGZvciB2YXJpYWJsZXMgdGhhdCB3b3VsZCBiZSByZWZlcmVuY2VkIG9u bHkgb25jZS4NCj4gPiA+IEZhbGxiYWNrIHRvIGdlbmVyaWMgcGFydCBudW1iZXIgaWYgdGhlIGRp c2NvdmVyZWQgcGFydCBudW1iZXIgaXMgdW5rbm93bi4NCj4gPiA+DQo+ID4gPiBTaWduZWQtb2Zm LWJ5OiBKdXJhaiBMaW5rZcWhIDxqdXJhai5saW5rZXNAcGFudGhlb24udGVjaD4NCj4gPiA+IC0t LQ0KPiA+ID4gIGNvbmZpZy9hcm0vbWVzb24uYnVpbGQgfCAyODINCj4gPiA+ICsrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDE2 MCBpbnNlcnRpb25zKCspLCAxMjIgZGVsZXRpb25zKC0pDQo+ID4gPg0KPiA+ID4gZGlmZiAtLWdp dCBhL2NvbmZpZy9hcm0vbWVzb24uYnVpbGQgYi9jb25maWcvYXJtL21lc29uLmJ1aWxkIGluZGV4 DQo+ID4gPiBlZGE0ODVlN2YuLjVkMjMyZjFjNCAxMDA2NDQNCj4gPiA+IC0tLSBhL2NvbmZpZy9h cm0vbWVzb24uYnVpbGQNCj4gPiA+ICsrKyBiL2NvbmZpZy9hcm0vbWVzb24uYnVpbGQNCj4gPiA+ IEBAIC0yOCwxMTUgKzI4LDE0NiBAQCBmbGFnc19jb21tb25fZGVmYXVsdCA9IFsNCj4gPiA+ICAJ WydSVEVfQ0FDSEVfTElORV9TSVpFJywgMTI4XQ0KPiA+ID4gIF0NCj4gPiA+DQo+ID4gPiAtIyBp bXBsZW1lbnRlciBzcGVjaWZpYyBhYXJjaDY0IGZsYWdzLCB3aXRoIG1pZGRsZSBwcmlvcml0eSAt IyAod2lsbA0KPiA+ID4gb3ZlcndyaXRlIGNvbW1vbiBmbGFncykgLWZsYWdzX2ltcGxlbWVudGVy X2dlbmVyaWMgPSBbDQo+ID4gPiAtCVsnUlRFX01BQ0hJTkUnLCAnImFybXY4YSInXSwNCj4gPiA+ IC0JWydSVEVfVVNFX0MxMV9NRU1fTU9ERUwnLCB0cnVlXSwNCj4gPiA+IC0JWydSVEVfQ0FDSEVf TElORV9TSVpFJywgMTI4XSwNCj4gPiA+IC0JWydSVEVfTUFYX0xDT1JFJywgMjU2XQ0KPiA+ID4g LV0NCj4gPiA+IC1mbGFnc19pbXBsZW1lbnRlcl9hcm0gPSBbDQo+ID4gPiAtCVsnUlRFX01BQ0hJ TkUnLCAnImFybXY4YSInXSwNCj4gPiA+IC0JWydSVEVfVVNFX0MxMV9NRU1fTU9ERUwnLCB0cnVl XSwNCj4gPiA+IC0JWydSVEVfQ0FDSEVfTElORV9TSVpFJywgNjRdLA0KPiA+ID4gLQlbJ1JURV9N QVhfTENPUkUnLCAxNl0NCj4gPiA+IC1dDQo+ID4gPiAtZmxhZ3NfaW1wbGVtZW50ZXJfY2F2aXVt ID0gWw0KPiA+ID4gLQlbJ1JURV9NQVhfVkZJT19HUk9VUFMnLCAxMjhdLA0KPiA+ID4gLQlbJ1JU RV9DQUNIRV9MSU5FX1NJWkUnLCAxMjhdLA0KPiA+ID4gLQlbJ1JURV9NQVhfTENPUkUnLCA5Nl0s DQo+ID4gPiAtCVsnUlRFX01BWF9OVU1BX05PREVTJywgMl0NCj4gPiA+IC1dDQo+ID4gPiAtZmxh Z3NfaW1wbGVtZW50ZXJfZHBhYSA9IFsNCj4gPiA+IC0JWydSVEVfTUFDSElORScsICciZHBhYSIn XSwNCj4gPiA+IC0JWydSVEVfTElCUlRFX0RQQUEyX1VTRV9QSFlTX0lPVkEnLCBmYWxzZV0sDQo+ ID4gPiAtCVsnUlRFX1VTRV9DMTFfTUVNX01PREVMJywgdHJ1ZV0sDQo+ID4gPiAtCVsnUlRFX0NB Q0hFX0xJTkVfU0laRScsIDY0XSwNCj4gPiA+IC0JWydSVEVfTUFYX0xDT1JFJywgMTZdLA0KPiA+ ID4gLQlbJ1JURV9NQVhfTlVNQV9OT0RFUycsIDFdDQo+ID4gPiAtXQ0KPiA+ID4gLWZsYWdzX2lt cGxlbWVudGVyX2VtYWcgPSBbDQo+ID4gPiAtCVsnUlRFX01BQ0hJTkUnLCAnImVtYWciJ10sDQo+ ID4gPiAtCVsnUlRFX0NBQ0hFX0xJTkVfU0laRScsIDY0XSwNCj4gPiA+IC0JWydSVEVfTUFYX0xD T1JFJywgMzJdLA0KPiA+ID4gLQlbJ1JURV9NQVhfTlVNQV9OT0RFUycsIDFdDQo+ID4gPiAtXQ0K PiA+ID4gLWZsYWdzX2ltcGxlbWVudGVyX2FybWFkYSA9IFsNCj4gPiA+IC0JWydSVEVfTUFDSElO RScsICciYXJtdjhhIiddLA0KPiA+ID4gLQlbJ1JURV9DQUNIRV9MSU5FX1NJWkUnLCA2NF0sDQo+ ID4gPiAtCVsnUlRFX01BWF9MQ09SRScsIDE2XSwNCj4gPiA+IC0JWydSVEVfTUFYX05VTUFfTk9E RVMnLCAxXQ0KPiA+ID4gLV0NCj4gPiA+IC0NCj4gPiA+IC0jIHBhcnQgbnVtYmVyIHNwZWNpZmlj IGFhcmNoNjQgZmxhZ3MsIHdpdGggaGlnaGVzdCBwcmlvcml0eSAtIw0KPiA+ID4gKHdpbGwgb3Zl cndyaXRlIGJvdGggY29tbW9uIGFuZCBpbXBsZW1lbnRlciBzcGVjaWZpYyBmbGFncykNCj4gPiA+ IGZsYWdzX3BhcnRfbnVtYmVyX3RodW5kZXJ4ID0gWw0KPiA+ID4gIAlbJ1JURV9NQUNISU5FJywg JyJ0aHVuZGVyeCInXSwNCj4gPiA+ICAJWydSVEVfVVNFX0MxMV9NRU1fTU9ERUwnLCBmYWxzZV0N Cj4gPiA+ICBdDQo+ID4gPiAtZmxhZ3NfcGFydF9udW1iZXJfdGh1bmRlcngyID0gWw0KPiA+ID4g LQlbJ1JURV9NQUNISU5FJywgJyJ0aHVuZGVyeDIiJ10sDQo+ID4gPiAtCVsnUlRFX0FSTV9GRUFU VVJFX0FUT01JQ1MnLCB0cnVlXSwNCj4gPiA+IC0JWydSVEVfVVNFX0MxMV9NRU1fTU9ERUwnLCB0 cnVlXSwNCj4gPiA+IC0JWydSVEVfQ0FDSEVfTElORV9TSVpFJywgNjRdLA0KPiA+ID4gLQlbJ1JU RV9NQVhfTENPUkUnLCAyNTZdLA0KPiA+ID4gLQlbJ1JURV9NQVhfTlVNQV9OT0RFUycsIDJdDQo+ ID4gPiAtXQ0KPiA+ID4gLWZsYWdzX3BhcnRfbnVtYmVyX29jdGVvbnR4MiA9IFsNCj4gPiA+IC0J WydSVEVfTUFDSElORScsICcib2N0ZW9udHgyIiddLA0KPiA+ID4gLQlbJ1JURV9BUk1fRkVBVFVS RV9BVE9NSUNTJywgdHJ1ZV0sDQo+ID4gPiAtCVsnUlRFX1VTRV9DMTFfTUVNX01PREVMJywgdHJ1 ZV0sDQo+ID4gPiAtCVsnUlRFX0VBTF9JR0JfVUlPJywgZmFsc2VdLA0KPiA+ID4gLQlbJ1JURV9N QVhfTENPUkUnLCAzNl0sDQo+ID4gPiAtCVsnUlRFX01BWF9OVU1BX05PREVTJywgMV0NCj4gPiA+ IC1dDQo+ID4gPiAtZmxhZ3NfcGFydF9udW1iZXJfbjFnZW5lcmljID0gWw0KPiA+ID4gLQlbJ1JU RV9NQUNISU5FJywgJyJuZW92ZXJzZS1uMSInXSwNCj4gPiA+IC0JWydSVEVfQVJNX0ZFQVRVUkVf QVRPTUlDUycsIHRydWVdLA0KPiA+ID4gLQlbJ1JURV9VU0VfQzExX01FTV9NT0RFTCcsIHRydWVd LA0KPiA+ID4gLQlbJ1JURV9FQUxfTlVNQV9BV0FSRV9IVUdFUEFHRVMnLCBmYWxzZV0sDQo+ID4g PiAtCVsnUlRFX0xJQlJURV9WSE9TVF9OVU1BJywgZmFsc2VdLA0KPiA+ID4gLQlbJ1JURV9NQVhf TUVNX01CJywgMTA0ODU3Nl0sDQo+ID4gPiAtCVsnUlRFX0NBQ0hFX0xJTkVfU0laRScsIDY0XSwN Cj4gPiA+IC0JWydSVEVfTUFYX0xDT1JFJywgNjRdLA0KPiA+ID4gLQlbJ1JURV9NQVhfTlVNQV9O T0RFUycsIDFdDQo+ID4gPiAtXQ0KPiA+ID4gLQ0KPiA+ID4gLSMgYXJtIGNvbmZpZyAoaW1wbGVt ZW50ZXIgMHg0MSkgaXMgdGhlIGRlZmF1bHQgY29uZmlnIC0NCj4gPiA+IHBhcnRfbnVtYmVyX2Nv bmZpZ19hcm0gPSBbDQo+ID4gPiAtCVsnZ2VuZXJpYycsIFsnLW1hcmNoPWFybXY4LWErY3JjJywg Jy1tb3V0bGluZS1hdG9taWNzJ11dLA0KPiA+ID4gLQlbJ25hdGl2ZScsIFsnLW1hcmNoPW5hdGl2 ZSddXSwNCj4gPiA+IC0JWycweGQwMycsIFsnLW1jcHU9Y29ydGV4LWE1MyddXSwNCj4gPiA+IC0J WycweGQwNCcsIFsnLW1jcHU9Y29ydGV4LWEzNSddXSwNCj4gPiA+IC0JWycweGQwNycsIFsnLW1j cHU9Y29ydGV4LWE1NyddXSwNCj4gPiA+IC0JWycweGQwOCcsIFsnLW1jcHU9Y29ydGV4LWE3Midd XSwNCj4gPiA+IC0JWycweGQwOScsIFsnLW1jcHU9Y29ydGV4LWE3MyddXSwNCj4gPiA+IC0JWycw eGQwYScsIFsnLW1jcHU9Y29ydGV4LWE3NSddXSwNCj4gPiA+IC0JWycweGQwYicsIFsnLW1jcHU9 Y29ydGV4LWE3NiddXSwNCj4gPiA+IC0JWycweGQwYycsIFsnLW1hcmNoPWFybXY4LjItYStjcnlw dG8nLCAnLW1jcHU9bmVvdmVyc2UtbjEnXSwNCj4gPiA+IGZsYWdzX3BhcnRfbnVtYmVyX24xZ2Vu ZXJpY10NCj4gPiA+IC1dDQo+ID4gPiAtcGFydF9udW1iZXJfY29uZmlnX2Nhdml1bSA9IFsNCj4g PiA+IC0JWydnZW5lcmljJywgWyctbWFyY2g9YXJtdjgtYStjcmMrY3J5cHRvJywnLW1jcHU9dGh1 bmRlcngnXV0sDQo+ID4gPiAtCVsnbmF0aXZlJywgWyctbWFyY2g9bmF0aXZlJ11dLA0KPiA+ID4g LQlbJzB4YTEnLCBbJy1tY3B1PXRodW5kZXJ4dDg4J10sIGZsYWdzX3BhcnRfbnVtYmVyX3RodW5k ZXJ4XSwNCj4gPiA+IC0JWycweGEyJywgWyctbWNwdT10aHVuZGVyeHQ4MSddLCBmbGFnc19wYXJ0 X251bWJlcl90aHVuZGVyeF0sDQo+ID4gPiAtCVsnMHhhMycsIFsnLW1jcHU9dGh1bmRlcnh0ODMn XSwgZmxhZ3NfcGFydF9udW1iZXJfdGh1bmRlcnhdLA0KPiA+ID4gLQlbJzB4YWYnLCBbJy1tYXJj aD1hcm12OC4xLWErY3JjK2NyeXB0bycsJy1tY3B1PXRodW5kZXJ4MnQ5OSddLA0KPiA+ID4gZmxh Z3NfcGFydF9udW1iZXJfdGh1bmRlcngyXSwNCj4gPiA+IC0JWycweGIyJywgWyctbWFyY2g9YXJt djguMi1hK2NyYytjcnlwdG8rbHNlJywnLW1jcHU9b2N0ZW9udHgyJ10sDQo+ID4gPiBmbGFnc19w YXJ0X251bWJlcl9vY3Rlb250eDJdDQo+ID4gPiAtXQ0KPiA+ID4gLXBhcnRfbnVtYmVyX2NvbmZp Z19lbWFnID0gWw0KPiA+ID4gLQlbJ2dlbmVyaWMnLCBbJy1tYXJjaD1hcm12OC1hK2NyYytjcnlw dG8nLCAnLW10dW5lPWVtYWcnXV0sDQo+ID4gPiAtCVsnbmF0aXZlJywgWyctbWFyY2g9bmF0aXZl J11dDQo+ID4gPiAtXQ0KPiA+ID4gK3BhcnRfbnVtYmVyX2NvbmZpZ19hcm0gPSB7DQo+ID4gPiAr CSdnZW5lcmljJzogeydtYWNoaW5lX2FyZ3MnOiAgWyctbWFyY2g9YXJtdjgtYStjcmMnLCAnLW1v dXRsaW5lLQ0KPiA+ID4gYXRvbWljcyddfSwNCj4gPiA+ICsJJ25hdGl2ZSc6IHsnbWFjaGluZV9h cmdzJzogIFsnLW1hcmNoPW5hdGl2ZSddfSwNCj4gPiA+ICsJJzB4ZDAzJzogeydtYWNoaW5lX2Fy Z3MnOiAgWyctbWNwdT1jb3J0ZXgtYTUzJ119LA0KPiA+ID4gKwknMHhkMDQnOiB7J21hY2hpbmVf YXJncyc6ICBbJy1tY3B1PWNvcnRleC1hMzUnXX0sDQo+ID4gPiArCScweGQwNyc6IHsnbWFjaGlu ZV9hcmdzJzogIFsnLW1jcHU9Y29ydGV4LWE1NyddfSwNCj4gPiA+ICsJJzB4ZDA4JzogeydtYWNo aW5lX2FyZ3MnOiAgWyctbWNwdT1jb3J0ZXgtYTcyJ119LA0KPiA+ID4gKwknMHhkMDknOiB7J21h Y2hpbmVfYXJncyc6ICBbJy1tY3B1PWNvcnRleC1hNzMnXX0sDQo+ID4gPiArCScweGQwYSc6IHsn bWFjaGluZV9hcmdzJzogIFsnLW1jcHU9Y29ydGV4LWE3NSddfSwNCj4gPiA+ICsJJzB4ZDBiJzog eydtYWNoaW5lX2FyZ3MnOiAgWyctbWNwdT1jb3J0ZXgtYTc2J119LA0KPiA+ID4gKwknMHhkMGMn OiB7DQo+ID4gPiArCQknbWFjaGluZV9hcmdzJzogIFsnLW1hcmNoPWFybXY4LjItYStjcnlwdG8n LCAnLQ0KPiA+ID4gbWNwdT1uZW92ZXJzZS1uMSddLA0KPiA+ID4gKwkJJ2ZsYWdzJzogWw0KPiA+ ID4gKwkJCVsnUlRFX01BQ0hJTkUnLCAnIm5lb3ZlcnNlLW4xIiddLA0KPiA+ID4gKwkJCVsnUlRF X0FSTV9GRUFUVVJFX0FUT01JQ1MnLCB0cnVlXSwNCj4gPiA+ICsJCQlbJ1JURV9VU0VfQzExX01F TV9NT0RFTCcsIHRydWVdLA0KPiA+ID4gKwkJCVsnUlRFX0VBTF9OVU1BX0FXQVJFX0hVR0VQQUdF UycsIGZhbHNlXSwNCj4gPiA+ICsJCQlbJ1JURV9MSUJSVEVfVkhPU1RfTlVNQScsIGZhbHNlXSwN Cj4gPiA+ICsJCQlbJ1JURV9NQVhfTUVNX01CJywgMTA0ODU3Nl0sDQo+ID4gPiArCQkJWydSVEVf Q0FDSEVfTElORV9TSVpFJywgNjRdLA0KPiA+ID4gKwkJCVsnUlRFX01BWF9MQ09SRScsIDY0XSwN Cj4gPiA+ICsJCQlbJ1JURV9NQVhfTlVNQV9OT0RFUycsIDFdDQo+ID4gPiArCQldDQo+ID4gPiAr CX0NCj4gPiA+ICt9DQo+ID4gPg0KPiA+ID4gLSMjIEFybSBpbXBsZW1lbnRlciBJRCAoTUlEUiBp biBBcm0gQXJjaGl0ZWN0dXJlIFJlZmVyZW5jZSBNYW51YWwpIC0NCj4gPiA+IGltcGxlbWVudGVy X2dlbmVyaWMgPSBbJ0dlbmVyaWMgYXJtdjgnLCBmbGFnc19pbXBsZW1lbnRlcl9nZW5lcmljLA0K PiA+ID4gcGFydF9udW1iZXJfY29uZmlnX2FybV0NCj4gPiA+IC1pbXBsZW1lbnRlcl8weDQxID0g WydBcm0nLCBmbGFnc19pbXBsZW1lbnRlcl9hcm0sDQo+ID4gPiBwYXJ0X251bWJlcl9jb25maWdf YXJtXQ0KPiA+ID4gLWltcGxlbWVudGVyXzB4NDMgPSBbJ0Nhdml1bScsIGZsYWdzX2ltcGxlbWVu dGVyX2Nhdml1bSwNCj4gPiA+IHBhcnRfbnVtYmVyX2NvbmZpZ19jYXZpdW1dDQo+ID4gPiAtaW1w bGVtZW50ZXJfMHg1MCA9IFsnQW1wZXJlIENvbXB1dGluZycsIGZsYWdzX2ltcGxlbWVudGVyX2Vt YWcsDQo+ID4gPiBwYXJ0X251bWJlcl9jb25maWdfZW1hZ10NCj4gPiA+IC1pbXBsZW1lbnRlcl8w eDU2ID0gWydNYXJ2ZWxsIEFSTUFEQScsIGZsYWdzX2ltcGxlbWVudGVyX2FybWFkYSwNCj4gPiA+ IHBhcnRfbnVtYmVyX2NvbmZpZ19hcm1dIC1pbXBsZW1lbnRlcl9kcGFhID0gWydOWFAgRFBBQScs DQo+ID4gPiBmbGFnc19pbXBsZW1lbnRlcl9kcGFhLCBwYXJ0X251bWJlcl9jb25maWdfYXJtXQ0K PiA+ID4gKyMjIEFybSBpbXBsZW1lbnRlcnMgKElEIGZyb20gTUlEUiBpbiBBcm0gQXJjaGl0ZWN0 dXJlIFJlZmVyZW5jZQ0KPiA+ID4gK01hbnVhbCkgIyMgUGFydCBudW1iZXJzIGFyZSBzcGVjaWZp YyB0byBBcm0gaW1wbGVtZW50ZXJzICMNCj4gPiA+ICtpbXBsZW1lbnRlciBzcGVjaWZpYw0KPiA+ ID4gK2FhcmNoNjQgZmxhZ3MgaGF2ZSBtaWRkbGUgcHJpb3JpdHkNCj4gPiA+ICsjICAgICAod2ls bCBvdmVyd3JpdGUgY29tbW9uIGZsYWdzKQ0KPiA+ID4gKyMgcGFydCBudW1iZXIgc3BlY2lmaWMg YWFyY2g2NCBmbGFncyBoYXZlIHRoZSBoaWdoZXN0IHByaW9yaXR5DQo+ID4gPiArIyAgICAgKHdp bGwgb3ZlcndyaXRlIGJvdGggY29tbW9uIGFuZCBpbXBsZW1lbnRlciBzcGVjaWZpYyBmbGFncykN Cj4gPiA+ICtpbXBsZW1lbnRlcnMgPSB7DQo+ID4gSSB0aGluayB0aGlzIG9uZSBpcyBiaWcuIEl0 IHdpbGwgZ3JvdyBmdXJ0aGVyIGluIHRoZSBmdXR1cmUuIEkgbGlrZQ0KPiA+IHRoZSBleGlzdGlu ZyBvbmUsIHdoaWNoIGlzIGRpcy1pbnRlZ3JhdGVkIGludG8gc21hbGxlciBjaHVua3MgYW5kIGlz IGVhc3kgdG8NCj4gbWFpbnRhaW4gaW4gdGhlIGZ1dHVyZS4NCj4gPg0KPiANCj4gTXkgbWFpbiBj b25jZXJuIHdhcyB3aXRoIHRoZSByZWFkYWJpbGl0eS91bmRlcnN0YW5kYWJpbGl0eSBvZiB0aGUg ZGF0YQ0KPiAod2hpY2ggYWZmZWN0cyBtYWludGVuYW5jZSksIGF0IGxlYXN0IHdoZW4gYSBuZXdj b21lciB0cmllcyB0byB3cmFwIHRoZWlyDQo+IGhlYWQgYXJvdW5kIHRoZW0uIFRoZSBkYXRhIGFy ZSBoaWVyYXJjaGljYWwgYW5kIHRoZSByZWxhdGlvbnNoaXAgYmV0d2Vlbg0KPiBpbXBsZW1lbnRl ciBJRCBhbmQgcGFydCBudW1iZXIgYW5kIHRoZSBvcmRlciBvZiBmbGFnIGFwcGxpY2F0aW9uIGlz IG1vcmUNCj4gYXBwYXJlbnQgd2hlbiBvcmdhbml6ZWQgdGhpcyB3YXksIGFsdGhvdWdoIGl0IGNv dWxkIGJlY2F1c2Ugb2YgYmV0dGVyDQo+IGZvcm1hdHRpbmcgYW5kIGJldHRlciB2YXJpYWJsZSBu YW1lcy4gVGhlIGJpZ2dlciBkaWZmZXJlbmNlIGlzIGluIHRoZSBjb2RlIC0NCj4gdXNpbmcgaW1w bGVtZW50ZXJfY29uZmlnWydwYXJ0X251bWJlcl9jb25maWcnXSBpbW1lZGlhdGVseSB0ZWxscyB5 b3Ugd2hhdA0KPiBkYXRhIGFyZSB5b3Ugd29ya2luZyB3aXRoIGFzIG9wcG9zZWQgdG8gaW1wbGVt ZW50ZXJfY29uZmlnWzJdLg0KPiANCj4gSSdtIGFsc28gbG9va2luZyBhdCBtYWludGVuYW5jZSBp biB0ZXJtcyBvZiAid2hlcmUgaW4gdGhpcyBmaWxlIGRvIEkgbmVlZCB0bw0KPiBjaGFuZ2UvYWRk IHRoaW5ncyBmb3IgdGhpcyBpbXBsZW1lbnRlciBvciB0aGVpciBwYXJ0IG51bWJlciIsIHdoaWNo IGluZm9ybWVkDQo+IG15IG1vdGl2YXRpb24gZm9yIChhbG1vc3QpIHJlbW92aW5nIHRoZSBmcmFn bWVudGF0aW9uLCB3aGljaCB3ZSBkb24ndCBoYXZlDQo+IHRvIGRvLCBidXQgaXQgbWFkZSBzZW5z ZSB0byBtZS4gVGhpcyB3YXksIGlmIEknbSBsb29raW5nIGZvciBzb21lIGNvbmZpZ3VyYXRpb24N Cj4gSSBrbm93IGV4YWN0bHkgd2hlcmUgdG8gZmluZCBpdCBpbiB0aGUgZmlsZSAodW5kZXIgcGFy dGljdWxhciBpbXBsZW1lbnRlcg0KPiBJRC9wYXJ0IG51bWJlcikgYW5kIEkgZG9uJ3QgaGF2ZSB0 byBjaGFzZSB2YXJpYWJsZXMgYXJvdW5kLCBhbHRob3VnaCB0aGlzIGlzDQo+IHNvbWV3aGF0IGFs bGV2aWF0ZWQgYnkgYmV0dGVyIHZhcmlhYmxlIG5hbWVzLiBPciBpbiBvdGhlciB3b3JkcyBoYXZp bmcNCj4gcmVsYXRlZCBjb25maWd1cmF0aW9uIGluIG9uZSBwbGFjZSByYXRoZXIgdGhhbiBmcmFn bWVudGVkIGluIG11bHRpcGxlIHBsYWNlcyBpcw0KPiBiZXR0ZXIgb3JnYW5pemF0aW9uIG9mIHRo ZSBkYXRhIGluIG15IHZpZXcsIGJvdGggaW4gdGVybXMgb2YgcmVhZGFiaWxpdHkgYW5kDQo+IG1h aW50YWluYWJpbGl0eS4NCj4gDQo+IEkgZG9uJ3QgYWN0dWFsbHkgc2VlIGhvdyBoYXZpbmcgZnJh Z21lbnRlZCBjb25maWd1cmF0aW9uIGlzIGJldHRlciB3aGVuIGl0J3MNCj4gZ29pbmcgdG8gZ3Jv dy4gVGhlIGRpc2pvaW50ZWQgcGFydHMgd2hpY2ggYXJlIGxvZ2ljYWxseSBjb25uZWN0ZWQgKGlt cGxlbWV0ZXINCj4gY29uZmlndXJhdGlvbiBjb25uZWN0ZWQgdG8gaXRzIHBhcnQgbnVtYmVyIGNv bmZpZykgYXJlIG9ubHkgZ29pbmcgdG8gYmUgZnVydGhlcg0KPiBhcGFydCBpbiB0aGUgY29kZSwg Y2F1c2luZyBtb3JlIHBvdGVudGlhbCBjb25mdXNpb24uIFdoZW4gd2UgaGF2ZQ0KPiBjb25maWd1 cmF0aW9uIG9yZ2FuaXplZCBieSB0aGVpciByZWxhdGlvbnNoaXAgbmV3IGFkZGl0aW9ucyB3b24n dCByZWFsbHkgYWZmZWN0DQo+IGV4aXN0aW5nIG9yZ2FuaXphdGlvbiAtIGUuZy4gd2hlbiB3ZSBh ZGQgYSBuZXcgaW1wbGVtZW50ZXIsIGl0IHdvbid0IG1vdmUNCj4gdGhlIGNvbmZpZ3VyYXRpb24g d2l0aGluIG90aGVyIGltcGxlbWVudGVyczsgdGhlIG90aGVyIGltcGxlbWVudGVyJ3MNCj4gY29u ZmlndXJhdGlvbiB3b24ndCBiZSBhZmZlY3RlZC4NCj4gDQo+IElmIEkgdW5kZXJzdGFuZCBjb3Jy ZWN0bHksIHlvdXIgZ3JpcGUgaXMgbm90IHdpdGggdXNpbmcgYSBkaWN0aW9uYXJ5IChvciBob3cg SSd2ZQ0KPiBmb3JtYXR0ZWQgdGhlIGRhdGEgaW4gaXQpLCBidXQgcmF0aGVyIHdpdGggdGhlIHJl bW92YWwgb2YgZnJhZ21lbnRhdGlvbi4gSSdkIGxpa2UNCj4gdG8ga2VlcCB0aGUgZGljdGlvbmFy aWVzIChhbmQgZm9ybWF0dGluZyksIHNpbmNlIGl0IHJlc3VsdHMgaW4gbW9yZSByZWFkYWJsZQ0K PiBjb2RlLiBJIGNvdWxkIHB1dCB0aGUgZnJhZ21lbnRldGlvbiBiYWNrIGluIHBsYWNlLCBidXQg SSBkb24ndCB0aGluayBpdCdzIGJldHRlcg0KPiBtYWludGFuZW5jZS13aXNlLg0KSSB3b3VsZCBu b3QgY2FsbCBpdCBncmlwZSwganVzdCB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiB0aGVyZSBpcyBh bm90aGVyIHdheS4NCkkgbGlrZSB0aGUgZGljdGlvbmFyeSBtZXRob2QuICBUaGUgcHJvYmxlbSBJ IHNlZSBpcyB0aGF0LCB0aGlzIHN0cnVjdHVyZSBpcyB+MTAwIGxpbmVzICh0aGF0IG9mIFNvQyBp cyB+MTAwKSBhbmQgZG9lcyBub3QgZml0IGluIG9uZSBzY3JlZW4uIEkgaGF2ZSB0byBzY3JvbGwg YmFjayBhbmQgZm9ydGggdG8gdGhlIHRvcCB0byB1bmRlcnN0YW5kIHRoZSB2YXJpb3VzIGZpZWxk cy4gU29tZSBvZiB0aGUgbGluZXMgYXJlIGJleW9uZCA4MCBjaGFyYWN0ZXJzIChJIGd1ZXNzIHRo aXMgY2FuIGJlIGZpeGVkKS4NCg0KSU1PLCBzcGxpdHRpbmcgZWFjaCBpbXBsZW1lbnRhdGlvbiBp bnRvIGl0cyBvd24gc3RydWN0dXJlcyBhbmQgdGhlbiBjb21iaW5pbmcgdGhlbSB0b2dldGhlciBt aWdodCBiZSBlYXNpZXIuIEZvciBleDogKEkgaGF2ZSBub3QgcGFpZCBhdHRlbnRpb24gdG8gc3lu dGF4KQ0KDQppbXBsZW1lbnRlcl9nZW5lcmljID0gew0KICAgICAgICAnZ2VuZXJpYyc6IHsNCiAg ICAgICAgICAgICAgICAnZGVzY3JpcHRpb24nOiAnR2VuZXJpYyBhcm12OCcsDQogICAgICAgICAg ICAgICAgJ2ZsYWdzJzogWw0KICAgICAgICAgICAgICAgICAgICAgICAgWydSVEVfTUFDSElORScs ICciYXJtdjhhIiddLA0KICAgICAgICAgICAgICAgICAgICAgICAgWydSVEVfVVNFX0MxMV9NRU1f TU9ERUwnLCB0cnVlXSwNCiAgICAgICAgICAgICAgICAgICAgICAgIFsnUlRFX0NBQ0hFX0xJTkVf U0laRScsIDEyOF0sDQogICAgICAgICAgICAgICAgICAgICAgICBbJ1JURV9NQVhfTENPUkUnLCAy NTZdLA0KICAgICAgICAgICAgICAgICAgICAgICAgWydSVEVfTUFYX05VTUFfTk9ERVMnLCA0XQ0K ICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgJ3BhcnRfbnVtYmVyX2NvbmZpZyc6 IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICdnZW5lcmljJzogeydtYWNoaW5lX2FyZ3MnOiAg WyctbWFyY2g9YXJtdjgtYStjcmMnLCAnLW1vdXRsaW5lLWF0b21pY3MnXX0NCiAgICAgICAgICAg ICAgICB9DQogICAgICAgIH0NCn0NCg0KaW1wbGVtZW50ZXJfYXJtID0gew0KICAgICAgICAnMHg0 MSc6IHsNCiAgICAgICAgICAgICAgICAnZGVzY3JpcHRpb24nOiAnQXJtJywNCiAgICAgICAgICAg ICAgICAnZmxhZ3MnOiBbDQogICAgICAgICAgICAgICAgICAgICAgICBbJ1JURV9NQUNISU5FJywg JyJhcm12OGEiJ10sDQogICAgICAgICAgICAgICAgICAgICAgICBbJ1JURV9VU0VfQzExX01FTV9N T0RFTCcsIHRydWVdLA0KICAgICAgICAgICAgICAgICAgICAgICAgWydSVEVfQ0FDSEVfTElORV9T SVpFJywgNjRdLA0KICAgICAgICAgICAgICAgICAgICAgICAgWydSVEVfTUFYX0xDT1JFJywgMTZd LA0KICAgICAgICAgICAgICAgICAgICAgICAgWydSVEVfTUFYX05VTUFfTk9ERVMnLCAxXQ0KICAg ICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgJ3BhcnRfbnVtYmVyX2NvbmZpZyc6IHBh cnRfbnVtYmVyX2NvbmZpZ19hcm0NCiAgICAgICAgfSwNCn0NCi4uLi4uLg0KDQppbXBsZW1lbnRl cnMgPSB7DQogICAgaW1wbGVtZW50ZXJfZ2VuZXJpYywNCiAgICBpbXBsZW1lbnRlcl9hcm0sDQog ICAgLi4uLn0NCg0KPiANCj4gPiA+ICsJJ2dlbmVyaWMnOiB7DQo+ID4gPiArCQknZGVzY3JpcHRp b24nOiAnR2VuZXJpYyBhcm12OCcsDQo+ID4gPiArCQknZmxhZ3MnOiBbDQo+ID4gPiArCQkJWydS VEVfTUFDSElORScsICciYXJtdjhhIiddLA0KPiA+ID4gKwkJCVsnUlRFX1VTRV9DMTFfTUVNX01P REVMJywgdHJ1ZV0sDQo+ID4gPiArCQkJWydSVEVfQ0FDSEVfTElORV9TSVpFJywgMTI4XSwNCj4g PiA+ICsJCQlbJ1JURV9NQVhfTENPUkUnLCAyNTZdDQo+ID4gPiArCQldLA0KPiA+ID4gKwkJJ3Bh cnRfbnVtYmVyX2NvbmZpZyc6IHBhcnRfbnVtYmVyX2NvbmZpZ19hcm0NCj4gPiA+ICsJfSwNCj4g PiA+ICsJJzB4NDEnOiB7DQo+ID4gPiArCQknZGVzY3JpcHRpb24nOiAnQXJtJywNCj4gPiA+ICsJ CSdmbGFncyc6IFsNCj4gPiA+ICsJCQlbJ1JURV9NQUNISU5FJywgJyJhcm12OGEiJ10sDQo+ID4g PiArCQkJWydSVEVfVVNFX0MxMV9NRU1fTU9ERUwnLCB0cnVlXSwNCj4gPiA+ICsJCQlbJ1JURV9D QUNIRV9MSU5FX1NJWkUnLCA2NF0sDQo+ID4gPiArCQkJWydSVEVfTUFYX0xDT1JFJywgMTZdDQo+ ID4gPiArCQldLA0KPiA+ID4gKwkJJ3BhcnRfbnVtYmVyX2NvbmZpZyc6IHBhcnRfbnVtYmVyX2Nv bmZpZ19hcm0NCj4gPiA+ICsJfSwNCj4gPiA+ICsJJzB4NDMnOiB7DQo+ID4gPiArCQknZGVzY3Jp cHRpb24nOiAnQ2F2aXVtJywNCj4gPiA+ICsJCSdmbGFncyc6IFsNCj4gPiA+ICsJCQlbJ1JURV9N QVhfVkZJT19HUk9VUFMnLCAxMjhdLA0KPiA+ID4gKwkJCVsnUlRFX0NBQ0hFX0xJTkVfU0laRScs IDEyOF0sDQo+ID4gPiArCQkJWydSVEVfTUFYX0xDT1JFJywgOTZdLA0KPiA+ID4gKwkJCVsnUlRF X01BWF9OVU1BX05PREVTJywgMl0NCj4gPiA+ICsJCV0sDQo+ID4gPiArCQkncGFydF9udW1iZXJf Y29uZmlnJzogew0KPiA+ID4gKwkJCSdnZW5lcmljJzogeydtYWNoaW5lX2FyZ3MnOiBbJy1tYXJj aD1hcm12OC0NCj4gPiA+IGErY3JjK2NyeXB0bycsICctbWNwdT10aHVuZGVyeCddfSwNCj4gPiA+ ICsJCQknbmF0aXZlJzogeydtYWNoaW5lX2FyZ3MnOiBbJy1tYXJjaD1uYXRpdmUnXX0sDQo+ID4g PiArCQkJJzB4YTEnOiB7DQo+ID4gPiArCQkJCSdtYWNoaW5lX2FyZ3MnOiBbJy1tY3B1PXRodW5k ZXJ4dDg4J10sDQo+ID4gPiArCQkJCSdmbGFncyc6IGZsYWdzX3BhcnRfbnVtYmVyX3RodW5kZXJ4 DQo+ID4gPiArCQkJfSwNCj4gPiA+ICsJCQknMHhhMic6IHsNCj4gPiA+ICsJCQkJJ21hY2hpbmVf YXJncyc6IFsnLW1jcHU9dGh1bmRlcnh0ODEnXSwNCj4gPiA+ICsJCQkJJ2ZsYWdzJzogZmxhZ3Nf cGFydF9udW1iZXJfdGh1bmRlcngNCj4gPiA+ICsJCQl9LA0KPiA+ID4gKwkJCScweGEzJzogew0K PiA+ID4gKwkJCQknbWFjaGluZV9hcmdzJzogWyctbWNwdT10aHVuZGVyeHQ4MyddLA0KPiA+ID4g KwkJCQknZmxhZ3MnOiBmbGFnc19wYXJ0X251bWJlcl90aHVuZGVyeA0KPiA+ID4gKwkJCX0sDQo+ ID4gPiArCQkJJzB4YWYnOiB7DQo+ID4gPiArCQkJCSdtYWNoaW5lX2FyZ3MnOiBbJy1tYXJjaD1h cm12OC4xLQ0KPiA+ID4gYStjcmMrY3J5cHRvJywnLW1jcHU9dGh1bmRlcngydDk5J10sDQo+ID4g PiArCQkJCSdmbGFncyc6IFsNCj4gPiA+ICsJCQkJCVsnUlRFX01BQ0hJTkUnLCAnInRodW5kZXJ4 MiInXSwNCj4gPiA+ICsJCQkJCVsnUlRFX0FSTV9GRUFUVVJFX0FUT01JQ1MnLA0KPiA+ID4gdHJ1 ZV0sDQo+ID4gPiArCQkJCQlbJ1JURV9VU0VfQzExX01FTV9NT0RFTCcsIHRydWVdLA0KPiA+ID4g KwkJCQkJWydSVEVfQ0FDSEVfTElORV9TSVpFJywgNjRdLA0KPiA+ID4gKwkJCQkJWydSVEVfTUFY X0xDT1JFJywgMjU2XSwNCj4gPiA+ICsJCQkJCVsnUlRFX01BWF9OVU1BX05PREVTJywgMl0NCj4g PiA+ICsJCQkJXQ0KPiA+ID4gKwkJCX0sDQo+ID4gPiArCQkJJzB4YjInOiB7DQo+ID4gPiArCQkJ CSdtYWNoaW5lX2FyZ3MnOiBbJy1tYXJjaD1hcm12OC4yLQ0KPiA+ID4gYStjcmMrY3J5cHRvK2xz ZScsJy1tY3B1PW9jdGVvbnR4MiddLA0KPiA+ID4gKwkJCQknZmxhZ3MnOiBbDQo+ID4gPiArCQkJ CQlbJ1JURV9NQUNISU5FJywgJyJvY3Rlb250eDIiJ10sDQo+ID4gPiArCQkJCQlbJ1JURV9BUk1f RkVBVFVSRV9BVE9NSUNTJywNCj4gPiA+IHRydWVdLA0KPiA+ID4gKwkJCQkJWydSVEVfVVNFX0Mx MV9NRU1fTU9ERUwnLCB0cnVlXSwNCj4gPiA+ICsJCQkJCVsnUlRFX0VBTF9JR0JfVUlPJywgZmFs c2VdLA0KPiA+ID4gKwkJCQkJWydSVEVfTUFYX0xDT1JFJywgMzZdLA0KPiA+ID4gKwkJCQkJWydS VEVfTUFYX05VTUFfTk9ERVMnLCAxXQ0KPiA+ID4gKwkJCQldDQo+ID4gPiArCQkJfQ0KPiA+ID4g KwkJfQ0KPiA+ID4gKwl9LA0KPiA+ID4gKwknMHg1MCc6IHsNCj4gPiA+ICsJCSdkZXNjcmlwdGlv bic6ICdBbXBlcmUgQ29tcHV0aW5nJywNCj4gPiA+ICsJCSdmbGFncyc6IFsNCj4gPiA+ICsJCQlb J1JURV9NQUNISU5FJywgJyJlbWFnIiddLA0KPiA+ID4gKwkJCVsnUlRFX0NBQ0hFX0xJTkVfU0la RScsIDY0XSwNCj4gPiA+ICsJCQlbJ1JURV9NQVhfTENPUkUnLCAzMl0sDQo+ID4gPiArCQkJWydS VEVfTUFYX05VTUFfTk9ERVMnLCAxXQ0KPiA+ID4gKwkJXSwNCj4gPiA+ICsJCSdwYXJ0X251bWJl cl9jb25maWcnOiB7DQo+ID4gPiArCQkJJ2dlbmVyaWMnOiB7J21hY2hpbmVfYXJncyc6ICBbJy1t YXJjaD1hcm12OC0NCj4gPiA+IGErY3JjK2NyeXB0bycsICctbXR1bmU9ZW1hZyddfSwNCj4gPiA+ ICsJCQknbmF0aXZlJzogeydtYWNoaW5lX2FyZ3MnOiAgWyctbWFyY2g9bmF0aXZlJ119DQo+ID4g PiArCQl9DQo+ID4gPiArCX0sDQo+ID4gPiArCScweDU2Jzogew0KPiA+ID4gKwkJJ2Rlc2NyaXB0 aW9uJzogJ01hcnZlbGwgQVJNQURBJywNCj4gPiA+ICsJCSdmbGFncyc6IFsNCj4gPiA+ICsJCQlb J1JURV9NQUNISU5FJywgJyJhcm12OGEiJ10sDQo+ID4gPiArCQkJWydSVEVfQ0FDSEVfTElORV9T SVpFJywgNjRdLA0KPiA+ID4gKwkJCVsnUlRFX01BWF9MQ09SRScsIDE2XSwNCj4gPiA+ICsJCQlb J1JURV9NQVhfTlVNQV9OT0RFUycsIDFdDQo+ID4gPiArCQldLA0KPiA+ID4gKwkJJ3BhcnRfbnVt YmVyX2NvbmZpZyc6IHBhcnRfbnVtYmVyX2NvbmZpZ19hcm0NCj4gPiA+ICsJfSwNCj4gPiA+ICsJ J2RwYWEnOiB7DQo+ID4gPiArCQknZGVzY3JpcHRpb24nOiAnTlhQIERQQUEnLA0KPiA+ID4gKwkJ J2ZsYWdzJzogWw0KPiA+ID4gKwkJCVsnUlRFX01BQ0hJTkUnLCAnImRwYWEiJ10sDQo+ID4gPiAr CQkJWydSVEVfTElCUlRFX0RQQUEyX1VTRV9QSFlTX0lPVkEnLCBmYWxzZV0sDQo+ID4gPiArCQkJ WydSVEVfVVNFX0MxMV9NRU1fTU9ERUwnLCB0cnVlXSwNCj4gPiA+ICsJCQlbJ1JURV9DQUNIRV9M SU5FX1NJWkUnLCA2NF0sDQo+ID4gPiArCQkJWydSVEVfTUFYX0xDT1JFJywgMTZdLA0KPiA+ID4g KwkJCVsnUlRFX01BWF9OVU1BX05PREVTJywgMV0NCj4gPiA+ICsJCV0sDQo+ID4gPiArCQkncGFy dF9udW1iZXJfY29uZmlnJzogcGFydF9udW1iZXJfY29uZmlnX2FybQ0KPiA+ID4gKwl9DQo+ID4g PiArfQ0KPiA+ID4NCj4gPiA+ICBkcGRrX2NvbmYuc2V0KCdSVEVfQVJDSF9BUk0nLCAxKQ0KPiA+ ID4gIGRwZGtfY29uZi5zZXQoJ1JURV9GT1JDRV9JTlRSSU5TSUNTJywgMSkgQEAgLTE1Miw3ICsx ODMsNyBAQCBlbHNlDQo+ID4gPiAgCWltcGxlbWVudGVyX2lkID0gJ2dlbmVyaWMnDQo+ID4gPiAg CWlmIG1hY2hpbmUgPT0gJ2dlbmVyaWMnIGFuZCBub3QgbWVzb24uaXNfY3Jvc3NfYnVpbGQoKQ0K PiA+ID4gIAkJIyBnZW5lcmljIGJ1aWxkDQo+ID4gPiAtCQlpbXBsZW1lbnRlcl9jb25maWcgPSBp bXBsZW1lbnRlcl9nZW5lcmljDQo+ID4gPiArCQlpbXBsZW1lbnRlcl9jb25maWcgPSBpbXBsZW1l bnRlclsnZ2VuZXJpYyddDQo+ID4gPiAgCQlwYXJ0X251bWJlciA9ICdnZW5lcmljJw0KPiA+ID4g IAllbGlmIG5vdCBtZXNvbi5pc19jcm9zc19idWlsZCgpDQo+ID4gPiAgCQkjIG5hdGl2ZSBidWls ZA0KPiA+ID4gQEAgLTE2Nyw5ICsxOTgsOSBAQCBlbHNlDQo+ID4gPiAgCQkJcGFydF9udW1iZXIg PSBjbWRfb3V0cHV0WzNdDQo+ID4gPiAgCQllbmRpZg0KPiA+ID4gIAkJIyBTZXQgdG8gZ2VuZXJp YyBpZiB2YXJpYWJsZSBpcyBub3QgZm91bmQNCj4gPiA+IC0JCWltcGxlbWVudGVyX2NvbmZpZyA9 IGdldF92YXJpYWJsZSgnaW1wbGVtZW50ZXJfJyArDQo+ID4gPiBpbXBsZW1lbnRlcl9pZCwgWydn ZW5lcmljJ10pDQo+ID4gPiArCQlpbXBsZW1lbnRlcl9jb25maWcgPSBpbXBsZW1lbnRlcnMuZ2V0 KGltcGxlbWVudGVyX2lkLA0KPiA+ID4gWydnZW5lcmljJ10pDQo+ID4gPiAgCQlpZiBpbXBsZW1l bnRlcl9jb25maWdbMF0gPT0gJ2dlbmVyaWMnDQo+ID4gPiAtCQkJaW1wbGVtZW50ZXJfY29uZmln ID0gaW1wbGVtZW50ZXJfZ2VuZXJpYw0KPiA+ID4gKwkJCWltcGxlbWVudGVyX2NvbmZpZyA9IGlt cGxlbWVudGVyWydnZW5lcmljJ10NCj4gPiA+ICAJCQlwYXJ0X251bWJlciA9ICdnZW5lcmljJw0K PiA+ID4gIAkJZW5kaWYNCj4gPiA+ICAJCWlmIGFybV9mb3JjZV9uYXRpdmVfbWFyY2ggPT0gdHJ1 ZSBAQCAtMTc5LDI4ICsyMTAsMzUgQEANCj4gZWxzZQ0KPiA+ID4gIAkJIyBjcm9zcyBidWlsZA0K PiA+ID4gIAkJaW1wbGVtZW50ZXJfaWQgPQ0KPiA+ID4gbWVzb24uZ2V0X2Nyb3NzX3Byb3BlcnR5 KCdpbXBsZW1lbnRlcl9pZCcsICdnZW5lcmljJykNCj4gPiA+ICAJCXBhcnRfbnVtYmVyID0gbWVz b24uZ2V0X2Nyb3NzX3Byb3BlcnR5KCdwYXJ0X251bWJlcicsDQo+ID4gPiAnZ2VuZXJpYycpDQo+ ID4gPiAtCQlpbXBsZW1lbnRlcl9jb25maWcgPSBnZXRfdmFyaWFibGUoJ2ltcGxlbWVudGVyXycg Kw0KPiA+ID4gaW1wbGVtZW50ZXJfaWQpDQo+ID4gPiArCQlpbXBsZW1lbnRlcl9jb25maWcgPSBp bXBsZW1lbnRlcnMuZ2V0KGltcGxlbWVudGVyX2lkKQ0KPiA+ID4gIAllbmRpZg0KPiA+ID4NCj4g PiA+IC0JbWVzc2FnZSgnQXJtIGltcGxlbWVudGVyOiAnICsgaW1wbGVtZW50ZXJfY29uZmlnWzBd KQ0KPiA+ID4gKwltZXNzYWdlKCdBcm0gaW1wbGVtZW50ZXI6ICcgKyBpbXBsZW1lbnRlcl9jb25m aWdbJ2Rlc2NyaXB0aW9uJ10pDQo+ID4gPiAgCW1lc3NhZ2UoJ0FybSBwYXJ0IG51bWJlcjogJyAr IHBhcnRfbnVtYmVyKQ0KPiA+ID4NCj4gPiA+ICsJcGFydF9udW1iZXJfY29uZmlnID0gaW1wbGVt ZW50ZXJfY29uZmlnWydwYXJ0X251bWJlcl9jb25maWcnXQ0KPiA+ID4gKwlpZiBwYXJ0X251bWJl cl9jb25maWcuaGFzX2tleShwYXJ0X251bWJlcikNCj4gPiA+ICsJCSMgdXNlIHRoZSBzcGVjaWZp ZWQgcGFydF9udW1iZXIgbWFjaGluZSBhcmdzIGlmIGZvdW5kDQo+ID4gPiArCQlwYXJ0X251bWJl cl9jb25maWcgPSBwYXJ0X251bWJlcl9jb25maWdbcGFydF9udW1iZXJdDQo+ID4gPiArCWVsaWYg bm90IG1lc29uLmlzX2Nyb3NzX2J1aWxkKCkNCj4gPiA+ICsJCSMgZGVmYXVsdCB0byBnZW5lcmlj IG1hY2hpbmUgYXJncyBpZiBwYXJ0X251bWJlciBpcyBub3QgZm91bmQNCj4gPiA+ICsJCSMgYW5k IG5vdCBmb3JjaW5nIG5hdGl2ZSBtYWNoaW5lIGFyZ3MNCj4gPiA+ICsJCSMgYnV0IGRvbid0IGRl ZmF1bHQgaW4gY3Jvc3MtYnVpbGRzOyBpZiBwYXJ0X251bWJlciBpcyBzcGVjaWZpZWQNCj4gPiA+ ICsJCSMgaW5jb3JyZWN0bHkgaW4gYSBjcm9zcy1maWxlLCBpdCBuZWVkcyB0byBiZSBmaXhlZCB0 aGVyZQ0KPiA+ID4gKwkJcGFydF9udW1iZXJfY29uZmlnID0gcGFydF9udW1iZXJfY29uZmlnWydn ZW5lcmljJ10NCj4gPiA+ICsJZWxzZQ0KPiA+ID4gKwkJIyBkb2luZyBjcm9zcyBidWlsZCBhbmQg cGFydCBudW1iZXIgaXMgbm90IGluDQo+ID4gPiBwYXJ0X251bWJlcl9jb25maWcNCj4gPiA+ICsJ CWVycm9yKCdDcm9zcyBidWlsZCBwYXJ0IG51bWJlciAwQDAgbm90DQo+ID4gPiBmb3VuZC4nLmZv cm1hdChwYXJ0X251bWJlcikpDQo+ID4gPiArCWVuZGlmDQo+ID4gPiArDQo+ID4gPiAgCSMgdXNl IGRlZmF1bHQgZmxhZ3Mgd2l0aCBpbXBsZW1lbnRlciBmbGFncw0KPiA+ID4gLQlkcGRrX2ZsYWdz ID0gZmxhZ3NfY29tbW9uX2RlZmF1bHQgKyBpbXBsZW1lbnRlcl9jb25maWdbMV0NCj4gPiA+ICsJ ZHBka19mbGFncyA9IGZsYWdzX2NvbW1vbl9kZWZhdWx0ICsgaW1wbGVtZW50ZXJfY29uZmlnWydm bGFncyddICsNCj4gPiA+ICtwYXJ0X251bWJlcl9jb25maWcuZ2V0KCdmbGFncycsIFtdKQ0KPiA+ ID4NCj4gPiA+ICsJIyBhcHBseSBzdXBwb3J0ZWQgbWFjaGluZSBhcmdzDQo+ID4gPiAgCW1hY2hp bmVfYXJncyA9IFtdICMgQ2xlYXIgcHJldmlvdXMgbWFjaGluZSBhcmdzDQo+ID4gPiAtCWZvcmVh Y2ggbWFyZzogaW1wbGVtZW50ZXJfY29uZmlnWzJdDQo+ID4gPiAtCQlpZiBtYXJnWzBdID09IHBh cnRfbnVtYmVyDQo+ID4gPiAtCQkJIyBhcHBseSBzdXBwb3J0ZWQgbWFjaGluZSBhcmdzDQo+ID4g PiAtCQkJZm9yZWFjaCBmbGFnOiBtYXJnWzFdDQo+ID4gPiAtCQkJCWlmIGNjLmhhc19hcmd1bWVu dChmbGFnKQ0KPiA+ID4gLQkJCQkJbWFjaGluZV9hcmdzICs9IGZsYWcNCj4gPiA+IC0JCQkJZW5k aWYNCj4gPiA+IC0JCQllbmRmb3JlYWNoDQo+ID4gPiAtCQkJaWYgbWFyZy5sZW5ndGgoKSA+IDIN Cj4gPiA+IC0JCQkJIyBhZGQgZXh0cmEgZmxhZ3MgZm9yIHRoZSBwYXJ0DQo+ID4gPiAtCQkJCWRw ZGtfZmxhZ3MgKz0gbWFyZ1syXQ0KPiA+ID4gLQkJCWVuZGlmDQo+ID4gPiArCWZvcmVhY2ggZmxh ZzogcGFydF9udW1iZXJfY29uZmlnWydtYWNoaW5lX2FyZ3MnXQ0KPiA+ID4gKwkJaWYgY2MuaGFz X2FyZ3VtZW50KGZsYWcpDQo+ID4gPiArCQkJbWFjaGluZV9hcmdzICs9IGZsYWcNCj4gPiA+ICAJ CWVuZGlmDQo+ID4gPiAgCWVuZGZvcmVhY2gNCj4gPiA+DQo+ID4gPiAtLQ0KPiA+ID4gMi4yMC4x DQoNCg==