Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp2651917pxb; Fri, 5 Nov 2021 02:16:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxLj2u0kwUHZYGu5PVEwWjXUonqCVgehUSwDNJGKASdli4FCvNTuB/n2xwMMvwp+uvgdVtd X-Received: by 2002:a05:6e02:1a88:: with SMTP id k8mr19218442ilv.118.1636103795119; Fri, 05 Nov 2021 02:16:35 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1636103795; cv=pass; d=google.com; s=arc-20160816; b=sYNnYSg/8GGtVcZ6us4ecwarO4X5W2uDJeo65u4yOu+rTZgm7IfIgLyRqPBkl+Nz9v NfapdAOtmh4MfR8grHEyJIgLBD/O2H6omzPJbV4Eale1SWcyhRxEAiTTOdgvwcWPnG41 DRaWjslCc8qTBTsiDbDwsoUViiB262IcvMUaC0+tkYp/UkLKm6hc9GvDr1uBLav+znvF 6ttxPVM7fcEY0+zv2zeE9PMjRBZ9HSO42dp6T7/IoSEJvdPi4cEGm0iONYareknrQpKl 9wKG5+VE1/xp2gc9+RrHqKINHteZTXkdJ4J0CQLYDiG/HCVEXKtlckbFNToJNwx9soff plHA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature:ironport-sdr:dkim-signature; bh=E1kWJslIsKba4OxDL+bT0BEDH8gcijmbMXbansQQPYU=; b=ZDRINjffnLE30U/Nr8wDNOMb6AyafhkmO+0Bdi80U8PlN75eQsvZoTcRCSDZ10xjMh 3rGv4KF2ZMoYpUKo3xtOeyJ2+ohrY0ByiY24t+QbYrl66RVcMjkTSbOA1F2eCCHlxiO+ 39y+s7zSJqmwdfeY1+EN1A6EMVdcdwmibr/ZnBmlIaZQd7Ua4/HWayFjK7ax5IoB4Jtq wK8J2M9NPvgS0uDGcEjraacpQaejmagc5M/M2pIky6pgjzJjir7tMTz6rfai5DTe3Bkz qTh4PHBELV0SWfL3Q6WZftietrQaEUG8TsPUq1DWXIB7rkNZbzSACWOsqvbuJpr4+vbA v/CA== ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@microchip.com header.s=mchp header.b=XoEF3Q20; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=eqjMCrzc; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f3si4186526ilu.70.2021.11.05.02.16.20; Fri, 05 Nov 2021 02:16:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=fail header.i=@microchip.com header.s=mchp header.b=XoEF3Q20; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=eqjMCrzc; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232094AbhKEJQH (ORCPT + 99 others); Fri, 5 Nov 2021 05:16:07 -0400 Received: from esa.microchip.iphmx.com ([68.232.153.233]:41173 "EHLO esa.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229482AbhKEJQG (ORCPT ); Fri, 5 Nov 2021 05:16:06 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1636103607; x=1667639607; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=E1kWJslIsKba4OxDL+bT0BEDH8gcijmbMXbansQQPYU=; b=XoEF3Q20zsVZJr9BLN58ERNQyMEWJk5Y2u7YOjnfoVIIVKPVQv6YrwhL Y3+rHd2qHQ/W64vW2zQYCsH7/6LDOhzly4oH/u9EmmK2l3gekfE6zFkS1 aGyiDURGlcfQ95Bsvj8c1NebxEplnB1Tfau32PHO9IsK0EdyRskqZ+Ll5 kJeJeS5ZVzJipbeFZXAJ4zmX6i1LQz2jLsAhvHRzgn4k6fgp8BdU18dlL LxHOekW/wwb0OrDF1vJlFzBGT/mtA859qZac5Fmc3AtPOzg8kjOzcFK+Q Bt6i8U6tdHEYdGIr+DpjbaTmdl9s9wAblFWVc2d+M/pYIeSa8DdaV03WH A==; IronPort-SDR: gni2ONiRv7zMUxv++ubk1ROcmvw/M6hqeAhA2GSDCQQsqNpdALYfY03vbMx6ivNsQKLRF9jJUE jNc8whstbt4o8ChEroCv6bMA1iGrHfn0117CYXNlDq/K1eklLssKrHcO8oj7C9zHtNzpN4Lux0 J1zhc40fMwY20jFbZIO4cgVRw6N6jlKpo8C/Hyv25yI09+dIfXeerZxcHQ/Vol3M/SF1qnT0Aq mpws+Ul95dkXQOBTXihjzC6BFc1kG9EUI4r6e0Ceyf+Q97gDGxLDpz4aBaIPhD60wq05XZUqKL GNAzv8X1M7qhHorx39wNrlKP X-IronPort-AV: E=Sophos;i="5.87,211,1631602800"; d="scan'208";a="150845860" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa1.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 05 Nov 2021 02:13:25 -0700 Received: from chn-vm-ex01.mchp-main.com (10.10.85.143) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.14; Fri, 5 Nov 2021 02:13:24 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.14 via Frontend Transport; Fri, 5 Nov 2021 02:13:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EiTSsPJ5YoSdCPMHquoD9T9raXaL3mrdPuhgBFfJKG8y6QTBHZZpbMWGx5lON7lT3c1gGBbjjcEKiOKevgY9DNKEBwcBAp5d3we0iMJryaYAgNkrDgocUlT5muyw5olR2gzpLsEZ/LRiYCkBUYxUO993X/VM6sE64mF1k/CoMyLwIiPxU77AFWQpDaT6/JwcsmNmdkpsshQNFL6ErVEWChp/iq/KHBr50h5wCQX9NXHd7l2NjrZr3Iusa76COOFAQvfxtV6QR3KJhjbd2l5PoVonmiAWXeQZUx6Uq+3dgA+82nGvdbrbjEF1gW1H54X3gfVY6Cs/zO+B8zCny+Q0Kg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=E1kWJslIsKba4OxDL+bT0BEDH8gcijmbMXbansQQPYU=; b=RxgVIAY04SPlukO+PczIisvjzmVvMxFsTrTU6AuIBHkW6jfGxA961HBsQYTs3Jy6tav8jEW8/c8bGVkhhZ1I3ZUDF+pTAfIzKJsgto/pCDruUt00TXIOf6ZLGD3LQFFLuzl0Oc7IuXX3zyjT3RYuKehmC7WKjT357MPATFtoxfb/PBqC3gQdWl52YTKZ9/zIGnKlqAs96GPl4WT1NSlweJleLUnDT/+ahd+EC7dV7ezzjR5OZM2HnQ76dYKs8+U5+Tof3Mg6A9+x/zq7Nv1TA7LjmmkNE7ApT2j2MqvV+O4Kwg2NSQma23NpE8NbmQJYYTq91Yse+atzm8yS/X3M4g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=E1kWJslIsKba4OxDL+bT0BEDH8gcijmbMXbansQQPYU=; b=eqjMCrzc51CU08WXJX1Wze3CEqF4VIESOqdHUzC4bAeiEiy3gcmMU6h+IGwrjNCIWK34yLjmWQYrNKSRCv6k+xbWvfOz82HJasFWfxL/79mlrnYR7NElTq/LgiXG9e7QwvsH1EF/7fhB/sgQBBOcYs0RED4CENmIxsapJmK3YbA= Received: from BN9PR11MB5514.namprd11.prod.outlook.com (2603:10b6:408:103::7) by BN8PR11MB3794.namprd11.prod.outlook.com (2603:10b6:408:8f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 5 Nov 2021 09:13:20 +0000 Received: from BN9PR11MB5514.namprd11.prod.outlook.com ([fe80::5933:9a3c:4793:c21]) by BN9PR11MB5514.namprd11.prod.outlook.com ([fe80::5933:9a3c:4793:c21%8]) with mapi id 15.20.4669.013; Fri, 5 Nov 2021 09:13:20 +0000 From: To: CC: , , , , , , , Subject: Re: [PATCH 05/21] media: atmel: atmel-isc: split the clock code into separate source file Thread-Topic: [PATCH 05/21] media: atmel: atmel-isc: split the clock code into separate source file Thread-Index: AQHXxxn8+M2o4jzWYUiAvYOObJNDfav0uWYAgAADJAA= Date: Fri, 5 Nov 2021 09:13:19 +0000 Message-ID: References: <20211022075247.518880-1-eugen.hristev@microchip.com> <20211022075247.518880-6-eugen.hristev@microchip.com> <20211105090204.sdiqdptsxmjs2ebr@uno.localdomain> In-Reply-To: <20211105090204.sdiqdptsxmjs2ebr@uno.localdomain> Accept-Language: en-US, ro-RO Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 authentication-results: jmondi.org; dkim=none (message not signed) header.d=none;jmondi.org; dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b4547116-02e6-4f20-bb5c-08d9a03c82ba x-ms-traffictypediagnostic: BN8PR11MB3794: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3968; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qpX/zA7O2wpUdjrREKq9KDIs9pLilRIJS13TYKELPyMwNzl2u/lJzXaXKntuiXszvV7dqXtEjOYWu8BS3ZcHjzUkkoSeVGR00SZR9TQvYnXQTvTlSEPXgSLpD4bTPHih8HTEJOjy5aGXWWG8MfCDaVnogesBDmsYmLAFAsmuiXsM7LKt+nHWinK7E7XoewfjYx/KbnkFKIssWrbtlvV9HDysaRivcMwWqMJB2VsXJPmJHHyekz0TXrByTy0l8BBlnpBU/+2EWevuHzA0GdzMf/jBXaQ2qI72hPEwcCyLz4GvPJVDY4vIVDzAkXlkcTGW+wPlWC1B8psV8tQjVH+X9VgiDUpqVBFoFBRTMFk0gcDiS/2QFaEbODw1RuLXFWLOy2TJ+XNF1xO+DJsBlu8KwEACdTKFttMFm8Z/KTBhoSW12yWayXBOPzZxPgvXtuEsigkuE0MZ1RqSa1oYe6iVb8+YwwZ4wBzGsEudmeuMUGKkmQlOW+8Fi17G3aOiJxgOmm0ga6QeaRhSgpYL95XHQyKfkSmHpX92Tk+Xv+LGqBimBbj2EWf54LJAJIbT+LwCrmhTzzGni8QP+VoGWpUucVBK5LEbGNttZEJMAVQ9iJERXdDb9NGEH2SksaoSFMxSZbtIR8r/D9hvwLBq600hFmND5yyk1lMWPPVjTdXzriZMnc9X4M8dekpOnd1MWSDgXgtvxQBPOZe5olt00LTV3SL9S1T4ZCUwTFk/EO3JiMbgl4FpEHUGRAG9u7NUiUvrz1gXl/Fu7AePxQc4K7PiDg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5514.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(91956017)(5660300002)(6512007)(66946007)(38100700002)(6486002)(54906003)(26005)(31696002)(2906002)(86362001)(53546011)(186003)(107886003)(6506007)(508600001)(66446008)(66556008)(76116006)(64756008)(66476007)(2616005)(316002)(83380400001)(122000001)(6916009)(8936002)(36756003)(4326008)(71200400001)(38070700005)(30864003)(31686004)(45980500001)(43740500002)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aFNkaEdaRlFhSVJ4NEhiUVQ4SlkyTXVHTXVWTmFzdW5zdmIvckdCSWlmWGdu?= =?utf-8?B?YTNoWjZ3Smszc0FtMlFHdzJNUFBzQlY2RWRIeCt0VUdSQktlVTdHRTBuemJR?= =?utf-8?B?SGpUYys1OEszUUtKVjFsVWgwckkyNXhpQTRMcHVNOGloTFB5SXVNUEtrOXlV?= =?utf-8?B?aTFTRFRTeklWbnJnclVlQjBBNk9OQnNoOUtEVkZ2bmlwaWlrRVgrMUVyTURJ?= =?utf-8?B?VVZZbGNvc3FDWlR1ZkN3UXM2dXZOTkVUZG9yaFRFc3BBWDM4SW9lUjFOWGNU?= =?utf-8?B?ZkpaYUlrREF5L2VSWGlYWmhzL3A0bWRQL0RLU2cyOGI4ZkpKdkk1MHR1Z2FN?= =?utf-8?B?ZDhpZ3ZpNXJ2ZS9kQVlzNE56ZmFKV05VUkc0SkFNSzNuS2VyTWtQSmlVUllq?= =?utf-8?B?ZkRnYi92cW9MbUVOOFlSSU5qQVh6Q05JVUZHOWZGTDNDR2FDblAwVzZoL0Jj?= =?utf-8?B?MlZSRkRoaHlmSHlhZmhzUFZFMTk5SWxSMm4wN2VpNTBlRnpMSmMvYmRQcjBr?= =?utf-8?B?bFV6N0pueDAzZXVGYm16ZGRWNUlTS3doWFFjYjFrNGpXbWlaQVRsWlkxV2lB?= =?utf-8?B?b09HK3NSTUhyZURSUFlqMjNCbjhPMkg1dzc5VUdwMEpNR1JLbXRScSs2dlo0?= =?utf-8?B?L0ZiY3ZpS2dlNTcycXM4WXV5NU5NQjNxWnBZMTdVQzZWOHRPMkhKUzYybE1h?= =?utf-8?B?NzdGa2J2RVNseWNTUFRVcTlMZ0Vpazd6LzNJWlNyTW9ZaUwvL25VNlBtWHBh?= =?utf-8?B?QnVxV25lUXBnYTRzNG9iQlJrSTA4NXBUcTMraTdaemxGTXBteUYwSTkxWWtT?= =?utf-8?B?UkNHdE0vdks5cWdjMDhjcTQvWTc5VWhSdzZ6ZzZoTVRqNEZUdmV2S1k4TCtv?= =?utf-8?B?Y1JEQmI3Sm5xSlI5Sm9Gbkh5YlBTUGsrNldUbmxJdm9EUm1NM29wbVVDeXpV?= =?utf-8?B?ZzBmUU1GVng4eVV6eWlURzJCeW1uYit1bW4ySW16cEZxZ2tVRGdLSEVrTWht?= =?utf-8?B?aUNVSzd1YmY4RSswU3F3cUVSY1dEYXJpdDJMMzlvV01EeXYwMzByQ1I2TEhj?= =?utf-8?B?WWFwVS91OUlQNFBjRXluU1YrK2QvWnplTmNyeWZhOEo0ME4rYS93YkRZb0Rm?= =?utf-8?B?b0JlQjVLeEgzOWxoVnJCaUYvamVnVE8xazc5aGxMbnlHRXduWkpPN2pGNUpK?= =?utf-8?B?MjAvd3BvdzNCZHdRYjlwc2lKSUFFSnJYc0p4bzFKTHhLbWdGV0tLV1FUUEhp?= =?utf-8?B?cjZxNVZIbjN5bUV4QkEzcGhaTE9jSXVoMHByUWJCR0R1dy9DNmNLVG41SGNu?= =?utf-8?B?VVpoM1o4dS9rTVJKa08xSHY3Mkw4Zk5FU2pzdllhYXBNQW8xVFpEWk9FMzZP?= =?utf-8?B?RERZRVdCZENjK3VQMmVXWnV6Y1BHMlNtVTR3UVVVK3hBRHZUV05hMnU0TWFS?= =?utf-8?B?R2hWcXhiV2RGOGpXSVgvSFlFTXFkV0NmOVdTZU5zemVQd0ZtVW5Mck8zQjR2?= =?utf-8?B?OWxHMEthdjF0SFkvWEw1c3pVeWRxcGFJMXZzS2ZESFNTME9MYi9WTHVZSXor?= =?utf-8?B?VjRWNkpWMWtLMjVXV29XdXUyaDAzVCtTRUc1S2ViSlVGclNJbmFOSklHVjNl?= =?utf-8?B?anRCbG1MWXRJYUpNanY1d2drVkQ0VWR3emthNzlQcXovVm42U1l5S0ZlKzUv?= =?utf-8?B?cUdyUzVCaENZNkJCd2twQytJUWplVmFqS3pra1ppYmtmS0RFRFFLVXk4ZDlW?= =?utf-8?B?SCs3cFQ5ZnFzUUxxV0hBSmpvc0lGeTdZZEpLU01Zdit0Y1ZUN0NTUTUzTHV6?= =?utf-8?B?ZjRWbml4d2lXQ0hUOGxlTmtHSjVwK3I0dDVTbHg5Q25NUllkSjVlTDhMam5j?= =?utf-8?B?U0ZuVitEQS8ySTN5czJCRk5QYjZlUysycXBvUWYxRDI0QkdwbWhmMlU4SHlu?= =?utf-8?B?VTVKam9UaFZGZ3IxdlhEa1JwTEc0TVhVUUoyZFp6UDBoeW5oTzlvWUZaT0Vu?= =?utf-8?B?UmhDcVZ0YmozK1FDMUF3Q0o5aE8vLzFmaHZLWFpTUHdiT1N0Tk9ZaDZWbnlK?= =?utf-8?B?SGp2MW5zZ2xFYzNTdWx3MG8zZVhYS1dNRm93WmZubFNwNEFpWjkvUEdYMC8r?= =?utf-8?B?T3BMS3FRc0MzckdlaVl4UWZjbG9YTXB2cXRiazFBQTc2ZWNpTVNwNnFDeTk0?= =?utf-8?B?eU5JY2pPWkpCQVA4ZDFKc05NRDhIYVlaT3BIN1hwTEpNTXRPN3BualdPRWk1?= =?utf-8?B?eGdscTBlWkRSTTJLeGFwSDB5akVnPT0=?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5514.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b4547116-02e6-4f20-bb5c-08d9a03c82ba X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Nov 2021 09:13:19.9671 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: B+uGydl3uKuWMQ0kDcErUYjpjXUGBmCBXtS6cDsM6l+Ipi4p0tr+Kf/YihZL72TsnKh9LeZuITc2irnUQSS2xUd9HvgJg/WDcljDLMMImlg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR11MB3794 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gMTEvNS8yMSAxMTowMiBBTSwgSmFjb3BvIE1vbmRpIHdyb3RlOg0KPiBIaSBFdWdlbg0KPiAN Cj4gT24gRnJpLCBPY3QgMjIsIDIwMjEgYXQgMTA6NTI6MzFBTSArMDMwMCwgRXVnZW4gSHJpc3Rl diB3cm90ZToNCj4+IFRoZSBhdG1lbC1pc2MtYmFzZSBpcyBnZXR0aW5nIGNyb3dkZWQuIFNwbGl0 IHRoZSBjbG9jayBmdW5jdGlvbnMgaW50bw0KPj4gYXRtZWwtaXNjLWNsay5jLg0KPj4NCj4+IFNp Z25lZC1vZmYtYnk6IEV1Z2VuIEhyaXN0ZXYgPGV1Z2VuLmhyaXN0ZXZAbWljcm9jaGlwLmNvbT4N Cj4+IC0tLQ0KPj4gICBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL01ha2VmaWxlICAgICAg ICAgfCAgIDIgKy0NCj4+ICAgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2Mt YmFzZS5jIHwgMjk0IC0tLS0tLS0tLS0tLS0tLS0NCj4+ICAgZHJpdmVycy9tZWRpYS9wbGF0Zm9y bS9hdG1lbC9hdG1lbC1pc2MtY2xrLmMgIHwgMzE2ICsrKysrKysrKysrKysrKysrKw0KPj4gICAz IGZpbGVzIGNoYW5nZWQsIDMxNyBpbnNlcnRpb25zKCspLCAyOTUgZGVsZXRpb25zKC0pDQo+PiAg IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlz Yy1jbGsuYw0KPj4NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVs L01ha2VmaWxlIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9NYWtlZmlsZQ0KPj4gaW5k ZXggMzlmMGE3ZWJhNzAyLi4xZjZmZTc0Mjc3NjkgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL21l ZGlhL3BsYXRmb3JtL2F0bWVsL01ha2VmaWxlDQo+PiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRm b3JtL2F0bWVsL01ha2VmaWxlDQo+PiBAQCAtMyw3ICszLDcgQEAgYXRtZWwtaXNjLW9ianMgPSBh dG1lbC1zYW1hNWQyLWlzYy5vDQo+PiAgIGF0bWVsLXhpc2Mtb2JqcyA9IGF0bWVsLXNhbWE3ZzUt aXNjLm8NCj4+DQo+PiAgIG9iai0kKENPTkZJR19WSURFT19BVE1FTF9JU0kpICs9IGF0bWVsLWlz aS5vDQo+PiAtb2JqLSQoQ09ORklHX1ZJREVPX0FUTUVMX0lTQ19CQVNFKSArPSBhdG1lbC1pc2Mt YmFzZS5vDQo+PiArb2JqLSQoQ09ORklHX1ZJREVPX0FUTUVMX0lTQ19CQVNFKSArPSBhdG1lbC1p c2MtYmFzZS5vIGF0bWVsLWlzYy1jbGsubw0KPj4gICBvYmotJChDT05GSUdfVklERU9fQVRNRUxf SVNDKSArPSBhdG1lbC1pc2Mubw0KPj4gICBvYmotJChDT05GSUdfVklERU9fQVRNRUxfWElTQykg Kz0gYXRtZWwteGlzYy5vDQo+PiAgIG9iai0kKENPTkZJR19WSURFT19NSUNST0NISVBfQ1NJMkRD KSArPSBtaWNyb2NoaXAtY3NpMmRjLm8NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3Bs YXRmb3JtL2F0bWVsL2F0bWVsLWlzYy1iYXNlLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0 bWVsL2F0bWVsLWlzYy1iYXNlLmMNCj4+IGluZGV4IGViZjI2NGI5ODBmOS4uZjUzMmZkMDNlODA3 IDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2Mt YmFzZS5jDQo+PiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy1i YXNlLmMNCj4+IEBAIC04LDkgKzgsNiBAQA0KPj4gICAgKiBBdXRob3I6IEV1Z2VuIEhyaXN0ZXYg PGV1Z2VuLmhyaXN0ZXZAbWljcm9jaGlwLmNvbT4NCj4+ICAgICoNCj4+ICAgICovDQo+PiAtDQo+ PiAtI2luY2x1ZGUgPGxpbnV4L2Nsay5oPg0KPj4gLSNpbmNsdWRlIDxsaW51eC9jbGtkZXYuaD4N Cj4+ICAgI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPg0KPiANCj4gRG8geW91IHN0aWxs IG5lZWQgY2xrLXByb3ZpZGVyIGhlcmUgPw0KDQpZZXMgaXQncyBuZWVkZWQgaW4gYXRtZWwtaXNj LmgNCg0KPiANCj4+ICAgI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+DQo+PiAgICNpbmNsdWRlIDxs aW51eC9pbnRlcnJ1cHQuaD4NCj4+IEBAIC0xMDAsMjk3ICs5Nyw2IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBpc2NfcmVzZXRfYXdiX2N0cmxzKHN0cnVjdCBpc2NfZGV2aWNlICppc2MpDQo+PiAgICAg ICAgfQ0KPj4gICB9DQo+Pg0KPj4gLXN0YXRpYyBpbnQgaXNjX3dhaXRfY2xrX3N0YWJsZShzdHJ1 Y3QgY2xrX2h3ICpodykNCj4+IC17DQo+PiAtICAgICBzdHJ1Y3QgaXNjX2NsayAqaXNjX2NsayA9 IHRvX2lzY19jbGsoaHcpOw0KPj4gLSAgICAgc3RydWN0IHJlZ21hcCAqcmVnbWFwID0gaXNjX2Ns ay0+cmVnbWFwOw0KPj4gLSAgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gamlmZmllcyArIHVz ZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQo+PiAtICAgICB1bnNpZ25lZCBpbnQgc3RhdHVzOw0KPj4g LQ0KPj4gLSAgICAgd2hpbGUgKHRpbWVfYmVmb3JlKGppZmZpZXMsIHRpbWVvdXQpKSB7DQo+PiAt ICAgICAgICAgICAgIHJlZ21hcF9yZWFkKHJlZ21hcCwgSVNDX0NMS1NSLCAmc3RhdHVzKTsNCj4+ IC0gICAgICAgICAgICAgaWYgKCEoc3RhdHVzICYgSVNDX0NMS1NSX1NJUCkpDQo+PiAtICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+PiAtDQo+PiAtICAgICAgICAgICAgIHVzbGVlcF9y YW5nZSgxMCwgMjUwKTsNCj4+IC0gICAgIH0NCj4+IC0NCj4+IC0gICAgIHJldHVybiAtRVRJTUVE T1VUOw0KPj4gLX0NCj4+IC0NCj4+IC1zdGF0aWMgaW50IGlzY19jbGtfcHJlcGFyZShzdHJ1Y3Qg Y2xrX2h3ICpodykNCj4+IC17DQo+PiAtICAgICBzdHJ1Y3QgaXNjX2NsayAqaXNjX2NsayA9IHRv X2lzY19jbGsoaHcpOw0KPj4gLSAgICAgaW50IHJldDsNCj4+IC0NCj4+IC0gICAgIHJldCA9IHBt X3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQoaXNjX2Nsay0+ZGV2KTsNCj4+IC0gICAgIGlmIChyZXQg PCAwKQ0KPj4gLSAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4gLQ0KPj4gLSAgICAgcmV0dXJu IGlzY193YWl0X2Nsa19zdGFibGUoaHcpOw0KPj4gLX0NCj4+IC0NCj4+IC1zdGF0aWMgdm9pZCBp c2NfY2xrX3VucHJlcGFyZShzdHJ1Y3QgY2xrX2h3ICpodykNCj4+IC17DQo+PiAtICAgICBzdHJ1 Y3QgaXNjX2NsayAqaXNjX2NsayA9IHRvX2lzY19jbGsoaHcpOw0KPj4gLQ0KPj4gLSAgICAgaXNj X3dhaXRfY2xrX3N0YWJsZShodyk7DQo+PiAtDQo+PiAtICAgICBwbV9ydW50aW1lX3B1dF9zeW5j KGlzY19jbGstPmRldik7DQo+PiAtfQ0KPj4gLQ0KPj4gLXN0YXRpYyBpbnQgaXNjX2Nsa19lbmFi bGUoc3RydWN0IGNsa19odyAqaHcpDQo+PiAtew0KPj4gLSAgICAgc3RydWN0IGlzY19jbGsgKmlz Y19jbGsgPSB0b19pc2NfY2xrKGh3KTsNCj4+IC0gICAgIHUzMiBpZCA9IGlzY19jbGstPmlkOw0K Pj4gLSAgICAgc3RydWN0IHJlZ21hcCAqcmVnbWFwID0gaXNjX2Nsay0+cmVnbWFwOw0KPj4gLSAg ICAgdW5zaWduZWQgbG9uZyBmbGFnczsNCj4+IC0gICAgIHVuc2lnbmVkIGludCBzdGF0dXM7DQo+ PiAtDQo+PiAtICAgICBkZXZfZGJnKGlzY19jbGstPmRldiwgIklTQyBDTEs6ICVzLCBpZCA9ICVk LCBkaXYgPSAlZCwgcGFyZW50IGlkID0gJWRcbiIsDQo+PiAtICAgICAgICAgICAgIF9fZnVuY19f LCBpZCwgaXNjX2Nsay0+ZGl2LCBpc2NfY2xrLT5wYXJlbnRfaWQpOw0KPj4gLQ0KPj4gLSAgICAg c3Bpbl9sb2NrX2lycXNhdmUoJmlzY19jbGstPmxvY2ssIGZsYWdzKTsNCj4+IC0gICAgIHJlZ21h cF91cGRhdGVfYml0cyhyZWdtYXAsIElTQ19DTEtDRkcsDQo+PiAtICAgICAgICAgICAgICAgICAg ICAgICAgSVNDX0NMS0NGR19ESVZfTUFTSyhpZCkgfCBJU0NfQ0xLQ0ZHX1NFTF9NQVNLKGlkKSwN Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAoaXNjX2Nsay0+ZGl2IDw8IElTQ19DTEtDRkdf RElWX1NISUZUKGlkKSkgfA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgIChpc2NfY2xrLT5w YXJlbnRfaWQgPDwgSVNDX0NMS0NGR19TRUxfU0hJRlQoaWQpKSk7DQo+PiAtDQo+PiAtICAgICBy ZWdtYXBfd3JpdGUocmVnbWFwLCBJU0NfQ0xLRU4sIElTQ19DTEsoaWQpKTsNCj4+IC0gICAgIHNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmlzY19jbGstPmxvY2ssIGZsYWdzKTsNCj4+IC0NCj4+IC0g ICAgIHJlZ21hcF9yZWFkKHJlZ21hcCwgSVNDX0NMS1NSLCAmc3RhdHVzKTsNCj4+IC0gICAgIGlm IChzdGF0dXMgJiBJU0NfQ0xLKGlkKSkNCj4+IC0gICAgICAgICAgICAgcmV0dXJuIDA7DQo+PiAt ICAgICBlbHNlDQo+PiAtICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPj4gLX0NCj4+IC0N Cj4+IC1zdGF0aWMgdm9pZCBpc2NfY2xrX2Rpc2FibGUoc3RydWN0IGNsa19odyAqaHcpDQo+PiAt ew0KPj4gLSAgICAgc3RydWN0IGlzY19jbGsgKmlzY19jbGsgPSB0b19pc2NfY2xrKGh3KTsNCj4+ IC0gICAgIHUzMiBpZCA9IGlzY19jbGstPmlkOw0KPj4gLSAgICAgdW5zaWduZWQgbG9uZyBmbGFn czsNCj4+IC0NCj4+IC0gICAgIHNwaW5fbG9ja19pcnFzYXZlKCZpc2NfY2xrLT5sb2NrLCBmbGFn cyk7DQo+PiAtICAgICByZWdtYXBfd3JpdGUoaXNjX2Nsay0+cmVnbWFwLCBJU0NfQ0xLRElTLCBJ U0NfQ0xLKGlkKSk7DQo+PiAtICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpc2NfY2xrLT5s b2NrLCBmbGFncyk7DQo+PiAtfQ0KPj4gLQ0KPj4gLXN0YXRpYyBpbnQgaXNjX2Nsa19pc19lbmFi bGVkKHN0cnVjdCBjbGtfaHcgKmh3KQ0KPj4gLXsNCj4+IC0gICAgIHN0cnVjdCBpc2NfY2xrICpp c2NfY2xrID0gdG9faXNjX2Nsayhodyk7DQo+PiAtICAgICB1MzIgc3RhdHVzOw0KPj4gLSAgICAg aW50IHJldDsNCj4+IC0NCj4+IC0gICAgIHJldCA9IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQo aXNjX2Nsay0+ZGV2KTsNCj4+IC0gICAgIGlmIChyZXQgPCAwKQ0KPj4gLSAgICAgICAgICAgICBy ZXR1cm4gMDsNCj4+IC0NCj4+IC0gICAgIHJlZ21hcF9yZWFkKGlzY19jbGstPnJlZ21hcCwgSVND X0NMS1NSLCAmc3RhdHVzKTsNCj4+IC0NCj4+IC0gICAgIHBtX3J1bnRpbWVfcHV0X3N5bmMoaXNj X2Nsay0+ZGV2KTsNCj4+IC0NCj4+IC0gICAgIHJldHVybiBzdGF0dXMgJiBJU0NfQ0xLKGlzY19j bGstPmlkKSA/IDEgOiAwOw0KPj4gLX0NCj4+IC0NCj4+IC1zdGF0aWMgdW5zaWduZWQgbG9uZw0K Pj4gLWlzY19jbGtfcmVjYWxjX3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcg cGFyZW50X3JhdGUpDQo+PiAtew0KPj4gLSAgICAgc3RydWN0IGlzY19jbGsgKmlzY19jbGsgPSB0 b19pc2NfY2xrKGh3KTsNCj4+IC0NCj4+IC0gICAgIHJldHVybiBESVZfUk9VTkRfQ0xPU0VTVChw YXJlbnRfcmF0ZSwgaXNjX2Nsay0+ZGl2ICsgMSk7DQo+PiAtfQ0KPj4gLQ0KPj4gLXN0YXRpYyBp bnQgaXNjX2Nsa19kZXRlcm1pbmVfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywNCj4+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjbGtfcmF0ZV9yZXF1ZXN0ICpyZXEpDQo+ PiAtew0KPj4gLSAgICAgc3RydWN0IGlzY19jbGsgKmlzY19jbGsgPSB0b19pc2NfY2xrKGh3KTsN Cj4+IC0gICAgIGxvbmcgYmVzdF9yYXRlID0gLUVJTlZBTDsNCj4+IC0gICAgIGludCBiZXN0X2Rp ZmYgPSAtMTsNCj4+IC0gICAgIHVuc2lnbmVkIGludCBpLCBkaXY7DQo+PiAtDQo+PiAtICAgICBm b3IgKGkgPSAwOyBpIDwgY2xrX2h3X2dldF9udW1fcGFyZW50cyhodyk7IGkrKykgew0KPj4gLSAg ICAgICAgICAgICBzdHJ1Y3QgY2xrX2h3ICpwYXJlbnQ7DQo+PiAtICAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgcGFyZW50X3JhdGU7DQo+PiAtDQo+PiAtICAgICAgICAgICAgIHBhcmVudCA9IGNs a19od19nZXRfcGFyZW50X2J5X2luZGV4KGh3LCBpKTsNCj4+IC0gICAgICAgICAgICAgaWYgKCFw YXJlbnQpDQo+PiAtICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+PiAtDQo+PiAtICAg ICAgICAgICAgIHBhcmVudF9yYXRlID0gY2xrX2h3X2dldF9yYXRlKHBhcmVudCk7DQo+PiAtICAg ICAgICAgICAgIGlmICghcGFyZW50X3JhdGUpDQo+PiAtICAgICAgICAgICAgICAgICAgICAgY29u dGludWU7DQo+PiAtDQo+PiAtICAgICAgICAgICAgIGZvciAoZGl2ID0gMTsgZGl2IDwgSVNDX0NM S19NQVhfRElWICsgMjsgZGl2KyspIHsNCj4+IC0gICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBsb25nIHJhdGU7DQo+PiAtICAgICAgICAgICAgICAgICAgICAgaW50IGRpZmY7DQo+PiAtDQo+ PiAtICAgICAgICAgICAgICAgICAgICAgcmF0ZSA9IERJVl9ST1VORF9DTE9TRVNUKHBhcmVudF9y YXRlLCBkaXYpOw0KPj4gLSAgICAgICAgICAgICAgICAgICAgIGRpZmYgPSBhYnMocmVxLT5yYXRl IC0gcmF0ZSk7DQo+PiAtDQo+PiAtICAgICAgICAgICAgICAgICAgICAgaWYgKGJlc3RfZGlmZiA8 IDAgfHwgYmVzdF9kaWZmID4gZGlmZikgew0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYmVzdF9yYXRlID0gcmF0ZTsNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJl c3RfZGlmZiA9IGRpZmY7DQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXEtPmJl c3RfcGFyZW50X3JhdGUgPSBwYXJlbnRfcmF0ZTsNCj4+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlcS0+YmVzdF9wYXJlbnRfaHcgPSBwYXJlbnQ7DQo+PiAtICAgICAgICAgICAgICAg ICAgICAgfQ0KPj4gLQ0KPj4gLSAgICAgICAgICAgICAgICAgICAgIGlmICghYmVzdF9kaWZmIHx8 IHJhdGUgPCByZXEtPnJhdGUpDQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh azsNCj4+IC0gICAgICAgICAgICAgfQ0KPj4gLQ0KPj4gLSAgICAgICAgICAgICBpZiAoIWJlc3Rf ZGlmZikNCj4+IC0gICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4+IC0gICAgIH0NCj4+IC0N Cj4+IC0gICAgIGRldl9kYmcoaXNjX2Nsay0+ZGV2LA0KPj4gLSAgICAgICAgICAgICAiSVNDIENM SzogJXMsIGJlc3RfcmF0ZSA9ICVsZCwgcGFyZW50IGNsazogJXMgQCAlbGRcbiIsDQo+PiAtICAg ICAgICAgICAgIF9fZnVuY19fLCBiZXN0X3JhdGUsDQo+PiAtICAgICAgICAgICAgIF9fY2xrX2dl dF9uYW1lKChyZXEtPmJlc3RfcGFyZW50X2h3KS0+Y2xrKSwNCj4+IC0gICAgICAgICAgICAgcmVx LT5iZXN0X3BhcmVudF9yYXRlKTsNCj4+IC0NCj4+IC0gICAgIGlmIChiZXN0X3JhdGUgPCAwKQ0K Pj4gLSAgICAgICAgICAgICByZXR1cm4gYmVzdF9yYXRlOw0KPj4gLQ0KPj4gLSAgICAgcmVxLT5y YXRlID0gYmVzdF9yYXRlOw0KPj4gLQ0KPj4gLSAgICAgcmV0dXJuIDA7DQo+PiAtfQ0KPj4gLQ0K Pj4gLXN0YXRpYyBpbnQgaXNjX2Nsa19zZXRfcGFyZW50KHN0cnVjdCBjbGtfaHcgKmh3LCB1OCBp bmRleCkNCj4+IC17DQo+PiAtICAgICBzdHJ1Y3QgaXNjX2NsayAqaXNjX2NsayA9IHRvX2lzY19j bGsoaHcpOw0KPj4gLQ0KPj4gLSAgICAgaWYgKGluZGV4ID49IGNsa19od19nZXRfbnVtX3BhcmVu dHMoaHcpKQ0KPj4gLSAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+IC0NCj4+IC0gICAg IGlzY19jbGstPnBhcmVudF9pZCA9IGluZGV4Ow0KPj4gLQ0KPj4gLSAgICAgcmV0dXJuIDA7DQo+ PiAtfQ0KPj4gLQ0KPj4gLXN0YXRpYyB1OCBpc2NfY2xrX2dldF9wYXJlbnQoc3RydWN0IGNsa19o dyAqaHcpDQo+PiAtew0KPj4gLSAgICAgc3RydWN0IGlzY19jbGsgKmlzY19jbGsgPSB0b19pc2Nf Y2xrKGh3KTsNCj4+IC0NCj4+IC0gICAgIHJldHVybiBpc2NfY2xrLT5wYXJlbnRfaWQ7DQo+PiAt fQ0KPj4gLQ0KPj4gLXN0YXRpYyBpbnQgaXNjX2Nsa19zZXRfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpo dywNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgcmF0ZSwNCj4+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGUpDQo+ PiAtew0KPj4gLSAgICAgc3RydWN0IGlzY19jbGsgKmlzY19jbGsgPSB0b19pc2NfY2xrKGh3KTsN Cj4+IC0gICAgIHUzMiBkaXY7DQo+PiAtDQo+PiAtICAgICBpZiAoIXJhdGUpDQo+PiAtICAgICAg ICAgICAgIHJldHVybiAtRUlOVkFMOw0KPj4gLQ0KPj4gLSAgICAgZGl2ID0gRElWX1JPVU5EX0NM T1NFU1QocGFyZW50X3JhdGUsIHJhdGUpOw0KPj4gLSAgICAgaWYgKGRpdiA+IChJU0NfQ0xLX01B WF9ESVYgKyAxKSB8fCAhZGl2KQ0KPj4gLSAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ IC0NCj4+IC0gICAgIGlzY19jbGstPmRpdiA9IGRpdiAtIDE7DQo+PiAtDQo+PiAtICAgICByZXR1 cm4gMDsNCj4+IC19DQo+PiAtDQo+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGlzY19j bGtfb3BzID0gew0KPj4gLSAgICAgLnByZXBhcmUgICAgICAgID0gaXNjX2Nsa19wcmVwYXJlLA0K Pj4gLSAgICAgLnVucHJlcGFyZSAgICAgID0gaXNjX2Nsa191bnByZXBhcmUsDQo+PiAtICAgICAu ZW5hYmxlICAgICAgICAgPSBpc2NfY2xrX2VuYWJsZSwNCj4+IC0gICAgIC5kaXNhYmxlICAgICAg ICA9IGlzY19jbGtfZGlzYWJsZSwNCj4+IC0gICAgIC5pc19lbmFibGVkICAgICA9IGlzY19jbGtf aXNfZW5hYmxlZCwNCj4+IC0gICAgIC5yZWNhbGNfcmF0ZSAgICA9IGlzY19jbGtfcmVjYWxjX3Jh dGUsDQo+PiAtICAgICAuZGV0ZXJtaW5lX3JhdGUgPSBpc2NfY2xrX2RldGVybWluZV9yYXRlLA0K Pj4gLSAgICAgLnNldF9wYXJlbnQgICAgID0gaXNjX2Nsa19zZXRfcGFyZW50LA0KPj4gLSAgICAg LmdldF9wYXJlbnQgICAgID0gaXNjX2Nsa19nZXRfcGFyZW50LA0KPj4gLSAgICAgLnNldF9yYXRl ICAgICAgID0gaXNjX2Nsa19zZXRfcmF0ZSwNCj4+IC19Ow0KPj4gLQ0KPj4gLXN0YXRpYyBpbnQg aXNjX2Nsa19yZWdpc3RlcihzdHJ1Y3QgaXNjX2RldmljZSAqaXNjLCB1bnNpZ25lZCBpbnQgaWQp DQo+PiAtew0KPj4gLSAgICAgc3RydWN0IHJlZ21hcCAqcmVnbWFwID0gaXNjLT5yZWdtYXA7DQo+ PiAtICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gaXNjLT5kZXYtPm9mX25vZGU7DQo+PiAt ICAgICBzdHJ1Y3QgaXNjX2NsayAqaXNjX2NsazsNCj4+IC0gICAgIHN0cnVjdCBjbGtfaW5pdF9k YXRhIGluaXQ7DQo+PiAtICAgICBjb25zdCBjaGFyICpjbGtfbmFtZSA9IG5wLT5uYW1lOw0KPj4g LSAgICAgY29uc3QgY2hhciAqcGFyZW50X25hbWVzWzNdOw0KPj4gLSAgICAgaW50IG51bV9wYXJl bnRzOw0KPj4gLQ0KPj4gLSAgICAgaWYgKGlkID09IElTQ19JU1BDSyAmJiAhaXNjLT5pc3Bja19y ZXF1aXJlZCkNCj4+IC0gICAgICAgICAgICAgcmV0dXJuIDA7DQo+PiAtDQo+PiAtICAgICBudW1f cGFyZW50cyA9IG9mX2Nsa19nZXRfcGFyZW50X2NvdW50KG5wKTsNCj4+IC0gICAgIGlmIChudW1f cGFyZW50cyA8IDEgfHwgbnVtX3BhcmVudHMgPiAzKQ0KPj4gLSAgICAgICAgICAgICByZXR1cm4g LUVJTlZBTDsNCj4+IC0NCj4+IC0gICAgIGlmIChudW1fcGFyZW50cyA+IDIgJiYgaWQgPT0gSVND X0lTUENLKQ0KPj4gLSAgICAgICAgICAgICBudW1fcGFyZW50cyA9IDI7DQo+PiAtDQo+PiAtICAg ICBvZl9jbGtfcGFyZW50X2ZpbGwobnAsIHBhcmVudF9uYW1lcywgbnVtX3BhcmVudHMpOw0KPj4g LQ0KPj4gLSAgICAgaWYgKGlkID09IElTQ19NQ0spDQo+PiAtICAgICAgICAgICAgIG9mX3Byb3Bl cnR5X3JlYWRfc3RyaW5nKG5wLCAiY2xvY2stb3V0cHV0LW5hbWVzIiwgJmNsa19uYW1lKTsNCj4+ IC0gICAgIGVsc2UNCj4+IC0gICAgICAgICAgICAgY2xrX25hbWUgPSAiaXNjLWlzcGNrIjsNCj4+ IC0NCj4+IC0gICAgIGluaXQucGFyZW50X25hbWVzICAgICAgID0gcGFyZW50X25hbWVzOw0KPj4g LSAgICAgaW5pdC5udW1fcGFyZW50cyAgICAgICAgPSBudW1fcGFyZW50czsNCj4+IC0gICAgIGlu aXQubmFtZSAgICAgICAgICAgICAgID0gY2xrX25hbWU7DQo+PiAtICAgICBpbml0Lm9wcyAgICAg ICAgICAgICAgICA9ICZpc2NfY2xrX29wczsNCj4+IC0gICAgIGluaXQuZmxhZ3MgICAgICAgICAg ICAgID0gQ0xLX1NFVF9SQVRFX0dBVEUgfCBDTEtfU0VUX1BBUkVOVF9HQVRFOw0KPj4gLQ0KPj4g LSAgICAgaXNjX2NsayA9ICZpc2MtPmlzY19jbGtzW2lkXTsNCj4+IC0gICAgIGlzY19jbGstPmh3 LmluaXQgICAgICAgID0gJmluaXQ7DQo+PiAtICAgICBpc2NfY2xrLT5yZWdtYXAgICAgICAgICA9 IHJlZ21hcDsNCj4+IC0gICAgIGlzY19jbGstPmlkICAgICAgICAgICAgID0gaWQ7DQo+PiAtICAg ICBpc2NfY2xrLT5kZXYgICAgICAgICAgICA9IGlzYy0+ZGV2Ow0KPj4gLSAgICAgc3Bpbl9sb2Nr X2luaXQoJmlzY19jbGstPmxvY2spOw0KPj4gLQ0KPj4gLSAgICAgaXNjX2Nsay0+Y2xrID0gY2xr X3JlZ2lzdGVyKGlzYy0+ZGV2LCAmaXNjX2Nsay0+aHcpOw0KPj4gLSAgICAgaWYgKElTX0VSUihp c2NfY2xrLT5jbGspKSB7DQo+PiAtICAgICAgICAgICAgIGRldl9lcnIoaXNjLT5kZXYsICIlczog Y2xvY2sgcmVnaXN0ZXIgZmFpbFxuIiwgY2xrX25hbWUpOw0KPj4gLSAgICAgICAgICAgICByZXR1 cm4gUFRSX0VSUihpc2NfY2xrLT5jbGspOw0KPj4gLSAgICAgfSBlbHNlIGlmIChpZCA9PSBJU0Nf TUNLKQ0KPj4gLSAgICAgICAgICAgICBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5wLCBvZl9jbGtfc3Jj X3NpbXBsZV9nZXQsIGlzY19jbGstPmNsayk7DQo+PiAtDQo+PiAtICAgICByZXR1cm4gMDsNCj4+ IC19DQo+PiAtDQo+PiAtaW50IGlzY19jbGtfaW5pdChzdHJ1Y3QgaXNjX2RldmljZSAqaXNjKQ0K Pj4gLXsNCj4+IC0gICAgIHVuc2lnbmVkIGludCBpOw0KPj4gLSAgICAgaW50IHJldDsNCj4+IC0N Cj4+IC0gICAgIGZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGlzYy0+aXNjX2Nsa3MpOyBpKysp DQo+PiAtICAgICAgICAgICAgIGlzYy0+aXNjX2Nsa3NbaV0uY2xrID0gRVJSX1BUUigtRUlOVkFM KTsNCj4+IC0NCj4+IC0gICAgIGZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGlzYy0+aXNjX2Ns a3MpOyBpKyspIHsNCj4+IC0gICAgICAgICAgICAgcmV0ID0gaXNjX2Nsa19yZWdpc3Rlcihpc2Ms IGkpOw0KPj4gLSAgICAgICAgICAgICBpZiAocmV0KQ0KPj4gLSAgICAgICAgICAgICAgICAgICAg IHJldHVybiByZXQ7DQo+PiAtICAgICB9DQo+PiAtDQo+PiAtICAgICByZXR1cm4gMDsNCj4+IC19 DQo+PiAtRVhQT1JUX1NZTUJPTF9HUEwoaXNjX2Nsa19pbml0KTsNCj4+IC0NCj4+IC12b2lkIGlz Y19jbGtfY2xlYW51cChzdHJ1Y3QgaXNjX2RldmljZSAqaXNjKQ0KPj4gLXsNCj4+IC0gICAgIHVu c2lnbmVkIGludCBpOw0KPj4gLQ0KPj4gLSAgICAgb2ZfY2xrX2RlbF9wcm92aWRlcihpc2MtPmRl di0+b2Zfbm9kZSk7DQo+PiAtDQo+PiAtICAgICBmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShp c2MtPmlzY19jbGtzKTsgaSsrKSB7DQo+PiAtICAgICAgICAgICAgIHN0cnVjdCBpc2NfY2xrICpp c2NfY2xrID0gJmlzYy0+aXNjX2Nsa3NbaV07DQo+PiAtDQo+PiAtICAgICAgICAgICAgIGlmICgh SVNfRVJSKGlzY19jbGstPmNsaykpDQo+PiAtICAgICAgICAgICAgICAgICAgICAgY2xrX3VucmVn aXN0ZXIoaXNjX2Nsay0+Y2xrKTsNCj4+IC0gICAgIH0NCj4+IC19DQo+PiAtRVhQT1JUX1NZTUJP TF9HUEwoaXNjX2Nsa19jbGVhbnVwKTsNCj4+DQo+PiAgIHN0YXRpYyBpbnQgaXNjX3F1ZXVlX3Nl dHVwKHN0cnVjdCB2YjJfcXVldWUgKnZxLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgaW50ICpuYnVmZmVycywgdW5zaWduZWQgaW50ICpucGxhbmVzLA0KPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtaXNjLWNsay5jIGIvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2MtY2xrLmMNCj4+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmQ2NTBjYWFkZTM5Ng0KPj4gLS0tIC9k ZXYvbnVsbA0KPj4gKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2Mt Y2xrLmMNCj4+IEBAIC0wLDAgKzEsMzE2IEBADQo+PiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEdQTC0yLjAtb25seQ0KPj4gKy8qDQo+PiArICogTWljcm9jaGlwIEltYWdlIFNlbnNvciBD b250cm9sbGVyIChJU0MpIGNvbW1vbiBjbG9jayBkcml2ZXIgc2V0dXANCj4+ICsgKg0KPj4gKyAq IENvcHlyaWdodCAoQykgMjAxNi0yMDE5IE1pY3JvY2hpcCBUZWNobm9sb2d5LCBJbmMuDQo+IA0K PiBUaW1lIGZsaWVzIQ0KDQpJIHRoaW5rIEkgd2lsbCBjaGFuZ2UgdGhpcyB0byAyMDE2IG9ubHks IHRvIGtlZXAganVzdCB0aGUgb3JpZ2luYWwgDQpkcml2ZXIncyBmaXJzdCB5ZWFyIG9mIGluY2x1 c2lvbg0KDQo+IA0KPj4gKyAqDQo+PiArICogQXV0aG9yOiBTb25nanVuIFd1DQo+PiArICogQXV0 aG9yOiBFdWdlbiBIcmlzdGV2IDxldWdlbi5ocmlzdGV2QG1pY3JvY2hpcC5jb20+DQo+PiArICoN Cj4+ICsgKi8NCj4+ICsjaW5jbHVkZSA8bGludXgvY2xrLmg+DQo+PiArI2luY2x1ZGUgPGxpbnV4 L2Nsa2Rldi5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4NCj4+ICsjaW5j bHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+DQo+IA0KPiBJcyB0aGlzIG5lZWRlZCA/DQo+ IA0KPj4gKyNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+DQo+PiArI2luY2x1ZGUgPGxpbnV4 L3JlZ21hcC5oPg0KPj4gKw0KPj4gKyNpbmNsdWRlIDxtZWRpYS92NGwyLWN0cmxzLmg+DQo+PiAr I2luY2x1ZGUgPG1lZGlhL3Y0bDItZGV2aWNlLmg+DQo+PiArI2luY2x1ZGUgPG1lZGlhL3ZpZGVv YnVmMi1kbWEtY29udGlnLmg+DQo+IA0KPiBJcyBhbnkgb25lIG9mIHRoZXNlIG5lZWRlZCA/DQo+ IA0KPiBSZW1vdmluZyB0aGVtIGhpZ2hsaWdodHMgaG93IHRoZXNlIGluY2x1ZGVzIHNob3VsZCBw cm9iYWJseSBiZQ0KPiBtb3ZlZCB0byBhdG1lbC1pc2MuaCB3aGljaCBmYWlscyB0byBjb21waWxl IGlmIG5vdCBwcmVjZWVkZWQgYnkgdGhlc2UNCj4gaW5jbHVzaW9ucy4NCg0KWWVzLCB0aGlzIGlz IHRoZSByZWFzb24gd2h5IHRoZSBoZWFkZXJzIGFyZSB0aGVyZS4gSSB3aWxsIHRyeSB0byBtb3Zl IA0KdGhlbSB0byBhdG1lbC1pc2MuaA0KDQo+IA0KPiBJIHRoaW5rIHlvdSBjYW4gbWVyZ2UgdGhp cyB3aXRoIHRoZSBwcmV2aW91cyBwYXRjaCB0aGF0IGFkZHMgdGhlIGZpbGUNCj4gZW50cnkgdG8g TUFJTlRBSU5FUlMNCg0KSSB1c3VhbGx5IGF2b2lkIHRvIGRvIHRoYXQsIGJlY2F1c2Ugb2YgdGhl IHVzdWFsIG1lc3Mgd2l0aCBtZXJnaW5nIA0KcGF0Y2hlcyBvbiBNQUlOVEFJTkVSUy4gU28gcmF0 aGVyIG1ha2UgaXQgZWFzeSBhbmQgY2xlYW4gd2l0aCBhIHNpbXBsZSANCnBhdGNoIGRpcmVjdGx5 IHRvIE1BSU5UQUlORVJTLg0KDQpCdXQgaWYgeW91IHRoaW5rIGl0J3MgYmV0dGVyIHRvIGhhdmUg aXQgdG9nZXRoZXIgd2l0aCB0aGUgZHJpdmVyIGNoYW5nZSwgDQpJIGNhbiBzcXVhc2ggaXQNCg0K VGhhbmsgeW91IGZvciBoYXZpbmcgYSBsb29rIGF0IHRoaXMsDQpFdWdlbg0KPiANCj4gVGhhbmtz DQo+ICAgICBqDQo+IA0KPj4gKw0KPj4gKyNpbmNsdWRlICJhdG1lbC1pc2MtcmVncy5oIg0KPj4g KyNpbmNsdWRlICJhdG1lbC1pc2MuaCINCj4+ICsNCj4+ICtzdGF0aWMgaW50IGlzY193YWl0X2Ns a19zdGFibGUoc3RydWN0IGNsa19odyAqaHcpDQo+PiArew0KPj4gKyAgICAgc3RydWN0IGlzY19j bGsgKmlzY19jbGsgPSB0b19pc2NfY2xrKGh3KTsNCj4+ICsgICAgIHN0cnVjdCByZWdtYXAgKnJl Z21hcCA9IGlzY19jbGstPnJlZ21hcDsNCj4+ICsgICAgIHVuc2lnbmVkIGxvbmcgdGltZW91dCA9 IGppZmZpZXMgKyB1c2Vjc190b19qaWZmaWVzKDEwMDApOw0KPj4gKyAgICAgdW5zaWduZWQgaW50 IHN0YXR1czsNCj4+ICsNCj4+ICsgICAgIHdoaWxlICh0aW1lX2JlZm9yZShqaWZmaWVzLCB0aW1l b3V0KSkgew0KPj4gKyAgICAgICAgICAgICByZWdtYXBfcmVhZChyZWdtYXAsIElTQ19DTEtTUiwg JnN0YXR1cyk7DQo+PiArICAgICAgICAgICAgIGlmICghKHN0YXR1cyAmIElTQ19DTEtTUl9TSVAp KQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOw0KPj4gKw0KPj4gKyAgICAgICAg ICAgICB1c2xlZXBfcmFuZ2UoMTAsIDI1MCk7DQo+PiArICAgICB9DQo+PiArDQo+PiArICAgICBy ZXR1cm4gLUVUSU1FRE9VVDsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGludCBpc2NfY2xrX3By ZXBhcmUoc3RydWN0IGNsa19odyAqaHcpDQo+PiArew0KPj4gKyAgICAgc3RydWN0IGlzY19jbGsg KmlzY19jbGsgPSB0b19pc2NfY2xrKGh3KTsNCj4+ICsgICAgIGludCByZXQ7DQo+PiArDQo+PiAr ICAgICByZXQgPSBwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KGlzY19jbGstPmRldik7DQo+PiAr ICAgICBpZiAocmV0IDwgMCkNCj4+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+ICsNCj4+ ICsgICAgIHJldHVybiBpc2Nfd2FpdF9jbGtfc3RhYmxlKGh3KTsNCj4+ICt9DQo+PiArDQo+PiAr c3RhdGljIHZvaWQgaXNjX2Nsa191bnByZXBhcmUoc3RydWN0IGNsa19odyAqaHcpDQo+PiArew0K Pj4gKyAgICAgc3RydWN0IGlzY19jbGsgKmlzY19jbGsgPSB0b19pc2NfY2xrKGh3KTsNCj4+ICsN Cj4+ICsgICAgIGlzY193YWl0X2Nsa19zdGFibGUoaHcpOw0KPj4gKw0KPj4gKyAgICAgcG1fcnVu dGltZV9wdXRfc3luYyhpc2NfY2xrLT5kZXYpOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgaW50 IGlzY19jbGtfZW5hYmxlKHN0cnVjdCBjbGtfaHcgKmh3KQ0KPj4gK3sNCj4+ICsgICAgIHN0cnVj dCBpc2NfY2xrICppc2NfY2xrID0gdG9faXNjX2Nsayhodyk7DQo+PiArICAgICB1MzIgaWQgPSBp c2NfY2xrLT5pZDsNCj4+ICsgICAgIHN0cnVjdCByZWdtYXAgKnJlZ21hcCA9IGlzY19jbGstPnJl Z21hcDsNCj4+ICsgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+PiArICAgICB1bnNpZ25lZCBp bnQgc3RhdHVzOw0KPj4gKw0KPj4gKyAgICAgZGV2X2RiZyhpc2NfY2xrLT5kZXYsICJJU0MgQ0xL OiAlcywgaWQgPSAlZCwgZGl2ID0gJWQsIHBhcmVudCBpZCA9ICVkXG4iLA0KPj4gKyAgICAgICAg ICAgICBfX2Z1bmNfXywgaWQsIGlzY19jbGstPmRpdiwgaXNjX2Nsay0+cGFyZW50X2lkKTsNCj4+ ICsNCj4+ICsgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZpc2NfY2xrLT5sb2NrLCBmbGFncyk7DQo+ PiArICAgICByZWdtYXBfdXBkYXRlX2JpdHMocmVnbWFwLCBJU0NfQ0xLQ0ZHLA0KPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIElTQ19DTEtDRkdfRElWX01BU0soaWQpIHwgSVNDX0NMS0NGR19T RUxfTUFTSyhpZCksDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgKGlzY19jbGstPmRpdiA8 PCBJU0NfQ0xLQ0ZHX0RJVl9TSElGVChpZCkpIHwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAoaXNjX2Nsay0+cGFyZW50X2lkIDw8IElTQ19DTEtDRkdfU0VMX1NISUZUKGlkKSkpOw0KPj4g Kw0KPj4gKyAgICAgcmVnbWFwX3dyaXRlKHJlZ21hcCwgSVNDX0NMS0VOLCBJU0NfQ0xLKGlkKSk7 DQo+PiArICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpc2NfY2xrLT5sb2NrLCBmbGFncyk7 DQo+PiArDQo+PiArICAgICByZWdtYXBfcmVhZChyZWdtYXAsIElTQ19DTEtTUiwgJnN0YXR1cyk7 DQo+PiArICAgICBpZiAoc3RhdHVzICYgSVNDX0NMSyhpZCkpDQo+PiArICAgICAgICAgICAgIHJl dHVybiAwOw0KPj4gKyAgICAgZWxzZQ0KPj4gKyAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsN Cj4+ICt9DQo+PiArDQo+PiArc3RhdGljIHZvaWQgaXNjX2Nsa19kaXNhYmxlKHN0cnVjdCBjbGtf aHcgKmh3KQ0KPj4gK3sNCj4+ICsgICAgIHN0cnVjdCBpc2NfY2xrICppc2NfY2xrID0gdG9faXNj X2Nsayhodyk7DQo+PiArICAgICB1MzIgaWQgPSBpc2NfY2xrLT5pZDsNCj4+ICsgICAgIHVuc2ln bmVkIGxvbmcgZmxhZ3M7DQo+PiArDQo+PiArICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaXNjX2Ns ay0+bG9jaywgZmxhZ3MpOw0KPj4gKyAgICAgcmVnbWFwX3dyaXRlKGlzY19jbGstPnJlZ21hcCwg SVNDX0NMS0RJUywgSVNDX0NMSyhpZCkpOw0KPj4gKyAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmaXNjX2Nsay0+bG9jaywgZmxhZ3MpOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgaW50IGlz Y19jbGtfaXNfZW5hYmxlZChzdHJ1Y3QgY2xrX2h3ICpodykNCj4+ICt7DQo+PiArICAgICBzdHJ1 Y3QgaXNjX2NsayAqaXNjX2NsayA9IHRvX2lzY19jbGsoaHcpOw0KPj4gKyAgICAgdTMyIHN0YXR1 czsNCj4+ICsgICAgIGludCByZXQ7DQo+PiArDQo+PiArICAgICByZXQgPSBwbV9ydW50aW1lX3Jl c3VtZV9hbmRfZ2V0KGlzY19jbGstPmRldik7DQo+PiArICAgICBpZiAocmV0IDwgMCkNCj4+ICsg ICAgICAgICAgICAgcmV0dXJuIDA7DQo+PiArDQo+PiArICAgICByZWdtYXBfcmVhZChpc2NfY2xr LT5yZWdtYXAsIElTQ19DTEtTUiwgJnN0YXR1cyk7DQo+PiArDQo+PiArICAgICBwbV9ydW50aW1l X3B1dF9zeW5jKGlzY19jbGstPmRldik7DQo+PiArDQo+PiArICAgICByZXR1cm4gc3RhdHVzICYg SVNDX0NMSyhpc2NfY2xrLT5pZCkgPyAxIDogMDsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIHVu c2lnbmVkIGxvbmcNCj4+ICtpc2NfY2xrX3JlY2FsY19yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1 bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlKQ0KPj4gK3sNCj4+ICsgICAgIHN0cnVjdCBpc2NfY2xr ICppc2NfY2xrID0gdG9faXNjX2Nsayhodyk7DQo+PiArDQo+PiArICAgICByZXR1cm4gRElWX1JP VU5EX0NMT1NFU1QocGFyZW50X3JhdGUsIGlzY19jbGstPmRpdiArIDEpOw0KPj4gK30NCj4+ICsN Cj4+ICtzdGF0aWMgaW50IGlzY19jbGtfZGV0ZXJtaW5lX3JhdGUoc3RydWN0IGNsa19odyAqaHcs DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjbGtfcmF0ZV9yZXF1 ZXN0ICpyZXEpDQo+PiArew0KPj4gKyAgICAgc3RydWN0IGlzY19jbGsgKmlzY19jbGsgPSB0b19p c2NfY2xrKGh3KTsNCj4+ICsgICAgIGxvbmcgYmVzdF9yYXRlID0gLUVJTlZBTDsNCj4+ICsgICAg IGludCBiZXN0X2RpZmYgPSAtMTsNCj4+ICsgICAgIHVuc2lnbmVkIGludCBpLCBkaXY7DQo+PiAr DQo+PiArICAgICBmb3IgKGkgPSAwOyBpIDwgY2xrX2h3X2dldF9udW1fcGFyZW50cyhodyk7IGkr Kykgew0KPj4gKyAgICAgICAgICAgICBzdHJ1Y3QgY2xrX2h3ICpwYXJlbnQ7DQo+PiArICAgICAg ICAgICAgIHVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7DQo+PiArDQo+PiArICAgICAgICAgICAg IHBhcmVudCA9IGNsa19od19nZXRfcGFyZW50X2J5X2luZGV4KGh3LCBpKTsNCj4+ICsgICAgICAg ICAgICAgaWYgKCFwYXJlbnQpDQo+PiArICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+ PiArDQo+PiArICAgICAgICAgICAgIHBhcmVudF9yYXRlID0gY2xrX2h3X2dldF9yYXRlKHBhcmVu dCk7DQo+PiArICAgICAgICAgICAgIGlmICghcGFyZW50X3JhdGUpDQo+PiArICAgICAgICAgICAg ICAgICAgICAgY29udGludWU7DQo+PiArDQo+PiArICAgICAgICAgICAgIGZvciAoZGl2ID0gMTsg ZGl2IDwgSVNDX0NMS19NQVhfRElWICsgMjsgZGl2KyspIHsNCj4+ICsgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIHJhdGU7DQo+PiArICAgICAgICAgICAgICAgICAgICAgaW50IGRp ZmY7DQo+PiArDQo+PiArICAgICAgICAgICAgICAgICAgICAgcmF0ZSA9IERJVl9ST1VORF9DTE9T RVNUKHBhcmVudF9yYXRlLCBkaXYpOw0KPj4gKyAgICAgICAgICAgICAgICAgICAgIGRpZmYgPSBh YnMocmVxLT5yYXRlIC0gcmF0ZSk7DQo+PiArDQo+PiArICAgICAgICAgICAgICAgICAgICAgaWYg KGJlc3RfZGlmZiA8IDAgfHwgYmVzdF9kaWZmID4gZGlmZikgew0KPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYmVzdF9yYXRlID0gcmF0ZTsNCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJlc3RfZGlmZiA9IGRpZmY7DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXEtPmJlc3RfcGFyZW50X3JhdGUgPSBwYXJlbnRfcmF0ZTsNCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJlcS0+YmVzdF9wYXJlbnRfaHcgPSBwYXJlbnQ7DQo+PiArICAg ICAgICAgICAgICAgICAgICAgfQ0KPj4gKw0KPj4gKyAgICAgICAgICAgICAgICAgICAgIGlmICgh YmVzdF9kaWZmIHx8IHJhdGUgPCByZXEtPnJhdGUpDQo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsNCj4+ICsgICAgICAgICAgICAgfQ0KPj4gKw0KPj4gKyAgICAgICAgICAg ICBpZiAoIWJlc3RfZGlmZikNCj4+ICsgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4+ICsg ICAgIH0NCj4+ICsNCj4+ICsgICAgIGRldl9kYmcoaXNjX2Nsay0+ZGV2LA0KPj4gKyAgICAgICAg ICAgICAiSVNDIENMSzogJXMsIGJlc3RfcmF0ZSA9ICVsZCwgcGFyZW50IGNsazogJXMgQCAlbGRc biIsDQo+PiArICAgICAgICAgICAgIF9fZnVuY19fLCBiZXN0X3JhdGUsDQo+PiArICAgICAgICAg ICAgIF9fY2xrX2dldF9uYW1lKChyZXEtPmJlc3RfcGFyZW50X2h3KS0+Y2xrKSwNCj4+ICsgICAg ICAgICAgICAgcmVxLT5iZXN0X3BhcmVudF9yYXRlKTsNCj4+ICsNCj4+ICsgICAgIGlmIChiZXN0 X3JhdGUgPCAwKQ0KPj4gKyAgICAgICAgICAgICByZXR1cm4gYmVzdF9yYXRlOw0KPj4gKw0KPj4g KyAgICAgcmVxLT5yYXRlID0gYmVzdF9yYXRlOw0KPj4gKw0KPj4gKyAgICAgcmV0dXJuIDA7DQo+ PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgaXNjX2Nsa19zZXRfcGFyZW50KHN0cnVjdCBjbGtf aHcgKmh3LCB1OCBpbmRleCkNCj4+ICt7DQo+PiArICAgICBzdHJ1Y3QgaXNjX2NsayAqaXNjX2Ns ayA9IHRvX2lzY19jbGsoaHcpOw0KPj4gKw0KPj4gKyAgICAgaWYgKGluZGV4ID49IGNsa19od19n ZXRfbnVtX3BhcmVudHMoaHcpKQ0KPj4gKyAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ ICsNCj4+ICsgICAgIGlzY19jbGstPnBhcmVudF9pZCA9IGluZGV4Ow0KPj4gKw0KPj4gKyAgICAg cmV0dXJuIDA7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyB1OCBpc2NfY2xrX2dldF9wYXJlbnQo c3RydWN0IGNsa19odyAqaHcpDQo+PiArew0KPj4gKyAgICAgc3RydWN0IGlzY19jbGsgKmlzY19j bGsgPSB0b19pc2NfY2xrKGh3KTsNCj4+ICsNCj4+ICsgICAgIHJldHVybiBpc2NfY2xrLT5wYXJl bnRfaWQ7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgaXNjX2Nsa19zZXRfcmF0ZShzdHJ1 Y3QgY2xrX2h3ICpodywNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyByYXRlLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBhcmVu dF9yYXRlKQ0KPj4gK3sNCj4+ICsgICAgIHN0cnVjdCBpc2NfY2xrICppc2NfY2xrID0gdG9faXNj X2Nsayhodyk7DQo+PiArICAgICB1MzIgZGl2Ow0KPj4gKw0KPj4gKyAgICAgaWYgKCFyYXRlKQ0K Pj4gKyAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ICsNCj4+ICsgICAgIGRpdiA9IERJ Vl9ST1VORF9DTE9TRVNUKHBhcmVudF9yYXRlLCByYXRlKTsNCj4+ICsgICAgIGlmIChkaXYgPiAo SVNDX0NMS19NQVhfRElWICsgMSkgfHwgIWRpdikNCj4+ICsgICAgICAgICAgICAgcmV0dXJuIC1F SU5WQUw7DQo+PiArDQo+PiArICAgICBpc2NfY2xrLT5kaXYgPSBkaXYgLSAxOw0KPj4gKw0KPj4g KyAgICAgcmV0dXJuIDA7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xr X29wcyBpc2NfY2xrX29wcyA9IHsNCj4+ICsgICAgIC5wcmVwYXJlICAgICAgICA9IGlzY19jbGtf cHJlcGFyZSwNCj4+ICsgICAgIC51bnByZXBhcmUgICAgICA9IGlzY19jbGtfdW5wcmVwYXJlLA0K Pj4gKyAgICAgLmVuYWJsZSAgICAgICAgID0gaXNjX2Nsa19lbmFibGUsDQo+PiArICAgICAuZGlz YWJsZSAgICAgICAgPSBpc2NfY2xrX2Rpc2FibGUsDQo+PiArICAgICAuaXNfZW5hYmxlZCAgICAg PSBpc2NfY2xrX2lzX2VuYWJsZWQsDQo+PiArICAgICAucmVjYWxjX3JhdGUgICAgPSBpc2NfY2xr X3JlY2FsY19yYXRlLA0KPj4gKyAgICAgLmRldGVybWluZV9yYXRlID0gaXNjX2Nsa19kZXRlcm1p bmVfcmF0ZSwNCj4+ICsgICAgIC5zZXRfcGFyZW50ICAgICA9IGlzY19jbGtfc2V0X3BhcmVudCwN Cj4+ICsgICAgIC5nZXRfcGFyZW50ICAgICA9IGlzY19jbGtfZ2V0X3BhcmVudCwNCj4+ICsgICAg IC5zZXRfcmF0ZSAgICAgICA9IGlzY19jbGtfc2V0X3JhdGUsDQo+PiArfTsNCj4+ICsNCj4+ICtz dGF0aWMgaW50IGlzY19jbGtfcmVnaXN0ZXIoc3RydWN0IGlzY19kZXZpY2UgKmlzYywgdW5zaWdu ZWQgaW50IGlkKQ0KPj4gK3sNCj4+ICsgICAgIHN0cnVjdCByZWdtYXAgKnJlZ21hcCA9IGlzYy0+ cmVnbWFwOw0KPj4gKyAgICAgc3RydWN0IGRldmljZV9ub2RlICpucCA9IGlzYy0+ZGV2LT5vZl9u b2RlOw0KPj4gKyAgICAgc3RydWN0IGlzY19jbGsgKmlzY19jbGs7DQo+PiArICAgICBzdHJ1Y3Qg Y2xrX2luaXRfZGF0YSBpbml0Ow0KPj4gKyAgICAgY29uc3QgY2hhciAqY2xrX25hbWUgPSBucC0+ bmFtZTsNCj4+ICsgICAgIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lc1szXTsNCj4+ICsgICAgIGlu dCBudW1fcGFyZW50czsNCj4+ICsNCj4+ICsgICAgIGlmIChpZCA9PSBJU0NfSVNQQ0sgJiYgIWlz Yy0+aXNwY2tfcmVxdWlyZWQpDQo+PiArICAgICAgICAgICAgIHJldHVybiAwOw0KPj4gKw0KPj4g KyAgICAgbnVtX3BhcmVudHMgPSBvZl9jbGtfZ2V0X3BhcmVudF9jb3VudChucCk7DQo+PiArICAg ICBpZiAobnVtX3BhcmVudHMgPCAxIHx8IG51bV9wYXJlbnRzID4gMykNCj4+ICsgICAgICAgICAg ICAgcmV0dXJuIC1FSU5WQUw7DQo+PiArDQo+PiArICAgICBpZiAobnVtX3BhcmVudHMgPiAyICYm IGlkID09IElTQ19JU1BDSykNCj4+ICsgICAgICAgICAgICAgbnVtX3BhcmVudHMgPSAyOw0KPj4g Kw0KPj4gKyAgICAgb2ZfY2xrX3BhcmVudF9maWxsKG5wLCBwYXJlbnRfbmFtZXMsIG51bV9wYXJl bnRzKTsNCj4+ICsNCj4+ICsgICAgIGlmIChpZCA9PSBJU0NfTUNLKQ0KPj4gKyAgICAgICAgICAg ICBvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZyhucCwgImNsb2NrLW91dHB1dC1uYW1lcyIsICZjbGtf bmFtZSk7DQo+PiArICAgICBlbHNlDQo+PiArICAgICAgICAgICAgIGNsa19uYW1lID0gImlzYy1p c3BjayI7DQo+PiArDQo+PiArICAgICBpbml0LnBhcmVudF9uYW1lcyAgICAgICA9IHBhcmVudF9u YW1lczsNCj4+ICsgICAgIGluaXQubnVtX3BhcmVudHMgICAgICAgID0gbnVtX3BhcmVudHM7DQo+ PiArICAgICBpbml0Lm5hbWUgICAgICAgICAgICAgICA9IGNsa19uYW1lOw0KPj4gKyAgICAgaW5p dC5vcHMgICAgICAgICAgICAgICAgPSAmaXNjX2Nsa19vcHM7DQo+PiArICAgICBpbml0LmZsYWdz ICAgICAgICAgICAgICA9IENMS19TRVRfUkFURV9HQVRFIHwgQ0xLX1NFVF9QQVJFTlRfR0FURTsN Cj4+ICsNCj4+ICsgICAgIGlzY19jbGsgPSAmaXNjLT5pc2NfY2xrc1tpZF07DQo+PiArICAgICBp c2NfY2xrLT5ody5pbml0ICAgICAgICA9ICZpbml0Ow0KPj4gKyAgICAgaXNjX2Nsay0+cmVnbWFw ICAgICAgICAgPSByZWdtYXA7DQo+PiArICAgICBpc2NfY2xrLT5pZCAgICAgICAgICAgICA9IGlk Ow0KPj4gKyAgICAgaXNjX2Nsay0+ZGV2ICAgICAgICAgICAgPSBpc2MtPmRldjsNCj4+ICsgICAg IHNwaW5fbG9ja19pbml0KCZpc2NfY2xrLT5sb2NrKTsNCj4+ICsNCj4+ICsgICAgIGlzY19jbGst PmNsayA9IGNsa19yZWdpc3Rlcihpc2MtPmRldiwgJmlzY19jbGstPmh3KTsNCj4+ICsgICAgIGlm IChJU19FUlIoaXNjX2Nsay0+Y2xrKSkgew0KPj4gKyAgICAgICAgICAgICBkZXZfZXJyKGlzYy0+ ZGV2LCAiJXM6IGNsb2NrIHJlZ2lzdGVyIGZhaWxcbiIsIGNsa19uYW1lKTsNCj4+ICsgICAgICAg ICAgICAgcmV0dXJuIFBUUl9FUlIoaXNjX2Nsay0+Y2xrKTsNCj4+ICsgICAgIH0gZWxzZSBpZiAo aWQgPT0gSVNDX01DSykgew0KPj4gKyAgICAgICAgICAgICBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5w LCBvZl9jbGtfc3JjX3NpbXBsZV9nZXQsIGlzY19jbGstPmNsayk7DQo+PiArICAgICB9DQo+PiAr DQo+PiArICAgICByZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiAraW50IGlzY19jbGtfaW5pdChz dHJ1Y3QgaXNjX2RldmljZSAqaXNjKQ0KPj4gK3sNCj4+ICsgICAgIHVuc2lnbmVkIGludCBpOw0K Pj4gKyAgICAgaW50IHJldDsNCj4+ICsNCj4+ICsgICAgIGZvciAoaSA9IDA7IGkgPCBBUlJBWV9T SVpFKGlzYy0+aXNjX2Nsa3MpOyBpKyspDQo+PiArICAgICAgICAgICAgIGlzYy0+aXNjX2Nsa3Nb aV0uY2xrID0gRVJSX1BUUigtRUlOVkFMKTsNCj4+ICsNCj4+ICsgICAgIGZvciAoaSA9IDA7IGkg PCBBUlJBWV9TSVpFKGlzYy0+aXNjX2Nsa3MpOyBpKyspIHsNCj4+ICsgICAgICAgICAgICAgcmV0 ID0gaXNjX2Nsa19yZWdpc3Rlcihpc2MsIGkpOw0KPj4gKyAgICAgICAgICAgICBpZiAocmV0KQ0K Pj4gKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+PiArICAgICB9DQo+PiArDQo+ PiArICAgICByZXR1cm4gMDsNCj4+ICt9DQo+PiArRVhQT1JUX1NZTUJPTF9HUEwoaXNjX2Nsa19p bml0KTsNCj4+ICsNCj4+ICt2b2lkIGlzY19jbGtfY2xlYW51cChzdHJ1Y3QgaXNjX2RldmljZSAq aXNjKQ0KPj4gK3sNCj4+ICsgICAgIHVuc2lnbmVkIGludCBpOw0KPj4gKw0KPj4gKyAgICAgb2Zf Y2xrX2RlbF9wcm92aWRlcihpc2MtPmRldi0+b2Zfbm9kZSk7DQo+PiArDQo+PiArICAgICBmb3Ig KGkgPSAwOyBpIDwgQVJSQVlfU0laRShpc2MtPmlzY19jbGtzKTsgaSsrKSB7DQo+PiArICAgICAg ICAgICAgIHN0cnVjdCBpc2NfY2xrICppc2NfY2xrID0gJmlzYy0+aXNjX2Nsa3NbaV07DQo+PiAr DQo+PiArICAgICAgICAgICAgIGlmICghSVNfRVJSKGlzY19jbGstPmNsaykpDQo+PiArICAgICAg ICAgICAgICAgICAgICAgY2xrX3VucmVnaXN0ZXIoaXNjX2Nsay0+Y2xrKTsNCj4+ICsgICAgIH0N Cj4+ICt9DQo+PiArRVhQT1JUX1NZTUJPTF9HUEwoaXNjX2Nsa19jbGVhbnVwKTsNCj4+IC0tDQo+ PiAyLjI1LjENCj4+DQoNCg==