From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (EUR03-VE1-obe.outbound.protection.outlook.com [40.107.5.44]) by mx.groups.io with SMTP id smtpd.web11.479.1617905173081097387 for ; Thu, 08 Apr 2021 11:06:14 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=Rc7Xz02n; spf=pass (domain: arm.com, ip: 40.107.5.44, mailfrom: sami.mujawar@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0vfpSjVbw+aUG0UQi0DgvfOaeudUTXsLzITjFBi2ktM=; b=Rc7Xz02nw2ab2c8nydOrIXNGah1QJDMBZZ8iZmK593APykFtH/qFQInreRSG2lq9ReFG3LBvyyZvN6L0Dz74xqtJ86BSQYTytAoKhTbhuC/xJ+ff6SYlTtNAqsytvgxRWzhqjcuLmbmmmDfO7rqWkSCZNHurh5IJrDdB8ehydr0= Received: from MR2P264CA0062.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:31::26) by AM8PR08MB6595.eurprd08.prod.outlook.com (2603:10a6:20b:365::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.29; Thu, 8 Apr 2021 18:06:05 +0000 Received: from VE1EUR03FT057.eop-EUR03.prod.protection.outlook.com (2603:10a6:500:31:cafe::ef) by MR2P264CA0062.outlook.office365.com (2603:10a6:500:31::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.17 via Frontend Transport; Thu, 8 Apr 2021 18:06:05 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT057.mail.protection.outlook.com (10.152.19.123) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.17 via Frontend Transport; Thu, 8 Apr 2021 18:06:04 +0000 Received: ("Tessian outbound 81a4524e9a48:v90"); Thu, 08 Apr 2021 18:06:04 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 486dd5f4d70da4f8 X-CR-MTA-TID: 64aa7808 Received: from fa15a8a11e78.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 871F42EF-8346-4128-B632-DBC4ACFAC092.1; Thu, 08 Apr 2021 18:05:53 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id fa15a8a11e78.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 08 Apr 2021 18:05:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j8MZ3i2Kq3UQ3NIkGBebpu8ymzr7DjlRVt9TyptLpLXjHZaiN6FPFk3bDCZTJuCM2Ugzt3I5+nS04F8Uy5VW/vYGAJPNs4QJ7dsf3vpzwhBeJuzESvBq7dcdbZhqtb+CoS8XAPm2tveu0AVcbaeGDeJzxz3OJF7robzjNYEw47pZGPxFqV8gj9r8bHC1yMqc92YEfZM/b+CbBLnAtBcxEd5REgM0rQN+QNC4fm3hejhmnvOPjgTAeROm6ox+DAcJ2rVvV6dQXXFAjfQ2MA8Qs4fGbEsUewSdn+RDfEHhqA5SYJy5GSzFtQbk+a2xMcx1KbyAK+67IE+BOt/jDhgPAQ== 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=0vfpSjVbw+aUG0UQi0DgvfOaeudUTXsLzITjFBi2ktM=; b=C1IHqxCXUYssAM06stNJuh4QkjNE2H4i5D+VUmQPyBz1civt3Ms+shMOERUprlqVE6BYo+6tAXBWdjMC94tM5qsv7w4S499aln3R21AlGva/3yh+geIVN9jYyM1iatUtEiOinkUMiRSpyzGnxMgKXd0SCGlai110EYiZqi5FDCzSSE6mmsX0VBrp3Dr/ydKnyTRUlujhSIZLRJ59N/77JNn/DT028FNcPiK/H2zzl9leferLw4WUlYTR+67IUOYhnqOwDPVIp6huGZsze2CI61ytgf9KukiGie4tPPfk7yZBja/UabF9W0itTzIDMjJSnEJLwiiZ8q/kkybUN1nWFA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0vfpSjVbw+aUG0UQi0DgvfOaeudUTXsLzITjFBi2ktM=; b=Rc7Xz02nw2ab2c8nydOrIXNGah1QJDMBZZ8iZmK593APykFtH/qFQInreRSG2lq9ReFG3LBvyyZvN6L0Dz74xqtJ86BSQYTytAoKhTbhuC/xJ+ff6SYlTtNAqsytvgxRWzhqjcuLmbmmmDfO7rqWkSCZNHurh5IJrDdB8ehydr0= Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25) by AS8PR08MB6725.eurprd08.prod.outlook.com (2603:10a6:20b:394::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.17; Thu, 8 Apr 2021 18:05:51 +0000 Received: from AM6PR08MB3784.eurprd08.prod.outlook.com ([fe80::253a:c74d:3408:25ce]) by AM6PR08MB3784.eurprd08.prod.outlook.com ([fe80::253a:c74d:3408:25ce%6]) with mapi id 15.20.3999.034; Thu, 8 Apr 2021 18:05:50 +0000 From: "Sami Mujawar" To: Chandni Cherukuri , "devel@edk2.groups.io" CC: Ard Biesheuvel , Leif Lindholm , nd Subject: Re: [edk2-platforms][PATCH V2 1/7] Platform/ARM/Morello: Add Platform library implementation Thread-Topic: [edk2-platforms][PATCH V2 1/7] Platform/ARM/Morello: Add Platform library implementation Thread-Index: AQHXJwRb7NPFRJJje0a0WL+06TZPaaqrBlSA Date: Thu, 8 Apr 2021 18:05:49 +0000 Message-ID: References: <20210401143537.4799-1-chandni.cherukuri@arm.com> <20210401143537.4799-2-chandni.cherukuri@arm.com> In-Reply-To: <20210401143537.4799-2-chandni.cherukuri@arm.com> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/16.47.21031401 Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [81.131.179.80] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 49c76765-3296-4fbd-dc9b-08d8fab8fa1f x-ms-traffictypediagnostic: AS8PR08MB6725:|AM8PR08MB6595: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 8k5zo7HqU437n2s5AXxoHWZhvq74eilHM4eRA0bSnUffSkoA4lTGropaRF+/Usgrx3/B3TUEpBTMFFUt2u3N3joDEzde3EfbJCcCSK/G7b62NtWrIfIGtGJwxi9CXPfsV6/jwtx2J2iZZSdv3pPkk1KZU6eEgcX4HEvo85O/hxMXHB+2UBCzKpMW5tszuZIytpBUNZ2r0/zx9S38+cmXw9CNovAwufo1blD/6olmUTeIBR6Z/ZJRefQz8ZVn97KBhS/kPGugmX/6V954j+WTWo1QpA4+E6Lc/sjd+jngrABXAv2bOUZvlWTEQe54c+GF0v5o8v8IN960y/BRxhny2XnFYGRoMwDtatE9lVE9e42MgqVPj3W73ozQOfPiA1AzPt27yzqHmApJXkzlpXFDDJu26zLlYFHZyZg2lPvIPE0V/sGOhXNgiq59S8J9giTaqhdhilOoBRWtPoZrQ6+Zn6OKMQyn+lUdst2FogUHtfQz8w3vNEKmdTubUFhjPWttkACiJn/2UPz2EAYyZKSCvL667/oejtlHoCKAr2sGnDaNVqymdPaBc9ZPSes6Ap/Ikds1kX+8rvIyaoHi+BKtA5LP0d07OmjuSdFPI/V2Q5H6Lg3p/pUYBg3tA6mmRYvpuK2L5TIJW0xudT9e5eaY/mPnTrD6s5lF8PGsEe3bUAcqQCjBGd7lVGFUzs2j5Gra X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(376002)(39850400004)(346002)(136003)(396003)(8676002)(8936002)(6486002)(2906002)(71200400001)(19627235002)(478600001)(76116006)(91956017)(86362001)(33656002)(66556008)(66476007)(66446008)(64756008)(30864003)(26005)(36756003)(5660300002)(186003)(66946007)(2616005)(316002)(6512007)(4326008)(54906003)(83380400001)(110136005)(6506007)(38100700001)(45980500001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?L3ZIN3B3bTZ0Vm83cm8yN0ZhWE5scTlJSnc3RjJ4NlUxOUpkUVJ0M1FVVHhM?= =?utf-8?B?aWlwWEl0SVJXWXU5N3hjTFE3VWR3eFFNSEJHYjBRdG9FdG1oNzM0cUVOZnF0?= =?utf-8?B?L3FoZXpCMlBvQlY2K05BSTdVR3krZzg5ZFNhWmt1SStERUFPbkNvTTFSSUkz?= =?utf-8?B?Y2ROaDl1bGIvczFTRUVHVjJ1OFRSUHRRMTZ3RmJCaDI3azFBcENhOTZEeE1q?= =?utf-8?B?VmQ3UnE1NmpsTlhRNE5wMExQRElqb213MVp6MG1EYklLZm5keFg2OVpLdkdT?= =?utf-8?B?VmUzS0NacFc0RHF4U0dDUmRUT0hqMGNGYTZPRXd0UDVsVExTbUpSKzNnaFcw?= =?utf-8?B?M0FxdVZHQ1ZoVVBTcndLU3FsdkZibnBNU1YrRHYzZUxhOEc0Z2xSVzZzNDRl?= =?utf-8?B?QUJXVVY2bHhieUIxc0tWaG9ubHYwNGhlL3RnSENveEtpOFh6YldyNVI0SmJp?= =?utf-8?B?RmJ5KzJNY1NqdmtGSEx4NmFOWUx4VlJ5TkxiSjFtT1BtdlBrOS9VazlROWhh?= =?utf-8?B?QzNNV1lteUtIN2ZVVlNvVEJQTnlvMTVWY05iYW5XdDNQblM2KzF5dGFoTmxW?= =?utf-8?B?WkNUQ0NXcnRVZFU3NmRHOU9IMm1vUnRmTGtQZGpOTzRlQ2VuZWxXNnA5WDNt?= =?utf-8?B?cTlDM1JmMlpQTk04QjZiTzgwTHBOMmpJTWk3a2JDMExscmZsYmxJaUNWc1Nt?= =?utf-8?B?aHFNS1N3UmFYaXVxSUhINyt2cE5qTm1VTEZBWUdPaitKQjQ3b0pvUEpwcUVx?= =?utf-8?B?YlhOTGRXTDI1QXA3Q2xaSHIzbWdnRWk4RzBFbkpweXBmTmtJS1d5bVVzaEp3?= =?utf-8?B?cWx4aU55WUJlTEpnN0MwSUU4UDdBd1BDS1VjTmJKMGFmSU5pQ3FhZDZ3UzdZ?= =?utf-8?B?RGNjSzBNYXpOVVZoMlVmeHZzakhTaUlyTm5adWZRVlN6dkdnWi9JYnp2QzNH?= =?utf-8?B?eG5CcFd0ZUJMK1UwL0FndlJQUmN6TXhVRm1oekxDVE9rS0ZHOU5DWWQrWGlS?= =?utf-8?B?QXl4aHVZSXk5Ni9uY0VwYVNwNUZTM3drMlZsUlNIUEl4VGQ4Y3NWZWF1VFJV?= =?utf-8?B?eGtLOWtuSU8vSXVablRWUE5wL0c0c0k1bVhQaFlETHZ6NEhTMzZYa0haNlVy?= =?utf-8?B?d3B2akxDYVNXUlBCYTM0cXc1ajRmaVM1REluVVRWL3JnbnZZN0NaMEZ2Q3FU?= =?utf-8?B?TUpwUGNIRG0rbGNpa0s3S3RrcWg3Y1JzWXVheDJKSFNna2I1L1BubTFpNGox?= =?utf-8?B?d3FxczlheFh0NFNIcEo2YlY2NDE4TThiL3ZIdVFNSmwrNXhvVkZSVEtjR1lz?= =?utf-8?B?a1N5bmpNOFE1ZENqc0ZFcW9IR1dnSFdnYkZtbFo0OHNjSEFoTjU4a0VxRGU4?= =?utf-8?B?a3V4ekViUUVGMG5JeHUyR2NYN2FVREdxZ1VwVVZ6UVk1Z2FYZmFZVGFFSmZK?= =?utf-8?B?akVFaU9ZcFRJRG0zTmJEUWg4bWFmR3RyNG5sUzBzM2U4TVpheTJmbHA5VG45?= =?utf-8?B?MFBJYWFuaVZXUitqOTVVMDhidllSOTBxZldGR3Q2eGo5QjVqUTRlSE5oWDdQ?= =?utf-8?B?MitUQm1NZGJwcnBRWWVRMWd6dVgvZ0pIMWpZcXdCMVpKMWo0UXIwd0RCc1pl?= =?utf-8?B?Vlo1ZTlIcVBVRWRTT0xYTEppSUw0dkRDd3VRUjRiMU9SUU9NeFpOUlNKTG11?= =?utf-8?B?a3ZYdWJXUkFXeW5tdW1DaFRXWWdUVG1kSzB3QnVPN0FOSkVrVEpCeHVZN09t?= =?utf-8?Q?+WJ7DkBJrG1uy1JpNUr+Y2HMeI7LDj49e6/Xnge?= MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6725 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; Return-Path: Sami.Mujawar@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT057.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: cc3740c5-b0d6-4ae2-d6a4-08d8fab8f19d X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cmQzXAN4FPE5ofLOWQ2r4qpJN/64Q2/VYHRADjKODV/kEJKg4FauG1YExwym2Zej/O9syCUXxStUrfYQoLFD2LWuC5clIi5cGbyoLZATIZraBLiEW07qvtkPJKb3tdoMpn8l+fgCl4qaJiJ4BFtBLMp9RrCzF/Ksxu6QdTZ8t35jUhodHgRL5uVYobezHFXHNiRNiw9fr9YqZapnTl5ukMcHb+bfA7M1A0lbp4Xr9hR4aGn6r+cw3tpnsvO1e1Gy9Vh2SSsWCw6YiybH7Kmme+OGV6C9ZnblMtQj3I9OTCDlWp3iYNf3CIkolPFJ9u0q/rB++NFpTjbZPIB10Tl9raL2kZQzN0S96WBPVKPn7a9qY+Mqv+oUQdnoKk3fL/Ooej0mpzMvo9FXDSBVebf+1aZpzzfkS4By7QDhmQ+1gqGlo6rlIJFQCdoTmGbwzj0TRBxgHx8udLmMsYr6Es4d0KSNrBM23qACGwIBK66dCjFEDjpeVvqczUIy1M7YQDshhaA+hldwUAvVEiRo5t99vFR3wzgbIYenvcNh+KrTCQlbBx5giOoboptRTzPsNQGEJ0uzw2kfIWZ53efqtTTQS7S486ArErr4v0LlRuau2QEc7AaY349u6S4D5pAN1HndUiDvS1lQi8ahJpkzIMBxnWt6Q2oiWX0Pvda8ERSYH9c= X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(39850400004)(346002)(376002)(396003)(136003)(36840700001)(46966006)(356005)(5660300002)(8676002)(36756003)(336012)(316002)(19627235002)(26005)(2906002)(47076005)(6486002)(478600001)(186003)(82740400003)(81166007)(6512007)(110136005)(33656002)(8936002)(2616005)(6506007)(83380400001)(4326008)(70586007)(70206006)(86362001)(36860700001)(82310400003)(30864003)(54906003);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2021 18:06:04.8554 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 49c76765-3296-4fbd-dc9b-08d8fab8fa1f X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT057.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6595 Content-Language: en-GB Content-Type: text/plain; charset="utf-8" Content-ID: <7090259A7FB56544A8D1A354F09CECD0@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 SGkgQ2hhbmRuaSwNCg0KUGxlYXNlIGZpbmQgbXkgcmVzcG9uc2UgaW5saW5lIG1hcmtlZCBbU0FN SV0uDQoNCg0KV2l0aCB0aGF0IGNoYW5nZWQuDQoNClJldmlld2VkLWJ5OiBTYW1pIE11amF3YXIg PHNhbWkubXVqYXdhckBhcm0uY29tPg0KDQpSZWdhcmRzLA0KDQpTYW1pIE11amF3YXINCg0K77u/ T24gMDEvMDQvMjAyMSwgMTU6MzYsICJDaGFuZG5pIENoZXJ1a3VyaSIgPGNoYW5kbmkuY2hlcnVr dXJpQGFybS5jb20+IHdyb3RlOg0KDQogICAgRnJvbTogQW51cmFnIEtvdWwgPGFudXJhZy5rb3Vs QGFybS5jb20+DQoNCiAgICBUaGlzIHBhdGNoIGFkZHMgaW5pdGlhbCBNb3JlbGxvIFBsYXRmb3Jt IExpYnJhcnkgc3VwcG9ydC4NCiAgICBJdCBpbmNsdWRlcyB2aXJ0dWFsIG1lbW9yeSBtYXAgYW5k IGhlbHBlciBmdW5jdGlvbnMgZm9yDQogICAgcGxhdGZvcm0gaW5pdGlhbGl6YXRpb24uDQoNCiAg ICBDby1hdXRob3JlZC1ieTogQ2hhbmRuaSBDaGVydWt1cmkgPGNoYW5kbmkuY2hlcnVrdXJpQGFy bS5jb20+DQogICAgU2lnbmVkLW9mZi1ieTogQ2hhbmRuaSBDaGVydWt1cmkgPGNoYW5kbmkuY2hl cnVrdXJpQGFybS5jb20+DQogICAgLS0tDQogICAgIFBsYXRmb3JtL0FSTS9Nb3JlbGxvL0xpYnJh cnkvUGxhdGZvcm1MaWIvUGxhdGZvcm1MaWIuaW5mICB8ICA1MiArKysrKw0KICAgICBQbGF0Zm9y bS9BUk0vTW9yZWxsby9JbmNsdWRlL01vcmVsbG9QbGF0Zm9ybS5oICAgICAgICAgICAgfCAgNjMg KysrKysrKw0KICAgICBQbGF0Zm9ybS9BUk0vTW9yZWxsby9MaWJyYXJ5L1BsYXRmb3JtTGliL1Bs YXRmb3JtTGliLmMgICAgfCAgOTkgKysrKysrKysrKw0KICAgICBQbGF0Zm9ybS9BUk0vTW9yZWxs by9MaWJyYXJ5L1BsYXRmb3JtTGliL1BsYXRmb3JtTGliTWVtLmMgfCAxOTggKysrKysrKysrKysr KysrKysrKysNCiAgICAgUGxhdGZvcm0vQVJNL01vcmVsbG8vTGlicmFyeS9QbGF0Zm9ybUxpYi9B QXJjaDY0L0hlbHBlci5TIHwgIDgzICsrKysrKysrDQogICAgIDUgZmlsZXMgY2hhbmdlZCwgNDk1 IGluc2VydGlvbnMoKykNCg0KICAgIGRpZmYgLS1naXQgYS9QbGF0Zm9ybS9BUk0vTW9yZWxsby9M aWJyYXJ5L1BsYXRmb3JtTGliL1BsYXRmb3JtTGliLmluZiBiL1BsYXRmb3JtL0FSTS9Nb3JlbGxv L0xpYnJhcnkvUGxhdGZvcm1MaWIvUGxhdGZvcm1MaWIuaW5mDQogICAgbmV3IGZpbGUgbW9kZSAx MDA2NDQNCiAgICBpbmRleCAwMDAwMDAwMDAwMDAuLmMyZDdkYTM3MDFkMg0KICAgIC0tLSAvZGV2 L251bGwNCiAgICArKysgYi9QbGF0Zm9ybS9BUk0vTW9yZWxsby9MaWJyYXJ5L1BsYXRmb3JtTGli L1BsYXRmb3JtTGliLmluZg0KICAgIEBAIC0wLDAgKzEsNTIgQEANCiAgICArIyMgQGZpbGUNCiAg ICArIyAgUGxhdGZvcm0gTGlicmFyeSBmb3IgTW9yZWxsbyBwbGF0Zm9ybS4NCiAgICArIw0KICAg ICsjICBDb3B5cmlnaHQgKGMpIDIwMjEsIEFSTSBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCiAgICArIw0KICAgICsjICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KICAgICsjDQogICAgKyMjDQogICAgKw0KICAgICtbRGVmaW5lc10NCiAgICAr ICBJTkZfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgPSAweDAwMDEwMDFCDQogICAgKyAgQkFT RV9OQU1FICAgICAgICAgICAgICAgICAgICAgID0gQXJtTW9yZWxsb0xpYg0KICAgICsgIEZJTEVf R1VJRCAgICAgICAgICAgICAgICAgICAgICA9IDM2ODUzRDg2LTcyMDAtNDdCNC05NDA4LUU5NjJB MDA5NjNGRA0KICAgICsgIE1PRFVMRV9UWVBFICAgICAgICAgICAgICAgICAgICA9IEJBU0UNCiAg ICArICBWRVJTSU9OX1NUUklORyAgICAgICAgICAgICAgICAgPSAxLjANCiAgICArICBMSUJSQVJZ X0NMQVNTICAgICAgICAgICAgICAgICAgPSBBcm1QbGF0Zm9ybUxpYg0KICAgICsNCiAgICArW1Bh Y2thZ2VzXQ0KICAgICsgIEFybVBrZy9Bcm1Qa2cuZGVjDQogICAgKyAgQXJtUGxhdGZvcm1Qa2cv QXJtUGxhdGZvcm1Qa2cuZGVjDQogICAgKyAgTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMN CiAgICArICBNZGVQa2cvTWRlUGtnLmRlYw0KICAgICsgIFBsYXRmb3JtL0FSTS9Nb3JlbGxvL01v cmVsbG9QbGF0Zm9ybS5kZWMNCiAgICArDQogICAgK1tTb3VyY2VzLmNvbW1vbl0NCiAgICArICBQ bGF0Zm9ybUxpYi5jDQogICAgKyAgUGxhdGZvcm1MaWJNZW0uYw0KICAgICsNCiAgICArW1NvdXJj ZXMuQUFSQ0g2NF0NCiAgICArICBBQXJjaDY0L0hlbHBlci5TIHwgR0NDDQogICAgKw0KICAgICtb Rml4ZWRQY2RdDQogICAgKyAgZ0FybU1vcmVsbG9Ub2tlblNwYWNlR3VpZC5QY2REcmFtQmxvY2sy QmFzZQ0KICAgICsgIGdBcm1Nb3JlbGxvVG9rZW5TcGFjZUd1aWQuUGNkUGNpQnVzTWF4DQogICAg KyAgZ0FybU1vcmVsbG9Ub2tlblNwYWNlR3VpZC5QY2RQY2lCdXNNaW4NCiAgICArICBnQXJtTW9y ZWxsb1Rva2VuU3BhY2VHdWlkLlBjZFBjaUV4cHJlc3NCYXNlQWRkcmVzcw0KICAgICsgIGdBcm1N b3JlbGxvVG9rZW5TcGFjZUd1aWQuUGNkUGNpSW9TaXplDQogICAgKyAgZ0FybU1vcmVsbG9Ub2tl blNwYWNlR3VpZC5QY2RQY2lNbWlvMzJCYXNlDQogICAgKyAgZ0FybU1vcmVsbG9Ub2tlblNwYWNl R3VpZC5QY2RQY2lNbWlvMzJTaXplDQogICAgKyAgZ0FybU1vcmVsbG9Ub2tlblNwYWNlR3VpZC5Q Y2RQY2lNbWlvNjRCYXNlDQogICAgKyAgZ0FybU1vcmVsbG9Ub2tlblNwYWNlR3VpZC5QY2RQY2lN bWlvNjRTaXplDQogICAgKw0KICAgICsgIGdBcm1Ub2tlblNwYWNlR3VpZC5QY2RBcm1QcmltYXJ5 Q29yZQ0KICAgICsgIGdBcm1Ub2tlblNwYWNlR3VpZC5QY2RBcm1QcmltYXJ5Q29yZU1hc2sNCiAg ICArICBnQXJtVG9rZW5TcGFjZUd1aWQuUGNkU3lzdGVtTWVtb3J5QmFzZQ0KICAgICsgIGdBcm1U b2tlblNwYWNlR3VpZC5QY2RTeXN0ZW1NZW1vcnlTaXplDQogICAgKw0KICAgICtbR3VpZHNdDQog ICAgKyAgZ0VmaUhvYkxpc3RHdWlkICAgICAgICAgICMjIENPTlNVTUVTICAjIyBTeXN0ZW1UYWJs ZQ0KICAgICsNCiAgICArW1BwaXNdDQogICAgKyAgZ0FybU1wQ29yZUluZm9QcGlHdWlkDQogICAg ZGlmZiAtLWdpdCBhL1BsYXRmb3JtL0FSTS9Nb3JlbGxvL0luY2x1ZGUvTW9yZWxsb1BsYXRmb3Jt LmggYi9QbGF0Zm9ybS9BUk0vTW9yZWxsby9JbmNsdWRlL01vcmVsbG9QbGF0Zm9ybS5oDQogICAg bmV3IGZpbGUgbW9kZSAxMDA2NDQNCiAgICBpbmRleCAwMDAwMDAwMDAwMDAuLjhiMzIzMzAyNTk1 OA0KICAgIC0tLSAvZGV2L251bGwNCiAgICArKysgYi9QbGF0Zm9ybS9BUk0vTW9yZWxsby9JbmNs dWRlL01vcmVsbG9QbGF0Zm9ybS5oDQogICAgQEAgLTAsMCArMSw2MyBAQA0KICAgICsvKiogQGZp bGUNCiAgICArDQogICAgKyAgQ29weXJpZ2h0IChjKSAyMDIxLCBBUk0gTGltaXRlZC4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQogICAgKw0KICAgICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtUGF0ZW50DQogICAgKyoqLw0KICAgICsNCiAgICArI2lmbmRlZiBNT1JF TExPX1BMQVRGT1JNX0hfDQogICAgKyNkZWZpbmUgTU9SRUxMT19QTEFURk9STV9IXw0KICAgICsN CiAgICArI2RlZmluZSBNT1JFTExPX0RSQU1fQkxPQ0sxX1NJWkUgICAgICAgICAgICAgICBTSVpF XzJHQg0KICAgICsNCiAgICArLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICAgICsvLyBQbGF0Zm9y bSBNZW1vcnkgTWFwDQogICAgKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiAgICArDQogICAgKy8v IFN1YlN5c3RlbSBQZXJpcGhlcmFscyAtIFVBUlQwDQogICAgKyNkZWZpbmUgTU9SRUxMT19VQVJU MF9CQVNFICAgICAgICAgICAgICAgICAgICAgMHgyQTQwMDAwMA0KICAgICsjZGVmaW5lIE1PUkVM TE9fVUFSVDBfU1ogICAgICAgICAgICAgICAgICAgICAgIFNJWkVfNjRLQg0KICAgICsNCiAgICAr Ly8gU3ViU3lzdGVtIFBlcmlwaGVyYWxzIC0gVUFSVDENCiAgICArI2RlZmluZSBNT1JFTExPX1VB UlQxX0JBU0UgICAgICAgICAgICAgICAgICAgICAweDJBNDEwMDAwDQogICAgKyNkZWZpbmUgTU9S RUxMT19VQVJUMV9TWiAgICAgICAgICAgICAgICAgICAgICAgU0laRV82NEtCDQogICAgKw0KICAg ICsvLyBTdWJTeXN0ZW0gUGVyaXBoZXJhbHMgLSBHZW5lcmljIFdhdGNoZG9nDQogICAgKyNkZWZp bmUgTU9SRUxMT19HRU5FUklDX1dET0dfQkFTRSAgICAgICAgICAgICAgMHgyQTQ0MDAwMA0KICAg ICsjZGVmaW5lIE1PUkVMTE9fR0VORVJJQ19XRE9HX1NaICAgICAgICAgICAgICAgIFNJWkVfMTI4 S0INCiAgICArDQogICAgKy8vIFN1YlN5c3RlbSBQZXJpcGhlcmFscyAtIEdJQyg2MDApDQogICAg KyNkZWZpbmUgTU9SRUxMT19HSUNfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAw MA0KICAgICsjZGVmaW5lIE1PUkVMTE9fR0lDUl9CQVNFICAgICAgICAgICAgICAgICAgICAgIDB4 MzAwQzAwMDANCiAgICArI2RlZmluZSBNT1JFTExPX0dJQ19TWiAgICAgICAgICAgICAgICAgICAg ICAgICBTSVpFXzI1NktCDQogICAgKyNkZWZpbmUgTU9SRUxMT19HSUNSX1NaICAgICAgICAgICAg ICAgICAgICAgICAgU0laRV8xTUINCiAgICArDQogICAgKy8vIFN1YlN5c3RlbSBub24tc2VjdXJl IFNSQU0NCiAgICArI2RlZmluZSBNT1JFTExPX05PTl9TRUNVUkVfU1JBTV9CQVNFICAgICAgICAg ICAweDA2MDAwMDAwDQogICAgKyNkZWZpbmUgTU9SRUxMT19OT05fU0VDVVJFX1NSQU1fU1ogICAg ICAgICAgICAgU0laRV82NEtCDQogICAgKw0KICAgICsvLyBBWEkgRXhwYW5zaW9uIHBlcmlwaGVy YWxzDQogICAgKyNkZWZpbmUgTU9SRUxMT19FWFBfUEVSSVBIX0JBU0UgICAgICAgICAgICAgICAg MHgxQzAwMDAwMA0KICAgICsjZGVmaW5lIE1PUkVMTE9fRVhQX1BFUklQSF9CQVNFX1NaICAgICAg ICAgICAgIDB4MTMwMDAwMA0KICAgICsNCiAgICArLy8gUGxhdGZvcm0gaW5mb3JtYXRpb24gc3Ry dWN0dXJlIGJhc2UgYWRkcmVzcw0KICAgICsjZGVmaW5lIE1PUkVMTE9fUExBVF9JTkZPX1NUUlVD VF9CQVNFICAgICAgICAgIE1PUkVMTE9fTk9OX1NFQ1VSRV9TUkFNX0JBU0UNCiAgICArDQogICAg Ky8qDQogICAgKyAqIFBsYXRmb3JtIGluZm9ybWF0aW9uIHN0cnVjdHVyZSBzdG9yZWQgaW4gTm9u LXNlY3VyZSBTUkFNLiBQbGF0Zm9ybQ0KICAgICsgKiBpbmZvcm1hdGlvbiBhcmUgcGFzc2VkIGZy b20gdGhlIHRydXN0ZWQgZmlybXdhcmUgd2l0aCB0aGUgYmVsb3cgc3RydWN0dXJlDQogICAgKyAq IGZvcm1hdC4gVGhlIGVsZW1lbnRzIG9mIE1PUkVMTE9fUExBVF9JTkZPIHNob3VsZCBiZSBhbHdh eXMgaW4gc3luYyB3aXRoDQogICAgKyAqIHRoZSBsb3dlciBsZXZlbCBmaXJtd2FyZS4NCiAgICAr ICovDQogICAgKyNwcmFnbWEgcGFjaygxKQ0KICAgICsNCiAgICArdHlwZWRlZiBzdHJ1Y3Qgew0K ICAgICsgIFVJTlQ2NCAgTG9jYWxEZHJTaXplOyAgLy8vPCBMb2NhbCBERFIgbWVtb3J5IHNpemUg aW4gQnl0ZXMNCiAgICArICBVSU5UNjQgIFJlbW90ZURkclNpemU7IC8vLzwgUmVtb3RlIEREUiBt ZW1vcnkgc2l6ZSBpbiBCeXRlcw0KICAgICsgIFVJTlQ4ICAgU2xhdmVDb3VudDsgICAgLy8vPCBT bGF2ZSBjb3VudCBpbiBDMkMgbW9kZQ0KICAgICsgIFVJTlQ4ICAgTW9kZTsgICAgICAgICAgLy8v PCAwIC0gU2luZ2xlIENoaXAsIDEgLSBDaGlwIHRvIENoaXAgKEMyQykNCiAgICArfSBNT1JFTExP X1BMQVRfSU5GTzsNCiAgICArDQogICAgKyNwcmFnbWEgcGFjaygpDQogICAgKw0KICAgICsjZW5k aWYgLy9NT1JFTExPX1BMQVRGT1JNX0hfDQogICAgZGlmZiAtLWdpdCBhL1BsYXRmb3JtL0FSTS9N b3JlbGxvL0xpYnJhcnkvUGxhdGZvcm1MaWIvUGxhdGZvcm1MaWIuYyBiL1BsYXRmb3JtL0FSTS9N b3JlbGxvL0xpYnJhcnkvUGxhdGZvcm1MaWIvUGxhdGZvcm1MaWIuYw0KICAgIG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQogICAgaW5kZXggMDAwMDAwMDAwMDAwLi41MjMxOGE2MjkxMWENCiAgICAtLS0g L2Rldi9udWxsDQogICAgKysrIGIvUGxhdGZvcm0vQVJNL01vcmVsbG8vTGlicmFyeS9QbGF0Zm9y bUxpYi9QbGF0Zm9ybUxpYi5jDQogICAgQEAgLTAsMCArMSw5OSBAQA0KICAgICsvKiogQGZpbGUN CiAgICArDQogICAgKyAgQ29weXJpZ2h0IChjKSAyMDIxLCBBUk0gTGltaXRlZC4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQogICAgKw0KICAgICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQogICAgKyoqLw0KICAgICsNCiAgICArI2luY2x1ZGUgPExpYnJh cnkvQXJtUGxhdGZvcm1MaWIuaD4NCiAgICArI2luY2x1ZGUgPExpYnJhcnkvQmFzZUxpYi5oPg0K ICAgICsjaW5jbHVkZSA8UHBpL0FybU1wQ29yZUluZm8uaD4NCiAgICArDQogICAgK1NUQVRJQyBB Uk1fQ09SRV9JTkZPIG1Db3JlSW5mb1RhYmxlW10gPSB7DQogICAgKyAgeyAweDAsIDB4MCB9LCAv LyBDbHVzdGVyIDAsIENvcmUgMA0KICAgICsgIHsgMHgwLCAweDEgfSwgLy8gQ2x1c3RlciAwLCBD b3JlIDENCiAgICArICB7IDB4MSwgMHgwIH0sIC8vIENsdXN0ZXIgMSwgQ29yZSAwDQogICAgKyAg eyAweDEsIDB4MSB9ICAvLyBDbHVzdGVyIDEsIENvcmUgMQ0KICAgICt9Ow0KICAgICsNCiAgICAr LyoqDQogICAgKyAgUmV0dXJuIHRoZSBjdXJyZW50IEJvb3QgTW9kZS4NCiAgICArDQogICAgKyAg VGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBib290IHJlYXNvbiBvbiB0aGUgcGxhdGZvcm0uDQog ICAgKw0KICAgICsqKi8NCiAgICArRUZJX0JPT1RfTU9ERQ0KICAgICtBcm1QbGF0Zm9ybUdldEJv b3RNb2RlICgNCiAgICArICBWT0lEDQogICAgKyAgKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIEJP T1RfV0lUSF9GVUxMX0NPTkZJR1VSQVRJT047DQogICAgK30NCiAgICArDQogICAgKy8qKg0KICAg ICsgIEluaXRpYWxpemUgY29udHJvbGxlcnMgdGhhdCBtdXN0IGJlIHNldHVwIGluIHRoZSBub3Jt YWwgd29ybGQuDQogICAgKw0KICAgICsgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSBB cm1QbGF0Zm9ybVBrZy9QZWkgb3IgQXJtUGxhdGZvcm1Qa2cvUGVpL1BsYXRmb3JtUGVpbQ0KICAg ICsgIGluIHRoZSBQRUkgcGhhc2UuDQogICAgKw0KICAgICsgIEBwYXJhbVtpbl0gICBNcElkICBQ cm9jZXNzb3IgSUQNCiAgICArDQogICAgKyoqLw0KICAgICtSRVRVUk5fU1RBVFVTDQogICAgK0Fy bVBsYXRmb3JtSW5pdGlhbGl6ZSAoDQogICAgKyAgSU4gIFVJTlROICAgICAgICAgICAgICAgICAg ICAgTXBJZA0KICAgICsgICkNCiAgICArew0KICAgICsgIHJldHVybiBSRVRVUk5fU1VDQ0VTUzsN CiAgICArfQ0KICAgICsNCiAgICArLyoqDQogICAgKyAgUG9wdWxhdGUgdGhlIFBsYXRmb3JtIGNv cmUgaW5mb3JtYXRpb24uDQogICAgKw0KICAgICsgIFRoaXMgZnVuY3Rpb24gcG9wdWxhdGVzIHRo ZSBBUk1fTVBfQ09SRV9JTkZPX1BQSSB3aXRoIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb3Jlcy4N CiAgICArDQogICAgKyAgQHBhcmFtW291dF0gICBDb3JlQ291bnQgICAgIE51bWJlciBvZiBjb3Jl cw0KICAgICsgIEBwYXJhbVtvdXRdICAgQXJtQ29yZVRhYmxlICBUYWJsZSBjb250YWluaW5nIGlu Zm9ybWF0aW9uIGFib3V0IHRoZSBjb3Jlcw0KICAgICsNCiAgICArKiovDQogICAgK0VGSV9TVEFU VVMNCiAgICArUHJlUGVpQ29yZUdldE1wQ29yZUluZm8gKA0KICAgICsgIE9VVCBVSU5UTiAgICAg ICAgICAgICAgICAgICAqQ29yZUNvdW50LA0KICAgICsgIE9VVCBBUk1fQ09SRV9JTkZPICAgICAg ICAgICAqKkFybUNvcmVUYWJsZQ0KICAgICsgICkNCiAgICArew0KICAgICsgICpDb3JlQ291bnQg PSBzaXplb2YgKG1Db3JlSW5mb1RhYmxlKSAvIHNpemVvZiAoQVJNX0NPUkVfSU5GTyk7DQogICAg KyAgKkFybUNvcmVUYWJsZSA9IG1Db3JlSW5mb1RhYmxlOw0KICAgICsgIHJldHVybiBFRklfU1VD Q0VTUzsNCiAgICArfQ0KICAgICsNCiAgICArU1RBVElDIEFSTV9NUF9DT1JFX0lORk9fUFBJIG1N cENvcmVJbmZvUHBpID0gew0KICAgICsgIFByZVBlaUNvcmVHZXRNcENvcmVJbmZvDQogICAgK307 DQogICAgKw0KICAgICtTVEFUSUMgRUZJX1BFSV9QUElfREVTQ1JJUFRPUiBnUGxhdGZvcm1QcGlU YWJsZVtdID0gew0KICAgICsgIHsNCiAgICArICAgIEVGSV9QRUlfUFBJX0RFU0NSSVBUT1JfUFBJ LA0KICAgICsgICAgJmdBcm1NcENvcmVJbmZvUHBpR3VpZCwNCiAgICArICAgICZtTXBDb3JlSW5m b1BwaQ0KICAgICsgIH0NCiAgICArfTsNCiAgICArDQogICAgKy8qKg0KICAgICsgIFJldHVybiB0 aGUgUGxhdGZvcm0gc3BlY2lmaWMgUFBJcw0KICAgICsNCiAgICArICBUaGlzIGZ1bmN0aW9uIGV4 cG9zZXMgdGhlIE1vcmVsbG8gUGxhdGZvcm0gU3BlY2lmaWMgUFBJcy4NCiAgICArDQogICAgKyAg QHBhcmFtW291dF0gICBQcGlMaXN0U2l6ZSAgU2l6ZSBpbiBCeXRlcyBvZiB0aGUgUGxhdGZvcm0g UFBJIExpc3QNCiAgICArICBAcGFyYW1bb3V0XSAgIFBwaUxpc3QgICAgICBQbGF0Zm9ybSBQUEkg TGlzdA0KICAgICsNCiAgICArKiovDQogICAgK1ZPSUQNCiAgICArQXJtUGxhdGZvcm1HZXRQbGF0 Zm9ybVBwaUxpc3QgKA0KICAgICsgIE9VVCBVSU5UTiAgICAgICAgICAgICAgICAgICAqUHBpTGlz dFNpemUsDQogICAgKyAgT1VUIEVGSV9QRUlfUFBJX0RFU0NSSVBUT1IgICoqUHBpTGlzdA0KICAg ICsgICkNCiAgICArew0KICAgICsgICpQcGlMaXN0U2l6ZSA9IHNpemVvZiAoZ1BsYXRmb3JtUHBp VGFibGUpOw0KICAgICsgICpQcGlMaXN0ID0gZ1BsYXRmb3JtUHBpVGFibGU7DQogICAgK30NCiAg ICBkaWZmIC0tZ2l0IGEvUGxhdGZvcm0vQVJNL01vcmVsbG8vTGlicmFyeS9QbGF0Zm9ybUxpYi9Q bGF0Zm9ybUxpYk1lbS5jIGIvUGxhdGZvcm0vQVJNL01vcmVsbG8vTGlicmFyeS9QbGF0Zm9ybUxp Yi9QbGF0Zm9ybUxpYk1lbS5jDQogICAgbmV3IGZpbGUgbW9kZSAxMDA2NDQNCiAgICBpbmRleCAw MDAwMDAwMDAwMDAuLjU0YTg3MGNmYjNiYQ0KICAgIC0tLSAvZGV2L251bGwNCiAgICArKysgYi9Q bGF0Zm9ybS9BUk0vTW9yZWxsby9MaWJyYXJ5L1BsYXRmb3JtTGliL1BsYXRmb3JtTGliTWVtLmMN CiAgICBAQCAtMCwwICsxLDE5OCBAQA0KICAgICsvKiogQGZpbGUNCiAgICArDQogICAgKyAgQ29w eXJpZ2h0IChjKSAyMDIxLCBBUk0gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQog ICAgKw0KICAgICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50 DQogICAgKyoqLw0KICAgICsNCiAgICArI2luY2x1ZGUgPExpYnJhcnkvQXJtUGxhdGZvcm1MaWIu aD4NCiAgICArI2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCiAgICArI2luY2x1ZGUgPExp YnJhcnkvSG9iTGliLmg+DQogICAgKyNpbmNsdWRlIDxMaWJyYXJ5L01lbW9yeUFsbG9jYXRpb25M aWIuaD4NCiAgICArI2luY2x1ZGUgPE1vcmVsbG9QbGF0Zm9ybS5oPg0KICAgICsNCiAgICArLy8g VGhlIHRvdGFsIG51bWJlciBvZiBkZXNjcmlwdG9ycywgaW5jbHVkaW5nIHRoZSBmaW5hbCAiZW5k LW9mLXRhYmxlIiBkZXNjcmlwdG9yLg0KICAgICsjZGVmaW5lIE1BWF9WSVJUVUFMX01FTU9SWV9N QVBfREVTQ1JJUFRPUlMgIDEyDQogICAgKw0KICAgICsjaWYgIWRlZmluZWQoTURFUEtHX05ERUJV RykNCiAgICArU1RBVElDIENPTlNUIENIQVI4ICpnVGJsQXR0ckRlc2NbXSA9IHsNCiAgICArICAi VU5DQUNIRURfVU5CVUZGRVJFRCAgICAgICAgICAiLA0KICAgICsgICJOT05TRUNVUkVfVU5DQUNI RURfVU5CVUZGRVJFRCIsDQogICAgKyAgIldSSVRFX0JBQ0sgICAgICAgICAgICAgICAgICAgIiwN CiAgICArICAiTk9OU0VDVVJFX1dSSVRFX0JBQ0sgICAgICAgICAiLA0KICAgICsgICJXQl9OT05T SEFSRUFCTEUgICAgICAgICAgICAgICIsDQogICAgKyAgIk5PTlNFQ1VSRV9XQl9OT05TSEFSRUFC TEUgICAgIiwNCiAgICArICAiV1JJVEVfVEhST1VHSCAgICAgICAgICAgICAgICAiLA0KICAgICsg ICJOT05TRUNVUkVfV1JJVEVfVEhST1VHSCAgICAgICIsDQogICAgKyAgIkRFVklDRSAgICAgICAg ICAgICAgICAgICAgICAgIiwNCiAgICArICAiTk9OU0VDVVJFX0RFVklDRSAgICAgICAgICAgICAi DQogICAgK307DQogICAgKyNlbmRpZg0KICAgICsNCiAgICArI2RlZmluZSBMT0dfTUVNKGRlc2Mp IERFQlVHICgoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CiAgICArICAgICAgICAgICAgICAgICAgICAgICAgREVCVUdfRVJST1IsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAg ZGVzYywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAg ICArICAgICAgICAgICAgICAgICAgICAgICAgVmlydHVhbE1lbW9yeVRhYmxlW0luZGV4XS5QaHlz aWNhbEJhc2UsICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgKFZp cnR1YWxNZW1vcnlUYWJsZVtJbmRleF0uUGh5c2ljYWxCYXNlICsgICAgICAgICAgIFwNCiAgICAr ICAgICAgICAgICAgICAgICAgICAgICAgIFZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0uTGVuZ3Ro IC0gMSksICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgVmlydHVh bE1lbW9yeVRhYmxlW0luZGV4XS5MZW5ndGgsICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAg ICAgICAgICAgICAgICAgICAgICAgZ1RibEF0dHJEZXNjW1ZpcnR1YWxNZW1vcnlUYWJsZVtJbmRl eF0uQXR0cmlidXRlc10gIFwNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgKSk7DQogICAg Kw0KICAgICsvKioNCiAgICArICBSZXR1cm5zIHRoZSBWaXJ0dWFsIE1lbW9yeSBNYXAgb2YgdGhl IHBsYXRmb3JtLg0KICAgICsNCiAgICArICBUaGlzIFZpcnR1YWwgTWVtb3J5IE1hcCBpcyB1c2Vk IGJ5IE1lbW9yeUluaXRQZWkgTW9kdWxlIHRvIGluaXRpYWxpemUgdGhlIE1NVQ0KICAgICsgIG9u IHlvdXIgcGxhdGZvcm0uDQogICAgKw0KICAgICsgIEBwYXJhbVtvdXRdIFZpcnR1YWxNZW1vcnlN YXAgQXJyYXkgb2YgQVJNX01FTU9SWV9SRUdJT05fREVTQ1JJUFRPUiBkZXNjcmliaW5nDQogICAg KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIFBoeXNpY2FsLXRvLVZpcnR1YWwgTWVt b3J5IG1hcHBpbmcuIFRoaXMgYXJyYXkNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG11c3QgYmUgZW5kZWQgYnkgYSB6ZXJvLWZpbGxlZCBlbnRyeS4NCiAgICArKiovDQogICAg K1ZPSUQNCiAgICArQXJtUGxhdGZvcm1HZXRWaXJ0dWFsTWVtb3J5TWFwICgNCiAgICArICBPVVQg QVJNX01FTU9SWV9SRUdJT05fREVTQ1JJUFRPUioqIFZpcnR1YWxNZW1vcnlNYXANCiAgICArICAp DQogICAgK3sNCiAgICArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4Ow0K ICAgICsgIEFSTV9NRU1PUllfUkVHSU9OX0RFU0NSSVBUT1IgICogVmlydHVhbE1lbW9yeVRhYmxl Ow0KICAgICsgIEVGSV9SRVNPVVJDRV9BVFRSSUJVVEVfVFlQRSAgICAgUmVzb3VyY2VBdHRyaWJ1 dGVzOw0KICAgICsgIE1PUkVMTE9fUExBVF9JTkZPICAgICAgICAgICAgICogUGxhdEluZm87DQog ICAgKyAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAgICAgICBEcmFtQmxvY2syU2l6ZTsNCiAg ICArDQogICAgKyAgSW5kZXggPSAwOw0KICAgICsgIERyYW1CbG9jazJTaXplID0gMDsNCiAgICAr DQogICAgKyAgUGxhdEluZm8gPSAoTU9SRUxMT19QTEFUX0lORk8gKilNT1JFTExPX1BMQVRfSU5G T19TVFJVQ1RfQkFTRTsNCiAgICArICBpZiAoUGxhdEluZm8tPkxvY2FsRGRyU2l6ZSA+IE1PUkVM TE9fRFJBTV9CTE9DSzFfU0laRSkgew0KICAgICsgICAgRHJhbUJsb2NrMlNpemUgPSBQbGF0SW5m by0+TG9jYWxEZHJTaXplIC0gTU9SRUxMT19EUkFNX0JMT0NLMV9TSVpFOw0KICAgICsgIH0NCiAg ICArDQogICAgKyAgaWYgKERyYW1CbG9jazJTaXplICE9IDApIHsNCiAgICArICAgIFJlc291cmNl QXR0cmlidXRlcyA9DQogICAgKyAgICAgIEVGSV9SRVNPVVJDRV9BVFRSSUJVVEVfUFJFU0VOVCB8 DQogICAgKyAgICAgIEVGSV9SRVNPVVJDRV9BVFRSSUJVVEVfSU5JVElBTElaRUQgfA0KICAgICsg ICAgICBFRklfUkVTT1VSQ0VfQVRUUklCVVRFX1dSSVRFX0NPTUJJTkVBQkxFIHwNCiAgICArICAg ICAgRUZJX1JFU09VUkNFX0FUVFJJQlVURV9XUklURV9USFJPVUdIX0NBQ0hFQUJMRSB8DQogICAg KyAgICAgIEVGSV9SRVNPVVJDRV9BVFRSSUJVVEVfV1JJVEVfQkFDS19DQUNIRUFCTEUgfA0KICAg ICsgICAgICBFRklfUkVTT1VSQ0VfQVRUUklCVVRFX1RFU1RFRDsNCiAgICArDQogICAgKyAgICBC dWlsZFJlc291cmNlRGVzY3JpcHRvckhvYiAoDQogICAgKyAgICAgIEVGSV9SRVNPVVJDRV9TWVNU RU1fTUVNT1JZLA0KICAgICsgICAgICBSZXNvdXJjZUF0dHJpYnV0ZXMsDQogICAgKyAgICAgIEZp eGVkUGNkR2V0NjQgKFBjZERyYW1CbG9jazJCYXNlKSwNCiAgICArICAgICAgRHJhbUJsb2NrMlNp emUNCiAgICArICAgICAgKTsNCiAgICArICB9DQogICAgKw0KICAgICsgIEFTU0VSVCAoVmlydHVh bE1lbW9yeU1hcCAhPSBOVUxMKTsNCiAgICArDQogICAgKyAgVmlydHVhbE1lbW9yeVRhYmxlID0g QWxsb2NhdGVQb29sIChzaXplb2YgKEFSTV9NRU1PUllfUkVHSU9OX0RFU0NSSVBUT1IpICoNCiAg ICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BWF9WSVJUVUFMX01FTU9S WV9NQVBfREVTQ1JJUFRPUlMpOw0KICAgICsgIGlmIChWaXJ0dWFsTWVtb3J5VGFibGUgPT0gTlVM TCkgew0KICAgICsgICAgcmV0dXJuOw0KICAgICsgIH0NCiAgICArDQogICAgKyAgREVCVUcgKCgN CiAgICArICAgIERFQlVHX0VSUk9SLA0KICAgICsgICAgIiBNZW1vcnkgTWFwXG4tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iDQogICAg KyAgICApKTsNCiAgICArICBERUJVRyAoKA0KICAgICsgICAgREVCVUdfRVJST1IsDQogICAgKyAg ICAiRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICA6ICAgICAgICBTVEFSVCAgICAgICAt ICAgICAgICBFTkQgICAgICAgICAiIFwNCiAgICArICAgICJbICAgICAgICBTSVpFICAgICAgICBd IHsgICAgICAgICAgICAgIEFUVFIgICAgICAgICAgICAgfVxuIg0KICAgICsgICAgKSk7DQogICAg Kw0KICAgICsgIC8vIFN1YlN5c3RlbSBQZXJpcGhlcmFscyAtIEdlbmVyaWMgV2F0Y2hkb2cNCiAg ICArICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLlBoeXNpY2FsQmFzZSAgICA9IE1PUkVMTE9f R0VORVJJQ19XRE9HX0JBU0U7DQogICAgKyAgVmlydHVhbE1lbW9yeVRhYmxlW0luZGV4XS5WaXJ0 dWFsQmFzZSAgICAgPSBNT1JFTExPX0dFTkVSSUNfV0RPR19CQVNFOw0KICAgICsgIFZpcnR1YWxN ZW1vcnlUYWJsZVtJbmRleF0uTGVuZ3RoICAgICAgICAgID0gTU9SRUxMT19HRU5FUklDX1dET0df U1o7DQogICAgKyAgVmlydHVhbE1lbW9yeVRhYmxlW0luZGV4XS5BdHRyaWJ1dGVzICAgICAgPSBB Uk1fTUVNT1JZX1JFR0lPTl9BVFRSSUJVVEVfREVWSUNFOw0KICAgICsgIExPR19NRU0gKCJHZW5l cmljIFdhdGNoZG9nICAgICAgICAgICAgICAgIDogMHglMDE2bHggLSAweCUwMTZseCBbIDB4JTAx Nmx4IF0geyAlYSB9XG4iKTsNCiAgICArDQogICAgKyAgLy8gU3ViU3lzdGVtIFBlcmlwaGVyYWxz IC0gR0lDLTYwMA0KICAgICsgIFZpcnR1YWxNZW1vcnlUYWJsZVsrK0luZGV4XS5QaHlzaWNhbEJh c2UgID0gTU9SRUxMT19HSUNfQkFTRTsNCiAgICArICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhd LlZpcnR1YWxCYXNlICAgICA9IE1PUkVMTE9fR0lDX0JBU0U7DQogICAgKyAgVmlydHVhbE1lbW9y eVRhYmxlW0luZGV4XS5MZW5ndGggICAgICAgICAgPSBNT1JFTExPX0dJQ19TWjsNCiAgICArICBW aXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLkF0dHJpYnV0ZXMgICAgICA9IEFSTV9NRU1PUllfUkVH SU9OX0FUVFJJQlVURV9ERVZJQ0U7DQogICAgKyAgTE9HX01FTSAoIkdJQy02MDAgICAgICAgICAg ICAgICAgICAgICAgICAgOiAweCUwMTZseCAtIDB4JTAxNmx4IFsgMHglMDE2bHggXSB7ICVhIH1c biIpOw0KICAgICsNCiAgICArICAvLyBTdWJTeXN0ZW0gUGVyaXBoZXJhbHMgLSBHSUNSLTYwMA0K ICAgICsgIFZpcnR1YWxNZW1vcnlUYWJsZVsrK0luZGV4XS5QaHlzaWNhbEJhc2UgID0gTU9SRUxM T19HSUNSX0JBU0U7DQogICAgKyAgVmlydHVhbE1lbW9yeVRhYmxlW0luZGV4XS5WaXJ0dWFsQmFz ZSAgICAgPSBNT1JFTExPX0dJQ1JfQkFTRTsNCiAgICArICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5k ZXhdLkxlbmd0aCAgICAgICAgICA9IE1PUkVMTE9fR0lDUl9TWjsNCiAgICArICBWaXJ0dWFsTWVt b3J5VGFibGVbSW5kZXhdLkF0dHJpYnV0ZXMgICAgICA9IEFSTV9NRU1PUllfUkVHSU9OX0FUVFJJ QlVURV9ERVZJQ0U7DQogICAgKyAgTE9HX01FTSAoIkdJQ1ItNjAwICAgICAgICAgICAgICAgICAg ICAgICAgOiAweCUwMTZseCAtIDB4JTAxNmx4IFsgMHglMDE2bHggXSB7ICVhIH1cbiIpOw0KICAg ICsNCiAgICArICAvLyBTdWJTeXN0ZW0gbm9uLXNlY3VyZSBTUkFNDQogICAgKyAgVmlydHVhbE1l bW9yeVRhYmxlWysrSW5kZXhdLlBoeXNpY2FsQmFzZSAgPSBNT1JFTExPX05PTl9TRUNVUkVfU1JB TV9CQVNFOw0KICAgICsgIFZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0uVmlydHVhbEJhc2UgICAg ID0gTU9SRUxMT19OT05fU0VDVVJFX1NSQU1fQkFTRTsNCiAgICArICBWaXJ0dWFsTWVtb3J5VGFi bGVbSW5kZXhdLkxlbmd0aCAgICAgICAgICA9IE1PUkVMTE9fTk9OX1NFQ1VSRV9TUkFNX1NaOw0K ICAgICsgIFZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0uQXR0cmlidXRlcyAgICAgID0gQVJNX01F TU9SWV9SRUdJT05fQVRUUklCVVRFX1VOQ0FDSEVEX1VOQlVGRkVSRUQ7DQogICAgKyAgTE9HX01F TSAoIm5vbi1zZWN1cmUgU1JBTSAgICAgICAgICAgICAgICAgOiAweCUwMTZseCAtIDB4JTAxNmx4 IFsgMHglMDE2bHggXSB7ICVhIH1cbiIpOw0KICAgICsNCiAgICArICAvLyBTdWJTeXN0ZW0gUGhl cmlwaGVyYWxzIC0gVUFSVDANCiAgICArICBWaXJ0dWFsTWVtb3J5VGFibGVbKytJbmRleF0uUGh5 c2ljYWxCYXNlICA9IE1PUkVMTE9fVUFSVDBfQkFTRTsNCiAgICArICBWaXJ0dWFsTWVtb3J5VGFi bGVbSW5kZXhdLlZpcnR1YWxCYXNlICAgICA9IE1PUkVMTE9fVUFSVDBfQkFTRTsNCiAgICArICBW aXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLkxlbmd0aCAgICAgICAgICA9IE1PUkVMTE9fVUFSVDBf U1o7DQogICAgKyAgVmlydHVhbE1lbW9yeVRhYmxlW0luZGV4XS5BdHRyaWJ1dGVzICAgICAgPSBB Uk1fTUVNT1JZX1JFR0lPTl9BVFRSSUJVVEVfREVWSUNFOw0KICAgICsgIExPR19NRU0gKCJVQVJU MCAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMHglMDE2bHggLSAweCUwMTZseCBbIDB4JTAx Nmx4IF0geyAlYSB9XG4iKTsNCiAgICArDQogICAgKyAgLy8gRERSIFByaW1hcnkNCiAgICArICBW aXJ0dWFsTWVtb3J5VGFibGVbKytJbmRleF0uUGh5c2ljYWxCYXNlICA9IFBjZEdldDY0IChQY2RT eXN0ZW1NZW1vcnlCYXNlKTsNCiAgICArICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLlZpcnR1 YWxCYXNlICAgICA9IFBjZEdldDY0IChQY2RTeXN0ZW1NZW1vcnlCYXNlKTsNCiAgICArICBWaXJ0 dWFsTWVtb3J5VGFibGVbSW5kZXhdLkxlbmd0aCAgICAgICAgICA9IFBjZEdldDY0IChQY2RTeXN0 ZW1NZW1vcnlTaXplKTsNCiAgICArICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLkF0dHJpYnV0 ZXMgICAgICA9IEFSTV9NRU1PUllfUkVHSU9OX0FUVFJJQlVURV9XUklURV9CQUNLOw0KICAgICsg IExPR19NRU0gKCJERFIgUHJpbWFyeSAgICAgICAgICAgICAgICAgICAgIDogMHglMDE2bHggLSAw eCUwMTZseCBbIDB4JTAxNmx4IF0geyAlYSB9XG4iKTsNCiAgICArDQogICAgKyAgLy8gRERSIFNl Y29uZGFyeQ0KICAgICsgIGlmIChEcmFtQmxvY2syU2l6ZSAhPSAwKSB7DQogICAgKyAgICBWaXJ0 dWFsTWVtb3J5VGFibGVbKytJbmRleF0uUGh5c2ljYWxCYXNlICA9IFBjZEdldDY0IChQY2REcmFt QmxvY2syQmFzZSk7DQogICAgKyAgICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLlZpcnR1YWxC YXNlICAgICA9IFBjZEdldDY0IChQY2REcmFtQmxvY2syQmFzZSk7DQogICAgKyAgICBWaXJ0dWFs TWVtb3J5VGFibGVbSW5kZXhdLkxlbmd0aCAgICAgICAgICA9IERyYW1CbG9jazJTaXplOw0KICAg ICsgICAgVmlydHVhbE1lbW9yeVRhYmxlW0luZGV4XS5BdHRyaWJ1dGVzICAgICAgPSBBUk1fTUVN T1JZX1JFR0lPTl9BVFRSSUJVVEVfV1JJVEVfQkFDSzsNCiAgICArICAgIExPR19NRU0gKCJERFIg U2Vjb25kYXJ5ICAgICAgICAgICAgICAgICAgIDogMHglMDE2bHggLSAweCUwMTZseCBbIDB4JTAx Nmx4IF0geyAlYSB9XG4iKTsNCiAgICArICB9DQogICAgKw0KICAgICsgIC8vIEV4cGFuc2lvbiBQ ZXJpcGhlcmFscw0KICAgICsgIFZpcnR1YWxNZW1vcnlUYWJsZVsrK0luZGV4XS5QaHlzaWNhbEJh c2UgID0gTU9SRUxMT19FWFBfUEVSSVBIX0JBU0U7DQogICAgKyAgVmlydHVhbE1lbW9yeVRhYmxl W0luZGV4XS5WaXJ0dWFsQmFzZSAgICAgPSBNT1JFTExPX0VYUF9QRVJJUEhfQkFTRTsNCiAgICAr ICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLkxlbmd0aCAgICAgICAgICA9IE1PUkVMTE9fRVhQ X1BFUklQSF9CQVNFX1NaOw0KICAgICsgIFZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0uQXR0cmli dXRlcyAgICAgID0gQVJNX01FTU9SWV9SRUdJT05fQVRUUklCVVRFX0RFVklDRTsNCiAgICArICBM T0dfTUVNICgiRXhwYW5zaW9uIFBlcmlwaGVyYWxzICAgICAgICAgICA6IDB4JTAxNmx4IC0gMHgl MDE2bHggWyAweCUwMTZseCBdIHsgJWEgfVxuIik7DQogICAgKw0KICAgICsgIC8vIFBDSSBDb25m aWd1cmF0aW9uIFNwYWNlDQogICAgKyAgVmlydHVhbE1lbW9yeVRhYmxlWysrSW5kZXhdLlBoeXNp Y2FsQmFzZSAgPSBQY2RHZXQ2NCAoUGNkUGNpRXhwcmVzc0Jhc2VBZGRyZXNzKTsNCiAgICArICBW aXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLlZpcnR1YWxCYXNlICAgICA9IFBjZEdldDY0IChQY2RQ Y2lFeHByZXNzQmFzZUFkZHJlc3MpOw0KICAgICsgIFZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0u TGVuZ3RoICAgICAgICAgID0gKEZpeGVkUGNkR2V0MzIgKFBjZFBjaUJ1c01heCkgLQ0KICAgICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpeGVkUGNkR2V0 MzIgKFBjZFBjaUJ1c01pbikgKyAxKSAqDQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU0laRV8xTUI7DQogICAgKyAgVmlydHVhbE1lbW9yeVRhYmxl W0luZGV4XS5BdHRyaWJ1dGVzICAgICAgPSBBUk1fTUVNT1JZX1JFR0lPTl9BVFRSSUJVVEVfREVW SUNFOw0KICAgICsgIExPR19NRU0gKCJQQ0kgQ29uZmlndXJhdGlvbiBTcGFjZSAgICAgICAgIDog MHglMDE2bHggLSAweCUwMTZseCBbIDB4JTAxNmx4IF0geyAlYSB9XG4iKTsNCiAgICArDQogICAg KyAgLy8gUENJIE1NSU8zMi9JTyBTcGFjZQ0KICAgICsgIFZpcnR1YWxNZW1vcnlUYWJsZVsrK0lu ZGV4XS5QaHlzaWNhbEJhc2UgID0gUGNkR2V0MzIgKFBjZFBjaU1taW8zMkJhc2UpOw0KICAgICsg IFZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0uVmlydHVhbEJhc2UgICAgID0gUGNkR2V0MzIgKFBj ZFBjaU1taW8zMkJhc2UpOw0KICAgICsgIFZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0uTGVuZ3Ro ICAgICAgICAgID0gUGNkR2V0MzIgKFBjZFBjaU1taW8zMlNpemUpICsNCiAgICArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBjZEdldDMyIChQY2RQY2lJb1Np emUpOw0KICAgICsgIFZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0uQXR0cmlidXRlcyAgICAgID0g QVJNX01FTU9SWV9SRUdJT05fQVRUUklCVVRFX0RFVklDRTsNCiAgICArICBMT0dfTUVNICgiUENJ IE1NSU8zMiAmIElPIFJlZ2lvbiAgICAgICAgICA6IDB4JTAxNmx4IC0gMHglMDE2bHggWyAweCUw MTZseCBdIHsgJWEgfVxuIik7DQogICAgKw0KICAgICsgIC8vIFBDSSBNTUlPNjQgU3BhY2UNCiAg ICArICBWaXJ0dWFsTWVtb3J5VGFibGVbKytJbmRleF0uUGh5c2ljYWxCYXNlICA9IFBjZEdldDY0 IChQY2RQY2lNbWlvNjRCYXNlKTsNCiAgICArICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLlZp cnR1YWxCYXNlICAgICA9IFBjZEdldDY0IChQY2RQY2lNbWlvNjRCYXNlKTsNCiAgICArICBWaXJ0 dWFsTWVtb3J5VGFibGVbSW5kZXhdLkxlbmd0aCAgICAgICAgICA9IFBjZEdldDY0IChQY2RQY2lN bWlvNjRTaXplKTsNCiAgICArICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLkF0dHJpYnV0ZXMg ICAgICA9IEFSTV9NRU1PUllfUkVHSU9OX0FUVFJJQlVURV9ERVZJQ0U7DQogICAgKyAgTE9HX01F TSAoIlBDSSBNTUlPNjQgUmVnaW9uICAgICAgICAgICAgICAgOiAweCUwMTZseCAtIDB4JTAxNmx4 IFsgMHglMDE2bHggXSB7ICVhIH1cbiIpOw0KICAgICsNCiAgICArICAvLyBFbmQgb2YgVGFibGUN CiAgICArICBWaXJ0dWFsTWVtb3J5VGFibGVbKytJbmRleF0uUGh5c2ljYWxCYXNlICA9IDA7DQog ICAgKyAgVmlydHVhbE1lbW9yeVRhYmxlW0luZGV4XS5WaXJ0dWFsQmFzZSAgICAgPSAwOw0KICAg ICsgIFZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0uTGVuZ3RoICAgICAgICAgID0gMDsNCiAgICAr ICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLkF0dHJpYnV0ZXMgICAgICA9IChBUk1fTUVNT1JZ X1JFR0lPTl9BVFRSSUJVVEVTKTA7DQogICAgKw0KICAgICsgIEFTU0VSVCAoKEluZGV4KSA8IE1B WF9WSVJUVUFMX01FTU9SWV9NQVBfREVTQ1JJUFRPUlMpOw0KICAgICsgIERFQlVHICgoREVCVUdf SU5JVCwgIlZpcnR1YWwgTWVtb3J5IFRhYmxlIHNldHVwIGNvbXBsZXRlLlxuIikpOw0KICAgICsN CiAgICArICAqVmlydHVhbE1lbW9yeU1hcCA9IFZpcnR1YWxNZW1vcnlUYWJsZTsNCiAgICArfQ0K ICAgIGRpZmYgLS1naXQgYS9QbGF0Zm9ybS9BUk0vTW9yZWxsby9MaWJyYXJ5L1BsYXRmb3JtTGli L0FBcmNoNjQvSGVscGVyLlMgYi9QbGF0Zm9ybS9BUk0vTW9yZWxsby9MaWJyYXJ5L1BsYXRmb3Jt TGliL0FBcmNoNjQvSGVscGVyLlMNCiAgICBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KICAgIGluZGV4 IDAwMDAwMDAwMDAwMC4uZjZjYzA4N2ExMzJjDQogICAgLS0tIC9kZXYvbnVsbA0KICAgICsrKyBi L1BsYXRmb3JtL0FSTS9Nb3JlbGxvL0xpYnJhcnkvUGxhdGZvcm1MaWIvQUFyY2g2NC9IZWxwZXIu Uw0KICAgIEBAIC0wLDAgKzEsODMgQEANCiAgICArLyoqIEBmaWxlDQogICAgKw0KICAgICsgIENv cHlyaWdodCAoYykgMjAyMSwgQVJNIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K ICAgICsNCiAgICArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dA0KICAgICsqKi8NCiAgICArDQogICAgKyNpbmNsdWRlIDxBc21NYWNyb0lvTGliVjguaD4NCiAg ICArI2luY2x1ZGUgPExpYnJhcnkvQXJtTGliLmg+DQogICAgKw0KICAgICsudGV4dA0KICAgICsu YWxpZ24gMw0KICAgICsNCiAgICArR0NDX0FTTV9FWFBPUlQoQXJtUGxhdGZvcm1QZWlCb290QWN0 aW9uKQ0KICAgICtHQ0NfQVNNX0VYUE9SVChBcm1QbGF0Zm9ybUdldENvcmVQb3NpdGlvbikNCiAg ICArR0NDX0FTTV9FWFBPUlQoQXJtUGxhdGZvcm1HZXRQcmltYXJ5Q29yZU1wSWQpDQogICAgK0dD Q19BU01fRVhQT1JUKEFybVBsYXRmb3JtSXNQcmltYXJ5Q29yZSkNCiAgICArDQogICAgKy8vDQog ICAgKy8vIEZpcnN0IHBsYXRmb3JtIHNwZWNpZmljIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBpbiB0 aGUgUEVJIHBoYXNlDQogICAgKy8vDQogICAgKy8vIFRoaXMgZnVuY3Rpb24gaXMgYWN0dWFsbHkg dGhlIGZpcnN0IGZ1bmN0aW9uIGNhbGxlZCBieSB0aGUgUHJlUGkNCiAgICArLy8gb3IgUHJlUGVp Q29yZSBtb2R1bGVzLiBJdCBhbGxvd3MgdG8gcmV0cmlldmUgYXJndW1lbnRzIHBhc3NlZCB0bw0K ICAgICsvLyB0aGUgVUVGSSBmaXJtd2FyZSB0aHJvdWdoIHRoZSBDUFUgcmVnaXN0ZXJzLg0KICAg ICsvLw0KICAgICtBU01fUEZYKEFybVBsYXRmb3JtUGVpQm9vdEFjdGlvbik6DQogICAgKyAgcmV0 DQogICAgKw0KICAgICsvLw0KICAgICsvLyBSZXR1cm4gdGhlIGNvcmUgcG9zaXRpb24gZnJvbSB0 aGUgdmFsdWUgb2YgaXRzIE1wSWQgcmVnaXN0ZXINCiAgICArLy8NCiAgICArLy8gVGhpcyBmdW5j dGlvbiByZXR1cm5zIGNvcmUgcG9zaXRpb24gZnJvbSB0aGUgcG9zaXRpb24gMCBpbiB0aGUgcHJv Y2Vzc29yLg0KICAgICsvLyBUaGlzIGZ1bmN0aW9uIG1pZ2h0IGJlIGNhbGxlZCBmcm9tIGFzc2Vt YmxlciBiZWZvcmUgYW55IHN0YWNrIGlzIHNldC4NCiAgICArLy8NCiAgICArLy8gQHJldHVybiAg IFJldHVybiB0aGUgY29yZSBwb3NpdGlvbg0KICAgICsvLw0KICAgICsvL1VJTlRODQogICAgKy8v QXJtUGxhdGZvcm1HZXRDb3JlUG9zaXRpb24gKA0KICAgICsvLyAgSU4gVUlOVE4gTXBJZA0KICAg ICsvLyAgKTsNCiAgICArLy8gV2l0aCB0aGlzIGZ1bmN0aW9uOiBDb3JlUG9zID0gKENsdXN0ZXJJ ZCAqIDIpICsgQ29yZUlkDQogICAgK0FTTV9QRlgoQXJtUGxhdGZvcm1HZXRDb3JlUG9zaXRpb24p Og0KW1NBTUldIENhbiBBU01fRlVOQyBiZSB1c2VkIGluc3RlYWQgb2YgQVNNX1BGWD8NClsvU0FN SV0NCiAgICArICBhbmQgICB4MSwgeDAsICNBUk1fQ09SRV9NQVNLDQogICAgKyAgYW5kICAgeDAs IHgwLCAjQVJNX0NMVVNURVJfTUFTSw0KICAgICsgIGFkZCAgIHgwLCB4MSwgeDAsIExTUiAjNw0K ICAgICsgIHJldA0KICAgICsNCiAgICArLy8NCiAgICArLy8gUmV0dXJuIHRoZSBNcElkIG9mIHRo ZSBwcmltYXJ5IGNvcmUNCiAgICArLy8NCiAgICArLy8gVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRo ZSBNcElkIG9mIHRoZSBwcmltYXJ5IGNvcmUuDQogICAgKy8vIFRoaXMgZnVuY3Rpb24gbWlnaHQg YmUgY2FsbGVkIGZyb20gYXNzZW1ibGVyIGJlZm9yZSBhbnkgc3RhY2sgaXMgc2V0Lg0KICAgICsv Lw0KICAgICsvLyBAcmV0dXJuICAgUmV0dXJuIHRoZSBNcElkIG9mIHRoZSBwcmltYXJ5IGNvcmUN CiAgICArLy8NCiAgICArLy9VSU5UTg0KICAgICsvL0FybVBsYXRmb3JtR2V0UHJpbWFyeUNvcmVN cElkICgNCiAgICArLy8gIFZPSUQNCiAgICArLy8gICk7DQogICAgK0FTTV9QRlgoQXJtUGxhdGZv cm1HZXRQcmltYXJ5Q29yZU1wSWQpOg0KICAgICsgIE1PVjMyICh3MCwgRml4ZWRQY2RHZXQzMihQ Y2RBcm1QcmltYXJ5Q29yZSkpDQpbU0FNSV0gUGxlYXNlIGFkZCBhIHNwYWNlIGJldHdlZW4gRml4 ZWRQY2RHZXQzMiBhbmQgb3BlbmluZyAoLiBTYW1lIGF0IG90aGVyIHBsYWNlcyBpbiB0aGlzIGZp bGUuDQpbL1NBTUldDQogICAgKyAgcmV0DQogICAgKw0KICAgICsvLw0KICAgICsvLyBSZXR1cm4g YSBub24temVybyB2YWx1ZSBpZiB0aGUgY2FsbGVlIGlzIHRoZSBwcmltYXJ5IGNvcmUNCiAgICAr Ly8NCiAgICArLy8gVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgbm9uLXplcm8gdmFsdWUgaWYgdGhl IGNhbGxlZSBpcyB0aGUgcHJpbWFyeSBjb3JlLg0KICAgICsvLyBQcmltYXJ5IGNvcmUgaXMgdGhl IGNvcmUgcmVzcG9uc2libGUgdG8gaW5pdGlhbGl6ZSBoYXJkd2FyZSBhbmQgcnVuIFVFRkkuDQog ICAgKy8vIFRoaXMgZnVuY3Rpb24gbWlnaHQgYmUgY2FsbGVkIGZyb20gYXNzZW1ibGVyIGJlZm9y ZSBhbnkgc3RhY2sgaXMgc2V0Lg0KICAgICsvLw0KICAgICsvLyAgQHJldHVybiAgIFJldHVybiBh IG5vbi16ZXJvIHZhbHVlIGlmIHRoZSBjYWxsZWUgaXMgdGhlIHByaW1hcnkgY29yZS4NCiAgICAr Ly8NCiAgICArLy9VSU5UTg0KICAgICsvL0FybVBsYXRmb3JtSXNQcmltYXJ5Q29yZSAoDQogICAg Ky8vICBJTiBVSU5UTiBNcElkDQogICAgKy8vICApOw0KICAgICtBU01fUEZYKEFybVBsYXRmb3Jt SXNQcmltYXJ5Q29yZSk6DQogICAgKyAgTU9WMzIgKHcxLCBGaXhlZFBjZEdldDMyKFBjZEFybVBy aW1hcnlDb3JlTWFzaykpDQogICAgKyAgYW5kICAgeDAsIHgwLCB4MQ0KICAgICsgIE1PVjMyICh3 MSwgRml4ZWRQY2RHZXQzMihQY2RBcm1QcmltYXJ5Q29yZSkpDQogICAgKyAgY21wICAgdzAsIHcx DQogICAgKyAgY3NldCAgeDAsIGVxDQogICAgKyAgcmV0DQogICAgLS0gDQogICAgMi4xNy4xDQoN Cg0K