From: Andreas Gruenbacher Subject: Re: [nfsv4] Re: NFSv4 ACL and POSIX interaction / mask, draft-ietf-nfsv4-acls-00 not ready Date: Sun, 9 Jul 2006 18:22:43 +0200 Message-ID: <200607091822.44656.agruen@suse.de> References: <200607032310.15252.agruen@suse.de> <200607071355.30624.agruen@suse.de> Reply-To: nfsv4@ietf.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Cc: Sam Falkner , nfs@lists.sourceforge.net, Spencer Shepler , Brian Pawlowski , Lisa Week Return-path: Received: from sc8-sf-mx2-b.sourceforge.net ([10.3.1.92] helo=mail.sourceforge.net) by sc8-sf-list2-new.sourceforge.net with esmtp (Exim 4.43) id 1Fzc66-0004V1-Dr for nfs@lists.sourceforge.net; Sun, 09 Jul 2006 09:25:30 -0700 Received: from mail.suse.de ([195.135.220.2] helo=mx1.suse.de) by mail.sourceforge.net with esmtps (TLSv1:AES256-SHA:256) (Exim 4.44) id 1Fzc63-0001vO-GR for nfs@lists.sourceforge.net; Sun, 09 Jul 2006 09:25:30 -0700 To: nfsv4@ietf.org In-Reply-To: List-Id: "Discussion of NFS under Linux development, interoperability, and testing." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: nfs-bounces@lists.sourceforge.net Errors-To: nfs-bounces@lists.sourceforge.net T24gU2F0dXJkYXksIDguIEp1bHkgMjAwNiAwNTo0NSwgU2FtIEZhbGtuZXIgd3JvdGU6Cj4gT24g SnVsIDcsIDIwMDYsIGF0IDU6NTUgQU0sIEFuZHJlYXMgR3J1ZW5iYWNoZXIgd3JvdGU6Cj4gPiBP biBNb25kYXksIDMuIEp1bHkgMjAwNiAyMzoxMCwgQW5kcmVhcyBHcnVlbmJhY2hlciB3cm90ZToK PiA+PiBIZWxsbywKPiA+Pgo+ID4+IEkgaGF2ZSBiZWVuIHRoaW5raW5nIGFib3V0IHRoZSBwcm9i bGVtcyBvZiBpbnRlcmFjdGlvbiBiZXR3ZWVuCj4gPj4gTkZTdjQgQUNMcyBhbmQgUE9TSVgsIGFu ZCBwYXJ0aWN1bGFybHkgYWJvdXQgdGhlIGlzc3VlIG9mIG1hc2tpbmcKPiA+PiBwZXJtaXNzaW9u cyB0aHJvdWdoIGNobW9kIGFuZCBhZnRlciBjcmVhdGluZyBmaWxlcyBvciBkaXJlY3Rvcmllcy4K PiA+Cj4gPiBIZXJlIGlzIGEgZm9sbG93LXVwIGFmdGVyIHNvbWUgcGVyc29uYWwgZmVlZGJhY2sg ZnJvbSBTYW0uIEkKPiA+IGJlbGlldmUgdGhhdCBkcmFmdC1pZXRmLW5mc3Y0LWFjbHMtMDAgaXMg bm90IHJlYWR5IHRvIGJlY29tZSBwYXJ0IG9mIHRoZQo+ID4gTkZTdjQgTWlub3IgVmVyc2lvbiAx IFJGQzogc29tZSBhc3N1bXB0aW9ucyBhcmUgbm90IGNvcnJlY3QgZnJvbSBhIFBPU0lYCj4gPiBw b2ludCBvZiB2aWV3LCBhbmQgdGhlIHdheSBob3cgY2htb2QgYW5kIGZpbGUgY3JlYXRlIG1vZGVz IGFyZSBhcHBsaWVkIHRvCj4gPiBORlN2NCBBQ0xzIGlzIHdlYWsgYW5kIG5vdCBndWFyYW50ZWVk IHRvIGJlIGNvcnJlY3QuCj4KPiBJIGRpc2FncmVlIC0tIHNlZSBiZWxvdy4KCkhlcmUgYXJlIHNv bWUgZmFjdHMgdG8gYmFjayBteSBwb2ludHM6IExldCdzIGFzc3VtZSB0aGF0IGEgZmlsZSBpbmhl cml0cyB0aGUgCmZvbGxvd2luZyBBQ0wgd2hlbiBiZWluZyBjcmVhdGVkIChJIGFtIHVzaW5nIF4o Li4uKSBoZXJlIHdpdGggdGhlIG1lYW5pbmcgb2YgCiJhbGwgYml0ZmxhZ3MgZXhjZXB0IC4uLiIp OgoKCU9XTkVSQDpSRUFEX0RBVEEvV1JJVEVfREFUQTo6QUxMT1cKCU9XTkVSQDpeKFJFQURfREFU QS9XUklURV9EQVRBKTo6REVOWQoJR1JPVVBAOlJFQURfREFUQTo6QUxMT1cKCXVzZXJAZG9tYWlu OlJFQURfREFUQS9XUklURV9EQVRBOjpBTExPVwoJR1JPVVBAOl5SRUFEX0RBVEE6OkRFTlkKCXVz ZXJAZG9tYWluOl4oUkVBRF9EQVRBL1dSSVRFX0RBVEEpOjpERU5ZCglFVkVSWU9ORUA6UkVBRF9E QVRBOjpBTExPVwoKVGhpcyBhY2wgaXMgIndlbGwgc3RydWN0dXJlZCIgaW4gdGhlIFBPU0lYIHNl bnNlOiBPV05FUkAgd2lsbCBvbmx5IGdldCB0aGUgCm93bmVyIHBlcm1pc3Npb25zIGFuZCBub25l IG9mIHRoZSBvdGhlciBwZXJtaXNzaW9ucywgdXNlckBkb21haW4gYW5kIEdST1VQQCAKd2lsbCBv bmx5IGdldCB0aGUgcGVybWlzc2lvbnMgaW50ZW5kZWQgZm9yIHRoZW0sIGFuZCBvbmx5IG90aGVy cyAobmVpdGhlciAKT1dORVJAIG5vciB1c2VyQGRvbWFpbiBub3IgR1JPVVBAKSB3aWxsIGdldCBF VkVSWU9ORUAgcGVybWlzc2lvbnM7IGluIG90aGVyIAp3b3JkcywgdGhlIGFjbCBpcyBldmVuIGNv cnJlY3QgZm9yIG5vbi1tb25vdG9uaWMgcGVybWlzc2lvbnMuCgpBY2NvcmRpbmcgdG8gc2VjdGlv biA1LjEgb2YgZHJhZnQtaWV0Zi1uZnN2NC1hY2xzIFsxXSwgdGhlIHJlc3VsdGluZyBmaWxlIG1v ZGUgCnBlcm1pc3Npb24gYml0cyBmb3IgdGhpcyBhY2wgc2hhbGwgYmUgcnctci0tci0tLiBBZnRl ciBhIGNobW9kIG9yIGEgZmlsZSAKY3JlYXRlLCBhbHRlcm5hdGUgZmlsZSBhY2Nlc3MgY29udHJv bCBtZWNoYW5pc21zIG11c3QgYmUgZGlzYWJsZWQgYW5kIG9ubHkgCmFkZGl0aW9uYWwgZmlsZSBh Y2Nlc3MgY29udHJvbCBtZWNoYW5pc21zIG1heSByZW1haW4gYWN0aXZlLiBBY2NvcmRpbmcgdG8g ClBPU0lYLCBhZGRpdGlvbmFsIGZpbGUgYWNjZXNzIGNvbnRyb2wgbWVjaGFuaXNtcyByZXF1aXJl IHRoYXQgbm8gdXNlciBtYXkgYmUgCmdyYW50ZWQgbW9yZSBwZXJtaXNzaW9ucyB0aGFuIHRoZSBy ZXNwZWN0aXZlIGZpbGUgY2xhc3NlcyBwZXJtaXQuIEluIHRoaXMgCmNhc2UsIHVzZXJAZG9tYWlu IGNsZWFybHkgaXMgbm90IGluIHRoZSBGaWxlIE93bmVyIENsYXNzLiAoQWNjb3JkaW5nIHRvIApQ T1NJWCwgdXNlckBkb21haW4gbXVzdCBiZSBpbiB0aGUgRmlsZSBHcm91cCBDbGFzcy4pIFRoZSB1 c2VyQGRvbWFpbiB1c2VyIGlzIApncmFudGVkIFdSSVRFX0RBVEEgdGhvdWdoLCB3aGljaCBpcyAq aW5jb3JyZWN0KiBmcm9tIGEgUE9TSVggcG9pbnQgb2Ygdmlldy4KCk5leHQsIGxldCdzIGFzc3Vt ZSB0aGFuIGFuIEFDTCBjb250YWlucyB0aGUgZm9sbG93aW5nIHBhaXIgb2YgdXNlci1wcm92aWRl ZCAKZW50cmllczoKCglHUk9VUEA6V1JJVEVfREFUQTo6REVOWQoJR1JPVVBAOlJFQURfREFUQTo6 QUxMT1cKCkNsZWFybHkgdGhlIHVzZXIncyBpbnRlbnRpb24gaXMgdG8gZGVueSBXUklURV9EQVRB IGFjY2VzcyB0byBHUk9VUEAuIFRoZSAKYWxnb3JpdGhtIHRvIGFwcGx5IGEgbW9kZSB0byBhbiBl eGlzdGluZyBBQ0wgd2lsbCByZW1vdmUgdGhlIFdSSVRFX0RBVEEgYml0IApmcm9tIHRoZSBHUk9V UEA6V1JJVEVfREFUQTo6REVOWSBlbnRyeSB3aGVuIGEgY2htb2QoLi4uLCAwNzcwKSBpcyBkb25l IAp0aG91Z2guIFRoaXMgaXMgY291bnRlciB0byB0aGUgdXNlcidzIGludGVudGlvbiwgc28gSSB3 b3VsZCBjYWxsIHRoYXQgKndyb25nKiAKYXMgd2VsbC4gSXQgYWxzbyB2aW9sYXRlcyB0aGUgcHJp bmNpcGxlIG9mIGxlYXN0IHN1cnByaXNlLiBUaGVyZSByZWFsbHkgaXMgbm8gCnNhZmUgd2F5IHRv IHRlbGwgdXNlci1wcm92aWRlZCBBQ0wgZW50cmllcyBmcm9tIGFydGlmaWNpYWxseSBtYWRlIHVw IEFDTCAKZW50cmllcy4KCmRyYWZ0LWlldGYtbmZzdjQtYWNscyBpcyBtaXNzaW5nIGEgY2xlYXIg Y2xhc3NpZmljYXRpb24gb2YgQUNMIGVudHJpZXMgaW50byAKdGhlIEZpbGUgT3duZXIsIEZpbGUg R3JvdXAsIGFuZCBGaWxlIE90aGVyIGNsYXNzZXMuIEV2ZXJ5IEFDTCBlbnRyeSBtdXN0IGJlIApp biBvbmUgb2YgdGhlIHRocmVlIGNsYXNzZXMgaW4gb3JkZXIgdG8gY29tcHV0ZSBhcHByb3ByaWF0 ZSBmaWxlIG1vZGUgCnBlcm1pc3Npb24gYml0cyB3aGVuIHNldHRpbmcgYW4gQUNMLCBhbmQgYWZ0 ZXIgaW5oZXJpdGluZyBwZXJtaXNzaW9ucy4gVGhpcyAKY2xhc3NpZmljYXRpb24gYWxzbyBkZXRl cm1pbmVzIHdoaWNoIGVmZmVjdCBjaG1vZCB3aWxsIGhhdmUgb24gYW4gQUNMLgoKU28gZHJhZnQt aWV0Zi1uZnN2NC1hY2xzIGlzICppbmNvcnJlY3QqIGFuZCAqd3JvbmcqIGZyb20gYSBQT1NJWCBw b2ludCBvZiAKdmlldywgd2hpbGUgbXkgYWx0ZXJuYXRpdmUgcHJvcG9zYWwgaXMgY29ycmVjdCwg YXBhcnQgZnJvbSBiZWluZyBzaW1wbGVyIHRvIAppbXBsZW1lbnQuIEkgaG9wZSB0aGF0IG15IGVt YWlscyBhbmQgc29tZSBiYWNrZ3JvdW5kIHJlYWRpbmcgKGxpa2UgdGhlIGZpbGUgCmFjY2VzcyBy ZWxhdGVkIHBhcnRzIG9mIHRoZSBQT1NJWCBkZWZpbml0aW9ucyB2b2x1bWUgWzVdLCBhIHBhcGVy IHRoYXQgCmV4cGxhaW5zIFBPU0lYIEFDTHMgYW5kIGhvdyB0aGV5IGFyZSBpbXBsZW1lbnRlZCBv biBMaW51eCBbNl0sIGFuZCBwZXJoYXBzIAoxMDAzLjFlIGRyYWZ0IDE3KSB3aWxsIGNvbnZpbmNl IHlvdSBhYm91dCB0aGF0LgoKTm90ZSB0aGF0IGluIHRyYWRpdGlvbmFsIFBPU0lYLCBwZXJtaXNz aW9ucyBmcm9tIG11bHRpcGxlIGZpbGUgY2xhc3NlcyB3aWxsIApuZXZlciBhY2N1bXVsYXRlOiBl YWNoIHVzZXIgYWx3YXlzIGlzIGVpdGhlciBncmFudGVkIHRoZSBGaWxlIE93bmVyIApwZXJtaXNz aW9uIGJpdHMsIHRoZSBGaWxlIEdyb3VwIHBlcm1pc3Npb24gYml0cywgb3IgdGhlIEZpbGUgT3Ro ZXIgcGVybWlzc2lvbiAKYml0cy4gKEFkZGl0aW9uYWwgZmlsZSBhY2Nlc3MgY29udHJvbCBtZWNo YW5pc21zIG1heSBmdXJ0aGVyIGxpbWl0IHRoZSAKcGVybWlzc2lvbnMgZ3JhbnRlZCwgYW5kIGFs dGVybmF0aXZlIGZpbGUgYWNjZXNzIGNvbnRyb2wgbWVjaGFuaXNtcyBtYXkgCmZ1cnRoZXIgbGlt aXQgb3IgZXh0ZW5kIHRoZSBwZXJtaXNzaW9ucyBncmFudGVkLikgUGVybWlzc2lvbnMgZnJvbSBt dWx0aXBsZSAKYWNsIGVudHJpZXMgYWNjdW11bGF0ZSBpbiB0aGUgTkZTdjQgQUNMIG1vZGVsIHRo b3VnaCwgYW5kIHNvIHVubGVzcyBhbiBhY2wgaXMgCiJ3ZWxsIHN0cnVjdHVyZWQiIGluIHRoZSBh Ym92ZSBzZW5zZSwgcGVybWlzc2lvbnMgZnJvbSBtdWx0aXBsZSBjbGFzc2VzIG1heSAKYWNjdW11 bGF0ZS4KCj4gPiBJIHdpbGwgZmlyc3QgdHJ5IHRvIGNsYXJpZnkgc29tZSBvZiB0aGUgcG9pbnRz IEkgdHJpZWQgdG8gbWFrZSBpbgo+ID4gdGhlIHByZXZpb3VzIHBvc3RpbmcgYW5kIHBvaW50IG91 dCBkZWZpY2llbmNpZXMgaW4KPiA+IGRyYWZ0LWlldGYtbmZzdjQtYWNscy0wMC4gVGhlbiBJIHdp bGwgcHJvcG9zZSBhbiBhbHRlcm5hdGl2ZSBkZXNpZ24gd2hpY2gKPiA+IGlzIG1vcmUgY29ycmVj dCB0aGFuIGludHJvZHVjaW5nIERFTlkgZW50cmllcyB0byBtYXNrIHBlcm1pc3Npb25zLiAoQXMg YQo+ID4gYm9udXMsIGl0IGlzIGVhc2llciB0byBpbXBsZW1lbnQuIHRvby4pCj4gPgo+ID4+IE9u IGEgVU5JWCBzeXN0ZW0gdGhhdCBzdXBwb3J0cyBORlN2NCBBQ0xzIG5hdGl2ZWx5LCBJIHRoaW5r IHdlCj4gPj4gc2hvdWxkIHRyeSB0byBhY2NlcHQgYXMgd2lkZSBhIHJhbmdlIG9mIE5GU3Y0IEFD THMgYXMgcG9zc2libGUsIGJ1dCB3ZQo+ID4+IG11c3QgbWFrZSBzdXJlIHRoYXQgd2UgY2FuIHBy ZXNlcnZlIFBPU0lYIHNlbWFudGljcy4gSW4gcGFydGljdWxhciwgdGhpcwo+ID4+IG1lYW5zIHRo YXQgQUNMcyBtYXkgY29udGFpbiBBQ0VzIGZvciB1c2VycyBvdGhlciB0aGFuIE9XTkVSQCwgR1JP VVBALCBhbmQKPiA+PiBFVkVSWU9ORUAsIGFuZCB0aGF0IGNobW9kKDIpIG11c3QgY29udGludWUg dG8gcHJvdmlkZSB0aGUgc2FtZSBraW5kcyBvZgo+ID4+IGd1YXJhbnRlZXMgYXMgd2l0aG91dCBO RlN2NCBBQ0xzLgo+ID4+Cj4gPj4gSSBhbSBhc3N1bWluZyBoZXJlIHRoYXQgTkZTdjQgQUNMcyBz aGFsbCBiZSBhbiBhZGRpdGlvbmFsIHJhdGhlciB0aGFuIGFuCj4gPj4gYWx0ZXJuYXRlIGZpbGUg YWNjZXNzIGNvbnRyb2wgbWVjaGFuaXNtIGluIHRoZSBQT1NJWCBzZW5zZTogQWx0ZXJuYXRlCj4g Pj4gZmlsZSBhY2Nlc3MgY29udHJvbCBtZWNoYW5pc21zIG11c3QgYGBiZSBlbmFibGVkIG9ubHkg YnkgZXhwbGljaXQgdXNlcgo+ID4+IGFjdGlvbiwgb24gYSBwZXItZmlsZSBiYXNpcyBieSB0aGUg ZmlsZSBvd25lciBvciBhIHVzZXIgd2l0aCB0aGUKPiA+PiBhcHByb3ByaWF0ZSBwcml2aWxlZ2Un JywgYW5kIG11c3QgYGBiZSBkaXNhYmxlZCBmb3IgYSBmaWxlIGFmdGVyIHRoZSBmaWxlCj4gPj4g cGVybWlzc2lvbiBiaXRzIGFyZSBjaGFuZ2VkIGZvciB0aGF0IGZpbGUgd2l0aCBjaG1vZCggKScn IGFjY29yZGluZyB0bwo+ID4+IFBPU0lYLiBJbiBvdGhlciB3b3JkcywgbmV3bHkgY3JlYXRlZCBm aWxlcyBvciBkaXJlY3RvcmllcyB3b3VsZCBoYXZlCj4gPj4gYWx0ZXJuYXRlIGZpbGUgYWNjZXNz IGNvbnRyb2wgbWVjaGFuaXNtcyBkaXNhYmxlZC4gVGhpcyB3b3VsZCByZW5kZXIKPiA+PiBORlN2 NCBBQ0xzIGVzc2VudGlhbGx5IHVzZWxlc3MgZm9yIFVOSVggcHJvY2Vzc2VzLCBiZWNhdXNlIHRo ZXkgd291bGQKPiA+PiBhbG1vc3QgYWx3YXlzIGJlIGRpc2FibGVkLCBhbmQgd291bGQgb25seSB3 b3JrIGZvciByZW1vdGUgcHJvY2Vzc2VzIHVudGlsCj4gPj4gYSBQT1NJWCBwcm9jZXNzIGNobW9k cyBhIGZpbGUgb3IgY3JlYXRlcyBhIGRpcmVjdG9yeSwgd2hpY2ggd291bGRuJ3QgZ2V0Cj4gPj4g dXMgdmVyeSBmYXIuIAo+ID4KPiA+IEFzIFNhbSBwb2ludGVkIG91dCwgYSBzdWJzZXQgb2YgTkZT djQgQUNMcyBtYXBzIHRvIGFuIGFkZGl0aW9uYWwgZmlsZQo+ID4gYWNjZXNzIGNvbnRyb2wgbWVj aGFuaXNtLCB3aGlsZSB0aGUgcmVzdCBnb2VzIGJleW9uZCB0aGF0LCBhbmQgdGhlcmVmb3JlCj4g PiBpcyBhbiBhbHRlcm5hdGUgZmlsZSBhY2Nlc3MgY29udHJvbCBtZWNoYW5pc20uCj4KPiBZZXMg LS0gQUxMT1cgQUNFcyBhcmUgYWx0ZXJuYXRlIGZpbGUgYWNjZXNzIGNvbnRyb2wsIGFuZCBERU5Z IEFDRXMKPiBhcmUgYWRkaXRpb25hbCBmaWxlIGFjY2VzcyBjb250cm9sLgoKVGhpcyBjbGFzc2lm aWNhdGlvbiBtYWtlcyBubyBzZW5zZSwgYW5kIGl0IGFsc28gZG9lcyBub3QgbWF0Y2ggd2hhdCB5 b3UgCnByb3Bvc2UgaW4gc2VjdGlvbiA1LjMgb2YgZHJhZnQtaWV0Zi1uZnN2NC1hY2xzLCBlaXRo ZXI6IHRoZXJlIGFyZSBhY2xzIHRoYXQgCmNvbnRhaW4gQUxMT1cgZW50cmllcyB3aGljaCBhcmUg c3RpbGwgb25seSBhbiBhZGRpdGlvbmFsIGZpbGUgYWNjZXNzIGNvbnRyb2wgCm1lY2hhbmlzbSwg c28gd2UgcmVhbGx5IG5lZWQgdG8gY2xhc3NpZnkgdGhlbSBhcyBhbiBhZGRpdGlvbmFsIGZpbGUg YWNjZXNzIApjb250cm9sIG1lY2hhbmlzbSBpbiBvcmRlciB0byBhdm9pZCBoYXZpbmcgdG8gZGlz YWJsZSB0aGVtIGR1cmluZyBjaG1vZCBvciAKd2hlbiBpbmhlcml0aW5nIHBlcm1pc3Npb25zLiBJ ZiBBTExPVyBBQ0VzIHdlcmUgYWx0ZXJuYXRlIGluIGdlbmVyYWwsIHRoZW4gd2UgCndvdWxkIGhh dmUgdG8gZGlzYWJsZSB0aGVtIGFsbCBhZnRlciBhIGNobW9kLCBhbmQgSSB0aGluayB3ZSBhZ3Jl ZSB0aGF0IHRoaXMgCndvdWxkIG1ha2UgQUNMcyBwcmFjdGljYWxseSB1c2VsZXNzIGluIGNvbWJp bmF0aW9uIHdpdGggUE9TSVguCgpUaGUgb25seSBjbGFzc2lmaWNhdGlvbiB0aGF0IG1ha2VzIHNl bnNlIGlzIGJ5IHRoZSBwZXJtaXNzaW9ucyB0aGF0IGFuIEFDTCAKZ3JhbnRzLiBZb3UgaGF2ZSBn aXZlbiBhbiBleGFtcGxlIG9mIGFuIEFDTCB0aGF0IGNsZWFybHkgaXMgYW4gYWRkaXRpb25hbCAK ZmlsZSBhY2Nlc3MgY29udHJvbCBtZWNoYW5pc20gb25seS4gV2l0aCB0aGlzIGtpbmQgb2YgY2xh c3NpZmljYXRpb24sIGEgCnNpZ25pZmljYW50IHN1YnNldCBvZiBORlN2NCBBQ0xzIGNhbiBiZSB0 cmVhdGVkIGFzIGFuIGFkZGl0aW9uYWwgZmlsZSBhY2Nlc3MgCmNvbnRyb2wgbWVjaGFuaXNtLCB3 aGljaCBtYWtlcyB0aGVtIGFjdHVhbGx5IHVzZWZ1bCBldmVuIHdoZW4gUE9TSVggc3lzdGVtcyAK YW5kIFdpbmRvd3MgKG9yIG90aGVyIHN5c3RlbXMgd2l0aCBORlN2NCBBQ0xzIG9yIHNpbWlsYXIp IGludGVyYWN0IGFuZCBib3RoIApjaGFuZ2UgQUNMcy4KCj4gPiBJdCBpcyBpbXBvcnRhbnQgdG8g dW5kZXJzdGFuZCBob3cgUE9TSVggZGVmaW5lcyBhZGRpdGlvbmFsIGZpbGUKPiA+IGFjY2VzcyBj b250cm9sIG1lY2hhbmlzbXM6Cj4gPgo+ID4gW10gMy40IEFkZGl0aW9uYWwgRmlsZSBBY2Nlc3Mg Q29udHJvbCBNZWNoYW5pc20KPiA+IFtdIEFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgbWVjaGFu aXNtIHRoYXQgaXMgbGF5ZXJlZCB1cG9uIHRoZQo+ID4gW10gYWNjZXNzIGNvbnRyb2wgbWVjaGFu aXNtcyBkZWZpbmVkIGhlcmUsIGJ1dCB3aGljaCBkbyBub3QgZ3JhbnQKPiA+IFtdIHBlcm1pc3Np b25zIGJleW9uZCB0aG9zZSBkZWZpbmVkIGhlcmVpbiwgYWx0aG91Z2ggdGhleSBtYXkgZnVydGhl cgo+ID4gW10gcmVzdHJpY3QgdGhlbS4gCj4gPgo+ID4gSW4gb3RoZXIgd29yZHMsIHdoZW4gYSBm aWxlIGhhcyBqdXN0IGJlZW4gY3JlYXRlZCBhbmQgYWZ0ZXIgY2htb2QsCj4gPiB0aGUgZmlsZSBt b2RlIHBlcm1pc3Npb24gYml0cyBkZWZpbmUgYW4gdXBwZXIgYm91bmQgdG8gdGhlIHBlcm1pc3Np b25zCj4gPiBncmFudGVkIHRvIGFueW9uZSBvbiB0aGUgc3lzdGVtLCBhbmQgbm9ib2R5IGhhcyBh ZGRpdGlvbmFsIHBlcm1pc3Npb25zLgo+ID4gQWRkaXRpb25hbCBwZXJtaXNzaW9ucyAoYXMgYW4g YWx0ZXJuYXRlIGZpbGUgYWNjZXNzIGNvbnRyb2wgbWVjaGFuaXNtKSBtYXkKPiA+IGJlIGVuYWJs ZWQgZXhwbGljaXRseSwgYnV0IHRoZSBuZXh0IGNobW9kIG11c3QgZGlzYWJsZSB0aGVtIGFnYWlu Lgo+Cj4gVGhlIHVzZSBvZiB0aGUgd29yZCAiQWRkaXRpb25hbCIgaXMgY29uZnVzaW5nIGluIHRo ZSBhYm92ZQo+IHNlbnRlbmNlLiAgOi0pICBJIHRoaW5rIHlvdSBtZWFuICJtb3JlIiwgb3Igc2lt aWxhciwgYnV0ICJBZGRpdGlvbmFsIgo+IGhhcyBhIHZlcnkgc3BlY2lmaWMgbWVhbmluZyB3aGlj aCAoSSB0aGluaykgaXNuJ3Qgd2hhdCB5b3UgbWVhbi4KCkkgaW5kZWVkIG1lYW50IG1vcmUgcGVy bWlzc2lvbnMgYXMgaW4gYWRkaXRpb25hbCBtYXNrIGJpdHMgZ3JhbnRlZCwgYXMgb3Bwb3NlZCAK dG8gYW4gYWRkaXRpb25hbCBmaWxlIGFjY2VzcyBjb250cm9sIG1lY2hhbmlzbSBpbiB0aGUgc2Vu c2UgaG93IFBPU0lYIGRlZmluZXMgCnRoaXMgdGVybS4KCj4gPiBXZSBjYW4gY2xhc3NpZnkgdGhl IHBlcm1pc3Npb25zIHRoYXQgTkZTdjQgQUNMcyBncmFudCBpbnRvIGFkZGl0aW9uYWwgYW5kCj4g PiBhbHRlcm5hdGUgbWVjaGFuaXNtcyBhcyBmb2xsb3dzOiBldmVyeXRoaW5nIGNvdmVyZWQgYnkg dGhlIFBPU0lYCj4gPiByZWFkL3dyaXRlL2V4ZWN1dGUgcGVybWlzc2lvbnMgKHN1Y2ggYXMgQUNF NF9SRUFEX0RBVEEsIGJ1dCBhbHNvCj4gPiBBQ0U0X0FQUEVORF9EQVRBKSBpcyBhZGRpdGlvbmFs LCB3aGlsZSBldmVyeXRoaW5nIGJleW9uZCB0aGF0IChzdWNoIGFzCj4gPiBBQ0U0X1dSSVRFX09X TkVSKSBpcyBhbHRlcm5hdGUuCj4KPiBOb3RlIHdlbGw6IHRoaXMgaXMgcXVpdGUgZGlmZmVyZW50 IGZyb20gZHJhZnQtaWV0Zi1uZnN2NC0KPiBtaW5vcnZlcnNpb24xLTAzLnR4dCwgaS5lLiB0aGlz IGlzIGFuIGFsdGVybmF0ZSBwcm9wb3NhbC4KClllcywgdGhpcyBpcyBhIGRpZmZlcmVudCBhcHBy b2FjaCBvZiBjbGFzc2lmeWluZyBORlN2NCBBQ0xzIGludG8gYWRkaXRpb25hbCAKYW5kIGFsdGVy bmF0ZSBmaWxlIGFjY2VzcyBjb250cm9sIG1lY2hhbmlzbXMsIHdoaWNoIGNvbXBsaWVzIHRvIFBP U0lYIGFzIHdlbGwgCmFzIHRvIHRoZSBjdXJyZW50IE5GU3Y0IFJGQy4gSXQgY29uZmxpY3RzIHdp dGggZHJhZnQtaWV0Zi1uZnN2NC1hY2xzLCBhbmQgYnkgCmltcGxpY2F0aW9uIHdpdGggZHJhZnQt aWV0Zi1uZnN2NC1taW5vcnZlcnNpb24xLTAzIFs0XSwgd2hpY2ggaW5jbHVkZXMgdGhlIApzYW1l IHRleHQuCgpOb3RlIHRoYXQgZHJhZnQtaWV0Zi1uZnN2NC1hY2xzIGlzIGluY29uc2lzdGVudCBp biBpdHNlbGY6IHRoZSBhbGdvcml0aG0gaW4gCnNlY3Rpb24gNS4zIHJlc3RyaWN0cyB3aGljaCBw ZXJtaXNzaW9ucyBhbiBBQ0wgZ3JhbnRzIGJ5IG1hc2tpbmcgcGVybWlzc2lvbnMgCih3aGljaCBp bXBsaWVzIHRoYXQgeW91IGFyZSBjbGFzc2lmeWluZyBieSBwZXJtaXNzaW9uIGFzIG9wcG9zZWQg dG8gdHVybmluZyAKb2ZmIGFsbCBBTExPVyBlbnRyaWVzKSwgd2hpbGUgc2VjdGlvbiAxNC40IHNh eXMgdGhhdCAidGhlIEFMTE9XIHR5cGUgb2YgQUNFIAppcyBjb25zaWRlcmVkIHRvIGJlIGFuIGFs dGVybmF0ZSBmaWxlIGFjY2VzcyBjb250cm9sIG1lY2hhbmlzbSBiZWNhdXNlIGl0IGNhbiAKZnVy dGhlciBleHRlbmQgdGhlIHBlcm1pc3Npb25zIG9mIGEgdXNlciIuCgo+ID4gVW5kZXIgdGhpcyBk ZWZpbml0aW9uLCBhbGwgTkZTdjQgQUNMcyB0aGF0IGdyYW50IG5vIG1vcmUgdGhhbgo+ID4gQUNF NF9SRUFEX0RBVEEsIEFDRTRfTElTVF9ESVJFQ1RPUlksIEFDRTRfV1JJVEVfREFUQSwgCj4gPiBB Q0U0X0FERF9GSUxFLCBBQ0U0X0FQUEVORF9EQVRBLCBBQ0U0X0FERF9TVUJESVJFQ1RPUlksCj4g PiBBQ0U0X1JFQURfTkFNRURfQVRUUlMsIEFDRTRfV1JJVEVfTkFNRURfQVRUUlMsIEFDRTRfRVhF Q1VURSwKPiA+IEFDRTRfUkVBRF9BVFRSSUJVVEVTLCBBQ0U0X1dSSVRFX0FUVFJJQlVURVMsIEFD RTRfUkVBRF9BQ0wsIGFuZAo+ID4gQUNFNF9TWU5DSFJPTklaRSB3b3VsZCBjb3VudCBhcyBhZGRp dGlvbmFsIGFjY2VzcyBjb250cm9sCj4gPiBtZWNoYW5pc21zLiBBbGwgb3RoZXJzIHdpdGggQUNF NF9XUklURV9BQ0wsIEFDRTRfV1JJVEVfT1dORVIsCj4gPiBBQ0U0X0RFTEVURV9DSElMRCwgYW5k IEFDRTRfREVMRVRFIGFyZSBhbHRlcm5hdGUuCgpGdXJ0aGVyIGJlbG93IGluIHlvdXIgcmVwbHkg eW91IHdyb3RlOgo+IEknbSBub3Qgc3VyZSBJIGFncmVlIGFib3V0IEFDRTRfV1JJVEVfQVRUUklC VVRFUywgYnV0IHRoYXQncyBhIG1pbm9yCj4gZGV0YWlsLgoKSSBzdGFuZCBjb3JyZWN0ZWQgdGhh dCBBQ0U0X1dSSVRFX0FUVFJJQlVURVMgaXMgYW4gYWx0ZXJuYXRlIHBlcm1pc3Npb24gcmF0aGVy IAp0aGFuIGFuIGFkZGl0aW9uYWwgb25lOiB0aGUgUE9TSVggcmVhZC93cml0ZS9leGVjdXRlIHBl cm1pc3Npb25zIGRvIG5vdCBhbGxvdyAKdG8gd3JpdGUgdG8gaW5vZGUgYXR0cmlidXRlcy4KCj4g SSBkb24ndCB1bmRlcnN0YW5kIHdoYXQgaXMgZ2FpbmVkIGJ5IHRoaXMgZGVzaWduYXRpb24gb2Yg YWRkaXRpb25hbAo+IGFjY2VzcyBjb250cm9sIG1lY2hhbmlzbXMuCgpUaGUgYmVuZWZpdCBpcyB0 aGF0IGEgbW9yZSByZWFzb25hYmxlIHNldCBvZiBwZXJtaXNzaW9ucyBjYW4gcmVtYWluIGFjdGl2 ZSAKYWNyb3NzIGNobW9kIGFuZCBwZXJtaXNzaW9uIGluaGVyaXRhbmNlOiBpZiB3ZSBhc3N1bWUg dGhhdCBBTExPVyBBQ0VzIGFyZSAKYWx0ZXJuYXRpdmUsIGFsbCBBTExPVyBBQ0VzIHdpbGwgaGF2 ZSB0byBiZSBkaXNhYmxlZCB3aGVuIGEgY2htb2QgaXMgZG9uZSwgb3IgCmluIHRoZSBwZXJtaXNz aW9ucyB0aGF0IGEgZmlsZSBpbmhlcml0cy4gQSBjaG1vZCBmb3JtIG9uZSBtb2RlIHRvIGFub3Ro ZXIgYW5kIApiYWNrIHdpbGwgZGlzYWJsZSBhbGwgYWx0ZXJuYXRpdmUgZmlsZSBhY2Nlc3MgY29u dHJvbCBtZWNoYW5pc21zOyB0aGVyZSBpcyBubyAKd2F5IGFyb3VuZCB0aGF0LgoKSWYgd2UgYXNz dW1lIHRoYXQgY2VydGFpbiBwZXJtaXNzaW9ucyBhcmUgaW4gdGhlIGFkZGl0aW9uYWwgY2xhc3Mg YW5kIG90aGVycyAKYXJlIGluIHRoZSBhbHRlcm5hdGl2ZSBjbGFzcywgdGhlbiB3ZSBjYW4gZGlz YWJsZSBvbmx5IHRob3NlIGFkZGl0aW9uYWwgCnBlcm1pc3Npb25zIHdoaWNoIGV4Y2VlZCB3aGF0 IHRoZSBhc3NvY2lhdGVkIGZpbGUgY2xhc3MgcGVybWl0cyAocmVtZW1iZXIgCnRoYXQgdGhlIGZp bGUgY2xhc3NlcyBkZWZpbmUgdGhlIG1heGltdW0gcGVybWlzc2lvbnMgdGhhdCBhIG1lbWJlciBv ZiB0aGF0IApjbGFzcyBtYXkgaGF2ZS4gV2Ugd2lsbCBhbHdheXMgZGlzYWJsZSBhbGwgYWx0ZXJu YXRpdmUgcGVybWlzc2lvbnMgdXBvbiAKY2htb2QsIGJlY2F1c2UgdGhvc2UgYXJlIHRoZSBlbnRy aWVzIHdoaWNoIGV4Y2VlZCB3aGF0IHRoZSBmaWxlIGNsYXNzIG1heSAKcGVybWl0IGJ5IGRlZmlu aXRpb24sIGJ1dCB3ZSB3aWxsIGxlYXZlIGFzIG11Y2ggb2YgdGhlIGFkZGl0aW9uYWwgCnBlcm1p c3Npb25zIGludGFjdCBhcyBwb3NzaWJsZS4KCkNvbnNpZGVyIHRoaXMgQUNMIChJIGhhdmUgdXNl ZCB0aGUgc2FtZSBleGFtcGxlIGFib3ZlIGFscmVhZHkpOgoKCU9XTkVSQDpSRUFEX0RBVEEvV1JJ VEVfREFUQTo6QUxMT1cKCU9XTkVSQDpeKFJFQURfREFUQS9XUklURV9EQVRBKTo6REVOWQoJR1JP VVBAOlJFQURfREFUQTo6QUxMT1cKCXVzZXJAZG9tYWluOlJFQURfREFUQS9XUklURV9EQVRBOjpB TExPVwoJR1JPVVBAOl5SRUFEX0RBVEE6OkRFTlkKCXVzZXJAZG9tYWluOl4oUkVBRF9EQVRBL1dS SVRFX0RBVEEpOjpERU5ZCglFVkVSWU9ORUA6UkVBRF9EQVRBOjpBTExPVwoKV2l0aCB0aGUgQUxM T1cgPSBhbHRlcm5hdGl2ZSBjbGFzc2lmaWNhdGlvbiwgYWxsIGFsbG93IGVudHJpZXMgd291bGQg Z2V0IApkaXNhYmxlZCwgYW5kIHNvIHRoaXMgQUNMIHdvdWxkIG5vdCBncmFudCBhbnkgcGVybWlz c2lvbnMgdG8gYW55Ym9keSBubyAKbWF0dGVyIHdoaWNoIGNobW9kIG1vZGUgaXMgdXNlZC4gV2l0 aCB0aGUgY2xhc3NpZmljYXRpb24gSSBhbSBwcm9wb3NpbmcsIHRoaXMgCmZpbGUgd291bGQgaGF2 ZSBydy1ydy1yLS0gZmlsZSBtb2RlIHBlcm1pc3Npb24gYml0cy4gQSBjaG1vZCB0byBydy1yLS0t LS0gCndvdWxkIGRpc2FibGUgdGhlIHVzZXJAZG9tYWluOldSSVRFX0RBVEEgYW5kIEVWRVJZT05F QDpSRUFEX0RBVEEgcGVybWlzc2lvbnMsIApidXQgdGhlIG90aGVyIHBlcm1pc3Npb25zIHdvdWxk IHN0aWxsIHJlbWFpbiBlZmZlY3RpdmUuCgpOb3RlIHRoYXQgdGhpcyBpcyBhY3R1YWxseSB0aGUg YmVoYXZpb3IgeW91IGFyZSBkZXNjcmliaW5nIGluIHNlY3Rpb24gNS4zIG9mIApkcmFmdC1pZXRm LW5mc3Y0LWFjbHMtMDAsIHRoZSBkcmFmdCBpcyBvbmx5IG1pc3NpbmcgYSBjbGVhciBjbGFzc2lm aWNhdGlvbiBvZiAKQUNFcyBpbnRvIHRoZSBGaWxlIE93bmVyLCBGaWxlIEdyb3VwLCBhbmQgRmls ZSAgT3RoZXIgY2xhc3Nlcy4KCk9uZSBlc3NlbnRpYWwgZGlmZmVyZW5jZSBiZXR3ZWVuIGRyYWZ0 LWlldGYtbmZzdjQtYWNscy0wMCBhbmQgbXkgcHJvcG9zYWwgaXMgCnRoZSBtZWNoYW5pc20gdXNl ZCB0byByZXN0cmljdCB0aGUgcGVybWlzc2lvbnMgdGhhdCBhbiBBQ0wgZ3JhbnRzOiAKZHJhZnQt aWV0Zi1uZnN2NC1hY2xzLTAwIGluc2VydHMgREVOWSBlbnRyaWVzIGluIHRoZSBhY2wgYXQgdGhl IGFwcHJvcHJpYXRlIApwbGFjZXMgYW5kIHVwZGF0ZXMgdGhlbSBsYXRlciBhcyBhcHByb3ByaWF0 ZSwgd2hpbGUgbXkgcHJvcG9zYWwgaW50cm9kdWNlcyAKb3B0aW9uYWwgbWFzayBhdHRyaWJ1dGVz IGFuZCBvbmx5IHVwZGF0ZXMgdGhvc2UgYXR0cmlidXRlcy4KCldoaWxlIGRyYWZ0LWlldGYtbmZz djQtYWNscy0wMCBzdHlsZSBBQ0xzIGNhbiBiZSBzZW50IHRvIGFsbCBORlN2NCBjbGllbnRzIAp1 bm1vZGlmaWVkLCB3ZSBuZWVkIHRvIGJlIGNhcmVmdWwgd2hlbiBzZW5kaW5nIEFDTHMgdG8gY2xp ZW50cyBpbiB0aGUgCnByZXNlbmNlIG9mIG1hc2sgYXR0cmlidXRlczogaWYgYSBjbGllbnQgaXMg YXdhcmUgb2YgdGhlIG1hc2sgYXR0cmlidXRlcywgd2UgCmNhbiBzZW5kIHRoZSBBQ0wgZGlyZWN0 bHkuIElmIHRoZSBjbGllbnQgaXMgdW5hd2FyZSBvZiB0aGUgbWFzayBhdHRyaWJ1dGVzLCAKd2Ug Y2FuIGNob29zZSB0byBlaXRoZXIgc2VuZCBhbiBBQ0wgdGhhdCBvbmx5IGNvbnRhaW5zIGFsbCB0 aGUgZWZmZWN0aXZlIApwZXJtaXNzaW9ucyBhbmQgd2l0aCB0aGUgbWFza2VkIHBlcm1pc3Npb25z IHJlbW92ZWQsIG9yIHdlIGNvdWxkIGZpcnN0IGluc2VydCAKREVOWSBlbnRyaWVzIGluIHRoZSBB Q0wgd2Ugc2VuZCBzaW1pbGFyIHRvIHNlY3Rpb24gNS4zIG9mIApkcmFmdC1pZXRmLW5mc3Y0LWFj bHMtMDAgKGJ1dCB3aXRoIHRoZSBjbGFzc2lmaWNhdGlvbiBvZiBBQ0VzIGludG8gdGhlIGZpbGUg CmNsYXNzZXMgY2xlYW5lZCB1cCkuCgo+IElmIHlvdSByZWFsbHkgc2F5IHRoYXQgdGhpcyBBQ0w6 IAo+Cj4gT1dORVJAOnJlYWRfZGF0YTphbGxvdwo+IGZyaWVuZEB5b3VyLmNvbTpyZWFkX2RhdGE6 YWxsb3cKPgo+IGlzIGFkZGl0aW9uYWwgZmlsZSBhY2Nlc3MgY29udHJvbCwKClllcy4KCj4gdGhl biB3aGF0IGlzIHRoZSBtb2RlIG9uIHN1Y2ggYSBmaWxlPwoKVGhlIG1vZGUgaXMgci0tci0tLS0t LCB3aGljaCBkb2VzICpub3QqIGltcGx5IHRoYXQgdGhlIG93bmluZyBncm91cCBoYXMgcmVhZCAK YWNjZXNzLgoKPiBVbmxlc3MgdGhlIG1vZGUgc2F5cyAiZ3JvdXAgY2FuIHJlYWQiLCB0aGVuIGZy aWVuZEB5b3VyLmNvbSAKPiB3b3VsZG4ndCBiZSBhYmxlIHRvIHJlYWQsIGlmIHRoZSBBQ0wgaXMg YWRkaXRpb25hbCBmaWxlIGFjY2Vzcwo+IGNvbnRyb2wuCgpUaGF0J3MgY29ycmVjdC4KCj4gV2hh dCBpZiB5b3Ugd2FudCBmcmllbmRAeW91ci5jb20gdG8gYmUgYWJsZSB0byByZWFkLCBidXQgeW91 IGRvbid0IHdhbnQgdGhlCj4gZmlsZSdzIG93bmluZyBncm91cCB0byByZWFkPyAKClBPU0lYIGRv ZXMgbm90IHJlcXVpcmUgdGhhdCByLS1yLS0tLS0gZmlsZSBtb2RlIHBlcm1pc3Npb24gYml0cyBn aXZlIHRoZSAKb3duaW5nIGdyb3VwIHdyaXRlIGFjY2Vzcy4gVGhlIG93bmluZyBncm91cCBwZXJt aXNzaW9ucyBkZXBlbmQgb24gd2hpY2ggCmVudHJpZXMgYXJlIGluIHRoZSBhY2w6IHdpdGggRmls ZSBHcm91cCBDbGFzcyBwZXJtaXNzaW9ucyBvZiByLS0sIGlmIHRoZSBhY2wgCmNvbnRhaW5zIGEg R1JPVVBAOlJFQURfREFUQTo6QUxMT1cgZW50cnksIHRoZSBvd25pbmcgZ3JvdXAgaXMgZ3JhbnRl ZCAKUkVBRF9EQVRBIGFjY2Vzcy4gV2l0aCBubyBHUk9VUEAgZW50cnksIGEgR1JPVVBAOldSSVRF X0RBVEE6OkFMTE9XIGVudHJ5LCBvciAKYSBHUk9VUEA6UkVBRF9EQVRBOjpERU5ZIGVudHJ5IGJl Zm9yZSBvdGhlciBlbnRyaWVzIHRoYXQgd291bGQgZ2l2ZSBHUk9VUEAgCnJlYWQgYWNjZXNzLCBH Uk9VUEAgd291bGQgbm90IGJlIGdyYW50ZWQgUkVBRF9EQVRBIGFjY2Vzcy4KClRoZXJlIGlzIG9u ZSBvdGhlciBjYXNlIHRvIGxvb2sgYXQgdGhvdWdoOiB3aGlsZSBhIGNobW9kIHdpbGwgZGlzYWJs ZSBhbGwgCmFsdGVybmF0ZSBwZXJtaXNzaW9ucyBhbmQgbm8gYWx0ZXJuYXRlIHBlcm1pc3Npb25z IHdpbGwgYmUgZWZmZWN0aXZlIGZvciAKbmV3bHkgY3JlYXRlZCBmaWxlcywgdGhlIG1hc2sgYXR0 cmlidXRlcyBjYW4gYmUgc2V0IGV4cGxpY2l0bHksIGFuZCBhbHRlcm5hdGUgCnBlcm1pc3Npb25z IG1heSBiZSBlbmFibGVkLiBEZXBlbmRpbmcgb24gd2hpY2ggcGVybWlzc2lvbnMgdGhlIEFDTCBn cmFudHMsIAp0aGlzIG1heSBjYXVzZSBhbHRlcm5hdGUgcGVybWlzc2lvbnMgdG8gYmVjb21lIGVm ZmVjdGl2ZSAoYWx0ZXJuYXRlIGZpbGUgCmFjY2VzcyBjb250cm9sIG1lY2hhbmlzbSksIGFuZCBp biB0aGlzIGNhc2UsIG1vcmUgcGVybWlzc2lvbnMgbWF5IGJlIGdyYW50ZWQgCnRoYW4gdGhlIGZp bGUgbW9kZSBwZXJtaXNzaW9uIGJpdHMgaW1wbHkuCgpTZXR0aW5nIHRoZSBtYXNrIGF0dHJpYnV0 ZXMgc2hvdWxkIGNhdXNlIHRoZSBmaWxlIG1vZGUgcGVybWlzc2lvbiBiaXRzIHRvIGJlIApzZXQg dG8gdGhlIHZhbHVlIHRoYXQgbW9zdCBjbG9zZWx5IG1hdGNoZXMgdGhlIG1hc2sgYXR0cmlidXRl cy4gKEZvciBleGFtcGxlLCAKc2V0dGluZyB0aGUgUkVBRF9EQVRBIGJpdG1hc2sgaW4gZ3JvdXBf Y2xhc3NfbWFzayBzaG91bGQgYWxzbyBzZXQgdGhlIHJlYWQgCkZpbGUgR3JvdXAgQ2xhc3MgcGVy bWlzc2lvbikuCgpJIHByb3Bvc2VkIHRoYXQgd2hlbiBhIFNFVEFUVFIgb2YgQUNMIGlzIGRvbmUg d2l0aG91dCBhbHNvIHNldHRpbmcgdGhlIHRocmVlIAoqX2NsYXNzX21hc2sgYXR0cmlidXRlcywg dGhlbiB0aG9zZSpfY2xhc3NfbWFzayBhdHRyaWJ1dGVzIHRoYXQgYXJlIG5vdCAKc3BlY2lmaWVk IHNob3VsZCBiZSBjb21wdXRlZCBhcyB0aGUgdW5pb24gb2YgdGhlIG1hc2sgYml0cyBvZiB0aGUg ZW50cmllcyBpbiAKdGhlIHJlc3BlY3RpdmUgY2xhc3MuIFRoaXMgbWVhbnMgdGhhdCBhIFNFVEFU VFIgb2YgQUNMIG1heSBvciBtYXkgbm90IGFtb3VudCAKdG8gYW4gYWx0ZXJuYXRlIGZpbGUgYWNj ZXNzIGNvbnRyb2wgb3BlcmF0aW9uLgoKSSBoaWdobHkgcmVjb21tZW5kIHRvIHJlYWQgUE9TSVgg QWNjZXNzIENvbnRyb2wgTGlzdHMgb24gTGludXggWzZdLgoKPiA+IEFzIHNhaWQgYWxyZWFkeSwg dGhlIFBPU0lYIGZpbGUgbW9kZSBwZXJtaXNzaW9uIGJpdHMgZGVmaW5lIHRoZQo+ID4gcGVybWlz c2lvbnMgb2YgdGhyZWUgY2xhc3Nlczogb3duZXIsIGdyb3VwLCBhbmQgb3RoZXIuIEFuIGFkZGl0 aW9uYWwKPiA+IGZpbGUgYWNjZXNzIGNvbnRyb2wgbWVjaGFuaXNtIG1heSBvbmx5IGZ1cnRoZXIg cmVzdHJpY3QgdGhlIHBlcm1pc3Npb25zCj4gPiBncmFudGVkIHRvIHRob3NlIGNsYXNzZXMuCj4g Pgo+ID4gVG8gbWFwIE5GU3Y0IEFDTHMgdG8gYW4gYWRkaXRpb25hbCBmaWxlIGFjY2VzcyBjb250 cm9sIG1lY2hhbmlzbSwKPiA+Cj4gPiAgLSB3ZSBtdXN0IG1hcCBlYWNoIE5GU3Y0IEFDTCBlbnRy eSB0byBleGFjdGx5IG9uZSBvZiB0aGUgdGhyZWUKPiA+IGNsYXNzZXMuCj4gPgo+ID4gIC0gd2Ug bXVzdCBlbnN1cmUgdGhhdCB0aGUgQUNMIGRvZXMgbm90IGdyYW50IGFueSBwZXJtaXNzaW9ucyB0 aGF0Cj4gPiBnbyBiZXlvbmQgdGhlIGNsYXNzIHBlcm1pc3Npb25zIGFmdGVyIGEgY2htb2Qgb3Ig Y3JlYXRlLgo+Cj4gQWRkaXRpb25hbCBGaWxlIEFjY2VzcyBDb250cm9sIG11c3Qgbm90IGdyYW50 IGJleW9uZCB0aGUgY2xhc3MKPiBwZXJtaXNzaW9ucyAqZXZlciosIG5vdCBqdXN0IGFmdGVyIGNy ZWF0ZSBvciBjaG1vZC4KPgo+ID4gIC0gaW4gcGFydGljdWxhciwgd2UgbXVzdCBlbnN1cmUgdGhh dCB0aGUgQUNMIGdyYW50cyBubyAiYWx0ZXJuYXRlIgo+ID4gICAgcGVybWlzc2lvbnMgYWZ0ZXIg YSBjaG1vZCBvciBjcmVhdGUuCj4KPiBJIGRvbid0IHVuZGVyc3RhbmQgdGhpczsgeW91IGJlZ2Fu IHRoaXMgc2VjdGlvbiB3aXRoICJUbyBtYXAgTkZTdjQKPiBBQ0xzIHRvIGFuIGFkZGl0aW9uYWwu Li4iLCBidXQgaGVyZSwgeW91IHNlZW0gdG8gYmUgZGVzY3JpYmluZyBBQ0xzCj4gYXMgYW4gYWx0 ZXJuYXRlIGZpbGUgYWNjZXNzIGNvbnRyb2wgbWVjaGFuaXNtLgoKSSBhbSBzYXlpbmcgdGhhdCBw ZXJtaXNzaW9ucyBjbGFzc2lmaWVkIGFzIGFsdGVybmF0ZSBjYW4gbmV2ZXIgYmVjb21lIAplZmZl Y3RpdmUgYXMgcGFydCBvZiBhbiBhZGRpdGlvbmFsIGZpbGUgYWNjZXNzIGNvbnRyb2wgbWVjaGFu aXNtLiBUaGlzIG1lYW5zIAp0aGF0IHRoZSBBQ0wgbWF5IHN0aWxsIGNvbnRhaW4gc3VjaCBhbHRl cm5hdGUgcGVybWlzc2lvbnMsIGJ1dCB3ZSBtdXN0IGVuc3VyZSAKdGhhdCB0aGVzZSBwZXJtaXNz aW9ucyB3aWxsIG5vdCBiZWNvbWUgZWZmZWN0aXZlIGltcGxpY2l0bHkuCgo+ID4gV2UgYXJlIGZy ZWUgdG8gcHJvdmlkZSBtZWNoYW5pc21zIGJ5IHdoaWNoIG1vcmUgcGVybWlzc2lvbnMgbWF5IGJl Cj4gPiBlbmFibGVkIGJ5IGV4cGxpY2l0IHVzZXIgYWN0aW9uLCBvbiBhIHBlci1maWxlIGJhc2lz IGJ5IHRoZSBmaWxlIG93bmVyIG9yCj4gPiBhIHVzZXIgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcHJp dmlsZWdlLCBhY2NvcmRpbmcgdG8gUE9TSVguCgouLi4gYW5kIHRoaXMgd291bGQgY291bnQgYXMg YW4gYWx0ZXJuYXRlIGFjY2VzcyBjb250cm9sIG1lY2hhbmlzbSB0aGVuLgoKPiA+IFRoZSBQT1NJ WCBkZWZpbml0aW9ucyBvZiB0aGUgdGhyZWUgZmlsZSBwZXJtaXNzaW9uIGNsYXNzZXMgYXJlOgo+ ID4KPiA+IFtdIDMuMTczIEZpbGUgT3duZXIgQ2xhc3MKPiA+IFtdIFRoZSBwcm9wZXJ0eSBvZiBh IGZpbGUgaW5kaWNhdGluZyBhY2Nlc3MgcGVybWlzc2lvbnMgZm9yIGEKPiA+IFtdIHByb2Nlc3Mg cmVsYXRlZCB0byB0aGUgdXNlciBpZGVudGlmaWNhdGlvbiBvZiBhIHByb2Nlc3MuIEEgcHJvY2Vz cwo+ID4gW10gaXMgaW4gdGhlIGZpbGUgb3duZXIgY2xhc3Mgb2YgYSBmaWxlIGlmIHRoZSBlZmZl Y3RpdmUgdXNlciBJRCBvZiB0aGUKPiA+IFtdIHByb2Nlc3MgbWF0Y2hlcyB0aGUgdXNlciBJRCBv ZiB0aGUgZmlsZS4KPiA+Cj4gPiBbXSAzLjE2NiBGaWxlIEdyb3VwIENsYXNzCj4gPiBbXSBUaGUg cHJvcGVydHkgb2YgYSBmaWxlIGluZGljYXRpbmcgYWNjZXNzIHBlcm1pc3Npb25zIGZvciBhIHBy b2Nlc3MKPiA+IFtdIHJlbGF0ZWQgdG8gdGhlIGdyb3VwIGlkZW50aWZpY2F0aW9uIG9mIGEgcHJv Y2Vzcy4gQSBwcm9jZXNzIGlzIGluCj4gPiBbXSB0aGUgZmlsZSBncm91cCBjbGFzcyBvZiBhIGZp bGUgaWYgdGhlIHByb2Nlc3MgaXMgbm90IGluIHRoZSBmaWxlCj4gPiBbXSBvd25lciBjbGFzcyBh bmQgaWYgdGhlIGVmZmVjdGl2ZSBncm91cCBJRCBvciBvbmUgb2YgdGhlIHN1cHBsZW1lbnRhcnkK PiA+IFtdIGdyb3VwIElEcyBvZiB0aGUgcHJvY2VzcyBtYXRjaGVzIHRoZSBncm91cCBJRCBhc3Nv Y2lhdGVkIHdpdGggdGhlCj4gPiBbXSBmaWxlLiBPdGhlciBtZW1iZXJzIG9mIHRoZSBjbGFzcyBt YXkgYmUgaW1wbGVtZW50YXRpb24tZGVmaW5lZC4KPiA+Cj4gPiBbXSAzLjE3MiBGaWxlIE90aGVy IENsYXNzCj4gPiBbXSBUaGUgcHJvcGVydHkgb2YgYSBmaWxlIGluZGljYXRpbmcgYWNjZXNzIHBl cm1pc3Npb25zIGZvciBhCj4gPiBbXSBwcm9jZXNzIHJlbGF0ZWQgdG8gdGhlIHVzZXIgYW5kIGdy b3VwIGlkZW50aWZpY2F0aW9uIG9mIGEgcHJvY2Vzcy4KPiA+IFtdIEEgcHJvY2VzcyBpcyBpbiB0 aGUgZmlsZSBvdGhlciBjbGFzcyBvZiBhIGZpbGUgaWYgdGhlIHByb2Nlc3MgaXMgbm90Cj4gPiBb XSBpbiB0aGUgZmlsZSBvd25lciBjbGFzcyBvciBmaWxlIGdyb3VwIGNsYXNzLgo+ID4KPiA+IFRo ZSBrZXkgZmFjdCBpbiB0aGVzZSBkZWZpbml0aW9ucyBpcyB0aGF0IGFuIGltcGxlbWVudGF0aW9u IG1heSBkZWZpbmUKPiA+IGFkZGl0aW9uYWwgbWVtYmVycyBvZiB0aGUgRmlsZSBHcm91cCBDbGFz cywgd2hpbGUgdGhlIG90aGVyIGNsYXNzZXMKPiA+IGFyZSBub3QgZXh0ZW5zaWJsZS4KPiA+Cj4g PiBVbmRlciB0aGlzIGRlZmluaXRpb24sIHdlIGVuZCB1cCB3aXRoIHRoZSBmb2xsb3dpbmcgbWFw cGluZzoKPiA+Cj4gPiAgLSBPV05FUkAgZW50cmllcyBhcmUgaW4gdGhlIEZpbGUgT3duZXIgQ2xh c3MsCj4gPiAgLSBFVkVSWU9ORUAgZW50cmllcyBhcmUgaW4gdGhlIEZpbGUgT3RoZXIgQ2xhc3Ms Cj4KPiBObywgSSBkb24ndCB0aGluayBFVkVSWU9ORUAgaXMgaW4gdGhlIEZpbGUgT3RoZXIgQ2xh c3MuICBHaXZlbiB0aGlzIEFDTDoKPgo+IEVWRVJZT05FQDpyZWFkX2RhdGE6ZGVueQo+IE9XTkVS QDpyZWFkX2RhdGE6YWxsb3cKPgo+IHRoZSBvd25lciB3b3VsZCBOT1QgYmUgYWJsZSB0byByZWFk LiAgSW4gb3RoZXIgd29yZHMsIGZpbGUgb3duZXIKPiBjbGFzcyBhbmQgZmlsZSBncm91cCBjbGFz cyBhcmUgYWxzbyBhZmZlY3RlZCBieSBFVkVSWU9ORUAgQUNFcy4KPgo+ID4gIC0gZXZlcnkgb3Ro ZXIgZW50cnkgaXMgaW4gdGhlIEZpbGUgR3JvdXAgQ2xhc3MoKikuCj4KPiBpbmNsdWRpbmcgRVZF UllPTkVALiAgOy0pCgpJIHN0cm9uZ2x5IGRpc2FncmVlLiBQbGVhc2UgcmVjb25zaWRlciB3aGF0 IEkgc2FpZCBhYm91dCBub24tbW9ub3RvbmljIApwZXJtaXNzaW9ucyBhbmQgIndlbGwgc3RydWN0 dXJlZCIgYWNscyAod2VsbC1mb3JtZWQgd291bGQgaGF2ZSBiZWVuIGEgYmV0dGVyIAp0ZXJtIGZv ciBpdCk6CgogLSB3aXRoIHdlbGwtZm9ybWVkIEFDTHMsIHBlcm1pc3Npb25zIGZyb20gbXVsdGlw bGUgY2xhc3NlcyBjYW5ub3QKICAgYWNjdW11bGF0ZS4KCiAtIHdpdGggYXJiaXRyYXJ5IEFDTHMs IHBlcm1pc3Npb25zIGZyb20gbXVsdGlwbGUgY2xhc3NlcyBjYW4KICAgYWNjdW11bGF0ZS4gCgpU aGUgd2VsbC1mb3JtZWRuZXNzIHByb3BlcnR5IG9mIGFuIEFDTCBkZXRlcm1pbmVzIHdoZXRoZXIg b3Igbm90IHBlcm1pc3Npb25zIAptYXkgYWNjdW11bGF0ZSBhY3Jvc3MgY2xhc3Nlcy4gVGhpcyBk b2VzIG5vdCBpbnZhbGlkYXRlIHRoZSBjbGFzc2lmaWNhdGlvbiAKaXRzZWxmLgoKV2hpbGUgYmVp bmcgYSBwZXJmZWN0bHkgZmluZSBORlN2NCBBQ0wsIHRoZSBhYm92ZSBBQ0wgZGVmaW5pdGVseSBp cyBub3QgCndlbGwtZm9ybWVkLgoKT3RoZXIgdGhhbiB0aGUgZmFjdCB0aGF0IHBlcm1pc3Npb25z IG1heSBhY2N1bXVsYXRlIGFjcm9zcyBjbGFzc2VzICh3aGljaCBvbmx5IApiZWNvbWVzIGEgcHJv YmxlbSB3aXRoIG5vbi1tb25vdG9uaWMgZmlsZSBtb2RlIHBlcm1pc3Npb24gYml0cyksICJpbGwt Zm9ybWVkIiAKQUNMcyBhcmUgbm90IGEgcHJvYmxlbS4KCkZvciBzdHJpY3QgUE9TSVggY29tcGxp YW5jZSwgd2UgbXVzdCBlbnN1cmUgdGhhdCBBQ0xzIGFyZSB3ZWxsLWZvcm1lZCBhZnRlciAKY2ht b2QsIGFuZCB0aGF0IGluaGVyaXRlZCBBQ0xzIHdpbGwgYmUgd2VsbC1mb3JtZWQgYXMgd2VsbC4g V2UgY291bGQgYWNoaWV2ZSAKdGhpcyBlaXRoZXIgYnkgcmVqZWN0aW5nICJpbGwtZm9ybWVkIiBB Q0xzIGR1cmluZyBTRVRBVFRSIG9mIEFDTCAoc28gdGhhdCAKY2htb2QgYW5kIGluaGVyaXRlZCBw ZXJtaXNzaW9ucyB3aWxsIGFsd2F5cyBvcGVyYXRlIG9uIHdlbGwtZm9ybWVkIGFjbHMpLCBvciAK d2UgY291bGQgdHJ5IHRvIGNvbnZlcnQgYXJiaXRyYXJ5IEFDTHMgaW50byB3ZWxsLWZvcm1lZCBB Q0xzIGR1cmluZyBjaG1vZCBhbmQgCmR1cmluZyBwZXJtaXNzaW9uIGluaGVyaXRhbmNlICgqKS4g SSBhbSBzdXJlIHRoYXQgdGhlcmUgYXJlIHNvbWUgZm9ybXMgb2YgCk5GU3Y0IEFDTHMgd2hpY2gg Y2Fubm90IGJlIGNvbnZlcnRlZCBpbnRvIHdlbGwtZm9ybWVkIEFDTHMgd2l0aG91dCBsb3NzIG9m IAppbmZvcm1hdGlvbiwgc28gd2Ugd291bGQgaGF2ZSB0byBmYWlsIHNvbWUgY2htb2RzIGFuZCBm aWxlIGNyZWF0ZXMuIFRoaXMgaXMgCnVnbHkgb2YgY291cnNlLCBhbmQgY2htb2QgZXJyb3JzIGlu IHBhcnRpY3VsYXIgd291bGQgbW9zdCBsaWtlbHkgYmFkbHkgdHJhcCAKdXAgc29tZSBQT1NJWCBh cHBsaWNhdGlvbnMuIEkgYW0gdW5kZWNpZGVkIHdoZXRoZXIgY2hlY2tpbmcgZm9yIHdlbGwtZm9y bWVkIApBQ0xzIGluIFNFVEFUVFIgb3IgbWFzYWdlaW5nIEFDTHMgaW4gQ0hNT0QgYW5kIGR1cmlu ZyBjcmVhdGVzIGlzIHRoZSBsZXNzZXIgCmV2aWwuCgooKikgSWxsLWZvcm1lZCBBQ0xzIGFyZSBv bmx5IGFuIGlzc3VlIHdpdGggYSBub24tbW9ub3RvbmljIGNobW9kIG9yIGZpbGUgCmNyZWF0ZSBt b2RlLiBUaGlzIG1lYW5zIHRoYXQgYWNsIGluaGVyaXRhbmNlIGFuZCBjaG1vZCBpcyBQT1NJWCBj b21wbGlhbnQgCmV2ZW4gd2l0aCBpbGwtZm9ybWVkIEFDTHMgYXMgbG9uZyBhcyB0aGUgbW9kZSBp cyBtb25vdG9uaWMsIGFuZCB3ZSBhY3R1YWxseSAKb25seSBuZWVkIHRvIGJlIGNhcmVmdWwgaW4g dGhlIChhbG1vc3QgdW5yZWFsaXN0aWNhbGx5KSByYXJlIGNhc2Ugd2hlcmUgdGhlIAptb2RlIGlz IG5vbi1tb25vdG9uaWMuCgpCZWNhdXNlIG9mIHRoZSByYW1pZmljYXRpb25zIG9mIHRyeWluZyB0 byBlbmZvcmNlIHdlbGwtZm9ybWVkIEFDTHMgb3IgdHJ5aW5nIAp0byBjb25zdHJ1Y3RpbmcgdGhl bSBhZnRlciB0aGUgZmFjdCwgd2UgbWF5IHdhbnQgdG8gb2ZmZXIgdXNlcnMgYSBjaG9pY2UgdG8g CnZpb2xhdGUgdGhpcyBwYXJ0aWN1bGFyIGFzcGVjdCBvZiBQT1NJWCBpbiBjZXJ0YWluIGluc3Rh bGxhdGlvbnM6IGFjY29yZGluZyAKdG8gbXkgZXhwZXJpZW5jZSwgbm9uLW1vbm90b25pYyBwZXJt aXNzaW9ucyBkbyBub3QgYWN0dWFsbHkgb2NjdXIgaW4gcmVhbCAKbGlmZSwgc28gSSBhbSBjb252 aW5jZWQgdGhhdCB0aGlzIGlzIG11Y2ggbGVzcyBldmlsIG9uIHVzZXJzIHRoYW4gdG90YWxseSAK c3RyaWN0IFBPU0lYIGNvbXBsaWFuY2UuCgooVGhlIHJ1bGVzIGhvdyB3ZWxsLWZvcm1lZCBBQ0xz IG11c3QgYmUgc3RydWN0dXJlZCBhcmUgcHJldHR5IHNpbXBsZS4gSSBkb24ndCAKd2FudCB0byBk ZXRhaWwgdGhlbSBoZXJlIGF0IHRoaXMgcG9pbnQsIGJ1dCB0aGV5IGNhbiBiZSBkaXN0aWxsZWQg ZnJvbSAKTWFyaXVzJ3MgZHJhZnQtaWV0Zi1uZnN2NC1hY2wtbWFwcGluZy0wNCBbM10uKQoKPiA+ ICAoKikgVXNlciBlbnRyaWVzIGZvciB0aGUgdXNlciB3aG8gaXMgdGhlIGN1cnJlbnQgZmlsZSBv d25lciBhcmUgYQo+ID4gICAgICBzcGVjaWFsIGNhc2U6IGR1ZSB0byBob3cgdGhlIE5GU3Y0IEFD TCBwZXJtaXNzaW9uIGNoZWNrIGFsZ29yaXRobQo+ID4gICAgICBpcyBzcGVjaWZpZWQsIEkgYmVs aWV2ZSB0aGF0IHRoZXkgc2hvdWxkIGJlIHB1dCBpbiB0aGUgT1dORVJACj4gPiAgICAgIGNsYXNz LiAKPgo+IFRoZSBjdXJyZW50IG1pbm9ydmVyc2lvbjEgZHJhZnQgaGFzIGEgc2ltaWxhciBkZXNp Z24gY29uc3RyYWludC4KCi4uLiB3aGljaCBjb21lcyBlbnRpcmVseSBmcm9tIGRyYWZ0LWlldGYt bmZzdjQtYWNscywgaWYgSSBhbSBub3QgbWlzdGFrZW4uCgo+ID4+IE5vdGUgdGhhdCB0aGlzIGRl ZmluaXRpb24gaXMgaW4gbGluZSB3aXRoIFBPU0lYIDEwMDMuMWUgZHJhZnQgMTcKPiA+PiBbMl0s IHdoaWxlIGl0IGNvbmZsaWN0cyB3aXRoIHRoZSBJRVRGIE5GUyBWZXJzaW9uIDQgQUNMcyBkcmFm dCBbMV0sCj4gPj4gd2hpY2ggYXNzb2NpYXRlcyBvbmx5IEdST1VQQCBlbnRyaWVzIHdpdGggdGhl IGdyb3VwIGZpbGUgbW9kZQo+ID4+IHBlcm1pc3Npb24gYml0cyBpbiBzZWN0aW9uIDUuMS4gVGhl IHJlbGV2YW50IHRleHQgb2YgSUVURiBORlMKPiA+PiBWZXJzaW9uIDQgQUNMcyBkcmFmdCBbMV0g aXMgYWxzbyBmb3VuZCBpbiBORlN2NCBNaW5vciBWZXJzaW9uIDEgWzRdLgo+ID4KPiA+IFNlY3Rp b24gNS4xIG9mIFsxXSBuZWVkcyB0byBiZSBmaXhlZDogd2UgbXVzdCBzZXQgdGhlIHBlcm1pc3Np b24KPiA+IGJpdHMgc28gdGhhdCB0aGV5IGFyZSBhIHN1cGVyc2V0IG9mIHRoZSBwZXJtaXNzaW9u cyBvZiBhbGwgdGhlCj4gPiBlbnRyaWVzIGluIHRoZSByZXNwZWN0aXZlIGNsYXNzLiAoV2UgY2Fu bm90IHJlcHJlc2VudCBwZXJtaXNzaW9ucyB0aGF0Cj4gPiBhcmUgbm90IHN1cGVyc2V0cyBvZiBQ T1NJWCByZWFkLCB3cml0ZSwgZXhlY3V0ZSBpbiB0aGUgY2xhc3MsIGJ1dCB0aGF0Cj4gPiBpcyBu b3QgYSBwcm9ibGVtLCBhcyB3ZSB3aWxsCj4gPiBzZWUgbGF0ZXIuKQo+Cj4gV2UgbXVzdCBkbyBz byBjYXJlZnVsbHkuCgpObyBkb3VidCBhYm91dCBpdC4KCj4gSSdtIG5vdCBjb252aW5jZWQgdGhh dCBhIHN1cGVyc2V0IGlzIHRoZSBiZXN0IHdheSB0byBnbywgYnV0IHdlIHNob3VsZCB0YWxrCj4g YWJvdXQgdGhpcyBsYXRlci4gIAoKTm90aGluZyBlbHNlIG1ha2VzIGFueSBzZW5zZSBhdCBhbGwg SU1PLCBhbmQgbm90aGluZyBlbHNlIHdvdWxkIGJlIGNvbXBhdGlibGUgCndpdGggUE9TSVggKGFz IGZhciBhcyB0aGUgYWRkaXRpb25hbCBmaWxlIGFjY2VzcyBjb250cm9sIHBhcnQgZ29lcyksIG9y IGluIAp0aGUgc3Bpcml0IG9mIFBPU0lYIChmb3IgdGhlIGFsdGVybmF0ZSBmaWxlIGFjY2VzcyBj b250cm9sIHBhcnQpLiBJIHRoaW5rIEkgCmhhdmUgZ2l2ZW4gc3VmZmljaWVudCBhcmd1bWVudHMg d2h5IHRoaXMgaXMgc28uCgo+ID4gTm9uLW1vbm90b25pYyBwZXJtaXNzaW9ucwo+ID4gPT09PT09 PT09PT09PT09PT09PT09PT09PQo+ID4KPiA+IE5vdGUgdGhhdCB3aXRoIGFyYml0cmFyeSBORlNW NCBBQ0xzLCB0aGUgcGVybWlzc2lvbnMgZ3JhbnRlZCB0byBhCj4gPiBwcm9jZXNzIGZyb20gbXVs dGlwbGUgQUNMIGVudHJpZXMgd2lsbCBhY2N1bXVsYXRlLiBUaGlzIG1lYW5zIHRoYXQKPiA+IHBl cm1pc3Npb25zIGFjcm9zcyBtdWx0aXBsZSBjbGFzc2VzIG1heSBhY2N1bXVsYXRlIGFzIHdlbGwu IFRoaXMgY2FuIGJlCj4gPiBwcmV2ZW50ZWQgd2l0aCBERU5ZIGVudHJpZXMgaW4gdGhlIEFDTCwg ZS5nLiwKPiA+Cj4gPiAJT1dORVJAOm1hc2sxOjpBTExPVwo+ID4gCU9XTkVSQDpebWFzazE6OkRF TlkKPiA+IAl1c2VyQGRvbWFpbjptYXNrMjo6QUxMT1cKPiA+IAlncm91cEBkb21haW46bWFzazM6 QUNFNF9JREVOVElGSUVSX0dST1VQOkFMTE9XCj4gPiAJdXNlckBkb21haW46Xm1hc2syOjpERU5Z Cj4gPiAJZ3JvdXBAZG9tYWluOl5tYXNrMzpBQ0U0X0lERU5USUZJRVJfR1JPVVA6REVOWQo+ID4g CUVWRVJZT05FOm1hc2s0OjpBTExPVwo+ID4KPiA+IFRoaXMgbWVhbnMgdGhhdCB3ZSB3aWxsIG5v dCBoYXZlIHRvIGRlYWwgd2l0aCB0aGlzIHNwZWNpYWwgY2FzZQo+ID4gd2hlbiBjb21wdXRpbmcg dGhlIGZpbGUgbW9kZSBwZXJtaXNzaW9uIGJpdHMsIGFuZCB3ZSBjYW4gYWNoaWV2ZQo+ID4gY29u c2lzdGVuY3kgYnkgZm9yY2luZyBBQ0xzIHRvIGJlICJ3ZWxsIHN0cnVjdHVyZWQiLgo+Cj4gWXVj ayEgIEknbSBnbGFkIHlvdSdyZSBub3QgcHJvcG9zaW5nIHRoaXMgYXMgYSBnZW5lcmFsIE5GU3Y0 IEFDTAo+IG1vZGVsLiAgOi0pCgpOb3RlIHRoYXQgdGhpcyBpcyBleGFjdGx5IGhvdyB0aGUgcHJv cG9zZWQgc2l4LWVudHJ5IEFDTCBvbiBwYWdlIDE1IG9mIApkcmFmdC1pZXRmLW5mc3Y0LWFjbHMg aXMgc3RydWN0dXJlZCwgYW5kIGhvdyBkcmFmdC1pZXRmLW5mc3Y0LWFjbC1tYXBwaW5nLTA0IApB Q0xzIGFyZSBzdHJ1Y3R1cmVkLCBhbmQgbm90IGJ5IGNvaW5jaWRlbmNlLiBJIGFncmVlIGl0J3Mg YSBiaXQgdWdseSwgYnV0IHRoZSAKYWNjdW11bGF0aXZlIHNlbWFudGljcyBvZiBORlN2NCBBQ0xz IGRvbid0IGxlYXZlIHVzIGFueSBvdGhlciBvcHRpb25zLgoKPiA+IFdlIGNvdWxkIGFsc28gbGVh dmUgdGhpcyBhcyBhbiBpbXBsZW1lbnRhdGlvbiBjb25zaWRlcmF0aW9uOiBBQ0xzCj4gPiB3aGlj aCBhcmUgbm90ICJ3ZWxsIHN0cnVjdHVyZWQiIGluIHRoZSBhYm92ZSBzZW5zZSB3aWxsIGdyYW50 IHBlcm1pc3Npb25zCj4gPiB0aGF0IGdvIGJleW9uZCB3aGF0IGFuIGFkZGl0aW9uYWwgYWNjZXNz IGNvbnRyb2wgbWVjaGFuaXNtIG1heSBncmFudAo+ID4gKm9ubHkqIGZvciBub24tbW9ub3Rvbmlj IGZpbGUgbW9kZSBwZXJtaXNzaW9uIGJpdHMuIFdpdGggbm9uLW1vbm90b25pYyBJCj4gPiBtZWFu ICBmaWxlIG1vZGUgcGVybWlzc2lvbiBiaXRzIHdoaWNoIGdyYW50IG1vcmUgcGVybWlzc2lvbnMg dG8gdGhlIGdyb3VwCj4gPiBjbGFzcyB0aGFuIHRvIHRoZSBvd25lciBjbGFzcywgb3IgbW9yZSBw ZXJtaXNzaW9ucyB0byB0aGUgb3RoZXIgY2xhc3MgdGhhbgo+ID4gdG8gdGhlIGdyb3VwIGNsYXNz Lgo+Cj4gSSdtIHNvcnJ5LCBJIGp1c3QgZG9uJ3QgZm9sbG93IHRoYXQgcGFyYWdyYXBoLgoKSSBo YXZlIGFscmVhZHkgdHJpZWQgdG8gcmVpdGVyYXRlIHRoaXMgcG9pbnQgZnVydGhlciB1cCBpbiB0 aGlzIHJlcGx5LiBTdGlsbCAKdW5jbGVhcj8KCj4gPj4gV2Ugd2FudCBjaG1vZCgyKSB0byBiZSBu b24tZGVzdHJ1Y3RpdmUsIHNvIHRoYXQgYSBjaG1vZCB0byBhIG1vcmUKPiA+PiByZXN0cmljdGl2 ZSBtb2RlIGFuZCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBtb2RlIHdpbGwgbGVhdmUgdGhlIGZpbGUK PiA+PiB3aXRoIHRoZSBzYW1lIHBlcm1pc3Npb25zIGFzIGJlZm9yZSB0aGUgY2hhbmdlcy4KPiA+ Pgo+ID4+IFsuLi5dCj4gPj4KPiA+PiBQT1NJWCBBQ0xzIGhhdmUgc29sdmVkIHRoZSBub24tZGVz dHJ1Y3RpdmVuZXNzIHByb2JsZW0gYnkgaW50cm9kdWNpbmcgYQo+ID4+IG1hc2sgQUNMIGVudHJ5 OiB0aGUgbWFzayBlbnRyeSBhcHBsaWVzIHRvIGFsbCBncm91cCBjbGFzcyBlbnRyaWVzLCBhbmQK PiA+PiBkZWZpbmVzIGFuIHVwcGVyIGJvdW5kIHRvIHRoZSBwZXJtaXNzaW9ucyB0aG9zZSBlbnRy aWVzIG1heSBncmFudC4gUE9TSVgKPiA+PiBBQ0xzIG9ubHkgaGF2ZSBBQ0wgZW50cmllcyB0aGF0 IGFsbG93IHBlcm1pc3Npb25zLCBhbmQgb25seSBzcGVjaWZ5IFJFQUQsCj4gPj4gV1JJVEUsIGFu ZCBFWEVDVVRFIHBlcm1pc3Npb25zLiBUaGVyZWZvcmUsIHRoZSBvd25lciBjbGFzcyBhbmQgb3Ro ZXIKPiA+PiBjbGFzcyBwZXJtaXNzaW9ucyBhcmUgdGhlIHBlcm1pc3Npb25zIGdyYW50ZWQgdG8g dGhlIG93bmVyIGFuZCB0byBvdGhlcnMsCj4gPj4gcmVzcGVjdGl2ZWx5LiAoTm90ZSB0aGUgZGlm ZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIG90aGVycyBhbmQgTkZTdjQncwo+ID4+IEVWRVJZT05FQCBz cGVjaWFsIGlkZW50aWZpZXIpLgo+ID4+Cj4gPj4gVGhlIG1hc2sgY29uY2VwdCBpcyBub3QgcGFy dCBvZiBORlN2NCBBQ0xzLiBNYXJpdXMgQS4gRXJpa3NlbiBhbmQgb3RoZXJzCj4gPj4gaGF2ZSBw cm9wb3NlZCB0byBlbXVsYXRlIHRoZSBQT1NJWCBBQ0wgbWFzayBlbnRyeSBieSBwcmVwZW5kaW5n ICh3aXRoCj4gPj4gZXhjZXB0aW9uIG9mIE9XTkVSQCBhbmQgRVZFUllPTkVAIEFDRXMpIGVhY2gg QUxMT1cgQUNFIHdpdGggYSBERU5ZCj4gPj4gQUNFIGZvciB0aGUgc2FtZSB1c2VyLCBncm91cCwg b3Igc3BlY2lhbCBpZGVudGlmaWVyIGFzIGluIHRoZSBBTExPVyBBQ0UuCj4gPj4gVGhlIHBlcm1p c3Npb25zIGluIHRoZSBERU5ZIEFDRSBhcmUgc2V0IHNvIHRoYXQgdGhlIGVudHJ5IGRlbmllcyB0 aGUKPiA+PiBwZXJtaXNzaW9ucyBub3QgZ3JhbnRlZCBieSB0aGUgbWFzay4KPiA+Cj4gPiBJbnRl cm5ldCBkcmFmdC1pZXRmLW5mc3Y0LWFjbHMtMDAudHh0IFsxXSB1c2VzIHRoZSBzYW1lIG1lY2hh bmlzbQo+ID4gdG8gaW1wbGVtZW50IG1hc2tpbmcuCj4gPgo+ID4+IFVubGVzcyB3ZSBhY2NlcHQg YSB2ZXJ5IHNwZWNpZmljIGZvcm0gb2YgTkZTdjQgQUNMcyBvbmx5ICh3aGljaCB3b3VsZAo+ID4+ IGNvbnRyYWRpY3QgdGhlIGdvYWwgc3RhdGVkIGF0IHRoZSB0b3Agb2YgdGhpcyBtZXNzYWdlLCBh bmQgd2hpY2gKPiA+PiB3b3VsZCBtZWFuIHRoYXQgaW50ZXJvcGVyYWJpbGl0eSB3aXRoIGFueXRo aW5nIGJ1dCBQT1NJWCBBQ0xzIHdvdWxkCj4gPj4gYmVjb21lIGRpZmZpY3VsdCksIHRoZXJlIGlz IG5vIGVhc3kgd2F5IHRvIHRlbGwgREVOWSBlbnRyaWVzIGludHJvZHVjZWQKPiA+PiB0byBlbXVs YXRlIHRoZSBtYXNrIGZyb20gREVOWSBlbnRyaWVzIGFkZGVkIGJ5IGhhbmQuCj4KPiBJIHdvdWxk IHJlZnV0ZSB0aGlzOyBzZWUgYmVsb3cuCj4KPiA+PiBUaGlzIGhhcyB0d28gcG90ZW50aWFsIGNv bnNlcXVlbmNlczoKPiA+Pgo+ID4+ICAtIEZpcnN0LCBpZiB3ZSBmYWlsIHRvIGlkZW50aWZ5IHN1 Y2ggYSBtYXNrLWVtdWxhdGlvbiBERU5ZIGVudHJ5LAo+ID4+ICAgIHdlIG1heSBlbmQgdXAgaW5z ZXJ0aW5nIGFub3RoZXIgc3VjaCBlbnRyeS4gV2UgbWlnaHQgZW5kIHVwIGRvaW5nCj4gPj4gICAg c28gcmVwZWF0ZWRseS4KPgo+IEJ1dCB3ZSB3aWxsIG5vdCBldmVyIGZhaWwgdG8gaWRlbnRpZnkg c3VjaCBhIG1hc2stZW11bGF0aW9uIERFTlkKPiBlbnRyeSwgd2hlbiBpdCBpcyBvbmUgdGhhdCB3 YXMgY3JlYXRlZCBieSBhIHByZXZpb3VzIGNobW9kLiAgT25seSBpbgo+IGEgZGVnZW5lcmF0ZSBj YXNlIG9mIG1vZGlmeS1hY2wtY2FyZWZ1bGx5LCBjaG1vZCwgbW9kaWZ5LWFjbC0KPiBjYXJlZnVs bHksIGNobW9kLCBldGMuLCB3b3VsZCB5b3UgZ2V0IGEgZ3Jvd2luZyBBQ0wgcHJvYmxlbS4KClll cy4gQW5kIGd1ZXNzIHdoYXQgd2lsbCBoYXBwZW4gd2hlbiBQT1NJWCBhbmQgV2luZG93cyBhcHBs aWNhdGlvbnMgd2lsbCAKbW9kaWZ5IHRoZSBwZXJtaXNzaW9ucyBvZiB0aGUgc2FtZSBmaWxlIGlu IHR1cm4/IE5vdGUgdGhhdCBldmVuIGEgY2htb2QgZnJvbSAKb25lIG1vZGUgdG8gYW5vdGhlciBh bmQgYmFjayBpcyBlbm91Z2ggdG8gbWVzcyB0aGluZ3MgdXAgcXVpdGUgYmFkbHkuCgpBcyBmYXIg YXMgSSByZW1lbWJlciwgV2luMksgYWx3YXlzIHJlb3JkZXJzIEFDTCBlbnRyaWVzIHNvIHRoYXQg YWxsIERFTlkgCmVudHJpZXMgY29tZSBiZWZvcmUgYWxsIEFMTE9XIGVudHJpZXMuCgo+ID4+ICAt IFNlY29uZCwgd2UgbWF5IHRha2UgYSB1c2VyLXByb3ZpZGVkIERFTlkgZW50cnkgZm9yIGEgbWFz ay0KPiA+PiBlbXVsYXRpb24gREVOWSBlbnRyeSwgYW5kIGNsZWFyIG1hc2sgYml0cyBmcm9tIHRo YXQgZW50cnkuIFRoaXMgd291bGQKPiA+PiBjb250cmFkaWN0IHRoZSB1c2VyJ3MgaW50ZW50aW9u LiBTbyB0aGUgYXBwcm9hY2ggb2YgaW5zZXJ0aW5nCj4gPj4gbWFzay1lbXVsYXRpb24gREVOWSBl bnRyaWVzIGlzIG5vdCBnb29kIGVub3VnaCBpbiBnZW5lcmFsLgo+Cj4gQSB1c2VyLXByb3ZpZGVk IERFTlkgZW50cnkgd291bGQgaGF2ZSB0byBmaXQgaW50byBhIHZlcnkgc3BlY2lmaWMgYW5kCj4g c29tZXdoYXQgbm9uc2Vuc2ljYWwgZm9ybSBpbiBvcmRlciB0byBiZSBtaXNpZGVudGlmaWVkLiAg SGVyZSdzIGFuCj4gZXhhbXBsZToKPgo+IHNhbWZAc3VuLmNvbTpyZWFkX2RhdGE6ZGVueQo+IHNh bWZAc3VuLmNvbTpyZWFkX2RhdGE6YWxsb3cKPgo+IElmIGEgImNobW9kIDQ0NCIgd2VyZSBkb25l LCB0aGUgZGVueSBBQ0UgYWJvdmUgd291bGQgYmUgbW9kaWZpZWQuCj4gQW55IG90aGVyIGNhc2Vz IG9mIGNobW9kIG1vZGlmeWluZyBhIHVzZXItcHJvdmlkZWQgQUNFIHdvdWxkIGhhdmUgdG8KPiBi ZSBlc3NlbnRpYWxseSB0aGUgc2FtZSBhcyB0aGUgYWJvdmUgZXhhbXBsZS4gIEkgdGhpbmsgdGhh dCB0aGF0J3MgYW4KPiBhY2NlcHRhYmxlIHNpdHVhdGlvbi4KCkkgYWxyZWFkeSBnYXZlIGEgbW9y ZSByZWFsaXN0aWMgZXhhbXBsZSBhYm92ZToKCglHUk9VUEA6V1JJVEVfREFUQTo6REVOWQoJR1JP VVBAOlJFQURfREFUQTo6QUxMT1cKCj4gPj4gKE1hcHBpbmcgYmV0d2VlbiBORlN2NCBhbmQgUE9T SVggQUNMcyBkb2VzCj4gPj4gbm90IGhhdmUgdGhpcyBwcm9ibGVtLCBiZWNhdXNlIFBPU0lYIEFD THMgZG9uJ3QgaGF2ZSBERU5ZIEFDRXMuKQo+ID4KPiA+IFRoZXJlZm9yZSwgdGhlIG1lY2hhbmlz bSBkZXNjcmliZWQgaW4gc2VjdGlvbiA1LjMgaXMgbm90IHN1aXRhYmxlCj4gPiBmb3Igb3VyIHB1 cnBvc2VzLCBhbmQgd2UgbmVlZCB0byByZXBsYWNlIGl0IHdpdGggc29tZXRoaW5nIGJldHRlci4K Pgo+IEkgZG9uJ3QgYWdyZWUgdGhhdCA1LjMgaXMgbm90IHN1aXRhYmxlLCBidXQgSSB3b3VsZCBs b3ZlIHRvIHNlZQo+IHNvbWV0aGluZyBiZXR0ZXIuCgpXZWxsLCBJIGRpZCBwcm9wb3NlIHNvbWV0 aGluZyAqbXVjaCogYmV0dGVyLgoKPiA+PiBJbiBteSBvcGluaW9uLCB0aGVyZSBhcmUgdHdvIHBv c3NpYmxlIHNvbHV0aW9ucyBmb3IgdGhpcyBwcm9ibGVtOgo+ID4+IHdlIGNhbiAoMSkgZGV2aXNl IGEgc3BlY2lhbCBraW5kIG9mIE5GU3Y0IEFDTCBlbnRyeSB0aGF0IHdlIHdpbGwKPiA+PiByZWNv Z25pemUgYXMgbWFzayBlbnRyeSwgb3IgKDIpIGdpdmUgdGhlIG93bmVyL2dyb3VwL290aGVyIGNs YXNzCj4gPj4gcGVybWlzc2lvbiBiaXRzIGhpZ2hlciBwcmlvcml0eSB0aGFuIHRoZSBBQ0wgZW50 cmllcywgYW5kIG9ubHkgYWxsb3cKPiA+PiBwZXJtaXNzaW9ucyB0aGF0IGFyZSBhbGxvd2VkIGJ5 IGJvdGggdGhlIEFDRXMgYW5kIHRoZWlyIGFzc29jaWF0ZWQKPiA+PiBjbGFzc2VzLiAKPgo+IFlp a2VzIC0tIEkgZG9uJ3QgbGlrZSBlaXRoZXIgb2YgdGhlIGFib3ZlIHNvbHV0aW9uczsgbGV0J3Mg bG9vayBhdAo+IHRoZSB0aGlyZC4uLgo+Cj4gPiBBIHRoaXJkIG9wdGlvbiBleGlzdHMgYXMgd2Vs bCB3aGljaCBmaXRzIGluIHZlcnkgd2VsbCB3aXRoIFBPU0lYCj4gPiBhbmQgY2FuIGJlIGltcGxl bWVudGVkIGluIE5GU3Y0IGluIGEgYmFja3dhcmQgY29tcGF0aWJsZSB3YXkuCj4gPgo+ID4gQWx0 ZXJuYXRpdmUgUHJvcG9zYWwKPiA+ID09PT09PT09PT09PT09PT09PT09Cj4gPgo+ID4gSW5zdGVh ZCBvZiBhZGRpbmcgREVOWSBlbnRyaWVzIHRvIHRoZSBBQ0wgZm9yIHRoZSBwdXJwb3NlIG9mIG1h c2tpbmcsCj4gPiBhdHRhY2ggdGhyZWUgb3B0aW9uYWwgYXR0cmlidXRlcyB0byBlYWNoIGZpbGU6 IG93bmVyX2NsYXNzX21hc2ssCj4gPiBncm91cF9jbGFzc19tYXNrLCBhbmQgb3RoZXJfY2xhc3Nf bWFzay4gV2hlbiB0aG9zZSBhdHRyaWJ1dGVzIGFyZSBwcmVzZW50LAo+ID4gdGhleSBkZWZpbmUg d2hpY2ggcGVybWlzc2lvbnMgaW4gYW4gQUNFIGFyZSBlZmZlY3RpdmUuCj4gPgo+ID4gRWFjaCBB Q0UgaXMgaXMgcmVzdHJpY3RlZCBieSBvbmUgb2YgdGhlc2UgbWFzayBhdHRyaWJ1dGVzIGluIGVh Y2gKPiA+IGFjY2VzcyBjaGVjazoKPiA+Cj4gPiAgLSBPV05FUkAgZW50cmllcyBhbmQgZW50cmll cyBmb3IgdGhlIHVzZXJAZG9tYWluIHRoYXQgY3VycmVudGx5Cj4gPiAgICBvd25zIHRoZSBmaWxl IGFyZSByZXN0cmljdGVkIGJ5IG93bmVyX2NsYXNzX21hc2suCj4gPgo+ID4gIC0gRVZFUllPTkVA IGVudHJpZXMgYXJlIHJlc3RyaWN0ZWQgYnkgb3RoZXJfY2xhc3NfbWFzay4KPiA+Cj4gPiAgLSBB bGwgb3RoZXIgZW50cmllcyBhcmUgcmVzdHJpY3RlZCBieSBncm91cF9jbGFzc19tYXNrLgo+ID4K PiA+IFRoZSBlZmZlY3RpdmUgcGVybWlzc2lvbnMgYXJlIGNvbXB1dGVkIGFzIHRoZSBiaXR3aXNl IGFuZCAoJikgb2YKPiA+IHRoZSBBQ0UgbWFzayBhbmQgdGhlIGFzc29jaWF0ZWQgY2xhc3NfbWFz ayBhdHRyaWJ1dGUuCj4KPiBJIHRha2UgaXQgeW91IG1lYW4gdGhhdCAidGhlIGVmZmVjdGl2ZSBh Y2Nlc3MgbWFzayBiaXRzIGZvciBBQ0VzIG9mCj4gdHlwZSBBTExPVyI/CgpXaGVuIGRldGVybWlu aW5nIGFjY2VzcywgaXQgaXMgaXJyZWxldmFudCB3aGV0aGVyIHdlIG1hc2sgb25seSBBTExPVyBl bnRyaWVzLCAKb3IgQUxMT1cgYW5kIERFTlkgZW50cmllcy4gV2hlbiBjb21wdXRpbmcgdGhlIG1h c2sgYXR0cmlidXRlcywgd2UgbXVzdCBvbmx5IApjb25zaWRlciBBTExPVyBlbnRyaWVzIHRob3Vn aC4KCj4gPiBXaGVuIGRvaW5nIGEgY2htb2QoMikgb3Igd2hlbiBhcHBseWluZyBhIGNyZWF0ZSBt YXNrLCB0aGUKPiA+IG93bmVyX2NsYXNzX21hc2ssIGdyb3VwX2NsYXNzX21hc2ssIGFuZCBvdGhl cl9jbGFzc19tYXNrIGF0dHJpYnV0ZXMgYXJlCj4gPiBtb2RpZmllZCBhY2NvcmRpbmcgdG8gdGhl IG93bmVyIGNsYXNzLCBncm91cCBjbGFzcywgYW5kIG90aGVyIGNsYXNzCj4gPiBwZXJtaXNzaW9u cyBvZiB0aGUgbW9kZSBwYXJhbWV0ZXIgYXMgZm9sbG93czoKPiA+Cj4gPiAgLSBUaGUgUE9TSVgg cmVhZCBwZXJtaXNzaW9uIGltcGxpZXMgdGhlIEFDRTRfUkVBRF9EQVRBLAo+ID4gICAgQUNFNF9S RUFEX0FUVFJJQlVURVMsIEFDRTRfUkVBRF9BQ0wsIGFuZCBBQ0U0X1NZTkNIUk9OSVpFIGJpdG1h c2sKPiA+ICAgIGZsYWdzLiAKPiA+Cj4gPiAgLSBUaGUgUE9TSVggd3JpdGUgcGVybWlzc2lvbiBp bXBsaWVzIHRoZSBBQ0U0X1dSSVRFX0RBVEEsCj4gPiAgICBBQ0U0X0FQUEVORF9EQVRBLCBBQ0U0 X1dSSVRFX0FUVFJJQlVURVMsIEFDRTRfREVMRVRFX0NISUxELCBhbmQKPiA+ICAgIEFDRTRfU1lO Q0hST05JWkUgYml0bWFzayBmbGFncy4KPgo+IEknbSBub3Qgc3VyZSBJIGFncmVlIGFib3V0IEFD RTRfV1JJVEVfQVRUUklCVVRFUywgYnV0IHRoYXQncyBhIG1pbm9yCj4gZGV0YWlsLgoKSSBhZ3Jl ZSB0aGF0IFBPU0lYIHdyaXRlIGRvZXMgbm90IGltcGx5IEFDRTRfV1JJVEVfQVRUUklCVVRFUy4K Cj4gPiAgLSBUaGUgUE9TSVggZXhlY3V0ZSBwZXJtaXNzaW9uIGltcGxpZXMgdGhlIEFDRTRfRVhF Q1VURSBtYXNrLgo+ID4KPiA+IFRoaXMgc2F2ZXMgdXMgZnJvbSBibG9hdGluZyBBQ0xzIHdpdGgg REVOWSBlbnRyaWVzLCBpcyBtb3JlCj4gPiBlZmZpY2llbnQgd2hlbiBkb2luZyBhIGNobW9kLCBh bmQgYWxzbyBzYXZlcyB1cyBmcm9tIGRlc3Ryb3lpbmcKPiA+IHBlcm1pc3Npb25zIGluIHVzZXIg cHJvdmlkZWQgREVOWSBlbnRyaWVzLgo+Cj4gWWVzLCBidXQgYXQgdGhlIGNvc3Qgb2YgYWRkaW5n IG5ldyBmaWxlIGF0dHJpYnV0ZXMuLi4gIERvbid0IGdldCBtZQo+IHdyb25nLCBJIGRvIHNlZSBt ZXJpdCBpbiB0aGlzIHByb3Bvc2FsLCBidXQgSSBkb24ndCBrbm93IGlmIGl0J2xsIGJlCj4gYWNj ZXB0YWJsZS4KCklmIHRoZSBudW1iZXIgb2YgYXR0cmlidXRlcyBpcyBhIGNvbmNlcm4sIHdlIGNv dWxkIGVxdWFsbHkgd2VsbCBzdG9yZSBhbGwgCnRocmVlIG1hc2tzIGluIGEgc2luZ2xlIHRocmVl LWVudHJ5IGFycmF5LgoKPiA+IFdoZW4gYW4gQUNMIGlzIHNldCwgdGhlbiBzZXQgYWxsIG1hc2sg YXR0cmlidXRlcyB0byB0aGUgdmFsdWVzCj4gPiBwcm92aWRlZCBpbiB0aGUgc2FtZSBTRVRBVFRS IG9wZXJhdGlvbiwgYW5kIHNldCB0aGUgcmVtYWluaW5nIG1hc2sKPiA+IGF0dHJpYnV0ZXMgdG8g dGhlIHVuaW9uIG9mIGFsbCBBTExPVyBBQ0wgZW50cmllcyBpbiB0aGUgQUNMIHRoYXQgdGhlCj4g PiBjbGFzcyBhcHBsaWVzIHRvLiAKPgo+IFRoaXMgZG9lc24ndCB0YWtlIHRoZSBvcmRlcmluZyBv ZiB0aGUgQUNMIGludG8gYWNjb3VudDsgaXMgdGhpcyB5b3VyCj4gaW50ZW50aW9uPyAgU28KPgo+ IEdST1VQQDpyZWFkX2RhdGEvd3JpdGVfZGF0YTpERU5ZCj4gR1JPVVBAOnJlYWRfZGF0YS93cml0 ZV9kYXRhOkFMTE9XCj4KPiB3b3VsZCByZXN1bHQgaW4gYSBncm91cF9jbGFzc19tYXNrIG9mIHJl YWRfZGF0YXx3cml0ZV9kYXRhLCByaWdodD8KPiAoSSdtIG5vdCBzYXlpbmcgaXQncyB3cm9uZywg SSdtIGp1c3QgbWFraW5nIHN1cmUgSSB1bmRlcnN0YW5kLikKClllcywgb3JkZXIgaXMgaXJyZWxl dmFudC4gTm90ZSB0aGF0IHdlIG11c3Qgb25seSBjb25zaWRlciB0aGUgQUxMT1cgZW50cmllcyAK d2hlbiBjb21wdXRpbmcgb25lIG9mIHRoZSBtYXNrIGF0dHJpYnV0ZXMgdGhvdWdoLgoKPiA+IFdp dGhvdXQgYW55IGZ1cnRoZXIgY2hhbmdlcywgTkZTdjQgY2xpZW50cyBub3QgYXdhcmUgb2YgdGhl IHRocmVlCj4gPiBvcHRpb25hbCBhdHRyaWJ1dGVzIHdvdWxkIG5vdCBiZSBhd2FyZSBvZiB0aGUg cmVzdHJpY3Rpb25zIGltcG9zZWQKPiA+IGJ5IHRob3NlIG1hc2tzIHdoZW4gcXVlcnlpbmcgZm9y IHRoZSBBQ0wuIFRoaXMgd291bGQgY3JlYXRlIGFuCj4gPiBpbnRlcm9wZXJhYmlsaXR5IHByb2Js ZW0sIGFuZCBwb3NzaWJsZSBzZWN1cml0eSBob2xlcy4gVG8gc29sdmUgdGhpcwo+ID4gcHJvYmxl bSwgd2UgY2FuIGV4dGVuZCB0aGUgR0VUQVRUUgo+ID4gb3BlcmF0aW9uIGFzIGZvbGxvd3M6Cj4g Pgo+ID4gV2hlbiBhIGNsaWVudCByZXF1ZXN0cyB0aGUgQUNMIGF0dHJpYnV0ZSwgY2hlY2sgaWYg aXQgYWxzbyByZXF1ZXN0cwo+ID4gb25lIG9yIG1vcmUgb2YgdGhlIHRocmVlIG9wdGlvbmFsIG93 bmVyX2NsYXNzX21hc2ssIGdyb3VwX2NsYXNzX21hc2ssCj4gPiBvciBvdGhlcl9jbGFzc19tYXNr IGF0dHJpYnV0ZXMuIElmIGl0IGRvZXMsIHRoZW4gc2VuZCB0aGUgcmVxdWVzdGVkCj4gPiBhdHRy aWJ1dGVzIGFzIHRoZXkgYXJlLiBJZiB0aGUgY2xpZW50IHJlcXVlc3RzIG9ubHkgdGhlIEFDTCB3 aXRob3V0Cj4gPiBhbnkgb2YgdGhlIG1hc2tzLCByZXR1cm4gYW4gQUNMIHdpdGggb25seSBlZmZl Y3RpdmUgbWFzayBmbGFncyBzZXQsCj4gPiBhbmQgd2l0aCBhbGwgb3RoZXIgZmxhZ3MgcmVtb3Zl ZC4KPgo+IEkgYXNzdW1lIHlvdSBtZWFuIGluIHRoZSBBTExPVyBBQ0VzIG9ubHksIHJpZ2h0PwoK UHJvYmFibHkgbm90OiB0aGUgcmVzdWx0aW5nIEFDTCB3aWxsIGdyYW50IGV4YWN0bHkgdGhlIHNh bWUgcGVybWlzc2lvbnMgZWl0aGVyIAp3YXkuIFRoZSB3aG9sZSBBQ0wgd2lsbCBiZWNvbWUgZWFz aWVyIHRvIHVuZGVyc3RhbmQgaWYgd2UgYWxzbyByZW1vdmUgbWFza2VkIApwZXJtaXNzaW9ucyBm cm9tIERFTlkgQUNMIGVudHJpZXMsIHNvIHRoYWlzIGlzIHdoeSBJIHdvdWxkIHByZWZlciB0aGlz IAphcHByb2FjaC4KCj4gPiBBbHRlcm5hdGUgcGVybWlzc2lvbnMgaW4gdGhlIEFDTCBjYW4gYmUg ZW5hYmxlZCBieSBlaXRoZXIgc2V0dGluZwo+ID4gYW4gQUNMIHdpdGhvdXQgcHJvdmlkaW5nIGZ1 bGwgbWFzayBlbnRyaWVzLCBvciBieSBzZXR0aW5nIHRoZQo+ID4gYXBwcm9wcmlhdGUgYml0KHMp IGluIHRoZSBjb3JyZXNwb25kaW5nIG1hc2sgZW50cnkgb3IgZW50cmllcy4KPgo+IFllcywgSSB0 aGluayBJIHVuZGVyc3RhbmQuCj4KPiA+IFdoZW4gY29tcGFyaW5nIFBPU0lYIEFDTHMgYW5kIHRo ZSBORlN2NCBBQ0wgKyBtYXNrIGF0dHJpYnV0ZXMgYXMKPiA+IHByb3Bvc2VkIGhlcmUsIG9uZSBv YnZpb3VzIGRpZmZlcmVuY2UgaXMgdGhhdCBQT1NJWCBBQ0xzIGhhdmUgb25seQo+ID4gb25lIG1h c2sgZW50cnksIHdoaWxlIEkgcHJvcG9zZSB0aHJlZSBtYXNrIGVudHJpZXMgaGVyZS4gVGhlIHJl YXNvbgo+ID4gZm9yIHRoaXMgaXMgdGhhdCBQT1NJWCBBQ0xzIGNhbiBhdCBtb3N0IGdyYW50IHJl YWQsIHdyaXRlLCBhbmQKPiA+IGV4ZWN1dGUgcGVybWlzc2lvbnMsIGFuZCBzbyB3aXRoIFBPU0lY IEFDTHMsIHRoZSBGaWxlIE93bmVyIENsYXNzCj4gPiBwZXJtaXNzaW9ucyBhcmUgYWx3YXlzIGlk ZW50aWNhbCB0byB0aGUgcGVybWlzc2lvbnMgZ3JhbnRlZCB0byB0aGUKPiA+IG93bmVyLCBhbmQg dGhlIEZpbGUgT3RoZXIgQ2xhc3MgcGVybWlzc2lvbnMgYXJlIGFsd2F5cyBpZGVudGljYWwgdG8K PiA+IHRoZSBwZXJtaXNzaW9ucyBncmFudGVkIHRvIG90aGVycy4gV2l0aCBORlN2NCBBQ0xzLCBP V05FUkAgYW5kCj4gPiBFVkVSWU9ORUAgZW50cmllcyBtYXkgZ3JhbnQgYWRkaXRpb25hbCBwZXJt aXNzaW9ucyB0aGF0IGdvIGJleW9uZAo+ID4gd2hhdCBQT1NJWCByZWFkLCB3cml0ZSwgYW5kIGV4 ZWN1dGUgY2FuIGdyYW50LCBhbmQgd2UgbmVlZCBhCj4gPiBtZWNoYW5pc20gc28gdGhhdCB0aG9z ZSBhbHRlcm5hdGUgcGVybWlzc2lvbnMgY2FuIGJlIHR1cm5lZCBvZmYgYnkKPiA+IGNobW9kIGFu ZCBkdXJpbmcgZmlsZSBjcmVhdGUgd2l0aG91dCBkZXN0cm95aW5nIHRoZSBwZXJtaXNzaW9ucy4K Pgo+IEdpdmVuIHRoYXQgRVZFUllPTkVAIGlzIG5vdCBlcXVpdmFsZW50IHRvIHRoZSBQT1NJWCAi b3RoZXIiIGNsYXNzLCBpdAo+IGNvdWxkIGJlIHRyaW1tZWQgZG93biB0byB0d28uCgpTZWUgdGhl IHdlbGwtZm9ybWVkIEFDTCBkaXNjdXNzaW9uIGFib3ZlIHdoeSBFVkVSWU9ORUAgc2hvdWxkIGJl IGluIHRoZSBGaWxlIApPdGhlciBDbGFzcy4gQnV0IGV2ZW4gaWYgeW91IHRvdGFsbHkgb2JqZWN0 IHRvIHRoaXMgbGluZSBvZiBhcmd1bWVudGF0aW9uLCAKdGhlIEZpbGUgT3RoZXIgQ2xhc3Mgd291 bGQgc3RpbGwgbmVlZCB0byByZXN0cmljdCBFVkVSWU9ORUAgZW50cmllczogYWxsIAp1c2VycyBv dGhlciB0aGFuIHRoZSBvd25lciwgb3duaW5nIGdyb3VwLCBvciBvdGhlciB1c2VycyBleHBsaWNp dGx5IG1lbnRpb25lZCAKaW4gdGhlIEFDTCB3aWxsIGJlIGdyYW50ZWQgRVZFUllPTkVAIHBlcm1p c3Npb25zLCBhbmQgd2UgbXVzdCBtYWtlIHN1cmUgdGhhdCAKbm8gdXNlciBpbiB0aGUgRmlsZSBP dGhlciBDbGFzcyB3aWxsIG9idGFpbiBhbnkgcGVybWlzc2lvbnMgYmV5b25kIHRoZSBGaWxlIApP dGhlciBDbGFzcyBwZXJtaXNzaW9ucyBhZnRlciBhIGNobW9kIHRvIGJlIFBPU0lYIGNvbXBsaWFu dC4gKEFsdGVybmF0aXZlbHksIAp3ZSBjb3VsZCByZW1vdmUgcGVybWlzc2lvbnMgZGlyZWN0bHkg ZnJvbSBhbGwgRVZFUllPTkVAIGVudHJpZXMsIGJ1dCB0aGF0IAp3b3VsZCBiZSBkZXN0cnVjdGl2 ZSwgd2hpY2ggaXMgZXhhY3RseSB3aGF0IHdlIGFyZSB0cnlpbmcgdG8gYXZvaWQuCgo+ID4gSSB3 b3VsZCBhcHByZWNpYXRlIGlmIHlvdSBjb3VsZCB0YWtlIHRoaXMgYWx0ZXJuYXRpdmUgcHJvcG9z YWwgaW50bwo+ID4gY29uc2lkZXJhdGlvbiB3aGVuIGRlY2lkaW5nIGhvdyB0byBwcm9jZWVkIHdp dGggTkZTdjQgTWlub3IKPiA+IFZlcnNpb24gMSBhdCBuZXh0IHdlZWsncyBJRVRGIDY2IG1lZXRp bmcuCj4KPiBUaGlzIHByb3Bvc2FsIGNlcnRhaW5seSBoYXMgaXRzIG1lcml0cy4gIEkgaGF2ZSBk b3VidHMgYWJvdXQgdGhlCj4gZmVhc2liaWxpdHkgb2YgYWRkaW5nIHR3byBvciB0aHJlZSBuZXcg ZmlsZSBhdHRyaWJ1dGVzLCBhbmQgbmV3IGFzLQo+IHlldC11bmltcGxlbWVudGVkIHNlbWFudGlj cywKCkNvbWUgb24sIGl0J3Mgbm90IGZhaXIgdG8gcHVsbCB0aGUgImFzLXlldC11bmltcGxlbWVu dGVkIiBjYXJkLiBJIGFtIGRvaW5nIG15IApiZXN0IHRvIGFyZ3VlIG15IHBvaW50cyBhcyBleGhh dXN0aXZlbHkgYXMgcG9zc2libGUuIEkgYWxzbyBoYXZlIHRoaXMgCnByb3Bvc2FsIGltcGxlbWVu dGVkLCBhbmQgSSB3aWxsIHN0YXJ0IHNoYWtpbmcgb3V0IGJ1Z3MgdG9tb3Jyb3cuIEkgY2FuIG1h a2UgCnRoZSBwcm90b3R5cGUgYXZhaWxhYmxlIHB1YmxpY2x5IGltbWVkaWF0ZWx5IGluIGNhc2Ug eW91IGRvdWJ0IG1lLiBNeSBwbGFuIAp3YXMgdG8gZG8gc28gbGF0ZXIgdGhpcyB3ZWVrLCBhZnRl ciBzb21lIG1vcmUgZGVidWdnaW5nLCB0aG91Z2guIEkgd2lsbCAKZGVmaW5pdGVseSBkbyBldmVy eXRoaW5nIEkgY2FuIHRvIHJlbGVhc2UgYW4gaW5pdGlhbCB2ZXJzaW9uIHdpdGhpbiB0aGUgbmV4 dCAKZGF5cy4KCj4gaW50byB0aGUgbWlub3J2ZXJzaW9uMSBkcmFmdC4gIEkgaGF2ZSBkb3VidHMg YWJvdXQgaG93IHRoaXMgd291bGQgYmUKPiBpbXBsZW1lbnRlZCBvbiBhIFdpbmRvd3MtYmFzZWQg c2VydmVyLiAKCk5vdCBhdCBhbGwuICBXaW5kb3dzIHNlcnZlciBzaW1wbHkgd29uJ3QgaW1wbGVt ZW50IHRoZSBtYXNrIGF0dHJpYnV0ZXMsIGFuZCBzbyAKdGhleSB3b3VsZCBzZWUgYSBwZXJmZWN0 IE5GU3Y0IEFDTCB3b3JsZC4gU29tZSBwZXJtaXNzaW9ucyB3aWxsIGdldCBrbm9ja2VkIApvdXQg aWYgdGhlIEFDTCBjb250YWlucyBzb21lIGFsdGVybmF0aXZlIHBlcm1pc3Npb25zIGFuZCB0aGUg VU5JWCBzaWRlIGxhdGVyIApkaXNhYmxlcyB0aGVtLCBvciBpZiB0aGUgQUNMIGNvbnRhaW5zIHNv bWUgcGVybWlzc2lvbnMgdGhhdCB0aGUgVU5JWCBzaWRlIApkZWNpZGVzIHRvIG1hc2suIFRoaXMg aXMgKm9ubHkqIGFuIGlzc3VlIHdoZW4gYSBXaW5kb3dzIHN5c3RlbSBtb2RpZmllcyB0aGUgCnBl cm1pc3Npb25zIG9mIGEgZmlsZSBhZnRlciBzb21lIHBlcm1pc3Npb25zIGhhdmUgYmVlbiBtYXNr ZWQgYnkgYSBQT1NJWCAKc3lzdGVtICh3aGljaCBtZWFucyB0aGF0IHRoZSBQT1NJWCBzeXN0ZW0g bXVzdCBoYXZlIG1vZGlmaWVkIHRoZSBwZXJtaXNzaW9ucyAKb2YgdGhlIHNhbWUgZmlsZSBhcyB3 ZWxsKS4gSW4gcGFydGljdWxhciwgaXQgaXMgbm90IGFuIGlzc3VlIHdoZW4gb25seSAKV2luZG93 cyBzeXN0ZW1zIGFjY2VzcyBhIGZpbGUsIG9yIHdoZW4gb25seSBQT1NJWCBzeXN0ZW1zIGFjY2Vz cyBhIGZpbGUuCgo+IFRoZSBjdXJyZW50IGRlc2lnbiBzcGVjaWZpZWQgaW4gZHJhZnQtaWV0Zi1u ZnN2NC1taW5vcnZlcnNpb24xLTAzLnR4dAo+IGhhcyBpbXBsZW1lbnRhdGlvbiBleHBlcmllbmNl IC0tIGl0J3MgcmVsZWFzZWQgaW4gU29sYXJpcyAxMCB1cGRhdGUKPiAzLCBhIHNoaXBwaW5nIHBy b2R1Y3QuIEl0IG1lZXRzIHN0cmljdCBQT1NJWCByZXF1aXJlbWVudHMgZm9yIHRob3NlCj4gaW1w bGVtZW50YXRpb25zIHRoYXQgY2hvb3NlIHRvIGNvbmZvcm0gdG8gUE9TSVguICAKCkl0IGlzICpu b3QqIFBPU0lYIGNvbXBsaWFudCB1bmxlc3MgaXQgaW1wbGVtZW50cyBhIGZldyB0aGluZ3Mgb3Ro ZXIgdGhhbiAKZGVzY3JpYmVkIGluIGRyYWZ0LWlldGYtbmZzdjQtYWNscy0wMC4gSSBoYXZlIGFy Z3VlZCB3aHkgaW4gdGhlIGZpcnN0IHBhcnQgb2YgCm15IHJlcGx5LgoKPiBJIGJlbGlldmUgaXQn cyBmdWxseSBpbXBsZW1lbnRhYmxlIG9uIGEgV2luZG93cy1iYXNlZCBzZXJ2ZXIuCgpXaHkgc2hv dWxkIE1pY3Jvc29mdCBzcGVuZCB0aW1lIG9uIGRyYWZ0LWlldGYtbmZzdjQtYWNscy0wMCBvdGhl ciB0aGFuIGZvciAKY29tcHV0aW5nIHJlYXNvbmFibGUgZmlsZSBtb2RlcygqKik/IE5GU3Y0IEFD THMgYXJlIE5URlMvQ0lGUyBBQ0xzIG1pbnVzIApBdXRvbWF0aWMgSW5oZXJpdGFuY2UgKHNlZSAK aHR0cDovL3d3dzEuaWV0Zi5vcmcvbWFpbC1hcmNoaXZlL3dlYi9uZnN2NC9jdXJyZW50L21zZzAz MTM1Lmh0bWwpCgooKiopIEkgYWxyZWFkeSBhcmd1ZSB3aHkgdGhlIGFsZ29yaXRobSBpbiBzZWN0 aW9uIDUuMSBvZiAKZHJhZnQtaWV0Zi1uZnN2NC1hY2xzLTAwIGlzIHdyb25nIGFuZCBub3QgUE9T SVggY29tcGxpYW50LiBUaGlzIGNhbiBlYXNpbHkgYmUgCmZpeGVkLCBidXQgaG93IGl0IHNob3Vs ZCBiZSBmaXhlZCBkZXBlbmRzIG9uIHdoaWNoIGFwcHJvYWNoIGlzIGNob3Nlbi4KCgpUaGFua3Ms CkFuZHJlYXMKCj4gPj4gUkVGRVJFTkNFUwo+ID4+Cj4gPj4gWzFdIFNhbSBGYWxrbmVyIGV0IGFs LjogTkZTIFZlcnNpb24gNCBBQ0xzLCBkcmFmdC1pZXRmLW5mc3Y0LQo+ID4+IGFjbHMtMDAudHh0 Cj4gPj4KPiA+PiBbMl0gUE9TSVggMTAwMy4xZS8yYyBkcmFmdCAxNyAod2l0aGRyYXduKSwKPiA+ PiBodHRwOi8vd3QueHBpbG90Lm9yZy9wdWJsaWNhdGlvbnMvcG9zaXguMWUKPiA+Pgo+ID4+IFsz XSBNYXJpdXMgQWFtb2R0IEVyaWtzZW4gZXQgYWwuOiBNYXBwaW5nIEJldHdlZW4gTkZTdjQgYW5k IFBvc2l4Cj4gPj4gRHJhZnQKPiA+PiBBQ0xzLCBkcmFmdC1pZXRmLW5mc3Y0LWFjbC1tYXBwaW5n LTA0LnR4dAo+ID4+Cj4gPj4gWzRdIFNwZW5jZXIgU2hlcGxlciAoZWRpdG9yKTogTkZTdjQgTWlu b3IgVmVyc2lvbiAxLAo+ID4+IGRyYWZ0LWlldGYtbmZzdjQtbWlub3J2ZXJzaW9uMS0wMy50eHQK Cls1XSBTdGFuZGFyZCBmb3IgSW5mb3JtYXRpb24gVGVjaG5vbG9neSDigJQgUG9ydGFibGUgT3Bl cmF0aW5nIFN5c3RlbSBJbnRlcmZhY2UgCihQT1NJWMKuKSwgaHR0cDovL3d3dy5vcGVuZ3JvdXAu b3JnL2F1c3Rpbi8KCls2XSBBbmRyZWFzIEdydWVuYmFjaGVyOiBQT1NJWCBBY2Nlc3MgQ29udHJv bCBMaXN0cyBvbiBMaW51eCwgCmh0dHA6Ly93d3cuc3VzZS5kZS9+YWdydWVuL2FjbC9saW51eC1h Y2xzLwoKWzddIFBPU0lYIDEwMDMuMWUvMmMgZHJhZnQgMTcsIGh0dHA6Ly93dC54cGlsb3Qub3Jn L3B1YmxpY2F0aW9ucy9wb3NpeC4xZS8KCi0tIApBbmRyZWFzIEdydWVuYmFjaGVyIDxhZ3J1ZW5A c3VzZS5kZT4KTm92ZWxsIC8gU1VTRSBMYWJzCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpVc2luZyBUb21j YXQgYnV0IG5lZWQgdG8gZG8gbW9yZT8gTmVlZCB0byBzdXBwb3J0IHdlYiBzZXJ2aWNlcywgc2Vj dXJpdHk/CkdldCBzdHVmZiBkb25lIHF1aWNrbHkgd2l0aCBwcmUtaW50ZWdyYXRlZCB0ZWNobm9s b2d5IHRvIG1ha2UgeW91ciBqb2IgZWFzaWVyCkRvd25sb2FkIElCTSBXZWJTcGhlcmUgQXBwbGlj YXRpb24gU2VydmVyIHYuMS4wLjEgYmFzZWQgb24gQXBhY2hlIEdlcm9uaW1vCmh0dHA6Ly9zZWwu YXMtdXMuZmFsa2FnLm5ldC9zZWw/Y21kPWxuayZraWQ9MTIwNzA5JmJpZD0yNjMwNTcmZGF0PTEy MTY0MgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpORlMg bWFpbGxpc3QgIC0gIE5GU0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKaHR0cHM6Ly9saXN0cy5zb3Vy Y2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vbmZzCg==