From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Alexandre.DERUMIER@groupe-cyllene.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 0A9529F3F6
 for <pve-devel@lists.proxmox.com>; Thu,  8 Jun 2023 03:34:36 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
 by firstgate.proxmox.com (Proxmox) with ESMTP id D08B41F97C
 for <pve-devel@lists.proxmox.com>; Thu,  8 Jun 2023 03:34:05 +0200 (CEST)
Received: from mail02.cetsi.fr (mail02.cetsi.fr [91.151.64.22])
 (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by firstgate.proxmox.com (Proxmox) with ESMTPS
 for <pve-devel@lists.proxmox.com>; Thu,  8 Jun 2023 03:34:04 +0200 (CEST)
Received: from CYLNEXC01.cyllene.corp (unknown [10.0.250.28])
 by mail02.cetsi.fr (Postfix) with ESMTP id 7C7334050295
 for <pve-devel@lists.proxmox.com>; Thu,  8 Jun 2023 03:34:03 +0200 (CEST)
DKIM-Filter: OpenDKIM Filter v2.11.0 mail02.cetsi.fr 7C7334050295
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groupe-cyllene.com;
 s=dkim; t=1686188043;
 bh=PZAziDLkyGCb9Nlry0UTVt3QRcCCxSO+PJ8B14Su4zw=;
 h=From:To:Subject:Date:References:In-Reply-To:From;
 b=hE8EgPFUnaxk2NGxq9t91BNs3bywnRAA6q791xxoAFxwDatIOzUxuYfK1FOimbc6d
 K0wcI4e86IHj86akYKjf7jveb+5gld5wRErFDjGJadXUwQw3zlxhgSelSBrzWAkMb4
 DDU/qh1fWtk4PWyf/cbShXwxL4rlOkyL/qMcyh2s=
Received: from CYLNEXC01.cyllene.corp (10.0.250.28) by CYLNEXC01.cyllene.corp
 (10.0.250.28) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Thu, 8 Jun
 2023 03:34:01 +0200
Received: from FRA01-MR2-obe.outbound.protection.outlook.com (10.0.250.254) by
 CYLNEXC01.cyllene.corp (10.0.250.28) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.23 via Frontend Transport; Thu, 8 Jun 2023 03:34:01 +0200
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=YE7vYW2zLUt8+eklAoeOVTw7bGWWVi/BGeACilUWhHj2s/rWq/dslcwv341ylU3YU0EdUmB/v1iiTFOk8M5etPaUe30nLsjwcXcZxp86y8yTg2UDsHs74MrZZ2pLMJNlYyuiH4fSf8OyaNNfVnMWuN62/4u3Dto/8JfJfq0IrF3TshdX0M44BJALI1qD1tyAp0J8O7ORUJd9Ohp6ov1sn5OrONRKLezTAFPG99cnVUY8ZeovqBKq7K9M9JwiVrAfvFQJ4k6aZpBl8G/+DN6aZdnA+rn6NXcKd52x/lqBxJHjPC4lY7BmzHir0kwAatL4f55NyRDUA2fk910ujpaBsg==
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=PZAziDLkyGCb9Nlry0UTVt3QRcCCxSO+PJ8B14Su4zw=;
 b=oLxaSW6U2+yL0MSlGa+BJzEgpilTYK9mnyNjyLgnc4GMVRsOtpwtus0IngsC+Kurvk845UQpsp6zPU6nj7Tm4ym4hO/lRo+bGGiMSsqDaT+LtvXII1M2sLw/yir18SYmHv6VbaC2Ubc/wCSy20sncHGzwLY0LZX2olGKBLa9SqyLHrDVvtltcMvSC3M/qppduTBFNnPUIvQ18zVpkGWd9SfGIAA33Zll2Ui0k3y2m0wHGMK2udKjLSOBuZ+437lchHCrdspDUhzljobclC0hzUhhCjoLICeo1z/oaO1g77EwvsiBjoPyHfnyiFy23DVBQl9povWNowQYLAaqlphsQQ==
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=PZAziDLkyGCb9Nlry0UTVt3QRcCCxSO+PJ8B14Su4zw=;
 b=JpWSlrWx1adw1nN6WTJWy6mZb/a7URp7G96zUDlKVjptBAuXXAtkrvw9JbFowrbCjKtfuaY9fsoikvOwsktSGNh0D/q1X1wp5YnvGEvYUq4nz1+z1rU1vcdUMREu7kMtRoPvmy1L5GXQP6U2louMl3D1ZSb0PHnoJrEwhLlGkWg=
Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:32::17)
 by MR1P264MB3186.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:3b::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.33; Thu, 8 Jun
 2023 01:34:01 +0000
Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM
 ([fe80::cef1:6229:8d42:b0ee]) by MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM
 ([fe80::cef1:6229:8d42:b0ee%2]) with mapi id 15.20.6455.030; Thu, 8 Jun 2023
 01:34:01 +0000
From: "DERUMIER, Alexandre" <alexandre.derumier@groupe-cyllene.com>
To: "pve-devel@lists.proxmox.com" <pve-devel@lists.proxmox.com>
Thread-Topic: [pve-devel] [PATCH pve-network 1/1] get_local_vnets: fix
 permission path && perm
Thread-Index: AQHZmTg6MM7OpdZRnEKGACWgnA0bDq9/bhGAgACyFIA=
Date: Thu, 8 Jun 2023 01:34:00 +0000
Message-ID: <047a892d85902a579bbdf0ac066cdd46bdbbae7e.camel@groupe-cyllene.com>
References: <20230607120357.4177891-1-aderumier@odiso.com>
 <20230607120357.4177891-5-aderumier@odiso.com>
 <1686149560.i7ewotwm93.astroid@yuna.none>
In-Reply-To: <1686149560.i7ewotwm93.astroid@yuna.none>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Evolution 3.48.1-0ubuntu1 
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: MR1P264MB2481:EE_|MR1P264MB3186:EE_
x-ms-office365-filtering-correlation-id: fc9e0999-c481-461f-e3d6-08db67c06fb9
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: KBErq2JBa6UOW3dAAUkGpRvbgumNFEq2tTZw6jk4XmZouUdcLi+j12wDY7Y2st2CrGBynuKtwjvnPUOpd9dZqMiIH8fpkCLbyXh5LZeCap2IsC46MfMF3wpBumSpgX4XgophEV0MLI5NFwG8nZAAsoBFVQ6CdDP63whUkbwEduOtSHg81xFQ2S7FTGClIuqF4ch+o6noeSEP9sglrPpowuCiWqR+LPI1uzKFbr5BX7n1J8Pwecmi5lZYni10o1mKFpmsrMTzmtgpIXvgPWGOy65YBpUReWkJ3jw454kpOZ3Cws/oez429stTDkkM7HZAZ8KA5+k9qqqrOiRqcPXUtg3qMIahyZLu83t5P9WJ76Jc7R7l59kryk5DTWmlHXfoDoMraKIXFphNozN/jDGifofzWhf9wr8jAxtCno6W7rrnEKgPPDSfC4rxOQXGItLY40T2KShNYpDNiSICfrytpwu6WBnhrHIuS0b00Glr1bAM6g6eUo2ENbRl1Ggz4ZfU9c99VVpyKNbFbkK9XchbAYUGhZFtc9+KDG3t0A/sR3+s+Eb2oq2XgiH2ZDkeNHKrRgsTUOGRaKjrtS6EfWRdUc/ly7fYAValW7p34SsAAzoTu9Eko+oCJ+47iB9RRf0fkqdZMa8jBVExxpuoPYdbvQ==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM; PTR:; CAT:NONE;
 SFS:(13230028)(4636009)(39850400004)(136003)(346002)(376002)(396003)(366004)(451199021)(19627235002)(478600001)(122000001)(91956017)(8676002)(8936002)(6916009)(76116006)(66556008)(66476007)(66446008)(64756008)(66946007)(316002)(41300700001)(38100700002)(2616005)(186003)(66574015)(966005)(83380400001)(6486002)(71200400001)(6512007)(6506007)(86362001)(5660300002)(38070700005)(2906002)(36756003);
 DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RjJIRXdBNjlRejFmRUFQUXFVV1dZd0lrRVFqUXJ2MlNGY2xPemZqZlU5MHpj?=
 =?utf-8?B?OWVLOVFYRGwxS05mMW5lRGFXUFlmbTZNMlRTK3gza01Cc1FBam1UZDJDTEJK?=
 =?utf-8?B?akg2c0IvWFZyckVaOTRkR3FzTC9JaVozZmlIV3hoYXZzQllZTHY2UzZtM3p1?=
 =?utf-8?B?RnNIWlRqNnkrdC9rTkVhZWdGY0UzaG1ya0cwT2EzbzYvSHFNN3lrVnBPQlRl?=
 =?utf-8?B?U2MwcnRsR3hTTVFFRmtSKzhmQW5aKzRCUTgrVXBtZnU5aGNucEpDSkVGRXF0?=
 =?utf-8?B?Q3ZrTFNHcWtzNHdnR0Zwa3lVZjU1aTFySzgydXI3RGNDZXBFY0NRUEpxVFo4?=
 =?utf-8?B?aE5TcE15VFNUU29CVklnVW1pbUR2QkJEdWcyTjI4SG0ySzV4OWhEb0cyYVZz?=
 =?utf-8?B?cmpvMHhzVTEvTmdHeGhXNGlkT2t4bDZTVHViNStvUHpwVnZiS0FJWjI3a082?=
 =?utf-8?B?VWZlWHNYVVFFWnRiYWxrWWtXWi8vWlRrRndJMjNCQmpiVStHRzdsM1JpVzdB?=
 =?utf-8?B?QkdMamZtS2JOdjZVeE9ZeFdxTCt6S0JCQVhzNm5YdFNDa3NZellVZmRRbHdQ?=
 =?utf-8?B?OTFzbGdyREpQYXpYMUc2S2p5TStzcFhXeW1XcVY1RlpSbmphZm9VVTlPVEYx?=
 =?utf-8?B?aVplWGtQM1ZLUndoRnB3TzBaS2daZGhZRUtvM1NrcTh5N1h5S2hVbnNOK204?=
 =?utf-8?B?SWtueFdhWllCaFR3NFhaS2JsRjFtcGxHNjRoSVBTd1NHQVU5UjNUc2ttWFZP?=
 =?utf-8?B?VU9NLzkzK3ZrdkdxUHF5VVpuaDZhbWNST0xGMmhRYTFnU09nb1hRenVNQ3Va?=
 =?utf-8?B?MlJkOTRHdXd5aGk5MlNRdEhPMFVXVXBVVE05bXFPQ005M0dFN2NRWFF3UTBi?=
 =?utf-8?B?bHIzclBTY0c0MWFGeFROSjBGUDVYUDhDQncreVhxKzl0OFRFY2RWU1NGL1BI?=
 =?utf-8?B?cDdiSnl1NFV5Z2JlN2VkdUtVaTJPZGxtYytad3B3aDJNS3ZZZzFiaWZkdDdX?=
 =?utf-8?B?ZmVIRWxtQjhUWGYyZ2FaT0w1MVQ3Mkc3WVBZaFlFRlA4ZHQ0U1RJUlBuTXp3?=
 =?utf-8?B?ZnZ1cFNLUW9kNDVmYVhtTVVQOFVsU2F1QWpZQ3RUK2dKcVI1SjFIYVZGQ0Iv?=
 =?utf-8?B?NkIzQ3VWdWJyNmVlZ0lzWVN2TVAyTi9QK2ltVnNpTzFhYkl6dHpNK0FDczk0?=
 =?utf-8?B?aUNvNFR1ZXlBclZVWGpJMndTZ2tzVWNBUzFwcmpLdHc0OURuYkFEQzM2UE80?=
 =?utf-8?B?SmlzZm1jOU1DRXk5a3VYczh0UDgwTlV2azY0VDVSejNwTjNGaFN5RG5qb1JK?=
 =?utf-8?B?cnFNenlraXBUb0I1cGYwOUpJTEFLYzR3WVVRVGEyRVJ1Y2lwOE1JdjdDckFB?=
 =?utf-8?B?eUVJMlpzNVF3VHh5b1h0VkNOc2NhWGk0RXRLZzNSU2RPRXhEYVE3NmlpbDd3?=
 =?utf-8?B?aHBCV05pd2NaREpSWDlkVmJvcnNiTk00MlViMEZteXFmeTkwdHFsUmFHQmRO?=
 =?utf-8?B?ZVl6MGVMTVZaUDFFRk5DMjh3NFpkSGdHeWIzK1poNmhKWDlzYnplRlc4cGJX?=
 =?utf-8?B?a1hURW1lUy9uR2RKQURhQk03WlJYTHBUak13WWdnaW1QR3ZaZHNuUjRlb3dy?=
 =?utf-8?B?MmNzSGJIWmtlWFZDM2N2YjFDMXVlOTVUbExNTmNYbGlReUswZUtpdnN6Y3F6?=
 =?utf-8?B?VzQzeDlqbTFxZlVHVVNXbURGZzBHclgxODM3d2JKZDVzWXJyTVBDRUExUU84?=
 =?utf-8?B?MldvaU1ndTlHdW4rQlhxRTc3UFozRFA4MmpwWlRFN050WlpienkvTXZRWXlF?=
 =?utf-8?B?Zll0NC9DUlhkYS8zWUM5UWFEQnlQcVhGYVI2TmhqTHVLQVBwbHI3Vlp3MmdS?=
 =?utf-8?B?a0NTTU9SbTlqSHBrcjVyOGFNTGlUS2lFOHI4eGtqV2NNS0VXZTEzUGJIZ0lU?=
 =?utf-8?B?SENYc2dBMW5ILzEyMUpPS0RYQ3RSNFA2S2VpNWF3MnFRVHZ5RVZUbmtUdzNx?=
 =?utf-8?B?YTZuVXMzeW1DNytvRVNQRjBTQXU3MjlLSG5oUnZqUjdkZnpraGxqbUZVRHg3?=
 =?utf-8?B?M1RQYlFkQWNvNndSaGkzM200V2VSeU1ZVVg0TG8xQmJ1dU9HQVZldDVPTkZz?=
 =?utf-8?B?ZWhjRlpydWRWREJ0MlRMdUo5cFpaMjR2RE9ENFBZN2M1WiswNUlhUWp2Z2Js?=
 =?utf-8?Q?hbPNS/af7xM2GOm+pdF7/D7LTDd8hFBKPR67CqQLbwN4?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <5BA1CEA212C8914F80ABFA92EC4567ED@FRAP264.PROD.OUTLOOK.COM>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: fc9e0999-c481-461f-e3d6-08db67c06fb9
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jun 2023 01:34:00.8515 (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: 2z6BymfRPe5Z/FoKgC/CO0RQU4Ey+zSxiHXJScFg707vAwjFKmA3Ym3n4eC4wEodPsmUcntJJJD7ZyqUAi8J85PkOVr7X2QxkdOpqK2/u43iDrYhI/v3/XJeK8/zaP72
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MR1P264MB3186
X-OriginatorOrg: groupe-cyllene.com
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.574 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
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain DMARC_MISSING             0.1 Missing DMARC policy
 KAM_ASCII_DIVIDERS 0.8 Email that uses ascii formatting dividers and possible
 spam tricks POISEN_SPAM_PILL          0.1 Meta: its spam
 POISEN_SPAM_PILL_1        0.1 random spam to be learned in bayes
 POISEN_SPAM_PILL_3        0.1 random spam to be learned in bayes
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
 T_SCC_BODY_TEXT_LINE    -0.01 -
 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more
 information. [vnets.pm, subnets.pm, proxmox.com, cetsi.fr, groupe-cyllene.com,
 sdn.pm, groupecyllene.onmicrosoft.com]
Subject: Re: [pve-devel] [PATCH pve-network 1/1] get_local_vnets: fix
 permission path && perm
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
X-List-Received-Date: Thu, 08 Jun 2023 01:34:36 -0000

TGUgbWVyY3JlZGkgMDcganVpbiAyMDIzIMOgIDE2OjU2ICswMjAwLCBGYWJpYW4gR3LDvG5iaWNo
bGVyIGEgw6ljcml0wqA6DQo+IHB2ZS1uZXR3b3JrIHJlcXVpcmVzIG1vcmUgd29yazoNCj4gDQo+
IC0gdGhlcmUgaXMgYSBsb3Qgb2YgL3Nkbi92bmV0cy8uLiBwZXJtaXNzaW9uIGNoZWNrcyBsZWZ0
b3ZlciAoYWxsIG9mDQo+IHRoZSB2bmV0L3N1Ym5ldCBjb2RlISkNCj4gLSB0aGVyZSBhcmUgL3Nk
bi92bmV0cy8uLi9zdWJuZXRzLy4uIEFDTCBwYXRocyB0aGF0IG5lZWQgdG8gYmUNCj4gZHJvcHBl
ZCwNCj4gwqAgb3IgdGhleSBjbGFzaCB3aXRoIC9zZG4vem9uZXMvPHpvbmU+Lzx2bmV0PlsvPHZs
YW4+XQ0KPiANCkkgaGF2ZSBzZW5kIHNlcGFyYXRlZCBwYXRjaCB0byBmaXggcGVybWlzc2lvbnMN
Cmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vcGlwZXJtYWlsL3B2ZS1kZXZlbC8yMDIzLUp1bmUv
MDU3Mzc0Lmh0bWwNCg0KSSBkb24ndCBoYXZlIGNoYW5nZWQgYXBpIGZvciBub3csIGFzIEkgc2hv
dWxkIG5lZWQgdG8gcmV3b3JrIHRoZSBndWkgYQ0KbGl0dGxlIGJpdC4NCihhbmQgSSdtIG5vdCBz
dXJlIGFib3V0IGFwaSBwYXRoIGxpa2UgL3Nkbi96b25lcy96b25lMS92bmV0MSAgLA0KL3Nkbi96
b25lcy96b25lMi92bmV0MSAgLCBhcyB2bmV0IHNob3VsZCByZWFsbHkgYmUgdW5pcXVlKQ0KDQoN
CkJ1dCBmb3Igbm93LCBhY2wgYXJlIHdvcmtpbmcgZmluZSB3aXRoIHRoaXMgcGF0Y2guDQoNCg0K
PiAtIHRoZSBHVUkgc2VlbXMgdG8gYmUgYnJva2VuIHdoZW4gIkFkdmFuY2VkIiBpcyBub3QgdGlj
a2VkDQo+IA0KDQpJIHJlYWxseSBkb24ndCBzZWUgd2hlcmUgaXMgdGhlIHByb2JsZW0gKGRvbid0
IGhhcHBlbiB3aXRoDQpiZ3Bjb250cm9sbGVyIGFkdmFuY2VkLCBhbmQgaXQncyBleGFjdGx5IHRo
ZSBzYW1lIGNvZGUuLi4uKQ0KDQoNCj4gSSBzdGFydGVkIG9mZiwgYnV0IHRoZW4gSSByZWFsaXpl
ZCB3ZSBtaWdodCBhbHNvIHdhbnQgdG8gcmUtZXZhbHVhdGU6DQo+IC0gd2hldGhlciB3ZSBldmVu
IGNhcmUgYWJvdXQgcG90ZW50aWFsbHkgbGVha2luZyB0aGUgdm5ldDwtPnpvbmUNCj4gYmluZGlu
Zw0KPiDCoCBpbiBjYXNlIHRoZSBBQ0wgY2hlY2tzIGZhaWwNCj4gLSB3aGV0aGVyIHdlIHdhbnQg
dG8gbW92ZSB0aGUgd2hvbGUgQVBJIHRyZWUgYXMgd2VsbCB0byBoYXZlIHZuZXRzDQo+IGJlbG93
DQo+IMKgIHpvbmVzIGluc3RlYWQgb2YgbmV4dCB0byBlYWNob3RoZXIsIHNvIHdlIGFsd2F5cyBo
YXZlIHRoZSB6b25lIGFzDQo+IMKgIChwYXRoKSBwYXJhbWV0ZXI/DQo+IA0KTWF5YmUgbGF0ZXIg
Xl9eLCBJIG5lZWQgYSBsaXR0bGUgYml0IG1vcmUgdGltZSB0byB0aGluayBhYm91dCBpdC4NCiAN
Cg0KPiBhbnlob3csIGhlcmUncyBhIGhhbGYtZGlmZiBvZiBzb21lIHBvdGVudGlhbGx5IHJlbGV2
YW50IGNoYW5nZXMgOykNCj4gDQo+IGBgYA0KPiBkaWZmIC0tZ2l0IGEvc3JjL1BWRS9BUEkyL05l
dHdvcmsvU0ROL1N1Ym5ldHMucG0NCj4gYi9zcmMvUFZFL0FQSTIvTmV0d29yay9TRE4vU3VibmV0
cy5wbQ0KPiBpbmRleCAzNzdhNTY4Li5mYmUyYzQ2IDEwMDY0NA0KPiAtLS0gYS9zcmMvUFZFL0FQ
STIvTmV0d29yay9TRE4vU3VibmV0cy5wbQ0KPiArKysgYi9zcmMvUFZFL0FQSTIvTmV0d29yay9T
RE4vU3VibmV0cy5wbQ0KPiBAQCAtMzksNyArMzksNyBAQCBfX1BBQ0tBR0VfXy0+cmVnaXN0ZXJf
bWV0aG9kICh7DQo+IMKgwqDCoMKgIG1ldGhvZCA9PiAnR0VUJywNCj4gwqDCoMKgwqAgZGVzY3Jp
cHRpb24gPT4gIlNETiBzdWJuZXRzIGluZGV4LiIsDQo+IMKgwqDCoMKgIHBlcm1pc3Npb25zID0+
IHsNCj4gLcKgwqDCoMKgwqDCoMKgZGVzY3JpcHRpb24gPT4gIk9ubHkgbGlzdCBlbnRyaWVzIHdo
ZXJlIHlvdSBoYXZlICdTRE4uQXVkaXQnDQo+IG9yICdTRE4uQWxsb2NhdGUnIHBlcm1pc3Npb25z
IG9uICcvc2RuL3N1Ym5ldHMvPHN1Ym5ldD4nIiwNCj4gK8KgwqDCoMKgwqDCoMKgZGVzY3JpcHRp
b24gPT4gIk9ubHkgbGlzdCBlbnRyaWVzIHdoZXJlIHlvdSBoYXZlICdTRE4uQXVkaXQnLA0KPiAn
U0ROLlVzZScgb3IgJ1NETi5BbGxvY2F0ZScgcGVybWlzc2lvbnMgb24gJy9zZG4vc3VibmV0cy88
c3VibmV0PiciLA0KPiDCoMKgwqDCoMKgwqDCoMKgdXNlciA9PiAnYWxsJywNCj4gwqDCoMKgwqAg
fSwNCj4gwqDCoMKgwqAgcGFyYW1ldGVycyA9PiB7DQo+IEBAIC04OSw3ICs4OSw3IEBAIF9fUEFD
S0FHRV9fLT5yZWdpc3Rlcl9tZXRob2QgKHsNCj4gwqDCoMKgwqDCoMKgwqDCoG15IEBzaWRzID0g
UFZFOjpOZXR3b3JrOjpTRE46OlN1Ym5ldHM6OnNkbl9zdWJuZXRzX2lkcygkY2ZnKTsNCj4gwqDC
oMKgwqDCoMKgwqDCoG15ICRyZXMgPSBbXTsNCj4gwqDCoMKgwqDCoMKgwqDCoGZvcmVhY2ggbXkg
JGlkIChAc2lkcykgew0KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqAgbXkgJHByaXZzID0gWyAnU0RO
LkF1ZGl0JywgJ1NETi5BbGxvY2F0ZScgXTsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIG15ICRw
cml2cyA9IFsgJ1NETi5BdWRpdCcsICdTRE4uVXNlJywgJ1NETi5BbGxvY2F0ZScgXTsNCj4gwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCBuZXh0IGlmICEkcnBjZW52LT5jaGVja19hbnkoJGF1dGh1c2Vy
LA0KPiAiL3Nkbi92bmV0cy8kdm5ldGlkL3N1Ym5ldHMvJGlkIiwgJHByaXZzLCAxKTsNCj4gwqAN
Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBteSAkc2NmZyA9ICYkYXBpX3Nkbl9zdWJuZXRzX2Nv
bmZpZygkY2ZnLCAkaWQpOw0KPiBkaWZmIC0tZ2l0IGEvc3JjL1BWRS9BUEkyL05ldHdvcmsvU0RO
L1ZuZXRzLnBtDQo+IGIvc3JjL1BWRS9BUEkyL05ldHdvcmsvU0ROL1ZuZXRzLnBtDQo+IGluZGV4
IDgxMWEyZTguLmVhYTNhMDQgMTAwNjQ0DQo+IC0tLSBhL3NyYy9QVkUvQVBJMi9OZXR3b3JrL1NE
Ti9WbmV0cy5wbQ0KPiArKysgYi9zcmMvUFZFL0FQSTIvTmV0d29yay9TRE4vVm5ldHMucG0NCj4g
QEAgLTUwLDYgKzUwLDEzIEBAIG15ICRhcGlfc2RuX3ZuZXRzX2RlbGV0ZWRfY29uZmlnID0gc3Vi
IHsNCj4gwqDCoMKgwqAgfQ0KPiDCoH07DQo+IMKgDQo+ICsjIGNoZWNrcyBhY2Nlc3MsIGJ1dCBt
YXNrcyB6b25lIHRvIGF2b2lkIGluZm8gbGVhay4uDQo+ICtteSAkY2hlY2tfdm5ldF9hY2Nlc3Mg
PSBzdWIgew0KPiArwqDCoMKgIHN1YiAoJHJwY2VudiwgJGF1dGh1c2VyLCAkem9uZSwgJHZuZXQs
ICRwcml2cykgPSBAXzsNCj4gK8KgwqDCoCAkcnBjZW52LT5jaGVja19hbnkoJGF1dGh1c2VyLCAi
L3Nkbi96b25lcy88em9uZT4vJHZuZXQiLCAkcHJpdnMpDQo+ICvCoMKgwqDCoMKgwqDCoGlmICEk
cnBjZW52LT5jaGVja19hbnkoJGF1dGh1c2VyLCAiL3Nkbi96b25lcy8kem9uZS8kdm5ldCIsDQo+
ICRwcml2cywgMSk7DQo+ICt9DQo+ICsNCj4gwqBfX1BBQ0tBR0VfXy0+cmVnaXN0ZXJfbWV0aG9k
ICh7DQo+IMKgwqDCoMKgIG5hbWUgPT4gJ2luZGV4JywNCj4gwqDCoMKgwqAgcGF0aCA9PiAnJywN
Cj4gQEAgLTU3LDcgKzY0LDcgQEAgX19QQUNLQUdFX18tPnJlZ2lzdGVyX21ldGhvZCAoew0KPiDC
oMKgwqDCoCBkZXNjcmlwdGlvbiA9PiAiU0ROIHZuZXRzIGluZGV4LiIsDQo+IMKgwqDCoMKgIHBl
cm1pc3Npb25zID0+IHsNCj4gwqDCoMKgwqDCoMKgwqDCoGRlc2NyaXB0aW9uID0+ICJPbmx5IGxp
c3QgZW50cmllcyB3aGVyZSB5b3UgaGF2ZSAnU0ROLkF1ZGl0Jw0KPiBvciAnU0ROLkFsbG9jYXRl
JyINCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgIC4iIHBlcm1pc3Npb25zIG9uICcvc2RuL3ZuZXRz
Lzx2bmV0PiciLA0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgLiIgcGVybWlzc2lvbnMgb24gJy9z
ZG4vem9uZXMvPHpvbmU+Lzx2bmV0PiciLA0KPiDCoMKgwqDCoMKgwqDCoMKgdXNlciA9PiAnYWxs
JywNCj4gwqDCoMKgwqAgfSwNCj4gwqDCoMKgwqAgcGFyYW1ldGVycyA9PiB7DQo+IEBAIC0xMDQs
OCArMTExLDEwIEBAIF9fUEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRob2QgKHsNCj4gwqDCoMKgwqDC
oMKgwqDCoG15IEBzaWRzID0gUFZFOjpOZXR3b3JrOjpTRE46OlZuZXRzOjpzZG5fdm5ldHNfaWRz
KCRjZmcpOw0KPiDCoMKgwqDCoMKgwqDCoMKgbXkgJHJlcyA9IFtdOw0KPiDCoMKgwqDCoMKgwqDC
oMKgZm9yZWFjaCBteSAkaWQgKEBzaWRzKSB7DQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoCBteSAk
cHJpdnMgPSBbICdTRE4uQXVkaXQnLCAnU0ROLkFsbG9jYXRlJyBdOw0KPiAtwqDCoMKgwqDCoMKg
wqDCoMKgwqAgbmV4dCBpZiAhJHJwY2Vudi0+Y2hlY2tfYW55KCRhdXRodXNlciwgIi9zZG4vdm5l
dHMvJGlkIiwNCj4gJHByaXZzLCAxKTsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIG15ICRwcml2
cyA9IFsgJ1NETi5BdWRpdCcsICdTRE4uVXNlJywgJ1NETi5BbGxvY2F0ZScgXTsNCj4gK8KgwqDC
oMKgwqDCoMKgwqDCoMKgIG15ICR6b25lID0gJGNmZy0+eyRpZH0tPnt6b25lfTsNCj4gK8KgwqDC
oMKgwqDCoMKgwqDCoMKgIG5leHQgaWYgISR6b25lOw0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAg
bmV4dCBpZiAhJHJwY2Vudi0+Y2hlY2tfYW55KCRhdXRodXNlciwNCj4gIi9zZG4vem9uZXMvJHpv
bmUvJGlkIiwgJHByaXZzLCAxKTsNCj4gwqANCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBteSAk
c2NmZyA9ICYkYXBpX3Nkbl92bmV0c19jb25maWcoJGNmZywgJGlkKTsNCj4gwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCBwdXNoIEAkcmVzLCAkc2NmZzsNCj4gQEAgLTEyMCw4ICsxMjksOSBAQCBfX1BB
Q0tBR0VfXy0+cmVnaXN0ZXJfbWV0aG9kICh7DQo+IMKgwqDCoMKgIG1ldGhvZCA9PiAnR0VUJywN
Cj4gwqDCoMKgwqAgZGVzY3JpcHRpb24gPT4gIlJlYWQgc2RuIHZuZXQgY29uZmlndXJhdGlvbi4i
LA0KPiDCoMKgwqDCoCBwZXJtaXNzaW9ucyA9PiB7DQo+IC3CoMKgwqDCoMKgwqDCoGNoZWNrID0+
IFsncGVybScsICcvc2RuL3ZuZXRzL3t2bmV0fScsIFsnU0ROLkFsbG9jYXRlJ11dLA0KPiAtwqDC
oCB9LA0KPiArwqDCoMKgwqDCoMKgwqBkZXNjcmlwdGlvbiA9PiAiUmVxdWlyZXMgJ1NETi5BbGxv
Y2F0ZScgcGVybWlzc2lvbiBvbg0KPiAnL3Nkbi96b25lcy88em9uZT4vPHZuZXQ+JyIsDQo+ICvC
oMKgwqDCoMKgwqDCoHVzZXIgPT4gJ2FsbCcsDQo+ICvCoMKgwqAgfSwNCj4gwqDCoMKgwqAgcGFy
YW1ldGVycyA9PiB7DQo+IMKgwqDCoMKgwqDCoMKgwqBhZGRpdGlvbmFsUHJvcGVydGllcyA9PiAw
LA0KPiDCoMKgwqDCoMKgwqDCoMKgcHJvcGVydGllcyA9PiB7DQo+IEBAIC0xNDQsNiArMTU0LDkg
QEAgX19QQUNLQUdFX18tPnJlZ2lzdGVyX21ldGhvZCAoew0KPiDCoMKgwqDCoCBjb2RlID0+IHN1
YiB7DQo+IMKgwqDCoMKgwqDCoMKgwqBteSAoJHBhcmFtKSA9IEBfOw0KPiDCoA0KPiArwqDCoMKg
wqDCoMKgwqBteSAkcnBjZW52ID0gUFZFOjpSUENFbnZpcm9ubWVudDo6Z2V0KCk7DQo+ICvCoMKg
wqDCoMKgwqDCoG15ICRhdXRodXNlciA9ICRycGNlbnYtPmdldF91c2VyKCk7DQo+ICsNCj4gwqDC
oMKgwqDCoMKgwqDCoG15ICRjZmcgPSB7fTsNCj4gwqDCoMKgwqDCoMKgwqDCoGlmKCRwYXJhbS0+
e3BlbmRpbmd9KSB7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbXkgJHJ1bm5pbmdfY2ZnID0g
UFZFOjpOZXR3b3JrOjpTRE46OnJ1bm5pbmdfY29uZmlnKCk7DQo+IEBAIC0xNTYsNiArMTY5LDEx
IEBAIF9fUEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRob2QgKHsNCj4gwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCAkY2ZnID0gUFZFOjpOZXR3b3JrOjpTRE46OlZuZXRzOjpjb25maWcoKTsNCj4gwqDCoMKg
wqDCoMKgwqDCoH0NCj4gwqANCj4gK8KgwqDCoMKgwqDCoMKgbXkgJHpvbmUgPSAkY2ZnLT57JHZu
ZXR9LT57em9uZX07DQo+ICvCoMKgwqDCoMKgwqDCoHJldHVybiBpZiAhJHpvbmU7DQo+ICsNCj4g
K8KgwqDCoMKgwqDCoMKgJGNoZWNrX3ZuZXRfYWNjZXNzKCRycGNlbnYsICRhdXRodXNlciwgJHpv
bmUsICR2bmV0LA0KPiBbJ1NETi5BbGxvY2F0ZSddKTsNCj4gKw0KPiDCoMKgwqDCoMKgwqDCoMKg
cmV0dXJuICRhcGlfc2RuX3ZuZXRzX2NvbmZpZy0+KCRjZmcsICRwYXJhbS0+e3ZuZXR9KTsNCj4g
wqDCoMKgwqAgfX0pOw0KPiDCoA0KPiBAQCAtMTY2LDcgKzE4NCw3IEBAIF9fUEFDS0FHRV9fLT5y
ZWdpc3Rlcl9tZXRob2QgKHsNCj4gwqDCoMKgwqAgbWV0aG9kID0+ICdQT1NUJywNCj4gwqDCoMKg
wqAgZGVzY3JpcHRpb24gPT4gIkNyZWF0ZSBhIG5ldyBzZG4gdm5ldCBvYmplY3QuIiwNCj4gwqDC
oMKgwqAgcGVybWlzc2lvbnMgPT4gew0KPiAtwqDCoMKgwqDCoMKgwqBjaGVjayA9PiBbJ3Blcm0n
LCAnL3Nkbi92bmV0cycsIFsnU0ROLkFsbG9jYXRlJ11dLA0KPiArwqDCoMKgwqDCoMKgwqBjaGVj
ayA9PiBbJ3Blcm0nLCAnL3Nkbi96b25lcy97em9uZX0nLCBbJ1NETi5BbGxvY2F0ZSddXSwNCj4g
wqDCoMKgwqAgfSwNCj4gwqDCoMKgwqAgcGFyYW1ldGVycyA9PiBQVkU6Ok5ldHdvcms6OlNETjo6
Vm5ldFBsdWdpbi0+Y3JlYXRlU2NoZW1hKCksDQo+IMKgwqDCoMKgIHJldHVybnMgPT4geyB0eXBl
ID0+ICdudWxsJyB9LA0KPiBAQCAtMjEwLDI0ICsyMjgsMzYgQEAgX19QQUNLQUdFX18tPnJlZ2lz
dGVyX21ldGhvZCAoew0KPiDCoMKgwqDCoCBtZXRob2QgPT4gJ1BVVCcsDQo+IMKgwqDCoMKgIGRl
c2NyaXB0aW9uID0+ICJVcGRhdGUgc2RuIHZuZXQgb2JqZWN0IGNvbmZpZ3VyYXRpb24uIiwNCj4g
wqDCoMKgwqAgcGVybWlzc2lvbnMgPT4gew0KPiAtwqDCoMKgwqDCoMKgwqBjaGVjayA9PiBbJ3Bl
cm0nLCAnL3Nkbi92bmV0cycsIFsnU0ROLkFsbG9jYXRlJ11dLA0KPiArwqDCoMKgwqDCoMKgwqBk
ZXNjcmlwdGlvbiA9PiAiUmVxdWlyZXMgJ1NETi5BbGxvY2F0ZScgcGVybWlzc2lvbiBvbg0KPiAn
L3Nkbi96b25lcy88em9uZT4vPHZuZXQ+JyIsDQo+ICvCoMKgwqDCoMKgwqDCoHVzZXIgPT4gJ2Fs
bCcsDQo+IMKgwqDCoMKgIH0sDQo+IMKgwqDCoMKgIHBhcmFtZXRlcnMgPT4gUFZFOjpOZXR3b3Jr
OjpTRE46OlZuZXRQbHVnaW4tPnVwZGF0ZVNjaGVtYSgpLA0KPiDCoMKgwqDCoCByZXR1cm5zID0+
IHsgdHlwZSA9PiAnbnVsbCcgfSwNCj4gwqDCoMKgwqAgY29kZSA9PiBzdWIgew0KPiDCoMKgwqDC
oMKgwqDCoMKgbXkgKCRwYXJhbSkgPSBAXzsNCj4gwqANCj4gK8KgwqDCoMKgwqDCoMKgbXkgJHJw
Y2VudiA9IFBWRTo6UlBDRW52aXJvbm1lbnQ6OmdldCgpOw0KPiArwqDCoMKgwqDCoMKgwqBteSAk
YXV0aHVzZXIgPSAkcnBjZW52LT5nZXRfdXNlcigpOw0KPiArDQo+IMKgwqDCoMKgwqDCoMKgwqBt
eSAkaWQgPSBleHRyYWN0X3BhcmFtKCRwYXJhbSwgJ3ZuZXQnKTsNCj4gwqDCoMKgwqDCoMKgwqDC
oG15ICRkaWdlc3QgPSBleHRyYWN0X3BhcmFtKCRwYXJhbSwgJ2RpZ2VzdCcpOw0KPiDCoA0KPiDC
oMKgwqDCoMKgwqDCoMKgUFZFOjpOZXR3b3JrOjpTRE46OmxvY2tfc2RuX2NvbmZpZyhzdWIgew0K
PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG15ICRjZmcgPSBQVkU6Ok5ldHdvcms6OlNETjo6Vm5l
dHM6OmNvbmZpZygpOw0KPiDCoA0KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqAgUFZFOjpTZWN0aW9u
Q29uZmlnOjphc3NlcnRfaWZfbW9kaWZpZWQoJGNmZywgJGRpZ2VzdCk7DQo+ICvCoMKgwqDCoMKg
wqDCoMKgwqDCoCBteSAkem9uZSA9ICRjZmctPntpZHN9LT57JGlkfS0+e3pvbmV9IC8vICRwYXJh
bXMtPnt6b25lfTsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgICMgVE9ETyBjYW4gdGhpcyBldmVu
IGhhcHBlbj8NCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIHJhaXNlX3BhcmFtX2V4Yyh7IHpvbmUg
PT4gIm1pc3Npbmcgem9uZSIgfSkgaWYgISR6b25lOw0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoCAkY2hlY2tfdm5ldF9hY2Nlc3MoJHJwY2VudiwgJGF1dGh1c2VyLCAkem9uZSwgJGlkLA0K
PiBbJ1NETi5BbGxvY2F0ZSddKTsNCj4gKw0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKG15
ICRuZXdfem9uZSA9ICRwYXJhbXMtPnt6b25lfSkgew0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgJHJwY2Vudi0+Y2hlY2soJGF1dGh1c2VyLCAiL3Nkbi96b25lcy8kbmV3X3pvbmUv
JGlkIiwNCj4gWydTRE4uQWxsb2NhdGUnXSk7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCB9DQo+
IMKgDQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBQVkU6OlNlY3Rpb25Db25maWc6OmFzc2VydF9p
Zl9tb2RpZmllZCgkY2ZnLCAkZGlnZXN0KTsNCj4gwqANCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCBteSAkb3B0cyA9IFBWRTo6TmV0d29yazo6U0ROOjpWbmV0UGx1Z2luLQ0KPiA+Y2hlY2tfY29u
ZmlnKCRpZCwgJHBhcmFtLCAwLCAxKTsNCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgIHJhaXNlX3Bh
cmFtX2V4Yyh7IHpvbmUgPT4gIm1pc3Npbmcgem9uZSJ9KSBpZiAhJG9wdHMtDQo+ID57em9uZX07
DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbXkgJHN1Ym5ldHMgPSBQVkU6Ok5ldHdvcms6OlNE
Tjo6Vm5ldHM6OmdldF9zdWJuZXRzKCRpZCk7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmFp
c2VfcGFyYW1fZXhjKHsgem9uZSA9PiAiY2FuJ3QgY2hhbmdlIHpvbmUgaWYgc3VibmV0cw0KPiBl
eGlzdHMifSkgaWYoJHN1Ym5ldHMgJiYgJG9wdHMtPnt6b25lfSBuZSAkY2ZnLT57aWRzfS0+eyRp
ZH0tDQo+ID57em9uZX0pOw0KPiDCoA0KPiBAQCAtMjU2LDcgKzI4Niw4IEBAIF9fUEFDS0FHRV9f
LT5yZWdpc3Rlcl9tZXRob2QgKHsNCj4gwqDCoMKgwqAgbWV0aG9kID0+ICdERUxFVEUnLA0KPiDC
oMKgwqDCoCBkZXNjcmlwdGlvbiA9PiAiRGVsZXRlIHNkbiB2bmV0IG9iamVjdCBjb25maWd1cmF0
aW9uLiIsDQo+IMKgwqDCoMKgIHBlcm1pc3Npb25zID0+IHsNCj4gLcKgwqDCoMKgwqDCoMKgY2hl
Y2sgPT4gWydwZXJtJywgJy9zZG4vdm5ldHMnLCBbJ1NETi5BbGxvY2F0ZSddXSwNCj4gK8KgwqDC
oMKgwqDCoMKgZGVzY3JpcHRpb24gPT4gIlJlcXVpcmVzICdTRE4uQWxsb2NhdGUnIHBlcm1pc3Np
b24gb24NCj4gJy9zZG4vem9uZXMvPHpvbmU+Lzx2bmV0PiciLA0KPiArwqDCoMKgwqDCoMKgwqB1
c2VyID0+ICdhbGwnLA0KPiDCoMKgwqDCoCB9LA0KPiDCoMKgwqDCoCBwYXJhbWV0ZXJzID0+IHsN
Cj4gwqDCoMKgwqDCoMKgwqDCoGFkZGl0aW9uYWxQcm9wZXJ0aWVzID0+IDAsDQo+IEBAIC0yNzAs
MTAgKzMwMSwxOSBAQCBfX1BBQ0tBR0VfXy0+cmVnaXN0ZXJfbWV0aG9kICh7DQo+IMKgwqDCoMKg
IGNvZGUgPT4gc3ViIHsNCj4gwqDCoMKgwqDCoMKgwqDCoG15ICgkcGFyYW0pID0gQF87DQo+IMKg
DQo+ICvCoMKgwqDCoMKgwqDCoG15ICRycGNlbnYgPSBQVkU6OlJQQ0Vudmlyb25tZW50OjpnZXQo
KTsNCj4gK8KgwqDCoMKgwqDCoMKgbXkgJGF1dGh1c2VyID0gJHJwY2Vudi0+Z2V0X3VzZXIoKTsN
Cj4gKw0KPiDCoMKgwqDCoMKgwqDCoMKgbXkgJGlkID0gZXh0cmFjdF9wYXJhbSgkcGFyYW0sICd2
bmV0Jyk7DQo+IMKgDQo+IMKgwqDCoMKgwqDCoMKgwqAgUFZFOjpOZXR3b3JrOjpTRE46OmxvY2tf
c2RuX2NvbmZpZyhzdWIgew0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG15ICRjZmcgPSBQVkU6
Ok5ldHdvcms6OlNETjo6Vm5ldHM6OmNvbmZpZygpOw0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAg
bXkgJHpvbmUgPSAkY2ZnLT57aWRzfS0+eyRpZH0tPnt6b25lfTsNCj4gK8KgwqDCoMKgwqDCoMKg
wqDCoMKgICMgVE9ETyBjYW4gdGhpcyBldmVuIGhhcHBlbj8NCj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgIHJhaXNlX3BhcmFtX2V4Yyh7IHpvbmUgPT4gIm1pc3Npbmcgem9uZSIgfSkgaWYgISR6b25l
Ow0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAkY2hlY2tfdm5ldF9hY2Nlc3MoJHJwY2Vu
diwgJGF1dGh1c2VyLCAkem9uZSwgJGlkLA0KPiBbJ1NETi5BbGxvY2F0ZSddKTsNCj4gKw0KPiDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIG15ICRzY2ZnID0NCj4gUFZFOjpOZXR3b3JrOjpTRE46OlZu
ZXRzOjpzZG5fdm5ldHNfY29uZmlnKCRjZmcsICRpZCk7ICMgY2hlY2sgaWYNCj4gZXhpc3RzDQo+
IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbXkgJHZuZXRfY2ZnID0gUFZFOjpOZXR3b3JrOjpTRE46
OlZuZXRzOjpjb25maWcoKTsNCj4gwqANCj4gYGBgDQo+IA0KPiBPbiBKdW5lIDcsIDIwMjMgMjow
MyBwbSwgQWxleGFuZHJlIERlcnVtaWVyIHdyb3RlOg0KPiA+IG5ldyBwYXRoIGlzIC96b25lcy88
em9uZT4vPHZuZXRpZD4NCj4gPiANCj4gPiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgRGVydW1p
ZXIgPGFkZXJ1bWllckBvZGlzby5jb20+DQo+ID4gLS0tDQo+ID4gwqBQVkUvTmV0d29yay9TRE4u
cG0gfCA0ICsrLS0NCj4gPiDCoDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVs
ZXRpb25zKC0pDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBhL1BWRS9OZXR3b3JrL1NETi5wbSBiL1BW
RS9OZXR3b3JrL1NETi5wbQ0KPiA+IGluZGV4IGI5NWRkNWIuLjFhZDg1ZTUgMTAwNjQ0DQo+ID4g
LS0tIGEvUFZFL05ldHdvcmsvU0ROLnBtDQo+ID4gKysrIGIvUFZFL05ldHdvcmsvU0ROLnBtDQo+
ID4gQEAgLTE5MCwxMCArMTkwLDEwIEBAIHN1YiBnZXRfbG9jYWxfdm5ldHMgew0KPiA+IMKgwqDC
oMKgwqDCoMKgwqBteSAkem9uZWlkID0gJHZuZXQtPnt6b25lfTsNCj4gPiDCoMKgwqDCoMKgwqDC
oMKgbXkgJGNvbW1lbnRzID0gJHZuZXQtPnthbGlhc307DQo+ID4gwqANCj4gPiAtwqDCoMKgwqDC
oMKgwqBteSAkcHJpdnMgPSBbICdTRE4uQXVkaXQnLCAnU0ROLkFsbG9jYXRlJyBdOw0KPiA+ICvC
oMKgwqDCoMKgwqDCoG15ICRwcml2cyA9IFsgJ1NETi5BdWRpdCcsICdTRE4uVXNlJyBdOw0KPiA+
IMKgDQo+ID4gwqDCoMKgwqDCoMKgwqDCoG5leHQgaWYgISR6b25laWQ7DQo+ID4gLcKgwqDCoMKg
wqDCoMKgbmV4dCBpZiAhJHJwY2Vudi0+Y2hlY2tfYW55KCRhdXRodXNlciwNCj4gPiAiL3Nkbi96
b25lcy8kem9uZWlkIiwgJHByaXZzLCAxKSAmJiAhJHJwY2Vudi0+Y2hlY2tfYW55KCRhdXRodXNl
ciwNCj4gPiAiL3Nkbi92bmV0cy8kdm5ldGlkIiwgJHByaXZzLCAxKTsNCj4gPiArwqDCoMKgwqDC
oMKgwqBuZXh0IGlmICEkcnBjZW52LT5jaGVja19zZG5fYnJpZGdlKCRhdXRodXNlciwgJHpvbmVp
ZCwNCj4gPiAkdm5ldGlkLCAkcHJpdnMsIDEpOw0KPiA+IMKgDQo+ID4gwqDCoMKgwqDCoMKgwqDC
oG15ICR6b25lX2NvbmZpZyA9DQo+ID4gUFZFOjpOZXR3b3JrOjpTRE46OlpvbmVzOjpzZG5fem9u
ZXNfY29uZmlnKCR6b25lc19jZmcsICR6b25laWQpOw0KPiA+IMKgDQo+ID4gLS0gDQo+ID4gMi4z
MC4yDQo+ID4gDQo+ID4gDQo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18NCj4gPiBwdmUtZGV2ZWwgbWFpbGluZyBsaXN0DQo+ID4gcHZlLWRldmVsQGxp
c3RzLnByb3htb3guY29tDQo+ID4gaHR0cHM6Ly9hbnRpcGhpc2hpbmcuY2V0c2kuZnIvcHJveHkv
djM/aT1NVW8wUnpGSVJUVnZiRmhZVkdsb1FvbG9aUWo2dHZxeWhwRVJzbjV6OFo0JnI9Y0ZkR05I
RmpWRU5uV0RFelVWbGlTWWlLOTJBLTh0UGp5ME9rclFCRktzTnR3RlFQVkZWd3ZQYWdhRlhPZEl2
SyZmPU9EbEpORlJKVGpaQmNXRmxhV3hRYUNDQ2ZLRkVpUHFuTklkQS1PRmVSV2hSa1lHdkNva0Fz
WThQZG9QRjh6LUllcTRWM1dOcHpvNEdyOG5FNzZZT3hRJnU9aHR0cHMlM0EvL2xpc3RzLnByb3ht
b3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwmaz1iMXA1DQo+ID4gDQo+
ID4gDQo+ID4gDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18NCj4gcHZlLWRldmVsIG1haWxpbmcgbGlzdA0KPiBwdmUtZGV2ZWxAbGlzdHMu
cHJveG1veC5jb20NCj4gaHR0cHM6Ly9hbnRpcGhpc2hpbmcuY2V0c2kuZnIvcHJveHkvdjM/aT1N
VW8wUnpGSVJUVnZiRmhZVkdsb1FvbG9aUWo2dHZxeWhwRVJzbjV6OFo0JnI9Y0ZkR05IRmpWRU5u
V0RFelVWbGlTWWlLOTJBLTh0UGp5ME9rclFCRktzTnR3RlFQVkZWd3ZQYWdhRlhPZEl2SyZmPU9E
bEpORlJKVGpaQmNXRmxhV3hRYUNDQ2ZLRkVpUHFuTklkQS1PRmVSV2hSa1lHdkNva0FzWThQZG9Q
Rjh6LUllcTRWM1dOcHpvNEdyOG5FNzZZT3hRJnU9aHR0cHMlM0EvL2xpc3RzLnByb3htb3guY29t
L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwmaz1iMXA1DQo+IA0KDQo=