From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web11.5920.1637798897132490681 for ; Wed, 24 Nov 2021 16:08:17 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=CZ73lt0x; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10178"; a="296212938" X-IronPort-AV: E=Sophos;i="5.87,261,1631602800"; d="scan'208";a="296212938" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Nov 2021 16:08:15 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,261,1631602800"; d="scan'208";a="740999547" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by fmsmga005.fm.intel.com with ESMTP; 24 Nov 2021 16:08:15 -0800 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Wed, 24 Nov 2021 16:08:14 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Wed, 24 Nov 2021 16:08:14 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.107) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Wed, 24 Nov 2021 16:08:14 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C2cpnAMzthHd3nsUE20rLYMItqeh9yKtQcKz0sQJJxq+7fanLcGN2exbKZL8USpLPnD+wRfyxyskh3ZlqEgXSjk0YfJhuxCsvSVusCwFtcggAg55eYBuW8rRrkP29uge011ahh+Z7uKPZmyAk4gBJes3bHOBQYPowQQh2G/H7qF5KDWrLncXYiRDn4b9Su7pzMWUXqXj9GkDoXxybHtYUwRyqTvjHbucms4Z3PTZC6JqoaJubVASxgsledYZ3DuR02zd4WnhCNK2uhwxMjF5S+CkkKhY54vGlOQZF0TkQmqNimN4CV7sw/9ENjVqdUzCTsUqow/FtLn/AgwlceNG3A== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4u0SqYE9oi1+I6ex7zKD78LNjsd4ALLV/ik9IHWNVCA=; b=L9h6VMYixunuFNV5tWMFpKy3Hw9wv3S9I7EVM9dMFNjSR+49SIb3Gi2L4YETnz96Wg5K0NseJPzNsKe9c5nL+FPzMTYHxqYp2L3vehzjhnHD6FtdMwrXw3uduGIBdwgW/c9qVD8ZWApchDAEdhwmcxN2yyk0NGg/FQQQ2wUGrxcpUIr5hS/1kEt5U4TsbN1yO0DQmI/eDb4EkUNAUqP5sr2AIcCCtdwhrpZxWTmEuRaZzcs9FWcHUegxXCB1mheJ4ZxPmrmvzgk3Fjru+tPmx9BFqPSuWmmhSpYLnRra/xBdUBcG7pJ0YPhOETWHF9mAqtAtBwmBd741YbhUU30/fQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4u0SqYE9oi1+I6ex7zKD78LNjsd4ALLV/ik9IHWNVCA=; b=CZ73lt0xR7JfrrllgSvOSVehd7OHtSx5eCAOUG1h0/TNuSCpSJJ/YK8+lAfR7YW8BwPbaqjNTMI+/+1s8zFM4IlL8DXj3OkhmjqkW6L6e0kCnLdBvA1JuWDz3PcRL+hdhmVHNeF+yHS70PG0miQWHpWzYiZnmnJX+mNjw/EIZUo= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by MWHPR11MB1919.namprd11.prod.outlook.com (2603:10b6:300:106::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Thu, 25 Nov 2021 00:08:12 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::68cc:6227:db69:d81a]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::68cc:6227:db69:d81a%6]) with mapi id 15.20.4713.025; Thu, 25 Nov 2021 00:08:12 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "mikuback@linux.microsoft.com" , "Kinney, Michael D" CC: Liming Gao , Sean Brogan , Bret Barkelew Subject: Re: [edk2-devel] [PATCH v4 1/1] .pytool/Plugin/UncrustifyCheck: Add Uncrustify CI plugin Thread-Topic: [edk2-devel] [PATCH v4 1/1] .pytool/Plugin/UncrustifyCheck: Add Uncrustify CI plugin Thread-Index: AQHX4XwmMYDqp0mP/kqm0Cd+X+x24qwTRrIggAAC8oCAAALaYIAAD06Q Date: Thu, 25 Nov 2021 00:08:12 +0000 Message-ID: References: <20211124214131.2705-1-mikuback@linux.microsoft.com> <87b4f4bb-8d19-abdc-85f9-6b7bffa1b12e@linux.microsoft.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f620b652-7f3a-4a00-fbfc-08d9afa7ab92 x-ms-traffictypediagnostic: MWHPR11MB1919: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: QfsOPT2hXlerLJeh1HqSxcY4ojVQS0/uw4e7tP1bNObv8enPM/pETFYfCmy39SYHXNEO9KrbK6/Hg/8nRTfpWBqR01hrtXZ5F6H5XZ2EQxwtGLo5HXMEqgAvpHF6sIdisi0HuHKOe3K4ERLL7xvbzRvoeNJZIlIJyAHD0jJV8OkDj2nbUQZxfsfC/JuZrbT3TNLH1+msddOBVVWOVYFrLpVX/uAezT1DBAxFxq9LR7KcxJL5g3t+6UAwERZMOjyMeqCqz0AhAQtKCAwE655B1zi1LwTDj0AeUC9Zqjj4/ofHpbqmP9asAAEFN21dguC032uTP24hM+mgxiPtZlMZ6W5Df9ZbhgI7Dkr6eqsikUEUYexD5qEaGh09YecxwQari5E5qwE8cKq50sl1aU45YhjOxb9Hn5nvyIlTSjG1P5T9xDJhLGPWGnmZpnlf5aGqZmsQkSSDgZJI1TiqD9ZM0QHaAaVjvM6x/pXDWMD1+VGUeXavW6E2VpxOrPMMBRbKG8BtYh8HP4w6veDYZkVAwppazAtQvLph42ACw6AiC+pKXt+j8e0PYPxgqMpkcu+67x5WzgX5PmWcEOV9HogpING2JjN75zCdwXrrkQAnOnUSLJ8VqdvaeuCG2MvCZ6yLADG31XfOBHz3h1MAc2DWnljfCojk+lcSh8xPnL3o7Z7LNRIvLcVZ42I8K0bqWmJg6qsbP6vLZB4NTWfRad5Byzod+SV+Z6IYiostV4dq11VQKeVKKC8IGrlYcT8NBao5ExE0hAV+PlQ4SWJgOhBygNnW5rWTpYwuRgPAhhOBPeQyGOGHlBN7XLmcVfgQ2Ee4EEF0TaiEkiXlkExBiMxiTg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(33656002)(110136005)(38100700002)(38070700005)(55016003)(66446008)(186003)(76116006)(9686003)(508600001)(8676002)(54906003)(122000001)(82960400001)(53546011)(45080400002)(2906002)(966005)(86362001)(26005)(66476007)(4326008)(52536014)(6506007)(71200400001)(7696005)(64756008)(30864003)(8936002)(66556008)(83380400001)(19627235002)(66946007)(316002)(5660300002)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VGdEdUpIazF3M2RnRlp1Q2p2Z2s3SFBLK0JWQVpkN2R0V1VraXFCZHJYa3Iw?= =?utf-8?B?RDRuemE4dGxDaXhLOFlmNDhPVGdVSldHWUk3TE5hR05WMFdqWlFKLzEweFpV?= =?utf-8?B?YkxMS3ZjNVhTZjRmUzdGVlNsdjFyYWRpTFNRcW9oZU00N0RqZ2FWZGJaSkc0?= =?utf-8?B?eFQvSVA0MEhzM05UdkdHcUgxTGpyekVPakU4N3IzaFhRVFlXdGdVYjFtMzJQ?= =?utf-8?B?dmFVcWdVL2pWZkZld25GYitXejVIWG9VOEQ1ODJqbEVKSFhncFp2VVAvRG9x?= =?utf-8?B?dUErMFAybDQxTkUxZHByRmg5bU1IOGVHMHM4L2JaM1hHQzZnNldnNERkTi9z?= =?utf-8?B?VTBIMkxvOHRRU3E3RytJSUpZa2dyZkh2NldrS0FndEw2QVR1blVvODlvWERQ?= =?utf-8?B?OHZtMkFsVG15WE1VY1A0dEVGMUFFdy84M1psRE5yMWJaUDNiWnkxV0tjOHhJ?= =?utf-8?B?akdtYXNmNEVGNng0NUhCcE9mdDRNTERIVk5vYTlYU0lNblc2Rkl1ZXlXbHlh?= =?utf-8?B?R25ORmJMekNMZlZiSWQ0OS9jdlBtZENReFNrWEV1amZNTzdWcmNZUTRBaDZQ?= =?utf-8?B?ZXNsbi8rUnVudWhmUVROTVFTc0krOEExWUpXczZLRW5FRU1nU0Q0N3J0Um5o?= =?utf-8?B?V2pyT0ttK2JKT29iNENqcHA2bEU4WG9oNEpGYk5iVVl3RlNiTVVZcHVxbWZO?= =?utf-8?B?VVk5TmVUSFBpRk82dlh0REJkb1lxKzlhd01pT2N5cGViQTNVT2Rmb3ZkUE9r?= =?utf-8?B?bFFxMEZlV1M2ZjNVb21CdWtmMGR3dWxQUEdRQldZdGI4WVlTT1AxRVZPQWlz?= =?utf-8?B?bkNsY05YZk4rbHJ2VWxQQVBYUVFtZStxRFAwNFZsMFplcTVHTVJjOW5GK2E0?= =?utf-8?B?OU9pc21QRS9WeG9NdHV5dU10VWtuNzB3eTR6QWsxanUzUXQ2VmdSSzdMeWZQ?= =?utf-8?B?VlR6YkxKSExBd3pFTEtrUURXU2t1THNJUEwrM3U0bnVhTzZaZ2xaUmZ4NVdO?= =?utf-8?B?SElLSjgxY1oxTU1sMXJyQjRNZmFHd2ZzUkp1UEJpamRIaXJzVXlNU0VyeDQx?= =?utf-8?B?aEUvamhJdFNmU0pJRFBUSkV3TnBVQ1NxVFE4dVZGYkltNEdTRzlhVk9LOUtS?= =?utf-8?B?RU1uSUxWQzNwM1RoNURjYk83NmcvUmZYc2NpYmp5SFVQNUh0WVh2LzBuenpv?= =?utf-8?B?NmV2NlpQRmZ1OGxKcUl3a3ZHZEplWFZLNDlpMGpjOEMrbUNhWlRNQWtSY01j?= =?utf-8?B?SE1OUG5LbUZSZmdlT21jSkF5bnJtRnhpSS9NRTBmUXVJemdUcmFDZUUrRyta?= =?utf-8?B?MWphaXFxb0VmcncyRFpaZ0VUUVZ5VmxLZmwrVFo2U0NpMUFzWW9KWjVKSXdu?= =?utf-8?B?NlVLd2NPTTVVM3cybjk2Tm9pYmg0bDNlQm5IMVBuaGprRW1ZK04veGxCUjdV?= =?utf-8?B?SDVOUFVJdGxONWZJZmlBZnlWSnFiN2JyNWVIYXlOd1N5dkJibjVvNnBqNWZU?= =?utf-8?B?dEM5SHBySk5EN2NtSlc5Vk9BMjkxaWpCYnliVnVESDN0TzRJNkZOWkdHZm80?= =?utf-8?B?VmUyT3V2S3RiRCtDSEpuT0QrYWpjVXhXSnVaUnp6azc2QjNCanM4Z0xKTmhI?= =?utf-8?B?d0ZMbGx0ZkZjZ3REaTU5TlFjNzZPcjg2Y2w5UERKUFc0ZXBlbFUvU2dDa3BV?= =?utf-8?B?blhod3FSSWpWNnhTODJsR2lqNjZNQjZsK1k1Ymhkb3pMbkdmNVJTMTdzNEtk?= =?utf-8?B?K04waktjY0hWdTV2WmFTRS9ERG1NeW9ySDZLNndkcHRERlZRclRyMEgxcEN0?= =?utf-8?B?TEtqRDNhL3FwY1JwSU45TlgyRmpzQWJJY2xaZWcrWGIxTEtGbWNxa0R4RUd3?= =?utf-8?B?dXR1UWVhcG4zY2pQZlRsSDh1bjVSN3lLOVhwaXcxeVNLeUdhdXBNcldyRnpP?= =?utf-8?B?ZkdlcnpnSjhsanBvcmpmdDVJQ2dSdlhGcHVXZU5rVjR3VWhxL0N0YkpubVRO?= =?utf-8?B?ZkdWNXg0Yk9NNGw4Sm1IVVlBdFFNM3FNT0FNWGhXVzVrdzZjRWdOVGxnMkJR?= =?utf-8?B?OUU0TG5LZEw0UEE5ekNnNWZzWVlyVDVFOWZtYmpXMHBPdTROWHBWSU9zL0wv?= =?utf-8?B?bUNqaTFlNWpzc1l0dDRuRytzUFFUMklQVTJDMjR6ZDFCOVZZUEVuYUxuMExN?= =?utf-8?B?YThZdnZvNUdGQnVTNTFNVWhnQUdtdkRZYldxdzZBVVlSWUVWWjFQTC80SmJn?= =?utf-8?B?TjlnajZoTUFJRDdzV241VDVnY1h3PT0=?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f620b652-7f3a-4a00-fbfc-08d9afa7ab92 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2021 00:08:12.0998 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 0IPye66T4PCNvkJBMx/1QufV186s8adtVw+XUXh2Uvn1X5igu2ZoN5r3BQSpmTHV+CgHB54eWMvDPyfo7eE2dio0uTKhjsYioTYA37xngNA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1919 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTWljaGFlbCwNCg0KVW5mb3J0dW5hdGVseSwgZW5hYmxpbmcgdGhlIHRlbXBsYXRlcyBpbiB0 aGUgdW5jcnVzdGlmeS5jZmcgZmlsZXMgbW9kaWZpZXMgMzQwIGZpbGVzIHdpdGggbWlzc2luZyAN CmZpbGUvZnVuY3Rpb24gaGVhZGVycyB0aGF0IHdpbGwgbm93IGZhaWwgVW5jcnVzdGlmeUNoZWNr Lg0KDQogICAgY210X2luc2VydF9maWxlX2hlYWRlciAgICAgICAgICA9IGRlZmF1bHRfZmlsZV9o ZWFkZXIudHh0ICAgIA0KICAgIGNtdF9pbnNlcnRfZnVuY19oZWFkZXIgICAgICAgICAgPSBkZWZh dWx0X2Z1bmN0aW9uX2hlYWRlci50eHQNCg0KUGVyaGFwcyB3ZSBzaG91bGQgbGVhdmUgdGhpcyBm ZWF0dXJlIG9mZiB0byBnZXQgdGhlIHVuY3J1c3RpZnkgZm9ybWF0IGNoYW5nZXMgY29tbWl0dGVk IGFuZA0KZW5hYmxlIHRoaXMgZmVhdHVyZSBpbW1lZGlhdGVseSBhZnRlciBzbyBwYXRjaCByZXZp ZXdzIGFmdGVyIHRoYXQgd2lsbCBzbG93bHkgZml4IHRoZXNlIG1pc3NpbmcNCmZpbGUvZnVuY3Rp b24gaGVhZGVycy4NCg0KT3IgSSBjYW4gY29tbWVudCB0aGVzZSB0d28gbGluZXMgb3V0IHdoZW4g SSBnZW5lcmF0ZSB0aGUgZmluYWwgdmVyc2lvbiBvZiB0aGUgcGF0Y2ggc2VyaWVzIHNvDQp3ZSBk b27igJl0IGhhdmUgdG8gZG8gYW4gZXh0cmEgY29tbWl0IHRvIHJlLWVuYWJsZS4NCg0KTWlrZSAN Cg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBLaW5uZXksIE1pY2hhZWwg RCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1i ZXIgMjQsIDIwMjEgMzowNiBQTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IG1pa3ViYWNr QGxpbnV4Lm1pY3Jvc29mdC5jb207IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5 QGludGVsLmNvbT4NCj4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47 IFNlYW4gQnJvZ2FuIDxzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tPjsgQnJldCBCYXJrZWxldw0K PiA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiBTdWJqZWN0OiBSRTogW2VkazItZGV2 ZWxdIFtQQVRDSCB2NCAxLzFdIC5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjazogQWRkIFVu Y3J1c3RpZnkgQ0kgcGx1Z2luDQo+IA0KPiBUaGFua3MuICBUaGF0IG1ha2VzIHNlbnNlLg0KPiAN Cj4gTWlrZQ0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IGRl dmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIE1p Y2hhZWwgS3ViYWNraQ0KPiA+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMjQsIDIwMjEgMjo1 NSBQTQ0KPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgS2lubmV5LCBNaWNoYWVsIEQgPG1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+IENjOiBMaW1pbmcgR2FvIDxnYW9saW1pbmdA Ynlvc29mdC5jb20uY24+OyBTZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT47 IEJyZXQgQmFya2VsZXcNCj4gPiA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiA+IFN1 YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHY0IDEvMV0gLnB5dG9vbC9QbHVnaW4vVW5j cnVzdGlmeUNoZWNrOiBBZGQgVW5jcnVzdGlmeSBDSSBwbHVnaW4NCj4gPg0KPiA+IFllcy4gVGhv c2Ugd2VyZSByZWR1bmRhbnQgYW5kIGRldGVjdGVkIGJ5IHRoZSBQeXRob24gY29uZmlncGFyc2Vy IG1vZHVsZQ0KPiA+IHdoZW4gSSB1c2VkIGl0IHRvIHBhcnNlIHRoZSBjb25maWcgZmlsZS4NCj4g Pg0KPiA+IFRoYW5rcywNCj4gPiBNaWNoYWVsDQo+ID4NCj4gPiBPbiAxMS8yNC8yMDIxIDU6NDUg UE0sIE1pY2hhZWwgRCBLaW5uZXkgd3JvdGU6DQo+ID4gPiBIaSBNaWNoYWVsLA0KPiA+ID4NCj4g PiA+IEkgc2VlIGEgY291cGxlIHNldHRpbmdzIGRlbGV0ZWQgZnJvbSB0aGUgdW5jcnVzdGlmeS5j ZmcuICBXYXMgdGhhdCBpbiBwdXJwb3NlPyAgRG9lcyBpdCBjaGFuZ2UgdGhlIGZvcm1hdD8NCj4g PiA+DQo+ID4gPg0KPiA+ID4gLW5sX2Z1bmNfY2FsbF9zdGFydF9tdWx0aV9saW5lICAgPSB0cnVl ICAgICAgIyBXaGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIgJygnIGluIGEgZnVuY3Rpb24g Y2FsbCBpZiAnKCcgYW5kICcpJw0KPiBhcmUNCj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICMgaW4gZGlmZmVyZW50IGxpbmVzLg0KPiA+ID4NCj4gPiA+ DQo+ID4gPiAtbmxfZnVuY19jYWxsX2FyZ3NfbXVsdGlfbGluZSAgICAgICAgICAgICAgICAgPSB0 cnVlDQo+ID4gPiAtbmxfZnVuY19jYWxsX2FyZ3NfbXVsdGlfbGluZV9pZ25vcmVfY2xvc3VyZXMg PSBmYWxzZQ0KPiA+ID4NCj4gPiA+DQo+ID4gPiBUaGFua3MsDQo+ID4gPg0KPiA+ID4gTWlrZQ0K PiA+ID4NCj4gPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+IEZyb206IG1p a3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb20gPG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb20+ DQo+ID4gPj4gU2VudDogV2VkbmVzZGF5LCBOb3ZlbWJlciAyNCwgMjAyMSAxOjQyIFBNDQo+ID4g Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPj4gQ2M6IEtpbm5leSwgTWljaGFlbCBE IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9z b2Z0LmNvbS5jbj47IFNlYW4gQnJvZ2FuDQo+ID4gPj4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5j b20+OyBCcmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+DQo+ID4gPj4g U3ViamVjdDogW1BBVENIIHY0IDEvMV0gLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNrOiBB ZGQgVW5jcnVzdGlmeSBDSSBwbHVnaW4NCj4gPiA+Pg0KPiA+ID4+IEZyb206IE1pY2hhZWwgS3Vi YWNraSA8bWljaGFlbC5rdWJhY2tpQG1pY3Jvc29mdC5jb20+DQo+ID4gPj4NCj4gPiA+PiBSRUY6 aHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzQ4DQo+ID4g Pj4NCj4gPiA+PiBBZGRzIGEgbmV3IENJIHBsdWdpbiBmb3IgVW5jcnVzdGlmeS4gVGhpcyBpcyB1 c2VkIHRvIGNoZWNrDQo+ID4gPj4gY29kaW5nIHN0YW5kYXJkIGNvbXBsaWFuY2Ugb2Ygc291cmNl IGNvZGUgdG8gdGhlIEVESyBJSSBDIENvZGluZw0KPiA+ID4+IFN0YW5kYXJkcyBTcGVjaWZpY2F0 aW9uLg0KPiA+ID4+DQo+ID4gPj4gQW4gZXh0ZXJuYWwgZGVwZW5kZW5jeSBpcyBhZGRlZCBpbiB0 aGUgcGx1Z2luIGRpcmVjdG9yeSB0byByZXRyaWV2ZQ0KPiA+ID4+IHRoZSBVbmNydXN0aWZ5IGV4 ZWN1dGFibGUuIEN1cnJlbnRseSwgdGhlIGV4ZWN1dGFibGUgaXMgZnJvbSBhbiBlZGsyDQo+ID4g Pj4gZm9yayBvZiB0aGUgYXBwbGljYXRpb24gaG9zdCBpbiB0aGlzIHJlcG9zaXRvcnk6DQo+ID4g Pj4NCj4gPiA+PiBodHRwczovL2Rldi5henVyZS5jb20vcHJvamVjdG11L1VuY3J1c3RpZnkvDQo+ ID4gPj4NCj4gPiA+PiBOb3RlIHRoYXQgdGhlIFVuY3J1c3RpZnkgYXBwbGljYXRpb24gb3V0cHV0 cyB0aGUgY29tbWl0IElEIHRoYXQgdGhlDQo+ID4gPj4gYXBwbGljYXRpb24gd2FzIGJ1aWx0IGZy b20gd2hlbiBnaXZlbiB0aGUgLS12ZXJzaW9uIHBhcmFtZXRlci4NCj4gPiA+Pg0KPiA+ID4+IFRo aXMgSUQgY2FuIGJlIG1hcHBlZCB0byB0aGUgdmVyc2lvbiBzcGVjaWZpZWQgaW4gdGhlIFVuY3J1 c3RpZnkgQ0kNCj4gPiA+PiBwbHVnaW4gZXh0ZXJuYWwgZGVwZW5kZW5jeSBmaWxlICh1bmNydXN0 aWZ5X2V4dF9kZXAueWFtbCkgc3VjaCBhcw0KPiA+ID4+IDczLjAuMyBieSB2aXNpdGluZyB0aGUg VW5jcnVzdGlmeSBlZGsyIGZvcmsgcmVsZWFzZSBwaXBlbGluZSBwYWdlDQo+ID4gPj4gd2hpY2gg YXNzb2NpYXRlcyB0aGUgTnVHZXQgcGFja2FnZSB2ZXJzaW9uIHdpdGggdGhlIGNvbW1pdCBJRCBp dCB3YXMNCj4gPiA+PiBidWlsdCBmcm9tOg0KPiA+ID4+DQo+ID4gPj4gaHR0cHM6Ly9kZXYuYXp1 cmUuY29tL3Byb2plY3RtdS9VbmNydXN0aWZ5L19idWlsZA0KPiA+ID4+DQo+ID4gPj4gVGhlIGRl ZmF1bHQgVW5jcnVzdGlmeSBjb25maWd1cmF0aW9uIGZpbGVzIGFyZSBhZGRlZCBpbiB0aGUgcGx1 Z2luDQo+ID4gPj4gZGlyZWN0b3J5LiBBZGRpdGlvbmFsIGRldGFpbHMgYXJlIGluIHRoZSBSZWFk bWUubWQgZmlsZSBhZGRlZCBpbg0KPiA+ID4+IHRoZSBVbmNydXN0aWZ5IHBsdWdpbiBkaXJlY3Rv cnkuDQo+ID4gPj4NCj4gPiA+PiBDYzogTWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5l eUBpbnRlbC5jb20+DQo+ID4gPj4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNv bS5jbj4NCj4gPiA+PiBDYzogU2VhbiBCcm9nYW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+ DQo+ID4gPj4gQ2M6IEJyZXQgQmFya2VsZXcgPEJyZXQuQmFya2VsZXdAbWljcm9zb2Z0LmNvbT4N Cj4gPiA+PiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEt1YmFja2kgPG1pY2hhZWwua3ViYWNraUBt aWNyb3NvZnQuY29tPg0KPiA+ID4+IC0tLQ0KPiA+ID4+DQo+ID4gPj4gTm90ZXM6DQo+ID4gPj4g ICAgICBWNCBjaGFuZ2VzOg0KPiA+ID4+DQo+ID4gPj4gICAgICAxLiBVcGRhdGVkIGNvbW1pdCBz dWJqZWN0IHRvIHVzZSB0aGUgbmV3IHBsdWdpbiBuYW1lLg0KPiA+ID4+ICAgICAgMi4gRW5hYmxl ZCBmaWxlIGFuZCBmdW5jdGlvbiBoZWFkZXIgdGVtcGxhdGVzIHRvIGJlIHBsYWNlZCBpbg0KPiA+ ID4+ICAgICAgICAgZmlsZXMgbWlzc2luZyBhIGZpbGUgb3IgZnVuY3Rpb24gaGVhZGVyIChjb21t ZW50IGJsb2NrKS4NCj4gPiA+PiAgICAgIDMuIEFkZGVkIHN1cHBvcnQgdG8gZGV0ZWN0IHdoZXRo ZXIgYSBmaWxlIGhlYWRlciBvciBmdW5jdGlvbg0KPiA+ID4+ICAgICAgICAgaGVhZGVyIGlzIG1p c3NpbmcgaW4gYSBmaWxlIGJ5IHNlYXJjaGluZyBmaWxlcyBtb2RpZmllZCBieQ0KPiA+ID4+ICAg ICAgICAgVW5jcnVzdGlmeSBmb3IgdGhlIHRlbXBsYXRlIGZpbGUgdGV4dC4NCj4gPiA+PiAgICAg IDQuIFVwZGF0ZWQgdGhlIHBsdWdpbiBuYW1lIGRpc3BsYXllZCBpbiBzb21lIGxvZyBvdXRwdXQg bWVzc2FnZXMuDQo+ID4gPj4NCj4gPiA+PiAgICAgIFYzIGNoYW5nZXM6DQo+ID4gPj4NCj4gPiA+ PiAgICAgIDEuIFJlbmFtZWQgdGhlIENJIHBsdWdpbiB0byAiVW5jcnVzdGlmeUNoZWNrIiBmcm9t ICJVbmNydXN0aWZ5Ig0KPiA+ID4+ICAgICAgICAgdG8gZm9sbG93IHNpbWlsYXIgbmFtaW5nIGNv bnZlbnRpb25zIHVzZWQgaW4gb3RoZXIgcGx1Z2lucw0KPiA+ID4+ICAgICAgICAgdGhhdCBjaGVj ayBmaWxlcw0KPiA+ID4+ICAgICAgMi4gQWRkZWQgYSBjbGFyaWZ5aW5nIHBhcmFncmFwaCB0byB0 aGUgYmVnaW5uaW5nIG9mIHRoZSBVbmNydXN0aWZ5DQo+ID4gPj4gICAgICAgICBDSSBwbHVnaW4g UmVhZG1lLm1kIGZpbGUgdGhhdCB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdA0KPiA+ ID4+ICAgICAgICAgYW5kIHRlc3QgcmVzdWx0cyBjYW4gYmUgaWdub3JlZCBieSBlbmFibGluZyAi QXVkaXRPbmx5IiBtb2RlLg0KPiA+ID4+ICAgICAgMy4gQWRkZWQgaW5zdHJ1Y3Rpb25zIGluIHRo ZSBjb21taXQgbWVzc2FnZSBvbiBob3cgdG8gbWFwIHRoZQ0KPiA+ID4+ICAgICAgICAgdmVyc2lv biByZXBvcnRlZCBieSB0aGUgVW5jcnVzdGlmeSBhcHBsaWNhdGlvbiAoLS12ZXJzaW9uKSB0bw0K PiA+ID4+ICAgICAgICAgdGhlIHZlcnNpb24gc3BlY2lmaWVkIGluIHRoZSBDSSBwbHVnaW4gZXh0 ZXJuYWwgZGVwZW5kZW5jeQ0KPiA+ID4+ICAgICAgICAgWUFNTCBmaWxlLg0KPiA+ID4+DQo+ID4g Pj4gICAgICBWMiBjaGFuZ2VzOg0KPiA+ID4+DQo+ID4gPj4gICAgICAxLiBDaGFuZ2VkIHBsdWdp biB0ZW1wIGRpcmVjdG9yeSB0byBCdWlsZC8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5DQo+ID4g Pj4gICAgICAyLiBBZGRlZCBUQ0JaIFJFRiBpbiBwYXRjaCBjb21taXQgbWVzc2FnZQ0KPiA+ID4+ DQo+ID4gPj4gICAucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5Q2hlY2svUmVhZG1lLm1kICAgICAg ICAgICAgICAgICAgIHwgMTIwICsrKysNCj4gPiA+PiAgIC5weXRvb2wvUGx1Z2luL1VuY3J1c3Rp ZnlDaGVjay9VbmNydXN0aWZ5Q2hlY2sucHkgICAgICAgICAgfCA2MTcgKysrKysrKysrKysrKysr KysrKysNCj4gPiA+PiAgIC5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjay9kZWZhdWx0X2Zp bGVfaGVhZGVyLnR4dCAgICAgfCAgIDkgKw0KPiA+ID4+ICAgLnB5dG9vbC9QbHVnaW4vVW5jcnVz dGlmeUNoZWNrL2RlZmF1bHRfZnVuY3Rpb25faGVhZGVyLnR4dCB8ICAxNSArDQo+ID4gPj4gICAu cHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5Q2hlY2svdW5jcnVzdGlmeS5jZmcgICAgICAgICAgICAg IHwgNDYyICsrKysrKysrKysrKysrKw0KPiA+ID4+ICAgLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlm eUNoZWNrL3VuY3J1c3RpZnlfZXh0X2RlcC55YW1sICAgICB8ICAxNiArDQo+ID4gPj4gICAucHl0 b29sL1BsdWdpbi9VbmNydXN0aWZ5Q2hlY2svdW5jcnVzdGlmeV9wbHVnX2luLnlhbWwgICAgIHwg IDExICsNCj4gPiA+PiAgIC5weXRvb2wvUmVhZG1lLm1kICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDQgKw0KPiA+ID4+ICAgOCBmaWxlcyBjaGFuZ2VkLCAxMjU0 IGluc2VydGlvbnMoKykNCj4gPiA+Pg0KPiA+ID4+IGRpZmYgLS1naXQgYS8ucHl0b29sL1BsdWdp bi9VbmNydXN0aWZ5Q2hlY2svUmVhZG1lLm1kIGIvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNo ZWNrL1JlYWRtZS5tZA0KPiA+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPj4gaW5kZXgg MDAwMDAwMDAwMDAwLi5iYjI2M2JjYzg3ZDcNCj4gPiA+PiAtLS0gL2Rldi9udWxsDQo+ID4gPj4g KysrIGIvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNrL1JlYWRtZS5tZA0KPiA+ID4+IEBA IC0wLDAgKzEsMTIwIEBADQo+ID4gPj4gKyMgVW5jcnVzdGlmeUNoZWNrIFBsdWdpbg0KPiA+ID4+ ICsNCj4gPiA+PiArVGhpcyBDaUJ1aWxkUGx1Z2luIHNjYW5zIGFsbCB0aGUgZmlsZXMgaW4gYSBn aXZlbiBwYWNrYWdlIGFuZCBjaGVja3MgZm9yIGNvZGluZyBzdGFuZGFyZCBjb21wbGlhbmNlIGlz c3Vlcy4NCj4gPiA+PiArDQo+ID4gPj4gK1RoaXMgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVs dC4gSWYgYSBwYWNrYWdlIHdvdWxkIGxpa2UgdG8gcHJldmVudCB0aGUgcGx1Z2luIGZyb20gcmVw b3J0aW5nIGVycm9ycywgaXQgY2FuIGRvDQo+ID4gPj4gK3NvIGJ5IGVuYWJsaW5nIFtgQXVkaXRP bmx5YF0oI2F1ZGl0b25seSkgbW9kZS4NCj4gPiA+PiArDQo+ID4gPj4gK1RoaXMgcGx1Z2luIHJl cXVpcmVzIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgVW5jcnVzdGlmeSBleGVjdXRhYmxl IHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoaXMgcGx1Z2luIHRvDQo+ID4gPj4gK2JlIHNwZWNp ZmllZCBpbiBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lZCBgVU5DUlVTVElGWV9DSV9QQVRI YC4gVGhpcyB1bmlxdWUgdmFyaWFibGUgbmFtZSBpcyB1c2VkIHRvIGF2b2lkDQo+ID4gY29uZnVz aW9uDQo+ID4gPj4gK3dpdGggb3RoZXIgcGF0aHMgdG8gVW5jcnVzdGlmeSB3aGljaCBtaWdodCBu b3QgYmUgdGhlIGV4cGVjdGVkIGJ1aWxkIGZvciB1c2UgYnkgdGhpcyBwbHVnaW4uDQo+ID4gPj4g Kw0KPiA+ID4+ICtCeSBkZWZhdWx0LCBhbiBVbmNydXN0aWZ5IGNvbmZpZ3VyYXRpb24gZmlsZSBu YW1lZCAidW5jcnVzdGlmeS5jZmciIGxvY2F0ZWQgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRo ZSBwbHVnaW4gaXMNCj4gPiA+PiArdXNlZC4gVGhlIHZhbHVlIGNhbiBiZSBvdmVycmlkZGVuIHRv IGEgcGFja2FnZS1zcGVjaWZpYyBwYXRoIHdpdGggdGhlIGBDb25maWdGaWxlUGF0aGAgY29uZmln dXJhdGlvbiBmaWxlIG9wdGlvbi4NCj4gPiA+PiArDQo+ID4gPj4gKyogVW5jcnVzdGlmeSBzb3Vy Y2UgY29kZSBhbmQgZG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9naXRodWIuY29tL3VuY3J1c3RpZnkv dW5jcnVzdGlmeQ0KPiA+ID4+ICsqIFByb2plY3QgTXUgVW5jcnVzdGlmeSBmb3JrIHNvdXJjZSBj b2RlIGFuZCBkb2N1bWVudGF0aW9uOiBodHRwczovL2Rldi5henVyZS5jb20vcHJvamVjdG11L1Vu Y3J1c3RpZnkNCj4gPiA+PiArDQo+ID4gPj4gKyMjIEZpbGVzIENoZWNrZWQgaW4gYSBQYWNrYWdl DQo+ID4gPj4gKw0KPiA+ID4+ICtCeSBkZWZhdWx0LCB0aGlzIHBsdWdpbiB3aWxsIGRpc2NvdmVy IGFsbCBmaWxlcyBpbiB0aGUgcGFja2FnZSB3aXRoIHRoZSBmb2xsb3dpbmcgZGVmYXVsdCBwYXRo czoNCj4gPiA+PiArDQo+ID4gPj4gK2BgYHB5dGhvbg0KPiA+ID4+ICtbDQo+ID4gPj4gKyMgQyBz b3VyY2UNCj4gPiA+PiArIiouYyIsDQo+ID4gPj4gKyIqLmgiDQo+ID4gPj4gK10NCj4gPiA+PiAr YGBgDQo+ID4gPj4gKw0KPiA+ID4+ICtGcm9tIHRoaXMgbGlzdCBvZiBmaWxlcywgYW55IGZpbGVz IGlnbm9yZWQgYnkgR2l0IG9yIHJlc2lkaW5nIGluIGEgR2l0IHN1Ym1vZHVsZSB3aWxsIGJlIHJl bW92ZWQuIElmIEdpdCBpcyBub3QNCj4gPiA+PiArZm91bmQsIHN1Ym1vZHVsZXMgYXJlIG5vdCBm b3VuZCwgb3IgaWdub3JlZCBmaWxlcyBhcmUgbm90IGZvdW5kIG5vIGNoYW5nZXMgYXJlIG1hZGUg dG8gdGhlIGxpc3Qgb2YgZGlzY292ZXJlZCBmaWxlcy4NCj4gPiA+PiArDQo+ID4gPj4gK1RvIGNv bnRyb2wgdGhlIHBhdGhzIGNoZWNrZWQgaW4gYSBnaXZlbiBwYWNrYWdlLCByZXZpZXcgdGhlIGNv bmZpZ3VyYXRpb24gb3B0aW9ucyBkZXNjcmliZWQgaW4gdGhpcyBmaWxlLg0KPiA+ID4+ICsNCj4g PiA+PiArIyMgQ29uZmlndXJhdGlvbg0KPiA+ID4+ICsNCj4gPiA+PiArVGhlIHBsdWdpbiBjYW4g YmUgY29uZmlndXJlZCB3aXRoIGEgZmV3IG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4N Cj4gPiA+PiArDQo+ID4gPj4gK2BgYCB5YW1sDQo+ID4gPj4gKyAgIlVuY3J1c3RpZnlDaGVjayI6 IHsNCj4gPiA+PiArICAgICAgIkFkZGl0aW9uYWxJbmNsdWRlUGF0aHMiOiBbXSwgIyBBZGRpdGlv bmFsIHBhdGhzIHRvIGNoZWNrIGZvcm1hdHRpbmcgKHdpbGRjYXJkcyBzdXBwb3J0ZWQpLg0KPiA+ ID4+ICsgICAgICAiQXVkaXRPbmx5IjogRmFsc2UsICAgICAgICAgICAjIERvbid0IGZhaWwgdGhl IGJ1aWxkIGlmIHRoZXJlIGFyZSBlcnJvcnMuICBKdXN0IGxvZyB0aGVtLg0KPiA+ID4+ICsgICAg ICAiQ29uZmlnRmlsZVBhdGgiOiAiIiwgICAgICAgICAjIEN1c3RvbSBwYXRoIHRvIGFuIFVuY3J1 c3RpZnkgY29uZmlnIGZpbGUuDQo+ID4gPj4gKyAgICAgICJJZ25vcmVTdGFuZGFyZFBhdGhzIjog W10sICAgICMgU3RhbmRhcmQgUGx1Z2luIGRlZmluZWQgcGF0aHMgdGhhdCBzaG91bGQgYmUgaWdu b3JlZC4NCj4gPiA+PiArICAgICAgIk91dHB1dEZpbGVEaWZmcyI6IEZhbHNlLCAgICAgIyBPdXRw dXQgY2h1bmtzIG9mIGZvcm1hdHRpbmcgZGlmZnMgaW4gdGhlIHRlc3QgY2FzZSBsb2cuDQo+ID4g Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVGhpcyBjYW4gc2lnbmlm aWNhbnRseSBzbG93IGRvd24gdGhlIHBsdWdpbiBvbiB2ZXJ5IGxhcmdlIHBhY2thZ2VzLg0KPiA+ ID4+ICsgICAgICAiU2tpcEdpdEV4Y2x1c2lvbnMiOiBGYWxzZSAgICAjIERvbid0IGV4Y2x1ZGUg Z2l0IGlnbm9yZWQgZmlsZXMgYW5kIGZpbGVzIGluIGdpdCBzdWJtb2R1bGVzLg0KPiA+ID4+ICsg IH0NCj4gPiA+PiArYGBgDQo+ID4gPj4gKw0KPiA+ID4+ICsjIyMgYEFkZGl0aW9uYWxJbmNsdWRl UGF0aHNgDQo+ID4gPj4gKw0KPiA+ID4+ICtBIHBhY2thZ2UgY29uZmlndXJhdGlvbiBmaWxlIGNh biBzcGVjaWZ5IGFueSBhZGRpdGlvbmFsIHBhdGhzIHRvIGJlIGluY2x1ZGVkIHdpdGggdGhpcyBv cHRpb24uDQo+ID4gPj4gKw0KPiA+ID4+ICtBdCB0aGlzIHRpbWUsIGl0IGlzIHJlY29tbWVuZGVk IGFsbCBmaWxlcyBydW4gYWdhaW5zdCB0aGUgcGx1Z2luIGJlIHdyaXR0ZW4gaW4gdGhlIEMgb3Ig QysrIGxhbmd1YWdlLg0KPiA+ID4+ICsNCj4gPiA+PiArIyMjIGBBdWRpdE9ubHlgDQo+ID4gPj4g Kw0KPiA+ID4+ICtgQm9vbGVhbmAgLSBEZWZhdWx0IGlzIGBGYWxzZWAuDQo+ID4gPj4gKw0KPiA+ ID4+ICtJZiBgVHJ1ZWAsIHJ1biB0aGUgdGVzdCBpbiBhbiAiYXVkaXQgb25seSBtb2RlIiB3aGlj aCB3aWxsIGxvZyBhbGwgZXJyb3JzIGJ1dCBpbnN0ZWFkIG9mIGZhaWxpbmcgdGhlIGJ1aWxkLCBp dCB3aWxsDQo+ID4gc2V0DQo+ID4gPj4gK3RoZSB0ZXN0IGFzIHNraXBwZWQuIFRoaXMgYWxsb3dz IHZpc2liaWxpdHkgaW50byB0aGUgZmFpbHVyZXMgd2l0aG91dCBicmVha2luZyB0aGUgYnVpbGQu DQo+ID4gPj4gKw0KPiA+ID4+ICsjIyMgYENvbmZpZ0ZpbGVQYXRoYA0KPiA+ID4+ICsNCj4gPiA+ PiArYFN0cmluZ2AgLSBEZWZhdWx0IGlzIGAidW5jcnVzdGlmeS5jZmciYA0KPiA+ID4+ICsNCj4g PiA+PiArV2hlbiBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZyBmaWxlLCB0aGlzIGlzIGEgcGFja2Fn ZSByZWxhdGl2ZSBwYXRoIHRvIHRoZSBVbmNydXN0aWZ5IGNvbmZpZ3VyYXRpb24gZmlsZS4NCj4g PiA+PiArDQo+ID4gPj4gKyMjIyBgSWdub3JlU3RhbmRhcmRQYXRoc2ANCj4gPiA+PiArDQo+ID4g Pj4gK1RoaXMgcGx1Z2luIGJ5IGRlZmF1bHQgd2lsbCBjaGVjayB0aGUgYmVsb3cgc3RhbmRhcmQg cGF0aHMuIEEgcGFja2FnZSBjb25maWd1cmF0aW9uIGZpbGUgY2FuIHNwZWNpZnkgYW55IG9mIHRo ZXNlDQo+ID4gcGF0aHMNCj4gPiA+PiArdG8gYmUgaWdub3JlZC4NCj4gPiA+PiArDQo+ID4gPj4g K2BgYHB5dGhvbg0KPiA+ID4+ICtbDQo+ID4gPj4gKyMgQyBzb3VyY2UNCj4gPiA+PiArIiouYyIs DQo+ID4gPj4gKyIqLmgiDQo+ID4gPj4gK10NCj4gPiA+PiArYGBgDQo+ID4gPj4gKw0KPiA+ID4+ ICsjIyMgYE91dHB1dEZpbGVEaWZmc2ANCj4gPiA+PiArDQo+ID4gPj4gK2BCb29sZWFuYCAtIERl ZmF1bHQgaXMgYEZhbHNlYC4NCj4gPiA+PiArDQo+ID4gPj4gK0lmIGBUcnVlYCwgb3V0cHV0IGRp ZmZzIG9mIGZvcm1hdHRpbmcgY2hhbmdlcyBpbnRvIHRoZSB0ZXN0IGNhc2UgbG9nLiBUaGlzIGlz IGhlbHBmdWwgdG8gZXhhY3RseSB1bmRlcnN0YW5kIHdoYXQNCj4gPiBjaGFuZ2VzDQo+ID4gPj4g K25lZWQgdG8gYmUgbWFkZSB0byB0aGUgc291cmNlIGNvZGUgaW4gb3JkZXIgdG8gZml4IGEgY29k aW5nIHN0YW5kYXJkIGNvbXBsaWFuY2UgaXNzdWUuDQo+ID4gPj4gKw0KPiA+ID4+ICtOb3RlIHRo YXQgY2FsY3VsYXRpbmcgdGhlIGZpbGUgZGlmZnMgb24gYSB2ZXJ5IGxhcmdlIHNldCBvZiBvZiBy ZXN1bHRzIChlLmcuID4xMDAgZmlsZXMpIGNhbiBzaWduaWZpY2FudGx5IHNsb3cgZG93bg0KPiA+ ID4+ICtwbHVnaW4gZXhlY3V0aW9uLg0KPiA+ID4+ICsNCj4gPiA+PiArIyMjIGBTa2lwR2l0RXhj bHVzaW9uc2ANCj4gPiA+PiArDQo+ID4gPj4gK2BCb29sZWFuYCAtIERlZmF1bHQgaXMgYEZhbHNl YC4NCj4gPiA+PiArDQo+ID4gPj4gK0J5IGRlZmF1bHQsIGZpbGVzIGluIHBhdGhzIG1hdGNoZWQg aW4gYSAuZ2l0aWdub3JlIGZpbGUgb3IgYSByZWNvZ25pemVkIGdpdCBzdWJtb2R1bGUgYXJlIGV4 Y2x1ZGVkLiBJZiB0aGlzIG9wdGlvbg0KPiA+ID4+ICtpcyBgVHJ1ZWAsIHRoZSBwbHVnaW4gd2ls bCBub3QgYXR0ZW1wdCB0byByZWNvZ25pemUgdGhlc2UgZmlsZXMgYW5kIGV4Y2x1ZGUgdGhlbS4N Cj4gPiA+PiArDQo+ID4gPj4gKyMjIEhpZ2gtTGV2ZWwgUGx1Z2luIE9wZXJhdGlvbg0KPiA+ID4+ ICsNCj4gPiA+PiArVGhpcyBwbHVnaW4gZ2VuZXJhdGVzIHR3byBtYWluIHNldHMgb2YgdGVtcG9y YXJ5IGZpbGVzOg0KPiA+ID4+ICsNCj4gPiA+PiArICAxLiBBIHdvcmtpbmcgZGlyZWN0b3J5IGlu IHRoZSBkaXJlY3RvcnkgYEJ1aWxkLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlgDQo+ID4gPj4g KyAgMi4gRm9yIGVhY2ggc291cmNlIGZpbGUgd2l0aCBmb3JtYXR0aW5nIGVycm9ycywgYSBzaWJs aW5nIGZpbGUgd2l0aCB0aGUgYC51bmNydXN0aWZ5X3BsdWdpbmAgZXh0ZW5zaW9uDQo+ID4gPj4g Kw0KPiA+ID4+ICtUaGUgd29ya2luZyBkaXJlY3RvcnkgY29udGFpbnMgdGVtcG9yYXJ5IGZpbGVz IHVuaXF1ZSB0byBvcGVyYXRpb24gb2YgdGhlIHBsdWdpbi4gQWxsIG9mIHRoZXNlIGZpbGVzIGFy ZSByZW1vdmVkIG9uDQo+ID4gPj4gK2V4aXQgb2YgdGhlIHBsdWdpbiBpbmNsdWRpbmcgc3VjY2Vz c2Z1bCBvciB1bnN1Y2Nlc3NmdWwgZXhlY3V0aW9uIChzdWNoIGFzIGEgUHl0aG9uIGV4Y2VwdGlv biBvY2N1cnJpbmcpLiBJZiBmb3IgYW55DQo+ID4gPj4gK3JlYXNvbiwgYW55IGZpbGVzIGluIHRo ZSBwYWNrYWdlIGV4aXN0IHByaW9yIHRvIHJ1bm5pbmcgdGhlIHBsdWdpbiB3aXRoIHRoZSBgLnVu Y3J1c3RpZnlfcGx1Z2luYCBleHRlbnNpb24sIHRoZQ0KPiBwbHVnaW4NCj4gPiA+PiArd2lsbCBp bmZvcm0gdGhlIHVzZXIgdG8gcmVtb3ZlIHRoZXNlIGZpbGVzIGFuZCBleGl0IGJlZm9yZSBydW5u aW5nIFVuY3J1c3RpZnkuIFRoaXMgaXMgdG8gZW5zdXJlIHRoZSBhY2N1cmFjeSBvZiB0aGUNCj4g PiA+PiArcmVzdWx0cyByZXBvcnRlZCBmcm9tIGVhY2ggZXhlY3V0aW9uIGluc3RhbmNlIG9mIHRo ZSBwbHVnaW4uDQo+ID4gPj4gKw0KPiA+ID4+ICtUaGUgcGx1Z2luIGRldGVybWluZXMgdGhlIGxp c3Qgb2YgcmVsZXZhbnQgZmlsZXMgdG8gY2hlY2sgd2l0aCBVbmNydXN0aWZ5IGFuZCB0aGVuIGlu dm9rZXMgVW5jcnVzdGlmeSB3aXRoIHRoYXQgZmlsZQ0KPiA+ID4+ICtsaXN0LiBGb3IgYW55IGZp bGVzIG5vdCBjb21wbGlhbnQgdG8gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBwcm92aWRlZCwgVW5j cnVzdGlmeSB3aWxsIGdlbmVyYXRlIGEgY29ycmVzcG9uZGluZyBmaWxlDQo+ID4gPj4gK3dpdGgg dGhlIGAudW5jcnVzdGlmeV9wbHVnaW5gIGV4dGVuc2lvbi4gVGhlIHBsdWdpbiBkaXNjb3ZlcnMg YWxsIG9mIHRoZXNlIGZpbGVzLiBJZiBhbnkgc3VjaCBmaWxlcyBhcmUgcHJlc2VudCwNCj4gdGhp cw0KPiA+ID4+ICtpbmRpY2F0ZXMgYSBmb3JtYXR0aW5nIGlzc3VlIHdhcyBmb3VuZCBhbmQgdGhl IHRlc3QgaXMgbWFya2VkIGZhaWxlZCAodW5sZXNzIGBBdWRpdE9ubHlgIG1vZGUgaXMgZW5hYmxl ZCkuDQo+ID4gPj4gKw0KPiA+ID4+ICtUaGUgdGVzdCBjYXNlIGxvZyB3aWxsIGNvbnRhaW4gYSBy ZXBvcnQgb2Ygd2hpY2ggZmlsZXMgZmFpbGVkIHRvIGZvcm1hdCBwcm9wZXJseSwgYWxsb3dpbmcg dGhlIHVzZXIgdG8gcnVuDQo+IFVuY3J1c3RpZnkNCj4gPiA+PiArYWdhaW5zdCB0aGUgZmlsZSBs b2NhbGx5IHRvIGZpeCB0aGUgaXNzdWUuIElmIHRoZSBgT3V0cHV0RmlsZURpZmZzYCBjb25maWd1 cmF0aW9uIG9wdGlvbiBpcyBzZXQgdG8gYFRydWVgLCB0aGUNCj4gcGx1Z2luDQo+ID4gPj4gK3dp bGwgb3V0cHV0IGRpZmYgY2h1bmtzIGZvciBhbGwgY29kZSBmb3JtYXR0aW5nIGlzc3VlcyBpbiB0 aGUgdGVzdCBjYXNlIGxvZy4NCj4gPiA+PiBkaWZmIC0tZ2l0IGEvLnB5dG9vbC9QbHVnaW4vVW5j cnVzdGlmeUNoZWNrL1VuY3J1c3RpZnlDaGVjay5weSBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3Rp ZnlDaGVjay9VbmNydXN0aWZ5Q2hlY2sucHkNCj4gPiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiA+ID4+IGluZGV4IDAwMDAwMDAwMDAwMC4uNTk1MzQ0NjlhMmQzDQo+ID4gPj4gLS0tIC9kZXYv bnVsbA0KPiA+ID4+ICsrKyBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjay9VbmNydXN0 aWZ5Q2hlY2sucHkNCj4gPiA+PiBAQCAtMCwwICsxLDYxNyBAQA0KPiA+ID4+ICsjIEBmaWxlIFVu Y3J1c3RpZnlDaGVjay5weQ0KPiA+ID4+ICsjDQo+ID4gPj4gKyMgQW4gZWRrMi1weXRvb2wgYmFz ZWQgcGx1Z2luIHdyYXBwZXIgZm9yIFVuY3J1c3RpZnkNCj4gPiA+PiArIw0KPiA+ID4+ICsjIENv cHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KPiA+ID4+ICsjIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gPj4gKyMjDQo+ID4gPj4gK2lt cG9ydCBjb25maWdwYXJzZXINCj4gPiA+PiAraW1wb3J0IGRpZmZsaWINCj4gPiA+PiAraW1wb3J0 IGVycm5vDQo+ID4gPj4gK2ltcG9ydCBsb2dnaW5nDQo+ID4gPj4gK2ltcG9ydCBvcw0KPiA+ID4+ ICtpbXBvcnQgcGF0aGxpYg0KPiA+ID4+ICtpbXBvcnQgc2h1dGlsDQo+ID4gPj4gK2ltcG9ydCB0 aW1laXQNCj4gPiA+PiArZnJvbSBlZGsydG9vbGV4dC5lbnZpcm9ubWVudCBpbXBvcnQgdmVyc2lv bl9hZ2dyZWdhdG9yDQo+ID4gPj4gK2Zyb20gZWRrMnRvb2xleHQuZW52aXJvbm1lbnQucGx1Z2lu X21hbmFnZXIgaW1wb3J0IFBsdWdpbk1hbmFnZXINCj4gPiA+PiArZnJvbSBlZGsydG9vbGV4dC5l bnZpcm9ubWVudC5wbHVnaW50eXBlcy5jaV9idWlsZF9wbHVnaW4gaW1wb3J0IElDaUJ1aWxkUGx1 Z2luDQo+ID4gPj4gK2Zyb20gZWRrMnRvb2xleHQuZW52aXJvbm1lbnQucGx1Z2ludHlwZXMudWVm aV9oZWxwZXJfcGx1Z2luIGltcG9ydCBIZWxwZXJGdW5jdGlvbnMNCj4gPiA+PiArZnJvbSBlZGsy dG9vbGV4dC5lbnZpcm9ubWVudC52YXJfZGljdCBpbXBvcnQgVmFyRGljdA0KPiA+ID4+ICtmcm9t IGVkazJ0b29sbGliLmxvZy5qdW5pdF9yZXBvcnRfZm9ybWF0IGltcG9ydCBKdW5pdFJlcG9ydFRl c3RDYXNlDQo+ID4gPj4gK2Zyb20gZWRrMnRvb2xsaWIudWVmaS5lZGsyLnBhdGhfdXRpbGl0aWVz IGltcG9ydCBFZGsyUGF0aA0KPiA+ID4+ICtmcm9tIGVkazJ0b29sbGliLnV0aWxpdHlfZnVuY3Rp b25zIGltcG9ydCAgUnVuQ21kDQo+ID4gPj4gK2Zyb20gaW8gaW1wb3J0IFN0cmluZ0lPDQo+ID4g Pj4gK2Zyb20gdHlwaW5nIGltcG9ydCBBbnksIERpY3QsIExpc3QsIFR1cGxlDQo+ID4gPj4gKw0K PiA+ID4+ICsjDQo+ID4gPj4gKyMgUHJvdmlkZSBtb3JlIHVzZXIgZnJpZW5kbHkgbWVzc2FnZXMg Zm9yIGNlcnRhaW4gc2NlbmFyaW9zDQo+ID4gPj4gKyMNCj4gPiA+PiArY2xhc3MgVW5jcnVzdGlm eUV4Y2VwdGlvbihFeGNlcHRpb24pOg0KPiA+ID4+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1l c3NhZ2UsIGV4aXRfY29kZSk6DQo+ID4gPj4gKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhtZXNz YWdlKQ0KPiA+ID4+ICsgICAgICAgIHNlbGYuZXhpdF9jb2RlID0gZXhpdF9jb2RlDQo+ID4gPj4g Kw0KPiA+ID4+ICsNCj4gPiA+PiArY2xhc3MgVW5jcnVzdGlmeUFwcEVudlZhck5vdEZvdW5kRXhj ZXB0aW9uKFVuY3J1c3RpZnlFeGNlcHRpb24pOg0KPiA+ID4+ICsgICAgZGVmIF9faW5pdF9fKHNl bGYsIG1lc3NhZ2UpOg0KPiA+ID4+ICsgICAgICAgIHN1cGVyKCkuX19pbml0X18obWVzc2FnZSwg LTEwMSkNCj4gPiA+PiArDQo+ID4gPj4gKw0KPiA+ID4+ICtjbGFzcyBVbmNydXN0aWZ5QXBwVmVy c2lvbkVycm9yRXhjZXB0aW9uKFVuY3J1c3RpZnlFeGNlcHRpb24pOg0KPiA+ID4+ICsgICAgZGVm IF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiA+ID4+ICsgICAgICAgIHN1cGVyKCkuX19pbml0 X18obWVzc2FnZSwgLTEwMikNCj4gPiA+PiArDQo+ID4gPj4gKw0KPiA+ID4+ICtjbGFzcyBVbmNy dXN0aWZ5QXBwRXhlY3V0aW9uRXhjZXB0aW9uKFVuY3J1c3RpZnlFeGNlcHRpb24pOg0KPiA+ID4+ ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiA+ID4+ICsgICAgICAgIHN1cGVy KCkuX19pbml0X18obWVzc2FnZSwgLTEwMykNCj4gPiA+PiArDQo+ID4gPj4gKw0KPiA+ID4+ICtj bGFzcyBVbmNydXN0aWZ5U3RhbGVQbHVnaW5Gb3JtYXR0ZWRGaWxlc0V4Y2VwdGlvbihVbmNydXN0 aWZ5RXhjZXB0aW9uKToNCj4gPiA+PiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXNzYWdlKToN Cj4gPiA+PiArICAgICAgICBzdXBlcigpLl9faW5pdF9fKG1lc3NhZ2UsIC0xMjApDQo+ID4gPj4g Kw0KPiA+ID4+ICsNCj4gPiA+PiArY2xhc3MgVW5jcnVzdGlmeUlucHV0RmlsZUNyZWF0aW9uRXJy b3JFeGNlcHRpb24oVW5jcnVzdGlmeUV4Y2VwdGlvbik6DQo+ID4gPj4gKyAgICBkZWYgX19pbml0 X18oc2VsZiwgbWVzc2FnZSk6DQo+ID4gPj4gKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhtZXNz YWdlLCAtMTIxKQ0KPiA+ID4+ICsNCj4gPiA+PiArY2xhc3MgVW5jcnVzdGlmeUludmFsaWRJZ25v cmVTdGFuZGFyZFBhdGhzRXhjZXB0aW9uKFVuY3J1c3RpZnlFeGNlcHRpb24pOg0KPiA+ID4+ICsg ICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiA+ID4+ICsgICAgICAgIHN1cGVyKCku X19pbml0X18obWVzc2FnZSwgLTEyMikNCj4gPiA+PiArDQo+ID4gPj4gK2NsYXNzIFVuY3J1c3Rp ZnlHaXRJZ25vcmVGaWxlRXhjZXB0aW9uKFVuY3J1c3RpZnlFeGNlcHRpb24pOg0KPiA+ID4+ICsg ICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiA+ID4+ICsgICAgICAgIHN1cGVyKCku X19pbml0X18obWVzc2FnZSwgLTE0MCkNCj4gPiA+PiArDQo+ID4gPj4gKw0KPiA+ID4+ICtjbGFz cyBVbmNydXN0aWZ5R2l0U3VibW9kdWxlRXhjZXB0aW9uKFVuY3J1c3RpZnlFeGNlcHRpb24pOg0K PiA+ID4+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiA+ID4+ICsgICAgICAg IHN1cGVyKCkuX19pbml0X18obWVzc2FnZSwgLTE0MSkNCj4gPiA+PiArDQo+ID4gPj4gKw0KPiA+ ID4+ICtjbGFzcyBVbmNydXN0aWZ5Q2hlY2soSUNpQnVpbGRQbHVnaW4pOg0KPiA+ID4+ICsgICAg IiIiDQo+ID4gPj4gKyAgICBBIENpQnVpbGRQbHVnaW4gdGhhdCB1c2VzIFVuY3J1c3RpZnkgdG8g Y2hlY2sgdGhlIHNvdXJjZSBmaWxlcyBpbiB0aGUNCj4gPiA+PiArICAgIHBhY2thZ2UgYmVpbmcg dGVzdGVkIGZvciBjb2Rpbmcgc3RhbmRhcmQgaXNzdWVzLg0KPiA+ID4+ICsNCj4gPiA+PiArICAg IEJ5IGRlZmF1bHQsIHRoZSBwbHVnaW4gcnVucyBhZ2FpbnN0IHN0YW5kYXJkIEMgc291cmNlIGZp bGUgZXh0ZW5zaW9ucyBidXQNCj4gPiA+PiArICAgIGl0cyBjb25maWd1cmF0aW9uIGNhbiBiZSBt b2RpZmllZCB0aHJvdWdoIGl0cyBjb25maWd1cmF0aW9uIGZpbGUuDQo+ID4gPj4gKw0KPiA+ID4+ ICsgICAgQ29uZmlndXJhdGlvbiBvcHRpb25zOg0KPiA+ID4+ICsgICAgIlVuY3J1c3RpZnlDaGVj ayI6IHsNCj4gPiA+PiArICAgICAgICAiQWRkaXRpb25hbEluY2x1ZGVQYXRocyI6IFtdLCAjIEFk ZGl0aW9uYWwgcGF0aHMgdG8gY2hlY2sgZm9ybWF0dGluZyAod2lsZGNhcmRzIHN1cHBvcnRlZCku DQo+ID4gPj4gKyAgICAgICAgIkF1ZGl0T25seSI6IEZhbHNlLCAgICAgICAgICAgIyBEb24ndCBm YWlsIHRoZSBidWlsZCBpZiB0aGVyZSBhcmUgZXJyb3JzLiAgSnVzdCBsb2cgdGhlbS4NCj4gPiA+ PiArICAgICAgICAiQ29uZmlnRmlsZVBhdGgiOiAiIiwgICAgICAgICAjIEN1c3RvbSBwYXRoIHRv IGFuIFVuY3J1c3RpZnkgY29uZmlnIGZpbGUuDQo+ID4gPj4gKyAgICAgICAgIklnbm9yZVN0YW5k YXJkUGF0aHMiOiBbXSwgICAgIyBTdGFuZGFyZCBQbHVnaW4gZGVmaW5lZCBwYXRocyB0aGF0IHNo b3VsZCBiZSBpZ25vcmVkLg0KPiA+ID4+ICsgICAgICAgICJPdXRwdXRGaWxlRGlmZnMiOiBGYWxz ZSwgICAgICMgT3V0cHV0IGNodW5rcyBvZiBmb3JtYXR0aW5nIGRpZmZzIGluIHRoZSB0ZXN0IGNh c2UgbG9nLg0KPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg VGhpcyBjYW4gc2lnbmlmaWNhbnRseSBzbG93IGRvd24gdGhlIHBsdWdpbiBvbiB2ZXJ5IGxhcmdl IHBhY2thZ2VzLg0KPiA+ID4+ICsgICAgICAgICJTa2lwR2l0RXhjbHVzaW9ucyI6IEZhbHNlICAg ICMgRG9uJ3QgZXhjbHVkZSBnaXQgaWdub3JlZCBmaWxlcyBhbmQgZmlsZXMgaW4gZ2l0IHN1Ym1v ZHVsZXMuDQo+ID4gPj4gKyAgICB9DQo+ID4gPj4gKyAgICAiIiINCj4gPiA+PiArDQo+ID4gPj4g KyAgICAjDQo+ID4gPj4gKyAgICAjIEJ5IGRlZmF1bHQsIHVzZSBhbiAidW5jcnVzdGlmeS5jZmci IGNvbmZpZyBmaWxlIGluIHRoZSBwbHVnaW4gZGlyZWN0b3J5DQo+ID4gPj4gKyAgICAjIEEgcGFj a2FnZSBjYW4gb3ZlcnJpZGUgdGhpcyBwYXRoIHZpYSAiQ29uZmlnRmlsZVBhdGgiDQo+ID4gPj4g KyAgICAjDQo+ID4gPj4gKyAgICAjIE5vdGU6IFZhbHVlcyBzcGVjaWZpZWQgdmlhICJDb25maWdG aWxlUGF0aCIgYXJlIHJlbGF0aXZlIHRvIHRoZSBwYWNrYWdlDQo+ID4gPj4gKyAgICAjDQo+ID4g Pj4gKyAgICBERUZBVUxUX0NPTkZJR19GSUxFX1BBVEggPSBvcy5wYXRoLmpvaW4oDQo+ID4gPj4g KyAgICAgICAgcGF0aGxpYi5QYXRoKF9fZmlsZV9fKS5wYXJlbnQucmVzb2x2ZSgpLCAidW5jcnVz dGlmeS5jZmciKQ0KPiA+ID4+ICsNCj4gPiA+PiArICAgICMNCj4gPiA+PiArICAgICMgVGhlIGV4 dGVuc2lvbiB1c2VkIGZvciBmb3JtYXR0ZWQgZmlsZXMgcHJvZHVjZWQgYnkgdGhpcyBwbHVnaW4N Cj4gPiA+PiArICAgICMNCj4gPiA+PiArICAgIEZPUk1BVFRFRF9GSUxFX0VYVEVOU0lPTiA9ICIu dW5jcnVzdGlmeV9wbHVnaW4iDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgIw0KPiA+ID4+ICsgICAg IyBBIHBhY2thZ2UgY2FuIGFkZCBhbnkgYWRkaXRpb25hbCBwYXRocyB3aXRoICJBZGRpdGlvbmFs SW5jbHVkZVBhdGhzIg0KPiA+ID4+ICsgICAgIyBBIHBhY2thZ2UgY2FuIHJlbW92ZSBhbnkgb2Yg dGhlc2UgcGF0aHMgd2l0aCAiSWdub3JlU3RhbmRhcmRQYXRocyINCj4gPiA+PiArICAgICMNCj4g PiA+PiArICAgIFNUQU5EQVJEX1BMVUdJTl9ERUZJTkVEX1BBVEhTID0gKCIqLmMiLCAiKi5oIikN Cj4gPiA+PiArDQo+ID4gPj4gKyAgICAjDQo+ID4gPj4gKyAgICAjIFRoZSBVbmNydXN0aWZ5IGFw cGxpY2F0aW9uIHBhdGggc2hvdWxkIHNldCBpbiB0aGlzIGVudmlyb25tZW50IHZhcmlhYmxlDQo+ ID4gPj4gKyAgICAjDQo+ID4gPj4gKyAgICBVTkNSVVNUSUZZX1BBVEhfRU5WX0tFWSA9ICJVTkNS VVNUSUZZX0NJX1BBVEgiDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgZGVmIEdldFRlc3ROYW1lKHNl bGYsIHBhY2thZ2VuYW1lOiBzdHIsIGVudmlyb25tZW50OiBWYXJEaWN0KSAtPiBUdXBsZToNCj4g PiA+PiArICAgICAgICAiIiIgUHJvdmlkZSB0aGUgdGVzdGNhc2UgbmFtZSBhbmQgY2xhc3NuYW1l IGZvciB1c2UgaW4gcmVwb3J0aW5nDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgICAgICAgICBBcmdz Og0KPiA+ID4+ICsgICAgICAgICAgICAgIHBhY2thZ2VuYW1lOiBzdHJpbmcgY29udGFpbmluZyBu YW1lIG9mIHBhY2thZ2UgdG8gYnVpbGQNCj4gPiA+PiArICAgICAgICAgICAgICBlbnZpcm9ubWVu dDogVGhlIFZhckRpY3QgZm9yIHRoZSB0ZXN0IHRvIHJ1biBpbg0KPiA+ID4+ICsgICAgICAgICAg ICBSZXR1cm5zOg0KPiA+ID4+ICsgICAgICAgICAgICAgICAgQSB0dXBsZSBjb250YWluaW5nIHRo ZSB0ZXN0Y2FzZSBuYW1lIGFuZCB0aGUgY2xhc3NuYW1lDQo+ID4gPj4gKyAgICAgICAgICAgICAg ICAodGVzdGNhc2VuYW1lLCBjbGFzc25hbWUpDQo+ID4gPj4gKyAgICAgICAgICAgICAgICB0ZXN0 Y2xhc3NuYW1lOiBhIGRlc2NyaXB0aXZlIHN0cmluZyBmb3IgdGhlIHRlc3RjYXNlIGNhbiBpbmNs dWRlIHdoaXRlc3BhY2UNCj4gPiA+PiArICAgICAgICAgICAgICAgIGNsYXNzbmFtZTogc2hvdWxk IGJlIHBhdHRlcm5lZCA8cGFja2FnZW5hbWU+LjxwbHVnaW4+LjxvcHRpb25hbGx5IGFueSB1bmlx dWUgY29uZGl0aW9uPg0KPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ID4+ICsgICAgICAgIHJldHVy biAoIkNoZWNrIGZpbGUgY29kaW5nIHN0YW5kYXJkIGNvbXBsaWFuY2UgaW4gIiArIHBhY2thZ2Vu YW1lLCBwYWNrYWdlbmFtZSArICIuVW5jcnVzdGlmeUNoZWNrIikNCj4gPiA+PiArDQo+ID4gPj4g KyAgICBkZWYgUnVuQnVpbGRQbHVnaW4oc2VsZiwgcGFja2FnZV9yZWxfcGF0aDogc3RyLCBlZGsy X3BhdGg6IEVkazJQYXRoLCBwYWNrYWdlX2NvbmZpZzogRGljdFtzdHIsIExpc3Rbc3RyXV0sDQo+ ID4gPj4gZW52aXJvbm1lbnRfY29uZmlnOiBBbnksIHBsdWdpbl9tYW5hZ2VyOiBQbHVnaW5NYW5h Z2VyLCBwbHVnaW5fbWFuYWdlcl9oZWxwZXI6IEhlbHBlckZ1bmN0aW9ucywgdGM6DQo+ID4gSnVu aXRSZXBvcnRUZXN0Q2FzZSwNCj4gPiA+PiBvdXRwdXRfc3RyZWFtPU5vbmUpIC0+IGludDoNCj4g PiA+PiArICAgICAgICAiIiINCj4gPiA+PiArICAgICAgICBFeHRlcm5hbCBmdW5jdGlvbiBvZiBw bHVnaW4uIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBwZXJmb3JtIHRoZSB0YXNrIG9mIHRoZSBD aUJ1aWxkIFBsdWdpbi4NCj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAgQXJnczoNCj4gPiA+PiAr ICAgICAgICAgIC0gcGFja2FnZV9yZWxfcGF0aDogZWRrMiB3b3Jrc3BhY2UgcmVsYXRpdmUgcGF0 aCB0byB0aGUgcGFja2FnZQ0KPiA+ID4+ICsgICAgICAgICAgLSBlZGsyX3BhdGg6IEVkazJQYXRo IG9iamVjdCB3aXRoIHdvcmtzcGFjZSBhbmQgcGFja2FnZXMgcGF0aHMNCj4gPiA+PiArICAgICAg ICAgIC0gcGFja2FnZV9jb25maWc6IERpY3Rpb25hcnkgd2l0aCB0aGUgcGFja2FnZSBjb25maWd1 cmF0aW9uDQo+ID4gPj4gKyAgICAgICAgICAtIGVudmlyb25tZW50X2NvbmZpZzogRW52aXJvbm1l bnQgY29uZmlndXJhdGlvbg0KPiA+ID4+ICsgICAgICAgICAgLSBwbHVnaW5fbWFuYWdlcjogUGx1 Z2luIE1hbmFnZXIgSW5zdGFuY2UNCj4gPiA+PiArICAgICAgICAgIC0gcGx1Z2luX21hbmFnZXJf aGVscGVyOiBQbHVnaW4gTWFuYWdlciBIZWxwZXIgSW5zdGFuY2UNCj4gPiA+PiArICAgICAgICAg IC0gdGM6IEpVbml0IHRlc3QgY2FzZQ0KPiA+ID4+ICsgICAgICAgICAgLSBvdXRwdXRfc3RyZWFt OiBUaGUgU3RyaW5nSU8gb3V0cHV0IHN0cmVhbSBmcm9tIHRoaXMgcGx1Z2luIChsb2dnaW5nKQ0K PiA+ID4+ICsNCj4gPiA+PiArICAgICAgICBSZXR1cm5zDQo+ID4gPj4gKyAgICAgICAgICA+MCA6 IE51bWJlciBvZiBlcnJvcnMgZm91bmQNCj4gPiA+PiArICAgICAgICAgIDAgIDogUGFzc2VkIHN1 Y2Nlc3NmdWxseQ0KPiA+ID4+ICsgICAgICAgICAgLTEgOiBTa2lwcGVkIGZvciBtaXNzaW5nIHBy ZXJlcQ0KPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ID4+ICsgICAgICAgIHRyeToNCj4gPiA+PiAr ICAgICAgICAgICAgIyBJbml0aWFsaXplIHBsdWdpbiBhbmQgY2hlY2sgcHJlLXJlcXVpc2l0ZXMu DQo+ID4gPj4gKyAgICAgICAgICAgIHNlbGYuX2luaXRpYWxpemVfZW52aXJvbm1lbnRfaW5mbygN Cj4gPiA+PiArICAgICAgICAgICAgICAgIHBhY2thZ2VfcmVsX3BhdGgsIGVkazJfcGF0aCwgcGFj a2FnZV9jb25maWcsIHRjKQ0KPiA+ID4+ICsgICAgICAgICAgICBzZWxmLl9pbml0aWFsaXplX2Nv bmZpZ3VyYXRpb24oKQ0KPiA+ID4+ICsgICAgICAgICAgICBzZWxmLl9jaGVja19mb3JfcHJlZXhp c3RpbmdfZm9ybWF0dGVkX2ZpbGVzKCkNCj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAgICAgICMg TG9nIGltcG9ydGFudCBjb250ZXh0IGluZm9ybWF0aW9uLg0KPiA+ID4+ICsgICAgICAgICAgICBz ZWxmLl9sb2dfdW5jcnVzdGlmeV9hcHBfaW5mbygpDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgICAg ICAgICAjIEdldCB0ZW1wbGF0ZSBmaWxlIGNvbnRlbnRzIGlmIHNwZWNpZmllZA0KPiA+ID4+ICsg ICAgICAgICAgICBzZWxmLl9nZXRfdGVtcGxhdGVfZmlsZV9jb250ZW50cygpDQo+ID4gPj4gKw0K PiA+ID4+ICsgICAgICAgICAgICAjIENyZWF0ZSBtZXRhIGlucHV0IGZpbGVzICYgZGlyZWN0b3Jp ZXMNCj4gPiA+PiArICAgICAgICAgICAgc2VsZi5fY3JlYXRlX3RlbXBfd29ya2luZ19kaXJlY3Rv cnkoKQ0KPiA+ID4+ICsgICAgICAgICAgICBzZWxmLl9jcmVhdGVfdW5jcnVzdGlmeV9maWxlX2xp c3RfZmlsZSgpDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgICAgICAgICBzZWxmLl9ydW5fdW5jcnVz dGlmeSgpDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgICAgICAgICAjIFBvc3QtZXhlY3V0aW9uIGFj dGlvbnMuDQo+ID4gPj4gKyAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfdW5jcnVzdGlmeV9yZXN1 bHRzKCkNCj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAgZXhjZXB0IFVuY3J1c3RpZnlFeGNlcHRp b24gYXMgZToNCj4gPiA+PiArICAgICAgICAgICAgc2VsZi5fdGMuTG9nU3RkRXJyb3IoDQo+ID4g Pj4gKyAgICAgICAgICAgICAgICBmIlVuY3J1c3RpZnkgZXJyb3Ige2UuZXhpdF9jb2RlfS4gRGV0 YWlsczpcblxue3N0cihlKX0iKQ0KPiA+ID4+ICsgICAgICAgICAgICBsb2dnaW5nLndhcm5pbmco DQo+ID4gPj4gKyAgICAgICAgICAgICAgICBmIlVuY3J1c3RpZnkgZXJyb3Ige2UuZXhpdF9jb2Rl fS4gRGV0YWlsczpcblxue3N0cihlKX0iKQ0KPiA+ID4+ICsgICAgICAgICAgICByZXR1cm4gLTEN Cj4gPiA+PiArICAgICAgICBlbHNlOg0KPiA+ID4+ICsgICAgICAgICAgICBpZiBzZWxmLl9mb3Jt YXR0ZWRfZmlsZV9lcnJvcl9jb3VudCA+IDA6DQo+ID4gPj4gKyAgICAgICAgICAgICAgICBpZiBz ZWxmLl9hdWRpdF9vbmx5X21vZGU6DQo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgbG9nZ2lu Zy5pbmZvKA0KPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAiU2V0dGluZyB0ZXN0IGFz IHNraXBwZWQgc2luY2UgQXVkaXRPbmx5IGlzIGVuYWJsZWQiKQ0KPiA+ID4+ICsgICAgICAgICAg ICAgICAgICAgIHNlbGYuX3RjLlNldFNraXBwZWQoKQ0KPiA+ID4+ICsgICAgICAgICAgICAgICAg ICAgIHJldHVybiAtMQ0KPiA+ID4+ICsgICAgICAgICAgICAgICAgZWxzZToNCj4gPiA+PiArICAg ICAgICAgICAgICAgICAgICBzZWxmLl90Yy5TZXRGYWlsZWQoDQo+ID4gPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIGYie3NlbGYuX3BsdWdpbl9uYW1lfSBmYWlsZWQgZHVlIHRvIHtzZWxmLl9m b3JtYXR0ZWRfZmlsZV9lcnJvcl9jb3VudH0gaW5jb3JyZWN0bHkgZm9ybWF0dGVkDQo+ID4gPj4g ZmlsZXMuIiwgIkNIRUNLX0ZBSUxFRCIpDQo+ID4gPj4gKyAgICAgICAgICAgIGVsc2U6DQo+ID4g Pj4gKyAgICAgICAgICAgICAgICBzZWxmLl90Yy5TZXRTdWNjZXNzKCkNCj4gPiA+PiArICAgICAg ICAgICAgcmV0dXJuIHNlbGYuX2Zvcm1hdHRlZF9maWxlX2Vycm9yX2NvdW50DQo+ID4gPj4gKyAg ICAgICAgZmluYWxseToNCj4gPiA+PiArICAgICAgICAgICAgc2VsZi5fY2xlYW51cF90ZW1wb3Jh cnlfZm9ybWF0dGVkX2ZpbGVzKCkNCj4gPiA+PiArICAgICAgICAgICAgc2VsZi5fY2xlYW51cF90 ZW1wb3JhcnlfZGlyZWN0b3J5KCkNCj4gPiA+PiArDQo+ID4gPj4gKyAgICBkZWYgX2luaXRpYWxp emVfY29uZmlndXJhdGlvbihzZWxmKSAtPiBOb25lOg0KPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ ID4+ICsgICAgICAgIEluaXRpYWxpemVzIHBsdWdpbiBjb25maWd1cmF0aW9uLg0KPiA+ID4+ICsg ICAgICAgICIiIg0KPiA+ID4+ICsgICAgICAgIHNlbGYuX2luaXRpYWxpemVfYXBwX2luZm8oKQ0K PiA+ID4+ICsgICAgICAgIHNlbGYuX2luaXRpYWxpemVfY29uZmlnX2ZpbGVfaW5mbygpDQo+ID4g Pj4gKyAgICAgICAgc2VsZi5faW5pdGlhbGl6ZV9maWxlX3RvX2Zvcm1hdF9pbmZvKCkNCj4gPiA+ PiArICAgICAgICBzZWxmLl9pbml0aWFsaXplX3Rlc3RfY2FzZV9vdXRwdXRfb3B0aW9ucygpDQo+ ID4gPj4gKw0KPiA+ID4+ICsgICAgZGVmIF9jaGVja19mb3JfcHJlZXhpc3RpbmdfZm9ybWF0dGVk X2ZpbGVzKHNlbGYpIC0+IE5vbmU6DQo+ID4gPj4gKyAgICAgICAgIiIiDQo+ID4gPj4gKyAgICAg ICAgQ2hlY2tzIGlmIGFueSBmb3JtYXR0ZWQgZmlsZXMgZnJvbSBwcmlvciBleGVjdXRpb24gYXJl IHByZXNlbnQuDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgICAgIEV4aXN0ZW5jZSBvZiBzdWNoIGZp bGVzIGlzIGFuIHVuZXhwZWN0ZWQgY29uZGl0aW9uLiBUaGlzIG1pZ2h0IHJlc3VsdA0KPiA+ID4+ ICsgICAgICAgIGZyb20gYW4gZXJyb3IgdGhhdCBvY2N1cnJlZCBkdXJpbmcgYSBwcmV2aW91cyBy dW4gb3IgYSBwcmVtYXR1cmUgZXhpdCBmcm9tIGEgZGVidWcgc2NlbmFyaW8uIEluIGFueSBjYXNl LA0KPiB0aGUNCj4gPiA+PiBwYWNrYWdlIHNob3VsZCBiZSBjbGVhbiBiZWZvcmUgc3RhcnRpbmcg YSBuZXcgcnVuLg0KPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ID4+ICsgICAgICAgIHByZV9leGlz dGluZ19mb3JtYXR0ZWRfZmlsZV9jb3VudCA9IGxlbigNCj4gPiA+PiArICAgICAgICAgICAgW3N0 cihwYXRoLnJlc29sdmUoKSkgZm9yIHBhdGggaW4NCj4gPiA+PiBwYXRobGliLlBhdGgoc2VsZi5f YWJzX3BhY2thZ2VfcGF0aCkucmdsb2IoZicqe1VuY3J1c3RpZnlDaGVjay5GT1JNQVRURURfRklM RV9FWFRFTlNJT059JyldKQ0KPiA+ID4+ICsNCj4gPiA+PiArICAgICAgICBpZiBwcmVfZXhpc3Rp bmdfZm9ybWF0dGVkX2ZpbGVfY291bnQgPiAwOg0KPiA+ID4+ICsgICAgICAgICAgICByYWlzZSBV bmNydXN0aWZ5U3RhbGVQbHVnaW5Gb3JtYXR0ZWRGaWxlc0V4Y2VwdGlvbigNCj4gPiA+PiArICAg ICAgICAgICAgICAgIGYie3ByZV9leGlzdGluZ19mb3JtYXR0ZWRfZmlsZV9jb3VudH0gZm9ybWF0 dGVkIGZpbGVzIGFscmVhZHkgZXhpc3QuIFRvIHByZXZlbnQgb3ZlcndyaXRpbmcgdGhlc2UNCj4g PiBmaWxlcywNCj4gPiA+PiBwbGVhc2UgcmVtb3ZlIHRoZW0gYmVmb3JlIHJ1bm5pbmcgdGhpcyBw bHVnaW4uIikNCj4gPiA+PiArDQo+ID4gPj4gKyAgICBkZWYgX2NsZWFudXBfdGVtcG9yYXJ5X2Rp cmVjdG9yeShzZWxmKSAtPiBOb25lOg0KPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ID4+ICsgICAg ICAgIENsZWFucyB1cCB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB1c2VkIGZvciB0aGlzIGV4ZWN1 dGlvbiBpbnN0YW5jZS4NCj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAgVGhpcyByZW1vdmVzIHRo ZSBkaXJlY3RvcnkgYW5kIGFsbCBmaWxlcyBjcmVhdGVkIGR1cmluZyB0aGlzIGluc3RhbmNlLg0K PiA+ID4+ICsgICAgICAgICIiIg0KPiA+ID4+ICsgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ193 b3JraW5nX2RpcicpOg0KPiA+ID4+ICsgICAgICAgICAgICBzZWxmLl9yZW1vdmVfdHJlZShzZWxm Ll93b3JraW5nX2RpcikNCj4gPiA+PiArDQo+ID4gPj4gKyAgICBkZWYgX2NsZWFudXBfdGVtcG9y YXJ5X2Zvcm1hdHRlZF9maWxlcyhzZWxmKSAtPiBOb25lOg0KPiA+ID4+ICsgICAgICAgICIiIg0K PiA+ID4+ICsgICAgICAgIENsZWFucyB1cCB0aGUgdGVtcG9yYXJ5IGZvcm1tYXR0ZWQgZmlsZXMg cHJvZHVjZWQgYnkgVW5jcnVzdGlmeS4NCj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAgVGhpcyB3 aWxsIHJlY3Vyc2l2ZWx5IHJlbW92ZSBhbGwgZm9ybWF0dGVkIGZpbGVzIGdlbmVyYXRlZCBieSBV bmNydXN0aWZ5DQo+ID4gPj4gKyAgICAgICAgZHVyaW5nIHRoaXMgZXhlY3V0aW9uIGluc3RhbmNl Lg0KPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ID4+ICsgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwg J19hYnNfcGFja2FnZV9wYXRoJyk6DQo+ID4gPj4gKyAgICAgICAgICAgIGZvcm1hdHRlZF9maWxl cyA9IFtzdHIocGF0aC5yZXNvbHZlKCkpIGZvciBwYXRoIGluIHBhdGhsaWIuUGF0aCgNCj4gPiA+ PiArICAgICAgICAgICAgICAgIHNlbGYuX2Fic19wYWNrYWdlX3BhdGgpLnJnbG9iKGYnKntVbmNy dXN0aWZ5Q2hlY2suRk9STUFUVEVEX0ZJTEVfRVhURU5TSU9OfScpXQ0KPiA+ID4+ICsNCj4gPiA+ PiArICAgICAgICAgICAgZm9yIGZvcm1hdHRlZF9maWxlIGluIGZvcm1hdHRlZF9maWxlczoNCj4g PiA+PiArICAgICAgICAgICAgICAgIG9zLnJlbW92ZShmb3JtYXR0ZWRfZmlsZSkNCj4gPiA+PiAr DQo+ID4gPj4gKyAgICBkZWYgX2NyZWF0ZV90ZW1wX3dvcmtpbmdfZGlyZWN0b3J5KHNlbGYpIC0+ IE5vbmU6DQo+ID4gPj4gKyAgICAgICAgIiIiDQo+ID4gPj4gKyAgICAgICAgQ3JlYXRlcyB0aGUg dGVtcG9yYXJ5IGRpcmVjdG9yeSB1c2VkIGZvciB0aGlzIGV4ZWN1dGlvbiBpbnN0YW5jZS4NCj4g PiA+PiArICAgICAgICAiIiINCj4gPiA+PiArICAgICAgICBzZWxmLl93b3JraW5nX2RpciA9IG9z LnBhdGguam9pbigNCj4gPiA+PiArICAgICAgICAgICAgc2VsZi5fYWJzX3dvcmtzcGFjZV9wYXRo LCAiQnVpbGQiLCAiLnB5dG9vbCIsICJQbHVnaW4iLCBmIntzZWxmLl9wbHVnaW5fbmFtZX0iKQ0K PiA+ID4+ICsNCj4gPiA+PiArICAgICAgICB0cnk6DQo+ID4gPj4gKyAgICAgICAgICAgIHBhdGhs aWIuUGF0aChzZWxmLl93b3JraW5nX2RpcikubWtkaXIocGFyZW50cz1UcnVlLCBleGlzdF9vaz1U cnVlKQ0KPiA+ID4+ICsgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6DQo+ID4gPj4gKyAgICAg ICAgICAgIHJhaXNlIFVuY3J1c3RpZnlJbnB1dEZpbGVDcmVhdGlvbkVycm9yRXhjZXB0aW9uKA0K PiA+ID4+ICsgICAgICAgICAgICAgICAgZiJFcnJvciBjcmVhdGluZyBwbHVnaW4gZGlyZWN0b3J5 IHtzZWxmLl93b3JraW5nX2Rpcn0uXG5cbntyZXByKGUpfS4iKQ0KPiA+ID4+ICsNCj4gPiA+PiAr ICAgIGRlZiBfY3JlYXRlX3VuY3J1c3RpZnlfZmlsZV9saXN0X2ZpbGUoc2VsZikgLT4gTm9uZToN Cj4gPiA+PiArICAgICAgICAiIiINCj4gPiA+PiArICAgICAgICBDcmVhdGVzIHRoZSBmaWxlIHdp dGggdGhlIGxpc3Qgb2Ygc291cmNlIGZpbGVzIGZvciBVbmNydXN0aWZ5IHRvIHByb2Nlc3MuDQo+ ID4gPj4gKyAgICAgICAgIiIiDQo+ID4gPj4gKyAgICAgICAgc2VsZi5fYXBwX2lucHV0X2ZpbGVf cGF0aCA9IG9zLnBhdGguam9pbigNCj4gPiA+PiArICAgICAgICAgICAgc2VsZi5fd29ya2luZ19k aXIsICJ1bmNydXN0aWZ5X2ZpbGVfbGlzdC50eHQiKQ0KPiA+ID4+ICsNCj4gPiA+PiArICAgICAg ICB3aXRoIG9wZW4oc2VsZi5fYXBwX2lucHV0X2ZpbGVfcGF0aCwgJ3cnLCBlbmNvZGluZz0ndXRm OCcpIGFzIGY6DQo+ID4gPj4gKyAgICAgICAgICAgIGYud3JpdGVsaW5lcyhmIlxuIi5qb2luKHNl bGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdCkpDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgZGVm IF9leGVjdXRlX3VuY3J1c3RpZnkoc2VsZikgLT4gTm9uZToNCj4gPiA+PiArICAgICAgICAiIiIN Cj4gPiA+PiArICAgICAgICBFeGVjdXRlcyBVbmNydXN0aWZ5IHdpdGggdGhlIGluaXRpYWxpemVk IGNvbmZpZ3VyYXRpb24uDQo+ID4gPj4gKyAgICAgICAgIiIiDQo+ID4gPj4gKyAgICAgICAgb3V0 cHV0ID0gU3RyaW5nSU8oKQ0KPiA+ID4+ICsgICAgICAgIHNlbGYuX2FwcF9leGl0X2NvZGUgPSBS dW5DbWQoDQo+ID4gPj4gKyAgICAgICAgICAgIHNlbGYuX2FwcF9wYXRoLA0KPiA+ID4+ICsgICAg ICAgICAgICBmIi1jIHtzZWxmLl9hcHBfY29uZmlnX2ZpbGV9IC1GIHtzZWxmLl9hcHBfaW5wdXRf ZmlsZV9wYXRofSAtLWlmLWNoYW5nZWQgLS1zdWZmaXgNCj4gPiA+PiB7VW5jcnVzdGlmeUNoZWNr LkZPUk1BVFRFRF9GSUxFX0VYVEVOU0lPTn0iLCBvdXRzdHJlYW09b3V0cHV0KQ0KPiA+ID4+ICsg ICAgICAgIHNlbGYuX2FwcF9vdXRwdXQgPSBvdXRwdXQuZ2V0dmFsdWUoKS5zdHJpcCgpLnNwbGl0 bGluZXMoKQ0KPiA+ID4+ICsNCj4gPiA+PiArICAgIGRlZiBfZ2V0X2dpdF9pZ25vcmVkX3BhdGhz KHNlbGYpIC0+IExpc3Rbc3RyXToNCj4gPiA+PiArICAgICAgICAiIiIiDQo+ID4gPj4gKyAgICAg ICAgUmV0dXJucyBhIGxpc3Qgb2YgZmlsZSBhYnNvbHV0ZSBwYXRoIHN0cmluZ3MgdG8gYWxsIGZp bGVzIGlnbm9yZWQgaW4gdGhpcyBnaXQgcmVwb3NpdG9yeS4NCj4gPiA+PiArDQo+ID4gPj4gKyAg ICAgICAgSWYgZ2l0IGlzIG5vdCBmb3VuZCwgYW4gZW1wdHkgbGlzdCB3aWxsIGJlIHJldHVybmVk Lg0KPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ID4+ICsgICAgICAgIGlmIG5vdCBzaHV0aWwud2hp Y2goImdpdCIpOg0KPiA+ID4+ICsgICAgICAgICAgICBsb2dnaW5nLndhcm4oDQo+ID4gPj4gKyAg ICAgICAgICAgICAgICAiR2l0IGlzIG5vdCBmb3VuZCBvbiB0aGlzIHN5c3RlbS4gR2l0IHN1Ym1v ZHVsZSBwYXRocyB3aWxsIG5vdCBiZSBjb25zaWRlcmVkLiIpDQo+ID4gPj4gKyAgICAgICAgICAg IHJldHVybiBbXQ0KPiA+ID4+ICsNCj4gPiA+PiArICAgICAgICBvdXRzdHJlYW1fYnVmZmVyID0g U3RyaW5nSU8oKQ0KPiA+ID4+ICsgICAgICAgIGV4aXRfY29kZSA9IFJ1bkNtZCgiZ2l0IiwgImxz LWZpbGVzIC0tb3RoZXIiLA0KPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3Jr aW5nZGlyPXNlbGYuX2Fic193b3Jrc3BhY2VfcGF0aCwgb3V0c3RyZWFtPW91dHN0cmVhbV9idWZm ZXIsDQo+ID4gbG9nZ2luZ19sZXZlbD1sb2dnaW5nLk5PVFNFVCkNCj4gPiA+PiArICAgICAgICBp ZiAoZXhpdF9jb2RlICE9IDApOg0KPiA+ID4+ICsgICAgICAgICAgICByYWlzZSBVbmNydXN0aWZ5 R2l0SWdub3JlRmlsZUV4Y2VwdGlvbigNCj4gPiA+PiArICAgICAgICAgICAgICAgIGYiQW4gZXJy b3Igb2NjdXJyZWQgcmVhZGluZyBnaXQgaWdub3JlIHNldHRpbmdzLiBUaGlzIHdpbGwgcHJldmVu dCBVbmNydXN0aWZ5IGZyb20gcnVubmluZyBhZ2FpbnN0DQo+IHRoZQ0KPiA+ID4+IGV4cGVjdGVk IHNldCBvZiBmaWxlcy4iKQ0KPiA+ID4+ICsNCj4gPiA+PiArICAgICAgICAjIE5vdGU6IFRoaXMg d2lsbCBwb3RlbnRpYWxseSBiZSBhIGxhcmdlIGxpc3QsIGJ1dCBhdCBsZWFzdCBzb3J0ZWQNCj4g PiA+PiArICAgICAgICByZXR1cm4gb3V0c3RyZWFtX2J1ZmZlci5nZXR2YWx1ZSgpLnN0cmlwKCku c3BsaXRsaW5lcygpDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgZGVmIF9nZXRfZ2l0X3N1Ym1vZHVs ZV9wYXRocyhzZWxmKSAtPiBMaXN0W3N0cl06DQo+ID4gPj4gKyAgICAgICAgIiIiDQo+ID4gPj4g KyAgICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgZGlyZWN0b3J5IGFic29sdXRlIHBhdGggc3RyaW5n cyB0byB0aGUgcm9vdCBvZiBlYWNoIHN1Ym1vZHVsZSBpbiB0aGUgd29ya3NwYWNlIHJlcG9zaXRv cnkuDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgICAgIElmIGdpdCBpcyBub3QgZm91bmQsIGFuIGVt cHR5IGxpc3Qgd2lsbCBiZSByZXR1cm5lZC4NCj4gPiA+PiArICAgICAgICAiIiINCj4gPiA+PiAr ICAgICAgICBpZiBub3Qgc2h1dGlsLndoaWNoKCJnaXQiKToNCj4gPiA+PiArICAgICAgICAgICAg bG9nZ2luZy53YXJuKA0KPiA+ID4+ICsgICAgICAgICAgICAgICAgIkdpdCBpcyBub3QgZm91bmQg b24gdGhpcyBzeXN0ZW0uIEdpdCBzdWJtb2R1bGUgcGF0aHMgd2lsbCBub3QgYmUgY29uc2lkZXJl ZC4iKQ0KPiA+ID4+ICsgICAgICAgICAgICByZXR1cm4gW10NCj4gPiA+PiArDQo+ID4gPj4gKyAg ICAgICAgaWYgb3MucGF0aC5pc2ZpbGUob3MucGF0aC5qb2luKHNlbGYuX2Fic193b3Jrc3BhY2Vf cGF0aCwgIi5naXRtb2R1bGVzIikpOg0KPiA+ID4+ICsgICAgICAgICAgICBsb2dnaW5nLmluZm8o DQo+ID4gPj4gKyAgICAgICAgICAgICAgICBmIi5naXRtb2R1bGVzIGZpbGUgZm91bmQuIEV4Y2x1 ZGluZyBzdWJtb2R1bGVzIGluIHtzZWxmLl9wYWNrYWdlX25hbWV9LiIpDQo+ID4gPj4gKw0KPiA+ ID4+ICsgICAgICAgICAgICBvdXRzdHJlYW1fYnVmZmVyID0gU3RyaW5nSU8oKQ0KPiA+ID4+ICsg ICAgICAgICAgICBleGl0X2NvZGUgPSBSdW5DbWQoImdpdCIsICJjb25maWcgLS1maWxlIC5naXRt b2R1bGVzIC0tZ2V0LXJlZ2V4cCBwYXRoIiwNCj4gPiB3b3JraW5nZGlyPXNlbGYuX2Fic193b3Jr c3BhY2VfcGF0aCwNCj4gPiA+PiBvdXRzdHJlYW09b3V0c3RyZWFtX2J1ZmZlciwgbG9nZ2luZ19s ZXZlbD1sb2dnaW5nLk5PVFNFVCkNCj4gPiA+PiArICAgICAgICAgICAgaWYgKGV4aXRfY29kZSAh PSAwKToNCj4gPiA+PiArICAgICAgICAgICAgICAgIHJhaXNlIFVuY3J1c3RpZnlHaXRTdWJtb2R1 bGVFeGNlcHRpb24oDQo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgZiIuZ2l0bW9kdWxlIGZp bGUgZGV0ZWN0ZWQgYnV0IGFuIGVycm9yIG9jY3VycmVkIHJlYWRpbmcgdGhlIGZpbGUuIENhbm5v dCBwcm9jZWVkIHdpdGggdW5rbm93bg0KPiA+ID4+IHN1Ym1vZHVsZSBwYXRocy4iKQ0KPiA+ID4+ ICsNCj4gPiA+PiArICAgICAgICAgICAgc3VibW9kdWxlX3BhdGhzID0gW10NCj4gPiA+PiArICAg ICAgICAgICAgZm9yIGxpbmUgaW4gb3V0c3RyZWFtX2J1ZmZlci5nZXR2YWx1ZSgpLnN0cmlwKCku c3BsaXRsaW5lcygpOg0KPiA+ID4+ICsgICAgICAgICAgICAgICAgc3VibW9kdWxlX3BhdGhzLmFw cGVuZCgNCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLm5vcm1wYXRoKG9zLnBh dGguam9pbihzZWxmLl9hYnNfd29ya3NwYWNlX3BhdGgsIGxpbmUuc3BsaXQoKVsxXSkpKQ0KPiA+ ID4+ICsNCj4gPiA+PiArICAgICAgICAgICAgcmV0dXJuIHN1Ym1vZHVsZV9wYXRocw0KPiA+ID4+ ICsgICAgICAgIGVsc2U6DQo+ID4gPj4gKyAgICAgICAgICAgIHJldHVybiBbXQ0KPiA+ID4+ICsN Cj4gPiA+PiArICAgIGRlZiBfZ2V0X3RlbXBsYXRlX2ZpbGVfY29udGVudHMoc2VsZikgLT4gTm9u ZToNCj4gPiA+PiArICAgICAgICAiIiINCj4gPiA+PiArICAgICAgICBHZXRzIHRoZSBjb250ZW50 cyBvZiBVbmNydXN0aWZ5IHRlbXBsYXRlIGZpbGVzIGlmIHRoZXkgYXJlIHNwZWNpZmllZA0KPiA+ ID4+ICsgICAgICAgIGluIHRoZSBVbmNydXN0aWZ5IGNvbmZpZ3VyYXRpb24gZmlsZS4NCj4gPiA+ PiArICAgICAgICAiIiINCj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAgc2VsZi5fZmlsZV90ZW1w bGF0ZV9jb250ZW50cyA9IE5vbmUNCj4gPiA+PiArICAgICAgICBzZWxmLl9mdW5jX3RlbXBsYXRl X2NvbnRlbnRzID0gTm9uZQ0KPiA+ID4+ICsNCj4gPiA+PiArICAgICAgICAjIEFsbG93IG5vIHZh bHVlIHRvIGFsbG93ICJzZXQiIHN0YXRlbWVudHMgaW4gdGhlIGNvbmZpZyBmaWxlIHdoaWNoIGRv DQo+ID4gPj4gKyAgICAgICAgIyBub3Qgc3BlY2lmeSB2YWx1ZSBhc3NpZ25tZW50DQo+ID4gPj4g KyAgICAgICAgcGFyc2VyID0gY29uZmlncGFyc2VyLkNvbmZpZ1BhcnNlcihhbGxvd19ub192YWx1 ZT1UcnVlKQ0KPiA+ID4+ICsgICAgICAgIHdpdGggb3BlbihzZWxmLl9hcHBfY29uZmlnX2ZpbGUs ICdyJykgYXMgY2Y6DQo+ID4gPj4gKyAgICAgICAgICAgIHBhcnNlci5yZWFkX3N0cmluZygiW2R1 bW15X3NlY3Rpb25dXG4iICsgY2YucmVhZCgpKQ0KPiA+ID4+ICsNCj4gPiA+PiArICAgICAgICB0 cnk6DQo+ID4gPj4gKyAgICAgICAgICAgIGZpbGVfdGVtcGxhdGVfbmFtZSA9IHBhcnNlclsiZHVt bXlfc2VjdGlvbiJdWyJjbXRfaW5zZXJ0X2ZpbGVfaGVhZGVyIl0NCj4gPiA+PiArDQo+ID4gPj4g KyAgICAgICAgICAgIGZpbGVfdGVtcGxhdGVfcGF0aCA9IHBhdGhsaWIuUGF0aChmaWxlX3RlbXBs YXRlX25hbWUpDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgICAgICAgICBpZiBub3QgZmlsZV90ZW1w bGF0ZV9wYXRoLmlzX2ZpbGUoKToNCj4gPiA+PiArICAgICAgICAgICAgICAgIGZpbGVfdGVtcGxh dGVfcGF0aCA9IHBhdGhsaWIuUGF0aChvcy5wYXRoLmpvaW4oc2VsZi5fcGx1Z2luX3BhdGgsIGZp bGVfdGVtcGxhdGVfbmFtZSkpDQo+ID4gPj4gKyAgICAgICAgICAgICAgICBzZWxmLl9maWxlX3Rl bXBsYXRlX2NvbnRlbnRzID0gZmlsZV90ZW1wbGF0ZV9wYXRoLnJlYWRfdGV4dCgpDQo+ID4gPj4g KyAgICAgICAgZXhjZXB0IEtleUVycm9yOg0KPiA+ID4+ICsgICAgICAgICAgICBsb2dnaW5nLndh cm4oIkEgZmlsZSBoZWFkZXIgdGVtcGxhdGUgaXMgbm90IHNwZWNpZmllZCBpbiB0aGUgY29uZmln IGZpbGUuIikNCj4gPiA+PiArICAgICAgICBleGNlcHQgRmlsZU5vdEZvdW5kRXJyb3I6DQo+ID4g Pj4gKyAgICAgICAgICAgIGxvZ2dpbmcud2FybigiVGhlIHNwZWNpZmllZCBmaWxlIGhlYWRlciB0 ZW1wbGF0ZSBmaWxlIHdhcyBub3QgZm91bmQuIikNCj4gPiA+PiArICAgICAgICB0cnk6DQo+ID4g Pj4gKyAgICAgICAgICAgIGZ1bmNfdGVtcGxhdGVfbmFtZSA9IHBhcnNlclsiZHVtbXlfc2VjdGlv biJdWyJjbXRfaW5zZXJ0X2Z1bmNfaGVhZGVyIl0NCj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAg ICAgIGZ1bmNfdGVtcGxhdGVfcGF0aCA9IHBhdGhsaWIuUGF0aChmdW5jX3RlbXBsYXRlX25hbWUp DQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgICAgICAgICBpZiBub3QgZnVuY190ZW1wbGF0ZV9wYXRo LmlzX2ZpbGUoKToNCj4gPiA+PiArICAgICAgICAgICAgICAgIGZ1bmNfdGVtcGxhdGVfcGF0aCA9 IHBhdGhsaWIuUGF0aChvcy5wYXRoLmpvaW4oc2VsZi5fcGx1Z2luX3BhdGgsIGZ1bmNfdGVtcGxh dGVfbmFtZSkpDQo+ID4gPj4gKyAgICAgICAgICAgICAgICBzZWxmLl9mdW5jX3RlbXBsYXRlX2Nv bnRlbnRzID0gZnVuY190ZW1wbGF0ZV9wYXRoLnJlYWRfdGV4dCgpDQo+ID4gPj4gKyAgICAgICAg ZXhjZXB0IEtleUVycm9yOg0KPiA+ID4+ICsgICAgICAgICAgICBsb2dnaW5nLndhcm4oIkEgZnVu Y3Rpb24gaGVhZGVyIHRlbXBsYXRlIGlzIG5vdCBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZyBmaWxl LiIpDQo+ID4gPj4gKyAgICAgICAgZXhjZXB0IEZpbGVOb3RGb3VuZEVycm9yOg0KPiA+ID4+ICsg ICAgICAgICAgICBsb2dnaW5nLndhcm4oIlRoZSBzcGVjaWZpZWQgZnVuY3Rpb24gaGVhZGVyIHRl bXBsYXRlIGZpbGUgd2FzIG5vdCBmb3VuZC4iKQ0KPiA+ID4+ICsNCj4gPiA+PiArICAgIGRlZiBf aW5pdGlhbGl6ZV9hcHBfaW5mbyhzZWxmKSAtPiBOb25lOg0KPiA+ID4+ICsgICAgICAgICIiIg0K PiA+ID4+ICsgICAgICAgIEluaXRpYWxpemUgVW5jcnVzdGlmeSBhcHBsaWNhdGlvbiBpbmZvcm1h dGlvbi4NCj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGRldGVy bWluZSB0aGUgYXBwbGljYXRpb24gcGF0aCBhbmQgdmVyc2lvbi4NCj4gPiA+PiArICAgICAgICAi IiINCj4gPiA+PiArICAgICAgICAjIFZlcmlmeSBVbmNydXN0aWZ5IGlzIHNwZWNpZmllZCBpbiB0 aGUgZW52aXJvbm1lbnQuDQo+ID4gPj4gKyAgICAgICAgaWYgVW5jcnVzdGlmeUNoZWNrLlVOQ1JV U1RJRllfUEFUSF9FTlZfS0VZIG5vdCBpbiBvcy5lbnZpcm9uOg0KPiA+ID4+ICsgICAgICAgICAg ICByYWlzZSBVbmNydXN0aWZ5QXBwRW52VmFyTm90Rm91bmRFeGNlcHRpb24oDQo+ID4gPj4gKyAg ICAgICAgICAgICAgICBmIlVuY3J1c3RpZnkgZW52aXJvbm1lbnQgdmFyaWFibGUge1VuY3J1c3Rp ZnlDaGVjay5VTkNSVVNUSUZZX1BBVEhfRU5WX0tFWX0gaXMgbm90IHByZXNlbnQuIikNCj4gPiA+ PiArDQo+ID4gPj4gKyAgICAgICAgc2VsZi5fYXBwX3BhdGggPSBzaHV0aWwud2hpY2goJ3VuY3J1 c3RpZnknLCBwYXRoPW9zLmVudmlyb25bVW5jcnVzdGlmeUNoZWNrLlVOQ1JVU1RJRllfUEFUSF9F TlZfS0VZXSkNCj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAgaWYgc2VsZi5fYXBwX3BhdGggaXMg Tm9uZToNCj4gPiA+PiArICAgICAgICAgICAgcmFpc2UgRmlsZU5vdEZvdW5kRXJyb3IoDQo+ID4g Pj4gKyAgICAgICAgICAgICAgICBlcnJuby5FTk9FTlQsIG9zLnN0cmVycm9yKGVycm5vLkVOT0VO VCksIHNlbGYuX2FwcF9wYXRoKQ0KPiA+ID4+ICsNCj4gPiA+PiArICAgICAgICBzZWxmLl9hcHBf cGF0aCA9IG9zLnBhdGgubm9ybWNhc2Uob3MucGF0aC5ub3JtcGF0aChzZWxmLl9hcHBfcGF0aCkp DQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZmlsZShzZWxmLl9h cHBfcGF0aCk6DQo+ID4gPj4gKyAgICAgICAgICAgIHJhaXNlIEZpbGVOb3RGb3VuZEVycm9yKA0K PiA+ID4+ICsgICAgICAgICAgICAgICAgZXJybm8uRU5PRU5ULCBvcy5zdHJlcnJvcihlcnJuby5F Tk9FTlQpLCBzZWxmLl9hcHBfcGF0aCkNCj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAgIyBWZXJp ZnkgVW5jcnVzdGlmeSBpcyBwcmVzZW50IGF0IHRoZSBleHBlY3RlZCBwYXRoLg0KPiA+ID4+ICsg ICAgICAgIHJldHVybl9idWZmZXIgPSBTdHJpbmdJTygpDQo+ID4gPj4gKyAgICAgICAgcmV0ID0g UnVuQ21kKHNlbGYuX2FwcF9wYXRoLCAiLS12ZXJzaW9uIiwgb3V0c3RyZWFtPXJldHVybl9idWZm ZXIpDQo+ID4gPj4gKyAgICAgICAgaWYgKHJldCAhPSAwKToNCj4gPiA+PiArICAgICAgICAgICAg cmFpc2UgVW5jcnVzdGlmeUFwcFZlcnNpb25FcnJvckV4Y2VwdGlvbigNCj4gPiA+PiArICAgICAg ICAgICAgICAgIGYiRXJyb3Igb2NjdXJyZWQgZXhlY3V0aW5nIC0tdmVyc2lvbjoge3JldH0uIikN Cj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAgIyBMb2cgVW5jcnVzdGlmeSB2ZXJzaW9uIGluZm9y bWF0aW9uLg0KPiA+ID4+ICsgICAgICAgIHNlbGYuX2FwcF92ZXJzaW9uID0gcmV0dXJuX2J1ZmZl ci5nZXR2YWx1ZSgpLnN0cmlwKCkNCj4gPiA+PiArICAgICAgICBzZWxmLl90Yy5Mb2dTdGRPdXQo ZiJVbmNydXN0aWZ5IHZlcnNpb246IHtzZWxmLl9hcHBfdmVyc2lvbn0iKQ0KPiA+ID4+ICsgICAg ICAgIHZlcnNpb25fYWdncmVnYXRvci5HZXRWZXJzaW9uQWdncmVnYXRvcigpLlJlcG9ydFZlcnNp b24oDQo+ID4gPj4gKyAgICAgICAgICAgICJVbmNydXN0aWZ5Iiwgc2VsZi5fYXBwX3ZlcnNpb24s IHZlcnNpb25fYWdncmVnYXRvci5WZXJzaW9uVHlwZXMuSU5GTykNCj4gPiA+PiArDQo+ID4gPj4g KyAgICBkZWYgX2luaXRpYWxpemVfY29uZmlnX2ZpbGVfaW5mbyhzZWxmKSAtPiBOb25lOg0KPiA+ ID4+ICsgICAgICAgICIiIg0KPiA+ID4+ICsgICAgICAgIEluaXRpYWxpemUgVW5jcnVzdGlmeSBj b25maWd1cmF0aW9uIGZpbGUgaW5mby4NCj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAgVGhlIGNv bmZpZyBmaWxlIHBhdGggaXMgcmVsYXRpdmUgdG8gdGhlIHBhY2thZ2Ugcm9vdC4NCj4gPiA+PiAr ICAgICAgICAiIiINCj4gPiA+PiArICAgICAgICBzZWxmLl9hcHBfY29uZmlnX2ZpbGUgPSBVbmNy dXN0aWZ5Q2hlY2suREVGQVVMVF9DT05GSUdfRklMRV9QQVRIDQo+ID4gPj4gKyAgICAgICAgaWYg IkNvbmZpZ0ZpbGVQYXRoIiBpbiBzZWxmLl9wYWNrYWdlX2NvbmZpZzoNCj4gPiA+PiArICAgICAg ICAgICAgc2VsZi5fYXBwX2NvbmZpZ19maWxlID0gc2VsZi5fcGFja2FnZV9jb25maWdbIkNvbmZp Z0ZpbGVQYXRoIl0uc3RyaXAoKQ0KPiA+ID4+ICsNCj4gPiA+PiArICAgICAgICAgICAgc2VsZi5f YXBwX2NvbmZpZ19maWxlID0gb3MucGF0aC5ub3JtcGF0aCgNCj4gPiA+PiArICAgICAgICAgICAg ICAgIG9zLnBhdGguam9pbihzZWxmLl9hYnNfcGFja2FnZV9wYXRoLCBzZWxmLl9hcHBfY29uZmln X2ZpbGUpKQ0KPiA+ID4+ICsNCj4gPiA+PiArICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUo c2VsZi5fYXBwX2NvbmZpZ19maWxlKToNCj4gPiA+PiArICAgICAgICAgICAgcmFpc2UgRmlsZU5v dEZvdW5kRXJyb3IoDQo+ID4gPj4gKyAgICAgICAgICAgICAgICBlcnJuby5FTk9FTlQsIG9zLnN0 cmVycm9yKGVycm5vLkVOT0VOVCksIHNlbGYuX2FwcF9jb25maWdfZmlsZSkNCj4gPiA+PiArDQo+ ID4gPj4gKyAgICBkZWYgX2luaXRpYWxpemVfZW52aXJvbm1lbnRfaW5mbyhzZWxmLCBwYWNrYWdl X3JlbF9wYXRoOiBzdHIsIGVkazJfcGF0aDogRWRrMlBhdGgsIHBhY2thZ2VfY29uZmlnOiBEaWN0 W3N0ciwNCj4gPiA+PiBMaXN0W3N0cl1dLCB0YzogSnVuaXRSZXBvcnRUZXN0Q2FzZSkgLT4gTm9u ZToNCj4gPiA+PiArICAgICAgICAiIiINCj4gPiA+PiArICAgICAgICBJbml0aWFsaXplcyBwbHVn aW4gZW52aXJvbm1lbnQgaW5mb3JtYXRpb24uDQo+ID4gPj4gKyAgICAgICAgIiIiDQo+ID4gPj4g KyAgICAgICAgc2VsZi5fYWJzX3BhY2thZ2VfcGF0aCA9IGVkazJfcGF0aC5HZXRBYnNvbHV0ZVBh dGhPblRoaXNTeXRlbUZyb21FZGsyUmVsYXRpdmVQYXRoKA0KPiA+ID4+ICsgICAgICAgICAgICBw YWNrYWdlX3JlbF9wYXRoKQ0KPiA+ID4+ICsgICAgICAgIHNlbGYuX2Fic193b3Jrc3BhY2VfcGF0 aCA9IGVkazJfcGF0aC5Xb3Jrc3BhY2VQYXRoDQo+ID4gPj4gKyAgICAgICAgc2VsZi5fcGFja2Fn ZV9jb25maWcgPSBwYWNrYWdlX2NvbmZpZw0KPiA+ID4+ICsgICAgICAgIHNlbGYuX3BhY2thZ2Vf bmFtZSA9IG9zLnBhdGguYmFzZW5hbWUoDQo+ID4gPj4gKyAgICAgICAgICAgIG9zLnBhdGgubm9y bXBhdGgocGFja2FnZV9yZWxfcGF0aCkpDQo+ID4gPj4gKyAgICAgICAgc2VsZi5fcGx1Z2luX25h bWUgPSBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXw0KPiA+ID4+ICsgICAgICAgIHNlbGYuX3BsdWdp bl9wYXRoID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgucmVhbHBhdGgoX19maWxlX18pKQ0KPiA+ ID4+ICsgICAgICAgIHNlbGYuX3JlbF9wYWNrYWdlX3BhdGggPSBwYWNrYWdlX3JlbF9wYXRoDQo+ ID4gPj4gKyAgICAgICAgc2VsZi5fdGMgPSB0Yw0KPiA+ID4+ICsNCj4gPiA+PiArICAgIGRlZiBf aW5pdGlhbGl6ZV9maWxlX3RvX2Zvcm1hdF9pbmZvKHNlbGYpIC0+IE5vbmU6DQo+ID4gPj4gKyAg ICAgICAgIiIiDQo+ID4gPj4gKyAgICAgICAgRm9ybXMgdGhlIGxpc3Qgb2Ygc291cmNlIGZpbGVz IGZvciBVbmNydXN0aWZ5IHRvIHByb2Nlc3MuDQo+ID4gPj4gKyAgICAgICAgIiIiDQo+ID4gPj4g KyAgICAgICAgIyBDcmVhdGUgYSBsaXN0IG9mIGFsbCB0aGUgcGFja2FnZSByZWxhdGl2ZSBmaWxl IHBhdGhzIGluIHRoZSBwYWNrYWdlIHRvIHJ1biBhZ2FpbnN0IFVuY3J1c3RpZnkuDQo+ID4gPj4g KyAgICAgICAgcmVsX2ZpbGVfcGF0aHNfdG9fZm9ybWF0ID0gbGlzdCgNCj4gPiA+PiArICAgICAg ICAgICAgVW5jcnVzdGlmeUNoZWNrLlNUQU5EQVJEX1BMVUdJTl9ERUZJTkVEX1BBVEhTKQ0KPiA+ ID4+ICsNCj4gPiA+PiArICAgICAgICAjIEFsbG93IHRoZSBjaS55YW1sIHRvIHJlbW92ZSBhbnkg b2YgdGhlIHByZS1kZWZpbmVkIHN0YW5kYXJkIHBhdGhzDQo+ID4gPj4gKyAgICAgICAgaWYgIkln bm9yZVN0YW5kYXJkUGF0aHMiIGluIHNlbGYuX3BhY2thZ2VfY29uZmlnOg0KPiA+ID4+ICsgICAg ICAgICAgICBmb3IgYSBpbiBzZWxmLl9wYWNrYWdlX2NvbmZpZ1siSWdub3JlU3RhbmRhcmRQYXRo cyJdOg0KPiA+ID4+ICsgICAgICAgICAgICAgICAgaWYgYS5zdHJpcCgpIGluIHJlbF9maWxlX3Bh dGhzX3RvX2Zvcm1hdDoNCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICBzZWxmLl90Yy5Mb2dT dGRPdXQoDQo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYiSWdub3Jpbmcgc3RhbmRh cmQgcGF0aCBkdWUgdG8gY2kueWFtbCBpZ25vcmU6IHthfSIpDQo+ID4gPj4gKyAgICAgICAgICAg ICAgICAgICAgcmVsX2ZpbGVfcGF0aHNfdG9fZm9ybWF0LnJlbW92ZShhLnN0cmlwKCkpDQo+ID4g Pj4gKyAgICAgICAgICAgICAgICBlbHNlOg0KPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgIHJh aXNlIFVuY3J1c3RpZnlJbnZhbGlkSWdub3JlU3RhbmRhcmRQYXRoc0V4Y2VwdGlvbihmIkludmFs aWQgSWdub3JlU3RhbmRhcmRQYXRocyB2YWx1ZToge2F9IikNCj4gPiA+PiArDQo+ID4gPj4gKyAg ICAgICAgIyBBbGxvdyB0aGUgY2kueWFtbCB0byBzcGVjaWZ5IGFkZGl0aW9uYWwgaW5jbHVkZSBw YXRocyBmb3IgdGhpcyBwYWNrYWdlDQo+ID4gPj4gKyAgICAgICAgaWYgIkFkZGl0aW9uYWxJbmNs dWRlUGF0aHMiIGluIHNlbGYuX3BhY2thZ2VfY29uZmlnOg0KPiA+ID4+ICsgICAgICAgICAgICBy ZWxfZmlsZV9wYXRoc190b19mb3JtYXQuZXh0ZW5kKA0KPiA+ID4+ICsgICAgICAgICAgICAgICAg c2VsZi5fcGFja2FnZV9jb25maWdbIkFkZGl0aW9uYWxJbmNsdWRlUGF0aHMiXSkNCj4gPiA+PiAr DQo+ID4gPj4gKyAgICAgICAgc2VsZi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9ybWF0ID0gW10NCj4g PiA+PiArICAgICAgICBmb3IgcGF0aCBpbiByZWxfZmlsZV9wYXRoc190b19mb3JtYXQ6DQo+ID4g Pj4gKyAgICAgICAgICAgIHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdC5leHRlbmQoDQo+ ID4gPj4gKyAgICAgICAgICAgICAgICBbc3RyKHBhdGgucmVzb2x2ZSgpKSBmb3IgcGF0aCBpbiBw YXRobGliLlBhdGgoc2VsZi5fYWJzX3BhY2thZ2VfcGF0aCkucmdsb2IocGF0aCldKQ0KPiA+ID4+ ICsNCj4gPiA+PiArICAgICAgICBpZiBub3QgIlNraXBHaXRFeGNsdXNpb25zIiBpbiBzZWxmLl9w YWNrYWdlX2NvbmZpZyBvciBub3Qgc2VsZi5fcGFja2FnZV9jb25maWdbIlNraXBHaXRFeGNsdXNp b25zIl06DQo+ID4gPj4gKyAgICAgICAgICAgICMgUmVtb3ZlIGZpbGVzIGlnbm9yZWQgYnkgZ2l0 DQo+ID4gPj4gKyAgICAgICAgICAgIGxvZ2dpbmcuaW5mbygNCj4gPiA+PiArICAgICAgICAgICAg ICAgIGYie3NlbGYuX3BhY2thZ2VfbmFtZX0gZmlsZSBjb3VudCBiZWZvcmUgZ2l0IGlnbm9yZSBm aWxlIGV4Y2x1c2lvbjoNCj4gPiA+PiB7bGVuKHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1h dCl9IikNCj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAgICAgIGlnbm9yZWRfcGF0aHMgPSBzZWxm Ll9nZXRfZ2l0X2lnbm9yZWRfcGF0aHMoKQ0KPiA+ID4+ICsgICAgICAgICAgICBzZWxmLl9hYnNf ZmlsZV9wYXRoc190b19mb3JtYXQgPSBsaXN0KA0KPiA+ID4+ICsgICAgICAgICAgICAgICAgc2V0 KHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdCkuZGlmZmVyZW5jZShpZ25vcmVkX3BhdGhz KSkNCj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAgICAgIGxvZ2dpbmcuaW5mbygNCj4gPiA+PiAr ICAgICAgICAgICAgICAgIGYie3NlbGYuX3BhY2thZ2VfbmFtZX0gZmlsZSBjb3VudCBhZnRlciBn aXQgaWdub3JlIGZpbGUgZXhjbHVzaW9uOg0KPiA+ID4+IHtsZW4oc2VsZi5fYWJzX2ZpbGVfcGF0 aHNfdG9fZm9ybWF0KX0iKQ0KPiA+ID4+ICsNCj4gPiA+PiArICAgICAgICAgICAgIyBSZW1vdmUg ZmlsZXMgaW4gc3VibW9kdWxlcw0KPiA+ID4+ICsgICAgICAgICAgICBsb2dnaW5nLmluZm8oDQo+ ID4gPj4gKyAgICAgICAgICAgICAgICBmIntzZWxmLl9wYWNrYWdlX25hbWV9IGZpbGUgY291bnQg YmVmb3JlIHN1Ym1vZHVsZSBleGNsdXNpb246DQo+IHtsZW4oc2VsZi5fYWJzX2ZpbGVfcGF0aHNf dG9fZm9ybWF0KX0iKQ0KPiA+ID4+ICsNCj4gPiA+PiArICAgICAgICAgICAgc3VibW9kdWxlX3Bh dGhzID0gdHVwbGUoc2VsZi5fZ2V0X2dpdF9zdWJtb2R1bGVfcGF0aHMoKSkNCj4gPiA+PiArICAg ICAgICAgICAgZm9yIHBhdGggaW4gc3VibW9kdWxlX3BhdGhzOg0KPiA+ID4+ICsgICAgICAgICAg ICAgICAgbG9nZ2luZy5pbmZvKGYiICBzdWJtb2R1bGUgcGF0aDoge3BhdGh9IikNCj4gPiA+PiAr DQo+ID4gPj4gKyAgICAgICAgICAgIHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdCA9IFsN Cj4gPiA+PiArICAgICAgICAgICAgICAgIGYgZm9yIGYgaW4gc2VsZi5fYWJzX2ZpbGVfcGF0aHNf dG9fZm9ybWF0IGlmIG5vdCBmLnN0YXJ0c3dpdGgoc3VibW9kdWxlX3BhdGhzKV0NCj4gPiA+PiAr DQo+ID4gPj4gKyAgICAgICAgICAgIGxvZ2dpbmcuaW5mbygNCj4gPiA+PiArICAgICAgICAgICAg ICAgIGYie3NlbGYuX3BhY2thZ2VfbmFtZX0gZmlsZSBjb3VudCBhZnRlciBzdWJtb2R1bGUgZXhj bHVzaW9uOiB7bGVuKHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdCl9IikNCj4gPiA+PiAr DQo+ID4gPj4gKyAgICAgICAgIyBTb3J0IHRoZSBmaWxlcyBmb3IgbW9yZSBjb25zaXN0ZW50IHJl c3VsdHMNCj4gPiA+PiArICAgICAgICBzZWxmLl9hYnNfZmlsZV9wYXRoc190b19mb3JtYXQuc29y dCgpDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgZGVmIF9pbml0aWFsaXplX3Rlc3RfY2FzZV9vdXRw dXRfb3B0aW9ucyhzZWxmKSAtPiBOb25lOg0KPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ID4+ICsg ICAgICAgIEluaXRpYWxpemVzIG9wdGlvbnMgdGhhdCBpbmZsdWVuY2UgdGVzdCBjYXNlIG91dHB1 dC4NCj4gPiA+PiArICAgICAgICAiIiINCj4gPiA+PiArICAgICAgICBzZWxmLl9hdWRpdF9vbmx5 X21vZGUgPSBGYWxzZQ0KPiA+ID4+ICsgICAgICAgIHNlbGYuX291dHB1dF9maWxlX2RpZmZzID0g RmFsc2UNCj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAgaWYgIkF1ZGl0T25seSIgaW4gc2VsZi5f cGFja2FnZV9jb25maWcgYW5kIHNlbGYuX3BhY2thZ2VfY29uZmlnWyJBdWRpdE9ubHkiXToNCj4g PiA+PiArICAgICAgICAgICAgc2VsZi5fYXVkaXRfb25seV9tb2RlID0gVHJ1ZQ0KPiA+ID4+ICsN Cj4gPiA+PiArICAgICAgICBpZiAiT3V0cHV0RmlsZURpZmZzIiBpbiBzZWxmLl9wYWNrYWdlX2Nv bmZpZyBhbmQgc2VsZi5fcGFja2FnZV9jb25maWdbIk91dHB1dEZpbGVEaWZmcyJdOg0KPiA+ID4+ ICsgICAgICAgICAgICBzZWxmLl9vdXRwdXRfZmlsZV9kaWZmcyA9IFRydWUNCj4gPiA+PiArDQo+ ID4gPj4gKyAgICBkZWYgX2xvZ191bmNydXN0aWZ5X2FwcF9pbmZvKHNlbGYpIC0+IE5vbmU6DQo+ ID4gPj4gKyAgICAgICAgIiIiDQo+ID4gPj4gKyAgICAgICAgTG9ncyBVbmNydXN0aWZ5IGFwcGxp Y2F0aW9uIGluZm9ybWF0aW9uLg0KPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ID4+ICsgICAgICAg IHNlbGYuX3RjLkxvZ1N0ZE91dChmIkZvdW5kIFVuY3J1c3RpZnkgYXQge3NlbGYuX2FwcF9wYXRo fSIpDQo+ID4gPj4gKyAgICAgICAgc2VsZi5fdGMuTG9nU3RkT3V0KGYiVW5jcnVzdGlmeSB2ZXJz aW9uOiB7c2VsZi5fYXBwX3ZlcnNpb259IikNCj4gPiA+PiArICAgICAgICBzZWxmLl90Yy5Mb2dT dGRPdXQoJ1xuJykNCj4gPiA+PiArICAgICAgICBsb2dnaW5nLmluZm8oZiJGb3VuZCBVbmNydXN0 aWZ5IGF0IHtzZWxmLl9hcHBfcGF0aH0iKQ0KPiA+ID4+ICsgICAgICAgIGxvZ2dpbmcuaW5mbyhm IlVuY3J1c3RpZnkgdmVyc2lvbjoge3NlbGYuX2FwcF92ZXJzaW9ufSIpDQo+ID4gPj4gKyAgICAg ICAgbG9nZ2luZy5pbmZvKCdcbicpDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgZGVmIF9wcm9jZXNz X3VuY3J1c3RpZnlfcmVzdWx0cyhzZWxmKSAtPiBOb25lOg0KPiA+ID4+ICsgICAgICAgICIiIg0K PiA+ID4+ICsgICAgICAgIFByb2Nlc3MgdGhlIHJlc3VsdHMgZnJvbSBVbmNydXN0aWZ5Lg0KPiA+ ID4+ICsNCj4gPiA+PiArICAgICAgICBEZXRlcm1pbmVzIHdoZXRoZXIgZm9ybWF0dGluZyBlcnJv cnMgYXJlIHByZXNlbnQgYW5kIGxvZ3MgZmFpbHVyZXMuDQo+ID4gPj4gKyAgICAgICAgIiIiDQo+ ID4gPj4gKyAgICAgICAgZm9ybWF0dGVkX2ZpbGVzID0gW3N0cihwYXRoLnJlc29sdmUoKSkgZm9y IHBhdGggaW4gcGF0aGxpYi5QYXRoKA0KPiA+ID4+ICsgICAgICAgICAgICBzZWxmLl9hYnNfcGFj a2FnZV9wYXRoKS5yZ2xvYihmJyp7VW5jcnVzdGlmeUNoZWNrLkZPUk1BVFRFRF9GSUxFX0VYVEVO U0lPTn0nKV0NCj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAgc2VsZi5fZm9ybWF0dGVkX2ZpbGVf ZXJyb3JfY291bnQgPSBsZW4oZm9ybWF0dGVkX2ZpbGVzKQ0KPiA+ID4+ICsNCj4gPiA+PiArICAg ICAgICBpZiBzZWxmLl9mb3JtYXR0ZWRfZmlsZV9lcnJvcl9jb3VudCA+IDA6DQo+ID4gPj4gKyAg ICAgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZEVycm9yKCJGaWxlcyB3aXRoIGZvcm1hdHRpbmcgZXJy b3JzOlxuIikNCj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAgICAgIGlmIHNlbGYuX291dHB1dF9m aWxlX2RpZmZzOg0KPiA+ID4+ICsgICAgICAgICAgICAgICAgbG9nZ2luZy5pbmZvKCJDYWxjdWxh dGluZyBmaWxlIGRpZmZzLiBUaGlzIG1pZ2h0IHRha2UgYSB3aGlsZS4uLiIpDQo+ID4gPj4gKw0K PiA+ID4+ICsgICAgICAgIGZvciBmb3JtYXR0ZWRfZmlsZSBpbiBmb3JtYXR0ZWRfZmlsZXM6DQo+ ID4gPj4gKyAgICAgICAgICAgIHByZV9mb3JtYXR0ZWRfZmlsZSA9IGZvcm1hdHRlZF9maWxlWzot DQo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxlbihVbmNydXN0aWZ5Q2hlY2suRk9STUFUVEVEX0ZJTEVfRVhURU5TSU9OKV0NCj4gPiA+PiAr DQo+ID4gPj4gKyAgICAgICAgICAgIGlmIChzZWxmLl9vdXRwdXRfZmlsZV9kaWZmcyBvcg0KPiA+ ID4+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVfdGVtcGxhdGVfY29udGVudHMgaXMg bm90IE5vbmUgb3INCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICBzZWxmLl9mdW5jX3RlbXBs YXRlX2NvbnRlbnRzIGlzIG5vdCBOb25lKToNCj4gPiA+PiArICAgICAgICAgICAgICAgIHNlbGYu X3RjLkxvZ1N0ZEVycm9yKA0KPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgIGYiRm9ybWF0dGlu ZyBlcnJvcnMgaW4ge29zLnBhdGgucmVscGF0aChwcmVfZm9ybWF0dGVkX2ZpbGUsIHNlbGYuX2Fi c19wYWNrYWdlX3BhdGgpfVxuIikNCj4gPiA+PiArDQo+ID4gPj4gKyAgICAgICAgICAgICAgICB3 aXRoIG9wZW4oZm9ybWF0dGVkX2ZpbGUpIGFzIGZmOg0KPiA+ID4+ICsgICAgICAgICAgICAgICAg ICAgIGZvcm1hdHRlZF9maWxlX3RleHQgPSBmZi5yZWFkKCkNCj4gPiA+PiArDQo+ID4gPj4gKyAg ICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuX2ZpbGVfdGVtcGxhdGVfY29udGVudHMgaXMgbm90 IE5vbmUgYW5kDQo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9maWxl X3RlbXBsYXRlX2NvbnRlbnRzIGluIGZvcm1hdHRlZF9maWxlX3RleHQpOg0KPiA+ID4+ICsgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLl90Yy5Mb2dTdGRFcnJvcihmIkZpbGUgaGVhZGVyIGlz IG1pc3NpbmcgaW4ge29zLnBhdGgucmVscGF0aChwcmVfZm9ybWF0dGVkX2ZpbGUsDQo+ID4gPj4g c2VsZi5fYWJzX3BhY2thZ2VfcGF0aCl9XG4iKQ0KPiA+ID4+ICsNCj4gPiA+PiArICAgICAgICAg ICAgICAgICAgICBpZiAoc2VsZi5fZnVuY190ZW1wbGF0ZV9jb250ZW50cyBpcyBub3QgTm9uZSBh bmQNCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Z1bmNfdGVtcGxh dGVfY29udGVudHMgaW4gZm9ybWF0dGVkX2ZpbGVfdGV4dCk6DQo+ID4gPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZEVycm9yKGYiQSBmdW5jdGlvbiBoZWFkZXIgaXMg bWlzc2luZyBpbiB7b3MucGF0aC5yZWxwYXRoKHByZV9mb3JtYXR0ZWRfZmlsZSwNCj4gPiA+PiBz ZWxmLl9hYnNfcGFja2FnZV9wYXRoKX1cbiIpDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgICAgICAg ICAgICAgICAgIGlmIHNlbGYuX291dHB1dF9maWxlX2RpZmZzOg0KPiA+ID4+ICsgICAgICAgICAg ICAgICAgICAgICAgICB3aXRoIG9wZW4ocHJlX2Zvcm1hdHRlZF9maWxlKSBhcyBwZjoNCj4gPiA+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZV9mb3JtYXR0ZWRfZmlsZV90ZXh0ID0g cGYucmVhZCgpDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig bGluZSBpbiBkaWZmbGliLnVuaWZpZWRfZGlmZihwcmVfZm9ybWF0dGVkX2ZpbGVfdGV4dC5zcGxp dCgnXG4nKSwNCj4gPiA+PiBmb3JtYXR0ZWRfZmlsZV90ZXh0LnNwbGl0KCdcbicpLCBmcm9tZmls ZT1wcmVfZm9ybWF0dGVkX2ZpbGUsIHRvZmlsZT1mb3JtYXR0ZWRfZmlsZSwgbj0zKToNCj4gPiA+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZEVycm9yKGxpbmUp DQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl90Yy5Mb2dT dGRFcnJvcignXG4nKQ0KPiA+ID4+ICsgICAgICAgICAgICBlbHNlOg0KPiA+ID4+ICsgICAgICAg ICAgICAgICAgc2VsZi5fdGMuTG9nU3RkRXJyb3IocHJlX2Zvcm1hdHRlZF9maWxlKQ0KPiA+ID4+ ICsNCj4gPiA+PiArICAgIGRlZiBfcmVtb3ZlX3RyZWUoc2VsZiwgZGlyX3BhdGg6IHN0ciwgaWdu b3JlX2Vycm9yczogYm9vbCA9IEZhbHNlKSAtPiBOb25lOg0KPiA+ID4+ICsgICAgICAgICIiIg0K PiA+ID4+ICsgICAgICAgIEhlbHBlciBmb3IgcmVtb3ZpbmcgYSBkaXJlY3RvcnkuIE92ZXIgdGlt ZSB0aGVyZSBoYXZlIGJlZW4NCj4gPiA+PiArICAgICAgICBtYW55IHByaXZhdGUgaW1wbGVtZW50 YXRpb25zIG9mIHRoaXMgZHVlIHRvIHJlbGlhYmlsaXR5IGlzc3VlcyBpbiB0aGUNCj4gPiA+PiAr ICAgICAgICBzaHV0aWwgaW1wbGVtZW50YXRpb25zLiBUbyBjb25zb2xpZGF0ZSBvbiBhIHNpbmds ZSBmdW5jdGlvbiB0aGlzIGhlbHBlciBpcyBhZGRlZC4NCj4gPiA+PiArDQo+ID4gPj4gKyAgICAg ICAgT24gZXJyb3IgdHJ5IHRvIGNoYW5nZSBmaWxlIGF0dHJpYnV0ZXMuIEFsc28gYWRkIHJldHJ5 IGxvZ2ljLg0KPiA+ID4+ICsNCj4gPiA+PiArICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHRlbXBv cmFyaWx5IGJvcnJvd2VkIGZyb20gZWRrMnRvb2xsaWIudXRpbGl0eV9mdW5jdGlvbnMNCj4gPiA+ PiArICAgICAgICBzaW5jZSB0aGUgdmVyc2lvbiB1c2VkIGluIGVkazIgaXMgbm90IHJlY2VudCBl bm91Z2ggdG8gaW5jbHVkZSB0aGUNCj4gPiA+PiArICAgICAgICBmdW5jdGlvbi4NCj4gPiA+PiAr DQo+ID4gPj4gKyAgICAgICAgVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgcmVwbGFjZWQgYnkgIlJl bW92ZVRyZWUiIHdoZW4gaXQgaXMgYXZhaWxhYmxlLg0KPiA+ID4+ICsNCj4gPiA+PiArICAgICAg ICBBcmdzOg0KPiA+ID4+ICsgICAgICAgICAgLSBkaXJfcGF0aDogUGF0aCB0byBkaXJlY3Rvcnkg dG8gcmVtb3ZlLg0KPiA+ID4+ICsgICAgICAgICAgLSBpZ25vcmVfZXJyb3JzOiBXaGV0aGVyIHRv IGlnbm9yZSBlcnJvcnMgZHVyaW5nIHJlbW92YWwNCj4gPiA+PiArICAgICAgICAiIiINCj4gPiA+ PiArDQo+ID4gPj4gKyAgICAgICAgZGVmIF9yZW1vdmVfcmVhZG9ubHkoZnVuYywgcGF0aCwgXyk6 DQo+ID4gPj4gKyAgICAgICAgICAgICIiIg0KPiA+ID4+ICsgICAgICAgICAgICBQcml2YXRlIGZ1 bmN0aW9uIHRvIGF0dGVtcHQgdG8gY2hhbmdlIHBlcm1pc3Npb25zIG9uIGZpbGUvZm9sZGVyIGJl aW5nIGRlbGV0ZWQuDQo+ID4gPj4gKyAgICAgICAgICAgICIiIg0KPiA+ID4+ICsgICAgICAgICAg ICBvcy5jaG1vZChwYXRoLCBvcy5zdGF0LlNfSVdSSVRFKQ0KPiA+ID4+ICsgICAgICAgICAgICBm dW5jKHBhdGgpDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgICAgIGZvciBfIGluIHJhbmdlKDMpOiAg IyByZXRyeSB1cCB0byAzIHRpbWVzDQo+ID4gPj4gKyAgICAgICAgICAgIHRyeToNCj4gPiA+PiAr ICAgICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZGlyX3BhdGgsIGlnbm9yZV9lcnJvcnM9aWdu b3JlX2Vycm9ycywgb25lcnJvcj1fcmVtb3ZlX3JlYWRvbmx5KQ0KPiA+ID4+ICsgICAgICAgICAg ICBleGNlcHQgT1NFcnJvciBhcyBlcnI6DQo+ID4gPj4gKyAgICAgICAgICAgICAgICBsb2dnaW5n Lndhcm5pbmcoZiJGYWlsZWQgdG8gZnVsbHkgcmVtb3ZlIHtkaXJfcGF0aH06IHtlcnJ9IikNCj4g PiA+PiArICAgICAgICAgICAgZWxzZToNCj4gPiA+PiArICAgICAgICAgICAgICAgIGJyZWFrDQo+ ID4gPj4gKyAgICAgICAgZWxzZToNCj4gPiA+PiArICAgICAgICAgICAgcmFpc2UgUnVudGltZUVy cm9yKGYiRmFpbGVkIHRvIHJlbW92ZSB7ZGlyX3BhdGh9IikNCj4gPiA+PiArDQo+ID4gPj4gKyAg ICBkZWYgX3J1bl91bmNydXN0aWZ5KHNlbGYpIC0+IE5vbmU6DQo+ID4gPj4gKyAgICAgICAgIiIi DQo+ID4gPj4gKyAgICAgICAgUnVucyBVbmNydXN0aWZ5IGZvciB0aGlzIGluc3RhbmNlIG9mIHBs dWdpbiBleGVjdXRpb24uDQo+ID4gPj4gKyAgICAgICAgIiIiDQo+ID4gPj4gKyAgICAgICAgbG9n Z2luZy5pbmZvKCJFeGVjdXRpbmcgVW5jcnVzdGlmeS4gVGhpcyBtaWdodCB0YWtlIGEgd2hpbGUu Li4iKQ0KPiA+ID4+ICsgICAgICAgIHN0YXJ0X3RpbWUgPSB0aW1laXQuZGVmYXVsdF90aW1lcigp DQo+ID4gPj4gKyAgICAgICAgc2VsZi5fZXhlY3V0ZV91bmNydXN0aWZ5KCkNCj4gPiA+PiArICAg ICAgICBlbmRfdGltZSA9IHRpbWVpdC5kZWZhdWx0X3RpbWVyKCkgLSBzdGFydF90aW1lDQo+ID4g Pj4gKw0KPiA+ID4+ICsgICAgICAgIGV4ZWN1dGlvbl9zdW1tYXJ5ID0gZiJVbmNydXN0aWZ5IGV4 ZWN1dGVkIGFnYWluc3Qge2xlbihzZWxmLl9hYnNfZmlsZV9wYXRoc190b19mb3JtYXQpfSBmaWxl cyBpbg0KPiA+ID4+IHtzZWxmLl9wYWNrYWdlX25hbWV9IGluIHtlbmRfdGltZTouMmZ9IHNlY29u ZHMuXG4iDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZE91dChleGVj dXRpb25fc3VtbWFyeSkNCj4gPiA+PiArICAgICAgICBsb2dnaW5nLmluZm8oZXhlY3V0aW9uX3N1 bW1hcnkpDQo+ID4gPj4gKw0KPiA+ID4+ICsgICAgICAgIGlmIHNlbGYuX2FwcF9leGl0X2NvZGUg IT0gMCBhbmQgc2VsZi5fYXBwX2V4aXRfY29kZSAhPSAxOg0KPiA+ID4+ICsgICAgICAgICAgICBy YWlzZSBVbmNydXN0aWZ5QXBwRXhlY3V0aW9uRXhjZXB0aW9uKA0KPiA+ID4+ICsgICAgICAgICAg ICAgICAgZiJFcnJvciB7c3RyKHNlbGYuX2FwcF9leGl0X2NvZGUpfSByZXR1cm5lZCBmcm9tIFVu Y3J1c3RpZnk6XG5cbntzdHIoc2VsZi5fYXBwX291dHB1dCl9IikNCj4gPiA+PiBkaWZmIC0tZ2l0 IGEvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNrL2RlZmF1bHRfZmlsZV9oZWFkZXIudHh0 DQo+ID4gPj4gYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5Q2hlY2svZGVmYXVsdF9maWxlX2hl YWRlci50eHQNCj4gPiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4+IGluZGV4IDAwMDAw MDAwMDAwMC4uMjk1NWE3MzRkZmUxDQo+ID4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+ID4+ICsrKyBi Ly5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjay9kZWZhdWx0X2ZpbGVfaGVhZGVyLnR4dA0K PiA+ID4+IEBAIC0wLDAgKzEsOSBAQA0KPiA+ID4+ICsvKiogQGZpbGUNCj4gPiA+PiArICBCcmll ZiBkZXNjcmlwdGlvbiBvZiB0aGUgZmlsZSdzIHB1cnBvc2UuDQo+ID4gPj4gKw0KPiA+ID4+ICsg IERldGFpbGVkIGRlc2NyaXB0aW9uIG9mIHRoZSBmaWxlJ3MgY29udGVudHMgYW5kIG90aGVyIHVz ZWZ1bA0KPiA+ID4+ICsgIGluZm9ybWF0aW9uIGZvciBhIHBlcnNvbiB2aWV3aW5nIHRoZSBmaWxl IGZvciB0aGUgZmlyc3QgdGltZS4NCj4gPiA+PiArDQo+ID4gPj4gKyAgPDxDb3B5cmlnaHQ+Pg0K PiA+ID4+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ ID4gPj4gKyoqLw0KPiA+ID4+IGRpZmYgLS1naXQgYS8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5 Q2hlY2svZGVmYXVsdF9mdW5jdGlvbl9oZWFkZXIudHh0DQo+ID4gPj4gYi8ucHl0b29sL1BsdWdp bi9VbmNydXN0aWZ5Q2hlY2svZGVmYXVsdF9mdW5jdGlvbl9oZWFkZXIudHh0DQo+ID4gPj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjY2ZWRjNzJlNjcz MQ0KPiA+ID4+IC0tLSAvZGV2L251bGwNCj4gPiA+PiArKysgYi8ucHl0b29sL1BsdWdpbi9VbmNy dXN0aWZ5Q2hlY2svZGVmYXVsdF9mdW5jdGlvbl9oZWFkZXIudHh0DQo+ID4gPj4gQEAgLTAsMCAr MSwxNSBAQA0KPiA+ID4+ICsvKioNCj4gPiA+PiArICBCcmllZiBkZXNjcmlwdGlvbiBvZiB0aGlz IGZ1bmN0aW9uJ3MgcHVycG9zZS4NCj4gPiA+PiArDQo+ID4gPj4gKyAgRm9sbG93IGl0IGltbWVk aWF0ZWx5IHdpdGggdGhlIGRldGFpbGVkIGRlc2NyaXB0aW9uLg0KPiA+ID4+ICsNCj4gPiA+PiAr ICBAcGFyYW1baW5dICAgICAgQXJnMSAgRGVzY3JpcHRpb24gb2YgQXJnMS4NCj4gPiA+PiArICBA cGFyYW1baW5dICAgICAgQXJnMiAgRGVzY3JpcHRpb24gb2YgQXJnMiBUaGlzIGlzIGNvbXBsaWNh dGVkIGFuZCByZXF1aXJlcw0KPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBs ZSBsaW5lcyB0byBkZXNjcmliZS4NCj4gPiA+PiArICBAcGFyYW1bb3V0XSAgICAgQXJnMyAgRGVz Y3JpcHRpb24gb2YgQXJnMy4NCj4gPiA+PiArICBAcGFyYW1baW4sIG91dF0gQXJnNCAgRGVzY3Jp cHRpb24gb2YgQXJnNC4NCj4gPiA+PiArDQo+ID4gPj4gKyAgQHJldHZhbCBWQUxfT05FICBEZXNj cmlwdGlvbiBvZiB3aGF0IFZBTF9PTkUgc2lnbmlmaWVzLg0KPiA+ID4+ICsgIEByZXR2YWwgT1RI RVIgICAgVGhpcyBpcyB0aGUgb25seSBvdGhlciByZXR1cm4gdmFsdWUuIElmIHRoZXJlIHdlcmUg b3RoZXINCj4gPiA+PiArICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZXMsIHRoZXkgd291 bGQgYmUgbGlzdGVkLg0KPiA+ID4+ICsqKi8NCj4gPiA+PiBkaWZmIC0tZ2l0IGEvLnB5dG9vbC9Q bHVnaW4vVW5jcnVzdGlmeUNoZWNrL3VuY3J1c3RpZnkuY2ZnIGIvLnB5dG9vbC9QbHVnaW4vVW5j cnVzdGlmeUNoZWNrL3VuY3J1c3RpZnkuY2ZnDQo+ID4gPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN Cj4gPiA+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjFhODcyOTVlYzlmOQ0KPiA+ID4+IC0tLSAvZGV2 L251bGwNCj4gPiA+PiArKysgYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5Q2hlY2svdW5jcnVz dGlmeS5jZmcNCj4gPiA+PiBAQCAtMCwwICsxLDQ2MiBAQA0KPiA+ID4+ICsjIyBAZmlsZQ0KPiA+ ID4+ICsjIFVuY3J1c3RpZnkgQ29uZmlndXJhdGlvbiBGaWxlIGZvciBFREsgSUkgQyBDb2RlDQo+ ID4gPj4gKyMNCj4gPiA+PiArIyBDb2RpbmcgU3RhbmRhcmQ6IGh0dHBzOi8vZWRrMi1kb2NzLmdp dGJvb2suaW8vZWRrLWlpLWMtY29kaW5nLXN0YW5kYXJkcy1zcGVjaWZpY2F0aW9uLw0KPiA+ID4+ ICsjDQo+ID4gPj4gKyMgVGhpcyBjb25maWd1cmF0aW9uIGZpbGUgaXMgbWVhbnQgdG8gYmUgYSAi YmVzdCBhdHRlbXB0IiB0byBhbGlnbiB3aXRoIHRoZQ0KPiA+ID4+ICsjIGRlZmluaXRpb25zIGlu IHRoZSBFREsgSUkgQyBDb2RpbmcgU3RhbmRhcmRzIFNwZWNpZmljYXRpb24uDQo+ID4gPj4gKyMN Cj4gPiA+PiArIyBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4NCj4gPiA+PiAr IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4+ICsj Iw0KPiA+ID4+ICsNCj4gPiA+PiArIyBGb3JjZSBVVEYtOCBlbmNvZGluZyAobm8gVVRGLTE2KQ0K PiA+ID4+ICtlbmFibGVfZGlncmFwaHMgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiAr dXRmOF9ieXRlICAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPj4gK3V0ZjhfZm9y Y2UgICAgICAgICAgICAgICAgICAgICAgPSB0cnVlDQo+ID4gPj4gKw0KPiA+ID4+ICsjIENvZGUg d2lkdGggLyBsaW5lIHNwbGl0dGluZw0KPiA+ID4+ICsjY29kZV93aWR0aCAgICAgICAgICAgICAg ICAgICAgICA9MTIwICAgICAjIFRPRE86IFRoaXMgY2F1c2VzIG5vbi1kZXRlcm1pbmlzdGljIGJl aGF2aW91ciBpbiBzb21lIGNhc2VzIHdoZW4gY29kZQ0KPiA+IHdyYXBzDQo+ID4gPj4gK2xzX2Nv ZGVfd2lkdGggICAgICAgICAgICAgICAgICAgPWZhbHNlDQo+ID4gPj4gK2xzX2Zvcl9zcGxpdF9m dWxsICAgICAgICAgICAgICAgPXRydWUNCj4gPiA+PiArbHNfZnVuY19zcGxpdF9mdWxsICAgICAg ICAgICAgICA9dHJ1ZQ0KPiA+ID4+ICtwb3NfY29tbWEgICAgICAgICAgICAgICAgICAgICAgID10 cmFpbA0KPiA+ID4+ICsNCj4gPiA+PiArIyA1LjEuNyAgQWxsIGZpbGVzIG11c3QgZW5kIHdpdGgg Q1JMRg0KPiA+ID4+ICtuZXdsaW5lcyAgICAgICAgICAgICAgICAgICAgICAgID0gY3JsZg0KPiA+ ID4+ICsNCj4gPiA+PiArIyA1LjEuMiBEbyBub3QgdXNlIHRhYiBjaGFyYWN0ZXJzDQo+ID4gPj4g Kw0KPiA+ID4+ICtjbXRfY29udmVydF90YWJfdG9fc3BhY2VzICAgICAgID0gdHJ1ZSAgICAgICMg V2hldGhlciB0byBjb252ZXJ0IGFsbCB0YWJzIHRvIHNwYWNlcyBpbiBjb21tZW50cy4gSWYgZmFs c2UsIHRhYnMgaW4NCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIGNvbW1lbnRzIGFyZSBsZWZ0IGFsb25lLCB1bmxlc3MgdXNlZCBmb3IgaW5kZW50 aW5nLg0KPiA+ID4+ICtpbmRlbnRfY29sdW1ucyAgICAgICAgICAgICAgICAgID0gMiAgICAgICAg ICMgTnVtYmVyIG9mIHNwYWNlcyBmb3IgaW5kZW50YXRpb24NCj4gPiA+PiAraW5kZW50X3dpdGhf dGFicyAgICAgICAgICAgICAgICA9IDAgICAgICAgICAjIERvIG5vdCB1c2UgVEFCIGNoYXJhY3Rl cnMNCj4gPiA+PiArc3RyaW5nX3JlcGxhY2VfdGFiX2NoYXJzICAgICAgICA9IHRydWUgICAgICAj IFJlcGxhY2UgVEFCIHdpdGggU1BBQ0UNCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjIE5vdGU6IFRoaXMgd2lsbCBicmVhayAucm9ib3QgZmlsZXMg YnV0IGlzIG5lZWRlZCBmb3IgZWRrMiBzdHlsZQ0KPiA+ID4+ICsNCj4gPiA+PiArIyA1LjIuMS4x IFRoZXJlIHNoYWxsIGJlIG9ubHkgb25lIHN0YXRlbWVudCBvbiBhIGxpbmUgKHN0YXRlbWVudCBl bmRzIHdpdGggOykNCj4gPiA+PiArbmxfbXVsdGlfbGluZV9jb25kICAgICAgICAgICAgICA9IHRy dWUgICAgICAjIEFkZCBhIG5ld2xpbmUgYmV0d2VlbiAnKScgYW5kICd7JyBpZiB0aGUgJyknIGlz IG9uIGEgZGlmZmVyZW50IGxpbmUNCj4gdGhhbg0KPiA+ID4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgdGhlIGlmL2Zvci9ldGMuDQo+ID4gPj4gK25sX2Fm dGVyX3NlbWljb2xvbiAgICAgICAgICAgICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFkZCBh IG5ld2xpbmUgYWZ0ZXIgc2VtaWNvbG9ucywgZXhjZXB0IGluICdmb3InIHN0YXRlbWVudHMuDQo+ ID4gPj4gKw0KPiA+ID4+ICsjIDUuMi4xLjMgQW4gb3BlbiBicmFjZSAneycgZ29lcyBvbiB0aGUg c2FtZSBsaW5lIGFzIHRoZSBjbG9zaW5nIHBhcmVudGhlc2lzICcpJyBvZiBzaW1wbGUgcHJlZGlj YXRlIGV4cHJlc3Npb25zDQo+ID4gPj4gK21vZF9mdWxsX2JyYWNlX2RvICAgICAgICAgICAgICAg PSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIGJyYWNlcyBvbiBhIHNpbmdsZS1saW5lICdkbycg c3RhdGVtZW50Lg0KPiA+ID4+ICttb2RfZnVsbF9icmFjZV9mb3IgICAgICAgICAgICAgID0gYWRk DQo+ID4gPj4gK21vZF9mdWxsX2JyYWNlX2Z1bmN0aW9uICAgICAgICAgPSBhZGQgICAgICAgIyBB ZGQgb3IgcmVtb3ZlIGJyYWNlcyBvbiBhIHNpbmdsZS1saW5lIGZ1bmN0aW9uIGRlZmluaXRpb24u DQo+ID4gPj4gK21vZF9mdWxsX2JyYWNlX2lmICAgICAgICAgICAgICAgPSBhZGQgICAgICAgIyBB ZGQgb3IgcmVtb3ZlIGJyYWNlcyBvbiBhIHNpbmdsZS1saW5lICdpZicgc3RhdGVtZW50LiBCcmFj ZXMgd2lsbCBub3QNCj4gYmUNCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAjIHJlbW92ZWQgaWYgdGhlIGJyYWNlZCBzdGF0ZW1lbnQgY29udGFpbnMg YW4gJ2Vsc2UnLg0KPiA+ID4+ICttb2RfZnVsbF9icmFjZV9pZl9jaGFpbiAgICAgICAgID0gZmFs c2UNCj4gPiA+PiArbW9kX2Z1bGxfYnJhY2Vfd2hpbGUgICAgICAgICAgICA9IGFkZA0KPiA+ID4+ ICsNCj4gPiA+PiArIyA1LjIuMS40IEEgY2xvc2UgYnJhY2UgJ30nIGFsd2F5cyBnb2VzIGF0IHRo ZSBiZWdpbm5pbmcgb2YgdGhlIGxhc3QgbGluZSBvZiB0aGUgYm9keQ0KPiA+ID4+ICtlYXRfYmxh bmtzX2FmdGVyX29wZW5fYnJhY2UgICAgID0gdHJ1ZQ0KPiA+ID4+ICtlYXRfYmxhbmtzX2JlZm9y ZV9jbG9zZV9icmFjZSAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byByZW1vdmUgYmxhbmsgbGlu ZXMgYmVmb3JlICd9Jy4NCj4gPiA+PiArDQo+ID4gPj4gKyMgNS4yLjIuMiBBbHdheXMgcHV0IHNw YWNlIGJlZm9yZSBhbmQgYWZ0ZXIgYmluYXJ5IG9wZXJhdG9ycy4NCj4gPiA+PiArc3BfYXNzaWdu ICAgICAgICAgICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2Ug YXJvdW5kIGFzc2lnbm1lbnQgb3BlcmF0b3IgJz0nLCAnKz0nLCBldGMuDQo+ID4gPj4gK3NwX2Fz c2lnbl9kZWZhdWx0ICAgICAgICAgICAgICAgPSBhZGQNCj4gPiA+PiArc3BfYm9vbCAgICAgICAg ICAgICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYXJvdW5k IGJvb2xlYW4gb3BlcmF0b3JzICcmJicgYW5kICd8fCcuDQo+ID4gPj4gK3NwX2NvbXBhcmUgICAg ICAgICAgICAgICAgICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFyb3Vu ZCBjb21wYXJlIG9wZXJhdG9yICc8JywgJz4nLCAnPT0nLCBldGMuDQo+ID4gPj4gKw0KPiA+ID4+ ICsjIDUuMi4yLjMgRG8gbm90IHB1dCBzcGFjZSBiZXR3ZWVuIHVuYXJ5IG9wZXJhdG9ycyBhbmQg dGhlaXIgb2JqZWN0DQo+ID4gPj4gK3NwX2FkZHIgICAgICAgICAgICAgICAgICAgICAgICAgPSBy ZW1vdmUgICAgIyBBIG9yIHJlbW92ZSBzcGFjZSBhZnRlciB0aGUgJyYnIChhZGRyZXNzLW9mKSB1 bmFyeSBvcGVyYXRvci4NCj4gPiA+PiArc3BfaW5jZGVjICAgICAgICAgICAgICAgICAgICAgICA9 IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnKysnIGFuZCAnLS0nIHRo ZSB3b3JkIHRvIHdoaWNoIGl0IGlzDQo+IGJlaW5nDQo+ID4gPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhcHBsaWVkLCBhcyBpbiAnKC0teCknIG9yICd5 Kys7Jy4NCj4gPiA+PiArc3BfaW52ICAgICAgICAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAg ICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYWZ0ZXIgdGhlICd+JyAoaW52ZXJ0KSB1bmFyeSBvcGVy YXRvci4NCj4gPiA+PiArc3Bfbm90ICAgICAgICAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAg ICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYWZ0ZXIgdGhlICchJyAobm90KSB1bmFyeSBvcGVyYXRv ci4NCj4gPiA+PiArc3Bfc2lnbiAgICAgICAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAj IEFkZCBvciByZW1vdmUgc3BhY2UgYWZ0ZXIgJysnIG9yICctJywgYXMgaW4gJ3ggPSAtNScgb3Ig J3kgPSArNycuDQo+ID4gPj4gKw0KPiA+ID4+ICsjIDUuMi4yLjQgU3Vic2VxdWVudCBsaW5lcyBv ZiBtdWx0aS1saW5lIGZ1bmN0aW9uIGNhbGxzIHNob3VsZCBsaW5lIHVwIHR3byBzcGFjZXMgZnJv bSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmdW5jdGlvbg0KPiA+ID4+ICsjICAgICAgICAgbmFtZQ0K PiA+ID4+ICtubF9mdW5jX2NhbGxfYXJnc19tdWx0aV9saW5lICAgID0gdHJ1ZSAgICAgICMgV2hl dGhlciB0byBhZGQgYSBuZXdsaW5lIGFmdGVyIGVhY2ggJywnIGluIGEgZnVuY3Rpb24gY2FsbCBp ZiAnKCcgYW5kDQo+ID4gJyknDQo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIyBhcmUgaW4gZGlmZmVyZW50IGxpbmVzLg0KPiA+ID4+ICtubF9mdW5j X2NhbGxfYXJnc19tdWx0aV9saW5lX2lnbm9yZV9jbG9zdXJlcyA9IGZhbHNlDQo+ID4gPj4gKw0K PiA+ID4+ICsjIC0gSW5kZW50IGVhY2ggYXJndW1lbnQgMiBzcGFjZXMgZnJvbSB0aGUgc3RhcnQg b2YgdGhlIGZ1bmN0aW9uIG5hbWUuIElmIGENCj4gPiA+PiArIyAgIGZ1bmN0aW9uIGlzIGNhbGxl ZCB0aHJvdWdoIGEgc3RydWN0dXJlIG9yIHVuaW9uIG1lbWJlciwgb2YgdHlwZQ0KPiA+ID4+ICsj ICAgcG9pbnRlci10by1mdW5jdGlvbiwgdGhlbiBpbmRlbnQgZWFjaCBhcmd1bWVudCAyIHNwYWNl cyBmcm9tIHRoZSBzdGFydCBvZiB0aGUNCj4gPiA+PiArIyAgIG1lbWJlciBuYW1lLg0KPiA+ID4+ ICtpbmRlbnRfZnVuY19jYWxsX2VkazJfc3R5bGUgICAgID0gdHJ1ZSAgICAgICMgVXNlIEVESzIg aW5kZW50YXRpb24gc3R5bGUgZm9yIGZ1bmN0aW9uIGNhbGxzICAoKipDVVNUT00gU0VUVElORyoq KQ0KPiA+ID4+ICtpbmRlbnRfcGFyZW5fYWZ0ZXJfZnVuY19jYWxsICAgID0gdHJ1ZSAgICAgICMg V2hldGhlciB0byBpbmRlbnQgdGhlIG9wZW4gcGFyZW50aGVzaXMgb2YgYSBmdW5jdGlvbiBjYWxs LCBpZiB0aGUNCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjIHBhcmVudGhlc2lzIGlzIG9uIGl0cyBvd24gbGluZS4NCj4gPiA+PiArDQo+ID4gPj4g KyMgLSBBbGlnbiB0aGUgY2xvc2UgcGFyZW50aGVzaXMgd2l0aCB0aGUgc3RhcnQgb2YgdGhlIGxh c3QgYXJndW1lbnQNCj4gPiA+PiAraW5kZW50X3BhcmVuX2Nsb3NlICAgICAgICAgICAgICA9IDAg ICAgICAgICAjIEhvdyB0byBpbmRlbnQgYSBjbG9zZSBwYXJlbnRoZXNpcyBhZnRlciBhIG5ld2xp bmUuDQo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyAoMDogQm9keSwgMTogT3BlbnBhcmVudGhlc2lzLCAyOiBCcmFjZSBsZXZlbCkNCj4gPiA+PiAr DQo+ID4gPj4gKw0KPiA+ID4+ICsjIDUuMi4yLjUgQWx3YXlzIHB1dCBzcGFjZSBhZnRlciBjb21t YXMgb3Igc2VtaWNvbG9ucyB0aGF0IHNlcGFyYXRlIGl0ZW1zDQo+ID4gPj4gK3NwX2FmdGVyX2Nv bW1hICAgICAgICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFm dGVyICcsJywgaS5lLiAnYSxiJyB2cy4gJ2EsIGInLg0KPiA+ID4+ICtzcF9iZWZvcmVfY29tbWEg ICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZWZvcmUg JywnLg0KPiA+ID4+ICsNCj4gPiA+PiArIyA1LjIuMi42IEFsd2F5cyBwdXQgc3BhY2UgYmVmb3Jl IGFuIG9wZW4gcGFyZW50aGVzaXMNCj4gPiA+PiArc3BfYWZ0ZXJfc3BhcmVuICAgICAgICAgICAg ICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYWZ0ZXIgJyknIG9mIGNvbnRy b2wgc3RhdGVtZW50cy4NCj4gPiA+PiArc3BfYXR0cmlidXRlX3BhcmVuICAgICAgICAgICAgICA9 IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnX19hdHRyaWJ1dGVfXycg YW5kICcoJy4NCj4gPiA+PiArc3BfYmVmb3JlX3NwYXJlbiAgICAgICAgICAgICAgICA9IGZvcmNl ICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmVmb3JlICcoJyBvZiBjb250cm9sIHN0YXRlbWVu dHMNCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj ICgnaWYnLCAnZm9yJywgJ3N3aXRjaCcsICd3aGlsZScsIGV0Yy4pLg0KPiA+ID4+ICtzcF9kZWZp bmVkX3BhcmVuICAgICAgICAgICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFj ZSBiZXR3ZWVuICdkZWZpbmVkJyBhbmQgJygnIGluICcjaWYgZGVmaW5lZCAoRk9PKScuDQo+ID4g Pj4gK3NwX2Z1bmNfY2FsbF9wYXJlbiAgICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3Ig cmVtb3ZlIHNwYWNlIGJldHdlZW4gZnVuY3Rpb24gbmFtZSBhbmQgJygnIG9uIGZ1bmN0aW9uIGNh bGxzLg0KPiA+ID4+ICtzcF9mdW5jX2NhbGxfcGFyZW5fZW1wdHkgICAgICAgID0gZm9yY2UgICAg ICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuIGZ1bmN0aW9uIG5hbWUgYW5kICcoKScgb24g ZnVuY3Rpb24gY2FsbHMNCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIHdpdGhvdXQgcGFyYW1ldGVycy4gSWYgc2V0IHRvIGlnbm9yZSAodGhlIGRl ZmF1bHQpLCBzcF9mdW5jX2NhbGxfcGFyZW4NCj4gPiBpcw0KPiA+ID4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdXNlZC4NCj4gPiA+PiArc3BfZnVuY19k ZWZfcGFyZW4gICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2Ug YmV0d2VlbiBhbGlhcyBuYW1lIGFuZCAnKCcgb2YgYSBub24tcG9pbnRlcg0KPiBmdW5jdGlvbg0K PiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdHlw ZSB0eXBlZGVmLg0KPiA+ID4+ICtzcF9mdW5jX3Byb3RvX3BhcmVuICAgICAgICAgICAgID0gYWRk ICAgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuIGZ1bmN0aW9uIG5hbWUgYW5kICco KScgb24gZnVuY3Rpb24NCj4gPiBkZWNsYXJhdGlvbg0KPiA+ID4+ICtzcF9zaXplb2ZfcGFyZW4g ICAgICAgICAgICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVu ICdzaXplb2YnIGFuZCAnKCcuDQo+ID4gPj4gK3NwX3R5cGVfZnVuYyAgICAgICAgICAgICAgICAg ICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gcmV0dXJuIHR5cGUg YW5kIGZ1bmN0aW9uIG5hbWUuIEEgbWluaW11bQ0KPiBvZg0KPiA+IDENCj4gPiA+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGlzIGZvcmNlZCBleGNlcHQg Zm9yIHBvaW50ZXIgcmV0dXJuIHR5cGVzLg0KPiA+ID4+ICsNCj4gPiA+PiArIyBOb3Qgc3BlY2lm aWVkLCBidXQgYWxzbyBnb29kIHN0eWxlIHRvIHJlbW92ZSBzcGFjZXMgaW5zaWRlIHBhcmVudGhl c2VzIChPcHRpb25hbCkNCj4gPiA+PiArc3BfY3BhcmVuX29wYXJlbiAgICAgICAgICAgICAgICA9 IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiBiYWNrLXRvLWJhY2sgcGFy ZW50aGVzZXMsIGkuZS4gJykoJyB2cy4gJykNCj4gPiAoJy4NCj4gPiA+PiArc3BfaW5zaWRlX2Zw YXJlbiAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgaW5z aWRlIGZ1bmN0aW9uICcoJyBhbmQgJyknLg0KPiA+ID4+ICtzcF9pbnNpZGVfZnBhcmVucyAgICAg ICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBpbnNpZGUgZW1wdHkg ZnVuY3Rpb24gJygpJy4NCj4gPiA+PiArc3BfaW5zaWRlX3BhcmVuICAgICAgICAgICAgICAgICA9 IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgaW5zaWRlICcoJyBhbmQgJyknLg0KPiA+ ID4+ICtzcF9pbnNpZGVfcGFyZW5fY2FzdCAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9y IHJlbW92ZSBzcGFjZXMgaW5zaWRlIGNhc3QgcGFyZW50aGVzZXMuICcoaW50KXgnDQo+ID4gPj4g K3NwX2luc2lkZV9zcXVhcmUgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVt b3ZlIHNwYWNlIGluc2lkZSBhIG5vbi1lbXB0eSAnWycgYW5kICddJy4NCj4gPiA+PiArc3BfcGFy ZW5fcGFyZW4gICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3Bh Y2UgYmV0d2VlbiBuZXN0ZWQgcGFyZW50aGVzZXMsIGkuZS4gJygoJyB2cy4gJykgKScuDQo+ID4g Pj4gK3NwX3NxdWFyZV9mcGFyZW4gICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3Ig cmVtb3ZlIHNwYWNlIGJldHdlZW4gJ10nIGFuZCAnKCcgd2hlbiBwYXJ0IG9mIGEgZnVuY3Rpb24g Y2FsbC4NCj4gPiA+PiArDQo+ID4gPj4gKyMgNS4yLjIuNyBQdXQgYSBzcGFjZSBiZWZvcmUgYW4g b3BlbiBicmFjZSBpZiBpdCBpcyBub3Qgb24gaXRzIG93biBsaW5lDQo+ID4gPj4gK3NwX2RvX2Jy YWNlX29wZW4gICAgICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNl IGJldHdlZW4gJ2RvJyBhbmQgJ3snLg0KPiA+ID4+ICtzcF9wYXJlbl9icmFjZSAgICAgICAgICAg ICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuICcpJyBhbmQg J3snLg0KPiA+ID4+ICtzcF9zcGFyZW5fYnJhY2UgICAgICAgICAgICAgICAgID0gZm9yY2UgICAg ICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuICcpJyBhbmQgJ3snIG9mIG9mIGNvbnRyb2wg c3RhdGVtZW50cy4NCj4gPiA+PiArDQo+ID4gPj4gKyMgNS4yLjIuOCBEbyBub3QgcHV0IHNwYWNl cyBhcm91bmQgc3RydWN0dXJlIG1lbWJlciBhbmQgcG9pbnRlciBvcGVyYXRvcnMNCj4gPiA+PiAr c3BfYWZ0ZXJfYnlyZWYgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1v dmUgc3BhY2UgYWZ0ZXIgcmVmZXJlbmNlIHNpZ24gJyYnLCBpZiBmb2xsb3dlZCBieSBhIHdvcmQu DQo+ID4gPj4gK3NwX2JlZm9yZV9ieXJlZiAgICAgICAgICAgICAgICAgPSBhZGQgICAgICAgIyBB ZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSBhIHJlZmVyZW5jZSBzaWduICcmJy4NCj4gPiA+PiAr c3BfZGVyZWYgICAgICAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1v dmUgc3BhY2UgYWZ0ZXIgdGhlICcqJyAoZGVyZWZlcmVuY2UpIHVuYXJ5IG9wZXJhdG9yLiBUaGlz DQo+ID4gZG9lcw0KPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMgbm90IGFmZmVjdCB0aGUgc3BhY2luZyBhZnRlciBhICcqJyB0aGF0IGlzIHBhcnQg b2YgYSB0eXBlLg0KPiA+ID4+ICtzcF9tZW1iZXIgICAgICAgICAgICAgICAgICAgICAgID0gcmVt b3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhcm91bmQgdGhlICcuJyBvciAnLT4nIG9wZXJh dG9ycy4NCj4gPiA+PiArDQo+ID4gPj4gKyMgNS4yLjIuOSBEbyBub3QgcHV0IHNwYWNlcyBiZWZv cmUgb3BlbiBicmFja2V0cyBvZiBhcnJheSBzdWJzY3JpcHRzDQo+ID4gPj4gK3NwX2JlZm9yZV9z cXVhcmUgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJl Zm9yZSAnWycgKGV4Y2VwdCAnW10nKS4NCj4gPiA+PiArc3BfYmVmb3JlX3NxdWFyZXMgICAgICAg ICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmVmb3JlICdbXScuDQo+ ID4gPj4gK3NwX2JlZm9yZV92YXJkZWZfc3F1YXJlICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQg b3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSAnWycgZm9yIGEgdmFyaWFibGUgZGVmaW5pdGlvbi4NCj4g PiA+PiArDQo+ID4gPj4gKyMgNS4yLjIuMTAgVXNlIGV4dHJhIHBhcmVudGhlc2VzIHJhdGhlciB0 aGFuIGRlcGVuZGluZyBvbiBpbi1kZXB0aCBrbm93bGVkZ2Ugb2YgdGhlIG9yZGVyIG9mIHByZWNl ZGVuY2Ugb2YgQw0KPiA+ID4+ICttb2RfZnVsbF9wYXJlbl9pZl9ib29sICAgICAgICAgID0gdHJ1 ZSAgICAgICMgV2hldGhlciB0byBmdWxseSBwYXJlbnRoZXNpemUgQm9vbGVhbiBleHByZXNzaW9u cyBpbiAnd2hpbGUnIGFuZCAnaWYnDQo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyBzdGF0ZW1lbnQsIGFzIGluICdpZiAoYSAmJiBiID4gYyknID0+ ICdpZiAoYSAmJiAoYiA+IGMpKScuDQo+ID4gPj4gKw0KPiA+ID4+ICsjIDUuMi4yLjExIEFsaWdu IGEgY29udGludWF0aW9uIGxpbmUgd2l0aCB0aGUgcGFydCBvZiB0aGUgbGluZSB0aGF0IGl0IGNv bnRpbnVlcy4NCj4gPiA+PiArdXNlX2luZGVudF9jb250aW51ZV9vbmx5X29uY2UgICA9IHRydWUN Cj4gPiA+PiArDQo+ID4gPj4gKyMgQWRkaXRpb25hbCAne30nIGJyYWNpbmcgcnVsZXMgKE9wdGlv bmFsKQ0KPiA+ID4+ICsjIE5PVEUgLSBUaGUgc3R5bGUgZ3VpZGUgc3BlY2lmaWVzIHR3byBkaWZm ZXJlbnQgc3R5bGVzIGZvciBicmFjZXMsDQo+ID4gPj4gKyMgc28gdGhlc2UgYXJlIGlnbm9yZWQg Zm9yIG5vdyB0byBhbGxvdyBkZXZlbG9wZXJzIHNvbWUgZmxleGliaWxpdHkuDQo+ID4gPj4gK25s X2FmdGVyX2JyYWNlX2Nsb3NlICAgICAgICAgICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFk ZCBhIG5ld2xpbmUgYWZ0ZXIgJ30nLiBEb2VzIG5vdCBhcHBseSBpZiBmb2xsb3dlZCBieSBhDQo+ ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBuZWNl c3NhcnkgJzsnLg0KPiA+ID4+ICtubF9icmFjZV9lbHNlICAgICAgICAgICAgICAgICAgID0gcmVt b3ZlICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJ30nIGFuZCAnZWxzZScuDQo+ ID4gPj4gK25sX2JyYWNlX3doaWxlICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQg b3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAnfScgYW5kICd3aGlsZScgb2YgJ2RvJyBzdGF0ZW1l bnQuDQo+ID4gPj4gK25sX2RvX2JyYWNlICAgICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAg IyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAnZG8nIGFuZCAneycuDQo+ID4gPj4gK25s X2Vsc2VfYnJhY2UgICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3Zl IG5ld2xpbmUgYmV0d2VlbiAnZWxzZScgYW5kICd7Jy4NCj4gPiA+PiArbmxfZWxzZV9pZiAgICAg ICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3 ZWVuICdlbHNlJyBhbmQgJ2lmJy4NCj4gPiA+PiArbmxfZWxzZWlmX2JyYWNlICAgICAgICAgICAg ICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdlbHNlIGlm JyBhbmQgJ3snLg0KPiA+ID4+ICtubF9lbnVtX2JyYWNlICAgICAgICAgICAgICAgICAgID0gcmVt b3ZlICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJ2VudW0nIGFuZCAneycuDQo+ ID4gPj4gK25sX2ZjYWxsX2JyYWNlICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQg b3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiBhIGZ1bmN0aW9uIGNhbGwncyAnKScgYW5kICd7JywN Cj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGFz IGluICdsaXN0X2Zvcl9lYWNoKGl0ZW0sICZsaXN0KSB7IH0nLg0KPiA+ID4+ICtubF9mb3JfYnJh Y2UgICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5l IGJldHdlZW4gJ2ZvcicgYW5kICd7Jy4NCj4gPiA+PiArbmxfaWZfYnJhY2UgICAgICAgICAgICAg ICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdpZicg YW5kICd7Jy4NCj4gPiA+PiArbmxfc3RydWN0X2JyYWNlICAgICAgICAgICAgICAgICA9IHJlbW92 ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdzdHJ1Y3QgYW5kICd7Jy4NCj4g PiA+PiArbmxfc3dpdGNoX2JyYWNlICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBv ciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdzd2l0Y2gnIGFuZCAneycuDQo+ID4gPj4gK25sX3Vu aW9uX2JyYWNlICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5l d2xpbmUgYmV0d2VlbiAndW5pb24nIGFuZCAneycuDQo+ID4gPj4gK25sX3doaWxlX2JyYWNlICAg ICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2Vl biAnd2hpbGUnIGFuZCAneycuDQo+ID4gPj4gKw0KPiA+ID4+ICsjIEFkZGl0aW9uYWwgd2hpdGVz cGFjZSBydWxlcyAoT3B0aW9uYWwpDQo+ID4gPj4gK3NwX2FmdGVyX3B0cl9zdGFyICAgICAgICAg ICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyIHBvaW50ZXIgc3Rh ciAnKicsIGlmIGZvbGxvd2VkIGJ5IGEgd29yZC4NCj4gPiA+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIFVzZWZ1bCB3aGVuIHBhaXJlZCB3aXRoIGFsaWdu X3Zhcl9kZWZfc3Rhcl9zdHlsZT09Mg0KPiA+ID4+ICtzcF9hZnRlcl9wdHJfc3Rhcl9mdW5jICAg ICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhZnRlciBhIHBvaW50ZXIg c3RhciAnKicsIGlmIGZvbGxvd2VkIGJ5IGENCj4gZnVuY3Rpb24NCj4gPiA+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHByb3RvdHlwZSBvciBmdW5jdGlv biBkZWZpbml0aW9uLg0KPiA+ID4+ICtzcF9hZnRlcl9zZW1pICAgICAgICAgICAgICAgICAgID0g cmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhZnRlciAnOycsIGV4Y2VwdCB3aGVuIGZv bGxvd2VkIGJ5IGEgY29tbWVudC4NCj4gPiA+PiArc3BfYmVmb3JlX2Nhc2VfY29sb24gICAgICAg ICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmVmb3JlIGNhc2UgJzonLg0K PiA+ID4+ICtzcF9iZWZvcmVfcHRyX3N0YXIgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRk IG9yIHJlbW92ZSBzcGFjZSBiZWZvcmUgcG9pbnRlciBzdGFyICcqJy4NCj4gPiA+PiArc3BfYmVm b3JlX3B0cl9zdGFyX2Z1bmMgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3Bh Y2UgYmVmb3JlIGEgcG9pbnRlciBzdGFyICcqJywgaWYgZm9sbG93ZWQgYnkgYQ0KPiBmdW5jdGlv bg0KPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg cHJvdG90eXBlIG9yIGZ1bmN0aW9uIGRlZmluaXRpb24uDQo+ID4gPj4gK3NwX2JlZm9yZV9zZW1p ICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9y ZSAnOycNCj4gPiA+PiArc3BfYmVmb3JlX3NlbWlfZm9yICAgICAgICAgICAgICA9IHJlbW92ZSAg ICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmVmb3JlICc7JyBpbiBub24tZW1wdHkgJ2Zvcicgc3Rh dGVtZW50cy4NCj4gPiA+PiArc3BfYmVmb3JlX3NlbWlfZm9yX2VtcHR5ICAgICAgICA9IGFkZCAg ICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmVmb3JlIGEgc2VtaWNvbG9uIG9mIGFuIGVtcHR5 IHBhcnQgb2YgYSBmb3INCj4gPiBzdGF0ZW1lbnQNCj4gPiA+PiArc3BfYmV0d2Vlbl9wdHJfc3Rh ciAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiBw b2ludGVyIHN0YXJzICcqJy4gKGllLCAnVk9JRCAqKicpDQo+ID4gPj4gK3NwX2JyYWNlX2Nsb3Nl X3doaWxlICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdl ZW4gJ30nIGFuZCAnd2hpbGUnLg0KPiA+ID4+ICsNCj4gPiA+PiArc3BfYWZ0ZXJfY2FzdCAgICAg ICAgICAgICAgICAgICA9IHJlbW92ZQ0KPiA+ID4+ICtzcF9hZnRlcl90eXBlICAgICAgICAgICAg ICAgICAgID0gYWRkDQo+ID4gPj4gK3NwX2JhbGFuY2VfbmVzdGVkX3BhcmVucyAgICAgICAgPSBm YWxzZQ0KPiA+ID4+ICtzcF9iZWZvcmVfbmxfY29udCAgICAgICAgICAgICAgID0gYWRkDQo+ID4g Pj4gK3NwX2JlZm9yZV9zcXVhcmVfYXNtX2Jsb2NrICAgICAgPSBpZ25vcmUNCj4gPiA+PiArc3Bf YmVmb3JlX3VubmFtZWRfYnlyZWYgICAgICAgICA9IGFkZA0KPiA+ID4+ICtzcF9icmFjZV9icmFj ZSAgICAgICAgICAgICAgICAgID0gaWdub3JlDQo+ID4gPj4gK3NwX2JyYWNlX2Vsc2UgICAgICAg ICAgICAgICAgICAgPSBmb3JjZQ0KPiA+ID4+ICtzcF9icmFjZV90eXBlZGVmICAgICAgICAgICAg ICAgID0gYWRkDQo+ID4gPj4gK3NwX2Nhc2VfbGFiZWwgICAgICAgICAgICAgICAgICAgPSBmb3Jj ZQ0KPiA+ID4+ICtzcF9jbXRfY3BwX2RveHlnZW4gICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+ID4+ ICtzcF9jb25kX2NvbG9uICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ID4gPj4gK3NwX2NvbmRf cXVlc3Rpb24gICAgICAgICAgICAgICAgPSBhZGQNCj4gPiA+PiArc3BfY3BwX2Nhc3RfcGFyZW4g ICAgICAgICAgICAgICA9IGZvcmNlDQo+ID4gPj4gK3NwX2Vsc2VfYnJhY2UgICAgICAgICAgICAg ICAgICAgPSBmb3JjZQ0KPiA+ID4+ICtzcF9lbmRpZl9jbXQgICAgICAgICAgICAgICAgICAgID0g Zm9yY2UNCj4gPiA+PiArc3BfZW51bV9hc3NpZ24gICAgICAgICAgICAgICAgICA9IGFkZA0KPiA+ ID4+ICtzcF9pbnNpZGVfYnJhY2VzICAgICAgICAgICAgICAgID0gZm9yY2UNCj4gPiA+PiArc3Bf aW5zaWRlX2JyYWNlc19lbXB0eSAgICAgICAgICA9IGZvcmNlDQo+ID4gPj4gK3NwX2luc2lkZV9i cmFjZXNfZW51bSAgICAgICAgICAgPSBmb3JjZQ0KPiA+ID4+ICtzcF9pbnNpZGVfYnJhY2VzX3N0 cnVjdCAgICAgICAgID0gZm9yY2UNCj4gPiA+PiArc3BfcHBfY29uY2F0ICAgICAgICAgICAgICAg ICAgICA9IGFkZA0KPiA+ID4+ICtzcF9wcF9zdHJpbmdpZnkgICAgICAgICAgICAgICAgID0gYWRk DQo+ID4gPj4gK3NwX3JldHVybl9wYXJlbiAgICAgICAgICAgICAgICAgPSBhZGQNCj4gPiA+PiAr c3Bfc3BlY2lhbF9zZW1pICAgICAgICAgICAgICAgICA9IGZvcmNlDQo+ID4gPj4gK3NwX3doaWxl X3BhcmVuX29wZW4gICAgICAgICAgICAgPSBmb3JjZQ0KPiA+ID4+ICsNCj4gPiA+PiArIyBBZGRp dGlvbmFsIEluZGVudGF0aW9uIFJ1bGVzDQo+ID4gPj4gK2luZGVudF9hY2Nlc3Nfc3BlYyAgICAg ICAgICAgICAgPSAxDQo+ID4gPj4gK2luZGVudF9hY2Nlc3Nfc3BlY19ib2R5ICAgICAgICAgPSBm YWxzZQ0KPiA+ID4+ICtpbmRlbnRfYWxpZ25fYXNzaWduICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+ ID4+ICtpbmRlbnRfYWxpZ25fc3RyaW5nICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+ID4+ICtpbmRl bnRfYm9vbF9wYXJlbiAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+ID4+ICtpbmRlbnRfYnJhY2Vf cGFyZW50ICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiAraW5kZW50X2JyYWNlcyAgICAgICAg ICAgICAgICAgICA9IGZhbHNlDQo+ID4gPj4gK2luZGVudF9icmFjZXNfbm9fY2xhc3MgICAgICAg ICAgPSBmYWxzZQ0KPiA+ID4+ICtpbmRlbnRfYnJhY2VzX25vX2Z1bmMgICAgICAgICAgID0gdHJ1 ZQ0KPiA+ID4+ICtpbmRlbnRfYnJhY2VzX25vX3N0cnVjdCAgICAgICAgID0gZmFsc2UNCj4gPiA+ PiAraW5kZW50X2NsYXNzICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPj4gK2luZGVu dF9jbGFzc19jb2xvbiAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ID4+ICtpbmRlbnRfY210X3dp dGhfdGFicyAgICAgICAgICAgID0gZmFsc2UgICAgICAgICAjIFdoZXRoZXIgdG8gaW5kZW50IGNv bW1lbnRzIHRoYXQgYXJlIG5vdCBhdCBhIGJyYWNlIGxldmVsIHdpdGggdGFicw0KPiA+IG9uDQo+ ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg YSB0YWJzdG9wLiBSZXF1aXJlcyBpbmRlbnRfd2l0aF90YWJzPTIuIElmIGZhbHNlLCB3aWxsIHVz ZSBzcGFjZXMuDQo+ID4gPj4gK2luZGVudF9jb2wxX2NvbW1lbnQgICAgICAgICAgICAgPSB0cnVl DQo+ID4gPj4gK2luZGVudF9jb2wxX211bHRpX3N0cmluZ19saXRlcmFsPSB0cnVlDQo+ID4gPj4g K2luZGVudF9jb21tYV9wYXJlbiAgICAgICAgICAgICAgPSB0cnVlDQo+ID4gPj4gK2luZGVudF9l bHNlX2lmICAgICAgICAgICAgICAgICAgPSB0cnVlDQo+ID4gPj4gK2luZGVudF9leHRlcm4gICAg ICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ID4+ICtpbmRlbnRfZmlyc3RfYm9vbF9leHByICAg ICAgICAgID0gdHJ1ZQ0KPiA+ID4+ICsNCj4gPiA+PiAraW5kZW50X2Z1bmNfZGVmX3BhcmFtX3Bh cmVuX3Bvc190aHJlc2hvbGQgPSAwDQo+ID4gPj4gK2luZGVudF9mdW5jX3BhcmFtX2RvdWJsZSAg ICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiAraW5kZW50X2Z1bmNfcHJvdG9fcGFyYW0g ICAgICAgICAgICAgICAgICAgPSB0cnVlDQo+ID4gPj4gK2luZGVudF9pZ25vcmVfYXNtX2Jsb2Nr ICAgICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+ID4+ICtpbmRlbnRfbGFiZWwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA9IDENCj4gPiA+PiAraW5kZW50X21lbWJlciAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPSAyDQo+ID4gPj4gK2luZGVudF9uYW1lc3BhY2UgICAgICAgICAg ICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiAraW5kZW50X3BhcmFtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPSAyDQo+ID4gPj4gK2luZGVudF9wYXJlbl9ubCAgICAgICAgICAg ICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiAraW5kZW50X3BhcmVuX29wZW5fYnJhY2Ug ICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ID4+ICtpbmRlbnRfcHJlc2VydmVfc3FsICAg ICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPj4gK2luZGVudF9yZWxhdGl2ZV9zaW5n bGVfbGluZV9jb21tZW50cyAgICAgID0gZmFsc2UNCj4gPiA+PiAraW5kZW50X3NpbmdfbGluZV9j b21tZW50cyAgICAgICAgICAgICAgICAgPSAwDQo+ID4gPj4gK2luZGVudF9zaW5nbGVfbmV3bGlu ZXMgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiAraW5kZW50X3NxdWFyZV9ubCAg ICAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ID4+ICtpbmRlbnRfc3dpdGNoX2Nh c2UgICAgICAgICAgICAgICAgICAgICAgICA9IDINCj4gPiA+PiAraW5kZW50X3RlbXBsYXRlX3Bh cmFtICAgICAgICAgICAgICAgICAgICAgPSB0cnVlDQo+ID4gPj4gK2luZGVudF92YXJfZGVmX2Js ayAgICAgICAgICAgICAgICAgICAgICAgID0gMA0KPiA+ID4+ICtpbmRlbnRfdmFyX2RlZl9jb250 ICAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPj4gKw0KPiA+ID4+ICsjIFRpZHkt dXAgcnVsZXMgKE9wdGlvbmFsKQ0KPiA+ID4+ICttb2RfbW92ZV9jYXNlX2JyZWFrICAgICAgICAg ICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBtb3ZlIGEgJ2JyZWFrJyB0aGF0IGFwcGVhcnMg YWZ0ZXIgYSBmdWxseSBicmFjZWQgJ2Nhc2UnDQo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyBiZWZvcmUgdGhlIGNsb3NlIGJyYWNlLCBhcyBpbiAn Y2FzZSBYOiB7IC4uLiB9IGJyZWFrOycgPT4NCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjICdjYXNlIFg6IHsgLi4uIGJyZWFrOyB9Jy4NCj4gPiA+ PiArbW9kX3Bhd25fc2VtaWNvbG9uICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPj4gK21vZF9y ZW1vdmVfZW1wdHlfcmV0dXJuICAgICAgICAgPSBmYWxzZSAgICAgIyBXaGV0aGVyIHRvIHJlbW92 ZSBhIHZvaWQgJ3JldHVybjsnIHRoYXQgYXBwZWFycyBhcyB0aGUgbGFzdCBzdGF0ZW1lbnQNCj4g PiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGluIGEg ZnVuY3Rpb24uDQo+ID4gPj4gK21vZF9yZW1vdmVfZXh0cmFfc2VtaWNvbG9uICAgICAgPSB0cnVl DQo+ID4gPj4gK21vZF9zb3J0X2ltcG9ydCAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ID4+ ICttb2Rfc29ydF9pbmNsdWRlICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiArbW9kX3Nv cnRfdXNpbmcgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPj4gK25sX2FmdGVyX2Nhc2Ug ICAgICAgICAgICAgICAgICAgPSBmYWxzZSAgICAgIyBXaGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUg YWZ0ZXIgYSAnY2FzZScgc3RhdGVtZW50Lg0KPiA+ID4+ICtubF9lbmRfb2ZfZmlsZSAgICAgICAg ICAgICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGF0IHRoZSBlbmQg b2YgdGhlIGZpbGUuDQo+ID4gPj4gK25sX2VuZF9vZl9maWxlX21pbiAgICAgICAgICAgICAgPSAx ICAgICAgICAgIyBUaGUgbWluaW11bSBudW1iZXIgb2YgbmV3bGluZXMgYXQgdGhlIGVuZCBvZiB0 aGUgZmlsZQ0KPiA+ID4+ICtubF9tYXggICAgICAgICAgICAgICAgICAgICAgICAgID0gMiAgICAg ICAgICMgVGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbnNlY3V0aXZlIG5ld2xpbmVzICgzID0gMiBi bGFuayBsaW5lcykuDQo+ID4gPj4gK25sX3N0YXJ0X29mX2ZpbGUgICAgICAgICAgICAgICAgPSBy ZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmVzIGF0IHRoZSBzdGFydCBvZiB0aGUgZmls ZS4NCj4gPiA+PiArDQo+ID4gPj4gKyMgQ29kZSBhbGlnbm1lbnQgcnVsZXMgKE9wdGlvbmFsKQ0K PiA+ID4+ICthbGlnbl9hc21fY29sb24gICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiAr YWxpZ25fYXNzaWduX3NwYW4gICAgICAgICAgICAgICA9IDEgICAgICAgICAjIFRoZSBzcGFuIGZv ciBhbGlnbmluZyBvbiAnPScgaW4gYXNzaWdubWVudHMuDQo+ID4gPj4gK2FsaWduX2Fzc2lnbl90 aHJlc2ggICAgICAgICAgICAgPSA0DQo+ID4gPj4gK2FsaWduX2VkazJfc3R5bGUgICAgICAgICAg ICAgICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFwcGx5IGVkazItc3BlY2lmaWMgYWxpZ25t ZW50IGZvcm1hdHRpbmcNCj4gPiA+PiArYWxpZ25fZW51bV9lcXVfc3BhbiAgICAgICAgICAgICA9 IDEgICAgICAgICAjIFRoZSBzcGFuIGZvciBhbGlnbmluZyBvbiAnPScgaW4gZW51bXMuDQo+ID4g Pj4gK2FsaWduX2Z1bmNfcGFyYW1zICAgICAgICAgICAgICAgPSB0cnVlICAgICAgIyBXaGV0aGVy IHRvIGFsaWduIHZhcmlhYmxlIGRlZmluaXRpb25zIGluIHByb3RvdHlwZXMgYW5kIGZ1bmN0aW9u cy4NCj4gPiA+PiArYWxpZ25fZnVuY19wYXJhbXNfZ2FwICAgICAgICAgICA9IDINCj4gPiA+PiAr YWxpZ25fZnVuY19wYXJhbXNfc3BhbiAgICAgICAgICA9IDIgICAgICAgICAjIFRoZSBzcGFuIGZv ciBhbGlnbmluZyBwYXJhbWV0ZXIgZGVmaW5pdGlvbnMgaW4gZnVuY3Rpb24gb24gcGFyYW1ldGVy DQo+ID4gbmFtZS4NCj4gPiA+PiArYWxpZ25fZnVuY19wYXJhbXNfdGhyZXNoICAgICAgICA9IDAN Cj4gPiA+PiArYWxpZ25fZnVuY19wcm90b19zcGFuICAgICAgICAgICA9IDANCj4gPiA+PiArYWxp Z25fa2VlcF90YWJzICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPj4gK2FsaWduX2xlZnRf c2hpZnQgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ID4+ICthbGlnbl9taXhfdmFyX3Byb3Rv ICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiArYWxpZ25fbmxfY29udCAgICAgICAgICAgICAg ICAgICA9IGZhbHNlDQo+ID4gPj4gK2FsaWduX29jX2RlY2xfY29sb24gICAgICAgICAgICAgPSBm YWxzZQ0KPiA+ID4+ICthbGlnbl9vbl9vcGVyYXRvciAgICAgICAgICAgICAgID0gZmFsc2UNCj4g PiA+PiArYWxpZ25fb25fdGFic3RvcCAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPj4gK2Fs aWduX3BwX2RlZmluZV9nYXAgICAgICAgICAgICAgPSAyDQo+ID4gPj4gK2FsaWduX3BwX2RlZmlu ZV9zcGFuICAgICAgICAgICAgPSAxDQo+ID4gPj4gK2FsaWduX3JpZ2h0X2NtdF9hdF9jb2wgICAg ICAgICAgPSAwICAgICAgICAgIyBBbGlnbiB0cmFpbGluZyBjb21tZW50IGF0IG9yIGJleW9uZCBj b2x1bW4gTjsgJ3B1bGxzIGluJyBjb21tZW50cyBhcw0KPiA+ID4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYSBib251cyBzaWRlIGVmZmVjdCAoMD1pZ25v cmUpDQo+ID4gPj4gK2FsaWduX3JpZ2h0X2NtdF9nYXAgICAgICAgICAgICAgPSAwICAgICAgICAg IyBJZiBhIHRyYWlsaW5nIGNvbW1lbnQgaXMgbW9yZSB0aGFuIHRoaXMgbnVtYmVyIG9mIGNvbHVt bnMgYXdheSBmcm9tDQo+IHRoZQ0KPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMgdGV4dCBpdCBmb2xsb3dzLA0KPiA+ID4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaXQgd2lsbCBxdWFsaWZ5IGZvciBiZWlu ZyBhbGlnbmVkLiBUaGlzIGhhcyB0byBiZSA+IDAgdG8gZG8gYW55dGhpbmcuDQo+ID4gPj4gK2Fs aWduX3JpZ2h0X2NtdF9taXggICAgICAgICAgICAgPSBmYWxzZSAgICAgIyBJZiBhbGlnbmluZyBj b21tZW50cywgbWl4IHdpdGggY29tbWVudHMgYWZ0ZXIgJ30nIGFuZCAjZW5kaWYgd2l0aCBsZXNz DQo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB0 aGFuIDMgc3BhY2VzIGJlZm9yZSB0aGUgY29tbWVudA0KPiA+ID4+ICthbGlnbl9yaWdodF9jbXRf c2FtZV9sZXZlbCAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBvbmx5IGFsaWduIHRyYWls aW5nIGNvbW1lbnRzIHRoYXQgYXJlIGF0IHRoZSBzYW1lIGJyYWNlDQo+ID4gbGV2ZWwuDQo+ID4g Pj4gK2FsaWduX3JpZ2h0X2NtdF9zcGFuICAgICAgICAgICAgPSAyICAgICAgICAgIyBUaGUgc3Bh biBmb3IgYWxpZ25pbmcgY29tbWVudHMgdGhhdCBlbmQgbGluZXMuDQo+ID4gPj4gK2FsaWduX3Nh bWVfZnVuY19jYWxsX3BhcmFtcyAgICAgPSBmYWxzZQ0KPiA+ID4+ICthbGlnbl9zaW5nbGVfbGlu ZV9icmFjZSAgICAgICAgID0gdHJ1ZQ0KPiA+ID4+ICthbGlnbl9zaW5nbGVfbGluZV9mdW5jICAg ICAgICAgID0gdHJ1ZQ0KPiA+ID4+ICthbGlnbl9zdHJ1Y3RfaW5pdF9zcGFuICAgICAgICAgID0g MSAgICAgICAgICMgVGhlIHNwYW4gZm9yIGFsaWduaW5nIHN0cnVjdCBpbml0aWFsaXplciB2YWx1 ZXMuDQo+ID4gPj4gK2FsaWduX3R5cGVkZWZfYW1wX3N0eWxlICAgICAgICAgPSAxDQo+ID4gPj4g K2FsaWduX3R5cGVkZWZfZnVuYyAgICAgICAgICAgICAgPSAxICAgICAgICAgIyBIb3cgdG8gYWxp Z24gdHlwZWRlZidkIGZ1bmN0aW9ucyB3aXRoIG90aGVyIHR5cGVkZWZzLg0KPiA+ID4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKDA6IE5vIGFsaWduLCAx OiBBbGlnbiBvcGVuIHBhcmFudGhlc2lzLCAyOiBBbGlnbiBmdW5jdGlvbiB0eXBlIG5hbWUpDQo+ ID4gPj4gK2FsaWduX3R5cGVkZWZfZ2FwICAgICAgICAgICAgICAgPSAyDQo+ID4gPj4gK2FsaWdu X3R5cGVkZWZfc3BhbiAgICAgICAgICAgICAgPSAxICAgICAgICAgIyBUaGUgc3BhbiBmb3IgYWxp Z25pbmcgc2luZ2xlLWxpbmUgdHlwZWRlZnMuDQo+ID4gPj4gK2FsaWduX3R5cGVkZWZfc3Rhcl9z dHlsZSAgICAgICAgPSAxDQo+ID4gPj4gK2FsaWduX3Zhcl9kZWZfYW1wX3N0eWxlICAgICAgICAg PSAxDQo+ID4gPj4gK2FsaWduX3Zhcl9kZWZfYXR0cmlidXRlICAgICAgICAgPSB0cnVlDQo+ID4g Pj4gK2FsaWduX3Zhcl9kZWZfY29sb24gICAgICAgICAgICAgPSB0cnVlICAgICAgIyBXaGV0aGVy IHRvIGFsaWduIHRoZSBjb2xvbiBpbiBzdHJ1Y3QgYml0IGZpZWxkcy4NCj4gPiA+PiArYWxpZ25f dmFyX2RlZl9nYXAgICAgICAgICAgICAgICA9IDIgICAgICAgICAjIFRoZSBnYXAgKG1pbmltdW0g c3BhY2luZyBmb3IgYWxpZ25lZCBpdGVtcykgZm9yIHZhcmlhYmxlIGRlZmluaXRpb25zLg0KPiA+ ID4+ICthbGlnbl92YXJfZGVmX2lubGluZSAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiArYWxp Z25fdmFyX2RlZl9zcGFuICAgICAgICAgICAgICA9IDEgICAgICAgICAjIFRoZSBzcGFuIChsaW5l cyBuZWVkZWQgdG8gYWxpZ24pIGZvciBhbGlnbmluZyB2YXJpYWJsZSBkZWZpbml0aW9ucy4NCj4g PiA+PiArYWxpZ25fdmFyX2RlZl9zdGFyX3N0eWxlICAgICAgICA9IDEgICAgICAgICAjIEhvdyB0 byBjb25zaWRlciAob3IgdHJlYXQpIHRoZSAnKicgaW4gdGhlIGFsaWdubWVudCBvZiB2YXJpYWJs ZQ0KPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg ZGVmaW5pdGlvbnMuDQo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIyAwOiBQYXJ0IG9mIHRoZSB0eXBlICAgICAndm9pZCAqICAgZm9vOycgKGRlZmF1 bHQpDQo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyAxOiBQYXJ0IG9mIHRoZSB2YXJpYWJsZSAndm9pZCAgICAgKmZvbzsnDQo+ID4gPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAyOiBEYW5nbGluZyAgICAg ICAgICAgICAndm9pZCAgICAqZm9vOycNCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjIChOb3RlIC0gc2hvdWxkIGFsc28gc2V0IHNwX2FmdGVyX3B0 cl9zdGFyPXJlbW92ZSkNCj4gPiA+PiArYWxpZ25fdmFyX3N0cnVjdF9nYXAgICAgICAgICAgICA9 IDQNCj4gPiA+PiArYWxpZ25fdmFyX3N0cnVjdF9zcGFuICAgICAgICAgICA9IDggICAgICAgICAj IFRoZSBzcGFuIGZvciBhbGlnbmluZyBzdHJ1Y3QvdW5pb24gbWVtYmVyIGRlZmluaXRpb25zLg0K PiA+ID4+ICthbGlnbl92YXJfc3RydWN0X3RocmVzaCAgICAgICAgID0gMA0KPiA+ID4+ICthbGln bl93aXRoX3RhYnMgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiArDQo+ID4gPj4gKyMg Q29tbWVudCBmb3JtYXR0aW5nDQo+ID4gPj4gK2NtdF9hbGlnbl9kb3h5Z2VuX2phdmFkb2NfdGFn cyAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFsaWduIGRveHlnZW4gamF2YWRvYy1zdHlsZSB0 YWdzICgnQHBhcmFtJywgJ0ByZXR1cm4nLA0KPiBldGMuKQ0KPiA+ID4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVE9ETzogRWF0cyAnWycgaW4gJ1tpbl0n DQo+ID4gPj4gK2NtdF9jX2dyb3VwICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ID4+ ICtjbXRfY19ubF9lbmQgICAgICAgICAgICAgICAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0 byBhZGQgYSBuZXdsaW5lIGJlZm9yZSB0aGUgY2xvc2luZyAnKi8nIG9mIHRoZSBjb21iaW5lZCBj LQ0KPiA+IGNvbW1lbnQuDQo+ID4gPj4gK2NtdF9jX25sX3N0YXJ0ICAgICAgICAgICAgICAgICAg PSB0cnVlDQo+ID4gPj4gK2NtdF9jcHBfZ3JvdXAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0K PiA+ID4+ICtjbXRfY3BwX25sX2VuZCAgICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+ID4+ICtj bXRfY3BwX25sX3N0YXJ0ICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+ID4+ICtjbXRfY3BwX3Rv X2MgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiArY210X2luZGVudF9tdWx0aSAg ICAgICAgICAgICAgICA9IGZhbHNlICAgICAjIFdoZXRoZXIgdG8gYXBwbHkgY2hhbmdlcyB0byBt dWx0aS1saW5lIGNvbW1lbnRzLCBpbmNsdWRpbmcgY210X3dpZHRoLA0KPiA+ID4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMga2V5d29yZCBzdWJzdGl0dXRp b24gYW5kIGxlYWRpbmcgY2hhcnMuDQo+ID4gPj4gK2NtdF9pbnNlcnRfYmVmb3JlX3ByZXByb2Mg ICAgICAgPSBmYWxzZQ0KPiA+ID4+ICtjbXRfaW5zZXJ0X2ZpbGVfaGVhZGVyICAgICAgICAgID0g ZGVmYXVsdF9maWxlX2hlYWRlci50eHQNCj4gPiA+PiArY210X2luc2VydF9mdW5jX2hlYWRlciAg ICAgICAgICA9IGRlZmF1bHRfZnVuY3Rpb25faGVhZGVyLnR4dA0KPiA+ID4+ICtjbXRfbXVsdGlf Y2hlY2tfbGFzdCAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiArY210X211bHRpX2ZpcnN0X2xl bl9taW5pbXVtICAgICA9IDINCj4gPiA+PiArY210X3JlZmxvd19tb2RlICAgICAgICAgICAgICAg ICA9IDEgICAgICAgICAjIEhvdyB0byByZWZsb3cgY29tbWVudHMuDQo+ID4gPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAoMDpObyByZWZsb3csIDE6Tm8g dG91Y2hpbmcgYXQgYWxsLCAyOiBGdWxsIHJlZmxvdykNCj4gPiA+PiArY210X3NwX2FmdGVyX3N0 YXJfY29udCAgICAgICAgICA9IDAgICAgICAgICAjIFRoZSBudW1iZXIgb2Ygc3BhY2VzIHRvIGlu c2VydCBhZnRlciB0aGUgc3RhciBvbiBzdWJzZXF1ZW50IGNvbW1lbnQNCj4gPiBsaW5lcy4NCj4g PiA+PiArY210X3NwX2JlZm9yZV9zdGFyX2NvbnQgICAgICAgICA9IDAgICAgICAgICAjIFRoZSBu dW1iZXIgb2Ygc3BhY2VzIHRvIGluc2VydCBhdCB0aGUgc3RhcnQgb2Ygc3Vic2VxdWVudCBjb21t ZW50DQo+IGxpbmVzLg0KPiA+ID4+ICtjbXRfc3Rhcl9jb250ICAgICAgICAgICAgICAgICAgID0g ZmFsc2UgICAgICMgV2hldGhlciB0byBwdXQgYSBzdGFyIG9uIHN1YnNlcXVlbnQgY29tbWVudCBs aW5lcy4NCj4gPiA+PiArY210X3dpZHRoICAgICAgICAgICAgICAgICAgICAgICA9IDEyMCAgICAg ICAjIFRyeSB0byB3cmFwIGNvbW1lbnRzIGF0IE4gY29sdW1ucy4NCj4gPiA+PiArc3BfY210X2Nw cF9zdGFydCAgICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2Ug YWZ0ZXIgdGhlIG9wZW5pbmcgb2YgYSBDKysgY29tbWVudCwgYXMgaW4NCj4gPiA+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICcvLyA8aGVyZT4gQScuICBO T1RFOiBCcmVha3MgaW5kZW50YXRpb24gd2l0aGluIGNvbW1lbnRzLg0KPiA+ID4+ICsNCj4gPiA+ PiArIyBGdW5jdGlvbiBkZWZpbml0aW9ucyAvIGRlY2xhcmF0aW9ucw0KPiA+ID4+ICtpbmRlbnRf ZnVuY19jYWxsX3BhcmFtICAgICAgICAgID0gZmFsc2UgICAgICMgV2hldGhlciB0byBpbmRlbnQg Y29udGludWVkIGZ1bmN0aW9uIGNhbGwgcGFyYW1ldGVycyBvbmUgaW5kZW50IGxldmVsLA0KPiA+ ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcmF0aGVy IHRoYW4gYWxpZ25pbmcgcGFyYW1ldGVycyB1bmRlciB0aGUgb3BlbiBwYXJlbnRoZXNpcy4NCj4g PiA+PiAraW5kZW50X2Z1bmNfY2xhc3NfcGFyYW0gICAgICAgICA9IGZhbHNlICAgICAjIFdoZXRo ZXIgdG8gaW5kZW50IGNvbnRpbnVlZCBmdW5jdGlvbiBjYWxsIGRlY2xhcmF0aW9uIG9uZSBpbmRl bnQNCj4gbGV2ZWwsDQo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIyByYXRoZXIgdGhhbiBhbGlnbmluZyBwYXJhbWV0ZXJzIHVuZGVyIHRoZSBvcGVu IHBhcmVudGhlc2lzLg0KPiA+ID4+ICtpbmRlbnRfZnVuY19jdG9yX3Zhcl9wYXJhbSAgICAgID0g ZmFsc2UgICAgICMgV2hldGhlciB0byBpbmRlbnQgY29udGludWVkIGNsYXNzIHZhcmlhYmxlIGNv bnN0cnVjdG9ycyBvbmUgaW5kZW50DQo+ID4gbGV2ZWwsDQo+ID4gPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyByYXRoZXIgdGhhbiBhbGlnbmluZyBwYXJh bWV0ZXJzIHVuZGVyIHRoZSBvcGVuIHBhcmVudGhlc2lzLg0KPiA+ID4+ICtpbmRlbnRfZnVuY19k ZWZfcGFyYW0gICAgICAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBpbmRlbnQgY29udGlu dWVkIGZ1bmN0aW9uIGRlZmluaXRpb24gcGFyYW1ldGVycyBvbmUgaW5kZW50DQo+ID4gPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBsZXZlbCwgcmF0aGVy IHRoYW4gYWxpZ25pbmcgcGFyYW1ldGVycyB1bmRlciB0aGUgb3BlbiBwYXJlbnRoZXNpcy4NCj4g PiA+PiArbmxfZmRlZl9icmFjZSAgICAgICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBv ciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuIGZ1bmN0aW9uIHNpZ25hdHVyZSBhbmQgJ3snLg0KPiA+ ID4+ICtubF9mdW5jX2NhbGxfZW5kX211bHRpX2xpbmUgICAgID0gdHJ1ZSAgICAgICMgV2hldGhl ciB0byBhZGQgYSBuZXdsaW5lIGJlZm9yZSAnKScgaW4gYSBmdW5jdGlvbiBjYWxsIGlmICcoJyBh bmQgJyknDQo+ID4gYXJlDQo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIyBpbiBkaWZmZXJlbnQgbGluZXMuDQo+ID4gPj4gK25sX2Z1bmNfY2FsbF9w YXJlbiAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0 d2VlbiBhIGZ1bmN0aW9uIG5hbWUgYW5kIHRoZSBvcGVuaW5nICcoJyBpbg0KPiB0aGUNCj4gPiA+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGNhbGwuDQo+ ID4gPj4gK25sX2Z1bmNfY2FsbF9zdGFydF9tdWx0aV9saW5lICAgPSB0cnVlICAgICAgIyBXaGV0 aGVyIHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIgJygnIGluIGEgZnVuY3Rpb24gY2FsbCBpZiAnKCcg YW5kICcpJw0KPiBhcmUNCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIGluIGRpZmZlcmVudCBsaW5lcy4NCj4gPiA+PiArbmxfZnVuY19kZWNsX2Fy Z3MgICAgICAgICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBhZnRl ciBlYWNoICcsJyBpbiBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLg0KPiA+ID4+ICtubF9mdW5jX2Rl Y2xfZW1wdHkgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5l IGJldHdlZW4gJygpJyBpbiBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLg0KPiA+ID4+ICtubF9mdW5j X2RlZl9hcmdzICAgICAgICAgICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBuZXds aW5lIGFmdGVyIGVhY2ggJywnIGluIGEgZnVuY3Rpb24gZGVmaW5pdGlvbi4NCj4gPiA+PiArbmxf ZnVuY19kZWZfZW1wdHkgICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUg bmV3bGluZSBiZXR3ZWVuICcoKScgaW4gYSBmdW5jdGlvbiBkZWZpbml0aW9uLg0KPiA+ID4+ICtu bF9mdW5jX2RlZl9wYXJlbiAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92 ZSBuZXdsaW5lIGJldHdlZW4gYSBmdW5jdGlvbiBuYW1lIGFuZCB0aGUgb3BlbmluZyAnKCcNCj4g PiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGluIHRo ZSBkZWZpbml0aW9uLg0KPiA+ID4+ICtubF9mdW5jX3BhcmVuICAgICAgICAgICAgICAgICAgID0g cmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gYSBmdW5jdGlvbiBuYW1l IGFuZCB0aGUgb3BlbmluZyAnKCcgaW4NCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjIHRoZSBkZWNsYXJhdGlvbi4NCj4gPiA+PiArbmxfZnVuY190 eXBlX25hbWUgICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgbmV3bGlu ZSBiZXR3ZWVuIHJldHVybiB0eXBlIGFuZCBmdW5jdGlvbiBuYW1lIGluIGENCj4gPiBmdW5jdGlv bg0KPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg ZGVmaW5pdGlvbi4NCj4gPiA+PiArc3BfZnBhcmVuX2JyYWNlICAgICAgICAgICAgICAgICA9IGZv cmNlICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnKScgYW5kICd7JyBvZiBmdW5j dGlvbi4NCj4gPiA+PiArdXNlX2luZGVudF9mdW5jX2NhbGxfcGFyYW0gICAgICA9IHRydWUgICAg ICAjIGluZGVudF9mdW5jX2NhbGxfcGFyYW0gd2lsbCBiZSB1c2VkDQo+ID4gPj4gKw0KPiA+ID4+ ICsjIEFkZGl0aW9uYWwgTmV3bGluZSBSdWxlcw0KPiA+ID4+ICtubF9hZnRlcl9icmFjZV9vcGVu ICAgICAgICAgICAgICAgICAgICAgICAgICA9IHRydWUgICAgICMgV2hldGhlciB0byBhZGQgYSBu ZXdsaW5lIGFmdGVyICd7Jy4gVGhpcyBhbHNvIGFkZHMgYQ0KPiBuZXdsaW5lDQo+ID4gPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBi ZWZvcmUgdGhlIG1hdGNoaW5nICd9Jy4NCj4gPiA+PiArbmxfYWZ0ZXJfYnJhY2Vfb3Blbl9jbXQg ICAgICAgICAgICAgICAgICAgICAgPSB0cnVlICAgICAjIFdoZXRoZXIgdG8gYWRkIGEgbmV3bGlu ZSBiZXR3ZWVuIHRoZSBvcGVuIGJyYWNlIGFuZCBhDQo+ID4gPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB0cmFpbGluZyBzaW5nbGUt bGluZSBjb21tZW50Lg0KPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICMgUmVxdWlyZXMgbmxfYWZ0ZXJfYnJhY2Vfb3BlbiA9IHRy dWUuDQo+ID4gPj4gK25sX2FmdGVyX2RvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ID0gYWRkICAgICAgIyBBZGQgb3IgcmVtb3ZlIGJsYW5rIGxpbmUgYWZ0ZXIgJ2RvL3doaWxlJyBz dGF0ZW1lbnQuDQo+ID4gPj4gK25sX2FmdGVyX2ZvciAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgID0gYWRkICAgICAgIyBBZGQgb3IgcmVtb3ZlIGJsYW5rIGxpbmUgYWZ0ZXIgJ2Zvcicg c3RhdGVtZW50Lg0KPiA+ID4+ICtubF9hZnRlcl9mdW5jX2JvZHkgICAgICAgICAgICAgICAgICAg ICAgICAgICA9IDIgICAgICAgICMgVGhlIG51bWJlciBvZiBuZXdsaW5lcyBhZnRlciAnfScgb2Yg YSBtdWx0aS1saW5lIGZ1bmN0aW9uDQo+ID4gYm9keQ0KPiA+ID4+ICtubF9hZnRlcl9mdW5jX2Jv ZHlfb25lX2xpbmVyICAgICAgICAgICAgICAgICA9IDINCj4gPiA+PiArbmxfYWZ0ZXJfZnVuY19w cm90byAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyDQo+ID4gPj4gK25sX2FmdGVyX2Z1bmNf cHJvdG9fZ3JvdXAgICAgICAgICAgICAgICAgICAgID0gMg0KPiA+ID4+ICtubF9hZnRlcl9pZiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGFkZA0KPiA+ID4+ICtubF9hZnRlcl9t dWx0aWxpbmVfY29tbWVudCAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPj4gK25sX2Fm dGVyX3JldHVybiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiAr bmxfYWZ0ZXJfc3RydWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyDQo+ID4gPj4g K25sX2FmdGVyX3N3aXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ID4g Pj4gK25sX2FmdGVyX3ZicmFjZV9jbG9zZSAgICAgICAgICAgICAgICAgICAgICAgID0gdHJ1ZQ0K PiA+ID4+ICtubF9hZnRlcl92YnJhY2Vfb3BlbiAgICAgICAgICAgICAgICAgICAgICAgICA9IHRy dWUNCj4gPiA+PiArbmxfYWZ0ZXJfdmJyYWNlX29wZW5fZW1wdHkgICAgICAgICAgICAgICAgICAg PSB0cnVlDQo+ID4gPj4gK25sX2FmdGVyX3doaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgID0gYWRkDQo+ID4gPj4gK25sX2Fzc2lnbl9sZWF2ZV9vbmVfbGluZXJzICAgICAgICAgICAg ICAgICAgID0gdHJ1ZQ0KPiA+ID4+ICtubF9iZWZvcmVfYmxvY2tfY29tbWVudCAgICAgICAgICAg ICAgICAgICAgICA9IDINCj4gPiA+PiArbmxfYmVmb3JlX2Nhc2UgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ID4+ICtubF9iZWZvcmVfZG8gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA9IGlnbm9yZQ0KPiA+ID4+ICtubF9iZWZvcmVfZm9yICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA9IGlnbm9yZQ0KPiA+ID4+ICtubF9iZWZvcmVfaWYgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGlnbm9yZQ0KPiA+ID4+ICtubF9iZWZvcmVf c3dpdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGlnbm9yZQ0KPiA+ID4+ICtubF9i ZWZvcmVfd2hpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGlnbm9yZQ0KPiA+ID4+ ICtubF9iZWZvcmVfd2hvbGVfZmlsZV9pZmRlZiAgICAgICAgICAgICAgICAgICA9IDINCj4gPiA+ PiArbmxfYnJhY2VfYnJhY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBmb3JjZQ0K PiA+ID4+ICtubF9icmFjZV9zdHJ1Y3RfdmFyICAgICAgICAgICAgICAgICAgICAgICAgICA9IHJl bW92ZQ0KPiA+ID4+ICtubF9jYXNlX2NvbG9uX2JyYWNlICAgICAgICAgICAgICAgICAgICAgICAg ICA9IGFkZA0KPiA+ID4+ICtubF9jbGFzc19sZWF2ZV9vbmVfbGluZXJzICAgICAgICAgICAgICAg ICAgICA9IGZhbHNlDQo+ID4gPj4gK25sX2NvbGxhcHNlX2VtcHR5X2JvZHkgICAgICAgICAgICAg ICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiArbmxfY29tbWVudF9mdW5jX2RlZiAgICAgICAgICAg ICAgICAgICAgICAgICAgPSAxDQo+ID4gPj4gK25sX2NyZWF0ZV9mb3Jfb25lX2xpbmVyICAgICAg ICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiArbmxfY3JlYXRlX2lmX29uZV9saW5lciAg ICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ID4+ICtubF9jcmVhdGVfd2hpbGVfb25l X2xpbmVyICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPj4gK25sX2RlZmluZV9tYWNy byAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiArbmxfZHNfc3Ry dWN0X2VudW1fY2xvc2VfYnJhY2UgICAgICAgICAgICAgICAgPSB0cnVlDQo+ID4gPj4gK25sX2Rz X3N0cnVjdF9lbnVtX2NtdCAgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiAr bmxfZW51bV9sZWF2ZV9vbmVfbGluZXJzICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ ID4+ICtubF9mdW5jX2RlY2xfZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGFkZA0K PiA+ID4+ICtubF9mdW5jX2RlY2xfc3RhcnQgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGFk ZA0KPiA+ID4+ICtubF9mdW5jX2RlZl9lbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9 IGFkZA0KPiA+ID4+ICtubF9mdW5jX2RlZl9zdGFydCAgICAgICAgICAgICAgICAgICAgICAgICAg ICA9IGFkZA0KPiA+ID4+ICtubF9mdW5jX2xlYXZlX29uZV9saW5lcnMgICAgICAgICAgICAgICAg ICAgICA9IGZhbHNlDQo+ID4gPj4gK25sX2Z1bmNfcHJvdG9fdHlwZV9uYW1lICAgICAgICAgICAg ICAgICAgICAgID0gYWRkDQo+ID4gPj4gK25sX2Z1bmNfdmFyX2RlZl9ibGsgICAgICAgICAgICAg ICAgICAgICAgICAgID0gMQ0KPiA+ID4+ICtubF9nZXRzZXRfbGVhdmVfb25lX2xpbmVycyAgICAg ICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPj4gK25sX2lmX2xlYXZlX29uZV9saW5lcnMgICAg ICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+PiArbmxfbXVsdGlfbGluZV9kZWZpbmUg ICAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ID4+ICtubF9zcXVlZXplX2lmZGVm ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPj4gK25sX3Zhcl9kZWZf YmxrX2VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMA0KPiA+ID4+ICtubF92YXJfZGVm X2Jsa19zdGFydCAgICAgICAgICAgICAgICAgICAgICAgICA9IDANCj4gPiA+PiArDQo+ID4gPj4g KyMgUHJlcHJvY2Vzc29yIFJ1bGVzDQo+ID4gPj4gK3BwX2RlZmluZV9hdF9sZXZlbCAgICAgID0g dHJ1ZQ0KPiA+ID4+ICtwcF9pZl9pbmRlbnRfY29kZSAgICAgICA9IGZhbHNlDQo+ID4gPj4gK3Bw X2luZGVudF9mdW5jX2RlZiAgICAgID0gZmFsc2UNCj4gPiA+PiArcHBfaW5kZW50X2V4dGVybiAg ICAgICAgPSBmYWxzZQ0KPiA+ID4+ICtwcF9pZ25vcmVfZGVmaW5lX2JvZHkgICA9IHRydWUgICAg ICAgICAgICAgICAgIyBXb3JrYXJvdW5kOiBUdXJuIG9mZiBwcm9jZXNzaW5nIGZvciAjZGVmaW5l IGJvZHkNCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMgKGN1cnJlbnQgcnVsZXMgZG8gbm90IHdvcmsgZm9yIHNvbWUgZGVmaW5lcykNCj4gPiA+ PiArcHBfaW5kZW50ICAgICAgICAgICAgICAgPSBhZGQNCj4gPiA+PiArcHBfaW5kZW50X2F0X2xl dmVsICAgICAgPSB0cnVlDQo+ID4gPj4gK3BwX2luZGVudF9jb3VudCAgICAgICAgID0gMg0KPiA+ ID4+ICtwcF9pbmRlbnRfaWYgICAgICAgICAgICA9IDINCj4gPiA+PiArcHBfaW5kZW50X3JlZ2lv biAgICAgICAgPSAyDQo+ID4gPj4gK3BwX3JlZ2lvbl9pbmRlbnRfY29kZSAgID0gZmFsc2UNCj4g PiA+PiArcHBfc3BhY2UgICAgICAgICAgICAgICAgPSByZW1vdmUNCj4gPiA+PiArDQo+ID4gPj4g KyMNCj4gPiA+PiArIyBUaGUgdG9rZW5zIGJlbG93IGFyZSBhc3NpZ25lZCBzcGVjaWZpYyB0eXBl cyBzbyB0aGV5IGFyZSBhbHdheXMgcmVjb2duaXplZCBwcm9wZXJseS4NCj4gPiA+PiArIw0KPiA+ ID4+ICsNCj4gPiA+PiArIyBFeHBsaWNpdGx5IGRlZmluZSBFREsgSUkgcXVhbGlmaWVycw0KPiA+ ID4+ICtzZXQgUVVBTElGSUVSIENPTlNUDQo+ID4gPj4gK3NldCBRVUFMSUZJRVIgRUZJQVBJDQo+ ID4gPj4gK3NldCBRVUFMSUZJRVIgSU4NCj4gPiA+PiArc2V0IFFVQUxJRklFUiBPUFRJT05BTA0K PiA+ID4+ICtzZXQgUVVBTElGSUVSIE9VVA0KPiA+ID4+ICsNCj4gPiA+PiArIyBFeHBsaWNpdGx5 IGRlZmluZSBFREsgSUkgdHlwZXMNCj4gPiA+PiArc2V0IFRZUEUgRUZJX1NUQVRVUw0KPiA+ID4+ ICtzZXQgVFlQRSBWT0lEDQo+ID4gPj4gZGlmZiAtLWdpdCBhLy5weXRvb2wvUGx1Z2luL1VuY3J1 c3RpZnlDaGVjay91bmNydXN0aWZ5X2V4dF9kZXAueWFtbA0KPiA+ID4+IGIvLnB5dG9vbC9QbHVn aW4vVW5jcnVzdGlmeUNoZWNrL3VuY3J1c3RpZnlfZXh0X2RlcC55YW1sDQo+ID4gPj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4gPiA+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmQ4YzIyNDAzYjRiMQ0K PiA+ID4+IC0tLSAvZGV2L251bGwNCj4gPiA+PiArKysgYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0 aWZ5Q2hlY2svdW5jcnVzdGlmeV9leHRfZGVwLnlhbWwNCj4gPiA+PiBAQCAtMCwwICsxLDE2IEBA DQo+ID4gPj4gKyMjIEBmaWxlDQo+ID4gPj4gKyMgRG93bmxvYWRzIHRoZSBVbmNydXN0aWZ5IGFw cGxpY2F0aW9uIGZyb20gYSBQcm9qZWN0IE11IE51R2V0IHBhY2thZ2UuDQo+ID4gPj4gKyMNCj4g PiA+PiArIyBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4NCj4gPiA+PiArIyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4+ICsjIw0K PiA+ID4+ICt7DQo+ID4gPj4gKyAgImlkIjogInVuY3J1c3RpZnktY2ktMSIsDQo+ID4gPj4gKyAg InNjb3BlIjogImNpYnVpbGQiLA0KPiA+ID4+ICsgICJ0eXBlIjogIm51Z2V0IiwNCj4gPiA+PiAr ICAibmFtZSI6ICJtdS11bmNydXN0aWZ5LXJlbGVhc2UiLA0KPiA+ID4+ICsgICJzb3VyY2UiOiAi aHR0cHM6Ly9wa2dzLmRldi5henVyZS5jb20vcHJvamVjdG11L1VuY3J1c3RpZnkvX3BhY2thZ2lu Zy9tdV91bmNydXN0aWZ5L251Z2V0L3YzL2luZGV4Lmpzb24iLA0KPiA+ID4+ICsgICJ2ZXJzaW9u IjogIjczLjAuMyIsDQo+ID4gPj4gKyAgImZsYWdzIjogWyJzZXRfc2hlbGxfdmFyIiwgImhvc3Rf c3BlY2lmaWMiXSwNCj4gPiA+PiArICAidmFyX25hbWUiOiAiVU5DUlVTVElGWV9DSV9QQVRIIg0K PiA+ID4+ICt9DQo+ID4gPj4gZGlmZiAtLWdpdCBhLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlD aGVjay91bmNydXN0aWZ5X3BsdWdfaW4ueWFtbA0KPiA+ID4+IGIvLnB5dG9vbC9QbHVnaW4vVW5j cnVzdGlmeUNoZWNrL3VuY3J1c3RpZnlfcGx1Z19pbi55YW1sDQo+ID4gPj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gPiA+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjA2Yzc2YWYwMjc1OQ0KPiA+ID4+ IC0tLSAvZGV2L251bGwNCj4gPiA+PiArKysgYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5Q2hl Y2svdW5jcnVzdGlmeV9wbHVnX2luLnlhbWwNCj4gPiA+PiBAQCAtMCwwICsxLDExIEBADQo+ID4g Pj4gKyMjIEBmaWxlDQo+ID4gPj4gKyMgQ2lCdWlsZFBsdWdpbiB1c2VkIHRvIGNoZWNrIGNvZGlu ZyBzdGFuZGFyZCBjb21wbGlhbmNlIG9mIEVESyBJSSBzdHlsZSBDIHNvdXJjZSBjb2RlDQo+ID4g Pj4gKyMNCj4gPiA+PiArIyBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4NCj4g PiA+PiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ ID4+ICsjIw0KPiA+ID4+ICt7DQo+ID4gPj4gKyAgInNjb3BlIjogImNpYnVpbGQiLA0KPiA+ID4+ ICsgICJuYW1lIjogIlVuY3J1c3RpZnkgQ29kaW5nIFN0YW5kYXJkIFRlc3QiLA0KPiA+ID4+ICsg ICJtb2R1bGUiOiAiVW5jcnVzdGlmeUNoZWNrIg0KPiA+ID4+ICt9DQo+ID4gPj4gZGlmZiAtLWdp dCBhLy5weXRvb2wvUmVhZG1lLm1kIGIvLnB5dG9vbC9SZWFkbWUubWQNCj4gPiA+PiBpbmRleCBm NjUwNTUwNzk2NmEuLmUwZDA3ZjMxNzA0OSAxMDA2NDQNCj4gPiA+PiAtLS0gYS8ucHl0b29sL1Jl YWRtZS5tZA0KPiA+ID4+ICsrKyBiLy5weXRvb2wvUmVhZG1lLm1kDQo+ID4gPj4gQEAgLTI2NCw2 ICsyNjQsMTAgQEAgQlNELTItQ2xhdXNlLVBhdGVudC4NCj4gPiA+PiAgIFJ1biB0aGUgRWNjIHRv b2wgb24gdGhlIHBhY2thZ2UuIFRoZSBFY2MgdG9vbCBpcyBhdmFpbGFibGUgaW4gdGhlIEJhc2VU b29scw0KPiA+ID4+ICAgcGFja2FnZS4gSXQgY2hlY2tzIHRoYXQgdGhlIGNvZGUgY29tcGxpZXMg dG8gdGhlIEVES0lJIGNvZGluZyBzdGFuZGFyZC4NCj4gPiA+Pg0KPiA+ID4+ICsjIyMgQ29kaW5n IFN0YW5kYXJkIENvbXBsaWFuY2UgLSBVbmNydXN0aWZ5Q2hlY2sNCj4gPiA+PiArDQo+ID4gPj4g K1J1bnMgdGhlIFVuY3J1c3RpZnkgYXBwbGljYXRpb24gdG8gY2hlY2sgZm9yIGNvZGluZyBzdGFu ZGFyZCBjb21wbGlhbmNlIGlzc3Vlcy4NCj4gPiA+PiArDQo+ID4gPj4gICAjIyBQeVRvb2wgU2Nv cGVzDQo+ID4gPj4NCj4gPiA+PiAgIFNjb3BlcyBhcmUgaG93IHRoZSBQeVRvb2wgZXh0X2RlcCwg cGF0aF9lbnYsIGFuZCBwbHVnaW5zIGFyZSBhY3RpdmF0ZWQuICBNZWFuaW5nDQo+ID4gPj4gLS0N Cj4gPiA+PiAyLjI4LjAud2luZG93cy4xDQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ ID4NCj4gPiA+DQo+ID4NCj4gPg0KPiA+IA0KPiA+DQoNCg==