Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1m1Nw2-00026o-OB for pgsql-hackers@arkaria.postgresql.org; Thu, 08 Jul 2021 06:54:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1m1Nw1-00046z-NC for pgsql-hackers@arkaria.postgresql.org; Thu, 08 Jul 2021 06:54:57 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1m1Nw0-0003yJ-OI for pgsql-hackers@lists.postgresql.org; Thu, 08 Jul 2021 06:54:57 +0000 Received: from esa2.fujitsucc.c3s2.iphmx.com ([68.232.152.246]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1m1Nvx-0002nD-3p for pgsql-hackers@lists.postgresql.org; Thu, 08 Jul 2021 06:54:55 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1625727294; x=1657263294; h=from:to:subject:date:message-id:mime-version; bh=XPk94GGnbV5TiDfPZ4vrWxsyXybv2EzOt92bocxCMr4=; b=TdI1ZGVtfGGHRP0KSGsxCyByHTsvUII3CaDTPB4u65rXndU+5H6XVyAV r6vJ4bnRvGCWcHk+ITxNBSkXsZgfCaQMt4b81PzesoYfZQt3wYycDRQ5W KVK1BC0gfS6eKo4wm0gg82oRrlyBB05FWFWeHfo59r5IDw7DVDDBJfNmR rxroTlHOiBQPRt/Iq5/3hFoTXrDiU2jFPEk7lOOtVk6GD4L0hdaBePAH8 YPHjTMJqDsweNqxyyOHbNy5ueJ/LFW3Rwm5ezHaHKqNlF574NRlFYVSau jeXJ/J+ScAUXoEL3+xzMQeHlm8eKSU2NlOWw2XJZ4PgguZeCW790O4aQ0 g==; X-IronPort-AV: E=McAfee;i="6200,9189,10038"; a="42725705" X-IronPort-AV: E=Sophos;i="5.84,222,1620658800"; d="scan'208";a="42725705" Received: from mail-ty1jpn01lp2059.outbound.protection.outlook.com (HELO JPN01-TY1-obe.outbound.protection.outlook.com) ([104.47.93.59]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jul 2021 15:54:50 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z832zeF3XeMxDunq9HydqXT10lxOxb3qv//S6FiUCio82vJEMMzyUknPEkVZfZtN+Jjlbm+100sQMMuPOJcSlSgoPEe/OY4eBF8CQjKizuyDYQioEI5u1MpGn44AICdG93gRPDqUd2VqU0Qv6r5SV4j1JNaP/TO/gF2tztBgvsDM4DuKlvbmYRj7jSh0sBOuc1OUoM1Kn1qLuaIi8e/+K68FaRN8vLPZK0zDNgaEo/oDWUjuC+WQJYyq9jvluyWE8qvchC45ztsKVDcbhov6qW0uLP4DAQ6VqmdosF/Kfh3GZaZXdgYqii7zHqzOQVGRIEj/3XJfFUkpYD235+rOrQ== 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-SenderADCheck; bh=iAwy5VQlyzIMJeB9nwo7Q2JpJA9ZIHBHXOHBxqYygq0=; b=J7/GbfpjwCSKP6tL3uXI2OaIYsoZ6BR9NH2xZSMHQN0HcATeo8fTF+hJ/CLokxtoYVp5/H47r9Xz/rlW1n3lJ8z9OxSl0zWrbmf9N1Z1e3oWD5UxG+97W3Pyjjq9W6NYhYn63o100THptkDKsB7xDquPsj14OdXkYjYckfuVPol0oxIT2zQtogRAv6e+BdDphNtwGGfPodnqC3OiDf2VJOSRCkTD9K3/THRc1FMMOYNtgkHr4r45HST7F4j+Nm7paDYTWQdJnkY7byBQh1kSnZIzqKg0fX97lXVMLP6hUwKrjeA9/gBf1uVnWjIbGoPrQcWGoB1pF37ha2aPkw//eA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fujitsu.com; dmarc=pass action=none header.from=fujitsu.com; dkim=pass header.d=fujitsu.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.onmicrosoft.com; s=selector2-fujitsu-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iAwy5VQlyzIMJeB9nwo7Q2JpJA9ZIHBHXOHBxqYygq0=; b=lHwGDbosJAI62fG4Z+l4FjPwxyg5y0Qfsar+jwUQTcqS3JdAmTOxxDyz1OC+VGVaY3Zx3IFPOg5OLzbZ6LRzueQ12hsPKM+4FIrJnRTClCxxiK/jH6w48371HWFe3QvF2ct/ounodS6zf9dAdQv5NSfsYph94p7sJCfFHkNi0sE= Received: from OSBPR01MB4888.jpnprd01.prod.outlook.com (2603:1096:604:79::23) by OSBPR01MB4038.jpnprd01.prod.outlook.com (2603:1096:604:40::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.26; Thu, 8 Jul 2021 06:54:45 +0000 Received: from OSBPR01MB4888.jpnprd01.prod.outlook.com ([fe80::256d:75d:d9cb:f59f]) by OSBPR01MB4888.jpnprd01.prod.outlook.com ([fe80::256d:75d:d9cb:f59f%5]) with mapi id 15.20.4242.030; Thu, 8 Jul 2021 06:54:45 +0000 From: "osumi.takamichi@fujitsu.com" To: "pgsql-hackers@lists.postgresql.org" Subject: Failed transaction statistics to measure the logical replication progress Thread-Topic: Failed transaction statistics to measure the logical replication progress Thread-Index: AddzxbV4E8towJomTkm1trqmHwIwlg== Date: Thu, 8 Jul 2021 06:54:45 +0000 Message-ID: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Enabled=true; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_SetDate=2021-07-08T06:50:02Z; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Method=Standard; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Name=FUJITSU-RESTRICTED?; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_SiteId=a19f121d-81e1-4858-a9d8-736e267fd4c7; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_ActionId=bb5a7449-2607-4019-aded-ed37294ef0a1; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_ContentBits=0 authentication-results: lists.postgresql.org; dkim=none (message not signed) header.d=none;lists.postgresql.org; dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 324248cf-f19a-4177-4488-08d941dd456e x-ms-traffictypediagnostic: OSBPR01MB4038: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2582; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MZG/6O1TKBNJk1x+UP0ZAjC0GYRmOEIMJAnN+H/72TQZ7ptzSGPTfoHPCyCaV1IwehBLZCySiUSFBCRs5QdaNlA1ScZIFAnBwuw2vyYEp7uehJSF03GSJNWcBYO25WshsKWwKuSefAL9ux8ASczyRgSDh3+kL+Es5sliRX7lx2P+4qqTYYO+kK0snn0CzOC5nHDujAnfTq49b7K2ZUzEi6yX3YmVWpHIZrOmXpoynUcGxOEJQ0DCM2dO5Lkyuef+lDg8n/DQf3TfkSv2yEuoYWZThUIedeZEkwov+5vJo3wryaWiP5jrXw/rMlPKV9JUQgGiywtJX8DR+DtSkdZJj2juiZDZ2oMDXZKm+Prek7RRZTdbSdLf+Xsj6D7eNO+0jof1TYWJgHqBnY+/cHU8EAth8Rfk9hSw3xeoNOftEQzFB+UfuH8MtwUCCUtJY1x8gzVudUOgaqbnzDoUiIDPDmrPVpdldfih908DG61UTwRCRFf6XyzjVaIb0//O01D1UNT4xr73bVgIZY9dbEAUTjueX3r8GsI8y2RMzcbr7LmSdzUbP5HX5qQCP566T0qli8k8iV7BL0JSONKoWVUZMxf8wX567vGcATNIjUkvoMc+GdhfXrMIgEyBl0/HVVZbOi+Ef206ia+BXU0wgT1RUuXuXvQEwzt5h63W3zX1j5mXkJ4VjYi3Ai4hEXMfTscKxohM3JxkksXs9pqZcTkdSMZmqVSHfRxdp8SAgkaLWs0= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OSBPR01MB4888.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(396003)(376002)(136003)(39860400002)(346002)(478600001)(6916009)(2906002)(66616009)(66556008)(186003)(52536014)(66446008)(316002)(5660300002)(64756008)(7696005)(66476007)(8936002)(966005)(66946007)(6506007)(76116006)(9686003)(83380400001)(86362001)(85182001)(71200400001)(26005)(33656002)(55016002)(8676002)(122000001)(38100700002)(99936003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?B?ZXpzK3lDVFRjM3drVmdTaVl2U2NPSjQzbHgzS3J1KzM2STlWdG5sNDBs?= =?iso-2022-jp?B?cm5XTEg5V2hxbkFzbVZ6MHhQVFRBRW1TKzd2S0pzNEdLVW14ekZFTkgx?= =?iso-2022-jp?B?YW0zcStwRFZqT1ZUWHVGVDJ5cHZsUHhWMnJUTGpQOFZvY3V0SmxqYmtO?= =?iso-2022-jp?B?L28zeDRIamNWTitHNzNXV2pRa2F4Z1JUN1NQSUIxa2htK1JZdGp2aGRi?= =?iso-2022-jp?B?cUdiM2taT2hxRUJLVnplQWFkSWlyTE5idEZNMSsra2U2U1FEQzJ0OEUz?= =?iso-2022-jp?B?MUlIcjd5bXJTYWdjRU9RNW5MeGtXMjZhdVJUdnN4UTFFcnJzVmZ1OXNU?= =?iso-2022-jp?B?amZ3UmI5WCtVeUpvL3dpcWtBZlQ4S243NWNGR203OUdPdHRVQ1AwQ0JH?= =?iso-2022-jp?B?T0tsVGd3Z2Y0VXo1Rjg2Z3VTTStpMTR0eU45akExSUxNNTdwR2J4NGhN?= =?iso-2022-jp?B?eUR4cEZ2WWNxbm1JQzdReXdtMC9ONjlwaTFyNHY5QU9lT0JaWEdRcTNx?= =?iso-2022-jp?B?YXc5ajcrTVhROXZ0dG1wa1I4KzdYdEY1TnFUTmVIZ0ZrbXRQOWgvWml3?= =?iso-2022-jp?B?aVFqT1grODZDOWltZVRscW9iSVJ5bDVUb3RLRHlETzhxR3AydzV0cVBj?= =?iso-2022-jp?B?QVpEUUUzRTl1ZG53QlJORmYxblk3elkwVGJwbUl6TkdNM0hNdDgyT1Vz?= =?iso-2022-jp?B?aDhVVmFRUjZiZm8ycnM3cXBQVmxCMkRkcFdQeDdHVktSK0paTzhsREZo?= =?iso-2022-jp?B?YlFSdmhXbWpiSE5jKzhGVHpkcS9NVHBydUxVT210bkNwVlM1R0F5NnJN?= =?iso-2022-jp?B?ekU3bllUV2ptWHVsRXNub1J4ak8rUklmeGJpbUZURkpKUFNmUWNJWXNu?= =?iso-2022-jp?B?ZnVFa0t4QWFxMFFnMFFNeFZQVXBIczRxaDRPcVdoMUkraWZYNm9KelVB?= =?iso-2022-jp?B?Yk9oaFhZY20yNmVxb1huME9LcDAzYS8rUVMwNjA0L1FHRjJjNFk5NlVn?= =?iso-2022-jp?B?T0RnR0ZmY00xRUZNZVFoS0NGc0xTOFRXVGg5bmVQRTlIWmJNWHBqWmwv?= =?iso-2022-jp?B?ZDRFUDl5RTFDRVh2SEMvd0xtRzZHTkNsUzVLTTN5dWtXdHhJTitWMXJG?= =?iso-2022-jp?B?SkI3c1Y1R1ZWeWc3T3JtclVrNW9RbUdKZHNabFR4WVJrZmpGQ01iSVFF?= =?iso-2022-jp?B?MDBiaDBnNGhIZmZSNUZ4bm5XdlI0aXJEQUdma2QzeXlYNWpZWkVOTlVE?= =?iso-2022-jp?B?UUI5ZnYya3pNSDJRV3JGNEFvSUIzdjdMVUJPL2ZScFV5bkVzcnZyZmkz?= =?iso-2022-jp?B?WkFqU3RlMHJQNC9XYlQzOTQ2MkVLZEZzWTNHVDRLSldNWlFudmJMeGZl?= =?iso-2022-jp?B?SitJSTduL3dHTGtrQkk5N2NvcEJNbFg4OFMydGdxV2NDNFdENjM5YldU?= =?iso-2022-jp?B?UEU2dVk5eW9ZSThJOGVDS2E4Q282UUpJclNxb05ubit2bUJXbW90eHJU?= =?iso-2022-jp?B?VDF0dUh3bi9pZ0syN1dOTGIvbG5MS0h2QlhQeTZFWkpCeDFKbHRURGUy?= =?iso-2022-jp?B?bDRvcjdzano4R2tGUk5RbUZwV1FMR0xxM3lKZ3VuUUl0OTdBdU5DZ2w0?= =?iso-2022-jp?B?andFWEozaVlsMkRWeWdDSkYrZ0tmRmhrM3FnUHF5R0pERnV2RWhZZ1Nz?= =?iso-2022-jp?B?T2xpS1dIdll2RXl0bC8rOG55Q3RlNXhzWitGcElYcVdyZlYxdGVLdDRj?= =?iso-2022-jp?B?N3J1R0h1YSt6bmRLR2gweTV1VXZ4ZkhsMkt2N3FuNjJYY1JoUlI5Tjc0?= =?iso-2022-jp?B?UTRNNHNvMnNsNFNob3BUYjNmRjgwcjV4dXMyR2RHemxwZVk3ZERKU3Q0?= =?iso-2022-jp?B?VkJjYVl4eXo1M0pUYVhJQ1JBL2ZwYmVRSVRJVGRsRGkvRFFNKy9tUXdy?= x-ms-exchange-transport-forked: True Content-Type: multipart/mixed; boundary="_002_OSBPR01MB48887CA8F40C8D984A6DC00CED199OSBPR01MB4888jpnp_" MIME-Version: 1.0 X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OSBPR01MB4888.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 324248cf-f19a-4177-4488-08d941dd456e X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jul 2021 06:54:45.6858 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a19f121d-81e1-4858-a9d8-736e267fd4c7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: XFP1xwoLz11exCQa3EULEZjlKLQMHFV/fhZ+IRGcI+QDQvZTtVSoqGXwBNsuqWLe8CaA+L5Ig+XTmkD4BPcE+L/7UMRWf+9dwdiWDm9JNmM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSBPR01MB4038 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_OSBPR01MB48887CA8F40C8D984A6DC00CED199OSBPR01MB4888jpnp_ Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable Hello, hackers When the current HEAD fails during logical decoding, the failure increments txns count in pg_stat_replication_slots - [1] and adds the transaction size to the sum of bytes in the same repeatedly on the publisher, until the problem is solved. One of the good examples is duplication error on the subscriber side and this applies to both streaming and spill cases as well. This update prevents users from grasping the exact number and size of successful and unsuccessful transactions. Accordingly, we need to have new columns of failed transactions that will work to differentiate both of them for all types, which means spill, streaming and normal transactions. This will help users to measure the exact status of logical replication. Attached file is the POC patch for this. Current design is to save failed stats data in the ReplicationSlot struct. This is because after the error, I'm not able to access the ReorderBuffer o= bject. Thus, I chose the object where I can interact with at the ReplicationSlotRe= lease timing. Below is one example that I can get on the publisher, after the duplication error on the subscriber caused by insert is solved. postgres=3D# select * from pg_stat_replication_slots; -[ RECORD 1 ]-------+------ slot_name | mysub spill_txns | 0 spill_count | 0 spill_bytes | 0 failed_spill_txns | 0 failed_spill_bytes | 0 stream_txns | 0 stream_count | 0 stream_bytes | 0 failed_stream_txns | 0 failed_stream_bytes | 0 total_txns | 4 total_bytes | 528 failed_total_txns | 3 failed_total_bytes | 396 stats_reset |=20 Any ideas and comments are welcome. [1] - https://www.postgresql.org/docs/devel/monitoring-stats.html#MONITORIN= G-PG-STAT-REPLICATION-SLOTS-VIEW Best Regards, Takamichi Osumi --_002_OSBPR01MB48887CA8F40C8D984A6DC00CED199OSBPR01MB4888jpnp_ Content-Type: application/octet-stream; name="failed_transaction_stats_POC_v01.patch" Content-Description: failed_transaction_stats_POC_v01.patch Content-Disposition: attachment; filename="failed_transaction_stats_POC_v01.patch"; size=17538; creation-date="Thu, 08 Jul 2021 06:50:08 GMT"; modification-date="Thu, 08 Jul 2021 06:50:08 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCA5OTlkOTg0Li5iMzViNjY3IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC05NjIsMTEgKzk2MiwxNyBAQCBD UkVBVEUgVklFVyBwZ19zdGF0X3JlcGxpY2F0aW9uX3Nsb3RzIEFTCiAgICAgICAgICAgICBzLnNw aWxsX3R4bnMsCiAgICAgICAgICAgICBzLnNwaWxsX2NvdW50LAogICAgICAgICAgICAgcy5zcGls bF9ieXRlcywKKyAgICAgICAgICAgIHMuZmFpbGVkX3NwaWxsX3R4bnMsCisgICAgICAgICAgICBz LmZhaWxlZF9zcGlsbF9ieXRlcywKICAgICAgICAgICAgIHMuc3RyZWFtX3R4bnMsCiAgICAgICAg ICAgICBzLnN0cmVhbV9jb3VudCwKICAgICAgICAgICAgIHMuc3RyZWFtX2J5dGVzLAorICAgICAg ICAgICAgcy5mYWlsZWRfc3RyZWFtX3R4bnMsCisgICAgICAgICAgICBzLmZhaWxlZF9zdHJlYW1f Ynl0ZXMsCiAgICAgICAgICAgICBzLnRvdGFsX3R4bnMsCiAgICAgICAgICAgICBzLnRvdGFsX2J5 dGVzLAorICAgICAgICAgICAgcy5mYWlsZWRfdG90YWxfdHhucywKKyAgICAgICAgICAgIHMuZmFp bGVkX3RvdGFsX2J5dGVzLAogICAgICAgICAgICAgcy5zdGF0c19yZXNldAogICAgIEZST00gcGdf cmVwbGljYXRpb25fc2xvdHMgYXMgciwKICAgICAgICAgTEFURVJBTCBwZ19zdGF0X2dldF9yZXBs aWNhdGlvbl9zbG90KHNsb3RfbmFtZSkgYXMgcwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9z dG1hc3Rlci9wZ3N0YXQuYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcGdzdGF0LmMKaW5kZXgg Y2U4ODg4Yy4uZGU5OGViNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ3N0 YXQuYworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jCkBAIC0xODE5LDExICsx ODE5LDE3IEBAIHBnc3RhdF9yZXBvcnRfcmVwbHNsb3QoY29uc3QgUGdTdGF0X1N0YXRSZXBsU2xv dEVudHJ5ICpyZXBTbG90U3RhdCkKIAltc2cubV9zcGlsbF90eG5zID0gcmVwU2xvdFN0YXQtPnNw aWxsX3R4bnM7CiAJbXNnLm1fc3BpbGxfY291bnQgPSByZXBTbG90U3RhdC0+c3BpbGxfY291bnQ7 CiAJbXNnLm1fc3BpbGxfYnl0ZXMgPSByZXBTbG90U3RhdC0+c3BpbGxfYnl0ZXM7CisJbXNnLm1f ZmFpbGVkX3NwaWxsX3R4bnMgPSByZXBTbG90U3RhdC0+ZmFpbGVkX3NwaWxsX3R4bnM7CisJbXNn Lm1fZmFpbGVkX3NwaWxsX2J5dGVzID0gcmVwU2xvdFN0YXQtPmZhaWxlZF9zcGlsbF9ieXRlczsK IAltc2cubV9zdHJlYW1fdHhucyA9IHJlcFNsb3RTdGF0LT5zdHJlYW1fdHhuczsKIAltc2cubV9z dHJlYW1fY291bnQgPSByZXBTbG90U3RhdC0+c3RyZWFtX2NvdW50OwogCW1zZy5tX3N0cmVhbV9i eXRlcyA9IHJlcFNsb3RTdGF0LT5zdHJlYW1fYnl0ZXM7CisJbXNnLm1fZmFpbGVkX3N0cmVhbV90 eG5zID0gcmVwU2xvdFN0YXQtPmZhaWxlZF9zdHJlYW1fdHhuczsKKwltc2cubV9mYWlsZWRfc3Ry ZWFtX2J5dGVzID0gcmVwU2xvdFN0YXQtPmZhaWxlZF9zdHJlYW1fYnl0ZXM7CiAJbXNnLm1fdG90 YWxfdHhucyA9IHJlcFNsb3RTdGF0LT50b3RhbF90eG5zOwogCW1zZy5tX3RvdGFsX2J5dGVzID0g cmVwU2xvdFN0YXQtPnRvdGFsX2J5dGVzOworCW1zZy5tX2ZhaWxlZF90b3RhbF90eG5zID0gcmVw U2xvdFN0YXQtPmZhaWxlZF90b3RhbF90eG5zOworCW1zZy5tX2ZhaWxlZF90b3RhbF9ieXRlcyA9 IHJlcFNsb3RTdGF0LT5mYWlsZWRfdG90YWxfYnl0ZXM7CiAJcGdzdGF0X3NlbmQoJm1zZywgc2l6 ZW9mKFBnU3RhdF9Nc2dSZXBsU2xvdCkpOwogfQogCkBAIC01NTA5LDExICs1NTE1LDE3IEBAIHBn c3RhdF9yZWN2X3JlcGxzbG90KFBnU3RhdF9Nc2dSZXBsU2xvdCAqbXNnLCBpbnQgbGVuKQogCQkJ c2xvdGVudC0+c3BpbGxfdHhucyArPSBtc2ctPm1fc3BpbGxfdHhuczsKIAkJCXNsb3RlbnQtPnNw aWxsX2NvdW50ICs9IG1zZy0+bV9zcGlsbF9jb3VudDsKIAkJCXNsb3RlbnQtPnNwaWxsX2J5dGVz ICs9IG1zZy0+bV9zcGlsbF9ieXRlczsKKwkJCXNsb3RlbnQtPmZhaWxlZF9zcGlsbF90eG5zICs9 IG1zZy0+bV9mYWlsZWRfc3BpbGxfdHhuczsKKwkJCXNsb3RlbnQtPmZhaWxlZF9zcGlsbF9ieXRl cyArPSBtc2ctPm1fZmFpbGVkX3NwaWxsX2J5dGVzOwogCQkJc2xvdGVudC0+c3RyZWFtX3R4bnMg Kz0gbXNnLT5tX3N0cmVhbV90eG5zOwogCQkJc2xvdGVudC0+c3RyZWFtX2NvdW50ICs9IG1zZy0+ bV9zdHJlYW1fY291bnQ7CiAJCQlzbG90ZW50LT5zdHJlYW1fYnl0ZXMgKz0gbXNnLT5tX3N0cmVh bV9ieXRlczsKKwkJCXNsb3RlbnQtPmZhaWxlZF9zdHJlYW1fdHhucyArPSBtc2ctPm1fZmFpbGVk X3N0cmVhbV90eG5zOworCQkJc2xvdGVudC0+ZmFpbGVkX3N0cmVhbV9ieXRlcyArPSBtc2ctPm1f ZmFpbGVkX3N0cmVhbV9ieXRlczsKIAkJCXNsb3RlbnQtPnRvdGFsX3R4bnMgKz0gbXNnLT5tX3Rv dGFsX3R4bnM7CiAJCQlzbG90ZW50LT50b3RhbF9ieXRlcyArPSBtc2ctPm1fdG90YWxfYnl0ZXM7 CisJCQlzbG90ZW50LT5mYWlsZWRfdG90YWxfdHhucyArPSBtc2ctPm1fZmFpbGVkX3RvdGFsX3R4 bnM7CisJCQlzbG90ZW50LT5mYWlsZWRfdG90YWxfYnl0ZXMgKz0gbXNnLT5tX2ZhaWxlZF90b3Rh bF9ieXRlczsKIAkJfQogCX0KIH0KQEAgLTU3NjAsMTEgKzU3NzIsMTcgQEAgcGdzdGF0X3Jlc2V0 X3JlcGxzbG90KFBnU3RhdF9TdGF0UmVwbFNsb3RFbnRyeSAqc2xvdGVudCwgVGltZXN0YW1wVHog dHMpCiAJc2xvdGVudC0+c3BpbGxfdHhucyA9IDA7CiAJc2xvdGVudC0+c3BpbGxfY291bnQgPSAw OwogCXNsb3RlbnQtPnNwaWxsX2J5dGVzID0gMDsKKwlzbG90ZW50LT5mYWlsZWRfc3BpbGxfdHhu cyA9IDA7CisJc2xvdGVudC0+ZmFpbGVkX3NwaWxsX2J5dGVzID0gMDsKIAlzbG90ZW50LT5zdHJl YW1fdHhucyA9IDA7CiAJc2xvdGVudC0+c3RyZWFtX2NvdW50ID0gMDsKIAlzbG90ZW50LT5zdHJl YW1fYnl0ZXMgPSAwOworCXNsb3RlbnQtPmZhaWxlZF9zdHJlYW1fdHhucyA9IDA7CisJc2xvdGVu dC0+ZmFpbGVkX3N0cmVhbV9ieXRlcyA9IDA7CiAJc2xvdGVudC0+dG90YWxfdHhucyA9IDA7CiAJ c2xvdGVudC0+dG90YWxfYnl0ZXMgPSAwOworCXNsb3RlbnQtPmZhaWxlZF90b3RhbF90eG5zID0g MDsKKwlzbG90ZW50LT5mYWlsZWRfdG90YWxfYnl0ZXMgPSAwOwogCXNsb3RlbnQtPnN0YXRfcmVz ZXRfdGltZXN0YW1wID0gdHM7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvbG9naWNhbC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9s b2dpY2FsLmMKaW5kZXggZDUzNmE1Zi4uMTU5MjIzZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9sb2dpY2FsLmMKQEAgLTE5Niw2ICsxOTYsMTIgQEAgU3RhcnR1cERlY29kaW5n Q29udGV4dChMaXN0ICpvdXRwdXRfcGx1Z2luX29wdGlvbnMsCiAJCUxXTG9ja1JlbGVhc2UoUHJv Y0FycmF5TG9jayk7CiAJfQogCisJc2xvdC0+ZmFpbGVkU3BpbGxUeG5zID0gMDsKKwlzbG90LT5m YWlsZWRTcGlsbEJ5dGVzID0gMDsKKwlzbG90LT5mYWlsZWRTdHJlYW1UeG5zID0gMDsKKwlzbG90 LT5mYWlsZWRTdHJlYW1CeXRlcyA9IDA7CisJc2xvdC0+ZmFpbGVkVG90YWxUeG5zID0gMDsKKwlz bG90LT5mYWlsZWRUb3RhbEJ5dGVzID0gMDsKIAljdHgtPnNsb3QgPSBzbG90OwogCiAJY3R4LT5y ZWFkZXIgPSBYTG9nUmVhZGVyQWxsb2NhdGUod2FsX3NlZ21lbnRfc2l6ZSwgTlVMTCwgeGxfcm91 dGluZSwgY3R4KTsKQEAgLTE3OTQsMTEgKzE4MDAsMTcgQEAgVXBkYXRlRGVjb2RpbmdTdGF0cyhM b2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgpCiAJcmVwU2xvdFN0YXQuc3BpbGxfdHhucyA9IHJi LT5zcGlsbFR4bnM7CiAJcmVwU2xvdFN0YXQuc3BpbGxfY291bnQgPSByYi0+c3BpbGxDb3VudDsK IAlyZXBTbG90U3RhdC5zcGlsbF9ieXRlcyA9IHJiLT5zcGlsbEJ5dGVzOworCXJlcFNsb3RTdGF0 LmZhaWxlZF9zcGlsbF90eG5zID0gMDsKKwlyZXBTbG90U3RhdC5mYWlsZWRfc3BpbGxfYnl0ZXMg PSAwOwogCXJlcFNsb3RTdGF0LnN0cmVhbV90eG5zID0gcmItPnN0cmVhbVR4bnM7CiAJcmVwU2xv dFN0YXQuc3RyZWFtX2NvdW50ID0gcmItPnN0cmVhbUNvdW50OwogCXJlcFNsb3RTdGF0LnN0cmVh bV9ieXRlcyA9IHJiLT5zdHJlYW1CeXRlczsKKwlyZXBTbG90U3RhdC5mYWlsZWRfc3RyZWFtX3R4 bnMgPSAwOworCXJlcFNsb3RTdGF0LmZhaWxlZF9zdHJlYW1fYnl0ZXMgPSAwOwogCXJlcFNsb3RT dGF0LnRvdGFsX3R4bnMgPSByYi0+dG90YWxUeG5zOwogCXJlcFNsb3RTdGF0LnRvdGFsX2J5dGVz ID0gcmItPnRvdGFsQnl0ZXM7CisJcmVwU2xvdFN0YXQuZmFpbGVkX3RvdGFsX3R4bnMgPSAwOwor CXJlcFNsb3RTdGF0LmZhaWxlZF90b3RhbF9ieXRlcyA9IDA7CiAKIAlwZ3N0YXRfcmVwb3J0X3Jl cGxzbG90KCZyZXBTbG90U3RhdCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvcmVvcmRlcmJ1ZmZlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC9yZW9yZGVyYnVmZmVyLmMKaW5kZXggYjhjNWUyYS4uY2EzNWM0MiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9yZW9yZGVyYnVmZmVyLmMKKysrIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9yZW9yZGVyYnVmZmVyLmMKQEAgLTIwNTEsNiAr MjA1MSw3IEBAIFJlb3JkZXJCdWZmZXJQcm9jZXNzVFhOKFJlb3JkZXJCdWZmZXIgKnJiLCBSZW9y ZGVyQnVmZmVyVFhOICp0eG4sCiAJUEdfVFJZKCk7CiAJewogCQlSZW9yZGVyQnVmZmVyQ2hhbmdl ICpjaGFuZ2U7CisJCVJlcGxpY2F0aW9uU2xvdCAqc2xvdCA9IE15UmVwbGljYXRpb25TbG90Owog CiAJCWlmICh1c2luZ19zdWJ0eG4pCiAJCQlCZWdpbkludGVybmFsU3ViVHJhbnNhY3Rpb24oc3Ry ZWFtaW5nID8gInN0cmVhbSIgOiAicmVwbGF5Iik7CkBAIC0yNDA5LDkgKzI0MTAsMTMgQEAgUmVv cmRlckJ1ZmZlclByb2Nlc3NUWE4oUmVvcmRlckJ1ZmZlciAqcmIsIFJlb3JkZXJCdWZmZXJUWE4g KnR4biwKIAkJICogd2hpY2ggd2UgaGF2ZSBhbHJlYWR5IGFjY291bnRlZCBpbiBSZW9yZGVyQnVm ZmVySXRlclRYTk5leHQuCiAJCSAqLwogCQlpZiAoIXJidHhuX2lzX3N0cmVhbWVkKHR4bikpCisJ CXsKIAkJCXJiLT50b3RhbFR4bnMrKzsKKwkJCXNsb3QtPmZhaWxlZFRvdGFsVHhucysrOworCQl9 CiAKIAkJcmItPnRvdGFsQnl0ZXMgKz0gdHhuLT50b3RhbF9zaXplOworCQlzbG90LT5mYWlsZWRU b3RhbEJ5dGVzICs9IHR4bi0+dG90YWxfc2l6ZTsKIAogCQkvKgogCQkgKiBEb25lIHdpdGggY3Vy cmVudCBjaGFuZ2VzLCBzZW5kIHRoZSBsYXN0IG1lc3NhZ2UgZm9yIHRoaXMgc2V0IG9mCkBAIC0z NTgyLDExICszNTg3LDE3IEBAIFJlb3JkZXJCdWZmZXJTZXJpYWxpemVUWE4oUmVvcmRlckJ1ZmZl ciAqcmIsIFJlb3JkZXJCdWZmZXJUWE4gKnR4bikKIAkvKiB1cGRhdGUgdGhlIHN0YXRpc3RpY3Mg aWZmIHdlIGhhdmUgc3BpbGxlZCBhbnl0aGluZyAqLwogCWlmIChzcGlsbGVkKQogCXsKKwkJUmVw bGljYXRpb25TbG90ICpzbG90ID0gTXlSZXBsaWNhdGlvblNsb3Q7CisJCWludCBzcGlsbF90eG47 CisKIAkJcmItPnNwaWxsQ291bnQgKz0gMTsKIAkJcmItPnNwaWxsQnl0ZXMgKz0gc2l6ZTsKKwkJ c2xvdC0+ZmFpbGVkU3BpbGxCeXRlcyArPSBzaXplOwogCiAJCS8qIGRvbid0IGNvbnNpZGVyIGFs cmVhZHkgc2VyaWFsaXplZCB0cmFuc2FjdGlvbnMgKi8KLQkJcmItPnNwaWxsVHhucyArPSAocmJ0 eG5faXNfc2VyaWFsaXplZCh0eG4pIHx8IHJidHhuX2lzX3NlcmlhbGl6ZWRfY2xlYXIodHhuKSkg PyAwIDogMTsKKwkJc3BpbGxfdHhuID0gKHJidHhuX2lzX3NlcmlhbGl6ZWQodHhuKSB8fCByYnR4 bl9pc19zZXJpYWxpemVkX2NsZWFyKHR4bikpID8gMCA6IDE7CisJCXJiLT5zcGlsbFR4bnMgKz0g c3BpbGxfdHhuOworCQlzbG90LT5mYWlsZWRTcGlsbFR4bnMgKz0gc3BpbGxfdHhuOwogCiAJCS8q IHVwZGF0ZSB0aGUgZGVjb2Rpbmcgc3RhdHMgKi8KIAkJVXBkYXRlRGVjb2RpbmdTdGF0cygoTG9n aWNhbERlY29kaW5nQ29udGV4dCAqKSByYi0+cHJpdmF0ZV9kYXRhKTsKQEAgLTM4NjEsNiArMzg3 Miw3IEBAIFJlb3JkZXJCdWZmZXJTdHJlYW1UWE4oUmVvcmRlckJ1ZmZlciAqcmIsIFJlb3JkZXJC dWZmZXJUWE4gKnR4bikKIAlDb21tYW5kSWQJY29tbWFuZF9pZDsKIAlTaXplCQlzdHJlYW1fYnl0 ZXM7CiAJYm9vbAkJdHhuX2lzX3N0cmVhbWVkOworCVJlcGxpY2F0aW9uU2xvdCAqc2xvdCA9IE15 UmVwbGljYXRpb25TbG90OwogCiAJLyogV2UgY2FuIG5ldmVyIHJlYWNoIGhlcmUgZm9yIGEgc3Vi dHJhbnNhY3Rpb24uICovCiAJQXNzZXJ0KHR4bi0+dG9wdHhuID09IE5VTEwpOwpAQCAtMzk1Niw5 ICszOTY4LDExIEBAIFJlb3JkZXJCdWZmZXJTdHJlYW1UWE4oUmVvcmRlckJ1ZmZlciAqcmIsIFJl b3JkZXJCdWZmZXJUWE4gKnR4bikKIAogCXJiLT5zdHJlYW1Db3VudCArPSAxOwogCXJiLT5zdHJl YW1CeXRlcyArPSBzdHJlYW1fYnl0ZXM7CisJc2xvdC0+ZmFpbGVkU3RyZWFtQnl0ZXMgKz0gc3Ry ZWFtX2J5dGVzOwogCiAJLyogRG9uJ3QgY29uc2lkZXIgYWxyZWFkeSBzdHJlYW1lZCB0cmFuc2Fj dGlvbi4gKi8KIAlyYi0+c3RyZWFtVHhucyArPSAodHhuX2lzX3N0cmVhbWVkKSA/IDAgOiAxOwor CXNsb3QtPmZhaWxlZFN0cmVhbVR4bnMgKz0gKHR4bl9pc19zdHJlYW1lZCkgPyAwIDogMTsKIAog CS8qIHVwZGF0ZSB0aGUgZGVjb2Rpbmcgc3RhdHMgKi8KIAlVcGRhdGVEZWNvZGluZ1N0YXRzKChM b2dpY2FsRGVjb2RpbmdDb250ZXh0ICopIHJiLT5wcml2YXRlX2RhdGEpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v c2xvdC5jCmluZGV4IDhjMThiNGUuLmFjNWU5NTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3Nsb3QuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAg LTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJjb21tb24vc3RyaW5nLmgiCiAjaW5jbHVkZSAibWlz Y2FkbWluLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vbG9n aWNhbC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3QuaCIKICNpbmNsdWRlICJzdG9yYWdl L2ZkLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCkBAIC00NzEsNiArNDcyLDExIEBAIFJl cGxpY2F0aW9uU2xvdFJlbGVhc2Uodm9pZCkKIAogCUFzc2VydChzbG90ICE9IE5VTEwgJiYgc2xv dC0+YWN0aXZlX3BpZCAhPSAwKTsKIAorCWlmIChTbG90SXNMb2dpY2FsKHNsb3QpKQorCXsKKwkJ VXBkYXRlRGVjb2RpbmdGYWlsZWRTdGF0cygpOworCX0KKwogCWlmIChzbG90LT5kYXRhLnBlcnNp c3RlbmN5ID09IFJTX0VQSEVNRVJBTCkKIAl7CiAJCS8qCkBAIC0xODM5LDMgKzE4NDUsNDAgQEAg UmVzdG9yZVNsb3RGcm9tRGlzayhjb25zdCBjaGFyICpuYW1lKQogCQkJCShlcnJtc2coInRvbyBt YW55IHJlcGxpY2F0aW9uIHNsb3RzIGFjdGl2ZSBiZWZvcmUgc2h1dGRvd24iKSwKIAkJCQkgZXJy aGludCgiSW5jcmVhc2UgbWF4X3JlcGxpY2F0aW9uX3Nsb3RzIGFuZCB0cnkgYWdhaW4uIikpKTsK IH0KKworLyoKKyAqIFJlcG9ydCBmYWlsZWQgc3RhdHMgZm9yIGEgc2xvdC4KKyAqLwordm9pZAor VXBkYXRlRGVjb2RpbmdGYWlsZWRTdGF0cygpCit7CisJUGdTdGF0X1N0YXRSZXBsU2xvdEVudHJ5 IHJlcFNsb3RTdGF0OworCVJlcGxpY2F0aW9uU2xvdCAqc2xvdCA9IE15UmVwbGljYXRpb25TbG90 OworCisJQXNzZXJ0KE15UmVwbGljYXRpb25TbG90ICE9IE5VTEwpOworCisJbmFtZXN0cmNweSgm cmVwU2xvdFN0YXQuc2xvdG5hbWUsIE5hbWVTdHIoc2xvdC0+ZGF0YS5uYW1lKSk7CisJcmVwU2xv dFN0YXQuc3BpbGxfdHhucyA9IDA7CisJcmVwU2xvdFN0YXQuc3BpbGxfY291bnQgPSAwOworCXJl cFNsb3RTdGF0LnNwaWxsX2J5dGVzID0gMDsKKwlyZXBTbG90U3RhdC5mYWlsZWRfc3BpbGxfdHhu cyA9IHNsb3QtPmZhaWxlZFNwaWxsVHhuczsKKwlyZXBTbG90U3RhdC5mYWlsZWRfc3BpbGxfYnl0 ZXMgPSBzbG90LT5mYWlsZWRTcGlsbEJ5dGVzOworCXJlcFNsb3RTdGF0LnN0cmVhbV90eG5zID0g MDsKKwlyZXBTbG90U3RhdC5zdHJlYW1fY291bnQgPSAwOworCXJlcFNsb3RTdGF0LnN0cmVhbV9i eXRlcyA9IDA7CisJcmVwU2xvdFN0YXQuZmFpbGVkX3N0cmVhbV90eG5zID0gc2xvdC0+ZmFpbGVk U3RyZWFtVHhuczsKKwlyZXBTbG90U3RhdC5mYWlsZWRfc3RyZWFtX2J5dGVzID0gc2xvdC0+ZmFp bGVkU3RyZWFtQnl0ZXM7CisJcmVwU2xvdFN0YXQudG90YWxfdHhucyA9IDA7CisJcmVwU2xvdFN0 YXQudG90YWxfYnl0ZXMgPSAwOworCXJlcFNsb3RTdGF0LmZhaWxlZF90b3RhbF90eG5zID0gc2xv dC0+ZmFpbGVkVG90YWxUeG5zOworCXJlcFNsb3RTdGF0LmZhaWxlZF90b3RhbF9ieXRlcyA9IHNs b3QtPmZhaWxlZFRvdGFsQnl0ZXM7CisKKwlwZ3N0YXRfcmVwb3J0X3JlcGxzbG90KCZyZXBTbG90 U3RhdCk7CisKKwlzbG90LT5mYWlsZWRTcGlsbFR4bnMgPSAwOworCXNsb3QtPmZhaWxlZFNwaWxs Qnl0ZXMgPSAwOworCXNsb3QtPmZhaWxlZFN0cmVhbVR4bnMgPSAwOworCXNsb3QtPmZhaWxlZFN0 cmVhbUJ5dGVzID0gMDsKKwlzbG90LT5mYWlsZWRUb3RhbFR4bnMgPSAwOworCXNsb3QtPmZhaWxl ZFRvdGFsQnl0ZXMgPSAwOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bn c3RhdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwppbmRleCBm MGUwOWVhLi5mNTE4OTY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0 ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtMjMx Myw3ICsyMzEzLDcgQEAgcGdfc3RhdF9nZXRfYXJjaGl2ZXIoUEdfRlVOQ1RJT05fQVJHUykKIERh dHVtCiBwZ19zdGF0X2dldF9yZXBsaWNhdGlvbl9zbG90KFBHX0ZVTkNUSU9OX0FSR1MpCiB7Ci0j ZGVmaW5lIFBHX1NUQVRfR0VUX1JFUExJQ0FUSU9OX1NMT1RfQ09MUyAxMAorI2RlZmluZSBQR19T VEFUX0dFVF9SRVBMSUNBVElPTl9TTE9UX0NPTFMgMTYKIAl0ZXh0CSAgICpzbG90bmFtZV90ZXh0 ID0gUEdfR0VUQVJHX1RFWFRfUCgwKTsKIAlOYW1lRGF0YQlzbG90bmFtZTsKIAlUdXBsZURlc2MJ dHVwZGVzYzsKQEAgLTIzMzYsMTcgKzIzMzYsMjkgQEAgcGdfc3RhdF9nZXRfcmVwbGljYXRpb25f c2xvdChQR19GVU5DVElPTl9BUkdTKQogCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CiAJVHVwbGVE ZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSA0LCAic3BpbGxfYnl0ZXMiLAogCQkJ CQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRy TnVtYmVyKSA1LCAic3RyZWFtX3R4bnMiLAorCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAo QXR0ck51bWJlcikgNSwgImZhaWxlZF9zcGlsbF90eG5zIiwKIAkJCQkJICAgSU5UOE9JRCwgLTEs IDApOwotCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgNiwgInN0cmVh bV9jb3VudCIsCisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSA2LCAi ZmFpbGVkX3NwaWxsX2J5dGVzIiwKIAkJCQkJICAgSU5UOE9JRCwgLTEsIDApOwotCVR1cGxlRGVz Y0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgNywgInN0cmVhbV9ieXRlcyIsCisJVHVw bGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSA3LCAic3RyZWFtX3R4bnMiLAog CQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChB dHRyTnVtYmVyKSA4LCAidG90YWxfdHhucyIsCisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2Ms IChBdHRyTnVtYmVyKSA4LCAic3RyZWFtX2NvdW50IiwKIAkJCQkJICAgSU5UOE9JRCwgLTEsIDAp OwotCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgOSwgInRvdGFsX2J5 dGVzIiwKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDksICJzdHJl YW1fYnl0ZXMiLAogCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5 KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAxMCwgInN0YXRzX3Jlc2V0IiwKKwlUdXBsZURlc2NJbml0 RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDEwLCAiZmFpbGVkX3N0cmVhbV90eG5zIiwKKwkJ CQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0 ck51bWJlcikgMTEsICJmYWlsZWRfc3RyZWFtX2J5dGVzIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEs IDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgMTIsICJ0b3Rh bF90eG5zIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0 dXBkZXNjLCAoQXR0ck51bWJlcikgMTMsICJ0b3RhbF9ieXRlcyIsCisJCQkJCSAgIElOVDhPSUQs IC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDE0LCAi ZmFpbGVkX3RvdGFsX3R4bnMiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNj SW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAxNSwgImZhaWxlZF90b3RhbF9ieXRlcyIs CisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywg KEF0dHJOdW1iZXIpIDE2LCAic3RhdHNfcmVzZXQiLAogCQkJCQkgICBUSU1FU1RBTVBUWk9JRCwg LTEsIDApOwogCUJsZXNzVHVwbGVEZXNjKHR1cGRlc2MpOwogCkBAIC0yMzY2LDE2ICsyMzc4LDIy IEBAIHBnX3N0YXRfZ2V0X3JlcGxpY2F0aW9uX3Nsb3QoUEdfRlVOQ1RJT05fQVJHUykKIAl2YWx1 ZXNbMV0gPSBJbnQ2NEdldERhdHVtKHNsb3RlbnQtPnNwaWxsX3R4bnMpOwogCXZhbHVlc1syXSA9 IEludDY0R2V0RGF0dW0oc2xvdGVudC0+c3BpbGxfY291bnQpOwogCXZhbHVlc1szXSA9IEludDY0 R2V0RGF0dW0oc2xvdGVudC0+c3BpbGxfYnl0ZXMpOwotCXZhbHVlc1s0XSA9IEludDY0R2V0RGF0 dW0oc2xvdGVudC0+c3RyZWFtX3R4bnMpOwotCXZhbHVlc1s1XSA9IEludDY0R2V0RGF0dW0oc2xv dGVudC0+c3RyZWFtX2NvdW50KTsKLQl2YWx1ZXNbNl0gPSBJbnQ2NEdldERhdHVtKHNsb3RlbnQt PnN0cmVhbV9ieXRlcyk7Ci0JdmFsdWVzWzddID0gSW50NjRHZXREYXR1bShzbG90ZW50LT50b3Rh bF90eG5zKTsKLQl2YWx1ZXNbOF0gPSBJbnQ2NEdldERhdHVtKHNsb3RlbnQtPnRvdGFsX2J5dGVz KTsKKwl2YWx1ZXNbNF0gPSBJbnQ2NEdldERhdHVtKHNsb3RlbnQtPmZhaWxlZF9zcGlsbF90eG5z KTsKKwl2YWx1ZXNbNV0gPSBJbnQ2NEdldERhdHVtKHNsb3RlbnQtPmZhaWxlZF9zcGlsbF9ieXRl cyk7CisJdmFsdWVzWzZdID0gSW50NjRHZXREYXR1bShzbG90ZW50LT5zdHJlYW1fdHhucyk7CisJ dmFsdWVzWzddID0gSW50NjRHZXREYXR1bShzbG90ZW50LT5zdHJlYW1fY291bnQpOworCXZhbHVl c1s4XSA9IEludDY0R2V0RGF0dW0oc2xvdGVudC0+c3RyZWFtX2J5dGVzKTsKKwl2YWx1ZXNbOV0g PSBJbnQ2NEdldERhdHVtKHNsb3RlbnQtPmZhaWxlZF9zdHJlYW1fdHhucyk7CisJdmFsdWVzWzEw XSA9IEludDY0R2V0RGF0dW0oc2xvdGVudC0+ZmFpbGVkX3N0cmVhbV9ieXRlcyk7CisJdmFsdWVz WzExXSA9IEludDY0R2V0RGF0dW0oc2xvdGVudC0+dG90YWxfdHhucyk7CisJdmFsdWVzWzEyXSA9 IEludDY0R2V0RGF0dW0oc2xvdGVudC0+dG90YWxfYnl0ZXMpOworCXZhbHVlc1sxM10gPSBJbnQ2 NEdldERhdHVtKHNsb3RlbnQtPmZhaWxlZF90b3RhbF90eG5zKTsKKwl2YWx1ZXNbMTRdID0gSW50 NjRHZXREYXR1bShzbG90ZW50LT5mYWlsZWRfdG90YWxfYnl0ZXMpOwogCiAJaWYgKHNsb3RlbnQt PnN0YXRfcmVzZXRfdGltZXN0YW1wID09IDApCi0JCW51bGxzWzldID0gdHJ1ZTsKKwkJbnVsbHNb MTVdID0gdHJ1ZTsKIAllbHNlCi0JCXZhbHVlc1s5XSA9IFRpbWVzdGFtcFR6R2V0RGF0dW0oc2xv dGVudC0+c3RhdF9yZXNldF90aW1lc3RhbXApOworCQl2YWx1ZXNbMTVdID0gVGltZXN0YW1wVHpH ZXREYXR1bShzbG90ZW50LT5zdGF0X3Jlc2V0X3RpbWVzdGFtcCk7CiAKIAkvKiBSZXR1cm5zIHRo ZSByZWNvcmQgYXMgRGF0dW0gKi8KIAlQR19SRVRVUk5fREFUVU0oSGVhcFR1cGxlR2V0RGF0dW0o aGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpKSk7CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w cm9jLmRhdAppbmRleCBmZGUyNTFmLi4xMWNmMDFiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQK QEAgLTUzMTMsOSArNTMxMyw5IEBACiAgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3JlcGxpY2F0 aW9uX3Nsb3QnLCBwcm9yb3dzID0+ICcxJywgcHJvaXNzdHJpY3QgPT4gJ2YnLAogICBwcm9yZXRz ZXQgPT4gJ3QnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3BhcmFsbGVsID0+ICdyJywKICAgcHJv cmV0dHlwZSA9PiAncmVjb3JkJywgcHJvYXJndHlwZXMgPT4gJ3RleHQnLAotICBwcm9hbGxhcmd0 eXBlcyA9PiAne3RleHQsdGV4dCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGlu dDgsdGltZXN0YW1wdHp9JywKLSAgcHJvYXJnbW9kZXMgPT4gJ3tpLG8sbyxvLG8sbyxvLG8sbyxv LG99JywKLSAgcHJvYXJnbmFtZXMgPT4gJ3tzbG90X25hbWUsc2xvdF9uYW1lLHNwaWxsX3R4bnMs c3BpbGxfY291bnQsc3BpbGxfYnl0ZXMsc3RyZWFtX3R4bnMsc3RyZWFtX2NvdW50LHN0cmVhbV9i eXRlcyx0b3RhbF90eG5zLHRvdGFsX2J5dGVzLHN0YXRzX3Jlc2V0fScsCisgIHByb2FsbGFyZ3R5 cGVzID0+ICd7dGV4dCx0ZXh0LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50 OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCx0aW1lc3RhbXB0en0nLAorICBwcm9hcmdt b2RlcyA9PiAne2ksbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30nLAorICBwcm9hcmdu YW1lcyA9PiAne3Nsb3RfbmFtZSxzbG90X25hbWUsc3BpbGxfdHhucyxzcGlsbF9jb3VudCxzcGls bF9ieXRlcyxmYWlsZWRfc3BpbGxfdHhucyxmYWlsZWRfc3BpbGxfYnl0ZXMsc3RyZWFtX3R4bnMs c3RyZWFtX2NvdW50LHN0cmVhbV9ieXRlcyxmYWlsZWRfc3RyZWFtX3R4bnMsZmFpbGVkX3N0cmVh bV9ieXRlcyx0b3RhbF90eG5zLHRvdGFsX2J5dGVzLGZhaWxlZF90b3RhbF90eG5zLGZhaWxlZF90 b3RhbF9ieXRlcyxzdGF0c19yZXNldH0nLAogICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X3JlcGxp Y2F0aW9uX3Nsb3QnIH0sCiB7IG9pZCA9PiAnNjExOCcsIGRlc2NyID0+ICdzdGF0aXN0aWNzOiBp bmZvcm1hdGlvbiBhYm91dCBzdWJzY3JpcHRpb24nLAogICBwcm9uYW1lID0+ICdwZ19zdGF0X2dl dF9zdWJzY3JpcHRpb24nLCBwcm9yb3dzID0+ICcxMCcsIHByb2lzc3RyaWN0ID0+ICdmJywKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKaW5k ZXggOTYxMmMwYS4uNTA2NDQwOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdzdGF0LmgKKysr IGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKQEAgLTUzMiwxMSArNTMyLDE3IEBAIHR5cGVkZWYgc3Ry dWN0IFBnU3RhdF9Nc2dSZXBsU2xvdAogCVBnU3RhdF9Db3VudGVyIG1fc3BpbGxfdHhuczsKIAlQ Z1N0YXRfQ291bnRlciBtX3NwaWxsX2NvdW50OwogCVBnU3RhdF9Db3VudGVyIG1fc3BpbGxfYnl0 ZXM7CisJUGdTdGF0X0NvdW50ZXIgbV9mYWlsZWRfc3BpbGxfdHhuczsKKwlQZ1N0YXRfQ291bnRl ciBtX2ZhaWxlZF9zcGlsbF9ieXRlczsKIAlQZ1N0YXRfQ291bnRlciBtX3N0cmVhbV90eG5zOwog CVBnU3RhdF9Db3VudGVyIG1fc3RyZWFtX2NvdW50OwogCVBnU3RhdF9Db3VudGVyIG1fc3RyZWFt X2J5dGVzOworCVBnU3RhdF9Db3VudGVyIG1fZmFpbGVkX3N0cmVhbV90eG5zOworCVBnU3RhdF9D b3VudGVyIG1fZmFpbGVkX3N0cmVhbV9ieXRlczsKIAlQZ1N0YXRfQ291bnRlciBtX3RvdGFsX3R4 bnM7CiAJUGdTdGF0X0NvdW50ZXIgbV90b3RhbF9ieXRlczsKKwlQZ1N0YXRfQ291bnRlciBtX2Zh aWxlZF90b3RhbF90eG5zOworCVBnU3RhdF9Db3VudGVyIG1fZmFpbGVkX3RvdGFsX2J5dGVzOwog fSBQZ1N0YXRfTXNnUmVwbFNsb3Q7CiAKIApAQCAtOTAwLDExICs5MDYsMTcgQEAgdHlwZWRlZiBz dHJ1Y3QgUGdTdGF0X1N0YXRSZXBsU2xvdEVudHJ5CiAJUGdTdGF0X0NvdW50ZXIgc3BpbGxfdHhu czsKIAlQZ1N0YXRfQ291bnRlciBzcGlsbF9jb3VudDsKIAlQZ1N0YXRfQ291bnRlciBzcGlsbF9i eXRlczsKKwlQZ1N0YXRfQ291bnRlciBmYWlsZWRfc3BpbGxfdHhuczsKKwlQZ1N0YXRfQ291bnRl ciBmYWlsZWRfc3BpbGxfYnl0ZXM7CiAJUGdTdGF0X0NvdW50ZXIgc3RyZWFtX3R4bnM7CiAJUGdT dGF0X0NvdW50ZXIgc3RyZWFtX2NvdW50OwogCVBnU3RhdF9Db3VudGVyIHN0cmVhbV9ieXRlczsK KwlQZ1N0YXRfQ291bnRlciBmYWlsZWRfc3RyZWFtX3R4bnM7CisJUGdTdGF0X0NvdW50ZXIgZmFp bGVkX3N0cmVhbV9ieXRlczsKIAlQZ1N0YXRfQ291bnRlciB0b3RhbF90eG5zOwogCVBnU3RhdF9D b3VudGVyIHRvdGFsX2J5dGVzOworCVBnU3RhdF9Db3VudGVyIGZhaWxlZF90b3RhbF90eG5zOwor CVBnU3RhdF9Db3VudGVyIGZhaWxlZF90b3RhbF9ieXRlczsKIAlUaW1lc3RhbXBUeiBzdGF0X3Jl c2V0X3RpbWVzdGFtcDsKIH0gUGdTdGF0X1N0YXRSZXBsU2xvdEVudHJ5OwogCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlv bi9zbG90LmgKaW5kZXggMmViN2UzYS4uOGQwYmVmNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv cmVwbGljYXRpb24vc2xvdC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaApA QCAtMTY0LDYgKzE2NCwyMCBAQCB0eXBlZGVmIHN0cnVjdCBSZXBsaWNhdGlvblNsb3QKIAlYTG9n UmVjUHRyCWNhbmRpZGF0ZV94bWluX2xzbjsKIAlYTG9nUmVjUHRyCWNhbmRpZGF0ZV9yZXN0YXJ0 X3ZhbGlkOwogCVhMb2dSZWNQdHIJY2FuZGlkYXRlX3Jlc3RhcnRfbHNuOworCisJLyoKKwkgKiBT dGF0aXN0aWNzIGFib3V0IGZhaWxlZCB0cmFuc2FjdGlvbnMuCisJICoKKwkgKiBUaGVzZSBmYWls ZWQgc3RhdGlzdGljcyB3b3JrcyB0byBtYWtlIGEgZGlzdGluY3Rpb24gYmV0d2VlbgorCSAqIHN1 Y2Nlc3NmdWwgYW5kIHVuc3VjY2Vzc2Z1bCB0cmFuc2FjdGlvbnMsIGJ5IHV0aWxpemluZyBvdGhl cgorCSAqIGNvcnJlc3BvbmRpbmcgc3RhdHMgb2YgdHJhbnNhY3Rpb25zIHJlc3BlY3RpdmVseS4K KwkgKi8KKwlpbnQ2NCAgICAgICBmYWlsZWRTcGlsbFR4bnM7CisJaW50NjQgICAgICAgZmFpbGVk U3BpbGxCeXRlczsKKwlpbnQ2NCAgICAgICBmYWlsZWRTdHJlYW1UeG5zOworCWludDY0ICAgICAg IGZhaWxlZFN0cmVhbUJ5dGVzOworCWludDY0ICAgICAgIGZhaWxlZFRvdGFsVHhuczsKKwlpbnQ2 NCAgICAgICBmYWlsZWRUb3RhbEJ5dGVzOwogfSBSZXBsaWNhdGlvblNsb3Q7CiAKICNkZWZpbmUg U2xvdElzUGh5c2ljYWwoc2xvdCkgKChzbG90KS0+ZGF0YS5kYXRhYmFzZSA9PSBJbnZhbGlkT2lk KQpAQCAtMjIzLDUgKzIzNyw2IEBAIGV4dGVybiB2b2lkIFN0YXJ0dXBSZXBsaWNhdGlvblNsb3Rz KHZvaWQpOwogZXh0ZXJuIHZvaWQgQ2hlY2tQb2ludFJlcGxpY2F0aW9uU2xvdHModm9pZCk7CiAK IGV4dGVybiB2b2lkIENoZWNrU2xvdFJlcXVpcmVtZW50cyh2b2lkKTsKK2V4dGVybiB2b2lkIFVw ZGF0ZURlY29kaW5nRmFpbGVkU3RhdHModm9pZCk7CiAKICNlbmRpZgkJCQkJCQkvKiBTTE9UX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggZTVhYjExMi4uNDE3MjRiYiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTIwNTQsMTQgKzIwNTQsMjAgQEAg cGdfc3RhdF9yZXBsaWNhdGlvbl9zbG90c3wgU0VMRUNUIHMuc2xvdF9uYW1lLAogICAgIHMuc3Bp bGxfdHhucywKICAgICBzLnNwaWxsX2NvdW50LAogICAgIHMuc3BpbGxfYnl0ZXMsCisgICAgcy5m YWlsZWRfc3BpbGxfdHhucywKKyAgICBzLmZhaWxlZF9zcGlsbF9ieXRlcywKICAgICBzLnN0cmVh bV90eG5zLAogICAgIHMuc3RyZWFtX2NvdW50LAogICAgIHMuc3RyZWFtX2J5dGVzLAorICAgIHMu ZmFpbGVkX3N0cmVhbV90eG5zLAorICAgIHMuZmFpbGVkX3N0cmVhbV9ieXRlcywKICAgICBzLnRv dGFsX3R4bnMsCiAgICAgcy50b3RhbF9ieXRlcywKKyAgICBzLmZhaWxlZF90b3RhbF90eG5zLAor ICAgIHMuZmFpbGVkX3RvdGFsX2J5dGVzLAogICAgIHMuc3RhdHNfcmVzZXQKICAgIEZST00gcGdf cmVwbGljYXRpb25fc2xvdHMgciwKLSAgICBMQVRFUkFMIHBnX3N0YXRfZ2V0X3JlcGxpY2F0aW9u X3Nsb3QoKHIuc2xvdF9uYW1lKTo6dGV4dCkgcyhzbG90X25hbWUsIHNwaWxsX3R4bnMsIHNwaWxs X2NvdW50LCBzcGlsbF9ieXRlcywgc3RyZWFtX3R4bnMsIHN0cmVhbV9jb3VudCwgc3RyZWFtX2J5 dGVzLCB0b3RhbF90eG5zLCB0b3RhbF9ieXRlcywgc3RhdHNfcmVzZXQpCisgICAgTEFURVJBTCBw Z19zdGF0X2dldF9yZXBsaWNhdGlvbl9zbG90KChyLnNsb3RfbmFtZSk6OnRleHQpIHMoc2xvdF9u YW1lLCBzcGlsbF90eG5zLCBzcGlsbF9jb3VudCwgc3BpbGxfYnl0ZXMsIGZhaWxlZF9zcGlsbF90 eG5zLCBmYWlsZWRfc3BpbGxfYnl0ZXMsIHN0cmVhbV90eG5zLCBzdHJlYW1fY291bnQsIHN0cmVh bV9ieXRlcywgZmFpbGVkX3N0cmVhbV90eG5zLCBmYWlsZWRfc3RyZWFtX2J5dGVzLCB0b3RhbF90 eG5zLCB0b3RhbF9ieXRlcywgZmFpbGVkX3RvdGFsX3R4bnMsIGZhaWxlZF90b3RhbF9ieXRlcywg c3RhdHNfcmVzZXQpCiAgIFdIRVJFIChyLmRhdG9pZCBJUyBOT1QgTlVMTCk7CiBwZ19zdGF0X3Ns cnV8IFNFTEVDVCBzLm5hbWUsCiAgICAgcy5ibGtzX3plcm9lZCwK --_002_OSBPR01MB48887CA8F40C8D984A6DC00CED199OSBPR01MB4888jpnp_--