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 1p1n1f-0002jv-Hw for pgsql-hackers@arkaria.postgresql.org; Sun, 04 Dec 2022 11:19:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1p1n0g-0001fd-GJ for pgsql-hackers@arkaria.postgresql.org; Sun, 04 Dec 2022 11:18:14 +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 1p1n0f-0001cd-VA for pgsql-hackers@lists.postgresql.org; Sun, 04 Dec 2022 11:18:14 +0000 Received: from esa8.fujitsucc.c3s2.iphmx.com ([68.232.159.88]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p1n0b-0005KZ-T3 for pgsql-hackers@lists.postgresql.org; Sun, 04 Dec 2022 11:18:12 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1670152689; x=1701688689; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=btClAYrKs2bedf05XPmfUQEiOBMHPnw7p4vg2Osjd1Y=; b=uBpLx0kUGj4z1Udan1MMoMEhMlsD4e9nrQk/rV6/SV51O4DPUQyJ3o3X uM+jG7dhEuAMXjlOgfrd3APKLcrjf6xg8L0XLZSI59O7EeOBrnXkczJse 5sojC7rlauzaJ9edm6nod0C0cs+AAotqs/IyI/Jre5N7ys/S4/vv60MYL aC4Nn69XQZOzqGTkwbAp40oSV4PY317ZlJgo5OcRgy+Z9xdbrmKZNwdMx HyaL1gR6AcwLuAVniobsJ/e6DeW/Bq/LvCaHcwGzneIr/OlLnuGZTEaxZ RTAP0j1PL6Y66ulYVAgX/TcLfvIrmFrxfkxSK53IQHE4Bnjww2B7gOCdD A==; X-IronPort-AV: E=McAfee;i="6500,9779,10550"; a="71544168" X-IronPort-AV: E=Sophos;i="5.96,217,1665414000"; d="scan'208";a="71544168" Received: from mail-tycjpn01lp2168.outbound.protection.outlook.com (HELO JPN01-TYC-obe.outbound.protection.outlook.com) ([104.47.23.168]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Dec 2022 20:18:05 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MSX6Fjtrj+kMGvJUdh/zCbGWONVXxh1wy+41P40LYoGr0GUOfS3GRHSJeqjw6YLnjK6vpmsINdQ3UFV0+plBiPvAruEXe3uOiuYOxFSSIR2PVE2m1h+2ZutYIxkyVHKAVDADqtsUZRS3wMptW+oQdXuL01+AT0DrvXa8aCbuuhsx88f0Kvp1TVn1ZTDqZmjksCZNVaSA+gD9DKk968V0dLBj3dJqjsSPCfG9/oQHeSuvUfW3U6rjcNp7l8j/TdIZsKRIWDuPJmHmhBjakSGp/bYlLziiX0waTFwifcPtILNxyxH9T9hnGn3b7l3zva3FKl2ugygCuFQmoKwKmx1R8A== 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=btClAYrKs2bedf05XPmfUQEiOBMHPnw7p4vg2Osjd1Y=; b=WY1/YU0ag11HsTXD8VVGxxMAb3Vx1BR6Int6BqbpQZVNNUQcSoAuv05sDJM9inue0GJgTVmCPbLO5hKh6G/Y5F0vrEuYaluHTGbOLPQ2GtcpSjQ5BKY0YnCa8887rj1JG+EAa+U4pPEqj/5l5oNlW+iABIKcWZ/TsOmLf0mC6YcIJvbClBBuoyHeAMYv/VqdCHpV6OvqULGGoWsY8xXJGuQrUeNtuKxqi4VdYLcZTOHYYDRQbWArklbejcLn4hx0RlCHXFf9Cju+GW1evETxvVQ52JL6dw1Tq0QsXR8CbxVzwHdusDXG1SlWnyxQuFmExOVj9Rho91l1vk/AwY9k4w== 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 TYCPR01MB9846.jpnprd01.prod.outlook.com (2603:1096:400:20d::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.13; Sun, 4 Dec 2022 11:18:02 +0000 Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::6bd0:acc4:7596:b8b1]) by OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::6bd0:acc4:7596:b8b1%7]) with mapi id 15.20.5880.013; Sun, 4 Dec 2022 11:18:02 +0000 From: "houzj.fnst@fujitsu.com" To: "Hayato Kuroda (Fujitsu)" CC: Masahiko Sawada , "wangw.fnst@fujitsu.com" , Peter Smith , Dilip Kumar , "shiy.fnst@fujitsu.com" , PostgreSQL Hackers , Amit Kapila 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+5UCAAVlmEIACxK+AgAIepYCAAy1b4IAA8x6ggAJYuYCABaCt0IACJjmAgAED94CAAJCTgIABnwzggAAHSKCAAv4RgIADHQ6Q Date: Sun, 4 Dec 2022 11:18:02 +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?NTBfQWN0aW9uSWQ9NjEwMGZlZTAtN2I3ZC00NjM3LThmZDItYzczMzc1MjRh?= =?utf-8?B?ZThjO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?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?ZWNlMDUwX1NldERhdGU9MjAyMi0xMS0zMFQxMzoxOToyM1o7TVNJUF9MYWJl?= =?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_|TYCPR01MB9846:EE_ x-ms-office365-filtering-correlation-id: 4315a31b-adce-4544-84ec-08dad5e93551 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +bkSZhubRHGhQFu1DQP3lehcWE6Mt5hnQx4Fe5ZSpcVpGT4ei0H4Fl8paxIwN2SZHmTzJTEGks67/5DOU/XArVJu/oNoARSLml2wQKIJGiDFpbYE8ks82PL1dF/MbLGsFqcq1ata/ImRmHag5J+2Q2FK9dihauh0H71vDTjpfMy3WtvTTkKiReItEOScVzl99+J7jdJ6qDI4Vs+mP15oK1++nHctYpNmb6MguxsumqjGZhH3jVvBxoQArh/FSFTxRwasYUXPdddQa6Tm7iSpw1/eFlCumtirW37/DkHbKIXr4usZWXddnPqT9aGPRpZW9S/U6hqzFpiD6lIx92ffKxD0bDLhuh2kzpjPh6t+k005ZXMO+Jw+gzowQkS7ioaJJG7ohad9bYbN3tGeGIri6Xl7qb367XH+zwIF7mSoVvLlW5TpA+m2hTkejhQXMTIqpmhJ5WdYbwlpiq/p0ElnUdHfjWk/JW2q026Hz1XNIWQIgTbb/41/L8pXFNoJHz0cIz2HCuIGkv+UGn44hUvB5gsVqfVmiAnUBXqkCP6lnLXQuqHiEstX1/TsYDXeTM57gvDLepTTe4XlNkNff5rcTSYJWZ8grYyGx9yzd2K4xqL/jWIaivNGGek8ZuST9ZMXpGPfskFM8W3T8E2z+dSKaPyOZVwG3YAnoTCNK2F2G55LcjUyV2CKXxX3UsV3KB2bG3z+ZvR+aZ8IA10/oBlAOhYOV7teop1rw/4Vh6JyOBU= 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)(366004)(396003)(376002)(136003)(346002)(39860400002)(1590799012)(451199015)(1580799009)(85182001)(316002)(71200400001)(83380400001)(6506007)(9686003)(26005)(186003)(54906003)(7696005)(6636002)(86362001)(2906002)(55016003)(33656002)(66476007)(122000001)(76116006)(66556008)(8676002)(64756008)(38100700002)(66946007)(4326008)(66446008)(38070700005)(82960400001)(478600001)(8936002)(52536014)(41300700001)(6862004)(5660300002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?N2Yxc3ZGblh2U3pBeDBjWktvYkc4amtwdlFUYVVadDE5TXBOQ2dpTGdxcm0w?= =?utf-8?B?U24zaFFKbk8xR0ZLZlRlR2o3MTZiWUZTcWJyRVcwTGtSakl4SmVwNlhLaWNj?= =?utf-8?B?bU55enkxTGhFZFFYMVVoeFllNzZHRHBjc3NiNXBVMlFsS3hyU0ZoeDlhV2ti?= =?utf-8?B?a3BJQVNDRmxBTkppL2NsSE91a0xEb3ZhZWRIOXVIVzNEKzkrREV3ZnoxMC8y?= =?utf-8?B?Vkd0REg4cWR0MHdmZWs5cnV0R3ovanBuQUVkTTIxZDcwS2o5T1NuYUNYWDJl?= =?utf-8?B?Z1hpc1Vad2RRc0kvTXRuRk9zWkhkenU1dWZXaGtJcC9XWFA5cERYMzlNbTI3?= =?utf-8?B?S013byt3T09pTm5PR2xSb3h3M1JjeXBma2wraDJVemwzVmxSaUJQL2RCa3ZZ?= =?utf-8?B?V1hsZDFMTWZ0aFZOSUthRVBxWmkxeTZZbXkya1lyQ0ZHY2JaNTBXL2UwSVFh?= =?utf-8?B?eWRWYksyUmFXRlJ1emtnYWVXVDEyZ0VneVFBSnZDTU5XckVEak9ZR0thV0Rx?= =?utf-8?B?cHlxcnd5Y2VNU2UvVDdyUkw3YWRHK2hkdzVXTEo2UjdORnE4VE5NZTRYNXRz?= =?utf-8?B?ckJUVjVBRTJqWStud0dwZzVVWWY1ZElwY3hvTnR1Rm9zSE1ZRG1BNWEzTmhx?= =?utf-8?B?SmpJenhNYk41TE03dU9zTWhCdHZQQXpUTDg1aDdDcW4ySTE3amxyZDZsZzVs?= =?utf-8?B?NFoyOFRkeFdKbEptSUJWOFYxSjRsYjRhU3lESllVRUhISVhBa2hlRmI1SUM1?= =?utf-8?B?dTNmeTR6Qll1STQ3cVo0SHlPd2kwTldWSG5jZGNrck8wSE9IMkd4eUxHRDBM?= =?utf-8?B?S3JnSGtNOU1JZVRQQnpJNkZxRjdsaU01WGlNeWtTRGNQVHJYNEZFVzllNC85?= =?utf-8?B?YXVRUHduTE5xVG0zVWROUHQxbFpSaXdMZXhXRXFuRVBHS0h3RGIzak1oaWlv?= =?utf-8?B?VDJLbk1HYlFWRVpIa1EzSGxhUmtpZHh6VWwxTXViSkgyYnJsYXdQeXlSZVQy?= =?utf-8?B?bWRNdVRVTjFmZFpIMzVUVUZ0R2VLZUxCcjRIZyt6WllZdWkxVmVqVW41eWFz?= =?utf-8?B?aUZIbmZqazhyTkRVMEFiaU43MFVROEc5REN6eWZpdDJ1UktCZWtzUkFBYWkx?= =?utf-8?B?a0R2ZExHRDBiYXd0UXhBRTlBKzFYeWFlMVlQZW1HZHQvRU5hWFNOcEdpTmZJ?= =?utf-8?B?U050d1N4MUw0VTlCZi9Gdkl1cjdNWFVSQ0dIaUpTQkdUeDd3Nm9EMnkwL2FS?= =?utf-8?B?YitUSVR1Zmw3UHlPQlozWDBCamdnOVhxZ2ZmMlFrellkaE1iczdmNmJXVWlr?= =?utf-8?B?emwwK3hwY2ZubUtzRExDQUtkcFoxVTFhLzdZK0VzR3JLUkVQem14UzN2aWph?= =?utf-8?B?R1ovelpKNVdPL1hlWk85SkhsaEJWSi9zalVZZWxSQU5ydWptYTN3ME9XSnVi?= =?utf-8?B?UXRtMVlPeGhrRk56UEZTRXFFNkJLOUpSZHRXMVlMMFhVd0tMLzFYTkg5d3Ar?= =?utf-8?B?UXk5MGN5NktvcjFhQ0xRMlJnd3NHYUt4ZFFiam14T3VpaHVRZzJRME1STW5w?= =?utf-8?B?RXRTWHl3UjdTVmRQUGYrb1I2YXV1L21FTjgxc3lNUVVTbHpxckdBSHJGUkov?= =?utf-8?B?THUweTBZak53V2tYSVlZUnpTellmcThlckI2NmU1VUpUR09WRzF1V1FQOEo5?= =?utf-8?B?VXNLaVFUYzNSc2k0dm5tMGh1dHVZUUJrOFBYeExaNkRVa2s0eUpRbWN4NGZm?= =?utf-8?B?M2xqQnNXdlkzNU9heEJiWklqb01pc0orZXA4eWpHeU9OZ05XaWpOZ0gveTlS?= =?utf-8?B?emhReU1JaURReS9WeHF5VTVScGlPeUVsRkV6TWgzeWV5bk84V0dFT29rajlM?= =?utf-8?B?L0U3OWZqZjdYajFSbXNSUk9vTHBMSTIydCtiamF1YTJMTm1ZTWRPN0xXdlJn?= =?utf-8?B?YWV5RTR6d1VCOWdCTC9MeHc1SEZiSW9xTUl5aVpoV2ttc1lmMmVZRzRYWEgy?= =?utf-8?B?TVFtUkdjR3NCRG9Oc1JzdUE5VDYvSi9WU0QwcHV6Q0xqanV3SlBYcVkzYzdv?= =?utf-8?B?TUphc2xLNDdzd2U4b1A1dW90aVFKZ0IxcXlqci80WUZnUzkwYTV3c2NnRzNh?= =?utf-8?Q?ejVE/9ozFKAG5CCIAyfiS1gD5?= 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: 1Qvrr7ccMglBNUbcmtW5zuRLhNI4EihhaATp9q2X3o919GDatS9ZjNYqjZZ6TzzBhAYCyb4S0r9Zod2rjLlwg4Kx6k78kvKTRab74mZnAH1ERZadOsmpI3Pzyapd3SFOZgE66lZncmoIZOHlTf0bE+yLxyKZpEz4detjsu8ZXlvDpDNTuQr1/arKwnx2E8GICo6DMJqp2faOy/wQCpHefk9b944nNpjv35fiSoAoO7Tv54lWZnRuTna4flytn46mskzR43XGMxIKvmUWmriP3lNk3O0HSHW3J7pn011C2CE0l0PAumqWQKEirq8brPFox8aa5Iq7vEgVvcjnQKfs+6qFTNWO+i3mxHPevd9yeLZXR0QpT1oXtq4DUDuMyXN7SHkrxRQutwRXuvPasDy910e64b7rGC1DIbcCo506WWeT614aSxyhrkv4vwQGkKcFIE3WKC68t8BgTIK2M680WeMSSBdIglxNGqKpJ24N/hWCQPbGvCIroF96M7fOJAh8D/zvV6Jd5fu5hnzXQAbmYzt8ztwBElUtClLScGuH514vs04poQILJMYVFDMCI10o/YEOeu+B/fi3CJFsG3VFk9oK2gDVEqYHMnv/WQEa7s7evMjflwHkq/8qlcFYiHY9haBHoV0t9fnS+dZG8OlbaYqWJSd2GTZwtAqSeAW//Sq643FKroAy8epeF4GAzJyCZF5lghScTuhHsDOmbpn6WEBLwEd9MdOv19lpP27u845E2Xx9AicKtGMzSvDR8R8D/dQFe3tk/67KVTv6eDvsiv/aIuHRyTcJ9VzqMPb0ZIHNNivjIfOEAEApwSOhgp7dj+VVi4rHs4hrNhqtQ1a8vSFMJNVjF7P3873eye27SZatCl014YVqihgkJiKy2gS7F3fY7VOSTVCqZq39dhaM0w== 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: 4315a31b-adce-4544-84ec-08dad5e93551 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Dec 2022 11:18:02.4509 (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: X/UFDsUxzUyMufYxB00fLJ+8UckpvT3B+cSrRGQJw6n66cFDY7TwxhfzgUtfdq3Qc3qrb4dc873aQY5/l3XtPQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB9846 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk T24gRnJpZGF5LCBEZWNlbWJlciAyLCAyMDIyIDc6MjcgUE0gS3Vyb2RhLCBIYXlhdG8v6buS55Sw IOmavOS6uiA8a3Vyb2RhLmhheWF0b0BmdWppdHN1LmNvbT4gd3JvdGVMDQo+IA0KPiBEZWFyIEhv dSwNCj4gDQo+IFRoYW5rcyBmb3IgbWFraW5nIHRoZSBwYXRjaC4gRm9sbG93aW5ncyBhcmUgbXkg Y29tbWVudHMgZm9yIHY1NC0wMDAzIGFuZA0KPiAwMDA0Lg0KDQpUaGFua3MgZm9yIHRoZSBjb21t ZW50cyENCg0KPiANCj4gMDAwMw0KPiANCj4gcGFfZnJlZV93b3JrZXIoKQ0KPiANCj4gKyAgICAg ICAvKiBVbmxpbmsgYW55IGZpbGVzIHRoYXQgd2VyZSBuZWVkZWQgdG8gc2VyaWFsaXplIHBhcnRp YWwgY2hhbmdlcy4gKi8NCj4gKyAgICAgICBpZiAod2luZm8tPnNlcmlhbGl6ZV9jaGFuZ2VzKQ0K PiArICAgICAgICAgICAgICAgc3RyZWFtX2NsZWFudXBfZmlsZXMoTXlMb2dpY2FsUmVwV29ya2Vy LT5zdWJpZCwNCj4gd2luZm8tPnNoYXJlZC0+eGlkKTsNCj4gKw0KPiANCj4gSSB0aGluayB0aGlz IHBhcnQgaXMgbm90IG5lZWRlZCwgYmVjYXVzZSB0aGUgTEEgY2Fubm90IHJlYWNoIGhlcmUgaWYN Cj4gd2luZm8tPnNlcmlhbGl6ZV9jaGFuZ2VzIGlzIHRydWUuIE1vcmVvdmVyIHN0cmVhbV9jbGVh bnVwX2ZpbGVzKCkgaXMgZG9uZSBpbg0KPiBwYV9mcmVlX3dvcmtlcl9pbmZvKCkuDQoNClJlbW92 ZWQuDQoNCj4gTG9naWNhbFBhcmFsbGVsQXBwbHlMb29wKCkNCj4gDQo+IFRoZSBwYXJhbGxlbCBh cHBseSB3b3JrZXIgd2FrZXMgdXAgZXZlcnkgMC4xcyBldmVuIGlmIHdlIGFyZSBpbiB0aGUNCj4g UEFSVElBTF9TRVJJQUxJWkUgbW9kZS4gRG8geW91IGhhdmUgaWRlYSB0byByZWR1Y2UgdGhhdD8N Cg0KVGhlIHBhcmFsbGVsIGFwcGx5IHdvcmtlciB1c3VhbGx5IHdpbGwgd2FpdCBvbiB0aGUgc3Ry ZWFtIGxvY2sgYWZ0ZXIgZW50ZXJpbmcNClBBUlRJQUxfU0VSSUFMSVpFIG1vZGUuDQoNCj4gYGBg DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHBhX3Nwb29sZWRfbWVzc2FnZXMoKTsNCj4gYGBg DQo+IA0KPiBDb21tZW50cyBhcmUgbmVlZGVkIGhlcmUsIGxpa2UgIkNoYW5nZXMgbWF5IGJlIHNl cmlhbGl6ZS4uLiIuDQoNCkFkZGVkLg0KDQo+IHBhX3N0cmVhbV9hYm9ydCgpDQo+IA0KPiBgYGAN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKg0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqIFJlb3BlbiB0aGUgZmlsZSBhbmQgc2V0IHRoZSBmaWxlIHBvc2l0 aW9uIHRvDQo+IHRoZSBzYXZlZA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq IHBvc2l0aW9uLg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZW9wZW5fc3RyZWFtX2ZkKQ0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNoYXIgICAgICAgICAgICBwYXRoW01BWFBHUEFUSF07DQo+ICsNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZXNfZmlsZW5hbWUo cGF0aCwNCj4gTXlMb2dpY2FsUmVwV29ya2VyLT5zdWJpZCwgeGlkKTsNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9mZCA9DQo+IEJ1ZkZpbGVPcGVuRmls ZVNldCgmTXlQYXJhbGxlbFNoYXJlZC0+ZmlsZXNldCwNCj4gKw0KPiBwYXRoLCBPX1JET05MWSwg ZmFsc2UpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmRmls ZVNlZWsoc3RyZWFtX2ZkLCBmaWxlbm8sIG9mZnNldCwNCj4gU0VFS19TRVQpOw0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0NCj4gYGBgDQo+IA0KPiBNeVBhcmFsbGVsU2hhcmVk LT5zZXJpYWxpemVfY2hhbmdlcyBtYXkgYmUgdXNlZCBpbnN0ZWFkIG9mIHJlb3Blbl9zdHJlYW1f ZmQuDQoNClRoZXNlIGNvZGVzIGhhdmUgYmVlbiByZW1vdmVkLg0KDQo+IA0KPiBgYGANCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgLyoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICogSXQg aXMgcG9zc2libGUgdGhhdCB3aGlsZSBzZW5kaW5nIHRoaXMgY2hhbmdlIHRvDQo+IHBhcmFsbGVs IGFwcGx5DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAqIHdvcmtlciB3ZSBuZWVkIHRvIHN3 aXRjaCB0byBzZXJpYWxpemUgbW9kZS4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICovDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aW5mby0+c2VyaWFsaXplX2NoYW5nZXMpDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFfc2V0X2ZpbGVzZXRfc3RhdGUod2lu Zm8tPnNoYXJlZCwNCj4gRlNfUkVBRFkpOw0KPiBgYGANCj4gDQo+IFRoZXJlIGFyZSB0aHJlZSBz YW1lIHBhcnRzIGluIHRoZSBjb2RlLCBjYW4gd2UgY29tYmluZSB0aGVtIHRvIGNvbW1vbiBwYXJ0 Pw0KDQpUaGVzZSBjb2RlcyBoYXZlIGJlZW4gc2xpZ2h0bHkgcmVmYWN0b3JlZC4NCg0KPiBhcHBs eV9zcG9vbGVkX21lc3NhZ2VzKCkNCj4gDQo+IGBgYA0KPiArICAgICAgICAgICAgICAgLyoNCj4g KyAgICAgICAgICAgICAgICAqIEJyZWFrIHRoZSBsb29wIGlmIHRoZSBwYXJhbGxlbCBhcHBseSB3 b3JrZXIgaGFzIGZpbmlzaGVkDQo+IGFwcGx5aW5nDQo+ICsgICAgICAgICAgICAgICAgKiB0aGUg dHJhbnNhY3Rpb24uIFRoZSBwYXJhbGxlbCBhcHBseSB3b3JrZXIgc2hvdWxkIGhhdmUgY2xvc2Vk DQo+IHRoZQ0KPiArICAgICAgICAgICAgICAgICogZmlsZSBiZWZvcmUgY29tbWl0dGluZy4NCj4g KyAgICAgICAgICAgICAgICAqLw0KPiArICAgICAgICAgICAgICAgaWYgKGFtX3BhcmFsbGVsX2Fw cGx5X3dvcmtlcigpICYmDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIE15UGFyYWxsZWxTaGFy ZWQtPnhhY3Rfc3RhdGUgPT0NCj4gUEFSQUxMRUxfVFJBTlNfRklOSVNIRUQpDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsNCj4gYGBgDQo+IA0KPiBJIHRobmsgcGZyZWUoYnVm ZmVyKSBhbmQgcGZyZWUoczIuZGF0YSkgc2hvdWxkIG5vdCBiZSBza2lwcGllZC4NCj4gQW5kIHRo aXMgcGFydCBzaG91bGQgYmUgYXQgYmVsb3cgIm5jaGFuZ2VzKys7Ig0KDQpidWZmZXIsIHMyLmRh dGEgd2VyZSBhbGxvY2F0ZWQgaW4gdGhlIHRvcGxldmVsIHRyYW5zYWN0aW9uJ3MgY29udGV4dCBh bmQgaXQNCndpbGwgYmUgYXV0b21hdGljYWxseSBmcmVlZCBzb29uIHdoZW4gaGFuZGxpbmcgU1RS RUFNIENPTU1JVC4NCg0KPiANCj4gMDAwNA0KPiANCj4gc2V0X3N1YnNjcmlwdGlvbl9yZXRyeSgp DQo+IA0KPiBgYGANCj4gKyAgICAgICBMb2NrU2hhcmVkT2JqZWN0KFN1YnNjcmlwdGlvblJlbGF0 aW9uSWQsIE15U3Vic2NyaXB0aW9uLT5vaWQsIDAsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQWNjZXNzU2hhcmVMb2NrKTsNCj4gKw0KPiBgYGANCj4gDQo+IEkg dGhpbmsgQWNjZXNzRXhjbHVzaXZlTG9jayBzaG91bGQgYmUgYXF1aXJlZCBpbnN0ZWFkIG9mIEFj Y2Vzc1NoYXJlTG9jay4NCj4gSW4gQWx0ZXJTdWJzY3JpcHRpb24oKSwgTG9ja1NoYXJlZE9iamVj dChBY2Nlc3NFeGNsdXNpdmVMb2NrKSBzZWVtcyB0byBiZQ0KPiB1c2VkLg0KDQpDaGFuZ2VkLg0K DQpCZXN0IHJlZ2FyZHMsDQpIb3UgemoNCg==