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 1ABBE1FF16B for ; Thu, 31 Oct 2024 13:16:41 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 1239188DF; Thu, 31 Oct 2024 13:16:36 +0100 (CET) From: Christian Ebner To: pbs-devel@lists.proxmox.com Date: Thu, 31 Oct 2024 13:14:51 +0100 Message-Id: <20241031121519.434337-2-c.ebner@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241031121519.434337-1-c.ebner@proxmox.com> References: <20241031121519.434337-1-c.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.030 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: [pbs-devel] [PATCH v6 proxmox-backup 01/29] client: backup writer: refactor backup and upload stats counters 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" SW4gcHJlcGFyYXRpb24gZm9yIHB1c2ggc3VwcG9ydCBpbiBzeW5jIGpvYnMuCgpFeHRlbmQgYW5k IG1vdmUgYEJhY2t1cFN0YXRzYCBpbnRvIGBiYWNrdXBfc3RhdHNgIHN1Ym1vZHVsZSBhbmQgYWRk Cm1ldGhvZCB0byBjcmVhdGUgdGhlbSBmcm9tIGBVcGxvYWRTdGF0c2AuCgpGdXJ0aGVyLCBpbnRy b2R1Y2UgYFVwbG9hZENvdW50ZXJzYCBzdHJ1Y3QgdG8gaG9sZCB0aGUgQXJjIGNsb25lcyBvZgp0 aGUgY2h1bmsgdXBsb2FkIHN0YXRpc3RpY3MgY291bnRlcnMsIHNpbXBsaWZ5aW5nIHRoZSBob3Vz ZSBrZWVwaW5nLgoKQnkgYnVuZGxpbmcgdGhlIGNvdW50ZXJzIGludG8gdGhlIHN0cnVjdCwgdGhl eSBjYW4gYmUgcGFzc2VkIGFzCnNpbmdsZSBmdW5jdGlvbiBwYXJhbWV0ZXIgd2hlbiBmYWN0b3Jp bmcgb3V0IHRoZSBjb21tb24gc3RyZWFtIGZ1dHVyZQppbiB0aGUgc3Vic2VxdWVudCBpbXBsZW1l bnRhdGlvbiBvZiB0aGUgY2h1bmsgdXBsb2FkIGZvciBzeW5jIGpvYnMKaW4gcHVzaCBkaXJlY3Rp b24uCgpDby1kZXZlbG9wZWQtYnk6IEZhYmlhbiBHcsO8bmJpY2hsZXIgPGYuZ3J1ZW5iaWNobGVy QHByb3htb3guY29tPgpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gRWJuZXIgPGMuZWJuZXJAcHJv eG1veC5jb20+Ci0tLQpDaGFuZ2VzIHNpbmNlIHZlcnNpb24gNToKLSByZWZhY3RvciBhbmQgY29t YmluZSBjb3VudGVyIGhlbHBlcnMgYmFzZWQgb24gY2h1bmsgdmFyaWFudAoKIHBicy1jbGllbnQv c3JjL2JhY2t1cF9zdGF0cy5ycyAgICAgICAgIHwgMTE5ICsrKysrKysrKysrKysrKysrKysrCiBw YnMtY2xpZW50L3NyYy9iYWNrdXBfd3JpdGVyLnJzICAgICAgICB8IDE0NSArKysrKysrKystLS0t LS0tLS0tLS0tLS0tCiBwYnMtY2xpZW50L3NyYy9pbmplY3RfcmV1c2VkX2NodW5rcy5ycyB8ICAx NCArLS0KIHBicy1jbGllbnQvc3JjL2xpYi5ycyAgICAgICAgICAgICAgICAgIHwgICAzICsKIDQg ZmlsZXMgY2hhbmdlZCwgMTgwIGluc2VydGlvbnMoKyksIDEwMSBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBwYnMtY2xpZW50L3NyYy9iYWNrdXBfc3RhdHMucnMKCmRpZmYgLS1naXQg YS9wYnMtY2xpZW50L3NyYy9iYWNrdXBfc3RhdHMucnMgYi9wYnMtY2xpZW50L3NyYy9iYWNrdXBf c3RhdHMucnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5mMDU2M2EwMDEK LS0tIC9kZXYvbnVsbAorKysgYi9wYnMtY2xpZW50L3NyYy9iYWNrdXBfc3RhdHMucnMKQEAgLTAs MCArMSwxMTkgQEAKKy8vISBJbXBsZW1lbnRzIGNvdW50ZXJzIHRvIGdlbmVyYXRlIHN0YXRpc3Rp Y3MgZm9yIGxvZyBvdXRwdXRzIGR1cmluZyB1cGxvYWRzIHdpdGggYmFja3VwIHdyaXRlcgorCit1 c2Ugc3RkOjpzeW5jOjphdG9taWM6OntBdG9taWNVNjQsIEF0b21pY1VzaXplLCBPcmRlcmluZ307 Cit1c2Ugc3RkOjpzeW5jOjpBcmM7Cit1c2Ugc3RkOjp0aW1lOjpEdXJhdGlvbjsKKwordXNlIGNy YXRlOjpweGFyOjpjcmVhdGU6OlJldXNhYmxlRHluYW1pY0VudHJ5OworCisvLy8gQmFzaWMgYmFj a3VwIHJ1biBzdGF0aXN0aWNzIGFuZCBhcmNoaXZlIGNoZWNrc3VtCitwdWIgc3RydWN0IEJhY2t1 cFN0YXRzIHsKKyAgICBwdWIgc2l6ZTogdTY0LAorICAgIHB1YiBjc3VtOiBbdTg7IDMyXSwKKyAg ICBwdWIgZHVyYXRpb246IER1cmF0aW9uLAorICAgIHB1YiBjaHVua19jb3VudDogdTY0LAorfQor CisvLy8gRXh0ZW5kZWQgYmFja3VwIHJ1biBzdGF0aXN0aWNzIGFuZCBhcmNoaXZlIGNoZWNrc3Vt CitwdWIoY3JhdGUpIHN0cnVjdCBVcGxvYWRTdGF0cyB7CisgICAgcHViKGNyYXRlKSBjaHVua19j b3VudDogdXNpemUsCisgICAgcHViKGNyYXRlKSBjaHVua19yZXVzZWQ6IHVzaXplLAorICAgIHB1 YihjcmF0ZSkgY2h1bmtfaW5qZWN0ZWQ6IHVzaXplLAorICAgIHB1YihjcmF0ZSkgc2l6ZTogdXNp emUsCisgICAgcHViKGNyYXRlKSBzaXplX3JldXNlZDogdXNpemUsCisgICAgcHViKGNyYXRlKSBz aXplX2luamVjdGVkOiB1c2l6ZSwKKyAgICBwdWIoY3JhdGUpIHNpemVfY29tcHJlc3NlZDogdXNp emUsCisgICAgcHViKGNyYXRlKSBkdXJhdGlvbjogRHVyYXRpb24sCisgICAgcHViKGNyYXRlKSBj c3VtOiBbdTg7IDMyXSwKK30KKworaW1wbCBVcGxvYWRTdGF0cyB7CisgICAgLy8vIENvbnZlcnQg dGhlIHVwbG9hZCBzdGF0cyB0byB0aGUgbW9yZSBjb25jaXNlIFtgQmFja3VwU3RhdHNgXQorICAg ICNbaW5saW5lKGFsd2F5cyldCisgICAgcHViKGNyYXRlKSBmbiB0b19iYWNrdXBfc3RhdHMoJnNl bGYpIC0+IEJhY2t1cFN0YXRzIHsKKyAgICAgICAgQmFja3VwU3RhdHMgeworICAgICAgICAgICAg Y2h1bmtfY291bnQ6IHNlbGYuY2h1bmtfY291bnQgYXMgdTY0LAorICAgICAgICAgICAgc2l6ZTog c2VsZi5zaXplIGFzIHU2NCwKKyAgICAgICAgICAgIGR1cmF0aW9uOiBzZWxmLmR1cmF0aW9uLAor ICAgICAgICAgICAgY3N1bTogc2VsZi5jc3VtLAorICAgICAgICB9CisgICAgfQorfQorCisvLy8g QXRvbWljIGNvdW50ZXJzIGZvciBhY2NvdW50aW5nIHVwbG9hZCBzdHJlYW0gcHJvZ3Jlc3MgaW5m b3JtYXRpb24KKyNbZGVyaXZlKENsb25lKV0KK3B1YihjcmF0ZSkgc3RydWN0IFVwbG9hZENvdW50 ZXJzIHsKKyAgICBpbmplY3RlZF9jaHVua19jb3VudDogQXJjPEF0b21pY1VzaXplPiwKKyAgICBr bm93bl9jaHVua19jb3VudDogQXJjPEF0b21pY1VzaXplPiwKKyAgICB0b3RhbF9jaHVua19jb3Vu dDogQXJjPEF0b21pY1VzaXplPiwKKyAgICBjb21wcmVzc2VkX3N0cmVhbV9sZW46IEFyYzxBdG9t aWNVNjQ+LAorICAgIGluamVjdGVkX3N0cmVhbV9sZW46IEFyYzxBdG9taWNVc2l6ZT4sCisgICAg cmV1c2VkX3N0cmVhbV9sZW46IEFyYzxBdG9taWNVc2l6ZT4sCisgICAgdG90YWxfc3RyZWFtX2xl bjogQXJjPEF0b21pY1VzaXplPiwKK30KKworaW1wbCBVcGxvYWRDb3VudGVycyB7CisgICAgLy8v IENyZWF0ZSBhbmQgemVybyBpbml0IG5ldyB1cGxvYWQgY291bnRlcnMKKyAgICBwdWIoY3JhdGUp IGZuIG5ldygpIC0+IFNlbGYgeworICAgICAgICBTZWxmIHsKKyAgICAgICAgICAgIHRvdGFsX2No dW5rX2NvdW50OiBBcmM6Om5ldyhBdG9taWNVc2l6ZTo6bmV3KDApKSwKKyAgICAgICAgICAgIGlu amVjdGVkX2NodW5rX2NvdW50OiBBcmM6Om5ldyhBdG9taWNVc2l6ZTo6bmV3KDApKSwKKyAgICAg ICAgICAgIGtub3duX2NodW5rX2NvdW50OiBBcmM6Om5ldyhBdG9taWNVc2l6ZTo6bmV3KDApKSwK KyAgICAgICAgICAgIGNvbXByZXNzZWRfc3RyZWFtX2xlbjogQXJjOjpuZXcoQXRvbWljVTY0Ojpu ZXcoMCkpLAorICAgICAgICAgICAgaW5qZWN0ZWRfc3RyZWFtX2xlbjogQXJjOjpuZXcoQXRvbWlj VXNpemU6Om5ldygwKSksCisgICAgICAgICAgICByZXVzZWRfc3RyZWFtX2xlbjogQXJjOjpuZXco QXRvbWljVXNpemU6Om5ldygwKSksCisgICAgICAgICAgICB0b3RhbF9zdHJlYW1fbGVuOiBBcmM6 Om5ldyhBdG9taWNVc2l6ZTo6bmV3KDApKSwKKyAgICAgICAgfQorICAgIH0KKworICAgICNbaW5s aW5lKGFsd2F5cyldCisgICAgcHViKGNyYXRlKSBmbiBhZGRfa25vd25fY2h1bmsoJm11dCBzZWxm LCBjaHVua19sZW46IHVzaXplKSAtPiB1c2l6ZSB7CisgICAgICAgIHNlbGYua25vd25fY2h1bmtf Y291bnQuZmV0Y2hfYWRkKDEsIE9yZGVyaW5nOjpTZXFDc3QpOworICAgICAgICBzZWxmLnRvdGFs X2NodW5rX2NvdW50LmZldGNoX2FkZCgxLCBPcmRlcmluZzo6U2VxQ3N0KTsKKyAgICAgICAgc2Vs Zi5yZXVzZWRfc3RyZWFtX2xlbgorICAgICAgICAgICAgLmZldGNoX2FkZChjaHVua19sZW4sIE9y ZGVyaW5nOjpTZXFDc3QpOworICAgICAgICBzZWxmLnRvdGFsX3N0cmVhbV9sZW4uZmV0Y2hfYWRk KGNodW5rX2xlbiwgT3JkZXJpbmc6OlNlcUNzdCkKKyAgICB9CisKKyAgICAjW2lubGluZShhbHdh eXMpXQorICAgIHB1YihjcmF0ZSkgZm4gYWRkX25ld19jaHVuaygmbXV0IHNlbGYsIGNodW5rX2xl bjogdXNpemUsIGNodW5rX3Jhd19zaXplOiB1NjQpIC0+IHVzaXplIHsKKyAgICAgICAgc2VsZi50 b3RhbF9jaHVua19jb3VudC5mZXRjaF9hZGQoMSwgT3JkZXJpbmc6OlNlcUNzdCk7CisgICAgICAg IHNlbGYuY29tcHJlc3NlZF9zdHJlYW1fbGVuCisgICAgICAgICAgICAuZmV0Y2hfYWRkKGNodW5r X3Jhd19zaXplLCBPcmRlcmluZzo6U2VxQ3N0KTsKKyAgICAgICAgc2VsZi50b3RhbF9zdHJlYW1f bGVuLmZldGNoX2FkZChjaHVua19sZW4sIE9yZGVyaW5nOjpTZXFDc3QpCisgICAgfQorCisgICAg I1tpbmxpbmUoYWx3YXlzKV0KKyAgICBwdWIoY3JhdGUpIGZuIGFkZF9pbmplY3RlZF9jaHVuaygm bXV0IHNlbGYsIGNodW5rOiAmUmV1c2FibGVEeW5hbWljRW50cnkpIC0+IHVzaXplIHsKKyAgICAg ICAgc2VsZi50b3RhbF9jaHVua19jb3VudC5mZXRjaF9hZGQoMSwgT3JkZXJpbmc6OlNlcUNzdCk7 CisgICAgICAgIHNlbGYuaW5qZWN0ZWRfY2h1bmtfY291bnQuZmV0Y2hfYWRkKDEsIE9yZGVyaW5n OjpTZXFDc3QpOworCisgICAgICAgIHNlbGYucmV1c2VkX3N0cmVhbV9sZW4KKyAgICAgICAgICAg IC5mZXRjaF9hZGQoY2h1bmsuc2l6ZSgpIGFzIHVzaXplLCBPcmRlcmluZzo6U2VxQ3N0KTsKKyAg ICAgICAgc2VsZi5pbmplY3RlZF9zdHJlYW1fbGVuCisgICAgICAgICAgICAuZmV0Y2hfYWRkKGNo dW5rLnNpemUoKSBhcyB1c2l6ZSwgT3JkZXJpbmc6OlNlcUNzdCk7CisgICAgICAgIHNlbGYudG90 YWxfc3RyZWFtX2xlbgorICAgICAgICAgICAgLmZldGNoX2FkZChjaHVuay5zaXplKCkgYXMgdXNp emUsIE9yZGVyaW5nOjpTZXFDc3QpCisgICAgfQorCisgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAg ICBwdWIoY3JhdGUpIGZuIHRvdGFsX3N0cmVhbV9sZW4oJnNlbGYpIC0+IHVzaXplIHsKKyAgICAg ICAgc2VsZi50b3RhbF9zdHJlYW1fbGVuLmxvYWQoT3JkZXJpbmc6OlNlcUNzdCkKKyAgICB9CisK KyAgICAvLy8gQ29udmVydCB0aGUgY291bnRlcnMgdG8gW2BVcGxvYWRTdGF0c2BdLCBpbmNsdWRp bmcgZ2l2ZW4gYXJjaGl2ZSBjaGVja3N1bSBhbmQgcnVudGltZS4KKyAgICAjW2lubGluZShhbHdh eXMpXQorICAgIHB1YihjcmF0ZSkgZm4gdG9fdXBsb2FkX3N0YXRzKCZzZWxmLCBjc3VtOiBbdTg7 IDMyXSwgZHVyYXRpb246IER1cmF0aW9uKSAtPiBVcGxvYWRTdGF0cyB7CisgICAgICAgIFVwbG9h ZFN0YXRzIHsKKyAgICAgICAgICAgIGNodW5rX2NvdW50OiBzZWxmLnRvdGFsX2NodW5rX2NvdW50 LmxvYWQoT3JkZXJpbmc6OlNlcUNzdCksCisgICAgICAgICAgICBjaHVua19yZXVzZWQ6IHNlbGYu a25vd25fY2h1bmtfY291bnQubG9hZChPcmRlcmluZzo6U2VxQ3N0KSwKKyAgICAgICAgICAgIGNo dW5rX2luamVjdGVkOiBzZWxmLmluamVjdGVkX2NodW5rX2NvdW50LmxvYWQoT3JkZXJpbmc6OlNl cUNzdCksCisgICAgICAgICAgICBzaXplOiBzZWxmLnRvdGFsX3N0cmVhbV9sZW4ubG9hZChPcmRl cmluZzo6U2VxQ3N0KSwKKyAgICAgICAgICAgIHNpemVfcmV1c2VkOiBzZWxmLnJldXNlZF9zdHJl YW1fbGVuLmxvYWQoT3JkZXJpbmc6OlNlcUNzdCksCisgICAgICAgICAgICBzaXplX2luamVjdGVk OiBzZWxmLmluamVjdGVkX3N0cmVhbV9sZW4ubG9hZChPcmRlcmluZzo6U2VxQ3N0KSwKKyAgICAg ICAgICAgIHNpemVfY29tcHJlc3NlZDogc2VsZi5jb21wcmVzc2VkX3N0cmVhbV9sZW4ubG9hZChP cmRlcmluZzo6U2VxQ3N0KSBhcyB1c2l6ZSwKKyAgICAgICAgICAgIGR1cmF0aW9uLAorICAgICAg ICAgICAgY3N1bSwKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3Bicy1jbGllbnQv c3JjL2JhY2t1cF93cml0ZXIucnMgYi9wYnMtY2xpZW50L3NyYy9iYWNrdXBfd3JpdGVyLnJzCmlu ZGV4IDRkMmU4YTgwMS4uOGI5YWZkYjk1IDEwMDY0NAotLS0gYS9wYnMtY2xpZW50L3NyYy9iYWNr dXBfd3JpdGVyLnJzCisrKyBiL3Bicy1jbGllbnQvc3JjL2JhY2t1cF93cml0ZXIucnMKQEAgLTEs NyArMSw4IEBACiB1c2Ugc3RkOjpjb2xsZWN0aW9uczo6SGFzaFNldDsKIHVzZSBzdGQ6OmZ1dHVy ZTo6RnV0dXJlOwotdXNlIHN0ZDo6c3luYzo6YXRvbWljOjp7QXRvbWljVTY0LCBBdG9taWNVc2l6 ZSwgT3JkZXJpbmd9OwordXNlIHN0ZDo6c3luYzo6YXRvbWljOjp7QXRvbWljVXNpemUsIE9yZGVy aW5nfTsKIHVzZSBzdGQ6OnN5bmM6OntBcmMsIE11dGV4fTsKK3VzZSBzdGQ6OnRpbWU6Okluc3Rh bnQ7CiAKIHVzZSBhbnlob3c6OntiYWlsLCBmb3JtYXRfZXJyLCBFcnJvcn07CiB1c2UgZnV0dXJl czo6ZnV0dXJlOjp7c2VsZiwgQWJvcnRIYW5kbGUsIEVpdGhlciwgRnV0dXJlRXh0LCBUcnlGdXR1 cmVFeHR9OwpAQCAtMjMsNiArMjQsNyBAQCB1c2UgcGJzX3Rvb2xzOjpjcnlwdF9jb25maWc6OkNy eXB0Q29uZmlnOwogdXNlIHByb3htb3hfaHVtYW5fYnl0ZTo6SHVtYW5CeXRlOwogdXNlIHByb3ht b3hfdGltZTo6VGltZVNwYW47CiAKK3VzZSBzdXBlcjo6YmFja3VwX3N0YXRzOjp7QmFja3VwU3Rh dHMsIFVwbG9hZENvdW50ZXJzLCBVcGxvYWRTdGF0c307CiB1c2Ugc3VwZXI6OmluamVjdF9yZXVz ZWRfY2h1bmtzOjp7SW5qZWN0Q2h1bmtzLCBJbmplY3RSZXVzZWRDaHVua3MsIEluamVjdGVkQ2h1 bmtzSW5mb307CiB1c2Ugc3VwZXI6Om1lcmdlX2tub3duX2NodW5rczo6e01lcmdlS25vd25DaHVu a3MsIE1lcmdlZENodW5rSW5mb307CiAKQEAgLTQwLDExICs0Miw2IEBAIGltcGwgRHJvcCBmb3Ig QmFja3VwV3JpdGVyIHsKICAgICB9CiB9CiAKLXB1YiBzdHJ1Y3QgQmFja3VwU3RhdHMgewotICAg IHB1YiBzaXplOiB1NjQsCi0gICAgcHViIGNzdW06IFt1ODsgMzJdLAotfQotCiAvLy8gT3B0aW9u cyBmb3IgdXBsb2FkaW5nIGJsb2JzL3N0cmVhbXMgdG8gdGhlIHNlcnZlcgogI1tkZXJpdmUoRGVm YXVsdCwgQ2xvbmUpXQogcHViIHN0cnVjdCBVcGxvYWRPcHRpb25zIHsKQEAgLTU0LDE4ICs1MSw2 IEBAIHB1YiBzdHJ1Y3QgVXBsb2FkT3B0aW9ucyB7CiAgICAgcHViIGZpeGVkX3NpemU6IE9wdGlv bjx1NjQ+LAogfQogCi1zdHJ1Y3QgVXBsb2FkU3RhdHMgewotICAgIGNodW5rX2NvdW50OiB1c2l6 ZSwKLSAgICBjaHVua19yZXVzZWQ6IHVzaXplLAotICAgIGNodW5rX2luamVjdGVkOiB1c2l6ZSwK LSAgICBzaXplOiB1c2l6ZSwKLSAgICBzaXplX3JldXNlZDogdXNpemUsCi0gICAgc2l6ZV9pbmpl Y3RlZDogdXNpemUsCi0gICAgc2l6ZV9jb21wcmVzc2VkOiB1c2l6ZSwKLSAgICBkdXJhdGlvbjog c3RkOjp0aW1lOjpEdXJhdGlvbiwKLSAgICBjc3VtOiBbdTg7IDMyXSwKLX0KLQogc3RydWN0IENo dW5rVXBsb2FkUmVzcG9uc2UgewogICAgIGZ1dHVyZTogaDI6OmNsaWVudDo6UmVzcG9uc2VGdXR1 cmUsCiAgICAgc2l6ZTogdXNpemUsCkBAIC0xOTQsNiArMTc5LDcgQEAgaW1wbCBCYWNrdXBXcml0 ZXIgewogICAgICAgICBtdXQgcmVhZGVyOiBSLAogICAgICAgICBmaWxlX25hbWU6ICZzdHIsCiAg ICAgKSAtPiBSZXN1bHQ8QmFja3VwU3RhdHMsIEVycm9yPiB7CisgICAgICAgIGxldCBzdGFydF90 aW1lID0gSW5zdGFudDo6bm93KCk7CiAgICAgICAgIGxldCBtdXQgcmF3X2RhdGEgPSBWZWM6Om5l dygpOwogICAgICAgICAvLyBmaXhtZTogYXZvaWQgbG9hZGluZyBpbnRvIG1lbW9yeQogICAgICAg ICByZWFkZXIucmVhZF90b19lbmQoJm11dCByYXdfZGF0YSk/OwpAQCAtMjExLDcgKzE5NywxMiBA QCBpbXBsIEJhY2t1cFdyaXRlciB7CiAgICAgICAgICAgICAgICAgcmF3X2RhdGEsCiAgICAgICAg ICAgICApCiAgICAgICAgICAgICAuYXdhaXQ/OwotICAgICAgICBPayhCYWNrdXBTdGF0cyB7IHNp emUsIGNzdW0gfSkKKyAgICAgICAgT2soQmFja3VwU3RhdHMgeworICAgICAgICAgICAgc2l6ZSwK KyAgICAgICAgICAgIGNzdW0sCisgICAgICAgICAgICBkdXJhdGlvbjogc3RhcnRfdGltZS5lbGFw c2VkKCksCisgICAgICAgICAgICBjaHVua19jb3VudDogMCwKKyAgICAgICAgfSkKICAgICB9CiAK ICAgICBwdWIgYXN5bmMgZm4gdXBsb2FkX2Jsb2JfZnJvbV9kYXRhKApAQCAtMjIwLDYgKzIxMSw3 IEBAIGltcGwgQmFja3VwV3JpdGVyIHsKICAgICAgICAgZmlsZV9uYW1lOiAmc3RyLAogICAgICAg ICBvcHRpb25zOiBVcGxvYWRPcHRpb25zLAogICAgICkgLT4gUmVzdWx0PEJhY2t1cFN0YXRzLCBF cnJvcj4geworICAgICAgICBsZXQgc3RhcnRfdGltZSA9IEluc3RhbnQ6Om5vdygpOwogICAgICAg ICBsZXQgYmxvYiA9IG1hdGNoIChvcHRpb25zLmVuY3J5cHQsICZzZWxmLmNyeXB0X2NvbmZpZykg ewogICAgICAgICAgICAgKGZhbHNlLCBfKSA9PiBEYXRhQmxvYjo6ZW5jb2RlKCZkYXRhLCBOb25l LCBvcHRpb25zLmNvbXByZXNzKT8sCiAgICAgICAgICAgICAodHJ1ZSwgTm9uZSkgPT4gYmFpbCEo InJlcXVlc3RlZCBlbmNyeXB0aW9uIHdpdGhvdXQgYSBjcnlwdCBjb25maWciKSwKQEAgLTI0Myw3 ICsyMzUsMTIgQEAgaW1wbCBCYWNrdXBXcml0ZXIgewogICAgICAgICAgICAgICAgIHJhd19kYXRh LAogICAgICAgICAgICAgKQogICAgICAgICAgICAgLmF3YWl0PzsKLSAgICAgICAgT2soQmFja3Vw U3RhdHMgeyBzaXplLCBjc3VtIH0pCisgICAgICAgIE9rKEJhY2t1cFN0YXRzIHsKKyAgICAgICAg ICAgIHNpemUsCisgICAgICAgICAgICBjc3VtLAorICAgICAgICAgICAgZHVyYXRpb246IHN0YXJ0 X3RpbWUuZWxhcHNlZCgpLAorICAgICAgICAgICAgY2h1bmtfY291bnQ6IDAsCisgICAgICAgIH0p CiAgICAgfQogCiAgICAgcHViIGFzeW5jIGZuIHVwbG9hZF9ibG9iX2Zyb21fZmlsZTxQOiBBc1Jl ZjxzdGQ6OnBhdGg6OlBhdGg+PigKQEAgLTQyMSwxMCArNDE4LDcgQEAgaW1wbCBCYWNrdXBXcml0 ZXIgewogICAgICAgICAgICAgImNzdW0iOiBoZXg6OmVuY29kZSh1cGxvYWRfc3RhdHMuY3N1bSks CiAgICAgICAgIH0pOwogICAgICAgICBsZXQgX3ZhbHVlID0gc2VsZi5oMi5wb3N0KCZjbG9zZV9w YXRoLCBTb21lKHBhcmFtKSkuYXdhaXQ/OwotICAgICAgICBPayhCYWNrdXBTdGF0cyB7Ci0gICAg ICAgICAgICBzaXplOiB1cGxvYWRfc3RhdHMuc2l6ZSBhcyB1NjQsCi0gICAgICAgICAgICBjc3Vt OiB1cGxvYWRfc3RhdHMuY3N1bSwKLSAgICAgICAgfSkKKyAgICAgICAgT2sodXBsb2FkX3N0YXRz LnRvX2JhY2t1cF9zdGF0cygpKQogICAgIH0KIAogICAgIGZuIHJlc3BvbnNlX3F1ZXVlKCkgLT4g KApAQCAtNjUzLDIzICs2NDcsOSBAQCBpbXBsIEJhY2t1cFdyaXRlciB7CiAgICAgICAgIGluamVj dGlvbnM6IE9wdGlvbjxzdGQ6OnN5bmM6Om1wc2M6OlJlY2VpdmVyPEluamVjdENodW5rcz4+LAog ICAgICAgICBhcmNoaXZlOiAmc3RyLAogICAgICkgLT4gaW1wbCBGdXR1cmU8T3V0cHV0ID0gUmVz dWx0PFVwbG9hZFN0YXRzLCBFcnJvcj4+IHsKLSAgICAgICAgbGV0IHRvdGFsX2NodW5rcyA9IEFy Yzo6bmV3KEF0b21pY1VzaXplOjpuZXcoMCkpOwotICAgICAgICBsZXQgdG90YWxfY2h1bmtzMiA9 IHRvdGFsX2NodW5rcy5jbG9uZSgpOwotICAgICAgICBsZXQga25vd25fY2h1bmtfY291bnQgPSBB cmM6Om5ldyhBdG9taWNVc2l6ZTo6bmV3KDApKTsKLSAgICAgICAgbGV0IGtub3duX2NodW5rX2Nv dW50MiA9IGtub3duX2NodW5rX2NvdW50LmNsb25lKCk7Ci0gICAgICAgIGxldCBpbmplY3RlZF9j aHVua19jb3VudCA9IEFyYzo6bmV3KEF0b21pY1VzaXplOjpuZXcoMCkpOwotICAgICAgICBsZXQg aW5qZWN0ZWRfY2h1bmtfY291bnQyID0gaW5qZWN0ZWRfY2h1bmtfY291bnQuY2xvbmUoKTsKLQot ICAgICAgICBsZXQgc3RyZWFtX2xlbiA9IEFyYzo6bmV3KEF0b21pY1VzaXplOjpuZXcoMCkpOwot ICAgICAgICBsZXQgc3RyZWFtX2xlbjIgPSBzdHJlYW1fbGVuLmNsb25lKCk7Ci0gICAgICAgIGxl dCBzdHJlYW1fbGVuMyA9IHN0cmVhbV9sZW4uY2xvbmUoKTsKLSAgICAgICAgbGV0IGNvbXByZXNz ZWRfc3RyZWFtX2xlbiA9IEFyYzo6bmV3KEF0b21pY1U2NDo6bmV3KDApKTsKLSAgICAgICAgbGV0 IGNvbXByZXNzZWRfc3RyZWFtX2xlbjIgPSBjb21wcmVzc2VkX3N0cmVhbV9sZW4uY2xvbmUoKTsK LSAgICAgICAgbGV0IHJldXNlZF9sZW4gPSBBcmM6Om5ldyhBdG9taWNVc2l6ZTo6bmV3KDApKTsK LSAgICAgICAgbGV0IHJldXNlZF9sZW4yID0gcmV1c2VkX2xlbi5jbG9uZSgpOwotICAgICAgICBs ZXQgaW5qZWN0ZWRfbGVuID0gQXJjOjpuZXcoQXRvbWljVXNpemU6Om5ldygwKSk7Ci0gICAgICAg IGxldCBpbmplY3RlZF9sZW4yID0gaW5qZWN0ZWRfbGVuLmNsb25lKCk7Ci0gICAgICAgIGxldCB1 cGxvYWRlZF9sZW4gPSBBcmM6Om5ldyhBdG9taWNVc2l6ZTo6bmV3KDApKTsKKyAgICAgICAgbGV0 IG11dCBjb3VudGVycyA9IFVwbG9hZENvdW50ZXJzOjpuZXcoKTsKKyAgICAgICAgbGV0IHVwbG9h ZGVkX2xlbiA9IEFyYzo6bmV3KHN0ZDo6c3luYzo6YXRvbWljOjpBdG9taWNVc2l6ZTo6bmV3KDAp KTsKKyAgICAgICAgbGV0IGNvdW50ZXJzX3JlYWRvbmx5ID0gY291bnRlcnMuY2xvbmUoKTsKIAog ICAgICAgICBsZXQgYXBwZW5kX2NodW5rX3BhdGggPSBmb3JtYXQhKCJ7fV9pbmRleCIsIHByZWZp eCk7CiAgICAgICAgIGxldCB1cGxvYWRfY2h1bmtfcGF0aCA9IGZvcm1hdCEoInt9X2NodW5rIiwg cHJlZml4KTsKQEAgLTY4NywxMSArNjY3LDEyIEBAIGltcGwgQmFja3VwV3JpdGVyIHsKICAgICAg ICAgICAgIHx8IGFyY2hpdmUuZW5kc193aXRoKCIucHhhciIpCiAgICAgICAgICAgICB8fCBhcmNo aXZlLmVuZHNfd2l0aCgiLnBweGFyIikKICAgICAgICAgeworICAgICAgICAgICAgbGV0IGNvdW50 ZXJzID0gY291bnRlcnMuY2xvbmUoKTsKICAgICAgICAgICAgIFNvbWUodG9raW86OnNwYXduKGFz eW5jIG1vdmUgewogICAgICAgICAgICAgICAgIGxvb3AgewogICAgICAgICAgICAgICAgICAgICB0 b2tpbzo6dGltZTo6c2xlZXAodG9raW86OnRpbWU6OkR1cmF0aW9uOjpmcm9tX3NlY3MoNjApKS5h d2FpdDsKIAotICAgICAgICAgICAgICAgICAgICBsZXQgc2l6ZSA9IEh1bWFuQnl0ZTo6ZnJvbShz dHJlYW1fbGVuMy5sb2FkKE9yZGVyaW5nOjpTZXFDc3QpKTsKKyAgICAgICAgICAgICAgICAgICAg bGV0IHNpemUgPSBIdW1hbkJ5dGU6OmZyb20oY291bnRlcnMudG90YWxfc3RyZWFtX2xlbigpKTsK ICAgICAgICAgICAgICAgICAgICAgbGV0IHNpemVfdXBsb2FkZWQgPSBIdW1hbkJ5dGU6OmZyb20o dXBsb2FkZWRfbGVuLmxvYWQoT3JkZXJpbmc6OlNlcUNzdCkpOwogICAgICAgICAgICAgICAgICAg ICBsZXQgZWxhcHNlZCA9IFRpbWVTcGFuOjpmcm9tKHN0YXJ0X3RpbWUuZWxhcHNlZCgpKTsKIApA QCAtNzAzLDIyICs2ODQsMTUgQEAgaW1wbCBCYWNrdXBXcml0ZXIgewogICAgICAgICB9OwogCiAg ICAgICAgIHN0cmVhbQotICAgICAgICAgICAgLmluamVjdF9yZXVzZWRfY2h1bmtzKGluamVjdGlv bnMsIHN0cmVhbV9sZW4uY2xvbmUoKSkKKyAgICAgICAgICAgIC5pbmplY3RfcmV1c2VkX2NodW5r cyhpbmplY3Rpb25zLCBjb3VudGVycy5jbG9uZSgpKQogICAgICAgICAgICAgLmFuZF90aGVuKG1v dmUgfGNodW5rX2luZm98IG1hdGNoIGNodW5rX2luZm8gewogICAgICAgICAgICAgICAgIEluamVj dGVkQ2h1bmtzSW5mbzo6S25vd24oY2h1bmtzKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIC8v IGFjY291bnQgZm9yIGluamVjdGVkIGNodW5rcwotICAgICAgICAgICAgICAgICAgICBsZXQgY291 bnQgPSBjaHVua3MubGVuKCk7Ci0gICAgICAgICAgICAgICAgICAgIHRvdGFsX2NodW5rcy5mZXRj aF9hZGQoY291bnQsIE9yZGVyaW5nOjpTZXFDc3QpOwotICAgICAgICAgICAgICAgICAgICBpbmpl Y3RlZF9jaHVua19jb3VudC5mZXRjaF9hZGQoY291bnQsIE9yZGVyaW5nOjpTZXFDc3QpOwotCiAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQga25vd24gPSBWZWM6Om5ldygpOwogICAgICAgICAg ICAgICAgICAgICBsZXQgbXV0IGd1YXJkID0gaW5kZXhfY3N1bS5sb2NrKCkudW53cmFwKCk7CiAg ICAgICAgICAgICAgICAgICAgIGxldCBjc3VtID0gZ3VhcmQuYXNfbXV0KCkudW53cmFwKCk7CiAg ICAgICAgICAgICAgICAgICAgIGZvciBjaHVuayBpbiBjaHVua3MgewotICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG9mZnNldCA9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFt X2xlbi5mZXRjaF9hZGQoY2h1bmsuc2l6ZSgpIGFzIHVzaXplLCBPcmRlcmluZzo6U2VxQ3N0KSBh cyB1NjQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXVzZWRfbGVuLmZldGNoX2FkZChjaHVu ay5zaXplKCkgYXMgdXNpemUsIE9yZGVyaW5nOjpTZXFDc3QpOwotICAgICAgICAgICAgICAgICAg ICAgICAgaW5qZWN0ZWRfbGVuLmZldGNoX2FkZChjaHVuay5zaXplKCkgYXMgdXNpemUsIE9yZGVy aW5nOjpTZXFDc3QpOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9mZnNldCA9IGNvdW50 ZXJzLmFkZF9pbmplY3RlZF9jaHVuaygmY2h1bmspIGFzIHU2NDsKICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBkaWdlc3QgPSBjaHVuay5kaWdlc3QoKTsKICAgICAgICAgICAgICAgICAgICAg ICAgIGtub3duLnB1c2goKG9mZnNldCwgZGlnZXN0KSk7CiAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgZW5kX29mZnNldCA9IG9mZnNldCArIGNodW5rLnNpemUoKTsKQEAgLTczMSw5ICs3MDUs NiBAQCBpbXBsIEJhY2t1cFdyaXRlciB7CiAgICAgICAgICAgICAgICAgICAgIC8vIGFjY291bnQg Zm9yIG5vdCBpbmplY3RlZCBjaHVua3MgKG5ldyBhbmQga25vd24pCiAgICAgICAgICAgICAgICAg ICAgIGxldCBjaHVua19sZW4gPSBkYXRhLmxlbigpOwogCi0gICAgICAgICAgICAgICAgICAgIHRv dGFsX2NodW5rcy5mZXRjaF9hZGQoMSwgT3JkZXJpbmc6OlNlcUNzdCk7Ci0gICAgICAgICAgICAg ICAgICAgIGxldCBvZmZzZXQgPSBzdHJlYW1fbGVuLmZldGNoX2FkZChjaHVua19sZW4sIE9yZGVy aW5nOjpTZXFDc3QpIGFzIHU2NDsKLQogICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGNodW5r X2J1aWxkZXIgPSBEYXRhQ2h1bmtCdWlsZGVyOjpuZXcoZGF0YS5hc19yZWYoKSkuY29tcHJlc3Mo Y29tcHJlc3MpOwogCiAgICAgICAgICAgICAgICAgICAgIGlmIGxldCBTb21lKHJlZiBjcnlwdF9j b25maWcpID0gY3J5cHRfY29uZmlnIHsKQEAgLTc0MSw3ICs3MTIsMjkgQEAgaW1wbCBCYWNrdXBX cml0ZXIgewogICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCBrbm93bl9jaHVua3MgPSBrbm93bl9jaHVua3MubG9jaygpLnVud3JhcCgpOwotICAgICAg ICAgICAgICAgICAgICBsZXQgZGlnZXN0ID0gY2h1bmtfYnVpbGRlci5kaWdlc3QoKTsKKyAgICAg ICAgICAgICAgICAgICAgbGV0IGRpZ2VzdCA9ICpjaHVua19idWlsZGVyLmRpZ2VzdCgpOworICAg ICAgICAgICAgICAgICAgICBsZXQgKG9mZnNldCwgcmVzKSA9IGlmIGtub3duX2NodW5rcy5jb250 YWlucygmZGlnZXN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb2Zmc2V0ID0gY291 bnRlcnMuYWRkX2tub3duX2NodW5rKGNodW5rX2xlbikgYXMgdTY0OworICAgICAgICAgICAgICAg ICAgICAgICAgKG9mZnNldCwgTWVyZ2VkQ2h1bmtJbmZvOjpLbm93bih2ZWMhWyhvZmZzZXQsIGRp Z2VzdCldKSkKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgIG1hdGNoIGNodW5rX2J1aWxkZXIuYnVpbGQoKSB7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgT2soKGNodW5rLCBkaWdlc3QpKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBvZmZzZXQgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY291bnRlcnMuYWRkX25ld19jaHVuayhjaHVua19sZW4sIGNodW5rLnJhd19zaXplKCkpIGFz IHU2NDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga25vd25fY2h1bmtzLmluc2Vy dChkaWdlc3QpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBNZXJnZWRDaHVua0luZm86Ok5ldyhDaHVua0luZm8geworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRpZ2VzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjaHVua19sZW46IGNodW5rX2xlbiBhcyB1NjQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg RXJyKGVycikgPT4gcmV0dXJuIGZ1dHVyZTo6ZXJyKGVyciksCisgICAgICAgICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH07CiAKICAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCBndWFyZCA9IGluZGV4X2NzdW0ubG9jaygpLnVud3JhcCgpOwogICAgICAgICAgICAgICAg ICAgICBsZXQgY3N1bSA9IGd1YXJkLmFzX211dCgpLnVud3JhcCgpOwpAQCAtNzUxLDI2ICs3NDQs OSBAQCBpbXBsIEJhY2t1cFdyaXRlciB7CiAgICAgICAgICAgICAgICAgICAgIGlmICFpc19maXhl ZF9jaHVua19zaXplIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNzdW0udXBkYXRlKCZjaHVu a19lbmQudG9fbGVfYnl0ZXMoKSk7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg ICAgICAgICAgY3N1bS51cGRhdGUoZGlnZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgY3N1bS51 cGRhdGUoJmRpZ2VzdCk7CiAKLSAgICAgICAgICAgICAgICAgICAgbGV0IGNodW5rX2lzX2tub3du ID0ga25vd25fY2h1bmtzLmNvbnRhaW5zKGRpZ2VzdCk7Ci0gICAgICAgICAgICAgICAgICAgIGlm IGNodW5rX2lzX2tub3duIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGtub3duX2NodW5rX2Nv dW50LmZldGNoX2FkZCgxLCBPcmRlcmluZzo6U2VxQ3N0KTsKLSAgICAgICAgICAgICAgICAgICAg ICAgIHJldXNlZF9sZW4uZmV0Y2hfYWRkKGNodW5rX2xlbiwgT3JkZXJpbmc6OlNlcUNzdCk7Ci0g ICAgICAgICAgICAgICAgICAgICAgICBmdXR1cmU6Om9rKE1lcmdlZENodW5rSW5mbzo6S25vd24o dmVjIVsob2Zmc2V0LCAqZGlnZXN0KV0pKQotICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewot ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXByZXNzZWRfc3RyZWFtX2xlbjIgPSBjb21w cmVzc2VkX3N0cmVhbV9sZW4uY2xvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGtub3du X2NodW5rcy5pbnNlcnQoKmRpZ2VzdCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdXR1cmU6 OnJlYWR5KGNodW5rX2J1aWxkZXIuYnVpbGQoKS5tYXAobW92ZSB8KGNodW5rLCBkaWdlc3QpfCB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9zdHJlYW1fbGVuMi5mZXRj aF9hZGQoY2h1bmsucmF3X3NpemUoKSwgT3JkZXJpbmc6OlNlcUNzdCk7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgTWVyZ2VkQ2h1bmtJbmZvOjpOZXcoQ2h1bmtJbmZvIHsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2h1bmssCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRpZ2VzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2h1bmtfbGVu OiBjaHVua19sZW4gYXMgdTY0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZz ZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgICAgICAgICAg ICAgIH0pKQotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGZ1dHVy ZTo6b2socmVzKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAubWVyZ2Vfa25vd25fY2h1bmtzKCkKQEAgLTgzNywxNSArODEzLDYgQEAgaW1wbCBCYWNrdXBX cml0ZXIgewogICAgICAgICAgICAgfSkKICAgICAgICAgICAgIC50aGVuKG1vdmUgfHJlc3VsdHwg YXN5bmMgbW92ZSB7IHVwbG9hZF9yZXN1bHQuYXdhaXQ/LmFuZChyZXN1bHQpIH0uYm94ZWQoKSkK ICAgICAgICAgICAgIC5hbmRfdGhlbihtb3ZlIHxffCB7Ci0gICAgICAgICAgICAgICAgbGV0IGR1 cmF0aW9uID0gc3RhcnRfdGltZS5lbGFwc2VkKCk7Ci0gICAgICAgICAgICAgICAgbGV0IGNodW5r X2NvdW50ID0gdG90YWxfY2h1bmtzMi5sb2FkKE9yZGVyaW5nOjpTZXFDc3QpOwotICAgICAgICAg ICAgICAgIGxldCBjaHVua19yZXVzZWQgPSBrbm93bl9jaHVua19jb3VudDIubG9hZChPcmRlcmlu Zzo6U2VxQ3N0KTsKLSAgICAgICAgICAgICAgICBsZXQgY2h1bmtfaW5qZWN0ZWQgPSBpbmplY3Rl ZF9jaHVua19jb3VudDIubG9hZChPcmRlcmluZzo6U2VxQ3N0KTsKLSAgICAgICAgICAgICAgICBs ZXQgc2l6ZSA9IHN0cmVhbV9sZW4yLmxvYWQoT3JkZXJpbmc6OlNlcUNzdCk7Ci0gICAgICAgICAg ICAgICAgbGV0IHNpemVfcmV1c2VkID0gcmV1c2VkX2xlbjIubG9hZChPcmRlcmluZzo6U2VxQ3N0 KTsKLSAgICAgICAgICAgICAgICBsZXQgc2l6ZV9pbmplY3RlZCA9IGluamVjdGVkX2xlbjIubG9h ZChPcmRlcmluZzo6U2VxQ3N0KTsKLSAgICAgICAgICAgICAgICBsZXQgc2l6ZV9jb21wcmVzc2Vk ID0gY29tcHJlc3NlZF9zdHJlYW1fbGVuMi5sb2FkKE9yZGVyaW5nOjpTZXFDc3QpIGFzIHVzaXpl OwotCiAgICAgICAgICAgICAgICAgbGV0IG11dCBndWFyZCA9IGluZGV4X2NzdW1fMi5sb2NrKCku dW53cmFwKCk7CiAgICAgICAgICAgICAgICAgbGV0IGNzdW0gPSBndWFyZC50YWtlKCkudW53cmFw KCkuZmluaXNoKCk7CiAKQEAgLTg1MywxNyArODIwLDcgQEAgaW1wbCBCYWNrdXBXcml0ZXIgewog ICAgICAgICAgICAgICAgICAgICBoYW5kbGUuYWJvcnQoKTsKICAgICAgICAgICAgICAgICB9CiAK LSAgICAgICAgICAgICAgICBmdXR1cmVzOjpmdXR1cmU6Om9rKFVwbG9hZFN0YXRzIHsKLSAgICAg ICAgICAgICAgICAgICAgY2h1bmtfY291bnQsCi0gICAgICAgICAgICAgICAgICAgIGNodW5rX3Jl dXNlZCwKLSAgICAgICAgICAgICAgICAgICAgY2h1bmtfaW5qZWN0ZWQsCi0gICAgICAgICAgICAg ICAgICAgIHNpemUsCi0gICAgICAgICAgICAgICAgICAgIHNpemVfcmV1c2VkLAotICAgICAgICAg ICAgICAgICAgICBzaXplX2luamVjdGVkLAotICAgICAgICAgICAgICAgICAgICBzaXplX2NvbXBy ZXNzZWQsCi0gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uLAotICAgICAgICAgICAgICAgICAg ICBjc3VtLAotICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgZnV0dXJlczo6ZnV0 dXJlOjpvayhjb3VudGVyc19yZWFkb25seS50b191cGxvYWRfc3RhdHMoY3N1bSwgc3RhcnRfdGlt ZS5lbGFwc2VkKCkpKQogICAgICAgICAgICAgfSkKICAgICB9CiAKZGlmZiAtLWdpdCBhL3Bicy1j bGllbnQvc3JjL2luamVjdF9yZXVzZWRfY2h1bmtzLnJzIGIvcGJzLWNsaWVudC9zcmMvaW5qZWN0 X3JldXNlZF9jaHVua3MucnMKaW5kZXggNGIyOTIyMDEyLi42ZGEyYmNkMTYgMTAwNjQ0Ci0tLSBh L3Bicy1jbGllbnQvc3JjL2luamVjdF9yZXVzZWRfY2h1bmtzLnJzCisrKyBiL3Bicy1jbGllbnQv c3JjL2luamVjdF9yZXVzZWRfY2h1bmtzLnJzCkBAIC0xLDEzICsxLDEzIEBACiB1c2Ugc3RkOjpj bXA7CiB1c2Ugc3RkOjpwaW46OlBpbjsKLXVzZSBzdGQ6OnN5bmM6OmF0b21pYzo6e0F0b21pY1Vz aXplLCBPcmRlcmluZ307Ci11c2Ugc3RkOjpzeW5jOjp7bXBzYywgQXJjfTsKK3VzZSBzdGQ6OnN5 bmM6Om1wc2M7CiB1c2Ugc3RkOjp0YXNrOjp7Q29udGV4dCwgUG9sbH07CiAKIHVzZSBhbnlob3c6 Onthbnlob3csIEVycm9yfTsKIHVzZSBmdXR1cmVzOjp7cmVhZHksIFN0cmVhbX07CiB1c2UgcGlu X3Byb2plY3RfbGl0ZTo6cGluX3Byb2plY3Q7CiAKK3VzZSBjcmF0ZTo6YmFja3VwX3N0YXRzOjpV cGxvYWRDb3VudGVyczsKIHVzZSBjcmF0ZTo6cHhhcjo6Y3JlYXRlOjpSZXVzYWJsZUR5bmFtaWNF bnRyeTsKIAogcGluX3Byb2plY3QhIHsKQEAgLTE2LDcgKzE2LDcgQEAgcGluX3Byb2plY3QhIHsK ICAgICAgICAgaW5wdXQ6IFMsCiAgICAgICAgIG5leHRfaW5qZWN0aW9uOiBPcHRpb248SW5qZWN0 Q2h1bmtzPiwKICAgICAgICAgaW5qZWN0aW9uczogT3B0aW9uPG1wc2M6OlJlY2VpdmVyPEluamVj dENodW5rcz4+LAotICAgICAgICBzdHJlYW1fbGVuOiBBcmM8QXRvbWljVXNpemU+LAorICAgICAg ICBjb3VudGVyczogVXBsb2FkQ291bnRlcnMsCiAgICAgfQogfQogCkBAIC00Miw3ICs0Miw3IEBA IHB1YiB0cmFpdCBJbmplY3RSZXVzZWRDaHVua3M6IFNpemVkIHsKICAgICBmbiBpbmplY3RfcmV1 c2VkX2NodW5rcygKICAgICAgICAgc2VsZiwKICAgICAgICAgaW5qZWN0aW9uczogT3B0aW9uPG1w c2M6OlJlY2VpdmVyPEluamVjdENodW5rcz4+LAotICAgICAgICBzdHJlYW1fbGVuOiBBcmM8QXRv bWljVXNpemU+LAorICAgICAgICBjb3VudGVyczogVXBsb2FkQ291bnRlcnMsCiAgICAgKSAtPiBJ bmplY3RSZXVzZWRDaHVua3NRdWV1ZTxTZWxmPjsKIH0KIApAQCAtNTMsMTMgKzUzLDEzIEBAIHdo ZXJlCiAgICAgZm4gaW5qZWN0X3JldXNlZF9jaHVua3MoCiAgICAgICAgIHNlbGYsCiAgICAgICAg IGluamVjdGlvbnM6IE9wdGlvbjxtcHNjOjpSZWNlaXZlcjxJbmplY3RDaHVua3M+PiwKLSAgICAg ICAgc3RyZWFtX2xlbjogQXJjPEF0b21pY1VzaXplPiwKKyAgICAgICAgY291bnRlcnM6IFVwbG9h ZENvdW50ZXJzLAogICAgICkgLT4gSW5qZWN0UmV1c2VkQ2h1bmtzUXVldWU8U2VsZj4gewogICAg ICAgICBJbmplY3RSZXVzZWRDaHVua3NRdWV1ZSB7CiAgICAgICAgICAgICBpbnB1dDogc2VsZiwK ICAgICAgICAgICAgIG5leHRfaW5qZWN0aW9uOiBOb25lLAogICAgICAgICAgICAgaW5qZWN0aW9u cywKLSAgICAgICAgICAgIHN0cmVhbV9sZW4sCisgICAgICAgICAgICBjb3VudGVycywKICAgICAg ICAgfQogICAgIH0KIH0KQEAgLTg1LDcgKzg1LDcgQEAgd2hlcmUKIAogICAgICAgICAgICAgaWYg bGV0IFNvbWUoaW5qZWN0KSA9IHRoaXMubmV4dF9pbmplY3Rpb24udGFrZSgpIHsKICAgICAgICAg ICAgICAgICAvLyBnb3QgcmV1c2FibGUgZHluYW1pYyBlbnRyaWVzIHRvIGluamVjdAotICAgICAg ICAgICAgICAgIGxldCBvZmZzZXQgPSB0aGlzLnN0cmVhbV9sZW4ubG9hZChPcmRlcmluZzo6U2Vx Q3N0KSBhcyB1NjQ7CisgICAgICAgICAgICAgICAgbGV0IG9mZnNldCA9IHRoaXMuY291bnRlcnMu dG90YWxfc3RyZWFtX2xlbigpIGFzIHU2NDsKIAogICAgICAgICAgICAgICAgIG1hdGNoIGluamVj dC5ib3VuZGFyeS5jbXAoJm9mZnNldCkgewogICAgICAgICAgICAgICAgICAgICAvLyBpbmplY3Qg bm93CmRpZmYgLS1naXQgYS9wYnMtY2xpZW50L3NyYy9saWIucnMgYi9wYnMtY2xpZW50L3NyYy9s aWIucnMKaW5kZXggM2QyZGEyN2I5Li5iODc1MzQ3YmIgMTAwNjQ0Ci0tLSBhL3Bicy1jbGllbnQv c3JjL2xpYi5ycworKysgYi9wYnMtY2xpZW50L3NyYy9saWIucnMKQEAgLTQxLDQgKzQxLDcgQEAg cHViIHVzZSBiYWNrdXBfc3BlY2lmaWNhdGlvbjo6KjsKIG1vZCBjaHVua19zdHJlYW07CiBwdWIg dXNlIGNodW5rX3N0cmVhbTo6e0NodW5rU3RyZWFtLCBGaXhlZENodW5rU3RyZWFtLCBJbmplY3Rp b25EYXRhfTsKIAorbW9kIGJhY2t1cF9zdGF0czsKK3B1YiB1c2UgYmFja3VwX3N0YXRzOjpCYWNr dXBTdGF0czsKKwogcHViIGNvbnN0IFBST1hNT1hfQkFDS1VQX1RDUF9LRUVQQUxJVkVfVElNRTog dTMyID0gMTIwOwotLSAKMi4zOS41CgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRldmVsQGxpc3RzLnBy b3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3Rp bmZvL3Bicy1kZXZlbAo=