From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9116742C39; Tue, 6 Jun 2023 04:56:19 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3024640A84; Tue, 6 Jun 2023 04:56:19 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2040.outbound.protection.outlook.com [40.107.8.40]) by mails.dpdk.org (Postfix) with ESMTP id 08449406B7 for ; Tue, 6 Jun 2023 04:56:16 +0200 (CEST) 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=lOOuhSzkRn+3bFcVLvnupqYmbPjOk4Xl4lEGkb8ClpA=; b=bXE75W3MBUZGCp8tGMrbFzvb7NQdXA4fMQ8Bj+jBEN2KhF78OxpSUqgZ1B8iGFavjOklE27fSSp1AAtecGk7t9eQSSDtCoeGXZeeA1nTBL1CuQnOBDsoBVYGVmpFBPMa9jxs6lzuGFwGD+vTDOHshS2UkCeuWyUo3XtulVj/GUI= Received: from AM7PR02CA0003.eurprd02.prod.outlook.com (2603:10a6:20b:100::13) by DB8PR08MB5513.eurprd08.prod.outlook.com (2603:10a6:10:f8::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.28; Tue, 6 Jun 2023 02:56:07 +0000 Received: from AM7EUR03FT021.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:100:cafe::9b) by AM7PR02CA0003.outlook.office365.com (2603:10a6:20b:100::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.32 via Frontend Transport; Tue, 6 Jun 2023 02:56:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;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; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT021.mail.protection.outlook.com (100.127.140.243) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.19 via Frontend Transport; Tue, 6 Jun 2023 02:56:07 +0000 Received: ("Tessian outbound e13c2446394c:v136"); Tue, 06 Jun 2023 02:56:07 +0000 X-CR-MTA-TID: 64aa7808 Received: from 23d57c8a471f.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 3B8D01EF-73B6-4002-A525-9B21A245258A.1; Tue, 06 Jun 2023 02:55:56 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 23d57c8a471f.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 06 Jun 2023 02:55:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hjMPRlA99a+lwrsjphMsTJRMVCpVRcz7ekYOAIIbQ8ee5mqyrkM9HNw/T0sGAo1SdehzCDCUDAqqQFI3ErWetvjTpi91p8WMOnpayTOjxh/2mufwYV55aIWVaPfLUcY/rljcKZweYLYl2HP3L908yfHbXyqQ8AtB6ScpSVBms9t8vC9XwueKob0gTVYWc6ttXDVgvEI6AOKSfJnx1+7EjVPp5+0nf71XppSvLhGrCTzuzbc1ZhOVINjHy4uS0t/sHLUJ7/PzSqXZOOCbsqZp5Rx9o5v729Oqh/DQCsTFYwErKvjsaDIqmu9WSTzURsx+NQaHgfat5Za5bf69nQwRYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=lOOuhSzkRn+3bFcVLvnupqYmbPjOk4Xl4lEGkb8ClpA=; b=lm47P2skTlA0MPTxNCm2C6BZdfivQ6g+tF6UYorahLgUBBTMvJhrgqlRVU2f20lBnjtGvVZP71+aV8fuMUsgxeZ9yXcH2YpeR9+W5wdC1rYLItv7a4l8WkwKBHwSYEgfcL0fSiURKF5zLHBf0mHNeVOfFarGBwIN+QOGktwxXfIEEbjm3Q8SRGUOv6pUrqcIljmcrWwfUDgp3ybXPA4O+JTICx1Ta0dM0vw6+zNb3E5z6GZUQtu9yGwf0UAFWyXNCXd79DriCO8q4hbXie1RMW6YL3EI2QKwuneqKAb9NCU3fymAVYvuXYGtRRT/gW1voA6CuWNXjYEnhqiJ7BnGlQ== 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=lOOuhSzkRn+3bFcVLvnupqYmbPjOk4Xl4lEGkb8ClpA=; b=bXE75W3MBUZGCp8tGMrbFzvb7NQdXA4fMQ8Bj+jBEN2KhF78OxpSUqgZ1B8iGFavjOklE27fSSp1AAtecGk7t9eQSSDtCoeGXZeeA1nTBL1CuQnOBDsoBVYGVmpFBPMa9jxs6lzuGFwGD+vTDOHshS2UkCeuWyUo3XtulVj/GUI= Received: from AS8PR08MB7718.eurprd08.prod.outlook.com (2603:10a6:20b:50a::22) by DU2PR08MB10159.eurprd08.prod.outlook.com (2603:10a6:10:46f::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.31; Tue, 6 Jun 2023 02:55:53 +0000 Received: from AS8PR08MB7718.eurprd08.prod.outlook.com ([fe80::7878:ff5f:b10:d4a6]) by AS8PR08MB7718.eurprd08.prod.outlook.com ([fe80::7878:ff5f:b10:d4a6%7]) with mapi id 15.20.6455.030; Tue, 6 Jun 2023 02:55:53 +0000 From: Feifei Wang To: =?utf-8?B?0JrQvtC90YHRgtCw0L3RgtC40L0g0JDQvdCw0L3RjNC10LI=?= , "thomas@monjalon.net" , Ferruh Yigit , Andrew Rybchenko CC: "dev@dpdk.org" , nd , Honnappa Nagarahalli , Ruifeng Wang , nd Subject: RE: [PATCH v6 1/4] ethdev: add API for mbufs recycle mode Thread-Topic: [PATCH v6 1/4] ethdev: add API for mbufs recycle mode Thread-Index: AQHZju23BTNPFS/xUkaAQdl7HxYGP698O6IAgADcE+A= Date: Tue, 6 Jun 2023 02:55:53 +0000 Message-ID: References: <20211224164613.32569-1-feifei.wang2@arm.com> <20230525094541.331338-1-feifei.wang2@arm.com> <20230525094541.331338-2-feifei.wang2@arm.com> <658741685969010@mail.yandex.ru> In-Reply-To: <658741685969010@mail.yandex.ru> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 319B16901B3390409935DF3F4FAA87FE.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: AS8PR08MB7718:EE_|DU2PR08MB10159:EE_|AM7EUR03FT021:EE_|DB8PR08MB5513:EE_ X-MS-Office365-Filtering-Correlation-Id: 791b742f-6371-459d-bd78-08db66399358 x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: S4kRgg8VE1q7YnUq6kAMHd9vNstakll+nBitfoaxXJx8EZFC/Z4BRBrNGok/PuYNXx5Faqoe+kiNnVQkDhG+SpCbDkJsZ3yI8in+2MBJlbjhUnJCCxZuHQ6t2TGmrsKTnpQpNOO6D4Tw6tMgzR/EdfCNjc1IBAXWvlqf6L0pfnbv0M+tNBMEf9Hvx4e9p+Z69IW2BzcT5vDq8vk10Rf9YwMk54xEZpAnJiATVXmNAFrEGRqnCvTzJpS5e/CNWtnYJhYbpl58UwR1AGJ1LgdCaB+zDv6qhdb2EUnCvsNvVnl5p0H2lKGlmG59d2gS24L+dcIHbATnVOCq4SoTtihHeAWxe2MYecAcREWy+fWg7B+Hgzp6jkAjaugkDzzqytoIJEvRcZ/Em+sxX7Nwyb2gvRWCXcst1MPwFFCotppV7vg5Po2HjnQr8NIV7qwoqA9qoz4RzS/UELTuLnunvhrNK0UeTubyseZnoUYKfufMgM0LVXnF04SVmdirG2UlQPzeiaVCAW0g0SjncyDkHgpNDQnsytsuV8+3yO5OkjGETDxsaZ9oJD/lGVjH35l34cjy4EUfMkjbeJK7SwV8zY9gyNsWbrcOFWY+QUpPieaoHaUHAFH34JmjdSGWGrlinSwovQkvSvIQI+wCG9JWNagUeA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB7718.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(136003)(366004)(39860400002)(396003)(376002)(346002)(451199021)(54906003)(110136005)(71200400001)(478600001)(5660300002)(8676002)(38070700005)(33656002)(86362001)(30864003)(8936002)(2906002)(66556008)(66476007)(4326008)(122000001)(66446008)(52536014)(64756008)(316002)(76116006)(66946007)(55016003)(38100700002)(41300700001)(26005)(186003)(7696005)(53546011)(9686003)(6506007)(83380400001)(23180200003); DIR:OUT; SFP:1101; Content-Type: multipart/alternative; boundary="_000_AS8PR08MB7718588CACBAF7D0D53F2EB8C852AAS8PR08MB7718eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB10159 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT021.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 2226471b-f443-4520-1d1b-08db66398ac8 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: O011OGeDh6glkgNqSEZDmRCgngjgwTOUInsY8L7oowO6PinRv6KeD/DPXnm1XriDOSCG18i8fHWzCmFOtcD5fsR5D+h7NZVv7iXgYeiNVXplSBCN/olhBQp2PvPjozxILWC5PlX5ctiZtmyr1L/oItcbzs1r10yxUxUvV7gaVKn0jSuC0FWkO8wzMV3TtPwGveqQ+FlMdMM484j8jKQqXbdtijikmhhBnFOvn0mZAzc8ltGCMqzQ4Nw/Y7eeHylE9prsJew7c4h7ujtqnlL2wphho307M43DLsq/3PoESgIrzh84xz71lKhyq73M1DGLrkbyyt9QeZkvqQsl8kxUwYrBJOTDEPkOPimpYUThmPQgml7zPaHk6tF3b6lYn2k6+l03PSR9l/iDKs2IyvWkKVyAnI2NPYWMOPY8pW8an9lbYyfZFC8nQEf1/jDgXlBr8OPs1LyI6CoOlca/+te1XN7putjG3xlIOgPMdo9tVcmfcw5ru8p+m+VyvtT8tR9IaUHeCpFos7fGo4rzBcqhrdBW8tzR5hkZRD1D8KxoD+1p/J44hax6yjqQrM/1YDCYzSmoP5zULvUgPrNGoxVo0t71XR75igNhuEE2r1pNF2OMnWfsTeGtkHkNv99AA3ay+b73ht4QJ07oBKTXz6bfJAeU1pg5E6VkEw+KLVNkhoazfiDWH1RkZA/AJlQ79LKu5psEau8Vq/31y3++icSD4OyiXSw9/mIULMRZhxJf80HWcGMvoOk5FsBiB4mI06bt/zAk+BrTyMTce+WM1c6vjw== 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:(13230028)(4636009)(136003)(396003)(376002)(346002)(39860400002)(451199021)(40470700004)(46966006)(36840700001)(478600001)(2906002)(30864003)(40460700003)(7696005)(33964004)(33656002)(82310400005)(36860700001)(336012)(83380400001)(47076005)(6506007)(53546011)(26005)(9686003)(86362001)(186003)(81166007)(356005)(82740400003)(40480700001)(5660300002)(316002)(8676002)(8936002)(70586007)(70206006)(4326008)(52536014)(55016003)(110136005)(54906003)(41300700001)(23180200003)(579004); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jun 2023 02:56:07.3511 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 791b742f-6371-459d-bd78-08db66399358 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: AM7EUR03FT021.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5513 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org --_000_AS8PR08MB7718588CACBAF7D0D53F2EB8C852AAS8PR08MB7718eurp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIGZvciB0aGUgY29tbWVudHMuDQoNCkZyb206INCa0L7QvdGB0YLQsNC90YLQuNC9INCQ 0L3QsNC90YzQtdCyIDxrb25zdGFudGluLnYuYW5hbnlldkB5YW5kZXgucnU+DQpTZW50OiBNb25k YXksIEp1bmUgNSwgMjAyMyA4OjU0IFBNDQpUbzogRmVpZmVpIFdhbmcgPEZlaWZlaS5XYW5nMkBh cm0uY29tPjsgdGhvbWFzQG1vbmphbG9uLm5ldDsgRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRA YW1kLmNvbT47IEFuZHJldyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1 Pg0KQ2M6IGRldkBkcGRrLm9yZzsgbmQgPG5kQGFybS5jb20+OyBIb25uYXBwYSBOYWdhcmFoYWxs aSA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47IFJ1aWZlbmcgV2FuZyA8UnVpZmVuZy5X YW5nQGFybS5jb20+DQpTdWJqZWN0OiBSZTogW1BBVENIIHY2IDEvNF0gZXRoZGV2OiBhZGQgQVBJ IGZvciBtYnVmcyByZWN5Y2xlIG1vZGUNCg0KDQoNCkhpIEZlaWZlaSwNCg0KZmV3IG1vcmUgY29t bWVudHMgZnJvbSBtZSwgc2VlIGJlbG93Lg0KDQpBZGQgJ3J0ZV9ldGhfcmVjeWNsZV9yeF9xdWV1 ZV9pbmZvX2dldCcgYW5kICdydGVfZXRoX3JlY3ljbGVfbWJ1ZnMnDQpBUElzIHRvIHJlY3ljbGUg dXNlZCBtYnVmcyBmcm9tIGEgdHJhbnNtaXQgcXVldWUgb2YgYW4gRXRoZXJuZXQgZGV2aWNlLA0K YW5kIG1vdmUgdGhlc2UgbWJ1ZnMgaW50byBhIG1idWYgcmluZyBmb3IgYSByZWNlaXZlIHF1ZXVl IG9mIGFuIEV0aGVybmV0DQpkZXZpY2UuIFRoaXMgY2FuIGJ5cGFzcyBtZW1wb29sICdwdXQvZ2V0 JyBvcGVyYXRpb25zIGhlbmNlIHNhdmluZyBDUFUNCmN5Y2xlcy4NCg0KRm9yIGVhY2ggcmVjeWNs aW5nIG1idWZzLCB0aGUgcnRlX2V0aF9yZWN5Y2xlX21idWZzKCkgZnVuY3Rpb24gcGVyZm9ybXMN CnRoZSBmb2xsb3dpbmcgb3BlcmF0aW9uczoNCi0gQ29weSB1c2VkICpydGVfbWJ1ZiogYnVmZmVy IHBvaW50ZXJzIGZyb20gVHggbWJ1ZiByaW5nIGludG8gUnggbWJ1Zg0KcmluZy4NCi0gUmVwbGVu aXNoIHRoZSBSeCBkZXNjcmlwdG9ycyB3aXRoIHRoZSByZWN5Y2xpbmcgKnJ0ZV9tYnVmKiBtYnVm cyBmcmVlZA0KZnJvbSB0aGUgVHggbWJ1ZiByaW5nLg0KDQpTdWdnZXN0ZWQtYnk6IEhvbm5hcHBh IE5hZ2FyYWhhbGxpIDxob25uYXBwYS5uYWdhcmFoYWxsaUBhcm0uY29tPG1haWx0bzpob25uYXBw YS5uYWdhcmFoYWxsaUBhcm0uY29tPj4NClN1Z2dlc3RlZC1ieTogUnVpZmVuZyBXYW5nIDxydWlm ZW5nLndhbmdAYXJtLmNvbTxtYWlsdG86cnVpZmVuZy53YW5nQGFybS5jb20+Pg0KU2lnbmVkLW9m Zi1ieTogRmVpZmVpIFdhbmcgPGZlaWZlaS53YW5nMkBhcm0uY29tPG1haWx0bzpmZWlmZWkud2Fu ZzJAYXJtLmNvbT4+DQpSZXZpZXdlZC1ieTogUnVpZmVuZyBXYW5nIDxydWlmZW5nLndhbmdAYXJt LmNvbTxtYWlsdG86cnVpZmVuZy53YW5nQGFybS5jb20+Pg0KUmV2aWV3ZWQtYnk6IEhvbm5hcHBh IE5hZ2FyYWhhbGxpIDxob25uYXBwYS5uYWdhcmFoYWxsaUBhcm0uY29tPG1haWx0bzpob25uYXBw YS5uYWdhcmFoYWxsaUBhcm0uY29tPj4NCi0tLQ0KIGRvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVh c2VfMjNfMDcucnN0IHwgNyArDQogbGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmggfCAxMCArKw0K IGxpYi9ldGhkZXYvZXRoZGV2X3ByaXZhdGUuYyB8IDIgKw0KIGxpYi9ldGhkZXYvcnRlX2V0aGRl di5jIHwgMzEgKysrKysNCiBsaWIvZXRoZGV2L3J0ZV9ldGhkZXYuaCB8IDE4MiArKysrKysrKysr KysrKysrKysrKysrKysrDQogbGliL2V0aGRldi9ydGVfZXRoZGV2X2NvcmUuaCB8IDE1ICstDQog bGliL2V0aGRldi92ZXJzaW9uLm1hcCB8IDQgKw0KIDcgZmlsZXMgY2hhbmdlZCwgMjQ5IGluc2Vy dGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3JlbF9u b3Rlcy9yZWxlYXNlXzIzXzA3LnJzdCBiL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjNf MDcucnN0DQppbmRleCBhOWIxMjkzNjg5Li5mMjc5MDM2Y2I5IDEwMDY0NA0KLS0tIGEvZG9jL2d1 aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yM18wNy5yc3QNCisrKyBiL2RvYy9ndWlkZXMvcmVsX25v dGVzL3JlbGVhc2VfMjNfMDcucnN0DQpAQCAtNTUsNiArNTUsMTMgQEAgTmV3IEZlYXR1cmVzDQog ICAgICBBbHNvLCBtYWtlIHN1cmUgdG8gc3RhcnQgdGhlIGFjdHVhbCB0ZXh0IGF0IHRoZSBtYXJn aW4uDQogICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09DQoNCisqICoqQWRkIG1idWZzIHJlY3ljbGluZyBzdXBwb3J0LiAqKg0KKyBBZGRl ZCBgYHJ0ZV9ldGhfcmVjeWNsZV9yeF9xdWV1ZV9pbmZvX2dldGBgIGFuZCBgYHJ0ZV9ldGhfcmVj eWNsZV9tYnVmc2BgDQorIEFQSXMgd2hpY2ggYWxsb3cgdGhlIHVzZXIgdG8gY29weSB1c2VkIG1i dWZzIGZyb20gdGhlIFR4IG1idWYgcmluZw0KKyBpbnRvIHRoZSBSeCBtYnVmIHJpbmcuIFRoaXMg ZmVhdHVyZSBzdXBwb3J0cyB0aGUgY2FzZSB0aGF0IHRoZSBSeCBFdGhlcm5ldA0KKyBkZXZpY2Ug aXMgZGlmZmVyZW50IGZyb20gdGhlIFR4IEV0aGVybmV0IGRldmljZSB3aXRoIHJlc3BlY3RpdmUg ZHJpdmVyDQorIGNhbGxiYWNrIGZ1bmN0aW9ucyBpbiBgYHJ0ZV9ldGhfcmVjeWNsZV9tYnVmc2Bg Lg0KKw0KDQogUmVtb3ZlZCBJdGVtcw0KIC0tLS0tLS0tLS0tLS0NCmRpZmYgLS1naXQgYS9saWIv ZXRoZGV2L2V0aGRldl9kcml2ZXIuaCBiL2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5oDQppbmRl eCAyYzlkNjE1ZmI1Li5jNjcyM2Q1Mjc3IDEwMDY0NA0KLS0tIGEvbGliL2V0aGRldi9ldGhkZXZf ZHJpdmVyLmgNCisrKyBiL2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5oDQpAQCAtNTksNiArNTks MTAgQEAgc3RydWN0IHJ0ZV9ldGhfZGV2IHsNCiAgICAgICAgIGV0aF9yeF9kZXNjcmlwdG9yX3N0 YXR1c190IHJ4X2Rlc2NyaXB0b3Jfc3RhdHVzOw0KICAgICAgICAgLyoqIENoZWNrIHRoZSBzdGF0 dXMgb2YgYSBUeCBkZXNjcmlwdG9yICovDQogICAgICAgICBldGhfdHhfZGVzY3JpcHRvcl9zdGF0 dXNfdCB0eF9kZXNjcmlwdG9yX3N0YXR1czsNCisgLyoqIFBvaW50ZXIgdG8gUE1EIHRyYW5zbWl0 IG1idWZzIHJldXNlIGZ1bmN0aW9uICovDQorIGV0aF9yZWN5Y2xlX3R4X21idWZzX3JldXNlX3Qg cmVjeWNsZV90eF9tYnVmc19yZXVzZTsNCisgLyoqIFBvaW50ZXIgdG8gUE1EIHJlY2VpdmUgZGVz Y3JpcHRvcnMgcmVmaWxsIGZ1bmN0aW9uICovDQorIGV0aF9yZWN5Y2xlX3J4X2Rlc2NyaXB0b3Jz X3JlZmlsbF90IHJlY3ljbGVfcnhfZGVzY3JpcHRvcnNfcmVmaWxsOw0KDQogICAgICAgICAvKioN CiAgICAgICAgICAqIERldmljZSBkYXRhIHRoYXQgaXMgc2hhcmVkIGJldHdlZW4gcHJpbWFyeSBh bmQgc2Vjb25kYXJ5IHByb2Nlc3Nlcw0KQEAgLTUwNCw2ICs1MDgsMTAgQEAgdHlwZWRlZiB2b2lk ICgqZXRoX3J4cV9pbmZvX2dldF90KShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCiB0eXBlZGVm IHZvaWQgKCpldGhfdHhxX2luZm9fZ2V0X3QpKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KICAg ICAgICAgdWludDE2X3QgdHhfcXVldWVfaWQsIHN0cnVjdCBydGVfZXRoX3R4cV9pbmZvICpxaW5m byk7DQoNCit0eXBlZGVmIHZvaWQgKCpldGhfcmVjeWNsZV9yeHFfaW5mb19nZXRfdCkoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYsDQorIHVpbnQxNl90IHJ4X3F1ZXVlX2lkLA0KKyBzdHJ1Y3QgcnRl X2V0aF9yZWN5Y2xlX3J4cV9pbmZvICpyZWN5Y2xlX3J4cV9pbmZvKTsNCisNCiB0eXBlZGVmIGlu dCAoKmV0aF9idXJzdF9tb2RlX2dldF90KShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCiAgICAg ICAgIHVpbnQxNl90IHF1ZXVlX2lkLCBzdHJ1Y3QgcnRlX2V0aF9idXJzdF9tb2RlICptb2RlKTsN Cg0KQEAgLTEyNDcsNiArMTI1NSw4IEBAIHN0cnVjdCBldGhfZGV2X29wcyB7DQogICAgICAgICBl dGhfcnhxX2luZm9fZ2V0X3QgcnhxX2luZm9fZ2V0Ow0KICAgICAgICAgLyoqIFJldHJpZXZlIFR4 IHF1ZXVlIGluZm9ybWF0aW9uICovDQogICAgICAgICBldGhfdHhxX2luZm9fZ2V0X3QgdHhxX2lu Zm9fZ2V0Ow0KKyAvKiogUmV0cmlldmUgbWJ1ZnMgcmVjeWNsZSBSeCBxdWV1ZSBpbmZvcm1hdGlv biAqLw0KKyBldGhfcmVjeWNsZV9yeHFfaW5mb19nZXRfdCByZWN5Y2xlX3J4cV9pbmZvX2dldDsN CiAgICAgICAgIGV0aF9idXJzdF9tb2RlX2dldF90IHJ4X2J1cnN0X21vZGVfZ2V0OyAvKio8IEdl dCBSeCBidXJzdCBtb2RlICovDQogICAgICAgICBldGhfYnVyc3RfbW9kZV9nZXRfdCB0eF9idXJz dF9tb2RlX2dldDsgLyoqPCBHZXQgVHggYnVyc3QgbW9kZSAqLw0KICAgICAgICAgZXRoX2Z3X3Zl cnNpb25fZ2V0X3QgZndfdmVyc2lvbl9nZXQ7IC8qKjwgR2V0IGZpcm13YXJlIHZlcnNpb24gKi8N CmRpZmYgLS1naXQgYS9saWIvZXRoZGV2L2V0aGRldl9wcml2YXRlLmMgYi9saWIvZXRoZGV2L2V0 aGRldl9wcml2YXRlLmMNCmluZGV4IDE0ZWM4YzZjY2YuLmY4YWI2NGYxOTUgMTAwNjQ0DQotLS0g YS9saWIvZXRoZGV2L2V0aGRldl9wcml2YXRlLmMNCisrKyBiL2xpYi9ldGhkZXYvZXRoZGV2X3By aXZhdGUuYw0KQEAgLTI3Nyw2ICsyNzcsOCBAQCBldGhfZGV2X2ZwX29wc19zZXR1cChzdHJ1Y3Qg cnRlX2V0aF9mcF9vcHMgKmZwbywNCiAgICAgICAgIGZwby0+cnhfcXVldWVfY291bnQgPSBkZXYt PnJ4X3F1ZXVlX2NvdW50Ow0KICAgICAgICAgZnBvLT5yeF9kZXNjcmlwdG9yX3N0YXR1cyA9IGRl di0+cnhfZGVzY3JpcHRvcl9zdGF0dXM7DQogICAgICAgICBmcG8tPnR4X2Rlc2NyaXB0b3Jfc3Rh dHVzID0gZGV2LT50eF9kZXNjcmlwdG9yX3N0YXR1czsNCisgZnBvLT5yZWN5Y2xlX3R4X21idWZz X3JldXNlID0gZGV2LT5yZWN5Y2xlX3R4X21idWZzX3JldXNlOw0KKyBmcG8tPnJlY3ljbGVfcnhf ZGVzY3JpcHRvcnNfcmVmaWxsID0gZGV2LT5yZWN5Y2xlX3J4X2Rlc2NyaXB0b3JzX3JlZmlsbDsN Cg0KICAgICAgICAgZnBvLT5yeHEuZGF0YSA9IGRldi0+ZGF0YS0+cnhfcXVldWVzOw0KICAgICAg ICAgZnBvLT5yeHEuY2xiayA9ICh2b2lkICoqKSh1aW50cHRyX3QpZGV2LT5wb3N0X3J4X2J1cnN0 X2NiczsNCmRpZmYgLS1naXQgYS9saWIvZXRoZGV2L3J0ZV9ldGhkZXYuYyBiL2xpYi9ldGhkZXYv cnRlX2V0aGRldi5jDQppbmRleCA0ZDAzMjU1NjgzLi43YzI3ZGNmZWE0IDEwMDY0NA0KLS0tIGEv bGliL2V0aGRldi9ydGVfZXRoZGV2LmMNCisrKyBiL2xpYi9ldGhkZXYvcnRlX2V0aGRldi5jDQpA QCAtNTc4NCw2ICs1Nzg0LDM3IEBAIHJ0ZV9ldGhfdHhfcXVldWVfaW5mb19nZXQodWludDE2X3Qg cG9ydF9pZCwgdWludDE2X3QgcXVldWVfaWQsDQogICAgICAgICByZXR1cm4gMDsNCiB9DQoNCitp bnQNCitydGVfZXRoX3JlY3ljbGVfcnhfcXVldWVfaW5mb19nZXQodWludDE2X3QgcG9ydF9pZCwg dWludDE2X3QgcXVldWVfaWQsDQorIHN0cnVjdCBydGVfZXRoX3JlY3ljbGVfcnhxX2luZm8gKnJl Y3ljbGVfcnhxX2luZm8pDQorew0KKyBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldjsNCisNCisgUlRF X0VUSF9WQUxJRF9QT1JUSURfT1JfRVJSX1JFVChwb3J0X2lkLCAtRU5PREVWKTsNCisgZGV2ID0g JnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsNCisNCisgaWYgKHF1ZXVlX2lkID49IGRldi0+ZGF0 YS0+bmJfcnhfcXVldWVzKSB7DQorIFJURV9FVEhERVZfTE9HKEVSUiwgIkludmFsaWQgUnggcXVl dWVfaWQ9JXVcbiIsIHF1ZXVlX2lkKTsNCisgcmV0dXJuIC1FSU5WQUw7DQorIH0NCisNCisgaWYg KGRldi0+ZGF0YS0+cnhfcXVldWVzID09IE5VTEwgfHwNCisgZGV2LT5kYXRhLT5yeF9xdWV1ZXNb cXVldWVfaWRdID09IE5VTEwpIHsNCisgUlRFX0VUSERFVl9MT0coRVJSLA0KKyAiUnggcXVldWUg JSJQUkl1MTYiIG9mIGRldmljZSB3aXRoIHBvcnRfaWQ9JSINCisgUFJJdTE2IiBoYXMgbm90IGJl ZW4gc2V0dXBcbiIsDQorIHF1ZXVlX2lkLCBwb3J0X2lkKTsNCisgcmV0dXJuIC1FSU5WQUw7DQor IH0NCisNCisgaWYgKCpkZXYtPmRldl9vcHMtPnJlY3ljbGVfcnhxX2luZm9fZ2V0ID09IE5VTEwp DQorIHJldHVybiAtRU5PVFNVUDsNCisNCisgZGV2LT5kZXZfb3BzLT5yZWN5Y2xlX3J4cV9pbmZv X2dldChkZXYsIHF1ZXVlX2lkLCByZWN5Y2xlX3J4cV9pbmZvKTsNCisNCisgcmV0dXJuIDA7DQor fQ0KKw0KIGludA0KIHJ0ZV9ldGhfcnhfYnVyc3RfbW9kZV9nZXQodWludDE2X3QgcG9ydF9pZCwg dWludDE2X3QgcXVldWVfaWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRl X2V0aF9idXJzdF9tb2RlICptb2RlKQ0KZGlmZiAtLWdpdCBhL2xpYi9ldGhkZXYvcnRlX2V0aGRl di5oIGIvbGliL2V0aGRldi9ydGVfZXRoZGV2LmgNCmluZGV4IDk5ZmU5ZTIzOGIuLjc0MzRhYTI0 ODMgMTAwNjQ0DQotLS0gYS9saWIvZXRoZGV2L3J0ZV9ldGhkZXYuaA0KKysrIGIvbGliL2V0aGRl di9ydGVfZXRoZGV2LmgNCkBAIC0xODIwLDYgKzE4MjAsMzAgQEAgc3RydWN0IHJ0ZV9ldGhfdHhx X2luZm8gew0KICAgICAgICAgdWludDhfdCBxdWV1ZV9zdGF0ZTsgLyoqPCBvbmUgb2YgUlRFX0VU SF9RVUVVRV9TVEFURV8qLiAqLw0KIH0gX19ydGVfY2FjaGVfbWluX2FsaWduZWQ7DQoNCisvKioN CisgKiBAd2FybmluZw0KKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBzdHJ1Y3R1cmUgbWF5IGNo YW5nZSB3aXRob3V0IHByaW9yIG5vdGljZS4NCisgKg0KKyAqIEV0aGVybmV0IGRldmljZSBSeCBx dWV1ZSBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgZm9yIHJlY3ljbGluZyBtYnVmcy4NCisgKiBVc2Vk IHRvIHJldHJpZXZlIFJ4IHF1ZXVlIGluZm9ybWF0aW9uIHdoZW4gVHggcXVldWUgcmV1c2luZyBt YnVmcyBhbmQgbW92aW5nDQorICogdGhlbSBpbnRvIFJ4IG1idWYgcmluZy4NCisgKi8NCitzdHJ1 Y3QgcnRlX2V0aF9yZWN5Y2xlX3J4cV9pbmZvIHsNCisgc3RydWN0IHJ0ZV9tYnVmICoqbWJ1Zl9y aW5nOyAvKio8IG1idWYgcmluZyBvZiBSeCBxdWV1ZS4gKi8NCisgc3RydWN0IHJ0ZV9tZW1wb29s ICptcDsgLyoqPCBtZW1wb29sIG9mIFJ4IHF1ZXVlLiAqLw0KKyB1aW50MTZfdCAqcmVmaWxsX2hl YWQ7IC8qKjwgaGVhZCBvZiBSeCBxdWV1ZSByZWZpbGxpbmcgbWJ1ZnMuICovDQorIHVpbnQxNl90 ICpyZWNlaXZlX3RhaWw7IC8qKjwgdGFpbCBvZiBSeCBxdWV1ZSByZWNlaXZpbmcgcGt0cy4gKi8N CisgdWludDE2X3QgbWJ1Zl9yaW5nX3NpemU7IC8qKjwgY29uZmlndXJlZCBudW1iZXIgb2YgbWJ1 ZiByaW5nIHNpemUuICovDQorIC8qKg0KKyAqIFJlcXVpcmVtZW50IG9uIG1idWYgcmVmaWxsaW5n IGJhdGNoIHNpemUgb2YgUnggbWJ1ZiByaW5nLg0KKyAqIEZvciBzb21lIFBNRCBkcml2ZXJzLCB0 aGUgbnVtYmVyIG9mIFJ4IG1idWYgcmluZyByZWZpbGxpbmcgbWJ1ZnMNCisgKiBzaG91bGQgYmUg YWxpZ25lZCB3aXRoIG1idWYgcmluZyBzaXplLCBpbiBvcmRlciB0byBzaW1wbGlmeQ0KKyAqIHJp bmcgd3JhcHBpbmcgYXJvdW5kLg0KKyAqIFZhbHVlIDAgbWVhbnMgdGhhdCBQTUQgZHJpdmVycyBo YXZlIG5vIHJlcXVpcmVtZW50IGZvciB0aGlzLg0KKyAqLw0KKyB1aW50MTZfdCByZWZpbGxfcmVx dWlyZW1lbnQ7DQorfSBfX3J0ZV9jYWNoZV9taW5fYWxpZ25lZDsNCisNCiAvKiBHZW5lcmljIEJ1 cnN0IG1vZGUgZmxhZyBkZWZpbml0aW9uLCB2YWx1ZXMgY2FuIGJlIE9SZWQuICovDQoNCiAvKioN CkBAIC00ODA5LDYgKzQ4MzMsMzEgQEAgaW50IHJ0ZV9ldGhfcnhfcXVldWVfaW5mb19nZXQodWlu dDE2X3QgcG9ydF9pZCwgdWludDE2X3QgcXVldWVfaWQsDQogaW50IHJ0ZV9ldGhfdHhfcXVldWVf aW5mb19nZXQodWludDE2X3QgcG9ydF9pZCwgdWludDE2X3QgcXVldWVfaWQsDQogICAgICAgICBz dHJ1Y3QgcnRlX2V0aF90eHFfaW5mbyAqcWluZm8pOw0KDQorLyoqDQorICogQHdhcm5pbmcNCisg KiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2UsIG9yIGJlIHJlbW92ZWQsIHdp dGhvdXQgcHJpb3Igbm90aWNlDQorICoNCisgKiBSZXRyaWV2ZSBpbmZvcm1hdGlvbiBhYm91dCBn aXZlbiBwb3J0cydzIFJ4IHF1ZXVlIGZvciByZWN5Y2xpbmcgbWJ1ZnMuDQorICoNCisgKiBAcGFy YW0gcG9ydF9pZA0KKyAqIFRoZSBwb3J0IGlkZW50aWZpZXIgb2YgdGhlIEV0aGVybmV0IGRldmlj ZS4NCisgKiBAcGFyYW0gcXVldWVfaWQNCisgKiBUaGUgUnggcXVldWUgb24gdGhlIEV0aGVybmV0 IGRldmljZWZvciB3aGljaCBpbmZvcm1hdGlvbg0KKyAqIHdpbGwgYmUgcmV0cmlldmVkLg0KKyAq IEBwYXJhbSByZWN5Y2xlX3J4cV9pbmZvDQorICogQSBwb2ludGVyIHRvIGEgc3RydWN0dXJlIG9m IHR5cGUgKnJ0ZV9ldGhfcmVjeWNsZV9yeHFfaW5mbyogdG8gYmUgZmlsbGVkLg0KKyAqDQorICog QHJldHVybg0KKyAqIC0gMDogU3VjY2Vzcw0KKyAqIC0gLUVOT0RFVjogSWYgKnBvcnRfaWQqIGlz IGludmFsaWQuDQorICogLSAtRU5PVFNVUDogcm91dGluZSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRo ZSBkZXZpY2UgUE1ELg0KKyAqIC0gLUVJTlZBTDogVGhlIHF1ZXVlX2lkIGlzIG91dCBvZiByYW5n ZS4NCisgKi8NCitfX3J0ZV9leHBlcmltZW50YWwNCitpbnQgcnRlX2V0aF9yZWN5Y2xlX3J4X3F1 ZXVlX2luZm9fZ2V0KHVpbnQxNl90IHBvcnRfaWQsDQorIHVpbnQxNl90IHF1ZXVlX2lkLA0KKyBz dHJ1Y3QgcnRlX2V0aF9yZWN5Y2xlX3J4cV9pbmZvICpyZWN5Y2xlX3J4cV9pbmZvKTsNCisNCiAv KioNCiAgKiBSZXRyaWV2ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgUnggcGFja2V0IGJ1cnN0IG1v ZGUuDQogICoNCkBAIC02NDgzLDYgKzY1MzIsMTM5IEBAIHJ0ZV9ldGhfdHhfYnVmZmVyKHVpbnQx Nl90IHBvcnRfaWQsIHVpbnQxNl90IHF1ZXVlX2lkLA0KICAgICAgICAgcmV0dXJuIHJ0ZV9ldGhf dHhfYnVmZmVyX2ZsdXNoKHBvcnRfaWQsIHF1ZXVlX2lkLCBidWZmZXIpOw0KIH0NCg0KKy8qKg0K KyAqIEB3YXJuaW5nDQorICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdlLCBv ciBiZSByZW1vdmVkLCB3aXRob3V0IHByaW9yIG5vdGljZQ0KKyAqDQorICogUmVjeWNsZSB1c2Vk IG1idWZzIGZyb20gYSB0cmFuc21pdCBxdWV1ZSBvZiBhbiBFdGhlcm5ldCBkZXZpY2UsIGFuZCBt b3ZlDQorICogdGhlc2UgbWJ1ZnMgaW50byBhIG1idWYgcmluZyBmb3IgYSByZWNlaXZlIHF1ZXVl IG9mIGFuIEV0aGVybmV0IGRldmljZS4NCisgKiBUaGlzIGNhbiBieXBhc3MgbWVtcG9vbCBwYXRo IHRvIHNhdmUgQ1BVIGN5Y2xlcy4NCisgKg0KKyAqIFRoZSBydGVfZXRoX3JlY3ljbGVfbWJ1ZnMo KSBmdW5jdGlvbiBsb29wcywgd2l0aCBydGVfZXRoX3J4X2J1cnN0KCkgYW5kDQorICogcnRlX2V0 aF90eF9idXJzdCgpIGZ1bmN0aW9ucywgZnJlZWluZyBUeCB1c2VkIG1idWZzIGFuZCByZXBsZW5p c2hpbmcgUngNCisgKiBkZXNjcmlwdG9ycy4gVGhlIG51bWJlciBvZiByZWN5Y2xpbmcgbWJ1ZnMg ZGVwZW5kcyBvbiB0aGUgcmVxdWVzdCBvZiBSeCBtYnVmDQorICogcmluZywgd2l0aCB0aGUgY29u c3RyYWludCBvZiBlbm91Z2ggdXNlZCBtYnVmcyBmcm9tIFR4IG1idWYgcmluZy4NCisgKg0KKyAq IEZvciBlYWNoIHJlY3ljbGluZyBtYnVmcywgdGhlIHJ0ZV9ldGhfcmVjeWNsZV9tYnVmcygpIGZ1 bmN0aW9uIHBlcmZvcm1zIHRoZQ0KKyAqIGZvbGxvd2luZyBvcGVyYXRpb25zOg0KKyAqDQorICog LSBDb3B5IHVzZWQgKnJ0ZV9tYnVmKiBidWZmZXIgcG9pbnRlcnMgZnJvbSBUeCBtYnVmIHJpbmcg aW50byBSeCBtYnVmIHJpbmcuDQorICoNCisgKiAtIFJlcGxlbmlzaCB0aGUgUnggZGVzY3JpcHRv cnMgd2l0aCB0aGUgcmVjeWNsaW5nICpydGVfbWJ1ZiogbWJ1ZnMgZnJlZWQNCisgKiBmcm9tIHRo ZSBUeCBtYnVmIHJpbmcuDQorICoNCisgKiBUaGlzIGZ1bmN0aW9uIHNwaWx0cyBSeCBhbmQgVHgg cGF0aCB3aXRoIGRpZmZlcmVudCBjYWxsYmFjayBmdW5jdGlvbnMuIFRoZQ0KKyAqIGNhbGxiYWNr IGZ1bmN0aW9uIHJlY3ljbGVfdHhfbWJ1ZnNfcmV1c2UgaXMgZm9yIFR4IGRyaXZlci4gVGhlIGNh bGxiYWNrDQorICogZnVuY3Rpb24gcmVjeWNsZV9yeF9kZXNjcmlwdG9yc19yZWZpbGwgaXMgZm9y IFJ4IGRyaXZlci4gcnRlX2V0aF9yZWN5Y2xlX21idWZzKCkNCisgKiBjYW4gc3VwcG9ydCB0aGUg Y2FzZSB0aGF0IFJ4IEV0aGVybmV0IGRldmljZSBpcyBkaWZmZXJlbnQgZnJvbSBUeCBFdGhlcm5l dCBkZXZpY2UuDQorICoNCisgKiBJdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdXNlcnMgdG8g c2VsZWN0IHRoZSBSeC9UeCBxdWV1ZSBwYWlyIHRvIHJlY3ljbGUNCisgKiBtYnVmcy4gQmVmb3Jl IGNhbGwgdGhpcyBmdW5jdGlvbiwgdXNlcnMgbXVzdCBjYWxsIHJ0ZV9ldGhfcmVjeWNsZV9yeHFf aW5mb19nZXQNCisgKiBmdW5jdGlvbiB0byByZXRyaWV2ZSBzZWxlY3RlZCBSeCBxdWV1ZSBpbmZv cm1hdGlvbi4NCisgKiBAc2VlIHJ0ZV9ldGhfcmVjeWNsZV9yeHFfaW5mb19nZXQsIHN0cnVjdCBy dGVfZXRoX3JlY3ljbGVfcnhxX2luZm8NCisgKg0KKyAqIEN1cnJlbnRseSwgdGhlIHJ0ZV9ldGhf cmVjeWNsZV9tYnVmcygpIGZ1bmN0aW9uIGNhbiBvbmx5IHN1cHBvcnQgb25lLXRpbWUgcGFpcmlu Zw0KKyAqIGJldHdlZW4gdGhlIHJlY2VpdmUgcXVldWUgYW5kIHRyYW5zbWl0IHF1ZXVlLiBEbyBu b3QgcGFpciBvbmUgcmVjZWl2ZSBxdWV1ZSB3aXRoDQorICogbXVsdGlwbGUgdHJhbnNtaXQgcXVl dWVzIG9yIHBhaXIgb25lIHRyYW5zbWl0IHF1ZXVlIHdpdGggbXVsdGlwbGUgcmVjZWl2ZSBxdWV1 ZXMsDQorICogaW4gb3JkZXIgdG8gYXZvaWQgbWVtb3J5IGVycm9yIHJld3JpdGluZy4NClByb2Jh Ymx5IEkgYW0gbWlzc2luZyBzb21ldGhpbmcsIGJ1dCB3aHkgaXQgaXMgbm90IHBvc3NpYmxlIHRv IGRvIHNvbWV0aGluZyBsaWtlIHRoYXQ6DQoNCnJ0ZV9ldGhfcmVjeWNsZV9tYnVmcyhyeF9wb3J0 X2lkPVgsIHJ4X3F1ZXVlX2lkPVksIHR4X3BvcnRfaWQ9TiwgdHhfcXVldWVfaWQ9TSwgLi4uKTsN Ci4uLi4NCnJ0ZV9ldGhfcmVjeWNsZV9tYnVmcyhyeF9wb3J0X2lkPVgsIHJ4X3F1ZXVlX2lkPVks IHR4X3BvcnRfaWQ9TiwgdHhfcXVldWVfaWQ9SywgLi4uKTsNCg0KSS5FLiBmZWVkIHJ4IHF1ZXVl IGZyb20gMiB0eCBxdWV1ZXM/DQoNClR3byBwcm9ibGVtcyBmb3IgdGhpczoNCg0KICAxLiAgSWYg d2UgaGF2ZSAyIHR4IHF1ZXVlcyBmb3IgcngsIHRoZSB0aHJlYWQgc2hvdWxkIG1ha2UgdGhlIGV4 dHJhIGp1ZGdlbWVudCB0bw0KDQpkZWNpZGUgd2hpY2ggb25lIHRvIGNob29zZSBpbiB0aGUgZHJp dmVyIGxheWVyLg0KDQpPbiB0aGUgb3RoZXIgaGFuZCwgY3VycmVudCBtZWNoYW5pc20gY2FuIHN1 cHBvcnQgdXNlcnMgdG8gc3dpdGNoIDEgdHhxIHRvIGFub3RoZXIgdGltZWx5DQoNCmluIHRoZSBh cHBsaWNhdGlvbiBsYXllci4gSWYgdXNlciB3YW50IHRvIGNob29zZSBhbm90aGVyIHR4cSwgaGUg anVzdCBuZWVkIHRvIGNoYW5nZSB0aGUgdHhxX3F1ZXVlX2lkIHBhcmFtZXRlcg0KDQppbiB0aGUg QVBJLg0KDQogIDEuICBJZiB5b3Ugd2FudCBvbmUgcnhxIHRvIHN1cHBvcnQgdHdvIHR4cSBhdCB0 aGUgc2FtZSB0aW1lLCB0aGlzIG5lZWRzIHRvIGFkZCBzcGlubG9jayBvbiBndWFyZCB2YXJpYWJs ZSB0bw0KDQphdm9pZCBtdWx0aS10aHJlYWQgY29uZmxpY3QuIFNwaW5sb2NrIHdpbGwgZGVjcmVh c2UgdGhlIGRhdGEtcGF0aCBwZXJmb3JtYW5jZSBncmVhdGx5LiAgVGh1cywgd2UgZG8gbm90IGNv bnNpZGVyDQoNCjEgcnhxIG1hcHBpbmcgbXVsdGlwbGUgdHhxcyBoZXJlLg0KDQorICoNCisgKiBA cGFyYW0gcnhfcG9ydF9pZA0KKyAqIFBvcnQgaWRlbnRpZnlpbmcgdGhlIHJlY2VpdmUgc2lkZS4N CisgKiBAcGFyYW0gcnhfcXVldWVfaWQNCisgKiBUaGUgaW5kZXggb2YgdGhlIHJlY2VpdmUgcXVl dWUgaWRlbnRpZnlpbmcgdGhlIHJlY2VpdmUgc2lkZS4NCisgKiBUaGUgdmFsdWUgbXVzdCBiZSBp biB0aGUgcmFuZ2UgWzAsIG5iX3J4X3F1ZXVlIC0gMV0gcHJldmlvdXNseSBzdXBwbGllZA0KKyAq IHRvIHJ0ZV9ldGhfZGV2X2NvbmZpZ3VyZSgpLg0KKyAqIEBwYXJhbSB0eF9wb3J0X2lkDQorICog UG9ydCBpZGVudGlmeWluZyB0aGUgdHJhbnNtaXQgc2lkZS4NCisgKiBAcGFyYW0gdHhfcXVldWVf aWQNCisgKiBUaGUgaW5kZXggb2YgdGhlIHRyYW5zbWl0IHF1ZXVlIGlkZW50aWZ5aW5nIHRoZSB0 cmFuc21pdCBzaWRlLg0KKyAqIFRoZSB2YWx1ZSBtdXN0IGJlIGluIHRoZSByYW5nZSBbMCwgbmJf dHhfcXVldWUgLSAxXSBwcmV2aW91c2x5IHN1cHBsaWVkDQorICogdG8gcnRlX2V0aF9kZXZfY29u ZmlndXJlKCkuDQorICogQHBhcmFtIHJlY3ljbGVfcnhxX2luZm8NCisgKiBBIHBvaW50ZXIgdG8g YSBzdHJ1Y3R1cmUgb2YgdHlwZSAqcnRlX2V0aF9yZWN5Y2xlX3J4cV9pbmZvKiB3aGljaCBjb250 YWlucw0KKyAqIHRoZSBpbmZvcm1hdGlvbiBvZiB0aGUgUnggcXVldWUgbWJ1ZiByaW5nLg0KKyAq IEByZXR1cm4NCisgKiBUaGUgbnVtYmVyIG9mIHJlY3ljbGluZyBtYnVmcy4NCisgKi8NCitfX3J0 ZV9leHBlcmltZW50YWwNCitzdGF0aWMgaW5saW5lIHVpbnQxNl90DQorcnRlX2V0aF9yZWN5Y2xl X21idWZzKHVpbnQxNl90IHJ4X3BvcnRfaWQsIHVpbnQxNl90IHJ4X3F1ZXVlX2lkLA0KKyB1aW50 MTZfdCB0eF9wb3J0X2lkLCB1aW50MTZfdCB0eF9xdWV1ZV9pZCwNCisgc3RydWN0IHJ0ZV9ldGhf cmVjeWNsZV9yeHFfaW5mbyAqcmVjeWNsZV9yeHFfaW5mbykNCit7DQorIHN0cnVjdCBydGVfZXRo X2ZwX29wcyAqcDsNCisgdm9pZCAqcWQ7DQorIHVpbnQxNl90IG5iX21idWZzOw0KKw0KKyNpZmRl ZiBSVEVfRVRIREVWX0RFQlVHX1RYDQorIGlmICh0eF9wb3J0X2lkID49IFJURV9NQVhfRVRIUE9S VFMgfHwNCisgdHhfcXVldWVfaWQgPj0gUlRFX01BWF9RVUVVRVNfUEVSX1BPUlQpIHsNCisgUlRF X0VUSERFVl9MT0coRVJSLA0KKyAiSW52YWxpZCB0eF9wb3J0X2lkPSV1IG9yIHR4X3F1ZXVlX2lk PSV1XG4iLA0KKyB0eF9wb3J0X2lkLCB0eF9xdWV1ZV9pZCk7DQorIHJldHVybiAwOw0KKyB9DQor I2VuZGlmDQorDQorIC8qIGZldGNoIHBvaW50ZXIgdG8gcXVldWUgZGF0YSAqLw0KKyBwID0gJnJ0 ZV9ldGhfZnBfb3BzW3R4X3BvcnRfaWRdOw0KKyBxZCA9IHAtPnR4cS5kYXRhW3R4X3F1ZXVlX2lk XTsNCisNCisjaWZkZWYgUlRFX0VUSERFVl9ERUJVR19UWA0KKyBSVEVfRVRIX1ZBTElEX1BPUlRJ RF9PUl9FUlJfUkVUKHR4X3BvcnRfaWQsIDApOw0KKw0KKyBpZiAocWQgPT0gTlVMTCkgew0KKyBS VEVfRVRIREVWX0xPRyhFUlIsICJJbnZhbGlkIFR4IHF1ZXVlX2lkPSV1IGZvciBwb3J0X2lkPSV1 XG4iLA0KKyB0eF9xdWV1ZV9pZCwgdHhfcG9ydF9pZCk7DQorIHJldHVybiAwOw0KKyB9DQorI2Vu ZGlmDQorIGlmIChwLT5yZWN5Y2xlX3R4X21idWZzX3JldXNlID09IE5VTEwpDQorIHJldHVybiAw Ow0KKw0KKyAvKiBDb3B5IHVzZWQgKnJ0ZV9tYnVmKiBidWZmZXIgcG9pbnRlcnMgZnJvbSBUeCBt YnVmIHJpbmcNCisgKiBpbnRvIFJ4IG1idWYgcmluZy4NCisgKi8NCisgbmJfbWJ1ZnMgPSBwLT5y ZWN5Y2xlX3R4X21idWZzX3JldXNlKHFkLCByZWN5Y2xlX3J4cV9pbmZvKTsNCisNCisgLyogSWYg bm8gcmVjeWNsaW5nIG1idWZzLCByZXR1cm4gMC4gKi8NCisgaWYgKG5iX21idWZzID09IDApDQor IHJldHVybiAwOw0KKw0KKyNpZmRlZiBSVEVfRVRIREVWX0RFQlVHX1JYDQorIGlmIChyeF9wb3J0 X2lkID49IFJURV9NQVhfRVRIUE9SVFMgfHwNCisgcnhfcXVldWVfaWQgPj0gUlRFX01BWF9RVUVV RVNfUEVSX1BPUlQpIHsNCisgUlRFX0VUSERFVl9MT0coRVJSLCAiSW52YWxpZCByeF9wb3J0X2lk PSV1IG9yIHJ4X3F1ZXVlX2lkPSV1XG4iLA0KKyByeF9wb3J0X2lkLCByeF9xdWV1ZV9pZCk7DQor IHJldHVybiAwOw0KKyB9DQorI2VuZGlmDQorDQorIC8qIGZldGNoIHBvaW50ZXIgdG8gcXVldWUg ZGF0YSAqLw0KKyBwID0gJnJ0ZV9ldGhfZnBfb3BzW3J4X3BvcnRfaWRdOw0KKyBxZCA9IHAtPnJ4 cS5kYXRhW3J4X3F1ZXVlX2lkXTsNCisNCisjaWZkZWYgUlRFX0VUSERFVl9ERUJVR19SWA0KKyBS VEVfRVRIX1ZBTElEX1BPUlRJRF9PUl9FUlJfUkVUKHJ4X3BvcnRfaWQsIDApOw0KKw0KKyBpZiAo cWQgPT0gTlVMTCkgew0KKyBSVEVfRVRIREVWX0xPRyhFUlIsICJJbnZhbGlkIFJ4IHF1ZXVlX2lk PSV1IGZvciBwb3J0X2lkPSV1XG4iLA0KKyByeF9xdWV1ZV9pZCwgcnhfcG9ydF9pZCk7DQorIHJl dHVybiAwOw0KKyB9DQorI2VuZGlmDQorDQorIGlmIChwLT5yZWN5Y2xlX3J4X2Rlc2NyaXB0b3Jz X3JlZmlsbCA9PSBOVUxMKQ0KKyByZXR1cm4gMDsNCisNCisgLyogUmVwbGVuaXNoIHRoZSBSeCBk ZXNjcmlwdG9ycyB3aXRoIHRoZSByZWN5Y2xpbmcNCisgKiBpbnRvIFJ4IG1idWYgcmluZy4NCisg Ki8NCisgcC0+cmVjeWNsZV9yeF9kZXNjcmlwdG9yc19yZWZpbGwocWQsIG5iX21idWZzKTsNCisN CisgcmV0dXJuIG5iX21idWZzOw0KK30NCisNCiAvKioNCiAgKiBAd2FybmluZw0KICAqIEBiIEVY UEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZQ0KZGlm ZiAtLWdpdCBhL2xpYi9ldGhkZXYvcnRlX2V0aGRldl9jb3JlLmggYi9saWIvZXRoZGV2L3J0ZV9l dGhkZXZfY29yZS5oDQppbmRleCBkY2Y4YWRhYjkyLi5hMmU2ZWE2YjZjIDEwMDY0NA0KLS0tIGEv bGliL2V0aGRldi9ydGVfZXRoZGV2X2NvcmUuaA0KKysrIGIvbGliL2V0aGRldi9ydGVfZXRoZGV2 X2NvcmUuaA0KQEAgLTU2LDYgKzU2LDEzIEBAIHR5cGVkZWYgaW50ICgqZXRoX3J4X2Rlc2NyaXB0 b3Jfc3RhdHVzX3QpKHZvaWQgKnJ4cSwgdWludDE2X3Qgb2Zmc2V0KTsNCiAvKiogQGludGVybmFs IENoZWNrIHRoZSBzdGF0dXMgb2YgYSBUeCBkZXNjcmlwdG9yICovDQogdHlwZWRlZiBpbnQgKCpl dGhfdHhfZGVzY3JpcHRvcl9zdGF0dXNfdCkodm9pZCAqdHhxLCB1aW50MTZfdCBvZmZzZXQpOw0K DQorLyoqIEBpbnRlcm5hbCBDb3B5IHVzZWQgbWJ1ZnMgZnJvbSBUeCBtYnVmIHJpbmcgaW50byBS eCBtYnVmIHJpbmcgKi8NCit0eXBlZGVmIHVpbnQxNl90ICgqZXRoX3JlY3ljbGVfdHhfbWJ1ZnNf cmV1c2VfdCkodm9pZCAqdHhxLA0KKyBzdHJ1Y3QgcnRlX2V0aF9yZWN5Y2xlX3J4cV9pbmZvICpy ZWN5Y2xlX3J4cV9pbmZvKTsNCisNCisvKiogQGludGVybmFsIFJlZmlsbCBSeCBkZXNjcmlwdG9y cyB3aXRoIHRoZSByZWN5Y2xpbmcgbWJ1ZnMgKi8NCit0eXBlZGVmIHZvaWQgKCpldGhfcmVjeWNs ZV9yeF9kZXNjcmlwdG9yc19yZWZpbGxfdCkodm9pZCAqcnhxLCB1aW50MTZfdCBuYik7DQorDQog LyoqDQogICogQGludGVybmFsDQogICogU3RydWN0dXJlIHVzZWQgdG8gaG9sZCBvcGFxdWUgcG9p bnRlcnMgdG8gaW50ZXJuYWwgZXRoZGV2IFJ4L1R4DQpAQCAtOTAsOSArOTcsMTEgQEAgc3RydWN0 IHJ0ZV9ldGhfZnBfb3BzIHsNCiAgICAgICAgIGV0aF9yeF9xdWV1ZV9jb3VudF90IHJ4X3F1ZXVl X2NvdW50Ow0KICAgICAgICAgLyoqIENoZWNrIHRoZSBzdGF0dXMgb2YgYSBSeCBkZXNjcmlwdG9y LiAqLw0KICAgICAgICAgZXRoX3J4X2Rlc2NyaXB0b3Jfc3RhdHVzX3QgcnhfZGVzY3JpcHRvcl9z dGF0dXM7DQorIC8qKiBSZWZpbGwgUnggZGVzY3JpcHRvcnMgd2l0aCB0aGUgcmVjeWNsaW5nIG1i dWZzLiAqLw0KKyBldGhfcmVjeWNsZV9yeF9kZXNjcmlwdG9yc19yZWZpbGxfdCByZWN5Y2xlX3J4 X2Rlc2NyaXB0b3JzX3JlZmlsbDsNCkkgYW0gYWZyYWlkIHdlIGNhbid0IHB1dCBuZXcgZmllbGRz IGhlcmUgd2l0aG91dCBBQkkgYnJlYWthZ2UuDQoNCkFncmVlDQoNCkl0IGhhcyB0byBiZSBiZWxv dyByeHEuDQpOb3cgdGhpbmtpbmcgYWJvdXQgY3VycmVudCBsYXlvdXQgcHJvYmFibHkgbm90IHRo ZSBiZXN0IG9uZSwNCmFuZCB3aGVuIGludHJvZHVjaW5nIHRoaXMgc3RydWN0LCBJIHNob3VsZCBw cm9iYWJseSBwdXQgcnhxIGVpdGhlcg0Kb24gdGhlIHRvcCBvZiB0aGUgc3RydWN0LCBvciBvbiB0 aGUgbmV4dCBjYWNoZSBsaW5lLg0KQnV0IHN1Y2ggY2hhbmdlIGlzIG5vdCBwb3NzaWJsZSByaWdo dCBub3cgYW55d2F5Lg0KU2FtZSBzdG9yeSBmb3IgdHhxLg0KDQpUaHVzIHdlIHNob3VsZCByZWFy cmFuZ2UgdGhlIHN0cnVjdHVyZSBsaWtlIGJlbG9377yaDQpzdHJ1Y3QgcnRlX2V0aF9mcF9vcHMg ew0KICAgIHN0cnVjdCBydGVfZXRoZGV2X3FkYXRhIHJ4cTsNCiAgICAgICAgIGV0aF9yeF9idXJz dF90IHJ4X3BrdF9idXJzdDsNCiAgICAgICAgIGV0aF9yeF9xdWV1ZV9jb3VudF90IHJ4X3F1ZXVl X2NvdW50Ow0KICAgICAgICAgZXRoX3J4X2Rlc2NyaXB0b3Jfc3RhdHVzX3QgcnhfZGVzY3JpcHRv cl9zdGF0dXM7DQogICAgICAgZXRoX3JlY3ljbGVfcnhfZGVzY3JpcHRvcnNfcmVmaWxsX3QgcmVj eWNsZV9yeF9kZXNjcmlwdG9yc19yZWZpbGw7DQogICAgICAgICAgICAgIHVpbnRwdHJfdCByZXNl cnZlZDFbMl07DQp9DQoNCg0KDQogICAgICAgICAvKiogUnggcXVldWVzIGRhdGEuICovDQogICAg ICAgICBzdHJ1Y3QgcnRlX2V0aGRldl9xZGF0YSByeHE7DQotIHVpbnRwdHJfdCByZXNlcnZlZDFb M107DQorIHVpbnRwdHJfdCByZXNlcnZlZDFbMl07DQogICAgICAgICAvKipAfSovDQoNCiAgICAg ICAgIC8qKkB7Ki8NCkBAIC0xMDYsOSArMTE1LDExIEBAIHN0cnVjdCBydGVfZXRoX2ZwX29wcyB7 DQogICAgICAgICBldGhfdHhfcHJlcF90IHR4X3BrdF9wcmVwYXJlOw0KICAgICAgICAgLyoqIENo ZWNrIHRoZSBzdGF0dXMgb2YgYSBUeCBkZXNjcmlwdG9yLiAqLw0KICAgICAgICAgZXRoX3R4X2Rl c2NyaXB0b3Jfc3RhdHVzX3QgdHhfZGVzY3JpcHRvcl9zdGF0dXM7DQorIC8qKiBDb3B5IHVzZWQg bWJ1ZnMgZnJvbSBUeCBtYnVmIHJpbmcgaW50byBSeC4gKi8NCisgZXRoX3JlY3ljbGVfdHhfbWJ1 ZnNfcmV1c2VfdCByZWN5Y2xlX3R4X21idWZzX3JldXNlOw0KICAgICAgICAgLyoqIFR4IHF1ZXVl cyBkYXRhLiAqLw0KICAgICAgICAgc3RydWN0IHJ0ZV9ldGhkZXZfcWRhdGEgdHhxOw0KLSB1aW50 cHRyX3QgcmVzZXJ2ZWQyWzNdOw0KKyB1aW50cHRyX3QgcmVzZXJ2ZWQyWzJdOw0KICAgICAgICAg LyoqQH0qLw0KDQogfSBfX3J0ZV9jYWNoZV9hbGlnbmVkOw0KZGlmZiAtLWdpdCBhL2xpYi9ldGhk ZXYvdmVyc2lvbi5tYXAgYi9saWIvZXRoZGV2L3ZlcnNpb24ubWFwDQppbmRleCAzNTdkMWE4OGMw Li40NWM0MTdmNmJkIDEwMDY0NA0KLS0tIGEvbGliL2V0aGRldi92ZXJzaW9uLm1hcA0KKysrIGIv bGliL2V0aGRldi92ZXJzaW9uLm1hcA0KQEAgLTI5OSw2ICsyOTksMTAgQEAgRVhQRVJJTUVOVEFM IHsNCiAgICAgICAgIHJ0ZV9mbG93X2FjdGlvbl9oYW5kbGVfcXVlcnlfdXBkYXRlOw0KICAgICAg ICAgcnRlX2Zsb3dfYXN5bmNfYWN0aW9uX2hhbmRsZV9xdWVyeV91cGRhdGU7DQogICAgICAgICBy dGVfZmxvd19hc3luY19jcmVhdGVfYnlfaW5kZXg7DQorDQorICMgYWRkZWQgaW4gMjMuMDcNCisg cnRlX2V0aF9yZWN5Y2xlX21idWZzOw0KKyBydGVfZXRoX3JlY3ljbGVfcnhfcXVldWVfaW5mb19n ZXQ7DQogfTsNCg0KIElOVEVSTkFMIHsNCi0tDQoyLjI1LjENCg0K --_000_AS8PR08MB7718588CACBAF7D0D53F2EB8C852AAS8PR08MB7718eurp_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m YWNlDQoJe2ZvbnQtZmFtaWx5OkRlbmdYaWFuOw0KCXBhbm9zZS0xOjIgMSA2IDAgMyAxIDEgMSAx IDE7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJpOw0KCXBhbm9zZS0xOjIgMTUg NSAyIDIgMiA0IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IlxARGVuZ1hpYW4i Ow0KCXBhbm9zZS0xOjIgMSA2IDAgMyAxIDEgMSAxIDE7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMg Ki8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBp bjsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlm O30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0K CWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLk1zb0xpc3RQYXJh Z3JhcGgsIGxpLk1zb0xpc3RQYXJhZ3JhcGgsIGRpdi5Nc29MaXN0UGFyYWdyYXBoDQoJe21zby1z dHlsZS1wcmlvcml0eTozNDsNCgltYXJnaW4tdG9wOjBpbjsNCgltYXJnaW4tcmlnaHQ6MGluOw0K CW1hcmdpbi1ib3R0b206MGluOw0KCW1hcmdpbi1sZWZ0Oi41aW47DQoJZm9udC1zaXplOjExLjBw dDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQpzcGFuLkVtYWlsU3R5bGUx OQ0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWlseToiQ2FsaWJy aSIsc2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCi5Nc29DaHBEZWZhdWx0DQoJe21z by1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1p bHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJbXNvLWxpZ2F0dXJlczpub25lO30NCkBwYWdlIFdv cmRTZWN0aW9uMQ0KCXtzaXplOjguNWluIDExLjBpbjsNCgltYXJnaW46MS4waW4gMS4waW4gMS4w aW4gMS4waW47fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQovKiBM aXN0IERlZmluaXRpb25zICovDQpAbGlzdCBsMA0KCXttc28tbGlzdC1pZDo3NjAwMjY0MDY7DQoJ bXNvLWxpc3QtdGVtcGxhdGUtaWRzOjYzMDg4NjUyO30NCkBsaXN0IGwwOmxldmVsMQ0KCXttc28t bGV2ZWwtc3RhcnQtYXQ6MjsNCgltc28tbGV2ZWwtdGFiLXN0b3A6LjVpbjsNCgltc28tbGV2ZWwt bnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluO30NCkBsaXN0IGwxDQoJ e21zby1saXN0LWlkOjEyOTY1MjE0NjU7DQoJbXNvLWxpc3QtdGVtcGxhdGUtaWRzOjY1OTgzNDUy ODt9DQpAbGlzdCBsMg0KCXttc28tbGlzdC1pZDoxNDU5NDkxNjY2Ow0KCW1zby1saXN0LXR5cGU6 aHlicmlkOw0KCW1zby1saXN0LXRlbXBsYXRlLWlkczotNzgyMTgzMDQ2IDY3Njk4NzAzIDY3Njk4 NzEzIDY3Njk4NzE1IDY3Njk4NzAzIDY3Njk4NzEzIDY3Njk4NzE1IDY3Njk4NzAzIDY3Njk4NzEz IDY3Njk4NzE1O30NCkBsaXN0IGwyOmxldmVsMQ0KCXttc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsN Cgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluO30N CkBsaXN0IGwyOmxldmVsMg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDphbHBoYS1sb3dlcjsN Cgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxl ZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluO30NCkBsaXN0IGwyOmxldmVsMw0KCXttc28tbGV2ZWwt bnVtYmVyLWZvcm1hdDpyb21hbi1sb3dlcjsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCglt c28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOnJpZ2h0Ow0KCXRleHQtaW5kZW50Oi05LjBwdDt9DQpA bGlzdCBsMjpsZXZlbDQNCgl7bXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51 bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjt9DQpAbGlzdCBsMjpsZXZl bDUNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YWxwaGEtbG93ZXI7DQoJbXNvLWxldmVsLXRh Yi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5k ZW50Oi0uMjVpbjt9DQpAbGlzdCBsMjpsZXZlbDYNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6 cm9tYW4tbG93ZXI7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJl ci1wb3NpdGlvbjpyaWdodDsNCgl0ZXh0LWluZGVudDotOS4wcHQ7fQ0KQGxpc3QgbDI6bGV2ZWw3 DQoJe21zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246 bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47fQ0KQGxpc3QgbDI6bGV2ZWw4DQoJe21zby1sZXZl bC1udW1iZXItZm9ybWF0OmFscGhhLWxvd2VyOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0K CW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47fQ0K QGxpc3QgbDI6bGV2ZWw5DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OnJvbWFuLWxvd2VyOw0K CW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246cmln aHQ7DQoJdGV4dC1pbmRlbnQ6LTkuMHB0O30NCm9sDQoJe21hcmdpbi1ib3R0b206MGluO30NCnVs DQoJe21hcmdpbi1ib3R0b206MGluO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4 bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94 bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2 OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFw ZWxheW91dD48L3htbD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLVVTIiBs aW5rPSJibHVlIiB2bGluaz0icHVycGxlIiBzdHlsZT0id29yZC13cmFwOmJyZWFrLXdvcmQiPg0K PGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoYW5rcyBm b3IgdGhlIGNvbW1lbnRzLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86 cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpz b2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNC4wcHQiPg0KPGRpdj4NCjxkaXYg c3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5n OjMuMHB0IDBpbiAwaW4gMGluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPkZyb206PC9iPiDQ mtC+0L3RgdGC0LDQvdGC0LjQvSDQkNC90LDQvdGM0LXQsiAmbHQ7a29uc3RhbnRpbi52LmFuYW55 ZXZAeWFuZGV4LnJ1Jmd0Ow0KPGJyPg0KPGI+U2VudDo8L2I+IE1vbmRheSwgSnVuZSA1LCAyMDIz IDg6NTQgUE08YnI+DQo8Yj5Ubzo8L2I+IEZlaWZlaSBXYW5nICZsdDtGZWlmZWkuV2FuZzJAYXJt LmNvbSZndDs7IHRob21hc0Btb25qYWxvbi5uZXQ7IEZlcnJ1aCBZaWdpdCAmbHQ7ZmVycnVoLnlp Z2l0QGFtZC5jb20mZ3Q7OyBBbmRyZXcgUnliY2hlbmtvICZsdDthbmRyZXcucnliY2hlbmtvQG9r dGV0bGFicy5ydSZndDs8YnI+DQo8Yj5DYzo8L2I+IGRldkBkcGRrLm9yZzsgbmQgJmx0O25kQGFy bS5jb20mZ3Q7OyBIb25uYXBwYSBOYWdhcmFoYWxsaSAmbHQ7SG9ubmFwcGEuTmFnYXJhaGFsbGlA YXJtLmNvbSZndDs7IFJ1aWZlbmcgV2FuZyAmbHQ7UnVpZmVuZy5XYW5nQGFybS5jb20mZ3Q7PGJy Pg0KPGI+U3ViamVjdDo8L2I+IFJlOiBbUEFUQ0ggdjYgMS80XSBldGhkZXY6IGFkZCBBUEkgZm9y IG1idWZzIHJlY3ljbGUgbW9kZTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNs YXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIj5IaSBGZWlmZWksPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiPmZldyBtb3JlIGNvbW1lbnRzIGZyb20gbWUsIHNlZSBiZWxv dy48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6 NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8cD5BZGQgJ3J0ZV9ldGhfcmVjeWNsZV9yeF9x dWV1ZV9pbmZvX2dldCcgYW5kICdydGVfZXRoX3JlY3ljbGVfbWJ1ZnMnPGJyPg0KQVBJcyB0byBy ZWN5Y2xlIHVzZWQgbWJ1ZnMgZnJvbSBhIHRyYW5zbWl0IHF1ZXVlIG9mIGFuIEV0aGVybmV0IGRl dmljZSw8YnI+DQphbmQgbW92ZSB0aGVzZSBtYnVmcyBpbnRvIGEgbWJ1ZiByaW5nIGZvciBhIHJl Y2VpdmUgcXVldWUgb2YgYW4gRXRoZXJuZXQ8YnI+DQpkZXZpY2UuIFRoaXMgY2FuIGJ5cGFzcyBt ZW1wb29sICdwdXQvZ2V0JyBvcGVyYXRpb25zIGhlbmNlIHNhdmluZyBDUFU8YnI+DQpjeWNsZXMu PGJyPg0KPGJyPg0KRm9yIGVhY2ggcmVjeWNsaW5nIG1idWZzLCB0aGUgcnRlX2V0aF9yZWN5Y2xl X21idWZzKCkgZnVuY3Rpb24gcGVyZm9ybXM8YnI+DQp0aGUgZm9sbG93aW5nIG9wZXJhdGlvbnM6 PGJyPg0KLSBDb3B5IHVzZWQgKnJ0ZV9tYnVmKiBidWZmZXIgcG9pbnRlcnMgZnJvbSBUeCBtYnVm IHJpbmcgaW50byBSeCBtYnVmPGJyPg0KcmluZy48YnI+DQotIFJlcGxlbmlzaCB0aGUgUnggZGVz Y3JpcHRvcnMgd2l0aCB0aGUgcmVjeWNsaW5nICpydGVfbWJ1ZiogbWJ1ZnMgZnJlZWQ8YnI+DQpm cm9tIHRoZSBUeCBtYnVmIHJpbmcuPGJyPg0KPGJyPg0KU3VnZ2VzdGVkLWJ5OiBIb25uYXBwYSBO YWdhcmFoYWxsaSAmbHQ7PGEgaHJlZj0ibWFpbHRvOmhvbm5hcHBhLm5hZ2FyYWhhbGxpQGFybS5j b20iPmhvbm5hcHBhLm5hZ2FyYWhhbGxpQGFybS5jb208L2E+Jmd0Ozxicj4NClN1Z2dlc3RlZC1i eTogUnVpZmVuZyBXYW5nICZsdDs8YSBocmVmPSJtYWlsdG86cnVpZmVuZy53YW5nQGFybS5jb20i PnJ1aWZlbmcud2FuZ0Bhcm0uY29tPC9hPiZndDs8YnI+DQpTaWduZWQtb2ZmLWJ5OiBGZWlmZWkg V2FuZyAmbHQ7PGEgaHJlZj0ibWFpbHRvOmZlaWZlaS53YW5nMkBhcm0uY29tIj5mZWlmZWkud2Fu ZzJAYXJtLmNvbTwvYT4mZ3Q7PGJyPg0KUmV2aWV3ZWQtYnk6IFJ1aWZlbmcgV2FuZyAmbHQ7PGEg aHJlZj0ibWFpbHRvOnJ1aWZlbmcud2FuZ0Bhcm0uY29tIj5ydWlmZW5nLndhbmdAYXJtLmNvbTwv YT4mZ3Q7PGJyPg0KUmV2aWV3ZWQtYnk6IEhvbm5hcHBhIE5hZ2FyYWhhbGxpICZsdDs8YSBocmVm PSJtYWlsdG86aG9ubmFwcGEubmFnYXJhaGFsbGlAYXJtLmNvbSI+aG9ubmFwcGEubmFnYXJhaGFs bGlAYXJtLmNvbTwvYT4mZ3Q7PGJyPg0KLS0tPGJyPg0KJm5ic3A7ZG9jL2d1aWRlcy9yZWxfbm90 ZXMvcmVsZWFzZV8yM18wNy5yc3QgfCA3ICs8YnI+DQombmJzcDtsaWIvZXRoZGV2L2V0aGRldl9k cml2ZXIuaCB8IDEwICsrPGJyPg0KJm5ic3A7bGliL2V0aGRldi9ldGhkZXZfcHJpdmF0ZS5jIHwg MiArPGJyPg0KJm5ic3A7bGliL2V0aGRldi9ydGVfZXRoZGV2LmMgfCAzMSArKysrKzxicj4NCiZu YnNwO2xpYi9ldGhkZXYvcnRlX2V0aGRldi5oIHwgMTgyICsrKysrKysrKysrKysrKysrKysrKysr Kys8YnI+DQombmJzcDtsaWIvZXRoZGV2L3J0ZV9ldGhkZXZfY29yZS5oIHwgMTUgKy08YnI+DQom bmJzcDtsaWIvZXRoZGV2L3ZlcnNpb24ubWFwIHwgNCArPGJyPg0KJm5ic3A7NyBmaWxlcyBjaGFu Z2VkLCAyNDkgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSk8YnI+DQo8YnI+DQpkaWZmIC0t Z2l0IGEvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yM18wNy5yc3QgYi9kb2MvZ3VpZGVz L3JlbF9ub3Rlcy9yZWxlYXNlXzIzXzA3LnJzdDxicj4NCmluZGV4IGE5YjEyOTM2ODkuLmYyNzkw MzZjYjkgMTAwNjQ0PGJyPg0KLS0tIGEvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yM18w Ny5yc3Q8YnI+DQorKysgYi9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIzXzA3LnJzdDxi cj4NCkBAIC01NSw2ICs1NSwxMyBAQCBOZXcgRmVhdHVyZXM8YnI+DQombmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDtBbHNvLCBtYWtlIHN1cmUgdG8gc3RhcnQgdGhlIGFjdHVhbCB0 ZXh0IGF0IHRoZSBtYXJnaW4uPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PTxicj4NCiZuYnNwOzxicj4NCisqICoqQWRkIG1idWZzIHJlY3ljbGluZyBzdXBwb3J0LiAqKjxi cj4NCisgQWRkZWQgYGBydGVfZXRoX3JlY3ljbGVfcnhfcXVldWVfaW5mb19nZXRgYCBhbmQgYGBy dGVfZXRoX3JlY3ljbGVfbWJ1ZnNgYDxicj4NCisgQVBJcyB3aGljaCBhbGxvdyB0aGUgdXNlciB0 byBjb3B5IHVzZWQgbWJ1ZnMgZnJvbSB0aGUgVHggbWJ1ZiByaW5nPGJyPg0KKyBpbnRvIHRoZSBS eCBtYnVmIHJpbmcuIFRoaXMgZmVhdHVyZSBzdXBwb3J0cyB0aGUgY2FzZSB0aGF0IHRoZSBSeCBF dGhlcm5ldDxicj4NCisgZGV2aWNlIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBUeCBFdGhlcm5ldCBk ZXZpY2Ugd2l0aCByZXNwZWN0aXZlIGRyaXZlcjxicj4NCisgY2FsbGJhY2sgZnVuY3Rpb25zIGlu IGBgcnRlX2V0aF9yZWN5Y2xlX21idWZzYGAuPGJyPg0KKzxicj4NCiZuYnNwOzxicj4NCiZuYnNw O1JlbW92ZWQgSXRlbXM8YnI+DQombmJzcDstLS0tLS0tLS0tLS0tPGJyPg0KZGlmZiAtLWdpdCBh L2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5oIGIvbGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmg8 YnI+DQppbmRleCAyYzlkNjE1ZmI1Li5jNjcyM2Q1Mjc3IDEwMDY0NDxicj4NCi0tLSBhL2xpYi9l dGhkZXYvZXRoZGV2X2RyaXZlci5oPGJyPg0KKysrIGIvbGliL2V0aGRldi9ldGhkZXZfZHJpdmVy Lmg8YnI+DQpAQCAtNTksNiArNTksMTAgQEAgc3RydWN0IHJ0ZV9ldGhfZGV2IHs8YnI+DQombmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtldGhfcnhf ZGVzY3JpcHRvcl9zdGF0dXNfdCByeF9kZXNjcmlwdG9yX3N0YXR1czs8YnI+DQombmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsvKiogQ2hlY2sgdGhl IHN0YXR1cyBvZiBhIFR4IGRlc2NyaXB0b3IgKi88YnI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtldGhfdHhfZGVzY3JpcHRvcl9zdGF0dXNf dCB0eF9kZXNjcmlwdG9yX3N0YXR1czs8YnI+DQorIC8qKiBQb2ludGVyIHRvIFBNRCB0cmFuc21p dCBtYnVmcyByZXVzZSBmdW5jdGlvbiAqLzxicj4NCisgZXRoX3JlY3ljbGVfdHhfbWJ1ZnNfcmV1 c2VfdCByZWN5Y2xlX3R4X21idWZzX3JldXNlOzxicj4NCisgLyoqIFBvaW50ZXIgdG8gUE1EIHJl Y2VpdmUgZGVzY3JpcHRvcnMgcmVmaWxsIGZ1bmN0aW9uICovPGJyPg0KKyBldGhfcmVjeWNsZV9y eF9kZXNjcmlwdG9yc19yZWZpbGxfdCByZWN5Y2xlX3J4X2Rlc2NyaXB0b3JzX3JlZmlsbDs8YnI+ DQombmJzcDs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsvKio8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsqIERldmljZSBkYXRhIHRoYXQgaXMgc2hhcmVkIGJldHdl ZW4gcHJpbWFyeSBhbmQgc2Vjb25kYXJ5IHByb2Nlc3Nlczxicj4NCkBAIC01MDQsNiArNTA4LDEw IEBAIHR5cGVkZWYgdm9pZCAoKmV0aF9yeHFfaW5mb19nZXRfdCkoc3RydWN0IHJ0ZV9ldGhfZGV2 ICpkZXYsPGJyPg0KJm5ic3A7dHlwZWRlZiB2b2lkICgqZXRoX3R4cV9pbmZvX2dldF90KShzdHJ1 Y3QgcnRlX2V0aF9kZXYgKmRldiw8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt1aW50MTZfdCB0eF9xdWV1ZV9pZCwgc3RydWN0IHJ0ZV9l dGhfdHhxX2luZm8gKnFpbmZvKTs8YnI+DQombmJzcDs8YnI+DQordHlwZWRlZiB2b2lkICgqZXRo X3JlY3ljbGVfcnhxX2luZm9fZ2V0X3QpKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LDxicj4NCisg dWludDE2X3QgcnhfcXVldWVfaWQsPGJyPg0KKyBzdHJ1Y3QgcnRlX2V0aF9yZWN5Y2xlX3J4cV9p bmZvICpyZWN5Y2xlX3J4cV9pbmZvKTs8YnI+DQorPGJyPg0KJm5ic3A7dHlwZWRlZiBpbnQgKCpl dGhfYnVyc3RfbW9kZV9nZXRfdCkoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsPGJyPg0KJm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dWludDE2X3Qg cXVldWVfaWQsIHN0cnVjdCBydGVfZXRoX2J1cnN0X21vZGUgKm1vZGUpOzxicj4NCiZuYnNwOzxi cj4NCkBAIC0xMjQ3LDYgKzEyNTUsOCBAQCBzdHJ1Y3QgZXRoX2Rldl9vcHMgezxicj4NCiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2V0aF9yeHFf aW5mb19nZXRfdCByeHFfaW5mb19nZXQ7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LyoqIFJldHJpZXZlIFR4IHF1ZXVlIGluZm9ybWF0 aW9uICovPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7ZXRoX3R4cV9pbmZvX2dldF90IHR4cV9pbmZvX2dldDs8YnI+DQorIC8qKiBSZXRy aWV2ZSBtYnVmcyByZWN5Y2xlIFJ4IHF1ZXVlIGluZm9ybWF0aW9uICovPGJyPg0KKyBldGhfcmVj eWNsZV9yeHFfaW5mb19nZXRfdCByZWN5Y2xlX3J4cV9pbmZvX2dldDs8YnI+DQombmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtldGhfYnVyc3RfbW9k ZV9nZXRfdCByeF9idXJzdF9tb2RlX2dldDsgLyoqJmx0OyBHZXQgUnggYnVyc3QgbW9kZSAqLzxi cj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw O2V0aF9idXJzdF9tb2RlX2dldF90IHR4X2J1cnN0X21vZGVfZ2V0OyAvKiombHQ7IEdldCBUeCBi dXJzdCBtb2RlICovPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7ZXRoX2Z3X3ZlcnNpb25fZ2V0X3QgZndfdmVyc2lvbl9nZXQ7IC8qKiZs dDsgR2V0IGZpcm13YXJlIHZlcnNpb24gKi88YnI+DQpkaWZmIC0tZ2l0IGEvbGliL2V0aGRldi9l dGhkZXZfcHJpdmF0ZS5jIGIvbGliL2V0aGRldi9ldGhkZXZfcHJpdmF0ZS5jPGJyPg0KaW5kZXgg MTRlYzhjNmNjZi4uZjhhYjY0ZjE5NSAxMDA2NDQ8YnI+DQotLS0gYS9saWIvZXRoZGV2L2V0aGRl dl9wcml2YXRlLmM8YnI+DQorKysgYi9saWIvZXRoZGV2L2V0aGRldl9wcml2YXRlLmM8YnI+DQpA QCAtMjc3LDYgKzI3Nyw4IEBAIGV0aF9kZXZfZnBfb3BzX3NldHVwKHN0cnVjdCBydGVfZXRoX2Zw X29wcyAqZnBvLDxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwO2Zwby0mZ3Q7cnhfcXVldWVfY291bnQgPSBkZXYtJmd0O3J4X3F1ZXVlX2Nv dW50Ozxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwO2Zwby0mZ3Q7cnhfZGVzY3JpcHRvcl9zdGF0dXMgPSBkZXYtJmd0O3J4X2Rlc2NyaXB0 b3Jfc3RhdHVzOzxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwO2Zwby0mZ3Q7dHhfZGVzY3JpcHRvcl9zdGF0dXMgPSBkZXYtJmd0O3R4X2Rl c2NyaXB0b3Jfc3RhdHVzOzxicj4NCisgZnBvLSZndDtyZWN5Y2xlX3R4X21idWZzX3JldXNlID0g ZGV2LSZndDtyZWN5Y2xlX3R4X21idWZzX3JldXNlOzxicj4NCisgZnBvLSZndDtyZWN5Y2xlX3J4 X2Rlc2NyaXB0b3JzX3JlZmlsbCA9IGRldi0mZ3Q7cmVjeWNsZV9yeF9kZXNjcmlwdG9yc19yZWZp bGw7PGJyPg0KJm5ic3A7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7ZnBvLSZndDtyeHEuZGF0YSA9IGRldi0mZ3Q7ZGF0YS0mZ3Q7cnhf cXVldWVzOzxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwO2Zwby0mZ3Q7cnhxLmNsYmsgPSAodm9pZCAqKikodWludHB0cl90KWRldi0mZ3Q7 cG9zdF9yeF9idXJzdF9jYnM7PGJyPg0KZGlmZiAtLWdpdCBhL2xpYi9ldGhkZXYvcnRlX2V0aGRl di5jIGIvbGliL2V0aGRldi9ydGVfZXRoZGV2LmM8YnI+DQppbmRleCA0ZDAzMjU1NjgzLi43YzI3 ZGNmZWE0IDEwMDY0NDxicj4NCi0tLSBhL2xpYi9ldGhkZXYvcnRlX2V0aGRldi5jPGJyPg0KKysr IGIvbGliL2V0aGRldi9ydGVfZXRoZGV2LmM8YnI+DQpAQCAtNTc4NCw2ICs1Nzg0LDM3IEBAIHJ0 ZV9ldGhfdHhfcXVldWVfaW5mb19nZXQodWludDE2X3QgcG9ydF9pZCwgdWludDE2X3QgcXVldWVf aWQsPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7cmV0dXJuIDA7PGJyPg0KJm5ic3A7fTxicj4NCiZuYnNwOzxicj4NCitpbnQ8YnI+DQor cnRlX2V0aF9yZWN5Y2xlX3J4X3F1ZXVlX2luZm9fZ2V0KHVpbnQxNl90IHBvcnRfaWQsIHVpbnQx Nl90IHF1ZXVlX2lkLDxicj4NCisgc3RydWN0IHJ0ZV9ldGhfcmVjeWNsZV9yeHFfaW5mbyAqcmVj eWNsZV9yeHFfaW5mbyk8YnI+DQorezxicj4NCisgc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXY7PGJy Pg0KKzxicj4NCisgUlRFX0VUSF9WQUxJRF9QT1JUSURfT1JfRVJSX1JFVChwb3J0X2lkLCAtRU5P REVWKTs8YnI+DQorIGRldiA9ICZhbXA7cnRlX2V0aF9kZXZpY2VzW3BvcnRfaWRdOzxicj4NCis8 YnI+DQorIGlmIChxdWV1ZV9pZCAmZ3Q7PSBkZXYtJmd0O2RhdGEtJmd0O25iX3J4X3F1ZXVlcykg ezxicj4NCisgUlRFX0VUSERFVl9MT0coRVJSLCAmcXVvdDtJbnZhbGlkIFJ4IHF1ZXVlX2lkPSV1 XG4mcXVvdDssIHF1ZXVlX2lkKTs8YnI+DQorIHJldHVybiAtRUlOVkFMOzxicj4NCisgfTxicj4N Cis8YnI+DQorIGlmIChkZXYtJmd0O2RhdGEtJmd0O3J4X3F1ZXVlcyA9PSBOVUxMIHx8PGJyPg0K KyBkZXYtJmd0O2RhdGEtJmd0O3J4X3F1ZXVlc1txdWV1ZV9pZF0gPT0gTlVMTCkgezxicj4NCisg UlRFX0VUSERFVl9MT0coRVJSLDxicj4NCisgJnF1b3Q7UnggcXVldWUgJSZxdW90O1BSSXUxNiZx dW90OyBvZiBkZXZpY2Ugd2l0aCBwb3J0X2lkPSUmcXVvdDs8YnI+DQorIFBSSXUxNiZxdW90OyBo YXMgbm90IGJlZW4gc2V0dXBcbiZxdW90Oyw8YnI+DQorIHF1ZXVlX2lkLCBwb3J0X2lkKTs8YnI+ DQorIHJldHVybiAtRUlOVkFMOzxicj4NCisgfTxicj4NCis8YnI+DQorIGlmICgqZGV2LSZndDtk ZXZfb3BzLSZndDtyZWN5Y2xlX3J4cV9pbmZvX2dldCA9PSBOVUxMKTxicj4NCisgcmV0dXJuIC1F Tk9UU1VQOzxicj4NCis8YnI+DQorIGRldi0mZ3Q7ZGV2X29wcy0mZ3Q7cmVjeWNsZV9yeHFfaW5m b19nZXQoZGV2LCBxdWV1ZV9pZCwgcmVjeWNsZV9yeHFfaW5mbyk7PGJyPg0KKzxicj4NCisgcmV0 dXJuIDA7PGJyPg0KK308YnI+DQorPGJyPg0KJm5ic3A7aW50PGJyPg0KJm5ic3A7cnRlX2V0aF9y eF9idXJzdF9tb2RlX2dldCh1aW50MTZfdCBwb3J0X2lkLCB1aW50MTZfdCBxdWV1ZV9pZCw8YnI+ DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtzdHJ1Y3Qg cnRlX2V0aF9idXJzdF9tb2RlICptb2RlKTxicj4NCmRpZmYgLS1naXQgYS9saWIvZXRoZGV2L3J0 ZV9ldGhkZXYuaCBiL2xpYi9ldGhkZXYvcnRlX2V0aGRldi5oPGJyPg0KaW5kZXggOTlmZTllMjM4 Yi4uNzQzNGFhMjQ4MyAxMDA2NDQ8YnI+DQotLS0gYS9saWIvZXRoZGV2L3J0ZV9ldGhkZXYuaDxi cj4NCisrKyBiL2xpYi9ldGhkZXYvcnRlX2V0aGRldi5oPGJyPg0KQEAgLTE4MjAsNiArMTgyMCwz MCBAQCBzdHJ1Y3QgcnRlX2V0aF90eHFfaW5mbyB7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dWludDhfdCBxdWV1ZV9zdGF0ZTsgLyoq Jmx0OyBvbmUgb2YgUlRFX0VUSF9RVUVVRV9TVEFURV8qLiAqLzxicj4NCiZuYnNwO30gX19ydGVf Y2FjaGVfbWluX2FsaWduZWQ7PGJyPg0KJm5ic3A7PGJyPg0KKy8qKjxicj4NCisgKiBAd2Fybmlu Zzxicj4NCisgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgc3RydWN0dXJlIG1heSBjaGFuZ2Ugd2l0 aG91dCBwcmlvciBub3RpY2UuPGJyPg0KKyAqPGJyPg0KKyAqIEV0aGVybmV0IGRldmljZSBSeCBx dWV1ZSBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgZm9yIHJlY3ljbGluZyBtYnVmcy48YnI+DQorICog VXNlZCB0byByZXRyaWV2ZSBSeCBxdWV1ZSBpbmZvcm1hdGlvbiB3aGVuIFR4IHF1ZXVlIHJldXNp bmcgbWJ1ZnMgYW5kIG1vdmluZzxicj4NCisgKiB0aGVtIGludG8gUnggbWJ1ZiByaW5nLjxicj4N CisgKi88YnI+DQorc3RydWN0IHJ0ZV9ldGhfcmVjeWNsZV9yeHFfaW5mbyB7PGJyPg0KKyBzdHJ1 Y3QgcnRlX21idWYgKiptYnVmX3Jpbmc7IC8qKiZsdDsgbWJ1ZiByaW5nIG9mIFJ4IHF1ZXVlLiAq Lzxicj4NCisgc3RydWN0IHJ0ZV9tZW1wb29sICptcDsgLyoqJmx0OyBtZW1wb29sIG9mIFJ4IHF1 ZXVlLiAqLzxicj4NCisgdWludDE2X3QgKnJlZmlsbF9oZWFkOyAvKiombHQ7IGhlYWQgb2YgUngg cXVldWUgcmVmaWxsaW5nIG1idWZzLiAqLzxicj4NCisgdWludDE2X3QgKnJlY2VpdmVfdGFpbDsg LyoqJmx0OyB0YWlsIG9mIFJ4IHF1ZXVlIHJlY2VpdmluZyBwa3RzLiAqLzxicj4NCisgdWludDE2 X3QgbWJ1Zl9yaW5nX3NpemU7IC8qKiZsdDsgY29uZmlndXJlZCBudW1iZXIgb2YgbWJ1ZiByaW5n IHNpemUuICovPGJyPg0KKyAvKio8YnI+DQorICogUmVxdWlyZW1lbnQgb24gbWJ1ZiByZWZpbGxp bmcgYmF0Y2ggc2l6ZSBvZiBSeCBtYnVmIHJpbmcuPGJyPg0KKyAqIEZvciBzb21lIFBNRCBkcml2 ZXJzLCB0aGUgbnVtYmVyIG9mIFJ4IG1idWYgcmluZyByZWZpbGxpbmcgbWJ1ZnM8YnI+DQorICog c2hvdWxkIGJlIGFsaWduZWQgd2l0aCBtYnVmIHJpbmcgc2l6ZSwgaW4gb3JkZXIgdG8gc2ltcGxp Znk8YnI+DQorICogcmluZyB3cmFwcGluZyBhcm91bmQuPGJyPg0KKyAqIFZhbHVlIDAgbWVhbnMg dGhhdCBQTUQgZHJpdmVycyBoYXZlIG5vIHJlcXVpcmVtZW50IGZvciB0aGlzLjxicj4NCisgKi88 YnI+DQorIHVpbnQxNl90IHJlZmlsbF9yZXF1aXJlbWVudDs8YnI+DQorfSBfX3J0ZV9jYWNoZV9t aW5fYWxpZ25lZDs8YnI+DQorPGJyPg0KJm5ic3A7LyogR2VuZXJpYyBCdXJzdCBtb2RlIGZsYWcg ZGVmaW5pdGlvbiwgdmFsdWVzIGNhbiBiZSBPUmVkLiAqLzxicj4NCiZuYnNwOzxicj4NCiZuYnNw Oy8qKjxicj4NCkBAIC00ODA5LDYgKzQ4MzMsMzEgQEAgaW50IHJ0ZV9ldGhfcnhfcXVldWVfaW5m b19nZXQodWludDE2X3QgcG9ydF9pZCwgdWludDE2X3QgcXVldWVfaWQsPGJyPg0KJm5ic3A7aW50 IHJ0ZV9ldGhfdHhfcXVldWVfaW5mb19nZXQodWludDE2X3QgcG9ydF9pZCwgdWludDE2X3QgcXVl dWVfaWQsPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7c3RydWN0IHJ0ZV9ldGhfdHhxX2luZm8gKnFpbmZvKTs8YnI+DQombmJzcDs8YnI+ DQorLyoqPGJyPg0KKyAqIEB3YXJuaW5nPGJyPg0KKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBB UEkgbWF5IGNoYW5nZSwgb3IgYmUgcmVtb3ZlZCwgd2l0aG91dCBwcmlvciBub3RpY2U8YnI+DQor ICo8YnI+DQorICogUmV0cmlldmUgaW5mb3JtYXRpb24gYWJvdXQgZ2l2ZW4gcG9ydHMncyBSeCBx dWV1ZSBmb3IgcmVjeWNsaW5nIG1idWZzLjxicj4NCisgKjxicj4NCisgKiBAcGFyYW0gcG9ydF9p ZDxicj4NCisgKiBUaGUgcG9ydCBpZGVudGlmaWVyIG9mIHRoZSBFdGhlcm5ldCBkZXZpY2UuPGJy Pg0KKyAqIEBwYXJhbSBxdWV1ZV9pZDxicj4NCisgKiBUaGUgUnggcXVldWUgb24gdGhlIEV0aGVy bmV0IGRldmljZWZvciB3aGljaCBpbmZvcm1hdGlvbjxicj4NCisgKiB3aWxsIGJlIHJldHJpZXZl ZC48YnI+DQorICogQHBhcmFtIHJlY3ljbGVfcnhxX2luZm88YnI+DQorICogQSBwb2ludGVyIHRv IGEgc3RydWN0dXJlIG9mIHR5cGUgKnJ0ZV9ldGhfcmVjeWNsZV9yeHFfaW5mbyogdG8gYmUgZmls bGVkLjxicj4NCisgKjxicj4NCisgKiBAcmV0dXJuPGJyPg0KKyAqIC0gMDogU3VjY2Vzczxicj4N CisgKiAtIC1FTk9ERVY6IElmICpwb3J0X2lkKiBpcyBpbnZhbGlkLjxicj4NCisgKiAtIC1FTk9U U1VQOiByb3V0aW5lIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGRldmljZSBQTUQuPGJyPg0KKyAq IC0gLUVJTlZBTDogVGhlIHF1ZXVlX2lkIGlzIG91dCBvZiByYW5nZS48YnI+DQorICovPGJyPg0K K19fcnRlX2V4cGVyaW1lbnRhbDxicj4NCitpbnQgcnRlX2V0aF9yZWN5Y2xlX3J4X3F1ZXVlX2lu Zm9fZ2V0KHVpbnQxNl90IHBvcnRfaWQsPGJyPg0KKyB1aW50MTZfdCBxdWV1ZV9pZCw8YnI+DQor IHN0cnVjdCBydGVfZXRoX3JlY3ljbGVfcnhxX2luZm8gKnJlY3ljbGVfcnhxX2luZm8pOzxicj4N Cis8YnI+DQombmJzcDsvKio8YnI+DQombmJzcDsmbmJzcDsqIFJldHJpZXZlIGluZm9ybWF0aW9u IGFib3V0IHRoZSBSeCBwYWNrZXQgYnVyc3QgbW9kZS48YnI+DQombmJzcDsmbmJzcDsqPGJyPg0K QEAgLTY0ODMsNiArNjUzMiwxMzkgQEAgcnRlX2V0aF90eF9idWZmZXIodWludDE2X3QgcG9ydF9p ZCwgdWludDE2X3QgcXVldWVfaWQsPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIHJ0ZV9ldGhfdHhfYnVmZmVyX2ZsdXNoKHBv cnRfaWQsIHF1ZXVlX2lkLCBidWZmZXIpOzxicj4NCiZuYnNwO308YnI+DQombmJzcDs8YnI+DQor LyoqPGJyPg0KKyAqIEB3YXJuaW5nPGJyPg0KKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkg bWF5IGNoYW5nZSwgb3IgYmUgcmVtb3ZlZCwgd2l0aG91dCBwcmlvciBub3RpY2U8YnI+DQorICo8 YnI+DQorICogUmVjeWNsZSB1c2VkIG1idWZzIGZyb20gYSB0cmFuc21pdCBxdWV1ZSBvZiBhbiBF dGhlcm5ldCBkZXZpY2UsIGFuZCBtb3ZlPGJyPg0KKyAqIHRoZXNlIG1idWZzIGludG8gYSBtYnVm IHJpbmcgZm9yIGEgcmVjZWl2ZSBxdWV1ZSBvZiBhbiBFdGhlcm5ldCBkZXZpY2UuPGJyPg0KKyAq IFRoaXMgY2FuIGJ5cGFzcyBtZW1wb29sIHBhdGggdG8gc2F2ZSBDUFUgY3ljbGVzLjxicj4NCisg Kjxicj4NCisgKiBUaGUgcnRlX2V0aF9yZWN5Y2xlX21idWZzKCkgZnVuY3Rpb24gbG9vcHMsIHdp dGggcnRlX2V0aF9yeF9idXJzdCgpIGFuZDxicj4NCisgKiBydGVfZXRoX3R4X2J1cnN0KCkgZnVu Y3Rpb25zLCBmcmVlaW5nIFR4IHVzZWQgbWJ1ZnMgYW5kIHJlcGxlbmlzaGluZyBSeDxicj4NCisg KiBkZXNjcmlwdG9ycy4gVGhlIG51bWJlciBvZiByZWN5Y2xpbmcgbWJ1ZnMgZGVwZW5kcyBvbiB0 aGUgcmVxdWVzdCBvZiBSeCBtYnVmPGJyPg0KKyAqIHJpbmcsIHdpdGggdGhlIGNvbnN0cmFpbnQg b2YgZW5vdWdoIHVzZWQgbWJ1ZnMgZnJvbSBUeCBtYnVmIHJpbmcuPGJyPg0KKyAqPGJyPg0KKyAq IEZvciBlYWNoIHJlY3ljbGluZyBtYnVmcywgdGhlIHJ0ZV9ldGhfcmVjeWNsZV9tYnVmcygpIGZ1 bmN0aW9uIHBlcmZvcm1zIHRoZTxicj4NCisgKiBmb2xsb3dpbmcgb3BlcmF0aW9uczo8YnI+DQor ICo8YnI+DQorICogLSBDb3B5IHVzZWQgKnJ0ZV9tYnVmKiBidWZmZXIgcG9pbnRlcnMgZnJvbSBU eCBtYnVmIHJpbmcgaW50byBSeCBtYnVmIHJpbmcuPGJyPg0KKyAqPGJyPg0KKyAqIC0gUmVwbGVu aXNoIHRoZSBSeCBkZXNjcmlwdG9ycyB3aXRoIHRoZSByZWN5Y2xpbmcgKnJ0ZV9tYnVmKiBtYnVm cyBmcmVlZDxicj4NCisgKiBmcm9tIHRoZSBUeCBtYnVmIHJpbmcuPGJyPg0KKyAqPGJyPg0KKyAq IFRoaXMgZnVuY3Rpb24gc3BpbHRzIFJ4IGFuZCBUeCBwYXRoIHdpdGggZGlmZmVyZW50IGNhbGxi YWNrIGZ1bmN0aW9ucy4gVGhlPGJyPg0KKyAqIGNhbGxiYWNrIGZ1bmN0aW9uIHJlY3ljbGVfdHhf bWJ1ZnNfcmV1c2UgaXMgZm9yIFR4IGRyaXZlci4gVGhlIGNhbGxiYWNrPGJyPg0KKyAqIGZ1bmN0 aW9uIHJlY3ljbGVfcnhfZGVzY3JpcHRvcnNfcmVmaWxsIGlzIGZvciBSeCBkcml2ZXIuIHJ0ZV9l dGhfcmVjeWNsZV9tYnVmcygpPGJyPg0KKyAqIGNhbiBzdXBwb3J0IHRoZSBjYXNlIHRoYXQgUngg RXRoZXJuZXQgZGV2aWNlIGlzIGRpZmZlcmVudCBmcm9tIFR4IEV0aGVybmV0IGRldmljZS48YnI+ DQorICo8YnI+DQorICogSXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHVzZXJzIHRvIHNlbGVj dCB0aGUgUngvVHggcXVldWUgcGFpciB0byByZWN5Y2xlPGJyPg0KKyAqIG1idWZzLiBCZWZvcmUg Y2FsbCB0aGlzIGZ1bmN0aW9uLCB1c2VycyBtdXN0IGNhbGwgcnRlX2V0aF9yZWN5Y2xlX3J4cV9p bmZvX2dldDxicj4NCisgKiBmdW5jdGlvbiB0byByZXRyaWV2ZSBzZWxlY3RlZCBSeCBxdWV1ZSBp bmZvcm1hdGlvbi48YnI+DQorICogQHNlZSBydGVfZXRoX3JlY3ljbGVfcnhxX2luZm9fZ2V0LCBz dHJ1Y3QgcnRlX2V0aF9yZWN5Y2xlX3J4cV9pbmZvPGJyPg0KKyAqPGJyPg0KKyAqIEN1cnJlbnRs eSwgdGhlIHJ0ZV9ldGhfcmVjeWNsZV9tYnVmcygpIGZ1bmN0aW9uIGNhbiBvbmx5IHN1cHBvcnQg b25lLXRpbWUgcGFpcmluZzxicj4NCisgKiBiZXR3ZWVuIHRoZSByZWNlaXZlIHF1ZXVlIGFuZCB0 cmFuc21pdCBxdWV1ZS4gRG8gbm90IHBhaXIgb25lIHJlY2VpdmUgcXVldWUgd2l0aDxicj4NCisg KiBtdWx0aXBsZSB0cmFuc21pdCBxdWV1ZXMgb3IgcGFpciBvbmUgdHJhbnNtaXQgcXVldWUgd2l0 aCBtdWx0aXBsZSByZWNlaXZlIHF1ZXVlcyw8YnI+DQorICogaW4gb3JkZXIgdG8gYXZvaWQgbWVt b3J5IGVycm9yIHJld3JpdGluZy48bzpwPjwvbzpwPjwvcD4NCjwvYmxvY2txdW90ZT4NCjxkaXY+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5Qcm9iYWJseSBJIGFtIG1pc3Npbmcgc29tZXRoaW5nLCBi dXQgd2h5IGl0IGlzIG5vdCBwb3NzaWJsZSB0byBkbyBzb21ldGhpbmcgbGlrZSB0aGF0OjxvOnA+ PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86 cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ PHNwYW4gbGFuZz0iRlIiPnJ0ZV9ldGhfcmVjeWNsZV9tYnVmcyhyeF9wb3J0X2lkPVgsIHJ4X3F1 ZXVlX2lkPVksIHR4X3BvcnRfaWQ9TiwgdHhfcXVldWVfaWQ9TSwgLi4uKTs8bzpwPjwvbzpwPjwv c3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5n PSJGUiI+Li4uLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJGUiI+cnRlX2V0aF9yZWN5Y2xlX21idWZz KHJ4X3BvcnRfaWQ9WCwgcnhfcXVldWVfaWQ9WSwgdHhfcG9ydF9pZD1OLCB0eF9xdWV1ZV9pZD1L LCAuLi4pOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxk aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJGUiI+Jm5ic3A7PG86cD48L286 cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SS5FLiBm ZWVkIHJ4IHF1ZXVlIGZyb20gMiB0eCBxdWV1ZXM/PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlR3 byBwcm9ibGVtcyBmb3IgdGhpczo8bzpwPjwvbzpwPjwvcD4NCjxvbCBzdHlsZT0ibWFyZ2luLXRv cDowaW4iIHN0YXJ0PSIxIiB0eXBlPSIxIj4NCjxsaSBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIg c3R5bGU9Im1hcmdpbi1sZWZ0OjBpbjttc28tbGlzdDpsMiBsZXZlbDEgbGZvMyI+SWYgd2UgaGF2 ZSAyIHR4IHF1ZXVlcyBmb3IgcngsIHRoZSB0aHJlYWQgc2hvdWxkIG1ha2UgdGhlIGV4dHJhIGp1 ZGdlbWVudCB0bzxvOnA+PC9vOnA+PC9saT48L29sPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3Jh cGgiPmRlY2lkZSB3aGljaCBvbmUgdG8gY2hvb3NlIGluIHRoZSBkcml2ZXIgbGF5ZXIuPG86cD48 L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+T24gdGhlIG90aGVyIGhhbmQs IGN1cnJlbnQgbWVjaGFuaXNtIGNhbiBzdXBwb3J0IHVzZXJzIHRvIHN3aXRjaCAxIHR4cSB0byBh bm90aGVyIHRpbWVseTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgi PmluIHRoZSBhcHBsaWNhdGlvbiBsYXllci4gSWYgdXNlciB3YW50IHRvIGNob29zZSBhbm90aGVy IHR4cSwgaGUganVzdCBuZWVkIHRvIGNoYW5nZSB0aGUgdHhxX3F1ZXVlX2lkIHBhcmFtZXRlcjxv OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiPmluIHRoZSBBUEkuPG86 cD48L286cD48L3A+DQo8b2wgc3R5bGU9Im1hcmdpbi10b3A6MGluIiBzdGFydD0iMiIgdHlwZT0i MSI+DQo8bGkgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJtYXJnaW4tbGVmdDowaW47 bXNvLWxpc3Q6bDIgbGV2ZWwxIGxmbzMiPklmIHlvdSB3YW50IG9uZSByeHEgdG8gc3VwcG9ydCB0 d28gdHhxIGF0IHRoZSBzYW1lIHRpbWUsIHRoaXMgbmVlZHMgdG8gYWRkIHNwaW5sb2NrIG9uIGd1 YXJkIHZhcmlhYmxlIHRvPG86cD48L286cD48L2xpPjwvb2w+DQo8cCBjbGFzcz0iTXNvTGlzdFBh cmFncmFwaCI+YXZvaWQgbXVsdGktdGhyZWFkIGNvbmZsaWN0LiBTcGlubG9jayB3aWxsIGRlY3Jl YXNlIHRoZSBkYXRhLXBhdGggcGVyZm9ybWFuY2UgZ3JlYXRseS4mbmJzcDsgVGh1cywgd2UgZG8g bm90IGNvbnNpZGVyPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+ MSByeHEgbWFwcGluZyBtdWx0aXBsZSB0eHFzIGhlcmUuPG86cD48L286cD48L3A+DQo8L2Rpdj4N CjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQi Pg0KPHA+KyAqPGJyPg0KKyAqIEBwYXJhbSByeF9wb3J0X2lkPGJyPg0KKyAqIFBvcnQgaWRlbnRp ZnlpbmcgdGhlIHJlY2VpdmUgc2lkZS48YnI+DQorICogQHBhcmFtIHJ4X3F1ZXVlX2lkPGJyPg0K KyAqIFRoZSBpbmRleCBvZiB0aGUgcmVjZWl2ZSBxdWV1ZSBpZGVudGlmeWluZyB0aGUgcmVjZWl2 ZSBzaWRlLjxicj4NCisgKiBUaGUgdmFsdWUgbXVzdCBiZSBpbiB0aGUgcmFuZ2UgWzAsIG5iX3J4 X3F1ZXVlIC0gMV0gcHJldmlvdXNseSBzdXBwbGllZDxicj4NCisgKiB0byBydGVfZXRoX2Rldl9j b25maWd1cmUoKS48YnI+DQorICogQHBhcmFtIHR4X3BvcnRfaWQ8YnI+DQorICogUG9ydCBpZGVu dGlmeWluZyB0aGUgdHJhbnNtaXQgc2lkZS48YnI+DQorICogQHBhcmFtIHR4X3F1ZXVlX2lkPGJy Pg0KKyAqIFRoZSBpbmRleCBvZiB0aGUgdHJhbnNtaXQgcXVldWUgaWRlbnRpZnlpbmcgdGhlIHRy YW5zbWl0IHNpZGUuPGJyPg0KKyAqIFRoZSB2YWx1ZSBtdXN0IGJlIGluIHRoZSByYW5nZSBbMCwg bmJfdHhfcXVldWUgLSAxXSBwcmV2aW91c2x5IHN1cHBsaWVkPGJyPg0KKyAqIHRvIHJ0ZV9ldGhf ZGV2X2NvbmZpZ3VyZSgpLjxicj4NCisgKiBAcGFyYW0gcmVjeWNsZV9yeHFfaW5mbzxicj4NCisg KiBBIHBvaW50ZXIgdG8gYSBzdHJ1Y3R1cmUgb2YgdHlwZSAqcnRlX2V0aF9yZWN5Y2xlX3J4cV9p bmZvKiB3aGljaCBjb250YWluczxicj4NCisgKiB0aGUgaW5mb3JtYXRpb24gb2YgdGhlIFJ4IHF1 ZXVlIG1idWYgcmluZy48YnI+DQorICogQHJldHVybjxicj4NCisgKiBUaGUgbnVtYmVyIG9mIHJl Y3ljbGluZyBtYnVmcy48YnI+DQorICovPGJyPg0KK19fcnRlX2V4cGVyaW1lbnRhbDxicj4NCitz dGF0aWMgaW5saW5lIHVpbnQxNl90PGJyPg0KK3J0ZV9ldGhfcmVjeWNsZV9tYnVmcyh1aW50MTZf dCByeF9wb3J0X2lkLCB1aW50MTZfdCByeF9xdWV1ZV9pZCw8YnI+DQorIHVpbnQxNl90IHR4X3Bv cnRfaWQsIHVpbnQxNl90IHR4X3F1ZXVlX2lkLDxicj4NCisgc3RydWN0IHJ0ZV9ldGhfcmVjeWNs ZV9yeHFfaW5mbyAqcmVjeWNsZV9yeHFfaW5mbyk8YnI+DQorezxicj4NCisgc3RydWN0IHJ0ZV9l dGhfZnBfb3BzICpwOzxicj4NCisgdm9pZCAqcWQ7PGJyPg0KKyB1aW50MTZfdCBuYl9tYnVmczs8 YnI+DQorPGJyPg0KKyNpZmRlZiBSVEVfRVRIREVWX0RFQlVHX1RYPGJyPg0KKyBpZiAodHhfcG9y dF9pZCAmZ3Q7PSBSVEVfTUFYX0VUSFBPUlRTIHx8PGJyPg0KKyB0eF9xdWV1ZV9pZCAmZ3Q7PSBS VEVfTUFYX1FVRVVFU19QRVJfUE9SVCkgezxicj4NCisgUlRFX0VUSERFVl9MT0coRVJSLDxicj4N CisgJnF1b3Q7SW52YWxpZCB0eF9wb3J0X2lkPSV1IG9yIHR4X3F1ZXVlX2lkPSV1XG4mcXVvdDss PGJyPg0KKyB0eF9wb3J0X2lkLCB0eF9xdWV1ZV9pZCk7PGJyPg0KKyByZXR1cm4gMDs8YnI+DQor IH08YnI+DQorI2VuZGlmPGJyPg0KKzxicj4NCisgLyogZmV0Y2ggcG9pbnRlciB0byBxdWV1ZSBk YXRhICovPGJyPg0KKyBwID0gJmFtcDtydGVfZXRoX2ZwX29wc1t0eF9wb3J0X2lkXTs8YnI+DQor IHFkID0gcC0mZ3Q7dHhxLmRhdGFbdHhfcXVldWVfaWRdOzxicj4NCis8YnI+DQorI2lmZGVmIFJU RV9FVEhERVZfREVCVUdfVFg8YnI+DQorIFJURV9FVEhfVkFMSURfUE9SVElEX09SX0VSUl9SRVQo dHhfcG9ydF9pZCwgMCk7PGJyPg0KKzxicj4NCisgaWYgKHFkID09IE5VTEwpIHs8YnI+DQorIFJU RV9FVEhERVZfTE9HKEVSUiwgJnF1b3Q7SW52YWxpZCBUeCBxdWV1ZV9pZD0ldSBmb3IgcG9ydF9p ZD0ldVxuJnF1b3Q7LDxicj4NCisgdHhfcXVldWVfaWQsIHR4X3BvcnRfaWQpOzxicj4NCisgcmV0 dXJuIDA7PGJyPg0KKyB9PGJyPg0KKyNlbmRpZjxicj4NCisgaWYgKHAtJmd0O3JlY3ljbGVfdHhf bWJ1ZnNfcmV1c2UgPT0gTlVMTCk8YnI+DQorIHJldHVybiAwOzxicj4NCis8YnI+DQorIC8qIENv cHkgdXNlZCAqcnRlX21idWYqIGJ1ZmZlciBwb2ludGVycyBmcm9tIFR4IG1idWYgcmluZzxicj4N CisgKiBpbnRvIFJ4IG1idWYgcmluZy48YnI+DQorICovPGJyPg0KKyBuYl9tYnVmcyA9IHAtJmd0 O3JlY3ljbGVfdHhfbWJ1ZnNfcmV1c2UocWQsIHJlY3ljbGVfcnhxX2luZm8pOzxicj4NCis8YnI+ DQorIC8qIElmIG5vIHJlY3ljbGluZyBtYnVmcywgcmV0dXJuIDAuICovPGJyPg0KKyBpZiAobmJf bWJ1ZnMgPT0gMCk8YnI+DQorIHJldHVybiAwOzxicj4NCis8YnI+DQorI2lmZGVmIFJURV9FVEhE RVZfREVCVUdfUlg8YnI+DQorIGlmIChyeF9wb3J0X2lkICZndDs9IFJURV9NQVhfRVRIUE9SVFMg fHw8YnI+DQorIHJ4X3F1ZXVlX2lkICZndDs9IFJURV9NQVhfUVVFVUVTX1BFUl9QT1JUKSB7PGJy Pg0KKyBSVEVfRVRIREVWX0xPRyhFUlIsICZxdW90O0ludmFsaWQgcnhfcG9ydF9pZD0ldSBvciBy eF9xdWV1ZV9pZD0ldVxuJnF1b3Q7LDxicj4NCisgcnhfcG9ydF9pZCwgcnhfcXVldWVfaWQpOzxi cj4NCisgcmV0dXJuIDA7PGJyPg0KKyB9PGJyPg0KKyNlbmRpZjxicj4NCis8YnI+DQorIC8qIGZl dGNoIHBvaW50ZXIgdG8gcXVldWUgZGF0YSAqLzxicj4NCisgcCA9ICZhbXA7cnRlX2V0aF9mcF9v cHNbcnhfcG9ydF9pZF07PGJyPg0KKyBxZCA9IHAtJmd0O3J4cS5kYXRhW3J4X3F1ZXVlX2lkXTs8 YnI+DQorPGJyPg0KKyNpZmRlZiBSVEVfRVRIREVWX0RFQlVHX1JYPGJyPg0KKyBSVEVfRVRIX1ZB TElEX1BPUlRJRF9PUl9FUlJfUkVUKHJ4X3BvcnRfaWQsIDApOzxicj4NCis8YnI+DQorIGlmIChx ZCA9PSBOVUxMKSB7PGJyPg0KKyBSVEVfRVRIREVWX0xPRyhFUlIsICZxdW90O0ludmFsaWQgUngg cXVldWVfaWQ9JXUgZm9yIHBvcnRfaWQ9JXVcbiZxdW90Oyw8YnI+DQorIHJ4X3F1ZXVlX2lkLCBy eF9wb3J0X2lkKTs8YnI+DQorIHJldHVybiAwOzxicj4NCisgfTxicj4NCisjZW5kaWY8YnI+DQor PGJyPg0KKyBpZiAocC0mZ3Q7cmVjeWNsZV9yeF9kZXNjcmlwdG9yc19yZWZpbGwgPT0gTlVMTCk8 YnI+DQorIHJldHVybiAwOzxicj4NCis8YnI+DQorIC8qIFJlcGxlbmlzaCB0aGUgUnggZGVzY3Jp cHRvcnMgd2l0aCB0aGUgcmVjeWNsaW5nPGJyPg0KKyAqIGludG8gUnggbWJ1ZiByaW5nLjxicj4N CisgKi88YnI+DQorIHAtJmd0O3JlY3ljbGVfcnhfZGVzY3JpcHRvcnNfcmVmaWxsKHFkLCBuYl9t YnVmcyk7PGJyPg0KKzxicj4NCisgcmV0dXJuIG5iX21idWZzOzxicj4NCit9PGJyPg0KKzxicj4N CiZuYnNwOy8qKjxicj4NCiZuYnNwOyZuYnNwOyogQHdhcm5pbmc8YnI+DQombmJzcDsmbmJzcDsq IEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGlj ZTxicj4NCmRpZmYgLS1naXQgYS9saWIvZXRoZGV2L3J0ZV9ldGhkZXZfY29yZS5oIGIvbGliL2V0 aGRldi9ydGVfZXRoZGV2X2NvcmUuaDxicj4NCmluZGV4IGRjZjhhZGFiOTIuLmEyZTZlYTZiNmMg MTAwNjQ0PGJyPg0KLS0tIGEvbGliL2V0aGRldi9ydGVfZXRoZGV2X2NvcmUuaDxicj4NCisrKyBi L2xpYi9ldGhkZXYvcnRlX2V0aGRldl9jb3JlLmg8YnI+DQpAQCAtNTYsNiArNTYsMTMgQEAgdHlw ZWRlZiBpbnQgKCpldGhfcnhfZGVzY3JpcHRvcl9zdGF0dXNfdCkodm9pZCAqcnhxLCB1aW50MTZf dCBvZmZzZXQpOzxicj4NCiZuYnNwOy8qKiBAaW50ZXJuYWwgQ2hlY2sgdGhlIHN0YXR1cyBvZiBh IFR4IGRlc2NyaXB0b3IgKi88YnI+DQombmJzcDt0eXBlZGVmIGludCAoKmV0aF90eF9kZXNjcmlw dG9yX3N0YXR1c190KSh2b2lkICp0eHEsIHVpbnQxNl90IG9mZnNldCk7PGJyPg0KJm5ic3A7PGJy Pg0KKy8qKiBAaW50ZXJuYWwgQ29weSB1c2VkIG1idWZzIGZyb20gVHggbWJ1ZiByaW5nIGludG8g UnggbWJ1ZiByaW5nICovPGJyPg0KK3R5cGVkZWYgdWludDE2X3QgKCpldGhfcmVjeWNsZV90eF9t YnVmc19yZXVzZV90KSh2b2lkICp0eHEsPGJyPg0KKyBzdHJ1Y3QgcnRlX2V0aF9yZWN5Y2xlX3J4 cV9pbmZvICpyZWN5Y2xlX3J4cV9pbmZvKTs8YnI+DQorPGJyPg0KKy8qKiBAaW50ZXJuYWwgUmVm aWxsIFJ4IGRlc2NyaXB0b3JzIHdpdGggdGhlIHJlY3ljbGluZyBtYnVmcyAqLzxicj4NCit0eXBl ZGVmIHZvaWQgKCpldGhfcmVjeWNsZV9yeF9kZXNjcmlwdG9yc19yZWZpbGxfdCkodm9pZCAqcnhx LCB1aW50MTZfdCBuYik7PGJyPg0KKzxicj4NCiZuYnNwOy8qKjxicj4NCiZuYnNwOyZuYnNwOyog QGludGVybmFsPGJyPg0KJm5ic3A7Jm5ic3A7KiBTdHJ1Y3R1cmUgdXNlZCB0byBob2xkIG9wYXF1 ZSBwb2ludGVycyB0byBpbnRlcm5hbCBldGhkZXYgUngvVHg8YnI+DQpAQCAtOTAsOSArOTcsMTEg QEAgc3RydWN0IHJ0ZV9ldGhfZnBfb3BzIHs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtldGhfcnhfcXVldWVfY291bnRfdCByeF9xdWV1 ZV9jb3VudDs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsvKiogQ2hlY2sgdGhlIHN0YXR1cyBvZiBhIFJ4IGRlc2NyaXB0b3IuICovPGJy Pg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 ZXRoX3J4X2Rlc2NyaXB0b3Jfc3RhdHVzX3QgcnhfZGVzY3JpcHRvcl9zdGF0dXM7PGJyPg0KKyAv KiogUmVmaWxsIFJ4IGRlc2NyaXB0b3JzIHdpdGggdGhlIHJlY3ljbGluZyBtYnVmcy4gPHNwYW4g bGFuZz0iRlIiPiovPGJyPg0KKyBldGhfcmVjeWNsZV9yeF9kZXNjcmlwdG9yc19yZWZpbGxfdCBy ZWN5Y2xlX3J4X2Rlc2NyaXB0b3JzX3JlZmlsbDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Js b2NrcXVvdGU+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SSBhbSBhZnJhaWQgd2UgY2Fu J3QgcHV0IG5ldyBmaWVsZHMgaGVyZSB3aXRob3V0IEFCSSBicmVha2FnZS48bzpwPjwvbzpwPjwv cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QWdyZWU8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ SXQgaGFzIHRvIGJlIGJlbG93IHJ4cS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiPk5vdyB0aGlua2luZyBhYm91dCBjdXJyZW50IGxheW91dCBwcm9i YWJseSBub3QgdGhlIGJlc3Qgb25lLDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+YW5kIHdoZW4gaW50cm9kdWNpbmcgdGhpcyBzdHJ1Y3QsIEkgc2hv dWxkIHByb2JhYmx5IHB1dCByeHEgZWl0aGVyPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5vbiB0aGUgdG9wIG9mIHRoZSBzdHJ1Y3QsIG9yIG9uIHRo ZSBuZXh0IGNhY2hlIGxpbmUuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIj5CdXQgc3VjaCBjaGFuZ2UgaXMgbm90IHBvc3NpYmxlIHJpZ2h0IG5vdyBh bnl3YXkuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij5TYW1lIHN0b3J5IGZvciB0eHEuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiPlRodXMgd2Ugc2hvdWxkIHJlYXJyYW5nZSB0aGUgc3RydWN0dXJlJm5ic3A7bGlrZSBiZWxv dzxzcGFuIGxhbmc9IlpILUNOIiBzdHlsZT0iZm9udC1mYW1pbHk6RGVuZ1hpYW4iPu+8mjwvc3Bh bj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVm dDo0LjdwdCI+c3RydWN0IHJ0ZV9ldGhfZnBfb3BzIHs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDoyMC40NXB0Ij48c3BhbiBsYW5nPSJGUiI+ Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0cnVjdCBydGVfZXRoZGV2X3FkYXRhIHJ4cTs8bzpwPjwvbzpw Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6OS45 NXB0Ij48c3BhbiBsYW5nPSJGUiI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IDwvc3Bhbj5ldGhfcnhfYnVyc3RfdCByeF9wa3RfYnVyc3Q7PG86cD48L286 cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6OS45NXB0Ij48 c3BhbiBsYW5nPSJGUiI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IGV0aF9yeF9xdWV1ZV9jb3VudF90IHJ4X3F1ZXVlX2NvdW50OzxvOnA+PC9vOnA+PC9z cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo5Ljk1cHQi PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBldGhfcnhf ZGVzY3JpcHRvcl9zdGF0dXNfdCByeF9kZXNjcmlwdG9yX3N0YXR1czs8bzpwPjwvbzpwPjwvcD4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDoxNS4ycHQiPjxzcGFuIGxh bmc9IkZSIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZXRoX3JlY3ljbGVf cnhfZGVzY3JpcHRvcnNfcmVmaWxsX3QgcmVjeWNsZV9yeF9kZXNjcmlwdG9yc19yZWZpbGw7PG86 cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRlIi PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8L3NwYW4+dWludHB0cl90IHJlc2VydmVkMVsyXTs8bzpw PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPn08bzpwPjwvbzpwPjwvcD4NCjxwIGNs YXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h bCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJn aW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPHA+Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LyoqIFJ4IHF1ZXVlcyBkYXRhLiAq Lzxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwO3N0cnVjdCBydGVfZXRoZGV2X3FkYXRhIHJ4cTs8YnI+DQotIHVpbnRwdHJfdCByZXNlcnZl ZDFbM107PGJyPg0KKyB1aW50cHRyX3QgcmVzZXJ2ZWQxWzJdOzxicj4NCiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy8qKkB9Ki88YnI+DQombmJz cDs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsvKipAeyovPGJyPg0KQEAgLTEwNiw5ICsxMTUsMTEgQEAgc3RydWN0IHJ0ZV9ldGhfZnBf b3BzIHs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDtldGhfdHhfcHJlcF90IHR4X3BrdF9wcmVwYXJlOzxicj4NCiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy8qKiBDaGVjayB0aGUgc3Rh dHVzIG9mIGEgVHggZGVzY3JpcHRvci4gKi88YnI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtldGhfdHhfZGVzY3JpcHRvcl9zdGF0dXNfdCB0 eF9kZXNjcmlwdG9yX3N0YXR1czs8YnI+DQorIC8qKiBDb3B5IHVzZWQgbWJ1ZnMgZnJvbSBUeCBt YnVmIHJpbmcgaW50byBSeC4gPHNwYW4gbGFuZz0iRlIiPiovPGJyPg0KKyBldGhfcmVjeWNsZV90 eF9tYnVmc19yZXVzZV90IHJlY3ljbGVfdHhfbWJ1ZnNfcmV1c2U7PGJyPg0KJm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LyoqIFR4IHF1ZXVlcyBk YXRhLiAqLzxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwO3N0cnVjdCBydGVfZXRoZGV2X3FkYXRhIHR4cTs8YnI+DQotIHVpbnRwdHJfdCBy ZXNlcnZlZDJbM107PGJyPg0KKyB1aW50cHRyX3QgcmVzZXJ2ZWQyWzJdOzxicj4NCiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy8qKkB9Ki88YnI+ DQombmJzcDs8YnI+DQombmJzcDt9IF9fcnRlX2NhY2hlX2FsaWduZWQ7PGJyPg0KZGlmZiAtLWdp dCBhL2xpYi9ldGhkZXYvdmVyc2lvbi5tYXAgYi9saWIvZXRoZGV2L3ZlcnNpb24ubWFwPGJyPg0K aW5kZXggMzU3ZDFhODhjMC4uNDVjNDE3ZjZiZCAxMDA2NDQ8YnI+DQotLS0gYS9saWIvZXRoZGV2 L3ZlcnNpb24ubWFwPGJyPg0KKysrIGIvbGliL2V0aGRldi92ZXJzaW9uLm1hcDxicj4NCkBAIC0y OTksNiArMjk5LDEwIEBAIEVYUEVSSU1FTlRBTCB7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cnRlX2Zsb3dfYWN0aW9uX2hhbmRsZV9x dWVyeV91cGRhdGU7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7cnRlX2Zsb3dfYXN5bmNfYWN0aW9uX2hhbmRsZV9xdWVyeV91cGRhdGU7 PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7cnRlX2Zsb3dfYXN5bmNfY3JlYXRlX2J5X2luZGV4Ozxicj4NCis8YnI+DQorICMgYWRkZWQg aW4gMjMuMDc8YnI+DQorIHJ0ZV9ldGhfcmVjeWNsZV9tYnVmczs8YnI+DQorIHJ0ZV9ldGhfcmVj eWNsZV9yeF9xdWV1ZV9pbmZvX2dldDs8YnI+DQombmJzcDt9Ozxicj4NCiZuYnNwOzxicj4NCiZu YnNwO0lOVEVSTkFMIHs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij4tLTxicj4NCjIuMjUuMTxicj4NCiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9ibG9ja3F1b3Rl Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg== --_000_AS8PR08MB7718588CACBAF7D0D53F2EB8C852AAS8PR08MB7718eurp_--