From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 0F4C81FF165 for ; Thu, 22 May 2025 18:18:54 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 44FC8A122; Thu, 22 May 2025 18:17:51 +0200 (CEST) From: Stefan Hanreich To: pve-devel@lists.proxmox.com Date: Thu, 22 May 2025 18:16:24 +0200 Message-Id: <20250522161731.537011-9-s.hanreich@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250522161731.537011-1-s.hanreich@proxmox.com> References: <20250522161731.537011-1-s.hanreich@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.230 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 KAM_LAZY_DOMAIN_SECURITY 1 Sending domain does not have any anti-forgery methods KAM_SHORT 0.001 Use of a URL Shortener for very short URL RDNS_NONE 0.793 Delivered to internal network by a host with no rDNS SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_NONE 0.001 SPF: sender does not publish an SPF Record Subject: [pve-devel] [PATCH proxmox-ve-rs v3 03/21] sdn-types: initial commit 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 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" VGhpcyBjcmF0ZSBjb250YWlucyBTRE4gc3BlY2lmaWMgdHlwZXMsIHNvIHRoZXkgY2FuIGJlIHJl LXVzZWQgYWNyb3NzCm11bHRpcGxlIGNyYXRlcyAoVGhlIGluaXRpYWwgdXNlLWNhc2UgYmVpbmcg c2hhcmVkIHR5cGVzIGJldHdlZW4KcHJveG1veC1mcnIgYW5kIHByb3htb3gtdmUtY29uZmlnKS4K ClRoaXMgaW5pdGlhbCBjb21taXQgY29udGFpbnMgdHlwZXMgZm9yIHRoZSBmb2xsb3dpbmcgZW50 aXRpZXM6CiogT3BlbkZhYnJpYyBIZWxsbyBJbnRlcnZhbC9NdWx0aXBsaWVyIGFuZCBDU05QIElu dGVydmFsCiogTmV0d29yayBFbnRpdHkgVGl0bGUgKHVzZWQgYXMgUm91dGVyIElEcyBpbiBJUy1J UyAvIE9wZW5GYWJyaWMpCiogT1NQRiBBcmVhCgpDby1hdXRob3JlZC1ieTogR2FicmllbCBHb2xs ZXIgPGcuZ29sbGVyQHByb3htb3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gSGFucmVpY2gg PHMuaGFucmVpY2hAcHJveG1veC5jb20+Ci0tLQogQ2FyZ28udG9tbCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDkgKwogcHJveG1veC1zZG4tdHlwZXMvQ2FyZ28udG9tbCAgICAgICAg ICAgfCAgMTkgKysKIHByb3htb3gtc2RuLXR5cGVzL2RlYmlhbi9jaGFuZ2Vsb2cgICAgIHwgICA1 ICsKIHByb3htb3gtc2RuLXR5cGVzL2RlYmlhbi9jb250cm9sICAgICAgIHwgIDUzICsrKysKIHBy b3htb3gtc2RuLXR5cGVzL2RlYmlhbi9jb3B5cmlnaHQgICAgIHwgIDE4ICsrCiBwcm94bW94LXNk bi10eXBlcy9kZWJpYW4vZGViY2FyZ28udG9tbCB8ICAgNyArCiBwcm94bW94LXNkbi10eXBlcy9z cmMvYXJlYS5ycyAgICAgICAgICB8ICA1MCArKysrCiBwcm94bW94LXNkbi10eXBlcy9zcmMvbGli LnJzICAgICAgICAgICB8ICAgMyArCiBwcm94bW94LXNkbi10eXBlcy9zcmMvbmV0LnJzICAgICAg ICAgICB8IDMyOSArKysrKysrKysrKysrKysrKysrKysrKysrCiBwcm94bW94LXNkbi10eXBlcy9z cmMvb3BlbmZhYnJpYy5ycyAgICB8ICA3MiArKysrKysKIHByb3htb3gtdmUtY29uZmlnL0Nhcmdv LnRvbWwgICAgICAgICAgIHwgICA4ICstCiAxMSBmaWxlcyBjaGFuZ2VkLCA1NjkgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBwcm94bW94LXNkbi10eXBl cy9DYXJnby50b21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgcHJveG1veC1zZG4tdHlwZXMvZGViaWFu L2NoYW5nZWxvZwogY3JlYXRlIG1vZGUgMTAwNjQ0IHByb3htb3gtc2RuLXR5cGVzL2RlYmlhbi9j b250cm9sCiBjcmVhdGUgbW9kZSAxMDA2NDQgcHJveG1veC1zZG4tdHlwZXMvZGViaWFuL2NvcHly aWdodAogY3JlYXRlIG1vZGUgMTAwNjQ0IHByb3htb3gtc2RuLXR5cGVzL2RlYmlhbi9kZWJjYXJn by50b21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgcHJveG1veC1zZG4tdHlwZXMvc3JjL2FyZWEucnMK IGNyZWF0ZSBtb2RlIDEwMDY0NCBwcm94bW94LXNkbi10eXBlcy9zcmMvbGliLnJzCiBjcmVhdGUg bW9kZSAxMDA2NDQgcHJveG1veC1zZG4tdHlwZXMvc3JjL25ldC5ycwogY3JlYXRlIG1vZGUgMTAw NjQ0IHByb3htb3gtc2RuLXR5cGVzL3NyYy9vcGVuZmFicmljLnJzCgpkaWZmIC0tZ2l0IGEvQ2Fy Z28udG9tbCBiL0NhcmdvLnRvbWwKaW5kZXggYjZlNmRmNy4uNGY1YTZjYSAxMDA2NDQKLS0tIGEv Q2FyZ28udG9tbAorKysgYi9DYXJnby50b21sCkBAIC0xLDYgKzEsNyBAQAogW3dvcmtzcGFjZV0K IG1lbWJlcnMgPSBbCiAgICAgInByb3htb3gtdmUtY29uZmlnIiwKKyAgICAicHJveG1veC1zZG4t dHlwZXMiLAogXQogZXhjbHVkZSA9IFsKICAgICAiYnVpbGQiLApAQCAtMTYsNCArMTcsMTIgQEAg ZXhjbHVkZSA9IFsgImRlYmlhbiIgXQogcnVzdC12ZXJzaW9uID0gIjEuODIiCiAKIFt3b3Jrc3Bh Y2UuZGVwZW5kZW5jaWVzXQorYW55aG93ID0gIjEiCitjb25zdF9mb3JtYXQgPSAiMC4yIgorcmVn ZXggPSAiMS43Igorc2VyZGUgPSB7IHZlcnNpb24gPSAiMSIgfQorc2VyZGVfd2l0aCA9ICIzIgor dGhpc2Vycm9yID0gIjEuMC41OSIKKwogcHJveG1veC1uZXR3b3JrLXR5cGVzID0geyB2ZXJzaW9u ID0gIjAuMSIgfQorcHJveG1veC1zY2hlbWEgPSB7IHZlcnNpb24gPSAiNCIgfQpkaWZmIC0tZ2l0 IGEvcHJveG1veC1zZG4tdHlwZXMvQ2FyZ28udG9tbCBiL3Byb3htb3gtc2RuLXR5cGVzL0Nhcmdv LnRvbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDljZDU4MQotLS0gL2Rl di9udWxsCisrKyBiL3Byb3htb3gtc2RuLXR5cGVzL0NhcmdvLnRvbWwKQEAgLTAsMCArMSwxOSBA QAorW3BhY2thZ2VdCituYW1lID0gInByb3htb3gtc2RuLXR5cGVzIgordmVyc2lvbiA9ICIwLjEu MCIKK2F1dGhvcnMud29ya3NwYWNlID0gdHJ1ZQorZWRpdGlvbi53b3Jrc3BhY2UgPSB0cnVlCits aWNlbnNlLndvcmtzcGFjZSA9IHRydWUKK2hvbWVwYWdlLndvcmtzcGFjZSA9IHRydWUKK2V4Y2x1 ZGUud29ya3NwYWNlID0gdHJ1ZQorcnVzdC12ZXJzaW9uLndvcmtzcGFjZSA9IHRydWUKKworW2Rl cGVuZGVuY2llc10KK2FueWhvdyA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9Citjb25zdF9mb3JtYXQg PSB7IHdvcmtzcGFjZSA9IHRydWUgfQorcmVnZXggPSB7IHdvcmtzcGFjZSA9IHRydWUgfQorc2Vy ZGUgPSB7IHdvcmtzcGFjZSA9IHRydWUsIGZlYXR1cmVzID0gWyAiZGVyaXZlIiBdIH0KK3NlcmRl X3dpdGggPSB7IHdvcmtzcGFjZSA9IHRydWUgfQorCitwcm94bW94LXNjaGVtYSA9IHsgd29ya3Nw YWNlID0gdHJ1ZSwgZmVhdHVyZXMgPSBbICJhcGktbWFjcm8iLCAiYXBpLXR5cGVzIiBdIH0KK3By b3htb3gtc2VyZGUgPSB7IHZlcnNpb24gPSAiMC4xLjIiLCBmZWF0dXJlcyA9IFsgInBlcmwiIF0g fQpkaWZmIC0tZ2l0IGEvcHJveG1veC1zZG4tdHlwZXMvZGViaWFuL2NoYW5nZWxvZyBiL3Byb3ht b3gtc2RuLXR5cGVzL2RlYmlhbi9jaGFuZ2Vsb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uNDIyOTIxYwotLS0gL2Rldi9udWxsCisrKyBiL3Byb3htb3gtc2RuLXR5cGVzL2Rl Ymlhbi9jaGFuZ2Vsb2cKQEAgLTAsMCArMSw1IEBACitydXN0LXByb3htb3gtc2RuLXR5cGVzICgw LjEuMC0xKSB1bnN0YWJsZTsgdXJnZW5jeT1tZWRpdW0KKworICAqIEluaXRpYWwgcmVsZWFzZS4K KworIC0tIFByb3htb3ggU3VwcG9ydCBUZWFtIDxzdXBwb3J0QHByb3htb3guY29tPiAgTW9uLCAw MyBKdW4gMjAyNCAxMDo1MToxMSArMDIwMApkaWZmIC0tZ2l0IGEvcHJveG1veC1zZG4tdHlwZXMv ZGViaWFuL2NvbnRyb2wgYi9wcm94bW94LXNkbi10eXBlcy9kZWJpYW4vY29udHJvbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmRiNDdlCi0tLSAvZGV2L251bGwKKysrIGIv cHJveG1veC1zZG4tdHlwZXMvZGViaWFuL2NvbnRyb2wKQEAgLTAsMCArMSw1MyBAQAorU291cmNl OiBydXN0LXByb3htb3gtc2RuLXR5cGVzCitTZWN0aW9uOiBydXN0CitQcmlvcml0eTogb3B0aW9u YWwKK0J1aWxkLURlcGVuZHM6IGRlYmhlbHBlci1jb21wYXQgKD0gMTMpLAorIGRoLXNlcXVlbmNl LWNhcmdvCitCdWlsZC1EZXBlbmRzLUFyY2g6IGNhcmdvOm5hdGl2ZSA8IW5vY2hlY2s+LAorIHJ1 c3RjOm5hdGl2ZSAoPj0gMS44MikgPCFub2NoZWNrPiwKKyBsaWJzdGQtcnVzdC1kZXYgPCFub2No ZWNrPiwKKyBsaWJydXN0LWFueWhvdy0xK2RlZmF1bHQtZGV2IDwhbm9jaGVjaz4sCisgbGlicnVz dC1jb25zdC1mb3JtYXQtMC4yK2RlZmF1bHQtZGV2IDwhbm9jaGVjaz4sCisgbGlicnVzdC1wcm94 bW94LXNjaGVtYS00K2FwaS1tYWNyby1kZXYgPCFub2NoZWNrPiwKKyBsaWJydXN0LXByb3htb3gt c2NoZW1hLTQrYXBpLXR5cGVzLWRldiA8IW5vY2hlY2s+LAorIGxpYnJ1c3QtcHJveG1veC1zY2hl bWEtNCtkZWZhdWx0LWRldiA8IW5vY2hlY2s+LAorIGxpYnJ1c3QtcHJveG1veC1zZXJkZS0wLjEr ZGVmYXVsdC1kZXYgKD49IDAuMS4yLX5+KSA8IW5vY2hlY2s+LAorIGxpYnJ1c3QtcHJveG1veC1z ZXJkZS0wLjErcGVybC1kZXYgKD49IDAuMS4yLX5+KSA8IW5vY2hlY2s+LAorIGxpYnJ1c3QtcmVn ZXgtMStkZWZhdWx0LWRldiAoPj0gMS43LX5+KSA8IW5vY2hlY2s+LAorIGxpYnJ1c3Qtc2VyZGUt MStkZWZhdWx0LWRldiA8IW5vY2hlY2s+LAorIGxpYnJ1c3Qtc2VyZGUtMStkZXJpdmUtZGV2IDwh bm9jaGVjaz4sCisgbGlicnVzdC1zZXJkZS13aXRoLTMrZGVmYXVsdC1kZXYgPCFub2NoZWNrPgor TWFpbnRhaW5lcjogUHJveG1veCBTdXBwb3J0IFRlYW0gPHN1cHBvcnRAcHJveG1veC5jb20+CitT dGFuZGFyZHMtVmVyc2lvbjogNC43LjAKK1Zjcy1HaXQ6IGdpdDovL2dpdC5wcm94bW94LmNvbS9n aXQvcHJveG1veC12ZS1ycy5naXQKK1Zjcy1Ccm93c2VyOiBodHRwczovL2dpdC5wcm94bW94LmNv bS8/cD1wcm94bW94LXZlLXJzLmdpdAorSG9tZXBhZ2U6IGh0dHBzOi8vcHJveG1veC5jb20KK1gt Q2FyZ28tQ3JhdGU6IHByb3htb3gtc2RuLXR5cGVzCitSdWxlcy1SZXF1aXJlcy1Sb290OiBubwor CitQYWNrYWdlOiBsaWJydXN0LXByb3htb3gtc2RuLXR5cGVzLWRldgorQXJjaGl0ZWN0dXJlOiBh bnkKK011bHRpLUFyY2g6IHNhbWUKK0RlcGVuZHM6CisgJHttaXNjOkRlcGVuZHN9LAorIGxpYnJ1 c3QtYW55aG93LTErZGVmYXVsdC1kZXYsCisgbGlicnVzdC1jb25zdC1mb3JtYXQtMC4yK2RlZmF1 bHQtZGV2LAorIGxpYnJ1c3QtcHJveG1veC1zY2hlbWEtNCthcGktbWFjcm8tZGV2LAorIGxpYnJ1 c3QtcHJveG1veC1zY2hlbWEtNCthcGktdHlwZXMtZGV2LAorIGxpYnJ1c3QtcHJveG1veC1zY2hl bWEtNCtkZWZhdWx0LWRldiwKKyBsaWJydXN0LXByb3htb3gtc2VyZGUtMC4xK2RlZmF1bHQtZGV2 ICg+PSAwLjEuMi1+fiksCisgbGlicnVzdC1wcm94bW94LXNlcmRlLTAuMStwZXJsLWRldiAoPj0g MC4xLjItfn4pLAorIGxpYnJ1c3QtcmVnZXgtMStkZWZhdWx0LWRldiAoPj0gMS43LX5+KSwKKyBs aWJydXN0LXNlcmRlLTErZGVmYXVsdC1kZXYsCisgbGlicnVzdC1zZXJkZS0xK2Rlcml2ZS1kZXYs CisgbGlicnVzdC1zZXJkZS13aXRoLTMrZGVmYXVsdC1kZXYKK1Byb3ZpZGVzOgorIGxpYnJ1c3Qt cHJveG1veC1zZG4tdHlwZXMrZGVmYXVsdC1kZXYgKD0gJHtiaW5hcnk6VmVyc2lvbn0pLAorIGxp YnJ1c3QtcHJveG1veC1zZG4tdHlwZXMtMC1kZXYgKD0gJHtiaW5hcnk6VmVyc2lvbn0pLAorIGxp YnJ1c3QtcHJveG1veC1zZG4tdHlwZXMtMCtkZWZhdWx0LWRldiAoPSAke2JpbmFyeTpWZXJzaW9u fSksCisgbGlicnVzdC1wcm94bW94LXNkbi10eXBlcy0wLjEtZGV2ICg9ICR7YmluYXJ5OlZlcnNp b259KSwKKyBsaWJydXN0LXByb3htb3gtc2RuLXR5cGVzLTAuMStkZWZhdWx0LWRldiAoPSAke2Jp bmFyeTpWZXJzaW9ufSksCisgbGlicnVzdC1wcm94bW94LXNkbi10eXBlcy0wLjEuMC1kZXYgKD0g JHtiaW5hcnk6VmVyc2lvbn0pLAorIGxpYnJ1c3QtcHJveG1veC1zZG4tdHlwZXMtMC4xLjArZGVm YXVsdC1kZXYgKD0gJHtiaW5hcnk6VmVyc2lvbn0pCitEZXNjcmlwdGlvbjogUnVzdCBjcmF0ZSAi cHJveG1veC1zZG4tdHlwZXMiIC0gUnVzdCBzb3VyY2UgY29kZQorIFNvdXJjZSBjb2RlIGZvciBE ZWJpYW5pemVkIFJ1c3QgY3JhdGUgInByb3htb3gtc2RuLXR5cGVzIgpkaWZmIC0tZ2l0IGEvcHJv eG1veC1zZG4tdHlwZXMvZGViaWFuL2NvcHlyaWdodCBiL3Byb3htb3gtc2RuLXR5cGVzL2RlYmlh bi9jb3B5cmlnaHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWVhOGE1Ngot LS0gL2Rldi9udWxsCisrKyBiL3Byb3htb3gtc2RuLXR5cGVzL2RlYmlhbi9jb3B5cmlnaHQKQEAg LTAsMCArMSwxOCBAQAorRm9ybWF0OiBodHRwczovL3d3dy5kZWJpYW4ub3JnL2RvYy9wYWNrYWdp bmctbWFudWFscy9jb3B5cmlnaHQtZm9ybWF0LzEuMC8KKworRmlsZXM6CisgKgorQ29weXJpZ2h0 OiAyMDE5IC0gMjAyNSBQcm94bW94IFNlcnZlciBTb2x1dGlvbnMgR21iSCA8c3VwcG9ydEBwcm94 bW94LmNvbT4KK0xpY2Vuc2U6IEFHUEwtMy4wLW9yLWxhdGVyCisgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5k ZXIKKyB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKKyBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVy c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueQorIGxhdGVyIHZl cnNpb24uCisgLgorIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAorIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCisg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZQorIGRldGFpbHMuCisgLgorIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9u ZworIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgpkaWZmIC0tZ2l0IGEvcHJveG1veC1zZG4tdHlwZXMvZGViaWFuL2RlYmNhcmdv LnRvbWwgYi9wcm94bW94LXNkbi10eXBlcy9kZWJpYW4vZGViY2FyZ28udG9tbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44N2E3ODdlCi0tLSAvZGV2L251bGwKKysrIGIvcHJv eG1veC1zZG4tdHlwZXMvZGViaWFuL2RlYmNhcmdvLnRvbWwKQEAgLTAsMCArMSw3IEBACitvdmVy bGF5ID0gIi4iCitjcmF0ZV9zcmNfcGF0aCA9ICIuLiIKK21haW50YWluZXIgPSAiUHJveG1veCBT dXBwb3J0IFRlYW0gPHN1cHBvcnRAcHJveG1veC5jb20+IgorCitbc291cmNlXQordmNzX2dpdCA9 ICJnaXQ6Ly9naXQucHJveG1veC5jb20vZ2l0L3Byb3htb3gtdmUtcnMuZ2l0IgordmNzX2Jyb3dz ZXIgPSAiaHR0cHM6Ly9naXQucHJveG1veC5jb20vP3A9cHJveG1veC12ZS1ycy5naXQiCmRpZmYg LS1naXQgYS9wcm94bW94LXNkbi10eXBlcy9zcmMvYXJlYS5ycyBiL3Byb3htb3gtc2RuLXR5cGVz L3NyYy9hcmVhLnJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2N2U5ZjYK LS0tIC9kZXYvbnVsbAorKysgYi9wcm94bW94LXNkbi10eXBlcy9zcmMvYXJlYS5ycwpAQCAtMCww ICsxLDUwIEBACit1c2Ugc3RkOjp7Zm10OjpEaXNwbGF5LCBuZXQ6OklwdjRBZGRyfTsKKwordXNl IGFueWhvdzo6RXJyb3I7Cit1c2UgcHJveG1veF9zY2hlbWE6OntBcGlUeXBlLCBTY2hlbWEsIFN0 cmluZ1NjaGVtYSwgVXBkYXRlclR5cGV9OwordXNlIHNlcmRlX3dpdGg6OntEZXNlcmlhbGl6ZUZy b21TdHIsIFNlcmlhbGl6ZURpc3BsYXl9OworCisvLy8gQW4gT1NQRiBBcmVhLgorLy8vCisvLy8g SW50ZXJuYWxseSB0aGUgYXJlYSBpcyBqdXN0IGEgMzIgYml0IG51bWJlciBhbmQgaXMgb2Z0ZW4g cmVwcmVzZW50ZWQgaW4gZG90dGVkLWRlY2ltYWwKKy8vLyBub3RhdGlvbiwgbGlrZSBhbiBJUHY0 LiBGUlIgYWxzbyBhbGxvd3MgdXMgdG8gc3BlY2lmeSBpdCBhcyBhIG51bWJlciBvciBhbiBJUHY0 LUFkZHJlc3MuCisvLy8gVG8ga2VlcCBhIG5pY2UgdXNlciBleHBlcmllbmNlIHdlIGtlZXAgd2hp Y2hldmVyIGZvcm1hdCB0aGUgdXNlciBlbnRlcmVkLgorI1tkZXJpdmUoCisgICAgRGVidWcsIERl c2VyaWFsaXplRnJvbVN0ciwgU2VyaWFsaXplRGlzcGxheSwgQ2xvbmUsIEhhc2gsIFBhcnRpYWxF cSwgRXEsIFBhcnRpYWxPcmQsIE9yZCwKKyldCitwdWIgZW51bSBBcmVhIHsKKyAgICBOdW1iZXIo dTMyKSwKKyAgICBJcEFkZHJlc3MoSXB2NEFkZHIpLAorfQorCitpbXBsIEFwaVR5cGUgZm9yIEFy ZWEgeworICAgIGNvbnN0IEFQSV9TQ0hFTUE6IFNjaGVtYSA9CisgICAgICAgIFN0cmluZ1NjaGVt YTo6bmV3KCJUaGUgT1NQRiBhcmVhLCB3aGljaCBjYW4gYmUgYSBudW1iZXIgb3IgYSBpcC1hZGRy ZXNzLiIpLnNjaGVtYSgpOworfQorCitpbXBsIFVwZGF0ZXJUeXBlIGZvciBBcmVhIHsKKyAgICB0 eXBlIFVwZGF0ZXIgPSBPcHRpb248QXJlYT47Cit9CisKK2ltcGwgc3RkOjpzdHI6OkZyb21TdHIg Zm9yIEFyZWEgeworICAgIHR5cGUgRXJyID0gRXJyb3I7CisKKyAgICBmbiBmcm9tX3N0cihzOiAm c3RyKSAtPiBSZXN1bHQ8U2VsZiwgU2VsZjo6RXJyPiB7CisgICAgICAgIGlmIGxldCBPayhpcCkg PSBJcHY0QWRkcjo6ZnJvbV9zdHIocykgeworICAgICAgICAgICAgT2soU2VsZjo6SXBBZGRyZXNz KGlwKSkKKyAgICAgICAgfSBlbHNlIGlmIGxldCBPayhudW1iZXIpID0gdTMyOjpmcm9tX3N0cihz KSB7CisgICAgICAgICAgICBPayhTZWxmOjpOdW1iZXIobnVtYmVyKSkKKyAgICAgICAgfSBlbHNl IHsKKyAgICAgICAgICAgIGFueWhvdzo6YmFpbCEoIkFyZWEgaXMgbm90IGEgbnVtYmVyLCBub3Ig YW4gaXAgYWRkcmVzcyIpOworICAgICAgICB9CisgICAgfQorfQorCitpbXBsIERpc3BsYXkgZm9y IEFyZWEgeworICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBzdGQ6OmZtdDo6Rm9ybWF0dGVyPCdf PikgLT4gc3RkOjpmbXQ6OlJlc3VsdCB7CisgICAgICAgIG1hdGNoIHNlbGYgeworICAgICAgICAg ICAgQXJlYTo6TnVtYmVyKG4pID0+IHdyaXRlIShmLCAie259IiksCisgICAgICAgICAgICBBcmVh OjpJcEFkZHJlc3MoaSkgPT4gd3JpdGUhKGYsICJ7aX0iKSwKKyAgICAgICAgfQorICAgIH0KK30K ZGlmZiAtLWdpdCBhL3Byb3htb3gtc2RuLXR5cGVzL3NyYy9saWIucnMgYi9wcm94bW94LXNkbi10 eXBlcy9zcmMvbGliLnJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1ODJk OTAKLS0tIC9kZXYvbnVsbAorKysgYi9wcm94bW94LXNkbi10eXBlcy9zcmMvbGliLnJzCkBAIC0w LDAgKzEsMyBAQAorcHViIG1vZCBuZXQ7CitwdWIgbW9kIGFyZWE7CitwdWIgbW9kIG9wZW5mYWJy aWM7CmRpZmYgLS1naXQgYS9wcm94bW94LXNkbi10eXBlcy9zcmMvbmV0LnJzIGIvcHJveG1veC1z ZG4tdHlwZXMvc3JjL25ldC5ycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43 OGE0Nzk4Ci0tLSAvZGV2L251bGwKKysrIGIvcHJveG1veC1zZG4tdHlwZXMvc3JjL25ldC5ycwpA QCAtMCwwICsxLDMyOSBAQAordXNlIHN0ZDo6eworICAgIGZtdDo6RGlzcGxheSwKKyAgICBuZXQ6 OntJcEFkZHIsIElwdjRBZGRyLCBJcHY2QWRkcn0sCit9OworCit1c2UgYW55aG93Ojp7YmFpbCwg RXJyb3J9OwordXNlIGNvbnN0X2Zvcm1hdDo6Y29uY2F0Y3A7Cit1c2Ugc2VyZGU6OntEZXNlcmlh bGl6ZSwgU2VyaWFsaXplfTsKKwordXNlIHByb3htb3hfc2NoZW1hOjp7YXBpLCBhcGlfc3RyaW5n X3R5cGUsIGNvbnN0X3JlZ2V4LCBBcGlTdHJpbmdGb3JtYXQsIFVwZGF0ZXJUeXBlfTsKKworY29u c3QgTkVUX0FGSV9SRUdFWF9TVFI6ICZzdHIgPSByIig/OlthLWZBLUYwLTldezJ9KSI7Citjb25z dCBORVRfQVJFQV9SRUdFWF9TVFI6ICZzdHIgPSByIig/OlthLWZBLUYwLTldezR9KSI7Citjb25z dCBORVRfU1lTVEVNX0lEX1JFR0VYX1NUUjogJnN0ciA9IHIiKD86W2EtZkEtRjAtOV17NH0pXC4o PzpbYS1mQS1GMC05XXs0fSlcLig/OlthLWZBLUYwLTldezR9KSI7Citjb25zdCBORVRfU0VMRUNU T1JfUkVHRVhfU1RSOiAmc3RyID0gciIoPzpbYS1mQS1GMC05XXsyfSkiOworCitjb25zdF9yZWdl eCEgeworICAgIE5FVF9BRklfUkVHRVggPSBjb25jYXRjcCEociJeIiwgTkVUX0FGSV9SRUdFWF9T VFIsIHIiJCIpOworICAgIE5FVF9BUkVBX1JFR0VYID0gY29uY2F0Y3AhKHIiXiIsIE5FVF9BUkVB X1JFR0VYX1NUUiwgciIkIik7CisgICAgTkVUX1NZU1RFTV9JRF9SRUdFWCA9IGNvbmNhdGNwIShy Il4iLCBORVRfU1lTVEVNX0lEX1JFR0VYX1NUUiwgciIkIik7CisgICAgTkVUX1NFTEVDVE9SX1JF R0VYID0gY29uY2F0Y3AhKHIiXiIsIE5FVF9TRUxFQ1RPUl9SRUdFWF9TVFIsIHIiJCIpOworfQor Citjb25zdCBORVRfQUZJX0ZPUk1BVDogQXBpU3RyaW5nRm9ybWF0ID0gQXBpU3RyaW5nRm9ybWF0 OjpQYXR0ZXJuKCZORVRfQUZJX1JFR0VYKTsKK2NvbnN0IE5FVF9BUkVBX0ZPUk1BVDogQXBpU3Ry aW5nRm9ybWF0ID0gQXBpU3RyaW5nRm9ybWF0OjpQYXR0ZXJuKCZORVRfQVJFQV9SRUdFWCk7Citj b25zdCBORVRfU1lTVEVNX0lEX0ZPUk1BVDogQXBpU3RyaW5nRm9ybWF0ID0gQXBpU3RyaW5nRm9y bWF0OjpQYXR0ZXJuKCZORVRfU1lTVEVNX0lEX1JFR0VYKTsKK2NvbnN0IE5FVF9TRUxFQ1RPUl9G T1JNQVQ6IEFwaVN0cmluZ0Zvcm1hdCA9IEFwaVN0cmluZ0Zvcm1hdDo6UGF0dGVybigmTkVUX1NF TEVDVE9SX1JFR0VYKTsKKworYXBpX3N0cmluZ190eXBlISB7CisgICAgLy8vIEFkZHJlc3MgRmFt aWx5IGF1dGhvcml0eSBJZGVudGlmaWVyIC0gNDkgVGhlIEFGSSB2YWx1ZSA0OSBpcyB3aGF0IElT LUlTIChhbmQgb3BlbmZhYnJpYykgdXNlcworICAgIC8vLyBmb3IgcHJpdmF0ZSBhZGRyZXNzaW5n LgorICAgICNbYXBpKGZvcm1hdDogJk5FVF9BRklfRk9STUFUKV0KKyAgICAjW2Rlcml2ZShEZWJ1 ZywgQ2xvbmUsIEhhc2gsIFBhcnRpYWxFcSwgRXEsIFBhcnRpYWxPcmQsIE9yZCwgU2VyaWFsaXpl LCBEZXNlcmlhbGl6ZSldCisgICAgc3RydWN0IE5ldEFGSShTdHJpbmcpOworfQorCitpbXBsIERl ZmF1bHQgZm9yIE5ldEFGSSB7CisgICAgZm4gZGVmYXVsdCgpIC0+IFNlbGYgeworICAgICAgICBT ZWxmKCI0OSIudG9fb3duZWQoKSkKKyAgICB9Cit9CisKK2ltcGwgVXBkYXRlclR5cGUgZm9yIE5l dEFGSSB7CisgICAgdHlwZSBVcGRhdGVyID0gT3B0aW9uPE5ldEFGST47Cit9CisKK2FwaV9zdHJp bmdfdHlwZSEgeworICAgIC8vLyBBcmVhIGlkZW50aWZpZXI6IDAwMDEgSVMtSVMgYXJlYSBudW1i ZXIgKG51bWVyaWNhbCBhcmVhIDEpCisgICAgLy8vIFRoZSBzZWNvbmQgcGFydCAoc3lzdGVtKSBv ZiB0aGUgYG5ldGAgaWRlbnRpZmllci4gRXZlcnkgbm9kZSBoYXMgdG8gaGF2ZSBhIGRpZmZlcmVu dCBzeXN0ZW0KKyAgICAvLy8gbnVtYmVyLgorICAgICNbYXBpKGZvcm1hdDogJk5FVF9BUkVBX0ZP Uk1BVCldCisgICAgI1tkZXJpdmUoRGVidWcsIERlc2VyaWFsaXplLCBTZXJpYWxpemUsIENsb25l LCBIYXNoLCBQYXJ0aWFsRXEsIEVxLCBQYXJ0aWFsT3JkLCBPcmQpXQorICAgIHN0cnVjdCBOZXRB cmVhKFN0cmluZyk7Cit9CisKK2ltcGwgRGVmYXVsdCBmb3IgTmV0QXJlYSB7CisgICAgZm4gZGVm YXVsdCgpIC0+IFNlbGYgeworICAgICAgICBTZWxmKCIwMDAxIi50b19vd25lZCgpKQorICAgIH0K K30KKworaW1wbCBVcGRhdGVyVHlwZSBmb3IgTmV0QXJlYSB7CisgICAgdHlwZSBVcGRhdGVyID0g T3B0aW9uPE5ldEFyZWE+OworfQorCithcGlfc3RyaW5nX3R5cGUhIHsKKyAgICAvLy8gU3lzdGVt IGlkZW50aWZpZXI6IDE5MjEuNjgwMC4xMDAyIC0gZm9yIHN5c3RlbSBpZGVudGlmaWVycyB3ZSBy ZWNvbW1lbmQgdG8gdXNlIElQIGFkZHJlc3Mgb3IKKyAgICAvLy8gTUFDIGFkZHJlc3Mgb2YgdGhl IHJvdXRlciBpdHNlbGYuIFRoZSB3YXkgdG8gY29uc3RydWN0IHRoaXMgaXMgdG8ga2VlcCBhbGwg b2YgdGhlIHplcm9lcyBvZiB0aGUKKyAgICAvLy8gcm91dGVyIElQIGFkZHJlc3MsIGFuZCB0aGVu IGNoYW5nZSB0aGUgcGVyaW9kcyBmcm9tIGJlaW5nIGV2ZXJ5IHRocmVlIG51bWJlcnMgdG8gZXZl cnkgZm91cgorICAgIC8vLyBudW1iZXJzLiBUaGUgYWRkcmVzcyB0aGF0IGlzIGxpc3RlZCBoZXJl IGlzIDE5Mi4xNjguMS4yLCB3aGljaCBpZiBleHBhbmRlZCB3aWxsIHR1cm4gaW50bworICAgIC8v LyAxOTIuMTY4LjAwMS4wMDIuIFRoZW4gYWxsIG9uZSBoYXMgdG8gZG8gaXMgbW92ZSB0aGUgZG90 cyB0byBoYXZlIGZvdXIgbnVtYmVycyBpbnN0ZWFkIG9mIHRocmVlLgorICAgIC8vLyBUaGlzIGdp dmVzIHVzIDE5MjEuNjgwMC4xMDAyLgorICAgICNbYXBpKGZvcm1hdDogJk5FVF9TWVNURU1fSURf Rk9STUFUKV0KKyAgICAjW2Rlcml2ZShEZWJ1ZywgRGVzZXJpYWxpemUsIFNlcmlhbGl6ZSwgQ2xv bmUsIEhhc2gsIFBhcnRpYWxFcSwgRXEsIFBhcnRpYWxPcmQsIE9yZCldCisgICAgc3RydWN0IE5l dFN5c3RlbUlkKFN0cmluZyk7Cit9CisKK2ltcGwgVXBkYXRlclR5cGUgZm9yIE5ldFN5c3RlbUlk IHsKKyAgICB0eXBlIFVwZGF0ZXIgPSBPcHRpb248TmV0U3lzdGVtSWQ+OworfQorCisvLy8gQ29u dmVydCBJUC1BZGRyZXNzIHRvIGEgTkVUIGFkZHJlc3Mgd2l0aCB0aGUgZGVmYXVsdCBhZmksIGFy ZWEgYW5kIHNlbGVjdG9yIHZhbHVlcy4gTm90ZSB0aGF0IGEKKy8vLyB2YWxpZCBJcHY0QWRkciBp cyBhbHdheXMgYSB2YWxpZCBTeXN0ZW1JZCBhcyB3ZWxsLgoraW1wbCBGcm9tPElwdjRBZGRyPiBm b3IgTmV0U3lzdGVtSWQgeworICAgIGZuIGZyb20odmFsdWU6IElwdjRBZGRyKSAtPiBTZWxmIHsK KyAgICAgICAgbGV0IG9jdGV0cyA9IHZhbHVlLm9jdGV0cygpOworCisgICAgICAgIGxldCBzeXN0 ZW1faWRfc3RyID0gZm9ybWF0ISgKKyAgICAgICAgICAgICJ7OjAzfXs6MDF9Lns6MDJ9ezowMn0u ezowMX17OjAzfSIsCisgICAgICAgICAgICBvY3RldHNbMF0sCisgICAgICAgICAgICBvY3RldHNb MV0gLyAxMDAsCisgICAgICAgICAgICBvY3RldHNbMV0gJSAxMDAsCisgICAgICAgICAgICBvY3Rl dHNbMl0gLyAxMCwKKyAgICAgICAgICAgIG9jdGV0c1syXSAlIDEwLAorICAgICAgICAgICAgb2N0 ZXRzWzNdCisgICAgICAgICk7CisKKyAgICAgICAgU2VsZihzeXN0ZW1faWRfc3RyKQorICAgIH0K K30KKworLy8vIENvbnZlcnQgSVB2Ni1BZGRyZXNzIHRvIGEgTkVUIGFkZHJlc3Mgd2l0aCB0aGUg ZGVmYXVsdCBhZmksIGFyZWEgYW5kIHNlbGVjdG9yIHZhbHVlcy4gTm90ZSB0aGF0IGEKKy8vLyB2 YWxpZCBJcHY2QWRkciBpcyBhbHdheXMgYSB2YWxpZCBTeXN0ZW1JZCBhcyB3ZWxsLgoraW1wbCBG cm9tPElwdjZBZGRyPiBmb3IgTmV0U3lzdGVtSWQgeworICAgIGZuIGZyb20odmFsdWU6IElwdjZB ZGRyKSAtPiBTZWxmIHsKKyAgICAgICAgbGV0IHNlZ21lbnRzID0gdmFsdWUuc2VnbWVudHMoKTsK KworICAgICAgICAvLyBVc2UgdGhlIGxhc3QgMyBzZWdtZW50cyAob3V0IG9mIDgpIG9mIHRoZSBJ UHY2IGFkZHJlc3MKKyAgICAgICAgbGV0IHN5c3RlbV9pZF9zdHIgPSBmb3JtYXQhKAorICAgICAg ICAgICAgIns6MDR4fS57OjA0eH0uezowNHh9IiwKKyAgICAgICAgICAgIHNlZ21lbnRzWzVdLCBz ZWdtZW50c1s2XSwgc2VnbWVudHNbN10KKyAgICAgICAgKTsKKworICAgICAgICBTZWxmKHN5c3Rl bV9pZF9zdHIpCisgICAgfQorfQorCithcGlfc3RyaW5nX3R5cGUhIHsKKyAgICAvLy8gTkVUIHNl bGVjdG9yOiAwMCBNdXN0IGFsd2F5cyBiZSAwMC4gVGhpcyBzZXR0aW5nIGluZGljYXRlcyDigJx0 aGlzIHN5c3RlbeKAnSBvciDigJxsb2NhbCBzeXN0ZW0u4oCdCisgICAgI1thcGkoZm9ybWF0OiAm TkVUX1NFTEVDVE9SX0ZPUk1BVCldCisgICAgI1tkZXJpdmUoRGVidWcsIERlc2VyaWFsaXplLCBT ZXJpYWxpemUsIENsb25lLCBIYXNoLCBQYXJ0aWFsRXEsIEVxLCBQYXJ0aWFsT3JkLCBPcmQpXQor ICAgIHN0cnVjdCBOZXRTZWxlY3RvcihTdHJpbmcpOworfQorCitpbXBsIFVwZGF0ZXJUeXBlIGZv ciBOZXRTZWxlY3RvciB7CisgICAgdHlwZSBVcGRhdGVyID0gT3B0aW9uPE5ldFNlbGVjdG9yPjsK K30KKworaW1wbCBEZWZhdWx0IGZvciBOZXRTZWxlY3RvciB7CisgICAgZm4gZGVmYXVsdCgpIC0+ IFNlbGYgeworICAgICAgICBTZWxmKCIwMCIudG9fb3duZWQoKSkKKyAgICB9Cit9CisKKy8vLyBU aGUgTmV0d29yayBFbnRpdHkgVGl0bGUgKE5FVCkuCisvLy8KKy8vLyBFdmVyeSBPcGVuRmFicmlj IG5vZGUgaXMgaWRlbnRpZmllZCB0aHJvdWdoIHRoZSBORVQuIEl0IGhhcyBhIG5ldHdvcmsgYW5k IGEgaG9zdAorLy8vIHBhcnQuCisvLy8gVGhlIGZpcnN0IHBhcnQgaXMgdGhlIG5ldHdvcmsgcGFy dCAoYWxzbyBjYWxsZWQgYXJlYSkuIFRoZSBlbnRpcmUgT3BlbkZhYnJpYyBmYWJyaWMgaGFzIHRv IGhhdmUKKy8vLyB0aGUgc2FtZSBuZXR3b3JrIHBhcnQgKGFmaSArIGFyZWEpLiBUaGUgZmlyc3Qg bnVtYmVyIGlzIHRoZSBbYE5ldEFGSWBdIGFuZCB0aGUgc2Vjb25kIGlzIHRoZQorLy8vIFtgTmV0 QXJlYWBdLgorLy8vIGUuZy46ICI0OS4wMDAxIgorLy8vIFRoZSBzZWNvbmQgcGFydCBpcyB0aGUg aG9zdCBwYXJ0LCB3aGljaCBoYXMgdG8gZGlmZmVyIG9uIGV2ZXJ5IG5vZGUgaW4gdGhlIGZhYnJp YywgYnV0ICpub3QqCisvLy8gYmV0d2VlbiBmYWJyaWNzIG9uIHRoZSBzYW1lIG5vZGUuIEl0IGNv bnRhaW5zIHRoZSBbYE5ldFN5c3RlbUlkYF0gYW5kIHRoZSBbYE5ldFNlbGVjdG9yYF0uCisvLy8g ZS5nLjogIjE5MjEuNjgwMC4xMDAyLjAwIgorI1thcGldCisjW2Rlcml2ZShEZWJ1ZywgRGVzZXJp YWxpemUsIFNlcmlhbGl6ZSwgQ2xvbmUsIEhhc2gsIFBhcnRpYWxFcSwgRXEsIFBhcnRpYWxPcmQs IE9yZCldCitwdWIgc3RydWN0IE5ldCB7CisgICAgYWZpOiBOZXRBRkksCisgICAgYXJlYTogTmV0 QXJlYSwKKyAgICBzeXN0ZW06IE5ldFN5c3RlbUlkLAorICAgIHNlbGVjdG9yOiBOZXRTZWxlY3Rv ciwKK30KKworaW1wbCBVcGRhdGVyVHlwZSBmb3IgTmV0IHsKKyAgICB0eXBlIFVwZGF0ZXIgPSBP cHRpb248TmV0PjsKK30KKworaW1wbCBzdGQ6OnN0cjo6RnJvbVN0ciBmb3IgTmV0IHsKKyAgICB0 eXBlIEVyciA9IEVycm9yOworCisgICAgZm4gZnJvbV9zdHIoczogJnN0cikgLT4gUmVzdWx0PFNl bGYsIFNlbGY6OkVycj4geworICAgICAgICBsZXQgcGFydHM6IFZlYzwmc3RyPiA9IHMuc3BsaXQo Ii4iKS5jb2xsZWN0KCk7CisKKyAgICAgICAgaWYgcGFydHMubGVuKCkgIT0gNiB7CisgICAgICAg ICAgICBiYWlsISgiaW52YWxpZCBORVQgZm9ybWF0OiB7c30iKQorICAgICAgICB9CisKKyAgICAg ICAgbGV0IHN5c3RlbSA9IGZvcm1hdCEoInt9Lnt9Lnt9IiwgcGFydHNbMl0sIHBhcnRzWzNdLCBw YXJ0c1s0XSwpOworCisgICAgICAgIE9rKFNlbGYgeworICAgICAgICAgICAgYWZpOiBOZXRBRkk6 OmZyb21fc3RyaW5nKHBhcnRzWzBdLnRvX3N0cmluZygpKT8sCisgICAgICAgICAgICBhcmVhOiBO ZXRBcmVhOjpmcm9tX3N0cmluZyhwYXJ0c1sxXS50b19zdHJpbmcoKSk/LAorICAgICAgICAgICAg c3lzdGVtOiBOZXRTeXN0ZW1JZDo6ZnJvbV9zdHJpbmcoc3lzdGVtLnRvX3N0cmluZygpKT8sCisg ICAgICAgICAgICBzZWxlY3RvcjogTmV0U2VsZWN0b3I6OmZyb21fc3RyaW5nKHBhcnRzWzVdLnRv X3N0cmluZygpKT8sCisgICAgICAgIH0pCisgICAgfQorfQorCitpbXBsIERpc3BsYXkgZm9yIE5l dCB7CisgICAgZm4gZm10KCZzZWxmLCBmOiAmbXV0IHN0ZDo6Zm10OjpGb3JtYXR0ZXI8J18+KSAt PiBzdGQ6OmZtdDo6UmVzdWx0IHsKKyAgICAgICAgd3JpdGUhKAorICAgICAgICAgICAgZiwKKyAg ICAgICAgICAgICJ7fS57fS57fS57fSIsCisgICAgICAgICAgICBzZWxmLmFmaSwgc2VsZi5hcmVh LCBzZWxmLnN5c3RlbSwgc2VsZi5zZWxlY3RvcgorICAgICAgICApCisgICAgfQorfQorCisvLy8g RGVmYXVsdCBORVQgYWRkcmVzcyBmb3IgYSBnaXZlbiBJcHY0QWRkci4gVGhpcyBhZGRzIHRoZSBk ZWZhdWx0IGFmaSwgYXJlYSBhbmQgc2VsZWN0b3IgdG8gdGhlCisvLy8gYWRkcmVzcy4KK2ltcGwg RnJvbTxJcHY0QWRkcj4gZm9yIE5ldCB7CisgICAgZm4gZnJvbSh2YWx1ZTogSXB2NEFkZHIpIC0+ IFNlbGYgeworICAgICAgICBTZWxmIHsKKyAgICAgICAgICAgIGFmaTogTmV0QUZJOjpkZWZhdWx0 KCksCisgICAgICAgICAgICBhcmVhOiBOZXRBcmVhOjpkZWZhdWx0KCksCisgICAgICAgICAgICBz eXN0ZW06IHZhbHVlLmludG8oKSwKKyAgICAgICAgICAgIHNlbGVjdG9yOiBOZXRTZWxlY3Rvcjo6 ZGVmYXVsdCgpLAorICAgICAgICB9CisgICAgfQorfQorCisvLy8gRGVmYXVsdCBORVQgYWRkcmVz cyBmb3IgYSBnaXZlbiBJcHY2QWRkci4gVGhpcyBhZGRzIHRoZSBkZWZhdWx0IGFmaSwgYXJlYSBh bmQgc2VsZWN0b3IgdG8gdGhlCisvLy8gYWRkcmVzcy4KK2ltcGwgRnJvbTxJcHY2QWRkcj4gZm9y IE5ldCB7CisgICAgZm4gZnJvbSh2YWx1ZTogSXB2NkFkZHIpIC0+IFNlbGYgeworICAgICAgICBT ZWxmIHsKKyAgICAgICAgICAgIGFmaTogTmV0QUZJOjpkZWZhdWx0KCksCisgICAgICAgICAgICBh cmVhOiBOZXRBcmVhOjpkZWZhdWx0KCksCisgICAgICAgICAgICBzeXN0ZW06IHZhbHVlLmludG8o KSwKKyAgICAgICAgICAgIHNlbGVjdG9yOiBOZXRTZWxlY3Rvcjo6ZGVmYXVsdCgpLAorICAgICAg ICB9CisgICAgfQorfQorCisvLy8gRGVmYXVsdCBORVQgYWRkcmVzcyBmb3IgYSBnaXZlbiBJcEFk ZHIgKGNhbiBiZSBlaXRoZXIgSXB2NCBvciBJcHY2KS4gVGhpcyBhZGRzIHRoZSBkZWZhdWx0IGFm aSwKKy8vLyBhcmVhIGFuZCBzZWxlY3RvciB0byB0aGUgYWRkcmVzcy4KK2ltcGwgRnJvbTxJcEFk ZHI+IGZvciBOZXQgeworICAgIGZuIGZyb20odmFsdWU6IElwQWRkcikgLT4gU2VsZiB7CisgICAg ICAgIG1hdGNoIHZhbHVlIHsKKyAgICAgICAgICAgIElwQWRkcjo6VjQoaXB2NF9hZGRyKSA9PiBp cHY0X2FkZHIuaW50bygpLAorICAgICAgICAgICAgSXBBZGRyOjpWNihpcHY2X2FkZHIpID0+IGlw djZfYWRkci5pbnRvKCksCisgICAgICAgIH0KKyAgICB9Cit9CisKKyNbY2ZnKHRlc3QpXQorbW9k IHRlc3RzIHsKKyAgICB1c2Ugc3VwZXI6Oio7CisKKyAgICAjW3Rlc3RdCisgICAgZm4gdGVzdF9u ZXRfZnJvbV9zdHIoKSB7CisgICAgICAgIGxldCBpbnB1dCA9ICI0OS4wMDAxLjE5MjEuNjgwMC4x MDAyLjAwIjsKKyAgICAgICAgbGV0IG5ldCA9IGlucHV0LnBhcnNlOjo8TmV0PigpLmV4cGVjdCgi dGhpcyBuZXQgc2hvdWxkIHBhcnNlIik7CisgICAgICAgIGFzc2VydF9lcSEobmV0LmFmaSwgTmV0 QUZJKCI0OSIudG9fb3duZWQoKSkpOworICAgICAgICBhc3NlcnRfZXEhKG5ldC5hcmVhLCBOZXRB cmVhKCIwMDAxIi50b19vd25lZCgpKSk7CisgICAgICAgIGFzc2VydF9lcSEobmV0LnN5c3RlbSwg TmV0U3lzdGVtSWQoIjE5MjEuNjgwMC4xMDAyIi50b19vd25lZCgpKSk7CisgICAgICAgIGFzc2Vy dF9lcSEobmV0LnNlbGVjdG9yLCBOZXRTZWxlY3RvcigiMDAiLnRvX293bmVkKCkpKTsKKworICAg ICAgICBsZXQgaW5wdXQgPSAiNDUuMDIwMC4wMTAwLjEwMDEuYmExZi4wMSI7CisgICAgICAgIGxl dCBuZXQgPSBpbnB1dC5wYXJzZTo6PE5ldD4oKS5leHBlY3QoInRoaXMgbmV0IHNob3VsZCBwYXJz ZSIpOworICAgICAgICBhc3NlcnRfZXEhKG5ldC5hZmksIE5ldEFGSSgiNDUiLnRvX293bmVkKCkp KTsKKyAgICAgICAgYXNzZXJ0X2VxIShuZXQuYXJlYSwgTmV0QXJlYSgiMDIwMCIudG9fb3duZWQo KSkpOworICAgICAgICBhc3NlcnRfZXEhKG5ldC5zeXN0ZW0sIE5ldFN5c3RlbUlkKCIwMTAwLjEw MDEuYmExZiIudG9fb3duZWQoKSkpOworICAgICAgICBhc3NlcnRfZXEhKG5ldC5zZWxlY3Rvciwg TmV0U2VsZWN0b3IoIjAxIi50b19vd25lZCgpKSk7CisgICAgfQorCisgICAgI1t0ZXN0XQorICAg IGZuIHRlc3RfbmV0X2Zyb21fc3RyX2ZhaWxlZCgpIHsKKyAgICAgICAgbGV0IGlucHV0ID0gIjQ5 LjAwMDEuMTkyMS42ODAwLjEwMDIuMDAwIjsKKyAgICAgICAgaW5wdXQucGFyc2U6OjxOZXQ+KCku ZXhwZWN0X2VycigiaW52YWxpZCBORVQgc2VsZWN0b3IiKTsKKworICAgICAgICBsZXQgaW5wdXQg PSAiNDkuMDAwMS4xOTIxLjY4MDAuMTAwMi4wMC4wMCI7CisgICAgICAgIGlucHV0CisgICAgICAg ICAgICAucGFyc2U6OjxOZXQ+KCkKKyAgICAgICAgICAgIC5leHBlY3RfZXJyKCJpbnZhbGlkIGFt b3VudCBvZiBlbGVtZW50cyIpOworCisgICAgICAgIGxldCBpbnB1dCA9ICI0OS4wMDAxLjE5MjEu NjgwMC4xMDAwMi4wMCI7CisgICAgICAgIGlucHV0LnBhcnNlOjo8TmV0PigpLmV4cGVjdF9lcnIo ImludmFsaWQgc3lzdGVtIGlkIik7CisKKyAgICAgICAgbGV0IGlucHV0ID0gIjQ5LjAwMDEuMTky MS42ODAwLjF6MDIuMDAiOworICAgICAgICBpbnB1dC5wYXJzZTo6PE5ldD4oKS5leHBlY3RfZXJy KCJpbnZhbGlkIHN5c3RlbSBpZCIpOworCisgICAgICAgIGxldCBpbnB1dCA9ICI0MDkuMDAwMS4x OTIxLjY4MDAuMTAwMi4wMCI7CisgICAgICAgIGlucHV0LnBhcnNlOjo8TmV0PigpLmV4cGVjdF9l cnIoImludmFsaWQgQUZJIik7CisKKyAgICAgICAgbGV0IGlucHV0ID0gIjQ5LjAwMDAxLjE5MjEu NjgwMC4xMDAyLjAwIjsKKyAgICAgICAgaW5wdXQucGFyc2U6OjxOZXQ+KCkuZXhwZWN0X2Vycigi aW52YWxpZCBhcmVhIik7CisgICAgfQorCisgICAgI1t0ZXN0XQorICAgIGZuIHRlc3RfbmV0X2Rp c3BsYXkoKSB7CisgICAgICAgIGxldCBuZXQgPSBOZXQgeworICAgICAgICAgICAgYWZpOiBOZXRB RkkoIjQ5Ii50b19vd25lZCgpKSwKKyAgICAgICAgICAgIGFyZWE6IE5ldEFyZWEoIjAwMDEiLnRv X293bmVkKCkpLAorICAgICAgICAgICAgc3lzdGVtOiBOZXRTeXN0ZW1JZCgiMTkyMS42ODAwLjEw MDIiLnRvX293bmVkKCkpLAorICAgICAgICAgICAgc2VsZWN0b3I6IE5ldFNlbGVjdG9yKCIwMCIu dG9fb3duZWQoKSksCisgICAgICAgIH07CisgICAgICAgIGFzc2VydF9lcSEoZm9ybWF0ISgie25l dH0iKSwgIjQ5LjAwMDEuMTkyMS42ODAwLjEwMDIuMDAiKTsKKyAgICB9CisKKyAgICAjW3Rlc3Rd CisgICAgZm4gdGVzdF9uZXRfZnJvbV9pcHY0KCkgeworICAgICAgICBsZXQgaXA6IElwdjRBZGRy ID0gIjE5Mi4xNjguMS4xMDAiLnBhcnNlKCkudW53cmFwKCk7CisgICAgICAgIGxldCBuZXQ6IE5l dCA9IGlwLmludG8oKTsKKyAgICAgICAgYXNzZXJ0X2VxIShmb3JtYXQhKCJ7bmV0fSIpLCAiNDku MDAwMS4xOTIxLjY4MDAuMTEwMC4wMCIpOworCisgICAgICAgIGxldCBpcDE6IElwdjRBZGRyID0g IjEwLjEwLjIuMjQ1Ii5wYXJzZSgpLnVud3JhcCgpOworICAgICAgICBsZXQgbmV0MTogTmV0ID0g aXAxLmludG8oKTsKKyAgICAgICAgYXNzZXJ0X2VxIShmb3JtYXQhKCJ7bmV0MX0iKSwgIjQ5LjAw MDEuMDEwMC4xMDAwLjIyNDUuMDAiKTsKKworICAgICAgICBsZXQgaXAyOiBJcHY0QWRkciA9ICIx LjEuMS4xIi5wYXJzZSgpLnVud3JhcCgpOworICAgICAgICBsZXQgbmV0MjogTmV0ID0gaXAyLmlu dG8oKTsKKyAgICAgICAgYXNzZXJ0X2VxIShmb3JtYXQhKCJ7bmV0Mn0iKSwgIjQ5LjAwMDEuMDAx MC4wMTAwLjEwMDEuMDAiKTsKKyAgICB9CisKKyAgICAjW3Rlc3RdCisgICAgZm4gdGVzdF9uZXRf ZnJvbV9pcHY2KCkgeworICAgICAgICAvLyAyMDAxOmRiODo6MSAtPiBbMjAwMSwgMGRiOCwgMCwg MCwgMCwgMCwgMCwgMV0KKyAgICAgICAgLy8gbGFzdCAzIHNlZ21lbnRzOiBbMCwgMCwgMV0KKyAg ICAgICAgbGV0IGlwOiBJcHY2QWRkciA9ICIyMDAxOmRiODo6MSIucGFyc2UoKS51bndyYXAoKTsK KyAgICAgICAgbGV0IG5ldDogTmV0ID0gaXAuaW50bygpOworICAgICAgICBhc3NlcnRfZXEhKGZv cm1hdCEoIntuZXR9IiksICI0OS4wMDAxLjAwMDAuMDAwMC4wMDAxLjAwIik7CisKKyAgICAgICAg Ly8gZmU4MDo6MTIzNDo1Njc4OmFiY2QgLT4gW2ZlODAsIDAsIDAsIDAsIDAsIDEyMzQsIDU2Nzgs IGFiY2RdCisgICAgICAgIC8vIGxhc3QgMyBzZWdtZW50czogWzEyMzQsIDU2NzgsIGFiY2RdCisg ICAgICAgIGxldCBpcDE6IElwdjZBZGRyID0gImZlODA6OjEyMzQ6NTY3ODphYmNkIi5wYXJzZSgp LnVud3JhcCgpOworICAgICAgICBsZXQgbmV0MTogTmV0ID0gaXAxLmludG8oKTsKKyAgICAgICAg YXNzZXJ0X2VxIShmb3JtYXQhKCJ7bmV0MX0iKSwgIjQ5LjAwMDEuMTIzNC41Njc4LmFiY2QuMDAi KTsKKworICAgICAgICAvLyAyMDAxOjBkYjg6ODVhMzo6OGEyZTozNzA6NzMzNCAtPiBbMjAwMSwg MGRiOCwgODVhMywgMCwgMCwgOGEyZSwgMDM3MCwgNzMzNF0KKyAgICAgICAgLy8gbGFzdCAzIHNl Z21lbnRzOiBbOGEyZSwgMDM3MCwgNzMzNF0KKyAgICAgICAgbGV0IGlwMjogSXB2NkFkZHIgPSAi MjAwMTowZGI4Ojg1YTM6OjhhMmU6MzcwOjczMzQiLnBhcnNlKCkudW53cmFwKCk7CisgICAgICAg IGxldCBuZXQyOiBOZXQgPSBpcDIuaW50bygpOworICAgICAgICBhc3NlcnRfZXEhKGZvcm1hdCEo IntuZXQyfSIpLCAiNDkuMDAwMS44YTJlLjAzNzAuNzMzNC4wMCIpOworCisgICAgICAgIC8vIDo6 MSAtPiBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMV0KKyAgICAgICAgLy8gbGFzdCAzIHNlZ21lbnRz OiBbMCwgMCwgMV0KKyAgICAgICAgbGV0IGlwMzogSXB2NkFkZHIgPSAiOjoxIi5wYXJzZSgpLnVu d3JhcCgpOworICAgICAgICBsZXQgbmV0MzogTmV0ID0gaXAzLmludG8oKTsKKyAgICAgICAgYXNz ZXJ0X2VxIShmb3JtYXQhKCJ7bmV0M30iKSwgIjQ5LjAwMDEuMDAwMC4wMDAwLjAwMDEuMDAiKTsK KworICAgICAgICAvLyBhOmI6OjAgLT4gW2EsIGIsIDAsIDAsIDAsIDAsIDAsIDBdCisgICAgICAg IC8vIGxhc3QgMyBzZWdtZW50czogWzAsIDAsIDBdCisgICAgICAgIGxldCBpcDQ6IElwdjZBZGRy ID0gImE6Yjo6MCIucGFyc2UoKS51bndyYXAoKTsKKyAgICAgICAgbGV0IG5ldDQ6IE5ldCA9IGlw NC5pbnRvKCk7CisgICAgICAgIGFzc2VydF9lcSEoZm9ybWF0ISgie25ldDR9IiksICI0OS4wMDAx LjAwMDAuMDAwMC4wMDAwLjAwIik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvcHJveG1veC1zZG4t dHlwZXMvc3JjL29wZW5mYWJyaWMucnMgYi9wcm94bW94LXNkbi10eXBlcy9zcmMvb3BlbmZhYnJp Yy5ycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzllMmQ5Ci0tLSAvZGV2 L251bGwKKysrIGIvcHJveG1veC1zZG4tdHlwZXMvc3JjL29wZW5mYWJyaWMucnMKQEAgLTAsMCAr MSw3MiBAQAordXNlIHNlcmRlOjp7RGVzZXJpYWxpemUsIFNlcmlhbGl6ZX07Cit1c2Ugc3RkOjpm bXQ6OkRpc3BsYXk7CisKK3VzZSBwcm94bW94X3NjaGVtYTo6e2FwaSwgVXBkYXRlclR5cGV9Owor CisvLy8gVGhlIE9wZW5GYWJyaWMgQ1NOUCBJbnRlcnZhbC4KKy8vLworLy8vIFRoZSBDb21wbGV0 ZSBTZXF1ZW5jZSBOdW1iZXIgUGFja2V0cyAoQ1NOUCkgaW50ZXJ2YWwgaW4gc2Vjb25kcy4gVGhl IGludGVydmFsIHJhbmdlIGlzIDEgdG8KKy8vLyA2MDAuCisjW2FwaSgKKyAgICB0eXBlOiBJbnRl Z2VyLAorICAgIG1pbmltdW06IDEsCisgICAgbWF4aW11bTogNjAwLAorKV0KKyNbZGVyaXZlKFNl cmlhbGl6ZSwgRGVzZXJpYWxpemUsIEhhc2gsIERlYnVnLCBDbG9uZSwgQ29weSwgUGFydGlhbEVx LCBFcSwgUGFydGlhbE9yZCwgT3JkKV0KKyNbc2VyZGUodHJhbnNwYXJlbnQpXQorcHViIHN0cnVj dCBDc25wSW50ZXJ2YWwoI1tzZXJkZShkZXNlcmlhbGl6ZV93aXRoID0gInByb3htb3hfc2VyZGU6 OnBlcmw6OmRlc2VyaWFsaXplX3UxNiIpXSB1MTYpOworCitpbXBsIFVwZGF0ZXJUeXBlIGZvciBD c25wSW50ZXJ2YWwgeworICAgIHR5cGUgVXBkYXRlciA9IE9wdGlvbjxDc25wSW50ZXJ2YWw+Owor fQorCitpbXBsIERpc3BsYXkgZm9yIENzbnBJbnRlcnZhbCB7CisgICAgZm4gZm10KCZzZWxmLCBm OiAmbXV0IHN0ZDo6Zm10OjpGb3JtYXR0ZXI8J18+KSAtPiBzdGQ6OmZtdDo6UmVzdWx0IHsKKyAg ICAgICAgc2VsZi4wLmZtdChmKQorICAgIH0KK30KKworLy8vIFRoZSBPcGVuRmFicmljIEhlbGxv IEludGVydmFsLgorLy8vCisvLy8gVGhlIEhlbGxvIEludGVydmFsIGZvciBhIGdpdmVuIGludGVy ZmFjZSBpbiBzZWNvbmRzLiBUaGUgcmFuZ2UgaXMgMSB0byA2MDAuIEhlbGxvIHBhY2tldHMgYXJl CisvLy8gdXNlZCB0byBlc3RhYmxpc2ggYW5kIG1haW50YWluIGFkamFjZW5jeSBiZXR3ZWVuIE9w ZW5GYWJyaWMgbmVpZ2hib3JzLgorI1thcGkoCisgICAgdHlwZTogSW50ZWdlciwKKyAgICBtaW5p bXVtOiAxLAorICAgIG1heGltdW06IDYwMCwKKyldCisjW2Rlcml2ZShTZXJpYWxpemUsIERlc2Vy aWFsaXplLCBIYXNoLCBEZWJ1ZywgQ2xvbmUsIENvcHksIFBhcnRpYWxFcSwgRXEsIFBhcnRpYWxP cmQsIE9yZCldCisjW3NlcmRlKHRyYW5zcGFyZW50KV0KK3B1YiBzdHJ1Y3QgSGVsbG9JbnRlcnZh bCgjW3NlcmRlKGRlc2VyaWFsaXplX3dpdGggPSAicHJveG1veF9zZXJkZTo6cGVybDo6ZGVzZXJp YWxpemVfdTE2IildIHUxNik7CisKK2ltcGwgVXBkYXRlclR5cGUgZm9yIEhlbGxvSW50ZXJ2YWwg eworICAgIHR5cGUgVXBkYXRlciA9IE9wdGlvbjxIZWxsb0ludGVydmFsPjsKK30KKworaW1wbCBE aXNwbGF5IGZvciBIZWxsb0ludGVydmFsIHsKKyAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgc3Rk OjpmbXQ6OkZvcm1hdHRlcjwnXz4pIC0+IHN0ZDo6Zm10OjpSZXN1bHQgeworICAgICAgICBzZWxm LjAuZm10KGYpCisgICAgfQorfQorCisvLy8gVGhlIE9wZW5GYWJyaWMgSGVsbG8gTXVsdGlwbGll ci4KKy8vLworLy8vIFRoaXMgaXMgdGhlIG11bHRpcGxpZXIgZm9yIHRoZSBoZWxsbyBob2xkaW5n IHRpbWUgb24gYSBnaXZlbiBpbnRlcmZhY2UuIFRoZSByYW5nZSBpcyAyIHRvIDEwMC4KKyNbYXBp KAorICAgIHR5cGU6IEludGVnZXIsCisgICAgbWluaW11bTogMiwKKyAgICBtYXhpbXVtOiAxMDAs CispXQorI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgSGFzaCwgRGVidWcsIENsb25l LCBDb3B5LCBQYXJ0aWFsRXEsIEVxLCBQYXJ0aWFsT3JkLCBPcmQpXQorI1tzZXJkZSh0cmFuc3Bh cmVudCldCitwdWIgc3RydWN0IEhlbGxvTXVsdGlwbGllcigjW3NlcmRlKGRlc2VyaWFsaXplX3dp dGggPSAicHJveG1veF9zZXJkZTo6cGVybDo6ZGVzZXJpYWxpemVfdTE2IildIHUxNik7CisKK2lt cGwgVXBkYXRlclR5cGUgZm9yIEhlbGxvTXVsdGlwbGllciB7CisgICAgdHlwZSBVcGRhdGVyID0g T3B0aW9uPEhlbGxvTXVsdGlwbGllcj47Cit9CisKK2ltcGwgRGlzcGxheSBmb3IgSGVsbG9NdWx0 aXBsaWVyIHsKKyAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgc3RkOjpmbXQ6OkZvcm1hdHRlcjwn Xz4pIC0+IHN0ZDo6Zm10OjpSZXN1bHQgeworICAgICAgICBzZWxmLjAuZm10KGYpCisgICAgfQor fQpkaWZmIC0tZ2l0IGEvcHJveG1veC12ZS1jb25maWcvQ2FyZ28udG9tbCBiL3Byb3htb3gtdmUt Y29uZmlnL0NhcmdvLnRvbWwKaW5kZXggNzJmYjYyNy4uYzI0MGE4NyAxMDA2NDQKLS0tIGEvcHJv eG1veC12ZS1jb25maWcvQ2FyZ28udG9tbAorKysgYi9wcm94bW94LXZlLWNvbmZpZy9DYXJnby50 b21sCkBAIC04LDE0ICs4LDE0IEBAIGV4Y2x1ZGUud29ya3NwYWNlID0gdHJ1ZQogCiBbZGVwZW5k ZW5jaWVzXQogbG9nID0gIjAuNCIKLWFueWhvdyA9ICIxIgorYW55aG93ID0geyB3b3Jrc3BhY2Ug PSB0cnVlIH0KIG5peCA9ICIwLjI2IgotdGhpc2Vycm9yID0gIjEuMC41OSIKK3RoaXNlcnJvciA9 IHsgd29ya3NwYWNlID0gdHJ1ZSB9CiAKLXNlcmRlID0geyB2ZXJzaW9uID0gIjEiLCBmZWF0dXJl cyA9IFsgImRlcml2ZSIgXSB9CitzZXJkZSA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgZmVhdHVyZXMg PSBbICJkZXJpdmUiIF0gfQogc2VyZGVfanNvbiA9ICIxIgogc2VyZGVfcGxhaW4gPSAiMSIKLXNl cmRlX3dpdGggPSAiMyIKK3NlcmRlX3dpdGggPSB7IHdvcmtzcGFjZSA9IHRydWUgfQogcHJveG1v eC1zZXJkZSA9IHsgdmVyc2lvbiA9ICIwLjEuMiIsIGZlYXR1cmVzID0gWyAicGVybCIgXX0KIAog cHJveG1veC1uZXR3b3JrLXR5cGVzID0geyB3b3Jrc3BhY2UgPSB0cnVlIH0KLS0gCjIuMzkuNQoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnB2ZS1kZXZl bCBtYWlsaW5nIGxpc3QKcHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMu cHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAo=