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 1rhpyC-00Dc0w-A5 for pgsql-hackers@arkaria.postgresql.org; Wed, 06 Mar 2024 12:02:01 +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 1rhpyA-009WZn-Vt for pgsql-hackers@arkaria.postgresql.org; Wed, 06 Mar 2024 12:01:59 +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 1rhpyA-009WZf-Du for pgsql-hackers@lists.postgresql.org; Wed, 06 Mar 2024 12:01:59 +0000 Received: from esa.hc2186-20.iphmx.com ([68.232.157.143]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rhpy6-0034wR-SK for pgsql-hackers@lists.postgresql.org; Wed, 06 Mar 2024 12:01:58 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=ebay.com; i=@ebay.com; q=dns/txt; s=ebaycorp; t=1709726515; x=1741262515; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=E/R7vis9r47B+zG8tttjKh0g3I7H09yKgnYH42fZZw4=; b=XxUifRMDVZdUhkUpImtZ9y2kV21TCIhOp+pSKZlwr9za9bNUSTdeQHkd yE/WY8o3+5x8nwlp99deKfanOQOQxQpShmsfD2rvam/ieH7uAGxgKVfAQ rvR6ID68RMeYqz//uM8Oxa1l7zy/syJeKJvV4+bYGBXnUA9xxCLaVmOja E=; X-CSE-ConnectionGUID: ZAnaloOKRhqmdysXPkVa8w== X-CSE-MsgGUID: wPYav3kqQnaBs8xSZlwYsg== X-IronPort-RemoteIP: 163.116.128.168 X-IronPort-MID: 251883890 X-IronPort-Reputation: 3.7 X-IronPort-Listener: OutboundMail X-IronPort-SenderGroup: Netskope_to_CES_Outbound X-IronPort-MailFlowPolicy: $Netskope_to_CES_Outbound X-EBay-Corp: Yes X-IronPort-AV: E=Sophos;i="6.06,208,1705392000"; d="scan'208,217";a="251883890" Received: from unknown (HELO ebay.com) ([163.116.128.168]) by esa5.hc2186-20.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Mar 2024 04:01:52 -0800 X-CSE-ConnectionGUID: +m4uhxxjRTG9NPcfCupYew== X-CSE-MsgGUID: SpEXBre9TWeXURWiqHKa0w== X-ATOM: Processed_By_ATOM X-IronPort-Trust: True Received: from mail-co1nam11lp2169.outbound.protection.outlook.com (HELO NAM11-CO1-obe.outbound.protection.outlook.com) ([104.47.56.169]) by atom.corp.ebay.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Mar 2024 05:01:49 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C5AcQOsm2Va0VUKCdZjDXobxbOnr98c65Z+YmSXiI7MGcE64WMZcw1w65nDbwwPXuGwnDa4JDPL+euCiNF4k8h4qfT3uLiQKYeIlQvi9s3RQkUY4N5mYdEJbu+4B9if27HWzZnKxPl9qesCoxKH5KXv9dF1mpE0u4Bu3Ovs71ZWVTIx1qXFeB8a52ekE5ydVelqztwkqEvBDaIGuGPO3NvlKm08mX3ZjPRGkQM9Zr8uDmJn0lFqWg2ZGZh+EipltRdpLJB3dukeYm/OElRnFwgkDtEuSH+IdQvcMCsxzP6ErMb15la55FKEWYzmqkWJi392DasxoEB3pT4Hi6TkATg== 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=EDUylhucf8voWGz+tvhQfKNyLKXc8Tjk5ysyXjOZRJ4=; b=WCS21AWtYls+zr4nt0K3ligwFzvusL8wAZxABvSqQtBhp0BwuuRmyavsX576yqWORnNuJJxobiR656PsFLpmHl7m+m6d7Z3BVe4xuU/Zzgb3TPXnwssnr6uWkaR/KsA446vEXi0qJuTyEOJCQHb5A6ueM5RMT+4nYsnx16MUvG1R90KT/z93C6KEHx17eKPpR75uedpePdl896CeZlk9cF3JiEQTeu5Mw9g790O1A6ths+IcaCLN/BESCpTx0ecGjXbX/enWr/jRnhD3BgYkfIUXYuymyAFUglxWNQLZUxHCt+QFHoiCIRKF+scn5kG0V7RYcBRjRhnbBMkI4WI/aA== 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 SJ0PR07MB9124.namprd07.prod.outlook.com (2603:10b6:a03:3f9::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.24; Wed, 6 Mar 2024 12:01:47 +0000 Received: from IA1PR07MB9829.namprd07.prod.outlook.com ([fe80::6f42:c972:40e7:972a]) by IA1PR07MB9829.namprd07.prod.outlook.com ([fe80::6f42:c972:40e7:972a%7]) with mapi id 15.20.7339.035; Wed, 6 Mar 2024 12:01:47 +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+ZgIADbdMAgBJqvoCATsPuAA== Date: Wed, 6 Mar 2024 12:01:46 +0000 Message-ID: <4B689BA2-270F-4B26-AAA2-65BB17C03AC4@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> <359BB3DC-A174-43AF-A9BA-064CB6D2C7E9@ebay.com> <48CDC195-5030-4426-9E02-931D8AE14DF7@ebay.com> In-Reply-To: <48CDC195-5030-4426-9E02-931D8AE14DF7@ebay.com> 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_|SJ0PR07MB9124:EE_ x-ms-office365-filtering-correlation-id: e2ce6d85-bf71-4437-8d5a-08dc3dd532d4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Bbypp6hesBuDYEGJ0CZHvdccDkfX5jle2M1C4q4Tu/P5y5oUqmid7D7Tx3qutGyy2OOEWMLTZG3k97cnoEmusmncWJG7B2fIUYoFHj0L3IX+kxVis6JHA5p/3mOcA0FOAHjKtEc2dIiosUOrl25ePe79HhcJ78FtE6M6EL+K9yYhYv2fmlBN6C4JEC9AQO9TwGTrT7i3ESuFJgXWsrZ1mVHuF5yq7498rQIeRmnB3jEXz99sM7DgM8Id6RkznuF9A0/UHHMwf4pW7r5uoYgFMz/nRKIS3EdWaJRfsdHaulRfsxsm/pbloFvVVIyKVvyAdJOYK7AaiPTHoXm/0WgULmD1YjPGqIkecGlFBq77w5h0ADfYcELA3M6uR7CSYLH12q6bdimrzB5uJKelWfaaAfblPWmKvkoHKSdup6A6v7Cs5GyUO2DFTgp1aSYahz0kHhES2MRkkKQygj6lLIPLjh5qHaWzykGM0V9jwMp0512EWbDo/+Xac9xKO9drGpSxXuJ2OJWz39SeEOiHFVXz2o0YWVqGC6yI+uvvvTLedzLclQ1R+twBGfX9UEWND/lhGqkwDTF38tpV9jvazPyX0J4a5v+pDLGno3zeDOqt4lnPmW14X9KLSsqgUh6/Wl49+SOK80Hk41vJluv5FBLr+3VnyQ7+mVGRquptFUBJyy8cWvD16XCoLMwS2VtAlRgRTblKk4ZL2wgHbXBxCn/tkDB1GW/zDxBT5jUnLkadObV7nsZ00oNWvWdgx2GCJNTy 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)(376005)(38070700009)(3613699003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?P8N/Di/UwZSjKETbxhRV4T3k2ywK2UmJbxCNfxIf1+44Wb8IvMYMjYyfzNQi?= =?us-ascii?Q?klJotYFZKNfVvAhzWHgu/ZbagyTQYHSR9sGT98xpOAQpZkvRkLI5yFC/nr4Y?= =?us-ascii?Q?lKHVX7qnbZWjHHzvrI3jLdWJBqG4T4knDTSL2v7qTbDZO6Hu0jV87kivpJYk?= =?us-ascii?Q?nPUnOZ67MLyWiVMHRR8g+kDEsbncIlEEIuzMl7SFsV8a0QPpYSouwGFvKtKS?= =?us-ascii?Q?R42Slg88XTqTRzhn18S+00+3zdwIM7xTmGaUPMhaIsoIZWDtT6ElkL3dU97p?= =?us-ascii?Q?t9LSSzRIn45tIhMquUSdwTnziFeX1QvZaUhY9omU8vEjAZ5tXva2/f7+8m/n?= =?us-ascii?Q?eWTQDWeY39nuIGvQazL70Jm+4cpcdGdIG1bbId//tGFebhvE58bZ8MCwCHct?= =?us-ascii?Q?SkEv0uBFKKuTGvSyUo4ZdirsFvAM5uw4FKyh9WfmhVte+G74cRsURJy1uzqM?= =?us-ascii?Q?ynyC8d2VL5FgW2cXFdLGyV2NODRqCfUffXFtHxHo36hCC+DQ0hbpVKx9LJpX?= =?us-ascii?Q?+WNqmo/kGLMahAbOGE9sjNCsznSL6JFd+h07ap4C6GxnZReFejTYYew/6VJs?= =?us-ascii?Q?XU8ETa3nxIHFm4RDcQkEZy2GTf6rshZujDKnYNEJ9ma0fyK8rFFynRk7gWL0?= =?us-ascii?Q?uYRkWjIDeO0+wJM+i5RpJTVoKIPEerczncSsuPG0RZn5v39M5izT2mYO+gi9?= =?us-ascii?Q?oLxVy4FGK68q8Lfyfx9+/z1MnMDWgvOful6NRkHXRjhXx7tCeTRpm6SIHJBo?= =?us-ascii?Q?l1f4GU4K99Qrk9lqEZDlV7rwgJ+MUpr/thI2TurwGYth6iUH6+SFwKODgP6o?= =?us-ascii?Q?k0ElJVlfSC+VdNBneOKJ4JslL9OOg9RwgI8suOljZ3jdPY6Bn6hXPo98mQmy?= =?us-ascii?Q?kDdrY0Y5i8Vu+mpFbGHmtgQYsbe2+GUINMOgATOBaTfkHcRZUoKwYCdiBp+Z?= =?us-ascii?Q?ae74h7dAoQxY+kd8ook2HwHhLMkqQk6ioKfFKI1KY0Qy1UiwW9ZO7O06AyDj?= =?us-ascii?Q?/JgXUT7w6ilhvYmyh9Q3Qxco6MOcn3VWYOXNfA9UGDNkjJ2RE4hI0VDalsk0?= =?us-ascii?Q?CatNLqdRdInAEgct25lyeQuCxzQb0H6ObClTiZTnzdSUu/osz5nq8KJ5gics?= =?us-ascii?Q?U6gs3aZimt18i2LkN5VEBNmCKo7X1KUBN4YrrmPz2AGqG3YLj8GKkNsS1S1o?= =?us-ascii?Q?IVxaZzapU+wNcJCEZNnBmfuAJaKeTxYeOuG1ChhUOKnR2GgpEkBDgDmfIizd?= =?us-ascii?Q?u26pVe66SW0Wz6Q6vMJ2gmW6Bc9qrQ3J8Vf8DCAfnrv0acuZHfxCUfmymOHs?= =?us-ascii?Q?uFD6nt6Lf73wJvIwrGZh5WhJrt2CV9rIQDoMbU0d1q3wJ4GlepOwrtdK+iFx?= =?us-ascii?Q?KSi1cjz+5hNeMBBAa7c2fXQmuoe1vmZglm0wwJbCn0ej1YMNkQidjoiuoNPO?= =?us-ascii?Q?O5u7/pHxrgqZ8Ez9ihE8ILVqCoO4oM8TfK4PYhQJ12SAZwfgzPMU3RluAhG0?= =?us-ascii?Q?B6jzVM+YhneP4mhh/Gk+yIMcaZL4mpKTsH9yxbqmDUV1EbMC4SFY/kI0S5gI?= =?us-ascii?Q?juHuLLwxl9YZPDgoWIxTujLYUg5jA2zDRh3UgmUG?= Content-Type: multipart/mixed; boundary="_004_4B689BA2270F4B26AAA265BB17C03AC4ebaycom_" 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: e2ce6d85-bf71-4437-8d5a-08dc3dd532d4 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Mar 2024 12:01:46.9788 (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: 6LeqwM7zVWGEIjQrIdobm+N13lAHoxqV9YKpbenWVx8oUYMaOUrjiaRYN8b3f7zQ X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR07MB9124 x-netskope-inspected: true List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_4B689BA2270F4B26AAA265BB17C03AC4ebaycom_ Content-Type: multipart/alternative; boundary="_000_4B689BA2270F4B26AAA265BB17C03AC4ebaycom_" --_000_4B689BA2270F4B26AAA265BB17C03AC4ebaycom_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Rebase the patch against the latest HEAD. Regards, Yong --_000_4B689BA2270F4B26AAA265BB17C03AC4ebaycom_ Content-Type: text/html; charset="us-ascii" Content-ID: Content-Transfer-Encoding: quoted-printable
Rebase the patch against the latest HEAD.

Regards,
Yong



--_000_4B689BA2270F4B26AAA265BB17C03AC4ebaycom_-- --_004_4B689BA2270F4B26AAA265BB17C03AC4ebaycom_ Content-Type: application/octet-stream; name="slru_page_header_v5.patch" Content-Description: slru_page_header_v5.patch Content-Disposition: attachment; filename="slru_page_header_v5.patch"; size=56734; creation-date="Wed, 06 Mar 2024 12:01:46 GMT"; modification-date="Wed, 06 Mar 2024 12:01:46 GMT" Content-ID: <1DBA50E02327CC44985BD72DE3C5A11E@namprd07.prod.outlook.com> Content-Transfer-Encoding: base64 IHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYyAgICAgIHwgIDUyICsrKysrLS0tLS0N CiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jb21taXRfdHMuYyB8ICAyNiArKystLQ0KIHNy Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jIHwgIDYzICsrKysrKystLS0tLQ0K IHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUuYyAgICAgIHwgMTEyICsrKysrKystLS0t LS0tLS0tLS0tLQ0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMgIHwgIDEy ICstLQ0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMgICAgICAgICAgIHwgIDI3ICsrKy0t LQ0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcmVkaWNhdGUuYyAgIHwgIDE2ICstLQ0KIHNy Yy9iYWNrZW5kL3N0b3JhZ2UvcGFnZS9idWZwYWdlLmMgICAgIHwgIDI1ICsrKysrDQogc3JjL2Jp bi9wZ19jaGVja3N1bXMvcGdfY2hlY2tzdW1zLmMgICAgfCAgIDkgKysNCiBzcmMvYmluL3BnX3Jl c2V0d2FsL3QvMDAxX2Jhc2ljLnBsICAgICB8ICAgNiArLQ0KIHNyYy9iaW4vcGdfdXBncmFkZS9m aWxlLmMgICAgICAgICAgICAgIHwgMTcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kw0KIHNyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMgICAgICAgIHwgIDIzICsrKy0tDQog c3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaCAgICAgICAgfCAgIDYgKysNCiBzcmMvaW5j bHVkZS9hY2Nlc3Mvc2xydS5oICAgICAgICAgICAgICB8ICAxNSArLS0NCiBzcmMvaW5jbHVkZS9j YXRhbG9nL2NhdHZlcnNpb24uaCAgICAgICB8ICAgMiArLQ0KIHNyYy9pbmNsdWRlL3N0b3JhZ2Uv YnVmcGFnZS5oICAgICAgICAgIHwgICA3ICsrDQogc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3NscnUv dGVzdF9zbHJ1LmMgfCAgMTMgKy0tDQogMTcgZmlsZXMgY2hhbmdlZCwgMzk1IGluc2VydGlvbnMo KyksIDE5MSBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL2Nsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYw0KaW5kZXgg NDRjMjUzMjQ2Yi4uNGVkNGM4MmYwNSAxMDA2NDQNCi0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL2Nsb2cuYw0KKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xvZy5jDQpA QCAtNDIsNiArNDIsNyBAQA0KICNpbmNsdWRlICJtaXNjYWRtaW4uaCINCiAjaW5jbHVkZSAicGdf dHJhY2UuaCINCiAjaW5jbHVkZSAicGdzdGF0LmgiDQorI2luY2x1ZGUgInN0b3JhZ2UvYnVmcGFn ZS5oIg0KICNpbmNsdWRlICJzdG9yYWdlL3Byb2MuaCINCiAjaW5jbHVkZSAic3RvcmFnZS9zeW5j LmgiDQogI2luY2x1ZGUgInV0aWxzL2d1Y19ob29rcy5oIg0KQEAgLTYxLDcgKzYyLDcgQEANCiAv KiBXZSBuZWVkIHR3byBiaXRzIHBlciB4YWN0LCBzbyBmb3VyIHhhY3RzIGZpdCBpbiBhIGJ5dGUg Ki8NCiAjZGVmaW5lIENMT0dfQklUU19QRVJfWEFDVAkyDQogI2RlZmluZSBDTE9HX1hBQ1RTX1BF Ul9CWVRFIDQNCi0jZGVmaW5lIENMT0dfWEFDVFNfUEVSX1BBR0UgKEJMQ0tTWiAqIENMT0dfWEFD VFNfUEVSX0JZVEUpDQorI2RlZmluZSBDTE9HX1hBQ1RTX1BFUl9QQUdFIChTaXplT2ZQYWdlQ29u dGVudHMgKiBDTE9HX1hBQ1RTX1BFUl9CWVRFKQ0KICNkZWZpbmUgQ0xPR19YQUNUX0JJVE1BU0sJ KCgxIDw8IENMT0dfQklUU19QRVJfWEFDVCkgLSAxKQ0KIA0KIC8qDQpAQCAtODgsMTMgKzg5LDYg QEAgVHJhbnNhY3Rpb25JZFRvUGFnZShUcmFuc2FjdGlvbklkIHhpZCkNCiAjZGVmaW5lIFRyYW5z YWN0aW9uSWRUb0J5dGUoeGlkKQkoVHJhbnNhY3Rpb25JZFRvUGdJbmRleCh4aWQpIC8gQ0xPR19Y QUNUU19QRVJfQllURSkNCiAjZGVmaW5lIFRyYW5zYWN0aW9uSWRUb0JJbmRleCh4aWQpCSgoeGlk KSAlIChUcmFuc2FjdGlvbklkKSBDTE9HX1hBQ1RTX1BFUl9CWVRFKQ0KIA0KLS8qIFdlIHN0b3Jl IHRoZSBsYXRlc3QgYXN5bmMgTFNOIGZvciBlYWNoIGdyb3VwIG9mIHRyYW5zYWN0aW9ucyAqLw0K LSNkZWZpbmUgQ0xPR19YQUNUU19QRVJfTFNOX0dST1VQCTMyCS8qIGtlZXAgdGhpcyBhIHBvd2Vy IG9mIDIgKi8NCi0jZGVmaW5lIENMT0dfTFNOU19QRVJfUEFHRQkoQ0xPR19YQUNUU19QRVJfUEFH RSAvIENMT0dfWEFDVFNfUEVSX0xTTl9HUk9VUCkNCi0NCi0jZGVmaW5lIEdldExTTkluZGV4KHNs b3RubywgeGlkKQkoKHNsb3RubykgKiBDTE9HX0xTTlNfUEVSX1BBR0UgKyBcDQotCSgoeGlkKSAl IChUcmFuc2FjdGlvbklkKSBDTE9HX1hBQ1RTX1BFUl9QQUdFKSAvIENMT0dfWEFDVFNfUEVSX0xT Tl9HUk9VUCkNCi0NCiAvKg0KICAqIFRoZSBudW1iZXIgb2Ygc3VidHJhbnNhY3Rpb25zIGJlbG93 IHdoaWNoIHdlIGNvbnNpZGVyIHRvIGFwcGx5IGNsb2cgZ3JvdXANCiAgKiB1cGRhdGUgb3B0aW1p emF0aW9uLiAgVGVzdGluZyByZXZlYWxzIHRoYXQgdGhlIG51bWJlciBoaWdoZXIgdGhhbiB0aGlz IGNhbg0KQEAgLTExMiw3ICsxMDYsNyBAQCBzdGF0aWMgU2xydUN0bERhdGEgWGFjdEN0bERhdGE7 DQogDQogc3RhdGljIGludAlaZXJvQ0xPR1BhZ2UoaW50NjQgcGFnZW5vLCBib29sIHdyaXRlWGxv Zyk7DQogc3RhdGljIGJvb2wgQ0xPR1BhZ2VQcmVjZWRlcyhpbnQ2NCBwYWdlMSwgaW50NjQgcGFn ZTIpOw0KLXN0YXRpYyB2b2lkIFdyaXRlWmVyb1BhZ2VYbG9nUmVjKGludDY0IHBhZ2Vubyk7DQor c3RhdGljIFhMb2dSZWNQdHIgV3JpdGVaZXJvUGFnZVhsb2dSZWMoaW50NjQgcGFnZW5vKTsNCiBz dGF0aWMgdm9pZCBXcml0ZVRydW5jYXRlWGxvZ1JlYyhpbnQ2NCBwYWdlbm8sIFRyYW5zYWN0aW9u SWQgb2xkZXN0WGFjdCwNCiAJCQkJCQkJCSBPaWQgb2xkZXN0WGFjdERiKTsNCiBzdGF0aWMgdm9p ZCBUcmFuc2FjdGlvbklkU2V0UGFnZVN0YXR1cyhUcmFuc2FjdGlvbklkIHhpZCwgaW50IG5zdWJ4 aWRzLA0KQEAgLTY3MCw4ICs2NjQsOSBAQCBUcmFuc2FjdGlvbklkU2V0U3RhdHVzQml0KFRyYW5z YWN0aW9uSWQgeGlkLCBYaWRTdGF0dXMgc3RhdHVzLCBYTG9nUmVjUHRyIGxzbiwgaQ0KIAlBc3Nl cnQoTFdMb2NrSGVsZEJ5TWVJbk1vZGUoU2ltcGxlTHJ1R2V0QmFua0xvY2soWGFjdEN0bCwNCiAJ CQkJCQkJCQkJCQkJIFhhY3RDdGwtPnNoYXJlZC0+cGFnZV9udW1iZXJbc2xvdG5vXSksDQogCQkJ CQkJCQlMV19FWENMVVNJVkUpKTsNCisJUGFnZSAgICAgICAgcGFnZSA9IFhhY3RDdGwtPnNoYXJl ZC0+cGFnZV9idWZmZXJbc2xvdG5vXTsNCiANCi0JYnl0ZXB0ciA9IFhhY3RDdGwtPnNoYXJlZC0+ cGFnZV9idWZmZXJbc2xvdG5vXSArIGJ5dGVubzsNCisJYnl0ZXB0ciA9IFBhZ2VHZXRDb250ZW50 cyhwYWdlKSArIGJ5dGVubzsNCiAJY3VydmFsID0gKCpieXRlcHRyID4+IGJzaGlmdCkgJiBDTE9H X1hBQ1RfQklUTUFTSzsNCiANCiAJLyoNCkBAIC03MDAsNyArNjk1LDcgQEAgVHJhbnNhY3Rpb25J ZFNldFN0YXR1c0JpdChUcmFuc2FjdGlvbklkIHhpZCwgWGlkU3RhdHVzIHN0YXR1cywgWExvZ1Jl Y1B0ciBsc24sIGkNCiAJKmJ5dGVwdHIgPSBieXRldmFsOw0KIA0KIAkvKg0KLQkgKiBVcGRhdGUg dGhlIGdyb3VwIExTTiBpZiB0aGUgdHJhbnNhY3Rpb24gY29tcGxldGlvbiBMU04gaXMgaGlnaGVy Lg0KKwkgKiBVcGRhdGUgdGhlIHBhZ2UgTFNOIGlmIHRoZSB0cmFuc2FjdGlvbiBjb21wbGV0aW9u IExTTiBpcyBoaWdoZXIuDQogCSAqDQogCSAqIE5vdGU6IGxzbiB3aWxsIGJlIGludmFsaWQgd2hl biBzdXBwbGllZCBkdXJpbmcgSW5SZWNvdmVyeSBwcm9jZXNzaW5nLA0KIAkgKiBzbyB3ZSBkb24n dCBuZWVkIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwgdG8gYXZvaWQgTFNOIHVwZGF0ZXMgZHVyaW5n DQpAQCAtNzA5LDEwICs3MDQsOCBAQCBUcmFuc2FjdGlvbklkU2V0U3RhdHVzQml0KFRyYW5zYWN0 aW9uSWQgeGlkLCBYaWRTdGF0dXMgc3RhdHVzLCBYTG9nUmVjUHRyIGxzbiwgaQ0KIAkgKi8NCiAJ aWYgKCFYTG9nUmVjUHRySXNJbnZhbGlkKGxzbikpDQogCXsNCi0JCWludAkJCWxzbmluZGV4ID0g R2V0TFNOSW5kZXgoc2xvdG5vLCB4aWQpOw0KLQ0KLQkJaWYgKFhhY3RDdGwtPnNoYXJlZC0+Z3Jv dXBfbHNuW2xzbmluZGV4XSA8IGxzbikNCi0JCQlYYWN0Q3RsLT5zaGFyZWQtPmdyb3VwX2xzblts c25pbmRleF0gPSBsc247DQorCQlpZiAoUGFnZUdldExTTihwYWdlKSA8IGxzbikNCisJCQlQYWdl U2V0TFNOKHBhZ2UsIGxzbik7DQogCX0NCiB9DQogDQpAQCAtNzM4LDE5ICs3MzEsMTkgQEAgVHJh bnNhY3Rpb25JZEdldFN0YXR1cyhUcmFuc2FjdGlvbklkIHhpZCwgWExvZ1JlY1B0ciAqbHNuKQ0K IAlpbnQJCQlieXRlbm8gPSBUcmFuc2FjdGlvbklkVG9CeXRlKHhpZCk7DQogCWludAkJCWJzaGlm dCA9IFRyYW5zYWN0aW9uSWRUb0JJbmRleCh4aWQpICogQ0xPR19CSVRTX1BFUl9YQUNUOw0KIAlp bnQJCQlzbG90bm87DQotCWludAkJCWxzbmluZGV4Ow0KKwlQYWdlICAgICAgICBwYWdlOw0KIAlj aGFyCSAgICpieXRlcHRyOw0KIAlYaWRTdGF0dXMJc3RhdHVzOw0KIA0KIAkvKiBsb2NrIGlzIGFj cXVpcmVkIGJ5IFNpbXBsZUxydVJlYWRQYWdlX1JlYWRPbmx5ICovDQogDQogCXNsb3RubyA9IFNp bXBsZUxydVJlYWRQYWdlX1JlYWRPbmx5KFhhY3RDdGwsIHBhZ2VubywgeGlkKTsNCi0JYnl0ZXB0 ciA9IFhhY3RDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXSArIGJ5dGVubzsNCisJcGFn ZSA9IFhhY3RDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXTsNCisJYnl0ZXB0ciA9IFBh Z2VHZXRDb250ZW50cyhwYWdlKSArIGJ5dGVubzsNCiANCiAJc3RhdHVzID0gKCpieXRlcHRyID4+ IGJzaGlmdCkgJiBDTE9HX1hBQ1RfQklUTUFTSzsNCiANCi0JbHNuaW5kZXggPSBHZXRMU05JbmRl eChzbG90bm8sIHhpZCk7DQotCSpsc24gPSBYYWN0Q3RsLT5zaGFyZWQtPmdyb3VwX2xzbltsc25p bmRleF07DQorCSpsc24gPSBQYWdlR2V0TFNOKHBhZ2UpOw0KIA0KIAlMV0xvY2tSZWxlYXNlKFNp bXBsZUxydUdldEJhbmtMb2NrKFhhY3RDdGwsIHBhZ2VubykpOw0KIA0KQEAgLTc4MCw3ICs3NzMs NyBAQCBDTE9HU2htZW1CdWZmZXJzKHZvaWQpDQogU2l6ZQ0KIENMT0dTaG1lbVNpemUodm9pZCkN CiB7DQotCXJldHVybiBTaW1wbGVMcnVTaG1lbVNpemUoQ0xPR1NobWVtQnVmZmVycygpLCBDTE9H X0xTTlNfUEVSX1BBR0UpOw0KKwlyZXR1cm4gU2ltcGxlTHJ1U2htZW1TaXplKENMT0dTaG1lbUJ1 ZmZlcnMoKSk7DQogfQ0KIA0KIHZvaWQNCkBAIC04MDgsNyArODAxLDcgQEAgQ0xPR1NobWVtSW5p dCh2b2lkKQ0KIAlBc3NlcnQodHJhbnNhY3Rpb25fYnVmZmVycyAhPSAwKTsNCiANCiAJWGFjdEN0 bC0+UGFnZVByZWNlZGVzID0gQ0xPR1BhZ2VQcmVjZWRlczsNCi0JU2ltcGxlTHJ1SW5pdChYYWN0 Q3RsLCAidHJhbnNhY3Rpb24iLCBDTE9HU2htZW1CdWZmZXJzKCksIENMT0dfTFNOU19QRVJfUEFH RSwNCisJU2ltcGxlTHJ1SW5pdChYYWN0Q3RsLCAidHJhbnNhY3Rpb24iLCBDTE9HU2htZW1CdWZm ZXJzKCksDQogCQkJCSAgInBnX3hhY3QiLCBMV1RSQU5DSEVfWEFDVF9CVUZGRVIsDQogCQkJCSAg TFdUUkFOQ0hFX1hBQ1RfU0xSVSwgU1lOQ19IQU5ETEVSX0NMT0csIGZhbHNlKTsNCiAJU2xydVBh Z2VQcmVjZWRlc1VuaXRUZXN0cyhYYWN0Q3RsLCBDTE9HX1hBQ1RTX1BFUl9QQUdFKTsNCkBAIC04 NjAsMTEgKzg1MywxNyBAQCBzdGF0aWMgaW50DQogWmVyb0NMT0dQYWdlKGludDY0IHBhZ2Vubywg Ym9vbCB3cml0ZVhsb2cpDQogew0KIAlpbnQJCQlzbG90bm87DQorCVBhZ2UgCQlwYWdlOw0KKwlY TG9nUmVjUHRyICBsc24gPSAwOw0KIA0KIAlzbG90bm8gPSBTaW1wbGVMcnVaZXJvUGFnZShYYWN0 Q3RsLCBwYWdlbm8pOw0KKwlwYWdlID0gWGFjdEN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90 bm9dOw0KIA0KIAlpZiAod3JpdGVYbG9nKQ0KLQkJV3JpdGVaZXJvUGFnZVhsb2dSZWMocGFnZW5v KTsNCisJew0KKwkJbHNuID0gV3JpdGVaZXJvUGFnZVhsb2dSZWMocGFnZW5vKTsNCisJCVBhZ2VT ZXRMU04ocGFnZSwgbHNuKTsNCisJfQ0KIA0KIAlyZXR1cm4gc2xvdG5vOw0KIH0NCkBAIC05MTcs MTIgKzkxNiwxMiBAQCBUcmltQ0xPRyh2b2lkKQ0KIAkJY2hhcgkgICAqYnl0ZXB0cjsNCiANCiAJ CXNsb3RubyA9IFNpbXBsZUxydVJlYWRQYWdlKFhhY3RDdGwsIHBhZ2VubywgZmFsc2UsIHhpZCk7 DQotCQlieXRlcHRyID0gWGFjdEN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9dICsgYnl0 ZW5vOw0KKwkJYnl0ZXB0ciA9IFBhZ2VHZXRDb250ZW50cyhYYWN0Q3RsLT5zaGFyZWQtPnBhZ2Vf YnVmZmVyW3Nsb3Rub10pICsgYnl0ZW5vOw0KIA0KIAkJLyogWmVybyBzby1mYXItdW51c2VkIHBv c2l0aW9ucyBpbiB0aGUgY3VycmVudCBieXRlICovDQogCQkqYnl0ZXB0ciAmPSAoMSA8PCBic2hp ZnQpIC0gMTsNCiAJCS8qIFplcm8gdGhlIHJlc3Qgb2YgdGhlIHBhZ2UgKi8NCi0JCU1lbVNldChi eXRlcHRyICsgMSwgMCwgQkxDS1NaIC0gYnl0ZW5vIC0gMSk7DQorCQlNZW1TZXQoYnl0ZXB0ciAr IDEsIDAsIFNpemVPZlBhZ2VDb250ZW50cyAtIGJ5dGVubyAtIDEpOw0KIA0KIAkJWGFjdEN0bC0+ c2hhcmVkLT5wYWdlX2RpcnR5W3Nsb3Rub10gPSB0cnVlOw0KIAl9DQpAQCAtOTQ2LDcgKzk0NSw2 IEBAIENoZWNrUG9pbnRDTE9HKHZvaWQpDQogCVRSQUNFX1BPU1RHUkVTUUxfQ0xPR19DSEVDS1BP SU5UX0RPTkUodHJ1ZSk7DQogfQ0KIA0KLQ0KIC8qDQogICogTWFrZSBzdXJlIHRoYXQgQ0xPRyBo YXMgcm9vbSBmb3IgYSBuZXdseS1hbGxvY2F0ZWQgWElELg0KICAqDQpAQCAtMTA3MCwxMiArMTA2 OCwxMiBAQCBDTE9HUGFnZVByZWNlZGVzKGludDY0IHBhZ2UxLCBpbnQ2NCBwYWdlMikNCiAvKg0K ICAqIFdyaXRlIGEgWkVST1BBR0UgeGxvZyByZWNvcmQNCiAgKi8NCi1zdGF0aWMgdm9pZA0KK3N0 YXRpYyBYTG9nUmVjUHRyDQogV3JpdGVaZXJvUGFnZVhsb2dSZWMoaW50NjQgcGFnZW5vKQ0KIHsN CiAJWExvZ0JlZ2luSW5zZXJ0KCk7DQogCVhMb2dSZWdpc3RlckRhdGEoKGNoYXIgKikgKCZwYWdl bm8pLCBzaXplb2YocGFnZW5vKSk7DQotCSh2b2lkKSBYTG9nSW5zZXJ0KFJNX0NMT0dfSUQsIENM T0dfWkVST1BBR0UpOw0KKwlyZXR1cm4gWExvZ0luc2VydChSTV9DTE9HX0lELCBDTE9HX1pFUk9Q QUdFKTsNCiB9DQogDQogLyoNCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS9jb21taXRfdHMuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2NvbW1pdF90cy5jDQpp bmRleCBmMjIxNDk0Njg3Li5kY2UwNmQ2Y2Y2IDEwMDY0NA0KLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0vY29tbWl0X3RzLmMNCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L2NvbW1pdF90cy5jDQpAQCAtMjksNiArMjksNyBAQA0KICNpbmNsdWRlICJhY2Nlc3MveGxvZ3V0 aWxzLmgiDQogI2luY2x1ZGUgImZ1bmNhcGkuaCINCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiDQor I2luY2x1ZGUgInN0b3JhZ2UvYnVmcGFnZS5oIg0KICNpbmNsdWRlICJzdG9yYWdlL3NobWVtLmgi DQogI2luY2x1ZGUgInV0aWxzL2ZtZ3Jwcm90b3MuaCINCiAjaW5jbHVkZSAidXRpbHMvZ3VjX2hv b2tzLmgiDQpAQCAtNjEsNyArNjIsNyBAQCB0eXBlZGVmIHN0cnVjdCBDb21taXRUaW1lc3RhbXBF bnRyeQ0KIAkJCQkJCQkJCXNpemVvZihSZXBPcmlnaW5JZCkpDQogDQogI2RlZmluZSBDT01NSVRf VFNfWEFDVFNfUEVSX1BBR0UgXA0KLQkoQkxDS1NaIC8gU2l6ZU9mQ29tbWl0VGltZXN0YW1wRW50 cnkpDQorCShTaXplT2ZQYWdlQ29udGVudHMgLyBTaXplT2ZDb21taXRUaW1lc3RhbXBFbnRyeSkN CiANCiANCiAvKg0KQEAgLTExOCw3ICsxMTksNyBAQCBzdGF0aWMgaW50CVplcm9Db21taXRUc1Bh Z2UoaW50NjQgcGFnZW5vLCBib29sIHdyaXRlWGxvZyk7DQogc3RhdGljIGJvb2wgQ29tbWl0VHNQ YWdlUHJlY2VkZXMoaW50NjQgcGFnZTEsIGludDY0IHBhZ2UyKTsNCiBzdGF0aWMgdm9pZCBBY3Rp dmF0ZUNvbW1pdFRzKHZvaWQpOw0KIHN0YXRpYyB2b2lkIERlYWN0aXZhdGVDb21taXRUcyh2b2lk KTsNCi1zdGF0aWMgdm9pZCBXcml0ZVplcm9QYWdlWGxvZ1JlYyhpbnQ2NCBwYWdlbm8pOw0KK3N0 YXRpYyBYTG9nUmVjUHRyIFdyaXRlWmVyb1BhZ2VYbG9nUmVjKGludDY0IHBhZ2Vubyk7DQogc3Rh dGljIHZvaWQgV3JpdGVUcnVuY2F0ZVhsb2dSZWMoaW50NjQgcGFnZW5vLCBUcmFuc2FjdGlvbklk IG9sZGVzdFhpZCk7DQogDQogLyoNCkBAIC0yNTMsMTEgKzI1NCwxMiBAQCBUcmFuc2FjdGlvbklk U2V0Q29tbWl0VHMoVHJhbnNhY3Rpb25JZCB4aWQsIFRpbWVzdGFtcFR6IHRzLA0KIAlDb21taXRU aW1lc3RhbXBFbnRyeSBlbnRyeTsNCiANCiAJQXNzZXJ0KFRyYW5zYWN0aW9uSWRJc05vcm1hbCh4 aWQpKTsNCisJQXNzZXJ0KHhpZCA9PSBzbG90bm8gKiBDT01NSVRfVFNfWEFDVFNfUEVSX1BBR0Ug KyBlbnRyeW5vKTsNCiANCiAJZW50cnkudGltZSA9IHRzOw0KIAllbnRyeS5ub2RlaWQgPSBub2Rl aWQ7DQogDQotCW1lbWNweShDb21taXRUc0N0bC0+c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9d ICsNCisJbWVtY3B5KFBhZ2VHZXRDb250ZW50cyhDb21taXRUc0N0bC0+c2hhcmVkLT5wYWdlX2J1 ZmZlcltzbG90bm9dKSArDQogCQkgICBTaXplT2ZDb21taXRUaW1lc3RhbXBFbnRyeSAqIGVudHJ5 bm8sDQogCQkgICAmZW50cnksIFNpemVPZkNvbW1pdFRpbWVzdGFtcEVudHJ5KTsNCiB9DQpAQCAt MzM2LDcgKzMzOCw3IEBAIFRyYW5zYWN0aW9uSWRHZXRDb21taXRUc0RhdGEoVHJhbnNhY3Rpb25J ZCB4aWQsIFRpbWVzdGFtcFR6ICp0cywNCiAJLyogbG9jayBpcyBhY3F1aXJlZCBieSBTaW1wbGVM cnVSZWFkUGFnZV9SZWFkT25seSAqLw0KIAlzbG90bm8gPSBTaW1wbGVMcnVSZWFkUGFnZV9SZWFk T25seShDb21taXRUc0N0bCwgcGFnZW5vLCB4aWQpOw0KIAltZW1jcHkoJmVudHJ5LA0KLQkJICAg Q29tbWl0VHNDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXSArDQorCQkgICBQYWdlR2V0 Q29udGVudHMoQ29tbWl0VHNDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXSkgKw0KIAkJ ICAgU2l6ZU9mQ29tbWl0VGltZXN0YW1wRW50cnkgKiBlbnRyeW5vLA0KIAkJICAgU2l6ZU9mQ29t bWl0VGltZXN0YW1wRW50cnkpOw0KIA0KQEAgLTUxOCw3ICs1MjAsNyBAQCBDb21taXRUc1NobWVt QnVmZmVycyh2b2lkKQ0KIFNpemUNCiBDb21taXRUc1NobWVtU2l6ZSh2b2lkKQ0KIHsNCi0JcmV0 dXJuIFNpbXBsZUxydVNobWVtU2l6ZShDb21taXRUc1NobWVtQnVmZmVycygpLCAwKSArDQorCXJl dHVybiBTaW1wbGVMcnVTaG1lbVNpemUoQ29tbWl0VHNTaG1lbUJ1ZmZlcnMoKSkgKw0KIAkJc2l6 ZW9mKENvbW1pdFRpbWVzdGFtcFNoYXJlZCk7DQogfQ0KIA0KQEAgLTU1Myw3ICs1NTUsNyBAQCBD b21taXRUc1NobWVtSW5pdCh2b2lkKQ0KIAlBc3NlcnQoY29tbWl0X3RpbWVzdGFtcF9idWZmZXJz ICE9IDApOw0KIA0KIAlDb21taXRUc0N0bC0+UGFnZVByZWNlZGVzID0gQ29tbWl0VHNQYWdlUHJl Y2VkZXM7DQotCVNpbXBsZUxydUluaXQoQ29tbWl0VHNDdGwsICJjb21taXRfdGltZXN0YW1wIiwg Q29tbWl0VHNTaG1lbUJ1ZmZlcnMoKSwgMCwNCisJU2ltcGxlTHJ1SW5pdChDb21taXRUc0N0bCwg ImNvbW1pdF90aW1lc3RhbXAiLCBDb21taXRUc1NobWVtQnVmZmVycygpLA0KIAkJCQkgICJwZ19j b21taXRfdHMiLCBMV1RSQU5DSEVfQ09NTUlUVFNfQlVGRkVSLA0KIAkJCQkgIExXVFJBTkNIRV9D T01NSVRUU19TTFJVLA0KIAkJCQkgIFNZTkNfSEFORExFUl9DT01NSVRfVFMsDQpAQCAtNjE1LDEx ICs2MTcsMTcgQEAgc3RhdGljIGludA0KIFplcm9Db21taXRUc1BhZ2UoaW50NjQgcGFnZW5vLCBi b29sIHdyaXRlWGxvZykNCiB7DQogCWludAkJCXNsb3RubzsNCisJUGFnZSAJCXBhZ2U7DQorCVhM b2dSZWNQdHIgIGxzbiA9IDA7DQogDQogCXNsb3RubyA9IFNpbXBsZUxydVplcm9QYWdlKENvbW1p dFRzQ3RsLCBwYWdlbm8pOw0KKwlwYWdlID0gQ29tbWl0VHNDdGwtPnNoYXJlZC0+cGFnZV9idWZm ZXJbc2xvdG5vXTsNCiANCiAJaWYgKHdyaXRlWGxvZykNCi0JCVdyaXRlWmVyb1BhZ2VYbG9nUmVj KHBhZ2Vubyk7DQorCXsNCisJCWxzbiA9IFdyaXRlWmVyb1BhZ2VYbG9nUmVjKHBhZ2Vubyk7DQor CQlQYWdlU2V0TFNOKHBhZ2UsIGxzbik7DQorCX0NCiANCiAJcmV0dXJuIHNsb3RubzsNCiB9DQpA QCAtOTg1LDEyICs5OTMsMTIgQEAgQ29tbWl0VHNQYWdlUHJlY2VkZXMoaW50NjQgcGFnZTEsIGlu dDY0IHBhZ2UyKQ0KIC8qDQogICogV3JpdGUgYSBaRVJPUEFHRSB4bG9nIHJlY29yZA0KICAqLw0K LXN0YXRpYyB2b2lkDQorc3RhdGljIFhMb2dSZWNQdHINCiBXcml0ZVplcm9QYWdlWGxvZ1JlYyhp bnQ2NCBwYWdlbm8pDQogew0KIAlYTG9nQmVnaW5JbnNlcnQoKTsNCiAJWExvZ1JlZ2lzdGVyRGF0 YSgoY2hhciAqKSAoJnBhZ2VubyksIHNpemVvZihwYWdlbm8pKTsNCi0JKHZvaWQpIFhMb2dJbnNl cnQoUk1fQ09NTUlUX1RTX0lELCBDT01NSVRfVFNfWkVST1BBR0UpOw0KKwlyZXR1cm4gWExvZ0lu c2VydChSTV9DT01NSVRfVFNfSUQsIENPTU1JVF9UU19aRVJPUEFHRSk7DQogfQ0KIA0KIC8qDQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYw0KaW5kZXggODNiNTc4ZGNlZC4uOGQ5 MzRjN2JiMyAxMDA2NDQNCi0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFj dC5jDQorKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYw0KQEAgLTgz LDYgKzgzLDcgQEANCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiDQogI2luY2x1ZGUgInBnX3RyYWNl LmgiDQogI2luY2x1ZGUgInBvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5oIg0KKyNpbmNsdWRlICJzdG9y YWdlL2J1ZnBhZ2UuaCINCiAjaW5jbHVkZSAic3RvcmFnZS9wbXNpZ25hbC5oIg0KICNpbmNsdWRl ICJzdG9yYWdlL3Byb2MuaCINCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jYXJyYXkuaCINCkBAIC0x MDUsNyArMTA2LDcgQEANCiAgKi8NCiANCiAvKiBXZSBuZWVkIGZvdXIgYnl0ZXMgcGVyIG9mZnNl dCAqLw0KLSNkZWZpbmUgTVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0UgKEJMQ0tTWiAvIHNpemVv ZihNdWx0aVhhY3RPZmZzZXQpKQ0KKyNkZWZpbmUgTVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0Ug KFNpemVPZlBhZ2VDb250ZW50cyAvIHNpemVvZihNdWx0aVhhY3RPZmZzZXQpKQ0KIA0KICNkZWZp bmUgTXVsdGlYYWN0SWRUb09mZnNldFBhZ2UoeGlkKSBcDQogCSgoeGlkKSAvIChNdWx0aVhhY3RP ZmZzZXQpIE1VTFRJWEFDVF9PRkZTRVRTX1BFUl9QQUdFKQ0KQEAgLTExOCw4ICsxMTksOCBAQA0K ICAqIGFkZGl0aW9uYWwgZmxhZyBiaXRzIGZvciBlYWNoIFRyYW5zYWN0aW9uSWQuICBUbyBkbyB0 aGlzIHdpdGhvdXQgZ2V0dGluZw0KICAqIGludG8gYWxpZ25tZW50IGlzc3Vlcywgd2Ugc3RvcmUg Zm91ciBieXRlcyBvZiBmbGFncywgYW5kIHRoZW4gdGhlDQogICogY29ycmVzcG9uZGluZyA0IFhp ZHMuICBFYWNoIHN1Y2ggNS13b3JkICgyMC1ieXRlKSBzZXQgd2UgY2FsbCBhICJncm91cCIsIGFu ZA0KLSAqIGFyZSBzdG9yZWQgYXMgYSB3aG9sZSBpbiBwYWdlcy4gIFRodXMsIHdpdGggOGtCIEJM Q0tTWiwgd2Uga2VlcCA0MDkgZ3JvdXBzDQotICogcGVyIHBhZ2UuICBUaGlzIHdhc3RlcyAxMiBi eXRlcyBwZXIgcGFnZSwgYnV0IHRoYXQncyBPSyAtLSBzaW1wbGljaXR5IChhbmQNCisgKiBhcmUg c3RvcmVkIGFzIGEgd2hvbGUgaW4gcGFnZXMuICBUaHVzLCB3aXRoIDhrQiBCTENLU1osIHdlIGtl ZXAgNDA4IGdyb3Vwcw0KKyAqIHBlciBwYWdlLiAgVGhpcyB3YXN0ZXMgOCBieXRlcyBwZXIgcGFn ZSwgYnV0IHRoYXQncyBPSyAtLSBzaW1wbGljaXR5IChhbmQNCiAgKiBwZXJmb3JtYW5jZSkgdHJ1 bXBzIHNwYWNlIGVmZmljaWVuY3kgaGVyZS4NCiAgKg0KICAqIE5vdGUgdGhhdCB0aGUgIm9mZnNl dCIgbWFjcm9zIHdvcmsgd2l0aCBieXRlIG9mZnNldCwgbm90IGFycmF5IGluZGV4ZXMsIHNvDQpA QCAtMTM3LDcgKzEzOCw3IEBADQogLyogc2l6ZSBpbiBieXRlcyBvZiBhIGNvbXBsZXRlIGdyb3Vw ICovDQogI2RlZmluZSBNVUxUSVhBQ1RfTUVNQkVSR1JPVVBfU0laRSBcDQogCShzaXplb2YoVHJh bnNhY3Rpb25JZCkgKiBNVUxUSVhBQ1RfTUVNQkVSU19QRVJfTUVNQkVSR1JPVVAgKyBNVUxUSVhB Q1RfRkxBR0JZVEVTX1BFUl9HUk9VUCkNCi0jZGVmaW5lIE1VTFRJWEFDVF9NRU1CRVJHUk9VUFNf UEVSX1BBR0UgKEJMQ0tTWiAvIE1VTFRJWEFDVF9NRU1CRVJHUk9VUF9TSVpFKQ0KKyNkZWZpbmUg TVVMVElYQUNUX01FTUJFUkdST1VQU19QRVJfUEFHRSAoU2l6ZU9mUGFnZUNvbnRlbnRzIC8gTVVM VElYQUNUX01FTUJFUkdST1VQX1NJWkUpDQogI2RlZmluZSBNVUxUSVhBQ1RfTUVNQkVSU19QRVJf UEFHRQlcDQogCShNVUxUSVhBQ1RfTUVNQkVSR1JPVVBTX1BFUl9QQUdFICogTVVMVElYQUNUX01F TUJFUlNfUEVSX01FTUJFUkdST1VQKQ0KIA0KQEAgLTM2NCw3ICszNjUsNyBAQCBzdGF0aWMgYm9v bCBNdWx0aVhhY3RPZmZzZXRXb3VsZFdyYXAoTXVsdGlYYWN0T2Zmc2V0IGJvdW5kYXJ5LA0KIAkJ CQkJCQkJCSBNdWx0aVhhY3RPZmZzZXQgc3RhcnQsIHVpbnQzMiBkaXN0YW5jZSk7DQogc3RhdGlj IGJvb2wgU2V0T2Zmc2V0VmFjdXVtTGltaXQoYm9vbCBpc19zdGFydHVwKTsNCiBzdGF0aWMgYm9v bCBmaW5kX211bHRpeGFjdF9zdGFydChNdWx0aVhhY3RJZCBtdWx0aSwgTXVsdGlYYWN0T2Zmc2V0 ICpyZXN1bHQpOw0KLXN0YXRpYyB2b2lkIFdyaXRlTVplcm9QYWdlWGxvZ1JlYyhpbnQ2NCBwYWdl bm8sIHVpbnQ4IGluZm8pOw0KK3N0YXRpYyBYTG9nUmVjUHRyIFdyaXRlTVplcm9QYWdlWGxvZ1Jl YyhpbnQ2NCBwYWdlbm8sIHVpbnQ4IGluZm8pOw0KIHN0YXRpYyB2b2lkIFdyaXRlTVRydW5jYXRl WGxvZ1JlYyhPaWQgb2xkZXN0TXVsdGlEQiwNCiAJCQkJCQkJCSAgTXVsdGlYYWN0SWQgc3RhcnRU cnVuY09mZiwNCiAJCQkJCQkJCSAgTXVsdGlYYWN0SWQgZW5kVHJ1bmNPZmYsDQpAQCAtODg1LDcg Kzg4Niw3IEBAIFJlY29yZE5ld011bHRpWGFjdChNdWx0aVhhY3RJZCBtdWx0aSwgTXVsdGlYYWN0 T2Zmc2V0IG9mZnNldCwNCiAJICogdGFrZSB0aGUgdHJvdWJsZSB0byBnZW5lcmFsaXplIHRoZSBz bHJ1LmMgZXJyb3IgcmVwb3J0aW5nIGNvZGUuDQogCSAqLw0KIAlzbG90bm8gPSBTaW1wbGVMcnVS ZWFkUGFnZShNdWx0aVhhY3RPZmZzZXRDdGwsIHBhZ2VubywgdHJ1ZSwgbXVsdGkpOw0KLQlvZmZw dHIgPSAoTXVsdGlYYWN0T2Zmc2V0ICopIE11bHRpWGFjdE9mZnNldEN0bC0+c2hhcmVkLT5wYWdl X2J1ZmZlcltzbG90bm9dOw0KKwlvZmZwdHIgPSAoTXVsdGlYYWN0T2Zmc2V0ICopIFBhZ2VHZXRD b250ZW50cyhNdWx0aVhhY3RPZmZzZXRDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXSk7 DQogCW9mZnB0ciArPSBlbnRyeW5vOw0KIA0KIAkqb2ZmcHRyID0gb2Zmc2V0Ow0KQEAgLTkzNCwx MiArOTM1LDEyIEBAIFJlY29yZE5ld011bHRpWGFjdChNdWx0aVhhY3RJZCBtdWx0aSwgTXVsdGlY YWN0T2Zmc2V0IG9mZnNldCwNCiAJCX0NCiANCiAJCW1lbWJlcnB0ciA9IChUcmFuc2FjdGlvbklk ICopDQotCQkJKE11bHRpWGFjdE1lbWJlckN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9d ICsgbWVtYmVyb2ZmKTsNCisJCQkoUGFnZUdldENvbnRlbnRzKE11bHRpWGFjdE1lbWJlckN0bC0+ c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9dKSArIG1lbWJlcm9mZik7DQogDQogCQkqbWVtYmVy cHRyID0gbWVtYmVyc1tpXS54aWQ7DQogDQogCQlmbGFnc3B0ciA9ICh1aW50MzIgKikNCi0JCQko TXVsdGlYYWN0TWVtYmVyQ3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10gKyBmbGFnc29m Zik7DQorCQkJKFBhZ2VHZXRDb250ZW50cyhNdWx0aVhhY3RNZW1iZXJDdGwtPnNoYXJlZC0+cGFn ZV9idWZmZXJbc2xvdG5vXSkgKyBmbGFnc29mZik7DQogDQogCQlmbGFnc3ZhbCA9ICpmbGFnc3B0 cjsNCiAJCWZsYWdzdmFsICY9IH4oKCgxIDw8IE1YQUNUX01FTUJFUl9CSVRTX1BFUl9YQUNUKSAt IDEpIDw8IGJzaGlmdCk7DQpAQCAtMTM2NCw3ICsxMzY1LDcgQEAgcmV0cnk6DQogCUxXTG9ja0Fj cXVpcmUobG9jaywgTFdfRVhDTFVTSVZFKTsNCiANCiAJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBh Z2UoTXVsdGlYYWN0T2Zmc2V0Q3RsLCBwYWdlbm8sIHRydWUsIG11bHRpKTsNCi0Jb2ZmcHRyID0g KE11bHRpWGFjdE9mZnNldCAqKSBNdWx0aVhhY3RPZmZzZXRDdGwtPnNoYXJlZC0+cGFnZV9idWZm ZXJbc2xvdG5vXTsNCisJb2ZmcHRyID0gKE11bHRpWGFjdE9mZnNldCAqKSBQYWdlR2V0Q29udGVu dHMoTXVsdGlYYWN0T2Zmc2V0Q3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10pOw0KIAlv ZmZwdHIgKz0gZW50cnlubzsNCiAJb2Zmc2V0ID0gKm9mZnB0cjsNCiANCkBAIC0xNDEzLDcgKzE0 MTQsNyBAQCByZXRyeToNCiAJCQlzbG90bm8gPSBTaW1wbGVMcnVSZWFkUGFnZShNdWx0aVhhY3RP ZmZzZXRDdGwsIHBhZ2VubywgdHJ1ZSwgdG1wTVhhY3QpOw0KIAkJfQ0KIA0KLQkJb2ZmcHRyID0g KE11bHRpWGFjdE9mZnNldCAqKSBNdWx0aVhhY3RPZmZzZXRDdGwtPnNoYXJlZC0+cGFnZV9idWZm ZXJbc2xvdG5vXTsNCisJCW9mZnB0ciA9IChNdWx0aVhhY3RPZmZzZXQgKikgUGFnZUdldENvbnRl bnRzKE11bHRpWGFjdE9mZnNldEN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9dKTsNCiAJ CW9mZnB0ciArPSBlbnRyeW5vOw0KIAkJbmV4dE1YT2Zmc2V0ID0gKm9mZnB0cjsNCiANCkBAIC0x NDcwLDcgKzE0NzEsNyBAQCByZXRyeToNCiAJCX0NCiANCiAJCXhhY3RwdHIgPSAoVHJhbnNhY3Rp b25JZCAqKQ0KLQkJCShNdWx0aVhhY3RNZW1iZXJDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xv dG5vXSArIG1lbWJlcm9mZik7DQorCQkJKFBhZ2VHZXRDb250ZW50cyhNdWx0aVhhY3RNZW1iZXJD dGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXSkgKyBtZW1iZXJvZmYpOw0KIA0KIAkJaWYg KCFUcmFuc2FjdGlvbklkSXNWYWxpZCgqeGFjdHB0cikpDQogCQl7DQpAQCAtMTQ4MSw3ICsxNDgy LDcgQEAgcmV0cnk6DQogDQogCQlmbGFnc29mZiA9IE1YT2Zmc2V0VG9GbGFnc09mZnNldChvZmZz ZXQpOw0KIAkJYnNoaWZ0ID0gTVhPZmZzZXRUb0ZsYWdzQml0U2hpZnQob2Zmc2V0KTsNCi0JCWZs YWdzcHRyID0gKHVpbnQzMiAqKSAoTXVsdGlYYWN0TWVtYmVyQ3RsLT5zaGFyZWQtPnBhZ2VfYnVm ZmVyW3Nsb3Rub10gKyBmbGFnc29mZik7DQorCQlmbGFnc3B0ciA9ICh1aW50MzIgKikgKFBhZ2VH ZXRDb250ZW50cyhNdWx0aVhhY3RNZW1iZXJDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5v XSkgKyBmbGFnc29mZik7DQogDQogCQlwdHJbdHJ1ZWxlbmd0aF0ueGlkID0gKnhhY3RwdHI7DQog CQlwdHJbdHJ1ZWxlbmd0aF0uc3RhdHVzID0gKCpmbGFnc3B0ciA+PiBic2hpZnQpICYgTVhBQ1Rf TUVNQkVSX1hBQ1RfQklUTUFTSzsNCkBAIC0xODgwLDggKzE4ODEsOCBAQCBNdWx0aVhhY3RTaG1l bVNpemUodm9pZCkNCiAJCQkgbXVsX3NpemUoc2l6ZW9mKE11bHRpWGFjdElkKSAqIDIsIE1heE9s ZGVzdFNsb3QpKQ0KIA0KIAlzaXplID0gU0hBUkVEX01VTFRJWEFDVF9TVEFURV9TSVpFOw0KLQlz aXplID0gYWRkX3NpemUoc2l6ZSwgU2ltcGxlTHJ1U2htZW1TaXplKG11bHRpeGFjdF9vZmZzZXRf YnVmZmVycywgMCkpOw0KLQlzaXplID0gYWRkX3NpemUoc2l6ZSwgU2ltcGxlTHJ1U2htZW1TaXpl KG11bHRpeGFjdF9tZW1iZXJfYnVmZmVycywgMCkpOw0KKwlzaXplID0gYWRkX3NpemUoc2l6ZSwg U2ltcGxlTHJ1U2htZW1TaXplKG11bHRpeGFjdF9vZmZzZXRfYnVmZmVycykpOw0KKwlzaXplID0g YWRkX3NpemUoc2l6ZSwgU2ltcGxlTHJ1U2htZW1TaXplKG11bHRpeGFjdF9tZW1iZXJfYnVmZmVy cykpOw0KIA0KIAlyZXR1cm4gc2l6ZTsNCiB9DQpAQCAtMTg5NywxNCArMTg5OCwxNCBAQCBNdWx0 aVhhY3RTaG1lbUluaXQodm9pZCkNCiAJTXVsdGlYYWN0TWVtYmVyQ3RsLT5QYWdlUHJlY2VkZXMg PSBNdWx0aVhhY3RNZW1iZXJQYWdlUHJlY2VkZXM7DQogDQogCVNpbXBsZUxydUluaXQoTXVsdGlY YWN0T2Zmc2V0Q3RsLA0KLQkJCQkgICJtdWx0aXhhY3Rfb2Zmc2V0IiwgbXVsdGl4YWN0X29mZnNl dF9idWZmZXJzLCAwLA0KKwkJCQkgICJtdWx0aXhhY3Rfb2Zmc2V0IiwgbXVsdGl4YWN0X29mZnNl dF9idWZmZXJzLA0KIAkJCQkgICJwZ19tdWx0aXhhY3Qvb2Zmc2V0cyIsIExXVFJBTkNIRV9NVUxU SVhBQ1RPRkZTRVRfQlVGRkVSLA0KIAkJCQkgIExXVFJBTkNIRV9NVUxUSVhBQ1RPRkZTRVRfU0xS VSwNCiAJCQkJICBTWU5DX0hBTkRMRVJfTVVMVElYQUNUX09GRlNFVCwNCiAJCQkJICBmYWxzZSk7 DQogCVNscnVQYWdlUHJlY2VkZXNVbml0VGVzdHMoTXVsdGlYYWN0T2Zmc2V0Q3RsLCBNVUxUSVhB Q1RfT0ZGU0VUU19QRVJfUEFHRSk7DQogCVNpbXBsZUxydUluaXQoTXVsdGlYYWN0TWVtYmVyQ3Rs LA0KLQkJCQkgICJtdWx0aXhhY3RfbWVtYmVyIiwgbXVsdGl4YWN0X21lbWJlcl9idWZmZXJzLCAw LA0KKwkJCQkgICJtdWx0aXhhY3RfbWVtYmVyIiwgbXVsdGl4YWN0X21lbWJlcl9idWZmZXJzLA0K IAkJCQkgICJwZ19tdWx0aXhhY3QvbWVtYmVycyIsIExXVFJBTkNIRV9NVUxUSVhBQ1RNRU1CRVJf QlVGRkVSLA0KIAkJCQkgIExXVFJBTkNIRV9NVUxUSVhBQ1RNRU1CRVJfU0xSVSwNCiAJCQkJICBT WU5DX0hBTkRMRVJfTVVMVElYQUNUX01FTUJFUiwNCkBAIC0xOTk5LDExICsyMDAwLDE3IEBAIHN0 YXRpYyBpbnQNCiBaZXJvTXVsdGlYYWN0T2Zmc2V0UGFnZShpbnQ2NCBwYWdlbm8sIGJvb2wgd3Jp dGVYbG9nKQ0KIHsNCiAJaW50CQkJc2xvdG5vOw0KKwlQYWdlIAkJcGFnZTsNCisJWExvZ1JlY1B0 ciAgbHNuID0gMDsNCiANCiAJc2xvdG5vID0gU2ltcGxlTHJ1WmVyb1BhZ2UoTXVsdGlYYWN0T2Zm c2V0Q3RsLCBwYWdlbm8pOw0KKwlwYWdlID0gTXVsdGlYYWN0T2Zmc2V0Q3RsLT5zaGFyZWQtPnBh Z2VfYnVmZmVyW3Nsb3Rub107DQogDQogCWlmICh3cml0ZVhsb2cpDQotCQlXcml0ZU1aZXJvUGFn ZVhsb2dSZWMocGFnZW5vLCBYTE9HX01VTFRJWEFDVF9aRVJPX09GRl9QQUdFKTsNCisJew0KKwkJ bHNuID0gV3JpdGVNWmVyb1BhZ2VYbG9nUmVjKHBhZ2VubywgWExPR19NVUxUSVhBQ1RfWkVST19P RkZfUEFHRSk7DQorCQlQYWdlU2V0TFNOKHBhZ2UsIGxzbik7DQorCX0NCiANCiAJcmV0dXJuIHNs b3RubzsNCiB9DQpAQCAtMjAxNSwxMSArMjAyMiwxNyBAQCBzdGF0aWMgaW50DQogWmVyb011bHRp WGFjdE1lbWJlclBhZ2UoaW50NjQgcGFnZW5vLCBib29sIHdyaXRlWGxvZykNCiB7DQogCWludAkJ CXNsb3RubzsNCisJUGFnZSAJCXBhZ2U7DQorCVhMb2dSZWNQdHIgIGxzbiA9IDA7DQogDQogCXNs b3RubyA9IFNpbXBsZUxydVplcm9QYWdlKE11bHRpWGFjdE1lbWJlckN0bCwgcGFnZW5vKTsNCisJ cGFnZSA9IE11bHRpWGFjdE1lbWJlckN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9dOw0K IA0KIAlpZiAod3JpdGVYbG9nKQ0KLQkJV3JpdGVNWmVyb1BhZ2VYbG9nUmVjKHBhZ2VubywgWExP R19NVUxUSVhBQ1RfWkVST19NRU1fUEFHRSk7DQorCXsNCisJCWxzbiA9IFdyaXRlTVplcm9QYWdl WGxvZ1JlYyhwYWdlbm8sIFhMT0dfTVVMVElYQUNUX1pFUk9fTUVNX1BBR0UpOw0KKwkJUGFnZVNl dExTTihwYWdlLCBsc24pOw0KKwl9DQogDQogCXJldHVybiBzbG90bm87DQogfQ0KQEAgLTIxNDMs MTAgKzIxNTYsMTAgQEAgVHJpbU11bHRpWGFjdCh2b2lkKQ0KIA0KIAkJTFdMb2NrQWNxdWlyZShs b2NrLCBMV19FWENMVVNJVkUpOw0KIAkJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoTXVsdGlY YWN0T2Zmc2V0Q3RsLCBwYWdlbm8sIHRydWUsIG5leHRNWGFjdCk7DQotCQlvZmZwdHIgPSAoTXVs dGlYYWN0T2Zmc2V0ICopIE11bHRpWGFjdE9mZnNldEN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZlcltz bG90bm9dOw0KKwkJb2ZmcHRyID0gKE11bHRpWGFjdE9mZnNldCAqKSBQYWdlR2V0Q29udGVudHMo TXVsdGlYYWN0T2Zmc2V0Q3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10pOw0KIAkJb2Zm cHRyICs9IGVudHJ5bm87DQogDQotCQlNZW1TZXQob2ZmcHRyLCAwLCBCTENLU1ogLSAoZW50cnlu byAqIHNpemVvZihNdWx0aVhhY3RPZmZzZXQpKSk7DQorCQlNZW1TZXQob2ZmcHRyLCAwLCBTaXpl T2ZQYWdlQ29udGVudHMgLSAoZW50cnlubyAqIHNpemVvZihNdWx0aVhhY3RPZmZzZXQpKSk7DQog DQogCQlNdWx0aVhhY3RPZmZzZXRDdGwtPnNoYXJlZC0+cGFnZV9kaXJ0eVtzbG90bm9dID0gdHJ1 ZTsNCiAJCUxXTG9ja1JlbGVhc2UobG9jayk7DQpAQCAtMjE3Nyw5ICsyMTkwLDkgQEAgVHJpbU11 bHRpWGFjdCh2b2lkKQ0KIAkJbWVtYmVyb2ZmID0gTVhPZmZzZXRUb01lbWJlck9mZnNldChvZmZz ZXQpOw0KIAkJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoTXVsdGlYYWN0TWVtYmVyQ3RsLCBw YWdlbm8sIHRydWUsIG9mZnNldCk7DQogCQl4aWRwdHIgPSAoVHJhbnNhY3Rpb25JZCAqKQ0KLQkJ CShNdWx0aVhhY3RNZW1iZXJDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXSArIG1lbWJl cm9mZik7DQorCQkJKFBhZ2VHZXRDb250ZW50cyhNdWx0aVhhY3RNZW1iZXJDdGwtPnNoYXJlZC0+ cGFnZV9idWZmZXJbc2xvdG5vXSkgKyBtZW1iZXJvZmYpOw0KIA0KLQkJTWVtU2V0KHhpZHB0ciwg MCwgQkxDS1NaIC0gbWVtYmVyb2ZmKTsNCisJCU1lbVNldCh4aWRwdHIsIDAsIFNpemVPZlBhZ2VD b250ZW50cyAtIG1lbWJlcm9mZik7DQogDQogCQkvKg0KIAkJICogTm90ZTogd2UgZG9uJ3QgbmVl ZCB0byB6ZXJvIG91dCB0aGUgZmxhZyBiaXRzIGluIHRoZSByZW1haW5pbmcNCkBAIC0yODM0LDcg KzI4NDcsNyBAQCBmaW5kX211bHRpeGFjdF9zdGFydChNdWx0aVhhY3RJZCBtdWx0aSwgTXVsdGlY YWN0T2Zmc2V0ICpyZXN1bHQpDQogDQogCS8qIGxvY2sgaXMgYWNxdWlyZWQgYnkgU2ltcGxlTHJ1 UmVhZFBhZ2VfUmVhZE9ubHkgKi8NCiAJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2VfUmVhZE9u bHkoTXVsdGlYYWN0T2Zmc2V0Q3RsLCBwYWdlbm8sIG11bHRpKTsNCi0Jb2ZmcHRyID0gKE11bHRp WGFjdE9mZnNldCAqKSBNdWx0aVhhY3RPZmZzZXRDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xv dG5vXTsNCisJb2ZmcHRyID0gKE11bHRpWGFjdE9mZnNldCAqKSBQYWdlR2V0Q29udGVudHMoTXVs dGlYYWN0T2Zmc2V0Q3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10pOw0KIAlvZmZwdHIg Kz0gZW50cnlubzsNCiAJb2Zmc2V0ID0gKm9mZnB0cjsNCiAJTFdMb2NrUmVsZWFzZShTaW1wbGVM cnVHZXRCYW5rTG9jayhNdWx0aVhhY3RPZmZzZXRDdGwsIHBhZ2VubykpOw0KQEAgLTMyNjgsMTIg KzMyODEsMTIgQEAgTXVsdGlYYWN0T2Zmc2V0UHJlY2VkZXMoTXVsdGlYYWN0T2Zmc2V0IG9mZnNl dDEsIE11bHRpWGFjdE9mZnNldCBvZmZzZXQyKQ0KICAqIFdyaXRlIGFuIHhsb2cgcmVjb3JkIHJl ZmxlY3RpbmcgdGhlIHplcm9pbmcgb2YgZWl0aGVyIGEgTUVNQkVScyBvcg0KICAqIE9GRlNFVHMg cGFnZSAoaW5mbyBzaG93cyB3aGljaCkNCiAgKi8NCi1zdGF0aWMgdm9pZA0KK3N0YXRpYyBYTG9n UmVjUHRyDQogV3JpdGVNWmVyb1BhZ2VYbG9nUmVjKGludDY0IHBhZ2VubywgdWludDggaW5mbykN CiB7DQogCVhMb2dCZWdpbkluc2VydCgpOw0KIAlYTG9nUmVnaXN0ZXJEYXRhKChjaGFyICopICgm cGFnZW5vKSwgc2l6ZW9mKHBhZ2VubykpOw0KLQkodm9pZCkgWExvZ0luc2VydChSTV9NVUxUSVhB Q1RfSUQsIGluZm8pOw0KKwlyZXR1cm4gWExvZ0luc2VydChSTV9NVUxUSVhBQ1RfSUQsIGluZm8p Ow0KIH0NCiANCiAvKg0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3Ns cnUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUuYw0KaW5kZXggZjk5ZWMzOGE0 YS4uYWRlZDRkOTcwOCAxMDA2NDQNCi0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3Ns cnUuYw0KKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc2xydS5jDQpAQCAtNjgsNiAr NjgsNyBAQA0KICNpbmNsdWRlICJhY2Nlc3MveGxvZ3V0aWxzLmgiDQogI2luY2x1ZGUgIm1pc2Nh ZG1pbi5oIg0KICNpbmNsdWRlICJwZ3N0YXQuaCINCisjaW5jbHVkZSAic3RvcmFnZS9idWZwYWdl LmgiDQogI2luY2x1ZGUgInN0b3JhZ2UvZmQuaCINCiAjaW5jbHVkZSAic3RvcmFnZS9zaG1lbS5o Ig0KICNpbmNsdWRlICJ1dGlscy9ndWNfaG9va3MuaCINCkBAIC0xNTUsMTMgKzE1NiwxMyBAQCB0 eXBlZGVmIGVudW0NCiAJU0xSVV9XUklURV9GQUlMRUQsDQogCVNMUlVfRlNZTkNfRkFJTEVELA0K IAlTTFJVX0NMT1NFX0ZBSUxFRCwNCisJU0xSVV9EQVRBX0NPUlJVUFRFRCwNCiB9IFNscnVFcnJv ckNhdXNlOw0KIA0KIHN0YXRpYyBTbHJ1RXJyb3JDYXVzZSBzbHJ1X2VycmNhdXNlOw0KIHN0YXRp YyBpbnQJc2xydV9lcnJubzsNCiANCiANCi1zdGF0aWMgdm9pZCBTaW1wbGVMcnVaZXJvTFNOcyhT bHJ1Q3RsIGN0bCwgaW50IHNsb3Rubyk7DQogc3RhdGljIHZvaWQgU2ltcGxlTHJ1V2FpdElPKFNs cnVDdGwgY3RsLCBpbnQgc2xvdG5vKTsNCiBzdGF0aWMgdm9pZCBTbHJ1SW50ZXJuYWxXcml0ZVBh Z2UoU2xydUN0bCBjdGwsIGludCBzbG90bm8sIFNscnVXcml0ZUFsbCBmZGF0YSk7DQogc3RhdGlj IGJvb2wgU2xydVBoeXNpY2FsUmVhZFBhZ2UoU2xydUN0bCBjdGwsIGludDY0IHBhZ2VubywgaW50 IHNsb3Rubyk7DQpAQCAtMTgxLDcgKzE4Miw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBTbHJ1UmVj ZW50bHlVc2VkKFNscnVTaGFyZWQgc2hhcmVkLCBpbnQgc2xvdG5vKTsNCiAgKi8NCiANCiBTaXpl DQotU2ltcGxlTHJ1U2htZW1TaXplKGludCBuc2xvdHMsIGludCBubHNucykNCitTaW1wbGVMcnVT aG1lbVNpemUoaW50IG5zbG90cykNCiB7DQogCWludAkJCW5iYW5rcyA9IG5zbG90cyAvIFNMUlVf QkFOS19TSVpFOw0KIAlTaXplCQlzejsNCkBAIC0yMDAsOSArMjAxLDYgQEAgU2ltcGxlTHJ1U2ht ZW1TaXplKGludCBuc2xvdHMsIGludCBubHNucykNCiAJc3ogKz0gTUFYQUxJR04obmJhbmtzICog c2l6ZW9mKExXTG9ja1BhZGRlZCkpOwkvKiBiYW5rX2xvY2tzW10gKi8NCiAJc3ogKz0gTUFYQUxJ R04obmJhbmtzICogc2l6ZW9mKGludCkpOwkvKiBiYW5rX2N1cl9scnVfY291bnRbXSAqLw0KIA0K LQlpZiAobmxzbnMgPiAwKQ0KLQkJc3ogKz0gTUFYQUxJR04obnNsb3RzICogbmxzbnMgKiBzaXpl b2YoWExvZ1JlY1B0cikpOwkvKiBncm91cF9sc25bXSAqLw0KLQ0KIAlyZXR1cm4gQlVGRkVSQUxJ R04oc3opICsgQkxDS1NaICogbnNsb3RzOw0KIH0NCiANCkBAIC0yMjcsNyArMjI1LDYgQEAgU2lt cGxlTHJ1QXV0b3R1bmVCdWZmZXJzKGludCBkaXZpc29yLCBpbnQgbWF4KQ0KICAqIGN0bDogYWRk cmVzcyBvZiBsb2NhbCAodW5zaGFyZWQpIGNvbnRyb2wgc3RydWN0dXJlLg0KICAqIG5hbWU6IG5h bWUgb2YgU0xSVS4gIChUaGlzIGlzIHVzZXItdmlzaWJsZSwgcGljayB3aXRoIGNhcmUhKQ0KICAq IG5zbG90czogbnVtYmVyIG9mIHBhZ2Ugc2xvdHMgdG8gdXNlLg0KLSAqIG5sc25zOiBudW1iZXIg b2YgTFNOIGdyb3VwcyBwZXIgcGFnZSAoc2V0IHRvIHplcm8gaWYgbm90IHJlbGV2YW50KS4NCiAg KiBjdGxsb2NrOiBMV0xvY2sgdG8gdXNlIHRvIGNvbnRyb2wgYWNjZXNzIHRvIHRoZSBzaGFyZWQg Y29udHJvbCBzdHJ1Y3R1cmUuDQogICogc3ViZGlyOiBQR0RBVEEtcmVsYXRpdmUgc3ViZGlyZWN0 b3J5IHRoYXQgd2lsbCBjb250YWluIHRoZSBmaWxlcy4NCiAgKiBidWZmZXJfdHJhbmNoZV9pZDog dHJhbmNoZSBJRCB0byB1c2UgZm9yIHRoZSBTTFJVJ3MgcGVyLWJ1ZmZlciBMV0xvY2tzLg0KQEAg LTIzNSw3ICsyMzIsNyBAQCBTaW1wbGVMcnVBdXRvdHVuZUJ1ZmZlcnMoaW50IGRpdmlzb3IsIGlu dCBtYXgpDQogICogc3luY19oYW5kbGVyOiB3aGljaCBzZXQgb2YgZnVuY3Rpb25zIHRvIHVzZSB0 byBoYW5kbGUgc3luYyByZXF1ZXN0cw0KICAqLw0KIHZvaWQNCi1TaW1wbGVMcnVJbml0KFNscnVD dGwgY3RsLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgbnNsb3RzLCBpbnQgbmxzbnMsDQorU2ltcGxl THJ1SW5pdChTbHJ1Q3RsIGN0bCwgY29uc3QgY2hhciAqbmFtZSwgaW50IG5zbG90cywNCiAJCQkg IGNvbnN0IGNoYXIgKnN1YmRpciwgaW50IGJ1ZmZlcl90cmFuY2hlX2lkLCBpbnQgYmFua190cmFu Y2hlX2lkLA0KIAkJCSAgU3luY1JlcXVlc3RIYW5kbGVyIHN5bmNfaGFuZGxlciwgYm9vbCBsb25n X3NlZ21lbnRfbmFtZXMpDQogew0KQEAgLTI0Niw3ICsyNDMsNyBAQCBTaW1wbGVMcnVJbml0KFNs cnVDdGwgY3RsLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgbnNsb3RzLCBpbnQgbmxzbnMsDQogCUFz c2VydChuc2xvdHMgPD0gU0xSVV9NQVhfQUxMT1dFRF9CVUZGRVJTKTsNCiANCiAJc2hhcmVkID0g KFNscnVTaGFyZWQpIFNobWVtSW5pdFN0cnVjdChuYW1lLA0KLQkJCQkJCQkJCQkgIFNpbXBsZUxy dVNobWVtU2l6ZShuc2xvdHMsIG5sc25zKSwNCisJCQkJCQkJCQkJICBTaW1wbGVMcnVTaG1lbVNp emUobnNsb3RzKSwNCiAJCQkJCQkJCQkJICAmZm91bmQpOw0KIA0KIAlpZiAoIUlzVW5kZXJQb3N0 bWFzdGVyKQ0KQEAgLTI2MCw3ICsyNTcsNiBAQCBTaW1wbGVMcnVJbml0KFNscnVDdGwgY3RsLCBj b25zdCBjaGFyICpuYW1lLCBpbnQgbnNsb3RzLCBpbnQgbmxzbnMsDQogCQltZW1zZXQoc2hhcmVk LCAwLCBzaXplb2YoU2xydVNoYXJlZERhdGEpKTsNCiANCiAJCXNoYXJlZC0+bnVtX3Nsb3RzID0g bnNsb3RzOw0KLQkJc2hhcmVkLT5sc25fZ3JvdXBzX3Blcl9wYWdlID0gbmxzbnM7DQogDQogCQlw Z19hdG9taWNfaW5pdF91NjQoJnNoYXJlZC0+bGF0ZXN0X3BhZ2VfbnVtYmVyLCAwKTsNCiANCkBA IC0yODcsMTIgKzI4Myw2IEBAIFNpbXBsZUxydUluaXQoU2xydUN0bCBjdGwsIGNvbnN0IGNoYXIg Km5hbWUsIGludCBuc2xvdHMsIGludCBubHNucywNCiAJCXNoYXJlZC0+YmFua19jdXJfbHJ1X2Nv dW50ID0gKGludCAqKSAocHRyICsgb2Zmc2V0KTsNCiAJCW9mZnNldCArPSBNQVhBTElHTihuYmFu a3MgKiBzaXplb2YoaW50KSk7DQogDQotCQlpZiAobmxzbnMgPiAwKQ0KLQkJew0KLQkJCXNoYXJl ZC0+Z3JvdXBfbHNuID0gKFhMb2dSZWNQdHIgKikgKHB0ciArIG9mZnNldCk7DQotCQkJb2Zmc2V0 ICs9IE1BWEFMSUdOKG5zbG90cyAqIG5sc25zICogc2l6ZW9mKFhMb2dSZWNQdHIpKTsNCi0JCX0N Ci0NCiAJCXB0ciArPSBCVUZGRVJBTElHTihvZmZzZXQpOw0KIAkJZm9yIChpbnQgc2xvdG5vID0g MDsgc2xvdG5vIDwgbnNsb3RzOyBzbG90bm8rKykNCiAJCXsNCkBAIC0zMTQsNyArMzA0LDcgQEAg U2ltcGxlTHJ1SW5pdChTbHJ1Q3RsIGN0bCwgY29uc3QgY2hhciAqbmFtZSwgaW50IG5zbG90cywg aW50IG5sc25zLA0KIAkJfQ0KIA0KIAkJLyogU2hvdWxkIGZpdCB0byBlc3RpbWF0ZWQgc2htZW0g c2l6ZSAqLw0KLQkJQXNzZXJ0KHB0ciAtIChjaGFyICopIHNoYXJlZCA8PSBTaW1wbGVMcnVTaG1l bVNpemUobnNsb3RzLCBubHNucykpOw0KKwkJQXNzZXJ0KHB0ciAtIChjaGFyICopIHNoYXJlZCA8 PSBTaW1wbGVMcnVTaG1lbVNpemUobnNsb3RzKSk7DQogCX0NCiAJZWxzZQ0KIAl7DQpAQCAtMzc4 LDExICszNjgsOCBAQCBTaW1wbGVMcnVaZXJvUGFnZShTbHJ1Q3RsIGN0bCwgaW50NjQgcGFnZW5v KQ0KIAlzaGFyZWQtPnBhZ2VfZGlydHlbc2xvdG5vXSA9IHRydWU7DQogCVNscnVSZWNlbnRseVVz ZWQoc2hhcmVkLCBzbG90bm8pOw0KIA0KLQkvKiBTZXQgdGhlIGJ1ZmZlciB0byB6ZXJvZXMgKi8N Ci0JTWVtU2V0KHNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXSwgMCwgQkxDS1NaKTsNCi0NCi0J LyogU2V0IHRoZSBMU05zIGZvciB0aGlzIG5ldyBwYWdlIHRvIHplcm8gKi8NCi0JU2ltcGxlTHJ1 WmVyb0xTTnMoY3RsLCBzbG90bm8pOw0KKyAgICAvKiBJbml0aWFsaXplIHRoZSBwYWdlLiAqLw0K KwlQYWdlSW5pdFNMUlUoc2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9dLCBCTENLU1osIDApOw0K IA0KIAkvKg0KIAkgKiBBc3N1bWUgdGhpcyBwYWdlIGlzIG5vdyB0aGUgbGF0ZXN0IGFjdGl2ZSBw YWdlLg0KQEAgLTQwMCwyNiArMzg3LDYgQEAgU2ltcGxlTHJ1WmVyb1BhZ2UoU2xydUN0bCBjdGws IGludDY0IHBhZ2VubykNCiAJcmV0dXJuIHNsb3RubzsNCiB9DQogDQotLyoNCi0gKiBaZXJvIGFs bCB0aGUgTFNOcyB3ZSBzdG9yZSBmb3IgdGhpcyBzbHJ1IHBhZ2UuDQotICoNCi0gKiBUaGlzIHNo b3VsZCBiZSBjYWxsZWQgZWFjaCB0aW1lIHdlIGNyZWF0ZSBhIG5ldyBwYWdlLCBhbmQgZWFjaCB0 aW1lIHdlIHJlYWQNCi0gKiBpbiBhIHBhZ2UgZnJvbSBkaXNrIGludG8gYW4gZXhpc3RpbmcgYnVm ZmVyLiAgKFN1Y2ggYW4gb2xkIHBhZ2UgY2Fubm90DQotICogaGF2ZSBhbnkgaW50ZXJlc3Rpbmcg TFNOcywgc2luY2Ugd2UnZCBoYXZlIGZsdXNoZWQgdGhlbSBiZWZvcmUgd3JpdGluZw0KLSAqIHRo ZSBwYWdlIGluIHRoZSBmaXJzdCBwbGFjZS4pDQotICoNCi0gKiBUaGlzIGFzc3VtZXMgdGhhdCBJ bnZhbGlkWExvZ1JlY1B0ciBpcyBiaXR3aXNlLWFsbC0wLg0KLSAqLw0KLXN0YXRpYyB2b2lkDQot U2ltcGxlTHJ1WmVyb0xTTnMoU2xydUN0bCBjdGwsIGludCBzbG90bm8pDQotew0KLQlTbHJ1U2hh cmVkCXNoYXJlZCA9IGN0bC0+c2hhcmVkOw0KLQ0KLQlpZiAoc2hhcmVkLT5sc25fZ3JvdXBzX3Bl cl9wYWdlID4gMCkNCi0JCU1lbVNldCgmc2hhcmVkLT5ncm91cF9sc25bc2xvdG5vICogc2hhcmVk LT5sc25fZ3JvdXBzX3Blcl9wYWdlXSwgMCwNCi0JCQkgICBzaGFyZWQtPmxzbl9ncm91cHNfcGVy X3BhZ2UgKiBzaXplb2YoWExvZ1JlY1B0cikpOw0KLX0NCi0NCiAvKg0KICAqIFdhaXQgZm9yIGFu eSBhY3RpdmUgSS9PIG9uIGEgcGFnZSBzbG90IHRvIGZpbmlzaC4gIChUaGlzIGRvZXMgbm90DQog ICogZ3VhcmFudGVlIHRoYXQgbmV3IEkvTyBoYXNuJ3QgYmVlbiBzdGFydGVkIGJlZm9yZSB3ZSBy ZXR1cm4sIHRob3VnaC4NCkBAIC01NDYsOSArNTEzLDYgQEAgU2ltcGxlTHJ1UmVhZFBhZ2UoU2xy dUN0bCBjdGwsIGludDY0IHBhZ2VubywgYm9vbCB3cml0ZV9vaywNCiAJCS8qIERvIHRoZSByZWFk ICovDQogCQlvayA9IFNscnVQaHlzaWNhbFJlYWRQYWdlKGN0bCwgcGFnZW5vLCBzbG90bm8pOw0K IA0KLQkJLyogU2V0IHRoZSBMU05zIGZvciB0aGlzIG5ld2x5IHJlYWQtaW4gcGFnZSB0byB6ZXJv ICovDQotCQlTaW1wbGVMcnVaZXJvTFNOcyhjdGwsIHNsb3Rubyk7DQotDQogCQkvKiBSZS1hY3F1 aXJlIGJhbmsgY29udHJvbCBsb2NrIGFuZCB1cGRhdGUgcGFnZSBzdGF0ZSAqLw0KIAkJTFdMb2Nr QWNxdWlyZShiYW5rbG9jaywgTFdfRVhDTFVTSVZFKTsNCiANCkBAIC04MTUsNyArNzc5LDcgQEAg U2xydVBoeXNpY2FsUmVhZFBhZ2UoU2xydUN0bCBjdGwsIGludDY0IHBhZ2VubywgaW50IHNsb3Ru bykNCiAJCWVyZXBvcnQoTE9HLA0KIAkJCQkoZXJybXNnKCJmaWxlIFwiJXNcIiBkb2Vzbid0IGV4 aXN0LCByZWFkaW5nIGFzIHplcm9lcyIsDQogCQkJCQkJcGF0aCkpKTsNCi0JCU1lbVNldChzaGFy ZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10sIDAsIEJMQ0tTWik7DQorCQlQYWdlSW5pdFNMUlUoc2hh cmVkLT5wYWdlX2J1ZmZlcltzbG90bm9dLCBCTENLU1osIDApOw0KIAkJcmV0dXJuIHRydWU7DQog CX0NCiANCkBAIC04MzgsNiArODAyLDEzIEBAIFNscnVQaHlzaWNhbFJlYWRQYWdlKFNscnVDdGwg Y3RsLCBpbnQ2NCBwYWdlbm8sIGludCBzbG90bm8pDQogCQlyZXR1cm4gZmFsc2U7DQogCX0NCiAN CisJaWYgKCFQYWdlSXNWZXJpZmllZEV4dGVuZGVkKHNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5v XSwgcGFnZW5vLCBQSVZfUkVQT1JUX1NUQVQpKQ0KKwl7DQorCQlzbHJ1X2VycmNhdXNlID0gU0xS VV9EQVRBX0NPUlJVUFRFRDsNCisJCXNscnVfZXJybm8gPSAwOw0KKwkJcmV0dXJuIGZhbHNlOw0K Kwl9DQorDQogCXJldHVybiB0cnVlOw0KIH0NCiANCkBAIC04NjQsNiArODM1LDggQEAgU2xydVBo eXNpY2FsV3JpdGVQYWdlKFNscnVDdGwgY3RsLCBpbnQ2NCBwYWdlbm8sIGludCBzbG90bm8sIFNs cnVXcml0ZUFsbCBmZGF0YSkNCiAJb2ZmX3QJCW9mZnNldCA9IHJwYWdlbm8gKiBCTENLU1o7DQog CWNoYXIJCXBhdGhbTUFYUEdQQVRIXTsNCiAJaW50CQkJZmQgPSAtMTsNCisJUGFnZQkJcGFnZSA9 IHNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXTsNCisJWExvZ1JlY1B0cglsc247DQogDQogCS8q IHVwZGF0ZSB0aGUgc3RhdHMgY291bnRlciBvZiB3cml0dGVuIHBhZ2VzICovDQogCXBnc3RhdF9j b3VudF9zbHJ1X3BhZ2Vfd3JpdHRlbihzaGFyZWQtPnNscnVfc3RhdHNfaWR4KTsNCkBAIC04NzMs NDAgKzg0NiwxOCBAQCBTbHJ1UGh5c2ljYWxXcml0ZVBhZ2UoU2xydUN0bCBjdGwsIGludDY0IHBh Z2VubywgaW50IHNsb3RubywgU2xydVdyaXRlQWxsIGZkYXRhKQ0KIAkgKiB3cml0ZSBvdXQgZGF0 YSBiZWZvcmUgYXNzb2NpYXRlZCBXQUwgcmVjb3Jkcy4gIFRoaXMgaXMgdGhlIHNhbWUgYWN0aW9u DQogCSAqIHBlcmZvcm1lZCBkdXJpbmcgRmx1c2hCdWZmZXIoKSBpbiB0aGUgbWFpbiBidWZmZXIg bWFuYWdlci4NCiAJICovDQotCWlmIChzaGFyZWQtPmdyb3VwX2xzbiAhPSBOVUxMKQ0KKwlsc24g PSBQYWdlR2V0TFNOKHBhZ2UpOw0KKwlpZiAoIVhMb2dSZWNQdHJJc0ludmFsaWQobHNuKSkNCiAJ ew0KIAkJLyoNCi0JCSAqIFdlIG11c3QgZGV0ZXJtaW5lIHRoZSBsYXJnZXN0IGFzeW5jLWNvbW1p dCBMU04gZm9yIHRoZSBwYWdlLiBUaGlzDQotCQkgKiBpcyBhIGJpdCB0ZWRpb3VzLCBidXQgc2lu Y2UgdGhpcyBlbnRpcmUgZnVuY3Rpb24gaXMgYSBzbG93IHBhdGgNCi0JCSAqIGFueXdheSwgaXQg c2VlbXMgYmV0dGVyIHRvIGRvIHRoaXMgaGVyZSB0aGFuIHRvIG1haW50YWluIGEgcGVyLXBhZ2UN Ci0JCSAqIExTTiB2YXJpYWJsZSAod2hpY2gnZCBuZWVkIGFuIGV4dHJhIGNvbXBhcmlzb24gaW4g dGhlDQotCQkgKiB0cmFuc2FjdGlvbi1jb21taXQgcGF0aCkuDQorCQkgKiBBcyBub3RlZCBhYm92 ZSwgZWxvZyhFUlJPUikgaXMgbm90IGFjY2VwdGFibGUgaGVyZSwgc28gaWYNCisJCSAqIFhMb2dG bHVzaCB3ZXJlIHRvIGZhaWwsIHdlIG11c3QgUEFOSUMuICBUaGlzIGlzbid0IG11Y2ggb2YgYQ0K KwkJICogcmVzdHJpY3Rpb24gYmVjYXVzZSBYTG9nRmx1c2ggaXMganVzdCBhYm91dCBhbGwgY3Jp dGljYWwNCisJCSAqIHNlY3Rpb24gYW55d2F5LCBidXQgbGV0J3MgbWFrZSBzdXJlLg0KIAkJICov DQotCQlYTG9nUmVjUHRyCW1heF9sc247DQotCQlpbnQJCQlsc25pbmRleDsNCi0NCi0JCWxzbmlu ZGV4ID0gc2xvdG5vICogc2hhcmVkLT5sc25fZ3JvdXBzX3Blcl9wYWdlOw0KLQkJbWF4X2xzbiA9 IHNoYXJlZC0+Z3JvdXBfbHNuW2xzbmluZGV4KytdOw0KLQkJZm9yIChpbnQgbHNub2ZmID0gMTsg bHNub2ZmIDwgc2hhcmVkLT5sc25fZ3JvdXBzX3Blcl9wYWdlOyBsc25vZmYrKykNCi0JCXsNCi0J CQlYTG9nUmVjUHRyCXRoaXNfbHNuID0gc2hhcmVkLT5ncm91cF9sc25bbHNuaW5kZXgrK107DQot DQotCQkJaWYgKG1heF9sc24gPCB0aGlzX2xzbikNCi0JCQkJbWF4X2xzbiA9IHRoaXNfbHNuOw0K LQkJfQ0KLQ0KLQkJaWYgKCFYTG9nUmVjUHRySXNJbnZhbGlkKG1heF9sc24pKQ0KLQkJew0KLQkJ CS8qDQotCQkJICogQXMgbm90ZWQgYWJvdmUsIGVsb2coRVJST1IpIGlzIG5vdCBhY2NlcHRhYmxl IGhlcmUsIHNvIGlmDQotCQkJICogWExvZ0ZsdXNoIHdlcmUgdG8gZmFpbCwgd2UgbXVzdCBQQU5J Qy4gIFRoaXMgaXNuJ3QgbXVjaCBvZiBhDQotCQkJICogcmVzdHJpY3Rpb24gYmVjYXVzZSBYTG9n Rmx1c2ggaXMganVzdCBhYm91dCBhbGwgY3JpdGljYWwNCi0JCQkgKiBzZWN0aW9uIGFueXdheSwg YnV0IGxldCdzIG1ha2Ugc3VyZS4NCi0JCQkgKi8NCi0JCQlTVEFSVF9DUklUX1NFQ1RJT04oKTsN Ci0JCQlYTG9nRmx1c2gobWF4X2xzbik7DQotCQkJRU5EX0NSSVRfU0VDVElPTigpOw0KLQkJfQ0K KwkJU1RBUlRfQ1JJVF9TRUNUSU9OKCk7DQorCQlYTG9nRmx1c2gobHNuKTsNCisJCUVORF9DUklU X1NFQ1RJT04oKTsNCiAJfQ0KIA0KIAkvKg0KQEAgLTk3MSw2ICs5MjIsOCBAQCBTbHJ1UGh5c2lj YWxXcml0ZVBhZ2UoU2xydUN0bCBjdGwsIGludDY0IHBhZ2VubywgaW50IHNsb3RubywgU2xydVdy aXRlQWxsIGZkYXRhKQ0KIAkJfQ0KIAl9DQogDQorCVBhZ2VTZXRDaGVja3N1bUlucGxhY2Uoc2hh cmVkLT5wYWdlX2J1ZmZlcltzbG90bm9dLCBwYWdlbm8pOw0KKw0KIAllcnJubyA9IDA7DQogCXBn c3RhdF9yZXBvcnRfd2FpdF9zdGFydChXQUlUX0VWRU5UX1NMUlVfV1JJVEUpOw0KIAlpZiAocGdf cHdyaXRlKGZkLCBzaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10sIEJMQ0tTWiwgb2Zmc2V0KSAh PSBCTENLU1opDQpAQCAtMTA5MSw2ICsxMDQ0LDEzIEBAIFNscnVSZXBvcnRJT0Vycm9yKFNscnVD dGwgY3RsLCBpbnQ2NCBwYWdlbm8sIFRyYW5zYWN0aW9uSWQgeGlkKQ0KIAkJCQkJIGVycmRldGFp bCgiQ291bGQgbm90IGNsb3NlIGZpbGUgXCIlc1wiOiAlbS4iLA0KIAkJCQkJCQkgICBwYXRoKSkp Ow0KIAkJCWJyZWFrOw0KKwkJY2FzZSBTTFJVX0RBVEFfQ09SUlVQVEVEOg0KKwkJCWVyZXBvcnQo RVJST1IsDQorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwNCisJCQkJCSBl cnJtc2coImNvdWxkIG5vdCBhY2Nlc3Mgc3RhdHVzIG9mIHRyYW5zYWN0aW9uICV1IiwgeGlkKSwN CisJCQkJCSBlcnJkZXRhaWwoIkludmFsaWQgcGFnZSBmcm9tIGZpbGUgXCIlc1wiIGF0IG9mZnNl dCAlZC4iLA0KKwkJCQkJCQkgICBwYXRoLCBvZmZzZXQpKSk7DQorCQkJYnJlYWs7DQogCQlkZWZh dWx0Og0KIAkJCS8qIGNhbid0IGdldCBoZXJlLCB3ZSB0cnVzdCAqLw0KIAkJCWVsb2coRVJST1Is ICJ1bnJlY29nbml6ZWQgU2ltcGxlTHJ1IGVycm9yIGNhdXNlOiAlZCIsDQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc3VidHJhbnMuYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL3N1YnRyYW5zLmMNCmluZGV4IDUwYmIxZDhjZmMuLjU1NDljYWMzYTYgMTAwNjQ0 DQotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zdWJ0cmFucy5jDQorKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zdWJ0cmFucy5jDQpAQCAtMzQsNiArMzQsNyBAQA0KICNp bmNsdWRlICJtaXNjYWRtaW4uaCINCiAjaW5jbHVkZSAicGdfdHJhY2UuaCINCiAjaW5jbHVkZSAi dXRpbHMvZ3VjX2hvb2tzLmgiDQorI2luY2x1ZGUgInN0b3JhZ2UvYnVmcGFnZS5oIg0KICNpbmNs dWRlICJ1dGlscy9zbmFwbWdyLmgiDQogDQogDQpAQCAtNTEsNyArNTIsNyBAQA0KICAqLw0KIA0K IC8qIFdlIG5lZWQgZm91ciBieXRlcyBwZXIgeGFjdCAqLw0KLSNkZWZpbmUgU1VCVFJBTlNfWEFD VFNfUEVSX1BBR0UgKEJMQ0tTWiAvIHNpemVvZihUcmFuc2FjdGlvbklkKSkNCisjZGVmaW5lIFNV QlRSQU5TX1hBQ1RTX1BFUl9QQUdFIChTaXplT2ZQYWdlQ29udGVudHMgLyBzaXplb2YoVHJhbnNh Y3Rpb25JZCkpDQogDQogLyoNCiAgKiBBbHRob3VnaCB3ZSByZXR1cm4gYW4gaW50NjQgdGhlIGFj dHVhbCB2YWx1ZSBjYW4ndCBjdXJyZW50bHkgZXhjZWVkDQpAQCAtOTcsNyArOTgsNyBAQCBTdWJU cmFuc1NldFBhcmVudChUcmFuc2FjdGlvbklkIHhpZCwgVHJhbnNhY3Rpb25JZCBwYXJlbnQpDQog CUxXTG9ja0FjcXVpcmUobG9jaywgTFdfRVhDTFVTSVZFKTsNCiANCiAJc2xvdG5vID0gU2ltcGxl THJ1UmVhZFBhZ2UoU3ViVHJhbnNDdGwsIHBhZ2VubywgdHJ1ZSwgeGlkKTsNCi0JcHRyID0gKFRy YW5zYWN0aW9uSWQgKikgU3ViVHJhbnNDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXTsN CisJcHRyID0gKFRyYW5zYWN0aW9uSWQgKikgUGFnZUdldENvbnRlbnRzKFN1YlRyYW5zQ3RsLT5z aGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10pOw0KIAlwdHIgKz0gZW50cnlubzsNCiANCiAJLyoN CkBAIC0xMzcsNyArMTM4LDcgQEAgU3ViVHJhbnNHZXRQYXJlbnQoVHJhbnNhY3Rpb25JZCB4aWQp DQogCS8qIGxvY2sgaXMgYWNxdWlyZWQgYnkgU2ltcGxlTHJ1UmVhZFBhZ2VfUmVhZE9ubHkgKi8N CiANCiAJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2VfUmVhZE9ubHkoU3ViVHJhbnNDdGwsIHBh Z2VubywgeGlkKTsNCi0JcHRyID0gKFRyYW5zYWN0aW9uSWQgKikgU3ViVHJhbnNDdGwtPnNoYXJl ZC0+cGFnZV9idWZmZXJbc2xvdG5vXTsNCisJcHRyID0gKFRyYW5zYWN0aW9uSWQgKikgUGFnZUdl dENvbnRlbnRzKFN1YlRyYW5zQ3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10pOw0KIAlw dHIgKz0gZW50cnlubzsNCiANCiAJcGFyZW50ID0gKnB0cjsNCkBAIC0yMTMsNyArMjE0LDcgQEAg U1VCVFJBTlNTaG1lbUJ1ZmZlcnModm9pZCkNCiBTaXplDQogU1VCVFJBTlNTaG1lbVNpemUodm9p ZCkNCiB7DQotCXJldHVybiBTaW1wbGVMcnVTaG1lbVNpemUoU1VCVFJBTlNTaG1lbUJ1ZmZlcnMo KSwgMCk7DQorCXJldHVybiBTaW1wbGVMcnVTaG1lbVNpemUoU1VCVFJBTlNTaG1lbUJ1ZmZlcnMo KSk7DQogfQ0KIA0KIHZvaWQNCkBAIC0yNDEsNyArMjQyLDcgQEAgU1VCVFJBTlNTaG1lbUluaXQo dm9pZCkNCiAJQXNzZXJ0KHN1YnRyYW5zYWN0aW9uX2J1ZmZlcnMgIT0gMCk7DQogDQogCVN1YlRy YW5zQ3RsLT5QYWdlUHJlY2VkZXMgPSBTdWJUcmFuc1BhZ2VQcmVjZWRlczsNCi0JU2ltcGxlTHJ1 SW5pdChTdWJUcmFuc0N0bCwgInN1YnRyYW5zYWN0aW9uIiwgU1VCVFJBTlNTaG1lbUJ1ZmZlcnMo KSwgMCwNCisJU2ltcGxlTHJ1SW5pdChTdWJUcmFuc0N0bCwgInN1YnRyYW5zYWN0aW9uIiwgU1VC VFJBTlNTaG1lbUJ1ZmZlcnMoKSwNCiAJCQkJICAicGdfc3VidHJhbnMiLCBMV1RSQU5DSEVfU1VC VFJBTlNfQlVGRkVSLA0KIAkJCQkgIExXVFJBTkNIRV9TVUJUUkFOU19TTFJVLCBTWU5DX0hBTkRM RVJfTk9ORSwgZmFsc2UpOw0KIAlTbHJ1UGFnZVByZWNlZGVzVW5pdFRlc3RzKFN1YlRyYW5zQ3Rs LCBTVUJUUkFOU19YQUNUU19QRVJfUEFHRSk7DQpAQCAtMzY2LDcgKzM2Nyw2IEBAIENoZWNrUG9p bnRTVUJUUkFOUyh2b2lkKQ0KIAlUUkFDRV9QT1NUR1JFU1FMX1NVQlRSQU5TX0NIRUNLUE9JTlRf RE9ORSh0cnVlKTsNCiB9DQogDQotDQogLyoNCiAgKiBNYWtlIHN1cmUgdGhhdCBTVUJUUkFOUyBo YXMgcm9vbSBmb3IgYSBuZXdseS1hbGxvY2F0ZWQgWElELg0KICAqDQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMN CmluZGV4IGQwODkxZTNmMGUuLmE0MDBjNTRjMDMgMTAwNjQ0DQotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy9hc3luYy5jDQorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hc3luYy5jDQpAQCAt MTQwLDYgKzE0MCw3IEBADQogI2luY2x1ZGUgImxpYnBxL2xpYnBxLmgiDQogI2luY2x1ZGUgImxp YnBxL3BxZm9ybWF0LmgiDQogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIg0KKyNpbmNsdWRlICJzdG9y YWdlL2J1ZnBhZ2UuaCINCiAjaW5jbHVkZSAic3RvcmFnZS9pcGMuaCINCiAjaW5jbHVkZSAic3Rv cmFnZS9sbWdyLmgiDQogI2luY2x1ZGUgInN0b3JhZ2UvcHJvY3NpZ25hbC5oIg0KQEAgLTE2MCw3 ICsxNjEsNyBAQA0KICAqIHRoYW4gdGhhdCwgc28gY2hhbmdlcyBpbiB0aGF0IGRhdGEgc3RydWN0 dXJlIHdvbid0IGFmZmVjdCB1c2VyLXZpc2libGUNCiAgKiByZXN0cmljdGlvbnMuDQogICovDQot I2RlZmluZSBOT1RJRllfUEFZTE9BRF9NQVhfTEVOR1RICShCTENLU1ogLSBOQU1FREFUQUxFTiAt IDEyOCkNCisjZGVmaW5lIE5PVElGWV9QQVlMT0FEX01BWF9MRU5HVEgJKFNpemVPZlBhZ2VDb250 ZW50cyAtIE5BTUVEQVRBTEVOIC0gMTI4KQ0KIA0KIC8qDQogICogU3RydWN0IHJlcHJlc2VudGlu ZyBhbiBlbnRyeSBpbiB0aGUgZ2xvYmFsIG5vdGlmeSBxdWV1ZQ0KQEAgLTMwOSw3ICszMTAsNyBA QCBzdGF0aWMgU2xydUN0bERhdGEgTm90aWZ5Q3RsRGF0YTsNCiANCiAjZGVmaW5lIE5vdGlmeUN0 bAkJCQkJKCZOb3RpZnlDdGxEYXRhKQ0KICNkZWZpbmUgUVVFVUVfUEFHRVNJWkUJCQkJQkxDS1Na DQotDQorI2RlZmluZSBRVUVVRV9QQUdFX0NBUEFDSVRZCQkJKFFVRVVFX1BBR0VTSVpFIC0gTUFY QUxJR04oU2l6ZU9mUGFnZUhlYWRlckRhdGEpKQ0KICNkZWZpbmUgUVVFVUVfRlVMTF9XQVJOX0lO VEVSVkFMCTUwMDAJLyogd2FybiBhdCBtb3N0IG9uY2UgZXZlcnkgNXMgKi8NCiANCiAvKg0KQEAg LTQ5MCw3ICs0OTEsNyBAQCBBc3luY1NobWVtU2l6ZSh2b2lkKQ0KIAlzaXplID0gbXVsX3NpemUo TWF4QmFja2VuZHMsIHNpemVvZihRdWV1ZUJhY2tlbmRTdGF0dXMpKTsNCiAJc2l6ZSA9IGFkZF9z aXplKHNpemUsIG9mZnNldG9mKEFzeW5jUXVldWVDb250cm9sLCBiYWNrZW5kKSk7DQogDQotCXNp emUgPSBhZGRfc2l6ZShzaXplLCBTaW1wbGVMcnVTaG1lbVNpemUobm90aWZ5X2J1ZmZlcnMsIDAp KTsNCisJc2l6ZSA9IGFkZF9zaXplKHNpemUsIFNpbXBsZUxydVNobWVtU2l6ZShub3RpZnlfYnVm ZmVycykpOw0KIA0KIAlyZXR1cm4gc2l6ZTsNCiB9DQpAQCAtNTM1LDcgKzUzNiw3IEBAIEFzeW5j U2htZW1Jbml0KHZvaWQpDQogCSAqIG5hbWVzIGFyZSB1c2VkIGluIG9yZGVyIHRvIGF2b2lkIHdy YXBhcm91bmQuDQogCSAqLw0KIAlOb3RpZnlDdGwtPlBhZ2VQcmVjZWRlcyA9IGFzeW5jUXVldWVQ YWdlUHJlY2VkZXM7DQotCVNpbXBsZUxydUluaXQoTm90aWZ5Q3RsLCAibm90aWZ5Iiwgbm90aWZ5 X2J1ZmZlcnMsIDAsDQorCVNpbXBsZUxydUluaXQoTm90aWZ5Q3RsLCAibm90aWZ5Iiwgbm90aWZ5 X2J1ZmZlcnMsDQogCQkJCSAgInBnX25vdGlmeSIsIExXVFJBTkNIRV9OT1RJRllfQlVGRkVSLCBM V1RSQU5DSEVfTk9USUZZX1NMUlUsDQogCQkJCSAgU1lOQ19IQU5ETEVSX05PTkUsIHRydWUpOw0K IA0KQEAgLTEyOTUsMTQgKzEyOTYsMTQgQEAgYXN5bmNRdWV1ZUFkdmFuY2Uodm9sYXRpbGUgUXVl dWVQb3NpdGlvbiAqcG9zaXRpb24sIGludCBlbnRyeUxlbmd0aCkNCiAJICogd3JpdHRlbiBvciBy ZWFkLg0KIAkgKi8NCiAJb2Zmc2V0ICs9IGVudHJ5TGVuZ3RoOw0KLQlBc3NlcnQob2Zmc2V0IDw9 IFFVRVVFX1BBR0VTSVpFKTsNCisJQXNzZXJ0KG9mZnNldCA8PSBRVUVVRV9QQUdFX0NBUEFDSVRZ KTsNCiANCiAJLyoNCiAJICogSW4gYSBzZWNvbmQgc3RlcCBjaGVjayBpZiBhbm90aGVyIGVudHJ5 IGNhbiBwb3NzaWJseSBiZSB3cml0dGVuIHRvIHRoZQ0KIAkgKiBwYWdlLiBJZiBzbywgc3RheSBo ZXJlLCB3ZSBoYXZlIHJlYWNoZWQgdGhlIG5leHQgcG9zaXRpb24uIElmIG5vdCwgdGhlbg0KIAkg KiB3ZSBuZWVkIHRvIG1vdmUgb24gdG8gdGhlIG5leHQgcGFnZS4NCiAJICovDQotCWlmIChvZmZz ZXQgKyBRVUVVRUFMSUdOKEFzeW5jUXVldWVFbnRyeUVtcHR5U2l6ZSkgPiBRVUVVRV9QQUdFU0la RSkNCisJaWYgKG9mZnNldCArIFFVRVVFQUxJR04oQXN5bmNRdWV1ZUVudHJ5RW1wdHlTaXplKSA+ IFFVRVVFX1BBR0VfQ0FQQUNJVFkpDQogCXsNCiAJCXBhZ2VubysrOw0KIAkJb2Zmc2V0ID0gMDsN CkBAIC0xNDA1LDcgKzE0MDYsNyBAQCBhc3luY1F1ZXVlQWRkRW50cmllcyhMaXN0Q2VsbCAqbmV4 dE5vdGlmeSkNCiAJCW9mZnNldCA9IFFVRVVFX1BPU19PRkZTRVQocXVldWVfaGVhZCk7DQogDQog CQkvKiBDaGVjayB3aGV0aGVyIHRoZSBlbnRyeSByZWFsbHkgZml0cyBvbiB0aGUgY3VycmVudCBw YWdlICovDQotCQlpZiAob2Zmc2V0ICsgcWUubGVuZ3RoIDw9IFFVRVVFX1BBR0VTSVpFKQ0KKwkJ aWYgKG9mZnNldCArIHFlLmxlbmd0aCA8PSBRVUVVRV9QQUdFX0NBUEFDSVRZKQ0KIAkJew0KIAkJ CS8qIE9LLCBzbyBhZHZhbmNlIG5leHROb3RpZnkgcGFzdCB0aGlzIGl0ZW0gKi8NCiAJCQluZXh0 Tm90aWZ5ID0gbG5leHQocGVuZGluZ05vdGlmaWVzLT5ldmVudHMsIG5leHROb3RpZnkpOw0KQEAg LTE0MTcsMTQgKzE0MTgsMTQgQEAgYXN5bmNRdWV1ZUFkZEVudHJpZXMoTGlzdENlbGwgKm5leHRO b3RpZnkpDQogCQkJICogb25seSBjaGVjayBkYm9pZCBhbmQgc2luY2UgaXQgd29uJ3QgbWF0Y2gg YW55IHJlYWRlcidzIGRhdGFiYXNlDQogCQkJICogT0lELCB0aGV5IHdpbGwgaWdub3JlIHRoaXMg ZW50cnkgYW5kIG1vdmUgb24uDQogCQkJICovDQotCQkJcWUubGVuZ3RoID0gUVVFVUVfUEFHRVNJ WkUgLSBvZmZzZXQ7DQorCQkJcWUubGVuZ3RoID0gUVVFVUVfUEFHRV9DQVBBQ0lUWSAtIG9mZnNl dDsNCiAJCQlxZS5kYm9pZCA9IEludmFsaWRPaWQ7DQogCQkJcWUuZGF0YVswXSA9ICdcMCc7CS8q IGVtcHR5IGNoYW5uZWwgKi8NCiAJCQlxZS5kYXRhWzFdID0gJ1wwJzsJLyogZW1wdHkgcGF5bG9h ZCAqLw0KIAkJfQ0KIA0KIAkJLyogTm93IGNvcHkgcWUgaW50byB0aGUgc2hhcmVkIGJ1ZmZlciBw YWdlICovDQotCQltZW1jcHkoTm90aWZ5Q3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10g KyBvZmZzZXQsDQorCQltZW1jcHkoUGFnZUdldENvbnRlbnRzKE5vdGlmeUN0bC0+c2hhcmVkLT5w YWdlX2J1ZmZlcltzbG90bm9dKSArIG9mZnNldCwNCiAJCQkgICAmcWUsDQogCQkJICAgcWUubGVu Z3RoKTsNCiANCkBAIC0xOTU1LDEwICsxOTU2LDEwIEBAIGFzeW5jUXVldWVSZWFkQWxsTm90aWZp Y2F0aW9ucyh2b2lkKQ0KIAkJCWVsc2UNCiAJCQl7DQogCQkJCS8qIGZldGNoIGFsbCB0aGUgcmVz dCBvZiB0aGUgcGFnZSAqLw0KLQkJCQljb3B5c2l6ZSA9IFFVRVVFX1BBR0VTSVpFIC0gY3Vyb2Zm c2V0Ow0KKwkJCQljb3B5c2l6ZSA9IFFVRVVFX1BBR0VfQ0FQQUNJVFkgLSBjdXJvZmZzZXQ7DQog CQkJfQ0KLQkJCW1lbWNweShwYWdlX2J1ZmZlci5idWYgKyBjdXJvZmZzZXQsDQotCQkJCSAgIE5v dGlmeUN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9dICsgY3Vyb2Zmc2V0LA0KKwkJCW1l bWNweShQYWdlR2V0Q29udGVudHMocGFnZV9idWZmZXIuYnVmKSArIGN1cm9mZnNldCwNCisJCQkJ ICAgUGFnZUdldENvbnRlbnRzKE5vdGlmeUN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9d KSArIGN1cm9mZnNldCwNCiAJCQkJICAgY29weXNpemUpOw0KIAkJCS8qIFJlbGVhc2UgbG9jayB0 aGF0IHdlIGdvdCBmcm9tIFNpbXBsZUxydVJlYWRQYWdlX1JlYWRPbmx5KCkgKi8NCiAJCQlMV0xv Y2tSZWxlYXNlKFNpbXBsZUxydUdldEJhbmtMb2NrKE5vdGlmeUN0bCwgY3VycGFnZSkpOw0KQEAg LTIwMjksNyArMjAzMCw3IEBAIGFzeW5jUXVldWVQcm9jZXNzUGFnZUVudHJpZXModm9sYXRpbGUg UXVldWVQb3NpdGlvbiAqY3VycmVudCwNCiAJCWlmIChRVUVVRV9QT1NfRVFVQUwodGhpc2VudHJ5 LCBzdG9wKSkNCiAJCQlicmVhazsNCiANCi0JCXFlID0gKEFzeW5jUXVldWVFbnRyeSAqKSAocGFn ZV9idWZmZXIgKyBRVUVVRV9QT1NfT0ZGU0VUKHRoaXNlbnRyeSkpOw0KKwkJcWUgPSAoQXN5bmNR dWV1ZUVudHJ5ICopIChQYWdlR2V0Q29udGVudHMocGFnZV9idWZmZXIpICsgUVVFVUVfUE9TX09G RlNFVCh0aGlzZW50cnkpKTsNCiANCiAJCS8qDQogCQkgKiBBZHZhbmNlICpjdXJyZW50IG92ZXIg dGhpcyBtZXNzYWdlLCBwb3NzaWJseSB0byB0aGUgbmV4dCBwYWdlLiBBcw0KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcmVkaWNhdGUuYyBiL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvbG1nci9wcmVkaWNhdGUuYw0KaW5kZXggM2YzNzhjMDA5OS4uYzI2YWU4ZGRkMiAxMDA2NDQN Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcmVkaWNhdGUuYw0KKysrIGIvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9sbWdyL3ByZWRpY2F0ZS5jDQpAQCAtMjA3LDYgKzIwNyw3IEBADQogI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIg0KICNpbmNsdWRlICJwZ3N0YXQuaCINCiAjaW5jbHVkZSAicG9y dC9wZ19sZmluZC5oIg0KKyNpbmNsdWRlICJzdG9yYWdlL2J1ZnBhZ2UuaCINCiAjaW5jbHVkZSAi c3RvcmFnZS9wcmVkaWNhdGUuaCINCiAjaW5jbHVkZSAic3RvcmFnZS9wcmVkaWNhdGVfaW50ZXJu YWxzLmgiDQogI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5oIg0KQEAgLTMyNiw4ICszMjcsOCBAQCBz dGF0aWMgU2xydUN0bERhdGEgU2VyaWFsU2xydUN0bERhdGE7DQogI2RlZmluZSBTZXJpYWxTbHJ1 Q3RsCQkJKCZTZXJpYWxTbHJ1Q3RsRGF0YSkNCiANCiAjZGVmaW5lIFNFUklBTF9QQUdFU0laRQkJ CUJMQ0tTWg0KLSNkZWZpbmUgU0VSSUFMX0VOVFJZU0laRQkJCXNpemVvZihTZXJDb21taXRTZXFO bykNCi0jZGVmaW5lIFNFUklBTF9FTlRSSUVTUEVSUEFHRQkoU0VSSUFMX1BBR0VTSVpFIC8gU0VS SUFMX0VOVFJZU0laRSkNCisjZGVmaW5lIFNFUklBTF9FTlRSWVNJWkUJCXNpemVvZihTZXJDb21t aXRTZXFObykNCisjZGVmaW5lIFNFUklBTF9FTlRSSUVTUEVSUEFHRQkoU0VSSUFMX1BBR0VTSVpF IC0gTUFYQUxJR04oU2l6ZU9mUGFnZUhlYWRlckRhdGEpIC8gU0VSSUFMX0VOVFJZU0laRSkNCiAN CiAvKg0KICAqIFNldCBtYXhpbXVtIHBhZ2VzIGJhc2VkIG9uIHRoZSBudW1iZXIgbmVlZGVkIHRv IHRyYWNrIGFsbCB0cmFuc2FjdGlvbnMuDQpAQCAtMzM3LDcgKzMzOCw3IEBAIHN0YXRpYyBTbHJ1 Q3RsRGF0YSBTZXJpYWxTbHJ1Q3RsRGF0YTsNCiAjZGVmaW5lIFNlcmlhbE5leHRQYWdlKHBhZ2Up ICgoKHBhZ2UpID49IFNFUklBTF9NQVhfUEFHRSkgPyAwIDogKHBhZ2UpICsgMSkNCiANCiAjZGVm aW5lIFNlcmlhbFZhbHVlKHNsb3RubywgeGlkKSAoKigoU2VyQ29tbWl0U2VxTm8gKikgXA0KLQko U2VyaWFsU2xydUN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9dICsgXA0KKwkoUGFnZUdl dENvbnRlbnRzKFNlcmlhbFNscnVDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXSkgKyBc DQogCSgoKCh1aW50MzIpICh4aWQpKSAlIFNFUklBTF9FTlRSSUVTUEVSUEFHRSkgKiBTRVJJQUxf RU5UUllTSVpFKSkpKQ0KIA0KICNkZWZpbmUgU2VyaWFsUGFnZSh4aWQpCSgoKHVpbnQzMikgKHhp ZCkpIC8gU0VSSUFMX0VOVFJJRVNQRVJQQUdFKQ0KQEAgLTc4OSwxMCArNzkwLDEzIEBAIFNlcmlh bFBhZ2VQcmVjZWRlc0xvZ2ljYWxseVVuaXRUZXN0cyh2b2lkKQ0KIAkgKiByZXF1aXJlcyBidXJu aW5nIH4yQiBYSURzIGluIHNpbmdsZS11c2VyIG1vZGUsIGEgbmVnbGlnaWJsZQ0KIAkgKiBwb3Nz aWJpbGl0eS4gIE1vcmVvdmVyLCBpZiBpdCBkb2VzIGhhcHBlbiwgdGhlIGNvbnNlcXVlbmNlIHdv dWxkIGJlDQogCSAqIG1pbGQsIG5hbWVseSBhIG5ldyB0cmFuc2FjdGlvbiBmYWlsaW5nIGluIFNp bXBsZUxydVJlYWRQYWdlKCkuDQorCSAqDQorCSAqIE5PVEU6ICBBZnRlciBhZGRpbmcgdGhlIHBh Z2UgaGVhZGVyLCB0aGUgZGVmZWN0IGFmZmVjdHMgdHdvIHBhZ2VzLg0KKwkgKiBXZSBub3cgYXNz ZXJ0IGNvcnJlY3QgdHJlYXRtZW50IG9mIGl0cyBzZWNvbmQgdG8gcHJpb3IgcGFnZS4NCiAJICov DQogCWhlYWRQYWdlID0gb2xkZXN0UGFnZTsNCiAJdGFyZ2V0UGFnZSA9IG5ld2VzdFBhZ2U7DQot CUFzc2VydChTZXJpYWxQYWdlUHJlY2VkZXNMb2dpY2FsbHkoaGVhZFBhZ2UsIHRhcmdldFBhZ2Ug LSAxKSk7DQorCUFzc2VydChTZXJpYWxQYWdlUHJlY2VkZXNMb2dpY2FsbHkoaGVhZFBhZ2UsIHRh cmdldFBhZ2UgLSAyKSk7DQogI2lmIDANCiAJQXNzZXJ0KFNlcmlhbFBhZ2VQcmVjZWRlc0xvZ2lj YWxseShoZWFkUGFnZSwgdGFyZ2V0UGFnZSkpOw0KICNlbmRpZg0KQEAgLTgxMiw3ICs4MTYsNyBA QCBTZXJpYWxJbml0KHZvaWQpDQogCSAqLw0KIAlTZXJpYWxTbHJ1Q3RsLT5QYWdlUHJlY2VkZXMg PSBTZXJpYWxQYWdlUHJlY2VkZXNMb2dpY2FsbHk7DQogCVNpbXBsZUxydUluaXQoU2VyaWFsU2xy dUN0bCwgInNlcmlhbGl6YWJsZSIsDQotCQkJCSAgc2VyaWFsaXphYmxlX2J1ZmZlcnMsIDAsICJw Z19zZXJpYWwiLA0KKwkJCQkgIHNlcmlhbGl6YWJsZV9idWZmZXJzLCAicGdfc2VyaWFsIiwNCiAJ CQkJICBMV1RSQU5DSEVfU0VSSUFMX0JVRkZFUiwgTFdUUkFOQ0hFX1NFUklBTF9TTFJVLA0KIAkJ CQkgIFNZTkNfSEFORExFUl9OT05FLCBmYWxzZSk7DQogI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJ TkcNCkBAIC0xMzc3LDcgKzEzODEsNyBAQCBQcmVkaWNhdGVMb2NrU2htZW1TaXplKHZvaWQpDQog DQogCS8qIFNoYXJlZCBtZW1vcnkgc3RydWN0dXJlcyBmb3IgU0xSVSB0cmFja2luZyBvZiBvbGQg Y29tbWl0dGVkIHhpZHMuICovDQogCXNpemUgPSBhZGRfc2l6ZShzaXplLCBzaXplb2YoU2VyaWFs Q29udHJvbERhdGEpKTsNCi0Jc2l6ZSA9IGFkZF9zaXplKHNpemUsIFNpbXBsZUxydVNobWVtU2l6 ZShzZXJpYWxpemFibGVfYnVmZmVycywgMCkpOw0KKwlzaXplID0gYWRkX3NpemUoc2l6ZSwgU2lt cGxlTHJ1U2htZW1TaXplKHNlcmlhbGl6YWJsZV9idWZmZXJzKSk7DQogDQogCXJldHVybiBzaXpl Ow0KIH0NCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL3BhZ2UvYnVmcGFnZS5jIGIv c3JjL2JhY2tlbmQvc3RvcmFnZS9wYWdlL2J1ZnBhZ2UuYw0KaW5kZXggYmU2ZjFmNjJkMi4uZTgx OTNkN2Y1NiAxMDA2NDQNCi0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvcGFnZS9idWZwYWdlLmMN CisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvcGFnZS9idWZwYWdlLmMNCkBAIC01OSw2ICs1OSwz MSBAQCBQYWdlSW5pdChQYWdlIHBhZ2UsIFNpemUgcGFnZVNpemUsIFNpemUgc3BlY2lhbFNpemUp DQogCS8qIHAtPnBkX3BydW5lX3hpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOwkJZG9uZSBieSBh Ym92ZSBNZW1TZXQgKi8NCiB9DQogDQorLyoNCisgKiBQYWdlSW5pdFNMUlUNCisgKgkJSW5pdGlh bGl6ZXMgdGhlIGNvbnRlbnRzIG9mIGFuIFNMUlUgcGFnZS4NCisgKgkJTm90ZSB0aGF0IHdlIGRv bid0IGNhbGN1bGF0ZSBhbiBpbml0aWFsIGNoZWNrc3VtIGhlcmU7IHRoYXQncyBub3QgZG9uZQ0K KyAqCQl1bnRpbCBpdCdzIHRpbWUgdG8gd3JpdGUuDQorICovDQordm9pZA0KK1BhZ2VJbml0U0xS VShQYWdlIHBhZ2UsIFNpemUgcGFnZVNpemUsIFNpemUgc3BlY2lhbFNpemUpDQorew0KKwlQYWdl SGVhZGVyCXAgPSAoUGFnZUhlYWRlcikgcGFnZTsNCisNCisJc3BlY2lhbFNpemUgPSBNQVhBTElH TihzcGVjaWFsU2l6ZSk7DQorDQorCUFzc2VydChwYWdlU2l6ZSA9PSBCTENLU1opOw0KKwlBc3Nl cnQocGFnZVNpemUgPiBzcGVjaWFsU2l6ZSArIFNpemVPZlBhZ2VIZWFkZXJEYXRhKTsNCisNCisJ LyogTWFrZSBzdXJlIGFsbCBmaWVsZHMgb2YgcGFnZSBhcmUgemVybywgYXMgd2VsbCBhcyB1bnVz ZWQgc3BhY2UgKi8NCisJTWVtU2V0KHAsIDAsIHBhZ2VTaXplKTsNCisNCisJcC0+cGRfZmxhZ3Mg PSAwOw0KKwlwLT5wZF9sb3dlciA9IFNpemVPZlBhZ2VIZWFkZXJEYXRhOw0KKwlwLT5wZF91cHBl ciA9IHBhZ2VTaXplIC0gc3BlY2lhbFNpemU7DQorCXAtPnBkX3NwZWNpYWwgPSBwYWdlU2l6ZSAt IHNwZWNpYWxTaXplOw0KKwlQYWdlU2V0UGFnZVNpemVBbmRWZXJzaW9uKHBhZ2UsIHBhZ2VTaXpl LCBQR19TTFJVX1BBR0VfTEFZT1VUX1ZFUlNJT04pOw0KK30NCiANCiAvKg0KICAqIFBhZ2VJc1Zl cmlmaWVkRXh0ZW5kZWQNCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2NoZWNrc3Vtcy9wZ19jaGVj a3N1bXMuYyBiL3NyYy9iaW4vcGdfY2hlY2tzdW1zL3BnX2NoZWNrc3Vtcy5jDQppbmRleCA5ZTZm ZDQzNWY2Li4wNmYxNGYxZDJkIDEwMDY0NA0KLS0tIGEvc3JjL2Jpbi9wZ19jaGVja3N1bXMvcGdf Y2hlY2tzdW1zLmMNCisrKyBiL3NyYy9iaW4vcGdfY2hlY2tzdW1zL3BnX2NoZWNrc3Vtcy5jDQpA QCAtMTYsNiArMTYsNyBAQA0KIA0KICNpbmNsdWRlIDxkaXJlbnQuaD4NCiAjaW5jbHVkZSA8bGlt aXRzLmg+DQorI2luY2x1ZGUgPHN0ZGJvb2wuaD4NCiAjaW5jbHVkZSA8dGltZS5oPg0KICNpbmNs dWRlIDxzeXMvc3RhdC5oPg0KICNpbmNsdWRlIDx1bmlzdGQuaD4NCkBAIC01OTMsMTIgKzU5NCwy MCBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pDQogCQl7DQogCQkJdG90YWxfc2l6ZSA9 IHNjYW5fZGlyZWN0b3J5KERhdGFEaXIsICJnbG9iYWwiLCB0cnVlKTsNCiAJCQl0b3RhbF9zaXpl ICs9IHNjYW5fZGlyZWN0b3J5KERhdGFEaXIsICJiYXNlIiwgdHJ1ZSk7DQorCQkJdG90YWxfc2l6 ZSArPSBzY2FuX2RpcmVjdG9yeShEYXRhRGlyLCAicGdfY29tbWl0X3RzIiwgdHJ1ZSk7DQorCQkJ dG90YWxfc2l6ZSArPSBzY2FuX2RpcmVjdG9yeShEYXRhRGlyLCAicGdfbXVsdGl4YWN0IiwgdHJ1 ZSk7DQorCQkJdG90YWxfc2l6ZSArPSBzY2FuX2RpcmVjdG9yeShEYXRhRGlyLCAicGdfc2VyaWFs IiwgdHJ1ZSk7DQogCQkJdG90YWxfc2l6ZSArPSBzY2FuX2RpcmVjdG9yeShEYXRhRGlyLCAicGdf dGJsc3BjIiwgdHJ1ZSk7DQorCQkJdG90YWxfc2l6ZSArPSBzY2FuX2RpcmVjdG9yeShEYXRhRGly LCAicGdfeGFjdCIsIHRydWUpOw0KIAkJfQ0KIA0KIAkJKHZvaWQpIHNjYW5fZGlyZWN0b3J5KERh dGFEaXIsICJnbG9iYWwiLCBmYWxzZSk7DQogCQkodm9pZCkgc2Nhbl9kaXJlY3RvcnkoRGF0YURp ciwgImJhc2UiLCBmYWxzZSk7DQorCQkodm9pZCkgc2Nhbl9kaXJlY3RvcnkoRGF0YURpciwgInBn X2NvbW1pdF90cyIsIGZhbHNlKTsNCisJCSh2b2lkKSBzY2FuX2RpcmVjdG9yeShEYXRhRGlyLCAi cGdfbXVsdGl4YWN0IiwgZmFsc2UpOw0KKwkJKHZvaWQpIHNjYW5fZGlyZWN0b3J5KERhdGFEaXIs ICJwZ19zZXJpYWwiLCBmYWxzZSk7DQogCQkodm9pZCkgc2Nhbl9kaXJlY3RvcnkoRGF0YURpciwg InBnX3RibHNwYyIsIGZhbHNlKTsNCisJCSh2b2lkKSBzY2FuX2RpcmVjdG9yeShEYXRhRGlyLCAi cGdfeGFjdCIsIGZhbHNlKTsNCiANCiAJCWlmIChzaG93cHJvZ3Jlc3MpDQogCQkJcHJvZ3Jlc3Nf cmVwb3J0KHRydWUpOw0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfcmVzZXR3YWwvdC8wMDFfYmFz aWMucGwgYi9zcmMvYmluL3BnX3Jlc2V0d2FsL3QvMDAxX2Jhc2ljLnBsDQppbmRleCA5ODI5ZTQ4 MTA2Li43YjllMDM0ZTE5IDEwMDY0NA0KLS0tIGEvc3JjL2Jpbi9wZ19yZXNldHdhbC90LzAwMV9i YXNpYy5wbA0KKysrIGIvc3JjL2Jpbi9wZ19yZXNldHdhbC90LzAwMV9iYXNpYy5wbA0KQEAgLTIw Niw3ICsyMDYsNyBAQCBwdXNoIEBjbWQsDQogICBzcHJpbnRmKCIlZCwlZCIsIGhleCgkZmlsZXNb MF0pID09IDAgPyAzIDogaGV4KCRmaWxlc1swXSksIGhleCgkZmlsZXNbLTFdKSk7DQogDQogQGZp bGVzID0gZ2V0X3NscnVfZmlsZXMoJ3BnX211bHRpeGFjdC9vZmZzZXRzJyk7DQotJG11bHQgPSAz MiAqICRibGNrc3ogLyA0Ow0KKyRtdWx0ID0gMzIgKiAoJGJsY2tzeiAtIDI0KSAvIDQ7DQogIyAt bSBhcmd1bWVudCBpcyAibmV3LG9sZCINCiBwdXNoIEBjbWQsICctbScsDQogICBzcHJpbnRmKCIl ZCwlZCIsDQpAQCAtMjE0LDExICsyMTQsMTEgQEAgcHVzaCBAY21kLCAnLW0nLA0KIAloZXgoJGZp bGVzWzBdKSA9PSAwID8gMSA6IGhleCgkZmlsZXNbMF0gKiAkbXVsdCkpOw0KIA0KIEBmaWxlcyA9 IGdldF9zbHJ1X2ZpbGVzKCdwZ19tdWx0aXhhY3QvbWVtYmVycycpOw0KLSRtdWx0ID0gMzIgKiBp bnQoJGJsY2tzeiAvIDIwKSAqIDQ7DQorJG11bHQgPSAzMiAqIGludCgoJGJsY2tzeiAtIDI0KSAv IDIwKSAqIDQ7DQogcHVzaCBAY21kLCAnLU8nLCAoaGV4KCRmaWxlc1stMV0pICsgMSkgKiAkbXVs dDsNCiANCiBAZmlsZXMgPSBnZXRfc2xydV9maWxlcygncGdfeGFjdCcpOw0KLSRtdWx0ID0gMzIg KiAkYmxja3N6ICogNDsNCiskbXVsdCA9IDMyICogKCRibGNrc3ogLSAyNCkgKiA0Ow0KIHB1c2gg QGNtZCwNCiAgICctdScsIChoZXgoJGZpbGVzWzBdKSA9PSAwID8gMyA6IGhleCgkZmlsZXNbMF0p ICogJG11bHQpLA0KICAgJy14JywgKChoZXgoJGZpbGVzWy0xXSkgKyAxKSAqICRtdWx0KTsNCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvZmlsZS5jIGIvc3JjL2Jpbi9wZ191cGdyYWRl L2ZpbGUuYw0KaW5kZXggYmViYTM3NmYyZS4uNjk3ODQxMGYxNyAxMDA2NDQNCi0tLSBhL3NyYy9i aW4vcGdfdXBncmFkZS9maWxlLmMNCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9maWxlLmMNCkBA IC05LDYgKzksNyBAQA0KIA0KICNpbmNsdWRlICJwb3N0Z3Jlc19mZS5oIg0KIA0KKyNpbmNsdWRl IDxkaXJlbnQuaD4NCiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4NCiAjaW5jbHVkZSA8bGltaXRzLmg+ DQogI2luY2x1ZGUgPGZjbnRsLmg+DQpAQCAtNDUzLDMgKzQ1NCwxNzQgQEAgY2hlY2tfaGFyZF9s aW5rKHZvaWQpDQogDQogCXVubGluayhuZXdfbGlua19maWxlKTsNCiB9DQorDQorDQorLyoNCisg KiBDb3B5IFNMUlVfUEFHRVNfUEVSX1NFR01FTlQgZnJvbSBhY2Nlc3Mvc2xydS5oIHRvIGF2b2lk IGluY2x1ZGluZyBpdC4NCisgKi8NCisjZGVmaW5lIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQJMzIN CisNCisjZGVmaW5lIFNFR01FTlRfU0laRQkJCShCTENLU1ogKiBTTFJVX1BBR0VTX1BFUl9TRUdN RU5UKQ0KKw0KKy8qDQorICogQ29weSBQYWdlSW5pdFNMUlUgZnJvbSBzdG9yYWdlL2J1ZnBhZ2Uu YyB0byBhdm9pZCBsaW5raW5nIHRvIHRoZSBiYWNrZW5kLg0KKyAqLw0KK3ZvaWQNCitQYWdlSW5p dFNMUlUoUGFnZSBwYWdlLCBTaXplIHBhZ2VTaXplLCBTaXplIHNwZWNpYWxTaXplKQ0KK3sNCisJ UGFnZUhlYWRlcglwID0gKFBhZ2VIZWFkZXIpIHBhZ2U7DQorDQorCXNwZWNpYWxTaXplID0gTUFY QUxJR04oc3BlY2lhbFNpemUpOw0KKw0KKwlBc3NlcnQocGFnZVNpemUgPT0gQkxDS1NaKTsNCisJ QXNzZXJ0KHBhZ2VTaXplID4gc3BlY2lhbFNpemUgKyBTaXplT2ZQYWdlSGVhZGVyRGF0YSk7DQor DQorCS8qIE1ha2Ugc3VyZSBhbGwgZmllbGRzIG9mIHBhZ2UgYXJlIHplcm8sIGFzIHdlbGwgYXMg dW51c2VkIHNwYWNlICovDQorCU1lbVNldChwLCAwLCBwYWdlU2l6ZSk7DQorDQorCXAtPnBkX2Zs YWdzID0gMDsNCisJcC0+cGRfbG93ZXIgPSBTaXplT2ZQYWdlSGVhZGVyRGF0YTsNCisJcC0+cGRf dXBwZXIgPSBwYWdlU2l6ZSAtIHNwZWNpYWxTaXplOw0KKwlwLT5wZF9zcGVjaWFsID0gcGFnZVNp emUgLSBzcGVjaWFsU2l6ZTsNCisJUGFnZVNldFBhZ2VTaXplQW5kVmVyc2lvbihwYWdlLCBwYWdl U2l6ZSwgUEdfU0xSVV9QQUdFX0xBWU9VVF9WRVJTSU9OKTsNCit9DQorDQorLyoNCisgKiBGaWx0 ZXIgZnVuY3Rpb24gZm9yIHNjYW5kaXIoMykgdG8gc2VsZWN0IG9ubHkgc2VnbWVudCBmaWxlcy4N CisgKi8NCitzdGF0aWMgaW50DQorc2VnbWVudF9maWxlX2ZpbHRlcihjb25zdCBzdHJ1Y3QgZGly ZW50ICpkaXJlbnQpDQorew0KKwlyZXR1cm4gc3Ryc3BuKGRpcmVudC0+ZF9uYW1lLCAiMDEyMzQ1 Njc4OUFCQ0RFRiIpID09IHN0cmxlbihkaXJlbnQtPmRfbmFtZSk7DQorfQ0KKw0KK3N0YXRpYyB2 b2lkDQordXBncmFkZV9maWxlKGNvbnN0IGNoYXIgKnNyY19kaXIsIGNvbnN0IGNoYXIgKnNyY19m aWxlLCBjb25zdCBjaGFyICpkc3RfZGlyKQ0KK3sNCisJY2hhcglzcmNbTUFYUEdQQVRIXTsNCisJ Y2hhcglkc3RbTUFYUEdQQVRIXTsNCisNCisJaW50CQlzZWdfbmFtZV9sZW47DQorCWludAkJc3Jj X3NlZ25vOw0KKwlpbnQ2NAlzcmNfcGFnZW5vOw0KKwlpbnQJCWRzdF9zZWdubzsNCisJaW50NjQJ ZHN0X3BhZ2VubzsNCisJaW50CQlkc3Rfb2Zmc2V0Ow0KKw0KKwlpbnQJCXNyY19mZDsNCisJaW50 CQlkc3RfZmQ7DQorDQorCWNoYXIJCSAgICpzcmNfYnVmOw0KKwlzc2l6ZV90CQkJc3JjX2xlbjsN CisJc3NpemVfdAkJCXNyY19idWZfb2Zmc2V0Ow0KKwlQR0FsaWduZWRCbG9jawlkc3RfYmxvY2s7 DQorCVBhZ2UJCQlwYWdlID0gZHN0X2Jsb2NrLmRhdGE7DQorCWludAkJCQlsZW5fdG9fY29weTsN CisNCisJc2VnX25hbWVfbGVuID0gc3RybGVuKHNyY19maWxlKTsNCisJc3JjX3NlZ25vID0gKGlu dCkgc3RydG9sKHNyY19maWxlLCBOVUxMLCAxNik7DQorCXNyY19wYWdlbm8gPSBzcmNfc2Vnbm8g KiBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UOw0KKw0KKwlkc3RfcGFnZW5vID0gc3JjX3BhZ2VubyAq IEJMQ0tTWiAvIFNpemVPZlBhZ2VDb250ZW50czsNCisJZHN0X29mZnNldCA9IHNyY19wYWdlbm8g KiBCTENLU1ogLSBkc3RfcGFnZW5vICogU2l6ZU9mUGFnZUNvbnRlbnRzOw0KKwlkc3Rfc2Vnbm8g ID0gZHN0X3BhZ2VubyAvIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQ7DQorDQorCXNucHJpbnRmKHNy Yywgc2l6ZW9mKHNyYyksICIlcy8lcyIsIHNyY19kaXIsIHNyY19maWxlKTsNCisJc25wcmludGYo ZHN0LCBzaXplb2YoZHN0KSwgIiVzLyUwKlgiLCBkc3RfZGlyLCBzZWdfbmFtZV9sZW4sIGRzdF9z ZWdubyk7DQorDQorCXNyY19idWYgPSBwZ19tYWxsb2MoU0VHTUVOVF9TSVpFKTsNCisJaWYgKChz cmNfZmQgPSBvcGVuKHNyYywgT19SRE9OTFkgfCBQR19CSU5BUlksIDApKSA9PSAtMSkNCisJCXBn X2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIjogJXMiLCBzcmMsIHN0cmVycm9yKGVy cm5vKSk7DQorCWlmICgoc3JjX2xlbiA9IHJlYWQoc3JjX2ZkLCBzcmNfYnVmLCBTRUdNRU5UX1NJ WkUpKSA9PSAtMSkNCisJCXBnX2ZhdGFsKCJjb3VsZCBub3QgcmVhZCBmaWxlIFwiJXNcIjogJXMi LCBzcmMsIHN0cmVycm9yKGVycm5vKSk7DQorDQorCWlmICgoZHN0X2ZkID0gb3Blbihkc3QsIE9f UkRXUiB8IE9fQ1JFQVQgfCBQR19CSU5BUlksIFNfSVJVU1IgfCBTX0lXVVNSKSkgPT0gLTEpDQor CQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCI6ICVzIiwgZHN0LCBzdHJlcnJv cihlcnJubykpOw0KKwlpZiAoZnRydW5jYXRlKGRzdF9mZCwgU0VHTUVOVF9TSVpFKSA9PSAtMSkN CisJCXBnX2ZhdGFsKCJjb3VsZCBub3QgdHJ1bmNhdGUgZmlsZSBcIiVzXCI6ICVzIiwgZHN0LCBz dHJlcnJvcihlcnJubykpOw0KKw0KKwkvKg0KKwkgKiBSZWFkIHRoZSBkZXN0aW5hdGlvbiBwYWdl IGF0IGRzdF9wYWdlbm8gaW50byB0aGUgYnVmZmVyLiAgVGhlIHBhZ2UgbWF5IGNvbnRhaW4NCisJ ICogZGF0YSBmcm9tIHRoZSBwcmV2aW91cyBzb3VyY2Ugc2VnbWVudC4gIEluaXRpYWxpemUgdGhl IHBhZ2UgaWYgdGhlIHBhZ2UgaXMgbmV3Lg0KKwkgKi8NCisJaWYgKGxzZWVrKGRzdF9mZCwgKGRz dF9wYWdlbm8gJSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UKSAqIEJMQ0tTWiwgU0VFS19TRVQpID09 IC0xKQ0KKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBzZWVrIGluIGZpbGUgXCIlc1wiOiAlcyIsIGRz dCwgc3RyZXJyb3IoZXJybm8pKTsNCisJaWYgKHJlYWQoZHN0X2ZkLCBwYWdlLCBCTENLU1opID09 IC0xKQ0KKwkJcGdfZmF0YWwoImNvdWxkIG5vdCByZWFkIGZpbGUgXCIlc1wiOiAlcyIsIGRzdCwg c3RyZXJyb3IoZXJybm8pKTsNCisJaWYgKFBhZ2VJc05ldyhwYWdlKSkNCisJCVBhZ2VJbml0U0xS VShwYWdlLCBCTENLU1osIDApOw0KKw0KKwkvKg0KKwkgKiBSZXdpbmQgdGhlIGZpbGUgcG9zaXRp b24sIHNvIHRoZSBmaXJzdCB3cml0ZSB3aWxsIG92ZXJ3cml0ZSB0aGUgcGFnZS4NCisJICovDQor CWlmIChsc2Vlayhkc3RfZmQsIChkc3RfcGFnZW5vICUgU0xSVV9QQUdFU19QRVJfU0VHTUVOVCkg KiBCTENLU1osIFNFRUtfU0VUKSA9PSAtMSkNCisJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgc2VlayBp biBmaWxlIFwiJXNcIjogJXMiLCBkc3QsIHN0cmVycm9yKGVycm5vKSk7DQorDQorCXNyY19idWZf b2Zmc2V0ID0gMDsNCisJd2hpbGUgKHNyY19idWZfb2Zmc2V0IDwgc3JjX2xlbikNCisJew0KKwkJ bGVuX3RvX2NvcHkgPSBNaW4oc3JjX2xlbiAtIHNyY19idWZfb2Zmc2V0LCBTaXplT2ZQYWdlQ29u dGVudHMgLSBkc3Rfb2Zmc2V0KTsNCisJCW1lbWNweShQYWdlR2V0Q29udGVudHMocGFnZSkgKyBk c3Rfb2Zmc2V0LCBzcmNfYnVmICsgc3JjX2J1Zl9vZmZzZXQsIGxlbl90b19jb3B5KTsNCisJCXNy Y19idWZfb2Zmc2V0ICs9IGxlbl90b19jb3B5Ow0KKw0KKwkJaWYgKG5ld19jbHVzdGVyLmNvbnRy b2xkYXRhLmRhdGFfY2hlY2tzdW1fdmVyc2lvbiA+IDApDQorCQkJKChQYWdlSGVhZGVyKSBwYWdl KS0+cGRfY2hlY2tzdW0gPSBwZ19jaGVja3N1bV9wYWdlKHBhZ2UsIGRzdF9wYWdlbm8pOw0KKwkJ aWYgKHdyaXRlKGRzdF9mZCwgcGFnZSwgQkxDS1NaKSA9PSAtMSkNCisJCQlwZ19mYXRhbCgiY291 bGQgbm90IHdyaXRlIGZpbGUgXCIlc1wiOiAlcyIsIGRzdCwgc3RyZXJyb3IoZXJybm8pKTsNCisN CisJCWRzdF9wYWdlbm8rKzsNCisJCWRzdF9vZmZzZXQgPSAwOw0KKwkJUGFnZUluaXRTTFJVKHBh Z2UsIEJMQ0tTWiwgMCk7DQorDQorICAgICAgICAvKg0KKwkJICogU3dpdGNoIHNlZ21lbnRzIGlm IHdlIHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBzZWdtZW50Lg0KKwkJICovDQorCQlp ZiAoZHN0X3BhZ2VubyAlIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQgPT0gMCkNCisJCXsNCisJCQlp ZiAoZnN5bmMoZHN0X2ZkKSA9PSAtMSkNCisJCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBmc3luYyBm aWxlIFwiJXNcIjogJXMiLCBkc3QsIHN0cmVycm9yKGVycm5vKSk7DQorCQkJaWYgKGNsb3NlKGRz dF9mZCkgPT0gLTEpDQorCQkJCXBnX2ZhdGFsKCJjb3VsZCBub3QgY2xvc2UgZmlsZSBcIiVzXCI6 ICVzIiwgZHN0LCBzdHJlcnJvcihlcnJubykpOw0KKw0KKwkJCWRzdF9zZWdubysrOw0KKwkJCXNu cHJpbnRmKGRzdCwgc2l6ZW9mKGRzdCksICIlcy8lMCpYIiwgZHN0X2Rpciwgc2VnX25hbWVfbGVu LCBkc3Rfc2Vnbm8pOw0KKwkJCWlmICgoZHN0X2ZkID0gb3Blbihkc3QsIE9fUkRXUiB8IE9fQ1JF QVQgfCBQR19CSU5BUlksIFNfSVJVU1IgfCBTX0lXVVNSKSkgPT0gLTEpDQorCQkJCXBnX2ZhdGFs KCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIjogJXMiLCBkc3QsIHN0cmVycm9yKGVycm5vKSk7 DQorCQkJaWYgKGZ0cnVuY2F0ZShkc3RfZmQsIFNFR01FTlRfU0laRSkgPT0gLTEpDQorCQkJCXBn X2ZhdGFsKCJjb3VsZCBub3QgdHJ1bmNhdGUgZmlsZSBcIiVzXCI6ICVzIiwgZHN0LCBzdHJlcnJv cihlcnJubykpOw0KKwkJfQ0KKwl9DQorDQorCWlmIChmc3luYyhkc3RfZmQpID09IC0xKQ0KKwkJ cGdfZmF0YWwoImNvdWxkIG5vdCBmc3luYyBmaWxlIFwiJXNcIjogJXMiLCBkc3QsIHN0cmVycm9y KGVycm5vKSk7DQorCWlmIChjbG9zZShkc3RfZmQpID09IC0xKQ0KKwkJcGdfZmF0YWwoImNvdWxk IG5vdCBjbG9zZSBmaWxlIFwiJXNcIjogJXMiLCBkc3QsIHN0cmVycm9yKGVycm5vKSk7DQorDQor CXBnX2ZyZWUoc3JjX2J1Zik7DQorCWNsb3NlKHNyY19mZCk7DQorfQ0KKw0KK3ZvaWQNCit1cGdy YWRlX3hhY3RfY2FjaGUoY29uc3QgY2hhciAqc3JjX3N1YmRpciwgY29uc3QgY2hhciAqZHN0X3N1 YmRpcikNCit7DQorCWNoYXIJc3JjX2RpcltNQVhQR1BBVEhdOw0KKwljaGFyCWRzdF9kaXJbTUFY UEdQQVRIXTsNCisNCisJRElSCQkJCSAgICpzcmNfZGlycDsNCisJc3RydWN0IGRpcmVudAkgICAq c3JjX2RpcmVudDsNCisNCisJc25wcmludGYoc3JjX2Rpciwgc2l6ZW9mKHNyY19kaXIpLCAiJXMv JXMiLCBvbGRfY2x1c3Rlci5wZ2RhdGEsIHNyY19zdWJkaXIpOw0KKwlzbnByaW50Zihkc3RfZGly LCBzaXplb2YoZHN0X2RpciksICIlcy8lcyIsIG5ld19jbHVzdGVyLnBnZGF0YSwgZHN0X3N1YmRp cik7DQorDQorCWlmICgoc3JjX2RpcnAgPSBvcGVuZGlyKHNyY19kaXIpKSA9PSBOVUxMKQ0KKwkJ cGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGRpcmVjdG9yeSBcIiVzXCI6ICVzIiwgc3JjX2Rpciwg c3RyZXJyb3IoZXJybm8pKTsNCisNCisJd2hpbGUgKGVycm5vID0gMCwgKHNyY19kaXJlbnQgPSBy ZWFkZGlyKHNyY19kaXJwKSkgIT0gTlVMTCkNCisJew0KKwkJaWYgKHNlZ21lbnRfZmlsZV9maWx0 ZXIoc3JjX2RpcmVudCkpDQorCQkJdXBncmFkZV9maWxlKHNyY19kaXIsIHNyY19kaXJlbnQtPmRf bmFtZSwgZHN0X2Rpcik7DQorCX0NCisNCisJaWYgKGNsb3NlZGlyKHNyY19kaXJwKSAhPSAwKQ0K KwkJcGdfZmF0YWwoImNvdWxkIG5vdCBjbG9zZSBkaXJlY3RvcnkgXCIlc1wiOiAlcyIsIHNyY19k aXIsIHN0cmVycm9yKGVycm5vKSk7DQorfQ0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFk ZS9wZ191cGdyYWRlLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jDQppbmRleCAx MGM5NGE2YzFmLi5lZDRhMGY1YzQzIDEwMDY0NA0KLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3Bn X3VwZ3JhZGUuYw0KKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYw0KQEAgLTY2 MCwxNCArNjYwLDIzIEBAIGNvcHlfc3ViZGlyX2ZpbGVzKGNvbnN0IGNoYXIgKm9sZF9zdWJkaXIs IGNvbnN0IGNoYXIgKm5ld19zdWJkaXIpDQogc3RhdGljIHZvaWQNCiBjb3B5X3hhY3RfeGxvZ194 aWQodm9pZCkNCiB7DQorCWJvb2wJc2xydV9oZWFkZXJfY2hhbmdlZCA9IGZhbHNlOw0KKw0KIAkv Kg0KIAkgKiBDb3B5IG9sZCBjb21taXQgbG9ncyB0byBuZXcgZGF0YSBkaXIuIHBnX2Nsb2cgaGFz IGJlZW4gcmVuYW1lZCB0bw0KIAkgKiBwZ194YWN0IGluIHBvc3QtMTAgY2x1c3RlcnMuDQogCSAq Lw0KLQljb3B5X3N1YmRpcl9maWxlcyhHRVRfTUFKT1JfVkVSU0lPTihvbGRfY2x1c3Rlci5tYWpv cl92ZXJzaW9uKSA8PSA5MDYgPw0KLQkJCQkJICAicGdfY2xvZyIgOiAicGdfeGFjdCIsDQotCQkJ CQkgIEdFVF9NQUpPUl9WRVJTSU9OKG5ld19jbHVzdGVyLm1ham9yX3ZlcnNpb24pIDw9IDkwNiA/ DQotCQkJCQkgICJwZ19jbG9nIiA6ICJwZ194YWN0Iik7DQorCWNoYXIJKnhhY3Rfb2xkX2RpciA9 IEdFVF9NQUpPUl9WRVJTSU9OKG9sZF9jbHVzdGVyLm1ham9yX3ZlcnNpb24pIDw9IDkwNiA/ICJw Z19jbG9nIiA6ICJwZ194YWN0IjsNCisJY2hhcgkqeGFjdF9uZXdfZGlyID0gR0VUX01BSk9SX1ZF UlNJT04obmV3X2NsdXN0ZXIubWFqb3JfdmVyc2lvbikgPD0gOTA2ID8gInBnX2Nsb2ciIDogInBn X3hhY3QiOw0KKw0KKwlpZiAobmV3X2NsdXN0ZXIuY29udHJvbGRhdGEuY2F0X3ZlciA+PSBTTFJV X1BBR0VfSEVBREVSX0NBVF9WRVIgJiYNCisJCW9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNhdF92 ZXIgPCBTTFJVX1BBR0VfSEVBREVSX0NBVF9WRVIpDQorCQlzbHJ1X2hlYWRlcl9jaGFuZ2VkID0g dHJ1ZTsNCisNCisJaWYgKHNscnVfaGVhZGVyX2NoYW5nZWQpDQorCQl1cGdyYWRlX3hhY3RfY2Fj aGUoeGFjdF9vbGRfZGlyLCB4YWN0X25ld19kaXIpOw0KKwllbHNlDQorCQljb3B5X3N1YmRpcl9m aWxlcyh4YWN0X29sZF9kaXIsIHhhY3RfbmV3X2Rpcik7DQogDQogCXByZXBfc3RhdHVzKCJTZXR0 aW5nIG9sZGVzdCBYSUQgZm9yIG5ldyBjbHVzdGVyIik7DQogCWV4ZWNfcHJvZyhVVElMSVRZX0xP R19GSUxFLCBOVUxMLCB0cnVlLCB0cnVlLA0KQEAgLTcwMiw3ICs3MTEsOCBAQCBjb3B5X3hhY3Rf eGxvZ194aWQodm9pZCkNCiAJICogc2VydmVyIGRvZXNuJ3QgYXR0ZW1wdCB0byByZWFkIG11bHRp cyBvbGRlciB0aGFuIHRoZSBjdXRvZmYgdmFsdWUuDQogCSAqLw0KIAlpZiAob2xkX2NsdXN0ZXIu Y29udHJvbGRhdGEuY2F0X3ZlciA+PSBNVUxUSVhBQ1RfRk9STUFUQ0hBTkdFX0NBVF9WRVIgJiYN Ci0JCW5ld19jbHVzdGVyLmNvbnRyb2xkYXRhLmNhdF92ZXIgPj0gTVVMVElYQUNUX0ZPUk1BVENI QU5HRV9DQVRfVkVSKQ0KKwkJbmV3X2NsdXN0ZXIuY29udHJvbGRhdGEuY2F0X3ZlciA+PSBNVUxU SVhBQ1RfRk9STUFUQ0hBTkdFX0NBVF9WRVIgJiYNCisJCSFzbHJ1X2hlYWRlcl9jaGFuZ2VkKQ0K IAl7DQogCQljb3B5X3N1YmRpcl9maWxlcygicGdfbXVsdGl4YWN0L29mZnNldHMiLCAicGdfbXVs dGl4YWN0L29mZnNldHMiKTsNCiAJCWNvcHlfc3ViZGlyX2ZpbGVzKCJwZ19tdWx0aXhhY3QvbWVt YmVycyIsICJwZ19tdWx0aXhhY3QvbWVtYmVycyIpOw0KQEAgLTcyMiw3ICs3MzIsOCBAQCBjb3B5 X3hhY3RfeGxvZ194aWQodm9pZCkNCiAJCQkJICBuZXdfY2x1c3Rlci5wZ2RhdGEpOw0KIAkJY2hl Y2tfb2soKTsNCiAJfQ0KLQllbHNlIGlmIChuZXdfY2x1c3Rlci5jb250cm9sZGF0YS5jYXRfdmVy ID49IE1VTFRJWEFDVF9GT1JNQVRDSEFOR0VfQ0FUX1ZFUikNCisJZWxzZSBpZiAobmV3X2NsdXN0 ZXIuY29udHJvbGRhdGEuY2F0X3ZlciA+PSBNVUxUSVhBQ1RfRk9STUFUQ0hBTkdFX0NBVF9WRVIg fHwNCisJCQkgc2xydV9oZWFkZXJfY2hhbmdlZCkNCiAJew0KIAkJLyoNCiAJCSAqIFJlbW92ZSBv ZmZzZXRzLzAwMDAgZmlsZSBjcmVhdGVkIGJ5IGluaXRkYiB0aGF0IG5vIGxvbmdlciBtYXRjaGVz DQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaCBiL3NyYy9iaW4v cGdfdXBncmFkZS9wZ191cGdyYWRlLmgNCmluZGV4IDg1N2Q3MTUwNDkuLmRjODEwMjBiNjIgMTAw NjQ0DQotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oDQorKysgYi9zcmMvYmlu L3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oDQpAQCAtMTE1LDYgKzExNSwxMSBAQCBleHRlcm4gY2hh ciAqb3V0cHV0X2ZpbGVzW107DQogICovDQogI2RlZmluZSBNVUxUSVhBQ1RfRk9STUFUQ0hBTkdF X0NBVF9WRVIgMjAxMzAxMjMxDQogDQorLyoNCisgKiBBIHBhZ2UgaGVhZGVyIHdhcyBhZGRlZCB0 byBlYWNoIFNMUlUgcGFnZSBpbiAxNy4wLg0KKyAqLw0KKyNkZWZpbmUgU0xSVV9QQUdFX0hFQURF Ul9DQVRfVkVSIDIwMjQwMzA2MQ0KKw0KIC8qDQogICogbGFyZ2Ugb2JqZWN0IGNodW5rIHNpemUg YWRkZWQgdG8gcGdfY29udHJvbGRhdGEsDQogICogY29tbWl0IDVmOTNjMzc4MDVlNzQ4NTQ4ODQ4 MDkxNmI0NTg1ZTA5OGQzY2M4ODMNCkBAIC00MTIsNiArNDE3LDcgQEAgdm9pZAkJcmV3cml0ZVZp c2liaWxpdHlNYXAoY29uc3QgY2hhciAqZnJvbWZpbGUsIGNvbnN0IGNoYXIgKnRvZmlsZSwNCiB2 b2lkCQljaGVja19maWxlX2Nsb25lKHZvaWQpOw0KIHZvaWQJCWNoZWNrX2NvcHlfZmlsZV9yYW5n ZSh2b2lkKTsNCiB2b2lkCQljaGVja19oYXJkX2xpbmsodm9pZCk7DQordm9pZAkJdXBncmFkZV94 YWN0X2NhY2hlKGNvbnN0IGNoYXIgKnNyY19zdWJkaXIsIGNvbnN0IGNoYXIgKmRzdF9zdWJkaXIp Ow0KIA0KIC8qIGZvcGVuX3ByaXYoKSBpcyBubyBsb25nZXIgZGlmZmVyZW50IGZyb20gZm9wZW4o KSAqLw0KICNkZWZpbmUgZm9wZW5fcHJpdihwYXRoLCBtb2RlKQlmb3BlbihwYXRoLCBtb2RlKQ0K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmggYi9zcmMvaW5jbHVkZS9hY2Nl c3Mvc2xydS5oDQppbmRleCA4YThkMTkxODczLi41ZDViYjEzY2IwIDEwMDY0NA0KLS0tIGEvc3Jj L2luY2x1ZGUvYWNjZXNzL3NscnUuaA0KKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3NscnUuaA0K QEAgLTk2LDE3ICs5Niw2IEBAIHR5cGVkZWYgc3RydWN0IFNscnVTaGFyZWREYXRhDQogCSAqLw0K IAlpbnQJCSAgICpiYW5rX2N1cl9scnVfY291bnQ7DQogDQotCS8qDQotCSAqIE9wdGlvbmFsIGFy cmF5IG9mIFdBTCBmbHVzaCBMU05zIGFzc29jaWF0ZWQgd2l0aCBlbnRyaWVzIGluIHRoZSBTTFJV DQotCSAqIHBhZ2VzLiAgSWYgbm90IHplcm8vTlVMTCwgd2UgbXVzdCBmbHVzaCBXQUwgYmVmb3Jl IHdyaXRpbmcgcGFnZXMgKHRydWUNCi0JICogZm9yIHBnX3hhY3QsIGZhbHNlIGZvciBldmVyeXRo aW5nIGVsc2UpLiAgZ3JvdXBfbHNuW10gaGFzDQotCSAqIGxzbl9ncm91cHNfcGVyX3BhZ2UgZW50 cmllcyBwZXIgYnVmZmVyIHNsb3QsIGVhY2ggY29udGFpbmluZyB0aGUNCi0JICogaGlnaGVzdCBM U04ga25vd24gZm9yIGEgY29udGlndW91cyBncm91cCBvZiBTTFJVIGVudHJpZXMgb24gdGhhdCBz bG90J3MNCi0JICogcGFnZS4NCi0JICovDQotCVhMb2dSZWNQdHIgKmdyb3VwX2xzbjsNCi0JaW50 CQkJbHNuX2dyb3Vwc19wZXJfcGFnZTsNCi0NCiAJLyoNCiAJICogbGF0ZXN0X3BhZ2VfbnVtYmVy IGlzIHRoZSBwYWdlIG51bWJlciBvZiB0aGUgY3VycmVudCBlbmQgb2YgdGhlIGxvZzsNCiAJICog dGhpcyBpcyBub3QgY3JpdGljYWwgZGF0YSwgc2luY2Ugd2UgdXNlIGl0IG9ubHkgdG8gYXZvaWQg c3dhcHBpbmcgb3V0DQpAQCAtMTg0LDkgKzE3Myw5IEBAIFNpbXBsZUxydUdldEJhbmtMb2NrKFNs cnVDdGwgY3RsLCBpbnQ2NCBwYWdlbm8pDQogCXJldHVybiAmKGN0bC0+c2hhcmVkLT5iYW5rX2xv Y2tzW2Jhbmtub10ubG9jayk7DQogfQ0KIA0KLWV4dGVybiBTaXplIFNpbXBsZUxydVNobWVtU2l6 ZShpbnQgbnNsb3RzLCBpbnQgbmxzbnMpOw0KK2V4dGVybiBTaXplIFNpbXBsZUxydVNobWVtU2l6 ZShpbnQgbnNsb3RzKTsNCiBleHRlcm4gaW50CVNpbXBsZUxydUF1dG90dW5lQnVmZmVycyhpbnQg ZGl2aXNvciwgaW50IG1heCk7DQotZXh0ZXJuIHZvaWQgU2ltcGxlTHJ1SW5pdChTbHJ1Q3RsIGN0 bCwgY29uc3QgY2hhciAqbmFtZSwgaW50IG5zbG90cywgaW50IG5sc25zLA0KK2V4dGVybiB2b2lk IFNpbXBsZUxydUluaXQoU2xydUN0bCBjdGwsIGNvbnN0IGNoYXIgKm5hbWUsIGludCBuc2xvdHMs DQogCQkJCQkJICBjb25zdCBjaGFyICpzdWJkaXIsIGludCBidWZmZXJfdHJhbmNoZV9pZCwNCiAJ CQkJCQkgIGludCBiYW5rX3RyYW5jaGVfaWQsIFN5bmNSZXF1ZXN0SGFuZGxlciBzeW5jX2hhbmRs ZXIsDQogCQkJCQkJICBib29sIGxvbmdfc2VnbWVudF9uYW1lcyk7DQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9jYXR2ZXJzaW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdHZl cnNpb24uaA0KaW5kZXggYmVkYzJhMGQ3Mi4uODU0ZmIwMTI4MSAxMDA2NDQNCi0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvY2F0dmVyc2lvbi5oDQorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2Nh dHZlcnNpb24uaA0KQEAgLTU3LDYgKzU3LDYgQEANCiAgKi8NCiANCiAvKgkJCQkJCQl5eXl5bW1k ZE4gKi8NCi0jZGVmaW5lIENBVEFMT0dfVkVSU0lPTl9OTwkyMDI0MDMwNTINCisjZGVmaW5lIENB VEFMT0dfVkVSU0lPTl9OTwkyMDI0MDMwNjENCiANCiAjZW5kaWYNCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9zdG9yYWdlL2J1ZnBhZ2UuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvYnVmcGFnZS5o DQppbmRleCBkMGRmMDJkMzljLi4yZGM4MzQ1MWE2IDEwMDY0NA0KLS0tIGEvc3JjL2luY2x1ZGUv c3RvcmFnZS9idWZwYWdlLmgNCisrKyBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvYnVmcGFnZS5oDQpA QCAtMjAxLDYgKzIwMSw3IEBAIHR5cGVkZWYgUGFnZUhlYWRlckRhdGEgKlBhZ2VIZWFkZXI7DQog ICogaGFuZGxpbmcgcGFnZXMuDQogICovDQogI2RlZmluZSBQR19QQUdFX0xBWU9VVF9WRVJTSU9O CQk0DQorI2RlZmluZSBQR19TTFJVX1BBR0VfTEFZT1VUX1ZFUlNJT04JMQ0KICNkZWZpbmUgUEdf REFUQV9DSEVDS1NVTV9WRVJTSU9OCTENCiANCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpAQCAtMjU3LDYgKzI1OCwx MSBAQCBQYWdlR2V0Q29udGVudHMoUGFnZSBwYWdlKQ0KIAlyZXR1cm4gKGNoYXIgKikgcGFnZSAr IE1BWEFMSUdOKFNpemVPZlBhZ2VIZWFkZXJEYXRhKTsNCiB9DQogDQorLyoNCisgKiBTcGFjZSBh dmFpbGFibGUgZm9yIHN0b3JpbmcgcGFnZSBjb250ZW50cy4NCisgKi8NCisjZGVmaW5lIFNpemVP ZlBhZ2VDb250ZW50cwkoQkxDS1NaIC0gTUFYQUxJR04oU2l6ZU9mUGFnZUhlYWRlckRhdGEpKQ0K Kw0KIC8qIC0tLS0tLS0tLS0tLS0tLS0NCiAgKgkJZnVuY3Rpb25zIHRvIGFjY2VzcyBwYWdlIHNp emUgaW5mbw0KICAqIC0tLS0tLS0tLS0tLS0tLS0NCkBAIC00ODYsNiArNDkyLDcgQEAgU3RhdGlj QXNzZXJ0RGVjbChCTENLU1ogPT0gKChCTENLU1ogLyBzaXplb2Yoc2l6ZV90KSkgKiBzaXplb2Yo c2l6ZV90KSksDQogCQkJCSAiQkxDS1NaIGhhcyB0byBiZSBhIG11bHRpcGxlIG9mIHNpemVvZihz aXplX3QpIik7DQogDQogZXh0ZXJuIHZvaWQgUGFnZUluaXQoUGFnZSBwYWdlLCBTaXplIHBhZ2VT aXplLCBTaXplIHNwZWNpYWxTaXplKTsNCitleHRlcm4gdm9pZCBQYWdlSW5pdFNMUlUoUGFnZSBw YWdlLCBTaXplIHBhZ2VTaXplLCBTaXplIHNwZWNpYWxTaXplKTsNCiBleHRlcm4gYm9vbCBQYWdl SXNWZXJpZmllZEV4dGVuZGVkKFBhZ2UgcGFnZSwgQmxvY2tOdW1iZXIgYmxrbm8sIGludCBmbGFn cyk7DQogZXh0ZXJuIE9mZnNldE51bWJlciBQYWdlQWRkSXRlbUV4dGVuZGVkKFBhZ2UgcGFnZSwg SXRlbSBpdGVtLCBTaXplIHNpemUsDQogCQkJCQkJCQkJCU9mZnNldE51bWJlciBvZmZzZXROdW1i ZXIsIGludCBmbGFncyk7DQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3NscnUv dGVzdF9zbHJ1LmMgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90ZXN0X3NscnUuYw0KaW5k ZXggMDY4YTIxZjEyNS4uMDI2YWE3OTkxMiAxMDA2NDQNCi0tLSBhL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9zbHJ1L3Rlc3Rfc2xydS5jDQorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90 ZXN0X3NscnUuYw0KQEAgLTE3LDYgKzE3LDcgQEANCiAjaW5jbHVkZSAiYWNjZXNzL3NscnUuaCIN CiAjaW5jbHVkZSAiYWNjZXNzL3RyYW5zYW0uaCINCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiDQor I2luY2x1ZGUgInN0b3JhZ2UvYnVmcGFnZS5oIg0KICNpbmNsdWRlICJzdG9yYWdlL2ZkLmgiDQog I2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiDQogI2luY2x1ZGUgInN0b3JhZ2Uvc2htZW0uaCINCkBA IC03Miw4ICs3Myw4IEBAIHRlc3Rfc2xydV9wYWdlX3dyaXRlKFBHX0ZVTkNUSU9OX0FSR1MpDQog CVRlc3RTbHJ1Q3RsLT5zaGFyZWQtPnBhZ2Vfc3RhdHVzW3Nsb3Rub10gPSBTTFJVX1BBR0VfVkFM SUQ7DQogDQogCS8qIHdyaXRlIGdpdmVuIGRhdGEgdG8gdGhlIHBhZ2UsIHVwIHRvIHRoZSBsaW1p dCBvZiB0aGUgcGFnZSAqLw0KLQlzdHJuY3B5KFRlc3RTbHJ1Q3RsLT5zaGFyZWQtPnBhZ2VfYnVm ZmVyW3Nsb3Rub10sIGRhdGEsDQotCQkJQkxDS1NaIC0gMSk7DQorCXN0cm5jcHkoUGFnZUdldENv bnRlbnRzKFRlc3RTbHJ1Q3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10pLCBkYXRhLA0K KwkJCVNpemVPZlBhZ2VDb250ZW50cyAtIDEpOw0KIA0KIAlTaW1wbGVMcnVXcml0ZVBhZ2UoVGVz dFNscnVDdGwsIHNsb3Rubyk7DQogCUxXTG9ja1JlbGVhc2UobG9jayk7DQpAQCAtMTAxLDcgKzEw Miw3IEBAIHRlc3Rfc2xydV9wYWdlX3JlYWQoUEdfRlVOQ1RJT05fQVJHUykNCiAJTFdMb2NrQWNx dWlyZShsb2NrLCBMV19FWENMVVNJVkUpOw0KIAlzbG90bm8gPSBTaW1wbGVMcnVSZWFkUGFnZShU ZXN0U2xydUN0bCwgcGFnZW5vLA0KIAkJCQkJCQkgICB3cml0ZV9vaywgSW52YWxpZFRyYW5zYWN0 aW9uSWQpOw0KLQlkYXRhID0gKGNoYXIgKikgVGVzdFNscnVDdGwtPnNoYXJlZC0+cGFnZV9idWZm ZXJbc2xvdG5vXTsNCisJZGF0YSA9IChjaGFyICopIFBhZ2VHZXRDb250ZW50cyhUZXN0U2xydUN0 bC0+c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9dKTsNCiAJTFdMb2NrUmVsZWFzZShsb2NrKTsN CiANCiAJUEdfUkVUVVJOX1RFWFRfUChjc3RyaW5nX3RvX3RleHQoZGF0YSkpOw0KQEAgLTEyMCw3 ICsxMjEsNyBAQCB0ZXN0X3NscnVfcGFnZV9yZWFkb25seShQR19GVU5DVElPTl9BUkdTKQ0KIAkJ CQkJCQkJCQlwYWdlbm8sDQogCQkJCQkJCQkJCUludmFsaWRUcmFuc2FjdGlvbklkKTsNCiAJQXNz ZXJ0KExXTG9ja0hlbGRCeU1lKGxvY2spKTsNCi0JZGF0YSA9IChjaGFyICopIFRlc3RTbHJ1Q3Rs LT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub107DQorCWRhdGEgPSAoY2hhciAqKSBQYWdlR2V0 Q29udGVudHMoVGVzdFNscnVDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXSk7DQogCUxX TG9ja1JlbGVhc2UobG9jayk7DQogDQogCVBHX1JFVFVSTl9URVhUX1AoY3N0cmluZ190b190ZXh0 KGRhdGEpKTsNCkBAIC0yMDEsNyArMjAyLDcgQEAgdGVzdF9zbHJ1X3NobWVtX3JlcXVlc3Qodm9p ZCkNCiAJCXByZXZfc2htZW1fcmVxdWVzdF9ob29rKCk7DQogDQogCS8qIHJlc2VydmUgc2hhcmVk IG1lbW9yeSBmb3IgdGhlIHRlc3QgU0xSVSAqLw0KLQlSZXF1ZXN0QWRkaW5TaG1lbVNwYWNlKFNp bXBsZUxydVNobWVtU2l6ZShOVU1fVEVTVF9CVUZGRVJTLCAwKSk7DQorCVJlcXVlc3RBZGRpblNo bWVtU3BhY2UoU2ltcGxlTHJ1U2htZW1TaXplKE5VTV9URVNUX0JVRkZFUlMpKTsNCiB9DQogDQog c3RhdGljIGJvb2wNCkBAIC0yNDAsNyArMjQxLDcgQEAgdGVzdF9zbHJ1X3NobWVtX3N0YXJ0dXAo dm9pZCkNCiANCiAJVGVzdFNscnVDdGwtPlBhZ2VQcmVjZWRlcyA9IHRlc3Rfc2xydV9wYWdlX3By ZWNlZGVzX2xvZ2ljYWxseTsNCiAJU2ltcGxlTHJ1SW5pdChUZXN0U2xydUN0bCwgIlRlc3RTTFJV IiwNCi0JCQkJICBOVU1fVEVTVF9CVUZGRVJTLCAwLCBzbHJ1X2Rpcl9uYW1lLA0KKwkJCQkgIE5V TV9URVNUX0JVRkZFUlMsIHNscnVfZGlyX25hbWUsDQogCQkJCSAgdGVzdF9idWZmZXJfdHJhbmNo ZV9pZCwgdGVzdF90cmFuY2hlX2lkLCBTWU5DX0hBTkRMRVJfTk9ORSwNCiAJCQkJICBsb25nX3Nl Z21lbnRfbmFtZXMpOw0KIH0NCg== --_004_4B689BA2270F4B26AAA265BB17C03AC4ebaycom_--