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 B3A8BA0A02; Tue, 18 May 2021 10:52:48 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 93E654068E; Tue, 18 May 2021 10:52:48 +0200 (CEST) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10073.outbound.protection.outlook.com [40.107.1.73]) by mails.dpdk.org (Postfix) with ESMTP id 4696D40041 for ; Tue, 18 May 2021 10:52:47 +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=f12+H3JP2wQN63WbsJpDUHSohab3Osj1vrBGdQ6Hb/U=; b=P6dldNsC8uAO2JKsFlvj74iFqTnSLo3QMgMbMTFZZZcJLCimvbMrXB8QnjDp3/Lf5JvZJW6mJB5m/zFIrxfVSC8TboQ/WhNI8eQGEnBkanwU0GSUZgj1Y7zd/aWXgbxP69t0gKZfgYZaG/E4UGvb18x9OQm1drPuahP3avYuswc= Received: from AM6P193CA0055.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:8e::32) by DB6PR08MB2821.eurprd08.prod.outlook.com (2603:10a6:6:19::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Tue, 18 May 2021 08:52:45 +0000 Received: from VE1EUR03FT042.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:8e:cafe::3f) by AM6P193CA0055.outlook.office365.com (2603:10a6:209:8e::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.25 via Frontend Transport; Tue, 18 May 2021 08:52:45 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; 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 VE1EUR03FT042.mail.protection.outlook.com (10.152.19.62) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.25 via Frontend Transport; Tue, 18 May 2021 08:52:44 +0000 Received: ("Tessian outbound 3c5232d12880:v92"); Tue, 18 May 2021 08:52:44 +0000 X-CR-MTA-TID: 64aa7808 Received: from 613200253692.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 3E9819A4-3D8E-4EFA-BBA7-1052179B3DB2.1; Tue, 18 May 2021 08:52:38 +0000 Received: from EUR03-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 613200253692.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 18 May 2021 08:52:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CHziVjJeRva6HATsIln0LGn01cWQFJGfvNThwdCPxXf2z/mX9Pybw9vpoLit2WFBQ4Nv9pkdMIM9xgRkA8+nWHOPq2bSzGrxFV6e2K6WTCkBg496uBHrRdZFuhf+tb1MD3n2u4BQ9NkE6P0KaJENFZ7wx9M8ZhAD3Sp5NeeJN7Rd8IxL0pOXGxkfRKk6A4LjO0YRBKxTCbf14cnbrAYnwfdZJq1cmu4bslRRfNEZlgHhnJ7h9zK7SdAxIcVFUdLAc/Kg5kC6wmV3ZbzUQyVWY/HdCAmhN0G01AgtfiAplN8GdFLQp5747ad1ekhgxz7U75VHlgpxwBF2MLrMIaKuUA== 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=f12+H3JP2wQN63WbsJpDUHSohab3Osj1vrBGdQ6Hb/U=; b=m2Nvpk9NmWXmoyiK0rlmoxsI9KXEV1p+9fWalizcvprtMAm3dx7/TJDcVndBMo65/xxrtv6mPzJFza5cR88qs3kxhpx3KczoUmVkzVpxAMtKwHaG9KfSVYV9gGOUssXN9B114PWlQg/rn/0+Hxljh0FMqyYRsh8ncuNgzrB6MF8uYxkvAj0/PLLUD41nMUYliHZpO958EpmE/ic2OE62JX/3P6sM5RpY+6GA6WZauMHZ1pgtMKe6f4TlSHU7yfbf/gX99vbjVZG42+Yb0lu0GYbNE//RtQLbJT8vWfja3Wt/mg1Cjdcb9zTXEBuJoP3BoxpaFbfi8Iyju8r8ON/5IQ== 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=f12+H3JP2wQN63WbsJpDUHSohab3Osj1vrBGdQ6Hb/U=; b=P6dldNsC8uAO2JKsFlvj74iFqTnSLo3QMgMbMTFZZZcJLCimvbMrXB8QnjDp3/Lf5JvZJW6mJB5m/zFIrxfVSC8TboQ/WhNI8eQGEnBkanwU0GSUZgj1Y7zd/aWXgbxP69t0gKZfgYZaG/E4UGvb18x9OQm1drPuahP3avYuswc= Received: from DB9PR08MB6923.eurprd08.prod.outlook.com (2603:10a6:10:2ac::6) by DB6PR0802MB2408.eurprd08.prod.outlook.com (2603:10a6:4:9d::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.26; Tue, 18 May 2021 08:52:37 +0000 Received: from DB9PR08MB6923.eurprd08.prod.outlook.com ([fe80::25e2:6eb9:f211:fa18]) by DB9PR08MB6923.eurprd08.prod.outlook.com ([fe80::25e2:6eb9:f211:fa18%7]) with mapi id 15.20.4129.032; Tue, 18 May 2021 08:52:37 +0000 From: Feifei Wang To: Slava Ovsiienko , Matan Azrad , Shahaf Shuler CC: "dev@dpdk.org" , nd , Ruifeng Wang , nd Thread-Topic: [PATCH v2 2/2] net/mlx5: remove unnecessary wmb for Memory Region cache Thread-Index: AQHXSwN29JVhoXSIlUuLnUqQdYqwGqrnuB4AgADYPKA= Date: Tue, 18 May 2021 08:52:36 +0000 Message-ID: References: <20210318071840.359957-1-feifei.wang2@arm.com> <20210517100002.19905-1-feifei.wang2@arm.com> <20210517100002.19905-3-feifei.wang2@arm.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 4A9E7304C1FCA94FA5D428852E8AE5BB.0 x-checkrecipientchecked: true Authentication-Results-Original: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [203.126.0.112] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 8c5f30d4-03b8-4095-5c1e-08d919da4de5 x-ms-traffictypediagnostic: DB6PR0802MB2408:|DB6PR08MB2821: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:7219;OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: NkARCBC9yDpLuy6pg+mifaUYsCRMTET3AUtK88Qo8neYkjisdTw/ALBaMgA3gJs1ood8q+xDPBCSoqjFYWxokAc9V2gMDaTSgAVUMuhLteB0UL9HvYp0dsPpbsvGRn4T1mtlKjTyF+QD23eN4tmumtVm5kcSgej2cpJsp3Qkc/Z73TxfdHrlhYLMBWh1oMHGxAaNfBTTRjQcHJMdyLqVo+h05feveVYTxRt/hri8wXAGTcb6zNxtjALBlrjM2LvVXgFWHgTzGtcTHfVmtphlLrpX2tIST76zpaJEsGQsDp/QipdHGyaB4SBJcBlIhXcvEYW8YDGOpPHg65anxXzD+gYt6GSRCyr8+mozLwv3zEkIyqvwuRZbH71hBU77rnnoPqtuJrFJBndwOU+uuAXK0tfCtPpdwmsLC2nSBQoAm7onjMpHJbzlzEniQA2ZLKdsKWNDTzpghclgbRPgnzYqw+X3v9YJR+GwW1Rg/YHWxqXTYLEQ8X35dZTGSIJgVHO7kewsPrRpSUnXrkxuBq/e4auGTiHV8xALjyDm79Ovy8cdr//JmWt8u4Ru4hmbEJ+p2jw5//9ZIazLEp05fIHmZN34KhO3W0TXhAX7Ku/bv+OPkEarMiUv4r5XHa3OS5egc+YKPdqlHJorW3r5nxXvgiDumE8Fm/C6KGEa5ssiFvfAphmRQGv6E/Dqrtb2UGDP X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR08MB6923.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(376002)(39860400002)(136003)(346002)(396003)(6506007)(2906002)(26005)(64756008)(53546011)(83380400001)(7696005)(8936002)(33656002)(66476007)(186003)(5660300002)(86362001)(966005)(9686003)(4326008)(38100700002)(71200400001)(55016002)(478600001)(54906003)(224303003)(110136005)(76116006)(52536014)(66946007)(122000001)(66446008)(66556008)(316002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?a2RIa3hhdXlzU25EU2habXRTcTVzTFJpcDZRWWl4bmZlYndEbUJRY09SSEFz?= =?utf-8?B?SmVKMnQvblBodExUa2FPc2hkdW1YRHQ2dHVESkd6SkRJWUJ2UDdndGYzSmdG?= =?utf-8?B?bjF4dXUza3d1djRtSlBKL3d1Sk5OYUVSUEk1bHFvQVhhQjhLYWxjb3FlM3k5?= =?utf-8?B?S3hVckVLajlZeU90dTFXNGovL3laWU8ydWdZTEdnUTBaVnRUbGNWbVhPbXlY?= =?utf-8?B?Y3VjSTgvb3NKTDAyeXZqSVhRZ1VVcjJYTnpIWStmRjM2bHRjaUtiRmdyK01U?= =?utf-8?B?UlB6LzRPalVRTXF0ZmdvTjBzVkJ1aDc4Y0IzVjBycWc3bkRFWDZWRkxrMUlQ?= =?utf-8?B?eWJLTFRNcU8rTS9abEM0S1dFQ05JNFVKUUtoQjllcFZvQVBUUVFsSXI2aFpz?= =?utf-8?B?ZlZEcXMwSE9UYUlUZ0tMclFINXRzbmlWL2pVOUw3cjB2NWtzQXJ6QXR0OTc3?= =?utf-8?B?bmdxc1lRWjg1QURSQUNRYWRuOGk5TGVXNjh2NSsxUCtkb3orTFJqQ2lYNGk0?= =?utf-8?B?dDJsNjc2L1hmc1d2T1Yxdm5XTkVKaWo2UXg5TUJYTWh3ejdHZnB5STN6TGgr?= =?utf-8?B?T3hBdU5VVGluMHNlQktGeHYyaFpYaGF6WkJTeS9nZzdnaGw2a3RSWmFmUVh4?= =?utf-8?B?ME5QZFRxSXlvVGZPaHdCYkUrUkgrVlZRTXFZUm5kblA1Y2JhZHBnUWJjcU1w?= =?utf-8?B?VWVCNkNlTVFCWTVyakFwS0wySi9Eejk0akRMSzZWV2ljZ0xTTEl1cVI0d1Bp?= =?utf-8?B?TVYwQ0tsNDdMTGZldVM0M1hRbnNpNWd6TjZvcnZuU001a1FaRGNObXQxYjVD?= =?utf-8?B?eWhRazNMdElvK2dKcTJQNCtMd2JLQkJrVndvUGNscmRoK3UxZngwTTA2dXdx?= =?utf-8?B?T3B3VFdLaGEyZDAwSzk1Y3ZKcVNmOUNxN0xVMW1jMGEydE5vOWo3SmNiOVVu?= =?utf-8?B?QUM3Sy8xQmFCajdKT0hXUnVqbHVxKzJuVHB1RmkrKzc3QVhoVzRBaTYrMTkv?= =?utf-8?B?WUhJTGdweDJBd2hCd2ZWWHZYRk5BU2lFZG1BZTNVUnAyWnRObVhRVmZwbHhp?= =?utf-8?B?MXNTNjhTbEhkN09iaU4wUVhIeFBRRzRvR29wVFl2WEo4TG5mS2xjaWRERGFB?= =?utf-8?B?WEZHN1BETzllQ0h2YkxWRlJmOE4yUFdPZ0xLQjBOVzkwR0F1VHIxUWpsS0Vu?= =?utf-8?B?SW1RTTBKT2p2OWk3cW5kUS95b29tZG9lbkc4MGtHOEh1cFAzeUpkK1lmRzNz?= =?utf-8?B?cW0xWU0wZEJudHVoUlRHUUtCL1J1RTRCWFEyWG05K0EzQnUvOVdXYlZTeW43?= =?utf-8?B?dktEMGNXenJMU0kwS0ZMSy9iNFZ5TEswSXVoQ0VBS0FpNjh6NXdqcG0zOEJk?= =?utf-8?B?d0JiUjgrVHRaWWdQYUtuR1h2aWVjQXFZYmg4dVN0ZTB4K3ZnZkdYcHRHRC81?= =?utf-8?B?QXZxSXRnczNobjZoUm50ZkJLWFpjb2dFQVJzU0FtSGZFbnJOeTM3SFM0ejln?= =?utf-8?B?SFhjTUFiZ3FnQjBqTmphMHRuUk5CRlVZMEZwSTVWNTlTWTNzVHV2QzV3eWZX?= =?utf-8?B?MjcvYmphU1Q1bjhCZ3Zacm5rMzBFcHgvcU8zRnRDVkxFbVF0c3YrWXloZVR0?= =?utf-8?B?RFExRG5jSFpLZE9XaGpWeVJjNzE4dlN0Ym5kN2hoOXROSFpWYVFOM0dYaFl5?= =?utf-8?B?Y3JhZXFHUldhQWlCL2hyNHFpa3lmSzdxMGloeTdVODErUThFcUk4U2dRaVBl?= =?utf-8?Q?xgqKlUj9NKR8tGyELqY76fVEEekrlBmnKQFMyhU?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2408 Original-Authentication-Results: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT042.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 24ce7557-6b45-4d41-a974-08d919da4940 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BJu+4/102KJBqVv8YR8whgXzyZBQ/cD9g2YR9LoyW2ompgHl9vUEdWrayAGrm1y1YgCvLXjd/8w/UGC4hgLZkPmgkoSGUQ0RsLWobpzAN7hMhELBf84vUxveFDU4CsLzOdRtS4SYdAn5orAWX7gXiTwxH+kdSje1GKkSiB5F/jaOK115R0u2MJaTtaDmdHbPKiL+J+UAwNnnQakSJm38/vV3awa5S1wT7mShK4OOfUoZwI6jaNMt1U2w8YtqUZ0zGnb+MUOXzOccB485M383FOG5ZMpgCzPsCiK9Hq1Ski+N26z299DFjQIK2dq2LixAcyGKMlcKTaYt9rqiLsUyCuPlffccGp9TPQB+s/vz8DRaR4ZYTLJDqcMP+2vlNUE/NhnytT+kgVFqU338QKBM/B7ezgsKdz16qgNs+U98TZRAfI4aMP+rhFNrYAQ5que1zudE6/sV3gYdGAn+RtlF6mP2T/PHJ4iTnw4bMkDJ2lZNVrAV1LMEZdeu6oqeBtQZnIZkW0h4H4Mhd/miSDtdFrZpjTdIzMKQQ5RRUabKpAusyiD9v6sYDjA+4ZhOk9AXPJCHw4Mq6UHEgDndRZOa5+R2q3AHqM2ZFvJhqmR69//DnXApn86X3u01D6pss6FWAhSgWnrQ8i9Wgh5HP6ElpgzDQs65h+1uG97I1kasj2340fyk1j+4mAsCfxaBPdBd5Ps4OlaA0OBGa6aoRrAl2ZCaIv+zSrc9wdpF7ZUGNoA= 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)(136003)(376002)(396003)(346002)(39860400002)(36840700001)(46966006)(82310400003)(83380400001)(54906003)(53546011)(81166007)(356005)(82740400003)(110136005)(316002)(52536014)(966005)(4326008)(70206006)(6506007)(70586007)(7696005)(26005)(5660300002)(33656002)(186003)(8936002)(86362001)(336012)(478600001)(224303003)(9686003)(36860700001)(55016002)(2906002)(47076005); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2021 08:52:44.7881 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8c5f30d4-03b8-4095-5c1e-08d919da4de5 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: VE1EUR03FT042.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR08MB2821 Subject: [dpdk-dev] =?utf-8?b?5Zue5aSNOiBbUEFUQ0ggdjIgMi8yXSBuZXQvbWx4?= =?utf-8?q?5=3A_remove_unnecessary_wmb_for_Memory_Region_cache?= 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 Sender: "dev" SGnvvIwgU2xhdmENCg0KPiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+IOWPkeS7tuS6ujogU2xh dmEgT3ZzaWllbmtvIDx2aWFjaGVzbGF2b0BudmlkaWEuY29tPg0KPiDlj5HpgIHml7bpl7Q6IDIw MjHlubQ15pyIMTfml6UgMjI6MTUNCj4g5pS25Lu25Lq6OiBGZWlmZWkgV2FuZyA8RmVpZmVpLldh bmcyQGFybS5jb20+OyBNYXRhbiBBenJhZA0KPiA8bWF0YW5AbnZpZGlhLmNvbT47IFNoYWhhZiBT aHVsZXIgPHNoYWhhZnNAbnZpZGlhLmNvbT4NCj4g5oqE6YCBOiBkZXZAZHBkay5vcmc7IG5kIDxu ZEBhcm0uY29tPjsgUnVpZmVuZyBXYW5nDQo+IDxSdWlmZW5nLldhbmdAYXJtLmNvbT4NCj4g5Li7 6aKYOiBSRTogW1BBVENIIHYyIDIvMl0gbmV0L21seDU6IHJlbW92ZSB1bm5lY2Vzc2FyeSB3bWIg Zm9yIE1lbW9yeQ0KPiBSZWdpb24gY2FjaGUNCj4gDQo+IEhpLCBGZWlmZWkNCj4gDQo+IFRoYW5r cyB5b3UgZm9yIHRoZSBwYXRjaC4NCj4gUGxlYXNlLCBzZWUgbXkgbm90ZXMgYmVsb3cgYWJvdXQg dHlwb3MgYW5kIG1pbm9yIGNvbW1pdCBtZXNzYWdlDQo+IHJld29yZGluZy4NCg0KVGhhbmtzIHZl cnkgbXVjaCBmb3IgeW91ciB2ZXJ5IGNhcmVmdWwgcmV2aWV3aW5nLg0KSSB3aWxsIGFwcGx5IHRo ZXNlIGluIHRoZSBuZXh0IHZlcnNpb24uDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPiANCj4gPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IEZlaWZlaSBXYW5nIDxmZWlmZWkud2Fu ZzJAYXJtLmNvbT4NCj4gPiBTZW50OiBNb25kYXksIE1heSAxNywgMjAyMSAxMzowMA0KPiA+IFRv OiBNYXRhbiBBenJhZCA8bWF0YW5AbnZpZGlhLmNvbT47IFNoYWhhZiBTaHVsZXINCj4gPiA8c2hh aGFmc0BudmlkaWEuY29tPjsgU2xhdmEgT3ZzaWllbmtvIDx2aWFjaGVzbGF2b0BudmlkaWEuY29t Pg0KPiA+IENjOiBkZXZAZHBkay5vcmc7IG5kQGFybS5jb207IEZlaWZlaSBXYW5nIDxmZWlmZWku d2FuZzJAYXJtLmNvbT47DQo+ID4gUnVpZmVuZyBXYW5nIDxydWlmZW5nLndhbmdAYXJtLmNvbT4N Cj4gPiBTdWJqZWN0OiBbUEFUQ0ggdjIgMi8yXSBuZXQvbWx4NTogcmVtb3ZlIHVubmVjZXNzYXJ5 IHdtYiBmb3IgTWVtb3J5DQo+ID4gUmVnaW9uIGNhY2hlDQo+ID4NCj4gPiAnZGV2X2dlbicgaXMg YSB2YXJpYWJsZSB0byBpbmZvcm0gb3RoZXIgY29yZXMgdG8gZmx1c2ggdGhlaXIgbG9jYWwNCj4g PiBjYWNoZSB3aGVuIGdsb2JhbCBjYWNoZSBpcyByZWJ1aWx0LiBJdCBpcyB1bm5lY2Vzc2FyeSB0 byBhZGQgd3JpdGUNCj4gPiBtZW1vcnkgYmFycmllciAod21iKSBiZWZvcmUgb3IgYWZ0ZXIgaXRz IHVwZGF0aW5nIGZvciBzeW5jaHJvbml6YXRpb24uDQo+ID4NCj4gV291bGQgaXQgYmUgYmV0dGVy ICJ0byB0cmlnZ2VyIGFsbCBjb3JlcyB0byBmbHVzaCB0aGVpciBsb2NhbCBjYWNoZXMgb25jZSB0 aGUNCj4gZ2xvYmFsIE1SIGNhY2hlIGhhcyBiZWVuIHJlYnVpbHQiICA/DQo+IA0KMS5ZZXMsIEkg dGhpbmsgdGhpcyBjYW4gYmUgbW9yZSBjbGVhci4NCg0KPiA+IFRoaXMgaXMgZHVlIHRvIE1SIGNh Y2hlJ3MgUi9XIGxvY2sgY2FuIG1haW50YWluIHN5bmNocm9uaXphdGlvbg0KPiA+IGJldHdlZW4N Cj4gPiB0aHJlYWRzOg0KPiBJIHdvdWxkIGFkZCBlbXB0eSBsaW5lIGhlcmUuDQoyLkRvbmUuDQoN Cj4gPiAxLiBkZXZfZ2VuIGFuZCBnbG9iYWwgY2FjaGUgdXBkYXRlIG9yZGVyaW5nIGluc2lkZSB0 aGUgbG9jayBwcm90ZWN0ZWQNCj4gPiBzZWN0aW9uIGRvZXMgbm90IG1hdHRlci4gQmVjYXVzZSBv dGhlciB0aHJlYWRzIGNhbm5vdCB0YWtlIHRoZSBsb2NrDQo+ID4gdW50aWwgZ2xvYmFsIGNhY2hl IGhhcyBiZWVuIHVwZGF0ZWQuIFRodXMsIGluIG91dCBvZiBvcmRlciBwbGF0Zm9ybSwNCj4gPiBl dmVuIGlmIG90aGVyIGFnZW50cyBmaXJzdGx5IG9ic2VydmVkIHVwZGF0ZWQgZGV2X2dlbiBidXQg Z2xvYmFsIGRvZXMNCj4gPiBub3QgdXBkYXRlLCB0aGV5IGFsc28gbmVlZHMgdG8gd2FpdCB0aGUg bG9jay4gQXMgYSByZXN1bHQsIGl0IGlzDQo+ID4gdW5uZWNlc3NhcnkgdG8gYWRkIGEgd21iDQo+ IFR5cGU6ICJuZWVkIiAobm8gUykgLT4gImhhdmUgdG8iIHdvdWxkIGJlIGJldHRlciA/DQo+IA0K My5Eb25lLg0KDQo+ID4gYmV0d2VlbiByZWJ1aWxpbmcgZ2xvYmFsIGNhY2hlIGFuZCB1cGRhdGlu ZyBkZXZfZ2VuIHRvIGtlZXAgdGhlIG9yZGVyDQo+IA0KPiByZWJ1aWxpbmcgLT4gcmVidWlsZGlu Zw0KNC5Eb25lLg0KDQo+IEFuZCBsZXQncyByZXdvcmQgYSBsaXR0bGUgYml0Pw0KPiAid21iIGJl dHdlZW4gZ2xvYmFsIGNhY2hlIHJlYnVpbGRpbmcgYW5kIHVwZGF0aW5nIHRoZSBkZXZfZ2VuIHRv IGtlZXANCj4gdGhlIG1lbW9yeSBzdG9yZSBvcmRlci4iDQo+IA0KNS5Eb25lLg0KDQo+ID4gcmVi dWlsZGluZyBnbG9iYWwgY2FjaGUgYW5kIHVwZGF0aW5nIGRldl9nZW4uDQo+ID4NCj4gPiAyLiBT dG9yZS1SZWxlYXNlIG9mIHVubG9jayBjYW4gcHJvdmlkZSB0aGUgaW1wbGljaXQgd21iIGF0IHRo ZSBsZXZlbA0KPiA+IHZpc2libGUgYnkNCj4gY2FuIHByb3ZpZGUgLT4gcHJvdmlkZXMNCj4gDQo2 LkRvbmUuDQoNCj4gPiBzb2Z0d2FyZS4gVGhpcyBtYWtlcyAncmVidWlsaW5nIGdsb2JhbCBjYWNo ZScgYW5kICd1cGRhdGluZyBkZXZfZ2VuJw0KPiA+IGJlDQo+IFR5cG86IHJlYnVpbGluZyAtPiBy ZWJ1aWxkaW5nDQo3LkRvbmUuDQoNCj4gDQo+IA0KPiA+IG9ic2VydmVkIGJlZm9yZSBsb2NhbF9j YWNoZSBzdGFydHMgdG8gYmUgdXBkYXRlZCBieSBvdGhlciBhZ2VudHMuDQo+ID4gVGh1cywgd21i IGFmdGVyICd1cGRhdGluZyBkZXZfZ2VuJyBjYW4gYmUgcmVtb3ZlZC4NCj4gPg0KPiA+IFN1Z2dl c3RlZC1ieTogUnVpZmVuZyBXYW5nIDxydWlmZW5nLndhbmdAYXJtLmNvbT4NCj4gPiBTaWduZWQt b2ZmLWJ5OiBGZWlmZWkgV2FuZyA8ZmVpZmVpLndhbmcyQGFybS5jb20+DQo+ID4gUmV2aWV3ZWQt Ynk6IFJ1aWZlbmcgV2FuZyA8cnVpZmVuZy53YW5nQGFybS5jb20+DQo+ID4gLS0tDQo+ID4gIGRy aXZlcnMvbmV0L21seDUvbWx4NV9tci5jIHwgMjYgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0N Cj4gPiAgMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQ0K PiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21seDUvbWx4NV9tci5jIGIvZHJpdmVy cy9uZXQvbWx4NS9tbHg1X21yLmMNCj4gPiBpbmRleA0KPiA+IGU3OTFiNjMzOGQuLjg1ZTU4NjUw NTAgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X21yLmMNCj4gPiArKysg Yi9kcml2ZXJzL25ldC9tbHg1L21seDVfbXIuYw0KPiA+IEBAIC0xMDcsMTggKzEwNywxNSBAQCBt bHg1X21yX21lbV9ldmVudF9mcmVlX2NiKHN0cnVjdA0KPiA+IG1seDVfZGV2X2N0eF9zaGFyZWQg KnNoLA0KPiA+ICAJaWYgKHJlYnVpbGQpIHsNCj4gPiAgCQltbHg1X21yX3JlYnVpbGRfY2FjaGUo JnNoLT5zaGFyZV9jYWNoZSk7DQo+ID4gIAkJLyoNCj4gPiAtCQkgKiBGbHVzaCBsb2NhbCBjYWNo ZXMgYnkgcHJvcGFnYXRpbmcgaW52YWxpZGF0aW9uIGFjcm9zcyBjb3Jlcy4NCj4gPiAtCQkgKiBy dGVfc21wX3dtYigpIGlzIGVub3VnaCB0byBzeW5jaHJvbml6ZSB0aGlzIGV2ZW50LiBJZg0KPiA+ IG9uZSBvZg0KPiA+IC0JCSAqIGZyZWVkIG1lbXNlZ3MgaXMgc2VlbiBieSBvdGhlciBjb3JlLCB0 aGF0IG1lYW5zIHRoZQ0KPiA+IG1lbXNlZw0KPiA+IC0JCSAqIGhhcyBiZWVuIGFsbG9jYXRlZCBi eSBhbGxvY2F0b3IsIHdoaWNoIHdpbGwgY29tZSBhZnRlciB0aGlzDQo+ID4gLQkJICogZnJlZSBj YWxsLiBUaGVyZWZvcmUsIHRoaXMgc3RvcmUgaW5zdHJ1Y3Rpb24gKGluY3JlbWVudGluZw0KPiA+ IC0JCSAqIGdlbmVyYXRpb24gYmVsb3cpIHdpbGwgYmUgZ3VhcmFudGVlZCB0byBiZSBzZWVuIGJ5 IG90aGVyDQo+ID4gY29yZQ0KPiA+IC0JCSAqIGJlZm9yZSB0aGUgY29yZSBzZWVzIHRoZSBuZXds eSBhbGxvY2F0ZWQgbWVtb3J5Lg0KPiA+ICsJCSAqIE5vIHdtYiBpcyBuZWVkZWQgYWZ0ZXIgdXBk YXRpbmcgZGV2X2dlbiBkdWUgdG8gc3RvcmUtDQo+ID4gcmVsZWFzZSBvZg0KPiA+ICsJCSAqIHVu bG9jayBjYW4gcHJvdmlkZSB0aGUgaW1wbGljaXQgd21iIGF0IHRoZSBsZXZlbCB2aXNpYmxlIGJ5 DQo+ID4gKwkJICogc29mdHdhcmUuIFRoaXMgbWFrZXMgcmVidWlsdCBnbG9iYWwgY2FjaGUgYW5k IHVwZGF0ZWQNCj4gPiBkZXZfZ2VuDQo+ID4gKwkJICogYmUgb2JzZXJ2ZWQgd2hlbiBsb2NhbF9j YWNoZSBzdGFydHMgdG8gYmUgdXBkYXRpbmcgYnkNCj4gPiBvdGhlcg0KPiA+ICsJCSAqIGFnZW50 cy4NCj4gPiAgCQkgKi8NCj4gTGV0J3MgbWFrZSBjb21tZW50IGEgbGVzcyB3b3JkeSAoYW5kIHRy eSB0byBrZWVwIHNvdXJjZSBjb2RlIGNvbmNpc2UpLA0KPiB3aGF0IGFib3V0IHRoaXM/DQo+ICJO byBleHBsaWNpdCB3bWIgaXMgbmVlZGVkIGFmdGVyIHVwZGF0aW5nIGRldl9nZW4gZHVlIHRvIHN0 b3JlLXJlbGVhc2UNCj4gb3JkZXJpbmcgaW4gdW5sb2NrIHRoYXQgcHJvdmlkZXMgdGhlIGltcGxp Y2l0IGJhcnJpZXIgYXQgdGhlIHNvZnR3YXJlIHZpc2libGUNCj4gbGV2ZWwuIg0KOC5UaGF0J3Mg YmV0dGVyIHRoYW4gYmVmb3JlLiBBIGNvbmNpc2UgY29tbWVudCB3b3JrcyBiZXR0ZXIgaW4gdGhl IGNvZGUuDQoNCj4gDQo+ID4gIAkJKytzaC0+c2hhcmVfY2FjaGUuZGV2X2dlbjsNCj4gPiAgCQlE UlZfTE9HKERFQlVHLCAiYnJvYWRjYXN0aW5nIGxvY2FsIGNhY2hlIGZsdXNoLCBnZW49JWQiLA0K PiA+ICAJCSAgICAgIHNoLT5zaGFyZV9jYWNoZS5kZXZfZ2VuKTsNCj4gPiAtCQlydGVfc21wX3dt YigpOw0KPiA+ICAJfQ0KPiA+ICAJcnRlX3J3bG9ja193cml0ZV91bmxvY2soJnNoLT5zaGFyZV9j YWNoZS5yd2xvY2spOw0KPiA+ICB9DQo+ID4gQEAgLTQxMSwxOCArNDA4LDE1IEBAIG1seDVfZG1h X3VubWFwKHN0cnVjdCBydGVfcGNpX2RldmljZSAqcGRldiwNCj4gdm9pZA0KPiA+ICphZGRyLA0K PiA+ICAJICAgICAgKHZvaWQgKiltcik7DQo+ID4gIAltbHg1X21yX3JlYnVpbGRfY2FjaGUoJnNo LT5zaGFyZV9jYWNoZSk7DQo+ID4gIAkvKg0KPiA+IC0JICogRmx1c2ggbG9jYWwgY2FjaGVzIGJ5 IHByb3BhZ2F0aW5nIGludmFsaWRhdGlvbiBhY3Jvc3MgY29yZXMuDQo+ID4gLQkgKiBydGVfc21w X3dtYigpIGlzIGVub3VnaCB0byBzeW5jaHJvbml6ZSB0aGlzIGV2ZW50LiBJZiBvbmUgb2YNCj4g PiAtCSAqIGZyZWVkIG1lbXNlZ3MgaXMgc2VlbiBieSBvdGhlciBjb3JlLCB0aGF0IG1lYW5zIHRo ZSBtZW1zZWcNCj4gPiAtCSAqIGhhcyBiZWVuIGFsbG9jYXRlZCBieSBhbGxvY2F0b3IsIHdoaWNo IHdpbGwgY29tZSBhZnRlciB0aGlzDQo+ID4gLQkgKiBmcmVlIGNhbGwuIFRoZXJlZm9yZSwgdGhp cyBzdG9yZSBpbnN0cnVjdGlvbiAoaW5jcmVtZW50aW5nDQo+ID4gLQkgKiBnZW5lcmF0aW9uIGJl bG93KSB3aWxsIGJlIGd1YXJhbnRlZWQgdG8gYmUgc2VlbiBieSBvdGhlciBjb3JlDQo+ID4gLQkg KiBiZWZvcmUgdGhlIGNvcmUgc2VlcyB0aGUgbmV3bHkgYWxsb2NhdGVkIG1lbW9yeS4NCj4gPiAr CSAqIE5vIHdtYiBpcyBuZWVkZWQgYWZ0ZXIgdXBkYXRpbmcgZGV2X2dlbiBkdWUgdG8gc3RvcmUt cmVsZWFzZSBvZg0KPiA+ICsJICogdW5sb2NrIGNhbiBwcm92aWRlIHRoZSBpbXBsaWNpdCB3bWIg YXQgdGhlIGxldmVsIHZpc2libGUgYnkNCj4gPiArCSAqIHNvZnR3YXJlLiBUaGlzIG1ha2VzIHJl YnVpbHQgZ2xvYmFsIGNhY2hlIGFuZCB1cGRhdGVkIGRldl9nZW4NCj4gPiArCSAqIGJlIG9ic2Vy dmVkIHdoZW4gbG9jYWxfY2FjaGUgc3RhcnRzIHRvIGJlIHVwZGF0aW5nIGJ5IG90aGVyDQo+ID4g KwkgKiBhZ2VudHMuDQo+IFRoZSBzYW1lIGFzIHByZXZpb3VzIGNvbW1lbnQgYWJvdmUuDQo5LkRv bmUuDQoNCj4gDQo+IFBsZWFzZSwgYXBwbHkgdGhlIHNhbWUgY29tbWVudHMgdG8gdGhlIG1seDQg cGF0Y2g6DQo+IGh0dHA6Ly9wYXRjaGVzLmRwZGsub3JnL3Byb2plY3QvZHBkay9wYXRjaC8yMDIx MDUxNzEwMDAwMi4xOTkwNS0yLQ0KPiBmZWlmZWkud2FuZzJAYXJtLmNvbS8NCj4gDQoxMC5Eb25l Lg0KDQpCZXN0IFJlZ2FyZHMNCkZlaWZlaQ0KDQo+IFdpdGggYmVzdCByZWdhcmRzLA0KPiBTbGF2 YQ0KDQo=