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 C1E5C1FF16F for ; Thu, 13 Feb 2025 15:57:02 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 722BC7816; Thu, 13 Feb 2025 15:56:58 +0100 (CET) Message-ID: <27e1a178-6e79-4be6-bbf4-20c12210cd45@proxmox.com> Date: Thu, 13 Feb 2025 15:56:21 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Proxmox VE development discussion , Alexander Zeidler References: <20250110165807.3-1-a.zeidler@proxmox.com> Content-Language: en-US From: Fiona Ebner In-Reply-To: <20250110165807.3-1-a.zeidler@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL -0.446 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_ASCII_DIVIDERS 0.8 Email that uses ascii formatting dividers and possible spam tricks KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pve-devel] [PATCH docs v3 1/2] pvesr: update the chapter and bring it into good condition 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" UmVhZHMgcHJldHR5IGdvb2QgYWxsIGluIGFsbC4gTWF5YmUgSSB3YXMgYSBiaXQgbml0cGlja3kg aW4gdGhlIGluaXRpYWwKc2VjdGlvbiwgYnV0IGJldHRlciB0byBzdWdnZXN0IHRvbyBtdWNoIHRo YW4gdG9vIGxpdHRsZS4KCkFtIDEwLjAxLjI1IHVtIDE3OjU4IHNjaHJpZWIgQWxleGFuZGVyIFpl aWRsZXI6Cj4gZGlmZiAtLWdpdCBhL3B2ZWNtLmFkb2MgYi9wdmVjbS5hZG9jCj4gaW5kZXggMTVk ZGE0ZS4uNDAyOGU5MiAxMDA2NDQKPiAtLS0gYS9wdmVjbS5hZG9jCj4gKysrIGIvcHZlY20uYWRv Ywo+IEBAIC00ODYsNiArNDg2LDcgQEAgYXV0aGVudGljYXRpb24uIFlvdSBzaG91bGQgZml4IHRo aXMgYnkgcmVtb3ZpbmcgdGhlIHJlc3BlY3RpdmUga2V5cyBmcm9tIHRoZQo+ICAnL2V0Yy9wdmUv cHJpdi9hdXRob3JpemVkX2tleXMnIGZpbGUuCj4gIAo+ICAKPiArW1twdmVjbV9xdW9ydW1dXQo+ ICBRdW9ydW0KPiAgLS0tLS0tCj4gIAo+IEBAIC05NjMsNiArOTY0LDcgQEAgY2FzZSAkLSBpbgo+ ICBlc2FjCj4gIC0tLS0KPiAgCj4gK1tbcHZlY21fZXh0ZXJuYWxfdm90ZV1dCj4gIENvcm9zeW5j IEV4dGVybmFsIFZvdGUgU3VwcG9ydAo+ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K PiAgCgpOaXQ6IGFib3ZlIGNvdWxkL3Nob3VsZCBiZSBpdHMgb3duIHByZXBhcmF0b3J5IHBhdGNo Cgo+IGRpZmYgLS1naXQgYS9wdmVzci5hZG9jIGIvcHZlc3IuYWRvYwo+IGluZGV4IDlhZDAyZjUu LjAzNGU0YzIgMTAwNjQ0Cj4gLS0tIGEvcHZlc3IuYWRvYwo+ICsrKyBiL3B2ZXNyLmFkb2MKPiBA QCAtMjQsNDggKzI0LDY4IEBAIFN0b3JhZ2UgUmVwbGljYXRpb24KPiAgOnB2ZS10b3BsZXZlbDoK PiAgZW5kaWY6Om1hbnZvbG51bVtdCj4gIAo+IC1UaGUgYHB2ZXNyYCBjb21tYW5kLWxpbmUgdG9v bCBtYW5hZ2VzIHRoZSB7UFZFfSBzdG9yYWdlIHJlcGxpY2F0aW9uCj4gLWZyYW1ld29yay4gU3Rv cmFnZSByZXBsaWNhdGlvbiBicmluZ3MgcmVkdW5kYW5jeSBmb3IgZ3Vlc3RzIHVzaW5nCj4gLWxv Y2FsIHN0b3JhZ2UgYW5kIHJlZHVjZXMgbWlncmF0aW9uIHRpbWUuCj4gLQo+IC1JdCByZXBsaWNh dGVzIGd1ZXN0IHZvbHVtZXMgdG8gYW5vdGhlciBub2RlIHNvIHRoYXQgYWxsIGRhdGEgaXMgYXZh aWxhYmxlCj4gLXdpdGhvdXQgdXNpbmcgc2hhcmVkIHN0b3JhZ2UuIFJlcGxpY2F0aW9uIHVzZXMg c25hcHNob3RzIHRvIG1pbmltaXplIHRyYWZmaWMKPiAtc2VudCBvdmVyIHRoZSBuZXR3b3JrLiBU aGVyZWZvcmUsIG5ldyBkYXRhIGlzIHNlbnQgb25seSBpbmNyZW1lbnRhbGx5IGFmdGVyCj4gLXRo ZSBpbml0aWFsIGZ1bGwgc3luYy4gSW4gdGhlIGNhc2Ugb2YgYSBub2RlIGZhaWx1cmUsIHlvdXIg Z3Vlc3QgZGF0YSBpcwo+IC1zdGlsbCBhdmFpbGFibGUgb24gdGhlIHJlcGxpY2F0ZWQgbm9kZS4K PiAtCj4gLVRoZSByZXBsaWNhdGlvbiBpcyBkb25lIGF1dG9tYXRpY2FsbHkgaW4gY29uZmlndXJh YmxlIGludGVydmFscy4KPiAtVGhlIG1pbmltdW0gcmVwbGljYXRpb24gaW50ZXJ2YWwgaXMgb25l IG1pbnV0ZSwgYW5kIHRoZSBtYXhpbWFsIGludGVydmFsCj4gLW9uY2UgYSB3ZWVrLiBUaGUgZm9y bWF0IHVzZWQgdG8gc3BlY2lmeSB0aG9zZSBpbnRlcnZhbHMgaXMgYSBzdWJzZXQgb2YKPiAtYHN5 c3RlbWRgIGNhbGVuZGFyIGV2ZW50cywgc2VlCj4gLXhyZWY6cHZlc3Jfc2NoZWR1bGVfdGltZV9m b3JtYXRbU2NoZWR1bGUgRm9ybWF0XSBzZWN0aW9uOgo+IC0KPiAtSXQgaXMgcG9zc2libGUgdG8g cmVwbGljYXRlIGEgZ3Vlc3QgdG8gbXVsdGlwbGUgdGFyZ2V0IG5vZGVzLAo+IC1idXQgbm90IHR3 aWNlIHRvIHRoZSBzYW1lIHRhcmdldCBub2RlLgo+IC0KPiAtRWFjaCByZXBsaWNhdGlvbnMgYmFu ZHdpZHRoIGNhbiBiZSBsaW1pdGVkLCB0byBhdm9pZCBvdmVybG9hZGluZyBhIHN0b3JhZ2UKPiAt b3Igc2VydmVyLgo+IC0KPiAtT25seSBjaGFuZ2VzIHNpbmNlIHRoZSBsYXN0IHJlcGxpY2F0aW9u IChzby1jYWxsZWQgYGRlbHRhc2ApIG5lZWQgdG8gYmUKPiAtdHJhbnNmZXJyZWQgaWYgdGhlIGd1 ZXN0IGlzIG1pZ3JhdGVkIHRvIGEgbm9kZSB0byB3aGljaCBpdCBhbHJlYWR5IGlzCj4gLXJlcGxp Y2F0ZWQuIFRoaXMgcmVkdWNlcyB0aGUgdGltZSBuZWVkZWQgc2lnbmlmaWNhbnRseS4gVGhlIHJl cGxpY2F0aW9uCj4gLWRpcmVjdGlvbiBhdXRvbWF0aWNhbGx5IHN3aXRjaGVzIGlmIHlvdSBtaWdy YXRlIGEgZ3Vlc3QgdG8gdGhlIHJlcGxpY2F0aW9uCj4gLXRhcmdldCBub2RlLgo+IC0KPiAtRm9y IGV4YW1wbGU6IFZNMTAwIGlzIGN1cnJlbnRseSBvbiBgbm9kZUFgIGFuZCBnZXRzIHJlcGxpY2F0 ZWQgdG8gYG5vZGVCYC4KPiAtWW91IG1pZ3JhdGUgaXQgdG8gYG5vZGVCYCwgc28gbm93IGl0IGdl dHMgYXV0b21hdGljYWxseSByZXBsaWNhdGVkIGJhY2sgZnJvbQo+IC1gbm9kZUJgIHRvIGBub2Rl QWAuCj4gLQo+IC1JZiB5b3UgbWlncmF0ZSB0byBhIG5vZGUgd2hlcmUgdGhlIGd1ZXN0IGlzIG5v dCByZXBsaWNhdGVkLCB0aGUgd2hvbGUgZGlzawo+IC1kYXRhIG11c3Qgc2VuZCBvdmVyLiBBZnRl ciB0aGUgbWlncmF0aW9uLCB0aGUgcmVwbGljYXRpb24gam9iIGNvbnRpbnVlcyB0bwo+IC1yZXBs aWNhdGUgdGhpcyBndWVzdCB0byB0aGUgY29uZmlndXJlZCBub2Rlcy4KCkknZCBhZGQgc29tZSBo ZWFkaW5nIGxpa2UgIkludHJvZHVjdGlvbiIgb3IgIk92ZXJ2aWV3IiBmb3IgdGhlIGluaXRpYWwK c2VjdGlvbi4KCj4gK1JlcGxpY2F0aW9uIGNhbiBiZSBjb25maWd1cmVkIGZvciBhIGd1ZXN0IHdo aWNoIGhhcyB2b2x1bWVzIHBsYWNlZCBvbgo+ICthIGxvY2FsIHN0b3JhZ2UuIFRob3NlIHZvbHVt ZXMgYXJlIHRoZW4gcmVwbGljYXRlZCB0byBvdGhlciBjbHVzdGVyCgpOaXQ6IEknZCBzaG9ydGVu IHRoaXMgdG8gImZvciBhIGd1ZXN0IHdpdGggdm9sdW1lcyBvbiBhIGxvY2FsIHN0b3JhZ2UiCgpX b3VsZCBhZGQgYW4gZWFybHkgc2VudGVuY2UgdGhhdCBvbmx5IFpGUyBpcyBzdXBwb3J0ZWQgcmln aHQgbm93IHRvIG5vdApyYWlzZSBmYWxzZSBleHBlY3RhdGlvbnMuCgo+ICtub2RlcyB0byBlbmFi bGUgYSBzaWduaWZpY2FudGx5IGZhc3RlciBndWVzdCBtaWdyYXRpb24gdG8gdGhlbS4KClNlbnRl bmNlIGNhbiBiZSBzcGxpdDogIm90aGVyIGNsdXN0ZXIgbm9kZXMuIFRoaXMgZW5hYmxlcyIKCk9y IGV2ZW4gYmV0dGVyLCB1c2UgdGhlIGNoYW5jZSB0byBkZWZpbmUgd2hhdCBhIHJlcGxpY2F0aW9u IHRhcmdldCBpczoKIm90aGVyIGNsdXN0ZXIgbm9kZXMsIHRoZSByZXBsaWNhdGlvbiB0YXJnZXRz LiBUaGlzIGVuYWJsZXMiCgpXb3VsZCBjbGFyaWZ5ICJtaWdyYXRpb24gdG8gYSByZXBsaWNhdGlv biB0YXJnZXQuIgoKPiArUG9zc2libGUgYWRkaXRpb25hbCB2b2x1bWVzIG9uIGEgc2hhcmVkIHN0 b3JhZ2UgYXJlIG5vdCBiZWluZwoKSSdkIGRyb3AgdGhlICJwb3NzaWJsZSBhZGRpdGlvbmFsIiBh bmQgdGhlICJiZWluZyIKCj4gK3JlcGxpY2F0ZWQsIHNpbmNlIGl0IGlzIGV4cGVjdGVkIHRoYXQg dGhlIHNoYXJlZCBzdG9yYWdlIGlzIGFsc28KPiArYXZhaWxhYmxlIGF0IHRoZSBtaWdyYXRpb24g dGFyZ2V0IG5vZGUuIFJlcGxpY2F0aW9uIGlzIHBhcnRpY3VsYXJseQoKQ2FuIHJlcGxpY2F0aW9u IHN0aWxsIGJlIGNvbmZpZ3VyZWQgaWYgYSBzaGFyZWQgc3RvcmFnZSBpcyBub3QgYXZhaWxhYmxl CmF0IHRoZSByZXBsaWNhdGlvbiB0YXJnZXQ/IFRoYXQgd291bGQgYmUgYSBidWcuIElmIGl0IGlz IHN0aWxsIHBvc3NpYmxlLAp0aGVyZSBzaG91bGQgYmUgYSB3YXJuaW5nIGluIHRoZSBkb2NzIHRo YXQgaXQgc2hvdWxkIG5vdCBiZSBjb25maWd1cmVkLgpPdGhlcndpc2UsIGEgc2VudGVuY2UgdGhh dCBpdCBjYW5ub3QgYmUgY29uZmlndXJlZC4KCj4gK2ludGVyZXN0aW5nIGZvciBzbWFsbCBjbHVz dGVycyBpZiBubyBzaGFyZWQgc3RvcmFnZSBpcyBhdmFpbGFibGUuCj4gKwo+ICtJbiB0aGUgZXZl bnQgb2YgYSBub2RlIG9yIGxvY2FsIHN0b3JhZ2UgZmFpbHVyZSwgdGhlIHZvbHVtZSBkYXRhIGFz IG9mCj4gK3RoZSBsYXRlc3QgY29tcGxldGVkIHJlcGxpY2F0aW9uIHJ1bnMgYXJlIHN0aWxsIGF2 YWlsYWJsZSBvbiB0aGUKPiArcmVwbGljYXRpb24gdGFyZ2V0IG5vZGVzLgo+ICAKPiAgW0lNUE9S VEFOVF0KPiAgPT09PQo+IC1IaWdoLUF2YWlsYWJpbGl0eSBpcyBhbGxvd2VkIGluIGNvbWJpbmF0 aW9uIHdpdGggc3RvcmFnZSByZXBsaWNhdGlvbiwgYnV0IHRoZXJlCj4gLW1heSBiZSBzb21lIGRh dGEgbG9zcyBiZXR3ZWVuIHRoZSBsYXN0IHN5bmNlZCB0aW1lIGFuZCB0aGUgdGltZSBhIG5vZGUg ZmFpbGVkLgo+ICtXaGlsZSBhIHJlcGxpY2F0aW9uLWVuYWJsZWQgZ3Vlc3QgY2FuIGJlIGNvbmZp Z3VyZWQgZm9yCj4gK3hyZWY6Y2hhcHRlcl9oYV9tYW5hZ2VyW2hpZ2ggYXZhaWxhYmlsaXR5XSwg b3IKPiAreHJlZjpwdmVzcl9ub2RlX2ZhaWxlZFttYW51YWxseSBtb3ZlZF0gd2hpbGUgaXRzIG9y aWdpbiBub2RlIGlzIG5vdAo+ICthdmFpbGFibGUsIHJlYWQgYWJvdXQgdGhlIGludm9sdmVkCgpU aGUgc2Vjb25kIGNsYXVzZSBkb2Vzbid0IGZpdCB0aGUgZmlyc3Qgb25lICJ3aGlsZSAuLi4sIHJl YWQgYWJvdXQgLi4uIgppcyBub3Qgd2hhdCB5b3UgaW50ZW5kIHRvIHNheSBoZXJlLiBZb3UgY291 bGQgdXNlICJ3aGlsZSAuLi4sIHRoZXJlIGlzCnJpc2sgb2YgZGF0YSBsb3NzLiBTZWUvUmVhZCBh Ym91dCAuLi4iCgo+ICt4cmVmOnB2ZXNyX3Jpc2tfb2ZfZGF0YV9sb3NzW3Jpc2sgb2YgZGF0YSBs b3NzXSBhbmQgaG93IHRvIGF2b2lkIGl0Lgo+ICA9PT09Cj4gIAo+ICsuUmVwbGljYXRpb24gcmVx dWlyZXMg4oCmCgpJTUhPLCB0aGUgZWxsaXBzaXMgaW4gdGhlIHRpdGxlIGxvb2tzIGEgYml0IG9m Zi4gRG8gd2UgdXNlIHRoYXQgYW55d2hlcmUKZWxzZSBpbiB0aGUgZG9jdW1lbnRhdGlvbj8gSSdk IHNpbXBseSB1c2UgIlJlcXVpcmVtZW50cyIgKG9yCiJSZXF1aXJlbWVudHM6IikKCj4gKwo+ICsq IGF0IGxlYXN0IG9uZSBvdGhlciBjbHVzdGVyIG5vZGUgYXMgYSByZXBsaWNhdGlvbiB0YXJnZXQK PiArKiBvbmUgY29tbW9uIGxvY2FsIHN0b3JhZ2UgZW50cnkgaW4gdGhlIGRhdGFjZW50ZXIsIGJl aW5nIGZ1bmN0aW9uYWwKCiJzdG9yYWdlIGVudHJ5IGluIHRoZSBkYXRhY2VudGVyIiBtaWdodCBi ZSBvcGVuIGZvciBpbnRlcnByZXRhdGlvbiwKbWF5YmU6ICJvbmUgY29tbW9uIGxvY2FsIHN0b3Jh Z2UgZGVmaW5pdGlvbiBpbiB0aGUgZGFjYW5ldGVyJ3Mgc3RvcmFnZQpjb25maWd1cmF0aW9uIiA/ Cgo+ICtvbiBib3RoIG5vZGVzCj4gKyogdGhhdCB0aGUgbG9jYWwgc3RvcmFnZSB0eXBlIGlzCj4g K3hyZWY6cHZlc3Jfc3VwcG9ydGVkX3N0b3JhZ2Vbc3VwcG9ydGVkIGJ5IHJlcGxpY2F0aW9uXQo+ ICsqIHRoYXQgdGhlIGd1ZXN0IGhhcyB2b2x1bWVzIHN0b3JlZCBvbiB0aGF0IGxvY2FsIHN0b3Jh Z2UKCklmIGRyb3BwaW5nIHRoZSBlbGxpcHNpcywgYWxzbyBkcm9wIHRoZSAidGhhdCIKCj4gKwo+ ICsuUmVwbGljYXRpb24g4oCmCgpTYW1lIGhlcmUuIEFsdGhvdWdoIGl0J3MgbW9yZSBkaWZmaWN1 bHQgdG8gY29tZSB1cCB3aXRoIGEgZ29vZCB0aXRsZSwKbWF5YmUgIlJlcGxpY2F0aW9uIEZhY3Rz IgoKPiArCj4gKyogYWxsb3dzIGEgZmFzdCBtaWdyYXRpb24gdG8gbm9kZXMgd2hlcmUgdGhlIGd1 ZXN0IGlzIGJlaW5nIHJlcGxpY2F0ZWQKPiArKiBwcm92aWRlcyBndWVzdCB2b2x1bWUgcmVkdW5k YW5jeSBpbiBhIGNsdXN0ZXIgd2hlcmUgdXNpbmcgYSBzaGFyZWQKPiArc3RvcmFnZSB0eXBlIGlz IG5vdCBhbiBvcHRpb24KPiArKiBpcyBjb25maWd1cmVkIGFzIGEgam9iIGZvciBhIGd1ZXN0LCB3 aXRoIG11bHRpcGxlIGpvYnMgZW5hYmxpbmcKPiArbXVsdGlwbGUgcmVwbGljYXRpb24gdGFyZ2V0 cwo+ICsqIGpvYnMgcnVuIG9uZSBhZnRlciB0aGUgb3RoZXIgYXQgdGhlaXIgY29uZmlndXJlZCBp bnRlcnZhbCAoc2hvcnRlc3QKCnMvaW50ZXJ2YWwvc2NoZWR1bGUvCgo+ICtpcyBldmVyeSBtaW51 dGUpCj4gKyogdXNlcyBzbmFwc2hvdHMgdG8gcmVndWxhcmx5IHRyYW5zbWl0IG9ubHkgY2hhbmdl ZCB2b2x1bWUgZGF0YQo+ICsoc28tY2FsbGVkIGRlbHRhcykKPiArKiBuZXR3b3JrIGJhbmR3aWR0 aCBjYW4gYmUgbGltaXRlZCBwZXIgam9iLCBzbW9vdGhpbmcgdGhlIHN0b3JhZ2UgYW5kCj4gK25l dHdvcmsgdXRpbGl6YXRpb24KCk1heWJlICJJTyBwcmVzc3VyZSIgaW5zdGVhZCBvZiAic3RvcmFn ZSB1dGlsaXphdGlvbiIsIGJlY2F1c2UgdGhlIGxhdHRlcgp1c3VhbGx5IHJlZmVycyB0byBzcGFj ZS4KCj4gKyogdGFyZ2V0cyBzdGF5IGJhc2ljYWxseSB0aGUgc2FtZSB3aGVuIG1pZ3JhdGluZyB0 aGUgZ3Vlc3QgdG8gYW5vdGhlcgo+ICtub2RlCgpOb3Qgc3VyZSB3aGF0IHRoaXMgaXMgc3VwcG9z ZWQgdG8gbWVhbi4gSWYgdGhpcyByZWZlcnMgdG8gdGhlCnJlcGxpY2F0aW9uIHRhcmdldHMsIG5v dCBzdXJlIGlmIHRoaXMgaXMgd29ydGggcG9pbnRpbmcgb3V0LCBlc3BlY2lhbGx5CnNpbmNlIHRo ZSBuZXh0IHBvaW50IGFscmVhZHkgbWVudGlvbnMgdGhlIGludGVyZXN0aW5nIGNhc2UuCgo+ICsq IGRpcmVjdGlvbiBvZiBhIGpvYiByZXZlcnNlcyB3aGVuIG1vdmluZyB0aGUgZ3Vlc3QgdG8gaXRz IGNvbmZpZ3VyZWQKPiArcmVwbGljYXRpb24gdGFyZ2V0Cj4gKwo+ICsuRXhhbXBsZToKPiArCj4g K0EgZ3Vlc3QgcnVucyBvbiBub2RlIGBBYCBhbmQgaGFzIHJlcGxpY2F0aW9uIGpvYnMgdG8gbm9k ZSBgQmAgYW5kIGBDYCwKPiArYm90aCB3aXRoIGEgc2V0IGludGVydmFsIG9mIGV2ZXJ5IGZpdmUg bWludXRlcyAoYCovNWApLiBOb3cgd2UgbWlncmF0ZQo+ICt0aGUgZ3Vlc3QgZnJvbSBgQWAgdG8g YEJgLCB3aGljaCBhbHNvIGF1dG9tYXRpY2FsbHkgdXBkYXRlcyB0aGUKPiArcmVwbGljYXRpb24g dGFyZ2V0cyBmb3IgdGhpcyBndWVzdCB0byBiZSBgQWAgYW5kIGBDYC4gTWlncmF0aW9uIHdhcwo+ ICtjb21wbGV0ZWQgZmFzdCwgYXMgb25seSB0aGUgY2hhbmdlZCB2b2x1bWUgZGF0YSBzaW5jZSB0 aGUgbGFzdAo+ICtyZXBsaWNhdGlvbiBydW4gaGFzIGJlZW4gdHJhbnNtaXR0ZWQuCj4gKwo+ICtJ biB0aGUgZXZlbnQgdGhhdCBub2RlIGBCYCBvciBpdHMgbG9jYWwgc3RvcmFnZSBmYWlscywgdGhl IGd1ZXN0IGNhbgo+ICtiZSByZXN0YXJ0ZWQgb24gYEFgIG9yIGBDYCwgd2l0aCB0aGUgcmlzayBv ZiBzb21lIGRhdGEgbG9zcyBhcwo+ICtkZXNjcmliZWQgaW4gdGhpcyBjaGFwdGVyLgoKU2hvdWxk IHJlZmVyZW5jZSB0byB0aGUgcmVsZXZhbnQgc2VjdGlvbi4KCj4gKwo+ICtbW3B2ZXNyX3N1cHBv cnRlZF9zdG9yYWdlXV0KPiAgU3VwcG9ydGVkIFN0b3JhZ2UgVHlwZXMKPiAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KPiAgCj4gQEAgLTc2LDE0NyArOTYsMjg2IEBAIFN1cHBvcnRlZCBTdG9yYWdl IFR5cGVzCj4gIHxaRlMgKGxvY2FsKSAgICB8emZzcG9vbCAgICAgfHllcyAgICAgIHx5ZXMKPiAg fD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ICAKPiAtW1tw dmVzcl9zY2hlZHVsZV90aW1lX2Zvcm1hdF1dCj4gLVNjaGVkdWxlIEZvcm1hdAo+IC0tLS0tLS0t LS0tLS0tLS0KPiAtUmVwbGljYXRpb24gdXNlcyB4cmVmOmNoYXB0ZXJfY2FsZW5kYXJfZXZlbnRz W2NhbGVuZGFyIGV2ZW50c10gZm9yCj4gLWNvbmZpZ3VyaW5nIHRoZSBzY2hlZHVsZS4KPiAtCj4g LUVycm9yIEhhbmRsaW5nCj4gK1tbcHZlc3JfY29uc2lkZXJhdGlvbnNdXQo+ICtDb25zaWRlcmF0 aW9ucwo+ICAtLS0tLS0tLS0tLS0tLQo+ICAKPiAtSWYgYSByZXBsaWNhdGlvbiBqb2IgZW5jb3Vu dGVycyBwcm9ibGVtcywgaXQgaXMgcGxhY2VkIGluIGFuIGVycm9yIHN0YXRlLgo+IC1JbiB0aGlz IHN0YXRlLCB0aGUgY29uZmlndXJlZCByZXBsaWNhdGlvbiBpbnRlcnZhbHMgZ2V0IHN1c3BlbmRl ZAo+IC10ZW1wb3JhcmlseS4gVGhlIGZhaWxlZCByZXBsaWNhdGlvbiBpcyByZXBlYXRlZGx5IHRy aWVkIGFnYWluIGluIGEKPiAtMzAgbWludXRlIGludGVydmFsLgo+IC1PbmNlIHRoaXMgc3VjY2Vl ZHMsIHRoZSBvcmlnaW5hbCBzY2hlZHVsZSBnZXRzIGFjdGl2YXRlZCBhZ2Fpbi4KPiArW1twdmVz cl9yaXNrX29mX2RhdGFfbG9zc11dCj4gK1Jpc2sgb2YgRGF0YSBMb3NzCj4gK35+fn5+fn5+fn5+ fn5+fn5+Cj4gKwo+ICtJZiBhIG5vZGUgc2hvdWxkIHN1ZGRlbmx5IGJlY29tZSB1bmF2YWlsYWJs ZSBmb3IgYSBsb25nZXIgcGVyaW9kIG9mCj4gK3RpbWUsIGl0IG1heSBiZWNvbWUgbmVjY2Vzc2Fy eSB0byBydW4gYSBndWVzdCBvbiBhIHJlcGxpY2F0aW9uIHRhcmdldAo+ICtub2RlIGluc3RlYWQu IFRoZXJlYnkgdGhlIGd1ZXN0IHdpbGwgdXNlIHRoZSBsYXRlc3QgcmVwbGljYXRlZCB2b2x1bWUK PiArZGF0YSBhdmFpbGFibGUgb24gdGhlIGNob3NlbiB0YXJnZXQgbm9kZS4gVGhhdCB2b2x1bWUg c3RhdGUgd2lsbCB0aGVuCj4gK2Fsc28gYmUgcmVwbGljYXRlZCB0byBvdGhlciBub2RlcyB3aXRo IHRoZSBuZXh0IHJlcGxpY2F0aW9uIHJ1bnMsCj4gK3NpbmNlIHRoZSByZXBsaWNhdGlvbiBkaXJl Y3Rpb25zIGFyZSBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZm9yIHJlbGF0ZWQKPiAram9icy4gVGhp cyBhbHNvIG1lYW5zLCB0aGF0IHRoZSBvbmNlIG5ld2VyIHZvbHVtZSBzdGF0ZSBvbiB0aGUgZmFp bGVkCgpOaXQ6IGhvdyBhYm91dCAidm9sdW1lIHN0YXRlIGZyb20gdGhlIHRpbWUgb2YgdGhlIGZh aWx1cmUiIGluc3RlYWQgb2YKIm9uY2UgbmV3ZXIgdm9sdW1lIHN0YXRlIj8KCj4gK25vZGUgd2ls bCBiZSByZW1vdmVkIGFmdGVyIGl0IGJlY29tZXMgYXZhaWxhYmxlIGFnYWluLiBQb3NzaWJsZQoK Im92ZXJ3cml0dGVuIiBpbnN0ZWFkIG9mICJyZW1vdmVkIgoKRHJvcCB0aGUgIlBvc3NpYmxlIi4K Cj4gK3ZvbHVtZXMgb24gYSBzaGFyZWQgc3RvcmFnZSBhcmUgbm90IGFmZmVjdGVkIGJ5IHRoYXQs IHNpbmNlIHRoZXkgYXJlCj4gK25vdCBiZWluZyByZXBsaWNhdGVkLgo+ICsKPiArQSBtb3JlIHJl c2lsaWVudCBzb2x1dGlvbiBtYXkgYmUgdG8gdXNlIGEgc2hhcmVkCj4gK3hyZWY6Y2hhcHRlcl9z dG9yYWdlW3N0b3JhZ2UgdHlwZV0gaW5zdGVhZC4gSWYgdGhhdCBpcyBub3QgYW4gb3B0aW9uLAo+ ICtjb25zaWRlciBzZXR0aW5nIHRoZSByZXBsaWNhdGlvbiBqb2IgaW50ZXJ2YWxzIHNob3J0IGVu b3VnaCBhbmQgYXZvaWQKPiArbW92aW5nIHJlcGxpY2F0aW9uLWNvbmZpZ3VyZWQgZ3Vlc3RzIHdo aWxlIHRoZWlyIG9yaWdpbiBub2RlIGlzIG5vdAoKcy9yZXBsaWNhdGlvbiBjb25maWd1cmVkIGd1 ZXN0cy9yZXBsaWNhdGVkIGd1ZXN0cy8KCj4gK2F2YWlsYWJsZS4gSW5zdGVhZCBvZiBjb25maWd1 cmluZyB0aG9zZSBndWVzdHMgZm9yIGhpZ2ggYXZhaWxhYmlsaXR5LAo+ICt4cmVmOnFtX3N0YXJ0 dXBfYW5kX3NodXRkb3duW3N0YXJ0IGF0IGJvb3RdIGNvdWxkIGJlIGEgc3VmZmljaWVudAo+ICth bHRlcm5hdGl2ZS4KClNpbmNlIHdlJ3JlIGhlcmUgYWxyZWFkeSwgbGV0J3MgYWRkIGEgc2VudGVu Y2UgdGhhdCBuZWl0aGVyIHJlcGxpY2F0aW9uCm5vciBzaGFyZWQgc3RvcmFnZXMgcmVwbGFjZSB0 aGUgbmVlZCBmb3IgdGFraW5nIHJlZ3VsYXIgYmFja3VwcyA6KQoKPiArCj4gK1tbcHZlc3JfcmVw bGljYXRpb25fbmV0d29ya11dCj4gK05ldHdvcmsgZm9yIFJlcGxpY2F0aW9uIFRyYWZmaWMKPiAr fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo+ICsKPiArUmVwbGljYXRpb24gdHJhZmZp YyBpcyByb3V0ZWQgdmlhIHRoZQo+ICt4cmVmOnB2ZWNtX21pZ3JhdGlvbl9uZXR3b3JrW21pZ3Jh dGlvbiBuZXR3b3JrXS4gSWYgaXQgaXMgbm90IHNldCwgdGhlCj4gK21hbmFnZW1lbnQgbmV0d29y ayBpcyB1c2VkIGJ5IGRlZmF1bHQsIHdoaWNoIGNhbiBoYXZlIGEgbmVnYXRpdmUKPiAraW1wYWN0 IG9uIGNvcm9zeW5jIGFuZCB0aGVyZWZvcmUgb24gY2x1c3RlciBhdmFpbGFiaWxpdHkuIFRvIHNw ZWNpZnkKPiArdGhlIG1pZ3JhdGlvbiBuZXR3b3JrLCBuYXZpZ2F0ZSB0bwo+ICtfX0RhdGFjZW50 ZXIgLT4gT3B0aW9ucyAtPiBNaWdyYXRpb24gU2V0dGluZ3NfXywgb3Igc2V0IGl0IHZpYSBDTEkg aW4KPiArdGhlIHhyZWY6ZGF0YWNlbnRlcl9jb25maWd1cmF0aW9uX2ZpbGVbYGRhdGFjZW50ZXIu Y2ZnYF0uCj4gKwo+ICtbW3B2ZXNyX2NsdXN0ZXJfc2l6ZV1dCj4gK0NsdXN0ZXIgU2l6ZQo+ICt+ fn5+fn5+fn5+fn4KPiArCj4gK1dpdGggYSAyLW5vZGUgY2x1c3RlciBpbiBwYXJ0aWN1bGFyLCB0 aGUgZmFpbHVyZSBvZiBvbmUgbm9kZSBjYW4gbGVhdmUKPiArdGhlIG90aGVyIG5vZGUgd2l0aG91 dCBhIHhyZWY6cHZlY21fcXVvcnVtW3F1b3J1bV0uIEluIG9yZGVyIHRvIGtlZXAKPiArdGhlIGNs dXN0ZXIgZnVuY3Rpb25hbCBhdCBhbGwgdGltZXMsIGl0IGlzIHRoZXJlZm9yZSBjcnVjaWFsIHRv Cj4gK3hyZWY6cHZlY21fam9pbl9ub2RlX3RvX2NsdXN0ZXJbZXhwYW5kXSB0byBhIDMtbm9kZSBj bHVzdGVyIGluIGFkdmFuY2UKPiArb3IgdG8gY29uZmlndXJlIGEgeHJlZjpwdmVjbV9leHRlcm5h bF92b3RlW1FEZXZpY2VdIGZvciB0aGUgdGhpcmQKPiArdm90ZS4KPiArCj4gK1tbcHZlc3JfbWFu YWdpbmdfam9ic11dCj4gK01hbmFnaW5nIEpvYnMKPiArLS0tLS0tLS0tLS0tLQo+ICAKPiAtUG9z c2libGUgaXNzdWVzCj4gLX5+fn5+fn5+fn5+fn5+fgo+ICtbdGh1bWJuYWlsPSJzY3JlZW5zaG90 L2d1aS1xZW11LWFkZC1yZXBsaWNhdGlvbi1qb2IucG5nIl0KPiAgCj4gLVNvbWUgb2YgdGhlIG1v c3QgY29tbW9uIGlzc3VlcyBhcmUgaW4gdGhlIGZvbGxvd2luZyBsaXN0LiBEZXBlbmRpbmcgb24g eW91cgo+IC1zZXR1cCB0aGVyZSBtYXkgYmUgYW5vdGhlciBjYXVzZS4KPiArUmVwbGljYXRpb24g am9icyBjYW4gZWFzaWx5IGJlIGNyZWF0ZWQsIG1vZGlmaWVkIGFuZCByZW1vdmVkIHZpYSB3ZWIK CiJ2aWEgdGhlIHdlYiBpbnRlcmZhY2UiCgo+ICtpbnRlcmZhY2UsIG9yIGJ5IHVzaW5nIHRoZSBD TEkgdG9vbCBgcHZlc3JgLgoKInRoZSBwdmVzciBDTEkgdG9vbCIgc291bmRzIG1vcmUgbmF0dXJh bCBJTUhPCgo+ICAKPiAtKiBOZXR3b3JrIGlzIG5vdCB3b3JraW5nLgo+ICtUbyBtYW5hZ2UgYWxs IHJlcGxpY2F0aW9uIGpvYnMgaW4gb25lIHBsYWNlLCBnbyB0bwo+ICtfX0RhdGFjZW50ZXIgLT4g UmVwbGljYXRpb25fXy4gQWRkaXRpb25hbCBmdW5jdGlvbmFsaXRpZXMgYXJlCj4gK2F2YWlsYWJs ZSB1bmRlciBfX05vZGUgLT4gUmVwbGljYXRpb25fXyBhbmQgX19HdWVzdCAtPiBSZXBsaWNhdGlv bl9fLgo+ICtHbyB0aGVyZSB0byB2aWV3IGxvZ3MsIHNjaGVkdWxlIGEgam9iIG9uY2UgZm9yIG5v dywgb3IgYmVuZWZpdCBmcm9tCj4gK3ByZXNldCBmaWVsZHMgd2hlbiBjb25maWd1cmluZyBhIGpv Yi4KPiAgCj4gLSogTm8gZnJlZSBzcGFjZSBsZWZ0IG9uIHRoZSByZXBsaWNhdGlvbiB0YXJnZXQg c3RvcmFnZS4KPiArRW5hYmxlZCByZXBsaWNhdGlvbiBqb2JzIHdpbGwgYXV0b21hdGljYWxseSBy dW4gYXQgdGhlaXIgc2V0IGludGVydmFsLAoKcy9pbnRlcnZhbC9zY2hlZHVsZS8KCj4gK29uZSBh ZnRlciB0aGUgb3RoZXIuIFlvdSBjYW4gY2hhbmdlIHRoZSBkZWZhdWx0IGludGVydmFsIG9mIGV2 ZXJ5IDE1Cj4gK21pbnV0ZXMgKGAqLzE1YCkgYnkgc2VsZWN0aW5nIG9yIGFkYXB0aW5nIGFuIGV4 YW1wbGUgZnJvbSB0aGUKPiArZHJvcC1kb3duIGxpc3QuIFRoZSBzaG9ydGVzdCBpbnRlcnZhbCBp cyBldmVyeSBtaW51dGUgKGAqLzFgKS4gU2VlCj4gK2Fsc28geHJlZjpjaGFwdGVyX2NhbGVuZGFy X2V2ZW50c1tzY2hlZHVsZSBmb3JtYXRdLgo+ICAKPiAtKiBTdG9yYWdlIHdpdGggdGhlIHNhbWUg c3RvcmFnZSBJRCBpcyBub3QgYXZhaWxhYmxlIG9uIHRoZSB0YXJnZXQgbm9kZS4KPiArSWYgcmVw bGljYXRpb24gam9icyByZXN1bHQgaW4gc2lnbmlmaWNhbnQgSS9PIGxvYWQgb24gdGhlIHRhcmdl dCBub2RlLAo+ICt0aGUgbmV0d29yayBiYW5kd2lkdGggb2YgaW5kaXZpZHVhbCBqb2JzIGNhbiBi ZSBsaW1pdGVkIHRvIGtlZXAgdGhlCj4gK2xvYWQgYXQgYW4gYWNjZXB0YWJsZSBsZXZlbC4KPiAg Cj4gLU5PVEU6IFlvdSBjYW4gYWx3YXlzIHVzZSB0aGUgcmVwbGljYXRpb24gbG9nIHRvIGZpbmQg b3V0IHdoYXQgaXMgY2F1c2luZyB0aGUgcHJvYmxlbS4KPiArU2hvcnRseSBhZnRlciBqb2IgY3Jl YXRpb24sIGEgZmlyc3Qgc25hcHNob3QgaXMgdGFrZW4gYW5kIHNlbnQgdG8gdGhlCj4gK3Rhcmdl dCBub2RlLiBTdWJzZXF1ZW50IHNuYXBzaG90cyBhcmUgdGFrZW4gYWNjb3JkaW5nIHRvIHRoZSBz Y2hlZHVsZQo+ICthbmQgb25seSBjb250YWluIG1vZGlmaWVkIHZvbHVtZSBkYXRhLCBhbGxvd2lu ZyBhIHNpZ25pZmljYW50bHkKPiArc2hvcnRlciB0cmFuc2ZlciB0aW1lLgo+ICAKPiAtTWlncmF0 aW5nIGEgZ3Vlc3QgaW4gY2FzZSBvZiBFcnJvcgo+IC1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+Cj4gLS8vIEZJWE1FOiBtb3ZlIHRoaXMgdG8gYmV0dGVyIGZpdHRpbmcgY2hhcHRl ciAoc3lzYWRtaW4gPykgYW5kIG9ubHkgbGluayB0bwo+IC0vLyBpdCBoZXJlCj4gK0lmIHlvdSBy ZW1vdmUgYSByZXBsaWNhdGlvbiBqb2IsIHRoZSBzbmFwc2hvdHMgb24gdGhlIHRhcmdldCBub2Rl IGFyZQo+ICthbHNvIGdldHRpbmcgZGVsZXRlZCBhZ2FpbiBieSBkZWZhdWx0LiBUaGUgcmVtb3Zh bCB0YWtlcyBwbGFjZSBhdCB0aGUKCkknZCBkcm9wIHRoZSAiYWdhaW4iIChtYXliZSBhbHNvIHRo ZSAiZ2V0dGluZyIpCgo+ICtuZXh0IHBvc3NpYmxlIHBvaW50IGluIHRpbWUgYW5kIHJlcXVpcmVz IHRoZSBqb2IgdG8gYmUgZW5hYmxlZC4gSWYgdGhlCj4gK3RhcmdldCBub2RlIGlzIHBlcm1hbmVu dGx5IHVucmVhY2hhYmxlLCB0aGUgY2xlYW51cCBjYW4gYmUgc2tpcHBlZCBieQo+ICtmb3JjaW5n IGEgam9iIGRlbGV0aW9uIHZpYSBDTEkuCj4gIAo+IC1JbiB0aGUgY2FzZSBvZiBhIGdyYXZlIGVy cm9yLCBhIHZpcnR1YWwgZ3Vlc3QgbWF5IGdldCBzdHVjayBvbiBhIGZhaWxlZAo+IC1ub2RlLiBZ b3UgdGhlbiBuZWVkIHRvIG1vdmUgaXQgbWFudWFsbHkgdG8gYSB3b3JraW5nIG5vZGUgYWdhaW4u Cj4gK1doZW4gbm90IHVzaW5nIHRoZSB3ZWIgaW50ZXJmYWNlLCB0aGUgY2x1c3Rlci13aWRlIHVu aXF1ZSByZXBsaWNhdGlvbgoKSSdkIHR1cm4gdGhpcyBpbnRvIGEgcG9zaXRpdmU6CiJGb3IgbWFu YWdpbmcgam9icyB2aWEgQ0xJIG9yIEFQSSwgdGhlIGNsdXN0ZXItd2lkZSAuLi4iCgo+ICtqb2Ig SUQgaGFzIHRvIGJlIHNwZWNpZmllZC4gRm9yIGV4YW1wbGUsIGAxMDAtMGAsIHdoaWNoIGlzIGNv bXBvc2VkIG9mCj4gK3RoZSBndWVzdCBJRCwgYSBoeXBoZW4gYW5kIGFuIGFyYml0cmFyeSBqb2Ig bnVtYmVyLgo+ICAKPiAtRXhhbXBsZQo+IC1+fn5+fn5+Cj4gK1tbcHZlc3JfY2xpX2V4YW1wbGVz XV0KPiArQ0xJIEV4YW1wbGVzCj4gKy0tLS0tLS0tLS0tLQo+ICAKPiAtTGV0J3MgYXNzdW1lIHRo YXQgeW91IGhhdmUgdHdvIGd1ZXN0cyAoVk0gMTAwIGFuZCBDVCAyMDApIHJ1bm5pbmcgb24gbm9k ZSBBCj4gLWFuZCByZXBsaWNhdGUgdG8gbm9kZSBCLgo+IC1Ob2RlIEEgZmFpbGVkIGFuZCBjYW4g bm90IGdldCBiYWNrIG9ubGluZS4gTm93IHlvdSBoYXZlIHRvIG1pZ3JhdGUgdGhlIGd1ZXN0Cj4g LXRvIE5vZGUgQiBtYW51YWxseS4KPiArQ3JlYXRlIGEgcmVwbGljYXRpb24gam9iIGZvciBndWVz dCBgMTAwYCBhbmQgZ2l2ZSBpdCB0aGUgam9iIG51bWJlcgo+ICtgMGAuIFJlcGxpY2F0ZSB0byBu b2RlIGBwdmUyYCBldmVyeSBmaXZlIG1pbnV0ZXMgKGAqLzVgKSwgYXQgYSBtYXhpbXVtCj4gK25l dHdvcmsgYmFuZHdpdGRoIG9mIGAxMGAgTUJwcyAobWVnYWJ5dGVzIHBlciBzZWNvbmQpLgo+ICAK PiAtLSBjb25uZWN0IHRvIG5vZGUgQiBvdmVyIHNzaCBvciBvcGVuIGl0cyBzaGVsbCB2aWEgdGhl IHdlYiBVSQo+ICstLS0tCj4gKyMgcHZlc3IgY3JlYXRlLWxvY2FsLWpvYiAxMDAtMCBwdmUyIC0t c2NoZWR1bGUgIiovNSIgLS1yYXRlIDEwCj4gKy0tLS0KPiArCj4gK0xpc3QgcmVwbGljYXRpb24g am9icyBmcm9tIGFsbCBub2Rlcy4KPiAgCj4gLS0gY2hlY2sgaWYgdGhhdCB0aGUgY2x1c3RlciBp cyBxdW9yYXRlCj4gLSsKPiAgLS0tLQo+IC0jIHB2ZWNtIHN0YXR1cwo+ICsjIHB2ZXNyIGxpc3QK PiAgLS0tLQo+ICAKPiAtLSBJZiB5b3UgaGF2ZSBubyBxdW9ydW0sIHdlIHN0cm9uZ2x5IGFkdmlz ZSB0byBmaXggdGhpcyBmaXJzdCBhbmQgbWFrZSB0aGUKPiAtICBub2RlIG9wZXJhYmxlIGFnYWlu LiBPbmx5IGlmIHRoaXMgaXMgbm90IHBvc3NpYmxlIGF0IHRoZSBtb21lbnQsIHlvdSBtYXkKPiAt ICB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGVuZm9yY2UgcXVvcnVtIG9uIHRoZSBjdXJy ZW50IG5vZGU6Cj4gLSsKPiArTGlzdCB0aGUgam9iIHN0YXR1c2VzIGZyb20gYWxsIGxvY2FsIGd1 ZXN0cywgb3Igb25seSBmcm9tIGEgc3BlY2lmaWMKPiArbG9jYWwgZ3Vlc3QuCj4gKwo+ICAtLS0t Cj4gLSMgcHZlY20gZXhwZWN0ZWQgMQo+ICsjIHB2ZXNyIHN0YXR1cyBbLS1ndWVzdCAxMDBdCj4g IC0tLS0KPiAgCj4gLVdBUk5JTkc6IEF2b2lkIGNoYW5nZXMgd2hpY2ggYWZmZWN0IHRoZSBjbHVz dGVyIGlmIGBleHBlY3RlZCB2b3Rlc2AgYXJlIHNldAo+IC0oZm9yIGV4YW1wbGUgYWRkaW5nL3Jl bW92aW5nIG5vZGVzLCBzdG9yYWdlcywgdmlydHVhbCBndWVzdHMpIGF0IGFsbCBjb3N0cy4KPiAt T25seSB1c2UgaXQgdG8gZ2V0IHZpdGFsIGd1ZXN0cyB1cCBhbmQgcnVubmluZyBhZ2FpbiBvciB0 byByZXNvbHZlIHRoZSBxdW9ydW0KPiAtaXNzdWUgaXRzZWxmLgo+ICtSZWFkIHRoZSBjb25maWd1 cmF0aW9uIG9mIGpvYiBgMTAwLTBgLgoKcy9SZWFkL1Nob3cvCgo+ICAKPiAtLSBtb3ZlIGJvdGgg Z3Vlc3QgY29uZmlndXJhdGlvbiBmaWxlcyBmb3JtIHRoZSBvcmlnaW4gbm9kZSBBIHRvIG5vZGUg QjoKPiAtKwo+ICAtLS0tCj4gLSMgbXYgL2V0Yy9wdmUvbm9kZXMvQS9xZW11LXNlcnZlci8xMDAu Y29uZiAvZXRjL3B2ZS9ub2Rlcy9CL3FlbXUtc2VydmVyLzEwMC5jb25mCj4gLSMgbXYgL2V0Yy9w dmUvbm9kZXMvQS9seGMvMjAwLmNvbmYgL2V0Yy9wdmUvbm9kZXMvQi9seGMvMjAwLmNvbmYKPiAr IyBwdmVzciByZWFkIDEwMC0wCj4gIC0tLS0KPiAgCj4gLS0gTm93IHlvdSBjYW4gc3RhcnQgdGhl IGd1ZXN0cyBhZ2FpbjoKPiAtKwo+ICtVcGRhdGUgdGhlIGNvbmZpZ3VyYXRpb24gb2Ygam9iIGAx MDAtMGAsIGZvciBleGFtcGxlLCB0byBjaGFuZ2UgdGhlCj4gK3NjaGVkdWxlIGludGVydmFsIHRv IGV2ZXJ5IGZ1bGwgaG91ciAoYGhvdXJseWApLgo+ICsKPiAgLS0tLQo+IC0jIHFtIHN0YXJ0IDEw MAo+IC0jIHBjdCBzdGFydCAyMDAKPiArIyBwdmVzciB1cGRhdGUgMTAwLTAgLS1zY2hlZHVsZSAi KjowMCIKPiAgLS0tLQo+ICAKPiAtUmVtZW1iZXIgdG8gcmVwbGFjZSB0aGUgVk1JRHMgYW5kIG5v ZGUgbmFtZXMgd2l0aCB5b3VyIHJlc3BlY3RpdmUgdmFsdWVzLgo+ICtUbyBydW4gdGhlIGpvYiBg MTAwLTBgIG9uY2Ugc29vbiwgc2NoZWR1bGUgaXQgcmVnYXJkbGVzcyBvZiB0aGUKPiArY29uZmln dXJlZCBpbnRlcnZhbC4KCnMvaW50ZXJ2YWwvc2NoZWR1bGUvCgo+ICAKPiAtTWFuYWdpbmcgSm9i cwo+IC0tLS0tLS0tLS0tLS0tCj4gKy0tLS0KPiArIyBwdmVzciBzY2hlZHVsZS1ub3cgMTAwLTAK PiArLS0tLQo+ICAKPiAtW3RodW1ibmFpbD0ic2NyZWVuc2hvdC9ndWktcWVtdS1hZGQtcmVwbGlj YXRpb24tam9iLnBuZyJdCj4gK0Rpc2FibGUgKG9yIGBlbmFibGVgKSB0aGUgam9iIGAxMDAtMGAu Cj4gKwo+ICstLS0tCj4gKyMgcHZlc3IgZGlzYWJsZSAxMDAtMAoKSSdkIGxpc3QgdGhlIGVuYWJs ZSBjb21tYW5kIGhlcmUgdG9vLCBmb3IgY29tcGxldGVuZXNzIChhbmQgdXNlIHRoZQpwbGFpbiB3 b3JkICJlbmFibGUiIHdpdGhvdXQgYmFja3RpY2tzIGFib3ZlIHRoZW4pLgoKPiArLS0tLQo+ICsK PiArRGVsZXRlIHRoZSBqb2IgYDEwMC0wYC4gSWYgdGhlIHRhcmdldCBub2RlIGlzIHBlcm1hbmVu dGx5IHVucmVhY2hhYmxlLAo+ICtgLS1mb3JjZWAgY2FuIGJlIHVzZWQgdG8gc2tpcCB0aGUgZmFp bGluZyBjbGVhbnVwLgo+ICAKPiAtWW91IGNhbiB1c2UgdGhlIHdlYiBHVUkgdG8gY3JlYXRlLCBt b2RpZnksIGFuZCByZW1vdmUgcmVwbGljYXRpb24gam9icwo+IC1lYXNpbHkuIEFkZGl0aW9uYWxs eSwgdGhlIGNvbW1hbmQtbGluZSBpbnRlcmZhY2UgKENMSSkgdG9vbCBgcHZlc3JgIGNhbiBiZQo+ IC11c2VkIHRvIGRvIHRoaXMuCj4gKy0tLS0KPiArIyBwdmVzciBkZWxldGUgMTAwLTAgWy0tZm9y Y2VdCj4gKy0tLS0KPiAgCj4gLVlvdSBjYW4gZmluZCB0aGUgcmVwbGljYXRpb24gcGFuZWwgb24g YWxsIGxldmVscyAoZGF0YWNlbnRlciwgbm9kZSwgdmlydHVhbAo+IC1ndWVzdCkgaW4gdGhlIHdl YiBHVUkuIFRoZXkgZGlmZmVyIGluIHdoaWNoIGpvYnMgZ2V0IHNob3duOgo+IC1hbGwsIG5vZGUt IG9yIGd1ZXN0LXNwZWNpZmljIGpvYnMuCj4gK1tbcHZlc3JfZXJyb3JfaGFuZGxpbmddXQo+ICtF cnJvciBIYW5kbGluZwo+ICstLS0tLS0tLS0tLS0tLQo+ICAKPiAtV2hlbiBhZGRpbmcgYSBuZXcg am9iLCB5b3UgbmVlZCB0byBzcGVjaWZ5IHRoZSBndWVzdCBpZiBub3QgYWxyZWFkeSBzZWxlY3Rl ZAo+IC1hcyB3ZWxsIGFzIHRoZSB0YXJnZXQgbm9kZS4gVGhlIHJlcGxpY2F0aW9uCj4gLXhyZWY6 cHZlc3Jfc2NoZWR1bGVfdGltZV9mb3JtYXRbc2NoZWR1bGVdIGNhbiBiZSBzZXQgaWYgdGhlIGRl ZmF1bHQgb2YgYGFsbAo+IC0xNSBtaW51dGVzYCBpcyBub3QgZGVzaXJlZC4gWW91IG1heSBpbXBv c2UgYSByYXRlLWxpbWl0IG9uIGEgcmVwbGljYXRpb24KPiAtam9iLiBUaGUgcmF0ZSBsaW1pdCBj YW4gaGVscCB0byBrZWVwIHRoZSBsb2FkIG9uIHRoZSBzdG9yYWdlIGFjY2VwdGFibGUuCj4gK1tb cHZlc3Jfam9iX2ZhaWxlZF1dCj4gK0pvYiBGYWlsZWQKPiArfn5+fn5+fn5+fgo+ICAKPiAtQSBy ZXBsaWNhdGlvbiBqb2IgaXMgaWRlbnRpZmllZCBieSBhIGNsdXN0ZXItd2lkZSB1bmlxdWUgSUQu IFRoaXMgSUQgaXMKPiAtY29tcG9zZWQgb2YgdGhlIFZNSUQgaW4gYWRkaXRpb24gdG8gYSBqb2Ig bnVtYmVyLgo+IC1UaGlzIElEIG11c3Qgb25seSBiZSBzcGVjaWZpZWQgbWFudWFsbHkgaWYgdGhl IENMSSB0b29sIGlzIHVzZWQuCj4gK0luIHRoZSBldmVudCB0aGF0IGEgcmVwbGljYXRpb24gam9i IGZhaWxzLCBpdCBpcyB0ZW1wb3JhcmlseSBwbGFjZWQgaW4KPiArYW4gZXJyb3Igc3RhdGUgYW5k IGEgbm90aWZpY2F0aW9uIGlzIHNlbnQuIEEgcmV0cnkgaXMgc2NoZWR1bGVkIGZvciA1Cj4gK21p bnV0ZXMgbGF0ZXIsIGZvbGxvd2VkIGJ5IGFub3RoZXIgMTAsIDE1IGFuZCBmaW5hbGx5IGV2ZXJ5 IDMwCj4gK21pbnV0ZXMuIEFzIHNvb24gYXMgdGhlIGpvYiBoYXMgcnVuIHN1Y2Nlc3NmdWxseSBh Z2FpbiwgdGhlIGVycm9yCj4gK3N0YXRlIGlzIGxlZnQgYW5kIHRoZSBjb25maWd1cmVkIGludGVy dmFsIGlzIHJlc3VtZWQuCgpzL2xlZnQvY2xlYXJlZC8Kcy9pbnRlcnZhbC9zY2hlZHVsZS8KCj4g IAo+IC1OZXR3b3JrCj4gLS0tLS0tLS0KPiArLlRyb3VibGVzaG9vdGluZyBKb2IgRmFpbHVyZXMK PiAgCj4gLVJlcGxpY2F0aW9uIHRyYWZmaWMgd2lsbCB1c2UgdGhlIHNhbWUgbmV0d29yayBhcyB0 aGUgbGl2ZSBndWVzdCBtaWdyYXRpb24uIEJ5Cj4gLWRlZmF1bHQsIHRoaXMgaXMgdGhlIG1hbmFn ZW1lbnQgbmV0d29yay4gVG8gdXNlIGEgZGlmZmVyZW50IG5ldHdvcmsgZm9yIHRoZQo+IC1taWdy YXRpb24sIGNvbmZpZ3VyZSB0aGUgYE1pZ3JhdGlvbiBOZXR3b3JrYCBpbiB0aGUgd2ViIGludGVy ZmFjZSB1bmRlcgo+IC1gRGF0YWNlbnRlciAtPiBPcHRpb25zIC0+IE1pZ3JhdGlvbiBTZXR0aW5n c2Agb3IgaW4gdGhlIGBkYXRhY2VudGVyLmNmZ2AuIFNlZQo+IC14cmVmOnB2ZWNtX21pZ3JhdGlv bl9uZXR3b3JrW01pZ3JhdGlvbiBOZXR3b3JrXSBmb3IgbW9yZSBkZXRhaWxzLgo+ICtUbyBmaW5k IG91dCB3aHkgYSBqb2IgZXhhY3RseSBmYWlsZWQsIHJlYWQgdGhlIGxvZyBhdmFpbGFibGUgdW5k ZXIKPiArX19Ob2RlIC0+IFJlcGxpY2F0aW9uX18uCj4gIAo+IC1Db21tYW5kLWxpbmUgSW50ZXJm YWNlIEV4YW1wbGVzCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArQ29tbW9u IGNhdXNlcyBhcmU6Cj4gIAo+IC1DcmVhdGUgYSByZXBsaWNhdGlvbiBqb2Igd2hpY2ggcnVucyBl dmVyeSA1IG1pbnV0ZXMgd2l0aCBhIGxpbWl0ZWQgYmFuZHdpZHRoCj4gLW9mIDEwIE1icHMgKG1l Z2FieXRlcyBwZXIgc2Vjb25kKSBmb3IgdGhlIGd1ZXN0IHdpdGggSUQgMTAwLgo+ICsqIFRoZSBu ZXR3b3JrIGlzIG5vdCB3b3JraW5nIHByb3Blcmx5Lgo+ICsqIFRoZSBzdG9yYWdlIChJRCkgaW4g dXNlIGhhcyBzZXQgYW4gYXZhaWxhYmlsaXR5IHJlc3RyaWN0aW9uLAo+ICtleGNsdWRpbmcgdGhl IHRhcmdldCBub2RlLgo+ICsqIFRoZSBzdG9yYWdlIGlzIG5vdCBzZXQgdXAgY29ycmVjdGx5IG9u IHRoZSB0YXJnZXQgbm9kZSAoZS5nLgo+ICtkaWZmZXJlbnQgcG9vbCBuYW1lKS4KPiArKiBUaGUg c3RvcmFnZSBvbiB0aGUgdGFyZ2V0IG5vZGUgaGFzIG5vIGZyZWUgc3BhY2UgbGVmdC4KPiArCj4g K1tbcHZlc3Jfbm9kZV9mYWlsZWRdXQo+ICtPcmlnaW4gTm9kZSBGYWlsZWQKPiArfn5+fn5+fn5+ fn5+fn5+fn5+Cj4gKy8vIEZJWE1FOiBtb3ZlIHRoaXMgdG8gYmV0dGVyIGZpdHRpbmcgY2hhcHRl ciAoc3lzYWRtaW4gPykgYW5kIG9ubHkgbGluayB0bwo+ICsvLyBpdCBoZXJlCj4gIAo+ICtJbiB0 aGUgZXZlbnQgdGhhdCBhIG5vZGUgcnVubmluZyByZXBsaWNhdGVkIGd1ZXN0cyBmYWlscyBzdWRk ZW5seSBhbmQKPiArZm9yIHRvbyBsb25nLCBpdCBtYXkgYmVjb21lIG5lY2Vzc2FyeSB0byByZXN0 YXJ0IHRoZXNlIGd1ZXN0cyBvbiB0aGVpcgo+ICtyZXBsaWNhdGVkIG5vZGVzLiBJZiByZXBsaWNh dGVkIGd1ZXN0cyBhcmUgY29uZmlndXJlZCBmb3IgaGlnaAoKIm9uIHRoZWlyIHJlcGxpY2F0ZWQg bm9kZXMiIC0+ICJvbiBvbmUgb2YgdGhlaXIgcmVwbGljYXRpb24gdGFyZ2V0cyIKCj4gK2F2YWls YWJpbGl0eSAoSEEpLCBiZXNpZGUgaXRzIGludm9sdmVkCj4gK3hyZWY6cHZlc3Jfcmlza19vZl9k YXRhX2xvc3NbcmlzayBvZiBkYXRhIGxvc3NdLCBqdXN0IHdhaXQgdW50aWwgdGhlc2UKPiArZ3Vl c3RzIGFyZSByZWNvdmVyZWQgb24gb3RoZXIgbm9kZXMuIFJlcGxpY2F0ZWQgZ3Vlc3RzIHdoaWNo IGFyZSBub3QKPiArY29uZmlndXJlZCBmb3IgSEEgY2FuIGJlIG1vdmVkIG1hbnVhbGx5IGFzIGV4 cGxhaW5lZCBiZWxvdywgaW5jbHVkaW5nCj4gK3RoZSBzYW1lIHJpc2sgb2YgZGF0YSBsb3NzLgo+ ICsKPiArW1twdmVzcl9maW5kX2xhdGVzdF9yZXBsaWNhc11dCj4gKy5TdGVwIDE6IE9wdGlvbmFs bHkgRGVjaWRlIG9uIGEgU3BlY2lmaWMgUmVwbGljYXRpb24gVGFyZ2V0IE5vZGUKPiArCj4gK1Rv IG1pbmltaXplIHRoZSBkYXRhIGxvc3Mgb2YgYW4gaW1wb3J0YW50IGd1ZXN0LCB5b3UgY2FuIG9w dGlvbmFsbHkKPiArZmluZCB0aGUgdGFyZ2V0IG5vZGUgb24gd2hpY2ggdGhlIG1vc3QgcmVjZW50 IHN1Y2Nlc3NmdWwgcmVwbGljYXRpb24KPiArdG9vayBwbGFjZS4gSWYgdGhlIG9yaWdpbiBub2Rl IGlzIGhlYWx0aHkgZW5vdWdoIHRvIGFjY2VzcyBpdHMgd2ViCj4gK2ludGVyZmFjZSwgZ28gdG8g X19Ob2RlIC0+IFJlcGxpY2F0aW9uX18gYW5kIHNlZSB0aGUgJ0xhc3QgU3luYycKPiArY29sdW1u LiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGNhcnJ5IG91dCB0aGUgZm9sbG93aW5nIHN0ZXBzLgo+ ICsKPiArLiBUbyBsaXN0IGFsbCB0YXJnZXQgbm9kZXMgb2YgYW4gaW1wb3J0YW50IGd1ZXN0LCBl eGVtcGxhcnkgd2l0aCB0aGUKPiArSUQgYDEwMDBgLCBnbyB0byB0aGUgQ0xJIG9mIGFueSBub2Rl IGFuZCBydW46Cj4gKysKPiAgLS0tLQo+IC0jIHB2ZXNyIGNyZWF0ZS1sb2NhbC1qb2IgMTAwLTAg cHZlMSAtLXNjaGVkdWxlICIqLzUiIC0tcmF0ZSAxMAo+ICsjIHB2ZXNyIGxpc3QgfCBncmVwIC1l IEpvYiAtZSBeMTAwMAoKVGhlIHJlZ2V4IHNob3VsZCBiZSB0ZXJtaW5hdGVkIHRvIG5vdCBpbmNs dWRlIG1hdGNoZXMgZm9yIDEwMDB4eXoKCj4gIC0tLS0KPiAgCj4gLURpc2FibGUgYW4gYWN0aXZl IGpvYiB3aXRoIElEIGAxMDAtMGAuCj4gKy4gT3BlbiB0aGUgQ0xJIG9uIGFsbCBsaXN0ZWQgdGFy Z2V0IG5vZGVzLgoKSXQncyBtb3JlIGNvbnZlbmllbnQgdG8gdXNlIFNTSAoKPiAgCj4gKy4gQWRh cHQgdGhlIGZvbGxvd2luZyBjb21tYW5kIHdpdGggeW91ciBWTUlEIHRvIGZpbmQgdGhlIG1vc3Qg cmVjZW50Cj4gK3NuYXBzaG90cyBhbW9uZyB5b3VyIHRhcmdldCBub2Rlcy4gSWYgc25hcHNob3Rz IHdlcmUgdGFrZW4gaW4gdGhlIHNhbWUKPiArbWludXRlLCBsb29rIGZvciB0aGUgaGlnaGVzdCBu dW1iZXIgYXQgdGhlIGVuZCBvZiB0aGUgbmFtZSwgd2hpY2ggaXMKPiArdGhlIFVuaXggdGltZXN0 YW1wLgo+ICsrCj4gIC0tLS0KPiAtIyBwdmVzciBkaXNhYmxlIDEwMC0wCj4gKyMgemZzIGxpc3Qg LXQgc25hcHNob3QgLW8gbmFtZSxjcmVhdGlvbiB8IGdyZXAgLWUgLTEwMDAtZGlzawoKSWYgd2Ug cHJvdmlkZSBzdWNoIGNvbW1hbmRzLCB0aGVuIHBsZWFzZSBsZXQgdGhlIG1hY2hpbmUgZG8gdGhl IHNvcnRpbmcuCllvdSBjYW4gdXNlIC1TLy1zIGZvciB0aGUgbGlzdCBjb21tbWFuZC4gQW5kIHRy dW5jYXRlIHRoZSBvdXRwdXQgd2l0aApoZWFkIHRvIG5vdCBzaG93IGFsbCBsaW5lcy4KCj4gIC0t LS0KPiAgCj4gLUVuYWJsZSBhIGRlYWN0aXZhdGVkIGpvYiB3aXRoIElEIGAxMDAtMGAuCj4gK1tb cHZlc3JfdmVyaWZ5X2NsdXN0ZXJfaGVhbHRoXV0KPiArLlN0ZXAgMjogVmVyaWZ5IENsdXN0ZXIg SGVhbHRoCj4gKwo+ICtHbyB0byB0aGUgQ0xJIG9mIGFueSByZXBsaWNhdGlvbiB0YXJnZXQgbm9k ZSBhbmQgcnVuIGBwdmVjbSBzdGF0dXNgLgo+ICtJZiB0aGUgb3V0cHV0IGNvbnRhaW5zIGBRdW9y YXRlOiBZZXNgLCB0aGVuIHRoZSBjbHVzdGVyL2Nvcm9zeW5jIGlzCj4gK2hlYWx0aHkgZW5vdWdo IGFuZCB5b3UgY2FuIHByb2NlZWQgd2l0aAo+ICt4cmVmOnB2ZXNyX21vdmVfYV9ndWVzdFtTdGVw IDM6IE1vdmUgYSBndWVzdF0uCj4gIAo+ICtXQVJOSU5HOiBJZiB0aGUgY2x1c3RlciBpcyBub3Qg cXVvcmF0ZSBhbmQgY29uc2lzdHMgb2YgMyBvciBtb3JlCj4gK25vZGVzL3ZvdGVzLCB3ZSBzdHJv bmdseSByZWNvbW1lbmQgdG8gc29sdmUgdGhlIHVuZGVybHlpbmcgcHJvYmxlbQo+ICtmaXJzdCBz byB0aGF0IGF0IGxlYXN0IHRoZSBtYWpvcml0eSBvZiBub2Rlcy92b3RlcyBhcmUgYXZhaWxhYmxl Cj4gK2FnYWluLgo+ICsKPiArSWYgdGhlIGNsdXN0ZXIgaXMgbm90IHF1b3JhdGUgYW5kIGNvbnNp c3RzIG9mIG9ubHkgMiBub2RlcyB3aXRob3V0IGFuCj4gK2FkZGl0aW9uYWwgeHJlZjpwdmVjbV9l eHRlcm5hbF92b3RlW1FEZXZpY2VdLCB5b3UgbWF5IHdhbnQgdG8gcHJvY2VlZAo+ICt3aXRoIHRo ZSBmb2xsb3dpbmcgc3RlcHMgdG8gdGVtcG9yYXJ5IG1ha2UgdGhlIGNsdXN0ZXIgZnVuY3Rpb25h bAo+ICthZ2Fpbi4KCk5vdCBzdXJlIGlmIHdlIGV2ZW4gd2FudCB0byBrZWVwIHN1Z2dlc3Rpbmcg dGhpcy4gQW5kIGlmIHdlIHJlYWxseSBkbywKSSdkIG5vdCBzYXkgInlvdSBtYXkgd2FudCB0byBw cm9jZWVkIiwgYnV0IHJpZ2h0IGF3YXkgY2xhcmlmeSB0aGF0IGl0J3MKbm90IHJlY29tbWVuZGVk IGFuZCBqdXN0IGFuIHV0bW9zdCBlc2NhcGUgaGF0Y2guCgo+ICsKPiArLiBDaGVjayB3aGV0aGVy IHRoZSBleHBlY3RlZCB2b3RlcyBhcmUgYDJgLgo+ICsrCj4gIC0tLS0KPiAtIyBwdmVzciBlbmFi bGUgMTAwLTAKPiArIyBwdmVjbSBzdGF0dXMgfCBncmVwIHZvdGVzCj4gIC0tLS0KPiAgCj4gLUNo YW5nZSB0aGUgc2NoZWR1bGUgaW50ZXJ2YWwgb2YgdGhlIGpvYiB3aXRoIElEIGAxMDAtMGAgdG8g b25jZSBwZXIgaG91ci4KPiArLiBOb3cgeW91IGNhbiBlbmZvcmNlIHF1b3J1bSBvbiB0aGUgb25l IHJlbWFpbmluZyBub2RlIGJ5IHJ1bm5pbmc6Cj4gKysKPiArLS0tLQo+ICsjIHB2ZWNtIGV4cGVj dGVkIDEKPiArLS0tLQo+ICsrCj4gK1dBUk5JTkc6IEF2b2lkIG1ha2luZyBjaGFuZ2VzIHRvIHRo ZSBjbHVzdGVyIGluIHRoaXMgc3RhdGUgYXQgYWxsCj4gK2Nvc3RzLCBmb3IgZXhhbXBsZSBhZGRp bmcgb3IgcmVtb3Zpbmcgbm9kZXMsIHN0b3JhZ2VzIG9yIGd1ZXN0cy4gRGVsYXkKPiAraXQgdW50 aWwgdGhlIHNlY29uZCBub2RlIGlzIGF2YWlsYWJsZSBhZ2FpbiBhbmQgZXhwZWN0ZWQgdm90ZXMg aGF2ZQo+ICtiZWVuIGF1dG9tYXRpY2FsbHkgcmVzdG9yZWQgdG8gYDJgLgo+ICsKPiArW1twdmVz cl9tb3ZlX2FfZ3Vlc3RdXQo+ICsuU3RlcCAzOiBNb3ZlIGEgR3Vlc3QKPiAgCj4gKy4gVXNlIFNT SCB0byBjb25uZWN0IHRvIGFueSBub2RlIHRoYXQgaXMgcGFydCBvZiB0aGUgY2x1c3RlciBtYWpv cml0eS4KCiJxdW9yYXRlIG1ham9yaXR5IgoKPiArQWx0ZXJuYXRpdmVseSwgZ28gdG8gdGhlIHdl YiBpbnRlcmZhY2UgYW5kIG9wZW4gdGhlIHNoZWxsIG9mIHN1Y2ggbm9kZQo+ICtpbiBhIHNlcGFy YXRlIHdpbmRvdyBvciBicm93c2VyIHRhYi4KPiArKwo+ICsuIFRoZSBmb2xsb3dpbmcgZXhhbXBs ZSBjb21tYW5kcyBtb3ZlIGEgVk1JRCBgMTAwMGAgYW5kIENUSUQgYDIwMDBgCj4gK2Zyb20gdGhl IG5vZGUgbmFtZWQgYHB2ZS1mYWlsZWRgIHRvIGEgc3RpbGwgYXZhaWxhYmxlIHJlcGxpY2F0aW9u Cj4gK3RhcmdldCBub2RlIG5hbWVkIGBwdmUtcmVwbGljYXRlZGAuCj4gKysKPiArLS0tLQo+ICsj IGNkIC9ldGMvcHZlL25vZGVzLwo+ICsjIG12IHB2ZS1mYWlsZWQvcWVtdS1zZXJ2ZXIvMTAwMC5j b25mIHB2ZS1yZXBsaWNhdGVkL3FlbXUtc2VydmVyLwo+ICsjIG12IHB2ZS1mYWlsZWQvbHhjLzIw MDAuY29uZiBwdmUtcmVwbGljYXRlZC9seGMvCj4gKy0tLS0KPiArKwo+ICsuIE5vdyB5b3UgY2Fu IHN0YXJ0IHRob3NlIGd1ZXN0cyBhZ2FpbjoKPiArKwo+ICAtLS0tCj4gLSMgcHZlc3IgdXBkYXRl IDEwMC0wIC0tc2NoZWR1bGUgJyovMDAnCj4gKyMgcW0gc3RhcnQgMTAwMAo+ICsjIHBjdCBzdGFy dCAyMDAwCj4gIC0tLS0KPiArKwo+ICsuIElmIGl0IHdhcyBuZWNlc3NhcnkgdG8gZW5mb3JjZSB0 aGUgcXVvcnVtLCBhcyBkZXNjcmliZWQgd2hlbgo+ICt2ZXJpZnlpbmcgdGhlIGNsdXN0ZXIgaGVh bHRoLCBkbyBub3QgZm9yZ2V0IHRoZSB3YXJuaW5nIGF0IHRoZSBlbmQKPiArYWJvdXQgYXZvaWRp bmcgY2hhbmdlcyB0byB0aGUgY2x1c3Rlci4KPiAgCj4gIGlmZGVmOjptYW52b2xudW1bXQo+ICBp bmNsdWRlOjpwdmUtY29weXJpZ2h0LmFkb2NbXQoKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFpbGluZyBsaXN0CnB2ZS1kZXZlbEBs aXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1h bi9saXN0aW5mby9wdmUtZGV2ZWwK