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 1npR2R-0003gV-L8 for pgsql-hackers@arkaria.postgresql.org; Fri, 13 May 2022 08:52:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1npR2Q-0002lZ-HD for pgsql-hackers@arkaria.postgresql.org; Fri, 13 May 2022 08:52:42 +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 1npR2Q-0002lQ-3r for pgsql-hackers@lists.postgresql.org; Fri, 13 May 2022 08:52:42 +0000 Received: from esa11.fujitsucc.c3s2.iphmx.com ([216.71.156.121]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1npR2M-0005vT-U2 for pgsql-hackers@lists.postgresql.org; Fri, 13 May 2022 08:52:40 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1652431958; x=1683967958; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=WKcxiH2Ck9G7u+pJ2i5O3Vqq3X1ZaCbq5yFGwJ78j/8=; b=a6XKFJgDkMNEYo1mDhmFhIOVz0m2fUPdC0ClxeQqN/Y828hGclKYQY8+ CrCvN8hpmQ5OZSwiDn1USrHjAJzN5pY75NvfPqhBTEkD+mHZRwNs5cw34 AY57qmwKF4M1xdZ005mXCzitTnxFy2QTxY4ioiPx75Q1bbuOt/BuEqGeh 2RTd/k8MnutChSBW6dNUwiKSZDfNJytgW3q4ZYnGpRCrg3/WNoVcqHLZG tiltsQ/OFI6d7khlWAhginopAbzpsfSbBsZM4DXm5Y2Rn8Ot7GqXOsNOd dTJm5dfmuycLEIc6ZFBJYrd0NpGciUyAbBaEkZgLiqw3w1Hn3rbriU1qn g==; X-IronPort-AV: E=McAfee;i="6400,9594,10345"; a="56092616" X-IronPort-AV: E=Sophos;i="5.91,221,1647270000"; d="scan'208";a="56092616" Received: from mail-os0jpn01lp2110.outbound.protection.outlook.com (HELO JPN01-OS0-obe.outbound.protection.outlook.com) ([104.47.23.110]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 May 2022 17:52:34 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L2sB6Mp+WWbFa+gtTnsW98riRDz4WpUdcnkaEUMlFk1MajIOw61RYbvRGDOmTYTB/KE+JuiOtUsI1SvfpCaxd8sySQzGSemYTzwSzs6nX0XgEoiXvpLbA8hHFrclJlJSUhDJf+hUDRjRNcLapjziwcMWFJNd89KtQ2OkKOBcryxTWOTCYwEnpgEqyynSzft97PUbsVkzAyIaLW+vALcJKZqCgkcC1vLCgPLeT/76ee6E//wjAKREYc6IIpyqTb2BszXOBFeivrfGNuP8t6IZg3cS58tyQZYCoQtAsgHfwovS7uKPUzdLP+UJWUwMSAyAohh8leSnZUsVsJdDO5BMlw== 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=WKcxiH2Ck9G7u+pJ2i5O3Vqq3X1ZaCbq5yFGwJ78j/8=; b=VCCPkxke/IhwRI4/W5MVsgbGUovkx/RFFf8uOF/OZJUPMMOw2ORIsjmFMQAQ1vgXeNe6dLDUQO0FlxjWMfmfO588+QNT2ojHZZji4hY1y6dajgUUE7LDcnWADLePZwvGdTGUytTwl1EEVrnFHUUi+S67S+UY0RTGP/WOObP+gUlwpR41EjcWnWSyK90roJfdf5jiaIkA/pS+UrWD0fAO8kcuCksCw09SPtbtfAyIOA76KxdV9d1yKHwtUOLY9ad8eFG/Qoc/isNl4o4nJ6Je2QucKw1ixnFn3VxgFwGsvaXRtATupzpMwU5y/fLulybkIQRGaLnvrIVRF+U1wJYorw== 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=WKcxiH2Ck9G7u+pJ2i5O3Vqq3X1ZaCbq5yFGwJ78j/8=; b=JQU6/L1z3BnJFJy2YSJHu1CEqTN7fIRYFUrC7bK8scJhijFC5pbSwrGBVSjib65zywRhDg1b0DfNGFCmueGDM8QBrB0C18a1XCpEevNEo4n5jIob07MGozGDKeikWcwlGD1vBUgnfM94XkBMriu8y2M3mRVmhKFn+WYY+nwwKxc= Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com (2603:1096:604:bb::12) by OSBPR01MB5160.jpnprd01.prod.outlook.com (2603:1096:604:7d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.22; Fri, 13 May 2022 08:52:32 +0000 Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::fcd7:9667:ec81:d1d5]) by OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::fcd7:9667:ec81:d1d5%5]) with mapi id 15.20.5227.023; Fri, 13 May 2022 08:52:32 +0000 From: "houzj.fnst@fujitsu.com" To: Amit Kapila , Masahiko Sawada CC: Peter Smith , "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: AQHYSXX5zhPsn/DiHU+5DFLHlN8Fn6zlu9SQgCWJsYCAADA/AIAAKNiAgAEXPgCAADKygIABE+qAgAnIzACAAEAxgIABQDQAgAASR4CAA2I8wA== Date: Fri, 13 May 2022 08:52:32 +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: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 22876785-5aae-447e-a1bc-08da34bdeafe x-ms-traffictypediagnostic: OSBPR01MB5160:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: E4qin23iyp5gR5d+TZXzZypK8XtQ8xL7Gx5YET30fYrtJPDOrjX2xrzOZIVCr7kIQcctVQlQQngGj+9aC1H67DPwOe4YLf6+8QMCrE3LmSxA5W0HLHQmGxhBIE2Uzg3UmHZTjS0ubFYhJzyjeT/nQfkAZ7JhwqKPXTaK/D7Ccsr5XGxZSFwUoHwruIqn9xZ5StdPpZjN40kE51RhuxjG+TRb8B7gNK9K94o+8CEoD2kiQGY3BAOjuwYeeQ40Nu/detbV7/drqg4ITOHKBQlk8Qzwo42x8Lg3mMlX4B3VUiXIkT59gaMZe9cvSHUqgeIJHLr3igFT/9g+rHUZnwf++wWIGDxuo8+MdAkSbMl9Mhx9/aThFav/hnZN0y0IyO8XXjXMb5kAo6ETraIQrPxaldmuY+o/a7FzMfj9boGuC8T0OErQXP9M+nuArJodwfnuiKHhl3cu5LyBtVf6d8XZXFz5EAgy2GKBSTB3qZAF+H8SFZsqZTMqKJniSyVYrDwjtjCHeZ6SI15dX/UYmfcDKDGQN9AS7d2D2YTDptnjxEMsvLv8PMKQSHS9Fdup7xDYKjyMjF4gXiCKX35TsUNttbSlH5wN50Kjz/X2zrEM2gJ4GVbksc6FrVMTydEtIgm5AjeT3rUiBZ4eU+4e8sr0ny1J1ojCl31Q5G1L8tSWwHyLwqTxYOUl2Y1s+gEwWdoJGHxlCVqR5P9Zqbuw5lOQgw== 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:(13230001)(4636009)(366004)(186003)(83380400001)(33656002)(66446008)(8676002)(66476007)(76116006)(66556008)(64756008)(66946007)(4326008)(508600001)(110136005)(54906003)(9686003)(71200400001)(26005)(86362001)(316002)(6506007)(7696005)(53546011)(82960400001)(8936002)(52536014)(122000001)(85182001)(2906002)(55016003)(5660300002)(38100700002)(38070700005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WkhuMVdudDdyWWhoTk1RVzhLb1NMTUJHRUFUWERrQkFQSGdpQnpzR2ZmQlZk?= =?utf-8?B?c2ttL29IMGRKUE52ZWlZdFBCMEJyZ2RRT3d2TFU3Y3kwdnhNelROU01rdEdR?= =?utf-8?B?UHh6OG0yaVNNL1Qrd1EwQklaL0lGOU9obUUweXAxUG1WOUZuNGhFaHYrTFhx?= =?utf-8?B?THBIRC83bjJlcWhmUVRoZnA1N0FDbTA5WU1mTHNMT3pWYnFmYkgxLzVubXAr?= =?utf-8?B?N3d4VDVDRGg2WmthY3VEZHFiQUZja20xUnVYRjlEN1BGQmN3OGI0UGtWVlhr?= =?utf-8?B?Q29ML2lBWFg3ZHBLMzJCaVFhT3oydlR3dkloY1VvWklvam5CSFBBOHU5RG5M?= =?utf-8?B?U21IY2cvdFNFNkhIbWNUOEpIcVhzNzBkU21DdHBQM2MrVlIxTzA4SFZWbm9o?= =?utf-8?B?cEh2cit2ZU9rTjF6THlkY2RXWXRsc3RtcXFiN2lZYUNESlJJcnVsWTI2R25R?= =?utf-8?B?ZnRNNVd5SE5WZWIybHczVXZCdTdsMDlrbFNGNFJxOEtWTCtCSFZYdGZCU1VQ?= =?utf-8?B?RFV1RitmVHZuRmZBTStwLy9hYWFjL3A1OGVBem5icFR2eTBCVmE3Y25NQU1j?= =?utf-8?B?Umk3cnk5MzFNZzVoWVJNR2pNMVIrRVAxd29LK3lHbytaRFpQZFhlcTV5eGlE?= =?utf-8?B?L1JYUUZDcVNlcE8rUGtvR3p2SHRGbW0rZmJhancwVlZrOGlxYmJUbkhsSHB6?= =?utf-8?B?eWRzQjdIOFdJd2RiOUg5b3IyZVFXSjFNZUZHaUhvSTFNaFdrMXdHMkIzcDdF?= =?utf-8?B?dXFuSHAyZ3NrMU5RZmFLQUNUQmJ5WC9LaHNyWnJncXJkUWdBL244LzNUVVdP?= =?utf-8?B?dzRIRDNLZUZ1WkJ5UFI5eTd5bjhyQ3JPODZKWHk3RTFZcmhBaUhRT0VMNjQy?= =?utf-8?B?MzF4OWJzWkFGR1lrNkhXekdEcit2UXYyM25DbnYxcmxOeGdLMkdVM2xKdE9Z?= =?utf-8?B?Ukp0VVk0VmNhQlNwMWdPT0xOOTNDNXB0VTZWOFlSc3pkaG1wcnFVOGl4Vkw5?= =?utf-8?B?WXY3dGhoWVo4dm5QNzFLdytkQk5HcnppRjVudytGY3FpUzBNM3NpNGZUd3Z0?= =?utf-8?B?UjhicFZZM2dsK2hVbDlIY2FhZXFkNmlzQllXanNtVDBpbGl1K0N2aVVvQm42?= =?utf-8?B?ZnFvWDhsekY4bUN5cE5wazhLcFRQWUFibjRZb21CWlh2akRIN1lGcS9pY01i?= =?utf-8?B?Wm1kcXhmTXdDLzhaNDlIMmtiTHNzVU1UQWtpWWtNR2ZlNlozVGJXdm9WSFM3?= =?utf-8?B?aWdmR3N0dUJLVmVXSHpYcFBpQ2owSlVjU3V5NURrNjBFNlEwdnhES292VnFz?= =?utf-8?B?eVhkL0ZKeklMc1ZTTFk3dzJFRzdJZUxtcEZjNkwzdktEVmFUaHJnMnJlRzYz?= =?utf-8?B?RDY1LzV2MXdxZkNSZkliK3l0aE5KYWd1aGFxb2ZEZlo4OUhiRjVoRXNlekk0?= =?utf-8?B?VGtEK3RaQzJmaWxYa3dxSkNYckdISkRSNlVRRGlUSzRwVkFJTlk0T0RmMWxQ?= =?utf-8?B?YVN1MURRdHRvdFZqc3psb2FMVzdiV0Q1Qi96WWFVaWRyTWZoL3diMmQ4UE1t?= =?utf-8?B?d0pqdkd0TlpramJOZGpsL0JHLy81THN1bUtmRitEZGVCYUlvSzF1V3dPekha?= =?utf-8?B?bTByRmRRMGg0cHV2bmNwTXVmdDZldTZ1QTVsaTVSTjRtd2J5c2Y3Q3QrbG5k?= =?utf-8?B?eHpPZEVJdjdxR3dsckJ2RnlRNGkwV1hOWjN2OHhwSVg5M3N4d1psSWRWcjRo?= =?utf-8?B?ZFJhNk5xWkNpUEUrZzQzYnNLWWI2bGdKTWE0Y0JRYTdmekNwb2thUVhJSGgy?= =?utf-8?B?VlAvRmRjall5aHZjdnAzdGNxTHdaSjRub2JhT3dZdXVEd0hkcFJGaThkR0M2?= =?utf-8?B?d1owVmRZMG5KRWRadEsxbWE5YzgwRnNUYVExS3VBMVJGRWZHMCtSZEVUN2xs?= =?utf-8?B?U0RIbHgyL2prTTA3bk05aGltZkZ4ZDVMbi8xMTdUMzVRUW5QWW1OMkdqS2cz?= =?utf-8?B?eDhrOGVhK21EaURNYmo4MTN5ams3M2d1OUZEeWlaYW5CdWNONjJ4c3greEtG?= =?utf-8?B?M2V4dzZWUWJQNWNLZEZaR2dHVU4yQ2FMY0dCS3ppamI4bTNIUGlVblg1Qnc0?= =?utf-8?B?ZTdScjl1dHh5eFM0cko2VDE1ZXJOWExCK3hsUnFWVzdNVmxrSFZQdHMrMm1V?= =?utf-8?B?TFJKYTNQTkdxRGRmcStoNndqWGYya0hmdzhQUFhjS1dGZGxoTjZuQ3B1V05S?= =?utf-8?B?SFpGR215S3dzZkhwZ3d1anhqcjJtZnNXTnVTVDJFRUIwOGNQVldFb090eVBi?= =?utf-8?B?QTlibEphZGQ0QU9CYjhRVERYdERka3UwOUI3Q0JVYjhYR1dkMVNSUT09?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 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: 22876785-5aae-447e-a1bc-08da34bdeafe X-MS-Exchange-CrossTenant-originalarrivaltime: 13 May 2022 08:52:32.2053 (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: dnD/gIsKZbQgEKkap+SfmIeDwlzyqH6mky1/vLRQKixuM5k8BgLY05jXP141A041/dN+wgnhYYgcuTPg1DgxVA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSBPR01MB5160 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk T24gV2VkbmVzZGF5LCBNYXkgMTEsIDIwMjIgMToxMCBQTSBBbWl0IEthcGlsYSA8YW1pdC5rYXBp bGExNkBnbWFpbC5jb20+IHdyb3RlOg0KPiANCj4gT24gV2VkLCBNYXkgMTEsIDIwMjIgYXQgOToz NSBBTSBNYXNhaGlrbyBTYXdhZGENCj4gPHNhd2FkYS5tc2hrQGdtYWlsLmNvbT4gd3JvdGU6DQo+ ID4NCj4gPiBPbiBUdWUsIE1heSAxMCwgMjAyMiBhdCA1OjU5IFBNIEFtaXQgS2FwaWxhIDxhbWl0 LmthcGlsYTE2QGdtYWlsLmNvbT4NCj4gd3JvdGU6DQo+ID4gPg0KPiA+ID4gT24gVHVlLCBNYXkg MTAsIDIwMjIgYXQgMTA6MzkgQU0gTWFzYWhpa28gU2F3YWRhDQo+IDxzYXdhZGEubXNoa0BnbWFp bC5jb20+IHdyb3RlOg0KPiA+ID4gPg0KPiA+ID4gPiBIYXZpbmcgaXQgb3B0aW9uYWwgc2VlbXMg YSBnb29kIGlkZWEuIEJUVyBjYW4gdGhlIHVzZXIgY29uZmlndXJlDQo+ID4gPiA+IGhvdyBtYW55 IGFwcGx5IGJnd29ya2VycyBjYW4gYmUgdXNlZCBwZXIgc3Vic2NyaXB0aW9uIG9yIGluIHRoZQ0K PiA+ID4gPiB3aG9sZSBzeXN0ZW0/IExpa2UgbWF4X3N5bmNfd29ya2Vyc19wZXJfc3Vic2NyaXB0 aW9uLCBpcyBpdCBiZXR0ZXINCj4gPiA+ID4gdG8gaGF2ZSBhIGNvbmZpZ3VyYXRpb24gcGFyYW1l dGVyIG9yIGEgc3Vic2NyaXB0aW9uIG9wdGlvbiBmb3INCj4gPiA+ID4gdGhhdD8gSWYgc28sIHNl dHRpbmcgaXQgdG8gMCBwcm9iYWJseSBtZWFucyB0byBkaXNhYmxlIHRoZSBwYXJhbGxlbCBhcHBs eQ0KPiBmZWF0dXJlLg0KPiA+ID4gPg0KPiA+ID4NCj4gPiA+IFllYWgsIHRoYXQgbWlnaHQgYmUg dXNlZnVsIGJ1dCB3ZSBhcmUgYWxyZWFkeSBnaXZpbmcgYW4gb3B0aW9uIHdoaWxlDQo+ID4gPiBj cmVhdGluZyBhIHN1YnNjcmlwdGlvbiB3aGV0aGVyIHRvIGFsbG93IHBhcmFsbGVsaXNtLCBzbyB3 aWxsIGl0IGJlDQo+ID4gPiB1c2VmdWwgdG8gZ2l2ZSBvbmUgbW9yZSB3YXkgdG8gZGlzYWJsZSB0 aGlzIGZlYXR1cmU/IE9UT0gsIGhhdmluZw0KPiA+ID4gc29tZXRoaW5nIGxpa2UgbWF4X3BhcmFs bGVsX2FwcGx5X3dvcmtlcnMvbWF4X2JnX2FwcGx5X3dvcmtlcnMgYXQNCj4gPiA+IHRoZSBzeXN0 ZW0gbGV2ZWwgY2FuIGdpdmUgYmV0dGVyIGNvbnRyb2wgZm9yIGhvdyBtdWNoIHBhcmFsbGVsaXNt DQo+ID4gPiB0aGUgdXNlciB3aXNoZXMgdG8gYWxsb3cgZm9yIGFwcGx5IHdvcmsuDQo+ID4NCj4g PiBPciB3ZSBjYW4gaGF2ZSBzb21ldGhpbmcgbGlrZQ0KPiA+IG1heF9wYXJhbGxlbF9hcHBseV93 b3JrZXJzX3Blcl9zdWJzY3JpcHRpb24gdGhhdCBjb250cm9scyBob3cgbWFueQ0KPiA+IHBhcmFs bGVsIGFwcGx5IHdvcmtlcnMgY2FuIGxhdW5jaCBwZXIgc3Vic2NyaXB0aW9uLiBUaGF0IGFsc28g Z2l2ZXMNCj4gPiBiZXR0ZXIgY29udHJvbCBmb3IgdGhlIG51bWJlciBvZiBwYXJhbGxlbCBhcHBs eSB3b3JrZXJzLg0KPiA+DQo+IA0KPiBJIHRoaW5rIHdlIGNhbiBnbyBlaXRoZXIgd2F5IGluIHRo aXMgbWF0dGVyIGFzIGJvdGggaGF2ZSB0aGVpciBwcm9zIGFuZCBjb25zLiBJDQo+IGZlZWwgbGlt aXRpbmcgdGhlIHBhcmFsbGVsIHdvcmtlcnMgcGVyIHN1YnNjcmlwdGlvbiBnaXZlcyBiZXR0ZXIg Y29udHJvbCBidXQNCj4gT1RPSCwgaXQgbWF5IG5vdCBhbGxvdyBtYXggdXNhZ2Ugb2YgcGFyYWxs ZWxpc20gYmVjYXVzZSBzb21lIHF1b3RhIGZyb20NCj4gb3RoZXIgc3Vic2NyaXB0aW9ucyBtaWdo dCByZW1haW4gdW51c2VkLiBMZXQgdXMgc2VlIHdoYXQgSG91LVNhbiBvciBvdGhlcnMNCj4gdGhp bmsgb24gdGhpcyBtYXR0ZXI/DQoNClRoYW5rcyBmb3IgQW1pdCBhbmQgU2F3YWRhLXNhbidzIGNv bW1lbnRzICENCkkgd2lsbCB0aGluayBvdmVyIHRoZXNlIGFwcHJvYWNoZXMgYW5kIHJlcGx5IHNv b24uDQoNCkJlc3QgcmVnYXJkcywNCkhvdSB6ag0K