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 B818B1FF185 for ; Mon, 7 Jul 2025 13:52:18 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 986A43178B; Mon, 7 Jul 2025 13:53:02 +0200 (CEST) Date: Mon, 7 Jul 2025 13:52:28 +0200 From: Wolfgang Bumiller To: Gabriel Goller Message-ID: References: <20250702145101.894299-1-g.goller@proxmox.com> <20250702145101.894299-15-g.goller@proxmox.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20250702145101.894299-15-g.goller@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.079 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pve-devel] [PATCH proxmox-ve-rs v4 08/22] frr: add route-map types 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: , Reply-To: Proxmox VE development discussion Cc: pve-devel@lists.proxmox.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" T24gV2VkLCBKdWwgMDIsIDIwMjUgYXQgMDQ6NDk6NTlQTSArMDIwMCwgR2FicmllbCBHb2xsZXIg d3JvdGU6Cj4gT25seSBhIHZlcnkgbGltaXRlZCBzdWJzZXQgb2YgdGhlIEZSUiByb3V0ZS1tYXBz IGlzIGltcGxlbWVudGVkIGhlcmUKPiBpbnRpYWxseSwgb25seSB3aGF0IGlzIGN1cnJlbnRseSBu ZWVkZWQgZm9yIHRoZSBmYWJyaWNzIGZlYXR1cmUuIE9uY2UKPiBzdGFuZGFsb25lIHJvdXRlLW1h cHMgd2lsbCBtYWtlIGl0IGludG8gUFZFLCB3ZSB3aWxsIGJ1aWxkIG9uIHRoZQo+IHN0cnVjdHMg ZGVmaW5lZCBoZXJlIGFuZCBhZGQgcG9zc2libHkgdGhlIGZ1bGwgZmVhdHVyZXNldC4gVGhlIG1h aW4KPiB1c2UtY2FzZSBmb3Igcm91dGVtYXBzIGluIHRoZSBmYWJyaWNzIGlzIGN1cnJlbnRseSB0 byBvdmVyd3JpdGUgdGhlCj4gc291cmNlIGFkZHJlc3MgaW4gdGhlIGtlcm5lbCByb3V0aW5nIHRh YmxlLCBzbyB0aGF0IHBhY2tldHMgc2VudCB2aWEKPiB0aGUgZmFicmljIGNvbnRhaW4gdGhlIHJv dXRlciBJUCByYXRoZXIgdGhhbiB0aGUgSVAgb2YgdGhlIGxpbmsgKGluCj4gdGhlIGNhc2Ugb2Yg cG9pbnQtdG8tcG9pbnQgY29ubmVjdGlvbnMpLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEdhYnJpZWwg R29sbGVyIDxnLmdvbGxlckBwcm94bW94LmNvbT4KPiAtLS0KPiAgcHJveG1veC1mcnIvc3JjL2xp Yi5ycyAgICAgICB8ICAgMSArCj4gIHByb3htb3gtZnJyL3NyYy9yb3V0ZV9tYXAucnMgfCAyMzMg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgMiBmaWxlcyBjaGFuZ2VkLCAy MzQgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgcHJveG1veC1mcnIvc3JjL3Jv dXRlX21hcC5ycwo+IAo+IGRpZmYgLS1naXQgYS9wcm94bW94LWZyci9zcmMvbGliLnJzIGIvcHJv eG1veC1mcnIvc3JjL2xpYi5ycwo+IGluZGV4IDBkOTRhZWY1YTNjZC4uYmU5ZTVjMmUxNDJmIDEw MDY0NAo+IC0tLSBhL3Byb3htb3gtZnJyL3NyYy9saWIucnMKPiArKysgYi9wcm94bW94LWZyci9z cmMvbGliLnJzCj4gQEAgLTEsNSArMSw2IEBACj4gIHB1YiBtb2Qgb3BlbmZhYnJpYzsKPiAgcHVi IG1vZCBvc3BmOwo+ICtwdWIgbW9kIHJvdXRlX21hcDsKPiAgdXNlIHN0ZDo6e2ZtdDo6RGlzcGxh eSwgc3RyOjpGcm9tU3RyfTsKPiAgCj4gIHVzZSBzZXJkZTo6e0Rlc2VyaWFsaXplLCBTZXJpYWxp emV9Owo+IGRpZmYgLS1naXQgYS9wcm94bW94LWZyci9zcmMvcm91dGVfbWFwLnJzIGIvcHJveG1v eC1mcnIvc3JjL3JvdXRlX21hcC5ycwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAw MDAwMDAwMDAwLi5kNGRlNGE5YjkxNTkKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvcHJveG1veC1m cnIvc3JjL3JvdXRlX21hcC5ycwo+IEBAIC0wLDAgKzEsMjMzIEBACj4gK3VzZSBzdGQ6OnsKPiAr ICAgIGZtdDo6e3NlbGYsIERpc3BsYXl9LAo+ICsgICAgbmV0OjpJcEFkZHIsCj4gK307Cj4gKwo+ ICt1c2UgcHJveG1veF9uZXR3b3JrX3R5cGVzOjppcF9hZGRyZXNzOjpDaWRyOwo+ICsKPiArLy8v IFRoZSBhY3Rpb24gZm9yIGEgW2BBY2Nlc3NMaXN0UnVsZWBdLgo+ICsvLy8KPiArLy8vIFRoZSBk ZWZhdWx0IGlzIFBlcm1pdC4gRGVueSBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSBOT1QgbWF0Y2gg KGUuZy4gbWF0Y2ggYWxsIHJvdXRlcyB0aGF0IGFyZQo+ICsvLy8gTk9UIGluIDEwLjEwLjEwLjAv MjQgdXNpbmcgYGlwIGFjY2Vzcy1saXN0IFRFU1QgZGVueSAxMC4xMC4xMC4wLzI0YCkuCj4gKyNb ZGVyaXZlKENsb25lLCBDb3B5LCBEZWJ1ZywgUGFydGlhbEVxLCBFcSldCj4gK3B1YiBlbnVtIEFj Y2Vzc0FjdGlvbiB7Cj4gKyAgICBQZXJtaXQsCj4gKyAgICBEZW55LAo+ICt9Cj4gKwo+ICtpbXBs IGZtdDo6RGlzcGxheSBmb3IgQWNjZXNzQWN0aW9uIHsKPiArICAgIGZuIGZtdCgmc2VsZiwgZjog Jm11dCBmbXQ6OkZvcm1hdHRlcjwnXz4pIC0+IGZtdDo6UmVzdWx0IHsKPiArICAgICAgICBtYXRj aCBzZWxmIHsKPiArICAgICAgICAgICAgQWNjZXNzQWN0aW9uOjpQZXJtaXQgPT4gd3JpdGUhKGYs ICJwZXJtaXQiKSwKPiArICAgICAgICAgICAgQWNjZXNzQWN0aW9uOjpEZW55ID0+IHdyaXRlIShm LCAiZGVueSIpLAo+ICsgICAgICAgIH0KPiArICAgIH0KPiArfQo+ICsKPiArLy8vIEEgc2luZ2xl IFtgQWNjZXNzTGlzdGBdIHJ1bGUuCj4gKy8vLwo+ICsvLy8gRXZlcnkgcnVsZSBpbiBhIFtgQWNj ZXNzTGlzdGBdIGlzIGl0cyBvd24gY29tbWFuZCBhbmQgZ2V0cyB3cml0dGVuIGludG8gYSBuZXcg bGluZSAod2l0aCB0aGUKPiArLy8vIHNhbWUgbmFtZSkuIFRoZXNlIHJ1bGVzIGhhdmUgYW4gYWN0 aW9uIC0gcGVybWl0IChtYXRjaCkgb3IgZGVueSAoZG9uJ3QgbWF0Y2gpIC0gYW5kIGEgbmV0d29y awo+ICsvLy8gYWRkcmVzcyAod2hpY2ggY2FuIGJlIGEgc2luZ2xlIGFkZHJlc3Mgb3IgYSByYW5n ZSkuIFRoZSBzZXEgbnVtYmVyIGlzIHVzZWQgdG8gZGlmZmVyZW50aWF0ZQo+ICsvLy8gYmV0d2Vl biBhY2Nlc3MtbGlzdHMgb2YgdGhlIHNhbWUgbmFtZSBhbmQgcnVsZXMuIEV2ZXJ5IFtgQWNjZXNz TGlzdFJ1bGVgXSBoYXMgdG8gaGF2ZSBhCj4gKy8vLyBkaWZmZXJlbnQgc2VxIG51bWJlci4KPiAr Ly8vIFRoZSBgaXBgIG9yIGBpcHY2YCBwcmVmaXggZ2V0cyBkZWNpZGVkIGJhc2VkIG9uIHRoZSBD aWRyIGFkZHJlc3MgcGFzc2VkLgo+ICsvLy8KPiArLy8vIFRoaXMgc2VyaWFsaXplcyB0bzoKPiAr Ly8vCj4gKy8vLyBgYGB0ZXh0Cj4gKy8vLyBpcCBhY2Nlc3MtbGlzdCBmaWx0ZXIgcGVybWl0IDEw LjAuMC4wLzgKPiArLy8vICEgb3IKPiArLy8vIGlwdjYgYWNjZXNzLWxpc3QgZmlsdGVyIHBlcm1p dCAyMDAxOmRiODo6LzY0Cj4gKy8vLyBgYGAKPiArI1tkZXJpdmUoQ2xvbmUsIERlYnVnLCBQYXJ0 aWFsRXEsIEVxKV0KPiArcHViIHN0cnVjdCBBY2Nlc3NMaXN0UnVsZSB7Cj4gKyAgICBwdWIgYWN0 aW9uOiBBY2Nlc3NBY3Rpb24sCj4gKyAgICBwdWIgbmV0d29yazogQ2lkciwKPiArICAgIHB1YiBz ZXE6IE9wdGlvbjx1MzI+LAo+ICt9Cj4gKwo+ICsvLy8gVGhlIG5hbWUgb2YgYSBbYEFjY2Vzc0xp c3RgXS4KCmFuKgoKPiArI1tkZXJpdmUoQ2xvbmUsIERlYnVnLCBQYXJ0aWFsRXEsIEVxLCBQYXJ0 aWFsT3JkLCBPcmQpXQo+ICtwdWIgc3RydWN0IEFjY2Vzc0xpc3ROYW1lKFN0cmluZyk7Cj4gKwo+ ICtpbXBsIEFjY2Vzc0xpc3ROYW1lIHsKPiArICAgIHB1YiBmbiBuZXcobmFtZTogU3RyaW5nKSAt PiBBY2Nlc3NMaXN0TmFtZSB7Cj4gKyAgICAgICAgQWNjZXNzTGlzdE5hbWUobmFtZSkKPiArICAg IH0KPiArfQo+ICsKPiAraW1wbCBEaXNwbGF5IGZvciBBY2Nlc3NMaXN0TmFtZSB7Cj4gKyAgICBm biBmbXQoJnNlbGYsIGY6ICZtdXQgZm10OjpGb3JtYXR0ZXI8J18+KSAtPiBmbXQ6OlJlc3VsdCB7 Cj4gKyAgICAgICAgc2VsZi4wLmZtdChmKQo+ICsgICAgfQo+ICt9Cj4gKwo+ICsvLy8gQSBGUlIg YWNjZXNzLWxpc3QuCj4gKy8vLwo+ICsvLy8gSG9sZHMgYSB2ZWMgb2YgcnVsZXMuIEVhY2ggcnVs ZSB3aWxsIGdldCBpdCdzIG93biBsaW5lLCBGUlIgd2lsbCBjb2xsZWN0IGFsbCB0aGUgcnVsZXMg d2l0aCB0aGUKCml0cyoKCj4gKy8vLyBzYW1lIG5hbWUgYW5kIGNvbWJpbmUgdGhlbS4KPiArLy8v Cj4gKy8vLyBUaGlzIHNlcmlhbGl6ZXMgdG86Cj4gKy8vLwo+ICsvLy8gYGBgdGV4dAo+ICsvLy8g aXAgYWNjZXNzLWxpc3QgcHZlX3Rlc3QgcGVybWl0IDEwLjAuMC4wLzI0Cj4gKy8vLyBpcCBhY2Nl c3MtbGlzdCBwdmVfdGVzdCBwZXJtaXQgMTIuMS4xLjAvMjQKPiArLy8vIGlwIGFjY2Vzcy1saXN0 IHB2ZV90ZXN0IGRlbnkgOC44LjguOC8zMgo+ICsvLy8gYGBgCj4gKyNbZGVyaXZlKENsb25lLCBE ZWJ1ZywgUGFydGlhbEVxLCBFcSldCj4gK3B1YiBzdHJ1Y3QgQWNjZXNzTGlzdCB7Cj4gKyAgICBw dWIgbmFtZTogQWNjZXNzTGlzdE5hbWUsCj4gKyAgICBwdWIgcnVsZXM6IFZlYzxBY2Nlc3NMaXN0 UnVsZT4sCj4gK30KPiArCj4gKy8vLyBBIG1hdGNoIHN0YXRlbWVudCBpbnNpZGUgYSByb3V0ZS1t YXAuCj4gKy8vLwo+ICsvLy8gQSByb3V0ZS1tYXAgaGFzIG9uZSBvciBtb3JlIG1hdGNoIHN0YXRl bWVudHMgd2hpY2ggZGVjaWRlIG9uIHdoaWNoIHJvdXRlcyB0aGUgcm91dGUtbWFwIHdpbGwKPiAr Ly8vIGV4ZWN1dGUgaXRzIGFjdGlvbnMuIElmIHdlIG1hdGNoIG9uIGFuIElQLCB0aGVyZSBhcmUg dHdvIGRpZmZlcmVudCBzeW50YXhlczogYG1hdGNoIGlwIC4uLmAgb3IKPiArLy8vIGBtYXRjaCBp cHY2IC4uLmAuCj4gKy8vLwo+ICsvLy8gU2VyaWFsaXplcyB0bzoKPiArLy8vCj4gKy8vLyBgYGB0 ZXh0Cj4gKy8vLyAgbWF0Y2ggaXAgYWRkcmVzcyA8YWNjZXNzLWxpc3QtbmFtZT4KPiArLy8vICEg b3IKPiArLy8vICBtYXRjaCBpcCBuZXh0LWhvcCA8aXAtYWRkcmVzcz4KPiArLy8vICEgb3IKPiAr Ly8vICBtYXRjaCBpcHY2IGFkZHJlc3MgPGFjY2Vzcy1saXN0LW5hbWU+Cj4gKy8vLyAhIG9yCj4g Ky8vLyAgbWF0Y2ggaXB2NiBuZXh0LWhvcCA8aXAtYWRkcmVzcz4KPiArLy8vIGBgYAo+ICsjW2Rl cml2ZShDbG9uZSwgRGVidWcsIFBhcnRpYWxFcSwgRXEpXQo+ICtwdWIgZW51bSBSb3V0ZU1hcE1h dGNoIHsKPiArICAgIFY0KFJvdXRlTWFwTWF0Y2hJbm5lciksCj4gKyAgICBWNihSb3V0ZU1hcE1h dGNoSW5uZXIpLAo+ICt9Cj4gKwo+ICtpbXBsIERpc3BsYXkgZm9yIFJvdXRlTWFwTWF0Y2ggewo+ ICsgICAgZm4gZm10KCZzZWxmLCBmOiAmbXV0IGZtdDo6Rm9ybWF0dGVyPCdfPikgLT4gZm10OjpS ZXN1bHQgewo+ICsgICAgICAgIG1hdGNoIHNlbGYgewo+ICsgICAgICAgICAgICBSb3V0ZU1hcE1h dGNoOjpWNChyb3V0ZV9tYXBfbWF0Y2hfdjQpID0+IG1hdGNoIHJvdXRlX21hcF9tYXRjaF92NCB7 Cj4gKyAgICAgICAgICAgICAgICBSb3V0ZU1hcE1hdGNoSW5uZXI6OklwQWRkcmVzcyhhY2Nlc3Nf bGlzdF9uYW1lKSA9PiB7CgooaGludDog4oaRIGZvciBub3cgdGhlc2UgYXJlIHN0aWxsIHNob3J0 IGVub3VnaCB0aGF0IGEgc2luZ2xlIG1hdGNoIHdpdGggYQpuZXN0ZWQgcGF0dGVybiB3b3VsZCBi ZSBsZXNzIGFuZCBlYXNpZXIgdG8gcmVhZCwgYnV0IG5vdCByZWFsbHkKaW1wb3J0YW50IC0gaWYg bW9yZSB2YXJpYW50cyBhcmUgYWRkZWQgSSdkIGFjdHVhbCByZWNvbW1lbmQgdXNpbmcgaGVscGVy Cm1ldGhvZHMgb24gdGhlIGluZGl2aWR1YWwgdHlwZXMpCgo+ICsgICAgICAgICAgICAgICAgICAg IHdyaXRlIShmLCAibWF0Y2ggaXAgYWRkcmVzcyB7YWNjZXNzX2xpc3RfbmFtZX0iKQo+ICsgICAg ICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICAgICAgUm91dGVNYXBNYXRjaElubmVyOjpJcE5l eHRIb3AobmV4dF9ob3ApID0+IHsKPiArICAgICAgICAgICAgICAgICAgICB3cml0ZSEoZiwgIm1h dGNoIGlwIG5leHQtaG9wIHtuZXh0X2hvcH0iKQo+ICsgICAgICAgICAgICAgICAgfQo+ICsgICAg ICAgICAgICB9LAo+ICsgICAgICAgICAgICBSb3V0ZU1hcE1hdGNoOjpWNihyb3V0ZV9tYXBfbWF0 Y2hfdjYpID0+IG1hdGNoIHJvdXRlX21hcF9tYXRjaF92NiB7Cj4gKyAgICAgICAgICAgICAgICBS b3V0ZU1hcE1hdGNoSW5uZXI6OklwQWRkcmVzcyhhY2Nlc3NfbGlzdF9uYW1lKSA9PiB7Cj4gKyAg ICAgICAgICAgICAgICAgICAgd3JpdGUhKGYsICJtYXRjaCBpcHY2IGFkZHJlc3Mge2FjY2Vzc19s aXN0X25hbWV9IikKPiArICAgICAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgICAgIFJvdXRl TWFwTWF0Y2hJbm5lcjo6SXBOZXh0SG9wKG5leHRfaG9wKSA9PiB7Cj4gKyAgICAgICAgICAgICAg ICAgICAgd3JpdGUhKGYsICJtYXRjaCBpcHY2IG5leHQtaG9wIHtuZXh0X2hvcH0iKQo+ICsgICAg ICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICB9LAo+ICsgICAgICAgIH0KPiArICAgIH0KPiAr fQo+ICsKPiArLy8vIEEgcm91dGUtbWFwIG1hdGNoIHN0YXRlbWVudCBnZW5lcmljIG9uIHRoZSBJ UC12ZXJzaW9uLgo+ICsjW2Rlcml2ZShDbG9uZSwgRGVidWcsIFBhcnRpYWxFcSwgRXEpXQo+ICtw dWIgZW51bSBSb3V0ZU1hcE1hdGNoSW5uZXIgewo+ICsgICAgSXBBZGRyZXNzKEFjY2Vzc0xpc3RO YW1lKSwKPiArICAgIElwTmV4dEhvcChTdHJpbmcpLAo+ICt9Cj4gKwo+ICsvLy8gRGVmaW5lcyB0 aGUgQWN0aW9uIGEgcm91dGUtbWFwIHRha2VzIHdoZW4gaXQgbWF0Y2hlcyBvbiBhIHJvdXRlLgo+ ICsvLy8KPiArLy8vIElmIHRoZSByb3V0ZSBtYXRjaGVzIHRoZSBbYFJvdXRlTWFwTWF0Y2hgXSwg dGhlbiBhIFtgUm91dGVNYXBTZXRgXSBhY3Rpb24gd2lsbCBiZSBleGVjdXRlZC4KPiArLy8vIFdl IGN1cnJlbnRseSBvbmx5IHVzZSB0aGUgSXBTcmMgY29tbWFuZCB3aGljaCBjaGFuZ2VzIHRoZSBz b3VyY2UgYWRkcmVzcyBvZiB0aGUgcm91dGUuCj4gKyNbZGVyaXZlKENsb25lLCBEZWJ1ZywgUGFy dGlhbEVxLCBFcSldCj4gK3B1YiBlbnVtIFJvdXRlTWFwU2V0IHsKPiArICAgIExvY2FsUHJlZmVy ZW5jZSh1MzIpLAo+ICsgICAgSXBTcmMoSXBBZGRyKSwKPiArICAgIE1ldHJpYyh1MzIpLAo+ICsg ICAgQ29tbXVuaXR5KFN0cmluZyksCj4gK30KPiArCj4gK2ltcGwgRGlzcGxheSBmb3IgUm91dGVN YXBTZXQgewo+ICsgICAgZm4gZm10KCZzZWxmLCBmOiAmbXV0IGZtdDo6Rm9ybWF0dGVyPCdfPikg LT4gZm10OjpSZXN1bHQgewo+ICsgICAgICAgIG1hdGNoIHNlbGYgewo+ICsgICAgICAgICAgICBS b3V0ZU1hcFNldDo6TG9jYWxQcmVmZXJlbmNlKHByZWYpID0+IHdyaXRlIShmLCAic2V0IGxvY2Fs LXByZWZlcmVuY2Uge30iLCBwcmVmKSwKPiArICAgICAgICAgICAgUm91dGVNYXBTZXQ6OklwU3Jj KGFkZHIpID0+IHdyaXRlIShmLCAic2V0IHNyYyB7fSIsIGFkZHIpLAo+ICsgICAgICAgICAgICBS b3V0ZU1hcFNldDo6TWV0cmljKG1ldHJpYykgPT4gd3JpdGUhKGYsICJzZXQgbWV0cmljIHt9Iiwg bWV0cmljKSwKPiArICAgICAgICAgICAgUm91dGVNYXBTZXQ6OkNvbW11bml0eShjb21tdW5pdHkp ID0+IHdyaXRlIShmLCAic2V0IGNvbW11bml0eSB7fSIsIGNvbW11bml0eSksCj4gKyAgICAgICAg fQo+ICsgICAgfQo+ICt9Cj4gKwo+ICsjW2Rlcml2ZShDbG9uZSwgRGVidWcsIFBhcnRpYWxFcSwg RXEsIFBhcnRpYWxPcmQsIE9yZCwgSGFzaCldCj4gK3B1YiBzdHJ1Y3QgUm91dGVNYXBOYW1lKFN0 cmluZyk7Cj4gKwo+ICtpbXBsIFJvdXRlTWFwTmFtZSB7Cj4gKyAgICBwdWIgZm4gbmV3KG5hbWU6 IFN0cmluZykgLT4gUm91dGVNYXBOYW1lIHsKPiArICAgICAgICBSb3V0ZU1hcE5hbWUobmFtZSkK PiArICAgIH0KPiArfQo+ICsKPiAraW1wbCBEaXNwbGF5IGZvciBSb3V0ZU1hcE5hbWUgewo+ICsg ICAgZm4gZm10KCZzZWxmLCBmOiAmbXV0IGZtdDo6Rm9ybWF0dGVyPCdfPikgLT4gZm10OjpSZXN1 bHQgewo+ICsgICAgICAgIHNlbGYuMC5mbXQoZikKPiArICAgIH0KPiArfQo+ICsKPiArLy8vIEEg RlJSIHJvdXRlLW1hcC4KPiArLy8vCj4gKy8vLyBJbiBGUlIgcm91dGUtbWFwcyBhcmUgdXNlZCB0 byBtYW5pcHVsYXRlIHJvdXRlcyBsZWFybmVkIGJ5IHByb3RvY29scy4gV2UgY2FuIG1hdGNoIG9u IHNwZWNpZmljCj4gKy8vLyByb3V0ZXMgKGZyb20gc3BlY2lmaWMgcHJvdG9jb2xzIG9yIHN1Ym5l dHMpIGFuZCB0aGVuIGNoYW5nZSB0aGVtLCBieSBlLmcuIGVkaXRpbmcgdGhlIHNvdXJjZQo+ICsv Ly8gYWRkcmVzcyBvciBhZGRpbmcgYSBtZXRyaWMsIGJncCBjb21tdW5pdHksIG9yIGxvY2FsIHBy ZWZlcmVuY2UuCj4gKy8vLwo+ICsvLy8gVGhpcyBzZXJpYWxpemVzIHRvOgo+ICsvLy8KPiArLy8v IGBgYHRleHQKPiArLy8vIHJvdXRlLW1hcCA8bmFtZT4gcGVybWl0IDEwMAo+ICsvLy8gIG1hdGNo IGlwIGFkZHJlc3MgPGFjY2Vzcy1saXN0Pgo+ICsvLy8gIHNldCBzcmMgPGlwLWFkZHJlc3M+Cj4g Ky8vLyBleGl0Cj4gKy8vLyBgYGAKPiArI1tkZXJpdmUoQ2xvbmUsIERlYnVnLCBQYXJ0aWFsRXEs IEVxKV0KPiArcHViIHN0cnVjdCBSb3V0ZU1hcCB7Cj4gKyAgICBwdWIgbmFtZTogUm91dGVNYXBO YW1lLAo+ICsgICAgcHViIHNlcTogdTMyLAo+ICsgICAgcHViIGFjdGlvbjogQWNjZXNzQWN0aW9u LAo+ICsgICAgcHViIG1hdGNoZXM6IFZlYzxSb3V0ZU1hcE1hdGNoPiwKPiArICAgIHB1YiBzZXRz OiBWZWM8Um91dGVNYXBTZXQ+LAo+ICt9Cj4gKwo+ICsvLy8gVGhlIFByb3RvY29sVHlwZSB1c2Vk IGluIHRoZSBbYFByb3RvY29sUm91dGVNYXBgXS4KPiArLy8vCj4gKy8vLyBTcGVjaWZpZXMgdG8g d2hpY2ggcHJvdG9jb2xzIHdlIGNhbiBhdHRhY2ggcm91dGUtbWFwcy4KPiArI1tkZXJpdmUoQ2xv bmUsIENvcHksIERlYnVnLCBQYXJ0aWFsRXEsIEVxLCBQYXJ0aWFsT3JkLCBPcmQsIEhhc2gpXQo+ ICtwdWIgZW51bSBQcm90b2NvbFR5cGUgewo+ICsgICAgT3BlbmZhYnJpYywKPiArICAgIE9zcGYs Cj4gK30KPiArCj4gK2ltcGwgRGlzcGxheSBmb3IgUHJvdG9jb2xUeXBlIHsKPiArICAgIGZuIGZt dCgmc2VsZiwgZjogJm11dCBmbXQ6OkZvcm1hdHRlcjwnXz4pIC0+IGZtdDo6UmVzdWx0IHsKPiAr ICAgICAgICBtYXRjaCBzZWxmIHsKPiArICAgICAgICAgICAgUHJvdG9jb2xUeXBlOjpPcGVuZmFi cmljID0+IHdyaXRlIShmLCAib3BlbmZhYnJpYyIpLAo+ICsgICAgICAgICAgICBQcm90b2NvbFR5 cGU6Ok9zcGYgPT4gd3JpdGUhKGYsICJvc3BmIiksCj4gKyAgICAgICAgfQo+ICsgICAgfQo+ICt9 Cj4gKwo+ICsvLy8gUHJvdG9jb2xSb3V0ZU1hcCBzdGF0ZW1lbnQuCj4gKy8vLwo+ICsvLy8gVGhp cyBzdGF0ZW1lbnQgYXR0YWNoZXMgdGhlIHJvdXRlLW1hcCB0byB0aGUgcHJvdG9jb2wsIHNvIHRo YXQgYWxsIHRoZSByb3V0ZXMgbGVhcm5lZCB0aHJvdWdoCj4gKy8vLyB0aGUgc3BlY2lmaWVkIHBy b3RvY29sIGNhbiBiZSBtYXRjaGVkIG9uIGFuZCBtYW5pcHVsYXRlZCB3aXRoIHRoZSByb3V0ZS1t YXAuCj4gKy8vLwo+ICsvLy8gVGhpcyBzZXJpYWxpemVzIHRvOgo+ICsvLy8KPiArLy8vIGBgYHRl eHQKPiArLy8vIGlwIHByb3RvY29sIDxwcm90b2NvbD4gcm91dGUtbWFwIDxyb3V0ZS1tYXAtbmFt ZT4KPiArLy8vICEgb3IKPiArLy8vIGlwdjYgcHJvdG9jb2wgPHByb3RvY29sPiByb3V0ZS1tYXAg PHJvdXRlLW1hcC1uYW1lPgo+ICsvLy8gYGBgCj4gKyNbZGVyaXZlKENsb25lLCBEZWJ1ZywgUGFy dGlhbEVxLCBFcSwgUGFydGlhbE9yZCwgT3JkLCBIYXNoKV0KPiArcHViIHN0cnVjdCBQcm90b2Nv bFJvdXRlTWFwIHsKPiArICAgIHB1YiBpc19pcHY2OiBib29sLAo+ICsgICAgcHViIHByb3RvY29s OiBQcm90b2NvbFR5cGUsCj4gKyAgICBwdWIgcm91dGVtYXBfbmFtZTogUm91dGVNYXBOYW1lLAo+ ICt9Cj4gLS0gCj4gMi4zOS41CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KcHZlLWRldmVsIG1haWxpbmcgbGlzdApwdmUtZGV2ZWxAbGlzdHMucHJveG1v eC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8v cHZlLWRldmVsCg==