Received: by 2002:ab2:3350:0:b0:1f4:6588:b3a7 with SMTP id o16csp1283961lqe; Mon, 8 Apr 2024 04:50:50 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWhxD++kRDgi+yIN54uaC8AeMRTDln/UjvHkIWSo5Jqbul5R+UZtBBavQOvd2DJRKgNIm9gX+N3bQx0eqikfYXi0QCBiFBvUkr+4MSg7A== X-Google-Smtp-Source: AGHT+IFRgjKe0DwWQxlKn7tyftEY1i8Pn1qX3gRHn924MCjX9TOEUl/H+1BouOInX1yg3Ot9MmMB X-Received: by 2002:aa7:88d3:0:b0:6e6:9552:cf33 with SMTP id k19-20020aa788d3000000b006e69552cf33mr8436163pff.31.1712577050391; Mon, 08 Apr 2024 04:50:50 -0700 (PDT) Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id z16-20020a634c10000000b005dc84ba3c3asi6118968pga.287.2024.04.08.04.50.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Apr 2024 04:50:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-135286-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=F8eBcZx9; dkim=pass header.i=@mediateko365.onmicrosoft.com header.s=selector2-mediateko365-onmicrosoft-com header.b=BVpiJmBx; arc=fail (signature failed); spf=pass (google.com: domain of linux-kernel+bounces-135286-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-135286-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id ED4F5280CDE for ; Mon, 8 Apr 2024 11:50:49 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3F48669DF5; Mon, 8 Apr 2024 11:50:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="F8eBcZx9"; dkim=pass (1024-bit key) header.d=mediateko365.onmicrosoft.com header.i=@mediateko365.onmicrosoft.com header.b="BVpiJmBx" Received: from mailgw01.mediatek.com (unknown [60.244.123.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4B8A9651B4; Mon, 8 Apr 2024 11:50:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=60.244.123.138 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712577038; cv=fail; b=p2R8fiZgRAnzOd/nyjrq868/6oC7j10Ssom+EJwq6gbLHqwU3lDrpM3kRQZjrm/oj9plSEObBIeIjjlYgaBYXSfrvfi0rt/+cqKu1YEqwa5h64hWpZSf3Kd6omii4bp3Y9VYle7Ckrn3ctulZmrLFHRPIWi5SvKVM5G5fXR6hQM= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712577038; c=relaxed/simple; bh=xl2tZ8jGtF7uBM3sAwiKe4GMfEMcD2gH24p6r3EtmOk=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=L0ytA1qPDMSvOKgNQyMajmgw1zaSTgrRQtOm4Tf5Af5NAf8UoFEshvIAKVXUMVJc5vorJl2CxaBYGhEFrsiH1EDe9j+3PH/YSsc6a6Kv6HzCRlMgnt6Rpgai7QClP6q18jk5is/WLu6k7Kn91/M3mPIU2SWON2Au90bkVKxuI/U= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=mediatek.com; spf=pass smtp.mailfrom=mediatek.com; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b=F8eBcZx9; dkim=pass (1024-bit key) header.d=mediateko365.onmicrosoft.com header.i=@mediateko365.onmicrosoft.com header.b=BVpiJmBx; arc=fail smtp.client-ip=60.244.123.138 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=mediatek.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mediatek.com X-UUID: 30c54ee6f59e11eeb8927bc1f75efef4-20240408 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=MIME-Version:Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References:Message-ID:Date:Subject:CC:To:From; bh=xl2tZ8jGtF7uBM3sAwiKe4GMfEMcD2gH24p6r3EtmOk=; b=F8eBcZx99w/yY/REWffy6cxMMxdaopHfBDgz94hYg2DMxthEBf8T116tn8sw6j7nQO6/6l/vFRnuSjKIzjNedNYivds1jc8tgCpoSGZJXbVpzd49gcy5a9L1OW5ut9MsCJavHwG67AbW1snOD7n2r868XzNtU85iIqTqY+kiETM=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.37,REQID:1081f1bb-93e1-459e-b55c-c34e6ccf73d9,IP:0,U RL:0,TC:0,Content:-5,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION :release,TS:-5 X-CID-META: VersionHash:6f543d0,CLOUDID:27c26b82-4f93-4875-95e7-8c66ea833d57,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:11|1,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES :1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_ULN X-UUID: 30c54ee6f59e11eeb8927bc1f75efef4-20240408 Received: from mtkmbs14n1.mediatek.inc [(172.21.101.75)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1732794861; Mon, 08 Apr 2024 19:50:26 +0800 Received: from mtkmbs10n1.mediatek.inc (172.21.101.34) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Mon, 8 Apr 2024 19:50:25 +0800 Received: from HK3PR03CU002.outbound.protection.outlook.com (172.21.101.237) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server id 15.2.1118.26 via Frontend Transport; Mon, 8 Apr 2024 19:50:25 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Dt31gOUdEfmKbgFSunEwlJCt7k6Wp4qqcNC0CrN6n0LGSEdMz/zMp/sQPmRyzmd6ZxHEd6+1wwCjKZ9mQMb+/oFd8J1LrMbJRDKU7N0x6Tri1NLXuDtC11D7+mB3yTsB3Xw8Ji+pHEk7ZrMOpdLCVz3YLijIdgYygGfbhIvSMLzO62JfWsQ/NtjfqiXCqx6gUagl87b7DbmQyS+enJDx/NY1IGv4W4J7n6qcULnf/TV4ZL0+hlx+cA4VodBiVkn7XGLFTaXK44Hx6vmONhAqI+DcgCI4FdvfYO88cI6SVcpt1aYIMHLOkkW2xkdtF3jVNEv6qEmw7xdBSNAuEdrwqA== 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=xl2tZ8jGtF7uBM3sAwiKe4GMfEMcD2gH24p6r3EtmOk=; b=Gp6QXasTkPcwt8KXgczA4GKcKmHxzu611ZnA0hDTQeUQg+DQi0ZXxWdMgXre748xhwaAI9Mmn5pOdFydPmC03MNQRmk5c3ZGietZ35y1bU7lxu2bHz4sxU3B29f9rOn9cSdHb8UxyovEa/MgAJwuSmXYnHApOnBk+a8409ISET6NAfmVmGdCQ2qT5TOZWvVABKITl3bKmKtCUASuM1v/RpslPd7dfpwWBNr470dWcV9yNfqhbNF2Os1K/2wm/zVkNmfIMmSw/M/OWAMM+dreIvomN5P96/0Z1/p0uNQIRIUd2IOJaFZLn21fl6zdA/39d0+Nzoau8Eaenx6ibZyC2A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mediatek.com; dmarc=pass action=none header.from=mediatek.com; dkim=pass header.d=mediatek.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mediateko365.onmicrosoft.com; s=selector2-mediateko365-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xl2tZ8jGtF7uBM3sAwiKe4GMfEMcD2gH24p6r3EtmOk=; b=BVpiJmBxzNO8uxg2FJls+9LwA9l7u3SJi0yY3bD+yXmVJw2bNh73dH64Awavl0fV8ZQVgFqkDZ1UGfksgrPThU1NAJSoO0jj3mAZISVPSBH9kbs+XzDhOBTPHmyE/b6bct+TjPuZDMDCQCdrSLrhrYDHcr6cYE+LrTMt4pJAkUM= Received: from TYZPR03MB5566.apcprd03.prod.outlook.com (2603:1096:400:53::7) by SI2PR03MB6757.apcprd03.prod.outlook.com (2603:1096:4:1ec::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Mon, 8 Apr 2024 11:50:22 +0000 Received: from TYZPR03MB5566.apcprd03.prod.outlook.com ([fe80::b39a:4ac4:5bf8:88d]) by TYZPR03MB5566.apcprd03.prod.outlook.com ([fe80::b39a:4ac4:5bf8:88d%5]) with mapi id 15.20.7409.042; Mon, 8 Apr 2024 11:50:22 +0000 From: =?utf-8?B?WmhpIE1hbyAo5q+b5pm6KQ==?= To: "mchehab@kernel.org" , "sakari.ailus@linux.intel.com" , "robh+dt@kernel.org" , "kieran.bingham@ideasonboard.com" , "krzysztof.kozlowski+dt@linaro.org" CC: "heiko@sntech.de" , "gerald.loacker@wolfvision.net" , "linux-kernel@vger.kernel.org" , "yunkec@chromium.org" , "linux-mediatek@lists.infradead.org" , "dan.scally@ideasonboard.com" , "linux-media@vger.kernel.org" , =?utf-8?B?U2hlbmduYW4gV2FuZyAo546L5Zyj55S3KQ==?= , "hdegoede@redhat.com" , "linus.walleij@linaro.org" , "andy.shevchenko@gmail.com" , =?utf-8?B?WWF5YSBDaGFuZyAo5by16ZuF5riFKQ==?= , "bingbu.cao@intel.com" , "jacopo.mondi@ideasonboard.com" , "jernej.skrabec@gmail.com" , "devicetree@vger.kernel.org" , "conor+dt@kernel.org" , Project_Global_Chrome_Upstream_Group , "10572168@qq.com" <10572168@qq.com>, "hverkuil-cisco@xs4all.nl" , "tomi.valkeinen@ideasonboard.com" , "linux-arm-kernel@lists.infradead.org" , "matthias.bgg@gmail.com" , "laurent.pinchart@ideasonboard.com" , "angelogioacchino.delregno@collabora.com" , "macromorgan@hotmail.com" Subject: Re: [PATCH v3 2/2] media: i2c: Add GC05A2 image sensor driver Thread-Topic: [PATCH v3 2/2] media: i2c: Add GC05A2 image sensor driver Thread-Index: AQHahXiixB7RecOA8Umb54p45nq6r7Fci2qAgAG/gQA= Date: Mon, 8 Apr 2024 11:50:21 +0000 Message-ID: <5cdf1a2530ffd927fe2e4130ab6666724cf3354d.camel@mediatek.com> References: <20240403033825.9072-1-zhi.mao@mediatek.com> <20240403033825.9072-3-zhi.mao@mediatek.com> <171248091995.2374960.12981271990757968652@ping.linuxembedded.co.uk> In-Reply-To: <171248091995.2374960.12981271990757968652@ping.linuxembedded.co.uk> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYZPR03MB5566:EE_|SI2PR03MB6757:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ap4kKjoWCO7C4pDaebbd4X3DSf+48ZU/0mVPlKrCkwaU2V2uM/K46bwEuNYQ/PQhcHeVBrwqy9rrGuN8X0a3ajo/BjEwPNCe/MZtH0xpEkdeTa/SUBOFEh+Kt/2FNxDpkQ8WG4dv0itzE2Gj6SG/TU3/+1joQsmQZmTO+3kTyNZnZ2rw7AVe76MpPT1zW4PpzvlhoIRoYWxxUj8t5B7NYtRk6TCqxhU44e6Uv3GM5mdbXlfMj51Lu40gGfS4ccRGJoPvtMU5HSsaZ7EYkoqcT/X4aVc2NVJdYn4qjeNANfkthKYbHta8Ca2XynW85l8AFTvkB64ufPv+5j3wj35wG+LxNPSBiCBmRuqdnnFm2FkpQIzPSCpxIIjNyLjlCSDA7nyUc/bVZ1vp6E2Xvzhp8PwlCo5HJnNlPwaaxGw5o1ZC0L86KC5jcjWAc8NA0XlGql9OSGnv86BoesLtxlwIjx7uNffOKUm4yYTLkZb+twP78EsVO9zAx1iPGUSOBh9O4XzRe5LuhlEDqkxHylKaoZUUp/JgUkF/MSut7nG/z2oqaq75OKE42zX6v4YYt3wVSes7vbZH/tEFnCm+h27fHwWMLN1XG7jz50rx4S8xu6XCADiWPq48apUSVkyBkWi6nRekRhPxyA0Li81zHq5tO3bv08kC+rms4DigJaSjDrQ= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR03MB5566.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(7416005)(366007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aG1QTXh4U3lVTEZoVmJjWEgrWkRVUjQzVlZnT1J4dWF1RG8xcHkrSzh3MUw0?= =?utf-8?B?WWo4eGo3NE4vcXNvVk9WbkxLMUVreVV4bXVzOHl0amdEV0hmVytFWVlxSVpq?= =?utf-8?B?WmVoZStraUx5SjRDSEdTS3BuR0U5ZTFGS2NJOXhGeDYzdXBWRXhKU3RObUFh?= =?utf-8?B?QjlmbEl4Tm01NmdEd0VRbVVMdktWM1NYa3VZWmJVS3RHbThpSFNUS3FDalVu?= =?utf-8?B?VmV5TlBFZVJORExXMll3UUM1VnhoNzgxaXlMamNNRDJrYTJCY3NDcXlYMGhK?= =?utf-8?B?dkZTTFovM3dBWlR4ZzBCQmpoQjcvRWFGV3Rhb0svcXhpZ3Q1WVp3Z3hjVFFm?= =?utf-8?B?SlRsWWJhRUdmdHBGcDV0akNyQUxjaHUyWHkxNy9yOERaMTBTNE94cnArdTRV?= =?utf-8?B?RHdvR3FSakwvb3FldW1oWFErL0dRNWxpMEt1TnFnMEVtQWVsWVNVbHJ1cStM?= =?utf-8?B?bVRmVGxZQXh5dUZXRmFQYmQ3L0NOSnVkUkg1Ymh4Zytab2UvaUJlQWk3RGpW?= =?utf-8?B?ZmFRQ0x3ekVvS3V0NkxmRCtiZnFmcTR0Tjk2eFVtb2g2bW1mb3hLaXlEckMw?= =?utf-8?B?UklSeVJwQ014bmQ0Nit2UjQrbzJ5L2p1QkZIMkZKRlFmbzRlcmtDRjg2Q0lQ?= =?utf-8?B?OVhiVXF1dWY2OFpEOExDNC9vWk1UNUU3SnFYTHpmUkRVZ3kvQmUxVFJVdjAy?= =?utf-8?B?WFY3dWEzRFoxaFhKRGxkWDB5NG04Nzk1bVlnRjl0WVM1M0ZlRFExS3ZnTUl5?= =?utf-8?B?TjRjVzgyZERGWk5vRkpXMjBWQ0FUNld4VjZkNGpJWDNPODJHNWFlK0F0ZHhG?= =?utf-8?B?R0g2UGtmVGdlbWY4bGRYM1dYQjd5UnNHajZNYmljTXB4ZnJKZjZydUJvdUhj?= =?utf-8?B?WlN5dUVxUkRvMUo0VUtyUnBqalFocWR1Vys0R0FubFN0NzdRUUVoaVNjb2Js?= =?utf-8?B?MEw4UmhOWHNvSnZMSDF5bWR0eE0yVGZUSktyZnRSVzBhVWd6WnBFamhXSUph?= =?utf-8?B?M1UvNjNEejhnY3NFUnF0TVJHOFZLM21sd3VYYU9UWjBuTVNwd2VvZUM1djZD?= =?utf-8?B?aU1jb0F2MWJ2Tll4eUNQZTYxN08xWXRHTnBQeUFBd1k4YzBSU3ZXOWZtWnFx?= =?utf-8?B?RVFST2pCRy9mL3FjREdrU3JJanllVzZOSzM3aHlianZJK3RPVlNKdkxUTmgv?= =?utf-8?B?aHpxRjZHQVdoS3VXbU1KZTFwa0RYMDdkcDREY0dOS0xTMUxwaHRFSjJDWUEw?= =?utf-8?B?ay9icmFaZjgwdGtTYTU3Y0JETlJYdkh2NFpMTkhxQ2hJcUhpNldIZzZmSnFI?= =?utf-8?B?QlpQeUxra3VIWmFxTW9RQkY5ZDhiSmN6WUx2clh0THBnWTBibkFvUitCWVpz?= =?utf-8?B?ZHNZUlkyRFU0MGY0bGpnVGFNQUtWckV4b1MzOHo2emZwQXMyQlhZcXBEZkgz?= =?utf-8?B?ZDU0TkRrempKYXpNUVBzVHB5Qk5sM0lsV2tUNjZZVGxkZkZPWE5mZjIwa3lO?= =?utf-8?B?RURFZDNRQ0MvZlk1Q2hFelN1eHp4LzBCdFBLcXI5Sng0R3h2a1RvNTJjQVBh?= =?utf-8?B?bmhNSXMzNkFnWEg4d2NDV3ZWRkZEWWUyOHpMNm45OHdCRlFjd1NnWHVJaEg5?= =?utf-8?B?WjRZNWZKMVZnTnk5ZktJMDRjbzhvUmhab0dqR2tqMVB1U21xRGY2Tzg5UXVi?= =?utf-8?B?WllEbWRNUkNXZTBRcjFMSTVPVGczWDY2TnQ0ZW5yUmd3b3BObFRJYmNudkZT?= =?utf-8?B?bStaM0NXaVMxQ2M0L1BOdy91SytXZVdocDFjTFBUQk9PRG1Cd00rbnplT3Uy?= =?utf-8?B?b3NCcVh0SFFoYTBpSlcwQmUzVS82bkZIOHNzRHhLU2RlTWJJL3BtVmcySW9G?= =?utf-8?B?dkp0WndnZFAvMFZWL2htbkxpb3RUZ0JqUUJRU2tnVmlZRmh1QzNIcG11T3da?= =?utf-8?B?WTR4TVBiSkM1dnZ4UVIwSHZocHR3TmphbGZxcHlUME9HQjZ5MS9Bc2N1Rm1r?= =?utf-8?B?SFJNUC9ieUV1YTFBTjB0UkUxWm5MVERaOWVTQ3lYWjFyZjlYRDNSUjB2R01l?= =?utf-8?B?UXM1c0N4d2VkU2NWR3h0SmR4VzRQYm9URFBaV0F1V1IrZ3Roemp6U2JMNmhZ?= =?utf-8?B?VG52T1VvV3hRamRSY2QvR1FTbXExRmRwY05LZ1NkN1hucEw3UlJXQUYvdEJG?= =?utf-8?B?d3c9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <349C51BBC44E2B4EBD70590954A077AE@apcprd03.prod.outlook.com> Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYZPR03MB5566.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2b396681-b28e-429e-84ef-08dc57c2122b X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Apr 2024 11:50:21.9628 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a7687ede-7a6b-4ef6-bace-642f677fbe31 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: OC+g8AQDq0HXbQPU5PmkwUoDGDw7yfeIQqeafroUEgbGHK3zjc1t7BOPKheVmfHA2gZb5+rfc9BPH6PYuq/Z8w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SI2PR03MB6757 X-TM-AS-Product-Ver: SMEX-14.0.0.3152-9.1.1006-23728.005 X-TM-AS-Result: No-10--32.355400-8.000000 X-TMASE-MatchedRID: SncuatAvtBfUL3YCMmnG4uYAh37ZsBDC1kqyrcMalqUNht78/JfyBDC0 pJIQUiJOfo8j6P5UYCEWTfwACuySAQcKIilyxY2CbMGKOuLn5FXlzNrv3o7R76vM+zzl/BSTlkF CJs1e2foKQlYjD1FzcNqbafKgqP4W1OA+2Akm/pRVTfJWlqPdDIyzstdwoG+P59HjT5jz3uSls1 qCEYlfQzP0nv6v4BMn+TIkuzPHNXhplzIuzbcqNuqwWVBfMuvoTJDl9FKHbrlXopZjyO6CZfP3h woTrI86A5wHZv7Of71Wz2eiIuWGmq6EIEWX9vreH5YQyOg71ZZaNaxZBRbNWkSc9UNOqyUcujw9 BXXmuOCcPcDHCp4L+uSWVqW5qzmOcMMjBRRYYhwMH4SsGvRsA167veYUroY0Ye1mzp7dkwedo5U EjL5fzHEBxSB78+Qre31kMskO0q9CR/FskDJObuKXavbHY/C1dwX/SSKrKHif6L4mqa+4ZMYEj5 ow6WtccsFeixTL+MLihr7BrnRJ+MiLtyO0mH+oU+OjsPhIWDiB01driWko21aPuNuLiATSkk1UC Wc2BMgdIgZzz31aXVYmNzmHN2ST1s+kPzxsmFWVOwZbcOalS9SqEluSYtV72UMnOuXprEV7fgZk h9jvPYxacE+CxCBjZ2YAp+3nNLUn3G5it1hkMnb856I+r27hCTC7P/Pxm3pMSusaE6IwuK1uNfg Qaqvv9Hi3jmTxUPa94uw+kgsSi1IMRaTXK1BM58dk5sbwmyhYN1akkye0qC8zQZ2rR/Op8bf335 SL+12h/9Db0raJ+4nU3r+19uneTnDUd82lsjieAiCmPx4NwMFrpUbb72MU1B0Hk1Q1KyLUZxEAl FPo846HM5rqDwqtlExlQIQeRG0= X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--32.355400-8.000000 X-TMASE-Version: SMEX-14.0.0.3152-9.1.1006-23728.005 X-TM-SNTS-SMTP: 775C085AA84D7C975DC4156EBA550D593C955A246FBA91A8C2A92FF9234499822000:8 SGkgS2llcmFuLA0KDQpUaGFua3MgZm9yIHlvdXIgcmV2aWV3IHRoaXMgcGF0Y2guDQoNCkl0IHNl ZW1zIHRoYXQgdGhlcmUgYXJlIHNvbWUgZGlmZmljdWx0IGZvciB1cyhNZWRpYXRlaykgdG8gZXhw bGFpbg0KdGhlc2UgcmVnaXN0ZXIgc2V0dGluZyBjb21tZW50cy4NCkFzIHRoZXNlIHNldHRpbmdz IGFyZSByZWxlYXNlZCBieSBHQyBzZW5zb3IgdmVuZG9yLCBhbmQgd2UgaGF2ZSBub3QNCmRldGFp bGVkIGRhdGFzaGVldCBkZXNjcmliZWQgdGhlbS4NCkFuZCBldmVuIGlmIHNlbmQgdGhlIGxldHRl ciB0byBhc2sgc2Vuc29yIHZlbmRvciwgSSBhbSBhZnJhaWQgdGhlcmUgbWF5DQpiZSBub3QgYSBj bGVhciByZXNwb25zZS4NCu+7vw0KQ2FuIHdlIGp1c3QgZm9jdXMgb24gdGhlIGRyaXZlciBjb2Rl IGZ1bmN0aW9uIGFuZCBjb250cm9sIGZsb3cgcGFydD8NCg0KDQoNCg0KT24gU3VuLCAyMDI0LTA0 LTA3IGF0IDEwOjA4ICswMTAwLCBLaWVyYW4gQmluZ2hhbSB3cm90ZToNCj4gIAkgDQo+IEV4dGVy bmFsIGVtYWlsIDogUGxlYXNlIGRvIG5vdCBjbGljayBsaW5rcyBvciBvcGVuIGF0dGFjaG1lbnRz IHVudGlsDQo+IHlvdSBoYXZlIHZlcmlmaWVkIHRoZSBzZW5kZXIgb3IgdGhlIGNvbnRlbnQuDQo+ ICBIZWxsbywNCj4gDQo+IFRoYW5rcyBmb3IgaGVscGluZyBleHRlbmRpbmcgdGhlIGtlcm5lbHMg c2Vuc29yIGRyaXZlciBzdXBwb3J0Lg0KPiANCj4gTXkgY29tbWVudHMgYmVsb3cgY2FuIGxpa2Vs eSBiZSB0YWtlbiB3aXRoIGEgcGluY2ggb2Ygc2FsdCwgYXMgdGhleQ0KPiBhcmUNCj4gbW9zdGx5 IGFyb3VuZCB0aGUgdGFibGVkIHJlZ2lzdGVyIHZhbHVlcyAuLi4gYnV0IHdlIGhhdmUgbWFueSBk cml2ZXJzDQo+IHdoaWNoIGFyZSBiaW5hcnkgYmxvYnMgb2Ygc2Vuc29yIHJlZ2lzdGVyIHZhbHVl cyBhbmQgSSB0aGluayBpdCB3b3VsZA0KPiBiZQ0KPiBmYXIgbW9yZSBiZW5lZmljaWFsIHRvIGNs ZWFuIHRoZXNlIHVwIHdoZXJlIHBvc3NpYmxlLi4uDQo+IA0KPiBTbyB0aGUgZmlyc3QgcXVlc3Rp b24gaXMgLi4uIENhbiB3ZSA/DQo+IA0KPiANCj4gDQo+IFF1b3RpbmcgWmhpIE1hbyAoMjAyNC0w NC0wMyAwNDozODoyNSkNCj4gPiBBZGQgYSBWNEwyIHN1Yi1kZXZpY2UgZHJpdmVyIGZvciBHYWxh eHljb3JlIEdDMDVBMiBpbWFnZSBzZW5zb3IuDQo+ID4gDQo+ID4gU2lnbmVkLW9mZi1ieTogWmhp IE1hbyA8emhpLm1hb0BtZWRpYXRlay5jb20+DQo+ID4gLS0tDQo+ID4gIGRyaXZlcnMvbWVkaWEv aTJjL0tjb25maWcgIHwgICAxMCArDQo+ID4gIGRyaXZlcnMvbWVkaWEvaTJjL01ha2VmaWxlIHwg ICAgMSArDQo+ID4gIGRyaXZlcnMvbWVkaWEvaTJjL2djMDVhMi5jIHwgMTM4Mw0KPiArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCAxMzk0 IGluc2VydGlvbnMoKykNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbWVkaWEvaTJj L2djMDVhMi5jDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvaTJjL0tjb25m aWcgYi9kcml2ZXJzL21lZGlhL2kyYy9LY29uZmlnDQo+ID4gaW5kZXggNTZmMjc2YjkyMGFiLi45 Nzk5M2JmMTYwZjkgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9tZWRpYS9pMmMvS2NvbmZpZw0K PiA+ICsrKyBiL2RyaXZlcnMvbWVkaWEvaTJjL0tjb25maWcNCj4gPiBAQCAtNzAsNiArNzAsMTYg QEAgY29uZmlnIFZJREVPX0dDMDMwOA0KPiA+ICAgICAgICAgICBUbyBjb21waWxlIHRoaXMgZHJp dmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUNCj4gPiAgICAgICAgICAgbW9kdWxl IHdpbGwgYmUgY2FsbGVkIGdjMDMwOC4NCj4gPiAgDQo+ID4gK2NvbmZpZyBWSURFT19HQzA1QTIN Cj4gPiArICAgICAgIHRyaXN0YXRlICJHYWxheHlDb3JlIGdjMDVhMiBzZW5zb3Igc3VwcG9ydCIN Cj4gPiArICAgICAgIHNlbGVjdCBWNEwyX0NDSV9JMkMNCj4gPiArICAgICAgIGhlbHANCj4gPiAr ICAgICAgICAgVGhpcyBpcyBhIFZpZGVvNExpbnV4MiBzZW5zb3IgZHJpdmVyIGZvciB0aGUgR2Fs YXh5Q29yZQ0KPiBnYzA1YTINCj4gPiArICAgICAgICAgY2FtZXJhLg0KPiA+ICsNCj4gPiArICAg ICAgICAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTog dGhlDQo+ID4gKyAgICAgICAgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBnYzA1YTIuDQo+ID4gKw0K PiA+ICBjb25maWcgVklERU9fR0MyMTQ1DQo+ID4gICAgICAgICBzZWxlY3QgVjRMMl9DQ0lfSTJD DQo+ID4gICAgICAgICB0cmlzdGF0ZSAiR2FsYXh5Q29yZSBHQzIxNDUgc2Vuc29yIHN1cHBvcnQi DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvaTJjL01ha2VmaWxlDQo+IGIvZHJpdmVy cy9tZWRpYS9pMmMvTWFrZWZpbGUNCj4gPiBpbmRleCBkZmJlNjQ0OGI1NDkuLjhlZDZmYWYwZjg1 NCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL21lZGlhL2kyYy9NYWtlZmlsZQ0KPiA+ICsrKyBi L2RyaXZlcnMvbWVkaWEvaTJjL01ha2VmaWxlDQo+ID4gQEAgLTM4LDYgKzM4LDcgQEAgb2JqLSQo Q09ORklHX1ZJREVPX0RXOTc2OCkgKz0gZHc5NzY4Lm8NCj4gPiAgb2JqLSQoQ09ORklHX1ZJREVP X0RXOTgwN19WQ00pICs9IGR3OTgwNy12Y20ubw0KPiA+ICBvYmotJChDT05GSUdfVklERU9fRVQ4 RUs4KSArPSBldDhlazgvDQo+ID4gIG9iai0kKENPTkZJR19WSURFT19HQzAzMDgpICs9IGdjMDMw OC5vDQo+ID4gK29iai0kKENPTkZJR19WSURFT19HQzA1QTIpICs9IGdjMDVhMi5vDQo+ID4gIG9i ai0kKENPTkZJR19WSURFT19HQzIxNDUpICs9IGdjMjE0NS5vDQo+ID4gIG9iai0kKENPTkZJR19W SURFT19ISTU1NikgKz0gaGk1NTYubw0KPiA+ICBvYmotJChDT05GSUdfVklERU9fSEk4NDYpICs9 IGhpODQ2Lm8NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9pMmMvZ2MwNWEyLmMNCj4g Yi9kcml2ZXJzL21lZGlhL2kyYy9nYzA1YTIuYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ ID4gaW5kZXggMDAwMDAwMDAwMDAwLi40NjFkMzMwNTVhM2INCj4gPiAtLS0gL2Rldi9udWxsDQo+ ID4gKysrIGIvZHJpdmVycy9tZWRpYS9pMmMvZ2MwNWEyLmMNCj4gPiBAQCAtMCwwICsxLDEzODMg QEANCj4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCj4gPiArLyoNCj4g PiArICogRHJpdmVyIGZvciBHYWxheHlDb3JlIGdjMDVhMiBpbWFnZSBzZW5zb3INCj4gPiArICoN Cj4gPiArICogQ29weXJpZ2h0IDIwMjQgTWVkaWFUZWsNCj4gPiArICoNCj4gPiArICogWmhpIE1h byA8emhpLm1hb0BtZWRpYXRlay5jb20+DQo+ID4gKyAqLw0KPiA+ICsjaW5jbHVkZSA8bGludXgv YXJyYXlfc2l6ZS5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvYml0cy5oPg0KPiA+ICsjaW5jbHVk ZSA8bGludXgvY2xrLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9jb250YWluZXJfb2YuaD4NCj4g PiArI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9kZXZpY2Uu aD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L2Vyci5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvZ3Bp by9jb25zdW1lci5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvbWF0aDY0Lmg+DQo+ID4gKyNpbmNs dWRlIDxsaW51eC9tb2RfZGV2aWNldGFibGUuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3BtX3J1 bnRpbWUuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3Byb3BlcnR5Lmg+DQo+ID4gKyNpbmNsdWRl IDxsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3R5cGVz Lmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC91bml0cy5oPg0KPiA+ICsNCj4gPiArI2luY2x1ZGUg PG1lZGlhL3Y0bDItY2NpLmg+DQo+ID4gKyNpbmNsdWRlIDxtZWRpYS92NGwyLWN0cmxzLmg+DQo+ ID4gKyNpbmNsdWRlIDxtZWRpYS92NGwyLWV2ZW50Lmg+DQo+ID4gKyNpbmNsdWRlIDxtZWRpYS92 NGwyLWZ3bm9kZS5oPg0KPiA+ICsjaW5jbHVkZSA8bWVkaWEvdjRsMi1zdWJkZXYuaD4NCj4gPiAr DQo+ID4gKyNkZWZpbmUgR0MwNUEyX1JFR19URVNUX1BBVFRFUk5fRU4gQ0NJX1JFRzgoMHgwMDhj KQ0KPiA+ICsjZGVmaW5lIEdDMDVBMl9SRUdfVEVTVF9QQVRURVJOX0lEWCBDQ0lfUkVHOCgweDAw OGQpDQo+ID4gKyNkZWZpbmUgR0MwNUEyX1RFU1RfUEFUVEVSTl9FTiAweDAxDQo+ID4gKw0KPiA+ ICsjZGVmaW5lIEdDMDVBMl9TVFJFQU1JTkdfUkVHIENDSV9SRUc4KDB4MDEwMCkNCj4gPiArDQo+ ID4gKyNkZWZpbmUgR0MwNUEyX0ZMSVBfUkVHIENDSV9SRUc4KDB4MDEwMSkNCj4gPiArI2RlZmlu ZSBHQzA1QTJfRkxJUF9IX01BU0sgQklUKDApDQo+ID4gKyNkZWZpbmUgR0MwNUEyX0ZMSVBfVl9N QVNLIEJJVCgxKQ0KPiA+ICsNCj4gPiArI2RlZmluZSBHQzA1QTJfRVhQX1JFRyBDQ0lfUkVHMTYo MHgwMjAyKQ0KPiA+ICsjZGVmaW5lIEdDMDVBMl9FWFBfTUFSR0lOIDE2DQo+ID4gKyNkZWZpbmUg R0MwNUEyX0VYUF9NSU4gNA0KPiA+ICsjZGVmaW5lIEdDMDVBMl9FWFBfU1RFUCAxDQo+ID4gKw0K PiA+ICsjZGVmaW5lIEdDMDVBMl9BR0FJTl9SRUcgQ0NJX1JFRzE2KDB4MDIwNCkNCj4gPiArI2Rl ZmluZSBHQzA1QTJfQUdBSU5fTUlOIDEwMjQNCj4gPiArI2RlZmluZSBHQzA1QTJfQUdBSU5fTUFY ICgxMDI0ICogMTYpDQo+ID4gKyNkZWZpbmUgR0MwNUEyX0FHQUlOX1NURVAgMQ0KPiA+ICsNCj4g PiArI2RlZmluZSBHQzA1QTJfRlJBTUVfTEVOR1RIX1JFRyBDQ0lfUkVHMTYoMHgwMzQwKQ0KPiA+ ICsjZGVmaW5lIEdDMDVBMl9WVFNfTUFYIDB4ZmZmZg0KPiA+ICsNCj4gPiArI2RlZmluZSBHQzA1 QTJfUkVHX0NISVBfSUQgQ0NJX1JFRzE2KDB4MDNmMCkNCj4gPiArI2RlZmluZSBHQzA1QTJfQ0hJ UF9JRCAweDA1YTINCj4gPiArDQo+ID4gKyNkZWZpbmUgR0MwNUEyX05BVElWRV9XSURUSCAyNTky DQo+ID4gKyNkZWZpbmUgR0MwNUEyX05BVElWRV9IRUlHSFQgMTk0NA0KPiA+ICsNCj4gPiArI2Rl ZmluZSBHQzA1QTJfREVGQVVMVF9DTEtfRlJFUSAoMjQgKiBIWl9QRVJfTUhaKQ0KPiA+ICsjZGVm aW5lIEdDMDVBMl9NQlVTX0NPREUgTUVESUFfQlVTX0ZNVF9TR1JCRzEwXzFYMTANCj4gPiArI2Rl ZmluZSBHQzA1QTJfREFUQV9MQU5FUyAyDQo+ID4gKyNkZWZpbmUgR0MwNUEyX1JHQl9ERVBUSCAx MA0KPiA+ICsjZGVmaW5lIEdDMDVBMl9TTEVFUF9VUyAgKDIgKiBVU0VDX1BFUl9NU0VDKQ0KPiA+ ICsNCj4gPiArc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IGdjMDVhMl90ZXN0X3BhdHRlcm5fbWVu dVtdID0gew0KPiA+ICsgICAgICAgIk5vIFBhdHRlcm4iLCAgIkZhZGVfdG9fZ3JheV9Db2xvciBC YXIiLCAiQ29sb3IgQmFyIiwNCj4gPiArICAgICAgICJQTjkiLCAgICAgICAgICJIb3JpemVudGFs X2dyYWRpZW50IiwgICAgIkNoZWNrYm9hcmQNCj4gUGF0dGVybiIsDQo+ID4gKyAgICAgICAiU2xh bnQiLCAgICAgICAiUmVzb2x1dGlvbiIsICAgICAgICAgICAgICJTb2xpZCBCbGFjayIsDQo+ID4g KyAgICAgICAiU29saWQgV2hpdGUiLA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0 IHM2NCBnYzA1YTJfbGlua19mcmVxX21lbnVfaXRlbXNbXSA9IHsNCj4gPiArICAgICAgICg0NDgg KiBIWl9QRVJfTUhaKSwNCj4gPiArICAgICAgICgyMjQgKiBIWl9QRVJfTUhaKSwNCj4gPiArfTsN Cj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBjaGFyICpjb25zdCBnYzA1YTJfc3VwcGx5X25hbWVb XSA9IHsNCj4gPiArICAgICAgICJhdmRkIiwNCj4gPiArICAgICAgICJkdmRkIiwNCj4gPiArICAg ICAgICJkb3ZkZCIsDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgZ2MwNWEyIHsNCj4gPiAr ICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldjsNCj4gPiArICAgICAgIHN0cnVjdCB2NGwyX3N1YmRl diBzZDsNCj4gPiArICAgICAgIHN0cnVjdCBtZWRpYV9wYWQgcGFkOw0KPiA+ICsNCj4gPiArICAg ICAgIHN0cnVjdCBjbGsgKnhjbGs7DQo+ID4gKyAgICAgICBzdHJ1Y3QgcmVndWxhdG9yX2J1bGtf ZGF0YQ0KPiBzdXBwbGllc1tBUlJBWV9TSVpFKGdjMDVhMl9zdXBwbHlfbmFtZSldOw0KPiA+ICsg ICAgICAgc3RydWN0IGdwaW9fZGVzYyAqcmVzZXRfZ3BpbzsNCj4gPiArDQo+ID4gKyAgICAgICBz dHJ1Y3QgdjRsMl9jdHJsX2hhbmRsZXIgY3RybHM7DQo+ID4gKyAgICAgICBzdHJ1Y3QgdjRsMl9j dHJsICpwaXhlbF9yYXRlOw0KPiA+ICsgICAgICAgc3RydWN0IHY0bDJfY3RybCAqbGlua19mcmVx Ow0KPiA+ICsgICAgICAgc3RydWN0IHY0bDJfY3RybCAqZXhwb3N1cmU7DQo+ID4gKyAgICAgICBz dHJ1Y3QgdjRsMl9jdHJsICp2Ymxhbms7DQo+ID4gKyAgICAgICBzdHJ1Y3QgdjRsMl9jdHJsICpo Ymxhbms7DQo+ID4gKyAgICAgICBzdHJ1Y3QgdjRsMl9jdHJsICpoZmxpcDsNCj4gPiArICAgICAg IHN0cnVjdCB2NGwyX2N0cmwgKnZmbGlwOw0KPiA+ICsNCj4gPiArICAgICAgIHN0cnVjdCByZWdt YXAgKnJlZ21hcDsNCj4gPiArICAgICAgIHVuc2lnbmVkIGxvbmcgbGlua19mcmVxX2JpdG1hcDsN Cj4gPiArDQo+ID4gKyAgICAgICAvKiBUcnVlIGlmIHRoZSBkZXZpY2UgaGFzIGJlZW4gaWRlbnRp ZmllZCAqLw0KPiA+ICsgICAgICAgYm9vbCBpZGVudGlmaWVkOw0KPiA+ICsgICAgICAgY29uc3Qg c3RydWN0IGdjMDVhMl9tb2RlICpjdXJfbW9kZTsNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0cnVj dCBnYzA1YTJfcmVnX2xpc3Qgew0KPiA+ICsgICAgICAgdTMyIG51bV9vZl9yZWdzOw0KPiA+ICsg ICAgICAgY29uc3Qgc3RydWN0IGNjaV9yZWdfc2VxdWVuY2UgKnJlZ3M7DQo+ID4gK307DQo+ID4g Kw0KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNjaV9yZWdfc2VxdWVuY2UgbW9kZV8yNTkyeDE5 NDRbXSA9IHsNCj4gPiArICAgICAgIC8qIHN5c3RlbSAqLw0KPiA+ICsgICAgICAgeyBDQ0lfUkVH OCgweDAxMzUpLCAweDAxIH0sDQo+ID4gKw0KPiA+ICsgICAgICAgLyogcHJlX3NldHRpbmcgKi8N Cj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMDg0KSwgMHgyMSB9LA0KPiA+ICsgICAgICAgeyBD Q0lfUkVHOCgweDBkMDUpLCAweGNjIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDIxOCks IDB4MDAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMDVlKSwgMHg0OCB9LA0KPiA+ICsg ICAgICAgeyBDQ0lfUkVHOCgweDBkMDYpLCAweDAxIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4 KDB4MDAwNyksIDB4MTYgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMTAxKSwgMHgwMCB9 LA0KPiA+ICsNCj4gPiArICAgICAgIC8qIGFuYWxvZyAqLw0KPiA+ICsgICAgICAgeyBDQ0lfUkVH OCgweDAzNDIpLCAweDA3IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDM0MyksIDB4Mjgg fSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMjIwKSwgMHgwNyB9LA0KPiA+ICsgICAgICAg eyBDQ0lfUkVHOCgweDAyMjEpLCAweGQwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDIw MiksIDB4MDcgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMjAzKSwgMHgzMiB9LA0KPiA+ ICsgICAgICAgeyBDQ0lfUkVHOCgweDAzNDApLCAweDA3IH0sDQo+ID4gKyAgICAgICB7IENDSV9S RUc4KDB4MDM0MSksIDB4ZjAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMjE5KSwgMHgw MCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAzNDYpLCAweDAwIH0sDQo+ID4gKyAgICAg ICB7IENDSV9SRUc4KDB4MDM0NyksIDB4MDQgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgw ZDE0KSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBkMTMpLCAweDA1IH0sDQo+ ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGQxNiksIDB4MDUgfSwNCj4gPiArICAgICAgIHsgQ0NJ X1JFRzgoMHgwZDE1KSwgMHgxZCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAwYzApLCAw eDBhIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDBjMSksIDB4MzAgfSwNCj4gPiArICAg ICAgIHsgQ0NJX1JFRzgoMHgwMzRhKSwgMHgwNyB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgw eDAzNGIpLCAweGE4IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGUwYSksIDB4MDAgfSwN Cj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwZTBiKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBD Q0lfUkVHOCgweDBlMGUpLCAweDAzIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGUwZiks IDB4MDAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwZTA2KSwgMHgwYSB9LA0KPiA+ICsg ICAgICAgeyBDQ0lfUkVHOCgweDBlMjMpLCAweDE1IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4 KDB4MGUyNCksIDB4MTUgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwZTJhKSwgMHgxMCB9 LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBlMmIpLCAweDEwIH0sDQo+ID4gKyAgICAgICB7 IENDSV9SRUc4KDB4MGUxNyksIDB4NDkgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwZTFi KSwgMHgxYyB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBlM2EpLCAweDM2IH0sDQo+ID4g KyAgICAgICB7IENDSV9SRUc4KDB4MGQxMSksIDB4ODQgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JF RzgoMHgwZTUyKSwgMHgxNCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAwMGIpLCAweDEw IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDAwOCksIDB4MDggfSwNCj4gPiArICAgICAg IHsgQ0NJX1JFRzgoMHgwMjIzKSwgMHgxNyB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBk MjcpLCAweDM5IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGQyMiksIDB4MDAgfSwNCj4g PiArICAgICAgIHsgQ0NJX1JFRzgoMHgwM2Y2KSwgMHgwZCB9LA0KPiA+ICsgICAgICAgeyBDQ0lf UkVHOCgweDBkMDQpLCAweDA3IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDNmMyksIDB4 NzIgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwM2Y0KSwgMHhiOCB9LA0KPiA+ICsgICAg ICAgeyBDQ0lfUkVHOCgweDAzZjUpLCAweGJjIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4 MGQwMiksIDB4NzMgfSwNCj4gPiArDQo+ID4gKyAgICAgICAvKiBhdXRvIGxvYWQgc3RhcnQgKi8N Cj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMGNiKSwgMHgwMCB9LA0KPiA+ICsNCj4gPiArICAg ICAgIC8qIE9VVCAyNTkyKjE5NDQgKi8NCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMzUwKSwg MHgwMSB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAzNTMpLCAweDAwIH0sDQo+ID4gKyAg ICAgICB7IENDSV9SRUc4KDB4MDM1NCksIDB4MDggfSwNCj4gDQo+ID4gKyAgICAgICB7IENDSV9S RUc4KDB4MDM0YyksIDB4MGEgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMzRkKSwgMHgy MCB9LA0KPiANCj4gU2hvdWxkL0NvdWxkIHRoaXMgYmUNCj4gICAgICAgICB7IENDSV9SRUcxNigw eDAzNGMpLCAyNTkyIH0sIC8qIFdpZHRoICovDQo+IA0KPiANCj4gPiArICAgICAgIHsgQ0NJX1JF RzgoMHgwMjFmKSwgMHgxNCB9LA0KPiA+ICsNCj4gPiArICAgICAgIC8qIE1JUEkgKi8NCj4gPiAr ICAgICAgIHsgQ0NJX1JFRzgoMHgwMTA3KSwgMHgwNSB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVH OCgweDAxMTcpLCAweDAxIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGQ4MSksIDB4MDAg fSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwZDg0KSwgMHgwYyB9LA0KPiA+ICsgICAgICAg eyBDQ0lfUkVHOCgweDBkODUpLCAweGE4IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGQ4 NiksIDB4MDYgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwZDg3KSwgMHg1NSB9LA0KPiA+ ICsgICAgICAgeyBDQ0lfUkVHOCgweDBkYjMpLCAweDA2IH0sDQo+ID4gKyAgICAgICB7IENDSV9S RUc4KDB4MGRiNCksIDB4MDggfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwZGI1KSwgMHgx ZSB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBkYjYpLCAweDAyIH0sDQo+ID4gKyAgICAg ICB7IENDSV9SRUc4KDB4MGRiOCksIDB4MTIgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgw ZGI5KSwgMHgwYSB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBkOTMpLCAweDA2IH0sDQo+ ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGQ5NCksIDB4MDkgfSwNCj4gPiArICAgICAgIHsgQ0NJ X1JFRzgoMHgwZDk1KSwgMHgwZCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBkOTkpLCAw eDBiIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDA4NCksIDB4MDEgfSwNCj4gPiArDQo+ ID4gKyAgICAgICAvKiBPVVQgKi8NCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMTEwKSwgMHgw MSB9LA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBjY2lfcmVnX3Nl cXVlbmNlIG1vZGVfMTI4MHg3MjBbXSA9IHsNCj4gPiArICAgICAgIC8qIHN5c3RlbSAqLw0KPiA+ ICsgICAgICAgeyBDQ0lfUkVHOCgweDAxMzUpLCAweDA1IH0sDQo+IA0KPiBJbiAyNTkyeDE5NDQg dGhpcyBpcyAweDAxLiBEbyB5b3UgaGF2ZSBhIGRhdGFzaGVldD8gQ2FuIHlvdSBleHBsYWluDQo+ IHdoeQ0KPiB0aGV5IGFyZSBkaWZmZXJlbnQ/IENhbiB5b3UgYWRkIHJlZ2lzdGVyIGRlZmluaXRp b25zIHRoYXQgaGF2ZSBuYW1lcw0KPiB0bw0KPiBtYWtlIHRoaXMgbW9yZSBtYWludGFpbmFibGUg b3IgZXh0ZW5kYWJsZSBpbiB0aGUgZnV0dXJlPw0KPiANCj4gVGhlcmUncyBkaXNjdXNzaW9uIGlu IHRoZSByZWNlbnQgc2VyaWVzIGltcHJvdmluZyB0aGUgSU1YMjU4IHdoaWNoDQo+IG1ha2VzDQo+ IG1lIHdvbmRlciBpZiB3ZSBzaG91bGQgdHJ5IGhhcmRlciB0byBoYXZlIHNlbnNvciBkcml2ZXJz IHdpdGggY2xlYXJlcg0KPiBkZWZpbml0aW9ucy4NCj4gDQo+IA0KPiA+ICsNCj4gPiArICAgICAg IC8qcHJlX3NldHRpbmcqLw0KPiANCj4gLyogcHJlX3NldHRpbmcgKi8gPw0KPiANCj4gPiArICAg ICAgIHsgQ0NJX1JFRzgoMHgwMDg0KSwgMHgyMSB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgw eDBkMDUpLCAweGNjIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDIxOCksIDB4ODAgfSwN Cj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMDVlKSwgMHg0OSB9LA0KPiA+ICsgICAgICAgeyBD Q0lfUkVHOCgweDBkMDYpLCAweDgxIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDAwNyks IDB4MTYgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMTAxKSwgMHgwMCB9LA0KPiANCj4g SW4gMjU5MngxOTQ0LCBvbmx5IHJlZ2lzdGVyIDB4MDIxOCBkaWZmZXJzLiBXaHk/IFdoYXQgaXMg dGhhdD8gQ2FuIGl0DQo+IGJlDQo+IGJyb2tlbiBvdXQgdG8gYSBmdW5jdGlvbiB0aGF0IGFwcGxp ZXMgdGhlIGNvcnJlY3QgY29uZmlndXJhdGlvbiBhdA0KPiBzdGFydHV1cCBiYXNlZCBvbiBhIHBh cmFtZXRlciBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIHRoaXMgdGFibGUgc2V0Pw0KPiANCj4gPiAr DQo+ID4gKyAgICAgICAvKiBhbmFsb2cgKi8NCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMzQy KSwgMHgwNyB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAzNDMpLCAweDEwIH0sDQo+ID4g KyAgICAgICB7IENDSV9SRUc4KDB4MDIyMCksIDB4MDcgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JF RzgoMHgwMjIxKSwgMHhkMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAyMDIpLCAweDAz IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDIwMyksIDB4MzIgfSwNCj4gPiArICAgICAg IHsgQ0NJX1JFRzgoMHgwMzQwKSwgMHgwNCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAz NDEpLCAweDA4IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDIxOSksIDB4MDAgfSwNCj4g PiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMzQ2KSwgMHgwMSB9LA0KPiA+ICsgICAgICAgeyBDQ0lf UkVHOCgweDAzNDcpLCAweDAwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGQxNCksIDB4 MDAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwZDEzKSwgMHgwNSB9LA0KPiA+ICsgICAg ICAgeyBDQ0lfUkVHOCgweDBkMTYpLCAweDA1IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4 MGQxNSksIDB4MWQgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMGMwKSwgMHgwYSB9LA0K PiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAwYzEpLCAweDMwIH0sDQo+ID4gKyAgICAgICB7IEND SV9SRUc4KDB4MDM0YSksIDB4MDUgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMzRiKSwg MHhiMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBlMGEpLCAweDAwIH0sDQo+ID4gKyAg ICAgICB7IENDSV9SRUc4KDB4MGUwYiksIDB4MDAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgo MHgwZTBlKSwgMHgwMyB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBlMGYpLCAweDAwIH0s DQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGUwNiksIDB4MGEgfSwNCj4gPiArICAgICAgIHsg Q0NJX1JFRzgoMHgwZTIzKSwgMHgxNSB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBlMjQp LCAweDE1IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGUyYSksIDB4MTAgfSwNCj4gPiAr ICAgICAgIHsgQ0NJX1JFRzgoMHgwZTJiKSwgMHgxMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVH OCgweDBlMTcpLCAweDQ5IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGUxYiksIDB4MWMg fSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwZTNhKSwgMHgzNiB9LA0KPiA+ICsgICAgICAg eyBDQ0lfUkVHOCgweDBkMTEpLCAweDg0IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGU1 MiksIDB4MTQgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMDBiKSwgMHgwZSB9LA0KPiA+ ICsgICAgICAgeyBDQ0lfUkVHOCgweDAwMDgpLCAweDAzIH0sDQo+ID4gKyAgICAgICB7IENDSV9S RUc4KDB4MDIyMyksIDB4MTYgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwZDI3KSwgMHgz OSB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBkMjIpLCAweDAwIH0sDQo+ID4gKyAgICAg ICB7IENDSV9SRUc4KDB4MDNmNiksIDB4MGQgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgw ZDA0KSwgMHgwNyB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAzZjMpLCAweDcyIH0sDQo+ ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDNmNCksIDB4YjggfSwNCj4gPiArICAgICAgIHsgQ0NJ X1JFRzgoMHgwM2Y1KSwgMHhiYyB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBkMDIpLCAw eDczIH0sDQo+ID4gKw0KPiANCj4gQXJlIGFueSBvZiB0aG9zZSBhYmxlIHRvIGJlIGJyb2tlbiBv dXQgdG8gbmFtZWQgcmVnaXN0ZXIgdG8gYmUgbW9yZQ0KPiBjbGVhciBpbiB0aGVpciBpbnRlbnQ/ DQo+IA0KPiA+ICsgICAgICAgLyogYXV0byBsb2FkIHN0YXJ0ICovDQo+ID4gKyAgICAgICB7IEND SV9SRUc4KDB4MDBjYiksIDB4ZmMgfSwNCj4gPiArDQo+IA0KPiBXaHkgaXMgdGhpcyBhdXRvIGxv YWQgc3RhcnQgc28gZGlmZmVyZW50IHRvIHRoZSBvdGhlciBtb2RlcyAnYXV0bw0KPiBsb2FkDQo+ IHN0YXJ0Jz8gV2hhdCBkbyB0aGUgYml0cyByZWZlciB0byA/DQo+IA0KPiA+ICsgICAgICAgLyog T1VUIDEyODB4NzIwICovDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDM1MCksIDB4MDEgfSwN Cj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMzUzKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBD Q0lfUkVHOCgweDAzNTQpLCAweDBjIH0sDQo+IA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAz NGMpLCAweDA1IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDM0ZCksIDB4MDAgfSwNCj4g DQo+IFNob3VsZC9Db3VsZCB0aGlzIGJlIA0KPiAgICAgICAgICB7IENDSV9SRUcxNigweDAzNGMp LCAxMjgwIH0sDQo+IA0KPiBBcmUgdGhlcmUgYW55IG90aGVyIHJlZ2lzdGVyIHNldHRpbmdzIHRo YXQgd291bGQgbWFrZSBtb3JlIHNlbnNlIHRvDQo+IGJlDQo+IGluIGRlY2ltYWwgdW5pdHMgdGhh dCBtYXRjaCB0aGVpciBhY3R1YWwgY29udGV4dD8NCj4gDQo+IA0KPiA+ICsgICAgICAgeyBDQ0lf UkVHOCgweDAyMWYpLCAweDE0IH0sDQo+IA0KPiBJIGRvbid0IHNlZSBhIHNldHRpbmcgZm9yIDcy MC8weDJkMC4gRG8gdGhlc2UgcmVnaXN0ZXJzIG9ubHkgc2V0IHRoZQ0KPiB3aWR0aD8NCj4gDQo+ ID4gKw0KPiA+ICsgICAgICAgLyogTUlQSSAqLw0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAx MDcpLCAweDA1IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDExNyksIDB4MDEgfSwNCj4g PiArICAgICAgIHsgQ0NJX1JFRzgoMHgwZDgxKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lf UkVHOCgweDBkODQpLCAweDA2IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGQ4NSksIDB4 NDAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwZDg2KSwgMHgwMyB9LA0KPiA+ICsgICAg ICAgeyBDQ0lfUkVHOCgweDBkODcpLCAweDIxIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4 MGRiMyksIDB4MDMgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwZGI0KSwgMHgwNCB9LA0K PiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBkYjUpLCAweDBkIH0sDQo+ID4gKyAgICAgICB7IEND SV9SRUc4KDB4MGRiNiksIDB4MDEgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwZGI4KSwg MHgwNCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBkYjkpLCAweDA2IH0sDQo+ID4gKyAg ICAgICB7IENDSV9SRUc4KDB4MGQ5MyksIDB4MDMgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgo MHgwZDk0KSwgMHgwNCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBkOTUpLCAweDA1IH0s DQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGQ5OSksIDB4MDYgfSwNCj4gPiArICAgICAgIHsg Q0NJX1JFRzgoMHgwMDg0KSwgMHgwMSB9LA0KPiA+ICsNCj4gPiArICAgICAgIC8qIE9VVCAqLw0K PiANCj4gT3V0IHdoZXJlPyBXaGF0IGlzIG91dD8NCj4gDQo+ID4gKyAgICAgICB7IENDSV9SRUc4 KDB4MDExMCksIDB4MDEgfSwNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgY2NpX3JlZ19zZXF1ZW5jZSBtb2RlX3RhYmxlX2NvbW1vbltdID0gew0KPiA+ICsgICAgICAg eyBHQzA1QTJfU1RSRUFNSU5HX1JFRywgMHgwMCB9LA0KPiA+ICsgICAgICAgLyogc3lzdGVtICov DQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDMxNSksIDB4ZDQgfSwNCj4gPiArICAgICAgIHsg Q0NJX1JFRzgoMHgwZDA2KSwgMHgwMSB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBhNzAp LCAweDgwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDMxYSksIDB4MDAgfSwNCj4gPiAr ICAgICAgIHsgQ0NJX1JFRzgoMHgwMzE0KSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVH OCgweDAxMzApLCAweDA4IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDEzMiksIDB4MDEg fSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMTM2KSwgMHgzOCB9LA0KPiA+ICsgICAgICAg eyBDQ0lfUkVHOCgweDAxMzcpLCAweDAzIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDEz NCksIDB4NWIgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMzFjKSwgMHhlMCB9LA0KPiA+ ICsgICAgICAgeyBDQ0lfUkVHOCgweDBkODIpLCAweDE0IH0sDQo+ID4gKyAgICAgICB7IENDSV9S RUc4KDB4MGRkMSksIDB4NTYgfSwNCj4gPiArDQo+ID4gKyAgICAgICAvKiBnYXRlX21vZGUgKi8N Cj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYWY0KSwgMHgwMSB9LA0KPiA+ICsgICAgICAgeyBD Q0lfUkVHOCgweDAwMDIpLCAweDEwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDBjMyks IDB4MzQgfSwNCj4gPiArDQo+ID4gKyAgICAgICAvKiBhdXRvIGxvYWQgc3RhcnQgKi8NCj4gDQo+ IFRoZSBwcmV2aW91cyAnYXV0byBsb2FkIHN0YXJ0JyByZWZlcmVuY2VkIDB4MDBjYiA/DQo+IA0K PiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAwYzQpLCAweDAwIH0sDQo+ID4gKyAgICAgICB7IEND SV9SRUc4KDB4MDBjNSksIDB4MDEgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYWY2KSwg MHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiYTApLCAweDE3IH0sDQo+ID4gKyAg ICAgICB7IENDSV9SRUc4KDB4MGJhMSksIDB4MDAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgo MHgwYmEyKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiYTMpLCAweDAwIH0s DQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGJhNCksIDB4MDMgfSwNCj4gPiArICAgICAgIHsg Q0NJX1JFRzgoMHgwYmE1KSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiYTYp LCAweDAwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGJhNyksIDB4MDAgfSwNCj4gPiAr ICAgICAgIHsgQ0NJX1JFRzgoMHgwYmE4KSwgMHg0MCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVH OCgweDBiYTkpLCAweDAwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGJhYSksIDB4MDAg fSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYmFiKSwgMHgwMCB9LA0KPiA+ICsgICAgICAg eyBDQ0lfUkVHOCgweDBiYWMpLCAweDQwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGJh ZCksIDB4MDAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYmFlKSwgMHgwMCB9LA0KPiA+ ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiYWYpLCAweDAwIH0sDQo+ID4gKyAgICAgICB7IENDSV9S RUc4KDB4MGJiMCksIDB4MDIgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYmIxKSwgMHgw MCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiYjIpLCAweDAwIH0sDQo+ID4gKyAgICAg ICB7IENDSV9SRUc4KDB4MGJiMyksIDB4MDAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgw YmI4KSwgMHgwMiB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiYjkpLCAweDAwIH0sDQo+ ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGJiYSksIDB4MDAgfSwNCj4gPiArICAgICAgIHsgQ0NJ X1JFRzgoMHgwYmJiKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBhNzApLCAw eDgwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGE3MSksIDB4MDAgfSwNCj4gPiArICAg ICAgIHsgQ0NJX1JFRzgoMHgwYTcyKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgw eDBhNjYpLCAweDAwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGE2NyksIDB4ODAgfSwN Cj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYTRkKSwgMHg0ZSB9LA0KPiA+ICsgICAgICAgeyBD Q0lfUkVHOCgweDBhNTApLCAweDAwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGE0Ziks IDB4MGMgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYTY2KSwgMHgwMCB9LA0KPiA+ICsg ICAgICAgeyBDQ0lfUkVHOCgweDAwY2EpLCAweDAwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4 KDB4MDBjYyksIDB4MDAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMGNkKSwgMHgwMCB9 LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBhYTEpLCAweDAwIH0sDQo+ID4gKyAgICAgICB7 IENDSV9SRUc4KDB4MGFhMiksIDB4ZTAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYWEz KSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBhYTQpLCAweDQwIH0sDQo+ID4g KyAgICAgICB7IENDSV9SRUc4KDB4MGE5MCksIDB4MDMgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JF RzgoMHgwYTkxKSwgMHgwZSB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBhOTQpLCAweDgw IH0sDQo+ID4gKw0KPiA+ICsgICAgICAgLyogc3RhbmRieSAqLw0KPiA+ICsgICAgICAgeyBDQ0lf UkVHOCgweDBhZjYpLCAweDIwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGIwMCksIDB4 OTEgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjAxKSwgMHgxNyB9LA0KPiA+ICsgICAg ICAgeyBDQ0lfUkVHOCgweDBiMDIpLCAweDAxIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4 MGIwMyksIDB4MDAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjA0KSwgMHgwMSB9LA0K PiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiMDUpLCAweDE3IH0sDQo+ID4gKyAgICAgICB7IEND SV9SRUc4KDB4MGIwNiksIDB4MDEgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjA3KSwg MHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBhZTkpLCAweDAxIH0sDQo+ID4gKyAg ICAgICB7IENDSV9SRUc4KDB4MGFlYSksIDB4MDIgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgo MHgwYWU4KSwgMHg1MyB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBhZTgpLCAweDQzIH0s DQo+ID4gKw0KPiA+ICsgICAgICAgLyogZ2Fpbl9wYXJ0aXRpb24gKi8NCj4gPiArICAgICAgIHsg Q0NJX1JFRzgoMHgwYWY2KSwgMHgzMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiMDAp LCAweDA4IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGIwMSksIDB4MGYgfSwNCj4gPiAr ICAgICAgIHsgQ0NJX1JFRzgoMHgwYjAyKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVH OCgweDBiMDQpLCAweDFjIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGIwNSksIDB4MjQg fSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjA2KSwgMHgwMCB9LA0KPiA+ICsgICAgICAg eyBDQ0lfUkVHOCgweDBiMDgpLCAweDMwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGIw OSksIDB4NDAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjBhKSwgMHgwMCB9LA0KPiA+ ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiMGMpLCAweDBlIH0sDQo+ID4gKyAgICAgICB7IENDSV9S RUc4KDB4MGIwZCksIDB4MmEgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjBlKSwgMHgw MCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiMTApLCAweDBlIH0sDQo+ID4gKyAgICAg ICB7IENDSV9SRUc4KDB4MGIxMSksIDB4MmIgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgw YjEyKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiMTQpLCAweDBlIH0sDQo+ ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGIxNSksIDB4MjMgfSwNCj4gPiArICAgICAgIHsgQ0NJ X1JFRzgoMHgwYjE2KSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiMTgpLCAw eDBlIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGIxOSksIDB4MjQgfSwNCj4gPiArICAg ICAgIHsgQ0NJX1JFRzgoMHgwYjFhKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgw eDBiMWMpLCAweDBjIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGIxZCksIDB4MGMgfSwN Cj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjFlKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBD Q0lfUkVHOCgweDBiMjApLCAweDAzIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGIyMSks IDB4MDMgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjIyKSwgMHgwMCB9LA0KPiA+ICsg ICAgICAgeyBDQ0lfUkVHOCgweDBiMjQpLCAweDBlIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4 KDB4MGIyNSksIDB4MGUgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjI2KSwgMHgwMCB9 LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiMjgpLCAweDAzIH0sDQo+ID4gKyAgICAgICB7 IENDSV9SRUc4KDB4MGIyOSksIDB4MDMgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjJh KSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiMmMpLCAweDEyIH0sDQo+ID4g KyAgICAgICB7IENDSV9SRUc4KDB4MGIyZCksIDB4MTIgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JF RzgoMHgwYjJlKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiMzApLCAweDA4 IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGIzMSksIDB4MDggfSwNCj4gPiArICAgICAg IHsgQ0NJX1JFRzgoMHgwYjMyKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBi MzQpLCAweDE0IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGIzNSksIDB4MTQgfSwNCj4g PiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjM2KSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lf UkVHOCgweDBiMzgpLCAweDEwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGIzOSksIDB4 MTAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjNhKSwgMHgwMCB9LA0KPiA+ICsgICAg ICAgeyBDQ0lfUkVHOCgweDBiM2MpLCAweDE2IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4 MGIzZCksIDB4MTYgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjNlKSwgMHgwMCB9LA0K PiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiNDApLCAweDEwIH0sDQo+ID4gKyAgICAgICB7IEND SV9SRUc4KDB4MGI0MSksIDB4MTAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjQyKSwg MHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiNDQpLCAweDE5IH0sDQo+ID4gKyAg ICAgICB7IENDSV9SRUc4KDB4MGI0NSksIDB4MTkgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgo MHgwYjQ2KSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiNDgpLCAweDE2IH0s DQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGI0OSksIDB4MTYgfSwNCj4gPiArICAgICAgIHsg Q0NJX1JFRzgoMHgwYjRhKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiNGMp LCAweDE5IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGI0ZCksIDB4MTkgfSwNCj4gPiAr ICAgICAgIHsgQ0NJX1JFRzgoMHgwYjRlKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVH OCgweDBiNTApLCAweDE2IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGI1MSksIDB4MTYg fSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjUyKSwgMHgwMCB9LA0KPiA+ICsgICAgICAg eyBDQ0lfUkVHOCgweDBiODApLCAweDAxIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGI4 MSksIDB4MDAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjgyKSwgMHgwMCB9LA0KPiA+ ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiODQpLCAweDAwIH0sDQo+ID4gKyAgICAgICB7IENDSV9S RUc4KDB4MGI4NSksIDB4MDAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjg2KSwgMHgw MCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiODgpLCAweDAxIH0sDQo+ID4gKyAgICAg ICB7IENDSV9SRUc4KDB4MGI4OSksIDB4NmEgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgw YjhhKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiOGMpLCAweDAwIH0sDQo+ ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGI4ZCksIDB4MDEgfSwNCj4gPiArICAgICAgIHsgQ0NJ X1JFRzgoMHgwYjhlKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiOTApLCAw eDAxIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGI5MSksIDB4ZjYgfSwNCj4gPiArICAg ICAgIHsgQ0NJX1JFRzgoMHgwYjkyKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgw eDBiOTQpLCAweDAwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGI5NSksIDB4MDIgfSwN Cj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjk2KSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBD Q0lfUkVHOCgweDBiOTgpLCAweDAyIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGI5OSks IDB4YzQgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjlhKSwgMHgwMCB9LA0KPiA+ICsg ICAgICAgeyBDQ0lfUkVHOCgweDBiOWMpLCAweDAwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4 KDB4MGI5ZCksIDB4MDMgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYjllKSwgMHgwMCB9 LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiYTApLCAweDAzIH0sDQo+ID4gKyAgICAgICB7 IENDSV9SRUc4KDB4MGJhMSksIDB4ZDggfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYmEy KSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiYTQpLCAweDAwIH0sDQo+ID4g KyAgICAgICB7IENDSV9SRUc4KDB4MGJhNSksIDB4MDQgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JF RzgoMHgwYmE2KSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiYTgpLCAweDA1 IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGJhOSksIDB4NGQgfSwNCj4gPiArICAgICAg IHsgQ0NJX1JFRzgoMHgwYmFhKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBi YWMpLCAweDAwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGJhZCksIDB4MDUgfSwNCj4g PiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYmFlKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lf UkVHOCgweDBiYjApLCAweDA3IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGJiMSksIDB4 M2UgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYmIyKSwgMHgwMCB9LA0KPiA+ICsgICAg ICAgeyBDQ0lfUkVHOCgweDBiYjQpLCAweDAwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4 MGJiNSksIDB4MDYgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYmI2KSwgMHgwMCB9LA0K PiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiYjgpLCAweDBhIH0sDQo+ID4gKyAgICAgICB7IEND SV9SRUc4KDB4MGJiOSksIDB4MWEgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYmJhKSwg MHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiYmMpLCAweDA5IH0sDQo+ID4gKyAg ICAgICB7IENDSV9SRUc4KDB4MGJiZCksIDB4MzYgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgo MHgwYmJlKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiYzApLCAweDBlIH0s DQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGJjMSksIDB4NjYgfSwNCj4gPiArICAgICAgIHsg Q0NJX1JFRzgoMHgwYmMyKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBiYzQp LCAweDEwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGJjNSksIDB4MDYgfSwNCj4gPiAr ICAgICAgIHsgQ0NJX1JFRzgoMHgwYmM2KSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVH OCgweDAyYzEpLCAweGUwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDIwNyksIDB4MDQg fSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMmMyKSwgMHgxMCB9LA0KPiA+ICsgICAgICAg eyBDQ0lfUkVHOCgweDAyYzMpLCAweDc0IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDJj NSksIDB4MDkgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMmMxKSwgMHhlMCB9LA0KPiA+ ICsgICAgICAgeyBDQ0lfUkVHOCgweDAyMDcpLCAweDA0IH0sDQo+ID4gKyAgICAgICB7IENDSV9S RUc4KDB4MDJjMiksIDB4MTAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMmM1KSwgMHgw OSB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAyYzEpLCAweGUwIH0sDQo+ID4gKyAgICAg ICB7IENDSV9SRUc4KDB4MDIwNyksIDB4MDQgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgw MmMyKSwgMHgxMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAyYzUpLCAweDA5IH0sDQo+ ID4gKw0KPiA+ICsgICAgICAgLyogYXV0byBsb2FkIENIX0dBSU4gKi8NCj4gPiArICAgICAgIHsg Q0NJX1JFRzgoMHgwYWExKSwgMHgxNSB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBhYTIp LCAweDUwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGFhMyksIDB4MDAgfSwNCj4gPiAr ICAgICAgIHsgQ0NJX1JFRzgoMHgwYWE0KSwgMHgwOSB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVH OCgweDBhOTApLCAweDI1IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGE5MSksIDB4MGUg fSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYTk0KSwgMHg4MCB9LA0KPiA+ICsNCj4gPiAr ICAgICAgIC8qIElTUCAqLw0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAwNTApLCAweDAwIH0s DQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDA4OSksIDB4ODMgfSwNCj4gPiArICAgICAgIHsg Q0NJX1JFRzgoMHgwMDVhKSwgMHg0MCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAwYzMp LCAweDM1IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDBjNCksIDB4ODAgfSwNCj4gPiAr ICAgICAgIHsgQ0NJX1JFRzgoMHgwMDgwKSwgMHgxMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVH OCgweDAwNDApLCAweDEyIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDA1MyksIDB4MGEg fSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMDU0KSwgMHg0NCB9LA0KPiA+ICsgICAgICAg eyBDQ0lfUkVHOCgweDAwNTUpLCAweDMyIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDA1 OCksIDB4ODkgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMDRhKSwgMHgwMyB9LA0KPiA+ ICsgICAgICAgeyBDQ0lfUkVHOCgweDAwNDgpLCAweGYwIH0sDQo+ID4gKyAgICAgICB7IENDSV9S RUc4KDB4MDA0OSksIDB4MGYgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMDQxKSwgMHgy MCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAwNDMpLCAweDBhIH0sDQo+ID4gKyAgICAg ICB7IENDSV9SRUc4KDB4MDA5ZCksIDB4MDggfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgw MjM2KSwgMHg0MCB9LA0KPiA+ICsNCj4gPiArICAgICAgIC8qIGdhaW4gKi8NCj4gDQo+IElzIHRo ZSBnYWluIGNvbmZpZ3VyYWJsZT8gSXMgdGhpcyBhbmFsb2d1ZSBnYWluPyBkaWdpdGFsIGdhaW4/ IG9yDQo+IGNvbG91cg0KPiBiYWxhbmFjZSBnYWlucyA/DQo+IA0KPiANCj4gPiArICAgICAgIHsg Q0NJX1JFRzgoMHgwMjA0KSwgMHgwNCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAyMDUp LCAweDAwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDJiMyksIDB4MDAgfSwNCj4gPiAr ICAgICAgIHsgQ0NJX1JFRzgoMHgwMmI0KSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVH OCgweDAwOWUpLCAweDAxIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MDA5ZiksIDB4OTQg fSwNCj4gPiArDQo+ID4gKyAgICAgICAvKiBhdXRvIGxvYWQgUkVHICovDQo+ID4gKyAgICAgICB7 IENDSV9SRUc4KDB4MGFhMSksIDB4MTAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYWEy KSwgMHhmOCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBhYTMpLCAweDAwIH0sDQo+ID4g KyAgICAgICB7IENDSV9SRUc4KDB4MGFhNCksIDB4MWYgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JF RzgoMHgwYTkwKSwgMHgxMSB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBhOTEpLCAweDBl IH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGE5NCksIDB4ODAgfSwNCj4gPiArICAgICAg IHsgQ0NJX1JFRzgoMHgwM2ZlKSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDBh OTApLCAweDAwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGE3MCksIDB4MDAgfSwNCj4g PiArICAgICAgIHsgQ0NJX1JFRzgoMHgwYTY3KSwgMHgwMCB9LA0KPiA+ICsgICAgICAgeyBDQ0lf UkVHOCgweDBhZjQpLCAweDI5IH0sDQo+ID4gKw0KPiA+ICsgICAgICAgLyogRFBIWSAqLw0KPiA+ ICsgICAgICAgeyBDQ0lfUkVHOCgweDBkODApLCAweDA3IH0sDQo+ID4gKyAgICAgICB7IENDSV9S RUc4KDB4MGRkMyksIDB4MTggfSwNCj4gPiArDQo+ID4gKyAgICAgICAvKiBDSVNDVExfUmVzZXQg Ki8NCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwMzFjKSwgMHg4MCB9LA0KPiA+ICsgICAgICAg eyBDQ0lfUkVHOCgweDAzZmUpLCAweDMwIH0sDQo+ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGQx NyksIDB4MDYgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwM2ZlKSwgMHgwMCB9LA0KPiA+ ICsgICAgICAgeyBDQ0lfUkVHOCgweDBkMTcpLCAweDAwIH0sDQo+ID4gKyAgICAgICB7IENDSV9S RUc4KDB4MDMxYyksIDB4OTMgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgwM2ZlKSwgMHgw MCB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAzMWMpLCAweDgwIH0sDQo+ID4gKyAgICAg ICB7IENDSV9SRUc4KDB4MDNmZSksIDB4MzAgfSwNCj4gPiArICAgICAgIHsgQ0NJX1JFRzgoMHgw ZDE3KSwgMHgwNiB9LA0KPiA+ICsgICAgICAgeyBDQ0lfUkVHOCgweDAzZmUpLCAweDAwIH0sDQo+ ID4gKyAgICAgICB7IENDSV9SRUc4KDB4MGQxNyksIDB4MDAgfSwNCj4gPiArICAgICAgIHsgQ0NJ X1JFRzgoMHgwMzFjKSwgMHg5MyB9LA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RydWN0IGdjMDVh Ml9tb2RlIHsNCj4gPiArICAgICAgIHUzMiB3aWR0aDsNCj4gPiArICAgICAgIHUzMiBoZWlnaHQ7 DQo+ID4gKyAgICAgICBjb25zdCBzdHJ1Y3QgZ2MwNWEyX3JlZ19saXN0IHJlZ19saXN0Ow0KPiA+ ICsNCj4gPiArICAgICAgIHUzMiBodHM7IC8qIEhvcml6b250YWwgdGltaW5pbmcgc2l6ZSAqLw0K PiA+ICsgICAgICAgdTMyIHZ0c19kZWY7IC8qIERlZmF1bHQgdmVydGljYWwgdGltaW5pbmcgc2l6 ZSAqLw0KPiA+ICsgICAgICAgdTMyIHZ0c19taW47IC8qIE1pbiB2ZXJ0aWNhbCB0aW1pbmluZyBz aXplICovDQo+ID4gK307DQo+ID4gKw0KPiA+ICsvKiBEZWNsYXJlIG1vZGVzIGluIG9yZGVyLCBm cm9tIGJpZ2dlc3QgdG8gc21hbGxlc3QgaGVpZ2h0LiAqLw0KPiA+ICtzdGF0aWMgY29uc3Qgc3Ry dWN0IGdjMDVhMl9tb2RlIGdjMDVhMl9tb2Rlc1tdID0gew0KPiA+ICsgICAgICAgew0KPiA+ICsg ICAgICAgICAgICAgICAvKiAyNTkyKjE5NDRAMzBmcHMgKi8NCj4gPiArICAgICAgICAgICAgICAg LndpZHRoID0gR0MwNUEyX05BVElWRV9XSURUSCwNCj4gPiArICAgICAgICAgICAgICAgLmhlaWdo dCA9IEdDMDVBMl9OQVRJVkVfSEVJR0hULA0KPiA+ICsgICAgICAgICAgICAgICAucmVnX2xpc3Qg PSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgLm51bV9vZl9yZWdzID0gQVJSQVlfU0la RShtb2RlXzI1OTJ4MTk0NCksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgLnJlZ3MgPSBt b2RlXzI1OTJ4MTk0NCwNCj4gPiArICAgICAgICAgICAgICAgfSwNCj4gPiArICAgICAgICAgICAg ICAgLmh0cyA9IDM2NjQsDQo+ID4gKyAgICAgICAgICAgICAgIC52dHNfZGVmID0gMjAzMiwNCj4g PiArICAgICAgICAgICAgICAgLnZ0c19taW4gPSAyMDMyLA0KPiA+ICsgICAgICAgfSwNCj4gPiAr ICAgICAgIHsNCj4gPiArICAgICAgICAgICAgICAgLyogMTI4MCo3MjBANjBmcHMgKi8NCj4gPiAr ICAgICAgICAgICAgICAgLndpZHRoID0gMTI4MCwNCj4gPiArICAgICAgICAgICAgICAgLmhlaWdo dCA9IDcyMCwNCj4gPiArICAgICAgICAgICAgICAgLnJlZ19saXN0ID0gew0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIC5udW1fb2ZfcmVncyA9IEFSUkFZX1NJWkUobW9kZV8xMjgweDcyMCks DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgLnJlZ3MgPSBtb2RlXzEyODB4NzIwLA0KPiA+ ICsgICAgICAgICAgICAgICB9LA0KPiA+ICsgICAgICAgICAgICAgICAuaHRzID0gMzYxNiwNCj4g PiArICAgICAgICAgICAgICAgLnZ0c19kZWYgPSAxMDMyLA0KPiA+ICsgICAgICAgICAgICAgICAu dnRzX21pbiA9IDEwMzIsDQo+ID4gKyAgICAgICB9LA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3Rh dGljIGlubGluZSBzdHJ1Y3QgZ2MwNWEyICp0b19nYzA1YTIoc3RydWN0IHY0bDJfc3ViZGV2ICpz ZCkNCj4gPiArew0KPiA+ICsgICAgICAgcmV0dXJuIGNvbnRhaW5lcl9vZihzZCwgc3RydWN0IGdj MDVhMiwgc2QpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IGdjMDVhMl9wb3dlcl9v bihzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ID4gK3sNCj4gPiArICAgICAgIHN0cnVjdCB2NGwyX3N1 YmRldiAqc2QgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiArICAgICAgIHN0cnVjdCBnYzA1 YTIgKmdjMDVhMiA9IHRvX2djMDVhMihzZCk7DQo+ID4gKyAgICAgICBpbnQgcmV0Ow0KPiA+ICsN Cj4gPiArICAgICAgIHJldCA9IHJlZ3VsYXRvcl9idWxrX2VuYWJsZShBUlJBWV9TSVpFKGdjMDVh Ml9zdXBwbHlfbmFtZSksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z2MwNWEyLT5zdXBwbGllcyk7DQo+ID4gKyAgICAgICBpZiAocmV0IDwgMCkgew0KPiA+ICsgICAg ICAgICAgICAgICBkZXZfZXJyKGdjMDVhMi0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSByZWd1bGF0 b3JzOg0KPiAlZFxuIiwgcmV0KTsNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4g PiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICByZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUo Z2MwNWEyLT54Y2xrKTsNCj4gPiArICAgICAgIGlmIChyZXQgPCAwKSB7DQo+ID4NCj4gKyAgICAg ICAgICAgICAgIHJlZ3VsYXRvcl9idWxrX2Rpc2FibGUoQVJSQVlfU0laRShnYzA1YTJfc3VwcGx5 X25hbWUpDQo+ICwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn YzA1YTItPnN1cHBsaWVzKTsNCj4gPiArICAgICAgICAgICAgICAgZGV2X2VycihnYzA1YTItPmRl diwgImNsayBwcmVwYXJlIGVuYWJsZQ0KPiBmYWlsZWRcbiIpOw0KPiA+ICsgICAgICAgICAgICAg ICByZXR1cm4gcmV0Ow0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIGZzbGVlcChH QzA1QTJfU0xFRVBfVVMpOw0KPiA+ICsNCj4gPiArICAgICAgIGdwaW9kX3NldF92YWx1ZV9jYW5z bGVlcChnYzA1YTItPnJlc2V0X2dwaW8sIDApOw0KPiA+ICsgICAgICAgZnNsZWVwKEdDMDVBMl9T TEVFUF9VUyk7DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ ID4gK3N0YXRpYyBpbnQgZ2MwNWEyX3Bvd2VyX29mZihzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ID4g K3sNCj4gPiArICAgICAgIHN0cnVjdCB2NGwyX3N1YmRldiAqc2QgPSBkZXZfZ2V0X2RydmRhdGEo ZGV2KTsNCj4gPiArICAgICAgIHN0cnVjdCBnYzA1YTIgKmdjMDVhMiA9IHRvX2djMDVhMihzZCk7 DQo+ID4gKw0KPiA+ICsgICAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGdjMDVhMi0+eGNsayk7 DQo+ID4gKyAgICAgICBncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoZ2MwNWEyLT5yZXNldF9ncGlv LCAxKTsNCj4gPiArICAgICAgIHJlZ3VsYXRvcl9idWxrX2Rpc2FibGUoQVJSQVlfU0laRShnYzA1 YTJfc3VwcGx5X25hbWUpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYzA1 YTItPnN1cHBsaWVzKTsNCj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4gMDsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArc3RhdGljIGludCBnYzA1YTJfZW51bV9tYnVzX2NvZGUoc3RydWN0IHY0bDJfc3Vi ZGV2ICpzZCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdjRs Ml9zdWJkZXZfc3RhdGUNCj4gKnNkX3N0YXRlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCB2NGwyX3N1YmRldl9tYnVzX2NvZGVfZW51bQ0KPiAqY29kZSkNCj4g PiArew0KPiA+ICsgICAgICAgaWYgKGNvZGUtPmluZGV4ID4gMCkNCj4gPiArICAgICAgICAgICAg ICAgcmV0dXJuIC1FSU5WQUw7DQo+ID4gKw0KPiA+ICsgICAgICAgY29kZS0+Y29kZSA9IEdDMDVB Ml9NQlVTX0NPREU7DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0dXJuIDA7DQo+ID4gK30NCj4gPiAr DQo+ID4gK3N0YXRpYyBpbnQgZ2MwNWEyX2VudW1fZnJhbWVfc2l6ZShzdHJ1Y3QgdjRsMl9zdWJk ZXYgKnN1YmRldiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHY0bDJfc3ViZGV2X3N0YXRlDQo+ICpzZF9zdGF0ZSwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0DQo+IHY0bDJfc3ViZGV2X2ZyYW1lX3NpemVfZW51bSAqZnNl KQ0KPiA+ICt7DQo+ID4gKyAgICAgICBpZiAoZnNlLT5jb2RlICE9IEdDMDVBMl9NQlVTX0NPREUp DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ICsNCj4gPiArICAgICAg IGlmIChmc2UtPmluZGV4ID49IEFSUkFZX1NJWkUoZ2MwNWEyX21vZGVzKSkNCj4gPiArICAgICAg ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ID4gKw0KPiA+ICsgICAgICAgZnNlLT5taW5fd2lk dGggPSBnYzA1YTJfbW9kZXNbZnNlLT5pbmRleF0ud2lkdGg7DQo+ID4gKyAgICAgICBmc2UtPm1h eF93aWR0aCA9IGdjMDVhMl9tb2Rlc1tmc2UtPmluZGV4XS53aWR0aDsNCj4gPiArICAgICAgIGZz ZS0+bWluX2hlaWdodCA9IGdjMDVhMl9tb2Rlc1tmc2UtPmluZGV4XS5oZWlnaHQ7DQo+ID4gKyAg ICAgICBmc2UtPm1heF9oZWlnaHQgPSBnYzA1YTJfbW9kZXNbZnNlLT5pbmRleF0uaGVpZ2h0Ow0K PiA+ICsNCj4gPiArICAgICAgIHJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMg aW50IGdjMDVhMl91cGRhdGVfY3VyX21vZGVfY29udHJvbHMoc3RydWN0IGdjMDVhMiAqZ2MwNWEy LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3QgZ2MwNWEyX21vZGUNCj4gKm1vZGUpDQo+ID4gK3sNCj4gPiArICAgICAgIHM2NCBleHBv c3VyZV9tYXgsIGhfYmxhbms7DQo+ID4gKyAgICAgICBpbnQgcmV0Ow0KPiA+ICsNCj4gPiArICAg ICAgIHJldCA9IF9fdjRsMl9jdHJsX21vZGlmeV9yYW5nZShnYzA1YTItPnZibGFuaywNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlLT52dHNfbWluIC0gbW9k ZS0NCj4gPmhlaWdodCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHQzA1QTJfVlRTX01BWCAtIG1vZGUtDQo+ID5oZWlnaHQsIDEsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZS0+dnRzX2RlZiAtIG1vZGUtDQo+ID5oZWln aHQpOw0KPiA+ICsgICAgICAgaWYgKHJldCkgew0KPiA+ICsgICAgICAgICAgICAgICBkZXZfZXJy KGdjMDVhMi0+ZGV2LCAiVkIgY3RybCByYW5nZSB1cGRhdGUNCj4gZmFpbGVkXG4iKTsNCj4gPiAr ICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAg ICAgICBoX2JsYW5rID0gbW9kZS0+aHRzIC0gbW9kZS0+d2lkdGg7DQo+ID4gKyAgICAgICByZXQg PSBfX3Y0bDJfY3RybF9tb2RpZnlfcmFuZ2UoZ2MwNWEyLT5oYmxhbmssIGhfYmxhbmssDQo+IGhf YmxhbmssIDEsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaF9i bGFuayk7DQo+ID4gKyAgICAgICBpZiAocmV0KSB7DQo+ID4gKyAgICAgICAgICAgICAgIGRldl9l cnIoZ2MwNWEyLT5kZXYsICJIQiBjdHJsIHJhbmdlIHVwZGF0ZQ0KPiBmYWlsZWRcbiIpOw0KPiA+ ICsgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiAr ICAgICAgIGV4cG9zdXJlX21heCA9IG1vZGUtPnZ0c19kZWYgLSBHQzA1QTJfRVhQX01BUkdJTjsN Cj4gPiArICAgICAgIHJldCA9IF9fdjRsMl9jdHJsX21vZGlmeV9yYW5nZShnYzA1YTItPmV4cG9z dXJlLA0KPiBHQzA1QTJfRVhQX01JTiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBleHBvc3VyZV9tYXgsDQo+IEdDMDVBMl9FWFBfU1RFUCwNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvc3VyZV9tYXgpOw0KPiA+ICsgICAg ICAgaWYgKHJldCkgew0KPiA+ICsgICAgICAgICAgICAgICBkZXZfZXJyKGdjMDVhMi0+ZGV2LCAi ZXhwb3N1cmUgY3RybCByYW5nZSB1cGRhdGUNCj4gZmFpbGVkXG4iKTsNCj4gPiArICAgICAgICAg ICAgICAgcmV0dXJuIHJldDsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICByZXR1 cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZvaWQgZ2MwNWEyX3VwZGF0ZV9wYWRf Zm9ybWF0KHN0cnVjdCBnYzA1YTIgKmdjMDhhMywNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGdjMDVhMl9tb2RlDQo+ICptb2RlLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdjRsMl9tYnVzX2ZyYW1l Zm10DQo+ICpmbXQpDQo+ID4gK3sNCj4gPiArICAgICAgIGZtdC0+d2lkdGggPSBtb2RlLT53aWR0 aDsNCj4gPiArICAgICAgIGZtdC0+aGVpZ2h0ID0gbW9kZS0+aGVpZ2h0Ow0KPiA+ICsgICAgICAg Zm10LT5jb2RlID0gR0MwNUEyX01CVVNfQ09ERTsNCj4gPiArICAgICAgIGZtdC0+ZmllbGQgPSBW NEwyX0ZJRUxEX05PTkU7DQo+ID4gKyAgICAgICBmbXQtPmNvbG9yc3BhY2UgPSBWNEwyX0NPTE9S U1BBQ0VfUkFXOw0KPiA+ICsgICAgICAgZm10LT55Y2Jjcl9lbmMgPSBWNEwyX01BUF9ZQ0JDUl9F TkNfREVGQVVMVChmbXQtDQo+ID5jb2xvcnNwYWNlKTsNCj4gPiArICAgICAgIGZtdC0+cXVhbnRp emF0aW9uID0gVjRMMl9RVUFOVElaQVRJT05fRlVMTF9SQU5HRTsNCj4gPiArICAgICAgIGZtdC0+ eGZlcl9mdW5jID0gVjRMMl9YRkVSX0ZVTkNfTk9ORTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3Rh dGljIGludCBnYzA1YTJfc2V0X2Zvcm1hdChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHY0bDJfc3ViZGV2X3N0YXRlICpzdGF0 ZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2NGwyX3N1YmRldl9m b3JtYXQgKmZtdCkNCj4gPiArew0KPiA+ICsgICAgICAgc3RydWN0IGdjMDVhMiAqZ2MwNWEyID0g dG9fZ2MwNWEyKHNkKTsNCj4gPiArICAgICAgIHN0cnVjdCB2NGwyX21idXNfZnJhbWVmbXQgKm1i dXNfZm10Ow0KPiA+ICsgICAgICAgc3RydWN0IHY0bDJfcmVjdCAqY3JvcDsNCj4gPiArICAgICAg IGNvbnN0IHN0cnVjdCBnYzA1YTJfbW9kZSAqbW9kZTsNCj4gPiArDQo+ID4gKyAgICAgICBtb2Rl ID0gdjRsMl9maW5kX25lYXJlc3Rfc2l6ZShnYzA1YTJfbW9kZXMsDQo+IEFSUkFZX1NJWkUoZ2Mw NWEyX21vZGVzKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp ZHRoLCBoZWlnaHQsIGZtdC0NCj4gPmZvcm1hdC53aWR0aCwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZtdC0+Zm9ybWF0LmhlaWdodCk7DQo+ID4gKw0KPiA+ICsg ICAgICAgLyogdXBkYXRlIGNyb3AgaW5mbyB0byBzdWJkZXYgc3RhdGUgKi8NCj4gPiArICAgICAg IGNyb3AgPSB2NGwyX3N1YmRldl9zdGF0ZV9nZXRfY3JvcChzdGF0ZSwgMCk7DQo+ID4gKyAgICAg ICBjcm9wLT53aWR0aCA9IG1vZGUtPndpZHRoOw0KPiA+ICsgICAgICAgY3JvcC0+aGVpZ2h0ID0g bW9kZS0+aGVpZ2h0Ow0KPiA+ICsNCj4gPiArICAgICAgIC8qIHVwZGF0ZSBmbXQgaW5mbyB0byBz dWJkZXYgc3RhdGUgKi8NCj4gPiArICAgICAgIGdjMDVhMl91cGRhdGVfcGFkX2Zvcm1hdChnYzA1 YTIsIG1vZGUsICZmbXQtPmZvcm1hdCk7DQo+ID4gKyAgICAgICBtYnVzX2ZtdCA9IHY0bDJfc3Vi ZGV2X3N0YXRlX2dldF9mb3JtYXQoc3RhdGUsIDApOw0KPiA+ICsgICAgICAgKm1idXNfZm10ID0g Zm10LT5mb3JtYXQ7DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKGZtdC0+d2hpY2ggPT0gVjRMMl9T VUJERVZfRk9STUFUX1RSWSkNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4gKyAg ICAgICBnYzA1YTItPmN1cl9tb2RlID0gbW9kZTsNCj4gPiArICAgICAgIGdjMDVhMl91cGRhdGVf Y3VyX21vZGVfY29udHJvbHMoZ2MwNWEyLCBtb2RlKTsNCj4gPiArDQo+ID4gKyAgICAgICByZXR1 cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludCBnYzA1YTJfZ2V0X3NlbGVjdGlv bihzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHY0bDJfc3ViZGV2X3N0YXRlICpzdGF0ZSwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2NGwyX3N1YmRldl9zZWxlY3Rpb24gKnNlbCkNCj4g PiArew0KPiA+ICsgICAgICAgc3dpdGNoIChzZWwtPnRhcmdldCkgew0KPiA+ICsgICAgICAgY2Fz ZSBWNEwyX1NFTF9UR1RfQ1JPUF9ERUZBVUxUOg0KPiA+ICsgICAgICAgY2FzZSBWNEwyX1NFTF9U R1RfQ1JPUDoNCj4gPiArICAgICAgICAgICAgICAgc2VsLT5yID0gKnY0bDJfc3ViZGV2X3N0YXRl X2dldF9jcm9wKHN0YXRlLCAwKTsNCj4gPiArICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKyAg ICAgICBjYXNlIFY0TDJfU0VMX1RHVF9DUk9QX0JPVU5EUzoNCj4gPiArICAgICAgICAgICAgICAg c2VsLT5yLnRvcCA9IDA7DQo+ID4gKyAgICAgICAgICAgICAgIHNlbC0+ci5sZWZ0ID0gMDsNCj4g PiArICAgICAgICAgICAgICAgc2VsLT5yLndpZHRoID0gR0MwNUEyX05BVElWRV9XSURUSDsNCj4g PiArICAgICAgICAgICAgICAgc2VsLT5yLmhlaWdodCA9IEdDMDVBMl9OQVRJVkVfSEVJR0hUOw0K PiA+ICsgICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgIGRlZmF1bHQ6DQo+ID4gKyAg ICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiAr ICAgICAgIHJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IGdjMDVhMl9p bml0X3N0YXRlKHN0cnVjdCB2NGwyX3N1YmRldiAqc2QsDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnN0YXRlKQ0KPiA+ICt7DQo+ID4g KyAgICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfZm9ybWF0IGZtdCA9IHsNCj4gPiArICAgICAgICAg ICAgICAgLndoaWNoID0gVjRMMl9TVUJERVZfRk9STUFUX1RSWSwNCj4gPiArICAgICAgICAgICAg ICAgLnBhZCA9IDAsDQo+ID4gKyAgICAgICAgICAgICAgIC5mb3JtYXQgPSB7DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgLmNvZGUgPSBHQzA1QTJfTUJVU19DT0RFLA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIC53aWR0aCA9IGdjMDVhMl9tb2Rlc1swXS53aWR0aCwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAuaGVpZ2h0ID0gZ2MwNWEyX21vZGVzWzBdLmhlaWdodCwNCj4g PiArICAgICAgICAgICAgICAgfSwNCj4gPiArICAgICAgIH07DQo+ID4gKw0KPiA+ICsgICAgICAg Z2MwNWEyX3NldF9mb3JtYXQoc2QsIHN0YXRlLCAmZm10KTsNCj4gPiArDQo+ID4gKyAgICAgICBy ZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludCBnYzA1YTJfc2V0X2N0cmxf aGZsaXAoc3RydWN0IGdjMDVhMiAqZ2MwNWEyLCB1MzINCj4gY3RybF92YWwpDQo+ID4gK3sNCj4g PiArICAgICAgIGludCByZXQ7DQo+ID4gKyAgICAgICB1NjQgdmFsOw0KPiA+ICsNCj4gPiArICAg ICAgIHJldCA9IGNjaV9yZWFkKGdjMDVhMi0+cmVnbWFwLCBHQzA1QTJfRkxJUF9SRUcsICZ2YWws DQo+IE5VTEwpOw0KPiA+ICsgICAgICAgaWYgKHJldCkgew0KPiA+ICsgICAgICAgICAgICAgICBk ZXZfZXJyKGdjMDVhMi0+ZGV2LCAicmVhZCBoZmxpcCByZWdpc3RlciBmYWlsZWQ6DQo+ICVkXG4i LCByZXQpOw0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiA+ICsgICAgICAgfQ0K PiA+ICsNCj4gPiArICAgICAgIHJldHVybiBjY2lfdXBkYXRlX2JpdHMoZ2MwNWEyLT5yZWdtYXAs IEdDMDVBMl9GTElQX1JFRywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Mw NUEyX0ZMSVBfSF9NQVNLLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHJs X3ZhbCA/IEdDMDVBMl9GTElQX0hfTUFTSyA6IDAsDQo+IE5VTEwpOw0KPiA+ICt9DQo+ID4gKw0K PiA+ICtzdGF0aWMgaW50IGdjMDVhMl9zZXRfY3RybF92ZmxpcChzdHJ1Y3QgZ2MwNWEyICpnYzA1 YTIsIHUzMg0KPiBjdHJsX3ZhbCkNCj4gPiArew0KPiA+ICsgICAgICAgaW50IHJldDsNCj4gPiAr ICAgICAgIHU2NCB2YWw7DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0ID0gY2NpX3JlYWQoZ2MwNWEy LT5yZWdtYXAsIEdDMDVBMl9GTElQX1JFRywgJnZhbCwNCj4gTlVMTCk7DQo+ID4gKyAgICAgICBp ZiAocmV0KSB7DQo+ID4gKyAgICAgICAgICAgICAgIGRldl9lcnIoZ2MwNWEyLT5kZXYsICJyZWFk IHZmbGlwIHJlZ2lzdGVyIGZhaWxlZDoNCj4gJWRcbiIsIHJldCk7DQo+ID4gKyAgICAgICAgICAg ICAgIHJldHVybiByZXQ7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0dXJu IGNjaV91cGRhdGVfYml0cyhnYzA1YTItPnJlZ21hcCwgR0MwNUEyX0ZMSVBfUkVHLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQzA1QTJfRkxJUF9WX01BU0ssDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0cmxfdmFsID8gR0MwNUEyX0ZMSVBfVl9NQVNL IDogMCwNCj4gTlVMTCk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgZ2MwNWEyX3Rl c3RfcGF0dGVybihzdHJ1Y3QgZ2MwNWEyICpnYzA1YTIsIHUzMg0KPiBwYXR0ZXJuX21lbnUpDQo+ ID4gK3sNCj4gPiArICAgICAgIHUzMiBwYXR0ZXJuOw0KPiA+ICsgICAgICAgaW50IHJldDsNCj4g PiArDQo+ID4gKyAgICAgICBpZiAocGF0dGVybl9tZW51KSB7DQo+ID4gKyAgICAgICAgICAgICAg IHN3aXRjaCAocGF0dGVybl9tZW51KSB7DQo+ID4gKyAgICAgICAgICAgICAgIGNhc2UgMToNCj4g PiArICAgICAgICAgICAgICAgY2FzZSAyOg0KPiA+ICsgICAgICAgICAgICAgICBjYXNlIDM6DQo+ ID4gKyAgICAgICAgICAgICAgIGNhc2UgNDoNCj4gPiArICAgICAgICAgICAgICAgY2FzZSA1Og0K PiA+ICsgICAgICAgICAgICAgICBjYXNlIDY6DQo+ID4gKyAgICAgICAgICAgICAgIGNhc2UgNzoN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuID0gcGF0dGVybl9tZW51IDw8IDQ7 DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKw0KPiA+ICsgICAgICAg ICAgICAgICBjYXNlIDg6DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybiA9IDA7 DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKw0KPiA+ICsgICAgICAg ICAgICAgICBjYXNlIDk6DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybiA9IDQ7 DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKw0KPiA+ICsgICAgICAg ICAgICAgICBkZWZhdWx0Og0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4gPSAw eDAwOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+ICsgICAgICAgICAg ICAgICB9DQo+IA0KPiBUaGlzIGlzIGZhaXJseSB0ZXJzZS4gQ2FuIHdlIGFkZCBjb21tZW50cywg b3IgZGVmaW5pdGlvbnMgZm9yIHRoZQ0KPiB0eXBlcw0KPiBvciBzdWNoIHNvIHRoYXQgdGhlIGFi b3ZlIGlzIGVhc2llciB0byBpbnRlcnByZXQ/DQo+IA0KPiA+ICsNCj4gPiArICAgICAgICAgICAg ICAgcmV0ID0gY2NpX3dyaXRlKGdjMDVhMi0+cmVnbWFwLA0KPiBHQzA1QTJfUkVHX1RFU1RfUEFU VEVSTl9JRFgsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLCBO VUxMKTsNCj4gPiArICAgICAgICAgICAgICAgaWYgKHJldCkNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gcmV0Ow0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIGNj aV93cml0ZShnYzA1YTItPnJlZ21hcCwNCj4gR0MwNUEyX1JFR19URVNUX1BBVFRFUk5fRU4sDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0MwNUEyX1RFU1RfUEFUVEVSTl9F TiwgTlVMTCk7DQo+ID4gKyAgICAgICB9IGVsc2Ugew0KPiA+ICsgICAgICAgICAgICAgICByZXR1 cm4gY2NpX3dyaXRlKGdjMDVhMi0+cmVnbWFwLA0KPiBHQzA1QTJfUkVHX1RFU1RfUEFUVEVSTl9F TiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBOVUxMKTsNCj4g PiArICAgICAgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludCBnYzA1YTJfc2V0X2N0 cmwoc3RydWN0IHY0bDJfY3RybCAqY3RybCkNCj4gPiArew0KPiA+ICsgICAgICAgc3RydWN0IGdj MDVhMiAqZ2MwNWEyID0NCj4gPiArICAgICAgICAgICAgICAgY29udGFpbmVyX29mKGN0cmwtPmhh bmRsZXIsIHN0cnVjdCBnYzA1YTIsIGN0cmxzKTsNCj4gPiArICAgICAgIGludCByZXQgPSAwOw0K PiA+ICsgICAgICAgczY0IGV4cG9zdXJlX21heDsNCj4gPiArICAgICAgIHN0cnVjdCB2NGwyX3N1 YmRldl9zdGF0ZSAqc3RhdGU7DQo+ID4gKyAgICAgICBjb25zdCBzdHJ1Y3QgdjRsMl9tYnVzX2Zy YW1lZm10ICpmb3JtYXQ7DQo+ID4gKw0KPiA+ICsgICAgICAgc3RhdGUgPSB2NGwyX3N1YmRldl9n ZXRfbG9ja2VkX2FjdGl2ZV9zdGF0ZSgmZ2MwNWEyLT5zZCk7DQo+ID4gKyAgICAgICBmb3JtYXQg PSB2NGwyX3N1YmRldl9zdGF0ZV9nZXRfZm9ybWF0KHN0YXRlLCAwKTsNCj4gPiArDQo+ID4gKyAg ICAgICBpZiAoY3RybC0+aWQgPT0gVjRMMl9DSURfVkJMQU5LKSB7DQo+ID4gKyAgICAgICAgICAg ICAgIC8qIFVwZGF0ZSBtYXggZXhwb3N1cmUgd2hpbGUgbWVldGluZyBleHBlY3RlZA0KPiB2Ymxh bmtpbmcgKi8NCj4gPiArICAgICAgICAgICAgICAgZXhwb3N1cmVfbWF4ID0gZm9ybWF0LT5oZWln aHQgKyBjdHJsLT52YWwgLQ0KPiBHQzA1QTJfRVhQX01BUkdJTjsNCj4gPiArICAgICAgICAgICAg ICAgX192NGwyX2N0cmxfbW9kaWZ5X3JhbmdlKGdjMDVhMi0+ZXhwb3N1cmUsDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYzA1YTItPmV4cG9zdXJlLT5taW5p bXVtLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3N1 cmVfbWF4LCBnYzA1YTItDQo+ID5leHBvc3VyZS0+c3RlcCwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zdXJlX21heCk7DQo+ID4gKyAgICAgICB9DQo+ ID4gKw0KPiA+ICsgICAgICAgLyoNCj4gPiArICAgICAgICAqIEFwcGx5aW5nIFY0TDIgY29udHJv bCB2YWx1ZSBvbmx5IGhhcHBlbnMNCj4gPiArICAgICAgICAqIHdoZW4gcG93ZXIgaXMgb24gZm9y IHN0cmVhbWluZy4NCj4gPiArICAgICAgICAqLw0KPiA+ICsgICAgICAgaWYgKCFwbV9ydW50aW1l X2dldF9pZl9hY3RpdmUoZ2MwNWEyLT5kZXYpKQ0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4g MDsNCj4gPiArDQo+ID4gKyAgICAgICBzd2l0Y2ggKGN0cmwtPmlkKSB7DQo+ID4gKyAgICAgICBj YXNlIFY0TDJfQ0lEX0VYUE9TVVJFOg0KPiA+ICsgICAgICAgICAgICAgICByZXQgPSBjY2lfd3Jp dGUoZ2MwNWEyLT5yZWdtYXAsIEdDMDVBMl9FWFBfUkVHLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY3RybC0+dmFsLCBOVUxMKTsNCj4gPiArICAgICAgICAgICAgICAgYnJl YWs7DQo+ID4gKw0KPiA+ICsgICAgICAgY2FzZSBWNEwyX0NJRF9BTkFMT0dVRV9HQUlOOg0KPiA+ ICsgICAgICAgICAgICAgICByZXQgPSBjY2lfd3JpdGUoZ2MwNWEyLT5yZWdtYXAsIEdDMDVBMl9B R0FJTl9SRUcsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHJsLT52YWws IE5VTEwpOw0KPiA+ICsgICAgICAgICAgICAgICBicmVhazsNCj4gPiArDQo+ID4gKyAgICAgICBj YXNlIFY0TDJfQ0lEX1ZCTEFOSzoNCj4gPiArICAgICAgICAgICAgICAgcmV0ID0gY2NpX3dyaXRl KGdjMDVhMi0+cmVnbWFwLA0KPiBHQzA1QTJfRlJBTUVfTEVOR1RIX1JFRywNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdjMDVhMi0+Y3VyX21vZGUtPmhlaWdodCArIGN0cmwt DQo+ID52YWwsIE5VTEwpOw0KPiA+ICsgICAgICAgICAgICAgICBicmVhazsNCj4gPiArDQo+ID4g KyAgICAgICBjYXNlIFY0TDJfQ0lEX0hGTElQOg0KPiA+ICsgICAgICAgICAgICAgICByZXQgPSBn YzA1YTJfc2V0X2N0cmxfaGZsaXAoZ2MwNWEyLCBjdHJsLT52YWwpOw0KPiA+ICsgICAgICAgICAg ICAgICBicmVhazsNCj4gPiArDQo+ID4gKyAgICAgICBjYXNlIFY0TDJfQ0lEX1ZGTElQOg0KPiA+ ICsgICAgICAgICAgICAgICByZXQgPSBnYzA1YTJfc2V0X2N0cmxfdmZsaXAoZ2MwNWEyLCBjdHJs LT52YWwpOw0KPiA+ICsgICAgICAgICAgICAgICBicmVhazsNCj4gPiArDQo+ID4gKyAgICAgICBj YXNlIFY0TDJfQ0lEX1RFU1RfUEFUVEVSTjoNCj4gPiArICAgICAgICAgICAgICAgcmV0ID0gZ2Mw NWEyX3Rlc3RfcGF0dGVybihnYzA1YTIsIGN0cmwtPnZhbCk7DQo+ID4gKyAgICAgICAgICAgICAg IGJyZWFrOw0KPiA+ICsNCj4gPiArICAgICAgIGRlZmF1bHQ6DQo+ID4gKyAgICAgICAgICAgICAg IGJyZWFrOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIHBtX3J1bnRpbWVfcHV0 KGdjMDVhMi0+ZGV2KTsNCj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4gcmV0Ow0KPiA+ICt9DQo+ ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHY0bDJfY3RybF9vcHMgZ2MwNWEyX2N0cmxf b3BzID0gew0KPiA+ICsgICAgICAgLnNfY3RybCA9IGdjMDVhMl9zZXRfY3RybCwNCj4gPiArfTsN Cj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgZ2MwNWEyX2lkZW50aWZ5X21vZHVsZShzdHJ1Y3QgZ2Mw NWEyICpnYzA1YTIpDQo+ID4gK3sNCj4gPiArICAgICAgIHU2NCB2YWw7DQo+ID4gKyAgICAgICBp bnQgcmV0Ow0KPiA+ICsNCj4gPiArICAgICAgIGlmIChnYzA1YTItPmlkZW50aWZpZWQpDQo+ID4g KyAgICAgICAgICAgICAgIHJldHVybiAwOw0KPiA+ICsNCj4gPiArICAgICAgIHJldCA9IGNjaV9y ZWFkKGdjMDVhMi0+cmVnbWFwLCBHQzA1QTJfUkVHX0NISVBfSUQsICZ2YWwsDQo+IE5VTEwpOw0K PiA+ICsgICAgICAgaWYgKHJldCkNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4g PiArDQo+ID4gKyAgICAgICBpZiAodmFsICE9IEdDMDVBMl9DSElQX0lEKSB7DQo+ID4gKyAgICAg ICAgICAgICAgIGRldl9lcnIoZ2MwNWEyLT5kZXYsICJjaGlwIGlkIG1pc21hdGNoOg0KPiAweCV4 IT0weCVsbHgiLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIEdDMDVBMl9DSElQX0lELCB2 YWwpOw0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVOWElPOw0KPiA+ICsgICAgICAgfQ0K PiA+ICsNCj4gPiArICAgICAgIGdjMDVhMi0+aWRlbnRpZmllZCA9IHRydWU7DQo+ID4gKw0KPiA+ ICsgICAgICAgcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgZ2MwNWEy X3N0YXJ0X3N0cmVhbWluZyhzdHJ1Y3QgZ2MwNWEyICpnYzA1YTIpDQo+ID4gK3sNCj4gPiArICAg ICAgIGNvbnN0IHN0cnVjdCBnYzA1YTJfbW9kZSAqbW9kZTsNCj4gPiArICAgICAgIGNvbnN0IHN0 cnVjdCBnYzA1YTJfcmVnX2xpc3QgKnJlZ19saXN0Ow0KPiA+ICsgICAgICAgaW50IHJldDsNCj4g PiArDQo+ID4gKyAgICAgICByZXQgPSBwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KGdjMDVhMi0+ ZGV2KTsNCj4gPiArICAgICAgIGlmIChyZXQgPCAwKQ0KPiA+ICsgICAgICAgICAgICAgICByZXR1 cm4gcmV0Ow0KPiA+ICsNCj4gPiArICAgICAgIHJldCA9IGdjMDVhMl9pZGVudGlmeV9tb2R1bGUo Z2MwNWEyKTsNCj4gPiArICAgICAgIGlmIChyZXQpDQo+ID4gKyAgICAgICAgICAgICAgIGdvdG8g ZXJyX3JwbV9wdXQ7DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0ID0gY2NpX211bHRpX3JlZ193cml0 ZShnYzA1YTItPnJlZ21hcCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bW9kZV90YWJsZV9jb21tb24sDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFSUkFZX1NJWkUobW9kZV90YWJsZV9jb21tb24pLA0KPiBOVUxMKTsNCj4gPiArICAgICAgIGlm IChyZXQpDQo+ID4gKyAgICAgICAgICAgICAgIGdvdG8gZXJyX3JwbV9wdXQ7DQo+ID4gKw0KPiA+ ICsgICAgICAgbW9kZSA9IGdjMDVhMi0+Y3VyX21vZGU7DQo+ID4gKyAgICAgICByZWdfbGlzdCA9 ICZtb2RlLT5yZWdfbGlzdDsNCj4gPiArDQo+ID4gKyAgICAgICByZXQgPSBjY2lfbXVsdGlfcmVn X3dyaXRlKGdjMDVhMi0+cmVnbWFwLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZWdfbGlzdC0+cmVncywgcmVnX2xpc3QtDQo+ID5udW1fb2ZfcmVncywgTlVMTCk7DQo+ ID4gKyAgICAgICBpZiAocmV0IDwgMCkNCj4gPiArICAgICAgICAgICAgICAgZ290byBlcnJfcnBt X3B1dDsNCj4gPiArDQo+ID4gKyAgICAgICByZXQgPSBfX3Y0bDJfY3RybF9oYW5kbGVyX3NldHVw KCZnYzA1YTItPmN0cmxzKTsNCj4gPiArICAgICAgIGlmIChyZXQgPCAwKSB7DQo+ID4gKyAgICAg ICAgICAgICAgIGRldl9lcnIoZ2MwNWEyLT5kZXYsICJjb3VsZCBub3Qgc3luYyB2NGwyDQo+IGNv bnRyb2xzXG4iKTsNCj4gPiArICAgICAgICAgICAgICAgZ290byBlcnJfcnBtX3B1dDsNCj4gPiAr ICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICByZXQgPSBjY2lfd3JpdGUoZ2MwNWEyLT5yZWdt YXAsIEdDMDVBMl9TVFJFQU1JTkdfUkVHLCAxLA0KPiBOVUxMKTsNCj4gPiArICAgICAgIGlmIChy ZXQgPCAwKSB7DQo+ID4gKyAgICAgICAgICAgICAgIGRldl9lcnIoZ2MwNWEyLT5kZXYsICJ3cml0 ZSBTVFJFQU1JTkdfUkVHIGZhaWxlZDoNCj4gJWRcbiIsIHJldCk7DQo+ID4gKyAgICAgICAgICAg ICAgIGdvdG8gZXJyX3JwbV9wdXQ7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAg cmV0dXJuIDA7DQo+ID4gKw0KPiA+ICtlcnJfcnBtX3B1dDoNCj4gPiArICAgICAgIHBtX3J1bnRp bWVfcHV0KGdjMDVhMi0+ZGV2KTsNCj4gPiArICAgICAgIHJldHVybiByZXQ7DQo+ID4gK30NCj4g PiArDQo+ID4gK3N0YXRpYyBpbnQgZ2MwNWEyX3N0b3Bfc3RyZWFtaW5nKHN0cnVjdCBnYzA1YTIg KmdjMDVhMikNCj4gPiArew0KPiA+ICsgICAgICAgaW50IHJldDsNCj4gPiArDQo+ID4gKyAgICAg ICByZXQgPSBjY2lfd3JpdGUoZ2MwNWEyLT5yZWdtYXAsIEdDMDVBMl9TVFJFQU1JTkdfUkVHLCAw LA0KPiBOVUxMKTsNCj4gPiArICAgICAgIGlmIChyZXQgPCAwKQ0KPiA+ICsgICAgICAgICAgICAg ICBkZXZfZXJyKGdjMDVhMi0+ZGV2LCAiY291bGQgbm90IHNlbnQgc3RvcCBzdHJlYW1pbmcNCj4g JWRcbiIsIHJldCk7DQo+ID4gKw0KPiA+ICsgICAgICAgcG1fcnVudGltZV9wdXQoZ2MwNWEyLT5k ZXYpOw0KPiA+ICsgICAgICAgcmV0dXJuIHJldDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGlj IGludCBnYzA1YTJfc19zdHJlYW0oc3RydWN0IHY0bDJfc3ViZGV2ICpzdWJkZXYsIGludCBlbmFi bGUpDQo+ID4gK3sNCj4gPiArICAgICAgIHN0cnVjdCBnYzA1YTIgKmdjMDVhMiA9IHRvX2djMDVh MihzdWJkZXYpOw0KPiA+ICsgICAgICAgc3RydWN0IHY0bDJfc3ViZGV2X3N0YXRlICpzdGF0ZTsN Cj4gPiArICAgICAgIGludCByZXQ7DQo+ID4gKw0KPiA+ICsgICAgICAgc3RhdGUgPSB2NGwyX3N1 YmRldl9sb2NrX2FuZF9nZXRfYWN0aXZlX3N0YXRlKHN1YmRldik7DQo+ID4gKw0KPiA+ICsgICAg ICAgaWYgKGVuYWJsZSkNCj4gPiArICAgICAgICAgICAgICAgcmV0ID0gZ2MwNWEyX3N0YXJ0X3N0 cmVhbWluZyhnYzA1YTIpOw0KPiA+ICsgICAgICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICBy ZXQgPSBnYzA1YTJfc3RvcF9zdHJlYW1pbmcoZ2MwNWEyKTsNCj4gPiArDQo+ID4gKyAgICAgICB2 NGwyX3N1YmRldl91bmxvY2tfc3RhdGUoc3RhdGUpOw0KPiA+ICsNCj4gPiArICAgICAgIHJldHVy biByZXQ7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdjRsMl9zdWJk ZXZfdmlkZW9fb3BzIGdjMDVhMl92aWRlb19vcHMgPSB7DQo+ID4gKyAgICAgICAuc19zdHJlYW0g PSBnYzA1YTJfc19zdHJlYW0sDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qgc3Ry dWN0IHY0bDJfc3ViZGV2X3BhZF9vcHMgZ2MwNWEyX3N1YmRldl9wYWRfb3BzID0gew0KPiA+ICsg ICAgICAgLmVudW1fbWJ1c19jb2RlID0gZ2MwNWEyX2VudW1fbWJ1c19jb2RlLA0KPiA+ICsgICAg ICAgLmVudW1fZnJhbWVfc2l6ZSA9IGdjMDVhMl9lbnVtX2ZyYW1lX3NpemUsDQo+ID4gKyAgICAg ICAuZ2V0X2ZtdCA9IHY0bDJfc3ViZGV2X2dldF9mbXQsDQo+ID4gKyAgICAgICAuc2V0X2ZtdCA9 IGdjMDVhMl9zZXRfZm9ybWF0LA0KPiA+ICsgICAgICAgLmdldF9zZWxlY3Rpb24gPSBnYzA1YTJf Z2V0X3NlbGVjdGlvbiwNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg djRsMl9zdWJkZXZfY29yZV9vcHMgZ2MwNWEyX2NvcmVfb3BzID0gew0KPiA+ICsgICAgICAgLnN1 YnNjcmliZV9ldmVudCA9IHY0bDJfY3RybF9zdWJkZXZfc3Vic2NyaWJlX2V2ZW50LA0KPiA+ICsg ICAgICAgLnVuc3Vic2NyaWJlX2V2ZW50ID0gdjRsMl9ldmVudF9zdWJkZXZfdW5zdWJzY3JpYmUs DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHY0bDJfc3ViZGV2X29w cyBnYzA1YTJfc3ViZGV2X29wcyA9IHsNCj4gPiArICAgICAgIC5jb3JlID0gJmdjMDVhMl9jb3Jl X29wcywNCj4gPiArICAgICAgIC52aWRlbyA9ICZnYzA1YTJfdmlkZW9fb3BzLA0KPiA+ICsgICAg ICAgLnBhZCA9ICZnYzA1YTJfc3ViZGV2X3BhZF9vcHMsDQo+ID4gK307DQo+ID4gKw0KPiA+ICtz dGF0aWMgY29uc3Qgc3RydWN0IHY0bDJfc3ViZGV2X2ludGVybmFsX29wcyBnYzA1YTJfaW50ZXJu YWxfb3BzID0NCj4gew0KPiA+ICsgICAgICAgLmluaXRfc3RhdGUgPSBnYzA1YTJfaW5pdF9zdGF0 ZSwNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgZ2MwNWEyX2dldF9yZWd1bGF0b3Jz KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGdjMDVhMg0KPiAqZ2MwNWEyKQ0KPiA+ICt7DQo+ ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgaTsNCj4gPiArDQo+ID4gKyAgICAgICBmb3IgKGkgPSAw OyBpIDwgQVJSQVlfU0laRShnYzA1YTJfc3VwcGx5X25hbWUpOyBpKyspDQo+ID4gKyAgICAgICAg ICAgICAgIGdjMDVhMi0+c3VwcGxpZXNbaV0uc3VwcGx5ID0gZ2MwNWEyX3N1cHBseV9uYW1lW2ld Ow0KPiA+ICsNCj4gPiArICAgICAgIHJldHVybiBkZXZtX3JlZ3VsYXRvcl9idWxrX2dldChkZXYs DQo+IEFSUkFZX1NJWkUoZ2MwNWEyX3N1cHBseV9uYW1lKSwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBnYzA1YTItPnN1cHBsaWVzKTsNCj4gPiArfQ0KPiA+ICsN Cj4gPiArc3RhdGljIGludCBnYzA1YTJfcGFyc2VfZndub2RlKHN0cnVjdCBnYzA1YTIgKmdjMDVh MikNCj4gPiArew0KPiA+ICsgICAgICAgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmVuZHBvaW50Ow0K PiA+ICsgICAgICAgc3RydWN0IHY0bDJfZndub2RlX2VuZHBvaW50IGJ1c19jZmcgPSB7DQo+ID4g KyAgICAgICAgICAgICAgIC5idXNfdHlwZSA9IFY0TDJfTUJVU19DU0kyX0RQSFksDQo+ID4gKyAg ICAgICB9Ow0KPiA+ICsgICAgICAgaW50IHJldDsNCj4gPiArICAgICAgIHN0cnVjdCBkZXZpY2Ug KmRldiA9IGdjMDVhMi0+ZGV2Ow0KPiA+ICsNCj4gPiArICAgICAgIGVuZHBvaW50ID0NCj4gPiAr ICAgICAgICAgICAgICAgZndub2RlX2dyYXBoX2dldF9lbmRwb2ludF9ieV9pZChkZXZfZndub2Rl KGRldiksIDAsDQo+IDAsDQo+ID4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRldOT0RFX0dSQVBIX0VORFBPSU5UDQo+IF9ORVhUKTsNCj4gPiArICAg ICAgIGlmICghZW5kcG9pbnQpIHsNCj4gPiArICAgICAgICAgICAgICAgZGV2X2VycihkZXYsICJl bmRwb2ludCBub2RlIG5vdCBmb3VuZFxuIik7DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAt RUlOVkFMOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIHJldCA9IHY0bDJfZndu b2RlX2VuZHBvaW50X2FsbG9jX3BhcnNlKGVuZHBvaW50LCAmYnVzX2NmZyk7DQo+ID4gKyAgICAg ICBpZiAocmV0KSB7DQo+ID4gKyAgICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAicGFyc2luZyBl bmRwb2ludCBub2RlIGZhaWxlZFxuIik7DQo+ID4gKyAgICAgICAgICAgICAgIGdvdG8gZG9uZTsN Cj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICByZXQgPSB2NGwyX2xpbmtfZnJlcV90 b19iaXRtYXAoZGV2LA0KPiBidXNfY2ZnLmxpbmtfZnJlcXVlbmNpZXMsDQo+ID4NCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVzX2NmZy5ucl9vZl9saW5rX2ZyZXF1 ZW5jaWVzDQo+ICwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn YzA1YTJfbGlua19mcmVxX21lbnVfaXRlbXMsDQo+ID4NCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQVJSQVlfU0laRShnYzA1YTJfbGlua19mcmVxX21lDQo+IG51X2l0 ZW1zKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZ2MwNWEy LT5saW5rX2ZyZXFfYml0bWFwKTsNCj4gPiArICAgICAgIGlmIChyZXQpDQo+ID4gKyAgICAgICAg ICAgICAgIGdvdG8gZG9uZTsNCj4gPiArDQo+ID4gK2RvbmU6DQo+ID4gKyAgICAgICB2NGwyX2Z3 bm9kZV9lbmRwb2ludF9mcmVlKCZidXNfY2ZnKTsNCj4gPiArICAgICAgIGZ3bm9kZV9oYW5kbGVf cHV0KGVuZHBvaW50KTsNCj4gPiArICAgICAgIHJldHVybiByZXQ7DQo+ID4gK30NCj4gPiArDQo+ ID4gK3N0YXRpYyB1NjQgZ2MwNWEyX3RvX3BpeGVsX3JhdGUodTMyIGZfaW5kZXgpDQo+ID4gK3sN Cj4gPiArICAgICAgIHU2NCBwaXhlbF9yYXRlID0NCj4gPiArICAgICAgICAgICAgICAgZ2MwNWEy X2xpbmtfZnJlcV9tZW51X2l0ZW1zW2ZfaW5kZXhdICogMiAqDQo+IEdDMDVBMl9EQVRBX0xBTkVT Ow0KPiA+ICsNCj4gPiArICAgICAgIHJldHVybiBkaXZfdTY0KHBpeGVsX3JhdGUsIEdDMDVBMl9S R0JfREVQVEgpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IGdjMDVhMl9pbml0X2Nv bnRyb2xzKHN0cnVjdCBnYzA1YTIgKmdjMDVhMikNCj4gPiArew0KPiA+ICsgICAgICAgc3RydWN0 IGkyY19jbGllbnQgKmNsaWVudCA9IHY0bDJfZ2V0X3N1YmRldmRhdGEoJmdjMDVhMi0NCj4gPnNk KTsNCj4gPiArICAgICAgIGNvbnN0IHN0cnVjdCBnYzA1YTJfbW9kZSAqbW9kZSA9ICZnYzA1YTJf bW9kZXNbMF07DQo+ID4gKyAgICAgICBjb25zdCBzdHJ1Y3QgdjRsMl9jdHJsX29wcyAqb3BzID0g JmdjMDVhMl9jdHJsX29wczsNCj4gPiArICAgICAgIHN0cnVjdCB2NGwyX2Z3bm9kZV9kZXZpY2Vf cHJvcGVydGllcyBwcm9wczsNCj4gPiArICAgICAgIHN0cnVjdCB2NGwyX2N0cmxfaGFuZGxlciAq Y3RybF9oZGxyOw0KPiA+ICsgICAgICAgczY0IGV4cG9zdXJlX21heCwgaF9ibGFuazsNCj4gPiAr ICAgICAgIGludCByZXQ7DQo+ID4gKw0KPiA+ICsgICAgICAgY3RybF9oZGxyID0gJmdjMDVhMi0+ Y3RybHM7DQo+ID4gKyAgICAgICByZXQgPSB2NGwyX2N0cmxfaGFuZGxlcl9pbml0KGN0cmxfaGRs ciwgOSk7DQo+ID4gKyAgICAgICBpZiAocmV0KQ0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4g cmV0Ow0KPiA+ICsNCj4gPiArICAgICAgIGdjMDVhMi0+aGZsaXAgPSB2NGwyX2N0cmxfbmV3X3N0 ZChjdHJsX2hkbHIsDQo+ICZnYzA1YTJfY3RybF9vcHMsDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVjRMMl9DSURfSEZMSVAsIDAsIDEsIDEsDQo+IDApOw0K PiA+ICsgICAgICAgZ2MwNWEyLT52ZmxpcCA9IHY0bDJfY3RybF9uZXdfc3RkKGN0cmxfaGRsciwN Cj4gJmdjMDVhMl9jdHJsX29wcywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBWNEwyX0NJRF9WRkxJUCwgMCwgMSwgMSwNCj4gMCk7DQo+ID4gKyAgICAgICB2 NGwyX2N0cmxfY2x1c3RlcigyLCAmZ2MwNWEyLT5oZmxpcCk7DQo+ID4gKw0KPiA+ICsgICAgICAg Z2MwNWEyLT5saW5rX2ZyZXEgPQ0KPiA+ICsgICAgICAgdjRsMl9jdHJsX25ld19pbnRfbWVudShj dHJsX2hkbHIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZnYzA1YTJfY3Ry bF9vcHMsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFY0TDJfQ0lEX0xJTktf RlJFUSwNCj4gPg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJSQVlfU0laRShn YzA1YTJfbGlua19mcmVxX21lbnVfaXRlbXMNCj4gKSAtIDEsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDAsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdj MDVhMl9saW5rX2ZyZXFfbWVudV9pdGVtcyk7DQo+ID4gKyAgICAgICBpZiAoZ2MwNWEyLT5saW5r X2ZyZXEpDQo+ID4gKyAgICAgICAgICAgICAgIGdjMDVhMi0+bGlua19mcmVxLT5mbGFncyB8PQ0K PiBWNEwyX0NUUkxfRkxBR19SRUFEX09OTFk7DQo+ID4gKw0KPiA+ICsgICAgICAgZ2MwNWEyLT5w aXhlbF9yYXRlID0NCj4gPiArICAgICAgICAgICAgICAgdjRsMl9jdHJsX25ld19zdGQoY3RybF9o ZGxyLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZ2MwNWEyX2N0cmxf b3BzLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWNEwyX0NJRF9QSVhF TF9SQVRFLCAwLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYzA1YTJf dG9fcGl4ZWxfcmF0ZSgwKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2MwNWEyX3RvX3BpeGVs X3JhdGUoMCkpOw0KPiA+ICsNCj4gPiArICAgICAgIGdjMDVhMi0+dmJsYW5rID0NCj4gPiArICAg ICAgICAgICAgICAgdjRsMl9jdHJsX25ld19zdGQoY3RybF9oZGxyLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmZ2MwNWEyX2N0cmxfb3BzLA0KPiBWNEwyX0NJRF9WQkxB TkssDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUtPnZ0c19taW4g LSBtb2RlLT5oZWlnaHQsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdD MDVBMl9WVFNfTUFYIC0gbW9kZS0+aGVpZ2h0LCAxLA0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtb2RlLT52dHNfZGVmIC0gbW9kZS0+aGVpZ2h0KTsNCj4gPiArDQo+ID4g KyAgICAgICBoX2JsYW5rID0gbW9kZS0+aHRzIC0gbW9kZS0+d2lkdGg7DQo+ID4gKyAgICAgICBn YzA1YTItPmhibGFuayA9IHY0bDJfY3RybF9uZXdfc3RkKGN0cmxfaGRsciwNCj4gJmdjMDVhMl9j dHJsX29wcywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VjRMMl9DSURfSEJMQU5LLA0KPiBoX2JsYW5rLCBoX2JsYW5rLCAxLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoX2JsYW5rKTsNCj4gPiArICAgICAgIGlm IChnYzA1YTItPmhibGFuaykNCj4gPiArICAgICAgICAgICAgICAgZ2MwNWEyLT5oYmxhbmstPmZs YWdzIHw9IFY0TDJfQ1RSTF9GTEFHX1JFQURfT05MWTsNCj4gPiArDQo+ID4gKyAgICAgICB2NGwy X2N0cmxfbmV3X3N0ZChjdHJsX2hkbHIsICZnYzA1YTJfY3RybF9vcHMsDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICBWNEwyX0NJRF9BTkFMT0dVRV9HQUlOLCBHQzA1QTJfQUdBSU5fTUlO LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgR0MwNUEyX0FHQUlOX01BWCwgR0MwNUEy X0FHQUlOX1NURVAsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBHQzA1QTJfQUdBSU5f TUlOKTsNCj4gPiArDQo+ID4gKyAgICAgICBleHBvc3VyZV9tYXggPSBtb2RlLT52dHNfZGVmIC0g R0MwNUEyX0VYUF9NQVJHSU47DQo+ID4gKyAgICAgICBnYzA1YTItPmV4cG9zdXJlID0gdjRsMl9j dHJsX25ld19zdGQoY3RybF9oZGxyLA0KPiAmZ2MwNWEyX2N0cmxfb3BzLA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFY0TDJfQ0lEX0VYUE9TVVJFLA0K PiBHQzA1QTJfRVhQX01JTiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBleHBvc3VyZV9tYXgsDQo+IEdDMDVBMl9FWFBfU1RFUCwNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvc3VyZV9tYXgpOw0KPiA+ ICsNCj4gPiArICAgICAgIHY0bDJfY3RybF9uZXdfc3RkX21lbnVfaXRlbXMoY3RybF9oZGxyLCAm Z2MwNWEyX2N0cmxfb3BzLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBWNEwyX0NJRF9URVNUX1BBVFRFUk4sDQo+ID4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFSUkFZX1NJWkUoZ2MwNWEyX3Rlc3RfcGF0dGVybl9tDQo+IGVudSkgLSAx LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLA0KPiBnYzA1 YTJfdGVzdF9wYXR0ZXJuX21lbnUpOw0KPiA+ICsNCj4gPiArICAgICAgIC8qIHJlZ2lzdGVyIHBy b3BlcnRpZXMgdG8gZndub2RlIChlLmcuIHJvdGF0aW9uLA0KPiBvcmllbnRhdGlvbikgKi8NCj4g PiArICAgICAgIHJldCA9IHY0bDJfZndub2RlX2RldmljZV9wYXJzZSgmY2xpZW50LT5kZXYsICZw cm9wcyk7DQo+ID4gKyAgICAgICBpZiAocmV0KQ0KPiA+ICsgICAgICAgICAgICAgICBnb3RvIGVy cm9yX2N0cmxzOw0KPiA+ICsNCj4gPiArICAgICAgIHJldCA9IHY0bDJfY3RybF9uZXdfZndub2Rl X3Byb3BlcnRpZXMoY3RybF9oZGxyLCBvcHMsDQo+ICZwcm9wcyk7DQo+ID4gKyAgICAgICBpZiAo cmV0KQ0KPiA+ICsgICAgICAgICAgICAgICBnb3RvIGVycm9yX2N0cmxzOw0KPiA+ICsNCj4gPiAr ICAgICAgIGlmIChjdHJsX2hkbHItPmVycm9yKSB7DQo+ID4gKyAgICAgICAgICAgICAgIHJldCA9 IGN0cmxfaGRsci0+ZXJyb3I7DQo+ID4gKyAgICAgICAgICAgICAgIGdvdG8gZXJyb3JfY3RybHM7 DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgZ2MwNWEyLT5zZC5jdHJsX2hhbmRs ZXIgPSBjdHJsX2hkbHI7DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0dXJuIDA7DQo+ID4gKw0KPiA+ ICtlcnJvcl9jdHJsczoNCj4gPiArICAgICAgIHY0bDJfY3RybF9oYW5kbGVyX2ZyZWUoY3RybF9o ZGxyKTsNCj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4gcmV0Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ ICtzdGF0aWMgaW50IGdjMDVhMl9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQ0KPiA+ ICt7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmY2xpZW50LT5kZXY7DQo+ID4g KyAgICAgICBzdHJ1Y3QgZ2MwNWEyICpnYzA1YTI7DQo+ID4gKyAgICAgICBpbnQgcmV0Ow0KPiA+ ICsNCj4gPiArICAgICAgIGdjMDVhMiA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqZ2MwNWEy KSwgR0ZQX0tFUk5FTCk7DQo+ID4gKyAgICAgICBpZiAoIWdjMDVhMikNCj4gPiArICAgICAgICAg ICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ID4gKw0KPiA+ICsgICAgICAgZ2MwNWEyLT5kZXYgPSBk ZXY7DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0ID0gZ2MwNWEyX3BhcnNlX2Z3bm9kZShnYzA1YTIp Ow0KPiA+ICsgICAgICAgaWYgKHJldCkNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIHJldDsN Cj4gPiArDQo+ID4gKyAgICAgICBnYzA1YTItPnJlZ21hcCA9IGRldm1fY2NpX3JlZ21hcF9pbml0 X2kyYyhjbGllbnQsIDE2KTsNCj4gPiArICAgICAgIGlmIChJU19FUlIoZ2MwNWEyLT5yZWdtYXAp KQ0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIo Z2MwNWEyLT5yZWdtYXApLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiZmFpbGVkIHRvIGluaXQgQ0NJXG4iKTsNCj4gPiArDQo+ID4gKyAgICAgICBnYzA1YTItPnhj bGsgPSBkZXZtX2Nsa19nZXQoZGV2LCBOVUxMKTsNCj4gPiArICAgICAgIGlmIChJU19FUlIoZ2Mw NWEyLT54Y2xrKSkNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2 LCBQVFJfRVJSKGdjMDVhMi0+eGNsayksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJmYWlsZWQgdG8gZ2V0IHhjbGtcbiIpOw0KPiA+ICsNCj4gPiArICAgICAgIHJl dCA9IGNsa19zZXRfcmF0ZShnYzA1YTItPnhjbGssIEdDMDVBMl9ERUZBVUxUX0NMS19GUkVRKTsN Cj4gPiArICAgICAgIGlmIChyZXQpDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBkZXZfZXJy X3Byb2JlKGRldiwgcmV0LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiZmFpbGVkIHRvIHNldCB4Y2xrDQo+IGZyZXF1ZW5jeVxuIik7DQo+ID4gKw0KPiA+ICsgICAg ICAgcmV0ID0gZ2MwNWEyX2dldF9yZWd1bGF0b3JzKGRldiwgZ2MwNWEyKTsNCj4gPiArICAgICAg IGlmIChyZXQgPCAwKQ0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gZGV2X2Vycl9wcm9iZShk ZXYsIHJldCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZhaWxl ZCB0byBnZXQgcmVndWxhdG9yc1xuIik7DQo+ID4gKw0KPiA+ICsgICAgICAgZ2MwNWEyLT5yZXNl dF9ncGlvID0gZGV2bV9ncGlvZF9nZXQoZGV2LCAicmVzZXQiLA0KPiBHUElPRF9PVVRfTE9XKTsN Cj4gPiArICAgICAgIGlmIChJU19FUlIoZ2MwNWEyLT5yZXNldF9ncGlvKSkNCj4gPiArICAgICAg ICAgICAgICAgcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKGdjMDVhMi0NCj4gPnJl c2V0X2dwaW8pLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmFp bGVkIHRvIGdldCBncGlvXG4iKTsNCj4gPiArDQo+ID4gKyAgICAgICB2NGwyX2kyY19zdWJkZXZf aW5pdCgmZ2MwNWEyLT5zZCwgY2xpZW50LA0KPiAmZ2MwNWEyX3N1YmRldl9vcHMpOw0KPiA+ICsg ICAgICAgZ2MwNWEyLT5zZC5pbnRlcm5hbF9vcHMgPSAmZ2MwNWEyX2ludGVybmFsX29wczsNCj4g PiArICAgICAgIGdjMDVhMi0+Y3VyX21vZGUgPSAmZ2MwNWEyX21vZGVzWzBdOw0KPiA+ICsNCj4g PiArICAgICAgIHJldCA9IGdjMDVhMl9pbml0X2NvbnRyb2xzKGdjMDVhMik7DQo+ID4gKyAgICAg ICBpZiAocmV0KQ0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYs IHJldCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZhaWxlZCB0 byBpbml0IGNvbnRyb2xzXG4iKTsNCj4gPiArDQo+ID4gKyAgICAgICBnYzA1YTItPnNkLmZsYWdz IHw9IFY0TDJfU1VCREVWX0ZMX0hBU19ERVZOT0RFIHwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgVjRMMl9TVUJERVZfRkxfSEFTX0VWRU5UUzsNCj4gPiArICAgICAgIGdjMDVhMi0+ cGFkLmZsYWdzID0gTUVESUFfUEFEX0ZMX1NPVVJDRTsNCj4gPiArICAgICAgIGdjMDVhMi0+c2Qu ZGV2ID0gJmNsaWVudC0+ZGV2Ow0KPiA+ICsgICAgICAgZ2MwNWEyLT5zZC5lbnRpdHkuZnVuY3Rp b24gPSBNRURJQV9FTlRfRl9DQU1fU0VOU09SOw0KPiA+ICsNCj4gPiArICAgICAgIHJldCA9IG1l ZGlhX2VudGl0eV9wYWRzX2luaXQoJmdjMDVhMi0+c2QuZW50aXR5LCAxLA0KPiAmZ2MwNWEyLT5w YWQpOw0KPiA+ICsgICAgICAgaWYgKHJldCA8IDApIHsNCj4gPiArICAgICAgICAgICAgICAgZGV2 X2VycihkZXYsICJjb3VsZCBub3QgcmVnaXN0ZXIgbWVkaWEgZW50aXR5XG4iKTsNCj4gPiArICAg ICAgICAgICAgICAgZ290byBlcnJfdjRsMl9jdHJsX2hhbmRsZXJfZnJlZTsNCj4gPiArICAgICAg IH0NCj4gPiArDQo+ID4gKyAgICAgICBnYzA1YTItPnNkLnN0YXRlX2xvY2sgPSBnYzA1YTItPmN0 cmxzLmxvY2s7DQo+ID4gKyAgICAgICByZXQgPSB2NGwyX3N1YmRldl9pbml0X2ZpbmFsaXplKCZn YzA1YTItPnNkKTsNCj4gPiArICAgICAgIGlmIChyZXQgPCAwKSB7DQo+ID4gKyAgICAgICAgICAg ICAgIGRldl9lcnIoZGV2LCAidjRsMiBzdWJkZXYgaW5pdCBlcnJvcjogJWRcbiIsIHJldCk7DQo+ ID4gKyAgICAgICAgICAgICAgIGdvdG8gZXJyX21lZGlhX2VudGl0eV9jbGVhbnVwOw0KPiA+ICsg ICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIHBtX3J1bnRpbWVfc2V0X2FjdGl2ZShnYzA1YTIt PmRldik7DQo+ID4gKyAgICAgICBwbV9ydW50aW1lX2VuYWJsZShnYzA1YTItPmRldik7DQo+ID4g KyAgICAgICBwbV9ydW50aW1lX3NldF9hdXRvc3VzcGVuZF9kZWxheShnYzA1YTItPmRldiwgMTAw MCk7DQo+ID4gKyAgICAgICBwbV9ydW50aW1lX3VzZV9hdXRvc3VzcGVuZChnYzA1YTItPmRldik7 DQo+ID4gKyAgICAgICBwbV9ydW50aW1lX2lkbGUoZ2MwNWEyLT5kZXYpOw0KPiA+ICsNCj4gPiAr ICAgICAgIHJldCA9IHY0bDJfYXN5bmNfcmVnaXN0ZXJfc3ViZGV2X3NlbnNvcigmZ2MwNWEyLT5z ZCk7DQo+ID4gKyAgICAgICBpZiAocmV0IDwgMCkgew0KPiA+ICsgICAgICAgICAgICAgICBkZXZf ZXJyKGRldiwgImNvdWxkIG5vdCByZWdpc3RlciB2NGwyIGRldmljZVxuIik7DQo+ID4gKyAgICAg ICAgICAgICAgIGdvdG8gZXJyX3JwbTsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAg ICByZXR1cm4gMDsNCj4gPiArDQo+ID4gK2Vycl9ycG06DQo+ID4gKyAgICAgICBwbV9ydW50aW1l X2Rpc2FibGUoZ2MwNWEyLT5kZXYpOw0KPiA+ICsgICAgICAgdjRsMl9zdWJkZXZfY2xlYW51cCgm Z2MwNWEyLT5zZCk7DQo+ID4gKw0KPiA+ICtlcnJfbWVkaWFfZW50aXR5X2NsZWFudXA6DQo+ID4g KyAgICAgICBtZWRpYV9lbnRpdHlfY2xlYW51cCgmZ2MwNWEyLT5zZC5lbnRpdHkpOw0KPiA+ICsN Cj4gPiArZXJyX3Y0bDJfY3RybF9oYW5kbGVyX2ZyZWU6DQo+ID4gKyAgICAgICB2NGwyX2N0cmxf aGFuZGxlcl9mcmVlKCZnYzA1YTItPmN0cmxzKTsNCj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4g cmV0Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCBnYzA1YTJfcmVtb3ZlKHN0cnVj dCBpMmNfY2xpZW50ICpjbGllbnQpDQo+ID4gK3sNCj4gPiArICAgICAgIHN0cnVjdCB2NGwyX3N1 YmRldiAqc2QgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsNCj4gPiArICAgICAgIHN0cnVj dCBnYzA1YTIgKmdjMDVhMiA9IHRvX2djMDVhMihzZCk7DQo+ID4gKw0KPiA+ICsgICAgICAgdjRs Ml9hc3luY191bnJlZ2lzdGVyX3N1YmRldigmZ2MwNWEyLT5zZCk7DQo+ID4gKyAgICAgICB2NGwy X3N1YmRldl9jbGVhbnVwKHNkKTsNCj4gPiArICAgICAgIG1lZGlhX2VudGl0eV9jbGVhbnVwKCZn YzA1YTItPnNkLmVudGl0eSk7DQo+ID4gKyAgICAgICB2NGwyX2N0cmxfaGFuZGxlcl9mcmVlKCZn YzA1YTItPmN0cmxzKTsNCj4gPiArDQo+ID4gKyAgICAgICBwbV9ydW50aW1lX2Rpc2FibGUoJmNs aWVudC0+ZGV2KTsNCj4gPiArICAgICAgIGlmICghcG1fcnVudGltZV9zdGF0dXNfc3VzcGVuZGVk KCZjbGllbnQtPmRldikpDQo+ID4gKyAgICAgICAgICAgICAgIGdjMDVhMl9wb3dlcl9vZmYoZ2Mw NWEyLT5kZXYpOw0KPiA+ICsgICAgICAgcG1fcnVudGltZV9zZXRfc3VzcGVuZGVkKCZjbGllbnQt PmRldik7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNl X2lkIGdjMDVhMl9vZl9tYXRjaFtdID0gew0KPiA+ICsgICAgICAgeyAuY29tcGF0aWJsZSA9ICJn YWxheHljb3JlLGdjMDVhMiIgfSwNCj4gPiArICAgICAgIHt9DQo+ID4gK307DQo+ID4gK01PRFVM RV9ERVZJQ0VfVEFCTEUob2YsIGdjMDVhMl9vZl9tYXRjaCk7DQo+ID4gKw0KPiA+ICtzdGF0aWMg REVGSU5FX1JVTlRJTUVfREVWX1BNX09QUyhnYzA1YTJfcG1fb3BzLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdjMDVhMl9wb3dlcl9vZmYsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ2MwNWEyX3Bvd2VyX29uLA0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5VTEwpOw0KPiA+ICsNCj4gPiArc3RhdGljIHN0cnVjdCBpMmNf ZHJpdmVyIGdjMDVhMl9pMmNfZHJpdmVyID0gew0KPiA+ICsgICAgICAgLmRyaXZlciA9IHsNCj4g PiArICAgICAgICAgICAgICAgLm9mX21hdGNoX3RhYmxlID0gZ2MwNWEyX29mX21hdGNoLA0KPiA+ ICsgICAgICAgICAgICAgICAucG0gPSBwbV9wdHIoJmdjMDVhMl9wbV9vcHMpLA0KPiA+ICsgICAg ICAgICAgICAgICAubmFtZSAgPSAiZ2MwNWEyIiwNCj4gPiArICAgICAgIH0sDQo+ID4gKyAgICAg ICAucHJvYmUgPSBnYzA1YTJfcHJvYmUsDQo+ID4gKyAgICAgICAucmVtb3ZlID0gZ2MwNWEyX3Jl bW92ZSwNCj4gPiArfTsNCj4gPiArbW9kdWxlX2kyY19kcml2ZXIoZ2MwNWEyX2kyY19kcml2ZXIp Ow0KPiA+ICsNCj4gPiArTU9EVUxFX0RFU0NSSVBUSU9OKCJHYWxheHlDb3JlIGdjMDVhMiBDYW1l cmEgZHJpdmVyIik7DQo+ID4gK01PRFVMRV9BVVRIT1IoIlpoaSBNYW8gPHpoaS5tYW9AbWVkaWF0 ZWsuY29tPiIpOw0KPiA+ICtNT0RVTEVfTElDRU5TRSgiR1BMIik7DQo+ID4gLS0gDQo+ID4gMi4y NS4xDQo+ID4NCg==