From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 BB6059D1D1 for ; Fri, 2 Jun 2023 14:12:12 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 9A4C92A26A for ; Fri, 2 Jun 2023 14:12:12 +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 ; Fri, 2 Jun 2023 14:12:11 +0200 (CEST) Received: from CYLNEXC01.cyllene.corp (unknown [10.0.250.28]) by mail02.cetsi.fr (Postfix) with ESMTP id 322174050294 for ; Fri, 2 Jun 2023 14:12:10 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mail02.cetsi.fr 322174050294 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groupe-cyllene.com; s=dkim; t=1685707930; bh=V8nCKyoFOvy1mlFm5x2zAcBDXwrlXRWZ5NNhcWWZinw=; h=From:To:Subject:Date:References:In-Reply-To:From; b=GBJCGuKPMPS3K70NBKmCwlR4NgwWSA2GKg/OJK9xLZlotWKr8p+vqJK+MFUoMZzoU 4vqPOaG7ZMkmpTkEU5/zno91jiFZzyCAElUNOPoss8iR1SvPB2hwnH32eiXudSynjS veQY00SnYCnlaNLQq0361BYd+SbSR3PnQ4baORng= 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; Fri, 2 Jun 2023 14:12:10 +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; Fri, 2 Jun 2023 14:12:10 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nghg3JOslxRI0hTQfTfBfTjwdmu7GNveP84juCQKAZTDD1L+S/QaXX9JxgilL+GcDlfX7udbLbEy6sdwdlezkm7lOpYBY13QVlwcJfUE+jlPIzHXc6RrgdEuUnNiczci9C063WBAFfxlk/1yWnnpOhN9/LFkUlS8jh/hTVRSFbQpjrN9hRoYSVQ75MlrbgCcD5BW4pfq+T8ajqSIS6K731AMJI/q+DQGSoO9S+oNZMWFGL4+zN9jf5rLlJIiCOBOKM60KStGcSpSw0Awkemz42EI/ofi+H+Sm8uJsud4gYdSr0bDPcPwGoXAbawnYSxh9H/nSvAjXHh4RLlH2ukzDw== 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=V8nCKyoFOvy1mlFm5x2zAcBDXwrlXRWZ5NNhcWWZinw=; b=FzOzdHLYaOwpjQPMm/YFOdpyQtxsHZG+4EagcW3Zlp8zOP6SzAYns+vbOl71wTVbE/zspBQntnIUz2y0+ua5po1SqkRTsgbd76+CdZxceVeIWzG2DKzRGWUa1VK14gpnHpKJ30BPpW7VW+2No0eThiDObAQ9wDc9IYM/zEE2rBSa4ridp2pWfwextqGKzjWKtxCwVzZRCtxHSxIe5beXzvW01P277LEt4pVah77oDeCE+0bjDE3v2wBDBlXfJxp2nolcYTFBd/al4yrbE2Zod9bsPrzfrRPtCZycZFWZU6xWQDfUJ2RP1EXqGzB+kZKqJKJ33ObEIoNlrA76uUP/sQ== 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=V8nCKyoFOvy1mlFm5x2zAcBDXwrlXRWZ5NNhcWWZinw=; b=cPIev36Fh1ELz3wVZTjyFLM1sj35cmkOS8NQoG8aVpDHux2tRaJxHmt4DefoSCRtjui+bAO2VDSvp8i+xtnuXVDu+y3LIVYoQppx5WfI0DhG4sdCCDA2ogHYcsAZICpNOLQeb41s+R80A1VX347SeGbg+hT4s7gjIUrsz3iWGCo= Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:32::17) by PR1P264MB1902.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:192::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.24; Fri, 2 Jun 2023 12:12:09 +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.024; Fri, 2 Jun 2023 12:12:09 +0000 From: "DERUMIER, Alexandre" To: "pve-devel@lists.proxmox.com" Thread-Topic: [pve-devel] [PATCH qemu-server 1/1] api2: add check_bridge_access for create/update vm Thread-Index: AQHZj6R/Ags2wZIeW0OjJ6jh1ioGda93b5aAgAAIB4A= Date: Fri, 2 Jun 2023 12:12:09 +0000 Message-ID: <2ded7b16a00bb521fe45c166e668e2eb26f074f2.camel@groupe-cyllene.com> References: <20230526073347.1615981-1-aderumier@odiso.com> <20230526073347.1615981-2-aderumier@odiso.com> <1685705445.0kkr7b9mhh.astroid@yuna.none> In-Reply-To: <1685705445.0kkr7b9mhh.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_|PR1P264MB1902:EE_ x-ms-office365-filtering-correlation-id: d4e206ac-c117-4d2c-1ee0-08db636296d3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /dMETCNVnCVOcB6rQlKLUh3z1i6NBCKKzdxM2f+O8ltkEuR/QEQ8+g9EWXyRMCjulVoNf9FI5ZaACduY+GHT0XkviYEgoPjrK8HBO94sfC4Mo/L0hIMVzDJiemWwUHETnB/m69/CvjIEXA0ntK+/RA2u5i/yCDSlzVav/WWeDPTwOaRBYxEgiPyo6kTIsbUod3yvZq7D47my35xyBlptKKYxOSweLCdTrTDv7rIRhPaywyr1Tgg97NF/ejtm3VBAblqXklTKIA/bPBp/cDO1mg2C09ycj1UFPpFmDaslzMD+cCWBOku/Nibnejafi6yUDF0SFFoyg06Wx3pNtFKqmmUMmWXFMoEPaDLFO1mbNQJhEyqLxJ4P1Tbs3LZI2aoESRTEZiB/zN5R+FFROOsqOjg7BazXh8vEUfQUtIDFZndg4tgu4TsHwQuwi5BEFg7xI3zRhP7M1efkO2+qm4Ys0tXdfzAkRVad6KQSOE2diy6ahUnhEIInPU1mRB86JM0rey0uW5POWF/IapTl0VyyyonjZn+vZWunsSpCY+TtxJ5LjLJu6gFTd5r3YmKlZhDQyRU2mp/pG8RA/ZvQMg5SU4XlYpc/8MZ0aDXma2mSBAU= 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)(396003)(366004)(376002)(39850400004)(136003)(346002)(451199021)(6512007)(6506007)(53546011)(186003)(966005)(6486002)(71200400001)(66574015)(2616005)(83380400001)(41300700001)(5660300002)(316002)(15650500001)(8676002)(2906002)(8936002)(478600001)(91956017)(76116006)(64756008)(66446008)(66556008)(66946007)(6916009)(66476007)(86362001)(36756003)(38070700005)(38100700002)(122000001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aEU3Q0h2eUg2UUk3VGdLTVprZ1k5cTc1M3NHSHpBRGJHdllRQUxONzV1OGdR?= =?utf-8?B?VkYwMXlPQ1FzWXppY2RzOXpxQzVTZ3RhZzFBam9saE1qRU5jNnlXRUdkTUhP?= =?utf-8?B?Q0IyVUpTVmNvZ201TnA2MVN5YXR3U1J0MUFrZ1A3RlU1dmU4UDVQeXRsWVhl?= =?utf-8?B?YTV2Rk9YTm9iVTZjRmRzLzhSODZlU0JZOEZzejlnakYwVy9SK3NnT0tvbnlT?= =?utf-8?B?eENtT1NRSGNpWWdOTGdXNStWU2pNRHpBNk4yMHM1QXI5TWIzSlFmTk84bG1j?= =?utf-8?B?UHhiNWxVSU45OHNnMGJteURHcVo1WDdCVlNGZWs4QktvL2NBUC9nSy9lTDRQ?= =?utf-8?B?dFdsQmlWdi9qZ2MvREpXcXErcmRqTnRQcHJwOVB6THpVQnJEbWJkTGFUSGcz?= =?utf-8?B?UFJQVHBMQnhWSlcrSzNPL1htMVlpdGNRR2JtS2s4azg2dFArYXU4VDR2SkhO?= =?utf-8?B?WTRwOFFXQkRvMzN3TDBaTkNremVwaXgwNlpLaEV3Z040NnpWU2padXNzbFVi?= =?utf-8?B?b2I2R21BYmVUcHZBVTdrWUtRZUpnbVNzRzQzTUpEWEdlZ2FPSDNRMkZNcDMz?= =?utf-8?B?WEhJSzhsU1FNWCtqUXFsQm9wSkNYME11NklCNHZoNE9hVGVSdGtBSmd3QXVK?= =?utf-8?B?N0psVmd0djRkaXNBdnpCVjlOKzFOTXQ3cE9mV0p4cG5wNHNuY0VPSmhHUU9W?= =?utf-8?B?VHVXZmVzQ0F2cmdQQksyTXhIYW5NMDJXWTNxMnNaZGZsUzZrUWhmZ1dzSUcx?= =?utf-8?B?ZVFVNm01MFdBOVRzMlh1NWw4cm5sN3ZVeEdkemJYT3UvTjVhL2loL3R0UGw3?= =?utf-8?B?VStWUERNUFZydnRQaWJ4bW01TDdTVWJ5UmRQK2RwY1FYYW1DVUwxTGtGWVRy?= =?utf-8?B?eUl5VEZ5bTVOd1NoOG53Tm5RWVlMeFEvRkJLaDNxeERCekZSOHpLQWp4RzNT?= =?utf-8?B?MVVsTFN1ekQxbGNPTlNTdGs0UzZWT1ZtK0lTWmk4WlNkd0RNWWxJaXFXMjd0?= =?utf-8?B?OFlWMTdtbXYxYm1USjdKa3BvZWVaVFBNS1dMS1NoVHp2MEVUR1ZKMFc3RE51?= =?utf-8?B?RERISWRwUW83Z2RDVHVka3JjNklBWTlGdzFaY2EzMHNkdEt3ZmkrNCsvVFN4?= =?utf-8?B?TG01UFpYNDdKaVhzTDgycFNqb0lpMmkxRFFGNXNqeTBZMTBYN3MzNEg0ZHh2?= =?utf-8?B?SDBRckltemhtVVFnV3Vwb2kyRTJwbitEUUtTYnFXOHpLckgzd2x1Z3FRdHgr?= =?utf-8?B?VkQvb3lUemdVUDlrazU0WjhHeFkrTWtoVFJGVUhEYlFQQWZiT2VlZGNKTUpy?= =?utf-8?B?YUVqc0dpenZLcytDd25wRUtjWXNtSk9XVzJEa3lqMlZpcCttRGsrbk14U3k1?= =?utf-8?B?c2JUblp4M3R2UTZ0NCtTdXRZQjFpcHAzVFovZVFxYjZQbXU4UEdXZkhLTVpl?= =?utf-8?B?cG5XSUxpZHJza01xT1BabUsrM2JsSjUrS0VoRE1tODhGcmFnNmdQdHhIbngx?= =?utf-8?B?S3N6Ymt0MVRRYmdTMVM5VHk3Slg4VVpoSURhc2VQeUFoRFVhK0VId2l6L0Er?= =?utf-8?B?Z1hPQzVEZEdQcUdQUDB3bm9kSyticU9iNFB2WTRxd1R4cHg4ZjZLSEpkOHdw?= =?utf-8?B?NEZvQlhrWUdYMk43UElUTU5DOGUzb0tNNHVONWpqVGU1OTVwQTFmVnd1NFR0?= =?utf-8?B?cWRGcyt2a3pGRTJ4VUlWZlhrM3gvOUdVVTBQa0k5czQ5Z0Y1UlVuM3N6cXJr?= =?utf-8?B?Mi9WWFJOV3g1VHJsbjY2eTdIcVlWZVhqMDg5MUR2SVNwUE9SUkJnQ0xXcmQ0?= =?utf-8?B?QVQwcHpPSFZQL0k1WmFnTkxRMzZ3dTBXTUczdW5XYXRsYkpvMmQ5V2NrdVc1?= =?utf-8?B?eEpmWXRRdGl4emF0WnhIRDFWamNzWWRlQVBnMnBqbExJZXByOVR2QzU2aSs2?= =?utf-8?B?dzRINjQ3TFRUTkhwak5kYWxxQTZhMlF1K1VrbmVNQnFZS0RCNWpiK3lPYk5o?= =?utf-8?B?K3dUWTQxV21KalNLZXpSeGhVNFN0Q0huWXhaZjdndU1BR1h4cGNxMlphTTlt?= =?utf-8?B?YzBqZXR5ZGVXalFaYVpFeTV0bVJqV3lmSDlLWGpDN3ZoWEhYR05FUmR1ejlT?= =?utf-8?B?aTM1ODY5b3RMVVV4NlI5RFBDWDRoNWRVbllSVFVwZlZuUGs2amtHbEZSaHFj?= =?utf-8?Q?m5Q344sm72diAALTJDgXWxWOUws/Rxqzq9tL76fzFoVQ?= Content-Type: text/plain; charset="utf-8" Content-ID: <6F781C2B2218F3428CB58A196D75334A@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: d4e206ac-c117-4d2c-1ee0-08db636296d3 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jun 2023 12:12:09.1083 (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: XezQyOCSvlOui+RiI5vo8hOC91M/dx89/eT6z3yS1d9JY326fUXVPRNA/5+7RgkMZEBbCgrCDi2CdcIBzr96XeWJj0TcBZMAW0m4/src75QHsqV7/8tQU/Q9omBKDog8 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR1P264MB1902 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.455 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 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. [groupecyllene.onmicrosoft.com, proxmox.com, qemu.pm, cetsi.fr, groupe-cyllene.com] Subject: Re: [pve-devel] [PATCH qemu-server 1/1] api2: add check_bridge_access for create/update vm X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jun 2023 12:12:12 -0000 TGUgdmVuZHJlZGkgMDIganVpbiAyMDIzIMOgIDEzOjQzICswMjAwLCBGYWJpYW4gR3LDvG5iaWNo bGVyIGEgw6ljcml0wqA6DQo+IGEgZmV3IG1vcmUgcGxhY2VzIHRoYXQgY29tZSB0byBteSBtaW5k IHRoYXQgbWlnaHQgd2FycmFudCBmdXJ0aGVyDQo+IHRoaW5raW5nIG9yIGRpc2N1c3Npb246DQo+ IC0gcmVzdG9yaW5nIGEgYmFja3VwDQpkb2Vzbid0IGl0IGFsc28gdXNlIGNyZWF0ZV92bSA/DQoN Cl9fUEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRob2Qoew0KICAgIG5hbWUgPT4gJ2NyZWF0ZV92bScs DQogICAgcGF0aCA9PiAnJywNCiAgICBtZXRob2QgPT4gJ1BPU1QnLA0KICAgIGRlc2NyaXB0aW9u ID0+ICJDcmVhdGUgb3IgcmVzdG9yZSBhIHZpcnR1YWwgbWFjaGluZS4iLA0KDQoNCj4gLSBjbG9u aW5nIGEgVk0NCg0KZm9yIGNsb25pbmcsIHdlIGNhbid0IGNoYW5nZSB0aGUgdGFyZ2V0IGJyaWRn ZSwgc28gaWYgdXNlciBoYXZlIGFjY2Vzcw0KdG8gdGhlIGNsb25lLCBpc24ndCBpdCBlbm91Z2gg Pw0KDQoNCg0KPiANCj4gT24gTWF5IDI2LCAyMDIzIDk6MzMgYW0sIEFsZXhhbmRyZSBEZXJ1bWll ciB3cm90ZToNCj4gPiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgRGVydW1pZXIgPGFkZXJ1bWll ckBvZGlzby5jb20+DQo+ID4gLS0tDQo+ID4gwqBQVkUvQVBJMi9RZW11LnBtIHwgMzcgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPiA+IMKgMSBmaWxlIGNoYW5nZWQsIDM2 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvUFZF L0FQSTIvUWVtdS5wbSBiL1BWRS9BUEkyL1FlbXUucG0NCj4gPiBpbmRleCA1ODdiYjIyLi5lYmVm OTNmIDEwMDY0NA0KPiA+IC0tLSBhL1BWRS9BUEkyL1FlbXUucG0NCj4gPiArKysgYi9QVkUvQVBJ Mi9RZW11LnBtDQo+ID4gQEAgLTQ2LDYgKzQ2LDEyIEBAIHVzZSBQVkU6OlNTSEluZm87DQo+ID4g wqB1c2UgUFZFOjpSZXBsaWNhdGlvbjsNCj4gPiDCoHVzZSBQVkU6OlN0b3JhZ2VUdW5uZWw7DQo+ ID4gwqANCj4gPiArbXkgJGhhdmVfc2RuOw0KPiA+ICtldmFsIHsNCj4gPiArwqDCoMKgIHJlcXVp cmUgUFZFOjpOZXR3b3JrOjpTRE47DQo+ID4gK8KgwqDCoCAkaGF2ZV9zZG4gPSAxOw0KPiA+ICt9 Ow0KPiA+ICsNCj4gPiDCoEJFR0lOIHsNCj4gPiDCoMKgwqDCoCBpZiAoISRFTlZ7UFZFX0dFTkVS QVRJTkdfRE9DU30pIHsNCj4gPiDCoMKgwqDCoMKgwqDCoMKgcmVxdWlyZSBQVkU6OkhBOjpFbnY6 OlBWRTI7DQo+ID4gQEAgLTYwMSw2ICs2MDcsMzMgQEAgbXkgJGNoZWNrX3ZtX2NyZWF0ZV91c2Jf cGVybSA9IHN1YiB7DQo+ID4gwqDCoMKgwqAgcmV0dXJuIDE7DQo+ID4gwqB9Ow0KPiA+IMKgDQo+ ID4gK215ICRjaGVja19icmlkZ2VfYWNjZXNzID0gc3ViIHsNCj4gPiArwqDCoMKgIG15ICgkcnBj ZW52LCAkYXV0aHVzZXIsICRwYXJhbSkgPSBAXzsNCj4gPiArDQo+ID4gK8KgwqDCoCByZXR1cm4g MSBpZiAkYXV0aHVzZXIgZXEgJ3Jvb3RAcGFtJzsNCj4gPiArDQo+ID4gK8KgwqDCoCBmb3JlYWNo IG15ICRvcHQgKGtleXMgJXskcGFyYW19KSB7DQo+ID4gK8KgwqDCoMKgwqDCoMKgbmV4dCBpZiAk b3B0ICF+IG0vXm5ldFxkKyQvOw0KPiA+ICvCoMKgwqDCoMKgwqDCoG15ICRuZXQgPSBQVkU6OlFl bXVTZXJ2ZXI6OnBhcnNlX25ldCgkcGFyYW0tPnskb3B0fSk7DQo+ID4gK8KgwqDCoMKgwqDCoMKg bXkgJGJyaWRnZSA9ICRuZXQtPnticmlkZ2V9Ow0KPiA+ICvCoMKgwqDCoMKgwqDCoG15ICR0YWcg PSAkbmV0LT57dGFnfTsNCj4gPiArwqDCoMKgwqDCoMKgwqBteSAkem9uZSA9ICdsb2NhbCc7DQo+ ID4gKw0KPiA+ICvCoMKgwqDCoMKgwqDCoGlmICgkaGF2ZV9zZG4pIHsNCj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqAgbXkgJHZuZXRfY2ZnID0gUFZFOjpOZXR3b3JrOjpTRE46OlZuZXRzOjpjb25m aWcoKTsNCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGRlZmluZWQobXkgJHZuZXQgPQ0K PiA+IFBWRTo6TmV0d29yazo6U0ROOjpWbmV0czo6c2RuX3ZuZXRzX2NvbmZpZygkdm5ldF9jZmcs ICRicmlkZ2UsIDEpKSkNCj4gPiB7DQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCR6b25lID0gJHZuZXQtPnt6b25lfTsNCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQ0KPiA+ ICvCoMKgwqDCoMKgwqDCoH0NCj4gPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gMSBpZiAkcnBjZW52 LT5jaGVja19hbnkoJGF1dGh1c2VyLA0KPiA+ICIvc2RuL3pvbmVzLyR6b25lIiwgWydTRE4uQXVk aXQnLCAnU0ROLkFsbG9jYXRlJ10sIDEpOw0KPiANCj4gd2h5IGlzIHRoaXMgJG5vZXJyPyBzaG91 bGQgYmUgYSBoYXJkIGZhaWwgQUZBSUNUISBhLCByZS1yZWFkaW5nIHRoZQ0KPiBjb3ZlciBsZXR0 ZXIsIHRoaXMgaXMgaW50ZW50aW9uYWwuIG1pZ2h0IGJlIHdvcnRoIGEgY2FsbG91dCBoZXJlIGlu IGENCj4gY29tbWVudCAoYW5kIG9uY2UgdGhpcyBpcyBmaW5hbGl6ZWQsIGluIHRoZSBkb2NzIDsp KQ0KeWVzLCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hlY2sgbGF0ZXIgaWYgd2UgaGF2ZSBwZXJtaXNz b2lucyBvbg0KYnJpZGdlL3RhZw0KDQo+IA0KPiA+ICvCoMKgwqDCoMKgwqDCoHJldHVybiAxIGlm ICR0YWcgJiYgJHJwY2Vudi0+Y2hlY2tfYW55KCRhdXRodXNlciwNCj4gPiAiL3Nkbi92bmV0cy8k YnJpZGdlLiR0YWciLCBbJ1NETi5BdWRpdCcsICdTRE4uQWxsb2NhdGUnXSwgMSk7DQo+IA0KPiBz YW1lIGhlcmUsIEkgdGhpbmsgSSdkIHByZWZlciAvc2RuL3ZuZXRzLyRicmlkZ2UvJHRhZyBpZiB3 ZSBnbyBkb3duDQo+IHRoYXQNCj4gcm91dGUhIHRoZW4gdGhpcyB3b3VsZCBhbHNvIGJlIGltcHJv dmVkLCBzaW5jZSBoYXZpbmcgYWNjZXNzIHRvIHRoZQ0KPiB0YWcNCj4gYWxzbyBjaGVja3MgYWNj ZXNzIHRvIHRoZSBicmlkZ2UsIGFuZCB0aGlzIGNvdWxkIGJlIHR1cm5lZCBpbnRvIGENCj4gaGFy ZA0KPiBmYWlsLCB3aGljaCBpdCBzaG91bGQgYmUhDQo+IA0KSSBoYWQgdHJpZWQgdGhpcyB3YXks IEkgZG9uJ3QgcmVtZW1iZXIsIEkgdGhpbmsgSSBoYWQgYSBwcm9ibGVtDQpzb21ld2hlcmUsDQpi dXQgSSdsbCByZXRyeSBpdCBhZ2FpbiwgYXMgaXQncyBjbGVhbmVyIGluZGVlZC4NCg0KDQo+IHdo YXQgYWJvdXQgdHJ1bmtpbmc/DQo+IA0Kbm90IGltcGxlbWVudGVkIGluZGVlZCwgYnV0IEkgdGhp bmsgd2UgY291bGQgY29tcGFyZSB0aGUgdHJ1bmsgdmxhbnMNCmxpc3QgdG8gdGhlIHZsYW4gcGF0 aCBwZXJtaXNzaW9ucy4NCg0KT3IgbWF5YmUgd2UganVzdCB3YW50IHRoYXQgdXNlciBoYXZlIGZ1 bGwgYnJpZGdlIHBlcm1pc3Npb25zLHRvIGRlZmluZWQNCnRoZSBhbnkgdmxhbnMgaW4gdGhlIHRy dW5rID8NCg0KDQo+ID4gKw0KPiA+ICvCoMKgwqDCoMKgwqDCoCRycGNlbnYtPmNoZWNrX2FueSgk YXV0aHVzZXIsICIvc2RuL3ZuZXRzLyRicmlkZ2UiLA0KPiA+IFsnU0ROLkF1ZGl0JywgJ1NETi5B bGxvY2F0ZSddKTsNCj4gDQo+IGZvciB0aGUgd2hvbGUgYmxvY2sgb2YgY2hlY2tzIGhlcmU6DQo+ IA0KPiB3aGF0IGFyZSB0aGUgc2VtYW50aWNzIG9mIEF1ZGl0IGFuZCBBbGxvY2F0ZSBoZXJlPyBk byB3ZSBuZWVkIGFub3RoZXINCj4gbGV2ZWwgYmV0d2VlbiAic2VlcyBicmlkZ2Uvdm5ldCIgYW5k ICJjYW4gYWRtaW5pc3Rlci9yZWNvbmZpZ3VyZQ0KPiBicmlkZ2Uvdm5ldCIgdGhhdCBzYXlzICJj YW4gdXNlIGJyaWRnZS92bmV0Ij8NCg0KbW1tbSwgdGhlIFNETi5BbGxvY2F0ZSBvbiAvc2RuL3Zu ZXRzIGluZGVlZCBkb24ndCBtYWtlIHNlbnNlLg0KKGl0J3Mgb25seSBvbiB0aGUgL3Nkbi96b25l cywgd2hlcmUgeW91IGFsbG9jYXRlIHRoZSB2bmV0cykuDQoNCml0IHNob3VsZCBiZSBTRE4uQXVk aXQgb25seS4NCg0KDQoNCg0KPiANCj4gPiArwqDCoMKgIH0NCj4gPiArwqDCoMKgIHJldHVybiAx Ow0KPiA+ICt9Ow0KPiA+ICsNCj4gPiDCoG15ICRjaGVja192bV9tb2RpZnlfY29uZmlnX3Blcm0g PSBzdWIgew0KPiA+IMKgwqDCoMKgIG15ICgkcnBjZW52LCAkYXV0aHVzZXIsICR2bWlkLCAkcG9v bCwgJGtleV9saXN0KSA9IEBfOw0KPiA+IMKgDQo+ID4gQEAgLTg3OCw3ICs5MTEsNyBAQCBfX1BB Q0tBR0VfXy0+cmVnaXN0ZXJfbWV0aG9kKHsNCj4gPiDCoA0KPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgJiRjaGVja192bV9jcmVhdGVfc2VyaWFsX3Blcm0oJHJwY2VudiwgJGF1dGh1c2VyLA0K PiA+ICR2bWlkLCAkcG9vbCwgJHBhcmFtKTsNCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICYk Y2hlY2tfdm1fY3JlYXRlX3VzYl9wZXJtKCRycGNlbnYsICRhdXRodXNlciwgJHZtaWQsDQo+ID4g JHBvb2wsICRwYXJhbSk7DQo+ID4gLQ0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAmJGNoZWNr X2JyaWRnZV9hY2Nlc3MoJHJwY2VudiwgJGF1dGh1c2VyLCAkcGFyYW0pOw0KPiA+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgJiRjaGVja19jcHVfbW9kZWxfYWNjZXNzKCRycGNlbnYsICRhdXRodXNl ciwgJHBhcmFtKTsNCj4gPiDCoA0KPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJGNoZWNrX2Ry aXZlX3BhcmFtLT4oJHBhcmFtLCAkc3RvcmVjZmcpOw0KPiA+IEBAIC0xNTc4LDYgKzE2MTEsOCBA QCBteSAkdXBkYXRlX3ZtX2FwacKgID0gc3ViIHsNCj4gPiDCoA0KPiA+IMKgwqDCoMKgICYkY2hl Y2tfc3RvcmFnZV9hY2Nlc3MoJHJwY2VudiwgJGF1dGh1c2VyLCAkc3RvcmVjZmcsICR2bWlkLA0K PiA+ICRwYXJhbSk7DQo+ID4gwqANCj4gPiArwqDCoMKgICYkY2hlY2tfYnJpZGdlX2FjY2Vzcygk cnBjZW52LCAkYXV0aHVzZXIsICRwYXJhbSk7DQo+ID4gKw0KPiA+IMKgwqDCoMKgIG15ICR1cGRh dGVmbiA9wqAgc3ViIHsNCj4gPiDCoA0KPiA+IMKgwqDCoMKgwqDCoMKgwqBteSAkY29uZiA9IFBW RTo6UWVtdUNvbmZpZy0+bG9hZF9jb25maWcoJHZtaWQpOw0KPiA+IC0tIA0KPiA+IDIuMzAuMg0K PiA+IA0KPiA+IA0KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fDQo+ID4gcHZlLWRldmVsIG1haWxpbmcgbGlzdA0KPiA+IHB2ZS1kZXZlbEBsaXN0cy5w cm94bW94LmNvbQ0KPiA+IGh0dHBzOi8vYW50aXBoaXNoaW5nLmNldHNpLmZyL3Byb3h5L3YzP2k9 Wms5MlZFRkthR1E0VW1zNGNuWkVVV01UcGZIYVhGUUdSdzFfQ25Pb09IMCZyPWJIQTFkR1YzTldK UVZVbG9hV05GVVpQdTBmSzJCZldObkVIYURMRHdHMHJ0RGVkcGx1WkJJZmZTTDFNNWNqM0YmZj1T bGhEYkU5dVMybGFTMkphWkZwTld2bXN4YWkxemxKUDlsbGdubDVISXYtNGpBamk4RGgyQlFhd3p4 SUQ1YnpyNlV2LTNFUWQtZWx1UWJzUGZjVU9UZyZ1PWh0dHBzJTNBLy9saXN0cy5wcm94bW94LmNv bS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRldmVsJms9WFJLVQ0KPiA+IA0KPiA+IA0K PiA+IA0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fDQo+IHB2ZS1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gcHZlLWRldmVsQGxpc3RzLnByb3ht b3guY29tDQo+IGh0dHBzOi8vYW50aXBoaXNoaW5nLmNldHNpLmZyL3Byb3h5L3YzP2k9Wms5MlZF RkthR1E0VW1zNGNuWkVVV01UcGZIYVhGUUdSdzFfQ25Pb09IMCZyPWJIQTFkR1YzTldKUVZVbG9h V05GVVpQdTBmSzJCZldObkVIYURMRHdHMHJ0RGVkcGx1WkJJZmZTTDFNNWNqM0YmZj1TbGhEYkU5 dVMybGFTMkphWkZwTld2bXN4YWkxemxKUDlsbGdubDVISXYtNGpBamk4RGgyQlFhd3p4SUQ1Ynpy NlV2LTNFUWQtZWx1UWJzUGZjVU9UZyZ1PWh0dHBzJTNBLy9saXN0cy5wcm94bW94LmNvbS9jZ2kt YmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRldmVsJms9WFJLVQ0KPiANCg0K