From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web09.4204.1628046045866893739 for ; Tue, 03 Aug 2021 20:00:46 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=cl7FCTIt; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: guo.dong@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10065"; a="201002292" X-IronPort-AV: E=Sophos;i="5.84,293,1620716400"; d="scan'208";a="201002292" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Aug 2021 20:00:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,293,1620716400"; d="scan'208";a="502811893" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga004.fm.intel.com with ESMTP; 03 Aug 2021 20:00:44 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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.2242.10; Tue, 3 Aug 2021 20:00:44 -0700 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.2242.10 via Frontend Transport; Tue, 3 Aug 2021 20:00:44 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.109) 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.2242.10; Tue, 3 Aug 2021 20:00:43 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PVbAyAL/cji/d8jkZ2Nc0Z5ltRX3O76goAJHItzUboWIh9eSYbHnS2qnDvcBKMfRMHeVc0IQUvoQMpbtV5sWDOytnvM9zc/9TWzSt+nHWokTj/njIujT1JhbCw2przPX359vzA0RzI1ZZEaM0TkfaETVRpwGi+ANMtPuVA4jOgQrzLuzgCzHKc7nyGke+rYmEwsCacPTR2ZfSFVFxBo8hVNeT0Zlf8qE/C8xicfZ62+lwJET8FA9aAJothWmw459P/1Ym7iHSFud1r3N9SsL5r9ZIX45THafkN7VGc6j128LwCuIK8Xcb8fKC3Zo3AWqLHv34NltEq+oCQJpdwuhIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=57+4Sj2TUrFdjJohKc8Nx0LGjKyS7+Di/VDQ4n2RcHg=; b=aQYqos9bd/NJ1ue1K/BSJiLIeqLEUO5Zx+wZCJ1hPd8T85ZR+15v3CWcfchUdK/oQ4XobR+mudSbkUEXeJ3J8GPaRxPvltSK1CtqwGHmM+FVGpT6FeSXI55IuWGU1mFG0XCjiKh8ilTqbCJ+QsgaITpnqBG08E4/0nJppeBAF1XhxZwahJ/PGF3bCnu1SMs4puKlUgXLiaAGCwWhfNH8gnTNERf/42o4691fN/CunthA08/8NVeBsI2i8uJkWgbIA4X9GP+Uk26BFtcjkrju9Svy+yi5ewimUa+aqRXJN4OGGTJ8Zb2aPqdLfgXiVrrZUiQK9whoTxT4Ex88G9tLZw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=57+4Sj2TUrFdjJohKc8Nx0LGjKyS7+Di/VDQ4n2RcHg=; b=cl7FCTIt7d36nIEhrcTodpde1pqK6XY66zjFkzOqJbPQjlk8HbhEvvYBu9YCxGOVycEH32HAQgu/vKlCzzZPQpS70nbPBDjtU6MKBm+FdoyxlbdmQQX8551fAmLeUd1RHYsWwOnpQli+Ofov4PqqRUvqz+uL1sd0wrmaIRn4seY= Received: from BYAPR11MB3622.namprd11.prod.outlook.com (2603:10b6:a03:fe::30) by BY5PR11MB4323.namprd11.prod.outlook.com (2603:10b6:a03:1c2::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.21; Wed, 4 Aug 2021 03:00:42 +0000 Received: from BYAPR11MB3622.namprd11.prod.outlook.com ([fe80::7520:e237:98fd:6442]) by BYAPR11MB3622.namprd11.prod.outlook.com ([fe80::7520:e237:98fd:6442%4]) with mapi id 15.20.4373.026; Wed, 4 Aug 2021 03:00:42 +0000 From: "Guo Dong" To: "devel@edk2.groups.io" , "chengchieh@google.com" CC: Trammell Hudson Subject: Re: [edk2-devel] [PATCH v1 6/6] UefiPayloadPkg: LinuxBoot: use a text format for the configuration block. Thread-Topic: [edk2-devel] [PATCH v1 6/6] UefiPayloadPkg: LinuxBoot: use a text format for the configuration block. Thread-Index: AQHXfjy5RXcWR2IGw0i7YJbJGVYCzatiufSA Date: Wed, 4 Aug 2021 03:00:41 +0000 Message-ID: References: <20210721132328.1415485-1-chengchieh@google.com> <20210721132328.1415485-7-chengchieh@google.com> In-Reply-To: <20210721132328.1415485-7-chengchieh@google.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1e9a5a18-763d-4a52-3a62-08d956f40be6 x-ms-traffictypediagnostic: BY5PR11MB4323: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3513; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: DIc/tJYNJDAXXfT11h9535GoHI+LeQxOlfwbr1OXxF/LaxQWfTFSp10iTvZJd4r/JdWakAKMK0pBaFPJtkkmmhFfSTyi9SiuCwtJzQmyWfFnUcolfPMyK90EUUXCW8D81Yl/tjNapVr8WJ6+E41A/3BjAdbMSt8RgkHfiKeCFTJczwyfiLFZlvS8K84BlpoPc/N7GzmRuf7UbCiJoDbTeq4W0CICwKmy5q0tuas2vWIDxu7ijXnQ5uKFyZObWb2c6UUTIO7/fAj2U3FoMCMOpMG/D/RSl1u+/ePME58S2vOzY2fGwwnNIg3IjkQ5nnhCfmgN+vyeJnNdstWFskJzPl8gOZisBtHPnmZVFWB+aUSZLTNjcfSasIlhN39huYSC0awSQ6SUivHQk2rg62YuxfK6Aarh5t0XP1xV2Brwxi6qKqWCw9SA7SQRhfaxDqMqzkDSQh5rigH03yakqgE0i22gAiJ5CHpmLt/f5PNz5bC82VGguvmlUCpGOxMJi3JT+eYLb3qKhcWreobk8Kw9+4xdppZ0HLABj97ZtWBHn3ab3vx1fpoUgp6f/EexClVD5J0sKrbEeztebXlxRDRL0e363ImzbgSTpEEv2hwAbcmujrcFDBGol6USioOz6p0akJaUdSLYSk2ne55nn6UC0X1cPID0gRp30Xh0vgwGjKxmLGEaZpI6E20jPI7xKQujw+oGmdpvfZ7GgdYJm8g5x2Mi/FR63XBH07daa/sBPv7WLwki8ZPCLQiF0Urk2RmcLIuoWSyj5q6q/SO5JnNIXJLsUcLOLVLBamFZnZmj6MiSLT2H4a1y9U0NcgCnUbSd26HCdrssUbdI8eBIw3OrEA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR11MB3622.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(346002)(39860400002)(376002)(136003)(366004)(396003)(110136005)(2906002)(316002)(38070700005)(6506007)(71200400001)(83380400001)(8676002)(186003)(33656002)(53546011)(26005)(8936002)(7696005)(122000001)(478600001)(38100700002)(30864003)(9686003)(55016002)(66946007)(86362001)(966005)(64756008)(66446008)(4326008)(19627235002)(76116006)(5660300002)(66476007)(52536014)(66556008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Y2w5NGdBeEg5bGhXYlh5SmEyUEMzQVNXVGFtVTJ3U3RqQ1grMlJJNWgrVXRs?= =?utf-8?B?WXozQS8xbHdnYk81VW9CTFp0cVlmdTFsU1BDekI1Q1lJWjFJVjJWSDk3K0l0?= =?utf-8?B?dXFCRk1OSThXbzBOZ3lqWk0weEJXWlZ1SUtNQWc4MmpGS0ROUGpqS3daNEJt?= =?utf-8?B?Sis3ZitJTEQ4TDFJZERINXVQVTlaN3hZaEVGN3k2SUJzZndpUGhXYXh6eXN0?= =?utf-8?B?Z1JmN2NneE53aGc1NFJkbjFlcFFkV0JPZU5odW9xSFREQlBxdEdlQUo0SmUw?= =?utf-8?B?YTJsbld4UkpMT3hUUnJHSFRPU2xyT3lpcnRwVjlTbmR5U1hNT2tnLytmaVRV?= =?utf-8?B?U0o4b1d4bFFQWWJaRmJLTUVSWnAvQVVqZVcxS3VsdnBVNzFYdit0cUtCeWQx?= =?utf-8?B?cVR3TCtrZE9xSTRlTXBobCs1VUxPTFMrMFl5K2xRWncyVm00c2Naa3A1S0dJ?= =?utf-8?B?YTFQNk82SnlaVHltRzZ3K1FOaTFuUlJHSkt1ZjhudEI1R3dOSXBaUUFnb1dF?= =?utf-8?B?bklJWlZPMzdLKzloRU5nbHJkUWxJZ1FIMGFoelVlc1N6akFhR0c0WXFYVnRZ?= =?utf-8?B?dWd6bDNFRjJpeit2ZUFNWlE0UVk5OFdsTS8vMUcrQ0I0cWFWRGRCbmpUWjlP?= =?utf-8?B?Skp1blZDYTRlU0VjVmVJVi9Pb0s5eEpRQ09ETldkYXBMbm5GbHRBRm1aWlVC?= =?utf-8?B?TWhHQURBL0RwZWxMU1U5bi9zUVMyRXhtVlQwV2ZBayt6cS8vSU1aQkZYZ3Vz?= =?utf-8?B?R0tiUjRjWjV5TEFLTVhxU1BVRHRUdHhLQVAvVW5CTFA2bEZUMitVc2tHclpo?= =?utf-8?B?cUFDbmRxZW5pNE8zU1BYOTFsVmdVVXNxVXcwbWhMODNEc1AwQktVbWV5Mjhu?= =?utf-8?B?UE1EdGFEeE54OFdyenhXZklrOEZYWVlxRGhFa0d6d2NYMEdQd0oxY21sSjNj?= =?utf-8?B?QkpBY29kNjdIOVlETFZwS1Nxb3VPOGtISmNoVkJoeWFUTXJPb1p0Vm5RME5O?= =?utf-8?B?bmtqbllhWHFWVUFLb0NDamFuaW4yZDh6Z2hLMjA0Y1V6VFhQc01NTmhaYVFJ?= =?utf-8?B?ZXZXUjNCWXRINEd1U0RySnNUaUV1MDdLVjZMQXE4MG9TZkpJYStlVEZsRHFp?= =?utf-8?B?Y0Y0aGpKRHRRY3pITS9PdWY1dUNkaGtseW5mY01FZExVY1EvVXgwQlY1akNz?= =?utf-8?B?MXAzTXdEelJ0YWdRaXh2K0VJZEszK2Y0SU1wWWlJb2FXOG4xQy9RcGtVSXA2?= =?utf-8?B?VmZpK1dHalB2K0tRYkZsM21jNVpxQXFSL2RXY2E4MFFPUUJ0ZlUzaWtWMHJ0?= =?utf-8?B?VGJlakhyMElpV2dMVjZvQ01KNHE0cmsrL3JUcWhvdjRwc3NYakRjY25FTGlZ?= =?utf-8?B?eW8wYUJNeDcxemhLOE04dFhLK3JodW8wYnNzYTZSOE9jcnhVN0lWSXhYVXg3?= =?utf-8?B?dWtKNUdBeld6NFArTVg2YmQyQUZUbUdxZHBKSWJ1Q2JWUjVCUkNnbUNkNGd0?= =?utf-8?B?TEFvdXE3RzZIUzhCeHRPamJhcUhNZlBZYVIwaWZERmgva08vS2FKTGptRDRR?= =?utf-8?B?emQ4QWF1YkVTUmlRNWlwTStXTCs2RkN6T29iakJQMS9tbmVnUnl4V0ZqaHhr?= =?utf-8?B?YWJqeHlncVprb0EzcWhjQngwUityOVZYRVBJbzZ6YmxQWks3RTR2NDgrcEtC?= =?utf-8?B?Ujc5aDFRTFN2Rnk1UnZqdG8yaEd6cmFYNnRQaTFDU0ZZUFRrTVZKSnBSQzFS?= =?utf-8?Q?tZVKsH1U5ZzAzmYw4rTyUl28e5Ge7zvUqt2xKFI?= x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR11MB3622.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1e9a5a18-763d-4a52-3a62-08d956f40be6 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Aug 2021 03:00:42.0023 (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: jhthIImvIMs/g0FJbc8I4ftQnsV5Ay8sgzrjZlikjMc7Qv3y6Gr6YZCfBBWxOJ3b7S16ssB5kW2H6TBrkNEU0A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR11MB4323 Return-Path: guo.dong@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQpQbGVhc2UgcnVuIEJhc2VUb29sc1xTY3JpcHRzXFBhdGNoQ2hlY2sucHkgdG8gbWFrZSBzdXJl IGl0IHBhc3NlZCB0aGUgY2hlY2suDQoNClVwZGF0ZSBMYlBhcnNlTGliLmMgZm9sbG93aW5nIGh0 dHBzOi8vZWRrMi1kb2NzLmdpdGJvb2suaW8vZWRrLWlpLWMtY29kaW5nLXN0YW5kYXJkcy1zcGVj aWZpY2F0aW9uLy4NCmN1cnJlbnQgY29kZSBpcyBtb3JlIGxpa2UgTGludXggc3R5bGUuIEUuZy4N CitzdGF0aWMgdWludDY0X3QgcGFyc2VfaW50KGNvbnN0IGNoYXIqIHMsIGNoYXIqKiBlbmQpIHsN CisgIFVJTlQ2NCB4Ow0KDQpSZW1vdmVkIHVudXNlZCBjb21tZW50cw0KKy8vI2luY2x1ZGUgPHN0 cmluZy5oPg0KKy8vI2luY2x1ZGUgPGN0eXBlLmg+DQoNCg0KVGhhbmtzLA0KR3VvDQotLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVk azIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgQ2hlbmctQ2hpZWggSHVhbmcgdmlhIGdyb3Vwcy5p bw0KU2VudDogV2VkbmVzZGF5LCBKdWx5IDIxLCAyMDIxIDY6MjMgQU0NClRvOiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbw0KQ2M6IFRyYW1tZWxsIEh1ZHNvbiA8aHVkc29uQHRybW0ubmV0PjsgQ2hlbmct Q2hpZWggSHVhbmcgPGNoZW5nY2hpZWhAZ29vZ2xlLmNvbT4NClN1YmplY3Q6IFtlZGsyLWRldmVs XSBbUEFUQ0ggdjEgNi82XSBVZWZpUGF5bG9hZFBrZzogTGludXhCb290OiB1c2UgYSB0ZXh0IGZv cm1hdCBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gYmxvY2suDQoNCkZyb206IFRyYW1tZWxsIEh1ZHNv biA8aHVkc29uQHRybW0ubmV0Pg0KDQpUaGlzIGFkZHMgYSB0ZXh0IGNvbW1hbmQgbGluZSBmb3Ig dGhlIFVlZmlQYXlsb2FkUGtnIHRoYXQgdXNlcyBhIHRleHR1YWwgbWFnaWMgbnVtYmVyICdMbnhC b290MScgYW5kIGEgc2VyaWVzIG9mIHdoaXRlLXNwYWNlIHNlcGFyYXRlZCBrZXk9dmFsdWVbLHZh bHVlLi4uXSBwYWlycyBmb3IgdGhlIHBhcmFtZXRlcnMuDQoNClRoZSB2MSBiaW5hcnkgY29uZmln dXJhdGlvbiBzdHJ1Y3R1cmUgaXMgdXNlZCBpZiBpdCBpcyBwcmVzZW50IGluc3RlYWQgZm9yIGJh Y2t3YXJkcyBjb21wYXRhYmlsaXR5Lg0KDQpDdXJyZW50bHkgc3VwcG9ydGVkIHRleHQgY29tbWFu ZCBsaW5lIGFyZ3VtZW50cyBhcmUgYXJlOg0KDQoqIGBzZXJpYWw9YmF1ZCxiYXNlLHdpZHRoLHR5 cGUsaHoscGNpYA0KKG9ubHkgYGJhdWRgIG5lZWRzIHRvIGJlIHNwZWNpZmllZCwgdGhlIHJlc3Qg aGF2ZSByZWFzb25hYmxlDQpkZWZhdWx0cykNCg0KKiBgbWVtPXN0YXJ0LGVuZCx0eXBlYA0KVHlw ZXMgYXJlIGJhc2VkIG9uIGAvc3lzL2Zpcm13YXJlL21lbW1hcHMvKi90eXBlc2A6DQogICAgMSA9 PSAiU3lzdGVtIFJBTSINCiAgICAzID09ICJBQ1BJIFRhYmxlcyINCiAgICA0ID09ICJBQ1BJIE5v bi12b2xhdGlsZSBTdG9yYWdlIg0KICAgIDUgPT0gIlJlc2VydmVkIg0KDQoqIGBBQ1BJMjA9YmFz ZWAgcG9pbnRlciB0byBSRFNQIChmcm9tIGAvc3lzL2Zpcm13YXJlL2VmaS9zeXN0YWJgKQ0KDQoq IGBTTUJJT1M9YmFzZWAgcG9pbnRlciB0byB0aGUgU01CSU9TIHRhYmxlIChhbHNvIGZyb20gdGhl IEVGSSB0YWJsZSkNCg0KU2lnbmVkLW9mZi1ieTogQ2hlbmctQ2hpZWggSHVhbmcgPGNoZW5nY2hp ZWhAZ29vZ2xlLmNvbT4NCi0tLQ0KIFVlZmlQYXlsb2FkUGtnL0luY2x1ZGUvTGludXhib290Lmgg ICAgICAgICAgICAgfCAgMTcgKy0NCiBVZWZpUGF5bG9hZFBrZy9MaWJyYXJ5L0xiUGFyc2VMaWIv TGJQYXJzZUxpYi5jIHwgMjUyICsrKysrKysrKysrKysrKysrLS0tDQogMiBmaWxlcyBjaGFuZ2Vk LCAyMzAgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9VZWZp UGF5bG9hZFBrZy9JbmNsdWRlL0xpbnV4Ym9vdC5oIGIvVWVmaVBheWxvYWRQa2cvSW5jbHVkZS9M aW51eGJvb3QuaA0KaW5kZXggMzRjYTE4MDY5OTgzLi41NmIzOWI1YTA5ZmYgMTAwNjQ0DQotLS0g YS9VZWZpUGF5bG9hZFBrZy9JbmNsdWRlL0xpbnV4Ym9vdC5oDQorKysgYi9VZWZpUGF5bG9hZFBr Zy9JbmNsdWRlL0xpbnV4Ym9vdC5oDQpAQCAtMjQsOCArMjQsNyBAQCB0eXBlZGVmIHN0cnVjdCBN ZW1vcnlNYXBFbnRyeVN0cnVjdCB7DQogICBVSU5UMzIgVHlwZTsNCiB9IE1lbW9yeU1hcEVudHJ5 Ow0KIA0KLXR5cGVkZWYgc3RydWN0IFVlZmlQYXlsb2FkQ29uZmlnU3RydWN0IHsNCi0gIFVJTlQ2 NCBWZXJzaW9uOw0KK3R5cGVkZWYgc3RydWN0IHsNCiAgIFVJTlQ2NCBBY3BpQmFzZTsNCiAgIFVJ TlQ2NCBBY3BpU2l6ZTsNCiAgIFVJTlQ2NCBTbWJpb3NCYXNlOw0KQEAgLTMzLDEwICszMiwyMiBA QCB0eXBlZGVmIHN0cnVjdCBVZWZpUGF5bG9hZENvbmZpZ1N0cnVjdCB7DQogICBTZXJpYWxQb3J0 Q29uZmlnIFNlcmlhbENvbmZpZzsNCiAgIFVJTlQzMiBOdW1NZW1vcnlNYXBFbnRyaWVzOw0KICAg TWVtb3J5TWFwRW50cnkgTWVtb3J5TWFwRW50cmllc1swXTsNCit9IFVlZmlQYXlsb2FkQ29uZmln VjE7DQorDQordHlwZWRlZiBzdHJ1Y3QgVWVmaVBheWxvYWRDb25maWdTdHJ1Y3Qgew0KKyAgVUlO VDY0IFZlcnNpb247DQorICB1bmlvbiB7DQorICAgIFVlZmlQYXlsb2FkQ29uZmlnVjEgdjE7DQor ICAgIHN0cnVjdCB7DQorICAgICAgY2hhciBjbWRsaW5lWzBdOyAvLyB1cCB0byA2NCBLQg0KKyAg ICB9IHYyOw0KKyAgfSBjb25maWc7DQogfSBVZWZpUGF5bG9hZENvbmZpZzsNCiAjcHJhZ21hIHBh Y2soKQ0KIA0KLSNkZWZpbmUgVUVGSV9QQVlMT0FEX0NPTkZJR19WRVJTSU9OIDENCisvLyBtYWdp YyB2ZXJzaW9uIGNvbmZpZyBpcyAiTG54Qm9vdDEiDQorI2RlZmluZSBVRUZJX1BBWUxPQURfQ09O RklHX1ZFUlNJT04xIDENCisjZGVmaW5lIFVFRklfUEFZTE9BRF9DT05GSUdfVkVSU0lPTjIgMHgz MTc0NmY2ZjQyNzg2ZTRjVUxMDQogDQogI2RlZmluZSBMSU5VWEJPT1RfTUVNX1JBTSAxDQogI2Rl ZmluZSBMSU5VWEJPT1RfTUVNX0RFRkFVTFQgMg0KZGlmZiAtLWdpdCBhL1VlZmlQYXlsb2FkUGtn L0xpYnJhcnkvTGJQYXJzZUxpYi9MYlBhcnNlTGliLmMgYi9VZWZpUGF5bG9hZFBrZy9MaWJyYXJ5 L0xiUGFyc2VMaWIvTGJQYXJzZUxpYi5jDQppbmRleCAzNGJmYjZhMTA3M2YuLjVlNjgwOTFjYWM5 MSAxMDA2NDQNCi0tLSBhL1VlZmlQYXlsb2FkUGtnL0xpYnJhcnkvTGJQYXJzZUxpYi9MYlBhcnNl TGliLmMNCisrKyBiL1VlZmlQYXlsb2FkUGtnL0xpYnJhcnkvTGJQYXJzZUxpYi9MYlBhcnNlTGli LmMNCkBAIC0xLDEzICsxLDEyIEBADQogLyoqIEBmaWxlDQotICBUaGlzIGxpYnJhcnkgd2lsbCBw YXJzZSB0aGUgbGludXhib290IHRhYmxlIGluIG1lbW9yeSBhbmQgZXh0cmFjdCB0aG9zZSByZXF1 aXJlZA0KLSAgaW5mb3JtYXRpb24uDQorICBUaGlzIGxpYnJhcnkgd2lsbCBwYXJzZSB0aGUgbGlu dXhib290IHRhYmxlIGluIG1lbW9yeSBhbmQgZXh0cmFjdCANCit0aG9zZSByZXF1aXJlZCBpbmZv cm1hdGlvbi4NCiANCiAgIENvcHlyaWdodCAoYykgMjAyMSwgdGhlIHUtcm9vdCBBdXRob3JzLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCiAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt Mi1DbGF1c2UtUGF0ZW50DQogDQogKiovDQogDQotDQogI2luY2x1ZGUgPEluZHVzdHJ5U3RhbmRh cmQvQWNwaS5oPg0KICNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL1NtQmlvcy5oPg0KICNpbmNs dWRlIDxMaWJyYXJ5L0Jhc2VMaWIuaD4NCkBAIC0xOCwxNyArMTcsNDIgQEANCiAjaW5jbHVkZSA8 TGlicmFyeS9QY2RMaWIuaD4NCiAjaW5jbHVkZSA8TGludXhib290Lmg+DQogI2luY2x1ZGUgPFVl ZmkvVWVmaUJhc2VUeXBlLmg+DQorI2luY2x1ZGUgPHN0ZGludC5oPg0KKyNpbmNsdWRlIDxzdGRs aWIuaD4NCisvLyNpbmNsdWRlIDxzdHJpbmcuaD4NCisvLyNpbmNsdWRlIDxjdHlwZS5oPg0KKw0K KyNkZWZpbmUgc3RybmNtcChhLCBiLCBuKSBBc2NpaVN0cm5DbXAoKGEpLCAoYiksIChuKSkNCisN CitzdGF0aWMgdWludDY0X3QgcGFyc2VfaW50KGNvbnN0IGNoYXIqIHMsIGNoYXIqKiBlbmQpIHsN CisgIFVJTlQ2NCB4Ow0KKw0KKyAgaWYgKHNbMF0gPT0gJzAnICYmIHNbMV0gPT0gJ3gnKQ0KKyAg ICBBc2NpaVN0ckhleFRvVWludDY0UyhzLCBlbmQsICZ4KTsNCisgIGVsc2UNCisgICAgQXNjaWlT dHJEZWNpbWFsVG9VaW50NjRTKHMsIGVuZCwgJngpOw0KKw0KKyAgcmV0dXJuIHg7DQorfQ0KKw0K K3N0YXRpYyBpbnQgaXNzcGFjZShjb25zdCBjaGFyIGMpIHsgcmV0dXJuIGMgPT0gJyAnIHx8IGMg PT0gJ1x0JyB8fCBjID09IA0KKydcbic7IH0NCiANCiAvLyBSZXRyaWV2ZSBVZWZpUGF5bG9hZENv bmZpZyBmcm9tIExpbnV4Ym9vdCdzIHVlZmlib290DQotVWVmaVBheWxvYWRDb25maWcqIEdldFVl ZmlQYXlMb2FkQ29uZmlnKCkgew0KLSAgVWVmaVBheWxvYWRDb25maWcqIGNvbmZpZyA9DQorY29u c3QgVWVmaVBheWxvYWRDb25maWcqIEdldFVlZmlQYXlMb2FkQ29uZmlnKCkgew0KKyAgY29uc3Qg VWVmaVBheWxvYWRDb25maWcqIGNvbmZpZyA9DQogICAgICAgKFVlZmlQYXlsb2FkQ29uZmlnKiko VUlOVE4pKFBjZEdldDMyKFBjZFBheWxvYWRGZE1lbUJhc2UpIC0gU0laRV82NEtCKTsNCi0gIGlm IChjb25maWctPlZlcnNpb24gIT0gVUVGSV9QQVlMT0FEX0NPTkZJR19WRVJTSU9OKSB7DQotICAg IERFQlVHKChERUJVR19FUlJPUiwgIkV4cGVjdCBwYXlsb2FkIGNvbmZpZyB2ZXJzaW9uOiAlZCwg YnV0IGdldCAlZFxuIiwNCi0gICAgICAgICAgIFVFRklfUEFZTE9BRF9DT05GSUdfVkVSU0lPTiwg Y29uZmlnLT5WZXJzaW9uKSk7DQotICAgIENwdURlYWRMb29wICgpOw0KLSAgfQ0KLSAgcmV0dXJu IGNvbmZpZzsNCisNCisgIGlmIChjb25maWctPlZlcnNpb24gPT0gVUVGSV9QQVlMT0FEX0NPTkZJ R19WRVJTSU9OMSB8fA0KKyAgICAgIGNvbmZpZy0+VmVyc2lvbiA9PSBVRUZJX1BBWUxPQURfQ09O RklHX1ZFUlNJT04yKQ0KKyAgICByZXR1cm4gY29uZmlnOw0KKw0KKyAgREVCVUcoKERFQlVHX0VS Uk9SLA0KKyAgICAgICAgICJFeHBlY3QgcGF5bG9hZCBjb25maWcgdmVyc2lvbiAlMDE2bHggb3Ig JTAxNmx4LCBidXQgZ2V0ICUwMTZseFxuIiwNCisgICAgICAgICBVRUZJX1BBWUxPQURfQ09ORklH X1ZFUlNJT04xLCBVRUZJX1BBWUxPQURfQ09ORklHX1ZFUlNJT04yLA0KKyAgICAgICAgIGNvbmZp Zy0+VmVyc2lvbikpOw0KKyAgQ3B1RGVhZExvb3AoKTsNCisgIHdoaWxlICgxKQ0KKyAgICA7DQog fQ0KIA0KIC8vIEFsaWduIHRoZSBhZGRyZXNzIGFuZCBhZGQgbWVtb3J5IHJhbmcgdG8gTWVtSW5m b0NhbGxiYWNrIEBAIC01NCw2ICs3OCw1NyBAQCB2b2lkIEFkZE1lbW9yeVJhbmdlKElOIEJMX01F TV9JTkZPX0NBTExCQUNLIE1lbUluZm9DYWxsYmFjaywgSU4gVUlOVE4gc3RhcnQsDQogICBNZW1J bmZvQ2FsbGJhY2soJk1lbW9yeU1hcCwgTlVMTCk7DQogfQ0KIA0KK2NvbnN0IGNoYXIqIGNtZGxp bmVfbmV4dChjb25zdCBjaGFyKiBjbWRsaW5lLCBjb25zdCBjaGFyKiogb3B0aW9uKSB7DQorICAv LyBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIHdlJ3JlIGRvbmUNCisgIGlmICghY21kbGluZSB8 fCAqY21kbGluZSA9PSAnXDAnKSByZXR1cm4gTlVMTDsNCisNCisgIC8vIHNraXAgYW55IGxlYWRp bmcgd2hpdGVzcGFjZQ0KKyAgd2hpbGUgKGlzc3BhY2UoKmNtZGxpbmUpKSBjbWRsaW5lKys7DQor DQorICAvLyBpZiB3ZSd2ZSBoaXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLCB3ZSdyZSBkb25lICBp ZiAoKmNtZGxpbmUgPT0gDQorICdcMCcpIHJldHVybiBOVUxMOw0KKw0KKyAgKm9wdGlvbiA9IGNt ZGxpbmU7DQorDQorICAvLyBmaW5kIHRoZSBlbmQgb2YgdGhpcyBvcHRpb24gb3IgdGhlIHN0cmlu ZyAgd2hpbGUgDQorICghaXNzcGFjZSgqY21kbGluZSkgJiYgKmNtZGxpbmUgIT0gJ1wwJykgY21k bGluZSsrOw0KKw0KKyAgLy8gY21kbGluZSBwb2ludHMgdG8gdGhlIHdoaXRlc3BhY2Ugb3IgZW5k IG9mIHN0cmluZw0KKyAgcmV0dXJuIGNtZGxpbmU7DQorfQ0KKw0KK2ludCBjbWRsaW5lX2ludHMo Y29uc3QgY2hhciogb3B0aW9uLCB1aW50NjRfdCBhcmdzW10sIGludCBtYXgpIHsNCisgIC8vIHNr aXAgYW55IGxlYWRpbmcgdGV4dCB1cCB0byBhbiAnPScNCisgIGNvbnN0IGNoYXIqIHMgPSBvcHRp b247DQorICB3aGlsZSAoMSkgew0KKyAgICBjb25zdCBjaGFyIGMgPSAqcysrOw0KKyAgICBpZiAo YyA9PSAnPScpIGJyZWFrOw0KKw0KKyAgICBpZiAoYyA9PSAnXDAnIHx8IGlzc3BhY2UoYykpIHsN CisgICAgICBzID0gb3B0aW9uOw0KKyAgICAgIGJyZWFrOw0KKyAgICB9DQorICB9DQorDQorICBm b3IgKGludCBpID0gMDsgaSA8IG1heDsgaSsrKSB7DQorICAgIGNoYXIqIGVuZDsNCisgICAgYXJn c1tpXSA9IHBhcnNlX2ludChzLCAmZW5kKTsNCisNCisgICAgLy8gZW5kIG9mIHN0cmluZyBvciBl bmQgb2YgdGhlIG9wdGlvbj8NCisgICAgaWYgKCplbmQgPT0gJ1wwJyB8fCBpc3NwYWNlKCplbmQp KSByZXR1cm4gaSArIDE7DQorDQorICAgIC8vIG5vdCBzZXBhcmF0b3I/IHNpZ25hbCBhbiBlcnJv ciBpZiB3ZSBoYXZlIGNvbnN1bWVkIGFueSBpbnRzLA0KKyAgICAvLyBvdGhlcndpc2UgcmV0dXJu IDAgc2F5aW5nIHRoYXQgbm9uZSB3ZXJlIGZvdW5kDQorICAgIGlmICgqZW5kICE9ICcsJykgcmV0 dXJuIGkgPT0gMCA/IDAgOiAtMTsNCisNCisgICAgLy8gc2tpcCB0aGUgLCBhbmQgZ2V0IHRoZSBu ZXh0IHZhbHVlDQorICAgIHMgPSBlbmQgKyAxOw0KKyAgfQ0KKw0KKyAgLy8gdG9vIG1hbnkgdmFs dWVzIQ0KKyAgcmV0dXJuIC0xOw0KK30NCisNCiAvKioNCiAgIEFjcXVpcmUgdGhlIG1lbW9yeSBp bmZvcm1hdGlvbiBmcm9tIHRoZSBsaW51eGJvb3QgdGFibGUgaW4gbWVtb3J5Lg0KIA0KQEAgLTY3 LDIwICsxNDIsNTAgQEAgdm9pZCBBZGRNZW1vcnlSYW5nZShJTiBCTF9NRU1fSU5GT19DQUxMQkFD SyBNZW1JbmZvQ2FsbGJhY2ssIElOIFVJTlROIHN0YXJ0LCAgUkVUVVJOX1NUQVRVUyAgRUZJQVBJ ICBQYXJzZU1lbW9yeUluZm8oSU4gQkxfTUVNX0lORk9fQ0FMTEJBQ0sgTWVtSW5mb0NhbGxiYWNr LCBJTiBWT0lEKiBQYXJhbXMpIHsNCi0gIFVlZmlQYXlsb2FkQ29uZmlnKiBjb25maWc7DQotICBp bnQgaTsNCisgIGNvbnN0IFVlZmlQYXlsb2FkQ29uZmlnKiBjb25maWcgPSBHZXRVZWZpUGF5TG9h ZENvbmZpZygpOyAgaWYgDQorICghY29uZmlnKSB7DQorICAgIERFQlVHKA0KKyAgICAgICAgKERF QlVHX0VSUk9SLCAiUGFyc2VNZW1vcnlJbmZvOiBDb3VsZCBub3QgZmluZCBVRUZJIFBheWxvYWQg Y29uZmlnXG4iKSk7DQorICAgIHJldHVybiBSRVRVUk5fU1VDQ0VTUzsNCisgIH0NCisNCisgIGlm IChjb25maWctPlZlcnNpb24gPT0gVUVGSV9QQVlMT0FEX0NPTkZJR19WRVJTSU9OMSkgew0KKyAg ICBjb25zdCBVZWZpUGF5bG9hZENvbmZpZ1YxKiBjb25maWcxID0gJmNvbmZpZy0+Y29uZmlnLnYx Ow0KKyAgICBERUJVRygNCisgICAgICAgIChERUJVR19JTkZPLCAiTWVtb3J5TWFwICNlbnRyaWVz OiAlZFxuIiwgDQorIGNvbmZpZzEtPk51bU1lbW9yeU1hcEVudHJpZXMpKTsNCisNCisgICAgZm9y IChpbnQgaSA9IDA7IGkgPCBjb25maWcxLT5OdW1NZW1vcnlNYXBFbnRyaWVzOyBpKyspIHsNCisg ICAgICBjb25zdCBNZW1vcnlNYXBFbnRyeSogZW50cnkgPSAmY29uZmlnMS0+TWVtb3J5TWFwRW50 cmllc1tpXTsNCisgICAgICBERUJVRygoREVCVUdfSU5GTywgIlN0YXJ0OiAweCVseCBFbmQ6IDB4 JWx4IFR5cGU6JWRcbiIsIGVudHJ5LT5TdGFydCwNCisgICAgICAgICAgICAgZW50cnktPkVuZCwg ZW50cnktPlR5cGUpKTsNCisgICAgICBBZGRNZW1vcnlSYW5nZShNZW1JbmZvQ2FsbGJhY2ssIGVu dHJ5LT5TdGFydCwgZW50cnktPkVuZCwgZW50cnktPlR5cGUpOw0KKyAgICB9DQorICB9IGVsc2UN CiANCi0gIGNvbmZpZyA9IEdldFVlZmlQYXlMb2FkQ29uZmlnKCk7DQorICAgICAgaWYgKGNvbmZp Zy0+VmVyc2lvbiA9PSBVRUZJX1BBWUxPQURfQ09ORklHX1ZFUlNJT04yKSB7DQorICAgIGNvbnN0 IGNoYXIqIGNtZGxpbmUgPSBjb25maWctPmNvbmZpZy52Mi5jbWRsaW5lOw0KKyAgICBjb25zdCBj aGFyKiBvcHRpb247DQorICAgIHVpbnQ2NF90IGFyZ3NbM107DQogDQotICBERUJVRygoREVCVUdf SU5GTywgIk1lbW9yeU1hcCAjZW50cmllczogJWRcbiIsIGNvbmZpZy0+TnVtTWVtb3J5TWFwRW50 cmllcykpOw0KKyAgICAvLyBsb29rIGZvciB0aGUgbWVtPXN0YXJ0LGVuZCx0eXBlDQorICAgIHdo aWxlICgoY21kbGluZSA9IGNtZGxpbmVfbmV4dChjbWRsaW5lLCAmb3B0aW9uKSkpIHsNCisgICAg ICBpZiAoc3RybmNtcChvcHRpb24sICJtZW09IiwgNCkgIT0gMCkgY29udGludWU7DQogDQotICBN ZW1vcnlNYXBFbnRyeSogZW50cnkgPSAmY29uZmlnLT5NZW1vcnlNYXBFbnRyaWVzWzBdOw0KLSAg Zm9yIChpID0gMDsgaSA8IGNvbmZpZy0+TnVtTWVtb3J5TWFwRW50cmllczsgaSsrKSB7DQotICAg IERFQlVHKChERUJVR19JTkZPLCAiU3RhcnQ6IDB4JWx4IEVuZDogMHglbHggVHlwZTolZFxuIiwg ZW50cnktPlN0YXJ0LA0KLSAgICAgICAgICAgZW50cnktPkVuZCwgZW50cnktPlR5cGUpKTsNCi0g ICAgQWRkTWVtb3J5UmFuZ2UoTWVtSW5mb0NhbGxiYWNrLCBlbnRyeS0+U3RhcnQsIGVudHJ5LT5F bmQsIGVudHJ5LT5UeXBlKTsNCi0gICAgZW50cnkrKzsNCisgICAgICBpZiAoY21kbGluZV9pbnRz KG9wdGlvbiwgYXJncywgMykgIT0gMykgew0KKyAgICAgICAgREVCVUcoKERFQlVHX0VSUk9SLCAi UGFyc2UgZXJyb3I6ICclYSdcbiIsIG9wdGlvbikpOw0KKyAgICAgICAgY29udGludWU7DQorICAg ICAgfQ0KKw0KKyAgICAgIGNvbnN0IHVpbnQ2NF90IHN0YXJ0ID0gYXJnc1swXTsNCisgICAgICBj b25zdCB1aW50NjRfdCBlbmQgPSBhcmdzWzFdOw0KKyAgICAgIGNvbnN0IHVpbnQ2NF90IHR5cGUg PSBhcmdzWzJdOw0KKw0KKyAgICAgIERFQlVHKA0KKyAgICAgICAgICAoREVCVUdfSU5GTywgIlN0 YXJ0OiAweCVseCBFbmQ6IDB4JWx4IFR5cGU6JWRcbiIsIHN0YXJ0LCBlbmQsIHR5cGUpKTsNCisg ICAgICBBZGRNZW1vcnlSYW5nZShNZW1JbmZvQ2FsbGJhY2ssIHN0YXJ0LCBlbmQsIHR5cGUpOw0K KyAgICB9DQogICB9DQorDQogICByZXR1cm4gUkVUVVJOX1NVQ0NFU1M7DQogfQ0KIA0KQEAgLTk2 LDE0ICsyMDEsNTIgQEAgUGFyc2VNZW1vcnlJbmZvKElOIEJMX01FTV9JTkZPX0NBTExCQUNLIE1l bUluZm9DYWxsYmFjaywgSU4gVk9JRCogUGFyYW1zKSB7ICBSRVRVUk5fU1RBVFVTICBFRklBUEkg IFBhcnNlU3lzdGVtVGFibGUoT1VUIFNZU1RFTV9UQUJMRV9JTkZPKiBTeXN0ZW1UYWJsZUluZm8p IHsNCi0gIFVlZmlQYXlsb2FkQ29uZmlnKiBjb25maWc7DQorICBjb25zdCBVZWZpUGF5bG9hZENv bmZpZyogY29uZmlnID0gR2V0VWVmaVBheUxvYWRDb25maWcoKTsgIGlmIA0KKyAoIWNvbmZpZykg ew0KKyAgICBERUJVRygoREVCVUdfRVJST1IsDQorICAgICAgICAgICAiUGFyc2VTeXN0ZW1UYWJs ZTogQ291bGQgbm90IGZpbmQgVUVGSSBQYXlsb2FkIGNvbmZpZ1xuIikpOw0KKyAgICByZXR1cm4g UkVUVVJOX1NVQ0NFU1M7DQorICB9DQogDQotICBjb25maWcgPSBHZXRVZWZpUGF5TG9hZENvbmZp ZygpOw0KLSAgU3lzdGVtVGFibGVJbmZvLT5BY3BpVGFibGVCYXNlID0gY29uZmlnLT5BY3BpQmFz ZTsNCi0gIFN5c3RlbVRhYmxlSW5mby0+QWNwaVRhYmxlU2l6ZSA9IGNvbmZpZy0+QWNwaVNpemU7 DQorICBpZiAoY29uZmlnLT5WZXJzaW9uID09IFVFRklfUEFZTE9BRF9DT05GSUdfVkVSU0lPTjEp IHsNCisgICAgY29uc3QgVWVmaVBheWxvYWRDb25maWdWMSogY29uZmlnMSA9ICZjb25maWctPmNv bmZpZy52MTsNCisgICAgU3lzdGVtVGFibGVJbmZvLT5BY3BpVGFibGVCYXNlID0gY29uZmlnMS0+ QWNwaUJhc2U7DQorICAgIFN5c3RlbVRhYmxlSW5mby0+QWNwaVRhYmxlU2l6ZSA9IGNvbmZpZzEt PkFjcGlTaXplOw0KIA0KLSAgU3lzdGVtVGFibGVJbmZvLT5TbWJpb3NUYWJsZUJhc2UgPSBjb25m aWctPlNtYmlvc0Jhc2U7DQotICBTeXN0ZW1UYWJsZUluZm8tPlNtYmlvc1RhYmxlU2l6ZSA9IGNv bmZpZy0+U21iaW9zU2l6ZTsNCisgICAgU3lzdGVtVGFibGVJbmZvLT5TbWJpb3NUYWJsZUJhc2Ug PSBjb25maWcxLT5TbWJpb3NCYXNlOw0KKyAgICBTeXN0ZW1UYWJsZUluZm8tPlNtYmlvc1RhYmxl U2l6ZSA9IGNvbmZpZzEtPlNtYmlvc1NpemU7ICB9IGVsc2UNCisNCisgICAgICBpZiAoY29uZmln LT5WZXJzaW9uID09IFVFRklfUEFZTE9BRF9DT05GSUdfVkVSU0lPTjIpIHsNCisgICAgY29uc3Qg Y2hhciogY21kbGluZSA9IGNvbmZpZy0+Y29uZmlnLnYyLmNtZGxpbmU7DQorICAgIGNvbnN0IGNo YXIqIG9wdGlvbjsNCisgICAgdWludDY0X3QgYXJnc1syXTsNCisNCisgICAgLy8gbG9vayBmb3Ig dGhlIGFjcGkgY29uZmlnDQorICAgIHdoaWxlICgoY21kbGluZSA9IGNtZGxpbmVfbmV4dChjbWRs aW5lLCAmb3B0aW9uKSkpIHsNCisgICAgICBpZiAoc3RybmNtcChvcHRpb24sICJBQ1BJMjA9Iiwg NykgPT0gMCkgew0KKyAgICAgICAgY29uc3QgaW50IGNvdW50ID0gY21kbGluZV9pbnRzKG9wdGlv biwgYXJncywgMik7DQorICAgICAgICBpZiAoY291bnQgPCAwKSB7DQorICAgICAgICAgIERFQlVH KChERUJVR19FUlJPUiwgIlBhcnNlIGVycm9yOiAnJWEnXG4iLCBvcHRpb24pKTsNCisgICAgICAg ICAgY29udGludWU7DQorICAgICAgICB9DQorDQorICAgICAgICBpZiAoY291bnQgPiAwKSBTeXN0 ZW1UYWJsZUluZm8tPkFjcGlUYWJsZUJhc2UgPSBhcmdzWzBdOw0KKyAgICAgICAgaWYgKGNvdW50 ID4gMSkgU3lzdGVtVGFibGVJbmZvLT5BY3BpVGFibGVTaXplID0gYXJnc1sxXTsNCisgICAgICB9 DQorDQorICAgICAgaWYgKHN0cm5jbXAob3B0aW9uLCAiU01CSU9TPSIsIDcpID09IDApIHsNCisg ICAgICAgIGNvbnN0IGludCBjb3VudCA9IGNtZGxpbmVfaW50cyhvcHRpb24sIGFyZ3MsIDIpOw0K KyAgICAgICAgaWYgKGNvdW50IDwgMCkgew0KKyAgICAgICAgICBERUJVRygoREVCVUdfRVJST1Is ICJQYXJzZSBlcnJvcjogJyVhJ1xuIiwgb3B0aW9uKSk7DQorICAgICAgICAgIGNvbnRpbnVlOw0K KyAgICAgICAgfQ0KKw0KKyAgICAgICAgaWYgKGNvdW50ID4gMCkgU3lzdGVtVGFibGVJbmZvLT5T bWJpb3NUYWJsZUJhc2UgPSBhcmdzWzBdOw0KKyAgICAgICAgaWYgKGNvdW50ID4gMSkgU3lzdGVt VGFibGVJbmZvLT5TbWJpb3NUYWJsZVNpemUgPSBhcmdzWzFdOw0KKyAgICAgIH0NCisgICAgfQ0K KyAgfQ0KIA0KICAgcmV0dXJuIFJFVFVSTl9TVUNDRVNTOw0KIH0NCkBAIC0xMjAsMTUgKzI2Myw1 MiBAQCBQYXJzZVN5c3RlbVRhYmxlKE9VVCBTWVNURU1fVEFCTEVfSU5GTyogU3lzdGVtVGFibGVJ bmZvKSB7ICBSRVRVUk5fU1RBVFVTICBFRklBUEkgIFBhcnNlU2VyaWFsSW5mbyhPVVQgU0VSSUFM X1BPUlRfSU5GTyogU2VyaWFsUG9ydEluZm8pIHsNCi0gIFVlZmlQYXlsb2FkQ29uZmlnKiBjb25m aWc7DQotICBjb25maWcgPSBHZXRVZWZpUGF5TG9hZENvbmZpZygpOw0KLQ0KLSAgU2VyaWFsUG9y dEluZm8tPkJhc2VBZGRyID0gY29uZmlnLT5TZXJpYWxDb25maWcuQmFzZUFkZHI7DQotICBTZXJp YWxQb3J0SW5mby0+UmVnV2lkdGggPSBjb25maWctPlNlcmlhbENvbmZpZy5SZWdXaWR0aDsNCi0g IFNlcmlhbFBvcnRJbmZvLT5UeXBlID0gY29uZmlnLT5TZXJpYWxDb25maWcuVHlwZTsNCi0gIFNl cmlhbFBvcnRJbmZvLT5CYXVkID0gY29uZmlnLT5TZXJpYWxDb25maWcuQmF1ZDsNCi0gIFNlcmlh bFBvcnRJbmZvLT5JbnB1dEhlcnR6ID0gY29uZmlnLT5TZXJpYWxDb25maWcuSW5wdXRIZXJ0ejsN Ci0gIFNlcmlhbFBvcnRJbmZvLT5VYXJ0UGNpQWRkciA9IGNvbmZpZy0+U2VyaWFsQ29uZmlnLlVh cnRQY2lBZGRyOw0KKyAgLy8gZmlsbCBpbiBzb21lIHJlYXNvbmFibGUgZGVmYXVsdHMNCisgIFNl cmlhbFBvcnRJbmZvLT5CYXNlQWRkciA9IDB4M2Y4Ow0KKyAgU2VyaWFsUG9ydEluZm8tPlJlZ1dp ZHRoID0gMTsNCisgIFNlcmlhbFBvcnRJbmZvLT5UeXBlID0gMTsgIC8vIHVlZmkuU2VyaWFsUG9y dFR5cGVJTyAgDQorIFNlcmlhbFBvcnRJbmZvLT5CYXVkID0gMTE1MjAwOyAgU2VyaWFsUG9ydElu Zm8tPklucHV0SGVydHogPSAxODQzMjAwOyAgDQorIFNlcmlhbFBvcnRJbmZvLT5VYXJ0UGNpQWRk ciA9IDA7DQorDQorICBjb25zdCBVZWZpUGF5bG9hZENvbmZpZyogY29uZmlnID0gR2V0VWVmaVBh eUxvYWRDb25maWcoKTsgIGlmIA0KKyAoIWNvbmZpZykgew0KKyAgICBERUJVRygoREVCVUdfRVJS T1IsICJQYXJzZVNlcmlhbEluZm86IHVzaW5nIGRlZmF1bHQgY29uZmlnXG4iKSk7DQorICAgIHJl dHVybiBSRVRVUk5fU1VDQ0VTUzsNCisgIH0NCisNCisgIGlmIChjb25maWctPlZlcnNpb24gPT0g VUVGSV9QQVlMT0FEX0NPTkZJR19WRVJTSU9OMSkgew0KKyAgICBjb25zdCBVZWZpUGF5bG9hZENv bmZpZ1YxKiBjb25maWcxID0gJmNvbmZpZy0+Y29uZmlnLnYxOw0KKyAgICBTZXJpYWxQb3J0SW5m by0+QmFzZUFkZHIgPSBjb25maWcxLT5TZXJpYWxDb25maWcuQmFzZUFkZHI7DQorICAgIFNlcmlh bFBvcnRJbmZvLT5SZWdXaWR0aCA9IGNvbmZpZzEtPlNlcmlhbENvbmZpZy5SZWdXaWR0aDsNCisg ICAgU2VyaWFsUG9ydEluZm8tPlR5cGUgPSBjb25maWcxLT5TZXJpYWxDb25maWcuVHlwZTsNCisg ICAgU2VyaWFsUG9ydEluZm8tPkJhdWQgPSBjb25maWcxLT5TZXJpYWxDb25maWcuQmF1ZDsNCisg ICAgU2VyaWFsUG9ydEluZm8tPklucHV0SGVydHogPSBjb25maWcxLT5TZXJpYWxDb25maWcuSW5w dXRIZXJ0ejsNCisgICAgU2VyaWFsUG9ydEluZm8tPlVhcnRQY2lBZGRyID0gY29uZmlnMS0+U2Vy aWFsQ29uZmlnLlVhcnRQY2lBZGRyOw0KKyAgfSBlbHNlDQorDQorICAgICAgaWYgKGNvbmZpZy0+ VmVyc2lvbiA9PSBVRUZJX1BBWUxPQURfQ09ORklHX1ZFUlNJT04yKSB7DQorICAgIGNvbnN0IGNo YXIqIGNtZGxpbmUgPSBjb25maWctPmNvbmZpZy52Mi5jbWRsaW5lOw0KKyAgICBjb25zdCBjaGFy KiBvcHRpb247DQorICAgIHVpbnQ2NF90IGFyZ3NbNl0gPSB7fTsNCisNCisgICAgd2hpbGUgKChj bWRsaW5lID0gY21kbGluZV9uZXh0KGNtZGxpbmUsICZvcHRpb24pKSkgew0KKyAgICAgIGlmIChz dHJuY21wKG9wdGlvbiwgInNlcmlhbD0iLCA3KSAhPSAwKSBjb250aW51ZTsNCisNCisgICAgICBj b25zdCBpbnQgY291bnQgPSBjbWRsaW5lX2ludHMob3B0aW9uLCBhcmdzLCA2KTsNCisgICAgICBp ZiAoY291bnQgPCAwKSB7DQorICAgICAgICBERUJVRygoREVCVUdfRVJST1IsICJQYXJzZSBlcnJv cjogJWFcbiIsIG9wdGlvbikpOw0KKyAgICAgICAgY29udGludWU7DQorICAgICAgfQ0KKw0KKyAg ICAgIGlmIChjb3VudCA+IDApIFNlcmlhbFBvcnRJbmZvLT5CYXVkID0gYXJnc1swXTsNCisgICAg ICBpZiAoY291bnQgPiAxKSBTZXJpYWxQb3J0SW5mby0+QmFzZUFkZHIgPSBhcmdzWzFdOw0KKyAg ICAgIGlmIChjb3VudCA+IDIpIFNlcmlhbFBvcnRJbmZvLT5SZWdXaWR0aCA9IGFyZ3NbMl07DQor ICAgICAgaWYgKGNvdW50ID4gMykgU2VyaWFsUG9ydEluZm8tPlR5cGUgPSBhcmdzWzNdOw0KKyAg ICAgIGlmIChjb3VudCA+IDQpIFNlcmlhbFBvcnRJbmZvLT5JbnB1dEhlcnR6ID0gYXJnc1s0XTsN CisgICAgICBpZiAoY291bnQgPiA1KSBTZXJpYWxQb3J0SW5mby0+VWFydFBjaUFkZHIgPSBhcmdz WzVdOw0KKyAgICB9DQorICB9DQogDQogICByZXR1cm4gUkVUVVJOX1NVQ0NFU1M7DQogfQ0KLS0N CjIuMzIuMC40MDIuZzU3YmI0NDU1NzYtZ29vZw0KDQoNCg0KDQoNCg0K