From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 7C6CE1FF164 for ; Wed, 23 Oct 2024 14:59:07 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id D82F01E729; Wed, 23 Oct 2024 14:59:44 +0200 (CEST) To: "pve-devel@lists.proxmox.com" , "f.gruenbichler@proxmox.com" Date: Wed, 23 Oct 2024 12:59:33 +0000 References: <20240930113153.2896648-1-alexandre.derumier@groupe-cyllene.com> <1350338065.715.1729678366532@webmail.proxmox.com> In-Reply-To: <1350338065.715.1729678366532@webmail.proxmox.com> MIME-Version: 1.0 Message-ID: List-Id: Proxmox VE development discussion List-Post: From: "DERUMIER, Alexandre via pve-devel" Precedence: list Cc: "DERUMIER, Alexandre" X-Mailman-Version: 2.1.29 X-BeenThere: pve-devel@lists.proxmox.com List-Subscribe: , List-Unsubscribe: , List-Archive: Reply-To: Proxmox VE development discussion List-Help: Subject: Re: [pve-devel] [PATCH v2 pve-storage 1/2] add external snasphot support Content-Type: multipart/mixed; boundary="===============7658913970966226232==" Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" --===============7658913970966226232== Content-Type: message/rfc822 Content-Disposition: inline Return-Path: X-Original-To: pve-devel@lists.proxmox.com Delivered-To: pve-devel@lists.proxmox.com Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 55F02C7D81 for ; Wed, 23 Oct 2024 14:59:43 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 367DE1E688 for ; Wed, 23 Oct 2024 14:59:43 +0200 (CEST) Received: from PR0P264CU014.outbound.protection.outlook.com (mail-francecentralazlp170120004.outbound.protection.outlook.com [IPv6:2a01:111:f403:c20a::4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Wed, 23 Oct 2024 14:59:41 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CmWXudqdQK1cmdt4EFwa9dma6K5NlLd3L9LXV/3cPAeoZrb1M0gzG9y73gxnGZocvxOVkCjsYocmp6qdYOP3+65a4K52a98vDS5HGzilVdM4jHhEXjCiozvwp631Zw4gU9b2z5B8br2eQEFRIwQINemqlsK4XxR5qV27GPuHY/IsQGfhpenvsL1EKVgFKKvQYME9jSM9nsqIbwm2xtEHUGc0a1Cs24FVPEO6DRYQ//BYFAwubF7WNMzFhHxpG2Pk8oBqCnq5ff1u1dJgEJiKIh2qNiwsQYgF6C/9IHuyltRcg0IhOks2QXnM7jqT3GD24DY3SNrosZ76wAwKeV/kOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=MP5HDffsJQpq/i4lSHgHgMlWQgS7RuPz4X3Vy0alGUE=; b=mrXaxi5mKRfVnccQYnIyRXXtpOeqy/XWROy0gMES+5I/J+NK9cTDLKXfeVejK5Rsig3aCw9N88MTB2FAVOdfVd/rNI+uzXQyIJZwuVnA7ToJCeUezw6qrnEUBOBxvop636QBGxlZifi9L+dCzMP8x0hqWqiB+FVjPWAJHnEr7b4wr8bTOzv33evzZM5xBev8qClA3UKZ6B+9B61KrfKk7KhGRivEhk+PvAHc2PSbWTUsAqcMV9qApwG3Q+n4DZA5nX2s86VFvB5cBRmJgZuqiVmE0EFwoqCkTJR2KBU/7qQmLlr3Arfp2M7k5otdSzmwb7kvusFmkEbYbPLEtqtjRw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=groupe-cyllene.com; dmarc=pass action=none header.from=groupe-cyllene.com; dkim=pass header.d=groupe-cyllene.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=groupecyllene.onmicrosoft.com; s=selector2-groupecyllene-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MP5HDffsJQpq/i4lSHgHgMlWQgS7RuPz4X3Vy0alGUE=; b=o7urtpps+8SVC00Rr14RyE5b+6gxjlLMHYjKQCowuNyE4ZU0IYrxMMtPtp54MTSyr9ro+sdOl9fqdKFNSzvgI1+D6Tywedj01i5EY1xQWN5+x+H92WLR0czyoLa3QDkvt4cJoH7Km91j4wS/j4Jux4bEmKT3IrvlX7wHT9nDagY= Received: from PAZP264MB3686.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:d8::7) by PASP264MB4771.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:432::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8093.17; Wed, 23 Oct 2024 12:59:33 +0000 Received: from PAZP264MB3686.FRAP264.PROD.OUTLOOK.COM ([fe80::4c89:3ea0:833e:abb]) by PAZP264MB3686.FRAP264.PROD.OUTLOOK.COM ([fe80::4c89:3ea0:833e:abb%7]) with mapi id 15.20.8093.014; Wed, 23 Oct 2024 12:59:33 +0000 From: "DERUMIER, Alexandre" To: "pve-devel@lists.proxmox.com" , "f.gruenbichler@proxmox.com" Subject: Re: [pve-devel] [PATCH v2 pve-storage 1/2] add external snasphot support Thread-Topic: [pve-devel] [PATCH v2 pve-storage 1/2] add external snasphot support Thread-Index: AQHbEyxmwXs2nLZD8UmUp0SHwLa0lbKUQd0AgAAumAA= Date: Wed, 23 Oct 2024 12:59:33 +0000 Message-ID: References: <20240930113153.2896648-1-alexandre.derumier@groupe-cyllene.com> <1350338065.715.1729678366532@webmail.proxmox.com> In-Reply-To: <1350338065.715.1729678366532@webmail.proxmox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.52.0-1build2 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=groupe-cyllene.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PAZP264MB3686:EE_|PASP264MB4771:EE_ x-ms-office365-filtering-correlation-id: 850efed9-4a80-40a1-1d91-08dcf3628a43 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|10070799003|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?U3ROc0NFZGlYMU9qTm90RGNNekRqd0FlRkV0RnNuMVo3RVQ3eDRDNUtlSEIz?= =?utf-8?B?bWYwK3A5T3pRaFZFQ1Y4VXRMeXkybjhOdDN6STVFcUpWckNHOTZ5aENmSEVp?= =?utf-8?B?cVM1c0xXSXRJb0ZiSHFNendWTnhsUytlK0N5bGJxYlJPdUJ0MkZyeW9ZZUlW?= =?utf-8?B?OS9qRnRoYTlsTUxxbTlDZ3kzQmJuRjBERWFXdU5LTDg2aVY4SVRLSVNmL1Ro?= =?utf-8?B?UUpkV1B3czc3ak9DNnBPeGxtVXl5d29menZrdmVwZGI3dmttdFdtTGhiNVV2?= =?utf-8?B?M0tmbnJWZ1Z5b1dkMk5XbmJONE5mNnlCMFJpQThURXNRVHEvMkJvMmhIUnhG?= =?utf-8?B?OFk2aDVkU3R3ekkrbmZMbXRqVk83cUJWdjgzWUZaeWR3S255Z3NtQ21uWmxD?= =?utf-8?B?RVpuak83cWlIUE90RWFCUG1jUVdmQVZmWFN3ZS9RRFVPNmVGMVViRk50TEdK?= =?utf-8?B?NXJYUCs2a3Zwa3YyaDVUNHMxSXFFa0YwVlJUR2FYY2lTZXFXUndYSW9waFVz?= =?utf-8?B?bE5zR204YUhmY3VLSHJJTk5aYVJ6RmIwWGwxNEVDd09KNHFhVlhyczRxWUdp?= =?utf-8?B?bjh4V2haakNaL0dVVWl2Y3FJdW5zOXk5N2V1ZWtldkxJMVlMQk9hVEVkeTVo?= =?utf-8?B?NmhHbkNFSzV1M3Y2d3BEbW8rb1RIeUZ6TEFxdDFDYVdvdUdHRGhxYWFpZlZF?= =?utf-8?B?M3ltSWRWckkwbEhFYUs3U1F5em9EeFkzanBPVlVlOVhac0J6Rk1TcXFwYng1?= =?utf-8?B?d2dZMnpiai9TWWhYeTRGalh4YnV2MTNvU2NSM25zVmV0d2R1MGlmbStUbTEr?= =?utf-8?B?Q24rN2JrT3lvUC9aRHlUdG9jNDVVVkJJYnBwdlRyZ0x3b2FGQU1TOEg1TE0z?= =?utf-8?B?b3RJajlLNC9yMnN5ajdwU0hJb0gwbjdpa0JjTk5uN3kxRXYxc0ZCSnc1VEdY?= =?utf-8?B?UzVISjM4QmpZTGVPZThRYXU0N0VzeC9Sa3p1ZFZ3cDh0WWZySDlEUkZjcE9J?= =?utf-8?B?UlA2NlFHRGdJYVhqZ2ZsckFhaEhGREE2Z3BpZnM5eXJWdkZUVjRhamVEQlg1?= =?utf-8?B?TlBkM0hrdlEzSncrdG1aS0lOcU02RjZFM3lBa0l0MGx6MUhlUmJOMDRCRis2?= =?utf-8?B?MzJrOHBPZWx5amRwRGxEenBkU2llWXcvbTdXbkVrRUNkQ2VFOFVRN2ZDUzJl?= =?utf-8?B?cTJBWHhpSGw1UjJOZ1NQVkhyaTk4N2JsS0dwc1M1U0d2Rm1Odzk0bU5zaU00?= =?utf-8?B?TTRMam1oUTlKUTFWZmpCWXlnSE1GRG12ZUNuVkVFS0U3Q3NwaGRwcE9seEpK?= =?utf-8?B?cERjNTdWdWExWGYrcC9yYjJhRXBoQ3lxdXNBVDhEczhoQ1pkdnVHY2MxQ3Nn?= =?utf-8?B?akJESzVqRnhVZVpteHdTT2hkQkdFNW5lOGYzR0VyTlZoSWZLTU9PdGhnRDhv?= =?utf-8?B?bVc5cEN3OGNvbkJOZWgwZHNoOFgzbCsreXVGTWQ1VDlNSXhCVUMzYlZBdmhE?= =?utf-8?B?dEVhUlJVYzdaMkZQMk9Wb21QUXZWSTFLaUd2bFVHVlA1MkJDeUI1UDFKZUNC?= =?utf-8?B?ZEZvUnhyQmtRSkV4YzN1UkNrTmNsWHZGSGtHN1k5eWtMV0ljL25BR2pFQnBU?= =?utf-8?B?TDE2ODRqL2M1Ykt6NUdocDF5R3B1WEJXc1hncmZiWXJaRlVxNGhIVStGNTVO?= =?utf-8?B?enhhWVZ2a3V2VHRIKzMya0o5K2xYOUNjVVlBUGg3WjkwSnpIVG5KZjFINGsr?= =?utf-8?Q?L+vkUFDXYOhpElEuWyjOOxMOzJrxxSHnk38EL4g?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAZP264MB3686.FRAP264.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(10070799003)(38070700018);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QzBZSnRtVG9iVFBFT2MxRjltb0ZucDMwb0VBTnlZcFZnS0lxNEZiMVZFRHcx?= =?utf-8?B?ZThIMkNwSHU1eGZSUkY1YnNPaEVZakcwc0crdUxzbzJIQ2Q5QlVPdE1McC8y?= =?utf-8?B?UW5nTVlpVzB0NzBVVkJOK21mdkgyYTVYS0tvSDF3WmJ0TWVjdkV4NmNqdnNU?= =?utf-8?B?c0lrU0htSTFEeG5iYmRTYUlqQ01CNmdJVm5nNXZtdDN3NlBBMlpoSnBpS28x?= =?utf-8?B?L0E4bTVNU0JxU2MrNlJMdTZqMFRmY2ZDb3RkQ0UxUmpNaTYzN1BXZlZ3bDRM?= =?utf-8?B?Q0Rzbi9SdnlOSlhCakw4Nkh2bHlwdHdTNXhjRUV3VjEwKzhzSXhYWTdjMlpB?= =?utf-8?B?TjY0MXFKUHRNdExYRTZIakllOW0wWjYzV3NtY0dpa2M5MTdkbTJmMXVEdGh3?= =?utf-8?B?M1JSaVJlVUV6V01OVW1VZ1NuMTNHTVpwVGpIbGtMNFc1a0tuME40UXE5c29n?= =?utf-8?B?VVlHWEZIQTFLVHZ6NGF3ZENIWVJ2di9kYW9PczE3TEhjeW8wNXA0NWhiclJJ?= =?utf-8?B?ZzVKbXdEOEV5TXFEdHl5WGN2V0VOVUJCMTVWY2N2MjhlK3UyOGlpY0RWdU1K?= =?utf-8?B?UThSSmp6QUVlMGEyTGU0Z1MzelUxUTdhZTZWWU0yZjJMajFRc3dTd1VwOURF?= =?utf-8?B?VU1KV2ZZb2ZZMW9PYmVHMWQyV0R5TncwclJ0aVpYd0xGdHRJQ2RSdi8xRHNR?= =?utf-8?B?Wk5pZ1lxWDBOSDh4SHExUGNjbExBNVVkTDd0cUVxMDdKNEVoMnVlNEJGdHNM?= =?utf-8?B?VW1MOXpMZTU0a0Zwd0ZYUkF0NDZ6RHZWTEhFRStXVU5pRWxraHl4UklsemVP?= =?utf-8?B?Z3IvSGlMbStIV2w5Znhid094YW1nNkgwOFA4amFsb09jSkl4WndlZEVhNkNv?= =?utf-8?B?Z2pZb2RjOEdCcjNaU3hlbkxsbVZCNTgxTll1d1drRkFRc1l4YldLQllNbTN2?= =?utf-8?B?MTNYR2RpTUd5djFLQ1RPSVE0NTVoeVVkcjVQOFloVURaWVlSRFZ5Z05pUlcx?= =?utf-8?B?d2kybWI2OVh0SUJOREUrdjJxa2dHSzZUUnEvdklYV1FHcmhVVjhDdkZZNXpC?= =?utf-8?B?RTJsekR4YUdUV2crU1EzZnhsYXVnOWVsVnMxVlNvc21DdHpIS2IzUEJja0lC?= =?utf-8?B?Mnp2VlI1aEgzc2YyYnhzSy9oZzBUcktmR0pLbGF5Ny94Z0tpY2dUTzJRbXQ2?= =?utf-8?B?YlB0MnRMUDEvQUMzMWd3SVNWVGdXRFdFajJ5TGRvRGNQV1FHTFZURmx1MXZ1?= =?utf-8?B?NTVjbVoxUjNjR3FLdS9lWGtwald6RW1uTTRCalZMQk9kMWVoREpKL01la0xm?= =?utf-8?B?QkhJVmcrNXdtRm1hZGUrVDd3bHcwQ1hVK0hHclFkcUNhd3VidGdWQmZnazYy?= =?utf-8?B?VUxGVklBQjE4QjZQaGZpT3dvTUZDdWJJMWVVa014MkZxQ3Zmc1I5ZGhWV1BJ?= =?utf-8?B?ZzlHSVUwbDZvaldGZjg4MWJxWGpjMWtMYVVYdkRpUDM1U2lWK0lnMjlWbW5L?= =?utf-8?B?eUcweWxHUDV0Z0FMKzc4RU5oVkhLbk1zWDJLZGZqMjErWlVxUkJWOEpLZWlR?= =?utf-8?B?V2ZDV2NORE9tWGphNW8zV3VPNkM3QWJkbGN2WUZSYXY1RXlqOUZnRnlDVlB0?= =?utf-8?B?clhabWxieFQ3NUF1WWg2a1UvWHd2c295cmZwMHc4LzE2bmtWajY4b3J5ODdy?= =?utf-8?B?eFpuYUl1YXd2VjNhTFdEQzZiZExRRFI0K3dMMTNMaE9KM0l6YlJKV0JXVFRo?= =?utf-8?B?MTIyNC9HMGtETDNaTTFNZkNMVXNrdDhLU0xBN1FMTFZIbnFnV3BCSGVZZWJS?= =?utf-8?B?TlFhL21nRDY1VEdTN1paWkMvZGZWQVZKT0xNQ3JFWW9MVFRtYXUzZGNybWFp?= =?utf-8?B?bmkrRXAzQ0hVOFNyTXFTNEhNTGxodXE5K0Fscm53K3B1ZHZpaGdoZGRoL1Zv?= =?utf-8?B?MWZlQUhUekdpeWlIemhyd2cxZkllSDFqWmJIblJ0US9tOFcvWXdXVmd5KzM2?= =?utf-8?B?NzBhU3JySkxLUEJ6MlZVVXQzdWk5WUZQSE5YSSt1RVNlVFo4VC9nNWNmaGxq?= =?utf-8?B?d0U1YU9jSVY4a1pxS3c0QTNiL1l3K0tFQmcwY2Jqb1ZSb1pvdjVROUM4cTE4?= =?utf-8?B?NFhwRGNyaEtMSHhwN3NNQjFzcGsrbk9hblMvY3RLMHFSWm9sM0NwektYUjhv?= =?utf-8?Q?u/fSGLSiKAMti6v5m3VL/6BAaDkFStbFZBM69P6ah5Wp?= Content-Type: text/plain; charset="utf-8" Content-ID: <122E2B17A3AB2244A1D853149D06E011@FRAP264.PROD.OUTLOOK.COM> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: groupe-cyllene.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAZP264MB3686.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 850efed9-4a80-40a1-1d91-08dcf3628a43 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Oct 2024 12:59:33.1129 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: ee11ccf7-112c-4284-848b-f229745e715b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: l0rpTateO1dqcCgIy/V1uxHVBUU/fFh4LsrqAi7Hq12J76cl82SqNK55irhdauBSzAP7eBywHYCJ75DOVWAJKmJeNDEQDkiyBE9ncW93rXOOfl9/Py5QRw/moT2RBDT9 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PASP264MB4771 X-SPAM-LEVEL: Spam detection results: 0 ARC_SIGNED 0.001 Message has a ARC signature ARC_VALID 0.001 Message has a valid ARC signature AWL -0.199 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DMARC_PASS -0.1 DMARC pass policy SPF_HELO_PASS -0.001 SPF: HELO matches SPF record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [igalia.com,plugin.pm,groupecyllene.onmicrosoft.com,cyllene.com,dirplugin.pm,linuxfound.org] SGkgRmFiaWFuLA0KDQp0aGFua3MgZm9yIHRoZSByZXZpZXcgIQ0KDQo+Pi0tLS0tLS0tIE1lc3Nh Z2UgaW5pdGlhbCAtLS0tLS0tLQ0KPj5EZTogRmFiaWFuIEdyw7xuYmljaGxlciA8Zi5ncnVlbmJp Y2hsZXJAcHJveG1veC5jb20+DQo+PsOAOiBQcm94bW94IFZFIGRldmVsb3BtZW50IGRpc2N1c3Np b24gPHB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbT4NCj4+Q2M6IEFsZXhhbmRyZSBEZXJ1bWll ciA8YWxleGFuZHJlLmRlcnVtaWVyQGdyb3VwZS1jeWxsZW5lLmNvbT4NCj4+T2JqZXQ6IFJlOiBb cHZlLWRldmVsXSBbUEFUQ0ggdjIgcHZlLXN0b3JhZ2UgMS8yXSBhZGQgZXh0ZXJuYWwNCj4+c25h c3Bob3Qgc3VwcG9ydA0KPj5EYXRlOiAyMy8xMC8yMDI0IDEyOjEyOjQ2DQo+Pg0KPj5zb21lIGhp Z2ggbGV2ZWwgY29tbWVudHM6DQo+Pg0KPj5JIGFtIG5vdCBzdXJlIGhvdyBtdWNoIHdlIGdhaW4g aGVyZSB3aXRoIHRoZSByYXcgc3VwcG9ydD8NCg0KVGhleSBhcmUgcmVhbGx5IHFjb3cyIG92ZXJo ZWFkLCBtb3N0bHkgd2l0aCBiaWcgZGlzay4NCmFzIGZvciBnb29kIHBlcmZvcm1hbmNlLCB0aGUg cWNvdzIgbDItY2FjaGUtc2l6ZSBuZWVkIHRvIGJlIGtlZXBlZCBpbg0KbWVtb3J5IChhbmQgaXQn cyAxTUIgYnkgZGlzaykNCmh0dHBzOi8vZXZlbnRzLnN0YXRpYy5saW51eGZvdW5kLm9yZy9zaXRl cy9ldmVudHMvZmlsZXMvc2xpZGVzL2t2bS1mb3J1bS0yMDE3LXNsaWRlcy5wZGYNCg0KSG9wZWZ1 bGx5LCB0aGV5IGFyZSBpbXByb3ZtZW50cyB3aXRoIHRoZSAibmV3IiBzdWItY2x1c3RlciBmZWF0 dXJlDQpodHRwczovL3Blb3BsZS5pZ2FsaWEuY29tL2JlcnRvL2ZpbGVzL2t2bS1mb3J1bS0yMDIw LXNsaWRlcy5wZGYNCkknbSBhbHJlYWR5IHVzaW5nIGl0IGF0IHNuYXBzaG90IGNyZWF0ZSwgYnV0 IEkgdGhpbmsgd2Ugc2hvdWxkIGFsc28gdXNlDQppdCBmb3IgbWFpbiBxY293MiB2b2x1bWUuDQoN Cg0KQnV0IGV2ZW4gd2l0aCB0aGF0LCB5b3UgY2FuIHN0aWxsIGhhdmUgcGVyZm9ybWFuY2UgaW1w YWN0Lg0KU28geWVzLCBJIHRoaW5rIHRoZXkgYXJlIHJlYWxseSB1c2VjYXNlIGZvciB3b3JrbG9h ZCB3aGVuIHlvdSBvbmx5IG5lZWQNCnNuYXBzaG90IHRpbWUgdG8gdGltZSAoYmVmb3JlIGFuIHVw Z3JhZGUgZm9yIGV4YW1wbGUpLCBidXQgbWF4DQpwZXJmb3JtYW5jZSB3aXRoIG5vIHNuYXBob3Qg ZXhpc3QuDQoNCg0KDQo+PiBpdCdzIGEgYml0IGNvbmZ1c2luZyB0byBoYXZlIGEgdm9saWQgZW5k aW5nIHdpdGggcmF3LCB3aXRoIHRoZQ0KPj5jdXJyZW50IHZvbHVtZSBhbmQgYWxsIGJ1dCB0aGUg Zmlyc3Qgc25hcHNob3QgYWN0dWFsbHkgYmVpbmcgc3RvcmVkDQo+PmluIHFjb3cyIGZpbGVzLCB3 aXRoIHRoZSByYXcgZmlsZSBiZWluZyB0aGUgIm9sZGVzdCIgc25hcHNob3QgaW4gdGhlDQo+PmNo YWluLi4NCmlmIGl0J3MgdG9vIGNvbmZ1c2luZywgd2UgY291bGQgdXNlIGZvciBleGFtcGxlIGFu IC5zbmFwIGV4dGVuc2lvbi4NCihhcyB3ZSBrbm93biB0aGF0IGl0J3MgcWNvdzIgYmVoaW5kKQ0K DQoNCmlmIHBvc3NpYmxlLCBJJ2QgYmUgbXVjaCBoYXBwaWVyIHdpdGggdGhlIHNuYXBzaG90IG5h bWUgaW4gdGhlIHNuYXBzaG90DQpmaWxlIGJlaW5nIGEgMToxIG1hdGNoLCBzZWUgY29tbWVudHMg aW5saW5lDQoNCj4+LSBtYWtlcyBpdCBhIGxvdCBlYXNpZXIgdG8gdW5kZXJzdGFuZCAoYWRtaW4g d2FudHMgdG8gbWFudWFsbHkgcmVtb3ZlDQo+PnNuYXBzaG90ICJmb28iLCBpZiAiZm9vIiB3YXMg dGhlIGxhc3Qgc25hcHNob3QgdGhlbiByaWdodCBub3cgdGhlDQo+PnZvbHVtZSBjYWxsZWQgImZv byIgaXMgYWN0dWFsbHkgdGhlIGN1cnJlbnQgY29udGVudHMhKQ0KDQpUaGlzIHBhcnQgaXMgcmVh bGx5IGRpZmZpY3VsdCwgYmVjYXVzZSB5b3UgY2FuJ3Qga25vd24gaW4gYWR2YW5jZSB0aGUNCm5h bWUgb2YgdGhlIHNuYXBzaG90IHlvdSdsbCB0YWtlIGluIHRoZSBmdXR1cmUuIFRoZSBvbmx5IHdh eSBjb3VsZCBiZQ0KdG8gY3JlYXRlIGEgImN1cnJlbnQiIHZvbHVtZSAsICByZW5hbWUgaXQgd2hl biB5b3UgdG9vayBhbm90aGVyDQpzbmFzcGhvdCAoSSdtIG5vdCBzdXJlIGl0J3MgcG9zc2libGUg dG8gZG8gaXQgbGl2ZSwNCmFuZCB0aGlzIGNvdWxkIGJyZWFrIGxpbmsgY2hhaW4gdG9vKQ0KDQpB bHNvLCBJIGRvbid0IGtub3duIGhvdyB0byBtYW5hZ2UgdGhlIG1haW4gdm9sdW1lLCB3aGVuIHlv dSB0YWtlIHRoZQ0KZmlyc3Qgc25hcHNob3QgPyB3ZSBzaG91bGQgcmVuYW1lIGl0IHRvby4NCg0K c28gInZtLWRpc2stMTAwLWRpc2stMC5yYXd8cWNvdzIiICAsIGJlY29tZSAidm0tZGlzay0xMDAt ZGlzay0wLQ0Kc25hcDEuKHJhd3xxY293MikiICsgbmV3ICJ2bS1kaXNrLTEwMC1kaXNrLTAtY3Vy cmVudC5xY293MiIgPw0KDQoNCkknbGwgdHJ5IHRvIGRvIHRlc3QgYWdhaW4gdG8gc2VlIHdoYXQg aXMgcG9zc2libGUuDQoNCg0KDQoNCj4+LSBtZWFucyB3ZSBkb24ndCBoYXZlIHRvIGRvIGxvb2t1 cHMgdmlhIHRoZSBmdWxsIHNuYXBzaG90IGxpc3QgYWxsDQo+PnRoZSB0aW1lIChlLmcuLCBpZiBJ IHdhbnQgdG8gZG8gYSBmdWxsIGNsb25lIGZyb20gYSBzbmFwc2hvdCAiZm9vIiwgSQ0KPj5jYW4g anVzdCBwYXNzIHRoZSBzbmFwLWZvbyB2b2x1bWUgdG8gcWVtdS1pbWcpDQoNCm9rIGdvdCBpdA0K DQoNCg0KPj50aGUgbmFtaW5nIHNjaGVtZSBmb3Igc25hcHNob3RzIG5lZWRzIHRvIGJlIGFkYXB0 ZWQgdG8gbm90IGNsYXNoIHdpdGgNCj4+cmVndWxhciB2b2x1bWVzOg0KDQo+PiQgcHZlc20gYWxs b2MgZXh0c25hcCAxMzEzMTQgdm0tMTMxMzE0LWRpc2stZm9vYmFyLnFjb3cyIDJHDQo+PkZvcm1h dHRpbmcgJy9tbnQvcHZlL2V4dDQvZXh0c25hcC9pbWFnZXMvMTMxMzE0L3ZtLTEzMTMxNC1kaXNr LQ0KPj5mb29iYXIucWNvdzInLCBmbXQ9cWNvdzIgY2x1c3Rlcl9zaXplPTY1NTM2IGV4dGVuZGVk X2wyPW9mZg0KPj5wcmVhbGxvY2F0aW9uPW9mZiBjb21wcmVzc2lvbl90eXBlPXpsaWIgc2l6ZT0y MTQ3NDgzNjQ4DQo+PmxhenlfcmVmY291bnRzPW9mZiByZWZjb3VudF9iaXRzPTE2DQo+PnN1Y2Nl c3NmdWxseSBjcmVhdGVkICdleHRzbmFwOjEzMTMxNC92bS0xMzEzMTQtZGlzay1mb29iYXIucWNv dzInDQo+PiQgcW0gcmVzY2FuIC0tdm1pZCAxMzEzMTQNCj4+cmVzY2FuIHZvbHVtZXMuLi4NCj4+ Y2FuJ3QgcGFyc2Ugc25hcG5hbWUgZnJvbSBwYXRoIGF0DQo+Pi91c3Ivc2hhcmUvcGVybDUvUFZF L1N0b3JhZ2UvUGx1Z2luLnBtIGxpbmUgMTkzNC4NCg0KYW55IHByZWZlcmVuY2UgZm9yIG5hbWlu ZyBzY2hlbWUgPyBmb3IgbHZtIGV4dGVybmFsIHNuYXAsIEkgaGF2ZSB1c2VkDQoidm0tMTMxMzE0 LWRpc2stMC1zbmFwLTxmb29iYXI+IjsNCg0KPj5zdG9yYWdlX21pZ3JhdGUgbmVlZHMgdG8gaGFu ZGxlIGV4dGVybmFsIHNuYXBzaG90cywgb3IgYXQgbGVhc3QgZXJyb3INCj4+b3V0LsKgDQppdCBz aG91bGQgYWxyZWFkeSB3b3JrLiAoSSBoYXZlIHRlc3RlZCBtb3ZlX2Rpc2ssIGFuZCBsaXZlIG1p Z3JhdGlvbiArDQpzdG9yYWdlIG1pZ3JhdGlvbikuIHFlbXVfaW1nX2NvbnZlcnQgb2ZmbGluZSBh bmQgcWVtdSBibG9jayBqb2IgZm9yDQpsaXZlLg0KDQoNCj4+SSBoYXZlbid0IHRlc3RlZCB0aGF0 IHBhcnQgb3IgbGlua2VkIGNsb25lcyBvciBhIGxvdCBvZiBvdGhlcg0KPj5hZHZhbmNlZCByZWxh dGVkIGFjdGlvbnMgYXQgYWxsIDspDQoNCkZvciBsaW5rZWQgY2xvbmUsIHdlIGNhbid0IGhhdmUg YSBiYXNlIGltYWdlIHdpdGggc25hcHNob3RzIChvdGhlciB0aGFuDQpfYmFzZV8pLiBzbyBJdCds bCBiZSBzYWZlLg0KDQoNCg0KPiBBbGV4YW5kcmUgRGVydW1pZXIgdmlhIHB2ZS1kZXZlbCA8cHZl LWRldmVsQGxpc3RzLnByb3htb3guY29tPiBoYXQgYW0NCj4gMzAuMDkuMjAyNCAxMzozMSBDRVNU IGdlc2NocmllYmVuOg0KPiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgRGVydW1pZXIgPGFsZXhh bmRyZS5kZXJ1bWllckBncm91cGUtDQo+IGN5bGxlbmUuY29tPg0KPiAtLS0NCj4gwqBzcmMvUFZF L1N0b3JhZ2UvRGlyUGx1Z2luLnBtIHzCoMKgIDEgKw0KPiDCoHNyYy9QVkUvU3RvcmFnZS9QbHVn aW4ucG3CoMKgwqAgfCAyMjUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tDQo+IC0t DQo+IMKgMiBmaWxlcyBjaGFuZ2VkLCAyMDEgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0p DQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3JjL1BWRS9TdG9yYWdlL0RpclBsdWdpbi5wbQ0KPiBiL3Ny Yy9QVkUvU3RvcmFnZS9EaXJQbHVnaW4ucG0NCj4gaW5kZXggMmVmYThkNS4uMmJlZjY3MyAxMDA2 NDQNCj4gLS0tIGEvc3JjL1BWRS9TdG9yYWdlL0RpclBsdWdpbi5wbQ0KPiArKysgYi9zcmMvUFZF L1N0b3JhZ2UvRGlyUGx1Z2luLnBtDQo+IEBAIC04MCw2ICs4MCw3IEBAIHN1YiBvcHRpb25zIHsN Cj4gwqAgaXNfbW91bnRwb2ludCA9PiB7IG9wdGlvbmFsID0+IDEgfSwNCj4gwqAgYndsaW1pdCA9 PiB7IG9wdGlvbmFsID0+IDEgfSwNCj4gwqAgcHJlYWxsb2NhdGlvbiA9PiB7IG9wdGlvbmFsID0+ IDEgfSwNCj4gKyBzbmFwZXh0ID0+IHsgb3B0aW9uYWwgPT4gMSB9LA0KPiDCoMKgwqAgfTsNCj4g wqB9DQo+IMKgDQo+IGRpZmYgLS1naXQgYS9zcmMvUFZFL1N0b3JhZ2UvUGx1Z2luLnBtIGIvc3Jj L1BWRS9TdG9yYWdlL1BsdWdpbi5wbQ0KPiBpbmRleCA2NDQ0MzkwLi41ZTUxOTdhIDEwMDY0NA0K PiAtLS0gYS9zcmMvUFZFL1N0b3JhZ2UvUGx1Z2luLnBtDQo+ICsrKyBiL3NyYy9QVkUvU3RvcmFn ZS9QbHVnaW4ucG0NCj4gQEAgLTIxNCw2ICsyMTQsMTEgQEAgbXkgJGRlZmF1bHREYXRhID0gew0K PiDCoCDCoMKgwqAgbWF4aW11bSA9PiA2NTUzNSwNCj4gwqAgwqDCoMKgIG9wdGlvbmFsID0+IDEs DQo+IMKgIH0sDQo+ICvCoMKgwqDCoMKgwqDCoCAnc25hcGV4dCcgPT4gew0KPiArIMKgwqDCoCB0 eXBlID0+ICdib29sZWFuJywNCj4gKyDCoMKgwqAgZGVzY3JpcHRpb24gPT4gJ2VuYWJsZSBleHRl cm5hbCBzbmFwc2hvdC4nLA0KPiArIMKgwqDCoCBvcHRpb25hbCA9PiAxLA0KPiArwqDCoMKgwqDC oMKgwqAgfSwNCj4gwqDCoMKgwqAgfSwNCj4gwqB9Ow0KPiDCoA0KPiBAQCAtNjk1LDcgKzcwMCw3 IEBAIHN1YiBnZXRfc3ViZGlyIHsNCj4gwqB9DQo+IMKgDQo+IMKgc3ViIGZpbGVzeXN0ZW1fcGF0 aCB7DQo+IC3CoMKgwqAgbXkgKCRjbGFzcywgJHNjZmcsICR2b2xuYW1lLCAkc25hcG5hbWUpID0g QF87DQo+ICvCoMKgwqAgbXkgKCRjbGFzcywgJHNjZmcsICR2b2xuYW1lLCAkc25hcG5hbWUsICRj dXJyZW50X3NuYXApID0gQF87DQoNCnNlZSBjb21tZW50IGJlbG93DQoNCj4gwqANCj4gwqDCoMKg wqAgbXkgKCR2dHlwZSwgJG5hbWUsICR2bWlkLCB1bmRlZiwgdW5kZWYsICRpc0Jhc2UsICRmb3Jt YXQpID0NCj4gwqAgJGNsYXNzLT5wYXJzZV92b2xuYW1lKCR2b2xuYW1lKTsNCj4gQEAgLTcwMyw3 ICs3MDgsNyBAQCBzdWIgZmlsZXN5c3RlbV9wYXRoIHsNCj4gwqDCoMKgwqAgIyBOb3RlOiBxY293 Mi9xZWQgaGFzIGludGVybmFsIHNuYXBzaG90LCBzbyBwYXRoIGlzIGFsd2F5cw0KPiDCoMKgwqDC oCAjIHRoZSBzYW1lICh3aXRoIG9yIHdpdGhvdXQgc25hcHNob3QgPT4gc2FtZSBmaWxlKS4NCj4g wqDCoMKgwqAgZGllICJjYW4ndCBzbmFwc2hvdCB0aGlzIGltYWdlIGZvcm1hdFxuIg0KPiAtIGlm IGRlZmluZWQoJHNuYXBuYW1lKSAmJiAkZm9ybWF0ICF+IG0vXihxY293MnxxZWQpJC87DQo+ICsg aWYgZGVmaW5lZCgkc25hcG5hbWUpICYmICEkc2NmZy0+e3NuYXBleHR9ICYmICRmb3JtYXQgIX4N Cj4gbS9eKHFjb3cyfHFlZCkkLzsNCj4gwqANCj4gwqDCoMKgwqAgbXkgJGRpciA9ICRjbGFzcy0+ Z2V0X3N1YmRpcigkc2NmZywgJHZ0eXBlKTsNCj4gwqANCj4gQEAgLTcxMSwxMyArNzE2LDIyIEBA IHN1YiBmaWxlc3lzdGVtX3BhdGggew0KPiDCoA0KPiDCoMKgwqDCoCBteSAkcGF0aCA9ICIkZGly LyRuYW1lIjsNCj4gwqANCj4gK8KgwqDCoCBpZigkc2NmZy0+e3NuYXBleHR9KSB7DQo+ICsgbXkg JHNuYXBwYXRoID0gZ2V0X3NuYXBfcGF0aCgkcGF0aCwgJHNuYXBuYW1lKTsNCj4gKyBpZigkc25h cG5hbWUpIHsNCj4gKyDCoMKgwqAgJHBhdGggPSAkc25hcHBhdGg7DQo+ICsgfSBlbHNpZiAoJGN1 cnJlbnRfc25hcCkgew0KPiArIMKgwqDCoCAkcGF0aCA9ICRjdXJyZW50X3NuYXAtPntmaWxlfTsN Cj4gKyB9DQo+ICvCoMKgwqAgfQ0KDQpzZWUgY29tbWVudGUgYmVsb3cNCg0KPiDCoMKgwqDCoCBy ZXR1cm4gd2FudGFycmF5ID8gKCRwYXRoLCAkdm1pZCwgJHZ0eXBlKSA6ICRwYXRoOw0KPiDCoH0N Cj4gwqANCj4gwqBzdWIgcGF0aCB7DQo+IMKgwqDCoMKgIG15ICgkY2xhc3MsICRzY2ZnLCAkdm9s bmFtZSwgJHN0b3JlaWQsICRzbmFwbmFtZSkgPSBAXzsNCj4gwqANCj4gLcKgwqDCoCByZXR1cm4g JGNsYXNzLT5maWxlc3lzdGVtX3BhdGgoJHNjZmcsICR2b2xuYW1lLCAkc25hcG5hbWUpOw0KPiAr wqDCoMKgIG15ICRjdXJyZW50X3NuYXBzaG90ID0gJGNsYXNzLT5nZXRfY3VycmVudF9zbmFwc2hv dCgkc2NmZywNCj4gJHN0b3JlaWQsICR2b2xuYW1lKTsNCg0KPj50aGlzIGlzIHByZXR0eSBleHBl bnNpdmUsIGFuZCB3b3VsZCBvbmx5IGJlIG5lZWRlZCBpZiAkc25hcG5hbWUgaXMNCj4+bm90IHNl dC4uDQoNClRoZSBtYWluIHByb2JsZW0gaXMgd2hlbiB5b3Ugc3RhcnQgYSB2bSBvbiBhIHNwZWNp ZmljIHNuYXNwaG90LA0Kd2UgZG9uJ3Qgc2VuZCB0aGUgJHNuYXBuYW1lIHBhcmFtLg0KDQpPbmUg d2F5IGNvdWxkIGJlIHRoYXQgcWVtdS1zZXJ2ZXIgY2hlY2sgdGhlIGN1cnJlbnQgc25hcHNob3Qg ZnJvbQ0KY29uZmlnIHdoZW4gZG9pbmcgc3BlY2lmaWMgYWN0aW9uIGxpa2Ugc3RhcnQuDQoNCg0K DQoNCg0KPiArwqDCoMKgIHJldHVybiAkY2xhc3MtPmZpbGVzeXN0ZW1fcGF0aCgkc2NmZywgJHZv bG5hbWUsICRzbmFwbmFtZSwNCj4gJGN1cnJlbnRfc25hcHNob3QpOw0KDQo+PmNvdWxkbid0IHdl IGF2b2lkIGV4dGVuZGluZyB0aGUgc2lnbmF0dXJlIG9mIGZpbGVzeXN0ZW1fcGF0aCBhbmQganVz dA0KcGFzcyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBzbmFwc2hvdCBhcyAkc25hcG5hbWU/DQoN CkkgbmVlZCB0byByZWRvIHRlc3QsIEkgZG9uJ3QgcmVtZW1iZXIgd2h5IEkgaGF2ZSBzcGxpdHRl ZCB0aGVtLCBidXQgeW91DQphcmUgcmlnaHQsIGl0IHNob3VsZCBiZSBjbGVhbmVyLg0KDQo+IMKg fQ0KPiDCoA0KPiDCoHN1YiBjcmVhdGVfYmFzZSB7DQo+IEBAIC0xMDc0LDEzICsxMDg4LDMxIEBA IHN1YiB2b2x1bWVfcmVzaXplIHsNCj4gwqBzdWIgdm9sdW1lX3NuYXBzaG90IHsNCj4gwqDCoMKg wqAgbXkgKCRjbGFzcywgJHNjZmcsICRzdG9yZWlkLCAkdm9sbmFtZSwgJHNuYXApID0gQF87DQo+ IMKgDQo+IC3CoMKgwqAgZGllICJjYW4ndCBzbmFwc2hvdCB0aGlzIGltYWdlIGZvcm1hdFxuIiBp ZiAkdm9sbmFtZSAhfg0KPiBtL1wuKHFjb3cyfHFlZCkkLzsNCj4gK8KgwqDCoCBkaWUgImNhbid0 IHNuYXBzaG90IHRoaXMgaW1hZ2UgZm9ybWF0XG4iIGlmICR2b2xuYW1lICF+DQo+IG0vXC4ocmF3 fHFjb3cyfHFlZCkkLzsNCj4gwqANCj4gLcKgwqDCoCBteSAkcGF0aCA9ICRjbGFzcy0+ZmlsZXN5 c3RlbV9wYXRoKCRzY2ZnLCAkdm9sbmFtZSk7DQo+ICvCoMKgwqAgZGllICJleHRlcm5hbCBzbmFw c2hvdCBuZWVkIHRvIGJlIGVuYWJsZWQgdG8gc25hcHNob3QgLnJhdw0KPiB2b2x1bWVzXG4iIGlm ICEkc2NmZy0+e3NuYXBleHR9Ow0KDQo+PnRoaXMgY29uZGl0aW9uIGlzIGRlZmluaXRlbHkgd3Jv bmcgLSBpdCBtZWFucyBubyBtb3JlIHNuYXBzaG90dGluZw0KPj51bmxlc3MgZXh0ZXJuYWwgc25h cHNob3Qgc3VwcG9ydCBpcyBlbmFibGVkLi4NCg0Kb29wcywgc29ycnkuDQoNCj4gwqANCj4gLcKg wqDCoCBteSAkY21kID0gWycvdXNyL2Jpbi9xZW11LWltZycsICdzbmFwc2hvdCcsJy1jJywgJHNu YXAsICRwYXRoXTsNCj4gK8KgwqDCoCBpZigkc2NmZy0+e3NuYXBleHR9KSB7DQo+IMKgDQo+IC3C oMKgwqAgcnVuX2NvbW1hbmQoJGNtZCk7DQo+ICsgbXkgJHBhdGggPSAkY2xhc3MtPnBhdGgoJHNj ZmcsICR2b2xuYW1lLCAkc3RvcmVpZCk7DQo+ICsNCj4gKyBteSAkc25hcHBhdGggPSBnZXRfc25h cF9wYXRoKCRwYXRoLCAkc25hcCk7DQo+ICsgbXkgJGZvcm1hdCA9ICgkY2xhc3MtPnBhcnNlX3Zv bG5hbWUoJHZvbG5hbWUpKVs2XTsNCj4gKw0KPiArIG15ICRjbWQgPSBbJy91c3IvYmluL3FlbXUt aW1nJywgJ2NyZWF0ZScsICctYicsICRwYXRoLA0KPiArIMKgwqAgJy1GJywgJGZvcm1hdCwgJy1m JywgJ3Fjb3cyJywgJHNuYXBwYXRoXTsNCg0KPj5zZWUgY29tbWVudHMgb24gcWVtdS1zZXJ2ZXIs IGJ1dC4uIHdvdWxkbid0IGl0IGJlIGJldHRlciBpZiB0aGUgZmlsZQ0KPj53aXRoICRzbmFwIGlu IGl0cyBuYW1lIHdvdWxkIGJlIHRoZSBvbmUgc3RvcmluZyB0aGF0IHNuYXBzaG90J3MgZGF0YT8N Cj4+aS5lLiwgcmVuYW1lIHRoZSAiY3VycmVudCIgdm9sdW1lIHRvIGJlIGNhbGxlZCAuLi4tJHNu YXAuLi4gLCBhbmQNCj4+dGhlbiBjcmVhdGUgYSBuZXcgImN1cnJlbnQiIGZpbGUgd2l0aG91dCBh IHN1ZmZpeCB3aXRoIHRoZSByZW5hbWVkDQo+PnZvbHVtZSBhcyBiYWNraW5nIGZpbGU/DQoNCkkn bGwgdHJ5IGl0ICENCg0KPiArDQo+ICsgbXkgJG9wdGlvbnMgPSAiZXh0ZW5kZWRfbDI9b24sIjsN Cj4gKyAkb3B0aW9ucyAuPSBwcmVhbGxvY2F0aW9uX2NtZF9vcHRpb24oJHNjZmcsICdxY293Micp Ow0KPiArIHB1c2ggQCRjbWQsICctbycsICRvcHRpb25zOw0KPiArIHJ1bl9jb21tYW5kKCRjbWQp Ow0KPiArDQo+ICvCoMKgwqAgfSBlbHNlIHsNCj4gKw0KPiArIG15ICRwYXRoID0gJGNsYXNzLT5m aWxlc3lzdGVtX3BhdGgoJHNjZmcsICR2b2xuYW1lKTsNCj4gKyBteSAkY21kID0gWycvdXNyL2Jp bi9xZW11LWltZycsICdzbmFwc2hvdCcsJy1jJywgJHNuYXAsICRwYXRoXTsNCj4gKyBydW5fY29t bWFuZCgkY21kKTsNCj4gK8KgwqDCoCB9DQo+IMKgDQo+IMKgwqDCoMKgIHJldHVybiB1bmRlZjsN Cj4gwqB9DQo+IEBAIC0xMDkxLDE5ICsxMTIzLDM5IEBAIHN1YiB2b2x1bWVfc25hcHNob3Qgew0K PiDCoHN1YiB2b2x1bWVfcm9sbGJhY2tfaXNfcG9zc2libGUgew0KPiDCoMKgwqDCoCBteSAoJGNs YXNzLCAkc2NmZywgJHN0b3JlaWQsICR2b2xuYW1lLCAkc25hcCwgJGJsb2NrZXJzKSA9IEBfOw0K PiDCoA0KPiArwqDCoMKgIGlmICgkc2NmZy0+e3NuYXBleHR9KSB7DQo+ICsgI3RlY2huaWNhbGx5 LCB3ZSBjb3VsZCBtYW5hZ2UgbXVsdGlicmFuY2gsIHdlIGl0IG5lZWQgbG90IG1vcmUgd29yaw0K PiBmb3Igc25hcHNob3QgZGVsZXRlDQoNCj4+d291bGQgbXVsdGlicmFuY2ggYmUgZWFzaWVyIGlm IHRoZXJlIGlzIGEgc2ltcGxlIDE6MSBjb3JyZXNwb25kZW5jZQ0KPj5iZXR3ZWVuIHNuYXBzaG90 cyBhbmQgdGhlaXIgZmlsZW5hbWVzPw0KPj4NCj4+c3dpdGNoaW5nIHRvIGEgZGlmZmVyZW50IHBh cnQgb2YgdGhlICJoaWVyYXJjaHkiIGlzIHRoZW4ganVzdA0KPj4tIGRlbGV0ZSBjdXJyZW50IHZv bHVtZQ0KPj4tIGNyZWF0ZSBuZXcgY3VycmVudCB2b2x1bWUgdXNpbmcgcm9sbGJhY2sgdGFyZ2V0 IGFzIGJhY2tpbmcgZmlsZQ0KdGhlIHJvbGxiYWNrL2JyYW5jaCBzd2l0Y2ggaXMgbm90IHRvbyBk aWZmaWN1bHQsIG1heWJlIDE6MSBuYW1pbmcgY291bGQNCmhlbHAuDQoNCj4+SSBndWVzcyBkZWxl dGlvbiBkb2VzIGJlY29tZSBoYXJkZXIgdGhlbiwgc2luY2UgaXQgcG90ZW50aWFsbHkNCj4+cmVx dWlyZXMgbXVsdGlwbGUgcmViYXNlcy4uDQoNCnllcywgVGhlIGJpZ2dlc3QgZGlmZmljdWx0eSBp cyBzbmFwc2hvdCBkZWxldGUsIGFzIHlvdSBuZWVkIHRvIGNyZWF0ZSBhDQpibG9jay1zdHJlYW0g IGpvYiwgbWVyZ2luL3dyaXRpbmcgdG8gZWFjaCBicmFuY2ggY2hpbGQsIGFuZCB5b3UgbmVlZCB0 bw0KZG8gaXQgYXRvbWljYWxseSB3aXRoIGEgdHJhbnNhY3Rpb24gd2l0aCBtdWx0aXBsZSBqb2Jz LiANClNvIHllcywgaXQncyBwb3NzaWJsZSwgYnV0IEkgd2FudGVkIHRvIGtlZXAgaXQgZWFzeSBm b3Igbm93Lg0KDQo+ICsgbXkgJHBhdGggPSAkY2xhc3MtPmZpbGVzeXN0ZW1fcGF0aCgkc2NmZywg JHZvbG5hbWUpOw0KPiArIG15ICRzbmFwcGF0aCA9IGdldF9zbmFwX3BhdGgoJHBhdGgsICRzbmFw KTsNCj4gKw0KPiArIG15ICRzbmFwc2hvdHMgPSAkY2xhc3MtPnZvbHVtZV9zbmFwc2hvdF9pbmZv KCRzY2ZnLCAkc3RvcmVpZCwNCj4gJHZvbG5hbWUpOw0KPiArIG15ICRjdXJyZW50cGF0aCA9ICRz bmFwc2hvdHMtPntjdXJyZW50fS0+e2ZpbGV9Ow0KPiArIHJldHVybiAxIGlmICEtZSAkc25hcHBh dGggfHwgJGN1cnJlbnRwYXRoIGVxICRzbmFwcGF0aDsNCj4gKw0KPiArIGRpZSAiY2FuJ3Qgcm9s bGJhY2ssICckc25hcCcgaXMgbm90IG1vc3QgcmVjZW50IHNuYXBzaG90IG9uDQo+ICckdm9sbmFt ZSdcbiI7DQo+ICvCoMKgwqAgfQ0KPiArDQo+IMKgwqDCoMKgIHJldHVybiAxOw0KPiDCoH0NCj4g wqANCj4gwqBzdWIgdm9sdW1lX3NuYXBzaG90X3JvbGxiYWNrIHsNCj4gwqDCoMKgwqAgbXkgKCRj bGFzcywgJHNjZmcsICRzdG9yZWlkLCAkdm9sbmFtZSwgJHNuYXApID0gQF87DQo+IMKgDQo+IC3C oMKgwqAgZGllICJjYW4ndCByb2xsYmFjayBzbmFwc2hvdCB0aGlzIGltYWdlIGZvcm1hdFxuIiBp ZiAkdm9sbmFtZSAhfg0KPiBtL1wuKHFjb3cyfHFlZCkkLzsNCj4gK8KgwqDCoCBkaWUgImNhbid0 IHJvbGxiYWNrIHNuYXBzaG90IHRoaXMgaW1hZ2UgZm9ybWF0XG4iIGlmICR2b2xuYW1lICF+DQo+ IG0vXC4ocmF3fHFjb3cyfHFlZCkkLzsNCj4gwqANCj4gLcKgwqDCoCBteSAkcGF0aCA9ICRjbGFz cy0+ZmlsZXN5c3RlbV9wYXRoKCRzY2ZnLCAkdm9sbmFtZSk7DQo+ICvCoMKgwqAgZGllICJleHRl cm5hbCBzbmFwc2hvdCBuZWVkIHRvIGJlIGVuYWJsZWQgdG8gcm9sbGJhY2sgc25hcHNob3QNCj4g LnJhdyB2b2x1bWVzXG4iIGlmICR2b2xuYW1lID1+IG0vXC4ocmF3KSQvICYmICEkc2NmZy0+e3Nu YXBleHR9Ow0KPiDCoA0KPiAtwqDCoMKgIG15ICRjbWQgPSBbJy91c3IvYmluL3FlbXUtaW1nJywg J3NuYXBzaG90JywnLWEnLCAkc25hcCwgJHBhdGhdOw0KPiArwqDCoMKgIG15ICRwYXRoID0gJGNs YXNzLT5maWxlc3lzdGVtX3BhdGgoJHNjZmcsICR2b2xuYW1lKTsNCj4gwqANCj4gLcKgwqDCoCBy dW5fY29tbWFuZCgkY21kKTsNCj4gK8KgwqDCoCBpZiAoJHNjZmctPntzbmFwZXh0fSkgew0KPiAr ICNzaW1wbHkgZGVsZXRlIHRoZSBjdXJyZW50IHNuYXBzaG90IGFuZCByZWNyZWF0ZSBpdA0KPiAr IG15ICRzbmFwcGF0aCA9IGdldF9zbmFwX3BhdGgoJHBhdGgsICRzbmFwKTsNCj4gKyB1bmxpbmso JHNuYXBwYXRoKTsNCj4gKyAkY2xhc3MtPnZvbHVtZV9zbmFwc2hvdCgkc2NmZywgJHN0b3JlaWQs ICR2b2xuYW1lLCAkc25hcCk7DQoNCnRoaXMgKnJlYWRzKiBzbyB3ZWlyZCA7KSBpdCBpcyByaWdo dCBnaXZlbiB0aGUgY3VycmVudCBzZW1hbnRpY3MNCihjdXJyZW50IHNuYXBzaG90ID09IGxpdmUg aW1hZ2UsIHNuYXBzaG90IGRhdGEgYWN0dWFsbHkgc3RvcmVkIGluDQpwYXJlbnQgc25hcHNob3Qp DQoNCj4gK8KgwqDCoCB9IGVsc2Ugew0KPiArIG15ICRjbWQgPSBbJy91c3IvYmluL3FlbXUtaW1n JywgJ3NuYXBzaG90JywnLWEnLCAkc25hcCwgJHBhdGhdOw0KPiArIHJ1bl9jb21tYW5kKCRjbWQp Ow0KPiArwqDCoMKgIH0NCj4gwqANCj4gwqDCoMKgwqAgcmV0dXJuIHVuZGVmOw0KPiDCoH0NCj4g QEAgLTExMTEsMTcgKzExNjMsNTAgQEAgc3ViIHZvbHVtZV9zbmFwc2hvdF9yb2xsYmFjayB7DQo+ IMKgc3ViIHZvbHVtZV9zbmFwc2hvdF9kZWxldGUgew0KPiDCoMKgwqDCoCBteSAoJGNsYXNzLCAk c2NmZywgJHN0b3JlaWQsICR2b2xuYW1lLCAkc25hcCwgJHJ1bm5pbmcpID0gQF87DQo+IMKgDQo+ IC3CoMKgwqAgZGllICJjYW4ndCBkZWxldGUgc25hcHNob3QgZm9yIHRoaXMgaW1hZ2UgZm9ybWF0 XG4iIGlmICR2b2xuYW1lDQo+ICF+IG0vXC4ocWNvdzJ8cWVkKSQvOw0KPiArwqDCoMKgIGRpZSAi Y2FuJ3QgZGVsZXRlIHNuYXBzaG90IGZvciB0aGlzIGltYWdlIGZvcm1hdFxuIiBpZiAkdm9sbmFt ZQ0KPiAhfiBtL1wuKHJhd3xxY293MnxxZWQpJC87DQo+ICsNCj4gK8KgwqDCoCBkaWUgImV4dGVy bmFsIHNuYXBzaG90IG5lZWQgdG8gYmUgZW5hYmxlZCB0byBkZWxldGUgc25hcHNob3Qgb2YNCj4g LnJhdyB2b2x1bWVzXG4iIGlmICEkc2NmZy0+e3NuYXBleHR9Ow0KPiDCoA0KPiDCoMKgwqDCoCBy ZXR1cm4gMSBpZiAkcnVubmluZzsNCj4gwqANCj4gLcKgwqDCoCBteSAkcGF0aCA9ICRjbGFzcy0+ ZmlsZXN5c3RlbV9wYXRoKCRzY2ZnLCAkdm9sbmFtZSk7DQo+ICvCoMKgwqAgbXkgJGNtZCA9ICIi Ow0KPiArwqDCoMKgIGlmICgkc2NmZy0+e3NuYXBleHR9KSB7DQo+ICsNCj4gKyBteSAkc25hcHNo b3RzID0gJGNsYXNzLT52b2x1bWVfc25hcHNob3RfaW5mbygkc2NmZywgJHN0b3JlaWQsDQo+ICR2 b2xuYW1lKTsNCj4gKyBteSAkc25hcHBhdGggPSAkc25hcHNob3RzLT57JHNuYXB9LT57ZmlsZX07 DQo+ICsgcmV0dXJuIGlmICEtZSAkc25hcHBhdGg7wqAgI2FscmVhZHkgZGVsZXRlZCA/DQo+ICsN Cj4gKyBteSAkcGFyZW50c25hcCA9ICRzbmFwc2hvdHMtPnskc25hcH0tPntwYXJlbnR9Ow0KPiAr IG15ICRjaGlsZHNuYXAgPSAkc25hcHNob3RzLT57JHNuYXB9LT57Y2hpbGR9Ow0KPiArwqDCoMKg wqDCoMKgwqAgZGllICJlcnJvcjogY2FuJ3QgZmluZCBhIHBhcmVudCBmb3IgdGhpcyBzbmFwc2hv dCIgaWYNCj4gISRwYXJlbnRzbmFwOw0KPiDCoA0KPiAtwqDCoMKgICRjbGFzcy0+ZGVhY3RpdmF0 ZV92b2x1bWUoJHN0b3JlaWQsICRzY2ZnLCAkdm9sbmFtZSwgJHNuYXAsIHt9KTsNCj4gKyBteSAk cGFyZW50cGF0aCA9ICRzbmFwc2hvdHMtPnskcGFyZW50c25hcH0tPntmaWxlfTsNCj4gKyBteSAk cGFyZW50Zm9ybWF0ID0gJHNuYXBzaG90cy0+eyRwYXJlbnRzbmFwfS0+eydmb3JtYXQnfSBpZg0K PiAkcGFyZW50c25hcDsNCj4gKyBteSAkY2hpbGRwYXRoID0gJHNuYXBzaG90cy0+eyRjaGlsZHNu YXB9LT57ZmlsZX0gaWYgJGNoaWxkc25hcDsNCj4gKyBteSAkY2hpbGRmb3JtYXQgPSAkc25hcHNo b3RzLT57JGNoaWxkc25hcH0tPnsnZm9ybWF0J30gaWYNCj4gJGNoaWxkc25hcDsNCj4gwqANCj4g LcKgwqDCoCBteSAkY21kID0gWycvdXNyL2Jpbi9xZW11LWltZycsICdzbmFwc2hvdCcsJy1kJywg JHNuYXAsICRwYXRoXTsNCj4gKyBwcmludCAibWVyZ2Ugc25hcHNob3QgJHNuYXAgdG8gJHBhcmVu dHNuYXBcbiI7DQo+ICsgJGNtZCA9IFsnL3Vzci9iaW4vcWVtdS1pbWcnLCAnY29tbWl0JywgJHNu YXBwYXRoXTsNCj4gKyBydW5fY29tbWFuZCgkY21kKTsNCj4gKw0KPiArICNpZiB3ZSBkZWxldGUg YW4gaW50ZXJtZWRpYXRlIHNuYXBzaG90LCB3ZSBuZWVkIHRvIGxpbmsgdXBwZXINCj4gc25hcHNo b3QgdG8gYmFzZSBzbmFwc2hvdA0KPiArIGlmKCRjaGlsZHBhdGggJiYgLWUgJGNoaWxkcGF0aCkg ew0KPiArIMKgwqDCoCBkaWUgIm1pc3NpbmcgcGFyZW50c25hcCBzbmFwc2hvdCB0byByZWJhc2Ug Y2hpbGQgJGNoaWxkcGF0aFxuIg0KPiBpZiAhJHBhcmVudHBhdGg7DQo+ICsgwqDCoMKgIHByaW50 ICJsaW5rICRjaGlsZHNuYXAgdG8gJHBhcmVudHNuYXBcbiI7DQo+ICsgwqDCoMKgICRjbWQgPSBb Jy91c3IvYmluL3FlbXUtaW1nJywgJ3JlYmFzZScsICctdScsICctYicsICRwYXJlbnRwYXRoLA0K PiAnLUYnLCAkcGFyZW50Zm9ybWF0LCAnLWYnLCAkY2hpbGRmb3JtYXQsICRjaGlsZHBhdGhdOw0K PiArIMKgwqDCoCBydW5fY29tbWFuZCgkY21kKTsNCj4gKyB9DQoNCj4+d291bGRuJ3QgYSByZWd1 bGFyIHNhZmUgcmViYXNlIHdvcmsganVzdCBhcyB3ZWxsLCBpbnN0ZWFkIG9mIGNvbW1pdCArDQo+ PnVuc2FmZSByZWJhc2U/IGlmIHRoZXJlIGlzIG5vIHBhcmVudCwgcGFzc2luZyBpbiAiIiBhcyAi bmV3IiBiYWNraW5nDQo+PmZpbGUgc2hvdWxkIHdvcmsuLg0KDQpJJ2xsIHRlc3QgaXQsIGJ1dCBJ J20gcHJldHR5IHN1cmUgdGhpcyBpcyB0aGUgY29ycmVjdCB3YXkuDQoNCj4gKw0KPiArICNkZWxl dGUgdGhlIHNuYXBzaG90DQo+ICsgdW5saW5rKCRzbmFwcGF0aCk7DQo+ICvCoMKgwqAgfSBlbHNl IHsNCj4gKyBteSAkcGF0aCA9ICRjbGFzcy0+ZmlsZXN5c3RlbV9wYXRoKCRzY2ZnLCAkdm9sbmFt ZSk7DQo+IMKgDQo+IC3CoMKgwqAgcnVuX2NvbW1hbmQoJGNtZCk7DQo+ICsgJGNsYXNzLT5kZWFj dGl2YXRlX3ZvbHVtZSgkc3RvcmVpZCwgJHNjZmcsICR2b2xuYW1lLCAkc25hcCwge30pOw0KPiAr DQo+ICsgJGNtZCA9IFsnL3Vzci9iaW4vcWVtdS1pbWcnLCAnc25hcHNob3QnLCctZCcsICRzbmFw LCAkcGF0aF07DQo+ICsgcnVuX2NvbW1hbmQoJGNtZCk7DQo+ICvCoMKgwqAgfQ0KPiDCoA0KPiDC oMKgwqDCoCByZXR1cm4gdW5kZWY7DQo+IMKgfQ0KPiBAQCAtMTE0MCwxMCArMTIyNSw2IEBAIHN1 YiB2b2x1bWVfaGFzX2ZlYXR1cmUgew0KPiDCoMKgwqDCoCBteSAoJGNsYXNzLCAkc2NmZywgJGZl YXR1cmUsICRzdG9yZWlkLCAkdm9sbmFtZSwgJHNuYXBuYW1lLA0KPiAkcnVubmluZywgJG9wdHMp ID0gQF87DQo+IMKgDQo+IMKgwqDCoMKgIG15ICRmZWF0dXJlcyA9IHsNCj4gLSBzbmFwc2hvdCA9 PiB7DQo+IC0gwqDCoMKgIGN1cnJlbnQgPT4geyBxY293MiA9PiAxIH0sDQo+IC0gwqDCoMKgIHNu YXAgPT4geyBxY293MiA9PiAxIH0sDQo+IC0gfSwNCj4gwqAgY2xvbmUgPT4gew0KPiDCoCDCoMKg wqAgYmFzZSA9PiB7IHFjb3cyID0+IDEsIHJhdyA9PiAxLCB2bWRrID0+IDEgfSwNCj4gwqAgfSwN Cj4gQEAgLTExNTksMTEgKzEyNDAsMjMgQEAgc3ViIHZvbHVtZV9oYXNfZmVhdHVyZSB7DQo+IMKg IMKgwqDCoCBiYXNlID0+IHsgcWNvdzIgPT4gMSwgcmF3ID0+IDEsIHZtZGsgPT4gMSB9LA0KPiDC oCDCoMKgwqAgY3VycmVudCA9PiB7IHFjb3cyID0+IDEsIHJhdyA9PiAxLCB2bWRrID0+IDEgfSwN Cj4gwqAgfSwNCj4gLSByZW5hbWUgPT4gew0KPiAtIMKgwqDCoCBjdXJyZW50ID0+IHtxY293MiA9 PiAxLCByYXcgPT4gMSwgdm1kayA9PiAxfSwNCj4gLSB9LA0KPiArICdyZW5hbWUnID0+IHsNCj4g KyDCoMKgwqAgY3VycmVudCA9PiB7IHFjb3cyID0+IDEsIHJhdyA9PiAxLCB2bWRrID0+IDF9LA0K PiArIH0NCj4gwqDCoMKgwqAgfTsNCj4gwqANCj4gK8KgwqDCoCBpZiAoJHNjZmctPntzbmFwZXh0 fSkgew0KPiArICRmZWF0dXJlcy0+e3NuYXBzaG90fSA9IHsNCj4gKyBjdXJyZW50ID0+IHsgcmF3 ID0+IDEsIHFjb3cyID0+IDEgfSwNCj4gKyBzbmFwID0+IHsgcmF3ID0+IDEsIHFjb3cyID0+IDEg fSwNCj4gKyB9DQo+ICvCoMKgwqAgfSBlbHNlIHsNCj4gKyAkZmVhdHVyZXMtPntzbmFwc2hvdH0g PSB7DQo+ICsgY3VycmVudCA9PiB7IHFjb3cyID0+IDEgfSwNCj4gKyBzbmFwID0+IHsgcWNvdzIg PT4gMSB9LA0KPiArIH07DQo+ICvCoMKgwqAgfQ0KPiArDQoNCj4+dGhpcyBjb3VsZCBqdXN0IGxl YXZlICRmZWF0dXJlcyBhcyBpdCBpcywgYW5kIGFkZCB0aGUgInJhdyIgYml0czoNCj4+DQo+Pmlm ICgkc2NmZy0+e3NuYXBleHR9KSB7DQo+PsKgwqDCoCAkZmVhdHVyZXMtPntzbmFwc2hvdH0tPntj dXJyZW50fS0+e3Jhd30gPSAxOw0KPj7CoMKgwqAgJGZlYXR1cmVzLT57c25hcHNob3R9LT57c25h cH0tPntyYXd9ID0gMTsNCj4+fQ0KDQpvayAhDQo+IMKgwqDCoMKgIGlmICgkZmVhdHVyZSBlcSAn Y2xvbmUnKSB7DQo+IMKgIGlmICgNCj4gwqAgwqDCoMKgIGRlZmluZWQoJG9wdHMtPnt2YWxpZF90 YXJnZXRfZm9ybWF0c30pDQo+IEBAIC0xMjIyLDcgKzEzMTUsOSBAQCBzdWIgbGlzdF9pbWFnZXMg ew0KPiDCoCB9DQo+IMKgDQo+IMKgIGlmICgkdm9sbGlzdCkgew0KPiAtIMKgwqDCoCBteSAkZm91 bmQgPSBncmVwIHsgJF8gZXEgJHZvbGlkIH0gQCR2b2xsaXN0Ow0KPiArIMKgwqDCoCBteSAkc2Vh cmNoX3ZvbGlkID0gJHZvbGlkOw0KPiArIMKgwqDCoCAkc2VhcmNoX3ZvbGlkID1+IHMvLXNuYXAt LipcLi9cLi87DQo+ICsgwqDCoMKgIG15ICRmb3VuZCA9IGdyZXAgeyAkXyBlcSAkc2VhcmNoX3Zv bGlkIH0gQCR2b2xsaXN0Ow0KPiDCoCDCoMKgwqAgbmV4dCBpZiAhJGZvdW5kOw0KPiDCoCB9DQo+ IMKgDQo+IEBAIC0xMzgwLDcgKzE0NzUsNTMgQEAgc3ViIHN0YXR1cyB7DQo+IMKgc3ViIHZvbHVt ZV9zbmFwc2hvdF9pbmZvIHsNCj4gwqDCoMKgwqAgbXkgKCRjbGFzcywgJHNjZmcsICRzdG9yZWlk LCAkdm9sbmFtZSkgPSBAXzsNCj4gwqANCj4gLcKgwqDCoCBkaWUgInZvbHVtZV9zbmFwc2hvdF9p bmZvIGlzIG5vdCBpbXBsZW1lbnRlZCBmb3IgJGNsYXNzIjsNCj4gK8KgwqDCoCBkaWUgInZvbHVt ZV9zbmFwc2hvdF9pbmZvIGlzIG5vdCBpbXBsZW1lbnRlZCBmb3IgJGNsYXNzIiBpZg0KPiAhJHNj ZmctPntzbmFwZXh0fTsNCj4gKw0KPiArwqDCoMKgIG15ICRwYXRoID0gJGNsYXNzLT5maWxlc3lz dGVtX3BhdGgoJHNjZmcsICR2b2xuYW1lKTsNCj4gKw0KPiArwqDCoMKgIG15ICgkdnR5cGUsICRu YW1lLCAkdm1pZCwgJGJhc2VuYW1lLCAkYmFzZXZtaWQsICRpc0Jhc2UsDQo+ICRmb3JtYXQpID0g JGNsYXNzLT5wYXJzZV92b2xuYW1lKCR2b2xuYW1lKTsNCj4gKw0KPiArwqDCoMKgIG15ICRiYXNl dm9sbmFtZSA9ICR2b2xuYW1lOw0KPiArwqDCoMKgICRiYXNldm9sbmFtZSA9fiBzL1wuKHJhd3xx Y293MikkLy87DQo+ICsNCj4gK8KgwqDCoCBteSAkc25hcHNob3RzID0gJGNsYXNzLT5saXN0X2lt YWdlcygkc3RvcmVpZCwgJHNjZmcsICR2bWlkKTsNCj4gK8KgwqDCoCBteSAkaW5mbyA9IHt9Ow0K PiArwqDCoMKgIGZvciBteSAkc25hcCAoQCRzbmFwc2hvdHMpIHsNCj4gKw0KPiArIG15ICR2b2xp ZCA9ICRzbmFwLT57dm9saWR9Ow0KPiArIG5leHQgaWYgKCR2b2xpZCAhfiBtLyRiYXNldm9sbmFt ZS8pOw0KDQo+PnRoaXMgcmVnZXggaXMgYnJva2VuIHcuci50LiBwYXJ0aWFsIG1hdGNoaW5nIQ0K Pj4NCj4+ZS5nLiwgaWYgYSBWTSBoYXMgYm90aCBhIGRpc2sgLTEucWNvdzIgYW5kIC0xMS5xY293 MiBhbmQgSSBhdHRlbXB0IHRvDQo+PnNuYXBzaG90IGl0IHVzaW5nIGV4dGVybmFsIHNuYXBzaG90 czoNCm9rICENCg0KDQpzbmFwc2hvdHRpbmcgJ2RyaXZlLXNjc2kwJyAoZXh0c25hcDoxMzEzMTQv dm0tMTMxMzE0LWRpc2stMC5yYXcpDQpGb3JtYXR0aW5nICcvbW50L3B2ZS9leHQ0L2V4dHNuYXAv aW1hZ2VzLzEzMTMxNC92bS0xMzEzMTQtZGlzay0wLXNuYXAtDQp0ZXN0Mi5xY293MicsIGZtdD1x Y293MiBjbHVzdGVyX3NpemU9NjU1MzYgZXh0ZW5kZWRfbDI9b24NCnByZWFsbG9jYXRpb249b2Zm IGNvbXByZXNzaW9uX3R5cGU9emxpYiBzaXplPTIwMDcwNA0KYmFja2luZ19maWxlPS9tbnQvcHZl L2V4dDQvZXh0c25hcC9pbWFnZXMvMTMxMzE0L3ZtLTEzMTMxNC1kaXNrLTAtc25hcC0NCnRlc3Qu cWNvdzIgYmFja2luZ19mbXQ9cmF3IGxhenlfcmVmY291bnRzPW9mZiByZWZjb3VudF9iaXRzPTE2 DQpzbmFwc2hvdHRpbmcgJ2RyaXZlLXNjc2kxJyAoZXh0c25hcDoxMzEzMTQvdm0tMTMxMzE0LWRp c2stMS5xY293MikNCkZvcm1hdHRpbmcgJy9tbnQvcHZlL2V4dDQvZXh0c25hcC9pbWFnZXMvMTMx MzE0L3ZtLTEzMTMxNC1kaXNrLTExLXNuYXAtDQp0ZXN0Mi5xY293MicsIGZtdD1xY293MiBjbHVz dGVyX3NpemU9NjU1MzYgZXh0ZW5kZWRfbDI9b24NCnByZWFsbG9jYXRpb249b2ZmIGNvbXByZXNz aW9uX3R5cGU9emxpYiBzaXplPTIxNDc0ODM2NDgNCmJhY2tpbmdfZmlsZT0vbW50L3B2ZS9leHQ0 L2V4dHNuYXAvaW1hZ2VzLzEzMTMxNC92bS0xMzEzMTQtZGlzay0NCjExLnFjb3cyIGJhY2tpbmdf Zm10PXFjb3cyIGxhenlfcmVmY291bnRzPW9mZiByZWZjb3VudF9iaXRzPTE2DQpzbmFwc2hvdHRp bmcgJ2RyaXZlLXNjc2kyJyAoZXh0c25hcDoxMzEzMTQvdm0tMTMxMzE0LWRpc2stMTEucWNvdzIp DQpxZW11LWltZzogL21udC9wdmUvZXh0NC9leHRzbmFwL2ltYWdlcy8xMzEzMTQvdm0tMTMxMzE0 LWRpc2stMTEtc25hcC0NCnRlc3QyLnFjb3cyOiBFcnJvcjogVHJ5aW5nIHRvIGNyZWF0ZSBhbiBp bWFnZSB3aXRoIHRoZSBzYW1lIGZpbGVuYW1lIGFzDQp0aGUgYmFja2luZyBmaWxlDQpzbmFwc2hv dCBjcmVhdGUgZmFpbGVkOiBzdGFydGluZyBjbGVhbnVwDQptZXJnZSBzbmFwc2hvdCB0ZXN0MiB0 byB0ZXN0DQpJbWFnZSBjb21taXR0ZWQuDQptZXJnZSBzbmFwc2hvdCB0ZXN0MiB0byBiYXNlDQpJ bWFnZSBjb21taXR0ZWQuDQpUQVNLIEVSUk9SOiBjb21tYW5kICcvdXNyL2Jpbi9xZW11LWltZyBj cmVhdGUgLWINCi9tbnQvcHZlL2V4dDQvZXh0c25hcC9pbWFnZXMvMTMxMzE0L3ZtLTEzMTMxNC1k aXNrLTExLXNuYXAtdGVzdDIucWNvdzINCi1GIHFjb3cyIC1mIHFjb3cyIC9tbnQvcHZlL2V4dDQv ZXh0c25hcC9pbWFnZXMvMTMxMzE0L3ZtLTEzMTMxNC1kaXNrLQ0KMTEtc25hcC10ZXN0Mi5xY293 MiAtbyAnZXh0ZW5kZWRfbDI9b24scHJlYWxsb2NhdGlvbj1vZmYnJyBmYWlsZWQ6IGV4aXQNCmNv ZGUgMSANCg0KPiArDQo+ICsgbXkgKHVuZGVmLCAkc25hcHZvbG5hbWUpID0gcGFyc2Vfdm9sdW1l X2lkKCR2b2xpZCk7DQo+ICsgbXkgJHNuYXBuYW1lID0gZ2V0X3NuYXBuYW1lX2Zyb21fcGF0aCgk dm9saWQpOw0KPiArIG15ICRzbmFwZmlsZSA9ICRjbGFzcy0+ZmlsZXN5c3RlbV9wYXRoKCRzY2Zn LCAkc25hcHZvbG5hbWUsDQo+ICRzbmFwbmFtZSk7DQo+ICsgJHNuYXBuYW1lID0gJ2Jhc2UnIGlm ICEkc25hcG5hbWU7DQo+ICsNCj4gKyBteSAkZm9ybWF0ID0gJHNuYXAtPnsnZm9ybWF0J307DQo+ ICsgbXkgJHBhcmVudGZpbGUgPSAkc25hcC0+e3BhcmVudH07DQo+ICsgbXkgJHBhcmVudG5hbWUg PSBnZXRfc25hcG5hbWVfZnJvbV9wYXRoKCRwYXJlbnRmaWxlKSBpZg0KPiAkcGFyZW50ZmlsZTsN Cj4gKyAkcGFyZW50bmFtZSA9ICdiYXNlJyBpZiAhJHBhcmVudG5hbWUgJiYgJHBhcmVudGZpbGU7 DQo+ICsNCj4gKyAkaW5mby0+eyRzbmFwbmFtZX0tPntmaWxlfSA9ICRzbmFwZmlsZTsNCj4gKyAk aW5mby0+eyRzbmFwbmFtZX0tPnt2b2xpZH0gPSAkdm9saWQ7DQo+ICsgJGluZm8tPnskc25hcG5h bWV9LT57J2Zvcm1hdCd9ID0gJGZvcm1hdDsNCj4gKyAkaW5mby0+eyRzbmFwbmFtZX0tPntwYXJl bnR9ID0gJHBhcmVudG5hbWUgaWYgJHBhcmVudG5hbWU7DQo+ICsgJGluZm8tPnskcGFyZW50bmFt ZX0tPntjaGlsZH0gPSAkc25hcG5hbWUgaWYgJHBhcmVudG5hbWU7DQo+ICvCoMKgwqAgfQ0KPiAr DQo+ICvCoMKgwqAgbXkgJGN1cnJlbnQgPSB1bmRlZjsNCj4gK8KgwqDCoCBmb3IgbXkgJGlkIChr ZXlzICUkaW5mbykgew0KPiArIG15ICRzbmFwID0gJGluZm8tPnskaWR9Ow0KPiArIGRpZSAiZXJy b3I6IHNuYXAgJGlkOiB5b3UgY2FuJ3QgaGF2ZSBtdWx0aXBsZSBjdXJyZW50IHNuYXBzaG90OsKg DQo+IGN1cnJlbnQ6JGN1cnJlbnRcbiIgaWYgISRzbmFwLT57Y2hpbGR9ICYmICRjdXJyZW50Ow0K PiArICRjdXJyZW50ID0gJGlkIGlmICEkc25hcC0+e2NoaWxkfTsNCj4gK8KgwqDCoCB9DQo+ICsN Cj4gK8KgwqDCoCBpZiAoJGN1cnJlbnQpIHsNCj4gKyAkaW5mby0+e2N1cnJlbnR9LT57ZmlsZX0g PSAkaW5mby0+eyRjdXJyZW50fS0+e2ZpbGV9Ow0KPiArICRpbmZvLT57Y3VycmVudH0tPnsnZm9y bWF0J30gPSAkaW5mby0+eyRjdXJyZW50fS0+eydmb3JtYXQnfTsNCj4gKyAkaW5mby0+e2N1cnJl bnR9LT57cGFyZW50fSA9ICRpbmZvLT57JGN1cnJlbnR9LT57cGFyZW50fTsNCj4gK8KgwqDCoCB9 DQo+ICsNCj4gK8KgwqDCoCByZXR1cm4gJGluZm87DQo+IMKgfQ0KPiDCoA0KPiDCoHN1YiBhY3Rp dmF0ZV9zdG9yYWdlIHsNCj4gQEAgLTE3NjQsNCArMTkwNSwzOCBAQCBzdWIgY29uZmlnX2F3YXJl X2Jhc2VfbWtkaXIgew0KPiDCoMKgwqDCoCB9DQo+IMKgfQ0KPiDCoA0KPiArc3ViIGdldF9zbmFw X3BhdGggew0KPiArwqDCoMKgIG15ICgkcGF0aCwgJHNuYXApID0gQF87DQo+ICsNCj4gK8KgwqDC oCBteSAkYmFzZXBhdGggPSAiIjsNCj4gK8KgwqDCoCBteSAkYmFzZWZvcm1hdCA9ICIiOw0KPiAr wqDCoMKgIGlmICgkcGF0aCA9fiBtL14oKC4qKSh2bS0oXGQrKS1kaXNrLShcZCspKSkoLXNuYXAt DQo+ICguKikpP1wuKHJhd3xxY293MikvKSB7DQoNCj4+dGhpcyByZWdleCBpcyB3cm9uZyAtIHZv bHVtZXMgY2FuIGhhdmUgYXJiaXRyYXJ5IG5hbWVzIGFmdGVyIHRoZSAtDQo+PmRpc2stIHBhcnQu Lg0KDQphaCBzb3JyeS4gZG8geW91IGhhdmUgc29tZSBleGFtcGxlIHdoZXJlIGl0J3MgdXNlZCA/ IChtYXliZSBmb3IgZWZpIG9yDQpvdGhlciBzcGVjaWZpYyBkaXNrID8pDQoNCg0KPiArICRiYXNl cGF0aCA9ICQxOw0KPiArICRiYXNlZm9ybWF0ID0gJDg7DQo+ICvCoMKgwqAgfQ0KPiArwqDCoMKg IG15ICRmb3JtYXQgPSAkc25hcCA/ICdxY293MicgOiAkYmFzZWZvcm1hdDsNCj4gK8KgwqDCoCBt eSAkc25hcHBhdGggPSAkc25hcCA/ICRiYXNlcGF0aC4iLXNuYXAtJHNuYXAuJGZvcm1hdCIgOiB1 bmRlZjsNCj4gKw0KPiArwqDCoMKgIHJldHVybiAkc25hcHBhdGg7DQo+ICt9DQo+ICsNCj4gK3N1 YiBnZXRfc25hcG5hbWVfZnJvbV9wYXRoIHsNCj4gK8KgwqDCoCBteSAoJHBhdGgpID0gQF87DQo+ ICsNCj4gK8KgwqDCoCBpZiAoJHBhdGggPX4gbS9eKCguKikodm0tKFxkKyktZGlzay0oXGQrKSkp KC1zbmFwLQ0KPiAoLiopKT9cLihyYXd8cWNvdzIpLykgew0KDQo+PmhlcmUgYXMgd2VsbC4uIGFu ZCB0aGlzIHdob2xlIGhlbHBlciBpcyBqdXN0IHVzZWQgdHdpY2UgaW4NCj4+dm9sdW1lX3NuYXBz aG90X2luZm8sIG1heWJlIGl0IGNvdWxkIGJlIGlubGluZWQgb3IgbWFkZSBwcml2YXRlIA0Kb2sg IQ0KDQoNCj4gKyBteSAkc25hcG5hbWUgPSAkNzsNCj4gKyByZXR1cm4gJHNuYXBuYW1lOw0KPiAr wqDCoMKgIH0NCj4gK8KgwqDCoCBkaWUgImNhbid0IHBhcnNlIHNuYXBuYW1lIGZyb20gcGF0aCI7 DQo+ICt9DQo+ICsNCj4gK3N1YiBnZXRfY3VycmVudF9zbmFwc2hvdCB7DQo+ICvCoMKgwqAgbXkg KCRjbGFzcywgJHNjZmcsICRzdG9yZWlkLCAkdm9sbmFtZSkgPSBAXzsNCj4gK8KgwqDCoCAjSU1Q Uk9WRSBNRTogZmFzdGVyIHdheSB0byBmaW5kIGN1cnJlbnQgc25hcHNob3Q/IChzZWFyY2ggdGhl DQo+IG1vc3QgcmVjZW50IGNyZWF0ZWQgc25hcHNob3QgZmlsZSA/IG5lZWQgdG8gd29ya3Mgd2l0 aCBsdm0gdm9sdW1lDQo+IHRvbykNCj4gKw0KPiArwqDCoMKgIHJldHVybiBpZiAhJHNjZmctPntz bmFwZXh0fTsNCj4gK8KgwqDCoCBteSAkc25hcHNob3RzID0gJGNsYXNzLT52b2x1bWVfc25hcHNo b3RfaW5mbygkc2NmZywgJHN0b3JlaWQsDQo+ICR2b2xuYW1lKTsNCj4gK8KgwqDCoCByZXR1cm4g JHNuYXBzaG90cy0+e2N1cnJlbnR9Ow0KPiArfQ0KPiArDQo+IMKgMTsNCj4gLS0gDQo+IDIuMzku Mg0KDQoNCg== --===============7658913970966226232== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel --===============7658913970966226232==--