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 CCFF91FF15E for ; Mon, 5 Jan 2026 15:15:23 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id AB4859AA8; Mon, 5 Jan 2026 15:16:35 +0100 (CET) From: Samuel Rufinatscha To: pbs-devel@lists.proxmox.com Date: Mon, 5 Jan 2026 15:16:12 +0100 Message-ID: <20260105141615.242463-3-s.rufinatscha@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260105141615.242463-1-s.rufinatscha@proxmox.com> References: <20260105141615.242463-1-s.rufinatscha@proxmox.com> MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1767622556033 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.081 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 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 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pbs-devel] [PATCH proxmox-backup v6 2/4] partial fix #6049: datastore: impl ConfigVersionCache fast path for lookups X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Backup Server development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" UmVwZWF0ZWQgL3N0YXR1cyByZXF1ZXN0cyBjYXVzZWQgbG9va3VwX2RhdGFzdG9yZSgpIHRvIHJl LXJlYWQgYW5kCnBhcnNlIGRhdGFzdG9yZS5jZmcgb24gZXZlcnkgY2FsbC4gVGhlIGlzc3VlIHdh cyBtZW50aW9uZWQgaW4gcmVwb3J0CiM2MDQ5IFsxXS4gY2FyZ28tZmxhbWVncmFwaCBbMl0gY29u ZmlybWVkIHRoYXQgdGhlIGhvdCBwYXRoIGlzCmRvbWluYXRlZCBieSBwYnNfY29uZmlnOjpkYXRh c3RvcmU6OmNvbmZpZygpIChjb25maWcgcGFyc2luZykuCgpUaGlzIHBhdGNoIGltcGxlbWVudHMg Y2FjaGluZyBvZiB0aGUgZ2xvYmFsIGRhdGFzdG9yZS5jZmcgdXNpbmcgdGhlCmdlbmVyYXRpb24g bnVtYmVycyBmcm9tIHRoZSBzaGFyZWQgY29uZmlnIHZlcnNpb24gY2FjaGUuIEl0IGNhY2hlcyB0 aGUKZGF0YXN0b3JlLmNmZyBhbG9uZyB3aXRoIHRoZSBnZW5lcmF0aW9uIG51bWJlciBhbmQsIHdo ZW4gYSBzdWJzZXF1ZW50Cmxvb2t1cCBzZWVzIHRoZSBzYW1lIGdlbmVyYXRpb24sIGl0IHJldXNl cyB0aGUgY2FjaGVkIGNvbmZpZyB3aXRob3V0CnJlLXJlYWRpbmcgaXQgZnJvbSBkaXNrLiBJZiB0 aGUgZ2VuZXJhdGlvbiBkaWZmZXJzCihvciB0aGUgY2FjaGUgaXMgdW5hdmFpbGFibGUpLCB0aGUg Y29uZmlnIGlzIHJlLXJlYWQgZnJvbSBkaXNrLgpJZiBgdXBkYXRlX2NhY2hlID0gdHJ1ZWAsIHRo ZSBuZXcgY29uZmlnIGFuZCBjdXJyZW50IGdlbmVyYXRpb24gYXJlCnBlcnNpc3RlZCBpbiB0aGUg Y2FjaGUuIEluIHRoaXMgY2FzZSwgY2FsbGVycyBtdXN0IGhvbGQgdGhlIGRhdGFzdG9yZQpjb25m aWcgbG9jayB0byBhdm9pZCByYWNpbmcgd2l0aCBjb25jdXJyZW50IGNvbmZpZyBjaGFuZ2VzLgpJ ZiBgdXBkYXRlX2NhY2hlYCBpcyBgZmFsc2VgIGFuZCBnZW5lcmF0aW9uIGRpZCBub3QgbWF0Y2gs IHRoZSBmcmVzaGx5CnJlYWQgY29uZmlnIGlzIHJldHVybmVkIGJ1dCB0aGUgY2FjaGUgaXMgbGVm dCB1bmNoYW5nZWQuIElmCmBDb25maWdWZXJzaW9uQ2FjaGVgIGlzIG5vdCBhdmFpbGFibGUsIHRo ZSBjb25maWcgaXMgYWx3YXlzIHJlYWQgZnJvbQpkaXNrIGFuZCBgTm9uZWAgaXMgcmV0dXJuZWQg YXMgZ2VuZXJhdGlvbi4KCkJlaGF2aW9yYWwgbm90ZXMKCi0gVGhlIGdlbmVyYXRpb24gaXMgYnVt cGVkIHZpYSB0aGUgZXhpc3Rpbmcgc2F2ZV9jb25maWcoKSBwYXRoLCBzbwogIEFQSS1kcml2ZW4g Y29uZmlnIGNoYW5nZXMgYXJlIGRldGVjdGVkIGltbWVkaWF0ZWx5LgotIE1hbnVhbCBlZGl0cyB0 byBkYXRhc3RvcmUuY2ZnIGFyZSBub3QgZGV0ZWN0ZWQ7IHRoaXMgaXMgY292ZXJlZCBpbiBhCiAg ZGVkaWNhdGVkIHBhdGNoIGluIHRoaXMgc2VyaWVzLgotIERhdGFTdG9yZTo6ZHJvcCBzdGlsbCBw ZXJmb3JtcyBhIGNvbmZpZyByZWFkIG9uIHRoZSBjb21tb24gcGF0aDsKICBhbHNvIGNvdmVyZWQg aW4gYSBkZWRpY2F0ZWQgcGF0Y2ggaW4gdGhpcyBzZXJpZXMuCgpMaW5rcwoKWzFdIEJ1Z3ppbGxh OiBodHRwczovL2J1Z3ppbGxhLnByb3htb3guY29tL3Nob3dfYnVnLmNnaT9pZD02MDQ5ClsyXSBj YXJnby1mbGFtZWdyYXBoOiBodHRwczovL2dpdGh1Yi5jb20vZmxhbWVncmFwaC1ycy9mbGFtZWdy YXBoCgpGaXhlczogIzYwNDkKU2lnbmVkLW9mZi1ieTogU2FtdWVsIFJ1ZmluYXRzY2hhIDxzLnJ1 ZmluYXRzY2hhQHByb3htb3guY29tPgotLS0KQ2hhbmdlczoKCkZyb20gdjEg4oaSIHYyCi0gTW92 ZWQgdGhlIENvbmZpZ1ZlcnNpb25DYWNoZSBjaGFuZ2VzIGludG8gaXRzIG93biBwYXRjaCwKICB0 aGFua3MgQEZhYmlhbgotIEludHJvZHVjZWQgdGhlIGdsb2JhbCBzdGF0aWMgREFUQVNUT1JFX0NP TkZJR19DQUNIRSB0byBzdG9yZSB0aGUKICBmdWxseSBwYXJzZWQgZGF0YXN0b3JlLmNmZyBpbnN0 ZWFkLCBhbG9uZyB3aXRoIGl0cyBnZW5lcmF0aW9uIG51bWJlci4KICB0aGFua3MgQEZhYmlhbgot IEludHJvZHVjZWQgRGF0YXN0b3JlQ29uZmlnQ2FjaGUgc3RydWN0IHRvIGhvbGQgY2FjaGUgdmFs dWVzCi0gUmVtb3ZlZCBhbmQgcmVwbGFjZWQgdGhlIENhY2hlZERhdGFzdG9yZUNvbmZpZ1RhZyBm aWVsZCBvZgogIERhdGFTdG9yZUltcGwgd2l0aCBhIGdlbmVyYXRpb24gbnVtYmVyIGZpZWxkIG9u bHkgKE9wdGlvbjx1c2l6ZT4pCiAgdG8gdmFsaWRhdGUgRGF0YVN0b3JlSW1wbCByZXVzZS4KLSBB ZGRlZCBEYXRhU3RvcmU6OmRhdGFzdG9yZV9zZWN0aW9uX2NvbmZpZ19jYWNoZWQoKSBoZWxwZXIg ZnVuY3Rpb24KICB0byBlbmNhcHN1bGF0ZSB0aGUgY2FjaGluZyBsb2dpYyBhbmQgc2ltcGxpZnkg cmV1c2UuCi0gTW9kaWZpZWQgRGF0YVN0b3JlOjpsb29rdXBfZGF0YXN0b3JlKCkgdG8gdXNlIHRo ZSBuZXcgaGVscGVyLgoKRnJvbSB2MiDihpIgdjMKTm8gY2hhbmdlcwoKRnJvbSB2MyDihpIgdjQs IHRoYW5rcyBARmFiaWFuCi0gUmVzdHJ1Y3R1cmVkIHRoZSB2ZXJzaW9uIGNhY2hlIGNoZWNrcyBp bgogIGRhdGFzdG9yZV9zZWN0aW9uX2NvbmZpZ19jYWNoZWQoKSwgdG8gc2ltcGxpZnkgdGhlIGxv Z2ljLgotIEFkZGVkIHVwZGF0ZV9jYWNoZSBwYXJhbWV0ZXIgdG8gZGF0YXN0b3JlX3NlY3Rpb25f Y29uZmlnX2NhY2hlZCgpIHRvCiAgY29udHJvbCBjYWNoZSB1cGRhdGVzLgoKRnJvbSB2NCDihpIg djUKLSBSZWJhc2VkIG9ubHksIG5vIGNoYW5nZXMKCkZyb20gdjUg4oaSIHY2Ci0gUmViYXNlZAot IFN0eWxpbmc6IG1pbmltaXplL2F2b2lkIGRpZmYgbm9pc2UsIHRoYW5rcyBARmFiaWFuCgogcGJz LWRhdGFzdG9yZS9DYXJnby50b21sICAgICAgIHwgIDEgKwogcGJzLWRhdGFzdG9yZS9zcmMvZGF0 YXN0b3JlLnJzIHwgOTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogMiBmaWxl cyBjaGFuZ2VkLCA3NyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9wYnMtZGF0YXN0b3JlL0NhcmdvLnRvbWwgYi9wYnMtZGF0YXN0b3JlL0NhcmdvLnRvbWwKaW5k ZXggOGNlOTMwYTkuLjQyZjQ5YTdiIDEwMDY0NAotLS0gYS9wYnMtZGF0YXN0b3JlL0NhcmdvLnRv bWwKKysrIGIvcGJzLWRhdGFzdG9yZS9DYXJnby50b21sCkBAIC00MCw2ICs0MCw3IEBAIHByb3ht b3gtaW8ud29ya3NwYWNlID0gdHJ1ZQogcHJveG1veC1sYW5nLndvcmtzcGFjZT10cnVlCiBwcm94 bW94LXMzLWNsaWVudCA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgZmVhdHVyZXMgPSBbICJpbXBsIiBd IH0KIHByb3htb3gtc2NoZW1hID0geyB3b3Jrc3BhY2UgPSB0cnVlLCBmZWF0dXJlcyA9IFsgImFw aS1tYWNybyIgXSB9Citwcm94bW94LXNlY3Rpb24tY29uZmlnLndvcmtzcGFjZSA9IHRydWUKIHBy b3htb3gtc2VyZGUgPSB7IHdvcmtzcGFjZSA9IHRydWUsIGZlYXR1cmVzID0gWyAic2VyZGVfanNv biIgXSB9CiBwcm94bW94LXN5cy53b3Jrc3BhY2UgPSB0cnVlCiBwcm94bW94LXN5c3RlbWQud29y a3NwYWNlID0gdHJ1ZQpkaWZmIC0tZ2l0IGEvcGJzLWRhdGFzdG9yZS9zcmMvZGF0YXN0b3JlLnJz IGIvcGJzLWRhdGFzdG9yZS9zcmMvZGF0YXN0b3JlLnJzCmluZGV4IDljNTdhYWFjLi5hYTM2Njgy NiAxMDA2NDQKLS0tIGEvcGJzLWRhdGFzdG9yZS9zcmMvZGF0YXN0b3JlLnJzCisrKyBiL3Bicy1k YXRhc3RvcmUvc3JjL2RhdGFzdG9yZS5ycwpAQCAtMzQsNyArMzQsOCBAQCB1c2UgcGJzX2FwaV90 eXBlczo6ewogICAgIE1haW50ZW5hbmNlVHlwZSwgT3BlcmF0aW9uLCBVUElELAogfTsKIHVzZSBw YnNfY29uZmlnOjpzMzo6UzNfQ0ZHX1RZUEVfSUQ7Ci11c2UgcGJzX2NvbmZpZzo6QmFja3VwTG9j a0d1YXJkOwordXNlIHBic19jb25maWc6OntCYWNrdXBMb2NrR3VhcmQsIENvbmZpZ1ZlcnNpb25D YWNoZX07Cit1c2UgcHJveG1veF9zZWN0aW9uX2NvbmZpZzo6U2VjdGlvbkNvbmZpZ0RhdGE7CiAK IHVzZSBjcmF0ZTo6YmFja3VwX2luZm86OnsKICAgICBCYWNrdXBEaXIsIEJhY2t1cEdyb3VwLCBC YWNrdXBJbmZvLCBPTERfTE9DS0lORywgUFJPVEVDVEVEX01BUktFUl9GSUxFTkFNRSwKQEAgLTQ4 LDYgKzQ5LDE3IEBAIHVzZSBjcmF0ZTo6czM6OlMzX0NPTlRFTlRfUFJFRklYOwogdXNlIGNyYXRl Ojp0YXNrX3RyYWNraW5nOjp7c2VsZiwgdXBkYXRlX2FjdGl2ZV9vcGVyYXRpb25zfTsKIHVzZSBj cmF0ZTo6e0RhdGFCbG9iLCBMb2NhbERhdGFzdG9yZUxydUNhY2hlfTsKIAorLy8gQ2FjaGUgZm9y IGZ1bGx5IHBhcnNlZCBkYXRhc3RvcmUuY2ZnCitzdHJ1Y3QgRGF0YXN0b3JlQ29uZmlnQ2FjaGUg eworICAgIC8vIFBhcnNlZCBkYXRhc3RvcmUuY2ZnIGZpbGUKKyAgICBjb25maWc6IEFyYzxTZWN0 aW9uQ29uZmlnRGF0YT4sCisgICAgLy8gR2VuZXJhdGlvbiBudW1iZXIgZnJvbSBDb25maWdWZXJz aW9uQ2FjaGUKKyAgICBsYXN0X2dlbmVyYXRpb246IHVzaXplLAorfQorCitzdGF0aWMgREFUQVNU T1JFX0NPTkZJR19DQUNIRTogTGF6eUxvY2s8TXV0ZXg8T3B0aW9uPERhdGFzdG9yZUNvbmZpZ0Nh Y2hlPj4+ID0KKyAgICBMYXp5TG9jazo6bmV3KHx8IE11dGV4OjpuZXcoTm9uZSkpOworCiBzdGF0 aWMgREFUQVNUT1JFX01BUDogTGF6eUxvY2s8TXV0ZXg8SGFzaE1hcDxTdHJpbmcsIEFyYzxEYXRh U3RvcmVJbXBsPj4+PiA9CiAgICAgTGF6eUxvY2s6Om5ldyh8fCBNdXRleDo6bmV3KEhhc2hNYXA6 Om5ldygpKSk7CiAKQEAgLTE0OSwxMSArMTYxLDEzIEBAIHB1YiBzdHJ1Y3QgRGF0YVN0b3JlSW1w bCB7CiAgICAgbGFzdF9nY19zdGF0dXM6IE11dGV4PEdhcmJhZ2VDb2xsZWN0aW9uU3RhdHVzPiwK ICAgICB2ZXJpZnlfbmV3OiBib29sLAogICAgIGNodW5rX29yZGVyOiBDaHVua09yZGVyLAotICAg IGxhc3RfZGlnZXN0OiBPcHRpb248W3U4OyAzMl0+LAogICAgIHN5bmNfbGV2ZWw6IERhdGFzdG9y ZUZTeW5jTGV2ZWwsCiAgICAgYmFja2VuZF9jb25maWc6IERhdGFzdG9yZUJhY2tlbmRDb25maWcs CiAgICAgbHJ1X3N0b3JlX2NhY2hpbmc6IE9wdGlvbjxMb2NhbERhdGFzdG9yZUxydUNhY2hlPiwK ICAgICB0aHJlYWRfc2V0dGluZ3M6IERhdGFzdG9yZVRocmVhZFNldHRpbmdzLAorICAgIC8vLyBk YXRhc3RvcmUuY2ZnIGNhY2hlIGdlbmVyYXRpb24gbnVtYmVyIGF0IGxvb2t1cCB0aW1lLCB1c2Vk IHRvCisgICAgLy8vIGludmFsaWRhdGUgdGhpcyBjYWNoZWQgYERhdGFTdG9yZUltcGxgCisgICAg Y29uZmlnX2dlbmVyYXRpb246IE9wdGlvbjx1c2l6ZT4sCiB9CiAKIGltcGwgRGF0YVN0b3JlSW1w bCB7CkBAIC0xNjYsMTEgKzE4MCwxMSBAQCBpbXBsIERhdGFTdG9yZUltcGwgewogICAgICAgICAg ICAgbGFzdF9nY19zdGF0dXM6IE11dGV4OjpuZXcoR2FyYmFnZUNvbGxlY3Rpb25TdGF0dXM6OmRl ZmF1bHQoKSksCiAgICAgICAgICAgICB2ZXJpZnlfbmV3OiBmYWxzZSwKICAgICAgICAgICAgIGNo dW5rX29yZGVyOiBEZWZhdWx0OjpkZWZhdWx0KCksCi0gICAgICAgICAgICBsYXN0X2RpZ2VzdDog Tm9uZSwKICAgICAgICAgICAgIHN5bmNfbGV2ZWw6IERlZmF1bHQ6OmRlZmF1bHQoKSwKICAgICAg ICAgICAgIGJhY2tlbmRfY29uZmlnOiBEZWZhdWx0OjpkZWZhdWx0KCksCiAgICAgICAgICAgICBs cnVfc3RvcmVfY2FjaGluZzogTm9uZSwKICAgICAgICAgICAgIHRocmVhZF9zZXR0aW5nczogRGVm YXVsdDo6ZGVmYXVsdCgpLAorICAgICAgICAgICAgY29uZmlnX2dlbmVyYXRpb246IE5vbmUsCiAg ICAgICAgIH0pCiAgICAgfQogfQpAQCAtMjg2LDYgKzMwMCw1NSBAQCBpbXBsIERhdGFzdG9yZVRo cmVhZFNldHRpbmdzIHsKICAgICB9CiB9CiAKKy8vLyBSZXR1cm5zIHRoZSBwYXJzZWQgZGF0YXN0 b3JlIGNvbmZpZyAoYGRhdGFzdG9yZS5jZmdgKSBhbmQgaXRzCisvLy8gZ2VuZXJhdGlvbi4KKy8v LworLy8vIFVzZXMgYENvbmZpZ1ZlcnNpb25DYWNoZWAgdG8gZGV0ZWN0IHN0YWxlIGVudHJpZXM6 CisvLy8gLSBJZiB0aGUgY2FjaGVkIGdlbmVyYXRpb24gbWF0Y2hlcyB0aGUgY3VycmVudCBnZW5l cmF0aW9uLCB0aGUKKy8vLyAgIGNhY2hlZCBjb25maWcgaXMgcmV0dXJuZWQuCisvLy8gLSBPdGhl cndpc2UgdGhlIGNvbmZpZyBpcyByZS1yZWFkIGZyb20gZGlzay4gSWYgYHVwZGF0ZV9jYWNoZWAg aXMKKy8vLyAgIGB0cnVlYCwgdGhlIG5ldyBjb25maWcgYW5kIGN1cnJlbnQgZ2VuZXJhdGlvbiBh cmUgc3RvcmVkIGluIHRoZQorLy8vICAgY2FjaGUuIENhbGxlcnMgdGhhdCBzZXQgYHVwZGF0ZV9j YWNoZSA9IHRydWVgIG11c3QgaG9sZCB0aGUKKy8vLyAgIGRhdGFzdG9yZSBjb25maWcgbG9jayB0 byBhdm9pZCByYWNpbmcgd2l0aCBjb25jdXJyZW50IGNvbmZpZworLy8vICAgY2hhbmdlcy4KKy8v LyAtIElmIGB1cGRhdGVfY2FjaGVgIGlzIGBmYWxzZWAsIHRoZSBmcmVzaGx5IHJlYWQgY29uZmln IGlzIHJldHVybmVkCisvLy8gICBidXQgdGhlIGNhY2hlIGlzIGxlZnQgdW5jaGFuZ2VkLgorLy8v CisvLy8gSWYgYENvbmZpZ1ZlcnNpb25DYWNoZWAgaXMgbm90IGF2YWlsYWJsZSwgdGhlIGNvbmZp ZyBpcyBhbHdheXMgcmVhZAorLy8vIGZyb20gZGlzayBhbmQgYE5vbmVgIGlzIHJldHVybmVkIGFz IHRoZSBnZW5lcmF0aW9uLgorZm4gZGF0YXN0b3JlX3NlY3Rpb25fY29uZmlnX2NhY2hlZCgKKyAg ICB1cGRhdGVfY2FjaGU6IGJvb2wsCispIC0+IFJlc3VsdDwoQXJjPFNlY3Rpb25Db25maWdEYXRh PiwgT3B0aW9uPHVzaXplPiksIEVycm9yPiB7CisgICAgbGV0IG11dCBjb25maWdfY2FjaGUgPSBE QVRBU1RPUkVfQ09ORklHX0NBQ0hFLmxvY2soKS51bndyYXAoKTsKKworICAgIGlmIGxldCBPayh2 ZXJzaW9uX2NhY2hlKSA9IENvbmZpZ1ZlcnNpb25DYWNoZTo6bmV3KCkgeworICAgICAgICBsZXQg Y3VycmVudF9nZW4gPSB2ZXJzaW9uX2NhY2hlLmRhdGFzdG9yZV9nZW5lcmF0aW9uKCk7CisgICAg ICAgIGlmIGxldCBTb21lKGNhY2hlZCkgPSBjb25maWdfY2FjaGUuYXNfcmVmKCkgeworICAgICAg ICAgICAgLy8gRmFzdCBwYXRoOiByZS11c2UgY2FjaGVkIGRhdGFzdG9yZS5jZmcKKyAgICAgICAg ICAgIGlmIGNhY2hlZC5sYXN0X2dlbmVyYXRpb24gPT0gY3VycmVudF9nZW4geworICAgICAgICAg ICAgICAgIHJldHVybiBPaygoY2FjaGVkLmNvbmZpZy5jbG9uZSgpLCBTb21lKGNhY2hlZC5sYXN0 X2dlbmVyYXRpb24pKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gU2xv dyBwYXRoOiByZS1yZWFkIGRhdGFzdG9yZS5jZmcKKyAgICAgICAgbGV0IChjb25maWdfcmF3LCBf ZGlnZXN0KSA9IHBic19jb25maWc6OmRhdGFzdG9yZTo6Y29uZmlnKCk/OworICAgICAgICBsZXQg Y29uZmlnID0gQXJjOjpuZXcoY29uZmlnX3Jhdyk7CisKKyAgICAgICAgaWYgdXBkYXRlX2NhY2hl IHsKKyAgICAgICAgICAgICpjb25maWdfY2FjaGUgPSBTb21lKERhdGFzdG9yZUNvbmZpZ0NhY2hl IHsKKyAgICAgICAgICAgICAgICBjb25maWc6IGNvbmZpZy5jbG9uZSgpLAorICAgICAgICAgICAg ICAgIGxhc3RfZ2VuZXJhdGlvbjogY3VycmVudF9nZW4sCisgICAgICAgICAgICB9KTsKKyAgICAg ICAgfQorCisgICAgICAgIE9rKChjb25maWcsIFNvbWUoY3VycmVudF9nZW4pKSkKKyAgICB9IGVs c2UgeworICAgICAgICAvLyBGYWxsYmFjayBwYXRoLCBubyBjb25maWcgdmVyc2lvbiBjYWNoZTog cmVhZCBkYXRhc3RvcmUuY2ZnIGFuZCByZXR1cm4gTm9uZSBhcyBnZW5lcmF0aW9uCisgICAgICAg ICpjb25maWdfY2FjaGUgPSBOb25lOworICAgICAgICBsZXQgKGNvbmZpZ19yYXcsIF9kaWdlc3Qp ID0gcGJzX2NvbmZpZzo6ZGF0YXN0b3JlOjpjb25maWcoKT87CisgICAgICAgIE9rKChBcmM6Om5l dyhjb25maWdfcmF3KSwgTm9uZSkpCisgICAgfQorfQorCiBpbXBsIERhdGFTdG9yZSB7CiAgICAg Ly8gVGhpcyBvbmUganVzdCBwYW5pY3Mgb24gZXZlcnl0aGluZwogICAgICNbZG9jKGhpZGRlbild CkBAIC0zNjcsMTAgKzQzMCw5IEBAIGltcGwgRGF0YVN0b3JlIHsKICAgICAgICAgLy8gd2UgdXNl IGl0IHRvIGRlY2lkZSB3aGV0aGVyIGl0IGlzIG9rYXkgdG8gZGVsZXRlIHRoZSBkYXRhc3RvcmUu CiAgICAgICAgIGxldCBfY29uZmlnX2xvY2sgPSBwYnNfY29uZmlnOjpkYXRhc3RvcmU6OmxvY2tf Y29uZmlnKCk/OwogCi0gICAgICAgIC8vIHdlIGNvdWxkIHVzZSB0aGUgQ29uZmlnVmVyc2lvbkNh Y2hlJ3MgZ2VuZXJhdGlvbiBmb3Igc3RhbGVuZXNzIGRldGVjdGlvbiwgYnV0ICB3ZSBsb2FkCi0g ICAgICAgIC8vIHRoZSBjb25maWcgYW55d2F5IC0+IGp1c3QgdXNlIGRpZ2VzdCwgYWRkaXRpb25h bCBiZW5lZml0OiBtYW51YWwgY2hhbmdlcyBnZXQgZGV0ZWN0ZWQKLSAgICAgICAgbGV0IChjb25m aWcsIGRpZ2VzdCkgPSBwYnNfY29uZmlnOjpkYXRhc3RvcmU6OmNvbmZpZygpPzsKLSAgICAgICAg bGV0IGNvbmZpZzogRGF0YVN0b3JlQ29uZmlnID0gY29uZmlnLmxvb2t1cCgiZGF0YXN0b3JlIiwg bmFtZSk/OworICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgZGF0YXN0b3JlLmNmZyBnZW5lcmF0 aW9uIG51bWJlciBhbmQgY2FjaGVkIGNvbmZpZworICAgICAgICBsZXQgKHNlY3Rpb25fY29uZmln LCBnZW5fbnVtKSA9IGRhdGFzdG9yZV9zZWN0aW9uX2NvbmZpZ19jYWNoZWQodHJ1ZSk/OworICAg ICAgICBsZXQgY29uZmlnOiBEYXRhU3RvcmVDb25maWcgPSBzZWN0aW9uX2NvbmZpZy5sb29rdXAo ImRhdGFzdG9yZSIsIG5hbWUpPzsKIAogICAgICAgICBpZiBsZXQgU29tZShtYWludGVuYW5jZV9t b2RlKSA9IGNvbmZpZy5nZXRfbWFpbnRlbmFuY2VfbW9kZSgpIHsKICAgICAgICAgICAgIGlmIGxl dCBFcnIoZXJyb3IpID0gbWFpbnRlbmFuY2VfbW9kZS5jaGVjayhvcGVyYXRpb24pIHsKQEAgLTM3 OCwxOSArNDQwLDE5IEBAIGltcGwgRGF0YVN0b3JlIHsKICAgICAgICAgICAgIH0KICAgICAgICAg fQogCisgICAgICAgIGxldCBtdXQgZGF0YXN0b3JlX2NhY2hlID0gREFUQVNUT1JFX01BUC5sb2Nr KCkudW53cmFwKCk7CisKICAgICAgICAgaWYgZ2V0X2RhdGFzdG9yZV9tb3VudF9zdGF0dXMoJmNv bmZpZykgPT0gU29tZShmYWxzZSkgewotICAgICAgICAgICAgbGV0IG11dCBkYXRhc3RvcmVfY2Fj aGUgPSBEQVRBU1RPUkVfTUFQLmxvY2soKS51bndyYXAoKTsKICAgICAgICAgICAgIGRhdGFzdG9y ZV9jYWNoZS5yZW1vdmUoJmNvbmZpZy5uYW1lKTsKICAgICAgICAgICAgIGJhaWwhKCJkYXRhc3Rv cmUgJ3t9JyBpcyBub3QgbW91bnRlZCIsIGNvbmZpZy5uYW1lKTsKICAgICAgICAgfQogCi0gICAg ICAgIGxldCBtdXQgZGF0YXN0b3JlX2NhY2hlID0gREFUQVNUT1JFX01BUC5sb2NrKCkudW53cmFw KCk7CiAgICAgICAgIGxldCBlbnRyeSA9IGRhdGFzdG9yZV9jYWNoZS5nZXQobmFtZSk7CiAKICAg ICAgICAgLy8gcmV1c2UgY2h1bmsgc3RvcmUgc28gdGhhdCB3ZSBrZWVwIHVzaW5nIHRoZSBzYW1l IHByb2Nlc3MgbG9ja2VyIGluc3RhbmNlIQogICAgICAgICBsZXQgY2h1bmtfc3RvcmUgPSBpZiBs ZXQgU29tZShkYXRhc3RvcmUpID0gJmVudHJ5IHsKLSAgICAgICAgICAgIGxldCBsYXN0X2RpZ2Vz dCA9IGRhdGFzdG9yZS5sYXN0X2RpZ2VzdC5hc19yZWYoKTsKLSAgICAgICAgICAgIGlmIGxldCBT b21lKHRydWUpID0gbGFzdF9kaWdlc3QubWFwKHxsYXN0X2RpZ2VzdHwgbGFzdF9kaWdlc3QgPT0g JmRpZ2VzdCkgeworICAgICAgICAgICAgLy8gUmUtdXNlIERhdGFTdG9yZUltcGwKKyAgICAgICAg ICAgIGlmIGRhdGFzdG9yZS5jb25maWdfZ2VuZXJhdGlvbiA9PSBnZW5fbnVtICYmIGdlbl9udW0u aXNfc29tZSgpIHsKICAgICAgICAgICAgICAgICBpZiBsZXQgU29tZShvcGVyYXRpb24pID0gb3Bl cmF0aW9uIHsKICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX2FjdGl2ZV9vcGVyYXRpb25zKG5h bWUsIG9wZXJhdGlvbiwgMSk/OwogICAgICAgICAgICAgICAgIH0KQEAgLTQxMiw3ICs0NzQsNyBA QCBpbXBsIERhdGFTdG9yZSB7CiAgICAgICAgICAgICApPykKICAgICAgICAgfTsKIAotICAgICAg ICBsZXQgZGF0YXN0b3JlID0gRGF0YVN0b3JlOjp3aXRoX3N0b3JlX2FuZF9jb25maWcoY2h1bmtf c3RvcmUsIGNvbmZpZywgU29tZShkaWdlc3QpKT87CisgICAgICAgIGxldCBkYXRhc3RvcmUgPSBE YXRhU3RvcmU6OndpdGhfc3RvcmVfYW5kX2NvbmZpZyhjaHVua19zdG9yZSwgY29uZmlnLCBnZW5f bnVtKT87CiAKICAgICAgICAgbGV0IGRhdGFzdG9yZSA9IEFyYzo6bmV3KGRhdGFzdG9yZSk7CiAg ICAgICAgIGRhdGFzdG9yZV9jYWNoZS5pbnNlcnQobmFtZS50b19zdHJpbmcoKSwgZGF0YXN0b3Jl LmNsb25lKCkpOwpAQCAtNTE0LDcgKzU3Niw3IEBAIGltcGwgRGF0YVN0b3JlIHsKICAgICBmbiB3 aXRoX3N0b3JlX2FuZF9jb25maWcoCiAgICAgICAgIGNodW5rX3N0b3JlOiBBcmM8Q2h1bmtTdG9y ZT4sCiAgICAgICAgIGNvbmZpZzogRGF0YVN0b3JlQ29uZmlnLAotICAgICAgICBsYXN0X2RpZ2Vz dDogT3B0aW9uPFt1ODsgMzJdPiwKKyAgICAgICAgZ2VuZXJhdGlvbjogT3B0aW9uPHVzaXplPiwK ICAgICApIC0+IFJlc3VsdDxEYXRhU3RvcmVJbXBsLCBFcnJvcj4gewogICAgICAgICBsZXQgbXV0 IGdjX3N0YXR1c19wYXRoID0gY2h1bmtfc3RvcmUuYmFzZV9wYXRoKCk7CiAgICAgICAgIGdjX3N0 YXR1c19wYXRoLnB1c2goIi5nYy1zdGF0dXMiKTsKQEAgLTU3OSwxMSArNjQxLDExIEBAIGltcGwg RGF0YVN0b3JlIHsKICAgICAgICAgICAgIGxhc3RfZ2Nfc3RhdHVzOiBNdXRleDo6bmV3KGdjX3N0 YXR1cyksCiAgICAgICAgICAgICB2ZXJpZnlfbmV3OiBjb25maWcudmVyaWZ5X25ldy51bndyYXBf b3IoZmFsc2UpLAogICAgICAgICAgICAgY2h1bmtfb3JkZXI6IHR1bmluZy5jaHVua19vcmRlci51 bndyYXBfb3JfZGVmYXVsdCgpLAotICAgICAgICAgICAgbGFzdF9kaWdlc3QsCiAgICAgICAgICAg ICBzeW5jX2xldmVsOiB0dW5pbmcuc3luY19sZXZlbC51bndyYXBfb3JfZGVmYXVsdCgpLAogICAg ICAgICAgICAgYmFja2VuZF9jb25maWcsCiAgICAgICAgICAgICBscnVfc3RvcmVfY2FjaGluZywK ICAgICAgICAgICAgIHRocmVhZF9zZXR0aW5ncywKKyAgICAgICAgICAgIGNvbmZpZ19nZW5lcmF0 aW9uOiBnZW5lcmF0aW9uLAogICAgICAgICB9KQogICAgIH0KIAotLSAKMi40Ny4zCgoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWls aW5nIGxpc3QKcGJzLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1v eC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo=