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 2A4E41FF16B for ; Thu, 9 Jan 2025 14:55:53 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 6FE57F9BA; Thu, 9 Jan 2025 14:55:38 +0100 (CET) Date: Thu, 9 Jan 2025 14:55:32 +0100 (CET) From: =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= To: Proxmox VE development discussion Message-ID: <1155144118.1000.1736430932629@webmail.proxmox.com> In-Reply-To: References: <20241216091229.3142660-1-alexandre.derumier@groupe-cyllene.com> MIME-Version: 1.0 X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer v7.10.6-Rev72 X-Originating-Client: open-xchange-appsuite X-SPAM-LEVEL: Spam detection results: 0 AWL 0.045 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 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 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [gnu.org, lvmplugin.pm] Subject: Re: [pve-devel] [PATCH v3 pve-storage 2/3] lvmplugin: add qcow2 snapshot 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" b25lIGRvd25zaWRlIHdpdGggdGhpcyBwYXJ0IGluIHBhcnRpY3VsYXIgLSB3ZSBoYXZlIHRvIGFs d2F5cyBhbGxvY2F0ZSBmdWxsLXNpemUgTFZzICgrcWNvdzIgb3ZlcmhlYWQpLCBldmVuIGlmIG1v c3Qgb2YgdGhlbSB3aWxsIGVuZCB1cCBzdG9yaW5nIGp1c3QgYSBzaW5nbGUgc25hcHNob3QgZGVs dGEgd2hpY2ggbWlnaHQgYmUgYSB0aW55IHBhcnQgb2YgdGhhdCBmdWxsLXNpemUuLiBob3BlZnVs bHkgaWYgZGlzY2FyZCBpcyB3b3JraW5nIGFjcm9zcyB0aGUgd2hvbGUgc3RhY2sgdGhpcyBkb2Vz bid0IGFjdHVhbGx5IGV4cGxvZGUgc3BhY2UgdXNhZ2Ugb24gdGhlIHN0b3JhZ2Ugc2lkZSwgYnV0 IGl0IG1ha2VzIGV2ZXJ5dGhpbmcgYSBiaXQgaGFyZCB0byB0cmFjay4uIE9UT0gsIHdoaWxlIHdl IGNvdWxkIGluIHRoZW9yeSBleHRlbmQvcmVkdWNlIHRoZSBMVnMgYW5kIHFjb3cyIGltYWdlcyBv biB0aGVtIHdoZW4gbW9kaWZ5aW5nIHRoZSBiYWNraW5nIGNoYWluLCB0aGUgYWRkaXRpb25hbCBj b21wbGV4aXR5IGlzIHByb2JhYmx5IG5vdCB3b3J0aCBpdCBhdCB0aGUgbW9tZW50Li4KCj4gQWxl eGFuZHJlIERlcnVtaWVyIHZpYSBwdmUtZGV2ZWwgPHB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNv bT4gaGF0IGFtIDE2LjEyLjIwMjQgMTA6MTIgQ0VUIGdlc2NocmllYmVuOgo+IFNpZ25lZC1vZmYt Ynk6IEFsZXhhbmRyZSBEZXJ1bWllciA8YWxleGFuZHJlLmRlcnVtaWVyQGdyb3VwZS1jeWxsZW5l LmNvbT4KPiAtLS0KPiAgc3JjL1BWRS9TdG9yYWdlL0xWTVBsdWdpbi5wbSB8IDIzMSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgMjEzIGluc2Vy dGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9zcmMvUFZFL1N0b3Jh Z2UvTFZNUGx1Z2luLnBtIGIvc3JjL1BWRS9TdG9yYWdlL0xWTVBsdWdpbi5wbQo+IGluZGV4IDg4 ZmQ2MTIuLjEyNTdjZDMgMTAwNjQ0Cj4gLS0tIGEvc3JjL1BWRS9TdG9yYWdlL0xWTVBsdWdpbi5w bQo+ICsrKyBiL3NyYy9QVkUvU3RvcmFnZS9MVk1QbHVnaW4ucG0KPiBAQCAtNCw2ICs0LDcgQEAg dXNlIHN0cmljdDsKPiAgdXNlIHdhcm5pbmdzOwo+ICAKPiAgdXNlIElPOjpGaWxlOwo+ICt1c2Ug UE9TSVggcXcvY2VpbC87Cj4gIAo+ICB1c2UgUFZFOjpUb29scyBxdyhydW5fY29tbWFuZCB0cmlt KTsKPiAgdXNlIFBWRTo6U3RvcmFnZTo6UGx1Z2luOwo+IEBAIC0yMTYsNiArMjE3LDcgQEAgc3Vi IHR5cGUgewo+ICBzdWIgcGx1Z2luZGF0YSB7Cj4gICAgICByZXR1cm4gewo+ICAJY29udGVudCA9 PiBbIHtpbWFnZXMgPT4gMSwgcm9vdGRpciA9PiAxfSwgeyBpbWFnZXMgPT4gMSB9XSwKPiArCWZv cm1hdCA9PiBbIHsgcmF3ID0+IDEsIHFjb3cyID0+IDEgfSAsICdyYXcnIF0sCgpJIHdvbmRlciBp ZiB3ZSB3YW50IHRvIGd1YXJkIHRoZSBzbmFwc2hvdHRpbmctcmVsYXRlZCBwYXJ0cyBiZWxvdyB3 aXRoIGFuIGFkZGl0aW9uYWwgInNuYXBleHQiIG9wdGlvbiBoZXJlIGFzIHdlbGw/IG9yIGV2ZW4g dGhlIHVzYWdlIG9mIHFjb3cyIGFsdG9nZXRoZXI/Cgo+ICAgICAgfTsKPiAgfQo+ICAKPiBAQCAt MjkxLDcgKzI5MywxMCBAQCBzdWIgcGFyc2Vfdm9sbmFtZSB7Cj4gICAgICBQVkU6OlN0b3JhZ2U6 OlBsdWdpbjo6cGFyc2VfbHZtX25hbWUoJHZvbG5hbWUpOwo+ICAKPiAgICAgIGlmICgkdm9sbmFt ZSA9fiBtL14odm0tKFxkKyktXFMrKSQvKSB7Cj4gLQlyZXR1cm4gKCdpbWFnZXMnLCAkMSwgJDIs IHVuZGVmLCB1bmRlZiwgdW5kZWYsICdyYXcnKTsKPiArCW15ICRuYW1lID0gJDE7Cj4gKwlteSAk dm1pZCA9ICQyOwo+ICsJbXkgJGZvcm1hdCA9ICR2b2xuYW1lID1+IG0vXC5xY293MiQvID8gJ3Fj b3cyJyA6ICdyYXcnOwo+ICsJcmV0dXJuICgnaW1hZ2VzJywgJG5hbWUsICR2bWlkLCB1bmRlZiwg dW5kZWYsIHVuZGVmLCAkZm9ybWF0KTsKPiAgICAgIH0KPiAgCj4gICAgICBkaWUgInVuYWJsZSB0 byBwYXJzZSBsdm0gdm9sdW1lIG5hbWUgJyR2b2xuYW1lJ1xuIjsKPiBAQCAtMzAwLDExICszMDUs MTMgQEAgc3ViIHBhcnNlX3ZvbG5hbWUgewo+ICBzdWIgZmlsZXN5c3RlbV9wYXRoIHsKPiAgICAg IG15ICgkY2xhc3MsICRzY2ZnLCAkdm9sbmFtZSwgJHNuYXBuYW1lKSA9IEBfOwo+ICAKPiAtICAg IGRpZSAibHZtIHNuYXBzaG90IGlzIG5vdCBpbXBsZW1lbnRlZCJpZiBkZWZpbmVkKCRzbmFwbmFt ZSk7Cj4gKyAgICBteSAoJHZ0eXBlLCAkbmFtZSwgJHZtaWQsICRiYXNlbmFtZSwgJGJhc2V2bWlk LCAkaXNCYXNlLCAkZm9ybWF0KSA9Cj4gKwkkY2xhc3MtPnBhcnNlX3ZvbG5hbWUoJHZvbG5hbWUp Owo+ICAKPiAtICAgIG15ICgkdnR5cGUsICRuYW1lLCAkdm1pZCkgPSAkY2xhc3MtPnBhcnNlX3Zv bG5hbWUoJHZvbG5hbWUpOwo+ICsgICAgZGllICJzbmFwc2hvdCBpcyB3b3JraW5nIHdpdGggcWNv dzIgZm9ybWF0IG9ubHkiIGlmIGRlZmluZWQoJHNuYXBuYW1lKSAmJiAkZm9ybWF0IG5lICdxY293 Mic7Cj4gIAo+ICAgICAgbXkgJHZnID0gJHNjZmctPnt2Z25hbWV9Owo+ICsgICAgJG5hbWUgPSAk Y2xhc3MtPmdldF9zbmFwX3ZvbG5hbWUoJHZvbG5hbWUsICRzbmFwbmFtZSkgaWYgJHNuYXBuYW1l Owo+ICAKPiAgICAgIG15ICRwYXRoID0gIi9kZXYvJHZnLyRuYW1lIjsKPiAgCj4gQEAgLTMzMiw3 ICszMzksOSBAQCBzdWIgZmluZF9mcmVlX2Rpc2tuYW1lIHsKPiAgCj4gICAgICBteSAkZGlza19s aXN0ID0gWyBrZXlzICV7JGx2cy0+eyR2Z319IF07Cj4gIAo+IC0gICAgcmV0dXJuIFBWRTo6U3Rv cmFnZTo6UGx1Z2luOjpnZXRfbmV4dF92bV9kaXNrbmFtZSgkZGlza19saXN0LCAkc3RvcmVpZCwg JHZtaWQsIHVuZGVmLCAkc2NmZyk7Cj4gKyAgICAkYWRkX2ZtdF9zdWZmaXggPSAkZm10IGVxICdx Y293MicgPyAxIDogdW5kZWY7Cj4gKwo+ICsgICAgcmV0dXJuIFBWRTo6U3RvcmFnZTo6UGx1Z2lu OjpnZXRfbmV4dF92bV9kaXNrbmFtZSgkZGlza19saXN0LCAkc3RvcmVpZCwgJHZtaWQsICRmbXQs ICRzY2ZnLCAkYWRkX2ZtdF9zdWZmaXgpOwo+ICB9Cj4gIAo+ICBzdWIgbHZjcmVhdGUgewo+IEBA IC0zNjMsNyArMzcyLDE1IEBAIHN1YiBsdnJlbmFtZSB7Cj4gIHN1YiBhbGxvY19pbWFnZSB7Cj4g ICAgICBteSAoJGNsYXNzLCAkc3RvcmVpZCwgJHNjZmcsICR2bWlkLCAkZm10LCAkbmFtZSwgJHNp emUpID0gQF87Cj4gIAo+IC0gICAgZGllICJ1bnN1cHBvcnRlZCBmb3JtYXQgJyRmbXQnIiBpZiAk Zm10IG5lICdyYXcnOwo+ICsgICAgZGllICJ1bnN1cHBvcnRlZCBmb3JtYXQgJyRmbXQnIiBpZiAk Zm10ICF+IG0vKHJhd3xxY293MikvOwo+ICsKPiArICAgICRuYW1lID0gJGNsYXNzLT5hbGxvY19u ZXdfaW1hZ2UoJHN0b3JlaWQsICRzY2ZnLCAkdm1pZCwgJGZtdCwgJG5hbWUsICRzaXplKTsKPiAr ICAgICRjbGFzcy0+Zm9ybWF0X3Fjb3cyKCRzdG9yZWlkLCAkc2NmZywgJG5hbWUsICRzaXplKSBp ZiAkZm10IGVxICdxY293Mic7Cj4gKyAgICByZXR1cm4gJG5hbWU7Cj4gK30KPiArCj4gK3N1YiBh bGxvY19uZXdfaW1hZ2Ugewo+ICsgICAgbXkgKCRjbGFzcywgJHN0b3JlaWQsICRzY2ZnLCAkdm1p ZCwgJGZtdCwgJG5hbWUsICRzaXplKSA9IEBfOwo+ICAKPiAgICAgIGRpZSAiaWxsZWdhbCBuYW1l ICckbmFtZScgLSBzaG91bGQgYmUgJ3ZtLSR2bWlkLSonXG4iCj4gIAlpZiAgJG5hbWUgJiYgJG5h bWUgIX4gbS9edm0tJHZtaWQtLzsKPiBAQCAtMzc2LDE2ICszOTMsNDUgQEAgc3ViIGFsbG9jX2lt YWdlIHsKPiAgCj4gICAgICBteSAkZnJlZSA9IGludCgkdmdzLT57JHZnfS0+e2ZyZWV9KTsKPiAg Cj4gKwo+ICsgICAgI2FkZCBleHRyYSBzcGFjZSBmb3IgcWNvdzIgbWV0YWRhdGFzCj4gKyAgICAj d2l0aG91dCBzdWItYWxsb2NhdGVkIGNsdXN0ZXJzIDogRm9yIDFUQiBzdG9yYWdlIDogbDJfc2l6 ZSA9IGRpc2tfc2l6ZSDDlyA4IC8gY2x1c3Rlcl9zaXplCj4gKyAgICAjd2l0aCBzdWItYWxsb2Nh dGVkIGNsdXN0ZXJzIDogRm9yIDFUQiBzdG9yYWdlIDogbDJfc2l6ZSA9IGRpc2tfc2l6ZSDDlyA4 IC8gY2x1c3Rlcl9zaXplIC8gMTYKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjNE1CIG92ZXJoZWFkIGZvciAxVEIgd2l0aCBleHRlbnRlZCBsMiBjbHVzdGVyc2l6ZT0xMjhr Cj4gKwo+ICsgICAgbXkgJHFjb3cyX292ZXJoZWFkID0gY2VpbCgkc2l6ZS8xMDI0LzEwMjQvMTAy NCkgKiA0MDk2OwoKdGhlcmUncyAicWVtdS1pbWcgbWVhc3VyZSIsIHdoaWNoIHNlZW1zIGxpa2Ug aXQgd291bGQgZG8gZXhhY3RseSB3aGF0IHdlIHdhbnQgOykKCj4gKwo+ICsgICAgbXkgJGx2bXNp emUgPSAkc2l6ZTsKPiArICAgICRsdm1zaXplICs9ICRxY293Ml9vdmVyaGVhZCBpZiAkZm10IGVx ICdxY293Mic7Cj4gKwo+ICAgICAgZGllICJub3QgZW5vdWdoIGZyZWUgc3BhY2UgKCRmcmVlIDwg JHNpemUpXG4iIGlmICRmcmVlIDwgJHNpemU7Cj4gIAo+IC0gICAgJG5hbWUgPSAkY2xhc3MtPmZp bmRfZnJlZV9kaXNrbmFtZSgkc3RvcmVpZCwgJHNjZmcsICR2bWlkKQo+ICsgICAgJG5hbWUgPSAk Y2xhc3MtPmZpbmRfZnJlZV9kaXNrbmFtZSgkc3RvcmVpZCwgJHNjZmcsICR2bWlkLCAkZm10KQo+ ICAJaWYgISRuYW1lOwo+ICAKPiAtICAgIGx2Y3JlYXRlKCR2ZywgJG5hbWUsICRzaXplLCBbInB2 ZS12bS0kdm1pZCJdKTsKPiAtCj4gKyAgICBteSAkdGFncyA9IFsicHZlLXZtLSR2bWlkIl07Cj4g KyAgICBwdXNoIEAkdGFncywgIlxAcHZlLSRuYW1lIiBpZiAkZm10IGVxICdxY293Mic7Cgp0aGF0 J3MgYSBjcmVhdGl2ZSB3YXkgdG8gYXZvaWQgdGhlIG5lZWQgdG8gZGlzY292ZXIgYW5kIGFjdGl2 YXRlIHNuYXBzaG90cyBvbmUgYnkgb25lIGJlbG93LCBidXQgaXQgbWlnaHQgd2FycmFudCBhIGNv bW1lbnQgOykKCj4gKyAgICBsdmNyZWF0ZSgkdmcsICRuYW1lLCAkbHZtc2l6ZSwgJHRhZ3MpOwo+ ICAgICAgcmV0dXJuICRuYW1lOwo+ICB9Cj4gIAo+ICtzdWIgZm9ybWF0X3Fjb3cyIHsKPiArICAg IG15ICgkY2xhc3MsICRzdG9yZWlkLCAkc2NmZywgJG5hbWUsICRzaXplLCAkYmFja2luZ19maWxl KSA9IEBfOwo+ICsKPiArICAgICMgYWN0aXZhdGUgdm9sdW1lCj4gKyAgICAkY2xhc3MtPmFjdGl2 YXRlX3ZvbHVtZSgkc3RvcmVpZCwgJHNjZmcsICRuYW1lLCB1bmRlZiwge30pOwo+ICsgICAgbXkg JHBhdGggPSAkY2xhc3MtPnBhdGgoJHNjZmcsICRuYW1lLCAkc3RvcmVpZCk7Cj4gKyAgICAjIGNy ZWF0ZSB0aGUgcWNvdzIgZnMKPiArICAgIG15ICRjbWQgPSBbJy91c3IvYmluL3FlbXUtaW1nJywg J2NyZWF0ZSddOwo+ICsgICAgcHVzaCBAJGNtZCwgJy1iJywgJGJhY2tpbmdfZmlsZSwgJy1GJywg J3Fjb3cyJyBpZiAkYmFja2luZ19maWxlOwo+ICsgICAgcHVzaCBAJGNtZCwgJy1mJywgJ3Fjb3cy JywgJHBhdGg7Cj4gKyAgICBwdXNoIEAkY21kLCAiJHtzaXplfUsiIGlmICRzaXplOwo+ICsgICAg bXkgJG9wdGlvbnMgPSAiZXh0ZW5kZWRfbDI9b24sIjsKPiArICAgICRvcHRpb25zIC49IFBWRTo6 U3RvcmFnZTo6UGx1Z2luOjpwcmVhbGxvY2F0aW9uX2NtZF9vcHRpb24oJHNjZmcsICdxY293Micp Owo+ICsgICAgcHVzaCBAJGNtZCwgJy1vJywgJG9wdGlvbnM7Cj4gKyAgICBydW5fY29tbWFuZCgk Y21kKTsKPiArfQo+ICsKPiAgc3ViIGZyZWVfaW1hZ2Ugewo+ICAgICAgbXkgKCRjbGFzcywgJHN0 b3JlaWQsICRzY2ZnLCAkdm9sbmFtZSwgJGlzQmFzZSkgPSBAXzsKPiAgCj4gQEAgLTUzNiw2ICs1 ODIsMTIgQEAgc3ViIGFjdGl2YXRlX3ZvbHVtZSB7Cj4gIAo+ICAgICAgbXkgJGx2bV9hY3RpdmF0 ZV9tb2RlID0gJ2V5JzsKPiAgCj4gKyAgICAjYWN0aXZhdGUgdm9sdW1lICYmIGFsbCBzbmFwc2hv dHMgdm9sdW1lcyBieSB0YWcKPiArICAgIG15ICgkdnR5cGUsICRuYW1lLCAkdm1pZCwgJGJhc2Vu YW1lLCAkYmFzZXZtaWQsICRpc0Jhc2UsICRmb3JtYXQpID0KPiArCSRjbGFzcy0+cGFyc2Vfdm9s bmFtZSgkdm9sbmFtZSk7Cj4gKwo+ICsgICAgJHBhdGggPSAiXEBwdmUtJG5hbWUiIGlmICRmb3Jt YXQgZXEgJ3Fjb3cyJzsKPiArCj4gICAgICBteSAkY21kID0gWycvc2Jpbi9sdmNoYW5nZScsICIt YSRsdm1fYWN0aXZhdGVfbW9kZSIsICRwYXRoXTsKPiAgICAgIHJ1bl9jb21tYW5kKCRjbWQsIGVy cm1zZyA9PiAiY2FuJ3QgYWN0aXZhdGUgTFYgJyRwYXRoJyIpOwo+ICAgICAgJGNtZCA9IFsnL3Ni aW4vbHZjaGFuZ2UnLCAnLS1yZWZyZXNoJywgJHBhdGhdOwo+IEBAIC01NDgsNiArNjAwLDEwIEBA IHN1YiBkZWFjdGl2YXRlX3ZvbHVtZSB7Cj4gICAgICBteSAkcGF0aCA9ICRjbGFzcy0+cGF0aCgk c2NmZywgJHZvbG5hbWUsICRzdG9yZWlkLCAkc25hcG5hbWUpOwo+ICAgICAgcmV0dXJuIGlmICEg LWIgJHBhdGg7Cj4gIAo+ICsgICAgbXkgKCR2dHlwZSwgJG5hbWUsICR2bWlkLCAkYmFzZW5hbWUs ICRiYXNldm1pZCwgJGlzQmFzZSwgJGZvcm1hdCkgPQo+ICsJJGNsYXNzLT5wYXJzZV92b2xuYW1l KCR2b2xuYW1lKTsKPiArICAgICRwYXRoID0gIlxAcHZlLSRuYW1lIiBpZiAkZm9ybWF0IGVxICdx Y293Mic7Cj4gKwo+ICAgICAgbXkgJGNtZCA9IFsnL3NiaW4vbHZjaGFuZ2UnLCAnLWFsbicsICRw YXRoXTsKPiAgICAgIHJ1bl9jb21tYW5kKCRjbWQsIGVycm1zZyA9PiAiY2FuJ3QgZGVhY3RpdmF0 ZSBMViAnJHBhdGgnIik7Cj4gIH0KPiBAQCAtNTU1LDE1ICs2MTEsMjcgQEAgc3ViIGRlYWN0aXZh dGVfdm9sdW1lIHsKPiAgc3ViIHZvbHVtZV9yZXNpemUgewo+ICAgICAgbXkgKCRjbGFzcywgJHNj ZmcsICRzdG9yZWlkLCAkdm9sbmFtZSwgJHNpemUsICRydW5uaW5nKSA9IEBfOwo+ICAKPiAtICAg ICRzaXplID0gKCRzaXplLzEwMjQvMTAyNCkgLiAiTSI7Cj4gKyAgICBteSAoJHZ0eXBlLCAkbmFt ZSwgJHZtaWQsICRiYXNlbmFtZSwgJGJhc2V2bWlkLCAkaXNCYXNlLCAkZm9ybWF0KSA9Cj4gKwkk Y2xhc3MtPnBhcnNlX3ZvbG5hbWUoJHZvbG5hbWUpOwo+ICsKPiArICAgIG15ICRsdm1zaXplID0g JHNpemUgLyAxMDI0Owo+ICsgICAgbXkgJHFjb3cyX292ZXJoZWFkID0gY2VpbCgkc2l6ZS8xMDI0 LzEwMjQvMTAyNC8xMDI0KSAqIDQwOTY7CgpzZWUgYWJvdmUKCj4gKyAgICAkbHZtc2l6ZSArPSAk cWNvdzJfb3ZlcmhlYWQgaWYgJGZvcm1hdCBlcSAncWNvdzInOwo+ICsgICAgJGx2bXNpemUgPSAi JHtsdm1zaXplfWsiOwo+ICAKPiAgICAgIG15ICRwYXRoID0gJGNsYXNzLT5wYXRoKCRzY2ZnLCAk dm9sbmFtZSk7Cj4gLSAgICBteSAkY21kID0gWycvc2Jpbi9sdmV4dGVuZCcsICctTCcsICRzaXpl LCAkcGF0aF07Cj4gKyAgICBteSAkY21kID0gWycvc2Jpbi9sdmV4dGVuZCcsICctTCcsICRsdm1z aXplLCAkcGF0aF07Cj4gIAo+ICAgICAgJGNsYXNzLT5jbHVzdGVyX2xvY2tfc3RvcmFnZSgkc3Rv cmVpZCwgJHNjZmctPntzaGFyZWR9LCB1bmRlZiwgc3ViIHsKPiAgCXJ1bl9jb21tYW5kKCRjbWQs IGVycm1zZyA9PiAiZXJyb3IgcmVzaXppbmcgdm9sdW1lICckcGF0aCciKTsKPiAgICAgIH0pOwo+ ICAKPiArICAgIGlmKCEkcnVubmluZyAmJiAkZm9ybWF0IGVxICdxY293MicpIHsKPiArCW15ICRw cmVhbGxvY19vcHQgPSBQVkU6OlN0b3JhZ2U6OlBsdWdpbjo6cHJlYWxsb2NhdGlvbl9jbWRfb3B0 aW9uKCRzY2ZnLCAkZm9ybWF0KTsKPiArCW15ICRjbWQgPSBbJy91c3IvYmluL3FlbXUtaW1nJywg J3Jlc2l6ZScsICItLSRwcmVhbGxvY19vcHQiLCAnLWYnLCAkZm9ybWF0LCAkcGF0aCAsICRzaXpl XTsKPiArCXJ1bl9jb21tYW5kKCRjbWQsIHRpbWVvdXQgPT4gMTApOwo+ICsgICAgfQo+ICsKPiAg ICAgIHJldHVybiAxOwo+ICB9Cj4gIAo+IEBAIC01ODUsMzAgKzY1MywxNDkgQEAgc3ViIHZvbHVt ZV9zaXplX2luZm8gewo+ICBzdWIgdm9sdW1lX3NuYXBzaG90IHsKPiAgICAgIG15ICgkY2xhc3Ms ICRzY2ZnLCAkc3RvcmVpZCwgJHZvbG5hbWUsICRzbmFwKSA9IEBfOwo+ICAKPiAtICAgIGRpZSAi bHZtIHNuYXBzaG90IGlzIG5vdCBpbXBsZW1lbnRlZCI7Cj4gKyAgICBteSAoJHZ0eXBlLCAkbmFt ZSwgJHZtaWQsICRiYXNlbmFtZSwgJGJhc2V2bWlkLCAkaXNCYXNlLCAkZm9ybWF0KSA9Cj4gKyAg ICAgICAgJGNsYXNzLT5wYXJzZV92b2xuYW1lKCR2b2xuYW1lKTsKPiArCj4gKyAgICBkaWUgImNh bid0IHNuYXBzaG90IHRoaXMgaW1hZ2UgZm9ybWF0XG4iIGlmICRmb3JtYXQgbmUgJ3Fjb3cyJzsK PiArCj4gKyAgICAkY2xhc3MtPmFjdGl2YXRlX3ZvbHVtZSgkc3RvcmVpZCwgJHNjZmcsICR2b2xu YW1lLCB1bmRlZiwge30pOwo+ICsKPiArICAgIG15ICRzbmFwX3ZvbG5hbWUgPSAkY2xhc3MtPmdl dF9zbmFwX3ZvbG5hbWUoJHZvbG5hbWUsICRzbmFwKTsKPiArICAgIG15ICRzbmFwX3BhdGggPSAk Y2xhc3MtPnBhdGgoJHNjZmcsICR2b2xuYW1lLCAkc3RvcmVpZCwgJHNuYXApOwo+ICsKPiArICAg IG15ICRzaXplID0gJGNsYXNzLT52b2x1bWVfc2l6ZV9pbmZvKCRzY2ZnLCAkc3RvcmVpZCwgJHZv bG5hbWUsIDUpOwo+ICsKPiArICAgICNyZW5hbWUgY3VycmVudCBsdm0gdm9sdW1lIHRvIHNuYXAg dm9sdW1lCj4gKyAgICBteSAkdmcgPSAkc2NmZy0+e3ZnbmFtZX07Cj4gKyAgICBwcmludCJyZW5h bWUgJHZvbG5hbWUgdG8gJHNuYXBfdm9sbmFtZVxuIjsKPiArICAgIGV2YWwgeyBsdnJlbmFtZSgk dmcsICR2b2xuYW1lLCAkc25hcF92b2xuYW1lKSB9IDsKCm1pc3NpbmcgZXJyb3IgaGFuZGxpbmcu LgoKPiArCj4gKwo+ICsgICAgI2FsbG9jYXRlIGEgbmV3IGx2bSB2b2x1bWUKPiArICAgICRjbGFz cy0+YWxsb2NfbmV3X2ltYWdlKCRzdG9yZWlkLCAkc2NmZywgJHZtaWQsICdxY293MicsICR2b2xu YW1lLCAkc2l6ZS8xMDI0KTsKCm1pc3NpbmcgZXJyb3IgaGFuZGxpbmcKCj4gKyAgICBldmFsIHsK PiArICAgICAgICAkY2xhc3MtPmZvcm1hdF9xY293Migkc3RvcmVpZCwgJHNjZmcsICR2b2xuYW1l LCB1bmRlZiwgJHNuYXBfcGF0aCk7Cj4gKyAgICB9Owo+ICsKPiArICAgIGlmICgkQCkgewo+ICsg ICAgICAgIGV2YWwgeyAkY2xhc3MtPmZyZWVfaW1hZ2UoJHN0b3JlaWQsICRzY2ZnLCAkdm9sbmFt ZSwgMCkgfTsKPiArICAgICAgICB3YXJuICRAIGlmICRAOwo+ICsgICAgfQo+ICt9Cj4gKwo+ICtz dWIgdm9sdW1lX3JvbGxiYWNrX2lzX3Bvc3NpYmxlIHsKPiArICAgIG15ICgkY2xhc3MsICRzY2Zn LCAkc3RvcmVpZCwgJHZvbG5hbWUsICRzbmFwLCAkYmxvY2tlcnMpID0gQF87Cj4gKwo+ICsgICAg bXkgJHNuYXBfcGF0aCA9ICRjbGFzcy0+cGF0aCgkc2NmZywgJHZvbG5hbWUsICRzdG9yZWlkLCAk c25hcCk7Cj4gKwo+ICsgICAgbXkgJHNuYXBzaG90cyA9ICRjbGFzcy0+dm9sdW1lX3NuYXBzaG90 X2luZm8oJHNjZmcsICRzdG9yZWlkLCAkdm9sbmFtZSk7Cj4gKyAgICBteSAkcGFyZW50X3NuYXAg PSAkc25hcHNob3RzLT57Y3VycmVudH0tPntwYXJlbnR9Owo+ICsKPiArICAgIHJldHVybiAxIGlm ICEtZSAkc25hcF9wYXRoIHx8ICRzbmFwc2hvdHMtPnskcGFyZW50X3NuYXB9LT57ZmlsZX0gZXEg JHNuYXBfcGF0aDsKCnRoZSBmaXJzdCBjb25kaXRpb24gaGVyZSBzZWVtcyB3cm9uZywgc2VlIHN0 b3JhZ2UgcGF0Y2ggIzEKCj4gKyAgICBkaWUgImNhbid0IHJvbGxiYWNrLCAnJHNuYXAnIGlzIG5v dCBtb3N0IHJlY2VudCBzbmFwc2hvdCBvbiAnJHZvbG5hbWUnXG4iOwo+ICsKPiArICAgIHJldHVy biAxOwo+ICB9Cj4gIAo+ICsKPiAgc3ViIHZvbHVtZV9zbmFwc2hvdF9yb2xsYmFjayB7Cj4gICAg ICBteSAoJGNsYXNzLCAkc2NmZywgJHN0b3JlaWQsICR2b2xuYW1lLCAkc25hcCkgPSBAXzsKPiAg Cj4gLSAgICBkaWUgImx2bSBzbmFwc2hvdCByb2xsYmFjayBpcyBub3QgaW1wbGVtZW50ZWQiOwo+ ICsgICAgZGllICJjYW4ndCByb2xsYmFjayBzbmFwc2hvdCB0aGlzIGltYWdlIGZvcm1hdFxuIiBp ZiAkdm9sbmFtZSAhfiBtL1wuKHFjb3cyfHFlZCkkLzsKCmFib3ZlIHdlIG9ubHkgaGF2ZSBxY293 Miwgd2hpY2ggSU1ITyBtYWtlcyBtb3JlIHNlbnNlLi4KCj4gKwo+ICsgICAgbXkgKCR2dHlwZSwg JG5hbWUsICR2bWlkLCAkYmFzZW5hbWUsICRiYXNldm1pZCwgJGlzQmFzZSwgJGZvcm1hdCkgPQo+ ICsgICAgICAgICRjbGFzcy0+cGFyc2Vfdm9sbmFtZSgkdm9sbmFtZSk7Cj4gKwo+ICsgICAgJGNs YXNzLT5hY3RpdmF0ZV92b2x1bWUoJHN0b3JlaWQsICRzY2ZnLCAkdm9sbmFtZSwgdW5kZWYsIHt9 KTsKPiArICAgIG15ICRzaXplID0gJGNsYXNzLT52b2x1bWVfc2l6ZV9pbmZvKCRzY2ZnLCAkc3Rv cmVpZCwgJHZvbG5hbWUsIDUpOwo+ICsgICAgbXkgJHNuYXBfcGF0aCA9ICRjbGFzcy0+cGF0aCgk c2NmZywgJHZvbG5hbWUsICRzdG9yZWlkLCAkc25hcCk7Cj4gKwo+ICsgICAgI3NpbXBseSBkZWxl dGUgdGhlIGN1cnJlbnQgc25hcHNob3QgYW5kIHJlY3JlYXRlIGl0Cj4gKyAgICAkY2xhc3MtPmZy ZWVfaW1hZ2UoJHN0b3JlaWQsICRzY2ZnLCAkdm9sbmFtZSwgMCk7Cj4gKyAgICAkY2xhc3MtPmFs bG9jX25ld19pbWFnZSgkc3RvcmVpZCwgJHNjZmcsICR2bWlkLCAncWNvdzInLCAkdm9sbmFtZSwg JHNpemUvMTAyNCk7Cj4gKyAgICAkY2xhc3MtPmZvcm1hdF9xY293Migkc3RvcmVpZCwgJHNjZmcs ICR2b2xuYW1lLCB1bmRlZiwgJHNuYXBfcGF0aCk7CgptaXNzaW5nIGVycm9yIGhhbmRsaW5nLi4K Cj4gKwo+ICsgICAgcmV0dXJuIHVuZGVmOwo+ICB9Cj4gIAo+ICBzdWIgdm9sdW1lX3NuYXBzaG90 X2RlbGV0ZSB7Cj4gLSAgICBteSAoJGNsYXNzLCAkc2NmZywgJHN0b3JlaWQsICR2b2xuYW1lLCAk c25hcCkgPSBAXzsKPiArICAgIG15ICgkY2xhc3MsICRzY2ZnLCAkc3RvcmVpZCwgJHZvbG5hbWUs ICRzbmFwLCAkcnVubmluZykgPSBAXzsKPiArCj4gKyAgIGRpZSAiY2FuJ3QgZGVsZXRlIHNuYXBz aG90IGZvciB0aGlzIGltYWdlIGZvcm1hdFxuIiBpZiAkdm9sbmFtZSAhfiBtL1wuKHFjb3cyfHFl ZCkkLzsKCnNhbWUgYXMgYWJvdmUKCj4gKwo+ICsgICByZXR1cm4gMSBpZiAkcnVubmluZzsKPiAr Cj4gKyAgIG15ICRjbWQgPSAiIjsKPiArICAgbXkgJHBhdGggPSAkY2xhc3MtPmZpbGVzeXN0ZW1f cGF0aCgkc2NmZywgJHZvbG5hbWUpOwo+ICsKPiArCj4gKyAgIG15ICRzbmFwc2hvdHMgPSAkY2xh c3MtPnZvbHVtZV9zbmFwc2hvdF9pbmZvKCRzY2ZnLCAkc3RvcmVpZCwgJHZvbG5hbWUpOwo+ICsg ICBteSAkc25hcF9wYXRoID0gJHNuYXBzaG90cy0+eyRzbmFwfS0+e2ZpbGV9Owo+ICsgICBteSAk c25hcF92b2xuYW1lID0gJHNuYXBzaG90cy0+eyRzbmFwfS0+e3ZvbG5hbWV9Owo+ICsgICByZXR1 cm4gaWYgIS1lICRzbmFwX3BhdGg7ICAjYWxyZWFkeSBkZWxldGVkID8KCnNob3VsZCBtYXliZSBi ZSBhIGRpZT8KCj4gKwo+ICsgICBteSAkcGFyZW50X3NuYXAgPSAkc25hcHNob3RzLT57JHNuYXB9 LT57cGFyZW50fTsKPiArICAgbXkgJGNoaWxkX3NuYXAgPSAkc25hcHNob3RzLT57JHNuYXB9LT57 Y2hpbGR9Owo+ICsKPiArICAgbXkgJHBhcmVudF9wYXRoID0gJHNuYXBzaG90cy0+eyRwYXJlbnRf c25hcH0tPntmaWxlfSBpZiAkcGFyZW50X3NuYXA7Cj4gKyAgIG15ICRjaGlsZF9wYXRoID0gJHNu YXBzaG90cy0+eyRjaGlsZF9zbmFwfS0+e2ZpbGV9IGlmICRjaGlsZF9zbmFwOwo+ICsgICBteSAk Y2hpbGRfdm9sbmFtZSA9ICRzbmFwc2hvdHMtPnskY2hpbGRfc25hcH0tPnt2b2xuYW1lfSBpZiAk Y2hpbGRfc25hcDsKPiArCj4gKwo+ICsgICAjaWYgZmlyc3Qgc25hcHNob3QsIHdlIG1lcmdlIGNo aWxkLCBhbmQgcmVuYW1lIHRoZSBzbmFwc2hvdCB0byBjaGlsZAo+ICsgICBpZighJHBhcmVudF9z bmFwKSB7Cj4gKyAgICAgICAgI3dlIHVzZSBjb21taXQgaGVyZSwgYXMgaXQncyBmYXN0ZXIgdGhh biByZWJhc2UKPiArICAgICAgICAjaHR0cHM6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9x ZW11LWRpc2N1c3MvMjAxOS0wOC9tc2cwMDA0MS5odG1sCj4gKyAgICAgICAgcHJpbnQiY29tbWl0 ICRjaGlsZF9wYXRoXG4iOwo+ICsgICAgICAgICRjbWQgPSBbJy91c3IvYmluL3FlbXUtaW1nJywg J2NvbW1pdCcsICRjaGlsZF9wYXRoXTsKPiArICAgICAgICBydW5fY29tbWFuZCgkY21kKTsKPiAr ICAgICAgICBwcmludCJkZWxldGUgJGNoaWxkX3ZvbG5hbWVcbiI7Cj4gKyAgICAgICAgJGNsYXNz LT5mcmVlX2ltYWdlKCRzdG9yZWlkLCAkc2NmZywgJGNoaWxkX3ZvbG5hbWUsIDApOwo+ICsKPiAr ICAgICAgICBwcmludCJyZW5hbWUgJHNuYXBfdm9sbmFtZSB0byAkY2hpbGRfdm9sbmFtZVxuIjsK PiArCW15ICR2ZyA9ICRzY2ZnLT57dmduYW1lfTsKPiArICAgICAgICBsdnJlbmFtZSgkdmcsICRz bmFwX3ZvbG5hbWUsICRjaGlsZF92b2xuYW1lKTsKCm1pc3NpbmcgZXJyb3IgaGFuZGxpbmcuLgoK PiArICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgcHJpbnQiY29tbWl0ICRzbmFwX3BhdGhcbiI7Cj4g KyAgICAgICAgJGNtZCA9IFsnL3Vzci9iaW4vcWVtdS1pbWcnLCAnY29tbWl0JywgJHNuYXBfcGF0 aF07CgpsZWZ0b3Zlcj8KCj4gKyAgICAgICAgI2lmIHdlIGRlbGV0ZSBhbiBpbnRlcm1lZGlhdGUg c25hcHNob3QsIHdlIG5lZWQgdG8gbGluayB1cHBlciBzbmFwc2hvdCB0byBiYXNlIHNuYXBzaG90 Cj4gKyAgICAgICAgZGllICJtaXNzaW5nIHBhcmVudHNuYXAgc25hcHNob3QgdG8gcmViYXNlIGNo aWxkICRjaGlsZF9wYXRoXG4iIGlmICEkcGFyZW50X3BhdGg7Cj4gKyAgICAgICAgcHJpbnQgImxp bmsgJGNoaWxkX3NuYXAgdG8gJHBhcmVudF9zbmFwXG4iOwo+ICsgICAgICAgICRjbWQgPSBbJy91 c3IvYmluL3FlbXUtaW1nJywgJ3JlYmFzZScsICctdScsICctYicsICRwYXJlbnRfcGF0aCwgJy1G JywgJ3Fjb3cyJywgJy1mJywgJ3Fjb3cyJywgJGNoaWxkX3BhdGhdOwo+ICsgICAgICAgIHJ1bl9j b21tYW5kKCRjbWQpOwoKc2FtZSBhcyBmb3IgcGF0Y2ggIzEsIEkgYW0gbm90IHN1cmUgdGhlIC11 IGhlcmUgaXMgY29ycmVjdC4uCgo+ICsgICAgICAgICNkZWxldGUgdGhlIHNuYXBzaG90Cj4gKyAg ICAgICAgJGNsYXNzLT5mcmVlX2ltYWdlKCRzdG9yZWlkLCAkc2NmZywgJHNuYXBfdm9sbmFtZSwg MCk7Cj4gKyAgICB9Cj4gIAo+IC0gICAgZGllICJsdm0gc25hcHNob3QgZGVsZXRlIGlzIG5vdCBp bXBsZW1lbnRlZCI7Cj4gIH0KPiAgCj4gIHN1YiB2b2x1bWVfaGFzX2ZlYXR1cmUgewo+ICAgICAg bXkgKCRjbGFzcywgJHNjZmcsICRmZWF0dXJlLCAkc3RvcmVpZCwgJHZvbG5hbWUsICRzbmFwbmFt ZSwgJHJ1bm5pbmcpID0gQF87Cj4gIAo+ICAgICAgbXkgJGZlYXR1cmVzID0gewo+IC0JY29weSA9 PiB7IGJhc2UgPT4gMSwgY3VycmVudCA9PiAxfSwKPiAtCXJlbmFtZSA9PiB7Y3VycmVudCA9PiAx fSwKPiArICAgICAgICBjb3B5ID0+IHsKPiArICAgICAgICAgICAgYmFzZSA9PiB7IHFjb3cyID0+ IDEsIHJhdyA9PiAxfSwKPiArICAgICAgICAgICAgY3VycmVudCA9PiB7IHFjb3cyID0+IDEsIHJh dyA9PiAxfSwKPiArICAgICAgICAgICAgc25hcCA9PiB7IHFjb3cyID0+IDEgfSwKPiArICAgICAg ICB9LAo+ICsgICAgICAgICdyZW5hbWUnID0+IHsKPiArICAgICAgICAgICAgY3VycmVudCA9PiB7 IHFjb3cyID0+IDEsIHJhdyA9PiAxfSwKPiArICAgICAgICB9LAo+ICsgICAgICAgIHNuYXBzaG90 ID0+IHsKPiArICAgICAgICAgICAgY3VycmVudCA9PiB7IHFjb3cyID0+IDEgfSwKPiArICAgICAg ICAgICAgc25hcCA9PiB7IHFjb3cyID0+IDEgfSwKPiArICAgICAgICB9LAo+ICsgICAgICAgIHRl bXBsYXRlID0+IHsKPiArICAgICAgICAgICAgY3VycmVudCA9PiB7IHFjb3cyID0+IDEsIHJhdyA9 PiAxfSwKPiArICAgICAgICB9LAo+ICsjCWRvbid0IGFsbG93IHRvIGNsb25lIGFzIHdlIGNhbid0 IGFjdGl2YXRlIHRoZSBiYXNlIG9uIG11bHRpcGxlIGhvc3QgYXQgdGhlIHNhbWUgdGltZQo+ICsj ICAgICAgIGNsb25lID0+IHsKPiArIyAgICAgICAgICAgYmFzZSA9PiB7IHFjb3cyID0+IDEsIHJh dyA9PiAxfSwKPiArIyAgICAgICB9LAoKSSB0aGluayBhY3RpdmF0aW5nIHRoZSBiYXNlIHdvdWxk IGFjdHVhbGx5IGJlIG9rYXksIHdlIGp1c3QgbXVzdCBuZXZlciB3cml0ZSB0byBpdD8gOykKCj4g ICAgICB9Owo+ICAKPiAtICAgIG15ICgkdnR5cGUsICRuYW1lLCAkdm1pZCwgJGJhc2VuYW1lLCAk YmFzZXZtaWQsICRpc0Jhc2UpID0KPiArCj4gKyAgICBteSAoJHZ0eXBlLCAkbmFtZSwgJHZtaWQs ICRiYXNlbmFtZSwgJGJhc2V2bWlkLCAkaXNCYXNlLCAkZm9ybWF0KSA9Cj4gIAkkY2xhc3MtPnBh cnNlX3ZvbG5hbWUoJHZvbG5hbWUpOwo+ICAKPiAgICAgIG15ICRrZXkgPSB1bmRlZjsKPiBAQCAt NjE3LDcgKzgwNCw3IEBAIHN1YiB2b2x1bWVfaGFzX2ZlYXR1cmUgewo+ICAgICAgfWVsc2V7Cj4g IAkka2V5ID0gICRpc0Jhc2UgPyAnYmFzZScgOiAnY3VycmVudCc7Cj4gICAgICB9Cj4gLSAgICBy ZXR1cm4gMSBpZiAkZmVhdHVyZXMtPnskZmVhdHVyZX0tPnska2V5fTsKPiArICAgIHJldHVybiAx IGlmIGRlZmluZWQoJGZlYXR1cmVzLT57JGZlYXR1cmV9LT57JGtleX0tPnskZm9ybWF0fSk7Cj4g IAo+ICAgICAgcmV0dXJuIHVuZGVmOwo+ICB9Cj4gQEAgLTczOCw0ICs5MjUsMTIgQEAgc3ViIHJl bmFtZV92b2x1bWUgewo+ICAgICAgcmV0dXJuICIke3N0b3JlaWR9OiR7dGFyZ2V0X3ZvbG5hbWV9 IjsKPiAgfQo+ICAKPiArc3ViIGdldF9zbmFwX3ZvbG5hbWUgewo+ICsgICAgbXkgKCRjbGFzcywg JHZvbG5hbWUsICRzbmFwbmFtZSkgPSBAXzsKPiArCj4gKyAgICBteSAoJHZ0eXBlLCAkbmFtZSwg JHZtaWQsICRiYXNlbmFtZSwgJGJhc2V2bWlkLCAkaXNCYXNlLCAkZm9ybWF0KSA9ICRjbGFzcy0+ cGFyc2Vfdm9sbmFtZSgkdm9sbmFtZSk7Cj4gKyAgICAkbmFtZSA9ICEkc25hcG5hbWUgfHwgJHNu YXBuYW1lIGVxICdjdXJyZW50JyA/ICR2b2xuYW1lIDogInNuYXAtJHNuYXBuYW1lLSRuYW1lIjsK PiArICAgIHJldHVybiAkbmFtZTsKPiArfQo+ICsKPiAgMTsKPiAtLSAKPiAyLjM5LjUKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFp bGluZyBsaXN0CnB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3ht b3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwK