From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-002e3701.pphosted.com (mx0a-002e3701.pphosted.com [148.163.147.86]) by mx.groups.io with SMTP id smtpd.web08.28769.1612149659931985627 for ; Sun, 31 Jan 2021 19:21:00 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@hpe.com header.s=pps0720 header.b=iPtVVT9I; spf=pass (domain: hpe.com, ip: 148.163.147.86, mailfrom: prvs=06661bf0a6=abner.chang@hpe.com) Received: from pps.filterd (m0148663.ppops.net [127.0.0.1]) by mx0a-002e3701.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 1112s5lh001641; Mon, 1 Feb 2021 03:02:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pps0720; bh=pGqauyVCihCSIL355nywhWKWVCPXgi8Z7uIMz9BsGFA=; b=iPtVVT9I0nWJFcBqOX/MEBAVp+/t/GyhjldlQ5eBQvjqoMEAuQzrTuT+xtjW29K2c1XJ iT4OWo5q9pJDZIy0lBenxrjHoyibkHKgFbttjAnQ3XXXhfDf/g+pTxyrxXXTSiACaa90 qYy3NjAUZyb+niZisObsHpyxCV1Uh9TRG9vxyWcjuZU5iUMDImB48uZW/orsI7C45SNI oKQH5GXeiMXAF9dEL9ef2Kr78uA0kaSjEI8ne3rlMXRuefIEox8A/4YhjQdaOKbMgKSg dWau65p84US68R3a2KaZkeD9D7e6Q+j/t8WRMnQhNQ4D70ElI2+R4p9mxepXQlMO+5An kQ== Received: from g4t3425.houston.hpe.com (g4t3425.houston.hpe.com [15.241.140.78]) by mx0a-002e3701.pphosted.com with ESMTP id 36dhjewgrq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 01 Feb 2021 03:02:47 +0000 Received: from G1W8106.americas.hpqcorp.net (g1w8106.austin.hp.com [16.193.72.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by g4t3425.houston.hpe.com (Postfix) with ESMTPS id 3A7529D; Mon, 1 Feb 2021 03:02:46 +0000 (UTC) Received: from G9W8674.americas.hpqcorp.net (16.220.49.0) by G1W8106.americas.hpqcorp.net (16.193.72.61) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 1 Feb 2021 03:02:45 +0000 Received: from G9W9210.americas.hpqcorp.net (2002:10dc:429b::10dc:429b) by G9W8674.americas.hpqcorp.net (2002:10dc:3100::10dc:3100) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 1 Feb 2021 03:02:45 +0000 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (15.241.52.11) by G9W9210.americas.hpqcorp.net (16.220.66.155) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Mon, 1 Feb 2021 03:02:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Dt/AIbt/sBRrKDK6O0Au7Rxz3GVmXOkmEcTOKJPpTGwGUZ+gam6pR04IGSxOV4SD57WPzMzmbQJ4z85klJcGO2kA7Bo33UyFcB7iRzmToowpjGKhrObP8fO8wWyvizIkBEf8ZNGTGYwEdWBQscvU5ISoZZMJLZ2V0c+Fc0L2waiGNhA+uAE6vSuR30PMBEy4im0JtmBjmceeQVWo0r66kiaT9VByxI7RRiNzfByNw0LGNPH2G5cAgs7DSZhQuoCKR+cm3EZUFNnr7mk/gowYhU8qjdpG0qnAdTBWnkNO25z0eBTVxXbE9r1znc9gtPTJRrFQra/62p0pb4rvElA20A== 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=N/nMHjfMzJoac7mDuWmJQ2hT02FJbIq/in8NRLBKXG4=; b=F3pKNGjAoz6BsQhKXc2QTTKHVO1IDyLdaYKReUUD2ApQiM5bvSOvBFPuvllXb8j+iTDtbAQLgT2h/qsRHOgfT3vdyIrIcxg15PQJB8wFS0KdXsmXAELpVe3oFJY0T42u8vUsm8YEnKAQu+K6F41lWNmfxBdZT8f3ocMIm2nj6cCoH4rkA9yt/egcflif3BDl62oyoUSlh8SoN8ZqvX9wbmiNCFrWnYTxorQDWEprQ21dcY4wE5XURN0xJW86C4KwL+5reyix5kvBB3N4LNxoWbebCnLPgDIfSnwF7wlQWWn4rDe+KGFxjnXbW0jSSL/7mdTY1bBCEtGRDfHwdXemCg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Received: from CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:7508::16) by CS1PR8401MB0664.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:750d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3805.17; Mon, 1 Feb 2021 03:02:43 +0000 Received: from CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM ([fe80::adb6:a875:93ca:b54a]) by CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM ([fe80::adb6:a875:93ca:b54a%12]) with mapi id 15.20.3805.025; Mon, 1 Feb 2021 03:02:43 +0000 From: "Abner Chang" To: gaoliming , "devel@edk2.groups.io" CC: 'Leif Lindholm' , "Wang, Nickle (HPS SW)" , 'Michael D Kinney' Subject: Re: [edk2-devel] [PATCH] RedfishPkg/JsonLib: Add JsonLoadString function Thread-Topic: [edk2-devel] [PATCH] RedfishPkg/JsonLib: Add JsonLoadString function Thread-Index: AQKOJICVoFlV+qLptyfZMVad2VVNmajUMV1wgAASMmA= Date: Mon, 1 Feb 2021 03:02:43 +0000 Message-ID: References: <20210129042004.20663-1-abner.chang@hpe.com> <000301d6f83d$410553d0$c30ffb70$@byosoft.com.cn> In-Reply-To: <000301d6f83d$410553d0$c30ffb70$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: byosoft.com.cn; dkim=none (message not signed) header.d=none;byosoft.com.cn; dmarc=none action=none header.from=hpe.com; x-originating-ip: [16.242.247.131] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: b9b2da39-d182-4bb8-7440-08d8c65dd86e x-ms-traffictypediagnostic: CS1PR8401MB0664: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:431; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YvAD8w/INUTLmjuGpAJBpPqPXCTOFUjTgYeZ9awiXbR4MXz3Ey9CFjh2jDN/2tl5wYkHPtOJkfEXiH3UhDFBvvq2ocCNXjtaK9OG7vIsKGWEgxEqaGYTFd3ShK8/VOnE8+2WGj5CSA0In9rzI+CDa5DUKPfoWNHbOYBgylhYwddpH7SD7zcZh7mTcpFAqFbBqJfwPSbTYz8x8IkwCUEyyX/B5BqwkIcDHEsiXoRBFipsqqLFoNCuGcQbJc2Z5Aj+zDXCZK0amgJ8kbolMsMMFiHgrxNVVnnMNeh/enR9SLzl2plMPtOb3DkdbGDucI4lRAx4m3XJvmDERm5uGlTdRH8RyeMsvxG9N3Fqz8J97UaiD80lN+8FWfyOY6dOIph/6vsOKPLD5EFWvX0/HkjqdW7mcWgVMu4oz8r5ZuWRKyPYR3679Rywbt/lwt9XCWa+KLRyW1J8+bR31hSRpefrjaUsi9pthgPDRy73gv5+neckbx2gPYCCvI+yl+RSrN6Rf6gdqXQUWvI71lQhCAqCoI6ArqiKJAX7e+eVV9lEHz/fAWEYPRVlV4cgEtQeFc8bz7yBhdxpSpjxrRsdnMdI6sY90HL+a9cKcf3MOcPUGdw= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(136003)(346002)(366004)(376002)(39860400002)(396003)(316002)(71200400001)(8936002)(33656002)(19627235002)(9686003)(83380400001)(55016002)(54906003)(110136005)(7696005)(26005)(76116006)(186003)(2906002)(53546011)(478600001)(86362001)(6506007)(966005)(66476007)(66446008)(8676002)(66556008)(52536014)(66946007)(4326008)(5660300002)(64756008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?gb2312?B?MWV6YkJ6OWdyVkgxK0tNaW5pTTRZQUZHcnJqQ2QrNzM2WVlYOWtsa01oNXk4?= =?gb2312?B?WEJUb1F2REVPSlBuemJ1YUVGM0JZLzYzWngrZFBabE9MZ3h5TUh5RlFaeDFj?= =?gb2312?B?b1VWeDRsZmNrOENsZm9MaGlSTHE1dEtxSWhsdXdZcGpWZEh1RjJHVGdlOHF1?= =?gb2312?B?NGpXamV1ZUFFRDVtNWM4VTltUmNydS9mQVMrZFhud1g0U3grbW5qK2JLMU12?= =?gb2312?B?cktPbnRSVGpmZ1FtRmlkM09RelFGRVlhd3B6RW04Y2NEdjFLbkhTeHdVUDR2?= =?gb2312?B?TURpTENvK1VRTmRCdnN2bUZjTzk3ZjZPRVhaNVV5bDVBU0RqUHc5a25FTGwz?= =?gb2312?B?TXl6UkU3VEFhWVIyd0N0eTJUd3NrNVZPN08wb0pYY3hzWVhjY3BxSldzbVhK?= =?gb2312?B?SHJkVjRWQWhsV0MwUi84NHFPK25SUkp0amlCcnNtUlBUSGdKQ0ZtV1JNQnZs?= =?gb2312?B?QUVJcDgwK0R0MkU3dU5qWGhIQ2RtamZucjQ4MTZMMjlkMk5ROUM5NWtOR1Y2?= =?gb2312?B?ZGo1aDM1S1VyN0VRdEhXUUl3VktzcTEwT05SVWQ4N0w3ZDhVSHZZN3lmSXBL?= =?gb2312?B?b2gyMndhMExCS212SEpzQ1hnb0drTDI2Vml0VWMyRXl0cGNSSGVYV1prMjA1?= =?gb2312?B?VWM0djJRSm5DTnBHUm5vcnB6S3V0MHJJT3FYVGRmOTM2eUg1ZFJLZGkvWUxu?= =?gb2312?B?emdhUUszUkJ3b3BWRXQ5WTNWV2NFTnU3ZFZwWFoyTm5TRzdBWFVPeGNNTnlN?= =?gb2312?B?S2tselFXcUJvNHV5T1c1d0FXYXVOMldrM25idUduM1pac2lRR2RoME9Ib28x?= =?gb2312?B?V3dvK2hld0h0ZTdJdFp1VFp0Z0tCdFZiSkV1d3VpZlhJQTBMKzNnU2FhVUlv?= =?gb2312?B?eEdPUUF2SVlubWlHYVBZeVJvY1dCb2R1d0JPcklnN3Z3RWwwYjFlUGFVVzhl?= =?gb2312?B?bkphQkZIQ3NQMVBJd1FiL2c4VTEwbCsxM1dmMWF1QVpzd2N0WTB2UEFoYlZo?= =?gb2312?B?ek1Ndk5QWHZoSVNFOE5raEFoOUF3bjlraDE5S0xaQlV4TUc2U3EzMnloRGR6?= =?gb2312?B?UEcrd3E5VWJHVEFicHE4L3JsVXU1UUsxSU80NjcvUUVabU1ud1ZpditFekRV?= =?gb2312?B?MEo2bHhNRFlodFMvb2Yrd1lRbm90RnZrYVZQQWZnYmNOVDFydlFlMmVQVnFC?= =?gb2312?B?bjZrdXRmZktLSWlaYXNmaXUvZ2VuTnVSQzNuZ0VPYUNmY2hGdnJBRUZMZHp4?= =?gb2312?B?QTVwVGw3bDJ5Nzc2dTRXSFl4eEp3OFZMQ2xZVWxvR1J6dld4eXVBSDRtQVpw?= =?gb2312?B?eHVoL0xzKy9OaTFHK2RSMTN3UGNGaU9mWitqeU9WaXlmSXJiS055NE9udXFt?= =?gb2312?B?dmVEYnE3TDVlbWdTQzB0YXFUT1ZPSlJjb2svanJ2OWRQOXpBOWdYVGRvbUJG?= =?gb2312?Q?ngag5nAa?= X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: b9b2da39-d182-4bb8-7440-08d8c65dd86e X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Feb 2021 03:02:43.7820 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: tIUeLDYWtcoviYsB1RYThpBOcVAJtT+ZVBhTLfeQxCmhtOnRYYkfo7RCMLyDJE0Ah/Rqnxl3vvthiQSuCpCalQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CS1PR8401MB0664 X-OriginatorOrg: hpe.com X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.369,18.0.737 definitions=2021-01-31_09:2021-01-29,2021-01-31 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 malwarescore=0 adultscore=0 bulkscore=0 impostorscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 phishscore=0 lowpriorityscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2102010013 Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SXQgbG9hZHMgYSBKU09OIHBheWxvYWQgaW4gdGhlIGZvcm1hdCBvZiBOVUxMIHRlcm1pbmF0ZWQg c3RyaW5nIHRvIGEgSlNPTiBvYmplY3QuIA0KVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGJ5IGVpdGhl ciBlZGsyIFJlZGZpc2ggY2xpZW50IGFwcGxpY2F0aW9ucyBvciBvdGhlciBlZGsyIG1vZHVsZXMg d2hpY2ggbWFuaXB1bGF0ZSBKU09OIHByb3BlcnRpZXMuDQoNClJlZ2FyZHMsDQpBYm5lcg0KDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGdhb2xpbWluZyBbbWFpbHRvOmdh b2xpbWluZ0BieW9zb2Z0LmNvbS5jbl0NCj4gU2VudDogTW9uZGF5LCBGZWJydWFyeSAxLCAyMDIx IDk6NTUgQU0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBDaGFuZywgQWJuZXIgKEhQUyBT Vy9GVyBUZWNobm9sb2dpc3QpDQo+IDxhYm5lci5jaGFuZ0BocGUuY29tPg0KPiBDYzogJ0xlaWYg TGluZGhvbG0nIDxsZWlmQG51dmlhaW5jLmNvbT47IFdhbmcsIE5pY2tsZSAoSFBTIFNXKQ0KPiA8 bmlja2xlLndhbmdAaHBlLmNvbT47ICdNaWNoYWVsIEQgS2lubmV5JyA8bWljaGFlbC5kLmtpbm5l eUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6ILvYuLQ6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIFJlZGZp c2hQa2cvSnNvbkxpYjogQWRkIEpzb25Mb2FkU3RyaW5nDQo+IGZ1bmN0aW9uDQo+IA0KPiBBYm5l cjoNCj4gICBXaGF0J3MgdGhlIHVzYWdlIGZvciB0aGlzIG5ldyBBUEk/DQo+IA0KPiBUaGFua3MN Cj4gTGltaW5nDQo+ID4gLS0tLS3Tyrz+1K28/i0tLS0tDQo+ID4gt6K8/sjLOiBib3VuY2UrMjc5 NTIrNzA4ODYrNDkwNTk1Mys4NzYxMDQ1QGdyb3Vwcy5pbw0KPiA+IDxib3VuY2UrMjc5NTIrNzA4 ODYrNDkwNTk1Mys4NzYxMDQ1QGdyb3Vwcy5pbz4gtPqx7SBBYm5lciBDaGFuZw0KPiA+ILeiy83K sbzkOiAyMDIxxOox1MIyOcjVIDEyOjIwDQo+ID4gytW8/sjLOiBkZXZlbEBlZGsyLmdyb3Vwcy5p bw0KPiA+ILOty806IExlaWYgTGluZGhvbG0gPGxlaWZAbnV2aWFpbmMuY29tPjsgTmlja2xlIFdh bmcNCj4gPiA8bmlja2xlLndhbmdAaHBlLmNvbT47IE1pY2hhZWwgRCBLaW5uZXkNCj4gPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+INb3zOI6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIFJl ZGZpc2hQa2cvSnNvbkxpYjogQWRkIEpzb25Mb2FkU3RyaW5nDQo+ID4gZnVuY3Rpb24NCj4gPg0K PiA+IEFkZCBKc29uTG9hZFN0cmluZyBmdW5jdGlvbiB0byBsb2FkIGEgTlVMTCB0ZXJtaW5hdGVk LXN0cmluZyBKU09ODQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBBYm5lciBDaGFuZyA8YWJuZXIu Y2hhbmdAaHBlLmNvbT4NCj4gPg0KPiA+IENjOiBMZWlmIExpbmRob2xtIDxsZWlmQG51dmlhaW5j LmNvbT4NCj4gPiBDYzogTmlja2xlIFdhbmcgPG5pY2tsZS53YW5nQGhwZS5jb20+DQo+ID4gQ2M6 IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+IC0tLQ0K PiA+ICBSZWRmaXNoUGtnL0luY2x1ZGUvTGlicmFyeS9Kc29uTGliLmggfCAyMSArKysrKysrKysr KysrKysrKysrKysNCj4gPiBSZWRmaXNoUGtnL0xpYnJhcnkvSnNvbkxpYi9Kc29uTGliLmMgfCAy Ng0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDQ3 IGluc2VydGlvbnMoKykNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9SZWRmaXNoUGtnL0luY2x1ZGUv TGlicmFyeS9Kc29uTGliLmgNCj4gPiBiL1JlZGZpc2hQa2cvSW5jbHVkZS9MaWJyYXJ5L0pzb25M aWIuaA0KPiA+IGluZGV4IDNjMTBmNjdkMjcuLjgyY2E0YmFkNjAgMTAwNjQ0DQo+ID4gLS0tIGEv UmVkZmlzaFBrZy9JbmNsdWRlL0xpYnJhcnkvSnNvbkxpYi5oDQo+ID4gKysrIGIvUmVkZmlzaFBr Zy9JbmNsdWRlL0xpYnJhcnkvSnNvbkxpYi5oDQo+ID4gQEAgLTY2NCw2ICs2NjQsMjcgQEAgSnNv bkR1bXBTdHJpbmcgKA0KPiA+ICAgIElOICAgIFVJTlROICAgICAgICAgICAgICAgRmxhZ3MNCj4g PiAgICApOw0KPiA+DQo+ID4gKy8qKg0KPiA+ICsgIENvbnZlcnQgYSBzdHJpbmcgdG8gSlNPTiBv YmplY3QuDQo+ID4gKyAgVGhlIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY29udmVydCBhIE5VTEwgdGVy bWluYXRlZCBVVEY4IGVuY29kZWQNCj4gPiArc3RyaW5nDQo+IHRvDQo+ID4gYSBKU09ODQo+ID4g KyAgdmFsdWUuIE9ubHkgb2JqZWN0IGFuZCBhcnJheSByZXByZXNlbnRlZCBzdHJpbmdzIGNhbiBi ZSBjb252ZXJ0ZWQNCj4gPiBzdWNjZXNzZnVsbHksDQo+ID4gKyAgc2luY2UgdGhleSBhcmUgdGhl IG9ubHkgdmFsaWQgcm9vdCB2YWx1ZXMgb2YgYSBKU09OIHRleHQgZm9yIFVFRkkNCj4gdXNhZ2Uu DQo+ID4gKw0KPiA+ICsgIFJlYWwgbnVtYmVyIGFuZCBudW1iZXIgd2l0aCBleHBvbmVudCBwYXJ0 IGFyZSBub3Qgc3VwcG9ydHRlZCBieSBVRUZJLg0KPiA+ICsNCj4gPiArICBDYWxsZXIgbmVlZHMg dG8gY2xlYW51cCB0aGUgcm9vdCB2YWx1ZSBieSBjYWxsaW5nIEpzb25WYWx1ZUZyZWUoKS4NCj4g PiArDQo+ID4gKyAgQHBhcmFtW2luXSAgIFN0cmluZyAgICAgICAgVGhlIE5VTEwgdGVybWluYXRl ZCBVVEY4IGVuY29kZWQgc3RyaW5nDQo+ID4gdG8gY29udmVydA0KPiA+ICsNCj4gPiArICBAcmV0 dmFsICAgICAgQXJyYXkgSlNPTiB2YWx1ZSBvciBvYmplY3QgSlNPTiB2YWx1ZSwgb3IgTlVMTCB3 aGVuIGFueQ0KPiA+IGVycm9yIG9jY3Vycy4NCj4gPiArDQo+ID4gKyoqLw0KPiA+ICtFREtJSV9K U09OX1ZBTFVFDQo+ID4gK0VGSUFQSQ0KPiA+ICtKc29uTG9hZFN0cmluZyAoDQo+ID4gKyAgSU4g ICBDT05TVCBDSEFSOCogICAgU3RyaW5nDQo+ID4gKyAgKTsNCj4gPiArDQo+ID4gIC8qKg0KPiA+ ICAgIExvYWQgSlNPTiBmcm9tIGEgYnVmZmVyLg0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL1JlZGZp c2hQa2cvTGlicmFyeS9Kc29uTGliL0pzb25MaWIuYw0KPiA+IGIvUmVkZmlzaFBrZy9MaWJyYXJ5 L0pzb25MaWIvSnNvbkxpYi5jDQo+ID4gaW5kZXggMzRmZjM4MWFlZS4uMDBkZWRjMWM2MCAxMDA2 NDQNCj4gPiAtLS0gYS9SZWRmaXNoUGtnL0xpYnJhcnkvSnNvbkxpYi9Kc29uTGliLmMNCj4gPiAr KysgYi9SZWRmaXNoUGtnL0xpYnJhcnkvSnNvbkxpYi9Kc29uTGliLmMNCj4gPiBAQCAtODE5LDYg KzgxOSwzMiBAQCBKc29uRHVtcFN0cmluZyAoDQo+ID4gICAgICByZXR1cm4ganNvbl9kdW1wcygo anNvbl90ICopSnNvblZhbHVlLCBGbGFncyk7ICB9DQo+ID4NCj4gPiArLyoqDQo+ID4gKyAgQ29u dmVydCBhIHN0cmluZyB0byBKU09OIG9iamVjdC4NCj4gPiArICBUaGUgZnVuY3Rpb24gaXMgdXNl ZCB0byBjb252ZXJ0IGEgTlVMTCB0ZXJtaW5hdGVkIFVURjggZW5jb2RlZA0KPiA+ICtzdHJpbmcN Cj4gdG8NCj4gPiBhIEpTT04NCj4gPiArICB2YWx1ZS4gT25seSBvYmplY3QgYW5kIGFycmF5IHJl cHJlc2VudGVkIHN0cmluZ3MgY2FuIGJlIGNvbnZlcnRlZA0KPiA+IHN1Y2Nlc3NmdWxseSwNCj4g PiArICBzaW5jZSB0aGV5IGFyZSB0aGUgb25seSB2YWxpZCByb290IHZhbHVlcyBvZiBhIEpTT04g dGV4dCBmb3IgVUVGSQ0KPiB1c2FnZS4NCj4gPiArDQo+ID4gKyAgUmVhbCBudW1iZXIgYW5kIG51 bWJlciB3aXRoIGV4cG9uZW50IHBhcnQgYXJlIG5vdCBzdXBwb3J0dGVkIGJ5IFVFRkkuDQo+ID4g Kw0KPiA+ICsgIENhbGxlciBuZWVkcyB0byBjbGVhbnVwIHRoZSByb290IHZhbHVlIGJ5IGNhbGxp bmcgSnNvblZhbHVlRnJlZSgpLg0KPiA+ICsNCj4gPiArICBAcGFyYW1baW5dICAgU3RyaW5nICAg ICAgICBUaGUgTlVMTCB0ZXJtaW5hdGVkIFVURjggZW5jb2RlZCBzdHJpbmcNCj4gPiB0byBjb252 ZXJ0DQo+ID4gKw0KPiA+ICsgIEByZXR2YWwgICAgICBBcnJheSBKU09OIHZhbHVlIG9yIG9iamVj dCBKU09OIHZhbHVlLCBvciBOVUxMIHdoZW4gYW55DQo+ID4gZXJyb3Igb2NjdXJzLg0KPiA+ICsN Cj4gPiArKiovDQo+ID4gK0VES0lJX0pTT05fVkFMVUUNCj4gPiArRUZJQVBJDQo+ID4gK0pzb25M b2FkU3RyaW5nICgNCj4gPiArICBJTiAgICBDT05TVCBDSEFSOCogICAgU3RyaW5nDQo+ID4gKyAg KQ0KPiA+ICt7DQo+ID4gKyAganNvbl9lcnJvcl90ICAgIEpzb25FcnJvcjsNCj4gPiArDQo+ID4g KyAgcmV0dXJuIChFREtJSV9KU09OX1ZBTFVFKSBqc29uX2xvYWRzICgoY29uc3QgY2hhciAqKVN0 cmluZywgMCwNCj4gPiAmSnNvbkVycm9yKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgLyoqDQo+ID4g ICAgTG9hZCBKU09OIGZyb20gYSBidWZmZXIuDQo+ID4NCj4gPiAtLQ0KPiA+IDIuMTcuMQ0KPiA+ DQo+ID4NCj4gPg0KPiA+IA0KPiA+DQo+IA0KPiANCg0K