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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E2F73C433EF for ; Sun, 3 Oct 2021 17:07:44 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (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 0BDA161A54 for ; Sun, 3 Oct 2021 17:07:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 0BDA161A54 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=fb.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=nongnu.org Received: from localhost ([::1]:48452 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mX4xj-0001L6-6q for qemu-devel@archiver.kernel.org; Sun, 03 Oct 2021 13:07:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48030) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mX4uA-0006bW-ES; Sun, 03 Oct 2021 13:04:02 -0400 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:53458) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mX4u6-0002dW-Mo; Sun, 03 Oct 2021 13:04:02 -0400 Received: from pps.filterd (m0109333.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 193Eoemc001474; Sun, 3 Oct 2021 10:03:41 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=facebook; bh=2x+HJPjSbRpjLYAgvLA9GZ0e7QSXo7SKVrqAZxub7Xc=; b=DIvuhO3EkS/tu+wzXm5gdVchmW2TXUYTUs4Zki8WJRaVCWzBa4Zwpimjnw5RZmEJX0U/ 76crsYcB9kDLNOn//MF6tjm+N1nsCPeXM/4wtIDAOWHMm2N6h7x6mUKZeLS4hKEOkvDd o85huOYabhDdKsxKVXK4rgBrYV+nUdzyqCo= Received: from maileast.thefacebook.com ([163.114.130.16]) by mx0a-00082601.pphosted.com with ESMTP id 3bfbsr191j-17 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Sun, 03 Oct 2021 10:03:40 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (100.104.31.183) by o365-in.thefacebook.com (100.104.36.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.14; Sun, 3 Oct 2021 10:03:38 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KG06NFMA6+bMNu0lIiimgehmrcytUqiSZ4mpl1dnAJEBIiqf+h1HHJK9Os5p/9dl+t9NzQimEygJRR9yegFjFQoIrtsV88SUHqCmZ9D8I6GUy9XsFIsvY/HFrxchbtcmLNyaItCV35np6O9VyORcB4dkKBCfvs4vwuZ+zFueYu5+R3gw3yCFf7wNXlx7jahopOiCi039lAc4henLRHMbMveN4pEZvzPV3prEv1rhfDVa45czVl1HbiFhXDd+VMNHhqa+iscQEWu4wSyMzmJWemTkQkTqxW3UuJubpN1fySsbHfwHDI/TXWwLSf9SV4eNHc7Jq5eRSaRQLnwSx7TTjA== 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=2x+HJPjSbRpjLYAgvLA9GZ0e7QSXo7SKVrqAZxub7Xc=; b=npW85wzGslOCp0rqKVQOfY3SRuPOXPuAL32nFgNg5wzCbJfNPLB6q0kjcCAz6PhmU0I1gdrTSYkObJACGMYNhz2HafUad8OKBW3jfSlGCl0ZpgCituSBcuubUOt0fhVrszmPzVjzTesOS+WUd06HakhkpsU2izNGnq1cMgw+kRjwsHJxCFhc/RAHwlpghfQ5SWUGdlTSnWEW8gPrc6fb+kZtvRPQqJz0Mgj0s6Gr1QtTZHH1MxLMUxpgqEXMRuUuJyttag6wLYDOkyp+wikhpd+PdHV3W19+9Im8uHGL5NeSbQmKJLq4VxzfmvnSYQxI9IpP1X+Q7HiVoVY5zFWeog== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fb.com; dmarc=pass action=none header.from=fb.com; dkim=pass header.d=fb.com; arc=none Received: from BYAPR15MB3032.namprd15.prod.outlook.com (2603:10b6:a03:ff::11) by SJ0PR15MB4597.namprd15.prod.outlook.com (2603:10b6:a03:37a::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.19; Sun, 3 Oct 2021 17:03:37 +0000 Received: from BYAPR15MB3032.namprd15.prod.outlook.com ([fe80::38da:f6f6:bb5c:dd5f]) by BYAPR15MB3032.namprd15.prod.outlook.com ([fe80::38da:f6f6:bb5c:dd5f%7]) with mapi id 15.20.4566.022; Sun, 3 Oct 2021 17:03:37 +0000 From: Peter Delevoryas To: =?utf-8?B?Q8OpZHJpYyBMZSBHb2F0ZXI=?= CC: Alistair Francis , Peter Maydell , Andrew Jeffery , Joel Stanley , "qemu-arm@nongnu.org" , "qemu-devel@nongnu.org" , "patrick@stwcx.xyz" , Dan Zhang Subject: Re: [PATCH 1/2] hw/adc: Add basic Aspeed ADC model Thread-Topic: [PATCH 1/2] hw/adc: Add basic Aspeed ADC model Thread-Index: AQHXt9aqFuSvfwdGS0m9SH96Hd3T/KvBTEsAgAA1PAA= Date: Sun, 3 Oct 2021 17:03:37 +0000 Message-ID: <2670BB23-A44C-42DD-82E9-80C271AC49D6@fb.com> References: <20211002214414.2858382-1-pdel@fbc.om> <20211002214414.2858382-2-pdel@fbc.om> <168e5568-4cd3-5c4b-35b9-6ba5ced92ece@kaod.org> In-Reply-To: <168e5568-4cd3-5c4b-35b9-6ba5ced92ece@kaod.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: kaod.org; dkim=none (message not signed) header.d=none;kaod.org; dmarc=none action=none header.from=fb.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 074094fe-dd03-46b1-e8aa-08d9868fbdd8 x-ms-traffictypediagnostic: SJ0PR15MB4597: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-fb-source: Internal x-ms-oob-tlc-oobclassifiers: OLM:309; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: SpMarPSTjRTqHiOlUYErhuE+seSh/5SU4a8hv6Oll30zU+GB424Q83CODW90Ag0lTlPXK5qCWvcy6RnW4CteG5Wxkhc1/uMpit+ez7mohK/RBXesvGzUBq0h5KzphGrNFmhR5fILaBY99e2UJhVMI5rnPaQNu5zqLA6S8z8uuqVNc5k+RksPtK6nCpF8zgufgtYkIvYTuoPBOTGNa3dQh5YPP9qH8rCMUuAwLsSFj0zexkj5Cu5jhuKOuvT/4djOlEAMew+/1Ch1mpnRYU9hXwOTMAsMqgQEBaXqIV0+A2zw1Hh1cdqDNWfQ/oVyBuVUc3VnLCwtqi2Oo/63lgZyqv1klQmZ5rCF/mDXDCXw9mqiCQfmr//93sIbWcuORYUWCmnKdovtGr1oRspvgfWHaYGgRCFwtdQCBcxX3T/PSW4WviC3Fx4EY9sMIZAmH8zYvZW9ECv/Y949eDftKXuc6xU66wifR5PGn5d5IAUtxePVILL+8IRtPIxVNTAu0uDu+NsMzDix/IgZOxcuG34rc2ptiUVDJWrwJiPo8eCkQOpvpl9yQijB5S3ESFl5ocMjoV3wxLLYKFQcI20wkD22PxzV58OvYxrEBB0ks6JYOqXgLi7IPiepfr9DjAwos67r/kL0EWS4OMwONNcppDMDEmdWjqqfbd75aUQGFeiH1aJi+r7nsY9tYVvH1XQg+GJr91Dmu2ZubP1ErsvjBN7FT5oLx2k0JQ7gmvVKaScoGe1g8ffoY0bTIbgeVls+YZH4IrZZYQbBDyCWtHPTOzVOLA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR15MB3032.namprd15.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(508600001)(5660300002)(122000001)(83380400001)(86362001)(36756003)(6512007)(54906003)(316002)(71200400001)(30864003)(33656002)(2616005)(38070700005)(6916009)(186003)(38100700002)(6506007)(66556008)(66476007)(2906002)(64756008)(66446008)(66946007)(8936002)(76116006)(66574015)(8676002)(4326008)(6486002)(53546011)(45980500001)(579004)(309714004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?S0IwcDZrWmZzcWhWRThPaUZCMUIya0kzN1FrVHNKc2Y3aGd6QS9DR3hXVmxi?= =?utf-8?B?V2lYQTBwTTMydUhSaFVzcGNzc2k4V3hMSVY5K1ZiZisrc082N3pDMWVhYU96?= =?utf-8?B?MmRXdXIzU0xic3VuZEFFR2NEUkVzV2tPblNydGFOanNwY2FKWmJLQ04veVoy?= =?utf-8?B?K2lxem15cmZvN0l4dGdIUG5DOUdvYUcya2ZiYld3ZVUzckJJQVp2cTV1V1Jv?= =?utf-8?B?a0NlQkI1WkJzSlR4NGl6Y0NSRTM1UVBiaytwUndzZFQvME9vMlRJOUgrdnVT?= =?utf-8?B?YzZXbnpqOEVFS1o0MGdXcTA5K2w4ZDkxTjlKRGc0MUJKeFJvQk0rOXlRVy9T?= =?utf-8?B?SUtpV05qTjBCcjJzWjNncHBtMDYvRUx1WlhtWmlUWVhQRlR6RTJRcG55WjNu?= =?utf-8?B?MUh1NmNNUnk4ZFpwL3lJMlJBODlZT1pHc1RLd3lvek1VM29QWTNzY3RQbXVm?= =?utf-8?B?N0g2MXFVYVlHK0hPVzRkWlRHcUVpbVQrZ3VwaUpVbGh4RTVwU3lDRy9YcTUz?= =?utf-8?B?WENJNFlFVVVIekNLaVQ4Z1FZNkJTSXhNZm50R0RkblZPNFEvTnJ6VDlJbFFB?= =?utf-8?B?c3VoTlNOejMxcVZOYSswNGVVbzVaZlFtRVFSUWZqMThVL24rSW01cEtTSUQ3?= =?utf-8?B?VC9xdXcrYTN1TTdDZXFmMlJ0TTUzT214NEVVTE8yYlZmb2FNMHU4RXEzZXVG?= =?utf-8?B?TkMwc2w2dWlUcWV2cjQzZEFWMmRXTExXK0ovb0RvT29pMm1Ha2JtZTB2REEv?= =?utf-8?B?S2NVTCtWejNUQWZIMjNUTzNOcFdwQXlETDg4MTZ0bzBGNnlUMjl2ZGNWei95?= =?utf-8?B?aEc3MEh0NWwwbmRRNGdaZWo0Ynhzbi9LckIzanRZQUlQQW1FWXdINGJQVlFC?= =?utf-8?B?M1dxVjF2WXpiS2cxNTRRQ3FjdzlOTklDOGI3dENCVGhMMkY4QjAvdStSRXZ6?= =?utf-8?B?Zm9jcXBnY09HL0U2ZXVrT2FZQ3UyVVB6a0loZWltNFNzV0JoWlpVSmFMR1hV?= =?utf-8?B?S1pIZks1OUJIL1N4ckxVSGN2ZXIrVHBWSGRBQ1B2eVVXVkVjTUNiRjZXNitW?= =?utf-8?B?L01FZUk2Z0V0V2dva0p3aUNEalJHUDNoWGxxaUVZUTRaZ3RDUVNlaEtjK0FC?= =?utf-8?B?Nzk2d2ZVTGl1UVdMQW1TMklZMklIb2dLbktYeWlMRmNHb21aZlBVanNHbmFB?= =?utf-8?B?Tk92OHZ2SlcraW8ySTRhaVJ3VjJxeTRUYVdzZG43MWJPWWtHQWtkcWE0OTZa?= =?utf-8?B?UDdsb2w2SzdKQ2JyME14VDVmT014MTZiYmVlcGVPSzEzZThjQk95dXZyUUxE?= =?utf-8?B?YWtRZ21HVThGMUZjSFJwM0NlYUNOZm5FMFdPQUlMK25XL3NmTGRvcngxeWg3?= =?utf-8?B?V2RVUzRrNzBiMUNoaHdxL3oydTRIb1V0TC9oRExFdGJldDc0ZGZFRUViT0tK?= =?utf-8?B?UDNUZXNnOTc4SGtib1RGT00xVEZnaWt2bk5LS0Eza2s2TGR1TTNUSW9aQi9C?= =?utf-8?B?aEIvWnhEd015QU41bmFsa2NuaE8zM2tMNHpnMGMwVWZPejRJdVJtbjMxc1Rl?= =?utf-8?B?RDF1bmtjclJIWXlXbnp3c0xLbDhhQVBlc0VObExRT2VEeHR2VkF6bG81bjBz?= =?utf-8?B?c2licnpneEpacWRISjJQWk5kRDF2Ni9iZjBvRzdGbkZ0MmJsbmJFdVhaUk5M?= =?utf-8?B?eTJySGdTeDQyQnVGNEdPaUJqVllucU90ZEMremdzbVI0bjY1djEwUDRjeTBB?= =?utf-8?B?MTRPblNBKzhWd2QwbHhjRXVkUUF6eTJFNGlpZFJhenFLVXNFZ1BvK09BREpC?= =?utf-8?Q?W8FlAwLgXJA2OEUvJgGN/8gPPGKTBW9ts4Xxk=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <4D64769E3828BB42A67D61C40247EDCD@namprd15.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR15MB3032.namprd15.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 074094fe-dd03-46b1-e8aa-08d9868fbdd8 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Oct 2021 17:03:37.1071 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: BiVpVzMZfRcb7ZnxK9edCl9E+SWYaynnl3kUxTKqA9Y2mq1mOtWdCOtBGXcP2QX6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR15MB4597 X-OriginatorOrg: fb.com X-Proofpoint-GUID: rQIdWpS40lTrWhcvtInSzwf-QSwwf4zR X-Proofpoint-ORIG-GUID: rQIdWpS40lTrWhcvtInSzwf-QSwwf4zR X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475 definitions=2021-10-03_08,2021-10-01_02,2020-04-07_01 X-Proofpoint-Spam-Details: rule=fb_default_notspam policy=fb_default score=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 mlxscore=0 bulkscore=0 malwarescore=0 spamscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 clxscore=1011 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2109230001 definitions=main-2110030122 X-FB-Internal: deliver Received-SPF: pass client-ip=67.231.145.42; envelope-from=prvs=9910b4adaa=pdel@fb.com; helo=mx0a-00082601.pphosted.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.055, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" DQoNCj4gT24gT2N0IDMsIDIwMjEsIGF0IDY6NTMgQU0sIEPDqWRyaWMgTGUgR29hdGVyIDxjbGdA a2FvZC5vcmc+IHdyb3RlOg0KPiANCj4gSGVsbG8gUGV0ZXINCj4gDQo+ICggUGxlYXNlIGZpeCB0 aGUgRnJvbTogcGRlbEBmYmMub20gOikNCg0KT2ggZGFuZyBpdCwgeWVzIEnigJlsbCBmaXggdGhh dC4NCg0KPiANCj4gT24gMTAvMi8yMSAyMzo0NCwgcGRlbEBmYmMub20gd3JvdGU6DQo+PiBGcm9t OiBBbmRyZXcgSmVmZmVyeSA8YW5kcmV3QGFqLmlkLmF1Pg0KPj4gVGhpcyBtb2RlbCBpbXBsZW1l bnRzIGVub3VnaCBiZWhhdmlvdXIgdG8gZG8gYmFzaWMgZnVuY3Rpb25hbGl0eSB0ZXN0cw0KPj4g c3VjaCBhcyBkZXZpY2UgaW5pdGlhbGlzYXRpb24gYW5kIHJlYWQgb3V0IG9mIGR1bW15IHNhbXBs ZSB2YWx1ZXMuIFRoZQ0KPj4gc2FtcGxlIHZhbHVlIGdlbmVyYXRpb24gc3RyYXRlZ3kgaXMgc2lt aWxhciB0byB0aGUgU1RNIEFEQyBhbHJlYWR5IGluDQo+PiB0aGUgdHJlZS4NCj4+IFRoaXMgcGF0 Y2ggd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBBbmRyZXcgSmVmZmVyeSwgYnV0IEkgKFBldGVy KQ0KPj4gcmVmYWN0b3JlZCBpdCB0byB1c2UgYSByZWdzW10gYXJyYXkgYW5kIGFkZGVkIHNvbWUg ZXh0cmEgZ3Vlc3QtZXJyb3INCj4+IHRyYWNlcyBmb3IgdGhlIEFTVDI2MDAgbXVsdGktZW5naW5l IGNvbmZpZ3VyYXRpb24uDQo+PiBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgSmVmZmVyeSA8YW5kcmV3 QGFqLmlkLmF1Pg0KPj4gW2NsZyA6IHN1cHBvcnQgZm9yIG11bHRpcGxlIGVuZ2luZXMgKEFTVDI2 MDApIF0NCj4+IFNpZ25lZC1vZmYtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAa2FvZC4NCj4g DQo+IENvdWxkIHlvdSBwbGVhc2UgYWRkIGEgc3VtbWFyeSBvZiBhbGwgdGhlIGNoYW5nZXMgeW91 IGRpZCBqdXN0IGJlZm9yZQ0KPiB0aGUgcy1vLWIuDQoNCk9oaCB5ZXMsIHllYWggSeKAmWxsIGFk ZDoNCg0KW3BkZWwgOiByZWZhY3RvcmVkIGVuZ2luZSByZWdpc3RlciBzdHJ1Y3QgZmllbGRzIHRv IHJlZ3NbXSBhcnJheSBmaWVsZF0NCltwZGVsIDogYWRkZWQgZ3Vlc3QtZXJyb3IgY2hlY2tpbmcg Zm9yIHVwcGVyLTggY2hhbm5lbCByZWdzIGluIEFTVDI2MDBdDQoNCj4gDQo+PiBTaWduZWQtb2Zm LWJ5OiBQZXRlciBEZWxldm9yeWFzIDxwZGVsQGZiLmNvbT4NCj4gDQo+IExvb2tzIGdvb2QgdG8g bWUuIE9uZSBjb21tZW50IGJlbG93LA0KPiANCj4gDQo+PiAtLS0NCj4+ICBody9hZGMvYXNwZWVk X2FkYy5jICAgICAgICAgfCA0MTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr DQo+PiAgaHcvYWRjL21lc29uLmJ1aWxkICAgICAgICAgIHwgICAxICsNCj4+ICBody9hZGMvdHJh Y2UtZXZlbnRzICAgICAgICAgfCAgIDMgKw0KPj4gIGluY2x1ZGUvaHcvYWRjL2FzcGVlZF9hZGMu aCB8ICA1NSArKysrKw0KPj4gIDQgZmlsZXMgY2hhbmdlZCwgNDc2IGluc2VydGlvbnMoKykNCj4+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgaHcvYWRjL2FzcGVlZF9hZGMuYw0KPj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBpbmNsdWRlL2h3L2FkYy9hc3BlZWRfYWRjLmgNCj4+IGRpZmYgLS1naXQgYS9ody9h ZGMvYXNwZWVkX2FkYy5jIGIvaHcvYWRjL2FzcGVlZF9hZGMuYw0KPj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4+IGluZGV4IDAwMDAwMDAwMDAuLjhhMTMyZWYzNzUNCj4+IC0tLSAvZGV2L251bGwN Cj4+ICsrKyBiL2h3L2FkYy9hc3BlZWRfYWRjLmMNCj4+IEBAIC0wLDAgKzEsNDE3IEBADQo+PiAr LyoNCj4+ICsgKiBBc3BlZWQgQURDDQo+PiArICoNCj4+ICsgKiBDb3B5cmlnaHQgMjAxNy0yMDIx IElCTSBDb3JwLg0KPj4gKyAqDQo+PiArICogQW5kcmV3IEplZmZlcnkgPGFuZHJld0Bhai5pZC5h dT4NCj4+ICsgKg0KPj4gKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxh dGVyDQo+PiArICovDQo+PiArDQo+PiArI2luY2x1ZGUgInFlbXUvb3NkZXAuaCINCj4+ICsjaW5j bHVkZSAicWFwaS9lcnJvci5oIg0KPj4gKyNpbmNsdWRlICJxZW11L2xvZy5oIg0KPj4gKyNpbmNs dWRlICJody9pcnEuaCINCj4+ICsjaW5jbHVkZSAiaHcvcWRldi1wcm9wZXJ0aWVzLmgiDQo+PiAr I2luY2x1ZGUgIm1pZ3JhdGlvbi92bXN0YXRlLmgiDQo+PiArI2luY2x1ZGUgImh3L2FkYy9hc3Bl ZWRfYWRjLmgiDQo+PiArI2luY2x1ZGUgInRyYWNlLmgiDQo+PiArDQo+PiArI2RlZmluZSAgQVNQ RUVEX0FEQ19FTkdJTkVfQ0hfRU5fTUFTSyAgICAgICAgICAgMHhmZmZmMDAwMA0KPj4gKyNkZWZp bmUgICBBU1BFRURfQURDX0VOR0lORV9DSF9FTih4KSAgICAgICAgICAgICgoQklUKHgpKSA8PCAx NikNCj4+ICsjZGVmaW5lICBBU1BFRURfQURDX0VOR0lORV9JTklUICAgICAgICAgICAgICAgICBC SVQoOCkNCj4+ICsjZGVmaW5lICBBU1BFRURfQURDX0VOR0lORV9BVVRPX0NPTVAgICAgICAgICAg ICBCSVQoNSkNCj4+ICsjZGVmaW5lICBBU1BFRURfQURDX0VOR0lORV9DT01QICAgICAgICAgICAg ICAgICBCSVQoNCkNCj4+ICsjZGVmaW5lICBBU1BFRURfQURDX0VOR0lORV9NT0RFX01BU0sgICAg ICAgICAgICAweDAwMDAwMDBlDQo+PiArI2RlZmluZSAgIEFTUEVFRF9BRENfRU5HSU5FX01PREVf T0ZGICAgICAgICAgICAgKDBiMDAwIDw8IDEpDQo+PiArI2RlZmluZSAgIEFTUEVFRF9BRENfRU5H SU5FX01PREVfU1RBTkRCWSAgICAgICAgKDBiMDAxIDw8IDEpDQo+PiArI2RlZmluZSAgIEFTUEVF RF9BRENfRU5HSU5FX01PREVfTk9STUFMICAgICAgICAgKDBiMTExIDw8IDEpDQo+PiArI2RlZmlu ZSAgQVNQRUVEX0FEQ19FTkdJTkVfRU4gICAgICAgICAgICAgICAgICAgQklUKDApDQo+PiArI2Rl ZmluZSBBU1BFRURfQURDX0hZU1RfRU4gICAgICAgICAgICAgICAgICAgICAgQklUKDMxKQ0KPj4g Kw0KPj4gKyNkZWZpbmUgQVNQRUVEX0FEQ19MX01BU0sgICAgICAgKCgxIDw8IDEwKSAtIDEpDQo+ PiArI2RlZmluZSBBU1BFRURfQURDX0woeCkgICAgICAgICAoKHgpICYgQVNQRUVEX0FEQ19MX01B U0spDQo+PiArI2RlZmluZSBBU1BFRURfQURDX0goeCkgICAgICAgICAoKCh4KSA+PiAxNikgJiBB U1BFRURfQURDX0xfTUFTSykNCj4+ICsjZGVmaW5lIEFTUEVFRF9BRENfTEhfTUFTSyAgICAgIChB U1BFRURfQURDX0xfTUFTSyA8PCAxNiB8IEFTUEVFRF9BRENfTF9NQVNLKQ0KPj4gKyNkZWZpbmUg TE9XRVJfQ0hBTk5FTF9NQVNLICAgICAgKCgxIDw8IDEwKSAtIDEpDQo+PiArI2RlZmluZSBMT1dF Ul9DSEFOTkVMX0RBVEEoeCkgICAoKHgpICYgTE9XRVJfQ0hBTk5FTF9NQVNLKQ0KPj4gKyNkZWZp bmUgVVBQRVJfQ0hBTk5FTF9EQVRBKHgpICAgKCgoeCkgPj4gMTYpICYgTE9XRVJfQ0hBTk5FTF9N QVNLKQ0KPj4gKw0KPj4gKyNkZWZpbmUgVE9fUkVHKGFkZHIpIChhZGRyID4+IDIpDQo+PiArDQo+ PiArI2RlZmluZSBFTkdJTkVfQ09OVFJPTCAgICAgICAgICAgICAgVE9fUkVHKDB4MDApDQo+PiAr I2RlZmluZSBJTlRFUlJVUFRfQ09OVFJPTCAgICAgICAgICAgVE9fUkVHKDB4MDQpDQo+PiArI2Rl ZmluZSBWR0FfREVURUNUX0NPTlRST0wgICAgICAgICAgVE9fUkVHKDB4MDgpDQo+PiArI2RlZmlu ZSBDTE9DS19DT05UUk9MICAgICAgICAgICAgICAgVE9fUkVHKDB4MEMpDQo+PiArI2RlZmluZSBE QVRBX0NIQU5ORUxfMV9BTkRfMCAgICAgICAgVE9fUkVHKDB4MTApDQo+PiArI2RlZmluZSBEQVRB X0NIQU5ORUxfN19BTkRfNiAgICAgICAgVE9fUkVHKDB4MUMpDQo+PiArI2RlZmluZSBEQVRBX0NI QU5ORUxfOV9BTkRfOCAgICAgICAgVE9fUkVHKDB4MjApDQo+PiArI2RlZmluZSBEQVRBX0NIQU5O RUxfMTVfQU5EXzE0ICAgICAgVE9fUkVHKDB4MkMpDQo+PiArI2RlZmluZSBCT1VORFNfQ0hBTk5F TF8wICAgICAgICAgICAgVE9fUkVHKDB4MzApDQo+PiArI2RlZmluZSBCT1VORFNfQ0hBTk5FTF83 ICAgICAgICAgICAgVE9fUkVHKDB4NEMpDQo+PiArI2RlZmluZSBCT1VORFNfQ0hBTk5FTF84ICAg ICAgICAgICAgVE9fUkVHKDB4NTApDQo+PiArI2RlZmluZSBCT1VORFNfQ0hBTk5FTF8xNSAgICAg ICAgICAgVE9fUkVHKDB4NkMpDQo+PiArI2RlZmluZSBIWVNURVJFU0lTX0NIQU5ORUxfMCAgICAg ICAgVE9fUkVHKDB4NzApDQo+PiArI2RlZmluZSBIWVNURVJFU0lTX0NIQU5ORUxfNyAgICAgICAg VE9fUkVHKDB4OEMpDQo+PiArI2RlZmluZSBIWVNURVJFU0lTX0NIQU5ORUxfOCAgICAgICAgVE9f UkVHKDB4OTApDQo+PiArI2RlZmluZSBIWVNURVJFU0lTX0NIQU5ORUxfMTUgICAgICAgVE9fUkVH KDB4QUMpDQo+PiArI2RlZmluZSBJTlRFUlJVUFRfU09VUkNFICAgICAgICAgICAgVE9fUkVHKDB4 QzApDQo+PiArI2RlZmluZSBDT01QRU5TQVRJTkdfQU5EX1RSSU1NSU5HICAgVE9fUkVHKDB4QzQp DQo+PiArDQo+PiArc3RhdGljIGlubGluZSB1aW50MzJfdCB1cGRhdGVfY2hhbm5lbHModWludDMy X3QgY3VycmVudCkNCj4+ICt7DQo+PiArICAgIHJldHVybiAoKCgoY3VycmVudCA+PiAxNikgJiBB U1BFRURfQURDX0xfTUFTSykgKyA3KSA8PCAxNikgfA0KPj4gKyAgICAgICAgKChjdXJyZW50ICsg NSkgJiBBU1BFRURfQURDX0xfTUFTSyk7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBib29sIGJy ZWFrc190aHJlc2hvbGQoQXNwZWVkQURDRW5naW5lU3RhdGUgKnMsIGludCByZWcpDQo+PiArew0K Pj4gKyAgICBhc3NlcnQocmVnID49IERBVEFfQ0hBTk5FTF8xX0FORF8wICYmDQo+PiArICAgICAg ICAgICByZWcgPCBEQVRBX0NIQU5ORUxfMV9BTkRfMCArIHMtPm5yX2NoYW5uZWxzIC8gMik7DQo+ PiArDQo+PiArICAgIGludCBhX2JvdW5kc19yZWcgPSBCT1VORFNfQ0hBTk5FTF8wICsgKHJlZyAt IERBVEFfQ0hBTk5FTF8xX0FORF8wKSAqIDI7DQo+PiArICAgIGludCBiX2JvdW5kc19yZWcgPSBh X2JvdW5kc19yZWcgKyAxOw0KPj4gKyAgICB1aW50MzJfdCBhX2FuZF9iID0gcy0+cmVnc1tyZWdd Ow0KPj4gKyAgICB1aW50MzJfdCBhX2JvdW5kcyA9IHMtPnJlZ3NbYV9ib3VuZHNfcmVnXTsNCj4+ ICsgICAgdWludDMyX3QgYl9ib3VuZHMgPSBzLT5yZWdzW2JfYm91bmRzX3JlZ107DQo+PiArICAg IHVpbnQzMl90IGEgPSBBU1BFRURfQURDX0woYV9hbmRfYik7DQo+PiArICAgIHVpbnQzMl90IGIg PSBBU1BFRURfQURDX0goYV9hbmRfYik7DQo+PiArICAgIHVpbnQzMl90IGFfbG93ZXIgPSBBU1BF RURfQURDX0woYV9ib3VuZHMpOw0KPj4gKyAgICB1aW50MzJfdCBhX3VwcGVyID0gQVNQRUVEX0FE Q19IKGFfYm91bmRzKTsNCj4+ICsgICAgdWludDMyX3QgYl9sb3dlciA9IEFTUEVFRF9BRENfTChi X2JvdW5kcyk7DQo+PiArICAgIHVpbnQzMl90IGJfdXBwZXIgPSBBU1BFRURfQURDX0goYl9ib3Vu ZHMpOw0KPj4gKw0KPj4gKyAgICByZXR1cm4gKGEgPCBhX2xvd2VyIHx8IGEgPiBhX3VwcGVyKSB8 fA0KPj4gKyAgICAgICAgICAgKGIgPCBiX2xvd2VyIHx8IGIgPiBiX3VwcGVyKTsNCj4+ICt9DQo+ PiArDQo+PiArc3RhdGljIHVpbnQzMl90IHJlYWRfY2hhbm5lbF9zYW1wbGUoQXNwZWVkQURDRW5n aW5lU3RhdGUgKnMsIGludCByZWcpDQo+PiArew0KPj4gKyAgICBhc3NlcnQocmVnID49IERBVEFf Q0hBTk5FTF8xX0FORF8wICYmDQo+PiArICAgICAgICAgICByZWcgPCBEQVRBX0NIQU5ORUxfMV9B TkRfMCArIHMtPm5yX2NoYW5uZWxzIC8gMik7DQo+PiArDQo+PiArICAgIC8qIFBvb3IgbWFuJ3Mg c2FtcGxpbmcgKi8NCj4+ICsgICAgdWludDMyX3QgdmFsdWUgPSBzLT5yZWdzW3JlZ107DQo+PiAr ICAgIHMtPnJlZ3NbcmVnXSA9IHVwZGF0ZV9jaGFubmVscyhzLT5yZWdzW3JlZ10pOw0KPj4gKw0K Pj4gKyAgICBpZiAoYnJlYWtzX3RocmVzaG9sZChzLCByZWcpKSB7DQo+PiArICAgICAgICBzLT5y ZWdzW0lOVEVSUlVQVF9DT05UUk9MXSB8PSBCSVQocmVnIC0gREFUQV9DSEFOTkVMXzFfQU5EXzAp Ow0KPj4gKyAgICAgICAgcWVtdV9pcnFfcmFpc2Uocy0+aXJxKTsNCj4+ICsgICAgfQ0KPj4gKw0K Pj4gKyAgICByZXR1cm4gdmFsdWU7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyB1aW50NjRfdCBh c3BlZWRfYWRjX2VuZ2luZV9yZWFkKHZvaWQgKm9wYXF1ZSwgaHdhZGRyIGFkZHIsDQo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHNpemUpDQo+ PiArew0KPj4gKyAgICBBc3BlZWRBRENFbmdpbmVTdGF0ZSAqcyA9IEFTUEVFRF9BRENfRU5HSU5F KG9wYXF1ZSk7DQo+PiArICAgIGludCByZWcgPSBUT19SRUcoYWRkcik7DQo+PiArICAgIHVpbnQz Ml90IHZhbHVlID0gMDsNCj4+ICsNCj4+ICsgICAgc3dpdGNoIChyZWcpIHsNCj4+ICsgICAgY2Fz ZSBCT1VORFNfQ0hBTk5FTF84IC4uLiBCT1VORFNfQ0hBTk5FTF8xNToNCj4+ICsgICAgICAgIGlm IChzLT5ucl9jaGFubmVscyA8PSA4KSB7DQo+PiArICAgICAgICAgICAgcWVtdV9sb2dfbWFzayhM T0dfR1VFU1RfRVJST1IsICIlczogZW5naW5lWyV1XTogIg0KPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgImJvdW5kcyByZWdpc3RlciAldSBpbnZhbGlkLCBvbmx5IDAuLi43IHZhbGlkXG4i LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIHMtPmVuZ2luZV9pZCwg cmVnIC0gQk9VTkRTX0NIQU5ORUxfMCk7DQo+PiArICAgICAgICAgICAgYnJlYWs7DQo+PiArICAg ICAgICB9DQo+PiArICAgICAgICAvKiBmYWxsdGhyb3VnaCAqLw0KPj4gKyAgICBjYXNlIEhZU1RF UkVTSVNfQ0hBTk5FTF84IC4uLiBIWVNURVJFU0lTX0NIQU5ORUxfMTU6DQo+PiArICAgICAgICBp ZiAocy0+bnJfY2hhbm5lbHMgPD0gOCkgew0KPj4gKyAgICAgICAgICAgIHFlbXVfbG9nX21hc2so TE9HX0dVRVNUX0VSUk9SLCAiJXM6IGVuZ2luZVsldV06ICINCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICJoeXN0ZXJlc2lzIHJlZ2lzdGVyICV1IGludmFsaWQsIG9ubHkgMC4uLjcgdmFs aWRcbiIsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgcy0+ZW5naW5l X2lkLCByZWcgLSBIWVNURVJFU0lTX0NIQU5ORUxfMCk7DQo+PiArICAgICAgICAgICAgYnJlYWs7 DQo+PiArICAgICAgICB9DQo+PiArICAgICAgICAvKiBmYWxsdGhyb3VnaCAqLw0KPj4gKyAgICBj YXNlIEJPVU5EU19DSEFOTkVMXzAgLi4uIEJPVU5EU19DSEFOTkVMXzc6DQo+PiArICAgIGNhc2Ug SFlTVEVSRVNJU19DSEFOTkVMXzAgLi4uIEhZU1RFUkVTSVNfQ0hBTk5FTF83Og0KPj4gKyAgICBj YXNlIEVOR0lORV9DT05UUk9MOg0KPj4gKyAgICBjYXNlIElOVEVSUlVQVF9DT05UUk9MOg0KPj4g KyAgICBjYXNlIFZHQV9ERVRFQ1RfQ09OVFJPTDoNCj4+ICsgICAgY2FzZSBDTE9DS19DT05UUk9M Og0KPj4gKyAgICBjYXNlIElOVEVSUlVQVF9TT1VSQ0U6DQo+PiArICAgIGNhc2UgQ09NUEVOU0FU SU5HX0FORF9UUklNTUlORzoNCj4+ICsgICAgICAgIHZhbHVlID0gcy0+cmVnc1tyZWddOw0KPj4g KyAgICAgICAgYnJlYWs7DQo+PiArICAgIGNhc2UgREFUQV9DSEFOTkVMXzlfQU5EXzggLi4uIERB VEFfQ0hBTk5FTF8xNV9BTkRfMTQ6DQo+PiArICAgICAgICBpZiAocy0+bnJfY2hhbm5lbHMgPD0g OCkgew0KPj4gKyAgICAgICAgICAgIHFlbXVfbG9nX21hc2soTE9HX0dVRVNUX0VSUk9SLCAiJXM6 IGVuZ2luZVsldV06ICINCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXRhIHJlZ2lz dGVyICV1IGludmFsaWQsIG9ubHkgMC4uLjMgdmFsaWRcbiIsDQo+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICBfX2Z1bmNfXywgcy0+ZW5naW5lX2lkLCByZWcgLSBEQVRBX0NIQU5ORUxfMV9B TkRfMCk7DQo+PiArICAgICAgICAgICAgYnJlYWs7DQo+PiArICAgICAgICB9DQo+PiArICAgICAg ICAvKiBmYWxsdGhyb3VnaCAqLw0KPj4gKyAgICBjYXNlIERBVEFfQ0hBTk5FTF8xX0FORF8wIC4u LiBEQVRBX0NIQU5ORUxfN19BTkRfNjoNCj4+ICsgICAgICAgIHZhbHVlID0gcmVhZF9jaGFubmVs X3NhbXBsZShzLCByZWcpOw0KPj4gKyAgICAgICAgYnJlYWs7DQo+PiArICAgIGRlZmF1bHQ6DQo+ PiArICAgICAgICBxZW11X2xvZ19tYXNrKExPR19VTklNUCwgIiVzOiBlbmdpbmVbJXVdOiAweCUi IEhXQUREUl9QUkl4ICJcbiIsDQo+PiArICAgICAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBz LT5lbmdpbmVfaWQsIGFkZHIpOw0KPj4gKyAgICAgICAgYnJlYWs7DQo+PiArICAgIH0NCj4+ICsN Cj4+ICsgICAgdHJhY2VfYXNwZWVkX2FkY19lbmdpbmVfcmVhZChzLT5lbmdpbmVfaWQsIGFkZHIs IHZhbHVlKTsNCj4+ICsgICAgcmV0dXJuIHZhbHVlOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMg dm9pZCBhc3BlZWRfYWRjX2VuZ2luZV93cml0ZSh2b2lkICpvcGFxdWUsIGh3YWRkciBhZGRyLCB1 aW50NjRfdCB2YWx1ZSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgc2l6ZSkNCj4+ICt7DQo+PiArICAgIEFzcGVlZEFEQ0VuZ2luZVN0YXRlICpz ID0gQVNQRUVEX0FEQ19FTkdJTkUob3BhcXVlKTsNCj4+ICsgICAgaW50IHJlZyA9IFRPX1JFRyhh ZGRyKTsNCj4+ICsgICAgdWludDMyX3QgaW5pdCA9IDA7DQo+PiArDQo+PiArICAgIHRyYWNlX2Fz cGVlZF9hZGNfZW5naW5lX3dyaXRlKHMtPmVuZ2luZV9pZCwgYWRkciwgdmFsdWUpOw0KPj4gKw0K Pj4gKyAgICBzd2l0Y2ggKHJlZykgew0KPj4gKyAgICBjYXNlIEVOR0lORV9DT05UUk9MOg0KPj4g KyAgICAgICAgaW5pdCA9ICEhKHZhbHVlICYgQVNQRUVEX0FEQ19FTkdJTkVfRU4pOw0KPj4gKyAg ICAgICAgaW5pdCAqPSBBU1BFRURfQURDX0VOR0lORV9JTklUOw0KPj4gKw0KPj4gKyAgICAgICAg dmFsdWUgJj0gfkFTUEVFRF9BRENfRU5HSU5FX0lOSVQ7DQo+PiArICAgICAgICB2YWx1ZSB8PSBp bml0Ow0KPj4gKw0KPj4gKyAgICAgICAgdmFsdWUgJj0gfkFTUEVFRF9BRENfRU5HSU5FX0FVVE9f Q09NUDsNCj4+ICsgICAgICAgIGJyZWFrOw0KPj4gKyAgICBjYXNlIElOVEVSUlVQVF9DT05UUk9M Og0KPj4gKyAgICBjYXNlIFZHQV9ERVRFQ1RfQ09OVFJPTDoNCj4+ICsgICAgY2FzZSBDTE9DS19D T05UUk9MOg0KPj4gKyAgICAgICAgYnJlYWs7DQo+PiArICAgIGNhc2UgREFUQV9DSEFOTkVMXzlf QU5EXzggLi4uIERBVEFfQ0hBTk5FTF8xNV9BTkRfMTQ6DQo+PiArICAgICAgICBpZiAocy0+bnJf Y2hhbm5lbHMgPD0gOCkgew0KPj4gKyAgICAgICAgICAgIHFlbXVfbG9nX21hc2soTE9HX0dVRVNU X0VSUk9SLCAiJXM6IGVuZ2luZVsldV06ICINCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICJkYXRhIHJlZ2lzdGVyICV1IGludmFsaWQsIG9ubHkgMC4uLjMgdmFsaWRcbiIsDQo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgcy0+ZW5naW5lX2lkLCByZWcgLSBEQVRB X0NIQU5ORUxfMV9BTkRfMCk7DQo+PiArICAgICAgICAgICAgcmV0dXJuOw0KPj4gKyAgICAgICAg fQ0KPj4gKyAgICAgICAgLyogZmFsbHRocm91Z2ggKi8NCj4+ICsgICAgY2FzZSBCT1VORFNfQ0hB Tk5FTF84IC4uLiBCT1VORFNfQ0hBTk5FTF8xNToNCj4+ICsgICAgICAgIGlmIChzLT5ucl9jaGFu bmVscyA8PSA4KSB7DQo+PiArICAgICAgICAgICAgcWVtdV9sb2dfbWFzayhMT0dfR1VFU1RfRVJS T1IsICIlczogZW5naW5lWyV1XTogIg0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgImJv dW5kcyByZWdpc3RlciAldSBpbnZhbGlkLCBvbmx5IDAuLi43IHZhbGlkXG4iLA0KPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIHMtPmVuZ2luZV9pZCwgcmVnIC0gQk9VTkRT X0NIQU5ORUxfMCk7DQo+PiArICAgICAgICAgICAgcmV0dXJuOw0KPj4gKyAgICAgICAgfQ0KPj4g KyAgICAgICAgLyogZmFsbHRocm91Z2ggKi8NCj4+ICsgICAgY2FzZSBEQVRBX0NIQU5ORUxfMV9B TkRfMCAuLi4gREFUQV9DSEFOTkVMXzdfQU5EXzY6DQo+PiArICAgIGNhc2UgQk9VTkRTX0NIQU5O RUxfMCAuLi4gQk9VTkRTX0NIQU5ORUxfNzoNCj4+ICsgICAgICAgIHZhbHVlICY9IEFTUEVFRF9B RENfTEhfTUFTSzsNCj4+ICsgICAgICAgIGJyZWFrOw0KPj4gKyAgICBjYXNlIEhZU1RFUkVTSVNf Q0hBTk5FTF84IC4uLiBIWVNURVJFU0lTX0NIQU5ORUxfMTU6DQo+PiArICAgICAgICBpZiAocy0+ bnJfY2hhbm5lbHMgPD0gOCkgew0KPj4gKyAgICAgICAgICAgIHFlbXVfbG9nX21hc2soTE9HX0dV RVNUX0VSUk9SLCAiJXM6IGVuZ2luZVsldV06ICINCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICJoeXN0ZXJlc2lzIHJlZ2lzdGVyICV1IGludmFsaWQsIG9ubHkgMC4uLjcgdmFsaWRcbiIs DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgcy0+ZW5naW5lX2lkLCBy ZWcgLSBIWVNURVJFU0lTX0NIQU5ORUxfMCk7DQo+PiArICAgICAgICAgICAgcmV0dXJuOw0KPj4g KyAgICAgICAgfQ0KPj4gKyAgICAgICAgLyogZmFsbHRocm91Z2ggKi8NCj4+ICsgICAgY2FzZSBI WVNURVJFU0lTX0NIQU5ORUxfMCAuLi4gSFlTVEVSRVNJU19DSEFOTkVMXzc6DQo+PiArICAgICAg ICB2YWx1ZSAmPSAoQVNQRUVEX0FEQ19IWVNUX0VOIHwgQVNQRUVEX0FEQ19MSF9NQVNLKTsNCj4+ ICsgICAgICAgIGJyZWFrOw0KPj4gKyAgICBjYXNlIElOVEVSUlVQVF9TT1VSQ0U6DQo+PiArICAg ICAgICB2YWx1ZSAmPSAweGZmZmY7DQo+PiArICAgICAgICBicmVhazsNCj4+ICsgICAgY2FzZSBD T01QRU5TQVRJTkdfQU5EX1RSSU1NSU5HOg0KPj4gKyAgICAgICAgdmFsdWUgJj0gMHhmOw0KPj4g KyAgICAgICAgYnJlYWs7DQo+PiArICAgIGRlZmF1bHQ6DQo+PiArICAgICAgICBxZW11X2xvZ19t YXNrKExPR19VTklNUCwgIiVzOiBlbmdpbmVbJXVdOiAiDQo+PiArICAgICAgICAgICAgICAgICAg ICAgICIweCUiIEhXQUREUl9QUkl4ICIgMHglIiBQUkl4NjQgIlxuIiwNCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgX19mdW5jX18sIHMtPmVuZ2luZV9pZCwgYWRkciwgdmFsdWUpOw0KPj4gKyAg ICAgICAgYnJlYWs7DQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAgcy0+cmVnc1tyZWddID0gdmFs dWU7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBjb25zdCBNZW1vcnlSZWdpb25PcHMgYXNwZWVk X2FkY19lbmdpbmVfb3BzID0gew0KPj4gKyAgICAucmVhZCA9IGFzcGVlZF9hZGNfZW5naW5lX3Jl YWQsDQo+PiArICAgIC53cml0ZSA9IGFzcGVlZF9hZGNfZW5naW5lX3dyaXRlLA0KPj4gKyAgICAu ZW5kaWFubmVzcyA9IERFVklDRV9MSVRUTEVfRU5ESUFOLA0KPj4gKyAgICAudmFsaWQgPSB7DQo+ PiArICAgICAgICAubWluX2FjY2Vzc19zaXplID0gNCwNCj4+ICsgICAgICAgIC5tYXhfYWNjZXNz X3NpemUgPSA0LA0KPj4gKyAgICAgICAgLnVuYWxpZ25lZCA9IGZhbHNlLA0KPj4gKyAgICB9LA0K Pj4gK307DQo+PiArDQo+PiArc3RhdGljIGNvbnN0IHVpbnQzMl90IGFzcGVlZF9hZGNfcmVzZXRz W0FTUEVFRF9BRENfTlJfUkVHU10gPSB7DQo+PiArICAgIFtFTkdJTkVfQ09OVFJPTF0gICAgID0g MHgwMDAwMDAwMCwNCj4+ICsgICAgW0lOVEVSUlVQVF9DT05UUk9MXSAgPSAweDAwMDAwMDAwLA0K Pj4gKyAgICBbVkdBX0RFVEVDVF9DT05UUk9MXSA9IDB4MDAwMDAwMGYsDQo+PiArICAgIFtDTE9D S19DT05UUk9MXSAgICAgID0gMHgwMDAwMDAwZiwNCj4+ICt9Ow0KPj4gKw0KPj4gK3N0YXRpYyB2 b2lkIGFzcGVlZF9hZGNfZW5naW5lX3Jlc2V0KERldmljZVN0YXRlICpkZXYpDQo+PiArew0KPj4g KyAgICBBc3BlZWRBRENFbmdpbmVTdGF0ZSAqcyA9IEFTUEVFRF9BRENfRU5HSU5FKGRldik7DQo+ PiArDQo+PiArICAgIG1lbWNweShzLT5yZWdzLCBhc3BlZWRfYWRjX3Jlc2V0cywgc2l6ZW9mKGFz cGVlZF9hZGNfcmVzZXRzKSk7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyB2b2lkIGFzcGVlZF9h ZGNfZW5naW5lX3JlYWxpemUoRGV2aWNlU3RhdGUgKmRldiwgRXJyb3IgKiplcnJwKQ0KPj4gK3sN Cj4+ICsgICAgQXNwZWVkQURDRW5naW5lU3RhdGUgKnMgPSBBU1BFRURfQURDX0VOR0lORShkZXYp Ow0KPj4gKyAgICBTeXNCdXNEZXZpY2UgKnNiZCA9IFNZU19CVVNfREVWSUNFKGRldik7DQo+PiAr ICAgIGdfYXV0b2ZyZWUgY2hhciAqbmFtZSA9IGdfc3RyZHVwX3ByaW50ZihUWVBFX0FTUEVFRF9B RENfRU5HSU5FICIuJWQiLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcy0+ZW5naW5lX2lkKTsNCj4+ICsNCj4+ICsgICAgYXNzZXJ0KHMtPmVuZ2luZV9p ZCA8IDIpOw0KPj4gKw0KPj4gKyAgICBzeXNidXNfaW5pdF9pcnEoc2JkLCAmcy0+aXJxKTsNCj4+ ICsNCj4+ICsgICAgbWVtb3J5X3JlZ2lvbl9pbml0X2lvKCZzLT5tbWlvLCBPQkpFQ1QocyksICZh c3BlZWRfYWRjX2VuZ2luZV9vcHMsIHMsIG5hbWUsDQo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAweDEwMCk7DQo+PiArDQo+PiArICAgIHN5c2J1c19pbml0X21taW8oc2JkLCAmcy0+bW1p byk7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBjb25zdCBWTVN0YXRlRGVzY3JpcHRpb24gdm1z dGF0ZV9hc3BlZWRfYWRjX2VuZ2luZSA9IHsNCj4+ICsgICAgLm5hbWUgPSBUWVBFX0FTUEVFRF9B REMsDQo+PiArICAgIC52ZXJzaW9uX2lkID0gMSwNCj4+ICsgICAgLm1pbmltdW1fdmVyc2lvbl9p ZCA9IDEsDQo+PiArICAgIC5maWVsZHMgPSAoVk1TdGF0ZUZpZWxkW10pIHsNCj4+ICsgICAgICAg IFZNU1RBVEVfVUlOVDMyX0FSUkFZKHJlZ3MsIEFzcGVlZEFEQ0VuZ2luZVN0YXRlLCBBU1BFRURf QURDX05SX1JFR1MpLA0KPj4gKyAgICAgICAgVk1TVEFURV9FTkRfT0ZfTElTVCgpLA0KPj4gKyAg ICB9DQo+PiArfTsNCj4+ICsNCj4+ICtzdGF0aWMgUHJvcGVydHkgYXNwZWVkX2FkY19lbmdpbmVf cHJvcGVydGllc1tdID0gew0KPj4gKyAgICBERUZJTkVfUFJPUF9VSU5UMzIoImVuZ2luZS1pZCIs IEFzcGVlZEFEQ0VuZ2luZVN0YXRlLCBlbmdpbmVfaWQsIDApLA0KPj4gKyAgICBERUZJTkVfUFJP UF9VSU5UMzIoIm5yLWNoYW5uZWxzIiwgQXNwZWVkQURDRW5naW5lU3RhdGUsIG5yX2NoYW5uZWxz LCAwKSwNCj4+ICsgICAgREVGSU5FX1BST1BfRU5EX09GX0xJU1QoKSwNCj4+ICt9Ow0KPj4gKw0K Pj4gK3N0YXRpYyB2b2lkIGFzcGVlZF9hZGNfZW5naW5lX2NsYXNzX2luaXQoT2JqZWN0Q2xhc3Mg KmtsYXNzLCB2b2lkICpkYXRhKQ0KPj4gK3sNCj4+ICsgICAgRGV2aWNlQ2xhc3MgKmRjID0gREVW SUNFX0NMQVNTKGtsYXNzKTsNCj4+ICsNCj4+ICsgICAgZGMtPnJlYWxpemUgPSBhc3BlZWRfYWRj X2VuZ2luZV9yZWFsaXplOw0KPj4gKyAgICBkYy0+cmVzZXQgPSBhc3BlZWRfYWRjX2VuZ2luZV9y ZXNldDsNCj4+ICsgICAgZGV2aWNlX2NsYXNzX3NldF9wcm9wcyhkYywgYXNwZWVkX2FkY19lbmdp bmVfcHJvcGVydGllcyk7DQo+PiArICAgIGRjLT5kZXNjID0gIkFzcGVlZCBBbmFsb2ctdG8tRGln aXRhbCBFbmdpbmUiOw0KPj4gKyAgICBkYy0+dm1zZCA9ICZ2bXN0YXRlX2FzcGVlZF9hZGNfZW5n aW5lOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgY29uc3QgVHlwZUluZm8gYXNwZWVkX2FkY19l bmdpbmVfaW5mbyA9IHsNCj4+ICsgICAgLm5hbWUgPSBUWVBFX0FTUEVFRF9BRENfRU5HSU5FLA0K Pj4gKyAgICAucGFyZW50ID0gVFlQRV9TWVNfQlVTX0RFVklDRSwNCj4+ICsgICAgLmluc3RhbmNl X3NpemUgPSBzaXplb2YoQXNwZWVkQURDRW5naW5lU3RhdGUpLA0KPj4gKyAgICAuY2xhc3NfaW5p dCA9IGFzcGVlZF9hZGNfZW5naW5lX2NsYXNzX2luaXQsDQo+PiArfTsNCj4+ICsNCj4+ICtzdGF0 aWMgdm9pZCBhc3BlZWRfYWRjX2luc3RhbmNlX2luaXQoT2JqZWN0ICpvYmopDQo+PiArew0KPj4g KyAgICBBc3BlZWRBRENTdGF0ZSAqcyA9IEFTUEVFRF9BREMob2JqKTsNCj4+ICsgICAgQXNwZWVk QURDQ2xhc3MgKmFhYyA9IEFTUEVFRF9BRENfR0VUX0NMQVNTKG9iaik7DQo+PiArICAgIHVpbnQz Ml90IG5yX2NoYW5uZWxzID0gQVNQRUVEX0FEQ19OUl9DSEFOTkVMUyAvIGFhYy0+bnJfZW5naW5l czsNCj4+ICsNCj4+ICsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhYWMtPm5yX2VuZ2luZXM7IGkr Kykgew0KPj4gKyAgICAgICAgQXNwZWVkQURDRW5naW5lU3RhdGUgKmVuZ2luZSA9ICZzLT5lbmdp bmVzW2ldOw0KPj4gKyAgICAgICAgb2JqZWN0X2luaXRpYWxpemVfY2hpbGQob2JqLCAiZW5naW5l WypdIiwgZW5naW5lLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFlQRV9B U1BFRURfQURDX0VOR0lORSk7DQo+PiArICAgICAgICBxZGV2X3Byb3Bfc2V0X3VpbnQzMihERVZJ Q0UoZW5naW5lKSwgImVuZ2luZS1pZCIsIGkpOw0KPiANCj4gV2h5IGhhdmUgeW91IG1vdmVkIHRo ZSBwcm9wZXJ0eSBpbml0aWFsaXphdGlvbiBpbiB0aGUgaW5zdGFuY2VfaW5pdCByb3V0aW5lID8N Cg0KSSB0aGluayBmb3Igc29tZSByZWFzb24gSSB0aG91Z2h0IHRoaXMgd2FzIG5lY2Vzc2FyeSwg b3IgbWF5YmUgSSB0aG91Z2h0IGl0DQp3YXMgbW9yZSBhcHByb3ByaWF0ZT8gSSB0aGluayBJIHdh cyBsb29raW5nIGF0IGFzcGVlZF9zb2MuYyBhbmQgc2F3DQptb3N0IG9mIHRoZSBjaGlsZCBpbml0 aWFsaXphdGlvbiBpbiB0aGUgaW5pdCgpIGZ1bmN0aW9ucywgbm90IHJlYWxpemUoKSwgYnV0DQpJ 4oCZbGwganVzdCBwdXQgYm90aCBwcm9wZXJ0aWVzIGJhY2sgaW4gcmVhbGl6ZSgpLCBJIGRvbuKA mXQgdGhpbmsgdGhlcmUgd2FzIGFueQ0KZnVuY3Rpb25hbCByZWFzb24uDQoNCj4gDQo+IFRoYW5r cywNCj4gDQo+IEMuDQo+IA0KPj4gKyAgICAgICAgcWRldl9wcm9wX3NldF91aW50MzIoREVWSUNF KGVuZ2luZSksICJuci1jaGFubmVscyIsIG5yX2NoYW5uZWxzKTsNCj4+ICsgICAgfQ0KPj4gK30N Cj4+ICsNCj4+ICtzdGF0aWMgdm9pZCBhc3BlZWRfYWRjX3NldF9pcnEodm9pZCAqb3BhcXVlLCBp bnQgbiwgaW50IGxldmVsKQ0KPj4gK3sNCj4+ICsgICAgQXNwZWVkQURDU3RhdGUgKnMgPSBvcGFx dWU7DQo+PiArICAgIEFzcGVlZEFEQ0NsYXNzICphYWMgPSBBU1BFRURfQURDX0dFVF9DTEFTUyhz KTsNCj4+ICsgICAgdWludDMyX3QgcGVuZGluZyA9IDA7DQo+PiArDQo+PiArICAgIC8qIFRPRE86 IHVwZGF0ZSBHbG9iYWwgSVJRIHN0YXR1cyByZWdpc3RlciBvbiBBU1QyNjAwIChOZWVkIHNwZWNz KSAqLw0KPj4gKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGFhYy0+bnJfZW5naW5lczsgaSsrKSB7 DQo+PiArICAgICAgICB1aW50MzJfdCBpcnFfc3RhdHVzID0gcy0+ZW5naW5lc1tpXS5yZWdzW0lO VEVSUlVQVF9DT05UUk9MXSAmIDB4RkY7DQo+PiArICAgICAgICBwZW5kaW5nIHw9IGlycV9zdGF0 dXMgPDwgKGkgKiA4KTsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICBxZW11X3NldF9pcnEocy0+ aXJxLCAhIXBlbmRpbmcpOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgdm9pZCBhc3BlZWRfYWRj X3JlYWxpemUoRGV2aWNlU3RhdGUgKmRldiwgRXJyb3IgKiplcnJwKQ0KPj4gK3sNCj4+ICsgICAg QXNwZWVkQURDU3RhdGUgKnMgPSBBU1BFRURfQURDKGRldik7DQo+PiArICAgIFN5c0J1c0Rldmlj ZSAqc2JkID0gU1lTX0JVU19ERVZJQ0UoZGV2KTsNCj4+ICsgICAgQXNwZWVkQURDQ2xhc3MgKmFh YyA9IEFTUEVFRF9BRENfR0VUX0NMQVNTKGRldik7DQo+PiArDQo+PiArICAgIHFkZXZfaW5pdF9n cGlvX2luX25hbWVkX3dpdGhfb3BhcXVlKERFVklDRShzYmQpLCBhc3BlZWRfYWRjX3NldF9pcnEs DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMsIE5VTEwsIGFh Yy0+bnJfZW5naW5lcyk7DQo+PiArDQo+PiArICAgIHN5c2J1c19pbml0X2lycShzYmQsICZzLT5p cnEpOw0KPj4gKw0KPj4gKyAgICBtZW1vcnlfcmVnaW9uX2luaXQoJnMtPm1taW8sIE9CSkVDVChz KSwgVFlQRV9BU1BFRURfQURDLCAweDEwMDApOw0KPj4gKw0KPj4gKyAgICBzeXNidXNfaW5pdF9t bWlvKHNiZCwgJnMtPm1taW8pOw0KPj4gKw0KPj4gKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGFh Yy0+bnJfZW5naW5lczsgaSsrKSB7DQo+PiArICAgICAgICBPYmplY3QgKmVuZyA9IE9CSkVDVCgm cy0+ZW5naW5lc1tpXSk7DQo+PiArDQo+PiArICAgICAgICBpZiAoIXN5c2J1c19yZWFsaXplKFNZ U19CVVNfREVWSUNFKGVuZyksIGVycnApKSB7DQo+PiArICAgICAgICAgICAgcmV0dXJuOw0KPj4g KyAgICAgICAgfQ0KPj4gKyAgICAgICAgc3lzYnVzX2Nvbm5lY3RfaXJxKFNZU19CVVNfREVWSUNF KGVuZyksIDAsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgcWRldl9nZXRfZ3Bpb19p bihERVZJQ0Uoc2JkKSwgaSkpOw0KPj4gKyAgICAgICAgbWVtb3J5X3JlZ2lvbl9hZGRfc3VicmVn aW9uKCZzLT5tbWlvLCBpICogMHgxMDAsICZzLT5lbmdpbmVzW2ldLm1taW8pOw0KPj4gKyAgICB9 DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyB2b2lkIGFzcGVlZF9hZGNfY2xhc3NfaW5pdChPYmpl Y3RDbGFzcyAqa2xhc3MsIHZvaWQgKmRhdGEpDQo+PiArew0KPj4gKyAgICBEZXZpY2VDbGFzcyAq ZGMgPSBERVZJQ0VfQ0xBU1Moa2xhc3MpOw0KPj4gKyAgICBBc3BlZWRBRENDbGFzcyAqYWFjID0g QVNQRUVEX0FEQ19DTEFTUyhrbGFzcyk7DQo+PiArDQo+PiArICAgIGRjLT5yZWFsaXplID0gYXNw ZWVkX2FkY19yZWFsaXplOw0KPj4gKyAgICBkYy0+ZGVzYyA9ICJBc3BlZWQgQW5hbG9nLXRvLURp Z2l0YWwgQ29udmVydGVyIjsNCj4+ICsgICAgYWFjLT5ucl9lbmdpbmVzID0gMTsNCj4+ICt9DQo+ PiArDQo+PiArc3RhdGljIHZvaWQgYXNwZWVkXzI2MDBfYWRjX2NsYXNzX2luaXQoT2JqZWN0Q2xh c3MgKmtsYXNzLCB2b2lkICpkYXRhKQ0KPj4gK3sNCj4+ICsgICAgRGV2aWNlQ2xhc3MgKmRjID0g REVWSUNFX0NMQVNTKGtsYXNzKTsNCj4+ICsgICAgQXNwZWVkQURDQ2xhc3MgKmFhYyA9IEFTUEVF RF9BRENfQ0xBU1Moa2xhc3MpOw0KPj4gKw0KPj4gKyAgICBkYy0+ZGVzYyA9ICJBU1BFRUQgMjYw MCBBREMgQ29udHJvbGxlciI7DQo+PiArICAgIGFhYy0+bnJfZW5naW5lcyA9IDI7DQo+PiArfQ0K Pj4gKw0KPj4gK3N0YXRpYyBjb25zdCBUeXBlSW5mbyBhc3BlZWRfYWRjX2luZm8gPSB7DQo+PiAr ICAgIC5uYW1lID0gVFlQRV9BU1BFRURfQURDLA0KPj4gKyAgICAucGFyZW50ID0gVFlQRV9TWVNf QlVTX0RFVklDRSwNCj4+ICsgICAgLmluc3RhbmNlX2luaXQgPSBhc3BlZWRfYWRjX2luc3RhbmNl X2luaXQsDQo+PiArICAgIC5pbnN0YW5jZV9zaXplID0gc2l6ZW9mKEFzcGVlZEFEQ1N0YXRlKSwN Cj4+ICsgICAgLmNsYXNzX2luaXQgPSBhc3BlZWRfYWRjX2NsYXNzX2luaXQsDQo+PiArICAgIC5j bGFzc19zaXplID0gc2l6ZW9mKEFzcGVlZEFEQ0NsYXNzKSwNCj4+ICsgICAgLmFic3RyYWN0ICAg PSB0cnVlLA0KPj4gK307DQo+PiArDQo+PiArc3RhdGljIGNvbnN0IFR5cGVJbmZvIGFzcGVlZF8y NDAwX2FkY19pbmZvID0gew0KPj4gKyAgICAubmFtZSA9IFRZUEVfQVNQRUVEXzI0MDBfQURDLA0K Pj4gKyAgICAucGFyZW50ID0gVFlQRV9BU1BFRURfQURDLA0KPj4gK307DQo+PiArDQo+PiArc3Rh dGljIGNvbnN0IFR5cGVJbmZvIGFzcGVlZF8yNTAwX2FkY19pbmZvID0gew0KPj4gKyAgICAubmFt ZSA9IFRZUEVfQVNQRUVEXzI1MDBfQURDLA0KPj4gKyAgICAucGFyZW50ID0gVFlQRV9BU1BFRURf QURDLA0KPj4gK307DQo+PiArDQo+PiArc3RhdGljIGNvbnN0IFR5cGVJbmZvIGFzcGVlZF8yNjAw X2FkY19pbmZvID0gew0KPj4gKyAgICAubmFtZSA9IFRZUEVfQVNQRUVEXzI2MDBfQURDLA0KPj4g KyAgICAucGFyZW50ID0gVFlQRV9BU1BFRURfQURDLA0KPj4gKyAgICAuY2xhc3NfaW5pdCA9IGFz cGVlZF8yNjAwX2FkY19jbGFzc19pbml0LA0KPj4gK307DQo+PiArDQo+PiArc3RhdGljIHZvaWQg YXNwZWVkX2FkY19yZWdpc3Rlcl90eXBlcyh2b2lkKQ0KPj4gK3sNCj4+ICsgICAgdHlwZV9yZWdp c3Rlcl9zdGF0aWMoJmFzcGVlZF9hZGNfZW5naW5lX2luZm8pOw0KPj4gKyAgICB0eXBlX3JlZ2lz dGVyX3N0YXRpYygmYXNwZWVkX2FkY19pbmZvKTsNCj4+ICsgICAgdHlwZV9yZWdpc3Rlcl9zdGF0 aWMoJmFzcGVlZF8yNDAwX2FkY19pbmZvKTsNCj4+ICsgICAgdHlwZV9yZWdpc3Rlcl9zdGF0aWMo JmFzcGVlZF8yNTAwX2FkY19pbmZvKTsNCj4+ICsgICAgdHlwZV9yZWdpc3Rlcl9zdGF0aWMoJmFz cGVlZF8yNjAwX2FkY19pbmZvKTsNCj4+ICt9DQo+PiArDQo+PiArdHlwZV9pbml0KGFzcGVlZF9h ZGNfcmVnaXN0ZXJfdHlwZXMpOw0KPj4gZGlmZiAtLWdpdCBhL2h3L2FkYy9tZXNvbi5idWlsZCBi L2h3L2FkYy9tZXNvbi5idWlsZA0KPj4gaW5kZXggYWM0ZjA5M2ZlYS4uYjI5YWM3Y2NkZiAxMDA2 NDQNCj4+IC0tLSBhL2h3L2FkYy9tZXNvbi5idWlsZA0KPj4gKysrIGIvaHcvYWRjL21lc29uLmJ1 aWxkDQo+PiBAQCAtMSw0ICsxLDUgQEANCj4+ICBzb2Z0bW11X3NzLmFkZCh3aGVuOiAnQ09ORklH X1NUTTMyRjJYWF9BREMnLCBpZl90cnVlOiBmaWxlcygnc3RtMzJmMnh4X2FkYy5jJykpDQo+PiAr c29mdG1tdV9zcy5hZGQod2hlbjogJ0NPTkZJR19BU1BFRURfU09DJywgaWZfdHJ1ZTogZmlsZXMo J2FzcGVlZF9hZGMuYycpKQ0KPj4gIHNvZnRtbXVfc3MuYWRkKHdoZW46ICdDT05GSUdfTlBDTTdY WCcsIGlmX3RydWU6IGZpbGVzKCducGNtN3h4X2FkYy5jJykpDQo+PiAgc29mdG1tdV9zcy5hZGQo d2hlbjogJ0NPTkZJR19aWU5RJywgaWZfdHJ1ZTogZmlsZXMoJ3p5bnEteGFkYy5jJykpDQo+PiAg c29mdG1tdV9zcy5hZGQod2hlbjogJ0NPTkZJR19NQVgxMTFYJywgaWZfdHJ1ZTogZmlsZXMoJ21h eDExMXguYycpKQ0KPj4gZGlmZiAtLWdpdCBhL2h3L2FkYy90cmFjZS1ldmVudHMgYi9ody9hZGMv dHJhY2UtZXZlbnRzDQo+PiBpbmRleCA0NTZmMjFjOGY0Li41YTRjNDQ0ZDc3IDEwMDY0NA0KPj4g LS0tIGEvaHcvYWRjL3RyYWNlLWV2ZW50cw0KPj4gKysrIGIvaHcvYWRjL3RyYWNlLWV2ZW50cw0K Pj4gQEAgLTMsMyArMyw2IEBADQo+PiAgIyBucGNtN3h4X2FkYy5jDQo+PiAgbnBjbTd4eF9hZGNf cmVhZChjb25zdCBjaGFyICppZCwgdWludDY0X3Qgb2Zmc2V0LCB1aW50MzJfdCB2YWx1ZSkgIiAl cyBvZmZzZXQ6IDB4JTA0IiBQUkl4NjQgIiB2YWx1ZSAweCUwNCIgUFJJeDMyDQo+PiAgbnBjbTd4 eF9hZGNfd3JpdGUoY29uc3QgY2hhciAqaWQsIHVpbnQ2NF90IG9mZnNldCwgdWludDMyX3QgdmFs dWUpICIlcyBvZmZzZXQ6IDB4JTA0IiBQUkl4NjQgIiB2YWx1ZSAweCUwNCIgUFJJeDMyDQo+PiAr DQo+PiArYXNwZWVkX2FkY19lbmdpbmVfcmVhZCh1aW50MzJfdCBlbmdpbmVfaWQsIHVpbnQ2NF90 IGFkZHIsIHVpbnQ2NF90IHZhbHVlKSAiZW5naW5lWyV1XSAweCUiIFBSSXg2NCAiIDB4JSIgUFJJ eDY0DQo+PiArYXNwZWVkX2FkY19lbmdpbmVfd3JpdGUodWludDMyX3QgZW5naW5lX2lkLCB1aW50 NjRfdCBhZGRyLCB1aW50NjRfdCB2YWx1ZSkgImVuZ2luZVsldV0gMHglIiBQUkl4NjQgIiAweCUi IFBSSXg2NA0KPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvaHcvYWRjL2FzcGVlZF9hZGMuaCBiL2lu Y2x1ZGUvaHcvYWRjL2FzcGVlZF9hZGMuaA0KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGlu ZGV4IDAwMDAwMDAwMDAuLjJmMTY2ZThiZTENCj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL2lu Y2x1ZGUvaHcvYWRjL2FzcGVlZF9hZGMuaA0KPj4gQEAgLTAsMCArMSw1NSBAQA0KPj4gKy8qDQo+ PiArICogQXNwZWVkIEFEQw0KPj4gKyAqDQo+PiArICogQ29weXJpZ2h0IDIwMTctMjAyMSBJQk0g Q29ycC4NCj4+ICsgKg0KPj4gKyAqIEFuZHJldyBKZWZmZXJ5IDxhbmRyZXdAYWouaWQuYXU+DQo+ PiArICoNCj4+ICsgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcg0K Pj4gKyAqLw0KPj4gKw0KPj4gKyNpZm5kZWYgSFdfQURDX0FTUEVFRF9BRENfSA0KPj4gKyNkZWZp bmUgSFdfQURDX0FTUEVFRF9BRENfSA0KPj4gKw0KPj4gKyNpbmNsdWRlICJody9zeXNidXMuaCIN Cj4+ICsNCj4+ICsjZGVmaW5lIFRZUEVfQVNQRUVEX0FEQyAiYXNwZWVkLmFkYyINCj4+ICsjZGVm aW5lIFRZUEVfQVNQRUVEXzI0MDBfQURDIFRZUEVfQVNQRUVEX0FEQyAiLWFzdDI0MDAiDQo+PiAr I2RlZmluZSBUWVBFX0FTUEVFRF8yNTAwX0FEQyBUWVBFX0FTUEVFRF9BREMgIi1hc3QyNTAwIg0K Pj4gKyNkZWZpbmUgVFlQRV9BU1BFRURfMjYwMF9BREMgVFlQRV9BU1BFRURfQURDICItYXN0MjYw MCINCj4+ICtPQkpFQ1RfREVDTEFSRV9UWVBFKEFzcGVlZEFEQ1N0YXRlLCBBc3BlZWRBRENDbGFz cywgQVNQRUVEX0FEQykNCj4+ICsNCj4+ICsjZGVmaW5lIFRZUEVfQVNQRUVEX0FEQ19FTkdJTkUg ImFzcGVlZC5hZGMuZW5naW5lIg0KPj4gK09CSkVDVF9ERUNMQVJFX1NJTVBMRV9UWVBFKEFzcGVl ZEFEQ0VuZ2luZVN0YXRlLCBBU1BFRURfQURDX0VOR0lORSkNCj4+ICsNCj4+ICsjZGVmaW5lIEFT UEVFRF9BRENfTlJfQ0hBTk5FTFMgMTYNCj4+ICsjZGVmaW5lIEFTUEVFRF9BRENfTlJfUkVHUyAg ICAgKDB4RDAgPj4gMikNCj4+ICsNCj4+ICtzdHJ1Y3QgQXNwZWVkQURDRW5naW5lU3RhdGUgew0K Pj4gKyAgICAvKiA8cHJpdmF0ZT4gKi8NCj4+ICsgICAgU3lzQnVzRGV2aWNlIHBhcmVudDsNCj4+ ICsNCj4+ICsgICAgTWVtb3J5UmVnaW9uIG1taW87DQo+PiArICAgIHFlbXVfaXJxIGlycTsNCj4+ ICsgICAgdWludDMyX3QgZW5naW5lX2lkOw0KPj4gKyAgICB1aW50MzJfdCBucl9jaGFubmVsczsN Cj4+ICsgICAgdWludDMyX3QgcmVnc1tBU1BFRURfQURDX05SX1JFR1NdOw0KPj4gK307DQo+PiAr DQo+PiArc3RydWN0IEFzcGVlZEFEQ1N0YXRlIHsNCj4+ICsgICAgLyogPHByaXZhdGU+ICovDQo+ PiArICAgIFN5c0J1c0RldmljZSBwYXJlbnQ7DQo+PiArDQo+PiArICAgIE1lbW9yeVJlZ2lvbiBt bWlvOw0KPj4gKyAgICBxZW11X2lycSBpcnE7DQo+PiArDQo+PiArICAgIEFzcGVlZEFEQ0VuZ2lu ZVN0YXRlIGVuZ2luZXNbMl07DQo+PiArfTsNCj4+ICsNCj4+ICtzdHJ1Y3QgQXNwZWVkQURDQ2xh c3Mgew0KPj4gKyAgICBTeXNCdXNEZXZpY2VDbGFzcyBwYXJlbnRfY2xhc3M7DQo+PiArDQo+PiAr ICAgIHVpbnQzMl90IG5yX2VuZ2luZXM7DQo+PiArfTsNCj4+ICsNCj4+ICsjZW5kaWYgLyogSFdf QURDX0FTUEVFRF9BRENfSCAqLw0KPiANCg0K