From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web11.2348.1664514532937178179 for ; Thu, 29 Sep 2022 22:08:53 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=O5p1VPZL; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1664514532; x=1696050532; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=z+vUWGvPOe9BrmJcZRrJaIok3Spx5B/aRegJ3cRL7SU=; b=O5p1VPZLuaLzPELiu9nxQKV96dyt1Znm5ci4dUV6eunOwFWzdHFcpxZR qaR8H72MIyrUEnhEYt00bo8MYrt+mDx+S8Fy0grXtMq7satVCToPefF6W ndg1MK5BYhOeIg2owawvAcaNkcTgRZdZR20t6vR5CUUlxYYBk5uK9uD/D XjjRzqzWPSHLlPcOREeWjgD5631i/ls++q8n4IN6KZ/0PCxcqdFaOY4Lz AQpBKceDcTg/MpQ/ywyEbVIfh3/m58aNaKamQuj1oHMwx7N0OEafVJX9d xTs7UY0HctMFM0hMl0KyHywMw2759qu5vGpvDrKzsEZuUNnk4NvnLyVF8 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10485"; a="302078750" X-IronPort-AV: E=Sophos;i="5.93,357,1654585200"; d="scan'208";a="302078750" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2022 22:08:51 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10485"; a="573740344" X-IronPort-AV: E=Sophos;i="5.93,357,1654585200"; d="scan'208";a="573740344" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga003.jf.intel.com with ESMTP; 29 Sep 2022 22:08:51 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) 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.2375.31; Thu, 29 Sep 2022 22:08:51 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 29 Sep 2022 22:08:50 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) 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.2375.31 via Frontend Transport; Thu, 29 Sep 2022 22:08:50 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) 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.2375.31; Thu, 29 Sep 2022 22:08:50 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y5b2fvnJmy4rqgRbkcKphjL26jdLW7qAMiUbm1SdrfJjldqehV/ks/ZQWxJKESTTqTBM6cI4TDtHgVBP5lp+dxFPpSWDdYGMKyouM+wYuKfsne9KQSOE6MHu0Lum0RLo9hEzvZGt1j627pdRyk5cTxTri+pSpIhUBI8MHe6OntvR+6Z+0jeFh+JWCeiXvLEmuCoY4i8nH/ihQipY/V76bTyrKnfqu9vKbRJ5AVJSuxXxVR7lO2e5pFkK5qEvuTyqbOxUh5E3iqLhTcBkSuVsoOStog1A3Q8pTH47ujadHZ1w/vxzyFnQWtvLRMSgp+wYWYSAl3swJR162Sy2aQ0yUw== 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=z+vUWGvPOe9BrmJcZRrJaIok3Spx5B/aRegJ3cRL7SU=; b=h9hy7rF41o0Qtm2cVrav+93djk1Xc2yQpAN5sRFRYpUqgYiDfbSvnIswaz/l85P/y0gTCS2iUx4QXsb9ffplEmJykrF+swdFbKxwKiDlN0SSBo/pcFomoohnP/MGtUG4tzZ5utUGjSHfu3CFBIocz51zbkHrzhBVq+23dPrJf0HHZ8AoQuCi3c92yc1F1Qjvs3kk/cc0uhgK276j97a0J/qO7zbgGix2qrr+IFSOUcg/TATCko0B4mZsNrumldNy7ccq5DpEDimHjJ8F8bQ7h58uJxUjW4Nyrhrx7Dfxbz+fTRt4M/i84yrIhUfNWE88QQdQKA7WvY95Qc4nRc2YTg== 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 CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by MN2PR11MB4709.namprd11.prod.outlook.com (2603:10b6:208:267::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.23; Fri, 30 Sep 2022 05:08:48 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::ce64:b1b4:e087:4cc2]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::ce64:b1b4:e087:4cc2%8]) with mapi id 15.20.5676.023; Fri, 30 Sep 2022 05:08:47 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "Li, Yi1" , "Kinney, Michael D" CC: "Yao, Jiewen" , "Wang, Jian J" , "Lu, Xiaoyu1" , "Jiang, Guomin" Subject: Re: [edk2-devel] [PATCH 3/3] CryptoPkg: Add new Tls APIs to DXE and protocol Thread-Topic: [edk2-devel] [PATCH 3/3] CryptoPkg: Add new Tls APIs to DXE and protocol Thread-Index: AQHY0XEVopMXrsBPukmSDG4W+KQfo633ciQQ Date: Fri, 30 Sep 2022 05:08:47 +0000 Message-ID: References: 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.500.17 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO1PR11MB4929:EE_|MN2PR11MB4709:EE_ x-ms-office365-filtering-correlation-id: 69791473-0bf9-4a90-5ec7-08daa2a1db31 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ijhKfeUIXkTjiLPr8x/gRkF+EWL2tlO3iCDog6tA4npWoORrEi5b9sPzw/5io9bQTcA3sBy6bBBAhLqjPeDqG8qW7dG+nJUDCxB9CkKcPSVAFHE15+Mpgtzg74RXdD/gRVLZTg3CqrStHlaSBbV8gR1I8yV3D6IRypOKh4N3xoW5HK3KEZLrPZDNO39TzSeyq5D8W1ii3GiwnPupR9mMeo4Tvw9L0DX7QGfXAaA4Fy1RlQudrUwNEZDpzAEbwOR9EqG92qWSJlV4Gnkj+Pe+RZlR16+OX7F/TpEKd9lZPiJjEZqzM61e+bqGsn7mCW8DzYtCTk4eDAXbGRkt2ofIUdw4j5Oawcn5LFDOKphtbmt93qLoLz9U0wr0zCOjewVt/3jTvIvhKFa2hEhcXnYJWgyXT3a1IHl6SADkKOw2wlR7X2rodv9/UkDJqiCaMB6plUA7yXjUkXQz5kyEs8WRZyG5MkANu5D6DRP2K7RFqVtTm9A1z719ajVttGVp87+NWaGRcDICC+9rUt7pQPGBlP70l7txO1UsZQ+ruvE54cNuss9yKO3xvt1AtSA++WpE0FEORncQEINCmAZAf48ou6bGiXepzAhq/NKq8r3F+1giwOS8M8yhkrETTK6kD37qd/8yjy1ha6pTyLVF4NQ15S/ozmlFgVvyXY+JGxdWWQ/VtyghrE1yWDWBVHecAUwrnAQgGs034dYqN5OtRT+3JVXULNUipxpnwICNKLR5d/rypzKfCOqUfJL55MEB5ClZ4CZgGLAGdyQMowXxeyB7+s4LXWLolxIcUdXfDah8d9ZC0srVOQOswuYUGDuwaWuX9vuxb61N3N5/vMXBdKe++Q== 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:(13230022)(136003)(396003)(376002)(39860400002)(366004)(346002)(451199015)(66899015)(33656002)(26005)(8676002)(6506007)(7696005)(107886003)(41300700001)(4326008)(122000001)(38100700002)(38070700005)(86362001)(55016003)(82960400001)(110136005)(83380400001)(2906002)(186003)(966005)(478600001)(316002)(71200400001)(54906003)(5660300002)(52536014)(53546011)(9686003)(66476007)(64756008)(8936002)(30864003)(66446008)(66946007)(66556008)(76116006)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MmFaS3A5aG5UZlU0Vm03SGgvN3NSRFdNaG9JNGxlT2ZuazhmalFrZ3c1cG04?= =?utf-8?B?anBQRVpDdkJNZXcyZUFIaURFV3MxUXFFdC9WK1ljZy9kMW9jaDVNakhmaTFi?= =?utf-8?B?RmRyZVJHZlN3b2RkcWxGRjl5ZjlGZzdhbEI4bFhubllZZVpJR09UNEs3SlRK?= =?utf-8?B?NDhoMVpaQ3d3WHlwQWs4S1JlYS94Q0xFVWhBQ0pCaks4WExMeWh1SUhwaGgw?= =?utf-8?B?U2k5WG9tNDQ0cjJ6d28vYmNkanBvSVd2UzNZR1RnVFdUN0F1WGo2WFBnd3E3?= =?utf-8?B?UHVBZ1JSdTRLMnI0T29TUFlBYTFCZ3hGWjRybStFa2dkVEdBdW1aUEhUOHJz?= =?utf-8?B?aGMxaWo1MU8vNWE2UWpPOXlsNHlHV0RGbFZMeWp0WEJ4eWhTQkRwSllzQjJj?= =?utf-8?B?SG9zN2cwb1QybDFMOFJ3Q05nVmFqdW9HNXF4enlkRXNYaUlxNFNlbUZZMnBt?= =?utf-8?B?eWszQ0ZMaDl2eUlnelRDdFc1Y2FuaWpCeTZ5alpUMEhaTUNIellMNG43NFNJ?= =?utf-8?B?WWRVTWFDQVVWNjVjM3IxM0F2MS8xOTU0YVZpQW5UMUF1b3ZsMTZ5b0ZXME5F?= =?utf-8?B?WFhsNVQ2Qzh4UzFYRDVJajlZL3plTVo3bmw0clB0NXFGSVpvSlMwVlpoSnRn?= =?utf-8?B?RTViaVRiUFpSZVU2Njh0N1B5ejBRNEp5MC9CbnExMy9Gam9CU1ZJQ2RxeVBP?= =?utf-8?B?ZlM2a0ZFcXBscTEydlVrZlNkekhoWHFmVWY1TmxINHAwVTF4QzVOSWlqd3RF?= =?utf-8?B?UUZ5bTlPb1dycEFmNWhqTkFxdm9zMzFIOFh2RXBXSUNYMTdlVXMrZWxqenVZ?= =?utf-8?B?eDB2ZmFUNnA4T3NDa0RVYlR0aWxKekxkbmJkaVVPVENhaW56emc1Q3g2UTNB?= =?utf-8?B?K3oyQmdQVk1PbmttMXd3Vm1Nbk5Pc0ZzZUtWSXZLQWRINHc1Mjg5TjdhN0JI?= =?utf-8?B?QnBVZFlrTXZSeDFsY0Rxcll0c0F4UWNLL1I0OUw2NHNKUExvRSt1NVZ3Sm9q?= =?utf-8?B?QjVLM0ZDeFVQS2gvcEFoL01hNkJnVXQ5ZUdycHlHaS9VcFR5c2twbzZNZ3px?= =?utf-8?B?L2NjNko5ajdMTjJQZ3IveWtXSDM2Y1hNdmlERkFUeHV0b3Z6VTV6Sm01ZnhD?= =?utf-8?B?dEdDbmRqRlhIV2ZGS2J0TjgwVXQ4eTUyLyt4TTlzc3NYZE5Kc2pXY3hONmVR?= =?utf-8?B?MmZZUG1ranhwTGM5QXFPZk94aDU5ZHozRy9ZR1RYYmliSHJLS1IwN3VQdzk4?= =?utf-8?B?MUQxOFZLZWNzODJvRjRMZFpMZFpRblZlS1ZqZkpFeEpraGQ1ZFdtYXJCMFVr?= =?utf-8?B?SVRJWSszZU5JVnNiMGtCcU5ma3laRXBnWEJxUkJxTjd4eklSSWkzQ0FUTEdR?= =?utf-8?B?M0IrUFpwaFhXcXgrbko2TWVGQ0xLSC9jVjlteFowd29RSU01UDUxSHhWSUp3?= =?utf-8?B?bWFGS25JbnIwN0lSSTcwVjJOV0QxYTc2azRYaSt3cTJOZHZ2TTR6VHgrc2I3?= =?utf-8?B?RE83ZTAvd1BwK0NHeWprSHJwbmlhSGhTQ0UyK2ZyK2tTT2cvODlCcEJQNTdo?= =?utf-8?B?akdENEx1S0YwWVFTT3d0Y01ob1Jld2lEelhOb1JCMUJtNEtRL1dDNm5sTHBv?= =?utf-8?B?QW9DbjFSK2VUL2MzRVJuYzA2ZG51QndHdEcvRE1WckZyYzYwaVRCWmlJR3Nk?= =?utf-8?B?T0FZcjJONlNFVUwxMGM0akEvQlRUYzcxeXhMVW9QT29xUjNmYXA3NXpiVVNa?= =?utf-8?B?N09iandXTElaMVFoUWVzNlNZUk10Y3hWZmJ3aTMrWmUycVh2S0VUaXBkVUV1?= =?utf-8?B?TDFRNkVnMU1GNkxpN21UT3MyaEs0OTdUWVc1NS9aM3E5anhBdjlVM3VmSlc1?= =?utf-8?B?WmJOeTM1cXpSUDlvRDVpcGs1UnVXaWJqbk5VdG11bFNRaGJjcDBWNmVCemdU?= =?utf-8?B?L2cxazA2Sk9WeEFneStjMG9IZE9yVkxVU2lCM0k4cWtGUzFEUTJzQVA3RHR0?= =?utf-8?B?QmRKcis4Y3l6a3huT05vQkRlNkl3U3hUM1Fhd1FFYWIvOUtuR2Z5czlldlB1?= =?utf-8?B?SHZGUE4rUTFaUTNibGwwTkhFOVJHYjFXVjU2QitZUkdTeElPanpQemFuY0FT?= =?utf-8?B?SlRiSmkrTGhuSFQxS05OQ2JKVTJqWE9lMkkyNGxla2hKZDlueDJNYlBkYVVO?= =?utf-8?B?dlE9PQ==?= 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: 69791473-0bf9-4a90-5ec7-08daa2a1db31 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Sep 2022 05:08:47.6602 (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: LoBfpJtjawbs/mYor0t9lzVif9IaUWHUJF66vAZq+mVsI0FvFmuBwB/PMxHG++UTdIlh3ZcgTMPydbC5QUnHVnFc+/ADbMWv5ocRO4sxHQg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4709 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 SSBzZWUgb25lIGlzc3VlIHdpdGggYWRkaW5nIG5ldyBiaXRzIHRvIHRoZSBjcnlwdG8gc2Vydmlj ZXMgc3RydWN0dXJlZCBQQ0QuDQoNCkNvbW1lbnQgYmVsb3cuDQoNCk1pa2UNCg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxA ZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBMaSwgWWkNCj4gU2VudDogU3VuZGF5LCBTZXB0 ZW1iZXIgMjUsIDIwMjIgMTE6MjcgUE0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENj OiBMaSwgWWkxIDx5aTEubGlAaW50ZWwuY29tPjsgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50 ZWwuY29tPjsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBMdSwgWGlhb3l1 MQ0KPiA8eGlhb3l1MS5sdUBpbnRlbC5jb20+OyBKaWFuZywgR3VvbWluIDxndW9taW4uamlhbmdA aW50ZWwuY29tPg0KPiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BBVENIIDMvM10gQ3J5cHRvUGtn OiBBZGQgbmV3IFRscyBBUElzIHRvIERYRSBhbmQgcHJvdG9jb2wNCj4gDQo+IFJFRjogaHR0cHM6 Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zODkyDQo+IA0KPiBUaGUg aW1wbGVtZW50YXRpb24gcHJvdmlkZXMgbmV3IFRscyBsaWJyYXJ5IGZ1bmN0aW9ucw0KPiBmb3Ig Q3J5cHRvIEVGSSBEcml2ZXIgYW5kIFByb3RvY29sLg0KPiANCj4gQ2M6IEppZXdlbiBZYW8gPGpp ZXdlbi55YW9AaW50ZWwuY29tPg0KPiBDYzogSmlhbiBKIFdhbmcgPGppYW4uai53YW5nQGludGVs LmNvbT4NCj4gQ2M6IFhpYW95dSBMdSA8eGlhb3l1MS5sdUBpbnRlbC5jb20+DQo+IENjOiBHdW9t aW4gSmlhbmcgPGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IFlpIExp IDx5aTEubGlAaW50ZWwuY29tPg0KPiAtLS0NCj4gIENyeXB0b1BrZy9Ecml2ZXIvQ3J5cHRvLmMg ICAgICAgICAgICAgICAgICAgICB8IDE1NSArKysrKysrKysrKysrKysrKy0NCj4gIC4uLi9QY2Qv UGNkQ3J5cHRvU2VydmljZUZhbWlseUVuYWJsZS5oICAgICAgICB8ICAgNSArDQo+ICAuLi4vQmFz ZUNyeXB0TGliT25Qcm90b2NvbFBwaS9DcnlwdExpYi5jICAgICAgfCAxNDYgKysrKysrKysrKysr KysrKy0NCj4gIENyeXB0b1BrZy9Qcml2YXRlL1Byb3RvY29sL0NyeXB0by5oICAgICAgICAgICB8 IDEzNiArKysrKysrKysrKysrKy0NCj4gIDQgZmlsZXMgY2hhbmdlZCwgNDM1IGluc2VydGlvbnMo KyksIDcgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvQ3J5cHRvUGtnL0RyaXZlci9D cnlwdG8uYyBiL0NyeXB0b1BrZy9Ecml2ZXIvQ3J5cHRvLmMNCj4gaW5kZXggN2E4MjY2YWFiYS4u ZjFmZjc3ODU1YyAxMDA2NDQNCj4gLS0tIGEvQ3J5cHRvUGtnL0RyaXZlci9DcnlwdG8uYw0KPiAr KysgYi9DcnlwdG9Qa2cvRHJpdmVyL0NyeXB0by5jDQo+IEBAIC00MjM4LDYgKzQyMzgsMjggQEAg Q3J5cHRvU2VydmljZVRsc1dyaXRlICgNCj4gICAgcmV0dXJuIENBTExfQkFTRUNSWVBUTElCIChU bHMuU2VydmljZXMuV3JpdGUsIFRsc1dyaXRlLCAoVGxzLCBCdWZmZXIsIEJ1ZmZlclNpemUpLCAw KTsNCj4gIH0NCj4gDQo+ICsvKioNCj4gKyAgU2h1dGRvd24gYSBUTFMgY29ubmVjdGlvbi4NCj4g Kw0KPiArICBTaHV0ZG93biB0aGUgVExTIGNvbm5lY3Rpb24gd2l0aG91dCByZWxlYXNpbmcgdGhl IHJlc291cmNlcywgbWVhbmluZyBhIG5ldw0KPiArICBjb25uZWN0aW9uIGNhbiBiZSBzdGFydGVk IHdpdGhvdXQgY2FsbGluZyBUbHNOZXcoKSBhbmQgd2l0aG91dCBzZXR0aW5nDQo+ICsgIGNlcnRp ZmljYXRlcyBldGMuDQo+ICsNCj4gKyAgQHBhcmFtW2luXSAgICAgICBUbHMgICAgICAgICAgICBQ b2ludGVyIHRvIHRoZSBUTFMgb2JqZWN0IHRvIHNodXRkb3duLg0KPiArDQo+ICsgIEByZXR2YWwg RUZJX1NVQ0NFU1MgICAgICAgICAgICAgVGhlIFRMUyBpcyBzaHV0ZG93biBzdWNjZXNzZnVsbHku DQo+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgVGxzIGlzIE5VTEwuDQo+ICsg IEByZXR2YWwgRUZJX1BST1RPQ09MX0VSUk9SICAgICAgU29tZSBvdGhlciBlcnJvciBvY2N1cnJl ZC4NCj4gKyoqLw0KPiArRUZJX1NUQVRVUw0KPiArRUZJQVBJDQo+ICtDcnlwdG9TZXJ2aWNlVGxz U2h1dGRvd24gKA0KPiArICBJTiAgICAgVk9JRCAgKlRscw0KPiArICApDQo+ICt7DQo+ICsgIHJl dHVybiBDQUxMX0JBU0VDUllQVExJQiAoVGxzLlNlcnZpY2VzLlNodXRkb3duLCBUbHNTaHV0ZG93 biwgKFRscyksIEVGSV9VTlNVUFBPUlRFRCk7DQo+ICt9DQo+ICsNCj4gIC8qKg0KPiAgICBTZXQg YSBuZXcgVExTL1NTTCBtZXRob2QgZm9yIGEgcGFydGljdWxhciBUTFMgb2JqZWN0Lg0KPiANCj4g QEAgLTQ0NjMsMTEgKzQ0ODUsNDEgQEAgQ3J5cHRvU2VydmljZVRsc1NldEhvc3RQdWJsaWNDZXJ0 ICgNCj4gIC8qKg0KPiAgICBBZGRzIHRoZSBsb2NhbCBwcml2YXRlIGtleSB0byB0aGUgc3BlY2lm aWVkIFRMUyBvYmplY3QuDQo+IA0KPiAtICBUaGlzIGZ1bmN0aW9uIGFkZHMgdGhlIGxvY2FsIHBy aXZhdGUga2V5IChQRU0tZW5jb2RlZCBSU0Egb3IgUEtDUyM4IHByaXZhdGUNCj4gKyAgVGhpcyBm dW5jdGlvbiBhZGRzIHRoZSBsb2NhbCBwcml2YXRlIGtleSAoREVSLWVuY29kZWQgb3IgUEVNLWVu Y29kZWQgb3IgUEtDUyM4IHByaXZhdGUNCj4gKyAga2V5KSBpbnRvIHRoZSBzcGVjaWZpZWQgVExT IG9iamVjdCBmb3IgVExTIG5lZ290aWF0aW9uLg0KPiArDQo+ICsgIEBwYXJhbVtpbl0gIFRscyAg ICAgICAgIFBvaW50ZXIgdG8gdGhlIFRMUyBvYmplY3QuDQo+ICsgIEBwYXJhbVtpbl0gIERhdGEg ICAgICAgIFBvaW50ZXIgdG8gdGhlIGRhdGEgYnVmZmVyIG9mIGEgREVSLWVuY29kZWQgb3IgUEVN LWVuY29kZWQNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgUEtDUyM4IHByaXZhdGUg a2V5Lg0KPiArICBAcGFyYW1baW5dICBEYXRhU2l6ZSAgICBUaGUgc2l6ZSBvZiBkYXRhIGJ1ZmZl ciBpbiBieXRlcy4NCj4gKyAgQHBhcmFtW2luXSAgUGFzc3dvcmQgICAgUG9pbnRlciB0byBOVUxM LXRlcm1pbmF0ZWQgcHJpdmF0ZSBrZXkgcGFzc3dvcmQsIHNldCBpdCB0byBOVUxMDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIHByaXZhdGUga2V5IG5vdCBlbmNyeXB0ZWQuDQo+ICsN Cj4gKyAgQHJldHZhbCAgRUZJX1NVQ0NFU1MgICAgIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkLg0K PiArICBAcmV0dmFsICBFRklfVU5TVVBQT1JURUQgVGhpcyBmdW5jdGlvbiBpcyBub3Qgc3VwcG9y dGVkLg0KPiArICBAcmV0dmFsICBFRklfQUJPUlRFRCAgICAgSW52YWxpZCBwcml2YXRlIGtleSBk YXRhLg0KPiArDQo+ICsqKi8NCj4gK0VGSV9TVEFUVVMNCj4gK0VGSUFQSQ0KPiArQ3J5cHRvU2Vy dmljZVRsc1NldEhvc3RQcml2YXRlS2V5RXggKA0KPiArICBJTiAgICAgVk9JRCAgICpUbHMsDQo+ ICsgIElOICAgICBWT0lEICAgKkRhdGEsDQo+ICsgIElOICAgICBVSU5UTiAgRGF0YVNpemUsDQo+ ICsgIElOICAgICBWT0lEICAgKlBhc3N3b3JkICBPUFRJT05BTA0KPiArICApDQo+ICt7DQo+ICsg IHJldHVybiBDQUxMX0JBU0VDUllQVExJQiAoVGxzU2V0LlNlcnZpY2VzLkhvc3RQcml2YXRlS2V5 RXgsIFRsc1NldEhvc3RQcml2YXRlS2V5RXgsIChUbHMsIERhdGEsIERhdGFTaXplLCBQYXNzd29y ZCksDQo+IEVGSV9VTlNVUFBPUlRFRCk7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICBBZGRzIHRo ZSBsb2NhbCBwcml2YXRlIGtleSB0byB0aGUgc3BlY2lmaWVkIFRMUyBvYmplY3QuDQo+ICsNCj4g KyAgVGhpcyBmdW5jdGlvbiBhZGRzIHRoZSBsb2NhbCBwcml2YXRlIGtleSAoREVSLWVuY29kZWQg b3IgUEVNLWVuY29kZWQgb3IgUEtDUyM4IHByaXZhdGUNCj4gICAga2V5KSBpbnRvIHRoZSBzcGVj aWZpZWQgVExTIG9iamVjdCBmb3IgVExTIG5lZ290aWF0aW9uLg0KPiANCj4gICAgQHBhcmFtW2lu XSAgVGxzICAgICAgICAgUG9pbnRlciB0byB0aGUgVExTIG9iamVjdC4NCj4gLSAgQHBhcmFtW2lu XSAgRGF0YSAgICAgICAgUG9pbnRlciB0byB0aGUgZGF0YSBidWZmZXIgb2YgYSBQRU0tZW5jb2Rl ZCBSU0ENCj4gKyAgQHBhcmFtW2luXSAgRGF0YSAgICAgICAgUG9pbnRlciB0byB0aGUgZGF0YSBi dWZmZXIgb2YgYSBERVItZW5jb2RlZCBvciBQRU0tZW5jb2RlZA0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvciBQS0NTIzggcHJpdmF0ZSBrZXkuDQo+ICAgIEBwYXJhbVtpbl0gIERhdGFT aXplICAgIFRoZSBzaXplIG9mIGRhdGEgYnVmZmVyIGluIGJ5dGVzLg0KPiANCj4gQEAgLTQ1MTEs NiArNDU2Myw1OSBAQCBDcnlwdG9TZXJ2aWNlVGxzU2V0Q2VydFJldm9jYXRpb25MaXN0ICgNCj4g ICAgcmV0dXJuIENBTExfQkFTRUNSWVBUTElCIChUbHNTZXQuU2VydmljZXMuQ2VydFJldm9jYXRp b25MaXN0LCBUbHNTZXRDZXJ0UmV2b2NhdGlvbkxpc3QsIChEYXRhLCBEYXRhU2l6ZSksIEVGSV9V TlNVUFBPUlRFRCk7DQo+ICB9DQo+IA0KPiArLyoqDQo+ICsgIFNldCB0aGUgc2lnbmF0dXJlIGFs Z29yaXRobSBsaXN0IHRvIHVzZWQgYnkgdGhlIFRMUyBvYmplY3QuDQo+ICsNCj4gKyAgVGhpcyBm dW5jdGlvbiBzZXRzIHRoZSBzaWduYXR1cmUgYWxnb3JpdGhtcyBmb3IgdXNlIGJ5IGEgc3BlY2lm aWVkIFRMUyBvYmplY3QuDQo+ICsNCj4gKyAgQHBhcmFtW2luXSAgVGxzICAgICAgICAgICAgICAg IFBvaW50ZXIgdG8gYSBUTFMgb2JqZWN0Lg0KPiArICBAcGFyYW1baW5dICBEYXRhICAgICAgICAg ICAgICAgQXJyYXkgb2YgVUlOVDggb2Ygc2lnbmF0dXJlIGFsZ29yaXRobXMuIFRoZSBhcnJheSBj b25zaXN0cyBvZg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFpcnMgb2Yg dGhlIGhhc2ggYWxnb3JpdGhtIGFuZCB0aGUgc2lnbmF0dXJlIGFsZ29yaXRobSBhcyBkZWZpbmVk DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBSRkMgNTI0Ng0KPiArICBA cGFyYW1baW5dICBEYXRhU2l6ZSAgICAgICAgICAgVGhlIGxlbmd0aCB0aGUgU2lnbmF0dXJlQWxn b0xpc3QuIE11c3QgYmUgZGl2aXNpYmxlIGJ5IDIuDQo+ICsNCj4gKyAgQHJldHZhbCAgRUZJX1NV Q0NFU1MgICAgICAgICAgIFRoZSBzaWduYXR1cmUgYWxnb3JpdGhtIGxpc3Qgd2FzIHNldCBzdWNj ZXNzZnVsbHkuDQo+ICsgIEByZXR2YWwgIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBUaGUgcGFyYW1l dGVycyBhcmUgaW52YWxpZC4NCj4gKyAgQHJldHZhbCAgRUZJX1VOU1VQUE9SVEVEICAgICAgIE5v IHN1cHBvcnRlZCBUTFMgc2lnbmF0dXJlIGFsZ29yaXRobSB3YXMgZm91bmQgaW4gU2lnbmF0dXJl QWxnb0xpc3QNCj4gKyAgQHJldHZhbCAgRUZJX09VVF9PRl9SRVNPVVJDRVMgIE1lbW9yeSBhbGxv Y2F0aW9uIGZhaWxlZC4NCj4gKw0KPiArKiovDQo+ICtFRklfU1RBVFVTDQo+ICtFRklBUEkNCj4g K0NyeXB0b1NlcnZpY2VUbHNTZXRTaWduYXR1cmVBbGdvTGlzdCAoDQo+ICsgIElOICAgICBWT0lE ICAgKlRscywNCj4gKyAgSU4gICAgIFVJTlQ4ICAqRGF0YSwNCj4gKyAgSU4gICAgIFVJTlROICBE YXRhU2l6ZQ0KPiArICApDQo+ICt7DQo+ICsgIHJldHVybiBDQUxMX0JBU0VDUllQVExJQiAoVGxz U2V0LlNlcnZpY2VzLlNpZ25hdHVyZUFsZ29MaXN0LCBUbHNTZXRTaWduYXR1cmVBbGdvTGlzdCwg KFRscywgRGF0YSwgRGF0YVNpemUpLCBFRklfVU5TVVBQT1JURUQpOw0KPiArfQ0KPiArDQo+ICsv KioNCj4gKyAgU2V0IHRoZSBFQyBjdXJ2ZSB0byBiZSB1c2VkIGZvciBUTFMgZmxvd3MNCj4gKw0K PiArICBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIEVDIGN1cnZlIHRvIGJlIHVzZWQgZm9yIFRMUyBm bG93cy4NCj4gKw0KPiArICBAcGFyYW1baW5dICBUbHMgICAgICAgICAgICAgICAgUG9pbnRlciB0 byBhIFRMUyBvYmplY3QuDQo+ICsgIEBwYXJhbVtpbl0gIERhdGEgICAgICAgICAgICAgICBBbiBF QyBuYW1lZCBjdXJ2ZSBhcyBkZWZpbmVkIGluIHNlY3Rpb24gNS4xLjEgb2YgUkZDIDQ0OTIuDQo+ ICsgIEBwYXJhbVtpbl0gIERhdGFTaXplICAgICAgICAgICBTaXplIG9mIERhdGEsIGl0IHNob3Vs ZCBiZSBzaXplb2YgKFVJTlQzMikNCj4gKw0KPiArICBAcmV0dmFsICBFRklfU1VDQ0VTUyAgICAg ICAgICAgVGhlIEVDIGN1cnZlIHdhcyBzZXQgc3VjY2Vzc2Z1bGx5Lg0KPiArICBAcmV0dmFsICBF RklfSU5WQUxJRF9QQVJBTUVURVIgVGhlIHBhcmFtZXRlcnMgYXJlIGludmFsaWQuDQo+ICsgIEBy ZXR2YWwgIEVGSV9VTlNVUFBPUlRFRCAgICAgICBUaGUgcmVxdWVzdGVkIFRMUyBFQyBjdXJ2ZSBp cyBub3Qgc3VwcG9ydGVkDQo+ICsNCj4gKyoqLw0KPiArRUZJX1NUQVRVUw0KPiArRUZJQVBJDQo+ ICtDcnlwdG9TZXJ2aWNlVGxzU2V0RWNDdXJ2ZSAoDQo+ICsgIElOICAgICBWT0lEICAgKlRscywN Cj4gKyAgSU4gICAgIFVJTlQ4ICAqRGF0YSwNCj4gKyAgSU4gICAgIFVJTlROICBEYXRhU2l6ZQ0K PiArICApDQo+ICt7DQo+ICsgIHJldHVybiBDQUxMX0JBU0VDUllQVExJQiAoVGxzU2V0LlNlcnZp Y2VzLkVjQ3VydmUsIFRsc1NldEVjQ3VydmUsIChUbHMsIERhdGEsIERhdGFTaXplKSwgRUZJX1VO U1VQUE9SVEVEKTsNCj4gK30NCj4gKw0KPiAgLyoqDQo+ICAgIEdldHMgdGhlIHByb3RvY29sIHZl cnNpb24gdXNlZCBieSB0aGUgc3BlY2lmaWVkIFRMUyBjb25uZWN0aW9uLg0KPiANCj4gQEAgLTQ4 MjYsNiArNDkzMSw0NCBAQCBDcnlwdG9TZXJ2aWNlVGxzR2V0Q2VydFJldm9jYXRpb25MaXN0ICgN Cj4gICAgcmV0dXJuIENBTExfQkFTRUNSWVBUTElCIChUbHNHZXQuU2VydmljZXMuQ2VydFJldm9j YXRpb25MaXN0LCBUbHNHZXRDZXJ0UmV2b2NhdGlvbkxpc3QsIChEYXRhLCBEYXRhU2l6ZSksIEVG SV9VTlNVUFBPUlRFRCk7DQo+ICB9DQo+IA0KPiArLyoqDQo+ICsgIERlcml2ZSBrZXlpbmcgbWF0 ZXJpYWwgZnJvbSBhIFRMUyBjb25uZWN0aW9uLg0KPiArDQo+ICsgIFRoaXMgZnVuY3Rpb24gZXhw b3J0cyBrZXlpbmcgbWF0ZXJpYWwgdXNpbmcgdGhlIG1lY2hhbmlzbSBkZXNjcmliZWQgaW4gUkZD DQo+ICsgIDU3MDUuDQo+ICsNCj4gKyAgQHBhcmFtW2luXSAgICAgIFRscyAgICAgICAgICBQb2lu dGVyIHRvIHRoZSBUTFMgb2JqZWN0DQo+ICsgIEBwYXJhbVtpbl0gICAgICBMYWJlbCAgICAgICAg RGVzY3JpcHRpb24gb2YgdGhlIGtleSBmb3IgdGhlIFBSRiBmdW5jdGlvbg0KPiArICBAcGFyYW1b aW5dICAgICAgQ29udGV4dCAgICAgIE9wdGlvbmFsIGNvbnRleHQNCj4gKyAgQHBhcmFtW2luXSAg ICAgIENvbnRleHRMZW4gICBUaGUgbGVuZ3RoIG9mIHRoZSBjb250ZXh0IHZhbHVlIGluIGJ5dGVz DQo+ICsgIEBwYXJhbVtvdXRdICAgICBLZXlCdWZmZXIgICAgQnVmZmVyIHRvIGhvbGQgdGhlIG91 dHB1dCBvZiB0aGUgVExTLVBSRg0KPiArICBAcGFyYW1baW5dICAgICAgS2V5QnVmZmVyTGVuIFRo ZSBsZW5ndGggb2YgdGhlIEtleUJ1ZmZlcg0KPiArDQo+ICsgIEByZXR2YWwgIEVGSV9TVUNDRVNT ICAgICAgICAgICAgIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkLg0KPiArICBAcmV0dmFsICBFRklf SU5WQUxJRF9QQVJBTUVURVIgICBUaGUgVExTIG9iamVjdCBpcyBpbnZhbGlkLg0KPiArICBAcmV0 dmFsICBFRklfUFJPVE9DT0xfRVJST1IgICAgICBTb21lIG90aGVyIGVycm9yIG9jY3VycmVkLg0K PiArDQo+ICsqKi8NCj4gK0VGSV9TVEFUVVMNCj4gK0VGSUFQSQ0KPiArQ3J5cHRvU2VydmljZVRs c0dldEV4cG9ydEtleSAoDQo+ICsgIElOICAgICBWT0lEICAgICAgICAqVGxzLA0KPiArICBJTiAg ICAgQ09OU1QgVk9JRCAgKkxhYmVsLA0KPiArICBJTiAgICAgQ09OU1QgVk9JRCAgKkNvbnRleHQs DQo+ICsgIElOICAgICBVSU5UTiAgICAgICBDb250ZXh0TGVuLA0KPiArICBPVVQgICAgVk9JRCAg ICAgICAgKktleUJ1ZmZlciwNCj4gKyAgSU4gICAgIFVJTlROICAgICAgIEtleUJ1ZmZlckxlbg0K PiArICApDQo+ICt7DQo+ICsgIHJldHVybiBDQUxMX0JBU0VDUllQVExJQiAoDQo+ICsgICAgICAg ICAgIFRsc0dldC5TZXJ2aWNlcy5FeHBvcnRLZXksDQo+ICsgICAgICAgICAgIFRsc0dldEV4cG9y dEtleSwNCj4gKyAgICAgICAgICAgKFRscywgTGFiZWwsIENvbnRleHQsIENvbnRleHRMZW4sDQo+ ICsgICAgICAgICAgICBLZXlCdWZmZXIsIEtleUJ1ZmZlckxlbiksDQo+ICsgICAgICAgICAgIEVG SV9VTlNVUFBPUlRFRA0KPiArICAgICAgICAgICApOw0KPiArfQ0KPiArDQo+ICAvKioNCj4gICAg Q2FycmllcyBvdXQgdGhlIFJTQS1TU0Egc2lnbmF0dXJlIGdlbmVyYXRpb24gd2l0aCBFTVNBLVBT UyBlbmNvZGluZyBzY2hlbWUuDQo+IA0KPiBAQCAtNjI2Niw0ICs2NDA5LDEyIEBAIGNvbnN0IEVE S0lJX0NSWVBUT19QUk9UT0NPTCAgbUVka2lpQ3J5cHRvID0gew0KPiAgICBDcnlwdG9TZXJ2aWNl RWNHZW5lcmF0ZUtleSwNCj4gICAgQ3J5cHRvU2VydmljZUVjR2V0UHViS2V5LA0KPiAgICBDcnlw dG9TZXJ2aWNlRWNEaENvbXB1dGVLZXksDQo+ICsgIC8vLyBUTFMgKGNvbnRpbnVlZCkNCj4gKyAg Q3J5cHRvU2VydmljZVRsc1NodXRkb3duLA0KPiArICAvLy8gVExTIFNldCAoY29udGludWVkKQ0K PiArICBDcnlwdG9TZXJ2aWNlVGxzU2V0SG9zdFByaXZhdGVLZXlFeCwNCj4gKyAgQ3J5cHRvU2Vy dmljZVRsc1NldFNpZ25hdHVyZUFsZ29MaXN0LA0KPiArICBDcnlwdG9TZXJ2aWNlVGxzU2V0RWND dXJ2ZSwNCj4gKyAgLy8vIFRMUyBHZXQgKGNvbnRpbnVlZCkNCj4gKyAgQ3J5cHRvU2VydmljZVRs c0dldEV4cG9ydEtleQ0KPiAgfTsNCj4gZGlmZiAtLWdpdCBhL0NyeXB0b1BrZy9JbmNsdWRlL1Bj ZC9QY2RDcnlwdG9TZXJ2aWNlRmFtaWx5RW5hYmxlLmggYi9DcnlwdG9Qa2cvSW5jbHVkZS9QY2Qv UGNkQ3J5cHRvU2VydmljZUZhbWlseUVuYWJsZS5oDQo+IGluZGV4IDQ1YmFmYzIxNjEuLjcwY2Fh MjEyMmIgMTAwNjQ0DQo+IC0tLSBhL0NyeXB0b1BrZy9JbmNsdWRlL1BjZC9QY2RDcnlwdG9TZXJ2 aWNlRmFtaWx5RW5hYmxlLmgNCj4gKysrIGIvQ3J5cHRvUGtnL0luY2x1ZGUvUGNkL1BjZENyeXB0 b1NlcnZpY2VGYW1pbHlFbmFibGUuaA0KPiBAQCAtMjY5LDYgKzI2OSw3IEBAIHR5cGVkZWYgc3Ry dWN0IHsNCj4gICAgICAgIFVJTlQ4ICAgIEN0cmxUcmFmZmljSW4gIDogMTsNCj4gICAgICAgIFVJ TlQ4ICAgIFJlYWQgICAgICAgICAgIDogMTsNCj4gICAgICAgIFVJTlQ4ICAgIFdyaXRlICAgICAg ICAgIDogMTsNCj4gKyAgICAgIFVJTlQ4ICAgIFNodXRkb3duICAgICAgIDogMTsNCj4gICAgICB9 IFNlcnZpY2VzOw0KPiAgICAgIFVJTlQzMiAgICBGYW1pbHk7DQo+ICAgIH0gVGxzOw0KPiBAQCAt MjgzLDggKzI4NCwxMSBAQCB0eXBlZGVmIHN0cnVjdCB7DQo+ICAgICAgICBVSU5UOCAgICBTZXNz aW9uSWQgICAgICAgICAgOiAxOw0KPiAgICAgICAgVUlOVDggICAgQ2FDZXJ0aWZpY2F0ZSAgICAg IDogMTsNCj4gICAgICAgIFVJTlQ4ICAgIEhvc3RQdWJsaWNDZXJ0ICAgICA6IDE7DQo+ICsgICAg ICBVSU5UOCAgICBIb3N0UHJpdmF0ZUtleUV4ICAgOiAxOw0KDQoNCk5ldyBiaXRzIG11c3QgYmUg YWRkZWQgdG8gdGhlIGVuZCBvZiB0aGUgU2VydmljZXMgc3RydWN0LiAgTW92ZSBhZnRlciBFY0N1 cnZlLg0KDQo+ICAgICAgICBVSU5UOCAgICBIb3N0UHJpdmF0ZUtleSAgICAgOiAxOw0KPiAgICAg ICAgVUlOVDggICAgQ2VydFJldm9jYXRpb25MaXN0IDogMTsNCj4gKyAgICAgIFVJTlQ4ICAgIFNp Z25hdHVyZUFsZ29MaXN0ICA6IDE7DQo+ICsgICAgICBVSU5UOCAgICBFY0N1cnZlICAgICAgICAg ICAgOiAxOw0KPiAgICAgIH0gU2VydmljZXM7DQo+ICAgICAgVUlOVDMyICAgIEZhbWlseTsNCj4g ICAgfSBUbHNTZXQ7DQo+IEBAIC0zMDMsNiArMzA3LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiAg ICAgICAgVUlOVDggICAgSG9zdFB1YmxpY0NlcnQgICAgICAgOiAxOw0KPiAgICAgICAgVUlOVDgg ICAgSG9zdFByaXZhdGVLZXkgICAgICAgOiAxOw0KPiAgICAgICAgVUlOVDggICAgQ2VydFJldm9j YXRpb25MaXN0ICAgOiAxOw0KPiArICAgICAgVUlOVDggICAgRXhwb3J0S2V5ICAgICAgICAgICAg OiAxOw0KPiAgICAgIH0gU2VydmljZXM7DQo+ICAgICAgVUlOVDMyICAgIEZhbWlseTsNCj4gICAg fSBUbHNHZXQ7DQo+IGRpZmYgLS1naXQgYS9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWJP blByb3RvY29sUHBpL0NyeXB0TGliLmMgYi9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWJP blByb3RvY29sUHBpL0NyeXB0TGliLmMNCj4gaW5kZXggNzkxZTJlZjU5OS4uNTJiOTM0YTU0NSAx MDA2NDQNCj4gLS0tIGEvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliT25Qcm90b2NvbFBw aS9DcnlwdExpYi5jDQo+ICsrKyBiL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYk9uUHJv dG9jb2xQcGkvQ3J5cHRMaWIuYw0KPiBAQCAtMzQ3NCw2ICszNDc0LDI4IEBAIFRsc1dyaXRlICgN Cj4gICAgQ0FMTF9DUllQVE9fU0VSVklDRSAoVGxzV3JpdGUsIChUbHMsIEJ1ZmZlciwgQnVmZmVy U2l6ZSksIDApOw0KPiAgfQ0KPiANCj4gKy8qKg0KPiArICBTaHV0ZG93biBhIFRMUyBjb25uZWN0 aW9uLg0KPiArDQo+ICsgIFNodXRkb3duIHRoZSBUTFMgY29ubmVjdGlvbiB3aXRob3V0IHJlbGVh c2luZyB0aGUgcmVzb3VyY2VzLCBtZWFuaW5nIGEgbmV3DQo+ICsgIGNvbm5lY3Rpb24gY2FuIGJl IHN0YXJ0ZWQgd2l0aG91dCBjYWxsaW5nIFRsc05ldygpIGFuZCB3aXRob3V0IHNldHRpbmcNCj4g KyAgY2VydGlmaWNhdGVzIGV0Yy4NCj4gKw0KPiArICBAcGFyYW1baW5dICAgICAgIFRscyAgICAg ICAgICAgIFBvaW50ZXIgdG8gdGhlIFRMUyBvYmplY3QgdG8gc2h1dGRvd24uDQo+ICsNCj4gKyAg QHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgICBUaGUgVExTIGlzIHNodXRkb3duIHN1Y2Nl c3NmdWxseS4NCj4gKyAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgICBUbHMgaXMgTlVM TC4NCj4gKyAgQHJldHZhbCBFRklfUFJPVE9DT0xfRVJST1IgICAgICBTb21lIG90aGVyIGVycm9y IG9jY3VycmVkLg0KPiArKiovDQo+ICtFRklfU1RBVFVTDQo+ICtFRklBUEkNCj4gK1Rsc1NodXRk b3duICgNCj4gKyAgSU4gICAgIFZPSUQgICpUbHMNCj4gKyAgKQ0KPiArew0KPiArICBDQUxMX0NS WVBUT19TRVJWSUNFIChUbHNTaHV0ZG93biwgKFRscyksIEVGSV9VTlNVUFBPUlRFRCk7DQo+ICt9 DQo+ICsNCj4gIC8qKg0KPiAgICBTZXQgYSBuZXcgVExTL1NTTCBtZXRob2QgZm9yIGEgcGFydGlj dWxhciBUTFMgb2JqZWN0Lg0KPiANCj4gQEAgLTM2OTksMTEgKzM3MjEsNDEgQEAgVGxzU2V0SG9z dFB1YmxpY0NlcnQgKA0KPiAgLyoqDQo+ICAgIEFkZHMgdGhlIGxvY2FsIHByaXZhdGUga2V5IHRv IHRoZSBzcGVjaWZpZWQgVExTIG9iamVjdC4NCj4gDQo+IC0gIFRoaXMgZnVuY3Rpb24gYWRkcyB0 aGUgbG9jYWwgcHJpdmF0ZSBrZXkgKFBFTS1lbmNvZGVkIFJTQSBvciBQS0NTIzggcHJpdmF0ZQ0K PiArICBUaGlzIGZ1bmN0aW9uIGFkZHMgdGhlIGxvY2FsIHByaXZhdGUga2V5IChERVItZW5jb2Rl ZCBvciBQRU0tZW5jb2RlZCBvciBQS0NTIzggcHJpdmF0ZQ0KPiAgICBrZXkpIGludG8gdGhlIHNw ZWNpZmllZCBUTFMgb2JqZWN0IGZvciBUTFMgbmVnb3RpYXRpb24uDQo+IA0KPiAgICBAcGFyYW1b aW5dICBUbHMgICAgICAgICBQb2ludGVyIHRvIHRoZSBUTFMgb2JqZWN0Lg0KPiAtICBAcGFyYW1b aW5dICBEYXRhICAgICAgICBQb2ludGVyIHRvIHRoZSBkYXRhIGJ1ZmZlciBvZiBhIFBFTS1lbmNv ZGVkIFJTQQ0KPiArICBAcGFyYW1baW5dICBEYXRhICAgICAgICBQb2ludGVyIHRvIHRoZSBkYXRh IGJ1ZmZlciBvZiBhIERFUi1lbmNvZGVkIG9yIFBFTS1lbmNvZGVkDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgIG9yIFBLQ1MjOCBwcml2YXRlIGtleS4NCj4gKyAgQHBhcmFtW2luXSAgRGF0 YVNpemUgICAgVGhlIHNpemUgb2YgZGF0YSBidWZmZXIgaW4gYnl0ZXMuDQo+ICsgIEBwYXJhbVtp bl0gIFBhc3N3b3JkICAgIFBvaW50ZXIgdG8gTlVMTC10ZXJtaW5hdGVkIHByaXZhdGUga2V5IHBh c3N3b3JkLCBzZXQgaXQgdG8gTlVMTA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBw cml2YXRlIGtleSBub3QgZW5jcnlwdGVkLg0KPiArDQo+ICsgIEByZXR2YWwgIEVGSV9TVUNDRVNT ICAgICBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZC4NCj4gKyAgQHJldHZhbCAgRUZJX1VOU1VQUE9S VEVEIFRoaXMgZnVuY3Rpb24gaXMgbm90IHN1cHBvcnRlZC4NCj4gKyAgQHJldHZhbCAgRUZJX0FC T1JURUQgICAgIEludmFsaWQgcHJpdmF0ZSBrZXkgZGF0YS4NCj4gKw0KPiArKiovDQo+ICtFRklf U1RBVFVTDQo+ICtFRklBUEkNCj4gK1Rsc1NldEhvc3RQcml2YXRlS2V5RXggKA0KPiArICBJTiAg ICAgVk9JRCAgICpUbHMsDQo+ICsgIElOICAgICBWT0lEICAgKkRhdGEsDQo+ICsgIElOICAgICBV SU5UTiAgRGF0YVNpemUsDQo+ICsgIElOICAgICBWT0lEICAgKlBhc3N3b3JkICBPUFRJT05BTA0K PiArICApDQo+ICt7DQo+ICsgIENBTExfQ1JZUFRPX1NFUlZJQ0UgKFRsc1NldEhvc3RQcml2YXRl S2V5RXgsIChUbHMsIERhdGEsIERhdGFTaXplLCBQYXNzd29yZCksIEVGSV9VTlNVUFBPUlRFRCk7 DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICBBZGRzIHRoZSBsb2NhbCBwcml2YXRlIGtleSB0byB0 aGUgc3BlY2lmaWVkIFRMUyBvYmplY3QuDQo+ICsNCj4gKyAgVGhpcyBmdW5jdGlvbiBhZGRzIHRo ZSBsb2NhbCBwcml2YXRlIGtleSAoREVSLWVuY29kZWQgb3IgUEVNLWVuY29kZWQgb3IgUEtDUyM4 IHByaXZhdGUNCj4gKyAga2V5KSBpbnRvIHRoZSBzcGVjaWZpZWQgVExTIG9iamVjdCBmb3IgVExT IG5lZ290aWF0aW9uLg0KPiArDQo+ICsgIEBwYXJhbVtpbl0gIFRscyAgICAgICAgIFBvaW50ZXIg dG8gdGhlIFRMUyBvYmplY3QuDQo+ICsgIEBwYXJhbVtpbl0gIERhdGEgICAgICAgIFBvaW50ZXIg dG8gdGhlIGRhdGEgYnVmZmVyIG9mIGEgREVSLWVuY29kZWQgb3IgUEVNLWVuY29kZWQNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgb3IgUEtDUyM4IHByaXZhdGUga2V5Lg0KPiAgICBAcGFy YW1baW5dICBEYXRhU2l6ZSAgICBUaGUgc2l6ZSBvZiBkYXRhIGJ1ZmZlciBpbiBieXRlcy4NCj4g DQo+IEBAIC0zNzQ3LDYgKzM3OTksNTkgQEAgVGxzU2V0Q2VydFJldm9jYXRpb25MaXN0ICgNCj4g ICAgQ0FMTF9DUllQVE9fU0VSVklDRSAoVGxzU2V0Q2VydFJldm9jYXRpb25MaXN0LCAoRGF0YSwg RGF0YVNpemUpLCBFRklfVU5TVVBQT1JURUQpOw0KPiAgfQ0KPiANCj4gKy8qKg0KPiArICBTZXQg dGhlIHNpZ25hdHVyZSBhbGdvcml0aG0gbGlzdCB0byB1c2VkIGJ5IHRoZSBUTFMgb2JqZWN0Lg0K PiArDQo+ICsgIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgc2lnbmF0dXJlIGFsZ29yaXRobXMgZm9y IHVzZSBieSBhIHNwZWNpZmllZCBUTFMgb2JqZWN0Lg0KPiArDQo+ICsgIEBwYXJhbVtpbl0gIFRs cyAgICAgICAgICAgICAgICBQb2ludGVyIHRvIGEgVExTIG9iamVjdC4NCj4gKyAgQHBhcmFtW2lu XSAgRGF0YSAgICAgICAgICAgICAgIEFycmF5IG9mIFVJTlQ4IG9mIHNpZ25hdHVyZSBhbGdvcml0 aG1zLiBUaGUgYXJyYXkgY29uc2lzdHMgb2YNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBhaXJzIG9mIHRoZSBoYXNoIGFsZ29yaXRobSBhbmQgdGhlIHNpZ25hdHVyZSBhbGdv cml0aG0gYXMgZGVmaW5lZA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g UkZDIDUyNDYNCj4gKyAgQHBhcmFtW2luXSAgRGF0YVNpemUgICAgICAgICAgIFRoZSBsZW5ndGgg dGhlIFNpZ25hdHVyZUFsZ29MaXN0LiBNdXN0IGJlIGRpdmlzaWJsZSBieSAyLg0KPiArDQo+ICsg IEByZXR2YWwgIEVGSV9TVUNDRVNTICAgICAgICAgICBUaGUgc2lnbmF0dXJlIGFsZ29yaXRobSBs aXN0IHdhcyBzZXQgc3VjY2Vzc2Z1bGx5Lg0KPiArICBAcmV0dmFsICBFRklfSU5WQUxJRF9QQVJB TUVURVIgVGhlIHBhcmFtZXRlcnMgYXJlIGludmFsaWQuDQo+ICsgIEByZXR2YWwgIEVGSV9VTlNV UFBPUlRFRCAgICAgICBObyBzdXBwb3J0ZWQgVExTIHNpZ25hdHVyZSBhbGdvcml0aG0gd2FzIGZv dW5kIGluIFNpZ25hdHVyZUFsZ29MaXN0DQo+ICsgIEByZXR2YWwgIEVGSV9PVVRfT0ZfUkVTT1VS Q0VTICBNZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQuDQo+ICsNCj4gKyoqLw0KPiArRUZJX1NUQVRV Uw0KPiArRUZJQVBJDQo+ICtUbHNTZXRTaWduYXR1cmVBbGdvTGlzdCAoDQo+ICsgIElOICAgICBW T0lEICAgKlRscywNCj4gKyAgSU4gICAgIFVJTlQ4ICAqRGF0YSwNCj4gKyAgSU4gICAgIFVJTlRO ICBEYXRhU2l6ZQ0KPiArICApDQo+ICt7DQo+ICsgIENBTExfQ1JZUFRPX1NFUlZJQ0UgKFRsc1Nl dFNpZ25hdHVyZUFsZ29MaXN0LCAoVGxzLCBEYXRhLCBEYXRhU2l6ZSksIEVGSV9VTlNVUFBPUlRF RCk7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICBTZXQgdGhlIEVDIGN1cnZlIHRvIGJlIHVzZWQg Zm9yIFRMUyBmbG93cw0KPiArDQo+ICsgIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgRUMgY3VydmUg dG8gYmUgdXNlZCBmb3IgVExTIGZsb3dzLg0KPiArDQo+ICsgIEBwYXJhbVtpbl0gIFRscyAgICAg ICAgICAgICAgICBQb2ludGVyIHRvIGEgVExTIG9iamVjdC4NCj4gKyAgQHBhcmFtW2luXSAgRGF0 YSAgICAgICAgICAgICAgIEFuIEVDIG5hbWVkIGN1cnZlIGFzIGRlZmluZWQgaW4gc2VjdGlvbiA1 LjEuMSBvZiBSRkMgNDQ5Mi4NCj4gKyAgQHBhcmFtW2luXSAgRGF0YVNpemUgICAgICAgICAgIFNp emUgb2YgRGF0YSwgaXQgc2hvdWxkIGJlIHNpemVvZiAoVUlOVDMyKQ0KPiArDQo+ICsgIEByZXR2 YWwgIEVGSV9TVUNDRVNTICAgICAgICAgICBUaGUgRUMgY3VydmUgd2FzIHNldCBzdWNjZXNzZnVs bHkuDQo+ICsgIEByZXR2YWwgIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBUaGUgcGFyYW1ldGVycyBh cmUgaW52YWxpZC4NCj4gKyAgQHJldHZhbCAgRUZJX1VOU1VQUE9SVEVEICAgICAgIFRoZSByZXF1 ZXN0ZWQgVExTIEVDIGN1cnZlIGlzIG5vdCBzdXBwb3J0ZWQNCj4gKw0KPiArKiovDQo+ICtFRklf U1RBVFVTDQo+ICtFRklBUEkNCj4gK1Rsc1NldEVjQ3VydmUgKA0KPiArICBJTiAgICAgVk9JRCAg ICpUbHMsDQo+ICsgIElOICAgICBVSU5UOCAgKkRhdGEsDQo+ICsgIElOICAgICBVSU5UTiAgRGF0 YVNpemUNCj4gKyAgKQ0KPiArew0KPiArICBDQUxMX0NSWVBUT19TRVJWSUNFIChUbHNTZXRTaWdu YXR1cmVBbGdvTGlzdCwgKFRscywgRGF0YSwgRGF0YVNpemUpLCBFRklfVU5TVVBQT1JURUQpOw0K PiArfQ0KPiArDQo+ICAvKioNCj4gICAgR2V0cyB0aGUgcHJvdG9jb2wgdmVyc2lvbiB1c2VkIGJ5 IHRoZSBzcGVjaWZpZWQgVExTIGNvbm5lY3Rpb24uDQo+IA0KPiBAQCAtNDA2Miw2ICs0MTY3LDQz IEBAIFRsc0dldENlcnRSZXZvY2F0aW9uTGlzdCAoDQo+ICAgIENBTExfQ1JZUFRPX1NFUlZJQ0Ug KFRsc0dldENlcnRSZXZvY2F0aW9uTGlzdCwgKERhdGEsIERhdGFTaXplKSwgRUZJX1VOU1VQUE9S VEVEKTsNCj4gIH0NCj4gDQo+ICsvKioNCj4gKyAgRGVyaXZlIGtleWluZyBtYXRlcmlhbCBmcm9t IGEgVExTIGNvbm5lY3Rpb24uDQo+ICsNCj4gKyAgVGhpcyBmdW5jdGlvbiBleHBvcnRzIGtleWlu ZyBtYXRlcmlhbCB1c2luZyB0aGUgbWVjaGFuaXNtIGRlc2NyaWJlZCBpbiBSRkMNCj4gKyAgNTcw NS4NCj4gKw0KPiArICBAcGFyYW1baW5dICAgICAgVGxzICAgICAgICAgIFBvaW50ZXIgdG8gdGhl IFRMUyBvYmplY3QNCj4gKyAgQHBhcmFtW2luXSAgICAgIExhYmVsICAgICAgICBEZXNjcmlwdGlv biBvZiB0aGUga2V5IGZvciB0aGUgUFJGIGZ1bmN0aW9uDQo+ICsgIEBwYXJhbVtpbl0gICAgICBD b250ZXh0ICAgICAgT3B0aW9uYWwgY29udGV4dA0KPiArICBAcGFyYW1baW5dICAgICAgQ29udGV4 dExlbiAgIFRoZSBsZW5ndGggb2YgdGhlIGNvbnRleHQgdmFsdWUgaW4gYnl0ZXMNCj4gKyAgQHBh cmFtW291dF0gICAgIEtleUJ1ZmZlciAgICBCdWZmZXIgdG8gaG9sZCB0aGUgb3V0cHV0IG9mIHRo ZSBUTFMtUFJGDQo+ICsgIEBwYXJhbVtpbl0gICAgICBLZXlCdWZmZXJMZW4gVGhlIGxlbmd0aCBv ZiB0aGUgS2V5QnVmZmVyDQo+ICsNCj4gKyAgQHJldHZhbCAgRUZJX1NVQ0NFU1MgICAgICAgICAg ICAgVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQuDQo+ICsgIEByZXR2YWwgIEVGSV9JTlZBTElEX1BB UkFNRVRFUiAgIFRoZSBUTFMgb2JqZWN0IGlzIGludmFsaWQuDQo+ICsgIEByZXR2YWwgIEVGSV9Q Uk9UT0NPTF9FUlJPUiAgICAgIFNvbWUgb3RoZXIgZXJyb3Igb2NjdXJyZWQuDQo+ICsNCj4gKyoq Lw0KPiArRUZJX1NUQVRVUw0KPiArRUZJQVBJDQo+ICtUbHNHZXRFeHBvcnRLZXkgKA0KPiArICBJ TiAgICAgVk9JRCAgICAgICAgKlRscywNCj4gKyAgSU4gICAgIENPTlNUIFZPSUQgICpMYWJlbCwN Cj4gKyAgSU4gICAgIENPTlNUIFZPSUQgICpDb250ZXh0LA0KPiArICBJTiAgICAgVUlOVE4gICAg ICAgQ29udGV4dExlbiwNCj4gKyAgT1VUICAgIFZPSUQgICAgICAgICpLZXlCdWZmZXIsDQo+ICsg IElOICAgICBVSU5UTiAgICAgICBLZXlCdWZmZXJMZW4NCj4gKyAgKQ0KPiArew0KPiArICBDQUxM X0NSWVBUT19TRVJWSUNFICgNCj4gKyAgICBUbHNHZXRFeHBvcnRLZXksDQo+ICsgICAgKFRscywg TGFiZWwsIENvbnRleHQsIENvbnRleHRMZW4sDQo+ICsgICAgIEtleUJ1ZmZlciwgS2V5QnVmZmVy TGVuKSwNCj4gKyAgICBFRklfVU5TVVBQT1JURUQNCj4gKyAgICApOw0KPiArfQ0KPiArDQo+ICAv LyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ICAvLyAgICBCaWcgbnVtYmVyIHByaW1p dGl2ZQ0KPiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiBkaWZmIC0tZ2l0IGEv Q3J5cHRvUGtnL1ByaXZhdGUvUHJvdG9jb2wvQ3J5cHRvLmggYi9DcnlwdG9Qa2cvUHJpdmF0ZS9Q cm90b2NvbC9DcnlwdG8uaA0KPiBpbmRleCAyZjI2N2M3ZjU1Li42MjkzZWZhMzZiIDEwMDY0NA0K PiAtLS0gYS9DcnlwdG9Qa2cvUHJpdmF0ZS9Qcm90b2NvbC9DcnlwdG8uaA0KPiArKysgYi9Dcnlw dG9Qa2cvUHJpdmF0ZS9Qcm90b2NvbC9DcnlwdG8uaA0KPiBAQCAtMjEsNyArMjEsNyBAQA0KPiAg Ly8vIHRoZSBFREsgSUkgQ3J5cHRvIFByb3RvY29sIGlzIGV4dGVuZGVkLCB0aGlzIHZlcnNpb24g ZGVmaW5lIG11c3QgYmUNCj4gIC8vLyBpbmNyZWFzZWQuDQo+ICAvLy8NCj4gLSNkZWZpbmUgRURL SUlfQ1JZUFRPX1ZFUlNJT04gIDEzDQo+ICsjZGVmaW5lIEVES0lJX0NSWVBUT19WRVJTSU9OICAx NA0KPiANCj4gIC8vLw0KPiAgLy8vIEVESyBJSSBDcnlwdG8gUHJvdG9jb2wgZm9yd2FyZCBkZWNs YXJhdGlvbg0KPiBAQCAtMzE4Niw2ICszMTg2LDI1IEBAIElOVE4NCj4gICAgSU4gICAgIFVJTlRO ICAgICAgICAgICAgICAgICAgICBCdWZmZXJTaXplDQo+ICAgICk7DQo+IA0KPiArLyoqDQo+ICsg IFNodXRkb3duIGEgVExTIGNvbm5lY3Rpb24uDQo+ICsNCj4gKyAgU2h1dGRvd24gdGhlIFRMUyBj b25uZWN0aW9uIHdpdGhvdXQgcmVsZWFzaW5nIHRoZSByZXNvdXJjZXMsIG1lYW5pbmcgYSBuZXcN Cj4gKyAgY29ubmVjdGlvbiBjYW4gYmUgc3RhcnRlZCB3aXRob3V0IGNhbGxpbmcgVGxzTmV3KCkg YW5kIHdpdGhvdXQgc2V0dGluZw0KPiArICBjZXJ0aWZpY2F0ZXMgZXRjLg0KPiArDQo+ICsgIEBw YXJhbVtpbl0gICAgICAgVGxzICAgICAgICAgICAgUG9pbnRlciB0byB0aGUgVExTIG9iamVjdCB0 byBzaHV0ZG93bi4NCj4gKw0KPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgIFRo ZSBUTFMgaXMgc2h1dGRvd24gc3VjY2Vzc2Z1bGx5Lg0KPiArICBAcmV0dmFsIEVGSV9JTlZBTElE X1BBUkFNRVRFUiAgIFRscyBpcyBOVUxMLg0KPiArICBAcmV0dmFsIEVGSV9QUk9UT0NPTF9FUlJP UiAgICAgIFNvbWUgb3RoZXIgZXJyb3Igb2NjdXJyZWQuDQo+ICsqKi8NCj4gK3R5cGVkZWYNCj4g K0VGSV9TVEFUVVMNCj4gKyhFRklBUEkgKkVES0lJX0NSWVBUT19UTFNfU0hVVERPV04pKA0KPiAr ICBJTiAgICAgVk9JRCAgICAgICAgICAgICAgICAgICAgICpUbHMNCj4gKyAgKTsNCj4gKw0KPiAg LyoqDQo+ICAgIFNldCBhIG5ldyBUTFMvU1NMIG1ldGhvZCBmb3IgYSBwYXJ0aWN1bGFyIFRMUyBv YmplY3QuDQo+IA0KPiBAQCAtMzM4NCwxMSArMzQwMywzOCBAQCBFRklfU1RBVFVTDQo+ICAvKioN Cj4gICAgQWRkcyB0aGUgbG9jYWwgcHJpdmF0ZSBrZXkgdG8gdGhlIHNwZWNpZmllZCBUTFMgb2Jq ZWN0Lg0KPiANCj4gLSAgVGhpcyBmdW5jdGlvbiBhZGRzIHRoZSBsb2NhbCBwcml2YXRlIGtleSAo UEVNLWVuY29kZWQgUlNBIG9yIFBLQ1MjOCBwcml2YXRlDQo+ICsgIFRoaXMgZnVuY3Rpb24gYWRk cyB0aGUgbG9jYWwgcHJpdmF0ZSBrZXkgKERFUi1lbmNvZGVkIG9yIFBFTS1lbmNvZGVkIG9yIFBL Q1MjOCBwcml2YXRlDQo+ICsgIGtleSkgaW50byB0aGUgc3BlY2lmaWVkIFRMUyBvYmplY3QgZm9y IFRMUyBuZWdvdGlhdGlvbi4NCj4gKw0KPiArICBAcGFyYW1baW5dICBUbHMgICAgICAgICBQb2lu dGVyIHRvIHRoZSBUTFMgb2JqZWN0Lg0KPiArICBAcGFyYW1baW5dICBEYXRhICAgICAgICBQb2lu dGVyIHRvIHRoZSBkYXRhIGJ1ZmZlciBvZiBhIERFUi1lbmNvZGVkIG9yIFBFTS1lbmNvZGVkDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIFBLQ1MjOCBwcml2YXRlIGtleS4NCj4gKyAg QHBhcmFtW2luXSAgRGF0YVNpemUgICAgVGhlIHNpemUgb2YgZGF0YSBidWZmZXIgaW4gYnl0ZXMu DQo+ICsgIEBwYXJhbVtpbl0gIFBhc3N3b3JkICAgIFBvaW50ZXIgdG8gTlVMTC10ZXJtaW5hdGVk IHByaXZhdGUga2V5IHBhc3N3b3JkLCBzZXQgaXQgdG8gTlVMTA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBwcml2YXRlIGtleSBub3QgZW5jcnlwdGVkLg0KPiArDQo+ICsgIEByZXR2 YWwgIEVGSV9TVUNDRVNTICAgICBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZC4NCj4gKyAgQHJldHZh bCAgRUZJX1VOU1VQUE9SVEVEIFRoaXMgZnVuY3Rpb24gaXMgbm90IHN1cHBvcnRlZC4NCj4gKyAg QHJldHZhbCAgRUZJX0FCT1JURUQgICAgIEludmFsaWQgcHJpdmF0ZSBrZXkgZGF0YS4NCj4gKw0K PiArKiovDQo+ICt0eXBlZGVmDQo+ICtFRklfU1RBVFVTDQo+ICsoRUZJQVBJICpFREtJSV9DUllQ VE9fVExTX1NFVF9IT1NUX1BSSVZBVEVfS0VZX0VYKSgNCj4gKyAgSU4gICAgIFZPSUQgICAgICAg ICAgICAgICAgICAgICAqVGxzLA0KPiArICBJTiAgICAgVk9JRCAgICAgICAgICAgICAgICAgICAg ICpEYXRhLA0KPiArICBJTiAgICAgVUlOVE4gICAgICAgICAgICAgICAgICAgIERhdGFTaXplLA0K PiArICBJTiAgICAgVk9JRCAgICAgICAgICAgICAgICAgICAgICpQYXNzd29yZCAgT1BUSU9OQUwN Cj4gKyAgKTsNCj4gKw0KPiArLyoqDQo+ICsgIEFkZHMgdGhlIGxvY2FsIHByaXZhdGUga2V5IHRv IHRoZSBzcGVjaWZpZWQgVExTIG9iamVjdC4NCj4gKw0KPiArICBUaGlzIGZ1bmN0aW9uIGFkZHMg dGhlIGxvY2FsIHByaXZhdGUga2V5IChERVItZW5jb2RlZCBvciBQRU0tZW5jb2RlZCBvciBQS0NT IzggcHJpdmF0ZQ0KPiAgICBrZXkpIGludG8gdGhlIHNwZWNpZmllZCBUTFMgb2JqZWN0IGZvciBU TFMgbmVnb3RpYXRpb24uDQo+IA0KPiAgICBAcGFyYW1baW5dICBUbHMgICAgICAgICBQb2ludGVy IHRvIHRoZSBUTFMgb2JqZWN0Lg0KPiAtICBAcGFyYW1baW5dICBEYXRhICAgICAgICBQb2ludGVy IHRvIHRoZSBkYXRhIGJ1ZmZlciBvZiBhIFBFTS1lbmNvZGVkIFJTQQ0KPiArICBAcGFyYW1baW5d ICBEYXRhICAgICAgICBQb2ludGVyIHRvIHRoZSBkYXRhIGJ1ZmZlciBvZiBhIERFUi1lbmNvZGVk IG9yIFBFTS1lbmNvZGVkDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIFBLQ1MjOCBw cml2YXRlIGtleS4NCj4gICAgQHBhcmFtW2luXSAgRGF0YVNpemUgICAgVGhlIHNpemUgb2YgZGF0 YSBidWZmZXIgaW4gYnl0ZXMuDQo+IA0KPiBAQCAtMzY4MCw2ICszNzI2LDgyIEBAIEVGSV9TVEFU VVMNCj4gICAgSU4gT1VUIFVJTlROICAgICAgICAgICAgICAgICAgICAqRGF0YVNpemUNCj4gICAg KTsNCj4gDQo+ICsvKioNCj4gKyAgU2V0IHRoZSBzaWduYXR1cmUgYWxnb3JpdGhtIGxpc3QgdG8g dXNlZCBieSB0aGUgVExTIG9iamVjdC4NCj4gKw0KPiArICBUaGlzIGZ1bmN0aW9uIHNldHMgdGhl IHNpZ25hdHVyZSBhbGdvcml0aG1zIGZvciB1c2UgYnkgYSBzcGVjaWZpZWQgVExTIG9iamVjdC4N Cj4gKw0KPiArICBAcGFyYW1baW5dICBUbHMgICAgICAgICAgICAgICAgUG9pbnRlciB0byBhIFRM UyBvYmplY3QuDQo+ICsgIEBwYXJhbVtpbl0gIERhdGEgICAgICAgICAgICAgICBBcnJheSBvZiBV SU5UOCBvZiBzaWduYXR1cmUgYWxnb3JpdGhtcy4gVGhlIGFycmF5IGNvbnNpc3RzIG9mDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWlycyBvZiB0aGUgaGFzaCBhbGdvcml0 aG0gYW5kIHRoZSBzaWduYXR1cmUgYWxnb3JpdGhtIGFzIGRlZmluZWQNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGluIFJGQyA1MjQ2DQo+ICsgIEBwYXJhbVtpbl0gIERhdGFT aXplICAgICAgICAgICBUaGUgbGVuZ3RoIHRoZSBTaWduYXR1cmVBbGdvTGlzdC4gTXVzdCBiZSBk aXZpc2libGUgYnkgMi4NCj4gKw0KPiArICBAcmV0dmFsICBFRklfU1VDQ0VTUyAgICAgICAgICAg VGhlIHNpZ25hdHVyZSBhbGdvcml0aG0gbGlzdCB3YXMgc2V0IHN1Y2Nlc3NmdWxseS4NCj4gKyAg QHJldHZhbCAgRUZJX0lOVkFMSURfUEFSQU1FVEVSIFRoZSBwYXJhbWV0ZXJzIGFyZSBpbnZhbGlk Lg0KPiArICBAcmV0dmFsICBFRklfVU5TVVBQT1JURUQgICAgICAgTm8gc3VwcG9ydGVkIFRMUyBz aWduYXR1cmUgYWxnb3JpdGhtIHdhcyBmb3VuZCBpbiBTaWduYXR1cmVBbGdvTGlzdA0KPiArICBA cmV0dmFsICBFRklfT1VUX09GX1JFU09VUkNFUyAgTWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkLg0K PiArDQo+ICsqKi8NCj4gK3R5cGVkZWYNCj4gK0VGSV9TVEFUVVMNCj4gKyhFRklBUEkgKkVES0lJ X0NSWVBUT19UTFNfU0VUX1NJR05BVFVSRV9BTEdPX0xJU1QpKA0KPiArICBJTiAgICAgVk9JRCAg ICpUbHMsDQo+ICsgIElOICAgICBVSU5UOCAgKkRhdGEsDQo+ICsgIElOICAgICBVSU5UTiAgRGF0 YVNpemUNCj4gKyAgKTsNCj4gKw0KPiArLyoqDQo+ICsgIFNldCB0aGUgRUMgY3VydmUgdG8gYmUg dXNlZCBmb3IgVExTIGZsb3dzDQo+ICsNCj4gKyAgVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBFQyBj dXJ2ZSB0byBiZSB1c2VkIGZvciBUTFMgZmxvd3MuDQo+ICsNCj4gKyAgQHBhcmFtW2luXSAgVGxz ICAgICAgICAgICAgICAgIFBvaW50ZXIgdG8gYSBUTFMgb2JqZWN0Lg0KPiArICBAcGFyYW1baW5d ICBEYXRhICAgICAgICAgICAgICAgQW4gRUMgbmFtZWQgY3VydmUgYXMgZGVmaW5lZCBpbiBzZWN0 aW9uIDUuMS4xIG9mIFJGQyA0NDkyLg0KPiArICBAcGFyYW1baW5dICBEYXRhU2l6ZSAgICAgICAg ICAgU2l6ZSBvZiBEYXRhLCBpdCBzaG91bGQgYmUgc2l6ZW9mIChVSU5UMzIpDQo+ICsNCj4gKyAg QHJldHZhbCAgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSBFQyBjdXJ2ZSB3YXMgc2V0IHN1Y2Nl c3NmdWxseS4NCj4gKyAgQHJldHZhbCAgRUZJX0lOVkFMSURfUEFSQU1FVEVSIFRoZSBwYXJhbWV0 ZXJzIGFyZSBpbnZhbGlkLg0KPiArICBAcmV0dmFsICBFRklfVU5TVVBQT1JURUQgICAgICAgVGhl IHJlcXVlc3RlZCBUTFMgRUMgY3VydmUgaXMgbm90IHN1cHBvcnRlZA0KPiArDQo+ICsqKi8NCj4g K3R5cGVkZWYNCj4gK0VGSV9TVEFUVVMNCj4gKyhFRklBUEkgKkVES0lJX0NSWVBUT19UTFNfU0VU X0VDX0NVUlZFKSgNCj4gKyAgSU4gICAgIFZPSUQgICAqVGxzLA0KPiArICBJTiAgICAgVUlOVDgg ICpEYXRhLA0KPiArICBJTiAgICAgVUlOVE4gIERhdGFTaXplDQo+ICsgICk7DQo+ICsNCj4gKy8q Kg0KPiArICBEZXJpdmUga2V5aW5nIG1hdGVyaWFsIGZyb20gYSBUTFMgY29ubmVjdGlvbi4NCj4g Kw0KPiArICBUaGlzIGZ1bmN0aW9uIGV4cG9ydHMga2V5aW5nIG1hdGVyaWFsIHVzaW5nIHRoZSBt ZWNoYW5pc20gZGVzY3JpYmVkIGluIFJGQw0KPiArICA1NzA1Lg0KPiArDQo+ICsgIEBwYXJhbVtp bl0gICAgICBUbHMgICAgICAgICAgUG9pbnRlciB0byB0aGUgVExTIG9iamVjdA0KPiArICBAcGFy YW1baW5dICAgICAgTGFiZWwgICAgICAgIERlc2NyaXB0aW9uIG9mIHRoZSBrZXkgZm9yIHRoZSBQ UkYgZnVuY3Rpb24NCj4gKyAgQHBhcmFtW2luXSAgICAgIENvbnRleHQgICAgICBPcHRpb25hbCBj b250ZXh0DQo+ICsgIEBwYXJhbVtpbl0gICAgICBDb250ZXh0TGVuICAgVGhlIGxlbmd0aCBvZiB0 aGUgY29udGV4dCB2YWx1ZSBpbiBieXRlcw0KPiArICBAcGFyYW1bb3V0XSAgICAgS2V5QnVmZmVy ICAgIEJ1ZmZlciB0byBob2xkIHRoZSBvdXRwdXQgb2YgdGhlIFRMUy1QUkYNCj4gKyAgQHBhcmFt W2luXSAgICAgIEtleUJ1ZmZlckxlbiBUaGUgbGVuZ3RoIG9mIHRoZSBLZXlCdWZmZXINCj4gKw0K PiArICBAcmV0dmFsICBFRklfU1VDQ0VTUyAgICAgICAgICAgICBUaGUgb3BlcmF0aW9uIHN1Y2Nl ZWRlZC4NCj4gKyAgQHJldHZhbCAgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgVGhlIFRMUyBvYmpl Y3QgaXMgaW52YWxpZC4NCj4gKyAgQHJldHZhbCAgRUZJX1BST1RPQ09MX0VSUk9SICAgICAgU29t ZSBvdGhlciBlcnJvciBvY2N1cnJlZC4NCj4gKw0KPiArKiovDQo+ICt0eXBlZGVmDQo+ICtFRklf U1RBVFVTDQo+ICsoRUZJQVBJICpFREtJSV9DUllQVE9fVExTX0dFVF9FWFBPUlRfS0VZKSgNCj4g KyAgSU4gICAgIFZPSUQgICAgICAgICAgICAgICAgICAgICAqVGxzLA0KPiArICBJTiAgICAgQ09O U1QgVk9JRCAgICAgICAgICAgICAgKkxhYmVsLA0KPiArICBJTiAgICAgQ09OU1QgVk9JRCAgICAg ICAgICAgICAgICpDb250ZXh0LA0KPiArICBJTiAgICAgVUlOVE4gICAgICAgICAgICAgICAgICAg IENvbnRleHRMZW4sDQo+ICsgIE9VVCAgICBWT0lEICAgICAgICAgICAgICAgICAgICAgKktleUJ1 ZmZlciwNCj4gKyAgSU4gICAgIFVJTlROICAgICAgICAgICAgICAgICAgICBLZXlCdWZmZXJMZW4N Cj4gKyAgKTsNCj4gKw0KPiAgLyoqDQo+ICAgIEdldHMgdGhlIENBLXN1cHBsaWVkIGNlcnRpZmlj YXRlIHJldm9jYXRpb24gbGlzdCBkYXRhIHNldCBpbiB0aGUgc3BlY2lmaWVkDQo+ICAgIFRMUyBv YmplY3QuDQo+IEBAIC00OTU0LDYgKzUwNzYsMTQgQEAgc3RydWN0IF9FREtJSV9DUllQVE9fUFJP VE9DT0wgew0KPiAgICBFREtJSV9DUllQVE9fRUNfR0VORVJBVEVfS0VZICAgICAgICAgICAgICAg ICAgICAgICAgRWNHZW5lcmF0ZUtleTsNCj4gICAgRURLSUlfQ1JZUFRPX0VDX0dFVF9QVUJfS0VZ ICAgICAgICAgICAgICAgICAgICAgICAgIEVjR2V0UHViS2V5Ow0KPiAgICBFREtJSV9DUllQVE9f RUNfREhfQ09NUFVURV9LRVkgICAgICAgICAgICAgICAgICAgICAgRWNEaENvbXB1dGVLZXk7DQo+ ICsgIC8vLyBUTFMgKGNvbnRpbnVlZCkNCj4gKyAgRURLSUlfQ1JZUFRPX1RMU19TSFVURE9XTiAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRsc1NodXRkb3duOw0KPiArICAvLy8gVExTIFNldCAo Y29udGludWVkKQ0KPiArICBFREtJSV9DUllQVE9fVExTX1NFVF9IT1NUX1BSSVZBVEVfS0VZX0VY ICAgICAgICAgICAgVGxzU2V0SG9zdFByaXZhdGVLZXlFeDsNCj4gKyAgRURLSUlfQ1JZUFRPX1RM U19TRVRfU0lHTkFUVVJFX0FMR09fTElTVCAgICAgICAgICAgIFRsc1NldFNpZ25hdHVyZUFsZ29M aXN0Ow0KPiArICBFREtJSV9DUllQVE9fVExTX1NFVF9FQ19DVVJWRSAgICAgICAgICAgICAgICAg ICAgICAgVGxzU2V0RWNDdXJ2ZTsNCj4gKyAgLy8vIFRMUyBHZXQgKGNvbnRpbnVlZCkNCj4gKyAg RURLSUlfQ1JZUFRPX1RMU19HRVRfRVhQT1JUX0tFWSAgICAgICAgICAgICAgICAgICAgIFRsc0dl dEV4cG9ydEtleTsNCj4gIH07DQo+IA0KPiAgZXh0ZXJuIEdVSUQgIGdFZGtpaUNyeXB0b1Byb3Rv Y29sR3VpZDsNCj4gLS0NCj4gMi4zMS4xLndpbmRvd3MuMQ0KPiANCj4gDQo+IA0KPiANCj4gDQoN Cg==