From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id A48F1AC138F for ; Tue, 12 Mar 2024 15:40:06 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=y4ONo3U2TbZOEX1L4b1W+/0SBUu8xgvYEyBiqv2I0ZM=; c=relaxed/simple; d=groups.io; h=From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Resent-Date:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20240206; t=1710258005; v=1; b=EpNtJmMVQMogmULU8X8IoqheCUAL1QVvLLAt6Q/jQNMuhVwHfz7N2OgeEU5GlEhrFq+Vp0lz keTe032TqdhxwqkCOm9g3TbMQEjkYiaHplepD3p5U8A7LwjQ7GUHmSg6XK5YH9qYq3rwZBIsZdb agnivwib8ed9Id5FZ02QSNA9Tjlxh/052yGHj2x2AfJNCVdUeSUg4xuePBTEYE6gLEZNJDPIBMv +9jqWujRFCFmTXOT9GSAvKDr76KHThDVorgFLJ9dqmyNSwX/X7O8Jzei6B54hyX1XRZyntSFyMo 3fgf3sws/YOgPm4iC3ZFJdxUdaoH1+9T5mFZc2sRLAP1A== X-Received: by 127.0.0.2 with SMTP id XWIlYY7687511xbaxgxv7e8T; Tue, 12 Mar 2024 08:40:05 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.16]) by mx.groups.io with SMTP id smtpd.web10.52681.1710124038237766031 for ; Sun, 10 Mar 2024 19:27:18 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,11009"; a="4887486" X-IronPort-AV: E=Sophos;i="6.07,115,1708416000"; d="scan'208";a="4887486" X-Received: from fmviesa004.fm.intel.com ([10.60.135.144]) by orvoesa108.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2024 19:27:17 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,115,1708416000"; d="scan'208";a="15609747" X-Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmviesa004.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 10 Mar 2024 19:27:17 -0700 X-Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Sun, 10 Mar 2024 19:27:16 -0700 X-Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Sun, 10 Mar 2024 19:27:15 -0700 X-Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Sun, 10 Mar 2024 19:27:15 -0700 X-Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.168) 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.2507.35; Sun, 10 Mar 2024 19:27:14 -0700 X-Received: from SN6PR11MB2815.namprd11.prod.outlook.com (2603:10b6:805:62::13) by PH0PR11MB5159.namprd11.prod.outlook.com (2603:10b6:510:3c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.15; Mon, 11 Mar 2024 02:27:12 +0000 X-Received: from SN6PR11MB2815.namprd11.prod.outlook.com ([fe80::ad4f:d303:2f5e:7aeb]) by SN6PR11MB2815.namprd11.prod.outlook.com ([fe80::ad4f:d303:2f5e:7aeb%6]) with mapi id 15.20.7386.011; Mon, 11 Mar 2024 02:27:12 +0000 From: "Zhang, Zifeng" To: gaoliming , "Yang, Yuting2" , "devel@edk2.groups.io" CC: 'Rebecca Cran' , "Feng, Bob C" , "Chen, Christine" , "Chen, Arthur G" Subject: Re: [edk2-devel] [Patch V3] BaseTools: VfrCompiler Adds DefaultValueError Thread-Topic: [Patch V3] BaseTools: VfrCompiler Adds DefaultValueError Thread-Index: AQHaUALqNo/gnto8+kGgZSwfSXDsNrEsE9hggAIbJACAA+e+kA== Date: Mon, 11 Mar 2024 02:27:12 +0000 Message-ID: References: <20240126025341.149-1-yuting2.yang@intel.com> <03d801da7167$818247a0$8486d6e0$@byosoft.com.cn> In-Reply-To: <03d801da7167$818247a0$8486d6e0$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR11MB2815:EE_|PH0PR11MB5159:EE_ x-ms-office365-filtering-correlation-id: dd46a8c1-56a1-4cf0-00e9-08dc4172c24d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: vahRG7MUcO6RJWr3lv3nBUo7SjeHEwgqCNrhxBB5IMGRWcNV7U+NLt+OvwsIeSgINBxxAzB4r8GtoVAFe3DJmZgxunjF6RHHbRsRoA5r/cw4AoYnnrZngW8jXFOBCfyTUHTB2BRyi9LcHIcKO8yF4xwaIhlSa7DpsETa/oNAmT9LrRX4n6FRm0iOBP2SWdF2OLndiS0ORwHrTnPczADPi+WWhWJoWt/+GEU21rAk8YbwYgT4UBUVLbSeISN0IhR2ErO8Bc32LsbD1yXEx1Jrm7Ra3TKdC/bB/zKJN+Sa4ubLiSBMvVmVRxVvgW4bReAFkqa5ecxxqu9paDMjkcflysgA/GArP+uuM47+QTyU6nDR0c1YamnY/4Tyz3oOazJjTk1T1+3p/RomnHJwpsXBpyVKKeqfUs1jAa+skGYlHMFejCMDIDXdy3K7OgDpe1WWur2vU2vcLvfhJONpIvfouhT8P3iR4Oqlhsu43R5gUjre3qehTxCag2jdTz3nYX95ne+m4pZtliSPEJmxDoLEeSMAzWco2KlinQPC74itRe+4YXTstT3t85/QLbuVE7tclm5T6NtPofPuP4RNmzGoZODHYAavKPpLNoSUh+qqljaMAa+SMvnMUaCzd33IijxeFcv3BDXJkUcdZ0UlfYG/g9WYluvDv5HWeovi972Uyw+EjPIffP2/TT7v0IdcJNsr x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aFUxc0lDWkNDbEZpRElOY3g1MXdhZzV4S0pwTm5VNFdIVVE1Y25LWG9lSVht?= =?utf-8?B?R2w5YnVLWEtJUWVjOHY0SjdIZHdQKzRYTklsZ1E5K1UySHRGME1ncHB6YkVS?= =?utf-8?B?RG9CeTIzMHhvS2ZvODZlWGlJRGkwb3orb2VIZU54K2M2UDRjWFNjVTNDWFhv?= =?utf-8?B?ZFdGOFpXSGhJblJwSG1vTHFrY2F3dzNnOHNaSFNNZkV4YVNUMXR2TFdqdktn?= =?utf-8?B?R3EzQmwyYkV5akRZMjZuUE9IRmdkVTJaYUk5LzlXemhrc3FLNVZEWTlNeCtM?= =?utf-8?B?Q3hudUlybzRTdURFU1FlMTc3TWZhMkNsNkV0dExoMzhmbjdQTVJINmtIUnVS?= =?utf-8?B?Si9TSVN0dDBWUUNXclRHMmxFVlJjQnRxWHFGblMxWWpPZkJMN3kwam1SSDZt?= =?utf-8?B?NWJFaE9ZakxQbFYzMDd2aU91WWJIM0pmOGtrQzJPOVRsSXJsdDlGbUlxQVBX?= =?utf-8?B?RnV0Z2p2NnRxcGZFdGVteWNtNGRDNUgyY0o1L2hiZHRqVnpmQmgwUlVQMjUv?= =?utf-8?B?THhFbUpSQWsvTVZJQURaRDFzTTBaUG1wU2ZoLzIybGZhQzVNL2g3MVFCWmdW?= =?utf-8?B?VkdoNndSQmRwbXFpZzVlTmxVUi9NSlo3Z3VGTWp2S3EzL0xCRUhIeUhMZmJF?= =?utf-8?B?bTVIRzN1RFRjOGJBd1ZHQU5OdDBDbVZiQ3UySDRCSXBNM295ZURoRlFaSDEz?= =?utf-8?B?bzgwMTF3YmN1eTRFeGUwbTIxalIyVkt6VEN2UXFzMlVaYVNKV2NHTGNXc1E3?= =?utf-8?B?YmR5MmpSZUtOV0dtS0VHclpaMHhWd0dHY0VqZVVxaTVtV3p0THdDQ295UXZq?= =?utf-8?B?Z2hUaGZtWCs1QytDYXRnOVNvYUdraXZEQXBKWlhOVG9QRVBzMVpaUjg3bk1s?= =?utf-8?B?dXpuR3R2UTc3VGMrWWM0K05nYVEySXVKSkdoMGE2SGpCb21uemdneXM4b0I1?= =?utf-8?B?WWNVRUU2SUFRdGkzdDJMWlJERUtad3VEZDMrMzdqbFhHZXNKeWExY1Fmejg3?= =?utf-8?B?ZC9DNEJWMHd5SldFTjVwemNqMlNyS0ZaclZWNVJsSWUrS3o1Z2d3dDdqT3Y3?= =?utf-8?B?enkra29iNmJDT2ZmZXJwSVZlalAzcEE4YkYraUNGSTFOMWovaDZnRTlCT3I1?= =?utf-8?B?SFlwYmJTV1doNXRvbWZaTGl0QXBqOFU2M1BXQ0cvb0p4OFY2TDZIU0w5UmY2?= =?utf-8?B?TkhuTlVScms5a3F2b0JSc2lhM2NnTXFNcDkrSGQ3VFJSTkNmb2dEMFRDZnZy?= =?utf-8?B?MGZtWXBicTl1b3c4NytFdXhwM3pBSHpoMmtIVVAxeHIzdC9BVDFlRURVaERr?= =?utf-8?B?NFkwcTY3OStJbWNLNXhXdDJRSG02WEliK2lTVFVBU2VDNVVNM0gvN295OGdC?= =?utf-8?B?WkJWTi9jMkJkcWo0b3VxMS9ZaEtla0sxUEV2UWM3dzZ4bG9YTGo0NVZmS1pD?= =?utf-8?B?OEx0NTBEZUYyeHF2d2RoUXdqN3FUb0swRHBHcldkdjVwdTVKQlhQdU84Yk54?= =?utf-8?B?NXlvaXZlRUVXVHprSnBieFQ0dU9oK3h1UEZzUU5TVDNlemRvTXVXalBwK1Jo?= =?utf-8?B?OXM5bGg1dis5U3lseWRGdTFxU2tFRmxXV0lrTVpXTEFsU1lHb1FDdmNTRUhO?= =?utf-8?B?RVYwQWY4MjNhWU96SCt2UEtiOG55bE1HU0E4blhoR0xTNGE4Y1dmYnBKZGtO?= =?utf-8?B?MUw3R0lBU0NWcEJhbUE2cTk0NTcvU2p6ejBSOFJQOW51T3RjVzJvb1RMQTZR?= =?utf-8?B?b1J2WmRYR2wwUFN5SVQ4UlAxWW5xUkI5N1pISTFJYW5OTWVmenZMS3Vic3lm?= =?utf-8?B?aHZyNDB6cm5Ub0pyQ0RIQWRWWWhxclNwTFpYclByZFgwYmZXU1FiNmR2NDk2?= =?utf-8?B?NnJvSXNLRGhsQXJNM1FHSVB3ckVYV3lPSVcwbGwrVVl1RDVRK2tXa1NLd29O?= =?utf-8?B?V3I5NG84N3pVOVVsajdKYk9VRDBhMUk2bFlUOFltK0l5N0Z3M21IaVdJYytQ?= =?utf-8?B?ejRaejlXL29sZkxvQnkvdGdOcWRqTmtoay95VjJxYmM0VGI5d0daRDhJRTVr?= =?utf-8?B?MmUzcWRtNW5GcDdUUWpnSVQ5MXNIVk5xcnhrT250TUc4NURvWXBuTGFuZWR6?= =?utf-8?Q?TavnvrJ4ri1y5rh+7mZZyMgej?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB2815.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dd46a8c1-56a1-4cf0-00e9-08dc4172c24d X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Mar 2024 02:27:12.1115 (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: ykhq2fXHIKWV2s+l9mI52EiJtcghXVwjM1Gk+ftlWKQ+yXotnFsXOOoQNHioqTmdGvfDIJfoz0cZpiIcbeT8bg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5159 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Resent-Date: Tue, 12 Mar 2024 08:40:04 -0700 Reply-To: devel@edk2.groups.io,zifeng.zhang@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: 9Ut4FXlDBR3aSa8Zi8UNqhlVx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b=EpNtJmMV; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io VGhhbmtzIGZvciBzaGFyaW5nLg0KDQpCZXN0IFJlZ2FyZHMsDQpaaWZlbmcNCg0KLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGdhb2xpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29t LmNuPiANClNlbnQ6IEZyaWRheSwgTWFyY2ggOCwgMjAyNCAxMDo0NyBQTQ0KVG86IFpoYW5nLCBa aWZlbmcgPHppZmVuZy56aGFuZ0BpbnRlbC5jb20+OyBZYW5nLCBZdXRpbmcyIDx5dXRpbmcyLnlh bmdAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCkNjOiAnUmViZWNjYSBDcmFuJyA8 cmViZWNjYUBic2Rpby5jb20+OyBGZW5nLCBCb2IgQyA8Ym9iLmMuZmVuZ0BpbnRlbC5jb20+OyBD aGVuLCBDaHJpc3RpbmUgPHl1d2VpLmNoZW5AaW50ZWwuY29tPjsgQ2hlbiwgQXJ0aHVyIEcgPGFy dGh1ci5nLmNoZW5AaW50ZWwuY29tPg0KU3ViamVjdDog5Zue5aSNOiBbUGF0Y2ggVjNdIEJhc2VU b29sczogVmZyQ29tcGlsZXIgQWRkcyBEZWZhdWx0VmFsdWVFcnJvcg0KDQpaaWZlbmc6DQogIEZv ciBTdHJ1Y3R1cmUgUENELCAgaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2Uv MTg0MzIgaXMgdGhlIHN1bW1hcnkgb2YgY29kZSBjaGFuZ2UuIA0KDQogIEJlbG93IGlzIHR3byB3 aWtpcyBhYm91dCBpdHMgdXNhZ2UuIA0KICBodHRwczovL2dpdGh1Yi5jb20vbGdhbzQvZWRrMi93 aWtpL1N0cnVjdXRyZVBjZC1Vc2FnZQ0KICBodHRwczovL2dpdGh1Yi5jb20vbGdhbzQvZWRrMi93 aWtpL1N0cnVjdHVyZVBjZC1FbmFibGUtU3RlcHMNCiAgDQogIEZvciB0aGUgcGF0Y2ggdGFibGUg Y29uZmlndXJhdGlvbiwgdGhlIHN0cnVjdHVyZSBQQ0QgY2FuIGJlIGRlZmluZWQgdG8gbWFwIHRo ZSBwYXRjaCB0YWJsZSBzdHJ1Y3R1cmUuIA0KICBUaGVuLCB0aGUgcGF0Y2ggdGFibGUgdmFsdWUg Y2FuIGJlIHNwZWNpZmllZCBpbiBEU0MgaW4gdGhlIGRpZmZlcmVudCBTa3VJZA0KKGJvYXJkSWQp IHRvIHN1cHBvcnQgbXVsdGlwbGUgU0tVcy4NCiAgU3RydWN0dXJlIFBDRCBjYW4gbWFrZSBEU0Mg YXMgdGhlIGNlbnRyYWxpemVkIHdheSBmb3IgdGhlIHBsYXRmb3JtIGNvbmZpZ3VyYXRpb24uIA0K ICBUaGUgZGV2ZWxvcGVyIGRvZXNuJ3QgbmVlZCB0byBtYWludGFpbiB0aGUgYm9hcmQgc2V0dGlu ZyBpbiBDIHNvdXJjZSBmaWxlLg0KDQoNClRoYW5rcw0KTGltaW5nDQo+IC0tLS0t6YKu5Lu25Y6f 5Lu2LS0tLS0NCj4g5Y+R5Lu25Lq6OiBaaGFuZywgWmlmZW5nIDx6aWZlbmcuemhhbmdAaW50ZWwu Y29tPg0KPiDlj5HpgIHml7bpl7Q6IDIwMjTlubQz5pyIN+aXpSAxNDo1NA0KPiDmlLbku7bkuro6 IFlhbmcsIFl1dGluZzIgPHl1dGluZzIueWFuZ0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vw cy5pbw0KPiDmioTpgIE6IFJlYmVjY2EgQ3JhbiA8cmViZWNjYUBic2Rpby5jb20+OyBMaW1pbmcg R2FvIA0KPiA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgRmVuZywgQm9iIEMgPGJvYi5jLmZl bmdAaW50ZWwuY29tPjsgQ2hlbiwgDQo+IENocmlzdGluZSA8eXV3ZWkuY2hlbkBpbnRlbC5jb20+ OyBDaGVuLCBBcnRodXIgRyANCj4gPGFydGh1ci5nLmNoZW5AaW50ZWwuY29tPg0KPiDkuLvpopg6 IFJFOiBbUGF0Y2ggVjNdIEJhc2VUb29sczogVmZyQ29tcGlsZXIgQWRkcyBEZWZhdWx0VmFsdWVF cnJvcg0KPiANCj4gSGkgTGltaW5nLA0KPiANCj4gQ291bGQgeW91IGhlbHAgdG8gcmV2aWV3IHRo ZSBwYXRjaCBmb3IgVkZSIGNvbXBpbGVyIGNoYW5nZSBzdWJtaXR0ZWQgDQo+IGJ5IFl1dGluZz8N Cj4gDQo+IEJ0dywNCj4gRGVsbCBuZWVkIHNvbWUgaW50cm9kdWN0aW9uIG9mIEhpaSBTdHJ1Y3R1 cmVQQ0QgaW1wbGVtZW50YXRpb24gDQo+IGVzcGVjaWFsbHkgZm9yIHJlcGxhY2luZyBwYXRjaCB0 YWJsZSBjb25maWd1cmF0aW9ucy4NCj4gV291bGQgeW91IGxpa2UgdG8gc2hhcmUgRURLMiB3aWtp IGxpbmsgb3IgZG9jIGZvciBpdD8NCj4gDQo+IEJlc3QgUmVnYXJkcywNCj4gWmlmZW5nDQo+IA0K PiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWWFuZywgWXV0aW5nMiA8 eXV0aW5nMi55YW5nQGludGVsLmNvbT4NCj4gU2VudDogRnJpZGF5LCBKYW51YXJ5IDI2LCAyMDI0 IDEwOjU0IEFNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogUmViZWNjYSBDcmFu IDxyZWJlY2NhQGJzZGlvLmNvbT47IExpbWluZyBHYW8gDQo+IDxnYW9saW1pbmdAYnlvc29mdC5j b20uY24+OyBGZW5nLCBCb2IgQyA8Ym9iLmMuZmVuZ0BpbnRlbC5jb20+OyBDaGVuLCANCj4gQ2hy aXN0aW5lIDx5dXdlaS5jaGVuQGludGVsLmNvbT47IFpoYW5nLCBaaWZlbmcgDQo+IDx6aWZlbmcu emhhbmdAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBbUGF0Y2ggVjNdIEJhc2VUb29sczogVmZyQ29t cGlsZXIgQWRkcyBEZWZhdWx0VmFsdWVFcnJvcg0KPiANCj4gQWRkIC0tY2F0Y2hfZGVmYXVsdCBv cHRpb24gdG8gcmFpc2UgYSBEZWZhdWx0VmFsdWVFcnJvciB3aGVuIA0KPiBlbmNvdW50ZXJpbmcg VkZSIGRlZmF1bHQgZGVmaW5pdGlvbnMgdG8gaGVscCByZW1vdmUgZGVmYXVsdCB2YXJpYWJsZXMu DQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBZdXRpbmcgWWFuZyA8eXV0aW5nMi55YW5nQGludGVsLmNv bT4NCj4gDQo+IENjOiBSZWJlY2NhIENyYW4gPHJlYmVjY2FAYnNkaW8uY29tPg0KPiBDYzogTGlt aW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiBDYzogQm9iIEZlbmcgPGJvYi5j LmZlbmdAaW50ZWwuY29tPg0KPiBDYzogQ2hyaXN0aW5lIENoZW4gPHl1d2VpLmNoZW5AaW50ZWwu Y29tPg0KPiBDYzogWmlmZW5nIFpoYW5nIDx6aWZlbmcuemhhbmdAaW50ZWwuY29tPg0KPiBTaWdu ZWQtb2ZmLWJ5OiBZdXRpbmcgWWFuZyA8eXV0aW5nMi55YW5nQGludGVsLmNvbT4NCj4gLS0tDQo+ ICBCYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJDb21waWxlci5jcHAgfCAgIDggKy0N Cj4gIEJhc2VUb29scy9Tb3VyY2UvQy9WZnJDb21waWxlL1ZmckNvbXBpbGVyLmggICB8ICAgMSAr DQo+ICBCYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJFcnJvci5jcHAgICAgfCAgIDMg Ky0NCj4gIEJhc2VUb29scy9Tb3VyY2UvQy9WZnJDb21waWxlL1ZmckVycm9yLmggICAgICB8ICAg MyArLQ0KPiAgQmFzZVRvb2xzL1NvdXJjZS9DL1ZmckNvbXBpbGUvVmZyRm9ybVBrZy5oICAgIHwg ICAxICsNCj4gIEJhc2VUb29scy9Tb3VyY2UvQy9WZnJDb21waWxlL1ZmclN5bnRheC5nICAgICB8 IDIzOCArKysrKysrKysrLS0tLS0tLS0NCj4gIDYgZmlsZXMgY2hhbmdlZCwgMTUwIGluc2VydGlv bnMoKyksIDEwNCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9CYXNlVG9vbHMvU291 cmNlL0MvVmZyQ29tcGlsZS9WZnJDb21waWxlci5jcHANCj4gYi9CYXNlVG9vbHMvU291cmNlL0Mv VmZyQ29tcGlsZS9WZnJDb21waWxlci5jcHANCj4gaW5kZXggNWY0ZDI2MmQ4NS4uNDAzMWFmNmUz OSAxMDA2NDQNCj4gLS0tIGEvQmFzZVRvb2xzL1NvdXJjZS9DL1ZmckNvbXBpbGUvVmZyQ29tcGls ZXIuY3BwDQo+ICsrKyBiL0Jhc2VUb29scy9Tb3VyY2UvQy9WZnJDb21waWxlL1ZmckNvbXBpbGVy LmNwcA0KPiBAQCAtNzgsNiArNzgsNyBAQCBDVmZyQ29tcGlsZXI6Ok9wdGlvbkluaXRpYWxpemF0 aW9uICgNCj4gICAgbU9wdGlvbnMuV2FybmluZ0FzRXJyb3IgICAgICAgICAgICAgICAgPSBGQUxT RTsNCj4gbU9wdGlvbnMuQXV0b0RlZmF1bHQgICAgICAgICAgICAgICAgICAgPSBGQUxTRTsNCj4g bU9wdGlvbnMuQ2hlY2tEZWZhdWx0ICAgICAgICAgICAgICAgICAgPSBGQUxTRTsrDQo+IG1PcHRp b25zLklzQ2F0Y2hEZWZhdWx0RW5hYmxlICAgICAgICAgID0gRkFMU0U7ICAgbWVtc2V0DQo+ICgm bU9wdGlvbnMuT3ZlcnJpZGVDbGFzc0d1aWQsIDAsIHNpemVvZiAoRUZJX0dVSUQpKTsgICAgaWYg KEFyZ2MgPT0gMSkge0BADQo+IC05NSw2ICs5Niw4IEBAIENWZnJDb21waWxlcjo6T3B0aW9uSW5p dGlhbGl6YXRpb24gKA0KPiAgICAgICAgVmVyc2lvbiAoKTsgICAgICAgU0VUX1JVTl9TVEFUVVMg KFNUQVRVU19ERUFEKTsNCj4gcmV0dXJuOysgICAgfSBlbHNlIGlmIChzdHJpY21wKEFyZ3ZbSW5k ZXhdLCAiLS1jYXRjaF9kZWZhdWx0IikgPT0gMCl7Kw0KPiBtT3B0aW9ucy5Jc0NhdGNoRGVmYXVs dEVuYWJsZSA9IFRSVUU7ICAgICB9IGVsc2UgaWYgKHN0cmljbXAoQXJndltJbmRleF0sDQo+ICIt bCIpID09IDApIHsgICAgICAgbU9wdGlvbnMuQ3JlYXRlUmVjb3JkTGlzdEZpbGUgPSBUUlVFOw0K PiBnQ0lmclJlY29yZEluZm9EQi5UdXJuT24gKCk7QEAgLTE3OSw3ICsxODIsNiBAQCANCj4gQ1Zm ckNvbXBpbGVyOjpPcHRpb25Jbml0aWFsaXphdGlvbiAoDQo+ICAgICAgICBnb3RvIEZhaWw7ICAg ICB9ICAgICBzdHJjcHkgKG1PcHRpb25zLlZmckZpbGVOYW1lLCBBcmd2W0luZGV4XSk7LQ0KPiBp ZiAobU9wdGlvbnMuT3V0cHV0RGlyZWN0b3J5ID09IE5VTEwpIHsgICAgICAgbU9wdGlvbnMuT3V0 cHV0RGlyZWN0b3J5ID0NCj4gKENIQVI4ICopIG1hbGxvYyAoMSk7ICAgICAgIGlmIChtT3B0aW9u cy5PdXRwdXREaXJlY3RvcnkgPT0gTlVMTCkge0BADQo+IC02NzksNyArNjgxLDcgQEAgQ1ZmckNv bXBpbGVyOjpDb21waWxlICgNCj4gICAgICBEZWJ1Z0Vycm9yIChOVUxMLCAwLCAwMDAxLCAiRXJy b3Igb3BlbmluZyB0aGUgaW5wdXQgZmlsZSIsICIlcyIsDQo+IEluRmlsZU5hbWUpOyAgICAgZ290 byBGYWlsOyAgIH0tKyAgSW5wdXRJbmZvLklzQ2F0Y2hEZWZhdWx0RW5hYmxlID0NCj4gbU9wdGlv bnMuSXNDYXRjaERlZmF1bHRFbmFibGU7ICAgaWYgKG1PcHRpb25zLkhhc092ZXJyaWRlQ2xhc3NH dWlkKQ0KPiB7ICAgICBJbnB1dEluZm8uT3ZlcnJpZGVDbGFzc0d1aWQgPSAmbU9wdGlvbnMuT3Zl cnJpZGVDbGFzc0d1aWQ7ICAgfSBlbHNlDQo+IHtAQCAtOTM3LDUgKzkzOSwzIEBAIG1haW4gKA0K PiAgICAgcmV0dXJuIEdldFV0aWxpdHlTdGF0dXMgKCk7IH0tLWRpZmYgLS1naXQgDQo+IGEvQmFz ZVRvb2xzL1NvdXJjZS9DL1ZmckNvbXBpbGUvVmZyQ29tcGlsZXIuaA0KPiBiL0Jhc2VUb29scy9T b3VyY2UvQy9WZnJDb21waWxlL1ZmckNvbXBpbGVyLmgNCj4gaW5kZXggYjZlMjA3ZDJjZS4uOTc0 ZjM3YzRlYiAxMDA2NDQNCj4gLS0tIGEvQmFzZVRvb2xzL1NvdXJjZS9DL1ZmckNvbXBpbGUvVmZy Q29tcGlsZXIuaA0KPiArKysgYi9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJDb21w aWxlci5oDQo+IEBAIC01Miw2ICs1Miw3IEBAIHR5cGVkZWYgc3RydWN0IHsNCj4gICAgQk9PTEVB TiBXYXJuaW5nQXNFcnJvcjsgICBCT09MRUFOIEF1dG9EZWZhdWx0OyAgIEJPT0xFQU4NCj4gQ2hl Y2tEZWZhdWx0OysgIEJPT0xFQU4gSXNDYXRjaERlZmF1bHRFbmFibGU7IH0gT1BUSU9OUzsgIHR5 cGVkZWYgZW51bSANCj4ge2RpZmYgLS1naXQgYS9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGls ZS9WZnJFcnJvci5jcHANCj4gYi9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJFcnJv ci5jcHANCj4gaW5kZXggNjViYjhlMzRmZC4uOGE3MDZmOTI5YiAxMDA2NDQNCj4gLS0tIGEvQmFz ZVRvb2xzL1NvdXJjZS9DL1ZmckNvbXBpbGUvVmZyRXJyb3IuY3BwDQo+ICsrKyBiL0Jhc2VUb29s cy9Tb3VyY2UvQy9WZnJDb21waWxlL1ZmckVycm9yLmNwcA0KPiBAQCAtNDksNyArNDksOCBAQCBz dGF0aWMgU1ZGUl9XQVJOSU5HX0hBTkRMRSBWRlJfV0FSTklOR19IQU5ETEVfVEFCTEUgDQo+IFtd ID0gew0KPiAgICB7IFZGUl9XQVJOSU5HX0RFRkFVTFRfVkFMVUVfUkVERUZJTkVELCAiOiBkZWZh dWx0IHZhbHVlIHJlLWRlZmluZWQgDQo+IHdpdGggZGlmZmVyZW50IHZhbHVlIn0sIHsgVkZSX1dB Uk5JTkdfQUNUSU9OX1dJVEhfVEVYVF9UV08sICI6IEFjdGlvbiANCj4gb3Bjb2RlIHNob3VsZCBu b3QgaGF2ZSBUZXh0VHdvIHBhcnQifSwgeyANCj4gVkZSX1dBUk5JTkdfT0JTT0xFVEVEX0ZSQU1F V09SS19PUENPREUsICI6IE5vdCByZWNvbW1lbmQgdG8gdXNlIA0KPiBvYnNvbGV0ZWQgZnJhbWV3 b3JrIG9wY29kZSJ9LC0gIHsgVkZSX1dBUk5JTkdfQ09ERVVOREVGSU5FRCwgIjoNCj4gdW5kZWZp bmVkIFdhcm5pbmcgQ29kZSIgfSsgIHsgVkZSX1dBUk5JTkdfQ09ERVVOREVGSU5FRCwgIjoNCj4g dW5kZWZpbmVkIFdhcm5pbmcgQ29kZSIgfSwrICB7IFZGUl9XQVJOSU5HX1VOU1VQUE9SVEVELCAi OiBwbHMgcmVtb3ZlIA0KPiB0aGUgZGVmYXVsdCB2YWx1ZXMgaWYgbmVjZXNzYXJ5IiB9IH07IENW ZnJFcnJvckhhbmRsZTo6Q1ZmckVycm9ySGFuZGxlIA0KPiAoZGlmZiAtLWdpdCBhL0Jhc2VUb29s cy9Tb3VyY2UvQy9WZnJDb21waWxlL1ZmckVycm9yLmgNCj4gYi9CYXNlVG9vbHMvU291cmNlL0Mv VmZyQ29tcGlsZS9WZnJFcnJvci5oDQo+IGluZGV4IDdkMTZiZDVmNzQuLjFiNGJjMTczZDIgMTAw NjQ0DQo+IC0tLSBhL0Jhc2VUb29scy9Tb3VyY2UvQy9WZnJDb21waWxlL1ZmckVycm9yLmgNCj4g KysrIGIvQmFzZVRvb2xzL1NvdXJjZS9DL1ZmckNvbXBpbGUvVmZyRXJyb3IuaA0KPiBAQCAtNDcs NyArNDcsOCBAQCB0eXBlZGVmIGVudW0gew0KPiAgICBWRlJfV0FSTklOR19ERUZBVUxUX1ZBTFVF X1JFREVGSU5FRCA9IDAsIA0KPiBWRlJfV0FSTklOR19BQ1RJT05fV0lUSF9URVhUX1RXTywNCj4g VkZSX1dBUk5JTkdfT0JTT0xFVEVEX0ZSQU1FV09SS19PUENPREUsLQ0KPiBWRlJfV0FSTklOR19D T0RFVU5ERUZJTkVEKyAgVkZSX1dBUk5JTkdfQ09ERVVOREVGSU5FRCwrIA0KPiBWRlJfV0FSTklO R19VTlNVUFBPUlRFRCB9IEVGSV9WRlJfV0FSTklOR19DT0RFOyAgdHlwZWRlZiBzdHJ1Y3QgDQo+ IF9TVkZSX0VSUk9SX0hBTkRMRSB7ZGlmZiAtLWdpdCANCj4gYS9CYXNlVG9vbHMvU291cmNlL0Mv VmZyQ29tcGlsZS9WZnJGb3JtUGtnLmgNCj4gYi9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGls ZS9WZnJGb3JtUGtnLmgNCj4gaW5kZXggOWVmNmYwNzc4Ny4uZDhmYWRhM2JjYiAxMDA2NDQNCj4g LS0tIGEvQmFzZVRvb2xzL1NvdXJjZS9DL1ZmckNvbXBpbGUvVmZyRm9ybVBrZy5oDQo+ICsrKyBi L0Jhc2VUb29scy9Tb3VyY2UvQy9WZnJDb21waWxlL1ZmckZvcm1Qa2cuaA0KPiBAQCAtOTYsNiAr OTYsNyBAQCBzdHJ1Y3QgU0J1ZmZlck5vZGUgew0KPiAgIHR5cGVkZWYgc3RydWN0IHsgICBFRklf R1VJRCAqT3ZlcnJpZGVDbGFzc0d1aWQ7KyAgQk9PTEVBTg0KPiBJc0NhdGNoRGVmYXVsdEVuYWJs ZTsgfSBJTlBVVF9JTkZPX1RPX1NZTlRBWDsgIGNsYXNzIENGb3JtUGtnIHtkaWZmIA0KPiAtLWdp dCBhL0Jhc2VUb29scy9Tb3VyY2UvQy9WZnJDb21waWxlL1ZmclN5bnRheC5nDQo+IGIvQmFzZVRv b2xzL1NvdXJjZS9DL1ZmckNvbXBpbGUvVmZyU3ludGF4LmcNCj4gaW5kZXggNTVmZDA2N2Y4YS4u NWRhZjFjNDIzYyAxMDA2NDQNCj4gLS0tIGEvQmFzZVRvb2xzL1NvdXJjZS9DL1ZmckNvbXBpbGUv VmZyU3ludGF4LmcNCj4gKysrIGIvQmFzZVRvb2xzL1NvdXJjZS9DL1ZmckNvbXBpbGUvVmZyU3lu dGF4LmcNCj4gQEAgLTUwLDYgKzUwLDcgQEAgVmZyUGFyc2VyU3RhcnQgKA0KPiAgeyAgIFBhcnNl ckJsYWNrQm94PENWZnJETEdMZXhlciwgRWZpVmZyUGFyc2VyLCBBTlRMUlRva2VuPg0KPiBWZnJQ YXJzZXIoRmlsZSk7ICAgVmZyUGFyc2VyLnBhcnNlcigpLT5TZXRPdmVycmlkZUNsYXNzR3VpZA0K PiAoSW5wdXRJbmZvLT5PdmVycmlkZUNsYXNzR3VpZCk7Kw0KPg0KVmZyUGFyc2VyLnBhcnNlcigp LT5TZXRJc0NhdGNoRGVmYXVsdEVuYWJsZShJbnB1dEluZm8tPklzQ2F0Y2hEZWZhdWx0RW5hYmxl DQo+ICk7ICAgcmV0dXJuIFZmclBhcnNlci5wYXJzZXIoKS0+dmZyUHJvZ3JhbSgpOyB9ID4+QEAg LTM4Niw4ICszODcsOCBAQA0KPiBkYXRhU3RydWN0RmllbGQzMiBbQk9PTEVBTiAgRmllbGRJblVu aW9uXToNCj4gICAgOyAgZGF0YVN0cnVjdEZpZWxkMTYgW0JPT0xFQU4gIEZpZWxkSW5Vbmlvbl06 LSAgPDwgLSAgICBVSU5UMzINCj4gQXJyYXlOdW0gPSAwOyArICA8PCsgICAgVUlOVDMyIEFycmF5 TnVtID0gMDsgICA+PiAgICgiVUlOVDE2IiB8DQo+ICJDSEFSMTYiKSAgIE46U3RyaW5nSWRlbnRp ZmllckBAIC03MzcsNyArNzM4LDcgQEAgdmZyRm9ybVNldExpc3QgOg0KPiAgICA7ICB2ZnJTdGF0 ZW1lbnRFeHRlbnNpb246LSAgPDwgKyAgPDwgICAgICBFRklfR1VJRCBHdWlkOw0KPiBDSWZyR3Vp ZCAqR3VpZE9iaiA9IE5VTEw7ICAgICAgQ0hBUjggICAgKlR5cGVOYW1lID0gTlVMTDtAQA0KPiAt NzUxLDcgKzc1Miw3IEBAIHZmclN0YXRlbWVudEV4dGVuc2lvbjoNCj4gICAgPj4gICBMOkd1aWRP cCAgIFV1aWQgIj0iIGd1aWREZWZpbml0aW9uW0d1aWRdLSAgeyIsIiBEYXRhVHlwZSAiPSIgKw0K PiB7IiwiIERhdGFUeXBlICI9IiAgICAgKCAgICAgICAgIFU2NDoiVUlOVDY0IiB7T3BlbkJyYWNr ZXQNCj4gQU4xOk51bWJlciBDbG9zZUJyYWNrZXQgPDxBcnJheU51bSA9IF9TVE9VMzIoQU4xLT5n ZXRUZXh0KCksDQo+IEFOMS0+Z2V0TGluZSgpKTs+Pn0NCj4gPDwgVHlwZU5hbWUgPSBVNjQtPmdl dFRleHQoKTsgTGluZU51bSA9IFU2NC0+Z2V0TGluZSgpOyA+PkBAIC03NzAsNw0KPiArNzcxLDcg QEAgdmZyU3RhdGVtZW50RXh0ZW5zaW9uOg0KPiAgICAgICAgfCBUOiJFRklfSElJX1RJTUUiIHtP cGVuQnJhY2tldCBBTjg6TnVtYmVyIENsb3NlQnJhY2tldCANCj4gPDxBcnJheU51bSA9IF9TVE9V MzIoQU44LT5nZXRUZXh0KCksIEFOOC0+Z2V0TGluZSgpKTs+Pn0gPDwgVHlwZU5hbWUgPSANCj4g VC0+Z2V0VGV4dCgpOyBMaW5lTnVtID0gVC0+Z2V0TGluZSgpOyBJc1N0cnVjdCA9IFRSVUU7Pj4N Cj4gfCBSOiJFRklfSElJX1JFRiIge09wZW5CcmFja2V0IEFOOTpOdW1iZXIgQ2xvc2VCcmFja2V0 IDw8QXJyYXlOdW0gPQ0KPiBfU1RPVTMyKEFOOS0+Z2V0VGV4dCgpLCBBTjktPmdldExpbmUoKSk7 Pj59LSA8PCBUeXBlTmFtZSA9IA0KPiBSLT5nZXRUZXh0KCk7IExpbmVOdW0gPSBSLT5nZXRMaW5l KCk7IElzU3RydWN0ID0gVFJVRTs+Pg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPDwNCj4gVHlwZU5hbWUgPSBSLT5nZXRUZXh0KCk7IExp bmVOdW0gPSBSLT5nZXRMaW5lKCk7IElzU3RydWN0ID0gVFJVRTs+Pg0KPiB8IFROOlN0cmluZ0lk ZW50aWZpZXIge09wZW5CcmFja2V0IEFOMTA6TnVtYmVyIENsb3NlQnJhY2tldCA8PEFycmF5TnVt DQo+ID0gX1NUT1UzMihBTjEwLT5nZXRUZXh0KCksIEFOMTAtPmdldExpbmUoKSk7Pj59IDw8IFR5 cGVOYW1lID0gDQo+IFROLT5nZXRUZXh0KCk7IExpbmVOdW0gPSBUTi0+Z2V0TGluZSgpOyBJc1N0 cnVjdCA9DQo+IFRSVUU7Pj4gICAgIClAQCAtODc1LDE5ICs4NzYsMTkgQEAgdmZyRXh0ZW5zaW9u RGF0YVtVSU5UOCAqRGF0YUJ1ZmYsDQo+IFVJTlQzMiBTaXplLCBDSEFSOCAqVHlwZU5hbWUsIFVJ TlQzMiBUeXBlU2l6ZSwNCj4gICAgICAgICAgICAgICAgICBtZW1jcHkgKEJ5dGVPZmZzZXQsICZE YXRhX1U2NCwNCj4gVHlwZVNpemUpOyAgICAgICAgICAgICAgIH1lbHNlIGlmIChzdHJjbXAgKCJV SU5UMzIiLCBUeXBlTmFtZSkgPT0gMCkNCj4geyAgICAgICAgICAgICAgICAgRGF0YV9VMzIgPSBf U1RPVTMyKFJELT5nZXRUZXh0KCksIFJELT5nZXRMaW5lKCkpOy0NCj4gbWVtY3B5IChCeXRlT2Zm c2V0LCAmRGF0YV9VMzIsIFR5cGVTaXplKTsNCj4gKyAgICAgICAgICAgICAgICBtZW1jcHkgKEJ5 dGVPZmZzZXQsICZEYXRhX1UzMiwNCj4gVHlwZVNpemUpOyAgICAgICAgICAgICAgIH1lbHNlIGlm IChzdHJjbXAgKCJVSU5UMTYiLCBUeXBlTmFtZSkgPT0gMCkNCj4geyAgICAgICAgICAgICAgICAg RGF0YV9VMTYgPSBfU1RPVTE2KFJELT5nZXRUZXh0KCksIFJELT5nZXRMaW5lKCkpOy0NCj4gbWVt Y3B5IChCeXRlT2Zmc2V0LCAmRGF0YV9VMTYsIFR5cGVTaXplKTsNCj4gKyAgICAgICAgICAgICAg ICBtZW1jcHkgKEJ5dGVPZmZzZXQsICZEYXRhX1UxNiwNCj4gVHlwZVNpemUpOyAgICAgICAgICAg ICAgIH1lbHNlIGlmIChzdHJjbXAgKCJVSU5UOCIsIFR5cGVOYW1lKSA9PSAwKQ0KPiB7ICAgICAg ICAgICAgICAgICBEYXRhX1U4ID0gX1NUT1U4KFJELT5nZXRUZXh0KCksIFJELT5nZXRMaW5lKCkp Oy0NCj4gbWVtY3B5IChCeXRlT2Zmc2V0LCAmRGF0YV9VOCwgVHlwZVNpemUpOw0KPiArICAgICAg ICAgICAgICAgIG1lbWNweSAoQnl0ZU9mZnNldCwgJkRhdGFfVTgsDQo+IFR5cGVTaXplKTsgICAg ICAgICAgICAgICB9ZWxzZSBpZiAoc3RyY21wICgiQk9PTEVBTiIsIFR5cGVOYW1lKT09IDApDQo+ IHsgICAgICAgICAgICAgICAgIERhdGFfQkwgPSBfU1RPVTgoUkQtPmdldFRleHQoKSwgUkQtPmdl dExpbmUoKSk7LQ0KPiBtZW1jcHkgKEJ5dGVPZmZzZXQsICZEYXRhX0JMLCBUeXBlU2l6ZSk7DQo+ ICsgICAgICAgICAgICAgICAgbWVtY3B5IChCeXRlT2Zmc2V0LCAmRGF0YV9CTCwNCj4gVHlwZVNp emUpOyAgICAgICAgICAgICAgIH1lbHNlIGlmIChzdHJjbXAgKCJFRklfU1RSSU5HX0lEIiwgVHlw ZU5hbWUpID09DQo+IDApIHsgICAgICAgICAgICAgICAgIERhdGFfU0lEID0gX1NUT1NJRChSRC0+ Z2V0VGV4dCgpLCBSRC0+Z2V0TGluZSgpKTstDQo+IG1lbWNweSAoQnl0ZU9mZnNldCwgJkRhdGFf U0lELCBUeXBlU2l6ZSk7DQo+ICsgICAgICAgICAgICAgICAgbWVtY3B5IChCeXRlT2Zmc2V0LCAm RGF0YV9TSUQsDQo+IFR5cGVTaXplKTsgICAgICAgICAgICAgICB9ICAgICAgICAgICAgIH0gZWxz ZQ0KPiB7ICAgICAgICAgICAgICAgZ0NWZnJWYXJEYXRhVHlwZURCLkdldERhdGFGaWVsZEluZm8o VEZOYW1lLA0KPiBGaWVsZE9mZnNldCwgRmllbGRUeXBlLCBGaWVsZFNpemUsIEJpdEZpZWxkKTtA QCAtOTc1LDcgKzk3NiwxNSBAQA0KPiB2ZnJFeHRlbnNpb25EYXRhW1VJTlQ4ICpEYXRhQnVmZiwg VUlOVDMyIFNpemUsIENIQVI4ICpUeXBlTmFtZSwgVUlOVDMyIA0KPiBUeXBlU2l6ZSwNCj4gICB2 ZnJTdGF0ZW1lbnREZWZhdWx0U3RvcmUgOiAgIDw8IFVJTlQxNiAgRGVmYXVsdElkID0NCj4gRUZJ X0hJSV9ERUZBVUxUX0NMQVNTX1NUQU5EQVJEOyA+Pi0gIEQ6RGVmYXVsdFN0b3JlIE46U3RyaW5n SWRlbnRpZmllcg0KPiAiLCIrICBEOkRlZmF1bHRTdG9yZSBOOlN0cmluZ0lkZW50aWZpZXIgIiwi ICAgICAgICAgICAgIDw8Kw0KPiBpZiAobUlzQ2F0Y2hEZWZhdWx0RW5hYmxlKSB7Kw0KPiBnQ1Zm ckVycm9ySGFuZGxlLkhhbmRsZVdhcm5pbmcgKCsNCj4gVkZSX1dBUk5JTkdfVU5TVVBQT1JURUQs Kw0KPiBELT5nZXRMaW5lKCksKw0KPiBELT5nZXRUZXh0KCkrDQo+ICAgICAgICApOysNCj4gIH0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4+DQo+ IFByb21wdCAiPSIgIlNUUklOR19UT0tFTiIgIlwoIiBTOk51bWJlciAiXCkiICAgeyAgICAgIiwi IEF0dHJpYnV0ZSAiPSINCj4gQTpOdW1iZXIgICAgICAgICAgICAgICAgICAgICAgPDwgRGVmYXVs dElkID0gX1NUT1UxNihBLT5nZXRUZXh0KCksDQo+IEEtPmdldExpbmUoKSk7ID4+QEAgLTEwNzQs NyArMTA4Myw3IEBAIHZmclN0YXRlbWVudFZhclN0b3JlRWZpIDoNCj4gICAgICB8IFU2NDoiVUlO VDY0IiAiLCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBUeXBlTmFtZQ0KPiA9IFU2 NC0+Z2V0VGV4dCgpOyBMaW5lTnVtID0gVTY0LT5nZXRMaW5lKCk7ID4+ICAgICB8IEQ6IkVGSV9I SUlfREFURSIgIiwiDQo+IDw8IFR5cGVOYW1lID0gRC0+Z2V0VGV4dCgpOyBMaW5lTnVtID0gRC0+ Z2V0TGluZSgpOyA+PiAgICAgfA0KPiBUOiJFRklfSElJX1RJTUUiICIsIiAgICAgICAgICAgICAg ICAgICAgICAgICAgPDwgVHlwZU5hbWUgPQ0KPiBULT5nZXRUZXh0KCk7IExpbmVOdW0gPSBULT5n ZXRMaW5lKCk7ID4+LSAgICB8IFI6IkVGSV9ISUlfUkVGIiAiLCINCj4gPDwgVHlwZU5hbWUgPSBS LT5nZXRUZXh0KCk7IExpbmVOdW0gPSBSLT5nZXRMaW5lKCk7ID4+ICAgICsgICAgfA0KPiBSOiJF RklfSElJX1JFRiIgIiwiICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgVHlwZU5hbWUgPQ0K PiBSLT5nZXRUZXh0KCk7IExpbmVOdW0gPSBSLT5nZXRMaW5lKCk7ID4+ICAgKSAgIHsgICAgIFZh cklkICI9IiBJRDpOdW1iZXINCj4gIiwiICAgICAgICAgICAgICAgICAgICAgICAgIDw8QEAgLTEw OTIsOCArMTEwMSw4IEBADQo+IHZmclN0YXRlbWVudFZhclN0b3JlRWZpIDoNCj4gICAgKCAgICAg TmFtZSAgICAiPSIgU046U3RyaW5nSWRlbnRpZmllciAiLCIgICAgICAgICAgICAgPDwgU3RvcmVO YW1lDQo+ID0gU04tPmdldFRleHQoKTsgICA+PiAgICB8LSAgICBOYW1lICAgICI9IiAiU1RSSU5H X1RPS0VOIiAiXCgiDQo+IFZOOk51bWJlciAiXCkiICIsIiAgLSAgICBWYXJTaXplICI9IiBOOk51 bWJlciAiLCINCj4gPDwgKyAgICBOYW1lICAgICI9IiAiU1RSSU5HX1RPS0VOIiAiXCgiIFZOOk51 bWJlciAiXCkiICIsIisNCj4gVmFyU2l6ZSAiPSIgTjpOdW1iZXIgIiwiICAgICAgICAgICAgICAg ICAgICAgICAgPDwNCj4gSXNVRUZJMjNFZmlWYXJzdG9yZSA9IEZBTFNFOw0KPiBTdG9yZU5hbWUg PQ0KPiBnQ1ZmclN0cmluZ0RCLkdldFZhclN0b3JlTmFtZUZvcm1TdHJpbmdJZChfU1RPU0lEKFZO LT5nZXRUZXh0KCksDQo+IFZOLT5nZXRMaW5lKCkpKTsNCj4gaWYgKFN0b3JlTmFtZSA9PSBOVUxM KSB7QEAgLTExMTYsNyArMTEyNSw3IEBAIHZmclN0YXRlbWVudFZhclN0b3JlRWZpIDoNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7IGNhc2UgDQo+IDg6DQo+IFR5cGVOYW1lID0gKENIQVI4ICopICJVSU5UNjQiOy0NCj4gYnJl YWs7ICsNCj4gYnJlYWs7DQo+IGRlZmF1bHQ6DQo+IF9QQ0FUQ0ggKFZGUl9SRVRVUk5fVU5TVVBQ T1JURUQsIE4pOw0KPiBicmVhaztAQCAtMTEyNCw3ICsxMTMzLDcgQEAgdmZyU3RhdGVtZW50VmFy U3RvcmVFZmkgOg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgID4+ICAgKSAtDQo+IFV1aWQgIj0iIGd1aWREZWZpbml0aW9uW0d1aWRdICAgICAg ICAgICAgICAgICAgICAgPDwgKyAgVXVpZCAiPSINCj4gZ3VpZERlZmluaXRpb25bR3VpZF0gICAg ICAgICAgICAgICAgICAgICA8PA0KPiBpZiAoSXNVRUZJMjNFZmlWYXJzdG9yZSkNCj4geyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1BDQVQN Cj4gQ0goZ0NWZnJEYXRhU3RvcmFnZS5EZWNsYXJlQnVmZmVyVmFyU3RvcmUNCj4gKA0KPiAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZU5hbWUsQEAgLTExNTAsNyArMTE1OSw3IEBAIA0KPiB2 ZnJTdGF0ZW1lbnRWYXJTdG9yZUVmaSA6DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSANCj4gVlNFT2JqLlNldEd1aWQgKCZHdWlkKTsg VlNFT2JqLlNldFZhclN0b3JlSWQgKFZhclN0b3JlSWQpOy0NCj4gKw0KPiBWU0VPYmouU2V0U2l6 ZSAoKFVJTlQxNikgU2l6ZSk7DQo+IFZTRU9iai5TZXROYW1lIChTdG9yZU5hbWUpOw0KPiBpZiAo SXNVRUZJMjNFZmlWYXJzdG9yZSA9PSBGQUxTRSAmJiBTdG9yZU5hbWUgIT0gTlVMTCkge0BAIC0x MTg0LDcNCj4gKzExOTMsNyBAQCB2ZnJTdGF0ZW1lbnRWYXJTdG9yZU5hbWVWYWx1ZSA6DQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPj4gICB9 DQo+ICgtICAgIE5hbWUgIj0iICJTVFJJTkdfVE9LRU4iICJcKCIgTjpOdW1iZXIgIlwpIiAiLCIg IDw8ICsgICAgTmFtZQ0KPiAiPSIgIlNUUklOR19UT0tFTiIgIlwoIiBOOk51bWJlciAiXCkiICIs IiAgPDwgaWYgKCFDcmVhdGVkKQ0KPiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF9QQw0KPiBBVENIKGdDVmZyRGF0YVN0b3JhZ2UuRGVj bGFyZU5hbWVWYXJTdG9yZUJlZ2luIChTTi0+Z2V0VGV4dCgpLCANCj4gVmFyU3RvcmVJZCksIFNO KTsgQ3JlYXRlZCA9IFRSVUU7QEAgLTEyNDUsMTIgKzEyNTQsMTIgQEAgDQo+IHZmclN0YXRlbWVu dERpc2FibGVJZkZvcm1TZXQgOg0KPiAgdmZyU3RhdGVtZW50U3VwcHJlc3NJZkZvcm1TZXQgOiAg IDw8IENJZnJTdXBwcmVzc0lmIFNJT2JqOz4+DQo+IEw6U3VwcHJlc3NJZiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwtDQo+IFNJT2JqLlNldExpbmVObyhMLT5nZXRM aW5lKCkpOyArDQo+IFNJT2JqLlNldExpbmVObyhMLT5nZXRMaW5lKCkpOw0KPiAgICAgICAgICAg ICAgICAgICA+PiAgIHsgRkxBR1MgIj0iIGZsYWdzRmllbGQgKCAiXHwiIGZsYWdzRmllbGQgKSog IiwiIH0NCj4gdmZyU3RhdGVtZW50RXhwcmVzc2lvblswXSAiOyIgICB2ZnJGb3JtU2V0TGlzdC0g IEU6IEVuZElmICsgIEU6IEVuZElmDQoiOyINCj4gPDwgQ1JUX0VORF9PUCAoRSk7ID4+ICAgOyBA QCAtMTQ5MSw3ICsxNTAwLDcgQEANCj4gdmZyUXVlc3Rpb25EYXRhRmllbGROYW1lIFtFRklfUVVF U1RJT05fSUQgJlFJZCwgVUlOVDMyICZNYXNrLCBDSEFSOCANCj4gKiZWYXJJZFN0ciwNCj4gICAg KCAgICAgU04yOlN0cmluZ0lkZW50aWZpZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwg X1NUUkNBVA0KPiAoJlZhcklkU3RyLCBTTjItPmdldFRleHQoKSk7IExpbmVObyA9IFNOMi0+Z2V0 TGluZSgpOyA+PiAgICAgKC0gICAgICAiLiINCj4gPDwgKyAgICAgICIuIiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PA0KPiBfU1RSQ0FUICgmVmFySWRTdHIsICIu Iik7DQo+IGlmIChtQ29uc3RhbnRPbmx5SW5FeHByZXNzaW9uKQ0KPiB7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9QQw0KPiBBVENIKFZG Ul9SRVRVUk5fQ09OU1RBTlRfT05MWSwgTGluZU5vKTtAQCAtMTUxOCw3ICsxNTI3LDcgQEAgDQo+ IHZmclF1ZXN0aW9uRGF0YUZpZWxkTmFtZSBbRUZJX1FVRVNUSU9OX0lEICZRSWQsIFVJTlQzMiAm TWFzaywgQ0hBUjggDQo+IComVmFySWRTdHIsDQo+ICAgIDsgIHZmckNvbnN0YW50VmFsdWVGaWVs ZFtVSU5UOCBUeXBlLCBFRklfSUZSX1RZUEVfVkFMVUUgJlZhbHVlLA0KPiBCT09MRUFOICZMaXN0 VHlwZV0gOi0gIDw8ICArICA8PCAgICAgRUZJX0dVSUQgICAgR3VpZDsNCj4gQk9PTEVBTiAgICAg TmVnYXRpdmUgPSBGQUxTRTsgICAgIEJPT0xFQU4gICAgIEludERlY1N0eWxlID0NCj4gRkFMU0U7 QEAgLTE2MzQsMTEgKzE2NDMsMTEgQEAgdmZyQ29uc3RhbnRWYWx1ZUZpZWxkW1VJTlQ4IFR5cGUs IA0KPiBFRklfSUZSX1RZUEVfVkFMVUUgJlZhbHVlLCBCT09MRUFOICZMaXN0VHlwZV0NCj4gICAg fCBaOlplcm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAkVmFs dWUudTgNCj4gPSBfU1RPVTgoWi0+Z2V0VGV4dCgpLCBaLT5nZXRMaW5lKCkpOyA+PiAgIHwgSE9V UjpOdW1iZXIgIjoiDQo+IE1JTlVURTpOdW1iZXIgIjoiIFNFQ09ORDpOdW1iZXIgPDwgJFZhbHVl LnRpbWUgICA9DQo+IF9TVE9UKEhPVVItPmdldFRleHQoKSwgTUlOVVRFLT5nZXRUZXh0KCksU0VD T05ELT5nZXRUZXh0KCksDQo+IEhPVVItPmdldExpbmUoKSk7ID4+ICAgfCBZRUFSOk51bWJlciAi LyIgTU9OVEg6TnVtYmVyICIvIg0KPiBEQVk6TnVtYmVyICAgICA8PCAkVmFsdWUuZGF0ZSAgID0g X1NUT0QoWUVBUi0+Z2V0VGV4dCgpLA0KPiBNT05USC0+Z2V0VGV4dCgpLCBEQVktPmdldFRleHQo KSwgWUVBUi0+Z2V0TGluZSgpKTsgPj4tICB8IFFJOk51bWJlciI7Ig0KPiBGSTpOdW1iZXIiOyIg Z3VpZERlZmluaXRpb25bR3VpZF0gIjsiICJTVFJJTkdfVE9LRU4iICJcKCIgRFA6TnVtYmVyIA0K PiAiXCkiICsNCj4gfCBRSTpOdW1iZXIiOyIgRkk6TnVtYmVyIjsiIGd1aWREZWZpbml0aW9uW0d1 aWRdICI7IiAiU1RSSU5HX1RPS0VOIiAiXCgiDQo+IERQOk51bWJlciAiXCkiDQo+IDw8ICRWYWx1 ZS5yZWYgICAgPSBfU1RPUihRSS0+Z2V0VGV4dCgpLCBGSS0+Z2V0VGV4dCgpLCAmR3VpZCwNCkRQ LT5nZXRUZXh0KCksDQo+IFFJLT5nZXRMaW5lKCkpOyA+PiAgIHwgIlNUUklOR19UT0tFTiIgIlwo IiBTMTpOdW1iZXIgIlwpIg0KPiA8PCAkVmFsdWUuc3RyaW5nID0gX1NUT1NJRChTMS0+Z2V0VGV4 dCgpLCBTMS0+Z2V0TGluZSgpKTsgPj4gICB8ICJceyINCj4gPDwgTGlzdFR5cGUgPSBUUlVFOyA+ Pi0gICAgICBMMTpOdW1iZXINCj4gPDwgKyAgICAgIEwxOk51bWJlciAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8PA0KPiBzd2l0Y2ggKFR5cGUpDQo+IHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZQ0KPiBFRklf SUZSX1RZUEVfTlVNX1NJWkVfOCA6DQo+IFR5cGU4W0luZGV4XSAgPSBfU1RPVTgoTDEtPmdldFRl eHQoKSwgTDEtPmdldExpbmUoKSk7QEAgLTE2NTgsOCANCj4gKzE2NjcsOCBAQCB2ZnJDb25zdGFu dFZhbHVlRmllbGRbVUlOVDggVHlwZSwgRUZJX0lGUl9UWVBFX1ZBTFVFIA0KPiAmVmFsdWUsIEJP T0xFQU4gJkxpc3RUeXBlXQ0KPiANCj4gSW5kZXgrKzsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgID4+DQo+ICgtICAgICAgICAiLCIgLSAgICAgICAg TDI6TnVtYmVyDQo+IDw8ICsgICAgICAgICIsIisgICAgICAgIEwyOk51bWJlcg0KPiA8PA0KPiBz d2l0Y2ggKFR5cGUpDQo+IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2FzZQ0KPiBFRklfSUZSX1RZUEVfTlVNX1NJWkVfOCA6DQo+IFR5 cGU4W0luZGV4XSAgPSBfU1RPVTgoTDItPmdldFRleHQoKSwgTDItPmdldExpbmUoKSk7QEAgLTE2 NzksNyANCj4gKzE2ODgsNyBAQCB2ZnJDb25zdGFudFZhbHVlRmllbGRbVUlOVDggVHlwZSwgRUZJ X0lGUl9UWVBFX1ZBTFVFIA0KPiAmVmFsdWUsIEJPT0xFQU4gJkxpc3RUeXBlXQ0KPiANCj4gSW5k ZXgrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ID4+DQo+ICAgICAgICApKi0gICAgIlx9IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArDQo+ICJcfSIgICA7DQo+IC8vKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+ICoqKioqKioqKioqKioqKioqQEAg LTE3MTQsNyArMTcyMyw3IEBAIHZmckZvcm1EZWZpbml0aW9uIDoNCj4gICAgOyAgdmZyRm9ybU1h cERlZmluaXRpb24gOi0gIDw8ICsgIDw8ICAgICBDSWZyRm9ybU1hcCAqRk1hcE9iaiA9DQo+IE5V TEw7ICAgICBVSU5UMzIgICAgICBGb3JtTWFwTWV0aG9kTnVtYmVyID0gMDsgICAgIEVGSV9HVUlE DQo+IEd1aWQ7QEAgLTE3NzUsMTEgKzE3ODQsMTUgQEAgdmZyU3RhdGVtZW50RGVmYXVsdCA6DQo+ ICAgICAgIENJZnJOdW1lcmljICAgICAgICAgICAqTnVtZXJpY1FzdCAgID0gTlVMTDsgICAgPj4t DQo+IEQ6RGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAg RDpEZWZhdWx0DQo+IDw8KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYNCj4gKG1Jc0NhdGNoRGVmYXVsdEVuYWJsZSkgeysNCj4gRGVmYXVs dFZhbHVlRXJyb3IoVkZSX1JFVFVSTl9VTlNVUFBPUlRFRCwNCj4gRC0+Z2V0TGluZSgpKTsrDQo+ ICAgICAgIH0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgID4+DQo+ICggICAgICgtICAgICAgIj0iIHZmckNvbnN0YW50VmFsdWVGaWVsZFtfR0VUX0NV UlJRRVNUX0RBVEFUWVBFKCksDQo+ICpWYWwsIEFycmF5VHlwZV0gIiwiICAtDQo+IDw8ICsgICAg ICAiPSIgdmZyQ29uc3RhbnRWYWx1ZUZpZWxkW19HRVRfQ1VSUlFFU1RfREFUQVRZUEUoKSwgKlZh bCwNCj4gQXJyYXlUeXBlXSAiLCIrDQo+IDw8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYNCj4gKGdDdXJyZW50TWluTWF4RGF0YSAhPSBO VUxMICYmDQo+IGdDdXJyZW50TWluTWF4RGF0YS0+SXNOdW1lcmljT3Bjb2RlKCkpDQo+IHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v Yw0KPiBoZWNrIGRlZmF1bHQgdmFsdWUgaXMgdmFsaWQgZm9yIE51bWVyaWMgT3Bjb2RlIE51bWVy aWNRc3QgPSANCj4gKENJZnJOdW1lcmljICopIGdDdXJyZW50UXVlc3Rpb247QEAgLTE4ODgsMTQg KzE5MDEsMTQgQEAgDQo+IHZmclN0YXRlbWVudERlZmF1bHQgOg0KPiAgICAgICAgICB2ZnJTdGF0 ZW1lbnRWYWx1ZSAiLCIgICAgICAgICAgICAgICAgICAgICAgIDw8IENJZnJFbmQNCj4gRW5kT2Jq MTsgRW5kT2JqMS5TZXRMaW5lTm8oRC0+Z2V0TGluZSgpKTsgPj4gICAgICkgICAgIHstDQo+IERl ZmF1bHRTdG9yZSAiPSIgU046U3RyaW5nSWRlbnRpZmllciAiLCIgICAgICA8PCArICAgICAgRGVm YXVsdFN0b3JlICI9Ig0KPiBTTjpTdHJpbmdJZGVudGlmaWVyICIsIiAgICAgIDw8DQo+IF9QQ0FU Q0goZ0NWZnJEZWZhdWx0U3RvcmUuR2V0RGVmYXVsdElkIChTTi0+Z2V0VGV4dCgpLCAmRGVmYXVs dElkKSwgDQo+IFNOKTsgaWYgKERPYmogIT0gTlVMTCkgey0NCj4gRE9iai0+U2V0RGVmYXVsdElk IChEZWZhdWx0SWQpOw0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9ICsNCj4gRE9iai0+U2V0RGVmYXVsdElkDQo+IChEZWZhdWx0SWQp OysNCj4gICAgIH0NCj4gaWYgKERPYmoyICE9IE5VTEwpIHstDQo+IERPYmoyLT5TZXREZWZhdWx0 SWQgKERlZmF1bHRJZCk7ICsNCj4gRE9iajItPlNldERlZmF1bHRJZA0KPiAoRGVmYXVsdElkKTsN Cj4gICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgID4+DQo+ICAgIH1AQCAtMTkxNyw4ICsxOTMwLDggQEAgdmZyU3RhdGVtZW50RGVmYXVsdCA6 DQo+IA0KPiAgICAgICApOw0KPiAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9LQ0KPiBpZiAoRE9iaiAgIT0gTlVMTCkge2RlbGV0ZSBE T2JqO30gLQ0KPiBpZiAoRE9iajIgIT0gTlVMTCkge2RlbGV0ZSBET2JqMjt9ICsNCj4gaWYgKERP YmogICE9IE5VTEwpIHtkZWxldGUgRE9iajt9Kw0KPiBpZiAoRE9iajIgIT0gTlVMTCkge2RlbGV0 ZQ0KPiBET2JqMjt9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA+Pg0KPiAgICkgICA7QEAgLTE5NzAsMTEgKzE5ODMsMTUgQEAgdmZyU3RhdGVtZW50 SW52YWxpZCA6DQo+ICAgIDsgIGZsYWdzRmllbGQgOi0gIE51bWJlciAtICB8IEludGVyYWN0aXZl RmxhZyAtICB8IA0KPiBNYW51ZmFjdHVyaW5nRmxhZyAtDQo+IHwgRGVmYXVsdEZsYWcgLSAgfCBS ZXNldFJlcXVpcmVkRmxhZyArICBOdW1iZXIrICB8IEludGVyYWN0aXZlRmxhZysgIHwNCj4gTWFu dWZhY3R1cmluZ0ZsYWcrICB8IEQ6RGVmYXVsdEZsYWcNCj4gPDwrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmDQo+IChtSXNDYXRjaERl ZmF1bHRFbmFibGUpIHsrDQo+IERlZmF1bHRWYWx1ZUVycm9yKFZGUl9SRVRVUk5fVU5TVVBQT1JU RUQsDQo+IEQtPmdldExpbmUoKSk7Kw0KPiAgICAgICAgIH0rDQo+ICAgID4+KyAgfCBSZXNldFJl cXVpcmVkRmxhZyAgIHwgUmVjb25uZWN0UmVxdWlyZWRGbGFnICAgfA0KPiBOOk5WQWNjZXNzRmxh ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PA0KPiBnQ1ZmckVycm9ySGFu ZGxlLkhhbmRsZVdhcm5pbmcgKEBAIC0xOTg5LDcgKzIwMDYsNyBAQCBmbGFnc0ZpZWxkIDoNCj4g DQo+IEwtPmdldExpbmUoKSwNCj4gTC0+Z2V0VGV4dCgpDQo+ICAgICAgICAgICk7LQ0KPiAgICAg Pj4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA+PiAgIDsNCj4gdmZyU3RhdGVtZW50VmFsdWUgOkBAIC0yMDAxLDEzICsyMDE4LDEzIEBA IHZmclN0YXRlbWVudFZhbHVlIDoNCj4gIHZmclN0YXRlbWVudFJlYWQgOiAgIDw8IENJZnJSZWFk IFJPYmo7ID4+ICAgUjpSZWFkDQo+IDw8IFJPYmouU2V0TGluZU5vKFItPmdldExpbmUoKSk7ID4+ LSAgdmZyU3RhdGVtZW50RXhwcmVzc2lvblswXSAiOyIgKw0KPiB2ZnJTdGF0ZW1lbnRFeHByZXNz aW9uWzBdICI7IiAgIDsgIHZmclN0YXRlbWVudFdyaXRlIDogICA8PCBDSWZyV3JpdGUNCj4gV09i ajsgPj4gICBXOldyaXRlDQo+IDw8IFdPYmouU2V0TGluZU5vKFctPmdldExpbmUoKSk7ID4+LSAg dmZyU3RhdGVtZW50RXhwcmVzc2lvblswXSAiOyIgKw0KPiB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9u WzBdICI7IiAgIDsgIHZmclN0YXRlbWVudFN1YlRpdGxlIDpAQCAtMjE0MCw3DQo+ICsyMTU3LDcg QEAgdmZyU3RhdGVtZW50R290byA6DQo+ICAgICAgICBGb3JtSWQgIj0iIEYzOk51bWJlciAiLCIg ICAgICAgICAgICAgICAgICAgICAgICAgPDwgUmVmVHlwZQ0KPiA9IDI7IEZJZCA9IF9TVE9GSUQo RjMtPmdldFRleHQoKSwgRjMtPmdldExpbmUoKSk7ID4+ICAgICAgIFF1ZXN0aW9uICI9Ig0KPiAo LSAgICAgICAgICBRTjM6U3RyaW5nSWRlbnRpZmllciAiLCIgICAgICAgICAgICAgICAgICAgICA8 PCArDQo+IFFOMzpTdHJpbmdJZGVudGlmaWVyICIsIiAgICAgICAgICAgICAgICAgICAgIDw8DQo+ IG1DVmZyUXVlc3Rpb25EQi5HZXRRdWVzdGlvbklkIChRTjMtPmdldFRleHQgKCksIE5VTEwsIFFJ ZCwgQml0TWFzayk7IA0KPiBpZiAoUUlkID09IEVGSV9RVUVTVElPTl9JRF9JTlZBTElEKSB7IF9Q Q0FUQ0goVkZSX1JFVFVSTl9VTkRFRklORUQsIA0KPiBRTjMpO0BAIC0yMjIyLDcgKzIyMzksNyBA QCB2ZnJTdGF0ZW1lbnRHb3RvIDoNCj4gICAgICAiLCIgS2V5ICI9IiBLTjpOdW1iZXIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8PA0KPiBBc3NpZ25RdWVzdGlvbktleSAoKlFIT2JqLCBL Tik7ID4+ICAgfSAgIHstICAgIEU6IiwiICsgICAgRToiLCINCj4gdmZyU3RhdGVtZW50UXVlc3Rp b25PcHRpb25MaXN0ICAgICAgICAgICAgICAgICAgIDw8DQo+IE9IT2JqLT5TZXRTY29wZSgxKTsg Q1JUX0VORF9PUCAoRSk7Pj4gICB9ICAgIjsiDQo+IDw8IGlmIChSMU9iaiAhPSBOVUxMKSB7ZGVs ZXRlIFIxT2JqO30gaWYgKFIyT2JqICE9IE5VTEwpIHtkZWxldGUgDQo+IFIyT2JqO30NCmlmDQo+ IChSM09iaiAhPSBOVUxMKSB7ZGVsZXRlIFIzT2JqO30gaWYgKFI0T2JqICE9IE5VTEwpIHtkZWxl dGUgUjRPYmo7fSBpZiANCj4gKFI1T2JqICE9IE5VTEwpIHtkZWxldGUgUjVPYmo7fT4+QEAgLTI1 MTEsMjAgKzI1MjgsMjAgQEAgDQo+IG1pbk1heERhdGVTdGVwRGVmYXVsdFtFRklfSElJX0RBVEUg JiBELCBVSU5UOCBLZXlWYWx1ZV0gOg0KPiAgICB7ICAgICAiZGVmYXVsdCIgIj0iIE46TnVtYmVy ICIsIiAgICAgICAgICAgICAgICAgICAgICAgICA8PA0KPiBzd2l0Y2ggKEtleVZhbHVlKSB7LQ0K PiBjYXNlIDA6ICsNCj4gY2FzZSAwOg0KPiBELlllYXIgID0gX1NUT1UxNihOLT5nZXRUZXh0KCks IE4tPmdldExpbmUoKSk7IGlmIChELlllYXIgPCBfU1RPVTE2IA0KPiAoTWluTi0+Z2V0VGV4dCgp LCBNaW5OLT5nZXRMaW5lKCkpIHx8IEQuWWVhciA+DQpfU1RPVTE2DQo+IChNYXhOLT5nZXRUZXh0 KCksIE1heE4tPmdldExpbmUoKSkpDQo+IHsNCj4gICBfUENBVENIIChWRlJfUkVUVVJOX0lOVkFM SURfUEFSQU1FVEVSLCBOLT5nZXRMaW5lKCksICJZZWFyIGRlZmF1bHQgDQo+IHZhbHVlIG11c3Qg YmUgYmV0d2VlbiBNaW4geWVhciBhbmQgTWF4IHllYXIuIik7DQo+ICAgICAgfQ0KPiBicmVhazst DQo+IGNhc2UgMTogLQ0KPiBELk1vbnRoID0gX1NUT1U4KE4tPmdldFRleHQoKSwgTi0+Z2V0TGlu ZSgpKTsgKyBjYXNlIDE6KyBELk1vbnRoID0gDQo+IF9TVE9VOChOLT5nZXRUZXh0KCksIE4tPmdl dExpbmUoKSk7IGlmIChELk1vbnRoIDwgMSB8fCBELk1vbnRoID4gMTIpIHsNCj4gICBfUENBVENI IChWRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLCBOLT5nZXRMaW5lKCksICJNb250aCBkZWZh dWx0IA0KPiB2YWx1ZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMTIuIik7DQo+ICAgICB9DQo+IGJy ZWFrOy0NCj4gY2FzZSAyOiAtDQo+IEQuRGF5ID0gX1NUT1U4KE4tPmdldFRleHQoKSwgTi0+Z2V0 TGluZSgpKTsgKyBjYXNlIDI6KyBELkRheSA9IA0KPiBfU1RPVTgoTi0+Z2V0VGV4dCgpLCBOLT5n ZXRMaW5lKCkpOyBpZiAoRC5EYXkgPCAxIHx8IEQuRGF5ID4gMzEpIHsNCj4gICBfUENBVENIIChW RlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLCBOLT5nZXRMaW5lKCksICJEYXkgZGVmYXVsdCAN Cj4gdmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDMxLiIpOw0KPiAgICAgfUBAIC0yNTcwLDcg KzI1ODcsNyBAQCB2ZnJTZXRNaW5NYXhTdGVwW0NJZnJNaW5NYXhTdGVwRGF0YSAmIA0KPiBNTVNE T2JqXSA6DQo+ICAgICAgIEJPT0xFQU4gTWluTmVnYXRpdmUgPSBGQUxTRTsgICAgICBCT09MRUFO IE1heE5lZ2F0aXZlID0NCj4gRkFMU0U7ICAgPj4tICBNaW5pbXVtICAgIj0iICsgIE1pbmltdW0g ICAiPSIgICB7ICAgICAiXC0iDQo+IDw8IE1pbk5lZ2F0aXZlID0gVFJVRTsgPj4gICB9QEAgLTI2 NTksOCArMjY3Niw4IEBADQo+IHZmclNldE1pbk1heFN0ZXBbQ0lmck1pbk1heFN0ZXBEYXRhICYg TU1TRE9ial0gOg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPj4tDQo+IE1heGltdW0gICAiPSIgLSAgeyArICBN YXhpbXVtICAgIj0iKyAgeyAgICAgIlwtIg0KPiA8PCBNYXhOZWdhdGl2ZSA9IFRSVUU7ID4+ICAg fSAgIEE6TnVtYmVyICIsIg0KPiA8PEBAIC0yODg5LDcgKzI5MDYsNyBAQCB2ZnJTdGF0ZW1lbnRO dW1lcmljIDoNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgID4+DQo+IHZmclN0YXRlbWVudFF1ZXN0aW9uT3B0aW9uTGlzdC0gIEU6 RW5kTnVtZXJpYw0KPiA8PCArICBFOkVuZE51bWVyaWMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDw8DQo+IENSVF9FTkRfT1AgKEUpOw0KPiBpZiAoR3VpZE9iaiAhPSBO VUxMKQ0KPiB7DQo+IEd1aWRPYmotPlNldFNjb3BlKDEpO0BAIC0zMTMxLDcgKzMxNDgsNyBAQCB2 ZnJTdGF0ZW1lbnRTdHJpbmcgOg0KPiAgICB7ICAgICBLZXkgIj0iIEtOOk51bWJlciAiLCIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8PA0KPiBBc3NpZ25RdWVzdGlvbktleSAoU09iaiwg S04pOyA+PiAgIH0tICBNaW5TaXplICI9IiBNSU46TnVtYmVyICIsIg0KPiA8PCArICBNaW5TaXpl ICI9IiBNSU46TnVtYmVyICIsIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8DQo+IFZhckFy cmF5U2l6ZSA9IF9HRVRfQ1VSUlFFU1RfQVJSQVlfU0laRSgpOyBTdHJpbmdNaW5TaXplID0gDQo+ IF9TVE9VOChNSU4tPmdldFRleHQoKSwgTUlOLT5nZXRMaW5lKCkpOyBpZiAoX1NUT1U2NChNSU4t PmdldFRleHQoKSwgDQo+IE1JTi0+Z2V0TGluZSgpKSA+IFN0cmluZ01pblNpemUpIHtAQCAtMzE0 MSw3DQo+ICszMTU4LDcgQEAgdmZyU3RhdGVtZW50U3RyaW5nIDoNCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IA0KPiBTT2JqLlNl dE1pblNpemUgKFN0cmluZ01pblNpemUpOw0KPiAgICAgICAgPj4tICBNYXhTaXplICI9IiBNQVg6 TnVtYmVyICIsIg0KPiA8PCArICBNYXhTaXplICI9IiBNQVg6TnVtYmVyICIsIiAgICAgICAgICAg ICAgICAgICAgICAgICAgIDw8DQo+IFN0cmluZ01heFNpemUgPSBfU1RPVTgoTUFYLT5nZXRUZXh0 KCksIE1BWC0+Z2V0TGluZSgpKTsgaWYgDQo+IChfU1RPVTY0KE1BWC0+Z2V0VGV4dCgpLCBNQVgt PmdldExpbmUoKSkgPiBTdHJpbmdNYXhTaXplKSB7IF9QQ0FUQ0ggDQo+IChWRlJfUkVUVVJOX0lO VkFMSURfUEFSQU1FVEVSLCBNQVgtPmdldExpbmUoKSwgIlN0cmluZyBNYXhTaXplIHRha2VzIA0K PiBvbmx5IG9uZSBieXRlLCB3aGljaCBjYW4ndCBiZSBsYXJnZXIgdGhhbiAweEZGLiIpO0BAIC0z MTg1LDcNCj4gKzMyMDIsNyBAQCB2ZnJTdGF0ZW1lbnRQYXNzd29yZCA6DQo+ICAgIHsgICAgIEtl eSAiPSIgS046TnVtYmVyICIsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8DQo+IEFz c2lnblF1ZXN0aW9uS2V5IChQT2JqLCBLTik7ID4+ICAgfS0gIE1pblNpemUgIj0iIE1JTjpOdW1i ZXIgIiwiDQo+IDw8ICsgIE1pblNpemUgIj0iIE1JTjpOdW1iZXIgIiwiICAgICAgICAgICAgICAg ICAgICAgICAgICAgPDwNCj4gVmFyQXJyYXlTaXplID0gX0dFVF9DVVJSUUVTVF9BUlJBWV9TSVpF KCk7IFBhc3N3b3JkTWluU2l6ZSA9IA0KPiBfU1RPVTE2KE1JTi0+Z2V0VGV4dCgpLCBNSU4tPmdl dExpbmUoKSk7IGlmIChfU1RPVTY0KE1JTi0+Z2V0VGV4dCgpLCANCj4gTUlOLT5nZXRMaW5lKCkp ID4gUGFzc3dvcmRNaW5TaXplKSB7QEANCj4gLTMxOTUsNyArMzIxMiw3IEBAIHZmclN0YXRlbWVu dFBhc3N3b3JkIDoNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9IA0KPiBQT2JqLlNldE1pblNpemUgKFBhc3N3b3JkTWluU2l6ZSk7 DQo+ICAgICAgICAgICA+Pi0gIE1heFNpemUgIj0iIE1BWDpOdW1iZXIgIiwiDQo+IDw8ICsgIE1h eFNpemUgIj0iIE1BWDpOdW1iZXIgIiwiICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwNCj4g UGFzc3dvcmRNYXhTaXplID0gX1NUT1UxNihNQVgtPmdldFRleHQoKSwgTUFYLT5nZXRMaW5lKCkp OyBpZiANCj4gKF9TVE9VNjQoTUFYLT5nZXRUZXh0KCksIE1BWC0+Z2V0TGluZSgpKSA+IFBhc3N3 b3JkTWF4U2l6ZSkgeyBfUENBVENIIA0KPiAoVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwg TUFYLT5nZXRMaW5lKCksICJQYXNzd29yZCBNYXhTaXplIHRha2VzIA0KPiBvbmx5IHR3byBieXRl LCB3aGljaCBjYW4ndCBiZSBsYXJnZXIgdGhhbiAweEZGRkYuIik7QEANCj4gLTMyMzAsMTIgKzMy NDcsMTIgQEAgdmZyU3RhdGVtZW50T3JkZXJlZExpc3QgOg0KPiAgICA+PiAgIEw6T3JkZXJlZExp c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwNCj4gT0xPYmouU2V0 TGluZU5vKEwtPmdldExpbmUoKSk7IGdJc09yZGVyZWRMaXN0ID0gVFJVRTs+PiANCj4gdmZyUXVl c3Rpb25IZWFkZXJbT0xPYmpdICIsIi0NCj4gPDwgKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PA0KPiBWYXJBcnJheVNpemUgPSBfR0VUX0NV UlJRRVNUX0FSUkFZX1NJWkUoKTsgT0xPYmouU2V0TWF4Q29udGFpbmVycyANCj4gKChVSU5UOCkg KFZhckFycmF5U2l6ZSA+IDB4RkYgPyAweEZGIDoNCj4gVmFyQXJyYXlTaXplKSk7DQo+ICAgICAg ID4+ICAgey0gICAgTWF4Q29udGFpbmVycyAiPSIgTTpOdW1iZXIgIiwiDQo+IDw8ICsgICAgTWF4 Q29udGFpbmVycyAiPSIgTTpOdW1iZXIgIiwiICAgICAgICAgICAgICAgICAgICAgPDwNCj4gaWYg KF9TVE9VNjQoTS0+Z2V0VGV4dCgpLCBNLT5nZXRMaW5lKCkpID4gX1NUT1U4KE0tPmdldFRleHQo KSwNCj4gTS0+Z2V0TGluZSgpKSkNCj4gew0KPiBfUENBVENIIChWRlJfUkVUVVJOX0lOVkFMSURf UEFSQU1FVEVSLCBNLT5nZXRMaW5lKCksICJPcmRlcmVkTGlzdCANCj4gTWF4Q29udGFpbmVycyB0 YWtlcyBvbmx5IG9uZSBieXRlLCB3aGljaCBjYW4ndCBiZSBsYXJnZXIgdGhhbiAweEZGLiIpOw0K PiAgICB9IGVsc2UgaWYgKFZhckFycmF5U2l6ZSAhPSAwICYmIF9TVE9VOChNLT5nZXRUZXh0KCks IE0tPmdldExpbmUoKSkgDQo+ID4NCj4gVmFyQXJyYXlTaXplKSB7QEAgLTMzMjgsMTkgKzMzNDUs MTkgQEAgDQo+IG1pbk1heFRpbWVTdGVwRGVmYXVsdFtFRklfSElJX1RJTUUgJiBULCBVSU5UOCBL ZXlWYWx1ZV0gOg0KPiAgICB7ICAgICAiZGVmYXVsdCIgIj0iIE46TnVtYmVyICIsIiAgICAgICAg ICAgICAgICAgICAgICAgICA8PA0KPiBzd2l0Y2ggKEtleVZhbHVlKSB7LQ0KPiBjYXNlIDA6IC0N Cj4gVC5Ib3VyICAgPSBfU1RPVTgoTi0+Z2V0VGV4dCgpLCBOLT5nZXRMaW5lKCkpOyArDQo+IGNh c2UgMDorDQo+IFQuSG91ciAgID0gX1NUT1U4KE4tPmdldFRleHQoKSwgTi0+Z2V0TGluZSgpKTsN Cj4gaWYgKFQuSG91ciA+IDIzKQ0KPiB7DQo+ICAgX1BDQVRDSCAoVkZSX1JFVFVSTl9JTlZBTElE X1BBUkFNRVRFUiwgTi0+Z2V0TGluZSgpLCAiSG91ciBkZWZhdWx0IA0KPiB2YWx1ZSBtdXN0IGJl IGJldHdlZW4gMCBhbmQgMjMuIik7DQo+ICAgICB9DQo+IGJyZWFrOy0NCj4gY2FzZSAxOiAtDQo+ IFQuTWludXRlID0gX1NUT1U4KE4tPmdldFRleHQoKSwgTi0+Z2V0TGluZSgpKTsgKyBjYXNlIDE6 KyBULk1pbnV0ZSA9IA0KPiBfU1RPVTgoTi0+Z2V0VGV4dCgpLCBOLT5nZXRMaW5lKCkpOyBpZiAo VC5NaW51dGUgPiA1OSkgew0KPiAgIF9QQ0FUQ0ggKFZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVU RVIsIE4tPmdldExpbmUoKSwgIk1pbnV0ZSBkZWZhdWx0IA0KPiB2YWx1ZSBtdXN0IGJlIGJldHdl ZW4gMCBhbmQgNTkuIik7DQo+ICAgICB9DQo+IGJyZWFrOy0NCj4gY2FzZSAyOiArDQo+IGNhc2Ug MjoNCj4gVC5TZWNvbmQgPSBfU1RPVTgoTi0+Z2V0VGV4dCgpLCBOLT5nZXRMaW5lKCkpOyBpZiAo VC5TZWNvbmQgPiA1OSkgew0KPiAgIF9QQ0FUQ0ggKFZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVU RVIsIE4tPmdldExpbmUoKSwgIlNlY29uZCBkZWZhdWx0IA0KPiB2YWx1ZSBtdXN0IGJlIGJldHdl ZW4gMCBhbmQgNTkuIik7QEAgLTM0MTksMTEgKzM0MzYsMTEgQEAgDQo+IHZmclN0YXRlbWVudFN0 YXRMaXN0T2xkIDoNCj4gICAgOyAgdmZyU3RhdGVtZW50RGlzYWJsZUlmU3RhdCA6LSAgPDwgLSAg ICBDSWZyRGlzYWJsZUlmIERJT2JqOyArICA8PCsNCj4gQ0lmckRpc2FibGVJZiBESU9iajsgICA+ PiAgIEw6RGlzYWJsZUlmDQo+IDw8IERJT2JqLlNldExpbmVObyhMLT5nZXRMaW5lKCkpOyA+Pi0g IHZmclN0YXRlbWVudEV4cHJlc3Npb25bMF0gIjsiICsNCj4gdmZyU3RhdGVtZW50RXhwcmVzc2lv blswXSAiOyIgICAoIHZmclN0YXRlbWVudFN0YXRMaXN0ICkqICAgRTpFbmRJZg0KPiA8PCBDUlRf RU5EX09QIChFKTsgPj4gICAiOyJAQCAtMzU0OCw4ICszNTY1LDggQEANCj4gdmZyU3RhdGVtZW50 V2FybmluZ0lmIDoNCj4gICAgOyAgdmZyU3RhdGVtZW50RGlzYWJsZUlmUXVlc3QgOi0gIDw8IC0g ICAgQ0lmckRpc2FibGVJZiBESU9iajsgKyAgPDwrDQo+IENJZnJEaXNhYmxlSWYgRElPYmo7ICAg Pj4gICBMOkRpc2FibGVJZg0KPiA8PCBESU9iai5TZXRMaW5lTm8oTC0+Z2V0TGluZSgpKTsgPj4g ICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uWzBdICI7IkBADQo+IC0zNjE2LDE1ICszNjMzLDE1IEBA IHZmclN0YXRlbWVudE9uZU9mT3B0aW9uIDoNCj4gICAgICAgVUlOVDMyICAgICAgICAgICAgICpU eXBlMzIgICAgICAgPSAoVUlOVDMyICopIFZhbHVlTGlzdDsNCj4gVUlOVDY0ICAgICAgICAgICAg ICpUeXBlNjQgICAgICAgPSAoVUlOVDY0ICopIFZhbHVlTGlzdDsgICA+Pi0NCj4gTDpPcHRpb24g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAgICAgICsNCj4g TDpPcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PA0K PiBpZiAoX0dFVF9DVVJSUUVTVF9EQVRBVFlQRSgpID09IEVGSV9JRlJfVFlQRV9PVEhFUikgeyBf UENBVENIIA0KPiAoVkZSX1JFVFVSTl9GQVRBTF9FUlJPUiwgTC0+Z2V0TGluZSgpLCAiR2V0IGRh dGEgdHlwZSBlcnJvci4iKTsNCj4gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgID4NCj4gPi0gIFRleHQgICI9IiAiU1RSSU5HX1RPS0VO IiAiXCgiIFM6TnVtYmVyICJcKSIgIiwiICAgICAgKyAgVGV4dCAgIj0iDQo+ICJTVFJJTkdfVE9L RU4iICJcKCIgUzpOdW1iZXIgIlwpIiAiLCIgICBWYWx1ZSAiPSINCj4gdmZyQ29uc3RhbnRWYWx1 ZUZpZWxkW19HRVRfQ1VSUlFFU1RfREFUQVRZUEUoKSwgKlZhbCwgQXJyYXlUeXBlXSAiLCItDQo+ IDw8ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPDwNCj4gaWYgKGdDdXJyZW50TWluTWF4RGF0YSAhPSBOVUxMKQ0KPiB7DQo+IC8vc2V0IG1p bi9tYXggdmFsdWUgZm9yIG9uZW9mIG9wY29kZQ0KPiBVSU5UNjQgU3RlcCA9DQo+IGdDdXJyZW50 TWluTWF4RGF0YS0+R2V0U3RlcERhdGEoX0dFVF9DVVJSUUVTVF9EQVRBVFlQRSgpLA0KPiBfR0VU X0NVUlJRRVNUX1ZBUlRJTkZPKCkubUlzQml0VmFyKTtAQCAtMzY5Niw3ICszNzEzLDcgQEAgDQo+ IHZmclN0YXRlbWVudE9uZU9mT3B0aW9uIDoNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaXplDQo+ICs9IE9GRlNFVF9PRiAoRUZJ X0lGUl9PTkVfT0ZfT1BUSU9OLCBWYWx1ZSk7DQo+IE9PT09iaiA9IG5ldyBDSWZyT25lT2ZPcHRp b24oKFVJTlQ4KVNpemUpOw0KPiBPT09PYmotPlNldExpbmVObyhMLT5nZXRMaW5lKCkpOy0NCj4g T09PT2JqLT5TZXRPcHRpb24gKF9TVE9TSUQoUy0+Z2V0VGV4dCgpLCBTLT5nZXRMaW5lKCkpKTsg KyBTZXRPcHRpb24gDQo+IE9PT09iai0+KF9TVE9TSUQoUy0+Z2V0VGV4dCgpLCBTLT5nZXRMaW5l KCkpKTsNCj4gaWYgKEFycmF5VHlwZSkNCj4gew0KPiBPT09PYmotPlNldFR5cGUNCj4gKEVGSV9J RlJfVFlQRV9CVUZGRVIpOw0KPiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7QEAgLTM3MDYsNyAr MzcyMyw3IEBAIHZmclN0YXRlbWVudE9uZU9mT3B0aW9uIA0KPiA6DQo+IA0KPiBPT09PYmotPlNl dFR5cGUNCj4gKF9HRVRfQ1VSUlFFU1RfREFUQVRZUEUoKSk7DQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICB9DQo+ICAgICAgICAgICAgICAgICAgICAgICAgfS0NCj4gT09PT2JqLT5TZXRWYWx1 ZSAoKlZhbCk7ICsNCj4gT09PT2JqLT5TZXRWYWx1ZQ0KPiAoKlZhbCk7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Pg0KPiBGOkZMQUdTICI9 IiB2ZnJPbmVPZk9wdGlvbkZsYWdzWypPT09PYmosIEYtPmdldExpbmUoKV0gPDxAQCAtMzc5MCw3 IA0KPiArMzgwNywxMiBAQCBvbmVvZm9wdGlvbkZsYWdzRmllbGQgW1VJTlQ4ICYgSEZsYWdzLCBV SU5UOCAmIExGbGFnc10gOg0KPiAgICB8IFJlc3RTdHlsZUZsYWcgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDw8ICRIRmxhZ3MNCj4gfD0gMHgyMDsgPj4gICB8IFJlY29ubmVj dFJlcXVpcmVkRmxhZw0KPiA8PCAkSEZsYWdzIHw9IDB4NDA7ID4+ICAgfCBNYW51ZmFjdHVyaW5n RmxhZw0KPiA8PCAkTEZsYWdzIHw9IDB4MjA7ID4+LSAgfCBEZWZhdWx0RmxhZyA8PCAkTEZsYWdz IHw9IDB4MTA7ID4+KyAgfCANCj4gRDpEZWZhdWx0RmxhZyA8PCsgJExGbGFncyB8PSAweDEwOysg aWYgKG1Jc0NhdGNoRGVmYXVsdEVuYWJsZSkgeysgDQo+IERlZmF1bHRWYWx1ZUVycm9yKFZGUl9S RVRVUk5fVU5TVVBQT1JURUQsDQo+IEQtPmdldExpbmUoKSk7Kw0KPiAgICAgICAgICAgfSsNCj4g ICAgICA+PiAgIHwgQTpOVkFjY2Vzc0ZsYWcNCj4gPDwNCj4gZ0NWZnJFcnJvckhhbmRsZS5IYW5k bGVXYXJuaW5nDQo+ICgNCj4gVkZSX1dBUk5JTkdfT0JTT0xFVEVEX0ZSQU1FV09SS19PUENPREUs QEAgLTM5NjMsNyArMzk4NSw3IEBAIA0KPiB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uIFtVSU5UMzIg Um9vdExldmVsLCBVSU5UMzIgRXhwT3BDb3VudCA9IDBdIDoNCj4gDQo+ICB9DQo+ICB9ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LQ0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZg0KPiAoJFJvb3RMZXZlbCA9PSAwKQ0KPiB7DQo+IF9DTEVBUl9TQVZFRF9PUEhEUiAo KTsNCj4gbUNJZnJPcEhkckluZGV4IC0tO0BAIC00NDA1LDEwICs0NDI3LDEwIEBAIGlkZXF2YWxs aXN0RXhwW1VJTlQzMiAmIA0KPiBSb290TGV2ZWwsIFVJTlQzMiAmIEV4cE9wQ291bnRdIDoNCj4g DQo+IGZvciAoSW5kZXggPSAwOyBJbmRleCA8IExpc3RMZW47IEluZGV4KyspIHsNCj4gICBFSUxP YmouU2V0VmFsdWVMaXN0IChJbmRleCwNCj4gVmFsdWVMaXN0W0luZGV4XSk7DQo+ICAgICAgICAg ICAgICB9LQ0KPiArDQo+IEVJTE9iai5VcGRhdGVJZnJCdWZmZXIoKTstDQo+IF9TQVZFX09QSERS X0NPTkQgKEVJTE9iaiwgKCRFeHBPcENvdW50ID09IDApLCBMLT5nZXRMaW5lKCkpOw0KPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Kw0KPiBfU0FWRV9PUEhEUl9DT05EIChFSUxPYmosICgkRXhwT3BDb3VudCA9PSAwKSwgTC0+Z2V0 TGluZSgpKTsrIGlmIChRSWQgDQo+ID09IEVGSV9RVUVTVElPTl9JRF9JTlZBTElEKSB7DQo+ICAg RUlMT2JqLlNldFF1ZXN0aW9uSWQgKFFJZCwgVmFySWRTdHIsIExpbmVObyk7DQo+ICAgICAgIH1A QCAtNDQ1OCw5ICs0NDgwLDkgQEAgc3RyaW5ncmVmMUV4cFtVSU5UMzIgJiBSb290TGV2ZWwsDQo+ IFVJTlQzMiAmIEV4cE9wQ291bnRdIDoNCj4gICAgPj4gICBMOlN0cmluZ1JlZiAgICJcKCItICAg ICAgKCArICAgICAgKCAgICAgICAgICJTVFJJTkdfVE9LRU4iLQ0KPiAiXCgiICsgICAgICAgICJc KCIgICAgICAgICAgIFM6TnVtYmVyIDw8IFJlZlN0cmluZ0lkID0NCj4gX1NUT1NJRChTLT5nZXRU ZXh0KCksIFMtPmdldExpbmUoKSk7ID4+ICAgICAgICAgIlwpIiAgICAgICAgIHwgSTpOdW1iZXIN Cj4gPDwgUmVmU3RyaW5nSWQgPSBfU1RPU0lEKEktPmdldFRleHQoKSwgSS0+Z2V0TGluZSgpKTsg Pj5AQCAtNDQ5OSwxMCANCj4gKzQ1MjEsDQoxMA0KPiBAQCBnZXRFeHBbVUlOVDMyICYgUm9vdExl dmVsLCBVSU5UMzIgJiBFeHBPcENvdW50XSA6DQo+ICAgICAgIEluZm8ubVZhclN0b3JlSWQgPSAw OyAgID4+ICAgTDpHZXQtICAiXCgiICsgICJcKCINCj4gdmZyU3RvcmFnZVZhcklkW0luZm8sIFZh cklkU3RyLCBGQUxTRV0gICAgICAgeyJcfCIgRkxBR1MgIj0iDQo+IG51bWVyaWNWYXJTdG9yZVR5 cGUgW1ZhclR5cGVdIH0tICAiXCkiDQo+IDw8ICsgICJcKSIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwNCj4geyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpDQo+IGYgKEluZm8ubVZhclN0 b3JlSWQgPT0gMCkNCj4gew0KPiAgIC8vIHN1cHBvcnQgRGF0ZS9UaW1lIHF1ZXN0aW9uQEAgLTQ1 NDksOSArNDU3MSw5IEBAIGdldEV4cFtVSU5UMzIgJiANCj4gUm9vdExldmVsLCBVSU5UMzIgJiBF eHBPcENvdW50XSA6DQo+IA0KPiBfUENBVENIKFZGUl9SRVRVUk5fVU5TVVBQT1JURUQsIEwtPmdl dExpbmUoKSwgIkdldC9TZXQgb3Bjb2RlIGRvbid0IA0KPiBzdXBwb3J0IGRhdGEgYXJyYXkiKTsN Cj4gICAgICAgIH0NCj4gICAgICAgIH0tDQo+IENJZnJHZXQgR09iaihMLT5nZXRMaW5lKCkpOyAt DQo+IF9TQVZFX09QSERSX0NPTkQgKEdPYmosICgkRXhwT3BDb3VudCA9PSAwKSwgTC0+Z2V0TGlu ZSgpKTsgLSANCj4gR09iai5TZXRWYXJJbmZvICgmSW5mbyk7ICsgQ0lmckdldCBHT2JqKEwtPmdl dExpbmUoKSk7KyANCj4gX1NBVkVfT1BIRFJfQ09ORCAoR09iaiwgKCRFeHBPcENvdW50ID09IDAp LCBMLT5nZXRMaW5lKCkpOysgDQo+IEdPYmouU2V0VmFySW5mbyAoJkluZm8pOyBkZWxldGVbXSBW YXJJZFN0cjsgJEV4cE9wQ291bnQrKzsNCj4gICAgICAgICAgICB9QEAgLTQ2MDgsNyArNDYzMCw3 IEBAIHF1ZXN0aW9uMjNyZWZFeHBbVUlOVDMyICYgUm9vdExldmVsLCANCj4gVUlOVDMyICYgRXhw T3BDb3VudF0gOg0KPiAgICAgICAgeyAgICAgICAgIFV1aWQgIj0iIGd1aWREZWZpbml0aW9uW0d1 aWRdICIsIg0KPiA8PCBUeXBlID0gMHgzOyA+PiAgICAgICB9LSAgICAgIHZmclN0YXRlbWVudEV4 cHJlc3Npb25TdWJbJFJvb3RMZXZlbCArDQo+IDEsICRFeHBPcENvdW50XSArICAgICAgdmZyU3Rh dGVtZW50RXhwcmVzc2lvblN1YlskUm9vdExldmVsICsgMSwNCj4gJEV4cE9wQ291bnRdICAgIlwp Ig0KPiA8PA0KPiBzd2l0Y2ggKFR5cGUpIHtAQCAtNDY3NSw5ICs0Njk3LDkgQEAgc2V0RXhwW1VJ TlQzMiAmIFJvb3RMZXZlbCwNCj4gVUlOVDMyICYgRXhwT3BDb3VudF0gOg0KPiAgICAiXCgiICAg ICAgdmZyU3RvcmFnZVZhcklkW0luZm8sIFZhcklkU3RyLCBGQUxTRV0gICAgICB7Ilx8IiBGTEFH ICI9Ig0KPiBudW1lcmljVmFyU3RvcmVUeXBlIFtWYXJUeXBlXSB9LSAgICAgIiwiDQo+IHZmclN0 YXRlbWVudEV4cHJlc3Npb25TdWJbJFJvb3RMZXZlbCArIDEsICRFeHBPcENvdW50XSArICAgICAi LCINCj4gdmZyU3RhdGVtZW50RXhwcmVzc2lvblN1YlskUm9vdExldmVsICsgMSwgJEV4cE9wQ291 bnRdICAgIlwpIi0NCj4gPDwgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8PA0KPiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkNCj4gZiAoSW5mby5tVmFyU3RvcmVJZCA9PSAw KQ0KPiB7DQo+ICAgLy8gc3VwcG9ydCBEYXRlL1RpbWUgcXVlc3Rpb25AQCAtNDcyNCw4ICs0NzQ2 LDggQEAgc2V0RXhwW1VJTlQzMiAmIA0KPiBSb290TGV2ZWwsIFVJTlQzMiAmIEV4cE9wQ291bnRd IDoNCj4gDQo+IF9QQ0FUQ0goVkZSX1JFVFVSTl9VTlNVUFBPUlRFRCwgTC0+Z2V0TGluZSgpLCAi R2V0L1NldCBvcGNvZGUgZG9uJ3QgDQo+IHN1cHBvcnQgZGF0YSBhcnJheSIpOw0KPiAgICAgICAg fQ0KPiAgICAgICAgfS0NCj4gQ0lmclNldCBUU09iaihMLT5nZXRMaW5lKCkpOyAtDQo+IFRTT2Jq LlNldFZhckluZm8gKCZJbmZvKTsgKw0KPiBDSWZyU2V0IFRTT2JqKEwtPmdldExpbmUoKSk7Kw0K PiBUU09iai5TZXRWYXJJbmZvICgmSW5mbyk7DQo+IGRlbGV0ZVtdIFZhcklkU3RyOw0KPiAkRXhw T3BDb3VudCsrOw0KPiAgICAgICAgICAgIH1AQCAtNDgwOCw5ICs0ODMwLDkgQEAgc3BhbkV4cFtV SU5UMzIgJiBSb290TGV2ZWwsDQo+IFVJTlQzMiAmIEV4cE9wQ291bnRdIDoNCj4gICAgOyAgdmZy RXhwcmVzc2lvbk1hcCBbVUlOVDMyICYgUm9vdExldmVsLCBVSU5UMzIgJiBFeHBPcENvdW50XTot DQo+IEw6TWFwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLSAgIlwoIg0KPiAtICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViWyRSb290TGV2ZWwgKyAx LCAkRXhwT3BDb3VudF0gICsgIEw6TWFwKw0KPiAiXCgiKyAgdmZyU3RhdGVtZW50RXhwcmVzc2lv blN1YlskUm9vdExldmVsICsgMSwgJEV4cE9wQ291bnRdICAgIjoiDQo+IDw8IHsgQ0lmck1hcCBN T2JqKEwtPmdldExpbmUoKSk7IH0gPj4NCj4gKCAgICAgdmZyU3RhdGVtZW50RXhwcmVzc2lvblsw XUBAIC00ODM3LDYgKzQ4NTksNyBAQCBzcGFuRmxhZ3MNCj4gW1VJTlQ4ICYgRmxhZ3NdIDoNCj4g IGNsYXNzIEVmaVZmclBhcnNlciB7IDw8IHByaXZhdGU6KyAgQk9PTEVBTg0KPiBtSXNDYXRjaERl ZmF1bHRFbmFibGU7ICAgVUlOVDggICAgICAgICAgICAgICBtUGFyc2VyU3RhdHVzOw0KPiBCT09M RUFOICAgICAgICAgICAgIG1Db25zdGFudE9ubHlJbkV4cHJlc3Npb247IEBAIC00ODgwLDYgKzQ5 MDMsNw0KPiBAQCBwdWJsaWM6DQo+ICAgIFZPSUQgICAgICAgICAgICAgICAgX1BDQVRDSCAoSU4g RUZJX1ZGUl9SRVRVUk5fQ09ERSwgSU4NCj4gQU5UTFJUb2tlblB0cik7ICAgVk9JRCAgICAgICAg ICAgICAgICBfUENBVENIIChJTg0KPiBFRklfVkZSX1JFVFVSTl9DT0RFLCBJTiBVSU5UMzIpOyAg IFZPSUQgICAgICAgICAgICAgICAgX1BDQVRDSA0KPiAoSU4gRUZJX1ZGUl9SRVRVUk5fQ09ERSwg SU4gVUlOVDMyLCBJTiBDT05TVCBDSEFSOCAqKTsrICBWT0lEDQo+IERlZmF1bHRWYWx1ZUVycm9y IChJTiBFRklfVkZSX1JFVFVSTl9DT0RFLCBJTiBVSU5UMzIpOyAgICBWT0lEDQo+IHN5biAgICAg KEFOVExSQWJzdHJhY3RUb2tlbiAgKiwgQU5UTFJDaGFyICosIFNldFdvcmRUeXBlICosDQo+IEFO VExSVG9rZW5UeXBlLCBJTlQzMik7IEBAIC00OTA5LDYgKzQ5MzMsNyBAQCBwdWJsaWM6DQo+ICAg IFZPSUQgICAgICAgICAgICAgICAgSWRFcUlkRG9TcGVjaWFsICAgICAgIChJTiBVSU5UMzIgJiwg SU4NCj4gVUlOVDMyLCBJTiBFRklfUVVFU1RJT05fSUQsIElOIENIQVI4ICosIElOIFVJTlQzMiwg SU4gRUZJX1FVRVNUSU9OX0lELA0KPiBJTiBDSEFSOCAqLCBJTiBVSU5UMzIsIElOIEVGSV9DT01Q QVJFX1RZUEUpOyAgIFZPSUQNCj4gSWRFcUxpc3REb1NwZWNpYWwgICAgIChJTiBVSU5UMzIgJiwg SU4gVUlOVDMyLCBJTiBFRklfUVVFU1RJT05fSUQsIElODQo+IENIQVI4ICosIElOIFVJTlQzMiwg SU4gVUlOVDE2LCBJTiBVSU5UMTYgKik7ICAgVk9JRA0KPiBTZXRPdmVycmlkZUNsYXNzR3VpZCAg KElOIEVGSV9HVUlEICopOysgIFZPSUQgU2V0SXNDYXRjaERlZmF1bHRFbmFibGUgDQo+IChCT09M RUFOIElzQ2F0Y2hEZWZhdWx0RW5hYmxlKTsgPj4gfSBAQCAtNTA4Niw2DQo+ICs1MTExLDE3IEBA IEVmaVZmclBhcnNlcjo6X1BDQVRDSCAoDQo+ICAgIG1QYXJzZXJTdGF0dXMgPSBtUGFyc2VyU3Rh dHVzICsgZ0NWZnJFcnJvckhhbmRsZS5IYW5kbGVFcnJvciANCj4gKFJldHVybkNvZGUsIExpbmVO dW0sIChDSEFSOCAqKSBFcnJvck1zZyk7IH0NCj4gK1ZPSUQrRWZpVmZyUGFyc2VyOjpEZWZhdWx0 VmFsdWVFcnJvciAoKyAgSU4gRUZJX1ZGUl9SRVRVUk5fQ09ERQ0KPiBSZXR1cm5Db2RlLCsgIElO IFVJTlQzMiAgICAgICAgICAgICAgTGluZU51bSsgICkreysgIENIQVI4DQo+IEVycm9yTXNnWzEw MF07KyAgc3ByaW50ZihFcnJvck1zZywgInBsZWFzZSByZW1vdmUgdGhlIGRlZmF1bHQgdmFsdWUg LyANCj4gZGVmYXVsdHN0b3JlIGluIGxpbmUgJWQiLCBMaW5lTnVtKTsrICBtUGFyc2VyU3RhdHVz ID0gbVBhcnNlclN0YXR1cyArIA0KPiBnQ1ZmckVycm9ySGFuZGxlLkhhbmRsZUVycm9yIChSZXR1 cm5Db2RlLCBMaW5lTnVtLCBFcnJvck1zZyk7K30rIFZPSUQNCj4gRWZpVmZyUGFyc2VyOjpzeW4g KCAgIEFOVExSQWJzdHJhY3RUb2tlbiAgKlRvayxAQCAtNTY4MiwxMiArNTcxOCwxOA0KPiBAQCBF ZmlWZnJQYXJzZXI6OklkRXFMaXN0RG9TcGVjaWFsICgNCj4gICAgfSB9IC1WT0lEICtWT0lEIEVm aVZmclBhcnNlcjo6U2V0T3ZlcnJpZGVDbGFzc0d1aWQgKElOIEVGSV9HVUlEDQo+ICpPdmVycmlk ZUNsYXNzR3VpZCkgeyAgIG1PdmVycmlkZUNsYXNzR3VpZCA9IE92ZXJyaWRlQ2xhc3NHdWlkOyB9 DQo+ICtWT0lEK0VmaVZmclBhcnNlcjo6U2V0SXNDYXRjaERlZmF1bHRFbmFibGUgKEJPT0xFQU4N Cj4gSXNDYXRjaERlZmF1bHRFbmFibGUpK3srICBtSXNDYXRjaERlZmF1bHRFbmFibGUgPSANCj4g SXNDYXRjaERlZmF1bHRFbmFibGU7K30rIFZPSUQgRWZpVmZyUGFyc2VyOjpDaGVja0R1cGxpY2F0 ZURlZmF1bHRWYWx1ZQ0KPiAoICAgSU4gRUZJX0RFRkFVTFRfSUQgICAgICBEZWZhdWx0SWQsLS0N Cj4gMi4zOS4xLndpbmRvd3MuMQ0KDQoNCg0KDQoKLT0tPS09LT0tPS09LT0tPS09LT0tPS0KR3Jv dXBzLmlvIExpbmtzOiBZb3UgcmVjZWl2ZSBhbGwgbWVzc2FnZXMgc2VudCB0byB0aGlzIGdyb3Vw LgpWaWV3L1JlcGx5IE9ubGluZSAoIzExNjY3OSk6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9k ZXZlbC9tZXNzYWdlLzExNjY3OQpNdXRlIFRoaXMgVG9waWM6IGh0dHBzOi8vZ3JvdXBzLmlvL210 LzEwNDg4Njg2OS83Njg2MTc2Ckdyb3VwIE93bmVyOiBkZXZlbCtvd25lckBlZGsyLmdyb3Vwcy5p bwpVbnN1YnNjcmliZTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL3Vuc3ViIFtyZWJl Y2NhQG9wZW5mdy5pb10KLT0tPS09LT0tPS09LT0tPS09LT0tPS0KCg0K