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 1ox60a-0007F4-KI for pgsql-hackers@arkaria.postgresql.org; Mon, 21 Nov 2022 12:34:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1ox60Z-0007Nx-8l for pgsql-hackers@arkaria.postgresql.org; Mon, 21 Nov 2022 12:34:43 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ox60Y-0007No-TG for pgsql-hackers@lists.postgresql.org; Mon, 21 Nov 2022 12:34:42 +0000 Received: from esa16.fujitsucc.c3s2.iphmx.com ([216.71.158.33]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ox60W-0004hY-WF for pgsql-hackers@lists.postgresql.org; Mon, 21 Nov 2022 12:34:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1669034082; x=1700570082; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=PQJ/fp8zcDRSmQ3TuLEnb92bz8LxOy5jyOk21P+e90k=; b=PAs2E9OIYnPE6xGej8OL0EuWEMdljKNpOP8NL8W+fV1z+50VV04P8nlD gA2W/I1kVh5L6PuPoAB3FGwGCqEzwQOSPA4leOns56lajIFJ2g0zlO6wm PazXTBnTn6h+d4My8AJCzY/j4a77fNUawnHZABIfSqNEOMjjkopRId95A mMyOajcTJd4aMHV0mXvzrZtHr849F0oQamRkL8BNjB8DV1MkG8T4YRmO5 89exV7gg36THBAw+xkXgtUAKepUlV5Khs0z57scgMpCtZ4H0Q3p0BrKD6 PUu3ZEzvmxTrf6Fxz0OqSq8oDTGQK3nuPe3dN93YEHieNFTUXvsu92bvr w==; X-IronPort-AV: E=McAfee;i="6500,9779,10537"; a="70438627" X-IronPort-AV: E=Sophos;i="5.96,181,1665414000"; d="scan'208";a="70438627" Received: from mail-os0jpn01lp2107.outbound.protection.outlook.com (HELO JPN01-OS0-obe.outbound.protection.outlook.com) ([104.47.23.107]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Nov 2022 21:34:39 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XpWhD7vpMUblXo0uRqTWUzkhWwRQIx4tYN/Lss8XE4FmMR/l8yHe6s4RpMuRGvnQbGEkR/EjIrubJJPUDF7gHcBxC+n0vMh8fxDQQv+or9P14BKMmN6fmeB0JyRfLqTabxRJ5+fr//E4+u/LcZCYRMIaJ6qobcxcn1IfyuWcEKyq7JJZ77ZWt9xVHBsiIqM5YHBKgcC2wzKFBhP1nQKcRQelzP3x6WvlwjSqlAz12OS2AxR0v39R90ZfnCtcRouixdZTUWiKDJKm+9qepm7kHB0bBjG5waTkBkfPQP8vrFmCIx63e1K8Zm3No7zIiThW3W0y5J4cfgJpDfvEXu1eqg== 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=PQJ/fp8zcDRSmQ3TuLEnb92bz8LxOy5jyOk21P+e90k=; b=gjT9coZD0mRJaQwqUJXYfej1ySRc/BtGRjMa8SHOWcdxH3rugk01UlMbng+M+r/gGfERbBciDrvlLAIkueEnbapGZvaltgDoFxaec2NFFPSbt6x/qgepzdeeOMLv/LbvRBG6N3cTOZxmtXh+9MC/J4TrpI6KhqQx553hFXFXRITW3GEsJP2t4KS+PyX9WCQCMhv5UUENUolXM+JT0YN0ibYCmMMIeu7Yz2KVklpKYKraELDo0mdWQuXrO3oeOfK57UWWaZyv66nBA9vmaWi02BglbOf6n9FOFCEzUGgUhwIgFXflZka7xCbAu1Nf+Py3fHD8OotBDYFbbX0uB9p5Qg== 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 Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com (2603:1096:604:bb::12) by OS3PR01MB10186.jpnprd01.prod.outlook.com (2603:1096:604:1e3::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.15; Mon, 21 Nov 2022 12:34:36 +0000 Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::89a3:459e:492:7bcc]) by OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::89a3:459e:492:7bcc%9]) with mapi id 15.20.5834.015; Mon, 21 Nov 2022 12:34:36 +0000 From: "houzj.fnst@fujitsu.com" To: Masahiko Sawada CC: Amit Kapila , "wangw.fnst@fujitsu.com" , Peter Smith , Dilip Kumar , "shiy.fnst@fujitsu.com" , PostgreSQL Hackers Subject: RE: Perform streaming logical transactions by background workers and parallel apply Thread-Topic: Perform streaming logical transactions by background workers and parallel apply Thread-Index: AQHYSXX5ZKpBKXxeUU2FhEhnmXQum6zlu9SQgAkSooCACBQ0gIABsTcwgAA1vECAAqHFgIAE/jVwgAXct9CAADkRgIALO/aAgAsRZICAB606AIAS+CyAgAAufICAAWQLgIABHxKAgAA3o4CAAeE3gIAJPr0AgAkxzACAAiJoAIAC0hUAgARvDICABQA2gIAAFvcAgAeBmICABO9ggIAJO+YAgABu1YCACQzpAIAJSy6AgAS+zICABq7mgIABSJUAgAAOtoCAACghoIAB8TqAgAqL+oCADJWRgIAGVm0AgAGAQICAAerMgIABYRWAgAgnZ+CAAXRdgIAGBUSQgAGFeoCAAFYagIABb5aggAGsWiCAATu3gIAEyyEAgABeLHCABFBngIAK5WIAgABrY4CABb89gIADiS0AgAEu2oCAAHBpgIADPWcAgAS/1gCADeB2AIAAPUnQgAEERACAABzggIAF+30AgAHyDYCAEzpGgIANkEmAgAI7xKCABhztAIAFv4zggABYqoCAABRMQIABvKAAgAS+5UCAA/8RAIAFZh7A Date: Mon, 21 Nov 2022 12:34:35 +0000 Message-ID: References: In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: =?utf-8?B?TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2Uw?= =?utf-8?B?NTBfQWN0aW9uSWQ9ZTI0YTAxM2YtMzBmOS00ZTk0LTg5NTgtZThkMWRlYmU4?= =?utf-8?B?YzhhO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX0NvbnRlbnRCaXRzPTA7TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5?= =?utf-8?B?LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfRW5hYmxlZD10cnVlO01TSVBfTGFi?= =?utf-8?B?ZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX01ldGhv?= =?utf-8?B?ZD1TdGFuZGFyZDtNU0lQX0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRk?= =?utf-8?B?LTNiMGY0ZmVjZTA1MF9OYW1lPUZVSklUU1UtUkVTVFJJQ1RFRO+/ou++gA==?= =?utf-8?B?776LO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX1NldERhdGU9MjAyMi0xMS0yMVQxMTowMjozMVo7TVNJUF9MYWJl?= =?utf-8?B?bF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfU2l0ZUlk?= =?utf-8?Q?=3Da19f121d-81e1-4858-a9d8-736e267fd4c7;?= authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: OS0PR01MB5716:EE_|OS3PR01MB10186:EE_ x-ms-office365-filtering-correlation-id: 54507472-2997-4c8d-4bc6-08dacbbcbfed x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: bSe+337cc9J4f5QBQsrmYAvJIewgrbqwDqAtDdSWiS1VFZF3rJjqLtH04PpBz66GG7Gux4U3OwATp77rAdJGc/0mz82iOAHPx9Ka73KtKduJPXvDwWF9jBunpNREXsoNvh0dxvhwnJVRp+90U8sf+L3uePUhyNtKEo7LOgtSdS9g7XZmj17Ejcw6hmeS9soUdkP+Nt7HhfTuL7/p2Ag0yvVhxRn78FuKhFil5crs1fR/CZSt2I5Hu0+if2PO/+Ctk9eNdJCRNSJ+yn+tvr14w4mScN36LX+7eK1c2c9s3uhjRJwORcFQSPJfWyAQMl1+BnRa4u+niHwaIkUWKkdf8hI1qup2OzYrCxf8+B3arQiNK+kiUmWV64rNFVQHUEiRMbgyGpTFW6PMUx90y4bfjy0NqQQSuMFBQmQjxZFmAFEwE/qWdlvjqjK/ZrnNEPdb/NigjrH5cW9p7w5cpKvFoHtUuu8jOYhjrNi79qvwMNRNQaoH2Ui9w41cJre3cMcW6yE/yvCugr00DYAeefMOeILqb5z1x0KkG5S38tgZ0qoEWYQwLYW0niymTBZi37OrBwPF/uy5BV8olqW58c81CdhjGND4Qidx14lIQfhfJB7yfqcZDF4U9M/xZ+C0mX+G5YXSpStZsqmlpuN9rNDVv6ksAqYqwCuszf14MSRExAv/H6RHfVhFtYdVRnkQzqDlGcz4QBZq85yhDFJyQPCIiQ51Wo+iKWCbtOVZdih/eSU= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS0PR01MB5716.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(366004)(136003)(346002)(376002)(396003)(1590799012)(451199015)(1580799009)(85182001)(33656002)(86362001)(55016003)(41300700001)(38070700005)(66946007)(66556008)(76116006)(122000001)(316002)(64756008)(66446008)(66476007)(8676002)(4326008)(82960400001)(38100700002)(83380400001)(478600001)(71200400001)(54906003)(6916009)(5660300002)(52536014)(8936002)(4001150100001)(2906002)(186003)(26005)(53546011)(6506007)(7696005)(9686003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Rm1FR0gvNFBoUnlEVmNFUzZHbi8wbnErdm82aEowVGFmMUliVWs1ZHY5TGw2?= =?utf-8?B?YnVMa3FVSGd2cEVnL0FzeUlRR2tGUDh5bjVRb0FUUEhiczlKTEw3cTlPczMy?= =?utf-8?B?a1hIYS93OWdHeHVzSWYzcUMvblpvK3YrdU1CUDRINThLYXJMRkZBckIybmVQ?= =?utf-8?B?dXhnMFZOTWlzU25waEZHdVdxb3Bjc3ZkcXg2cDlIb2dFQ0QyV2VDdTd2MnRY?= =?utf-8?B?TWJaUzRTa0p3ZmNUdXBGWVBPNEsxaitQSWpGclB1YWRmanRWVFdXTjNVaTBV?= =?utf-8?B?dGdyVVlEZEgxSjN5a245ci9lY244ZUJHZkI1akNnVUVUcnlGVG1pVkdCTngz?= =?utf-8?B?alYxQkVnQU5sNkJ6RzA2Y1krVzZmWEZCM1Fwd1o3TzhRNFFqdDdQRFNudmZH?= =?utf-8?B?WE5PSnN2SWF0TGlsVlZLcHdNdG1RSjltZXNnOXFQQUFQWmZQdlp5S2dwb29G?= =?utf-8?B?dTFPSEZ1MWFJYlAwMVNXSzJQSW5BOEZCdnhIQ0pGcG1PRk9BcWJ2Zk1RTG9q?= =?utf-8?B?QzJNVHFZRjZ5L1VLUUxMeFQ4STJPcDhCdGE3UjAvcXVsRG9GdHRGemhTQmVZ?= =?utf-8?B?bS9OOXRXMnVBZnVvZGRKN1krZ0krWDNvTDRVTEJIVFZHMS95MFBQR0t1N3pV?= =?utf-8?B?ZTJHbElGb3RHUncvdnd5RUw0dHlMUk5XYk5kd1FEN0NCdjRERk1uQ2NWYlNM?= =?utf-8?B?VFowUEVNY0NOejExcDJzWEh1WGNYbW1ESHV1eHJzZE1ZNlBHMjlmT0doSGRs?= =?utf-8?B?eDNlemd5Vlk2cjVub3Rna2VBTm5PY0dpZUFiRGFkMXJKLzFKL2Zpek02WUVk?= =?utf-8?B?aS9EUTVJaUlFY1NES2dndXY4aEdSS3JqMFd4WC95UFAzQjFxQUYxWU1idEFt?= =?utf-8?B?d1R0QjYyejB2K0Rxc05aeWlSYmtCU3hTYkJvWmlHS1pVYmdPRDhaK3IyRk9U?= =?utf-8?B?VzRORjNGUjNHdUFzRTFEQmJuNEtYY0NlZWloOEtCeUk3T3R2Q3k0WlI0d3hK?= =?utf-8?B?NG10TXIxTEFrbUppR0ZEaEFzMVpqeU9sTjFsYkxFNTRUZVltRHk4cG5YQWN5?= =?utf-8?B?eitiNlVHdVkwNGZpNDNxREhNVzUzZDVaYXFjd1NLNllpVm5Ja3A2elR5WmRh?= =?utf-8?B?MkVDQjRjdHloMm9vUzdyVWZFOEU3SitNZGF4MitZU3liaGNpVlg1NHpjd2lp?= =?utf-8?B?T01CYUJuNGRPNjQ4dnkrQTRxOUtCQjBxSTZ4SE9pVDBMZXE0MmFJQ1l6N2J5?= =?utf-8?B?bXRSZm5KZmllUDRYZkowU3lOUkhhTmRYVGoyOU1rb3ZyMHY2NDBMSVVtajNM?= =?utf-8?B?RVJGMVhmOFNERjVtQjNVTlJ4emxBd1BsMGU3K0t0SnZXV1hQZkZaUS9QVzN6?= =?utf-8?B?WkthbzdCSW9jVGpsYUZYNmZ4UC8vdFZPVFBveG5mSWhCTThzeXVpQk95S0RB?= =?utf-8?B?OG1iRHlJdlJEaWhHUWZTeDkxK0V0dHBwZnRnTFltaGJkT0VURlhialJJQWxV?= =?utf-8?B?cFk5NmM3RHNUVmQrNFoyMS91eWx3TVZRL0V0dHdNeDlLVFNYNEFFYzhJVmtH?= =?utf-8?B?MzRGeXBqRWtpY1ZuS0tFZ3RWYzIyUjlKeGd4YS85eS9yVVFoSlN4dEZqdWF0?= =?utf-8?B?TmpBbnZjSVY5eGx6eFhPKzdyVTJZTGpBdFhlRDljZ3cxSStVaUVaTnFKM1p4?= =?utf-8?B?Um1qelFkWGFwTVhWNVlzSGtXckVPSEtoK3BDUEV4bEJUcEJxeC9MZFNBbmd5?= =?utf-8?B?bVZGbVFJaFp0cGduV1JPMEJBbFZjWlEwaG8yb3I1OFh5aHJ3VUVYMHI2Y2Yw?= =?utf-8?B?TVRvOE1NN1Z2QmhXczhZTjVWTVhLZXFmSDFmbnJmVkc4bnhwQldqNEZTMkNu?= =?utf-8?B?VFc0RDh5THkycTZwL2thM2lNczhhd0dWbjl6ajg0NXl5Skd3Yk9PQnAyZXR1?= =?utf-8?B?ZjkyZHk5Uk9ZQ0hoeWJyRm1jemh3U0pLa2ZkOUd2SUs1ZjRLSzE5WWRRY2U5?= =?utf-8?B?bm5lUHg2YVdqczdEbjVNYXJ5VE9oaXhlMUNQV1dndnAyVzY2WC9EVmYySVN1?= =?utf-8?B?V1ltNHAwbjQvalJ2QmFuQUgzcmdtcE5NWmVZUkkyRjlIc2prdWp0SXBMZ21z?= =?utf-8?Q?+c597Y3RyVnDVOYvgbkMxY39b?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: PEWQ3fOlaiYGP+0FaySArJUhxf2bRRhTRPBYza5nXerzCjZVroNxmxeaLW3x+8Ql6hr5boEWubNw4aFeNTAQbZOtuXbgTRukB78j0oomuzBIAoSJH8IM+tddF/I+TRLVSypCkgqwrpmUgfe9GKFnHH9630wx5nfKcAA3AP1GASApmXCVEswro3z9NNZE3ZRUkbary6umQ+pyT1yg2quGwZ6LY10J/WJcpZCMFcpzH7DUk9zIHm8l1441fr1NaTNy/2HMb3edm0S0UiheF9T9psEdKNIq3likBj74zZ+N+JeNPMyE4xtQwnGZOvVm07LpHuhLmbwj5naVgwiAZKg3yTzNXRCvnSeM+iZUCiMTwunpp9ItsbEaqqYf+hhp0wBqRD7wo31KD5+ZPXImTz1Um7Iy9cJpgmLOIv/JhC0mf+MYIMw5HUsCN8Jvr9v7zorAhAeeJ7IXiLEPeAKZoMkfqka7pq9zSB7APWCrr4046Od1bncxUrH5A+W5VMWqrMNL/IXXStH/9Qz+mXWhIZ1A+QWjJnauazDCWJ3vdS+MeERMD0LToCx8JgQT3NQVp4soma6Od9AwgCXx1mAIQYFCd07IaGTKbco014VnnQ8eMHxvlypk0MUKrFj9mZNVSEs0/w+qXGd1bQSmrNROA6gcjB68rixLMX0DoMSTp+X5oWtQafAxlmzrxjkAU0RCRmD6t0C+LRcL5MdXUo7hiAwWsuIQzmAzvaycJ1IXB8SktHWPxdm/fWQbi2+F0dcbq51Fg1C6wIFYj2SbUB/junw/CJBIWzxj9S+iwhpEjrNKFilJdbQKJR5uRx0QvbNn0KrqPpZudworAC3qAlXZbumWRUmOEt2NMubWglA1Ko5wH78QAMPh2Iatz4+vxNk7HlZI1NAImY0CHmtsEJ7znHkXZA== X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OS0PR01MB5716.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 54507472-2997-4c8d-4bc6-08dacbbcbfed X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Nov 2022 12:34:36.0167 (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: bhhNfjKkWGH7QqX7dmiM9kjGjYRTgkeZg8T+YJYZVS2QKwNUegoeDZRG5rhi6dexY5Yca42OfdhIBjQY5zde/A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB10186 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk T24gRnJpZGF5LCBOb3ZlbWJlciAxOCwgMjAyMiA4OjM2IEFNIE1hc2FoaWtvIFNhd2FkYSA8c2F3 YWRhLm1zaGtAZ21haWwuY29tPiB3cm90ZToNCj4gDQo+IEhlcmUgYXJlIHJldmlldyBjb21tZW50 cyBvbiB2NDctMDAwMSBhbmQgdjQ3LTAwMDIgcGF0Y2hlczoNCg0KVGhhbmtzIGZvciB0aGUgY29t bWVudHMhDQoNCj4gV2hlbiB0aGUgcGFyYWxsZWwgYXBwbHkgd29ya2VyIGV4aXRlZCwgSSBnb3Qg dGhlIGZvbGxvd2luZyBzZXJ2ZXIgbG9nLg0KPiBJIHRoaW5rIHRoaXMgbG9nIGlzIG5vdCBhcHBy b3ByaWF0ZSBzaW5jZSB0aGUgd29ya2VyIHdhcyBub3QgdGVybWluYXRlZCBieQ0KPiBhZG1pbmlz dHJhdG9yIGNvbW1hbmQgYnV0IGV4aXRlZCBieSBpdHNlbGYuIEFsc28sIHByb2JhYmx5IGl0IHNo b3VsZCBleGl0IHdpdGgNCj4gZXhpdCBjb2RlIDA/DQo+IA0KPiBGQVRBTDogIHRlcm1pbmF0aW5n IGxvZ2ljYWwgcmVwbGljYXRpb24gd29ya2VyIGR1ZSB0byBhZG1pbmlzdHJhdG9yIGNvbW1hbmQN Cj4gTE9HOiAgYmFja2dyb3VuZCB3b3JrZXIgImxvZ2ljYWwgcmVwbGljYXRpb24gcGFyYWxsZWwg d29ya2VyIiAoUElEDQo+IDM1OTQ5MTgpIGV4aXRlZCB3aXRoIGV4aXQgY29kZSAxDQoNCkNoYW5n ZWQgdG8gcmVwb3J0IGEgTE9HIGFuZCBleGl0ZWQgd2l0aCBjb2RlIDAuDQoNCj4gLS0tDQo+IC8q DQo+ICAqIFN0b3AgdGhlIHdvcmtlciBpZiB0aGVyZSBhcmUgZW5vdWdoIHdvcmtlcnMgaW4gdGhl IHBvb2wgb3IgdGhlIGxlYWRlcg0KPiAgKiBhcHBseSB3b3JrZXIgc2VyaWFsaXplZCBwYXJ0IG9m IHRoZSB0cmFuc2FjdGlvbiBkYXRhIHRvIGEgZmlsZSBkdWUgdG8NCj4gICogc2VuZCB0aW1lb3V0 Lg0KPiAgKi8NCj4gaWYgKHdpbmZvLT5zZXJpYWxpemVfY2hhbmdlcyB8fA0KPiBuYXBwbHl3b3Jr ZXJzID4gKG1heF9wYXJhbGxlbF9hcHBseV93b3JrZXJzX3Blcl9zdWJzY3JpcHRpb24gLyAyKSkN Cj4gDQo+IFdoeSBkbyB3ZSBuZWVkIHRvIHN0b3AgdGhlIHdvcmtlciBpZiB0aGUgbGVhZGVyIHNl cmlhbGl6ZXMgY2hhbmdlcz8NCg0KQmVjYXVzZSB0aGVyZSBtaWdodCBiZSBwYXJ0aWFsIHNlbnQg bWVzc2FnZSBsZWZ0IGluIG1lbW9yeSBxdWV1ZSBpZiBzZW5kIHRpbWVvdXQuDQpBbmQgd2UgbmVl ZCB0byBlaXRoZXIgcmUtc2VuZCB0aGUgc2FtZSBtZXNzYWdlIHVudGlsIHN1Y2Nlc3Mgb3IgZGV0 YWNoIGZyb20gdGhlIG1lbW9yeQ0KcXVldWUuIFRvIG1ha2UgdGhlIGxvZ2ljIHNpbXBsZSwgdGhl IHBhdGNoIGRpcmVjdGx5IHN0b3AgdGhlIHdvcmtlciBpbiB0aGlzIGNhc2UuDQoNCg0KPiAtLS0N Cj4gKyAgICAgICAgLyoNCj4gKyAgICAgICAgICogUmVsZWFzZSBhbGwgc2Vzc2lvbiBsZXZlbCBs b2NrcyB0aGF0IGNvdWxkIGJlIGhlbGQgaW4gcGFyYWxsZWwgYXBwbHkNCj4gKyAgICAgICAgICog bW9kZS4NCj4gKyAgICAgICAgICovDQo+ICsgICAgICAgIExvY2tSZWxlYXNlQWxsKERFRkFVTFRf TE9DS01FVEhPRCwgdHJ1ZSk7DQo+ICsNCj4gDQo+IEkgdGhpbmsgd2UgY2FsbCBMb2NrUmVsZWFz ZUFsbCgpIGF0IHRoZSBwcm9jZXNzIGV4aXQgKGluIFByb2NLaWxsKCkpLCBidXQgZG8gd2UNCj4g cmVhbGx5IG5lZWQgdG8gZG8gTG9ja1JlbGVhc2VBbGwoKSBoZXJlIHRvbz8NCg0KSWYgd2UgZG9u J3QgcmVsZWFzZSBsb2NrcyBiZWZvcmUgUHJvY0tpbGwsIHdlIG1pZ2h0IGJyZWFrIGFuIEFzc2Vy dCBjaGVjayBhdA0KdGhlIGJlZ2lubmluZyBvZiBQcm9jS2lsbCB3aGljaCBpcyB1c2VkIHRvIGVu c3VyZSBhbGwgdGhlIGxvY2tzIGFyZSByZWxlYXNlZC4NCkFuZCBJdCBzZWVtcyBQcm9jS2lsbCBk b2Vzbid0IHJlbGVhc2Ugc2Vzc2lvbiBsZXZlbCBsb2NrcyBhZnRlciB0aGUgYXNzZXJ0DQpjaGVj ay4gU28gSSB0aGluayB3ZSdkIGJldHRlciByZWxlYXNlIHRoZW0gaGVyZS4NCg0KPiAtLS0NCj4g DQo+ICsgICAgICAgICAgICAgICAgZWxvZyhFUlJPUiwgImNvdWxkIG5vdCBmaW5kIHJlcGxpY2F0 aW9uIHN0YXRlIHNsb3QNCj4gZm9yIHJlcGxpY2F0aW9uIg0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICJvcmlnaW4gd2l0aCBPSUQgJXUgd2hpY2ggd2FzIGFjcXVpcmVkIGJ5DQo+ICVkIiwg bm9kZSwgYWNxdWlyZWRfYnkpOw0KPiANCj4gTGV0J3Mgbm90IGJyZWFrIHRoZSBlcnJvciBsb2cg bWVzc2FnZSBpbiB0aGUgbWlkZGxlIHNvIHRoYXQgdGhlIHVzZXIgY2FuIHNlYXJjaA0KPiB0aGUg bWVzc2FnZSBieSBncmVwIGVhc2lseS4NCg0KQ2hhbmdlZC4NCg0KPiAtLS0NCj4gKyAgICAgICAg ew0KPiArICAgICAgICAgICAgICAgIHsibWF4X3BhcmFsbGVsX2FwcGx5X3dvcmtlcnNfcGVyX3N1 YnNjcmlwdGlvbiIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBQR0NfU0lHSFVQLA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgUkVQTElDQVRJT05fU1VCU0NSSUJFUlMsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBnZXR0ZXh0X25vb3AoIk1heGltdW0gbnVtYmVyIG9mIHBhcmFs bGVsDQo+IGFwcGx5IHdvcmtlcnMgcGVyIHN1YnNjcmlwdGlvbi4iKSwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsDQo+ICsgICAgICAgICAgICAgICAgfSwNCj4gKyAgICAgICAgICAg ICAgICAmbWF4X3BhcmFsbGVsX2FwcGx5X3dvcmtlcnNfcGVyX3N1YnNjcmlwdGlvbiwNCj4gKyAg ICAgICAgICAgICAgICAyLCAwLCBNQVhfQkFDS0VORFMsDQo+ICsgICAgICAgICAgICAgICAgTlVM TCwgTlVMTCwgTlVMTA0KPiArICAgICAgICB9LA0KPiArDQo+IA0KPiBJIHRoaW5rIHdlIHNob3Vs ZCB1c2UgTUFYX1BBUkFMTEVMX1dPUktFUl9MSU1JVCBhcyB0aGUgbWF4IHZhbHVlIGluc3RlYWQu DQo+IE1BWF9CQUNLRU5EUyBpcyB0b28gaGlnaC4NCg0KQ2hhbmdlZC4NCg0KPiAtLS0NCj4gKyAg ICAgICAgLyoNCj4gKyAgICAgICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlcmUgYXJlIHBlbmRp bmcgbWVzc2FnZXMgaW4gdGhlIHF1ZXVlLg0KPiBUaGUgcGFyYWxsZWwNCj4gKyAgICAgICAgICog YXBwbHkgd29ya2VyIHdpbGwgY2hlY2sgaXQgYmVmb3JlIHN0YXJ0aW5nIHRvIHdhaXQuDQo+ICsg ICAgICAgICAqLw0KPiArICAgICAgICBwZ19hdG9taWNfdWludDMyICAgICAgIHBlbmRpbmdfbWVz c2FnZV9jb3VudDsNCj4gDQo+IFRoZSAicGVuZGluZyBtZXNzYWdlcyIgc291bmRzIGxpa2UgaW5k aXZpZHVhbCBsb2dpY2FsIHJlcGxpY2F0aW9uIG1lc3NhZ2VzDQo+IHN1Y2ggYXMgTE9HSUNBTF9S RVBfTVNHX0lOU0VSVC4gQnV0IElJVUMgd2hhdCB0aGlzIHZhbHVlIGFjdHVhbGx5IHNob3dzIGlz DQo+IGhvdyBtYW55IHN0cmVhbWVkIGNodW5rcyBhcmUgcGVuZGluZyB0byBwcm9jZXNzLCByaWdo dD8NCg0KWWVzLCByZW5hbWVkIHRoaXMuDQoNCj4gLS0tDQo+IFdoZW4gdGhlIHBhcmFsbGVsIGFw cGx5IHdvcmtlciByYWlzZXMgYW4gZXJyb3IsIEkgZ290IHRoZSBzYW1lIGVycm9yIHR3aWNlIGZy b20NCj4gdGhlIGxlYWRlciB3b3JrZXIgYW5kIHBhcmFsbGVsIHdvcmtlciBhcyBmb2xsb3dzLiBD YW4gd2Ugc3VwcHJlc3MgZWl0aGVyIG9uZT8NCj4gDQo+IDIwMjItMTEtMTcgMTc6MzA6MjMuNDkw IEpTVCBbMzgxNDU1Ml0gTE9HOiAgbG9naWNhbCByZXBsaWNhdGlvbiBwYXJhbGxlbCBhcHBseQ0K PiB3b3JrZXIgZm9yIHN1YnNjcmlwdGlvbiAidGVzdF9zdWIxIiBoYXMgc3RhcnRlZA0KPiAyMDIy LTExLTE3IDE3OjMwOjIzLjQ5MCBKU1QgWzM4MTQ1NTJdIEVSUk9SOiAgZHVwbGljYXRlIGtleSB2 YWx1ZSB2aW9sYXRlcw0KPiB1bmlxdWUgY29uc3RyYWludCAidGVzdDFfY19pZHgiDQo+IDIwMjIt MTEtMTcgMTc6MzA6MjMuNDkwIEpTVCBbMzgxNDU1Ml0gREVUQUlMOiAgS2V5IChjKT0oMSkgYWxy ZWFkeSBleGlzdHMuDQo+IDIwMjItMTEtMTcgMTc6MzA6MjMuNDkwIEpTVCBbMzgxNDU1Ml0gQ09O VEVYVDogIHByb2Nlc3NpbmcgcmVtb3RlIGRhdGEgZm9yDQo+IHJlcGxpY2F0aW9uIG9yaWdpbiAi cGdfMTYzOTAiIGR1cmluZyBtZXNzYWdlIHR5cGUgIklOU0VSVCIgZm9yIHJlcGxpY2F0aW9uDQo+ IHRhcmdldCByZWxhdGlvIG4gInB1YmxpYy50ZXN0MSIgaW4gdHJhbnNhY3Rpb24gNzMxDQo+IDIw MjItMTEtMTcgMTc6MzA6MjMuNDkwIEpTVCBbMzgxNDU1MF0gRVJST1I6ICBkdXBsaWNhdGUga2V5 IHZhbHVlIHZpb2xhdGVzDQo+IHVuaXF1ZSBjb25zdHJhaW50ICJ0ZXN0MV9jX2lkeCINCj4gMjAy Mi0xMS0xNyAxNzozMDoyMy40OTAgSlNUIFszODE0NTUwXSBERVRBSUw6ICBLZXkgKGMpPSgxKSBh bHJlYWR5IGV4aXN0cy4NCj4gMjAyMi0xMS0xNyAxNzozMDoyMy40OTAgSlNUIFszODE0NTUwXSBD T05URVhUOiAgcHJvY2Vzc2luZyByZW1vdGUgZGF0YSBmb3INCj4gcmVwbGljYXRpb24gb3JpZ2lu ICJwZ18xNjM5MCIgZHVyaW5nIG1lc3NhZ2UgdHlwZSAiSU5TRVJUIiBmb3IgcmVwbGljYXRpb24N Cj4gdGFyZ2V0IHJlbGF0aW8gbiAicHVibGljLnRlc3QxIiBpbiB0cmFuc2FjdGlvbiA3MzENCj4g ICAgICAgICBwYXJhbGxlbCBhcHBseSB3b3JrZXINCg0KSXQgc2VlbXMgc2ltaWxhciB0byB0aGUg YmVoYXZpb3Igb2YgcGFyYWxsZWwgcXVlcnkgd2hpY2ggd2lsbCByZXBvcnQgdGhlIHNhbWUNCmVy cm9yIHR3aWNlLiBCdXQgSSBhZ3JlZSBpdCBtaWdodCBiZSBiZXR0ZXIgZm9yIHRoZSBsZWFkZXIg dG8gcmVwb3J0IHNvbWV0aGluZw0KZGlmZmVyZW50LiBTbywgSSBjaGFuZ2VkIHRoZSBlcnJvciBt ZXNzYWdlIHJlcG9ydGVkIGJ5IGxlYWRlciBpbiB0aGUgbmV3DQp2ZXJzaW9uIHBhdGNoLg0KDQpC ZXN0IHJlZ2FyZHMsDQpIb3UgemoNCg==