From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web09.23856.1657727738689582355 for ; Wed, 13 Jul 2022 08:55:38 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=Food7oF6; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: isaac.w.oram@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1657727738; x=1689263738; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=JjMQEEIL/jPMlDscGqjG42brfNNH2Ge8lJQW8D6S+4M=; b=Food7oF6iL4/CM8KDBcqOHu6CSlsApUAKeb0jKIXY6BqFU3rL66BW9S0 Z80jUHWoZi8DZuHKBAKYFXVzNGSzl/gBnrgsC8CwbFT2wbmkQetezWBQ7 i6pBEh15fZ0utAbH7XDvTz//mEqgNVc0BewRtEugHHzINLRwWR+p7Pz7o IVKbP7Fd47TRVB/kEGr4MwE8HiB0khpt7mGsuXIoOTzgIv8eDIuihFNZH Xj2yCpx7lXCFjvv3KdFty01hAK4ZpgKo/jSVW78LQwmFqean6bPEj1PGS bjvHEjquO1Pg/18qXZAExx7lcIWKMr3Om9yN6g+qgv3zknSvv76/8508H A==; X-IronPort-AV: E=McAfee;i="6400,9594,10407"; a="286006952" X-IronPort-AV: E=Sophos;i="5.92,267,1650956400"; d="scan'208";a="286006952" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jul 2022 08:51:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,267,1650956400"; d="scan'208";a="922689909" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga005.fm.intel.com with ESMTP; 13 Jul 2022 08:51:33 -0700 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 13 Jul 2022 08:51:32 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Wed, 13 Jul 2022 08:51:32 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.172) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Wed, 13 Jul 2022 08:51:31 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EseY8Ob9JvrihQHS+n10N0uyl+tl8x4vvIYYRZ5i1iVEfZPUwNuNbKkbLAGAdaCQmolhAzLBQf064V75ALBaSnepKpalFuk9k4kQHxmGFclHMn8mar20ar/o/NqXTlfeT9AULqHR4HBKR6RcWRmGktnediRiaeEkuOoxCtOR+Zh04rnYUHdzYX0Wzqi2zj1W0bzrXLvywIOJOPv9C8JwZQ4MkWp2E5tIAPLV1VdfCrDvS3xN/UdBUWOjrM8pWt9KO3ANIXvfV53DaITQpDGzqsktXLqySKCZhDmb7k6egjiJ3TKCoJkZJS3ocSxKwX4w2R4VzE+NtHvsH0Jrj+5VUQ== 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=JjMQEEIL/jPMlDscGqjG42brfNNH2Ge8lJQW8D6S+4M=; b=cVVbAjKtcItd5/2pM2xtdYHNOkJmAXx3EQORCAk0Meq8URJSx7Z4NoXdxhtGdMZIvX8rJKr48V4pN5z+kATfQSENZcIelmjTehtlp4wA7nYUXldTLIGuUu02k4PfGN2syLrmt7oto8sr15l6kImywsmeeaW6+tRx04DNLEOz9C6z7XywQ8i86AAsJ62XbP9yxT281YbwvYtQ/8+dEnO9t2K4EEmZYDnL97BsWWknnOVoVX1OqDiboYdxPNlK1subfmafKgvyJy6Txjfg2wX9UUXyJIBiGogiXIEf6moPykuPjAWPROjCqkNl/lCTyHVgupRQ7CxzoXg6GmaVZd3PCA== 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 Received: from SA1PR11MB5801.namprd11.prod.outlook.com (2603:10b6:806:23d::13) by SA0PR11MB4575.namprd11.prod.outlook.com (2603:10b6:806:9b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.13; Wed, 13 Jul 2022 15:51:24 +0000 Received: from SA1PR11MB5801.namprd11.prod.outlook.com ([fe80::c815:3a9e:d7a7:49a6]) by SA1PR11MB5801.namprd11.prod.outlook.com ([fe80::c815:3a9e:d7a7:49a6%7]) with mapi id 15.20.5417.026; Wed, 13 Jul 2022 15:51:24 +0000 From: "Oram, Isaac W" To: "devel@edk2.groups.io" , "mikuback@linux.microsoft.com" CC: "Chaganty, Rangasai V" , "Ni, Ray" , "Desimone, Nathaniel L" Subject: Re: [edk2-devel] [edk2-platforms][PATCH v2 1/1] IntelSiliconPkg/SpiFvbService: Add support for VariableFlashInfoLib Thread-Topic: [edk2-devel] [edk2-platforms][PATCH v2 1/1] IntelSiliconPkg/SpiFvbService: Add support for VariableFlashInfoLib Thread-Index: AQHYlkPDJs1lwTQkiUS29NY3fxZDAa17Wyng Date: Wed, 13 Jul 2022 15:51:24 +0000 Message-ID: References: <16FDBB890A0E8B8C.7323@groups.io> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: 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: c35ee63b-8642-45f6-f00c-08da64e78a6c x-ms-traffictypediagnostic: SA0PR11MB4575:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hbxYcGGipC4gImnn7XCEUNl4V4Ky8ONP31YFlLkLj/K61gIc22YM4xdjrIjOhX0Z8m4qEnjznuc34azwj7U3UsTFAlUPPt+I4Qe2wfx026KBsVoVqVvVDncT/DCthHmEyO99jGfFXuXPzJRu+sdvUunuZ9uFgozNaYyYzAYNU9Q9ratdeiOVpalEdslNaKOmQs7HHIVUWZhTIfrlJxs6ON5g2sluIfn2p+v5FyeZiTqFqUIj652qwxbEus6JxvBeaARxtvt2ddpo4UBRtVpIGgDtpFihYbE2RSoe9vKqtBdc1QL6fo7aI/yQLF8lU4S7Qy9A3V14865DXWsxxbpHhnEoPIZuGfAjApV/z8grNreW2R3dg37y/A9sVWfj7NirTqPhui6EOl4/eS3R23LLThRgigA+RPfHcJCkg9E7VE6E0i/ltNdZbw5VZnhH+GVJXL3T8yEvBhlejs7VD702L9vdfwWsppGVvUI2zCuv7RGxTws6XALedPQ/zjZWIuS6kEexHKqh/Xi3Cal/d8bnk/QH9E1pUJs3QKdsEGluCh35RXyGBKQqmlH87NVycYqXWzTE5mIdY8OyAcLJ1l0c66b4qIKmdjbnwPM+uurqk8VpiaV+JFm36e46UN24I1C2+qdWurRDdFz4CAk6mPIjBtqKKC+uX6sz9XclE1HlcrqHoRoKJBDhSYZ7NYJaKf9wWMBb38P402M0gej3d1IOsyzHVsnHEeJ01kqfh8ymRtLDQeXgEHzdr8nkOOnL9rei41X6PQhzoGDGxeF8gN6yMmbHiYaJUNKdstJXBW7ErBCHK0c8779YIpvdd0oAFS3Xu4dL6GnahKVfQBy0x2kVv5/1jDfcwexaSlQ7DOsegIJdgLRXcdgFNpd+KS6u33jt x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR11MB5801.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(376002)(366004)(396003)(136003)(39860400002)(346002)(8676002)(83380400001)(45080400002)(966005)(38070700005)(107886003)(82960400001)(55016003)(186003)(4326008)(30864003)(5660300002)(8936002)(2906002)(33656002)(316002)(52536014)(76116006)(110136005)(86362001)(478600001)(54906003)(66476007)(41300700001)(9686003)(26005)(64756008)(66446008)(66556008)(66946007)(6506007)(53546011)(7696005)(38100700002)(19627235002)(122000001)(71200400001)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?b1BVdDE0STBnMUZnS01JYkJVcUFud0luRk5FQUhUYlhNNXV6aWJBcXhiWU9m?= =?utf-8?B?Z1VDQ2ExZ3VXSW9aMXhHbWtzVzhuSENWUkRGZUR4SVd2MU8zNjlMK1JWSEtj?= =?utf-8?B?K0pjbkxpSGdpV0F1T2I0OHN2TTlNanhyMk5scFE0SUNyWCs1Y2llaFE5TXNI?= =?utf-8?B?SC9pL25Ub1ZPQ2VVVGVEa09pM3BWOHVjdTcvSGRoVDk2cGZ6dnBMVHlidmRC?= =?utf-8?B?dExrY1NqZjNDdldZbTVCRWdsa3NkK2wxVDdEemQ2UFlZN29VUWlYZTZmZ1Vs?= =?utf-8?B?M2thZ3pCNVZtZlprdmZrYlFjUy9LeHl2SW1OcFcrejRDN3NRd2g0TmZkNE5v?= =?utf-8?B?c3ExOVhmdjYybDJUMzBiZldpYjdzWXlWZlNKdnJJTVQ4aWtDZEVBTzhyNmxa?= =?utf-8?B?elBzNDdHSEsrR2lFMTY5UUR1WThQMWZGUW52OTZDRzE0RWZwNEQ3aDhKQWhw?= =?utf-8?B?VnFhQlp0NFBlaENySmxsdXk1Rm9WMTQ5SnBiRjJEOXpjWFhJc2pjWGhJMUZr?= =?utf-8?B?K0s4U0dDR0pZeW1zSjFYWDB2cnJ6MTcxeC9BeUE0U29BR0pNQTByTE5CbFAw?= =?utf-8?B?ZXdoMUt1Tkw4YWVnLzdMdXNZZDQvM2Vrd2E0SHVkdGJONjIxNmhmdi9kZUZF?= =?utf-8?B?dkQ5eXRlZXJQWDRUWDJRWCt5ZUJVZ0E0ZXowMk5QUDdwR0JXSUZsSlIxU2xL?= =?utf-8?B?NVMzT3VueXZwSGJkSncrRnRkWVRxcWhhc2pYZ0VFTU1aU2Vva2EwSEdhTjFQ?= =?utf-8?B?LzV2NjZaNXRGTE93TnA1SWE5Y29xK1JoSFZicTRSb2tTQXRNRmVRL0JNbitp?= =?utf-8?B?aVU2YlR5bElsc3FrTHIzL00zZXBZS1NVTnRKRVdHU0ZGakRXY2RZQUtnUXRs?= =?utf-8?B?V0RiQXpvaHY3a1lLTHhCNFBWTlljOWhZZGI2VkswUThtTlVxazl2M0Uxbi9O?= =?utf-8?B?NVVsU040WFgyK3VxSXJITFhKWE11Mm1EY0ZTS2dWSEtYYllJd3hTZTRaNlF4?= =?utf-8?B?bFVvdVpUaldwejRKMmF4Yko5Wjl1czZXR01RTHh1OUk0REdRcnVNVmlEUmV1?= =?utf-8?B?MVRobUwrdi8wMjVMQUViL2hPcTBUd1lqL3l0TGR2dVYzWjA1TVlicE42YThG?= =?utf-8?B?ZE1TdlNucmhhTGJFcXpzQXppMVZwUitlTit0L0FMWGlYa2JRUUxsOTBiSkEz?= =?utf-8?B?dVIxM05oaGNFMHhYNTdFM1prMy9QUFU1Z3F5b3ArUi9RWHZxdlZKVEY4NmFG?= =?utf-8?B?WVZ1WHRaWlU4ejN4NkJkYTRhRDBudmNqY0xoNGU1SVhtbWg5ZmRuV2lrWW4y?= =?utf-8?B?K0ROQS9TczNKRG1wVWFaVDdad2hQWHZDMFNBY29kMmVxbHVLVUxlQzVVYVBa?= =?utf-8?B?bnJXN0RyME55M1Fxam9ja3ZXT05tVjhxdDNBT0g4aXdhbGF5UHVtOHUrenVP?= =?utf-8?B?bWdKVUJGbzBPM3ZDWUNabDJKU0x4bXJRUnhSUXRBNUl0ZVUwVFk5ODBXbEl2?= =?utf-8?B?MFdKRDg0WUJHbVhpczE2cVpjTVlkQ2xPa1V5dit1bFM4ZmRMeUtNYW9WaFZU?= =?utf-8?B?eE01cGdvdnlNVER4TU5yNG9jK0FWYzM2czNYd0lPelRybmRNWmlzSUplT0ZV?= =?utf-8?B?SGVEQm9MU2ErL0tCZXhsaFlYZ0RyOFJCWW5COThNMm45V3JwQlphWTR6eXVT?= =?utf-8?B?Yzd5SXFpZjIxeWcwQ0I5NHg2cEUyc3h0S09ncXIzOEN5UmFZQXBwang5Mzlk?= =?utf-8?B?SzBWV21PUVFtYVhWdzN5Y0EvVlYyK2VYd0tPbm4wUm12cDFBemM5Vm9vazc2?= =?utf-8?B?clRHWnhOOVRJTDhFTEZ0OG9pYnZvMEdwM2dRU3U4VWNEVytuQTl1WTJTV0pi?= =?utf-8?B?azhCVnVsMUppNlJYWXYxczRaN01wVnh4SnNUQmtvQnpJY01Cd0MzU1FCTExI?= =?utf-8?B?aWhQYjlLeW1CbFdOVndXNkl2c2xvMGVKODliNWtrN3BickJlaXVHbSs5VWNC?= =?utf-8?B?NDZzaWdMeTdNL0pGNERaWmg5WWkzOHhkSTdNQXh5OTlxSXdIbWlPVzV3MVN2?= =?utf-8?B?dXZmbUN0ajRNZ0NmVW9oL1c5cFZzWU0rSk44TTBMdzZROUNRR0d3QkRacVVN?= =?utf-8?Q?7VPVoOXBRdWNCvE/cGIiUaMi2?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB5801.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c35ee63b-8642-45f6-f00c-08da64e78a6c X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jul 2022 15:51:24.8808 (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: wu/31EyT9AO1w2AkbRU0jrdc6r5V2S8w1IVRvagiFbSDnKl/zEd4PmaIjz4j68fNbdph2bFQf5pXOgP0TbZ3Xg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR11MB4575 Return-Path: isaac.w.oram@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IElzYWFjIE9yYW0gPGlzYWFjLncub3JhbUBpbnRlbC5jb20+DQoNCi0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxA ZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBNaWNoYWVsIEt1YmFja2kNClNlbnQ6IFR1ZXNk YXksIEp1bHkgMTIsIDIwMjIgNDowNCBQTQ0KVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQpDYzog Q2hhZ2FudHksIFJhbmdhc2FpIFYgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50ZWwuY29tPjsgTmks IFJheSA8cmF5Lm5pQGludGVsLmNvbT47IE9yYW0sIElzYWFjIFcgPGlzYWFjLncub3JhbUBpbnRl bC5jb20+OyBEZXNpbW9uZSwgTmF0aGFuaWVsIEwgPG5hdGhhbmllbC5sLmRlc2ltb25lQGludGVs LmNvbT4NClN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW2VkazItcGxhdGZvcm1zXVtQQVRDSCB2 MiAxLzFdIEludGVsU2lsaWNvblBrZy9TcGlGdmJTZXJ2aWNlOiBBZGQgc3VwcG9ydCBmb3IgVmFy aWFibGVGbGFzaEluZm9MaWINCg0KUmVtaW5kZXIgYWJvdXQgdGhpcyBwYXRjaC4NCg0KVGhhbmtz LA0KTWljaGFlbA0KDQpPbiA3LzEvMjAyMiAxMDozOSBBTSwgTWljaGFlbCBLdWJhY2tpIHdyb3Rl Og0KPiBGcm9tOiBNaWNoYWVsIEt1YmFja2kgPG1pY2hhZWwua3ViYWNraUBtaWNyb3NvZnQuY29t Pg0KPiANCj4gUkVGOmh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/ aWQ9MzQ3OA0KPiANCj4gQWRkcyBzdXBwb3J0IGZvciBnZXR0aW5nIHRoZSB2YXJpYWJsZSBmbGFz aCBpbmZvcm1hdGlvbiBmcm9tIA0KPiBWYXJpYWJsZUZsYXNoSW5mb0xpYi4gVGhpcyBsaWJyYXJ5 IGFic3RyYWN0cyB0aGUgc291cmNlIG9mIGZsYXNoIA0KPiBpbmZvcm1hdGlvbiBzbyBwbGF0Zm9y bXMgY291bGQgZXhwZWN0IHRoZSBpbmZvcm1hdGlvbiB0byBjb21lIGZyb20gYSANCj4gZGlmZmVy ZW50IHNvdXJjZSBpbiB0aGUgbGlicmFyeSBpbXBsZW1lbnRhdGlvbiB0aGFuIHRoZSBQQ0RzIA0K PiBwcmV2aW91c2x5IHVzZWQgYXMgdGhlIGluZm9ybWF0aW9uIHNvdXJjZSBpbiB0aGlzIG1vZHVs ZS4NCj4gDQo+IEluIHBhcnRpY3VsYXIsIHRoZSBsaWJyYXJ5IGFsbG93cyBTdGFuZGFsb25lIE1N IHBsYXRmb3JtcyB0byANCj4gZHluYW1pY2FsbHkgcGFzcyB0aGUgaW5mb3JtYXRpb24gYmVoaW5k IHRoZSBsaWJyYXJ5IEFQSS4NCj4gDQo+IENjOiBSYW5nYXNhaSBWIENoYWdhbnR5IDxyYW5nYXNh aS52LmNoYWdhbnR5QGludGVsLmNvbT4NCj4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4N Cj4gQ2M6IElzYWFjIE9yYW0gPGlzYWFjLncub3JhbUBpbnRlbC5jb20+DQo+IENjOiBOYXRlIERl U2ltb25lIDxuYXRoYW5pZWwubC5kZXNpbW9uZUBpbnRlbC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6 IE1pY2hhZWwgS3ViYWNraSA8bWljaGFlbC5rdWJhY2tpQG1pY3Jvc29mdC5jb20+DQo+IC0tLQ0K PiANCj4gTm90ZXM6DQo+ICAgICAgVjIgY2hhbmdlczoNCj4gICAgICANCj4gICAgICAxLiBVcGRh dGVkIHRoZSBidWZmZXIgdGhhdCBpcyByZXR1cm5lZCBmcm9tDQo+ICAgICAgICAgR2V0RnZiSW5m bygpIHRvIGJlIGFsbG9jYXRlZCBmcm9tIHBvb2wuDQo+ICAgICAgMi4gVXBkYXRlZCBjYWxscyB0 byB0aGF0IGZ1bmN0aW9uIGluIEZ2YkluaXRpYWxpemUoKQ0KPiAgICAgICAgIHRvIGZyZWUgdGhl IG5ldyBidWZmZXIgYWZ0ZXIgdXNhZ2UuDQo+ICAgICAgMy4gVXBkYXRlZCB0aGUgbXVsdGlwbGlj YXRpb24gb3BlcmF0aW9uIHRvIGRldGVybWluZQ0KPiAgICAgICAgIHRoZSBGViBsZW5ndGggdG8g dXNlIHNhZmUgbXVsdGlwbGljYXRpb24gaW4NCj4gICAgICAgICBHZW5lcmF0ZU52U3RvcmFnZUZ2 Yk1lZGlhSW5mbygpLg0KPiANCj4gICBTaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0 dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvRnZiSW5mby5jICAgICAgICAgICAgICAgICAgICAgfCAx MjggKysrKysrKysrKysrKy0tLS0tLS0NCj4gICBTaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBr Zy9GZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpRnZiU2VydmljZUNvbW1vbi5jICAgICAg ICAgfCAgOTMgKysrKysrKysrKysrLS0NCj4gICBTaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBr Zy9GZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpRnZiU2VydmljZU1tLmMgICAgICAgICAg ICAgfCAgNDkgKysrKysrLS0NCj4gICBTaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0 dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpRnZiU2VydmljZUNvbW1vbi5oICAgICAgICAgfCAg MTggKystDQo+ICAgU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9GbGFzaC9T cGlGdmJTZXJ2aWNlL1NwaUZ2YlNlcnZpY2VTbW0uaW5mICAgICAgICAgIHwgICA2ICstDQo+ICAg U2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNl L1NwaUZ2YlNlcnZpY2VTdGFuZGFsb25lTW0uaW5mIHwgICA2ICstDQo+ICAgU2lsaWNvbi9JbnRl bC9JbnRlbFNpbGljb25Qa2cvSW50ZWxTaWxpY29uUGtnLmRzYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICA3ICsrDQo+ICAgNyBmaWxlcyBjaGFuZ2VkLCAyNDMgaW5z ZXJ0aW9ucygrKSwgNjQgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IA0KPiBhL1NpbGlj b24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvRmxhc2gvU3BpRnZiU2VydmljZS9GdmJJ bmZvLmMgDQo+IGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9GbGFzaC9T cGlGdmJTZXJ2aWNlL0Z2YkluZm8uYw0KPiBpbmRleCA3ZjI2NzhmYTllNWEuLjYzNGE0NDIxOGM3 YSAxMDA2NDQNCj4gLS0tIA0KPiBhL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1 cmUvRmxhc2gvU3BpRnZiU2VydmljZS9GdmJJbmZvLmMNCj4gKysrIGIvU2lsaWNvbi9JbnRlbC9J bnRlbFNpbGljb25Qa2cvRmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNlL0Z2YkluZg0KPiArKysg by5jDQo+IEBAIC0zLDYgKzMsNyBAQA0KPiAgICAgVGhlc2UgZGF0YSBpcyBpbnRlbnQgdG8gZGVj b3VwbGUgRlZCIGRyaXZlciB3aXRoIEZWIGhlYWRlci4NCj4gICANCj4gICBDb3B5cmlnaHQgKGMp IDIwMTcsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gK0Nv cHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLjxCUj4NCj4gICBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAgIA0KPiAgICoqLw0KPiBAQCAtMTEs NTEgKzEyLDkyIEBAIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50 DQo+ICAgDQo+ICAgI2RlZmluZSBGSVJNV0FSRV9CTE9DS19TSVpFICAgICAgICAgMHgxMDAwMA0K PiAgICNkZWZpbmUgRlZCX01FRElBX0JMT0NLX1NJWkUgICAgICAgIEZJUk1XQVJFX0JMT0NLX1NJ WkUNCj4gLQ0KPiAtI2RlZmluZSBOVl9TVE9SQUdFX0JBU0VfQUREUkVTUyAgICAgRml4ZWRQY2RH ZXQzMihQY2RGbGFzaE52U3RvcmFnZVZhcmlhYmxlQmFzZSkNCj4gLSNkZWZpbmUgU1lTVEVNX05W X0JMT0NLX05VTSAgICAgICAgICgoRml4ZWRQY2RHZXQzMihQY2RGbGFzaE52U3RvcmFnZVZhcmlh YmxlU2l6ZSkrIEZpeGVkUGNkR2V0MzIoUGNkRmxhc2hOdlN0b3JhZ2VGdHdXb3JraW5nU2l6ZSkg KyBGaXhlZFBjZEdldDMyKFBjZEZsYXNoTnZTdG9yYWdlRnR3U3BhcmVTaXplKSkvIEZWQl9NRURJ QV9CTE9DS19TSVpFKQ0KPiAtDQo+ICAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiAgICAgRUZJX1BIWVNJ Q0FMX0FERFJFU1MgICAgICAgIEJhc2VBZGRyZXNzOw0KPiAgICAgRUZJX0ZJUk1XQVJFX1ZPTFVN RV9IRUFERVIgIEZ2YkluZm87DQo+ICAgICBFRklfRlZfQkxPQ0tfTUFQX0VOVFJZICAgICAgRW5k WzFdOw0KPiAgIH0gRUZJX0ZWQjJfTUVESUFfSU5GTzsNCj4gICANCj4gLS8vDQo+IC0vLyBUaGlz IGRhdGEgc3RydWN0dXJlIGNvbnRhaW5zIGEgdGVtcGxhdGUgb2YgYWxsIGNvcnJlY3QgRlYgaGVh ZGVycywgDQo+IHdoaWNoIGlzIHVzZWQgdG8gcmVzdG9yZSAtLy8gRnYgaGVhZGVyIGlmIGl0J3Mg Y29ycnVwdGVkLg0KPiAtLy8NCj4gLUVGSV9GVkIyX01FRElBX0lORk8gbVBsYXRmb3JtRnZiTWVk aWFJbmZvW10gPSB7DQo+IC0gIC8vDQo+IC0gIC8vIFN5c3RlbiBOdlN0b3JhZ2UgRlZCDQo+IC0g IC8vDQo+IC0gIHsNCj4gLSAgICBOVl9TVE9SQUdFX0JBU0VfQUREUkVTUywNCj4gLSAgICB7DQo+ IC0gICAgICB7MCx9LCAvL1plcm9WZWN0b3JbMTZdDQo+IC0gICAgICBFRklfU1lTVEVNX05WX0RB VEFfRlZfR1VJRCwNCj4gLSAgICAgIEZWQl9NRURJQV9CTE9DS19TSVpFICogU1lTVEVNX05WX0JM T0NLX05VTSwNCj4gLSAgICAgIEVGSV9GVkhfU0lHTkFUVVJFLA0KPiAtICAgICAgMHgwMDA0ZmVm ZiwgLy8gY2hlY2sgTWRlUGtnL0luY2x1ZGUvUGkvUGlGaXJtd2FyZVZvbHVtZS5oIGZvciBkZXRh aWxzIG9uIEVGSV9GVkJfQVRUUklCVVRFU18yDQo+IC0gICAgICBzaXplb2YgKEVGSV9GSVJNV0FS RV9WT0xVTUVfSEVBREVSKSArIHNpemVvZiAoRUZJX0ZWX0JMT0NLX01BUF9FTlRSWSksDQo+IC0g ICAgICAwLCAgICAvL0NoZWNrU3VtIHdoaWNoIHdpbGwgYmUgY2FsdWNhdGVkIGR5bmFtaWNhbGx5 Lg0KPiAtICAgICAgMCwgICAgLy9FeHRIZWFkZXJPZmZzZXQNCj4gLSAgICAgIHswLH0sIC8vUmVz ZXJ2ZWRbMV0NCj4gLSAgICAgIDIsICAgIC8vUmV2aXNpb24NCj4gLSAgICAgIHsNCj4gLSAgICAg ICAgew0KPiAtICAgICAgICAgIFNZU1RFTV9OVl9CTE9DS19OVU0sDQo+IC0gICAgICAgICAgRlZC X01FRElBX0JMT0NLX1NJWkUsDQo+IC0gICAgICAgIH0NCj4gLSAgICAgIH0NCj4gLSAgICB9LA0K PiAtICAgIHsNCj4gLSAgICAgIHsNCj4gLSAgICAgICAgMCwNCj4gLSAgICAgICAgMA0KPiAtICAg ICAgfQ0KPiAtICAgIH0NCj4gKy8qKg0KPiArICBSZXR1cm5zIEZWQiBtZWRpYSBpbmZvcm1hdGlv biBmb3IgTlYgdmFyaWFibGUgc3RvcmFnZS4NCj4gKw0KPiArICBAcmV0dXJuICAgICAgIEZ2Yk1l ZGlhSW5mbyAgICAgICAgICBBIHBvaW50ZXIgdG8gYW4gaW5zdGFuY2Ugb2YgRlZCIG1lZGlhIGlu Zm8gcHJvZHVjZWQgYnkgdGhpcyBmdW5jdGlvbi4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVGhlIGJ1ZmZlciBpcyBhbGxvY2F0ZWQgaW50ZXJuYWxseSB0byB0aGlz IGZ1bmN0aW9uIGFuZCBpdCBpcyB0aGUgY2FsbGVyJ3MNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gZnJlZSB0aGUgDQo+ICsgbWVtb3J5 DQo+ICsNCj4gKyoqLw0KPiArdHlwZWRlZg0KPiArRUZJX1NUQVRVUw0KPiArKCpGVkJfTUVESUFf SU5GT19HRU5FUkFUT1IpKA0KPiArICBPVVQgRUZJX0ZWQjJfTUVESUFfSU5GTyAgICAgKkZ2Yk1l ZGlhSW5mbw0KPiArICApOw0KPiArDQo+ICsvKioNCj4gKyAgUmV0dXJucyBGVkIgbWVkaWEgaW5m b3JtYXRpb24gZm9yIE5WIHZhcmlhYmxlIHN0b3JhZ2UuDQo+ICsNCj4gKyAgQHBhcmFtW291dF0g ICBGdmJNZWRpYUluZm8gICAgICAgICAgQSBwb2ludGVyIHRvIGFuIGluc3RhbmNlIG9mIEZWQiBt ZWRpYSBpbmZvIHByb2R1Y2VkIGJ5IHRoaXMgZnVuY3Rpb24uDQo+ICsNCj4gKyAgQHJldHZhbCAg ICAgICBFRklfU1VDQ0VTUyAgICAgICAgICAgQSBzdHJ1Y3R1cmUgd2FzIHN1Y2Nlc3NmdWxseSB3 cml0dGVuIHRvIHRoZSBGdmJNZWRpYUluZm8gYnVmZmVyLg0KPiArICBAcmV0dmFsICAgICAgIEVG SV9JTlZBTElEX1BBUkFNRVRFUiBUaGUgRnZiTWVkaWFJbmZvIHBhcmFtZXRlciBpcyBOVUxMLg0K PiArICBAcmV0dmFsICAgICAgIEVGSV9VTlNVUFBPUlRFRCAgICAgICBBbiBlcnJvciBvY2N1cnJl ZCByZXRyaWV2aW5nIHZhcmlhYmxlIEZWIGluZm9ybWF0aW9uLg0KPiArICBAcmV0dmFsICAgICAg IEVGSV9CQURfQlVGRkVSX1NJWkUgICBBbiBvdmVyZmxvdyBvciB1bmRlcmZsb3cgb2YgdGhlIEZW IGJ1ZmZlciBvY2N1cnJlZCB3aXRoIHRoZSBpbmZvcm1hdGlvbiBmb3VuZC4NCj4gKw0KPiArKiov DQo+ICtFRklfU1RBVFVTDQo+ICtHZW5lcmF0ZU52U3RvcmFnZUZ2Yk1lZGlhSW5mbyAoDQo+ICsg IE9VVCBFRklfRlZCMl9NRURJQV9JTkZPICAgICAqRnZiTWVkaWFJbmZvDQo+ICsgICkNCj4gK3sN Cj4gKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgIFN0YXR1czsNCj4gKyAgVUlOVDMyICAg ICAgICAgICAgICAgICAgICAgIE52QmxvY2tOdW07DQo+ICsgIFVJTlQzMiAgICAgICAgICAgICAg ICAgICAgICBUb3RhbE52VmFyaWFibGVTdG9yYWdlU2l6ZTsNCj4gKyAgRUZJX1BIWVNJQ0FMX0FE RFJFU1MgICAgICAgIE52U3RvcmFnZUJhc2VBZGRyZXNzOw0KPiArICBFRklfRklSTVdBUkVfVk9M VU1FX0hFQURFUiAgRnZiSW5mbyA9IHsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHswLH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1pl cm9WZWN0b3JbMTZdDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFRklfU1lTVEVNX05WX0RBVEFfRlZfR1VJRCwgICAgICAgICAgICAgLy9GaWxlU3lzdGVtR3Vp ZA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vRnZMZW5ndGgNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9GVkhfU0lHTkFUVVJFLCAgICAgICAg ICAgICAgICAgICAgICAvL1NpZ25hdHVyZQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDA0ZmVmZiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v QXR0cmlidXRlcw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZW9mIChFRklfRklSTVdBUkVfVk9MVU1FX0hFQURFUikgKyAgIC8vSGVhZGVyTGVuZ3RoDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoRUZJ X0ZWX0JMT0NLX01BUF9FTlRSWSksDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9DaGVj a3N1bQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vRXh0SGVhZGVyT2Zmc2V0DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7MCx9LCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy9SZXNlcnZlZFsxXQ0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vUmV2aXNpb24NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0Jsb2Nr TWFwWzFdDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsw LDB9DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsNCj4gKw0KPiArICBpZiAo RnZiTWVkaWFJbmZvID09IE5VTEwpIHsNCj4gKyAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1F VEVSOw0KPiAgICAgfQ0KPiArDQo+ICsgIFplcm9NZW0gKEZ2Yk1lZGlhSW5mbywgc2l6ZW9mICgq RnZiTWVkaWFJbmZvKSk7DQo+ICsNCj4gKyAgR2V0VmFyaWFibGVGdkluZm8gKCZOdlN0b3JhZ2VC YXNlQWRkcmVzcywgDQo+ICsgJlRvdGFsTnZWYXJpYWJsZVN0b3JhZ2VTaXplKTsgIGlmICgoTnZT dG9yYWdlQmFzZUFkZHJlc3MgPT0gMCkgfHwgKFRvdGFsTnZWYXJpYWJsZVN0b3JhZ2VTaXplID09 IDApKSB7DQo+ICsgICAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCj4gKyAgfQ0KPiArDQo+ICsg IE52QmxvY2tOdW0gPSBUb3RhbE52VmFyaWFibGVTdG9yYWdlU2l6ZSAvIEZWQl9NRURJQV9CTE9D S19TSVpFOw0KPiArDQo+ICsgIFN0YXR1cyA9IFNhZmVVaW50NjRNdWx0ICgoVUlOVDY0KU52Qmxv Y2tOdW0sIEZWQl9NRURJQV9CTE9DS19TSVpFLCANCj4gKyAmRnZiSW5mby5Gdkxlbmd0aCk7ICBp ZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ICsgICAgcmV0dXJuIEVGSV9CQURfQlVGRkVSX1NJ WkU7DQo+ICsgIH0NCj4gKw0KPiArICBGdmJJbmZvLkJsb2NrTWFwWzBdLk51bUJsb2NrcyA9IE52 QmxvY2tOdW07ICANCj4gKyBGdmJJbmZvLkJsb2NrTWFwWzBdLkxlbmd0aCA9IEZWQl9NRURJQV9C TE9DS19TSVpFOw0KPiArDQo+ICsgIEZ2Yk1lZGlhSW5mby0+QmFzZUFkZHJlc3MgPSBOdlN0b3Jh Z2VCYXNlQWRkcmVzczsgIENvcHlNZW0gDQo+ICsgKCZGdmJNZWRpYUluZm8tPkZ2YkluZm8sICZG dmJJbmZvLCBzaXplb2YgKEZ2YkluZm8pKTsNCj4gKw0KPiArICByZXR1cm4gRUZJX1NVQ0NFU1M7 DQo+ICt9DQo+ICsNCj4gK0ZWQl9NRURJQV9JTkZPX0dFTkVSQVRPUiBtRnZiTWVkaWFJbmZvR2Vu ZXJhdG9yc1tdID0gew0KPiArICBHZW5lcmF0ZU52U3RvcmFnZUZ2Yk1lZGlhSW5mbw0KPiAgIH07 DQo+ICAgDQo+ICAgRUZJX1NUQVRVUw0KPiBAQCAtNjQsMTIgKzEwNiwxNiBAQCBHZXRGdmJJbmZv ICgNCj4gICAgIE9VVCBFRklfRklSTVdBUkVfVk9MVU1FX0hFQURFUiAgICoqRnZiSW5mbw0KPiAg ICAgKQ0KPiAgIHsNCj4gKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgIFN0YXR1czsNCj4g KyAgRUZJX0ZWQjJfTUVESUFfSU5GTyAgICAgICAgIEZ2Yk1lZGlhSW5mbzsNCj4gICAgIFVJTlRO ICAgICAgICAgICAgICAgICAgICAgICBJbmRleDsNCj4gICAgIEVGSV9GSVJNV0FSRV9WT0xVTUVf SEVBREVSICAqRnZIZWFkZXI7DQo+ICAgDQo+IC0gIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IHNp emVvZiAobVBsYXRmb3JtRnZiTWVkaWFJbmZvKSAvIHNpemVvZiAoRUZJX0ZWQjJfTUVESUFfSU5G Tyk7IEluZGV4KyspIHsNCj4gLSAgICBpZiAobVBsYXRmb3JtRnZiTWVkaWFJbmZvW0luZGV4XS5C YXNlQWRkcmVzcyA9PSBGdkJhc2VBZGRyZXNzKSB7DQo+IC0gICAgICBGdkhlYWRlciA9ICZtUGxh dGZvcm1GdmJNZWRpYUluZm9bSW5kZXhdLkZ2YkluZm87DQo+ICsgIGZvciAoSW5kZXggPSAwOyBJ bmRleCA8IEFSUkFZX1NJWkUgKG1GdmJNZWRpYUluZm9HZW5lcmF0b3JzKTsgSW5kZXgrKykgew0K PiArICAgIFN0YXR1cyA9IG1GdmJNZWRpYUluZm9HZW5lcmF0b3JzW0luZGV4XSgmRnZiTWVkaWFJ bmZvKTsNCj4gKyAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiArICAgIGlmICghRUZJ X0VSUk9SIChTdGF0dXMpICYmIChGdmJNZWRpYUluZm8uQmFzZUFkZHJlc3MgPT0gRnZCYXNlQWRk cmVzcykpIHsNCj4gKyAgICAgIEZ2SGVhZGVyID0gQWxsb2NhdGVDb3B5UG9vbCAoc2l6ZW9mIA0K PiArIChFRklfRklSTVdBUkVfVk9MVU1FX0hFQURFUiksICZGdmJNZWRpYUluZm8uRnZiSW5mbyk7 DQo+ICAgDQo+ICAgICAgICAgLy8NCj4gICAgICAgICAvLyBVcGRhdGUgdGhlIGNoZWNrc3VtIHZh bHVlIG9mIEZWIGhlYWRlci4NCj4gZGlmZiAtLWdpdCANCj4gYS9TaWxpY29uL0ludGVsL0ludGVs U2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpRnZiU2Vydg0KPiBpY2VD b21tb24uYyANCj4gYi9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNo L1NwaUZ2YlNlcnZpY2UvU3BpRnZiU2Vydg0KPiBpY2VDb21tb24uYyBpbmRleCBkYWI4MThlOTgw ODcuLjk0MmFiZjk1YTY0ZiAxMDA2NDQNCj4gLS0tIA0KPiBhL1NpbGljb24vSW50ZWwvSW50ZWxT aWxpY29uUGtnL0ZlYXR1cmUvRmxhc2gvU3BpRnZiU2VydmljZS9TcGlGdmJTZXJ2DQo+IGljZUNv bW1vbi5jDQo+ICsrKyBiL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvRmxh c2gvU3BpRnZiU2VydmljZS9TcGlGdmINCj4gKysrIFNlcnZpY2VDb21tb24uYw0KPiBAQCAtMyw2 ICszLDcgQEANCj4gICAgIHdoaWNoIGFyZSBjb21wbGlhbnQgd2l0aCB0aGUgSW50ZWwoUikgU2Vy aWFsIEZsYXNoIEludGVyZmFjZSBDb21wYXRpYmlsaXR5IFNwZWNpZmljYXRpb24uDQo+ICAgDQo+ ICAgQ29weXJpZ2h0IChjKSAyMDE3LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+ICtDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi48QlI+DQo+ ICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gICANCj4g ICAqKi8NCj4gQEAgLTI1LDEyICsyNiw2IEBAIEZWX0lORk8gbVBsYXRmb3JtRnZCYXNlQWRkcmVz c1tdID0gew0KPiAgICAgezAsIDB9DQo+ICAgfTsNCj4gICANCj4gLUZWX0lORk8gbVBsYXRmb3Jt RGVmYXVsdEJhc2VBZGRyZXNzW10gPSB7DQo+IC0gIHswLCAwfSwgLy8ge0ZpeGVkUGNkR2V0MzIo UGNkRmxhc2hOdlN0b3JhZ2VWYXJpYWJsZUJhc2UpLCANCj4gRml4ZWRQY2RHZXQzMihQY2RGbGFz aE52U3RvcmFnZVZhcmlhYmxlU2l6ZSl9LA0KPiAtICB7MCwgMH0sIC8vIHtGaXhlZFBjZEdldDMy KFBjZEZsYXNoTWljcm9jb2RlRnZCYXNlKSwgDQo+IEZpeGVkUGNkR2V0MzIoUGNkRmxhc2hNaWNy b2NvZGVGdlNpemUpfSwNCj4gLSAgezAsIDB9DQo+IC19Ow0KPiAtDQo+ICAgRlZfTUVNTUFQX0RF VklDRV9QQVRIIG1Gdk1lbW1hcERldmljZVBhdGhUZW1wbGF0ZSA9IHsNCj4gICAgIHsNCj4gICAg ICAgew0KPiBAQCAtNTMwLDYgKzUyNSw4NSBAQCBGdmJTZXRWb2x1bWVBdHRyaWJ1dGVzICgNCj4g ICAgIHJldHVybiBFRklfU1VDQ0VTUzsNCj4gICB9DQo+ICAgDQo+ICsvKioNCj4gKyAgR2V0IHRo ZSB0b3RhbCBzaXplIG9mIHRoZSBmaXJtd2FyZSB2b2x1bWUgb24gZmxhc2ggdXNlZCBmb3IgdmFy aWFibGUgc3RvcmUgb3BlcmF0aW9ucy4NCj4gKw0KPiArICBAcGFyYW1bb3V0XSBCYXNlQWRkcmVz cyAgICAgICAgIEJhc2UgYWRkcmVzcyBvZiB0aGUgdmFyaWFibGUgc3RvcmUgZmlybXdhcmUgdm9s dW1lLg0KPiArICBAcGFyYW1bb3V0XSBMZW5ndGggICAgICAgICAgICAgIExlbmd0aCBpbiBieXRl cyBvZiB0aGUgZmlybXdhcmUgdm9sdW1lIHVzZWQgZm9yIHZhcmlhYmxlIHN0b3JlIG9wZXJhdGlv bnMuDQo+ICsNCj4gKyoqLw0KPiArVk9JRA0KPiArR2V0VmFyaWFibGVGdkluZm8gKA0KPiArICBP VVQgRUZJX1BIWVNJQ0FMX0FERFJFU1MgICAgICAqQmFzZUFkZHJlc3MsDQo+ICsgIE9VVCBVSU5U MzIgICAgICAgICAgICAgICAgICAgICpMZW5ndGgNCj4gKyAgKQ0KPiArew0KPiArICBFRklfU1RB VFVTICAgICAgICAgICAgICAgICAgICBTdGF0dXM7DQo+ICsgIEVGSV9QSFlTSUNBTF9BRERSRVNT ICAgICAgICAgIE52QmFzZUFkZHJlc3M7DQo+ICsgIEVGSV9QSFlTSUNBTF9BRERSRVNTICAgICAg ICAgIE52VmFyaWFibGVCYXNlQWRkcmVzczsNCj4gKyAgVUlOVDY0ICAgICAgICAgICAgICAgICAg ICAgICAgTGVuZ3RoNjQ7DQo+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgIE52U3Rv cmVMZW5ndGg7DQo+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgIEZ0d1NwYXJlTGVu Z3RoOw0KPiArICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICBGdHdXb3JraW5nTGVuZ3Ro Ow0KPiArICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICBUb3RhbExlbmd0aDsNCj4gKw0K PiArICBUb3RhbExlbmd0aCA9IDA7DQo+ICsgIFN0YXR1cyA9IEVGSV9TVUNDRVNTOw0KPiArDQo+ ICsgIGlmICgoQmFzZUFkZHJlc3MgPT0gTlVMTCkgfHwgKExlbmd0aCA9PSBOVUxMKSkgew0KPiAr ICAgIEFTU0VSVCAoKEJhc2VBZGRyZXNzICE9IE5VTEwpICYmIChMZW5ndGggIT0gTlVMTCkpOw0K PiArICAgIHJldHVybjsNCj4gKyAgfQ0KPiArICAqQmFzZUFkZHJlc3MgPSAwOw0KPiArICAqTGVu Z3RoID0gMDsNCj4gKw0KPiArICBTdGF0dXMgPSBHZXRWYXJpYWJsZUZsYXNoTnZTdG9yYWdlSW5m byAoJk52QmFzZUFkZHJlc3MsICZMZW5ndGg2NCk7ICANCj4gKyBpZiAoIUVGSV9FUlJPUiAoU3Rh dHVzKSkgew0KPiArICAgIE52VmFyaWFibGVCYXNlQWRkcmVzcyA9IE52QmFzZUFkZHJlc3M7DQo+ ICsgICAgLy8gU3RheSB3aXRoaW4gdGhlIGN1cnJlbnQgVUlOVDMyIHNpemUgYXNzdW1wdGlvbnMg aW4gdGhlIHZhcmlhYmxlIHN0YWNrLg0KPiArICAgIFN0YXR1cyA9IFNhZmVVaW50NjRUb1VpbnQz MiAoTGVuZ3RoNjQsICZOdlN0b3JlTGVuZ3RoKTsgIH0gIGlmIA0KPiArIChFRklfRVJST1IgKFN0 YXR1cykpIHsNCj4gKyAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiArICAgIHJldHVy bjsNCj4gKyAgfQ0KPiArDQo+ICsgIFN0YXR1cyA9IEdldFZhcmlhYmxlRmxhc2hGdHdTcGFyZUlu Zm8gKCZOdkJhc2VBZGRyZXNzLCAmTGVuZ3RoNjQpOyAgDQo+ICsgaWYgKCFFRklfRVJST1IgKFN0 YXR1cykpIHsNCj4gKyAgICAvLyBTdGF5IHdpdGhpbiB0aGUgY3VycmVudCBVSU5UMzIgc2l6ZSBh c3N1bXB0aW9ucyBpbiB0aGUgdmFyaWFibGUgc3RhY2suDQo+ICsgICAgU3RhdHVzID0gU2FmZVVp bnQ2NFRvVWludDMyIChMZW5ndGg2NCwgJkZ0d1NwYXJlTGVuZ3RoKTsgIH0gIGlmIA0KPiArIChF RklfRVJST1IgKFN0YXR1cykpIHsNCj4gKyAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0K PiArICAgIHJldHVybjsNCj4gKyAgfQ0KPiArDQo+ICsgIFN0YXR1cyA9IEdldFZhcmlhYmxlRmxh c2hGdHdXb3JraW5nSW5mbyAoJk52QmFzZUFkZHJlc3MsIA0KPiArICZMZW5ndGg2NCk7ICBpZiAo IUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiArICAgIC8vIFN0YXkgd2l0aGluIHRoZSBjdXJyZW50 IFVJTlQzMiBzaXplIGFzc3VtcHRpb25zIGluIHRoZSB2YXJpYWJsZSBzdGFjay4NCj4gKyAgICBT dGF0dXMgPSBTYWZlVWludDY0VG9VaW50MzIgKExlbmd0aDY0LCAmRnR3V29ya2luZ0xlbmd0aCk7 ICB9ICBpZiANCj4gKyAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ICsgICAgQVNTRVJUX0VGSV9F UlJPUiAoU3RhdHVzKTsNCj4gKyAgICByZXR1cm47DQo+ICsgIH0NCj4gKw0KPiArICBTdGF0dXMg PSBTYWZlVWludDMyQWRkIChOdlN0b3JlTGVuZ3RoLCBGdHdTcGFyZUxlbmd0aCwgDQo+ICsgJlRv dGFsTGVuZ3RoKTsgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gKyAgICBBU1NFUlRfRUZJ X0VSUk9SIChTdGF0dXMpOw0KPiArICAgIHJldHVybjsNCj4gKyAgfQ0KPiArDQo+ICsgIFN0YXR1 cyA9IFNhZmVVaW50MzJBZGQgKFRvdGFsTGVuZ3RoLCBGdHdXb3JraW5nTGVuZ3RoLCANCj4gKyAm VG90YWxMZW5ndGgpOyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiArICAgIEFTU0VSVF9F RklfRVJST1IgKFN0YXR1cyk7DQo+ICsgICAgcmV0dXJuOw0KPiArICB9DQo+ICsNCj4gKyAgKkJh c2VBZGRyZXNzID0gTnZWYXJpYWJsZUJhc2VBZGRyZXNzOw0KPiArICAqTGVuZ3RoID0gVG90YWxM ZW5ndGg7DQo+ICt9DQo+ICsNCj4gICAvKioNCj4gICAgIENoZWNrIHRoZSBpbnRlZ3JpdHkgb2Yg ZmlybXdhcmUgdm9sdW1lIGhlYWRlcg0KPiAgIA0KPiBAQCAtNTQ1LDcgKzYxOSwxMiBAQCBJc0Z2 SGVhZGVyVmFsaWQgKA0KPiAgICAgSU4gQ09OU1QgRUZJX0ZJUk1XQVJFX1ZPTFVNRV9IRUFERVIg ICAgKkZ2SGVhZGVyDQo+ICAgICApDQo+ICAgew0KPiAtICBpZiAoRnZCYXNlID09IFBjZEdldDMy KFBjZEZsYXNoTnZTdG9yYWdlVmFyaWFibGVCYXNlKSkgew0KPiArICBFRklfUEhZU0lDQUxfQURE UkVTUyAgICBOdlN0b3JhZ2VGdkJhc2VBZGRyZXNzOw0KPiArICBVSU5UMzIgICAgICAgICAgICAg ICAgICBOdlN0b3JhZ2VTaXplOw0KPiArDQo+ICsgIEdldFZhcmlhYmxlRnZJbmZvICgmTnZTdG9y YWdlRnZCYXNlQWRkcmVzcywgJk52U3RvcmFnZVNpemUpOw0KPiArDQo+ICsgIGlmIChGdkJhc2Ug PT0gTnZTdG9yYWdlRnZCYXNlQWRkcmVzcykgew0KPiAgICAgICBpZiAoQ29tcGFyZU1lbSAoJkZ2 SGVhZGVyLT5GaWxlU3lzdGVtR3VpZCwgJmdFZmlTeXN0ZW1OdkRhdGFGdkd1aWQsIHNpemVvZihF RklfR1VJRCkpICE9IDAgKSB7DQo+ICAgICAgICAgcmV0dXJuIEZBTFNFOw0KPiAgICAgICB9DQo+ IGRpZmYgLS1naXQgDQo+IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9G bGFzaC9TcGlGdmJTZXJ2aWNlL1NwaUZ2YlNlcnYNCj4gaWNlTW0uYyANCj4gYi9TaWxpY29uL0lu dGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpRnZiU2Vy dg0KPiBpY2VNbS5jIGluZGV4IDQyYTA4MjhjNmZhZS4uNmI0YmNkY2ZlM2M0IDEwMDY0NA0KPiAt LS0gDQo+IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9GbGFzaC9TcGlG dmJTZXJ2aWNlL1NwaUZ2YlNlcnYNCj4gaWNlTW0uYw0KPiArKysgYi9TaWxpY29uL0ludGVsL0lu dGVsU2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpRnZiDQo+ICsrKyBT ZXJ2aWNlTW0uYw0KPiBAQCAtMTEzLDE1ICsxMTMsMzEgQEAgRnZiSW5pdGlhbGl6ZSAoDQo+ICAg ICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heExiYVNpemU7DQo+ICAg ICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5dGVzV3JpdHRlbjsNCj4g ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZXNFcmFzZWQ7DQo+ ICsgIFVJTlQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTnZTdG9yYWdlRnZTaXpl Ow0KPiArDQo+ICsgIFN0YXR1cyA9IEdldFZhcmlhYmxlRmxhc2hOdlN0b3JhZ2VJbmZvICgmQmFz ZUFkZHJlc3MsIA0KPiArICZOdlN0b3JhZ2VGdlNpemUpOyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVz KSkgew0KPiArICAgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ICsgICAgREVCVUcgKChE RUJVR19FUlJPUiwgIlslYV0gLSBBbiBlcnJvciBvY3VycmVkIGdldHRpbmcgdmFyaWFibGUgaW5m byAtICVyLlxuIiwgX19GVU5DVElPTl9fLCBTdGF0dXMpKTsNCj4gKyAgICByZXR1cm47DQo+ICsg IH0NCj4gKw0KPiArICAvLyBTdGF5IHdpdGhpbiB0aGUgY3VycmVudCBVSU5UMzIgc2l6ZSBhc3N1 bXB0aW9ucyBpbiB0aGUgdmFyaWFibGUgc3RhY2suDQo+ICsgIFN0YXR1cyA9IFNhZmVVaW50NjRU b1VpbnQzMiAoQmFzZUFkZHJlc3MsIA0KPiArICZtUGxhdGZvcm1GdkJhc2VBZGRyZXNzWzBdLkZ2 QmFzZSk7DQo+ICsgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gKyAgICBBU1NFUlRfRUZJ X0VSUk9SIChTdGF0dXMpOw0KPiArICAgIERFQlVHICgoREVCVUdfRVJST1IsICJbJWFdIC0gNjQt Yml0IHZhcmlhYmxlIHN0b3JhZ2UgYmFzZSBhZGRyZXNzIG5vdCBzdXBwb3J0ZWQuXG4iLCBfX0ZV TkNUSU9OX18pKTsNCj4gKyAgICByZXR1cm47DQo+ICsgIH0NCj4gKyAgU3RhdHVzID0gU2FmZVVp bnQ2NFRvVWludDMyIChOdlN0b3JhZ2VGdlNpemUsIA0KPiArICZtUGxhdGZvcm1GdkJhc2VBZGRy ZXNzWzBdLkZ2U2l6ZSk7DQo+ICsgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gKyAgICBB U1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiArICAgIERFQlVHICgoREVCVUdfRVJST1IsICJb JWFdIC0gNjQtYml0IHZhcmlhYmxlIHN0b3JhZ2Ugc2l6ZSBub3Qgc3VwcG9ydGVkLlxuIiwgX19G VU5DVElPTl9fKSk7DQo+ICsgICAgcmV0dXJuOw0KPiArICB9DQo+ICAgDQo+IC0gIG1QbGF0Zm9y bUZ2QmFzZUFkZHJlc3NbMF0uRnZCYXNlID0gDQo+IFBjZEdldDMyKFBjZEZsYXNoTnZTdG9yYWdl VmFyaWFibGVCYXNlKTsNCj4gLSAgbVBsYXRmb3JtRnZCYXNlQWRkcmVzc1swXS5GdlNpemUgPSBQ Y2RHZXQzMihQY2RGbGFzaE52U3RvcmFnZVZhcmlhYmxlU2l6ZSk7DQo+ICAgICBtUGxhdGZvcm1G dkJhc2VBZGRyZXNzWzFdLkZ2QmFzZSA9IFBjZEdldDMyKFBjZEZsYXNoTWljcm9jb2RlRnZCYXNl KTsNCj4gICAgIG1QbGF0Zm9ybUZ2QmFzZUFkZHJlc3NbMV0uRnZTaXplID0gDQo+IFBjZEdldDMy KFBjZEZsYXNoTWljcm9jb2RlRnZTaXplKTsNCj4gLSAgbVBsYXRmb3JtRGVmYXVsdEJhc2VBZGRy ZXNzWzBdLkZ2QmFzZSA9IA0KPiBQY2RHZXQzMihQY2RGbGFzaE52U3RvcmFnZVZhcmlhYmxlQmFz ZSk7DQo+IC0gIG1QbGF0Zm9ybURlZmF1bHRCYXNlQWRkcmVzc1swXS5GdlNpemUgPSANCj4gUGNk R2V0MzIoUGNkRmxhc2hOdlN0b3JhZ2VWYXJpYWJsZVNpemUpOw0KPiAtICBtUGxhdGZvcm1EZWZh dWx0QmFzZUFkZHJlc3NbMV0uRnZCYXNlID0gDQo+IFBjZEdldDMyKFBjZEZsYXNoTWljcm9jb2Rl RnZCYXNlKTsNCj4gLSAgbVBsYXRmb3JtRGVmYXVsdEJhc2VBZGRyZXNzWzFdLkZ2U2l6ZSA9IA0K PiBQY2RHZXQzMihQY2RGbGFzaE1pY3JvY29kZUZ2U2l6ZSk7DQo+ICAgDQo+ICAgICAvLw0KPiAg ICAgLy8gV2Ugd2lsbCBvbmx5IGNvbnRpbnVlIHdpdGggRlZCIGluc3RhbGxhdGlvbiBpZiB0aGUg QEAgLTE0Myw3IA0KPiArMTU5LDggQEAgRnZiSW5pdGlhbGl6ZSAoDQo+ICAgICAgICAgICBCeXRl c1dyaXR0ZW4gPSAwOw0KPiAgICAgICAgICAgQnl0ZXNFcmFzZWQgPSAwOw0KPiAgICAgICAgICAg REVCVUcgKChERUJVR19FUlJPUiwgIkVSUk9SIC0gVGhlIEZWIGluIDB4JXggaXMgaW52YWxpZCFc biIsIEZ2SGVhZGVyKSk7DQo+IC0gICAgICAgIFN0YXR1cyA9IEdldEZ2YkluZm8gKEJhc2VBZGRy ZXNzLCAmRnZIZWFkZXIpOw0KPiArICAgICAgICBGdkhlYWRlciA9IE5VTEw7DQo+ICsgICAgICAg IFN0YXR1cyAgID0gR2V0RnZiSW5mbyAoQmFzZUFkZHJlc3MsICZGdkhlYWRlcik7DQo+ICAgICAg ICAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ICAgICAgICAgICAgIERFQlVHICgoREVC VUdfV0FSTiwgIkVSUk9SIC0gQ2FuJ3QgcmVjb3ZlcnkgRlYgaGVhZGVyIGF0IDB4JXguICBHZXRG dmJJbmZvIFN0YXR1cyAlclxuIiwgQmFzZUFkZHJlc3MsIFN0YXR1cykpOw0KPiAgICAgICAgICAg ICBjb250aW51ZTsNCj4gQEAgLTE1NiwyNyArMTczLDQyIEBAIEZ2YkluaXRpYWxpemUgKA0KPiAg ICAgICAgICAgU3RhdHVzID0gU3BpRmxhc2hCbG9ja0VyYXNlKCAoVUlOVE4pIEJhc2VBZGRyZXNz LCAmQnl0ZXNFcmFzZWQpOw0KPiAgICAgICAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0K PiAgICAgICAgICAgICBERUJVRyAoKERFQlVHX1dBUk4sICJFUlJPUiAtIFNwaUZsYXNoQmxvY2tF cmFzZSBFcnJvciAgDQo+ICVyXG4iLCBTdGF0dXMpKTsNCj4gKyAgICAgICAgICBpZiAoRnZIZWFk ZXIgIT0gTlVMTCkgew0KPiArICAgICAgICAgICAgRnJlZVBvb2wgKEZ2SGVhZGVyKTsNCj4gKyAg ICAgICAgICB9DQo+ICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiAgICAgICAgICAgfQ0KPiAgICAg ICAgICAgaWYgKEJ5dGVzRXJhc2VkICE9IEZ2SGVhZGVyLT5CbG9ja01hcC0+TGVuZ3RoKSB7DQo+ ICAgICAgICAgICAgIERFQlVHICgoREVCVUdfV0FSTiwgIkVSUk9SIC0gQnl0ZXNFcmFzZWQgIT0g RnZIZWFkZXItPkJsb2NrTWFwLT5MZW5ndGhcbiIpKTsNCj4gICAgICAgICAgICAgREVCVUcgKChE RUJVR19JTkZPLCAiIEJ5dGVzRXJhc2VkID0gMHglWFxuIExlbmd0aCA9IA0KPiAweCVYXG4iLCBC eXRlc0VyYXNlZCwgRnZIZWFkZXItPkJsb2NrTWFwLT5MZW5ndGgpKTsNCj4gKyAgICAgICAgICBp ZiAoRnZIZWFkZXIgIT0gTlVMTCkgew0KPiArICAgICAgICAgICAgRnJlZVBvb2wgKEZ2SGVhZGVy KTsNCj4gKyAgICAgICAgICB9DQo+ICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiAgICAgICAgICAg fQ0KPiAgICAgICAgICAgQnl0ZXNXcml0dGVuID0gRnZIZWFkZXItPkhlYWRlckxlbmd0aDsNCj4g ICAgICAgICAgIFN0YXR1cyA9IFNwaUZsYXNoV3JpdGUgKChVSU5UTilCYXNlQWRkcmVzcywgJkJ5 dGVzV3JpdHRlbiwgKFVJTlQ4KilGdkhlYWRlcik7DQo+ICAgICAgICAgICBpZiAoRUZJX0VSUk9S IChTdGF0dXMpKSB7DQo+ICAgICAgICAgICAgIERFQlVHICgoREVCVUdfV0FSTiwgIkVSUk9SIC0g U3BpRmxhc2hXcml0ZSBFcnJvciAgJXJcbiIsIA0KPiBTdGF0dXMpKTsNCj4gKyAgICAgICAgICBp ZiAoRnZIZWFkZXIgIT0gTlVMTCkgew0KPiArICAgICAgICAgICAgRnJlZVBvb2wgKEZ2SGVhZGVy KTsNCj4gKyAgICAgICAgICB9DQo+ICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiAgICAgICAgICAg fQ0KPiAgICAgICAgICAgaWYgKEJ5dGVzV3JpdHRlbiAhPSBGdkhlYWRlci0+SGVhZGVyTGVuZ3Ro KSB7DQo+ICAgICAgICAgICAgIERFQlVHICgoREVCVUdfV0FSTiwgIkVSUk9SIC0gQnl0ZXNXcml0 dGVuICE9IEhlYWRlckxlbmd0aFxuIikpOw0KPiAgICAgICAgICAgICBERUJVRyAoKERFQlVHX0lO Rk8sICIgQnl0ZXNXcml0dGVuID0gMHglWFxuIEhlYWRlckxlbmd0aCA9IA0KPiAweCVYXG4iLCBC eXRlc1dyaXR0ZW4sIEZ2SGVhZGVyLT5IZWFkZXJMZW5ndGgpKTsNCj4gKyAgICAgICAgICBpZiAo RnZIZWFkZXIgIT0gTlVMTCkgew0KPiArICAgICAgICAgICAgRnJlZVBvb2wgKEZ2SGVhZGVyKTsN Cj4gKyAgICAgICAgICB9DQo+ICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiAgICAgICAgICAgfQ0K PiAgICAgICAgICAgU3RhdHVzID0gU3BpRmxhc2hMb2NrICgpOw0KPiAgICAgICAgICAgaWYgKEVG SV9FUlJPUiAoU3RhdHVzKSkgew0KPiAgICAgICAgICAgICBERUJVRyAoKERFQlVHX1dBUk4sICJF UlJPUiAtIFNwaUZsYXNoTG9jayBFcnJvciAgJXJcbiIsIA0KPiBTdGF0dXMpKTsNCj4gKyAgICAg ICAgICBpZiAoRnZIZWFkZXIgIT0gTlVMTCkgew0KPiArICAgICAgICAgICAgRnJlZVBvb2wgKEZ2 SGVhZGVyKTsNCj4gKyAgICAgICAgICB9DQo+ICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiAgICAg ICAgICAgfQ0KPiAgICAgICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiRlYgSGVhZGVyIEAgMHgl WCByZXN0b3JlZCB3aXRoIHN0YXRpYyANCj4gZGF0YVxuIiwgQmFzZUFkZHJlc3MpKTsgQEAgLTE4 NCw2ICsyMTYsOSBAQCBGdmJJbml0aWFsaXplICgNCj4gICAgICAgICAgIC8vIENsZWFyIGNhY2hl IGZvciB0aGlzIHJhbmdlLg0KPiAgICAgICAgICAgLy8NCj4gICAgICAgICAgIFdyaXRlQmFja0lu dmFsaWRhdGVEYXRhQ2FjaGVSYW5nZSAoIChWT0lEICopIChVSU5UTikgDQo+IEJhc2VBZGRyZXNz LCBGdkhlYWRlci0+QmxvY2tNYXAtPkxlbmd0aCk7DQo+ICsgICAgICAgIGlmIChGdkhlYWRlciAh PSBOVUxMKSB7DQo+ICsgICAgICAgICAgRnJlZVBvb2wgKEZ2SGVhZGVyKTsNCj4gKyAgICAgICAg fQ0KPiAgICAgICAgIH0NCj4gICAgICAgfQ0KPiAgIA0KPiBkaWZmIC0tZ2l0IA0KPiBhL1NpbGlj b24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvRmxhc2gvU3BpRnZiU2VydmljZS9TcGlG dmJTZXJ2DQo+IGljZUNvbW1vbi5oIA0KPiBiL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtn L0ZlYXR1cmUvRmxhc2gvU3BpRnZiU2VydmljZS9TcGlGdmJTZXJ2DQo+IGljZUNvbW1vbi5oIGlu ZGV4IGU5ZDY5ZTk4NTgxNC4uN2IwOTA4YjAzZmRjIDEwMDY0NA0KPiAtLS0gDQo+IGEvU2lsaWNv bi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNlL1NwaUZ2 YlNlcnYNCj4gaWNlQ29tbW9uLmgNCj4gKysrIGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Q a2cvRmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNlL1NwaUZ2Yg0KPiArKysgU2VydmljZUNvbW1v bi5oDQo+IEBAIC0yLDYgKzIsNyBAQA0KPiAgICAgQ29tbW9uIHNvdXJjZSBkZWZpbml0aW9ucyB1 c2VkIGluIHNlcmlhbCBmbGFzaCBkcml2ZXJzDQo+ICAgDQo+ICAgQ29weXJpZ2h0IChjKSAyMDE3 LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICtDb3B5cmln aHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi48QlI+DQo+ICAgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gICANCj4gICAqKi8NCj4gQEAgLTEyLDYgKzEz LDcgQEAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gICAj aW5jbHVkZSA8R3VpZC9FdmVudEdyb3VwLmg+DQo+ICAgI2luY2x1ZGUgPEd1aWQvRmlybXdhcmVG aWxlU3lzdGVtMi5oPg0KPiAgICNpbmNsdWRlIDxHdWlkL1N5c3RlbU52RGF0YUd1aWQuaD4NCj4g KyNpbmNsdWRlIDxQaS9QaUZpcm13YXJlVm9sdW1lLmg+DQo+ICAgI2luY2x1ZGUgPFByb3RvY29s L0RldmljZVBhdGguaD4NCj4gICAjaW5jbHVkZSA8UHJvdG9jb2wvRmlybXdhcmVWb2x1bWVCbG9j ay5oPg0KPiAgIA0KPiBAQCAtMjQsNiArMjYsOCBAQCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudA0KPiAgICNpbmNsdWRlIDxMaWJyYXJ5L1BjZExpYi5oPg0KPiAg ICNpbmNsdWRlIDxMaWJyYXJ5L0RldmljZVBhdGhMaWIuaD4NCj4gICAjaW5jbHVkZSA8TGlicmFy eS9Ib2JMaWIuaD4NCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L1ZhcmlhYmxlRmxhc2hJbmZvTGliLmg+ ICNpbmNsdWRlIA0KPiArPExpYnJhcnkvU2FmZUludExpYi5oPg0KPiAgIA0KPiAgICNpbmNsdWRl IDxMaWJyYXJ5L1NwaUZsYXNoQ29tbW9uTGliLmg+DQo+ICAgDQo+IEBAIC0xNDgsMTEgKzE1Miwy MyBAQCBHZXRGdmJJbmZvICgNCj4gICAgIE9VVCBFRklfRklSTVdBUkVfVk9MVU1FX0hFQURFUiAg ICoqRnZiSW5mbw0KPiAgICAgKTsNCj4gICANCj4gKy8qKg0KPiArICBHZXQgdGhlIHRvdGFsIHNp emUgb2YgdGhlIGZpcm13YXJlIHZvbHVtZSBvbiBmbGFzaCB1c2VkIGZvciB2YXJpYWJsZSBzdG9y ZSBvcGVyYXRpb25zLg0KPiArDQo+ICsgIEBwYXJhbVtvdXRdIEJhc2VBZGRyZXNzICAgICAgICAg QmFzZSBhZGRyZXNzIG9mIHRoZSB2YXJpYWJsZSBzdG9yZSBmaXJtd2FyZSB2b2x1bWUuDQo+ICsg IEBwYXJhbVtvdXRdIExlbmd0aCAgICAgICAgICAgICAgTGVuZ3RoIGluIGJ5dGVzIG9mIHRoZSBm aXJtd2FyZSB2b2x1bWUgdXNlZCBmb3IgdmFyaWFibGUgc3RvcmUgb3BlcmF0aW9ucy4NCj4gKw0K PiArKiovDQo+ICtWT0lEDQo+ICtHZXRWYXJpYWJsZUZ2SW5mbyAoDQo+ICsgIE9VVCBFRklfUEhZ U0lDQUxfQUREUkVTUyAgICAgICpCYXNlQWRkcmVzcywNCj4gKyAgT1VUIFVJTlQzMiAgICAgICAg ICAgICAgICAgICAgKkxlbmd0aA0KPiArICApOw0KPiArDQo+ICAgZXh0ZXJuIEZWQl9HTE9CQUwg ICAgICAgICAgICAgICAgICAgICAgICAgbUZ2Yk1vZHVsZUdsb2JhbDsNCj4gICBleHRlcm4gRlZf TUVNTUFQX0RFVklDRV9QQVRIICAgICAgICAgICAgICBtRnZNZW1tYXBEZXZpY2VQYXRoVGVtcGxh dGU7DQo+ICAgZXh0ZXJuIEZWX1BJV0dfREVWSUNFX1BBVEggICAgICAgICAgICAgICAgbUZ2UElX R0RldmljZVBhdGhUZW1wbGF0ZTsNCj4gICBleHRlcm4gRUZJX0ZJUk1XQVJFX1ZPTFVNRV9CTE9D S19QUk9UT0NPTCBtRnZiUHJvdG9jb2xUZW1wbGF0ZTsNCj4gICBleHRlcm4gRlZfSU5GTyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtUGxhdGZvcm1GdkJhc2VBZGRyZXNzW107DQo+IC1leHRl cm4gRlZfSU5GTyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtUGxhdGZvcm1EZWZhdWx0QmFz ZUFkZHJlc3NbXTsNCj4gICANCj4gICAjZW5kaWYNCj4gZGlmZiAtLWdpdCANCj4gYS9TaWxpY29u L0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpRnZi U2Vydg0KPiBpY2VTbW0uaW5mIA0KPiBiL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0Zl YXR1cmUvRmxhc2gvU3BpRnZiU2VydmljZS9TcGlGdmJTZXJ2DQo+IGljZVNtbS5pbmYgaW5kZXgg YmYxMzA2ZjAwMjAxLi4wY2ZhM2Y5MDliZGYgMTAwNjQ0DQo+IC0tLSANCj4gYS9TaWxpY29uL0lu dGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpRnZiU2Vy dg0KPiBpY2VTbW0uaW5mDQo+ICsrKyBiL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0Zl YXR1cmUvRmxhc2gvU3BpRnZiU2VydmljZS9TcGlGdmINCj4gKysrIFNlcnZpY2VTbW0uaW5mDQo+ IEBAIC0zMiw4ICszMiwxMCBAQCBbTGlicmFyeUNsYXNzZXNdDQo+ICAgICBCYXNlTGliDQo+ICAg ICBVZWZpQm9vdFNlcnZpY2VzVGFibGVMaWINCj4gICAgIFVlZmlEcml2ZXJFbnRyeVBvaW50DQo+ ICsgIFNhZmVJbnRMaWINCj4gICAgIFNwaUZsYXNoQ29tbW9uTGliDQo+ICAgICBNbVNlcnZpY2Vz VGFibGVMaWINCj4gKyAgVmFyaWFibGVGbGFzaEluZm9MaWINCj4gICANCj4gICBbUGFja2FnZXNd DQo+ICAgICBNZGVQa2cvTWRlUGtnLmRlYw0KPiBAQCAtNDEsMTAgKzQzLDYgQEAgW1BhY2thZ2Vz XQ0KPiAgICAgSW50ZWxTaWxpY29uUGtnL0ludGVsU2lsaWNvblBrZy5kZWMNCj4gICANCj4gICBb UGNkXQ0KPiAtICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRmxhc2hOdlN0b3Jh Z2VWYXJpYWJsZUJhc2UgICAjIyBDT05TVU1FUw0KPiAtICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5T cGFjZUd1aWQuUGNkRmxhc2hOdlN0b3JhZ2VWYXJpYWJsZVNpemUgICAjIyBDT05TVU1FUw0KPiAt ICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRmxhc2hOdlN0b3JhZ2VGdHdXb3Jr aW5nU2l6ZSAjIyBDT05TVU1FUw0KPiAtICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQu UGNkRmxhc2hOdlN0b3JhZ2VGdHdTcGFyZVNpemUgICAjIyBDT05TVU1FUw0KPiAgICAgZ0ludGVs U2lsaWNvblBrZ1Rva2VuU3BhY2VHdWlkLlBjZEZsYXNoTWljcm9jb2RlRnZCYXNlICAgICAgICAg IyMgQ09OU1VNRVMNCj4gICAgIGdJbnRlbFNpbGljb25Qa2dUb2tlblNwYWNlR3VpZC5QY2RGbGFz aE1pY3JvY29kZUZ2U2l6ZSAgICAgICAgICMjIENPTlNVTUVTDQo+ICAgDQo+IGRpZmYgLS1naXQg DQo+IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9GbGFzaC9TcGlGdmJT ZXJ2aWNlL1NwaUZ2YlNlcnYNCj4gaWNlU3RhbmRhbG9uZU1tLmluZiANCj4gYi9TaWxpY29uL0lu dGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpRnZiU2Vy dg0KPiBpY2VTdGFuZGFsb25lTW0uaW5mIGluZGV4IGI2NjIzMzk2ODI0Ny4uMTUyY2YwMDM2ZmRi IDEwMDY0NA0KPiAtLS0gDQo+IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVy ZS9GbGFzaC9TcGlGdmJTZXJ2aWNlL1NwaUZ2YlNlcnYNCj4gaWNlU3RhbmRhbG9uZU1tLmluZg0K PiArKysgYi9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNoL1NwaUZ2 YlNlcnZpY2UvU3BpRnZiDQo+ICsrKyBTZXJ2aWNlU3RhbmRhbG9uZU1tLmluZg0KPiBAQCAtMzEs OCArMzEsMTAgQEAgW0xpYnJhcnlDbGFzc2VzXQ0KPiAgICAgTWVtb3J5QWxsb2NhdGlvbkxpYg0K PiAgICAgUGNkTGliDQo+ICAgICBNbVNlcnZpY2VzVGFibGVMaWINCj4gKyAgU2FmZUludExpYg0K PiAgICAgU3BpRmxhc2hDb21tb25MaWINCj4gICAgIFN0YW5kYWxvbmVNbURyaXZlckVudHJ5UG9p bnQNCj4gKyAgVmFyaWFibGVGbGFzaEluZm9MaWINCj4gICANCj4gICBbUGFja2FnZXNdDQo+ICAg ICBNZGVQa2cvTWRlUGtnLmRlYw0KPiBAQCAtNDAsMTAgKzQyLDYgQEAgW1BhY2thZ2VzXQ0KPiAg ICAgSW50ZWxTaWxpY29uUGtnL0ludGVsU2lsaWNvblBrZy5kZWMNCj4gICANCj4gICBbUGNkXQ0K PiAtICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRmxhc2hOdlN0b3JhZ2VWYXJp YWJsZUJhc2UgICAjIyBDT05TVU1FUw0KPiAtICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1 aWQuUGNkRmxhc2hOdlN0b3JhZ2VWYXJpYWJsZVNpemUgICAjIyBDT05TVU1FUw0KPiAtICBnRWZp TWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRmxhc2hOdlN0b3JhZ2VGdHdXb3JraW5nU2l6 ZSAjIyBDT05TVU1FUw0KPiAtICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRmxh c2hOdlN0b3JhZ2VGdHdTcGFyZVNpemUgICAjIyBDT05TVU1FUw0KPiAgICAgZ0ludGVsU2lsaWNv blBrZ1Rva2VuU3BhY2VHdWlkLlBjZEZsYXNoTWljcm9jb2RlRnZCYXNlICAgICAgICAgIyMgQ09O U1VNRVMNCj4gICAgIGdJbnRlbFNpbGljb25Qa2dUb2tlblNwYWNlR3VpZC5QY2RGbGFzaE1pY3Jv Y29kZUZ2U2l6ZSAgICAgICAgICMjIENPTlNVTUVTDQo+ICAgDQo+IGRpZmYgLS1naXQgYS9TaWxp Y29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9JbnRlbFNpbGljb25Qa2cuZHNjIA0KPiBiL1NpbGlj b24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ludGVsU2lsaWNvblBrZy5kc2MNCj4gaW5kZXggMWU4 MjZhMDgwZjI4Li4xNzBlYjQ4MGFkYTEgMTAwNjQ0DQo+IC0tLSBhL1NpbGljb24vSW50ZWwvSW50 ZWxTaWxpY29uUGtnL0ludGVsU2lsaWNvblBrZy5kc2MNCj4gKysrIGIvU2lsaWNvbi9JbnRlbC9J bnRlbFNpbGljb25Qa2cvSW50ZWxTaWxpY29uUGtnLmRzYw0KPiBAQCAtNDAsOSArNDAsMTEgQEAg W0xpYnJhcnlDbGFzc2VzXQ0KPiAgICAgUGVpR2V0VnRkUG1yQWxpZ25tZW50TGlifEludGVsU2ls aWNvblBrZy9MaWJyYXJ5L1BlaUdldFZ0ZFBtckFsaWdubWVudExpYi9QZWlHZXRWdGRQbXJBbGln bm1lbnRMaWIuaW5mDQo+ICAgICBUcG1NZWFzdXJlbWVudExpYnxNZGVNb2R1bGVQa2cvTGlicmFy eS9UcG1NZWFzdXJlbWVudExpYk51bGwvVHBtTWVhc3VyZW1lbnRMaWJOdWxsLmluZg0KPiAgICAg TWljcm9jb2RlTGlifFVlZmlDcHVQa2cvTGlicmFyeS9NaWNyb2NvZGVMaWIvTWljcm9jb2RlTGli LmluZg0KPiArICBTYWZlSW50TGlifE1kZVBrZy9MaWJyYXJ5L0Jhc2VTYWZlSW50TGliL0Jhc2VT YWZlSW50TGliLmluZg0KPiAgICAgU3BpRmxhc2hDb21tb25MaWJ8SW50ZWxTaWxpY29uUGtnL0xp YnJhcnkvU3BpRmxhc2hDb21tb25MaWJOdWxsL1NwaUZsYXNoQ29tbW9uTGliTnVsbC5pbmYNCj4g ICAgIFVlZmlCb290U2VydmljZXNUYWJsZUxpYnxNZGVQa2cvTGlicmFyeS9VZWZpQm9vdFNlcnZp Y2VzVGFibGVMaWIvVWVmaUJvb3RTZXJ2aWNlc1RhYmxlTGliLmluZg0KPiAgICAgDQo+IFVlZmlE cml2ZXJFbnRyeVBvaW50fE1kZVBrZy9MaWJyYXJ5L1VlZmlEcml2ZXJFbnRyeVBvaW50L1VlZmlE cml2ZXJFbnQNCj4gcnlQb2ludC5pbmYNCj4gKyAgDQo+ICsgVmFyaWFibGVGbGFzaEluZm9MaWJ8 TWRlTW9kdWxlUGtnL0xpYnJhcnkvQmFzZVZhcmlhYmxlRmxhc2hJbmZvTGliL0INCj4gKyBhc2VW YXJpYWJsZUZsYXNoSW5mb0xpYi5pbmYNCj4gICANCj4gICBbTGlicmFyeUNsYXNzZXMuY29tbW9u LlBFSU1dDQo+ICAgICBQZWltRW50cnlQb2ludHxNZGVQa2cvTGlicmFyeS9QZWltRW50cnlQb2lu dC9QZWltRW50cnlQb2ludC5pbmYNCj4gQEAgLTYzLDExICs2NSwxNiBAQCBbTGlicmFyeUNsYXNz ZXMuY29tbW9uLkRYRV9EUklWRVJdDQo+ICAgICANCj4gTWVtb3J5QWxsb2NhdGlvbkxpYnxNZGVQ a2cvTGlicmFyeS9VZWZpTWVtb3J5QWxsb2NhdGlvbkxpYi9VZWZpTWVtb3J5QQ0KPiBsbG9jYXRp b25MaWIuaW5mDQo+ICAgDQo+ICAgW0xpYnJhcnlDbGFzc2VzLmNvbW1vbi5EWEVfU01NX0RSSVZF Ul0NCj4gKyAgDQo+ICsgRGV2aWNlUGF0aExpYnxNZGVQa2cvTGlicmFyeS9VZWZpRGV2aWNlUGF0 aExpYi9VZWZpRGV2aWNlUGF0aExpYi5pbmYNCj4gKyAgSG9iTGlifE1kZVBrZy9MaWJyYXJ5L0R4 ZUhvYkxpYi9EeGVIb2JMaWIuaW5mDQo+ICAgICBNZW1vcnlBbGxvY2F0aW9uTGlifE1kZVBrZy9M aWJyYXJ5L1NtbU1lbW9yeUFsbG9jYXRpb25MaWIvU21tTWVtb3J5QWxsb2NhdGlvbkxpYi5pbmYN Cj4gICAgIE1tU2VydmljZXNUYWJsZUxpYnxNZGVQa2cvTGlicmFyeS9NbVNlcnZpY2VzVGFibGVM aWIvTW1TZXJ2aWNlc1RhYmxlTGliLmluZg0KPiAgICAgDQo+IFNtbVNlcnZpY2VzVGFibGVMaWJ8 TWRlUGtnL0xpYnJhcnkvU21tU2VydmljZXNUYWJsZUxpYi9TbW1TZXJ2aWNlc1RhYmwNCj4gZUxp Yi5pbmYNCj4gKyAgVWVmaUxpYnxNZGVQa2cvTGlicmFyeS9VZWZpTGliL1VlZmlMaWIuaW5mDQo+ ICsgIA0KPiArIFVlZmlSdW50aW1lU2VydmljZXNUYWJsZUxpYnxNZGVQa2cvTGlicmFyeS9VZWZp UnVudGltZVNlcnZpY2VzVGFibGVMDQo+ICsgaWIvVWVmaVJ1bnRpbWVTZXJ2aWNlc1RhYmxlTGli LmluZg0KPiAgIA0KPiAgIFtMaWJyYXJ5Q2xhc3Nlcy5jb21tb24uTU1fU1RBTkRBTE9ORV0NCj4g KyAgDQo+ICsgSG9iTGlifFN0YW5kYWxvbmVNbVBrZy9MaWJyYXJ5L1N0YW5kYWxvbmVNbUhvYkxp Yi9TdGFuZGFsb25lTW1Ib2JMaWINCj4gKyAuaW5mDQo+ICAgICBNZW1vcnlBbGxvY2F0aW9uTGli fFN0YW5kYWxvbmVNbVBrZy9MaWJyYXJ5L1N0YW5kYWxvbmVNbU1lbW9yeUFsbG9jYXRpb25MaWIv U3RhbmRhbG9uZU1tTWVtb3J5QWxsb2NhdGlvbkxpYi5pbmYNCj4gICAgIE1tU2VydmljZXNUYWJs ZUxpYnxNZGVQa2cvTGlicmFyeS9TdGFuZGFsb25lTW1TZXJ2aWNlc1RhYmxlTGliL1N0YW5kYWxv bmVNbVNlcnZpY2VzVGFibGVMaWIuaW5mDQo+ICAgICANCj4gU3RhbmRhbG9uZU1tRHJpdmVyRW50 cnlQb2ludHxNZGVQa2cvTGlicmFyeS9TdGFuZGFsb25lTW1Ecml2ZXJFbnRyeVBvaQ0KPiBudC9T dGFuZGFsb25lTW1Ecml2ZXJFbnRyeVBvaW50LmluZg0KDQoNCg0KDQoNCg==