Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rLQ6Y-007o4U-GP for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Jan 2024 15:57:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rLQ6X-00Diu1-6I for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Jan 2024 15:57:57 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rLQ6W-00Diq4-JT for pgsql-hackers@lists.postgresql.org; Thu, 04 Jan 2024 15:57:56 +0000 Received: from esa.hc2186-20.iphmx.com ([216.71.154.29]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rLQ6O-00FWnX-Jg for pgsql-hackers@lists.postgresql.org; Thu, 04 Jan 2024 15:57:56 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=ebay.com; i=@ebay.com; q=dns/txt; s=ebaycorp; t=1704383868; x=1735919868; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=/D9ct5snRl840JwQlM4hxK+x49DHNTN7kK4qjry0ttE=; b=Mf5BiLepfvgCatWun9qdDTuklxH8NCrhlgXY77qE6xjE+ox0OVNCy2c2 oUcNku8bcRKsOV8BFTsqiZ7lEoDSlopX573eGTuVNGuPrSPi+u4g+HIIc QcTqyW00NUEVrSt048dh6emf8gL8Hh7sF/i/ZJvRPkC8ldTmPFGMg9H16 A=; X-IronPort-RemoteIP: 216.113.162.88 X-IronPort-MID: 243662071 X-IronPort-Reputation: 3.7 X-IronPort-Listener: OutboundMail X-IronPort-SenderGroup: Vontu_to_CES_Outbound X-IronPort-MailFlowPolicy: $Vontu_to_CES_Outbound X-EBay-Corp: Yes X-IronPort-AV: E=Sophos;i="6.04,331,1695711600"; d="scan'208";a="243662071" Received: from lvs-dlpoutbound.corp.ebay.com (HELO lvs-ipatom-003.corp.ebay.com) ([216.113.162.88]) by esa6.hc2186-20.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jan 2024 07:57:36 -0800 X-ATOM: Processed_By_ATOM X-IronPort-Trust: True Received: from mail-bn7nam10lp2101.outbound.protection.outlook.com (HELO NAM10-BN7-obe.outbound.protection.outlook.com) ([104.47.70.101]) by atom.corp.ebay.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jan 2024 07:57:35 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XbpZBygJTGZtB7ypx8Z8ueIaeS2Tgg26esTDp5S0gXvDXOh7njerERl6Yf0GksBeZFPj/zqlCUO1zxDF6ftyDiwGcmF9cKPB2T6skwRoXyZUfTa6+aQA6KvEJc44RjutAWt2OwTNwla5kvOSzf2gYaTnmfW/In+/auxvMdZ3CvZNxSeWMN9V6kkm9qrDbmHjX3ZUZZKmUy/lM1JmgIgsxofP7NJIoeh+un4L7eid4vDtPmSmM2EnsBZc9WNdaeR/LP0Iz91wppL0f0LP6t3t2syUeFhjrVXuOl4AWpqoqe7rPPvizu3GQwCL6ogKL+RGexC7r1Iz880B6cnDOwi7mw== 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=SS8IEyWEQrEVdULTlUtg+tGm6RlFcLo92dU5JF+WphM=; b=CwaXNX97NHG6l8qCEG9xbCvifdqw0qA80fUjvhXAGThQmHF/cLKMF137kY5cU1jIVlRlAUKZw7WswSy9wYa2GPmrA8Lovow8aZE2X7aLJKsYqCdmjvVxURS9htxI3pdIdZiuZYBKiYliZcmzaa0bg9c/nm87ZPPcnzB2HvlGU0CWlMhjFpT1ns5MCHIo8xHtfnnQW29BXp3ADvjohSGUH+g7FRm/B2EUWbCnPeS/jkX5dH+iYuT+u0ndHsuZe9L0+HzbFfdgHWq2nLc56S8L2EArawqQSK1HyCOc36OVcDSfPCNKVhw/uI4cT+e6QNOW9MnBPD2dzgGcLq4dHcNEow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ebay.com; dmarc=pass action=none header.from=ebay.com; dkim=pass header.d=ebay.com; arc=none Received: from IA1PR07MB9829.namprd07.prod.outlook.com (2603:10b6:208:457::10) by SA1PR07MB9672.namprd07.prod.outlook.com (2603:10b6:806:330::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.25; Thu, 4 Jan 2024 15:57:33 +0000 Received: from IA1PR07MB9829.namprd07.prod.outlook.com ([fe80::70aa:f288:4e1e:b491]) by IA1PR07MB9829.namprd07.prod.outlook.com ([fe80::70aa:f288:4e1e:b491%2]) with mapi id 15.20.7159.013; Thu, 4 Jan 2024 15:57:33 +0000 From: "Li, Yong" To: Aleksander Alekseev CC: PostgreSQL Hackers , "Bagga, Rishu" , Robert Haas , "Debnath, Shawn" , Andrey Borodin , "Shyrabokau, Anton" Subject: Re: Proposal to add page headers to SLRU pages Thread-Topic: Proposal to add page headers to SLRU pages Thread-Index: AQHaKNss5mPje/mnaE2h8Du+MbQszrCdm+4AgABCcICAADaUAP//iV2AgACdaQCAAOPEloAQTV+AgAFhagCAFb+ZgIADbdMA Date: Thu, 4 Jan 2024 15:57:33 +0000 Message-ID: <359BB3DC-A174-43AF-A9BA-064CB6D2C7E9@ebay.com> References: <162841701969726@mail-sendbernar-corp-main-71.iva.yp-c.yandex.net> <76110763-F29E-469E-AA62-2EED17875BB7@ebay.com> <1404E248-F2B2-48BC-9B5E-BB318F3BE583@amazon.com> <628CFBEF-DF56-4D9A-A2F1-0A417848B6B6@ebay.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ebay.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA1PR07MB9829:EE_|SA1PR07MB9672:EE_ x-ms-office365-filtering-correlation-id: be6a7abc-8f55-4d46-c0c5-08dc0d3ddd10 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: QEC3cpFIqJTkftq2Wvu/l5/bgKJvaG20q7XRNSl189VJTs1RhJSjrZ1+j0vvxISsie4ZaleN+2Cy32OrYF08vRDlgEMVGRGrfcrPAiIQN9y4gRTzttmtPA2z1AHl2yN9YKvXYe4e+qi1RbZti+Kv/+G6xSayasH6yX3/X6cq8j0ZjpiZ19+CgWfeC4a/RAtok4jp36km4ASY3EEYtvb8Od15zXB71+8Nblr0pCPxnzY9Jj06N6isKZD+XCryZdzLJJ2nAg9w01VW+Xz3Okp3fwz9LBwK1VAVINDH0LXnNVP2TeX5gM+w8nV5kZJVRs6/e9X+pP6xEQ4305yMF8VLSKA/1gRvFvPrIMm0d3vkDaLxDSM2OFVm49rb5ICIHkU4/W8jlUfShfS+RdA0lZvJWgFES07+5lMoBVDh/pFLwAOBJtvSnlVimNnaFCqfS7OhPDmli09lIOSVuFuPOFAPpcd85qPw9NlRv4Di0Wmn8ZFDpY2o7frlulJDyLRkCYlFXRWgCtkQE0hsTdBd/tpdSq/KyZQaGV1pYmiWt6pVW6yyxrZaGaOVKygX0LZgKVaVf64CKNjIulg1mj7H2BvHU94OcRPGku5D31m7N8c6jUawJXa+XvMZ556uklFSpWBGnRsN1x7sv6exEQKlpliR7H41zRs/fLt1457OPFlk3ANzH1qqhdOGM8VCgNNQTKjizIUQu0w5XMOT7/NiTGo4vA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR07MB9829.namprd07.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(346002)(136003)(376002)(366004)(396003)(230273577357003)(230922051799003)(230173577357003)(1800799012)(64100799003)(451199024)(186009)(2616005)(26005)(71200400001)(107886003)(82960400001)(122000001)(3613699003)(99936003)(66556008)(83380400001)(38100700002)(66946007)(91956017)(76116006)(316002)(54906003)(36756003)(966005)(64756008)(66446008)(66476007)(478600001)(6916009)(6486002)(86362001)(5660300002)(2906002)(4744005)(8936002)(4326008)(8676002)(33656002)(38070700009)(10290500003)(45080400002)(6512007)(6506007)(53546011)(41300700001)(45980500001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?6teEeI7SKfK4eUz84Rtat31Mng7pCKGrDX0GdHgOv6+BZXduCyA82Y59kn+U?= =?us-ascii?Q?ennxccwa9IBltUteXDmP7F6rBy2E4D8zkNZaFykVAh3zH5wJIoGlGalstzga?= =?us-ascii?Q?eaCfSqusLjzdOEx7PpucC/ekCqK9BOjK/GrtJxQpbq9dm+KpRFPajYemZJZB?= =?us-ascii?Q?ZqFa/SDDLPHAFzptQ8f9simw4TI2MS4uzkiYeSjXBW6XD0hB4itLBDfqXv7X?= =?us-ascii?Q?ATYxKbzd2SSlBIMZRx9CeZ1vOQMQPnkJbNeQ0yC5V7D+J2m2/uDwYcDZG9V0?= =?us-ascii?Q?6s2/4BXKlYJGXE3I0tu7pGs9BMe54M69YV7V8SRp4dI637c/+GdJF5NFwWrz?= =?us-ascii?Q?N76CnHj+ehl8LO+dta+rnd1IPzeXyD6cDNwrD8MB9NctAmnH2fKk3bSwAcGr?= =?us-ascii?Q?ffvtEfWV9JthE2nD7t/GjHE3PRmmxJPx6gp1lShd/52ocTyqcafrMy09Oxg3?= =?us-ascii?Q?U501iJfjSO4nUgH/kGBJN8P6YcyiFmTxTXlPnLZ0Zkc7440AeZW7VEN4XDhf?= =?us-ascii?Q?qWxOjG4EId+jNdqyFOVi4G4UPq6C8Z+uwqUmvECvADFbdYl6d7x2E708hu2m?= =?us-ascii?Q?UWvIOqBJRFemllXSyYDu6ylpfPSXMdkzDwISDd4qM11mJ5L9VuuGfj4oA/3A?= =?us-ascii?Q?2i7bUbNZ3uDI7MAM10KED4I9LPYeZT34Ke13+noNoOaPqwuz918IXo9ks565?= =?us-ascii?Q?naXsWmmo579acFiQgic93bZTyjntNe/nISEz1dtcxsQZvCqpgsO12uMb8GGR?= =?us-ascii?Q?ixLH5o+jui6v6ITmJTe7zKD00EiMfUCowlyqZNtjQ9p+1g4HDXTrskrmEiMa?= =?us-ascii?Q?lvxIja1DiFr9WZXujXT1bXdGQnD/nBQfYaDsgdh5/7HT2o48658bXFypN+rN?= =?us-ascii?Q?dDyw9WgfEEhfDHw8ZAsC4PglcCCKLU2dOeHoBciEacduH2khXtjB0txqTTPf?= =?us-ascii?Q?k43Tx1jOHlTicWrtWlT64Knj65spTHQyfsYTdZGMagxV/SDzMRQdJL6oRhG/?= =?us-ascii?Q?IbnzWkDpkf36QBu/7E7aiODYTuxX9UwhOt5CRjpXzE4vPMdaNXpL2/U0O9qL?= =?us-ascii?Q?mFgcUNf6AmVoiJG4YFJwkiKiGkSyPc/KkzZ3Rt2RTrhwc34khCtqwtV4rPY+?= =?us-ascii?Q?zcAeGGLn8+y4hsaWKvWJXjzpXwprDa2Cf389VcJKKNeSjFcs+PUsVLcu7t2U?= =?us-ascii?Q?igXhFQA12Si/zmr7oNx1IrPPmcubXIERq2oQWKVhKY0zoDFTYeE96KDFN4jv?= =?us-ascii?Q?kFV7MeB+q+G258ngncJ2TvYpOfiysXzsGQIkT1MWfu5M+514Uezo+c9qTwn5?= =?us-ascii?Q?FDD3mYrNbaJiWiGmmEhpbY2rJU6YDq/3JHxDs0XuXT3fYxLTlkjtYZUEKcWo?= =?us-ascii?Q?es94EPvnkAwht/qbP51YpUPF8/+PkbOVwLwavzhGy0OMm6I9YwO1oV+5G18q?= =?us-ascii?Q?xEtzv1DdmidMS62ipd2AtRKCDiM18hc7s1ZBZF61qQt/vy2Vf4IAuAOtOBPB?= =?us-ascii?Q?4Aj3qJafMuu8Cu3zPYY7g3zlc5BKl5WyBLEFacOuNXSZR62GDgA6VTpcEVVA?= =?us-ascii?Q?b8C17+BtQOuT08VdmtLLKIIoL4ZJhuYSBr8jpdpC?= Content-Type: multipart/mixed; boundary="_002_359BB3DCA17443AFA9BA064CB6D2C7E9ebaycom_" MIME-Version: 1.0 X-OriginatorOrg: ebay.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA1PR07MB9829.namprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: be6a7abc-8f55-4d46-c0c5-08dc0d3ddd10 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jan 2024 15:57:33.2369 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46326bff-9928-41a0-baca-17c16c94ea99 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ckMBssEDIm1UOrqUYU4lEsZQY7+wPa0tvafUXDZHa4eLopptE/G711GkyX86FhBV X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR07MB9672 X-CFilter: Scanned lvs3 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_359BB3DCA17443AFA9BA064CB6D2C7E9ebaycom_ Content-Type: text/plain; charset="us-ascii" Content-ID: <42E29C76286F0B41BFF59EE30D286430@namprd07.prod.outlook.com> Content-Transfer-Encoding: quoted-printable > On Jan 2, 2024, at 19:35, Aleksander Alekseev = wrote: > > Thanks for the updated patch. > > cfbot seems to have some complaints regarding compiler warnings and > also building the patch on Windows: > > http://cfbot.cputube.org/ Thanks for the information. Here is the updated patch. Regards, Yong --_002_359BB3DCA17443AFA9BA064CB6D2C7E9ebaycom_ Content-Type: application/octet-stream; name="slru_page_header_v3.patch" Content-Description: slru_page_header_v3.patch Content-Disposition: attachment; filename="slru_page_header_v3.patch"; size=56530; creation-date="Thu, 04 Jan 2024 15:57:33 GMT"; modification-date="Thu, 04 Jan 2024 15:57:33 GMT" Content-ID: <7A26BEB9F5F7DB429354983581A21C6A@namprd07.prod.outlook.com> Content-Transfer-Encoding: base64 IC5naXRpZ25vcmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsNCiBzcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS9jbG9nLmMgICAgICB8ICA1MiArKysrKy0tLS0tDQogc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0vY29tbWl0X3RzLmMgfCAgMjYgKysrLS0NCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYyB8ICA2MyArKysrKysrLS0tLS0NCiBzcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS9zbHJ1LmMgICAgICB8IDExMyArKysrKysrLS0tLS0tLS0tLS0t LS0tDQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc3VidHJhbnMuYyAgfCAgMTIgKy0tDQog c3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYyAgICAgICAgICAgfCAgMjcgKysrLS0tDQogc3Jj L2JhY2tlbmQvc3RvcmFnZS9sbWdyL3ByZWRpY2F0ZS5jICAgfCAgMTYgKy0tDQogc3JjL2JhY2tl bmQvc3RvcmFnZS9wYWdlL2J1ZnBhZ2UuYyAgICAgfCAgMjUgKysrKysNCiBzcmMvYmluL3BnX2No ZWNrc3Vtcy9wZ19jaGVja3N1bXMuYyAgICB8ICAgOSArKw0KIHNyYy9iaW4vcGdfcmVzZXR3YWwv dC8wMDFfYmFzaWMucGwgICAgIHwgICA2ICstDQogc3JjL2Jpbi9wZ191cGdyYWRlL2ZpbGUuYyAg ICAgICAgICAgICAgfCAxNzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQogc3Jj L2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYyAgICAgICAgfCAgMjMgKysrLS0NCiBzcmMvYmlu L3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oICAgICAgICB8ICAgNiArKw0KIHNyYy9pbmNsdWRlL2Fj Y2Vzcy9zbHJ1LmggICAgICAgICAgICAgIHwgIDE1ICstLQ0KIHNyYy9pbmNsdWRlL2NhdGFsb2cv Y2F0dmVyc2lvbi5oICAgICAgIHwgICAyICstDQogc3JjL2luY2x1ZGUvc3RvcmFnZS9idWZwYWdl LmggICAgICAgICAgfCAgIDcgKysNCiBzcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90ZXN0X3Ns cnUuYyB8ICAxMyArLS0NCiAxOCBmaWxlcyBjaGFuZ2VkLCAzOTggaW5zZXJ0aW9ucygrKSwgMTky IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUNCmlu ZGV4IDRlOTExMzk1ZmUuLjViOGQyM2NlOWYgMTAwNjQ0DQotLS0gYS8uZ2l0aWdub3JlDQorKysg Yi8uZ2l0aWdub3JlDQpAQCAtMzEsNiArMzEsOCBAQCB3aW4zMnZlci5yYw0KICouZXhlDQogbGli KmRsbC5kZWYNCiBsaWIqLnBjDQorKi5wYXRjaA0KK2NvbXBpbGVfY29tbWFuZHMuanNvbg0KIA0K ICMgTG9jYWwgZXhjbHVkZXMgaW4gcm9vdCBkaXJlY3RvcnkNCiAvR05VbWFrZWZpbGUNCkBAIC00 MywzICs0NSw0IEBAIGxpYioucGMNCiAvUmVsZWFzZS8NCiAvdG1wX2luc3RhbGwvDQogL3BvcnRs b2NrLw0KKy8uY2FjaGUNClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL2Nsb2cuYw0KaW5kZXggN2RjYTFkZjYxYi4uYjdmNjkwNzU0YiAxMDA2NDQNCi0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYw0KKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0vY2xvZy5jDQpAQCAtNDEsNiArNDEsNyBAQA0KICNpbmNsdWRlICJtaXNjYWRt aW4uaCINCiAjaW5jbHVkZSAicGdfdHJhY2UuaCINCiAjaW5jbHVkZSAicGdzdGF0LmgiDQorI2lu Y2x1ZGUgInN0b3JhZ2UvYnVmcGFnZS5oIg0KICNpbmNsdWRlICJzdG9yYWdlL3Byb2MuaCINCiAj aW5jbHVkZSAic3RvcmFnZS9zeW5jLmgiDQogDQpAQCAtNTksNyArNjAsNyBAQA0KIC8qIFdlIG5l ZWQgdHdvIGJpdHMgcGVyIHhhY3QsIHNvIGZvdXIgeGFjdHMgZml0IGluIGEgYnl0ZSAqLw0KICNk ZWZpbmUgQ0xPR19CSVRTX1BFUl9YQUNUCTINCiAjZGVmaW5lIENMT0dfWEFDVFNfUEVSX0JZVEUg NA0KLSNkZWZpbmUgQ0xPR19YQUNUU19QRVJfUEFHRSAoQkxDS1NaICogQ0xPR19YQUNUU19QRVJf QllURSkNCisjZGVmaW5lIENMT0dfWEFDVFNfUEVSX1BBR0UgKFNpemVPZlBhZ2VDb250ZW50cyAq IENMT0dfWEFDVFNfUEVSX0JZVEUpDQogI2RlZmluZSBDTE9HX1hBQ1RfQklUTUFTSwkoKDEgPDwg Q0xPR19CSVRTX1BFUl9YQUNUKSAtIDEpDQogDQogDQpAQCAtNzcsMTMgKzc4LDYgQEAgVHJhbnNh Y3Rpb25JZFRvUGFnZShUcmFuc2FjdGlvbklkIHhpZCkNCiAjZGVmaW5lIFRyYW5zYWN0aW9uSWRU b0J5dGUoeGlkKQkoVHJhbnNhY3Rpb25JZFRvUGdJbmRleCh4aWQpIC8gQ0xPR19YQUNUU19QRVJf QllURSkNCiAjZGVmaW5lIFRyYW5zYWN0aW9uSWRUb0JJbmRleCh4aWQpCSgoeGlkKSAlIChUcmFu c2FjdGlvbklkKSBDTE9HX1hBQ1RTX1BFUl9CWVRFKQ0KIA0KLS8qIFdlIHN0b3JlIHRoZSBsYXRl c3QgYXN5bmMgTFNOIGZvciBlYWNoIGdyb3VwIG9mIHRyYW5zYWN0aW9ucyAqLw0KLSNkZWZpbmUg Q0xPR19YQUNUU19QRVJfTFNOX0dST1VQCTMyCS8qIGtlZXAgdGhpcyBhIHBvd2VyIG9mIDIgKi8N Ci0jZGVmaW5lIENMT0dfTFNOU19QRVJfUEFHRQkoQ0xPR19YQUNUU19QRVJfUEFHRSAvIENMT0df WEFDVFNfUEVSX0xTTl9HUk9VUCkNCi0NCi0jZGVmaW5lIEdldExTTkluZGV4KHNsb3RubywgeGlk KQkoKHNsb3RubykgKiBDTE9HX0xTTlNfUEVSX1BBR0UgKyBcDQotCSgoeGlkKSAlIChUcmFuc2Fj dGlvbklkKSBDTE9HX1hBQ1RTX1BFUl9QQUdFKSAvIENMT0dfWEFDVFNfUEVSX0xTTl9HUk9VUCkN Ci0NCiAvKg0KICAqIFRoZSBudW1iZXIgb2Ygc3VidHJhbnNhY3Rpb25zIGJlbG93IHdoaWNoIHdl IGNvbnNpZGVyIHRvIGFwcGx5IGNsb2cgZ3JvdXANCiAgKiB1cGRhdGUgb3B0aW1pemF0aW9uLiAg VGVzdGluZyByZXZlYWxzIHRoYXQgdGhlIG51bWJlciBoaWdoZXIgdGhhbiB0aGlzIGNhbg0KQEAg LTEwMSw3ICs5NSw3IEBAIHN0YXRpYyBTbHJ1Q3RsRGF0YSBYYWN0Q3RsRGF0YTsNCiANCiBzdGF0 aWMgaW50CVplcm9DTE9HUGFnZShpbnQ2NCBwYWdlbm8sIGJvb2wgd3JpdGVYbG9nKTsNCiBzdGF0 aWMgYm9vbCBDTE9HUGFnZVByZWNlZGVzKGludDY0IHBhZ2UxLCBpbnQ2NCBwYWdlMik7DQotc3Rh dGljIHZvaWQgV3JpdGVaZXJvUGFnZVhsb2dSZWMoaW50NjQgcGFnZW5vKTsNCitzdGF0aWMgWExv Z1JlY1B0ciBXcml0ZVplcm9QYWdlWGxvZ1JlYyhpbnQ2NCBwYWdlbm8pOw0KIHN0YXRpYyB2b2lk IFdyaXRlVHJ1bmNhdGVYbG9nUmVjKGludDY0IHBhZ2VubywgVHJhbnNhY3Rpb25JZCBvbGRlc3RY YWN0LA0KIAkJCQkJCQkJIE9pZCBvbGRlc3RYYWN0RGIpOw0KIHN0YXRpYyB2b2lkIFRyYW5zYWN0 aW9uSWRTZXRQYWdlU3RhdHVzKFRyYW5zYWN0aW9uSWQgeGlkLCBpbnQgbnN1YnhpZHMsDQpAQCAt NTgzLDggKzU3Nyw5IEBAIFRyYW5zYWN0aW9uSWRTZXRTdGF0dXNCaXQoVHJhbnNhY3Rpb25JZCB4 aWQsIFhpZFN0YXR1cyBzdGF0dXMsIFhMb2dSZWNQdHIgbHNuLCBpDQogCWNoYXIJICAgKmJ5dGVw dHI7DQogCWNoYXIJCWJ5dGV2YWw7DQogCWNoYXIJCWN1cnZhbDsNCisJUGFnZSAgICAgICAgcGFn ZSA9IFhhY3RDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXTsNCiANCi0JYnl0ZXB0ciA9 IFhhY3RDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXSArIGJ5dGVubzsNCisJYnl0ZXB0 ciA9IFBhZ2VHZXRDb250ZW50cyhwYWdlKSArIGJ5dGVubzsNCiAJY3VydmFsID0gKCpieXRlcHRy ID4+IGJzaGlmdCkgJiBDTE9HX1hBQ1RfQklUTUFTSzsNCiANCiAJLyoNCkBAIC02MTMsNyArNjA4 LDcgQEAgVHJhbnNhY3Rpb25JZFNldFN0YXR1c0JpdChUcmFuc2FjdGlvbklkIHhpZCwgWGlkU3Rh dHVzIHN0YXR1cywgWExvZ1JlY1B0ciBsc24sIGkNCiAJKmJ5dGVwdHIgPSBieXRldmFsOw0KIA0K IAkvKg0KLQkgKiBVcGRhdGUgdGhlIGdyb3VwIExTTiBpZiB0aGUgdHJhbnNhY3Rpb24gY29tcGxl dGlvbiBMU04gaXMgaGlnaGVyLg0KKwkgKiBVcGRhdGUgdGhlIHBhZ2UgTFNOIGlmIHRoZSB0cmFu c2FjdGlvbiBjb21wbGV0aW9uIExTTiBpcyBoaWdoZXIuDQogCSAqDQogCSAqIE5vdGU6IGxzbiB3 aWxsIGJlIGludmFsaWQgd2hlbiBzdXBwbGllZCBkdXJpbmcgSW5SZWNvdmVyeSBwcm9jZXNzaW5n LA0KIAkgKiBzbyB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwgdG8gYXZvaWQg TFNOIHVwZGF0ZXMgZHVyaW5nDQpAQCAtNjIyLDEwICs2MTcsOCBAQCBUcmFuc2FjdGlvbklkU2V0 U3RhdHVzQml0KFRyYW5zYWN0aW9uSWQgeGlkLCBYaWRTdGF0dXMgc3RhdHVzLCBYTG9nUmVjUHRy IGxzbiwgaQ0KIAkgKi8NCiAJaWYgKCFYTG9nUmVjUHRySXNJbnZhbGlkKGxzbikpDQogCXsNCi0J CWludAkJCWxzbmluZGV4ID0gR2V0TFNOSW5kZXgoc2xvdG5vLCB4aWQpOw0KLQ0KLQkJaWYgKFhh Y3RDdGwtPnNoYXJlZC0+Z3JvdXBfbHNuW2xzbmluZGV4XSA8IGxzbikNCi0JCQlYYWN0Q3RsLT5z aGFyZWQtPmdyb3VwX2xzbltsc25pbmRleF0gPSBsc247DQorCQlpZiAoUGFnZUdldExTTihwYWdl KSA8IGxzbikNCisJCQlQYWdlU2V0TFNOKHBhZ2UsIGxzbik7DQogCX0NCiB9DQogDQpAQCAtNjUx LDE5ICs2NDQsMTkgQEAgVHJhbnNhY3Rpb25JZEdldFN0YXR1cyhUcmFuc2FjdGlvbklkIHhpZCwg WExvZ1JlY1B0ciAqbHNuKQ0KIAlpbnQJCQlieXRlbm8gPSBUcmFuc2FjdGlvbklkVG9CeXRlKHhp ZCk7DQogCWludAkJCWJzaGlmdCA9IFRyYW5zYWN0aW9uSWRUb0JJbmRleCh4aWQpICogQ0xPR19C SVRTX1BFUl9YQUNUOw0KIAlpbnQJCQlzbG90bm87DQotCWludAkJCWxzbmluZGV4Ow0KKwlQYWdl ICAgICAgICBwYWdlOw0KIAljaGFyCSAgICpieXRlcHRyOw0KIAlYaWRTdGF0dXMJc3RhdHVzOw0K IA0KIAkvKiBsb2NrIGlzIGFjcXVpcmVkIGJ5IFNpbXBsZUxydVJlYWRQYWdlX1JlYWRPbmx5ICov DQogDQogCXNsb3RubyA9IFNpbXBsZUxydVJlYWRQYWdlX1JlYWRPbmx5KFhhY3RDdGwsIHBhZ2Vu bywgeGlkKTsNCi0JYnl0ZXB0ciA9IFhhY3RDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5v XSArIGJ5dGVubzsNCisJcGFnZSA9IFhhY3RDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5v XTsNCisJYnl0ZXB0ciA9IFBhZ2VHZXRDb250ZW50cyhwYWdlKSArIGJ5dGVubzsNCiANCiAJc3Rh dHVzID0gKCpieXRlcHRyID4+IGJzaGlmdCkgJiBDTE9HX1hBQ1RfQklUTUFTSzsNCiANCi0JbHNu aW5kZXggPSBHZXRMU05JbmRleChzbG90bm8sIHhpZCk7DQotCSpsc24gPSBYYWN0Q3RsLT5zaGFy ZWQtPmdyb3VwX2xzbltsc25pbmRleF07DQorCSpsc24gPSBQYWdlR2V0TFNOKHBhZ2UpOw0KIA0K IAlMV0xvY2tSZWxlYXNlKFhhY3RTTFJVTG9jayk7DQogDQpAQCAtNjk4LDE0ICs2OTEsMTQgQEAg Q0xPR1NobWVtQnVmZmVycyh2b2lkKQ0KIFNpemUNCiBDTE9HU2htZW1TaXplKHZvaWQpDQogew0K LQlyZXR1cm4gU2ltcGxlTHJ1U2htZW1TaXplKENMT0dTaG1lbUJ1ZmZlcnMoKSwgQ0xPR19MU05T X1BFUl9QQUdFKTsNCisJcmV0dXJuIFNpbXBsZUxydVNobWVtU2l6ZShDTE9HU2htZW1CdWZmZXJz KCkpOw0KIH0NCiANCiB2b2lkDQogQ0xPR1NobWVtSW5pdCh2b2lkKQ0KIHsNCiAJWGFjdEN0bC0+ UGFnZVByZWNlZGVzID0gQ0xPR1BhZ2VQcmVjZWRlczsNCi0JU2ltcGxlTHJ1SW5pdChYYWN0Q3Rs LCAiWGFjdCIsIENMT0dTaG1lbUJ1ZmZlcnMoKSwgQ0xPR19MU05TX1BFUl9QQUdFLA0KKwlTaW1w bGVMcnVJbml0KFhhY3RDdGwsICJYYWN0IiwgQ0xPR1NobWVtQnVmZmVycygpLA0KIAkJCQkgIFhh Y3RTTFJVTG9jaywgInBnX3hhY3QiLCBMV1RSQU5DSEVfWEFDVF9CVUZGRVIsDQogCQkJCSAgU1lO Q19IQU5ETEVSX0NMT0csIGZhbHNlKTsNCiAJU2xydVBhZ2VQcmVjZWRlc1VuaXRUZXN0cyhYYWN0 Q3RsLCBDTE9HX1hBQ1RTX1BFUl9QQUdFKTsNCkBAIC03NDcsMTEgKzc0MCwxNyBAQCBzdGF0aWMg aW50DQogWmVyb0NMT0dQYWdlKGludDY0IHBhZ2VubywgYm9vbCB3cml0ZVhsb2cpDQogew0KIAlp bnQJCQlzbG90bm87DQorCVBhZ2UgCQlwYWdlOw0KKwlYTG9nUmVjUHRyICBsc24gPSAwOw0KIA0K IAlzbG90bm8gPSBTaW1wbGVMcnVaZXJvUGFnZShYYWN0Q3RsLCBwYWdlbm8pOw0KKwlwYWdlID0g WGFjdEN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9dOw0KIA0KIAlpZiAod3JpdGVYbG9n KQ0KLQkJV3JpdGVaZXJvUGFnZVhsb2dSZWMocGFnZW5vKTsNCisJew0KKwkJbHNuID0gV3JpdGVa ZXJvUGFnZVhsb2dSZWMocGFnZW5vKTsNCisJCVBhZ2VTZXRMU04ocGFnZSwgbHNuKTsNCisJfQ0K IA0KIAlyZXR1cm4gc2xvdG5vOw0KIH0NCkBAIC04MDcsMTIgKzgwNiwxMiBAQCBUcmltQ0xPRyh2 b2lkKQ0KIAkJY2hhcgkgICAqYnl0ZXB0cjsNCiANCiAJCXNsb3RubyA9IFNpbXBsZUxydVJlYWRQ YWdlKFhhY3RDdGwsIHBhZ2VubywgZmFsc2UsIHhpZCk7DQotCQlieXRlcHRyID0gWGFjdEN0bC0+ c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9dICsgYnl0ZW5vOw0KKwkJYnl0ZXB0ciA9IFBhZ2VH ZXRDb250ZW50cyhYYWN0Q3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10pICsgYnl0ZW5v Ow0KIA0KIAkJLyogWmVybyBzby1mYXItdW51c2VkIHBvc2l0aW9ucyBpbiB0aGUgY3VycmVudCBi eXRlICovDQogCQkqYnl0ZXB0ciAmPSAoMSA8PCBic2hpZnQpIC0gMTsNCiAJCS8qIFplcm8gdGhl IHJlc3Qgb2YgdGhlIHBhZ2UgKi8NCi0JCU1lbVNldChieXRlcHRyICsgMSwgMCwgQkxDS1NaIC0g Ynl0ZW5vIC0gMSk7DQorCQlNZW1TZXQoYnl0ZXB0ciArIDEsIDAsIFNpemVPZlBhZ2VDb250ZW50 cyAtIGJ5dGVubyAtIDEpOw0KIA0KIAkJWGFjdEN0bC0+c2hhcmVkLT5wYWdlX2RpcnR5W3Nsb3Ru b10gPSB0cnVlOw0KIAl9DQpAQCAtODM2LDcgKzgzNSw2IEBAIENoZWNrUG9pbnRDTE9HKHZvaWQp DQogCVRSQUNFX1BPU1RHUkVTUUxfQ0xPR19DSEVDS1BPSU5UX0RPTkUodHJ1ZSk7DQogfQ0KIA0K LQ0KIC8qDQogICogTWFrZSBzdXJlIHRoYXQgQ0xPRyBoYXMgcm9vbSBmb3IgYSBuZXdseS1hbGxv Y2F0ZWQgWElELg0KICAqDQpAQCAtOTU4LDEyICs5NTYsMTIgQEAgQ0xPR1BhZ2VQcmVjZWRlcyhp bnQ2NCBwYWdlMSwgaW50NjQgcGFnZTIpDQogLyoNCiAgKiBXcml0ZSBhIFpFUk9QQUdFIHhsb2cg cmVjb3JkDQogICovDQotc3RhdGljIHZvaWQNCitzdGF0aWMgWExvZ1JlY1B0cg0KIFdyaXRlWmVy b1BhZ2VYbG9nUmVjKGludDY0IHBhZ2VubykNCiB7DQogCVhMb2dCZWdpbkluc2VydCgpOw0KIAlY TG9nUmVnaXN0ZXJEYXRhKChjaGFyICopICgmcGFnZW5vKSwgc2l6ZW9mKHBhZ2VubykpOw0KLQko dm9pZCkgWExvZ0luc2VydChSTV9DTE9HX0lELCBDTE9HX1pFUk9QQUdFKTsNCisJcmV0dXJuIFhM b2dJbnNlcnQoUk1fQ0xPR19JRCwgQ0xPR19aRVJPUEFHRSk7DQogfQ0KIA0KIC8qDQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY29tbWl0X3RzLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS9jb21taXRfdHMuYw0KaW5kZXggZTZmZDliMzM0OS4uMzY3NDU5ZWEw NCAxMDA2NDQNCi0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2NvbW1pdF90cy5jDQor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jb21taXRfdHMuYw0KQEAgLTMxLDYgKzMx LDcgQEANCiAjaW5jbHVkZSAiZnVuY2FwaS5oIg0KICNpbmNsdWRlICJtaXNjYWRtaW4uaCINCiAj aW5jbHVkZSAicGdfdHJhY2UuaCINCisjaW5jbHVkZSAic3RvcmFnZS9idWZwYWdlLmgiDQogI2lu Y2x1ZGUgInN0b3JhZ2Uvc2htZW0uaCINCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCINCiAj aW5jbHVkZSAidXRpbHMvc25hcG1nci5oIg0KQEAgLTYzLDcgKzY0LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgQ29tbWl0VGltZXN0YW1wRW50cnkNCiAJCQkJCQkJCQlzaXplb2YoUmVwT3JpZ2luSWQpKQ0K IA0KICNkZWZpbmUgQ09NTUlUX1RTX1hBQ1RTX1BFUl9QQUdFIFwNCi0JKEJMQ0tTWiAvIFNpemVP ZkNvbW1pdFRpbWVzdGFtcEVudHJ5KQ0KKwkoU2l6ZU9mUGFnZUNvbnRlbnRzIC8gU2l6ZU9mQ29t bWl0VGltZXN0YW1wRW50cnkpDQogDQogDQogLyoNCkBAIC0xMjAsNyArMTIxLDcgQEAgc3RhdGlj IGludAlaZXJvQ29tbWl0VHNQYWdlKGludDY0IHBhZ2VubywgYm9vbCB3cml0ZVhsb2cpOw0KIHN0 YXRpYyBib29sIENvbW1pdFRzUGFnZVByZWNlZGVzKGludDY0IHBhZ2UxLCBpbnQ2NCBwYWdlMik7 DQogc3RhdGljIHZvaWQgQWN0aXZhdGVDb21taXRUcyh2b2lkKTsNCiBzdGF0aWMgdm9pZCBEZWFj dGl2YXRlQ29tbWl0VHModm9pZCk7DQotc3RhdGljIHZvaWQgV3JpdGVaZXJvUGFnZVhsb2dSZWMo aW50NjQgcGFnZW5vKTsNCitzdGF0aWMgWExvZ1JlY1B0ciBXcml0ZVplcm9QYWdlWGxvZ1JlYyhp bnQ2NCBwYWdlbm8pOw0KIHN0YXRpYyB2b2lkIFdyaXRlVHJ1bmNhdGVYbG9nUmVjKGludDY0IHBh Z2VubywgVHJhbnNhY3Rpb25JZCBvbGRlc3RYaWQpOw0KIA0KIC8qDQpAQCAtMjU0LDExICsyNTUs MTIgQEAgVHJhbnNhY3Rpb25JZFNldENvbW1pdFRzKFRyYW5zYWN0aW9uSWQgeGlkLCBUaW1lc3Rh bXBUeiB0cywNCiAJQ29tbWl0VGltZXN0YW1wRW50cnkgZW50cnk7DQogDQogCUFzc2VydChUcmFu c2FjdGlvbklkSXNOb3JtYWwoeGlkKSk7DQorCUFzc2VydCh4aWQgPT0gc2xvdG5vICogQ09NTUlU X1RTX1hBQ1RTX1BFUl9QQUdFICsgZW50cnlubyk7DQogDQogCWVudHJ5LnRpbWUgPSB0czsNCiAJ ZW50cnkubm9kZWlkID0gbm9kZWlkOw0KIA0KLQltZW1jcHkoQ29tbWl0VHNDdGwtPnNoYXJlZC0+ cGFnZV9idWZmZXJbc2xvdG5vXSArDQorCW1lbWNweShQYWdlR2V0Q29udGVudHMoQ29tbWl0VHND dGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXSkgKw0KIAkJICAgU2l6ZU9mQ29tbWl0VGlt ZXN0YW1wRW50cnkgKiBlbnRyeW5vLA0KIAkJICAgJmVudHJ5LCBTaXplT2ZDb21taXRUaW1lc3Rh bXBFbnRyeSk7DQogfQ0KQEAgLTMzNyw3ICszMzksNyBAQCBUcmFuc2FjdGlvbklkR2V0Q29tbWl0 VHNEYXRhKFRyYW5zYWN0aW9uSWQgeGlkLCBUaW1lc3RhbXBUeiAqdHMsDQogCS8qIGxvY2sgaXMg YWNxdWlyZWQgYnkgU2ltcGxlTHJ1UmVhZFBhZ2VfUmVhZE9ubHkgKi8NCiAJc2xvdG5vID0gU2lt cGxlTHJ1UmVhZFBhZ2VfUmVhZE9ubHkoQ29tbWl0VHNDdGwsIHBhZ2VubywgeGlkKTsNCiAJbWVt Y3B5KCZlbnRyeSwNCi0JCSAgIENvbW1pdFRzQ3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Ru b10gKw0KKwkJICAgUGFnZUdldENvbnRlbnRzKENvbW1pdFRzQ3RsLT5zaGFyZWQtPnBhZ2VfYnVm ZmVyW3Nsb3Rub10pICsNCiAJCSAgIFNpemVPZkNvbW1pdFRpbWVzdGFtcEVudHJ5ICogZW50cnlu bywNCiAJCSAgIFNpemVPZkNvbW1pdFRpbWVzdGFtcEVudHJ5KTsNCiANCkBAIC01MTUsNyArNTE3 LDcgQEAgQ29tbWl0VHNTaG1lbUJ1ZmZlcnModm9pZCkNCiBTaXplDQogQ29tbWl0VHNTaG1lbVNp emUodm9pZCkNCiB7DQotCXJldHVybiBTaW1wbGVMcnVTaG1lbVNpemUoQ29tbWl0VHNTaG1lbUJ1 ZmZlcnMoKSwgMCkgKw0KKwlyZXR1cm4gU2ltcGxlTHJ1U2htZW1TaXplKENvbW1pdFRzU2htZW1C dWZmZXJzKCkpICsNCiAJCXNpemVvZihDb21taXRUaW1lc3RhbXBTaGFyZWQpOw0KIH0NCiANCkBA IC01MjksNyArNTMxLDcgQEAgQ29tbWl0VHNTaG1lbUluaXQodm9pZCkNCiAJYm9vbAkJZm91bmQ7 DQogDQogCUNvbW1pdFRzQ3RsLT5QYWdlUHJlY2VkZXMgPSBDb21taXRUc1BhZ2VQcmVjZWRlczsN Ci0JU2ltcGxlTHJ1SW5pdChDb21taXRUc0N0bCwgIkNvbW1pdFRzIiwgQ29tbWl0VHNTaG1lbUJ1 ZmZlcnMoKSwgMCwNCisJU2ltcGxlTHJ1SW5pdChDb21taXRUc0N0bCwgIkNvbW1pdFRzIiwgQ29t bWl0VHNTaG1lbUJ1ZmZlcnMoKSwNCiAJCQkJICBDb21taXRUc1NMUlVMb2NrLCAicGdfY29tbWl0 X3RzIiwNCiAJCQkJICBMV1RSQU5DSEVfQ09NTUlUVFNfQlVGRkVSLA0KIAkJCQkgIFNZTkNfSEFO RExFUl9DT01NSVRfVFMsDQpAQCAtNTgyLDExICs1ODQsMTcgQEAgc3RhdGljIGludA0KIFplcm9D b21taXRUc1BhZ2UoaW50NjQgcGFnZW5vLCBib29sIHdyaXRlWGxvZykNCiB7DQogCWludAkJCXNs b3RubzsNCisJUGFnZSAJCXBhZ2U7DQorCVhMb2dSZWNQdHIgIGxzbiA9IDA7DQogDQogCXNsb3Ru byA9IFNpbXBsZUxydVplcm9QYWdlKENvbW1pdFRzQ3RsLCBwYWdlbm8pOw0KKwlwYWdlID0gQ29t bWl0VHNDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXTsNCiANCiAJaWYgKHdyaXRlWGxv ZykNCi0JCVdyaXRlWmVyb1BhZ2VYbG9nUmVjKHBhZ2Vubyk7DQorCXsNCisJCWxzbiA9IFdyaXRl WmVyb1BhZ2VYbG9nUmVjKHBhZ2Vubyk7DQorCQlQYWdlU2V0TFNOKHBhZ2UsIGxzbik7DQorCX0N CiANCiAJcmV0dXJuIHNsb3RubzsNCiB9DQpAQCAtOTQ2LDEyICs5NTQsMTIgQEAgQ29tbWl0VHNQ YWdlUHJlY2VkZXMoaW50NjQgcGFnZTEsIGludDY0IHBhZ2UyKQ0KIC8qDQogICogV3JpdGUgYSBa RVJPUEFHRSB4bG9nIHJlY29yZA0KICAqLw0KLXN0YXRpYyB2b2lkDQorc3RhdGljIFhMb2dSZWNQ dHINCiBXcml0ZVplcm9QYWdlWGxvZ1JlYyhpbnQ2NCBwYWdlbm8pDQogew0KIAlYTG9nQmVnaW5J bnNlcnQoKTsNCiAJWExvZ1JlZ2lzdGVyRGF0YSgoY2hhciAqKSAoJnBhZ2VubyksIHNpemVvZihw YWdlbm8pKTsNCi0JKHZvaWQpIFhMb2dJbnNlcnQoUk1fQ09NTUlUX1RTX0lELCBDT01NSVRfVFNf WkVST1BBR0UpOw0KKwlyZXR1cm4gWExvZ0luc2VydChSTV9DT01NSVRfVFNfSUQsIENPTU1JVF9U U19aRVJPUEFHRSk7DQogfQ0KIA0KIC8qDQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0vbXVsdGl4YWN0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhh Y3QuYw0KaW5kZXggZGIzNDIzZjEyZS4uMDk3MGFhODg1NSAxMDA2NDQNCi0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jDQorKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS9tdWx0aXhhY3QuYw0KQEAgLTgzLDYgKzgzLDcgQEANCiAjaW5jbHVkZSAibWlzY2Fk bWluLmgiDQogI2luY2x1ZGUgInBnX3RyYWNlLmgiDQogI2luY2x1ZGUgInBvc3RtYXN0ZXIvYXV0 b3ZhY3V1bS5oIg0KKyNpbmNsdWRlICJzdG9yYWdlL2J1ZnBhZ2UuaCINCiAjaW5jbHVkZSAic3Rv cmFnZS9sbWdyLmgiDQogI2luY2x1ZGUgInN0b3JhZ2UvcG1zaWduYWwuaCINCiAjaW5jbHVkZSAi c3RvcmFnZS9wcm9jLmgiDQpAQCAtMTA2LDcgKzEwNyw3IEBADQogICovDQogDQogLyogV2UgbmVl ZCBmb3VyIGJ5dGVzIHBlciBvZmZzZXQgKi8NCi0jZGVmaW5lIE1VTFRJWEFDVF9PRkZTRVRTX1BF Ul9QQUdFIChCTENLU1ogLyBzaXplb2YoTXVsdGlYYWN0T2Zmc2V0KSkNCisjZGVmaW5lIE1VTFRJ WEFDVF9PRkZTRVRTX1BFUl9QQUdFIChTaXplT2ZQYWdlQ29udGVudHMgLyBzaXplb2YoTXVsdGlY YWN0T2Zmc2V0KSkNCiANCiAjZGVmaW5lIE11bHRpWGFjdElkVG9PZmZzZXRQYWdlKHhpZCkgXA0K IAkoKHhpZCkgLyAoTXVsdGlYYWN0T2Zmc2V0KSBNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRSkN CkBAIC0xMTksOCArMTIwLDggQEANCiAgKiBhZGRpdGlvbmFsIGZsYWcgYml0cyBmb3IgZWFjaCBU cmFuc2FjdGlvbklkLiAgVG8gZG8gdGhpcyB3aXRob3V0IGdldHRpbmcNCiAgKiBpbnRvIGFsaWdu bWVudCBpc3N1ZXMsIHdlIHN0b3JlIGZvdXIgYnl0ZXMgb2YgZmxhZ3MsIGFuZCB0aGVuIHRoZQ0K ICAqIGNvcnJlc3BvbmRpbmcgNCBYaWRzLiAgRWFjaCBzdWNoIDUtd29yZCAoMjAtYnl0ZSkgc2V0 IHdlIGNhbGwgYSAiZ3JvdXAiLCBhbmQNCi0gKiBhcmUgc3RvcmVkIGFzIGEgd2hvbGUgaW4gcGFn ZXMuICBUaHVzLCB3aXRoIDhrQiBCTENLU1osIHdlIGtlZXAgNDA5IGdyb3Vwcw0KLSAqIHBlciBw YWdlLiAgVGhpcyB3YXN0ZXMgMTIgYnl0ZXMgcGVyIHBhZ2UsIGJ1dCB0aGF0J3MgT0sgLS0gc2lt cGxpY2l0eSAoYW5kDQorICogYXJlIHN0b3JlZCBhcyBhIHdob2xlIGluIHBhZ2VzLiAgVGh1cywg d2l0aCA4a0IgQkxDS1NaLCB3ZSBrZWVwIDQwOCBncm91cHMNCisgKiBwZXIgcGFnZS4gIFRoaXMg d2FzdGVzIDggYnl0ZXMgcGVyIHBhZ2UsIGJ1dCB0aGF0J3MgT0sgLS0gc2ltcGxpY2l0eSAoYW5k DQogICogcGVyZm9ybWFuY2UpIHRydW1wcyBzcGFjZSBlZmZpY2llbmN5IGhlcmUuDQogICoNCiAg KiBOb3RlIHRoYXQgdGhlICJvZmZzZXQiIG1hY3JvcyB3b3JrIHdpdGggYnl0ZSBvZmZzZXQsIG5v dCBhcnJheSBpbmRleGVzLCBzbw0KQEAgLTEzOCw3ICsxMzksNyBAQA0KIC8qIHNpemUgaW4gYnl0 ZXMgb2YgYSBjb21wbGV0ZSBncm91cCAqLw0KICNkZWZpbmUgTVVMVElYQUNUX01FTUJFUkdST1VQ X1NJWkUgXA0KIAkoc2l6ZW9mKFRyYW5zYWN0aW9uSWQpICogTVVMVElYQUNUX01FTUJFUlNfUEVS X01FTUJFUkdST1VQICsgTVVMVElYQUNUX0ZMQUdCWVRFU19QRVJfR1JPVVApDQotI2RlZmluZSBN VUxUSVhBQ1RfTUVNQkVSR1JPVVBTX1BFUl9QQUdFIChCTENLU1ogLyBNVUxUSVhBQ1RfTUVNQkVS R1JPVVBfU0laRSkNCisjZGVmaW5lIE1VTFRJWEFDVF9NRU1CRVJHUk9VUFNfUEVSX1BBR0UgKFNp emVPZlBhZ2VDb250ZW50cyAvIE1VTFRJWEFDVF9NRU1CRVJHUk9VUF9TSVpFKQ0KICNkZWZpbmUg TVVMVElYQUNUX01FTUJFUlNfUEVSX1BBR0UJXA0KIAkoTVVMVElYQUNUX01FTUJFUkdST1VQU19Q RVJfUEFHRSAqIE1VTFRJWEFDVF9NRU1CRVJTX1BFUl9NRU1CRVJHUk9VUCkNCiANCkBAIC0zNjYs NyArMzY3LDcgQEAgc3RhdGljIGJvb2wgTXVsdGlYYWN0T2Zmc2V0V291bGRXcmFwKE11bHRpWGFj dE9mZnNldCBib3VuZGFyeSwNCiAJCQkJCQkJCQkgTXVsdGlYYWN0T2Zmc2V0IHN0YXJ0LCB1aW50 MzIgZGlzdGFuY2UpOw0KIHN0YXRpYyBib29sIFNldE9mZnNldFZhY3V1bUxpbWl0KGJvb2wgaXNf c3RhcnR1cCk7DQogc3RhdGljIGJvb2wgZmluZF9tdWx0aXhhY3Rfc3RhcnQoTXVsdGlYYWN0SWQg bXVsdGksIE11bHRpWGFjdE9mZnNldCAqcmVzdWx0KTsNCi1zdGF0aWMgdm9pZCBXcml0ZU1aZXJv UGFnZVhsb2dSZWMoaW50NjQgcGFnZW5vLCB1aW50OCBpbmZvKTsNCitzdGF0aWMgWExvZ1JlY1B0 ciBXcml0ZU1aZXJvUGFnZVhsb2dSZWMoaW50NjQgcGFnZW5vLCB1aW50OCBpbmZvKTsNCiBzdGF0 aWMgdm9pZCBXcml0ZU1UcnVuY2F0ZVhsb2dSZWMoT2lkIG9sZGVzdE11bHRpREIsDQogCQkJCQkJ CQkgIE11bHRpWGFjdElkIHN0YXJ0VHJ1bmNPZmYsDQogCQkJCQkJCQkgIE11bHRpWGFjdElkIGVu ZFRydW5jT2ZmLA0KQEAgLTg4NCw3ICs4ODUsNyBAQCBSZWNvcmROZXdNdWx0aVhhY3QoTXVsdGlY YWN0SWQgbXVsdGksIE11bHRpWGFjdE9mZnNldCBvZmZzZXQsDQogCSAqIHRha2UgdGhlIHRyb3Vi bGUgdG8gZ2VuZXJhbGl6ZSB0aGUgc2xydS5jIGVycm9yIHJlcG9ydGluZyBjb2RlLg0KIAkgKi8N CiAJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoTXVsdGlYYWN0T2Zmc2V0Q3RsLCBwYWdlbm8s IHRydWUsIG11bHRpKTsNCi0Jb2ZmcHRyID0gKE11bHRpWGFjdE9mZnNldCAqKSBNdWx0aVhhY3RP ZmZzZXRDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXTsNCisJb2ZmcHRyID0gKE11bHRp WGFjdE9mZnNldCAqKSBQYWdlR2V0Q29udGVudHMoTXVsdGlYYWN0T2Zmc2V0Q3RsLT5zaGFyZWQt PnBhZ2VfYnVmZmVyW3Nsb3Rub10pOw0KIAlvZmZwdHIgKz0gZW50cnlubzsNCiANCiAJKm9mZnB0 ciA9IG9mZnNldDsNCkBAIC05MjEsMTIgKzkyMiwxMiBAQCBSZWNvcmROZXdNdWx0aVhhY3QoTXVs dGlYYWN0SWQgbXVsdGksIE11bHRpWGFjdE9mZnNldCBvZmZzZXQsDQogCQl9DQogDQogCQltZW1i ZXJwdHIgPSAoVHJhbnNhY3Rpb25JZCAqKQ0KLQkJCShNdWx0aVhhY3RNZW1iZXJDdGwtPnNoYXJl ZC0+cGFnZV9idWZmZXJbc2xvdG5vXSArIG1lbWJlcm9mZik7DQorCQkJKFBhZ2VHZXRDb250ZW50 cyhNdWx0aVhhY3RNZW1iZXJDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXSkgKyBtZW1i ZXJvZmYpOw0KIA0KIAkJKm1lbWJlcnB0ciA9IG1lbWJlcnNbaV0ueGlkOw0KIA0KIAkJZmxhZ3Nw dHIgPSAodWludDMyICopDQotCQkJKE11bHRpWGFjdE1lbWJlckN0bC0+c2hhcmVkLT5wYWdlX2J1 ZmZlcltzbG90bm9dICsgZmxhZ3NvZmYpOw0KKwkJCShQYWdlR2V0Q29udGVudHMoTXVsdGlYYWN0 TWVtYmVyQ3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10pICsgZmxhZ3NvZmYpOw0KIA0K IAkJZmxhZ3N2YWwgPSAqZmxhZ3NwdHI7DQogCQlmbGFnc3ZhbCAmPSB+KCgoMSA8PCBNWEFDVF9N RU1CRVJfQklUU19QRVJfWEFDVCkgLSAxKSA8PCBic2hpZnQpOw0KQEAgLTEzNDgsNyArMTM0OSw3 IEBAIHJldHJ5Og0KIAllbnRyeW5vID0gTXVsdGlYYWN0SWRUb09mZnNldEVudHJ5KG11bHRpKTsN CiANCiAJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoTXVsdGlYYWN0T2Zmc2V0Q3RsLCBwYWdl bm8sIHRydWUsIG11bHRpKTsNCi0Jb2ZmcHRyID0gKE11bHRpWGFjdE9mZnNldCAqKSBNdWx0aVhh Y3RPZmZzZXRDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXTsNCisJb2ZmcHRyID0gKE11 bHRpWGFjdE9mZnNldCAqKSBQYWdlR2V0Q29udGVudHMoTXVsdGlYYWN0T2Zmc2V0Q3RsLT5zaGFy ZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10pOw0KIAlvZmZwdHIgKz0gZW50cnlubzsNCiAJb2Zmc2V0 ID0gKm9mZnB0cjsNCiANCkBAIC0xMzgxLDcgKzEzODIsNyBAQCByZXRyeToNCiAJCWlmIChwYWdl bm8gIT0gcHJldl9wYWdlbm8pDQogCQkJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoTXVsdGlY YWN0T2Zmc2V0Q3RsLCBwYWdlbm8sIHRydWUsIHRtcE1YYWN0KTsNCiANCi0JCW9mZnB0ciA9IChN dWx0aVhhY3RPZmZzZXQgKikgTXVsdGlYYWN0T2Zmc2V0Q3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVy W3Nsb3Rub107DQorCQlvZmZwdHIgPSAoTXVsdGlYYWN0T2Zmc2V0ICopIFBhZ2VHZXRDb250ZW50 cyhNdWx0aVhhY3RPZmZzZXRDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXSk7DQogCQlv ZmZwdHIgKz0gZW50cnlubzsNCiAJCW5leHRNWE9mZnNldCA9ICpvZmZwdHI7DQogDQpAQCAtMTQy NCw3ICsxNDI1LDcgQEAgcmV0cnk6DQogCQl9DQogDQogCQl4YWN0cHRyID0gKFRyYW5zYWN0aW9u SWQgKikNCi0JCQkoTXVsdGlYYWN0TWVtYmVyQ3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Ru b10gKyBtZW1iZXJvZmYpOw0KKwkJCShQYWdlR2V0Q29udGVudHMoTXVsdGlYYWN0TWVtYmVyQ3Rs LT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10pICsgbWVtYmVyb2ZmKTsNCiANCiAJCWlmICgh VHJhbnNhY3Rpb25JZElzVmFsaWQoKnhhY3RwdHIpKQ0KIAkJew0KQEAgLTE0MzUsNyArMTQzNiw3 IEBAIHJldHJ5Og0KIA0KIAkJZmxhZ3NvZmYgPSBNWE9mZnNldFRvRmxhZ3NPZmZzZXQob2Zmc2V0 KTsNCiAJCWJzaGlmdCA9IE1YT2Zmc2V0VG9GbGFnc0JpdFNoaWZ0KG9mZnNldCk7DQotCQlmbGFn c3B0ciA9ICh1aW50MzIgKikgKE11bHRpWGFjdE1lbWJlckN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZl cltzbG90bm9dICsgZmxhZ3NvZmYpOw0KKwkJZmxhZ3NwdHIgPSAodWludDMyICopIChQYWdlR2V0 Q29udGVudHMoTXVsdGlYYWN0TWVtYmVyQ3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10p ICsgZmxhZ3NvZmYpOw0KIA0KIAkJcHRyW3RydWVsZW5ndGhdLnhpZCA9ICp4YWN0cHRyOw0KIAkJ cHRyW3RydWVsZW5ndGhdLnN0YXR1cyA9ICgqZmxhZ3NwdHIgPj4gYnNoaWZ0KSAmIE1YQUNUX01F TUJFUl9YQUNUX0JJVE1BU0s7DQpAQCAtMTgzNCw4ICsxODM1LDggQEAgTXVsdGlYYWN0U2htZW1T aXplKHZvaWQpDQogCQkJIG11bF9zaXplKHNpemVvZihNdWx0aVhhY3RJZCkgKiAyLCBNYXhPbGRl c3RTbG90KSkNCiANCiAJc2l6ZSA9IFNIQVJFRF9NVUxUSVhBQ1RfU1RBVEVfU0laRTsNCi0Jc2l6 ZSA9IGFkZF9zaXplKHNpemUsIFNpbXBsZUxydVNobWVtU2l6ZShOVU1fTVVMVElYQUNUT0ZGU0VU X0JVRkZFUlMsIDApKTsNCi0Jc2l6ZSA9IGFkZF9zaXplKHNpemUsIFNpbXBsZUxydVNobWVtU2l6 ZShOVU1fTVVMVElYQUNUTUVNQkVSX0JVRkZFUlMsIDApKTsNCisJc2l6ZSA9IGFkZF9zaXplKHNp emUsIFNpbXBsZUxydVNobWVtU2l6ZShOVU1fTVVMVElYQUNUT0ZGU0VUX0JVRkZFUlMpKTsNCisJ c2l6ZSA9IGFkZF9zaXplKHNpemUsIFNpbXBsZUxydVNobWVtU2l6ZShOVU1fTVVMVElYQUNUTUVN QkVSX0JVRkZFUlMpKTsNCiANCiAJcmV0dXJuIHNpemU7DQogfQ0KQEAgLTE4NTEsMTQgKzE4NTIs MTQgQEAgTXVsdGlYYWN0U2htZW1Jbml0KHZvaWQpDQogCU11bHRpWGFjdE1lbWJlckN0bC0+UGFn ZVByZWNlZGVzID0gTXVsdGlYYWN0TWVtYmVyUGFnZVByZWNlZGVzOw0KIA0KIAlTaW1wbGVMcnVJ bml0KE11bHRpWGFjdE9mZnNldEN0bCwNCi0JCQkJICAiTXVsdGlYYWN0T2Zmc2V0IiwgTlVNX01V TFRJWEFDVE9GRlNFVF9CVUZGRVJTLCAwLA0KKwkJCQkgICJNdWx0aVhhY3RPZmZzZXQiLCBOVU1f TVVMVElYQUNUT0ZGU0VUX0JVRkZFUlMsDQogCQkJCSAgTXVsdGlYYWN0T2Zmc2V0U0xSVUxvY2ss ICJwZ19tdWx0aXhhY3Qvb2Zmc2V0cyIsDQogCQkJCSAgTFdUUkFOQ0hFX01VTFRJWEFDVE9GRlNF VF9CVUZGRVIsDQogCQkJCSAgU1lOQ19IQU5ETEVSX01VTFRJWEFDVF9PRkZTRVQsDQogCQkJCSAg ZmFsc2UpOw0KIAlTbHJ1UGFnZVByZWNlZGVzVW5pdFRlc3RzKE11bHRpWGFjdE9mZnNldEN0bCwg TVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0UpOw0KIAlTaW1wbGVMcnVJbml0KE11bHRpWGFjdE1l bWJlckN0bCwNCi0JCQkJICAiTXVsdGlYYWN0TWVtYmVyIiwgTlVNX01VTFRJWEFDVE1FTUJFUl9C VUZGRVJTLCAwLA0KKwkJCQkgICJNdWx0aVhhY3RNZW1iZXIiLCBOVU1fTVVMVElYQUNUTUVNQkVS X0JVRkZFUlMsDQogCQkJCSAgTXVsdGlYYWN0TWVtYmVyU0xSVUxvY2ssICJwZ19tdWx0aXhhY3Qv bWVtYmVycyIsDQogCQkJCSAgTFdUUkFOQ0hFX01VTFRJWEFDVE1FTUJFUl9CVUZGRVIsDQogCQkJ CSAgU1lOQ19IQU5ETEVSX01VTFRJWEFDVF9NRU1CRVIsDQpAQCAtMTkzMywxMSArMTkzNCwxNyBA QCBzdGF0aWMgaW50DQogWmVyb011bHRpWGFjdE9mZnNldFBhZ2UoaW50NjQgcGFnZW5vLCBib29s IHdyaXRlWGxvZykNCiB7DQogCWludAkJCXNsb3RubzsNCisJUGFnZSAJCXBhZ2U7DQorCVhMb2dS ZWNQdHIgIGxzbiA9IDA7DQogDQogCXNsb3RubyA9IFNpbXBsZUxydVplcm9QYWdlKE11bHRpWGFj dE9mZnNldEN0bCwgcGFnZW5vKTsNCisJcGFnZSA9IE11bHRpWGFjdE9mZnNldEN0bC0+c2hhcmVk LT5wYWdlX2J1ZmZlcltzbG90bm9dOw0KIA0KIAlpZiAod3JpdGVYbG9nKQ0KLQkJV3JpdGVNWmVy b1BhZ2VYbG9nUmVjKHBhZ2VubywgWExPR19NVUxUSVhBQ1RfWkVST19PRkZfUEFHRSk7DQorCXsN CisJCWxzbiA9IFdyaXRlTVplcm9QYWdlWGxvZ1JlYyhwYWdlbm8sIFhMT0dfTVVMVElYQUNUX1pF Uk9fT0ZGX1BBR0UpOw0KKwkJUGFnZVNldExTTihwYWdlLCBsc24pOw0KKwl9DQogDQogCXJldHVy biBzbG90bm87DQogfQ0KQEAgLTE5NDksMTEgKzE5NTYsMTcgQEAgc3RhdGljIGludA0KIFplcm9N dWx0aVhhY3RNZW1iZXJQYWdlKGludDY0IHBhZ2VubywgYm9vbCB3cml0ZVhsb2cpDQogew0KIAlp bnQJCQlzbG90bm87DQorCVBhZ2UgCQlwYWdlOw0KKwlYTG9nUmVjUHRyICBsc24gPSAwOw0KIA0K IAlzbG90bm8gPSBTaW1wbGVMcnVaZXJvUGFnZShNdWx0aVhhY3RNZW1iZXJDdGwsIHBhZ2Vubyk7 DQorCXBhZ2UgPSBNdWx0aVhhY3RNZW1iZXJDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5v XTsNCiANCiAJaWYgKHdyaXRlWGxvZykNCi0JCVdyaXRlTVplcm9QYWdlWGxvZ1JlYyhwYWdlbm8s IFhMT0dfTVVMVElYQUNUX1pFUk9fTUVNX1BBR0UpOw0KKwl7DQorCQlsc24gPSBXcml0ZU1aZXJv UGFnZVhsb2dSZWMocGFnZW5vLCBYTE9HX01VTFRJWEFDVF9aRVJPX01FTV9QQUdFKTsNCisJCVBh Z2VTZXRMU04ocGFnZSwgbHNuKTsNCisJfQ0KIA0KIAlyZXR1cm4gc2xvdG5vOw0KIH0NCkBAIC0y MDcxLDEwICsyMDg0LDEwIEBAIFRyaW1NdWx0aVhhY3Qodm9pZCkNCiAJCU11bHRpWGFjdE9mZnNl dCAqb2ZmcHRyOw0KIA0KIAkJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoTXVsdGlYYWN0T2Zm c2V0Q3RsLCBwYWdlbm8sIHRydWUsIG5leHRNWGFjdCk7DQotCQlvZmZwdHIgPSAoTXVsdGlYYWN0 T2Zmc2V0ICopIE11bHRpWGFjdE9mZnNldEN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9d Ow0KKwkJb2ZmcHRyID0gKE11bHRpWGFjdE9mZnNldCAqKSBQYWdlR2V0Q29udGVudHMoTXVsdGlY YWN0T2Zmc2V0Q3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10pOw0KIAkJb2ZmcHRyICs9 IGVudHJ5bm87DQogDQotCQlNZW1TZXQob2ZmcHRyLCAwLCBCTENLU1ogLSAoZW50cnlubyAqIHNp emVvZihNdWx0aVhhY3RPZmZzZXQpKSk7DQorCQlNZW1TZXQob2ZmcHRyLCAwLCBTaXplT2ZQYWdl Q29udGVudHMgLSAoZW50cnlubyAqIHNpemVvZihNdWx0aVhhY3RPZmZzZXQpKSk7DQogDQogCQlN dWx0aVhhY3RPZmZzZXRDdGwtPnNoYXJlZC0+cGFnZV9kaXJ0eVtzbG90bm9dID0gdHJ1ZTsNCiAJ fQ0KQEAgLTIxMDQsOSArMjExNyw5IEBAIFRyaW1NdWx0aVhhY3Qodm9pZCkNCiAJCW1lbWJlcm9m ZiA9IE1YT2Zmc2V0VG9NZW1iZXJPZmZzZXQob2Zmc2V0KTsNCiAJCXNsb3RubyA9IFNpbXBsZUxy dVJlYWRQYWdlKE11bHRpWGFjdE1lbWJlckN0bCwgcGFnZW5vLCB0cnVlLCBvZmZzZXQpOw0KIAkJ eGlkcHRyID0gKFRyYW5zYWN0aW9uSWQgKikNCi0JCQkoTXVsdGlYYWN0TWVtYmVyQ3RsLT5zaGFy ZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10gKyBtZW1iZXJvZmYpOw0KKwkJCShQYWdlR2V0Q29udGVu dHMoTXVsdGlYYWN0TWVtYmVyQ3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10pICsgbWVt YmVyb2ZmKTsNCiANCi0JCU1lbVNldCh4aWRwdHIsIDAsIEJMQ0tTWiAtIG1lbWJlcm9mZik7DQor CQlNZW1TZXQoeGlkcHRyLCAwLCBTaXplT2ZQYWdlQ29udGVudHMgLSBtZW1iZXJvZmYpOw0KIA0K IAkJLyoNCiAJCSAqIE5vdGU6IHdlIGRvbid0IG5lZWQgdG8gemVybyBvdXQgdGhlIGZsYWcgYml0 cyBpbiB0aGUgcmVtYWluaW5nDQpAQCAtMjc1OCw3ICsyNzcxLDcgQEAgZmluZF9tdWx0aXhhY3Rf c3RhcnQoTXVsdGlYYWN0SWQgbXVsdGksIE11bHRpWGFjdE9mZnNldCAqcmVzdWx0KQ0KIA0KIAkv KiBsb2NrIGlzIGFjcXVpcmVkIGJ5IFNpbXBsZUxydVJlYWRQYWdlX1JlYWRPbmx5ICovDQogCXNs b3RubyA9IFNpbXBsZUxydVJlYWRQYWdlX1JlYWRPbmx5KE11bHRpWGFjdE9mZnNldEN0bCwgcGFn ZW5vLCBtdWx0aSk7DQotCW9mZnB0ciA9IChNdWx0aVhhY3RPZmZzZXQgKikgTXVsdGlYYWN0T2Zm c2V0Q3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub107DQorCW9mZnB0ciA9IChNdWx0aVhh Y3RPZmZzZXQgKikgUGFnZUdldENvbnRlbnRzKE11bHRpWGFjdE9mZnNldEN0bC0+c2hhcmVkLT5w YWdlX2J1ZmZlcltzbG90bm9dKTsNCiAJb2ZmcHRyICs9IGVudHJ5bm87DQogCW9mZnNldCA9ICpv ZmZwdHI7DQogCUxXTG9ja1JlbGVhc2UoTXVsdGlYYWN0T2Zmc2V0U0xSVUxvY2spOw0KQEAgLTMx OTIsMTIgKzMyMDUsMTIgQEAgTXVsdGlYYWN0T2Zmc2V0UHJlY2VkZXMoTXVsdGlYYWN0T2Zmc2V0 IG9mZnNldDEsIE11bHRpWGFjdE9mZnNldCBvZmZzZXQyKQ0KICAqIFdyaXRlIGFuIHhsb2cgcmVj b3JkIHJlZmxlY3RpbmcgdGhlIHplcm9pbmcgb2YgZWl0aGVyIGEgTUVNQkVScyBvcg0KICAqIE9G RlNFVHMgcGFnZSAoaW5mbyBzaG93cyB3aGljaCkNCiAgKi8NCi1zdGF0aWMgdm9pZA0KK3N0YXRp YyBYTG9nUmVjUHRyDQogV3JpdGVNWmVyb1BhZ2VYbG9nUmVjKGludDY0IHBhZ2VubywgdWludDgg aW5mbykNCiB7DQogCVhMb2dCZWdpbkluc2VydCgpOw0KIAlYTG9nUmVnaXN0ZXJEYXRhKChjaGFy ICopICgmcGFnZW5vKSwgc2l6ZW9mKHBhZ2VubykpOw0KLQkodm9pZCkgWExvZ0luc2VydChSTV9N VUxUSVhBQ1RfSUQsIGluZm8pOw0KKwlyZXR1cm4gWExvZ0luc2VydChSTV9NVUxUSVhBQ1RfSUQs IGluZm8pOw0KIH0NCiANCiAvKg0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL3NscnUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUuYw0KaW5kZXggN2Ez NzFkOTAzNC4uZDdmM2RlZWE3ZCAxMDA2NDQNCi0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL3NscnUuYw0KKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc2xydS5jDQpAQCAt NTcsNiArNTcsNyBAQA0KICNpbmNsdWRlICJhY2Nlc3MveGxvZ3V0aWxzLmgiDQogI2luY2x1ZGUg Im1pc2NhZG1pbi5oIg0KICNpbmNsdWRlICJwZ3N0YXQuaCINCisjaW5jbHVkZSAic3RvcmFnZS9i dWZwYWdlLmgiDQogI2luY2x1ZGUgInN0b3JhZ2UvZmQuaCINCiAjaW5jbHVkZSAic3RvcmFnZS9z aG1lbS5oIg0KIA0KQEAgLTE1NCwxMyArMTU1LDEzIEBAIHR5cGVkZWYgZW51bQ0KIAlTTFJVX1dS SVRFX0ZBSUxFRCwNCiAJU0xSVV9GU1lOQ19GQUlMRUQsDQogCVNMUlVfQ0xPU0VfRkFJTEVELA0K KwlTTFJVX0RBVEFfQ09SUlVQVEVELA0KIH0gU2xydUVycm9yQ2F1c2U7DQogDQogc3RhdGljIFNs cnVFcnJvckNhdXNlIHNscnVfZXJyY2F1c2U7DQogc3RhdGljIGludAlzbHJ1X2Vycm5vOw0KIA0K IA0KLXN0YXRpYyB2b2lkIFNpbXBsZUxydVplcm9MU05zKFNscnVDdGwgY3RsLCBpbnQgc2xvdG5v KTsNCiBzdGF0aWMgdm9pZCBTaW1wbGVMcnVXYWl0SU8oU2xydUN0bCBjdGwsIGludCBzbG90bm8p Ow0KIHN0YXRpYyB2b2lkIFNscnVJbnRlcm5hbFdyaXRlUGFnZShTbHJ1Q3RsIGN0bCwgaW50IHNs b3RubywgU2xydVdyaXRlQWxsIGZkYXRhKTsNCiBzdGF0aWMgYm9vbCBTbHJ1UGh5c2ljYWxSZWFk UGFnZShTbHJ1Q3RsIGN0bCwgaW50NjQgcGFnZW5vLCBpbnQgc2xvdG5vKTsNCkBAIC0xNzksNyAr MTgwLDcgQEAgc3RhdGljIHZvaWQgU2xydUludGVybmFsRGVsZXRlU2VnbWVudChTbHJ1Q3RsIGN0 bCwgaW50NjQgc2Vnbm8pOw0KICAqLw0KIA0KIFNpemUNCi1TaW1wbGVMcnVTaG1lbVNpemUoaW50 IG5zbG90cywgaW50IG5sc25zKQ0KK1NpbXBsZUxydVNobWVtU2l6ZShpbnQgbnNsb3RzKQ0KIHsN CiAJU2l6ZQkJc3o7DQogDQpAQCAtMTkyLDkgKzE5Myw2IEBAIFNpbXBsZUxydVNobWVtU2l6ZShp bnQgbnNsb3RzLCBpbnQgbmxzbnMpDQogCXN6ICs9IE1BWEFMSUdOKG5zbG90cyAqIHNpemVvZihp bnQpKTsJLyogcGFnZV9scnVfY291bnRbXSAqLw0KIAlzeiArPSBNQVhBTElHTihuc2xvdHMgKiBz aXplb2YoTFdMb2NrUGFkZGVkKSk7CS8qIGJ1ZmZlcl9sb2Nrc1tdICovDQogDQotCWlmIChubHNu cyA+IDApDQotCQlzeiArPSBNQVhBTElHTihuc2xvdHMgKiBubHNucyAqIHNpemVvZihYTG9nUmVj UHRyKSk7CS8qIGdyb3VwX2xzbltdICovDQotDQogCXJldHVybiBCVUZGRVJBTElHTihzeikgKyBC TENLU1ogKiBuc2xvdHM7DQogfQ0KIA0KQEAgLTIwNCwxNCArMjAyLDEzIEBAIFNpbXBsZUxydVNo bWVtU2l6ZShpbnQgbnNsb3RzLCBpbnQgbmxzbnMpDQogICogY3RsOiBhZGRyZXNzIG9mIGxvY2Fs ICh1bnNoYXJlZCkgY29udHJvbCBzdHJ1Y3R1cmUuDQogICogbmFtZTogbmFtZSBvZiBTTFJVLiAg KFRoaXMgaXMgdXNlci12aXNpYmxlLCBwaWNrIHdpdGggY2FyZSEpDQogICogbnNsb3RzOiBudW1i ZXIgb2YgcGFnZSBzbG90cyB0byB1c2UuDQotICogbmxzbnM6IG51bWJlciBvZiBMU04gZ3JvdXBz IHBlciBwYWdlIChzZXQgdG8gemVybyBpZiBub3QgcmVsZXZhbnQpLg0KICAqIGN0bGxvY2s6IExX TG9jayB0byB1c2UgdG8gY29udHJvbCBhY2Nlc3MgdG8gdGhlIHNoYXJlZCBjb250cm9sIHN0cnVj dHVyZS4NCiAgKiBzdWJkaXI6IFBHREFUQS1yZWxhdGl2ZSBzdWJkaXJlY3RvcnkgdGhhdCB3aWxs IGNvbnRhaW4gdGhlIGZpbGVzLg0KICAqIHRyYW5jaGVfaWQ6IExXTG9jayB0cmFuY2hlIElEIHRv IHVzZSBmb3IgdGhlIFNMUlUncyBwZXItYnVmZmVyIExXTG9ja3MuDQogICogc3luY19oYW5kbGVy OiB3aGljaCBzZXQgb2YgZnVuY3Rpb25zIHRvIHVzZSB0byBoYW5kbGUgc3luYyByZXF1ZXN0cw0K ICAqLw0KIHZvaWQNCi1TaW1wbGVMcnVJbml0KFNscnVDdGwgY3RsLCBjb25zdCBjaGFyICpuYW1l LCBpbnQgbnNsb3RzLCBpbnQgbmxzbnMsDQorU2ltcGxlTHJ1SW5pdChTbHJ1Q3RsIGN0bCwgY29u c3QgY2hhciAqbmFtZSwgaW50IG5zbG90cywNCiAJCQkgIExXTG9jayAqY3RsbG9jaywgY29uc3Qg Y2hhciAqc3ViZGlyLCBpbnQgdHJhbmNoZV9pZCwNCiAJCQkgIFN5bmNSZXF1ZXN0SGFuZGxlciBz eW5jX2hhbmRsZXIsIGJvb2wgbG9uZ19zZWdtZW50X25hbWVzKQ0KIHsNCkBAIC0yMTksNyArMjE2 LDcgQEAgU2ltcGxlTHJ1SW5pdChTbHJ1Q3RsIGN0bCwgY29uc3QgY2hhciAqbmFtZSwgaW50IG5z bG90cywgaW50IG5sc25zLA0KIAlib29sCQlmb3VuZDsNCiANCiAJc2hhcmVkID0gKFNscnVTaGFy ZWQpIFNobWVtSW5pdFN0cnVjdChuYW1lLA0KLQkJCQkJCQkJCQkgIFNpbXBsZUxydVNobWVtU2l6 ZShuc2xvdHMsIG5sc25zKSwNCisJCQkJCQkJCQkJICBTaW1wbGVMcnVTaG1lbVNpemUobnNsb3Rz KSwNCiAJCQkJCQkJCQkJICAmZm91bmQpOw0KIA0KIAlpZiAoIUlzVW5kZXJQb3N0bWFzdGVyKQ0K QEAgLTIzNiw3ICsyMzMsNiBAQCBTaW1wbGVMcnVJbml0KFNscnVDdGwgY3RsLCBjb25zdCBjaGFy ICpuYW1lLCBpbnQgbnNsb3RzLCBpbnQgbmxzbnMsDQogCQlzaGFyZWQtPkNvbnRyb2xMb2NrID0g Y3RsbG9jazsNCiANCiAJCXNoYXJlZC0+bnVtX3Nsb3RzID0gbnNsb3RzOw0KLQkJc2hhcmVkLT5s c25fZ3JvdXBzX3Blcl9wYWdlID0gbmxzbnM7DQogDQogCQlzaGFyZWQtPmN1cl9scnVfY291bnQg PSAwOw0KIA0KQEAgLTI2MSwxMiArMjU3LDYgQEAgU2ltcGxlTHJ1SW5pdChTbHJ1Q3RsIGN0bCwg Y29uc3QgY2hhciAqbmFtZSwgaW50IG5zbG90cywgaW50IG5sc25zLA0KIAkJc2hhcmVkLT5idWZm ZXJfbG9ja3MgPSAoTFdMb2NrUGFkZGVkICopIChwdHIgKyBvZmZzZXQpOw0KIAkJb2Zmc2V0ICs9 IE1BWEFMSUdOKG5zbG90cyAqIHNpemVvZihMV0xvY2tQYWRkZWQpKTsNCiANCi0JCWlmIChubHNu cyA+IDApDQotCQl7DQotCQkJc2hhcmVkLT5ncm91cF9sc24gPSAoWExvZ1JlY1B0ciAqKSAocHRy ICsgb2Zmc2V0KTsNCi0JCQlvZmZzZXQgKz0gTUFYQUxJR04obnNsb3RzICogbmxzbnMgKiBzaXpl b2YoWExvZ1JlY1B0cikpOw0KLQkJfQ0KLQ0KIAkJcHRyICs9IEJVRkZFUkFMSUdOKG9mZnNldCk7 DQogCQlmb3IgKHNsb3RubyA9IDA7IHNsb3RubyA8IG5zbG90czsgc2xvdG5vKyspDQogCQl7DQpA QCAtMjgxLDcgKzI3MSw3IEBAIFNpbXBsZUxydUluaXQoU2xydUN0bCBjdGwsIGNvbnN0IGNoYXIg Km5hbWUsIGludCBuc2xvdHMsIGludCBubHNucywNCiAJCX0NCiANCiAJCS8qIFNob3VsZCBmaXQg dG8gZXN0aW1hdGVkIHNobWVtIHNpemUgKi8NCi0JCUFzc2VydChwdHIgLSAoY2hhciAqKSBzaGFy ZWQgPD0gU2ltcGxlTHJ1U2htZW1TaXplKG5zbG90cywgbmxzbnMpKTsNCisJCUFzc2VydChwdHIg LSAoY2hhciAqKSBzaGFyZWQgPD0gU2ltcGxlTHJ1U2htZW1TaXplKG5zbG90cykpOw0KIAl9DQog CWVsc2UNCiAJCUFzc2VydChmb3VuZCk7DQpAQCAtMzIzLDExICszMTMsOCBAQCBTaW1wbGVMcnVa ZXJvUGFnZShTbHJ1Q3RsIGN0bCwgaW50NjQgcGFnZW5vKQ0KIAlzaGFyZWQtPnBhZ2VfZGlydHlb c2xvdG5vXSA9IHRydWU7DQogCVNscnVSZWNlbnRseVVzZWQoc2hhcmVkLCBzbG90bm8pOw0KIA0K LQkvKiBTZXQgdGhlIGJ1ZmZlciB0byB6ZXJvZXMgKi8NCi0JTWVtU2V0KHNoYXJlZC0+cGFnZV9i dWZmZXJbc2xvdG5vXSwgMCwgQkxDS1NaKTsNCi0NCi0JLyogU2V0IHRoZSBMU05zIGZvciB0aGlz IG5ldyBwYWdlIHRvIHplcm8gKi8NCi0JU2ltcGxlTHJ1WmVyb0xTTnMoY3RsLCBzbG90bm8pOw0K KyAgICAvKiBJbml0aWFsaXplIHRoZSBwYWdlLiAqLw0KKwlQYWdlSW5pdFNMUlUoc2hhcmVkLT5w YWdlX2J1ZmZlcltzbG90bm9dLCBCTENLU1osIDApOw0KIA0KIAkvKiBBc3N1bWUgdGhpcyBwYWdl IGlzIG5vdyB0aGUgbGF0ZXN0IGFjdGl2ZSBwYWdlICovDQogCXNoYXJlZC0+bGF0ZXN0X3BhZ2Vf bnVtYmVyID0gcGFnZW5vOw0KQEAgLTMzOCwyNiArMzI1LDYgQEAgU2ltcGxlTHJ1WmVyb1BhZ2Uo U2xydUN0bCBjdGwsIGludDY0IHBhZ2VubykNCiAJcmV0dXJuIHNsb3RubzsNCiB9DQogDQotLyoN Ci0gKiBaZXJvIGFsbCB0aGUgTFNOcyB3ZSBzdG9yZSBmb3IgdGhpcyBzbHJ1IHBhZ2UuDQotICoN Ci0gKiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgZWFjaCB0aW1lIHdlIGNyZWF0ZSBhIG5ldyBwYWdl LCBhbmQgZWFjaCB0aW1lIHdlIHJlYWQNCi0gKiBpbiBhIHBhZ2UgZnJvbSBkaXNrIGludG8gYW4g ZXhpc3RpbmcgYnVmZmVyLiAgKFN1Y2ggYW4gb2xkIHBhZ2UgY2Fubm90DQotICogaGF2ZSBhbnkg aW50ZXJlc3RpbmcgTFNOcywgc2luY2Ugd2UnZCBoYXZlIGZsdXNoZWQgdGhlbSBiZWZvcmUgd3Jp dGluZw0KLSAqIHRoZSBwYWdlIGluIHRoZSBmaXJzdCBwbGFjZS4pDQotICoNCi0gKiBUaGlzIGFz c3VtZXMgdGhhdCBJbnZhbGlkWExvZ1JlY1B0ciBpcyBiaXR3aXNlLWFsbC0wLg0KLSAqLw0KLXN0 YXRpYyB2b2lkDQotU2ltcGxlTHJ1WmVyb0xTTnMoU2xydUN0bCBjdGwsIGludCBzbG90bm8pDQot ew0KLQlTbHJ1U2hhcmVkCXNoYXJlZCA9IGN0bC0+c2hhcmVkOw0KLQ0KLQlpZiAoc2hhcmVkLT5s c25fZ3JvdXBzX3Blcl9wYWdlID4gMCkNCi0JCU1lbVNldCgmc2hhcmVkLT5ncm91cF9sc25bc2xv dG5vICogc2hhcmVkLT5sc25fZ3JvdXBzX3Blcl9wYWdlXSwgMCwNCi0JCQkgICBzaGFyZWQtPmxz bl9ncm91cHNfcGVyX3BhZ2UgKiBzaXplb2YoWExvZ1JlY1B0cikpOw0KLX0NCi0NCiAvKg0KICAq IFdhaXQgZm9yIGFueSBhY3RpdmUgSS9PIG9uIGEgcGFnZSBzbG90IHRvIGZpbmlzaC4gIChUaGlz IGRvZXMgbm90DQogICogZ3VhcmFudGVlIHRoYXQgbmV3IEkvTyBoYXNuJ3QgYmVlbiBzdGFydGVk IGJlZm9yZSB3ZSByZXR1cm4sIHRob3VnaC4NCkBAIC00NzgsOSArNDQ1LDYgQEAgU2ltcGxlTHJ1 UmVhZFBhZ2UoU2xydUN0bCBjdGwsIGludDY0IHBhZ2VubywgYm9vbCB3cml0ZV9vaywNCiAJCS8q IERvIHRoZSByZWFkICovDQogCQlvayA9IFNscnVQaHlzaWNhbFJlYWRQYWdlKGN0bCwgcGFnZW5v LCBzbG90bm8pOw0KIA0KLQkJLyogU2V0IHRoZSBMU05zIGZvciB0aGlzIG5ld2x5IHJlYWQtaW4g cGFnZSB0byB6ZXJvICovDQotCQlTaW1wbGVMcnVaZXJvTFNOcyhjdGwsIHNsb3Rubyk7DQotDQog CQkvKiBSZS1hY3F1aXJlIGNvbnRyb2wgbG9jayBhbmQgdXBkYXRlIHBhZ2Ugc3RhdGUgKi8NCiAJ CUxXTG9ja0FjcXVpcmUoc2hhcmVkLT5Db250cm9sTG9jaywgTFdfRVhDTFVTSVZFKTsNCiANCkBA IC03NDAsNyArNzA0LDcgQEAgU2xydVBoeXNpY2FsUmVhZFBhZ2UoU2xydUN0bCBjdGwsIGludDY0 IHBhZ2VubywgaW50IHNsb3RubykNCiAJCWVyZXBvcnQoTE9HLA0KIAkJCQkoZXJybXNnKCJmaWxl IFwiJXNcIiBkb2Vzbid0IGV4aXN0LCByZWFkaW5nIGFzIHplcm9lcyIsDQogCQkJCQkJcGF0aCkp KTsNCi0JCU1lbVNldChzaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10sIDAsIEJMQ0tTWik7DQor CQlQYWdlSW5pdFNMUlUoc2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9dLCBCTENLU1osIDApOw0K IAkJcmV0dXJuIHRydWU7DQogCX0NCiANCkBAIC03NjMsNiArNzI3LDEzIEBAIFNscnVQaHlzaWNh bFJlYWRQYWdlKFNscnVDdGwgY3RsLCBpbnQ2NCBwYWdlbm8sIGludCBzbG90bm8pDQogCQlyZXR1 cm4gZmFsc2U7DQogCX0NCiANCisJaWYgKCFQYWdlSXNWZXJpZmllZEV4dGVuZGVkKHNoYXJlZC0+ cGFnZV9idWZmZXJbc2xvdG5vXSwgcGFnZW5vLCBQSVZfUkVQT1JUX1NUQVQpKQ0KKwl7DQorCQlz bHJ1X2VycmNhdXNlID0gU0xSVV9EQVRBX0NPUlJVUFRFRDsNCisJCXNscnVfZXJybm8gPSAwOw0K KwkJcmV0dXJuIGZhbHNlOw0KKwl9DQorDQogCXJldHVybiB0cnVlOw0KIH0NCiANCkBAIC03ODks NiArNzYwLDggQEAgU2xydVBoeXNpY2FsV3JpdGVQYWdlKFNscnVDdGwgY3RsLCBpbnQ2NCBwYWdl bm8sIGludCBzbG90bm8sIFNscnVXcml0ZUFsbCBmZGF0YSkNCiAJb2ZmX3QJCW9mZnNldCA9IHJw YWdlbm8gKiBCTENLU1o7DQogCWNoYXIJCXBhdGhbTUFYUEdQQVRIXTsNCiAJaW50CQkJZmQgPSAt MTsNCisJUGFnZQkJcGFnZSA9IHNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXTsNCisJWExvZ1Jl Y1B0cglsc247DQogDQogCS8qIHVwZGF0ZSB0aGUgc3RhdHMgY291bnRlciBvZiB3cml0dGVuIHBh Z2VzICovDQogCXBnc3RhdF9jb3VudF9zbHJ1X3BhZ2Vfd3JpdHRlbihzaGFyZWQtPnNscnVfc3Rh dHNfaWR4KTsNCkBAIC03OTgsNDEgKzc3MSwxOCBAQCBTbHJ1UGh5c2ljYWxXcml0ZVBhZ2UoU2xy dUN0bCBjdGwsIGludDY0IHBhZ2VubywgaW50IHNsb3RubywgU2xydVdyaXRlQWxsIGZkYXRhKQ0K IAkgKiB3cml0ZSBvdXQgZGF0YSBiZWZvcmUgYXNzb2NpYXRlZCBXQUwgcmVjb3Jkcy4gIFRoaXMg aXMgdGhlIHNhbWUgYWN0aW9uDQogCSAqIHBlcmZvcm1lZCBkdXJpbmcgRmx1c2hCdWZmZXIoKSBp biB0aGUgbWFpbiBidWZmZXIgbWFuYWdlci4NCiAJICovDQotCWlmIChzaGFyZWQtPmdyb3VwX2xz biAhPSBOVUxMKQ0KKwlsc24gPSBQYWdlR2V0TFNOKHBhZ2UpOw0KKwlpZiAoIVhMb2dSZWNQdHJJ c0ludmFsaWQobHNuKSkNCiAJew0KIAkJLyoNCi0JCSAqIFdlIG11c3QgZGV0ZXJtaW5lIHRoZSBs YXJnZXN0IGFzeW5jLWNvbW1pdCBMU04gZm9yIHRoZSBwYWdlLiBUaGlzDQotCQkgKiBpcyBhIGJp dCB0ZWRpb3VzLCBidXQgc2luY2UgdGhpcyBlbnRpcmUgZnVuY3Rpb24gaXMgYSBzbG93IHBhdGgN Ci0JCSAqIGFueXdheSwgaXQgc2VlbXMgYmV0dGVyIHRvIGRvIHRoaXMgaGVyZSB0aGFuIHRvIG1h aW50YWluIGEgcGVyLXBhZ2UNCi0JCSAqIExTTiB2YXJpYWJsZSAod2hpY2gnZCBuZWVkIGFuIGV4 dHJhIGNvbXBhcmlzb24gaW4gdGhlDQotCQkgKiB0cmFuc2FjdGlvbi1jb21taXQgcGF0aCkuDQor CQkgKiBBcyBub3RlZCBhYm92ZSwgZWxvZyhFUlJPUikgaXMgbm90IGFjY2VwdGFibGUgaGVyZSwg c28gaWYNCisJCSAqIFhMb2dGbHVzaCB3ZXJlIHRvIGZhaWwsIHdlIG11c3QgUEFOSUMuICBUaGlz IGlzbid0IG11Y2ggb2YgYQ0KKwkJICogcmVzdHJpY3Rpb24gYmVjYXVzZSBYTG9nRmx1c2ggaXMg anVzdCBhYm91dCBhbGwgY3JpdGljYWwNCisJCSAqIHNlY3Rpb24gYW55d2F5LCBidXQgbGV0J3Mg bWFrZSBzdXJlLg0KIAkJICovDQotCQlYTG9nUmVjUHRyCW1heF9sc247DQotCQlpbnQJCQlsc25p bmRleCwNCi0JCQkJCWxzbm9mZjsNCi0NCi0JCWxzbmluZGV4ID0gc2xvdG5vICogc2hhcmVkLT5s c25fZ3JvdXBzX3Blcl9wYWdlOw0KLQkJbWF4X2xzbiA9IHNoYXJlZC0+Z3JvdXBfbHNuW2xzbmlu ZGV4KytdOw0KLQkJZm9yIChsc25vZmYgPSAxOyBsc25vZmYgPCBzaGFyZWQtPmxzbl9ncm91cHNf cGVyX3BhZ2U7IGxzbm9mZisrKQ0KLQkJew0KLQkJCVhMb2dSZWNQdHIJdGhpc19sc24gPSBzaGFy ZWQtPmdyb3VwX2xzbltsc25pbmRleCsrXTsNCi0NCi0JCQlpZiAobWF4X2xzbiA8IHRoaXNfbHNu KQ0KLQkJCQltYXhfbHNuID0gdGhpc19sc247DQotCQl9DQotDQotCQlpZiAoIVhMb2dSZWNQdHJJ c0ludmFsaWQobWF4X2xzbikpDQotCQl7DQotCQkJLyoNCi0JCQkgKiBBcyBub3RlZCBhYm92ZSwg ZWxvZyhFUlJPUikgaXMgbm90IGFjY2VwdGFibGUgaGVyZSwgc28gaWYNCi0JCQkgKiBYTG9nRmx1 c2ggd2VyZSB0byBmYWlsLCB3ZSBtdXN0IFBBTklDLiAgVGhpcyBpc24ndCBtdWNoIG9mIGENCi0J CQkgKiByZXN0cmljdGlvbiBiZWNhdXNlIFhMb2dGbHVzaCBpcyBqdXN0IGFib3V0IGFsbCBjcml0 aWNhbA0KLQkJCSAqIHNlY3Rpb24gYW55d2F5LCBidXQgbGV0J3MgbWFrZSBzdXJlLg0KLQkJCSAq Lw0KLQkJCVNUQVJUX0NSSVRfU0VDVElPTigpOw0KLQkJCVhMb2dGbHVzaChtYXhfbHNuKTsNCi0J CQlFTkRfQ1JJVF9TRUNUSU9OKCk7DQotCQl9DQorCQlTVEFSVF9DUklUX1NFQ1RJT04oKTsNCisJ CVhMb2dGbHVzaChsc24pOw0KKwkJRU5EX0NSSVRfU0VDVElPTigpOw0KIAl9DQogDQogCS8qDQpA QCAtODk5LDYgKzg0OSw4IEBAIFNscnVQaHlzaWNhbFdyaXRlUGFnZShTbHJ1Q3RsIGN0bCwgaW50 NjQgcGFnZW5vLCBpbnQgc2xvdG5vLCBTbHJ1V3JpdGVBbGwgZmRhdGEpDQogCQl9DQogCX0NCiAN CisJUGFnZVNldENoZWNrc3VtSW5wbGFjZShzaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10sIHBh Z2Vubyk7DQorDQogCWVycm5vID0gMDsNCiAJcGdzdGF0X3JlcG9ydF93YWl0X3N0YXJ0KFdBSVRf RVZFTlRfU0xSVV9XUklURSk7DQogCWlmIChwZ19wd3JpdGUoZmQsIHNoYXJlZC0+cGFnZV9idWZm ZXJbc2xvdG5vXSwgQkxDS1NaLCBvZmZzZXQpICE9IEJMQ0tTWikNCkBAIC0xMDE5LDYgKzk3MSwx MyBAQCBTbHJ1UmVwb3J0SU9FcnJvcihTbHJ1Q3RsIGN0bCwgaW50NjQgcGFnZW5vLCBUcmFuc2Fj dGlvbklkIHhpZCkNCiAJCQkJCSBlcnJkZXRhaWwoIkNvdWxkIG5vdCBjbG9zZSBmaWxlIFwiJXNc IjogJW0uIiwNCiAJCQkJCQkJICAgcGF0aCkpKTsNCiAJCQlicmVhazsNCisJCWNhc2UgU0xSVV9E QVRBX0NPUlJVUFRFRDoNCisJCQllcmVwb3J0KEVSUk9SLA0KKwkJCQkJKGVycmNvZGUoRVJSQ09E RV9EQVRBX0NPUlJVUFRFRCksDQorCQkJCQkgZXJybXNnKCJjb3VsZCBub3QgYWNjZXNzIHN0YXR1 cyBvZiB0cmFuc2FjdGlvbiAldSIsIHhpZCksDQorCQkJCQkgZXJyZGV0YWlsKCJJbnZhbGlkIHBh Z2UgZnJvbSBmaWxlIFwiJXNcIiBhdCBvZmZzZXQgJWQuIiwNCisJCQkJCQkJICAgcGF0aCwgb2Zm c2V0KSkpOw0KKwkJCWJyZWFrOw0KIAkJZGVmYXVsdDoNCiAJCQkvKiBjYW4ndCBnZXQgaGVyZSwg d2UgdHJ1c3QgKi8NCiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIFNpbXBsZUxydSBlcnJv ciBjYXVzZTogJWQiLA0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1 YnRyYW5zLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zdWJ0cmFucy5jDQppbmRleCAx YjNiM2FkNzIwLi4xZjM1ZWUyM2M2IDEwMDY0NA0KLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0vc3VidHJhbnMuYw0KKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc3VidHJh bnMuYw0KQEAgLTMyLDYgKzMyLDcgQEANCiAjaW5jbHVkZSAiYWNjZXNzL3N1YnRyYW5zLmgiDQog I2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiDQogI2luY2x1ZGUgInBnX3RyYWNlLmgiDQorI2lu Y2x1ZGUgInN0b3JhZ2UvYnVmcGFnZS5oIg0KICNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiDQog DQogDQpAQCAtNDksNyArNTAsNyBAQA0KICAqLw0KIA0KIC8qIFdlIG5lZWQgZm91ciBieXRlcyBw ZXIgeGFjdCAqLw0KLSNkZWZpbmUgU1VCVFJBTlNfWEFDVFNfUEVSX1BBR0UgKEJMQ0tTWiAvIHNp emVvZihUcmFuc2FjdGlvbklkKSkNCisjZGVmaW5lIFNVQlRSQU5TX1hBQ1RTX1BFUl9QQUdFIChT aXplT2ZQYWdlQ29udGVudHMgLyBzaXplb2YoVHJhbnNhY3Rpb25JZCkpDQogDQogLyoNCiAgKiBB bHRob3VnaCB3ZSByZXR1cm4gYW4gaW50NjQgdGhlIGFjdHVhbCB2YWx1ZSBjYW4ndCBjdXJyZW50 bHkgZXhjZWVkDQpAQCAtOTMsNyArOTQsNyBAQCBTdWJUcmFuc1NldFBhcmVudChUcmFuc2FjdGlv bklkIHhpZCwgVHJhbnNhY3Rpb25JZCBwYXJlbnQpDQogCUxXTG9ja0FjcXVpcmUoU3VidHJhbnNT TFJVTG9jaywgTFdfRVhDTFVTSVZFKTsNCiANCiAJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2Uo U3ViVHJhbnNDdGwsIHBhZ2VubywgdHJ1ZSwgeGlkKTsNCi0JcHRyID0gKFRyYW5zYWN0aW9uSWQg KikgU3ViVHJhbnNDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXTsNCisJcHRyID0gKFRy YW5zYWN0aW9uSWQgKikgUGFnZUdldENvbnRlbnRzKFN1YlRyYW5zQ3RsLT5zaGFyZWQtPnBhZ2Vf YnVmZmVyW3Nsb3Rub10pOw0KIAlwdHIgKz0gZW50cnlubzsNCiANCiAJLyoNCkBAIC0xMzMsNyAr MTM0LDcgQEAgU3ViVHJhbnNHZXRQYXJlbnQoVHJhbnNhY3Rpb25JZCB4aWQpDQogCS8qIGxvY2sg aXMgYWNxdWlyZWQgYnkgU2ltcGxlTHJ1UmVhZFBhZ2VfUmVhZE9ubHkgKi8NCiANCiAJc2xvdG5v ID0gU2ltcGxlTHJ1UmVhZFBhZ2VfUmVhZE9ubHkoU3ViVHJhbnNDdGwsIHBhZ2VubywgeGlkKTsN Ci0JcHRyID0gKFRyYW5zYWN0aW9uSWQgKikgU3ViVHJhbnNDdGwtPnNoYXJlZC0+cGFnZV9idWZm ZXJbc2xvdG5vXTsNCisJcHRyID0gKFRyYW5zYWN0aW9uSWQgKikgUGFnZUdldENvbnRlbnRzKFN1 YlRyYW5zQ3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10pOw0KIAlwdHIgKz0gZW50cnlu bzsNCiANCiAJcGFyZW50ID0gKnB0cjsNCkBAIC0xOTMsMTQgKzE5NCwxNCBAQCBTdWJUcmFuc0dl dFRvcG1vc3RUcmFuc2FjdGlvbihUcmFuc2FjdGlvbklkIHhpZCkNCiBTaXplDQogU1VCVFJBTlNT aG1lbVNpemUodm9pZCkNCiB7DQotCXJldHVybiBTaW1wbGVMcnVTaG1lbVNpemUoTlVNX1NVQlRS QU5TX0JVRkZFUlMsIDApOw0KKwlyZXR1cm4gU2ltcGxlTHJ1U2htZW1TaXplKE5VTV9TVUJUUkFO U19CVUZGRVJTKTsNCiB9DQogDQogdm9pZA0KIFNVQlRSQU5TU2htZW1Jbml0KHZvaWQpDQogew0K IAlTdWJUcmFuc0N0bC0+UGFnZVByZWNlZGVzID0gU3ViVHJhbnNQYWdlUHJlY2VkZXM7DQotCVNp bXBsZUxydUluaXQoU3ViVHJhbnNDdGwsICJTdWJ0cmFucyIsIE5VTV9TVUJUUkFOU19CVUZGRVJT LCAwLA0KKwlTaW1wbGVMcnVJbml0KFN1YlRyYW5zQ3RsLCAiU3VidHJhbnMiLCBOVU1fU1VCVFJB TlNfQlVGRkVSUywNCiAJCQkJICBTdWJ0cmFuc1NMUlVMb2NrLCAicGdfc3VidHJhbnMiLA0KIAkJ CQkgIExXVFJBTkNIRV9TVUJUUkFOU19CVUZGRVIsIFNZTkNfSEFORExFUl9OT05FLA0KIAkJCQkg IGZhbHNlKTsNCkBAIC0zMDUsNyArMzA2LDYgQEAgQ2hlY2tQb2ludFNVQlRSQU5TKHZvaWQpDQog CVRSQUNFX1BPU1RHUkVTUUxfU1VCVFJBTlNfQ0hFQ0tQT0lOVF9ET05FKHRydWUpOw0KIH0NCiAN Ci0NCiAvKg0KICAqIE1ha2Ugc3VyZSB0aGF0IFNVQlRSQU5TIGhhcyByb29tIGZvciBhIG5ld2x5 LWFsbG9jYXRlZCBYSUQuDQogICoNCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9h c3luYy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYw0KaW5kZXggMjY0ZjI1YThmOS4u ODViMGQ2M2NkYyAxMDA2NDQNCi0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMNCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMNCkBAIC0xNDAsNiArMTQwLDcgQEANCiAj aW5jbHVkZSAibGlicHEvbGlicHEuaCINCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCINCiAj aW5jbHVkZSAibWlzY2FkbWluLmgiDQorI2luY2x1ZGUgInN0b3JhZ2UvYnVmcGFnZS5oIg0KICNp bmNsdWRlICJzdG9yYWdlL2lwYy5oIg0KICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCINCiAjaW5j bHVkZSAic3RvcmFnZS9wcm9jLmgiDQpAQCAtMTYyLDcgKzE2Myw3IEBADQogICogdGhhbiB0aGF0 LCBzbyBjaGFuZ2VzIGluIHRoYXQgZGF0YSBzdHJ1Y3R1cmUgd29uJ3QgYWZmZWN0IHVzZXItdmlz aWJsZQ0KICAqIHJlc3RyaWN0aW9ucy4NCiAgKi8NCi0jZGVmaW5lIE5PVElGWV9QQVlMT0FEX01B WF9MRU5HVEgJKEJMQ0tTWiAtIE5BTUVEQVRBTEVOIC0gMTI4KQ0KKyNkZWZpbmUgTk9USUZZX1BB WUxPQURfTUFYX0xFTkdUSAkoU2l6ZU9mUGFnZUNvbnRlbnRzIC0gTkFNRURBVEFMRU4gLSAxMjgp DQogDQogLyoNCiAgKiBTdHJ1Y3QgcmVwcmVzZW50aW5nIGFuIGVudHJ5IGluIHRoZSBnbG9iYWwg bm90aWZ5IHF1ZXVlDQpAQCAtMzExLDcgKzMxMiw3IEBAIHN0YXRpYyBTbHJ1Q3RsRGF0YSBOb3Rp ZnlDdGxEYXRhOw0KIA0KICNkZWZpbmUgTm90aWZ5Q3RsCQkJCQkoJk5vdGlmeUN0bERhdGEpDQog I2RlZmluZSBRVUVVRV9QQUdFU0laRQkJCQlCTENLU1oNCi0NCisjZGVmaW5lIFFVRVVFX1BBR0Vf Q0FQQUNJVFkJCQkoUVVFVUVfUEFHRVNJWkUgLSBNQVhBTElHTihTaXplT2ZQYWdlSGVhZGVyRGF0 YSkpDQogI2RlZmluZSBRVUVVRV9GVUxMX1dBUk5fSU5URVJWQUwJNTAwMAkvKiB3YXJuIGF0IG1v c3Qgb25jZSBldmVyeSA1cyAqLw0KIA0KIC8qDQpAQCAtNDkyLDcgKzQ5Myw3IEBAIEFzeW5jU2ht ZW1TaXplKHZvaWQpDQogCXNpemUgPSBtdWxfc2l6ZShNYXhCYWNrZW5kcyArIDEsIHNpemVvZihR dWV1ZUJhY2tlbmRTdGF0dXMpKTsNCiAJc2l6ZSA9IGFkZF9zaXplKHNpemUsIG9mZnNldG9mKEFz eW5jUXVldWVDb250cm9sLCBiYWNrZW5kKSk7DQogDQotCXNpemUgPSBhZGRfc2l6ZShzaXplLCBT aW1wbGVMcnVTaG1lbVNpemUoTlVNX05PVElGWV9CVUZGRVJTLCAwKSk7DQorCXNpemUgPSBhZGRf c2l6ZShzaXplLCBTaW1wbGVMcnVTaG1lbVNpemUoTlVNX05PVElGWV9CVUZGRVJTKSk7DQogDQog CXJldHVybiBzaXplOw0KIH0NCkBAIC01NDEsNyArNTQyLDcgQEAgQXN5bmNTaG1lbUluaXQodm9p ZCkNCiAJICogbmFtZXMgYXJlIHVzZWQgaW4gb3JkZXIgdG8gYXZvaWQgd3JhcGFyb3VuZC4NCiAJ ICovDQogCU5vdGlmeUN0bC0+UGFnZVByZWNlZGVzID0gYXN5bmNRdWV1ZVBhZ2VQcmVjZWRlczsN Ci0JU2ltcGxlTHJ1SW5pdChOb3RpZnlDdGwsICJOb3RpZnkiLCBOVU1fTk9USUZZX0JVRkZFUlMs IDAsDQorCVNpbXBsZUxydUluaXQoTm90aWZ5Q3RsLCAiTm90aWZ5IiwgTlVNX05PVElGWV9CVUZG RVJTLA0KIAkJCQkgIE5vdGlmeVNMUlVMb2NrLCAicGdfbm90aWZ5IiwgTFdUUkFOQ0hFX05PVElG WV9CVUZGRVIsDQogCQkJCSAgU1lOQ19IQU5ETEVSX05PTkUsIHRydWUpOw0KIA0KQEAgLTEzMDEs MTQgKzEzMDIsMTQgQEAgYXN5bmNRdWV1ZUFkdmFuY2Uodm9sYXRpbGUgUXVldWVQb3NpdGlvbiAq cG9zaXRpb24sIGludCBlbnRyeUxlbmd0aCkNCiAJICogd3JpdHRlbiBvciByZWFkLg0KIAkgKi8N CiAJb2Zmc2V0ICs9IGVudHJ5TGVuZ3RoOw0KLQlBc3NlcnQob2Zmc2V0IDw9IFFVRVVFX1BBR0VT SVpFKTsNCisJQXNzZXJ0KG9mZnNldCA8PSBRVUVVRV9QQUdFX0NBUEFDSVRZKTsNCiANCiAJLyoN CiAJICogSW4gYSBzZWNvbmQgc3RlcCBjaGVjayBpZiBhbm90aGVyIGVudHJ5IGNhbiBwb3NzaWJs eSBiZSB3cml0dGVuIHRvIHRoZQ0KIAkgKiBwYWdlLiBJZiBzbywgc3RheSBoZXJlLCB3ZSBoYXZl IHJlYWNoZWQgdGhlIG5leHQgcG9zaXRpb24uIElmIG5vdCwgdGhlbg0KIAkgKiB3ZSBuZWVkIHRv IG1vdmUgb24gdG8gdGhlIG5leHQgcGFnZS4NCiAJICovDQotCWlmIChvZmZzZXQgKyBRVUVVRUFM SUdOKEFzeW5jUXVldWVFbnRyeUVtcHR5U2l6ZSkgPiBRVUVVRV9QQUdFU0laRSkNCisJaWYgKG9m ZnNldCArIFFVRVVFQUxJR04oQXN5bmNRdWV1ZUVudHJ5RW1wdHlTaXplKSA+IFFVRVVFX1BBR0Vf Q0FQQUNJVFkpDQogCXsNCiAJCXBhZ2VubysrOw0KIAkJb2Zmc2V0ID0gMDsNCkBAIC0xNDA4LDcg KzE0MDksNyBAQCBhc3luY1F1ZXVlQWRkRW50cmllcyhMaXN0Q2VsbCAqbmV4dE5vdGlmeSkNCiAJ CW9mZnNldCA9IFFVRVVFX1BPU19PRkZTRVQocXVldWVfaGVhZCk7DQogDQogCQkvKiBDaGVjayB3 aGV0aGVyIHRoZSBlbnRyeSByZWFsbHkgZml0cyBvbiB0aGUgY3VycmVudCBwYWdlICovDQotCQlp ZiAob2Zmc2V0ICsgcWUubGVuZ3RoIDw9IFFVRVVFX1BBR0VTSVpFKQ0KKwkJaWYgKG9mZnNldCAr IHFlLmxlbmd0aCA8PSBRVUVVRV9QQUdFX0NBUEFDSVRZKQ0KIAkJew0KIAkJCS8qIE9LLCBzbyBh ZHZhbmNlIG5leHROb3RpZnkgcGFzdCB0aGlzIGl0ZW0gKi8NCiAJCQluZXh0Tm90aWZ5ID0gbG5l eHQocGVuZGluZ05vdGlmaWVzLT5ldmVudHMsIG5leHROb3RpZnkpOw0KQEAgLTE0MjAsMTQgKzE0 MjEsMTQgQEAgYXN5bmNRdWV1ZUFkZEVudHJpZXMoTGlzdENlbGwgKm5leHROb3RpZnkpDQogCQkJ ICogb25seSBjaGVjayBkYm9pZCBhbmQgc2luY2UgaXQgd29uJ3QgbWF0Y2ggYW55IHJlYWRlcidz IGRhdGFiYXNlDQogCQkJICogT0lELCB0aGV5IHdpbGwgaWdub3JlIHRoaXMgZW50cnkgYW5kIG1v dmUgb24uDQogCQkJICovDQotCQkJcWUubGVuZ3RoID0gUVVFVUVfUEFHRVNJWkUgLSBvZmZzZXQ7 DQorCQkJcWUubGVuZ3RoID0gUVVFVUVfUEFHRV9DQVBBQ0lUWSAtIG9mZnNldDsNCiAJCQlxZS5k Ym9pZCA9IEludmFsaWRPaWQ7DQogCQkJcWUuZGF0YVswXSA9ICdcMCc7CS8qIGVtcHR5IGNoYW5u ZWwgKi8NCiAJCQlxZS5kYXRhWzFdID0gJ1wwJzsJLyogZW1wdHkgcGF5bG9hZCAqLw0KIAkJfQ0K IA0KIAkJLyogTm93IGNvcHkgcWUgaW50byB0aGUgc2hhcmVkIGJ1ZmZlciBwYWdlICovDQotCQlt ZW1jcHkoTm90aWZ5Q3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10gKyBvZmZzZXQsDQor CQltZW1jcHkoUGFnZUdldENvbnRlbnRzKE5vdGlmeUN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZlcltz bG90bm9dKSArIG9mZnNldCwNCiAJCQkgICAmcWUsDQogCQkJICAgcWUubGVuZ3RoKTsNCiANCkBA IC0xOTQ3LDEwICsxOTQ4LDEwIEBAIGFzeW5jUXVldWVSZWFkQWxsTm90aWZpY2F0aW9ucyh2b2lk KQ0KIAkJCWVsc2UNCiAJCQl7DQogCQkJCS8qIGZldGNoIGFsbCB0aGUgcmVzdCBvZiB0aGUgcGFn ZSAqLw0KLQkJCQljb3B5c2l6ZSA9IFFVRVVFX1BBR0VTSVpFIC0gY3Vyb2Zmc2V0Ow0KKwkJCQlj b3B5c2l6ZSA9IFFVRVVFX1BBR0VfQ0FQQUNJVFkgLSBjdXJvZmZzZXQ7DQogCQkJfQ0KLQkJCW1l bWNweShwYWdlX2J1ZmZlci5idWYgKyBjdXJvZmZzZXQsDQotCQkJCSAgIE5vdGlmeUN0bC0+c2hh cmVkLT5wYWdlX2J1ZmZlcltzbG90bm9dICsgY3Vyb2Zmc2V0LA0KKwkJCW1lbWNweShQYWdlR2V0 Q29udGVudHMocGFnZV9idWZmZXIuYnVmKSArIGN1cm9mZnNldCwNCisJCQkJICAgUGFnZUdldENv bnRlbnRzKE5vdGlmeUN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9dKSArIGN1cm9mZnNl dCwNCiAJCQkJICAgY29weXNpemUpOw0KIAkJCS8qIFJlbGVhc2UgbG9jayB0aGF0IHdlIGdvdCBm cm9tIFNpbXBsZUxydVJlYWRQYWdlX1JlYWRPbmx5KCkgKi8NCiAJCQlMV0xvY2tSZWxlYXNlKE5v dGlmeVNMUlVMb2NrKTsNCkBAIC0yMDIxLDcgKzIwMjIsNyBAQCBhc3luY1F1ZXVlUHJvY2Vzc1Bh Z2VFbnRyaWVzKHZvbGF0aWxlIFF1ZXVlUG9zaXRpb24gKmN1cnJlbnQsDQogCQlpZiAoUVVFVUVf UE9TX0VRVUFMKHRoaXNlbnRyeSwgc3RvcCkpDQogCQkJYnJlYWs7DQogDQotCQlxZSA9IChBc3lu Y1F1ZXVlRW50cnkgKikgKHBhZ2VfYnVmZmVyICsgUVVFVUVfUE9TX09GRlNFVCh0aGlzZW50cnkp KTsNCisJCXFlID0gKEFzeW5jUXVldWVFbnRyeSAqKSAoUGFnZUdldENvbnRlbnRzKHBhZ2VfYnVm ZmVyKSArIFFVRVVFX1BPU19PRkZTRVQodGhpc2VudHJ5KSk7DQogDQogCQkvKg0KIAkJICogQWR2 YW5jZSAqY3VycmVudCBvdmVyIHRoaXMgbWVzc2FnZSwgcG9zc2libHkgdG8gdGhlIG5leHQgcGFn ZS4gQXMNCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGljYXRlLmMg Yi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGljYXRlLmMNCmluZGV4IDExMjliOGU0ZjIu LjlmZDk0NWFkMzggMTAwNjQ0DQotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGlj YXRlLmMNCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcmVkaWNhdGUuYw0KQEAgLTIw NCw2ICsyMDQsNyBAQA0KICNpbmNsdWRlICJwZ3N0YXQuaCINCiAjaW5jbHVkZSAicG9ydC9wZ19s ZmluZC5oIg0KICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1nci5oIg0KKyNpbmNsdWRlICJzdG9yYWdl L2J1ZnBhZ2UuaCINCiAjaW5jbHVkZSAic3RvcmFnZS9wcmVkaWNhdGUuaCINCiAjaW5jbHVkZSAi c3RvcmFnZS9wcmVkaWNhdGVfaW50ZXJuYWxzLmgiDQogI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5o Ig0KQEAgLTMyMiw4ICszMjMsOCBAQCBzdGF0aWMgU2xydUN0bERhdGEgU2VyaWFsU2xydUN0bERh dGE7DQogI2RlZmluZSBTZXJpYWxTbHJ1Q3RsCQkJKCZTZXJpYWxTbHJ1Q3RsRGF0YSkNCiANCiAj ZGVmaW5lIFNFUklBTF9QQUdFU0laRQkJCUJMQ0tTWg0KLSNkZWZpbmUgU0VSSUFMX0VOVFJZU0la RQkJCXNpemVvZihTZXJDb21taXRTZXFObykNCi0jZGVmaW5lIFNFUklBTF9FTlRSSUVTUEVSUEFH RQkoU0VSSUFMX1BBR0VTSVpFIC8gU0VSSUFMX0VOVFJZU0laRSkNCisjZGVmaW5lIFNFUklBTF9F TlRSWVNJWkUJCXNpemVvZihTZXJDb21taXRTZXFObykNCisjZGVmaW5lIFNFUklBTF9FTlRSSUVT UEVSUEFHRQkoU0VSSUFMX1BBR0VTSVpFIC0gTUFYQUxJR04oU2l6ZU9mUGFnZUhlYWRlckRhdGEp IC8gU0VSSUFMX0VOVFJZU0laRSkNCiANCiAvKg0KICAqIFNldCBtYXhpbXVtIHBhZ2VzIGJhc2Vk IG9uIHRoZSBudW1iZXIgbmVlZGVkIHRvIHRyYWNrIGFsbCB0cmFuc2FjdGlvbnMuDQpAQCAtMzMz LDcgKzMzNCw3IEBAIHN0YXRpYyBTbHJ1Q3RsRGF0YSBTZXJpYWxTbHJ1Q3RsRGF0YTsNCiAjZGVm aW5lIFNlcmlhbE5leHRQYWdlKHBhZ2UpICgoKHBhZ2UpID49IFNFUklBTF9NQVhfUEFHRSkgPyAw IDogKHBhZ2UpICsgMSkNCiANCiAjZGVmaW5lIFNlcmlhbFZhbHVlKHNsb3RubywgeGlkKSAoKigo U2VyQ29tbWl0U2VxTm8gKikgXA0KLQkoU2VyaWFsU2xydUN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZl cltzbG90bm9dICsgXA0KKwkoUGFnZUdldENvbnRlbnRzKFNlcmlhbFNscnVDdGwtPnNoYXJlZC0+ cGFnZV9idWZmZXJbc2xvdG5vXSkgKyBcDQogCSgoKCh1aW50MzIpICh4aWQpKSAlIFNFUklBTF9F TlRSSUVTUEVSUEFHRSkgKiBTRVJJQUxfRU5UUllTSVpFKSkpKQ0KIA0KICNkZWZpbmUgU2VyaWFs UGFnZSh4aWQpCSgoKHVpbnQzMikgKHhpZCkpIC8gU0VSSUFMX0VOVFJJRVNQRVJQQUdFKQ0KQEAg LTc4NSwxMCArNzg2LDEzIEBAIFNlcmlhbFBhZ2VQcmVjZWRlc0xvZ2ljYWxseVVuaXRUZXN0cyh2 b2lkKQ0KIAkgKiByZXF1aXJlcyBidXJuaW5nIH4yQiBYSURzIGluIHNpbmdsZS11c2VyIG1vZGUs IGEgbmVnbGlnaWJsZQ0KIAkgKiBwb3NzaWJpbGl0eS4gIE1vcmVvdmVyLCBpZiBpdCBkb2VzIGhh cHBlbiwgdGhlIGNvbnNlcXVlbmNlIHdvdWxkIGJlDQogCSAqIG1pbGQsIG5hbWVseSBhIG5ldyB0 cmFuc2FjdGlvbiBmYWlsaW5nIGluIFNpbXBsZUxydVJlYWRQYWdlKCkuDQorCSAqDQorCSAqIE5P VEU6ICBBZnRlciBhZGRpbmcgdGhlIHBhZ2UgaGVhZGVyLCB0aGUgZGVmZWN0IGFmZmVjdHMgdHdv IHBhZ2VzLg0KKwkgKiBXZSBub3cgYXNzZXJ0IGNvcnJlY3QgdHJlYXRtZW50IG9mIGl0cyBzZWNv bmQgdG8gcHJpb3IgcGFnZS4NCiAJICovDQogCWhlYWRQYWdlID0gb2xkZXN0UGFnZTsNCiAJdGFy Z2V0UGFnZSA9IG5ld2VzdFBhZ2U7DQotCUFzc2VydChTZXJpYWxQYWdlUHJlY2VkZXNMb2dpY2Fs bHkoaGVhZFBhZ2UsIHRhcmdldFBhZ2UgLSAxKSk7DQorCUFzc2VydChTZXJpYWxQYWdlUHJlY2Vk ZXNMb2dpY2FsbHkoaGVhZFBhZ2UsIHRhcmdldFBhZ2UgLSAyKSk7DQogI2lmIDANCiAJQXNzZXJ0 KFNlcmlhbFBhZ2VQcmVjZWRlc0xvZ2ljYWxseShoZWFkUGFnZSwgdGFyZ2V0UGFnZSkpOw0KICNl bmRpZg0KQEAgLTgwOCw3ICs4MTIsNyBAQCBTZXJpYWxJbml0KHZvaWQpDQogCSAqLw0KIAlTZXJp YWxTbHJ1Q3RsLT5QYWdlUHJlY2VkZXMgPSBTZXJpYWxQYWdlUHJlY2VkZXNMb2dpY2FsbHk7DQog CVNpbXBsZUxydUluaXQoU2VyaWFsU2xydUN0bCwgIlNlcmlhbCIsDQotCQkJCSAgTlVNX1NFUklB TF9CVUZGRVJTLCAwLCBTZXJpYWxTTFJVTG9jaywgInBnX3NlcmlhbCIsDQorCQkJCSAgTlVNX1NF UklBTF9CVUZGRVJTLCBTZXJpYWxTTFJVTG9jaywgInBnX3NlcmlhbCIsDQogCQkJCSAgTFdUUkFO Q0hFX1NFUklBTF9CVUZGRVIsIFNZTkNfSEFORExFUl9OT05FLA0KIAkJCQkgIGZhbHNlKTsNCiAj aWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORw0KQEAgLTEzNDgsNyArMTM1Miw3IEBAIFByZWRpY2F0 ZUxvY2tTaG1lbVNpemUodm9pZCkNCiANCiAJLyogU2hhcmVkIG1lbW9yeSBzdHJ1Y3R1cmVzIGZv ciBTTFJVIHRyYWNraW5nIG9mIG9sZCBjb21taXR0ZWQgeGlkcy4gKi8NCiAJc2l6ZSA9IGFkZF9z aXplKHNpemUsIHNpemVvZihTZXJpYWxDb250cm9sRGF0YSkpOw0KLQlzaXplID0gYWRkX3NpemUo c2l6ZSwgU2ltcGxlTHJ1U2htZW1TaXplKE5VTV9TRVJJQUxfQlVGRkVSUywgMCkpOw0KKwlzaXpl ID0gYWRkX3NpemUoc2l6ZSwgU2ltcGxlTHJ1U2htZW1TaXplKE5VTV9TRVJJQUxfQlVGRkVSUykp Ow0KIA0KIAlyZXR1cm4gc2l6ZTsNCiB9DQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFn ZS9wYWdlL2J1ZnBhZ2UuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvcGFnZS9idWZwYWdlLmMNCmlu ZGV4IDlhMzAyZGRjMzAuLjcyM2ExMjc1OTQgMTAwNjQ0DQotLS0gYS9zcmMvYmFja2VuZC9zdG9y YWdlL3BhZ2UvYnVmcGFnZS5jDQorKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL3BhZ2UvYnVmcGFn ZS5jDQpAQCAtNTksNiArNTksMzEgQEAgUGFnZUluaXQoUGFnZSBwYWdlLCBTaXplIHBhZ2VTaXpl LCBTaXplIHNwZWNpYWxTaXplKQ0KIAkvKiBwLT5wZF9wcnVuZV94aWQgPSBJbnZhbGlkVHJhbnNh Y3Rpb25JZDsJCWRvbmUgYnkgYWJvdmUgTWVtU2V0ICovDQogfQ0KIA0KKy8qDQorICogUGFnZUlu aXRTTFJVDQorICoJCUluaXRpYWxpemVzIHRoZSBjb250ZW50cyBvZiBhbiBTTFJVIHBhZ2UuDQor ICoJCU5vdGUgdGhhdCB3ZSBkb24ndCBjYWxjdWxhdGUgYW4gaW5pdGlhbCBjaGVja3N1bSBoZXJl OyB0aGF0J3Mgbm90IGRvbmUNCisgKgkJdW50aWwgaXQncyB0aW1lIHRvIHdyaXRlLg0KKyAqLw0K K3ZvaWQNCitQYWdlSW5pdFNMUlUoUGFnZSBwYWdlLCBTaXplIHBhZ2VTaXplLCBTaXplIHNwZWNp YWxTaXplKQ0KK3sNCisJUGFnZUhlYWRlcglwID0gKFBhZ2VIZWFkZXIpIHBhZ2U7DQorDQorCXNw ZWNpYWxTaXplID0gTUFYQUxJR04oc3BlY2lhbFNpemUpOw0KKw0KKwlBc3NlcnQocGFnZVNpemUg PT0gQkxDS1NaKTsNCisJQXNzZXJ0KHBhZ2VTaXplID4gc3BlY2lhbFNpemUgKyBTaXplT2ZQYWdl SGVhZGVyRGF0YSk7DQorDQorCS8qIE1ha2Ugc3VyZSBhbGwgZmllbGRzIG9mIHBhZ2UgYXJlIHpl cm8sIGFzIHdlbGwgYXMgdW51c2VkIHNwYWNlICovDQorCU1lbVNldChwLCAwLCBwYWdlU2l6ZSk7 DQorDQorCXAtPnBkX2ZsYWdzID0gMDsNCisJcC0+cGRfbG93ZXIgPSBTaXplT2ZQYWdlSGVhZGVy RGF0YTsNCisJcC0+cGRfdXBwZXIgPSBwYWdlU2l6ZSAtIHNwZWNpYWxTaXplOw0KKwlwLT5wZF9z cGVjaWFsID0gcGFnZVNpemUgLSBzcGVjaWFsU2l6ZTsNCisJUGFnZVNldFBhZ2VTaXplQW5kVmVy c2lvbihwYWdlLCBwYWdlU2l6ZSwgUEdfU0xSVV9QQUdFX0xBWU9VVF9WRVJTSU9OKTsNCit9DQog DQogLyoNCiAgKiBQYWdlSXNWZXJpZmllZEV4dGVuZGVkDQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w Z19jaGVja3N1bXMvcGdfY2hlY2tzdW1zLmMgYi9zcmMvYmluL3BnX2NoZWNrc3Vtcy9wZ19jaGVj a3N1bXMuYw0KaW5kZXggMTljMDgzYmUxNy4uMGY0MzUzMzgxMSAxMDA2NDQNCi0tLSBhL3NyYy9i aW4vcGdfY2hlY2tzdW1zL3BnX2NoZWNrc3Vtcy5jDQorKysgYi9zcmMvYmluL3BnX2NoZWNrc3Vt cy9wZ19jaGVja3N1bXMuYw0KQEAgLTE2LDYgKzE2LDcgQEANCiANCiAjaW5jbHVkZSA8ZGlyZW50 Lmg+DQogI2luY2x1ZGUgPGxpbWl0cy5oPg0KKyNpbmNsdWRlIDxzdGRib29sLmg+DQogI2luY2x1 ZGUgPHRpbWUuaD4NCiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4NCiAjaW5jbHVkZSA8dW5pc3RkLmg+ DQpAQCAtNTg5LDEyICs1OTAsMjAgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQ0KIAkJ ew0KIAkJCXRvdGFsX3NpemUgPSBzY2FuX2RpcmVjdG9yeShEYXRhRGlyLCAiZ2xvYmFsIiwgdHJ1 ZSk7DQogCQkJdG90YWxfc2l6ZSArPSBzY2FuX2RpcmVjdG9yeShEYXRhRGlyLCAiYmFzZSIsIHRy dWUpOw0KKwkJCXRvdGFsX3NpemUgKz0gc2Nhbl9kaXJlY3RvcnkoRGF0YURpciwgInBnX2NvbW1p dF90cyIsIHRydWUpOw0KKwkJCXRvdGFsX3NpemUgKz0gc2Nhbl9kaXJlY3RvcnkoRGF0YURpciwg InBnX211bHRpeGFjdCIsIHRydWUpOw0KKwkJCXRvdGFsX3NpemUgKz0gc2Nhbl9kaXJlY3Rvcnko RGF0YURpciwgInBnX3NlcmlhbCIsIHRydWUpOw0KIAkJCXRvdGFsX3NpemUgKz0gc2Nhbl9kaXJl Y3RvcnkoRGF0YURpciwgInBnX3RibHNwYyIsIHRydWUpOw0KKwkJCXRvdGFsX3NpemUgKz0gc2Nh bl9kaXJlY3RvcnkoRGF0YURpciwgInBnX3hhY3QiLCB0cnVlKTsNCiAJCX0NCiANCiAJCSh2b2lk KSBzY2FuX2RpcmVjdG9yeShEYXRhRGlyLCAiZ2xvYmFsIiwgZmFsc2UpOw0KIAkJKHZvaWQpIHNj YW5fZGlyZWN0b3J5KERhdGFEaXIsICJiYXNlIiwgZmFsc2UpOw0KKwkJKHZvaWQpIHNjYW5fZGly ZWN0b3J5KERhdGFEaXIsICJwZ19jb21taXRfdHMiLCBmYWxzZSk7DQorCQkodm9pZCkgc2Nhbl9k aXJlY3RvcnkoRGF0YURpciwgInBnX211bHRpeGFjdCIsIGZhbHNlKTsNCisJCSh2b2lkKSBzY2Fu X2RpcmVjdG9yeShEYXRhRGlyLCAicGdfc2VyaWFsIiwgZmFsc2UpOw0KIAkJKHZvaWQpIHNjYW5f ZGlyZWN0b3J5KERhdGFEaXIsICJwZ190YmxzcGMiLCBmYWxzZSk7DQorCQkodm9pZCkgc2Nhbl9k aXJlY3RvcnkoRGF0YURpciwgInBnX3hhY3QiLCBmYWxzZSk7DQogDQogCQlpZiAoc2hvd3Byb2dy ZXNzKQ0KIAkJCXByb2dyZXNzX3JlcG9ydCh0cnVlKTsNCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X3Jlc2V0d2FsL3QvMDAxX2Jhc2ljLnBsIGIvc3JjL2Jpbi9wZ19yZXNldHdhbC90LzAwMV9iYXNp Yy5wbA0KaW5kZXggZGNiNWZhODQ2ZS4uOTE0YWZiZGEyOSAxMDA2NDQNCi0tLSBhL3NyYy9iaW4v cGdfcmVzZXR3YWwvdC8wMDFfYmFzaWMucGwNCisrKyBiL3NyYy9iaW4vcGdfcmVzZXR3YWwvdC8w MDFfYmFzaWMucGwNCkBAIC0yMDYsNyArMjA2LDcgQEAgcHVzaCBAY21kLA0KICAgc3ByaW50Zigi JWQsJWQiLCBoZXgoJGZpbGVzWzBdKSA9PSAwID8gMyA6IGhleCgkZmlsZXNbMF0pLCBoZXgoJGZp bGVzWy0xXSkpOw0KIA0KIEBmaWxlcyA9IGdldF9zbHJ1X2ZpbGVzKCdwZ19tdWx0aXhhY3Qvb2Zm c2V0cycpOw0KLSRtdWx0ID0gMzIgKiAkYmxja3N6IC8gNDsNCiskbXVsdCA9IDMyICogKCRibGNr c3ogLSAyNCkgLyA0Ow0KICMgLW0gYXJndW1lbnQgaXMgIm5ldyxvbGQiDQogcHVzaCBAY21kLCAn LW0nLA0KICAgc3ByaW50ZigiJWQsJWQiLA0KQEAgLTIxNCwxMSArMjE0LDExIEBAIHB1c2ggQGNt ZCwgJy1tJywNCiAJaGV4KCRmaWxlc1swXSkgPT0gMCA/IDEgOiBoZXgoJGZpbGVzWzBdICogJG11 bHQpKTsNCiANCiBAZmlsZXMgPSBnZXRfc2xydV9maWxlcygncGdfbXVsdGl4YWN0L21lbWJlcnMn KTsNCi0kbXVsdCA9IDMyICogaW50KCRibGNrc3ogLyAyMCkgKiA0Ow0KKyRtdWx0ID0gMzIgKiBp bnQoKCRibGNrc3ogLSAyNCkgLyAyMCkgKiA0Ow0KIHB1c2ggQGNtZCwgJy1PJywgKGhleCgkZmls ZXNbLTFdKSArIDEpICogJG11bHQ7DQogDQogQGZpbGVzID0gZ2V0X3NscnVfZmlsZXMoJ3BnX3hh Y3QnKTsNCi0kbXVsdCA9IDMyICogJGJsY2tzeiAqIDQ7DQorJG11bHQgPSAzMiAqICgkYmxja3N6 IC0gMjQpICogNDsNCiBwdXNoIEBjbWQsDQogICAnLXUnLCAoaGV4KCRmaWxlc1swXSkgPT0gMCA/ IDMgOiBoZXgoJGZpbGVzWzBdKSAqICRtdWx0KSwNCiAgICcteCcsICgoaGV4KCRmaWxlc1stMV0p ICsgMSkgKiAkbXVsdCk7DQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL2ZpbGUuYyBi L3NyYy9iaW4vcGdfdXBncmFkZS9maWxlLmMNCmluZGV4IGQxNzM2MDI4ODIuLmM2YmUzNDA3MzYg MTAwNjQ0DQotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvZmlsZS5jDQorKysgYi9zcmMvYmluL3Bn X3VwZ3JhZGUvZmlsZS5jDQpAQCAtOSw2ICs5LDcgQEANCiANCiAjaW5jbHVkZSAicG9zdGdyZXNf ZmUuaCINCiANCisjaW5jbHVkZSA8ZGlyZW50Lmg+DQogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+DQog I2luY2x1ZGUgPGZjbnRsLmg+DQogI2lmZGVmIEhBVkVfQ09QWUZJTEVfSA0KQEAgLTM3NSwzICsz NzYsMTc0IEBAIGNoZWNrX2hhcmRfbGluayh2b2lkKQ0KIA0KIAl1bmxpbmsobmV3X2xpbmtfZmls ZSk7DQogfQ0KKw0KKw0KKy8qDQorICogQ29weSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UIGZyb20g YWNjZXNzL3NscnUuaCB0byBhdm9pZCBpbmNsdWRpbmcgaXQuDQorICovDQorI2RlZmluZSBTTFJV X1BBR0VTX1BFUl9TRUdNRU5UCTMyDQorDQorI2RlZmluZSBTRUdNRU5UX1NJWkUJCQkoQkxDS1Na ICogU0xSVV9QQUdFU19QRVJfU0VHTUVOVCkNCisNCisvKg0KKyAqIENvcHkgUGFnZUluaXRTTFJV IGZyb20gc3RvcmFnZS9idWZwYWdlLmMgdG8gYXZvaWQgbGlua2luZyB0byB0aGUgYmFja2VuZC4N CisgKi8NCit2b2lkDQorUGFnZUluaXRTTFJVKFBhZ2UgcGFnZSwgU2l6ZSBwYWdlU2l6ZSwgU2l6 ZSBzcGVjaWFsU2l6ZSkNCit7DQorCVBhZ2VIZWFkZXIJcCA9IChQYWdlSGVhZGVyKSBwYWdlOw0K Kw0KKwlzcGVjaWFsU2l6ZSA9IE1BWEFMSUdOKHNwZWNpYWxTaXplKTsNCisNCisJQXNzZXJ0KHBh Z2VTaXplID09IEJMQ0tTWik7DQorCUFzc2VydChwYWdlU2l6ZSA+IHNwZWNpYWxTaXplICsgU2l6 ZU9mUGFnZUhlYWRlckRhdGEpOw0KKw0KKwkvKiBNYWtlIHN1cmUgYWxsIGZpZWxkcyBvZiBwYWdl IGFyZSB6ZXJvLCBhcyB3ZWxsIGFzIHVudXNlZCBzcGFjZSAqLw0KKwlNZW1TZXQocCwgMCwgcGFn ZVNpemUpOw0KKw0KKwlwLT5wZF9mbGFncyA9IDA7DQorCXAtPnBkX2xvd2VyID0gU2l6ZU9mUGFn ZUhlYWRlckRhdGE7DQorCXAtPnBkX3VwcGVyID0gcGFnZVNpemUgLSBzcGVjaWFsU2l6ZTsNCisJ cC0+cGRfc3BlY2lhbCA9IHBhZ2VTaXplIC0gc3BlY2lhbFNpemU7DQorCVBhZ2VTZXRQYWdlU2l6 ZUFuZFZlcnNpb24ocGFnZSwgcGFnZVNpemUsIFBHX1NMUlVfUEFHRV9MQVlPVVRfVkVSU0lPTik7 DQorfQ0KKw0KKy8qDQorICogRmlsdGVyIGZ1bmN0aW9uIGZvciBzY2FuZGlyKDMpIHRvIHNlbGVj dCBvbmx5IHNlZ21lbnQgZmlsZXMuDQorICovDQorc3RhdGljIGludA0KK3NlZ21lbnRfZmlsZV9m aWx0ZXIoY29uc3Qgc3RydWN0IGRpcmVudCAqZGlyZW50KQ0KK3sNCisJcmV0dXJuIHN0cnNwbihk aXJlbnQtPmRfbmFtZSwgIjAxMjM0NTY3ODlBQkNERUYiKSA9PSBzdHJsZW4oZGlyZW50LT5kX25h bWUpOw0KK30NCisNCitzdGF0aWMgdm9pZA0KK3VwZ3JhZGVfZmlsZShjb25zdCBjaGFyICpzcmNf ZGlyLCBjb25zdCBjaGFyICpzcmNfZmlsZSwgY29uc3QgY2hhciAqZHN0X2RpcikNCit7DQorCWNo YXIJc3JjW01BWFBHUEFUSF07DQorCWNoYXIJZHN0W01BWFBHUEFUSF07DQorDQorCWludAkJc2Vn X25hbWVfbGVuOw0KKwlpbnQJCXNyY19zZWdubzsNCisJaW50NjQJc3JjX3BhZ2VubzsNCisJaW50 CQlkc3Rfc2Vnbm87DQorCWludDY0CWRzdF9wYWdlbm87DQorCWludAkJZHN0X29mZnNldDsNCisN CisJaW50CQlzcmNfZmQ7DQorCWludAkJZHN0X2ZkOw0KKw0KKwljaGFyCQkgICAqc3JjX2J1ZjsN CisJc3NpemVfdAkJCXNyY19sZW47DQorCXNzaXplX3QJCQlzcmNfYnVmX29mZnNldDsNCisJUEdB bGlnbmVkQmxvY2sJZHN0X2Jsb2NrOw0KKwlQYWdlCQkJcGFnZSA9IGRzdF9ibG9jay5kYXRhOw0K KwlpbnQJCQkJbGVuX3RvX2NvcHk7DQorDQorCXNlZ19uYW1lX2xlbiA9IHN0cmxlbihzcmNfZmls ZSk7DQorCXNyY19zZWdubyA9IChpbnQpIHN0cnRvbChzcmNfZmlsZSwgTlVMTCwgMTYpOw0KKwlz cmNfcGFnZW5vID0gc3JjX3NlZ25vICogU0xSVV9QQUdFU19QRVJfU0VHTUVOVDsNCisNCisJZHN0 X3BhZ2VubyA9IHNyY19wYWdlbm8gKiBCTENLU1ogLyBTaXplT2ZQYWdlQ29udGVudHM7DQorCWRz dF9vZmZzZXQgPSBzcmNfcGFnZW5vICogQkxDS1NaIC0gZHN0X3BhZ2VubyAqIFNpemVPZlBhZ2VD b250ZW50czsNCisJZHN0X3NlZ25vICA9IGRzdF9wYWdlbm8gLyBTTFJVX1BBR0VTX1BFUl9TRUdN RU5UOw0KKw0KKwlzbnByaW50ZihzcmMsIHNpemVvZihzcmMpLCAiJXMvJXMiLCBzcmNfZGlyLCBz cmNfZmlsZSk7DQorCXNucHJpbnRmKGRzdCwgc2l6ZW9mKGRzdCksICIlcy8lMCpYIiwgZHN0X2Rp ciwgc2VnX25hbWVfbGVuLCBkc3Rfc2Vnbm8pOw0KKw0KKwlzcmNfYnVmID0gcGdfbWFsbG9jKFNF R01FTlRfU0laRSk7DQorCWlmICgoc3JjX2ZkID0gb3BlbihzcmMsIE9fUkRPTkxZIHwgUEdfQklO QVJZLCAwKSkgPT0gLTEpDQorCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCI6 ICVzIiwgc3JjLCBzdHJlcnJvcihlcnJubykpOw0KKwlpZiAoKHNyY19sZW4gPSByZWFkKHNyY19m ZCwgc3JjX2J1ZiwgU0VHTUVOVF9TSVpFKSkgPT0gLTEpDQorCQlwZ19mYXRhbCgiY291bGQgbm90 IHJlYWQgZmlsZSBcIiVzXCI6ICVzIiwgc3JjLCBzdHJlcnJvcihlcnJubykpOw0KKw0KKwlpZiAo KGRzdF9mZCA9IG9wZW4oZHN0LCBPX1JEV1IgfCBPX0NSRUFUIHwgUEdfQklOQVJZLCBTX0lSVVNS IHwgU19JV1VTUikpID09IC0xKQ0KKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGZpbGUgXCIl c1wiOiAlcyIsIGRzdCwgc3RyZXJyb3IoZXJybm8pKTsNCisJaWYgKGZ0cnVuY2F0ZShkc3RfZmQs IFNFR01FTlRfU0laRSkgPT0gLTEpDQorCQlwZ19mYXRhbCgiY291bGQgbm90IHRydW5jYXRlIGZp bGUgXCIlc1wiOiAlcyIsIGRzdCwgc3RyZXJyb3IoZXJybm8pKTsNCisNCisJLyoNCisJICogUmVh ZCB0aGUgZGVzdGluYXRpb24gcGFnZSBhdCBkc3RfcGFnZW5vIGludG8gdGhlIGJ1ZmZlci4gIFRo ZSBwYWdlIG1heSBjb250YWluDQorCSAqIGRhdGEgZnJvbSB0aGUgcHJldmlvdXMgc291cmNlIHNl Z21lbnQuICBJbml0aWFsaXplIHRoZSBwYWdlIGlmIHRoZSBwYWdlIGlzIG5ldy4NCisJICovDQor CWlmIChsc2Vlayhkc3RfZmQsIChkc3RfcGFnZW5vICUgU0xSVV9QQUdFU19QRVJfU0VHTUVOVCkg KiBCTENLU1osIFNFRUtfU0VUKSA9PSAtMSkNCisJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgc2VlayBp biBmaWxlIFwiJXNcIjogJXMiLCBkc3QsIHN0cmVycm9yKGVycm5vKSk7DQorCWlmIChyZWFkKGRz dF9mZCwgcGFnZSwgQkxDS1NaKSA9PSAtMSkNCisJCXBnX2ZhdGFsKCJjb3VsZCBub3QgcmVhZCBm aWxlIFwiJXNcIjogJXMiLCBkc3QsIHN0cmVycm9yKGVycm5vKSk7DQorCWlmIChQYWdlSXNOZXco cGFnZSkpDQorCQlQYWdlSW5pdFNMUlUocGFnZSwgQkxDS1NaLCAwKTsNCisNCisJLyoNCisJICog UmV3aW5kIHRoZSBmaWxlIHBvc2l0aW9uLCBzbyB0aGUgZmlyc3Qgd3JpdGUgd2lsbCBvdmVyd3Jp dGUgdGhlIHBhZ2UuDQorCSAqLw0KKwlpZiAobHNlZWsoZHN0X2ZkLCAoZHN0X3BhZ2VubyAlIFNM UlVfUEFHRVNfUEVSX1NFR01FTlQpICogQkxDS1NaLCBTRUVLX1NFVCkgPT0gLTEpDQorCQlwZ19m YXRhbCgiY291bGQgbm90IHNlZWsgaW4gZmlsZSBcIiVzXCI6ICVzIiwgZHN0LCBzdHJlcnJvcihl cnJubykpOw0KKw0KKwlzcmNfYnVmX29mZnNldCA9IDA7DQorCXdoaWxlIChzcmNfYnVmX29mZnNl dCA8IHNyY19sZW4pDQorCXsNCisJCWxlbl90b19jb3B5ID0gTWluKHNyY19sZW4gLSBzcmNfYnVm X29mZnNldCwgU2l6ZU9mUGFnZUNvbnRlbnRzIC0gZHN0X29mZnNldCk7DQorCQltZW1jcHkoUGFn ZUdldENvbnRlbnRzKHBhZ2UpICsgZHN0X29mZnNldCwgc3JjX2J1ZiArIHNyY19idWZfb2Zmc2V0 LCBsZW5fdG9fY29weSk7DQorCQlzcmNfYnVmX29mZnNldCArPSBsZW5fdG9fY29weTsNCisNCisJ CWlmIChuZXdfY2x1c3Rlci5jb250cm9sZGF0YS5kYXRhX2NoZWNrc3VtX3ZlcnNpb24gPiAwKQ0K KwkJCSgoUGFnZUhlYWRlcikgcGFnZSktPnBkX2NoZWNrc3VtID0gcGdfY2hlY2tzdW1fcGFnZShw YWdlLCBkc3RfcGFnZW5vKTsNCisJCWlmICh3cml0ZShkc3RfZmQsIHBhZ2UsIEJMQ0tTWikgPT0g LTEpDQorCQkJcGdfZmF0YWwoImNvdWxkIG5vdCB3cml0ZSBmaWxlIFwiJXNcIjogJXMiLCBkc3Qs IHN0cmVycm9yKGVycm5vKSk7DQorDQorCQlkc3RfcGFnZW5vKys7DQorCQlkc3Rfb2Zmc2V0ID0g MDsNCisJCVBhZ2VJbml0U0xSVShwYWdlLCBCTENLU1osIDApOw0KKw0KKyAgICAgICAgLyoNCisJ CSAqIFN3aXRjaCBzZWdtZW50cyBpZiB3ZSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQg c2VnbWVudC4NCisJCSAqLw0KKwkJaWYgKGRzdF9wYWdlbm8gJSBTTFJVX1BBR0VTX1BFUl9TRUdN RU5UID09IDApDQorCQl7DQorCQkJaWYgKGZzeW5jKGRzdF9mZCkgPT0gLTEpDQorCQkJCXBnX2Zh dGFsKCJjb3VsZCBub3QgZnN5bmMgZmlsZSBcIiVzXCI6ICVzIiwgZHN0LCBzdHJlcnJvcihlcnJu bykpOw0KKwkJCWlmIChjbG9zZShkc3RfZmQpID09IC0xKQ0KKwkJCQlwZ19mYXRhbCgiY291bGQg bm90IGNsb3NlIGZpbGUgXCIlc1wiOiAlcyIsIGRzdCwgc3RyZXJyb3IoZXJybm8pKTsNCisNCisJ CQlkc3Rfc2Vnbm8rKzsNCisJCQlzbnByaW50Zihkc3QsIHNpemVvZihkc3QpLCAiJXMvJTAqWCIs IGRzdF9kaXIsIHNlZ19uYW1lX2xlbiwgZHN0X3NlZ25vKTsNCisJCQlpZiAoKGRzdF9mZCA9IG9w ZW4oZHN0LCBPX1JEV1IgfCBPX0NSRUFUIHwgUEdfQklOQVJZLCBTX0lSVVNSIHwgU19JV1VTUikp ID09IC0xKQ0KKwkJCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCI6ICVzIiwg ZHN0LCBzdHJlcnJvcihlcnJubykpOw0KKwkJCWlmIChmdHJ1bmNhdGUoZHN0X2ZkLCBTRUdNRU5U X1NJWkUpID09IC0xKQ0KKwkJCQlwZ19mYXRhbCgiY291bGQgbm90IHRydW5jYXRlIGZpbGUgXCIl c1wiOiAlcyIsIGRzdCwgc3RyZXJyb3IoZXJybm8pKTsNCisJCX0NCisJfQ0KKw0KKwlpZiAoZnN5 bmMoZHN0X2ZkKSA9PSAtMSkNCisJCXBnX2ZhdGFsKCJjb3VsZCBub3QgZnN5bmMgZmlsZSBcIiVz XCI6ICVzIiwgZHN0LCBzdHJlcnJvcihlcnJubykpOw0KKwlpZiAoY2xvc2UoZHN0X2ZkKSA9PSAt MSkNCisJCXBnX2ZhdGFsKCJjb3VsZCBub3QgY2xvc2UgZmlsZSBcIiVzXCI6ICVzIiwgZHN0LCBz dHJlcnJvcihlcnJubykpOw0KKw0KKwlwZ19mcmVlKHNyY19idWYpOw0KKwljbG9zZShzcmNfZmQp Ow0KK30NCisNCit2b2lkDQordXBncmFkZV94YWN0X2NhY2hlKGNvbnN0IGNoYXIgKnNyY19zdWJk aXIsIGNvbnN0IGNoYXIgKmRzdF9zdWJkaXIpDQorew0KKwljaGFyCXNyY19kaXJbTUFYUEdQQVRI XTsNCisJY2hhcglkc3RfZGlyW01BWFBHUEFUSF07DQorDQorCURJUgkJCQkgICAqc3JjX2RpcnA7 DQorCXN0cnVjdCBkaXJlbnQJICAgKnNyY19kaXJlbnQ7DQorDQorCXNucHJpbnRmKHNyY19kaXIs IHNpemVvZihzcmNfZGlyKSwgIiVzLyVzIiwgb2xkX2NsdXN0ZXIucGdkYXRhLCBzcmNfc3ViZGly KTsNCisJc25wcmludGYoZHN0X2Rpciwgc2l6ZW9mKGRzdF9kaXIpLCAiJXMvJXMiLCBuZXdfY2x1 c3Rlci5wZ2RhdGEsIGRzdF9zdWJkaXIpOw0KKw0KKwlpZiAoKHNyY19kaXJwID0gb3BlbmRpcihz cmNfZGlyKSkgPT0gTlVMTCkNCisJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBkaXJlY3Rvcnkg XCIlc1wiOiAlcyIsIHNyY19kaXIsIHN0cmVycm9yKGVycm5vKSk7DQorDQorCXdoaWxlIChlcnJu byA9IDAsIChzcmNfZGlyZW50ID0gcmVhZGRpcihzcmNfZGlycCkpICE9IE5VTEwpDQorCXsNCisJ CWlmIChzZWdtZW50X2ZpbGVfZmlsdGVyKHNyY19kaXJlbnQpKQ0KKwkJCXVwZ3JhZGVfZmlsZShz cmNfZGlyLCBzcmNfZGlyZW50LT5kX25hbWUsIGRzdF9kaXIpOw0KKwl9DQorDQorCWlmIChjbG9z ZWRpcihzcmNfZGlycCkgIT0gMCkNCisJCXBnX2ZhdGFsKCJjb3VsZCBub3QgY2xvc2UgZGlyZWN0 b3J5IFwiJXNcIjogJXMiLCBzcmNfZGlyLCBzdHJlcnJvcihlcnJubykpOw0KK30NCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jIGIvc3JjL2Jpbi9wZ191cGdyYWRl L3BnX3VwZ3JhZGUuYw0KaW5kZXggMzk2MGFmNDAzNi4uMmI3ZDAxMDU4ZSAxMDA2NDQNCi0tLSBh L3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMNCisrKyBiL3NyYy9iaW4vcGdfdXBncmFk ZS9wZ191cGdyYWRlLmMNCkBAIC02NjAsMTQgKzY2MCwyMyBAQCBjb3B5X3N1YmRpcl9maWxlcyhj b25zdCBjaGFyICpvbGRfc3ViZGlyLCBjb25zdCBjaGFyICpuZXdfc3ViZGlyKQ0KIHN0YXRpYyB2 b2lkDQogY29weV94YWN0X3hsb2dfeGlkKHZvaWQpDQogew0KKwlib29sCXNscnVfaGVhZGVyX2No YW5nZWQgPSBmYWxzZTsNCisNCiAJLyoNCiAJICogQ29weSBvbGQgY29tbWl0IGxvZ3MgdG8gbmV3 IGRhdGEgZGlyLiBwZ19jbG9nIGhhcyBiZWVuIHJlbmFtZWQgdG8NCiAJICogcGdfeGFjdCBpbiBw b3N0LTEwIGNsdXN0ZXJzLg0KIAkgKi8NCi0JY29weV9zdWJkaXJfZmlsZXMoR0VUX01BSk9SX1ZF UlNJT04ob2xkX2NsdXN0ZXIubWFqb3JfdmVyc2lvbikgPD0gOTA2ID8NCi0JCQkJCSAgInBnX2Ns b2ciIDogInBnX3hhY3QiLA0KLQkJCQkJICBHRVRfTUFKT1JfVkVSU0lPTihuZXdfY2x1c3Rlci5t YWpvcl92ZXJzaW9uKSA8PSA5MDYgPw0KLQkJCQkJICAicGdfY2xvZyIgOiAicGdfeGFjdCIpOw0K KwljaGFyCSp4YWN0X29sZF9kaXIgPSBHRVRfTUFKT1JfVkVSU0lPTihvbGRfY2x1c3Rlci5tYWpv cl92ZXJzaW9uKSA8PSA5MDYgPyAicGdfY2xvZyIgOiAicGdfeGFjdCI7DQorCWNoYXIJKnhhY3Rf bmV3X2RpciA9IEdFVF9NQUpPUl9WRVJTSU9OKG5ld19jbHVzdGVyLm1ham9yX3ZlcnNpb24pIDw9 IDkwNiA/ICJwZ19jbG9nIiA6ICJwZ194YWN0IjsNCisNCisJaWYgKG5ld19jbHVzdGVyLmNvbnRy b2xkYXRhLmNhdF92ZXIgPj0gU0xSVV9QQUdFX0hFQURFUl9DQVRfVkVSICYmDQorCQlvbGRfY2x1 c3Rlci5jb250cm9sZGF0YS5jYXRfdmVyIDwgU0xSVV9QQUdFX0hFQURFUl9DQVRfVkVSKQ0KKwkJ c2xydV9oZWFkZXJfY2hhbmdlZCA9IHRydWU7DQorDQorCWlmIChzbHJ1X2hlYWRlcl9jaGFuZ2Vk KQ0KKwkJdXBncmFkZV94YWN0X2NhY2hlKHhhY3Rfb2xkX2RpciwgeGFjdF9uZXdfZGlyKTsNCisJ ZWxzZQ0KKwkJY29weV9zdWJkaXJfZmlsZXMoeGFjdF9vbGRfZGlyLCB4YWN0X25ld19kaXIpOw0K IA0KIAlwcmVwX3N0YXR1cygiU2V0dGluZyBvbGRlc3QgWElEIGZvciBuZXcgY2x1c3RlciIpOw0K IAlleGVjX3Byb2coVVRJTElUWV9MT0dfRklMRSwgTlVMTCwgdHJ1ZSwgdHJ1ZSwNCkBAIC03MDIs NyArNzExLDggQEAgY29weV94YWN0X3hsb2dfeGlkKHZvaWQpDQogCSAqIHNlcnZlciBkb2Vzbid0 IGF0dGVtcHQgdG8gcmVhZCBtdWx0aXMgb2xkZXIgdGhhbiB0aGUgY3V0b2ZmIHZhbHVlLg0KIAkg Ki8NCiAJaWYgKG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNhdF92ZXIgPj0gTVVMVElYQUNUX0ZP Uk1BVENIQU5HRV9DQVRfVkVSICYmDQotCQluZXdfY2x1c3Rlci5jb250cm9sZGF0YS5jYXRfdmVy ID49IE1VTFRJWEFDVF9GT1JNQVRDSEFOR0VfQ0FUX1ZFUikNCisJCW5ld19jbHVzdGVyLmNvbnRy b2xkYXRhLmNhdF92ZXIgPj0gTVVMVElYQUNUX0ZPUk1BVENIQU5HRV9DQVRfVkVSICYmDQorCQkh c2xydV9oZWFkZXJfY2hhbmdlZCkNCiAJew0KIAkJY29weV9zdWJkaXJfZmlsZXMoInBnX211bHRp eGFjdC9vZmZzZXRzIiwgInBnX211bHRpeGFjdC9vZmZzZXRzIik7DQogCQljb3B5X3N1YmRpcl9m aWxlcygicGdfbXVsdGl4YWN0L21lbWJlcnMiLCAicGdfbXVsdGl4YWN0L21lbWJlcnMiKTsNCkBA IC03MjIsNyArNzMyLDggQEAgY29weV94YWN0X3hsb2dfeGlkKHZvaWQpDQogCQkJCSAgbmV3X2Ns dXN0ZXIucGdkYXRhKTsNCiAJCWNoZWNrX29rKCk7DQogCX0NCi0JZWxzZSBpZiAobmV3X2NsdXN0 ZXIuY29udHJvbGRhdGEuY2F0X3ZlciA+PSBNVUxUSVhBQ1RfRk9STUFUQ0hBTkdFX0NBVF9WRVIp DQorCWVsc2UgaWYgKG5ld19jbHVzdGVyLmNvbnRyb2xkYXRhLmNhdF92ZXIgPj0gTVVMVElYQUNU X0ZPUk1BVENIQU5HRV9DQVRfVkVSIHx8DQorCQkJIHNscnVfaGVhZGVyX2NoYW5nZWQpDQogCXsN CiAJCS8qDQogCQkgKiBSZW1vdmUgb2Zmc2V0cy8wMDAwIGZpbGUgY3JlYXRlZCBieSBpbml0ZGIg dGhhdCBubyBsb25nZXIgbWF0Y2hlcw0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9w Z191cGdyYWRlLmggYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oDQppbmRleCBkNjNm MTNmZmZjLi5jOTU1ZTkwM2E1IDEwMDY0NA0KLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3Vw Z3JhZGUuaA0KKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaA0KQEAgLTExNSw2 ICsxMTUsMTEgQEAgZXh0ZXJuIGNoYXIgKm91dHB1dF9maWxlc1tdOw0KICAqLw0KICNkZWZpbmUg TVVMVElYQUNUX0ZPUk1BVENIQU5HRV9DQVRfVkVSIDIwMTMwMTIzMQ0KIA0KKy8qDQorICogQSBw YWdlIGhlYWRlciB3YXMgYWRkZWQgdG8gZWFjaCBTTFJVIHBhZ2UgaW4gMTcuMC4NCisgKi8NCisj ZGVmaW5lIFNMUlVfUEFHRV9IRUFERVJfQ0FUX1ZFUiAyMDIzMTIwOTENCisNCiAvKg0KICAqIGxh cmdlIG9iamVjdCBjaHVuayBzaXplIGFkZGVkIHRvIHBnX2NvbnRyb2xkYXRhLA0KICAqIGNvbW1p dCA1ZjkzYzM3ODA1ZTc0ODU0ODg0ODA5MTZiNDU4NWUwOThkM2NjODgzDQpAQCAtNDA2LDYgKzQx MSw3IEBAIHZvaWQJCXJld3JpdGVWaXNpYmlsaXR5TWFwKGNvbnN0IGNoYXIgKmZyb21maWxlLCBj b25zdCBjaGFyICp0b2ZpbGUsDQogCQkJCQkJCQkgY29uc3QgY2hhciAqc2NoZW1hTmFtZSwgY29u c3QgY2hhciAqcmVsTmFtZSk7DQogdm9pZAkJY2hlY2tfZmlsZV9jbG9uZSh2b2lkKTsNCiB2b2lk CQljaGVja19oYXJkX2xpbmsodm9pZCk7DQordm9pZAkJdXBncmFkZV94YWN0X2NhY2hlKGNvbnN0 IGNoYXIgKnNyY19zdWJkaXIsIGNvbnN0IGNoYXIgKmRzdF9zdWJkaXIpOw0KIA0KIC8qIGZvcGVu X3ByaXYoKSBpcyBubyBsb25nZXIgZGlmZmVyZW50IGZyb20gZm9wZW4oKSAqLw0KICNkZWZpbmUg Zm9wZW5fcHJpdihwYXRoLCBtb2RlKQlmb3BlbihwYXRoLCBtb2RlKQ0KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc2xydS5oDQppbmRl eCAwOTFlMjIwMmM5Li4yNDczMzE2NmI4IDEwMDY0NA0KLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNz L3NscnUuaA0KKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3NscnUuaA0KQEAgLTY4LDE3ICs2OCw2 IEBAIHR5cGVkZWYgc3RydWN0IFNscnVTaGFyZWREYXRhDQogCWludAkJICAgKnBhZ2VfbHJ1X2Nv dW50Ow0KIAlMV0xvY2tQYWRkZWQgKmJ1ZmZlcl9sb2NrczsNCiANCi0JLyoNCi0JICogT3B0aW9u YWwgYXJyYXkgb2YgV0FMIGZsdXNoIExTTnMgYXNzb2NpYXRlZCB3aXRoIGVudHJpZXMgaW4gdGhl IFNMUlUNCi0JICogcGFnZXMuICBJZiBub3QgemVyby9OVUxMLCB3ZSBtdXN0IGZsdXNoIFdBTCBi ZWZvcmUgd3JpdGluZyBwYWdlcyAodHJ1ZQ0KLQkgKiBmb3IgcGdfeGFjdCwgZmFsc2UgZm9yIG11 bHRpeGFjdCwgcGdfc3VidHJhbnMsIHBnX25vdGlmeSkuICBncm91cF9sc25bXQ0KLQkgKiBoYXMg bHNuX2dyb3Vwc19wZXJfcGFnZSBlbnRyaWVzIHBlciBidWZmZXIgc2xvdCwgZWFjaCBjb250YWlu aW5nIHRoZQ0KLQkgKiBoaWdoZXN0IExTTiBrbm93biBmb3IgYSBjb250aWd1b3VzIGdyb3VwIG9m IFNMUlUgZW50cmllcyBvbiB0aGF0IHNsb3Qncw0KLQkgKiBwYWdlLg0KLQkgKi8NCi0JWExvZ1Jl Y1B0ciAqZ3JvdXBfbHNuOw0KLQlpbnQJCQlsc25fZ3JvdXBzX3Blcl9wYWdlOw0KLQ0KIAkvKi0t LS0tLS0tLS0NCiAJICogV2UgbWFyayBhIHBhZ2UgIm1vc3QgcmVjZW50bHkgdXNlZCIgYnkgc2V0 dGluZw0KIAkgKgkJcGFnZV9scnVfY291bnRbc2xvdG5vXSA9ICsrY3VyX2xydV9jb3VudDsNCkBA IC0xNDcsOCArMTM2LDggQEAgdHlwZWRlZiBzdHJ1Y3QgU2xydUN0bERhdGENCiB0eXBlZGVmIFNs cnVDdGxEYXRhICpTbHJ1Q3RsOw0KIA0KIA0KLWV4dGVybiBTaXplIFNpbXBsZUxydVNobWVtU2l6 ZShpbnQgbnNsb3RzLCBpbnQgbmxzbnMpOw0KLWV4dGVybiB2b2lkIFNpbXBsZUxydUluaXQoU2xy dUN0bCBjdGwsIGNvbnN0IGNoYXIgKm5hbWUsIGludCBuc2xvdHMsIGludCBubHNucywNCitleHRl cm4gU2l6ZSBTaW1wbGVMcnVTaG1lbVNpemUoaW50IG5zbG90cyk7DQorZXh0ZXJuIHZvaWQgU2lt cGxlTHJ1SW5pdChTbHJ1Q3RsIGN0bCwgY29uc3QgY2hhciAqbmFtZSwgaW50IG5zbG90cywNCiAJ CQkJCQkgIExXTG9jayAqY3RsbG9jaywgY29uc3QgY2hhciAqc3ViZGlyLCBpbnQgdHJhbmNoZV9p ZCwNCiAJCQkJCQkgIFN5bmNSZXF1ZXN0SGFuZGxlciBzeW5jX2hhbmRsZXIsDQogCQkJCQkJICBi b29sIGxvbmdfc2VnbWVudF9uYW1lcyk7DQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9jYXR2ZXJzaW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdHZlcnNpb24uaA0KaW5kZXgg YjNmZGJkOTA2Ni4uYmU0YjhlMWM3ZSAxMDA2NDQNCi0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv Y2F0dmVyc2lvbi5oDQorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdHZlcnNpb24uaA0KQEAg LTU3LDYgKzU3LDYgQEANCiAgKi8NCiANCiAvKgkJCQkJCQl5eXl5bW1kZE4gKi8NCi0jZGVmaW5l IENBVEFMT0dfVkVSU0lPTl9OTwkyMDI0MDEwMjENCisjZGVmaW5lIENBVEFMT0dfVkVSU0lPTl9O TwkyMDI0MDEwMzENCiANCiAjZW5kaWYNCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdl L2J1ZnBhZ2UuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvYnVmcGFnZS5oDQppbmRleCA0MjRlY2Jh MDI4Li4yNTFkOTUyM2ZhIDEwMDY0NA0KLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9idWZwYWdl LmgNCisrKyBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvYnVmcGFnZS5oDQpAQCAtMjAxLDYgKzIwMSw3 IEBAIHR5cGVkZWYgUGFnZUhlYWRlckRhdGEgKlBhZ2VIZWFkZXI7DQogICogaGFuZGxpbmcgcGFn ZXMuDQogICovDQogI2RlZmluZSBQR19QQUdFX0xBWU9VVF9WRVJTSU9OCQk0DQorI2RlZmluZSBQ R19TTFJVX1BBR0VfTEFZT1VUX1ZFUlNJT04JMQ0KICNkZWZpbmUgUEdfREFUQV9DSEVDS1NVTV9W RVJTSU9OCTENCiANCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpAQCAtMjU3LDYgKzI1OCwxMSBAQCBQYWdlR2V0Q29u dGVudHMoUGFnZSBwYWdlKQ0KIAlyZXR1cm4gKGNoYXIgKikgcGFnZSArIE1BWEFMSUdOKFNpemVP ZlBhZ2VIZWFkZXJEYXRhKTsNCiB9DQogDQorLyoNCisgKiBTcGFjZSBhdmFpbGFibGUgZm9yIHN0 b3JpbmcgcGFnZSBjb250ZW50cy4NCisgKi8NCisjZGVmaW5lIFNpemVPZlBhZ2VDb250ZW50cwko QkxDS1NaIC0gTUFYQUxJR04oU2l6ZU9mUGFnZUhlYWRlckRhdGEpKQ0KKw0KIC8qIC0tLS0tLS0t LS0tLS0tLS0NCiAgKgkJZnVuY3Rpb25zIHRvIGFjY2VzcyBwYWdlIHNpemUgaW5mbw0KICAqIC0t LS0tLS0tLS0tLS0tLS0NCkBAIC00ODYsNiArNDkyLDcgQEAgU3RhdGljQXNzZXJ0RGVjbChCTENL U1ogPT0gKChCTENLU1ogLyBzaXplb2Yoc2l6ZV90KSkgKiBzaXplb2Yoc2l6ZV90KSksDQogCQkJ CSAiQkxDS1NaIGhhcyB0byBiZSBhIG11bHRpcGxlIG9mIHNpemVvZihzaXplX3QpIik7DQogDQog ZXh0ZXJuIHZvaWQgUGFnZUluaXQoUGFnZSBwYWdlLCBTaXplIHBhZ2VTaXplLCBTaXplIHNwZWNp YWxTaXplKTsNCitleHRlcm4gdm9pZCBQYWdlSW5pdFNMUlUoUGFnZSBwYWdlLCBTaXplIHBhZ2VT aXplLCBTaXplIHNwZWNpYWxTaXplKTsNCiBleHRlcm4gYm9vbCBQYWdlSXNWZXJpZmllZEV4dGVu ZGVkKFBhZ2UgcGFnZSwgQmxvY2tOdW1iZXIgYmxrbm8sIGludCBmbGFncyk7DQogZXh0ZXJuIE9m ZnNldE51bWJlciBQYWdlQWRkSXRlbUV4dGVuZGVkKFBhZ2UgcGFnZSwgSXRlbSBpdGVtLCBTaXpl IHNpemUsDQogCQkJCQkJCQkJCU9mZnNldE51bWJlciBvZmZzZXROdW1iZXIsIGludCBmbGFncyk7 DQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3NscnUvdGVzdF9zbHJ1LmMgYi9z cmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90ZXN0X3NscnUuYw0KaW5kZXggZDBmYjk0NDRlOC4u YWE4YTI5ZDkyZSAxMDA2NDQNCi0tLSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9zbHJ1L3Rlc3Rf c2xydS5jDQorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90ZXN0X3NscnUuYw0KQEAg LTE3LDYgKzE3LDcgQEANCiAjaW5jbHVkZSAiYWNjZXNzL3NscnUuaCINCiAjaW5jbHVkZSAiYWNj ZXNzL3RyYW5zYW0uaCINCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiDQorI2luY2x1ZGUgInN0b3Jh Z2UvYnVmcGFnZS5oIg0KICNpbmNsdWRlICJzdG9yYWdlL2ZkLmgiDQogI2luY2x1ZGUgInN0b3Jh Z2UvaXBjLmgiDQogI2luY2x1ZGUgInN0b3JhZ2Uvc2htZW0uaCINCkBAIC03Niw4ICs3Nyw4IEBA IHRlc3Rfc2xydV9wYWdlX3dyaXRlKFBHX0ZVTkNUSU9OX0FSR1MpDQogCVRlc3RTbHJ1Q3RsLT5z aGFyZWQtPnBhZ2Vfc3RhdHVzW3Nsb3Rub10gPSBTTFJVX1BBR0VfVkFMSUQ7DQogDQogCS8qIHdy aXRlIGdpdmVuIGRhdGEgdG8gdGhlIHBhZ2UsIHVwIHRvIHRoZSBsaW1pdCBvZiB0aGUgcGFnZSAq Lw0KLQlzdHJuY3B5KFRlc3RTbHJ1Q3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10sIGRh dGEsDQotCQkJQkxDS1NaIC0gMSk7DQorCXN0cm5jcHkoUGFnZUdldENvbnRlbnRzKFRlc3RTbHJ1 Q3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10pLCBkYXRhLA0KKwkJCVNpemVPZlBhZ2VD b250ZW50cyAtIDEpOw0KIA0KIAlTaW1wbGVMcnVXcml0ZVBhZ2UoVGVzdFNscnVDdGwsIHNsb3Ru byk7DQogCUxXTG9ja1JlbGVhc2UoVGVzdFNMUlVMb2NrKTsNCkBAIC0xMDQsNyArMTA1LDcgQEAg dGVzdF9zbHJ1X3BhZ2VfcmVhZChQR19GVU5DVElPTl9BUkdTKQ0KIAlMV0xvY2tBY3F1aXJlKFRl c3RTTFJVTG9jaywgTFdfRVhDTFVTSVZFKTsNCiAJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2Uo VGVzdFNscnVDdGwsIHBhZ2VubywNCiAJCQkJCQkJICAgd3JpdGVfb2ssIEludmFsaWRUcmFuc2Fj dGlvbklkKTsNCi0JZGF0YSA9IChjaGFyICopIFRlc3RTbHJ1Q3RsLT5zaGFyZWQtPnBhZ2VfYnVm ZmVyW3Nsb3Rub107DQorCWRhdGEgPSAoY2hhciAqKSBQYWdlR2V0Q29udGVudHMoVGVzdFNscnVD dGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXSk7DQogCUxXTG9ja1JlbGVhc2UoVGVzdFNM UlVMb2NrKTsNCiANCiAJUEdfUkVUVVJOX1RFWFRfUChjc3RyaW5nX3RvX3RleHQoZGF0YSkpOw0K QEAgLTEyMiw3ICsxMjMsNyBAQCB0ZXN0X3NscnVfcGFnZV9yZWFkb25seShQR19GVU5DVElPTl9B UkdTKQ0KIAkJCQkJCQkJCQlwYWdlbm8sDQogCQkJCQkJCQkJCUludmFsaWRUcmFuc2FjdGlvbklk KTsNCiAJQXNzZXJ0KExXTG9ja0hlbGRCeU1lKFRlc3RTTFJVTG9jaykpOw0KLQlkYXRhID0gKGNo YXIgKikgVGVzdFNscnVDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXTsNCisJZGF0YSA9 IChjaGFyICopIFBhZ2VHZXRDb250ZW50cyhUZXN0U2xydUN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZl cltzbG90bm9dKTsNCiAJTFdMb2NrUmVsZWFzZShUZXN0U0xSVUxvY2spOw0KIA0KIAlQR19SRVRV Uk5fVEVYVF9QKGNzdHJpbmdfdG9fdGV4dChkYXRhKSk7DQpAQCAtMjAyLDcgKzIwMyw3IEBAIHRl c3Rfc2xydV9zaG1lbV9yZXF1ZXN0KHZvaWQpDQogCQlwcmV2X3NobWVtX3JlcXVlc3RfaG9vaygp Ow0KIA0KIAkvKiByZXNlcnZlIHNoYXJlZCBtZW1vcnkgZm9yIHRoZSB0ZXN0IFNMUlUgKi8NCi0J UmVxdWVzdEFkZGluU2htZW1TcGFjZShTaW1wbGVMcnVTaG1lbVNpemUoTlVNX1RFU1RfQlVGRkVS UywgMCkpOw0KKwlSZXF1ZXN0QWRkaW5TaG1lbVNwYWNlKFNpbXBsZUxydVNobWVtU2l6ZShOVU1f VEVTVF9CVUZGRVJTKSk7DQogfQ0KIA0KIHN0YXRpYyBib29sDQpAQCAtMjM4LDcgKzIzOSw3IEBA IHRlc3Rfc2xydV9zaG1lbV9zdGFydHVwKHZvaWQpDQogDQogCVRlc3RTbHJ1Q3RsLT5QYWdlUHJl Y2VkZXMgPSB0ZXN0X3NscnVfcGFnZV9wcmVjZWRlc19sb2dpY2FsbHk7DQogCVNpbXBsZUxydUlu aXQoVGVzdFNscnVDdGwsICJUZXN0U0xSVSIsDQotCQkJCSAgTlVNX1RFU1RfQlVGRkVSUywgMCwg VGVzdFNMUlVMb2NrLCBzbHJ1X2Rpcl9uYW1lLA0KKwkJCQkgIE5VTV9URVNUX0JVRkZFUlMsIFRl c3RTTFJVTG9jaywgc2xydV9kaXJfbmFtZSwNCiAJCQkJICB0ZXN0X3RyYW5jaGVfaWQsIFNZTkNf SEFORExFUl9OT05FLCBsb25nX3NlZ21lbnRfbmFtZXMpOw0KIH0NCiANCg== --_002_359BB3DCA17443AFA9BA064CB6D2C7E9ebaycom_--