VGhleSBtaXNzZWQgYSBmZXc6CgotIERvIG5vdCBwbGFjZSBpbiB0aGVybW9udWNsZWFyIGRldmlj ZSB3aGlsZSBwcm9kdWNpbmcgbW9yZSB0aGFuIDFNVyBvdXRwdXQuIAoKLSBEbyBub3Qgb3BlcmF0 aW5nIG9uIHN1cmZhY2Ugb2YgdGhlIHN1bi4KCi0gTm90IHNhZmUgZm9yIGluc2VydGlvbiBpbiBy ZWN0dW0uCgotLS0KSmFtZXMuCiAKIAoKPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZy b206IHBpY2xpc3QtYm91bmNlc0BtaXQuZWR1IAo+IFttYWlsdG86cGljbGlzdC1ib3VuY2VzQG1p dC5lZHVdIE9uIEJlaGFsZiBPZiBEYXZpZCBWYW5Ib3JuCj4gU2VudDogMjAwNyBKYW4gMTEsIFRo dSAxMzoxNwo+IFRvOiBNaWNyb2NvbnRyb2xsZXIgZGlzY3Vzc2lvbiBsaXN0IC0gUHVibGljLgo+ IFN1YmplY3Q6IFJlOiBbT1RdOiBGdXRpbGUgYXR0ZW1wdHMgdG8gYXZvaWQgZnVydGhlciBEYXJ3 aW4gYXdhcmRzCj4gCj4gVGhpcyBjYW1lIHRvZGF5LCBvbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUg Y2VsbCBsaS1wb2x5IHRoYXQgSSAKPiB3aWxsIGJlIHVzaW5nIGluIGEgcHJvamVjdDoKPiAKPiBJ IGVzcGVjaWFsbHkgbGlrZSB0aGUgcGFydCBhYm91dCB0aGUgImZpcnN0IHdpZmUiIGNoYXJnZXIu Li4KPiBBbmQgd2h5IHdvdWxkIGFueW9uZSBFVkVSIGNvbm5lY3QgYSAzViBiYXR0ZXJ5IHRvIGEg MTEwIAo+IG91dGxldCBkaXJlY3RseT8KPiAKPiAKPiBUaGUgYmF0dGVyeSB3aWxsIGNhdGNoIG9u IGZpcmUsIGV4cGxvZGUgb3IgbGVhayBpZiBpdGVtIAo+IGRlc2NyaWJlZCBiZWxvdyB3YXMgbm90 IHN0cmljdGx5IG9ic2VydmVkLgo+IAo+IOKXjyAgICBEbyBub3QgdGhyb3cgdGhlIGJhdHRlcnkg aW50byB3YXRlciBvciBtb2lzdGVuIHRoZSBiYXR0ZXJ5Lgo+IAo+IOKXjyAgICBEbyBub3QgdXNl IG9yIHN0b3JlIGJhdHRlcnkgbmVhciBjYWxvcmlmaWMgc291cmNlIHN1Y2ggCj4gYXMgZmlyZSBh bmQKPiBoZWF0ZXIuCj4gCj4g4pePICAgIFBsZWFzZSB1c2UgdGhlIGZpcnN0IHdpZmUgY2hhcmdl ci4KPiAKPiDil48gICAgRG8gbm90IGNvbm5lY3QgdGhlIHRlcm1pbmFscyBvZiBiYXR0ZXJ5IGJ5 IHRoZSB3cm9uZyB3YXkuCj4gCj4g4pePICAgIERvIG5vdCBjb25uZWN0IHRoZSB0ZXJtaW5hbHMg b2YgYmF0dGVyeSB0byBhbiBlbGVjdHJpY2FsIG91dGxldAo+IGRpcmVjdGx5Lgo+IAo+IOKXjyAg ICBEbyBub3QgdGhyb3cgdGhlIGJhdHRlcnkgaW50byBmaXJlIG9yIGhlYXRpbmcgdGhlIGJhdHRl cnkuCj4gCj4g4pePICAgIERvIG5vdCBzaG9ydCBjaXJjdWl0IHRoZSBiYXR0ZXJ5J3MgdGVybWlu YWxzIHdpdGggCj4gd2lyZWxlc3Mgb3IgbWV0YWwuCj4gUHJldmVudCBzdG9yYWdlIG9yIHRyYW5z cG9ydCB0aGUgYmF0dGVyeSB3aXRoIG5lY2tsYWNlLCAKPiBiYXJyZXR0ZSBvciBvdGhlciBtZXRh bCBvYmplY3QgdG9nZXRoZXIuCj4gCj4g4pePICAgIEF2b2lkIGltcGFjdCwgdGhyb3dpbmcsIGJl bmRpbmcsIHR3aXN0aW5nLCBtZWNoYW5pY2FsIHNob2NrIGZyb20KPiBiYXR0ZXJ5Lgo+IAo+IOKX jyAgICBQcmV2ZW50IHBpZXJjaW5nIHRoZSBjYXNlIG9mIGJhdHRlcnkgd2l0aCBzaGFycCBlZGdl IHN1Y2ggYXMgcGluLAo+IG5lZWRsZS4gRG8gbm90IGhhbW1lcmluZywgdHJhbXBsaW5nIGJhdHRl cnkuCj4gCj4g4pePICAgIFByZXZlbnQgc29sZGVyaW5nIHRoZSB0ZXJtaW5hbHMgb2YgYmF0dGVy eSBkaXJlY3RseS4KPiAKPiDil48gICAgTmV2ZXIgZGlzYXNzZW1ibGluZyB0aGUgYmF0dGVyeSBp biBhbnkgd2F5Lgo+IAo+IOKXjyAgICBQcmV2ZW50IGNoYXJnaW5nIHRoZSBiYXR0ZXJ5IGluIGhp Z2ggdGVtcGVyYXR1cmUgb3IgbmVhciBmaXJlLgo+IAo+IAo+IAo+IFRoZSBiYXR0ZXJ5IG1heSBs ZWFkIHRvIGVsZWN0cm9seXRlIGxlYWthZ2UsIGZpcmUsIG9yIAo+IGV4cGxvc2lvbiBpZiBub3Qg YWxsb3dlZCBzdHJpY3RseS4KPiAKPiDil48gICAgUGxlYXNlIGRvIG5vdCBwdXQgdGhlIGJhdHRl cnkgaW4gbWljcm93YXZlIG9yIHByZXNzdXJlLgo+IAo+IOKXjyAgICBEbyBub3QgbWl4IHVzZSBL TUIgYmF0dGVyeSB3aXRoIHByaW1hcnkgYmF0dGVyeSAoc3VjaCBhcyAKPiBkcnkgYmF0dGVyeSkK PiBvciBkaWZmZXJlbnQgcGVyZm9ybWFuY2UgdG9nZXRoZXIuCj4gCj4g4pePICAgIERvIG5vdCB1 c2UgYmF0dGVyeSB3aGVuIHRoZSBiYXR0ZXJ5IHNtZWxscyBwZWN1bGlhcmx5LCBleGhhbGluZwo+ IGNhbG9yaWMsIGRpc3RvcnRlZCwgdHVybiBjb2xvcnMgb3IgYXBwZWFyZWQgYW55IGFibm9ybWl0 aWVzLiAKPiBUYWtlIG9mZiB0aGUgYmF0dGVyeSBmcm9tIHRoZSBlcXVpcG1lbnQgb3IgY2hhcmdl ciAKPiBpbW1lZGlhdGVseSBpZiB0aGUgYmF0dGVyeSBpcyB1c2luZyBvciBjaGFyZ2luZy4KPiAK PiDil48gICAgS2VlcCBhbGwgYmF0dGVyaWVzIG91dCBvZiB0aGUgcmVhY2ggb2YgbGl0dGxlIGNo aWxkcmVuLiBDb25zdWx0IGEKPiBkb2N0b3IgaW1tZWRpYXRlbHkgaWYgYSBiYXR0ZXJ5IGlzIHN3 YWxsb3dlZC4KPiAKPiDil48gICAgSWYgYmF0dGVyeSBsZWFraW5nIG91dCBlbGVjdHJvbHl0ZSBv ciBzbWVsbGluZyAKPiBwZWN1bGlhcmx5LCB0YWtlIGl0IGF3YXkKPiBmcm9tIGEgZmlyZSwgZWxl Y3Ryb2x5dGUgbWF5IGNhdXNlICAgZmlyZSBvciBidW0uCj4gCj4g4pePICAgIElmIGVsZWN0cm9s eXRlIHdhcyBkcm9wcGVkIGludG8gZXllcywgZG8gbm90IHdpcGUsIAo+IHBsZWFzZSB3YXNoIHdp dGgKPiBjbGVhciB3YXRlciBhbmQgY29uc3VsdCBhIGRvY3RvciBpbW1lZGlhdGVseSwgb3IgdGhl IGV5ZXMgCj4gbWF5YmUgaGFybWVkLgo+IC0tCj4gaHR0cDovL3d3dy5waWNsaXN0LmNvbSBQSUMv U1ggRkFRICYgbGlzdCBhcmNoaXZlIFZpZXcvY2hhbmdlIAo+IHlvdXIgbWVtYmVyc2hpcCBvcHRp b25zIGF0IAo+IGh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9waWNsaXN0 CgoKLS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20gUElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQpW aWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBhdApodHRwOi8vbWFpbG1hbi5taXQu ZWR1L21haWxtYW4vbGlzdGluZm8vcGljbGlzdAo=