From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D8BDBC433C1 for ; Fri, 26 Mar 2021 11:21:15 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8E20261A2D for ; Fri, 26 Mar 2021 11:21:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8E20261A2D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 021326E1D7; Fri, 26 Mar 2021 11:21:15 +0000 (UTC) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2054.outbound.protection.outlook.com [40.107.244.54]) by gabe.freedesktop.org (Postfix) with ESMTPS id 175106E1D7; Fri, 26 Mar 2021 11:21:14 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YOqG3kFLqKl0gmoq69WUvnclrGwqHasx44Xm4Q/bFpCR4mqiOwdMW0TLwNR2JVE4Wou96xzrArGya8/PvIVJpmzNCZO02OQRp31+Zt+xM+t2CngzX6jg8KI+uMThPC+ocU0mUsp6HoS+X2zgoTjhe/n+eaGkFaWUtJ974N6Nw6kPk+J8HI81A+XnsOx+u2uh1W5SE1SHuP3B1PEh/GtgU+m+es7+FwTY1Qn5ayRLRLUnDfDxm2BwdlM5VqgSZpj7MCYTENUy958m4b41JZbNzNOWRvGcgSRjmqs09InQZlnIDOD8VwZj5CpK/6ugdGE09nrOCTpvveCygF4n7r3dpw== 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=DjdY8Suh06mUAFTa58ZUOjXCHlyDPvPZXn4jRtOce+U=; b=TZxmXEyyQ8Fj1Dx8svpT1Zv3IzNxGtvG8NDeO1znqMrhYzM6Iy0yEjYPt8OmH1BUBqZ8KnzMOipGMDNiqi46wzU0otiGRgNMq5UkbAy9RtYyrxvtL1AmWgD+LqnmOVYNeg2+lUQTFBeU2VVty1NYQ3oFS00vR0Vc1ejckdY/QOqv5Bhd91LJnMfKLGbseBQpWN4BBVnldXz7Xx8azia9I5VQTZuPKC1qv2kJhaOIW+RUSP0lxG2RHC0qwoftutWzexxhvizEAu5/UM2Jls1o+tJpUw+dmor46VP1IZSQHNb3fu6N82TyCz8YZDLTN0qGtxzqcgVlj5sBL5Rt/goEag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DjdY8Suh06mUAFTa58ZUOjXCHlyDPvPZXn4jRtOce+U=; b=fj2CY8C9fTY059pHVHUbt6L8KPHCuWDjIbR4foNHFd9CFeVuIxD6g4lkmlqEJFNa268tM9N0Xs+srr3vU4MjVMDqohPHxCZbeCSAUDZ0amB61qaCj/i2jXW6rNCnCoB+5pMi6ZtB7u38ao6IQPbkurnc3qWtJWG8sHUNrD3jWGE= Received: from DM5PR12MB1708.namprd12.prod.outlook.com (2603:10b6:3:10e::22) by DM6PR12MB4153.namprd12.prod.outlook.com (2603:10b6:5:212::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.25; Fri, 26 Mar 2021 11:21:11 +0000 Received: from DM5PR12MB1708.namprd12.prod.outlook.com ([fe80::7907:4699:3faa:e290]) by DM5PR12MB1708.namprd12.prod.outlook.com ([fe80::7907:4699:3faa:e290%10]) with mapi id 15.20.3977.030; Fri, 26 Mar 2021 11:21:11 +0000 From: "Liu, Monk" To: "Koenig, Christian" , "Zhang, Jack (Jian)" , "Grodzovsky, Andrey" , =?utf-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= , "dri-devel@lists.freedesktop.org" , "amd-gfx@lists.freedesktop.org" , "Deng, Emily" , Rob Herring , Tomeu Vizoso , Steven Price Subject: =?utf-8?B?5Zue5aSNOiBbUEFUQ0ggdjNdIGRybS9zY2hlZHVsZXIgcmUtaW5zZXJ0IEJh?= =?utf-8?Q?iling_job_to_avoid_memleak?= Thread-Topic: [PATCH v3] drm/scheduler re-insert Bailing job to avoid memleak Thread-Index: AQHXGVr0C/UjhLNIhES+2LVHuxFSxKqEg/uAgAGywQCAAYjvAIAAEBeAgAB3aoCAAAW2gIABRtUAgABdvoCACpSzAIAAcAKAgAClOwCAAHBCgIAAI2Rw Date: Fri, 26 Mar 2021 11:21:11 +0000 Message-ID: References: <20210315052036.1113638-1-Jack.Zhang1@amd.com> <9b48b715-52dd-e435-2873-2472427dffda@gmail.com> <64583ef0-d19c-1906-91f2-70fd649fa46e@amd.com> <3a81ffab-5ace-a50a-c34d-956f23709eba@amd.com> In-Reply-To: <3a81ffab-5ace-a50a-c34d-956f23709eba@amd.com> Accept-Language: en-US, zh-CN Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_ActionId=dc30d047-b17d-40d5-986b-f85c30c8ae72; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_ContentBits=0; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_Enabled=true; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_Method=Standard; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_Name=Internal Use Only - Unrestricted; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_SetDate=2021-03-26T11:12:15Z; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; authentication-results: amd.com; dkim=none (message not signed) header.d=none;amd.com; dmarc=none action=none header.from=amd.com; x-originating-ip: [222.70.220.189] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 3d1e59e0-b8d0-4db6-f1c5-08d8f04942ce x-ms-traffictypediagnostic: DM6PR12MB4153: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:549; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ovRX4Php3VinKWiuFcGk/KWfCwPrcourwks91vle2cGCV6X9s9wIBWkQtmgz9+wrp85Ti7mdk4wqBmFyPuGRFXOugZwNngu6qTBQPgG3pB4FoD+ej6fmelQAT0Ml2TqLXH/qvGaZdXv9CwvSalErkskxSgJz22TW+gRiF/SuiwopRMN6Zbc9r+qoRizwWOuhwAjq5rIK1RpRNJ1TIx6NHT4mNNNCrsbB1BDg85n1flkmBwcq8cBnkfSgmztgIFPgzjcqvRBHnYF/giCXhMk2gLQ1IbLKBO4cGOtP8xtRgg7U9I0buXudijwSgzOfrv7ahlTbpJDrW1zfbLuc9SIewZUPsH4h1SChO9P0Ofg6BYccdyHCiWY3ZjC1VEnlqv1EHwahW1h7aytrGGrdv+aAGSgpmvnZlzs1hXVmS7KXqk0ohtM7ULlrVzwSPjSVAfhU19hkHI5BvI+sqS/GwikXiR6nkHZviKRkrM8pWXp0vt+OSpCmo5tapWSM0e3tJls9PZ9+NH1fjTOXB4o1TS6CvZKjGQXXq1b5uVg8quyLOp8JZM/oLMMnjBqSYXOtZWFjfRT9wp045HyenmaIHTXpirtfQLOhVzKvbmGarXnSPiGuUXq8BOAbtIVELOyZN2PWZWghl5f6yQ4skGCzeYx28USHtY1TB1IE4k2UMoVWzjWmehcbK5uJ+89O74C5Xmn3HgBDyo0ptNkA1NBgy9aowykcabxFuIJ5sX21KnXq/HPSlo3lyEu3RoIlNg8lsGBq x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM5PR12MB1708.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(376002)(396003)(346002)(136003)(39860400002)(224303003)(66476007)(45080400002)(66556008)(316002)(921005)(6506007)(86362001)(52536014)(30864003)(478600001)(8936002)(2906002)(55016002)(53546011)(33656002)(5660300002)(110136005)(54906003)(83380400001)(26005)(9686003)(66946007)(7696005)(71200400001)(64756008)(966005)(66574015)(186003)(38100700001)(4326008)(66446008)(76116006)(579004)(559001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?VW1oODdhb2ZtY2dtZkJLcmVta053c29xRXJrZTh4Uisya2xJRzEzMlJBWEFN?= =?utf-8?B?akxCZ25PRlRDMlg5QTlzUGxuMFArSjFKa1l6eUw2K3BjSys2cUZHdkdEN3h6?= =?utf-8?B?Z0tNdWtaQnA1eVEzcTdMdUJSaW5zRWJrYWErdHNKUTR5bmRodzdUcGNoTXgw?= =?utf-8?B?c1R0cFFZcEtSek5ocUNOUDc0ZHVzRE5JK0JnY3hmb2piZ2R5MnZOZHV0akdm?= =?utf-8?B?Y2ZLZGJrcVRIYUlDeFR5T0w2TmY5UGo3aDJPNS9ZNE9ucUV5bjJTZ0JVR0VX?= =?utf-8?B?MHp6SGp4OFBUcms4eHN2UWdwdWRyWjkvZHN2ZVRnWWJWN3B1elNlZzZYZlRX?= =?utf-8?B?bWZSU0x5NHFHQ29vUGJGR1BCbkxEbmVrbWNHZ3Jmc1BFRVZDSWpVVUwxK2NT?= =?utf-8?B?SW5wN085UjJzMXBuTWJweVhvRGJQK1FhTWtWclg1Y1VEcGc2czhaMmlnSUx0?= =?utf-8?B?YThVemo5aURuRWlwUjhNdnM4cElRNzNmK05mU2hJQ2JYSlh1aHg5R2VKbUlF?= =?utf-8?B?N0NTaHZCdEVKS3h1RWF2MTdaNm4vOENmRy9ZWnlPenNLcnBTVVFYNmE4dHVX?= =?utf-8?B?dGRNb2ZHVEJqSmdVUVNNU0xqTHFPNGdDeDVBbGJ3dWNQS0hzb1BMRGRLNkF2?= =?utf-8?B?ejZ3S0diYmFGbmx6R1hrODJvTlBKaG9HY1FwaGFZcjJOL0xCUnJMcVRES2l0?= =?utf-8?B?cmRQdkFSQzF3RWFlbi85aThPcHJ3enRGVVQ1U0QxaGtNZGE3cVliRlo3QllY?= =?utf-8?B?YnZ6b1B0K08rNWdNQkQ2Nm8vMDJsWDl1Yzc1QXB4R2hGOFVQb0lrWncxYUwy?= =?utf-8?B?WnF0Nm9vYU1kQjBYcmMxYjRxWnJ0WVpNdlB6MTcwd2Vvb0FhSm9WWUQ1cFZC?= =?utf-8?B?eHBpd05MR1N2VHhtbEVCSjVPS25MTEdVUFpuaWFnVUx2cUlybDhKQ1R2MDkx?= =?utf-8?B?VjFNRmxmNlk5TUtjZ0NqeFJKTjdnTFhhazVRRHIyS3Q2amtUMDhWOTlaa3pv?= =?utf-8?B?K3dWYmV3cVlJYm84by9xT1JNQURYR0JKMjV3NndJbWw4OGRTb2VTelQrU1h6?= =?utf-8?B?UG85TStNWk9BOGp5dk5oa2ZVSFluVk13UHZ3N3Y2Z0Y0MVlzR0w0c2Q1TWtY?= =?utf-8?B?QjNqcGkrMEFqTklENmw4V1lwRHJGNlUwLysxYmU5bzZDeDMxQjZndUNlZ1JI?= =?utf-8?B?L3BEcU1MS3paK2xFTWxkQy9sZWRvN2FlM1I3akZNSmx3TXlxVmdJU2kvWnVP?= =?utf-8?B?SGFXRzN0TXQ4a1VPcDFzQzZCQy80d1drT2g1V055d0dVWkdKSGFHZTliNUhZ?= =?utf-8?B?YWxmODByM3BITFF0OVJyalNkZ083a1JxY2V3bS9SOWlFRjljbnhubWlHNVNE?= =?utf-8?B?K0k3bFp3bldvRUNuSGdjV2dpelo3dTV0bEJ2NnNsUkMxRUVTMHZaOFo3QlJn?= =?utf-8?B?ZHp4ZnZhYWlHU0w2MTF2MWJPZVFpNTlPNWJqNGgwdU9xTFRJWjk3eVMzdFZU?= =?utf-8?B?WXJRK2tFaVZ0b0RxSFVxTTBmZFlwSXQwNyt4bDd0VWRsQWxTc0wxWlc5UnBW?= =?utf-8?B?RkpXWFpzYzdNbDU1cnlVbUk2a2VSald1Rk54TjlSMlpGbjUweVFqckhudHc5?= =?utf-8?B?RExOczVpQTk4ZE1vOXVydTFpZXpIYmpoaDBqZzhQQktmenIvWkNYNERVZGtZ?= =?utf-8?B?V2RrMXV1dHdmS0xINHVZcnpKNDNWTWNEVE05YjhPMG15a2ZXc0NkcU9leFk0?= =?utf-8?Q?dwmjbjRH4l/mql/lKQekGBwmLLlEFmHyGGzx5Oi?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1708.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3d1e59e0-b8d0-4db6-f1c5-08d8f04942ce X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Mar 2021 11:21:11.5103 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: YbSNnWg5hYS6jY+Qww/2/0ffQ4uc2nWIk+3vBB/HQ9t9PRlSskeQOHynQWNpmN7u X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4153 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Zhang, Andy" , "Jiang, Jerry \(SW\)" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" W0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEludGVybmFsIERpc3RyaWJ1dGlvbiBPbmx5XQ0KDQpI aSBDaHJpc3RpYW4NCg0KVGhpcyBpcyBub3QgY29ycmVjdCBvciBjb3JyZWN0IHBlcnNwZWN0aXZl LCBhbnkgZGVzaWduIGNvbWVzIHdpdGggaXRzIHByb3MgYW5kIGNvbnMsIG90aGVyd2lzZSBpdCB3 b3VsZG4ndCBjb21lcyB0byBrZXJuZWwgdHJlZSBpbiB0aGUgdmVyeSBiZWdpbm5pbmcgLCBpdCBp cyBqdXN0IHdpdGggdGltZSBwYXNzZWQgd2UgaGF2ZSBtb3JlIGFuZCBtb3JlIHJlcXVpcmVtZW50 IGFuZCBmZWF0dXJlIG5lZWQgdG8gaW1wbGVtZW50DQpBbmQgdGhvc2UgbmV3IHJlcXVpcmVtZW50 IGRyYWdzIG1hbnkgbmV3IHNvbHV0aW9uIG9yIGlkZWEsIGFuZCBzb21lIGlkZWEgeW91IHByZWZl ciBuZWVkIHRvIGJhc2VkIG9uIGEgbmV3IGluZnJhc3RydWN0dXJlLCB0aGF0J3MgYWxsDQoNCkkg ZG9uJ3Qgd2h5IHRoZSBqb2IgInNob3VsZCBiZSIgb3Igbm90ICJzaG91bGQgYmUiIGluIHRoZSBz Y2hlZHVsZXIsIGhvbmVzdGx5IHNwZWFraW5nIEkgY2FuIGFyZ3VlIHdpdGggeW91IHRoYXQgdGhl ICJzY2hlZHVsZXIiIGFuZCB0aGUgVERSIGZlYXR1cmUgd2hpY2ggaW52ZW50ZWQgYnkgQU1EIGRl dmVsb3BlciAic2hvdWxkIiBuZXZlciBlc2NhbGF0ZSB0byBkcm0gbGF5ZXIgYXQgYWxsIGFuZCBi eSB0aGF0IGFzc3VtcHRpb24NClRob3NlIHZlbmRvcidzIGNvbXBhdGliaWxpdGllcyBoZWFkYWNo ZSByaWdodCBub3cgd29uJ3QgaGFwcGVuIGF0IGFsbC4NCg0KTGV0J3MganVzdCBmb2N1cyBvbiB0 aGUgaXNzdWUgc28gZmFyLg0KDQpUaGUgc29sdXRpb24gQW5kcmV5IGFuZCBKYWNrIGRvaW5nIHJp Z2h0IG5vdyBsb29rcyBnb29kIHRvIG1lLCBhbmQgaXQgY2FuIHNvbHZlIG91ciBwcm9ibGVtcyB3 aXRob3V0IGludHJvZHVjaW5nIHJlZ3Jlc3Npb24gZnJvbSBhIHN1cmZhY2UgbG9vaywgYnV0IGl0 IGlzIGZpbmUgaWYgeW91IG5lZWQgYSBuZWF0IHNvbHV0aW9uLCAgc2luY2Ugd2UgaGF2ZSBvdXIg cHJvamVjdCBwcmVzc3VyZSAod2hpY2ggd2UgYWx3YXlzIGhhdmUpDQpFaXRoZXIgd2UgaW1wbGVt ZW50IHRoZSBmaXJzdCB2ZXJzaW9uIHdpdGggSmFjaydzIHBhdGNoIGFuZCBkbyB0aGUgcmV2aXNl IGluIGFub3RoZXIgc2VyaWVzIG9mIHBhdGNoZXMgKHRoYXQgYWxzbyBteSBpbml0aWFsIHN1Z2dl c3Rpb24pIG9yIHdlIHJld29yayBhbnl0aGluZyB5b3UgbWVudGlvbmVkLCBidXQgc2luY2UgbG9v a3MgdG8gbWUgeW91IGFyZSBmcm9tIHRpbWUgdG8gdGltZSBhc2tpbmcgcGVvcGxlIHRvIHJld29y aw0KU29tZXRoaW5nIGluIHRoZSBzdGFnZSB0aGF0IHBlb3BsZSBhbHJlYWR5IGhhdmUgYSBzb2x1 dGlvbiwgd2hpY2ggZnJ1c3RyYXRlZCBwZW9wbGUgYSBsb3QsDQoNCkkgd291bGQgbGlrZSB5b3Ug ZG8gcHJlcGFyZSBhIHNvbHV0aW9uIGZvciB1cywgd2hpY2ggc29sdmVzIG91ciBoZWFkYWNoZXMg Li4uICBJIHJlYWxseSBkb24ndCB3YW50IHRvIHNlZSB5b3UgYXNrZWQgSmFjayB0byByZXdvcmsg YWdhaW4gYW5kIGFnYWluDQpJZiB5b3UgYXJlIG91dCBvZiBiYW5kd2lkdGggb3Igbm8gaW50ZXJl c3QgaW4gZG9pbmcgdGhpcyAscGxlYXNlIGF0IGxlYXN0IG1ha2UgeW91ciBzb2x1dGlvbi9wcm9w b3NhbCB2ZXJ5IGRldGFpbCBhbmQgY2xlYXIsIGphY2sgdG9sZCBtZSBoZSBjb3VsZG4ndCB1bmRl cnN0YW5kIHlvdXIgcG9pbnQgaGVyZS4NCg0KVGhhbmtzIHZlcnkgbXVjaCwgYW5kIHBsZWFzZSB1 bmRlcnN0YW5kIG91ciBwYWluZnVsIGhlcmUNCg0KL01vbmsNCg0KDQotLS0tLemCruS7tuWOn+S7 ti0tLS0tDQrlj5Hku7bkuro6IEtvZW5pZywgQ2hyaXN0aWFuIDxDaHJpc3RpYW4uS29lbmlnQGFt ZC5jb20+DQrlj5HpgIHml7bpl7Q6IDIwMjHlubQz5pyIMjbml6UgMTc6MDYNCuaUtuS7tuS6ujog WmhhbmcsIEphY2sgKEppYW4pIDxKYWNrLlpoYW5nMUBhbWQuY29tPjsgR3JvZHpvdnNreSwgQW5k cmV5IDxBbmRyZXkuR3JvZHpvdnNreUBhbWQuY29tPjsgQ2hyaXN0aWFuIEvDtm5pZyA8Y2tvZW5p Zy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb20+OyBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnOyBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgTGl1LCBNb25rIDxNb25rLkxpdUBh bWQuY29tPjsgRGVuZywgRW1pbHkgPEVtaWx5LkRlbmdAYW1kLmNvbT47IFJvYiBIZXJyaW5nIDxy b2JoQGtlcm5lbC5vcmc+OyBUb21ldSBWaXpvc28gPHRvbWV1LnZpem9zb0Bjb2xsYWJvcmEuY29t PjsgU3RldmVuIFByaWNlIDxzdGV2ZW4ucHJpY2VAYXJtLmNvbT4NCuS4u+mimDogUmU6IFtQQVRD SCB2M10gZHJtL3NjaGVkdWxlciByZS1pbnNlcnQgQmFpbGluZyBqb2IgdG8gYXZvaWQgbWVtbGVh aw0KDQpIaSBndXlzLA0KDQpBbSAyNi4wMy4yMSB1bSAwMzoyMyBzY2hyaWViIFpoYW5nLCBKYWNr IChKaWFuKToNCj4gW0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEludGVybmFsIERpc3RyaWJ1dGlv biBPbmx5XQ0KPg0KPiBIaSwgQW5kcmV5LA0KPg0KPj4+IGhvdyB1IGhhbmRsZSBub24gZ3VpbHR5 IHNpbmduYWxlZCBqb2JzIGluIGRybV9zY2hlZF9zdG9wLCBjdXJyZW50bHkNCj4+PiBsb29rcyBs aWtlIHlvdSBkb24ndCBjYWxsIHB1dCBmb3IgdGhlbSBhbmQganVzdCBleHBsaWNpdGx5IGZyZWUg dGhlbQ0KPj4+IGFzIGJlZm9yZQ0KPiBHb29kIHBvaW50LCBJIG1pc3NlZCB0aGF0IHBsYWNlLiBX aWxsIGNvdmVyIHRoYXQgaW4gbXkgbmV4dCBwYXRjaC4NCj4NCj4+PiBBbHNvIHNjaGVkLT5mcmVl X2d1aWx0eSBzZWVtcyB1c2VsZXNzIHdpdGggdGhlIG5ldyBhcHByb2FjaC4NCj4gWWVzLCBJIGFn cmVlLg0KPg0KPj4+IERvIHdlIGV2ZW4gbmVlZCB0aGUgY2xlYW51cCBtZWNoYW5pc20gYXQgZHJt X3NjaGVkX2dldF9jbGVhbnVwX2pvYiB3aXRoIHRoaXMgYXBwcm9hY2guLi4NCj4gSSBhbSBub3Qg cXVpdGUgc3VyZSBhYm91dCB0aGF0IGZvciBub3csIGxldCBtZSB0aGluayBhYm91dCB0aGlzIHRv cGljIHRvZGF5Lg0KPg0KPiBIaSwgQ2hyaXN0aWFuLA0KPiBzaG91bGQgSSBhZGQgYSBmZW5jZSBh bmQgZ2V0L3B1dCB0byB0aGF0IGZlbmNlIHJhdGhlciB0aGFuIHVzaW5nIGFuIGV4cGxpY2l0IHJl ZmNvdW50Pw0KPiBBbmQgYW5vdGhlciBjb25jZXJucz8NCg0Kd2VsbCBsZXQgbWUgcmUtaXRlcmF0 ZToNCg0KRm9yIHRoZSBzY2hlZHVsZXIgdGhlIGpvYiBpcyBqdXN0IGEgdGVtcG9yYXJ5IGRhdGEg c3RydWN0dXJlIHVzZWQgZm9yIHNjaGVkdWxpbmcgdGhlIElCcyB0byB0aGUgaGFyZHdhcmUuDQoN CldoaWxlIHB1c2hpbmcgdGhlIGpvYiB0byB0aGUgaGFyZHdhcmUgd2UgZ2V0IGEgZmVuY2Ugc3Ry dWN0dXJlIGluIHJldHVybiB3aGljaCByZXByZXNlbnRzIHRoZSBJQnMgZXhlY3V0aW5nIG9uIHRo ZSBoYXJkd2FyZS4NCg0KVW5mb3J0dW5hdGVseSB3ZSBoYXZlIGFwcGxpZWQgYSBkZXNpZ24gd2hl cmUgdGhlIGpvYiBzdHJ1Y3R1cmUgaXMgcmF0aGVyIHVzZWQgZm9yIHJlLXN1Ym1pdHRpbmcgdGhl IGpvYnMgdG8gdGhlIGhhcmR3YXJlIGFmdGVyIGEgR1BVIHJlc2V0IGFuZCBrYXJtYSBoYW5kbGlu ZyBldGMgZXRjLi4uDQoNCkFsbCB0aGF0IHNob3VsZG4ndCBoYXZlIGJlZW4gcHVzaGVkIGludG8g dGhlIHNjaGVkdWxlciBpbnRvIHRoZSBmaXJzdCBwbGFjZSBhbmQgd2Ugc2hvdWxkIG5vdyB3b3Jr IG9uIGdldHRpbmcgdGhpcyBjbGVhbmVkIHVwIHJhdGhlciB0aGFuIG1ha2luZyBpdCBhbiBldmVu IGJpZ2dlciBtZXNzIGJ5IGFwcGx5aW5nIGhhbHZlIGJhY2tlZCBzb2x1dGlvbnMuDQoNClNvIGlu IG15IG9waW5pb24gYWRkaW5nIGEgcmVmZXJlbmNlIGNvdW50IHRvIHRoZSBqb2IgaXMgZ29pbmcg aW50byB0aGUgY29tcGxldGVseSB3cm9uZyBkaXJlY3RseS4gV2hhdCB3ZSBzaG91bGQgcmF0aGVy IGRvIGlzIHRvIGZpeCB0aGUgaW5jb3JyZWN0IGRlc2lnbiBkZWNpc2lvbiB0byB1c2Ugam9icyBh cyB2ZWhpY2xlIGluIHRoZSBzY2hlZHVsZXIgZm9yIHJlc2V0IGhhbmRsaW5nLg0KDQpUbyBmaXgg dGhpcyBJIHN1Z2dlc3QgdGhlIGZvbGxvd2luZyBhcHByb2FjaDoNCjEuIFdlIGFkZCBhIHBvaW50 ZXIgZnJvbSB0aGUgZHJtX3NjaGVkX2ZlbmNlIGJhY2sgdG8gdGhlIGRybV9zY2hlZF9qb2IuDQoy LiBJbnN0ZWFkIG9mIGtlZXBpbmcgdGhlIGpvYiBhcm91bmQgaW4gdGhlIHNjaGVkdWxlciB3ZSBr ZWVwIHRoZSBmZW5jZSBhcm91bmQuIEZvciB0aGlzIEkgc3VnZ2VzdCB0byByZXBsYWNlIHRoZSBw ZW5kaW5nX2xpc3Qgd2l0aCBhIHJpbmcgYnVmZmVyLg0KMy4gVGhlIHRpbWVkb3V0X2pvYiBjYWxs YmFjayBpcyByZXBsYWNlZCB3aXRoIGEgdGltZW91dF9mZW5jZSBjYWxsYmFjay4NCjQuIFRoZSBm cmVlX2pvYiBjYWxsYmFjayBpcyBjb21wbGV0ZWQgZHJvcHBlZC4gSm9iIGxpZmV0aW1lIGlzIG5v dyBoYW5kbGVkIGluIHRoZSBkcml2ZXIsIG5vdCB0aGUgc2NoZWR1bGVyLg0KDQpSZWdhcmRzLA0K Q2hyaXN0aWFuLg0KDQo+DQo+IFRoYW5rcywNCj4gSmFjaw0KPg0KPiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiBGcm9tOiBHcm9kem92c2t5LCBBbmRyZXkgPEFuZHJleS5Hcm9kem92c2t5 QGFtZC5jb20+DQo+IFNlbnQ6IEZyaWRheSwgTWFyY2ggMjYsIDIwMjEgMTI6MzIgQU0NCj4gVG86 IFpoYW5nLCBKYWNrIChKaWFuKSA8SmFjay5aaGFuZzFAYW1kLmNvbT47IENocmlzdGlhbiBLw7Zu aWcNCj4gPGNrb2VuaWcubGVpY2h0enVtZXJrZW5AZ21haWwuY29tPjsgZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZzsNCj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IEtvZW5p ZywgQ2hyaXN0aWFuDQo+IDxDaHJpc3RpYW4uS29lbmlnQGFtZC5jb20+OyBMaXUsIE1vbmsgPE1v bmsuTGl1QGFtZC5jb20+OyBEZW5nLCBFbWlseQ0KPiA8RW1pbHkuRGVuZ0BhbWQuY29tPjsgUm9i IEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZz47IFRvbWV1IFZpem9zbw0KPiA8dG9tZXUudml6b3Nv QGNvbGxhYm9yYS5jb20+OyBTdGV2ZW4gUHJpY2UgPHN0ZXZlbi5wcmljZUBhcm0uY29tPg0KPiBT dWJqZWN0OiBSZTogW1BBVENIIHYzXSBkcm0vc2NoZWR1bGVyIHJlLWluc2VydCBCYWlsaW5nIGpv YiB0byBhdm9pZA0KPiBtZW1sZWFrDQo+DQo+IFRoZXJlIGFyZSBhIGZldyBpc3N1ZXMgaGVyZSBs aWtlIC0gaG93IHUgaGFuZGxlIG5vbiBndWlsdHkgc2luZ25hbGVkIGpvYnMgaW4gZHJtX3NjaGVk X3N0b3AsIGN1cnJlbnRseSBsb29rcyBsaWtlIHlvdSBkb24ndCBjYWxsIHB1dCBmb3IgdGhlbSBh bmQganVzdCBleHBsaWNpdGx5IGZyZWUgdGhlbSBhcyBiZWZvcmUuIEFsc28gc2NoZWQtPmZyZWVf Z3VpbHR5IHNlZW1zIHVzZWxlc3Mgd2l0aCB0aGUgbmV3IGFwcHJvYWNoLiBEbyB3ZSBldmVuIG5l ZWQgdGhlIGNsZWFudXAgbWVjaGFuaXNtIGF0IGRybV9zY2hlZF9nZXRfY2xlYW51cF9qb2Igd2l0 aCB0aGlzIGFwcHJvYWNoLi4uDQo+DQo+IEJ1dCBmaXJzdCAtIFdlIG5lZWQgQ2hyaXN0aWFuIHRv IGV4cHJlc3MgaGlzIG9waW5pb24gb24gdGhpcyBzaW5jZSBJIHRoaW5rIGhlIG9wcG9zZWQgcmVm Y291bnRpbmcgam9icyBhbmQgdGhhdCB3ZSBzaG91bGQgY29uY2VudHJhdGUgb24gZmVuY2VzIGlu c3RlYWQuDQo+DQo+IENocmlzdGlhbiAtIGNhbiB5b3UgY2hpbWUgaW4gaGVyZSA/DQo+DQo+IEFu ZHJleQ0KPg0KPiBPbiAyMDIxLTAzLTI1IDU6NTEgYS5tLiwgWmhhbmcsIEphY2sgKEppYW4pIHdy b3RlOg0KPj4gW0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEludGVybmFsIERpc3RyaWJ1dGlvbiBP bmx5XQ0KPj4NCj4+DQo+PiBIaSwgQW5kcmV5DQo+Pg0KPj4gVGhhbmsgeW91IGZvciB5b3VyIGdv b2Qgb3BpbmlvbnMuDQo+Pg0KPj4gSSBsaXRlcmFsbHkgYWdyZWUgd2l0aCB5b3UgdGhhdCB0aGUg cmVmY291bnQgY291bGQgc29sdmUgdGhlDQo+PiBnZXRfY2xlYW5fdXBfdXAgY29jdXJyZW50IGpv YiBncmFjZWZ1bGx5LCBhbmQgbm8gbmVlZCB0byByZS1pbnNlcnQNCj4+IHRoZQ0KPj4NCj4+IGpv YiBiYWNrIGFueW1vcmUuDQo+Pg0KPj4gSSBxdWlja2x5IG1hZGUgYSBkcmFmdCBmb3IgdGhpcyBp ZGVhIGFzIGZvbGxvd3M6DQo+Pg0KPj4gSG93IGRvIHlvdSBsaWtlIGl0PyBJIHdpbGwgc3RhcnQg aW1wbGVtZW50IHRvIGl0IGFmdGVyIEkgZ290IHlvdXINCj4+IGFja25vd2xlZGdlLg0KPj4NCj4+ IFRoYW5rcywNCj4+DQo+PiBKYWNrDQo+Pg0KPj4gK3ZvaWQgZHJtX2pvYl9nZXQoc3RydWN0IGRy bV9zY2hlZF9qb2IgKnNfam9iKQ0KPj4NCj4+ICt7DQo+Pg0KPj4gKyAgICAgICBrcmVmX2dldCgm c19qb2ItPnJlZmNvdW50KTsNCj4+DQo+PiArfQ0KPj4NCj4+ICsNCj4+DQo+PiArdm9pZCBkcm1f am9iX2RvX3JlbGVhc2Uoc3RydWN0IGtyZWYgKnJlZikNCj4+DQo+PiArew0KPj4NCj4+ICsgICAg ICAgc3RydWN0IGRybV9zY2hlZF9qb2IgKnNfam9iOw0KPj4NCj4+ICsgICAgICAgc3RydWN0IGRy bV9ncHVfc2NoZWR1bGVyICpzY2hlZDsNCj4+DQo+PiArDQo+Pg0KPj4gKyAgICAgICBzX2pvYiA9 IGNvbnRhaW5lcl9vZihyZWYsIHN0cnVjdCBkcm1fc2NoZWRfam9iLCByZWZjb3VudCk7DQo+Pg0K Pj4gKyAgICAgICBzY2hlZCA9IHNfam9iLT5zY2hlZDsNCj4+DQo+PiArICAgICAgIHNjaGVkLT5v cHMtPmZyZWVfam9iKHNfam9iKTsNCj4+DQo+PiArfQ0KPj4NCj4+ICsNCj4+DQo+PiArdm9pZCBk cm1fam9iX3B1dChzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc19qb2IpDQo+Pg0KPj4gK3sNCj4+DQo+ PiArICAgICAgIGtyZWZfcHV0KCZzX2pvYi0+cmVmY291bnQsIGRybV9qb2JfZG9fcmVsZWFzZSk7 DQo+Pg0KPj4gK30NCj4+DQo+PiArDQo+Pg0KPj4gc3RhdGljIHZvaWQgZHJtX3NjaGVkX2pvYl9i ZWdpbihzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc19qb2IpDQo+Pg0KPj4gew0KPj4NCj4+ICAgICAg ICAgICBzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkID0gc19qb2ItPnNjaGVkOw0KPj4N Cj4+ICsgICAgICAga3JlZl9pbml0KCZzX2pvYi0+cmVmY291bnQpOw0KPj4NCj4+ICsgICAgICAg ZHJtX2pvYl9nZXQoc19qb2IpOw0KPj4NCj4+ICAgICAgICAgICBzcGluX2xvY2soJnNjaGVkLT5q b2JfbGlzdF9sb2NrKTsNCj4+DQo+PiAgICAgICAgICAgbGlzdF9hZGRfdGFpbCgmc19qb2ItPm5v ZGUsICZzY2hlZC0+cmluZ19taXJyb3JfbGlzdCk7DQo+Pg0KPj4gICAgICAgICAgIGRybV9zY2hl ZF9zdGFydF90aW1lb3V0KHNjaGVkKTsNCj4+DQo+PiBAQCAtMjk0LDE3ICszMTYsMTYgQEAgc3Rh dGljIHZvaWQgZHJtX3NjaGVkX2pvYl90aW1lZG91dChzdHJ1Y3QNCj4+IHdvcmtfc3RydWN0ICp3 b3JrKQ0KPj4NCj4+ICAgICAgICAgICAgICAgICAgICAqIGRybV9zY2hlZF9jbGVhbnVwX2pvYnMu IEl0IHdpbGwgYmUgcmVpbnNlcnRlZA0KPj4gYmFjayBhZnRlciBzY2hlZC0+dGhyZWFkDQo+Pg0K Pj4gICAgICAgICAgICAgICAgICAgICogaXMgcGFya2VkIGF0IHdoaWNoIHBvaW50IGl0J3Mgc2Fm ZS4NCj4+DQo+PiAgICAgICAgICAgICAgICAgICAgKi8NCj4+DQo+PiAtICAgICAgICAgICAgICAg bGlzdF9kZWxfaW5pdCgmam9iLT5ub2RlKTsNCj4+DQo+PiArICAgICAgICAgICAgICAgZHJtX2pv Yl9nZXQoam9iKTsNCj4+DQo+PiAgICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmc2NoZWQt PmpvYl9saXN0X2xvY2spOw0KPj4NCj4+ICAgICAgICAgICAgICAgICAgIGpvYi0+c2NoZWQtPm9w cy0+dGltZWRvdXRfam9iKGpvYik7DQo+Pg0KPj4gLQ0KPj4NCj4+ICsgICAgICAgICAgICAgICBk cm1fam9iX3B1dChqb2IpOw0KPj4NCj4+ICAgICAgICAgICAgICAgICAgIC8qDQo+Pg0KPj4gICAg ICAgICAgICAgICAgICAgICogR3VpbHR5IGpvYiBkaWQgY29tcGxldGUgYW5kIGhlbmNlIG5lZWRz IHRvIGJlDQo+PiBtYW51YWxseSByZW1vdmVkDQo+Pg0KPj4gICAgICAgICAgICAgICAgICAgICog U2VlIGRybV9zY2hlZF9zdG9wIGRvYy4NCj4+DQo+PiAgICAgICAgICAgICAgICAgICAgKi8NCj4+ DQo+PiAgICAgICAgICAgICAgICAgICBpZiAoc2NoZWQtPmZyZWVfZ3VpbHR5KSB7DQo+Pg0KPj4g LSAgICAgICAgICAgICAgICAgICAgICAgam9iLT5zY2hlZC0+b3BzLT5mcmVlX2pvYihqb2IpOw0K Pj4NCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZWQtPmZyZWVfZ3VpbHR5ID0gZmFs c2U7DQo+Pg0KPj4gICAgICAgICAgICAgICAgICAgfQ0KPj4NCj4+ICAgICAgICAgICB9IGVsc2Ug ew0KPj4NCj4+IEBAIC0zNTUsMjAgKzM3Niw2IEBAIHZvaWQgZHJtX3NjaGVkX3N0b3Aoc3RydWN0 IGRybV9ncHVfc2NoZWR1bGVyDQo+PiAqc2NoZWQsIHN0cnVjdCBkcm1fc2NoZWRfam9iICpiYWQp DQo+Pg0KPj4gLSAgICAgICAvKg0KPj4NCj4+IC0gICAgICAgICogUmVpbnNlcnQgYmFjayB0aGUg YmFkIGpvYiBoZXJlIC0gbm93IGl0J3Mgc2FmZSBhcw0KPj4NCj4+IC0gICAgICAgICogZHJtX3Nj aGVkX2dldF9jbGVhbnVwX2pvYiBjYW5ub3QgcmFjZSBhZ2FpbnN0IHVzIGFuZA0KPj4gcmVsZWFz ZSB0aGUNCj4+DQo+PiAtICAgICAgICAqIGJhZCBqb2IgYXQgdGhpcyBwb2ludCAtIHdlIHBhcmtl ZCAod2FpdGVkIGZvcikgYW55IGluDQo+PiBwcm9ncmVzcw0KPj4NCj4+IC0gICAgICAgICogKGVh cmxpZXIpIGNsZWFudXBzIGFuZCBkcm1fc2NoZWRfZ2V0X2NsZWFudXBfam9iIHdpbGwgbm90DQo+ PiBiZSBjYWxsZWQNCj4+DQo+PiAtICAgICAgICAqIG5vdyB1bnRpbCB0aGUgc2NoZWR1bGVyIHRo cmVhZCBpcyB1bnBhcmtlZC4NCj4+DQo+PiAtICAgICAgICAqLw0KPj4NCj4+IC0gICAgICAgaWYg KGJhZCAmJiBiYWQtPnNjaGVkID09IHNjaGVkKQ0KPj4NCj4+IC0gICAgICAgICAgICAgICAvKg0K Pj4NCj4+IC0gICAgICAgICAgICAgICAgKiBBZGQgYXQgdGhlIGhlYWQgb2YgdGhlIHF1ZXVlIHRv IHJlZmxlY3QgaXQgd2FzIHRoZQ0KPj4gZWFybGllc3QNCj4+DQo+PiAtICAgICAgICAgICAgICAg ICogam9iIGV4dHJhY3RlZC4NCj4+DQo+PiAtICAgICAgICAgICAgICAgICovDQo+Pg0KPj4gLSAg ICAgICAgICAgICAgIGxpc3RfYWRkKCZiYWQtPm5vZGUsICZzY2hlZC0+cmluZ19taXJyb3JfbGlz dCk7DQo+Pg0KPj4gLQ0KPj4NCj4+ICAgICAgICAgICAvKg0KPj4NCj4+ICAgICAgICAgICAgKiBJ dGVyYXRlIHRoZSBqb2IgbGlzdCBmcm9tIGxhdGVyIHRvICBlYXJsaWVyIG9uZSBhbmQNCj4+IGVp dGhlciBkZWFjdGl2ZQ0KPj4NCj4+ICAgICAgICAgICAgKiB0aGVpciBIVyBjYWxsYmFja3Mgb3Ig cmVtb3ZlIHRoZW0gZnJvbSBtaXJyb3IgbGlzdCBpZg0KPj4gdGhleSBhbHJlYWR5DQo+Pg0KPj4g QEAgLTc3NCw3ICs3ODEsNyBAQCBzdGF0aWMgaW50IGRybV9zY2hlZF9tYWluKHZvaWQgKnBhcmFt KQ0KPj4NCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrdGhy ZWFkX3Nob3VsZF9zdG9wKCkpOw0KPj4NCj4+ICAgICAgICAgICAgICAgICAgIGlmIChjbGVhbnVw X2pvYikgew0KPj4NCj4+IC0gICAgICAgICAgICAgICAgICAgICAgIHNjaGVkLT5vcHMtPmZyZWVf am9iKGNsZWFudXBfam9iKTsNCj4+DQo+PiArICAgICAgICAgICAgICAgICAgICAgICBkcm1fam9i X3B1dChjbGVhbnVwX2pvYik7DQo+Pg0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBx dWV1ZSB0aW1lb3V0IGZvciBuZXh0IGpvYiAqLw0KPj4NCj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgZHJtX3NjaGVkX3N0YXJ0X3RpbWVvdXQoc2NoZWQpOw0KPj4NCj4+ICAgICAgICAgICAg ICAgICAgIH0NCj4+DQo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5o DQo+PiBiL2luY2x1ZGUvZHJtL2dwdV9zY2hlZHVsZXIuaA0KPj4NCj4+IGluZGV4IDVhMWYwNjhh ZjFjMi4uYjgwNTEzZWVjOTBmIDEwMDY0NA0KPj4NCj4+IC0tLSBhL2luY2x1ZGUvZHJtL2dwdV9z Y2hlZHVsZXIuaA0KPj4NCj4+ICsrKyBiL2luY2x1ZGUvZHJtL2dwdV9zY2hlZHVsZXIuaA0KPj4N Cj4+IEBAIC0xODgsNiArMTg4LDcgQEAgc3RydWN0IGRybV9zY2hlZF9mZW5jZSAqdG9fZHJtX3Nj aGVkX2ZlbmNlKHN0cnVjdA0KPj4gZG1hX2ZlbmNlICpmKTsNCj4+DQo+PiAgICAgKiB0byBzY2hl ZHVsZSB0aGUgam9iLg0KPj4NCj4+ICAgICAqLw0KPj4NCj4+IHN0cnVjdCBkcm1fc2NoZWRfam9i IHsNCj4+DQo+PiArICAgICAgIHN0cnVjdCBrcmVmICAgICAgICAgICAgICAgICAgICAgcmVmY291 bnQ7DQo+Pg0KPj4gICAgICAgICAgIHN0cnVjdCBzcHNjX25vZGUgICAgICAgICAgICAgICAgcXVl dWVfbm9kZTsNCj4+DQo+PiAgICAgICAgICAgc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICAgICAg ICAqc2NoZWQ7DQo+Pg0KPj4gICAgICAgICAgIHN0cnVjdCBkcm1fc2NoZWRfZmVuY2UgICAgICAg ICAgKnNfZmVuY2U7DQo+Pg0KPj4gQEAgLTE5OCw2ICsxOTksNyBAQCBzdHJ1Y3QgZHJtX3NjaGVk X2pvYiB7DQo+Pg0KPj4gICAgICAgICAgIGVudW0gZHJtX3NjaGVkX3ByaW9yaXR5ICAgICAgICAg c19wcmlvcml0eTsNCj4+DQo+PiAgICAgICAgICAgc3RydWN0IGRybV9zY2hlZF9lbnRpdHkgICpl bnRpdHk7DQo+Pg0KPj4gICAgICAgICAgIHN0cnVjdCBkbWFfZmVuY2VfY2IgICAgICAgICAgICAg Y2I7DQo+Pg0KPj4gKw0KPj4NCj4+IH07DQo+Pg0KPj4gKkZyb206KiBHcm9kem92c2t5LCBBbmRy ZXkgPEFuZHJleS5Hcm9kem92c2t5QGFtZC5jb20+DQo+PiAqU2VudDoqIEZyaWRheSwgTWFyY2gg MTksIDIwMjEgMTI6MTcgQU0NCj4+ICpUbzoqIFpoYW5nLCBKYWNrIChKaWFuKSA8SmFjay5aaGFu ZzFAYW1kLmNvbT47IENocmlzdGlhbiBLw7ZuaWcNCj4+IDxja29lbmlnLmxlaWNodHp1bWVya2Vu QGdtYWlsLmNvbT47IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7DQo+PiBhbWQtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgS29lbmlnLCBDaHJpc3RpYW4NCj4+IDxDaHJpc3RpYW4u S29lbmlnQGFtZC5jb20+OyBMaXUsIE1vbmsgPE1vbmsuTGl1QGFtZC5jb20+OyBEZW5nLCBFbWls eQ0KPj4gPEVtaWx5LkRlbmdAYW1kLmNvbT47IFJvYiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5vcmc+ OyBUb21ldSBWaXpvc28NCj4+IDx0b21ldS52aXpvc29AY29sbGFib3JhLmNvbT47IFN0ZXZlbiBQ cmljZSA8c3RldmVuLnByaWNlQGFybS5jb20+DQo+PiAqU3ViamVjdDoqIFJlOiBbUEFUQ0ggdjNd IGRybS9zY2hlZHVsZXIgcmUtaW5zZXJ0IEJhaWxpbmcgam9iIHRvDQo+PiBhdm9pZCBtZW1sZWFr DQo+Pg0KPj4gT24gMjAyMS0wMy0xOCA2OjQxIGEubS4sIFpoYW5nLCBKYWNrIChKaWFuKSB3cm90 ZToNCj4+DQo+PiAgICAgIFtBTUQgT2ZmaWNpYWwgVXNlIE9ubHkgLSBJbnRlcm5hbCBEaXN0cmli dXRpb24gT25seV0NCj4+DQo+PiAgICAgIEhpLCBBbmRyZXkNCj4+DQo+PiAgICAgIExldCBtZSBz dW1tYXJpemUgdGhlIGJhY2tncm91bmQgb2YgdGhpcyBwYXRjaDoNCj4+DQo+PiAgICAgIEluIFRE UiByZXN1Ym1pdCBzdGVwIOKAnGFtZGdwdV9kZXZpY2VfcmVjaGVja19ndWlsdHlfam9icywNCj4+ DQo+PiAgICAgIEl0IHdpbGwgc3VibWl0IGZpcnN0IGpvYnMgb2YgZWFjaCByaW5nIGFuZCBkbyBn dWlsdHkgam9iIHJlLWNoZWNrLg0KPj4NCj4+ICAgICAgQXQgdGhhdCBwb2ludCwgV2UgaGFkIHRv IG1ha2Ugc3VyZSBlYWNoIGpvYiBpcyBpbiB0aGUgbWlycm9yIGxpc3Qob3INCj4+ICAgICAgcmUt aW5zZXJ0ZWQgYmFjayBhbHJlYWR5KS4NCj4+DQo+PiAgICAgIEJ1dCB3ZSBmb3VuZCB0aGUgY3Vy cmVudCBjb2RlIG5ldmVyIHJlLWluc2VydCB0aGUgam9iIHRvIG1pcnJvciBsaXN0DQo+PiAgICAg IGluIHRoZSAyXm5kICwgM15yZCBqb2JfdGltZW91dCB0aHJlYWQoQmFpbGluZyBURFIgdGhyZWFk KS4NCj4+DQo+PiAgICAgIFRoaXMgbm90IG9ubHkgd2lsbCBjYXVzZSBtZW1sZWFrIG9mIHRoZSBi YWlsaW5nIGpvYnMuIFdoYXTigJlzIG1vcmUNCj4+ICAgICAgaW1wb3J0YW50LCB0aGUgMV5zdCB0 ZHIgdGhyZWFkIGNhbiBuZXZlciBpdGVyYXRlIHRoZSBiYWlsaW5nIGpvYiBhbmQNCj4+ICAgICAg c2V0IGl0cyBndWlsdHkgc3RhdHVzIHRvIGEgY29ycmVjdCBzdGF0dXMuDQo+Pg0KPj4gICAgICBU aGVyZWZvcmUsIHdlIGhhZCB0byByZS1pbnNlcnQgdGhlIGpvYihvciBldmVuIG5vdCBkZWxldGUg bm9kZSkgZm9yDQo+PiAgICAgIGJhaWxpbmcgam9iLg0KPj4NCj4+ICAgICAgRm9yIHRoZSBhYm92 ZSBWMyBwYXRjaCwgdGhlIHJhY2luZyBjb25kaXRpb24gaW4gbXkgbWluZCBpczoNCj4+DQo+PiAg ICAgIHdlIGNhbm5vdCBtYWtlIHN1cmUgYWxsIGJhaWxpbmcgam9icyBhcmUgZmluaXNoZWQgYmVm b3JlIHdlIGRvDQo+PiAgICAgIGFtZGdwdV9kZXZpY2VfcmVjaGVja19ndWlsdHlfam9icy4NCj4+ DQo+PiBZZXMsdGhhdCByYWNlIGkgbWlzc2VkIC0gc28geW91IHNheSB0aGF0IGZvciAybmQsIGJh bGluZyB0aHJlYWQgd2hvDQo+PiBleHRyYWN0ZWQgdGhlIGpvYiwgZXZlbiBpZiBoZSByZWluc2Vy dCBpdCByaWdodCBhd2F5IGJhY2sgYWZ0ZXINCj4+IGRyaXZlciBjYWxsYmFjayByZXR1cm4gRFJN X0dQVV9TQ0hFRF9TVEFUX0JBSUxJTkcsIHRoZXJlIGlzIHNtYWxsDQo+PiB0aW1lIHNsb3Qgd2hl cmUgdGhlIGpvYiBpcyBub3QgaW4gbWlycm9yIGxpc3QgYW5kIHNvIHRoZSAxc3QgVERSDQo+PiBt aWdodCBtaXNzIGl0IGFuZCBub3QgZmluZCB0aGF0ICAybmQgam9iIGlzIHRoZSBhY3R1YWwgZ3Vp bHR5IGpvYiwNCj4+IHJpZ2h0ID8gQnV0LCBzdGlsbCB0aGlzIGpvYiB3aWxsIGdldCBiYWNrIGlu dG8gbWlycm9yIGxpc3QsIGFuZCBzaW5jZQ0KPj4gaXQncyByZWFsbHkgdGhlIGJhZCBqb2IsIGl0 IHdpbGwgbmV2ZXIgc2lnbmFsIGNvbXBsZXRpb24gYW5kIHNvIG9uDQo+PiB0aGUgbmV4dCB0aW1l b3V0IGN5Y2xlIGl0IHdpbGwgYmUgY2F1Z2h0IChvZiBjb3Vyc2UgdGhlcmUgaXMgYQ0KPj4gc3Rh cnZhdGlvbiBzY2VuYXJpbyBoZXJlIGlmIG1vcmUgVERScyBraWNrIGluIGFuZCBpdCBiYWlscyBv dXQgYWdhaW4gYnV0IHRoaXMgaXMgcmVhbGx5IHVubGlrZWx5KS4NCj4+DQo+PiAgICAgIEJhc2Vk IG9uIHRoaXMgaW5zaWdodCwgSSB0aGluayB3ZSBoYXZlIHR3byBvcHRpb25zIHRvIHNvbHZlIHRo aXMgaXNzdWU6DQo+Pg0KPj4gICAgICAgMS4gU2tpcCBkZWxldGUgbm9kZSBpbiB0ZHIgdGhyZWFk MiwgdGhyZWFkMywgNCDigKYgKHVzaW5nIG11dGV4IG9yDQo+PiAgICAgICAgICBhdG9taWMgdmFy aWFibGUpDQo+PiAgICAgICAyLiBSZS1pbnNlcnQgYmFjayBiYWlsaW5nIGpvYiwgYW5kIG1lYW53 aGlsZSB1c2Ugc2VtYXBob3JlIGluIGVhY2gNCj4+ICAgICAgICAgIHRkciB0aHJlYWQgdG8ga2Vl cCB0aGUgc2VxdWVuY2UgYXMgZXhwZWN0ZWQgYW5kIGVuc3VyZSBlYWNoIGpvYg0KPj4gICAgICAg ICAgaXMgaW4gdGhlIG1pcnJvciBsaXN0IHdoZW4gZG8gcmVzdWJtaXQgc3RlcC4NCj4+DQo+PiAg ICAgIEZvciBPcHRpb24xLCBsb2dpYyBpcyBzaW1wbGVyIGFuZCB3ZSBuZWVkIG9ubHkgb25lIGds b2JhbCBhdG9taWMNCj4+ICAgICAgdmFyaWFibGU6DQo+Pg0KPj4gICAgICBXaGF0IGRvIHlvdSB0 aGluayBhYm91dCB0aGlzIHBsYW4/DQo+Pg0KPj4gICAgICBPcHRpb24xIHNob3VsZCBsb29rIGxp a2UgdGhlIGZvbGxvd2luZyBsb2dpYzoNCj4+DQo+PiAgICAgICtzdGF0aWMgYXRvbWljX3QgaW5f cmVzZXQ7ICAgICAgICAgICAgIC8vYSBnbG9iYWwgYXRvbWljIHZhciBmb3INCj4+ICAgICAgc3lu Y2hyb25pemF0aW9uDQo+Pg0KPj4gICAgICBzdGF0aWMgdm9pZCBkcm1fc2NoZWRfcHJvY2Vzc19q b2Ioc3RydWN0IGRtYV9mZW5jZSAqZiwgc3RydWN0DQo+PiAgICAgIGRtYV9mZW5jZV9jYiAqY2Ip Ow0KPj4NCj4+ICAgICAgICAvKioNCj4+DQo+PiAgICAgIEBAIC0yOTUsNiArMjk2LDEyIEBAIHN0 YXRpYyB2b2lkIGRybV9zY2hlZF9qb2JfdGltZWRvdXQoc3RydWN0DQo+PiAgICAgIHdvcmtfc3Ry dWN0ICp3b3JrKQ0KPj4NCj4+ICAgICAgICAgICAgICAgICAgICAgICAgKiBkcm1fc2NoZWRfY2xl YW51cF9qb2JzLiBJdCB3aWxsIGJlIHJlaW5zZXJ0ZWQNCj4+ICAgICAgYmFjayBhZnRlciBzY2hl ZC0+dGhyZWFkDQo+Pg0KPj4gICAgICAgICAgICAgICAgICAgICAgICAqIGlzIHBhcmtlZCBhdCB3 aGljaCBwb2ludCBpdCdzIHNhZmUuDQo+Pg0KPj4gICAgICAgICAgICAgICAgICAgICAgICAqLw0K Pj4NCj4+ICAgICAgKyAgICAgICAgICAgICAgIGlmIChhdG9taWNfY21weGNoZygmaW5fcmVzZXQs IDAsIDEpICE9IDApIHsgIC8vc2tpcA0KPj4gICAgICBkZWxldGUgbm9kZSBpZiBpdOKAmXMgdGhl YWQxLDIsMyzigKYuDQo+Pg0KPj4gICAgICArICAgICAgICAgICAgICAgICAgICAgICBzcGluX3Vu bG9jaygmc2NoZWQtPmpvYl9saXN0X2xvY2spOw0KPj4NCj4+ICAgICAgKyAgICAgICAgICAgICAg ICAgICAgICAgZHJtX3NjaGVkX3N0YXJ0X3RpbWVvdXQoc2NoZWQpOw0KPj4NCj4+ICAgICAgKyAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPj4NCj4+ICAgICAgKyAgICAgICAgICAgICAg IH0NCj4+DQo+PiAgICAgICsNCj4+DQo+PiAgICAgICAgICAgICAgICAgICAgICAgbGlzdF9kZWxf aW5pdCgmam9iLT5ub2RlKTsNCj4+DQo+PiAgICAgICAgICAgICAgICAgICAgICAgc3Bpbl91bmxv Y2soJnNjaGVkLT5qb2JfbGlzdF9sb2NrKTsNCj4+DQo+PiAgICAgIEBAIC0zMjAsNiArMzI3LDcg QEAgc3RhdGljIHZvaWQgZHJtX3NjaGVkX2pvYl90aW1lZG91dChzdHJ1Y3QNCj4+ICAgICAgd29y a19zdHJ1Y3QgKndvcmspDQo+Pg0KPj4gICAgICAgICAgICAgICBzcGluX2xvY2soJnNjaGVkLT5q b2JfbGlzdF9sb2NrKTsNCj4+DQo+PiAgICAgICAgICAgICAgIGRybV9zY2hlZF9zdGFydF90aW1l b3V0KHNjaGVkKTsNCj4+DQo+PiAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZzY2hlZC0+am9i X2xpc3RfbG9jayk7DQo+Pg0KPj4gICAgICArICAgICAgIGF0b21pY19zZXQoJmluX3Jlc2V0LCAw KTsgLy9yZXNldCBpbl9yZXNldCB3aGVuIHRoZSBmaXJzdA0KPj4gICAgICB0aHJlYWQgZmluaXNo ZWQgdGRyDQo+Pg0KPj4gICAgICB9DQo+Pg0KPj4gVGVjaG5pY2FsbHkgbG9va3MgbGlrZSBpdCBz aG91bGQgd29yayBhcyB5b3UgZG9uJ3QgYWNjZXNzIHRoZSBqb2INCj4+IHBvaW50ZXIgYW55IGxv bmdlciBhbmQgc28gbm8gcmlzayB0aGF0IGlmIHNpZ25hbGVkIGl0IHdpbGwgYmUgZnJlZWQNCj4+ IGJ5IGRybV9zY2hlZF9nZXRfY2xlYW51cF9qb2IgYnV0LHlvdSBjYW4ndCBqdXN0IHVzZSBvbmUg Z2xvYmFsDQo+PiB2YXJpYWJsZSBhbiBieSB0aGlzIGJhaWxpbmcgZnJvbSBURFIgd2hlbiBkaWZm ZXJlbnQgZHJpdmVycyBydW4gdGhlaXINCj4+IFREUiB0aHJlYWRzIGluIHBhcmFsbGVsLCBhbmQg ZXZlbiBmb3IgYW1kZ3B1LCBpZiBkZXZpY2VzIGluIGRpZmZlcmVudA0KPj4gWEdNSSBoaXZlcyBv ciAyIGluZGVwZW5kZW50IGRldmljZXMgaW4gbm9uIFhHTUkgc2V0dXAuIFRoZXJlIHNob3VsZA0K Pj4gYmUgZGVmaW5lZCBzb21lIGtpbmQgb2YgR1BVIHJlc2V0IGdyb3VwIHN0cnVjdHVyZSBvbiBk cm1fc2NoZWR1bGVyDQo+PiBsZXZlbCBmb3Igd2hpY2ggdGhpcyB2YXJpYWJsZSB3b3VsZCBiZSB1 c2VkLg0KPj4NCj4+IFAuUyBJIHdvbmRlciB3aHkgd2UgY2FuJ3QganVzdCByZWYtY291bnQgdGhl IGpvYiBzbyB0aGF0IGV2ZW4gaWYNCj4+IGRybV9zY2hlZF9nZXRfY2xlYW51cF9qb2Igd291bGQg ZGVsZXRlIGl0IGJlZm9yZSB3ZSBoYWQgYSBjaGFuY2UgdG8NCj4+IHN0b3AgdGhlIHNjaGVkdWxl ciB0aHJlYWQsIHdlIHdvdWxkbid0IGNyYXNoLiBUaGlzIHdvdWxkIGF2b2lkIGFsbA0KPj4gdGhl IGRhbmNlIHdpdGggZGVsZXRpb24gYW5kIHJlaW5zZXJ0aW9uLg0KPj4NCj4+IEFuZHJleQ0KPj4N Cj4+ICAgICAgVGhhbmtzLA0KPj4NCj4+ICAgICAgSmFjaw0KPj4NCj4+ICAgICAgKkZyb206KiBh bWQtZ2Z4IDxhbWQtZ2Z4LWJvdW5jZXNAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPg0KPj4gICAgICA8 bWFpbHRvOmFtZC1nZngtYm91bmNlc0BsaXN0cy5mcmVlZGVza3RvcC5vcmc+ICpPbiBCZWhhbGYg T2YgKlpoYW5nLA0KPj4gICAgICBKYWNrIChKaWFuKQ0KPj4gICAgICAqU2VudDoqIFdlZG5lc2Rh eSwgTWFyY2ggMTcsIDIwMjEgMTE6MTEgUE0NCj4+ICAgICAgKlRvOiogQ2hyaXN0aWFuIEvDtm5p ZyA8Y2tvZW5pZy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb20+DQo+PiAgICAgIDxtYWlsdG86Y2tv ZW5pZy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb20+Ow0KPj4gICAgICBkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnDQo+PiAgICAgIDxtYWlsdG86ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZz47DQo+PiAgICAgIGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+PiAgICAg IDxtYWlsdG86YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc+OyBLb2VuaWcsIENocmlzdGlh bg0KPj4gICAgICA8Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tPiA8bWFpbHRvOkNocmlzdGlhbi5L b2VuaWdAYW1kLmNvbT47IExpdSwNCj4+ICAgICAgTW9uayA8TW9uay5MaXVAYW1kLmNvbT4gPG1h aWx0bzpNb25rLkxpdUBhbWQuY29tPjsgRGVuZywgRW1pbHkNCj4+ICAgICAgPEVtaWx5LkRlbmdA YW1kLmNvbT4gPG1haWx0bzpFbWlseS5EZW5nQGFtZC5jb20+OyBSb2IgSGVycmluZw0KPj4gICAg ICA8cm9iaEBrZXJuZWwub3JnPiA8bWFpbHRvOnJvYmhAa2VybmVsLm9yZz47IFRvbWV1IFZpem9z bw0KPj4gICAgICA8dG9tZXUudml6b3NvQGNvbGxhYm9yYS5jb20+IDxtYWlsdG86dG9tZXUudml6 b3NvQGNvbGxhYm9yYS5jb20+Ow0KPj4gICAgICBTdGV2ZW4gUHJpY2UgPHN0ZXZlbi5wcmljZUBh cm0uY29tPiA8bWFpbHRvOnN0ZXZlbi5wcmljZUBhcm0uY29tPjsNCj4+ICAgICAgR3JvZHpvdnNr eSwgQW5kcmV5IDxBbmRyZXkuR3JvZHpvdnNreUBhbWQuY29tPg0KPj4gICAgICA8bWFpbHRvOkFu ZHJleS5Hcm9kem92c2t5QGFtZC5jb20+DQo+PiAgICAgICpTdWJqZWN0OiogUmU6IFtQQVRDSCB2 M10gZHJtL3NjaGVkdWxlciByZS1pbnNlcnQgQmFpbGluZyBqb2IgdG8NCj4+ICAgICAgYXZvaWQg bWVtbGVhaw0KPj4NCj4+ICAgICAgW0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEludGVybmFsIERp c3RyaWJ1dGlvbiBPbmx5XQ0KPj4NCj4+ICAgICAgW0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIElu dGVybmFsIERpc3RyaWJ1dGlvbiBPbmx5XQ0KPj4NCj4+ICAgICAgSGnvvIxBbmRyZXnvvIwNCj4+ DQo+PiAgICAgIEdvb2QgY2F0Y2jvvIxJIHdpbGwgZXhwb3JlIHRoaXMgY29ybmVyIGNhc2UgYW5k IGdpdmUgZmVlZGJhY2sNCj4+IHNvb27vvZ4NCj4+DQo+PiAgICAgIEJlc3TvvIwNCj4+DQo+PiAg ICAgIEphY2sNCj4+DQo+Pg0KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+PiAtDQo+PiAtLQ0KPj4NCj4+ICAg ICAgKkZyb206Kkdyb2R6b3Zza3ksIEFuZHJleSA8QW5kcmV5Lkdyb2R6b3Zza3lAYW1kLmNvbQ0K Pj4gICAgICA8bWFpbHRvOkFuZHJleS5Hcm9kem92c2t5QGFtZC5jb20+Pg0KPj4gICAgICAqU2Vu dDoqIFdlZG5lc2RheSwgTWFyY2ggMTcsIDIwMjEgMTA6NTA6NTkgUE0NCj4+ICAgICAgKlRvOiog Q2hyaXN0aWFuIEvDtm5pZyA8Y2tvZW5pZy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb20NCj4+ICAg ICAgPG1haWx0bzpja29lbmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbT4+OyBaaGFuZywgSmFj ayAoSmlhbikNCj4+ICAgICAgPEphY2suWmhhbmcxQGFtZC5jb20gPG1haWx0bzpKYWNrLlpoYW5n MUBhbWQuY29tPj47DQo+PiAgICAgIGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4+ ICAgICAgPG1haWx0bzpkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPg0KPj4gICAgICA8 ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPj4gICAgICA8bWFpbHRvOmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmc+PjsNCj4+ICAgICAgYW1kLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcgPG1haWx0bzphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4NCj4+ICAgICAg PGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+PiAgICAgIDxtYWlsdG86YW1kLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmc+PjsgS29lbmlnLCBDaHJpc3RpYW4NCj4+ICAgICAgPENocmlz dGlhbi5Lb2VuaWdAYW1kLmNvbSA8bWFpbHRvOkNocmlzdGlhbi5Lb2VuaWdAYW1kLmNvbT4+OyBM aXUsDQo+PiAgICAgIE1vbmsgPE1vbmsuTGl1QGFtZC5jb20gPG1haWx0bzpNb25rLkxpdUBhbWQu Y29tPj47IERlbmcsIEVtaWx5DQo+PiAgICAgIDxFbWlseS5EZW5nQGFtZC5jb20gPG1haWx0bzpF bWlseS5EZW5nQGFtZC5jb20+PjsgUm9iIEhlcnJpbmcNCj4+ICAgICAgPHJvYmhAa2VybmVsLm9y ZyA8bWFpbHRvOnJvYmhAa2VybmVsLm9yZz4+OyBUb21ldSBWaXpvc28NCj4+ICAgICAgPHRvbWV1 LnZpem9zb0Bjb2xsYWJvcmEuY29tIDxtYWlsdG86dG9tZXUudml6b3NvQGNvbGxhYm9yYS5jb20+ PjsNCj4+ICAgICAgU3RldmVuIFByaWNlIDxzdGV2ZW4ucHJpY2VAYXJtLmNvbSA8bWFpbHRvOnN0 ZXZlbi5wcmljZUBhcm0uY29tPj4NCj4+ICAgICAgKlN1YmplY3Q6KiBSZTogW1BBVENIIHYzXSBk cm0vc2NoZWR1bGVyIHJlLWluc2VydCBCYWlsaW5nIGpvYiB0bw0KPj4gICAgICBhdm9pZCBtZW1s ZWFrDQo+Pg0KPj4gICAgICBJIGFjdHVhbGx5IGhhdmUgYSByYWNlIGNvbmRpdGlvbiBjb25jZXJu IGhlcmUgLSBzZWUgYmVsbG93IC0NCj4+DQo+PiAgICAgIE9uIDIwMjEtMDMtMTcgMzo0MyBhLm0u LCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOg0KPj4gICAgICAgPiBJIHdhcyBob3BpbmcgQW5kcmV5 IHdvdWxkIHRha2UgYSBsb29rIHNpbmNlIEknbSByZWFsbHkgYnVzeSB3aXRoDQo+PiAgICAgIG90 aGVyDQo+PiAgICAgICA+IHdvcmsgcmlnaHQgbm93Lg0KPj4gICAgICAgPg0KPj4gICAgICAgPiBS ZWdhcmRzLA0KPj4gICAgICAgPiBDaHJpc3RpYW4uDQo+PiAgICAgICA+DQo+PiAgICAgICA+IEFt IDE3LjAzLjIxIHVtIDA3OjQ2IHNjaHJpZWIgWmhhbmcsIEphY2sgKEppYW4pOg0KPj4gICAgICAg Pj4gSGksIEFuZHJleS9Dcmhpc3RpYW4gYW5kIFRlYW0sDQo+PiAgICAgICA+Pg0KPj4gICAgICAg Pj4gSSBkaWRuJ3QgcmVjZWl2ZSB0aGUgcmV2aWV3ZXIncyBtZXNzYWdlIGZyb20gbWFpbnRhaW5l cnMgb24NCj4+ICAgICAgcGFuZnJvc3QNCj4+ICAgICAgID4+IGRyaXZlciBmb3Igc2V2ZXJhbCBk YXlzLg0KPj4gICAgICAgPj4gRHVlIHRvIHRoaXMgcGF0Y2ggaXMgdXJnZW50IGZvciBteSBjdXJy ZW50IHdvcmtpbmcgcHJvamVjdC4NCj4+ICAgICAgID4+IFdvdWxkIHlvdSBwbGVhc2UgaGVscCB0 byBnaXZlIHNvbWUgcmV2aWV3IGlkZWFzPw0KPj4gICAgICAgPj4NCj4+ICAgICAgID4+IE1hbnkg VGhhbmtzLA0KPj4gICAgICAgPj4gSmFjaw0KPj4gICAgICAgPj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4+ICAgICAgID4+IEZyb206IFpoYW5nLCBKYWNrIChKaWFuKQ0KPj4gICAgICAg Pj4gU2VudDogVHVlc2RheSwgTWFyY2ggMTYsIDIwMjEgMzoyMCBQTQ0KPj4gICAgICAgPj4gVG86 IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4+ICAgICAgPG1haWx0bzpkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPjsNCj4+ICAgICAgYW1kLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcgPG1haWx0bzphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZz47DQo+PiAgICAg ICA+PiBLb2VuaWcsIENocmlzdGlhbiA8Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tDQo+PiAgICAg IDxtYWlsdG86Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tPj47IEdyb2R6b3Zza3ksIEFuZHJleQ0K Pj4gICAgICAgPj4gPEFuZHJleS5Hcm9kem92c2t5QGFtZC5jb20gPG1haWx0bzpBbmRyZXkuR3Jv ZHpvdnNreUBhbWQuY29tPj47DQo+PiAgICAgIExpdSwgTW9uayA8TW9uay5MaXVAYW1kLmNvbSA8 bWFpbHRvOk1vbmsuTGl1QGFtZC5jb20+PjsgRGVuZywNCj4+ICAgICAgID4+IEVtaWx5IDxFbWls eS5EZW5nQGFtZC5jb20gPG1haWx0bzpFbWlseS5EZW5nQGFtZC5jb20+PjsgUm9iDQo+PiAgICAg IEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZyA8bWFpbHRvOnJvYmhAa2VybmVsLm9yZz4+OyBUb21l dQ0KPj4gICAgICAgPj4gVml6b3NvIDx0b21ldS52aXpvc29AY29sbGFib3JhLmNvbQ0KPj4gICAg ICA8bWFpbHRvOnRvbWV1LnZpem9zb0Bjb2xsYWJvcmEuY29tPj47IFN0ZXZlbiBQcmljZQ0KPj4g ICAgICA8c3RldmVuLnByaWNlQGFybS5jb20gPG1haWx0bzpzdGV2ZW4ucHJpY2VAYXJtLmNvbT4+ DQo+PiAgICAgICA+PiBTdWJqZWN0OiBSRTogW1BBVENIIHYzXSBkcm0vc2NoZWR1bGVyIHJlLWlu c2VydCBCYWlsaW5nIGpvYiB0bw0KPj4gICAgICBhdm9pZA0KPj4gICAgICAgPj4gbWVtbGVhaw0K Pj4gICAgICAgPj4NCj4+ICAgICAgID4+IFtBTUQgUHVibGljIFVzZV0NCj4+ICAgICAgID4+DQo+ PiAgICAgICA+PiBQaW5nDQo+PiAgICAgICA+Pg0KPj4gICAgICAgPj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4+ICAgICAgID4+IEZyb206IFpoYW5nLCBKYWNrIChKaWFuKQ0KPj4gICAg ICAgPj4gU2VudDogTW9uZGF5LCBNYXJjaCAxNSwgMjAyMSAxOjI0IFBNDQo+PiAgICAgICA+PiBU bzogSmFjayBaaGFuZyA8SmFjay5aaGFuZzFAYW1kLmNvbSA8bWFpbHRvOkphY2suWmhhbmcxQGFt ZC5jb20+PjsNCj4+ICAgICAgID4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4+ ICAgICAgPG1haWx0bzpkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPjsNCj4+ICAgICAg YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcgPG1haWx0bzphbWQtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZz47DQo+PiAgICAgICA+PiBLb2VuaWcsIENocmlzdGlhbiA8Q2hyaXN0aWFuLktv ZW5pZ0BhbWQuY29tDQo+PiAgICAgIDxtYWlsdG86Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tPj47 IEdyb2R6b3Zza3ksIEFuZHJleQ0KPj4gICAgICAgPj4gPEFuZHJleS5Hcm9kem92c2t5QGFtZC5j b20gPG1haWx0bzpBbmRyZXkuR3JvZHpvdnNreUBhbWQuY29tPj47DQo+PiAgICAgIExpdSwgTW9u ayA8TW9uay5MaXVAYW1kLmNvbSA8bWFpbHRvOk1vbmsuTGl1QGFtZC5jb20+PjsgRGVuZywNCj4+ ICAgICAgID4+IEVtaWx5IDxFbWlseS5EZW5nQGFtZC5jb20gPG1haWx0bzpFbWlseS5EZW5nQGFt ZC5jb20+PjsgUm9iDQo+PiAgICAgIEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZyA8bWFpbHRvOnJv YmhAa2VybmVsLm9yZz4+OyBUb21ldQ0KPj4gICAgICAgPj4gVml6b3NvIDx0b21ldS52aXpvc29A Y29sbGFib3JhLmNvbQ0KPj4gICAgICA8bWFpbHRvOnRvbWV1LnZpem9zb0Bjb2xsYWJvcmEuY29t Pj47IFN0ZXZlbiBQcmljZQ0KPj4gICAgICA8c3RldmVuLnByaWNlQGFybS5jb20gPG1haWx0bzpz dGV2ZW4ucHJpY2VAYXJtLmNvbT4+DQo+PiAgICAgICA+PiBTdWJqZWN0OiBSRTogW1BBVENIIHYz XSBkcm0vc2NoZWR1bGVyIHJlLWluc2VydCBCYWlsaW5nIGpvYiB0bw0KPj4gICAgICBhdm9pZA0K Pj4gICAgICAgPj4gbWVtbGVhaw0KPj4gICAgICAgPj4NCj4+ICAgICAgID4+IFtBTUQgUHVibGlj IFVzZV0NCj4+ICAgICAgID4+DQo+PiAgICAgICA+PiBIaSwgUm9iL1RvbWV1L1N0ZXZlbiwNCj4+ ICAgICAgID4+DQo+PiAgICAgICA+PiBXb3VsZCB5b3UgcGxlYXNlIGhlbHAgdG8gcmV2aWV3IHRo aXMgcGF0Y2ggZm9yIHBhbmZyb3N0IGRyaXZlcj8NCj4+ICAgICAgID4+DQo+PiAgICAgICA+PiBU aGFua3MsDQo+PiAgICAgICA+PiBKYWNrIFpoYW5nDQo+PiAgICAgICA+Pg0KPj4gICAgICAgPj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+ICAgICAgID4+IEZyb206IEphY2sgWmhhbmcg PEphY2suWmhhbmcxQGFtZC5jb20gPG1haWx0bzpKYWNrLlpoYW5nMUBhbWQuY29tPj4NCj4+ICAg ICAgID4+IFNlbnQ6IE1vbmRheSwgTWFyY2ggMTUsIDIwMjEgMToyMSBQTQ0KPj4gICAgICAgPj4g VG86IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4+ICAgICAgPG1haWx0bzpkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPjsNCj4+ICAgICAgYW1kLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcgPG1haWx0bzphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZz47DQo+PiAg ICAgICA+PiBLb2VuaWcsIENocmlzdGlhbiA8Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tDQo+PiAg ICAgIDxtYWlsdG86Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tPj47IEdyb2R6b3Zza3ksIEFuZHJl eQ0KPj4gICAgICAgPj4gPEFuZHJleS5Hcm9kem92c2t5QGFtZC5jb20gPG1haWx0bzpBbmRyZXku R3JvZHpvdnNreUBhbWQuY29tPj47DQo+PiAgICAgIExpdSwgTW9uayA8TW9uay5MaXVAYW1kLmNv bSA8bWFpbHRvOk1vbmsuTGl1QGFtZC5jb20+PjsgRGVuZywNCj4+ICAgICAgID4+IEVtaWx5IDxF bWlseS5EZW5nQGFtZC5jb20gPG1haWx0bzpFbWlseS5EZW5nQGFtZC5jb20+Pg0KPj4gICAgICAg Pj4gQ2M6IFpoYW5nLCBKYWNrIChKaWFuKSA8SmFjay5aaGFuZzFAYW1kLmNvbQ0KPj4gICAgICA8 bWFpbHRvOkphY2suWmhhbmcxQGFtZC5jb20+Pg0KPj4gICAgICAgPj4gU3ViamVjdDogW1BBVENI IHYzXSBkcm0vc2NoZWR1bGVyIHJlLWluc2VydCBCYWlsaW5nIGpvYiB0byBhdm9pZA0KPj4gICAg ICBtZW1sZWFrDQo+PiAgICAgICA+Pg0KPj4gICAgICAgPj4gcmUtaW5zZXJ0IEJhaWxpbmcgam9i cyB0byBhdm9pZCBtZW1vcnkgbGVhay4NCj4+ICAgICAgID4+DQo+PiAgICAgICA+PiBWMjogbW92 ZSByZS1pbnNlcnQgc3RlcCB0byBkcm0vc2NoZWR1bGVyIGxvZ2ljDQo+PiAgICAgICA+PiBWMzog YWRkIHBhbmZyb3N0J3MgcmV0dXJuIHZhbHVlIGZvciBiYWlsaW5nIGpvYnMgaW4gY2FzZSBpdCBo aXRzDQo+PiAgICAgIHRoZQ0KPj4gICAgICAgPj4gbWVtbGVhayBpc3N1ZS4NCj4+ICAgICAgID4+ DQo+PiAgICAgICA+PiBTaWduZWQtb2ZmLWJ5OiBKYWNrIFpoYW5nIDxKYWNrLlpoYW5nMUBhbWQu Y29tDQo+PiAgICAgIDxtYWlsdG86SmFjay5aaGFuZzFAYW1kLmNvbT4+DQo+PiAgICAgICA+PiAt LS0NCj4+ICAgICAgID4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rldmlj ZS5jIHwgNCArKystDQo+PiAgICAgICA+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9qb2IuYyAgICB8IDggKysrKysrLS0NCj4+ICAgICAgID4+ICAgZHJpdmVycy9ncHUvZHJt L3BhbmZyb3N0L3BhbmZyb3N0X2pvYi5jICAgIHwgNCArKy0tDQo+PiAgICAgICA+PiAgIGRyaXZl cnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5jICAgICB8IDggKysrKysrKy0NCj4+ICAg ICAgID4+ICAgaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oICAgICAgICAgICAgICAgIHwgMSAr DQo+PiAgICAgICA+PiAgIDUgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgNiBkZWxl dGlvbnMoLSkNCj4+ICAgICAgID4+DQo+PiAgICAgICA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jDQo+PiAgICAgICA+PiBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYw0KPj4gICAgICAgPj4gaW5kZXggNzli OWNjNzM3NjNmLi44NjQ2M2IwZjkzNmUgMTAwNjQ0DQo+PiAgICAgICA+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMNCj4+ICAgICAgID4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYw0KPj4gICAgICAgPj4gQEAg LTQ4MTUsOCArNDgxNSwxMCBAQCBpbnQgYW1kZ3B1X2RldmljZV9ncHVfcmVjb3ZlcihzdHJ1Y3QN Cj4+ICAgICAgID4+IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+PiAgICAgICA+PiAgICAgICAgICAg ICAgICAgICAgICAgam9iID8gam9iLT5iYXNlLmlkIDogLTEpOw0KPj4gICAgICAgPj4gICAgICAg ICAgICAgLyogZXZlbiB3ZSBza2lwcGVkIHRoaXMgcmVzZXQsIHN0aWxsIG5lZWQgdG8gc2V0IHRo ZQ0KPj4gICAgICBqb2INCj4+ICAgICAgID4+IHRvIGd1aWx0eSAqLw0KPj4gICAgICAgPj4gLSAg ICAgICAgaWYgKGpvYikNCj4+ICAgICAgID4+ICsgICAgICAgIGlmIChqb2IpIHsNCj4+ICAgICAg ID4+ICAgICAgICAgICAgICAgZHJtX3NjaGVkX2luY3JlYXNlX2thcm1hKCZqb2ItPmJhc2UpOw0K Pj4gICAgICAgPj4gKyAgICAgICAgICAgIHIgPSBEUk1fR1BVX1NDSEVEX1NUQVRfQkFJTElORzsN Cj4+ICAgICAgID4+ICsgICAgICAgIH0NCj4+ICAgICAgID4+ICAgICAgICAgICBnb3RvIHNraXBf cmVjb3Zlcnk7DQo+PiAgICAgICA+PiAgICAgICB9DQo+PiAgICAgICA+PiAgIGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfam9iLmMNCj4+ICAgICAgID4+IGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2pvYi5jDQo+PiAgICAgICA+PiBpbmRl eCA3NTliMzQ3OTkyMjEuLjQxMzkwYmRhY2Q5ZSAxMDA2NDQNCj4+ICAgICAgID4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9qb2IuYw0KPj4gICAgICAgPj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2pvYi5jDQo+PiAgICAgICA+PiBAQCAt MzQsNiArMzQsNyBAQCBzdGF0aWMgZW51bSBkcm1fZ3B1X3NjaGVkX3N0YXQNCj4+ICAgICAgID4+ IGFtZGdwdV9qb2JfdGltZWRvdXQoc3RydWN0IGRybV9zY2hlZF9qb2IgKnNfam9iKQ0KPj4gICAg ICAgPj4gICAgICAgc3RydWN0IGFtZGdwdV9qb2IgKmpvYiA9IHRvX2FtZGdwdV9qb2Ioc19qb2Ip Ow0KPj4gICAgICAgPj4gICAgICAgc3RydWN0IGFtZGdwdV90YXNrX2luZm8gdGk7DQo+PiAgICAg ICA+PiAgICAgICBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7DQo+PiAg ICAgICA+PiArICAgIGludCByZXQ7DQo+PiAgICAgICA+PiAgICAgICAgIG1lbXNldCgmdGksIDAs IHNpemVvZihzdHJ1Y3QgYW1kZ3B1X3Rhc2tfaW5mbykpOw0KPj4gICAgICAgPj4gICBAQCAtNTIs OCArNTMsMTEgQEAgc3RhdGljIGVudW0gZHJtX2dwdV9zY2hlZF9zdGF0DQo+PiAgICAgICA+PiBh bWRncHVfam9iX3RpbWVkb3V0KHN0cnVjdCBkcm1fc2NoZWRfam9iICpzX2pvYikNCj4+ICAgICAg ID4+ICAgICAgICAgICAgIHRpLnByb2Nlc3NfbmFtZSwgdGkudGdpZCwgdGkudGFza19uYW1lLCB0 aS5waWQpOw0KPj4gICAgICAgPj4gICAgICAgICBpZiAoYW1kZ3B1X2RldmljZV9zaG91bGRfcmVj b3Zlcl9ncHUocmluZy0+YWRldikpIHsNCj4+ICAgICAgID4+IC0gICAgICAgIGFtZGdwdV9kZXZp Y2VfZ3B1X3JlY292ZXIocmluZy0+YWRldiwgam9iKTsNCj4+ICAgICAgID4+IC0gICAgICAgIHJl dHVybiBEUk1fR1BVX1NDSEVEX1NUQVRfTk9NSU5BTDsNCj4+ICAgICAgID4+ICsgICAgICAgIHJl dCA9IGFtZGdwdV9kZXZpY2VfZ3B1X3JlY292ZXIocmluZy0+YWRldiwgam9iKTsNCj4+ICAgICAg ID4+ICsgICAgICAgIGlmIChyZXQgPT0gRFJNX0dQVV9TQ0hFRF9TVEFUX0JBSUxJTkcpDQo+PiAg ICAgICA+PiArICAgICAgICAgICAgcmV0dXJuIERSTV9HUFVfU0NIRURfU1RBVF9CQUlMSU5HOw0K Pj4gICAgICAgPj4gKyAgICAgICAgZWxzZQ0KPj4gICAgICAgPj4gKyAgICAgICAgICAgIHJldHVy biBEUk1fR1BVX1NDSEVEX1NUQVRfTk9NSU5BTDsNCj4+ICAgICAgID4+ICAgICAgIH0gZWxzZSB7 DQo+PiAgICAgICA+PiAgICAgICAgICAgZHJtX3NjaGVkX3N1c3BlbmRfdGltZW91dCgmcmluZy0+ c2NoZWQpOw0KPj4gICAgICAgPj4gICAgICAgICAgIGlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikp DQo+PiAgICAgICA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZy b3N0X2pvYi5jDQo+PiAgICAgICA+PiBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9z dF9qb2IuYw0KPj4gICAgICAgPj4gaW5kZXggNjAwM2NmZWIxMzIyLi5lMmNiNGYzMmRhZTEgMTAw NjQ0DQo+PiAgICAgICA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3Rf am9iLmMNCj4+ICAgICAgID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9z dF9qb2IuYw0KPj4gICAgICAgPj4gQEAgLTQ0NCw3ICs0NDQsNyBAQCBzdGF0aWMgZW51bSBkcm1f Z3B1X3NjaGVkX3N0YXQNCj4+ICAgICAgID4+IHBhbmZyb3N0X2pvYl90aW1lZG91dChzdHJ1Y3Qg ZHJtX3NjaGVkX2pvYg0KPj4gICAgICAgPj4gICAgICAgICogc3B1cmlvdXMuIEJhaWwgb3V0Lg0K Pj4gICAgICAgPj4gICAgICAgICovDQo+PiAgICAgICA+PiAgICAgICBpZiAoZG1hX2ZlbmNlX2lz X3NpZ25hbGVkKGpvYi0+ZG9uZV9mZW5jZSkpDQo+PiAgICAgICA+PiAtICAgICAgICByZXR1cm4g RFJNX0dQVV9TQ0hFRF9TVEFUX05PTUlOQUw7DQo+PiAgICAgICA+PiArICAgICAgICByZXR1cm4g RFJNX0dQVV9TQ0hFRF9TVEFUX0JBSUxJTkc7DQo+PiAgICAgICA+PiAgICAgICAgIGRldl9lcnIo cGZkZXYtPmRldiwgImdwdSBzY2hlZCB0aW1lb3V0LCBqcz0lZCwgY29uZmlnPTB4JXgsDQo+PiAg ICAgICA+PiBzdGF0dXM9MHgleCwgaGVhZD0weCV4LCB0YWlsPTB4JXgsIHNjaGVkX2pvYj0lcCIs DQo+PiAgICAgICA+PiAgICAgICAgICAganMsDQo+PiAgICAgICA+PiBAQCAtNDU2LDcgKzQ1Niw3 IEBAIHN0YXRpYyBlbnVtIGRybV9ncHVfc2NoZWRfc3RhdA0KPj4gICAgICAgPj4gcGFuZnJvc3Rf am9iX3RpbWVkb3V0KHN0cnVjdCBkcm1fc2NoZWRfam9iDQo+PiAgICAgICA+PiAgICAgICAgIC8q IFNjaGVkdWxlciBpcyBhbHJlYWR5IHN0b3BwZWQsIG5vdGhpbmcgdG8gZG8uICovDQo+PiAgICAg ICA+PiAgICAgICBpZiAoIXBhbmZyb3N0X3NjaGVkdWxlcl9zdG9wKCZwZmRldi0+anMtPnF1ZXVl W2pzXSwNCj4+ICAgICAgc2NoZWRfam9iKSkNCj4+ICAgICAgID4+IC0gICAgICAgIHJldHVybiBE Uk1fR1BVX1NDSEVEX1NUQVRfTk9NSU5BTDsNCj4+ICAgICAgID4+ICsgICAgICAgIHJldHVybiBE Uk1fR1BVX1NDSEVEX1NUQVRfQkFJTElORzsNCj4+ICAgICAgID4+ICAgICAgICAgLyogU2NoZWR1 bGUgYSByZXNldCBpZiB0aGVyZSdzIG5vIHJlc2V0IGluIHByb2dyZXNzLiAqLw0KPj4gICAgICAg Pj4gICAgICAgaWYgKCFhdG9taWNfeGNoZygmcGZkZXYtPnJlc2V0LnBlbmRpbmcsIDEpKSBkaWZm IC0tZ2l0DQo+PiAgICAgICA+PiBhL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFp bi5jDQo+PiAgICAgICA+PiBiL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5j DQo+PiAgICAgICA+PiBpbmRleCA5MmQ4ZGUyNGQwYTEuLmE0NGY2MjFmYjVjNCAxMDA2NDQNCj4+ ICAgICAgID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5jDQo+ PiAgICAgICA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX21haW4uYw0K Pj4gICAgICAgPj4gQEAgLTMxNCw2ICszMTQsNyBAQCBzdGF0aWMgdm9pZCBkcm1fc2NoZWRfam9i X3RpbWVkb3V0KHN0cnVjdA0KPj4gICAgICAgPj4gd29ya19zdHJ1Y3QgKndvcmspICB7DQo+PiAg ICAgICA+PiAgICAgICBzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkOw0KPj4gICAgICAg Pj4gICAgICAgc3RydWN0IGRybV9zY2hlZF9qb2IgKmpvYjsNCj4+ICAgICAgID4+ICsgICAgaW50 IHJldDsNCj4+ICAgICAgID4+ICAgICAgICAgc2NoZWQgPSBjb250YWluZXJfb2Yod29yaywgc3Ry dWN0IGRybV9ncHVfc2NoZWR1bGVyLA0KPj4gICAgICAgPj4gd29ya190ZHIud29yayk7DQo+PiAg ICAgICA+PiAgIEBAIC0zMzEsOCArMzMyLDEzIEBAIHN0YXRpYyB2b2lkIGRybV9zY2hlZF9qb2Jf dGltZWRvdXQoc3RydWN0DQo+PiAgICAgICA+PiB3b3JrX3N0cnVjdCAqd29yaykNCj4+ICAgICAg ID4+ICAgICAgICAgICBsaXN0X2RlbF9pbml0KCZqb2ItPmxpc3QpOw0KPj4gICAgICAgPj4gICAg ICAgICAgIHNwaW5fdW5sb2NrKCZzY2hlZC0+am9iX2xpc3RfbG9jayk7DQo+PiAgICAgICA+PiAg IC0gICAgICAgIGpvYi0+c2NoZWQtPm9wcy0+dGltZWRvdXRfam9iKGpvYik7DQo+PiAgICAgICA+ PiArICAgICAgICByZXQgPSBqb2ItPnNjaGVkLT5vcHMtPnRpbWVkb3V0X2pvYihqb2IpOw0KPj4g ICAgICAgPj4gICArICAgICAgICBpZiAocmV0ID09IERSTV9HUFVfU0NIRURfU1RBVF9CQUlMSU5H KSB7DQo+PiAgICAgICA+PiArICAgICAgICAgICAgc3Bpbl9sb2NrKCZzY2hlZC0+am9iX2xpc3Rf bG9jayk7DQo+PiAgICAgICA+PiArICAgICAgICAgICAgbGlzdF9hZGQoJmpvYi0+bm9kZSwgJnNj aGVkLT5yaW5nX21pcnJvcl9saXN0KTsNCj4+ICAgICAgID4+ICsgICAgICAgICAgICBzcGluX3Vu bG9jaygmc2NoZWQtPmpvYl9saXN0X2xvY2spOw0KPj4gICAgICAgPj4gKyAgICAgICAgfQ0KPj4N Cj4+DQo+PiAgICAgIEF0IHRoaXMgcG9pbnQgd2UgZG9uJ3QgaG9sZCBHUFUgcmVzZXQgbG9ja3Mg YW55bW9yZSwgYW5kIHNvIHdlIGNvdWxkDQo+PiAgICAgIGJlIHJhY2luZyBhZ2FpbnN0IGFub3Ro ZXIgVERSIHRocmVhZCBmcm9tIGFub3RoZXIgc2NoZWR1bGVyIHJpbmcgb2YNCj4+ICAgICAgc2Ft ZQ0KPj4gICAgICBkZXZpY2UNCj4+ICAgICAgb3IgYW5vdGhlciBYR01JIGhpdmUgbWVtYmVyLiBU aGUgb3RoZXIgdGhyZWFkIG1pZ2h0IGJlIGluIHRoZSBtaWRkbGUgb2YNCj4+ICAgICAgbHVja2xl c3MNCj4+ICAgICAgaXRlcmF0aW9uIG9mIG1pcnJvciBsaXN0IChkcm1fc2NoZWRfc3RvcCwgZHJt X3NjaGVkX3N0YXJ0IGFuZA0KPj4gICAgICBkcm1fc2NoZWRfcmVzdWJtaXQpDQo+PiAgICAgIGFu ZCBzbyBsb2NraW5nIGpvYl9saXN0X2xvY2sgd2lsbCBub3QgaGVscC4gTG9va3MgbGlrZSBpdCdz IHJlcXVpcmVkIHRvDQo+PiAgICAgIHRha2UgYWxsIEdQVSByZXN0IGxvY2tzDQo+PiAgICAgIGhl cmUuDQo+Pg0KPj4gICAgICBBbmRyZXkNCj4+DQo+Pg0KPj4gICAgICAgPj4gICAgICAgICAgIC8q DQo+PiAgICAgICA+PiAgICAgICAgICAgICogR3VpbHR5IGpvYiBkaWQgY29tcGxldGUgYW5kIGhl bmNlIG5lZWRzIHRvIGJlIG1hbnVhbGx5DQo+PiAgICAgICA+PiByZW1vdmVkDQo+PiAgICAgICA+ PiAgICAgICAgICAgICogU2VlIGRybV9zY2hlZF9zdG9wIGRvYy4NCj4+ICAgICAgID4+IGRpZmYg LS1naXQgYS9pbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmgNCj4+ICAgICAgID4+IGIvaW5jbHVk ZS9kcm0vZ3B1X3NjaGVkdWxlci5oIGluZGV4IDRlYTg2MDZkOTFmZS4uODA5M2FjMjQyN2VmDQo+ PiAgICAgIDEwMDY0NA0KPj4gICAgICAgPj4gLS0tIGEvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxl ci5oDQo+PiAgICAgICA+PiArKysgYi9pbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmgNCj4+ICAg ICAgID4+IEBAIC0yMTAsNiArMjEwLDcgQEAgZW51bSBkcm1fZ3B1X3NjaGVkX3N0YXQgew0KPj4g ICAgICAgPj4gICAgICAgRFJNX0dQVV9TQ0hFRF9TVEFUX05PTkUsIC8qIFJlc2VydmUgMCAqLw0K Pj4gICAgICAgPj4gICAgICAgRFJNX0dQVV9TQ0hFRF9TVEFUX05PTUlOQUwsDQo+PiAgICAgICA+ PiAgICAgICBEUk1fR1BVX1NDSEVEX1NUQVRfRU5PREVWLA0KPj4gICAgICAgPj4gKyAgICBEUk1f R1BVX1NDSEVEX1NUQVRfQkFJTElORywNCj4+ICAgICAgID4+ICAgfTsNCj4+ICAgICAgID4+ICAg ICAvKioNCj4+ICAgICAgID4+IC0tDQo+PiAgICAgICA+PiAyLjI1LjENCj4+ICAgICAgID4+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+PiAgICAgICA+ PiBhbWQtZ2Z4IG1haWxpbmcgbGlzdA0KPj4gICAgICAgPj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcgPG1haWx0bzphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4NCj4+ICAgICAg ID4+DQo+Pg0KPj4gaHR0cHM6Ly9uYW0xMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNv bS8/dXJsPWh0dHBzJTNBJTJGJTJGbGlzDQo+PiB0cy5mcmVlZGVza3RvcC5vcmclMkZtYWlsbWFu JTJGbGlzdGluZm8lMkZhbWQtZ2Z4JmFtcDtkYXRhPTA0JTdDMDElN0MNCj4+IEFuZHJleS5Hcm9k em92c2t5JTQwYW1kLmNvbSU3Q2U5MGYzMGFmMGY0MzQ0NGM2YWVhMDhkOGU5MTg2MGM0JTdDM2Rk OA0KPj4gOTYxZmU0ODg0ZTYwOGUxMWE4MmQ5OTRlMTgzZCU3QzAlN0MwJTdDNjM3NTE1NjM4MjEz MTgwNDEzJTdDVW5rbm93biU3DQo+PiBDVFdGcGJHWnNiM2Q4ZXlKV0lqb2lNQzR3TGpBd01EQWlM Q0pRSWpvaVYybHVNeklpTENKQlRpSTZJazFoYVd3aUxDSlgNCj4+IFZDSTZNbjAlM0QlN0MxMDAw JmFtcDtzZGF0YT1ObkxxdHolMkJaOCUyQndlWXdDcVJpbnJma3FtaHppYk5BRjZDWVNkVg0KPj4g cUw2eGkwJTNEJmFtcDtyZXNlcnZlZD0wDQo+Pg0KPj4gPGh0dHBzOi8vbmFtMTEuc2FmZWxpbmtz LnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmxpDQo+PiBzDQo+PiB0 cy5mcmVlZGVza3RvcC5vcmclMkZtYWlsbWFuJTJGbGlzdGluZm8lMkZhbWQtZ2Z4JmRhdGE9MDQl N0MwMSU3Q0phY2suDQo+PiBaaGFuZzElNDBhbWQuY29tJTdDOTViMmZmMjA2ZWU3NGJiZTUyMGEw OGQ4ZTk1NmY1ZGQlN0MzZGQ4OTYxZmU0ODg0ZTYNCj4+IDANCj4+IDhlMTFhODJkOTk0ZTE4M2Ql N0MwJTdDMCU3QzYzNzUxNTkwNzAwMDg4ODkzOSU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZA0KPj4g OA0KPj4gZXlKV0lqb2lNQzR3TGpBd01EQWlMQ0pRSWpvaVYybHVNeklpTENKQlRpSTZJazFoYVd3 aUxDSlhWQ0k2TW4wJTNEJTdDDQo+PiAyDQo+PiAwMDAmc2RhdGE9QkdvU2ZPWWlEYXI4U3JwTXgl MkJzT01XcGFNcjg3YnhCJTJGOXljdTBGaGhpcEElM0QmcmVzZXJ2ZWQNCj4+ID0NCj4+IDA+DQo+ Pg0KPj4gICAgICAgPj4NCj4+ICAgICAgID4NCj4+DQoNCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2ECA9C433E0 for ; Fri, 26 Mar 2021 11:21:19 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C7023619FC for ; Fri, 26 Mar 2021 11:21:18 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C7023619FC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 83DA56F3A9; Fri, 26 Mar 2021 11:21:15 +0000 (UTC) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2054.outbound.protection.outlook.com [40.107.244.54]) by gabe.freedesktop.org (Postfix) with ESMTPS id 175106E1D7; Fri, 26 Mar 2021 11:21:14 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YOqG3kFLqKl0gmoq69WUvnclrGwqHasx44Xm4Q/bFpCR4mqiOwdMW0TLwNR2JVE4Wou96xzrArGya8/PvIVJpmzNCZO02OQRp31+Zt+xM+t2CngzX6jg8KI+uMThPC+ocU0mUsp6HoS+X2zgoTjhe/n+eaGkFaWUtJ974N6Nw6kPk+J8HI81A+XnsOx+u2uh1W5SE1SHuP3B1PEh/GtgU+m+es7+FwTY1Qn5ayRLRLUnDfDxm2BwdlM5VqgSZpj7MCYTENUy958m4b41JZbNzNOWRvGcgSRjmqs09InQZlnIDOD8VwZj5CpK/6ugdGE09nrOCTpvveCygF4n7r3dpw== 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=DjdY8Suh06mUAFTa58ZUOjXCHlyDPvPZXn4jRtOce+U=; b=TZxmXEyyQ8Fj1Dx8svpT1Zv3IzNxGtvG8NDeO1znqMrhYzM6Iy0yEjYPt8OmH1BUBqZ8KnzMOipGMDNiqi46wzU0otiGRgNMq5UkbAy9RtYyrxvtL1AmWgD+LqnmOVYNeg2+lUQTFBeU2VVty1NYQ3oFS00vR0Vc1ejckdY/QOqv5Bhd91LJnMfKLGbseBQpWN4BBVnldXz7Xx8azia9I5VQTZuPKC1qv2kJhaOIW+RUSP0lxG2RHC0qwoftutWzexxhvizEAu5/UM2Jls1o+tJpUw+dmor46VP1IZSQHNb3fu6N82TyCz8YZDLTN0qGtxzqcgVlj5sBL5Rt/goEag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DjdY8Suh06mUAFTa58ZUOjXCHlyDPvPZXn4jRtOce+U=; b=fj2CY8C9fTY059pHVHUbt6L8KPHCuWDjIbR4foNHFd9CFeVuIxD6g4lkmlqEJFNa268tM9N0Xs+srr3vU4MjVMDqohPHxCZbeCSAUDZ0amB61qaCj/i2jXW6rNCnCoB+5pMi6ZtB7u38ao6IQPbkurnc3qWtJWG8sHUNrD3jWGE= Received: from DM5PR12MB1708.namprd12.prod.outlook.com (2603:10b6:3:10e::22) by DM6PR12MB4153.namprd12.prod.outlook.com (2603:10b6:5:212::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.25; Fri, 26 Mar 2021 11:21:11 +0000 Received: from DM5PR12MB1708.namprd12.prod.outlook.com ([fe80::7907:4699:3faa:e290]) by DM5PR12MB1708.namprd12.prod.outlook.com ([fe80::7907:4699:3faa:e290%10]) with mapi id 15.20.3977.030; Fri, 26 Mar 2021 11:21:11 +0000 From: "Liu, Monk" To: "Koenig, Christian" , "Zhang, Jack (Jian)" , "Grodzovsky, Andrey" , =?utf-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= , "dri-devel@lists.freedesktop.org" , "amd-gfx@lists.freedesktop.org" , "Deng, Emily" , Rob Herring , Tomeu Vizoso , Steven Price Subject: =?utf-8?B?5Zue5aSNOiBbUEFUQ0ggdjNdIGRybS9zY2hlZHVsZXIgcmUtaW5zZXJ0IEJh?= =?utf-8?Q?iling_job_to_avoid_memleak?= Thread-Topic: [PATCH v3] drm/scheduler re-insert Bailing job to avoid memleak Thread-Index: AQHXGVr0C/UjhLNIhES+2LVHuxFSxKqEg/uAgAGywQCAAYjvAIAAEBeAgAB3aoCAAAW2gIABRtUAgABdvoCACpSzAIAAcAKAgAClOwCAAHBCgIAAI2Rw Date: Fri, 26 Mar 2021 11:21:11 +0000 Message-ID: References: <20210315052036.1113638-1-Jack.Zhang1@amd.com> <9b48b715-52dd-e435-2873-2472427dffda@gmail.com> <64583ef0-d19c-1906-91f2-70fd649fa46e@amd.com> <3a81ffab-5ace-a50a-c34d-956f23709eba@amd.com> In-Reply-To: <3a81ffab-5ace-a50a-c34d-956f23709eba@amd.com> Accept-Language: en-US, zh-CN Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_ActionId=dc30d047-b17d-40d5-986b-f85c30c8ae72; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_ContentBits=0; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_Enabled=true; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_Method=Standard; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_Name=Internal Use Only - Unrestricted; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_SetDate=2021-03-26T11:12:15Z; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; authentication-results: amd.com; dkim=none (message not signed) header.d=none;amd.com; dmarc=none action=none header.from=amd.com; x-originating-ip: [222.70.220.189] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 3d1e59e0-b8d0-4db6-f1c5-08d8f04942ce x-ms-traffictypediagnostic: DM6PR12MB4153: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:549; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ovRX4Php3VinKWiuFcGk/KWfCwPrcourwks91vle2cGCV6X9s9wIBWkQtmgz9+wrp85Ti7mdk4wqBmFyPuGRFXOugZwNngu6qTBQPgG3pB4FoD+ej6fmelQAT0Ml2TqLXH/qvGaZdXv9CwvSalErkskxSgJz22TW+gRiF/SuiwopRMN6Zbc9r+qoRizwWOuhwAjq5rIK1RpRNJ1TIx6NHT4mNNNCrsbB1BDg85n1flkmBwcq8cBnkfSgmztgIFPgzjcqvRBHnYF/giCXhMk2gLQ1IbLKBO4cGOtP8xtRgg7U9I0buXudijwSgzOfrv7ahlTbpJDrW1zfbLuc9SIewZUPsH4h1SChO9P0Ofg6BYccdyHCiWY3ZjC1VEnlqv1EHwahW1h7aytrGGrdv+aAGSgpmvnZlzs1hXVmS7KXqk0ohtM7ULlrVzwSPjSVAfhU19hkHI5BvI+sqS/GwikXiR6nkHZviKRkrM8pWXp0vt+OSpCmo5tapWSM0e3tJls9PZ9+NH1fjTOXB4o1TS6CvZKjGQXXq1b5uVg8quyLOp8JZM/oLMMnjBqSYXOtZWFjfRT9wp045HyenmaIHTXpirtfQLOhVzKvbmGarXnSPiGuUXq8BOAbtIVELOyZN2PWZWghl5f6yQ4skGCzeYx28USHtY1TB1IE4k2UMoVWzjWmehcbK5uJ+89O74C5Xmn3HgBDyo0ptNkA1NBgy9aowykcabxFuIJ5sX21KnXq/HPSlo3lyEu3RoIlNg8lsGBq x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM5PR12MB1708.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(376002)(396003)(346002)(136003)(39860400002)(224303003)(66476007)(45080400002)(66556008)(316002)(921005)(6506007)(86362001)(52536014)(30864003)(478600001)(8936002)(2906002)(55016002)(53546011)(33656002)(5660300002)(110136005)(54906003)(83380400001)(26005)(9686003)(66946007)(7696005)(71200400001)(64756008)(966005)(66574015)(186003)(38100700001)(4326008)(66446008)(76116006)(579004)(559001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?VW1oODdhb2ZtY2dtZkJLcmVta053c29xRXJrZTh4Uisya2xJRzEzMlJBWEFN?= =?utf-8?B?akxCZ25PRlRDMlg5QTlzUGxuMFArSjFKa1l6eUw2K3BjSys2cUZHdkdEN3h6?= =?utf-8?B?Z0tNdWtaQnA1eVEzcTdMdUJSaW5zRWJrYWErdHNKUTR5bmRodzdUcGNoTXgw?= =?utf-8?B?c1R0cFFZcEtSek5ocUNOUDc0ZHVzRE5JK0JnY3hmb2piZ2R5MnZOZHV0akdm?= =?utf-8?B?Y2ZLZGJrcVRIYUlDeFR5T0w2TmY5UGo3aDJPNS9ZNE9ucUV5bjJTZ0JVR0VX?= =?utf-8?B?MHp6SGp4OFBUcms4eHN2UWdwdWRyWjkvZHN2ZVRnWWJWN3B1elNlZzZYZlRX?= =?utf-8?B?bWZSU0x5NHFHQ29vUGJGR1BCbkxEbmVrbWNHZ3Jmc1BFRVZDSWpVVUwxK2NT?= =?utf-8?B?SW5wN085UjJzMXBuTWJweVhvRGJQK1FhTWtWclg1Y1VEcGc2czhaMmlnSUx0?= =?utf-8?B?YThVemo5aURuRWlwUjhNdnM4cElRNzNmK05mU2hJQ2JYSlh1aHg5R2VKbUlF?= =?utf-8?B?N0NTaHZCdEVKS3h1RWF2MTdaNm4vOENmRy9ZWnlPenNLcnBTVVFYNmE4dHVX?= =?utf-8?B?dGRNb2ZHVEJqSmdVUVNNU0xqTHFPNGdDeDVBbGJ3dWNQS0hzb1BMRGRLNkF2?= =?utf-8?B?ejZ3S0diYmFGbmx6R1hrODJvTlBKaG9HY1FwaGFZcjJOL0xCUnJMcVRES2l0?= =?utf-8?B?cmRQdkFSQzF3RWFlbi85aThPcHJ3enRGVVQ1U0QxaGtNZGE3cVliRlo3QllY?= =?utf-8?B?YnZ6b1B0K08rNWdNQkQ2Nm8vMDJsWDl1Yzc1QXB4R2hGOFVQb0lrWncxYUwy?= =?utf-8?B?WnF0Nm9vYU1kQjBYcmMxYjRxWnJ0WVpNdlB6MTcwd2Vvb0FhSm9WWUQ1cFZC?= =?utf-8?B?eHBpd05MR1N2VHhtbEVCSjVPS25MTEdVUFpuaWFnVUx2cUlybDhKQ1R2MDkx?= =?utf-8?B?VjFNRmxmNlk5TUtjZ0NqeFJKTjdnTFhhazVRRHIyS3Q2amtUMDhWOTlaa3pv?= =?utf-8?B?K3dWYmV3cVlJYm84by9xT1JNQURYR0JKMjV3NndJbWw4OGRTb2VTelQrU1h6?= =?utf-8?B?UG85TStNWk9BOGp5dk5oa2ZVSFluVk13UHZ3N3Y2Z0Y0MVlzR0w0c2Q1TWtY?= =?utf-8?B?QjNqcGkrMEFqTklENmw4V1lwRHJGNlUwLysxYmU5bzZDeDMxQjZndUNlZ1JI?= =?utf-8?B?L3BEcU1MS3paK2xFTWxkQy9sZWRvN2FlM1I3akZNSmx3TXlxVmdJU2kvWnVP?= =?utf-8?B?SGFXRzN0TXQ4a1VPcDFzQzZCQy80d1drT2g1V055d0dVWkdKSGFHZTliNUhZ?= =?utf-8?B?YWxmODByM3BITFF0OVJyalNkZ083a1JxY2V3bS9SOWlFRjljbnhubWlHNVNE?= =?utf-8?B?K0k3bFp3bldvRUNuSGdjV2dpelo3dTV0bEJ2NnNsUkMxRUVTMHZaOFo3QlJn?= =?utf-8?B?ZHp4ZnZhYWlHU0w2MTF2MWJPZVFpNTlPNWJqNGgwdU9xTFRJWjk3eVMzdFZU?= =?utf-8?B?WXJRK2tFaVZ0b0RxSFVxTTBmZFlwSXQwNyt4bDd0VWRsQWxTc0wxWlc5UnBW?= =?utf-8?B?RkpXWFpzYzdNbDU1cnlVbUk2a2VSald1Rk54TjlSMlpGbjUweVFqckhudHc5?= =?utf-8?B?RExOczVpQTk4ZE1vOXVydTFpZXpIYmpoaDBqZzhQQktmenIvWkNYNERVZGtZ?= =?utf-8?B?V2RrMXV1dHdmS0xINHVZcnpKNDNWTWNEVE05YjhPMG15a2ZXc0NkcU9leFk0?= =?utf-8?Q?dwmjbjRH4l/mql/lKQekGBwmLLlEFmHyGGzx5Oi?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1708.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3d1e59e0-b8d0-4db6-f1c5-08d8f04942ce X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Mar 2021 11:21:11.5103 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: YbSNnWg5hYS6jY+Qww/2/0ffQ4uc2nWIk+3vBB/HQ9t9PRlSskeQOHynQWNpmN7u X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4153 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Zhang, Andy" , "Jiang, Jerry \(SW\)" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" W0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEludGVybmFsIERpc3RyaWJ1dGlvbiBPbmx5XQ0KDQpI aSBDaHJpc3RpYW4NCg0KVGhpcyBpcyBub3QgY29ycmVjdCBvciBjb3JyZWN0IHBlcnNwZWN0aXZl LCBhbnkgZGVzaWduIGNvbWVzIHdpdGggaXRzIHByb3MgYW5kIGNvbnMsIG90aGVyd2lzZSBpdCB3 b3VsZG4ndCBjb21lcyB0byBrZXJuZWwgdHJlZSBpbiB0aGUgdmVyeSBiZWdpbm5pbmcgLCBpdCBp cyBqdXN0IHdpdGggdGltZSBwYXNzZWQgd2UgaGF2ZSBtb3JlIGFuZCBtb3JlIHJlcXVpcmVtZW50 IGFuZCBmZWF0dXJlIG5lZWQgdG8gaW1wbGVtZW50DQpBbmQgdGhvc2UgbmV3IHJlcXVpcmVtZW50 IGRyYWdzIG1hbnkgbmV3IHNvbHV0aW9uIG9yIGlkZWEsIGFuZCBzb21lIGlkZWEgeW91IHByZWZl ciBuZWVkIHRvIGJhc2VkIG9uIGEgbmV3IGluZnJhc3RydWN0dXJlLCB0aGF0J3MgYWxsDQoNCkkg ZG9uJ3Qgd2h5IHRoZSBqb2IgInNob3VsZCBiZSIgb3Igbm90ICJzaG91bGQgYmUiIGluIHRoZSBz Y2hlZHVsZXIsIGhvbmVzdGx5IHNwZWFraW5nIEkgY2FuIGFyZ3VlIHdpdGggeW91IHRoYXQgdGhl ICJzY2hlZHVsZXIiIGFuZCB0aGUgVERSIGZlYXR1cmUgd2hpY2ggaW52ZW50ZWQgYnkgQU1EIGRl dmVsb3BlciAic2hvdWxkIiBuZXZlciBlc2NhbGF0ZSB0byBkcm0gbGF5ZXIgYXQgYWxsIGFuZCBi eSB0aGF0IGFzc3VtcHRpb24NClRob3NlIHZlbmRvcidzIGNvbXBhdGliaWxpdGllcyBoZWFkYWNo ZSByaWdodCBub3cgd29uJ3QgaGFwcGVuIGF0IGFsbC4NCg0KTGV0J3MganVzdCBmb2N1cyBvbiB0 aGUgaXNzdWUgc28gZmFyLg0KDQpUaGUgc29sdXRpb24gQW5kcmV5IGFuZCBKYWNrIGRvaW5nIHJp Z2h0IG5vdyBsb29rcyBnb29kIHRvIG1lLCBhbmQgaXQgY2FuIHNvbHZlIG91ciBwcm9ibGVtcyB3 aXRob3V0IGludHJvZHVjaW5nIHJlZ3Jlc3Npb24gZnJvbSBhIHN1cmZhY2UgbG9vaywgYnV0IGl0 IGlzIGZpbmUgaWYgeW91IG5lZWQgYSBuZWF0IHNvbHV0aW9uLCAgc2luY2Ugd2UgaGF2ZSBvdXIg cHJvamVjdCBwcmVzc3VyZSAod2hpY2ggd2UgYWx3YXlzIGhhdmUpDQpFaXRoZXIgd2UgaW1wbGVt ZW50IHRoZSBmaXJzdCB2ZXJzaW9uIHdpdGggSmFjaydzIHBhdGNoIGFuZCBkbyB0aGUgcmV2aXNl IGluIGFub3RoZXIgc2VyaWVzIG9mIHBhdGNoZXMgKHRoYXQgYWxzbyBteSBpbml0aWFsIHN1Z2dl c3Rpb24pIG9yIHdlIHJld29yayBhbnl0aGluZyB5b3UgbWVudGlvbmVkLCBidXQgc2luY2UgbG9v a3MgdG8gbWUgeW91IGFyZSBmcm9tIHRpbWUgdG8gdGltZSBhc2tpbmcgcGVvcGxlIHRvIHJld29y aw0KU29tZXRoaW5nIGluIHRoZSBzdGFnZSB0aGF0IHBlb3BsZSBhbHJlYWR5IGhhdmUgYSBzb2x1 dGlvbiwgd2hpY2ggZnJ1c3RyYXRlZCBwZW9wbGUgYSBsb3QsDQoNCkkgd291bGQgbGlrZSB5b3Ug ZG8gcHJlcGFyZSBhIHNvbHV0aW9uIGZvciB1cywgd2hpY2ggc29sdmVzIG91ciBoZWFkYWNoZXMg Li4uICBJIHJlYWxseSBkb24ndCB3YW50IHRvIHNlZSB5b3UgYXNrZWQgSmFjayB0byByZXdvcmsg YWdhaW4gYW5kIGFnYWluDQpJZiB5b3UgYXJlIG91dCBvZiBiYW5kd2lkdGggb3Igbm8gaW50ZXJl c3QgaW4gZG9pbmcgdGhpcyAscGxlYXNlIGF0IGxlYXN0IG1ha2UgeW91ciBzb2x1dGlvbi9wcm9w b3NhbCB2ZXJ5IGRldGFpbCBhbmQgY2xlYXIsIGphY2sgdG9sZCBtZSBoZSBjb3VsZG4ndCB1bmRl cnN0YW5kIHlvdXIgcG9pbnQgaGVyZS4NCg0KVGhhbmtzIHZlcnkgbXVjaCwgYW5kIHBsZWFzZSB1 bmRlcnN0YW5kIG91ciBwYWluZnVsIGhlcmUNCg0KL01vbmsNCg0KDQotLS0tLemCruS7tuWOn+S7 ti0tLS0tDQrlj5Hku7bkuro6IEtvZW5pZywgQ2hyaXN0aWFuIDxDaHJpc3RpYW4uS29lbmlnQGFt ZC5jb20+DQrlj5HpgIHml7bpl7Q6IDIwMjHlubQz5pyIMjbml6UgMTc6MDYNCuaUtuS7tuS6ujog WmhhbmcsIEphY2sgKEppYW4pIDxKYWNrLlpoYW5nMUBhbWQuY29tPjsgR3JvZHpvdnNreSwgQW5k cmV5IDxBbmRyZXkuR3JvZHpvdnNreUBhbWQuY29tPjsgQ2hyaXN0aWFuIEvDtm5pZyA8Y2tvZW5p Zy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb20+OyBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnOyBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgTGl1LCBNb25rIDxNb25rLkxpdUBh bWQuY29tPjsgRGVuZywgRW1pbHkgPEVtaWx5LkRlbmdAYW1kLmNvbT47IFJvYiBIZXJyaW5nIDxy b2JoQGtlcm5lbC5vcmc+OyBUb21ldSBWaXpvc28gPHRvbWV1LnZpem9zb0Bjb2xsYWJvcmEuY29t PjsgU3RldmVuIFByaWNlIDxzdGV2ZW4ucHJpY2VAYXJtLmNvbT4NCuS4u+mimDogUmU6IFtQQVRD SCB2M10gZHJtL3NjaGVkdWxlciByZS1pbnNlcnQgQmFpbGluZyBqb2IgdG8gYXZvaWQgbWVtbGVh aw0KDQpIaSBndXlzLA0KDQpBbSAyNi4wMy4yMSB1bSAwMzoyMyBzY2hyaWViIFpoYW5nLCBKYWNr IChKaWFuKToNCj4gW0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEludGVybmFsIERpc3RyaWJ1dGlv biBPbmx5XQ0KPg0KPiBIaSwgQW5kcmV5LA0KPg0KPj4+IGhvdyB1IGhhbmRsZSBub24gZ3VpbHR5 IHNpbmduYWxlZCBqb2JzIGluIGRybV9zY2hlZF9zdG9wLCBjdXJyZW50bHkNCj4+PiBsb29rcyBs aWtlIHlvdSBkb24ndCBjYWxsIHB1dCBmb3IgdGhlbSBhbmQganVzdCBleHBsaWNpdGx5IGZyZWUg dGhlbQ0KPj4+IGFzIGJlZm9yZQ0KPiBHb29kIHBvaW50LCBJIG1pc3NlZCB0aGF0IHBsYWNlLiBX aWxsIGNvdmVyIHRoYXQgaW4gbXkgbmV4dCBwYXRjaC4NCj4NCj4+PiBBbHNvIHNjaGVkLT5mcmVl X2d1aWx0eSBzZWVtcyB1c2VsZXNzIHdpdGggdGhlIG5ldyBhcHByb2FjaC4NCj4gWWVzLCBJIGFn cmVlLg0KPg0KPj4+IERvIHdlIGV2ZW4gbmVlZCB0aGUgY2xlYW51cCBtZWNoYW5pc20gYXQgZHJt X3NjaGVkX2dldF9jbGVhbnVwX2pvYiB3aXRoIHRoaXMgYXBwcm9hY2guLi4NCj4gSSBhbSBub3Qg cXVpdGUgc3VyZSBhYm91dCB0aGF0IGZvciBub3csIGxldCBtZSB0aGluayBhYm91dCB0aGlzIHRv cGljIHRvZGF5Lg0KPg0KPiBIaSwgQ2hyaXN0aWFuLA0KPiBzaG91bGQgSSBhZGQgYSBmZW5jZSBh bmQgZ2V0L3B1dCB0byB0aGF0IGZlbmNlIHJhdGhlciB0aGFuIHVzaW5nIGFuIGV4cGxpY2l0IHJl ZmNvdW50Pw0KPiBBbmQgYW5vdGhlciBjb25jZXJucz8NCg0Kd2VsbCBsZXQgbWUgcmUtaXRlcmF0 ZToNCg0KRm9yIHRoZSBzY2hlZHVsZXIgdGhlIGpvYiBpcyBqdXN0IGEgdGVtcG9yYXJ5IGRhdGEg c3RydWN0dXJlIHVzZWQgZm9yIHNjaGVkdWxpbmcgdGhlIElCcyB0byB0aGUgaGFyZHdhcmUuDQoN CldoaWxlIHB1c2hpbmcgdGhlIGpvYiB0byB0aGUgaGFyZHdhcmUgd2UgZ2V0IGEgZmVuY2Ugc3Ry dWN0dXJlIGluIHJldHVybiB3aGljaCByZXByZXNlbnRzIHRoZSBJQnMgZXhlY3V0aW5nIG9uIHRo ZSBoYXJkd2FyZS4NCg0KVW5mb3J0dW5hdGVseSB3ZSBoYXZlIGFwcGxpZWQgYSBkZXNpZ24gd2hl cmUgdGhlIGpvYiBzdHJ1Y3R1cmUgaXMgcmF0aGVyIHVzZWQgZm9yIHJlLXN1Ym1pdHRpbmcgdGhl IGpvYnMgdG8gdGhlIGhhcmR3YXJlIGFmdGVyIGEgR1BVIHJlc2V0IGFuZCBrYXJtYSBoYW5kbGlu ZyBldGMgZXRjLi4uDQoNCkFsbCB0aGF0IHNob3VsZG4ndCBoYXZlIGJlZW4gcHVzaGVkIGludG8g dGhlIHNjaGVkdWxlciBpbnRvIHRoZSBmaXJzdCBwbGFjZSBhbmQgd2Ugc2hvdWxkIG5vdyB3b3Jr IG9uIGdldHRpbmcgdGhpcyBjbGVhbmVkIHVwIHJhdGhlciB0aGFuIG1ha2luZyBpdCBhbiBldmVu IGJpZ2dlciBtZXNzIGJ5IGFwcGx5aW5nIGhhbHZlIGJhY2tlZCBzb2x1dGlvbnMuDQoNClNvIGlu IG15IG9waW5pb24gYWRkaW5nIGEgcmVmZXJlbmNlIGNvdW50IHRvIHRoZSBqb2IgaXMgZ29pbmcg aW50byB0aGUgY29tcGxldGVseSB3cm9uZyBkaXJlY3RseS4gV2hhdCB3ZSBzaG91bGQgcmF0aGVy IGRvIGlzIHRvIGZpeCB0aGUgaW5jb3JyZWN0IGRlc2lnbiBkZWNpc2lvbiB0byB1c2Ugam9icyBh cyB2ZWhpY2xlIGluIHRoZSBzY2hlZHVsZXIgZm9yIHJlc2V0IGhhbmRsaW5nLg0KDQpUbyBmaXgg dGhpcyBJIHN1Z2dlc3QgdGhlIGZvbGxvd2luZyBhcHByb2FjaDoNCjEuIFdlIGFkZCBhIHBvaW50 ZXIgZnJvbSB0aGUgZHJtX3NjaGVkX2ZlbmNlIGJhY2sgdG8gdGhlIGRybV9zY2hlZF9qb2IuDQoy LiBJbnN0ZWFkIG9mIGtlZXBpbmcgdGhlIGpvYiBhcm91bmQgaW4gdGhlIHNjaGVkdWxlciB3ZSBr ZWVwIHRoZSBmZW5jZSBhcm91bmQuIEZvciB0aGlzIEkgc3VnZ2VzdCB0byByZXBsYWNlIHRoZSBw ZW5kaW5nX2xpc3Qgd2l0aCBhIHJpbmcgYnVmZmVyLg0KMy4gVGhlIHRpbWVkb3V0X2pvYiBjYWxs YmFjayBpcyByZXBsYWNlZCB3aXRoIGEgdGltZW91dF9mZW5jZSBjYWxsYmFjay4NCjQuIFRoZSBm cmVlX2pvYiBjYWxsYmFjayBpcyBjb21wbGV0ZWQgZHJvcHBlZC4gSm9iIGxpZmV0aW1lIGlzIG5v dyBoYW5kbGVkIGluIHRoZSBkcml2ZXIsIG5vdCB0aGUgc2NoZWR1bGVyLg0KDQpSZWdhcmRzLA0K Q2hyaXN0aWFuLg0KDQo+DQo+IFRoYW5rcywNCj4gSmFjaw0KPg0KPiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiBGcm9tOiBHcm9kem92c2t5LCBBbmRyZXkgPEFuZHJleS5Hcm9kem92c2t5 QGFtZC5jb20+DQo+IFNlbnQ6IEZyaWRheSwgTWFyY2ggMjYsIDIwMjEgMTI6MzIgQU0NCj4gVG86 IFpoYW5nLCBKYWNrIChKaWFuKSA8SmFjay5aaGFuZzFAYW1kLmNvbT47IENocmlzdGlhbiBLw7Zu aWcNCj4gPGNrb2VuaWcubGVpY2h0enVtZXJrZW5AZ21haWwuY29tPjsgZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZzsNCj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IEtvZW5p ZywgQ2hyaXN0aWFuDQo+IDxDaHJpc3RpYW4uS29lbmlnQGFtZC5jb20+OyBMaXUsIE1vbmsgPE1v bmsuTGl1QGFtZC5jb20+OyBEZW5nLCBFbWlseQ0KPiA8RW1pbHkuRGVuZ0BhbWQuY29tPjsgUm9i IEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZz47IFRvbWV1IFZpem9zbw0KPiA8dG9tZXUudml6b3Nv QGNvbGxhYm9yYS5jb20+OyBTdGV2ZW4gUHJpY2UgPHN0ZXZlbi5wcmljZUBhcm0uY29tPg0KPiBT dWJqZWN0OiBSZTogW1BBVENIIHYzXSBkcm0vc2NoZWR1bGVyIHJlLWluc2VydCBCYWlsaW5nIGpv YiB0byBhdm9pZA0KPiBtZW1sZWFrDQo+DQo+IFRoZXJlIGFyZSBhIGZldyBpc3N1ZXMgaGVyZSBs aWtlIC0gaG93IHUgaGFuZGxlIG5vbiBndWlsdHkgc2luZ25hbGVkIGpvYnMgaW4gZHJtX3NjaGVk X3N0b3AsIGN1cnJlbnRseSBsb29rcyBsaWtlIHlvdSBkb24ndCBjYWxsIHB1dCBmb3IgdGhlbSBh bmQganVzdCBleHBsaWNpdGx5IGZyZWUgdGhlbSBhcyBiZWZvcmUuIEFsc28gc2NoZWQtPmZyZWVf Z3VpbHR5IHNlZW1zIHVzZWxlc3Mgd2l0aCB0aGUgbmV3IGFwcHJvYWNoLiBEbyB3ZSBldmVuIG5l ZWQgdGhlIGNsZWFudXAgbWVjaGFuaXNtIGF0IGRybV9zY2hlZF9nZXRfY2xlYW51cF9qb2Igd2l0 aCB0aGlzIGFwcHJvYWNoLi4uDQo+DQo+IEJ1dCBmaXJzdCAtIFdlIG5lZWQgQ2hyaXN0aWFuIHRv IGV4cHJlc3MgaGlzIG9waW5pb24gb24gdGhpcyBzaW5jZSBJIHRoaW5rIGhlIG9wcG9zZWQgcmVm Y291bnRpbmcgam9icyBhbmQgdGhhdCB3ZSBzaG91bGQgY29uY2VudHJhdGUgb24gZmVuY2VzIGlu c3RlYWQuDQo+DQo+IENocmlzdGlhbiAtIGNhbiB5b3UgY2hpbWUgaW4gaGVyZSA/DQo+DQo+IEFu ZHJleQ0KPg0KPiBPbiAyMDIxLTAzLTI1IDU6NTEgYS5tLiwgWmhhbmcsIEphY2sgKEppYW4pIHdy b3RlOg0KPj4gW0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEludGVybmFsIERpc3RyaWJ1dGlvbiBP bmx5XQ0KPj4NCj4+DQo+PiBIaSwgQW5kcmV5DQo+Pg0KPj4gVGhhbmsgeW91IGZvciB5b3VyIGdv b2Qgb3BpbmlvbnMuDQo+Pg0KPj4gSSBsaXRlcmFsbHkgYWdyZWUgd2l0aCB5b3UgdGhhdCB0aGUg cmVmY291bnQgY291bGQgc29sdmUgdGhlDQo+PiBnZXRfY2xlYW5fdXBfdXAgY29jdXJyZW50IGpv YiBncmFjZWZ1bGx5LCBhbmQgbm8gbmVlZCB0byByZS1pbnNlcnQNCj4+IHRoZQ0KPj4NCj4+IGpv YiBiYWNrIGFueW1vcmUuDQo+Pg0KPj4gSSBxdWlja2x5IG1hZGUgYSBkcmFmdCBmb3IgdGhpcyBp ZGVhIGFzIGZvbGxvd3M6DQo+Pg0KPj4gSG93IGRvIHlvdSBsaWtlIGl0PyBJIHdpbGwgc3RhcnQg aW1wbGVtZW50IHRvIGl0IGFmdGVyIEkgZ290IHlvdXINCj4+IGFja25vd2xlZGdlLg0KPj4NCj4+ IFRoYW5rcywNCj4+DQo+PiBKYWNrDQo+Pg0KPj4gK3ZvaWQgZHJtX2pvYl9nZXQoc3RydWN0IGRy bV9zY2hlZF9qb2IgKnNfam9iKQ0KPj4NCj4+ICt7DQo+Pg0KPj4gKyAgICAgICBrcmVmX2dldCgm c19qb2ItPnJlZmNvdW50KTsNCj4+DQo+PiArfQ0KPj4NCj4+ICsNCj4+DQo+PiArdm9pZCBkcm1f am9iX2RvX3JlbGVhc2Uoc3RydWN0IGtyZWYgKnJlZikNCj4+DQo+PiArew0KPj4NCj4+ICsgICAg ICAgc3RydWN0IGRybV9zY2hlZF9qb2IgKnNfam9iOw0KPj4NCj4+ICsgICAgICAgc3RydWN0IGRy bV9ncHVfc2NoZWR1bGVyICpzY2hlZDsNCj4+DQo+PiArDQo+Pg0KPj4gKyAgICAgICBzX2pvYiA9 IGNvbnRhaW5lcl9vZihyZWYsIHN0cnVjdCBkcm1fc2NoZWRfam9iLCByZWZjb3VudCk7DQo+Pg0K Pj4gKyAgICAgICBzY2hlZCA9IHNfam9iLT5zY2hlZDsNCj4+DQo+PiArICAgICAgIHNjaGVkLT5v cHMtPmZyZWVfam9iKHNfam9iKTsNCj4+DQo+PiArfQ0KPj4NCj4+ICsNCj4+DQo+PiArdm9pZCBk cm1fam9iX3B1dChzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc19qb2IpDQo+Pg0KPj4gK3sNCj4+DQo+ PiArICAgICAgIGtyZWZfcHV0KCZzX2pvYi0+cmVmY291bnQsIGRybV9qb2JfZG9fcmVsZWFzZSk7 DQo+Pg0KPj4gK30NCj4+DQo+PiArDQo+Pg0KPj4gc3RhdGljIHZvaWQgZHJtX3NjaGVkX2pvYl9i ZWdpbihzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc19qb2IpDQo+Pg0KPj4gew0KPj4NCj4+ICAgICAg ICAgICBzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkID0gc19qb2ItPnNjaGVkOw0KPj4N Cj4+ICsgICAgICAga3JlZl9pbml0KCZzX2pvYi0+cmVmY291bnQpOw0KPj4NCj4+ICsgICAgICAg ZHJtX2pvYl9nZXQoc19qb2IpOw0KPj4NCj4+ICAgICAgICAgICBzcGluX2xvY2soJnNjaGVkLT5q b2JfbGlzdF9sb2NrKTsNCj4+DQo+PiAgICAgICAgICAgbGlzdF9hZGRfdGFpbCgmc19qb2ItPm5v ZGUsICZzY2hlZC0+cmluZ19taXJyb3JfbGlzdCk7DQo+Pg0KPj4gICAgICAgICAgIGRybV9zY2hl ZF9zdGFydF90aW1lb3V0KHNjaGVkKTsNCj4+DQo+PiBAQCAtMjk0LDE3ICszMTYsMTYgQEAgc3Rh dGljIHZvaWQgZHJtX3NjaGVkX2pvYl90aW1lZG91dChzdHJ1Y3QNCj4+IHdvcmtfc3RydWN0ICp3 b3JrKQ0KPj4NCj4+ICAgICAgICAgICAgICAgICAgICAqIGRybV9zY2hlZF9jbGVhbnVwX2pvYnMu IEl0IHdpbGwgYmUgcmVpbnNlcnRlZA0KPj4gYmFjayBhZnRlciBzY2hlZC0+dGhyZWFkDQo+Pg0K Pj4gICAgICAgICAgICAgICAgICAgICogaXMgcGFya2VkIGF0IHdoaWNoIHBvaW50IGl0J3Mgc2Fm ZS4NCj4+DQo+PiAgICAgICAgICAgICAgICAgICAgKi8NCj4+DQo+PiAtICAgICAgICAgICAgICAg bGlzdF9kZWxfaW5pdCgmam9iLT5ub2RlKTsNCj4+DQo+PiArICAgICAgICAgICAgICAgZHJtX2pv Yl9nZXQoam9iKTsNCj4+DQo+PiAgICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmc2NoZWQt PmpvYl9saXN0X2xvY2spOw0KPj4NCj4+ICAgICAgICAgICAgICAgICAgIGpvYi0+c2NoZWQtPm9w cy0+dGltZWRvdXRfam9iKGpvYik7DQo+Pg0KPj4gLQ0KPj4NCj4+ICsgICAgICAgICAgICAgICBk cm1fam9iX3B1dChqb2IpOw0KPj4NCj4+ICAgICAgICAgICAgICAgICAgIC8qDQo+Pg0KPj4gICAg ICAgICAgICAgICAgICAgICogR3VpbHR5IGpvYiBkaWQgY29tcGxldGUgYW5kIGhlbmNlIG5lZWRz IHRvIGJlDQo+PiBtYW51YWxseSByZW1vdmVkDQo+Pg0KPj4gICAgICAgICAgICAgICAgICAgICog U2VlIGRybV9zY2hlZF9zdG9wIGRvYy4NCj4+DQo+PiAgICAgICAgICAgICAgICAgICAgKi8NCj4+ DQo+PiAgICAgICAgICAgICAgICAgICBpZiAoc2NoZWQtPmZyZWVfZ3VpbHR5KSB7DQo+Pg0KPj4g LSAgICAgICAgICAgICAgICAgICAgICAgam9iLT5zY2hlZC0+b3BzLT5mcmVlX2pvYihqb2IpOw0K Pj4NCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZWQtPmZyZWVfZ3VpbHR5ID0gZmFs c2U7DQo+Pg0KPj4gICAgICAgICAgICAgICAgICAgfQ0KPj4NCj4+ICAgICAgICAgICB9IGVsc2Ug ew0KPj4NCj4+IEBAIC0zNTUsMjAgKzM3Niw2IEBAIHZvaWQgZHJtX3NjaGVkX3N0b3Aoc3RydWN0 IGRybV9ncHVfc2NoZWR1bGVyDQo+PiAqc2NoZWQsIHN0cnVjdCBkcm1fc2NoZWRfam9iICpiYWQp DQo+Pg0KPj4gLSAgICAgICAvKg0KPj4NCj4+IC0gICAgICAgICogUmVpbnNlcnQgYmFjayB0aGUg YmFkIGpvYiBoZXJlIC0gbm93IGl0J3Mgc2FmZSBhcw0KPj4NCj4+IC0gICAgICAgICogZHJtX3Nj aGVkX2dldF9jbGVhbnVwX2pvYiBjYW5ub3QgcmFjZSBhZ2FpbnN0IHVzIGFuZA0KPj4gcmVsZWFz ZSB0aGUNCj4+DQo+PiAtICAgICAgICAqIGJhZCBqb2IgYXQgdGhpcyBwb2ludCAtIHdlIHBhcmtl ZCAod2FpdGVkIGZvcikgYW55IGluDQo+PiBwcm9ncmVzcw0KPj4NCj4+IC0gICAgICAgICogKGVh cmxpZXIpIGNsZWFudXBzIGFuZCBkcm1fc2NoZWRfZ2V0X2NsZWFudXBfam9iIHdpbGwgbm90DQo+ PiBiZSBjYWxsZWQNCj4+DQo+PiAtICAgICAgICAqIG5vdyB1bnRpbCB0aGUgc2NoZWR1bGVyIHRo cmVhZCBpcyB1bnBhcmtlZC4NCj4+DQo+PiAtICAgICAgICAqLw0KPj4NCj4+IC0gICAgICAgaWYg KGJhZCAmJiBiYWQtPnNjaGVkID09IHNjaGVkKQ0KPj4NCj4+IC0gICAgICAgICAgICAgICAvKg0K Pj4NCj4+IC0gICAgICAgICAgICAgICAgKiBBZGQgYXQgdGhlIGhlYWQgb2YgdGhlIHF1ZXVlIHRv IHJlZmxlY3QgaXQgd2FzIHRoZQ0KPj4gZWFybGllc3QNCj4+DQo+PiAtICAgICAgICAgICAgICAg ICogam9iIGV4dHJhY3RlZC4NCj4+DQo+PiAtICAgICAgICAgICAgICAgICovDQo+Pg0KPj4gLSAg ICAgICAgICAgICAgIGxpc3RfYWRkKCZiYWQtPm5vZGUsICZzY2hlZC0+cmluZ19taXJyb3JfbGlz dCk7DQo+Pg0KPj4gLQ0KPj4NCj4+ICAgICAgICAgICAvKg0KPj4NCj4+ICAgICAgICAgICAgKiBJ dGVyYXRlIHRoZSBqb2IgbGlzdCBmcm9tIGxhdGVyIHRvICBlYXJsaWVyIG9uZSBhbmQNCj4+IGVp dGhlciBkZWFjdGl2ZQ0KPj4NCj4+ICAgICAgICAgICAgKiB0aGVpciBIVyBjYWxsYmFja3Mgb3Ig cmVtb3ZlIHRoZW0gZnJvbSBtaXJyb3IgbGlzdCBpZg0KPj4gdGhleSBhbHJlYWR5DQo+Pg0KPj4g QEAgLTc3NCw3ICs3ODEsNyBAQCBzdGF0aWMgaW50IGRybV9zY2hlZF9tYWluKHZvaWQgKnBhcmFt KQ0KPj4NCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrdGhy ZWFkX3Nob3VsZF9zdG9wKCkpOw0KPj4NCj4+ICAgICAgICAgICAgICAgICAgIGlmIChjbGVhbnVw X2pvYikgew0KPj4NCj4+IC0gICAgICAgICAgICAgICAgICAgICAgIHNjaGVkLT5vcHMtPmZyZWVf am9iKGNsZWFudXBfam9iKTsNCj4+DQo+PiArICAgICAgICAgICAgICAgICAgICAgICBkcm1fam9i X3B1dChjbGVhbnVwX2pvYik7DQo+Pg0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBx dWV1ZSB0aW1lb3V0IGZvciBuZXh0IGpvYiAqLw0KPj4NCj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgZHJtX3NjaGVkX3N0YXJ0X3RpbWVvdXQoc2NoZWQpOw0KPj4NCj4+ICAgICAgICAgICAg ICAgICAgIH0NCj4+DQo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5o DQo+PiBiL2luY2x1ZGUvZHJtL2dwdV9zY2hlZHVsZXIuaA0KPj4NCj4+IGluZGV4IDVhMWYwNjhh ZjFjMi4uYjgwNTEzZWVjOTBmIDEwMDY0NA0KPj4NCj4+IC0tLSBhL2luY2x1ZGUvZHJtL2dwdV9z Y2hlZHVsZXIuaA0KPj4NCj4+ICsrKyBiL2luY2x1ZGUvZHJtL2dwdV9zY2hlZHVsZXIuaA0KPj4N Cj4+IEBAIC0xODgsNiArMTg4LDcgQEAgc3RydWN0IGRybV9zY2hlZF9mZW5jZSAqdG9fZHJtX3Nj aGVkX2ZlbmNlKHN0cnVjdA0KPj4gZG1hX2ZlbmNlICpmKTsNCj4+DQo+PiAgICAgKiB0byBzY2hl ZHVsZSB0aGUgam9iLg0KPj4NCj4+ICAgICAqLw0KPj4NCj4+IHN0cnVjdCBkcm1fc2NoZWRfam9i IHsNCj4+DQo+PiArICAgICAgIHN0cnVjdCBrcmVmICAgICAgICAgICAgICAgICAgICAgcmVmY291 bnQ7DQo+Pg0KPj4gICAgICAgICAgIHN0cnVjdCBzcHNjX25vZGUgICAgICAgICAgICAgICAgcXVl dWVfbm9kZTsNCj4+DQo+PiAgICAgICAgICAgc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICAgICAg ICAqc2NoZWQ7DQo+Pg0KPj4gICAgICAgICAgIHN0cnVjdCBkcm1fc2NoZWRfZmVuY2UgICAgICAg ICAgKnNfZmVuY2U7DQo+Pg0KPj4gQEAgLTE5OCw2ICsxOTksNyBAQCBzdHJ1Y3QgZHJtX3NjaGVk X2pvYiB7DQo+Pg0KPj4gICAgICAgICAgIGVudW0gZHJtX3NjaGVkX3ByaW9yaXR5ICAgICAgICAg c19wcmlvcml0eTsNCj4+DQo+PiAgICAgICAgICAgc3RydWN0IGRybV9zY2hlZF9lbnRpdHkgICpl bnRpdHk7DQo+Pg0KPj4gICAgICAgICAgIHN0cnVjdCBkbWFfZmVuY2VfY2IgICAgICAgICAgICAg Y2I7DQo+Pg0KPj4gKw0KPj4NCj4+IH07DQo+Pg0KPj4gKkZyb206KiBHcm9kem92c2t5LCBBbmRy ZXkgPEFuZHJleS5Hcm9kem92c2t5QGFtZC5jb20+DQo+PiAqU2VudDoqIEZyaWRheSwgTWFyY2gg MTksIDIwMjEgMTI6MTcgQU0NCj4+ICpUbzoqIFpoYW5nLCBKYWNrIChKaWFuKSA8SmFjay5aaGFu ZzFAYW1kLmNvbT47IENocmlzdGlhbiBLw7ZuaWcNCj4+IDxja29lbmlnLmxlaWNodHp1bWVya2Vu QGdtYWlsLmNvbT47IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7DQo+PiBhbWQtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgS29lbmlnLCBDaHJpc3RpYW4NCj4+IDxDaHJpc3RpYW4u S29lbmlnQGFtZC5jb20+OyBMaXUsIE1vbmsgPE1vbmsuTGl1QGFtZC5jb20+OyBEZW5nLCBFbWls eQ0KPj4gPEVtaWx5LkRlbmdAYW1kLmNvbT47IFJvYiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5vcmc+ OyBUb21ldSBWaXpvc28NCj4+IDx0b21ldS52aXpvc29AY29sbGFib3JhLmNvbT47IFN0ZXZlbiBQ cmljZSA8c3RldmVuLnByaWNlQGFybS5jb20+DQo+PiAqU3ViamVjdDoqIFJlOiBbUEFUQ0ggdjNd IGRybS9zY2hlZHVsZXIgcmUtaW5zZXJ0IEJhaWxpbmcgam9iIHRvDQo+PiBhdm9pZCBtZW1sZWFr DQo+Pg0KPj4gT24gMjAyMS0wMy0xOCA2OjQxIGEubS4sIFpoYW5nLCBKYWNrIChKaWFuKSB3cm90 ZToNCj4+DQo+PiAgICAgIFtBTUQgT2ZmaWNpYWwgVXNlIE9ubHkgLSBJbnRlcm5hbCBEaXN0cmli dXRpb24gT25seV0NCj4+DQo+PiAgICAgIEhpLCBBbmRyZXkNCj4+DQo+PiAgICAgIExldCBtZSBz dW1tYXJpemUgdGhlIGJhY2tncm91bmQgb2YgdGhpcyBwYXRjaDoNCj4+DQo+PiAgICAgIEluIFRE UiByZXN1Ym1pdCBzdGVwIOKAnGFtZGdwdV9kZXZpY2VfcmVjaGVja19ndWlsdHlfam9icywNCj4+ DQo+PiAgICAgIEl0IHdpbGwgc3VibWl0IGZpcnN0IGpvYnMgb2YgZWFjaCByaW5nIGFuZCBkbyBn dWlsdHkgam9iIHJlLWNoZWNrLg0KPj4NCj4+ICAgICAgQXQgdGhhdCBwb2ludCwgV2UgaGFkIHRv IG1ha2Ugc3VyZSBlYWNoIGpvYiBpcyBpbiB0aGUgbWlycm9yIGxpc3Qob3INCj4+ICAgICAgcmUt aW5zZXJ0ZWQgYmFjayBhbHJlYWR5KS4NCj4+DQo+PiAgICAgIEJ1dCB3ZSBmb3VuZCB0aGUgY3Vy cmVudCBjb2RlIG5ldmVyIHJlLWluc2VydCB0aGUgam9iIHRvIG1pcnJvciBsaXN0DQo+PiAgICAg IGluIHRoZSAyXm5kICwgM15yZCBqb2JfdGltZW91dCB0aHJlYWQoQmFpbGluZyBURFIgdGhyZWFk KS4NCj4+DQo+PiAgICAgIFRoaXMgbm90IG9ubHkgd2lsbCBjYXVzZSBtZW1sZWFrIG9mIHRoZSBi YWlsaW5nIGpvYnMuIFdoYXTigJlzIG1vcmUNCj4+ICAgICAgaW1wb3J0YW50LCB0aGUgMV5zdCB0 ZHIgdGhyZWFkIGNhbiBuZXZlciBpdGVyYXRlIHRoZSBiYWlsaW5nIGpvYiBhbmQNCj4+ICAgICAg c2V0IGl0cyBndWlsdHkgc3RhdHVzIHRvIGEgY29ycmVjdCBzdGF0dXMuDQo+Pg0KPj4gICAgICBU aGVyZWZvcmUsIHdlIGhhZCB0byByZS1pbnNlcnQgdGhlIGpvYihvciBldmVuIG5vdCBkZWxldGUg bm9kZSkgZm9yDQo+PiAgICAgIGJhaWxpbmcgam9iLg0KPj4NCj4+ICAgICAgRm9yIHRoZSBhYm92 ZSBWMyBwYXRjaCwgdGhlIHJhY2luZyBjb25kaXRpb24gaW4gbXkgbWluZCBpczoNCj4+DQo+PiAg ICAgIHdlIGNhbm5vdCBtYWtlIHN1cmUgYWxsIGJhaWxpbmcgam9icyBhcmUgZmluaXNoZWQgYmVm b3JlIHdlIGRvDQo+PiAgICAgIGFtZGdwdV9kZXZpY2VfcmVjaGVja19ndWlsdHlfam9icy4NCj4+ DQo+PiBZZXMsdGhhdCByYWNlIGkgbWlzc2VkIC0gc28geW91IHNheSB0aGF0IGZvciAybmQsIGJh bGluZyB0aHJlYWQgd2hvDQo+PiBleHRyYWN0ZWQgdGhlIGpvYiwgZXZlbiBpZiBoZSByZWluc2Vy dCBpdCByaWdodCBhd2F5IGJhY2sgYWZ0ZXINCj4+IGRyaXZlciBjYWxsYmFjayByZXR1cm4gRFJN X0dQVV9TQ0hFRF9TVEFUX0JBSUxJTkcsIHRoZXJlIGlzIHNtYWxsDQo+PiB0aW1lIHNsb3Qgd2hl cmUgdGhlIGpvYiBpcyBub3QgaW4gbWlycm9yIGxpc3QgYW5kIHNvIHRoZSAxc3QgVERSDQo+PiBt aWdodCBtaXNzIGl0IGFuZCBub3QgZmluZCB0aGF0ICAybmQgam9iIGlzIHRoZSBhY3R1YWwgZ3Vp bHR5IGpvYiwNCj4+IHJpZ2h0ID8gQnV0LCBzdGlsbCB0aGlzIGpvYiB3aWxsIGdldCBiYWNrIGlu dG8gbWlycm9yIGxpc3QsIGFuZCBzaW5jZQ0KPj4gaXQncyByZWFsbHkgdGhlIGJhZCBqb2IsIGl0 IHdpbGwgbmV2ZXIgc2lnbmFsIGNvbXBsZXRpb24gYW5kIHNvIG9uDQo+PiB0aGUgbmV4dCB0aW1l b3V0IGN5Y2xlIGl0IHdpbGwgYmUgY2F1Z2h0IChvZiBjb3Vyc2UgdGhlcmUgaXMgYQ0KPj4gc3Rh cnZhdGlvbiBzY2VuYXJpbyBoZXJlIGlmIG1vcmUgVERScyBraWNrIGluIGFuZCBpdCBiYWlscyBv dXQgYWdhaW4gYnV0IHRoaXMgaXMgcmVhbGx5IHVubGlrZWx5KS4NCj4+DQo+PiAgICAgIEJhc2Vk IG9uIHRoaXMgaW5zaWdodCwgSSB0aGluayB3ZSBoYXZlIHR3byBvcHRpb25zIHRvIHNvbHZlIHRo aXMgaXNzdWU6DQo+Pg0KPj4gICAgICAgMS4gU2tpcCBkZWxldGUgbm9kZSBpbiB0ZHIgdGhyZWFk MiwgdGhyZWFkMywgNCDigKYgKHVzaW5nIG11dGV4IG9yDQo+PiAgICAgICAgICBhdG9taWMgdmFy aWFibGUpDQo+PiAgICAgICAyLiBSZS1pbnNlcnQgYmFjayBiYWlsaW5nIGpvYiwgYW5kIG1lYW53 aGlsZSB1c2Ugc2VtYXBob3JlIGluIGVhY2gNCj4+ICAgICAgICAgIHRkciB0aHJlYWQgdG8ga2Vl cCB0aGUgc2VxdWVuY2UgYXMgZXhwZWN0ZWQgYW5kIGVuc3VyZSBlYWNoIGpvYg0KPj4gICAgICAg ICAgaXMgaW4gdGhlIG1pcnJvciBsaXN0IHdoZW4gZG8gcmVzdWJtaXQgc3RlcC4NCj4+DQo+PiAg ICAgIEZvciBPcHRpb24xLCBsb2dpYyBpcyBzaW1wbGVyIGFuZCB3ZSBuZWVkIG9ubHkgb25lIGds b2JhbCBhdG9taWMNCj4+ICAgICAgdmFyaWFibGU6DQo+Pg0KPj4gICAgICBXaGF0IGRvIHlvdSB0 aGluayBhYm91dCB0aGlzIHBsYW4/DQo+Pg0KPj4gICAgICBPcHRpb24xIHNob3VsZCBsb29rIGxp a2UgdGhlIGZvbGxvd2luZyBsb2dpYzoNCj4+DQo+PiAgICAgICtzdGF0aWMgYXRvbWljX3QgaW5f cmVzZXQ7ICAgICAgICAgICAgIC8vYSBnbG9iYWwgYXRvbWljIHZhciBmb3INCj4+ICAgICAgc3lu Y2hyb25pemF0aW9uDQo+Pg0KPj4gICAgICBzdGF0aWMgdm9pZCBkcm1fc2NoZWRfcHJvY2Vzc19q b2Ioc3RydWN0IGRtYV9mZW5jZSAqZiwgc3RydWN0DQo+PiAgICAgIGRtYV9mZW5jZV9jYiAqY2Ip Ow0KPj4NCj4+ICAgICAgICAvKioNCj4+DQo+PiAgICAgIEBAIC0yOTUsNiArMjk2LDEyIEBAIHN0 YXRpYyB2b2lkIGRybV9zY2hlZF9qb2JfdGltZWRvdXQoc3RydWN0DQo+PiAgICAgIHdvcmtfc3Ry dWN0ICp3b3JrKQ0KPj4NCj4+ICAgICAgICAgICAgICAgICAgICAgICAgKiBkcm1fc2NoZWRfY2xl YW51cF9qb2JzLiBJdCB3aWxsIGJlIHJlaW5zZXJ0ZWQNCj4+ICAgICAgYmFjayBhZnRlciBzY2hl ZC0+dGhyZWFkDQo+Pg0KPj4gICAgICAgICAgICAgICAgICAgICAgICAqIGlzIHBhcmtlZCBhdCB3 aGljaCBwb2ludCBpdCdzIHNhZmUuDQo+Pg0KPj4gICAgICAgICAgICAgICAgICAgICAgICAqLw0K Pj4NCj4+ICAgICAgKyAgICAgICAgICAgICAgIGlmIChhdG9taWNfY21weGNoZygmaW5fcmVzZXQs IDAsIDEpICE9IDApIHsgIC8vc2tpcA0KPj4gICAgICBkZWxldGUgbm9kZSBpZiBpdOKAmXMgdGhl YWQxLDIsMyzigKYuDQo+Pg0KPj4gICAgICArICAgICAgICAgICAgICAgICAgICAgICBzcGluX3Vu bG9jaygmc2NoZWQtPmpvYl9saXN0X2xvY2spOw0KPj4NCj4+ICAgICAgKyAgICAgICAgICAgICAg ICAgICAgICAgZHJtX3NjaGVkX3N0YXJ0X3RpbWVvdXQoc2NoZWQpOw0KPj4NCj4+ICAgICAgKyAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPj4NCj4+ICAgICAgKyAgICAgICAgICAgICAg IH0NCj4+DQo+PiAgICAgICsNCj4+DQo+PiAgICAgICAgICAgICAgICAgICAgICAgbGlzdF9kZWxf aW5pdCgmam9iLT5ub2RlKTsNCj4+DQo+PiAgICAgICAgICAgICAgICAgICAgICAgc3Bpbl91bmxv Y2soJnNjaGVkLT5qb2JfbGlzdF9sb2NrKTsNCj4+DQo+PiAgICAgIEBAIC0zMjAsNiArMzI3LDcg QEAgc3RhdGljIHZvaWQgZHJtX3NjaGVkX2pvYl90aW1lZG91dChzdHJ1Y3QNCj4+ICAgICAgd29y a19zdHJ1Y3QgKndvcmspDQo+Pg0KPj4gICAgICAgICAgICAgICBzcGluX2xvY2soJnNjaGVkLT5q b2JfbGlzdF9sb2NrKTsNCj4+DQo+PiAgICAgICAgICAgICAgIGRybV9zY2hlZF9zdGFydF90aW1l b3V0KHNjaGVkKTsNCj4+DQo+PiAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZzY2hlZC0+am9i X2xpc3RfbG9jayk7DQo+Pg0KPj4gICAgICArICAgICAgIGF0b21pY19zZXQoJmluX3Jlc2V0LCAw KTsgLy9yZXNldCBpbl9yZXNldCB3aGVuIHRoZSBmaXJzdA0KPj4gICAgICB0aHJlYWQgZmluaXNo ZWQgdGRyDQo+Pg0KPj4gICAgICB9DQo+Pg0KPj4gVGVjaG5pY2FsbHkgbG9va3MgbGlrZSBpdCBz aG91bGQgd29yayBhcyB5b3UgZG9uJ3QgYWNjZXNzIHRoZSBqb2INCj4+IHBvaW50ZXIgYW55IGxv bmdlciBhbmQgc28gbm8gcmlzayB0aGF0IGlmIHNpZ25hbGVkIGl0IHdpbGwgYmUgZnJlZWQNCj4+ IGJ5IGRybV9zY2hlZF9nZXRfY2xlYW51cF9qb2IgYnV0LHlvdSBjYW4ndCBqdXN0IHVzZSBvbmUg Z2xvYmFsDQo+PiB2YXJpYWJsZSBhbiBieSB0aGlzIGJhaWxpbmcgZnJvbSBURFIgd2hlbiBkaWZm ZXJlbnQgZHJpdmVycyBydW4gdGhlaXINCj4+IFREUiB0aHJlYWRzIGluIHBhcmFsbGVsLCBhbmQg ZXZlbiBmb3IgYW1kZ3B1LCBpZiBkZXZpY2VzIGluIGRpZmZlcmVudA0KPj4gWEdNSSBoaXZlcyBv ciAyIGluZGVwZW5kZW50IGRldmljZXMgaW4gbm9uIFhHTUkgc2V0dXAuIFRoZXJlIHNob3VsZA0K Pj4gYmUgZGVmaW5lZCBzb21lIGtpbmQgb2YgR1BVIHJlc2V0IGdyb3VwIHN0cnVjdHVyZSBvbiBk cm1fc2NoZWR1bGVyDQo+PiBsZXZlbCBmb3Igd2hpY2ggdGhpcyB2YXJpYWJsZSB3b3VsZCBiZSB1 c2VkLg0KPj4NCj4+IFAuUyBJIHdvbmRlciB3aHkgd2UgY2FuJ3QganVzdCByZWYtY291bnQgdGhl IGpvYiBzbyB0aGF0IGV2ZW4gaWYNCj4+IGRybV9zY2hlZF9nZXRfY2xlYW51cF9qb2Igd291bGQg ZGVsZXRlIGl0IGJlZm9yZSB3ZSBoYWQgYSBjaGFuY2UgdG8NCj4+IHN0b3AgdGhlIHNjaGVkdWxl ciB0aHJlYWQsIHdlIHdvdWxkbid0IGNyYXNoLiBUaGlzIHdvdWxkIGF2b2lkIGFsbA0KPj4gdGhl IGRhbmNlIHdpdGggZGVsZXRpb24gYW5kIHJlaW5zZXJ0aW9uLg0KPj4NCj4+IEFuZHJleQ0KPj4N Cj4+ICAgICAgVGhhbmtzLA0KPj4NCj4+ICAgICAgSmFjaw0KPj4NCj4+ICAgICAgKkZyb206KiBh bWQtZ2Z4IDxhbWQtZ2Z4LWJvdW5jZXNAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPg0KPj4gICAgICA8 bWFpbHRvOmFtZC1nZngtYm91bmNlc0BsaXN0cy5mcmVlZGVza3RvcC5vcmc+ICpPbiBCZWhhbGYg T2YgKlpoYW5nLA0KPj4gICAgICBKYWNrIChKaWFuKQ0KPj4gICAgICAqU2VudDoqIFdlZG5lc2Rh eSwgTWFyY2ggMTcsIDIwMjEgMTE6MTEgUE0NCj4+ICAgICAgKlRvOiogQ2hyaXN0aWFuIEvDtm5p ZyA8Y2tvZW5pZy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb20+DQo+PiAgICAgIDxtYWlsdG86Y2tv ZW5pZy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb20+Ow0KPj4gICAgICBkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnDQo+PiAgICAgIDxtYWlsdG86ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZz47DQo+PiAgICAgIGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+PiAgICAg IDxtYWlsdG86YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc+OyBLb2VuaWcsIENocmlzdGlh bg0KPj4gICAgICA8Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tPiA8bWFpbHRvOkNocmlzdGlhbi5L b2VuaWdAYW1kLmNvbT47IExpdSwNCj4+ICAgICAgTW9uayA8TW9uay5MaXVAYW1kLmNvbT4gPG1h aWx0bzpNb25rLkxpdUBhbWQuY29tPjsgRGVuZywgRW1pbHkNCj4+ICAgICAgPEVtaWx5LkRlbmdA YW1kLmNvbT4gPG1haWx0bzpFbWlseS5EZW5nQGFtZC5jb20+OyBSb2IgSGVycmluZw0KPj4gICAg ICA8cm9iaEBrZXJuZWwub3JnPiA8bWFpbHRvOnJvYmhAa2VybmVsLm9yZz47IFRvbWV1IFZpem9z bw0KPj4gICAgICA8dG9tZXUudml6b3NvQGNvbGxhYm9yYS5jb20+IDxtYWlsdG86dG9tZXUudml6 b3NvQGNvbGxhYm9yYS5jb20+Ow0KPj4gICAgICBTdGV2ZW4gUHJpY2UgPHN0ZXZlbi5wcmljZUBh cm0uY29tPiA8bWFpbHRvOnN0ZXZlbi5wcmljZUBhcm0uY29tPjsNCj4+ICAgICAgR3JvZHpvdnNr eSwgQW5kcmV5IDxBbmRyZXkuR3JvZHpvdnNreUBhbWQuY29tPg0KPj4gICAgICA8bWFpbHRvOkFu ZHJleS5Hcm9kem92c2t5QGFtZC5jb20+DQo+PiAgICAgICpTdWJqZWN0OiogUmU6IFtQQVRDSCB2 M10gZHJtL3NjaGVkdWxlciByZS1pbnNlcnQgQmFpbGluZyBqb2IgdG8NCj4+ICAgICAgYXZvaWQg bWVtbGVhaw0KPj4NCj4+ICAgICAgW0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEludGVybmFsIERp c3RyaWJ1dGlvbiBPbmx5XQ0KPj4NCj4+ICAgICAgW0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIElu dGVybmFsIERpc3RyaWJ1dGlvbiBPbmx5XQ0KPj4NCj4+ICAgICAgSGnvvIxBbmRyZXnvvIwNCj4+ DQo+PiAgICAgIEdvb2QgY2F0Y2jvvIxJIHdpbGwgZXhwb3JlIHRoaXMgY29ybmVyIGNhc2UgYW5k IGdpdmUgZmVlZGJhY2sNCj4+IHNvb27vvZ4NCj4+DQo+PiAgICAgIEJlc3TvvIwNCj4+DQo+PiAg ICAgIEphY2sNCj4+DQo+Pg0KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+PiAtDQo+PiAtLQ0KPj4NCj4+ICAg ICAgKkZyb206Kkdyb2R6b3Zza3ksIEFuZHJleSA8QW5kcmV5Lkdyb2R6b3Zza3lAYW1kLmNvbQ0K Pj4gICAgICA8bWFpbHRvOkFuZHJleS5Hcm9kem92c2t5QGFtZC5jb20+Pg0KPj4gICAgICAqU2Vu dDoqIFdlZG5lc2RheSwgTWFyY2ggMTcsIDIwMjEgMTA6NTA6NTkgUE0NCj4+ICAgICAgKlRvOiog Q2hyaXN0aWFuIEvDtm5pZyA8Y2tvZW5pZy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb20NCj4+ICAg ICAgPG1haWx0bzpja29lbmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbT4+OyBaaGFuZywgSmFj ayAoSmlhbikNCj4+ICAgICAgPEphY2suWmhhbmcxQGFtZC5jb20gPG1haWx0bzpKYWNrLlpoYW5n MUBhbWQuY29tPj47DQo+PiAgICAgIGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4+ ICAgICAgPG1haWx0bzpkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPg0KPj4gICAgICA8 ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPj4gICAgICA8bWFpbHRvOmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmc+PjsNCj4+ICAgICAgYW1kLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcgPG1haWx0bzphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4NCj4+ICAgICAg PGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+PiAgICAgIDxtYWlsdG86YW1kLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmc+PjsgS29lbmlnLCBDaHJpc3RpYW4NCj4+ICAgICAgPENocmlz dGlhbi5Lb2VuaWdAYW1kLmNvbSA8bWFpbHRvOkNocmlzdGlhbi5Lb2VuaWdAYW1kLmNvbT4+OyBM aXUsDQo+PiAgICAgIE1vbmsgPE1vbmsuTGl1QGFtZC5jb20gPG1haWx0bzpNb25rLkxpdUBhbWQu Y29tPj47IERlbmcsIEVtaWx5DQo+PiAgICAgIDxFbWlseS5EZW5nQGFtZC5jb20gPG1haWx0bzpF bWlseS5EZW5nQGFtZC5jb20+PjsgUm9iIEhlcnJpbmcNCj4+ICAgICAgPHJvYmhAa2VybmVsLm9y ZyA8bWFpbHRvOnJvYmhAa2VybmVsLm9yZz4+OyBUb21ldSBWaXpvc28NCj4+ICAgICAgPHRvbWV1 LnZpem9zb0Bjb2xsYWJvcmEuY29tIDxtYWlsdG86dG9tZXUudml6b3NvQGNvbGxhYm9yYS5jb20+ PjsNCj4+ICAgICAgU3RldmVuIFByaWNlIDxzdGV2ZW4ucHJpY2VAYXJtLmNvbSA8bWFpbHRvOnN0 ZXZlbi5wcmljZUBhcm0uY29tPj4NCj4+ICAgICAgKlN1YmplY3Q6KiBSZTogW1BBVENIIHYzXSBk cm0vc2NoZWR1bGVyIHJlLWluc2VydCBCYWlsaW5nIGpvYiB0bw0KPj4gICAgICBhdm9pZCBtZW1s ZWFrDQo+Pg0KPj4gICAgICBJIGFjdHVhbGx5IGhhdmUgYSByYWNlIGNvbmRpdGlvbiBjb25jZXJu IGhlcmUgLSBzZWUgYmVsbG93IC0NCj4+DQo+PiAgICAgIE9uIDIwMjEtMDMtMTcgMzo0MyBhLm0u LCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOg0KPj4gICAgICAgPiBJIHdhcyBob3BpbmcgQW5kcmV5 IHdvdWxkIHRha2UgYSBsb29rIHNpbmNlIEknbSByZWFsbHkgYnVzeSB3aXRoDQo+PiAgICAgIG90 aGVyDQo+PiAgICAgICA+IHdvcmsgcmlnaHQgbm93Lg0KPj4gICAgICAgPg0KPj4gICAgICAgPiBS ZWdhcmRzLA0KPj4gICAgICAgPiBDaHJpc3RpYW4uDQo+PiAgICAgICA+DQo+PiAgICAgICA+IEFt IDE3LjAzLjIxIHVtIDA3OjQ2IHNjaHJpZWIgWmhhbmcsIEphY2sgKEppYW4pOg0KPj4gICAgICAg Pj4gSGksIEFuZHJleS9Dcmhpc3RpYW4gYW5kIFRlYW0sDQo+PiAgICAgICA+Pg0KPj4gICAgICAg Pj4gSSBkaWRuJ3QgcmVjZWl2ZSB0aGUgcmV2aWV3ZXIncyBtZXNzYWdlIGZyb20gbWFpbnRhaW5l cnMgb24NCj4+ICAgICAgcGFuZnJvc3QNCj4+ICAgICAgID4+IGRyaXZlciBmb3Igc2V2ZXJhbCBk YXlzLg0KPj4gICAgICAgPj4gRHVlIHRvIHRoaXMgcGF0Y2ggaXMgdXJnZW50IGZvciBteSBjdXJy ZW50IHdvcmtpbmcgcHJvamVjdC4NCj4+ICAgICAgID4+IFdvdWxkIHlvdSBwbGVhc2UgaGVscCB0 byBnaXZlIHNvbWUgcmV2aWV3IGlkZWFzPw0KPj4gICAgICAgPj4NCj4+ICAgICAgID4+IE1hbnkg VGhhbmtzLA0KPj4gICAgICAgPj4gSmFjaw0KPj4gICAgICAgPj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4+ICAgICAgID4+IEZyb206IFpoYW5nLCBKYWNrIChKaWFuKQ0KPj4gICAgICAg Pj4gU2VudDogVHVlc2RheSwgTWFyY2ggMTYsIDIwMjEgMzoyMCBQTQ0KPj4gICAgICAgPj4gVG86 IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4+ICAgICAgPG1haWx0bzpkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPjsNCj4+ICAgICAgYW1kLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcgPG1haWx0bzphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZz47DQo+PiAgICAg ICA+PiBLb2VuaWcsIENocmlzdGlhbiA8Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tDQo+PiAgICAg IDxtYWlsdG86Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tPj47IEdyb2R6b3Zza3ksIEFuZHJleQ0K Pj4gICAgICAgPj4gPEFuZHJleS5Hcm9kem92c2t5QGFtZC5jb20gPG1haWx0bzpBbmRyZXkuR3Jv ZHpvdnNreUBhbWQuY29tPj47DQo+PiAgICAgIExpdSwgTW9uayA8TW9uay5MaXVAYW1kLmNvbSA8 bWFpbHRvOk1vbmsuTGl1QGFtZC5jb20+PjsgRGVuZywNCj4+ICAgICAgID4+IEVtaWx5IDxFbWls eS5EZW5nQGFtZC5jb20gPG1haWx0bzpFbWlseS5EZW5nQGFtZC5jb20+PjsgUm9iDQo+PiAgICAg IEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZyA8bWFpbHRvOnJvYmhAa2VybmVsLm9yZz4+OyBUb21l dQ0KPj4gICAgICAgPj4gVml6b3NvIDx0b21ldS52aXpvc29AY29sbGFib3JhLmNvbQ0KPj4gICAg ICA8bWFpbHRvOnRvbWV1LnZpem9zb0Bjb2xsYWJvcmEuY29tPj47IFN0ZXZlbiBQcmljZQ0KPj4g ICAgICA8c3RldmVuLnByaWNlQGFybS5jb20gPG1haWx0bzpzdGV2ZW4ucHJpY2VAYXJtLmNvbT4+ DQo+PiAgICAgICA+PiBTdWJqZWN0OiBSRTogW1BBVENIIHYzXSBkcm0vc2NoZWR1bGVyIHJlLWlu c2VydCBCYWlsaW5nIGpvYiB0bw0KPj4gICAgICBhdm9pZA0KPj4gICAgICAgPj4gbWVtbGVhaw0K Pj4gICAgICAgPj4NCj4+ICAgICAgID4+IFtBTUQgUHVibGljIFVzZV0NCj4+ICAgICAgID4+DQo+ PiAgICAgICA+PiBQaW5nDQo+PiAgICAgICA+Pg0KPj4gICAgICAgPj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4+ICAgICAgID4+IEZyb206IFpoYW5nLCBKYWNrIChKaWFuKQ0KPj4gICAg ICAgPj4gU2VudDogTW9uZGF5LCBNYXJjaCAxNSwgMjAyMSAxOjI0IFBNDQo+PiAgICAgICA+PiBU bzogSmFjayBaaGFuZyA8SmFjay5aaGFuZzFAYW1kLmNvbSA8bWFpbHRvOkphY2suWmhhbmcxQGFt ZC5jb20+PjsNCj4+ICAgICAgID4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4+ ICAgICAgPG1haWx0bzpkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPjsNCj4+ICAgICAg YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcgPG1haWx0bzphbWQtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZz47DQo+PiAgICAgICA+PiBLb2VuaWcsIENocmlzdGlhbiA8Q2hyaXN0aWFuLktv ZW5pZ0BhbWQuY29tDQo+PiAgICAgIDxtYWlsdG86Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tPj47 IEdyb2R6b3Zza3ksIEFuZHJleQ0KPj4gICAgICAgPj4gPEFuZHJleS5Hcm9kem92c2t5QGFtZC5j b20gPG1haWx0bzpBbmRyZXkuR3JvZHpvdnNreUBhbWQuY29tPj47DQo+PiAgICAgIExpdSwgTW9u ayA8TW9uay5MaXVAYW1kLmNvbSA8bWFpbHRvOk1vbmsuTGl1QGFtZC5jb20+PjsgRGVuZywNCj4+ ICAgICAgID4+IEVtaWx5IDxFbWlseS5EZW5nQGFtZC5jb20gPG1haWx0bzpFbWlseS5EZW5nQGFt ZC5jb20+PjsgUm9iDQo+PiAgICAgIEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZyA8bWFpbHRvOnJv YmhAa2VybmVsLm9yZz4+OyBUb21ldQ0KPj4gICAgICAgPj4gVml6b3NvIDx0b21ldS52aXpvc29A Y29sbGFib3JhLmNvbQ0KPj4gICAgICA8bWFpbHRvOnRvbWV1LnZpem9zb0Bjb2xsYWJvcmEuY29t Pj47IFN0ZXZlbiBQcmljZQ0KPj4gICAgICA8c3RldmVuLnByaWNlQGFybS5jb20gPG1haWx0bzpz dGV2ZW4ucHJpY2VAYXJtLmNvbT4+DQo+PiAgICAgICA+PiBTdWJqZWN0OiBSRTogW1BBVENIIHYz XSBkcm0vc2NoZWR1bGVyIHJlLWluc2VydCBCYWlsaW5nIGpvYiB0bw0KPj4gICAgICBhdm9pZA0K Pj4gICAgICAgPj4gbWVtbGVhaw0KPj4gICAgICAgPj4NCj4+ICAgICAgID4+IFtBTUQgUHVibGlj IFVzZV0NCj4+ICAgICAgID4+DQo+PiAgICAgICA+PiBIaSwgUm9iL1RvbWV1L1N0ZXZlbiwNCj4+ ICAgICAgID4+DQo+PiAgICAgICA+PiBXb3VsZCB5b3UgcGxlYXNlIGhlbHAgdG8gcmV2aWV3IHRo aXMgcGF0Y2ggZm9yIHBhbmZyb3N0IGRyaXZlcj8NCj4+ICAgICAgID4+DQo+PiAgICAgICA+PiBU aGFua3MsDQo+PiAgICAgICA+PiBKYWNrIFpoYW5nDQo+PiAgICAgICA+Pg0KPj4gICAgICAgPj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+ICAgICAgID4+IEZyb206IEphY2sgWmhhbmcg PEphY2suWmhhbmcxQGFtZC5jb20gPG1haWx0bzpKYWNrLlpoYW5nMUBhbWQuY29tPj4NCj4+ICAg ICAgID4+IFNlbnQ6IE1vbmRheSwgTWFyY2ggMTUsIDIwMjEgMToyMSBQTQ0KPj4gICAgICAgPj4g VG86IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4+ICAgICAgPG1haWx0bzpkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPjsNCj4+ICAgICAgYW1kLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcgPG1haWx0bzphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZz47DQo+PiAg ICAgICA+PiBLb2VuaWcsIENocmlzdGlhbiA8Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tDQo+PiAg ICAgIDxtYWlsdG86Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tPj47IEdyb2R6b3Zza3ksIEFuZHJl eQ0KPj4gICAgICAgPj4gPEFuZHJleS5Hcm9kem92c2t5QGFtZC5jb20gPG1haWx0bzpBbmRyZXku R3JvZHpvdnNreUBhbWQuY29tPj47DQo+PiAgICAgIExpdSwgTW9uayA8TW9uay5MaXVAYW1kLmNv bSA8bWFpbHRvOk1vbmsuTGl1QGFtZC5jb20+PjsgRGVuZywNCj4+ICAgICAgID4+IEVtaWx5IDxF bWlseS5EZW5nQGFtZC5jb20gPG1haWx0bzpFbWlseS5EZW5nQGFtZC5jb20+Pg0KPj4gICAgICAg Pj4gQ2M6IFpoYW5nLCBKYWNrIChKaWFuKSA8SmFjay5aaGFuZzFAYW1kLmNvbQ0KPj4gICAgICA8 bWFpbHRvOkphY2suWmhhbmcxQGFtZC5jb20+Pg0KPj4gICAgICAgPj4gU3ViamVjdDogW1BBVENI IHYzXSBkcm0vc2NoZWR1bGVyIHJlLWluc2VydCBCYWlsaW5nIGpvYiB0byBhdm9pZA0KPj4gICAg ICBtZW1sZWFrDQo+PiAgICAgICA+Pg0KPj4gICAgICAgPj4gcmUtaW5zZXJ0IEJhaWxpbmcgam9i cyB0byBhdm9pZCBtZW1vcnkgbGVhay4NCj4+ICAgICAgID4+DQo+PiAgICAgICA+PiBWMjogbW92 ZSByZS1pbnNlcnQgc3RlcCB0byBkcm0vc2NoZWR1bGVyIGxvZ2ljDQo+PiAgICAgICA+PiBWMzog YWRkIHBhbmZyb3N0J3MgcmV0dXJuIHZhbHVlIGZvciBiYWlsaW5nIGpvYnMgaW4gY2FzZSBpdCBo aXRzDQo+PiAgICAgIHRoZQ0KPj4gICAgICAgPj4gbWVtbGVhayBpc3N1ZS4NCj4+ICAgICAgID4+ DQo+PiAgICAgICA+PiBTaWduZWQtb2ZmLWJ5OiBKYWNrIFpoYW5nIDxKYWNrLlpoYW5nMUBhbWQu Y29tDQo+PiAgICAgIDxtYWlsdG86SmFjay5aaGFuZzFAYW1kLmNvbT4+DQo+PiAgICAgICA+PiAt LS0NCj4+ICAgICAgID4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rldmlj ZS5jIHwgNCArKystDQo+PiAgICAgICA+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9qb2IuYyAgICB8IDggKysrKysrLS0NCj4+ICAgICAgID4+ICAgZHJpdmVycy9ncHUvZHJt L3BhbmZyb3N0L3BhbmZyb3N0X2pvYi5jICAgIHwgNCArKy0tDQo+PiAgICAgICA+PiAgIGRyaXZl cnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5jICAgICB8IDggKysrKysrKy0NCj4+ICAg ICAgID4+ICAgaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oICAgICAgICAgICAgICAgIHwgMSAr DQo+PiAgICAgICA+PiAgIDUgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgNiBkZWxl dGlvbnMoLSkNCj4+ICAgICAgID4+DQo+PiAgICAgICA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jDQo+PiAgICAgICA+PiBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYw0KPj4gICAgICAgPj4gaW5kZXggNzli OWNjNzM3NjNmLi44NjQ2M2IwZjkzNmUgMTAwNjQ0DQo+PiAgICAgICA+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMNCj4+ICAgICAgID4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYw0KPj4gICAgICAgPj4gQEAg LTQ4MTUsOCArNDgxNSwxMCBAQCBpbnQgYW1kZ3B1X2RldmljZV9ncHVfcmVjb3ZlcihzdHJ1Y3QN Cj4+ICAgICAgID4+IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+PiAgICAgICA+PiAgICAgICAgICAg ICAgICAgICAgICAgam9iID8gam9iLT5iYXNlLmlkIDogLTEpOw0KPj4gICAgICAgPj4gICAgICAg ICAgICAgLyogZXZlbiB3ZSBza2lwcGVkIHRoaXMgcmVzZXQsIHN0aWxsIG5lZWQgdG8gc2V0IHRo ZQ0KPj4gICAgICBqb2INCj4+ICAgICAgID4+IHRvIGd1aWx0eSAqLw0KPj4gICAgICAgPj4gLSAg ICAgICAgaWYgKGpvYikNCj4+ICAgICAgID4+ICsgICAgICAgIGlmIChqb2IpIHsNCj4+ICAgICAg ID4+ICAgICAgICAgICAgICAgZHJtX3NjaGVkX2luY3JlYXNlX2thcm1hKCZqb2ItPmJhc2UpOw0K Pj4gICAgICAgPj4gKyAgICAgICAgICAgIHIgPSBEUk1fR1BVX1NDSEVEX1NUQVRfQkFJTElORzsN Cj4+ICAgICAgID4+ICsgICAgICAgIH0NCj4+ICAgICAgID4+ICAgICAgICAgICBnb3RvIHNraXBf cmVjb3Zlcnk7DQo+PiAgICAgICA+PiAgICAgICB9DQo+PiAgICAgICA+PiAgIGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfam9iLmMNCj4+ICAgICAgID4+IGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2pvYi5jDQo+PiAgICAgICA+PiBpbmRl eCA3NTliMzQ3OTkyMjEuLjQxMzkwYmRhY2Q5ZSAxMDA2NDQNCj4+ICAgICAgID4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9qb2IuYw0KPj4gICAgICAgPj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2pvYi5jDQo+PiAgICAgICA+PiBAQCAt MzQsNiArMzQsNyBAQCBzdGF0aWMgZW51bSBkcm1fZ3B1X3NjaGVkX3N0YXQNCj4+ICAgICAgID4+ IGFtZGdwdV9qb2JfdGltZWRvdXQoc3RydWN0IGRybV9zY2hlZF9qb2IgKnNfam9iKQ0KPj4gICAg ICAgPj4gICAgICAgc3RydWN0IGFtZGdwdV9qb2IgKmpvYiA9IHRvX2FtZGdwdV9qb2Ioc19qb2Ip Ow0KPj4gICAgICAgPj4gICAgICAgc3RydWN0IGFtZGdwdV90YXNrX2luZm8gdGk7DQo+PiAgICAg ICA+PiAgICAgICBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7DQo+PiAg ICAgICA+PiArICAgIGludCByZXQ7DQo+PiAgICAgICA+PiAgICAgICAgIG1lbXNldCgmdGksIDAs IHNpemVvZihzdHJ1Y3QgYW1kZ3B1X3Rhc2tfaW5mbykpOw0KPj4gICAgICAgPj4gICBAQCAtNTIs OCArNTMsMTEgQEAgc3RhdGljIGVudW0gZHJtX2dwdV9zY2hlZF9zdGF0DQo+PiAgICAgICA+PiBh bWRncHVfam9iX3RpbWVkb3V0KHN0cnVjdCBkcm1fc2NoZWRfam9iICpzX2pvYikNCj4+ICAgICAg ID4+ICAgICAgICAgICAgIHRpLnByb2Nlc3NfbmFtZSwgdGkudGdpZCwgdGkudGFza19uYW1lLCB0 aS5waWQpOw0KPj4gICAgICAgPj4gICAgICAgICBpZiAoYW1kZ3B1X2RldmljZV9zaG91bGRfcmVj b3Zlcl9ncHUocmluZy0+YWRldikpIHsNCj4+ICAgICAgID4+IC0gICAgICAgIGFtZGdwdV9kZXZp Y2VfZ3B1X3JlY292ZXIocmluZy0+YWRldiwgam9iKTsNCj4+ICAgICAgID4+IC0gICAgICAgIHJl dHVybiBEUk1fR1BVX1NDSEVEX1NUQVRfTk9NSU5BTDsNCj4+ICAgICAgID4+ICsgICAgICAgIHJl dCA9IGFtZGdwdV9kZXZpY2VfZ3B1X3JlY292ZXIocmluZy0+YWRldiwgam9iKTsNCj4+ICAgICAg ID4+ICsgICAgICAgIGlmIChyZXQgPT0gRFJNX0dQVV9TQ0hFRF9TVEFUX0JBSUxJTkcpDQo+PiAg ICAgICA+PiArICAgICAgICAgICAgcmV0dXJuIERSTV9HUFVfU0NIRURfU1RBVF9CQUlMSU5HOw0K Pj4gICAgICAgPj4gKyAgICAgICAgZWxzZQ0KPj4gICAgICAgPj4gKyAgICAgICAgICAgIHJldHVy biBEUk1fR1BVX1NDSEVEX1NUQVRfTk9NSU5BTDsNCj4+ICAgICAgID4+ICAgICAgIH0gZWxzZSB7 DQo+PiAgICAgICA+PiAgICAgICAgICAgZHJtX3NjaGVkX3N1c3BlbmRfdGltZW91dCgmcmluZy0+ c2NoZWQpOw0KPj4gICAgICAgPj4gICAgICAgICAgIGlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikp DQo+PiAgICAgICA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZy b3N0X2pvYi5jDQo+PiAgICAgICA+PiBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9z dF9qb2IuYw0KPj4gICAgICAgPj4gaW5kZXggNjAwM2NmZWIxMzIyLi5lMmNiNGYzMmRhZTEgMTAw NjQ0DQo+PiAgICAgICA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3Rf am9iLmMNCj4+ICAgICAgID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9z dF9qb2IuYw0KPj4gICAgICAgPj4gQEAgLTQ0NCw3ICs0NDQsNyBAQCBzdGF0aWMgZW51bSBkcm1f Z3B1X3NjaGVkX3N0YXQNCj4+ICAgICAgID4+IHBhbmZyb3N0X2pvYl90aW1lZG91dChzdHJ1Y3Qg ZHJtX3NjaGVkX2pvYg0KPj4gICAgICAgPj4gICAgICAgICogc3B1cmlvdXMuIEJhaWwgb3V0Lg0K Pj4gICAgICAgPj4gICAgICAgICovDQo+PiAgICAgICA+PiAgICAgICBpZiAoZG1hX2ZlbmNlX2lz X3NpZ25hbGVkKGpvYi0+ZG9uZV9mZW5jZSkpDQo+PiAgICAgICA+PiAtICAgICAgICByZXR1cm4g RFJNX0dQVV9TQ0hFRF9TVEFUX05PTUlOQUw7DQo+PiAgICAgICA+PiArICAgICAgICByZXR1cm4g RFJNX0dQVV9TQ0hFRF9TVEFUX0JBSUxJTkc7DQo+PiAgICAgICA+PiAgICAgICAgIGRldl9lcnIo cGZkZXYtPmRldiwgImdwdSBzY2hlZCB0aW1lb3V0LCBqcz0lZCwgY29uZmlnPTB4JXgsDQo+PiAg ICAgICA+PiBzdGF0dXM9MHgleCwgaGVhZD0weCV4LCB0YWlsPTB4JXgsIHNjaGVkX2pvYj0lcCIs DQo+PiAgICAgICA+PiAgICAgICAgICAganMsDQo+PiAgICAgICA+PiBAQCAtNDU2LDcgKzQ1Niw3 IEBAIHN0YXRpYyBlbnVtIGRybV9ncHVfc2NoZWRfc3RhdA0KPj4gICAgICAgPj4gcGFuZnJvc3Rf am9iX3RpbWVkb3V0KHN0cnVjdCBkcm1fc2NoZWRfam9iDQo+PiAgICAgICA+PiAgICAgICAgIC8q IFNjaGVkdWxlciBpcyBhbHJlYWR5IHN0b3BwZWQsIG5vdGhpbmcgdG8gZG8uICovDQo+PiAgICAg ICA+PiAgICAgICBpZiAoIXBhbmZyb3N0X3NjaGVkdWxlcl9zdG9wKCZwZmRldi0+anMtPnF1ZXVl W2pzXSwNCj4+ICAgICAgc2NoZWRfam9iKSkNCj4+ICAgICAgID4+IC0gICAgICAgIHJldHVybiBE Uk1fR1BVX1NDSEVEX1NUQVRfTk9NSU5BTDsNCj4+ICAgICAgID4+ICsgICAgICAgIHJldHVybiBE Uk1fR1BVX1NDSEVEX1NUQVRfQkFJTElORzsNCj4+ICAgICAgID4+ICAgICAgICAgLyogU2NoZWR1 bGUgYSByZXNldCBpZiB0aGVyZSdzIG5vIHJlc2V0IGluIHByb2dyZXNzLiAqLw0KPj4gICAgICAg Pj4gICAgICAgaWYgKCFhdG9taWNfeGNoZygmcGZkZXYtPnJlc2V0LnBlbmRpbmcsIDEpKSBkaWZm IC0tZ2l0DQo+PiAgICAgICA+PiBhL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFp bi5jDQo+PiAgICAgICA+PiBiL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5j DQo+PiAgICAgICA+PiBpbmRleCA5MmQ4ZGUyNGQwYTEuLmE0NGY2MjFmYjVjNCAxMDA2NDQNCj4+ ICAgICAgID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5jDQo+ PiAgICAgICA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX21haW4uYw0K Pj4gICAgICAgPj4gQEAgLTMxNCw2ICszMTQsNyBAQCBzdGF0aWMgdm9pZCBkcm1fc2NoZWRfam9i X3RpbWVkb3V0KHN0cnVjdA0KPj4gICAgICAgPj4gd29ya19zdHJ1Y3QgKndvcmspICB7DQo+PiAg ICAgICA+PiAgICAgICBzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkOw0KPj4gICAgICAg Pj4gICAgICAgc3RydWN0IGRybV9zY2hlZF9qb2IgKmpvYjsNCj4+ICAgICAgID4+ICsgICAgaW50 IHJldDsNCj4+ICAgICAgID4+ICAgICAgICAgc2NoZWQgPSBjb250YWluZXJfb2Yod29yaywgc3Ry dWN0IGRybV9ncHVfc2NoZWR1bGVyLA0KPj4gICAgICAgPj4gd29ya190ZHIud29yayk7DQo+PiAg ICAgICA+PiAgIEBAIC0zMzEsOCArMzMyLDEzIEBAIHN0YXRpYyB2b2lkIGRybV9zY2hlZF9qb2Jf dGltZWRvdXQoc3RydWN0DQo+PiAgICAgICA+PiB3b3JrX3N0cnVjdCAqd29yaykNCj4+ICAgICAg ID4+ICAgICAgICAgICBsaXN0X2RlbF9pbml0KCZqb2ItPmxpc3QpOw0KPj4gICAgICAgPj4gICAg ICAgICAgIHNwaW5fdW5sb2NrKCZzY2hlZC0+am9iX2xpc3RfbG9jayk7DQo+PiAgICAgICA+PiAg IC0gICAgICAgIGpvYi0+c2NoZWQtPm9wcy0+dGltZWRvdXRfam9iKGpvYik7DQo+PiAgICAgICA+ PiArICAgICAgICByZXQgPSBqb2ItPnNjaGVkLT5vcHMtPnRpbWVkb3V0X2pvYihqb2IpOw0KPj4g ICAgICAgPj4gICArICAgICAgICBpZiAocmV0ID09IERSTV9HUFVfU0NIRURfU1RBVF9CQUlMSU5H KSB7DQo+PiAgICAgICA+PiArICAgICAgICAgICAgc3Bpbl9sb2NrKCZzY2hlZC0+am9iX2xpc3Rf bG9jayk7DQo+PiAgICAgICA+PiArICAgICAgICAgICAgbGlzdF9hZGQoJmpvYi0+bm9kZSwgJnNj aGVkLT5yaW5nX21pcnJvcl9saXN0KTsNCj4+ICAgICAgID4+ICsgICAgICAgICAgICBzcGluX3Vu bG9jaygmc2NoZWQtPmpvYl9saXN0X2xvY2spOw0KPj4gICAgICAgPj4gKyAgICAgICAgfQ0KPj4N Cj4+DQo+PiAgICAgIEF0IHRoaXMgcG9pbnQgd2UgZG9uJ3QgaG9sZCBHUFUgcmVzZXQgbG9ja3Mg YW55bW9yZSwgYW5kIHNvIHdlIGNvdWxkDQo+PiAgICAgIGJlIHJhY2luZyBhZ2FpbnN0IGFub3Ro ZXIgVERSIHRocmVhZCBmcm9tIGFub3RoZXIgc2NoZWR1bGVyIHJpbmcgb2YNCj4+ICAgICAgc2Ft ZQ0KPj4gICAgICBkZXZpY2UNCj4+ICAgICAgb3IgYW5vdGhlciBYR01JIGhpdmUgbWVtYmVyLiBU aGUgb3RoZXIgdGhyZWFkIG1pZ2h0IGJlIGluIHRoZSBtaWRkbGUgb2YNCj4+ICAgICAgbHVja2xl c3MNCj4+ICAgICAgaXRlcmF0aW9uIG9mIG1pcnJvciBsaXN0IChkcm1fc2NoZWRfc3RvcCwgZHJt X3NjaGVkX3N0YXJ0IGFuZA0KPj4gICAgICBkcm1fc2NoZWRfcmVzdWJtaXQpDQo+PiAgICAgIGFu ZCBzbyBsb2NraW5nIGpvYl9saXN0X2xvY2sgd2lsbCBub3QgaGVscC4gTG9va3MgbGlrZSBpdCdz IHJlcXVpcmVkIHRvDQo+PiAgICAgIHRha2UgYWxsIEdQVSByZXN0IGxvY2tzDQo+PiAgICAgIGhl cmUuDQo+Pg0KPj4gICAgICBBbmRyZXkNCj4+DQo+Pg0KPj4gICAgICAgPj4gICAgICAgICAgIC8q DQo+PiAgICAgICA+PiAgICAgICAgICAgICogR3VpbHR5IGpvYiBkaWQgY29tcGxldGUgYW5kIGhl bmNlIG5lZWRzIHRvIGJlIG1hbnVhbGx5DQo+PiAgICAgICA+PiByZW1vdmVkDQo+PiAgICAgICA+ PiAgICAgICAgICAgICogU2VlIGRybV9zY2hlZF9zdG9wIGRvYy4NCj4+ICAgICAgID4+IGRpZmYg LS1naXQgYS9pbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmgNCj4+ICAgICAgID4+IGIvaW5jbHVk ZS9kcm0vZ3B1X3NjaGVkdWxlci5oIGluZGV4IDRlYTg2MDZkOTFmZS4uODA5M2FjMjQyN2VmDQo+ PiAgICAgIDEwMDY0NA0KPj4gICAgICAgPj4gLS0tIGEvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxl ci5oDQo+PiAgICAgICA+PiArKysgYi9pbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmgNCj4+ICAg ICAgID4+IEBAIC0yMTAsNiArMjEwLDcgQEAgZW51bSBkcm1fZ3B1X3NjaGVkX3N0YXQgew0KPj4g ICAgICAgPj4gICAgICAgRFJNX0dQVV9TQ0hFRF9TVEFUX05PTkUsIC8qIFJlc2VydmUgMCAqLw0K Pj4gICAgICAgPj4gICAgICAgRFJNX0dQVV9TQ0hFRF9TVEFUX05PTUlOQUwsDQo+PiAgICAgICA+ PiAgICAgICBEUk1fR1BVX1NDSEVEX1NUQVRfRU5PREVWLA0KPj4gICAgICAgPj4gKyAgICBEUk1f R1BVX1NDSEVEX1NUQVRfQkFJTElORywNCj4+ICAgICAgID4+ICAgfTsNCj4+ICAgICAgID4+ICAg ICAvKioNCj4+ICAgICAgID4+IC0tDQo+PiAgICAgICA+PiAyLjI1LjENCj4+ICAgICAgID4+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+PiAgICAgICA+ PiBhbWQtZ2Z4IG1haWxpbmcgbGlzdA0KPj4gICAgICAgPj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcgPG1haWx0bzphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4NCj4+ICAgICAg ID4+DQo+Pg0KPj4gaHR0cHM6Ly9uYW0xMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNv bS8/dXJsPWh0dHBzJTNBJTJGJTJGbGlzDQo+PiB0cy5mcmVlZGVza3RvcC5vcmclMkZtYWlsbWFu JTJGbGlzdGluZm8lMkZhbWQtZ2Z4JmFtcDtkYXRhPTA0JTdDMDElN0MNCj4+IEFuZHJleS5Hcm9k em92c2t5JTQwYW1kLmNvbSU3Q2U5MGYzMGFmMGY0MzQ0NGM2YWVhMDhkOGU5MTg2MGM0JTdDM2Rk OA0KPj4gOTYxZmU0ODg0ZTYwOGUxMWE4MmQ5OTRlMTgzZCU3QzAlN0MwJTdDNjM3NTE1NjM4MjEz MTgwNDEzJTdDVW5rbm93biU3DQo+PiBDVFdGcGJHWnNiM2Q4ZXlKV0lqb2lNQzR3TGpBd01EQWlM Q0pRSWpvaVYybHVNeklpTENKQlRpSTZJazFoYVd3aUxDSlgNCj4+IFZDSTZNbjAlM0QlN0MxMDAw JmFtcDtzZGF0YT1ObkxxdHolMkJaOCUyQndlWXdDcVJpbnJma3FtaHppYk5BRjZDWVNkVg0KPj4g cUw2eGkwJTNEJmFtcDtyZXNlcnZlZD0wDQo+Pg0KPj4gPGh0dHBzOi8vbmFtMTEuc2FmZWxpbmtz LnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmxpDQo+PiBzDQo+PiB0 cy5mcmVlZGVza3RvcC5vcmclMkZtYWlsbWFuJTJGbGlzdGluZm8lMkZhbWQtZ2Z4JmRhdGE9MDQl N0MwMSU3Q0phY2suDQo+PiBaaGFuZzElNDBhbWQuY29tJTdDOTViMmZmMjA2ZWU3NGJiZTUyMGEw OGQ4ZTk1NmY1ZGQlN0MzZGQ4OTYxZmU0ODg0ZTYNCj4+IDANCj4+IDhlMTFhODJkOTk0ZTE4M2Ql N0MwJTdDMCU3QzYzNzUxNTkwNzAwMDg4ODkzOSU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZA0KPj4g OA0KPj4gZXlKV0lqb2lNQzR3TGpBd01EQWlMQ0pRSWpvaVYybHVNeklpTENKQlRpSTZJazFoYVd3 aUxDSlhWQ0k2TW4wJTNEJTdDDQo+PiAyDQo+PiAwMDAmc2RhdGE9QkdvU2ZPWWlEYXI4U3JwTXgl MkJzT01XcGFNcjg3YnhCJTJGOXljdTBGaGhpcEElM0QmcmVzZXJ2ZWQNCj4+ID0NCj4+IDA+DQo+ Pg0KPj4gICAgICAgPj4NCj4+ICAgICAgID4NCj4+DQoNCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vYW1kLWdmeAo=